tucnak2-2.48/0000777000175000017500000000000011737317225010033 500000000000000tucnak2-2.48/missing0000755000175000017500000002623311567373661011363 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; tar*) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar*) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: tucnak2-2.48/share/0000777000175000017500000000000011737317225011135 500000000000000tucnak2-2.48/share/tac2tuc.pl0000755000175000017500000001120711567373656012772 00000000000000#!/usr/bin/perl # Convert TACLog C_W file Text format to tucnak C_W file format # Copyleft 2008 Dave Gilligan, G1OGY. ############################################################################# # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # http://www.m1cro.org.uk/Members/G1OGY/GNU-GPL.html # # Succinctly: If it breaks - you get to keep all the pieces. # ############################################################################# $prog = "TAC2tuc"; $version = "V 0.01"; $datestring="[20080713]"; $auth = "Author:G1OGY "; $arights="Licenced under GNU GPL."; # define Usage die "\n\"$prog\" $version $datestring $auth $arights Usage: $prog inputfile.ext [outputfile.ext] \"$prog\" requires an INPUT file name argument and optionally, an OUTPUT file name. The user must have previously converted the TACLog .C_W file to text-mode using C_W.exe (see the TACLog manual). A raw column format of: CALL LOC LOC2 DATE is expected, separated by \"WhiteSpace\". Even though the TACLog formating of the text input to C_W.EXE is critical, for this program the amount of \"WhiteSpace\" is unimportant; thus this program will deal with any list otherwise derived. But NO blank lines nor Column Headers are allowed! Note that there is no way to determine a valid QSO date for LOC2. Consequently, the QSO Date for LOC2 will be set to 12 December 1901 (for want of a more auspicious occasion) thus ensuring that LOC takes place-precedence over LOC2. Default OUTPUT file is \"tac2tuc.cw\" in the `current` directory.\n" unless @ARGV; # define local variables my ($rawfile)=$ARGV[0]; my ($yesterdate)="19011212"; # main Banner(); if ($ARGV[1] ne "") { open (C_WFORMAT,">$ARGV[1]") || die "\nCannot Create Output file: \"$ARGV[1]\"!\n"; } else { open (C_WFORMAT,">tac2tuc.cw") || die "\nCannot Create Output file: \"tac2tuc.cw\"!\n"; } open (RAWLIST, "$rawfile") || die "\nInput File not Found\! Check the path : \n$!"; print "\nWorking...\n"; while () { # read the input and write a delimited output to an array chomp; ($call,$loc,$loc2,$qsodate) = split; # deal with call loc date unless ($qsodate) { unless ($loc2 =~ m/\D^*/i) { $qsodate=$loc2; $loc2=""; } } # deal with single/twin locators and add the delimiter if ($loc2 =~ m/\D^*/i) { push (@returndata, ($call.";".$loc.";".$qsodate)); push (@returndata, ($call.";".$loc2.";".$yesterdate)); } else { push (@returndata, ($call.";".$loc.";".$qsodate)); } } # break out into individual vars again to write the correctly # formatted output file foreach $record (@returndata) { ($call,$loc,$qsodate) = split (/;/,$record); write (C_WFORMAT); } # clean up close (RAWLIST); close (C_WFORMAT); # output format format C_WFORMAT = @<<<<<<<<<<<<<<@<<<<<<@<<<<<<< $call,$loc,$qsodate . # end_of_format Credits(); ############################################################################################ # Banner sub Banner { print ("\n\"$prog\" $version $datestring $auth\n $arights\n"); print ("\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n"); } ############################################################################################ # Credits sub Credits { print ("\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n"); print (" Credits: "); print ("\n \"$prog\" is written against \"ActivePerl v5.6\" and compiled \n"); print (" - where relevant - with \"Perl2exe\" by Indigostar Software.\n\n"); print (" \"$prog\": GNU General Public Licence applies.\n"); print ("\n"); print ("\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n"); } ############################################################################################ __END__tucnak2-2.48/share/Makefile.am0000644000175000017500000000022511567373656013117 00000000000000datarootdir = @datarootdir@ SUBDIRS=applications pixmaps EXTRA_DIST=$(share_DATA) sharedir = $(datadir)/tucnak2 share_DATA = README tac2tuc.pl tucnak2-2.48/share/applications/0000777000175000017500000000000011737317225013623 500000000000000tucnak2-2.48/share/applications/tucnak2.desktop0000644000175000017500000000103311567373656016511 00000000000000[Desktop Entry] # vim:encoding=utf-8 # The format of this file is specified at # http://freedesktop.org/Standards/desktop-entry-spec # The entries are in the order they are listed in version 1.0 # for registered categories see http://standards.freedesktop.org/menu-spec/1.0/apa.html Encoding=UTF-8 Type=Application Version=1.0 Name=Tucnak 2 Name[cs]=Tučňák 2 Comment=VHF Contest Logger Comment[cs]=Závodní deník pro VKV Icon=/usr/share/pixmaps/tucnak2.png Exec=/usr/bin/tucnak2 Terminal=false Categories=HamRadio StartupNotify=false tucnak2-2.48/share/applications/Makefile.am0000644000175000017500000000017311567373656015607 00000000000000datarootdir = @datarootdir@ : EXTRA_DIST=$(share_DATA) sharedir = $(datadir)/applications share_DATA = tucnak2.desktop tucnak2-2.48/share/applications/Makefile.in0000644000175000017500000002376111737315444015616 00000000000000# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = share/applications DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(sharedir)" shareDATA_INSTALL = $(INSTALL_DATA) DATA = $(share_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ HAMLIB_CFLAGS = @HAMLIB_CFLAGS@ HAMLIB_LIBS = @HAMLIB_LIBS@ HAVE_MAKE = @HAVE_MAKE@ HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ HAVE_RPM = @HAVE_RPM@ HAVE_RPM_PACKAGING = @HAVE_RPM_PACKAGING@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBFTDI_CFLAGS = @LIBFTDI_CFLAGS@ LIBFTDI_LIBS = @LIBFTDI_LIBS@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RPM_RELEASE = @RPM_RELEASE@ RPM_SOURCESDIR = @RPM_SOURCESDIR@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ TUCNAK_LDADD = @TUCNAK_LDADD@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = $(share_DATA) sharedir = $(datadir)/applications share_DATA = tucnak2.desktop all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu share/applications/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu share/applications/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-shareDATA: $(share_DATA) @$(NORMAL_INSTALL) test -z "$(sharedir)" || $(MKDIR_P) "$(DESTDIR)$(sharedir)" @list='$(share_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(shareDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(sharedir)/$$f'"; \ $(shareDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sharedir)/$$f"; \ done uninstall-shareDATA: @$(NORMAL_UNINSTALL) @list='$(share_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(sharedir)/$$f'"; \ rm -f "$(DESTDIR)$(sharedir)/$$f"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(sharedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-shareDATA install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-shareDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-shareDATA install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \ uninstall-am uninstall-shareDATA : # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tucnak2-2.48/share/Makefile.in0000644000175000017500000003676511737315444013140 00000000000000# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = share DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(sharedir)" shareDATA_INSTALL = $(INSTALL_DATA) DATA = $(share_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ HAMLIB_CFLAGS = @HAMLIB_CFLAGS@ HAMLIB_LIBS = @HAMLIB_LIBS@ HAVE_MAKE = @HAVE_MAKE@ HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ HAVE_RPM = @HAVE_RPM@ HAVE_RPM_PACKAGING = @HAVE_RPM_PACKAGING@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBFTDI_CFLAGS = @LIBFTDI_CFLAGS@ LIBFTDI_LIBS = @LIBFTDI_LIBS@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RPM_RELEASE = @RPM_RELEASE@ RPM_SOURCESDIR = @RPM_SOURCESDIR@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ TUCNAK_LDADD = @TUCNAK_LDADD@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = applications pixmaps EXTRA_DIST = $(share_DATA) sharedir = $(datadir)/tucnak2 share_DATA = README tac2tuc.pl all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu share/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu share/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-shareDATA: $(share_DATA) @$(NORMAL_INSTALL) test -z "$(sharedir)" || $(MKDIR_P) "$(DESTDIR)$(sharedir)" @list='$(share_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(shareDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(sharedir)/$$f'"; \ $(shareDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sharedir)/$$f"; \ done uninstall-shareDATA: @$(NORMAL_UNINSTALL) @list='$(share_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(sharedir)/$$f'"; \ rm -f "$(DESTDIR)$(sharedir)/$$f"; \ done # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ am__remove_distdir=: \ am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(sharedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-shareDATA install-dvi: install-dvi-recursive install-exec-am: install-html: install-html-recursive install-info: install-info-recursive install-man: install-pdf: install-pdf-recursive install-ps: install-ps-recursive installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-shareDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ install-strip .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic ctags \ ctags-recursive distclean distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-shareDATA install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-shareDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tucnak2-2.48/share/README0000644000175000017500000000020011567373656011734 00000000000000These files are NOT used by Tucnak. It contain they compiled-in. Files are for you, you can modify they and place to ~/tucnak . tucnak2-2.48/share/pixmaps/0000777000175000017500000000000011737317225012616 500000000000000tucnak2-2.48/share/pixmaps/tucnak2.xpm0000644000175000017500000001243111567373656014643 00000000000000/* XPM */ static char *tucnak[] = { /* columns rows colors chars-per-pixel */ "32 32 195 2", " c #000000", ". c #06090B", "X c #0C0000", "o c #0E0C04", "O c #090B0C", "+ c #0D131B", "@ c #140300", "# c #160F0B", "$ c #1F0700", "% c #1F0B00", "& c #121517", "* c #141618", "= c #17181A", "- c #1A1C1E", "; c #1C1F20", ": c #1E2325", "> c #220400", ", c #231604", "< c #20160B", "1 c #291000", "2 c #392712", "3 c #212324", "4 c #252C2F", "5 c #292B2B", "6 c #272D30", "7 c #2A2C31", "8 c #2D3032", "9 c #342D2E", "0 c #313335", "q c #32373A", "w c #32393C", "e c #383A3C", "r c #393F42", "t c #3B4043", "y c #3D4348", "u c #442300", "i c #4E2B01", "p c #533920", "a c #64240D", "s c #642E05", "d c #6A2A02", "f c #783108", "g c #764B18", "h c #424445", "j c #424549", "k c #434A4D", "l c #4A4C4D", "z c #454C50", "x c #4B5155", "c c #4D5559", "v c #505355", "b c #50555A", "n c #53595E", "m c #5E5E5F", "M c #565E63", "N c #595F62", "B c #5C6165", "V c #5E6368", "C c #64615D", "Z c #61666A", "A c #61696D", "S c #68696A", "D c #6A6C71", "F c #6A7174", "G c #6E7679", "H c #737576", "J c #737678", "K c #767C81", "L c #7A7E82", "P c #7C8084", "I c #B53718", "U c #87742D", "Y c #9D6D2E", "T c #A55E10", "R c #BE771D", "E c #997C5D", "W c #C35E12", "Q c #CD5A11", "! c #D76D19", "~ c #EB5E2C", "^ c #E5681F", "/ c #E7730E", "( c #E77B07", ") c #E47C1B", "_ c #F1640E", "` c #F17216", "' c #F2781F", "] c #F9731C", "[ c #FF7812", "{ c #EF6B3B", "} c #F17C24", "| c #C36C4F", " . c #B98157", ".. c #DE8200", "X. c #D49129", "o. c #E58D15", "O. c #F38712", "+. c #FF9D00", "@. c #F79113", "#. c #F6931D", "$. c #F79A1A", "%. c #F89B15", "&. c #FD991F", "*. c #F38320", "=. c #F98A20", "-. c #F79920", ";. c #F59A2A", ":. c #FF9023", ">. c #F1903A", ",. c #F1A605", "<. c #F5A10E", "1. c #F9A402", "2. c #FAAC02", "3. c #FDAF0B", "4. c #F8A113", "5. c #FFA51C", "6. c #FFA812", "7. c #FFB803", "8. c #FAA523", "9. c #D3BC56", "0. c #DEAC61", "q. c #D4B97B", "w. c #F88F67", "e. c #FFB35A", "r. c #FCB168", "t. c #FFBF71", "y. c #FFC600", "u. c #FDC21B", "i. c #FFD400", "p. c #FFD911", "a. c #FFC426", "s. c #FFE532", "d. c #DAC252", "f. c #FFDB5A", "g. c #F1D778", "h. c #FFE476", "j. c #FFEB75", "k. c #828383", "l. c #85888E", "z. c #888A8F", "x. c #888D92", "c. c #8B9093", "v. c #9C8987", "b. c #94979B", "n. c #9C9FA5", "m. c #9EA6AC", "M. c #B09C89", "N. c #B1A180", "B. c #A2A4A4", "V. c #A4A5A8", "C. c #A6A8AB", "Z. c #ABACAC", "A. c #AFB0B1", "S. c #B3AAAE", "D. c #B1B4B6", "F. c #B1B3B8", "G. c #B5B9BB", "H. c #BDBDBD", "J. c #B4B4C4", "K. c #BEBFC4", "L. c #C4AF92", "P. c #F3AA86", "I. c #F7BE83", "U. c #F8B897", "Y. c #F3B9A4", "T. c #E6C286", "R. c #F8C69D", "E. c #F3C5A5", "W. c #F8CEB9", "Q. c #FFDCA8", "!. c #FFFDB4", "~. c #C6C9CA", "^. c #C9CCCC", "/. c #CACCD0", "(. c #DCCCC7", "). c #D1D1D2", "_. c #D5D7D8", "`. c #D3D8DA", "'. c #D9DADD", "]. c #DCDEE4", "[. c #D9DEED", "{. c #F9DFCD", "}. c #FFDFD8", "|. c #FDE2D8", " X c #E5E6E6", ".X c #E3E5E9", "XX c #E4E8ED", "oX c #E2EBF3", "OX c #F2EBE6", "+X c #FFEEEC", "@X c #FFFFE4", "#X c #F1F5FC", "$X c #F3F8F9", "%X c #FEFEFE", "&X c None", /* pixels */ "&X&X&X&X&X&X&X&X&X&X&X&X&X&X&X&X&X &X&X&X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X&X&X&X&X&X : k z * &X&X&X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X&X&X&X&X h 7 x A J & &X&X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X&X&X&X . Z.%Xc w j c e &X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X&X&X&X v C OXD M XX^.5 &X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X&X&X o N.M.Q.0.g {.%Xj &X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X&X&X U %X@Xj.p.y.+.| z &X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X&X&X d.!.f.u.,.X. .v.z &X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X&X 9.g.q.L.S.J.oX.Xt &X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X&X * $X#X[.XX$X%X%X%Xt &X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X m %X%X%X%X%X%X%X%Xk &X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X H.%X%X%X%X%X%X%X%Xx &X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X 0 %X%X%X%X%X%X%X%X%XB . &X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X Z.%X%X%X%X%X%X%X%X XB 7 &X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X h %X%X%X%X%X%X%X%X%XG.x n . &X&X&X&X&X&X", "&X&X&X&X&X&X&X&X . _.%X%X%X%X%X%X%X%X%XF k V q &X&X&X&X&X", "&X&X&X&X&X&X&X .%X%X%X%X%X%X%X%X%XG.r z M D + &X&X&X&X&X", "&X&X&X&X&X&X O x r #X%X%X%X%X%X%X%X%X Xy c x c F V &X&X&X&X", "&X&X&X&X - /.P K.%X%X%X%X%X%X%X%X%Xx B B y c V l.r &X&X&X&X", "&X&X&X&X - '. XH %X%X%X%X%X%X%X%X%XS N x.q r x B J l.O &X&X&X", "&X&X&X O ~.%XA.J %X%X%X%X%X%X%X%X).8 D.r 3 w z M F n.l &X&X&X", "&X&X x V.m 5 l %X$X$X%X%X|.%X%XC.h P O 4 D b.F.K c.L &X&X", "&X&X . B.e.I.%XR.` U.%X_.3 - 6 C./.).%Xc.P z.. &X&X", "&X&X < 1.8.E.&.O.W.%X%Xt e '.].'.%X%Xc.L S &X&X", "&X&X&X&X&X&X&X , 2.2.@.%.} Y.P.w.(.$X%X X%X%X%XG K 0 &X&X", "&X&X&X&X&X&X&X&X @ <.3.4.$.' } _ ~ +X%X%X%X%X%X~.M x &X&X", "&X&X&X&X&X&X&X&X&X o.6.$.-.=.] { }.%X%X%X%X%X`.N t . &X&X&X", "&X&X&X&X&X&X&X&X&X&XT 5.-.=.^ a 9 K A.^./.m.Z 7 + &X&X&X&X", "&X&X&X&X&X&X&X&X&X&X1 ) ! f X # p Y R s &X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X &X 2 E T.h.s.i.7...d &X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X&X&X&X&X&Xu ;.t.r.>.a.7./ Q ( [ I &X&X&X", "&X&X&X&X&X&X&X&X&X&X&X&X&X&X&X&Xi i % $ W d X @ > &X&X&X" }; tucnak2-2.48/share/pixmaps/tucnak2.png0000644000175000017500000000376411567373656014634 00000000000000PNG  IHDR szz pHYs  gAMA|Q cHRMz%u0`:o_FjIDATxb?S,>ę@̌O^bahJYE=U f&&KgϘ|L (^JH3@1Qh]9dbDŋ  JoU{vdPRVbxûw߿ϠTČ  Jkw&o3ȋ0(*i0,ZǷ 5@̇"L|<,i~Z >: 18gPxA3cc)) g@1 Kt'.ǀFe8w@,^"7D22poÿ<&z e F @8@ ~batG Y0ga`Tc3gaD@8_T\BBvÏ? dٙx ~}pg%T  $(x Dj.b8 9!b1|T2;99T 1>uD 8/^00113hj뀸>%vG'gސ`_{ -]Vv.D8}ԩDvێ ߿ge32EC : 9@qAUe9:A˷p)`Mv/P*zbÌpqq{-CϞ1D'3 2 ))I/3,7P(b &=MJFvZ?By`{@@ _>}fPUdS@ lΐܷw8Ç }vN.?bmmm+׮0 ?f _ '7oP >Bw@67/_EKTΜ;9Do`W^e8v8CPPM޽}?š/@ψ1888pg! &e;ógO*._ >_#='W12>s`05gf caL&f ^@,  {YXAg@ #3EK9}86"?vL\_QY忌u]KW.\N򿺱GW&P +@\{@63}g`˕f&Q`)5j0@~2,Z_v"X@G15$@!;2#: Vff#3y \L 1~v֧v211<{AJRn```8~(4>3'gB xjo3|%Ǡ lAj^)IqOfx.\8 w`DLQOo_2dg 6`S(24V˜mIf0<|a +Py m:p( ? LYP+ B+ de[wpq ߿@O# @b);Gzyf>10^ F@ *D@1~n[-Q/>E ˶7@ @ Hi3Ar_h>fBj)Z Ϭ}P^S#`&{Y: @u< \EAccD.Uw3|?F/^9w)og;}  (v6C$n>pSAtIPӟ,{Wk&"a( L:0{ @XIENDB`tucnak2-2.48/share/pixmaps/Makefile.am0000644000175000017500000000017511567373656014604 00000000000000datarootdir = @datarootdir@ EXTRA_DIST=$(share_DATA) sharedir = $(datadir)/pixmaps share_DATA = tucnak2.png tucnak2.xpm tucnak2-2.48/share/pixmaps/Makefile.in0000644000175000017500000002374311737315444014611 00000000000000# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = share/pixmaps DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(sharedir)" shareDATA_INSTALL = $(INSTALL_DATA) DATA = $(share_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ HAMLIB_CFLAGS = @HAMLIB_CFLAGS@ HAMLIB_LIBS = @HAMLIB_LIBS@ HAVE_MAKE = @HAVE_MAKE@ HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ HAVE_RPM = @HAVE_RPM@ HAVE_RPM_PACKAGING = @HAVE_RPM_PACKAGING@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBFTDI_CFLAGS = @LIBFTDI_CFLAGS@ LIBFTDI_LIBS = @LIBFTDI_LIBS@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RPM_RELEASE = @RPM_RELEASE@ RPM_SOURCESDIR = @RPM_SOURCESDIR@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ TUCNAK_LDADD = @TUCNAK_LDADD@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = $(share_DATA) sharedir = $(datadir)/pixmaps share_DATA = tucnak2.png tucnak2.xpm all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu share/pixmaps/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu share/pixmaps/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-shareDATA: $(share_DATA) @$(NORMAL_INSTALL) test -z "$(sharedir)" || $(MKDIR_P) "$(DESTDIR)$(sharedir)" @list='$(share_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(shareDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(sharedir)/$$f'"; \ $(shareDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sharedir)/$$f"; \ done uninstall-shareDATA: @$(NORMAL_UNINSTALL) @list='$(share_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(sharedir)/$$f'"; \ rm -f "$(DESTDIR)$(sharedir)/$$f"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(sharedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-shareDATA install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-shareDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-shareDATA install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \ uninstall-am uninstall-shareDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tucnak2-2.48/pkg/0000777000175000017500000000000011737317225010614 500000000000000tucnak2-2.48/pkg/tucnak2.spec.in0000644000175000017500000000243411567373661013372 00000000000000# Note that this is NOT a relocatable package %define ver @PACKAGE_VERSION@ %define rel 1@RPM_RELEASE@ %define prefix /usr Summary: VHF and microwave contest log Name: @PACKAGE_VERSION@ Version: %ver Release: %rel License: GPL Group: Applications/Hamradio Source: @PACKAGE_NAME@-%{PACKAGE_VERSION}.tar.gz URL: http://tucnak.nagano.cz/ BuildRoot: /tmp/@PACKAGE_NAME@-%{PACKAGE_VERSION}-root # fill this by your name and email (then uncomment) #Packager: Mike Karas OM4AA Requires: glib %description Tucnak is a amaterur radio VHF and above contest logging program with some useful features as networking, cw keying, ssb voicer, sound recorder and more. User interface is based on Taclog. %prep %setup CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%prefix --sysconfdir=/etc make %install make DESTDIR=$RPM_BUILD_ROOT install %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-, root, root) %config /etc/* %{prefix}/* %changelog * Tue Feb 14 2006 OM4AA - fixed legacy tag - updated to 1.24 * Wed Apr 13 2005 OK1ZIA - Packages for Mandrake made by PE2SVN * Mon Nov 22 2004 OM4AA - updated to version 1.16, for news in this version see ChangeLog * Tue Nov 11 2004 OM4AA - updated .spec file for tucnak2 (and newer) package name * Fri Dec 13 2002 OK1ZIA - created .spec file tucnak2-2.48/pkg/Makefile.am0000644000175000017500000000011011567373661012563 00000000000000datarootdir = @datarootdir@ EXTRA_DIST = tucnak2.spec tucnak2.spec.in tucnak2-2.48/pkg/Makefile.in0000644000175000017500000002175211737315444012605 00000000000000# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = pkg DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/tucnak2.spec.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = tucnak2.spec SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ HAMLIB_CFLAGS = @HAMLIB_CFLAGS@ HAMLIB_LIBS = @HAMLIB_LIBS@ HAVE_MAKE = @HAVE_MAKE@ HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ HAVE_RPM = @HAVE_RPM@ HAVE_RPM_PACKAGING = @HAVE_RPM_PACKAGING@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBFTDI_CFLAGS = @LIBFTDI_CFLAGS@ LIBFTDI_LIBS = @LIBFTDI_LIBS@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RPM_RELEASE = @RPM_RELEASE@ RPM_SOURCESDIR = @RPM_SOURCESDIR@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ TUCNAK_LDADD = @TUCNAK_LDADD@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = tucnak2.spec tucnak2.spec.in all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu pkg/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu pkg/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh tucnak2.spec: $(top_builddir)/config.status $(srcdir)/tucnak2.spec.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tucnak2-2.48/pkg/tucnak2.spec0000644000175000017500000000234711737315464012764 00000000000000# Note that this is NOT a relocatable package %define ver 2.48 %define rel 1 %define prefix /usr Summary: VHF and microwave contest log Name: 2.48 Version: %ver Release: %rel License: GPL Group: Applications/Hamradio Source: tucnak2-%{PACKAGE_VERSION}.tar.gz URL: http://tucnak.nagano.cz/ BuildRoot: /tmp/tucnak2-%{PACKAGE_VERSION}-root # fill this by your name and email (then uncomment) #Packager: Mike Karas OM4AA Requires: glib %description Tucnak is a amaterur radio VHF and above contest logging program with some useful features as networking, cw keying, ssb voicer, sound recorder and more. User interface is based on Taclog. %prep %setup CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%prefix --sysconfdir=/etc make %install make DESTDIR=$RPM_BUILD_ROOT install %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-, root, root) %config /etc/* %{prefix}/* %changelog * Tue Feb 14 2006 OM4AA - fixed legacy tag - updated to 1.24 * Wed Apr 13 2005 OK1ZIA - Packages for Mandrake made by PE2SVN * Mon Nov 22 2004 OM4AA - updated to version 1.16, for news in this version see ChangeLog * Tue Nov 11 2004 OM4AA - updated .spec file for tucnak2 (and newer) package name * Fri Dec 13 2002 OK1ZIA - created .spec file tucnak2-2.48/config.h.in0000644000175000017500000001430611737315465012002 00000000000000/* config.h.in. Generated from configure.in by autoheader. */ /* Alsa installed */ #undef HAVE_ALSA /* Define to 1 if you have the header file. */ #undef HAVE_ARPA_INET_H /* Define to 1 if you have the header file. */ #undef HAVE_CTYPE_H /* Define to 1 if you have the header file. */ #undef HAVE_DIRENT_H /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_ERRNO_H /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H /* ftdi_new() is present (libftdi >= 0.11) */ #undef HAVE_FTDI_NEW /* libftdi contains ftdi_usb_get_strings() */ #undef HAVE_FTDI_USB_GET_STRINGS /* T_LOCK */ #undef HAVE_F_TLOCK /* Define to 1 if you have the header file. */ #undef HAVE_GETOPT_H /* glib2 */ #undef HAVE_GLIB2 /* Define to 1 if you have the `gmtime_r' function. */ #undef HAVE_GMTIME_R /* Define to 1 if you have the header file. */ #undef HAVE_GRP_H /* gthread2 */ #undef HAVE_GTHREAD2 /* hamlib */ #undef HAVE_HAMLIB /* iconv in libc */ #undef HAVE_ICONV /* Define to 1 if you have the header file. */ #undef HAVE_ICONV_H /* iface aix */ #undef HAVE_IFACE_AIX /* iface ifconf */ #undef HAVE_IFACE_IFCONF /* iface ifreq */ #undef HAVE_IFACE_IFREQ /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* fftw3 installed */ #undef HAVE_LIBFFTW3 /* libftdi installed */ #undef HAVE_LIBFTDI /* Define to 1 if you have the header file. */ #undef HAVE_LIBGEN_H /* Define to 1 if you have the `gpm' library (-lgpm). */ #undef HAVE_LIBGPM /* libpng */ #undef HAVE_LIBPNG /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_PPDEV_H /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H /* Define to 1 if you have the `lockf' function. */ #undef HAVE_LOCKF /* long long */ #undef HAVE_LONG_LONG /* Define to 1 if you have the header file. */ #undef HAVE_MATH_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #undef HAVE_NETDB_H /* Define to 1 if you have the header file. */ #undef HAVE_NETINET_IN_H /* Define to 1 if you have the header file. */ #undef HAVE_NETINET_IP_H /* Define to 1 if you have the header file. */ #undef HAVE_NL_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_PNG_H /* Define to 1 if you have the header file. */ #undef HAVE_PROCESS_H /* Define to 1 if you have the header file. */ #undef HAVE_PTY_H /* Define to 1 if you have the header file. */ #undef HAVE_PWD_H /* Define to 1 if you have the header file. */ #undef HAVE_REGEX_H /* libSDL */ #undef HAVE_SDL /* Define to 1 if you have the header file. */ #undef HAVE_SIGNAL_H /* Set to 1 if you have libsndfile. */ #undef HAVE_SNDFILE /* socklen_t */ #undef HAVE_SOCKLEN_T /* Define to 1 if you have the header file. */ #undef HAVE_STDARG_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDIO_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_IOCTL_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_KD_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PARAM_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SELECT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SIGNAL_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SOCKET_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SOUNDCARD_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_VFS_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_WAIT_H /* Define to 1 if you have the header file. */ #undef HAVE_TERMIOS_H /* Define to 1 if you have the header file. */ #undef HAVE_TIME_H /* ioctl TIOCLINUX */ #undef HAVE_TIOCLINUX /* have operator typeof */ #undef HAVE_TYPEOF /* uinf32_t */ #undef HAVE_UINT32_T /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the header file. */ #undef HAVE_UTIME_H /* Define to 1 if you have the header file. */ #undef HAVE_WINSOCK2_H /* Memory leak debug */ #undef LEAK_DEBUG /* Memory leak debug list */ #undef LEAK_DEBUG_LIST /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Shared directory */ #undef SHAREDIR /* The size of `char', as computed by sizeof. */ #undef SIZEOF_CHAR /* The size of `int', as computed by sizeof. */ #undef SIZEOF_INT /* The size of `long', as computed by sizeof. */ #undef SIZEOF_LONG /* The size of `long long', as computed by sizeof. */ #undef SIZEOF_LONG_LONG /* The size of `short', as computed by sizeof. */ #undef SIZEOF_SHORT /* The size of `void *', as computed by sizeof. */ #undef SIZEOF_VOID_P /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define to 1 if you can safely include both and . */ #undef TIME_WITH_SYS_TIME /* Version number of package */ #undef VERSION tucnak2-2.48/rebuild0000755000175000017500000000067211567373661011337 00000000000000#!/bin/bash rm -f config.log config.cache config.h CPUS=`grep ^processor /proc/cpuinfo | wc -l` echo CPUS=$CPUS aclocal automake #automake -c -a #automake doc/Makefile #automake intl/Makefile #automake pkg/Makefile #automake src/Makefile #automake win32/Makefile dirs=`grep ^SUBDIRS Makefile.am|sed 's/.*=//'` for dir in $dirs; do echo automake $dir/Makefile automake $dir/Makefile done autoconf && ./configure && make -j$CPUS tucnak2-2.48/intl/0000777000175000017500000000000011737317225011001 500000000000000tucnak2-2.48/intl/czech.lng0000644000175000017500000004550411571101552012511 00000000000000T__CHAR_SET, "iso8859-2", T__LANGUAGE, "Czech", T_ABOUT, "O programu", T_BAD_NUMBER, "Chybn slo", T_BAD_STRING, "Vadn etzec", T_BASIC_HELP, "Stisknu F10 pro vstup do menu.", T_BLOCK_CURSOR, "Blokov kurzor", T_CANCEL, "Zruit", T_CHARACTER_SET, "Znakov sada", T_COLOR, "Barviky", T_COPYING, "Koprovn", T_DIFFERENCE, "rozdl", T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Opravdu chce ukonit Tuka?", T_EMPTY_STRING_NOT_ALLOWED, "Przdn etzec nen povolen", T_ERROR, "Chyba", T_WARNING, "Varovn", T_EXIT, "mitec", T_EXIT_TUCNAK, "Ukonen Tuka", T_FILE, "Soubor", T_FULL_SCREEN, "Cel obrazovka", T_HELP, "Pomoc", T_HK_ABOUT, "O", T_HK_BEOS_TERMINAL, "B", T_HK_CHARACTER_SET, "Z", T_HK_COPYING, "P", T_HK_EXIT, "E", T_HK_FILE, "S", T_HK_FULL_SCREEN, "C", T_HK_HELP, "P", T_HK_LANGUAGE, "J", T_HK_MEMORY_INFO, "M", T_HK_OS_SHELL, "O", T_HK_SCREEN, "S", T_HK_SETUP, "S", T_HK_TERMINAL_OPTIONS, "T", T_HK_TWTERM, "T", T_HK_WINDOW, "O", T_HK_XTERM, "X", T_KOI8R_FRAMES, "Rmeky KOI8-R", T_LANGUAGE, "Jazyk", T_LAST, "posledn", T_LINUX_OR_OS2_FRAMES, "Rmeky typu Linux nebo OS/2", T_MEMORY_INFO, "Informace o pamti", T_NO_FRAMES, "Bez rmek", T_NO, "Ne", T_NUMBER_EXPECTED, "Oekvm slo", T_NUMBER_OUT_OF_RANGE, "islo je mimo rozsah", T_OK, "OK", T_OS_SHELL, "Pkazov dka", T_RESTRICT_FRAMES_IN_CP850_852, "Ohranien rmeky v cp850/852", T_UTF_8_IO, "UTF-8 vstup/vstup", T_SCREEN, "Screen", T_SETUP, "Nastaven", T_TERMINAL_OPTIONS, "Nastaven terminlu", T_TUCNAK__TACLOG_LIKE, "Tuk " VERSION_STRING "\n\nTACLOGu podobn denk pro VKV/mikrovlnn zvody", T_TWTERM, "Twterm", T_USE_11M, "Pouvat ^[[11m", T_VT_100_FRAMES, "Rmeky VT 100", T_WELCOME_TO_TUCNAK, "Vt T Tuk!\nProsm nastav svou znaku a ostatn daje", T_WELCOME, "Vtej", T_XTERM, "Xterm", T_YES, "Jo", T_CANT_APPEND_S, "Nelze pidat na konec souboru %s", T_CANT_WRITE, "Nelze zapsat do souboru", T_CANT_WRITE_S, "Nelze zapsat do souboru %s", T_CANT_READ, "Nelze pesto soubor", T_CANT_READ_S, "Nelze pest soubor %s", T_SAVED_S, "Uloeno %s", T__CW_, " CW ", T_CWW_KEYS, " PgUp +, PgDn - rychlost CW ", T_CANT_OPEN_S, "Nelze otevt %s", T_CANT_LOCK, "Nelze zamknout soubor", T_CANT_LOCK_S, "Nelze zamknout soubor %s", T_LOADING_CTEST_S, "*** Naten zvod %s", T_NO_FILES, "Neexistuj dn soubory", T_BAND_EXIST_SS, "POZOR! Psmo %s (%s) u existuje", T_BAND_NOT_OPEN, "Psmo nen v tomto zvodu aktivni", T_NO_BANDS, "Neexistuji dn psma", T_CANT_SET_GR_S, "Nelze nastavit grafick md-%s", T_GCALL, "Znaka: %s", T_GWWL, "tverec: %s", T_GQRB, "Vzdlen.: %d km", T_GQTF, "hel: %d", T_GSEN, "Odeslno: %s %s", T_GRCV, "Pijato: %s %s", T_GTIM, "as: %s", T_GOPE, "Opertor: %s", T_GREM, "Pozn: %s", T_GWKD, "Wkd: %d", T_GINC, "Zisk azim:%d", T_GLON, "Dl: %7.2f %-6s", T_GLAT, ": %7.2f %-6s", T_GLOC, "Lok: %s", T__PLESE_WAIT_, " Prosm o chvli strpen ", T__RO_BAND, " PSMO POUZE KE TEN", T_COPYING_VER, "The ultimate contestlog - necessary as known\n\nVerze " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nTento program je svobodn software; me ho it a/nebo pozmovat podle ustanoven Obecn veejn licence GNU, vydan Free Software Foundation; a to verze 2 a ve tto licence.", T_CTEST_ACTIVE, "Ji existuje aktivn zvod ", T_NO_CTESTS, "dn zvody", T_NO_CCLOSE, "Nen co zavrat", T_REALLY, "Skuten?", T_CLOSE_CTEST, "Opravdu chce zavt tento zvod?", T_GUI_LD, "Uiv. prosted: %ld ", T_SBRK, "sbrk: %ld", T_CWI, "C_W: %d cw poloek, %d wc poloek, posledn %d\n", T_EXC, "Exc: %s %d exc poloek, %d exc poloek, posledn %d\n", T_VEXC, "Kontrolovan EXC: %d poloek\n", T_DWI, "D_W: %d prefix, %d zem DXCC, %d tverc\n", T_NAMES, "Names: %d jmen\n", T_MASTER, "Master: %d calls\n", T_MEMS, "Pam:", T_NMY, " J: %s:%d\n", T_NGLOBAL, "Hl.f: %s:%d\n", T_NMASTER, " f: %s %s %s:%d %s %s\n", T_NSLAVES, "\nPodzen:\n", T_NINFO, "Sov informace", T_NO_BANDS_QRV, "dn aktivn psma", T_NO_BANDS_CONF, "dn psma", T_NOT_AVAILABLE, "Nepstupn", T_ADD_SUBWIN, "Pidat okno", T_HK_ADD_SUBWIN, "P", T_CLOSE_SUBWIN, "Zavt okno", T_HK_CLOSE_SUBWIN, "Z", T_HK_NINFO, "S", T_NEW, "Nov", T_HK_NEW, "N", T_NEW_WIZZ, "Prvodce novm zvodem", T_HK_NEW_WIZZ, "P", T_NEW_NET, "Nov ze st", T_HK_NEW_NET, "S", T_OPEN, "Otevt", T_HK_OPEN, "O", T_SAVE, "Uloit", T_HK_SAVE, "U", T_EXPORT_EDI, "Exportovat do EDI", T_HK_EXPORT_EDI, "E", T_EXPORT_REPORT, "Exportovat do reportu (VKVPA)", T_HK_EXPORT_REPORT, "R", T_EXPORT_ADIF, "Exportovat do ADIFu", T_HK_EXPORT_ADIF, "A", T_EXPORT_CBR, "Export as ADIF", T_HK_EXPORT_CBR, "B", T_EXPORT_HTML, "Exportovat do HTML", T_HK_EXPORT_HTML, "H", T_EXPORT_WIKI, "Export as MediaWiki", T_HK_EXPORT_WIKI, "W", T_IMPORT_EDI, "Importovat EDI", T_HK_IMPORT_EDI, "I", T_IMPORT_ADIF, "Importovat ADIF", T_HK_IMPORT_ADIF, "M", T_IMPORT_SWAP, "Importovat swap", T_HK_IMPORT_SWAP, "S", T_IMPORT_LIST, "Import list", T_HK_IMPORT_LIST, "L", T_CONTEST_OP, "Volby bhem zvodu", T_HK_CONTEST_OP, "O", T_CLOSE_CONTEST, "Zavt zvod", T_HK_CLOSE_CONTEST, "Z", T_ADD_ERROR, "Pidat chybn spojen", T_HK_ADD_ERROR, "E", T_CHOP, "Zmna opertora", T_HK_CHOP, "O", T_CW_CTEST, "Aktualizovat C_W ze zvodu", T_HK_CW_CTEST, "C", T_CW_BAND, "Aktualizovat C_W z psma", T_HK_CW_BAND, "B", T_EXC_CTEST, "Aktualizovat EXC ze zvodu", T_HK_EXC_CTEST, "P", T_EXC_BAND, "Aktualizovat EXC z psma", T_HK_EXC_BAND, "D", T_IMPORT_EBW, "Importovat DL8EBW databze", T_HK_IMPORT_EBW, "W", T_NO_CTEST, "Zvod nen", T_NO_PEERS, "Dal Tuci nenalezeni", T_NO_MASTER, "f je nedostupn!", T_CTEST_DEF, "Nastaven zvodu", T_HK_CTEST_DEF, "Z", T_BAND_DEF, "Nastaven psem", T_HK_BAND_DEF, "P", T_HK_RESPOP, "O", T_CW_DAEMON, "Klovn CW", T_HK_CW_DAEMON, "K", T_CW_CQ, "CW vzvy", T_HK_CW_CQ, "C", T_SSB_CQ, "SSB vzvy", T_HK_SSB_CQ, "S", T_AUTOSAVE, "Automatick ukldn", T_HK_AUTOSAVE, "A", T_LOAD_CFG_NET, "Nast nastaven ze st", T_HK_LOAD_CFG_NET, "N", T_LOAD_CW_NET, "Nast C_W ze st", T_HK_LOAD_CW_NET, "W", T_SAVE_CFG, "Uloit nastaven", T_HK_SAVE_CFG, "U", T_CONTEST, "Zvod", T_HK_CONTEST, "Z", T_EDIT, "Edit", T_HK_EDIT, "E", T_BANDS, "Psma", T_HK_BANDS, "B", T_SUBWINS, "Okna", T_HK_SUBWINS, "K", T_BAND_SETTINGS_SC, "Nastaven pro psmo %c %s", T_QRV_ON_THIS_BAND, "QRV na tomto psmu", T_QRV_IN_THIS_CTEST, "QRV v tomto zvod", T_READ_ONLY, "Pouze ke ten", T_MULTI, "Multi", T_SINGLE, "Single", T_CHECK, "Check", T_TXEQUIP, " Vys. zazen:", T_POWER, " Vkon:", T_RXEQUIP, " Pjm. zaz.:", T_ANTENNA, " Antna:", T_AGLASL, "vka zem;moe:", T_OPS, " Opertoi:", T_SPACES1, " ", T_REMARKS, " Poznmky:", T_OK_SECTION_SINGLE, "Kategorie Single v OK", T_OK_SECTION_MULTI, "Kategorie Multi v OK", T_QRG_MIN, "Hranice psma od", T_QRG_MAX, "do [kHz]", T_ADIFBAND, "Nzev psma pro ADIF", T_SKEDQRG, "Frek. pro skedy (lib. formt)", T_BAND_LO, "LO transvertoru [Hz]", T_BANDSW, "Hodnota prepinace pasem", T_RESPOP, "Zodpovdn opertor", T_NAME, "Jmno Pjm:", T_CALLSIGN, " Znaka:", T_ADDRESS, " Adresa:", T_POSTCODE, " PS:", T_CITY, " Msto:", T_COUNTRY, " Zem:", T_PHONE, " Telefon:", T_BBSEMAIL, " BBS/E-mail:", T_QP0, " --nic -- ", T_QP1, " 1 QSOp*QSOp_m (Stand. IARU)", T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)", T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)", T_QP4, " 4 WWL_ring*QSOp_m (OK VKVPA)", T_QP5, " 5 St_miles*QSOp_m", T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)", T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)", T_QP8, " 8 WWL_dist*QSOp_m (Baltsk zvody)", T_QP9, " 9 WWL_dist*QSOp_m (Baltsk & seversk poln den)", T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)", T_QP11, "11 QSOp_m *3 if F (F 50MHz)", T_QP12, "12 RSGB DC (distrikty)", T_QP13, "13 kontinent (CQ WW DX Contest)", T_QP14, "14 kontinent+psmo (CQ WW WPX Contest)", T_QP15, "15 VHF Band (ARRL VHF, CQ VHF)", T_QP16, "16 QSOp *4 if F (Champ. de France)", T_TP0, " --none -- ", T_TP1, " 1 Nsoben (Std. IARU)", T_TP2, " 2 Stan (RSGB Backpacker, VRZA, Sicily)", T_TP3, " 3 Mult. all bands (CQ WW DX Contest)", T_TP4, " 4 All bands togeth. (ARRL VHF)", T_NEW_CTEST, "Nov zvod", T_CANT_TRUNC, "Nelze zkrtit soubor s popisem zvodu", T_NAME_OF_CTEST, "Nzev zvodu:", T_CALL_OF_CTEST, "Znaka v zvodu:", T_CLUB_ST, "Klubov znaka:", T_YOURWWL, "Tvj WWL:", T_YOUREXC, "Tvj EXC:", T_DATE_OF_CTEST, "Datum zvodu:", T_QSOUSED, "QSO NR pouito", T_QSOPM, " QSOp nsob.:", T_WWLUSED, "WWL pouito", T_WWLB, "WWL bonus:", T_WWLM, "WWL nsob.:", T_EXCUSED, "EXC pouito", T_EXCB, " EXC bonus:", T_EXCM, "EXC nsob.:", T_EXCNAME, " EXC jmno:", T_PREFM, "PREF nsob:", T_DXCB, " DXC bonus:", T_DXCM, "DXC nsob.:", T_RSTUSED, "RST pouito", T_DEFRS, " Pednast.RS:", T_DEFRST, "Pednast.RST:", T_ALSORSTR, "Tak pro RST-R", T_QP_CALC, " Vpoet QSOp:", T_TO_CALC, "Vpoet celku:", T_EDI_PROP, "EDI poloky", T_RESPOP2, "Odpovdn opertor", T_EDIT_QSO_CD, "Editace spojen %c: %03d", T_CALLSIGN2, " Znaka:", T_CLUB, " Klub:", T_PADR1, " PAdr1:", T_PADR2, " PAdr2:", T_RS, " RS:", T_RST, " RST:", T_OPERATOR, "Opertor:", T_DATE, " Datum:", T_MODE, " Md:", T_RSTS, "Odes.RST:", T_RSTR, "Pij.RST:", T_QSONRS, "Ode.spoj:", T_QSONRR, "Pi.spoj:", T_OPTEXCH, " OptExch:", T_WWL, " tverec:", T_REMARK, "Poznmka:", T_QRV2, " QRV on:", T_WKD, " WKD:", T_SEND_SKED, "Poslat sked", T_SELECT, "Vyber ", T_QRG, "Frekvence:", T_WE_CALL, "J volm", T_BAND, " Psmo:", T_TIME, " as:", T_DUPE_QSO, "Duplicitn QSO!", T_CLEAR_THIS_QSO, "Smazat toto QSO", T_EDIT_OLD_QSO, "Editovat star QSO", T_MARK_OLD_QSO, "Oznait star QSO jako ERROR", T_STORE_AS_DUPE, "Uloit toto jako DUPE", T_BAD_CALL, "Tohle nevypad jako znaka", T_N_CALLSIGN, "\nZnaka:", T_AUTOSAVE_OPTS, "Automatick ukldn", T_SAVE_AQ, "Uloit na disk po potu spojen: ", T_SAVE_AM, "Uloit na disk po potu minut: ", T_FSYNC, "Synchronizovat cache s diskem", T_SAVE_AQF, "Uloit na disketu po potu spojen: ", T_SAVE_AMF, "Uloit na disketu po poru minut: ", T_DO_MOUNT, "Pipojit disketu pokud nen v /etc/mtab (N/A)", T_FLOPPY_PATH, "Cesta k disket:", T_MOUNT_CMD, "Pkaz pro pipojen (N/A): ", T_SW_SHELL, "Pk", T_SW_QSOS, "Spoj", T_SW_LOG, "Log", T_SW_TALK, "Kec", T_SW_SKED, "Sked", T_SW_UNFI, "Nedok", T_SW_DXC, "Clust", T_SW_STAT, "Stat", T_SW_MAP, "Mapa", T_SW_SCOPE, "Osc", T_SW_QRV, "QRV", T_SW_HF, "HF", T_SW_PLAYER, "Player", T_SW_CHART, "Chart", T_SHELL, "Pkazov dek", T_QSOS, "QSOs", T_LOG, "Log", T_TALK, "Kec (rozhovor)", T_SKEDS, "Skedy (dumluven spojen)", T_UNFI, "Nedokonen spojen", T_DXC, "DX Cluster (N/A)", T_STAT, "Statistiky", T_SWAP, "Swap (N/A)", T_MAP, "Graphick mapa", T_SCOPE, "Osciloskop", T_QRV, "QRV", T_HF, "HF", T_CMD, "Pkaz", T_RESPAWN, "Znovusputn [sek]:", T_UNFI_QSO, "Nedokonen spojen", T_N_REMARK, "\nPoznmka:", T_NO_CQ, "Neexistuj dn vzvy", T_TEXT, "Text:", T_SPEED, "Rychlost [WPM]:", T_REPEAT, "Opakovn", T_DELAY, "ekn [0.1s]:", T_ALLOW_UNDEF, "Povolit i kdy je nkter poloka neznm", T_CW_DSCS, "CW%d (%s) %c %s", T_FILENAME, "Soubor:", T_SSB_DSCS, "SSB%d (%s) %c %s", T_UDPPORT, "UDP port:", T_DEVICE, "Klovac zazen:", T_INIT_SPEED, "Poten rychlost [WPM]:", T_INIT_WEIGHT, "Vha (30-70):", T_WPMFROM, "Rychlost WPM od", T_WPMTO, "do", T_USE_SPK, "Pout speaker (reprk)", T_LEADIN, " Pedstih PTT [ms]", T_AUTGIVE, "Run mode aut. give after [chars]", T_IGN_IFACE_S, "Ignoruji sov rozhran %-5s", T_IGN_ADDR_S, "Ignoruji adresu %s", T_ADD_IFACE_SSD, "Pidno rozhran=%-5s vesmr=%s:%d", T_FORCED_ADDR, "Adresa navc %s", T_TIMESKEW, "POZOR! Detekovn pli velk rozdl asu %d oproti %s:%d !\n", T_DISCONNECTING_SD, "Odpojuji od %s:%d", T_ACCEPTED_SD, "Akceptovno spojen od %s:%d", T_CONNECTING_SD, "Pipojuji k %s:%d", T_CONNECTED_SD, "Pipojeno k %s:%d", T_DISCONNECTED_SD, "Odpojen od %s:%d", T_LOADED_CFG_SSSS, "Nateno nastaven pro %s %s (%s,%s)", T_LOADED_CW, "Natena C_W databze", T_PEER_NOT_FOUND, "CHYBA! Tuk %s nenalzen", T_CANT_CREATE_HOME_S, "Nelze vytvoit adres %s", T_CANT_LOAD_CFG, "Nelze nast konfiguraci!\nProgram neme pracovat sprvn!", T_ERR_RC, "Dolo k chyb pi ten konfigurku!\nSoubor byl pravdpodobn uloen novjm Tukem !\nRadji neukldej konfiguraci nebo pijde o data v konfigurku!", T_SES_QTR, " as ", T_SES_QRA, " Znaka ", T_SES_RST, " RST-O- RST-P- ", T_SES_QTH, " tverec ", T_SES_QRB, "Body/vzd hel", T_SES_FLG, " Pzn", T_SES_OPE, " Oper ", T_SES_EXC, " Exch ", T_SES_REM, " Poznmka ", T_SES_WELCOME, "Vt t Tuk! ", T_SES_PRESS_F10, "Stiskni F10 pro vstup do menu. ", T_SES_HAVE_FUN, "Uij si.", T_SES_URL, "http://tucnak.nagano.cz ", T_SES_ODX, "ODX: ", T_SES_ODX_DATA, "%s %s %d km (%s)", T_SES_STAT_TIT, "Spoj Spoj-b OptX Locs Zem Celkem-b Prm", T_SES_AVG, "Prm: %5.2f", T_SES_WPM, " QRQ: %d %02d%%", T_SF_WWLS, " tverce: %d", T_SF_WWLS_UNDER, "----------------", T_SF_EXCS, " EXC poloky: %d", T_SF_EXCS_UNDER, "--------------------", T_SF_MISS_EXCS, " Missing EXCs: %d", T_SF_MISS_EXCS_UNDER, "---------------------", T_SF_PREFS, " PREFs: %d", T_SF_PREFS_UNDER, "-------------", T_SF_DXCS, " Zem: %d", T_SF_DXCS_UNDER, "-------------", T_SF_WKD_WWLS, " Dlan tverce: %d", T_SF_WKD_WWLS_UNDER, "----------------------", T_SF_QSO_WWL4, " Spojen do velkch tverc: %d", T_SF_QSO_WWL4_UNDER, "-----------------------------------", T_SF_STATS_BAND, " Statistiky pro psmo %s", T_SF_STATS_BAND_UNDER, "===============================", T_SF_CONTEST, "Contest: %s", T_SF_ALLBQSOS, "All bands QSOs: %d", T_SF_ALLBQSOP, "All bands QSOp: %d", T_SF_ALLBPTS, "All bands pts: %d", T_SF_QSOS, "QSOs: %d", T_SF_QSOP, "QSO points: %d", T_SF_PTS, "Points: %d", T_SF_AVG_PTS, "Prmer bod/spojen: %5.2f", T_SF_AVG_QSOP, "Prmr bod za spojen/spojen: %5.2f", T_BAND_RO, "Psmo je pouze ke ten", T_THIS_BAND, "Toto psmo", T_OTHER_BANDS, "Ostatn psma", T_CW_DB, "C_W databze", T_PROC_EXITED, "*** Proces skonil\n", T_WE_CALL2, "my volme", T_WE_LISTEN, "my poslouchme", T_QSL, "Slben QSL", T_RECORD, " Nahrvn provozu", T_MAXMIN, "Max. doba nahrvn", T_TEMPLATE, "ablona pro nahrvan soubor", T_PCM8, "8 bitov PCM", T_PCM16, "16 bitov PCM", T_ULAW, "u-law", T_ALAW, "A-law", T_IMAADPCM, "IMA ADPCM", T_MSADPCM, "MS ADPCM", T_GSM610, "GSM 6.10", T_CHANNELS, "Poet kanl", T_SAMPLERATE, "Vzorkovac frekvence", T_FILLOP, "Vypl znaky opertor", T_HK_FILLOP, "V", T_RECAQRB, "Pepoti QRB,QTF", T_HK_RECAQRB, "P", T_NETWORK, "S a trasovn", T_HK_NETWORK, "T", T_IF_IGNORE, "Ignorovat interfejsy:", T_IP_IGNORE, " Ignorovat podst:", T_IP_ANNOUNCE, " Annoncovat do st:", T_TRACE_BCAST, "Trasovat broadcasty ", T_TRACE_SOCK, "Trasovat sockety", T_TRACE_RECV, "Trasovat pijat data", T_TRACE_SEND, "Trasovat odeslan data", T_TRACE_QSOS, "Trasovat spojen", T_TRACE_SDEV, "Trace rotars", T_NOT_MOUNTED_S, "Svazek nepipojen %s", T_RECSRC_NONE, "Nenastavovat", T_RECSRC_MIC, "Mikrofon", T_RECSRC_LINE, "Linkov vstup", T_NEW_CALL, "Nov!", T_HK_NEW_CALL, "n", T_QRV_ON_S, "QRV na %s", T_SKED_QRG, "QRG pro skedy", T_HK_SKED_QRG, "G", T_N_SKED_QRG, "\nQRG pro skedy:", T_GRAB_BAND, "Pevzt psmo", T_HK_GRAB_BAND, "P", T_FORCE_RUN, "RUN md nsiln", T_HK_FORCE_RUN, "R", T_EXPORT_STATS, "Exportovat statistiky", T_HK_EXPORT_STATS, "T", T_SF_TOP_DX, " TOP %d DX spojen:", T_SF_TOP_DX_UNDER, "----------------------", T_ROTAR, "Rotator", T_HK_ROTAR, "R", T_AZIMUTH, " Azimut", T_ELEVATION, "Elevace", T_CH_SPY, "pehovn", T_HK_CH_SPY, "P", T_CH_ENDSPY, "Konec pehovn", T_HK_CH_ENDSPY, "K", T_EXPORT_TITLPAGE, "Exportovat tituln strnku", T_HK_EXPORT_TITLPAGE, "T", T_BREAK_RECORD, "Peruit nahrvn", T_HK_BREAK_RECORD, "P", T_GLOBAL_OPERATOR, "Zmnit na vech psmech", T_GLOBAL_OPERATOR2, "Globln", T_MAXFRAG, "Max. poet fragment (>=2)", T_PLAY_LAST, "Play last sample", T_HK_PLAY_LAST, "P", T_MISCOPTS, "Rzn nastaven", T_HK_MISCOPTS, "R", T_LOGLINES, "dky logu: ", T_SKEDSHIFT, "Posuv skedu (minuty): ", T_STARTBAND, "Psmo po startu: ", T_GFX_X_CH, "Rozlien (znaky):", T_GFX_Y_CH, "x", T_GFX_X_PX, "Rozlien (body):", T_GFX_Y_PX, "x", T_CALL_INFO, "Informace o znace", T_HK_CALL_INFO, "I", T_SF_QSO_HOUR, "QSO/hod: %d", T_SF_QSOP_HOUR, "Body/hod: %d", T_SF_QSOP_50QSO, "Body/posl. 50 QSO: %d", T_SF_HOURS, " Hodiny", T_SF_HOURS_UNDER, "----------", T_SF_HOURS_TITLE, "Hodiny Body Spojen prmr bod/QSO", T_QSO_CHECK, "Kontrola spojen", T_HK_QSO_CHECK, "K", T_AUDIO, "Audio", T_HK_AUDIO, "D", T_ALSA, "Alsa", T_OSS, "OSS", T_SSBD, "SSB dmon", T_DISKFREE, "Minimln msto na disku [MiB]", T_FORMAT, "Formt nahrvn", T_PCM_PLAY, "Alsa pehrvn", T_PCM_REC, "Alsa zznam", T_PERIOD, "Period time [ms]", T_BUFFER, "Buffer time [ms]", T_ALSA_MIXER, "Alsa mixer", T_CAPTURE, "Zdroj zznamu", T_DSP, "Cesta k /dev/dsp", T_MIXER, "Cesta k /dev/mixer", T_RECSRC, "Record source", T_SSBD_HOSTNAME, "SSBD stroj:", T_HOSTNAME, "Stroj:", T_SLASHKEY, "Klvesa pro lomtko", T_FIXQRG, "Opravit QRG", T_HK_FIXQRG, "v", T_ENTER_QRG, "Zadej pesnou frekvenci QRG [Hz]", T_BAD_QRG, "Chybn zadan frekvence", T_CALLSIGN3, "Znaka", T_CALLSIGN_KST, "Znaka stanice na KST:", T_CANT_INIT_WINKEY_S, "Nelze inicializovat winkey na %s", T_WINKEYOPTS, "Nastaven Winkey", T_WK_WK2, "Rychl inicializace Winkey2", T_WK_USEPOT, "Pout potenciometr", T_WK_USEBUT, "Pout tlatka", T_WK_KM_B, "Curtis-B", T_WK_KM_A, "Curtis-A", T_WK_KM_U, "Ultimatic", T_WK_KM_G, "Run kl", T_WK_SWAP, "Prohodit pastiku (levk)", T_RIGOPTS, "Rdio", T_HK_RIGOPTS, "R", T_RIG_DEVICE, "Device:", T_RIG_MODEL, "Model", T_RIG_SPEED, "Baudrate: ", T_RIG_CIV, "CIV address", T_RIG_FREQSHIFT, "Freq. shift SSB->CW", T_RIG_CHOOSE, "Choose", T_ROTAROPTS, "Rottory", T_HK_ROTAROPTS, "I", T_DSSAVER, "Vypnout spoi obrazovky", T_DESC, "Popis", T_ROT_NONE, "None", T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys", T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI", T_ROT_HAMLIB, "Hamlib (N/A)", T_ROT_REMOTE, "Remote (N/A)", T_ROT_VID, "VID:", T_ROT_PID, "PID:", T_ROT_SERIAL, "Serial #", T_ROT_ADD, "Add new rotator", T_HK_ROT_ADD, "W", T_ROT_REMOVE, "Remove rotator", T_HK_ROT_REMOVE, "R", T_TIMEOUT, "Timeout:", T_BEAMWIDTH, "ka laloku", T_SADDR, "Communication address:", T_MODEL, "Model:", T_ROT_REM_ROTSTR, "Rotator letter for remote", T_QSOGLOB, "Global QSO NR", T_PREFGLOB, "Global prefix", T_NOT_RECORDING_S, "Not recording - %s", T_SKEDCOUNT, "Poet sked v popup okn: ", T_FONTHEIGHT, "Vka fontu (16-32): ", T_RIG_POLL_MS, "Rig poll interval [ms]: ", T_RIG_QRG_R2T, "Set band from radio", T_RIG_QRG_T2R, "Change band on radio", T_RIG_MODE_T2R, "Change mode on radio", T_RUN_MODE, "Run mode", T_HK_RUN_MODE, "M", T_SP_MODE, "S&P mode", T_HK_SP_MODE, "M", T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save", T_RIG_DEBUG, "Debug rig", T_HF_RATE, "Rate: %3d/10 %3d/60", T_HF_BAND, "Band QSO Point Mult", T_HF_SUM, "Sum:", T_HF_LAST, "Last Q-%s P-%s", T_EVEN, "TX even", T_HK_EVEN, "v", T_ODD, "TX odd", T_HK_ODD, "d", T_1ST, "TX 1st", T_HK_1ST, "1", T_2ND, "TX 2nd", T_HK_2ND, "2", T_HF_SCORE, "Score:", T_EXPMODE, "Expedition mode", T_TTTYPE, "Only digits mean", tucnak2-2.48/intl/castellano.lng0000644000175000017500000004564311571101552013546 00000000000000T__CHAR_SET, "us-ascii", T__LANGUAGE, "Castellano", T_ABOUT, "Acerca", T_BAD_NUMBER, "Numero incorrecto", T_BAD_STRING, "Texto incorrecto", T_BASIC_HELP, "Presione F10 para menu.\nDiviertase!", T_BLOCK_CURSOR, "Block cursor", T_CANCEL, "Cancelar", T_CHARACTER_SET, "Juego de caracteres", T_COLOR, "Color", T_COPYING, "Copy", T_DIFFERENCE, "diferencia", T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Quieres salir de Tucnak?", T_EMPTY_STRING_NOT_ALLOWED, "No se permiten textos vacios", T_ERROR, "Error", T_WARNING, "Cuidado", T_EXIT, "Salir", T_EXIT_TUCNAK, "Salir de Tucnak", T_FILE, "Archivo", T_FULL_SCREEN, "Pantalla Completa", T_HELP, "Ayuda", T_HK_ABOUT, "A", T_HK_BEOS_TERMINAL, "B", T_HK_CHARACTER_SET, "H", T_HK_COPYING, "C", T_HK_EXIT, "X", T_HK_FILE, "F", T_HK_FULL_SCREEN, "F", T_HK_HELP, "H", T_HK_LANGUAGE, "L", T_HK_MEMORY_INFO, "M", T_HK_OS_SHELL, "O", T_HK_SCREEN, "S", T_HK_SETUP, "S", T_HK_TERMINAL_OPTIONS, "T", T_HK_TWTERM, "T", T_HK_WINDOW, "W", T_HK_XTERM, "X", T_KOI8R_FRAMES, "KOI8-R frames", T_LANGUAGE, "Lenguaje", T_LAST, "ultimo", T_LINUX_OR_OS2_FRAMES, "Entorno OS/2 o Linux", T_MEMORY_INFO, "Info de memoria", T_NO_FRAMES, "No frames", T_NO, "No", T_NUMBER_EXPECTED, "Se esperaba un numero en el campo", T_NUMBER_OUT_OF_RANGE, "Numero fuera de rango", T_OK, "OK", T_OS_SHELL, "OS shell", T_RESTRICT_FRAMES_IN_CP850_852, "Restrict frames in cp850/852", T_UTF_8_IO, "UTF-8 Entrada/Salida", T_SCREEN, "Pantalla", T_SETUP, "Setup", T_TERMINAL_OPTIONS, "Opciones de terminal", T_TUCNAK__TACLOG_LIKE, "Tucnak " VERSION_STRING "\n\nTACLOG-like V/U/SHF contest log", T_TWTERM, "Twterm", T_USE_11M, "Use ^[[11m", T_VT_100_FRAMES, "VT 100 frames", T_WELCOME_TO_TUCNAK, "Bienvenido a Tucnak!\nPor favor, ingrese su licencia y los proximos campos de datos", T_WELCOME, "Bienvenido", T_XTERM, "Xterm", T_YES, "Si", T_CANT_APPEND_S, "No puedo abrir el archivo %s", T_CANT_WRITE, "No puedo escribir el archivo", T_CANT_WRITE_S, "No puedo escribir al archivo %s", T_CANT_READ, "No puedo leer desde el archivo", T_CANT_READ_S, "No puedo leer desde el archivo %s", T_SAVED_S, "Salvado %s", T__CW_, " CW ", T_CWW_KEYS, " PgUp +, PgDn - velocidad cw ", T_CANT_OPEN_S, "No puedo abrir %s", T_CANT_LOCK, "No se puede lockear", T_CANT_LOCK_S, "No puedo lockear %s", T_LOADING_CTEST_S, "*** Cargando concurso %s", T_NO_FILES, "No hay archivos en el directorio", T_BAND_EXIST_SS, "CUIDADO! Banda %s (%s) ya existe", T_BAND_NOT_OPEN, "Banda no activa en este concurso", T_NO_BANDS, "No bandas a cargar", T_CANT_SET_GR_S, "No puedo setear modo grafico-%s", T_GCALL, "Licencia: %s", T_GWWL, "Locator: %s", T_GQRB, "QRB: %d km", T_GQTF, "QTF: %d", T_GSEN, "Enviado: %s %s", T_GRCV, "Recibido: %s %s", T_GTIM, "Hora: %s", T_GOPE, "Op: %s", T_GREM, "Notas: %s", T_GWKD, "Wkd: %d", T_GINC, "ingreso: %d", T_GLON, "Lon:%7.2f %-6s", T_GLAT, "Lat:%7.2f %-6s", T_GLOC, "Loc: %s", T__PLESE_WAIT_, " Por favor, espere", T__RO_BAND, " BANDA DE SOLO LECTURA", T_COPYING_VER, "The ultimate contestlog - necessary as known\n\nVersion " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nThis program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.", T_CTEST_ACTIVE, "El concurso ya esta activo", T_NO_CTESTS, "No concursos", T_NO_CCLOSE, "No hay concurso para cerrar", T_REALLY, "Realmente?", T_CLOSE_CTEST, "Quieres cerrar realmente este concurso?", T_GUI_LD, "GUI: %ld ", T_SBRK, "sbrk: %ld", T_CWI, "C_W: %d cw items, %d wc items, ultimo %d\n", T_EXC, "Exc: %s %d exc items, %d cxe items, ultimo %d\n", T_VEXC, "Verificados EXC: %d items\n", T_DWI, "D_W: %d prefijos, %d DXCCs, %d WWLs\n", T_NAMES, "Nombre: %d nombres\n", T_MASTER, "Master: %d calls\n", T_MEMS, "Memoria:", T_NMY, " Yo: %s:%d\n", T_NGLOBAL, "Global: %s:%d\n", T_NMASTER, "Master: %s %s %s:%d %s %s\n", T_NSLAVES, "\nSlaves:\n", T_NINFO, "Network info", T_NO_BANDS_QRV, "No hay bandas QRV", T_NO_BANDS_CONF, "No hay bandas configuradas", T_NOT_AVAILABLE, "No disponible", T_ADD_SUBWIN, "Add subwin", T_HK_ADD_SUBWIN, "A", T_CLOSE_SUBWIN, "Close subwin", T_HK_CLOSE_SUBWIN, "C", T_HK_NINFO, "N", T_NEW, "Nuevo", T_HK_NEW, "N", T_NEW_WIZZ, "Nuevo desde el ayudante", T_HK_NEW_WIZZ, "W", T_NEW_NET, "Nuevo desde la red", T_HK_NEW_NET, "T", T_OPEN, "Abrir", T_HK_OPEN, "O", T_SAVE, "Salvar", T_HK_SAVE, "S", T_EXPORT_EDI, "Exportar como EDI", T_HK_EXPORT_EDI, "E", T_EXPORT_REPORT, "Exportar como report", T_HK_EXPORT_REPORT, "R", T_EXPORT_ADIF, "Exportar como ADIF", T_HK_EXPORT_ADIF, "A", T_EXPORT_CBR, "Export as ADIF", T_HK_EXPORT_CBR, "B", T_EXPORT_HTML, "Exportar como HTML", T_HK_EXPORT_HTML, "H", T_EXPORT_WIKI, "Export as MediaWiki", T_HK_EXPORT_WIKI, "W", T_IMPORT_EDI, "Importar EDI", T_HK_IMPORT_EDI, "I", T_IMPORT_ADIF, "Importar ADIF", T_HK_IMPORT_ADIF, "M", T_IMPORT_SWAP, "Importar swap", T_HK_IMPORT_SWAP, "S", T_IMPORT_LIST, "Import list", T_HK_IMPORT_LIST, "L", T_CONTEST_OP, "Opciones del concurso", T_HK_CONTEST_OP, "O", T_CLOSE_CONTEST, "Cerrar concurso", T_HK_CLOSE_CONTEST, "C", T_ADD_ERROR, "Add ERROR", T_HK_ADD_ERROR, "E", T_CHOP, "Cambiar concurso", T_HK_CHOP, "O", T_CW_CTEST, "Actualizar C_W desde el concurso", T_HK_CW_CTEST, "C", T_CW_BAND, "Actualizar C_W desde bandas", T_HK_CW_BAND, "B", T_EXC_CTEST, "Actualizar EXC DB desde el concurso", T_HK_EXC_CTEST, "A", T_EXC_BAND, "Actualizar EXC DB desde bandas", T_HK_EXC_BAND, "T", T_IMPORT_EBW, "Importar base de datos DL8EBW", T_HK_IMPORT_EBW, "W", T_NO_CTEST, "No concurso", T_NO_PEERS, "No encontre peers", T_NO_MASTER, "Master no esta disponible!", T_CTEST_DEF, "Defaults de concursos", T_HK_CTEST_DEF, "O", T_BAND_DEF, "Defaults de bandas", T_HK_BAND_DEF, "B", T_HK_RESPOP, "R", T_CW_DAEMON, "CW keying", T_HK_CW_DAEMON, "E", T_CW_CQ, "CW CQ", T_HK_CW_CQ, "C", T_SSB_CQ, "SSB CQ", T_HK_SSB_CQ, "S", T_AUTOSAVE, "Autosalvar", T_HK_AUTOSAVE, "A", T_LOAD_CFG_NET, "Cargar cfg desde net", T_HK_LOAD_CFG_NET, "N", T_LOAD_CW_NET, "Cargar C_W desde net", T_HK_LOAD_CW_NET, "W", T_SAVE_CFG, "Salvar configuracion", T_HK_SAVE_CFG, "F", T_CONTEST, "Concurso", T_HK_CONTEST, "C", T_EDIT, "Editar", T_HK_EDIT, "E", T_BANDS, "Bandas", T_HK_BANDS, "B", T_SUBWINS, "Subwins", T_HK_SUBWINS, "W", T_BAND_SETTINGS_SC, "Seteo de bandas para banda %c %s", T_QRV_ON_THIS_BAND, "QRV sobre esta banda", T_QRV_IN_THIS_CTEST, "QRV en este concurso", T_READ_ONLY, "Solo lectura", T_MULTI, "Multi", T_SINGLE, "Single", T_CHECK, "Check", T_TXEQUIP, " TX Equip:", T_POWER, " Power:", T_RXEQUIP, " RX Equip:", T_ANTENNA, " Antena:", T_AGLASL, " AGL;ASL:", T_OPS, "Operadores:", T_SPACES1, " ", T_REMARKS, " Notas:", T_OK_SECTION_SINGLE, "Categoria single es OK", T_OK_SECTION_MULTI, "Multi categoria es OK", T_QRG_MIN, "Extremos de banda desde", T_QRG_MAX, "a [kHz]", T_ADIFBAND, "ADIF nombre de banda", T_SKEDQRG, "QRG para skeds (texto libre)", T_BAND_LO, "Transverter's LO QRG [Hz]", T_BANDSW, "Band switch value", T_RESPOP, "Operador responsable", T_NAME, " Nombre:", T_CALLSIGN, " Licencia:", T_ADDRESS, " Direccion:", T_POSTCODE, " Cod.Postal:", T_CITY, " Ciudad:", T_COUNTRY, " Pais:", T_PHONE, " Telefono:", T_BBSEMAIL, " BBS/Email:", T_QP0, " -- nada -- ", T_QP1, " 1 QSOp*QSOp_m (Std. IARU)", T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)", T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)", T_QP4, " 4 WWL_ring*QSOp_m (OK activity)", T_QP5, " 5 St_miles*QSOp_m", T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)", T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)", T_QP8, " 8 WWL_dist*QSOp_m (Baltic)", T_QP9, " 9 WWL_dist*QSOp_m (Baltic & Nordic fieldday)", T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)", T_QP11, "11 QSOp_m *3 if F (F 50MHz)", T_QP12, "12 RSGB DC (district codes)", T_QP13, "13 Continent (CQ WW DX Contest)", T_QP14, "14 Continent+band (CQ WW WPX Contest)", T_QP15, "15 VHF Band (ARRL VHF, CQ VHF)", T_QP16, "16 QSOp *4 if F (Champ. de France)", T_TP0, " -- nada -- ", T_TP1, " 1 Multiplicative (Std. IARU)", T_TP2, " 2 Additive (RSGB Backpacker, VRZA, Sicily)", T_TP3, " 3 Mult. all bands (CQ WW DX Contest)", T_TP4, " 4 All bands togeth. (ARRL VHF)", T_NEW_CTEST, "Nuevo concurso", T_CANT_TRUNC, "No puedo truncar la descrip. del archivo", T_NAME_OF_CTEST, "Nombre del concurso:", T_CALL_OF_CTEST, "Licencia en el concurso:", T_CLUB_ST, "Radio Club:", T_YOURWWL, "Su Locator:", T_YOUREXC, "SU EXC:", T_DATE_OF_CTEST, "Fecha del concurso:", T_QSOUSED, "QSO NR usado", T_QSOPM, " QSOp multi:", T_WWLUSED, "Locator used ", T_WWLB, "WWL bonus:", T_WWLM, "WWL multi:", T_EXCUSED, "EXC usado", T_EXCB, " EXC bonus:", T_EXCM, "EXC multi:", T_EXCNAME, " EXC nombre: ", T_PREFM, "PREF multi:", T_DXCB, " DXC bonus:", T_DXCM, "DXC multi:", T_RSTUSED, "RST Usado ", T_DEFRS, "Default RS:", T_DEFRST, "Def RST:", T_ALSORSTR, "Tamb. para RST-R", T_QP_CALC, " QSOp calc:", T_TO_CALC, "Total calc:", T_EDI_PROP, "EDI prop", T_RESPOP2, "Op. responsable", T_EDIT_QSO_CD, "Editar QSO %c: %03d", T_CALLSIGN2, "Licencia:", T_CLUB, " Club:", T_PADR1, " Direc.1:", T_PADR2, " Direc.2:", T_RS, " RS:", T_RST, " RST:", T_OPERATOR, "Operador:", T_DATE, " Fecha:", T_MODE, " Modo:", T_RSTS, " RSTs:", T_RSTR, " RSTr:", T_QSONRS, "QSO env.:", T_QSONRR, "QSO rec.:", T_OPTEXCH, " OptExch:", T_WWL, " Locator:", T_REMARK, " Notas:", T_QRV2, " QRV on:", T_WKD, " WKD:", T_SEND_SKED, "Sked enviado", T_SELECT, "Seleccionar", T_QRG, " QRG:", T_WE_CALL, " Llamamos", T_BAND, " Banda:", T_TIME, " Hora:", T_DUPE_QSO, "QSO duplicado!", T_CLEAR_THIS_QSO, "Limpiar este QSO", T_EDIT_OLD_QSO, "Editar QSO viejo", T_MARK_OLD_QSO, "Marcar QSO viejo como ERROR", T_STORE_AS_DUPE, "Almacenar como DUP", T_BAD_CALL, "Esto no parece ser una licencia!", T_N_CALLSIGN, "\nLicencia:", T_AUTOSAVE_OPTS, "Opciones de Autosalvado", T_SAVE_AQ, "Salvar al disco luego del QSO:", T_SAVE_AM, "Salvar al disco luego de minutos:", T_FSYNC, "Fsync", T_SAVE_AQF, "Salvar al disquette luego del QSO: ", T_SAVE_AMF, "Salvar al disquette luego de minutos:", T_DO_MOUNT, "Mount no esta en /etc/mtab (no usado)", T_FLOPPY_PATH, "Path al disquette:", T_MOUNT_CMD, "Comando de montar: ", T_SW_SHELL, "Shell", T_SW_QSOS, "QSOs", T_SW_LOG, "Log", T_SW_TALK, "Talk", T_SW_SKED, "Sked", T_SW_UNFI, "Unfi", T_SW_DXC, "DXC", T_SW_STAT, "Stat", T_SW_MAP, "Map", T_SW_SCOPE, "Scope", T_SW_QRV, "QRV", T_SW_HF, "HF", T_SW_PLAYER, "Player", T_SW_CHART, "Chart", T_SHELL, "Shell", T_QSOS, "QSOs", T_LOG, "Log", T_TALK, "Talk", T_SKEDS, "Skeds", T_UNFI, "QSOs no finalizados", T_DXC, "DX Cluster (N/A)", T_STAT, "Stadisticas", T_SWAP, "Swap (N/A)", T_MAP, "Mapa grafico", T_SCOPE, "Scope", T_QRV, "QRV", T_HF, "HF", T_CMD, "Comando", T_RESPAWN, "Respawn [sec]:", T_UNFI_QSO, "QSO no finalizado", T_N_REMARK, "\nNota:", T_NO_CQ, "No hay CQ definido", T_TEXT, "Texto:", T_SPEED, "Velocidad [WPM]:", T_REPEAT, "Repetir", T_DELAY, "Retardo [0.1s]:", T_ALLOW_UNDEF, "Pemitir aunque algun item no este definido", T_CW_DSCS, "CW%d (%s) %c %s", T_FILENAME, "Archivo:", T_SSB_DSCS, "SSB%d (%s) %c %s", T_UDPPORT, "UDP port:", T_DEVICE, "Dispositivo de Keying:", T_INIT_SPEED, "Velocidad inicial [WPM]:", T_INIT_WEIGHT, "Peso:", T_WPMFROM, "WPM Rango desde", T_WPMTO, "a", T_USE_SPK, "Use parlante", T_LEADIN, " PTT retardo in [ms]", T_AUTGIVE, "Run mode aut. give after [chars]", T_IGN_IFACE_S, "Ignorando interface %-5s", T_IGN_ADDR_S, "Ignorando address %s", T_ADD_IFACE_SSD, "Adicionando interface=%-5s BCAST=%s:%d", T_FORCED_ADDR, "Forzando la direccion %s", T_TIMESKEW, "CUIDADO! Desfasaje de tiempo %d detectado con %s:%d !\n", T_DISCONNECTING_SD, "Desconectando de %s:%d", T_ACCEPTED_SD, "Aceptando %s:%d", T_CONNECTING_SD, "Conectando a %s:%d", T_CONNECTED_SD, "Conectado a %s:%d", T_DISCONNECTED_SD, "Desconectado de %s:%d", T_LOADED_CFG_SSSS, "Config cargado para %s %s (%s,%s)", T_LOADED_CW, "Cargado datos C_W data", T_PEER_NOT_FOUND, "ERROR! Peer %s no encontrado", T_CANT_CREATE_HOME_S, "No puedo crear el directorio %s", T_CANT_LOAD_CFG, "No puedo cargar la configuracion!\nEl programa no trabajara correctamente!", T_ERR_RC, "Se encontraron algunos errores mientras se examinaba el archivo de configuracion!\nEste archivo fue probablemente guardado con una nueva version de Tucnak!\nNo salve su configuracion a no ser que quiera perder datos!", T_SES_QTR, " QTR ", T_SES_QRA, " CALL ", T_SES_RST, " RST-S-No RST-R-No ", T_SES_QTH, " QTH ", T_SES_QRB, " Pts/QRB QTF ", T_SES_FLG, " Flg ", T_SES_OPE, " Oper. ", T_SES_EXC, " Exch ", T_SES_REM, " Notas ", T_SES_WELCOME, "Bienvenido a Tucnak! ", T_SES_PRESS_F10, "Presione F10 para menu.", T_SES_HAVE_FUN, "Tenga suerte.", T_SES_URL, "http://tucnak.nagano.cz ", T_SES_ODX, "ODX: ", T_SES_ODX_DATA, "%s %s %d km (%s)", T_SES_STAT_TIT, "QSOs QSO-p OptX WWLs DXCCs Total-p PROM", T_SES_AVG, " AVG: %5.2f", T_SES_WPM, " WPM: %d", T_SF_WWLS, " WWLs: %d", T_SF_WWLS_UNDER, "-------------", T_SF_EXCS, " EXCs: %d", T_SF_EXCS_UNDER, "-------------", T_SF_MISS_EXCS, " Missing EXCs: %d", T_SF_MISS_EXCS_UNDER, "---------------------", T_SF_PREFS, " PREFs: %d", T_SF_PREFS_UNDER, "-------------", T_SF_DXCS, " DXCCs: %d", T_SF_DXCS_UNDER, "-------------", T_SF_WKD_WWLS, " WKD WWLs: %d", T_SF_WKD_WWLS_UNDER, "-----------------", T_SF_QSO_WWL4, " QSOS en WWL4s: %d", T_SF_QSO_WWL4_UNDER, "----------------------", T_SF_STATS_BAND, " Estadisticas para banda %s", T_SF_STATS_BAND_UNDER, "===============================", T_SF_CONTEST, "Concurso: %s", T_SF_ALLBQSOS, "QSO's en todas las bandas: %d", T_SF_ALLBQSOP, "QSOp en todas las bandas: %d", T_SF_ALLBPTS, "Puntos en todas las bandas: %d", T_SF_QSOS, "QSOs: %d", T_SF_QSOP, "QSO puntos: %d", T_SF_PTS, "Puntos: %d", T_SF_AVG_PTS, "Promedio pts/QSO: %5.2f", T_SF_AVG_QSOP, "Promedio qsop/QSO: %5.2f", T_BAND_RO, "Banda es solo lectura", T_THIS_BAND, "Esta banda", T_OTHER_BANDS, "Otras bandas", T_CW_DB, "C_W base de datos", T_PROC_EXITED, "*** Saliendo del proceso\n", T_WE_CALL2, "Llamando", T_WE_LISTEN, "Escuchando", T_QSL, "QSL prometida", T_RECORD, "Grabando trafico", T_MAXMIN, " Max. duracion de grabacion", T_TEMPLATE, "Mascar para el nombre de archivo grabado", T_PCM8, "8 bit PCM", T_PCM16, "16 bit PCM", T_ULAW, "mu-law", T_ALAW, "A-law", T_IMAADPCM, "IMA ADPCM", T_MSADPCM, "MS ADPCM", T_GSM610, "GSM 6.10", T_CHANNELS, "Canales", T_SAMPLERATE, "Sample rate", T_FILLOP, "Fill operators", T_HK_FILLOP, "L", T_RECAQRB, "Recalcule QRB,QTF", T_HK_RECAQRB, "R", T_NETWORK, "Network & trace", T_HK_NETWORK, "K", T_IF_IGNORE, "Ignore interfaces:", T_IP_IGNORE, " Ignore networks:", T_IP_ANNOUNCE, " Anuncie a nets:", T_TRACE_BCAST, "Trace broadcasts ", T_TRACE_SOCK, "Trace sockets", T_TRACE_RECV, "Trace datos recibidos", T_TRACE_SEND, "Trace datos enviados", T_TRACE_QSOS, "Trace QSOs", T_TRACE_SDEV, "Trace rotars", T_NOT_MOUNTED_S, "No montado %s", T_RECSRC_NONE, "No seteado", T_RECSRC_MIC, "Microfono", T_RECSRC_LINE, "Line in", T_NEW_CALL, "Nuevo!", T_HK_NEW_CALL, "n", T_QRV_ON_S, "QRV en %s", T_SKED_QRG, "QRG para skeds", T_HK_SKED_QRG, "F", T_N_SKED_QRG, "\nQRG para skeds:", T_GRAB_BAND, "Grab control de banda", T_HK_GRAB_BAND, "G", T_FORCE_RUN, "Forzar mode RUN", T_HK_FORCE_RUN, "U", T_EXPORT_STATS, "Exportar estadisticas", T_HK_EXPORT_STATS, "T", T_SF_TOP_DX, " TOP %d DX QSOs:", T_SF_TOP_DX_UNDER, "-------------------", T_ROTAR, "Rotor", T_HK_ROTAR, "R", T_AZIMUTH, " Azimuth", T_ELEVATION, "Elevacion", T_CH_SPY, "Espiar", T_HK_CH_SPY, "S", T_CH_ENDSPY, "Finalizar espiar", T_HK_CH_ENDSPY, "P", T_EXPORT_TITLPAGE, "Exportar titulo de la pagina", T_HK_EXPORT_TITLPAGE, "P", T_BREAK_RECORD, "Cortar registro", T_HK_BREAK_RECORD, "B", T_GLOBAL_OPERATOR, "Cambiar para todas las bandas", T_GLOBAL_OPERATOR2, "Global", T_MAXFRAG, "Max. num de fragmentos (>=2)", T_PLAY_LAST, "Escuchar el ultimo ejemplo", T_HK_PLAY_LAST, "P", T_MISCOPTS, "Opciones miscelaneas", T_HK_MISCOPTS, "P", T_LOGLINES, "Log lineas: ", T_SKEDSHIFT, "Sked shift (minutes): ", T_STARTBAND, "Comenzando en banda: ", T_GFX_X_CH, "Resolucion de pantalla (chars):", T_GFX_Y_CH, "x", T_GFX_X_PX, "Resolucion de pantalla (pixels):", T_GFX_Y_PX, "x", T_CALL_INFO, "Info de la licencia", T_HK_CALL_INFO, "I", T_SF_QSO_HOUR, "QSOs/hora: %d", T_SF_QSOP_HOUR, "Puntos/hora: %d", T_SF_QSOP_50QSO, "Puntos/50 QSOs: %d", T_SF_HOURS, " Horas", T_SF_HOURS_UNDER, "---------", T_SF_HOURS_TITLE, "Horas Puntos QSOs PROMpts/QSO", T_QSO_CHECK, "QSO check", T_HK_QSO_CHECK, "K", T_AUDIO, "Audio", T_HK_AUDIO, "D", T_ALSA, "Alsa", T_OSS, "OSS", T_SSBD, "SSBD", T_DISKFREE, "Espacio minimo libre en disco [MiB]", T_FORMAT, "Formato de la grabacion", T_PCM_PLAY, "Dispositivo Alsa de audio", T_PCM_REC, "Dispositivo Alsa de captura", T_PERIOD, "Periodo de tiempo [ms]", T_BUFFER, "Buffer de tiempo [ms]", T_ALSA_MIXER, "Dispositivo Alsa mezclador", T_CAPTURE, "Fuente de captura", T_DSP, "OSS DSP", T_MIXER, "OSS mixer", T_RECSRC, "Fuente de registro", T_SSBD_HOSTNAME, "SSBD hostname:", T_HOSTNAME, "Hostname:", T_SLASHKEY, "Slash key", T_FIXQRG, "Fix QRG", T_HK_FIXQRG, "X", T_ENTER_QRG, "Ingrese QRG exacta [Hz]", T_BAD_QRG, "Frecuencia incorrecta", T_CALLSIGN3, "Licencia", T_CALLSIGN_KST, "KST licencia de la estacion:", T_CANT_INIT_WINKEY_S, "No puedo iniciar winkey en %s", T_WINKEYOPTS, "Opciones Winkey", T_WK_WK2, "Winkey2 inicializacion rapida", T_WK_USEPOT, "Use speed pot", T_WK_USEBUT, "Usar botones", T_WK_KM_B, "Curtis-B", T_WK_KM_A, "Curtis-A", T_WK_KM_U, "Ultimatic", T_WK_KM_G, "Bug", T_WK_SWAP, "Paddle swap (left handled)", T_RIGOPTS, "Opciones del equipo", T_HK_RIGOPTS, "G", T_RIG_DEVICE, "Dispositivo:", T_RIG_MODEL, "Modelo", T_RIG_SPEED, "Baudrate: ", T_RIG_CIV, "CIV direccion", T_RIG_FREQSHIFT, "Corrimiento de freq.SSB->CW", T_RIG_CHOOSE, "Elija", T_ROTAROPTS, "Opciones del rotor", T_HK_ROTAROPTS, "I", T_DSSAVER, "Desactivar salva pantalla", T_DESC, "Descripcion", T_ROT_NONE, "Nada", T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys", T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI", T_ROT_HAMLIB, "Hamlib", T_ROT_REMOTE, "Remoto", T_ROT_VID, "VID:", T_ROT_PID, "PID:", T_ROT_SERIAL, "Serial #", T_ROT_ADD, "Adicionar un rotor nuevo", T_HK_ROT_ADD, "W", T_ROT_REMOVE, "Eliminar rotor", T_HK_ROT_REMOVE, "R", T_TIMEOUT, "Timeout:", T_BEAMWIDTH, "Ancho del beam:", T_SADDR, "Comunicacion address:", T_MODEL, "Modelo:", T_ROT_REM_ROTSTR, "Letra del rotor para remoto", T_QSOGLOB, "Global QSO NR", T_PREFGLOB, "Global PREF", T_NOT_RECORDING_S, "No grabando - %s", T_SKEDCOUNT, "Sked count in popup: ", T_FONTHEIGHT, "Font height (16-32): ", T_RIG_POLL_MS, "Rig poll interval [ms]: ", T_RIG_QRG_R2T, "Set band from radio", T_RIG_QRG_T2R, "Change band on radio", T_RIG_MODE_T2R, "Change mode on radio", T_RUN_MODE, "Run mode", T_HK_RUN_MODE, "M", T_SP_MODE, "S&P mode", T_HK_SP_MODE, "M", T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save", T_RIG_DEBUG, "Debug rig", T_HF_RATE, "Rate: %3d/10 %3d/60", T_HF_BAND, "Band QSO Point Mult", T_HF_SUM, "Sum:", T_HF_LAST, "Last Q-%s P-%s", T_EVEN, "TX even", T_HK_EVEN, "v", T_ODD, "TX odd", T_HK_ODD, "d", T_1ST, "TX 1st", T_HK_1ST, "1", T_2ND, "TX 2nd", T_HK_2ND, "2", T_HF_SCORE, "Score:", T_EXPMODE, "Expedition mode", T_TTTYPE, "Only digits mean", tucnak2-2.48/intl/english.lng0000644000175000017500000004451411567373657013074 00000000000000T__CHAR_SET, "us-ascii", T__LANGUAGE, "English", T_ABOUT, "About", T_BAD_NUMBER, "Bad number", T_BAD_STRING, "Bad string", T_BASIC_HELP, "Press F10 for menu.\nHave fun.", T_BLOCK_CURSOR, "Block cursor", T_CANCEL, "Cancel", T_CHARACTER_SET, "Character set", T_COLOR, "Color", T_COPYING, "Copying", T_DIFFERENCE, "difference", T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Do you really want to exit Tucnak?", T_EMPTY_STRING_NOT_ALLOWED, "Empty string not allowed", T_ERROR, "Error", T_WARNING, "Warning", T_EXIT, "Exit", T_EXIT_TUCNAK, "Exit Tucnak", T_FILE, "File", T_FULL_SCREEN, "Full screen", T_HELP, "Help", T_HK_ABOUT, "A", T_HK_BEOS_TERMINAL, "B", T_HK_CHARACTER_SET, "H", T_HK_COPYING, "C", T_HK_EXIT, "X", T_HK_FILE, "F", T_HK_FULL_SCREEN, "F", T_HK_HELP, "H", T_HK_LANGUAGE, "L", T_HK_MEMORY_INFO, "M", T_HK_OS_SHELL, "O", T_HK_SCREEN, "S", T_HK_SETUP, "S", T_HK_TERMINAL_OPTIONS, "T", T_HK_TWTERM, "T", T_HK_WINDOW, "W", T_HK_XTERM, "X", T_KOI8R_FRAMES, "KOI8-R frames", T_LANGUAGE, "Language", T_LAST, "last", T_LINUX_OR_OS2_FRAMES, "Linux or OS/2 frames", T_MEMORY_INFO, "Memory info", T_NO_FRAMES, "No frames", T_NO, "No", T_NUMBER_EXPECTED, "Number expected in field", T_NUMBER_OUT_OF_RANGE, "Number out of range", T_OK, "OK", T_OS_SHELL, "OS shell", T_RESTRICT_FRAMES_IN_CP850_852, "Restrict frames in cp850/852", T_UTF_8_IO, "UTF-8 Input/Output", T_SCREEN, "Screen", T_SETUP, "Setup", T_TERMINAL_OPTIONS, "Terminal options", T_TUCNAK__TACLOG_LIKE, "Tucnak " VERSION_STRING "\n\nTACLOG-like V/U/SHF contest log", T_TWTERM, "Twterm", T_USE_11M, "Use ^[[11m", T_VT_100_FRAMES, "VT 100 frames", T_WELCOME_TO_TUCNAK, "Welcome to Tucnak!\nPlease fill in your callsign and next fields", T_WELCOME, "Welcome", T_XTERM, "Xterm", T_YES, "Yes", T_CANT_APPEND_S, "Can't append to file %s", T_CANT_WRITE, "Can't write to file", T_CANT_WRITE_S, "Can't write to file %s", T_CANT_READ, "Can't read from file", T_CANT_READ_S, "Can't read from file %s", T_SAVED_S, "Saved %s", T__CW_, " CW ", T_CWW_KEYS, " PgUp +, PgDn - cw speed ", T_CANT_OPEN_S, "Can't open %s", T_CANT_LOCK, "Can't lock", T_CANT_LOCK_S, "Can't lock %s", T_LOADING_CTEST_S, "*** Loading contest %s", T_NO_FILES,"No files in directory", T_BAND_EXIST_SS, "WARNING! Band %s (%s) already exist", T_BAND_NOT_OPEN, "Band is not active in this contest", T_NO_BANDS, "No bands to load", T_CANT_SET_GR_S, "Can't set any graphics mode-%s", T_GCALL, "Call: %s", T_GWWL, "WWL: %s", T_GQRB, "QRB: %d km", T_GQTF, "QTF: %d", T_GSEN, "Sent: %s %s", T_GRCV, "Rcvd: %s %s", T_GTIM, "Time: %s", T_GOPE, "Op: %s", T_GREM, "Rem: %s", T_GWKD, "Wkd: %d", T_GINC, "income: %d", T_GLON, "Lon:%7.2f %-6s", T_GLAT, "Lat:%7.2f %-6s", T_GLOC, "Loc: %s", T__PLESE_WAIT_, " Please WAIT ", T__RO_BAND, " READ-ONLY BAND", T_COPYING_VER, "The ultimate contestlog - necessary as known\n\nVersion " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nThis program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.", T_CTEST_ACTIVE, "Contest is already active ", T_NO_CTESTS, "No contests", T_NO_CCLOSE, "No contest to close", T_REALLY, "Really?", T_CLOSE_CTEST, "Do you really want to close this contest?", T_GUI_LD, "GUI: %ld ", T_SBRK, "sbrk: %ld", T_CWI, "C_W: %d cw items, %d wc items, latest %d\n", T_EXC, "Exc: %s %d exc items, %d cxe items, latest %d\n", T_VEXC, "Verified EXC: %d items\n", T_DWI, "D_W: %d prefixes, %d DXCCs, %d WWLs\n", T_NAMES, "Names: %d names\n", T_MASTER, "Master: %d calls\n", T_MEMS, "Memory:", T_NMY, " My: %s:%d\n", T_NGLOBAL, "Global: %s:%d\n", T_NMASTER, "Master: %s %s %s:%d %s %s\n", T_NSLAVES, "\nSlaves:\n", T_NINFO, "Network info", T_NO_BANDS_QRV, "No bands QRV", T_NO_BANDS_CONF, "No bands configured", T_NOT_AVAILABLE, "Not available", T_ADD_SUBWIN, "Add subwin", T_HK_ADD_SUBWIN, "A", T_CLOSE_SUBWIN, "Close subwin", T_HK_CLOSE_SUBWIN, "C", T_HK_NINFO, "N", T_NEW, "New", T_HK_NEW, "N", T_NEW_WIZZ, "New from wizard", T_HK_NEW_WIZZ, "W", T_NEW_NET, "New from network", T_HK_NEW_NET, "T", T_OPEN, "Open", T_HK_OPEN, "O", T_SAVE, "Save", T_HK_SAVE, "S", T_EXPORT_EDI, "Export as EDI", T_HK_EXPORT_EDI, "E", T_EXPORT_REPORT, "Export as report", T_HK_EXPORT_REPORT, "R", T_EXPORT_ADIF, "Export as ADIF", T_HK_EXPORT_ADIF, "A", T_EXPORT_CBR, "Export as Cabrillo", T_HK_EXPORT_CBR, "B", T_EXPORT_HTML, "Export as HTML", T_HK_EXPORT_HTML, "H", T_EXPORT_WIKI, "Export as MediaWiki", T_HK_EXPORT_WIKI, "W", T_IMPORT_EDI, "Import EDI", T_HK_IMPORT_EDI, "I", T_IMPORT_ADIF, "Import ADIF", T_HK_IMPORT_ADIF, "M", T_IMPORT_SWAP, "Import swap", T_HK_IMPORT_SWAP, "S", T_IMPORT_LIST, "Import list", T_HK_IMPORT_LIST, "L", T_CONTEST_OP, "Contest options", T_HK_CONTEST_OP, "O", T_CLOSE_CONTEST, "Close contest", T_HK_CLOSE_CONTEST, "C", T_ADD_ERROR, "Add ERROR", T_HK_ADD_ERROR, "E", T_CHOP, "Change operator", T_HK_CHOP, "O", T_CW_CTEST, "Update C_W from contest", T_HK_CW_CTEST, "C", T_CW_BAND, "Update C_W from band", T_HK_CW_BAND, "B", T_EXC_CTEST, "Update EXC DB from contest", T_HK_EXC_CTEST, "A", T_EXC_BAND, "Update EXC DB from band", T_HK_EXC_BAND, "T", T_IMPORT_EBW, "Import DL8EBW database", T_HK_IMPORT_EBW, "W", T_NO_CTEST, "No contest", T_NO_PEERS, "No peers found", T_NO_MASTER, "Master is not available!", T_CTEST_DEF, "Contest defaults", T_HK_CTEST_DEF, "O", T_BAND_DEF, "Band defaults", T_HK_BAND_DEF, "B", T_HK_RESPOP, "R", T_CW_DAEMON, "CW keying", T_HK_CW_DAEMON, "E", T_CW_CQ, "CW CQ", T_HK_CW_CQ, "C", T_SSB_CQ, "SSB CQ", T_HK_SSB_CQ, "S", T_AUTOSAVE, "Autosave", T_HK_AUTOSAVE, "A", T_LOAD_CFG_NET, "Load cfg from net", T_HK_LOAD_CFG_NET, "N", T_LOAD_CW_NET, "Load C_W from net", T_HK_LOAD_CW_NET, "W", T_SAVE_CFG, "Save configuration", T_HK_SAVE_CFG, "F", T_CONTEST, "Contest", T_HK_CONTEST, "C", T_EDIT, "Edit", T_HK_EDIT, "E", T_BANDS, "Bands", T_HK_BANDS, "B", T_SUBWINS, "Subwins", T_HK_SUBWINS, "W", T_BAND_SETTINGS_SC, "Band settings for band %c %s", T_QRV_ON_THIS_BAND, "QRV on this band", T_QRV_IN_THIS_CTEST, "QRV in this contest", T_READ_ONLY, "Read-only", T_MULTI, "Multi", T_SINGLE, "Single", T_CHECK, "Check", T_TXEQUIP, " TX Equip:", T_POWER, " Power:", T_RXEQUIP, " RX Equip:", T_ANTENNA, " Antenna:", T_AGLASL, " AGL;ASL:", T_OPS, "Operators:", T_SPACES1, " ", T_REMARKS, " Remarks:", T_OK_SECTION_SINGLE, "Single category in OK", T_OK_SECTION_MULTI, "Multi category in OK", T_QRG_MIN, "Band boundary from", T_QRG_MAX, "to [kHz]", T_ADIFBAND, "ADIF band name", T_SKEDQRG, "QRG for skeds (free form)", T_BAND_LO, "Transverter's LO QRG [Hz]:", T_BANDSW, "Band switch value", T_RESPOP, "Responsible operator", T_NAME, " Name:", T_CALLSIGN, " Callsign:", T_ADDRESS, " Address:", T_POSTCODE, "Postal Code:", T_CITY, " City:", T_COUNTRY, " Country:", T_PHONE, " Phone:", T_BBSEMAIL, " BBS/Email:", T_QP0, " --none -- ", T_QP1, " 1 QSOp*QSOp_m (Std. IARU)", T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)", T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)", T_QP4, " 4 WWL_ring*QSOp_m (OK activity)", T_QP5, " 5 St_miles*QSOp_m", T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)", T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)", T_QP8, " 8 WWL_dist*QSOp_m (Baltic)", T_QP9, " 9 WWL_dist*QSOp_m (Baltic & Nordic fieldday)", T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)", T_QP11, "11 QSOp_m *3 if F (F 50MHz)", T_QP12, "12 RSGB DC (district codes)", T_QP13, "13 Continent (CQ WW DX Contest)", T_QP14, "14 Continent+band (CQ WW WPX Contest)", T_QP15, "15 VHF Band (ARRL VHF)", T_QP16, "16 QSOp *4 if F (Champ. de France)", T_TP0, " --none -- ", T_TP1, " 1 Multiplicative (Std. IARU)", T_TP2, " 2 Additive (RSGB Backpacker, VRZA, Sicily)", T_TP3, " 3 Mult. all bands (CQ WW DX Contest)", T_TP4, " 4 All bands togeth. (ARRL VHF)", T_NEW_CTEST, "New Contest", T_CANT_TRUNC, "Can't truncate desc file", T_NAME_OF_CTEST, "Name of the contest:", T_CALL_OF_CTEST, "Callsign in contest:", T_CLUB_ST, "Club station:", T_YOURWWL, "Your WWL:", T_YOUREXC, "Your EXC:", T_DATE_OF_CTEST, "Date of contest:", T_QSOUSED, "QSO NR used", T_QSOPM, " QSOp multi:", T_WWLUSED, "WWL used ", T_WWLB, "WWL bonus:", T_WWLM, "WWL multi:", T_EXCUSED, "EXC used", T_EXCB, " EXC bonus:", T_EXCM, "EXC multi:", T_EXCNAME, " EXC name: ", T_PREFM, "PREF multi:", T_DXCB, " DXC bonus:", T_DXCM, "DXC multi:", T_RSTUSED, "RST Used ", T_DEFRS, "Default RS:", T_DEFRST, "Def RST:", T_ALSORSTR, "Also for RST-R", T_QP_CALC, " QSOp calc:", T_TO_CALC, "Total calc:", T_EDI_PROP, "EDI prop", T_RESPOP2, "Responsible op", T_EDIT_QSO_CD, "Edit QSO %c: %03d", T_CALLSIGN2, "Callsign:", T_CLUB, " Club:", T_PADR1, " PAdr1:", T_PADR2, " PAdr2:", T_RS, " RS:", T_RST, " RST:", T_OPERATOR, "Operator:", T_DATE, " Date:", T_MODE, " Mode:", T_RSTS, " RSTs:", T_RSTR, " RSTr:", T_QSONRS, "QSO sent:", T_QSONRR, "QSO rcvd:", T_OPTEXCH, " OptExch:", T_WWL, " WWL:", T_REMARK, " Remark:", T_QRV2, " QRV on:", T_WKD, " WKD:", T_SEND_SKED, "Send sked", T_SELECT, "Select", T_QRG, " QRG:", T_WE_CALL, " We call", T_BAND, " Band:", T_TIME, " Time:", T_DUPE_QSO, "Duplicate QSO!", T_CLEAR_THIS_QSO, "Clear this QSO", T_EDIT_OLD_QSO, "Edit old QSO", T_MARK_OLD_QSO, "Mark old QSO as ERROR", T_STORE_AS_DUPE, "Store as DUPE", T_BAD_CALL, "This does not look like a callsign", T_N_CALLSIGN, "\nCallsign:", T_AUTOSAVE_OPTS, "Autosave options", T_SAVE_AQ, "Save to disk after QSO: ", T_SAVE_AM, "Save to disk after minutes:", T_FSYNC, "Fsync", T_SAVE_AQF, "Save to floppy after QSO: ", T_SAVE_AMF, "Save to floppy after minutes:", T_DO_MOUNT, "Mount if not in /etc/mtab (unused)", T_FLOPPY_PATH, "Path to floppy:", T_MOUNT_CMD, "Mount command: ", T_SW_SHELL, "Shell", T_SW_QSOS, "QSOs", T_SW_LOG, "Log", T_SW_TALK, "Talk", T_SW_SKED, "Sked", T_SW_UNFI, "Unfi", T_SW_DXC, "DXC", T_SW_STAT, "Stat", T_SW_MAP, "Map", T_SW_SCOPE, "Scope", T_SW_QRV, "QRV", T_SW_HF, "HF", T_SW_PLAYER, "Player", T_SW_CHART, "Chart", T_SHELL, "Shell", T_QSOS, "QSOs", T_LOG, "Log", T_TALK, "Talk", T_SKEDS, "Skeds", T_UNFI, "Unfinished QSOs", T_DXC, "DX Cluster (N/A)", T_STAT, "Statistics", T_SWAP, "Swap (N/A)", T_MAP, "Graphics map", T_SCOPE, "Scope", T_QRV, "QRV", T_HF, "HF", T_CMD, "Command", T_RESPAWN, "Respawn [sec]:", T_UNFI_QSO, "Unfinished QSO", T_N_REMARK, "\nRemark:", T_NO_CQ, "No CQ defined", T_TEXT, "Text:", T_SPEED, "Speed [WPM]:", T_REPEAT, "Repeat", T_DELAY, "Delay [0.1s]:", T_ALLOW_UNDEF, "Allow if some item is undefined", T_CW_DSCS, "CW%d (%s) %c %s", T_FILENAME, "Filename:", T_SSB_DSCS, "SSB%d (%s) %c %s", T_UDPPORT, "UDP port:", T_DEVICE, "Keying device:", T_INIT_SPEED, "Initial speed [WPM]:", T_INIT_WEIGHT, "Weight (30-70):", T_WPMFROM, "WPM Range from", T_WPMTO, "to", T_USE_SPK, "Use speaker", T_LEADIN, " PTT lead in [ms]", T_AUTGIVE, "Run mode aut. give after [chars]", T_IGN_IFACE_S, "Ignoring interface %-5s", T_IGN_ADDR_S, "Ignoring address %s", T_ADD_IFACE_SSD, "Added interface=%-5s BCAST=%s:%d", T_FORCED_ADDR, "Forced address %s", T_TIMESKEW, "WARNING! Time skew %d detected against %s:%d !\n", T_DISCONNECTING_SD, "Disconnecting from %s:%d", T_ACCEPTED_SD, "Accepted %s:%d", T_CONNECTING_SD, "Connecting to %s:%d" , T_CONNECTED_SD, "Connected to %s:%d", T_DISCONNECTED_SD, "Disconnected from %s:%d", T_LOADED_CFG_SSSS, "Loaded config for %s %s (%s,%s)", T_LOADED_CW, "Loaded C_W data", T_PEER_NOT_FOUND, "ERROR! Peer %s not found", T_CANT_CREATE_HOME_S, "Cannot create directory %s", T_CANT_LOAD_CFG, "Can't load configuration!\nProgram cannot work properly!", T_ERR_RC, "Found some errors parsing config file!\nThis file was probably saved with newer Tucnak!\nDon't save your confuguration unless you can loose data!", T_SES_QTR, " QTR ", T_SES_QRA, " CALL ", T_SES_RST, " RST-S-No RST-R-No ", T_SES_QTH, " QTH ", T_SES_QRB, " Pts/QRB QTF ", T_SES_FLG, " Flg ", T_SES_OPE, " Oper. ", T_SES_EXC, " Exch ", T_SES_REM, " Remark ", T_SES_WELCOME, "Welcome to Tucnak! ", T_SES_PRESS_F10, "Press F10 for menu.", T_SES_HAVE_FUN, "Have fun.", T_SES_URL, "http://tucnak.nagano.cz ", T_SES_ODX, "ODX: ", T_SES_ODX_DATA, "%s %s %d km (%s)", T_SES_STAT_TIT, "QSOs QSO-p OptX WWLs DXCCs Total-p AVG", T_SES_AVG, " AVG: %5.2f", T_SES_WPM, " WPM: %d %02d%%", T_SF_WWLS, " WWLs: %d", T_SF_WWLS_UNDER, "-------------", T_SF_EXCS, " EXCs: %d", T_SF_EXCS_UNDER, "-------------", T_SF_MISS_EXCS, " Missing EXCs: %d", T_SF_MISS_EXCS_UNDER, "---------------------", T_SF_PREFS, " PREFs: %d", T_SF_PREFS_UNDER, "-------------", T_SF_DXCS, " DXCCs: %d", T_SF_DXCS_UNDER, "-------------", T_SF_WKD_WWLS, " WKD WWLs: %d", T_SF_WKD_WWLS_UNDER, "-----------------", T_SF_QSO_WWL4, " QSOS in WWL4s: %d", T_SF_QSO_WWL4_UNDER, "----------------------", T_SF_STATS_BAND, " Statistics for band %s", T_SF_STATS_BAND_UNDER, "===============================", T_SF_CONTEST, "Contest: %s", T_SF_ALLBQSOS, "All bands QSOs: %d", T_SF_ALLBQSOP, "All bands QSOp: %d", T_SF_ALLBPTS, "All bands pts: %d", T_SF_QSOS, "QSOs: %d", T_SF_QSOP, "QSO points: %d", T_SF_PTS, "Points: %d", T_SF_AVG_PTS, "Average pts/QSO: %5.2f", T_SF_AVG_QSOP, "Average qsop/QSO: %5.2f", T_BAND_RO, "Band is read-only", T_THIS_BAND, "This band", T_OTHER_BANDS, "Other bands", T_CW_DB, "C_W database", T_PROC_EXITED, "*** Process exited\n", T_WE_CALL2, "we call", T_WE_LISTEN, "we listen", T_QSL, "QSL promised", T_RECORD, "Record traffic", T_MAXMIN, " Max. record duration", T_TEMPLATE, "Template for recorded filename", T_PCM8, "8 bit PCM", T_PCM16, "16 bit PCM", T_ULAW, "mu-law", T_ALAW, "A-law", T_IMAADPCM, "IMA ADPCM", T_MSADPCM, "MS ADPCM", T_GSM610, "GSM 6.10", T_CHANNELS, "Channels", T_SAMPLERATE, "Sample rate", T_FILLOP, "Fill operators", T_HK_FILLOP, "L", T_RECAQRB, "Recalc QRB,QTF", T_HK_RECAQRB, "R", T_NETWORK, "Network & trace", T_HK_NETWORK, "K", T_IF_IGNORE, "Ignore interfaces:", T_IP_IGNORE, " Ignore networks:", T_IP_ANNOUNCE, " Announce to nets:", T_TRACE_BCAST, "Trace broadcasts ", T_TRACE_SOCK, "Trace sockets", T_TRACE_RECV, "Trace received data", T_TRACE_SEND, "Trace sent data", T_TRACE_QSOS, "Trace QSOs ", T_TRACE_SDEV, "Trace rotars", T_NOT_MOUNTED_S, "Not mounted %s", T_RECSRC_NONE, "Don't set", T_RECSRC_MIC, "Microphone", T_RECSRC_LINE, "Line in", T_NEW_CALL, "New!", T_HK_NEW_CALL, "n", T_QRV_ON_S, "QRV on %s", T_SKED_QRG, "QRG for skeds", T_HK_SKED_QRG, "F", T_N_SKED_QRG, "\nQRG for skeds:", T_GRAB_BAND, "Grab band control", T_HK_GRAB_BAND, "G", T_FORCE_RUN, "Force RUN mode", T_HK_FORCE_RUN, "U", T_EXPORT_STATS, "Export Statistics", T_HK_EXPORT_STATS, "T", T_SF_TOP_DX, " TOP %d DX QSOs:", T_SF_TOP_DX_UNDER, "-------------------", T_ROTAR, "Rotator", T_HK_ROTAR, "R", T_AZIMUTH, " Azimuth", T_ELEVATION, "Elevation", T_CH_SPY, "Spy", T_HK_CH_SPY, "S", T_CH_ENDSPY, "Spy end", T_HK_CH_ENDSPY, "P", T_EXPORT_TITLPAGE, "Export title page", T_HK_EXPORT_TITLPAGE, "P", T_BREAK_RECORD, "Break record", T_HK_BREAK_RECORD, "B", T_GLOBAL_OPERATOR, "Change for all bands", T_GLOBAL_OPERATOR2, "Global", T_MAXFRAG, "Max. num of fragments (>=2)", T_PLAY_LAST, "Play last sample", T_HK_PLAY_LAST, "P", T_MISCOPTS, "Miscellaneous options", T_HK_MISCOPTS, "M", T_LOGLINES, "Log lines: ", T_SKEDSHIFT, "Sked shift (minutes): ", T_STARTBAND, "Starting band: ", T_GFX_X_CH, "Screen resolution (chars):", T_GFX_Y_CH, "x", T_GFX_X_PX, "Screen resolution (pixels):", T_GFX_Y_PX, "x", T_CALL_INFO, "Callsign info", T_HK_CALL_INFO, "I", T_SF_QSO_HOUR, "QSOs/hour: %d", T_SF_QSOP_HOUR, "Points/hour: %d", T_SF_QSOP_50QSO, "Points/50 QSOs: %d", T_SF_HOURS, " Hours", T_SF_HOURS_UNDER, "---------", T_SF_HOURS_TITLE, "Hours Points QSOs AVG pts/QSO", T_QSO_CHECK, "QSO check", T_HK_QSO_CHECK, "K", T_AUDIO, "Audio", T_HK_AUDIO, "D", T_ALSA, "Alsa", T_OSS, "OSS", T_SSBD, "SSBD", T_DISKFREE, "Minimal disk free space [MiB]", T_FORMAT, "Record format", T_PCM_PLAY, "Alsa playback device", T_PCM_REC, "Alsa capture device", T_PERIOD, "Period time [ms]", T_BUFFER, "Buffer time [ms]", T_ALSA_MIXER, "Alsa mixer device", T_CAPTURE, "Capture source", T_DSP, "OSS DSP", T_MIXER, "OSS mixer", T_RECSRC, "Record source", T_SSBD_HOSTNAME, "SSBD hostname:", T_HOSTNAME, "Hostname:", T_SLASHKEY, "Slash key", T_FIXQRG, "Fix QRG", T_HK_FIXQRG, "X", T_ENTER_QRG, "Enter accurate QRG [Hz]", T_BAD_QRG, "Bad frequency", T_CALLSIGN3, "Callsign", T_CALLSIGN_KST, "KST station's callsign:", T_CANT_INIT_WINKEY_S, "Can't init winkey on %s", T_WINKEYOPTS, "Winkey options", T_WK_WK2, "Winkey2 fast initialization", T_WK_USEPOT, "Use speed pot", T_WK_USEBUT, "Use buttons", T_WK_KM_B, "Curtis-B", T_WK_KM_A, "Curtis-A", T_WK_KM_U, "Ultimatic", T_WK_KM_G, "Bug", T_WK_SWAP, "Paddle swap (left handled)", T_RIGOPTS, "Rig options", T_HK_RIGOPTS, "G", T_RIG_DEVICE, "Device:", T_RIG_MODEL, "Rig model: ", T_RIG_SPEED, "Baudrate: ", T_RIG_CIV, "CIV address:", T_RIG_FREQSHIFT, "Freq. shift SSB->CW", T_RIG_CHOOSE, "Choose", T_ROTAROPTS, "Rotar options", T_HK_ROTAROPTS, "I", T_DSSAVER, "Disable screensaver", T_DESC, "Description", T_ROT_NONE, "None", T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys", T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI", T_ROT_HAMLIB, "Hamlib", T_ROT_REMOTE, "Remote", T_ROT_VID, "VID:", T_ROT_PID, "PID:", T_ROT_SERIAL, "Serial #", T_ROT_ADD, "Add new rotator", T_HK_ROT_ADD, "W", T_ROT_REMOVE, "Remove rotator", T_HK_ROT_REMOVE, "R", T_TIMEOUT, "Timeout:", T_BEAMWIDTH, "Beam width:", T_SADDR, "Communication address:", T_MODEL, "Model:", T_ROT_REM_ROTSTR, "Rotator letter for remote", T_QSOGLOB, "Global QSO NR", T_PREFGLOB, "Global PREF", T_NOT_RECORDING_S, "Not recording - %s", T_SKEDCOUNT, "Sked count in popup: ", T_FONTHEIGHT, "Font height (16-32): ", T_RIG_POLL_MS, "Rig poll interval [ms]: ", T_RIG_QRG_R2T, "Set band from radio", T_RIG_QRG_T2R, "Change band on radio", T_RIG_MODE_T2R, "Change mode on radio", T_RUN_MODE, "Run mode", T_HK_RUN_MODE, "U", T_SP_MODE, "S&P mode", T_HK_SP_MODE, "M", T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save", T_RIG_DEBUG, "Debug rig", T_HF_RATE, "Rate: %3d/10 %3d/60", T_HF_BAND, "Band QSO Point Mult", T_HF_SUM, "Sum:", T_HF_LAST, "Last Q-%s P-%s", T_EVEN, "TX eVen", T_HK_EVEN, "V", T_ODD, "TX oDd", T_HK_ODD, "D", T_1ST, "TX 1st", T_HK_1ST, "1", T_2ND, "TX 2nd", T_HK_2ND, "2", T_HF_SCORE, "Score:", T_EXPMODE, "Expedition mode", T_TTTYPE, "Only digits mean", tucnak2-2.48/intl/german.lng0000644000175000017500000004710511571101552012665 00000000000000T__CHAR_SET, "iso8859-2", T__LANGUAGE, "Deutsch", T_ABOUT, "ber...", T_BAD_NUMBER, "Ungltige Zahl", T_BAD_STRING, "Ungltiger Text", T_BASIC_HELP, "Drcke F10 fr Menu.\nViel Spa!", T_BLOCK_CURSOR, "Blockiere Cursor", T_CANCEL, "Abbrechen", T_CHARACTER_SET, "Zeichensatz", T_COLOR, "Farbe", T_COPYING, "Lizenz", T_DIFFERENCE, "Unterschied", T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Mchten sie Tucnak wirklich verlassen?", T_EMPTY_STRING_NOT_ALLOWED, "Leerer Text nicht erlaubt!", T_ERROR, "Fehler", T_WARNING, "Warnung", T_EXIT, "Verlassen", T_EXIT_TUCNAK, "Tucnak verlassen", T_FILE, "Datei", T_FULL_SCREEN, "Vollbild", T_HELP, "Hilfe", T_HK_ABOUT, ".", T_HK_BEOS_TERMINAL, "B", T_HK_CHARACTER_SET, "Z", T_HK_COPYING, "K", T_HK_EXIT, "E", T_HK_FILE, "D", T_HK_FULL_SCREEN, "V", T_HK_HELP, "H", T_HK_LANGUAGE, "S", T_HK_MEMORY_INFO, "M", T_HK_OS_SHELL, "O", T_HK_SCREEN, "B", T_HK_SETUP, "E", T_HK_TERMINAL_OPTIONS, "T", T_HK_TWTERM, "T", T_HK_WINDOW, "F", T_HK_XTERM, "X", T_KOI8R_FRAMES, "KOI8-R Rahmen", T_LANGUAGE, "Sprache", T_LAST, "letzte", T_LINUX_OR_OS2_FRAMES, "Linux oder OS/2 Rahmen", T_MEMORY_INFO, "Speicherinfo", T_NO_FRAMES, "Keine Rahmen", T_NO, "Nein", T_NUMBER_EXPECTED, "Zahl im Feld erwartet", T_NUMBER_OUT_OF_RANGE, "Zahl auerhalb des gltigen Bereichs", T_OK, "OK", T_OS_SHELL, "Betriebssystem-Fenster", T_RESTRICT_FRAMES_IN_CP850_852, "Beschrnke Rahmen in cp850/852", T_UTF_8_IO, "UTF-8 Ein-/Ausgabe", T_SCREEN, "Bildschirm", T_SETUP, "Einstellungen", T_TERMINAL_OPTIONS, "Terminal-Optionen", T_TUCNAK__TACLOG_LIKE, "Tucnak " VERSION_STRING "\n\nTACLOG-hnliches V/U/SHF Contest Log", T_TWTERM, "Twterm", T_USE_11M, "Benutze ^[[11m", T_VT_100_FRAMES, "VT 100 Rahmen", T_WELCOME_TO_TUCNAK, "Willkommen bei Tucnak!", T_WELCOME, "Willkommen", T_XTERM, "Xterm", T_YES, "Ja", T_CANT_APPEND_S, "Kann nicht an Datei %s anfgen!", T_CANT_WRITE, "Kann nicht in Datei schreiben!", T_CANT_WRITE_S, "Kann nicht in Datei %s schreiben!", T_CANT_READ, "Kann nicht aus Datei lesen!", T_CANT_READ_S, "Kann nicht aus Datei %s lesen!", T_SAVED_S, "%s gespeichert", T__CW_, " CW ", T_CWW_KEYS, " Bildauf +, Bildab - CW Geschwindigkeit ", T_CANT_OPEN_S, "Kann %s nicht ffnen!", T_CANT_LOCK, "Kann nicht sperren!", T_CANT_LOCK_S, "Kann %s nicht sperren!", T_LOADING_CTEST_S, "*** Lade Contest %s", T_NO_FILES, "Keine Dateien im Verzeichnis!", T_BAND_EXIST_SS, "WARNUNG! Band %s (%s) existiert bereits", T_BAND_NOT_OPEN, "Band ist in diesem Contest nicht aktiv", T_NO_BANDS, "Keine Bnder zu laden", T_CANT_SET_GR_S, "Kann keinen Grafik-Modus setzen-%s", T_GCALL, "Rufzeichen: %s", T_GWWL, "Locator: %s", T_GQRB, "QRB: %d km", T_GQTF, "QTF: %d", T_GSEN, "Ges.: %s %s", T_GRCV, "Empf.: %s %s", T_GTIM, "Zeit: %s", T_GOPE, "Op: %s", T_GREM, "Bem.: %s", T_GWKD, "Wkd: %d", T_GINC, "income: %d", T_GLON, "Lnge:%7.2f %-6s", T_GLAT, "Breite:%7.2f %-6s", T_GLOC, "Loc: %s", T__PLESE_WAIT_, " Bitte warten ", T__RO_BAND, " SWL-Band", T_COPYING_VER, "Das ultimative Contestlog - Unerlsslich wie gewohnt\n\nVersion " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nDieses Programm ist freie Software. Sie knnen es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation verffentlicht, weitergeben und/oder modifizieren, entweder gem Version 2 der Lizenz oder (nach Ihrer Option) jeder spteren Version. Die Verffentlichung dieses Programms erfolgt in der Hoffnung, dass es Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FR EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License. Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem Programm erhalten haben. Falls nicht, siehe . ", T_CTEST_ACTIVE, "Contest ist bereits aktiv ", T_NO_CTESTS, "Keine Conteste", T_NO_CCLOSE, "Kein Contest zum Schlieen", T_REALLY, "Wirklich?", T_CLOSE_CTEST, "Mchten Sie diesen Contest wirklich schlieen?", T_GUI_LD, "GUI: %ld ", T_SBRK, "sbrk: %ld", T_CWI, "C_W: %d cw Elemente, %d wc Elemente, letztes %d\n", T_EXC, "Exc: %s %d exc Elemente, %d cxe Elemente, letztes %d\n", T_VEXC, "Besttigte EXC: %d Elemente\n", T_DWI, "D_W: %d Prfixe, %d Lnder, %d Locator\n", T_NAMES, "Namen: %d Namen\n", T_MASTER, "Master: %d calls\n", T_MEMS, "Speicher:", T_NMY, " Mein: %s:%d\n", T_NGLOBAL, "Global: %s:%d\n", T_NMASTER, "Master: %s %s %s:%d %s %s\n", T_NSLAVES, "\nSlaves:\n", T_NINFO, "Netzwerk Info", T_NO_BANDS_QRV, "Keine Bnder QRV", T_NO_BANDS_CONF, "Keine Bnder konfiguriert", T_NOT_AVAILABLE, "Nicht verfgbar", T_ADD_SUBWIN, "Fge Fenster hinzu", T_HK_ADD_SUBWIN, "F", T_CLOSE_SUBWIN, "Schliee Fenster", T_HK_CLOSE_SUBWIN, "S", T_HK_NINFO, "N", T_NEW, "Neu...", T_HK_NEW, "N", T_NEW_WIZZ, "Neu mit Assistent", T_HK_NEW_WIZZ, "A", T_NEW_NET, "Neu vom Netzwerk...", T_HK_NEW_NET, "T", T_OPEN, "ffnen", T_HK_OPEN, "F", T_SAVE, "Speichern", T_HK_SAVE, "S", T_EXPORT_EDI, "Exportiere als EDI", T_HK_EXPORT_EDI, "E", T_EXPORT_REPORT, "Exportiere als Report", T_HK_EXPORT_REPORT, "R", T_EXPORT_ADIF, "Exportiere als ADIF", T_HK_EXPORT_ADIF, "A", T_EXPORT_CBR, "Export as ADIF", T_HK_EXPORT_CBR, "B", T_EXPORT_HTML, "Exportiere als HTML", T_HK_EXPORT_HTML, "H", T_EXPORT_WIKI, "Export as MediaWiki", T_HK_EXPORT_WIKI, "W", T_IMPORT_EDI, "Importiere EDI", T_HK_IMPORT_EDI, "I", T_IMPORT_ADIF, "Importiere ADIF", T_HK_IMPORT_ADIF, "M", T_IMPORT_SWAP, "Importiere swap", T_HK_IMPORT_SWAP, "S", T_IMPORT_LIST, "Import list", T_HK_IMPORT_LIST, "L", T_CONTEST_OP, "Contestoptionen", T_HK_CONTEST_OP, "O", T_CLOSE_CONTEST, "Schliee Contest", T_HK_CLOSE_CONTEST, "K", T_ADD_ERROR, "Fge FEHLER hinzu", T_HK_ADD_ERROR, "F", T_CHOP, "Wechsle Operator", T_HK_CHOP, "O", T_CW_CTEST, "Aktualisiere C_W von Contest", T_HK_CW_CTEST, "C", T_CW_BAND, "Aktualisiere C_W von Band", T_HK_CW_BAND, "B", T_EXC_CTEST, "Aktualisiere EXC DB vom Contest", T_HK_EXC_CTEST, "P", T_EXC_BAND, "Aktualisiere EXC DB vom Band", T_HK_EXC_BAND, "D", T_IMPORT_EBW, "Importiere DL8EBW Datenbank", T_HK_IMPORT_EBW, "W", T_NO_CTEST, "Kein Contest", T_NO_PEERS, "Keine Peers gefunden", T_NO_MASTER, "Master ist nicht verfgbar!", T_CTEST_DEF, "Contestvorgaben", T_HK_CTEST_DEF, "V", T_BAND_DEF, "Bandvorgaben", T_HK_BAND_DEF, "B", T_HK_RESPOP, "R", T_CW_DAEMON, "CW keying", T_HK_CW_DAEMON, "E", T_CW_CQ, "CW CQ", T_HK_CW_CQ, "C", T_SSB_CQ, "SSB CQ", T_HK_SSB_CQ, "S", T_AUTOSAVE, "Auto. speichern", T_HK_AUTOSAVE, "A", T_LOAD_CFG_NET, "Lade cfg vom Netz", T_HK_LOAD_CFG_NET, "N", T_LOAD_CW_NET, "Lade C_W vom Netz", T_HK_LOAD_CW_NET, "W", T_SAVE_CFG, "Speichere Konfiguration", T_HK_SAVE_CFG, "S", T_CONTEST, "Contest", T_HK_CONTEST, "K", T_EDIT, "Editieren", T_HK_EDIT, "E", T_BANDS, "Bnder", T_HK_BANDS, "B", T_SUBWINS, "Fenster", T_HK_SUBWINS, "F", T_BAND_SETTINGS_SC, "Bandeinstellungen fr Band %c %s", T_QRV_ON_THIS_BAND, "QRV auf diesem Band", T_QRV_IN_THIS_CTEST, "QRV in diesem Contest", T_READ_ONLY, "Nur SWL", T_MULTI, "Mehrmann", T_SINGLE, "Einmann", T_CHECK, "Kontrolllog", T_TXEQUIP, " TX Ausrstung:", T_POWER, " Leistung:", T_RXEQUIP, " RX Ausrstung:", T_ANTENNA, " Antenne:", T_AGLASL, " AGL;ASL:", T_OPS, " Operator:", T_SPACES1, " ", T_REMARKS, " Bemerkungen:", T_OK_SECTION_SINGLE, "Klasse fr Einmann-Kategorie:", T_OK_SECTION_MULTI, "Klasse fr Mehrmann-Kategorie:", T_QRG_MIN, "Bandgrenzen von", T_QRG_MAX, "bis [kHz]", T_ADIFBAND, "ADIF Bandname", T_SKEDQRG, "QRG fr skeds (freies Format)", T_BAND_LO, "Transverter LO QRG [Hz]", T_BANDSW, "Wert fr Bandwechsel", T_RESPOP, "Verantwortlicher OP", T_NAME, " Name:", T_CALLSIGN, " Rufzeichen:", T_ADDRESS, " Adresse:", T_POSTCODE, " PLZ:", T_CITY, " Stadt:", T_COUNTRY, " Land:", T_PHONE, " Telefon:", T_BBSEMAIL, " BBS/Email:", T_QP0, " --kein -- ", T_QP1, " 1 QSOp*QSOp_m (Std. IARU)", T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)", T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)", T_QP4, " 4 WWL_ring*QSOp_m (OK activity)", T_QP5, " 5 St_miles*QSOp_m", T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)", T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)", T_QP8, " 8 WWL_dist*QSOp_m (Baltic)", T_QP9, " 9 WWL_dist*QSOp_m (Baltic & Nordic fieldday)", T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)", T_QP11, "11 QSOp_m *3 if F (F 50MHz)", T_QP12, "12 RSGB DC (district codes)", T_QP13, "13 Continent (CQ WW DX Contest)", T_QP14, "14 Continent+band (CQ WW WPX Contest)", T_QP15, "15 VHF Band (ARRL VHF, CQ VHF)", T_QP16, "16 QSOp *4 if F (Champ. de France)", T_TP0, " --kein -- ", T_TP1, " 1 Multiplikativ (Std. IARU)", T_TP2, " 2 Additiv (RSGB Backpacker, VRZA, Sicily)", T_TP3, " 3 Mult. all bands (CQ WW DX Contest)", T_TP4, " 4 All bands togeth. (ARRL VHF)", T_NEW_CTEST, "Neuer Contest", T_CANT_TRUNC, "Kann desc Datei nicht abschneiden", T_NAME_OF_CTEST, "Name des Contests:", T_CALL_OF_CTEST, "Rufzeichen im Contest:", T_CLUB_ST, "Clubstation:", T_YOURWWL, " Locator:", T_YOUREXC, " Austausch:", T_DATE_OF_CTEST, "Datum des Contests:", T_QSOUSED, "QSO-Nr. benutzt", T_QSOPM, " QSOp Multiplikator:", T_WWLUSED, "Locator benutzt", T_WWLB, "Locator Bonus:", T_WWLM, "Locator Multiplikator:", T_EXCUSED, "Austausch benutzt", T_EXCB, "Austausch Bonus:", T_EXCM, "Austausch Multiplikator:", T_EXCNAME, "EXC Name:", T_PREFM, "PREF Multi:", T_DXCB, "DXCC Bonus:", T_DXCM, "DXCC Multiplikator:", T_RSTUSED, "RST benutzt ", T_DEFRS, "Vorgabe RS:", T_DEFRST, "Vorgabe RST:", T_ALSORSTR, "Auch fr RST-R", T_QP_CALC, "Kalkulation QSOp:", T_TO_CALC, "Kalkulation Total:", T_EDI_PROP, "EDI Eigenschaften", T_RESPOP2, "Verantwortlicher OP", T_EDIT_QSO_CD, "Editiere QSO %c: %03d", T_CALLSIGN2, "Rufzeichen:", T_CLUB, " Club:", T_PADR1, " Adresse 1:", T_PADR2, " Adresse 2:", T_RS, " RS:", T_RST, " RST:", T_OPERATOR, " Operator:", T_DATE, " Datum:", T_MODE, " Mode:", T_RSTS, " RSTs:", T_RSTR, " RSTr:", T_QSONRS, "QSO-Nr s:", T_QSONRR, "QSO-Nr r:", T_OPTEXCH, " Austausch:", T_WWL, "Locator:", T_REMARK, "Anmerkung:", T_QRV2, " QRV on:", T_WKD, " WKD:", T_SEND_SKED, "Sende Sked", T_SELECT, "Auswhlen", T_QRG, " Frequenz:", T_WE_CALL, " Wir rufen", T_BAND, " Band:", T_TIME, " Zeit:", T_DUPE_QSO, "Doppel-QSO!", T_CLEAR_THIS_QSO, "Lsche dieses QSO", T_EDIT_OLD_QSO, "Editiere altes QSO", T_MARK_OLD_QSO, "Markiere altes QSO als FEHLER", T_STORE_AS_DUPE, "Speichere als DUPE", T_BAD_CALL, "Dies scheint kein Rufzeichen zu sein", T_N_CALLSIGN, "\nRufzeichen:", T_AUTOSAVE_OPTS, "Optionen autom. speichern", T_SAVE_AQ, "Speichere auf Festplatte nach QSOs:", T_SAVE_AM, "Speichere auf Festplatte nach Minuten:", T_FSYNC, "Fsync", T_SAVE_AQF, "Speichere auf Diskette nach QSOs:", T_SAVE_AMF, "Speichere auf Diskette nach Minuten:", T_DO_MOUNT, "Mount falls nicht in /etc/mtab (unbenutzt)", T_FLOPPY_PATH, "Pfad zur Diskette:", T_MOUNT_CMD, "Mount Befehl: ", T_SW_SHELL, "Shell", T_SW_QSOS, "QSOs", T_SW_LOG, "Log", T_SW_TALK, "Talk", T_SW_SKED, "Sked", T_SW_UNFI, "Leer", T_SW_DXC, "DXCl", T_SW_STAT, "Stat", T_SW_MAP, "Karte", T_SW_SCOPE, "Scope", T_SW_QRV, "QRV", T_SW_HF, "HF", T_SW_PLAYER, "Player", T_SW_CHART, "Chart", T_SHELL, "Shell", T_QSOS, "QSOs", T_LOG, "Log", T_TALK, "Talk", T_SKEDS, "Skeds", T_UNFI, "Unvollstndige QSOs", T_DXC, "DX Cluster (N/A)", T_STAT, "Statistik", T_SWAP, "Swap (N/A)", T_MAP, "Grafische Karte", T_SCOPE, "Scope", T_QRV, "QRV", T_HF, "HF", T_CMD, "Kommando", T_RESPAWN, "Neu starten [Sek]:", T_UNFI_QSO, "Unvollstndiges QSO", T_N_REMARK, "\nBemerkung:", T_NO_CQ, "Kein CQ definiert", T_TEXT, "Text:", T_SPEED, "Geschw. [WPM]:", T_REPEAT, "Wiederholen", T_DELAY, "Verzgerung [0.1s]:", T_ALLOW_UNDEF, "Erlauben falls einige Eintrge undefiniert sind", T_CW_DSCS, "CW%d (%s) %c %s", T_FILENAME, "Pfad:", T_SSB_DSCS, "SSB%d (%s) %c %s", T_UDPPORT, "UDP Port:", T_DEVICE, "Keyer:", T_INIT_SPEED, "Startgeschw. [WPM]:", T_INIT_WEIGHT, "Gewichtung (30-70):", T_WPMFROM, "WPM-Bereich von", T_WPMTO, "bis", T_USE_SPK, "Benutze Lautsprecher", T_LEADIN, " PTT-Verzgerung in [ms]", T_AUTGIVE, "Run mode aut. give after [chars]", T_IGN_IFACE_S, "Ignoriere Interface %-5s", T_IGN_ADDR_S, "Ignoriere Adresse %s", T_ADD_IFACE_SSD, "Interface=%-5s BCAST=%s:%d hinzugefgt", T_FORCED_ADDR, "Erzwinge Adresse %s", T_TIMESKEW, "WARNUNG! Zeitabweichung %d entdeckt gegen %s:%d !\n", T_DISCONNECTING_SD, "Trennen von %s:%d", T_ACCEPTED_SD, "Akzeptiere %s:%d", T_CONNECTING_SD, "Verbinden mit %s:%d", T_CONNECTED_SD, "Verbunden mit %s:%d", T_DISCONNECTED_SD, "Getrennt von %s:%d", T_LOADED_CFG_SSSS, "Konfiguration geladen fr %s %s (%s,%s)", T_LOADED_CW, "C_W Data geladen", T_PEER_NOT_FOUND, "FEHLER! Peer %s nicht gefunden", T_CANT_CREATE_HOME_S, "Kann Verzeichnis %s nicht erstellen", T_CANT_LOAD_CFG, "Kann Konfiguration nicht laden!\nProgramm kann nicht richtig arbeiten!", T_ERR_RC, "Einige Fehler beim Einlesen der Konfigurationsdatei gefunden!\nDiese Datei wurde vielleicht mit einer neueren Version gespeichert!\nKonfiguration nicht speichern, sonst knnen Daten verloren gehen!", T_SES_QTR, " QTR ", T_SES_QRA, " RUFZ. ", T_SES_RST, " RST-S-Nr RST-R-Nr ", T_SES_QTH, " LOC ", T_SES_QRB, " Pkt/QRB QTF ", T_SES_FLG, " Flg ", T_SES_OPE, " Oper. ", T_SES_EXC, " Exch ", T_SES_REM, " Bemerkung ", T_SES_WELCOME, "Willkommen bei Tucnak! ", T_SES_PRESS_F10, "Drcke F10 fr das Men.", T_SES_HAVE_FUN, "Viel Spa.", T_SES_URL, "http://tucnak.nagano.cz ", T_SES_ODX, "ODX: ", T_SES_ODX_DATA, "%s %s %d km (%s)", T_SES_STAT_TIT, "QSOs QSO-P. EXCH LOCs DXCCs Tot.P. AVG", T_SES_AVG, " Sch: %5.2f", T_SES_WPM, " WPM: %d %02d%%", T_SF_WWLS, " LOCs: %d", T_SF_WWLS_UNDER, "-------------", T_SF_EXCS, " EXCs: %d", T_SF_EXCS_UNDER, "-------------", T_SF_MISS_EXCS, " Missing EXCs: %d", T_SF_MISS_EXCS_UNDER, "---------------------", T_SF_PREFS, " PREFs: %d", T_SF_PREFS_UNDER, "-------------", T_SF_DXCS, " DXCCs: %d", T_SF_DXCS_UNDER, "-------------", T_SF_WKD_WWLS, " gearb. LOCs: %d", T_SF_WKD_WWLS_UNDER, "-----------------", T_SF_QSO_WWL4, " QSOs in LOCs: %d", T_SF_QSO_WWL4_UNDER, "----------------------", T_SF_STATS_BAND, " Statistik fr Band %s", T_SF_STATS_BAND_UNDER, "===============================", T_SF_CONTEST, "Contest: %s", T_SF_ALLBQSOS, " QSOs aller Bnder: %d", T_SF_ALLBQSOP, " QSOp aller Bnder: %d", T_SF_ALLBPTS, "Punkte aller Bnder: %d", T_SF_QSOS, "QSOs: %d", T_SF_QSOP, "QSO-Punkte: %d", T_SF_PTS, "Punkte: %d", T_SF_AVG_PTS, "Durchschn. Pkt/QSO: %5.2f", T_SF_AVG_QSOP, "Durchschn. QSO-P/QSO: %5.2f", T_BAND_RO, "Band ist nur SWL", T_THIS_BAND, "Dieses Band", T_OTHER_BANDS, "Andere Bnder", T_CW_DB, "C_W Datenbank", T_PROC_EXITED, "*** Prozess beendet\n", T_WE_CALL2, "Wir rufen", T_WE_LISTEN, "wir hren", T_QSL, "QSL versprochen", T_RECORD, "Audio aufnehmen", T_MAXMIN, " Max. Aufnahmezeit", T_TEMPLATE, "Vorgabe fr Dateiname der Aufnahme:", T_PCM8, "8 Bit PCM", T_PCM16, "16 Bit PCM", T_ULAW, "u-law", T_ALAW, "A-law", T_IMAADPCM, "IMA ADPCM", T_MSADPCM, "MS ADPCM", T_GSM610, "GSM 6.10", T_CHANNELS, "Kanle", T_SAMPLERATE, "Abtastrate", T_FILLOP, "Operator eintragen", T_HK_FILLOP, "O", T_RECAQRB, "QRB,QTF neu berechnen", T_HK_RECAQRB, "Q", T_NETWORK, "Netzwerk & Verfolgung", T_HK_NETWORK, "K", T_IF_IGNORE, " Ignoriere Interfaces:", T_IP_IGNORE, " Ignoriere Netzwerke:", T_IP_ANNOUNCE, " Senden an Netze:", T_TRACE_BCAST, "Verfolge Broadcasts ", T_TRACE_SOCK, "Verfolge Sockets", T_TRACE_RECV, "Verfolge empf. Daten", T_TRACE_SEND, "Verfolge ges. Daten", T_TRACE_QSOS, "Verfolge QSOs", T_TRACE_SDEV, "Trace rotars", T_NOT_MOUNTED_S, "Nicht gemountet: %s", T_RECSRC_NONE, "Nicht setzen", T_RECSRC_MIC, "Mikrofon", T_RECSRC_LINE, "Line in", T_NEW_CALL, "Neu!", T_HK_NEW_CALL, "n", T_QRV_ON_S, "QRV auf %s", T_SKED_QRG, "QRG fr skeds", T_HK_SKED_QRG, "F", T_N_SKED_QRG, "\nQRG fur skeds:", T_GRAB_BAND, "Schnapp Bandkontrolle", T_HK_GRAB_BAND, "G", T_FORCE_RUN, "Erzwinge RUN-Mode", T_HK_FORCE_RUN, "R", T_EXPORT_STATS, "Exportiere Statistiken", T_HK_EXPORT_STATS, "T", T_SF_TOP_DX, " TOP %d DX QSOs:", T_SF_TOP_DX_UNDER, "-------------------", T_ROTAR, "Rotor", T_HK_ROTAR, "R", T_AZIMUTH, " Azimut", T_ELEVATION, "Elevation", T_CH_SPY, "Spioniere...", T_HK_CH_SPY, "S", T_CH_ENDSPY, "Spionieren beenden", T_HK_CH_ENDSPY, "P", T_EXPORT_TITLPAGE, "Exportiere Titelseite", T_HK_EXPORT_TITLPAGE, "L", T_BREAK_RECORD, "Stoppe Aufzeichnung", T_HK_BREAK_RECORD, "B", T_GLOBAL_OPERATOR, "Fr alle Bnder ndern", T_GLOBAL_OPERATOR2, "Global", T_MAXFRAG, "Max. Nr. von Teilen (>=2)", T_PLAY_LAST, "Spiele letzte Aufzeichnung", T_HK_PLAY_LAST, "P", T_MISCOPTS, "Verschiedene Optionen", T_HK_MISCOPTS, "P", T_LOGLINES, "Logzeilen: ", T_SKEDSHIFT, "Sked-Verzgerung (Minuten): ", T_STARTBAND, "Anfangsband: ", T_GFX_X_CH, "Bildschirmauflsung (Zeichen):", T_GFX_Y_CH, "x", T_GFX_X_PX, "Bildschirmauflsung (Pixel):", T_GFX_Y_PX, "x", T_CALL_INFO, "Rufzeicheninformationen", T_HK_CALL_INFO, "I", T_SF_QSO_HOUR, "QSOs/Stunde: %d", T_SF_QSOP_HOUR, "Punkte/Stunde: %d", T_SF_QSOP_50QSO, "Punkte/50 QSOs: %d", T_SF_HOURS, " Stunden", T_SF_HOURS_UNDER, "---------", T_SF_HOURS_TITLE, "Stunde Punkte QSOs AVG pts/QSO", T_QSO_CHECK, "QSO-Kontrolle", T_HK_QSO_CHECK, "K", T_AUDIO, "Audio", T_HK_AUDIO, "D", T_ALSA, "Alsa", T_OSS, "OSS", T_SSBD, "SSB daemon", T_DISKFREE, "Minimaler freier Festplattenspeicher [MiB]", T_FORMAT, "Aufzeichnungsformat", T_PCM_PLAY, "Alsa Abspielgert", T_PCM_REC, "Alsa Aufzeichengert", T_PERIOD, "Wiederholzeit [ms]", T_BUFFER, "Bufferzeit [ms]", T_ALSA_MIXER, "Alsa Mixergert", T_CAPTURE, "Ausgabegert", T_DSP, "Pfad zu /dev/dsp", T_MIXER, "Pfad zu /dev/mixer", T_RECSRC, "Aufnahmequelle", T_SSBD_HOSTNAME, "SSBD Hostname:", T_HOSTNAME, "Hostname:", T_SLASHKEY, "Schrgstrich-Taste", T_FIXQRG, "Fix QRG", T_HK_FIXQRG, "X", T_ENTER_QRG, "Genaue Frequenz eingeben [Hz]", T_BAD_QRG, "Falsche Frequenz", T_CALLSIGN3, "Rufzeichen", T_CALLSIGN_KST, "KST-Stationsrufzeichen:", T_CANT_INIT_WINKEY_S, "Kann winkey nicht finden auf %s", T_WINKEYOPTS, "Winkey-Optionen", T_WK_WK2, "Winkey2 Schnellinitialisierung", T_WK_USEPOT, "Benutze Geschwindigkeitspoti", T_WK_USEBUT, "Benutze Knpfe", T_WK_KM_B, "Curtis-B", T_WK_KM_A, "Curtis-A", T_WK_KM_U, "Ultimatic", T_WK_KM_G, "Bug", T_WK_SWAP, "Paddle swap (linkshndig)", T_RIGOPTS, "Funkgertoptionen", T_HK_RIGOPTS, "G", T_RIG_DEVICE, "Gert:", T_RIG_MODEL, "Modell", T_RIG_SPEED, "Baudrate: ", T_RIG_CIV, "CIV-Adresse", T_RIG_FREQSHIFT, "Freq.versatz SSB->CW", T_RIG_CHOOSE, "Whlen", T_ROTAROPTS, "Rotoroptionen", T_HK_ROTAROPTS, "I", T_DSSAVER, "Deaktiviere Bildschirmschoner", T_DESC, "Beschreibung", T_ROT_NONE, "Kein", T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys", T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI", T_ROT_HAMLIB, "Hamlib (N/A)", T_ROT_REMOTE, "Remote (N/A)", T_ROT_VID, "VID:", T_ROT_PID, "PID:", T_ROT_SERIAL, "Serien-#", T_ROT_ADD, "Neuer Rotor...", T_HK_ROT_ADD, "W", T_ROT_REMOVE, "Entferne Rotor", T_HK_ROT_REMOVE, "R", T_TIMEOUT, "Timeout:", T_BEAMWIDTH, "Beambreite", T_SADDR, "Kommunikationsadresse:", T_MODEL, "Modell:", T_ROT_REM_ROTSTR, "Rotor-Buchstabe fr Remote", T_QSOGLOB, "Globale QSO NR", T_PREFGLOB, "Globaler Prefix", T_NOT_RECORDING_S, "Nicht am Aufzeichnen - %s", T_SKEDCOUNT, "Sked count in popup: ", T_FONTHEIGHT, "Font height (16-32): ", T_RIG_POLL_MS, "Rig poll interval [ms]: ", T_RIG_QRG_R2T, "Set band from radio", T_RIG_QRG_T2R, "Change band on radio", T_RIG_MODE_T2R, "Change mode on radio", T_RUN_MODE, "Run mode", T_HK_RUN_MODE, "M", T_SP_MODE, "S&P mode", T_HK_SP_MODE, "M", T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save", T_RIG_DEBUG, "Debug rig", T_HF_RATE, "Rate: %3d/10 %3d/60", T_HF_BAND, "Band QSO Point Mult", T_HF_SUM, "Sum:", T_HF_LAST, "Last Q-%s P-%s", T_EVEN, "TX even", T_HK_EVEN, "v", T_ODD, "TX odd", T_HK_ODD, "d", T_1ST, "TX 1st", T_HK_1ST, "1", T_2ND, "TX 2nd", T_HK_2ND, "2", T_HF_SCORE, "Score:", T_EXPMODE, "Expedition mode", T_TTTYPE, "Only digits mean", tucnak2-2.48/intl/french.lng0000644000175000017500000004560311571101552012662 00000000000000T__CHAR_SET, "iso8859-1", T__LANGUAGE, "Franais", T_ABOUT, "A propos", T_BAD_NUMBER, "Mauvais nombre", T_BAD_STRING, "Mauvaise chane", T_BASIC_HELP, "Presser F10 pour le menu.\nAmusez vous bien.", T_BLOCK_CURSOR, "Curseur bloc", T_CANCEL, "Annuler", T_CHARACTER_SET, "Codage de caractres", T_COLOR, "Couleur", T_COPYING, "Copying", T_DIFFERENCE, "diffrence", T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Voulez vous rellement quitter Tucnak?", T_EMPTY_STRING_NOT_ALLOWED, "Chane vide non autorise", T_ERROR, "Erreur", T_WARNING, "Avertissement", T_EXIT, "Quitter", T_EXIT_TUCNAK, "Quitter Tucnak", T_FILE, "Fichier", T_FULL_SCREEN, "Plein cran", T_HELP, "Aide", T_HK_ABOUT, "A", T_HK_BEOS_TERMINAL, "B", T_HK_CHARACTER_SET, "A", T_HK_COPYING, "C", T_HK_EXIT, "Q", T_HK_FILE, "F", T_HK_FULL_SCREEN, "F", T_HK_HELP, "H", T_HK_LANGUAGE, "L", T_HK_MEMORY_INFO, "M", T_HK_OS_SHELL, "O", T_HK_SCREEN, "S", T_HK_SETUP, "S", T_HK_TERMINAL_OPTIONS, "T", T_HK_TWTERM, "T", T_HK_WINDOW, "W", T_HK_XTERM, "X", T_KOI8R_FRAMES, "Cadres KOI8-R", T_LANGUAGE, "Langue", T_LAST, "dernier", T_LINUX_OR_OS2_FRAMES, "Cadres Linux ou OS/2", T_MEMORY_INFO, "Info mmoire", T_NO_FRAMES, "Aucun cadre", T_NO, "Non", T_NUMBER_EXPECTED, "Nombre attendu dans le champ", T_NUMBER_OUT_OF_RANGE, "Nombre hors domaine", T_OK, "OK", T_OS_SHELL, "OS shell", T_RESTRICT_FRAMES_IN_CP850_852, "Restreindre les cadres en cp850/852", T_UTF_8_IO, "UTF-8 Entre/Sortie", T_SCREEN, "Ecran", T_SETUP, "Setup", T_TERMINAL_OPTIONS, "Options terminal", T_TUCNAK__TACLOG_LIKE, "Tucnak " VERSION_STRING "\n\nLog contest V/U/SHF similaire TACLOG", T_TWTERM, "Twterm", T_USE_11M, "Utiliser ^[[11m", T_VT_100_FRAMES, "Cadres VT 100", T_WELCOME_TO_TUCNAK, "Bienvenue dans Tucnak!\nVeuillez saisir votr indicatif et champs suivants s'il vous plait", T_WELCOME, "Bienvenue", T_XTERM, "Xterm", T_YES, "Oui", T_CANT_APPEND_S, "Ne peut concatner le fichier %s", T_CANT_WRITE, "Ne peut crire dans le fichier", T_CANT_WRITE_S, "Ne peut crire dans le fichier %s", T_CANT_READ, "Ne peut lire depuis le fichier", T_CANT_READ_S, "Ne peut lire depuis le fichier %s", T_SAVED_S, "%s enregistr", T__CW_, " CW ", T_CWW_KEYS, " PgUp +, PgDn - vitesse cw ", T_CANT_OPEN_S, "Ne peut ouvrir %s", T_CANT_LOCK, "Ne peut vrouiller", T_CANT_LOCK_S, "Ne peut vrouiller %s", T_LOADING_CTEST_S, "*** Chargement contest %s", T_NO_FILES, "Aucun fichier dans le rpertoire", T_BAND_EXIST_SS, "ATTENTION! La bande %s (%s) existe dj", T_BAND_NOT_OPEN, "Bande non active dans ce contest", T_NO_BANDS, "Aucune bande charger", T_CANT_SET_GR_S, "Ne peut mettre aucun mode graphique-%s", T_GCALL, "Indicatif: %s", T_GWWL, "WWL: %s", T_GQRB, "QRB: %d km", T_GQTF, "QTF: %d", T_GSEN, "Trns: %s %s", T_GRCV, "Reu: %s %s", T_GTIM, "Time: %s", T_GOPE, "Op: %s", T_GREM, "Rem: %s", T_GWKD, "Wkd: %d", T_GINC, "revenu: %d", T_GLON, "Lon:%7.2f %-6s", T_GLAT, "Lat:%7.2f %-6s", T_GLOC, "Loc: %s", T__PLESE_WAIT_, " ATTENDRE svp ", T__RO_BAND, " BANDE LECTURE-SEULE", T_COPYING_VER, "The ultimate contestlog - necessary as known\n\nVersion " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nThis program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.", T_CTEST_ACTIVE, "Contest dj actif ", T_NO_CTESTS, "Aucun contest", T_NO_CCLOSE, "Aucun contest fermer", T_REALLY, "Vraiment?", T_CLOSE_CTEST, "Voulez vous vraiment fermer ce contest?", T_GUI_LD, "IHM: %ld ", T_SBRK, "sbrk: %ld", T_CWI, "C_W: %d cw lments, %d wc lments, dernier %d\n", T_EXC, "Exc: %s %d exc items, %d cxe items, latest %d\n", T_VEXC, "Verified EXC: %d items\n", T_DWI, "D_W: %d prfixes, %d DXCCs, %d WWLs\n", T_NAMES, "Noms: %d noms\n", T_MASTER, "Master: %d calls\n", T_MEMS, "Mmoire:", T_NMY, " Mien: %s:%d\n", T_NGLOBAL, "Global: %s:%d\n", T_NMASTER, "Matre: %s %s %s:%d %s %s\n", T_NSLAVES, "\nEsclaves:\n", T_NINFO, "Info rseau", T_NO_BANDS_QRV, "QRV aucune bande", T_NO_BANDS_CONF, "Aucune bande configure", T_NOT_AVAILABLE, "Non disponible", T_ADD_SUBWIN, "Ajoute sous-fentre", T_HK_ADD_SUBWIN, "A", T_CLOSE_SUBWIN, "Ferme sous-fentre", T_HK_CLOSE_SUBWIN, "F", T_HK_NINFO, "N", T_NEW, "Nouveau", T_HK_NEW, "N", T_NEW_WIZZ, "Nouveau depuis assistant", T_HK_NEW_WIZZ, "V", T_NEW_NET, "New from network", T_HK_NEW_NET, "T", T_OPEN, "Ouvrir", T_HK_OPEN, "O", T_SAVE, "Enregistrer", T_HK_SAVE, "E", T_EXPORT_EDI, "Exporter en EDI", T_HK_EXPORT_EDI, "E", T_EXPORT_REPORT, "Exporter en rapport", T_HK_EXPORT_REPORT, "R", T_EXPORT_ADIF, "Exporter en ADIF", T_HK_EXPORT_ADIF, "A", T_EXPORT_CBR, "Export as ADIF", T_HK_EXPORT_CBR, "B", T_EXPORT_HTML, "Exporter en HTML", T_HK_EXPORT_HTML, "H", T_EXPORT_WIKI, "Export as MediaWiki", T_HK_EXPORT_WIKI, "W", T_IMPORT_EDI, "Importer EDI", T_HK_IMPORT_EDI, "I", T_IMPORT_ADIF, "Importer ADIF", T_HK_IMPORT_ADIF, "M", T_IMPORT_SWAP, "Importer swap", T_HK_IMPORT_SWAP, "S", T_IMPORT_LIST, "Import list", T_HK_IMPORT_LIST, "L", T_CONTEST_OP, "Options contest", T_HK_CONTEST_OP, "O", T_CLOSE_CONTEST, "Fermer contest", T_HK_CLOSE_CONTEST, "F", T_ADD_ERROR, "Ajouter ERROR", T_HK_ADD_ERROR, "E", T_CHOP, "Changer d'oprateur", T_HK_CHOP, "O", T_CW_CTEST, "Mettre jour C_W depuis contest", T_HK_CW_CTEST, "C", T_CW_BAND, "Mettre jour C_W depuis la bande", T_HK_CW_BAND, "B", T_EXC_CTEST, "Update EXC DB from contest", T_HK_EXC_CTEST, "P", T_EXC_BAND, "Update EXC DB from band", T_HK_EXC_BAND, "D", T_IMPORT_EBW, "Importer base de donne DL8EBW", T_HK_IMPORT_EBW, "W", T_NO_CTEST, "Aucun contest", T_NO_PEERS, "Aucun pairs trouvs", T_NO_MASTER, "Matre undisponible!", T_CTEST_DEF, "Contest par dfaut", T_HK_CTEST_DEF, "O", T_BAND_DEF, "Bande par dfaut", T_HK_BAND_DEF, "B", T_HK_RESPOP, "R", T_CW_DAEMON, "Manip CW", T_HK_CW_DAEMON, "M", T_CW_CQ, "CW CQ", T_HK_CW_CQ, "C", T_SSB_CQ, "SSB CQ", T_HK_SSB_CQ, "S", T_AUTOSAVE, "Auto-enregistrement", T_HK_AUTOSAVE, "A", T_LOAD_CFG_NET, "Chargement cfg depuis rseau", T_HK_LOAD_CFG_NET, "N", T_LOAD_CW_NET, "Chargement C_W depuis rseau", T_HK_LOAD_CW_NET, "W", T_SAVE_CFG, "Enregistrement configuration", T_HK_SAVE_CFG, "F", T_CONTEST, "Contest", T_HK_CONTEST, "C", T_EDIT, "Edition", T_HK_EDIT, "E", T_BANDS, "Bandes", T_HK_BANDS, "B", T_SUBWINS, "Sous-fentres", T_HK_SUBWINS, "W", T_BAND_SETTINGS_SC, "Band settings for band %c %s", T_QRV_ON_THIS_BAND, "QRV sur cette bande", T_QRV_IN_THIS_CTEST, "QRV dans ce contest", T_READ_ONLY, "Lecture-seule", T_MULTI, "Multi", T_SINGLE, "Single", T_CHECK, "Check", T_TXEQUIP, " TX Equip:", T_POWER, "Puissance:", T_RXEQUIP, " RX Equip:", T_ANTENNA, " Antenne:", T_AGLASL, " AGL;ASL:", T_OPS, "Oprateurs:", T_SPACES1, " ", T_REMARKS, "Remarques:", T_OK_SECTION_SINGLE, "Single category in OK", T_OK_SECTION_MULTI, "Multi category in OK", T_QRG_MIN, "Band boundary from", T_QRG_MAX, "to [kHz]", T_ADIFBAND, "ADIF band name", T_SKEDQRG, "QRG for skeds (free form)", T_BAND_LO, "Transverter's LO QRG [Hz]", T_BANDSW, "Band switch value", T_RESPOP, "Oprateur responsable", T_NAME, " Nom:", T_CALLSIGN, " Indicatif:", T_ADDRESS, " Adresse:", T_POSTCODE, "Code Postal:", T_CITY, " Ville:", T_COUNTRY, " Pays:", T_PHONE, " Tlphone:", T_BBSEMAIL, " BBS/Email:", T_QP0, " --aucun-- ", T_QP1, " 1 QSOp*QSOp_m (Std. IARU)", T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)", T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)", T_QP4, " 4 WWL_ring*QSOp_m (OK activity)", T_QP5, " 5 St_miles*QSOp_m", T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)", T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)", T_QP8, " 8 WWL_dist*QSOp_m (Baltic)", T_QP9, " 9 WWL_dist*QSOp_m (Baltic & Nordic fieldday)", T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)", T_QP11, "11 QSOp_m *3 if F (F 50MHz)", T_QP12, "12 RSGB DC (district codes)", T_QP13, "13 Continent (CQ WW DX Contest)", T_QP14, "14 Continent+band (CQ WW WPX Contest)", T_QP15, "15 VHF Band (ARRL VHF, CQ VHF)", T_QP16, "16 QSOp *4 if F (Champ. de France)", T_TP0, " --aucun-- ", T_TP1, " 1 Multiplicatif (Std. IARU)", T_TP2, " 2 Additif (RSGB Backpacker, VRZA, Sicily)", T_TP3, " 3 Mult. all bands (CQ WW DX Contest)", T_TP4, " 4 All bands togeth. (ARRL VHF)", T_NEW_CTEST, "Nouveau Contest", T_CANT_TRUNC, "Ne peut troncaturer le fichier desc", T_NAME_OF_CTEST, "Nom du contest:", T_CALL_OF_CTEST, "Indicatif dans le contest:", T_CLUB_ST, "Station du club:", T_YOURWWL, "Votre WWL:", T_YOUREXC, "Votre EXC:", T_DATE_OF_CTEST, "Date du contest:", T_QSOUSED, "QSO NR utilis", T_QSOPM, " QSOp multi:", T_WWLUSED, "WWL utilis ", T_WWLB, "WWL bonus:", T_WWLM, "WWL multi:", T_EXCUSED, "EXC used", T_EXCB, " EXC bonus:", T_EXCM, "EXC multi:", T_EXCNAME, "EXC name:", T_PREFM, "PREF multi:", T_DXCB, "DXC bonus:", T_DXCM, "DXC multi:", T_RSTUSED, "RST Utilis ", T_DEFRS, "RS par dfaut:", T_DEFRST, "Def RST:", T_ALSORSTR, "Also for RST-R", T_QP_CALC, " QSOp calc:", T_TO_CALC, "Total calc:", T_EDI_PROP, "EDI prop", T_RESPOP2, "Op responsable", T_EDIT_QSO_CD, "Edite QSO %c: %03d", T_CALLSIGN2, "Indicatif:", T_CLUB, " Club:", T_PADR1, " PAdr1:", T_PADR2, " PAdr2:", T_RS, " RS:", T_RST, " RST:", T_OPERATOR, "Operator:", T_DATE, " Date:", T_MODE, " Mode:", T_RSTS, " RSTs:", T_RSTR, " RSTr:", T_QSONRS, "QSO sent:", T_QSONRR, "QSO rcvd:", T_OPTEXCH, " OptExch:", T_WWL, " WWL:", T_REMARK, "Remarque:", T_QRV2, " QRV on:", T_WKD, " WKD:", T_SEND_SKED, "Envoi sked", T_SELECT, "Slectionne", T_QRG, " QRG:", T_WE_CALL, " On appelle", T_BAND, " Bande:", T_TIME, " Time:", T_DUPE_QSO, "QSO dupliqu!", T_CLEAR_THIS_QSO, "Nettoyer ce QSO", T_EDIT_OLD_QSO, "Edite ancien QSO", T_MARK_OLD_QSO, "Marque ancien QSO comme ERROR", T_STORE_AS_DUPE, "Enregistre comme DUPE", T_BAD_CALL, "Ca ne ressemble pas un indicatif", T_N_CALLSIGN, "\nIndicatif:", T_AUTOSAVE_OPTS, "Options auto-enregistrement", T_SAVE_AQ, "Enregistre sur disque aprs QSO: ", T_SAVE_AM, "Enregistre sur disque aprs minutes:", T_FSYNC, "Fsync", T_SAVE_AQF, "Enregistre sur disquette aprs QSO: ", T_SAVE_AMF, "Enregistre sur disquette aprs minutes:", T_DO_MOUNT, "Monter si absent de /etc/mtab (inutilis)", T_FLOPPY_PATH, "Chemin de disquette:", T_MOUNT_CMD, "Commande de montage: ", T_SW_SHELL, "Shell", T_SW_QSOS, "QSOs", T_SW_LOG, "Log", T_SW_TALK, "Talk", T_SW_SKED, "Sked", T_SW_UNFI, "Part.", T_SW_DXC, "DXC", T_SW_STAT, "Stat", T_SW_MAP, "Carte", T_SW_SCOPE, "Scope", T_SW_QRV, "QRV", T_SW_HF, "HF", T_SW_PLAYER, "Player", T_SW_CHART, "Chart", T_SHELL, "Shell", T_QSOS, "QSOs", T_LOG, "Log", T_TALK, "Talk", T_SKEDS, "Skeds", T_UNFI, "QSOs non finis", T_DXC, "DX Cluster (N/A)", T_STAT, "Statistiques", T_SWAP, "Swap (N/A)", T_MAP, "Carte graphique", T_SCOPE, "Scope", T_QRV, "QRV", T_HF, "HF", T_CMD, "Commande", T_RESPAWN, "Relance [sec]:", T_UNFI_QSO, "QSO non fini", T_N_REMARK, "\nRemarque:", T_NO_CQ, "Aucun CQ dfini", T_TEXT, "Texte:", T_SPEED, "Vitesse [WPM]:", T_REPEAT, "Rpte", T_DELAY, "Dlai [0.1s]:", T_ALLOW_UNDEF, "Autorise si qq lments indfinis", T_CW_DSCS, "CW%d (%s) %c %s", T_FILENAME, "Nom de fichier:", T_SSB_DSCS, "SSB%d (%s) %c %s", T_UDPPORT, "Port UDP:", T_DEVICE, "Priphrique manip:", T_INIT_SPEED, "Vitesse initiale [WPM]:", T_INIT_WEIGHT, "Weight (30-70):", T_WPMFROM, "WPM Range from", T_WPMTO, "to", T_USE_SPK, "Utilise le haut-parleur", T_LEADIN, " PTT lead in [ms]", T_AUTGIVE, "Run mode aut. give after [chars]", T_IGN_IFACE_S, "Ignore l'interface %-5s", T_IGN_ADDR_S, "Ignore l'adresse %s", T_ADD_IFACE_SSD, "Ajoute l'interface=%-5s BCAST=%s:%d", T_FORCED_ADDR, "Force l'adresse %s", T_TIMESKEW, "ATTENTION! Variation de temps %d dtecte par rapport %s:%d !\n", T_DISCONNECTING_SD, "Dconnection de %s:%d", T_ACCEPTED_SD, "Accept %s:%d", T_CONNECTING_SD, "Connection %s:%d", T_CONNECTED_SD, "Connect %s:%d", T_DISCONNECTED_SD, "Dconnect de %s:%d", T_LOADED_CFG_SSSS, "Chargement config pour %s %s (%s,%s)", T_LOADED_CW, "Donne C_W charge", T_PEER_NOT_FOUND, "ERREUR! Correspondant %s non trouv", T_CANT_CREATE_HOME_S, "Ne peut crer le rpertoire %s", T_CANT_LOAD_CFG, "Ne peut charger la configuration!\nProgramme ne peut fonctionner correctement!", T_ERR_RC, "Encontr quelques erreurs dans le fichier de config!\nCe fichier a peut-tre t enregistr avec un version plus rcente de Tucnak!\nN'enregistrez pas votre confuguration sinon vous perdriez vos donnes!", T_SES_QTR, " QTR ", T_SES_QRA, " CALL ", T_SES_RST, " RST-S-No RST-R-No ", T_SES_QTH, " QTH ", T_SES_QRB, " Pts/QRB QTF ", T_SES_FLG, " Flg ", T_SES_OPE, " Oper. ", T_SES_EXC, " Exch ", T_SES_REM, " Remarque ", T_SES_WELCOME, "Bienvenue dans Tucnak! ", T_SES_PRESS_F10, "Presser F10 pour le menu.", T_SES_HAVE_FUN, "Amusez vous bien.", T_SES_URL, "http://tucnak.nagano.cz ", T_SES_ODX, "ODX: ", T_SES_ODX_DATA, "%s %s %d km (%s)", T_SES_STAT_TIT, "QSOs QSO-p OptX WWLs DXCCs Total-p AVG", T_SES_AVG, " MOY: %5.2f", T_SES_WPM, " WPM: %d %02d%%", T_SF_WWLS, " WWLs: %d", T_SF_WWLS_UNDER, "-------------", T_SF_EXCS, " EXCs: %d", T_SF_EXCS_UNDER, "-------------", T_SF_MISS_EXCS, " Missing EXCs: %d", T_SF_MISS_EXCS_UNDER, "---------------------", T_SF_PREFS, " PREFs: %d", T_SF_PREFS_UNDER, "-------------", T_SF_DXCS, " DXCCs: %d", T_SF_DXCS_UNDER, "-------------", T_SF_WKD_WWLS, " WKD WWLs: %d", T_SF_WKD_WWLS_UNDER, "-----------------", T_SF_QSO_WWL4, " QSOS en WWL4s: %d", T_SF_QSO_WWL4_UNDER, "----------------------", T_SF_STATS_BAND, " Statistiques pour la bande %s", T_SF_STATS_BAND_UNDER, "===============================", T_SF_CONTEST, "Contest: %s", T_SF_ALLBQSOS, "All bands QSOs: %d", T_SF_ALLBQSOP, "All bands QSOp: %d", T_SF_ALLBPTS, "All bands pts: %d", T_SF_QSOS, "QSOs: %d", T_SF_QSOP, "QSO points: %d", T_SF_PTS, "Points: %d", T_SF_AVG_PTS, "Moyenne pts/QSO: %5.2f", T_SF_AVG_QSOP, "Moyenne qsop/QSO: %5.2f", T_BAND_RO, "Bande en lecture-seule", T_THIS_BAND, "Cette bande", T_OTHER_BANDS, "Autres bandes", T_CW_DB, "C_W base de donnes", T_PROC_EXITED, "*** Processus s'est termin\n", T_WE_CALL2, "on appelle", T_WE_LISTEN, "on coute", T_QSL, "QSL promise", T_RECORD, "Enregistre trafic", T_MAXMIN, " Dure max d'enregistrement", T_TEMPLATE, "Patron du nom de fichier", T_PCM8, "8 bit PCM", T_PCM16, "16 bit PCM", T_ULAW, "mu-law", T_ALAW, "A-law", T_IMAADPCM, "IMA ADPCM", T_MSADPCM, "MS ADPCM", T_GSM610, "GSM 6.10", T_CHANNELS, "Canaux", T_SAMPLERATE, "Frquence d'chantillonage", T_FILLOP, "Renseigner oprateurs", T_HK_FILLOP, "N", T_RECAQRB, "Recalc QRB,QTF", T_HK_RECAQRB, "R", T_NETWORK, "Rseau & trace", T_HK_NETWORK, "E", T_IF_IGNORE, "Ignore interfaces:", T_IP_IGNORE, " Ignore rseaux:", T_IP_ANNOUNCE, "Annonce au rseau:", T_TRACE_BCAST, "Trace broadcasts ", T_TRACE_SOCK, "Trace sockets", T_TRACE_RECV, "Trace donnes reues", T_TRACE_SEND, "Trace donnes envoyes", T_TRACE_QSOS, "Trace QSOs", T_TRACE_SDEV, "Trace rotars", T_NOT_MOUNTED_S, "Non mont %s", T_RECSRC_NONE, "Ne pas dfinir", T_RECSRC_MIC, "Microphone", T_RECSRC_LINE, "Entre ligne", T_NEW_CALL, "Nouveau!", T_HK_NEW_CALL, "n", T_QRV_ON_S, "QRV sur %s", T_SKED_QRG, "QRG pour skeds", T_HK_SKED_QRG, "Q", T_N_SKED_QRG, "\nQRG pour skeds:", T_GRAB_BAND, "Rcupre contrle bande", T_HK_GRAB_BAND, "P", T_FORCE_RUN, "Force mode RUN", T_HK_FORCE_RUN, "U", T_EXPORT_STATS, "Exporter Statistiques", T_HK_EXPORT_STATS, "T", T_SF_TOP_DX, " TOP %d DX QSOs:", T_SF_TOP_DX_UNDER, "-------------------", T_ROTAR, "Rotator", T_HK_ROTAR, "R", T_AZIMUTH, " Azimuth", T_ELEVATION, "Elvation", T_CH_SPY, "Espionne", T_HK_CH_SPY, "S", T_CH_ENDSPY, "Fin espionnage", T_HK_CH_ENDSPY, "F", T_EXPORT_TITLPAGE, "Exporter page de titre", T_HK_EXPORT_TITLPAGE, "P", T_BREAK_RECORD, "Arrte l'enregistrement", T_HK_BREAK_RECORD, "A", T_GLOBAL_OPERATOR, "Changer pour toutes bandes", T_GLOBAL_OPERATOR2, "Global", T_MAXFRAG, "Nombre max de fragments (>=2)", T_PLAY_LAST, "Joue dernier chantillon", T_HK_PLAY_LAST, "J", T_MISCOPTS, "Options diverses", T_HK_MISCOPTS, "P", T_LOGLINES, "Lignes log: ", T_SKEDSHIFT, "Dcalage sked (minutes): ", T_STARTBAND, "Band de dpart: ", T_GFX_X_CH, "Rsolution cran (cars):", T_GFX_Y_CH, "x", T_GFX_X_PX, "Rsolution cran (pixels):", T_GFX_Y_PX, "x", T_CALL_INFO, "Info indicatif", T_HK_CALL_INFO, "I", T_SF_QSO_HOUR, "QSOs/heure: %d", T_SF_QSOP_HOUR, "Points/heure: %d", T_SF_QSOP_50QSO, "Points/50 QSOs: %d", T_SF_HOURS, " Heures", T_SF_HOURS_UNDER, "---------", T_SF_HOURS_TITLE, "Heures Points QSOs MOY pts/QSO", T_QSO_CHECK, "QSO vrification", T_HK_QSO_CHECK, "Q", T_AUDIO, "Audio", T_HK_AUDIO, "D", T_ALSA, "Alsa", T_OSS, "OSS", T_SSBD, "SSBD", T_DISKFREE, "Espace disque minimum [MiB]", T_FORMAT, "Format enregistrement", T_PCM_PLAY, "Priphrique playback Alsa", T_PCM_REC, "Priphrique capture Alsa", T_PERIOD, "Priode [ms]", T_BUFFER, "Temps buffer [ms]", T_ALSA_MIXER, "Priphrique mixeur Alsa", T_CAPTURE, "Source capture", T_DSP, "OSS DSP", T_MIXER, "OSS mixeur", T_RECSRC, "Source enregistrement", T_SSBD_HOSTNAME, "Hte SSBD:", T_HOSTNAME, "Hte:", T_SLASHKEY, "Slash key", T_FIXQRG, "Fix QRG", T_HK_FIXQRG, "X", T_ENTER_QRG, "Enter accurate QRG [Hz]", T_BAD_QRG, "Bad frequency", T_CALLSIGN3, "Callsign", T_CALLSIGN_KST, "KST station's callsign:", T_CANT_INIT_WINKEY_S, "Can't init winkey on %s", T_WINKEYOPTS, "Winkey options", T_WK_WK2, "Winkey2 fast initialization", T_WK_USEPOT, "Use speed pot", T_WK_USEBUT, "Use buttons", T_WK_KM_B, "Curtis-B", T_WK_KM_A, "Curtis-A", T_WK_KM_U, "Ultimatic", T_WK_KM_G, "Bug", T_WK_SWAP, "Paddle swap (left handled)", T_RIGOPTS, "Rig options", T_HK_RIGOPTS, "G", T_RIG_DEVICE, "Device:", T_RIG_MODEL, "Model", T_RIG_SPEED, "Baudrate: ", T_RIG_CIV, "CIV address", T_RIG_FREQSHIFT, "Freq. shift SSB->CW", T_RIG_CHOOSE, "Choose", T_ROTAROPTS, "Rotar options", T_HK_ROTAROPTS, "I", T_DSSAVER, "Disable screensaver", T_DESC, "Description", T_ROT_NONE, "None", T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys", T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI", T_ROT_HAMLIB, "Hamlib (N/A)", T_ROT_REMOTE, "Remote (N/A)", T_ROT_VID, "VID:", T_ROT_PID, "PID:", T_ROT_SERIAL, "Serial #", T_ROT_ADD, "Add new rotator", T_HK_ROT_ADD, "W", T_ROT_REMOVE, "Remove rotator", T_HK_ROT_REMOVE, "R", T_TIMEOUT, "Timeout:", T_BEAMWIDTH, "Beam width", T_SADDR, "Communication address:", T_MODEL, "Model:", T_ROT_REM_ROTSTR, "Rotator letter for remote", T_QSOGLOB, "Global QSO NR", T_PREFGLOB, "Global prefix", T_NOT_RECORDING_S, "Not recording - %s", T_SKEDCOUNT, "Sked count in popup: ", T_FONTHEIGHT, "Font height (16-32): ", T_RIG_POLL_MS, "Rig poll interval [ms]: ", T_RIG_QRG_R2T, "Set band from radio", T_RIG_QRG_T2R, "Change band on radio", T_RIG_MODE_T2R, "Change mode on radio", T_RUN_MODE, "Run mode", T_HK_RUN_MODE, "M", T_SP_MODE, "S&P mode", T_HK_SP_MODE, "M", T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save", T_RIG_DEBUG, "Debug rig", T_HF_RATE, "Rate: %3d/10 %3d/60", T_HF_BAND, "Band QSO Point Mult", T_HF_SUM, "Sum:", T_HF_LAST, "Last Q-%s P-%s", T_EVEN, "TX even", T_HK_EVEN, "v", T_ODD, "TX odd", T_HK_ODD, "d", T_1ST, "TX 1st", T_HK_1ST, "1", T_2ND, "TX 2nd", T_HK_2ND, "2", T_HF_SCORE, "Score:", T_EXPMODE, "Expedition mode", T_TTTYPE, "Only digits mean", tucnak2-2.48/intl/index.txt0000644000175000017500000000007111567373657012577 00000000000000english czech slovak german portuguese french castellano tucnak2-2.48/intl/portuguese.lng0000644000175000017500000004616611571101552013624 00000000000000T__CHAR_SET, "iso8859-1", T__LANGUAGE, "Portugus", T_ABOUT, "Acerca", T_BAD_NUMBER, "Nmero errado", T_BAD_STRING, "String errada", T_BASIC_HELP, "Prima F10 para ter o menu.\nDivirta-se.", T_BLOCK_CURSOR, "Cursor de bloco", T_CANCEL, "Cancelar", T_CHARACTER_SET, "Definio de caracter", T_COLOR, "Cor", T_COPYING, "Licena", T_DIFFERENCE, "diferena", T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Quer mesmo sair do Tucnak?", T_EMPTY_STRING_NOT_ALLOWED, "String vazia no permitida", T_ERROR, "Erro", T_WARNING, "Aviso", T_EXIT, "Sair", T_EXIT_TUCNAK, "Sair do Tucnak", T_FILE, "Ficheiro", T_FULL_SCREEN, "Monitor completo", T_HELP, "Ajuda", T_HK_ABOUT, "A", T_HK_BEOS_TERMINAL, "B", T_HK_CHARACTER_SET, "H", T_HK_COPYING, "C", T_HK_EXIT, "X", T_HK_FILE, "F", T_HK_FULL_SCREEN, "F", T_HK_HELP, "H", T_HK_LANGUAGE, "L", T_HK_MEMORY_INFO, "M", T_HK_OS_SHELL, "O", T_HK_SCREEN, "S", T_HK_SETUP, "S", T_HK_TERMINAL_OPTIONS, "T", T_HK_TWTERM, "T", T_HK_WINDOW, "W", T_HK_XTERM, "X", T_KOI8R_FRAMES, "KOI8-R frames", T_LANGUAGE, "Linguagem", T_LAST, "ltimo", T_LINUX_OR_OS2_FRAMES, "Linux ou OS/2 frames", T_MEMORY_INFO, "Informao da memria", T_NO_FRAMES, "No h frames", T_NO, "No", T_NUMBER_EXPECTED, "Esperado nmero no campo", T_NUMBER_OUT_OF_RANGE, "Nmero fora de alcance", T_OK, "OK", T_OS_SHELL, "OS shell", T_RESTRICT_FRAMES_IN_CP850_852, "Frames restringidas em cp850/852", T_UTF_8_IO, "UTF-8 Input/Output", T_SCREEN, "Monitor", T_SETUP, "Definies", T_TERMINAL_OPTIONS, "Opes do terminal", T_TUCNAK__TACLOG_LIKE, "Tucnak " VERSION_STRING "\n\nComo o programa de concursos de V/U/SHF TACLOG", T_TWTERM, "Twterm", T_USE_11M, "Usar ^[[11m", T_VT_100_FRAMES, "VT 100 frames", T_WELCOME_TO_TUCNAK, "Bem vindo ao Tucnak!", T_WELCOME, "Bem vindo", T_XTERM, "Xterm", T_YES, "Sim", T_CANT_APPEND_S, "No posso anexar ao ficheiro %s", T_CANT_WRITE, "No posso escrever para o ficheiro", T_CANT_WRITE_S, "No posso escrever para o ficheiro %s", T_CANT_READ, "No posso ler desde o ficheiro", T_CANT_READ_S, "No posso ler desde o ficheiro %s", T_SAVED_S, "Guardado %s", T__CW_, " CW ", T_CWW_KEYS, " PgUp +, PgDn - velocidade do cw ", T_CANT_OPEN_S, "No posso abrir %s", T_CANT_LOCK, "No posso fechar", T_CANT_LOCK_S, "No posso fechar %s", T_LOADING_CTEST_S, "*** A carregar o concurso %s", T_NO_FILES, "Nenhuns ficheiros na directoria", T_BAND_EXIST_SS, "AVISO! A banda %s (%s) j existe", T_BAND_NOT_OPEN, "A banda no est activa neste concurso", T_NO_BANDS, "Nenhumas bandas para carregar", T_CANT_SET_GR_S, "No posso definir modos grficos-%s", T_GCALL, "Indicativo: %s", T_GWWL, "WWL: %s", T_GQRB, "QRB: %d km", T_GQTF, "QTF: %d", T_GSEN, "Sent: %s %s", T_GRCV, "Rcvd: %s %s", T_GTIM, "Time: %s", T_GOPE, "Op: %s", T_GREM, "Rem: %s", T_GWKD, "Wkd: %d", T_GINC, "income: %d", T_GLON, "Lon:%7.2f %-6s", T_GLAT, "Lat:%7.2f %-6s", T_GLOC, "Loc: %s", T__PLESE_WAIT_, " Por favor ESPERE ", T__RO_BAND, " BANDA SO PARA LER", T_COPYING_VER, "O ltimo programa de concurso - to necessrio como conhecido\n\nVerso " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nEste programa software livre; voc pode redistribuir e/ou modific-lo debaixo dos termos da licena GNU General Public License como publicado pelo Free Software Foundation; qualquer verso 2 da Licena, ou (como sua opo) qualquer verso mais recente.", T_CTEST_ACTIVE, "O concurso j est activo ", T_NO_CTESTS, "Nenhum concurso", T_NO_CCLOSE, "Nenhum concurso para fechar", T_REALLY, "De certeza?", T_CLOSE_CTEST, "Quer mesmo fechar este concurso?", T_GUI_LD, "GUI: %ld ", T_SBRK, "sbrk: %ld", T_CWI, "C_W: %d cw items, %d wc items, ltimo %d\n", T_EXC, "Exc: %s %d exc items, %d cxe items, ltimo %d\n", T_VEXC, "Verified EXC: %d items\n", T_DWI, "D_W: %d prefixos, %d DXCCs, %d WWLs\n", T_NAMES, "Nomes: %d nomes\n", T_MASTER, "Master: %d calls\n", T_MEMS, "Memria:", T_NMY, " Meu: %s:%d\n", T_NGLOBAL, "Global: %s:%d\n", T_NMASTER, "Master: %s %s %s:%d %s\n", T_NSLAVES, "\nSlaves:\n", T_NINFO, "Informao da rede", T_NO_BANDS_QRV, "Nenhumas bandas QRV", T_NO_BANDS_CONF, "Nenhumas bandas configuradas", T_NOT_AVAILABLE, "No disponvel", T_ADD_SUBWIN, "Adicionar subwin", T_HK_ADD_SUBWIN, "A", T_CLOSE_SUBWIN, "Fechar subwin", T_HK_CLOSE_SUBWIN, "C", T_HK_NINFO, "N", T_NEW, "Novo", T_HK_NEW, "N", T_NEW_WIZZ, "Novo desde os exemplos", T_HK_NEW_WIZZ, "W", T_NEW_NET, "Novo desde a rede", T_HK_NEW_NET, "T", T_OPEN, "Abrir", T_HK_OPEN, "O", T_SAVE, "Guardar", T_HK_SAVE, "S", T_EXPORT_EDI, "Exportar como EDI", T_HK_EXPORT_EDI, "E", T_EXPORT_REPORT, "Exportar como reporte", T_HK_EXPORT_REPORT, "R", T_EXPORT_ADIF, "Exportar como ADIF", T_HK_EXPORT_ADIF, "A", T_EXPORT_CBR, "Export as ADIF", T_HK_EXPORT_CBR, "B", T_EXPORT_HTML, "Exportar como HTML", T_HK_EXPORT_HTML, "H", T_EXPORT_WIKI, "Export as MediaWiki", T_HK_EXPORT_WIKI, "W", T_IMPORT_EDI, "Importar EDI", T_HK_IMPORT_EDI, "I", T_IMPORT_ADIF, "Importar ADIF", T_HK_IMPORT_ADIF, "M", T_IMPORT_SWAP, "Importar swap", T_HK_IMPORT_SWAP, "S", T_IMPORT_LIST, "Import list", T_HK_IMPORT_LIST, "L", T_CONTEST_OP, "Opes do concurso", T_HK_CONTEST_OP, "O", T_CLOSE_CONTEST, "Fechar concurso", T_HK_CLOSE_CONTEST, "C", T_ADD_ERROR, "Adicionar ERRO", T_HK_ADD_ERROR, "E", T_CHOP, "Mudar de operador", T_HK_CHOP, "O", T_CW_CTEST, "Actualizar o C_W desde um concurso", T_HK_CW_CTEST, "C", T_CW_BAND, "Actualizar o C_W desde a banda", T_HK_CW_BAND, "B", T_EXC_CTEST, "Actualizar o EXC DB desde o concurso", T_HK_EXC_CTEST, "P", T_EXC_BAND, "Actualizar o EXC DB desde a banda", T_HK_EXC_BAND, "D", T_IMPORT_EBW, "Importar a database de DL8EBW", T_HK_IMPORT_EBW, "W", T_NO_CTEST, "Nenhum concurso", T_NO_PEERS, "Nenhuns peers encontrados", T_NO_MASTER, "O master no est disponvel!", T_CTEST_DEF, "Configurao do concurso", T_HK_CTEST_DEF, "O", T_BAND_DEF, "A banda por defeito", T_HK_BAND_DEF, "B", T_HK_RESPOP, "R", T_CW_DAEMON, "Chave de CW", T_HK_CW_DAEMON, "E", T_CW_CQ, "CW CQ", T_HK_CW_CQ, "C", T_SSB_CQ, "SSB CQ", T_HK_SSB_CQ, "S", T_AUTOSAVE, "Auto guardar", T_HK_AUTOSAVE, "A", T_LOAD_CFG_NET, "Carregar a cfg desde a net", T_HK_LOAD_CFG_NET, "N", T_LOAD_CW_NET, "Carregar o C_W desde a net", T_HK_LOAD_CW_NET, "W", T_SAVE_CFG, "Guardar a configurao", T_HK_SAVE_CFG, "F", T_CONTEST, "Concurso", T_HK_CONTEST, "C", T_EDIT, "Editar", T_HK_EDIT, "E", T_BANDS, "Bandas", T_HK_BANDS, "B", T_SUBWINS, "Subwins", T_HK_SUBWINS, "W", T_BAND_SETTINGS_SC, "As definies da banda por banda %c %s", T_QRV_ON_THIS_BAND, "QRV nesta banda", T_QRV_IN_THIS_CTEST, "QRV neste concurso", T_READ_ONLY, "So ler", T_MULTI, "Multi", T_SINGLE, "Szinho", T_CHECK, "Verificar", T_TXEQUIP, " equip de TX:", T_POWER, " potncia:", T_RXEQUIP, " equip de RX:", T_ANTENNA, " antena:", T_AGLASL, " AGL;ASL:", T_OPS, "operadores:", T_SPACES1, " ", T_REMARKS, " anotaes:", T_OK_SECTION_SINGLE, "Categoria single em OK", T_OK_SECTION_MULTI, "Categoria multi em OK", T_QRG_MIN, "Limite da banda desde", T_QRG_MAX, "para [kHz]", T_ADIFBAND, "Nome da banda em ADIF", T_SKEDQRG, "QRG para skeds (formato livre)", T_BAND_LO, "Transverter's LO QRG [Hz]", T_BANDSW, "Band switch value", T_RESPOP, "Operador responsvel", T_NAME, " nome:", T_CALLSIGN, " indicativo:", T_ADDRESS, " endereo:", T_POSTCODE, "cdigo postal:", T_CITY, " cidade:", T_COUNTRY, " pas:", T_PHONE, " telefone:", T_BBSEMAIL, " BBS/Email:", T_QP0, " --nenhum -- ", T_QP1, " 1 QSOp*QSOp_m (Std. IARU)", T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)", T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)", T_QP4, " 4 WWL_ring*QSOp_m (OK activity)", T_QP5, " 5 St_miles*QSOp_m", T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)", T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)", T_QP8, " 8 WWL_dist*QSOp_m (Baltic)", T_QP9, " 9 WWL_dist*QSOp_m (Baltic & Nordic fieldday)", T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)", T_QP11, "11 QSOp_m *3 if F (F 50MHz)", T_QP12, "12 RSGB DC (district codes)", T_QP13, "13 Continent (CQ WW DX Contest)", T_QP14, "14 Continent+band (CQ WW WPX Contest)", T_QP15, "15 VHF Band (ARRL VHF, CQ VHF)", T_QP16, "16 QSOp *4 if F (Champ. de France)", T_TP0, " --none -- ", T_TP1, " 1 Multiplicative (Std. IARU)", T_TP2, " 2 Additive (RSGB Backpacker, VRZA, Sicily)", T_TP3, " 3 Mult. all bands (CQ WW DX Contest)", T_TP4, " 4 All bands togeth. (ARRL VHF)", T_NEW_CTEST, "Novo concurso", T_CANT_TRUNC, "No posso mutilar o ficheiro de desc", T_NAME_OF_CTEST, "Nome do concurso:", T_CALL_OF_CTEST, "Indicativo no concurso:", T_CLUB_ST, "Estao do clube:", T_YOURWWL, "A sua quadrcula:", T_YOUREXC, "O seu EXC:", T_DATE_OF_CTEST, "Data do concurso:", T_QSOUSED, "QSO NR usado", T_QSOPM, " QSOp multi:", T_WWLUSED, "Quadrcula usada ", T_WWLB, "Bnus da quadrcula:", T_WWLM, "Multi da quadrcula:", T_EXCUSED, "EXC usada", T_EXCB, " Bnus do EXC:", T_EXCM, "Multi do EXC:", T_EXCNAME, "EXC name:", T_PREFM, "PREF multi:", T_DXCB, "DXC bnus:", T_DXCM, "DXC multi:", T_RSTUSED, "RST usado ", T_DEFRS, "RS por defeito:", T_DEFRST, "Def RST:", T_ALSORSTR, "Also for RST-R", T_QP_CALC, " QSOp calc:", T_TO_CALC, "Total calc:", T_EDI_PROP, "EDI prop", T_RESPOP2, "Op responsvel", T_EDIT_QSO_CD, "Editar QSO %c: %03d", T_CALLSIGN2, "Indicativo:", T_CLUB, " Clube:", T_PADR1, " PAdr1:", T_PADR2, " PAdr2:", T_RS, " RS:", T_RST, " RST:", T_OPERATOR, "Operador:", T_DATE, " Data:", T_MODE, " Modo:", T_RSTS, " RSTs:", T_RSTR, " RSTr:", T_QSONRS, "QSO enviado:", T_QSONRR, "QSO recebido:", T_OPTEXCH, " OptExch:", T_WWL, " WWL:", T_REMARK, " Anotao:", T_QRV2, " QRV on:", T_WKD, " WKD:", T_SEND_SKED, "Enviar sked", T_SELECT, "Seleccionado", T_QRG, " QRG:", T_WE_CALL, " Ns chamamos", T_BAND, " Banda:", T_TIME, " Tempo:", T_DUPE_QSO, "QSO duplicado!", T_CLEAR_THIS_QSO, "Limpar este QSO", T_EDIT_OLD_QSO, "Editar QSO antigo", T_MARK_OLD_QSO, "Marcar qso antigo como ERRO", T_STORE_AS_DUPE, "Guardar como DUPE", T_BAD_CALL, "Isto no parece um indicativo", T_N_CALLSIGN, "\nIndicativo:", T_AUTOSAVE_OPTS, "Opes de auto-guardar", T_SAVE_AQ, "Guardar para o disco depois do QSO: ", T_SAVE_AM, "Guardar no disco depois dos minutos:", T_FSYNC, "Fsync", T_SAVE_AQF, "Guardar na disquete depois do QSO: ", T_SAVE_AMF, "Guardar na disquete depois dos minutos:", T_DO_MOUNT, "Montar se no em /etc/mtab (no usado)", T_FLOPPY_PATH, "Caminho para a disquete:", T_MOUNT_CMD, "Comando de montar: ", T_SW_SHELL, "Shell", T_SW_QSOS, "QSOs", T_SW_LOG, "Log", T_SW_TALK, "Falar", T_SW_SKED, "Sked", T_SW_UNFI, "Unfi", T_SW_DXC, "DXC", T_SW_STAT, "Stat", T_SW_MAP, "Mapa", T_SW_SCOPE, "Scope", T_SW_QRV, "QRV", T_SW_HF, "HF", T_SW_PLAYER, "Player", T_SW_CHART, "Chart", T_SHELL, "Shell", T_QSOS, "QSOs", T_LOG, "Log", T_TALK, "Falar", T_SKEDS, "Skeds", T_UNFI, "QSO no concludo QSOs", T_DXC, "DX Cluster (N/A)", T_STAT, "Estatsticas", T_SWAP, "Mudar (N/A)", T_MAP, "Mapa grfico", T_SCOPE, "Scope", T_QRV, "QRV", T_HF, "HF", T_CMD, "Comando", T_RESPAWN, "Respawn [sec]:", T_UNFI_QSO, "QSO no acabado", T_N_REMARK, "\nAnotao:", T_NO_CQ, "Nenhum CQ definido", T_TEXT, "Texto:", T_SPEED, "Velocidade [WPM]:", T_REPEAT, "Repetir", T_DELAY, "Atraso [0.1s]:", T_ALLOW_UNDEF, "Permitir se o mesmo item est indefinido", T_CW_DSCS, "CW%d (%s) %c %s", T_FILENAME, "Ficheiro:", T_SSB_DSCS, "SSB%d (%s) %c %s", T_UDPPORT, "Porta UDP:", T_DEVICE, "Mecanismo de telegrafia:", T_INIT_SPEED, "Velocidade inicial [WPM]:", T_INIT_WEIGHT, "Peso (30-70):", T_WPMFROM, "Alcance WPM de", T_WPMTO, "para", T_USE_SPK, "Usar altifalante", T_LEADIN, " Presena do PTT em [ms]", T_AUTGIVE, "Run mode aut. give after [chars]", T_IGN_IFACE_S, "Ignorar o interface %-5s", T_IGN_ADDR_S, "Ignorar o endereo %s", T_ADD_IFACE_SSD, "Interface adicionado=%-5s BCAST=%s:%d", T_FORCED_ADDR, "Endereo forcado %s", T_TIMESKEW, "AVISO! O tempo de skew %d detectado outra vez %s:%d !\n", T_DISCONNECTING_SD, "A desligar desde %s:%d", T_ACCEPTED_SD, "Aceitado %s:%d", T_CONNECTING_SD, "A ligar a %s:%d", T_CONNECTED_SD, "Ligado a %s:%d", T_DISCONNECTED_SD, "A desligar desde %s:%d", T_LOADED_CFG_SSSS, "A carregar a config para %s %s (%s,%s)", T_LOADED_CW, "C_W data carregada", T_PEER_NOT_FOUND, "ERRO! Peer %s no encontrado", T_CANT_CREATE_HOME_S, "No posso criar a directoria %s", T_CANT_LOAD_CFG, "No posso carregar a configurao!\nO programa no vai trabalhar devidamente!", T_ERR_RC, "Encontrados alguns erros de parsing no ficheiro de config!\nEste ficheiro foi provavelmente guardado no novo Tucnak!\nNo guarde a sua configurao a pois pode perder todos os seus elementos!", T_SES_QTR, " QTR ", T_SES_QRA, " CALL ", T_SES_RST, " RST-S-No RST-R-No ", T_SES_QTH, " QTH ", T_SES_QRB, " Pts/QRB QTF ", T_SES_FLG, " Flg ", T_SES_OPE, " Oper. ", T_SES_EXC, " Exch ", T_SES_REM, " Aviso ", T_SES_WELCOME, "Bem vindo ao Tucnak! ", T_SES_PRESS_F10, "Premir F10 para o menu.", T_SES_HAVE_FUN, "Divirta-se.", T_SES_URL, "http://tucnak.nagano.cz ", T_SES_ODX, "ODX: ", T_SES_ODX_DATA, "%s %s %d km (%s)", T_SES_STAT_TIT, "QSOs QSO-p OptX WWLs DXCCs Total-p AVG", T_SES_AVG, " AVG: %5.2f", T_SES_WPM, " WPM: %d %02d%%", T_SF_WWLS, " WWLs: %d", T_SF_WWLS_UNDER, "-------------", T_SF_EXCS, " EXCs: %d", T_SF_EXCS_UNDER, "-------------", T_SF_MISS_EXCS, " Missing EXCs: %d", T_SF_MISS_EXCS_UNDER, "---------------------", T_SF_PREFS, " PREFs: %d", T_SF_PREFS_UNDER, "-------------", T_SF_DXCS, " DXCCs: %d", T_SF_DXCS_UNDER, "-------------", T_SF_WKD_WWLS, " WKD WWLs: %d", T_SF_WKD_WWLS_UNDER, "-----------------", T_SF_QSO_WWL4, " QSOS em WWL4s: %d", T_SF_QSO_WWL4_UNDER, "----------------------", T_SF_STATS_BAND, " Estatsticas para a banda %s", T_SF_STATS_BAND_UNDER, "===============================", T_SF_CONTEST, "Contest: %s", T_SF_ALLBQSOS, "All bands QSOs: %d", T_SF_ALLBQSOP, "All bands QSOp: %d", T_SF_ALLBPTS, "All bands pts: %d", T_SF_QSOS, "QSOs: %d", T_SF_QSOP, "QSO points: %d", T_SF_PTS, "Points: %d", T_SF_AVG_PTS, "Mdia pts/QSO: %5.2f", T_SF_AVG_QSOP, "Mdia qsop/QSO: %5.2f", T_BAND_RO, "A banda s para ler", T_THIS_BAND, "Esta banda", T_OTHER_BANDS, "Outras bandas", T_CW_DB, "C_W database", T_PROC_EXITED, "*** Processo sado\n", T_WE_CALL2, "ns chamamos", T_WE_LISTEN, "ns escutamos", T_QSL, "QSL prometido", T_RECORD, "Trfego registado", T_MAXMIN, " Max. durao da gravao", T_TEMPLATE, "Template para o ficheiro registado", T_PCM8, "8 bit PCM", T_PCM16, "16 bit PCM", T_ULAW, "u-law", T_ALAW, "A-law", T_IMAADPCM, "IMA ADPCM", T_MSADPCM, "MS ADPCM", T_GSM610, "GSM 6.10", T_CHANNELS, "Canais", T_SAMPLERATE, "Velocidade de exemplo", T_FILLOP, "Preencher operadores", T_HK_FILLOP, "L", T_RECAQRB, "Recalc QRB,QTF", T_HK_RECAQRB, "R", T_NETWORK, "Rede & registar", T_HK_NETWORK, "K", T_IF_IGNORE, "Interfaces ignorados:", T_IP_IGNORE, " Redes ignoradas:", T_IP_ANNOUNCE, " Anunciar para as nets:", T_TRACE_BCAST, "Registar transmisses ", T_TRACE_SOCK, "Registar sockets", T_TRACE_RECV, "Registar data recebida", T_TRACE_SEND, "Registar data enviada", T_TRACE_QSOS, "Registar QSOs", T_TRACE_SDEV, "Trace rotars", T_NOT_MOUNTED_S, "No est montada %s", T_RECSRC_NONE, "No definido", T_RECSRC_MIC, "Microfone", T_RECSRC_LINE, "Line in", T_NEW_CALL, "Novo!", T_HK_NEW_CALL, "n", T_QRV_ON_S, "QRV em %s", T_SKED_QRG, "QRG para skeds", T_HK_SKED_QRG, "F", T_N_SKED_QRG, "\nQRG para skeds:", T_GRAB_BAND, "Gravar controle da banda", T_HK_GRAB_BAND, "G", T_FORCE_RUN, "Forar modo RUN", T_HK_FORCE_RUN, "U", T_EXPORT_STATS, "Exportar estatsticas", T_HK_EXPORT_STATS, "T", T_SF_TOP_DX, " TOP %d DX QSOs:", T_SF_TOP_DX_UNDER, "-------------------", T_ROTAR, "Rotor", T_HK_ROTAR, "R", T_AZIMUTH, " Azimute", T_ELEVATION, "Elevao", T_CH_SPY, "Espiar", T_HK_CH_SPY, "S", T_CH_ENDSPY, "Fim de espiar", T_HK_CH_ENDSPY, "P", T_EXPORT_TITLPAGE, "Exportar a pgina do ttulo", T_HK_EXPORT_TITLPAGE, "P", T_BREAK_RECORD, "Gravao cortada", T_HK_BREAK_RECORD, "B", T_GLOBAL_OPERATOR, "Mudar para todas as bandas", T_GLOBAL_OPERATOR2, "Global", T_MAXFRAG, "Max. nm de fragmentos (>=2)", T_PLAY_LAST, "Repetir ltimo exemplo", T_HK_PLAY_LAST, "P", T_MISCOPTS, "Opes variadas", T_HK_MISCOPTS, "P", T_LOGLINES, "Linhas do registo: ", T_SKEDSHIFT, "Intervalo do contacto (minutos): ", T_STARTBAND, "Banda para comear: ", T_GFX_X_CH, "Resoluo do monitor (cars):", T_GFX_Y_CH, "x", T_GFX_X_PX, "Resoluo do monitor (pixels):", T_GFX_Y_PX, "x", T_CALL_INFO, "Informao do indicativo", T_HK_CALL_INFO, "I", T_SF_QSO_HOUR, "QSOs/hora: %d", T_SF_QSOP_HOUR, "Pontos/hora: %d", T_SF_QSOP_50QSO, "Pontos/50 QSOs: %d", T_SF_HOURS, " Horas", T_SF_HOURS_UNDER, "---------", T_SF_HOURS_TITLE, "Horas Pontos QSOs AVG pts/QSO", T_QSO_CHECK, "QSO check", T_HK_QSO_CHECK, "K", T_AUDIO, "Audio", T_HK_AUDIO, "D", T_ALSA, "Alsa", T_OSS, "OSS", T_SSBD, "O programa de SSB", T_DISKFREE, "O minimo espao de disco disponivel [MiB]", T_FORMAT, "Formato de gravao", T_PCM_PLAY, "Dispositivo de som Alsa", T_PCM_REC, "Dispositivo de captura Alsa", T_PERIOD, "Periodo de tempo [ms]", T_BUFFER, "Tempo de buffer [ms]", T_ALSA_MIXER, "Dispositivo misturador Alsa", T_CAPTURE, "Fonte de captura", T_DSP, "Caminho para o /dev/dsp", T_MIXER, "Caminho para o /dev/mixer", T_RECSRC, "Fonte de leitura", T_SSBD_HOSTNAME, "SSBD hostname:", T_HOSTNAME, "Hostname:", T_SLASHKEY, "Chave slash", T_FIXQRG, "Reparar QRG", T_HK_FIXQRG, "X", T_ENTER_QRG, "Escrever a QRG correcta [Hz]", T_BAD_QRG, "Frequncia errada", T_CALLSIGN3, "Indicativo", T_CALLSIGN_KST, "Indicativo da estao KST:", T_CANT_INIT_WINKEY_S, "No posso iniciar a winkey em %s", T_WINKEYOPTS, "Opes da Winkey", T_WK_WK2, "Inicializao rdida da Winkey2", T_WK_USEPOT, "Use o potnciometro de velocidade", T_WK_USEBUT, "Use os butes", T_WK_KM_B, "Curtis-B", T_WK_KM_A, "Curtis-A", T_WK_KM_U, "Ultimatic", T_WK_KM_G, "Bug", T_WK_SWAP, "Mudana da paddle ( esquerda)", T_RIGOPTS, "Opes do equipamento", T_HK_RIGOPTS, "G", T_RIG_DEVICE, "Device:", T_RIG_MODEL, "Model", T_RIG_SPEED, "Baudrate: ", T_RIG_CIV, "CIV address", T_RIG_FREQSHIFT, "Freq. shift SSB->CW", T_RIG_CHOOSE, "Choose", T_ROTAROPTS, "Rotar options", T_HK_ROTAROPTS, "I", T_DSSAVER, "Desactivar o screensaver", T_DESC, "Description", T_ROT_NONE, "None", T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys", T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI", T_ROT_HAMLIB, "Hamlib (N/A)", T_ROT_REMOTE, "Remote (N/A)", T_ROT_VID, "VID:", T_ROT_PID, "PID:", T_ROT_SERIAL, "Serial #", T_ROT_ADD, "Add new rotator", T_HK_ROT_ADD, "W", T_ROT_REMOVE, "Remove rotator", T_HK_ROT_REMOVE, "R", T_TIMEOUT, "Timeout:", T_BEAMWIDTH, "Beam width", T_SADDR, "Communication address:", T_MODEL, "Model:", T_ROT_REM_ROTSTR, "Rotator letter for remote", T_QSOGLOB, "Global QSO NR", T_PREFGLOB, "Global prefix", T_NOT_RECORDING_S, "Not recording - %s", T_SKEDCOUNT, "Sked count in popup: ", T_FONTHEIGHT, "Font height (16-32): ", T_RIG_POLL_MS, "Rig poll interval [ms]: ", T_RIG_QRG_R2T, "Set band from radio", T_RIG_QRG_T2R, "Change band on radio", T_RIG_MODE_T2R, "Change mode on radio", T_RUN_MODE, "Run mode", T_HK_RUN_MODE, "M", T_SP_MODE, "S&P mode", T_HK_SP_MODE, "M", T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save", T_RIG_DEBUG, "Debug rig", T_HF_RATE, "Rate: %3d/10 %3d/60", T_HF_BAND, "Band QSO Point Mult", T_HF_SUM, "Sum:", T_HF_LAST, "Last Q-%s P-%s", T_EVEN, "TX even", T_HK_EVEN, "v", T_ODD, "TX odd", T_HK_ODD, "d", T_1ST, "TX 1st", T_HK_1ST, "1", T_2ND, "TX 2nd", T_HK_2ND, "2", T_HF_SCORE, "Score:", T_EXPMODE, "Expedition mode", T_TTTYPE, "Only digits mean", tucnak2-2.48/intl/Makefile.am0000644000175000017500000000041211567373657012762 00000000000000datarootdir = @datarootdir@ INTL=castellano.lng czech.lng english.lng french.lng german.lng portuguese.lng slovak.lng EXTRA_DIST = $(INTL) fixlang.pl gen-conly gen-intl index.txt all: ../src/language.inc ../src/language.inc: $(INTL) ./fixlang.pl ./gen-intl tucnak2-2.48/intl/slovak.lng0000644000175000017500000004567511571101552012725 00000000000000T__CHAR_SET, "iso8859-2", T__LANGUAGE, "Slovak", T_ABOUT, "O programe", T_BAD_NUMBER, "Chybn slo", T_BAD_STRING, "Chybn reazec", T_BASIC_HELP, "Stla F10 pre vstup do menu.", T_BLOCK_CURSOR, "Blokov kurzor", T_CANCEL, "Zrui", T_CHARACTER_SET, "Znakov sada", T_COLOR, "Farbiky", T_COPYING, "Koprovanie", T_DIFFERENCE, "rozdiel", T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Urite chce ukonit Tuka?", T_EMPTY_STRING_NOT_ALLOWED, "Przdny reazec nie je povolen", T_ERROR, "Chyba", T_WARNING, "Varovanie", T_EXIT, "Koniec", T_EXIT_TUCNAK, "Ukonenie Tuka", T_FILE, "Sbor", T_FULL_SCREEN, "Cel obrazovka", T_HELP, "Pomoc", T_HK_ABOUT, "O", T_HK_BEOS_TERMINAL, "B", T_HK_CHARACTER_SET, "Z", T_HK_COPYING, "P", T_HK_EXIT, "E", T_HK_FILE, "S", T_HK_FULL_SCREEN, "C", T_HK_HELP, "P", T_HK_LANGUAGE, "J", T_HK_MEMORY_INFO, "M", T_HK_OS_SHELL, "O", T_HK_SCREEN, "S", T_HK_SETUP, "S", T_HK_TERMINAL_OPTIONS, "T", T_HK_TWTERM, "T", T_HK_WINDOW, "O", T_HK_XTERM, "X", T_KOI8R_FRAMES, "Rmeky KOI8-R", T_LANGUAGE, "Jazyk", T_LAST, "posledn", T_LINUX_OR_OS2_FRAMES, "Rmeky typu Linux alebo OS/2", T_MEMORY_INFO, "Informcie o pamti", T_NO_FRAMES, "Bez rmekov", T_NO, "Nie", T_NUMBER_EXPECTED, "Oakvm slo", T_NUMBER_OUT_OF_RANGE, "islo je mimo rozsah", T_OK, "OK", T_OS_SHELL, "Prkazov riadok", T_RESTRICT_FRAMES_IN_CP850_852, "Ohranien rmeky v cp850/852", T_UTF_8_IO, "UTF-8 Vstup/Vstup", T_SCREEN, "Screen", T_SETUP, "Nastavenia", T_TERMINAL_OPTIONS, "Nastavenia terminlu", T_TUCNAK__TACLOG_LIKE, "Tuk " VERSION_STRING "\n\nTACLOGu podobn dennk pre VKV/mikrovlnn preteky", T_TWTERM, "Twterm", T_USE_11M, "Pouva ^[[11m", T_VT_100_FRAMES, "Rmeky VT 100", T_WELCOME_TO_TUCNAK, "Vta a Tuk!", T_WELCOME, "Vitaj", T_XTERM, "Xterm", T_YES, "no", T_CANT_APPEND_S, "Nemono prida na koniec sboru %s", T_CANT_WRITE, "Nemono zapsa do sboru", T_CANT_WRITE_S, "Nemono zapsa do sboru %s", T_CANT_READ, "Nemono preta sbor", T_CANT_READ_S, "Nemono preta sbor %s", T_SAVED_S, "Uloen %s", T__CW_, " CW ", T_CWW_KEYS, " PgUp +, PgDn - rchlos CW ", T_CANT_OPEN_S, "Nemono otvori %s", T_CANT_LOCK, "Nemono zamkn sbor", T_CANT_LOCK_S, "Nemono zamkn sbor %s", T_LOADING_CTEST_S, "*** Natan pretek %s", T_NO_FILES, "Neexistuj iadn sbory", T_BAND_EXIST_SS, "POZOR! Psmo %s (%s) u existuje", T_BAND_NOT_OPEN, "Psmo nie je v tomto preteku aktvne", T_NO_BANDS, "Neexistuj iadn psma", T_CANT_SET_GR_S, "Nemono nastavi grafick md-%s", T_GCALL, "Znacka: %s", T_GWWL, "Stvorec: %s", T_GQRB, "Vzdial.: %d km", T_GQTF, "Uhol: %d", T_GSEN, "Odoslane: %s %s", T_GRCV, "Prijate: %s %s", T_GTIM, "Cas: %s", T_GOPE, "Operator: %s", T_GREM, "Pozn: %s", T_GWKD, "Wkd: %d", T_GINC, "Zisk azim:%d", T_GLON, "Dlz: %7.2f %-6s", T_GLAT, "Sir: %7.2f %-6s", T_GLOC, "Lok: %s", T__PLESE_WAIT_, " Prosim o chvilu strpenia ", T__RO_BAND, " PSMO LEN PRE TANIE", T_COPYING_VER, "The ultimate contestlog - necessary as known\n\nVerzia " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nTento program je slobodn softvr; me ho it a/alebo pozmeova poda ustanoven Obecnej verejnej licencie GNU, vydanej Free Software Foundation; a to verzie 2 a vyej tejto licencie.", T_CTEST_ACTIVE, "U existuje aktvny pretek ", T_NO_CTESTS, "iadn preteky", T_NO_CCLOSE, "Nie je o zavrie", T_REALLY, "Urite?", T_CLOSE_CTEST, "Naozaj chce zavrie tento pretek?", T_GUI_LD, "Uv. prostredie: %ld ", T_SBRK, "sbrk: %ld", T_CWI, "C_W: %d cw poloiek, %d wc poloiek, posledn %d\n", T_EXC, "Exc: %s %d exc poloek, %d exc poloek, posledn %d\n", T_VEXC, "Kontrolovan EXC: %d poloek\n", T_DWI, "D_W: %d prefixov, %d zem DXCC, %d tvorcov\n", T_NAMES, "Names: %d mien\n", T_MASTER, "Master: %d calls\n", T_MEMS, "Pam:", T_NMY, " Ja: %s:%d\n", T_NGLOBAL, "Hl.f: %s:%d\n", T_NMASTER, " f: %s %s %s:%d %s %s\n", T_NSLAVES, "\nPodriaden:\n", T_NINFO, "Sieov informcie", T_NO_BANDS_QRV, "iadn aktvne psma", T_NO_BANDS_CONF, "iadn psma", T_NOT_AVAILABLE, "Nedostupn", T_ADD_SUBWIN, "Prida okno", T_HK_ADD_SUBWIN, "P", T_CLOSE_SUBWIN, "Zavrie okno", T_HK_CLOSE_SUBWIN, "Z", T_HK_NINFO, "S", T_NEW, "Nov", T_HK_NEW, "N", T_NEW_WIZZ, "Sprievodca novm pretekom", T_HK_NEW_WIZZ, "P", T_NEW_NET, "Nov ze st", T_HK_NEW_NET, "S", T_OPEN, "Otvori", T_HK_OPEN, "O", T_SAVE, "Uloi", T_HK_SAVE, "U", T_EXPORT_EDI, "Exportova do EDI", T_HK_EXPORT_EDI, "E", T_EXPORT_REPORT, "Exportova do reportu (VKVPA)", T_HK_EXPORT_REPORT, "R", T_EXPORT_ADIF, "Exportova do ADIFu", T_HK_EXPORT_ADIF, "A", T_EXPORT_CBR, "Export as ADIF", T_HK_EXPORT_CBR, "B", T_EXPORT_HTML, "Exportova do HTML", T_HK_EXPORT_HTML, "H", T_EXPORT_WIKI, "Export as MediaWiki", T_HK_EXPORT_WIKI, "W", T_IMPORT_EDI, "Importova EDI", T_HK_IMPORT_EDI, "I", T_IMPORT_ADIF, "Importovat ADIF", T_HK_IMPORT_ADIF, "M", T_IMPORT_SWAP, "Importovat swap", T_HK_IMPORT_SWAP, "S", T_IMPORT_LIST, "Import list", T_HK_IMPORT_LIST, "L", T_CONTEST_OP, "Voby poas preteku", T_HK_CONTEST_OP, "O", T_CLOSE_CONTEST, "Zavrie pretek", T_HK_CLOSE_CONTEST, "Z", T_ADD_ERROR, "Prida chybn spojenie", T_HK_ADD_ERROR, "E", T_CHOP, "Zmena opertora", T_HK_CHOP, "O", T_CW_CTEST, "Aktualizova C_W z preteku", T_HK_CW_CTEST, "C", T_CW_BAND, "Aktualizova C_W z psma", T_HK_CW_BAND, "B", T_EXC_CTEST, "Aktualizovat EXC ze zvodu", T_HK_EXC_CTEST, "P", T_EXC_BAND, "Aktualizovat EXC z psma", T_HK_EXC_BAND, "D", T_IMPORT_EBW, "Importova DL8EBW db.", T_HK_IMPORT_EBW, "W", T_NO_CTEST, "iadn pretek", T_NO_PEERS, "al Tuci nenjden", T_NO_MASTER, "f je nedostupn!", T_CTEST_DEF, "Nastavenie preteku", T_HK_CTEST_DEF, "R", T_BAND_DEF, "Nastavenie psiem", T_HK_BAND_DEF, "P", T_HK_RESPOP, "O", T_CW_DAEMON, "Klovn CW", T_HK_CW_DAEMON, "M", T_CW_CQ, "CW vzvy", T_HK_CW_CQ, "C", T_SSB_CQ, "SSB vzvy", T_HK_SSB_CQ, "S", T_AUTOSAVE, "Automatick ukladanie", T_HK_AUTOSAVE, "A", T_LOAD_CFG_NET, "Nata nastavenie zo siete", T_HK_LOAD_CFG_NET, "N", T_LOAD_CW_NET, "Nata C_W zo siete", T_HK_LOAD_CW_NET, "W", T_SAVE_CFG, "Uloi nastavenia", T_HK_SAVE_CFG, "U", T_CONTEST, "Pretek", T_HK_CONTEST, "R", T_EDIT, "Edit", T_HK_EDIT, "E", T_BANDS, "Psma", T_HK_BANDS, "P", T_SUBWINS, "Okn", T_HK_SUBWINS, "O", T_BAND_SETTINGS_SC, "Nastavenie pre psmo %c %s", T_QRV_ON_THIS_BAND, "QRV na tomto psme", T_QRV_IN_THIS_CTEST, "QRV v tomto preteku", T_READ_ONLY, "Len na tanie", T_MULTI, "Multi", T_SINGLE, "Single", T_CHECK, "Check", T_TXEQUIP, " Vys. zariadenie:", T_POWER, " Vkon:", T_RXEQUIP, " Prm. zariad.:", T_ANTENNA, " Antna:", T_AGLASL, " vka zem;more:", T_OPS, " Opertori:", T_SPACES1, " ", T_REMARKS, " Poznmky:", T_OK_SECTION_SINGLE, "Kategorie Single v OK", T_OK_SECTION_MULTI, "Kategorie Multi v OK", T_QRG_MIN, "Hranice psma od", T_QRG_MAX, "do [kHz]", T_ADIFBAND, "Nzev psma pro ADIF", T_SKEDQRG, "Frek. pro skedy (lib. formt)", T_BAND_LO, "LO transvertoru [Hz]", T_BANDSW, "Hodnota prepinace pasem", T_RESPOP, "Zodpovedn opertor", T_NAME, "Meno Priezv:", T_CALLSIGN, " Znaka:", T_ADDRESS, " Adresa:", T_POSTCODE, " PS:", T_CITY, " Mesto:", T_COUNTRY, " Zem:", T_PHONE, " Telefn:", T_BBSEMAIL, " BBS/E-mail:", T_QP0, " --ni -- ", T_QP1, " 1 QSOp*QSOp_m (Stand. IARU)", T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)", T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)", T_QP4, " 4 WWL_ring*QSOp_m (OK VKVPA)", T_QP5, " 5 St_miles*QSOp_m", T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)", T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)", T_QP8, " 8 WWL_dist*QSOp_m (Baltsk preteky)", T_QP9, " 9 WWL_dist*QSOp_m (Baltsk & seversk poln de)", T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)", T_QP11, "11 QSOp_m *3 if F (F 50MHz)", T_QP12, "12 RSGB DC (distrikty)", T_QP13, "13 kontinent (CQ WW DX Contest)", T_QP14, "14 kontinent+psmo (CQ WW WPX Contest)", T_QP15, "15 VHF Band (ARRL VHF, CQ VHF)", T_QP16, "16 QSOp *4 if F (Champ. de France)", T_TP0, " --none -- ", T_TP1, " 1 Nsoben (Std. IARU)", T_TP2, " 2 Stan (RSGB Backpacker, VRZA, Sicily)", T_TP3, " 3 Mult. all bands (CQ WW DX Contest)", T_TP4, " 4 All bands togeth. (ARRL VHF)", T_NEW_CTEST, "Nov pretek", T_CANT_TRUNC, "Nemono skrti sbor s popisom preteku", T_NAME_OF_CTEST, " Nzov preteku: ", T_CALL_OF_CTEST, "Znaka v preteku: ", T_CLUB_ST, "Klub. znaka:", T_YOURWWL, "Tvoj WWL:", T_YOUREXC, "Tvoj EXC:", T_DATE_OF_CTEST, "Dtum preteku:", T_QSOUSED, "QSO NR pouit", T_QSOPM, " QSOp ns.:", T_WWLUSED, "WWL pouit", T_WWLB, "WWL bonus:", T_WWLM, " WWL ns.: ", T_EXCUSED, "EXC pouit", T_EXCB, " EXC bonus:", T_EXCM, " EXC ns.: ", T_EXCNAME, "EXC jmno:", T_PREFM, "PREF nsob:", T_DXCB, " DXC bonus:", T_DXCM, " DXC ns.: ", T_RSTUSED, "RST pouit", T_DEFRS, " Ben RS: ", T_DEFRST, "Ben RST:", T_ALSORSTR, "Tak pro RST-R", T_QP_CALC, " Vpoet QSOp:", T_TO_CALC, "Vpoet celku:", T_EDI_PROP, "EDI poloky", T_RESPOP2, "Zodpovedn opertor", T_EDIT_QSO_CD, "Editcia spojen %c: %03d", T_CALLSIGN2, " Znaka:", T_CLUB, " Klub:", T_PADR1, " PAdr1:", T_PADR2, " PAdr2:", T_RS, " RS:", T_RST, " RST:", T_OPERATOR, "Opertor:", T_DATE, " Dtum:", T_MODE, " Md:", T_RSTS, "Odos.RST:", T_RSTR, "Prij.RST:", T_QSONRS, "Odos.s:", T_QSONRR, "Prij.s:", T_OPTEXCH, " OptExch:", T_WWL, " tvorec:", T_REMARK, "Poznmka:", T_QRV2, " QRV on:", T_WKD, " WKD:", T_SEND_SKED, "Posla sked", T_SELECT, "Vber ", T_QRG, "Frekvencia:", T_WE_CALL, "J volm", T_BAND, " Psmo:", T_TIME, " as:", T_DUPE_QSO, "Duplicitn QSO!", T_CLEAR_THIS_QSO, "Zmaza toto QSO", T_EDIT_OLD_QSO, "Editova star QSO", T_MARK_OLD_QSO, "Oznait star QSO ako ERROR", T_STORE_AS_DUPE, "Uloit toto ako DUPE", T_BAD_CALL, "Toto nevyzer ako znaka", T_N_CALLSIGN, "\nZnaka:", T_AUTOSAVE_OPTS, "Automatick ukladanie", T_SAVE_AQ, "Uloi na disk po pote spojen: ", T_SAVE_AM, "Uloi na disk po pote mint: ", T_FSYNC, "Synchronizova cache s diskom", T_SAVE_AQF, "Uloi na disketu po pote spojen: ", T_SAVE_AMF, "Uloi na disketu po pote mint: ", T_DO_MOUNT, "Pripoji disketu pokia nie je v /etc/mtab (N/A)", T_FLOPPY_PATH, "Cesta k diskete:", T_MOUNT_CMD, "Prkaz pre pripojenie (N/A): ", T_SW_SHELL, "Prk", T_SW_QSOS, "Spoj", T_SW_LOG, "Log", T_SW_TALK, "Kec", T_SW_SKED, "Sked", T_SW_UNFI, "Nedok", T_SW_DXC, "Clust", T_SW_STAT, "Stat", T_SW_MAP, "Mapa", T_SW_SCOPE, "Osc", T_SW_QRV, "QRV", T_SW_HF, "HF", T_SW_PLAYER, "Player", T_SW_CHART, "Chart", T_SHELL, "Prkazov riadok", T_QSOS, "QSOs", T_LOG, "Log", T_TALK, "Kec (rozhovor)", T_SKEDS, "Skedy (dohovoren spojenia)", T_UNFI, "Nedokonen spojenia", T_DXC, "DX Cluster (N/A)", T_STAT, "tatistiky", T_SWAP, "Swap (N/A)", T_MAP, "Graphick mapa", T_SCOPE, "Osciloskop", T_QRV, "QRV", T_HF, "HF", T_CMD, "Prkaz", T_RESPAWN, "Znovuspustenie [sek]:", T_UNFI_QSO, "Nedokonen spojenie", T_N_REMARK, "\nPoznmka:", T_NO_CQ, "Neexistuj iadn vzvy", T_TEXT, "Text:", T_SPEED, "Rchlos [WPM]:", T_REPEAT, "Opakovanie", T_DELAY, "akanie [0.1s]:", T_ALLOW_UNDEF, "Povoli aj ke je niektor poloka neznma", T_CW_DSCS, "CW%d (%s) %c %s", T_FILENAME, "Sbor:", T_SSB_DSCS, "SSB%d (%s) %c %s", T_UDPPORT, " UDP port:", T_DEVICE, "Kovacie zariadenie:", T_INIT_SPEED, "Poiaton rchlos [WPM]:", T_INIT_WEIGHT, "Vha (30-70)", T_WPMFROM, "Rychlost WPM od", T_WPMTO, "do", T_USE_SPK, "Poui speaker (reprk)", T_LEADIN, " Pedstih PTT [ms]", T_AUTGIVE, "Run mode aut. give after [chars]", T_IGN_IFACE_S, "Ignorujem sieov rozhranie %-5s", T_IGN_ADDR_S, "Ignorujem adresu %s", T_ADD_IFACE_SSD, "Pridan rozhranie=%-5s vesmer=%s:%d", T_FORCED_ADDR, "Adresa naviac %s", T_TIMESKEW, "POZOR! Detegovan prli vek rozdiel asu %d oproti %s:%d !\n", T_DISCONNECTING_SD, "Odpjam od %s:%d", T_ACCEPTED_SD, "Akceptovan spojenie od %s:%d", T_CONNECTING_SD, "Pripjam k %s:%d", T_CONNECTED_SD, "Pripojen k %s:%d", T_DISCONNECTED_SD, "Odpojen od %s:%d", T_LOADED_CFG_SSSS, "Natan nastavenie pre %s %s (%s,%s)", T_LOADED_CW, "Natan C_W databza", T_PEER_NOT_FOUND, "CHYBA! Tuk %s nenjden", T_CANT_CREATE_HOME_S, "Nemono vytvori adresr %s", T_CANT_LOAD_CFG, "Nemono nata konfigurciu!\nProgram neme pracova sprvne!", T_ERR_RC, "Dolo k chybe pri tan konfigurku!\nSbor bol pravdepodobne uloen novm Tukom !\nRadej neukladaj konfigurciu inak prde o dta v konfigurku!", T_SES_QTR, " as ", T_SES_QRA, " Znaka ", T_SES_RST, " RST-O- RST-P- ", T_SES_QTH, " tvorec ", T_SES_QRB, "Body/vzd Uhol", T_SES_FLG, " Przn", T_SES_OPE, " Oper ", T_SES_EXC, " Exch ", T_SES_REM, " Poznmka ", T_SES_WELCOME, "Vta a Tuk! ", T_SES_PRESS_F10, "Sta F10 pre vstup do menu. ", T_SES_HAVE_FUN, "Uvaj si :-)", T_SES_URL, "http://tucnak.nagano.cz ", T_SES_ODX, "ODX: ", T_SES_ODX_DATA, "%s %s %d km (%s)", T_SES_STAT_TIT, "Spoj Spoj-b OptX Locs Zeme Celkom-b AVG", T_SES_AVG, "Priem: %5.2f", T_SES_WPM, " QRQ: %d %02d%%", T_SF_WWLS, " tvorce: %d", T_SF_WWLS_UNDER, "----------------", T_SF_EXCS, " EXC poloky: %d", T_SF_EXCS_UNDER, "--------------------", T_SF_MISS_EXCS, " Missing EXCs: %d", T_SF_MISS_EXCS_UNDER, "---------------------", T_SF_PREFS, " PREFs: %d", T_SF_PREFS_UNDER, "-------------", T_SF_DXCS, " Zeme: %d", T_SF_DXCS_UNDER, "-------------", T_SF_WKD_WWLS, " Roben tvorce: %d", T_SF_WKD_WWLS_UNDER, "----------------------", T_SF_QSO_WWL4, " Spojenia do vekch tvorcov: %d", T_SF_QSO_WWL4_UNDER, "-----------------------------------", T_SF_STATS_BAND, " tatistiky pre psmo %s", T_SF_STATS_BAND_UNDER, "===============================", T_SF_CONTEST, "Contest: %s", T_SF_ALLBQSOS, "All bands QSOs: %d", T_SF_ALLBQSOP, "All bands QSOp: %d", T_SF_ALLBPTS, "All bands pts: %d", T_SF_QSOS, "QSOs: %d", T_SF_QSOP, "QSO points: %d", T_SF_PTS, "Points: %d", T_SF_AVG_PTS, "Priemer bodov/spojenia: %5.2f", T_SF_AVG_QSOP, "Priemer bodov za spojenie/spojenia: %5.2f", T_BAND_RO, "Psmo je len na tanie", T_THIS_BAND, "Toto psmo", T_OTHER_BANDS, "Ostatn psma", T_CW_DB, "C_W databza", T_PROC_EXITED, "*** Proces skonil\n", T_WE_CALL2, "my volme", T_WE_LISTEN, "my povame", T_QSL, "Sben QSL", T_RECORD, "Nahrvanie prevdzky", T_MAXMIN, " Max. doba nahrvn", T_TEMPLATE, "ablona pre nahrvan sbor", T_PCM8, "8 bitov PCM", T_PCM16, "16 bitov PCM", T_ULAW, "u-law", T_ALAW, "A-law", T_IMAADPCM, "IMA ADPCM", T_MSADPCM, "MS ADPCM", T_GSM610, "GSM 6.10", T_CHANNELS, "Poet kanlov", T_SAMPLERATE, " Vzorkovacia frekvencia", T_FILLOP, "Vypl znaky opertorov", T_HK_FILLOP, "V", T_RECAQRB, "Prepotaj QRB,QTF", T_HK_RECAQRB, "R", T_NETWORK, "Sie a trasovanie", T_HK_NETWORK, "E", T_IF_IGNORE, " Ignorova zariadenia:", T_IP_IGNORE, " Ignorova podsiete:", T_IP_ANNOUNCE, " Annoncova do siet:", T_TRACE_BCAST, "Trasova broadcasty ", T_TRACE_SOCK, "Trasova sockety", T_TRACE_RECV, "Trasova prijat dta", T_TRACE_SEND, "Trasova odoslan dta", T_TRACE_QSOS, "Trasova spojenia", T_TRACE_SDEV, "Trace rotars", T_NOT_MOUNTED_S, "Zvzok nepripojen %s", T_RECSRC_NONE, "Nenastavova", T_RECSRC_MIC, "Mikrofn", T_RECSRC_LINE, "Linkov vstup", T_NEW_CALL, "Nov!", T_HK_NEW_CALL, "n", T_QRV_ON_S, "QRV na %s", T_SKED_QRG, "QRG pre skedy", T_HK_SKED_QRG, "G", T_N_SKED_QRG, "\nQRG pre skedy:", T_GRAB_BAND, "Prevzia psmo", T_HK_GRAB_BAND, "P", T_FORCE_RUN, "RUN md nsiln", T_HK_FORCE_RUN, "R", T_EXPORT_STATS, "Exportova statistiky", T_HK_EXPORT_STATS, "T", T_SF_TOP_DX, " TOP %d DX spojenie:", T_SF_TOP_DX_UNDER, "----------------------", T_ROTAR, "Rotator", T_HK_ROTAR, "R", T_AZIMUTH, " Azimut", T_ELEVATION, "Elevace", T_CH_SPY, "pehovn", T_HK_CH_SPY, "P", T_CH_ENDSPY, "Konec pehovn", T_HK_CH_ENDSPY, "K", T_EXPORT_TITLPAGE, "Exportovat tituln strnku", T_HK_EXPORT_TITLPAGE, "L", T_BREAK_RECORD, "Peruit nahrvn", T_HK_BREAK_RECORD, "P", T_GLOBAL_OPERATOR, "Zmnit na vech psmech", T_GLOBAL_OPERATOR2, "Globln", T_MAXFRAG, "Max. poet fragment (>=2)", T_PLAY_LAST, "Play last sample", T_HK_PLAY_LAST, "P", T_MISCOPTS, "Rzn nastaven", T_HK_MISCOPTS, "R", T_LOGLINES, "dky logu: ", T_SKEDSHIFT, "Posuv skedu (minuty): ", T_STARTBAND, "Psmo po startu: ", T_GFX_X_CH, "Rozlien (znaky):", T_GFX_Y_CH, "x", T_GFX_X_PX, "Rozlien (body):", T_GFX_Y_PX, "x", T_CALL_INFO, "Informace o znace", T_HK_CALL_INFO, "I", T_SF_QSO_HOUR, "QSO/hod: %d", T_SF_QSOP_HOUR, "Body/hod: %d", T_SF_QSOP_50QSO, "Body/posl. 50 QSO: %d", T_SF_HOURS, " Hodiny", T_SF_HOURS_UNDER, "----------", T_SF_HOURS_TITLE, "Hodiny Body Spojen prmr box/QSO", T_QSO_CHECK, "Kontrola spojen", T_HK_QSO_CHECK, "K", T_AUDIO, "Audio", T_HK_AUDIO, "D", T_ALSA, "Alsa", T_OSS, "OSS", T_SSBD, "SSB dmon", T_DISKFREE, "Minimln msto na disku [MiB]", T_FORMAT, "Formt nahrvn", T_PCM_PLAY, "Alsa pehrvn", T_PCM_REC, "Alsa zznam", T_PERIOD, "Period time [ms]", T_BUFFER, "Buffer time [ms]", T_ALSA_MIXER, "Alsa mixer", T_CAPTURE, "Zdroj zznamu", T_DSP, "Cesta k /dev/dsp", T_MIXER, "Cesta k /dev/mixer", T_RECSRC, "Record source", T_SSBD_HOSTNAME, "SSBD stroj:", T_HOSTNAME, "Stroj:", T_SLASHKEY, "Klvesa pro lomtko", T_FIXQRG, "Opravit QRG", T_HK_FIXQRG, "v", T_ENTER_QRG, "Zadej pesnou frekvenci QRG [Hz]", T_BAD_QRG, "Chybn zadan frekvence", T_CALLSIGN3, "Znaka", T_CALLSIGN_KST, "Znaka stanice na KST:", T_CANT_INIT_WINKEY_S, "Nelze inicializovat winkey na %s", T_WINKEYOPTS, "Nastaven Winkey", T_WK_WK2, "Rychl inicializace Winkey2", T_WK_USEPOT, "Pout potenciometr", T_WK_USEBUT, "Pout tlatka", T_WK_KM_B, "Curtis-B", T_WK_KM_A, "Curtis-A", T_WK_KM_U, "Ultimatic", T_WK_KM_G, "Run kl", T_WK_SWAP, "Prohodit pastiku (levk)", T_RIGOPTS, "Rdio", T_HK_RIGOPTS, "R", T_RIG_DEVICE, "Device:", T_RIG_MODEL, "Model", T_RIG_SPEED, "Baudrate: ", T_RIG_CIV, "CIV address", T_RIG_FREQSHIFT, "Freq. shift SSB->CW", T_RIG_CHOOSE, "Choose", T_ROTAROPTS, "Rottory", T_HK_ROTAROPTS, "I", T_DSSAVER, "Vypnout spoi obrazovky", T_DESC, "Popis", T_ROT_NONE, "None", T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys", T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI", T_ROT_HAMLIB, "Hamlib (N/A)", T_ROT_REMOTE, "Remote (N/A)", T_ROT_VID, "VID:", T_ROT_PID, "PID:", T_ROT_SERIAL, "Serial #", T_ROT_ADD, "Add new rotator", T_HK_ROT_ADD, "W", T_ROT_REMOVE, "Remove rotator", T_HK_ROT_REMOVE, "R", T_TIMEOUT, "Timeout:", T_BEAMWIDTH, "ka laloku", T_SADDR, "Communication address:", T_MODEL, "Model:", T_ROT_REM_ROTSTR, "Rotator letter for remote", T_QSOGLOB, "Global QSO NR", T_PREFGLOB, "Global prefix", T_NOT_RECORDING_S, "Not recording - %s", T_SKEDCOUNT, "Poet sked v popup okn: ", T_FONTHEIGHT, "Vka fontu (16-32): ", T_RIG_POLL_MS, "Rig poll interval [ms]: ", T_RIG_QRG_R2T, "Set band from radio", T_RIG_QRG_T2R, "Change band on radio", T_RIG_MODE_T2R, "Change mode on radio", T_RUN_MODE, "Run mode", T_HK_RUN_MODE, "M", T_SP_MODE, "S&P mode", T_HK_SP_MODE, "M", T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save", T_RIG_DEBUG, "Debug rig", T_HF_RATE, "Rate: %3d/10 %3d/60", T_HF_BAND, "Band QSO Point Mult", T_HF_SUM, "Sum:", T_HF_LAST, "Last Q-%s P-%s", T_EVEN, "TX even", T_HK_EVEN, "v", T_ODD, "TX odd", T_HK_ODD, "d", T_1ST, "TX 1st", T_HK_1ST, "1", T_2ND, "TX 2nd", T_HK_2ND, "2", T_HF_SCORE, "Score:", T_EXPMODE, "Expedition mode", T_TTTYPE, "Only digits mean", tucnak2-2.48/intl/gen-intl0000755000175000017500000000215111567373657012373 00000000000000#!/bin/sh export LC_CTYPE="ISO-8859-2" echo echo Generating language table. languages=`cat index.txt` if [ -n "$languages" ]; then ( n=0 echo '/* Automatoticaly generated by gen-intl */' for i in $languages; do echo -n $i" " 1>&2 echo echo 'struct translation translation_'$i' [] = {' echo ' {0, NULL},' cat $i.lng | sed 's/^\(.*\),/ \{\1\},/' echo ' {0, NULL}' echo '};' n=`expr $n + 1` done echo echo 'struct translation_desc translations [] = {' for i in $languages; do echo ' {translation_'$i'},' done echo ' {NULL}' echo '};' echo ( echo '/* Automatoticaly generated by gen-intl */' echo echo '#define N_LANGUAGES '$n echo cat english.lng | grep '^T_' | (cat; echo T__N_TEXTS) | sed 's/,.*//' | cat -n | sed 's/^\([^T]*\)\(.*\)$/#define \2 \1/' ) | sed 's/ //g' > language.h ) | sed 's/ //g' > ../src/language.inc echo if [ -f ../src/language.h ]; then cmp -s language.h ../src/language.h if [ $? = 0 ]; then echo Same header else echo New header mv language.h ../src fi else mv language.h ../src fi rm -f ../src/language.o language.h echo Done. fi echo tucnak2-2.48/intl/Makefile.in0000644000175000017500000002200211737315444012757 00000000000000# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = intl DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ HAMLIB_CFLAGS = @HAMLIB_CFLAGS@ HAMLIB_LIBS = @HAMLIB_LIBS@ HAVE_MAKE = @HAVE_MAKE@ HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ HAVE_RPM = @HAVE_RPM@ HAVE_RPM_PACKAGING = @HAVE_RPM_PACKAGING@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBFTDI_CFLAGS = @LIBFTDI_CFLAGS@ LIBFTDI_LIBS = @LIBFTDI_LIBS@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RPM_RELEASE = @RPM_RELEASE@ RPM_SOURCESDIR = @RPM_SOURCESDIR@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ TUCNAK_LDADD = @TUCNAK_LDADD@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ INTL = castellano.lng czech.lng english.lng french.lng german.lng portuguese.lng slovak.lng EXTRA_DIST = $(INTL) fixlang.pl gen-conly gen-intl index.txt all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu intl/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu intl/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am all: ../src/language.inc ../src/language.inc: $(INTL) ./fixlang.pl ./gen-intl # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tucnak2-2.48/intl/fixlang.pl0000755000175000017500000000414111567373657012721 00000000000000#!/usr/bin/perl -w use Data::Dumper; open (FD, "english.lng") or die; while($s=){ chomp($s); die if ($s!~/^([0-9A-Z_]+),.*?(".*")/); $english{$1}=$2; push @keys,$1; } close(FD); fix("czech", \%english); if (@ARGV>0){ print "exiting...\n"; exit(0); } open (FD, "czech.lng") or die; while($s=){ chomp($s); die if ($s!~/^([0-9A-Z_]+),.*?(".*")/); $czech{$1}=$2; } close(FD); fix("slovak", \%czech); fix("german", \%english); fix("portuguese", \%english); fix("french", \%english); fix("castellano", \%english); parsesources(); sub fix { my ($name, $parent)=@_; my ($key, $value); my (%lng); print "Fixing $name\n"; open (FD, "$name.lng") or die; while($s=){ chomp($s); die if ($s!~/^([0-9A-Z_]+),.*?(".*")/); $lng{$1}=$2; } close(FD); open (FD, ">$name.lng") or die; foreach $key (@keys){ if (defined($lng{$key})){ $value=$lng{$key}; }else{ print "undefined key '$key'\n" if (!defined($$parent{$key})); $value=$$parent{$key}; } print FD "$key, $value,\n"; } close(FD); } sub parsesources{ my ($f, $file, $s, $reg, $key, $unused,$contents); my (%used); opendir(DD, "../src") or die; foreach $f (readdir(DD)){ $file="../src/$f"; next if (! -f $file); next if ($file!~/\.c$/ && $file!~/\.h$/); next if ($file=~/language\.h$/); next if ($file=~/\/del_/); # print Dumper($file); open(FD, $file) or die; $contents=""; while ($s=){ $contents.=$s; } foreach $key (@keys){ $reg="$key"; if ($contents=~/$reg/m){ $used{$key}=1; } } close(FD); } closedir(DD); $unused=""; foreach $key (@keys){ next if ($key=~/^T__/); next if (defined($used{$key})); if (length($unused)>0) { $unused.=", "; } $unused.=$key; } if (length($unused)>0) { print "Unused keys: $unused\n"; } } tucnak2-2.48/intl/gen-conly0000755000175000017500000000114011567373657012546 00000000000000#!/bin/sh echo echo Generating language table. languages=`cat index.txt` if [ -n "$languages" ]; then ( n=0 echo '/* Automatoticaly generated by gen-intl */' for i in $languages; do echo -n $i" " 1>&2 echo echo 'struct translation translation_'$i' [] = {' echo ' {0, NULL},' cat $i.lng | sed 's/^\(.*\),/ \{\1\},/' echo ' {0, NULL}' echo '};' n=`expr $n + 1` done echo echo 'struct translation_desc translations [] = {' for i in $languages; do echo ' {translation_'$i'},' done echo ' {NULL}' echo '};' echo ) | sed 's/ //g' > ../src/language.inc rm -f ../src/language.o echo echo Done. fi echo tucnak2-2.48/INSTALL0000644000175000017500000001722711567373661011020 00000000000000Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.in' is used to create `configure' by a program called `autoconf'. You only need `configure.in' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. You can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure Or on systems that have the `env' program, you can do it like this: env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not supports the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' can not figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints a message saying it can not guess the host type, give it the `--host=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name with three fields: CPU-COMPANY-SYSTEM See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are building compiler tools for cross-compiling, you can also use the `--target=TYPE' option to select the type of system they will produce code for and the `--build=TYPE' option to select the type of system on which you are compiling the package. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Operation Controls ================== `configure' recognizes the following options to control how it operates. `--cache-file=FILE' Use and save the results of the tests in FILE instead of `./config.cache'. Set FILE to `/dev/null' to disable caching, for debugging `configure'. `--help' Print a summary of the options to `configure', and exit. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--version' Print the version of Autoconf used to generate the `configure' script, and exit. `configure' also accepts some other, not widely useful, options. tucnak2-2.48/src/0000777000175000017500000000000011737317225010622 500000000000000tucnak2-2.48/src/regex_.h0000644000175000017500000005155111567373656012202 00000000000000/* Definitions for data structures and routines for the regular expression library. Copyright (C) 1985,1989-93,1995-98,2000,2001,2002,2003,2005,2006 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ #if defined(_MSC_VER) || defined(__MINGW32__) #ifndef _REGEX_H #define _REGEX_H 1 #include #include /* Allow the use in C++ code. */ #ifdef __cplusplus extern "C" { #endif /* The following two types have to be signed and unsigned integer type wide enough to hold a value of a pointer. For most ANSI compilers ptrdiff_t and size_t should be likely OK. Still size of these two types is 2 for Microsoft C. Ugh... */ typedef long int s_reg_t; typedef unsigned long int active_reg_t; /* The following bits are used to determine the regexp syntax we recognize. The set/not-set meanings are chosen so that Emacs syntax remains the value 0. The bits are given in alphabetical order, and the definitions shifted by one from the previous bit; thus, when we add or remove a bit, only one other definition need change. */ typedef unsigned long int reg_syntax_t; /* If this bit is not set, then \ inside a bracket expression is literal. If set, then such a \ quotes the following character. */ #define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1) /* If this bit is not set, then + and ? are operators, and \+ and \? are literals. If set, then \+ and \? are operators and + and ? are literals. */ #define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1) /* If this bit is set, then character classes are supported. They are: [:alpha:], [:upper:], [:lower:], [:digit:], [:alnum:], [:xdigit:], [:space:], [:print:], [:punct:], [:graph:], and [:cntrl:]. If not set, then character classes are not supported. */ #define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1) /* If this bit is set, then ^ and $ are always anchors (outside bracket expressions, of course). If this bit is not set, then it depends: ^ is an anchor if it is at the beginning of a regular expression or after an open-group or an alternation operator; $ is an anchor if it is at the end of a regular expression, or before a close-group or an alternation operator. This bit could be (re)combined with RE_CONTEXT_INDEP_OPS, because POSIX draft 11.2 says that * etc. in leading positions is undefined. We already implemented a previous draft which made those constructs invalid, though, so we haven't changed the code back. */ #define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1) /* If this bit is set, then special characters are always special regardless of where they are in the pattern. If this bit is not set, then special characters are special only in some contexts; otherwise they are ordinary. Specifically, * + ? and intervals are only special when not after the beginning, open-group, or alternation operator. */ #define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1) /* If this bit is set, then *, +, ?, and { cannot be first in an re or immediately after an alternation or begin-group operator. */ #define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1) /* If this bit is set, then . matches newline. If not set, then it doesn't. */ #define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1) /* If this bit is set, then . doesn't match NUL. If not set, then it does. */ #define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1) /* If this bit is set, nonmatching lists [^...] do not match newline. If not set, they do. */ #define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1) /* If this bit is set, either \{...\} or {...} defines an interval, depending on RE_NO_BK_BRACES. If not set, \{, \}, {, and } are literals. */ #define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1) /* If this bit is set, +, ? and | aren't recognized as operators. If not set, they are. */ #define RE_LIMITED_OPS (RE_INTERVALS << 1) /* If this bit is set, newline is an alternation operator. If not set, newline is literal. */ #define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1) /* If this bit is set, then `{...}' defines an interval, and \{ and \} are literals. If not set, then `\{...\}' defines an interval. */ #define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1) /* If this bit is set, (...) defines a group, and \( and \) are literals. If not set, \(...\) defines a group, and ( and ) are literals. */ #define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1) /* If this bit is set, then \ matches . If not set, then \ is a back-reference. */ #define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1) /* If this bit is set, then | is an alternation operator, and \| is literal. If not set, then \| is an alternation operator, and | is literal. */ #define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1) /* If this bit is set, then an ending range point collating higher than the starting range point, as in [z-a], is invalid. If not set, then when ending range point collates higher than the starting range point, the range is ignored. */ #define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1) /* If this bit is set, then an unmatched ) is ordinary. If not set, then an unmatched ) is invalid. */ #define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1) /* If this bit is set, succeed as soon as we match the whole pattern, without further backtracking. */ #define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1) /* If this bit is set, do not process the GNU regex operators. If not set, then the GNU regex operators are recognized. */ #define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1) /* If this bit is set, turn on internal regex debugging. If not set, and debugging was on, turn it off. This only works if regex.c is compiled -DDEBUG. We define this bit always, so that all that's needed to turn on debugging is to recompile regex.c; the calling code can always have this bit set, and it won't affect anything in the normal case. */ #define RE_DEBUG (RE_NO_GNU_OPS << 1) /* If this bit is set, a syntactically invalid interval is treated as a string of ordinary characters. For example, the ERE 'a{1' is treated as 'a\{1'. */ #define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1) /* If this bit is set, then ignore case when matching. If not set, then case is significant. */ #define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1) /* This bit is used internally like RE_CONTEXT_INDEP_ANCHORS but only for ^, because it is difficult to scan the regex backwards to find whether ^ should be special. */ #define RE_CARET_ANCHORS_HERE (RE_ICASE << 1) /* If this bit is set, then \{ cannot be first in an bre or immediately after an alternation or begin-group operator. */ #define RE_CONTEXT_INVALID_DUP (RE_CARET_ANCHORS_HERE << 1) /* If this bit is set, then no_sub will be set to 1 during re_compile_pattern. */ #define RE_NO_SUB (RE_CONTEXT_INVALID_DUP << 1) /* This global variable defines the particular regexp syntax to use (for some interfaces). When a regexp is compiled, the syntax used is stored in the pattern buffer, so changing this does not affect already-compiled regexps. */ extern reg_syntax_t re_syntax_options; /* Define combinations of the above bits for the standard possibilities. (The [[[ comments delimit what gets put into the Texinfo file, so don't delete them!) */ /* [[[begin syntaxes]]] */ #define RE_SYNTAX_EMACS 0 #define RE_SYNTAX_AWK \ (RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL \ | RE_NO_BK_PARENS | RE_NO_BK_REFS \ | RE_NO_BK_VBAR | RE_NO_EMPTY_RANGES \ | RE_DOT_NEWLINE | RE_CONTEXT_INDEP_ANCHORS \ | RE_UNMATCHED_RIGHT_PAREN_ORD | RE_NO_GNU_OPS) #define RE_SYNTAX_GNU_AWK \ ((RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DEBUG) \ & ~(RE_DOT_NOT_NULL | RE_INTERVALS | RE_CONTEXT_INDEP_OPS \ | RE_CONTEXT_INVALID_OPS )) #define RE_SYNTAX_POSIX_AWK \ (RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS \ | RE_INTERVALS | RE_NO_GNU_OPS) #define RE_SYNTAX_GREP \ (RE_BK_PLUS_QM | RE_CHAR_CLASSES \ | RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS \ | RE_NEWLINE_ALT) #define RE_SYNTAX_EGREP \ (RE_CHAR_CLASSES | RE_CONTEXT_INDEP_ANCHORS \ | RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE \ | RE_NEWLINE_ALT | RE_NO_BK_PARENS \ | RE_NO_BK_VBAR) #define RE_SYNTAX_POSIX_EGREP \ (RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES \ | RE_INVALID_INTERVAL_ORD) /* P1003.2/D11.2, section 4.20.7.1, lines 5078ff. */ #define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC #define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC /* Syntax bits common to both basic and extended POSIX regex syntax. */ #define _RE_SYNTAX_POSIX_COMMON \ (RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \ | RE_INTERVALS | RE_NO_EMPTY_RANGES) #define RE_SYNTAX_POSIX_BASIC \ (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM | RE_CONTEXT_INVALID_DUP) /* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes RE_LIMITED_OPS, i.e., \? \+ \| are not recognized. Actually, this isn't minimal, since other operators, such as \`, aren't disabled. */ #define RE_SYNTAX_POSIX_MINIMAL_BASIC \ (_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS) #define RE_SYNTAX_POSIX_EXTENDED \ (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \ | RE_CONTEXT_INDEP_OPS | RE_NO_BK_BRACES \ | RE_NO_BK_PARENS | RE_NO_BK_VBAR \ | RE_CONTEXT_INVALID_OPS | RE_UNMATCHED_RIGHT_PAREN_ORD) /* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INDEP_OPS is removed and RE_NO_BK_REFS is added. */ #define RE_SYNTAX_POSIX_MINIMAL_EXTENDED \ (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \ | RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES \ | RE_NO_BK_PARENS | RE_NO_BK_REFS \ | RE_NO_BK_VBAR | RE_UNMATCHED_RIGHT_PAREN_ORD) /* [[[end syntaxes]]] */ /* Maximum number of duplicates an interval can allow. Some systems (erroneously) define this in other header files, but we want our value, so remove any previous define. */ #ifdef RE_DUP_MAX # undef RE_DUP_MAX #endif /* If sizeof(int) == 2, then ((1 << 15) - 1) overflows. */ #define RE_DUP_MAX (0x7fff) /* POSIX `cflags' bits (i.e., information for `regcomp'). */ /* If this bit is set, then use extended regular expression syntax. If not set, then use basic regular expression syntax. */ #define REG_EXTENDED 1 /* If this bit is set, then ignore case when matching. If not set, then case is significant. */ #define REG_ICASE (REG_EXTENDED << 1) /* If this bit is set, then anchors do not match at newline characters in the string. If not set, then anchors do match at newlines. */ #define REG_NEWLINE (REG_ICASE << 1) /* If this bit is set, then report only success or fail in regexec. If not set, then returns differ between not matching and errors. */ #define REG_NOSUB (REG_NEWLINE << 1) /* POSIX `eflags' bits (i.e., information for regexec). */ /* If this bit is set, then the beginning-of-line operator doesn't match the beginning of the string (presumably because it's not the beginning of a line). If not set, then the beginning-of-line operator does match the beginning of the string. */ #define REG_NOTBOL 1 /* Like REG_NOTBOL, except for the end-of-line. */ #define REG_NOTEOL (1 << 1) /* Use PMATCH[0] to delimit the start and end of the search in the buffer. */ #define REG_STARTEND (1 << 2) /* If any error codes are removed, changed, or added, update the `re_error_msg' table in regex.c. */ typedef enum { #ifdef _XOPEN_SOURCE REG_ENOSYS = -1, /* This will never happen for this implementation. */ #endif REG_NOERROR = 0, /* Success. */ REG_NOMATCH, /* Didn't find a match (for regexec). */ /* POSIX regcomp return error codes. (In the order listed in the standard.) */ REG_BADPAT, /* Invalid pattern. */ REG_ECOLLATE, /* Inalid collating element. */ REG_ECTYPE, /* Invalid character class name. */ REG_EESCAPE, /* Trailing backslash. */ REG_ESUBREG, /* Invalid back reference. */ REG_EBRACK, /* Unmatched left bracket. */ REG_EPAREN, /* Parenthesis imbalance. */ REG_EBRACE, /* Unmatched \{. */ REG_BADBR, /* Invalid contents of \{\}. */ REG_ERANGE, /* Invalid range end. */ REG_ESPACE, /* Ran out of memory. */ REG_BADRPT, /* No preceding re for repetition op. */ /* Error codes we've added. */ REG_EEND, /* Premature end. */ REG_ESIZE, /* Compiled pattern bigger than 2^16 bytes. */ REG_ERPAREN /* Unmatched ) or \); not returned from regcomp. */ } reg_errcode_t; /* This data structure represents a compiled pattern. Before calling the pattern compiler, the fields `buffer', `allocated', `fastmap', `translate', and `no_sub' can be set. After the pattern has been compiled, the `re_nsub' field is available. All other fields are private to the regex routines. */ #ifndef RE_TRANSLATE_TYPE # define RE_TRANSLATE_TYPE unsigned char * #endif struct re_pattern_buffer { /* Space that holds the compiled pattern. It is declared as `unsigned char *' because its elements are sometimes used as array indexes. */ unsigned char *buffer; /* Number of bytes to which `buffer' points. */ unsigned long int allocated; /* Number of bytes actually used in `buffer'. */ unsigned long int used; /* Syntax setting with which the pattern was compiled. */ reg_syntax_t syntax; /* Pointer to a fastmap, if any, otherwise zero. re_search uses the fastmap, if there is one, to skip over impossible starting points for matches. */ char *fastmap; /* Either a translate table to apply to all characters before comparing them, or zero for no translation. The translation is applied to a pattern when it is compiled and to a string when it is matched. */ RE_TRANSLATE_TYPE translate; /* Number of subexpressions found by the compiler. */ size_t re_nsub; /* Zero if this pattern cannot match the empty string, one else. Well, in truth it's used only in `re_search_2', to see whether or not we should use the fastmap, so we don't set this absolutely perfectly; see `re_compile_fastmap' (the `duplicate' case). */ unsigned can_be_null : 1; /* If REGS_UNALLOCATED, allocate space in the `regs' structure for `max (RE_NREGS, re_nsub + 1)' groups. If REGS_REALLOCATE, reallocate space if necessary. If REGS_FIXED, use what's there. */ #define REGS_UNALLOCATED 0 #define REGS_REALLOCATE 1 #define REGS_FIXED 2 unsigned regs_allocated : 2; /* Set to zero when `regex_compile' compiles a pattern; set to one by `re_compile_fastmap' if it updates the fastmap. */ unsigned fastmap_accurate : 1; /* If set, `re_match_2' does not return information about subexpressions. */ unsigned no_sub : 1; /* If set, a beginning-of-line anchor doesn't match at the beginning of the string. */ unsigned not_bol : 1; /* Similarly for an end-of-line anchor. */ unsigned not_eol : 1; /* If true, an anchor at a newline matches. */ unsigned newline_anchor : 1; }; typedef struct re_pattern_buffer regex_t; /* Type for byte offsets within the string. POSIX mandates this. */ typedef int regoff_t; /* This is the structure we store register match data in. See regex.texinfo for a full description of what registers match. */ struct re_registers { unsigned num_regs; regoff_t *start; regoff_t *end; }; /* If `regs_allocated' is REGS_UNALLOCATED in the pattern buffer, `re_match_2' returns information about at least this many registers the first time a `regs' structure is passed. */ #ifndef RE_NREGS # define RE_NREGS 30 #endif /* POSIX specification for registers. Aside from the different names than `re_registers', POSIX uses an array of structures, instead of a structure of arrays. */ typedef struct { regoff_t rm_so; /* Byte offset from string's start to substring's start. */ regoff_t rm_eo; /* Byte offset from string's start to substring's end. */ } regmatch_t; /* Declarations for routines. */ /* Sets the current default syntax to SYNTAX, and return the old syntax. You can also simply assign to the `re_syntax_options' variable. */ extern reg_syntax_t re_set_syntax (reg_syntax_t __syntax); /* Compile the regular expression PATTERN, with length LENGTH and syntax given by the global `re_syntax_options', into the buffer BUFFER. Return NULL if successful, and an error string if not. */ extern const char *re_compile_pattern (const char *__pattern, size_t __length, struct re_pattern_buffer *__buffer); /* Compile a fastmap for the compiled pattern in BUFFER; used to accelerate searches. Return 0 if successful and -2 if was an internal error. */ extern int re_compile_fastmap (struct re_pattern_buffer *__buffer); /* Search in the string STRING (with length LENGTH) for the pattern compiled into BUFFER. Start searching at position START, for RANGE characters. Return the starting position of the match, -1 for no match, or -2 for an internal error. Also return register information in REGS (if REGS and BUFFER->no_sub are nonzero). */ extern int re_search (struct re_pattern_buffer *__buffer, const char *__string, int __length, int __start, int __range, struct re_registers *__regs); /* Like `re_search', but search in the concatenation of STRING1 and STRING2. Also, stop searching at index START + STOP. */ extern int re_search_2 (struct re_pattern_buffer *__buffer, const char *__string1, int __length1, const char *__string2, int __length2, int __start, int __range, struct re_registers *__regs, int __stop); /* Like `re_search', but return how many characters in STRING the regexp in BUFFER matched, starting at position START. */ extern int re_match (struct re_pattern_buffer *__buffer, const char *__string, int __length, int __start, struct re_registers *__regs); /* Relates to `re_match' as `re_search_2' relates to `re_search'. */ extern int re_match_2 (struct re_pattern_buffer *__buffer, const char *__string1, int __length1, const char *__string2, int __length2, int __start, struct re_registers *__regs, int __stop); /* Set REGS to hold NUM_REGS registers, storing them in STARTS and ENDS. Subsequent matches using BUFFER and REGS will use this memory for recording register information. STARTS and ENDS must be allocated with malloc, and must each be at least `NUM_REGS * sizeof (regoff_t)' bytes long. If NUM_REGS == 0, then subsequent matches should allocate their own register data. Unless this function is called, the first search or match using PATTERN_BUFFER will allocate its own register data, without freeing the old data. */ extern void re_set_registers (struct re_pattern_buffer *__buffer, struct re_registers *__regs, unsigned int __num_regs, regoff_t *__starts, regoff_t *__ends); #if defined _REGEX_RE_COMP || defined _LIBC # ifndef _CRAY /* 4.2 bsd compatibility. */ extern char *re_comp (const char *); extern int re_exec (const char *); # endif #endif /* GCC 2.95 and later have "__restrict"; C99 compilers have "restrict", and "configure" may have defined "restrict". */ #ifndef __restrict # if ! (2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__)) # if defined restrict || 199901L <= __STDC_VERSION__ # define __restrict restrict # else # define __restrict # endif # endif #endif /* gcc 3.1 and up support the [restrict] syntax. */ #ifndef __restrict_arr # if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) \ && !defined __GNUG__ # define __restrict_arr __restrict # else # define __restrict_arr # endif #endif /* POSIX compatibility. */ extern int regcomp (regex_t *__restrict __preg, const char *__restrict __pattern, int __cflags); extern int regexec (const regex_t *__restrict __preg, const char *__restrict __string, size_t __nmatch, regmatch_t __pmatch[__restrict_arr], int __eflags); extern size_t regerror (int __errcode, const regex_t *__restrict __preg, char *__restrict __errbuf, size_t __errbuf_size); extern void regfree (regex_t *__preg); #ifdef __cplusplus } #endif /* C++ */ #endif /* regex.h */ #endif /* unix */ tucnak2-2.48/src/settings.c0000644000175000017500000000170711737315463012551 00000000000000char *txt_settings= "------ Settings: --------\n" " version: tucnak2-2.48\n" " prefix: /usr/local\n" " sharedir: /usr/local/share/tucnak2\n" " interface: ifconf\n" " compiler: gcc 4.3.2\n" " sizes: int=4, long=8, long long=8, void*=8\n" " endianity: little\n" " CFLAGS: -g -O2 -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/libpng12\n" " LDFLAGS: -z now\n" " LIBS: -lm -lutil -pthread -lgthread-2.0 -lrt -lglib-2.0 -L/usr/lib -lSDL -lpng12 -lsndfile -lasound -lftdi -lhamlib -lm -lfftw3\n" " libc: yes \n" " libglib2: yes 2.16.6\n" " libsdl: yes 1.2.12\n" " libpng: yes 1.2.27\n" " iconv: libc\n" " libgpm: disabled \n" "libsndfile: yes 1.0.17\n" " alsa: yes 1.0.16\n" " libftdi: yes 0.13 new\n" " libhamlib: yes 1.2.7.1\n" " libfftw3: yes\n" " ppdev: yes\n" " pedantic: no\n" "leak debug: no\n" "instrument: no\n" " opts: -O2\n" ; tucnak2-2.48/src/iarray.c0000644000175000017500000001717211567373656012214 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of glib www.gtk.org */ /* GLIB - Library of useful routines for C programming * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /* * Modified by the GLib Team and others 1997-1999. See the AUTHORS * file for a list of people on the GLib Team. See the ChangeLog * files for a list of changes. These files are distributed with * GLib at ftp://ftp.gtk.org/pub/gtk/. */ /* * MT safe */ #include "header.h" /*#include #include #include */ #include "iarray.h" #define MIN_ARRAY_SIZE 16 static gint g_nearest_pow (gint num); static gint g_nearest_pow (gint num) { gint n = 1; while (n < num) n <<= 1; return n; } /* Index Array */ typedef struct _GRealIndexArray GRealIndexArray; struct _GRealIndexArray { gpointer *pdata; guint len; guint alloc; }; static void g_index_array_maybe_expand (GRealIndexArray * array, gint len); static GMemChunk *index_array_mem_chunk = NULL; //G_LOCK_DEFINE_STATIC (index_array_mem_chunk); static GMutex *index_array_mem_chunk_mutex; #ifdef LEAK_DEBUG_LIST char *index_array_mem_chunk_file; int index_array_mem_chunk_line; #endif void init_iarray(void){ index_array_mem_chunk_mutex = g_mutex_new(); } void free_iarray(void){ g_mutex_free(index_array_mem_chunk_mutex); } GIndexArray *g_index_array_new (void) { GRealIndexArray *array; //G_LOCK (index_array_mem_chunk); MUTEX_LOCK (index_array_mem_chunk); if (!index_array_mem_chunk) index_array_mem_chunk = g_mem_chunk_new ("array mem chunk", sizeof (GRealIndexArray), 1024, G_ALLOC_AND_FREE); array = g_chunk_new (GRealIndexArray, index_array_mem_chunk); //G_UNLOCK (index_array_mem_chunk); MUTEX_UNLOCK (index_array_mem_chunk); array->pdata = NULL; array->len = 0; array->alloc = 0; return (GIndexArray *) array; } void g_index_array_free (GIndexArray * array, gboolean free_segment) { g_return_if_fail (array); if (free_segment && array->pdata != NULL) g_free (array->pdata); //G_LOCK (index_array_mem_chunk); MUTEX_LOCK (index_array_mem_chunk); g_mem_chunk_free (index_array_mem_chunk, array); //G_UNLOCK (index_array_mem_chunk); MUTEX_UNLOCK (index_array_mem_chunk); } static void g_index_array_maybe_expand (GRealIndexArray * array, gint len) { guint old_alloc; if ((array->len + len) > array->alloc) { old_alloc = array->alloc; array->alloc = g_nearest_pow (array->len + len); array->alloc = MAX (array->alloc, MIN_ARRAY_SIZE); if (array->pdata) array->pdata = g_realloc (array->pdata, sizeof (gpointer) * array->alloc); else array->pdata = g_new0 (gpointer, array->alloc); memset (array->pdata + old_alloc, 0, sizeof (gpointer) * (array->alloc - old_alloc)); } } void g_index_array_set_size (GIndexArray * farray, gint length) { GRealIndexArray *array = (GRealIndexArray *) farray; g_return_if_fail (array); if (length > array->len) g_index_array_maybe_expand (array, (length - array->len)); array->len = length; } gpointer g_index_array_remove_index (GIndexArray * farray, guint index) { GRealIndexArray *array = (GRealIndexArray *) farray; gpointer result; g_return_val_if_fail (array, NULL); g_return_val_if_fail (index < array->len, NULL); result = array->pdata[index]; if (index != array->len - 1){ g_memmove (array->pdata + index, array->pdata + index + 1, sizeof (gpointer) * (array->len - index - 1)); } array->pdata[array->len - 1] = NULL; array->len -= 1; return result; } gpointer g_index_array_remove_index_fast (GIndexArray * farray, guint index) { GRealIndexArray *array = (GRealIndexArray *) farray; gpointer result; g_return_val_if_fail (array, NULL); g_return_val_if_fail (index < array->len, NULL); result = array->pdata[index]; if (index != array->len - 1) array->pdata[index] = array->pdata[array->len - 1]; array->pdata[array->len - 1] = NULL; array->len -= 1; return result; } gboolean g_index_array_remove (GIndexArray * farray, gpointer data) { GRealIndexArray *array = (GRealIndexArray *) farray; int i; g_return_val_if_fail (array, FALSE); for (i = 0; i < array->len; i += 1) { if (array->pdata[i] == data) { g_index_array_remove_index (farray, i); return TRUE; } } return FALSE; } gboolean g_index_array_remove_fast (GIndexArray * farray, gpointer data) { GRealIndexArray *array = (GRealIndexArray *) farray; int i; g_return_val_if_fail (array, FALSE); for (i = 0; i < array->len; i += 1) { if (array->pdata[i] == data) { g_index_array_remove_index_fast (farray, i); return TRUE; } } return FALSE; } void g_index_array_add (GIndexArray * farray, gpointer data) { GRealIndexArray *array = (GRealIndexArray *) farray; g_return_if_fail (array); g_index_array_maybe_expand (array, 1); array->pdata[array->len++] = data; } /* new stuff */ void g_index_array_qsort (GIndexArray *farray, int (*compar)(const void *, const void *)){ GRealIndexArray *array = (GRealIndexArray *) farray; qsort( (void *)array->pdata, array->len, sizeof(gpointer), compar); } void g_index_array_uniq (GIndexArray *farray, int (*compar)(const void *, const void *), int free_dups){ int i=0; while (i + 1 < farray->len){ if (compar(farray->pdata+i, farray->pdata+i+1) == 0){ if (free_dups) g_free(g_index_array_index(farray, i + 1)); g_index_array_remove_index(farray, i + 1); }else{ i++; } } } gpointer *g_index_array_bsearch(GIndexArray *farray, const void *key, int (*compar)(const void *, const void *)){ GRealIndexArray *array = (GRealIndexArray *) farray; return (gpointer) bsearch (key, (void *)array->pdata, array->len, sizeof(gpointer), compar); } gint g_index_array_bsearch_index(GIndexArray *farray, const void *key, int (*compar)(const void *, const void *)){ gpointer found; gint index; found = g_index_array_bsearch(farray, key, compar); if (!found) return -1; index = (gpointer *)found - (gpointer*)farray->pdata; return index; } void g_index_array_free_all(GIndexArray *array){ int i; gpointer item; for (i=array->len-1; i>=0; i--){ item=g_index_array_index(array, i); g_free(item); } array->len=0; g_index_array_free(array, array->pdata?TRUE:FALSE); } tucnak2-2.48/src/loc.c0000644000175000017500000002007611567373656011477 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef MAIN #include "header.h" #else #define R_EARTH 6371.2907 #define MY_PI 3.14159265358979323846 #endif #include #include #include #define LOCDEBUGx static char *tostr(char *s,double x){ int a,b; x=x*180/MY_PI; /*fprintf(stderr, "%6.2f\n",x);*/ a=(int)x; if (x>0) x-=a; else x=a-x; x*=60; b=(int)x; if (x>0) x-=b; else x=b-x; x*=60; sprintf(s,"%d.%d'%3.1f\"",a,b,x); /* fprintf(stderr,"%s\n",s);*/ return(s); } /******************* QRB **************************/ double qth(char *qth,int width) { char *c,d; double res; /* dbg("qth('%s',%d)\n", qth, width);*/ c=qth; while (1){ d=lowcase(*c); if (!d) return(-100); if (d>='a' || d<='r') break; c++; } if (width&1) c++; d=lowcase(*c); if (strlen(c)<3) return(-100); res=(d-106)*MY_PI/9.0; c+=2; if (!isdigit(*c)) return(-100); res+=(*c-'0')*MY_PI/90.0; c+=2; /* dbg("strlen(c)=%d, strlen(qth)=%d\n", strlen(c), strlen(qth)); */ if (strlen(qth)>=6){ d=lowcase(*c); if (d<'a' || d>'x') return(-100); res+=(d-97)*MY_PI/2160.0; }else{ if (width&2) res+=MY_PI/180; } res+=MY_PI/4320.0; /*if (strlen(c)>=8){ c+=2; if (isdigit(*c)) res+=(*c-'0')*MY_PI/21600.0; if (width&2) res+=MY_PI/43200.0; }else{ if (width&2) res+=MY_PI/4320.0; } */ if (width&1) res/=2; return(res); } /* compute QRB, not QSO points! */ int qrbqtf(char *myqth,char *recqth,double *qrb,double *qtf,char *str, int flags){ double h1,w1,h2,w2; char s1[20],s2[20],s3[20],s4[20]; int ret; *qrb=-1; *qtf=-1; if ((h1=qth(myqth,0|flags))<-10) return(-1); if ((w1=qth(myqth,1|flags))<-10) return(-1); if ((h2=qth(recqth,0|flags))<-10) return(-1); if ((w2=qth(recqth,1|flags))<-10) return(-1); /*dbg("h1=%7.4f w1=%7.4f h2=%7.4f w2=%7.4f \n",h1,w1,h2,w2);*/ #ifdef LOCDEBUG fprintf(stderr, "%s->%s, h1=%7.9f w1=%7.9f h2=%7.9f w2=%7.9f \n",myqth,recqth,h1,w1,h2,w2); fprintf(stderr, "h1=%7.9fdeg w1=%7.9fdeg h2=%7.9fdeg w2=%7.9fdeg \n",h1*180.0/MY_PI,w1*180.0/MY_PI,h2*180.0/MY_PI,w2*180.0/MY_PI); #endif if (str!=NULL){ sprintf(str,"From: %s E %s N to %s E %s N",tostr(s1,h1),tostr(s2,w1),tostr(s3,h2),tostr(s4,w2)); } ret = hw2qrbqtf(h1, w1, h2, w2, qrb, qtf); *qtf=*qtf * 180.0/MY_PI; /*dbg("qrbqtf(%s->%s %5.3fkm %3.0fdeg\n", myqth, recqth, *qrb, *qtf);*/ return ret; } /* compute QRB, not QSO points! */ int hw2qrbqtf(double h1, double w1, double h2, double w2, double *qrb, double *qtf){ double dh,dw; #ifdef LOCDEBUG dbg("h1=%7.9f w1=%7.9f h2=%7.9f w2=%7.9f ",h1,w1,h2,w2); #endif dh=h2-h1; *qrb=R_EARTH*acos( sin(w1)*sin(w2)+cos(w1)*cos(w2)*cos(dh) ); dw=tan(w2)*cos(w1)-sin(w1)*cos(dh); #ifdef LOCDEBUG fprintf(stderr, "dh=%7.9f qrb=%7.9f dw=%7.9f\n", dh, *qrb, dw); #endif *qtf=atan2(sin(dh),dw); if (*qtf<0) *qtf+=2*MY_PI; return 0; } /*************** REVERSE QRB ***************************/ #define EPSILON 0.00000000005 /* qtf in radian */ int qrbqtf2hw(double h1, double w1, double qrb, double qtf, double *h2, double *w2){ double dh, d; if (qrb>R_EARTH*MY_PI) return -1; d = qrb/R_EARTH; *w2 = asin (sin(w1)*cos(d) + cos(w1)*sin(d)*cos(qtf)); if (fabs(cos(*w2))< EPSILON) { *h2 = 0; }else{ dh = atan2(sin(qtf)*sin(d)*cos(w1), cos(d)-sin(w1)*sin(*w2) ); *h2 = fmod (MY_PI +h1+dh, 2*MY_PI)-MY_PI; } return 0; } #ifdef HAVE_GFX int xy2qrbqtf(struct gfx *gfx, int x, int y, double *qrb, double *qtf){ int dx, dy; dx=x - gfx->o_x - gfx->m_x; dy=y - gfx->o_y - gfx->m_y; *qrb=gfx->zoom->value*sqrt(sqr(dx)+sqr(dy)); *qtf=atan2(dx,-dy); if (*qtf<0) *qtf+=2*MY_PI; return 0; } int xy2hw(struct gfx *gfx, int x, int y, double *h, double *w){ double qrb, qtf; int ret; xy2qrbqtf(gfx, x, y, &qrb, &qtf); ret=qrbqtf2hw(gfx->myh, gfx->myw, qrb, qtf, h, w); return ret; } #endif /*************** WWL RING *****************************/ int qthwr(char *qth,int width) { char *c,d; int res; c=qth; while (1){ d=lowcase(*c); if (!d) return(-1000); if (d>='a' || d<='r') break; c++; } if (width) c++; d=lowcase(*c); if (strlen(c)<5) return(-1000); res=(d-106)*10; c+=2; if (!isdigit(*c)) return(-1000); res+=(*c-'0'); return(res); } char *mkwwl4(char *buf, int w, int h){ /* dbg("mkwwl4(%d, %d)\n", w, h);*/ w+=90; h+=90; while (w<0) w+=180; while (h<0) h+=180; w%=180; h%=180; buf[0]='A'+ h/10; buf[1]='A'+ w/10; buf[2]='0'+ h%10; buf[3]='0'+ w%10; buf[4]='\0'; return buf; } /* grad */ char *hw2loc(char *buf, double h, double w){ h+=180; w+=90; h=fmod(h,360.0); w=fmod(w,180.0); buf[0]='A'+ (int)(h/20.0); buf[1]='A'+ (int)(w/10.0); h=fmod(h,20); w=fmod(w,10); buf[2]='0'+ (int)(h/2); buf[3]='0'+ (int)(w); h=fmod(h,2); w=fmod(w,1); h*=12; w*=24; buf[4]='A'+ (int)(h); buf[5]='A'+ (int)(w); buf[6]='\0'; return buf; } char *x2gramin(char *buf, double x, char *signs){ double xx; char sign; sign=x<0?signs[1]:signs[0]; x = fabs(fmod(x, 360)); xx = fmod(x, 1)*60.0; sprintf(buf, "%3d%c%02d", (int)x, sign, (int)xx); return buf; } int qsopwr( char *myqth, char *recqth){ int h1, h2, w1, w2, dh1, dh2, dh, dw, d; if ((h1=qthwr(myqth,0))<=-1000) return(-1); if ((w1=qthwr(myqth,1))<=-1000) return(-1); if ((h2=qthwr(recqth,0))<=-1000) return(-1); if ((w2=qthwr(recqth,1))<=-1000) return(-1); /*dbg("h1=%d w1=%d h2=%d %w2=%d \n",h1,w1,h2,w2);*/ dh1 = h1 - h2; if (dh1 < 0) dh1 += 180; dh2 = h2 - h1; if (dh2 < 0) dh2 += 180; /* dw1 = w1 - w2; if (dw1 < 0) dw1 += 180; dw2 = w2 - w1; if (dw2 < 0) dw2 += 180; */ dh = dh1 < dh2 ? dh1 : dh2; /* dw = dw1 < dw2 ? dw1 : dw2;*/ dw = w2 - w1; if (dw < 0) dw = -dw; d = dh < dw ? dw : dh; return d+2; } char *compute_wwl4(char *s, double h, double w){ int hi, wi; if (h < -180.0 || h > 180.0 || w < -90.0 || w > 90.0) { strcpy(s,""); return s; } h += 180.0; w += 90.0; hi = (int)(h/20); s[0] = 'A' + hi; wi = (int)(w/10); s[1] = 'A' + wi; hi = (int)(h/2); hi %= 10; wi = (int)w; wi %= 10; s[2] = '0' + hi; s[3] = '0' + wi; s[4] = '\0'; return s; } #ifndef MAIN void qrb_qtf_int(gchar *wwl, int *qrb_int, int *qtf_int){ double qrb, qtf; qrbqtf(ctest ? ctest->pwwlo : cfg->pwwlo, wwl, &qrb, &qtf, NULL, 0); *qrb_int=(int)qrb; *qtf_int=(int)qtf; /*dbg("qrb_qtf_int(%s->%s %5dkm %3ddeg\n", ctest->pwwlo, wwl, *qrb_int, *qtf_int);*/ } #endif /* Compute points from QRB */ int iaru_round(double qrb){ return ((int)(qrb+1.0)); } #ifdef MAIN int main(int argc,char *argv[]){ char s[100],my[100]="jn69pv",rec[100]="jo60lj"; double qrb,qtf; while (1) { printf("\n zadej svuj lokator (%s) :",my); fgets(s,90,stdin); s[strlen(s)-1]='\0'; if (strcmp(s,"k")==0) return(1); if (strlen(s)>0) strcpy(my,s); printf(" zadej prijaty lokator (%s) :",rec); fgets(s,90,stdin); s[strlen(s)-1]='\0'; if (strcmp(s,"k")==0) return(1); if (strlen(s)>0) strcpy(rec,s); qrbqtf(my,rec,&qrb,&qtf,s); printf(" %s \n qrb:%8.1f km qtf:%6.2f \n",s,qrb,qtf); printf("WWL ring: %d ", qsopwr(my,rec)); } } #endif tucnak2-2.48/src/net.c0000644000175000017500000024563411577630756011517 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" /* "relation" layer: KA seq keepalive AK seq ack AC tdate;pcall;tname;qrvbands active contest CL close contest LA source;stamp QS band;date_str;time_str;callsign_or_error; mode;rsts;qsonrs;rstr;\ qsonrr;exc;locator;source; operator;stamp;callsign;; \ ser_id;remark TA talk SK now_time;operator;src_shortpband;qrg; we_call;pband;time_str;callsign; locator;remark ID 192.168.1.1:55555 SR start of replication block ER end of replication block GR band;ccmd;slaveid grab band DO discovery peers with operator PO peer0ip:peer0port;oper0;peer1ip:peer1port;oper1;... peers list with operator(master->slave) DR discovery read-write bands PR peer0ip:peer0port;oper0;bands0;peer1ip:peer1port;oper1;bands1;... read-write bands (master->slave) DC discovery peers with opened contest PC peer0ip:peer0port;date0;pcall0;tname0;peer1ip:peer1port;... peers list with contest properties(master->slave) RW bandchars send read-write bands PT band;srcip:srcport;tx ptt state WI band;srcip:srcport;text current inputline WT band;srcip:srcport;item_no;text current tmpqso item RT band;destip:dstport request all tmpqso informations (PT, WI, WT) DI OBSOLETE discovery peers PE peer0ip:peer0port;peer1i:peer1port;... OBSOLETE peers list (master->slave) CR destip:destport;srcip:srcport configuration request CF destip:destport;srcip:srcport;config_line one configuration line WR destip:destport;srcip:srcport C_W request CW destip:destport;srcip:srcport;call;locator;date one C_W line DX DX de HL2IFR: 24900.2 BA4ED AS-136 0807Z OP operator BA pband;psect;stxeq;spowe;sreq;sante;santh;mope1;mope2;remarks RS ip:port;rotstr;qtf?;ele? RU ip:port;rotstr;qtf;ele RC destip:destport;srcip:srcport request of contest options SC destip:destport;contest_opts;band_number;band0_opts;band1_opts;... current contest options */ struct net *net; char *ns_desc[]={"INIT", "SABM", "CONN", "WAIT", "DIST", "DEAD"}; struct net *init_net(void){ struct net *net; /* dbg("init_net()\n");*/ net = g_new0(struct net, 1); init_net_tcp(net); init_net_udp(net); /* require net->my.sin_port */ return net; } void free_net(struct net *net){ free_net_ifaces(net); free_net_tcp(net); free_net_udp(net); g_free(net); } #define NET_DELIM " \t," int init_net_udp(struct net *net){ int on; struct sockaddr_in sin; socklen_t socklen; init_net_ifaces(net); /* dbg("init_net_udp()\n");*/ net->udptimer_id = -1; net->udpsock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP); if (net->udpsock < 0) goto err; /* dbg(" udpsock=%d\n", net->udpsock);*/ on=1; if (setsockopt(net->udpsock, SOL_SOCKET, SO_REUSEADDR, SO4 &on, sizeof(on))){ trace(cfg->trace_bcast, "Can't set SO_REUSEADDR\n"); goto err; } on=1; if (setsockopt(net->udpsock, SOL_SOCKET, SO_BROADCAST, SO4 &on, sizeof(on))){ trace(cfg->trace_bcast, "Can't set SO_BROADCAST\n"); goto err; } if (fcntl(net->udpsock, F_SETFL, O_NONBLOCK)){ trace(cfg->trace_bcast, "Can't set O_NONBLOCK\n"); goto err; } memset(&sin, 0, sizeof(struct sockaddr_in)); sin.sin_family = AF_INET; sin.sin_port = htons(NET_PORT); sin.sin_addr.s_addr = INADDR_ANY; if (bind(net->udpsock, (struct sockaddr *)&sin, sizeof(sin))){ trace(cfg->trace_bcast, "Can't bind UDP port %d\n", NET_PORT); goto err; } memset(&sin, 0, sizeof(sin)); socklen = sizeof(sin); getsockname(net->udpsock, (struct sockaddr *) &sin, &socklen); net->udptimer_period = UDP_ANNOUNCE; net->udptimer_id = install_timer(1, udp_timer, (cba_t) net); set_handlers(net->udpsock, udp_read_handler, NULL, udp_exception_handler, CBA0); /* dbg("I'M %s:%d\n", inet_ntoa(net->my.sin_addr), * ntohs(net->my.sin_port));*/ // trace(cfg->trace_bcast, "My ID: %s\n", net->myid); return 0; err:; closesocket(net->udpsock); net->udpsock = -1; /* kill_timer not needed */ return 1; } int init_net_tcp(struct net *net){ int port; struct sockaddr_in sin; /*dbg("init_net_tcp()\n");*/ net->peers = g_ptr_array_new(); net->tcpsock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); /*dbg(" tcpsock=%d\n", net->tcpsock);*/ #ifndef WIN32 //__CYGWIN__ { int on; on=1; if (setsockopt(net->tcpsock, SOL_SOCKET, SO_REUSEADDR, SO4 &on, sizeof(on))){ trace(cfg->trace_sock, "Can't set SO_REUSEADDR\n"); goto x; } } #endif if (fcntl(net->tcpsock, F_SETFL, O_NONBLOCK)){ trace(cfg->trace_sock, "Can't set O_NONBLOCK\n"); goto x; } for (port=NET_PORT; port<65536; port++){ net->my.sin_port = htons(port); net->global.sin_port = htons(port); memset(&sin, 0, sizeof(struct sockaddr_in)); sin.sin_family = AF_INET; sin.sin_port = net->my.sin_port; sin.sin_addr.s_addr = INADDR_ANY; if (bind(net->tcpsock, (struct sockaddr *)&sin, sizeof(sin))==0) break; /* dbg("Can't bind tcp port %d\n", NET_PORT);*/ if (port==65535) goto x; continue; } if (listen(net->tcpsock, 10)){ trace(cfg->trace_sock, "Can't listen on socket %d, tcp port %d \n", net->tcpsock, net->my.sin_port); goto x; } sock_debug(net->tcpsock, "listen init_net_tcp"); set_handlers(net->tcpsock, tcp_accept_handler, NULL, tcp_exception_handler, CBA0); return 0; x:; sock_debug(net->tcpsock, "close net->tcpsock"); closesocket(net->tcpsock); net->my.sin_port=0; net->global.sin_port=0; net->tcpsock=-1; return -1; } enum assign_types {AT_UNASSIGNED, AT_LOOPBACK, AT_ASSIGNED}; int init_net_ifaces(struct net *net){ struct iface_struct ifaces[MAX_INTERFACES]; int i,mi,j,ii; GPtrArray *if_ignore, *ip_ignore, *ip_announce; char *token_ptr; gchar *c; GString *gs; enum assign_types assign_type; char *tmp1; if_ignore = g_ptr_array_new(); ip_ignore = g_ptr_array_new(); ip_announce = g_ptr_array_new(); if (cfg->net_if_ignore){ gchar *net_if_ignore; net_if_ignore = g_strdup(cfg->net_if_ignore); for (c=strtok_r(net_if_ignore, NET_DELIM, &token_ptr); c!=NULL; c=strtok_r(NULL, NET_DELIM, &token_ptr)){ trace(cfg->trace_bcast, "adding iface '%s' for ignoring", c); c=g_strdup(c); /* dbg("dup=%p\n", c);*/ g_ptr_array_add(if_ignore, c); } g_free(net_if_ignore); } if (cfg->net_ip_ignore){ gchar *net_ip_ignore; net_ip_ignore = g_strdup(cfg->net_ip_ignore); for (c=strtok_r(cfg->net_ip_ignore, NET_DELIM, &token_ptr); c!=NULL; c=strtok_r(NULL, NET_DELIM, &token_ptr)){ trace(cfg->trace_bcast, "adding addr '%s' for ignoring\n", c); g_ptr_array_add(ip_ignore, g_strdup(c)); } g_free(net_ip_ignore); } /* when tucnak crashes here, remove --enable-leak-debug from configure */ // dbg("net->my %s:%d\n", inet_ntoa(net->my.sin_addr), ntohs(net->my.sin_port)); tmp1 = inet_ntoa(net->my.sin_addr); net->myid = g_strdup_printf("%s:%d",tmp1, (int)ntohs(net->my.sin_port)); assign_type = AT_UNASSIGNED; trace(cfg->trace_bcast, "preassigned net->myid=%s", net->myid); mi = get_interfaces(ifaces, MAX_INTERFACES); /* network byteorder */ j = 0; for (i=0;itrace_sock, "iface %s\n",ifaces[i].name); is_lo=!strcmp(ifaces[i].name, "lo"); /* if (mi>1 && strcmp(ifaces[i].name, "lo")==0) continue;*/ if ((int)ifaces[i].ip.s_addr==0) continue; /* 0.0.0.0 happens on cygwin */ for (ii=0; iilen; ii++){ gchar *c; c = (gchar *)g_ptr_array_index(if_ignore, ii); if (strcmp(c, ifaces[i].name)==0) { trace(cfg->trace_bcast, VTEXT(T_IGN_IFACE_S),ifaces[i].name); goto next_loop; } } sin = (struct sockaddr_in *)&net->bcast_addr[j]; sin->sin_family = AF_INET; sin->sin_addr.s_addr = ifaces[i].ip.s_addr | ~(ifaces[i].netmask.s_addr); sin->sin_port = htons(NET_PORT); for (ii=0; iilen; ii++){ gchar *c; struct in_addr iad; c = (gchar *)g_ptr_array_index(ip_ignore, ii); if (!inet_aton(c, &iad)) continue; /* invalid addr */ if (iad.s_addr==sin->sin_addr.s_addr) { trace(cfg->trace_bcast, VTEXT(T_IGN_ADDR_S), inet_ntoa(sin->sin_addr)); goto next_loop; } } trace(cfg->trace_bcast, "adding iface '%s'\n", ifaces[i].name); if (assign_type!=AT_ASSIGNED) { net->my.sin_addr.s_addr = ifaces[i].ip.s_addr; net->global.sin_addr.s_addr = ifaces[i].ip.s_addr; if (net->myid) g_free(net->myid); net->myid = g_strdup_printf("%s:%d", inet_ntoa(net->my.sin_addr), ntohs(net->my.sin_port)); assign_type=is_lo?AT_LOOPBACK:AT_ASSIGNED; trace(cfg->trace_bcast, "assigned net->myid=%s\n", net->myid); } j++; trace(cfg->trace_bcast, VTEXT(T_ADD_IFACE_SSD), ifaces[i].name, inet_ntoa(sin->sin_addr), NET_PORT); next_loop:; } if (cfg->net_ip_announce){ for (c=strtok_r(cfg->net_ip_announce, NET_DELIM, &token_ptr); c!=NULL; c=strtok_r(NULL, NET_DELIM, &token_ptr)){ struct in_addr iad; struct sockaddr_in *sin; if (!inet_aton(c, &iad)) continue; /* invald addr */ sin = (struct sockaddr_in *)&net->bcast_addr[j]; sin->sin_family = AF_INET; sin->sin_addr.s_addr = iad.s_addr; sin->sin_port = htons(NET_PORT); log_addf(VTEXT(T_FORCED_ADDR), inet_ntoa(sin->sin_addr)); j++; } } net->max_addrs = j; g_ptr_array_free_all(if_ignore); g_ptr_array_free_all(ip_ignore); g_ptr_array_free_all(ip_announce); gs=g_string_sized_new(100); for (i=0; imax_addrs; i++){ struct sockaddr_in *sin; if (i>0) g_string_sprintfa(gs, ", "); sin = (struct sockaddr_in *)&net->bcast_addr[i]; g_string_sprintfa(gs, "%s:%d", inet_ntoa(sin->sin_addr), ntohs(sin->sin_port)); } trace(cfg->trace_bcast, "Broadcast to: %s", gs->str); g_string_free(gs, TRUE); return 0; } void free_net_udp(struct net *net){ if (net->udptimer_id >= 0) kill_timer(net->udptimer_id); closesocket(net->udpsock); } void free_conn(struct conn *conn){ dbg("free_conn(%p)\n", conn); if (conn->sock >= 0){ set_handlers(conn->sock, NULL, NULL, NULL, CBA0); sock_debug(conn->sock, "close free_conn()"); closesocket(conn->sock); tcp_kill(conn); } tcp_set_state(conn, NS_DEAD); if (conn->wrbuf) g_string_free(conn->wrbuf, 1); if (conn->rdbuf) g_string_free(conn->rdbuf, 1); CONDGFREE(conn->operator_); CONDGFREE(conn->rwbands); CONDGFREE(conn->remote_id); CONDGFREE(conn->remote_ac); /* look at udp_read_handler near to end */ } void free_net_ifaces(struct net *net){ if (net->myid) g_free(net->myid); } void free_net_tcp(struct net *net){ struct conn *conn; int i; sock_debug(net->tcpsock, "close net->tcpsock (2)"); closesocket(net->tcpsock); if (net->master) { free_conn(net->master); g_free(net->master); net->master = NULL; } for (i=net->peers->len-1; i>=0; i--){ conn = (struct conn *) g_ptr_array_index(net->peers, i); free_conn(conn); g_ptr_array_remove_index(net->peers, i); g_free(conn); } CONDGFREE(net->allpeers); CONDGFREE(net->rwbpeers); CONDGFREE(net->bpeers); } /****************** SELECT's HANDLERS ********************************/ void udp_read_handler(cba_t cba){ char s[1024]; char errstr[1030]; struct sockaddr_in sin; socklen_t socklen; gchar **items; int i; time_t expire, now; struct sockaddr_in peer; struct sockaddr_in master; /* dbg("udp_read_handler()\n");*/ now = time(NULL); memset(s, 0, sizeof(s)); socklen = sizeof(sin); recvfrom(net->udpsock, s, sizeof(s)-1, 0, (struct sockaddr *)&sin, &socklen); if (strlen(s)>0 && s[strlen(s)-1]=='\n') s[strlen(s)-1]='\0'; if (strlen(s)>0 && s[strlen(s)-1]=='\r') s[strlen(s)-1]='\0'; items=g_strsplit(s, ";", 0); for (i=0;i<7;i++) { if (items[i]==NULL) { g_strfreev(items); return; } } if (strcmp(items[0], "tucnak")!=0) { g_strfreev(items); return; } peer.sin_addr.s_addr = inet_addr(items[2]); peer.sin_port = htons(atoi(items[3])); master.sin_addr.s_addr = inet_addr(items[4]); master.sin_port = htons(atoi(items[5])); expire = atoi(items[6]); // dbg("%s items[7]=%s opt_m=%d master=%p cmp=%d\n", items[1], items[7], opt_m, net->master, cmp_sin(&master, &net->my)); if (items[7] && opt_m && !net->master && cmp_sin(&master, &net->my)<0){ struct timeval tv; tv.tv_sec = atoi(items[7]); tv.tv_usec = 500000; // better than 0 if (settimeofday(&tv, NULL) == 0){ log_addf("Time was set"); now = time(NULL); }else{ log_addf("Failed to set time - %s", strerror_r(errno, errstr, sizeof(errstr))); } } g_strfreev(items); if (expire < now) return; /* ignore expired information */ if (expire < now-NET_MAX_SKEW_NEG || expire > now+NET_MAX_SKEW_POS) { log_addf(VTEXT(T_TIMESKEW), now-expire, inet_ntoa(master.sin_addr), ntohs(master.sin_port)); } if (expire > now+NET_MAX_SKEW_POS){ trace(cfg->trace_bcast, "ignoring expire in future, ignoring\n"); return; } /* network byteorder */ if (net->my.sin_addr.s_addr == peer.sin_addr.s_addr && net->my.sin_port == peer.sin_port) return; trace(cfg->trace_bcast, "rcvd: %s: %s", inet_ntoa(sin.sin_addr),s); if (cmp_sin(&master, &net->global)==0){ /* updating expire time */ net->global_expire = expire; } if (cmp_sin(&master, &net->global)<0){ /* received master is "global" */ net->global.sin_family = AF_INET; net->global.sin_addr.s_addr = master.sin_addr.s_addr; net->global.sin_port = master.sin_port; net->global_expire = expire; trace(cfg->trace_bcast, "new master is %s:%d, now=%d, expires %d \n", inet_ntoa(net->global.sin_addr), ntohs(net->global.sin_port), now%1000, expire%1000); } if (cmp_sin(&master, &net->global)>0){ /* received master my slave */ trace(cfg->trace_bcast, "tucnak %s:%d means it is master but isn't true\n", inet_ntoa(net->global.sin_addr), ntohs(net->global.sin_port)); kill_timer(net->udptimer_id); net->udptimer_id = install_timer(1, udp_timer, (cba_t) net); } /* is net->master "global" master? */ if (net->master) { if (cmp_sin(&net->master->sin, &net->global)!=0) { /* net->master > net->global, disconnect */ trace(cfg->trace_sock, "disconnecting from %s:%d\n", inet_ntoa(net->master->sin.sin_addr), ntohs(net->master->sin.sin_port)); log_addf(VTEXT(T_DISCONNECTING_SD), inet_ntoa(net->master->sin.sin_addr), ntohs(net->master->sin.sin_port)); /* CONDGFREE(net->master->operator); CONDGFREE(net->master->remote_id); CONDGFREE(net->master->remote_ac);*/ free_conn(net->master); g_free(net->master); net->master = NULL; } } if (!net->master && cmp_sin(&net->global, &net->my)<0){ trace(cfg->trace_sock, "Now i'm a master\n"); net->master = g_new0(struct conn, 1); net->master->sin.sin_family = AF_INET; net->master->sin.sin_addr.s_addr = net->global.sin_addr.s_addr; net->master->sin.sin_port = net->global.sin_port; tcp_connect(net->master); } } void udp_exception_handler(cba_t cba){ dbg("udp_exception_handler()\n"); } void tcp_accept_handler(cba_t cba){ int sock,i; struct sockaddr_in sin; socklen_t socklen; struct conn *conn; /*dbg("tcp_accept_handler()\n");*/ socklen = sizeof(sin); sock = accept(net->tcpsock, (struct sockaddr *)&sin, &socklen); if (!socklen || sock<0) return; trace(cfg->trace_sock, "Accepted socket %d %s:%d\n", sock, inet_ntoa(sin.sin_addr), ntohs(sin.sin_port)); dbg("Accepted socket %d %s:%d\n", sock, inet_ntoa(sin.sin_addr), ntohs(sin.sin_port)); log_addf(VTEXT(T_ACCEPTED_SD), inet_ntoa(sin.sin_addr), ntohs(sin.sin_port)); for (i=0;ipeers->len;i++){ cba_t cba; conn=(struct conn *)g_ptr_array_index(net->peers, i); if (conn->sock!=sock) continue; if (conn->timer) kill_timer(conn->timer); SETCBA(cba, conn, conn); remove_conn_timer(cba); } conn = g_new0(struct conn, 1); conn->sin.sin_family = AF_INET; conn->sin.sin_addr.s_addr = sin.sin_addr.s_addr; conn->sin.sin_port = sin.sin_port; conn->sock = sock; tcp_set_state(conn, NS_CONNECTED); set_handlers(conn->sock, tcp_read_handler, NULL, tcp_exception_handler, (cba_t)conn); g_ptr_array_add(net->peers, conn); dump_all_sources(ctest); dbg("tcp_accept_handler: net_send_id() sock=%d\n", conn->sock); net_send_id(); net_send_ac(); net_send_operator(); net_send_read_write_bands(); } void tcp_connected_handler(cba_t cba){ struct conn *conn; int ret, err; socklen_t optlen; conn = (struct conn *)GETCBA(cba, conn); /* dbg("tcp_connected_handler %s:%d\n", inet_ntoa(conn->sin.sin_addr), * ntohs(conn->sin.sin_port));*/ optlen = sizeof(err); ret = getsockopt(conn->sock, SOL_SOCKET, SO_ERROR, (void *)&err, &optlen); /* dbg(" getsockopt(SO_ERROR) returns %d err is %d\n", ret, err); */ if (ret!=0){ tcp_disconnect(conn); return; } if (err!=0){ tcp_disconnect(conn); return; } log_addf(VTEXT(T_CONNECTED_SD), inet_ntoa(conn->sin.sin_addr), ntohs(conn->sin.sin_port)); dump_all_sources(ctest); tcp_set_state(conn, NS_CONNECTED); set_handlers(conn->sock, tcp_read_handler, NULL, tcp_exception_handler, (cba_t)conn); dbg("tcp_connected_handler: net_send_id() sock=%d\n", conn->sock); net_send_id(); net_send_ac(); net_send_operator(); net_send_read_write_bands(); } void tcp_read_handler(cba_t cba){ struct conn *conn; char s[1030]; int ret,err; gchar *d, *line; char errstr[1030]; char ss[60]; int i; conn = (struct conn *)GETCBA(cba, conn); /* dbg("tcp_read_handler %s:%d\n", inet_ntoa(conn->sin.sin_addr), * ntohs(conn->sin.sin_port));*/ // dbg("entry tcp_read_handler(%d)\n", conn->sock); ret=read(conn->sock, s, 1024); err=sock_errno; /* dbg(" read(%d) returns %d (%d) '%s'\n", conn->sock, ret, err, strerror_r(err, errstr, sizeof(errstr)));*/ if (ret<=0) { trace(cfg->trace_sock, " !!! read ERROR sock=%d err=%d %s\n", conn->sock, err, sock_strerror_r(err, errstr, sizeof(errstr))); dbg(" !!! read ERROR sock=%d err=%d %s\n", conn->sock, err, sock_strerror_r(err, errstr, sizeof(errstr))); tcp_disconnect(conn); return; } s[ret]='\0'; safe_strncpy(ss, s, sizeof(ss)); for (i=0;ss[i]!='\0'; i++){ if (!isprint(ss[i])) ss[i]='.'; } trace(cfg->trace_recv, "s%d: read '%s' (%d)\n", conn->sock, ss, ret); if (!conn->rdbuf) conn->rdbuf = g_string_sized_new(1024); g_string_append(conn->rdbuf, s); /* na tomhle to pada */ /* strcpy(s, "ID 192.168.1.132:55556\nAC 20060506;OK1KRQ;II. subregionalni zavod 2006;cegk\nLA 192.168.1.68:55555;1146999049;192.168.1.132:55555;1146991645;192.168.1.132:55556;1147001847;192.168.1.111:55555;1146932813;192.168.1.82:55555;1147003677;192.168.1.42:55555;1147002456;\n");*/ /* dbg(" s='%s'\n", s);*/ /* dbg_recv("tcp_read_handler() entry conn->rdbuf=%p '%s'\n", conn->rdbuf, conn->rdbuf->str);*/ while (1){ /* dbg_recv("tcp_read_handler() 1 conn->rdbuf=%p '%s'\n", conn->rdbuf, conn->rdbuf->str);*/ if (conn->sock < 0) break; d=strchr(conn->rdbuf->str, '\n'); if (!d) break; line = g_strndup(conn->rdbuf->str, d - conn->rdbuf->str); /* if (strncmp(line, "KA", 2)!=0 && strncmp(line,"AK", 2)!=0){ dbg("tcp_read_handler line='%s'\n", line); }*/ /* dbg_recv("tcp_read_handler() 2 conn->rdbuf=%p '%s'\n", conn->rdbuf, conn->rdbuf->str);*/ g_string_erase(conn->rdbuf, 0, d - conn->rdbuf->str + 1); /* dbg_recv("tcp_read_handler() 3 conn->rdbuf=%p '%s'\n", conn->rdbuf, conn->rdbuf->str);*/ /* dbg(" line='%s', remains '%s'\n", line, conn->rdbuf->str);*/ if (strlen(line)>0) rel_read(conn, line); g_free(line); } /* dbg_recv("tcp_read_handler() exit conn->rdbuf=%p\n", conn->rdbuf);*/ // dbg("exit tcp_read_handler(%d)\n", conn->sock); } void tcp_write_handler(cba_t cba){ struct conn *conn; int towrite, written, err; char errstr[1030]; conn = (struct conn *)GETCBA(cba, conn); /* dbg("tcp_write_handler %s:%d\n", inet_ntoa(conn->sin.sin_addr), ntohs(conn->sin.sin_port));*/ if (!conn->wrbuf){ set_handlers(conn->sock, tcp_read_handler, NULL, tcp_exception_handler, (cba_t)conn); return; } towrite = strlen(conn->wrbuf->str); written = write(conn->sock, conn->wrbuf->str, towrite); err=sock_errno; trace(cfg->trace_send, "s%d: tcp_write_handler '%s' (%d/%d) %s\n", conn->sock, conn->wrbuf->str, towrite, written,err); /*dbg(" towrite=%d written=%d \n", towrite, written); */ if (written<=0){ trace(cfg->trace_sock, "!!!!! ERROR %s\n", sock_strerror_r(err, errstr, sizeof(errstr))); tcp_disconnect(conn); return; } if (towrite == written){ g_string_free(conn->wrbuf, 1); conn->wrbuf = NULL; set_handlers(conn->sock, tcp_read_handler, NULL, tcp_exception_handler, (cba_t)conn); return; } g_string_erase(conn->wrbuf, 0, written); } void tcp_exception_handler(cba_t cba){ struct conn *conn; conn = (struct conn *)GETCBA(cba, conn); dbg("tcp_exception_handler %s:%d\n", inet_ntoa(conn->sin.sin_addr), ntohs(conn->sin.sin_port)); tcp_disconnect(conn); } /*************************** TIMERS *********************************/ void udp_timer(cba_t cba){ struct net *net; struct sockaddr_in sin; socklen_t socklen; int i; GString *gs; time_t now; net = (struct net *)GETCBA(cba, net); now = time(NULL); if (net->global_expire < now){ /* global expired */ net->global.sin_family = AF_INET; net->global.sin_addr.s_addr = net->my.sin_addr.s_addr; net->global.sin_port = net->my.sin_port; net->global_expire = now + NET_GLOBAL_EXPIRE; trace(cfg->trace_bcast, "expired, i'm new master %s:%d now=%d, expire=%d \n", inet_ntoa(net->global.sin_addr), ntohs(net->global.sin_port), now%1000, net->global_expire%1000); } if (cmp_sin(&net->global, &net->my)==0) { /* sending maximal time */ /* dbg("setting expire to maximal\n");*/ net->global_expire = now + NET_GLOBAL_EXPIRE; } /* dbg("udp_timer()\n"); */ /* 0 1 2 3 4 5 6 */ /* "tucnak;version;myip;myport;masterip;masterport;masterexpire */ gs = g_string_sized_new(100); g_string_sprintfa(gs, "tucnak;%s;", VERSION_STRING); g_string_append(gs, inet_ntoa(net->my.sin_addr)); g_string_append_c(gs,';'); g_string_sprintfa(gs, "%d;", htons(net->my.sin_port)); g_string_sprintfa(gs, "%s;%d;%d", inet_ntoa(net->global.sin_addr), ntohs(net->global.sin_port), (int)net->global_expire); g_string_sprintfa(gs, ";%d", (int)now); /* dbg("snd'%s' now=%d ex=%d\n", gs->str, now%1000, net->global_expire%1000);*/ trace(cfg->trace_bcast, "send: %s\n", gs->str); g_string_append(gs,"\r\n"); for (i=0; imax_addrs; i++){ socklen = sizeof(sin); sendto(net->udpsock, gs->str, strlen(gs->str), 0, net->bcast_addr+i, socklen); } g_string_free(gs, 1); net->udptimer_id = install_timer(net->udptimer_period, udp_timer, (cba_t) net); } void send_ack_timer(cba_t cba){ struct conn *conn; char s[1026]; conn = (struct conn *)GETCBA(cba, conn); /*dbg("send_ack_timer %s:%d\n", inet_ntoa(conn->sin.sin_addr), * ntohs(conn->sin.sin_port));*/ conn->timer = 0; g_snprintf(s, 1024, "KA %d\n", ++conn->relseq); rel_write(conn, s); tcp_set_state(conn, NS_WAIT_ACK); } void kill_conn_timer(cba_t cba){ struct conn *conn; conn = (struct conn *)GETCBA(cba, conn); /* dbg("kill_conn_timer %s:%d\n", inet_ntoa(conn->sin.sin_addr), * ntohs(conn->sin.sin_port));*/ conn->timer = 0; tcp_disconnect(conn); } void remove_conn_timer(cba_t cba){ struct conn *conn, *cx; int i; conn = (struct conn *)GETCBA(cba, conn); /* dbg("remove_conn_timer %s:%d\n", inet_ntoa(conn->sin.sin_addr), * ntohs(conn->sin.sin_port));*/ conn->timer = 0; if (net->master == conn) { free_conn(net->master); g_free(net->master); net->master = NULL; } for (i=net->peers->len-1; i>=0; i--){ cx = (struct conn *) g_ptr_array_index(net->peers, i); if (cx == conn) { g_ptr_array_remove_index(net->peers, i); free_conn(conn); g_free(conn); } } } int conn_prod_state(struct conn *conn){ if (!conn) return 0; if (conn->state == NS_CONNECTED || conn->state == NS_WAIT_ACK ) return 1; return 0; } void tcp_set_state(struct conn *conn, enum net_state state){ /* dbg("tcp_set_state %d -> %d \n", conn->state, state);*/ if (conn->timer) kill_timer(conn->timer); conn->timer = 0; conn->state = state; switch (conn->state){ case NS_INIT: break; case NS_CONNECTING: conn->timer = install_timer(CONNECTION_TIMEOUT, kill_conn_timer, (cba_t)conn); break; case NS_CONNECTED: conn->timer = install_timer(SEND_ACK_TIMEOUT, send_ack_timer, (cba_t)conn); break; case NS_WAIT_ACK: conn->timer = install_timer(ACK_TIMEOUT, kill_conn_timer, (cba_t)conn); break; case NS_DISCONNECTED: conn->timer = install_timer(REMOVE_TIMEOUT, remove_conn_timer, (cba_t)conn); break; case NS_DEAD: break; } } char *tcp_state_s(struct conn *conn){ switch (conn->state){ case NS_INIT: return "INIT"; case NS_CONNECTING: return "CONNECTING"; case NS_CONNECTED: return "CONNECTED"; case NS_WAIT_ACK: return "WAIT_ACK"; case NS_DISCONNECTED: return "DISCONNECTED"; case NS_DEAD: return "DEAD"; } return "???"; } void tcp_connect(struct conn *conn){ int ret; char errstr[1030]; /* dbg("tcp->connect %s:%d\n", inet_ntoa(conn->sin.sin_addr), ntohs(conn->sin.sin_port)); */ conn->sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); dbg("tcp_connect(socket() = %d \n", conn->sock); if (fcntl(conn->sock, F_SETFL, O_NONBLOCK)){ trace(cfg->trace_sock, "Can't set O_NONBLOCK\n"); return; } ret = connect(conn->sock, (struct sockaddr *) &conn->sin, sizeof(struct sockaddr_in)); /* dbg("connect returns %d (%d) '%s'\n", ret, errno, strerror_r(errno));*/ if (ret==0){ set_handlers(conn->sock, tcp_read_handler, NULL, tcp_exception_handler, (cba_t)conn); tcp_set_state(conn, NS_CONNECTED); log_addf(VTEXT(T_CONNECTED_SD), inet_ntoa(conn->sin.sin_addr), ntohs(conn->sin.sin_port)); dump_all_sources(ctest); dbg("tcp_connect: net_send_id() sock=%d\n", conn->sock); net_send_id(); net_send_ac(); net_send_operator(); net_send_read_write_bands(); return; } if (ret<0){ #ifdef WIN32 if (sock_errno == WSAEWOULDBLOCK) #else if (sock_errno==EALREADY || sock_errno==EINPROGRESS) #endif { tcp_set_state(conn, NS_CONNECTING); set_handlers(conn->sock, NULL, tcp_connected_handler, tcp_exception_handler, (cba_t)conn); log_addf(VTEXT(T_CONNECTING_SD), inet_ntoa(conn->sin.sin_addr), ntohs(conn->sin.sin_port)); return; } trace(cfg->trace_sock, "connect error %s\n", sock_strerror_r(sock_errno, errstr, sizeof(errstr))); tcp_disconnect(conn); } } #ifdef LEAK_DEBUG_LIST void debug_tcp_disconnect(char *file, int line, struct conn *conn){ dbg("debug_tcp_disconnect(%s, %d) conn->sock==%d\n", file, line, conn->sock); #else void tcp_disconnect(struct conn *conn){ dbg("tcp_disconnect conn->sock=%d %s:%d\n", conn->sock, inet_ntoa(conn->sin.sin_addr), ntohs(conn->sin.sin_port)); #endif log_addf(VTEXT(T_DISCONNECTED_SD), inet_ntoa(conn->sin.sin_addr), ntohs(conn->sin.sin_port)); tcp_set_state(conn, NS_DISCONNECTED); if (conn->sock <0){ dbg("!!! tcp_disconnect called on conn->sock=%d, ignoring\n", conn->sock); }else{ // dbg("set_handlers(%s, %d)\n", __FILE__, __LINE__); set_handlers(conn->sock, NULL, NULL, NULL, CBA0); } trace(cfg->trace_sock, "s%d: close tcp_disconnect", conn->sock); //dbg("tcp_disconnect(%d)\n", conn->sock); // dbg("tcp_disconnect(%d) @ %s:%d\n", conn->sock, file, line); dump_all_sources(ctest); if (conn->sock >= 0){ closesocket(conn->sock); } conn->sock = -1; if (conn->wrbuf) g_string_free(conn->wrbuf, 1); if (conn->rdbuf) g_string_free(conn->rdbuf, 1); conn->wrbuf = conn->rdbuf = NULL; #ifdef LEAK_DEBUG_LIST dbg("debug_tcp_disconnect return\n"); #else dbg("tcp_disconnect return\n"); #endif } void tcp_kill(struct conn *conn){ /*dbg("tcp->disconnect %s:%d\n", inet_ntoa(conn->sin.sin_addr), * ntohs(conn->sin.sin_port));*/ set_handlers(conn->sock, NULL, NULL, NULL, CBA0); tcp_set_state(conn, NS_DISCONNECTED); trace(cfg->trace_sock, "s%d: close tcp_kill", conn->sock); dump_all_sources(ctest); closesocket(conn->sock); } int cmp_sin(struct sockaddr_in *a, struct sockaddr_in *b){ int sign; sign = ntohl(a->sin_addr.s_addr) - ntohl(b->sin_addr.s_addr); if (sign) return sign; sign = ntohs(a->sin_port) - ntohs(b->sin_port); return sign; } /***************** "RELATION" LAYER ********************************/ void rel_write(struct conn *conn, gchar *s){ int towrite, written,err; GString *oldwrbuf; char errstr[1030]; if (conn->sock < 0) return; /* socket already closed, ignore write request and return to allow free conn */ oldwrbuf=conn->wrbuf; if (!conn->wrbuf) conn->wrbuf = g_string_sized_new(1024); g_string_append(conn->wrbuf, s); if (oldwrbuf){ /* conn->wrbuf!=NULL at start of rel_write means there is unsent data. * It's send in tcp_write_handler */ trace(cfg->trace_send, "s%d: rel_write '%s' appended to wrbuf"); return; } towrite = strlen(conn->wrbuf->str); written = write(conn->sock, conn->wrbuf->str, towrite); err=sock_errno; trace(cfg->trace_send, "s%d: rel_write '%s' (%d/%d/%d)", conn->sock, conn->wrbuf->str, towrite, written,err); if (written<0){ #ifdef WIN32 if (err==WSAEWOULDBLOCK) #else if (err==EWOULDBLOCK) #endif { set_handlers(conn->sock, tcp_read_handler, tcp_write_handler, tcp_exception_handler, (cba_t)conn); return; } trace(cfg->trace_sock, "error writing %s\n", sock_strerror_r(err, errstr, sizeof(errstr))); tcp_disconnect(conn); return; } if (towrite == written){ g_string_free(conn->wrbuf, 1); conn->wrbuf = NULL; return; } g_string_erase(conn->wrbuf, 0, written); set_handlers(conn->sock, tcp_read_handler, tcp_write_handler, tcp_exception_handler, (cba_t)conn); } void rel_write_all(gchar *s){ int i; struct conn *conn; char ss[256]; strncpy(ss, s, 2); ss[2]='\0'; if (net->master && conn_prod_state(net->master)) { /*dbg("rel_write_all('%s') %d(%d)", ss, net->master->sock, tcp_state_s(net->master));*/ rel_write(net->master, s); return; } /*dbg("rel_write_all('%s') ",ss);*/ for (i=0; ipeers->len; i++){ conn = (struct conn *) g_ptr_array_index(net->peers, i); if (conn_prod_state(conn)) { /*dbg("%d(%s) ", conn->sock,tcp_state_s(conn) );*/ rel_write(conn, s); } } /* dbg("\n"); */ } /* writes to all almost conn */ void rel_write_almost_all(struct conn *almost_conn, gchar *s){ int i; struct conn *conn; /* dbg("rel_write_almost_all(%d, '%s')\n", almost_conn->sock, s); */ if (net->master && conn_prod_state(net->master)) { if (net->master == almost_conn) return; /* dbg(" rel_write(%d)\n", net->master->sock);*/ rel_write(net->master, s); return; } for (i=0; ipeers->len; i++){ conn = (struct conn *) g_ptr_array_index(net->peers, i); if (conn == almost_conn) continue; if (conn_prod_state(conn)) { /* dbg(" rel_write(%d)\n", conn->sock); */ rel_write(conn, s); } } } struct conn *find_conn_by_remote_id(gchar *remote_id){ int i; struct conn *conn; for (i=net->peers->len-1;i>=0;i--){ /* backward loop because one ip+port can be here twice (DIST,DIST,DIST,CONN) */ conn=(struct conn *)g_ptr_array_index(net->peers, i); if (!conn->remote_id) continue; if (strcmp(conn->remote_id,remote_id)==0){ return conn; } } return NULL; } int net_route(gchar *s, gchar **items){ struct conn *conn; gchar *c; if (!items[0]) return -1; if (strcmp(net->myid,items[0])==0) return 0; /* packet is for me */ conn = find_conn_by_remote_id(items[0]); if (!conn || !conn_prod_state(conn)) return -1; c=g_strconcat(s,"\n",NULL); /* dbg("routing '%s'\n",c);*/ rel_write(conn, c); g_free(c); return 1; } static struct conn *sconn; /* a little hack with global var :-( */ void rel_read(struct conn *conn, gchar *line){ char s[1026]; gchar **items, *c; // dbg("rel_read(%d) '%s'\n", conn->sock, line); if (strncmp(line, "KA", 2)==0){ /* keepalive */ /* dbg(" recvd KA, sending AK\n");*/ g_snprintf(s, 1024, "AK%s\n", line+2); rel_write(conn, s); return; } if (strncmp(line, "AK", 2)==0){ /* keepalive ack */ /* dbg(" recvd AK, setting NS_CONNECTED\n");*/ /* todo AK number */ tcp_set_state(conn, NS_CONNECTED); return; } /************** app layer ********************/ /* dbg("app_read sock=%d '%s'\n", conn->sock, line);*/ if (strncmp(line, "ID", 2)==0){ /* peers ID */ /* log_addf("%d ID '%s'",conn->sock, line); */ if (strlen(line)<4) return; c = line+3; if (conn->remote_id) g_free(conn->remote_id); conn->remote_id = g_strdup(c); return; } if (strncmp(line, "AC", 2)==0){ /* active contest */ /* log_addf("%d AC '%s'",conn->sock, line); */ if (strlen(line)<4) return; c = line+3; if (conn->remote_ac) g_free(conn->remote_ac); conn->remote_ac = g_strdup(c); if (!ctest) return; net_test_same_contest(conn, c); return; } if (strncmp(line, "CL", 2)==0){ /* close contest */ /* log_addf("%d CL", conn->sock);*/ if (conn->remote_ac) { g_free(conn->remote_ac); conn->remote_ac = NULL; } conn->is_same_ctest = 0; return; } if (strncmp(line, "LA", 2)==0){ /* latest qsos for each source */ int i; GHashTable *remote_latests; if (!conn->is_same_ctest) return; if (strlen(line)<3) return; c = line+3; remote_latests = g_hash_table_new(g_str_hash, g_str_equal); items=g_strsplit(c, ";", 0); for (i=0; items[i]!=NULL && items[i+1]!=NULL; i+=2){ gchar *source, *latest_s; source = items[i]; latest_s = items[i+1]; g_hash_table_insert(remote_latests, g_strdup(source), g_strdup(latest_s)); trace(cfg->trace_sock, " rcvd LA: %s = %d\n", source, latest_s); } g_strfreev(items); /*dbg("LA recvd sock=%d:\n", conn->sock);*/ dbg_str_hash(remote_latests); /* dbg("ctest->bystamp:\n"); dbg_str_hash(ctest->bystamp);*/ sconn = conn; rel_write(conn, "SR\n"); g_hash_table_foreach(ctest->bystamp, compare_remote_with_me, remote_latests); g_index_array_qsort(ctest->allqsos, compare_date_time_qsonrs); rel_write(conn, "ER\n"); g_hash_table_foreach_remove(remote_latests, free_gpointer_item, NULL); g_hash_table_destroy(remote_latests); return; } if (strncmp(line, "QS", 2)==0){ /* qso */ if (!ctest) { trace(cfg->trace_sock, "!!! QS recvd, ctest==NULL!! \n"); return; } if (!conn->is_same_ctest) return; if (strlen(line)<4) return; c = line+3; qso_from_net(conn, c); return; } if (strncmp(line, "SR", 2)==0){ /* start of replication */ if (!conn->is_same_ctest) return; conn->replicating=1; return; } if (strncmp(line, "ER", 2)==0){ /* end of replication */ if (!conn->is_same_ctest) return; conn->replicating=0; recalc_all_stats(ctest); /* include statsfifo */ /*check_autosave();*/ return; } if (strncmp(line, "TA", 2)==0){ /* talk */ gchar *d; /*if (!conn->is_same_ctest) return;*/ if (strlen(line)<4) return; c = line+3; /*trace(cfg->trace_sock, "TA conn=%p\n", conn);*/ sw_talk_read(c); d=g_strconcat("TA ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); return; } if (strncmp(line, "SK", 2)==0){ /* sked */ gchar *d; if (!conn->is_same_ctest) return; if (strlen(line)<4) return; c = line+3; /*dbg("SK conn=%p\n", conn);*/ sw_sked_read(c, 0); d=g_strconcat("SK ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); return; } if (strncmp(line, "DI", 2)==0){ /* peers discovery */ int i; GString *gs; struct conn *tmpconn; /*dbg("DI recvd\n");*/ gs =g_string_sized_new(100); g_string_append(gs,"PE "); g_string_sprintfa(gs, "%s;", net->myid); for (i=0;ipeers->len;i++){ tmpconn = (struct conn *)g_ptr_array_index(net->peers,i); if (!conn_prod_state(tmpconn)) continue; if (!tmpconn->remote_id) return; g_string_sprintfa(gs, "%s;", tmpconn->remote_id); } g_string_sprintfa(gs,"\n"); trace(cfg->trace_sock, "sending '%s'\n", gs->str); rel_write(conn, gs->str); g_string_free(gs,TRUE); return; } if (strncmp(line, "PE", 2)==0){ /* peers reply */ /* TODO security - only if required */ if (strlen(line)<4) return; c = line+3; trace(cfg->trace_sock, "PEers '%s'\n", c); CONDGFREE(net->allpeers); net->allpeers=g_strdup(c); if (!net->peerfunc) return; do_peer_menu((void (*)(cba_t cba)) net->peerfunc); net->peerfunc=NULL; return; } if (strncmp(line, "CR", 2)==0){ /* configuration request */ gchar *d,*cc; GString *gs; char *token_ptr=NULL; int tmpi; if (strlen(line)<4) return; c = line+3; items=g_strsplit(c, ";", 0); if (net_route(line,items)) return; if (!items[0] || !items[1]) return; /* dst,src */ gs=g_string_sized_new(10000); save_rc_string(gs); /* sets this socket temporarily to blocking mode */ fcntl(conn->sock, F_SETFL, 0); tmpi=0; for (cc=strtok_r(gs->str,"\n",&token_ptr); cc!=NULL; cc=strtok_r(NULL,"\n",&token_ptr)){ /* if (tmpi++==4) break; */ /* TODO FIXME */ d=g_strdup_printf("CF %s;%s;%s\n",items[1],items[0],cc); rel_write(conn,d); g_free(d); } d=g_strdup_printf("CF %s;%s;eof\n",items[1],items[0]); rel_write(conn,d); fcntl(conn->sock, F_SETFL, O_NONBLOCK); g_free(d); g_string_free(gs,TRUE); g_strfreev(items); return; } if (strncmp(line, "CF", 2)==0){ /* configuration line */ gchar *d; if (strlen(line)<4) return; c = line+3; items=g_strsplit(c, ";", 2); if (net_route(line,items)) goto x_cf; if (!items[0] || !items[1] || !items[2]) goto x_cf; /* dst,src */ d = strchr(items[2],'#'); if (d) *d='\0'; g_strstrip(items[2]); if (strlen(items[2])==0) goto x_cf; if (strcmp(items[2],"eof")==0){ log_addf(VTEXT(T_LOADED_CFG_SSSS),cfg->pcall, cfg->pwwlo, cfg->padr1,cfg->padr2); goto x_cf; } d = g_strconcat(items[2],"\n",NULL); /* dbg("doing something with '%s'\n",items[2]);*/ read_rc_line(d); g_free(d); x_cf:; g_strfreev(items); return; } if (strncmp(line, "WR", 2)==0){ /* C_W request */ gchar *d,*cc; GString *gs; char *token_ptr=NULL; int tmpi; if (strlen(line)<4) return; c = line+3; items=g_strsplit(c, ";", 0); if (net_route(line,items)) return; if (!items[0] || !items[1]) return; /* dst,src */ gs=g_string_sized_new(10000); save_cw_string(cw,gs); /* sets this socket temporarily to blocking mode */ fcntl(conn->sock, F_SETFL, 0); tmpi=0; for (cc=strtok_r(gs->str,"\n",&token_ptr); cc!=NULL; cc=strtok_r(NULL,"\n",&token_ptr)){ /* if (tmpi++==4) break; */ /* TODO FIXME */ d=g_strdup_printf("CW %s;%s;%s\n",items[1],items[0],cc); rel_write(conn,d); g_free(d); } d=g_strdup_printf("CW %s;%s;eof\n",items[1],items[0]); rel_write(conn,d); fcntl(conn->sock, F_SETFL, O_NONBLOCK); g_free(d); g_string_free(gs,TRUE); g_strfreev(items); return; } if (strncmp(line, "CW", 2)==0){ /* C_W data */ if (strlen(line)<4) return; c = line+3; items=g_strsplit(c, ";", 2); if (net_route(line,items)) goto x_cw; if (!items[0] || !items[1] || !items[2]) goto x_cw; /* dst;src;call loc stamp */ if (strcmp(items[2],"eof")==0){ gchar *s; int ret; log_addf(VTEXT(T_LOADED_CW)); s = g_strconcat(getenv("HOME"), "/tucnak/tucnakcw", NULL); ret=save_cw_into_file(cw, s); if (ret){ errbox(VTEXT(T_CANT_WRITE), ret); }else{ log_addf(VTEXT(T_SAVED_S), s); } g_free(s); goto x_cw; } /* dbg("doing something with '%s'\n",items[2]);*/ load_one_cw(cw,items[2]); x_cw:; g_strfreev(items); return; } if (strncmp(line, "DX", 2)==0){ /* DX spot */ gchar *d; if (strlen(line)<4) return; c = line+3; /*dbg("DX conn=%p\n", conn);*/ dxc_read_spot(c); d=g_strconcat("DX ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); redraw_later(); return; } if (strncmp(line, "RG", 2)==0){ /* QRG for sked */ gchar *d; struct band *b; if (!conn->is_same_ctest) return; if (strlen(line)<4) return; c=line+3; items=g_strsplit(c, ";", 2); if (!items[0] || !items[1]) goto x_rg; b = find_band_by_pband(items[0]); if (!b) { trace(cfg->trace_qsos, "!!! unknown band '%s'", items[0]); goto x_rg; } g_free(b->skedqrg); b->skedqrg = fixsemi(g_strdup(items[1])); b->dirty_save = 1; d=g_strconcat("RG ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); x_rg: g_strfreev(items); return; } if (strncmp(line, "GR", 2)==0){ /* grab band command */ gchar *d; struct band *b; enum ccmd ccmd; if (!conn->is_same_ctest) return; if (strlen(line)<4) return; c=line+3; items=g_strsplit(c, ";", 3); if (!items[0] || !items[1] || !items[2]) goto x_gr; b = find_band_by_pband(items[0]); if (!b) { trace(cfg->trace_qsos, "!!! unknown band '%s'", items[0]); goto x_gr; } ccmd=(enum ccmd)atoi(items[1]); net_grab(b,ccmd,items[2]); d=g_strconcat("GR ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); x_gr: g_strfreev(items); return; } if (strncmp(line, "WC", 2)==0){ /* OBSOLETE working callsign */ return; } if (strncmp(line, "WT", 2)==0){ /* working callsign */ gchar *d; struct band *b; struct spypeer *sp; if (!conn->is_same_ctest) return; if (strlen(line)<4) return; c=line+3; items=g_strsplit(c, ";", 4); if (!items[0] || !items[1] || !items[2] || !items[3]) goto x_wt; b = find_band_by_pband(items[0]); if (!b) { trace(cfg->trace_qsos, "!!! unknown band '%s'", items[0]); goto x_wt; } if (atoi(items[2])==WT_OPERATOR){ if (strcmp(items[1], conn->remote_id)==0){ CONDGFREE(conn->operator_); conn->operator_ = g_strdup(items[3]); } } sp = get_spypeer_by_peerid(ctest->spypeers, items[1], b->bandchar); if (sp) { /* we want spy info from items[1] */ switch(atoi(items[2])){ case WT_CLEAR: clear_spypeer(sp); break; case WT_CALLSIGN: CONDGFREE(sp->callsign); sp->callsign=g_strdup(items[3]); break; case WT_RSTS: CONDGFREE(sp->rsts); sp->rsts=g_strdup(items[3]); break; case WT_RSTR: CONDGFREE(sp->rstr); sp->rstr=g_strdup(items[3]); break; case WT_QSONRS: CONDGFREE(sp->qsonrs); sp->qsonrs=g_strdup(items[3]); break; case WT_QSONRR: CONDGFREE(sp->qsonrr); sp->qsonrr=g_strdup(items[3]); break; case WT_EXC: CONDGFREE(sp->exc); sp->exc=g_strdup(items[3]); break; case WT_LOCATOR: CONDGFREE(sp->locator); sp->locator=g_strdup(items[3]); break; case WT_OPERATOR: CONDGFREE(sp->operator_); sp->operator_=g_strdup(items[3]); break; case WT_REMARK: CONDGFREE(sp->remark); sp->remark=g_strdup(items[3]); break; } } d=g_strconcat("WT ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); redraw_later(); x_wt: g_strfreev(items); return; } if (strncmp(line, "PT", 2)==0){ /* peer TX */ gchar *d; struct band *b; struct spypeer *sp; if (!conn->is_same_ctest) return; if (strlen(line)<4) return; c=line+3; items=g_strsplit(c, ";", 3); if (!items[0] || !items[1] || !items[2]) goto x_pt; b = find_band_by_pband(items[0]); if (!b) { trace(cfg->trace_qsos, "!!! unknown band '%s'", items[0]); goto x_pt; } sp = get_spypeer_by_peerid(ctest->spypeers, items[1], b->bandchar); if (sp) { /* we want spy info from items[1] */ sp->peertx = atoi(items[2]); } d=g_strconcat("PT ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); redraw_later(); x_pt: g_strfreev(items); return; } if (strncmp(line, "WI", 2)==0){ /* working inputline */ gchar *d; struct band *b; struct spypeer *sp; if (!conn->is_same_ctest) return; if (strlen(line)<4) return; c=line+3; items=g_strsplit(c, ";", 3); if (!items[0] || !items[1] || !items[2]) goto x_wi; b = find_band_by_pband(items[0]); if (!b) { trace(cfg->trace_qsos, "!!! unknown band '%s'", items[0]); goto x_wi; } sp = get_spypeer_by_peerid(ctest->spypeers, items[1], b->bandchar); if (sp) { /* we want spy info from items[1] */ CONDGFREE(sp->inputline); sp->inputline = g_strdup(items[2]); redraw_later(); } d=g_strconcat("WI ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); x_wi: g_strfreev(items); return; } if (strncmp(line, "DO", 2)==0){ /* peers discovery with operators*/ int i; GString *gs; struct conn *tmpconn; char *op; /*dbg("DI recvd\n");*/ gs =g_string_sized_new(100); g_string_append(gs,"PO "); /* LOOK ALSO menu.c menu_spy_from_peer */ op="---"; if (ctest && aband && conn->operator_) op=aband->operator_; g_string_sprintfa(gs, "%s;%s;", net->myid,op); for (i=0;ipeers->len;i++){ tmpconn = (struct conn *)g_ptr_array_index(net->peers,i); if (!conn_prod_state(tmpconn)) continue; if (!tmpconn->remote_id) return; op="---"; if (ctest && aband && tmpconn->operator_) op=tmpconn->operator_; g_string_sprintfa(gs, "%s;%s;", tmpconn->remote_id, op); } g_string_sprintfa(gs,"\n"); trace(cfg->trace_sock, "sending '%s'\n", gs->str); rel_write(conn, gs->str); g_string_free(gs,TRUE); return; } if (strncmp(line, "PO", 2)==0){ /* peers reply with operators*/ /* TODO security - only if required */ if (strlen(line)<4) return; c = line+3; trace(cfg->trace_sock, "PEers&OPs '%s'\n", c); CONDGFREE(net->allpeers); net->allpeers=g_strdup(c); if (!net->peerfunc) return; do_peer_operators_menu((void (*)(cba_t cba)) net->peerfunc); net->peerfunc=NULL; return; } if (strncmp(line, "DR", 2)==0){ /* peers discovery with operators and read-write bands */ int i, j; GString *gs; struct conn *tmpconn; char *op; struct band *b; char rwbands[40], *rwb; /*dbg("DI recvd\n");*/ gs =g_string_sized_new(100); g_string_append(gs,"PR "); /* LOOK ALSO menu.c menu_load_from_peer */ op="---"; if (ctest && aband && conn->operator_) op=aband->operator_; strcpy(rwbands, ""); j=0; if (ctest){ for (i=0; ibands->len; i++){ b=(struct band *) g_ptr_array_index(ctest->bands, i); if (b->readonly) continue; rwbands[j++]=toupper(b->bandchar); } rwbands[j]='\0'; } g_string_sprintfa(gs, "%s;%s;%s;", net->myid,op, rwbands); for (i=0;ipeers->len;i++){ tmpconn = (struct conn *)g_ptr_array_index(net->peers,i); if (!conn_prod_state(tmpconn)) continue; if (!tmpconn->remote_id) return; op="---"; if (ctest && aband && tmpconn->operator_) op=tmpconn->operator_; rwb=""; if (tmpconn->rwbands) rwb=tmpconn->rwbands; g_string_sprintfa(gs, "%s;%s;%s;", tmpconn->remote_id, op, rwb); } g_string_sprintfa(gs,"\n"); trace(cfg->trace_sock, "sending '%s'\n", gs->str); rel_write(conn, gs->str); g_string_free(gs,TRUE); return; } if (strncmp(line, "PR", 2)==0){ /* peers reply with operators and read-write bands */ /* TODO security - only if required */ if (strlen(line)<4) return; c = line+3; trace(cfg->trace_sock, "PEers&OPs&Bands '%s'\n", c); CONDGFREE(net->rwbpeers); net->rwbpeers=g_strdup(c); if (!net->peerfunc) return; do_spy_peer_menu((void (*)(cba_t cba)) net->peerfunc); net->peerfunc=NULL; return; } if (strncmp(line, "DC", 2)==0){ /* peers discovery with contest properties*/ int i; GString *gs; struct conn *tmpconn; char *cdate, *pcall, *tname; struct zstring *zs; dbg("DC recvd\n"); gs =g_string_sized_new(100); g_string_append(gs,"PC "); /* LOOK ALSO menu.c menu_contest_config_from_peer */ if (ctest) g_string_sprintfa(gs,"%s;%s %s %s;", net->myid, ctest->cdate, ctest->pcall, ctest->tname); for (i=0;ipeers->len;i++){ tmpconn = (struct conn *)g_ptr_array_index(net->peers,i); if (!conn_prod_state(tmpconn)) continue; if (!tmpconn->remote_ac) continue; zs = zstrdup(tmpconn->remote_ac); cdate = ztokenize(zs, 1); pcall = ztokenize(zs, 0); tname = ztokenize(zs, 0); if (tname && *tname) g_string_sprintfa(gs,"%s;%s %s %s;", tmpconn->remote_id, cdate, pcall, tname); zfree(zs); } g_string_sprintfa(gs,"\n"); dbg("sending '%s'\n", gs->str); rel_write(conn, gs->str); g_string_free(gs,TRUE); return; } if (strncmp(line, "PC", 2)==0){ /* peers reply with contest properties */ /* TODO security - only if required */ if (strlen(line)<4) return; c = line+3; dbg("PC recvd '%s' func=%p\n", c, net->peerfunc); CONDGFREE(net->allpeers); net->allpeers=g_strdup(c); if (!net->peerfunc) return; do_peer_operators_menu((void (*)(cba_t cba)) net->peerfunc); net->peerfunc=NULL; return; } if (strncmp(line, "RT", 2)==0){ /* request all tmpqso states*/ gchar *d; struct band *b; if (!conn->is_same_ctest) return; if (strlen(line)<4) return; c=line+3; items=g_strsplit(c, ";", 2); if (!items[0] || !items[1]) goto x_rt; b = find_band_by_pband(items[0]); if (!b) { trace(cfg->trace_qsos, "!!! unknown band '%s'", items[0]); goto x_rt; } if (strcmp(items[1], net->myid)==0) { wkd_tmpqso(b, WT_CALLSIGN, b->tmpqsos[0].callsign); wkd_tmpqso(b, WT_RSTS, b->tmpqsos[0].rsts); wkd_tmpqso(b, WT_RSTR, b->tmpqsos[0].rstr); wkd_tmpqso(b, WT_QSONRS, b->tmpqsos[0].qsonrs); wkd_tmpqso(b, WT_QSONRR, b->tmpqsos[0].qsonrr); wkd_tmpqso(b, WT_EXC, b->tmpqsos[0].exc); wkd_tmpqso(b, WT_LOCATOR, b->tmpqsos[0].locator); wkd_tmpqso(b, WT_REMARK, b->tmpqsos[0].remark); wkd_tmpqso(b, WT_OPERATOR, b->operator_); peer_tx(b, gses->last_cq_timer_id>0?2:gses->tx); send_inputline(b); goto x_rt; /* noone has same myid, don't need to route */ } d=g_strconcat("RT ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); x_rt: g_strfreev(items); return; } if (strncmp(line, "OP", 2)==0){ /* operator */ gchar *d; if (strlen(line)<4) return; c=line+3; CONDGFREE(conn->operator_); conn->operator_=g_strdup(c); d=g_strconcat("OP ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); } if (strncmp(line, "RW", 2)==0){ /* read-write bands */ gchar *d; if (strlen(line)<4) return; c=line+3; CONDGFREE(conn->rwbands); conn->rwbands=g_strdup(c); d=g_strconcat("RW ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); } if (strncmp(line, "BA", 2)==0){ /* contest band settings */ struct zstring *zs; struct band *b; char *c; if (strlen(line)<4) return; zs = zstrdup(line+3); dbg("zs->str='%s'\n", zs->str); dbg("ztokens=%d\n", ztokens(zs)); if (ztokens(zs)<10){ dbg("bad format '%s'\n", line+3); return; } c = ztokenize(zs, 1); b = find_band_by_pband(c); if (!b){ dbg("Unknown band '%s'\n", c); zfree(zs); return; } c = ztokenize(zs, 0); b->psect = atoi(c); CONDGFREE(b->stxeq); b->stxeq = g_strdup(ztokenize(zs, 0)); CONDGFREE(b->spowe); b->spowe = g_strdup(ztokenize(zs, 0)); CONDGFREE(b->srxeq); b->srxeq = g_strdup(ztokenize(zs, 0)); CONDGFREE(b->sante); b->sante = g_strdup(ztokenize(zs, 0)); CONDGFREE(b->santh); b->santh = g_strdup(ztokenize(zs, 0)); CONDGFREE(b->mope1); b->mope1 = g_strdup(ztokenize(zs, 0)); CONDGFREE(b->mope2); b->mope2 = g_strdup(ztokenize(zs, 0)); CONDGFREE(b->remarks); b->remarks = g_strdup(ztokenize(zs, 0)); zfree(zs); b->dirty_save = 1; check_autosave(); } if (strncmp(line, "RS", 2)==0){ /* rotar set */ gchar *d; struct zstring *zs; gchar *netid, *rotstr, *qtf, *elev; dbg("line='%s'\n", line); if (strlen(line)<4) return; c=line+3; if (!net->myid) return; zs = zstrdup(c); netid = ztokenize(zs, 1); if (!netid) goto x_rs; rotstr = ztokenize(zs, 0); if (!rotstr) goto x_rs; qtf = ztokenize(zs, 0); if (!qtf) goto x_rs; elev = ztokenize(zs, 0); if (!elev) goto x_rs; if (strcmp(netid, net->myid)==0){ // my rotar struct rotar *rot; rot = get_rotar_by_rotstr(rotstr); if (!rot) goto x_rs; dbg("rotstr='%s' rotchar=%c\n",rotstr, rot->rotchar); rot_seek(rot, atoi(qtf)); } d=g_strconcat("RS ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); x_rs:; zfree(zs); } if (strncmp(line, "RU", 2)==0){ /* rotar update */ gchar *d; dbg("line='%s'\n", line); if (strlen(line)<4) return; c=line+3; rotar_remote_update(c); d=g_strconcat("RU ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); } if (strncmp(line, "RC", 2)==0){ /* request of contest */ gchar *d; GString *gs; struct zstring *zs, *zs2; char *bs[26+1]; int i; if (strlen(line)<4) return; c = line+3; items=g_strsplit(c, ";", 0); if (net_route(line,items)) return; if (!items[0] || !items[1]) return; /* dst,src */ if (!ctest) return; for (i=0; ibands->len; i++){ struct band *b; if (i > 26) return; b = (struct band*)g_ptr_array_index(ctest->bands, i); zs = band_format(b); bs[i] = g_strdup(zs->str); zfree(zs); } bs[i] = NULL; zs = contest_format(ctest); zs2 = zconcatesc(zs->str, bs[0], bs[1], bs[2], bs[3], bs[4], bs[5], bs[6], bs[7], bs[8], bs[9], bs[10], bs[11], bs[12], bs[13], bs[14], bs[15], bs[16], bs[17], bs[18], bs[19], bs[20], bs[21], bs[22], bs[23], bs[24], bs[25], NULL); for (i=0; bs[i]!=NULL; i++) g_free(bs[i]); zfree(zs); gs=g_string_sized_new(10000); d=g_strdup_printf("SC %s\n",zs2->str); zfree(zs2); rel_write(conn,d); g_free(d); g_string_free(gs,TRUE); g_strfreev(items); return; } if (strncmp(line, "SC", 2)==0){ /* configuration line */ struct zstring *zs2; if (ctest) return; // contest already opened if (strlen(line)<4) return; c = line+3; // dbg("recvd SC %s\n", c); zs2 = zstrdup(c); init_ctest2(0, 1, zs2); zfree(zs2); #if 0 items=g_strsplit(c, ";", 2); if (net_route(line,items)) goto x_cf; if (!items[0] || !items[1] || !items[2]) goto x_cf; /* dst,src */ d = strchr(items[2],'#'); if (d) *d='\0'; g_strstrip(items[2]); if (strlen(items[2])==0) goto x_cf; if (strcmp(items[2],"eof")==0){ log_addf(VTEXT(T_LOADED_CFG_SSSS),cfg->pcall, cfg->pwwlo, cfg->padr1,cfg->padr2); goto x_cf; } d = g_strconcat(items[2],"\n",NULL); /* dbg("doing something with '%s'\n",items[2]);*/ read_rc_line(d); g_free(d); x_cf:; g_strfreev(items); #endif return; } } gchar *qso_to_string(struct qso *q){ gchar *c; c = g_strdup_printf("QS %s;%s;%s;%s;" "%d;%s;%s;%s;" "%s;%s;%s;%s;" "%s;%d;%s;%s;" "%d;%s;%1.0f\n", q->band->pband, q->date_str, q->time_str, q->error?"ERROR":q->callsign, q->mode, C0(q->rsts), C0(q->qsonrs), C0(q->rstr), C0(q->qsonrr), C0(q->exc), C0(q->locator), q->source, q->operator_, (int)q->stamp, q->callsign, "", q->ser_id, fixsemi(C0(q->remark)), q->qrg); return c; } void compare_remote_with_me(gpointer key, gpointer value, gpointer data){ gchar *source, *rem_latest_str; GIndexArray *ia; GHashTable *remote_latests; struct qso dummyq, *pdq=&dummyq, *q; int i; gchar *c; gint first_qso; source = (gchar*) key; ia = (GIndexArray *) value; remote_latests = (GHashTable *)data; /*dbg("nsource=%s, ia->len=%d\n", source, ia->len);*/ rem_latest_str = (gchar *) g_hash_table_lookup(remote_latests, source); if (rem_latest_str){ /* dbg("remote has some qso from this source\n");*/ memset(&dummyq, 0, sizeof(dummyq)); dummyq.stamp = atoi(rem_latest_str); first_qso = g_index_array_bsearch_index(ia, &pdq, compare_stamp); if (first_qso<0) { /* remote's last qso not found in my qsos */ /*dbg("remote's last qso not found between my qsos");*/ q = (struct qso *) g_index_array_index(ia, ia->len-1); /* my last qso (ia->len!=0) */ if (compare_stamp(&q, &pdq)<0){ trace(cfg->trace_qsos, " %s: remote has newer qso than me",source); }else{ trace(cfg->trace_qsos, " %s: ooops remote's last not found but is older!",source); first_qso = 0; /* Ooops! remote's last qso is missing */ } } /* dbg("nsource=%s, first_qso=%d ia->len=%d\n", source, first_qso, ia->len);*/ /* there can be some qsos with the same stamp before */ /* these must be replicated too */ /*dbg("first_qso(1)=%d\n", first_qso);*/ while(first_qso>0){ q = (struct qso *) g_index_array_index(ia, first_qso-1); if (compare_stamp(&q, &pdq)!=0) break; first_qso--; } }else{ /* remote has no qso from this source */ trace(cfg->trace_qsos, " %s: remote has no qso\n", source); first_qso = 0; } dbg("replicating sock=%d source=%22s ser_id %d...%d \n", sconn->sock, source, first_qso, ia->len-1); for (i=first_qso; ilen; i++){ q = (struct qso *) g_index_array_index(ia, i); if (!q) continue; c = qso_to_string(q); /* dbg("replicating %s %s %d %s/%d\n",q->callsign, q->qsonrs, q->stamp, source,q->ser_id);*/ rel_write(sconn, c); if (strlen(c)>0 && c[strlen(c)-1]=='\n') c[strlen(c)]='\0'; dump_qso(q,"replicating2\n"); g_free(c); } trace(cfg->trace_qsos, "----end of replications\n"); } void qso_from_net(struct conn *conn, gchar *str){ int i; gchar **items; struct band *b; struct qso *lastqso, *eq, *q; gint last_qsonr, mode, qsonr, stamp, ser_id; gchar *date_str, *time_str, *callsign_or_error, *rsts, *qsonrs; gchar *rstr, *qsonrr, *exc, *locator, *source, *operator_, *callsign, *remark; int found,sortit; int same_km=0; double qrg = 0.0; items=g_strsplit(str, ";", 0); for (i=0;i<=16;i++) if (items[i]==NULL) {g_strfreev(items);return;} date_str=items[1]; time_str=items[2]; callsign_or_error=items[3]; mode=atoi(items[4]); rsts=items[5]; qsonrs=items[6]; rstr=items[7]; qsonrr=items[8]; exc=items[9]; locator=items[10]; source=items[11]; operator_=items[12]; stamp=atoi(items[13]); callsign=items[14]; ser_id=atoi(items[16]); if (!items[17]){ remark=""; }else{ remark=items[17]; if (items[18]){ qrg = atof(items[18]); } } /* dbg("qso_from_net '%s'\n", str);*/ /*dbg("qso_from_net sock=%d %d %s %-10s %s | ", */ /*conn->sock, stamp, qsonrs, callsign, source);*/ trace(cfg->trace_qsos, "\n----qso_from_net: '%s'", str); b = find_band_by_pband(items[0]); if (!b) { trace(cfg->trace_qsos, "!!! unknown band '%s'", items[0]); goto x; } trace(cfg->trace_qsos, "from %s '%s'\n",conn->remote_id, str); qsonr = atoi(qsonrs); q = get_qso_by_id(b, source, ser_id); if (q) { dbg(" ID ");trace(cfg->trace_qsos, " found by ID (%s:%d)", source, ser_id);dump_qso(q,"id");} if (!q && ctest->qsoused>0 && !ctest->qsoglob){ q = get_qso_by_qsonr(b, qsonr); if (q) { trace(cfg->trace_qsos, " found by QSO NR");dump_qso(q,"nr");} } found=1; if (!q) { found=0; trace(cfg->trace_qsos, " QSO not found, creating new"); if (ctest->qsoused>0 && !ctest->qsoglob){ /* fill with errors */ lastqso = get_qso(b, b->qsos->len-1); /* -1 is correct */ if (lastqso){ last_qsonr = atoi(lastqso->qsonrs); dump_qso(lastqso,"lastqso"); }else last_qsonr = 0; if (last_qsonr+1 != qsonr) trace(cfg->trace_qsos, " fill with ERRORS QSONRs <%d..%d)\n", last_qsonr+1, qsonr); for (i=last_qsonr+1; isource = g_strdup("neterr"); /* ignored by add_qso_to_index */ eq->operator_ = g_strdup("net"); eq->date_str = g_strdup(""); eq->time_str = g_strdup(""); eq->callsign = g_strdup("ERROR"); eq->rsts = g_strdup(""); eq->rstr = g_strdup(""); eq->qsonrs = g_strdup_printf("%03d", i); eq->qsonrr = g_strdup(""); eq->exc = g_strdup(""); eq->locator = g_strdup(""); eq->remark = g_strdup(""); eq->qrg = 0.0; eq->error = 1; add_qso(b, eq); update_stats(b, b->stats, eq); recalc_allb_stats(); minute_stats(b); dump_qso(eq, "error"); } if (!some_replicating(net)) check_autosave(); } q = g_new0(struct qso, 1); /* dbg("N ");*/ }else{ trace(cfg->trace_qsos, " updating existing qso"); dump_qso(q,"updating"); } /* dbg("F%d S%d ", found, stamp-q->stamp);*/ if (stamp < q->stamp) { /* dbg("stamp < q->stamp\n");*/ goto add; } sortit=stamp!=q->stamp; q->band = b; STORE_STR (q,date_str); STORE_STR (q,time_str); if (q->locator){ same_km=!strcasecmp(q->locator, locator); }else{ same_km=2; /*new qso or contest without locator*/ } if (strcasecmp(callsign_or_error, "ERROR")==0){ if (!q->error) same_km=0; q->error = 1; }else{ if (q->error) same_km=0; q->error=0; } STORE_INT (q,mode); STORE_STR (q,rsts); STORE_STR (q,qsonrs); STORE_STR (q,rstr); STORE_STR (q,qsonrr); STORE_STR (q,exc); STORE_STR_UC(q,locator); STORE_STR (q,remark); fixsemi(q->remark); STORE_INT (q,ser_id); compute_qrbqtf(q); if (q && q->source && strcmp(q->source,"neterr")==0){ /* spojeni bylo predtim sitova chyba, musime prepsat zdroj */ STORE_STR(q,source); add_qso_to_index(q,0); if (!q->error) invalidate_tmpqso(b, q); sortit=1; }else{ /* updatuje se existujici qso */ dbg("--------- found=%d\n", found); /* if (!found) STORE_STR(q,source); */ if (q && q->source && strcmp(source, q->source)!=0){ dbg("--------- bude se prepisovat source %s -> %s\n", q->source, source); dump_all_sources(ctest); dbg("---before remove_qso_from_index\n"); dump_all_sources(ctest); remove_qso_from_index(q); dbg("---after remove_qso_from_index\n"); dump_all_sources(ctest); STORE_STR(q, source); dbg("---before add_qso_to_index\n"); dump_all_sources(ctest); add_qso_to_index(q, 1); dbg("---after add--\n"); dump_all_sources(ctest); }else{ STORE_STR(q, source); } } STORE_STR_UC(q,operator_); STORE_INT (q,stamp); STORE_STR_UC(q,callsign); /* items[15] unused (century) */ STORE_INT(q, qrg); /* qrg is double but macro is the same */ if (sortit) { g_hash_table_foreach(ctest->bystamp, foreach_source_qsort_by_stamp, NULL); g_index_array_qsort(ctest->allqsos, compare_date_time_qsonrs); } /*update_stats(b->stats, b, q);*/ write_qso_to_swap(b, q); if (!gses->redraw_timer_id) gses->redraw_timer_id = install_timer(DELAY_AFTER_REPLICATION, net_timer_redraw, CBA0); add:; dirty_band(b); if (!found){ /* dbg("adding\n");*/ add_qso(b, q); if (!q->error) invalidate_tmpqso(b, q); update_stats(b, b->stats, q); recalc_allb_stats(); minute_stats(b); #ifdef HAVE_SDL if (b==aband) map_add_qso(q); /*plot new QSO only if it is on active band*/ #endif }else{ #ifdef HAVE_SDL if (!same_km) map_clear_qso(q); #endif /* dbg("dont adding\n");*/ } replicate_qso(conn, q); if (!some_replicating(net)) check_autosave(); dump_qso(q,"after"); x:; /* only unknown band */ g_strfreev(items); trace(cfg->trace_qsos, "\n"); } /*****************************************************************/ void net_send_id(){ gchar *c; c = g_strdup_printf("ID %s:%d\n", inet_ntoa(net->my.sin_addr), ntohs(net->my.sin_port)); rel_write_all(c); g_free(c); } void net_send_ac(){ gchar *c; int i,j; struct conn *conn; char qrvbands[50]; if (!ctest) return; for (i=j=0;ibands->len;i++){ struct band *b; b=(struct band *)g_ptr_array_index(ctest->bands, i); qrvbands[j++]=b->bandchar; } qrvbands[j]='\0'; c = g_strdup_printf("AC %s;%s;%s;%s\n", ctest->cdate?ctest->cdate:"", ctest->pcall?ctest->pcall:"", ctest->tname?ctest->tname:"", qrvbands); rel_write_all(c); g_free(c); if (net->master){ net_test_same_contest(net->master, net->master->remote_ac); return; } for (i=0; ipeers->len; i++){ conn = (struct conn *) g_ptr_array_index(net->peers, i); net_test_same_contest(conn, conn->remote_ac); } } void net_send_operator(void){ int i; if (!ctest) { if (cfg->operator_ && *cfg->operator_) { gchar *c; c=g_strdup_printf("OP %s\n", cfg->operator_); rel_write_all(c); g_free(c); } return; } for (i=0;ibands->len;i++){ struct band *b; b=(struct band *)g_ptr_array_index(ctest->bands, i); wkd_tmpqso(b, WT_OPERATOR, b->operator_); } } void net_send_read_write_bands(void){ int i, j; char rwbands[40]; gchar *c; strcpy(rwbands, ""); j=0; if (ctest){ for (i=0;ibands->len;i++){ struct band *b; b=(struct band *)g_ptr_array_index(ctest->bands, i); if (b->readonly) continue; rwbands[j++]=toupper(b->bandchar); } rwbands[j]='\0'; } c=g_strdup_printf("RW %s\n", rwbands); rel_write_all(c); g_free(c); } void net_test_same_contest(struct conn *conn, gchar *ac_text){ gchar **items; gchar *cdate, *pcall, *tname, *qrvb; int i,j; char qrvbands[50]; /* log_addf("%d test_same", conn->sock);*/ if (!ctest || !ac_text) return; if (!conn_prod_state(conn)) return; for (i=j=0;ibands->len;i++){ struct band *b; b=(struct band *)g_ptr_array_index(ctest->bands, i); qrvbands[j++]=b->bandchar; } qrvbands[j]='\0'; items=g_strsplit(ac_text, ";", 0); for (i=0;i<4;i++) { if (items[i]==NULL) { log_adds("Contest is not the same: FORMAT of AC frame"); g_strfreev(items); return; } } cdate = items[0]; pcall = items[1]; tname = items[2]; qrvb = items[3]; if (strncmp(cdate, ctest->cdate, 8)==0 && strcasecmp(pcall, ctest->pcall)==0 && strcasecmp(tname, ctest->tname)==0 && strcasecmp(qrvb, qrvbands)==0){ gchar *latests_str; /*dbg(" To je on!! Meho srdce sampion!! sock=%d\n", conn->sock);*/ latests_str = get_latests_str(); rel_write(conn, latests_str); g_free(latests_str); //log_addf("Contest is the same"); conn->is_same_ctest = 1; }else{ /*GString *gs; gs=g_string_new("Contest is not the same: "); if (strncmp(cdate, ctest->cdate, 8)) g_string_sprintfa(gs, "DATE(%s,%s) ", cdate, ctest->cdate); if (strcasecmp(pcall, ctest->pcall)) g_string_sprintfa(gs, "CALL(%s,%s) ", pcall, ctest->pcall); if (strcasecmp(tname, ctest->tname)) g_string_sprintfa(gs, "CONTEST(%s,%s) ", tname, ctest->tname); if (strcasecmp(qrvb, qrvbands)) g_string_sprintfa(gs, "BANDS(%s,%s) ", qrvb, qrvbands); log_addf(gs->str); g_string_free(gs, 1);*/ conn->is_same_ctest = 0; } g_strfreev(items); } void net_timer_redraw(cba_t cba){ struct band *b; int i; if (ctest && !ctest->qsoglob){ for (i=0; ibands->len; i++){ b = g_ptr_array_index(ctest->bands, i); recalc_stats(b); recalc_worked_skeds(b); if (ctest->qsoused && b->qsos->len+1 != atoi(b->tmpqsos[0].qsonrs)){ g_free(b->tmpqsos[0].qsonrs); b->tmpqsos[0].qsonrs = g_strdup_printf("%03d", b->qsos->len+1); wkd_tmpqso(b, WT_QSONRS, b->tmpqsos[0].qsonrs); } } } redraw_later(); gses->redraw_timer_id = 0; } void replicate_qso(struct conn *sourceconn, struct qso *q){ gchar *c; int i; struct conn *conn; c = qso_to_string(q); trace(cfg->trace_qsos, "replicating1: %s(%s:%d) band=%c", q->callsign, q->source, q->ser_id, q->band->bandchar); dump_qso(q,"replicating1"); if (net->master && conn_prod_state(net->master) && (sourceconn==NULL || sourceconn->sock!=net->master->sock) ){ /*dbg("replicating mast=%d %d %s %s\n", net->master->sock, q->stamp, q->qsonrs, q->callsign);*/ rel_write(net->master, c); } for (i=0; ipeers->len; i++){ conn = g_ptr_array_index(net->peers, i); if (conn_prod_state(conn) && (sourceconn==NULL || sourceconn->sock!=conn->sock)) { /* dbg("replicating sock=%d %d %s %s\n", conn->sock, q->stamp, q->qsonrs, q->callsign);*/ rel_write(conn, c); } } g_free(c); } gchar *get_timer_str(struct conn *conn){ static char s[100]; ttime interval; strcpy(s,""); if (!conn) return s; interval=get_timer_time(conn->timer); interval/=1000; sprintf(s, "%4d", (int)interval); return s; } void send_config_request(int no){ char *peerid,*c; struct conn *gw; gchar **items; int i; /*ndbg("send_config_request '%d'\n",no);*/ items = g_strsplit(net->allpeers,";",0); for (i=0; items[i]!=NULL;i++){ if (i==no) goto found; } g_strfreev(items); return; found: peerid=items[i]; if (cmp_sin(&net->global, &net->my)==0) { /* i'm master */ gw=find_conn_by_remote_id(peerid); if (!gw) { log_addf(VTEXT(T_PEER_NOT_FOUND), peerid); goto x; } }else{ gw=net->master; } if (!conn_prod_state(gw)) goto x; /* gw - connection to requested peer/gateway to peer */ c=g_strdup_printf("CR %s;%s\n",peerid,net->myid); rel_write(gw,c); g_free(c); x:; g_strfreev(items); } void send_cwdb_request(int no){ char *peerid,*c; struct conn *gw; gchar **items; int i; /*dbg("send_cwdb_request '%d'\n",no);*/ items = g_strsplit(net->allpeers,";",0); for (i=0; items[i]!=NULL;i++){ if (i==no) goto found; } g_strfreev(items); return; found: peerid=items[i]; if (cmp_sin(&net->global, &net->my)==0) { /* i'm master */ gw=find_conn_by_remote_id(peerid); if (!gw) { log_addf(VTEXT(T_PEER_NOT_FOUND), peerid); goto x; } }else{ gw=net->master; } if (!conn_prod_state(gw)) goto x; /* gw - connection to requested peer/gateway to peer */ c=g_strdup_printf("WR %s;%s\n",peerid,net->myid); rel_write(gw,c); g_free(c); x:; g_strfreev(items); } void send_contest_config_request(int no){ char *peerid,*c; struct conn *gw; gchar **items; int i; dbg("send_contest_config_request(%d)\n", no); items = g_strsplit(net->allpeers,";",0); for (i=0; items[i]!=NULL;i++){ if (i==no) goto found; } g_strfreev(items); return; found: peerid=items[i]; if (cmp_sin(&net->global, &net->my)==0) { /* i'm master */ gw=find_conn_by_remote_id(peerid); if (!gw) { log_addf(VTEXT(T_PEER_NOT_FOUND), peerid); goto x; } }else{ gw=net->master; } if (!conn_prod_state(gw)) goto x; /* gw - connection to requested peer/gateway to peer */ c=g_strdup_printf("RC %s;%s\n",peerid,net->myid); rel_write(gw,c); g_free(c); x:; g_strfreev(items); } int some_replicating(struct net *net){ int i; struct conn *conn; if (net->master && conn_prod_state(net->master) && net->master->replicating) return 1; for (i=0;ipeers->len;i++){ conn = (struct conn *) g_index_array_index(net->peers, i); if (!conn_prod_state(conn)) continue; if (conn->replicating) return 1; } return 0; } void iface_info(void){ int i, mi; struct iface_struct ifaces[MAX_INTERFACES]; printf("\n interfaces info:\n"); mi = get_interfaces(ifaces, MAX_INTERFACES); /* network byteorder */ for (i=0;i This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #define RC_USER "/tucnak/tucnakrc" #define RC_LOCAL "/tucnak/tucnakrc.local" struct config *cfg; int opt_g=0, opt_i=0, opt_m=0, opt_s=0, opt_t=0, debug_keyboard=0; enum { SYMBOL_OBSOLETE = G_TOKEN_LAST + 10000, SYMBOL_MY_FIRST = G_TOKEN_LAST + 1, SYMBOL_PCALL = G_TOKEN_LAST + 1, SYMBOL_PWWLO = G_TOKEN_LAST + 2, SYMBOL_PEXCH = G_TOKEN_LAST + 3, SYMBOL_PADR1 = G_TOKEN_LAST + 4, SYMBOL_PADR2 = G_TOKEN_LAST + 5, SYMBOL_PCLUB = G_TOKEN_LAST + 6, SYMBOL_RNAME = G_TOKEN_LAST + 7, SYMBOL_RCALL = G_TOKEN_LAST + 8, SYMBOL_RADR1 = G_TOKEN_LAST + 9, SYMBOL_RADR2 = G_TOKEN_LAST + 10, SYMBOL_RPOCO = G_TOKEN_LAST + 11, SYMBOL_RCITY = G_TOKEN_LAST + 12, SYMBOL_RCOUN = G_TOKEN_LAST + 13, SYMBOL_RPHON = G_TOKEN_LAST + 14, SYMBOL_RHBBS = G_TOKEN_LAST + 15, SYMBOL_RS = G_TOKEN_LAST + 16, SYMBOL_RST = G_TOKEN_LAST + 17, SYMBOL_QSOP_M = G_TOKEN_LAST + 18, SYMBOL_TOTAL_M = G_TOKEN_LAST + 19, SYMBOL_CQ = G_TOKEN_LAST + 20, SYMBOL_CW_STR = G_TOKEN_LAST + 21, SYMBOL_CW_SPEED = G_TOKEN_LAST + 22, SYMBOL_CW_REPEAT = G_TOKEN_LAST + 23, SYMBOL_CW_TS = G_TOKEN_LAST + 24, SYMBOL_CW_ALLOWUND = G_TOKEN_LAST + 25, SYMBOL_SSB_FILE = G_TOKEN_LAST + 26, SYMBOL_SSB_TS = G_TOKEN_LAST + 27, SYMBOL_SSB_REPEAT = G_TOKEN_LAST + 28, SYMBOL_STARTBAND = G_TOKEN_LAST + 30, SYMBOL_PBAND = G_TOKEN_LAST + 31, SYMBOL_BANDCHAR = G_TOKEN_LAST + 32, SYMBOL_QRV = G_TOKEN_LAST + 33, SYMBOL_READONLY = G_TOKEN_LAST + 34, SYMBOL_PSECT = G_TOKEN_LAST + 35, SYMBOL_STXEQ = G_TOKEN_LAST + 36, SYMBOL_SPOWE = G_TOKEN_LAST + 37, SYMBOL_SRXEQ = G_TOKEN_LAST + 38, SYMBOL_SANTE = G_TOKEN_LAST + 39, SYMBOL_SANTH = G_TOKEN_LAST + 40, SYMBOL_MOPE1 = G_TOKEN_LAST + 41, SYMBOL_MOPE2 = G_TOKEN_LAST + 42, SYMBOL_REMARKS = G_TOKEN_LAST + 43, SYMBOL_OK_SECTION_SINGLE = G_TOKEN_LAST + 44, SYMBOL_OK_SECTION_MULTI = G_TOKEN_LAST + 45, SYMBOL_ADIFBAND = G_TOKEN_LAST + 46, SYMBOL_CBRBAND = G_TOKEN_LAST + 47, SYMBOL_QRG_MIN = G_TOKEN_LAST + 48, SYMBOL_QRG_MAX = G_TOKEN_LAST + 49, SYMBOL_BANDMULTI = G_TOKEN_LAST + 50, SYMBOL_SKEDQRG = G_TOKEN_LAST + 51, SYMBOL_BAND_LO = G_TOKEN_LAST + 52, SYMBOL_BANDSW = G_TOKEN_LAST + 53, SYMBOL_AS_DAQ = G_TOKEN_LAST + 60, SYMBOL_AS_DAM = G_TOKEN_LAST + 61, SYMBOL_AS_DFS = G_TOKEN_LAST + 62, SYMBOL_AS_FAQ = G_TOKEN_LAST + 63, SYMBOL_AS_FAM = G_TOKEN_LAST + 64, SYMBOL_AS_FFS = G_TOKEN_LAST + 65, SYMBOL_AS_FMO = G_TOKEN_LAST + 66, SYMBOL_AS_FPA = G_TOKEN_LAST + 67, SYMBOL_AS_FMC = G_TOKEN_LAST + 68, SYMBOL_IF_IGNORE = G_TOKEN_LAST + 70, SYMBOL_IP_IGNORE = G_TOKEN_LAST + 71, SYMBOL_IP_ANNOUNCE = G_TOKEN_LAST + 72, SYMBOL_TRACE_BCAST = G_TOKEN_LAST + 73, SYMBOL_TRACE_SOCK = G_TOKEN_LAST + 74, SYMBOL_TRACE_RECV = G_TOKEN_LAST + 75, SYMBOL_TRACE_SEND = G_TOKEN_LAST + 76, SYMBOL_TRACE_QSOS = G_TOKEN_LAST + 77, SYMBOL_TRACE_SDEV = G_TOKEN_LAST + 78, SYMBOL_LANGUAGE = G_TOKEN_LAST + 79, SYMBOL_CWDA_TYPE = G_TOKEN_LAST + 80, SYMBOL_CWDA_DEVICE = G_TOKEN_LAST + 81, SYMBOL_CWDA_HOST = G_TOKEN_LAST + 82, SYMBOL_CWDA_UDP = G_TOKEN_LAST + 83, SYMBOL_CWDA_IOPORT = G_TOKEN_LAST + 84, SYMBOL_CWDA_SPEED = G_TOKEN_LAST + 85, SYMBOL_CWDA_WEIGHT = G_TOKEN_LAST + 86, SYMBOL_CWDA_MINWPM = G_TOKEN_LAST + 87, SYMBOL_CWDA_MAXWPM = G_TOKEN_LAST + 88, SYMBOL_CWDA_SPK = G_TOKEN_LAST + 89, SYMBOL_CWDA_LEADIN = G_TOKEN_LAST + 90, SYMBOL_CWDA_VID = G_TOKEN_LAST + 91, SYMBOL_CWDA_PID = G_TOKEN_LAST + 92, SYMBOL_CWDA_AUTGIVE = G_TOKEN_LAST + 93, SYMBOL_WK_WK2 = G_TOKEN_LAST + 94, SYMBOL_WK_USEPOT = G_TOKEN_LAST + 95, SYMBOL_WK_USEBUT = G_TOKEN_LAST + 96, SYMBOL_WK_KEYMODE = G_TOKEN_LAST + 97, SYMBOL_WK_SWAP = G_TOKEN_LAST + 98, SYMBOL_SSBD_TYPE = G_TOKEN_LAST + 100, SYMBOL_SSBD_RECORD = G_TOKEN_LAST + 101, SYMBOL_SSBD_MAXMIN = G_TOKEN_LAST + 102, SYMBOL_SSBD_DISKFREE = G_TOKEN_LAST + 103, SYMBOL_SSBD_FORMAT = G_TOKEN_LAST + 104, SYMBOL_SSBD_CHANNELS = G_TOKEN_LAST + 105, SYMBOL_SSBD_SAMPLERATE = G_TOKEN_LAST + 106, SYMBOL_SSBD_PLEV = G_TOKEN_LAST + 107, SYMBOL_SSBD_RLEV = G_TOKEN_LAST + 108, SYMBOL_SSBD_TEMPLATE = G_TOKEN_LAST + 109, SYMBOL_SSBD_PCM_PLAY = G_TOKEN_LAST + 110, SYMBOL_SSBD_PCM_REC = G_TOKEN_LAST + 111, SYMBOL_SSBD_PERIOD_T = G_TOKEN_LAST + 112, SYMBOL_SSBD_BUFFER_T = G_TOKEN_LAST + 113, SYMBOL_SSBD_ALSA_MIXER = G_TOKEN_LAST + 114, SYMBOL_SSBD_ALSA_SRC = G_TOKEN_LAST + 115, SYMBOL_SSBD_DSP = G_TOKEN_LAST + 116, SYMBOL_SSBD_MAXFRAG = G_TOKEN_LAST + 117, SYMBOL_SSBD_MIXER = G_TOKEN_LAST + 118, SYMBOL_SSBD_OSS_SRC = G_TOKEN_LAST + 119, SYMBOL_SSBD_RECSRC = G_TOKEN_LAST + 120, SYMBOL_SSBD_HOST = G_TOKEN_LAST + 121, SYMBOL_SSBD_UDP = G_TOKEN_LAST + 122, SYMBOL_SSBD_PA_PLAY = G_TOKEN_LAST + 123, SYMBOL_SSBD_PA_REC = G_TOKEN_LAST + 124, /* unused */ SYMBOL_SSBD_PIPE = G_TOKEN_LAST + 125, SYMBOL_SSBD_COMMAND = G_TOKEN_LAST + 126, SYMBOL_TERM = G_TOKEN_LAST + 130, SYMBOL_TERM_MODE = G_TOKEN_LAST + 131, SYMBOL_TERM_M11_HACK = G_TOKEN_LAST + 132, SYMBOL_TERM_RESTRICT_852 = G_TOKEN_LAST + 133, SYMBOL_TERM_BLOCK_CURSOR = G_TOKEN_LAST + 134, SYMBOL_TERM_COL = G_TOKEN_LAST + 135, SYMBOL_TERM_UTF_8_IO = G_TOKEN_LAST + 136, SYMBOL_TERM_CHARSET = G_TOKEN_LAST + 137, SYMBOL_ROTAR = G_TOKEN_LAST + 140, SYMBOL_ROT_DESC = G_TOKEN_LAST + 141, SYMBOL_ROT_TYPE = G_TOKEN_LAST + 142, SYMBOL_ROT_FILENAME = G_TOKEN_LAST + 143, SYMBOL_ROT_HOSTNAME = G_TOKEN_LAST + 144, SYMBOL_ROT_PORT = G_TOKEN_LAST + 145, SYMBOL_ROT_VID = G_TOKEN_LAST + 146, SYMBOL_ROT_PID = G_TOKEN_LAST + 147, SYMBOL_ROT_SERIAL = G_TOKEN_LAST + 148, SYMBOL_ROT_TIMEOUT_MS = G_TOKEN_LAST + 149, SYMBOL_ROT_BEAMWIDTH = G_TOKEN_LAST + 150, SYMBOL_ROT_SADDR = G_TOKEN_LAST + 151, SYMBOL_ROT_MODEL = G_TOKEN_LAST + 152, SYMBOL_ROT_REM_ROTSTR = G_TOKEN_LAST + 153, SYMBOL_SW = G_TOKEN_LAST + 160, SYMBOL_SW_TYPE = G_TOKEN_LAST + 161, SYMBOL_SW_COMMAND = G_TOKEN_LAST + 162, SYMBOL_SW_AUTORUN = G_TOKEN_LAST + 163, SYMBOL_SW_RESPAWN_TIME = G_TOKEN_LAST + 164, SYMBOL_RIG_FILENAME = G_TOKEN_LAST + 170, SYMBOL_RIG_MODEL = G_TOKEN_LAST + 171, SYMBOL_RIG_SPEED = G_TOKEN_LAST + 172, SYMBOL_RIG_CIVADDR = G_TOKEN_LAST + 173, SYMBOL_RIG_LO = G_TOKEN_LAST + 174, SYMBOL_RIG_SSBCW_SHIFT = G_TOKEN_LAST + 175, SYMBOL_RIG_POLL_MS = G_TOKEN_LAST + 176, SYMBOL_RIG_QRG_R2T = G_TOKEN_LAST + 177, SYMBOL_RIG_QRG_T2R = G_TOKEN_LAST + 178, SYMBOL_RIG_MODE_T2R = G_TOKEN_LAST + 179, SYMBOL_RIG_CLR_RIT = G_TOKEN_LAST + 180, SYMBOL_RIG_VERBOSE = G_TOKEN_LAST + 181, SYMBOL_LOGLINES = G_TOKEN_LAST + 190, SYMBOL_SKEDSHIFT = G_TOKEN_LAST + 191, SYMBOL_SKEDCOUNT = G_TOKEN_LAST + 192, SYMBOL_TAKEOFF = G_TOKEN_LAST + 193, SYMBOL_OPERATOR = G_TOKEN_LAST + 194, SYMBOL_GLOBAL_OPERATOR = G_TOKEN_LAST + 195, SYMBOL_GFX_X = G_TOKEN_LAST + 196, SYMBOL_GFX_Y = G_TOKEN_LAST + 197, SYMBOL_FONTHEIGHT = G_TOKEN_LAST + 198, SYMBOL_SLASHKEY = G_TOKEN_LAST + 199, SYMBOL_NTPQ = G_TOKEN_LAST + 200, SYMBOL_DSSAVER = G_TOKEN_LAST + 201, SYMBOL_SPLITHEIGHT = G_TOKEN_LAST + 202, SYMBOL_DXC_HOST = G_TOKEN_LAST + 220, SYMBOL_DXC_PORT = G_TOKEN_LAST + 221, SYMBOL_DXC_USER = G_TOKEN_LAST + 222, SYMBOL_DXC_PASS = G_TOKEN_LAST + 223, SYMBOL_KST_USER = G_TOKEN_LAST + 224, SYMBOL_KST_PASS = G_TOKEN_LAST + 225, SYMBOL_KST_NAME = G_TOKEN_LAST + 226, SYMBOL_MY_LAST = G_TOKEN_LAST + 227 }; void add_symbols(GScanner *scanner){ g_scanner_add_symbol(scanner,"pcall",GINT_TO_POINTER(SYMBOL_PCALL)); g_scanner_add_symbol(scanner,"pwwlo",GINT_TO_POINTER(SYMBOL_PWWLO)); g_scanner_add_symbol(scanner,"pexch",GINT_TO_POINTER(SYMBOL_PEXCH)); g_scanner_add_symbol(scanner,"padr1",GINT_TO_POINTER(SYMBOL_PADR1)); g_scanner_add_symbol(scanner,"padr2",GINT_TO_POINTER(SYMBOL_PADR2)); g_scanner_add_symbol(scanner,"pclub",GINT_TO_POINTER(SYMBOL_PCLUB)); g_scanner_add_symbol(scanner,"rname",GINT_TO_POINTER(SYMBOL_RNAME)); g_scanner_add_symbol(scanner,"rcall",GINT_TO_POINTER(SYMBOL_RCALL)); g_scanner_add_symbol(scanner,"radr1",GINT_TO_POINTER(SYMBOL_RADR1)); g_scanner_add_symbol(scanner,"radr2",GINT_TO_POINTER(SYMBOL_RADR2)); g_scanner_add_symbol(scanner,"rpoco",GINT_TO_POINTER(SYMBOL_RPOCO)); g_scanner_add_symbol(scanner,"rcity",GINT_TO_POINTER(SYMBOL_RCITY)); g_scanner_add_symbol(scanner,"rcoun",GINT_TO_POINTER(SYMBOL_RCOUN)); g_scanner_add_symbol(scanner,"rphon",GINT_TO_POINTER(SYMBOL_RPHON)); g_scanner_add_symbol(scanner,"rhbbs",GINT_TO_POINTER(SYMBOL_RHBBS)); g_scanner_add_symbol(scanner,"default_rs", GINT_TO_POINTER(SYMBOL_RS)); g_scanner_add_symbol(scanner,"default_rst", GINT_TO_POINTER(SYMBOL_RST)); g_scanner_add_symbol(scanner,"qsop_method", GINT_TO_POINTER(SYMBOL_QSOP_M)); g_scanner_add_symbol(scanner,"total_method",GINT_TO_POINTER(SYMBOL_TOTAL_M)); g_scanner_add_symbol(scanner,"cq", GINT_TO_POINTER(SYMBOL_CQ)); g_scanner_add_symbol(scanner,"cw_str", GINT_TO_POINTER(SYMBOL_CW_STR)); g_scanner_add_symbol(scanner,"cw_speed", GINT_TO_POINTER(SYMBOL_CW_SPEED)); g_scanner_add_symbol(scanner,"cw_repeat", GINT_TO_POINTER(SYMBOL_CW_REPEAT)); g_scanner_add_symbol(scanner,"cw_ts", GINT_TO_POINTER(SYMBOL_CW_TS)); g_scanner_add_symbol(scanner,"cw_allowifundef", GINT_TO_POINTER(SYMBOL_CW_ALLOWUND)); g_scanner_add_symbol(scanner,"ssb_file", GINT_TO_POINTER(SYMBOL_SSB_FILE)); g_scanner_add_symbol(scanner,"ssb_ts", GINT_TO_POINTER(SYMBOL_SSB_TS)); g_scanner_add_symbol(scanner,"ssb_repeat", GINT_TO_POINTER(SYMBOL_SSB_REPEAT)); g_scanner_add_symbol(scanner,"startband", GINT_TO_POINTER(SYMBOL_STARTBAND)); g_scanner_add_symbol(scanner,"pband", GINT_TO_POINTER(SYMBOL_PBAND)); g_scanner_add_symbol(scanner,"bandchar",GINT_TO_POINTER(SYMBOL_BANDCHAR)); g_scanner_add_symbol(scanner,"qrv", GINT_TO_POINTER(SYMBOL_QRV)); g_scanner_add_symbol(scanner,"readonly",GINT_TO_POINTER(SYMBOL_READONLY)); g_scanner_add_symbol(scanner,"psect",GINT_TO_POINTER(SYMBOL_PSECT)); g_scanner_add_symbol(scanner,"stxeq",GINT_TO_POINTER(SYMBOL_STXEQ)); g_scanner_add_symbol(scanner,"spowe",GINT_TO_POINTER(SYMBOL_SPOWE)); g_scanner_add_symbol(scanner,"srxeq",GINT_TO_POINTER(SYMBOL_SRXEQ)); g_scanner_add_symbol(scanner,"sante",GINT_TO_POINTER(SYMBOL_SANTE)); g_scanner_add_symbol(scanner,"santh",GINT_TO_POINTER(SYMBOL_SANTH)); g_scanner_add_symbol(scanner,"mope1",GINT_TO_POINTER(SYMBOL_MOPE1)); g_scanner_add_symbol(scanner,"mope2",GINT_TO_POINTER(SYMBOL_MOPE2)); g_scanner_add_symbol(scanner,"remarks",GINT_TO_POINTER(SYMBOL_REMARKS)); g_scanner_add_symbol(scanner,"ok_section_single",GINT_TO_POINTER(SYMBOL_OK_SECTION_SINGLE)); g_scanner_add_symbol(scanner,"ok_section_multi", GINT_TO_POINTER(SYMBOL_OK_SECTION_MULTI)); g_scanner_add_symbol(scanner,"adifband", GINT_TO_POINTER(SYMBOL_ADIFBAND)); g_scanner_add_symbol(scanner,"cbrband", GINT_TO_POINTER(SYMBOL_CBRBAND)); g_scanner_add_symbol(scanner,"qrg_min", GINT_TO_POINTER(SYMBOL_QRG_MIN)); g_scanner_add_symbol(scanner,"qrg_max", GINT_TO_POINTER(SYMBOL_QRG_MAX)); g_scanner_add_symbol(scanner,"bandmulti", GINT_TO_POINTER(SYMBOL_BANDMULTI)); g_scanner_add_symbol(scanner,"skedqrg", GINT_TO_POINTER(SYMBOL_SKEDQRG)); g_scanner_add_symbol(scanner,"band_lo", GINT_TO_POINTER(SYMBOL_BAND_LO)); g_scanner_add_symbol(scanner,"band_sw", GINT_TO_POINTER(SYMBOL_BANDSW)); g_scanner_add_symbol(scanner,"as_disk_qso", GINT_TO_POINTER(SYMBOL_AS_DAQ)); g_scanner_add_symbol(scanner,"as_disk_min", GINT_TO_POINTER(SYMBOL_AS_DAM)); g_scanner_add_symbol(scanner,"as_disk_fsync", GINT_TO_POINTER(SYMBOL_AS_DFS)); g_scanner_add_symbol(scanner,"as_floppy_qso", GINT_TO_POINTER(SYMBOL_AS_FAQ)); g_scanner_add_symbol(scanner,"as_floppy_min", GINT_TO_POINTER(SYMBOL_AS_FAM)); g_scanner_add_symbol(scanner,"as_floppy_fsync", GINT_TO_POINTER(SYMBOL_AS_FFS)); g_scanner_add_symbol(scanner,"as_mount_floppy", GINT_TO_POINTER(SYMBOL_AS_FMO)); g_scanner_add_symbol(scanner,"as_floppy_path", GINT_TO_POINTER(SYMBOL_AS_FPA)); g_scanner_add_symbol(scanner,"as_mount_cmd", GINT_TO_POINTER(SYMBOL_AS_FMC)); g_scanner_add_symbol(scanner,"net_if_ignore", GINT_TO_POINTER(SYMBOL_IF_IGNORE)); g_scanner_add_symbol(scanner,"net_ip_ignore", GINT_TO_POINTER(SYMBOL_IP_IGNORE)); g_scanner_add_symbol(scanner,"net_ip_announce", GINT_TO_POINTER(SYMBOL_IP_ANNOUNCE)); g_scanner_add_symbol(scanner,"trace_bcast", GINT_TO_POINTER(SYMBOL_TRACE_BCAST)); g_scanner_add_symbol(scanner,"trace_sock", GINT_TO_POINTER(SYMBOL_TRACE_SOCK)); g_scanner_add_symbol(scanner,"trace_recv", GINT_TO_POINTER(SYMBOL_TRACE_RECV)); g_scanner_add_symbol(scanner,"trace_send", GINT_TO_POINTER(SYMBOL_TRACE_SEND)); g_scanner_add_symbol(scanner,"trace_qsos", GINT_TO_POINTER(SYMBOL_TRACE_QSOS)); g_scanner_add_symbol(scanner,"trace_sdev", GINT_TO_POINTER(SYMBOL_TRACE_SDEV)); g_scanner_add_symbol(scanner,"language", GINT_TO_POINTER(SYMBOL_LANGUAGE)); g_scanner_add_symbol(scanner,"cwda_type", GINT_TO_POINTER(SYMBOL_CWDA_TYPE)); g_scanner_add_symbol(scanner,"cwda_device_s", GINT_TO_POINTER(SYMBOL_CWDA_DEVICE)); g_scanner_add_symbol(scanner,"cwda_hostname", GINT_TO_POINTER(SYMBOL_CWDA_HOST)); g_scanner_add_symbol(scanner,"cwda_udp_port", GINT_TO_POINTER(SYMBOL_CWDA_UDP)); g_scanner_add_symbol(scanner,"cwda_io_port", GINT_TO_POINTER(SYMBOL_CWDA_IOPORT)); g_scanner_add_symbol(scanner,"cwda_speed", GINT_TO_POINTER(SYMBOL_CWDA_SPEED)); g_scanner_add_symbol(scanner,"cwda_weight", GINT_TO_POINTER(SYMBOL_CWDA_WEIGHT)); g_scanner_add_symbol(scanner,"cwda_minwpm", GINT_TO_POINTER(SYMBOL_CWDA_MINWPM)); g_scanner_add_symbol(scanner,"cwda_maxwpm", GINT_TO_POINTER(SYMBOL_CWDA_MAXWPM)); g_scanner_add_symbol(scanner,"cwda_spk", GINT_TO_POINTER(SYMBOL_CWDA_SPK)); g_scanner_add_symbol(scanner,"cwda_leadin", GINT_TO_POINTER(SYMBOL_CWDA_LEADIN)); g_scanner_add_symbol(scanner,"cwda_vid", GINT_TO_POINTER(SYMBOL_CWDA_VID)); g_scanner_add_symbol(scanner,"cwda_pid", GINT_TO_POINTER(SYMBOL_CWDA_PID)); g_scanner_add_symbol(scanner,"cwda_autgive", GINT_TO_POINTER(SYMBOL_CWDA_AUTGIVE)); g_scanner_add_symbol(scanner,"wk_wk2", GINT_TO_POINTER(SYMBOL_WK_WK2)); g_scanner_add_symbol(scanner,"wk_usepot", GINT_TO_POINTER(SYMBOL_WK_USEPOT)); g_scanner_add_symbol(scanner,"wk_usebut", GINT_TO_POINTER(SYMBOL_WK_USEBUT)); g_scanner_add_symbol(scanner,"wk_keymode", GINT_TO_POINTER(SYMBOL_WK_KEYMODE)); g_scanner_add_symbol(scanner,"wk_swap", GINT_TO_POINTER(SYMBOL_WK_SWAP)); g_scanner_add_symbol(scanner,"ssbd_type", GINT_TO_POINTER(SYMBOL_SSBD_TYPE)); g_scanner_add_symbol(scanner,"ssbd_record", GINT_TO_POINTER(SYMBOL_SSBD_RECORD)); g_scanner_add_symbol(scanner,"ssbd_maxmin", GINT_TO_POINTER(SYMBOL_SSBD_MAXMIN)); g_scanner_add_symbol(scanner,"ssbd_diskfree", GINT_TO_POINTER(SYMBOL_SSBD_DISKFREE)); g_scanner_add_symbol(scanner,"ssbd_format", GINT_TO_POINTER(SYMBOL_SSBD_FORMAT)); g_scanner_add_symbol(scanner,"ssbd_channels", GINT_TO_POINTER(SYMBOL_SSBD_CHANNELS)); g_scanner_add_symbol(scanner,"ssbd_samplerate", GINT_TO_POINTER(SYMBOL_SSBD_SAMPLERATE)); g_scanner_add_symbol(scanner,"ssbd_plev", GINT_TO_POINTER(SYMBOL_SSBD_PLEV)); g_scanner_add_symbol(scanner,"ssbd_rlev", GINT_TO_POINTER(SYMBOL_SSBD_RLEV)); g_scanner_add_symbol(scanner,"ssbd_template", GINT_TO_POINTER(SYMBOL_SSBD_TEMPLATE)); g_scanner_add_symbol(scanner,"ssbd_pcm_play", GINT_TO_POINTER(SYMBOL_SSBD_PCM_PLAY)); g_scanner_add_symbol(scanner,"ssbd_pcm_rec", GINT_TO_POINTER(SYMBOL_SSBD_PCM_REC)); g_scanner_add_symbol(scanner,"ssbd_period_time",GINT_TO_POINTER(SYMBOL_SSBD_PERIOD_T)); g_scanner_add_symbol(scanner,"ssbd_buffer_time",GINT_TO_POINTER(SYMBOL_SSBD_BUFFER_T)); g_scanner_add_symbol(scanner,"ssbd_alsa_mixer", GINT_TO_POINTER(SYMBOL_SSBD_ALSA_MIXER)); g_scanner_add_symbol(scanner,"ssbd_alsa_src", GINT_TO_POINTER(SYMBOL_SSBD_ALSA_SRC)); g_scanner_add_symbol(scanner,"ssbd_dsp", GINT_TO_POINTER(SYMBOL_SSBD_DSP)); g_scanner_add_symbol(scanner,"ssbd_maxfrag", GINT_TO_POINTER(SYMBOL_SSBD_MAXFRAG)); g_scanner_add_symbol(scanner,"ssbd_mixer", GINT_TO_POINTER(SYMBOL_SSBD_MIXER)); g_scanner_add_symbol(scanner,"ssbd_oss_src", GINT_TO_POINTER(SYMBOL_SSBD_OSS_SRC)); g_scanner_add_symbol(scanner,"ssbd_recsrc", GINT_TO_POINTER(SYMBOL_SSBD_RECSRC)); g_scanner_add_symbol(scanner,"ssbd_hostname", GINT_TO_POINTER(SYMBOL_SSBD_HOST)); g_scanner_add_symbol(scanner,"ssbd_udp_port", GINT_TO_POINTER(SYMBOL_SSBD_UDP)); g_scanner_add_symbol(scanner,"ssbd_pa_play", GINT_TO_POINTER(SYMBOL_SSBD_PA_PLAY)); g_scanner_add_symbol(scanner,"ssbd_pa_rec", GINT_TO_POINTER(SYMBOL_SSBD_PA_REC)); g_scanner_add_symbol(scanner,"ssbd_command", GINT_TO_POINTER(SYMBOL_SSBD_COMMAND)); g_scanner_add_symbol(scanner,"ssbd_pipe", GINT_TO_POINTER(SYMBOL_SSBD_PIPE)); g_scanner_add_symbol(scanner,"term", GINT_TO_POINTER(SYMBOL_TERM)); g_scanner_add_symbol(scanner,"term_mode", GINT_TO_POINTER(SYMBOL_TERM_MODE)); g_scanner_add_symbol(scanner,"term_m11_hack", GINT_TO_POINTER(SYMBOL_TERM_M11_HACK)); g_scanner_add_symbol(scanner,"term_restrict_852", GINT_TO_POINTER(SYMBOL_TERM_RESTRICT_852)); g_scanner_add_symbol(scanner,"term_block_cursor", GINT_TO_POINTER(SYMBOL_TERM_BLOCK_CURSOR)); g_scanner_add_symbol(scanner,"term_col", GINT_TO_POINTER(SYMBOL_TERM_COL)); g_scanner_add_symbol(scanner,"term_utf_8_io", GINT_TO_POINTER(SYMBOL_TERM_UTF_8_IO)); g_scanner_add_symbol(scanner,"term_charset", GINT_TO_POINTER(SYMBOL_TERM_CHARSET)); g_scanner_add_symbol(scanner,"rotar", GINT_TO_POINTER(SYMBOL_ROTAR)); g_scanner_add_symbol(scanner,"rot_desc", GINT_TO_POINTER(SYMBOL_ROT_DESC)); g_scanner_add_symbol(scanner,"rot_type", GINT_TO_POINTER(SYMBOL_ROT_TYPE)); g_scanner_add_symbol(scanner,"rot_filename", GINT_TO_POINTER(SYMBOL_ROT_FILENAME)); g_scanner_add_symbol(scanner,"rot_hostname", GINT_TO_POINTER(SYMBOL_ROT_HOSTNAME)); g_scanner_add_symbol(scanner,"rot_port", GINT_TO_POINTER(SYMBOL_ROT_PORT)); g_scanner_add_symbol(scanner,"rot_vid", GINT_TO_POINTER(SYMBOL_ROT_VID)); g_scanner_add_symbol(scanner,"rot_pid", GINT_TO_POINTER(SYMBOL_ROT_PID)); g_scanner_add_symbol(scanner,"rot_serial", GINT_TO_POINTER(SYMBOL_ROT_SERIAL)); g_scanner_add_symbol(scanner,"rot_timeout_ms", GINT_TO_POINTER(SYMBOL_ROT_TIMEOUT_MS)); g_scanner_add_symbol(scanner,"rot_beamwidth", GINT_TO_POINTER(SYMBOL_ROT_BEAMWIDTH)); g_scanner_add_symbol(scanner,"rot_saddr", GINT_TO_POINTER(SYMBOL_ROT_SADDR)); g_scanner_add_symbol(scanner,"rot_model", GINT_TO_POINTER(SYMBOL_ROT_MODEL)); g_scanner_add_symbol(scanner,"rot_rem_rotstr", GINT_TO_POINTER(SYMBOL_ROT_REM_ROTSTR)); g_scanner_add_symbol(scanner,"subwin", GINT_TO_POINTER(SYMBOL_SW)); g_scanner_add_symbol(scanner,"sw_type", GINT_TO_POINTER(SYMBOL_SW_TYPE)); g_scanner_add_symbol(scanner,"sw_command", GINT_TO_POINTER(SYMBOL_SW_COMMAND)); g_scanner_add_symbol(scanner,"sw_autorun", GINT_TO_POINTER(SYMBOL_SW_AUTORUN)); g_scanner_add_symbol(scanner,"sw_respawn_time", GINT_TO_POINTER(SYMBOL_SW_RESPAWN_TIME)); g_scanner_add_symbol(scanner,"rig_filename", GINT_TO_POINTER(SYMBOL_RIG_FILENAME)); g_scanner_add_symbol(scanner,"rig_model", GINT_TO_POINTER(SYMBOL_RIG_MODEL)); g_scanner_add_symbol(scanner,"rig_speed", GINT_TO_POINTER(SYMBOL_RIG_SPEED)); g_scanner_add_symbol(scanner,"rig_civaddr", GINT_TO_POINTER(SYMBOL_RIG_CIVADDR)); g_scanner_add_symbol(scanner,"rig_lo", GINT_TO_POINTER(SYMBOL_RIG_LO)); g_scanner_add_symbol(scanner,"rig_ssbcw_shift", GINT_TO_POINTER(SYMBOL_RIG_SSBCW_SHIFT)); g_scanner_add_symbol(scanner,"rig_poll_ms", GINT_TO_POINTER(SYMBOL_RIG_POLL_MS)); g_scanner_add_symbol(scanner,"rig_qrg_r2t", GINT_TO_POINTER(SYMBOL_RIG_QRG_R2T)); g_scanner_add_symbol(scanner,"rig_qrg_t2r", GINT_TO_POINTER(SYMBOL_RIG_QRG_T2R)); g_scanner_add_symbol(scanner,"rig_mode_t2r", GINT_TO_POINTER(SYMBOL_RIG_MODE_T2R)); g_scanner_add_symbol(scanner,"rig_clr_rit", GINT_TO_POINTER(SYMBOL_RIG_CLR_RIT)); g_scanner_add_symbol(scanner,"rig_verbose", GINT_TO_POINTER(SYMBOL_RIG_VERBOSE)); g_scanner_add_symbol(scanner,"loglines", GINT_TO_POINTER(SYMBOL_LOGLINES)); g_scanner_add_symbol(scanner,"skedshift", GINT_TO_POINTER(SYMBOL_SKEDSHIFT)); g_scanner_add_symbol(scanner,"skedcount", GINT_TO_POINTER(SYMBOL_SKEDCOUNT)); g_scanner_add_symbol(scanner,"takeoff", GINT_TO_POINTER(SYMBOL_TAKEOFF)); g_scanner_add_symbol(scanner,"operator", GINT_TO_POINTER(SYMBOL_OPERATOR)); g_scanner_add_symbol(scanner,"global_operator", GINT_TO_POINTER(SYMBOL_GLOBAL_OPERATOR)); g_scanner_add_symbol(scanner,"gfx_x", GINT_TO_POINTER(SYMBOL_GFX_X)); g_scanner_add_symbol(scanner,"gfx_y", GINT_TO_POINTER(SYMBOL_GFX_Y)); g_scanner_add_symbol(scanner,"fontheight", GINT_TO_POINTER(SYMBOL_FONTHEIGHT)); g_scanner_add_symbol(scanner,"slashkey", GINT_TO_POINTER(SYMBOL_SLASHKEY)); g_scanner_add_symbol(scanner,"ntpq", GINT_TO_POINTER(SYMBOL_NTPQ)); g_scanner_add_symbol(scanner,"dssaver", GINT_TO_POINTER(SYMBOL_DSSAVER)); g_scanner_add_symbol(scanner,"splitheight", GINT_TO_POINTER(SYMBOL_SPLITHEIGHT)); g_scanner_add_symbol(scanner,"dxc_host", GINT_TO_POINTER(SYMBOL_DXC_HOST)); g_scanner_add_symbol(scanner,"dxc_port", GINT_TO_POINTER(SYMBOL_DXC_PORT)); g_scanner_add_symbol(scanner,"dxc_user", GINT_TO_POINTER(SYMBOL_DXC_USER)); g_scanner_add_symbol(scanner,"dxc_pass", GINT_TO_POINTER(SYMBOL_DXC_PASS)); g_scanner_add_symbol(scanner,"kst_user", GINT_TO_POINTER(SYMBOL_KST_USER)); g_scanner_add_symbol(scanner,"kst_pass", GINT_TO_POINTER(SYMBOL_KST_PASS)); g_scanner_add_symbol(scanner,"kst_name", GINT_TO_POINTER(SYMBOL_KST_NAME)); /* obsolete items */ g_scanner_add_symbol(scanner,"cwda_device", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"cwda_port", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"cwda_speaker", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"cwda_spkdev", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"cwda_spkvol", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"cwda_pttdelay", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"rota_type", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"rota_port", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"rota_saddr", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"rota_timeout_ms", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"rota_filename", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"rota_hostname", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"rotb_type", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"rotb_port", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"rotb_saddr", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"rotb_timeout_ms", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"rotb_filename", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"rotb_hostname", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"doublefont", GINT_TO_POINTER(SYMBOL_OBSOLETE)); } /**************************************************************************/ gint init_rc(void){ cfg = g_new0(struct config, 1); cfg->bands = g_ptr_array_new(); cfg->cqs = g_ptr_array_new(); cfg->crotars = g_ptr_array_new(); cfg->sws = g_ptr_array_new(); cfg->takeoff = g_ptr_array_new(); cfg->cwda_minwpm = 10; cfg->cwda_maxwpm = 41; cfg->wk_usepot = 1; cfg->wk_usebut = 1; cfg->wk_keymode = 1; cfg->dssaver = 1; cfg->rig_mode_t2r = 1; return 0; } #define FREE_IF_EXISTS(base, item) if (base->item) g_free(base->item) void free_config_rotar(struct config_rotar *crot){ FREE_IF_EXISTS(crot,rot_filename); FREE_IF_EXISTS(crot,rot_hostname); FREE_IF_EXISTS(crot,rot_desc); FREE_IF_EXISTS(crot,rot_serial); FREE_IF_EXISTS(crot,rot_rem_rotstr); g_free(crot); } gint free_rc(void){ int i; struct config_band *band; struct config_rotar *rot; FREE_IF_EXISTS(cfg,pcall); FREE_IF_EXISTS(cfg,pwwlo); FREE_IF_EXISTS(cfg,pexch); FREE_IF_EXISTS(cfg,padr1); FREE_IF_EXISTS(cfg,padr2); FREE_IF_EXISTS(cfg,pclub); FREE_IF_EXISTS(cfg,rname); FREE_IF_EXISTS(cfg,rcall); FREE_IF_EXISTS(cfg,radr1); FREE_IF_EXISTS(cfg,radr2); FREE_IF_EXISTS(cfg,rpoco); FREE_IF_EXISTS(cfg,rcity); FREE_IF_EXISTS(cfg,rcoun); FREE_IF_EXISTS(cfg,rphon); FREE_IF_EXISTS(cfg,rhbbs); FREE_IF_EXISTS(cfg,default_rs); FREE_IF_EXISTS(cfg,default_rst); FREE_IF_EXISTS(cfg, dxc_host); FREE_IF_EXISTS(cfg, dxc_user); FREE_IF_EXISTS(cfg, dxc_pass); FREE_IF_EXISTS(cfg, kst_user); FREE_IF_EXISTS(cfg, kst_pass); FREE_IF_EXISTS(cfg, kst_name); FREE_IF_EXISTS(cfg,as_floppy_path); FREE_IF_EXISTS(cfg,as_mount_cmd); FREE_IF_EXISTS(cfg,net_if_ignore); FREE_IF_EXISTS(cfg,net_ip_ignore); FREE_IF_EXISTS(cfg,net_ip_announce); /* trace_xx (5x) */ /* language */ /* cwda-> in cwdaemon.c */ for (i=0;ibands->len; i++){ band = (struct config_band *)g_ptr_array_index(cfg->bands, i); FREE_IF_EXISTS(band,pband); FREE_IF_EXISTS(band,stxeq); FREE_IF_EXISTS(band,spowe); FREE_IF_EXISTS(band,srxeq); FREE_IF_EXISTS(band,sante); FREE_IF_EXISTS(band,santh); FREE_IF_EXISTS(band,mope1); FREE_IF_EXISTS(band,mope2); FREE_IF_EXISTS(band,remarks); FREE_IF_EXISTS(band,ok_section_single); FREE_IF_EXISTS(band,ok_section_multi); FREE_IF_EXISTS(band,adifband); FREE_IF_EXISTS(band,cbrband); FREE_IF_EXISTS(band,skedqrg); g_free(band); } g_ptr_array_free(cfg->bands, TRUE); for (i=0;icqs->len; i++){ free_cq((struct cq *)g_ptr_array_index(cfg->cqs,i)); } g_ptr_array_free(cfg->cqs, TRUE); /* YES, TRUE */ FREE_IF_EXISTS(cfg,startband); FREE_IF_EXISTS(cfg,operator_); FREE_IF_EXISTS(cfg,slashkey); FREE_IF_EXISTS(cfg,cwda_device); FREE_IF_EXISTS(cfg,cwda_hostname); FREE_IF_EXISTS(cfg,ssbd_pcm_play); FREE_IF_EXISTS(cfg,ssbd_pcm_rec); FREE_IF_EXISTS(cfg,ssbd_hostname); FREE_IF_EXISTS(cfg,ssbd_dsp); FREE_IF_EXISTS(cfg,ssbd_template); FREE_IF_EXISTS(cfg,ssbd_mixer); FREE_IF_EXISTS(cfg,ssbd_alsa_mixer); FREE_IF_EXISTS(cfg,ssbd_alsa_src); FREE_IF_EXISTS(cfg,ssbd_oss_src); for (i=0;icrotars->len; i++){ rot = g_ptr_array_index(cfg->crotars, i); free_config_rotar(rot); } g_ptr_array_free(cfg->crotars, TRUE); FREE_IF_EXISTS(cfg, rig_filename); for (i=0;isws->len;i++){ struct config_subwin *csw; csw=(struct config_subwin *)g_ptr_array_index(cfg->sws, i); FREE_IF_EXISTS(csw, command); FREE_IF_EXISTS(csw, autorun); g_free(csw); } g_ptr_array_free(cfg->sws, TRUE); /* YES, TRUE */ for (i=0;itakeoff->len;i++){ struct takeoff *toff; toff=(struct takeoff*)g_ptr_array_index(cfg->takeoff, i); g_free(toff); } g_ptr_array_free(cfg->takeoff, TRUE); g_free(cfg); return 0; } #define STORE_RC_STRING(base, SYM,item) case SYM: \ if (base){\ if (base->item) g_free(base->item); \ base->item = g_strdup(scanner->value.v_string);\ }\ break #define STORE_RC_STRING_UC(base, SYM,item) case SYM: \ if (base){\ if (base->item) g_free(base->item); \ base->item = g_strdup(scanner->value.v_string);\ uc(base->item);\ }\ break #define STORE_RC_STRING_FS(base, SYM,item) case SYM: \ if (base){\ if (base->item) g_free(base->item); \ base->item = g_strdup(scanner->value.v_string);\ fixsemi(base->item);\ }\ break #define STORE_RC_STRING_FS_UC(base, SYM,item) case SYM: \ if (base){\ if (base->item) g_free(base->item); \ base->item = g_strdup(scanner->value.v_string);\ fixsemi(base->item);\ uc(base->item);\ }\ break #define STORE_RC_INT(base, SYM,item) case SYM: \ if (base){\ base->item = scanner->value.v_int * krat; \ }\ break #define STORE_RC_DOUBLE(base, SYM,item) case SYM: \ if (base){\ base->item = scanner->value.v_float * krat;\ }\ break /* known items are identifiers */ /* all other are symbols */ guint read_one_token(GScanner *scanner){ guint symbol, krat; /* dbg("read_one_token\n");*/ g_scanner_get_next_token(scanner); symbol = scanner->token; /* symbol (abc) is unresolved, probably valid identifier from newer version */ if (symbol == G_TOKEN_IDENTIFIER) return G_TOKEN_SYMBOL; /* config record must begin with known symbol */ if ((symbol < SYMBOL_MY_FIRST) || (symbol > SYMBOL_MY_LAST)){ return G_TOKEN_NONE; } /* its one of my symbols */ g_scanner_get_next_token(scanner); /* expecting '=' */ if (scanner->token != '='){ return '='; } g_scanner_get_next_token(scanner); /* dbg("scanner->token=%d G_TOKEN_STRING=%d \n",scanner->token, G_TOKEN_STRING);*/ if (scanner->token==G_TOKEN_ERROR){ return G_TOKEN_ERROR; } if (scanner->token == '-'){ krat = -1; g_scanner_get_next_token(scanner); }else{ krat = 1; } /* if ((scanner->token) != (G_TOKEN_STRING)){ dbg("not equal\n"); return G_TOKEN_STRING; }else{ dbg("equal\n"); }*/ switch(symbol){ STORE_RC_STRING_FS_UC(cfg, SYMBOL_PCALL, pcall); STORE_RC_STRING_FS_UC(cfg, SYMBOL_PWWLO, pwwlo); STORE_RC_STRING_FS_UC(cfg, SYMBOL_PEXCH, pexch); STORE_RC_STRING (cfg, SYMBOL_PADR1, padr1); STORE_RC_STRING (cfg, SYMBOL_PADR2, padr2); STORE_RC_STRING_FS_UC(cfg, SYMBOL_PCLUB, pclub); STORE_RC_STRING (cfg, SYMBOL_RNAME, rname); STORE_RC_STRING_UC(cfg, SYMBOL_RCALL, rcall); STORE_RC_STRING (cfg, SYMBOL_RADR1, radr1); STORE_RC_STRING (cfg, SYMBOL_RADR2, radr2); STORE_RC_STRING (cfg, SYMBOL_RPOCO, rpoco); STORE_RC_STRING (cfg, SYMBOL_RCITY, rcity); STORE_RC_STRING (cfg, SYMBOL_RCOUN, rcoun); STORE_RC_STRING (cfg, SYMBOL_RPHON, rphon); STORE_RC_STRING (cfg, SYMBOL_RHBBS, rhbbs); STORE_RC_STRING_UC(cfg, SYMBOL_RS, default_rs); STORE_RC_STRING_UC(cfg, SYMBOL_RST, default_rst); STORE_RC_INT (cfg, SYMBOL_QSOP_M,qsop_method); STORE_RC_INT (cfg, SYMBOL_TOTAL_M,total_method); STORE_RC_INT(cfg, SYMBOL_AS_DAQ, as_disk_aq); STORE_RC_INT(cfg, SYMBOL_AS_DAM, as_disk_am); STORE_RC_INT(cfg, SYMBOL_AS_DFS, as_disk_fsync); STORE_RC_INT(cfg, SYMBOL_AS_FAQ, as_floppy_aq); STORE_RC_INT(cfg, SYMBOL_AS_FAM, as_floppy_am); STORE_RC_INT(cfg, SYMBOL_AS_FFS, as_floppy_fsync); STORE_RC_INT(cfg, SYMBOL_AS_FMO, as_mount); STORE_RC_STRING(cfg, SYMBOL_AS_FPA, as_floppy_path); STORE_RC_STRING(cfg, SYMBOL_AS_FMC, as_mount_cmd); STORE_RC_STRING(cfg, SYMBOL_IF_IGNORE, net_if_ignore); STORE_RC_STRING(cfg, SYMBOL_IP_IGNORE, net_ip_ignore); STORE_RC_STRING(cfg, SYMBOL_IP_ANNOUNCE, net_ip_announce); STORE_RC_INT (cfg, SYMBOL_TRACE_BCAST, trace_bcast); STORE_RC_INT (cfg, SYMBOL_TRACE_SOCK, trace_sock); STORE_RC_INT (cfg, SYMBOL_TRACE_RECV, trace_recv); STORE_RC_INT (cfg, SYMBOL_TRACE_SEND, trace_send); STORE_RC_INT (cfg, SYMBOL_TRACE_QSOS, trace_qsos); STORE_RC_INT (cfg, SYMBOL_TRACE_SDEV, trace_sdev); case SYMBOL_LANGUAGE: current_language = scanner->value.v_int;\ break; case SYMBOL_CQ: cfg->cq = get_cq_by_number(cfg->cqs, scanner->value.v_int); if (!cfg->cq){ cfg->cq = g_new0(struct cq, 1); g_ptr_array_add(cfg->cqs, cfg->cq); cfg->cq->nr = scanner->value.v_int; } break; STORE_RC_STRING(cfg->cq, SYMBOL_CW_STR, cw_str); STORE_RC_INT (cfg->cq, SYMBOL_CW_SPEED, cw_speed); STORE_RC_INT (cfg->cq, SYMBOL_CW_REPEAT, cw_repeat); STORE_RC_INT (cfg->cq, SYMBOL_CW_TS, cw_ts); STORE_RC_INT (cfg->cq, SYMBOL_CW_ALLOWUND, cw_allowifundef); STORE_RC_STRING(cfg->cq, SYMBOL_SSB_FILE, ssb_file); STORE_RC_INT (cfg->cq, SYMBOL_SSB_REPEAT, ssb_repeat); STORE_RC_INT (cfg->cq, SYMBOL_SSB_TS, ssb_ts); case SYMBOL_TERM: cfg->ts = new_term_spec(scanner->value.v_string); break; STORE_RC_INT(cfg->ts, SYMBOL_TERM_MODE, mode); STORE_RC_INT(cfg->ts, SYMBOL_TERM_M11_HACK, m11_hack); STORE_RC_INT(cfg->ts, SYMBOL_TERM_RESTRICT_852, restrict_852); STORE_RC_INT(cfg->ts, SYMBOL_TERM_BLOCK_CURSOR, block_cursor); STORE_RC_INT(cfg->ts, SYMBOL_TERM_COL, col); STORE_RC_INT(cfg->ts, SYMBOL_TERM_UTF_8_IO, utf_8_io); STORE_RC_INT(cfg->ts, SYMBOL_TERM_CHARSET, charset); STORE_RC_STRING(cfg, SYMBOL_STARTBAND, startband); case SYMBOL_PBAND: cfg->band = get_config_band_by_pband(fixsemi(scanner->value.v_string)); if (!cfg->band){ cfg->band = g_new0(struct config_band, 1); g_ptr_array_add(cfg->bands, cfg->band); cfg->band->pband = fixsemi(g_strdup(scanner->value.v_string)); cfg->band->skedqrg=g_strdup(""); } /*dbg("new band: '%s' cfg->band='%p' \n", scanner->value.v_string,cfg->band);*/ break; case SYMBOL_BANDCHAR: if (cfg->band){ cfg->band->bandchar = *(scanner->value.v_string); } break; case SYMBOL_QRV: if (cfg->band){ cfg->band->qrv = cfg->band->qrvnow = scanner->value.v_int; } break; case SYMBOL_READONLY: if (cfg->band){ cfg->band->readonly = scanner->value.v_int; /*dbg("readonly=%d\n", cfg->band->readonly);*/ } break; /* STORE_RC_INT (cfg->band, SYMBOL_QRV, qrv); STORE_RC_INT (cfg->band, SYMBOL_QRVNOW,qrvnow); */ STORE_RC_INT (cfg->band, SYMBOL_PSECT, psect); STORE_RC_STRING (cfg->band, SYMBOL_STXEQ, stxeq); STORE_RC_STRING (cfg->band, SYMBOL_SPOWE, spowe); STORE_RC_STRING (cfg->band, SYMBOL_SRXEQ, srxeq); STORE_RC_STRING (cfg->band, SYMBOL_SANTE, sante); STORE_RC_STRING (cfg->band, SYMBOL_SANTH, santh); STORE_RC_STRING_UC(cfg->band, SYMBOL_MOPE1, mope1); STORE_RC_STRING_UC(cfg->band, SYMBOL_MOPE2, mope2); STORE_RC_STRING (cfg->band, SYMBOL_REMARKS,remarks); STORE_RC_STRING (cfg->band, SYMBOL_OK_SECTION_SINGLE,ok_section_single); STORE_RC_STRING (cfg->band, SYMBOL_OK_SECTION_MULTI, ok_section_multi); STORE_RC_STRING (cfg->band, SYMBOL_ADIFBAND, adifband); STORE_RC_STRING (cfg->band, SYMBOL_CBRBAND, cbrband); STORE_RC_INT (cfg->band, SYMBOL_QRG_MIN, qrg_min); STORE_RC_INT (cfg->band, SYMBOL_QRG_MAX, qrg_max); STORE_RC_STRING (cfg->band, SYMBOL_SKEDQRG, skedqrg); STORE_RC_DOUBLE (cfg->band, SYMBOL_BAND_LO, band_lo); STORE_RC_INT (cfg->band, SYMBOL_BANDSW, band_sw); STORE_RC_INT (cfg, SYMBOL_CWDA_TYPE, cwda_type); STORE_RC_STRING (cfg, SYMBOL_CWDA_DEVICE, cwda_device); STORE_RC_STRING (cfg, SYMBOL_CWDA_HOST, cwda_hostname); STORE_RC_INT (cfg, SYMBOL_CWDA_UDP, cwda_udp_port); STORE_RC_INT (cfg, SYMBOL_CWDA_IOPORT, cwda_io_port); STORE_RC_INT (cfg, SYMBOL_CWDA_SPEED, cwda_speed); STORE_RC_INT (cfg, SYMBOL_CWDA_WEIGHT, cwda_weight); STORE_RC_INT (cfg, SYMBOL_CWDA_MINWPM, cwda_minwpm); STORE_RC_INT (cfg, SYMBOL_CWDA_MAXWPM, cwda_maxwpm); STORE_RC_INT (cfg, SYMBOL_CWDA_SPK, cwda_spk); STORE_RC_INT (cfg, SYMBOL_CWDA_LEADIN, cwda_leadin); STORE_RC_INT (cfg, SYMBOL_CWDA_VID, cwda_vid); STORE_RC_INT (cfg, SYMBOL_CWDA_PID, cwda_pid); STORE_RC_INT (cfg, SYMBOL_CWDA_AUTGIVE, cwda_autgive); STORE_RC_INT (cfg, SYMBOL_WK_WK2, wk_wk2); STORE_RC_INT (cfg, SYMBOL_WK_USEPOT, wk_usepot); STORE_RC_INT (cfg, SYMBOL_WK_USEBUT, wk_usebut); STORE_RC_INT (cfg, SYMBOL_WK_KEYMODE, wk_keymode); STORE_RC_INT (cfg, SYMBOL_WK_SWAP, wk_swap); #if 0 STORE_RC_INT (cfg, SYMBOL_CWDA_DEVICE, cwda_device); /* obsolete */ STORE_RC_INT (cfg, SYMBOL_CWDA_SPEAKER, cwda_speaker); /* obsolete */ STORE_RC_INT (cfg, SYMBOL_CWDA_PORT, cwda_port); /* obsolete */ #endif STORE_RC_INT (cfg, SYMBOL_SSBD_TYPE, ssbd_type); STORE_RC_INT (cfg, SYMBOL_SSBD_RECORD, ssbd_record); STORE_RC_INT (cfg, SYMBOL_SSBD_MAXMIN, ssbd_maxmin); STORE_RC_INT (cfg, SYMBOL_SSBD_DISKFREE, ssbd_diskfree); STORE_RC_INT (cfg, SYMBOL_SSBD_FORMAT, ssbd_format); STORE_RC_INT (cfg, SYMBOL_SSBD_CHANNELS, ssbd_channels); STORE_RC_INT (cfg, SYMBOL_SSBD_SAMPLERATE, ssbd_samplerate); STORE_RC_INT (cfg, SYMBOL_SSBD_PLEV, ssbd_plev); STORE_RC_INT (cfg, SYMBOL_SSBD_RLEV, ssbd_rlev); /* case SYMBOL_SSBD_PLEV: if (cfg){ cfg->ssbd_plev = scanner->value.v_int; if (scanner->token == '-') cfg->ssbd_plev == -cfg->ssbd_plev; } break;*/ STORE_RC_STRING (cfg, SYMBOL_SSBD_TEMPLATE, ssbd_template); STORE_RC_STRING (cfg, SYMBOL_SSBD_PCM_PLAY, ssbd_pcm_play); STORE_RC_STRING (cfg, SYMBOL_SSBD_PCM_REC, ssbd_pcm_rec); STORE_RC_INT (cfg, SYMBOL_SSBD_PERIOD_T, ssbd_period_time); STORE_RC_INT (cfg, SYMBOL_SSBD_BUFFER_T, ssbd_buffer_time); STORE_RC_STRING (cfg, SYMBOL_SSBD_ALSA_MIXER, ssbd_alsa_mixer); STORE_RC_STRING (cfg, SYMBOL_SSBD_ALSA_SRC, ssbd_alsa_src); STORE_RC_STRING (cfg, SYMBOL_SSBD_DSP, ssbd_dsp); STORE_RC_INT (cfg, SYMBOL_SSBD_MAXFRAG, ssbd_maxfrag); STORE_RC_STRING (cfg, SYMBOL_SSBD_MIXER, ssbd_mixer); STORE_RC_STRING (cfg, SYMBOL_SSBD_OSS_SRC, ssbd_oss_src); STORE_RC_INT (cfg, SYMBOL_SSBD_RECSRC, ssbd_recsrc); STORE_RC_STRING (cfg, SYMBOL_SSBD_HOST, ssbd_hostname); STORE_RC_INT (cfg, SYMBOL_SSBD_UDP, ssbd_udp_port); STORE_RC_INT (cfg, SYMBOL_SSBD_PA_PLAY, ssbd_pa_play); STORE_RC_INT (cfg, SYMBOL_SSBD_PA_REC, ssbd_pa_rec); /* STORE_RC_INT (cfg, SYMBOL_SSBD_PIPE, ssbd_pipe); STORE_RC_STRING (cfg, SYMBOL_SSBD_COMMAND, ssbd_command);*/ case SYMBOL_ROTAR: cfg->crotar = get_config_rotar_by_number(cfg->crotars, scanner->value.v_int); if (!cfg->crotar){ cfg->crotar=g_new0(struct config_rotar, 1); g_ptr_array_add(cfg->crotars, cfg->crotar); cfg->crotar->nr = scanner->value.v_int; } break; STORE_RC_STRING (cfg->crotar, SYMBOL_ROT_DESC, rot_desc); STORE_RC_INT (cfg->crotar, SYMBOL_ROT_TYPE, rot_type); STORE_RC_STRING (cfg->crotar, SYMBOL_ROT_FILENAME, rot_filename); STORE_RC_STRING (cfg->crotar, SYMBOL_ROT_HOSTNAME, rot_hostname); STORE_RC_INT (cfg->crotar, SYMBOL_ROT_PORT, rot_port); STORE_RC_INT (cfg->crotar, SYMBOL_ROT_VID, rot_vid); STORE_RC_INT (cfg->crotar, SYMBOL_ROT_PID, rot_pid); STORE_RC_STRING (cfg->crotar, SYMBOL_ROT_SERIAL, rot_serial); STORE_RC_INT (cfg->crotar, SYMBOL_ROT_TIMEOUT_MS, rot_timeout_ms); STORE_RC_INT (cfg->crotar, SYMBOL_ROT_BEAMWIDTH, rot_beamwidth); STORE_RC_INT (cfg->crotar, SYMBOL_ROT_SADDR, rot_saddr); STORE_RC_INT (cfg->crotar, SYMBOL_ROT_MODEL, rot_model); STORE_RC_STRING (cfg->crotar, SYMBOL_ROT_REM_ROTSTR, rot_rem_rotstr); case SYMBOL_SW: cfg->sw = get_config_sw_by_number(cfg->sws, scanner->value.v_int); if (!cfg->sw){ cfg->sw = g_new0(struct config_subwin, 1); g_ptr_array_add(cfg->sws, cfg->sw); cfg->sw->nr = scanner->value.v_int; } break; STORE_RC_INT (cfg->sw, SYMBOL_SW_TYPE, type); STORE_RC_STRING (cfg->sw, SYMBOL_SW_COMMAND, command); STORE_RC_STRING (cfg->sw, SYMBOL_SW_AUTORUN, autorun); STORE_RC_INT (cfg->sw, SYMBOL_SW_RESPAWN_TIME, respawn_time); STORE_RC_STRING (cfg, SYMBOL_RIG_FILENAME, rig_filename); STORE_RC_INT (cfg, SYMBOL_RIG_MODEL, rig_model); STORE_RC_INT (cfg, SYMBOL_RIG_SPEED, rig_speed); STORE_RC_INT (cfg, SYMBOL_RIG_CIVADDR, rig_civaddr); STORE_RC_DOUBLE (cfg, SYMBOL_RIG_LO, rig_lo); STORE_RC_INT (cfg, SYMBOL_RIG_SSBCW_SHIFT, rig_ssbcw_shift); STORE_RC_INT (cfg, SYMBOL_RIG_POLL_MS, rig_poll_ms); STORE_RC_INT (cfg, SYMBOL_RIG_QRG_R2T, rig_qrg_r2t); STORE_RC_INT (cfg, SYMBOL_RIG_QRG_T2R, rig_qrg_t2r); STORE_RC_INT (cfg, SYMBOL_RIG_MODE_T2R, rig_mode_t2r); STORE_RC_INT (cfg, SYMBOL_RIG_CLR_RIT, rig_clr_rit); STORE_RC_INT (cfg, SYMBOL_RIG_VERBOSE, rig_verbose); STORE_RC_INT (cfg, SYMBOL_LOGLINES, loglines); STORE_RC_INT (cfg, SYMBOL_SKEDSHIFT, skedshift); STORE_RC_INT (cfg, SYMBOL_SKEDCOUNT, skedcount); case SYMBOL_TAKEOFF:{ gchar **items; struct takeoff *toff; if (!scanner->value.v_string) break; items=g_strsplit(scanner->value.v_string, ",", 3); if (!items[0] || !items[1] || !items[2]) { g_strfreev(items); break; } toff=g_new0(struct takeoff, 1); toff->from=atoi(items[0]); toff->to=atoi(items[1]); toff->value=atoi(items[2]); g_ptr_array_add(cfg->takeoff, toff); } break; STORE_RC_STRING(cfg, SYMBOL_OPERATOR, operator_); STORE_RC_INT (cfg, SYMBOL_GLOBAL_OPERATOR, global_operator); STORE_RC_INT (cfg, SYMBOL_GFX_X, gfx_x); STORE_RC_INT (cfg, SYMBOL_GFX_Y, gfx_y); STORE_RC_INT (cfg, SYMBOL_FONTHEIGHT, fontheight); STORE_RC_STRING(cfg, SYMBOL_SLASHKEY, slashkey); STORE_RC_INT (cfg, SYMBOL_DSSAVER, dssaver); STORE_RC_INT (cfg, SYMBOL_SPLITHEIGHT, splitheight); STORE_RC_STRING(cfg, SYMBOL_DXC_HOST, dxc_host); STORE_RC_INT (cfg, SYMBOL_DXC_PORT, dxc_port); STORE_RC_STRING(cfg, SYMBOL_DXC_USER, dxc_user); STORE_RC_STRING(cfg, SYMBOL_DXC_PASS, dxc_pass); STORE_RC_STRING(cfg, SYMBOL_KST_USER, kst_user); STORE_RC_STRING(cfg, SYMBOL_KST_PASS, kst_pass); STORE_RC_STRING(cfg, SYMBOL_KST_NAME, kst_name); } /* force logging */ #if 0 cfg->trace_sock=1; cfg->trace_qsos=1; #endif return G_TOKEN_NONE; } gint read_rc_file(gchar *filename, const char *text){ FILE *f; GScanner *scanner; guint expected; gint errors; char *buf = NULL; /* dbg("read_rc_file(%s)\n", filename);*/ f=NULL; if (filename){ long len; long rd; f=fopen(filename,"rt"); if (!f) return -1; if (fseek(f, 0L, SEEK_END)) { fclose(f); dbg("can't fseek SEEK_END\n"); return -1; } len = ftell(f); if (fseek(f, 0L, SEEK_SET)) { fclose(f); dbg("can't fseek SEEK_SET\n"); return -1; } buf = g_new0(char, len + 1); rd = fread(buf, 1, len, f); if (rd <= 0){ // rd != len under WIN32 fclose(f); dbg("can't fread(%d)=%d\n", len, rd); return -1; } buf[rd] = '\0'; // fclose(f); filename = NULL; text = buf; } scanner = g_scanner_new(NULL); scanner->config->numbers_2_int = TRUE; scanner->config->symbol_2_token = TRUE; add_symbols(scanner); if (filename){ g_scanner_input_file(scanner, fileno(f)); scanner->input_name = filename; }else{ g_scanner_input_text(scanner, text, strlen(text)); filename="internal_default.rc"; scanner->input_name = filename; } errors=0; do{ expected = read_one_token(scanner); if (expected == G_TOKEN_SYMBOL) errors++; /*dbg("expected=%d\n",expected);*/ g_scanner_peek_next_token(scanner); } while (scanner->next_token != G_TOKEN_EOF && scanner->next_token != G_TOKEN_ERROR); g_scanner_destroy(scanner); if (f) fclose(f); if (buf) g_free(buf); /* dbg("call %s\n", cfg->call);*/ if (errors){ log_addf("Found %d error%s while reading %s",errors, errors>1?"s":"",filename); dbg("Found %d error%s while reading %s\n",errors, errors>1?"s":"",filename); return errors; } return 0; } gint read_rc_line(gchar *str){ GScanner *scanner; guint expected; gint errors; scanner = g_scanner_new(NULL); scanner->config->numbers_2_int = TRUE; scanner->config->symbol_2_token = TRUE; add_symbols(scanner); g_scanner_input_text(scanner, str, strlen(str)); scanner->input_name = "network"; errors=0; do{ expected = read_one_token(scanner); if (expected == G_TOKEN_SYMBOL) errors++; /*dbg("expected=%d\n",expected);*/ g_scanner_peek_next_token(scanner); } while (expected == G_TOKEN_NONE && scanner->next_token != G_TOKEN_EOF && scanner->next_token != G_TOKEN_ERROR); if (expected != G_TOKEN_NONE){ g_scanner_unexp_token(scanner, expected, NULL, "symbol", NULL, NULL, TRUE); }; g_scanner_destroy(scanner); if (errors){ log_addf("Found %d error(s) while reading config from net", errors); } return 0; } void terminate_bh(void *xxx){ terminate=1; } void show_rc_error(cba_t cba){ msg_box(NULL, VTEXT(T_ERROR), AL_CENTER, VTEXT(T_CANT_LOAD_CFG), NULL, 1, VTEXT(T_CANCEL), terminate_bh, B_ENTER | B_ESC); } void show_rc_warning(cba_t cba){ msg_box(NULL, VTEXT(T_WARNING), AL_CENTER, VTEXT(T_ERR_RC), NULL, 1, VTEXT(T_CANCEL), NULL, B_ENTER | B_ESC); } gint read_rc_files(void){ gchar *user,*local; int fail1,fail2,fail3; cfg->loglines = 3; cfg->skedshift = 5; cfg->skedcount = 5; cfg->global_operator = 1; cfg->ssbd_plev = -1; cfg->ssbd_rlev = -1; cfg->fontheight = 16; fail1=0; user = g_strconcat(getenv("HOME"), RC_USER, NULL); fail2=read_rc_file(user, NULL); dbg("read_rc_file('%s', NULL)=%d\n", user, fail2); g_free(user); if (fail2==-1){ /* reads global config only if no user config exists */ fail1=read_rc_file(NULL, txt_tucnakrc); dbg("read_rc_file(NULL, txt_tucnakrc)=%d\n", fail1); } local = g_strconcat(getenv("HOME"), RC_LOCAL, NULL); fail3=read_rc_file(local, NULL); g_free(local); if (!cfg->pcall || !cfg->pwwlo) register_bottom_half(show_rc_error, CBA0); else if (fail1>0 || fail2>0 || fail3>0) register_bottom_half(show_rc_warning, CBA0); #ifdef HAVE_SDL if (sdl){ if (cfg->gfx_x<=0) cfg->gfx_x=106*FONT_W; if (cfg->gfx_y<=0) cfg->gfx_y=42*FONT_H; } #endif if (!cfg->ssbd_pcm_play) cfg->ssbd_pcm_play =g_strdup("hw:0,0"); if (!cfg->ssbd_pcm_rec) cfg->ssbd_pcm_rec =g_strdup("hw:0,0"); if (!cfg->ssbd_alsa_mixer) cfg->ssbd_alsa_mixer=g_strdup("hw:0"); if (!cfg->ssbd_alsa_src) cfg->ssbd_alsa_src =g_strdup("Mic"); if (!cfg->cwda_vid) cfg->cwda_vid = 0xa600; if (!cfg->cwda_pid) cfg->cwda_pid = 0xe110; if (!cfg->cwda_io_port) cfg->cwda_io_port = 0x378; if (!cfg->rig_civaddr) cfg->cwda_io_port = 0x58; #ifdef __CYGWIN__ cfg->ssbd_type=0; /* Alsa not available under cygwin */ #endif if (cfg->cwda_weight < 30){ cfg->cwda_weight = 50 + (cfg->cwda_weight * cfg->cwda_speed ) / 48; } if (cfg->cwda_weight > 70) cfg->cwda_weight = 70; return 0; } #define S(item) safe_strncpy0(ss, item, 1024) #define U(item) uc(S(item)) void save_rc_string(GString *gs){ char ss[1026]; struct term_spec *t; int i; g_string_sprintfa(gs, "# This file is generated automatically. Edit only at your own risk!\n\n"); g_string_sprintfa(gs, "pcall = \"%s\"\n", U(cfg->pcall)); g_string_sprintfa(gs, "pwwlo = \"%s\"\n", U(cfg->pwwlo)); g_string_sprintfa(gs, "pexch = \"%s\"\n", U(cfg->pexch)); g_string_sprintfa(gs, "operator = \"%s\"\n", U(cfg->operator_)); g_string_sprintfa(gs, "global_operator = %d\n", cfg->global_operator); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "padr1 = \"%s\"\n", S(cfg->padr1)); g_string_sprintfa(gs, "padr2 = \"%s\"\n", S(cfg->padr2)); g_string_sprintfa(gs, "pclub = \"%s\"\n", U(cfg->pclub)); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "rname = \"%s\"\n", S(cfg->rname)); g_string_sprintfa(gs, "rcall = \"%s\"\n", U(cfg->rcall)); g_string_sprintfa(gs, "radr1 = \"%s\"\n", S(cfg->radr1)); g_string_sprintfa(gs, "radr2 = \"%s\"\n", S(cfg->radr2)); g_string_sprintfa(gs, "rpoco = \"%s\"\n", S(cfg->rpoco)); g_string_sprintfa(gs, "rcity = \"%s\"\n", S(cfg->rcity)); g_string_sprintfa(gs, "rcoun = \"%s\"\n", S(cfg->rcoun)); g_string_sprintfa(gs, "rphon = \"%s\"\n", S(cfg->rphon)); g_string_sprintfa(gs, "rhbbs = \"%s\"\n", S(cfg->rhbbs)); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "default_rs = \"%s\"\n", U(cfg->default_rs)); g_string_sprintfa(gs, "default_rst = \"%s\"\n", U(cfg->default_rst)); g_string_sprintfa(gs, "qsop_method = %d\n", cfg->qsop_method); g_string_sprintfa(gs, "total_method = %d\n", cfg->total_method); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "as_disk_qso = %d\n", cfg->as_disk_aq); g_string_sprintfa(gs, "as_disk_min = %d\n", cfg->as_disk_am); g_string_sprintfa(gs, "as_disk_fsync = %d\n", cfg->as_disk_fsync); g_string_sprintfa(gs, "as_floppy_qso = %d\n", cfg->as_floppy_aq); g_string_sprintfa(gs, "as_floppy_min = %d\n", cfg->as_floppy_am); g_string_sprintfa(gs, "as_floppy_fsync = %d\n", cfg->as_floppy_fsync); g_string_sprintfa(gs, "as_mount_floppy = %d\n", cfg->as_mount); g_string_sprintfa(gs, "as_floppy_path = \"%s\"\n", S(cfg->as_floppy_path)); g_string_sprintfa(gs, "as_mount_cmd = \"%s\"\n", S(cfg->as_mount_cmd)); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "net_if_ignore = \"%s\"\n", S(cfg->net_if_ignore)); g_string_sprintfa(gs, "net_ip_ignore = \"%s\"\n", S(cfg->net_ip_ignore)); g_string_sprintfa(gs, "net_ip_announce = \"%s\"\n", S(cfg->net_ip_announce)); g_string_sprintfa(gs, "trace_bcast = %d\n", cfg->trace_bcast); g_string_sprintfa(gs, "trace_sock = %d\n", cfg->trace_sock); g_string_sprintfa(gs, "trace_recv = %d\n", cfg->trace_recv); g_string_sprintfa(gs, "trace_send = %d\n", cfg->trace_send); g_string_sprintfa(gs, "trace_qsos = %d\n", cfg->trace_qsos); g_string_sprintfa(gs, "trace_sdev = %d\n", cfg->trace_sdev); g_string_sprintfa(gs, "language= %d\n", current_language); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "cwda_type = %d\n", cfg->cwda_type); g_string_sprintfa(gs, "cwda_device_s = \"%s\"\n", S(cfg->cwda_device)); g_string_sprintfa(gs, "cwda_hostname = \"%s\"\n", U(cfg->cwda_hostname)); g_string_sprintfa(gs, "cwda_udp_port = %d\n", cfg->cwda_udp_port); g_string_sprintfa(gs, "cwda_io_port = 0x%x\n", cfg->cwda_io_port); g_string_sprintfa(gs, "cwda_speed = %d\n", cfg->cwda_speed); g_string_sprintfa(gs, "cwda_weight = %d\n", cfg->cwda_weight); g_string_sprintfa(gs, "cwda_minwpm = %d\n", cfg->cwda_minwpm); g_string_sprintfa(gs, "cwda_maxwpm = %d\n", cfg->cwda_maxwpm); g_string_sprintfa(gs, "cwda_spk = %d\n", cfg->cwda_spk); g_string_sprintfa(gs, "cwda_leadin = %d\n", cfg->cwda_leadin); g_string_sprintfa(gs, "cwda_vid = 0x%04x\n", cfg->cwda_vid); g_string_sprintfa(gs, "cwda_pid = 0x%04x\n", cfg->cwda_pid); g_string_sprintfa(gs, "cwda_autgive = %d\n", cfg->cwda_autgive); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "wk_wk2 = %d\n", cfg->wk_wk2); g_string_sprintfa(gs, "wk_usepot = %d\n", cfg->wk_usepot); g_string_sprintfa(gs, "wk_usebut = %d\n", cfg->wk_usebut); g_string_sprintfa(gs, "wk_keymode = %d\n", cfg->wk_keymode); g_string_sprintfa(gs, "wk_swap = %d\n", cfg->wk_swap); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "ssbd_type = %d\n", cfg->ssbd_type); g_string_sprintfa(gs, "ssbd_record = %d\n", cfg->ssbd_record); g_string_sprintfa(gs, "ssbd_maxmin = %d\n", cfg->ssbd_maxmin); g_string_sprintfa(gs, "ssbd_diskfree = %d\n", cfg->ssbd_diskfree); g_string_sprintfa(gs, "ssbd_format = 0x%x\n", cfg->ssbd_format); g_string_sprintfa(gs, "ssbd_channels = %d\n", cfg->ssbd_channels); g_string_sprintfa(gs, "ssbd_samplerate = %d\n", cfg->ssbd_samplerate); g_string_sprintfa(gs, "ssbd_plev = %d\n", cfg->ssbd_plev); g_string_sprintfa(gs, "ssbd_rlev = %d\n", cfg->ssbd_rlev); g_string_sprintfa(gs, "ssbd_template = \"%s\"\n", S(cfg->ssbd_template)); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "ssbd_dsp = \"%s\"\n", S(cfg->ssbd_dsp)); g_string_sprintfa(gs, "ssbd_maxfrag = %d\n", cfg->ssbd_maxfrag); g_string_sprintfa(gs, "ssbd_mixer = \"%s\"\n", S(cfg->ssbd_mixer)); g_string_sprintfa(gs, "ssbd_oss_src = \"%s\"\n", S(cfg->ssbd_oss_src)); /*g_string_sprintfa(gs, "ssbd_recsrc = 0x%x\n", cfg->ssbd_recsrc);*/ g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "ssbd_pcm_play = \"%s\"\n", S(cfg->ssbd_pcm_play)); g_string_sprintfa(gs, "ssbd_pcm_rec = \"%s\"\n", S(cfg->ssbd_pcm_rec)); g_string_sprintfa(gs, "ssbd_period_time = %d\n", cfg->ssbd_period_time); g_string_sprintfa(gs, "ssbd_buffer_time = %d\n", cfg->ssbd_buffer_time); g_string_sprintfa(gs, "ssbd_alsa_mixer = \"%s\"\n", S(cfg->ssbd_alsa_mixer)); g_string_sprintfa(gs, "ssbd_alsa_src = \"%s\"\n", S(cfg->ssbd_alsa_src)); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "ssbd_hostname = \"%s\"\n", S(cfg->ssbd_hostname)); g_string_sprintfa(gs, "ssbd_udp_port = %d\n", cfg->ssbd_udp_port); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "ssbd_pa_play = %d\n", cfg->ssbd_pa_play); g_string_sprintfa(gs, "ssbd_pa_rec = %d\n", cfg->ssbd_pa_rec); /* g_string_sprintfa(gs, "ssbd_pipe = %d\n", cfg->ssbd_pipe); g_string_sprintfa(gs, "ssbd_command = \"%s\"\n", cfg->ssbd_command);*/ g_string_sprintfa(gs, "\n\n"); for (i=0; icrotars->len; i++){ struct config_rotar *crot; crot = (struct config_rotar *)g_ptr_array_index(cfg->crotars, i); g_string_sprintfa(gs, "ROTAR = %d\n", crot->nr); g_string_sprintfa(gs, " rot_desc = \"%s\"\n", S(crot->rot_desc)); g_string_sprintfa(gs, " rot_type = %d\n", crot->rot_type); g_string_sprintfa(gs, " rot_filename = \"%s\"\n", S(crot->rot_filename)); g_string_sprintfa(gs, " rot_hostname = \"%s\"\n", S(crot->rot_hostname)); g_string_sprintfa(gs, " rot_port = %d\n", crot->rot_port); g_string_sprintfa(gs, " rot_vid = 0x%04x\n", crot->rot_vid); g_string_sprintfa(gs, " rot_pid = 0x%04x\n", crot->rot_pid); g_string_sprintfa(gs, " rot_serial = \"%s\"\n", S(crot->rot_serial)); g_string_sprintfa(gs, " rot_timeout_ms = %d\n", crot->rot_timeout_ms); g_string_sprintfa(gs, " rot_beamwidth = %d\n", crot->rot_beamwidth); g_string_sprintfa(gs, " rot_saddr = %d\n", crot->rot_saddr); g_string_sprintfa(gs, " rot_model = %d\n", crot->rot_model); g_string_sprintfa(gs, " rot_rem_rotstr = \"%s\"\n", S(crot->rot_rem_rotstr)); g_string_sprintfa(gs, "\n"); } g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "rig_filename = \"%s\"\n", S(cfg->rig_filename)); g_string_sprintfa(gs, "rig_model = %d\n", cfg->rig_model); g_string_sprintfa(gs, "rig_speed = %d\n", cfg->rig_speed); g_string_sprintfa(gs, "rig_civaddr = %d\n", cfg->rig_civaddr); g_string_sprintfa(gs, "rig_lo = %f\n", cfg->rig_lo); g_string_sprintfa(gs, "rig_ssbcw_shift = %d\n", cfg->rig_ssbcw_shift); g_string_sprintfa(gs, "rig_poll_ms = %d\n", cfg->rig_poll_ms); g_string_sprintfa(gs, "rig_qrg_r2t = %d\n", cfg->rig_qrg_r2t); g_string_sprintfa(gs, "rig_qrg_t2r = %d\n", cfg->rig_qrg_t2r); g_string_sprintfa(gs, "rig_mode_t2r = %d\n", cfg->rig_mode_t2r); g_string_sprintfa(gs, "rig_clr_rit = %d\n", cfg->rig_clr_rit); g_string_sprintfa(gs, "rig_verbose = %d\n", cfg->rig_verbose); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "loglines = %d\n", cfg->loglines); g_string_sprintfa(gs, "skedshift = %d\n", cfg->skedshift); g_string_sprintfa(gs, "skedcount = %d\n", cfg->skedcount); g_string_sprintfa(gs, "startband = \"%s\"\n", S(cfg->startband)); g_string_sprintfa(gs, "gfx_x = %d\n", cfg->gfx_x); g_string_sprintfa(gs, "gfx_y = %d\n", cfg->gfx_y); g_string_sprintfa(gs, "fontheight = %d\n", cfg->fontheight); g_string_sprintfa(gs, "slashkey = \"%s\"\n", S(cfg->slashkey)); g_string_sprintfa(gs, "ntpq = %d\n", cfg->ntpq); g_string_sprintfa(gs, "dssaver = %d\n", cfg->dssaver); g_string_sprintfa(gs, "splitheight = %d\n", cfg->splitheight); for (i=0; itakeoff->len;i++){ struct takeoff *toff; toff=(struct takeoff*)g_ptr_array_index(cfg->takeoff, i); g_string_sprintfa(gs, "takeoff = \"%3d,%3d,%2d\"\n", toff->from, toff->to, toff->value); } g_string_sprintfa(gs, "\n\n"); g_string_sprintfa(gs, "dxc_host = \"%s\"\n", S(cfg->dxc_host)); g_string_sprintfa(gs, "dxc_port = %d\n", cfg->dxc_port); g_string_sprintfa(gs, "dxc_user = \"%s\"\n", S(cfg->dxc_user)); g_string_sprintfa(gs, "dxc_pass = \"%s\"\n", S(cfg->dxc_pass)); g_string_sprintfa(gs, "kst_user = \"%s\"\n", S(cfg->kst_user)); g_string_sprintfa(gs, "kst_pass = \"%s\"\n", S(cfg->kst_pass)); g_string_sprintfa(gs, "kst_name = \"%s\"\n", S(cfg->kst_name)); g_string_sprintfa(gs, "\n"); for (i=0; icqs->len; i++){ struct cq *cq; cq = (struct cq *) g_ptr_array_index(cfg->cqs, i); g_string_sprintfa(gs, "CQ = %d\n", i); g_string_sprintfa(gs, " cw_str = \"%s\"\n", S(cq->cw_str)); g_string_sprintfa(gs, " cw_speed = %d\n", cq->cw_speed); g_string_sprintfa(gs, " cw_repeat = %d\n", cq->cw_repeat); g_string_sprintfa(gs, " cw_ts = %d\n", cq->cw_ts); g_string_sprintfa(gs, " cw_allowifundef = %d\n", cq->cw_allowifundef); g_string_sprintfa(gs, " ssb_file = \"%s\"\n", S(cq->ssb_file)); g_string_sprintfa(gs, " ssb_ts = %d\n", cq->ssb_ts); g_string_sprintfa(gs, " ssb_repeat = %d\n", cq->ssb_repeat); g_string_sprintfa(gs, "\n"); } g_string_sprintfa(gs, "\n"); foreach(t, term_specs){ g_string_sprintfa(gs, "TERM = \"%s\"\n", S(t->term)); g_string_sprintfa(gs, " term_mode = %d\n", t->mode); g_string_sprintfa(gs, " term_m11_hack = %d\n", t->m11_hack); g_string_sprintfa(gs, " term_restrict_852 = %d\n", t->restrict_852); g_string_sprintfa(gs, " term_col = %d\n", t->col); g_string_sprintfa(gs, " term_utf_8_io = %d\n", t->utf_8_io); g_string_sprintfa(gs, " term_charset = %d\n", t->charset); g_string_sprintfa(gs, "\n"); } g_string_sprintfa(gs, "\n"); for (i=0; isubwins->len; i++){ struct subwin *sw; sw = (struct subwin *) g_ptr_array_index(gses->subwins, i); g_string_sprintfa(gs, "SUBWIN = %d #%s\n", i, sw->title); g_string_sprintfa(gs, " sw_type = %d\n", sw->type); g_string_sprintfa(gs, " sw_command = \"\"\n"); g_string_sprintfa(gs, " sw_autorun = \"\"\n"); g_string_sprintfa(gs, " sw_respawn_time = 5\n"); g_string_sprintfa(gs, "\n"); } g_string_sprintfa(gs, "\n"); for (i=0; ibands->len; i++){ struct config_band *b; b = (struct config_band *) g_ptr_array_index(cfg->bands, i); g_string_sprintfa(gs, "PBAND = \"%s\"\n", S(b->pband)); g_string_sprintfa(gs, " bandchar = \"%c\"\n", b->bandchar); g_string_sprintfa(gs, " qrv = %d\n", b->qrv); g_string_sprintfa(gs, " psect = %d\n", b->psect); g_string_sprintfa(gs, " readonly = %d\n", b->readonly); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, " stxeq = \"%s\"\n", S(b->stxeq)); g_string_sprintfa(gs, " spowe = \"%s\"\n", S(b->spowe)); g_string_sprintfa(gs, " srxeq = \"%s\"\n", S(b->srxeq)); g_string_sprintfa(gs, " sante = \"%s\"\n", S(b->sante)); g_string_sprintfa(gs, " santh = \"%s\"\n", S(b->santh)); g_string_sprintfa(gs, " mope1 = \"%s\"\n", S(b->mope1)); g_string_sprintfa(gs, " mope2 = \"%s\"\n", S(b->mope2)); g_string_sprintfa(gs, " remarks = \"%s\"\n", S(b->remarks)); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, " ok_section_single = \"%s\"\n", S(b->ok_section_single)); g_string_sprintfa(gs, " ok_section_multi = \"%s\"\n", S(b->ok_section_multi)); g_string_sprintfa(gs, " qrg_min = %d\n", b->qrg_min); g_string_sprintfa(gs, " qrg_max = %d\n", b->qrg_max); g_string_sprintfa(gs, " adifband = \"%s\"\n", S(b->adifband)); g_string_sprintfa(gs, " cbrband = \"%s\"\n", S(b->cbrband)); g_string_sprintfa(gs, " skedqrg = \"%s\"\n", S(b->skedqrg)); g_string_sprintfa(gs, " band_lo = %f\n", b->band_lo); g_string_sprintfa(gs, " band_sw = 0x%02x\n", b->band_sw); g_string_sprintfa(gs, "\n"); } } gint save_rc_file(gchar *filename){ FILE *f; GString *gs; int ret; gs = g_string_sized_new(10000); f=fopen(filename,"wt"); if (!f) { /* c = g_strconcat("Can't open file '", filename, "'", NULL); errbox(c,0); g_free(c);*/ return errno; } save_rc_string(gs); ret = fprintf(f, "%s", gs->str) != gs->len ? errno:0; fclose(f); g_string_free(gs, TRUE); return ret; } int term_spec_init(void){ struct term_spec *ts; if (!(ts = new_term_spec("linux"))) return -1; ts->mode = 1; ts->m11_hack = 1; ts->restrict_852 = 0; ts->col = 1; ts->utf_8_io = 0; ts->charset = 2; if (!(ts = new_term_spec("xterm"))) return -1; ts->mode = 1; ts->m11_hack = 1; ts->restrict_852 = 0; ts->col = 1; ts->utf_8_io = 0; ts->charset = 2; if (!(ts = new_term_spec("screen"))) return -1; ts->mode = 1; ts->m11_hack = 1; ts->restrict_852 = 0; ts->col = 1; ts->utf_8_io = 0; ts->charset = 2; if (!(ts = new_term_spec("cygwin"))) return -1; ts->mode = 2; ts->m11_hack = 1; ts->restrict_852 = 0; ts->col = 1; ts->utf_8_io = 0; ts->charset = 2; return 0; } char *parse_options(int argc, char **argv){ int c; char *s; s=getenv("TUCNAK_DEBUG"); if (s){ if (strlen(s)!=0){ debug_type=1; debug_filename=s; }else{ debug_type=2; } } #ifdef HAVE_GETOPT_H while (1){ int option_index = 0; static struct option long_options[] = { {"debug", 2, 0, 'd'}, {"help", 0, 0, 'h'}, {"version", 0, 0, 'v'}, {0, 0, 0, 0} }; c = getopt_long (argc, argv, "dghikmstv?", long_options, &option_index); if (c == -1) break; switch (c){ case 0: /* printf ("option %s", long_options[option_index].name);*/ if (optarg) printf (" with arg %s", optarg); printf ("\n"); break; case 'd': if (optarg) { debug_type=1; debug_filename=optarg; }else{ debug_type=2; } break; case 'g': opt_g++; break; case 'h': case '?': /*printf ("option h\n");*/ break; case 'i': opt_i++; break; case 'k': debug_keyboard=1; break; case 'm': opt_m++; break; case 's': opt_s++; break; case 't': opt_t++; break; case 'v': /*printf ("option v\n");*/ break; default: printf ("?? getopt returned character code 0%o ??\n", c); } } if (optind < argc){ printf ("non-option ARGV-elements: "); while (optind < argc) printf ("%s ", argv[optind++]); printf ("\n"); } #endif #if defined(_MSC_VER) || defined(__MINGW32__) opt_t = 0; opt_g = 1; debug_type=1; debug_filename="_out.txt"; #endif return NULL; } gdouble get_rig_lo(struct band *band){ struct config_band *confb; if (!band) return cfg->rig_lo; confb = get_config_band_by_bandchar(band->bandchar); if (!confb) return cfg->rig_lo; if (!confb->band_lo) return cfg->rig_lo; return confb->band_lo; } void set_rig_lo(struct band *band, gdouble lo){ struct config_band *confb; if (!band) goto global; confb = get_config_band_by_bandchar(band->bandchar); if (!confb) goto global; if (!confb->band_lo) goto global; confb->band_lo = lo; return; global:; cfg->rig_lo = lo; } tucnak2-2.48/src/cabrillo.c0000644000175000017500000001351411715151466012474 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2010 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" static char *padr(char *dst, const char *src, int len){ int l; memset(dst, ' ', len); l = strlen(src); if (l > len) l = len; memcpy(dst, src, l); dst[len] = '\0'; return dst; } static char *padl(char *dst, const char *src, int len){ int l; memset(dst, ' ', len); l = strlen(src); if (l > len) l = len; memcpy(dst + len - l, src, l); dst[len] = '\0'; return dst; } int export_all_bands_cbr(void){ int i, err; gchar *filename; FILE *f; char callbuf[20]; int ignoreerror=0; int psect = 2; // 0=Multi, 1=Single, 2=Check char *ope[] = {"MULTI-OP", "SINGLE-OP", "CHECKLOG"}; char *ass[] = {"ASSISTED", "NON-ASSISTED", "ASSISTED"}; int maxpower = 0; char *powerstr = "HIGH"; char *cabrillo_modes[]={ "", "PH", "CW", "MI", "MI", "PH", /* 5 */ "PH", "RT", "SS", "AT" /* 9 */ }; char s[256]; char t[256]; GString *gs; if (!ctest) return -1; dbg("export_all_bands_cbr()\n"); gs = g_string_sized_new(1024); for (i=0; ibands->len;i++){ struct config_band *cb=(struct config_band *)g_ptr_array_index(cfg->bands, i); struct band *band = find_band_by_bandchar(cb->bandchar); if (!band) continue; band->cbr_confb = cb; stats_thread_join(band); if (band->stats->nqsos > 0){ int p; dbg("band %c psect = %d\n", band->bandchar, psect); if (band->psect < psect) psect = band->psect; // check has priority. It's not optimal but... dbg("band %c psect = %d\n", band->bandchar, psect); p = atoi(band->spowe); if (p > maxpower) maxpower = p; } dbg("band %c remarks = %s\n", band->bandchar, band->remarks); if (strlen(band->remarks) > 0){ if (gs->len > 0) g_string_append_c(gs, ' '); g_string_append(gs, band->remarks); } } if (maxpower > 0 && maxpower <=100) powerstr = "LOW"; if (maxpower > 0 && maxpower <=10) powerstr = "QRP"; filename = g_strdup_printf("%s/%s_%s.cbr", ctest->directory, ctest->cdate, uc(get_raw_call(callbuf,ctest->pcall))); f=fopen(filename,"wb"); /* must be b for windoze */ if (!f) { if (!ignoreerror) { errbox(VTEXT(T_CANT_WRITE), errno); ignoreerror=1;} g_free(filename); g_string_free(gs, 1); return -1; } err = 0; fprintf(f, "START-OF-LOG: 3.0\r\n"); fprintf(f, "CREATED-BY: %s %s\r\n", PACKAGE_NAME, PACKAGE_VERSION); fprintf(f, "CONTEST: %s\r\n", ctest->tname); fprintf(f, "CALLSIGN: %s\r\n", ctest->pcall); fprintf(f, "CATEGORY-OPERATOR: %s\r\n", ope[psect%3]); fprintf(f, "CATEGORY-POWER: %s\r\n", powerstr); fprintf(f, "CATEGORY-ASSISTED: %s\r\n", ass[psect%3]); fprintf(f, "LOCATION: Write here\r\n"); fprintf(f, "CLAIMED-SCORE: %d\r\n", ctest->allb_ntotal); fprintf(f, "CLUB: %s\r\n", ctest->pclub); fprintf(f, "NAME: %s\r\n", ctest->rname); fprintf(f, "ADDRESS: %s %s\r\n", ctest->radr1, ctest->radr2); fprintf(f, "ADDRESS-CITY: %s\r\n", ctest->rcity); fprintf(f, "ADDRESS-STATE-PROVINCE: Write here\r\n"); fprintf(f, "ADDRESS-POSTALCODE: %s\r\n", ctest->rpoco); fprintf(f, "SOAPBOX: %s\r\n", gs->str); for (i=0; iallqsos->len; i++){ struct qso *q = (struct qso *)g_index_array_index(ctest->allqsos, i); char *c, *d = NULL; if (!q->band) continue; // maybe connot happen, I don't want to investigate if (!q->band->cbr_confb) continue; if (ctest->excused > 0){ c = ctest->pexch; }else if (ctest->wwlused > 0){ c = ctest->pwwlo; }else if (ctest->qsoused){ c = q->qsonrs; }else{ c = " "; // 6 ks } d = NULL; if (!d && ctest->excused && strlen(q->exc) > 0) d = q->exc; if (!d && ctest->wwlused && strlen(q->locator) > 0) d = q->locator; if (!d && ctest->qsoused && strlen(q->qsonrr) > 0) d = q->qsonrr; if (!d && strlen(q->exc) > 0) d = q->exc; if (!d && strlen(q->locator) > 0) d = q->locator; if (!d && strlen(q->qsonrr) > 0) d = q->qsonrr; if (!d) d = " "; fprintf(f, "QSO: "); if (q->qrg > 0 && q->qrg < 100000000) fprintf(f, "%5d ", (int)(q->qrg / 1000.0)); else fprintf(f, "%s ", padl(s, q->band->cbr_confb->cbrband, 5)); fprintf(f, "%s ", padr(s, cabrillo_modes[q->mode], 2)); safe_strncpy(t, q->date_str, 5); strcat(t, "-"); safe_strncpy(t+5, q->date_str+4, 3); strcat(t, "-"); safe_strncpy(t+8, q->date_str+6, 3); fprintf(f, "%s ", padr(s, t, 10)); fprintf(f, "%s ", padr(s, q->time_str, 4)); fprintf(f, "%s ", padr(s, ctest->pcall,13)); fprintf(f, "%s ", padr(s, q->rsts,3)); fprintf(f, "%s ", padr(s, c, 6)); fprintf(f, "%s ", padr(s, q->callsign,13)); fprintf(f, "%s ", padr(s, q->rstr,3)); fprintf(f, "%s ", padr(s, d, 6)); fprintf(f, "\r\n"); } fprintf(f, "END-OF-LOG:\r\n"); fclose(f); if (err) { if (!ignoreerror) { errbox(VTEXT(T_CANT_WRITE), 0); ignoreerror=1; } g_free(filename); g_string_free(gs, 1); return -1; } log_addf(VTEXT(T_SAVED_S), filename); g_free(filename); g_string_free(gs, 1); return 0; } tucnak2-2.48/src/icons.inc0000644000175000017500000051640011567373656012365 00000000000000/* Automatically generated by png2inc.pl */ const unsigned char icon_norec[3817] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x08, 0x06, 0x00, 0x00, 0x00, 0x57, 0x02, 0xf9, 0x87, 0x00, 0x00, 0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xa0, 0xbd, 0xa7, 0x93, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xd7, 0x02, 0x18, 0x0e, 0x17, 0x04, 0x24, 0xf2, 0xc7, 0xa2, 0x00, 0x00, 0x0e, 0x76, 0x49, 0x44, 0x41, 0x54, 0x68, 0xde, 0xd5, 0x9a, 0x4b, 0x8c, 0x5c, 0x55, 0x7a, 0xc7, 0x7f, 0xe7, 0xdc, 0x57, 0x75, 0xdd, 0x7a, 0xf6, 0xfb, 0xe1, 0x07, 0xc6, 0x80, 0x6d, 0x0c, 0xc3, 0x63, 0x12, 0x45, 0x19, 0x25, 0x99, 0x15, 0x11, 0xbb, 0x48, 0xc9, 0x02, 0x6f, 0x22, 0x36, 0x11, 0x9a, 0x0d, 0x61, 0xc5, 0x62, 0xb2, 0x88, 0x98, 0x04, 0x85, 0x2c, 0x3c, 0x0a, 0x0a, 0xd2, 0x0c, 0x22, 0x43, 0xc4, 0x26, 0x12, 0x0c, 0x68, 0x50, 0xb2, 0x08, 0x56, 0x90, 0x8d, 0x64, 0x61, 0x0d, 0x83, 0x14, 0x32, 0xb4, 0x65, 0xc0, 0x40, 0x03, 0xed, 0xee, 0xea, 0xae, 0x7e, 0x54, 0x77, 0x55, 0x57, 0x57, 0xd5, 0xad, 0x7b, 0xef, 0x39, 0x27, 0x8b, 0x7b, 0xaa, 0x5d, 0xd8, 0xed, 0x07, 0x93, 0x64, 0x14, 0xae, 0x74, 0x55, 0x55, 0xf7, 0x71, 0xce, 0xff, 0xff, 0x7d, 0xdf, 0xf9, 0xbe, 0xef, 0x7c, 0x5f, 0xc1, 0xb7, 0xfc, 0x10, 0xfb, 0x5d, 0x34, 0xd9, 0xf5, 0xe1, 0x7b, 0x46, 0x80, 0xf9, 0x56, 0x10, 0x30, 0x20, 0x81, 0x00, 0x70, 0xed, 0x7d, 0x03, 0xa4, 0x40, 0x5f, 0x80, 0xfe, 0x6d, 0x01, 0xb3, 0x38, 0xe4, 0x10, 0x46, 0x03, 0xe8, 0x6b, 0x31, 0x88, 0x7d, 0x5e, 0x0a, 0xed, 0x59, 0x00, 0x7c, 0x0b, 0x7e, 0x17, 0xe8, 0x00, 0xbb, 0x02, 0xd4, 0x6f, 0x09, 0x7c, 0x30, 0x24, 0x48, 0x06, 0x42, 0xbc, 0x56, 0x90, 0xe2, 0x1a, 0xb3, 0x09, 0x81, 0x2a, 0x30, 0x0b, 0xcc, 0xd9, 0xef, 0x3d, 0xa0, 0x0e, 0xac, 0x02, 0x9b, 0xc0, 0xd6, 0xff, 0x25, 0x09, 0x03, 0x9e, 0x15, 0x5e, 0x19, 0xa8, 0x00, 0x23, 0x64, 0xf3, 0xb5, 0x81, 0x26, 0xb0, 0x03, 0xf4, 0x06, 0x24, 0xdc, 0xa1, 0x77, 0x7d, 0xfb, 0xf0, 0x24, 0x70, 0x1f, 0xf0, 0x5d, 0x60, 0xca, 0xbe, 0xf8, 0x39, 0x70, 0xc9, 0x7e, 0x0a, 0x03, 0x8d, 0x6f, 0x48, 0xc2, 0xdc, 0x68, 0xbd, 0x5d, 0xf3, 0x90, 0x6f, 0x81, 0x4f, 0x02, 0x87, 0x80, 0x03, 0xc0, 0x28, 0x90, 0x00, 0x35, 0x60, 0xc1, 0x3e, 0xaa, 0x8d, 0xd5, 0xc4, 0x30, 0x01, 0x09, 0xe4, 0x80, 0x09, 0xe0, 0x24, 0xf0, 0xfb, 0x76, 0x80, 0xa6, 0x1d, 0x70, 0x60, 0x52, 0x8e, 0x1d, 0x60, 0xfb, 0x36, 0x49, 0x98, 0x33, 0x67, 0xce, 0xf0, 0xe8, 0xa3, 0x8f, 0x9a, 0x5b, 0x38, 0x8e, 0xc0, 0x82, 0x3d, 0x00, 0xdc, 0x05, 0x9c, 0x00, 0xee, 0xb1, 0x42, 0x8c, 0x81, 0x8f, 0xed, 0xa3, 0x1d, 0x6b, 0x15, 0x09, 0xd7, 0x10, 0x10, 0x96, 0x44, 0x1e, 0x28, 0xda, 0xc1, 0x2a, 0x64, 0x2a, 0x15, 0x43, 0xf6, 0x68, 0xec, 0xcb, 0xdc, 0x06, 0x09, 0x73, 0xf6, 0xec, 0x59, 0xb4, 0xd6, 0x9c, 0x39, 0x73, 0x86, 0x97, 0x5f, 0x7e, 0x99, 0xd7, 0x5f, 0x7f, 0xdd, 0xec, 0x63, 0xbe, 0x81, 0x95, 0xfc, 0x9c, 0x15, 0xde, 0x43, 0xc0, 0xbd, 0x56, 0x0b, 0xe3, 0x76, 0x3e, 0x03, 0x2c, 0x02, 0x5f, 0x02, 0x1b, 0x83, 0xf7, 0xdd, 0x6b, 0xd4, 0x9c, 0x00, 0x5d, 0x2b, 0xf5, 0x0d, 0x4b, 0x26, 0x00, 0x66, 0xac, 0x76, 0x20, 0xb3, 0x3d, 0x6d, 0x07, 0xd0, 0x06, 0x5a, 0x37, 0x20, 0x61, 0x2e, 0x5c, 0xb8, 0x80, 0x52, 0x8a, 0x24, 0x49, 0x78, 0xe9, 0xa5, 0x97, 0x90, 0x52, 0xf2, 0xd8, 0x63, 0x8f, 0x01, 0xf0, 0xda, 0x6b, 0xaf, 0x19, 0x3b, 0x69, 0xce, 0x82, 0x9c, 0xb3, 0xa0, 0x7f, 0x07, 0x78, 0x10, 0xb8, 0xc3, 0xae, 0xc9, 0x81, 0xd0, 0xbc, 0x21, 0xcf, 0xb8, 0x77, 0x0c, 0x13, 0x50, 0x56, 0x35, 0x1b, 0xd6, 0xd6, 0x66, 0xac, 0xc9, 0x1c, 0xb2, 0x03, 0x95, 0xed, 0xa0, 0xca, 0xaa, 0x54, 0x5b, 0xcf, 0x20, 0x0c, 0x34, 0xaf, 0x21, 0x61, 0x3e, 0xf8, 0xe0, 0x03, 0x94, 0x52, 0xc4, 0x71, 0xcc, 0x0b, 0x2f, 0xbc, 0x40, 0xb1, 0x58, 0x44, 0xa9, 0xec, 0x91, 0x34, 0x4d, 0x39, 0x75, 0xea, 0x14, 0x6e, 0x9a, 0x32, 0xf3, 0xc6, 0x1b, 0xd1, 0x21, 0xe0, 0x57, 0xf0, 0x17, 0x76, 0xdd, 0xdd, 0x67, 0xe7, 0x1c, 0xb5, 0x60, 0x77, 0x81, 0x35, 0x60, 0x05, 0x68, 0x58, 0x01, 0xa7, 0x96, 0xd4, 0x55, 0x02, 0x02, 0x62, 0xeb, 0xbe, 0x36, 0x80, 0xcb, 0x40, 0xc9, 0x6a, 0x20, 0x37, 0x44, 0x76, 0xd2, 0x0e, 0x9a, 0x0c, 0xc5, 0x08, 0x09, 0x98, 0x21, 0x4d, 0x98, 0x4b, 0x97, 0x2e, 0xa1, 0x75, 0xe6, 0xe9, 0x9e, 0x7f, 0xfe, 0x79, 0xa6, 0xa6, 0xa6, 0x68, 0x34, 0x1a, 0x7c, 0xf5, 0xd5, 0x57, 0xac, 0xae, 0xae, 0xd2, 0x68, 0x34, 0x70, 0x92, 0x84, 0x72, 0x92, 0x70, 0x54, 0x08, 0xfe, 0x68, 0x74, 0x94, 0x97, 0x1a, 0x8d, 0x9f, 0xdd, 0x9f, 0x2d, 0xbc, 0x15, 0x2b, 0x30, 0x65, 0xe7, 0x59, 0xb7, 0x78, 0x2e, 0x59, 0x13, 0x6a, 0x59, 0x77, 0x7a, 0x9d, 0x17, 0x42, 0x40, 0x64, 0x32, 0xf3, 0xb9, 0x62, 0x3d, 0x52, 0x6e, 0x68, 0x0d, 0x4c, 0x5b, 0x73, 0xaa, 0xd8, 0x45, 0x26, 0x87, 0x08, 0x00, 0x38, 0x2e, 0xac, 0x7f, 0x78, 0xe9, 0x12, 0xae, 0xeb, 0x92, 0xa6, 0x29, 0xcf, 0x3d, 0xf7, 0x1c, 0x47, 0x8e, 0x1c, 0xe1, 0xe2, 0xc5, 0x8b, 0xd4, 0x6a, 0x35, 0xba, 0xdd, 0x2e, 0x46, 0x6b, 0xaa, 0x41, 0xc0, 0x88, 0xd6, 0xcc, 0x6a, 0xcd, 0x09, 0xad, 0xb9, 0xbb, 0xd1, 0xe0, 0x3e, 0x29, 0x39, 0xec, 0x38, 0x44, 0x49, 0x32, 0x4b, 0x36, 0xf1, 0xda, 0x10, 0xf8, 0x0f, 0x81, 0x8b, 0xc0, 0xd2, 0x80, 0xc0, 0x7e, 0x6e, 0x74, 0x40, 0x62, 0xc7, 0x6a, 0x62, 0xc1, 0x7a, 0x9c, 0x81, 0xed, 0x49, 0x1b, 0x17, 0x3c, 0x6b, 0x5e, 0xde, 0x90, 0xf7, 0x92, 0x0f, 0xc0, 0xcf, 0xff, 0xf3, 0xdc, 0x39, 0x74, 0x92, 0x90, 0x02, 0xcf, 0x3c, 0xf3, 0x0c, 0xc7, 0x8f, 0x1f, 0x67, 0x7e, 0x7e, 0x9e, 0x24, 0x49, 0x28, 0x16, 0x8b, 0x04, 0xbe, 0x4f, 0xba, 0xb3, 0x43, 0x5e, 0x6b, 0xc6, 0x92, 0x84, 0xbb, 0xd2, 0x94, 0xef, 0x08, 0xc1, 0x7d, 0xc6, 0x70, 0x87, 0x31, 0x04, 0x69, 0x4a, 0x2e, 0x0c, 0xe9, 0x69, 0xcd, 0xc5, 0x5e, 0x6f, 0xea, 0x23, 0x98, 0x7a, 0x0c, 0xfe, 0x05, 0x98, 0xb7, 0x8b, 0x77, 0x1d, 0xe8, 0x0c, 0x07, 0x32, 0xf7, 0x06, 0xde, 0xa3, 0x35, 0xe4, 0x29, 0x9c, 0x41, 0x18, 0xb7, 0x92, 0x1f, 0x2c, 0xe8, 0x2a, 0x70, 0x37, 0xe0, 0x9d, 0x86, 0x1f, 0xbe, 0xfe, 0xa3, 0x1f, 0x91, 0xac, 0xad, 0xa1, 0x8d, 0xe1, 0x6f, 0x7e, 0xf2, 0x13, 0xfe, 0xf0, 0xfb, 0xdf, 0xe7, 0xf2, 0xe5, 0xcb, 0x8c, 0x8f, 0x8f, 0x53, 0x2a, 0x95, 0xe8, 0x76, 0x3a, 0x74, 0x37, 0x37, 0xf1, 0xe3, 0x98, 0xb1, 0x24, 0xe1, 0x9e, 0x7c, 0x9e, 0xbb, 0x95, 0xe2, 0x8e, 0x34, 0x65, 0x06, 0x28, 0x1a, 0x83, 0xef, 0xfb, 0x59, 0xb8, 0x2f, 0x97, 0x11, 0x77, 0xde, 0x49, 0x79, 0x6a, 0x8a, 0x3f, 0x3e, 0x77, 0xee, 0xef, 0xbf, 0x04, 0x3e, 0xcb, 0x34, 0x7f, 0x5d, 0x26, 0x20, 0x6e, 0x11, 0xce, 0xab, 0xd6, 0x0f, 0x1f, 0x03, 0x1e, 0xb6, 0x1e, 0xe2, 0xd8, 0x90, 0x26, 0x58, 0x82, 0x30, 0x7c, 0xf0, 0x41, 0xba, 0xc7, 0x8e, 0xd1, 0x39, 0x79, 0x92, 0x7f, 0x7a, 0xf7, 0x5d, 0xee, 0x7d, 0xe4, 0x11, 0x9a, 0x5a, 0xd3, 0x68, 0xb5, 0x70, 0x1c, 0x87, 0xb8, 0xdf, 0xa7, 0xb3, 0xb9, 0x89, 0xaa, 0xd5, 0x38, 0x02, 0x9c, 0x48, 0x12, 0x0e, 0xd4, 0xeb, 0x8c, 0xd5, 0xeb, 0x94, 0xda, 0x6d, 0x9c, 0x34, 0xa5, 0x50, 0x28, 0xd0, 0xd3, 0x9a, 0x9d, 0x52, 0x89, 0x8d, 0xc9, 0x49, 0x96, 0x26, 0x27, 0x59, 0x19, 0x1b, 0x63, 0xa3, 0x50, 0x60, 0xdb, 0xf3, 0x38, 0xfd, 0xd3, 0x9f, 0x0e, 0xc4, 0x2e, 0x6e, 0x8b, 0x80, 0x25, 0xe1, 0x0c, 0x45, 0xc6, 0x13, 0xd6, 0x4b, 0x7c, 0xd7, 0x4a, 0x7e, 0x3a, 0x85, 0x90, 0x5c, 0x8e, 0xb4, 0x54, 0xa2, 0x3b, 0x37, 0xc7, 0xf9, 0x5e, 0x8f, 0xe0, 0x7b, 0xdf, 0xa3, 0x7f, 0xe7, 0x9d, 0x7c, 0x15, 0x45, 0x50, 0x2e, 0xe3, 0x04, 0x01, 0xa6, 0xdb, 0x25, 0x5a, 0x5a, 0xe2, 0x28, 0x70, 0x60, 0x6d, 0x8d, 0xea, 0xc2, 0x02, 0xe5, 0xd5, 0x55, 0x0a, 0xed, 0x36, 0x41, 0xaf, 0x87, 0xeb, 0xba, 0x74, 0x82, 0x80, 0x76, 0xb9, 0xcc, 0xc6, 0xc4, 0x04, 0x2b, 0x33, 0x33, 0x19, 0xf8, 0x30, 0xa4, 0xe5, 0xfb, 0x74, 0x8c, 0x21, 0x4e, 0x53, 0x92, 0x24, 0x61, 0x7e, 0x7e, 0x9e, 0xf7, 0xdf, 0x7f, 0x9f, 0xfd, 0xe2, 0xc0, 0x7e, 0xa9, 0xaa, 0x32, 0x99, 0x39, 0x0d, 0x82, 0xdc, 0xe0, 0xf4, 0x96, 0xe0, 0xe8, 0x4c, 0x2e, 0x87, 0x48, 0x53, 0xdc, 0x56, 0x8b, 0xb8, 0xd3, 0xe1, 0x81, 0x83, 0x07, 0xd9, 0x5e, 0x59, 0xa1, 0x53, 0x2c, 0xd2, 0x74, 0x5d, 0xe4, 0xd8, 0x18, 0x32, 0x08, 0x48, 0x9b, 0x4d, 0x26, 0x8d, 0xe1, 0x8e, 0x4e, 0x87, 0xe2, 0xe2, 0x22, 0xd5, 0x95, 0x15, 0xc2, 0x66, 0x13, 0x57, 0x29, 0xdc, 0x7c, 0x9e, 0x9e, 0x31, 0xec, 0x96, 0xcb, 0x6c, 0xcc, 0xcc, 0xb0, 0x32, 0x3d, 0xcd, 0xea, 0xf8, 0x38, 0x8d, 0x30, 0xa4, 0xed, 0x79, 0xf4, 0x85, 0x40, 0x27, 0x09, 0x5a, 0xeb, 0x3d, 0xcf, 0x76, 0xa3, 0x38, 0x70, 0x33, 0x12, 0x4d, 0xae, 0xee, 0x07, 0xe4, 0x69, 0xf8, 0xe1, 0x9f, 0x9f, 0x3c, 0x49, 0xbc, 0xb6, 0x86, 0xdf, 0x6e, 0xa3, 0xd2, 0x94, 0x92, 0x94, 0x04, 0x9b, 0x9b, 0x38, 0x8e, 0x43, 0x2e, 0x9f, 0xa7, 0x59, 0x2c, 0xd2, 0x73, 0x5d, 0x70, 0x5d, 0xfc, 0x66, 0x93, 0x72, 0xad, 0x46, 0x75, 0x7b, 0x9b, 0x52, 0xbd, 0xce, 0xc8, 0xee, 0x2e, 0x5e, 0x92, 0xe0, 0xf9, 0x3e, 0x1d, 0xc7, 0x61, 0xb7, 0x52, 0x61, 0x63, 0x6a, 0x8a, 0x95, 0xd9, 0x59, 0xd6, 0x26, 0x27, 0xd9, 0x0a, 0x43, 0x76, 0x5d, 0x97, 0x18, 0x50, 0x49, 0x82, 0x31, 0x86, 0x24, 0x49, 0x78, 0xef, 0xbd, 0xf7, 0x08, 0xc3, 0xf0, 0x9b, 0x11, 0xb8, 0x46, 0x13, 0xce, 0x03, 0xf0, 0xf3, 0x7f, 0xfc, 0xc1, 0x0f, 0xd8, 0xba, 0x72, 0x25, 0x63, 0xd4, 0xeb, 0x51, 0x14, 0x02, 0x2f, 0x49, 0x70, 0x76, 0x76, 0x10, 0x52, 0x22, 0x3d, 0x8f, 0xf1, 0x62, 0x91, 0x4e, 0xa7, 0x43, 0x5f, 0x4a, 0xbc, 0x66, 0x93, 0xf2, 0xea, 0x2a, 0xe1, 0xce, 0x0e, 0x85, 0x66, 0x13, 0x37, 0x8e, 0x33, 0xc9, 0x0b, 0xb1, 0x27, 0xf9, 0xd5, 0xb9, 0x39, 0xd6, 0xc6, 0xc6, 0xd8, 0x2e, 0x95, 0xd8, 0x75, 0xdd, 0xcc, 0xd1, 0xa7, 0x29, 0xc6, 0x18, 0xfa, 0xfd, 0xfe, 0x1e, 0xf8, 0x4e, 0xa7, 0xf3, 0xcd, 0x09, 0x0c, 0x48, 0xb8, 0xb0, 0xfe, 0xb3, 0x1f, 0xff, 0x98, 0xed, 0x4e, 0x07, 0x23, 0x04, 0x97, 0xbf, 0xf8, 0x82, 0xa3, 0xd5, 0x2a, 0xb2, 0xdd, 0xa6, 0xac, 0x35, 0xc2, 0x18, 0xfc, 0x4e, 0x87, 0x62, 0xad, 0xc6, 0x4c, 0x3e, 0x4f, 0x73, 0x7b, 0x1b, 0xe5, 0xba, 0xf8, 0xed, 0x36, 0xa5, 0x56, 0x0b, 0xbf, 0xdb, 0x45, 0xc4, 0x31, 0xae, 0x10, 0x44, 0xc0, 0x6e, 0xb5, 0x4a, 0x63, 0x76, 0x96, 0xfa, 0xc1, 0x83, 0xd4, 0xc7, 0xc7, 0xd9, 0x2e, 0x97, 0x69, 0x3b, 0x0e, 0x31, 0x60, 0xd2, 0x14, 0xa5, 0x14, 0x69, 0x9a, 0x72, 0xe1, 0xc2, 0x05, 0xaa, 0xd5, 0x2a, 0x8d, 0x46, 0x03, 0xcf, 0xf3, 0x7e, 0x33, 0x02, 0x80, 0xf9, 0x87, 0x17, 0x5e, 0xa0, 0x27, 0x04, 0xc2, 0x18, 0xde, 0x5d, 0x58, 0x60, 0xb6, 0x5a, 0x45, 0xba, 0x2e, 0x42, 0x08, 0x10, 0x82, 0x30, 0x8e, 0xf1, 0xe3, 0x18, 0x37, 0x49, 0x70, 0x92, 0x04, 0xbf, 0xd5, 0xc2, 0x08, 0x81, 0x9f, 0x24, 0x8c, 0xf4, 0xfb, 0x78, 0x4a, 0x11, 0x84, 0x21, 0x91, 0x31, 0x74, 0x4a, 0x25, 0x1a, 0x53, 0x53, 0xd4, 0x67, 0x67, 0x59, 0x1b, 0x1b, 0xa3, 0x59, 0x28, 0x64, 0x66, 0x23, 0x04, 0xca, 0xda, 0x7c, 0x9a, 0xa6, 0x9c, 0x3f, 0x7f, 0x9e, 0x4a, 0xa5, 0x42, 0xa7, 0xd3, 0x21, 0x08, 0x02, 0x76, 0x76, 0x76, 0x7e, 0x23, 0x02, 0xe6, 0xf4, 0xe9, 0xd3, 0xa4, 0x69, 0x0a, 0xae, 0xcb, 0xcb, 0xbf, 0xf8, 0x05, 0xd3, 0xf9, 0x3c, 0xfd, 0x5c, 0x0e, 0x84, 0x00, 0x29, 0x31, 0x42, 0x30, 0xdd, 0x6a, 0x65, 0xe0, 0xb5, 0xc6, 0xef, 0x76, 0x19, 0x03, 0xb4, 0xd5, 0x8c, 0xd4, 0x1a, 0xdf, 0x71, 0x88, 0xb4, 0xa6, 0x5d, 0xad, 0xb2, 0x35, 0x33, 0x43, 0xfd, 0xc0, 0x01, 0xd6, 0xa7, 0xa7, 0xd9, 0x2a, 0x95, 0xd8, 0xf5, 0x7d, 0xfa, 0xc6, 0xa0, 0x94, 0x42, 0x6b, 0x4d, 0x1c, 0xc7, 0x9c, 0x3f, 0x7f, 0x9e, 0x30, 0x0c, 0xe9, 0x76, 0xbb, 0x28, 0xa5, 0xe8, 0xf7, 0xfb, 0x18, 0x63, 0xbe, 0x31, 0x01, 0xf3, 0xec, 0xb3, 0xcf, 0x12, 0xc7, 0x31, 0xbe, 0xef, 0xf3, 0xc6, 0x1b, 0x6f, 0xe0, 0x07, 0x01, 0xdb, 0x4a, 0x81, 0x94, 0xc8, 0x5c, 0x96, 0x2a, 0xb9, 0x4a, 0x11, 0x24, 0x09, 0x9e, 0x52, 0xe4, 0xfb, 0x7d, 0x9c, 0x24, 0xc9, 0xfc, 0x9c, 0x9d, 0x50, 0xfa, 0x3e, 0xb1, 0x94, 0x44, 0x61, 0x48, 0x73, 0x62, 0x22, 0x93, 0xfc, 0xd4, 0x14, 0x8d, 0x42, 0x81, 0x6e, 0x10, 0xd0, 0x07, 0x8c, 0xf5, 0x34, 0x4a, 0x29, 0xde, 0x79, 0xe7, 0x1d, 0xf2, 0xf9, 0x3c, 0x51, 0x14, 0xed, 0x81, 0xef, 0xf7, 0xfb, 0xd7, 0x79, 0x22, 0xe7, 0x56, 0xe0, 0x9f, 0x7a, 0xea, 0x29, 0x82, 0x20, 0x40, 0x08, 0xc1, 0x8b, 0x2f, 0xbe, 0x48, 0xa9, 0x54, 0xb2, 0x65, 0x0a, 0x41, 0x27, 0x49, 0x58, 0xac, 0xd5, 0x58, 0x5f, 0x5d, 0xa5, 0xb7, 0xb9, 0x89, 0x17, 0x45, 0x14, 0xe2, 0x98, 0x50, 0x29, 0x5c, 0x63, 0xf6, 0x76, 0xe4, 0x52, 0x88, 0x2c, 0x85, 0x1d, 0x19, 0xa1, 0x35, 0x3a, 0xca, 0xfa, 0xec, 0x2c, 0xab, 0x53, 0x53, 0x6c, 0x54, 0xab, 0xec, 0x8e, 0x8c, 0x10, 0x49, 0xb9, 0x67, 0xef, 0x49, 0x92, 0xf0, 0xf6, 0xdb, 0x6f, 0x13, 0x86, 0xe1, 0x1e, 0xf8, 0x28, 0x8a, 0x48, 0x92, 0x84, 0x34, 0x4d, 0x59, 0x5e, 0x5e, 0xfe, 0x5a, 0xfc, 0xba, 0x99, 0x06, 0xcc, 0xd3, 0x4f, 0x3f, 0x8d, 0xe3, 0x38, 0xa4, 0x69, 0xca, 0x2b, 0xaf, 0xbc, 0xc2, 0xf4, 0xf4, 0x34, 0x5a, 0x6b, 0x8c, 0x31, 0xac, 0xaf, 0xaf, 0xf3, 0xe5, 0xc2, 0x02, 0x15, 0x21, 0xd0, 0x52, 0x72, 0x58, 0xca, 0xcc, 0xed, 0x69, 0x8d, 0x1e, 0x52, 0xb3, 0x10, 0x02, 0x63, 0x0c, 0x46, 0x08, 0x94, 0x94, 0xc4, 0x9e, 0x47, 0xd7, 0xf3, 0x88, 0x1c, 0x87, 0xbe, 0x94, 0x44, 0x36, 0xbd, 0x4e, 0xd3, 0x94, 0x7e, 0xbf, 0xcf, 0xd9, 0xb3, 0x67, 0x09, 0x82, 0x80, 0x38, 0x8e, 0x71, 0x1c, 0x87, 0x6e, 0xb7, 0x4b, 0x9a, 0xa6, 0x44, 0x51, 0x44, 0xbd, 0x5e, 0xe7, 0x66, 0xfb, 0x81, 0xaf, 0x81, 0x7f, 0xf2, 0xc9, 0x27, 0x33, 0x9b, 0x07, 0x5e, 0x7d, 0xf5, 0x55, 0x26, 0x26, 0x26, 0x50, 0x4a, 0xe1, 0x38, 0x0e, 0xb5, 0x5a, 0x8d, 0xe5, 0x2b, 0x57, 0xb2, 0x6d, 0x9b, 0x31, 0x8c, 0x19, 0xc3, 0x34, 0x50, 0xd5, 0x9a, 0xbc, 0x31, 0x48, 0x63, 0xb2, 0x4d, 0xb0, 0x05, 0x8f, 0xc8, 0xe6, 0x94, 0x69, 0x8a, 0x1b, 0x45, 0xf8, 0xdd, 0x2e, 0x4e, 0xaf, 0x87, 0xd8, 0xdd, 0x45, 0x6a, 0x8d, 0x92, 0x92, 0x5e, 0x14, 0x71, 0xf6, 0xec, 0x59, 0x0a, 0x85, 0x02, 0x9d, 0x4e, 0x07, 0xc7, 0x71, 0xbe, 0x66, 0x3e, 0xfb, 0x81, 0xbf, 0x91, 0x09, 0x99, 0x27, 0x9e, 0x78, 0x22, 0xf3, 0x2c, 0xc0, 0x9b, 0x6f, 0xbe, 0xc9, 0xd8, 0xd8, 0xd8, 0xde, 0xef, 0xdd, 0xdd, 0x5d, 0xbe, 0xfc, 0xfc, 0x73, 0x4a, 0x36, 0x49, 0x3a, 0xe9, 0xfb, 0xfc, 0xe9, 0xd1, 0xa3, 0xfc, 0xde, 0xc8, 0x08, 0x77, 0x19, 0xc3, 0x68, 0x9a, 0xe2, 0x69, 0x8d, 0x97, 0xcb, 0x65, 0xbb, 0x0e, 0xeb, 0xa1, 0x84, 0x31, 0x08, 0x63, 0x30, 0x52, 0x66, 0x89, 0xbe, 0x10, 0xc4, 0x42, 0x90, 0x48, 0x49, 0x37, 0x49, 0xf8, 0x8f, 0x77, 0xde, 0xa1, 0x58, 0x2a, 0xb1, 0xb3, 0xb3, 0xb3, 0x07, 0x7c, 0x20, 0xf9, 0x95, 0x95, 0x95, 0x1b, 0xa6, 0x3d, 0xd7, 0x12, 0x30, 0x8f, 0x3f, 0xfe, 0xf8, 0xde, 0x8f, 0xb7, 0xde, 0x7a, 0x8b, 0x4a, 0xa5, 0xb2, 0x07, 0x5e, 0x08, 0xc1, 0xf2, 0xe2, 0x22, 0xb9, 0x28, 0x62, 0x06, 0x78, 0x28, 0x0c, 0xf9, 0xb3, 0x23, 0x47, 0x38, 0xd1, 0xeb, 0x31, 0xd3, 0x6a, 0x51, 0xea, 0xf7, 0xf1, 0xb4, 0x26, 0xf0, 0x3c, 0x7a, 0x52, 0xd2, 0xcf, 0xe5, 0x48, 0x3c, 0x2f, 0x5b, 0x07, 0x5a, 0x67, 0x44, 0x94, 0xc2, 0x4d, 0x12, 0x44, 0x9a, 0xa2, 0x80, 0xc8, 0x18, 0xce, 0xff, 0xf2, 0x97, 0x78, 0x61, 0xc8, 0x56, 0xbb, 0x4d, 0x3f, 0x8e, 0xf7, 0xe6, 0x8a, 0xa2, 0x88, 0x5a, 0xad, 0x76, 0xd3, 0x9c, 0x6d, 0x98, 0x80, 0x39, 0x75, 0xea, 0xd4, 0xde, 0xcb, 0xe7, 0xce, 0x9d, 0xa3, 0x50, 0x28, 0x5c, 0xbd, 0x69, 0x4d, 0xa3, 0x75, 0xe5, 0x0a, 0x13, 0xc6, 0x70, 0x1c, 0x78, 0x64, 0x74, 0x94, 0xef, 0x24, 0x09, 0x93, 0xcd, 0x26, 0xd5, 0x5e, 0x8f, 0x5c, 0x9a, 0x12, 0x14, 0x8b, 0xec, 0x48, 0x49, 0xbb, 0x50, 0xa0, 0x55, 0x2e, 0xd3, 0xcd, 0xe7, 0xd1, 0x8e, 0x03, 0x56, 0x03, 0x7e, 0x92, 0xe0, 0xa5, 0x29, 0x8e, 0x52, 0x90, 0xa6, 0x7c, 0xfa, 0xd9, 0x67, 0x88, 0x5c, 0x8e, 0xdd, 0x24, 0x61, 0x37, 0x8e, 0xb3, 0x6a, 0x81, 0x10, 0xc4, 0x71, 0xcc, 0xd2, 0xd2, 0xd2, 0x2d, 0x13, 0xce, 0x61, 0x02, 0xcf, 0x94, 0xcb, 0x65, 0x8a, 0xc5, 0x22, 0x17, 0x2e, 0x5c, 0x20, 0x9f, 0xcf, 0x5f, 0xb5, 0x61, 0x40, 0x18, 0x43, 0x51, 0x29, 0xc4, 0xda, 0x1a, 0xc7, 0x87, 0x72, 0xeb, 0x23, 0x51, 0x44, 0x39, 0x8e, 0x71, 0xb5, 0x26, 0xf0, 0x7d, 0x76, 0x80, 0xad, 0x4a, 0x85, 0xb5, 0xc9, 0x49, 0xd6, 0xc7, 0xc7, 0xd9, 0x2e, 0x16, 0x89, 0x3d, 0xef, 0x2a, 0x78, 0xa5, 0x10, 0xc6, 0xe0, 0x28, 0x45, 0xb2, 0xbd, 0x8d, 0x27, 0x04, 0x51, 0x9a, 0xd2, 0x51, 0x8a, 0x3e, 0xd0, 0x53, 0x8a, 0x5e, 0x9a, 0xde, 0x16, 0xf8, 0xeb, 0x16, 0xb1, 0x94, 0x92, 0x85, 0x85, 0x05, 0x66, 0x67, 0x67, 0xd9, 0xda, 0xda, 0xda, 0xbb, 0xa6, 0x95, 0xa2, 0x60, 0x0c, 0xe5, 0x34, 0x65, 0x54, 0x08, 0x1e, 0x36, 0x86, 0x87, 0x81, 0xb9, 0x28, 0xa2, 0x24, 0x44, 0x96, 0x55, 0x16, 0x8b, 0x34, 0xb5, 0xa6, 0x59, 0x2e, 0xb3, 0x32, 0x31, 0xc1, 0xca, 0xd4, 0x14, 0xcd, 0x30, 0x04, 0x21, 0x28, 0x85, 0x21, 0x91, 0x1d, 0x47, 0x03, 0x41, 0x1c, 0x13, 0xf4, 0x7a, 0x4c, 0x49, 0x89, 0xea, 0x76, 0x89, 0x95, 0x22, 0xcd, 0xe5, 0x88, 0x1d, 0x87, 0x2e, 0xb0, 0x78, 0x83, 0x05, 0x7b, 0x4b, 0x02, 0x4a, 0x29, 0x7c, 0xdf, 0x67, 0x64, 0x64, 0x04, 0xad, 0x35, 0x52, 0x4a, 0xb6, 0xb6, 0xb6, 0xa8, 0x18, 0xc3, 0x98, 0x52, 0x1c, 0x8a, 0x63, 0x0e, 0xf9, 0x3e, 0xf7, 0xf7, 0xfb, 0x1c, 0x03, 0x2a, 0x4a, 0xa1, 0x84, 0x20, 0x17, 0x86, 0x6c, 0x6b, 0x4d, 0xa3, 0x5c, 0x66, 0x65, 0x7c, 0x9c, 0xe5, 0x89, 0x09, 0xea, 0xd5, 0x2a, 0xad, 0x91, 0x11, 0x00, 0x4a, 0x52, 0x12, 0x2b, 0x85, 0x52, 0x0a, 0x65, 0x0c, 0xe5, 0xcd, 0x4d, 0xca, 0x80, 0xa7, 0x35, 0x93, 0x00, 0x71, 0x4c, 0xaa, 0x35, 0x91, 0xe7, 0xb1, 0xd2, 0x6c, 0xd2, 0x83, 0xc3, 0x40, 0x28, 0xb2, 0x22, 0xd6, 0xed, 0x13, 0x18, 0x1d, 0x1d, 0xdd, 0x0b, 0xd7, 0x9e, 0xe7, 0x91, 0xcb, 0xe5, 0xc8, 0x45, 0x11, 0xe3, 0xc6, 0x30, 0xb6, 0xb9, 0xc9, 0xf1, 0x5e, 0x8f, 0x7b, 0xa5, 0xe4, 0x80, 0x2d, 0xdf, 0x05, 0x80, 0x57, 0xa9, 0xb0, 0xae, 0x14, 0x5b, 0xa5, 0x12, 0xb5, 0xf1, 0x71, 0x96, 0xc7, 0xc7, 0xa9, 0x57, 0x2a, 0xb4, 0x82, 0x80, 0xae, 0xef, 0x67, 0xd9, 0x64, 0x2e, 0x47, 0xbf, 0x5c, 0x26, 0x8e, 0x63, 0xea, 0x2b, 0x2b, 0xdc, 0x1b, 0x04, 0x98, 0x28, 0xa2, 0xa0, 0x75, 0x66, 0x96, 0xc6, 0x10, 0x6b, 0x4d, 0xbb, 0xd3, 0xe1, 0x6f, 0xe1, 0x2f, 0x81, 0x3b, 0x87, 0xea, 0x91, 0x9d, 0xdb, 0x26, 0xd0, 0xef, 0xf7, 0xf7, 0x16, 0xec, 0xc8, 0xc8, 0x08, 0x41, 0xb7, 0x4b, 0x59, 0x08, 0x8e, 0x18, 0xc3, 0x61, 0xad, 0x39, 0xa1, 0x14, 0x73, 0x69, 0x4a, 0x55, 0x08, 0xa4, 0x31, 0x78, 0x61, 0xc8, 0x66, 0x92, 0xb0, 0x56, 0xa9, 0xb0, 0x3c, 0x3a, 0xca, 0x95, 0xd1, 0x51, 0xd6, 0x4a, 0x25, 0x9a, 0xbe, 0x4f, 0xcf, 0x71, 0x50, 0x4a, 0x61, 0x8c, 0x21, 0x76, 0x1c, 0x3a, 0xae, 0xcb, 0xa5, 0xd5, 0x55, 0x8e, 0x17, 0x0a, 0xa0, 0x14, 0x46, 0x6b, 0xbc, 0x38, 0xc6, 0x53, 0x0a, 0xdf, 0x18, 0xa6, 0x92, 0x84, 0xc7, 0xe1, 0xd7, 0xb6, 0xa4, 0xe9, 0x0d, 0x0a, 0x0a, 0x06, 0xd6, 0x44, 0x56, 0x1b, 0xba, 0x35, 0x81, 0x76, 0xbb, 0x8d, 0xe3, 0x38, 0x78, 0xae, 0x4b, 0x18, 0x45, 0x54, 0xd2, 0x94, 0x83, 0x71, 0xcc, 0xd1, 0x9d, 0x1d, 0x4e, 0x44, 0x11, 0xb3, 0x51, 0x44, 0x55, 0x29, 0x46, 0x8c, 0x21, 0xf5, 0x7d, 0x36, 0x84, 0x60, 0xad, 0x58, 0x64, 0xb1, 0x5a, 0x65, 0x71, 0x74, 0x94, 0x95, 0x52, 0x89, 0xb6, 0xef, 0xd3, 0xb5, 0xa9, 0x01, 0xb6, 0x90, 0x95, 0x18, 0xc3, 0xaf, 0xe7, 0xe7, 0x99, 0x0c, 0x02, 0x92, 0x24, 0x41, 0xe7, 0xf3, 0x48, 0xad, 0x11, 0x4a, 0x31, 0x65, 0x0c, 0x79, 0xad, 0x99, 0xce, 0x8a, 0x65, 0x87, 0x06, 0x3b, 0xbe, 0xa1, 0x2a, 0x5c, 0x6a, 0x35, 0xb1, 0x7b, 0x4b, 0x02, 0xef, 0xbd, 0xf7, 0x1e, 0x0f, 0x3d, 0xf0, 0x00, 0x63, 0x52, 0x52, 0x50, 0x8a, 0xd9, 0x38, 0xe6, 0xee, 0x4e, 0x87, 0xe3, 0xbb, 0xbb, 0x1c, 0xee, 0xf5, 0x28, 0x27, 0x49, 0x06, 0x48, 0x4a, 0x5a, 0x5a, 0xb3, 0x24, 0x25, 0xb5, 0x72, 0x99, 0x2f, 0xcb, 0x65, 0x56, 0xc3, 0x90, 0x6d, 0xd7, 0x25, 0x72, 0x9c, 0xcc, 0x73, 0xd9, 0xac, 0xd2, 0x18, 0xc3, 0xfc, 0xfc, 0x3c, 0x5a, 0x4a, 0xea, 0x49, 0x42, 0xcf, 0xf3, 0x10, 0x4a, 0x11, 0x7b, 0x1e, 0x5a, 0x29, 0xa2, 0x38, 0xe6, 0x77, 0xb3, 0xb2, 0x7d, 0xc9, 0x56, 0x3b, 0x0e, 0xd9, 0x4f, 0x31, 0x54, 0x0d, 0x91, 0x26, 0x6b, 0x6e, 0x74, 0x6f, 0x46, 0x40, 0x18, 0x90, 0x13, 0x1f, 0x7e, 0xa8, 0x22, 0xe0, 0xbe, 0x83, 0x07, 0xb9, 0xab, 0xdf, 0xe7, 0x9e, 0x28, 0x62, 0xae, 0xdf, 0xa7, 0x94, 0x24, 0xe4, 0xb4, 0x26, 0x92, 0x92, 0x6d, 0xcf, 0xa3, 0x9e, 0xcb, 0xf1, 0x49, 0x3e, 0xcf, 0x7f, 0x75, 0x3a, 0x2c, 0xbb, 0x2e, 0xf9, 0x6a, 0x35, 0x1b, 0xdd, 0xa6, 0x1f, 0x03, 0x53, 0x9c, 0x9f, 0x9f, 0xdf, 0xcb, 0x20, 0x63, 0x9b, 0x27, 0xc5, 0x5a, 0x93, 0x78, 0x1e, 0x5b, 0x8d, 0x06, 0x8f, 0xc1, 0x3f, 0xdb, 0x5a, 0xe8, 0xac, 0x25, 0x51, 0xb2, 0x5a, 0x88, 0x6d, 0x09, 0x71, 0x30, 0xe0, 0x40, 0x13, 0xdd, 0x7d, 0x09, 0xd8, 0x06, 0x47, 0x7e, 0x23, 0x2b, 0x69, 0x1f, 0xff, 0xbb, 0xa5, 0xa5, 0x7f, 0x3b, 0x04, 0xdc, 0xe1, 0xba, 0x94, 0x95, 0x02, 0x21, 0xe8, 0x49, 0xc9, 0x8e, 0xeb, 0x52, 0xcb, 0xe5, 0xb8, 0x1c, 0x86, 0x7c, 0x12, 0x86, 0xac, 0xe5, 0x72, 0x34, 0x1c, 0x87, 0x8f, 0xbf, 0xf8, 0x82, 0x20, 0x9f, 0xe7, 0xf0, 0xe1, 0xc3, 0x7b, 0xe0, 0x3f, 0xfe, 0xf8, 0x63, 0xa4, 0x94, 0x48, 0x29, 0x89, 0xa2, 0x08, 0xd7, 0x75, 0xe9, 0x26, 0x09, 0x89, 0xeb, 0xb2, 0x7c, 0xe5, 0x0a, 0x35, 0xf8, 0x03, 0xe0, 0x7e, 0x0b, 0x21, 0x01, 0x8e, 0x0c, 0xd5, 0xa2, 0x66, 0xed, 0xf5, 0xd8, 0x9e, 0x91, 0x25, 0x91, 0x8a, 0xec, 0x37, 0x37, 0x6b, 0x70, 0x9c, 0xf8, 0x2b, 0xf8, 0x77, 0xe0, 0x58, 0x27, 0x4d, 0x8f, 0xe6, 0x6d, 0x45, 0x75, 0xc3, 0x75, 0x59, 0xf6, 0x7d, 0x3e, 0x09, 0x02, 0x3e, 0x1b, 0x19, 0xe1, 0xca, 0xc8, 0x08, 0x4d, 0xcf, 0x63, 0x57, 0x4a, 0x02, 0xbb, 0xd5, 0x9b, 0x9f, 0x9f, 0xc7, 0xf7, 0x7d, 0xa4, 0x94, 0xf8, 0xbe, 0x4f, 0x14, 0x45, 0x44, 0x51, 0x84, 0xe7, 0x79, 0x24, 0x76, 0x83, 0xfe, 0x69, 0xb6, 0x9f, 0xce, 0x43, 0xb6, 0xe7, 0x19, 0x2a, 0x14, 0x1b, 0x6b, 0x42, 0x15, 0x5b, 0xe2, 0x1f, 0xd4, 0xa4, 0x7a, 0xb6, 0x33, 0xd3, 0x06, 0xba, 0xd6, 0x9c, 0xd2, 0x6b, 0x09, 0x0c, 0x1a, 0x1c, 0xa3, 0x64, 0x7e, 0xf8, 0x28, 0x30, 0x15, 0x66, 0x6e, 0xcc, 0x6c, 0x18, 0x53, 0xf8, 0x28, 0x49, 0xf8, 0x3c, 0x9f, 0xe7, 0x23, 0x29, 0xa9, 0x69, 0xcd, 0x56, 0x1c, 0xd3, 0x15, 0x02, 0xe9, 0x5e, 0x1d, 0xa6, 0x50, 0x28, 0x90, 0xa6, 0x29, 0xcd, 0x66, 0x93, 0x52, 0xa9, 0x44, 0xaf, 0xd7, 0x43, 0x4a, 0x49, 0x9a, 0xa6, 0x68, 0xad, 0x59, 0x5c, 0x5c, 0xb4, 0xc9, 0x02, 0x98, 0xac, 0x54, 0xa8, 0x87, 0xaa, 0xe3, 0x7a, 0x48, 0xb0, 0xa1, 0x15, 0xea, 0x41, 0x2b, 0xfd, 0x9a, 0x2d, 0xee, 0xae, 0x0f, 0xb4, 0x71, 0xdd, 0x1a, 0x18, 0xf2, 0x00, 0xde, 0x50, 0x71, 0xb7, 0x0d, 0xd4, 0x0f, 0xc3, 0xc2, 0x61, 0xf8, 0xe0, 0x4f, 0x5a, 0xad, 0xbf, 0xbe, 0xdc, 0x6a, 0xe1, 0xcd, 0xcc, 0xb0, 0xab, 0x35, 0x4e, 0x92, 0xe0, 0x79, 0x1e, 0xae, 0xeb, 0xe2, 0x38, 0x0e, 0xae, 0xdd, 0x23, 0x1b, 0x63, 0xf6, 0xcc, 0x26, 0x8b, 0x55, 0xd7, 0xe7, 0x36, 0xb6, 0x22, 0xde, 0x18, 0xf4, 0x1a, 0xb8, 0xda, 0xde, 0x55, 0xb6, 0x53, 0x53, 0xb5, 0xe7, 0xb8, 0xd5, 0x4a, 0xfe, 0xda, 0x1e, 0xc1, 0x7e, 0x0d, 0x8e, 0x6d, 0xdb, 0xd0, 0x5b, 0xb0, 0x4c, 0x5b, 0xf6, 0xfb, 0x45, 0xe0, 0xc3, 0x7f, 0xcd, 0x9a, 0x10, 0x75, 0xb1, 0xba, 0xba, 0x05, 0x30, 0x3d, 0x3d, 0x8d, 0xeb, 0xba, 0x7b, 0x04, 0x3c, 0xcf, 0xdb, 0xdb, 0x16, 0x0e, 0x4e, 0xe0, 0x86, 0xb9, 0x8d, 0x80, 0xfe, 0x90, 0x26, 0x06, 0x44, 0xfa, 0xf6, 0x3c, 0x62, 0x85, 0xb8, 0x6d, 0x4d, 0x28, 0xb2, 0xf7, 0xcd, 0xcd, 0x1a, 0x1c, 0xeb, 0xb6, 0x9c, 0x9d, 0x5a, 0xe6, 0x5d, 0xab, 0xba, 0x4f, 0xed, 0x67, 0x43, 0x64, 0x85, 0x2e, 0x01, 0x50, 0xaf, 0xd7, 0x0d, 0xc0, 0xc4, 0xc4, 0xc4, 0xd7, 0x34, 0x90, 0xa6, 0x29, 0x8e, 0x0d, 0x66, 0x37, 0xcb, 0xe7, 0xed, 0x8d, 0x64, 0x48, 0x13, 0xca, 0x02, 0xdd, 0xb1, 0x66, 0x13, 0x00, 0xcb, 0x76, 0xfe, 0x2d, 0x4b, 0xcc, 0xdc, 0xa8, 0x4f, 0x9c, 0xb3, 0x6e, 0x6c, 0xdc, 0x2e, 0xb0, 0x92, 0x7d, 0x61, 0xcb, 0xb6, 0x58, 0x5b, 0xe2, 0x6a, 0xe5, 0x7a, 0xbf, 0x4e, 0x24, 0x95, 0x4a, 0x05, 0xc7, 0xc9, 0x92, 0xdc, 0x20, 0x08, 0x6e, 0x09, 0x7e, 0x9f, 0x2e, 0xe5, 0xa8, 0xcd, 0x54, 0x66, 0x2d, 0x0e, 0xcf, 0xce, 0x5f, 0xb3, 0x96, 0xd1, 0xb4, 0x6d, 0x56, 0x73, 0xa3, 0x4e, 0x7d, 0xce, 0xda, 0xff, 0xa0, 0xa9, 0x37, 0x68, 0x30, 0xf7, 0x44, 0x26, 0x99, 0xdb, 0x69, 0xa9, 0x32, 0x37, 0x37, 0x77, 0xcb, 0xcd, 0xc8, 0x2d, 0xfa, 0xc4, 0x05, 0x6b, 0xf3, 0xd2, 0xce, 0x3f, 0x68, 0xb6, 0xf7, 0xf6, 0x6d, 0x74, 0xef, 0x23, 0x09, 0x31, 0x14, 0x0d, 0xcd, 0xb0, 0xef, 0xfd, 0xdf, 0xec, 0x0d, 0xdf, 0xa4, 0x2a, 0x1e, 0xd8, 0x78, 0x20, 0x86, 0xdc, 0x6c, 0x7c, 0xd3, 0xbf, 0x1a, 0xfc, 0x7f, 0x3a, 0xbe, 0x4d, 0x7f, 0x38, 0xf9, 0x1f, 0x1d, 0xff, 0x0d, 0x05, 0x0a, 0x46, 0xbb, 0xe1, 0x23, 0xb9, 0x79, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; const unsigned char icon_play[2832] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x08, 0x06, 0x00, 0x00, 0x00, 0x57, 0x02, 0xf9, 0x87, 0x00, 0x00, 0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xa0, 0xbd, 0xa7, 0x93, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x88, 0x00, 0x00, 0x0b, 0x88, 0x01, 0xe5, 0x8e, 0x29, 0x49, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xd7, 0x02, 0x17, 0x10, 0x35, 0x01, 0xbd, 0xf1, 0xeb, 0x21, 0x00, 0x00, 0x0a, 0x9d, 0x49, 0x44, 0x41, 0x54, 0x68, 0xde, 0xed, 0x59, 0x7b, 0x70, 0x14, 0xf5, 0x1d, 0xff, 0xec, 0xfe, 0xf6, 0x71, 0xb7, 0x97, 0x5c, 0x72, 0xb9, 0x5c, 0x92, 0x23, 0xb9, 0x10, 0x0d, 0x24, 0x04, 0xb1, 0x0d, 0x34, 0x22, 0x54, 0x81, 0x58, 0xf1, 0xd5, 0xb4, 0x09, 0x76, 0xda, 0xa2, 0x53, 0x1d, 0xa3, 0x0e, 0x96, 0xa9, 0x40, 0x74, 0x46, 0xac, 0x63, 0xad, 0xca, 0x54, 0x1c, 0x06, 0x8a, 0x36, 0xc8, 0x68, 0xa7, 0x8e, 0x43, 0xfa, 0xb0, 0x94, 0x3a, 0x15, 0x8c, 0x13, 0x51, 0xb4, 0x12, 0xb5, 0x45, 0x0a, 0x29, 0xa6, 0x5a, 0x79, 0xcc, 0x10, 0x12, 0x0c, 0x49, 0x48, 0x8e, 0x7b, 0x71, 0x97, 0x7b, 0xec, 0xb3, 0x7f, 0xdc, 0xed, 0xde, 0x23, 0x77, 0x81, 0x04, 0x3a, 0xd3, 0xe9, 0xf0, 0x9d, 0xd9, 0xb9, 0xdd, 0xfd, 0xfd, 0x6e, 0xf7, 0xf3, 0xf9, 0xbe, 0x7e, 0xdf, 0xdf, 0x77, 0x81, 0x2b, 0x72, 0x45, 0xae, 0xc8, 0xff, 0x94, 0x34, 0xb5, 0x37, 0xd7, 0x37, 0xb5, 0x37, 0x37, 0x5e, 0xec, 0x7c, 0xe6, 0x72, 0xbd, 0xf8, 0x89, 0x2d, 0x5b, 0x96, 0xd3, 0x84, 0x3c, 0x08, 0x86, 0xa9, 0x06, 0x00, 0xc8, 0x72, 0x1f, 0x2d, 0xcb, 0x4f, 0x3d, 0xf7, 0xf8, 0xe3, 0x7d, 0x53, 0x7c, 0x54, 0x21, 0x80, 0x67, 0x9a, 0xda, 0x9b, 0x77, 0x03, 0x68, 0xef, 0x6a, 0xeb, 0x7c, 0x76, 0xb2, 0xc9, 0xd4, 0xa5, 0x02, 0x5f, 0xbf, 0x79, 0x73, 0x35, 0x93, 0x9f, 0xbf, 0xdf, 0x36, 0x7b, 0xb6, 0xab, 0xd8, 0x6e, 0x47, 0x9e, 0x20, 0x00, 0x00, 0x42, 0xe1, 0x30, 0xfa, 0xfb, 0xfa, 0x34, 0x69, 0x78, 0xb8, 0x67, 0xd3, 0xba, 0x75, 0x0b, 0xa7, 0x61, 0x89, 0xdd, 0x00, 0x56, 0x00, 0xe8, 0xe8, 0x6a, 0xeb, 0xbc, 0xff, 0xbf, 0x42, 0x60, 0xfd, 0xe6, 0x17, 0x5b, 0xa9, 0x62, 0xdb, 0xaf, 0x17, 0x37, 0x7e, 0x8b, 0x9f, 0x55, 0xe9, 0x42, 0x64, 0x1c, 0x18, 0x3d, 0xdd, 0x0f, 0x9a, 0x26, 0x28, 0xad, 0xac, 0x04, 0xc5, 0x4a, 0x38, 0xd6, 0xdf, 0x8f, 0xcf, 0x0f, 0x7e, 0x1a, 0xd3, 0xce, 0x8d, 0x5d, 0xb3, 0x65, 0x0a, 0xd6, 0x68, 0x6a, 0x6f, 0x2e, 0x04, 0xd0, 0x9f, 0xb0, 0xc8, 0x9d, 0x5d, 0x6d, 0x9d, 0x7b, 0x2e, 0x2b, 0x81, 0xf5, 0x9b, 0x37, 0x57, 0x2b, 0x85, 0x25, 0x5f, 0xde, 0xb1, 0xe2, 0x4e, 0xde, 0x5e, 0x60, 0xc5, 0x9b, 0x2f, 0xbf, 0x82, 0x83, 0x5d, 0x6f, 0x42, 0x10, 0x04, 0x98, 0x4c, 0x26, 0xd8, 0x8a, 0x1d, 0xb8, 0xee, 0xb6, 0x16, 0x2c, 0xb8, 0xfd, 0x16, 0x78, 0x02, 0xe7, 0xb1, 0x77, 0xcf, 0xee, 0xd8, 0x0b, 0x0f, 0xb5, 0x9a, 0xf4, 0xff, 0x2f, 0xb8, 0x67, 0x41, 0xab, 0xf3, 0xba, 0x8a, 0x01, 0x00, 0xbd, 0x5d, 0x6d, 0x9d, 0xfe, 0x1c, 0x24, 0x5a, 0x01, 0xec, 0x00, 0xe0, 0x07, 0x70, 0x55, 0xb6, 0x79, 0xf4, 0x74, 0x09, 0x84, 0x2d, 0xf6, 0xde, 0x1b, 0x6e, 0xfd, 0x0e, 0x6f, 0xb1, 0x58, 0xf1, 0xf4, 0x3d, 0x77, 0xe3, 0x83, 0x5d, 0xbf, 0x83, 0xa2, 0x28, 0xc6, 0x11, 0x0e, 0x9e, 0x47, 0xcf, 0xde, 0x37, 0xf1, 0xc9, 0xae, 0x37, 0x60, 0xb1, 0x58, 0x51, 0x77, 0xfd, 0x12, 0xfe, 0xe1, 0x2d, 0xdb, 0x8f, 0x66, 0x3c, 0xe6, 0x45, 0x00, 0xfd, 0x09, 0xa0, 0x13, 0xa4, 0xab, 0xad, 0xb3, 0x03, 0x40, 0x77, 0xc2, 0x0a, 0x59, 0xe7, 0x4c, 0x8b, 0xc0, 0x9a, 0x8d, 0x2f, 0xec, 0x74, 0xd6, 0x2e, 0xc8, 0xb3, 0x17, 0xda, 0xf1, 0x9b, 0x9f, 0x3f, 0x89, 0x81, 0x63, 0xff, 0x4e, 0x03, 0xaf, 0x69, 0x9a, 0x71, 0x3e, 0xf0, 0xd9, 0xa7, 0x38, 0xb6, 0xbf, 0x1b, 0xb3, 0x67, 0x5e, 0x0d, 0x6b, 0xed, 0xfc, 0xba, 0x35, 0x1b, 0xb7, 0xfe, 0x0c, 0x00, 0x8e, 0xfc, 0xe1, 0x48, 0x07, 0x80, 0x9b, 0x12, 0x8f, 0xdc, 0xd1, 0xd4, 0xde, 0xbc, 0x22, 0xc7, 0xeb, 0xda, 0x13, 0xbf, 0x6d, 0x97, 0x85, 0xc0, 0x8c, 0x96, 0xfb, 0x97, 0x87, 0xad, 0xce, 0x1f, 0xd4, 0xd5, 0xd4, 0xe0, 0x8b, 0x7f, 0x1c, 0xc6, 0xc7, 0x7b, 0x76, 0x41, 0x55, 0xd5, 0x34, 0x02, 0x3a, 0x09, 0xfd, 0xfe, 0xc9, 0xbf, 0xef, 0x83, 0x7f, 0xd4, 0x83, 0xda, 0x9a, 0x5a, 0x44, 0xcc, 0x85, 0x4f, 0xa4, 0x68, 0xd8, 0x0f, 0xe0, 0xd1, 0x14, 0x12, 0x85, 0x59, 0xac, 0xb0, 0x07, 0xc0, 0x00, 0x80, 0xaa, 0xa6, 0xf6, 0xe6, 0xfa, 0x4b, 0x22, 0xe0, 0xf8, 0xde, 0xea, 0x56, 0xc5, 0x54, 0xba, 0xef, 0xe6, 0x3b, 0x9a, 0x09, 0xc7, 0x09, 0x78, 0xf5, 0xa9, 0xb5, 0xd0, 0x34, 0xcd, 0x38, 0x74, 0x49, 0xbd, 0xd6, 0xcf, 0x07, 0xfe, 0xf6, 0x0e, 0xec, 0x85, 0x76, 0x98, 0x9c, 0x73, 0xf2, 0x1e, 0xda, 0x10, 0xb7, 0xc2, 0xc5, 0xba, 0x09, 0x00, 0x3d, 0x80, 0xef, 0x9b, 0x36, 0x01, 0xfb, 0xf7, 0x1f, 0xde, 0xe6, 0x0d, 0xd2, 0xaf, 0x3d, 0xfa, 0xd3, 0xc7, 0x28, 0xb3, 0x59, 0xc0, 0xc7, 0xbb, 0x77, 0xe1, 0xdc, 0xd0, 0x60, 0xda, 0x9c, 0xc9, 0x88, 0x04, 0x87, 0x4f, 0x23, 0xe8, 0x1e, 0x83, 0xab, 0xc2, 0x85, 0x71, 0x5a, 0xf8, 0xf1, 0x54, 0xdc, 0x04, 0xc0, 0x5b, 0x89, 0xdf, 0xc6, 0x69, 0x11, 0x28, 0x58, 0xf9, 0xe8, 0x4e, 0x1f, 0x5b, 0xb1, 0xb6, 0xe4, 0x87, 0xf7, 0xd1, 0x55, 0x0e, 0x3b, 0x44, 0x15, 0x38, 0xb2, 0xff, 0x9d, 0x78, 0x1a, 0xa3, 0x28, 0x34, 0x34, 0x34, 0x60, 0xd5, 0xaa, 0x55, 0x58, 0xb9, 0x72, 0x25, 0x9c, 0x4e, 0x67, 0x32, 0xc5, 0x51, 0x14, 0x28, 0x2a, 0x99, 0xe8, 0xbc, 0x47, 0x0f, 0xc3, 0x39, 0xa3, 0x0c, 0x21, 0xbe, 0xa8, 0x22, 0x8b, 0x9b, 0xf8, 0x73, 0xb9, 0x49, 0x57, 0x5b, 0x67, 0x77, 0xe2, 0xb4, 0x3e, 0xd3, 0xcd, 0x26, 0xac, 0xc4, 0x05, 0xb7, 0xde, 0xb5, 0x4f, 0x55, 0x34, 0x63, 0x12, 0x6d, 0xb1, 0x97, 0x29, 0xc5, 0x5f, 0x77, 0xcd, 0x5c, 0xb2, 0x18, 0xd7, 0x97, 0x5a, 0x11, 0x13, 0x15, 0x44, 0x43, 0xe7, 0xf1, 0x45, 0xf7, 0xbb, 0xe0, 0x38, 0x0e, 0x2d, 0x2d, 0x2d, 0xd8, 0xb4, 0x69, 0x13, 0x08, 0x21, 0x20, 0x84, 0x00, 0x00, 0xb6, 0x6f, 0xdf, 0x8e, 0x03, 0x07, 0x0e, 0x18, 0x24, 0xf4, 0xfb, 0x91, 0xe1, 0x3e, 0xe4, 0x83, 0x86, 0xcd, 0xe1, 0xa2, 0x7e, 0xf4, 0xe4, 0x2f, 0xb7, 0xbd, 0xfe, 0xfc, 0x63, 0xeb, 0x32, 0xdc, 0xa4, 0x35, 0xa1, 0xe5, 0xde, 0x2c, 0x7a, 0xec, 0x4e, 0x8c, 0xd5, 0x27, 0xce, 0x27, 0x12, 0xb0, 0xb7, 0x3c, 0xb0, 0xcd, 0x37, 0xce, 0xdd, 0x42, 0x15, 0xda, 0xe2, 0x83, 0x0c, 0x8b, 0x79, 0x4b, 0xee, 0x40, 0x55, 0x5d, 0x0d, 0x00, 0xe0, 0x9a, 0x22, 0x33, 0x44, 0x55, 0x45, 0x6f, 0xf7, 0x5e, 0x10, 0x42, 0x30, 0x67, 0xce, 0x1c, 0x6c, 0xd8, 0xb0, 0x61, 0x62, 0x96, 0x5a, 0xb3, 0x06, 0x3c, 0xcf, 0xe3, 0xf0, 0xe1, 0xc3, 0x20, 0x84, 0x80, 0xa2, 0x28, 0xd0, 0x34, 0x0d, 0x4d, 0x8a, 0x21, 0x3c, 0x36, 0x88, 0x02, 0xbb, 0x0d, 0x83, 0x27, 0x99, 0xe5, 0x59, 0xdc, 0xa4, 0x15, 0x40, 0x0b, 0x80, 0x5f, 0x65, 0x21, 0xd0, 0x7b, 0x41, 0x02, 0xbe, 0x71, 0xfe, 0x27, 0xec, 0xcd, 0xdf, 0x05, 0x65, 0xcd, 0x07, 0x00, 0xdc, 0x5a, 0x33, 0x1b, 0x73, 0x4a, 0x4a, 0x8d, 0x71, 0x2b, 0x13, 0x45, 0x4c, 0x56, 0xd1, 0xf7, 0xd9, 0xa7, 0x20, 0x84, 0x60, 0xf5, 0xea, 0xd5, 0x46, 0xb6, 0xa1, 0x69, 0xda, 0xf8, 0x05, 0x80, 0x7b, 0xef, 0xbd, 0x17, 0x5f, 0x7d, 0xf5, 0x15, 0x22, 0x91, 0x08, 0x68, 0x9a, 0x36, 0x48, 0xc8, 0x9e, 0x61, 0x58, 0xf2, 0x67, 0x62, 0x5c, 0xe3, 0x5d, 0x59, 0x34, 0x8c, 0x04, 0xc0, 0x6c, 0x72, 0x3a, 0xa5, 0x56, 0x9a, 0x18, 0x03, 0x0b, 0x56, 0x3f, 0xd3, 0x9a, 0x57, 0x35, 0x9f, 0x7c, 0x6d, 0xee, 0x35, 0xb8, 0xb6, 0xa2, 0x12, 0xd7, 0x56, 0x54, 0x62, 0x79, 0x5d, 0x29, 0x66, 0x95, 0x00, 0xb3, 0x4a, 0x80, 0x6a, 0x07, 0xa0, 0xaa, 0x1a, 0x24, 0x59, 0xc5, 0xb9, 0xfe, 0x13, 0xa8, 0xa8, 0xa8, 0xc0, 0x8d, 0x37, 0xde, 0x08, 0x55, 0x55, 0xb3, 0x1e, 0x1c, 0xc7, 0xa1, 0xa9, 0xa9, 0xc9, 0x70, 0x2d, 0x3d, 0x1e, 0xb4, 0x90, 0x07, 0x8e, 0xe2, 0x22, 0x04, 0x60, 0xcd, 0xcb, 0xf0, 0x73, 0x7f, 0x22, 0x0e, 0x0a, 0x73, 0x10, 0xd0, 0xdd, 0x6a, 0x59, 0x56, 0x02, 0x82, 0xe0, 0x78, 0x7c, 0xf1, 0xd2, 0x25, 0x58, 0x54, 0xe1, 0xc4, 0xa2, 0x0a, 0x27, 0x96, 0x5f, 0x5d, 0x09, 0x13, 0x49, 0x4e, 0x94, 0x65, 0x20, 0xaa, 0x28, 0x88, 0x2a, 0x0a, 0xfc, 0x83, 0x7d, 0x58, 0xba, 0x74, 0x29, 0x64, 0x59, 0x86, 0x2c, 0xcb, 0x90, 0x24, 0x09, 0xb2, 0x2c, 0x4f, 0x58, 0x0b, 0xea, 0xea, 0xea, 0x40, 0x08, 0x01, 0x4d, 0xd3, 0xa0, 0x69, 0x1a, 0x84, 0x10, 0x30, 0x91, 0xf3, 0x88, 0x2a, 0x0a, 0x54, 0x8a, 0xc6, 0x8a, 0xf5, 0xbf, 0xa8, 0xce, 0x06, 0x32, 0x47, 0x39, 0xed, 0x9f, 0x74, 0x21, 0x73, 0x54, 0x98, 0x5d, 0x8d, 0x0b, 0x1d, 0x68, 0xa8, 0x62, 0xd1, 0x50, 0xc5, 0xa2, 0xc2, 0x06, 0x78, 0x83, 0xc9, 0x23, 0x10, 0x54, 0x11, 0x93, 0x55, 0x9c, 0x3d, 0x75, 0x02, 0x3c, 0xcf, 0x63, 0xde, 0xbc, 0x79, 0x90, 0x24, 0xc9, 0x00, 0x2f, 0x8a, 0x22, 0x44, 0x51, 0x34, 0xee, 0x49, 0x92, 0x04, 0x42, 0x08, 0x66, 0xcd, 0x9a, 0x65, 0x90, 0x20, 0x84, 0x80, 0x91, 0xc2, 0x88, 0xc9, 0x2a, 0x4c, 0x16, 0x0b, 0x14, 0x85, 0xbe, 0xeb, 0x62, 0x40, 0x26, 0x2c, 0xa4, 0x5b, 0xa0, 0x2a, 0x6b, 0x16, 0x1a, 0x1c, 0x77, 0xe4, 0x2d, 0x26, 0x76, 0x8c, 0x7a, 0xe3, 0xd7, 0xe7, 0xc3, 0x31, 0x48, 0x8a, 0x92, 0x64, 0xaa, 0x2a, 0x20, 0x8a, 0x86, 0x58, 0x28, 0x08, 0x9e, 0xe7, 0x61, 0xb3, 0xd9, 0x20, 0x8a, 0xa2, 0x91, 0xef, 0x19, 0x86, 0x31, 0x80, 0x52, 0x14, 0x65, 0xac, 0x01, 0xe5, 0xe5, 0xe5, 0x18, 0x1b, 0x1b, 0x33, 0xc6, 0x09, 0x21, 0x50, 0x25, 0x11, 0x8a, 0x02, 0xa8, 0xea, 0x04, 0x9c, 0xff, 0x4a, 0x94, 0xd0, 0x55, 0x93, 0x64, 0xf5, 0xec, 0x04, 0xfc, 0xee, 0x73, 0x38, 0xeb, 0x0d, 0x18, 0x03, 0x31, 0x59, 0x86, 0xaa, 0x25, 0x09, 0xb0, 0x14, 0x01, 0x47, 0x51, 0x90, 0x34, 0xc0, 0x64, 0x32, 0xc1, 0xe1, 0x70, 0x20, 0x1a, 0x8d, 0x1a, 0x41, 0xcc, 0xb2, 0x6c, 0x9a, 0xaf, 0x03, 0x30, 0x4a, 0x09, 0x1d, 0x3c, 0xc3, 0x30, 0x71, 0x77, 0x0a, 0xfb, 0x21, 0xca, 0x12, 0x54, 0xa8, 0x17, 0x05, 0xf2, 0xa2, 0x76, 0x64, 0x7e, 0xcf, 0x10, 0xce, 0x78, 0xdc, 0xc9, 0x45, 0x88, 0xa6, 0xd2, 0xaa, 0x6d, 0x0b, 0xcb, 0xc3, 0xc2, 0xf1, 0x50, 0x01, 0x98, 0xcd, 0x66, 0x44, 0x22, 0x11, 0x03, 0xbc, 0x1e, 0x0b, 0xba, 0x05, 0x74, 0x51, 0x55, 0x15, 0x36, 0x9b, 0x2d, 0xcd, 0x3a, 0x84, 0x10, 0xc8, 0x9a, 0x06, 0xb3, 0xd5, 0x8a, 0x71, 0x0f, 0xbd, 0x0c, 0xc0, 0xc6, 0x4b, 0xd9, 0x93, 0x18, 0x04, 0xc2, 0x01, 0x0f, 0xce, 0x06, 0x7c, 0xc6, 0x00, 0x47, 0x18, 0xd0, 0x54, 0x12, 0x8c, 0x26, 0x68, 0x20, 0x14, 0x03, 0x45, 0x03, 0x04, 0x41, 0x40, 0x24, 0x12, 0x31, 0x34, 0xcc, 0x71, 0x5c, 0x4e, 0x0b, 0x88, 0xa2, 0x08, 0x86, 0x61, 0x8c, 0x71, 0x96, 0x65, 0x21, 0xa9, 0x1a, 0x44, 0x49, 0x06, 0x51, 0xb5, 0x4b, 0xde, 0xca, 0x1a, 0x04, 0xa2, 0x01, 0x0f, 0x4e, 0x7a, 0xbd, 0xc9, 0xc2, 0xcd, 0x2c, 0xc0, 0x44, 0x92, 0x69, 0x88, 0x65, 0x58, 0x98, 0x79, 0x01, 0x2a, 0x45, 0x60, 0x32, 0x99, 0x20, 0xcb, 0x32, 0x34, 0x4d, 0x33, 0x02, 0x38, 0x17, 0x01, 0xb7, 0xdb, 0x0d, 0x8e, 0xe3, 0x0c, 0xf0, 0x84, 0x10, 0xc8, 0xaa, 0x06, 0x9f, 0xc7, 0x8b, 0x52, 0x28, 0x1f, 0x5d, 0x36, 0x02, 0x6a, 0xd8, 0x0b, 0x6f, 0xd0, 0x93, 0x74, 0x21, 0x4d, 0x06, 0x4f, 0xd8, 0x24, 0x01, 0x5e, 0x40, 0x9e, 0xa0, 0x82, 0x42, 0xdc, 0x02, 0xa3, 0xa3, 0xa3, 0x28, 0x2e, 0x2e, 0x36, 0x5c, 0x48, 0x14, 0x45, 0x63, 0xb1, 0x4a, 0x2d, 0xe6, 0x14, 0x45, 0x31, 0xc0, 0x33, 0x0c, 0x03, 0x86, 0x61, 0x30, 0x06, 0x33, 0x24, 0x45, 0x81, 0xac, 0x2a, 0xb8, 0x40, 0xce, 0xbf, 0x78, 0x02, 0x2c, 0xa7, 0x86, 0xd4, 0xbe, 0xe3, 0x79, 0x74, 0xd9, 0x8c, 0x78, 0x4c, 0xa8, 0x1a, 0x28, 0xb3, 0x25, 0x09, 0x26, 0xe8, 0x43, 0x71, 0xbe, 0x1d, 0x44, 0x28, 0x44, 0x81, 0x20, 0xc0, 0xeb, 0xf5, 0x82, 0xe7, 0x79, 0xf0, 0x3c, 0x9f, 0xa6, 0xfd, 0x4c, 0x02, 0xb1, 0x58, 0x0c, 0x2c, 0xcb, 0xa6, 0x11, 0x08, 0x2a, 0x14, 0x64, 0x49, 0x85, 0x3c, 0x31, 0x86, 0x97, 0x5d, 0x28, 0x9d, 0x66, 0x92, 0x63, 0x92, 0x3e, 0xaf, 0x0c, 0x46, 0x87, 0x4e, 0xd7, 0xd1, 0x79, 0x71, 0xd0, 0x8a, 0x28, 0x02, 0x29, 0x95, 0x64, 0x84, 0x30, 0x88, 0x2a, 0x1a, 0xc0, 0x17, 0x60, 0xa6, 0xc5, 0x82, 0x70, 0x38, 0x8c, 0x40, 0x20, 0x00, 0x93, 0xc9, 0x64, 0x00, 0xd4, 0x53, 0xa8, 0x9e, 0x46, 0x75, 0x12, 0x3c, 0xcf, 0x1b, 0x71, 0x10, 0x26, 0x66, 0x44, 0x15, 0x0d, 0x41, 0xaf, 0x1f, 0x15, 0x16, 0xf5, 0x4f, 0x39, 0x40, 0xfa, 0xb3, 0xec, 0x8f, 0x1b, 0xb3, 0x8d, 0x19, 0x04, 0x04, 0x8e, 0xdf, 0x1c, 0x39, 0x79, 0x74, 0x07, 0xca, 0xcb, 0x13, 0x77, 0x02, 0x00, 0x67, 0x02, 0x12, 0x1a, 0x0d, 0x89, 0x31, 0x44, 0x5c, 0x72, 0x1c, 0x54, 0xb1, 0x0b, 0x94, 0x18, 0x80, 0xc7, 0xe3, 0x81, 0xd9, 0x6c, 0x06, 0xc7, 0x71, 0x69, 0xa9, 0x52, 0x17, 0x42, 0x08, 0x04, 0x41, 0x30, 0xc0, 0x33, 0x0c, 0x03, 0x37, 0x25, 0x20, 0xa2, 0xc8, 0x10, 0x63, 0x61, 0x1c, 0x78, 0xfd, 0xb9, 0xcc, 0x2e, 0x45, 0x63, 0xc6, 0xa2, 0x75, 0x41, 0x72, 0xc6, 0xdb, 0xdc, 0x1f, 0xbe, 0xdd, 0xc1, 0xd6, 0xce, 0x7f, 0x49, 0x1d, 0x3c, 0x95, 0x47, 0x3b, 0x12, 0x05, 0x9c, 0x67, 0x04, 0xc8, 0x8f, 0x57, 0xa6, 0x32, 0x80, 0x40, 0x64, 0x1c, 0x1c, 0x27, 0x20, 0x6c, 0x2d, 0x85, 0xe3, 0x7c, 0x04, 0x7e, 0xbf, 0x1f, 0xc1, 0x60, 0x10, 0x1c, 0xc7, 0x19, 0x81, 0xca, 0x30, 0x8c, 0xe1, 0x4a, 0x2e, 0x97, 0xcb, 0x00, 0xaf, 0x1f, 0xc3, 0x92, 0x09, 0xa3, 0x83, 0x23, 0x10, 0xd8, 0x68, 0x68, 0x3c, 0x5d, 0xc3, 0x7a, 0xee, 0x1f, 0xc8, 0x01, 0xbc, 0x31, 0x65, 0xb1, 0xcb, 0xbe, 0x1f, 0x28, 0xb2, 0xd9, 0x36, 0xb9, 0x8f, 0x7f, 0xf1, 0x1c, 0x35, 0x3a, 0x94, 0xac, 0x34, 0x4a, 0x2a, 0xc1, 0xce, 0x9d, 0x17, 0xaf, 0x56, 0x03, 0x1e, 0x08, 0x45, 0x26, 0x0c, 0x9b, 0x4b, 0x30, 0x3b, 0x3a, 0x0c, 0xbb, 0xdd, 0x8e, 0xde, 0xde, 0x5e, 0x23, 0x16, 0x74, 0xf0, 0x00, 0x50, 0x57, 0x57, 0x67, 0xa4, 0xd7, 0x54, 0x12, 0x3d, 0x21, 0x13, 0x7c, 0xee, 0x33, 0xa0, 0xa1, 0x0c, 0xe6, 0x00, 0x98, 0x4b, 0xfb, 0x05, 0xd9, 0x08, 0xa6, 0x11, 0x18, 0x3d, 0xf8, 0xe1, 0x46, 0xfb, 0xc2, 0x25, 0xa5, 0x62, 0x24, 0xb6, 0xc8, 0xc8, 0x4e, 0xa3, 0x03, 0x79, 0x11, 0x9f, 0xbb, 0x8e, 0xfb, 0xc6, 0x22, 0xf8, 0xce, 0x8d, 0x20, 0x54, 0xe0, 0x44, 0xc0, 0x54, 0x8a, 0xdb, 0x4c, 0x26, 0xd0, 0x34, 0x8d, 0xaa, 0xaa, 0x2a, 0x1c, 0x3a, 0x74, 0xc8, 0x00, 0x2b, 0x08, 0x02, 0x1a, 0x1a, 0x1a, 0xe0, 0x74, 0x3a, 0x8d, 0xa0, 0xd5, 0x49, 0xc4, 0x08, 0x87, 0x23, 0x51, 0x82, 0xe0, 0xc8, 0x59, 0x14, 0xb1, 0xea, 0x07, 0x19, 0x00, 0x5b, 0x32, 0xb6, 0x8f, 0xb9, 0x2c, 0x30, 0x30, 0xe5, 0xc6, 0x56, 0xc1, 0x37, 0x6f, 0xd9, 0x19, 0x74, 0x7b, 0xef, 0x62, 0x1b, 0xbf, 0x0d, 0x6a, 0x59, 0xbc, 0xfe, 0x5a, 0x25, 0x9e, 0x40, 0xbd, 0xe6, 0x03, 0x4d, 0xd3, 0x18, 0x1f, 0x1f, 0xc7, 0xf1, 0xe3, 0xc7, 0x51, 0x54, 0x54, 0x84, 0xda, 0xda, 0x5a, 0x58, 0x2c, 0x96, 0x09, 0xa9, 0x93, 0x65, 0x59, 0xec, 0x0e, 0x9a, 0xf1, 0xd2, 0x10, 0x05, 0x71, 0xcf, 0x1b, 0x9a, 0xf6, 0xf6, 0xf3, 0x74, 0x8e, 0x2e, 0xdc, 0x55, 0x5d, 0x6d, 0x9d, 0x03, 0x59, 0xba, 0x74, 0xbe, 0x44, 0x7c, 0x50, 0x53, 0x6e, 0xee, 0x06, 0x0e, 0xbc, 0x7f, 0xb7, 0xa3, 0xf1, 0xf6, 0xf7, 0xbc, 0x7f, 0x7d, 0xeb, 0x35, 0x66, 0x66, 0x3d, 0x4d, 0xb9, 0x6a, 0xf0, 0x31, 0x71, 0x62, 0x11, 0x13, 0xdf, 0xac, 0x08, 0x82, 0x80, 0xb2, 0xb2, 0x32, 0xa3, 0x58, 0x4b, 0x5d, 0xb4, 0x74, 0x12, 0x84, 0x10, 0xfc, 0xc5, 0xc7, 0x40, 0x39, 0xd5, 0x07, 0x93, 0x49, 0x3e, 0x13, 0x49, 0x7f, 0xc5, 0x8a, 0x04, 0xf8, 0xee, 0x4c, 0xf0, 0x19, 0xda, 0xef, 0x9e, 0x76, 0x57, 0xc2, 0xdd, 0xfd, 0x6e, 0x47, 0x51, 0x79, 0xe9, 0x83, 0xd2, 0x1b, 0xaf, 0x28, 0x9a, 0x3f, 0x80, 0x13, 0xaa, 0x80, 0x11, 0x26, 0xdf, 0xf0, 0x7f, 0x9e, 0xe7, 0xc1, 0x71, 0x5c, 0xda, 0xda, 0xa0, 0xbb, 0x15, 0xc7, 0x71, 0xd8, 0x17, 0xe4, 0x30, 0x12, 0xd5, 0xa0, 0x1e, 0x3f, 0x86, 0x3c, 0x8b, 0xf6, 0x74, 0x86, 0x76, 0x9f, 0x49, 0x5c, 0xfe, 0x36, 0xc7, 0xeb, 0x73, 0xba, 0xd7, 0x94, 0xfa, 0x42, 0xee, 0x4f, 0xde, 0xef, 0x28, 0xb7, 0xa8, 0xb5, 0xd2, 0x7b, 0x7b, 0x14, 0x2d, 0x10, 0xc0, 0x1f, 0x63, 0x0e, 0x23, 0x03, 0xe9, 0xe0, 0x53, 0x49, 0xe8, 0xf7, 0x19, 0x86, 0xc1, 0x8e, 0xb3, 0x80, 0x3a, 0x34, 0x04, 0x22, 0x7b, 0x42, 0xee, 0x8e, 0x2d, 0x1d, 0x29, 0x8f, 0x7d, 0x24, 0x51, 0x7d, 0xf6, 0x26, 0x7a, 0x44, 0xd9, 0x9a, 0xbc, 0x2b, 0x32, 0xfa, 0x43, 0xd3, 0xef, 0xcc, 0x0d, 0x1e, 0xf8, 0xb0, 0xcf, 0x56, 0xa0, 0xbd, 0x2c, 0x1d, 0x3a, 0x8c, 0xa3, 0x22, 0x87, 0xf7, 0xa2, 0x05, 0x13, 0xac, 0xa0, 0x6b, 0x5d, 0x3f, 0x6f, 0x3f, 0x03, 0x0c, 0x47, 0x55, 0xc8, 0x3d, 0x3d, 0x28, 0xb4, 0x6a, 0x6b, 0x53, 0x3f, 0x66, 0x24, 0xb4, 0xef, 0x07, 0x90, 0xab, 0x85, 0x3e, 0xa9, 0x7b, 0x4d, 0xab, 0x37, 0xea, 0xd9, 0xb9, 0x75, 0x1d, 0x09, 0x9e, 0x39, 0xa7, 0x9c, 0x3a, 0x85, 0x57, 0xbd, 0x3c, 0x3e, 0x0a, 0x9b, 0xd3, 0xac, 0xa0, 0xbb, 0x10, 0xcb, 0xb2, 0xd8, 0xeb, 0xd1, 0xb0, 0x73, 0x58, 0x84, 0xf4, 0xf9, 0xe7, 0x30, 0xd3, 0x9e, 0x63, 0xee, 0xdf, 0xbf, 0xd0, 0x91, 0xd2, 0x79, 0xde, 0x9f, 0xf0, 0xeb, 0x9b, 0x26, 0x59, 0xbc, 0x26, 0x75, 0xaf, 0x69, 0xb7, 0xd7, 0x5d, 0xf7, 0xad, 0xaf, 0x1e, 0x19, 0x8d, 0x7e, 0x49, 0xdf, 0x70, 0x3b, 0x4f, 0x17, 0xdb, 0xf1, 0x40, 0x39, 0x85, 0xbb, 0x67, 0x70, 0xb0, 0xb2, 0xf1, 0xfd, 0xef, 0xb8, 0x4a, 0x61, 0xeb, 0xa9, 0x18, 0xde, 0x3e, 0x2b, 0x41, 0x1d, 0x1e, 0x81, 0xd6, 0xb3, 0x3f, 0x24, 0xed, 0xdd, 0x96, 0x3f, 0xc5, 0x8f, 0x1c, 0xcf, 0x26, 0x08, 0xf4, 0x76, 0xb5, 0x75, 0xce, 0xbf, 0xec, 0x1f, 0x38, 0x5c, 0x2b, 0xd7, 0x56, 0x8f, 0xf8, 0xb5, 0x2f, 0xb5, 0xca, 0xb9, 0x3c, 0x33, 0xb7, 0x0e, 0x56, 0x8b, 0x09, 0x35, 0x79, 0xf1, 0x12, 0xfc, 0x9f, 0x7e, 0x19, 0x5a, 0x2c, 0x06, 0xf9, 0xe8, 0x31, 0xd0, 0x83, 0x47, 0x43, 0x65, 0x05, 0x54, 0xfd, 0xe0, 0xae, 0x97, 0xa6, 0xf2, 0x81, 0xa3, 0x1e, 0xc0, 0x67, 0x89, 0xcb, 0xf9, 0xb9, 0x2c, 0x74, 0xc9, 0x9f, 0x98, 0x5c, 0x2b, 0xd7, 0x56, 0xfb, 0x45, 0x6a, 0x67, 0xc8, 0x27, 0x35, 0x50, 0xf6, 0x19, 0x14, 0x65, 0x8b, 0x97, 0x1e, 0x9a, 0xcf, 0x07, 0xcd, 0x33, 0xac, 0xe5, 0xd9, 0xd8, 0x9e, 0xe0, 0xee, 0x6d, 0x0b, 0xa7, 0xa8, 0xf9, 0xc2, 0x84, 0x7b, 0xd5, 0x03, 0xb8, 0x3f, 0x5b, 0x70, 0x5f, 0x36, 0x02, 0xa9, 0x44, 0xc2, 0x1a, 0xd5, 0x26, 0x4a, 0xca, 0x22, 0x00, 0xe0, 0x58, 0x72, 0xd0, 0xf3, 0xe7, 0x6d, 0xeb, 0xa6, 0xf1, 0x6d, 0xec, 0x11, 0xdd, 0x6d, 0x00, 0x6c, 0x48, 0xe9, 0x8b, 0x5e, 0x91, 0x2b, 0x72, 0x45, 0xfe, 0x1f, 0xe5, 0x3f, 0x85, 0x9b, 0xaa, 0xf5, 0x04, 0xfa, 0xe0, 0x57, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; const unsigned char icon_record[2703] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x08, 0x06, 0x00, 0x00, 0x00, 0x57, 0x02, 0xf9, 0x87, 0x00, 0x00, 0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xa0, 0xbd, 0xa7, 0x93, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xd7, 0x02, 0x17, 0x10, 0x34, 0x2a, 0x08, 0x56, 0x23, 0x20, 0x00, 0x00, 0x0a, 0x1c, 0x49, 0x44, 0x41, 0x54, 0x68, 0xde, 0xed, 0x99, 0x7b, 0x8c, 0x5d, 0xc5, 0x7d, 0xc7, 0x3f, 0x33, 0x73, 0xce, 0x7d, 0xec, 0xdd, 0xbb, 0xde, 0x87, 0x6d, 0x58, 0x43, 0x02, 0xa5, 0x25, 0x11, 0x28, 0x44, 0x51, 0xd5, 0x46, 0x2d, 0x8d, 0xa2, 0x84, 0x16, 0x55, 0x89, 0xfa, 0xa0, 0x4a, 0x9b, 0xe6, 0xa1, 0xa4, 0x7f, 0x44, 0x91, 0xf2, 0x52, 0x88, 0x4a, 0xd4, 0x92, 0x50, 0x39, 0xb5, 0x10, 0x55, 0x95, 0x4a, 0xa9, 0x23, 0x55, 0x6d, 0x5a, 0xa4, 0xa4, 0x81, 0xa6, 0xc5, 0xd8, 0xb8, 0x31, 0xb8, 0x32, 0x21, 0x41, 0x26, 0x18, 0xaf, 0x61, 0x51, 0xc1, 0xd8, 0x38, 0x06, 0x9b, 0x60, 0x6c, 0x70, 0x0c, 0xeb, 0xbd, 0xfb, 0xb8, 0xcf, 0x73, 0xe6, 0xf5, 0xeb, 0x1f, 0xe7, 0x7a, 0xd7, 0xc6, 0x98, 0xf8, 0xb1, 0x5b, 0xa5, 0x95, 0x47, 0x3a, 0x9a, 0x73, 0xaf, 0xce, 0xf9, 0x9d, 0xef, 0x77, 0xe6, 0xfb, 0x7b, 0xcc, 0x0c, 0x5c, 0x6c, 0x17, 0xdb, 0xc5, 0x76, 0xb1, 0x9d, 0x45, 0x93, 0xe5, 0x32, 0xac, 0xff, 0x37, 0xc0, 0x1f, 0xba, 0xe7, 0xee, 0x13, 0x24, 0xe4, 0xff, 0x1a, 0x01, 0x39, 0xb2, 0x79, 0x13, 0xda, 0x24, 0x1c, 0xba, 0xe7, 0x6e, 0xd6, 0xbf, 0xe7, 0xdd, 0x4b, 0x4e, 0x44, 0x2d, 0x27, 0xf8, 0x63, 0xdb, 0xfe, 0x8b, 0xe8, 0x3d, 0xc1, 0x39, 0x36, 0x7f, 0xe3, 0xeb, 0xa4, 0xca, 0x20, 0x4a, 0x50, 0xa2, 0xf8, 0xfc, 0x8e, 0x5d, 0x4b, 0x82, 0x61, 0xb9, 0x08, 0xc8, 0xf1, 0x47, 0xb7, 0x13, 0xbd, 0x27, 0xe6, 0x96, 0x0d, 0x77, 0xac, 0x63, 0xa4, 0x56, 0x27, 0x84, 0x80, 0x68, 0xc1, 0xbb, 0x48, 0x08, 0x81, 0x48, 0xe4, 0x0b, 0x8f, 0x3e, 0x7e, 0x41, 0x58, 0x92, 0xe5, 0x00, 0x3f, 0x33, 0xf9, 0x38, 0x12, 0x03, 0x00, 0xff, 0xb1, 0xf6, 0x36, 0xd6, 0xac, 0x5e, 0x4d, 0xa3, 0x31, 0xcb, 0xbe, 0x57, 0x8e, 0xb2, 0x7f, 0xa6, 0xc1, 0x0b, 0x9d, 0x8c, 0x4e, 0x0c, 0xf4, 0x82, 0x50, 0x02, 0xde, 0x37, 0x3a, 0xc4, 0x43, 0x33, 0x4d, 0x39, 0x1f, 0x22, 0x6a, 0x39, 0xc0, 0xeb, 0x52, 0x89, 0x68, 0x2d, 0x77, 0xfd, 0xf9, 0x17, 0xb9, 0xf2, 0xaa, 0xab, 0xd8, 0xbb, 0x77, 0x2f, 0xcf, 0x1d, 0x9f, 0x66, 0xae, 0x67, 0xe9, 0x46, 0x4f, 0xc3, 0x3a, 0xe6, 0x5d, 0xa0, 0x13, 0x03, 0x9d, 0x20, 0xe4, 0x22, 0xbc, 0xa5, 0x94, 0x72, 0xc3, 0xa5, 0x2b, 0xf9, 0xce, 0x91, 0x63, 0xe7, 0x84, 0x4d, 0x2f, 0xb5, 0x6c, 0x24, 0x86, 0x05, 0xf0, 0x57, 0x5f, 0x7b, 0x1d, 0xcf, 0x3f, 0xff, 0x3c, 0xb9, 0x0b, 0xac, 0xae, 0x0e, 0x70, 0xd9, 0x50, 0x8d, 0x91, 0x52, 0x99, 0x55, 0xa5, 0x94, 0x15, 0xa9, 0xa1, 0xaa, 0x0d, 0x55, 0xad, 0x28, 0x2b, 0x85, 0x51, 0x8a, 0x03, 0x73, 0x4d, 0x44, 0x84, 0x1f, 0xde, 0xfc, 0xd9, 0xb3, 0x76, 0x76, 0xb5, 0x94, 0x0e, 0xab, 0xcb, 0x25, 0x74, 0x92, 0xf0, 0xbd, 0xaf, 0xfe, 0x25, 0xbf, 0xfe, 0xfe, 0xf7, 0xf3, 0xca, 0xb3, 0xcf, 0x92, 0x67, 0x39, 0xb9, 0xcb, 0x69, 0x75, 0x7b, 0x4c, 0xcd, 0x35, 0x69, 0xf4, 0x3a, 0x74, 0xac, 0x03, 0x60, 0xba, 0x97, 0xf1, 0x42, 0x27, 0x63, 0xce, 0x7b, 0xb4, 0x82, 0xe3, 0x2e, 0xb0, 0xfd, 0x96, 0x9b, 0x09, 0xc1, 0xe1, 0x72, 0x87, 0xb7, 0x96, 0x3f, 0xf8, 0xf6, 0x5d, 0x6f, 0x8a, 0x55, 0x2d, 0x55, 0xa8, 0x34, 0x69, 0x8a, 0x4e, 0x12, 0x36, 0xdc, 0xb1, 0x8e, 0xdf, 0xbc, 0xf1, 0x46, 0x7a, 0x9d, 0x0e, 0xcd, 0xe9, 0x19, 0x4c, 0x92, 0xe2, 0x6c, 0x8f, 0x6e, 0x63, 0x86, 0x57, 0x1b, 0xd3, 0x8c, 0x0e, 0x0e, 0x31, 0xbc, 0xe6, 0x52, 0x00, 0x3a, 0xd3, 0x0d, 0xf6, 0xbf, 0x74, 0x98, 0xad, 0x2f, 0xbd, 0xc4, 0xd3, 0xad, 0x1e, 0x3b, 0xbe, 0x72, 0x0b, 0xde, 0x7a, 0xbc, 0xb7, 0xb8, 0xcc, 0xe1, 0x9c, 0x03, 0x9f, 0x11, 0xb2, 0x9c, 0x0f, 0x6d, 0xdc, 0xf2, 0x86, 0x98, 0x2f, 0x94, 0x80, 0x1c, 0xba, 0xe7, 0x6e, 0xb4, 0x49, 0x50, 0x26, 0x65, 0xf3, 0x37, 0xbe, 0xce, 0xbb, 0x6f, 0xb8, 0x81, 0x81, 0xfa, 0x30, 0x8d, 0xa3, 0x47, 0x49, 0x2b, 0x29, 0x26, 0x4d, 0x09, 0xce, 0x31, 0x37, 0x35, 0xcd, 0xe8, 0xa5, 0xab, 0xa9, 0xd6, 0xeb, 0xf4, 0x5a, 0x2d, 0xb2, 0x6e, 0x46, 0xf0, 0x8e, 0xee, 0xf1, 0x29, 0x6e, 0xba, 0x67, 0x33, 0x13, 0x6b, 0x6f, 0xc5, 0x5b, 0x8b, 0xcf, 0xfb, 0x04, 0xac, 0x23, 0xb8, 0x1c, 0xb1, 0x39, 0x21, 0xcf, 0x71, 0xce, 0xe1, 0x5c, 0x60, 0x62, 0xff, 0x73, 0xfc, 0xd3, 0xa1, 0x97, 0x17, 0xb0, 0x5f, 0x48, 0x14, 0x92, 0x03, 0xdf, 0xf9, 0x17, 0x82, 0x2b, 0xe4, 0xb0, 0xe5, 0x9b, 0x7f, 0xcf, 0xbb, 0xae, 0xbf, 0x1e, 0x93, 0xa4, 0x24, 0x95, 0x0a, 0xa6, 0x64, 0x18, 0x18, 0x1a, 0x22, 0x29, 0x95, 0xe8, 0x36, 0x9b, 0x0c, 0xad, 0x1c, 0x65, 0x78, 0x7c, 0x0d, 0x9d, 0xd9, 0x59, 0x5c, 0xee, 0x68, 0xcf, 0xcd, 0xd0, 0x99, 0x6e, 0xf0, 0xb1, 0x07, 0x1e, 0xe4, 0x89, 0x75, 0xb7, 0x21, 0x21, 0x20, 0x22, 0x48, 0x0c, 0x48, 0x94, 0xe2, 0xbe, 0x7f, 0x45, 0x81, 0x18, 0x21, 0x86, 0xb8, 0x64, 0x61, 0x54, 0xf6, 0xfd, 0xc3, 0x37, 0x89, 0xde, 0x03, 0xb0, 0xf5, 0x9f, 0xbf, 0xc5, 0xd5, 0xd7, 0x5e, 0x57, 0x4c, 0xa9, 0x31, 0xe8, 0x44, 0xa3, 0x94, 0xc2, 0x5b, 0x4b, 0xf0, 0xa1, 0xe8, 0x6d, 0x01, 0x30, 0x49, 0x8b, 0x4f, 0x76, 0x1b, 0x33, 0x7c, 0xec, 0x81, 0x07, 0x99, 0xbc, 0x7d, 0x2d, 0x31, 0xc6, 0xe2, 0xf2, 0x11, 0x51, 0x42, 0x8c, 0x11, 0x09, 0xa1, 0x40, 0xed, 0x3d, 0x22, 0x82, 0xb3, 0x8e, 0xad, 0xcf, 0xec, 0x61, 0xa4, 0x5a, 0xbe, 0x60, 0x02, 0xb2, 0xfb, 0xef, 0xfe, 0x96, 0x18, 0x3d, 0xe4, 0xf0, 0xe0, 0x77, 0xff, 0x95, 0x2b, 0xd6, 0x8c, 0x13, 0xa5, 0x00, 0x10, 0x9d, 0xc5, 0x67, 0x19, 0x79, 0xaf, 0x07, 0x40, 0xf4, 0x91, 0xbc, 0xd7, 0x23, 0x9b, 0x9f, 0xa1, 0x36, 0x5c, 0xa7, 0x3a, 0xb4, 0x82, 0x6a, 0xbd, 0xc6, 0x47, 0xef, 0xdf, 0xc6, 0x93, 0x7f, 0xb3, 0xae, 0x88, 0x5a, 0xde, 0x2f, 0x92, 0x08, 0xfd, 0x5e, 0x80, 0xe0, 0x89, 0x02, 0x36, 0xb7, 0x6c, 0x7d, 0x66, 0x0f, 0x63, 0x95, 0x32, 0x8d, 0x5e, 0x7e, 0x41, 0x04, 0x64, 0xf2, 0x8e, 0xbf, 0x26, 0x48, 0x80, 0x1c, 0x1e, 0xde, 0xb2, 0x81, 0xb1, 0xa1, 0x15, 0x38, 0x1f, 0xd0, 0xde, 0x62, 0xb3, 0x8c, 0x52, 0xb5, 0x82, 0xed, 0x75, 0xf1, 0xd6, 0x93, 0xb5, 0x1b, 0xe8, 0x24, 0xc1, 0xcd, 0x35, 0x68, 0xb7, 0xbb, 0xcc, 0x4d, 0x3c, 0x4e, 0xad, 0x5e, 0xe3, 0x8f, 0x37, 0xdd, 0x5f, 0x80, 0xf7, 0xae, 0xc8, 0xc8, 0x27, 0x46, 0x5f, 0x02, 0xc1, 0x17, 0xbf, 0x11, 0x8f, 0xf8, 0x80, 0xf7, 0x9e, 0x2d, 0xff, 0xfd, 0x34, 0x97, 0xd7, 0x07, 0x39, 0xdc, 0x6c, 0x51, 0x49, 0xf4, 0x79, 0x13, 0x90, 0x89, 0xb5, 0xb7, 0x16, 0x1f, 0x05, 0x76, 0x6c, 0x2b, 0xa2, 0x42, 0xee, 0x72, 0xb4, 0xd6, 0xa4, 0x9d, 0x36, 0xd6, 0xa4, 0xf4, 0xda, 0x2d, 0x24, 0x06, 0xc6, 0xd6, 0x8c, 0xf3, 0xdc, 0xce, 0x09, 0xb4, 0xd1, 0xe4, 0x2e, 0xa7, 0xdd, 0xcb, 0x68, 0x75, 0x3a, 0xfc, 0xd5, 0x0f, 0x9e, 0x3d, 0x15, 0xbc, 0xf7, 0x04, 0xd7, 0xef, 0xfb, 0xe0, 0x63, 0x88, 0x10, 0x7c, 0x01, 0x7e, 0xf2, 0x49, 0xc6, 0xeb, 0x35, 0x66, 0x7a, 0x19, 0xb5, 0xd4, 0xf0, 0x5a, 0xb7, 0x77, 0x5e, 0x04, 0xe4, 0x91, 0xbf, 0xf8, 0xd2, 0x82, 0xc3, 0x6e, 0xfc, 0xb7, 0x7f, 0x67, 0xac, 0x5e, 0x23, 0x4d, 0x53, 0x52, 0x65, 0xd0, 0x52, 0x68, 0xbe, 0x2c, 0xb3, 0x85, 0x04, 0xfa, 0x32, 0x58, 0x79, 0xc5, 0x95, 0x1c, 0xd8, 0xb7, 0x87, 0xcc, 0x5a, 0x72, 0xe7, 0xf8, 0xda, 0xd3, 0xfb, 0x4e, 0x01, 0x1f, 0x5c, 0xbf, 0x0f, 0x81, 0x10, 0xfb, 0xa3, 0xef, 0x3d, 0x04, 0x4b, 0xc8, 0x72, 0xee, 0x7f, 0x62, 0x92, 0xd1, 0x72, 0x85, 0xf9, 0x5e, 0x8e, 0x93, 0x40, 0xdb, 0x7a, 0x82, 0x9c, 0x9a, 0xdb, 0xcc, 0xd9, 0x80, 0x7f, 0xe8, 0x8b, 0x9f, 0x41, 0x22, 0x28, 0xad, 0xd8, 0xbc, 0xf1, 0x3e, 0x4a, 0xa5, 0x84, 0x10, 0x23, 0x1a, 0x10, 0x55, 0x18, 0x54, 0x02, 0x4a, 0x29, 0x74, 0xb0, 0x84, 0x18, 0xf1, 0x3e, 0x92, 0x96, 0x52, 0x46, 0xc6, 0x56, 0xd1, 0x38, 0xfe, 0x2a, 0x5f, 0x7d, 0x72, 0x0f, 0x93, 0xb7, 0xaf, 0x45, 0x82, 0x5f, 0x1c, 0xf9, 0x10, 0xf0, 0xd6, 0x13, 0x63, 0x7f, 0x16, 0x62, 0x44, 0xa2, 0x47, 0x9c, 0xe5, 0xbe, 0x9d, 0x13, 0x0c, 0x97, 0xca, 0x34, 0x9d, 0xc5, 0x4b, 0xa4, 0x63, 0x03, 0x2d, 0xef, 0xf0, 0x22, 0x1c, 0xce, 0x2c, 0xc0, 0xba, 0xb3, 0x99, 0x01, 0xb9, 0xef, 0x4f, 0xfe, 0x90, 0xe0, 0x02, 0xa4, 0x70, 0xfb, 0x9d, 0xdf, 0xe5, 0x9d, 0x2b, 0x57, 0x12, 0x82, 0x20, 0x5a, 0x98, 0xeb, 0x64, 0x1c, 0xfa, 0xd9, 0x6b, 0x4c, 0xf5, 0x32, 0x3a, 0x21, 0x50, 0x4f, 0x0d, 0x03, 0x49, 0xc2, 0x5b, 0xeb, 0x83, 0x5c, 0x39, 0x36, 0xca, 0xdb, 0xaf, 0xbc, 0x02, 0x53, 0x2e, 0xf3, 0xe5, 0x5d, 0x4f, 0xf1, 0xc4, 0xba, 0xdb, 0xfa, 0x5a, 0x2f, 0x1c, 0x36, 0xb8, 0xd0, 0xd7, 0xbf, 0x5f, 0xbc, 0xf7, 0x96, 0x98, 0x67, 0x6c, 0x7a, 0xf4, 0x31, 0x46, 0xca, 0x55, 0x9a, 0x36, 0xc3, 0xc7, 0x48, 0x33, 0xf7, 0xf4, 0x82, 0xc3, 0x86, 0xc8, 0xce, 0x66, 0xe7, 0x94, 0xfc, 0xf5, 0x66, 0x89, 0x4c, 0xbe, 0xff, 0x89, 0x0f, 0x43, 0x52, 0xc1, 0x24, 0x86, 0xf5, 0x9b, 0x36, 0x71, 0xcd, 0xc8, 0x08, 0x28, 0x8d, 0x51, 0x8a, 0x17, 0x66, 0xe7, 0xf8, 0x61, 0x63, 0x16, 0xa3, 0x8a, 0x5a, 0xa6, 0x66, 0x14, 0x83, 0x26, 0xa1, 0x6c, 0x14, 0x95, 0xfe, 0x33, 0x46, 0x29, 0x76, 0xcc, 0xb7, 0x98, 0x58, 0x7b, 0x2b, 0x72, 0xc2, 0x59, 0xfb, 0x0e, 0x1b, 0xbd, 0x5f, 0x90, 0x4d, 0x08, 0x45, 0x2f, 0xdd, 0x16, 0x9b, 0x76, 0x4e, 0x50, 0x4f, 0x52, 0xac, 0x14, 0x33, 0x7c, 0xbc, 0x9b, 0xd3, 0x09, 0x8e, 0xa6, 0xf5, 0x4c, 0xb6, 0xbb, 0xa7, 0x61, 0x3e, 0xd3, 0x0c, 0xc8, 0xc6, 0x0f, 0xfd, 0x3e, 0x62, 0x1d, 0x0a, 0x58, 0xff, 0xfd, 0x6d, 0xfc, 0xf2, 0xf0, 0x0a, 0x7c, 0x8c, 0x68, 0x03, 0xcf, 0x4e, 0xcf, 0xf0, 0xc8, 0x5c, 0x1b, 0x0d, 0x78, 0x11, 0x82, 0x08, 0x89, 0xd6, 0x38, 0xef, 0x88, 0x1e, 0xca, 0x4a, 0xa1, 0x95, 0xe6, 0x48, 0x6e, 0xd9, 0xf1, 0x95, 0x5b, 0x16, 0x13, 0x92, 0x2f, 0x08, 0x9c, 0x88, 0x36, 0xc1, 0x87, 0x7e, 0xf8, 0xb5, 0x84, 0x76, 0x9b, 0x8d, 0x8f, 0xed, 0x62, 0x74, 0xa0, 0xc2, 0x5c, 0x96, 0x91, 0x68, 0x4d, 0xcb, 0x3a, 0x72, 0x09, 0x74, 0x5c, 0x78, 0x43, 0xf0, 0x67, 0x22, 0x20, 0xdf, 0xfb, 0xbd, 0xdf, 0x25, 0x84, 0xa2, 0x9e, 0xff, 0xd6, 0x43, 0x3f, 0xe2, 0x97, 0x86, 0xea, 0x08, 0x42, 0x54, 0x8a, 0x46, 0xa7, 0xc7, 0x23, 0x73, 0xed, 0x22, 0xc6, 0x03, 0x2b, 0x13, 0xcd, 0xcd, 0xd7, 0x5d, 0xc3, 0xaa, 0x15, 0x23, 0x00, 0xcc, 0x77, 0x5b, 0xdc, 0xb9, 0x67, 0x3f, 0x07, 0x7b, 0x39, 0xdb, 0x6f, 0xb9, 0xb9, 0x30, 0x18, 0xfb, 0x19, 0x56, 0x09, 0x31, 0xc4, 0xc5, 0x68, 0xe3, 0x3d, 0x22, 0x81, 0xd8, 0x69, 0x73, 0xef, 0xce, 0x09, 0x56, 0x0d, 0xd4, 0x78, 0xb5, 0xdb, 0xa6, 0x6b, 0x3d, 0xa9, 0x36, 0xe4, 0x12, 0x68, 0x59, 0xc7, 0xae, 0x56, 0xe7, 0x8c, 0x6a, 0x79, 0x3d, 0x01, 0xf9, 0xf6, 0xef, 0xbc, 0x0f, 0xef, 0x8a, 0x0c, 0x7b, 0xe7, 0x8f, 0x77, 0x70, 0xd9, 0x60, 0x8d, 0x20, 0x82, 0x89, 0x45, 0xf1, 0xfd, 0xcc, 0xdc, 0xfc, 0xc2, 0xc3, 0x6f, 0xab, 0x94, 0xf8, 0xcc, 0xaf, 0xbe, 0x93, 0xe1, 0x81, 0x41, 0xac, 0xf7, 0x0c, 0x54, 0x2b, 0x98, 0x44, 0x71, 0xb0, 0x97, 0xf3, 0xa3, 0x2f, 0x7d, 0xae, 0x30, 0x28, 0xd2, 0x27, 0x20, 0x8b, 0x12, 0x5a, 0x08, 0x95, 0x16, 0xc9, 0x73, 0x36, 0xec, 0xd8, 0xc5, 0x68, 0xa5, 0xc2, 0x6b, 0x9d, 0x0e, 0x6d, 0xef, 0xd1, 0x40, 0x10, 0xa1, 0x6d, 0xfd, 0x69, 0x9a, 0x7f, 0x33, 0x02, 0xf2, 0x8f, 0xef, 0xbd, 0x1e, 0xd7, 0x1f, 0xf9, 0xbb, 0x26, 0x27, 0x59, 0x55, 0xa9, 0x2e, 0x84, 0xad, 0x18, 0x41, 0x8b, 0x70, 0x24, 0xb7, 0x0b, 0x2f, 0xfc, 0xc6, 0xaa, 0x51, 0xea, 0x03, 0x55, 0x8e, 0xcd, 0x35, 0xc8, 0xad, 0x43, 0x6b, 0xcd, 0xd7, 0x9e, 0xde, 0xc7, 0xb6, 0xcf, 0x7e, 0x7a, 0xd1, 0x68, 0x14, 0x84, 0x7e, 0x5d, 0x13, 0x42, 0x91, 0x61, 0xc5, 0x43, 0xf0, 0x84, 0x2c, 0xe7, 0xde, 0x9d, 0x13, 0xac, 0xa8, 0x94, 0x99, 0xb7, 0x39, 0x5d, 0xe7, 0x17, 0x16, 0x28, 0x6d, 0x6f, 0x79, 0xac, 0xd9, 0xfe, 0xb9, 0x05, 0xe7, 0x29, 0x33, 0x70, 0xf0, 0xd8, 0x31, 0xae, 0x1e, 0x1f, 0xe7, 0xde, 0xdd, 0xbb, 0x19, 0xa9, 0x94, 0x11, 0x25, 0x84, 0x50, 0x04, 0x5b, 0x8d, 0x20, 0xa2, 0xc8, 0x4e, 0x0a, 0xc3, 0x3d, 0x17, 0x88, 0x01, 0x2a, 0x69, 0x89, 0xa9, 0xb9, 0x36, 0xeb, 0x0f, 0xbe, 0xc8, 0x03, 0x9f, 0xfa, 0x33, 0xd0, 0xba, 0x60, 0x0c, 0x44, 0x01, 0x45, 0x51, 0x07, 0x11, 0x8b, 0x04, 0x25, 0x3e, 0x10, 0x83, 0x67, 0xe3, 0xce, 0x27, 0xa8, 0x98, 0x84, 0xd9, 0x5e, 0x4e, 0xde, 0x1f, 0xb8, 0x5e, 0x0c, 0xb8, 0x20, 0x67, 0x05, 0xfe, 0x34, 0x02, 0x5a, 0x69, 0x76, 0xbf, 0x7c, 0x84, 0x77, 0x8c, 0xad, 0xe4, 0x48, 0xab, 0x09, 0x1a, 0x8c, 0x82, 0x10, 0x40, 0x74, 0x61, 0xad, 0x04, 0x9c, 0x98, 0x83, 0xfd, 0xad, 0x16, 0xef, 0xf5, 0x16, 0x41, 0x58, 0x7f, 0xf0, 0x45, 0xb6, 0x7c, 0xf2, 0x4f, 0x41, 0x9d, 0x94, 0xea, 0x25, 0xf6, 0xbb, 0x58, 0x10, 0xf0, 0x45, 0x6d, 0xe3, 0x9c, 0xe3, 0x3f, 0x27, 0x9f, 0xa4, 0x62, 0x12, 0x1a, 0x59, 0x8e, 0x51, 0x0a, 0x85, 0x22, 0x8b, 0xee, 0x9c, 0xc0, 0x9f, 0x46, 0xc0, 0xc7, 0x48, 0x2d, 0x49, 0xa9, 0x95, 0xcb, 0x8c, 0x4b, 0x8d, 0x54, 0x19, 0x5e, 0x6e, 0xb5, 0x30, 0x0a, 0x44, 0x40, 0x45, 0xb8, 0xac, 0x9c, 0x72, 0x28, 0x2f, 0x32, 0xf2, 0xab, 0xb9, 0xe5, 0xbe, 0xbd, 0xfb, 0xd8, 0x3e, 0xdb, 0x62, 0xf3, 0x87, 0x6f, 0xea, 0x0f, 0xc2, 0xa2, 0xbd, 0x28, 0x8b, 0x44, 0xa2, 0x14, 0xfe, 0xe0, 0x9d, 0x67, 0xeb, 0x53, 0x4f, 0x31, 0x5a, 0xae, 0x70, 0xb4, 0xdd, 0x29, 0xc2, 0xad, 0x56, 0xcc, 0xda, 0xfc, 0x9c, 0xc1, 0x9f, 0x46, 0xe0, 0x92, 0xe1, 0x3a, 0x99, 0xb5, 0xc4, 0x08, 0x95, 0x24, 0x61, 0xb0, 0x5c, 0xc2, 0x06, 0x4f, 0xc9, 0x24, 0x1c, 0xed, 0xb4, 0x50, 0x02, 0x57, 0xd7, 0xaa, 0x0b, 0x04, 0xa6, 0x7d, 0x64, 0xfb, 0x6c, 0x8b, 0x0d, 0x37, 0x7d, 0x00, 0x54, 0x51, 0x4e, 0x9c, 0x16, 0xd2, 0x44, 0x0a, 0x02, 0x11, 0xbc, 0xf7, 0xfc, 0x60, 0xef, 0x5e, 0x56, 0x94, 0xca, 0x1c, 0x6d, 0x77, 0x48, 0xb4, 0x46, 0x10, 0x66, 0xf2, 0x0c, 0x1f, 0x39, 0x67, 0xf0, 0xa7, 0x11, 0xc8, 0xac, 0xed, 0x87, 0xc7, 0x48, 0xbd, 0x52, 0x26, 0x77, 0x81, 0x6a, 0x29, 0xa5, 0x5e, 0x29, 0xe3, 0x24, 0x14, 0x1b, 0x53, 0x1d, 0xe1, 0x5d, 0x83, 0x15, 0x76, 0xb7, 0x33, 0x44, 0x84, 0xbb, 0x3f, 0x78, 0x63, 0x1f, 0x78, 0x38, 0x33, 0x01, 0xc0, 0x59, 0xc7, 0xc3, 0xcf, 0xed, 0xa7, 0x6a, 0x8a, 0x82, 0xac, 0x94, 0x68, 0x9c, 0x17, 0xe6, 0x5d, 0x8e, 0x52, 0x8a, 0xc7, 0x9a, 0xad, 0xf3, 0x5a, 0x21, 0x9e, 0xfc, 0x82, 0x7c, 0xe1, 0xaa, 0xb7, 0x92, 0x1a, 0x43, 0x9a, 0x16, 0x25, 0x92, 0x52, 0x0a, 0x25, 0x8a, 0x48, 0x24, 0x35, 0xc5, 0x7f, 0x53, 0xed, 0x36, 0x65, 0x65, 0xf8, 0xf8, 0x27, 0x3e, 0xce, 0xbe, 0x89, 0x9d, 0xc5, 0x33, 0x51, 0xbd, 0x21, 0xf8, 0x05, 0x29, 0xa9, 0xc8, 0x83, 0x7b, 0x7e, 0x42, 0x35, 0x35, 0xb4, 0xad, 0x27, 0x35, 0x8a, 0x9e, 0x0b, 0x34, 0x5d, 0x31, 0x60, 0xfd, 0xbc, 0x72, 0x5e, 0xcb, 0x5b, 0xf5, 0xfa, 0x1d, 0xe4, 0x4f, 0xbe, 0xe5, 0x52, 0xca, 0x89, 0xa1, 0xac, 0x0c, 0xa9, 0x31, 0xa8, 0xbe, 0xa8, 0x2b, 0x69, 0x42, 0x6a, 0x0c, 0xbe, 0xef, 0x90, 0xaf, 0xcc, 0x37, 0x19, 0x4a, 0x4b, 0x5c, 0x7b, 0xf9, 0xe5, 0x68, 0xbd, 0x28, 0x1f, 0x7d, 0x52, 0x79, 0x18, 0x43, 0x31, 0x03, 0xdb, 0x0f, 0x3c, 0x5f, 0x48, 0xa8, 0xef, 0xd4, 0x2e, 0x08, 0xbd, 0xe0, 0x88, 0xc0, 0xf6, 0xd9, 0xd6, 0x79, 0x83, 0x3f, 0xd3, 0x8b, 0x02, 0xf0, 0x91, 0xf1, 0xd5, 0x94, 0x12, 0x4d, 0x39, 0x31, 0x24, 0xe8, 0x62, 0x39, 0x68, 0x12, 0x4a, 0x89, 0x26, 0x4d, 0x0c, 0xde, 0x45, 0xf2, 0x10, 0x38, 0xde, 0xeb, 0xb0, 0xa2, 0x5c, 0xe6, 0x9a, 0x35, 0xe3, 0x24, 0x5a, 0xa3, 0x4f, 0xda, 0x6a, 0xf2, 0x44, 0x7e, 0x7c, 0xe0, 0xa7, 0x84, 0xbe, 0x37, 0xfb, 0x18, 0x51, 0x4a, 0xd1, 0xf6, 0x16, 0xa5, 0xd4, 0x05, 0x83, 0xff, 0xb9, 0xc5, 0x1c, 0xc0, 0x1f, 0x5d, 0x32, 0x46, 0x59, 0x9b, 0x05, 0x32, 0xa9, 0x36, 0x24, 0x5a, 0xa3, 0x44, 0x15, 0x49, 0x4e, 0x22, 0x3e, 0x46, 0xe6, 0x72, 0xcb, 0x50, 0xa5, 0xc4, 0x35, 0x6b, 0xc6, 0x17, 0xb4, 0xbf, 0xeb, 0xc5, 0xc3, 0x0b, 0x9b, 0xb9, 0xf3, 0xce, 0x51, 0xd5, 0x86, 0x4e, 0x70, 0x88, 0x08, 0x0f, 0x2f, 0x01, 0xf8, 0xb3, 0x35, 0x20, 0x00, 0x1f, 0x1c, 0x1b, 0x2e, 0xa4, 0xf5, 0x3a, 0x32, 0x0b, 0xd9, 0x56, 0x84, 0xa0, 0x84, 0xa9, 0x76, 0x46, 0x25, 0xd5, 0x24, 0xba, 0xa8, 0x48, 0x5b, 0xd6, 0xd1, 0xb4, 0x96, 0xaa, 0x49, 0xb1, 0xb1, 0x58, 0x90, 0x2c, 0x15, 0xf8, 0x73, 0x35, 0x22, 0x00, 0xbf, 0x3d, 0x52, 0xa7, 0xac, 0xcd, 0x29, 0x64, 0x0a, 0xe9, 0x14, 0x2d, 0x88, 0x60, 0x63, 0xe4, 0x68, 0xbb, 0xc3, 0x25, 0x03, 0x55, 0xa6, 0x7a, 0x19, 0x69, 0xdf, 0x3f, 0x9c, 0xc8, 0x92, 0xc8, 0xe6, 0x42, 0x37, 0xb6, 0x04, 0xe0, 0x3d, 0x43, 0x83, 0x94, 0x8d, 0x3a, 0x85, 0x4c, 0x6a, 0x14, 0xa9, 0x31, 0xb8, 0x10, 0x38, 0xdc, 0xee, 0x50, 0x37, 0x69, 0xbf, 0x8a, 0x85, 0xae, 0xf7, 0x3c, 0x7a, 0x01, 0xd1, 0x66, 0x39, 0xf6, 0x46, 0x05, 0xe0, 0xd7, 0x06, 0x07, 0xa8, 0x68, 0x7d, 0x0a, 0x99, 0x18, 0x61, 0x2a, 0xcb, 0xa8, 0xa7, 0x06, 0xdb, 0xaf, 0x89, 0x1e, 0x59, 0x06, 0xf0, 0x4b, 0xb6, 0x37, 0x0a, 0xf0, 0x8e, 0x5a, 0x85, 0x8a, 0xd2, 0x54, 0xb4, 0x46, 0x6b, 0x68, 0x7a, 0xcf, 0x50, 0x92, 0xe0, 0x82, 0xbc, 0x69, 0x3d, 0xff, 0x8b, 0x74, 0xc4, 0x24, 0x00, 0xbf, 0x52, 0x29, 0x51, 0xee, 0x6b, 0xbe, 0x9e, 0x18, 0x1e, 0x6f, 0x75, 0x97, 0xfb, 0x28, 0x6b, 0x59, 0x8e, 0x54, 0xe5, 0xb7, 0x86, 0x6a, 0xcb, 0x72, 0x2a, 0xf9, 0xff, 0xe2, 0x6c, 0xf8, 0x62, 0xfb, 0x45, 0x6a, 0xff, 0x03, 0x7f, 0x0f, 0x83, 0x20, 0x05, 0xc9, 0x04, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; const unsigned char icon_sun[1918] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x20, 0x08, 0x06, 0x00, 0x00, 0x00, 0x9c, 0xb8, 0x11, 0xca, 0x00, 0x00, 0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0x9f, 0x00, 0x7b, 0x00, 0x01, 0x85, 0xb6, 0xbc, 0x99, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xd9, 0x01, 0x02, 0x08, 0x1b, 0x34, 0xe8, 0x1d, 0x68, 0xeb, 0x00, 0x00, 0x07, 0x0b, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0xad, 0x97, 0x4b, 0x8c, 0x1c, 0x57, 0x15, 0x86, 0xbf, 0x7b, 0x6f, 0x3d, 0xfa, 0x35, 0xd3, 0xd3, 0xf3, 0xf2, 0xf8, 0x15, 0x3b, 0x76, 0x1c, 0x85, 0x05, 0x04, 0x45, 0x0e, 0x36, 0x32, 0x11, 0x8a, 0x48, 0xe4, 0x28, 0xc0, 0x8a, 0xc7, 0x2a, 0x2c, 0x40, 0x59, 0xb0, 0x00, 0x36, 0xac, 0x58, 0x11, 0xa4, 0xec, 0x90, 0xb2, 0x41, 0xd9, 0xf1, 0x10, 0x48, 0x11, 0x42, 0x46, 0x22, 0x32, 0x12, 0x20, 0x10, 0x44, 0x04, 0x83, 0x64, 0x14, 0x14, 0x83, 0x94, 0xd8, 0x41, 0x31, 0xf6, 0x78, 0x6c, 0x67, 0x3c, 0x99, 0x9e, 0x47, 0xf7, 0x74, 0xbd, 0xab, 0x0e, 0x8b, 0x7b, 0x7b, 0xba, 0xec, 0x90, 0x40, 0x4c, 0x5a, 0x3a, 0xba, 0x57, 0x55, 0x5d, 0xf7, 0xfc, 0xe7, 0x3f, 0xe7, 0x3f, 0x75, 0x4a, 0x71, 0x17, 0xbf, 0x87, 0xef, 0x6b, 0xaa, 0x76, 0x2b, 0xeb, 0xfa, 0xbe, 0x2c, 0xf9, 0x06, 0x2f, 0x4e, 0x55, 0x9a, 0x16, 0xfa, 0xe6, 0x5f, 0x5e, 0xcb, 0x47, 0x77, 0x73, 0x9e, 0xfa, 0x5f, 0xfe, 0xd4, 0x34, 0x3d, 0x4e, 0x3d, 0x38, 0x98, 0x9b, 0xeb, 0xca, 0x17, 0x3b, 0x4d, 0x9e, 0x6c, 0x04, 0x72, 0xa2, 0x11, 0xb2, 0x10, 0x7a, 0xa0, 0x34, 0x14, 0x05, 0xc4, 0x29, 0x55, 0x92, 0xaa, 0x6b, 0x71, 0xc2, 0xb9, 0x41, 0xc4, 0x8b, 0xeb, 0x9b, 0xfe, 0x2f, 0xff, 0x7c, 0x29, 0xcd, 0x3e, 0x10, 0x10, 0x4f, 0x9c, 0xd4, 0x07, 0xf6, 0x74, 0xf9, 0xf6, 0x6c, 0x57, 0x9e, 0xda, 0x33, 0x47, 0x63, 0xba, 0x03, 0xcd, 0x06, 0x84, 0x1e, 0x18, 0xcf, 0xfe, 0xa7, 0x28, 0x21, 0xcf, 0x21, 0xcd, 0x60, 0x67, 0x04, 0x9b, 0x03, 0x58, 0xdb, 0x60, 0x75, 0x63, 0x5b, 0x3d, 0xd7, 0x1f, 0x86, 0xdf, 0x7b, 0xe9, 0x42, 0x9c, 0xdc, 0x15, 0x88, 0x13, 0x47, 0x03, 0x7d, 0xef, 0xa1, 0xe2, 0x1b, 0xfb, 0xe7, 0xe5, 0xd9, 0x83, 0x4b, 0xb4, 0x67, 0x7b, 0x30, 0xdd, 0x81, 0x56, 0x08, 0x8d, 0x00, 0x3c, 0x0f, 0xb4, 0x7b, 0xba, 0xa8, 0xa0, 0x2c, 0x20, 0xcd, 0x85, 0x28, 0x51, 0xec, 0x44, 0xc2, 0x60, 0xa8, 0x78, 0x7b, 0x13, 0x56, 0x56, 0xd5, 0xe5, 0xb5, 0x3e, 0x5f, 0x39, 0x7b, 0xbe, 0x7a, 0xf9, 0x7d, 0x81, 0x38, 0x7d, 0xd2, 0x0b, 0xf7, 0xcf, 0x54, 0x2f, 0x1c, 0x39, 0x28, 0x9f, 0x3b, 0xb0, 0x08, 0xb3, 0x3d, 0xe8, 0x76, 0xa0, 0xd5, 0x80, 0x66, 0x68, 0x01, 0x78, 0x1e, 0x28, 0x05, 0x02, 0x48, 0x35, 0x61, 0x23, 0x49, 0x21, 0x4e, 0x61, 0x14, 0xef, 0x32, 0xc2, 0xf2, 0x4d, 0xca, 0x95, 0x55, 0xf5, 0xad, 0xcb, 0xd7, 0xf5, 0x77, 0x2f, 0x5c, 0x29, 0xde, 0xe1, 0xcf, 0xdc, 0x79, 0xe1, 0x53, 0x1f, 0xd5, 0x8d, 0x43, 0x0b, 0xf2, 0x9b, 0x07, 0x8e, 0xca, 0x93, 0x87, 0xf7, 0xc3, 0xde, 0x79, 0x58, 0xe8, 0x41, 0x6f, 0x1a, 0xa6, 0xa6, 0xa0, 0xd3, 0x16, 0xda, 0x2d, 0x45, 0xb3, 0x09, 0xcd, 0x26, 0x34, 0x42, 0x68, 0x34, 0x20, 0x08, 0xc0, 0xf7, 0x2c, 0xc8, 0xc0, 0x87, 0xc0, 0x73, 0x6b, 0x00, 0xad, 0x00, 0x6d, 0x0c, 0x8f, 0x1b, 0x08, 0x5e, 0x5b, 0x96, 0x3f, 0xbc, 0x27, 0x88, 0x8f, 0x1f, 0x43, 0xdd, 0x7b, 0x40, 0xfd, 0xf4, 0x81, 0x23, 0xf2, 0xe4, 0x3d, 0xfb, 0x60, 0x71, 0x0e, 0xe6, 0xba, 0x30, 0x3d, 0x05, 0x1d, 0xc7, 0x44, 0xbb, 0xa5, 0x68, 0xba, 0x94, 0x84, 0xbe, 0xda, 0x75, 0x18, 0xfa, 0xe0, 0x07, 0xa0, 0x8d, 0x63, 0xca, 0x80, 0x6f, 0x2c, 0x30, 0xdf, 0xb7, 0x80, 0x44, 0xf1, 0xc8, 0x9e, 0xae, 0xe9, 0x5f, 0xbc, 0x26, 0x7f, 0x7d, 0x57, 0x10, 0xa7, 0x3e, 0xac, 0xbf, 0x7e, 0xec, 0x90, 0x7c, 0xf3, 0xf0, 0x3e, 0x58, 0x9a, 0x87, 0xd9, 0xee, 0x38, 0x7a, 0x0b, 0xa0, 0xe5, 0x22, 0xf6, 0x7c, 0x5b, 0x94, 0x3a, 0x00, 0x63, 0xec, 0xde, 0x18, 0x30, 0x1a, 0x3c, 0x6d, 0x81, 0x68, 0xb7, 0x1a, 0x6d, 0x4d, 0x6b, 0x0b, 0x08, 0xe1, 0xb1, 0x5e, 0xdb, 0xfc, 0xfa, 0x9f, 0x37, 0xaa, 0xb7, 0xde, 0x01, 0xe2, 0xf4, 0xc3, 0x66, 0xdf, 0xe1, 0xbd, 0xf2, 0xe2, 0x91, 0x83, 0x04, 0x7b, 0x17, 0x26, 0x0c, 0xb4, 0x5a, 0xd0, 0x6e, 0x5a, 0x9a, 0xfd, 0x00, 0xb4, 0x07, 0x2a, 0x00, 0x7c, 0xc0, 0x73, 0x27, 0xf8, 0x56, 0xaa, 0xa6, 0x66, 0x0a, 0x7b, 0x4d, 0x98, 0x14, 0x70, 0x29, 0xa0, 0x14, 0x66, 0x67, 0x24, 0xc7, 0x9b, 0x5e, 0xf0, 0xfd, 0x95, 0xf5, 0x52, 0x70, 0xc7, 0x00, 0xb0, 0xd0, 0x95, 0x67, 0xf6, 0x2d, 0xd2, 0xe9, 0x75, 0x61, 0xaa, 0x0d, 0xad, 0x26, 0x84, 0xa1, 0x55, 0xc3, 0x98, 0x6a, 0x02, 0xc0, 0x08, 0x18, 0x05, 0x1a, 0x6b, 0x00, 0xa5, 0x03, 0xe3, 0xa2, 0xf7, 0x14, 0x34, 0xdd, 0x2d, 0xa9, 0xac, 0x65, 0xb9, 0x55, 0x57, 0x1c, 0xc3, 0xd2, 0x22, 0x0f, 0xf5, 0xb7, 0x8b, 0x2f, 0x00, 0x3f, 0xdb, 0x65, 0xe2, 0xd1, 0x07, 0xcd, 0xd2, 0xa1, 0xbd, 0xf2, 0xa3, 0x43, 0xfb, 0xf1, 0x16, 0x67, 0xa1, 0xd7, 0x81, 0xf6, 0x18, 0x48, 0xe0, 0x18, 0x08, 0x1c, 0x64, 0x4f, 0xd9, 0x55, 0xdf, 0x61, 0x6a, 0x02, 0x4a, 0xd5, 0x64, 0x57, 0x61, 0xd9, 0xa8, 0x4a, 0xa8, 0x9c, 0x8a, 0x8a, 0x1c, 0x06, 0x23, 0x75, 0x60, 0xb8, 0xae, 0x7e, 0xb0, 0x99, 0x88, 0x7d, 0xac, 0xd7, 0x91, 0xcf, 0xcf, 0xcd, 0x10, 0x76, 0x5a, 0xae, 0xba, 0x83, 0x89, 0x0c, 0x03, 0x1f, 0x8c, 0x27, 0xd6, 0x81, 0xa9, 0xa5, 0xa0, 0xbe, 0x57, 0xb5, 0x6b, 0xbe, 0x35, 0xed, 0x8a, 0x32, 0xf0, 0xec, 0x1a, 0x06, 0xb6, 0x98, 0x9b, 0x0d, 0x98, 0xea, 0xc0, 0xcc, 0xb4, 0x9c, 0xbc, 0xef, 0xa8, 0x3a, 0xca, 0x18, 0x7b, 0xbb, 0xc5, 0x63, 0x9d, 0x96, 0x95, 0x5b, 0xe8, 0xdb, 0xc2, 0xf3, 0x7d, 0x5b, 0xe1, 0xda, 0x60, 0xe9, 0x1f, 0x3b, 0xd5, 0x35, 0x87, 0x63, 0x16, 0xee, 0x64, 0xc6, 0xb3, 0xa6, 0xc7, 0xaa, 0x71, 0xe9, 0x0c, 0x7c, 0x68, 0xfa, 0x96, 0xe1, 0xd9, 0x69, 0x68, 0xb7, 0xe5, 0x09, 0x00, 0xfd, 0xd0, 0xfd, 0x0d, 0x7c, 0x4f, 0x4e, 0x34, 0x1d, 0x80, 0x71, 0x95, 0x1b, 0x65, 0x0d, 0x00, 0x2d, 0x13, 0xca, 0x77, 0xdb, 0x9b, 0x80, 0xaa, 0x59, 0x3d, 0x25, 0xce, 0x94, 0x0b, 0xc2, 0x37, 0x36, 0x20, 0xe3, 0xe4, 0x1b, 0x7a, 0xd0, 0x6c, 0x08, 0xcd, 0x40, 0x4e, 0x01, 0x68, 0xa3, 0xa4, 0x15, 0xf8, 0x2c, 0x79, 0x9e, 0x93, 0x95, 0xb2, 0xeb, 0xed, 0x4e, 0xd5, 0xa4, 0x08, 0x95, 0xa0, 0x94, 0x75, 0x60, 0x9d, 0xd6, 0xee, 0xd5, 0x0b, 0x42, 0xcb, 0x2e, 0x60, 0xe3, 0xce, 0xf4, 0x1c, 0x08, 0xe3, 0x41, 0xe8, 0x29, 0x02, 0x4f, 0x1d, 0x03, 0xd0, 0x81, 0xc9, 0xbb, 0x81, 0x6b, 0xc1, 0x28, 0xb7, 0x02, 0x22, 0x2e, 0x58, 0x3d, 0x09, 0xdc, 0x56, 0x9a, 0x42, 0x14, 0x88, 0x52, 0x16, 0x80, 0x72, 0xf7, 0x6a, 0x85, 0x69, 0x81, 0xa8, 0xdb, 0x80, 0xa9, 0x1a, 0x8b, 0x5a, 0x83, 0xd2, 0x82, 0xd6, 0x32, 0x07, 0xe0, 0x69, 0x2d, 0x4a, 0x69, 0xeb, 0x54, 0xc4, 0x56, 0xb0, 0x54, 0x13, 0xd6, 0xa5, 0x74, 0x51, 0xef, 0x7a, 0x02, 0x2a, 0xb7, 0x57, 0x32, 0x01, 0x28, 0x35, 0xa0, 0xe5, 0x58, 0x12, 0xce, 0xb9, 0x3b, 0x17, 0x87, 0x4d, 0xc4, 0x3e, 0xaf, 0xa0, 0x00, 0xd0, 0x79, 0xea, 0x45, 0x79, 0x3e, 0x91, 0x90, 0x08, 0x94, 0x95, 0xb5, 0xca, 0xe9, 0x7c, 0xcc, 0xc0, 0x44, 0x6f, 0x6e, 0x5f, 0x29, 0x54, 0xed, 0xba, 0xd4, 0x81, 0xb8, 0xb5, 0xaa, 0x14, 0x55, 0xad, 0x67, 0x54, 0x02, 0x22, 0x8a, 0xaa, 0x82, 0xaa, 0x62, 0xc3, 0x96, 0x9c, 0x98, 0xed, 0xac, 0x60, 0x35, 0x2b, 0x20, 0xcd, 0x21, 0x2f, 0xa0, 0x2c, 0xdd, 0x5b, 0xb1, 0x70, 0x87, 0x57, 0x2e, 0xba, 0xd2, 0x09, 0xbf, 0x66, 0xd6, 0xb1, 0x82, 0xd2, 0x11, 0x53, 0x39, 0xa6, 0xc6, 0xf7, 0x2b, 0xa1, 0x1c, 0x07, 0x26, 0xae, 0x4f, 0x94, 0x90, 0x15, 0x90, 0x15, 0xea, 0x1a, 0x80, 0x3e, 0xff, 0x66, 0x22, 0x51, 0xa4, 0x2e, 0xc6, 0x89, 0x90, 0xe7, 0x76, 0x4a, 0xca, 0x0b, 0xcb, 0x4c, 0x59, 0x42, 0x56, 0x82, 0x14, 0x77, 0x00, 0x90, 0xda, 0xbe, 0xac, 0x5d, 0xdb, 0xfd, 0x8f, 0x05, 0x55, 0x55, 0x76, 0xd6, 0x28, 0xc6, 0x81, 0xe5, 0x6e, 0xee, 0xc8, 0x20, 0x4a, 0x84, 0x24, 0x53, 0xe7, 0x77, 0xfb, 0x44, 0x92, 0xc8, 0xaf, 0x46, 0x11, 0x24, 0x09, 0x24, 0xb9, 0x6d, 0xb1, 0x79, 0x66, 0xd7, 0xa2, 0x80, 0xaa, 0xa8, 0x01, 0x29, 0xb1, 0x99, 0xac, 0x6a, 0x75, 0x50, 0x67, 0xca, 0xdd, 0x17, 0xe7, 0x70, 0x1c, 0x54, 0xee, 0x58, 0x8e, 0x33, 0x48, 0x53, 0x18, 0x0e, 0x15, 0x3b, 0x91, 0x7d, 0xad, 0x6b, 0x80, 0xcd, 0x48, 0x9f, 0x59, 0xdf, 0x52, 0xc5, 0x28, 0x82, 0x28, 0x86, 0x24, 0xb3, 0xc3, 0x49, 0xe6, 0x46, 0xb6, 0xac, 0xb0, 0x07, 0x92, 0x3b, 0x2b, 0xdd, 0x5a, 0xdc, 0xb1, 0x3a, 0x93, 0xdc, 0x46, 0x9e, 0x8f, 0x53, 0x9c, 0x42, 0xe6, 0xce, 0x8c, 0x62, 0x18, 0x8e, 0x84, 0x8d, 0x01, 0x97, 0x76, 0x86, 0xd5, 0x85, 0x5d, 0x10, 0x2f, 0xfd, 0xbd, 0x5c, 0xde, 0x1a, 0xf0, 0x8b, 0xcd, 0x01, 0x0c, 0x46, 0xf6, 0x25, 0x13, 0xa7, 0xf6, 0xa1, 0x24, 0xb5, 0xe8, 0xb3, 0x0c, 0xca, 0x0c, 0x24, 0x05, 0x32, 0x20, 0x13, 0x48, 0x6b, 0xce, 0x1d, 0x10, 0x49, 0xa1, 0xcc, 0x27, 0x33, 0x67, 0x9a, 0x5a, 0x8b, 0x13, 0x88, 0x52, 0x18, 0x46, 0x42, 0x7f, 0x4b, 0x31, 0x18, 0xea, 0xe7, 0xcf, 0xbd, 0x61, 0xcb, 0x77, 0xf7, 0x55, 0xbe, 0x77, 0xde, 0xbb, 0x14, 0x18, 0x79, 0xba, 0xd3, 0xc2, 0x84, 0xc1, 0xa4, 0x73, 0xee, 0xb6, 0x89, 0xba, 0x22, 0xab, 0x89, 0x42, 0x94, 0x4b, 0x95, 0x14, 0xd6, 0x79, 0x59, 0x1b, 0x7a, 0xe3, 0x14, 0x92, 0x18, 0x46, 0x11, 0x0c, 0x23, 0xd8, 0xdc, 0x86, 0xb5, 0xbe, 0xe2, 0xca, 0x75, 0xae, 0x5c, 0x5d, 0x53, 0x4f, 0x5f, 0x5b, 0x93, 0xe2, 0x36, 0x10, 0xff, 0xba, 0x59, 0xad, 0x1d, 0x9c, 0x57, 0xed, 0xb0, 0xc1, 0x27, 0xc2, 0x40, 0x30, 0x46, 0x61, 0x8c, 0xd5, 0xf5, 0xb8, 0x1f, 0x8d, 0x8b, 0x1e, 0x2b, 0xaf, 0x89, 0xb9, 0xdc, 0x67, 0x99, 0x4b, 0xe5, 0x98, 0x7a, 0x97, 0xde, 0x61, 0x04, 0x5b, 0x3b, 0xf0, 0xf6, 0x86, 0x70, 0xf5, 0x86, 0x92, 0x95, 0x35, 0xf5, 0xd4, 0x6f, 0x5f, 0xa9, 0x2e, 0xfe, 0xc7, 0xc9, 0x6a, 0x61, 0xc6, 0x7f, 0x99, 0xb2, 0x7a, 0x34, 0xf4, 0xd5, 0x3d, 0xbe, 0x6b, 0xcb, 0x6a, 0xdc, 0x3d, 0x9d, 0xc3, 0xd2, 0x55, 0x7c, 0x5e, 0x38, 0x99, 0x95, 0xb6, 0x76, 0x92, 0xd4, 0xe6, 0x3f, 0x49, 0x2c, 0xfd, 0x49, 0x02, 0x3b, 0x11, 0x6c, 0x8f, 0x60, 0x73, 0x07, 0xd6, 0xfb, 0xc2, 0xca, 0xaa, 0xe2, 0xea, 0x0d, 0xf5, 0xdc, 0xcf, 0xff, 0x54, 0x3d, 0xff, 0xae, 0xe3, 0xdd, 0xf2, 0x5a, 0x55, 0x2e, 0x76, 0xf4, 0xd9, 0xa2, 0xe4, 0xb3, 0xbe, 0xcf, 0x82, 0x31, 0xa0, 0x10, 0x2a, 0xd4, 0x6e, 0x13, 0xab, 0xca, 0xdb, 0xab, 0x3e, 0x1b, 0xab, 0xc9, 0x39, 0x4e, 0x12, 0x1b, 0xfd, 0x60, 0x64, 0x6d, 0x6b, 0x00, 0xeb, 0x7d, 0xb8, 0x7e, 0x4b, 0x71, 0x79, 0x45, 0x9d, 0xb9, 0x71, 0x33, 0xfc, 0xea, 0x72, 0xbf, 0x90, 0xf7, 0x9c, 0xb6, 0xaf, 0xac, 0x49, 0xdc, 0x9b, 0x32, 0x67, 0xf2, 0x4c, 0x3e, 0xa9, 0x15, 0xfb, 0x0d, 0x8a, 0xa2, 0x9a, 0x8c, 0xf5, 0xe3, 0xd1, 0x7e, 0x4c, 0x7f, 0x96, 0x41, 0x9a, 0xd8, 0xc2, 0x1b, 0xc5, 0x36, 0xfa, 0x41, 0x04, 0x5b, 0x23, 0x61, 0x63, 0x4b, 0xb1, 0xde, 0x87, 0xe5, 0x9b, 0x70, 0xe5, 0xba, 0xfa, 0xe1, 0x5b, 0xfd, 0xe0, 0xcb, 0x7f, 0x7c, 0x3d, 0x29, 0xff, 0xeb, 0xc8, 0x0f, 0x70, 0xf5, 0x96, 0x8c, 0x5a, 0x2d, 0xf3, 0x42, 0x9e, 0xc8, 0x54, 0x92, 0x71, 0xbc, 0xaa, 0xd0, 0xe3, 0xa8, 0xd3, 0x0c, 0xb2, 0x4c, 0x88, 0x33, 0x65, 0x29, 0x4f, 0xac, 0x9a, 0x86, 0x0e, 0xc0, 0xd6, 0x10, 0xfa, 0xdb, 0xb0, 0xbe, 0x01, 0xb7, 0xd6, 0x14, 0x97, 0xaf, 0x33, 0xbc, 0xb6, 0xaa, 0xbe, 0xb6, 0x32, 0x08, 0x9e, 0x39, 0xf7, 0x8f, 0xa4, 0xba, 0xab, 0xcf, 0xc0, 0x4f, 0x1f, 0x37, 0x1f, 0xeb, 0xcd, 0xc8, 0xb3, 0x73, 0x5d, 0x79, 0x7c, 0xbe, 0x67, 0xe7, 0xcf, 0xa6, 0x1b, 0xf9, 0x3c, 0x3d, 0x19, 0xe1, 0x8a, 0x12, 0xf2, 0x54, 0x88, 0x52, 0xc5, 0x60, 0x07, 0xd6, 0x37, 0x49, 0xfb, 0xdb, 0xfc, 0xa4, 0xbf, 0xad, 0xbf, 0xf3, 0xbb, 0x57, 0xcb, 0x1b, 0xff, 0xf7, 0x07, 0x31, 0xc0, 0xe9, 0xe3, 0xe6, 0x23, 0xdd, 0x8e, 0x7c, 0xa9, 0xd3, 0x90, 0xcf, 0xb4, 0x9a, 0xdc, 0xdf, 0x6e, 0xa2, 0x7d, 0x37, 0x02, 0x54, 0x95, 0x4d, 0xcb, 0x28, 0x26, 0x89, 0x62, 0xfe, 0x36, 0x8c, 0xd4, 0xd9, 0xad, 0x48, 0xfd, 0xf8, 0xf7, 0xaf, 0x96, 0xb7, 0x3e, 0xb0, 0xaf, 0xf2, 0xdb, 0xf3, 0x37, 0xc3, 0x23, 0x1f, 0x1a, 0xce, 0xb7, 0x5b, 0x1c, 0xd1, 0x9e, 0x2c, 0x69, 0x25, 0x01, 0x95, 0x8a, 0xe2, 0x42, 0x56, 0x36, 0x46, 0xe1, 0x9b, 0xaf, 0xbc, 0x91, 0xc4, 0xef, 0xf7, 0xcc, 0x7f, 0x03, 0xce, 0x64, 0xa2, 0x49, 0x35, 0x45, 0x09, 0x74, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; const unsigned char icon_tucnak[2036] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x08, 0x06, 0x00, 0x00, 0x00, 0x73, 0x7a, 0x7a, 0xf4, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, 0x8e, 0x7c, 0xfb, 0x51, 0x93, 0x00, 0x00, 0x00, 0x20, 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x25, 0x00, 0x00, 0x80, 0x83, 0x00, 0x00, 0xf9, 0xff, 0x00, 0x00, 0x80, 0xe9, 0x00, 0x00, 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, 0x00, 0x17, 0x6f, 0x92, 0x5f, 0xc5, 0x46, 0x00, 0x00, 0x07, 0x6a, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x62, 0xf8, 0xff, 0xff, 0x3f, 0x03, 0x08, 0x53, 0x08, 0x84, 0x81, 0xb8, 0x91, 0x81, 0x91, 0xf1, 0x2c, 0x90, 0x3e, 0x01, 0xc4, 0x99, 0x40, 0xcc, 0x8c, 0x4f, 0x03, 0xcc, 0x5e, 0x80, 0x00, 0x62, 0x61, 0xa0, 0x1c, 0x68, 0x00, 0xf1, 0x4a, 0x59, 0x45, 0x15, 0x3d, 0x55, 0x0d, 0x0d, 0x06, 0x66, 0x26, 0x26, 0x86, 0x4b, 0x67, 0xcf, 0x98, 0xbf, 0x7c, 0xf1, 0x4c, 0x09, 0x28, 0x5e, 0x4a, 0x48, 0x33, 0x40, 0x00, 0x31, 0x51, 0x68, 0xb9, 0x19, 0xd0, 0xd7, 0xfb, 0x9c, 0x5d, 0xdd, 0xf4, 0x04, 0x04, 0x04, 0x18, 0xd8, 0xd9, 0x39, 0x19, 0x64, 0xe4, 0xe4, 0x19, 0xa2, 0x62, 0xe3, 0x19, 0x84, 0x44, 0xc5, 0x8b, 0x81, 0xf2, 0x91, 0x84, 0x0c, 0x00, 0x08, 0x20, 0x4a, 0x1c, 0x00, 0xb4, 0x8f, 0xb3, 0x6f, 0xf9, 0xca, 0x55, 0x92, 0x7b, 0x76, 0xed, 0x64, 0x50, 0x52, 0x56, 0x62, 0x78, 0xf3, 0xfa, 0x15, 0xc3, 0xc3, 0xbb, 0x77, 0x19, 0xee, 0xdf, 0xbf, 0xcf, 0xa0, 0xa6, 0xaa, 0xce, 0x08, 0x54, 0x13, 0x06, 0xc4, 0x8c, 0xf8, 0x0c, 0x01, 0x08, 0x20, 0x4a, 0x1c, 0x10, 0xea, 0xe9, 0xe5, 0x6b, 0xbd, 0x77, 0xfb, 0x26, 0x86, 0xcf, 0x6f, 0x9e, 0x33, 0xc8, 0x8b, 0xcb, 0x30, 0x28, 0x2a, 0x69, 0x30, 0x2c, 0x5a, 0xb4, 0x98, 0xa1, 0xb2, 0xa2, 0x84, 0xe1, 0xe3, 0xc7, 0xb7, 0x20, 0x35, 0xb2, 0x40, 0xcc, 0x87, 0xcf, 0x10, 0x80, 0x00, 0x22, 0xd7, 0x01, 0x4c, 0x7c, 0x3c, 0x2c, 0x69, 0x89, 0x7e, 0x5a, 0x0c, 0x3e, 0xd6, 0x3a, 0x0c, 0xbc, 0x1f, 0x0f, 0x31, 0x14, 0x38, 0xbe, 0x67, 0x50, 0x78, 0xb7, 0x91, 0x41, 0xf4, 0xfb, 0x03, 0x06, 0x33, 0x63, 0x63, 0x06, 0x29, 0x29, 0x90, 0xdd, 0x0c, 0x9c, 0xa0, 0x90, 0xc2, 0x67, 0x10, 0x40, 0x00, 0x31, 0x90, 0x99, 0x0b, 0x1c, 0xdb, 0x4b, 0x74, 0xff, 0xfd, 0x07, 0x83, 0x27, 0xff, 0xff, 0xbf, 0x2e, 0xfd, 0xff, 0xff, 0xa6, 0xe0, 0xff, 0xff, 0xc7, 0x80, 0x46, 0xcd, 0x65, 0xf8, 0x7f, 0x38, 0xc7, 0xff, 0xbf, 0xab, 0x77, 0x00, 0xc8, 0xd0, 0x1b, 0x40, 0x2c, 0x81, 0xcf, 0x5e, 0x80, 0x00, 0x22, 0x37, 0x17, 0x44, 0x04, 0xfb, 0xa9, 0x32, 0x32, 0xfc, 0xdb, 0xca, 0xc0, 0x70, 0x6f, 0x19, 0xc3, 0xbf, 0xe7, 0x07, 0x19, 0xbe, 0x3c, 0xf9, 0xc2, 0xf0, 0xf8, 0xb5, 0x26, 0xc3, 0xd3, 0x0f, 0x7a, 0x0c, 0x8f, 0x65, 0x0d, 0x18, 0xfe, 0xdf, 0x07, 0xe5, 0x46, 0x86, 0x7f, 0x20, 0xbb, 0xf0, 0x19, 0x04, 0x10, 0x40, 0xe4, 0x38, 0x40, 0x0a, 0x88, 0xfd, 0x7e, 0xfe, 0x62, 0x61, 0xf8, 0x74, 0xeb, 0x08, 0xc3, 0xe3, 0x47, 0x8a, 0x0c, 0x1f, 0xbe, 0x59, 0x30, 0xbc, 0x67, 0x91, 0x61, 0x60, 0x54, 0x16, 0x63, 0xd0, 0x33, 0xd7, 0x67, 0xd0, 0xfc, 0xfd, 0x95, 0x61, 0xc1, 0x8e, 0xbd, 0x44, 0x19, 0x06, 0x10, 0x40, 0xe4, 0x38, 0xc0, 0x5f, 0x54, 0x5c, 0x42, 0x42, 0xcd, 0x76, 0x19, 0xc3, 0x8f, 0x3f, 0xcc, 0x0c, 0xac, 0xec, 0xef, 0x18, 0x64, 0xd9, 0x99, 0x18, 0xf4, 0x04, 0xb8, 0x18, 0x78, 0xb9, 0xd8, 0xc0, 0x0a, 0x7e, 0xff, 0xe5, 0x02, 0xa6, 0x7d, 0x70, 0xe2, 0x67, 0x25, 0x54, 0x20, 0x01, 0x04, 0x10, 0xa9, 0x0e, 0x00, 0x99, 0x1a, 0xee, 0xe9, 0xee, 0xce, 0xc0, 0xc6, 0xc6, 0x0c, 0xc4, 0xc0, 0x24, 0xae, 0x28, 0x84, 0xa1, 0x88, 0x95, 0x99, 0x89, 0x81, 0x8b, 0x13, 0x94, 0xfe, 0x18, 0x78, 0x81, 0x98, 0x0d, 0x9f, 0x81, 0x00, 0x01, 0x44, 0x6a, 0x2e, 0xb0, 0x00, 0x62, 0x9b, 0xf8, 0xf8, 0x38, 0x82, 0x0a, 0x39, 0x21, 0x0e, 0x10, 0x04, 0x62, 0x31, 0x7c, 0xea, 0x00, 0x02, 0x88, 0x54, 0x07, 0xc4, 0x18, 0x99, 0x9a, 0x32, 0x3b, 0x39, 0x39, 0x11, 0x54, 0xc8, 0xcd, 0xc3, 0xcb, 0xc0, 0xc4, 0xc2, 0x0a, 0xf2, 0xbd, 0x31, 0x3e, 0x75, 0x00, 0x01, 0x44, 0x8a, 0x03, 0x0c, 0x81, 0x38, 0xb6, 0xb2, 0xbc, 0x9c, 0xa0, 0xc2, 0xe7, 0x2f, 0x5e, 0x30, 0x30, 0x31, 0x31, 0x33, 0x68, 0x6a, 0xeb, 0x80, 0xb8, 0x3e, 0xf8, 0xd4, 0x02, 0x04, 0x10, 0xb1, 0x0e, 0x00, 0x25, 0xa6, 0x76, 0x47, 0x27, 0x67, 0xde, 0x90, 0xe0, 0x60, 0x82, 0x8a, 0xcf, 0x5f, 0xba, 0xc2, 0xf0, 0xfe, 0xc3, 0x7b, 0x06, 0x0d, 0x2d, 0x5d, 0x06, 0x16, 0x56, 0x76, 0x17, 0xa0, 0x90, 0x1d, 0x2e, 0xb5, 0x00, 0x01, 0x44, 0x8c, 0x03, 0x38, 0x80, 0xb8, 0x8b, 0x9d, 0x93, 0xdb, 0x7d, 0xda, 0xd4, 0xa9, 0x44, 0xb9, 0x76, 0xdb, 0x8e, 0x9d, 0x0c, 0xdf, 0xbf, 0x7f, 0x67, 0xe0, 0xe5, 0xe3, 0x65, 0xd0, 0x33, 0x32, 0x06, 0x45, 0x43, 0x09, 0xae, 0x3a, 0x01, 0x20, 0x80, 0x08, 0x39, 0x40, 0x1f, 0x88, 0x0f, 0x00, 0x71, 0x41, 0x55, 0x65, 0x39, 0x83, 0x86, 0x86, 0x3a, 0x41, 0xcb, 0xb7, 0xef, 0xda, 0xc3, 0x70, 0xf2, 0xe4, 0x29, 0x60, 0x4d, 0xc5, 0x0e, 0x76, 0x84, 0x99, 0xa9, 0x05, 0x83, 0xb0, 0x98, 0x84, 0x2f, 0x50, 0x2a, 0x1a, 0x9b, 0x7a, 0x80, 0x00, 0x62, 0x84, 0x15, 0xc3, 0x8c, 0x8c, 0x18, 0x0e, 0xcc, 0xe4, 0xe4, 0xe6, 0xee, 0x70, 0x71, 0x71, 0xe1, 0x7b, 0xfb, 0xe6, 0x2d, 0xc3, 0xe1, 0x43, 0x87, 0x81, 0xf1, 0x8a, 0xdf, 0xf2, 0xa7, 0xcf, 0x9e, 0x31, 0x44, 0xc5, 0x27, 0x33, 0xf0, 0x0b, 0x0a, 0x32, 0xfc, 0xfd, 0xfd, 0x87, 0x81, 0x0d, 0xe8, 0x08, 0x29, 0x29, 0x49, 0x86, 0x2f, 0x1f, 0xdf, 0x33, 0x2c, 0x9a, 0x37, 0xe7, 0x16, 0x50, 0x89, 0x03, 0x28, 0x89, 0xc0, 0x8a, 0x62, 0x10, 0x00, 0x08, 0x20, 0x26, 0x1c, 0xf1, 0x3d, 0x4d, 0x4a, 0x46, 0x76, 0xda, 0xf1, 0xa3, 0xc7, 0xf8, 0xcc, 0xcc, 0xcc, 0x18, 0x9a, 0x9b, 0x9b, 0x08, 0x5a, 0xfe, 0xef, 0xdf, 0x3f, 0x86, 0x9c, 0xfc, 0x42, 0x06, 0x79, 0x60, 0x7b, 0x40, 0x80, 0x97, 0x8f, 0xe1, 0xd3, 0xe7, 0xcf, 0x40, 0xb1, 0xbf, 0x0c, 0x5f, 0x3e, 0x7d, 0x66, 0x50, 0x55, 0xd3, 0x64, 0xb0, 0xb0, 0xb6, 0x53, 0xc3, 0xd6, 0x40, 0x01, 0x08, 0x20, 0x6c, 0xc6, 0xce, 0x90, 0x96, 0x95, 0xcf, 0xdc, 0xb7, 0x77, 0x1f, 0x83, 0xa8, 0x98, 0x38, 0xc3, 0x87, 0x0f, 0x1f, 0x19, 0x9c, 0x1c, 0x1d, 0x09, 0x06, 0x7d, 0x76, 0x4e, 0x2e, 0x03, 0x3f, 0xd0, 0x62, 0x6d, 0x6d, 0x6d, 0x86, 0x2b, 0xd7, 0xae, 0x30, 0xfc, 0xfd, 0xfb, 0x9b, 0xe1, 0xcf, 0xef, 0xdf, 0x0c, 0x3f, 0xff, 0xfc, 0x66, 0xf8, 0xfc, 0xe5, 0x0b, 0x83, 0xbf, 0x5f, 0x20, 0x03, 0x27, 0x37, 0x6f, 0x1a, 0x50, 0xa9, 0x09, 0xb2, 0x3e, 0x80, 0x00, 0x42, 0x77, 0x40, 0x36, 0x37, 0x2f, 0x5f, 0xd2, 0xe2, 0x45, 0x4b, 0x19, 0xd4, 0xd5, 0x54, 0x18, 0xce, 0x9c, 0x3b, 0x07, 0xf4, 0x39, 0x44, 0xc9, 0x6f, 0x60, 0xb5, 0xf2, 0x17, 0x87, 0xe5, 0x57, 0xae, 0x5e, 0x65, 0x38, 0x76, 0xfc, 0x38, 0x43, 0x50, 0x50, 0x08, 0xc3, 0xc6, 0x4d, 0x1b, 0x18, 0xde, 0xbd, 0x7d, 0xc3, 0xf0, 0xe3, 0xc7, 0x0f, 0x86, 0x3f, 0x7f, 0xff, 0x80, 0xc2, 0x9a, 0xe1, 0xcb, 0xd7, 0x2f, 0x40, 0xcf, 0x88, 0x31, 0x38, 0x38, 0x38, 0x70, 0x03, 0x95, 0x67, 0x21, 0xeb, 0x05, 0x08, 0x20, 0x26, 0xb4, 0x86, 0x65, 0xb1, 0xab, 0x9b, 0x3b, 0xc3, 0xb3, 0x67, 0x4f, 0x18, 0xe2, 0x12, 0x92, 0x18, 0x2a, 0xca, 0xcb, 0x18, 0x2e, 0x5f, 0xbe, 0x0c, 0xa9, 0x3e, 0x7f, 0xff, 0x02, 0xc6, 0xeb, 0x5f, 0xb8, 0x23, 0xfe, 0x3d, 0xbe, 0xc9, 0xc0, 0xf0, 0xeb, 0x27, 0xc4, 0x01, 0x57, 0xae, 0x31, 0x88, 0x8a, 0x8a, 0x32, 0x9c, 0x3e, 0x73, 0x8a, 0xe1, 0xec, 0x99, 0xd3, 0xc0, 0xb8, 0xe7, 0x60, 0xb0, 0x30, 0x35, 0x67, 0xf0, 0xf3, 0xf2, 0x66, 0x88, 0x0a, 0x0b, 0x63, 0xe0, 0xe5, 0xe6, 0x61, 0xf8, 0x00, 0x4c, 0x07, 0x26, 0xa6, 0x66, 0x20, 0xe5, 0x5e, 0x40, 0x2c, 0x0f, 0xb3, 0x14, 0x20, 0x80, 0x90, 0xdb, 0x03, 0x01, 0x20, 0x7b, 0x98, 0x59, 0x58, 0x41, 0x9c, 0x67, 0x40, 0x0c, 0xb4, 0x81, 0xe1, 0x07, 0x23, 0x33, 0xcb, 0xff, 0x45, 0x4b, 0x96, 0xfc, 0xff, 0xbf, 0x39, 0xea, 0xff, 0xf7, 0x7d, 0xcd, 0xff, 0x7f, 0x02, 0x15, 0xff, 0x38, 0x36, 0xf7, 0xff, 0xc7, 0x22, 0xb1, 0xff, 0x3f, 0x76, 0x4c, 0x07, 0xb7, 0x08, 0xae, 0x5c, 0xbf, 0xf1, 0x5f, 0x51, 0x59, 0xe5, 0xbf, 0x8c, 0xbc, 0xc2, 0x7f, 0x75, 0x5d, 0x83, 0xff, 0x4b, 0x57, 0xac, 0xf9, 0x7f, 0xea, 0xec, 0xc5, 0xff, 0x17, 0x2e, 0x5c, 0x06, 0xcb, 0xf7, 0x4e, 0x9a, 0xf2, 0xbf, 0xba, 0xb1, 0xed, 0x7f, 0x47, 0x57, 0xff, 0x7f, 0x26, 0x16, 0x16, 0x50, 0x15, 0xed, 0x0e, 0xb3, 0x17, 0x20, 0x80, 0x90, 0x2b, 0xa3, 0xbb, 0x40, 0x5c, 0xff, 0xf7, 0xcf, 0xef, 0x7b, 0x40, 0xfa, 0x36, 0x10, 0xbf, 0x04, 0xe2, 0xfc, 0xff, 0x7f, 0xff, 0x14, 0xd4, 0x15, 0xa5, 0x33, 0x84, 0xf7, 0x7d, 0x67, 0x60, 0xfe, 0xa4, 0xc8, 0xf0, 0xf3, 0x98, 0x12, 0x03, 0xcb, 0x95, 0x66, 0x06, 0x26, 0x51, 0x60, 0xf0, 0x8a, 0x29, 0x81, 0x35, 0x6a, 0x03, 0xb3, 0xa7, 0x9c, 0x9c, 0x1c, 0x30, 0x40, 0x7e, 0x32, 0x2c, 0x5a, 0xb8, 0x84, 0x81, 0x91, 0x99, 0x95, 0xe1, 0xef, 0x9f, 0x5f, 0xc0, 0x76, 0xa1, 0x22, 0x58, 0xfe, 0xef, 0xbf, 0xff, 0x40, 0xfe, 0x1f, 0x86, 0x47, 0x8f, 0x1e, 0x31, 0xfc, 0x03, 0xd2, 0xc8, 0x35, 0x24, 0x40, 0x00, 0x21, 0x3b, 0xe0, 0x32, 0x14, 0x23, 0x83, 0x3a, 0x20, 0x56, 0x66, 0x66, 0xf8, 0xe9, 0xcb, 0xc0, 0xf5, 0x8f, 0x81, 0xe9, 0xcf, 0x23, 0x06, 0x96, 0x33, 0x79, 0x0c, 0x8c, 0x5c, 0x4c, 0x0c, 0xff, 0xbe, 0x0a, 0x31, 0xfc, 0x7e, 0xfd, 0x9a, 0xe1, 0xf7, 0xea, 0x76, 0x06, 0xd6, 0xa7, 0x0f, 0x19, 0xe6, 0x76, 0xb7, 0x32, 0x88, 0xeb, 0x18, 0x31, 0xf0, 0xb0, 0xb3, 0x31, 0x3c, 0x7b, 0xfe, 0x92, 0x41, 0x4a, 0x52, 0x1a, 0x6e, 0xc8, 0x13, 0x60, 0xf6, 0xe4, 0x60, 0xe5, 0x60, 0x38, 0x7e, 0xec, 0x28, 0x03, 0x34, 0x1b, 0x3e, 0x82, 0xc9, 0x01, 0x04, 0x10, 0xa1, 0xea, 0xf8, 0x33, 0x10, 0x27, 0xbc, 0xff, 0xf8, 0xa7, 0xe6, 0xcf, 0x67, 0xbe, 0x42, 0x16, 0xbe, 0xbf, 0x0c, 0x8c, 0x02, 0xc0, 0x78, 0xfa, 0xc2, 0xce, 0xc0, 0xc4, 0xfe, 0x87, 0xe1, 0xff, 0xfe, 0x6a, 0x86, 0xff, 0x6f, 0xde, 0x33, 0x7c, 0xfe, 0x25, 0xc7, 0xa0, 0x1c, 0xdf, 0x0a, 0x6c, 0xfd, 0x41, 0x6a, 0x5e, 0x29, 0x49, 0x71, 0xb8, 0x01, 0xc7, 0x4f, 0x9d, 0x66, 0x78, 0xf5, 0xf2, 0x15, 0xc3, 0xe7, 0x8f, 0x1f, 0x19, 0x2e, 0x5c, 0x38, 0x07, 0x12, 0xda, 0x0d, 0xc4, 0x77, 0x60, 0xf2, 0x00, 0x01, 0x44, 0x4c, 0x51, 0xfc, 0xee, 0xdd, 0x4f, 0x86, 0x8e, 0x0f, 0x6f, 0xd8, 0x5f, 0x32, 0xfd, 0x64, 0x67, 0xf8, 0x0f, 0xc4, 0xff, 0x80, 0x0d, 0x11, 0x36, 0x60, 0x53, 0x93, 0x1d, 0x98, 0x28, 0xff, 0xb1, 0xeb, 0x32, 0x88, 0x34, 0xae, 0x01, 0x56, 0xbc, 0xc2, 0x98, 0xb9, 0xe3, 0xe6, 0x6d, 0x86, 0x49, 0xd3, 0x66, 0x30, 0x3c, 0x7c, 0xf8, 0x80, 0x61, 0xcf, 0xce, 0xed, 0x0c, 0xff, 0xff, 0xfd, 0x01, 0xa5, 0x2b, 0x50, 0x79, 0xfe, 0x03, 0xa6, 0x06, 0x20, 0x80, 0x88, 0x6d, 0x90, 0xbc, 0x3a, 0x70, 0xf1, 0xf7, 0xc9, 0x28, 0x09, 0x1e, 0x3f, 0xb6, 0xff, 0xcc, 0x0c, 0x4c, 0xff, 0x59, 0x18, 0x9e, 0xdd, 0xfb, 0xc3, 0x50, 0xbf, 0x07, 0xe8, 0x2b, 0xce, 0xcf, 0x0c, 0x8e, 0x42, 0x2b, 0x19, 0xac, 0x8c, 0x0d, 0x18, 0x64, 0x65, 0xe5, 0x19, 0xfe, 0x02, 0x93, 0xf0, 0xd5, 0x5b, 0x77, 0x18, 0x8e, 0xee, 0xdf, 0xc7, 0x70, 0xfc, 0xe8, 0x71, 0x86, 0xc7, 0x20, 0xdf, 0xbf, 0x05, 0x85, 0xfa, 0xbf, 0x8b, 0x40, 0xa2, 0x02, 0x88, 0x4f, 0x23, 0x1b, 0x0c, 0x10, 0x40, 0xf8, 0x8a, 0x62, 0x14, 0xa0, 0x29, 0xc0, 0xe0, 0xbb, 0x3b, 0x47, 0x7a, 0xed, 0xe7, 0x8f, 0xff, 0x18, 0x16, 0x1e, 0x79, 0x7f, 0x66, 0xda, 0xf9, 0x1f, 0x1b, 0x3e, 0x31, 0x30, 0x00, 0xdb, 0x5e, 0x0c, 0x46, 0x40, 0x0c, 0x2a, 0xe5, 0x44, 0x40, 0xcd, 0x00, 0x31, 0x7e, 0x6e, 0x0e, 0x5b, 0x2d, 0x51, 0x06, 0x2f, 0x13, 0x3e, 0x06, 0x45, 0xae, 0xf7, 0x0c, 0xcb, 0xb6, 0xbf, 0xf8, 0x37, 0xe7, 0xd2, 0xef, 0x05, 0x40, 0xb9, 0x16, 0x20, 0xbe, 0x8f, 0x9c, 0xfb, 0x40, 0x00, 0x20, 0x80, 0x48, 0x69, 0x96, 0x33, 0x41, 0xcb, 0x72, 0x5f, 0x68, 0x3e, 0x66, 0x42, 0x6a, 0xa6, 0x29, 0x5a, 0xaa, 0x0b, 0xb5, 0xcf, 0xac, 0x89, 0x7d, 0xfe, 0xec, 0x50, 0x1b, 0xb0, 0xa5, 0x5e, 0xf6, 0xff, 0xff, 0x53, 0x23, 0x60, 0xfe, 0x04, 0x1a, 0xbd, 0x93, 0xe1, 0xff, 0xbd, 0x26, 0x86, 0x7b, 0x59, 0x3a, 0x0c, 0x05, 0x40, 0x75, 0x3c, 0xe8, 0xd9, 0x1f, 0x20, 0x80, 0x88, 0x0e, 0x01, 0x5c, 0xc0, 0x45, 0x99, 0x41, 0x63, 0x63, 0xb9, 0xd6, 0x44, 0x2e, 0x55, 0x77, 0xb7, 0xbf, 0x9f, 0xbe, 0x33, 0x7c, 0xbd, 0x7f, 0xe9, 0x3f, 0x9f, 0xc9, 0x1b, 0x46, 0x86, 0x2f, 0x0f, 0x18, 0x5e, 0xec, 0xe6, 0xf8, 0xff, 0xec, 0x39, 0xf3, 0x77, 0x29, 0xc5, 0x6f, 0x1c, 0x12, 0x7f, 0xb9, 0x99, 0xb6, 0xed, 0x67, 0x3b, 0xee, 0x7d, 0xf2, 0x05, 0xa8, 0x20, 0xfa, 0x00, 0xb3, 0x17, 0x20, 0x80, 0x28, 0x76, 0x80, 0xaf, 0x36, 0x43, 0x24, 0x13, 0x03, 0x93, 0xf7, 0x85, 0x07, 0xff, 0x6e, 0x3e, 0xfc, 0xca, 0x70, 0x53, 0x9e, 0x9d, 0x41, 0x74, 0x49, 0xb8, 0x50, 0xce, 0xf2, 0xd3, 0x9f, 0x1f, 0x2c, 0xbc, 0xfe, 0x7b, 0xfb, 0x57, 0x06, 0x86, 0x6b, 0xa0, 0x26, 0x22, 0xb0, 0x61, 0x28, 0xcf, 0xc3, 0xc2, 0x20, 0x04, 0x4c, 0x3a, 0xf3, 0x81, 0xfc, 0xc7, 0x30, 0x7b, 0x01, 0x02, 0x0c, 0x00, 0xe2, 0x40, 0xb0, 0x8e, 0x9c, 0xc5, 0x58, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; const unsigned char icon_tucnak23[319] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x1e, 0x08, 0x02, 0x00, 0x00, 0x00, 0x48, 0x47, 0x12, 0x3f, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xa0, 0xbd, 0xa7, 0x93, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xdb, 0x04, 0x17, 0x13, 0x04, 0x1d, 0x95, 0x69, 0x3b, 0x5e, 0x00, 0x00, 0x00, 0xbf, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xbd, 0x54, 0x41, 0x0e, 0xc3, 0x30, 0x08, 0x8b, 0xd1, 0xfe, 0xff, 0x65, 0x76, 0x88, 0x84, 0x10, 0x01, 0xe2, 0x64, 0xed, 0x38, 0xb5, 0x14, 0xa8, 0x31, 0x60, 0xa8, 0xea, 0x28, 0x0c, 0x80, 0x7f, 0x6d, 0x22, 0x85, 0x2c, 0x91, 0x7a, 0x36, 0x55, 0xaa, 0x84, 0xca, 0x5f, 0x62, 0x39, 0xb2, 0xb2, 0x8a, 0xaa, 0x4e, 0x22, 0xec, 0xe1, 0xa6, 0xca, 0x91, 0x7d, 0xb6, 0xec, 0x36, 0xa4, 0xfe, 0x0b, 0x4b, 0xe0, 0xc2, 0x43, 0x5b, 0x69, 0x12, 0xa6, 0xa3, 0x6d, 0x53, 0xdd, 0x8c, 0x2c, 0x3f, 0x8c, 0x29, 0x59, 0xc8, 0x15, 0x5e, 0x8a, 0x39, 0xe4, 0x87, 0x00, 0xe1, 0xd7, 0xbc, 0x09, 0xbb, 0x9f, 0x91, 0x2f, 0x24, 0x47, 0x40, 0xaa, 0x4e, 0x85, 0x0f, 0x6d, 0xe0, 0xc8, 0x29, 0x23, 0xe9, 0x3f, 0x1e, 0xbd, 0x69, 0x12, 0x48, 0xd5, 0xd4, 0x3b, 0xfa, 0xb2, 0xa5, 0x36, 0x45, 0x2d, 0x21, 0xbf, 0x6f, 0x6d, 0xfd, 0x3a, 0xb3, 0xc4, 0xaf, 0x3c, 0x53, 0xc8, 0x83, 0x9d, 0xb7, 0x36, 0xc6, 0x40, 0x25, 0x02, 0x69, 0x6b, 0xeb, 0x89, 0x4d, 0x4f, 0xb9, 0x75, 0xfc, 0xfa, 0x00, 0x90, 0xbb, 0xc3, 0xa1, 0xb4, 0xce, 0x8b, 0xcb, 0x4f, 0x8a, 0xc9, 0xa3, 0x53, 0x55, 0x18, 0xcf, 0x3c, 0x29, 0x16, 0x63, 0x4c, 0xa3, 0x52, 0xe9, 0x23, 0xb9, 0xfb, 0x02, 0x56, 0x31, 0x75, 0x52, 0xb0, 0xd7, 0xe3, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; const unsigned char icon_tucnak64[5343] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x08, 0x06, 0x00, 0x00, 0x00, 0xaa, 0x69, 0x71, 0xde, 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xaf, 0xc8, 0x37, 0x05, 0x8a, 0xe9, 0x00, 0x00, 0x14, 0x96, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xd5, 0x9b, 0x79, 0x74, 0x5d, 0xc5, 0x9d, 0xe7, 0x3f, 0x55, 0xf7, 0xde, 0xb7, 0x4a, 0x7a, 0x7a, 0x8b, 0x16, 0x6b, 0xf1, 0xbe, 0xca, 0x78, 0xc5, 0x0b, 0x26, 0x0b, 0x36, 0x36, 0x3b, 0x36, 0xc1, 0x3d, 0xa1, 0x03, 0x74, 0x12, 0x26, 0xe9, 0x0e, 0x27, 0xd3, 0x64, 0xc8, 0xc9, 0xe9, 0x84, 0x49, 0xf7, 0x74, 0xf7, 0x9c, 0x4e, 0x37, 0x90, 0xc9, 0x4c, 0x7a, 0xd2, 0x6c, 0x49, 0xe8, 0x49, 0x43, 0x87, 0x74, 0x26, 0x93, 0xa5, 0x09, 0x4c, 0x80, 0x10, 0x87, 0x00, 0xc6, 0xc6, 0x36, 0x98, 0x78, 0xc5, 0xfb, 0x2a, 0xaf, 0x92, 0x2c, 0xbd, 0x27, 0xe9, 0x2d, 0x77, 0xa9, 0xaa, 0xf9, 0xe3, 0x4a, 0x02, 0x27, 0xd8, 0xd8, 0x96, 0x0c, 0xe4, 0x77, 0xce, 0x3d, 0x7a, 0xe7, 0xea, 0xdc, 0x5f, 0xd5, 0xef, 0x5b, 0xbf, 0xbd, 0xaa, 0x2c, 0x3e, 0xb8, 0xe4, 0x64, 0xb3, 0xd9, 0x46, 0xdb, 0xb6, 0x23, 0x9e, 0xe7, 0x95, 0x2f, 0xd6, 0x20, 0xe2, 0x62, 0x31, 0xbe, 0x50, 0xaa, 0xab, 0xab, 0x9b, 0x10, 0x68, 0x7d, 0x87, 0x31, 0x5c, 0x6f, 0x20, 0x27, 0xc1, 0x17, 0x52, 0xec, 0x35, 0xf0, 0x78, 0x4f, 0x57, 0xd7, 0x8f, 0x81, 0x60, 0x24, 0xc7, 0xfb, 0x20, 0x01, 0x60, 0xa5, 0xb3, 0x75, 0x5f, 0x32, 0x46, 0x7f, 0xd5, 0xb6, 0xed, 0x74, 0xb2, 0xaa, 0x8a, 0x88, 0x13, 0xc1, 0xf5, 0x5c, 0xfa, 0x7a, 0x7b, 0x11, 0x80, 0x11, 0xfc, 0xd4, 0x2d, 0x95, 0xee, 0x2a, 0x95, 0x4a, 0x27, 0x46, 0x6a, 0xd0, 0x0f, 0x04, 0x00, 0xe9, 0x74, 0x3a, 0x85, 0xb4, 0xbe, 0x27, 0xa5, 0xb5, 0x32, 0x5b, 0x97, 0x63, 0xdc, 0xf8, 0x89, 0xd4, 0x37, 0x34, 0x90, 0x4c, 0x26, 0x01, 0x38, 0xd5, 0xd5, 0xc5, 0x6f, 0x37, 0xbe, 0xc6, 0xa9, 0xae, 0x2e, 0x10, 0xe2, 0x45, 0xb7, 0x54, 0xbc, 0xad, 0x54, 0x2a, 0x1d, 0x1f, 0x89, 0xb1, 0xad, 0x91, 0x60, 0x32, 0x1c, 0xca, 0x66, 0xb3, 0xd5, 0x5a, 0x88, 0x1f, 0x46, 0xa3, 0xb1, 0x15, 0xa3, 0x5a, 0x5a, 0x18, 0x3f, 0x71, 0x12, 0x99, 0x4c, 0x96, 0x48, 0x24, 0x82, 0xe3, 0x38, 0xc4, 0x62, 0x71, 0x46, 0x35, 0x35, 0x31, 0x6d, 0x5a, 0x1b, 0xa7, 0xba, 0xba, 0xe8, 0xe9, 0xee, 0x1e, 0x6b, 0xd9, 0x4e, 0x4d, 0xa5, 0x5c, 0xfe, 0x25, 0xa0, 0x86, 0x3b, 0xfe, 0xfb, 0x0e, 0x40, 0x2c, 0x91, 0x7c, 0xd4, 0x92, 0xd6, 0x7f, 0x48, 0xd5, 0xa6, 0x89, 0x3a, 0x0e, 0xfb, 0xf7, 0xee, 0x21, 0x93, 0xcb, 0x11, 0x8f, 0x27, 0xb0, 0x2c, 0x1b, 0x29, 0x25, 0x42, 0x08, 0x6a, 0x6a, 0x6a, 0x98, 0x36, 0x75, 0x2a, 0x7b, 0xf7, 0xee, 0xa1, 0xaf, 0xaf, 0x6f, 0x92, 0xc0, 0x5e, 0x1d, 0x04, 0xde, 0xa1, 0xe1, 0x8e, 0x2f, 0x47, 0x42, 0x88, 0x0b, 0xa5, 0x74, 0xb6, 0xfe, 0xce, 0x40, 0x05, 0x9f, 0x9a, 0x7e, 0xc9, 0x25, 0x3c, 0xf8, 0xad, 0x7f, 0xe4, 0xe9, 0x9f, 0xff, 0x3b, 0xf3, 0xe7, 0xcd, 0xe3, 0x68, 0x7b, 0x3b, 0xc6, 0x18, 0xb4, 0x56, 0x80, 0x01, 0xc0, 0xf7, 0x3c, 0x52, 0xb5, 0x69, 0x16, 0x2f, 0x59, 0x8a, 0x65, 0x59, 0x35, 0x4e, 0xd4, 0xba, 0x1a, 0x88, 0x0c, 0x77, 0x0e, 0xef, 0x9b, 0x06, 0x34, 0xa4, 0x1a, 0xc6, 0x96, 0x83, 0xca, 0x63, 0x0b, 0x16, 0x2c, 0xa8, 0xf9, 0xfe, 0xe3, 0x8f, 0x31, 0x77, 0xee, 0x5c, 0x6a, 0x6a, 0x6a, 0x28, 0xf4, 0x16, 0x58, 0xb7, 0x7e, 0x03, 0x4d, 0xcd, 0xcd, 0x80, 0xa0, 0x52, 0xa9, 0x50, 0x28, 0xe4, 0xf1, 0x5c, 0x8f, 0x44, 0x22, 0xc1, 0xa8, 0xc6, 0x46, 0xb6, 0x6c, 0xd9, 0x4c, 0xb1, 0x58, 0xec, 0xf5, 0x5c, 0xf7, 0x79, 0xa0, 0x38, 0x9c, 0x79, 0xd8, 0x23, 0x23, 0xce, 0xf9, 0x53, 0xd1, 0x94, 0xbf, 0xd8, 0xd2, 0xd2, 0xd2, 0xf2, 0xf0, 0x43, 0x0f, 0xd1, 0xd2, 0xd2, 0x32, 0xf4, 0xde, 0x68, 0x03, 0x42, 0x72, 0xa4, 0xbd, 0x9d, 0xa8, 0x63, 0x53, 0x9b, 0x4a, 0x61, 0xdb, 0x92, 0x63, 0x47, 0x0e, 0xb1, 0x66, 0xf5, 0xcb, 0x2c, 0x58, 0xb0, 0x80, 0x86, 0x86, 0x46, 0x8e, 0x1f, 0x3f, 0xde, 0x04, 0xd4, 0x02, 0x1d, 0xef, 0x97, 0x0c, 0x17, 0x4c, 0xd9, 0x6c, 0x76, 0x6a, 0xa2, 0xaa, 0x3a, 0xff, 0xd0, 0xc3, 0x8f, 0x98, 0x07, 0x1e, 0x78, 0xd0, 0x5c, 0xbf, 0xfc, 0x26, 0xd3, 0x57, 0xaa, 0x18, 0x63, 0x8c, 0xb9, 0xf3, 0xcf, 0xef, 0x32, 0x1f, 0xff, 0xe3, 0x4f, 0x98, 0xef, 0x3f, 0xf1, 0x84, 0xd9, 0xb6, 0x7d, 0xbb, 0xd1, 0x5a, 0x1b, 0x63, 0x8c, 0xf1, 0x3c, 0xcf, 0x3c, 0xfb, 0xdc, 0x73, 0x66, 0xe6, 0xec, 0x39, 0x66, 0xc6, 0xec, 0xb9, 0xa6, 0x3a, 0x95, 0x3e, 0x04, 0xcc, 0xe3, 0x03, 0x12, 0xc9, 0xce, 0x8b, 0x62, 0x55, 0x55, 0xdf, 0x9c, 0xb7, 0xf0, 0x32, 0xb3, 0xea, 0x85, 0x97, 0x4d, 0x26, 0x97, 0x33, 0x1f, 0x9a, 0x33, 0xd5, 0x14, 0x76, 0xbc, 0x6c, 0x4e, 0xac, 0xf9, 0x99, 0xf9, 0xd1, 0x77, 0x1f, 0x32, 0xeb, 0xd6, 0xbf, 0x6e, 0xae, 0xba, 0x7e, 0xb9, 0xb9, 0xfc, 0xa3, 0x8b, 0xcd, 0x89, 0x93, 0x27, 0xcd, 0xdb, 0xe9, 0x3f, 0xdd, 0x75, 0x97, 0x99, 0x34, 0x65, 0xaa, 0x49, 0x67, 0xb2, 0x5d, 0xb6, 0x6d, 0x7f, 0x94, 0x61, 0x9a, 0xf1, 0x7b, 0xee, 0x04, 0xd3, 0xe9, 0xf4, 0x68, 0x15, 0x88, 0x5b, 0xe6, 0xcd, 0x6a, 0xa3, 0x35, 0xd6, 0xce, 0xb7, 0xee, 0xbe, 0x8a, 0x9f, 0x3c, 0xf2, 0x77, 0xc4, 0x6b, 0x12, 0x24, 0x53, 0x45, 0x6e, 0x9e, 0x9a, 0xe7, 0xd4, 0xd3, 0xf7, 0x51, 0xb5, 0xff, 0x75, 0xea, 0xb5, 0x4f, 0xc4, 0x8a, 0x0d, 0x7d, 0xab, 0xb5, 0xc6, 0xf7, 0x03, 0x1a, 0x1a, 0x1a, 0x09, 0xb4, 0x92, 0xc6, 0x98, 0x38, 0xc3, 0xd4, 0x80, 0xf7, 0xdc, 0x07, 0x14, 0x3d, 0x6b, 0xe5, 0xd4, 0x31, 0xaa, 0xf9, 0xcf, 0xae, 0x2e, 0x31, 0xf9, 0x92, 0x99, 0x4c, 0x5e, 0x74, 0x2b, 0xa0, 0xa8, 0xf4, 0x6e, 0x46, 0x4a, 0x1f, 0xbf, 0xda, 0x65, 0xd9, 0x1f, 0xc3, 0xb2, 0x25, 0x31, 0xfa, 0x8e, 0x1e, 0x47, 0x3e, 0x7f, 0x37, 0xc5, 0x51, 0x37, 0x90, 0x9c, 0x75, 0x05, 0xab, 0xb7, 0xef, 0xa6, 0xbf, 0x58, 0x22, 0x93, 0xcb, 0xa1, 0x95, 0x96, 0x03, 0xf3, 0xff, 0x83, 0x02, 0x20, 0xee, 0x48, 0x6e, 0xff, 0xca, 0xa7, 0x6d, 0xe6, 0xde, 0x78, 0x37, 0x44, 0x2f, 0x41, 0x05, 0x7d, 0xf8, 0xfd, 0xdb, 0xd0, 0xc5, 0xad, 0xe0, 0x1d, 0x46, 0x54, 0x76, 0xa2, 0xfc, 0x0d, 0x50, 0xd3, 0x4e, 0xb2, 0x1a, 0x94, 0xbf, 0x9f, 0xe0, 0xf0, 0x8f, 0xe8, 0x7e, 0xee, 0x0a, 0x76, 0x77, 0xd7, 0x32, 0xb1, 0x6d, 0x1e, 0xaf, 0xaf, 0x7d, 0x79, 0x50, 0xea, 0x61, 0x6b, 0xf0, 0x7b, 0x0b, 0x80, 0x55, 0xff, 0xe1, 0x09, 0x2d, 0xc5, 0x4b, 0xaf, 0x59, 0xba, 0x00, 0xa2, 0x0b, 0x43, 0xe1, 0xfb, 0x36, 0xa3, 0x4b, 0xdb, 0xc0, 0x6d, 0x47, 0x54, 0x76, 0x80, 0xbb, 0x1e, 0xd4, 0x31, 0x50, 0x60, 0x14, 0xd0, 0x1d, 0x45, 0x1d, 0x1f, 0xc5, 0xc9, 0x7e, 0x10, 0x99, 0x7a, 0xa2, 0x11, 0x07, 0xcf, 0x75, 0x07, 0x39, 0x9a, 0xe1, 0x4e, 0xe9, 0x3d, 0x05, 0xc0, 0x8a, 0x70, 0x7b, 0xdb, 0x58, 0x57, 0xd4, 0x35, 0x4d, 0x47, 0x2b, 0x1f, 0xaf, 0x6f, 0x33, 0xa6, 0xb4, 0x1d, 0xfc, 0xc3, 0x08, 0x77, 0x2b, 0xa2, 0xbc, 0x1e, 0x53, 0xec, 0x44, 0xf5, 0xd4, 0xe0, 0x75, 0x65, 0xc8, 0x77, 0x8e, 0xe7, 0x94, 0x3b, 0x8e, 0x23, 0x91, 0xd1, 0x14, 0xe6, 0xb4, 0x72, 0xbc, 0xbb, 0x80, 0xf1, 0x5c, 0x3c, 0xdf, 0x87, 0x50, 0xf8, 0x3f, 0x1c, 0x00, 0x52, 0x0d, 0x0d, 0x63, 0xdd, 0x12, 0xd7, 0xa6, 0x6b, 0xc0, 0x54, 0x76, 0xe0, 0xf5, 0x3c, 0x8f, 0xe8, 0x5b, 0x07, 0xc5, 0xa3, 0xe8, 0xbe, 0xe3, 0x78, 0xf9, 0x6e, 0x8a, 0x85, 0x99, 0xf4, 0x97, 0x5b, 0xc8, 0xab, 0xb1, 0x74, 0xdb, 0xad, 0x14, 0x47, 0xd7, 0xd0, 0x2f, 0x24, 0xc9, 0x44, 0x9c, 0xab, 0x16, 0xcc, 0xe5, 0xf9, 0x55, 0xbf, 0x66, 0xef, 0xbe, 0x83, 0x78, 0x9e, 0x37, 0x68, 0xf9, 0x7f, 0x38, 0x00, 0x08, 0xad, 0x97, 0xdb, 0xd2, 0x34, 0xec, 0x3d, 0xd1, 0x8c, 0x5b, 0xa9, 0xa0, 0x3b, 0xfe, 0x37, 0xdd, 0x85, 0x04, 0x15, 0x77, 0x0c, 0xfd, 0xc1, 0x65, 0x94, 0xec, 0x26, 0xbc, 0x6c, 0x12, 0x4f, 0x46, 0x09, 0xb4, 0x42, 0x05, 0x1e, 0x09, 0x09, 0xe3, 0xeb, 0xeb, 0x98, 0x32, 0x79, 0x12, 0xc9, 0x64, 0x82, 0xba, 0x5c, 0x8e, 0x1d, 0xbb, 0xf6, 0xe0, 0x07, 0x3e, 0x23, 0x15, 0xc0, 0xde, 0x2b, 0x00, 0x22, 0x12, 0x3e, 0x6e, 0xb4, 0x47, 0xa6, 0xe9, 0x5a, 0x62, 0x6d, 0x8f, 0x52, 0xa9, 0x78, 0x74, 0xed, 0xeb, 0x40, 0x25, 0x34, 0x5a, 0x07, 0xd8, 0x3a, 0x40, 0xa8, 0x80, 0x88, 0x52, 0x08, 0x29, 0xa8, 0x4d, 0x8d, 0xa2, 0x69, 0x54, 0x03, 0xa9, 0x54, 0xcd, 0x10, 0x93, 0xba, 0x5c, 0x0e, 0xa5, 0x14, 0x2a, 0x50, 0x08, 0x61, 0x04, 0x23, 0x90, 0xca, 0xbf, 0x27, 0x00, 0xd4, 0xe6, 0x72, 0x0b, 0x31, 0x5c, 0x66, 0x8c, 0x61, 0xf1, 0x15, 0x1f, 0x06, 0x19, 0x23, 0x1a, 0x8f, 0x91, 0xcb, 0x94, 0x28, 0x57, 0x2a, 0x68, 0x6d, 0x63, 0x8c, 0xc1, 0xb1, 0x6d, 0xaa, 0xab, 0x92, 0xd4, 0xa4, 0xaa, 0x89, 0x45, 0xa3, 0xbf, 0xc7, 0x27, 0x95, 0xaa, 0x41, 0x08, 0x81, 0x56, 0x0a, 0x81, 0xb0, 0x2c, 0xcb, 0x8a, 0x28, 0x35, 0xbc, 0x8a, 0xf8, 0x3d, 0x01, 0x40, 0x68, 0x3e, 0x81, 0xc4, 0xc9, 0xe5, 0x72, 0x2c, 0x59, 0xbc, 0x38, 0x7c, 0x27, 0x20, 0x9b, 0xad, 0xa5, 0x54, 0xae, 0xe0, 0xd8, 0x36, 0xd1, 0x48, 0x84, 0x48, 0xc4, 0x41, 0x88, 0x33, 0x87, 0xf5, 0xaa, 0x64, 0x92, 0x48, 0x24, 0x12, 0xda, 0xbf, 0x10, 0xb6, 0x91, 0x32, 0xc9, 0x07, 0x3d, 0x0f, 0x88, 0x67, 0xb3, 0x4d, 0x52, 0x8a, 0xe5, 0x95, 0x8a, 0xcb, 0xb2, 0xa5, 0x4b, 0x99, 0x32, 0x65, 0xca, 0x5b, 0xff, 0x8b, 0xc5, 0x88, 0xc7, 0x62, 0x67, 0xf9, 0xfa, 0x74, 0x4a, 0x24, 0xe2, 0x44, 0x22, 0x11, 0xa4, 0xb4, 0x00, 0x22, 0xb6, 0x10, 0x35, 0xfe, 0x30, 0x01, 0xb8, 0xe8, 0xa9, 0x70, 0x4c, 0x88, 0x1b, 0x40, 0xb4, 0x02, 0xac, 0x58, 0xb1, 0x7c, 0x58, 0xbc, 0x1c, 0xdb, 0x41, 0x0a, 0x81, 0x65, 0xdb, 0x08, 0x21, 0xa4, 0x94, 0x32, 0xc7, 0x07, 0xbc, 0x16, 0xb0, 0x41, 0xdc, 0x12, 0x04, 0x8a, 0xd1, 0xad, 0xad, 0x2c, 0xbd, 0xf2, 0xca, 0x61, 0x31, 0x93, 0x56, 0xb8, 0xd8, 0xf1, 0x78, 0x3c, 0xb4, 0x02, 0xcb, 0x69, 0x05, 0x7e, 0xdf, 0x59, 0x9c, 0x0f, 0xcf, 0x61, 0xcd, 0xe8, 0x5d, 0xa8, 0x26, 0x9b, 0x9d, 0x2d, 0x10, 0x1f, 0x72, 0x5d, 0x97, 0x3f, 0x5a, 0xb9, 0x92, 0xc6, 0xc6, 0xc6, 0x61, 0xf1, 0xf3, 0xfd, 0x80, 0x40, 0x29, 0x52, 0xa9, 0x5a, 0x0c, 0x60, 0xdb, 0xd6, 0x34, 0xa0, 0x6a, 0x38, 0x3c, 0x2f, 0x2a, 0x00, 0xb6, 0x10, 0xff, 0xd1, 0x18, 0x13, 0x6f, 0xa8, 0xaf, 0xe7, 0xf6, 0xdb, 0x6f, 0x1b, 0x36, 0x3f, 0xd7, 0xf5, 0xf0, 0x7d, 0x8f, 0x4c, 0x36, 0x8b, 0xe3, 0x44, 0x00, 0xc6, 0xdb, 0xb1, 0xd8, 0x98, 0xe1, 0xf0, 0xbc, 0x68, 0x00, 0x64, 0x32, 0x99, 0x69, 0x08, 0x71, 0xab, 0xeb, 0x56, 0xb8, 0xfe, 0xfa, 0xeb, 0x98, 0x3a, 0x75, 0xea, 0xb0, 0x79, 0x16, 0x7a, 0x7b, 0x29, 0x16, 0x8b, 0xa4, 0x33, 0x59, 0x6a, 0x6b, 0x6b, 0x01, 0x1a, 0xa2, 0x8e, 0xb3, 0x90, 0x61, 0x38, 0xf3, 0x8b, 0x06, 0x80, 0x11, 0xd6, 0x5f, 0x18, 0x6d, 0xd2, 0x99, 0x74, 0x86, 0x3b, 0x3f, 0xf7, 0xb9, 0x11, 0xe1, 0x79, 0xaa, 0xbb, 0x9b, 0x52, 0xa9, 0x4c, 0x2c, 0x16, 0x63, 0xec, 0xf8, 0x09, 0x00, 0x38, 0xb6, 0x73, 0x03, 0x90, 0xb9, 0x50, 0x9e, 0x17, 0x05, 0x80, 0x74, 0x3a, 0x77, 0x9d, 0x94, 0xe2, 0xd3, 0xe5, 0x72, 0x99, 0x4f, 0x7d, 0xf2, 0x93, 0xcc, 0x9a, 0x35, 0x73, 0x44, 0xf8, 0x1e, 0x3c, 0x74, 0x18, 0xad, 0x15, 0x41, 0x10, 0x30, 0x7e, 0xc2, 0x44, 0x62, 0xb1, 0x38, 0x42, 0x88, 0xcb, 0x22, 0x89, 0xc4, 0xbc, 0x0b, 0xe5, 0x39, 0xe2, 0x00, 0x24, 0xea, 0xea, 0x1a, 0xa5, 0x25, 0xfe, 0x47, 0x10, 0x04, 0xd6, 0x84, 0x09, 0x13, 0xf8, 0xfc, 0xe7, 0xef, 0x1c, 0x11, 0xbe, 0x81, 0x0a, 0xd8, 0xb5, 0x7b, 0x0f, 0x42, 0x08, 0x82, 0x20, 0x20, 0x9d, 0xc9, 0x30, 0x7e, 0xe2, 0x44, 0xb4, 0x31, 0xf1, 0x58, 0x34, 0xfe, 0x19, 0x2e, 0xd0, 0x19, 0x8e, 0x38, 0x00, 0x51, 0xf8, 0x07, 0x84, 0x68, 0xd3, 0x5a, 0x73, 0xcf, 0x97, 0xbf, 0x7c, 0x5a, 0xc7, 0x77, 0x38, 0x74, 0xf0, 0xe0, 0x61, 0x0e, 0x1c, 0x38, 0x80, 0x10, 0x72, 0x60, 0xcf, 0x40, 0x33, 0x6b, 0xf6, 0x1c, 0xe2, 0xf1, 0x38, 0x52, 0x70, 0x43, 0x22, 0x91, 0x58, 0x7c, 0x21, 0x7c, 0x47, 0x14, 0x80, 0x4c, 0x2e, 0xf7, 0x59, 0x89, 0xf8, 0x4c, 0xb9, 0x5c, 0xe6, 0xba, 0x6b, 0xaf, 0xe5, 0xf6, 0xdb, 0x86, 0xef, 0xf9, 0x07, 0xe9, 0xc5, 0x97, 0x57, 0xd3, 0x5f, 0x2a, 0x61, 0x8c, 0x46, 0x6b, 0x85, 0xef, 0xfb, 0xe4, 0xea, 0xea, 0x99, 0x39, 0x6b, 0x0e, 0x60, 0x62, 0x91, 0x68, 0xfc, 0x0b, 0x40, 0xfa, 0x7c, 0xf9, 0x8e, 0x14, 0x00, 0x56, 0x36, 0x5b, 0x77, 0x0f, 0x88, 0x07, 0x95, 0x52, 0x34, 0x36, 0x34, 0xf0, 0x37, 0x7f, 0xf3, 0xd7, 0x48, 0x4b, 0xa2, 0xb5, 0xc6, 0x98, 0xe1, 0x95, 0xed, 0xed, 0x47, 0x8e, 0xf2, 0xe2, 0xcb, 0xab, 0xb1, 0xe4, 0x00, 0x3f, 0x6d, 0x30, 0xc6, 0xe0, 0xfb, 0x3e, 0xf3, 0x17, 0x2c, 0xa4, 0xa1, 0xa1, 0x11, 0x04, 0x57, 0xd7, 0xa4, 0xd3, 0x9f, 0x38, 0x5f, 0xde, 0xc3, 0x06, 0x20, 0x95, 0x4a, 0x8d, 0xcb, 0x64, 0xeb, 0x9e, 0xd4, 0x98, 0xfb, 0x81, 0x58, 0x10, 0x04, 0x7c, 0xf1, 0xee, 0xbb, 0x99, 0xde, 0xd6, 0x46, 0xa0, 0x14, 0xc6, 0x30, 0xa4, 0xb2, 0x17, 0x4a, 0x3f, 0xf8, 0xd1, 0xff, 0xa5, 0xa3, 0xb3, 0x73, 0xc0, 0xe9, 0xbd, 0x05, 0x6a, 0x10, 0x04, 0xc4, 0x13, 0x89, 0x70, 0xbb, 0x4c, 0x5a, 0x48, 0x21, 0xff, 0x22, 0x12, 0x89, 0x9c, 0x57, 0xbc, 0x1d, 0x56, 0x1e, 0x9d, 0xce, 0x35, 0xdc, 0x22, 0x2d, 0xf9, 0x43, 0xcf, 0xf7, 0xe6, 0xd7, 0xd5, 0xd5, 0x11, 0x8b, 0xc5, 0x99, 0x3d, 0x7b, 0x36, 0x5f, 0xbf, 0xff, 0x3e, 0xa4, 0x65, 0x61, 0x8c, 0xc1, 0x08, 0x83, 0x18, 0xaa, 0x57, 0x42, 0x4d, 0x38, 0x5b, 0xc5, 0xf7, 0xbb, 0xf4, 0xcb, 0x5f, 0xad, 0xe2, 0x5f, 0xfe, 0xf5, 0x09, 0xb2, 0xd9, 0x2c, 0x99, 0x74, 0x3a, 0x14, 0x1e, 0xb0, 0x2c, 0x0b, 0xcb, 0xb2, 0x90, 0x42, 0xd0, 0xda, 0xd2, 0x4a, 0x6f, 0x6f, 0x81, 0xa3, 0x47, 0x8f, 0xa4, 0x23, 0xd1, 0x68, 0xb4, 0x52, 0x2e, 0x3f, 0x07, 0x9c, 0x13, 0xe2, 0x17, 0xa4, 0x01, 0xe9, 0x74, 0x3a, 0x95, 0xa9, 0xaf, 0x7f, 0xd8, 0x68, 0xf5, 0x23, 0xdf, 0xf7, 0x5b, 0x6f, 0xbc, 0xf1, 0x46, 0xbe, 0x7e, 0xff, 0x7d, 0xc4, 0xe3, 0x51, 0xee, 0xf9, 0xca, 0x97, 0x49, 0x24, 0x12, 0xa8, 0x20, 0x00, 0x63, 0x40, 0x1b, 0x34, 0x1a, 0x83, 0x19, 0xd2, 0x86, 0x73, 0x35, 0x89, 0x7d, 0xfb, 0x0f, 0xf0, 0x8f, 0x0f, 0x3c, 0x44, 0x22, 0x9e, 0xa0, 0xb5, 0xa5, 0x95, 0x48, 0x24, 0x8a, 0x52, 0x6a, 0x48, 0x03, 0xb4, 0xd6, 0x28, 0xad, 0x09, 0x94, 0x62, 0xd9, 0x55, 0xd7, 0x90, 0xcb, 0xd5, 0x01, 0x7c, 0xb2, 0xba, 0xba, 0xfa, 0x9a, 0x73, 0x95, 0xe5, 0xbc, 0x01, 0xc8, 0x64, 0x32, 0xd3, 0x84, 0x65, 0x3f, 0xab, 0xfc, 0xe0, 0xf3, 0x89, 0x78, 0x8c, 0x7f, 0xf8, 0xda, 0xd7, 0xf8, 0xe1, 0x0f, 0x9e, 0x60, 0xf5, 0xea, 0xd5, 0x2c, 0x58, 0xb0, 0x90, 0x2b, 0x3e, 0xf2, 0x51, 0x2a, 0x15, 0xf7, 0x74, 0x61, 0x07, 0x6c, 0xf6, 0xed, 0x20, 0xbc, 0x9b, 0x49, 0xf4, 0xf5, 0xf7, 0xf3, 0xb7, 0x5f, 0xfb, 0x7b, 0xfa, 0xfb, 0xfb, 0x99, 0x39, 0x73, 0x26, 0x55, 0x55, 0x61, 0x94, 0xf3, 0x3c, 0x77, 0x00, 0x80, 0x01, 0x10, 0x94, 0xc2, 0xf3, 0xc2, 0xf4, 0xf8, 0xea, 0xab, 0xaf, 0x01, 0x44, 0xcc, 0x8a, 0x44, 0xff, 0x12, 0xa8, 0x1f, 0x71, 0x00, 0x52, 0xd9, 0xec, 0x95, 0x58, 0xf6, 0x2a, 0xdf, 0xf3, 0x17, 0xb5, 0xb6, 0xb6, 0xf2, 0xf8, 0x63, 0x8f, 0xf1, 0x85, 0x2f, 0xdc, 0xc5, 0xae, 0x5d, 0xbb, 0xf8, 0xcd, 0x6f, 0x5e, 0xe4, 0x8b, 0x77, 0xdf, 0x8d, 0x1e, 0x10, 0x3a, 0x14, 0xf2, 0x2d, 0x81, 0x19, 0x7c, 0x87, 0x1e, 0x78, 0xc7, 0x00, 0x08, 0xef, 0xac, 0x0d, 0x5f, 0xbb, 0xf7, 0x5e, 0xb6, 0x6c, 0xdd, 0xc6, 0xb2, 0x2b, 0xaf, 0xa4, 0xa1, 0xae, 0x0e, 0xdb, 0xb2, 0xe8, 0xee, 0xee, 0xc6, 0xf3, 0xfc, 0x70, 0xe5, 0x95, 0x1e, 0xd2, 0x00, 0x3f, 0x08, 0x28, 0x97, 0x4a, 0x2c, 0x58, 0xb0, 0x90, 0x4b, 0x66, 0xcc, 0x40, 0xa9, 0x60, 0x51, 0x4d, 0x6d, 0xed, 0x67, 0x39, 0x87, 0x5e, 0xc1, 0x39, 0x03, 0x90, 0xce, 0xe5, 0x6e, 0xb0, 0xa5, 0xf5, 0x13, 0xcf, 0x75, 0x9b, 0xa6, 0xb5, 0x4d, 0xe3, 0x89, 0x7f, 0xfd, 0x3e, 0x4b, 0x96, 0x2c, 0x41, 0x29, 0xcd, 0x93, 0x4f, 0x3e, 0xc5, 0x9c, 0xb9, 0x73, 0x99, 0x36, 0x6d, 0x1a, 0xae, 0xe7, 0x0d, 0x01, 0xf0, 0x4e, 0x20, 0xa0, 0x0d, 0xda, 0xbc, 0x65, 0x12, 0x5a, 0xff, 0xbe, 0x49, 0x3c, 0xf8, 0xf0, 0x23, 0xfc, 0xf4, 0x67, 0x4f, 0x72, 0xf3, 0x8a, 0x9b, 0x18, 0xdd, 0x3a, 0x9a, 0x78, 0x2c, 0x46, 0x3e, 0xdf, 0x13, 0x1e, 0x91, 0x81, 0x81, 0x50, 0xa8, 0x87, 0xc6, 0x18, 0x34, 0x03, 0x69, 0x59, 0xdc, 0x74, 0xd3, 0xc7, 0xa8, 0x4a, 0x24, 0x91, 0xc2, 0xfa, 0xf3, 0x44, 0x22, 0x31, 0x6b, 0x44, 0x00, 0xc8, 0x66, 0xb3, 0x4b, 0xa4, 0x90, 0xff, 0xe6, 0x79, 0x5e, 0x7a, 0x7a, 0xdb, 0x74, 0xbe, 0xf3, 0xed, 0xef, 0x30, 0x7e, 0xc2, 0x04, 0xba, 0x7b, 0xf2, 0x74, 0xf7, 0xe4, 0xf9, 0xf5, 0x6f, 0x5e, 0xe0, 0xaa, 0x65, 0xcb, 0xc2, 0x7e, 0x9d, 0xd6, 0xa7, 0x69, 0x01, 0x98, 0xd3, 0x26, 0xcb, 0xdb, 0xb4, 0xe1, 0x9d, 0xfc, 0xc2, 0xcb, 0xab, 0x5f, 0xe1, 0xfe, 0xaf, 0x7f, 0x9d, 0x65, 0x57, 0x2e, 0x65, 0xde, 0xa5, 0x73, 0x49, 0x26, 0x12, 0xf4, 0xf4, 0xf4, 0xb0, 0x6d, 0xfb, 0xf6, 0x10, 0xb8, 0x21, 0xe1, 0xdf, 0xfa, 0xad, 0x95, 0x42, 0x29, 0x45, 0xa5, 0x52, 0x61, 0xdc, 0xd8, 0xf1, 0x2c, 0x5a, 0x74, 0x39, 0xda, 0xe8, 0xe6, 0x48, 0x24, 0x76, 0x27, 0xe0, 0x0c, 0x0b, 0x80, 0x54, 0x2a, 0x35, 0xd6, 0x08, 0xeb, 0x51, 0xdf, 0xf7, 0x6b, 0x5a, 0x5a, 0x5a, 0xf8, 0xc6, 0x37, 0xbe, 0x41, 0x73, 0x73, 0x33, 0xf9, 0x7c, 0x1e, 0xd7, 0x75, 0xe9, 0xe8, 0xe8, 0xa0, 0xab, 0xb3, 0x8b, 0xb1, 0x63, 0xc7, 0x12, 0x04, 0xc1, 0xc0, 0x0a, 0x99, 0x10, 0x84, 0x81, 0xdf, 0x10, 0xae, 0xb4, 0xd6, 0x06, 0xfd, 0x7b, 0x26, 0x31, 0x28, 0xbc, 0xc0, 0x75, 0x5d, 0xee, 0xbd, 0xf7, 0x5e, 0x6a, 0x53, 0xb5, 0xdc, 0x70, 0xdd, 0xf5, 0x38, 0x8e, 0x43, 0xb9, 0x52, 0x66, 0xf5, 0xda, 0x35, 0x54, 0x5c, 0x17, 0x03, 0x6f, 0x73, 0x80, 0x66, 0x48, 0x7b, 0x42, 0x93, 0x50, 0x04, 0x2a, 0xac, 0x13, 0xae, 0xbe, 0xe6, 0x5a, 0xaa, 0xab, 0xab, 0x41, 0x8a, 0x5b, 0x62, 0xb1, 0xd8, 0xfc, 0x61, 0x01, 0x60, 0x45, 0x22, 0xff, 0x1d, 0xcc, 0x84, 0x58, 0x2c, 0xc6, 0x5f, 0x7e, 0xf5, 0xaf, 0x98, 0x30, 0x61, 0x22, 0x85, 0x42, 0x2f, 0x15, 0xd7, 0xc3, 0xf3, 0x03, 0xf2, 0x85, 0x5e, 0x02, 0xa5, 0xb0, 0x6d, 0x67, 0x60, 0x42, 0xfa, 0x6d, 0xea, 0x7f, 0xba, 0x36, 0xbc, 0xf5, 0x70, 0x9a, 0x36, 0x68, 0x63, 0x10, 0x02, 0x5e, 0x5d, 0xb7, 0x9e, 0x57, 0xd7, 0xad, 0x63, 0xf1, 0xe2, 0xc5, 0xb4, 0xb6, 0xb6, 0xe0, 0xd8, 0x0e, 0xcf, 0xfe, 0xf2, 0x97, 0x74, 0x74, 0x76, 0x20, 0x07, 0x92, 0xa0, 0xc1, 0x47, 0x0d, 0x08, 0xeb, 0xfb, 0x7e, 0xd8, 0x2a, 0x57, 0x0a, 0xad, 0x14, 0xae, 0xe7, 0xd1, 0xd2, 0xd2, 0xc2, 0xcc, 0x99, 0xb3, 0x08, 0x82, 0x20, 0x13, 0x8d, 0xc5, 0x3e, 0xc5, 0x59, 0xba, 0x46, 0x67, 0x05, 0x20, 0x5b, 0x5f, 0xff, 0x31, 0x81, 0xf8, 0xb8, 0xe7, 0x79, 0xac, 0x5c, 0xf9, 0x47, 0x2c, 0xba, 0xfc, 0x72, 0x7a, 0xfb, 0xfa, 0x30, 0x06, 0x54, 0x10, 0x50, 0xc8, 0xe7, 0xe9, 0xeb, 0xeb, 0xa3, 0x5c, 0x2e, 0x91, 0xcf, 0xe7, 0x07, 0x4c, 0xe0, 0x74, 0x95, 0xfe, 0x5d, 0x6d, 0x08, 0x55, 0x5f, 0x60, 0x8c, 0x08, 0x01, 0x0b, 0x3f, 0x00, 0x60, 0xdb, 0xb6, 0x6d, 0x94, 0xca, 0x65, 0xa6, 0x4f, 0x9f, 0x4e, 0x75, 0x75, 0x35, 0xeb, 0x36, 0xac, 0x67, 0xcb, 0xd6, 0x2d, 0x58, 0xd2, 0x1a, 0x0a, 0x7f, 0xbe, 0xef, 0x13, 0x04, 0x01, 0xc9, 0x44, 0x82, 0xd1, 0xad, 0x2d, 0xb4, 0x4d, 0x9d, 0x42, 0x32, 0x99, 0x24, 0x18, 0x00, 0x61, 0x50, 0x0b, 0x2f, 0xbb, 0x6c, 0x11, 0xb6, 0x6d, 0x21, 0x2d, 0xeb, 0x1a, 0xc7, 0x71, 0x26, 0x9f, 0x49, 0xc6, 0xb3, 0x35, 0x12, 0x2c, 0xa3, 0xb9, 0xd3, 0x18, 0x4d, 0x36, 0x9b, 0xe3, 0xe6, 0x9b, 0x57, 0xd2, 0xd3, 0xd3, 0x43, 0x7b, 0x7b, 0x3b, 0x5b, 0xb6, 0x6c, 0x66, 0xfb, 0xf6, 0xed, 0x1c, 0x3f, 0x7e, 0x8c, 0x42, 0xa1, 0xc0, 0xc9, 0x93, 0x27, 0xd9, 0xbc, 0x79, 0x33, 0x57, 0x5c, 0x71, 0xc5, 0x40, 0xf2, 0xe3, 0x20, 0x2d, 0x07, 0xa3, 0x3d, 0x84, 0x79, 0x5b, 0xb8, 0x13, 0x12, 0xa4, 0x85, 0x29, 0xe5, 0x11, 0x4e, 0x0c, 0x19, 0x49, 0x60, 0xcc, 0x5b, 0x07, 0xa1, 0x4a, 0xa5, 0x12, 0x18, 0x43, 0x2c, 0x1a, 0xa5, 0x5c, 0x2e, 0xf3, 0xcc, 0xb3, 0xbf, 0x08, 0xf9, 0x69, 0x4d, 0xe0, 0xfb, 0xf8, 0x96, 0xc5, 0xa4, 0x09, 0x13, 0x98, 0x3f, 0xf7, 0x52, 0x5a, 0x5b, 0x9a, 0x31, 0x06, 0x52, 0xb5, 0x35, 0x9c, 0x38, 0x79, 0x92, 0x75, 0x1b, 0x5e, 0x1f, 0xd2, 0x04, 0xd7, 0x75, 0x99, 0x3c, 0x69, 0x32, 0xa9, 0x54, 0x2d, 0x85, 0x42, 0x61, 0x8c, 0x13, 0x8d, 0x2e, 0xf4, 0x7d, 0x7f, 0x3b, 0xef, 0x90, 0x1c, 0x9d, 0x11, 0x80, 0x54, 0x5d, 0xdd, 0x0c, 0x61, 0xcc, 0xe5, 0x08, 0x81, 0x52, 0x01, 0xdf, 0xfe, 0xf6, 0x23, 0x74, 0x74, 0x74, 0xb0, 0x7f, 0xff, 0x3e, 0x4a, 0xa5, 0x12, 0x4a, 0x29, 0xa4, 0x94, 0x48, 0x19, 0x2a, 0xd1, 0x33, 0xcf, 0x3e, 0xc3, 0x1d, 0x9f, 0xfe, 0x34, 0xd1, 0x58, 0x12, 0xdd, 0xf9, 0x06, 0xfa, 0xd8, 0x3a, 0xc4, 0xc4, 0x15, 0x50, 0xdd, 0x0c, 0x03, 0x20, 0x18, 0x29, 0x51, 0x1b, 0x7e, 0x8c, 0xbf, 0xee, 0x27, 0x50, 0x55, 0x4f, 0x62, 0xc5, 0x57, 0xb0, 0xea, 0xc6, 0x0c, 0x6c, 0x03, 0x43, 0x2e, 0x97, 0x45, 0x29, 0xc5, 0xa9, 0x53, 0xa7, 0xd8, 0xb8, 0xf1, 0x75, 0x0e, 0x1f, 0x3e, 0x4c, 0x4d, 0x4d, 0x2d, 0xe5, 0x4a, 0x85, 0xd1, 0xf5, 0xf5, 0xdc, 0xb4, 0xfc, 0x46, 0x66, 0x4e, 0x9f, 0x81, 0x94, 0x12, 0xd7, 0x75, 0x11, 0x42, 0x30, 0x6d, 0xea, 0x64, 0xaa, 0xab, 0xab, 0x58, 0xf3, 0xea, 0x7a, 0x02, 0x15, 0x10, 0x04, 0x01, 0x9e, 0xe7, 0x13, 0x8b, 0xc5, 0xa8, 0xad, 0x4d, 0x53, 0x28, 0x14, 0x84, 0x65, 0x59, 0xb3, 0x81, 0x04, 0xd0, 0x7f, 0xce, 0x00, 0x08, 0xcd, 0xe5, 0xc2, 0x92, 0x35, 0x02, 0x28, 0x97, 0xcb, 0xac, 0x5a, 0xf5, 0x2b, 0x84, 0x40, 0x49, 0x69, 0x55, 0x84, 0x10, 0x65, 0xdb, 0xb6, 0xb5, 0x94, 0x32, 0x2b, 0x84, 0xb0, 0x2c, 0xcb, 0x62, 0xd3, 0xa6, 0x4d, 0x3c, 0xf5, 0x8b, 0x67, 0xf8, 0x93, 0x15, 0x1f, 0xa6, 0xfc, 0xda, 0xdf, 0x63, 0xba, 0x8f, 0x61, 0x8a, 0x3d, 0xc8, 0x0f, 0xff, 0xd7, 0x50, 0x40, 0x3b, 0x8a, 0xde, 0xf6, 0x1c, 0xfe, 0xab, 0x0f, 0x20, 0x64, 0x40, 0xb0, 0x6f, 0x1f, 0xfe, 0x9b, 0xaf, 0x20, 0x97, 0x8c, 0xc3, 0xf8, 0x3e, 0xc6, 0xc0, 0xcc, 0x19, 0x33, 0xa9, 0xad, 0xad, 0x65, 0xcd, 0xda, 0x35, 0x64, 0x32, 0x59, 0x54, 0xa0, 0x70, 0x3d, 0x97, 0x25, 0x8b, 0x97, 0xf0, 0x27, 0xb7, 0xdd, 0x46, 0x36, 0x93, 0x19, 0xd8, 0x49, 0xd2, 0xd8, 0x8e, 0xc3, 0x84, 0x71, 0x63, 0xa8, 0xae, 0xaa, 0x22, 0x99, 0x4c, 0x60, 0x59, 0x16, 0x41, 0xa0, 0x86, 0x9c, 0xa1, 0x36, 0x1a, 0xcb, 0x0a, 0x33, 0x7d, 0x81, 0x6c, 0x25, 0xec, 0x17, 0x9c, 0x3b, 0x00, 0x18, 0x93, 0x56, 0x2a, 0xe8, 0xd7, 0x5a, 0xe7, 0x75, 0xa0, 0x8f, 0x2b, 0x15, 0x1c, 0x09, 0x02, 0xff, 0x48, 0x10, 0x04, 0x47, 0xb5, 0xd6, 0x3d, 0x40, 0x25, 0x99, 0xac, 0x5a, 0x12, 0x4b, 0x24, 0xee, 0x18, 0xfc, 0xe4, 0x7f, 0xfe, 0xaf, 0x07, 0x98, 0x97, 0xda, 0xcd, 0x44, 0x7d, 0x92, 0x20, 0x1d, 0xa0, 0x8f, 0xae, 0xc5, 0x74, 0xef, 0xc7, 0xd4, 0x4d, 0x83, 0x93, 0x6f, 0xa2, 0xdf, 0xf8, 0x16, 0x4e, 0x6b, 0x19, 0xec, 0x28, 0xc6, 0x77, 0xa0, 0x2a, 0x87, 0x31, 0x06, 0x01, 0x78, 0x9e, 0x47, 0x5b, 0x5b, 0x1b, 0xf3, 0xe7, 0xcf, 0x67, 0xcd, 0x9a, 0x35, 0xd4, 0xd6, 0xa6, 0x71, 0x1c, 0x9b, 0xcf, 0xdc, 0x71, 0x07, 0x2b, 0x6f, 0x5e, 0x09, 0x06, 0xfc, 0xc0, 0xc7, 0xb1, 0x1d, 0x02, 0x15, 0xd0, 0xd4, 0xd4, 0x48, 0x43, 0x43, 0x1d, 0x00, 0x11, 0x27, 0x82, 0xb4, 0xec, 0xd0, 0x0f, 0xe8, 0xd0, 0x57, 0x54, 0xca, 0xe5, 0xf0, 0x8c, 0xb1, 0x10, 0x18, 0x4c, 0x84, 0x33, 0x38, 0xc2, 0x33, 0x02, 0xe0, 0x96, 0x8b, 0x8f, 0x79, 0x9e, 0xb7, 0x53, 0x29, 0x55, 0x0d, 0x14, 0x80, 0x53, 0x40, 0x2f, 0xd0, 0x07, 0x94, 0x00, 0xbf, 0x58, 0xec, 0x7f, 0xdd, 0x8e, 0x46, 0x26, 0x38, 0xb6, 0xf3, 0x11, 0xdb, 0xb6, 0x39, 0x78, 0x60, 0x3f, 0xdb, 0xd7, 0x3e, 0xcd, 0x8c, 0xeb, 0xba, 0x28, 0x47, 0x4f, 0x10, 0xec, 0xf7, 0x51, 0xbb, 0x9e, 0x45, 0x58, 0x49, 0xcc, 0xab, 0xdf, 0xc4, 0xaa, 0x39, 0x0e, 0x76, 0x12, 0xe3, 0x6a, 0x8c, 0x95, 0x45, 0xb6, 0x4e, 0xc3, 0xa8, 0xd0, 0x69, 0x69, 0x21, 0x88, 0x27, 0xe2, 0xdc, 0x7e, 0xdb, 0x6d, 0xbc, 0xf4, 0xd2, 0x4b, 0xc4, 0x63, 0x71, 0xee, 0xbb, 0xff, 0x5e, 0x6e, 0x5a, 0x71, 0x13, 0x47, 0x8f, 0x9d, 0x40, 0x29, 0x35, 0xb4, 0xa2, 0xe9, 0x74, 0x8a, 0xe6, 0x51, 0xa3, 0x86, 0xe6, 0x1a, 0x3a, 0x46, 0x1f, 0x29, 0x05, 0x4a, 0x85, 0xe6, 0x76, 0xf4, 0xd8, 0x31, 0xf2, 0x85, 0x3c, 0x52, 0x4a, 0x8c, 0x36, 0x85, 0x33, 0xc9, 0x79, 0x46, 0x00, 0xca, 0xe5, 0x72, 0x27, 0xf0, 0x22, 0x61, 0xc5, 0xe8, 0x0e, 0x3c, 0x3e, 0xa7, 0x9f, 0xcf, 0xed, 0xee, 0x2f, 0x16, 0xff, 0x36, 0x55, 0x55, 0xfd, 0xb8, 0x90, 0x56, 0x6b, 0xd4, 0xb1, 0x48, 0x25, 0xc0, 0x38, 0x45, 0x8c, 0x8e, 0x21, 0x33, 0x1e, 0xc1, 0xae, 0xa7, 0x30, 0x7b, 0x7e, 0x85, 0x9d, 0x3a, 0x06, 0xd1, 0x18, 0x28, 0x81, 0xee, 0x56, 0x88, 0xd4, 0x14, 0x44, 0xae, 0x05, 0x23, 0x24, 0xc6, 0x2d, 0x63, 0x7a, 0x3a, 0xa9, 0xd4, 0xd4, 0x72, 0xe3, 0xf2, 0xe5, 0x7c, 0xec, 0x99, 0x67, 0xb8, 0xf5, 0xd6, 0x5b, 0xb9, 0x69, 0xc5, 0x72, 0x5c, 0xd7, 0x25, 0x16, 0x8d, 0xe2, 0x79, 0x1e, 0x4a, 0x6b, 0x92, 0x89, 0x04, 0xcd, 0x4d, 0x0d, 0x08, 0x11, 0x46, 0x15, 0x21, 0x04, 0xa5, 0x52, 0x89, 0x4a, 0x25, 0xdc, 0x63, 0x54, 0x03, 0x25, 0xf8, 0xd6, 0xad, 0x5b, 0xa9, 0x54, 0xca, 0x61, 0x01, 0xa5, 0xbd, 0x76, 0xc0, 0x3b, 0x2f, 0x00, 0x06, 0x3e, 0x38, 0x75, 0x96, 0xff, 0x03, 0x68, 0xe5, 0xba, 0xaf, 0x96, 0x84, 0xf8, 0x6a, 0x2c, 0x91, 0xfc, 0xa6, 0x94, 0x76, 0xbd, 0x65, 0x81, 0x31, 0x36, 0xa8, 0x08, 0x22, 0x02, 0x56, 0x3a, 0x8f, 0x30, 0x05, 0x44, 0x5c, 0x62, 0x7c, 0x0b, 0xa3, 0x04, 0xaa, 0x20, 0x21, 0x07, 0xaa, 0xeb, 0x28, 0x7a, 0xcf, 0x1b, 0xf8, 0x1b, 0x9f, 0x43, 0x1f, 0xd9, 0x8b, 0x48, 0x35, 0x53, 0xf5, 0xd9, 0xff, 0xc6, 0x77, 0x1f, 0xfd, 0x67, 0xe2, 0xd1, 0x08, 0x95, 0x8a, 0x8b, 0x94, 0x92, 0x9a, 0xea, 0x2a, 0xf2, 0x85, 0x02, 0x09, 0x27, 0x4e, 0x36, 0x97, 0x46, 0x48, 0x89, 0xd6, 0x61, 0xee, 0x20, 0x84, 0xe0, 0xe0, 0xe1, 0xc3, 0x04, 0x41, 0x30, 0x94, 0x24, 0xe5, 0xf3, 0x3d, 0xbc, 0xbe, 0xf1, 0x35, 0x2c, 0xcb, 0x46, 0x6b, 0x9d, 0x0f, 0xbc, 0x60, 0x27, 0x50, 0x39, 0x5f, 0x00, 0xce, 0x95, 0x2a, 0x95, 0x4a, 0xe5, 0x69, 0x40, 0xca, 0x48, 0xe2, 0xef, 0x7c, 0x9f, 0xb1, 0xf8, 0x55, 0x80, 0x0f, 0xca, 0xc2, 0x4a, 0x79, 0x98, 0xc0, 0xc1, 0x78, 0x51, 0xd0, 0x02, 0x94, 0x40, 0xc6, 0xa3, 0x04, 0x47, 0x36, 0xe1, 0x7e, 0xef, 0xcf, 0x10, 0xa6, 0x1f, 0x19, 0xd5, 0x88, 0x9c, 0x8d, 0xb7, 0x6f, 0x17, 0x7e, 0xfb, 0x1e, 0x62, 0x4d, 0xe3, 0xf1, 0xbd, 0xca, 0xd0, 0x56, 0x78, 0x2c, 0x16, 0xa5, 0xc6, 0x54, 0x93, 0x88, 0xc7, 0x87, 0xba, 0x42, 0x61, 0x4f, 0x41, 0xa0, 0x94, 0x62, 0xeb, 0xf6, 0x1d, 0x20, 0x04, 0x6a, 0xe0, 0xfd, 0x86, 0x0d, 0xeb, 0x39, 0x76, 0xf4, 0x28, 0x8e, 0xe3, 0xe0, 0x56, 0x2a, 0x5b, 0x7d, 0xdf, 0xdf, 0x0d, 0xbc, 0xe3, 0xad, 0x93, 0x91, 0x6a, 0x89, 0xf5, 0x55, 0x2a, 0x95, 0xa7, 0x4a, 0xbd, 0xdd, 0xff, 0xb9, 0xec, 0xea, 0x3d, 0xd2, 0xab, 0x02, 0x6d, 0x61, 0x94, 0x0d, 0xca, 0xc2, 0x04, 0x36, 0x18, 0x81, 0x51, 0x02, 0xb4, 0x44, 0xa6, 0xc1, 0x69, 0xd6, 0xd8, 0xd9, 0x12, 0x32, 0x63, 0x81, 0xe5, 0x10, 0x1c, 0x0b, 0xb0, 0xc7, 0x4c, 0xc7, 0x9a, 0x34, 0x07, 0xe5, 0xbb, 0x6f, 0x25, 0x4e, 0x03, 0x7f, 0x93, 0x89, 0x04, 0x52, 0x86, 0xb5, 0xc6, 0x60, 0x1a, 0x6d, 0x49, 0xc9, 0x1b, 0x9b, 0x36, 0xb3, 0x67, 0xef, 0x5e, 0xa4, 0x10, 0x48, 0x29, 0x39, 0x7c, 0xf8, 0x10, 0x2f, 0xbd, 0xf8, 0x02, 0x96, 0x65, 0xa1, 0x94, 0xaa, 0xb8, 0x95, 0xf2, 0xaf, 0x80, 0xa3, 0x84, 0x26, 0x7c, 0xd1, 0x00, 0x30, 0x84, 0x8e, 0x72, 0x55, 0x63, 0xb5, 0xb5, 0x2a, 0x28, 0xc7, 0x31, 0x3a, 0x02, 0xda, 0xc6, 0x68, 0x0b, 0xb4, 0x15, 0xae, 0xbe, 0x16, 0xa0, 0x07, 0xd2, 0x02, 0x01, 0xc6, 0x08, 0x4c, 0x05, 0xfc, 0x83, 0x01, 0x24, 0x9a, 0x89, 0xde, 0xf6, 0x25, 0xa8, 0xae, 0xc5, 0x0c, 0x36, 0x3d, 0x00, 0x3d, 0x54, 0x4b, 0xe8, 0xd3, 0x2a, 0x4b, 0xc7, 0xb6, 0xe9, 0xe8, 0xec, 0xe4, 0xc7, 0x3f, 0x7b, 0x92, 0x20, 0x08, 0x90, 0x96, 0x45, 0x6f, 0xa1, 0xc0, 0xaa, 0xe7, 0x9f, 0xa3, 0xbf, 0xbf, 0x1f, 0x29, 0x25, 0x5e, 0xa5, 0xf2, 0x6b, 0xcf, 0xf3, 0x5e, 0x05, 0x3a, 0x39, 0x43, 0xdd, 0x3d, 0xd2, 0xe7, 0x03, 0xca, 0x11, 0x5b, 0x6c, 0xac, 0x94, 0x1c, 0xa4, 0x13, 0x45, 0x1b, 0x19, 0xae, 0xbe, 0x96, 0x98, 0x40, 0x86, 0x7f, 0x55, 0x08, 0x02, 0x1a, 0x4c, 0x3f, 0x88, 0x13, 0x06, 0xa7, 0xb1, 0x0d, 0xeb, 0x96, 0x2f, 0x21, 0x9a, 0x27, 0x61, 0x7c, 0x0f, 0x84, 0x18, 0xaa, 0x2c, 0x85, 0x10, 0x0c, 0xe0, 0x35, 0x44, 0xd1, 0x48, 0x94, 0x93, 0x1d, 0x9d, 0x3c, 0xf8, 0xc8, 0x77, 0x38, 0x78, 0xe8, 0x30, 0xd9, 0x6c, 0x96, 0x42, 0xbe, 0x87, 0xb5, 0xab, 0x5f, 0xa2, 0xe3, 0xe4, 0xc9, 0x50, 0xf5, 0xdd, 0xca, 0xe6, 0x62, 0xb1, 0xff, 0xa7, 0xc0, 0x6e, 0xde, 0x21, 0xfe, 0x5f, 0x2c, 0x00, 0xd8, 0x7d, 0xb2, 0xb2, 0x69, 0x5c, 0x36, 0xde, 0x5b, 0x15, 0x8d, 0xd6, 0xe0, 0xa8, 0xd0, 0x14, 0x34, 0xa0, 0x05, 0x46, 0x8b, 0x70, 0x1d, 0x7c, 0x90, 0x79, 0x81, 0xd7, 0xa9, 0xd8, 0xec, 0xe5, 0x68, 0x5c, 0xfa, 0x19, 0x26, 0x8e, 0x99, 0x82, 0x85, 0x41, 0x0b, 0x07, 0x06, 0x2a, 0xc4, 0xc1, 0xde, 0xe1, 0x60, 0xc6, 0xe9, 0xd8, 0x36, 0x15, 0xd7, 0x65, 0xf5, 0xda, 0xb5, 0x3c, 0xfe, 0xc4, 0xbf, 0xd1, 0xd1, 0xd5, 0x45, 0x4d, 0x55, 0x35, 0xfb, 0xf7, 0xed, 0x65, 0xc7, 0xb6, 0xad, 0xf4, 0xf7, 0xf7, 0x62, 0xdb, 0x36, 0x9e, 0xe7, 0x6e, 0x2a, 0x16, 0x0a, 0xdf, 0x03, 0x5e, 0x03, 0x4e, 0x70, 0x96, 0xd3, 0x64, 0x17, 0xe3, 0xa4, 0x75, 0x72, 0xef, 0xb7, 0x16, 0xfc, 0xbf, 0xa6, 0x8c, 0xbd, 0xd8, 0x8d, 0xb8, 0x21, 0x00, 0x7e, 0x68, 0xfb, 0xc6, 0x97, 0x88, 0x7e, 0x81, 0xd5, 0x2b, 0xd8, 0x75, 0xcc, 0xe3, 0xa1, 0xdf, 0x9e, 0xe2, 0xa9, 0xfd, 0xbd, 0xe4, 0xea, 0xea, 0x98, 0x3d, 0x63, 0x06, 0x97, 0xce, 0xbb, 0x94, 0x79, 0x97, 0xce, 0xa3, 0xb1, 0xb1, 0x91, 0x78, 0x3c, 0x4e, 0x22, 0x91, 0xc0, 0x18, 0x8d, 0xe7, 0x79, 0xf4, 0xe4, 0xf3, 0xbc, 0xb9, 0x73, 0x17, 0x2f, 0xae, 0x7e, 0x85, 0xad, 0x3b, 0x76, 0x21, 0x11, 0x18, 0xe5, 0xd3, 0xdd, 0x71, 0x82, 0xce, 0xce, 0x8e, 0xc1, 0x82, 0x4a, 0xbb, 0xae, 0xfb, 0x4a, 0xb1, 0xaf, 0xf7, 0x87, 0xc0, 0xab, 0x84, 0xab, 0x7f, 0xd6, 0x2b, 0x77, 0x17, 0xe5, 0xa8, 0xf9, 0xd3, 0xf7, 0x4c, 0xff, 0xfc, 0x47, 0x26, 0xa6, 0x1f, 0x36, 0x96, 0xc2, 0x38, 0x1a, 0xe1, 0x4b, 0xa4, 0x6b, 0x21, 0xfb, 0x25, 0x27, 0x3a, 0xfd, 0xf2, 0x4b, 0x7b, 0x7a, 0x7e, 0x7b, 0xef, 0xda, 0x0e, 0x7d, 0xac, 0xc2, 0xd4, 0x84, 0x63, 0xe5, 0x06, 0x7b, 0xfc, 0x42, 0x08, 0x22, 0x91, 0x08, 0xd9, 0x6c, 0x96, 0xaa, 0xaa, 0xaa, 0xb0, 0xa6, 0x07, 0xca, 0x15, 0x9f, 0xce, 0x7c, 0x1e, 0xbf, 0xe2, 0x32, 0x36, 0x1d, 0x61, 0x72, 0x26, 0x42, 0xc2, 0x04, 0x6c, 0x3e, 0xd2, 0xc3, 0xa6, 0x8e, 0x12, 0x42, 0x08, 0x23, 0x8c, 0x3e, 0x5c, 0x2e, 0x96, 0x9e, 0xf3, 0xbc, 0xca, 0x4b, 0xc0, 0x26, 0xe0, 0x00, 0x67, 0x08, 0x7d, 0x17, 0x1d, 0x80, 0xd6, 0x6c, 0xbc, 0xe9, 0x67, 0x77, 0x4f, 0x7b, 0x7c, 0x7a, 0x63, 0xd5, 0x32, 0xa3, 0x0c, 0x7d, 0x7d, 0x8a, 0xe3, 0x9d, 0x7e, 0xd7, 0xba, 0xfd, 0xbd, 0x6f, 0x7e, 0x6f, 0xfd, 0xb1, 0x57, 0x5e, 0x3b, 0xd2, 0xb7, 0x05, 0xe8, 0x96, 0x52, 0x36, 0x38, 0x4e, 0xb4, 0xcd, 0x8e, 0xd8, 0xd3, 0x6c, 0xdb, 0x9e, 0x22, 0xa5, 0x35, 0x0a, 0x41, 0x35, 0x06, 0x4b, 0x69, 0x8d, 0xe7, 0x87, 0xbb, 0x40, 0x8d, 0x55, 0x16, 0x0b, 0xc7, 0xd7, 0x72, 0xe3, 0xfc, 0x56, 0x16, 0xcd, 0x6a, 0x64, 0x54, 0x63, 0x04, 0x51, 0xec, 0xa4, 0xb0, 0xbb, 0xc0, 0xcf, 0x37, 0x94, 0xbd, 0xef, 0xbe, 0x71, 0xfc, 0xf9, 0x4d, 0x47, 0x3b, 0x9f, 0x04, 0x76, 0x0d, 0x08, 0xde, 0x41, 0x98, 0xb4, 0xbd, 0x2b, 0x5d, 0xac, 0xcb, 0x06, 0xd6, 0x25, 0xad, 0xf1, 0x39, 0x9f, 0x5a, 0xd4, 0xf8, 0x59, 0xd7, 0x35, 0xb9, 0x1d, 0x47, 0x4a, 0x1d, 0xcf, 0xef, 0xec, 0xde, 0xd3, 0x55, 0x0c, 0x0e, 0x00, 0x87, 0x09, 0xc3, 0x52, 0x3f, 0x61, 0x7e, 0x5e, 0x43, 0xb8, 0xbd, 0xdd, 0x20, 0xa5, 0x1c, 0xa3, 0xa5, 0xdd, 0x48, 0xa0, 0xb2, 0xd9, 0x6a, 0x6b, 0xca, 0xfc, 0x89, 0x99, 0x19, 0xd7, 0x5f, 0xd6, 0x56, 0xb7, 0xf8, 0xf2, 0xd9, 0xf6, 0xc4, 0x19, 0xa3, 0x89, 0xa4, 0x35, 0x81, 0x28, 0xa0, 0x2b, 0x7b, 0xc0, 0xdd, 0x0a, 0x7d, 0x47, 0x10, 0x07, 0xe3, 0x74, 0xec, 0xc8, 0xf5, 0xbc, 0xb9, 0xd3, 0xfa, 0x3f, 0x6f, 0xec, 0x97, 0xff, 0xf4, 0x57, 0x1b, 0x37, 0xee, 0x3c, 0x9f, 0x89, 0x5e, 0xcc, 0xdb, 0x16, 0x31, 0x60, 0x14, 0x90, 0x23, 0xbc, 0xed, 0x59, 0x00, 0xba, 0x09, 0x05, 0xff, 0xdd, 0xdb, 0x9f, 0x36, 0x61, 0xca, 0x6d, 0xff, 0xe9, 0x5c, 0x66, 0xdc, 0x7a, 0xf3, 0x15, 0x9f, 0x9c, 0x34, 0xfb, 0xca, 0x6b, 0xea, 0xdb, 0x2e, 0x1f, 0x13, 0x6d, 0x18, 0x65, 0xfb, 0xa6, 0x8b, 0xa0, 0xef, 0x4d, 0x8c, 0xdb, 0x8e, 0x28, 0xef, 0x03, 0x6f, 0x1b, 0xa8, 0x43, 0xa0, 0x8a, 0x20, 0x41, 0xfa, 0x12, 0x4e, 0x66, 0xe9, 0xde, 0x52, 0x7f, 0xbc, 0xff, 0x40, 0xfa, 0xb1, 0x7d, 0xf9, 0xf2, 0x03, 0xd7, 0xfd, 0xfb, 0xc6, 0x73, 0xba, 0x57, 0x78, 0xb1, 0xaf, 0x9b, 0xc8, 0x81, 0xc7, 0xf0, 0x2e, 0x77, 0xfc, 0xf2, 0x8f, 0xb6, 0x64, 0x48, 0xcf, 0xfb, 0x42, 0x64, 0xdc, 0x75, 0x7f, 0x1a, 0x9f, 0xb4, 0xb4, 0x05, 0x19, 0xc5, 0xed, 0xde, 0x8b, 0x77, 0x6c, 0x03, 0xc1, 0xb1, 0x1d, 0x38, 0xa3, 0x13, 0x58, 0x55, 0x9d, 0xe1, 0xca, 0xfb, 0xed, 0xf8, 0x87, 0xa3, 0x04, 0x47, 0xea, 0x90, 0x51, 0x1f, 0x2b, 0x9b, 0x47, 0x64, 0xfa, 0x88, 0x24, 0x7d, 0xd4, 0xb6, 0x31, 0x74, 0xac, 0x19, 0x7d, 0xb0, 0xc7, 0x55, 0x7f, 0x3d, 0xe7, 0x07, 0x6b, 0x7f, 0xc0, 0xbb, 0x9c, 0x27, 0xfe, 0x40, 0xdc, 0xb7, 0xe9, 0xfc, 0xfe, 0xfc, 0xa5, 0x96, 0x32, 0x0f, 0xa7, 0x27, 0x7c, 0x68, 0x32, 0xf1, 0x16, 0xdc, 0x8e, 0xfd, 0xa8, 0xee, 0x23, 0xf8, 0x85, 0x53, 0x18, 0x57, 0x61, 0x02, 0x0b, 0x67, 0x7e, 0x15, 0x76, 0xfd, 0x41, 0x74, 0x4f, 0x07, 0x6a, 0x77, 0x0e, 0x75, 0x60, 0x14, 0xfd, 0x45, 0x63, 0x2a, 0xae, 0xf6, 0xe3, 0xd2, 0x8a, 0x24, 0x92, 0x0a, 0xab, 0xba, 0x88, 0x01, 0xc4, 0xf1, 0x0c, 0xfd, 0x9e, 0x66, 0xe3, 0xc9, 0x53, 0x37, 0xaf, 0xf8, 0xf9, 0xb6, 0x27, 0xcf, 0x36, 0xf6, 0xfb, 0x76, 0x6b, 0x6c, 0x90, 0x0e, 0x3d, 0x36, 0x6b, 0xba, 0x81, 0x7f, 0x29, 0x07, 0xb2, 0xfe, 0xc4, 0xc6, 0xd5, 0x1d, 0x5d, 0xa7, 0x4a, 0xbd, 0xc7, 0xba, 0xbc, 0xce, 0xf6, 0x53, 0xaa, 0x73, 0x4f, 0x87, 0xdb, 0x61, 0x21, 0xcd, 0xe7, 0x16, 0x35, 0x5d, 0x3d, 0x6e, 0x67, 0xdf, 0x18, 0x7f, 0x6f, 0x1c, 0x0a, 0x93, 0x38, 0x7e, 0xd4, 0xca, 0xbf, 0xb0, 0xe7, 0xc4, 0x1b, 0x2f, 0xec, 0xeb, 0x79, 0xb3, 0xd7, 0x55, 0x85, 0xc6, 0xb8, 0x1d, 0x6b, 0x88, 0xc5, 0x33, 0xcd, 0x89, 0x44, 0xae, 0x3e, 0x1e, 0xc9, 0x34, 0x54, 0xf7, 0x66, 0x1d, 0x49, 0xe4, 0xc5, 0x23, 0xbd, 0xad, 0x84, 0x9d, 0xa0, 0xd2, 0x99, 0xc6, 0x7f, 0xdf, 0x01, 0x78, 0xea, 0xb5, 0xce, 0x13, 0xed, 0x27, 0xf9, 0xca, 0x86, 0x37, 0x8b, 0x63, 0xb6, 0x1f, 0x2d, 0xea, 0xce, 0x42, 0xd0, 0x4d, 0xd8, 0x73, 0x18, 0x7c, 0x2a, 0x32, 0x60, 0xe7, 0x3d, 0x57, 0x8d, 0xb9, 0x2f, 0x2e, 0x52, 0x91, 0x55, 0x3b, 0x7b, 0x36, 0xfe, 0x97, 0x5f, 0xec, 0x7e, 0xe6, 0x50, 0xc1, 0xdd, 0x01, 0xb4, 0x13, 0xfa, 0x16, 0x03, 0xc4, 0x09, 0x85, 0x4d, 0x12, 0x76, 0x7f, 0x1c, 0x42, 0x87, 0x7b, 0xd6, 0x0d, 0xe0, 0xff, 0x0f, 0x58, 0xc5, 0x9f, 0x88, 0x1d, 0xe5, 0x3b, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; const unsigned char icon_tucnakv[1772] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x08, 0x06, 0x00, 0x00, 0x00, 0x73, 0x7a, 0x7a, 0xf4, 0x00, 0x00, 0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x43, 0xbb, 0x7f, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xd9, 0x0a, 0x08, 0x07, 0x0e, 0x2e, 0x31, 0xfb, 0xe1, 0xcd, 0x00, 0x00, 0x06, 0x79, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0xed, 0x97, 0x5b, 0x6c, 0x54, 0xc7, 0x19, 0xc7, 0xff, 0x73, 0xae, 0xde, 0x5d, 0xef, 0x7a, 0x6f, 0x5e, 0xdf, 0xc0, 0x76, 0xc0, 0x50, 0x30, 0xc6, 0x06, 0xdf, 0x28, 0xc5, 0xde, 0xa0, 0xc8, 0x80, 0x23, 0x62, 0x68, 0xa2, 0x34, 0x2d, 0x04, 0x42, 0x95, 0xb4, 0x55, 0x45, 0xd5, 0x26, 0xa1, 0xc5, 0x28, 0x4d, 0x9b, 0xb6, 0x6a, 0xd3, 0x36, 0x97, 0x2a, 0x2d, 0x69, 0xab, 0x56, 0x3c, 0x54, 0x16, 0x65, 0xc3, 0x25, 0x8a, 0x92, 0xc6, 0x8a, 0x08, 0xa6, 0x52, 0x0a, 0x32, 0x97, 0x18, 0x8c, 0x63, 0xa9, 0xc4, 0x76, 0x7c, 0x01, 0xbc, 0xf6, 0xd6, 0xac, 0xbd, 0x5e, 0xdb, 0xbb, 0x7b, 0xf6, 0x5c, 0x66, 0xa6, 0x2f, 0xcd, 0x53, 0xb8, 0xac, 0x89, 0xf3, 0xd6, 0x79, 0x1b, 0xe9, 0x3b, 0xff, 0xef, 0x37, 0xff, 0xf9, 0xbe, 0x99, 0x39, 0xc0, 0xff, 0xc7, 0x02, 0x8f, 0xd9, 0xa7, 0x9e, 0xb4, 0xc7, 0x0a, 0xf2, 0xed, 0xe9, 0x50, 0x48, 0xc8, 0x24, 0x9e, 0x2c, 0x44, 0xd2, 0xb9, 0xd6, 0xfd, 0x84, 0x5f, 0xbb, 0xb6, 0x43, 0x7a, 0xe0, 0x81, 0xa7, 0xa5, 0xe5, 0xcb, 0xd7, 0x72, 0x5d, 0x87, 0xf9, 0x61, 0xd7, 0x35, 0xb3, 0xfd, 0xdd, 0x5f, 0x7a, 0xba, 0x2e, 0x1d, 0xfe, 0x42, 0x01, 0xfe, 0x73, 0xee, 0xc3, 0x6c, 0xc7, 0x89, 0xd0, 0x9f, 0xe5, 0x86, 0xc6, 0xdd, 0x5c, 0xd3, 0xa0, 0xbf, 0x7f, 0x12, 0xe6, 0xc8, 0x08, 0x28, 0xe7, 0x48, 0xc4, 0x62, 0x5c, 0x78, 0xee, 0x85, 0x33, 0xb4, 0xb9, 0xe5, 0xd5, 0x65, 0x01, 0x67, 0xfb, 0xad, 0xbe, 0x97, 0xee, 0x35, 0xb1, 0xdb, 0xeb, 0x17, 0x76, 0x3d, 0xf9, 0xed, 0x16, 0xa3, 0xf7, 0xca, 0x61, 0xc7, 0xe2, 0x62, 0xa7, 0xde, 0xfb, 0x11, 0x12, 0x6d, 0x6d, 0x30, 0xd2, 0x1a, 0x8c, 0xe5, 0x5f, 0xc2, 0xb4, 0xdd, 0x31, 0x38, 0x5e, 0x77, 0xff, 0x11, 0x75, 0x71, 0xf9, 0x0b, 0xf6, 0xe9, 0x54, 0x37, 0x80, 0x5b, 0x02, 0x08, 0xf7, 0x92, 0xdc, 0xe3, 0xf3, 0xc9, 0x8a, 0x2a, 0xef, 0xcb, 0x2b, 0x5b, 0x7d, 0x82, 0x96, 0xaf, 0x76, 0x46, 0x06, 0x07, 0x31, 0x75, 0xec, 0x28, 0xe2, 0x33, 0x33, 0x48, 0x56, 0xad, 0xc1, 0x6c, 0x20, 0xef, 0x13, 0x53, 0x96, 0xd7, 0x3d, 0xf2, 0xfb, 0xdf, 0xfc, 0x5c, 0x73, 0x79, 0x2b, 0x22, 0x71, 0xed, 0xb9, 0xdb, 0x69, 0xcd, 0xdb, 0x01, 0xbf, 0x3b, 0x40, 0x04, 0x45, 0x7c, 0xaa, 0xb1, 0xa1, 0xf1, 0x57, 0x8e, 0xc0, 0x22, 0x39, 0x5c, 0x58, 0x06, 0xb9, 0xe5, 0x31, 0xc4, 0x2f, 0x76, 0xc1, 0x55, 0xee, 0x87, 0xab, 0xba, 0x16, 0x53, 0x76, 0xdf, 0x85, 0xe6, 0x9f, 0xfe, 0x30, 0x06, 0x00, 0x8f, 0xd6, 0x14, 0x5f, 0xbd, 0x93, 0xde, 0xbc, 0x1d, 0x30, 0xb9, 0xb9, 0xe4, 0xc1, 0xe6, 0x07, 0x9f, 0x7f, 0xfd, 0xe0, 0x1f, 0x54, 0x21, 0x1e, 0xc6, 0x78, 0x2c, 0x85, 0xbe, 0x9c, 0x12, 0xcc, 0xfe, 0xf5, 0x4d, 0x4c, 0xfc, 0xe8, 0x45, 0x84, 0x2b, 0xd6, 0x41, 0x6b, 0x6a, 0xf1, 0x67, 0xaa, 0x37, 0x2f, 0x00, 0xb7, 0xc7, 0x23, 0x04, 0xf2, 0x03, 0xdf, 0x2a, 0x5b, 0xe4, 0x2d, 0x1a, 0xb8, 0xf8, 0x3e, 0xca, 0xb3, 0x62, 0xe8, 0x3f, 0x15, 0x82, 0x42, 0x38, 0xe6, 0x34, 0x13, 0xce, 0x15, 0x2b, 0x61, 0xaf, 0x5b, 0x0f, 0xa8, 0xb6, 0xb7, 0x33, 0xd5, 0x9c, 0xd7, 0x16, 0x58, 0x94, 0x04, 0x1e, 0xdb, 0x92, 0xf7, 0xf5, 0xa7, 0xbf, 0xff, 0x4d, 0x22, 0x61, 0x1c, 0x74, 0xe2, 0x08, 0x56, 0xda, 0xff, 0x09, 0xf7, 0x5c, 0x18, 0xef, 0x5c, 0x5f, 0x83, 0x37, 0x3e, 0xbe, 0x1e, 0x2b, 0xaf, 0x0b, 0xee, 0x6f, 0x58, 0x57, 0xd3, 0xf6, 0x85, 0x00, 0xf8, 0xdc, 0xbc, 0xf9, 0xa1, 0x2d, 0xab, 0x4a, 0x15, 0x21, 0x0c, 0x6b, 0xe2, 0x38, 0xac, 0xe8, 0x39, 0x30, 0xbd, 0x00, 0x57, 0x23, 0x16, 0x62, 0x33, 0x53, 0xb8, 0xd0, 0xd1, 0x9e, 0x6c, 0x3b, 0xf8, 0xd2, 0x49, 0xcb, 0xb2, 0xe8, 0x82, 0x03, 0xe4, 0xf8, 0x7c, 0x8a, 0xc5, 0x94, 0xc7, 0x45, 0xc9, 0x46, 0x6e, 0x86, 0x07, 0x11, 0x9f, 0x09, 0x62, 0xce, 0xda, 0x06, 0x52, 0x14, 0x40, 0x71, 0xe3, 0x7d, 0x08, 0x74, 0x9e, 0x87, 0x61, 0x1a, 0xf3, 0xee, 0x28, 0x29, 0xf3, 0x62, 0x21, 0x15, 0x3e, 0x5f, 0xde, 0x97, 0x4b, 0xd6, 0x1c, 0x80, 0x20, 0xca, 0x90, 0xf3, 0x2d, 0x94, 0xda, 0x6d, 0xb0, 0xdb, 0x6d, 0x10, 0x45, 0x11, 0x5e, 0x8f, 0x1b, 0x9c, 0x31, 0x49, 0x10, 0x45, 0x19, 0x96, 0xb5, 0xf0, 0x00, 0x84, 0x90, 0x1d, 0xc1, 0x60, 0xd0, 0x91, 0x9b, 0x9b, 0x0b, 0x42, 0x3e, 0x7b, 0x80, 0x66, 0x67, 0x3b, 0x20, 0x88, 0x62, 0x96, 0x24, 0x4a, 0x2e, 0x03, 0x3a, 0x16, 0xb4, 0x0b, 0x3c, 0x7e, 0x7f, 0x40, 0x55, 0xb3, 0xb6, 0xef, 0xdc, 0xf1, 0x0d, 0x72, 0xab, 0xe4, 0x00, 0x40, 0x19, 0x43, 0x76, 0xb6, 0xd3, 0x21, 0xca, 0xf2, 0xd2, 0xf9, 0x6c, 0xc1, 0x5d, 0x01, 0x3c, 0x1e, 0x3f, 0x01, 0xc7, 0x8e, 0x60, 0x63, 0xc3, 0xd2, 0xea, 0xea, 0xea, 0xdb, 0xc6, 0x4d, 0x4e, 0x4e, 0xa1, 0x68, 0xd1, 0x62, 0x45, 0x14, 0xc4, 0xcd, 0xa2, 0x2c, 0x8b, 0x0b, 0xe7, 0x80, 0x44, 0xca, 0x5d, 0x4e, 0x57, 0xeb, 0xb3, 0xcf, 0x3c, 0x23, 0xa8, 0xaa, 0x7a, 0xeb, 0xd5, 0x53, 0x8a, 0xc1, 0xe1, 0x61, 0x14, 0x2d, 0x2e, 0x86, 0xc7, 0xeb, 0xdd, 0x6e, 0xb3, 0xd9, 0xef, 0x5b, 0x10, 0x00, 0xaf, 0x2f, 0xb7, 0x58, 0x00, 0xf9, 0xe3, 0x9e, 0x3d, 0xbb, 0x0b, 0x6b, 0x6b, 0x6b, 0x6e, 0x1b, 0x37, 0x72, 0xed, 0x06, 0xfa, 0xfb, 0x07, 0xa0, 0xc8, 0x32, 0xd6, 0xd6, 0xd4, 0x14, 0xa8, 0xaa, 0xfa, 0x03, 0x87, 0xd3, 0x29, 0xdd, 0x33, 0x80, 0x37, 0x37, 0x57, 0x74, 0xfb, 0x72, 0xb7, 0xfa, 0xfc, 0xbe, 0x93, 0x55, 0x55, 0x55, 0xf7, 0xef, 0xdd, 0xbb, 0x17, 0x1c, 0x00, 0x63, 0xfc, 0x33, 0xb1, 0x5a, 0x3a, 0x8d, 0x23, 0xc7, 0x8e, 0xc1, 0x62, 0x0c, 0x16, 0xa5, 0x58, 0xb1, 0x72, 0x15, 0x59, 0xba, 0xb4, 0xec, 0x09, 0x49, 0x92, 0x36, 0xdc, 0x53, 0x17, 0xb8, 0x7d, 0x7e, 0x1b, 0x40, 0x5a, 0x1b, 0x36, 0xac, 0xdf, 0xff, 0xd5, 0x6d, 0xdb, 0x1c, 0xf9, 0x05, 0x05, 0x70, 0xe7, 0xb8, 0xc1, 0x18, 0x03, 0x17, 0x00, 0xce, 0x08, 0x04, 0x42, 0x40, 0x08, 0x01, 0xe7, 0x1c, 0x47, 0x8f, 0x9f, 0x40, 0x34, 0x3a, 0x05, 0x55, 0x51, 0x61, 0x59, 0x26, 0x18, 0xe7, 0x68, 0xda, 0xb4, 0x25, 0x27, 0x12, 0x19, 0xff, 0x05, 0xb5, 0xac, 0x6d, 0x89, 0xb9, 0xb9, 0xd9, 0x8c, 0x1d, 0xf0, 0xfa, 0xfc, 0x59, 0xa2, 0x20, 0xbc, 0xb4, 0x79, 0xd3, 0xa6, 0x9f, 0xbc, 0x7e, 0xf0, 0xa0, 0x23, 0xad, 0xeb, 0xa8, 0xaf, 0xaf, 0x07, 0xa5, 0x14, 0xd4, 0x62, 0xe0, 0x94, 0x82, 0x51, 0x0a, 0xc6, 0x38, 0x38, 0xe7, 0x38, 0xd5, 0x71, 0x1a, 0x57, 0x3f, 0xee, 0x43, 0x61, 0x41, 0x3e, 0xa2, 0xd1, 0x28, 0x4c, 0xd3, 0x84, 0x65, 0x99, 0xc8, 0x0d, 0x04, 0xd0, 0xd8, 0xd0, 0xb8, 0x41, 0x94, 0xe4, 0x9d, 0x8a, 0xa2, 0x90, 0x8c, 0x00, 0x7c, 0x81, 0x00, 0x01, 0x21, 0x4f, 0x54, 0x54, 0x54, 0x7c, 0xb7, 0xb5, 0xf5, 0x80, 0xa4, 0x1b, 0x26, 0x66, 0x67, 0xe7, 0x20, 0xcb, 0x32, 0x28, 0x63, 0x60, 0x8c, 0x81, 0x52, 0x06, 0xc6, 0x38, 0x18, 0xa3, 0x48, 0xa5, 0x52, 0x38, 0x7a, 0xec, 0x38, 0x6a, 0xab, 0x6b, 0x70, 0xfe, 0xe2, 0x45, 0xa4, 0xb4, 0x14, 0x28, 0x65, 0x20, 0x20, 0x30, 0x0c, 0x03, 0x1b, 0x1a, 0x82, 0x92, 0xdb, 0xed, 0xfe, 0x9e, 0xa2, 0xaa, 0xfe, 0x8c, 0x00, 0x18, 0xe3, 0x6e, 0x81, 0x08, 0xfb, 0x56, 0xad, 0xaa, 0x90, 0x43, 0xa1, 0x10, 0xdf, 0xb7, 0xef, 0x59, 0x74, 0x9c, 0xee, 0x40, 0x32, 0x91, 0x00, 0x9d, 0x1d, 0x03, 0x65, 0x16, 0xa8, 0xa9, 0xc3, 0x18, 0x38, 0x07, 0x2b, 0x39, 0x8b, 0x64, 0x2a, 0x85, 0xb4, 0x96, 0x42, 0x4f, 0xcf, 0x15, 0x44, 0x22, 0x11, 0x94, 0x2d, 0x59, 0x82, 0xe6, 0xa6, 0x26, 0x6c, 0x6d, 0xde, 0x0c, 0x41, 0x20, 0x70, 0x3a, 0x9d, 0x28, 0x29, 0x29, 0x5d, 0x41, 0x04, 0xa1, 0x3e, 0xa3, 0x1a, 0xe0, 0x8c, 0x97, 0x50, 0x62, 0xe1, 0x8d, 0xd0, 0xdf, 0x3b, 0x4d, 0xcb, 0x1a, 0x16, 0x04, 0x31, 0x4f, 0x51, 0xd4, 0xa6, 0xf7, 0x42, 0xbf, 0x13, 0xbe, 0x56, 0xda, 0x03, 0x5a, 0xf7, 0x2a, 0x68, 0xe4, 0x32, 0x58, 0xf7, 0xdf, 0xc0, 0x37, 0xbe, 0x0c, 0x47, 0xe9, 0x5a, 0xa8, 0xaa, 0x8a, 0xce, 0xce, 0x4e, 0xec, 0xd9, 0xb5, 0x0b, 0x5f, 0x59, 0xbf, 0x1e, 0x76, 0xbb, 0x0d, 0x8b, 0x8a, 0x0a, 0xd0, 0xdd, 0xd3, 0x0b, 0xdd, 0x30, 0x20, 0x8a, 0xa2, 0x08, 0x8e, 0x65, 0xff, 0x7b, 0x7b, 0xf2, 0x3b, 0x02, 0xa4, 0x12, 0x73, 0x57, 0x2d, 0xcb, 0xdc, 0xca, 0x39, 0x4f, 0x72, 0xce, 0x67, 0x55, 0xbb, 0xdd, 0x2d, 0x8a, 0x62, 0xe8, 0x4a, 0xe7, 0x5b, 0xc1, 0x9d, 0x6b, 0x12, 0x44, 0xbf, 0xf4, 0x22, 0x08, 0x8d, 0x00, 0x4a, 0x16, 0x78, 0x56, 0x0e, 0xe8, 0x60, 0x0f, 0x1e, 0x7f, 0xb8, 0x05, 0xdc, 0xe6, 0x44, 0x65, 0x65, 0x15, 0xb4, 0x74, 0x1a, 0x05, 0xf9, 0x01, 0x98, 0x86, 0x09, 0x2d, 0xad, 0xc1, 0x32, 0x4d, 0x84, 0xc3, 0xa3, 0x8c, 0x31, 0x16, 0xcb, 0xc8, 0x01, 0xc3, 0xd0, 0x0d, 0x00, 0x43, 0x9f, 0xce, 0xf5, 0x54, 0x2a, 0x25, 0x10, 0xf2, 0x1d, 0xbf, 0xc3, 0x79, 0x08, 0x2c, 0x3b, 0x28, 0x8a, 0x7d, 0xe0, 0x96, 0x03, 0x30, 0x0c, 0x18, 0xef, 0x3d, 0x0f, 0x16, 0x4d, 0xa0, 0x6e, 0xfb, 0xcf, 0xa0, 0x96, 0xd7, 0x83, 0x33, 0x8e, 0x1c, 0x57, 0x36, 0x24, 0x51, 0x42, 0xff, 0xc8, 0x00, 0xa6, 0xe3, 0x33, 0x18, 0x19, 0x1c, 0xc0, 0xe4, 0xe4, 0xe4, 0x0d, 0xd3, 0xd0, 0x2f, 0xdf, 0x6e, 0xf5, 0x77, 0x3d, 0x88, 0xb4, 0x64, 0x72, 0x60, 0x6b, 0xa5, 0xeb, 0x15, 0x9a, 0x74, 0x52, 0x50, 0x15, 0xdc, 0x10, 0x00, 0x89, 0x83, 0xce, 0xc4, 0x41, 0x56, 0x3f, 0x0c, 0xa1, 0xac, 0x0a, 0x94, 0x31, 0x40, 0x00, 0x08, 0x11, 0x10, 0x1e, 0x0b, 0xe3, 0xe8, 0x9b, 0x6f, 0x61, 0xa0, 0xbf, 0x0f, 0x9d, 0x9d, 0x67, 0x93, 0x7a, 0x5a, 0x3b, 0x64, 0x9a, 0xe6, 0xd0, 0xe7, 0xba, 0x0d, 0x93, 0x49, 0xde, 0x6d, 0xcc, 0xd8, 0xc6, 0x44, 0x05, 0xc5, 0x3c, 0x25, 0xf0, 0xd1, 0x61, 0x73, 0xe6, 0xb5, 0xb3, 0x53, 0x36, 0x0c, 0x5e, 0x56, 0xea, 0xa3, 0x22, 0x29, 0x2c, 0x2a, 0x02, 0x38, 0x30, 0x32, 0x32, 0x84, 0xde, 0xae, 0xf3, 0xf8, 0xa8, 0x6f, 0x88, 0x87, 0xc7, 0xc6, 0x6e, 0xa6, 0x92, 0xc9, 0xbf, 0x68, 0xc9, 0xe4, 0x21, 0x0e, 0xa4, 0xef, 0xa4, 0x7f, 0xd7, 0x4b, 0xc3, 0xa1, 0x8a, 0x49, 0x5f, 0x96, 0x6a, 0x4e, 0x47, 0x99, 0xf7, 0xd4, 0xa5, 0x78, 0xfb, 0x2b, 0x1d, 0xa3, 0xbf, 0x3d, 0x3d, 0x1c, 0x7b, 0xa7, 0xaf, 0xbf, 0xef, 0xc6, 0xd9, 0x33, 0xff, 0x4a, 0xf7, 0x76, 0x9d, 0xc9, 0x96, 0x13, 0x43, 0xf6, 0x8d, 0x2b, 0x12, 0xe4, 0x91, 0xba, 0x08, 0x2a, 0xb3, 0x22, 0xc9, 0x6c, 0x9d, 0xbf, 0x66, 0xb7, 0xf0, 0xa7, 0xc1, 0xb8, 0x36, 0xb5, 0x20, 0xbf, 0x66, 0x45, 0x1e, 0x45, 0x31, 0x2d, 0xee, 0x8e, 0xa5, 0xac, 0x84, 0x45, 0xb9, 0xf6, 0xeb, 0xdd, 0xc5, 0x64, 0xe7, 0xc6, 0x25, 0xd5, 0x6a, 0x49, 0xd3, 0x8f, 0x6d, 0xae, 0xfc, 0xcd, 0x82, 0x15, 0x76, 0x48, 0xae, 0x2b, 0xa0, 0xe1, 0x6e, 0x58, 0x51, 0xc6, 0x05, 0x42, 0xd3, 0xda, 0xbf, 0x0b, 0xff, 0x31, 0x11, 0x56, 0x0f, 0x54, 0x1d, 0x3e, 0x7f, 0xfd, 0x73, 0x3f, 0x48, 0xc6, 0xa6, 0x0d, 0x03, 0xc0, 0xcd, 0x4f, 0xe7, 0x5b, 0x6a, 0x5d, 0xde, 0xd1, 0x9b, 0xf1, 0xfd, 0x13, 0x9f, 0xb4, 0x2b, 0x91, 0xf1, 0xe9, 0xb6, 0xca, 0x3c, 0xdb, 0xb2, 0xb2, 0x12, 0xd2, 0xf0, 0xc1, 0x05, 0xdb, 0x07, 0x03, 0xa3, 0xe6, 0xa5, 0x80, 0x4d, 0x74, 0xb9, 0x65, 0xbd, 0x68, 0x38, 0x36, 0x53, 0x0f, 0xe0, 0xc6, 0x9d, 0x8a, 0xf0, 0xbf, 0x4a, 0xd6, 0xce, 0x37, 0xa3, 0x66, 0xd7, 0x04, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; const unsigned char icon_tucnakv64[5042] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x08, 0x06, 0x00, 0x00, 0x00, 0xaa, 0x69, 0x71, 0xde, 0x00, 0x00, 0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x43, 0xbb, 0x7f, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xd9, 0x0a, 0x08, 0x07, 0x0d, 0x0d, 0xb8, 0xb1, 0xc3, 0x7c, 0x00, 0x00, 0x13, 0x3f, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0xed, 0x9b, 0x79, 0x6c, 0x5c, 0xd7, 0x75, 0x87, 0x7f, 0x77, 0x79, 0x6f, 0xe6, 0xcd, 0x0c, 0x67, 0xe5, 0x70, 0x15, 0x45, 0x52, 0xa4, 0x28, 0x4a, 0xa2, 0x44, 0x4b, 0xa4, 0x64, 0x59, 0x92, 0x61, 0x1b, 0x52, 0x12, 0xc9, 0xb6, 0xbc, 0xc9, 0x4b, 0xe2, 0xa2, 0x75, 0xd2, 0xa4, 0x0e, 0x8c, 0x38, 0xad, 0xd3, 0x3a, 0x4d, 0x9c, 0x22, 0x45, 0x0b, 0x03, 0x05, 0x5a, 0x14, 0x69, 0x9b, 0xa2, 0x6d, 0x52, 0xb4, 0x49, 0x10, 0x03, 0x4e, 0xed, 0xd8, 0xb1, 0x63, 0x25, 0xde, 0x12, 0xcb, 0x76, 0x1c, 0x2f, 0xb2, 0xac, 0x58, 0xbb, 0x28, 0x4a, 0x22, 0xc5, 0x55, 0x43, 0x8a, 0x43, 0x72, 0xf6, 0x79, 0xcb, 0xbd, 0xa7, 0x7f, 0x0c, 0xa5, 0xc4, 0x49, 0xda, 0xc4, 0x32, 0x69, 0x4b, 0x41, 0x2e, 0xf0, 0x40, 0x62, 0x08, 0x9c, 0xb9, 0xe7, 0xbb, 0x67, 0xbd, 0xe7, 0x11, 0xf8, 0xfd, 0xfa, 0xfd, 0xfa, 0xfd, 0xba, 0x58, 0x97, 0xbd, 0xeb, 0xa9, 0xc0, 0xec, 0xf6, 0x6d, 0xcd, 0x69, 0xce, 0xea, 0x66, 0x37, 0x5c, 0x1e, 0x2f, 0x3f, 0xfc, 0xb0, 0x6f, 0xbe, 0xbf, 0x83, 0x5d, 0x6c, 0x4a, 0xe7, 0x3f, 0x7b, 0x6f, 0xcc, 0x3b, 0x72, 0xe4, 0x63, 0x90, 0xf2, 0x66, 0xd9, 0xdb, 0xbb, 0x4e, 0xb4, 0xb7, 0x5b, 0xf0, 0x94, 0xa2, 0xe9, 0xb4, 0x52, 0x83, 0xa7, 0x53, 0x3a, 0x95, 0x7a, 0x4a, 0x2c, 0x5b, 0xf6, 0x6f, 0xa1, 0x7f, 0xf8, 0x87, 0x81, 0xdf, 0x29, 0x00, 0xb9, 0xbf, 0xfc, 0xbc, 0xd0, 0x27, 0x4f, 0x7e, 0x86, 0x49, 0xf9, 0x80, 0x79, 0xeb, 0x6d, 0x75, 0x72, 0xd3, 0x26, 0xf0, 0x48, 0x04, 0x94, 0xcf, 0x01, 0xd2, 0x80, 0x3a, 0x75, 0x0a, 0x3a, 0x9d, 0x86, 0xf7, 0xc6, 0x1b, 0x70, 0x1e, 0xf9, 0x9f, 0x2c, 0xab, 0xab, 0xfb, 0x5c, 0xec, 0xe5, 0x9f, 0x7c, 0xe3, 0x77, 0x02, 0x40, 0xf1, 0xeb, 0x5f, 0xaf, 0x76, 0x1e, 0x7d, 0xe4, 0xdf, 0x8d, 0xab, 0xaf, 0xb9, 0xcd, 0xbc, 0xe1, 0x06, 0x02, 0x67, 0x4c, 0xa7, 0x26, 0xa0, 0x4e, 0x9f, 0x86, 0x3a, 0x7c, 0x08, 0x7a, 0x66, 0x16, 0x94, 0xcd, 0x42, 0xa7, 0xa7, 0xa0, 0x1d, 0x07, 0xc4, 0x18, 0x9c, 0xb1, 0x51, 0xe5, 0x7c, 0xe2, 0xee, 0x7f, 0x14, 0xf7, 0xdd, 0x9f, 0xf7, 0x14, 0x7d, 0x7f, 0x49, 0x32, 0x74, 0xe8, 0x92, 0x03, 0x90, 0xca, 0x96, 0x04, 0x0e, 0xec, 0x5f, 0xe9, 0xff, 0xd7, 0xaf, 0x7c, 0xd3, 0x77, 0xfd, 0x8e, 0xb5, 0x2c, 0x16, 0x03, 0x39, 0x0e, 0x68, 0x76, 0x16, 0xee, 0x9e, 0x37, 0xa0, 0xfa, 0x4f, 0x40, 0x4d, 0x4e, 0x40, 0x39, 0x0e, 0x3c, 0xdb, 0x86, 0x12, 0x02, 0x62, 0xc3, 0x15, 0xc8, 0xa7, 0x52, 0x98, 0xf9, 0xd9, 0x3e, 0x18, 0x6b, 0x7b, 0xb1, 0x64, 0xd7, 0xd3, 0x98, 0x2e, 0x7b, 0x67, 0xb3, 0x25, 0xb7, 0x7b, 0xed, 0xe2, 0xf8, 0x99, 0x77, 0xbb, 0x07, 0xf9, 0x41, 0x29, 0x7f, 0x7c, 0x22, 0xe7, 0x23, 0xcf, 0xfb, 0x86, 0xb9, 0xeb, 0xc9, 0x5b, 0x65, 0x57, 0x97, 0xa9, 0x5d, 0x17, 0x34, 0x38, 0x08, 0x10, 0xa1, 0xfc, 0xdc, 0xb3, 0x70, 0x0f, 0x1d, 0x82, 0x76, 0x1c, 0x78, 0x8e, 0x03, 0x6a, 0x68, 0x80, 0x5b, 0x57, 0x07, 0xbb, 0x2a, 0x8c, 0x42, 0x3e, 0x8f, 0xbc, 0xdf, 0xb7, 0xff, 0xcc, 0xdd, 0xf7, 0x07, 0x02, 0xd1, 0x48, 0x07, 0xa6, 0xf2, 0x60, 0x42, 0x24, 0x0b, 0xb6, 0xd7, 0x03, 0xe0, 0x07, 0x97, 0x0c, 0x00, 0x22, 0x7a, 0xd0, 0x9a, 0x9a, 0xbc, 0xd3, 0x1d, 0x1e, 0x82, 0x5a, 0xbd, 0x1a, 0xbc, 0x58, 0x00, 0xd9, 0x65, 0xd8, 0x3f, 0x79, 0x05, 0xa5, 0xd7, 0x5e, 0x83, 0x72, 0x1c, 0x28, 0xc6, 0xa0, 0x5a, 0x5a, 0xa0, 0x6b, 0x6a, 0xe0, 0x46, 0xa2, 0x98, 0xcd, 0x66, 0x0b, 0xb6, 0xcf, 0xf7, 0x77, 0x1d, 0xf7, 0x7e, 0xf6, 0x2b, 0x23, 0xb1, 0x15, 0xdb, 0x8b, 0x82, 0x3f, 0x32, 0x99, 0x77, 0x8d, 0x92, 0x5b, 0x3a, 0xd1, 0x14, 0x0b, 0xbe, 0x7e, 0x21, 0xfb, 0xf8, 0x40, 0x00, 0xec, 0x3e, 0x3e, 0xd1, 0x91, 0xce, 0xdb, 0x9f, 0xa9, 0xab, 0xab, 0xc7, 0x28, 0x18, 0xaa, 0xa7, 0xa7, 0x11, 0x70, 0x1d, 0xd0, 0xc4, 0x04, 0x72, 0x2f, 0xed, 0x86, 0x67, 0xdb, 0xf0, 0xb8, 0x00, 0x3a, 0x3b, 0x41, 0xc9, 0x24, 0xbc, 0x68, 0x14, 0x85, 0x42, 0xb1, 0xc0, 0x82, 0xc1, 0x5b, 0x3e, 0xb4, 0x6b, 0xd7, 0xf3, 0x78, 0xe6, 0x19, 0x1c, 0x18, 0x99, 0x7d, 0xb2, 0x2f, 0x95, 0xb9, 0xa6, 0xec, 0xaa, 0x1e, 0xdb, 0xd5, 0x8f, 0xaf, 0x6f, 0x4d, 0xa4, 0x2f, 0x19, 0x00, 0x47, 0x06, 0x27, 0x6e, 0xa9, 0x8e, 0x47, 0x02, 0xb5, 0x61, 0x0b, 0x89, 0x2f, 0x7d, 0x19, 0xc7, 0x3e, 0xf7, 0xa7, 0x58, 0xd2, 0xbd, 0x1a, 0xea, 0x47, 0xcf, 0xc3, 0x2d, 0x16, 0xa1, 0x18, 0x03, 0xeb, 0x5a, 0x0d, 0x56, 0x5b, 0x0b, 0x9d, 0x4c, 0xc2, 0x25, 0x02, 0x23, 0xfc, 0xed, 0x95, 0x8f, 0x3d, 0xf6, 0xfc, 0x39, 0x19, 0xdd, 0x4d, 0x51, 0x02, 0xf0, 0xea, 0xdc, 0x73, 0xc1, 0x8b, 0xbf, 0x9f, 0x8a, 0xc7, 0x62, 0x31, 0x16, 0x8b, 0x27, 0x12, 0x67, 0x53, 0xe3, 0xb7, 0x68, 0x22, 0x0c, 0xcf, 0x14, 0x90, 0x4f, 0x36, 0xa2, 0xed, 0xab, 0xff, 0x81, 0xe3, 0x03, 0x43, 0xe8, 0x3f, 0x3d, 0x8c, 0x34, 0x17, 0x28, 0xd5, 0xd6, 0x81, 0x9a, 0x9a, 0x80, 0x25, 0x6d, 0x10, 0x75, 0x75, 0xc8, 0x99, 0x96, 0xe3, 0x7d, 0xfe, 0xc1, 0xc7, 0x17, 0x62, 0x4f, 0xef, 0x2b, 0x00, 0x70, 0x1e, 0x63, 0x82, 0xff, 0xc9, 0xd8, 0xa9, 0xa3, 0xcb, 0x35, 0x11, 0x88, 0x08, 0x63, 0x99, 0x12, 0x86, 0x65, 0x18, 0x0d, 0xff, 0xf4, 0x35, 0x04, 0xff, 0xf9, 0x6b, 0x98, 0xea, 0x5c, 0x89, 0x99, 0x60, 0x08, 0x76, 0x28, 0x04, 0x0a, 0x58, 0x30, 0xea, 0xea, 0x51, 0xaa, 0x5b, 0x6c, 0x8e, 0x32, 0xeb, 0x86, 0x85, 0xd8, 0xd2, 0xfb, 0xe6, 0x02, 0xb1, 0x44, 0xb5, 0xc5, 0x18, 0xfb, 0xb8, 0x69, 0xfa, 0xee, 0x3d, 0xf1, 0xc6, 0x8f, 0x82, 0xab, 0x2e, 0xbf, 0x12, 0x61, 0xab, 0x01, 0x82, 0x33, 0x8c, 0xe5, 0xca, 0x98, 0x34, 0x25, 0x22, 0x57, 0x5f, 0x0b, 0xdf, 0xc6, 0xad, 0x28, 0x1e, 0x3e, 0x80, 0xf2, 0xd1, 0xfd, 0x30, 0x8b, 0x39, 0x60, 0x32, 0x03, 0xf7, 0xaa, 0x6d, 0xb0, 0x0c, 0x19, 0xbd, 0x64, 0x01, 0x54, 0x47, 0x6b, 0x84, 0x47, 0x7a, 0x6b, 0x20, 0x68, 0xdd, 0xbd, 0x79, 0xd3, 0xe6, 0xfa, 0x9d, 0xb7, 0xdc, 0xcc, 0x86, 0x07, 0xf7, 0x61, 0xd2, 0xb2, 0x60, 0x85, 0x42, 0xd0, 0x04, 0x64, 0x4b, 0x2e, 0x32, 0x25, 0x17, 0x3e, 0xc9, 0x61, 0x76, 0x76, 0x23, 0xd6, 0xb3, 0x0e, 0x92, 0x31, 0x28, 0x4d, 0xf0, 0x3c, 0x85, 0x92, 0xed, 0xf5, 0x5d, 0xb2, 0x2e, 0xa0, 0x48, 0x2d, 0xf2, 0x99, 0xe6, 0x27, 0xb6, 0x6e, 0xd9, 0xda, 0xfa, 0xe5, 0xbf, 0xfa, 0x12, 0xbf, 0x61, 0xc7, 0x0e, 0x6c, 0x58, 0xbb, 0x0a, 0x2f, 0x3f, 0xfc, 0x55, 0x0c, 0xf6, 0x1d, 0xc5, 0xc4, 0x6c, 0x11, 0x65, 0xc7, 0x83, 0xe4, 0x15, 0x85, 0xfd, 0x52, 0xc0, 0x2f, 0x39, 0xfc, 0x86, 0x80, 0x29, 0x05, 0x40, 0xc8, 0x04, 0x7d, 0xf2, 0x8d, 0x4b, 0x12, 0x40, 0x22, 0x91, 0x30, 0x14, 0xd4, 0xf6, 0x95, 0x5d, 0x2b, 0x37, 0x5c, 0x7f, 0xdd, 0x75, 0xa6, 0x26, 0x40, 0x48, 0x09, 0xad, 0x35, 0xec, 0x42, 0x1e, 0x27, 0x5e, 0x7e, 0x02, 0x18, 0x7c, 0x13, 0x76, 0x66, 0x0a, 0xb6, 0xe3, 0x80, 0x33, 0x20, 0xe4, 0x97, 0x30, 0x85, 0x00, 0x03, 0x40, 0xa4, 0x61, 0xbb, 0xea, 0x3f, 0x77, 0x74, 0x2f, 0x3a, 0x7d, 0x49, 0xba, 0x40, 0xd9, 0x75, 0x5b, 0xe2, 0xb1, 0xf8, 0xf5, 0x9b, 0x37, 0x6d, 0xae, 0x7d, 0xe6, 0x99, 0xa7, 0xf1, 0xca, 0xee, 0xe7, 0xf0, 0x37, 0x5f, 0xfc, 0x0b, 0xd8, 0xd3, 0x29, 0xac, 0xed, 0x5e, 0x8d, 0x92, 0x6d, 0xa3, 0x36, 0x24, 0xb0, 0x73, 0xcb, 0x2a, 0x38, 0xcc, 0xc0, 0xf1, 0xd1, 0x49, 0x1c, 0x3b, 0xd1, 0x0f, 0x0d, 0x46, 0xa5, 0xb2, 0x9d, 0x91, 0xa6, 0xff, 0xdb, 0x4b, 0x17, 0x25, 0x1f, 0x5c, 0xa8, 0xfd, 0x2d, 0x28, 0x80, 0x68, 0x2c, 0x66, 0x96, 0x1d, 0xef, 0x8a, 0xe6, 0xa6, 0xc6, 0xb5, 0x2b, 0x5a, 0xa3, 0xdc, 0xcc, 0xf5, 0xa3, 0xbb, 0xab, 0x0b, 0xb2, 0x30, 0x84, 0xe5, 0x91, 0x69, 0xf8, 0xeb, 0x1d, 0x3c, 0xf4, 0xf8, 0x8b, 0x98, 0x1a, 0x68, 0xc4, 0x8e, 0x6d, 0xdb, 0x50, 0x5d, 0x13, 0x42, 0xa4, 0xbd, 0x1e, 0xaf, 0xfe, 0xf0, 0x51, 0x3c, 0xfe, 0xf8, 0xf7, 0xf4, 0x89, 0x93, 0x27, 0x0e, 0xe7, 0x32, 0x99, 0xff, 0xf6, 0x5c, 0xb7, 0x70, 0x49, 0x02, 0x28, 0xb9, 0xa2, 0xa6, 0x3e, 0x4e, 0x5b, 0xb6, 0xf4, 0x98, 0x35, 0x9b, 0x7b, 0x9a, 0xb0, 0x75, 0xcb, 0x16, 0x04, 0x83, 0x7e, 0x90, 0x7b, 0x0a, 0x31, 0x33, 0x07, 0x9f, 0xec, 0xc7, 0x67, 0x6f, 0x4e, 0xc1, 0x2d, 0x15, 0x61, 0x1c, 0xfd, 0x36, 0xdc, 0xdc, 0x55, 0x18, 0x71, 0xfc, 0x98, 0x9d, 0xcd, 0x20, 0x1c, 0x89, 0x32, 0xd2, 0x24, 0x40, 0xb4, 0xa0, 0x7b, 0x5c, 0x38, 0xe1, 0x3c, 0x2c, 0x7c, 0x42, 0x2f, 0x5b, 0xdf, 0x65, 0x6c, 0xda, 0x79, 0xcb, 0x15, 0xa2, 0xbe, 0xe3, 0x0a, 0x10, 0x38, 0xdc, 0xc2, 0x31, 0x90, 0xd3, 0x07, 0xa6, 0x8e, 0x23, 0x58, 0x75, 0x08, 0x6d, 0x2b, 0x87, 0x41, 0x8e, 0x82, 0xce, 0x0f, 0x22, 0xff, 0xc2, 0x0f, 0x30, 0x38, 0xda, 0x09, 0x93, 0xaa, 0x21, 0xa4, 0x04, 0x88, 0xd8, 0x42, 0xc7, 0xa9, 0x05, 0x03, 0xc0, 0xa4, 0x3f, 0x14, 0x0b, 0xdb, 0x57, 0x75, 0xaf, 0x48, 0x34, 0xb7, 0x77, 0xae, 0x03, 0x41, 0xc0, 0xcd, 0x1f, 0x82, 0x2e, 0x1c, 0x00, 0x2b, 0x1d, 0x02, 0x8a, 0x6f, 0x81, 0x4a, 0x03, 0xa0, 0x32, 0xc1, 0x2d, 0x04, 0x51, 0x4a, 0xc7, 0x30, 0x3d, 0x15, 0xc4, 0x94, 0x36, 0x21, 0x7d, 0x7e, 0x28, 0xcf, 0x03, 0x40, 0x04, 0x80, 0x2e, 0x39, 0x00, 0x91, 0xda, 0x5a, 0x66, 0x97, 0x50, 0x6f, 0x9a, 0x6c, 0x4b, 0x53, 0xbd, 0x14, 0xa6, 0x28, 0xc1, 0xcb, 0xbe, 0x09, 0xca, 0x1d, 0x00, 0x15, 0x4e, 0x40, 0xe5, 0x4e, 0xc0, 0xc9, 0x3a, 0x28, 0xe7, 0x97, 0x23, 0x9f, 0x6b, 0xc0, 0x6c, 0xa1, 0x09, 0x33, 0xba, 0x1e, 0x6a, 0x49, 0x2b, 0x4a, 0x2e, 0xc1, 0x1d, 0x1a, 0x81, 0xe3, 0x38, 0x15, 0xf5, 0x2f, 0x45, 0x00, 0x4c, 0x6b, 0xc3, 0x94, 0x58, 0xe7, 0x29, 0x63, 0x85, 0x6d, 0x2b, 0xe6, 0xce, 0xec, 0x46, 0xc9, 0x0e, 0xc2, 0xce, 0x13, 0x4a, 0xa5, 0x24, 0x4a, 0xa5, 0xc5, 0x28, 0x3a, 0x31, 0x14, 0x58, 0x0c, 0xc5, 0xaa, 0x10, 0x54, 0xc2, 0x42, 0x55, 0x2c, 0x8e, 0xd6, 0x96, 0xc5, 0x18, 0x1d, 0x1b, 0xc5, 0xe9, 0x91, 0x51, 0x38, 0xae, 0xbb, 0xe0, 0xca, 0x2f, 0x18, 0x00, 0x52, 0xaa, 0x8a, 0x33, 0xfe, 0x11, 0xe2, 0x55, 0x21, 0xc4, 0x6e, 0x07, 0x8f, 0x6f, 0x45, 0x66, 0xd2, 0x46, 0x4e, 0x0a, 0x38, 0x01, 0x3f, 0x5c, 0xbf, 0x84, 0xd2, 0x0c, 0x92, 0x31, 0xd4, 0x5a, 0x7e, 0x24, 0xe2, 0x31, 0x24, 0xe2, 0x31, 0x04, 0x02, 0x16, 0x4a, 0xa5, 0x22, 0x84, 0x10, 0xf0, 0x3c, 0x0f, 0x60, 0xe0, 0x0b, 0x7d, 0x6b, 0x35, 0xef, 0x00, 0xa2, 0x89, 0x6a, 0xce, 0x18, 0x56, 0x82, 0xb0, 0x21, 0x11, 0xaf, 0x16, 0xed, 0x2b, 0xb6, 0x42, 0x46, 0xaf, 0x44, 0x40, 0xcd, 0xc0, 0x35, 0x0b, 0x30, 0xb5, 0x02, 0x07, 0x60, 0x9a, 0x26, 0x42, 0xa1, 0x00, 0x02, 0x01, 0x0b, 0xa6, 0x61, 0x42, 0x88, 0x4a, 0xac, 0x0b, 0x06, 0x83, 0x30, 0x0d, 0x09, 0xd2, 0x1a, 0x0c, 0x4c, 0x70, 0xce, 0x2f, 0xad, 0x2c, 0xa0, 0x01, 0x53, 0x10, 0xb6, 0x4a, 0x21, 0x6b, 0x3a, 0x3a, 0x3a, 0xd8, 0xf2, 0xce, 0x4e, 0x70, 0xce, 0x11, 0x89, 0x54, 0xc1, 0xe7, 0x37, 0xc1, 0x19, 0x87, 0x69, 0x18, 0x90, 0x52, 0x80, 0x73, 0x0e, 0xc6, 0xde, 0x79, 0xc0, 0x96, 0xdf, 0x0f, 0x9f, 0xdf, 0x0f, 0xc6, 0x18, 0x03, 0x63, 0x3e, 0x70, 0xee, 0x5f, 0x48, 0x2b, 0x98, 0x77, 0x00, 0x8c, 0x61, 0x31, 0x03, 0xbb, 0xca, 0xef, 0xf7, 0x05, 0x36, 0x6c, 0xd8, 0x80, 0x64, 0x32, 0x09, 0x00, 0xf0, 0x99, 0x26, 0x4c, 0xc3, 0xf8, 0x15, 0x85, 0x7f, 0x79, 0x99, 0xa6, 0x01, 0x9f, 0x69, 0x82, 0x0b, 0xc1, 0x00, 0x58, 0x82, 0xf3, 0xd0, 0x42, 0x02, 0x98, 0xef, 0x1c, 0xcb, 0x38, 0xd8, 0x46, 0x00, 0xed, 0x75, 0x75, 0x75, 0x62, 0xd3, 0xa6, 0x8d, 0xef, 0x50, 0xf8, 0x37, 0x29, 0x0f, 0x00, 0x42, 0x08, 0x08, 0xce, 0x61, 0x18, 0x06, 0x38, 0x63, 0x7e, 0xce, 0x45, 0x62, 0x21, 0x6b, 0x81, 0x79, 0x15, 0x1c, 0x8e, 0xc7, 0x63, 0x00, 0xae, 0xe6, 0x5c, 0x24, 0x36, 0x5e, 0x71, 0x05, 0x96, 0xb6, 0xb7, 0xff, 0x56, 0x4a, 0xbf, 0x23, 0x80, 0x6a, 0x0d, 0x0d, 0x42, 0x20, 0x10, 0x04, 0xe3, 0x3c, 0x28, 0x84, 0x6c, 0x02, 0x63, 0xc6, 0x45, 0x0f, 0x20, 0x1e, 0x8f, 0x33, 0xc9, 0xf9, 0x1a, 0x10, 0x7a, 0x6a, 0x6a, 0x92, 0xe6, 0x75, 0xd7, 0x5d, 0x8b, 0x60, 0x30, 0xf8, 0xae, 0xe5, 0xb8, 0x9e, 0x07, 0xd7, 0xf5, 0x10, 0x89, 0x44, 0x60, 0x18, 0x66, 0x90, 0x71, 0xb6, 0xd4, 0xf0, 0xf9, 0x22, 0x17, 0x3d, 0x00, 0x62, 0x2c, 0x06, 0x60, 0x3b, 0x63, 0x68, 0xdb, 0xbc, 0x69, 0x23, 0xeb, 0xbe, 0xec, 0x32, 0x08, 0x21, 0xde, 0xb5, 0x9c, 0x42, 0xb1, 0x84, 0x62, 0xb1, 0x80, 0x70, 0x24, 0x8a, 0x70, 0x38, 0x6c, 0x32, 0xa0, 0xd3, 0x34, 0x8c, 0x96, 0x85, 0x72, 0x83, 0x79, 0x11, 0x1a, 0x8b, 0x55, 0x4b, 0x06, 0xbe, 0x5e, 0x6b, 0xba, 0xae, 0xb1, 0xa1, 0xc1, 0xba, 0xe9, 0xc6, 0x9b, 0x10, 0x8b, 0x5e, 0xd8, 0x0d, 0x56, 0x26, 0x93, 0x41, 0x2e, 0x57, 0x80, 0x15, 0x08, 0xa0, 0xa1, 0x71, 0x11, 0x13, 0x42, 0x2e, 0x11, 0x5c, 0xf4, 0x0a, 0xd3, 0xb4, 0x2e, 0x4a, 0x00, 0x81, 0x64, 0x92, 0x81, 0xb3, 0x66, 0x00, 0x77, 0x49, 0x29, 0x97, 0x6d, 0xdb, 0xb6, 0x0d, 0xbd, 0xbd, 0x3d, 0x30, 0x8c, 0x77, 0xef, 0xb6, 0x04, 0x42, 0x6a, 0x62, 0x02, 0x85, 0x42, 0x1e, 0x9c, 0x73, 0x34, 0x36, 0x35, 0x21, 0x54, 0x55, 0x95, 0x00, 0x63, 0xd7, 0xf8, 0x7c, 0x56, 0xe3, 0x42, 0x64, 0x83, 0xf7, 0x0c, 0xc0, 0x07, 0x84, 0xc0, 0x71, 0x07, 0x81, 0xb6, 0xad, 0x5c, 0xb1, 0x92, 0xdd, 0x74, 0xd3, 0x8d, 0x88, 0xc7, 0xe3, 0x17, 0x24, 0xab, 0x58, 0x2c, 0x61, 0x60, 0xf0, 0x34, 0x0a, 0xc5, 0x12, 0x88, 0x08, 0xf1, 0x44, 0x02, 0x8b, 0x9b, 0x9b, 0xb9, 0x94, 0x72, 0xa3, 0xe0, 0x6c, 0xb3, 0x65, 0x59, 0xfe, 0x8b, 0x0a, 0x40, 0xbc, 0x3a, 0xe9, 0x67, 0x44, 0x1f, 0x86, 0xa6, 0x3f, 0x8e, 0x45, 0xa3, 0x91, 0xdb, 0x6f, 0xbb, 0x15, 0x97, 0x75, 0x5f, 0x98, 0xef, 0x13, 0x80, 0x91, 0x91, 0x51, 0x9c, 0x38, 0x79, 0x0a, 0xae, 0xeb, 0x40, 0x6b, 0x0d, 0xc3, 0x30, 0xd1, 0xd6, 0xde, 0x81, 0x44, 0x22, 0x51, 0x2d, 0x38, 0xbf, 0x45, 0x48, 0xa3, 0x45, 0x9a, 0x26, 0xff, 0xc0, 0x01, 0x44, 0x22, 0x11, 0x1e, 0x8b, 0x25, 0xa2, 0x20, 0xdc, 0x01, 0xb0, 0xbf, 0x36, 0x0c, 0xa3, 0xe5, 0xca, 0x2b, 0x37, 0xb3, 0xeb, 0x77, 0x5c, 0x0f, 0xcb, 0xf2, 0x83, 0xe8, 0xdd, 0xf7, 0x30, 0xc5, 0x42, 0x11, 0xfb, 0xde, 0xde, 0x8f, 0xb1, 0xb1, 0x31, 0x68, 0x4d, 0x20, 0xad, 0x41, 0x44, 0xa8, 0xa9, 0xab, 0xc3, 0xb2, 0xce, 0xe5, 0xdc, 0x0a, 0x04, 0xae, 0x14, 0x52, 0xde, 0xe8, 0xf7, 0xfb, 0x43, 0x1f, 0x28, 0x80, 0x58, 0x75, 0xad, 0xc1, 0xa5, 0xd1, 0x49, 0x0c, 0x5f, 0xe0, 0x82, 0x3f, 0x28, 0xa5, 0xec, 0x6a, 0x69, 0x69, 0x11, 0x7f, 0x70, 0xe7, 0x9d, 0x68, 0x68, 0x68, 0x80, 0xd6, 0x1a, 0x9a, 0x08, 0x5a, 0xeb, 0xdf, 0xfe, 0xd6, 0x58, 0x29, 0x1c, 0xef, 0xef, 0xc7, 0x4f, 0x5e, 0x7d, 0x0d, 0x9e, 0xd2, 0x10, 0x42, 0x54, 0xe4, 0xe8, 0xca, 0xef, 0xcb, 0x57, 0xac, 0xc4, 0xa2, 0xc6, 0xa6, 0x90, 0x14, 0xf2, 0xa3, 0x0c, 0xac, 0xc7, 0x0a, 0x04, 0xc4, 0x7c, 0x01, 0x78, 0x57, 0x82, 0xe2, 0xc9, 0x64, 0x08, 0xc0, 0x16, 0x22, 0xfa, 0x42, 0x38, 0x1c, 0xbe, 0xa3, 0xab, 0xab, 0xab, 0xda, 0xb2, 0x2c, 0x7e, 0xe3, 0x8d, 0x37, 0xe0, 0xd6, 0x9d, 0x3b, 0x21, 0xa4, 0xfc, 0x85, 0xfe, 0x95, 0x9d, 0xef, 0x66, 0xff, 0xbf, 0x62, 0x88, 0x88, 0x30, 0x3a, 0x36, 0x8e, 0xef, 0x3c, 0xfa, 0x5d, 0x0c, 0x9c, 0x1e, 0x42, 0x22, 0x91, 0x00, 0x03, 0x03, 0x11, 0x41, 0x4a, 0x09, 0x21, 0x04, 0xa2, 0x91, 0x08, 0xac, 0x80, 0xc5, 0xc6, 0xc7, 0x47, 0x23, 0x8e, 0x63, 0x4b, 0x10, 0xed, 0x71, 0x1c, 0x27, 0xf7, 0xbe, 0x02, 0x88, 0xc7, 0x13, 0x35, 0x04, 0xfc, 0x11, 0x63, 0xf8, 0xc2, 0xa2, 0x45, 0x8b, 0x36, 0x7f, 0xfc, 0xae, 0xbb, 0x7c, 0xdd, 0xdd, 0xab, 0x19, 0x18, 0xf0, 0x89, 0xbb, 0x3e, 0x5e, 0xa9, 0xf9, 0x89, 0xe6, 0xc2, 0x34, 0x81, 0x18, 0x03, 0xc3, 0x6f, 0x2e, 0x83, 0xb3, 0xb9, 0x1c, 0xbe, 0xfb, 0xf8, 0xf7, 0xf0, 0xda, 0x1b, 0x7b, 0xd0, 0xd8, 0xb8, 0x08, 0x81, 0x40, 0x00, 0xa5, 0x52, 0x25, 0x08, 0x1a, 0x86, 0x84, 0x10, 0x12, 0x86, 0x61, 0xa0, 0xb6, 0xb6, 0x16, 0xe5, 0x52, 0xd9, 0x38, 0x73, 0x66, 0x3c, 0xa9, 0x89, 0xc6, 0xed, 0x72, 0xe9, 0x30, 0x00, 0xb5, 0xe0, 0x00, 0x62, 0xd5, 0xd5, 0xcc, 0x6f, 0x05, 0xda, 0xc0, 0xf9, 0xfd, 0x42, 0x88, 0x4f, 0xaf, 0x5a, 0xb5, 0xaa, 0xf5, 0xcf, 0xef, 0xbb, 0x8f, 0x6d, 0xfb, 0xc8, 0x87, 0xf1, 0xe2, 0x4b, 0x2f, 0x63, 0xfd, 0xba, 0xf5, 0x58, 0xbf, 0x7e, 0xfd, 0x79, 0x05, 0xcf, 0xb9, 0x3f, 0x03, 0x40, 0xec, 0x17, 0x22, 0x5c, 0xa5, 0x51, 0x7a, 0x47, 0x26, 0x73, 0x1c, 0x07, 0xdf, 0xdf, 0xb5, 0x0b, 0x3f, 0x7c, 0xe6, 0x39, 0x2c, 0x69, 0x69, 0x45, 0x4d, 0x4d, 0x0d, 0xf2, 0xb9, 0x1c, 0xb2, 0xb9, 0x1c, 0x18, 0x63, 0xe7, 0x2d, 0x40, 0x48, 0x89, 0x80, 0x65, 0xa1, 0xa6, 0x26, 0x89, 0x33, 0xe3, 0x63, 0x81, 0x99, 0x99, 0x99, 0x2a, 0xc3, 0x34, 0xf7, 0x73, 0xc6, 0x26, 0x3c, 0xcf, 0x5b, 0xb8, 0x18, 0x90, 0x48, 0x24, 0x38, 0x03, 0x96, 0x72, 0xc6, 0x1e, 0x90, 0x42, 0xdc, 0xd5, 0xdb, 0xdb, 0x5b, 0xf7, 0xc0, 0x17, 0x1f, 0x60, 0xdb, 0xaf, 0xdd, 0x8e, 0x91, 0x91, 0x51, 0xb8, 0xae, 0x8b, 0x9e, 0x9e, 0x1e, 0x70, 0x21, 0xa0, 0x49, 0x43, 0x6b, 0xaa, 0x04, 0x30, 0xaa, 0x98, 0x36, 0x34, 0x81, 0x48, 0x83, 0x50, 0x19, 0x84, 0x56, 0xfe, 0x46, 0xe7, 0xfd, 0x7e, 0xf7, 0x8b, 0x2f, 0xe1, 0x89, 0x27, 0x9f, 0xc2, 0x92, 0xd6, 0x56, 0xb4, 0xb7, 0xb5, 0x01, 0xa4, 0x31, 0x3d, 0x3d, 0x0d, 0xdb, 0xb6, 0xa1, 0xb5, 0x82, 0xd6, 0x1a, 0x44, 0x1a, 0x4a, 0x29, 0x78, 0x9e, 0x87, 0x64, 0xb2, 0x06, 0x1b, 0x37, 0x6e, 0x92, 0xa1, 0x50, 0xa8, 0x87, 0x33, 0x71, 0x8b, 0x94, 0x32, 0xb6, 0x60, 0x41, 0x30, 0x12, 0x89, 0x30, 0x02, 0x5b, 0x04, 0xb0, 0xfb, 0x38, 0xe7, 0xb7, 0xaf, 0x59, 0xb3, 0x26, 0x7a, 0xdf, 0x9f, 0xdd, 0xc7, 0xba, 0xbb, 0xbb, 0x51, 0x2e, 0x3b, 0xd8, 0x7f, 0xe0, 0x20, 0xea, 0xeb, 0xeb, 0x11, 0x8f, 0xc7, 0x2b, 0x1b, 0x3d, 0xaf, 0x9c, 0x9e, 0xdb, 0x38, 0xfd, 0x1c, 0x82, 0x3e, 0x07, 0x01, 0xe7, 0x3f, 0xef, 0xef, 0x3f, 0x81, 0x6f, 0x3f, 0xf4, 0x10, 0xe2, 0xd1, 0x18, 0xd6, 0x5c, 0x76, 0x19, 0xa4, 0x10, 0x18, 0x1a, 0x1e, 0x46, 0x7a, 0x3a, 0x7d, 0x5e, 0xf9, 0xca, 0xcf, 0x4a, 0x40, 0xf5, 0x94, 0x02, 0x11, 0x61, 0x79, 0xe7, 0x0a, 0x74, 0x2e, 0xeb, 0x0c, 0x33, 0xce, 0xae, 0x15, 0x42, 0xae, 0x36, 0x4d, 0x53, 0x2c, 0x08, 0x00, 0x6e, 0x18, 0x55, 0x60, 0xec, 0x76, 0x22, 0xdc, 0xd1, 0xde, 0xde, 0x5e, 0xf5, 0xa9, 0x4f, 0x7e, 0x0a, 0xcb, 0x96, 0x75, 0xc2, 0xb6, 0x6d, 0x64, 0xb3, 0x59, 0xa4, 0x52, 0x29, 0x84, 0xc3, 0x11, 0x48, 0x29, 0x2b, 0xa7, 0x7b, 0xfe, 0xa9, 0xd8, 0xfc, 0x39, 0x6b, 0xd0, 0xe7, 0x94, 0x9e, 0xeb, 0xf2, 0x88, 0x08, 0xe5, 0x72, 0x19, 0xcf, 0x3e, 0xfb, 0x2c, 0x52, 0xa9, 0x09, 0x6c, 0xb8, 0x7c, 0x03, 0x82, 0x81, 0x00, 0x4e, 0x0d, 0x0e, 0xe0, 0xd4, 0xe0, 0x20, 0x5c, 0xcf, 0x3b, 0x9f, 0x01, 0x94, 0xaa, 0x9c, 0xbe, 0x52, 0x0a, 0xca, 0xf3, 0xe0, 0x29, 0x85, 0x50, 0x38, 0x8c, 0x9e, 0xde, 0x75, 0x2c, 0x14, 0x0a, 0xad, 0xd0, 0xc0, 0x76, 0xc3, 0x34, 0xe3, 0xf3, 0x0e, 0x20, 0x51, 0x53, 0x23, 0x39, 0xe3, 0x3d, 0x04, 0xfa, 0x64, 0x3c, 0x1e, 0x8f, 0xef, 0xdc, 0x79, 0x2b, 0xba, 0xba, 0x56, 0xc1, 0xf3, 0x3c, 0x94, 0xca, 0x36, 0xb2, 0xd9, 0x1c, 0xf2, 0x85, 0x02, 0x3c, 0xcf, 0x3b, 0x6f, 0xd6, 0xe7, 0x9e, 0xca, 0xe6, 0xf1, 0x8e, 0xcf, 0x88, 0x58, 0x25, 0x36, 0xcc, 0x59, 0xc6, 0xd9, 0xb3, 0x67, 0xb1, 0x67, 0xef, 0x5e, 0x34, 0x36, 0x36, 0xa2, 0xb9, 0xa5, 0x19, 0x67, 0xce, 0xa4, 0xb0, 0x77, 0xdf, 0x3e, 0x94, 0x4a, 0xa5, 0x39, 0xc5, 0xd5, 0x5c, 0x21, 0x64, 0xa0, 0x2a, 0x14, 0x82, 0xe5, 0xf7, 0x43, 0x13, 0xe1, 0x9c, 0xbf, 0xb7, 0xb6, 0xb6, 0xa2, 0xa9, 0x69, 0xb1, 0x9f, 0x73, 0xb6, 0x95, 0x73, 0xde, 0x21, 0xa5, 0xbc, 0x60, 0x2b, 0xf8, 0xb5, 0x37, 0x42, 0x5a, 0xe9, 0x10, 0x63, 0xfc, 0x56, 0xc1, 0x45, 0x5b, 0x77, 0x77, 0x37, 0x56, 0xaf, 0xee, 0x46, 0x6a, 0x62, 0x02, 0xc3, 0xc3, 0xc3, 0x18, 0x19, 0x1e, 0xc2, 0xe4, 0xd9, 0x49, 0xbc, 0xf5, 0xd6, 0x5b, 0xb0, 0x2c, 0x0b, 0xb6, 0xe3, 0x40, 0x4a, 0x03, 0x60, 0x0c, 0x8c, 0x31, 0x30, 0x10, 0x34, 0x69, 0x70, 0x70, 0x10, 0x00, 0xa6, 0x5c, 0x30, 0x52, 0xe0, 0x86, 0x1f, 0xc4, 0x18, 0x84, 0x60, 0x28, 0x14, 0x0a, 0x98, 0x99, 0x99, 0x41, 0x47, 0x47, 0x07, 0x48, 0x6b, 0xbc, 0xfa, 0xfa, 0xab, 0x98, 0x9a, 0x9a, 0x42, 0x20, 0x10, 0x80, 0xd6, 0x1a, 0xe1, 0x70, 0x18, 0xcb, 0x96, 0x2e, 0xc5, 0xa2, 0x86, 0x46, 0x44, 0x22, 0x11, 0x28, 0x52, 0x18, 0x18, 0x38, 0x5d, 0xb1, 0x02, 0xaf, 0xd2, 0x2a, 0xb7, 0xb6, 0xb6, 0xe2, 0xc4, 0x89, 0xfe, 0xa5, 0xb6, 0x2a, 0xf7, 0x48, 0xd3, 0xdc, 0xef, 0x79, 0x5e, 0x61, 0x5e, 0x00, 0x44, 0xaa, 0x93, 0x1c, 0x40, 0x1b, 0x03, 0x5d, 0xc5, 0x18, 0x97, 0x53, 0x53, 0x53, 0xf8, 0xce, 0x77, 0x1e, 0xc6, 0xe8, 0xe8, 0x28, 0xa5, 0x52, 0x29, 0x64, 0xb3, 0x59, 0xb8, 0xae, 0xc3, 0x6c, 0xdb, 0x81, 0x65, 0x59, 0x48, 0x9d, 0x39, 0x83, 0xb6, 0xe6, 0x06, 0xd0, 0xd4, 0xe1, 0x4a, 0x80, 0x4f, 0xae, 0x06, 0xa4, 0x05, 0x0d, 0x0d, 0xe4, 0xd3, 0x50, 0x87, 0x9e, 0x83, 0x4e, 0x8f, 0xc3, 0xec, 0xde, 0x0e, 0xd9, 0xbc, 0x1a, 0xc4, 0x19, 0xa4, 0x61, 0xc0, 0x34, 0x0c, 0xe4, 0xf3, 0x79, 0x1c, 0x3f, 0xde, 0x87, 0xbe, 0xbe, 0x63, 0xd0, 0x4a, 0xc1, 0x67, 0xfa, 0xb0, 0x66, 0xf5, 0x6a, 0xf4, 0xf6, 0xf4, 0xa2, 0x36, 0x99, 0x84, 0x94, 0x12, 0xf1, 0x58, 0x14, 0x3e, 0xcb, 0x87, 0x89, 0x89, 0x49, 0x14, 0x0a, 0x45, 0xb8, 0xae, 0x8b, 0x60, 0x20, 0x80, 0x44, 0xa2, 0x1a, 0xa6, 0x69, 0x5a, 0x8e, 0x63, 0x77, 0x31, 0x20, 0x0c, 0x60, 0x7e, 0x00, 0x30, 0x02, 0x07, 0xd0, 0x05, 0xce, 0x6a, 0xb4, 0xd6, 0xde, 0xb1, 0x63, 0x47, 0xdd, 0x63, 0xc7, 0x8e, 0x38, 0x9e, 0xa7, 0x8a, 0x5a, 0xeb, 0x22, 0x00, 0xc1, 0x39, 0xaf, 0x65, 0x8c, 0x05, 0xfa, 0xfa, 0x8e, 0xe3, 0x85, 0x17, 0x7e, 0x84, 0xc6, 0x8f, 0x2c, 0x87, 0xaf, 0xff, 0x9b, 0xd0, 0x08, 0x82, 0xad, 0xbd, 0x17, 0x3c, 0xb9, 0x02, 0x54, 0x2e, 0x40, 0x1f, 0x79, 0x0a, 0xba, 0xef, 0x09, 0xe8, 0x4c, 0x09, 0xae, 0x15, 0x05, 0x6f, 0x58, 0x06, 0xc6, 0x2d, 0xc4, 0xa2, 0x31, 0xb4, 0xb6, 0xb6, 0xe2, 0xc0, 0xc1, 0x83, 0x28, 0x95, 0xca, 0xc8, 0xe7, 0xf2, 0x58, 0xd4, 0xb4, 0x18, 0xdb, 0xb7, 0x6f, 0xc7, 0xba, 0x9e, 0x1e, 0x58, 0x96, 0x05, 0x22, 0x82, 0xcf, 0xe7, 0x43, 0x53, 0x53, 0x23, 0x34, 0x69, 0x98, 0xa6, 0x89, 0x6c, 0x36, 0x07, 0xcf, 0xf3, 0xa0, 0x94, 0x02, 0xe7, 0x1c, 0x9c, 0x71, 0x0e, 0xb0, 0x06, 0xd2, 0x14, 0x06, 0x90, 0xba, 0x90, 0x39, 0xc2, 0xaf, 0xba, 0x80, 0xd6, 0x20, 0xc0, 0xf6, 0xb4, 0x3e, 0xa4, 0x95, 0x86, 0x56, 0x6a, 0x5c, 0x29, 0x6f, 0x4c, 0x29, 0x35, 0xae, 0xb5, 0x9e, 0x16, 0x42, 0x9a, 0x56, 0x20, 0xb0, 0x43, 0x1a, 0xc6, 0xf6, 0x72, 0xb9, 0xe4, 0x7b, 0xec, 0xb1, 0x47, 0xb0, 0x21, 0xb2, 0x0c, 0x6b, 0xe2, 0xc7, 0xa1, 0x5c, 0x01, 0x4a, 0xed, 0x83, 0x0e, 0x2d, 0x02, 0x46, 0xf7, 0x00, 0xe3, 0xdf, 0x87, 0x48, 0x64, 0x00, 0x66, 0x00, 0xc1, 0x10, 0x88, 0x71, 0x68, 0x22, 0x04, 0x43, 0x21, 0x5c, 0xbe, 0xe1, 0x72, 0xbc, 0xf8, 0xd2, 0x4b, 0x48, 0xa5, 0x26, 0xb0, 0x7c, 0x79, 0x27, 0x3e, 0xfa, 0xb1, 0x3b, 0xb1, 0x72, 0xc5, 0x4a, 0x70, 0xc6, 0xe1, 0x29, 0x0f, 0x42, 0x08, 0xd4, 0xd7, 0xd6, 0x20, 0x12, 0x09, 0x23, 0x9b, 0xcb, 0x81, 0x0b, 0x01, 0x4f, 0x55, 0xb2, 0x81, 0xe3, 0x38, 0xc8, 0x65, 0x33, 0x70, 0x3d, 0x17, 0x00, 0xa4, 0x26, 0x32, 0xde, 0x51, 0x7a, 0xbe, 0x17, 0x00, 0xe5, 0x52, 0x51, 0x11, 0xd1, 0x8f, 0x3d, 0xcf, 0x1d, 0xd6, 0x5a, 0xfb, 0x00, 0x64, 0x01, 0x64, 0x88, 0xa8, 0x00, 0xa0, 0xac, 0x94, 0x66, 0xd2, 0x67, 0xa6, 0xb8, 0x10, 0x75, 0x9c, 0xf3, 0x75, 0x93, 0x67, 0xc6, 0xc4, 0xd4, 0x68, 0x01, 0xb2, 0x6d, 0x12, 0x64, 0x73, 0x78, 0xe3, 0x2f, 0x82, 0xca, 0x2e, 0x58, 0xfa, 0xa7, 0xe0, 0x46, 0x1a, 0xe4, 0x09, 0x10, 0x8f, 0x81, 0xd5, 0x2c, 0x05, 0x09, 0x03, 0xda, 0x73, 0x21, 0x48, 0xe3, 0xf2, 0xde, 0x5e, 0xac, 0x5a, 0xb5, 0x0a, 0x20, 0xc2, 0x3d, 0xf7, 0xdc, 0x83, 0xce, 0xce, 0xe5, 0x98, 0xcd, 0x64, 0xa1, 0x94, 0x82, 0x34, 0x24, 0xe2, 0xb1, 0x08, 0xa2, 0xd1, 0x08, 0x18, 0x63, 0xf0, 0x3c, 0x0f, 0x8e, 0xed, 0x40, 0xa9, 0x4a, 0x86, 0xc8, 0xe5, 0x72, 0x18, 0x1b, 0x1f, 0x83, 0xe7, 0xb9, 0x04, 0xa2, 0x59, 0x22, 0xed, 0xcd, 0x5b, 0x10, 0x2c, 0x97, 0x4b, 0x04, 0x60, 0x06, 0xc0, 0xcf, 0xe6, 0xa8, 0x7a, 0x73, 0x25, 0xa7, 0x3e, 0x57, 0xd6, 0xd9, 0xb6, 0xfd, 0x53, 0xc1, 0xf8, 0x7f, 0x49, 0xc3, 0x88, 0x19, 0x42, 0x2c, 0xf5, 0x19, 0x9a, 0x13, 0x03, 0x98, 0x29, 0xc0, 0x32, 0x7d, 0xc0, 0xd0, 0x08, 0xb8, 0x55, 0x06, 0xb8, 0x04, 0x15, 0x19, 0xc8, 0xab, 0x02, 0x31, 0x03, 0xde, 0xf0, 0x31, 0xe8, 0xc1, 0x83, 0xa0, 0xcc, 0x0c, 0xaa, 0x97, 0xf6, 0xe0, 0x33, 0x9f, 0xbe, 0x1b, 0x91, 0x78, 0x02, 0x6d, 0x4b, 0x96, 0x40, 0x6b, 0x0d, 0xc7, 0x76, 0xe0, 0x7a, 0x1e, 0x42, 0xa1, 0x00, 0x22, 0xe1, 0x2a, 0x30, 0x56, 0xc9, 0x26, 0xb9, 0x5c, 0x1e, 0xf9, 0x42, 0xfe, 0x7c, 0x41, 0x74, 0x76, 0x3a, 0x8d, 0xa1, 0xa1, 0x61, 0x28, 0xa5, 0x6d, 0xa5, 0xd5, 0x30, 0x55, 0x5c, 0x93, 0xe6, 0x2d, 0x0b, 0xcc, 0x29, 0xfc, 0x7f, 0xd6, 0xd9, 0xca, 0x71, 0x72, 0x36, 0xb0, 0x4b, 0x13, 0xf9, 0x49, 0x8b, 0x7b, 0x88, 0xf8, 0x32, 0x28, 0x4b, 0x82, 0x38, 0x44, 0xd0, 0x01, 0x99, 0x00, 0x69, 0x13, 0xf0, 0x38, 0xa0, 0x39, 0x28, 0x3f, 0x0d, 0xef, 0xa7, 0xdf, 0x02, 0x54, 0x11, 0x94, 0x4d, 0x41, 0xcf, 0x3a, 0xd0, 0xa5, 0x12, 0xba, 0x77, 0x7c, 0x12, 0x22, 0x14, 0x01, 0x23, 0x40, 0x70, 0x8e, 0x50, 0x28, 0x00, 0x22, 0x82, 0x65, 0x59, 0x00, 0xe3, 0xe7, 0xd3, 0xe8, 0xd8, 0xf8, 0x38, 0x32, 0xd9, 0x2c, 0x88, 0x80, 0x42, 0xa1, 0x80, 0xc3, 0x87, 0x0e, 0x21, 0x9d, 0x9e, 0x02, 0x80, 0x31, 0xe5, 0x79, 0x47, 0x95, 0x52, 0xd9, 0xf7, 0x7b, 0x30, 0x42, 0x8e, 0xe3, 0x4c, 0x11, 0xd1, 0x63, 0x21, 0x43, 0x14, 0x4d, 0xf0, 0xfb, 0x99, 0x1b, 0x5c, 0x0e, 0xe6, 0xb1, 0x4a, 0x69, 0x21, 0x2a, 0x8a, 0x2b, 0x0e, 0x18, 0x1c, 0x22, 0x5c, 0x02, 0xd9, 0x47, 0x41, 0x8a, 0x00, 0x97, 0x40, 0x2c, 0x0a, 0x5e, 0xd7, 0x02, 0x32, 0x7c, 0xd0, 0x5a, 0x83, 0xcd, 0x35, 0x4b, 0xa6, 0x69, 0x82, 0x71, 0x56, 0xe9, 0x19, 0x48, 0x83, 0x18, 0x47, 0x3a, 0x9d, 0xc6, 0xc1, 0xc3, 0x47, 0x90, 0xcf, 0x17, 0xe0, 0x33, 0x4d, 0x9c, 0x1c, 0x1e, 0xc2, 0xa1, 0x43, 0x07, 0xe0, 0x79, 0x9e, 0xed, 0xb9, 0xee, 0x3e, 0xcf, 0x75, 0x8f, 0x11, 0xd1, 0x05, 0x5b, 0xc0, 0x7b, 0xb9, 0x5d, 0xd1, 0xae, 0xeb, 0x9e, 0xdd, 0xbe, 0x2a, 0xf4, 0x7c, 0x4d, 0x95, 0xf9, 0xba, 0xb6, 0x2d, 0x45, 0xca, 0x00, 0x29, 0x09, 0xd2, 0x02, 0x50, 0xac, 0xf2, 0xd0, 0x5c, 0xcb, 0xc5, 0x08, 0x28, 0x31, 0xe8, 0x72, 0x14, 0xa2, 0x6b, 0x2b, 0xc4, 0x65, 0x57, 0x02, 0xa2, 0xf2, 0xb2, 0x14, 0xcd, 0xb5, 0xc5, 0x95, 0xb9, 0xc0, 0xcf, 0x1b, 0xaa, 0x42, 0xa1, 0x80, 0x37, 0xde, 0xdc, 0x8b, 0xa3, 0x7d, 0xc7, 0xe1, 0x79, 0x1e, 0xc6, 0xc7, 0xc7, 0xb0, 0xef, 0xad, 0x37, 0x91, 0xcd, 0x66, 0x94, 0xd6, 0xaa, 0xcf, 0x75, 0xec, 0xdd, 0x4a, 0xa9, 0xa1, 0x39, 0x37, 0xfd, 0x40, 0x46, 0x63, 0xfa, 0x9a, 0x55, 0xd1, 0x19, 0x83, 0x89, 0xc3, 0x4e, 0x91, 0xb9, 0x22, 0xa8, 0x24, 0xb4, 0x04, 0xd4, 0xdc, 0xe9, 0x6b, 0x06, 0x52, 0x0c, 0x70, 0x01, 0x9d, 0x01, 0xf2, 0xf9, 0x10, 0x7c, 0xdd, 0x1f, 0x86, 0xff, 0xea, 0x9d, 0xe0, 0x55, 0xf1, 0xf3, 0x87, 0x46, 0x44, 0xe7, 0x5a, 0x45, 0x08, 0xce, 0xa0, 0xb5, 0xc6, 0xf4, 0xf4, 0x2c, 0x5e, 0xdb, 0xb3, 0x07, 0x3f, 0x7e, 0xf1, 0x65, 0xe4, 0xb2, 0x39, 0xe4, 0x72, 0x59, 0x1c, 0x3f, 0x76, 0x04, 0xe9, 0xa9, 0x29, 0xa5, 0x94, 0x1e, 0xb4, 0xcb, 0xe5, 0x5d, 0x8e, 0xe3, 0xbc, 0x4e, 0x44, 0xd3, 0x3f, 0x8f, 0x4f, 0x1f, 0xc0, 0x6c, 0xf0, 0xad, 0xc1, 0xbc, 0x13, 0x34, 0x22, 0x87, 0x92, 0x21, 0xdf, 0x84, 0x34, 0x7c, 0x2d, 0x1a, 0x73, 0x4a, 0x6b, 0x06, 0xf2, 0x18, 0x78, 0x89, 0xa1, 0x30, 0xad, 0xb1, 0xef, 0x54, 0x19, 0xaf, 0xcc, 0x00, 0x31, 0x6b, 0x06, 0x2b, 0x82, 0x6f, 0xa3, 0x79, 0xf1, 0x62, 0x54, 0x57, 0x27, 0xe0, 0xf3, 0xf9, 0xce, 0xdf, 0x20, 0xbb, 0xae, 0x8b, 0xd9, 0x4c, 0x06, 0x27, 0x07, 0x06, 0xb1, 0x77, 0xdf, 0xcf, 0xb0, 0xff, 0xc0, 0x41, 0xe4, 0x73, 0x59, 0xe4, 0x32, 0xb3, 0x48, 0x8d, 0x8f, 0x23, 0x9f, 0xcf, 0x79, 0x4a, 0xa9, 0x7e, 0xbb, 0x5c, 0x7a, 0xd2, 0x2e, 0x95, 0x9e, 0x22, 0xe0, 0x34, 0x00, 0xf7, 0x3d, 0xcd, 0xf2, 0xe6, 0xe3, 0x56, 0xe5, 0xe9, 0x2f, 0x76, 0x35, 0x77, 0xd4, 0x05, 0xfe, 0xbe, 0x3a, 0x2a, 0x6e, 0x27, 0xa1, 0x19, 0x29, 0x06, 0x56, 0x16, 0xe4, 0xe5, 0xa0, 0x52, 0x13, 0xee, 0xf4, 0x73, 0xc7, 0xb2, 0xe9, 0xc7, 0x8e, 0xe7, 0xe2, 0x03, 0x59, 0x2f, 0x66, 0xf8, 0xfc, 0x32, 0x16, 0x8b, 0xb1, 0xba, 0xba, 0x5a, 0x56, 0x5f, 0x57, 0x8f, 0x68, 0x34, 0x8a, 0x60, 0x28, 0x08, 0xd2, 0x84, 0x5c, 0xa1, 0x88, 0x74, 0x7a, 0x0a, 0x76, 0x36, 0x0d, 0x9f, 0x9b, 0x03, 0x39, 0x36, 0x4e, 0x4e, 0x64, 0x30, 0x92, 0xce, 0x6a, 0xd7, 0x75, 0x67, 0x3c, 0xcf, 0x7b, 0xdb, 0xb1, 0xed, 0xe7, 0x5d, 0xc7, 0xde, 0x4d, 0x44, 0xfd, 0x00, 0xf2, 0x78, 0x8f, 0x2f, 0x51, 0xcc, 0xcb, 0x74, 0xf8, 0x85, 0xc3, 0xb3, 0x93, 0xd0, 0xec, 0x29, 0x13, 0xc1, 0xb5, 0x41, 0x53, 0x34, 0x95, 0x8a, 0x5a, 0x4f, 0x4e, 0xd9, 0xe9, 0x43, 0xc3, 0x85, 0xbe, 0x97, 0xfb, 0x67, 0xf7, 0xbe, 0x3a, 0x94, 0x1b, 0x18, 0xca, 0xab, 0x30, 0x17, 0x72, 0x99, 0xb0, 0xcb, 0x6d, 0xb9, 0x5c, 0xb6, 0x79, 0x74, 0x6c, 0x24, 0x21, 0x85, 0xf4, 0x0b, 0xc1, 0xa5, 0x10, 0x42, 0x06, 0x4c, 0xc1, 0x9b, 0xe3, 0x7e, 0xf4, 0xb6, 0xc7, 0xb0, 0x61, 0x7d, 0x02, 0x2d, 0x75, 0x71, 0x20, 0x97, 0x46, 0xdf, 0x51, 0x43, 0xff, 0xe0, 0xa0, 0x6f, 0x78, 0xcf, 0x50, 0xf9, 0x99, 0x54, 0xa1, 0xbc, 0xdb, 0x73, 0x9c, 0x03, 0x44, 0x34, 0x06, 0xa0, 0x84, 0x79, 0x78, 0x83, 0x64, 0x5e, 0x00, 0x7c, 0xf3, 0xc5, 0xc9, 0x72, 0x6a, 0xc6, 0xd9, 0xbd, 0xb6, 0x29, 0x14, 0xf2, 0x4b, 0xb1, 0x7e, 0xf4, 0xac, 0x5d, 0xda, 0x3f, 0x9c, 0x1f, 0x3c, 0x3d, 0x5d, 0xee, 0x1f, 0x9d, 0xb5, 0x07, 0x72, 0xb6, 0x3a, 0xcb, 0x18, 0x63, 0x9c, 0x8b, 0x18, 0xe3, 0xac, 0x86, 0x33, 0xd6, 0x28, 0x04, 0x6f, 0x0e, 0x86, 0xcc, 0xd6, 0xa6, 0x44, 0x74, 0xe5, 0xaa, 0xf6, 0x86, 0xce, 0x8d, 0xdd, 0xed, 0xb1, 0x35, 0xdd, 0x8b, 0x45, 0x43, 0x93, 0x0f, 0x56, 0x30, 0x07, 0xae, 0x4e, 0x01, 0xc5, 0x29, 0xb4, 0x76, 0xcc, 0xf0, 0x0d, 0xab, 0xfc, 0x89, 0xb1, 0xd3, 0xc9, 0xa6, 0xb3, 0x53, 0x12, 0xbe, 0xb2, 0xbf, 0x30, 0x5b, 0x50, 0xce, 0x9d, 0xcf, 0x1c, 0x9c, 0x97, 0xd7, 0x67, 0xe6, 0x6d, 0xd2, 0x12, 0xb6, 0x84, 0x88, 0x05, 0x64, 0x54, 0x69, 0x24, 0x8b, 0xb6, 0x62, 0x79, 0x47, 0xe5, 0x1c, 0x8f, 0x32, 0x73, 0x27, 0x75, 0xae, 0xa6, 0x60, 0x2b, 0x1a, 0x0d, 0xe3, 0xde, 0x1b, 0x96, 0x25, 0x16, 0x37, 0x77, 0xac, 0xab, 0x5d, 0xd4, 0x7e, 0x43, 0x4d, 0xe3, 0x92, 0xab, 0x22, 0xb5, 0x8d, 0x4d, 0x86, 0xa5, 0x4d, 0xa8, 0x31, 0x30, 0x36, 0x02, 0x38, 0xc7, 0x81, 0xf2, 0x61, 0xe8, 0xfc, 0x04, 0x50, 0xf6, 0xc0, 0x18, 0x81, 0xca, 0x86, 0x6b, 0x8f, 0x87, 0xc7, 0xcb, 0xc3, 0xb1, 0xa7, 0xb3, 0x63, 0xa1, 0x47, 0x8b, 0x36, 0xf6, 0xf5, 0x3c, 0xfc, 0x5a, 0xee, 0xa2, 0x01, 0xf0, 0x0b, 0xf2, 0xf8, 0x9c, 0x69, 0xfe, 0x4a, 0x64, 0x3e, 0xfb, 0xd0, 0x3a, 0xc9, 0xb4, 0xee, 0xf4, 0x87, 0xea, 0x6e, 0x33, 0x6a, 0x7b, 0x6f, 0xe6, 0xd1, 0xb6, 0x0e, 0x52, 0x64, 0x3a, 0x33, 0xc3, 0xcc, 0x9b, 0x1a, 0x00, 0xcc, 0x02, 0x8c, 0xc5, 0x05, 0x30, 0x75, 0x12, 0x7a, 0x32, 0x0b, 0x77, 0xb0, 0x0a, 0xf6, 0xac, 0x9f, 0xb8, 0xcf, 0x81, 0x19, 0x29, 0x32, 0x19, 0x70, 0xa0, 0xc6, 0x63, 0x6e, 0xe1, 0x44, 0x75, 0xdf, 0x6c, 0x59, 0xfd, 0x4b, 0xff, 0x4c, 0xe6, 0x91, 0x9b, 0x9e, 0x3a, 0x92, 0xff, 0xc0, 0x5d, 0xe0, 0x97, 0x06, 0x3c, 0xbf, 0xb6, 0x82, 0x3c, 0xfd, 0xad, 0x6e, 0xe6, 0x68, 0xb5, 0x44, 0x42, 0x3c, 0x90, 0xcb, 0xe5, 0x3e, 0xe4, 0x16, 0x0f, 0xf2, 0xcc, 0xec, 0xde, 0xd4, 0x4c, 0x7a, 0x3a, 0x93, 0x99, 0xc9, 0xe7, 0xab, 0x04, 0x0f, 0x74, 0xb4, 0x86, 0x96, 0x06, 0x3d, 0x3b, 0x48, 0x25, 0xd0, 0xcc, 0x60, 0x32, 0x7f, 0x72, 0x80, 0x0d, 0x8d, 0x4d, 0xbb, 0x29, 0x41, 0x5c, 0x45, 0x7c, 0x91, 0x40, 0x55, 0x80, 0xc2, 0x01, 0x61, 0x84, 0xfc, 0xae, 0x97, 0x9c, 0x2c, 0xd8, 0x5b, 0xf6, 0x4e, 0xe4, 0x5f, 0x01, 0x70, 0xe2, 0xbd, 0xc4, 0x82, 0xf7, 0xed, 0x1f, 0x26, 0x8e, 0x8d, 0x16, 0xe0, 0xb9, 0x4c, 0x65, 0x72, 0xe8, 0xeb, 0x1f, 0x49, 0xe5, 0x46, 0xce, 0x1e, 0xcb, 0x67, 0xf2, 0x5e, 0x3a, 0x5b, 0xd4, 0xd3, 0x99, 0x92, 0x9e, 0xed, 0xaa, 0x0b, 0x56, 0x7d, 0x8a, 0x89, 0x3f, 0x6c, 0x2f, 0xf8, 0x37, 0x0f, 0xa4, 0x02, 0xc3, 0x4f, 0xbc, 0x9d, 0x7e, 0xe5, 0xcd, 0xe1, 0xec, 0xbe, 0x33, 0x39, 0xe7, 0xb4, 0x64, 0x28, 0x45, 0x0d, 0xc3, 0xaa, 0x32, 0x8c, 0x48, 0xd0, 0x10, 0x11, 0xbf, 0xe4, 0xe1, 0x59, 0xc7, 0x9d, 0x3c, 0x3e, 0x5d, 0xf0, 0xe6, 0x2c, 0xee, 0x82, 0xaf, 0xc7, 0xff, 0x17, 0xf0, 0x82, 0x8d, 0x5e, 0x66, 0xac, 0x95, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; tucnak2-2.48/src/txts.c0000644000175000017500000000051311567373656011716 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "txts.inc" tucnak2-2.48/src/mingw.c0000644000175000017500000000413111567373656012035 00000000000000/* Tucnak - VHF contest log Functions for mingw32 Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #ifdef __MINGW32__ MUTEX_DEFINE(strerror_r); MUTEX_DEFINE(strtok_r); MUTEX_DEFINE(gmtime_r); FILE *mingw_stderr; int init_mingw(void){ WSADATA wsaData; mingw_stderr = fopen("_stderr", "wt"); if (!mingw_stderr) internal_("Can't open file _stderr"); MessageBox(NULL, "Hello World, I'm Tucnak compiled under mingw", "Info", MB_OK); MUTEX_INIT(strerror_r); MUTEX_INIT(strtok_r); MUTEX_INIT(gmtime_r); WSAStartup(MAKEWORD(2, 0), &wsaData); } /*int WINAPI WinMain1(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ char **items; int argc; char *argv[100]; init_mingw(); items = g_strsplit(lpCmdLine, " ", 0); argv[0]="tucnak.exe"; for (argc=1; items[argc-1] != 0; argc++){ argv[argc] = items[argc-1]; } main(argc, argv); g_strfreev(items); } */ char *strerror_r(int err, char *errstr, int size){ MUTEX_LOCK(strerror_r); safe_strncpy(errstr, strerror(err), size); MUTEX_UNLOCK(strerror_r); return errstr; } char *strtok_r(char *str, const char *delim, char **saveptr){ char *c; MUTEX_LOCK(strtok_r); c = strtok(str, delim); MUTEX_UNLOCK(strtok_r); return c; } struct tm *gmtime_r(const time_t *timep, struct tm *result){ struct tm *tm; MUTEX_LOCK(gmtime_r); tm = gmtime(timep); memcpy(result, tm, sizeof(struct tm)); MUTEX_UNLOCK(gmtime_r); return result; } time_t timegm(struct tm *tm){ internal_("mingw timegm() not implemented"); } int setenv(const char *name, const char *value, int overwrite){ char buf[1024]; snprintf(buf, 1023, "%s=%s", name, value); buf[1023] = '\0'; putenv(buf); return 0; } void disable_screensaver(void){ } /* socket */ char *sock_strerror_r(int err_no, char *buf, int size){ snprintf(buf, size, "Winsock error %d", err_no); return buf; } #endif tucnak2-2.48/src/tregex.c0000644000175000017500000000430711567373656012217 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" /* returns zero if matching */ int regcmp(char *string, char *regex){ regex_t preg; int ret; ret = regcomp(&preg, regex, REG_EXTENDED | REG_NOSUB); if (ret) internal_("regcomp failed"); ret = regexec(&preg, string, 0, 0, 0); regfree(&preg); return ret; } int regcmpi(char *string, char *regex){ regex_t preg; int ret; ret = regcomp(&preg, regex, REG_EXTENDED | REG_NOSUB | REG_ICASE); if (ret) internal_("regcomp failed"); ret = regexec(&preg, string, 0, 0, 0); regfree(&preg); return ret; } /* returns zero if matching */ #ifdef LEAK_DEBUG_LIST int debug_regmatch(char *file, int line, char *string, char *regex, ...){ #else int regmatch(char *string, char *regex, ...){ #endif regex_t preg; regmatch_t match[MAX_MATCHES]; va_list ap; int ret,i; char **ppc; /* dbg("regmatch('%s','%s')\n", string, regex);*/ ret = regcomp(&preg, regex, REG_EXTENDED); if (ret) internal_("regcomp failed"); ret = regexec(&preg, string, MAX_MATCHES, match, 0); regfree(&preg); if (ret) return ret; /* dbg("regmatch '%s'~=/%s/; \n",string,regex);*/ va_start(ap,regex); for (i=0; i This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" char *keys[MAX_CQ]={"F5", "F6", "F7", "F8", "F11", "F12"}; struct menu_item no_cq_defined_menu[] = { {CTEXT(T_NO_CQ), "", M_BAR, NULL, {NULL}, 0, 0}, {NULL, NULL, 0, NULL, {NULL}, 0, 0}, }; /************************** CW *******************************/ char cw_str[MAX_STR_LEN], cw_speed_str[EQSO_LEN]; int cw_repeat; char cw_ts_str[EQSO_LEN]; int cw_allowifundef; void refresh_cq_cw(void *xxx){ struct cq *cq; cq = (struct cq *)xxx; STORE_STR(cq, cw_str); cq->cw_speed = atoi(cw_speed_str); cq->cw_repeat = cw_repeat; cq->cw_ts = atoi(cw_ts_str); cq->cw_allowifundef = cw_allowifundef; } char *cq_cw_msg[] = { CTEXT(T_TEXT), CTEXT(T_SPEED), CTEXT(T_REPEAT), CTEXT(T_DELAY), CTEXT(T_ALLOW_UNDEF), "", /* OK */ "", /* Cancel */ }; void cq_cw_fn(struct dialog_data *dlg) { struct terminal *term = dlg->win->term; int max = 0, min = 0; int w, rw; int y = -1; max_group_width(term, cq_cw_msg + 0, dlg->items + 0, 1, &max); min_group_width(term, cq_cw_msg + 0, dlg->items + 0, 1, &min); max_group_width(term, cq_cw_msg + 1, dlg->items + 1, 1, &max); min_group_width(term, cq_cw_msg + 1, dlg->items + 1, 1, &min); max_group_width(term, cq_cw_msg + 2, dlg->items + 2, 1, &max); min_group_width(term, cq_cw_msg + 2, dlg->items + 2, 1, &min); max_group_width(term, cq_cw_msg + 3, dlg->items + 2, 1, &max); min_group_width(term, cq_cw_msg + 3, dlg->items + 2, 1, &min); max_group_width(term, cq_cw_msg + 4, dlg->items + 2, 1, &max); min_group_width(term, cq_cw_msg + 4, dlg->items + 2, 1, &min); max_buttons_width(term, dlg->items + 5, 2, &max); min_buttons_width(term, dlg->items + 5, 2, &min); w = dlg->win->term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > dlg->win->term->x - 2 * DIALOG_LB - 8 ) w = dlg->win->term->x - 2 * DIALOG_LB - 8; if (w < 1) w = 1; rw = 0; y ++; dlg_format_group(NULL, term, cq_cw_msg + 0, dlg->items + 0, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, cq_cw_msg + 1, dlg->items + 1, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, cq_cw_msg + 2, dlg->items + 2, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, cq_cw_msg + 3, dlg->items + 3, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, cq_cw_msg + 4, dlg->items + 4, 1, 0, &y, w, &rw); y++; dlg_format_buttons(NULL, term, dlg->items + 5, 2, 0, &y, w, &rw, AL_LEFT); w = rw; dlg->xw = w + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB; y++; dlg_format_group(term, term, cq_cw_msg + 0, dlg->items + 0, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, cq_cw_msg + 1, dlg->items + 1, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, cq_cw_msg + 2, dlg->items + 2, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, cq_cw_msg + 3, dlg->items + 3, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, cq_cw_msg + 4, dlg->items + 4, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); y++; dlg_format_buttons(term, term, dlg->items + 5, 2, dlg->x + DIALOG_LB, &y, w, NULL, AL_LEFT); } void cq_cw(cba_t cba){ struct dialog *d; int i; int no; struct cq *cq; no = (int)GETCBA(cba, int_); cq = g_ptr_array_index(cfg->cqs, no); safe_strncpy0(cw_str, cq->cw_str, MAX_STR_LEN); g_snprintf(cw_speed_str, EQSO_LEN, "%d", cq->cw_speed); cw_repeat = cq->cw_repeat; g_snprintf(cw_ts_str, EQSO_LEN, "%d", cq->cw_ts); cw_allowifundef = cq->cw_allowifundef; if (!(d = mem_alloc(sizeof(struct dialog) + 55 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 55 * sizeof(struct dialog_item)); d->title = VTEXT(T_CW_CQ); d->fn = cq_cw_fn; d->refresh = (void (*)(void *))refresh_cq_cw; d->refresh_data = (void *)cq; d->items[i=0].type = D_FIELD; /* 0 */ d->items[i].dlen = MAX_STR_LEN; d->items[i].data = cw_str; d->items[i].maxl = 60; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = cw_speed_str; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = cfg->cwda_maxwpm; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&cw_repeat; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = cw_ts_str; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 300; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&cw_allowifundef; d->items[++i].type = D_BUTTON; /* 5 */ d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } void menu_cq_cw(cba_t cba){ int i; char *c; struct menu_item *mi = NULL; struct cq *cq; char example[40]; for (i=0; icqs->len; i++){ cq = (struct cq *) g_ptr_array_index(cfg->cqs, i); safe_strncpy0(example, cq->cw_str, 40); c = g_strdup_printf(VTEXT(T_CW_DSCS), i, keys[i], cq->cw_repeat?'R':' ', example); if (!mi) if (!(mi = new_menu(3))) return; add_to_menu(&mi, stracpy(c), "", "", MENU_FUNC cq_cw, (cba_t)i, 0); g_free(c); } if (i) do_menu(mi, CBA0); else do_menu(no_cq_defined_menu, CBA0); } /*********************** SSB ****************************/ char ssb_file[MAX_STR_LEN]; int ssb_repeat; char ssb_ts_str[EQSO_LEN]; void refresh_cq_ssb(void *xxx){ struct cq *cq; cq = (struct cq *)xxx; STORE_STR(cq, ssb_file); cq->ssb_repeat = ssb_repeat; cq->ssb_ts = atoi(ssb_ts_str); } char *cq_ssb_msg[] = { CTEXT(T_FILENAME), CTEXT(T_REPEAT), CTEXT(T_DELAY), "", /* OK */ "", /* Cancel */ }; void cq_ssb_fn(struct dialog_data *dlg) { struct terminal *term = dlg->win->term; int max = 0, min = 0; int w, rw; int y = -1; max_group_width(term, cq_ssb_msg + 0, dlg->items + 0, 1, &max); min_group_width(term, cq_ssb_msg + 0, dlg->items + 0, 1, &min); max_group_width(term, cq_ssb_msg + 1, dlg->items + 1, 1, &max); min_group_width(term, cq_ssb_msg + 1, dlg->items + 1, 1, &min); max_group_width(term, cq_ssb_msg + 2, dlg->items + 2, 1, &max); min_group_width(term, cq_ssb_msg + 2, dlg->items + 2, 1, &min); max_buttons_width(term, dlg->items + 3, 2, &max); min_buttons_width(term, dlg->items + 3, 2, &min); w = dlg->win->term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > dlg->win->term->x - 2 * DIALOG_LB - 8 ) w = dlg->win->term->x - 2 * DIALOG_LB - 8; if (w < 1) w = 1; rw = 0; y ++; dlg_format_group(NULL, term, cq_ssb_msg + 0, dlg->items + 0, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, cq_ssb_msg + 1, dlg->items + 1, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, cq_ssb_msg + 2, dlg->items + 2, 1, 0, &y, w, &rw); y++; dlg_format_buttons(NULL, term, dlg->items + 3, 2, 0, &y, w, &rw, AL_LEFT); w = rw; dlg->xw = w + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB; y++; dlg_format_group(term, term, cq_ssb_msg + 0, dlg->items + 0, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, cq_ssb_msg + 1, dlg->items + 1, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, cq_ssb_msg + 2, dlg->items + 2, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); y++; dlg_format_buttons(term, term, dlg->items + 3, 2, dlg->x + DIALOG_LB, &y, w, NULL, AL_LEFT); } void cq_ssb(cba_t cba){ struct dialog *d; int i; int no; struct cq *cq; no = (int)GETCBA(cba, int_); cq = g_ptr_array_index(cfg->cqs, no); safe_strncpy0(ssb_file, cq->ssb_file, MAX_STR_LEN); ssb_repeat = cq->ssb_repeat; g_snprintf(ssb_ts_str, EQSO_LEN, "%d", cq->ssb_ts); if (!(d = mem_alloc(sizeof(struct dialog) + 55 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 55 * sizeof(struct dialog_item)); d->title = VTEXT(T_SSB_CQ); d->fn = cq_ssb_fn; d->refresh = (void (*)(void *))refresh_cq_ssb; d->refresh_data = (void *)cq; d->items[i=0].type = D_FIELD; /* 0 */ d->items[i].dlen = MAX_STR_LEN; d->items[i].data = ssb_file; d->items[i].maxl = 60; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&ssb_repeat; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = ssb_ts_str; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 300; d->items[++i].type = D_BUTTON; /* 3 */ d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } void menu_cq_ssb(cba_t cba){ int i; char *c; struct menu_item *mi = NULL; struct cq *cq; char example[20]; for (i=0; icqs->len; i++){ cq = (struct cq *) g_ptr_array_index(cfg->cqs, i); safe_strncpy0(example, cq->ssb_file, 20); c = g_strdup_printf(VTEXT(T_SSB_DSCS), i, keys[i], cq->ssb_repeat?'R':' ', example); if (!mi) if (!(mi = new_menu(3))) return; add_to_menu(&mi, stracpy(c), "", "", MENU_FUNC cq_ssb, (cba_t)i, 0); g_free(c); } if (i) do_menu(mi, CBA0); else do_menu(no_cq_defined_menu, CBA0); } /******************* CWDAEMON **********************************/ int cwda_type; char cwda_device[MAX_STR_LEN]; char cwda_hostname[MAX_STR_LEN]; char udp_port_str[EQSO_LEN]; char speed_str[EQSO_LEN]; char weight_str[EQSO_LEN]; char minwpm_str[EQSO_LEN], maxwpm_str[EQSO_LEN]; int cwda_spk; char leadin_str[EQSO_LEN]; char autgive_str[EQSO_LEN]; void refresh_cwda(void *xxx){ cfg->cwda_type=cwda_type; STORE_STR(cfg, cwda_device); STORE_STR(cfg, cwda_hostname); cfg->cwda_udp_port = atoi(udp_port_str); cfg->cwda_speed = atoi(speed_str); cfg->cwda_weight = atoi(weight_str); if (cfg->cwda_weight < 30) cfg->cwda_weight = 30; if (cfg->cwda_weight > 70) cfg->cwda_weight = 70; cfg->cwda_minwpm = atoi(minwpm_str); cfg->cwda_maxwpm = atoi(maxwpm_str); cfg->cwda_spk = cwda_spk; cfg->cwda_leadin = atoi(leadin_str); cfg->cwda_autgive = atoi(autgive_str); free_cwdaemon(cwda); cwda=init_cwdaemon(); } void menu_cwda(cba_t cba){ struct dialog *d; int i; cwda_type=cfg->cwda_type; safe_strncpy0(cwda_device, cfg->cwda_device, MAX_STR_LEN); safe_strncpy0(cwda_hostname, cfg->cwda_hostname, MAX_STR_LEN); g_snprintf(udp_port_str, EQSO_LEN, "%d", cfg->cwda_udp_port); g_snprintf(speed_str, EQSO_LEN, "%d", cfg->cwda_speed); if (cfg->cwda_weight < 30 || cfg->cwda_weight > 70) cfg->cwda_weight = 50; g_snprintf(weight_str, EQSO_LEN, "%d", cfg->cwda_weight); g_snprintf(minwpm_str, EQSO_LEN, "%d", cfg->cwda_minwpm); g_snprintf(maxwpm_str, EQSO_LEN, "%d", cfg->cwda_maxwpm); cwda_spk=cfg->cwda_spk; g_snprintf(leadin_str, EQSO_LEN, "%d", cfg->cwda_leadin); g_snprintf(autgive_str, EQSO_LEN, "%d", cfg->cwda_autgive); if (!(d = mem_alloc(sizeof(struct dialog) + 55 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 55 * sizeof(struct dialog_item)); d->title = VTEXT(T_CW_DAEMON); // d->fn = cwda_fn; d->fn = dlg_pf_fn; d->refresh = (void (*)(void *))refresh_cwda; d->refresh_data = NULL; d->y0 = 1; d->items[i=0].type = D_CHECKBOX; /* 0 */ d->items[i].gid = 1; d->items[i].gnum = CWD_NONE; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&cwda_type; d->items[i].msg = "None"; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = CWD_PARPORT; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&cwda_type; d->items[i].msg = "parport"; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = CWD_TTYS; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&cwda_type; d->items[i].msg = "ttys"; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = CWD_DAVAC4; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&cwda_type; d->items[i].msg = "Davac4"; d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = CWD_CWD; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&cwda_type; d->items[i].msg = "cwdaemon"; d->items[++i].type = D_CHECKBOX; /* 5 */ d->items[i].gid = 1; d->items[i].gnum = CWD_WINKEY; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&cwda_type; d->items[i].msg = "winkey"; d->items[++i].type = D_CHECKBOX; /* 6 */ d->items[i].gid = 1; d->items[i].gnum = CWD_WINKEY4; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&cwda_type; d->items[i].msg = "winkey+davac4"; d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = cwda_device; d->items[i].maxl = 20; d->items[i].msg = CTEXT(T_DEVICE); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = cwda_hostname; d->items[i].maxl = 20; d->items[i].msg = CTEXT(T_HOSTNAME); d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = udp_port_str; d->items[i].maxl = 6; d->items[i].fn = check_number; d->items[i].gid = 1; d->items[i].gnum = 65535; d->items[i].msg = CTEXT(T_UDPPORT); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = speed_str; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = cfg->cwda_maxwpm; d->items[i].msg = CTEXT(T_INIT_SPEED); d->items[++i].type = D_FIELD; /* 10 */ d->items[i].dlen = EQSO_LEN; d->items[i].data = weight_str; d->items[i].maxl = 3; d->items[i].msg = CTEXT(T_INIT_WEIGHT); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = minwpm_str; d->items[i].maxl = 5; d->items[i].fn = check_number; d->items[i].gid = 1; d->items[i].gnum = 99; d->items[i].msg = CTEXT(T_WPMFROM); d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = maxwpm_str; d->items[i].maxl = 5; d->items[i].fn = check_number; d->items[i].gid = 1; d->items[i].gnum = 99; d->items[i].msg = CTEXT(T_WPMTO); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&cwda_spk; d->items[i].msg = CTEXT(T_USE_SPK); d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = leadin_str; d->items[i].maxl = 6; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 10000; d->items[i].msg = CTEXT(T_LEADIN); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; /* 15 */ d->items[i].dlen = EQSO_LEN; d->items[i].data = autgive_str; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 9; d->items[i].msg = CTEXT(T_AUTGIVE); d->items[i].wrap = 2; d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_winkey_opts; d->items[i].text = VTEXT(T_WINKEYOPTS); d->items[i].wrap = 2; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } /*********************** SSBD ****************************/ #ifdef HAVE_SNDFILE #define MAX_RECORD_FORMAT 7 int record_format; /* index 0..MAX_RECORD_FORMAT-1 */ extern char ssbd_format_str[MAX_STR_LEN]; extern char ssbd_oss_src[MAX_STR_LEN]; extern char ssbd_alsa_src[MAX_STR_LEN]; char *record_format_msg[]={ CTEXT(T_PCM8), CTEXT(T_PCM16), CTEXT(T_ULAW), CTEXT(T_ALAW), CTEXT(T_IMAADPCM), CTEXT(T_MSADPCM), CTEXT(T_GSM610) }; int record_formats[]={ SF_FORMAT_WAV | SF_FORMAT_PCM_U8, SF_FORMAT_WAV | SF_FORMAT_PCM_16, SF_FORMAT_WAV | SF_FORMAT_ULAW, SF_FORMAT_WAV | SF_FORMAT_ALAW, SF_FORMAT_WAV | SF_FORMAT_IMA_ADPCM, SF_FORMAT_WAV | SF_FORMAT_MS_ADPCM, SF_FORMAT_WAV | SF_FORMAT_GSM610 }; void record_format_func (cba_t cba){ int active; active=cba.int_; if (active<0 || active>=MAX_RECORD_FORMAT) return; record_format = active; safe_strncpy0(ssbd_format_str,_(CTEXT(T_PCM8+record_format)),MAX_STR_LEN); redraw_later(); } int dlg_record_format(struct dialog_data *dlg, struct dialog_item_data *di){ int i, sel; struct menu_item *mi; if (!(mi = new_menu(1))) return 0; for (i = 0; i < MAX_RECORD_FORMAT; i++) { add_to_menu(&mi, record_format_msg[i], "", "", MENU_FUNC record_format_func, (cba_t)i, 0); } sel = record_format; if (sel < 0) sel = 0; if (sel>=MAX_RECORD_FORMAT) sel=0; do_menu_selected(mi, (cba_t)record_format, sel); return 0; } /* ------------------------ */ void alsa_src_func (cba_t cba){ int i, active; GString *labels; gchar **items; active=cba.int_; labels=g_string_sized_new(100); #ifdef HAVE_ALSA alsa_get_sources(labels); #endif items=g_strsplit(labels->str, ";", 0); for (i=0;items[i]!=NULL;i++);/* dbg("items[%d]=%s\n", i, items[i]);*/ /* dbg("alsa_src_func: active=%d max=%d\n", active, i);*/ dbg("alsa_src_func(%d) labels='%s'\n", active, labels->str); if (active<0 || active>i) goto x; if (active==0) safe_strncpy0(ssbd_alsa_src,VTEXT(T_RECSRC_NONE),MAX_STR_LEN); else safe_strncpy0(ssbd_alsa_src,items[active-1],MAX_STR_LEN); dbg(" ssbd_alsa_src='%s'\n", ssbd_alsa_src); redraw_later(); x:; g_string_free(labels, 1); g_strfreev(items); } int dlg_alsa_src(struct dialog_data *dlg, struct dialog_item_data *di){ int i, sel; struct menu_item *mi; GString *labels; gchar **items; labels=g_string_sized_new(100); #ifdef HAVE_ALSA alsa_get_sources(labels); #endif items=g_strsplit(labels->str, ";", 0); dbg("dlg_alsa_src() labels='%s'\n", labels->str); if (!(mi = new_menu(1))) goto x; add_to_menu(&mi, stracpy(VTEXT(T_RECSRC_NONE)), "", "", MENU_FUNC alsa_src_func, (cba_t)0, 0); sel=0; for (i = 0; items[i]!=NULL; i++) { add_to_menu(&mi, stracpy(items[i]), "", "", MENU_FUNC alsa_src_func, (cba_t)(i+1), 0); if (strcmp(items[i], ssbd_alsa_src)==0) sel=i+1; } dbg(" sel=%d\n", sel); do_menu_selected(mi, CBA0, sel); x:; g_string_free(labels, 1); g_strfreev(items); return 0; } /* ------------------------ */ void oss_src_func (cba_t cba){ int i, active; GString *labels; gchar **items; active=cba.int_; labels=g_string_sized_new(100); #ifdef HAVE_OSS oss_get_sources(labels); #endif items=g_strsplit(labels->str, ";", 0); for (i=0;items[i]!=NULL;i++);/* dbg("items[%d]=%s\n", i, items[i]);*/ dbg("oss_src_func: active=%d max=%d\n", active, i); if (active<0 || active>i) goto x; if (active==0) safe_strncpy0(ssbd_oss_src,VTEXT(T_RECSRC_NONE),MAX_STR_LEN); else safe_strncpy0(ssbd_oss_src,items[active-1],MAX_STR_LEN); redraw_later(); x:; g_string_free(labels, 1); g_strfreev(items); } int dlg_oss_src(struct dialog_data *dlg, struct dialog_item_data *di){ int i, sel; struct menu_item *mi; GString *labels; gchar **items; labels=g_string_sized_new(100); #ifdef HAVE_OSS oss_get_sources(labels); #endif items=g_strsplit(labels->str, ";", 0); dbg("labels='%s'\n", labels->str); if (!(mi = new_menu(1))) goto x; add_to_menu(&mi, stracpy(VTEXT(T_RECSRC_NONE)), "", "", MENU_FUNC oss_src_func, (cba_t)0, 0); sel=0; for (i = 0; items[i]!=NULL; i++) { add_to_menu(&mi, stracpy(items[i]), "", "", MENU_FUNC oss_src_func, (cba_t)(i+1), 0); if (strcmp(items[i], ssbd_oss_src)==0) sel=i+1; } dbg("sel=%d\n", sel); do_menu_selected(mi, CBA0, sel); x:; g_string_free(labels, 1); g_strfreev(items); return 0; } /* ------------------------ */ int ssbd_type; int ssbd_record; char ssbd_maxmin_str[EQSO_LEN], ssbd_diskfree_str[EQSO_LEN]; int ssbd_format; /* 0x100xx */ char ssbd_format_str[MAX_STR_LEN]; char ssbd_channels_str[EQSO_LEN], ssbd_samplerate_str[EQSO_LEN]; char ssbd_plev_str[EQSO_LEN], ssbd_rlev_str[EQSO_LEN]; char ssbd_template[MAX_STR_LEN]; char ssbd_pcm_play[EQSO_LEN], ssbd_pcm_rec[EQSO_LEN]; char ssbd_period_time_str[EQSO_LEN], ssbd_buffer_time_str[EQSO_LEN]; char ssbd_alsa_mixer[EQSO_LEN]; char ssbd_alsa_src[MAX_STR_LEN]; char ssbd_dsp[MAX_STR_LEN]; char ssbd_maxfrag_str[EQSO_LEN]; char ssbd_mixer[MAX_STR_LEN]; char ssbd_oss_src[MAX_STR_LEN]; char ssbd_hostname[MAX_STR_LEN],ssbd_udp_port_str[EQSO_LEN]; void refresh_ssbd(void *xxx){ STORE_INT(cfg, ssbd_type); STORE_INT(cfg, ssbd_record); STORE_SINT(cfg, ssbd_maxmin); STORE_SINT(cfg, ssbd_diskfree); if (record_format<0 || record_format>=MAX_RECORD_FORMAT){ cfg->ssbd_format = SF_FORMAT_WAV | SF_FORMAT_GSM610; }else{ cfg->ssbd_format = record_formats[record_format]; } dbg("refresh_ssbd: record_formats[%d]=0x%x (%s)\n", record_format, cfg->ssbd_format, _(CTEXT(T_PCM8+record_format))); STORE_SINT(cfg, ssbd_channels); STORE_SINT(cfg, ssbd_samplerate); STORE_SINT(cfg, ssbd_plev); STORE_SINT(cfg, ssbd_rlev); STORE_STR(cfg, ssbd_template); STORE_STR(cfg, ssbd_pcm_play); STORE_STR(cfg, ssbd_pcm_rec); STORE_SINT(cfg, ssbd_period_time); STORE_SINT(cfg, ssbd_buffer_time); STORE_STR(cfg, ssbd_alsa_mixer); if (strcmp(ssbd_alsa_src, VTEXT(T_RECSRC_NONE))==0){ strcpy(ssbd_alsa_src, ""); } STORE_STR(cfg, ssbd_alsa_src); dbg("refresh_ssbd: ssbd_alsa_src='%s'\n", cfg->ssbd_alsa_src); STORE_STR(cfg, ssbd_dsp); STORE_SINT(cfg, ssbd_maxfrag); STORE_STR(cfg, ssbd_mixer); if (strcmp(ssbd_oss_src, VTEXT(T_RECSRC_NONE))==0){ strcpy(ssbd_oss_src, ""); } STORE_STR(cfg, ssbd_oss_src); dbg("refresh_ssbd: ssbd_oss_src='%s'\n", cfg->ssbd_oss_src); STORE_STR(cfg, ssbd_hostname); STORE_SINT(cfg, ssbd_udp_port); free_ssbd(ssbd); free_dsp(dsp); dsp=init_dsp(); ssbd=init_ssbd(); } char *ssbd_msg[] = { CTEXT(T_ALSA), /* 0 */ CTEXT(T_OSS), CTEXT(T_SSBD), CTEXT(T_RECORD), CTEXT(T_MAXMIN), CTEXT(T_DISKFREE),/* 5 */ CTEXT(T_FORMAT), CTEXT(T_CHANNELS), CTEXT(T_SAMPLERATE), "Playback volume", "Capture volume", /* 10 */ CTEXT(T_TEMPLATE), CTEXT(T_PCM_PLAY), CTEXT(T_PCM_REC), CTEXT(T_PERIOD), CTEXT(T_BUFFER), /* 15 */ CTEXT(T_ALSA_MIXER), CTEXT(T_CAPTURE), CTEXT(T_DSP), CTEXT(T_MAXFRAG), CTEXT(T_MIXER), /* 20 */ CTEXT(T_RECSRC), CTEXT(T_SSBD_HOSTNAME), CTEXT(T_UDPPORT), "", /* OK */ /* 24 */ "", /* Cancel */ }; /*CTEXT(T_PCM8), CTEXT(T_PCM16), CTEXT(T_ULAW), CTEXT(T_ALAW), CTEXT(T_IMAADPCM), CTEXT(T_MSADPCM), CTEXT(T_GSM610), CTEXT(T_RECSRC_NONE), CTEXT(T_RECSRC_MIC), CTEXT(T_RECSRC_LINE), */ void ssbd_fn(struct dialog_data *dlg) { struct terminal *term = dlg->win->term; int max = 0, min = 0; int w, rw; int y = -1; max_group_width(term, ssbd_msg + 0, dlg->items + 0, 3, &max); min_group_width(term, ssbd_msg + 0, dlg->items + 0, 3, &min); max_group_width(term, ssbd_msg + 3, dlg->items + 3, 4, &max); min_group_width(term, ssbd_msg + 3, dlg->items + 3, 4, &min); max_group_width(term, ssbd_msg + 7, dlg->items + 7, 4, &max); min_group_width(term, ssbd_msg + 7, dlg->items + 7, 4, &min); max_group_width(term, ssbd_msg +11, dlg->items +11, 1, &max); min_group_width(term, ssbd_msg +11, dlg->items +11, 1, &min); max_group_width(term, ssbd_msg +12, dlg->items +12, 4, &max); min_group_width(term, ssbd_msg +12, dlg->items +12, 4, &min); max_group_width(term, ssbd_msg +16, dlg->items +16, 2, &max); min_group_width(term, ssbd_msg +16, dlg->items +16, 2, &min); max_group_width(term, ssbd_msg +18, dlg->items +18, 2, &max); min_group_width(term, ssbd_msg +18, dlg->items +18, 2, &min); max_group_width(term, ssbd_msg +20, dlg->items +20, 2, &max); min_group_width(term, ssbd_msg +20, dlg->items +20, 2, &min); max_group_width(term, ssbd_msg +22, dlg->items +22, 2, &max); min_group_width(term, ssbd_msg +22, dlg->items +22, 2, &min); max_buttons_width(term, dlg->items +24, 2, &max); min_buttons_width(term, dlg->items +24, 2, &min); w = dlg->win->term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > dlg->win->term->x - 2 * DIALOG_LB - 8 ) w = dlg->win->term->x - 2 * DIALOG_LB - 8; if (w < 1) w = 1; rw = 0; y ++; dlg_format_group1(NULL, term, ssbd_msg + 0, dlg->items + 0, 3, 0, &y, w, &rw); dlg_format_group1(NULL, term, ssbd_msg + 3, dlg->items + 3, 4, 0, &y, w, &rw); dlg_format_group1(NULL, term, ssbd_msg + 7, dlg->items + 7, 4, 0, &y, w, &rw); dlg_format_group1(NULL, term, ssbd_msg +11, dlg->items +11, 1, 0, &y, w, &rw); y++; dlg_format_group1(NULL, term, ssbd_msg +12, dlg->items +12, 4, 0, &y, w, &rw); dlg_format_group1(NULL, term, ssbd_msg +16, dlg->items +16, 2, 0, &y, w, &rw); y++; dlg_format_group1(NULL, term, ssbd_msg +18, dlg->items +18, 2, 0, &y, w, &rw); dlg_format_group1(NULL, term, ssbd_msg +20, dlg->items +20, 2, 0, &y, w, &rw); y++; dlg_format_group1(NULL, term, ssbd_msg +22, dlg->items +22, 2, 0, &y, w, &rw); y++; dlg_format_buttons(NULL, term, dlg->items +24, 2, 0, &y, w, &rw, AL_LEFT); w = rw; dlg->xw = w + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB; y++; dlg_format_group1(term, term, ssbd_msg + 0, dlg->items + 0, 3, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group1(term, term, ssbd_msg + 3, dlg->items + 3, 4, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group1(term, term, ssbd_msg + 7, dlg->items + 7, 4, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group1(term, term, ssbd_msg +11, dlg->items +11, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); y++; dlg_format_group1(term, term, ssbd_msg +12, dlg->items +12, 4, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group1(term, term, ssbd_msg +16, dlg->items +16, 2, dlg->x + DIALOG_LB, &y, w, AL_LEFT); y++; dlg_format_group1(term, term, ssbd_msg +18, dlg->items +18, 2, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group1(term, term, ssbd_msg +20, dlg->items +20, 2, dlg->x + DIALOG_LB, &y, w, AL_LEFT); y++; dlg_format_group1(term, term, ssbd_msg +22, dlg->items +22, 2, dlg->x + DIALOG_LB, &y, w, AL_LEFT); y++; dlg_format_buttons(term, term, dlg->items + 24, 2, dlg->x + DIALOG_LB, &y, w, NULL, AL_LEFT); } void do_ssbd(void){ struct dialog *d; int i; GString *labels; gchar *c; labels=g_string_sized_new(100); ssbd_type = cfg->ssbd_type; ssbd_record = cfg->ssbd_record; g_snprintf(ssbd_maxmin_str, EQSO_LEN, "%d", cfg->ssbd_maxmin); g_snprintf(ssbd_diskfree_str, EQSO_LEN, "%d", cfg->ssbd_diskfree); ssbd_format=cfg->ssbd_format; record_format=0; for (i=0;issbd_channels); g_snprintf(ssbd_samplerate_str, EQSO_LEN, "%d", cfg->ssbd_samplerate); g_snprintf(ssbd_plev_str, EQSO_LEN, "%d", cfg->ssbd_plev); g_snprintf(ssbd_rlev_str, EQSO_LEN, "%d", cfg->ssbd_rlev); safe_strncpy0(ssbd_template, cfg->ssbd_template, MAX_STR_LEN); safe_strncpy0(ssbd_pcm_play, cfg->ssbd_pcm_play, EQSO_LEN); safe_strncpy0(ssbd_pcm_rec, cfg->ssbd_pcm_rec, EQSO_LEN); g_snprintf(ssbd_period_time_str, EQSO_LEN, "%d", cfg->ssbd_period_time); g_snprintf(ssbd_buffer_time_str, EQSO_LEN, "%d", cfg->ssbd_buffer_time); safe_strncpy0(ssbd_alsa_mixer, cfg->ssbd_alsa_mixer, EQSO_LEN); /* safe_strncpy0(ssbd_alsa_src, cfg->ssbd_alsa_src, MAX_STR_LEN);*/ dbg("do_ssbd: cfg->ssbd_alsa_src='%s'\n", cfg->ssbd_alsa_src); if (cfg->ssbd_alsa_src && strlen(cfg->ssbd_alsa_src)>0){ safe_strncpy0(ssbd_alsa_src,cfg->ssbd_alsa_src,MAX_STR_LEN); }else{ safe_strncpy0(ssbd_alsa_src, VTEXT(T_RECSRC_NONE), MAX_STR_LEN); } dbg("do_ssbd: ssbd_alsa_src='%s'\n", ssbd_alsa_src); safe_strncpy0(ssbd_dsp, cfg->ssbd_dsp, MAX_STR_LEN); g_snprintf(ssbd_maxfrag_str, EQSO_LEN, "%d", cfg->ssbd_maxfrag); safe_strncpy0(ssbd_mixer, cfg->ssbd_mixer, MAX_STR_LEN); dbg("do_ssbd: cfg->ssbd_oss_src='%s'\n", cfg->ssbd_oss_src); if (cfg->ssbd_oss_src){ if (!*cfg->ssbd_oss_src) c=NULL; else c=cfg->ssbd_oss_src; }else{ c=NULL; #ifdef HAVE_OSS c=oss_recsrc2source(cfg->ssbd_recsrc); #endif } dbg("do_ssbd: cfg->ssbd_recsrc=%d label='%s'\n", cfg->ssbd_recsrc, c); if (c){ safe_strncpy0(ssbd_oss_src,c,MAX_STR_LEN); }else{ safe_strncpy0(ssbd_oss_src, VTEXT(T_RECSRC_NONE), MAX_STR_LEN); } safe_strncpy0(ssbd_hostname, cfg->ssbd_hostname, MAX_STR_LEN); g_snprintf(ssbd_udp_port_str, EQSO_LEN, "%d", cfg->ssbd_udp_port); g_string_free(labels, 0); if (!(d = mem_alloc(sizeof(struct dialog) + 55 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 55 * sizeof(struct dialog_item)); d->title = VTEXT(T_AUDIO); d->fn = ssbd_fn; d->refresh = (void (*)(void *))refresh_ssbd; d->items[i=0].type = D_CHECKBOX; /* 0 */ d->items[i].gid = 1; d->items[i].gnum = DSPT_ALSA; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&ssbd_type; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = DSPT_OSS; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&ssbd_type; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = DSPT_SSBD; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&ssbd_type; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&ssbd_record; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = ssbd_maxmin_str; d->items[i].maxl = 6; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 10000; d->items[++i].type = D_FIELD; /* 5 */ d->items[i].dlen = EQSO_LEN; d->items[i].data = ssbd_diskfree_str; d->items[i].maxl = 6; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 10000; d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_record_format; d->items[i].text = ssbd_format_str; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = ssbd_channels_str; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 1; d->items[i].gnum = 8; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = ssbd_samplerate_str; d->items[i].maxl = 6; d->items[i].fn = check_number; d->items[i].gid = 4000; d->items[i].gnum = 180000; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = ssbd_plev_str; d->items[i].maxl = 4; d->items[i].fn = check_number; d->items[i].gid = -1; d->items[i].gnum = 100; d->items[++i].type = D_FIELD; /* 10 */ d->items[i].dlen = EQSO_LEN; d->items[i].data = ssbd_rlev_str; d->items[i].maxl = 4; d->items[i].fn = check_number; d->items[i].gid = -1; d->items[i].gnum = 100; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = ssbd_template; d->items[i].maxl = 30; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = ssbd_pcm_play; d->items[i].maxl = 15; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = ssbd_pcm_rec; d->items[i].maxl = 15; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = ssbd_period_time_str; d->items[i].maxl = 5; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 1000; d->items[++i].type = D_FIELD; /* 15 */ d->items[i].dlen = EQSO_LEN; d->items[i].data = ssbd_buffer_time_str; d->items[i].maxl = 5; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 1000; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = ssbd_alsa_mixer; d->items[i].maxl = 15; d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_alsa_src; d->items[i].text = ssbd_alsa_src; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = ssbd_dsp; d->items[i].maxl = 20; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = ssbd_maxfrag_str; d->items[i].maxl = 5; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 20; d->items[++i].type = D_FIELD; /* 20 */ d->items[i].dlen = MAX_STR_LEN; d->items[i].data = ssbd_mixer; d->items[i].maxl = 20; d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_oss_src; d->items[i].text = ssbd_oss_src; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = ssbd_hostname; d->items[i].maxl = 20; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = ssbd_udp_port_str; d->items[i].maxl = 6; d->items[i].fn = check_number; d->items[i].gid = 1; d->items[i].gnum = 65535; d->items[++i].type = D_BUTTON; /* 24 */ d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } void menu_ssbd(cba_t cba){ do_ssbd(); } #endif //HAVE_SNDFILE /*********************** NETWORK ****************************/ char net_if_ignore[MAX_STR_LEN],net_ip_ignore[MAX_STR_LEN],net_ip_announce[MAX_STR_LEN]; int trace_bcast, trace_sock, trace_recv, trace_send, trace_qsos, trace_sdev; void refresh_net(void *xxx){ STORE_STR(cfg, net_if_ignore); STORE_STR(cfg, net_ip_ignore); STORE_STR(cfg, net_ip_announce); STORE_INT(cfg, trace_bcast); STORE_INT(cfg, trace_sock); STORE_INT(cfg, trace_recv); STORE_INT(cfg, trace_send); STORE_INT(cfg, trace_qsos); STORE_INT(cfg, trace_sdev); free_net_ifaces(net); init_net_ifaces(net); } void do_net(void){ struct dialog *d; int i; safe_strncpy0(net_if_ignore, cfg->net_if_ignore, MAX_STR_LEN); safe_strncpy0(net_ip_ignore, cfg->net_ip_ignore, MAX_STR_LEN); safe_strncpy0(net_ip_announce, cfg->net_ip_announce, MAX_STR_LEN); trace_bcast=cfg->trace_bcast; trace_sock=cfg->trace_sock; trace_recv=cfg->trace_recv; trace_send=cfg->trace_send; trace_qsos=cfg->trace_qsos; if (!(d = mem_alloc(sizeof(struct dialog) + 55 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 55 * sizeof(struct dialog_item)); d->title = VTEXT(T_NETWORK); d->fn = dlg_pf_fn; d->refresh = (void (*)(void *))refresh_net; d->y0 = 1; d->items[i=0].type = D_FIELD; /* 0 */ d->items[i].dlen = MAX_STR_LEN; d->items[i].data = net_if_ignore; d->items[i].maxl = 24; d->items[i].msg = CTEXT(T_IF_IGNORE); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = net_ip_ignore; d->items[i].maxl = 24; d->items[i].msg = CTEXT(T_IP_IGNORE); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = net_ip_announce; d->items[i].maxl = 24; d->items[i].msg = CTEXT(T_IP_ANNOUNCE); d->items[i].wrap = 2; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&trace_bcast; d->items[i].msg = CTEXT(T_TRACE_BCAST); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&trace_sock; d->items[i].msg = CTEXT(T_TRACE_SOCK); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; /* 5 */ d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&trace_recv; d->items[i].msg = CTEXT(T_TRACE_RECV); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&trace_send; d->items[i].msg = CTEXT(T_TRACE_SEND); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&trace_qsos; d->items[i].msg = CTEXT(T_TRACE_QSOS); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&trace_sdev; d->items[i].msg = CTEXT(T_TRACE_SDEV); d->items[i].wrap = 2; d->items[++i].type = D_BUTTON; /* 8 */ d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } void menu_network(cba_t cba){ do_net(); } tucnak2-2.48/src/cordata.inc0000644000175000017500001716361611567373656012706 00000000000000/* Automatically generated by cor2inc.pl */ const struct cpoint cor_tucnakcor[COR_ITEMS] = { {2313,3562,128},{2325,3553,0},{2338,3552,0},{2342,3548,0},{2347,3548,0}, {2350,3547,0},{2353,3550,0},{2358,3550,0},{2363,3550,0},{2372,3552,0},{2375,3550,0}, {2378,3552,0},{2378,3548,0},{2382,3548,0},{2395,3548,0},{2398,3553,0},{2398,3555,0}, {2395,3555,0},{2395,3558,0},{2393,3562,0},{2392,3570,0},{2393,3573,0},{2395,3575,0}, {2393,3578,0},{2390,3580,0},{2392,3582,0},{2400,3573,0},{2402,3562,0},{2410,3557,0}, {2415,3550,0},{2412,3552,0},{2412,3550,0},{2428,3538,0},{2440,3523,0},{2448,3520,0}, {2452,3513,0},{2458,3517,0},{2462,3512,0},{2475,3507,0},{2482,3500,0},{2492,3498,0}, {2495,3495,0},{2500,3493,0},{2513,3485,0},{2535,3473,0},{2538,3470,0},{2548,3467,0}, {2562,3458,0},{2572,3455,0},{2578,3448,0},{2585,3443,0},{2592,3442,0},{2593,3438,0}, {2600,3433,0},{2607,3432,0},{2620,3422,0},{2632,3418,0},{2642,3410,0},{2652,3407,0}, {2662,3402,0},{2665,3393,0},{2673,3393,0},{2675,3395,0},{2683,3395,0},{2685,3397,0}, {2683,3398,0},{2683,3400,0},{2690,3400,0},{2693,3395,0},{2703,3388,0},{2705,3392,0}, {2708,3388,0},{2712,3383,0},{2717,3382,0},{2720,3383,0},{2725,3383,0},{2730,3373,0}, {2732,3370,0},{2743,3367,0},{2747,3363,0},{2748,3363,0},{2753,3355,0},{2758,3355,0}, {2765,3350,0},{2768,3353,0},{2765,3355,0},{2767,3355,0},{2767,3357,0},{2765,3360,0}, {2770,3353,0},{2775,3357,0},{2775,3352,0},{2780,3347,0},{2783,3347,0},{2782,3355,0}, {2778,3357,0},{2780,3358,0},{2778,3358,0},{2785,3358,0},{2798,3348,0},{2803,3342,0}, {2803,3337,0},{2805,3337,0},{2805,3333,0},{2808,3333,0},{2813,3328,0},{2815,3325,0}, {2817,3323,0},{2818,3322,0},{2827,3315,0},{2828,3312,0},{2835,3310,0},{2840,3305,0}, {2848,3300,0},{2850,3297,0},{2855,3293,0},{2857,3287,0},{2873,3283,0},{2877,3280,0}, {2880,3278,0},{2880,3275,0},{2887,3268,0},{2893,3267,0},{2898,3262,0},{2905,3262,0}, {2905,3265,0},{2907,3263,0},{2910,3267,0},{2933,3260,0},{2938,3257,0},{2948,3245,0}, {2953,3237,0},{2960,3233,0},{2963,3237,0},{2968,3237,0},{2977,3242,0},{2987,3252,0}, {2987,3248,0},{2990,3247,0},{2993,3247,0},{2997,3253,0},{2995,3255,0},{2993,3257,0}, {2998,3255,0},{3000,3258,0},{2998,3258,0},{2997,3257,0},{2993,3258,0},{2993,3257,0}, {2987,3263,0},{2982,3260,0},{2973,3270,0},{2960,3268,0},{2958,3272,0},{2948,3273,0}, {2945,3272,0},{2948,3273,0},{2945,3273,0},{2940,3282,0},{2932,3283,0},{2930,3287,0}, {2923,3288,0},{2920,3295,0},{2908,3307,0},{2905,3310,0},{2900,3317,0},{2895,3317,0}, {2892,3318,0},{2885,3317,0},{2882,3317,0},{2877,3322,0},{2867,3320,0},{2855,3323,0}, {2855,3325,0},{2858,3323,0},{2858,3325,0},{2855,3327,0},{2853,3327,0},{2855,3327,0}, {2850,3328,0},{2847,3335,0},{2837,3343,0},{2830,3357,0},{2823,3362,0},{2818,3363,0}, {2817,3365,0},{2817,3367,0},{2808,3372,0},{2803,3377,0},{2802,3377,0},{2802,3380,0}, {2793,3388,0},{2793,3392,0},{2790,3395,0},{2788,3398,0},{2782,3405,0},{2780,3408,0}, {2778,3418,0},{2773,3425,0},{2777,3425,0},{2777,3422,0},{2778,3422,0},{2778,3427,0}, {2785,3428,0},{2785,3432,0},{2792,3433,0},{2792,3437,0},{2793,3437,0},{2797,3443,0}, {2800,3445,0},{2808,3443,0},{2817,3445,0},{2823,3442,0},{2832,3440,0},{2837,3445,0}, {2843,3445,0},{2848,3448,0},{2848,3452,0},{2855,3452,0},{2873,3463,0},{2883,3462,0}, {2887,3465,0},{2895,3463,0},{2898,3468,0},{2905,3467,0},{2917,3470,0},{2917,3472,0}, {2920,3473,0},{2930,3473,0},{2933,3478,0},{2947,3485,0},{2950,3492,0},{2955,3497,0}, {3133,3422,128},{3125,3410,0},{3120,3398,0},{3113,3372,0},{3112,3360,0}, {3113,3348,0},{3115,3342,0},{3113,3342,0},{3113,3338,0},{3112,3338,0},{3110,3328,0}, {3110,3332,0},{3110,3330,0},{3108,3330,0},{3108,3328,0},{3108,3327,0},{3110,3327,0}, {3107,3320,0},{3105,3322,0},{3105,3313,0},{3108,3315,0},{3110,3312,0},{3112,3317,0}, {3118,3310,0},{3118,3313,0},{3115,3303,0},{3112,3302,0},{3110,3295,0},{3110,3302,0}, {3113,3307,0},{3112,3307,0},{3110,3305,0},{3108,3302,0},{3107,3302,0},{3105,3302,0}, {3107,3297,0},{3108,3297,0},{3107,3298,0},{3108,3298,0},{3112,3293,0},{3110,3292,0}, {3108,3293,0},{3108,3292,0},{3108,3290,0},{3108,3293,0},{3110,3290,0},{3108,3283,0}, {3105,3278,0},{3103,3272,0},{3103,3270,0},{3105,3272,0},{3105,3267,0},{3107,3277,0}, {3115,3293,0},{3107,3275,0},{3105,3262,0},{3107,3255,0},{3115,3247,0},{3122,3240,0}, {3125,3233,0},{3127,3233,0},{3125,3230,0},{3120,3230,0},{3125,3230,0},{3127,3232,0}, {3128,3222,0},{3127,3228,0},{3125,3227,0},{3122,3230,0},{3117,3228,0},{3117,3227,0}, {3113,3228,0},{3112,3228,0},{3110,3222,0},{3112,3220,0},{3112,3218,0},{3110,3218,0}, {3110,3213,0},{3107,3215,0},{3110,3210,0},{3107,3210,0},{3105,3213,0},{3105,3210,0}, {3108,3208,0},{3108,3205,0},{3110,3207,0},{3113,3205,0},{3112,3202,0},{3115,3203,0}, {3122,3203,0},{3122,3200,0},{3123,3200,0},{3122,3197,0},{3118,3193,0},{3120,3193,0}, {3122,3190,0},{3125,3190,0},{3122,3188,0},{3128,3180,0},{3127,3178,0},{3130,3177,0}, {3130,3180,0},{3132,3178,0},{3133,3180,0},{3133,3178,0},{3135,3180,0},{3135,3185,0}, {3137,3183,0},{3138,3183,0},{3140,3183,0},{3142,3188,0},{3142,3185,0},{3143,3185,0}, {3143,3183,0},{3145,3183,0},{3147,3183,0},{3145,3183,0},{3145,3185,0},{3142,3188,0}, {3145,3188,0},{3150,3187,0},{3150,3185,0},{3152,3185,0},{3153,3188,0},{3152,3193,0}, {3142,3200,0},{3143,3197,0},{3138,3200,0},{3140,3200,0},{3132,3215,0},{3128,3220,0}, {3138,3203,0},{3147,3197,0},{3150,3195,0},{3153,3190,0},{3153,3185,0},{3148,3175,0}, {3145,3160,0},{3145,3152,0},{3153,3135,0},{3158,3118,0},{3160,3112,0},{3160,3103,0}, {3158,3098,0},{3157,3107,0},{3155,3112,0},{3152,3113,0},{3152,3112,0},{3150,3113,0}, {3148,3110,0},{3152,3108,0},{3152,3102,0},{3143,3098,0},{3145,3093,0},{3143,3093,0}, {3142,3090,0},{3143,3087,0},{3143,3082,0},{3145,3080,0},{3143,3078,0},{3138,3073,0}, {3142,3068,0},{3140,3065,0},{3138,3058,0},{3140,3055,0},{3142,3057,0},{3143,3065,0}, {3153,3085,0},{3158,3097,0},{3145,3050,0},{3147,3042,0},{3150,3035,0},{3143,3040,0}, {3145,3037,0},{3150,3035,0},{3143,3035,0},{3135,3032,0},{3132,3028,0},{3127,3018,0}, {3127,3025,0},{3128,3027,0},{3127,3030,0},{3123,3028,0},{3127,3028,0},{3122,3022,0}, {3123,3020,0},{3122,3017,0},{3122,3015,0},{3123,3015,0},{3127,3017,0},{3128,3008,0}, {3133,3007,0},{3125,2997,0},{3120,2990,0},{3122,2988,0},{3120,2987,0},{3118,2988,0}, {3113,2982,0},{3113,2978,0},{3110,2975,0},{3093,2948,0},{3087,2933,0},{3082,2912,0}, {3083,2898,0},{3090,2883,0},{3095,2882,0},{3098,2872,0},{3102,2860,0},{3105,2853,0}, {3105,2847,0},{3108,2842,0},{3105,2832,0},{3107,2820,0},{3108,2815,0},{3110,2792,0}, {3120,2787,0},{3123,2787,0},{3125,2785,0},{3122,2780,0},{3117,2765,0},{3118,2763,0}, {3120,2762,0},{3120,2757,0},{3122,2755,0},{3122,2747,0},{3123,2742,0},{3127,2738,0}, {3137,2735,0},{3137,2722,0},{3140,2707,0},{3142,2705,0},{3142,2700,0},{3145,2697,0}, {3143,2690,0},{3145,2682,0},{3148,2673,0},{3152,2637,0},{3160,2608,0},{3162,2592,0}, {3162,2582,0},{3150,2540,0},{3150,2532,0},{3153,2517,0},{3165,2515,0},{3173,2512,0}, {3183,2503,0},{3192,2503,0},{3197,2498,0},{3198,2487,0},{3203,2473,0},{3203,2465,0}, {3200,2462,0},{3198,2455,0},{3200,2430,0},{3200,2410,0},{3202,2407,0},{3205,2402,0}, {3205,2398,0},{3207,2397,0},{3208,2400,0},{3210,2398,0},{3217,2373,0},{3218,2342,0}, {3222,2337,0},{3222,2330,0},{3215,2332,0},{3220,2328,0},{3222,2325,0},{3228,2320,0}, {3233,2308,0},{3243,2310,0},{3240,2313,0},{3243,2313,0},{3247,2315,0},{3252,2310,0}, {3258,2310,0},{3262,2312,0},{3263,2312,0},{3267,2300,0},{3268,2292,0},{3273,2280,0}, {3275,2265,0},{3278,2258,0},{3278,2253,0},{3288,2235,0},{3288,2222,0},{3295,2215,0}, {3293,2212,0},{3292,2208,0},{3290,2188,0},{3292,2178,0},{3295,2172,0},{3293,2162,0}, {3282,2148,0},{3278,2138,0},{3277,2128,0},{3277,2107,0},{3273,2095,0},{3265,2082,0}, {3257,2057,0},{3243,2038,0},{3240,2032,0},{3217,2007,0},{3197,1995,0},{3173,1992,0}, {3152,1997,0},{3137,2003,0},{3132,2010,0},{3122,2015,0},{3108,2015,0},{3098,2013,0}, {3082,2003,0},{3052,1977,0},{3042,1962,0},{3040,1955,0},{3028,1933,0},{3027,1917,0}, {3027,1900,0},{3028,1892,0},{3035,1880,0},{3038,1878,0},{3042,1865,0},{3050,1855,0}, {3067,1830,0},{3078,1820,0},{3083,1802,0},{3085,1792,0},{3092,1785,0},{3093,1777,0}, {3100,1760,0},{3102,1747,0},{3108,1737,0},{3112,1713,0},{3118,1693,0},{3122,1675,0}, {3123,1625,0},{3127,1608,0},{3132,1592,0},{3143,1568,0},{3150,1562,0},{3165,1550,0}, {3197,1535,0},{3208,1535,0},{3217,1537,0},{3222,1532,0},{3233,1527,0},{3240,1518,0}, {3243,1492,0},{3245,1473,0},{3248,1463,0},{3252,1450,0},{3253,1445,0},{3263,1432,0}, {3267,1425,0},{3270,1418,0},{3273,1402,0},{3277,1392,0},{3280,1378,0},{3280,1360,0}, {3290,1335,0},{3292,1327,0},{3292,1317,0},{3288,1312,0},{3285,1300,0},{3280,1282,0}, {3280,1257,0},{3283,1233,0},{3292,1213,0},{3307,1188,0},{3313,1170,0},{3312,1170,0}, {3312,1175,0},{3308,1180,0},{3310,1165,0},{3312,1160,0},{3317,1157,0},{3317,1153,0}, {3320,1143,0},{3327,1133,0},{3320,1143,0},{3318,1142,0},{3318,1135,0},{3322,1123,0}, {3322,1117,0},{3325,1117,0},{3328,1112,0},{3330,1113,0},{3328,1128,0},{3333,1117,0}, {3337,1113,0},{3337,1110,0},{3353,1112,0},{3358,1108,0},{3362,1105,0},{3363,1098,0}, {3362,1097,0},{3362,1090,0},{3358,1093,0},{3355,1092,0},{3347,1075,0},{3348,1070,0}, {3353,1067,0},{3360,1072,0},{3370,1072,0},{3370,1067,0},{3367,1060,0},{3363,1048,0}, {3370,1033,0},{3383,1017,0},{3393,1008,0},{3402,1003,0},{3417,1000,0},{3432,1012,0}, {3438,1027,0},{3442,1028,0},{3440,1033,0},{3450,1043,0},{3453,1057,0},{3463,1063,0}, {3467,1073,0},{3475,1077,0},{3480,1085,0},{3483,1085,0},{3487,1090,0},{3497,1092,0}, {3505,1102,0},{3513,1102,0},{3517,1107,0},{3523,1112,0},{3523,1115,0},{3530,1107,0}, {3535,1102,0},{3540,1102,0},{3552,1105,0},{3552,1103,0},{3555,1102,0},{3563,1103,0}, {3570,1083,0},{3573,1082,0},{3578,1082,0},{3577,1073,0},{3578,1070,0},{3580,1068,0}, {3585,1062,0},{3592,1058,0},{3597,1052,0},{3600,1052,0},{3605,1047,0},{3612,1045,0}, {3625,1047,0},{3637,1053,0},{3643,1068,0},{3647,1080,0},{3665,1090,0},{3675,1098,0}, {3687,1112,0},{3702,1105,0},{3705,1107,0},{3708,1105,0},{3705,1090,0},{3700,1088,0}, {3688,1072,0},{3688,1060,0},{3685,1057,0},{3678,1053,0},{3672,1042,0},{3675,1032,0}, {3678,1028,0},{3680,1028,0},{3678,1025,0},{3678,1020,0},{3683,1020,0},{3685,1027,0}, {3683,1028,0},{3682,1028,0},{3683,1030,0},{3688,1035,0},{3698,1020,0},{3703,1017,0}, {3707,1017,0},{3710,1020,0},{3710,1023,0},{3712,1023,0},{3713,1022,0},{3715,1013,0}, {3717,1015,0},{3717,1022,0},{3715,1022,0},{3717,1023,0},{3718,1027,0},{3718,1022,0}, {3720,1020,0},{3723,1013,0},{3723,1008,0},{3727,1005,0},{3725,998,0},{3725,992,0}, {3727,988,0},{3722,982,0},{3722,993,0},{3720,993,0},{3715,990,0},{3713,985,0}, {3715,980,0},{3718,978,0},{3723,978,0},{3725,985,0},{3728,987,0},{3733,985,0}, {3733,973,0},{3733,965,0},{3730,958,0},{3730,953,0},{3727,945,0},{3727,942,0}, {3723,933,0},{3723,920,0},{3718,915,0},{3715,905,0},{3703,892,0},{3698,883,0}, {3697,877,0},{3697,870,0},{3693,862,0},{3690,845,0},{3692,835,0},{3692,828,0}, {3695,823,0},{3693,820,0},{3688,805,0},{3685,793,0},{3688,778,0},{3690,777,0}, {3692,778,0},{3693,777,0},{3698,780,0},{3697,777,0},{3695,772,0},{3698,767,0}, {3697,763,0},{3698,758,0},{3705,748,0},{3705,740,0},{3705,738,0},{3708,738,0}, {3707,733,0},{3708,728,0},{3707,727,0},{3708,722,0},{3707,718,0},{3703,725,0}, {3698,725,0},{3692,717,0},{3692,713,0},{3692,707,0},{3688,695,0},{3690,688,0}, {3692,687,0},{3693,685,0},{3695,683,0},{3695,678,0},{3695,675,0},{3695,667,0}, {3697,660,0},{3700,657,0},{3702,658,0},{3705,655,0},{3708,647,0},{3708,637,0}, {3702,627,0},{3698,625,0},{3695,627,0},{3692,623,0},{3683,600,0},{3682,582,0}, {3683,577,0},{3682,572,0},{3678,565,0},{3677,558,0},{3670,553,0},{3665,542,0}, {3663,533,0},{3665,525,0},{3667,517,0},{3672,508,0},{3677,510,0},{3690,478,0}, {3688,455,0},{3690,448,0},{3692,443,0},{3690,438,0},{3690,427,0},{3688,420,0}, {3690,415,0},{3688,410,0},{3690,393,0},{3692,388,0},{3688,375,0},{3682,363,0}, {3677,348,0},{3678,330,0},{3682,325,0},{3680,322,0},{3678,323,0},{3675,322,0}, {3673,313,0},{3675,308,0},{3680,303,0},{3680,293,0},{3680,290,0},{3675,285,0}, {3672,283,0},{3668,278,0},{3660,263,0},{3658,257,0},{3660,242,0},{3662,240,0}, {3663,233,0},{3657,203,0},{3657,183,0},{3653,157,0},{3653,153,0},{3652,148,0}, {3655,135,0},{3650,127,0},{3650,117,0},{3648,115,0},{3648,105,0},{3645,95,0}, {3640,92,0},{3638,87,0},{3633,75,0},{3633,65,0},{3622,45,0},{3620,35,0}, {3613,30,0},{3612,22,0},{3605,13,0},{3588,5,0},{3583,0,0},{3578,65524,0}, {3580,65513,0},{3583,65506,0},{3587,65506,0},{3590,65501,0},{3590,65499,0}, {3588,65493,0},{3588,65488,0},{3583,65488,0},{3577,65483,0},{3577,65479,0}, {3572,65474,0},{3572,65471,0},{3572,65466,0},{3575,65464,0},{3575,65458,0}, {3577,65456,0},{3577,65454,0},{3573,65451,0},{3572,65446,0},{3572,65443,0}, {3570,65438,0},{3568,65433,0},{3563,65429,0},{3557,65421,0},{3557,65418,0}, {3538,65409,0},{3532,65399,0},{3530,65389,0},{3523,65376,0},{3518,65371,0}, {3517,65366,0},{3512,65358,0},{3507,65339,0},{3508,65336,0},{3507,65329,0}, {3510,65321,0},{3508,65318,0},{3510,65316,0},{3508,65314,0},{3510,65311,0}, {3515,65294,0},{3510,65288,0},{3510,65281,0},{3510,65273,0},{3513,65261,0}, {3525,65248,0},{3523,65248,0},{3517,65254,0},{3512,65261,0},{3513,65249,0}, {3518,65244,0},{3525,65244,0},{3527,65246,0},{3537,65239,0},{3543,65241,0}, {3543,65239,0},{3528,65229,0},{3528,65226,0},{3528,65224,0},{3523,65218,0}, {3518,65203,0},{3523,65178,0},{3528,65169,0},{3527,65161,0},{3522,65159,0}, {3520,65154,0},{3522,65146,0},{3527,65144,0},{3523,65138,0},{3525,65134,0}, {3520,65123,0},{3518,65109,0},{3515,65101,0},{3522,65066,0},{3532,65044,0}, {3540,65036,0},{3542,65029,0},{3553,65019,0},{3558,65011,0},{3568,65009,0}, {3570,65004,0},{3583,65001,0},{3587,65003,0},{3590,65008,0},{3592,64994,0}, {3590,64988,0},{3585,64983,0},{3582,64976,0},{3583,64974,0},{3582,64964,0}, {3578,64959,0},{3580,64948,0},{3578,64944,0},{3548,64933,0},{3538,64928,0}, {3502,64913,0},{3483,64904,128},{3443,64881,0},{3430,64871,0},{3405,64856,0}, {3393,64843,0},{3387,64833,0},{3380,64814,0},{3372,64801,0},{3372,64796,0}, {3363,64783,0},{3360,64776,0},{3362,64769,0},{3355,64761,0},{3353,64751,0}, {3350,64744,0},{3343,64726,0},{3338,64706,0},{3328,64696,0},{3327,64691,0}, {3327,64684,0},{3318,64674,0},{3312,64673,0},{3287,64648,0},{3277,64634,0}, {3265,64621,0},{3255,64608,0},{3253,64608,0},{3247,64611,0},{3237,64606,0}, {3235,64608,0},{3232,64609,0},{3218,64608,0},{3212,64603,0},{3203,64599,0}, {3193,64589,0},{3170,64568,0},{3163,64568,0},{3152,64559,0},{3148,64558,0}, {3140,64551,0},{3138,64554,0},{3132,64556,0},{3112,64551,0},{3107,64554,0}, {3088,64554,0},{3085,64553,0},{3082,64554,0},{3068,64548,0},{3063,64548,0}, {3062,64556,0},{3055,64563,0},{3055,64566,0},{3043,64571,0},{3042,64574,0}, {3017,64573,0},{3008,64569,0},{2987,64556,0},{2958,64529,0},{2952,64528,0}, {2943,64523,0},{2940,64518,0},{2932,64513,0},{2923,64501,0},{2910,64493,0}, {2900,64479,0},{2873,64428,0},{2868,64426,0},{2850,64403,0},{2835,64391,0}, {2830,64384,0},{2813,64338,0},{2808,64329,0},{2798,64279,0},{2798,64264,0}, {2795,64246,0},{2792,64239,0},{2777,64233,0},{2770,64219,0},{2767,64218,0}, {2745,64211,0},{2732,64206,0},{2718,64196,0},{2710,64194,0},{2690,64188,0}, {2673,64179,0},{2663,64164,0},{2645,64134,0},{2642,64118,0},{2637,64113,0}, {2630,64108,0},{2627,64094,0},{2617,64088,0},{2602,64088,0},{2593,64084,0}, {2577,64073,0},{2558,64068,0},{2552,64064,0},{2543,64058,0},{2532,64053,0}, {2520,64051,0},{2492,64053,0},{2478,64048,0},{2468,64046,0},{2463,64038,0}, {2453,64033,0},{2448,64018,0},{2443,64013,0},{2433,64006,0},{2422,63991,0}, {2418,63989,0},{2415,63984,0},{2402,63974,0},{2397,63961,0},{2388,63951,0}, {2382,63944,0},{2370,63939,0},{2367,63936,0},{2365,63936,0},{2368,63941,0}, {2380,63948,0},{2383,63951,0},{2385,63956,0},{2392,63958,0},{2387,63959,0}, {2378,63959,0},{2373,63954,0},{2368,63953,0},{2363,63948,0},{2358,63944,0}, {2352,63939,0},{2342,63936,0},{2332,63928,0},{2318,63923,0},{2312,63916,0}, {2308,63914,0},{2307,63914,0},{2308,63918,0},{2307,63921,0},{2300,63921,0}, {2293,63916,0},{2290,63911,0},{2290,63908,0},{2288,63906,0},{2287,63904,0}, {2285,63908,0},{2277,63903,0},{2257,63901,0},{2252,63893,0},{2233,63888,0}, {2227,63874,0},{2230,63869,0},{2227,63864,0},{2222,63863,0},{2222,63861,0}, {2208,63851,0},{2202,63849,0},{2195,63844,0},{2182,63839,0},{2177,63839,0}, {2173,63841,0},{2167,63839,0},{2157,63839,0},{2143,63834,0},{2133,63833,0}, {2127,63833,0},{2120,63831,0},{2117,63833,0},{2110,63829,0},{2098,63829,0}, {2095,63826,0},{2090,63828,0},{2085,63826,0},{2077,63831,0},{2085,63834,0}, {2090,63831,0},{2092,63836,0},{2097,63836,0},{2102,63836,0},{2102,63834,0}, {2105,63834,0},{2107,63839,0},{2117,63843,0},{2115,63846,0},{2093,63856,0}, {2093,63858,0},{2077,63866,0},{2073,63869,0},{2070,63871,0},{2068,63868,0}, {2065,63873,0},{2057,63881,0},{2058,63883,0},{2073,63883,0},{2072,63886,0}, {2067,63888,0},{2067,63894,0},{2065,63889,0},{2063,63891,0},{2065,63893,0}, {2058,63894,0},{2058,63896,0},{2043,63903,0},{2042,63901,0},{2037,63904,0}, {2035,63906,0},{2033,63908,0},{2030,63909,0},{2028,63913,0},{2022,63916,0}, {2015,63913,0},{2013,63909,0},{2007,63914,0},{2000,63914,0},{1988,63904,0}, {1987,63906,0},{1990,63908,0},{1988,63911,0},{1985,63909,0},{1987,63913,0}, {1985,63913,0},{1983,63911,0},{1978,63913,0},{1975,63909,0},{1973,63909,0}, {1963,63903,0},{1953,63894,0},{1950,63893,0},{1945,63889,0},{1940,63889,0}, {1942,63893,0},{1947,63893,0},{1953,63899,0},{1953,63901,0},{1947,63898,0}, {1953,63904,0},{1952,63908,0},{1947,63904,0},{1940,63898,0},{1937,63891,0}, {1938,63884,0},{1938,63883,0},{1925,63889,0},{1920,63901,0},{1913,63908,0}, {1892,63918,0},{1867,63923,0},{1842,63931,0},{1837,63929,0},{1808,63933,0}, {1773,63933,0},{1737,63923,0},{1707,63911,0},{1697,63903,0},{1662,63889,0}, {1648,63889,0},{1630,63883,0},{1607,63883,0},{1590,63883,0},{1582,63881,0}, {1577,63883,0},{1555,63869,0},{1540,63858,0},{1522,63848,0},{1490,63819,0}, {1480,63798,0},{1475,63783,0},{1465,63791,0},{1467,63793,0},{1468,63793,0}, {1470,63794,0},{1472,63793,0},{1475,63798,0},{1468,63813,0},{1465,63818,0}, {1445,63829,0},{1442,63838,0},{1438,63841,0},{1430,63841,0},{1425,63846,0}, {1417,63849,0},{1413,63854,0},{1402,63858,0},{1395,63858,0},{1383,63858,0}, {1385,63859,0},{1397,63859,0},{1400,63863,0},{1402,63863,0},{1403,63864,0}, {1407,63864,0},{1407,63868,0},{1410,63869,0},{1407,63869,0},{1405,63866,0}, {1403,63866,0},{1402,63864,0},{1400,63869,0},{1400,63873,0},{1405,63876,0}, {1407,63879,0},{1415,63884,0},{1415,63889,0},{1418,63888,0},{1420,63891,0}, {1417,63891,0},{1415,63894,0},{1417,63899,0},{1415,63896,0},{1415,63893,0}, {1413,63891,0},{1412,63886,0},{1407,63881,0},{1403,63878,0},{1403,63879,0}, {1403,63881,0},{1402,63879,0},{1398,63879,0},{1400,63876,0},{1398,63874,0}, {1395,63873,0},{1398,63873,0},{1400,63868,0},{1398,63864,0},{1395,63861,0}, {1387,63863,0},{1385,63861,0},{1377,63866,0},{1380,63869,0},{1383,63871,0}, {1387,63881,0},{1400,63888,0},{1395,63888,0},{1388,63884,0},{1387,63886,0}, {1383,63886,0},{1380,63888,0},{1382,63884,0},{1385,63884,0},{1383,63881,0}, {1382,63881,0},{1383,63879,0},{1375,63873,0},{1370,63871,0},{1365,63876,0}, {1368,63881,0},{1375,63884,0},{1373,63886,0},{1370,63884,0},{1368,63884,0}, {1365,63879,0},{1363,63878,0},{1358,63879,0},{1353,63881,0},{1348,63879,0}, {1342,63886,0},{1335,63884,0},{1335,63889,0},{1333,63896,0},{1333,63904,0}, {1337,63904,0},{1337,63906,0},{1338,63904,0},{1338,63906,0},{1340,63908,0}, {1335,63908,0},{1335,63909,0},{1342,63913,0},{1345,63921,0},{1343,63928,0}, {1347,63949,0},{1345,63958,0},{1350,63969,0},{1348,63974,0},{1353,63981,0}, {1350,63986,0},{1350,63989,0},{1345,63999,0},{1345,64004,0},{1348,64006,0}, {1345,64006,0},{1343,64004,0},{1343,64001,0},{1345,63994,0},{1350,63989,0}, {1350,63984,0},{1350,63981,0},{1345,63974,0},{1347,63969,0},{1343,63959,0}, {1343,63949,0},{1342,63946,0},{1340,63931,0},{1342,63919,0},{1340,63918,0}, {1337,63914,0},{1335,63914,0},{1330,63916,0},{1327,63916,0},{1328,63921,0}, {1327,63919,0},{1325,63914,0},{1327,63914,0},{1330,63913,0},{1332,63911,0}, {1325,63899,0},{1328,63898,0},{1327,63893,0},{1327,63894,0},{1322,63898,0}, {1320,63894,0},{1325,63894,0},{1327,63889,0},{1328,63889,0},{1328,63881,0}, {1333,63878,0},{1343,63874,0},{1343,63878,0},{1347,63878,0},{1348,63873,0}, {1347,63869,0},{1348,63868,0},{1345,63863,0},{1342,63861,0},{1337,63854,0}, {1335,63854,0},{1333,63853,0},{1327,63854,0},{1323,63856,0},{1317,63856,0}, {1312,63859,0},{1307,63858,0},{1307,63861,0},{1303,63861,0},{1305,63861,128}, {1288,63859,0},{1282,63856,0},{1278,63856,0},{1282,63858,0},{1278,63859,0}, {1275,63858,0},{1272,63856,0},{1272,63859,0},{1275,63863,0},{1273,63866,0}, {1272,63861,0},{1268,63858,0},{1258,63858,0},{1257,63861,0},{1263,63871,0}, {1272,63871,0},{1273,63874,0},{1278,63876,0},{1273,63876,0},{1270,63873,0}, {1267,63873,0},{1267,63876,0},{1268,63879,0},{1267,63879,0},{1265,63881,0}, {1262,63884,0},{1267,63886,0},{1270,63886,0},{1267,63888,0},{1267,63889,0}, {1265,63888,0},{1263,63888,0},{1258,63894,0},{1257,63898,0},{1257,63899,0}, {1260,63901,0},{1262,63904,0},{1260,63908,0},{1262,63913,0},{1262,63921,0}, {1263,63923,0},{1263,63929,0},{1267,63931,0},{1268,63931,0},{1273,63934,0}, {1268,63934,0},{1260,63944,0},{1262,63951,0},{1258,63953,0},{1260,63954,0}, {1262,63956,0},{1262,63959,0},{1260,63963,0},{1262,63966,0},{1260,63969,0}, {1257,63969,0},{1255,63971,0},{1257,63973,0},{1265,63983,0},{1273,63979,0}, {1280,63983,0},{1282,63984,0},{1280,63984,0},{1280,63986,0},{1283,63991,0}, {1282,63994,0},{1283,63998,0},{1280,63996,0},{1282,63991,0},{1278,63989,0}, {1278,63983,0},{1272,63983,0},{1263,63986,0},{1260,63981,0},{1257,63979,0}, {1253,63973,0},{1253,63968,0},{1258,63968,0},{1258,63963,0},{1258,63958,0}, {1255,63954,0},{1255,63953,0},{1258,63949,0},{1258,63943,0},{1263,63934,0}, {1258,63916,0},{1260,63914,0},{1258,63911,0},{1260,63906,0},{1255,63899,0}, {1260,63886,0},{1258,63883,0},{1255,63883,0},{1257,63881,0},{1262,63881,0}, {1263,63878,0},{1255,63868,0},{1255,63866,0},{1253,63861,0},{1248,63856,0}, {1243,63856,0},{1237,63861,0},{1232,63864,0},{1233,63868,0},{1232,63871,0}, {1227,63876,0},{1227,63881,0},{1222,63886,0},{1218,63886,0},{1217,63891,0}, {1218,63894,0},{1220,63896,0},{1218,63899,0},{1220,63903,0},{1223,63903,0}, {1228,63904,0},{1225,63904,0},{1223,63903,0},{1222,63904,0},{1228,63914,0}, {1230,63921,0},{1233,63924,0},{1235,63929,0},{1233,63924,0},{1228,63923,0}, {1228,63918,0},{1222,63909,0},{1217,63909,0},{1217,63908,0},{1220,63908,0}, {1217,63903,0},{1210,63899,0},{1200,63903,0},{1198,63908,0},{1193,63911,0}, {1190,63916,0},{1190,63921,0},{1188,63923,0},{1192,63928,0},{1192,63939,0}, {1195,63943,0},{1198,63941,0},{1197,63943,0},{1198,63943,0},{1200,63949,0}, {1203,63949,0},{1202,63953,0},{1202,63958,0},{1198,63961,0},{1202,63966,0}, {1197,63963,0},{1200,63956,0},{1197,63949,0},{1188,63943,0},{1178,63939,0}, {1173,63939,0},{1177,63946,0},{1180,63946,0},{1182,63948,0},{1182,63949,0}, {1177,63948,0},{1177,63951,0},{1188,63956,0},{1187,63963,0},{1187,63958,0}, {1187,63956,0},{1175,63954,0},{1178,63961,0},{1180,63971,0},{1183,63976,0}, {1193,63986,0},{1193,63991,0},{1197,63993,0},{1197,64001,0},{1192,64004,0}, {1190,64016,0},{1192,64019,0},{1197,64023,0},{1198,64028,0},{1197,64036,0}, {1195,64038,0},{1195,64033,0},{1183,64029,0},{1182,64031,0},{1180,64036,0}, {1175,64041,0},{1177,64044,0},{1175,64043,0},{1175,64038,0},{1178,64034,0}, {1180,64029,0},{1185,64028,0},{1192,64029,0},{1193,64029,0},{1190,64023,0}, {1187,64016,0},{1187,64004,0},{1188,63998,0},{1188,63994,0},{1187,63993,0}, {1188,63993,0},{1187,63989,0},{1183,63991,0},{1178,63983,0},{1172,63981,0}, {1168,63981,0},{1167,63983,0},{1168,63984,0},{1170,63984,0},{1170,63988,0}, {1165,63988,0},{1165,63991,0},{1168,63994,0},{1167,63994,0},{1160,63989,0}, {1155,63991,0},{1157,63993,0},{1160,63994,0},{1158,63996,0},{1158,63998,0}, {1160,63998,0},{1158,63999,0},{1163,63996,0},{1165,63998,0},{1160,64001,0}, {1165,64001,0},{1167,64003,0},{1168,64001,0},{1168,64003,0},{1163,64004,0}, {1167,64004,0},{1165,64006,0},{1167,64008,0},{1168,64004,0},{1170,64004,0}, {1170,64008,0},{1175,64009,0},{1170,64009,0},{1168,64009,0},{1167,64009,0}, {1170,64011,0},{1173,64011,0},{1173,64013,0},{1175,64014,0},{1175,64016,0}, {1172,64018,0},{1172,64014,0},{1170,64014,0},{1168,64016,0},{1168,64013,0}, {1165,64013,0},{1168,64014,0},{1165,64016,0},{1167,64018,0},{1170,64019,0}, {1170,64023,0},{1168,64023,0},{1167,64019,0},{1165,64019,0},{1165,64023,0}, {1168,64024,0},{1165,64024,0},{1163,64024,0},{1163,64026,0},{1162,64026,0}, {1165,64029,0},{1162,64029,0},{1160,64028,0},{1158,64029,0},{1160,64033,0}, {1162,64034,0},{1158,64034,0},{1157,64033,0},{1157,64026,0},{1153,64024,0}, {1157,64023,0},{1158,64021,0},{1158,64026,0},{1162,64024,0},{1162,64023,0}, {1160,64024,0},{1160,64023,0},{1162,64021,0},{1163,64018,0},{1162,64014,0}, {1160,64016,0},{1157,64016,0},{1158,64013,0},{1162,64013,0},{1162,64008,0}, {1157,64011,0},{1157,64009,0},{1160,64006,0},{1158,64003,0},{1157,64003,0}, {1157,64008,0},{1153,64006,0},{1153,64004,0},{1155,64004,0},{1157,64001,0}, {1152,64001,0},{1153,63999,0},{1153,63996,0},{1150,63996,0},{1148,63996,0}, {1150,63994,0},{1148,63993,0},{1150,63993,0},{1148,63989,0},{1145,63989,0}, {1145,63991,0},{1143,63988,0},{1133,63986,128},{1135,63991,0},{1147,64001,0}, {1145,64003,0},{1143,64001,0},{1138,64001,0},{1138,64003,0},{1143,64009,0}, {1140,64008,0},{1137,64003,0},{1137,63998,0},{1130,63993,0},{1127,63996,0}, {1118,63996,0},{1117,63999,0},{1113,64001,0},{1112,64011,0},{1113,64014,0}, {1122,64013,0},{1123,64013,0},{1123,64016,0},{1122,64014,0},{1117,64016,0}, {1108,64014,0},{1103,64009,0},{1100,64013,0},{1100,64016,0},{1107,64019,0}, {1110,64023,0},{1112,64024,0},{1113,64026,0},{1113,64028,0},{1117,64028,0}, {1117,64031,0},{1123,64034,0},{1118,64036,0},{1117,64034,0},{1113,64036,0}, {1113,64033,0},{1112,64033,0},{1110,64029,0},{1107,64028,0},{1107,64026,0}, {1097,64024,0},{1097,64028,0},{1097,64029,0},{1100,64031,0},{1098,64031,0}, {1095,64029,0},{1095,64026,0},{1092,64028,0},{1093,64031,0},{1097,64034,0}, {1095,64034,0},{1092,64033,0},{1090,64029,0},{1085,64028,0},{1078,64033,0}, {1077,64038,0},{1077,64041,0},{1080,64041,0},{1083,64038,0},{1083,64039,0}, {1087,64038,0},{1087,64041,0},{1092,64046,0},{1093,64044,0},{1098,64041,0}, {1097,64044,0},{1097,64046,0},{1100,64046,0},{1103,64044,0},{1103,64048,0}, {1097,64048,0},{1097,64049,0},{1102,64056,0},{1100,64056,0},{1098,64056,0}, {1098,64061,0},{1100,64063,0},{1102,64063,0},{1103,64066,0},{1105,64068,0}, {1103,64069,0},{1100,64064,0},{1097,64063,0},{1093,64054,0},{1090,64054,0}, {1090,64056,0},{1088,64054,0},{1083,64054,0},{1083,64059,0},{1087,64063,0}, {1083,64063,0},{1078,64059,0},{1075,64056,0},{1070,64061,0},{1077,64064,0}, {1078,64068,0},{1082,64069,0},{1082,64073,0},{1075,64066,0},{1070,64064,0}, {1068,64068,0},{1067,64066,0},{1063,64066,0},{1068,64073,0},{1080,64078,0}, {1085,64084,0},{1088,64083,0},{1088,64086,0},{1083,64086,0},{1077,64079,0}, {1073,64079,0},{1070,64076,0},{1070,64074,0},{1062,64073,0},{1060,64076,0}, {1057,64073,0},{1057,64071,0},{1048,64069,0},{1048,64079,0},{1050,64083,0}, {1047,64081,0},{1042,64081,0},{1035,64086,0},{1033,64089,0},{1030,64091,0}, {1025,64089,0},{1020,64091,0},{1023,64093,0},{1023,64098,0},{1020,64103,0}, {1015,64109,0},{1018,64111,0},{1015,64111,0},{1010,64114,0},{1012,64118,0}, {1015,64118,0},{1017,64121,0},{1018,64123,0},{1017,64123,0},{1015,64123,0}, {1013,64119,0},{1010,64118,0},{1008,64118,0},{1005,64123,0},{1007,64128,0}, {1013,64128,0},{1020,64136,0},{1012,64129,0},{1010,64131,0},{1012,64134,0}, {1008,64136,0},{1010,64134,0},{1008,64131,0},{1003,64129,0},{1000,64133,0}, {1000,64134,0},{997,64138,0},{997,64141,0},{995,64143,0},{985,64153,0}, {985,64158,0},{985,64159,0},{987,64163,0},{992,64166,0},{995,64168,0},{990,64168,0}, {983,64163,0},{978,64161,0},{977,64161,0},{973,64166,0},{977,64171,0},{980,64171,0}, {983,64169,0},{985,64171,0},{980,64174,0},{978,64174,0},{978,64179,0},{973,64174,0}, {963,64173,0},{957,64169,0},{950,64164,0},{957,64178,0},{953,64178,0},{950,64183,0}, {957,64188,0},{950,64184,0},{947,64184,0},{942,64186,0},{942,64194,0},{943,64196,0}, {937,64193,0},{932,64196,0},{928,64194,0},{928,64196,0},{928,64199,0},{933,64201,0}, {935,64206,0},{932,64206,0},{932,64204,0},{932,64203,0},{927,64204,0},{925,64206,0}, {920,64206,0},{918,64204,0},{917,64208,0},{918,64208,0},{923,64209,0},{927,64213,0}, {918,64211,0},{918,64221,0},{917,64218,0},{917,64214,0},{913,64209,0},{908,64206,0}, {907,64203,0},{903,64206,0},{895,64208,0},{897,64213,0},{892,64216,0},{893,64228,0}, {893,64229,0},{892,64224,0},{888,64219,0},{887,64223,0},{887,64234,0},{885,64238,0}, {883,64219,0},{887,64216,0},{885,64214,0},{882,64213,0},{867,64213,0},{852,64221,0}, {852,64223,0},{857,64223,0},{858,64226,0},{860,64226,0},{862,64223,0},{863,64223,0}, {865,64219,0},{867,64221,0},{865,64221,0},{862,64228,0},{862,64229,0},{867,64231,0}, {865,64233,0},{862,64231,0},{860,64228,0},{858,64231,0},{860,64234,0},{860,64243,0}, {868,64248,0},{858,64244,0},{858,64243,0},{857,64249,0},{855,64246,0},{855,64234,0}, {852,64233,0},{852,64231,0},{850,64231,0},{848,64226,0},{845,64223,0},{843,64223,0}, {842,64226,0},{842,64231,0},{840,64229,0},{838,64233,0},{837,64231,0},{837,64229,0}, {840,64226,0},{842,64223,0},{850,64216,0},{850,64208,0},{845,64209,0},{842,64208,0}, {842,64209,0},{835,64214,0},{833,64216,0},{827,64219,0},{822,64221,0},{817,64219,0}, {823,64229,0},{823,64236,0},{825,64238,0},{818,64238,0},{817,64241,0},{815,64243,0}, {810,64244,0},{810,64248,0},{805,64246,0},{802,64246,0},{797,64248,0},{792,64254,0}, {793,64248,0},{792,64244,0},{790,64239,0},{787,64244,0},{787,64246,0},{782,64249,0}, {780,64253,0},{780,64254,0},{782,64258,0},{782,64259,0},{780,64256,0},{775,64258,0}, {770,64266,0},{770,64274,0},{768,64276,0},{770,64281,0},{773,64286,0},{778,64288,0}, {778,64289,0},{777,64291,0},{777,64289,0},{772,64289,0},{770,64284,0},{765,64283,0}, {762,64284,0},{763,64284,0},{765,64288,0},{762,64286,0},{755,64289,0},{757,64306,0}, {758,64309,0},{762,64311,0},{760,64318,0},{757,64316,0},{757,64313,0},{755,64313,0}, {755,64309,0},{753,64306,0},{753,64303,0},{753,64293,0},{745,64286,0},{743,64289,0}, {743,64294,0},{738,64299,0},{742,64293,0},{740,64288,0},{738,64286,0},{715,64353,0}, {702,64371,0},{698,64374,0},{698,64379,0},{697,64378,0},{695,64379,0},{692,64388,0}, {693,64386,128},{683,64398,0},{680,64399,0},{675,64398,0},{670,64399,0}, {660,64428,0},{650,64446,0},{643,64453,0},{638,64456,0},{640,64461,0},{637,64456,0}, {633,64456,0},{630,64459,0},{632,64456,0},{632,64454,0},{627,64459,0},{622,64471,0}, {617,64491,0},{613,64498,0},{615,64498,0},{620,64489,0},{620,64493,0},{617,64498,0}, {613,64499,0},{613,64503,0},{612,64503,0},{612,64499,0},{610,64499,0},{607,64511,0}, {598,64519,0},{592,64529,0},{590,64531,0},{585,64531,0},{570,64549,0},{560,64558,0}, {548,64576,0},{545,64578,0},{543,64576,0},{542,64583,0},{538,64586,0},{530,64591,0}, {527,64594,0},{517,64608,0},{515,64608,0},{513,64609,0},{505,64624,0},{502,64626,0}, {500,64634,0},{498,64634,0},{492,64651,0},{485,64658,0},{475,64683,0},{467,64693,0}, {463,64703,0},{457,64711,0},{455,64726,0},{450,64741,0},{445,64753,0},{442,64754,0}, {438,64763,0},{435,64764,0},{435,64773,0},{435,64776,0},{435,64783,0},{435,64793,0}, {445,64806,0},{447,64811,0},{452,64816,0},{452,64823,0},{453,64831,0},{462,64843,0}, {467,64846,0},{468,64863,0},{472,64874,0},{477,64879,0},{478,64891,0},{482,64896,0}, {487,64914,0},{493,64928,0},{495,64929,0},{497,64936,0},{502,64948,0},{507,64976,0}, {508,64981,0},{510,64979,0},{512,64981,0},{508,64984,0},{513,65036,0},{513,65034,0}, {518,65033,0},{518,65031,0},{518,65028,0},{517,65026,0},{520,65018,0},{520,65013,0}, {518,65016,0},{517,65016,0},{517,65018,0},{515,65018,0},{517,65008,0},{515,65006,0}, {515,65003,0},{513,65008,0},{512,65008,0},{512,64999,0},{513,64998,0},{515,64994,0}, {517,64996,0},{513,65001,0},{518,65003,0},{515,65003,0},{517,65006,0},{520,65006,0}, {520,65003,0},{523,65004,0},{520,65011,0},{522,65013,0},{522,65021,0},{518,65024,0}, {522,65033,0},{522,65036,0},{515,65034,0},{515,65039,0},{513,65038,0},{513,65041,0}, {515,65061,0},{518,65073,0},{520,65116,0},{523,65136,0},{527,65129,0},{527,65133,0}, {528,65131,0},{527,65116,0},{525,65114,0},{523,65106,0},{525,65098,0},{522,65096,0}, {522,65091,0},{523,65083,0},{522,65079,0},{520,65079,0},{520,65083,0},{518,65079,0}, {522,65076,0},{520,65069,0},{520,65068,0},{522,65066,0},{520,65063,0},{517,65061,0}, {517,65056,0},{518,65054,0},{522,65056,0},{523,65063,0},{525,65063,0},{527,65061,0}, {527,65066,0},{532,65069,0},{527,65068,0},{525,65069,0},{525,65064,0},{523,65066,0}, {523,65068,0},{525,65073,0},{523,65074,0},{527,65079,0},{530,65079,0},{527,65081,0}, {525,65084,0},{525,65091,0},{527,65091,0},{528,65088,0},{530,65089,0},{530,65094,0}, {527,65094,0},{530,65098,0},{527,65101,0},{532,65104,0},{530,65106,0},{532,65108,0}, {530,65111,0},{528,65111,0},{528,65113,0},{530,65116,0},{528,65118,0},{530,65123,0}, {528,65128,0},{530,65129,0},{527,65138,0},{528,65141,0},{530,65141,0},{530,65136,0}, {532,65134,0},{532,65144,0},{535,65146,0},{532,65146,0},{532,65148,0},{530,65148,0}, {528,65153,0},{530,65154,0},{527,65156,0},{527,65161,0},{528,65163,0},{537,65154,0}, {538,65156,0},{537,65159,0},{535,65161,0},{532,65161,0},{528,65164,0},{527,65163,0}, {525,65158,0},{523,65159,0},{527,65154,0},{527,65151,0},{528,65148,0},{528,65146,0}, {527,65148,0},{525,65146,0},{528,65143,0},{525,65139,0},{525,65136,0},{523,65138,0}, {520,65154,0},{518,65161,0},{523,65163,0},{520,65164,0},{518,65164,0},{518,65166,0}, {512,65204,0},{512,65208,0},{515,65208,0},{515,65206,0},{518,65206,0},{518,65204,0}, {520,65204,0},{520,65206,0},{522,65209,0},{523,65211,0},{525,65208,0},{528,65208,0}, {530,65213,0},{533,65211,0},{535,65213,0},{537,65221,0},{535,65223,0},{533,65224,0}, {530,65219,0},{525,65219,0},{523,65216,0},{520,65216,0},{515,65223,0},{513,65231,0}, {512,65239,0},{513,65243,0},{517,65241,0},{518,65248,0},{518,65249,0},{517,65251,0}, {513,65253,0},{512,65243,0},{510,65243,0},{508,65239,0},{510,65236,0},{510,65223,0}, {512,65221,0},{515,65213,0},{513,65209,0},{512,65209,0},{508,65226,0},{502,65251,0}, {500,65268,0},{497,65278,0},{492,65303,0},{488,65309,0},{485,65313,0},{480,65319,0}, {478,65321,0},{477,65326,0},{475,65326,0},{473,65328,0},{475,65334,0},{475,65339,0}, {482,65346,0},{485,65353,0},{487,65354,0},{487,65361,0},{492,65363,0},{495,65366,0}, {497,65373,0},{498,65374,0},{500,65373,0},{502,65374,0},{503,65388,0},{507,65393,0}, {508,65404,0},{508,65409,0},{512,65418,0},{520,65429,0},{520,65434,0},{522,65436,0}, {520,65438,0},{522,65446,0},{520,65446,0},{520,65456,0},{530,65466,0},{533,65473,0}, {532,65473,0},{535,65478,0},{537,65486,0},{548,65498,0},{558,65529,0},{562,0,0}, {563,3,0},{567,7,0},{572,13,0},{578,32,0},{575,67,0},{577,65,0},{578,65,0}, {582,63,0},{588,65,0},{595,62,0},{598,57,0},{600,53,0},{603,50,0},{607,43,0}, {607,42,0},{602,38,0},{603,32,0},{608,27,0},{608,20,0},{610,22,0},{610,27,0}, {605,32,0},{605,37,0},{608,42,0},{605,52,0},{595,63,0},{588,65,0},{583,65,0}, {577,70,0},{577,68,0},{575,70,0},{577,92,0},{580,97,0},{583,100,0},{588,100,0}, {597,103,0},{603,108,0},{610,120,0},{613,130,0},{622,165,0},{622,163,128}, {627,187,0},{637,273,0},{637,272,128},{638,293,0},{638,310,0},{640,323,0}, {638,338,0},{642,340,0},{642,338,0},{645,337,0},{650,340,0},{655,340,0}, {655,343,0},{660,347,0},{658,348,0},{653,348,0},{652,352,0},{655,358,0}, {655,363,0},{660,372,0},{662,377,0},{662,385,0},{660,385,0},{658,377,0}, {653,375,0},{653,372,0},{650,357,0},{647,357,0},{645,353,0},{645,347,0}, {642,343,0},{643,343,0},{645,343,0},{645,342,0},{645,340,0},{645,338,0}, {642,342,0},{643,380,0},{642,408,0},{637,440,0},{630,453,0},{625,458,0}, {613,475,0},{605,482,0},{597,492,0},{585,502,0},{575,505,0},{580,510,0}, {587,520,0},{587,523,0},{590,527,0},{590,528,0},{585,525,0},{585,520,0}, {582,515,0},{577,515,0},{580,512,0},{577,510,0},{570,508,0},{560,515,0}, {557,518,0},{560,523,0},{562,528,0},{572,533,0},{570,535,0},{563,532,0}, {562,532,0},{560,538,0},{562,540,0},{563,542,0},{565,545,0},{562,550,0}, {558,552,0},{563,543,0},{555,538,0},{558,530,0},{558,522,0},{555,518,0}, {550,520,0},{543,525,0},{538,538,0},{540,543,0},{540,542,0},{543,542,0}, {543,545,0},{540,545,0},{540,548,0},{543,550,0},{548,552,0},{552,555,0}, {552,560,0},{553,563,0},{550,562,0},{550,555,0},{548,553,0},{540,555,0}, {538,558,0},{538,550,0},{533,547,0},{537,545,0},{537,542,0},{535,533,0}, {530,535,0},{515,537,0},{515,543,0},{518,545,0},{515,550,0},{515,545,0}, {508,547,0},{513,543,0},{513,538,0},{512,538,0},{502,543,0},{490,547,0}, {483,552,0},{485,547,0},{475,553,0},{473,557,0},{472,558,0},{472,557,0}, {472,555,0},{463,560,0},{448,573,0},{447,580,0},{445,578,0},{442,585,0}, {443,585,0},{443,587,0},{440,585,0},{438,587,0},{433,597,0},{435,597,0}, {438,595,0},{438,597,0},{438,598,0},{442,598,0},{438,600,0},{435,600,0}, {433,598,0},{432,600,0},{430,603,0},{428,605,0},{432,607,0},{435,605,0}, {442,605,0},{442,608,0},{437,608,0},{437,610,0},{433,608,0},{428,608,0}, {427,610,0},{428,623,0},{430,622,0},{430,620,0},{432,620,0},{433,622,0}, {438,623,0},{443,620,0},{443,623,0},{440,625,0},{443,625,0},{450,623,0}, {445,627,0},{438,627,0},{442,630,0},{443,630,0},{443,633,0},{437,627,0}, {432,625,0},{430,625,0},{432,642,0},{433,640,0},{435,643,0},{432,647,0}, {433,658,0},{437,657,0},{447,658,0},{450,655,0},{447,660,0},{438,660,0}, {433,662,0},{433,670,0},{440,668,0},{442,667,0},{450,665,0},{453,668,0}, {450,668,0},{442,670,0},{452,670,0},{460,673,0},{457,675,0},{448,672,0}, {435,672,0},{433,673,0},{435,687,0},{440,683,0},{453,680,0},{457,680,0}, {460,682,0},{467,677,0},{477,675,0},{478,672,0},{483,672,0},{482,673,0}, {483,675,0},{480,677,0},{480,678,0},{475,677,0},{467,678,0},{460,685,0}, {457,682,0},{455,682,0},{445,685,0},{445,687,0},{438,687,0},{438,692,0}, {437,697,0},{438,697,0},{437,700,0},{438,702,0},{448,698,0},{458,698,0}, {460,695,0},{457,693,0},{458,692,0},{460,693,0},{468,690,0},{462,695,0}, {460,698,0},{468,697,0},{472,697,0},{468,698,0},{472,700,0},{465,703,0}, {458,702,0},{458,700,0},{443,705,0},{443,708,0},{448,705,0},{450,708,0}, {447,708,0},{445,710,0},{447,712,0},{447,717,0},{452,718,0},{453,718,0}, {455,715,0},{457,718,0},{460,717,0},{463,715,0},{467,708,0},{472,708,0}, {472,705,0},{475,707,0},{468,710,0},{465,715,0},{467,718,0},{462,718,0}, {450,728,0},{450,733,0},{453,733,0},{453,730,0},{455,727,0},{457,727,0}, {460,728,0},{460,732,0},{455,742,0},{455,745,0},{457,747,0},{457,750,0}, {460,753,0},{463,752,0},{468,752,0},{470,755,0},{467,753,0},{463,753,0}, {457,755,0},{453,753,0},{453,757,0},{452,767,0},{450,767,0},{450,775,0}, {452,773,0},{453,798,0},{455,803,0},{455,830,0},{460,832,0},{460,833,0}, {463,837,0},{467,832,0},{472,833,0},{475,832,0},{482,827,0},{485,827,0}, {492,825,0},{497,818,0},{498,818,0},{493,823,0},{490,825,0},{487,832,0}, {483,832,0},{483,833,0},{480,835,0},{478,838,0},{480,840,0},{485,842,0}, {482,843,0},{475,840,0},{473,845,0},{475,848,0},{470,848,0},{470,853,0}, {478,853,0},{482,857,0},{482,860,0},{480,858,0},{482,860,128},{478,858,0}, {475,858,0},{473,857,0},{470,858,0},{467,853,0},{463,852,0},{460,852,0}, {460,855,0},{457,853,0},{457,850,0},{453,850,0},{450,853,0},{453,857,0}, {453,858,0},{450,857,0},{448,858,0},{450,862,0},{450,870,0},{452,872,0}, {455,868,0},{458,867,0},{465,867,0},{470,863,0},{473,865,0},{468,867,0}, {467,868,0},{457,873,0},{453,878,0},{457,882,0},{460,880,0},{457,883,0}, {453,887,0},{455,888,0},{457,887,0},{458,887,0},{462,883,0},{463,883,0}, {458,890,0},{452,890,0},{452,892,0},{455,893,0},{453,893,0},{450,890,0}, {443,890,0},{430,892,0},{425,895,0},{422,898,0},{410,897,0},{405,908,0}, {402,912,0},{402,920,0},{397,922,0},{395,925,0},{398,927,0},{403,930,0}, {403,933,0},{402,932,0},{398,930,0},{393,932,0},{390,935,0},{390,943,0}, {392,947,0},{393,945,0},{398,947,0},{400,942,0},{402,942,0},{400,948,0}, {397,950,0},{398,953,0},{402,952,0},{403,948,0},{407,948,0},{407,945,0}, {412,948,0},{412,950,0},{407,950,0},{403,953,0},{403,955,0},{402,957,0}, {402,958,0},{403,963,0},{412,968,0},{412,970,0},{410,970,0},{412,972,0}, {413,975,0},{412,975,0},{407,970,0},{402,967,0},{402,965,0},{395,962,0}, {393,963,0},{395,977,0},{393,977,0},{392,970,0},{390,968,0},{387,970,0}, {387,975,0},{382,975,0},{385,970,0},{383,968,0},{383,967,0},{387,962,0}, {385,960,0},{382,960,0},{377,960,0},{375,965,0},{375,960,0},{378,958,0}, {382,955,0},{365,963,0},{363,963,0},{362,962,0},{360,963,0},{360,970,0}, {363,978,0},{362,982,0},{362,975,0},{357,970,0},{353,965,0},{348,972,0}, {340,982,0},{327,988,0},{327,993,0},{325,990,0},{308,997,0},{302,995,0}, {298,992,0},{295,990,0},{283,987,0},{282,988,0},{275,987,0},{255,982,0}, {235,982,0},{232,977,0},{213,978,0},{210,977,0},{192,982,0},{185,975,0}, {182,975,0},{177,972,0},{167,962,0},{163,962,0},{158,965,0},{158,970,0}, {160,973,0},{157,970,0},{157,965,0},{158,962,0},{157,960,0},{150,957,0}, {138,945,0},{133,945,0},{127,940,0},{118,937,0},{118,935,0},{115,937,0}, {110,940,0},{113,948,0},{112,955,0},{103,958,0},{107,965,0},{112,968,0}, {113,972,0},{110,970,0},{110,978,0},{108,982,0},{108,985,0},{105,978,0}, {100,980,0},{97,980,0},{103,977,0},{105,973,0},{105,967,0},{102,965,0}, {102,962,0},{102,960,0},{98,957,0},{95,957,0},{93,958,0},{85,960,0},{82,962,0}, {78,963,0},{63,962,0},{60,963,0},{55,963,0},{52,960,0},{47,960,0},{48,958,0}, {60,958,0},{57,957,0},{57,955,0},{58,955,0},{60,952,0},{60,947,0},{62,950,0}, {62,957,0},{65,957,0},{67,953,0},{65,945,0},{65,942,0},{63,937,0},{62,932,0}, {53,930,0},{53,935,0},{48,940,0},{28,950,0},{30,952,0},{30,955,0},{32,957,0}, {28,958,0},{22,968,0},{22,972,0},{18,978,0},{18,985,0},{22,993,0},{18,998,0}, {18,1003,0},{17,997,0},{18,992,0},{15,985,0},{12,982,0},{13,980,0},{13,977,0}, {10,977,0},{2,982,0},{3,978,0},{10,975,0},{13,972,0},{13,967,0},{15,963,0}, {13,960,0},{12,958,0},{13,958,0},{17,957,0},{18,950,0},{17,948,0},{10,950,0}, {10,947,0},{13,947,0},{17,947,0},{18,943,0},{20,942,0},{20,938,0},{18,937,0}, {18,935,0},{22,938,0},{25,937,0},{28,938,0},{33,937,0},{37,935,0},{32,930,0}, {18,932,0},{2,935,0},{65533,933,0},{65524,935,0},{65514,930,0},{65501,930,0}, {65484,918,0},{65476,910,0},{65473,908,0},{65471,912,0},{65468,912,0},{65469,910,0}, {65469,908,0},{65468,908,0},{65464,905,0},{65463,905,0},{65458,902,0},{65451,902,0}, {65448,900,0},{65456,900,0},{65461,897,0},{65468,893,0},{65468,890,0},{65466,888,0}, {65463,892,0},{65464,887,0},{65458,885,0},{65456,885,0},{65459,883,0},{65461,880,0}, {65464,880,0},{65473,878,0},{65473,875,0},{65476,875,0},{65474,872,0},{65479,872,0}, {65476,870,0},{65473,872,0},{65464,875,0},{65454,878,0},{65448,883,0},{65443,883,0}, {65444,887,0},{65439,887,0},{65439,893,0},{65436,890,0},{65436,892,0},{65434,892,0}, {65438,887,0},{65424,897,0},{65414,900,0},{65418,902,0},{65419,900,0},{65418,903,0}, {65414,903,0},{65413,902,0},{65409,902,0},{65406,903,0},{65399,912,0},{65403,915,0}, {65401,917,0},{65398,915,0},{65394,918,0},{65396,920,0},{65394,923,0},{65399,927,0}, {65398,930,0},{65399,933,0},{65401,933,0},{65408,932,0},{65406,933,0},{65403,935,0}, {65396,933,0},{65394,928,0},{65393,930,0},{65389,928,0},{65389,925,0},{65386,925,0}, {65384,928,0},{65379,928,0},{65378,932,0},{65379,940,0},{65384,943,0},{65388,943,0}, {65389,945,0},{65388,948,0},{65381,948,0},{65378,950,0},{65374,957,0},{65376,942,0}, {65371,942,0},{65369,942,0},{65371,938,0},{65374,940,0},{65373,932,0},{65371,932,0}, {65373,928,0},{65369,930,0},{65368,928,0},{65371,927,0},{65374,927,0},{65383,927,0}, {65386,920,0},{65389,915,0},{65396,912,0},{65398,908,0},{65401,908,0},{65404,902,0}, {65413,898,0},{65403,903,0},{65376,922,0},{65363,925,0},{65358,925,0},{65351,925,0}, {65353,928,0},{65351,932,0},{65349,930,0},{65348,933,0},{65354,937,0},{65353,940,0}, {65348,943,0},{65351,943,0},{65349,945,0},{65351,947,0},{65349,948,0},{65343,952,0}, {65341,950,0},{65339,950,0},{65336,955,0},{65333,957,0},{65331,957,0},{65329,953,0}, {65333,950,0},{65336,950,0},{65338,947,0},{65341,948,0},{65344,947,0},{65344,945,0}, {65344,938,0},{65343,938,0},{65344,938,0},{65348,937,0},{65344,937,0},{65344,935,0}, {65346,935,0},{65346,932,0},{65349,928,0},{65349,927,0},{65341,935,0},{65334,938,0}, {65334,940,0},{65329,942,0},{65314,957,0},{65303,958,0},{65298,962,0},{65293,967,0}, {65298,963,0},{65298,965,0},{65293,970,0},{65294,972,0},{65298,970,0},{65298,973,0}, {65296,972,0},{65294,975,0},{65293,972,0},{65288,977,0},{65293,982,0},{65294,988,0}, {65288,992,0},{65286,998,0},{65286,997,0},{65286,995,0},{65281,997,0},{65279,998,0}, {65281,1000,0},{65286,1002,0},{65284,1005,0},{65279,1008,0},{65279,1010,0}, {65286,1008,0},{65284,1010,0},{65284,1013,0},{65281,1013,0},{65279,1017,0}, {65278,1015,0},{65278,1005,0},{65274,1003,0},{65273,1002,0},{65274,1000,0}, {65273,997,0},{65278,997,0},{65276,993,0},{65278,993,0},{65281,993,0},{65283,990,0}, {65281,985,0},{65286,985,0},{65286,983,0},{65289,983,0},{65286,982,0},{65284,978,0}, {65291,970,0},{65276,985,0},{65271,988,0},{65248,1017,0},{65244,1023,0}, {65219,1048,0},{65213,1053,0},{65204,1063,0},{65201,1065,0},{65196,1063,0}, {65194,1065,0},{65183,1080,0},{65171,1093,0},{65166,1098,0},{65161,1098,0}, {65151,1103,0},{65141,1117,0},{65126,1135,0},{65119,1137,0},{65116,1138,0}, {65083,1177,0},{65076,1180,0},{65071,1175,0},{65063,1183,0},{65059,1182,0}, {65061,1180,0},{65058,1180,0},{65051,1188,0},{65034,1202,0},{65034,1208,0}, {65038,1210,0},{65036,1212,0},{65031,1208,0},{65033,1205,0},{65033,1202,0}, {65019,1210,0},{64991,1220,0},{64984,1220,0},{64983,1215,0},{64974,1212,0}, {64968,1213,0},{64958,1220,0},{64951,1225,0},{64939,1237,0},{64936,1238,0}, {64941,1240,0},{64939,1245,0},{64936,1245,0},{64934,1242,0},{64933,1245,0}, {64933,1248,0},{64938,1257,0},{64938,1267,0},{64939,1270,0},{64949,1275,0}, {64954,1288,0},{64954,1297,0},{64951,1300,0},{64951,1305,0},{64949,1310,0}, {64949,1318,0},{64946,1310,0},{64948,1305,0},{64948,1297,0},{64939,1290,0}, {64934,1280,0},{64934,1270,0},{64936,1268,0},{64934,1267,0},{64933,1263,0}, {64933,1257,0},{64931,1255,0},{64931,1253,0},{64929,1248,0},{64928,1235,0}, {64924,1228,0},{64926,1230,0},{64928,1227,0},{64929,1230,0},{64931,1230,0}, {64928,1225,0},{64926,1225,0},{64913,1235,0},{64898,1240,0},{64871,1255,0}, {64859,1267,0},{64846,1277,0},{64844,1280,0},{64843,1278,0},{64839,1280,0}, {64828,1283,0},{64811,1283,0},{64804,1288,0},{64789,1293,0},{64781,1298,0}, {64776,1298,0},{64766,1305,0},{64763,1305,0},{64756,1308,0},{64751,1310,0}, {64743,1315,0},{64731,1320,0},{64723,1327,0},{64719,1327,0},{64718,1328,0}, {64713,1330,0},{64704,1337,0},{64698,1338,0},{64689,1338,0},{64689,1335,0}, {64676,1337,0},{64671,1340,0},{64663,1338,0},{64659,1335,0},{64661,1328,0}, {64658,1327,0},{64656,1323,0},{64653,1320,0},{64656,1322,0},{64659,1325,0}, {64658,1322,0},{64654,1318,0},{64649,1318,0},{64646,1315,0},{64641,1313,0}, {64639,1308,0},{64628,1302,0},{64631,1300,0},{64638,1303,0},{64649,1313,0}, {64641,1303,0},{64628,1298,0},{64603,1315,0},{64594,1317,0},{64589,1317,0}, {64583,1320,0},{64579,1320,0},{64574,1322,0},{64571,1322,0},{64568,1318,0}, {64566,1318,0},{64553,1330,0},{64546,1333,0},{64541,1333,0},{64539,1332,0}, {64529,1337,0},{64524,1342,0},{64516,1345,0},{64508,1352,0},{64501,1353,0}, {64496,1353,0},{64488,1360,0},{64468,1377,0},{64466,1377,0},{64463,1373,0}, {64459,1372,0},{64443,1383,0},{64436,1385,0},{64406,1382,0},{64403,1378,0}, {64398,1380,0},{64378,1378,0},{64356,1380,0},{64343,1377,0},{64336,1372,0}, {64326,1370,0},{64319,1367,0},{64311,1365,0},{64303,1358,0},{64303,1355,0}, {64304,1358,0},{64299,1352,0},{64293,1347,0},{64286,1347,0},{64276,1337,0}, {64276,1332,0},{64278,1330,0},{64278,1327,0},{64276,1325,0},{64274,1323,0}, {64274,1320,0},{64276,1318,0},{64258,1297,0},{64253,1293,0},{64241,1297,0}, {64236,1293,0},{64231,1288,0},{64226,1285,0},{64221,1278,0},{64216,1277,0}, {64213,1272,0},{64214,1270,0},{64211,1268,0},{64211,1267,0},{64206,1263,0}, {64204,1265,0},{64201,1263,0},{64199,1260,0},{64196,1257,0},{64196,1253,0}, {64193,1252,0},{64184,1253,0},{64181,1252,0},{64179,1253,0},{64174,1252,0}, {64171,1252,0},{64151,1250,0},{64148,1248,0},{64149,1245,0},{64148,1240,0}, {64141,1240,0},{64138,1238,0},{64133,1237,0},{64131,1233,0},{64126,1233,0}, {64121,1235,0},{64118,1233,0},{64118,1232,0},{64109,1235,0},{64098,1233,0}, {64088,1230,0},{64069,1228,0},{64068,1227,0},{64061,1228,0},{64054,1223,0}, {64053,1220,0},{64043,1218,0},{64041,1217,0},{64034,1215,0},{64026,1210,0}, {64023,1212,0},{64024,1213,0},{64019,1215,0},{64018,1213,0},{64018,1210,0}, {64014,1205,0},{64003,1205,0},{63996,1203,0},{63988,1203,0},{63976,1200,0}, {63971,1192,0},{63964,1192,0},{63959,1187,0},{63958,1183,0},{63959,1183,0}, {63961,1185,0},{63961,1183,0},{63961,1177,0},{63959,1175,0},{63953,1173,0}, {63949,1173,0},{63936,1182,0},{63926,1178,0},{63889,1182,0},{63873,1182,0}, {63868,1182,0},{63854,1182,0},{63853,1177,0},{63844,1178,0},{63834,1177,0}, {63813,1175,0},{63811,1177,0},{63809,1175,0},{63798,1173,0},{63781,1172,0}, {63754,1173,0},{63749,1177,0},{63739,1177,0},{63728,1180,0},{63711,1195,0}, {63704,1197,0},{63699,1200,0},{63694,1200,0},{63689,1202,0},{63678,1213,0}, {63664,1230,0},{63643,1247,0},{63636,1247,0},{63631,1252,0},{63626,1257,0}, {63613,1263,0},{63604,1268,0},{63594,1270,0},{63539,1302,0},{63529,1305,0}, {63523,1313,0},{63518,1318,0},{63506,1322,0},{63489,1325,0},{63471,1335,0}, {63463,1338,0},{63456,1338,0},{63451,1340,0},{63434,1352,0},{63423,1358,0}, {63411,1368,0},{63401,1373,0},{63388,1385,0},{63376,1388,0},{63364,1397,0}, {63358,1395,0},{63353,1402,0},{63324,1428,0},{63318,1430,0},{63308,1438,0}, {63281,1452,0},{63268,1453,0},{63256,1453,0},{63244,1453,0},{63236,1447,0}, {63239,1447,0},{63241,1443,0},{63248,1445,0},{63248,1443,0},{63239,1442,0}, {63233,1442,0},{63223,1445,0},{63203,1450,0},{63198,1448,0},{63201,1448,0}, {63194,1443,0},{63176,1450,0},{63161,1448,0},{63153,1452,0},{63146,1452,0}, {63139,1445,0},{63123,1447,0},{63111,1452,0},{63091,1462,0},{63086,1462,0}, {63083,1460,0},{63079,1460,0},{63064,1473,0},{63056,1478,0},{63051,1480,0}, {63041,1480,0},{63031,1485,0},{63018,1483,0},{63008,1480,0},{62999,1482,0}, {62993,1485,0},{62989,1485,0},{62981,1488,0},{62979,1488,0},{62971,1485,0}, {62964,1485,0},{62961,1483,0},{62956,1485,0},{62951,1492,0},{62944,1490,0}, {62938,1497,0},{62931,1498,0},{62923,1498,0},{62923,1493,0},{62916,1497,0}, {62903,1497,0},{62896,1508,0},{62876,1517,0},{62868,1515,0},{62873,1513,0}, {62873,1510,0},{62871,1508,0},{62866,1508,0},{62849,1517,0},{62846,1515,0}, {62844,1518,0},{62843,1522,0},{62839,1523,0},{62833,1523,0},{62828,1527,0}, {62819,1527,0},{62814,1527,0},{62811,1528,0},{62804,1530,0},{62791,1537,0}, {62791,1540,0},{62781,1547,0},{62771,1553,0},{62768,1552,0},{62763,1553,0}, {62749,1567,0},{62741,1568,0},{62733,1575,0},{62728,1582,0},{62719,1590,0}, {62711,1603,0},{62696,1618,0},{62693,1623,0},{62679,1635,0},{62674,1645,0}, {62678,1648,0},{62673,1647,0},{62664,1657,0},{62659,1657,0},{62649,1660,0}, {62646,1667,0},{62638,1673,0},{62633,1675,0},{62628,1682,0},{62614,1685,0}, {62611,1687,0},{62606,1688,0},{62599,1693,0},{62583,1700,0},{62579,1700,0}, {62568,1705,0},{62553,1708,0},{62539,1715,0},{62521,1720,0},{62509,1727,0}, {62501,1728,0},{62476,1745,0},{62468,1748,0},{62461,1753,0},{62456,1755,0}, {62444,1760,0},{62433,1768,0},{62414,1780,0},{62411,1785,0},{62399,1792,0}, {62391,1800,0},{62368,1818,0},{62361,1822,0},{62353,1823,0},{62346,1828,0}, {62341,1827,0},{62331,1830,0},{62326,1830,0},{62308,1835,0},{62303,1832,0}, {62288,1833,0},{62273,1828,0},{62268,1825,0},{62258,1813,0},{62258,1805,0}, {62263,1798,0},{62266,1797,0},{62264,1795,0},{62264,1792,0},{62263,1790,0}, {62256,1790,0},{62253,1785,0},{62249,1788,0},{62244,1787,0},{62243,1788,0}, {62236,1788,0},{62234,1790,0},{62233,1790,0},{62231,1792,0},{62233,1795,0}, {62234,1795,0},{62236,1798,0},{62233,1803,0},{62226,1803,0},{62221,1810,0}, {62218,1813,0},{62216,1812,0},{62216,1810,0},{62221,1803,0},{62226,1800,0}, {62226,1795,0},{62223,1797,0},{62218,1805,0},{62214,1808,0},{62203,1817,0}, {62201,1815,0},{62194,1823,0},{62189,1830,0},{62186,1832,0},{62179,1832,0}, {62178,1833,0},{62174,1837,0},{62173,1840,0},{62166,1843,0},{62159,1843,0}, {62151,1848,0},{62148,1848,0},{62144,1847,0},{62144,1837,0},{62138,1837,0}, {62133,1832,0},{62129,1833,0},{62129,1835,0},{62124,1835,0},{62123,1832,0}, {62119,1832,0},{62118,1837,0},{62113,1838,0},{62111,1838,0},{62104,1842,0}, {62101,1848,0},{62103,1847,0},{62113,1848,0},{62119,1843,0},{62123,1845,0}, {62126,1848,0},{62129,1862,0},{62128,1877,0},{62126,1882,0},{62121,1885,0}, {62118,1882,0},{62111,1885,0},{62106,1880,0},{62103,1882,0},{62101,1880,0}, {62098,1882,0},{62101,1893,0},{62099,1897,0},{62103,1900,0},{62101,1908,0}, {62106,1913,0},{62101,1912,0},{62099,1908,0},{62096,1912,0},{62093,1922,0}, {62094,1928,0},{62089,1933,0},{62083,1937,0},{62074,1930,0},{62076,1938,0}, {62074,1942,0},{62071,1945,0},{62069,1952,0},{62064,1955,0},{62058,1965,0}, {62061,1968,0},{62061,1985,0},{62058,1990,0},{62054,1997,0},{62054,2000,0}, {62056,2005,0},{62059,2005,0},{62063,2007,0},{62068,2017,0},{62068,2022,0}, {62074,2027,0},{62079,2038,0},{62086,2043,0},{62089,2050,0},{62093,2067,0}, {62089,2085,0},{62091,2087,0},{62094,2085,0},{62096,2082,0},{62099,2095,0}, {62099,2107,0},{62093,2130,0},{62096,2142,0},{62098,2143,0},{62101,2153,0}, {62098,2165,0},{62098,2180,0},{62103,2190,0},{62106,2193,0},{62109,2192,0}, {62114,2195,0},{62118,2215,0},{62121,2212,0},{62126,2215,0},{62131,2230,0}, {62129,2240,0},{62131,2247,0},{62136,2255,0},{62136,2258,0},{62133,2277,0}, {62133,2278,0},{62138,2273,0},{62136,2280,0},{62134,2278,0},{62131,2280,0}, {62128,2297,0},{62128,2300,0},{62128,2305,0},{62133,2300,0},{62131,2305,0}, {62128,2307,0},{62124,2340,0},{62128,2337,0},{62131,2337,0},{62134,2340,0}, {62138,2355,0},{62138,2368,0},{62133,2397,0},{62131,2415,0},{62126,2427,0}, {62126,2438,0},{62119,2452,0},{62118,2460,0},{62119,2465,0},{62118,2470,0}, {62118,2480,0},{62116,2483,0},{62118,2487,0},{62119,2483,0},{62123,2483,0}, {62128,2492,0},{62136,2492,0},{62139,2503,0},{62139,2523,0},{62133,2540,0}, {62133,2548,0},{62131,2557,0},{62131,2563,0},{62133,2565,0},{62133,2570,0}, {62136,2568,0},{62143,2562,0},{62151,2563,0},{62156,2568,0},{62159,2572,0}, {62163,2585,0},{62164,2598,0},{62164,2608,0},{62159,2628,0},{62161,2637,0}, {62159,2645,0},{62159,2648,0},{62161,2653,0},{62164,2658,0},{62164,2663,0}, {62168,2665,0},{62171,2673,0},{62173,2685,0},{62178,2692,0},{62179,2700,0}, {62183,2710,0},{62186,2712,0},{62191,2722,0},{62199,2733,0},{62201,2738,0}, {62206,2747,0},{62208,2747,0},{62208,2750,0},{62211,2752,0},{62216,2763,0}, {62224,2773,0},{62233,2790,0},{62238,2793,0},{62246,2807,0},{62256,2813,0}, {62266,2837,0},{62268,2837,0},{62279,2853,0},{62283,2857,0},{62289,2865,0}, {62291,2865,0},{62298,2873,0},{62301,2878,0},{62308,2887,0},{62316,2895,0}, {62329,2910,0},{62338,2915,0},{62341,2922,0},{62356,2932,0},{62358,2935,0}, {62361,2937,0},{62363,2940,0},{62366,2942,0},{62368,2940,0},{62373,2953,0}, {62374,2955,0},{62378,2963,0},{62381,2963,0},{62391,2977,0},{62394,2985,0}, {62408,3002,0},{62418,3010,0},{62439,3030,0},{62444,3032,0},{62451,3040,0}, {62471,3052,0},{62486,3062,0},{62488,3063,0},{62503,3073,0},{62528,3087,0}, {62546,3105,0},{62548,3107,0},{62546,3100,0},{62549,3102,0},{62549,3105,0}, {62554,3105,0},{62571,3113,0},{62601,3137,0},{62641,3178,0},{62643,3177,0}, {62643,3183,0},{62643,3188,0},{62648,3200,0},{62654,3207,0},{62653,3202,0}, {62654,3200,0},{62656,3200,0},{62658,3205,0},{62656,3210,0},{62664,3218,0}, {62669,3223,0},{62673,3228,0},{62683,3238,0},{62693,3243,0},{62696,3242,0}, {62696,3240,0},{62698,3243,0},{62719,3255,0},{62743,3260,0},{62748,3258,0}, {62776,3265,0},{62819,3280,0},{62824,3283,0},{62851,3290,0},{62854,3288,0}, {62863,3290,0},{62871,3290,0},{62884,3292,0},{62906,3292,0},{62928,3295,0}, {62924,3290,0},{62916,3287,0},{62908,3288,0},{62906,3283,0},{62909,3280,0}, {62914,3278,0},{62916,3275,0},{62918,3270,0},{62918,3268,0},{62926,3265,0}, {62938,3255,0},{62939,3252,0},{62938,3250,0},{62934,3250,0},{62938,3247,0}, {62941,3252,0},{62938,3258,0},{62939,3260,0},{62948,3268,0},{62953,3270,0}, {62956,3273,0},{62949,3275,0},{62958,3273,0},{62968,3277,0},{62976,3282,0}, {62983,3288,0},{62994,3307,0},{63003,3323,0},{63004,3323,0},{63004,3322,0}, {63006,3322,0},{63008,3325,0},{63011,3333,0},{63009,3333,0},{63006,3327,0}, {63006,3330,0},{63024,3372,0},{63061,3478,0},{63073,3505,0},{63083,3518,0}, {63088,3520,0},{63109,3538,0},{63126,3550,0},{63131,3548,0},{63149,3555,0}, {63156,3553,0},{63158,3548,0},{63156,3548,0},{63151,3548,0},{63149,3547,0}, {63148,3547,0},{63153,3538,0},{63149,3537,0},{63144,3538,0},{63139,3535,0}, {63141,3533,0},{63144,3535,0},{63146,3533,0},{63151,3535,0},{63164,3537,0}, {63166,3537,0},{63168,3533,0},{63168,3537,0},{63166,3538,0},{63163,3538,0}, {63161,3538,0},{63163,3542,0},{63168,3542,0},{63184,3542,0},{63208,3548,0}, {63218,3548,0},{63244,3562,0},{63246,3558,0},{63243,3558,0},{63244,3555,0}, {63241,3553,0},{63244,3552,0},{63268,3548,0},{63279,3550,0},{63294,3553,0}, {63318,3555,0},{63314,3553,0},{63304,3552,0},{63326,3550,0},{63326,3547,0}, {63324,3545,0},{63318,3542,0},{63313,3545,0},{63311,3543,0},{63314,3542,0}, {63313,3540,0},{63309,3540,0},{63301,3540,0},{63294,3543,0},{63293,3540,0}, {63286,3540,0},{63296,3530,0},{63303,3530,0},{63311,3533,0},{63318,3533,0}, {63326,3533,0},{63336,3533,0},{63339,3532,0},{63344,3532,0},{63354,3528,0}, {63371,3527,0},{63378,3525,0},{63384,3518,0},{63398,3512,0},{63404,3512,0}, {63418,3513,0},{63404,3508,0},{63404,3507,0},{63409,3507,0},{63411,3505,0}, {63413,3508,0},{63416,3507,0},{63419,3505,0},{63423,3507,0},{63424,3502,0}, {63428,3503,0},{63426,3505,0},{63428,3508,0},{63433,3508,0},{63434,3507,0}, {63436,3512,0},{63439,3512,0},{63439,3510,0},{63443,3512,0},{63444,3507,0}, {63441,3503,0},{63443,3503,0},{63448,3505,0},{63454,3500,0},{63456,3502,0}, {63458,3502,0},{63458,3500,0},{63463,3498,0},{63466,3495,0},{63466,3488,0}, {63464,3487,0},{63466,3487,0},{63469,3490,0},{63471,3488,0},{63469,3485,0}, {63471,3485,0},{63473,3483,0},{63478,3482,0},{63478,3477,0},{63481,3477,0}, {63481,3473,0},{63484,3473,0},{63483,3467,0},{63488,3472,0},{63491,3470,0}, {63493,3465,0},{63494,3467,0},{63496,3470,0},{63501,3470,0},{63501,3467,0}, {63503,3470,0},{63513,3473,0},{63518,3468,0},{63519,3470,0},{63518,3477,0}, {63521,3477,0},{63533,3475,0},{63536,3477,0},{63539,3475,0},{63544,3475,0}, {63546,3473,0},{63546,3468,0},{63548,3473,0},{63548,3477,0},{63549,3478,0}, {63558,3473,0},{63559,3467,0},{63573,3462,0},{63574,3457,0},{63574,3462,0}, {63563,3468,0},{63561,3475,0},{63558,3482,0},{63551,3483,0},{63549,3488,0}, {63556,3497,0},{63556,3500,0},{63564,3508,0},{63564,3510,0},{63564,3512,0}, {63576,3523,0},{63584,3535,0},{63594,3545,0},{63603,3550,0},{63604,3553,0}, {63609,3558,0},{63611,3558,0},{63611,3557,0},{63619,3567,0},{63619,3563,0}, {63624,3567,0},{63624,3570,0},{63631,3578,0},{63638,3588,0},{63639,3587,0}, {63638,3585,0},{63641,3585,0},{63641,3588,0},{63639,3590,0},{63641,3595,0}, {63648,3598,0},{63643,3598,0},{63644,3603,0},{63654,3610,0},{63656,3612,0}, {63654,3613,0},{63651,3612,0},{63646,3613,0},{63648,3622,0},{63646,3627,0}, {63649,3625,0},{63653,3627,0},{63659,3623,0},{63666,3623,0},{63658,3628,0}, {63656,3635,0},{63656,3640,0},{63659,3642,0},{63663,3640,0},{63661,3638,0}, {63666,3638,0},{63668,3638,0},{63666,3640,0},{63664,3640,0},{63666,3642,0}, {63673,3643,0},{63678,3648,0},{63681,3647,0},{63681,3652,0},{63683,3650,0}, {63683,3652,0},{63683,3655,0},{63686,3655,0},{63686,3657,0},{63698,3668,0}, {63706,3678,0},{63716,3685,0},{63713,3678,0},{63716,3680,0},{63718,3683,0}, {63716,3688,0},{63719,3690,0},{63729,3697,0},{63733,3695,0},{63734,3690,0}, {63748,3687,0},{63746,3682,0},{63748,3683,0},{63748,3690,0},{63741,3692,0}, {63736,3698,0},{63734,3698,0},{63748,3708,0},{63759,3720,0},{63763,3718,0}, {63761,3722,0},{63763,3723,0},{63764,3728,0},{63768,3728,0},{63768,3733,0}, {63771,3735,0},{63769,3738,0},{63776,3743,0},{63781,3755,0},{63783,3757,0}, {63784,3762,0},{63788,3768,0},{63791,3770,0},{63791,3772,0},{63789,3770,0}, {63789,3773,0},{63793,3778,0},{63799,3792,0},{63804,3812,0},{63808,3813,0}, {63808,3812,0},{63811,3813,0},{63818,3808,0},{63814,3812,0},{63818,3812,0}, {63816,3813,0},{63809,3813,0},{63806,3815,0},{63813,3825,0},{63821,3850,0}, {63823,3852,0},{63823,3850,0},{63824,3850,0},{63826,3852,0},{63823,3853,0}, {63824,3857,0},{63829,3858,0},{63826,3860,0},{63828,3868,0},{63829,3868,0}, {63829,3867,0},{63831,3868,0},{63833,3867,0},{63829,3872,0},{63833,3890,0}, {63836,3898,0},{63836,3908,0},{63843,3913,0},{63843,3908,0},{63844,3908,0}, {63846,3912,0},{63846,3913,0},{63849,3913,0},{63848,3915,0},{63849,3917,0}, {63853,3920,0},{63861,3930,0},{63881,3967,0},{63883,3970,0},{63888,3972,0}, {63889,3977,0},{63891,3975,0},{63891,3978,0},{63889,3980,0},{63893,3985,0}, {63894,3982,0},{63906,3978,0},{63913,3988,0},{63913,3998,0},{63919,4003,0}, {63924,4007,0},{63928,4010,0},{63936,4013,0},{63939,4013,0},{63934,4008,0}, {63936,4007,0},{63938,4012,0},{63941,4012,0},{63944,4018,0},{63951,4023,0}, {63964,4037,0},{63974,4043,0},{63979,4048,0},{63983,4050,0},{63983,4053,0}, {63984,4057,0},{63988,4058,0},{63988,4057,0},{63991,4057,0},{63998,4062,0}, {64001,4062,0},{64008,4067,0},{64011,4068,0},{64018,4067,0},{64021,4062,0}, {64016,4058,0},{64018,4052,0},{64023,4053,0},{64023,4060,0},{64028,4063,0}, {64028,4072,0},{64033,4070,0},{64036,4065,0},{64039,4067,0},{64036,4070,0}, {64036,4078,0},{64043,4077,0},{64044,4070,0},{64043,4068,0},{64044,4067,0}, {64049,4063,0},{64049,4065,0},{64046,4067,0},{64048,4073,0},{64053,4078,0}, {64056,4083,0},{64058,4083,0},{64066,4085,0},{64074,4080,0},{64081,4083,0}, {64084,4083,0},{64084,4080,0},{64081,4078,0},{64081,4077,0},{64084,4077,0}, {64086,4083,0},{64091,4083,0},{64096,4080,0},{64096,4077,0},{64093,4068,0}, {64083,4067,0},{64079,4063,0},{64086,4063,0},{64086,4062,0},{64089,4065,0}, {64089,4063,0},{64091,4063,0},{64091,4065,0},{64103,4063,0},{64099,4067,0}, {64103,4073,0},{64108,4075,0},{64111,4072,0},{64116,4072,0},{64118,4070,0}, {64114,4063,0},{64109,4062,0},{64109,4060,0},{64109,4058,0},{64111,4060,0}, {64113,4058,0},{64114,4060,0},{64114,4058,0},{64113,4058,0},{64113,4057,0}, {64114,4057,0},{64119,4053,0},{64123,4062,0},{64128,4060,0},{64128,4065,0}, {64134,4065,0},{64141,4063,0},{64146,4060,0},{64164,4057,0},{64166,4055,0}, {64171,4053,0},{64176,4057,0},{64178,4060,0},{64184,4053,0},{64186,4053,0}, {64193,4055,0},{64198,4058,0},{64201,4058,0},{64199,4057,0},{64208,4057,0}, {64204,4053,0},{64206,4053,0},{64209,4057,0},{64219,4057,0},{64228,4057,0}, {64238,4060,0},{64239,4058,0},{64239,4050,0},{64238,4053,0},{64236,4053,0}, {64234,4052,0},{64233,4048,0},{64234,4047,0},{64239,4042,0},{64243,4042,0}, {64248,4048,0},{64248,4052,0},{64244,4052,0},{64246,4053,0},{64251,4055,0}, {64254,4052,0},{64254,4057,0},{64258,4055,0},{64258,4057,0},{64256,4058,0}, {64256,4062,0},{64258,4065,0},{64259,4065,0},{64263,4062,0},{64264,4062,0}, {64266,4057,0},{64271,4057,0},{64269,4062,0},{64271,4062,0},{64273,4062,0}, {64273,4058,0},{64276,4057,0},{64283,4057,0},{64286,4047,0},{64293,4052,0}, {64296,4057,0},{64298,4055,0},{64298,4050,0},{64304,4052,0},{64308,4050,0}, {64311,4047,0},{64309,4045,0},{64313,4047,0},{64311,4050,0},{64316,4052,0}, {64323,4050,0},{64328,4052,0},{64333,4052,0},{64336,4053,0},{64344,4048,0}, {64353,4052,0},{64353,4048,0},{64354,4047,0},{64361,4047,0},{64363,4045,0}, {64369,4045,0},{64371,4042,0},{64376,4045,0},{64381,4042,0},{64384,4045,0}, {64393,4047,0},{64394,4048,0},{64398,4047,0},{64396,4043,0},{64401,4038,0}, {64399,4037,0},{64404,4035,0},{64404,4038,0},{64411,4043,0},{64416,4050,0}, {64421,4050,0},{64433,4057,0},{64434,4057,0},{64434,4053,0},{64433,4053,0}, {64433,4050,0},{64441,4050,0},{64446,4053,0},{64449,4062,0},{64453,4062,0}, {64458,4052,0},{64456,4048,0},{64459,4048,0},{64468,4058,0},{64466,4063,0}, {64468,4065,0},{64471,4058,0},{64478,4060,0},{64479,4055,0},{64478,4053,0}, {64481,4052,0},{64481,4055,0},{64483,4057,0},{64488,4053,0},{64488,4052,0}, {64489,4045,0},{64488,4043,0},{64493,4042,0},{64496,4043,0},{64498,4042,0}, {64501,4045,0},{64506,4042,0},{64504,4038,0},{64504,4042,0},{64503,4043,0}, {64499,4040,0},{64501,4037,0},{64501,4033,0},{64509,4030,0},{64513,4025,0}, {64516,4023,0},{64511,4020,0},{64508,4027,0},{64508,4023,0},{64506,4023,0}, {64509,4018,0},{64509,4017,0},{64508,4017,0},{64509,4013,0},{64508,4012,0}, {64509,4012,0},{64511,4013,0},{64516,4012,0},{64518,4013,0},{64523,4000,0}, {64523,3998,0},{64518,4000,0},{64514,3998,0},{64523,3997,0},{64526,3993,0}, {64529,3993,0},{64534,3988,0},{64534,3985,0},{64538,3982,0},{64538,3975,0}, {64533,3973,0},{64531,3968,0},{64536,3973,0},{64539,3970,0},{64543,3978,0}, {64544,3978,0},{64548,3975,0},{64548,3980,0},{64551,3980,0},{64561,3975,0}, {64561,3970,0},{64566,3975,0},{64566,3973,0},{64569,3975,0},{64571,3972,0}, {64573,3972,0},{64574,3973,0},{64576,3970,0},{64586,3968,0},{64589,3965,0}, {64591,3965,0},{64593,3962,0},{64591,3960,0},{64591,3957,0},{64596,3957,0}, {64594,3960,0},{64596,3962,0},{64598,3965,0},{64608,3965,0},{64609,3963,0}, {64616,3965,0},{64626,3957,0},{64623,3950,0},{64628,3950,0},{64629,3950,0}, {64631,3950,0},{64634,3950,0},{64638,3948,0},{64643,3950,0},{64643,3945,0}, {64644,3945,0},{64646,3947,0},{64644,3938,0},{64649,3940,0},{64649,3943,0}, {64646,3950,0},{64644,3952,0},{64644,3957,0},{64646,3952,0},{64654,3950,0}, {64656,3947,0},{64663,3943,0},{64666,3937,0},{64666,3938,0},{64669,3937,0}, {64674,3937,0},{64681,3935,0},{64684,3930,0},{64698,3930,0},{64704,3928,0}, {64706,3930,0},{64709,3930,0},{64706,3932,0},{64706,3933,0},{64708,3933,0}, {64708,3935,0},{64716,3935,0},{64716,3937,0},{64723,3938,0},{64734,3945,0}, {64738,3945,0},{64736,3945,0},{64736,3943,0},{64743,3943,0},{64746,3942,0}, {64749,3943,0},{64754,3945,0},{64758,3940,0},{64758,3933,0},{64761,3937,0}, {64763,3932,0},{64759,3932,0},{64754,3928,0},{64754,3925,0},{64758,3928,0}, {64759,3930,0},{64764,3928,0},{64768,3930,0},{64778,3927,0},{64789,3930,0}, {64793,3933,0},{64799,3935,0},{64803,3935,0},{64804,3932,0},{64806,3937,0}, {64809,3937,0},{64809,3938,0},{64811,3940,0},{64813,3942,0},{64818,3943,0}, {64821,3948,0},{64818,3948,0},{64818,3950,0},{64823,3952,0},{64823,3955,0}, {64831,3953,0},{64836,3955,0},{64849,3947,0},{64851,3937,0},{64853,3933,0}, {64854,3930,0},{64851,3930,0},{64851,3928,0},{64854,3928,0},{64861,3928,0}, {64863,3928,0},{64861,3927,0},{64863,3925,0},{64873,3920,0},{64874,3917,0}, {64878,3915,0},{64881,3912,0},{64888,3905,0},{64891,3898,0},{64889,3903,0}, {64888,3903,0},{64889,3897,0},{64893,3892,0},{64896,3890,0},{64898,3887,0}, {64904,3885,0},{64919,3887,0},{64923,3882,0},{64931,3878,0},{64936,3878,0}, {64943,3882,0},{64953,3883,0},{64964,3890,0},{64971,3890,0},{64981,3897,0}, {64991,3900,0},{64993,3897,0},{64996,3898,0},{64998,3902,0},{65013,3908,0}, {65014,3907,0},{65011,3905,0},{65013,3903,0},{65016,3907,0},{65018,3908,0}, {65021,3908,0},{65026,3913,0},{65029,3912,0},{65029,3910,0},{65031,3908,0}, {65034,3910,0},{65034,3913,0},{65036,3912,0},{65041,3913,0},{65044,3912,0}, {65044,3913,0},{65051,3917,0},{65049,3917,0},{65043,3915,0},{65043,3917,0}, {65044,3918,0},{65051,3922,0},{65058,3922,0},{65058,3917,0},{65061,3918,0}, {65059,3920,0},{65061,3922,0},{65068,3922,0},{65068,3918,0},{65069,3920,0}, {65069,3922,0},{65071,3922,0},{65074,3925,0},{65074,3930,0},{65076,3930,0}, {65073,3933,0},{65073,3940,0},{65074,3942,0},{65078,3938,0},{65079,3942,0}, {65081,3942,0},{65083,3943,0},{65083,3945,0},{65081,3943,0},{65078,3945,0}, {65084,3947,0},{65089,3950,0},{65093,3950,0},{65094,3952,0},{65093,3955,0}, {65109,3958,0},{65126,3967,0},{65129,3962,0},{65129,3957,0},{65128,3957,0}, {65133,3955,0},{65133,3963,0},{65136,3963,0},{65138,3960,0},{65139,3962,0}, {65138,3965,0},{65139,3967,0},{65134,3965,0},{65131,3968,0},{65133,3972,0}, {65139,3975,0},{65139,3970,0},{65144,3968,0},{65146,3972,0},{65144,3972,0}, {65141,3972,0},{65141,3975,0},{65143,3977,0},{65144,3978,0},{65154,3983,0}, {65169,3987,0},{65171,3987,0},{65173,3983,0},{65173,3980,0},{65174,3980,0}, {65176,3978,0},{65178,3978,0},{65176,3978,0},{65176,3983,0},{65174,3985,0}, {65174,3987,0},{65178,3988,0},{65184,3990,0},{65196,3997,0},{65199,3993,0}, {65203,3993,0},{65204,3998,0},{65201,4000,0},{65203,4003,0},{65209,4012,0}, {65213,4013,0},{65218,4012,0},{65224,4017,0},{65228,4015,0},{65233,4018,0}, {65238,4023,0},{65236,4018,0},{65233,4013,0},{65238,4015,0},{65241,4015,0}, {65243,4017,0},{65244,4015,0},{65246,4017,0},{65246,4015,0},{65254,4018,0}, {65258,4015,0},{65259,4017,0},{65261,4017,0},{65263,4017,0},{65264,4018,0}, {65268,4018,0},{65266,4020,0},{65263,4020,0},{65271,4027,0},{65281,4042,0}, {65283,4053,0},{65281,4060,0},{65281,4063,0},{65289,4072,0},{65291,4077,0}, {65294,4078,0},{65296,4082,0},{65299,4082,0},{65303,4078,0},{65304,4080,0}, {65308,4077,0},{65306,4080,0},{65308,4082,0},{65313,4085,0},{65314,4088,0}, {65313,4090,0},{65308,4092,0},{65308,4095,0},{65306,4092,0},{65304,4092,0}, {65306,4095,0},{65311,4098,0},{65314,4095,0},{65313,4093,0},{65314,4092,0}, {65328,4090,0},{65329,4088,0},{65331,4090,0},{65333,4090,0},{65334,4088,0}, {65334,4085,0},{65339,4087,0},{65336,4090,0},{65329,4093,0},{65328,4095,0}, {65331,4098,0},{65334,4095,0},{65344,4098,0},{65346,4102,0},{65343,4098,0}, {65334,4098,0},{65331,4102,0},{65338,4110,0},{65336,4118,0},{65339,4120,0}, {65341,4120,0},{65341,4122,0},{65343,4122,0},{65339,4123,0},{65339,4128,0}, {65339,4132,0},{65346,4135,0},{65351,4142,0},{65353,4142,0},{65353,4143,0}, {65361,4148,0},{65369,4157,0},{65369,4155,128},{65379,4165,0},{65406,4182,0}, {65411,4185,0},{65419,4183,0},{65416,4185,0},{65414,4188,0},{65416,4190,0}, {65418,4187,0},{65428,4195,0},{65434,4197,0},{65436,4195,0},{65441,4195,0}, {65446,4195,0},{65436,4197,0},{65439,4202,0},{65444,4203,0},{65446,4207,0}, {65451,4208,0},{65453,4207,0},{65454,4215,0},{65456,4218,0},{65468,4225,0}, {65486,4242,0},{65491,4247,0},{65489,4247,0},{65489,4248,0},{65493,4247,0}, {65499,4252,0},{65501,4255,0},{65504,4257,0},{65524,4278,0},{65,4348,0}, {78,4363,0},{87,4375,0},{92,4380,0},{102,4395,0},{108,4398,0},{108,4403,0}, {117,4408,0},{118,4413,0},{123,4415,0},{127,4422,0},{140,4435,0},{172,4478,0}, {190,4507,0},{198,4528,0},{208,4542,0},{235,4590,0},{243,4602,0},{252,4612,0}, {257,4613,0},{260,4618,0},{265,4622,0},{270,4628,0},{273,4632,0},{277,4633,0}, {278,4635,0},{300,4662,0},{313,4672,0},{318,4678,0},{368,4723,0},{388,4745,0}, {408,4760,0},{418,4770,0},{427,4777,0},{447,4795,0},{453,4800,0},{488,4820,0}, {505,4830,0},{518,4842,0},{540,4857,0},{547,4863,0},{562,4872,0},{582,4885,0}, {615,4905,0},{628,4908,0},{642,4907,0},{675,4922,0},{703,4938,0},{710,4943,0}, {723,4952,0},{733,4960,0},{758,4973,0},{765,4975,0},{773,4982,0},{780,4983,0}, {782,4980,0},{783,4980,0},{793,4983,0},{805,4993,0},{813,5007,0},{818,5012,0}, {832,5015,0},{838,5020,0},{840,5023,0},{845,5025,0},{853,5032,0},{862,5032,0}, {872,5038,0},{887,5043,0},{895,5048,0},{898,5055,0},{907,5063,0},{913,5065,0}, {918,5065,0},{922,5065,0},{928,5070,0},{932,5077,0},{942,5083,0},{945,5085,0}, {957,5080,0},{970,5083,0},{977,5083,0},{1000,5090,0},{1010,5088,0},{1018,5090,0}, {1032,5090,0},{1038,5102,0},{1042,5115,0},{1042,5125,0},{1038,5128,0},{1037,5137,0}, {1045,5142,0},{1048,5137,0},{1048,5132,0},{1057,5117,0},{1052,5120,0},{1048,5120,0}, {1045,5122,0},{1043,5122,0},{1043,5110,0},{1042,5103,0},{1043,5102,0},{1047,5103,0}, {1048,5110,0},{1057,5110,0},{1058,5117,0},{1070,5113,0},{1097,5112,0},{1115,5117,0}, {1117,5110,0},{1118,5108,0},{1133,5108,0},{1145,5112,0},{1150,5113,0},{1160,5118,0}, {1167,5125,0},{1177,5125,0},{1178,5127,0},{1183,5128,0},{1183,5123,0},{1187,5115,0}, {1187,5107,0},{1193,5097,0},{1195,5085,0},{1200,5078,0},{1195,5068,0},{1195,5063,0}, {1190,5057,0},{1187,5053,0},{1175,5050,0},{1168,5043,0},{1165,5035,0},{1158,5027,0}, {1157,5017,0},{1152,5008,0},{1152,4993,0},{1148,4987,0},{1145,4978,0},{1147,4968,0}, {1145,4957,0},{1138,4952,0},{1133,4943,0},{1133,4935,0},{1133,4930,0},{1130,4923,0}, {1128,4910,0},{1125,4898,0},{1125,4888,0},{1133,4865,0},{1132,4852,0},{1128,4847,0}, {1127,4835,0},{1123,4830,0},{1122,4822,0},{1115,4817,0},{1113,4813,0},{1112,4795,0}, {1113,4790,0},{1112,4787,0},{1113,4778,0},{1110,4770,0},{1113,4762,0},{1118,4752,0}, {1118,4740,0},{1110,4723,0},{1108,4717,0},{1103,4715,0},{1097,4707,0},{1097,4702,0}, {1093,4698,0},{1090,4688,0},{1087,4687,0},{1075,4665,0},{1073,4653,0},{1068,4645,0}, {1070,4633,0},{1078,4625,0},{1077,4612,0},{1078,4598,0},{1085,4588,0},{1083,4587,0}, {1082,4587,0},{1082,4585,0},{1083,4585,0},{1087,4580,0},{1088,4577,0},{1085,4573,0}, {1080,4567,0},{1077,4562,0},{1077,4558,0},{1072,4555,0},{1067,4547,0},{1065,4540,0}, {1067,4533,0},{1058,4525,0},{1057,4520,0},{1053,4517,0},{1050,4507,0},{1047,4503,0}, {1045,4498,0},{1045,4500,0},{1043,4498,0},{1042,4492,0},{1047,4475,0},{1042,4457,0}, {1043,4443,0},{1042,4438,0},{1045,4428,0},{1058,4410,0},{1065,4403,0},{1068,4395,0}, {1082,4382,0},{1098,4367,0},{1118,4355,0},{1123,4350,0},{1128,4348,0},{1132,4348,0}, {1138,4348,0},{1137,4347,0},{1140,4342,0},{1140,4337,0},{1145,4335,0},{1145,4332,0}, {1150,4330,0},{1152,4328,0},{1147,4328,0},{1148,4325,0},{1153,4322,0},{1153,4320,0}, {1158,4315,0},{1162,4315,0},{1163,4313,0},{1162,4312,0},{1160,4312,0},{1158,4310,0}, {1160,4308,0},{1160,4280,0},{1155,4268,0},{1153,4267,0},{1152,4270,0},{1148,4268,0}, {1148,4263,0},{1148,4262,0},{1153,4252,0},{1157,4253,0},{1160,4252,0},{1160,4253,0}, {1157,4262,0},{1158,4267,0},{1160,4268,0},{1165,4270,0},{1168,4275,0},{1173,4275,0}, {1175,4277,0},{1178,4290,0},{1178,4295,0},{1182,4297,0},{1182,4303,0},{1185,4308,0}, {1195,4317,0},{1198,4337,0},{1203,4340,0},{1213,4342,0},{1223,4342,0},{1228,4337,0}, {1238,4337,0},{1243,4333,0},{1248,4333,0},{1247,4332,0},{1248,4330,0},{1270,4312,0}, {1283,4308,0},{1283,4305,0},{1290,4300,0},{1288,4300,0},{1282,4298,0},{1280,4295,0}, {1278,4293,0},{1278,4292,0},{1280,4293,0},{1282,4287,0},{1287,4283,0},{1285,4278,0}, {1287,4277,0},{1295,4277,0},{1297,4273,0},{1298,4275,0},{1303,4273,0},{1307,4267,0}, {1313,4262,0},{1317,4258,0},{1320,4255,0},{1320,4253,0},{1323,4253,0},{1318,4248,0}, {1322,4237,0},{1343,4233,0},{1348,4230,0},{1355,4230,0},{1358,4228,0},{1360,4225,0}, {1363,4223,0},{1367,4218,0},{1365,4217,0},{1363,4222,0},{1360,4222,0},{1360,4220,0}, {1355,4223,0},{1358,4218,0},{1362,4218,0},{1365,4213,0},{1363,4212,0},{1370,4207,0}, {1373,4207,0},{1378,4198,0},{1383,4198,0},{1387,4195,0},{1387,4192,0},{1388,4183,0}, {1393,4180,0},{1392,4172,0},{1393,4170,0},{1393,4168,0},{1407,4162,0},{1413,4153,0}, {1422,4150,0},{1430,4142,0},{1437,4138,0},{1440,4133,0},{1448,4130,0},{1458,4120,0}, {1463,4117,0},{1467,4105,0},{1465,4098,0},{1472,4088,0},{1472,4085,0},{1470,4083,0}, {1472,4082,0},{1470,4080,0},{1470,4077,0},{1472,4077,0},{1473,4073,0},{1477,4072,0}, {1480,4073,0},{1483,4073,0},{1483,4070,0},{1487,4067,0},{1488,4070,0},{1490,4067,0}, {1490,4065,0},{1488,4065,0},{1488,4062,0},{1495,4062,0},{1495,4057,0},{1498,4055,0}, {1498,4053,0},{1502,4052,0},{1500,4052,0},{1498,4052,0},{1497,4050,0},{1498,4047,0}, {1500,4045,0},{1500,4042,0},{1497,4042,0},{1497,4040,0},{1497,4038,0},{1500,4038,0}, {1495,4037,0},{1492,4030,0},{1493,4027,0},{1497,4017,0},{1498,4015,0},{1503,4015,0}, {1505,4013,0},{1507,4010,0},{1510,4010,0},{1515,4008,0},{1520,4005,0},{1523,4005,0}, {1523,4002,0},{1533,4008,0},{1537,4005,0},{1538,4000,0},{1545,3990,0},{1550,3988,0}, {1547,3985,0},{1545,3980,0},{1538,3977,0},{1527,3978,0},{1527,3980,0},{1528,3982,0}, {1527,3982,0},{1518,3985,0},{1517,3985,0},{1513,3982,0},{1508,3982,0},{1507,3977,0}, {1508,3975,0},{1508,3972,0},{1513,3970,0},{1525,3972,0},{1532,3968,0},{1535,3965,0}, {1548,3962,0},{1552,3958,0},{1553,3955,0},{1552,3950,0},{1552,3947,0},{1560,3943,0}, {1560,3947,0},{1563,3948,0},{1563,3947,0},{1562,3945,0},{1563,3945,0},{1565,3945,0}, {1567,3947,0},{1568,3945,0},{1573,3945,0},{1575,3942,0},{1580,3943,0},{1590,3930,0}, {1598,3927,0},{1620,3922,0},{1652,3918,0},{1653,3915,0},{1655,3917,0},{1660,3913,0}, {1662,3917,0},{1668,3917,0},{1672,3913,0},{1672,3915,0},{1677,3913,0},{1688,3908,0}, {1702,3907,0},{1707,3903,0},{1718,3902,0},{1723,3897,0},{1730,3897,0},{1738,3893,0}, {1753,3885,0},{1763,3882,0},{1778,3872,0},{1785,3867,0},{1788,3867,0},{1795,3862,0}, {1800,3860,0},{1803,3862,0},{2313,3562,128},{2308,3568,0},{2303,3570,0}, {2298,3570,0},{2298,3572,0},{2293,3573,0},{2292,3575,0},{2290,3573,0},{2288,3577,0}, {2290,3578,0},{2285,3578,0},{2288,3575,0},{2285,3573,0},{2283,3573,0},{2283,3577,0}, {2280,3578,0},{2282,3578,0},{2283,3578,0},{2282,3582,0},{2275,3588,0},{2267,3598,0}, {2268,3605,0},{2267,3615,0},{2263,3623,0},{2258,3628,0},{2250,3630,0},{2247,3637,0}, {2243,3637,0},{2232,3647,0},{2228,3660,0},{2218,3672,0},{2218,3675,0},{2217,3677,0}, {2213,3682,0},{2203,3690,0},{2202,3690,0},{2200,3688,0},{2197,3688,0},{2197,3683,0}, {2193,3688,0},{2188,3687,0},{2185,3688,0},{2183,3683,0},{2182,3687,0},{2182,3690,0}, {2177,3690,0},{2175,3687,0},{2175,3690,0},{2163,3693,0},{2162,3690,0},{2160,3695,0}, {2158,3695,0},{2157,3697,0},{2153,3697,0},{2148,3698,0},{2147,3702,0},{2127,3710,0}, {2113,3723,0},{2107,3727,0},{2103,3725,0},{2102,3722,0},{2107,3720,0},{2108,3720,0}, {2105,3722,0},{2113,3718,0},{2113,3717,0},{2120,3717,0},{2120,3713,0},{2117,3712,0}, {2115,3712,0},{2108,3710,0},{2107,3710,0},{2107,3707,0},{2103,3707,0},{2102,3708,0}, {2098,3708,0},{2087,3712,0},{2072,3715,0},{2068,3715,0},{2063,3718,0},{2053,3722,0}, {2047,3722,0},{2045,3720,0},{2047,3720,0},{2047,3718,0},{2043,3718,0},{2038,3718,0}, {2035,3718,0},{2020,3718,0},{2005,3722,0},{2003,3722,0},{2003,3720,0},{2000,3720,0}, {1983,3728,0},{1977,3728,0},{1977,3727,0},{1968,3728,0},{1968,3725,0},{1962,3725,0}, {1963,3722,0},{1960,3725,0},{1955,3725,0},{1948,3730,0},{1938,3732,0},{1932,3735,0}, {1918,3737,0},{1905,3743,0},{1900,3743,0},{1895,3742,0},{1892,3743,0},{1885,3743,0}, {1880,3748,0},{1872,3752,0},{1872,3755,0},{1872,3758,0},{1872,3760,0},{1873,3768,0}, {1870,3770,0},{1870,3777,0},{1865,3775,0},{1862,3777,0},{1865,3778,0},{1868,3778,0}, {1867,3778,0},{1862,3778,0},{1853,3795,0},{1842,3807,0},{1837,3813,0},{1830,3808,0}, {1830,3810,0},{1828,3812,0},{1823,3818,0},{1823,3823,0},{1825,3827,0},{1828,3827,0}, {1830,3830,0},{1828,3832,0},{1828,3828,0},{1825,3828,0},{1823,3827,0},{1822,3822,0}, {1822,3828,0},{1818,3837,0},{1820,3838,0},{1822,3838,0},{1822,3840,0},{1818,3843,0}, {1817,3842,0},{1815,3845,0},{1813,3843,0},{1812,3848,0},{1813,3850,0},{1807,3852,0}, {1810,3855,0},{1812,3853,0},{1807,3858,0},{1803,3858,0},{1803,3862,0},{63349,4332,128}, {63344,4333,0},{63346,4335,0},{63344,4337,0},{63348,4337,0},{63351,4335,0}, {63359,4337,0},{63369,4345,0},{63368,4350,0},{63371,4348,0},{63389,4347,0}, {63398,4348,0},{63404,4352,0},{63403,4352,0},{63404,4355,0},{63406,4353,0}, {63406,4357,0},{63408,4358,0},{63408,4375,0},{63414,4382,0},{63421,4385,0}, {63441,4388,0},{63451,4392,0},{63459,4397,0},{63464,4403,0},{63471,4408,0}, {63488,4413,0},{63489,4415,0},{63488,4415,0},{63486,4415,0},{63488,4417,0}, {63493,4418,0},{63498,4425,0},{63518,4435,0},{63524,4440,0},{63529,4443,0}, {63538,4448,0},{63538,4450,0},{63541,4452,0},{63543,4452,0},{63549,4448,0}, {63549,4447,0},{63554,4447,0},{63553,4445,0},{63554,4442,0},{63559,4440,0}, {63564,4443,0},{63576,4445,0},{63581,4447,0},{63583,4450,0},{63586,4450,0}, {63591,4450,0},{63603,4442,0},{63604,4440,0},{63609,4437,0},{63618,4430,0}, {63629,4425,0},{63641,4425,0},{63639,4427,0},{63639,4428,0},{63644,4425,0}, {63649,4427,0},{63649,4428,0},{63653,4428,0},{63666,4423,0},{63666,4425,0}, {63674,4418,0},{63679,4418,0},{63691,4408,0},{63698,4407,0},{63708,4407,0}, {63729,4403,0},{63741,4402,0},{63753,4405,0},{63761,4405,0},{63763,4402,0}, {63769,4400,0},{63778,4393,0},{63786,4395,0},{63803,4402,0},{63801,4403,0}, {63803,4403,0},{63813,4410,0},{63818,4412,0},{63818,4413,0},{63826,4415,0}, {63824,4417,0},{63826,4418,0},{63833,4423,0},{63843,4428,0},{63851,4433,0}, {63851,4435,0},{63856,4437,0},{63863,4442,0},{63866,4445,0},{63873,4445,0}, {63881,4442,0},{63878,4445,0},{63883,4447,0},{63888,4448,0},{63901,4442,0}, {63911,4445,0},{63918,4447,0},{63918,4450,0},{63916,4480,0},{63914,4483,0}, {63913,4487,0},{63918,4490,0},{63918,4495,0},{63919,4495,0},{63924,4505,0}, {63936,4513,0},{63943,4527,0},{63941,4528,0},{63936,4528,0},{63933,4530,0}, {63926,4528,0},{63924,4530,0},{63926,4533,0},{63928,4535,0},{63929,4540,0}, {63933,4542,0},{63933,4540,0},{63933,4538,0},{63938,4537,0},{63939,4538,0}, {63941,4557,0},{63939,4558,0},{63936,4560,0},{63933,4558,0},{63933,4560,0}, {63931,4562,0},{63933,4562,0},{63933,4563,0},{63934,4562,0},{63938,4562,0}, {63939,4563,0},{63943,4563,0},{63946,4565,0},{63951,4562,0},{63958,4568,0}, {63956,4577,0},{63953,4582,0},{63958,4588,0},{63959,4592,0},{63958,4595,0}, {63956,4598,0},{63951,4597,0},{63951,4603,0},{63949,4605,0},{63949,4607,0}, {63949,4610,0},{63953,4605,0},{63956,4608,0},{63954,4602,0},{63958,4605,0}, {63963,4612,0},{63966,4618,0},{63964,4625,0},{63959,4627,0},{63954,4625,0}, {63953,4623,0},{63949,4628,0},{63938,4633,0},{63943,4633,0},{63939,4637,0}, {63941,4640,0},{63946,4638,0},{63944,4643,0},{63939,4648,0},{63948,4645,0}, {63951,4642,0},{63953,4632,0},{63959,4637,0},{63963,4637,0},{63964,4632,0}, {63973,4637,0},{63984,4648,0},{63984,4650,0},{63981,4650,0},{63984,4652,0}, {63993,4662,0},{63994,4667,0},{63996,4665,0},{64004,4677,0},{64013,4688,0}, {64016,4695,0},{64014,4697,0},{64008,4698,0},{64003,4708,0},{63999,4705,0}, {63996,4700,0},{63986,4697,0},{63981,4697,0},{63986,4700,0},{63988,4707,0}, {63988,4710,0},{63991,4713,0},{63989,4718,0},{63991,4723,0},{63994,4723,0}, {63996,4720,0},{64001,4717,0},{64006,4717,0},{64006,4710,0},{64009,4712,0}, {64009,4708,0},{64011,4708,0},{64014,4707,0},{64018,4707,0},{64024,4712,0}, {64028,4717,0},{64033,4722,0},{64038,4722,0},{64039,4727,0},{64043,4727,0}, {64044,4732,0},{64046,4737,0},{64048,4738,0},{64051,4737,0},{64051,4735,0}, {64048,4733,0},{64049,4730,0},{64051,4728,0},{64058,4733,0},{64069,4745,0}, {64064,4750,0},{64059,4748,0},{64056,4750,0},{64054,4752,0},{64039,4742,0}, {64034,4742,0},{64028,4742,0},{64024,4742,0},{64028,4748,0},{64034,4752,0}, {64038,4753,0},{64036,4757,0},{64038,4757,0},{64043,4757,0},{64053,4763,0}, {64054,4765,0},{64058,4765,0},{64064,4768,0},{64068,4770,0},{64069,4773,0}, {64079,4780,0},{64074,4783,0},{64069,4792,0},{64064,4792,0},{64066,4793,0}, {64069,4793,0},{64073,4792,0},{64073,4798,0},{64068,4800,0},{64059,4798,0}, {64059,4800,0},{64064,4802,0},{64073,4802,0},{64079,4793,0},{64078,4788,0}, {64076,4787,0},{64076,4783,0},{64081,4780,0},{64078,4778,0},{64076,4775,0}, {64081,4772,0},{64084,4773,0},{64088,4772,0},{64094,4770,0},{64101,4772,0}, {64106,4778,0},{64114,4778,0},{64114,4780,0},{64114,4782,0},{64111,4788,0}, {64113,4792,0},{64111,4793,0},{64119,4795,0},{64123,4795,0},{64124,4792,0}, {64126,4792,0},{64126,4790,0},{64128,4792,0},{64126,4795,0},{64121,4802,0}, {64111,4798,0},{64104,4798,0},{64104,4800,0},{64108,4800,0},{64109,4803,0}, {64114,4802,0},{64119,4805,0},{64129,4805,0},{64131,4800,0},{64136,4793,0}, {64136,4798,0},{64139,4802,0},{64146,4792,0},{64158,4787,0},{64164,4788,0}, {64164,4793,0},{64166,4793,0},{64168,4788,0},{64176,4790,0},{64178,4792,0}, {64178,4797,0},{64183,4797,0},{64186,4798,0},{64184,4800,0},{64183,4798,0}, {64181,4798,0},{64181,4800,0},{64178,4800,0},{64179,4803,0},{64181,4803,0}, {64181,4805,0},{64183,4802,0},{64184,4803,0},{64184,4807,0},{64179,4810,0}, {64176,4810,0},{64178,4812,0},{64176,4815,0},{64171,4815,0},{64163,4820,0}, {64161,4818,0},{64156,4825,0},{64154,4828,0},{64159,4833,0},{64168,4833,0}, {64176,4835,0},{64179,4833,0},{64183,4837,0},{64181,4838,0},{64183,4843,0}, {64183,4845,0},{64184,4845,0},{64184,4848,0},{64186,4848,0},{64183,4852,0}, {64183,4853,0},{64191,4852,0},{64193,4848,0},{64199,4848,0},{64199,4850,0}, {64194,4852,0},{64191,4860,0},{64193,4863,0},{64191,4867,0},{64194,4873,0}, {64193,4873,0},{64199,4880,0},{64201,4878,0},{64204,4880,0},{64208,4880,0}, {64209,4885,0},{64211,4882,0},{64216,4882,0},{64224,4882,0},{64241,4892,0}, {64243,4892,0},{64243,4895,0},{64244,4893,0},{64254,4897,0},{64261,4892,0}, {64269,4890,0},{64269,4888,0},{64269,4887,0},{64281,4888,0},{64281,4885,0}, {64279,4885,0},{64281,4883,0},{64284,4883,0},{64286,4880,0},{64293,4878,0}, {64289,4877,0},{64293,4873,0},{64296,4877,0},{64294,4887,0},{64293,4887,0}, {64286,4892,0},{64288,4895,0},{64293,4897,0},{64303,4898,0},{64304,4902,0}, {64303,4903,0},{64306,4903,0},{64306,4905,0},{64308,4907,0},{64306,4907,0}, {64306,4910,0},{64311,4910,0},{64311,4915,0},{64313,4917,0},{64318,4915,0}, {64321,4918,0},{64319,4920,0},{64321,4920,0},{64324,4918,0},{64323,4917,0}, {64326,4915,0},{64326,4910,0},{64329,4915,0},{64331,4915,0},{64324,4920,0}, {64326,4923,0},{64331,4922,0},{64331,4918,0},{64333,4918,0},{64334,4920,0}, {64334,4922,0},{64336,4920,0},{64341,4925,0},{64341,4928,0},{64338,4932,0}, {64331,4933,0},{64329,4935,0},{64326,4937,0},{64324,4935,0},{64314,4940,0}, {64314,4938,0},{64321,4932,0},{64316,4932,0},{64319,4927,0},{64321,4927,0}, {64319,4923,0},{64318,4925,0},{64313,4923,0},{64313,4928,0},{64308,4927,0}, {64308,4928,0},{64311,4930,0},{64309,4932,0},{64306,4932,0},{64306,4935,0}, {64308,4937,0},{64313,4935,0},{64313,4938,0},{64308,4943,0},{64304,4942,0}, {64301,4945,0},{64299,4945,0},{64301,4948,0},{64301,4953,0},{64298,4955,0}, {64294,4955,0},{64293,4958,0},{64283,4960,0},{64281,4958,0},{64284,4957,0}, {64288,4957,0},{64284,4957,0},{64278,4958,0},{64273,4957,0},{64269,4958,0}, {64271,4960,0},{64271,4962,0},{64266,4965,0},{64259,4968,0},{64256,4965,0}, {64256,4970,0},{64258,4970,0},{64258,4972,0},{64263,4972,0},{64261,4975,0}, {64259,4973,0},{64259,4977,0},{64256,4980,0},{64249,4982,0},{64248,4983,0}, {64248,4987,0},{64246,4987,0},{64244,4987,0},{64244,4985,0},{64243,4985,0}, {64241,4990,0},{64233,4995,0},{64228,4995,0},{64216,4993,0},{64216,4995,0}, {64213,4995,0},{64208,4998,0},{64201,4998,0},{64201,5003,0},{64193,5002,0}, {64189,5003,0},{64184,5003,0},{64181,5007,0},{64174,5008,0},{64174,5010,0}, {64168,5010,0},{64159,5013,0},{64153,5015,0},{64138,5015,0},{64131,5018,0}, {64114,5017,0},{64106,5022,0},{64091,5018,0},{64079,5020,0},{64069,5023,0}, {64061,5025,0},{64058,5027,0},{64049,5028,0},{64041,5033,0},{64034,5035,0}, {64023,5045,0},{64018,5047,0},{64016,5048,0},{64004,5050,0},{63994,5048,0}, {63991,5048,0},{63988,5047,0},{63978,5043,0},{63959,5035,0},{63956,5033,0}, {63956,5035,0},{63953,5032,0},{63949,5030,0},{63948,5028,0},{63946,5027,0}, {63939,5023,0},{63938,5018,0},{63938,5017,0},{63943,5015,0},{63944,5010,0}, {63949,5003,0},{63958,5003,0},{63964,4997,0},{63973,4998,0},{63976,4997,0}, {63976,4993,0},{63979,4990,0},{63993,4990,0},{63994,4988,0},{63993,4987,0}, {63991,4972,0},{63988,4968,0},{63981,4963,0},{63978,4963,0},{63973,4967,0}, {63968,4967,0},{63966,4965,0},{63964,4967,0},{63956,4972,0},{63948,4972,0}, {63946,4973,0},{63939,4970,0},{63933,4970,0},{63929,4972,0},{63924,4973,0}, {63921,4980,0},{63919,4980,0},{63919,4983,0},{63914,4987,0},{63904,4983,0}, {63894,4985,0},{63894,4988,0},{63881,4985,0},{63876,4982,0},{63868,4978,0}, {63866,4977,0},{63866,4975,0},{63863,4973,0},{63859,4975,0},{63854,4978,0}, {63853,4982,0},{63851,4985,0},{63851,4983,0},{63849,4972,0},{63844,4960,0}, {63823,4952,0},{63809,4945,0},{63799,4942,0},{63794,4947,0},{63789,4947,0}, {63788,4948,0},{63783,4948,0},{63783,4950,0},{63779,4948,0},{63771,4950,0}, {63768,4953,0},{63759,4952,0},{63739,4943,0},{63726,4942,0},{63721,4945,0}, {63716,4940,0},{63694,4937,0},{63671,4925,0},{63641,4913,0},{63628,4907,0}, {63601,4900,0},{63574,4888,0},{63551,4883,0},{63546,4883,0},{63536,4878,0}, {63539,4877,0},{63539,4875,0},{63533,4878,0},{63494,4860,0},{63439,4845,0}, {63438,4843,0},{63436,4843,0},{63438,4845,0},{63436,4847,0},{63431,4843,0}, {63419,4840,0},{63413,4837,0},{63399,4835,0},{63356,4820,0},{63324,4805,0}, {63296,4797,0},{63289,4793,0},{63271,4788,0},{63249,4787,0},{63236,4783,0}, {63224,4778,0},{63213,4777,0},{63181,4765,0},{63153,4760,0},{63133,4750,0}, {63133,4745,0},{63131,4747,0},{63131,4748,0},{63121,4743,0},{63108,4738,0}, {63106,4738,0},{63108,4737,0},{63108,4735,0},{63104,4737,0},{63099,4733,0}, {63083,4730,0},{63066,4722,0},{63059,4722,0},{63054,4717,0},{63049,4715,0}, {63046,4715,0},{63046,4712,0},{63038,4713,0},{63038,4703,0},{63036,4702,0}, {63033,4703,0},{63033,4700,0},{63031,4700,0},{63033,4692,0},{63031,4693,0}, {63029,4688,0},{63026,4683,0},{63023,4680,0},{63023,4677,0},{63021,4675,0}, {63018,4667,0},{63021,4652,0},{63018,4632,0},{63014,4620,0},{63004,4593,0}, {62993,4573,0},{62986,4567,0},{62981,4553,0},{62979,4532,0},{62978,4518,0}, {62979,4515,0},{62984,4515,0},{62991,4500,0},{63001,4490,0},{63008,4468,0}, {63011,4438,0},{63021,4433,0},{63019,4437,0},{63013,4440,0},{63014,4440,0}, {63013,4442,0},{63016,4443,0},{63021,4437,0},{63023,4433,0},{63029,4423,0}, {63031,4413,0},{63038,4408,0},{63038,4407,0},{63041,4407,0},{63049,4405,0}, {63054,4400,0},{63063,4395,0},{63069,4398,0},{63074,4397,0},{63086,4385,0}, {63094,4375,0},{63103,4370,0},{63113,4368,0},{63133,4370,0},{63139,4368,0}, {63146,4370,0},{63159,4367,0},{63169,4367,0},{63176,4368,0},{63179,4380,0}, {63181,4377,0},{63184,4375,0},{63186,4377,0},{63191,4377,0},{63201,4368,0}, {63199,4365,0},{63204,4363,0},{63211,4365,0},{63228,4362,0},{63234,4355,0}, {63236,4350,0},{63244,4345,0},{63248,4340,0},{63254,4337,0},{63268,4335,0}, {63279,4330,0},{63286,4332,0},{63291,4328,0},{63298,4328,0},{63303,4325,0}, {63308,4325,0},{63309,4323,0},{63314,4325,0},{63314,4330,0},{63313,4332,0}, {63319,4332,0},{63318,4328,0},{63319,4327,0},{63321,4325,0},{63324,4327,0}, {63329,4325,0},{63336,4327,0},{63341,4327,0},{63341,4330,0},{63344,4328,0}, {63349,4332,0},{2793,63954,129},{2792,63954,1},{2783,63958,1},{2775,63969,1}, {2773,63978,1},{2775,63981,1},{2780,63993,1},{2787,63999,1},{2790,63998,1}, {2793,63999,1},{2797,63998,1},{2802,63999,1},{2803,63996,1},{2810,63996,1}, {2812,63994,1},{2817,63996,1},{2818,63994,1},{2817,63993,1},{2813,63993,1}, {2813,63989,1},{2815,63984,1},{2815,63974,1},{2817,63966,1},{2807,63966,1}, {2802,63958,1},{2800,63954,1},{2793,63954,1},{2857,63913,129},{2857,63904,1}, {2853,63901,1},{2853,63898,1},{2842,63888,1},{2842,63883,1},{2838,63879,1}, {2838,63871,1},{2837,63866,1},{2837,63861,1},{2837,63851,1},{2835,63844,1}, {2825,63851,1},{2820,63853,1},{2807,63864,1},{2798,63868,1},{2802,63883,1}, {2812,63891,1},{2813,63894,1},{2822,63896,1},{2830,63901,1},{2837,63901,1}, {2840,63908,1},{2847,63913,1},{2852,63924,1},{2855,63924,1},{2858,63924,1}, {2855,63916,1},{2857,63913,1},{375,892,129},{370,897,1},{363,895,1},{352,887,1}, {342,882,1},{338,878,1},{332,878,1},{327,873,1},{320,868,1},{323,860,1}, {325,850,1},{327,845,1},{333,842,1},{343,845,1},{347,847,1},{347,858,1}, {352,858,1},{355,862,1},{367,863,1},{377,870,1},{375,882,1},{375,892,1}, {64398,4328,129},{64399,4335,1},{64398,4338,1},{64396,4340,1},{64374,4337,1}, {64363,4343,1},{64356,4345,1},{64348,4350,1},{64344,4348,1},{64343,4347,1}, {64343,4343,1},{64351,4337,1},{64351,4332,1},{64353,4328,1},{64359,4322,1}, {64363,4322,1},{64369,4325,1},{64379,4325,1},{64393,4325,1},{64396,4327,1}, {64398,4328,1},{64943,3918,129},{64934,3918,1},{64929,3922,1},{64924,3922,1}, {64921,3920,1},{64919,3918,1},{64918,3920,1},{64911,3920,1},{64906,3925,1}, {64904,3928,1},{64909,3927,1},{64909,3930,1},{64911,3928,1},{64911,3930,1}, {64906,3933,1},{64906,3935,1},{64903,3938,1},{64899,3938,1},{64898,3940,1}, {64901,3942,1},{64904,3938,1},{64906,3942,1},{64893,3945,1},{64889,3948,1}, {64889,3953,1},{64891,3957,1},{64898,3957,1},{64906,3953,1},{64918,3953,1}, {64923,3950,1},{64921,3948,1},{64916,3950,1},{64918,3947,1},{64914,3945,1}, {64918,3943,1},{64918,3942,1},{64921,3943,1},{64924,3942,1},{64929,3943,1}, {64931,3940,1},{64941,3937,1},{64946,3935,1},{64956,3937,1},{64963,3932,1}, {64963,3930,1},{64956,3930,1},{64951,3928,1},{64949,3923,1},{64944,3920,1}, {64946,3920,1},{64943,3918,1},{2398,3288,130},{2390,3285,2},{2390,3278,2}, {2388,3283,2},{2387,3283,2},{2385,3287,2},{2382,3288,2},{2372,3287,2},{2372,3285,2}, {2372,3282,2},{2368,3285,2},{2370,3287,2},{2368,3287,2},{2367,3285,2},{2362,3285,2}, {2358,3282,2},{2357,3282,2},{2357,3278,2},{2358,3278,2},{2358,3275,2},{2362,3275,2}, {2363,3272,2},{2363,3268,2},{2362,3268,2},{2358,3270,2},{2357,3273,2},{2355,3273,2}, {2353,3270,2},{2355,3267,2},{2350,3260,2},{2348,3263,2},{2350,3270,2},{2353,3273,2}, {2355,3278,2},{2352,3287,2},{2347,3282,2},{2350,3287,2},{2343,3290,2},{2343,3287,2}, {2338,3282,2},{2335,3290,2},{2330,3292,2},{2328,3288,2},{2333,3287,2},{2332,3283,2}, {2328,3285,2},{2327,3283,2},{2330,3282,2},{2328,3280,2},{2327,3280,2},{2327,3277,2}, {2323,3275,2},{2323,3272,2},{2320,3273,2},{2318,3270,2},{2315,3270,2},{2313,3268,2}, {2312,3270,2},{2308,3268,2},{2308,3265,2},{2307,3268,2},{2305,3263,2},{2303,3265,2}, {2300,3263,2},{2298,3265,2},{2292,3260,2},{2293,3255,2},{2288,3257,2},{2278,3257,2}, {2277,3255,2},{2277,3252,2},{2275,3252,2},{2272,3242,2},{2265,3238,2},{2262,3237,2}, {2263,3232,2},{2267,3232,2},{2268,3228,2},{2272,3228,2},{2273,3225,2},{2277,3225,2}, {2277,3222,2},{2277,3217,2},{2280,3217,2},{2277,3215,2},{2277,3212,2},{2275,3212,2}, {2277,3207,2},{2273,3205,2},{2273,3200,2},{2272,3200,2},{2270,3198,2},{2268,3197,2}, {2265,3193,2},{2265,3188,2},{2263,3188,2},{2262,3185,2},{2258,3183,2},{2258,3185,2}, {2257,3187,2},{2255,3185,2},{2258,3183,2},{2257,3178,2},{2260,3177,2},{2262,3168,2}, {2265,3167,2},{2265,3165,2},{2263,3167,2},{2262,3165,2},{2257,3168,2},{2252,3173,2}, {2252,3177,2},{2248,3182,2},{2250,3177,2},{2248,3175,2},{2247,3177,2},{2247,3173,2}, {2243,3173,2},{2247,3170,2},{2247,3168,2},{2240,3168,2},{2238,3165,2},{2238,3167,2}, {2233,3160,2},{2223,3147,2},{2223,3148,2},{2220,3143,2},{2215,3138,2},{2213,3135,2}, {2210,3137,2},{2203,3135,2},{2197,3135,2},{2192,3132,2},{2185,3123,2},{2182,3122,2}, {2182,3118,2},{2180,3120,2},{2177,3117,2},{2173,3118,2},{2165,3117,2},{2160,3110,2}, {2150,3103,2},{2152,3107,2},{2162,3113,2},{2162,3118,2},{2170,3120,2},{2172,3122,2}, {2175,3122,2},{2177,3122,2},{2177,3125,2},{2178,3127,2},{2177,3130,2},{2192,3138,2}, {2207,3140,2},{2213,3143,2},{2213,3147,2},{2218,3152,2},{2218,3150,2},{2220,3153,2}, {2218,3155,2},{2222,3155,2},{2225,3160,2},{2223,3168,2},{2225,3165,2},{2227,3165,2}, {2230,3162,2},{2232,3165,2},{2232,3167,2},{2233,3167,2},{2232,3170,2},{2233,3168,2}, {2235,3172,2},{2237,3177,2},{2237,3178,2},{2237,3180,2},{2233,3182,2},{2235,3183,2}, {2238,3183,2},{2238,3182,2},{2240,3183,2},{2242,3180,2},{2242,3190,2},{2245,3188,2}, {2247,3193,2},{2250,3193,2},{2248,3197,2},{2255,3195,2},{2257,3193,2},{2255,3198,2}, {2257,3198,2},{2260,3197,2},{2265,3200,2},{2265,3203,2},{2263,3205,2},{2267,3203,2}, {2272,3212,2},{2273,3215,2},{2272,3218,2},{2270,3222,2},{2268,3222,2},{2268,3225,2}, {2265,3223,2},{2263,3228,2},{2260,3228,2},{2260,3232,2},{2257,3230,2},{2255,3225,2}, {2252,3225,2},{2255,3230,2},{2252,3232,2},{2252,3233,2},{2253,3232,2},{2260,3233,2}, {2260,3242,2},{2265,3242,2},{2268,3245,2},{2270,3248,2},{2272,3247,2},{2275,3258,2}, {2282,3260,2},{2283,3260,2},{2283,3263,2},{2287,3262,2},{2287,3260,2},{2290,3260,2}, {2288,3263,2},{2290,3263,2},{2292,3263,2},{2293,3265,2},{2292,3270,2},{2295,3268,2}, {2297,3270,2},{2295,3272,2},{2293,3270,2},{2293,3272,2},{2298,3273,2},{2300,3273,2}, {2300,3275,2},{2305,3273,2},{2307,3275,2},{2307,3278,2},{2302,3278,2},{2298,3287,2}, {2292,3293,2},{2295,3293,2},{2292,3298,2},{2292,3307,2},{2297,3300,2},{2297,3295,2}, {2298,3295,2},{2297,3293,2},{2300,3293,2},{2302,3295,2},{2303,3293,2},{2307,3290,2}, {2307,3287,2},{2308,3287,2},{2313,3285,2},{2317,3285,2},{2317,3288,2},{2313,3293,2}, {2313,3297,2},{2322,3292,2},{2323,3290,2},{2325,3292,2},{2325,3297,2},{2323,3295,2}, {2322,3300,2},{2323,3302,2},{2327,3300,2},{2333,3302,2},{2333,3298,2},{2335,3297,2}, {2337,3298,2},{2337,3300,2},{2340,3300,2},{2342,3298,2},{2340,3297,2},{2338,3297,2}, {2340,3295,2},{2342,3297,2},{2345,3292,2},{2347,3292,2},{2348,3293,2},{2348,3290,2}, {2352,3290,2},{2350,3300,2},{2352,3303,2},{2352,3297,2},{2355,3297,2},{2353,3295,2}, {2357,3295,2},{2355,3293,2},{2357,3292,2},{2358,3290,2},{2362,3290,2},{2363,3292,2}, {2365,3292,2},{2362,3298,2},{2363,3297,2},{2365,3298,2},{2367,3298,2},{2368,3300,2}, {2370,3298,2},{2372,3300,2},{2373,3297,2},{2375,3298,2},{2377,3295,2},{2382,3293,2}, {2387,3288,2},{2388,3290,2},{2392,3288,2},{2393,3290,2},{2398,3288,2},{1163,3732,130}, {1167,3728,2},{1170,3730,2},{1170,3733,2},{1173,3730,2},{1177,3730,2},{1180,3728,2}, {1183,3722,2},{1180,3718,2},{1180,3713,2},{1185,3712,2},{1185,3710,2},{1180,3708,2}, {1183,3707,2},{1183,3703,2},{1188,3703,2},{1188,3700,2},{1190,3698,2},{1193,3700,2}, {1205,3700,2},{1210,3702,2},{1212,3700,2},{1213,3702,2},{1217,3702,2},{1225,3707,2}, {1228,3713,2},{1227,3717,2},{1222,3717,2},{1220,3727,2},{1222,3728,2},{1225,3728,2}, {1228,3732,2},{1227,3735,2},{1228,3738,2},{1230,3748,2},{1228,3752,2},{1223,3755,2}, {1217,3755,2},{1212,3760,2},{1202,3758,2},{1200,3757,2},{1198,3757,2},{1192,3753,2}, {1190,3748,2},{1183,3752,2},{1183,3748,2},{1180,3745,2},{1173,3743,2},{1165,3742,2}, {1162,3737,2},{1163,3732,2},{465,3617,130},{462,3618,2},{460,3617,2},{453,3620,2}, {448,3620,2},{445,3622,2},{433,3618,2},{430,3622,2},{418,3622,2},{413,3625,2}, {407,3622,2},{403,3622,2},{400,3620,2},{397,3620,2},{395,3618,2},{392,3620,2}, {388,3622,2},{375,3627,2},{368,3625,2},{368,3622,2},{360,3620,2},{352,3620,2}, {337,3625,2},{335,3625,2},{332,3622,2},{325,3628,2},{318,3630,2},{318,3633,2}, {312,3638,2},{302,3638,2},{298,3643,2},{290,3653,2},{290,3665,2},{288,3668,2}, {285,3670,2},{282,3670,2},{273,3670,2},{272,3668,2},{248,3670,2},{242,3665,2}, {240,3662,2},{242,3660,2},{240,3655,2},{245,3652,2},{248,3653,2},{252,3653,2}, {257,3652,2},{265,3643,2},{272,3645,2},{285,3638,2},{292,3628,2},{295,3625,2}, {298,3625,2},{297,3622,2},{298,3618,2},{298,3613,2},{302,3612,2},{303,3613,2}, {312,3615,2},{317,3613,2},{322,3615,2},{320,3612,2},{322,3610,2},{325,3603,2}, {332,3598,2},{332,3595,2},{342,3593,2},{347,3595,2},{355,3593,2},{355,3592,2}, {348,3593,2},{348,3590,2},{355,3590,2},{363,3583,2},{370,3583,2},{378,3585,2}, {388,3587,2},{395,3585,2},{413,3593,2},{438,3592,2},{458,3595,2},{463,3598,2}, {463,3600,2},{458,3600,2},{452,3603,2},{455,3605,2},{457,3603,2},{462,3603,2}, {463,3603,2},{462,3613,2},{463,3613,2},{465,3612,2},{467,3613,2},{467,3617,2}, {465,3617,2},{65528,2973,130},{65528,2975,2},{65523,2978,2},{65523,2980,2}, {65519,2982,2},{65519,2985,2},{65521,2987,2},{65521,2990,2},{65518,2988,2}, {65508,2988,2},{65498,2982,2},{65494,2975,2},{65491,2968,2},{65488,2965,2}, {65489,2965,2},{65488,2963,2},{65479,2960,2},{65476,2957,2},{65473,2948,2}, {65474,2947,2},{65476,2943,2},{65469,2942,2},{65466,2937,2},{65474,2938,2}, {65478,2933,2},{65476,2932,2},{65478,2930,2},{65479,2932,2},{65483,2935,2}, {65488,2932,2},{65489,2937,2},{65494,2938,2},{65498,2938,2},{65503,2943,2}, {65511,2945,2},{65519,2950,2},{65524,2967,2},{65528,2970,2},{65528,2975,2}, {65368,2922,130},{65366,2925,2},{65363,2925,2},{65363,2927,2},{65358,2927,2}, {65353,2928,2},{65346,2928,2},{65343,2930,2},{65343,2932,2},{65338,2933,2}, {65338,2935,2},{65336,2933,2},{65333,2937,2},{65331,2937,2},{65333,2933,2}, {65329,2933,2},{65329,2932,2},{65326,2932,2},{65329,2928,2},{65323,2927,2}, {65324,2927,2},{65328,2927,2},{65326,2925,2},{65323,2925,2},{65321,2927,2}, {65319,2928,2},{65321,2923,2},{65319,2920,2},{65316,2922,2},{65316,2918,2}, {65313,2918,2},{65311,2920,2},{65309,2918,2},{65311,2917,2},{65309,2915,2}, {65303,2912,2},{65308,2912,2},{65304,2910,2},{65304,2908,2},{65296,2905,2}, {65298,2905,2},{65299,2907,2},{65306,2903,2},{65306,2902,2},{65299,2900,2}, {65298,2898,2},{65296,2890,2},{65288,2888,2},{65289,2888,2},{65288,2887,2}, {65289,2885,2},{65291,2883,2},{65299,2885,2},{65304,2893,2},{65304,2895,2}, {65309,2897,2},{65311,2897,2},{65303,2888,2},{65308,2892,2},{65311,2893,2}, {65313,2892,2},{65311,2888,2},{65309,2887,2},{65314,2885,2},{65318,2887,2}, {65319,2887,2},{65319,2888,2},{65321,2890,2},{65323,2885,2},{65326,2890,2}, {65326,2892,2},{65331,2897,2},{65336,2895,2},{65338,2893,2},{65334,2890,2}, {65333,2892,2},{65331,2890,2},{65331,2888,2},{65334,2888,2},{65339,2890,2}, {65339,2893,2},{65343,2895,2},{65353,2900,2},{65356,2903,2},{65358,2902,2}, {65361,2902,2},{65361,2903,2},{65369,2910,2},{65374,2908,2},{65373,2907,2}, {65366,2902,2},{65369,2902,2},{65374,2903,2},{65378,2905,2},{65373,2912,2}, {65373,2915,2},{65369,2918,2},{65366,2923,2},{65268,1818,130},{65269,1822,2}, {65281,1825,2},{65286,1822,2},{65294,1823,2},{65296,1823,2},{65296,1827,2}, {65301,1828,2},{65324,1830,2},{65334,1818,2},{65338,1818,2},{65344,1817,2}, {65348,1818,2},{65353,1817,2},{65358,1805,2},{65364,1805,2},{65369,1808,2}, {65371,1812,2},{65369,1813,2},{65364,1815,2},{65364,1820,2},{65363,1820,2}, {65366,1822,2},{65371,1818,2},{65376,1820,2},{65378,1825,2},{65376,1828,2}, {65369,1828,2},{65369,1832,2},{65371,1833,2},{65371,1835,2},{65376,1840,2}, {65376,1843,2},{65374,1847,2},{65376,1848,2},{65378,1852,2},{65369,1848,2}, {65364,1845,2},{65358,1830,2},{65356,1832,2},{65354,1830,2},{65353,1830,2}, {65349,1828,2},{65346,1828,2},{65341,1828,2},{65336,1830,2},{65336,1835,2}, {65334,1837,2},{65338,1838,2},{65339,1842,2},{65339,1843,2},{65331,1840,2}, {65318,1842,2},{65318,1847,2},{65328,1857,2},{65328,1860,2},{65323,1860,2}, {65318,1855,2},{65313,1843,2},{65311,1845,2},{65309,1850,2},{65306,1840,2}, {65296,1835,2},{65289,1828,2},{65279,1830,2},{65268,1825,2},{65264,1822,2}, {65264,1818,2},{65268,1818,2},{64594,2855,130},{64593,2853,2},{64594,2853,2}, {64598,2852,2},{64599,2850,2},{64598,2848,2},{64594,2848,2},{64591,2848,2}, {64589,2847,2},{64589,2850,2},{64586,2853,2},{64583,2845,2},{64584,2835,2}, {64583,2833,2},{64583,2832,2},{64593,2835,2},{64596,2833,2},{64598,2832,2}, {64606,2833,2},{64608,2832,2},{64614,2835,2},{64619,2832,2},{64628,2833,2}, {64639,2848,2},{64648,2853,2},{64668,2873,2},{64686,2887,2},{64688,2888,2}, {64686,2892,2},{64688,2890,2},{64676,2910,2},{64671,2915,2},{64656,2910,2}, {64651,2908,2},{64649,2905,2},{64636,2900,2},{64633,2892,2},{64628,2890,2}, {64623,2885,2},{64616,2880,2},{64604,2872,2},{64603,2870,2},{64599,2873,2}, {64591,2872,2},{64591,2870,2},{64596,2867,2},{64596,2862,2},{64593,2853,2}, {64709,3057,130},{64716,3057,2},{64721,3058,2},{64726,3053,2},{64729,3053,2}, {64733,3050,2},{64734,3045,2},{64736,3045,2},{64739,3042,2},{64741,3042,2}, {64743,3038,2},{64746,3035,2},{64748,3033,2},{64748,3030,2},{64751,3027,2}, {64759,3027,2},{64766,3023,2},{64774,3020,2},{64781,3022,2},{64789,3022,2}, {64794,3018,2},{64799,3018,2},{64803,3015,2},{64806,3015,2},{64813,3012,2}, {64816,3008,2},{64824,2997,2},{64828,2985,2},{64831,2978,2},{64841,2972,2}, {64846,2967,2},{64853,2963,2},{64858,2955,2},{64866,2950,2},{64874,2948,2}, {64879,2948,2},{64883,2948,2},{64884,2948,2},{64883,2947,2},{64884,2943,2}, {64889,2940,2},{64894,2940,2},{64908,2933,2},{64914,2933,2},{64918,2932,2}, {64919,2928,2},{64923,2927,2},{64928,2918,2},{64944,2918,2},{64946,2923,2}, {64954,2932,2},{64959,2933,2},{64961,2935,2},{64961,2933,2},{64964,2935,2}, {64973,2933,2},{64974,2933,2},{64971,2937,2},{64973,2938,2},{64983,2933,2}, {64989,2928,2},{65013,2915,2},{65023,2913,2},{65028,2910,2},{65034,2912,2}, {65058,2910,2},{65068,2912,2},{65074,2910,2},{65081,2915,2},{65086,2917,2}, {65086,2918,2},{65084,2920,2},{65094,2920,2},{65101,2922,2},{65106,2922,2}, {65124,2927,2},{65131,2923,2},{65124,2922,2},{65101,2915,2},{65104,2905,2}, {65108,2905,2},{65114,2910,2},{65118,2910,2},{65121,2908,2},{65126,2910,2}, {65133,2908,2},{65136,2910,2},{65144,2910,2},{65146,2912,2},{65149,2910,2}, {65153,2913,2},{65159,2910,2},{65169,2915,2},{65193,2913,2},{65201,2915,2}, {65203,2922,2},{65203,2920,2},{65201,2932,2},{65198,2935,2},{65183,2933,2}, {65178,2935,2},{65159,2933,2},{65154,2937,2},{65146,2938,2},{65139,2943,2}, {65134,2943,2},{65126,2948,2},{65119,2950,2},{65116,2953,2},{65111,2955,2}, {65101,2960,2},{65098,2965,2},{65094,2967,2},{65091,2965,2},{65093,2967,2}, {65078,2965,2},{65058,2960,2},{65051,2960,2},{65049,2962,2},{65046,2958,2}, {65044,2960,2},{65044,2962,2},{65043,2967,2},{65041,2968,2},{65039,2973,2}, {65034,2978,2},{65031,2977,2},{65026,2982,2},{65019,2982,2},{65018,2980,2}, {65016,2982,2},{65014,2982,2},{65013,2980,2},{65009,2980,2},{65009,2978,2}, {65003,2978,2},{64994,2975,2},{64991,2973,2},{64979,2985,2},{64966,2990,2}, {64959,2993,2},{64948,2995,2},{64944,2995,2},{64941,2988,2},{64936,2983,2}, {64936,2978,2},{64931,2973,2},{64924,2972,2},{64916,2973,2},{64909,2972,2}, {64908,2975,2},{64899,2982,2},{64891,2990,2},{64888,2995,2},{64886,2995,2}, {64891,3007,2},{64889,3015,2},{64874,3028,2},{64873,3032,2},{64861,3040,2}, {64856,3040,2},{64839,3057,2},{64834,3058,2},{64833,3055,2},{64826,3055,2}, {64824,3053,2},{64826,3050,2},{64824,3050,2},{64819,3053,2},{64818,3053,2}, {64814,3055,2},{64801,3062,2},{64793,3058,2},{64788,3060,2},{64786,3058,2}, {64784,3058,2},{64781,3062,2},{64778,3062,2},{64776,3065,2},{64771,3067,2}, {64768,3072,2},{64761,3075,2},{64758,3075,2},{64749,3080,2},{64746,3083,2}, {64741,3085,2},{64739,3087,2},{64734,3090,2},{64726,3092,2},{64724,3095,2}, {64721,3097,2},{64719,3097,2},{64719,3095,2},{64718,3095,2},{64713,3097,2}, {64709,3098,2},{64706,3102,2},{64703,3103,2},{64698,3112,2},{64693,3115,2}, {64686,3113,2},{64683,3115,2},{64681,3117,2},{64676,3117,2},{64678,3117,2}, {64673,3120,2},{64661,3118,2},{64661,3117,2},{64664,3113,2},{64663,3113,2}, {64661,3110,2},{64659,3110,2},{64656,3103,2},{64658,3102,2},{64669,3090,2}, {64679,3078,2},{64679,3072,2},{64683,3072,2},{64683,3068,2},{64688,3068,2}, {64686,3063,2},{64686,3065,2},{64684,3065,2},{64679,3062,2},{64678,3055,2}, {64678,3053,2},{64681,3057,2},{64684,3058,2},{64683,3050,2},{64684,3047,2}, {64686,3047,2},{64689,3045,2},{64693,3043,2},{64701,3047,2},{64706,3057,2}, {64708,3057,2},{64711,3057,2},{27,3398,130},{23,3400,2},{17,3398,2},{15,3400,2}, {10,3398,2},{10,3395,2},{8,3395,2},{0,3400,2},{65531,3400,2},{65531,3403,2}, {65528,3402,2},{65528,3405,2},{65524,3405,2},{65529,3407,2},{65529,3413,2}, {65528,3413,2},{65526,3412,2},{65524,3413,2},{65523,3408,2},{65521,3408,2}, {65516,3413,2},{65518,3418,2},{65516,3418,2},{65513,3420,2},{65511,3425,2}, {65509,3425,2},{65506,3423,2},{65504,3425,2},{65503,3425,2},{65501,3428,2}, {65499,3428,2},{65498,3427,2},{65496,3428,2},{65496,3430,2},{65501,3432,2}, {65508,3438,2},{65513,3438,2},{65513,3435,2},{65516,3435,2},{65519,3445,2}, {65518,3450,2},{65521,3457,2},{65521,3460,2},{65528,3468,2},{65526,3472,2}, {65528,3473,2},{65523,3472,2},{65519,3473,2},{65516,3480,2},{65509,3482,2}, {65508,3485,2},{65504,3483,2},{65504,3480,2},{65508,3478,2},{65506,3475,2}, {65503,3475,2},{65501,3475,2},{65503,3460,2},{65504,3457,2},{65501,3445,2}, {65496,3445,2},{65491,3450,2},{65489,3450,2},{65483,3442,2},{65484,3440,2}, {65486,3442,2},{65488,3440,2},{65491,3440,2},{65491,3437,2},{65489,3437,2}, {65488,3433,2},{65491,3432,2},{65491,3430,2},{65488,3430,2},{65489,3428,2}, {65493,3425,2},{65493,3422,2},{65494,3422,2},{65494,3420,2},{65488,3417,2}, {65483,3415,2},{65483,3413,2},{65483,3410,2},{65481,3410,2},{65479,3407,2}, {65476,3408,2},{65473,3405,2},{65463,3403,2},{65463,3407,2},{65458,3408,2}, {65456,3407,2},{65449,3418,2},{65448,3418,2},{65443,3413,2},{65436,3413,2}, {65438,3408,2},{65438,3410,2},{65438,3407,2},{65436,3407,2},{65436,3403,2}, {65434,3405,2},{65434,3410,2},{65433,3407,2},{65429,3407,2},{65426,3403,2}, {65426,3398,2},{65424,3398,2},{65423,3400,2},{65419,3398,2},{65416,3392,2}, {65411,3387,2},{65408,3390,2},{65408,3393,2},{65406,3393,2},{65403,3398,2}, {65399,3398,2},{65399,3397,2},{65401,3398,2},{65403,3397,2},{65404,3390,2}, {65403,3380,2},{65399,3382,2},{65398,3382,2},{65398,3383,2},{65394,3385,2}, {65396,3382,2},{65398,3380,2},{65394,3378,2},{65393,3378,2},{65393,3385,2}, {65389,3387,2},{65389,3388,2},{65386,3390,2},{65388,3393,2},{65386,3393,2}, {65384,3395,2},{65383,3392,2},{65384,3388,2},{65384,3383,2},{65389,3380,2}, {65388,3378,2},{65386,3372,2},{65389,3368,2},{65388,3365,2},{65384,3368,2}, {65383,3368,2},{65381,3367,2},{65379,3362,2},{65379,3365,2},{65378,3365,2}, {65376,3368,2},{65374,3368,2},{65373,3367,2},{65373,3372,2},{65368,3370,2}, {65368,3353,2},{65359,3365,2},{65358,3365,2},{65359,3357,2},{65354,3355,2}, {65354,3353,2},{65353,3352,2},{65351,3347,2},{65353,3345,2},{65356,3345,2}, {65356,3338,2},{65351,3332,2},{65344,3330,2},{65344,3328,2},{65343,3330,2}, {65343,3333,2},{65344,3335,2},{65348,3345,2},{65348,3347,2},{65346,3345,2}, {65344,3348,2},{65343,3348,2},{65341,3347,2},{65339,3353,2},{65338,3353,2}, {65338,3357,2},{65333,3355,2},{65334,3348,2},{65339,3340,2},{65338,3338,2}, {65333,3340,2},{65331,3338,2},{65334,3333,2},{65331,3332,2},{65334,3330,2}, {65336,3328,2},{65334,3327,2},{65333,3328,2},{65329,3330,2},{65331,3322,2}, {65328,3322,2},{65324,3320,2},{65323,3322,2},{65324,3327,2},{65323,3333,2}, {65319,3337,2},{65321,3343,2},{65318,3360,2},{65319,3362,2},{65324,3368,2}, {65328,3377,2},{65323,3382,2},{65314,3383,2},{65308,3375,2},{65308,3372,2}, {65306,3368,2},{65304,3365,2},{65299,3360,2},{65298,3353,2},{65294,3350,2}, {65293,3353,2},{65291,3353,2},{65291,3347,2},{65289,3340,2},{65286,3347,2}, {65283,3345,2},{65283,3342,2},{65281,3343,2},{65281,3340,2},{65283,3338,2}, {65283,3335,2},{65284,3335,2},{65286,3333,2},{65284,3333,2},{65286,3330,2}, {65284,3320,2},{65289,3317,2},{65289,3313,2},{65294,3313,2},{65298,3310,2}, {65298,3302,2},{65298,3295,2},{65294,3292,2},{65291,3290,2},{65289,3290,2}, {65288,3287,2},{65279,3292,2},{65279,3288,2},{65273,3287,2},{65268,3292,2}, {65266,3288,2},{65264,3288,2},{65259,3292,2},{65258,3297,2},{65256,3293,2}, {65254,3293,2},{65253,3297,2},{65251,3297,2},{65251,3302,2},{65248,3303,2}, {65249,3295,2},{65251,3292,2},{65256,3290,2},{65253,3288,2},{65251,3285,2}, {65248,3283,2},{65239,3282,2},{65234,3275,2},{65238,3275,2},{65243,3275,2}, {65244,3280,2},{65248,3275,2},{65248,3272,2},{65249,3272,2},{65253,3285,2}, {65256,3285,2},{65261,3287,2},{65264,3287,2},{65264,3282,2},{65268,3285,2}, {65269,3282,2},{65271,3280,2},{65273,3282,2},{65276,3282,2},{65278,3283,2}, {65279,3283,2},{65279,3280,2},{65284,3283,2},{65288,3280,2},{65286,3277,2}, {65283,3273,2},{65288,3273,2},{65284,3268,2},{65284,3267,2},{65288,3270,2}, {65293,3265,2},{65296,3267,2},{65298,3265,2},{65288,3262,2},{65279,3252,2}, {65281,3250,2},{65284,3252,2},{65286,3255,2},{65291,3255,2},{65289,3250,2}, {65291,3248,2},{65289,3243,2},{65293,3243,2},{65293,3237,2},{65294,3235,2}, {65294,3237,2},{65296,3237,2},{65296,3233,2},{65301,3232,2},{65303,3232,2}, {65303,3235,2},{65304,3232,2},{65309,3232,2},{65308,3225,2},{65309,3223,2}, {65311,3222,2},{65304,3222,2},{65304,3220,2},{65298,3217,2},{65298,3212,2}, {65299,3212,2},{65299,3207,2},{65298,3207,2},{65296,3207,2},{65293,3207,2}, {65293,3210,2},{65289,3212,2},{65288,3215,2},{65286,3217,2},{65281,3217,2}, {65283,3212,2},{65286,3210,2},{65284,3207,2},{65283,3207,2},{65288,3203,2}, {65286,3202,2},{65288,3200,2},{65286,3198,2},{65276,3198,2},{65276,3193,2}, {65273,3197,2},{65268,3198,2},{65268,3200,2},{65264,3200,2},{65259,3202,2}, {65259,3198,2},{65259,3197,2},{65264,3197,2},{65268,3193,2},{65271,3193,2}, {65271,3190,2},{65273,3190,2},{65264,3190,2},{65264,3187,2},{65266,3188,2}, {65268,3185,2},{65264,3182,2},{65259,3185,2},{65256,3183,2},{65253,3182,2}, {65253,3178,2},{65263,3178,2},{65264,3178,2},{65264,3175,2},{65268,3178,2}, {65269,3177,2},{65271,3178,2},{65271,3182,2},{65274,3182,2},{65274,3187,2}, {65274,3180,2},{65273,3177,2},{65274,3175,2},{65281,3175,2},{65281,3172,2}, {65286,3172,2},{65286,3177,2},{65289,3180,2},{65294,3180,2},{65296,3175,2}, {65299,3175,2},{65299,3178,2},{65301,3175,2},{65303,3175,2},{65303,3170,2}, {65301,3170,2},{65299,3163,2},{65303,3163,2},{65321,3168,2},{65324,3168,2}, {65328,3170,2},{65331,3168,2},{65336,3170,2},{65336,3168,2},{65333,3167,2}, {65331,3162,2},{65334,3162,2},{65341,3163,2},{65346,3168,2},{65364,3172,2}, {65369,3172,2},{65374,3177,2},{65379,3175,2},{65381,3175,2},{65386,3173,2}, {65388,3175,2},{65389,3177,2},{65388,3178,2},{65388,3180,2},{65401,3182,2}, {65404,3185,2},{65411,3187,2},{65419,3187,2},{65423,3185,2},{65426,3187,2}, {65429,3185,2},{65433,3187,2},{65434,3185,2},{65433,3183,2},{65438,3183,2}, {65431,3180,2},{65431,3177,2},{65433,3177,2},{65438,3178,2},{65436,3178,2}, {65441,3177,2},{65449,3177,2},{65451,3175,2},{65451,3170,2},{65456,3170,2}, {65463,3173,2},{65471,3180,2},{65473,3178,2},{65479,3180,2},{65483,3182,2}, {65488,3183,2},{65493,3192,2},{65506,3200,2},{65506,3202,2},{65503,3203,2}, {65504,3203,2},{65511,3200,2},{65511,3198,2},{65518,3198,2},{65518,3197,2}, {65516,3192,2},{65521,3193,2},{65523,3192,2},{65526,3198,2},{65526,3207,2}, {65529,3205,2},{65529,3202,2},{65531,3202,2},{65533,3208,2},{65531,3212,2}, {65528,3218,2},{65531,3220,2},{65533,3222,2},{0,3220,2},{3,3220,2},{0,3220,2}, {65533,3225,2},{65533,3228,2},{0,3230,2},{2,3227,2},{5,3225,2},{2,3235,2}, {65534,3235,2},{65533,3237,2},{65534,3237,2},{2,3238,2},{5,3238,2},{8,3237,2}, {8,3243,2},{12,3245,2},{10,3245,2},{5,3242,2},{3,3243,2},{3,3247,2},{8,3250,2}, {5,3252,2},{8,3253,2},{5,3255,2},{5,3257,2},{7,3257,2},{12,3255,2},{10,3258,2}, {12,3258,2},{13,3257,2},{13,3260,2},{15,3258,2},{18,3258,2},{18,3257,2}, {20,3258,2},{20,3262,2},{28,3265,2},{28,3267,2},{23,3265,2},{22,3268,2}, {17,3265,2},{17,3270,2},{20,3272,2},{18,3273,2},{13,3270,2},{13,3265,2}, {8,3267,2},{10,3275,2},{13,3275,2},{10,3278,2},{15,3282,2},{15,3285,2}, {18,3285,2},{17,3287,2},{20,3288,2},{17,3290,2},{15,3288,2},{13,3290,2}, {12,3287,2},{10,3290,2},{7,3290,2},{8,3298,2},{18,3310,2},{22,3310,2},{22,3305,2}, {25,3308,2},{27,3307,2},{25,3312,2},{22,3312,2},{22,3313,2},{25,3313,2}, {27,3317,2},{30,3315,2},{32,3315,2},{37,3327,2},{38,3327,2},{40,3320,2}, {43,3318,2},{43,3323,2},{47,3325,2},{48,3328,2},{45,3328,2},{42,3330,2}, {45,3335,2},{48,3337,2},{48,3340,2},{45,3337,2},{42,3335,2},{38,3337,2}, {38,3332,2},{35,3332,2},{37,3337,2},{35,3337,2},{33,3337,2},{33,3340,2}, {32,3343,2},{35,3342,2},{35,3347,2},{33,3345,2},{32,3350,2},{30,3350,2}, {30,3352,2},{28,3352,2},{28,3345,2},{28,3340,2},{28,3343,2},{27,3342,2}, {25,3345,2},{23,3342,2},{22,3347,2},{18,3348,2},{23,3350,2},{20,3350,2}, {22,3353,2},{18,3352,2},{20,3353,2},{18,3355,2},{18,3357,2},{20,3358,2}, {22,3362,2},{28,3363,2},{32,3362,2},{32,3363,2},{32,3367,2},{33,3370,2}, {32,3375,2},{27,3370,2},{25,3375,2},{20,3370,2},{18,3375,2},{20,3380,2}, {22,3378,2},{23,3380,2},{20,3380,2},{15,3382,2},{17,3383,2},{20,3383,2}, {17,3390,2},{20,3390,2},{20,3392,2},{23,3392,2},{23,3395,2},{27,3398,2}, {63739,2702,130},{63741,2702,2},{63743,2705,2},{63746,2707,2},{63746,2708,2}, {63748,2708,2},{63753,2713,2},{63751,2710,2},{63753,2708,2},{63756,2708,2}, {63756,2710,2},{63758,2708,2},{63761,2713,2},{63768,2717,2},{63766,2718,2}, {63769,2718,2},{63771,2722,2},{63773,2723,2},{63774,2722,2},{63774,2725,2}, {63776,2725,2},{63774,2727,2},{63776,2730,2},{63779,2730,2},{63779,2735,2}, {63783,2733,2},{63783,2737,2},{63784,2737,2},{63788,2737,2},{63789,2738,2}, {63791,2732,2},{63804,2745,2},{63808,2742,2},{63809,2745,2},{63809,2747,2}, {63813,2750,2},{63818,2752,2},{63819,2755,2},{63823,2755,2},{63831,2762,2}, {63829,2767,2},{63828,2765,2},{63826,2767,2},{63829,2772,2},{63831,2770,2}, {63834,2765,2},{63838,2773,2},{63839,2773,2},{63841,2768,2},{63844,2773,2}, {63843,2775,2},{63846,2782,2},{63846,2787,2},{63849,2780,2},{63853,2780,2}, {63851,2783,2},{63854,2793,2},{63854,2797,2},{63853,2797,2},{63851,2797,2}, {63849,2802,2},{63853,2807,2},{63854,2808,2},{63856,2807,2},{63858,2808,2}, {63861,2808,2},{63859,2813,2},{63861,2813,2},{63864,2813,2},{63866,2820,2}, {63868,2820,2},{63868,2817,2},{63871,2818,2},{63873,2817,2},{63873,2820,2}, {63869,2822,2},{63871,2825,2},{63873,2825,2},{63874,2825,2},{63874,2827,2}, {63876,2833,2},{63878,2832,2},{63879,2828,2},{63881,2830,2},{63883,2828,2}, {63883,2832,2},{63879,2833,2},{63881,2838,2},{63878,2837,2},{63876,2840,2}, {63881,2845,2},{63883,2848,2},{63884,2848,2},{63883,2852,2},{63879,2852,2}, {63883,2857,2},{63883,2853,2},{63884,2855,2},{63886,2863,2},{63888,2865,2}, {63886,2868,2},{63883,2868,2},{63883,2872,2},{64188,3487,130},{64183,3485,2}, {64173,3485,2},{64169,3485,2},{64164,3487,2},{64163,3490,2},{64163,3507,2}, {64154,3508,2},{64151,3512,2},{64141,3512,2},{64131,3518,2},{64126,3518,2}, {64118,3522,2},{64111,3523,2},{64109,3525,2},{64101,3528,2},{64098,3527,2}, {64096,3523,2},{64101,3518,2},{64106,3515,2},{64106,3512,2},{64111,3508,2}, {64116,3508,2},{64118,3505,2},{64119,3503,2},{64121,3495,2},{64128,3493,2}, {64131,3493,2},{64136,3487,2},{64133,3483,2},{64126,3487,2},{64123,3482,2}, {64119,3482,2},{64116,3483,2},{64113,3482,2},{64111,3480,2},{64108,3470,2}, {64114,3470,2},{64116,3463,2},{64123,3458,2},{64124,3457,2},{64138,3452,2}, {64143,3455,2},{64146,3458,2},{64151,3460,2},{64154,3458,2},{64158,3462,2}, {64161,3462,2},{64164,3463,2},{64166,3463,2},{64174,3455,2},{64179,3452,2}, {64178,3447,2},{64179,3443,2},{64199,3432,2},{64204,3432,2},{64209,3435,2}, {64228,3433,2},{64234,3435,2},{64241,3432,2},{64246,3433,2},{64243,3432,2}, {64246,3430,2},{64249,3432,2},{64253,3427,2},{64263,3428,2},{64264,3423,2}, {64269,3420,2},{64279,3418,2},{64286,3420,2},{64296,3417,2},{64298,3415,2}, {64298,3408,2},{64299,3410,2},{64303,3403,2},{64311,3400,2},{64321,3403,2}, {64324,3407,2},{64329,3407,2},{64331,3405,2},{64336,3410,2},{64341,3413,2}, {64346,3418,2},{64348,3418,2},{64354,3420,2},{64359,3425,2},{64363,3427,2}, {64364,3432,2},{64368,3432,2},{64371,3433,2},{64378,3430,2},{64381,3430,2}, {64384,3428,2},{64406,3427,2},{64408,3423,2},{64414,3423,2},{64416,3422,2}, {64419,3422,2},{64426,3425,2},{64434,3423,2},{64439,3425,2},{64456,3422,2}, {64463,3423,2},{64466,3420,2},{64476,3420,2},{64479,3417,2},{64484,3422,2}, {64488,3420,2},{64491,3420,2},{64494,3423,2},{64494,3427,2},{64496,3425,2}, {64503,3422,2},{64504,3418,2},{64508,3415,2},{64509,3415,2},{64514,3408,2}, {64521,3403,2},{64523,3402,2},{64531,3400,2},{64538,3398,2},{64539,3395,2}, {64546,3395,2},{64548,3393,2},{64553,3390,2},{64563,3390,2},{64566,3392,2}, {64566,3393,2},{64569,3395,2},{64576,3397,2},{64581,3395,2},{64588,3400,2}, {64588,3405,2},{64586,3407,2},{64578,3415,2},{64563,3433,2},{64558,3433,2}, {64554,3438,2},{64538,3452,2},{64529,3453,2},{64526,3452,2},{64519,3455,2}, {64513,3457,2},{64508,3458,2},{64496,3457,2},{64491,3457,2},{64488,3460,2}, {64484,3458,2},{64479,3458,2},{64478,3462,2},{64474,3462,2},{64471,3465,2}, {64464,3465,2},{64461,3468,2},{64458,3465,2},{64444,3465,2},{64438,3460,2}, {64434,3460,2},{64426,3462,2},{64418,3468,2},{64416,3472,2},{64409,3473,2}, {64408,3475,2},{64406,3473,2},{64401,3477,2},{64403,3480,2},{64401,3487,2}, {64398,3488,2},{64391,3493,2},{64388,3497,2},{64379,3497,2},{64369,3497,2}, {64364,3495,2},{64356,3497,2},{64349,3493,2},{64341,3490,2},{64333,3488,2}, {64331,3487,2},{64329,3482,2},{64326,3480,2},{64324,3477,2},{64318,3470,2}, {64309,3472,2},{64306,3470,2},{64296,3470,2},{64293,3470,2},{64288,3470,2}, {64283,3475,2},{64276,3477,2},{64271,3480,2},{64266,3480,2},{64266,3482,2}, {64261,3482,2},{64259,3480,2},{64256,3478,2},{64253,3478,2},{64249,3477,2}, {64241,3475,2},{64236,3478,2},{64228,3482,2},{64219,3480,2},{64214,3482,2}, {64204,3478,2},{64198,3487,2},{64194,3485,2},{64186,3487,2},{63883,2870,130}, {63883,2887,2},{63879,2888,2},{63879,2883,2},{63878,2888,2},{63879,2895,2}, {63876,2893,2},{63874,2900,2},{63873,2893,2},{63869,2895,2},{63869,2893,2}, {63864,2892,2},{63868,2890,2},{63869,2888,2},{63868,2885,2},{63866,2885,2}, {63864,2888,2},{63859,2887,2},{63858,2883,2},{63859,2880,2},{63856,2880,2}, {63854,2873,2},{63859,2868,2},{63863,2872,2},{63864,2868,2},{63868,2870,2}, {63868,2868,2},{63866,2863,2},{63864,2863,2},{63864,2858,2},{63863,2858,2}, {63863,2855,2},{63861,2853,2},{63859,2848,2},{63854,2847,2},{63854,2843,2}, {63851,2847,2},{63846,2847,2},{63848,2845,2},{63851,2845,2},{63853,2838,2}, {63856,2837,2},{63859,2838,2},{63861,2837,2},{63861,2835,2},{63856,2835,2}, {63858,2833,2},{63854,2832,2},{63854,2827,2},{63856,2827,2},{63854,2818,2}, {63851,2812,2},{63846,2808,2},{63844,2812,2},{63843,2807,2},{63839,2807,2}, {63838,2805,2},{63836,2805,2},{63838,2812,2},{63836,2808,2},{63833,2810,2}, {63831,2807,2},{63828,2805,2},{63831,2803,2},{63831,2800,2},{63833,2800,2}, {63833,2797,2},{63833,2795,2},{63831,2797,2},{63831,2793,2},{63826,2792,2}, {63823,2783,2},{63819,2785,2},{63821,2780,2},{63816,2768,2},{63814,2772,2}, {63813,2768,2},{63811,2768,2},{63813,2765,2},{63808,2768,2},{63806,2765,2}, {63803,2765,2},{63799,2760,2},{63798,2762,2},{63788,2757,2},{63791,2757,2}, {63791,2755,2},{63786,2755,2},{63784,2747,2},{63781,2745,2},{63779,2743,2}, {63779,2745,2},{63781,2747,2},{63779,2747,2},{63778,2745,2},{63778,2737,2}, {63763,2722,2},{63761,2722,2},{63758,2723,2},{63758,2720,2},{63754,2715,2}, {63753,2717,2},{63749,2717,2},{63748,2713,2},{63744,2708,2},{63743,2710,2}, {63741,2707,2},{63738,2708,2},{63738,2703,2},{63739,2702,2},{1137,413,130}, {1135,418,2},{1130,422,2},{1128,425,2},{1123,427,2},{1120,430,2},{1120,442,2}, {1115,453,2},{1110,458,2},{1097,467,2},{1095,470,2},{1090,475,2},{1088,473,2}, {1077,473,2},{1077,472,2},{1073,473,2},{1072,470,2},{1057,470,2},{1057,468,2}, {1058,468,2},{1057,463,2},{1055,462,2},{1052,462,2},{1052,467,2},{1048,463,2}, {1043,467,2},{1037,467,2},{1037,468,2},{1033,468,2},{1035,465,2},{1032,467,2}, {1022,462,2},{1020,463,2},{1018,460,2},{1020,460,2},{1015,458,2},{1013,455,2}, {1008,457,2},{1008,458,2},{1013,460,2},{1012,463,2},{1010,462,2},{1010,460,2}, {1008,462,2},{1007,460,2},{1005,460,2},{1005,462,2},{1000,460,2},{997,463,2}, {995,460,2},{990,462,2},{992,463,2},{990,465,2},{988,465,2},{983,458,2}, {985,457,2},{987,458,2},{988,458,2},{988,457,2},{993,457,2},{993,455,2}, {995,453,2},{998,457,2},{1003,455,2},{1002,452,2},{1007,455,2},{1008,453,2}, {1008,450,2},{1007,450,2},{1005,447,2},{1007,447,2},{1005,445,2},{1008,447,2}, {1010,450,2},{1013,447,2},{1012,443,2},{1013,443,2},{1015,452,2},{1018,452,2}, {1017,448,2},{1018,445,2},{1020,450,2},{1027,450,2},{1035,445,2},{1038,442,2}, {1040,438,2},{1037,435,2},{1038,433,2},{1042,438,2},{1040,445,2},{1045,443,2}, {1045,447,2},{1048,447,2},{1052,443,2},{1058,450,2},{1063,445,2},{1067,447,2}, {1063,448,2},{1067,452,2},{1062,452,2},{1058,458,2},{1057,460,2},{1062,465,2}, {1070,468,2},{1080,468,2},{1088,472,2},{1097,463,2},{1108,457,2},{1117,445,2}, {1118,440,2},{1118,430,2},{1122,427,2},{1127,423,2},{1128,420,2},{1133,417,2}, {1137,412,2},{1142,412,2},{1137,413,2},{897,23,130},{893,22,2},{888,22,2}, {882,25,2},{883,20,2},{882,18,2},{875,18,2},{873,22,2},{870,20,2},{865,15,2}, {863,17,2},{862,18,2},{858,18,2},{857,17,2},{858,13,2},{850,10,2},{848,13,2}, {847,13,2},{843,10,2},{840,10,2},{840,20,2},{840,25,2},{833,25,2},{833,30,2}, {832,30,2},{832,20,2},{830,23,2},{830,22,2},{825,20,2},{823,20,2},{822,15,2}, {820,22,2},{818,20,2},{813,18,2},{812,20,2},{812,28,2},{808,27,2},{808,23,2}, {808,22,2},{807,20,2},{805,15,2},{805,13,2},{803,12,2},{800,15,2},{798,17,2}, {793,8,2},{793,13,2},{788,12,2},{792,17,2},{790,18,2},{780,15,2},{780,17,2}, {785,18,2},{785,20,2},{787,20,2},{787,22,2},{790,22,2},{790,25,2},{793,27,2}, {792,27,2},{787,23,2},{787,27,2},{785,23,2},{785,27,2},{782,20,2},{780,22,2}, {778,28,2},{777,27,2},{775,28,2},{770,28,2},{770,27,2},{770,28,2},{765,27,2}, {765,28,2},{760,28,2},{758,30,2},{755,28,2},{758,23,2},{757,25,2},{755,22,2}, {753,20,2},{752,22,2},{753,25,2},{750,25,2},{748,23,2},{747,23,2},{745,25,2}, {747,27,2},{750,27,2},{748,27,2},{750,30,2},{752,28,2},{755,32,2},{757,33,2}, {755,33,2},{747,30,2},{743,30,2},{743,28,2},{742,28,2},{742,30,2},{740,32,2}, {738,28,2},{737,28,2},{735,27,2},{735,28,2},{730,27,2},{728,32,2},{727,27,2}, {722,27,2},{722,30,2},{718,27,2},{718,30,2},{717,28,2},{717,27,2},{715,28,2}, {712,27,2},{710,27,2},{710,28,2},{710,32,2},{705,30,2},{703,27,2},{705,27,2}, {705,25,2},{693,28,2},{695,25,2},{693,23,2},{685,22,2},{682,23,2},{675,25,2}, {665,25,2},{665,27,2},{668,30,2},{673,30,2},{678,32,2},{670,30,2},{670,32,2}, {663,30,2},{667,30,2},{665,28,2},{662,27,2},{662,23,2},{660,23,2},{662,22,2}, {662,20,2},{658,18,2},{663,17,2},{660,15,2},{660,17,2},{655,13,2},{652,15,2}, {650,13,2},{647,12,2},{645,13,2},{638,13,2},{627,8,2},{622,12,2},{612,10,2}, {615,7,2},{620,8,2},{627,7,2},{630,8,2},{630,7,2},{633,10,2},{640,10,2}, {643,12,2},{648,10,2},{647,8,2},{642,7,2},{642,3,2},{633,0,2},{633,65534,2}, {637,65533,2},{643,65533,2},{648,65526,2},{652,65524,2},{652,65519,2},{655,65513,2}, {657,65513,2},{660,65508,2},{662,65509,2},{662,65499,2},{668,65494,2},{670,65481,2}, {673,65479,2},{670,65476,2},{673,65474,2},{675,65471,2},{678,65471,2},{680,65466,2}, {685,65464,2},{683,65468,2},{685,65469,2},{683,65471,2},{683,65473,2},{677,65478,2}, {678,65478,2},{678,65481,2},{685,65481,2},{687,65481,2},{685,65483,2},{673,65484,2}, {672,65491,2},{673,65493,2},{670,65494,2},{672,65496,2},{680,65494,2},{685,65498,2}, {680,65499,2},{668,65501,2},{672,65503,2},{670,65506,2},{673,65508,2},{670,65509,2}, {672,65511,2},{675,65513,2},{675,65516,2},{673,65518,2},{672,65519,2},{670,65518,2}, {667,65518,2},{663,65519,2},{663,65524,2},{662,65524,2},{662,65526,2},{662,65528,2}, {662,65529,2},{663,65531,2},{665,65533,2},{673,65533,2},{672,65534,2},{675,65534,2}, {677,65528,2},{678,65528,2},{680,65531,2},{680,65528,2},{682,65528,2},{682,65531,2}, {682,65533,2},{683,65531,2},{685,65533,2},{688,65533,2},{687,65534,2},{685,65534,2}, {683,0,2},{683,2,2},{685,2,2},{683,3,2},{685,3,2},{685,7,2},{687,7,2},{690,10,2}, {688,12,2},{692,12,2},{692,8,2},{690,7,2},{690,0,2},{693,2,2},{693,5,2}, {700,5,2},{697,7,2},{697,12,2},{695,12,2},{695,13,2},{698,13,2},{700,8,2}, {702,7,2},{703,7,2},{702,10,2},{705,8,2},{705,13,2},{707,12,2},{707,8,2}, {710,8,2},{710,7,2},{712,10,2},{713,10,2},{713,8,2},{717,7,2},{715,5,2}, {718,3,2},{717,2,2},{722,0,2},{723,2,2},{722,2,2},{718,2,2},{718,7,2},{720,8,2}, {717,10,2},{722,13,2},{722,15,2},{723,13,2},{727,15,2},{727,17,2},{723,17,2}, {727,20,2},{732,18,2},{730,12,2},{733,12,2},{735,10,2},{743,3,2},{745,7,2}, {747,3,2},{747,5,2},{748,5,2},{748,3,2},{748,2,2},{750,0,2},{752,65528,2}, {748,65529,2},{743,65533,2},{742,65531,2},{745,65531,2},{747,65528,2},{745,65524,2}, {745,65523,2},{747,65524,2},{748,65524,2},{752,65519,2},{752,65516,2},{752,65514,2}, {750,65513,2},{752,65511,2},{752,65514,2},{755,65513,2},{755,65516,2},{757,65518,2}, {753,65519,2},{753,65523,2},{757,65523,2},{755,65524,2},{753,65528,2},{753,65531,2}, {755,65529,2},{755,65531,2},{753,65534,2},{755,0,2},{753,5,2},{757,0,2}, {760,65534,2},{762,65529,2},{765,65531,2},{767,65528,2},{763,65524,2},{765,65523,2}, {763,65518,2},{765,65513,2},{765,65511,2},{765,65514,2},{763,65513,2},{763,65508,2}, {760,65506,2},{762,65504,2},{762,65493,2},{757,65489,2},{758,65489,2},{760,65484,2}, {755,65483,2},{757,65479,2},{755,65478,2},{755,65473,2},{753,65471,2},{753,65469,2}, {757,65469,2},{757,65481,2},{760,65481,2},{762,65484,2},{762,65488,2},{763,65491,2}, {763,65494,2},{768,65494,2},{767,65498,2},{765,65498,2},{765,65508,2},{768,65509,2}, {770,65513,2},{772,65509,2},{772,65514,2},{768,65519,2},{770,65519,2},{772,65519,2}, {773,65521,2},{773,65526,2},{773,65528,2},{775,65528,2},{777,65519,2},{778,65521,2}, {780,65519,2},{780,65523,2},{782,65523,2},{785,65519,2},{787,65519,2},{793,65519,2}, {792,65514,2},{798,65518,2},{797,65516,2},{798,65513,2},{802,65511,2},{805,65509,2}, {810,65504,2},{805,65504,2},{798,65501,2},{798,65499,2},{798,65496,2},{795,65491,2}, {797,65491,2},{802,65499,2},{805,65501,2},{807,65496,2},{810,65494,2},{810,65491,2}, {805,65486,2},{800,65481,2},{805,65483,2},{808,65484,2},{812,65486,2},{817,65481,2}, {815,65481,2},{812,65481,2},{807,65471,2},{810,65473,2},{812,65471,2},{810,65469,2}, {808,65464,2},{810,65461,2},{808,65459,2},{810,65459,2},{813,65461,2},{813,65463,2}, {812,65464,2},{815,65473,2},{813,65476,2},{818,65478,2},{820,65474,2},{820,65471,2}, {823,65471,2},{825,65468,2},{823,65466,2},{828,65466,2},{827,65461,2},{830,65463,2}, {832,65461,2},{832,65451,2},{833,65459,2},{833,65461,2},{850,65449,2},{850,65446,2}, {852,65448,2},{860,65444,2},{863,65441,2},{863,65438,2},{867,65434,2},{868,65428,2}, {867,65423,2},{863,65421,2},{858,65423,2},{855,65423,2},{853,65421,2},{857,65421,2}, {863,65418,2},{867,65418,2},{867,65408,2},{868,65408,2},{875,65399,2},{875,65396,2}, {873,65388,2},{872,65386,2},{868,65386,2},{863,65379,2},{867,65373,2},{867,65369,2}, {863,65368,2},{862,65364,2},{868,65369,2},{868,65376,2},{867,65376,2},{868,65384,2}, {873,65386,2},{877,65388,2},{877,65396,2},{878,65398,2},{877,65398,2},{880,65399,2}, {883,65398,2},{882,65401,2},{878,65399,2},{875,65401,2},{873,65404,2},{873,65406,2}, {870,65408,2},{868,65411,2},{868,65423,2},{872,65433,2},{868,65434,2},{877,65434,2}, {880,65429,2},{880,65418,2},{880,65426,2},{890,65421,2},{890,65419,2},{895,65418,2}, {900,65418,2},{897,65419,2},{900,65421,2},{903,65423,2},{912,65421,2},{908,65424,2}, {902,65426,2},{895,65421,2},{892,65421,2},{885,65426,2},{882,65431,2},{887,65434,2}, {880,65434,2},{875,65438,2},{868,65438,2},{865,65441,2},{863,65444,2},{855,65449,2}, {855,65451,2},{857,65453,2},{860,65458,2},{865,65456,2},{867,65453,2},{868,65451,2}, {870,65453,2},{870,65454,2},{877,65456,2},{877,65458,2},{872,65458,2},{868,65454,2}, {868,65458,2},{860,65463,2},{867,65466,2},{862,65464,2},{860,65464,2},{860,65466,2}, {857,65458,2},{853,65456,2},{852,65453,2},{848,65453,2},{845,65461,2},{838,65463,2}, {838,65466,2},{835,65466,2},{833,65471,2},{837,65473,2},{832,65473,2},{827,65479,2}, {828,65483,2},{823,65479,2},{820,65483,2},{822,65484,2},{818,65484,2},{818,65488,2}, {820,65489,2},{818,65491,2},{818,65496,2},{822,65498,2},{823,65496,2},{825,65498,2}, {825,65501,2},{822,65503,2},{823,65504,2},{825,65504,2},{825,65509,2},{823,65511,2}, {825,65514,2},{822,65514,2},{822,65518,2},{817,65518,2},{820,65514,2},{818,65513,2}, {820,65509,2},{818,65508,2},{820,65503,2},{813,65503,2},{813,65508,2},{812,65508,2}, {810,65511,2},{808,65513,2},{807,65511,2},{807,65516,2},{803,65518,2},{805,65521,2}, {803,65523,2},{797,65524,2},{795,65528,2},{795,65526,2},{793,65528,2},{790,65526,2}, {788,65528,2},{787,65528,2},{783,65529,2},{780,65528,2},{777,65529,2},{778,65534,2}, {780,0,2},{780,2,2},{778,0,2},{777,0,2},{780,3,2},{778,5,2},{777,8,2},{780,7,2}, {782,8,2},{783,7,2},{785,7,2},{785,5,2},{788,3,2},{788,7,2},{790,8,2},{793,3,2}, {793,7,2},{797,5,2},{798,10,2},{800,12,2},{802,10,2},{800,7,2},{800,5,2}, {802,7,2},{805,3,2},{807,3,2},{810,7,2},{807,7,2},{808,10,2},{810,12,2}, {810,13,2},{807,13,2},{808,18,2},{812,17,2},{813,15,2},{818,17,2},{818,13,2}, {822,12,2},{822,8,2},{823,10,2},{825,10,2},{823,12,2},{825,13,2},{825,15,2}, {825,18,2},{830,18,2},{833,17,2},{835,23,2},{838,22,2},{837,13,2},{838,8,2}, {840,8,2},{842,8,2},{845,7,2},{847,8,2},{847,12,2},{850,7,2},{853,8,2}, {855,7,2},{860,13,2},{858,17,2},{865,13,2},{867,13,2},{870,17,2},{882,15,2}, {885,20,2},{888,18,2},{897,20,2},{898,27,2},{897,23,2},{810,64988,130}, {803,64983,2},{800,64983,2},{798,64981,2},{795,64981,2},{793,64978,2},{792,64984,2}, {792,64983,2},{790,64983,2},{790,64978,2},{787,64978,2},{785,64976,2},{783,64978,2}, {782,64973,2},{778,64976,2},{778,64973,2},{777,64973,2},{775,64976,2},{773,64974,2}, {775,64978,2},{778,64978,2},{782,64986,2},{777,64983,2},{773,64981,2},{767,64978,2}, {765,64978,2},{763,64974,2},{760,64974,2},{757,64973,2},{755,64974,2},{757,64981,2}, {753,64978,2},{750,64979,2},{748,64978,2},{750,64978,2},{752,64973,2},{750,64973,2}, {750,64968,2},{747,64966,2},{745,64968,2},{742,64966,2},{742,64969,2},{738,64971,2}, {740,64974,2},{738,64973,2},{737,64973,2},{737,64971,2},{733,64969,2},{733,64971,2}, {732,64969,2},{732,64974,2},{727,64974,2},{725,64976,2},{723,64974,2},{722,64978,2}, {720,64979,2},{725,64981,2},{725,64978,2},{732,64978,2},{730,64979,2},{730,64984,2}, {733,64984,2},{735,64981,2},{738,64981,2},{737,64981,2},{735,64986,2},{738,64984,2}, {742,64986,2},{742,64981,2},{743,64981,2},{747,64981,2},{750,64984,2},{747,64984,2}, {747,64986,2},{748,64986,2},{748,64988,2},{745,64988,2},{747,64991,2},{752,64993,2}, {757,64991,2},{757,64996,2},{752,64996,2},{748,64996,2},{745,64998,2},{742,64994,2}, {737,64993,2},{740,64999,2},{743,64999,2},{742,65006,2},{735,64998,2},{733,64993,2}, {728,64991,2},{728,64993,2},{730,64999,2},{727,64998,2},{727,64996,2},{725,64998,2}, {725,64996,2},{723,64996,2},{723,64993,2},{725,64993,2},{723,64991,2},{723,64988,2}, {720,64989,2},{717,64988,2},{717,64989,2},{715,64989,2},{717,64991,2},{715,64993,2}, {717,64996,2},{715,64996,2},{712,64994,2},{712,64998,2},{708,64996,2},{710,64994,2}, {708,64993,2},{707,64994,2},{707,64998,2},{705,64998,2},{702,64998,2},{703,65001,2}, {700,64999,2},{698,65001,2},{695,64999,2},{697,64998,2},{693,64998,2},{695,64996,2}, {693,64994,2},{697,64994,2},{697,64991,2},{700,64991,2},{697,64989,2},{705,64986,2}, {705,64981,2},{707,64981,2},{707,64978,2},{708,64978,2},{708,64971,2},{707,64969,2}, {710,64968,2},{710,64964,2},{712,64964,2},{717,64968,2},{715,64963,2},{717,64963,2}, {720,64963,2},{720,64959,2},{722,64959,2},{723,64964,2},{723,64959,2},{730,64958,2}, {727,64956,2},{725,64954,2},{733,64953,2},{732,64956,2},{733,64958,2},{733,64961,2}, {737,64958,2},{738,64961,2},{742,64959,2},{743,64961,2},{743,64959,2},{742,64958,2}, {743,64958,2},{745,64958,2},{747,64961,2},{750,64959,2},{752,64963,2},{753,64959,2}, {757,64959,2},{755,64964,2},{757,64964,2},{758,64964,2},{762,64966,2},{762,64963,2}, {765,64963,2},{763,64964,2},{765,64966,2},{768,64964,2},{772,64966,2},{772,64961,2}, {775,64961,2},{775,64964,2},{777,64963,2},{780,64959,2},{780,64963,2},{777,64966,2}, {777,64968,2},{780,64966,2},{782,64968,2},{782,64966,2},{785,64966,2},{787,64963,2}, {792,64963,2},{790,64966,2},{788,64964,2},{787,64964,2},{788,64968,2},{787,64968,2}, {785,64969,2},{785,64971,2},{790,64971,2},{792,64973,2},{793,64973,2},{793,64974,2}, {797,64974,2},{798,64978,2},{803,64979,2},{807,64983,2},{810,64983,2},{810,64988,2}, {1597,65146,130},{1593,65139,2},{1588,65136,2},{1585,65134,2},{1587,65124,2}, {1590,65123,2},{1588,65118,2},{1575,65114,2},{1573,65108,2},{1565,65103,2}, {1557,65103,2},{1550,65108,2},{1547,65111,2},{1542,65111,2},{1537,65121,2}, {1537,65124,2},{1538,65124,2},{1533,65129,2},{1532,65134,2},{1532,65138,2}, {1530,65138,2},{1528,65139,2},{1530,65134,2},{1528,65134,2},{1528,65133,2}, {1527,65133,2},{1530,65131,2},{1527,65129,2},{1530,65123,2},{1528,65119,2}, {1527,65121,2},{1527,65119,2},{1523,65119,2},{1523,65118,2},{1522,65116,2}, {1522,65113,2},{1528,65118,2},{1525,65113,2},{1525,65109,2},{1530,65116,2}, {1532,65119,2},{1533,65116,2},{1538,65113,2},{1535,65111,2},{1537,65108,2}, {1538,65111,2},{1540,65109,2},{1547,65109,2},{1550,65106,2},{1555,65101,2}, {1567,65101,2},{1575,65108,2},{1575,65113,2},{1585,65114,2},{1590,65118,2}, {1592,65123,2},{1590,65126,2},{1587,65126,2},{1587,65133,2},{1590,65136,2}, {1593,65138,2},{1595,65141,2},{1597,65148,2},{1597,65146,2},{777,3053,130}, {777,3057,2},{787,3057,2},{798,3058,2},{812,3065,2},{825,3063,2},{837,3067,2}, {848,3063,2},{852,3065,2},{855,3067,2},{855,3072,2},{858,3077,2},{877,3083,2}, {880,3083,2},{883,3085,2},{885,3083,2},{887,3085,2},{892,3085,2},{897,3078,2}, {903,3080,2},{905,3082,2},{907,3085,2},{908,3087,2},{910,3090,2},{917,3090,2}, {933,3110,2},{940,3112,2},{942,3113,2},{943,3112,2},{947,3105,2},{948,3103,2}, {952,3095,2},{950,3082,2},{950,3075,2},{953,3068,2},{953,3050,2},{948,3047,2}, {947,3042,2},{943,3040,2},{940,3037,2},{937,3035,2},{935,3032,2},{932,3033,2}, {930,3037,2},{923,3037,2},{922,3035,2},{918,3035,2},{918,3032,2},{910,3032,2}, {908,3027,2},{903,3023,2},{902,3020,2},{900,3018,2},{893,3022,2},{890,3020,2}, {887,3023,2},{882,3023,2},{880,3025,2},{877,3023,2},{873,3023,2},{867,3032,2}, {860,3027,2},{858,3028,2},{855,3027,2},{852,3030,2},{850,3033,2},{848,3033,2}, {847,3037,2},{840,3035,2},{838,3032,2},{832,3033,2},{828,3032,2},{827,3033,2}, {823,3032,2},{822,3033,2},{820,3030,2},{817,3030,2},{812,3032,2},{813,3035,2}, {810,3035,2},{810,3038,2},{805,3040,2},{800,3043,2},{798,3043,2},{790,3050,2}, {783,3052,2},{782,3053,2},{780,3052,2},{780,3055,2},{778,3053,2},{777,3053,2}, {68,2458,130},{73,2457,2},{77,2452,2},{77,2432,2},{80,2428,2},{92,2423,2}, {97,2417,2},{107,2393,2},{110,2378,2},{117,2363,2},{142,2345,2},{157,2328,2}, {167,2323,2},{178,2315,2},{185,2305,2},{192,2298,2},{195,2292,2},{193,2282,2}, {202,2272,2},{210,2267,2},{217,2248,2},{220,2235,2},{222,2210,2},{218,2190,2}, {215,2162,2},{217,2155,2},{213,2150,2},{213,2142,2},{210,2138,2},{210,2128,2}, {208,2130,2},{208,2128,2},{207,2112,2},{205,2103,2},{207,2098,2},{207,2090,2}, {202,2077,2},{203,2060,2},{203,2045,2},{200,2035,2},{200,2022,2},{198,2017,2}, {198,2013,2},{193,2003,2},{192,1990,2},{183,1967,2},{183,1958,2},{173,1933,2}, {168,1923,2},{162,1918,2},{160,1912,2},{142,1892,2},{138,1885,2},{117,1858,2}, {107,1850,2},{105,1845,2},{87,1833,2},{80,1832,2},{73,1830,2},{77,1832,2}, {57,1830,2},{55,1828,2},{67,1828,2},{57,1827,2},{32,1823,2},{2,1813,2}, {65529,1813,2},{65523,1808,2},{65518,1805,2},{65503,1790,2},{65494,1783,2}, {65494,1778,2},{65496,1777,2},{65503,1777,2},{65511,1773,2},{65516,1773,2}, {13,1782,2},{20,1785,2},{27,1792,2},{33,1797,2},{47,1797,2},{53,1795,2}, {60,1790,2},{67,1790,2},{78,1792,2},{102,1788,2},{125,1800,2},{135,1800,2}, {153,1808,2},{170,1810,2},{187,1807,2},{197,1810,2},{208,1808,2},{228,1813,2}, {232,1817,2},{240,1822,2},{243,1822,2},{262,1835,2},{235,1817,2},{232,1810,2}, {225,1808,2},{213,1808,2},{203,1805,2},{193,1807,2},{185,1805,2},{155,1807,2}, {148,1803,2},{142,1800,2},{118,1793,2},{105,1785,2},{102,1785,2},{97,1785,2}, {83,1788,2},{67,1787,2},{60,1788,2},{48,1793,2},{40,1793,2},{35,1792,2}, {22,1780,2},{65526,1770,2},{65519,1767,2},{65504,1772,2},{65491,1770,2}, {65486,1768,2},{65481,1763,2},{65471,1762,2},{65464,1755,2},{65463,1753,2}, {65463,1750,2},{65459,1747,2},{65448,1742,2},{65444,1735,2},{65438,1730,2}, {65438,1725,2},{65433,1717,2},{65431,1702,2},{65423,1693,2},{65421,1690,2}, {65423,1690,2},{65423,1687,2},{65418,1683,2},{65418,1682,2},{65394,1668,2}, {65384,1663,2},{65378,1662,2},{65371,1658,2},{65366,1657,2},{65363,1653,2}, {65356,1652,2},{65349,1640,2},{65338,1633,2},{65329,1625,2},{65323,1620,2}, {65319,1615,2},{65316,1612,2},{65296,1613,2},{65288,1617,2},{65281,1617,2}, {65278,1622,2},{65273,1622,2},{65264,1618,2},{65244,1617,2},{65226,1620,2}, {65229,1618,2},{65234,1622,2},{65249,1618,2},{65263,1622,2},{65273,1625,2}, {65303,1622,2},{65311,1625,2},{65323,1623,2},{65324,1630,2},{65339,1652,2}, {65354,1662,2},{65369,1668,2},{65374,1668,2},{65384,1677,2},{65393,1678,2}, {65414,1695,2},{65423,1707,2},{65424,1713,2},{65429,1717,2},{65429,1728,2}, {65431,1733,2},{65446,1747,2},{65453,1757,2},{65458,1760,2},{65461,1758,2}, {65466,1762,2},{65466,1767,2},{65469,1768,2},{65476,1778,2},{65491,1787,2}, {65498,1792,2},{65501,1798,2},{65508,1802,2},{65513,1808,2},{65521,1815,2}, {65529,1818,2},{65534,1822,2},{5,1825,2},{7,1830,2},{3,1835,2},{65534,1837,2}, {65533,1840,2},{65534,1845,2},{0,1838,2},{5,1837,2},{8,1832,2},{12,1833,2}, {13,1833,2},{12,1832,2},{10,1828,2},{12,1828,2},{32,1832,2},{43,1832,2}, {57,1835,2},{63,1835,2},{68,1838,2},{72,1837,2},{78,1837,2},{85,1840,2}, {100,1852,2},{107,1855,2},{113,1865,2},{117,1873,2},{150,1910,2},{157,1922,2}, {160,1942,2},{162,1950,2},{168,1958,2},{170,1968,2},{175,1973,2},{183,1987,2}, {190,2005,2},{192,2015,2},{193,2020,2},{193,2037,2},{198,2047,2},{195,2058,2}, {197,2070,2},{198,2075,2},{197,2087,2},{192,2095,2},{192,2112,2},{193,2122,2}, {208,2138,2},{207,2145,2},{212,2158,2},{213,2178,2},{212,2183,2},{217,2220,2}, {215,2237,2},{213,2245,2},{208,2255,2},{197,2263,2},{193,2270,2},{192,2278,2}, {188,2285,2},{188,2290,2},{183,2302,2},{177,2305,2},{162,2317,2},{142,2337,2}, {123,2352,2},{110,2367,2},{107,2380,2},{107,2385,2},{107,2388,2},{98,2405,2}, {97,2412,2},{92,2417,2},{87,2420,2},{80,2427,2},{75,2428,2},{73,2432,2}, {73,2448,2},{72,2455,2},{68,2458,2},{2948,3490,128},{2953,3488,0},{2960,3487,0}, {2965,3488,0},{2970,3485,0},{2975,3485,0},{3000,3475,0},{3002,3475,0},{3037,3462,0}, {3042,3455,0},{3048,3457,0},{3053,3452,0},{3058,3452,0},{3068,3450,0},{3102,3435,0}, {3122,3427,0},{65369,4155,131},{65373,4155,3},{65378,4155,3},{65383,4152,3}, {65386,4148,3},{65389,4145,3},{65394,4142,3},{65398,4140,3},{65403,4137,3}, {65406,4133,3},{65411,4130,3},{65414,4127,3},{65418,4123,3},{65423,4120,3}, {65426,4117,3},{65431,4115,3},{65434,4112,3},{65439,4108,3},{65443,4105,3}, {65446,4102,3},{65449,4100,3},{65459,4100,3},{65466,4100,3},{65473,4100,3}, {65479,4100,3},{65486,4100,3},{65493,4100,3},{65499,4100,3},{65506,4100,3}, {65513,4098,3},{65519,4098,3},{65526,4098,3},{65533,4098,3},{3,4098,3}, {8,4098,3},{13,4098,3},{20,4098,3},{25,4098,3},{30,4098,3},{37,4098,3}, {42,4098,3},{47,4098,3},{53,4098,3},{58,4098,3},{63,4098,3},{70,4098,3}, {75,4098,3},{80,4098,3},{87,4098,3},{92,4098,3},{97,4098,3},{103,4098,3}, {108,4098,3},{113,4098,3},{120,4098,3},{125,4098,3},{130,4098,3},{137,4098,3}, {142,4098,3},{147,4098,3},{153,4098,3},{158,4098,3},{163,4098,3},{170,4098,3}, {175,4098,3},{180,4098,3},{187,4098,3},{192,4098,3},{197,4098,3},{203,4098,3}, {208,4098,3},{213,4098,3},{220,4098,3},{225,4098,3},{230,4098,3},{237,4098,3}, {242,4098,3},{247,4098,3},{253,4098,3},{260,4098,3},{265,4098,3},{272,4098,3}, {277,4098,3},{283,4098,3},{285,4102,3},{290,4107,3},{295,4112,3},{300,4117,3}, {305,4122,3},{310,4127,3},{317,4133,3},{325,4140,3},{330,4143,3},{335,4147,3}, {340,4150,3},{345,4153,3},{350,4157,3},{355,4160,3},{360,4163,3},{365,4167,3}, {370,4170,3},{375,4173,3},{378,4178,3},{383,4182,3},{388,4185,3},{393,4188,3}, {398,4192,3},{402,4193,3},{407,4193,3},{408,4195,3},{413,4203,3},{417,4207,3}, {420,4212,3},{422,4220,3},{420,4238,3},{427,4263,3},{428,4277,3},{430,4287,3}, {438,4293,3},{448,4295,3},{452,4298,3},{467,4315,3},{477,4335,3},{488,4367,3}, {492,4385,3},{497,4398,3},{497,4403,3},{495,4408,3},{495,4413,3},{495,4418,3}, {495,4423,3},{495,4428,3},{493,4435,3},{493,4440,3},{493,4445,3},{493,4450,3}, {493,4455,3},{493,4460,3},{492,4465,3},{492,4470,3},{492,4475,3},{492,4480,3}, {492,4485,3},{490,4490,3},{490,4495,3},{495,4500,3},{500,4503,3},{505,4508,3}, {510,4513,3},{515,4517,3},{518,4522,3},{523,4527,3},{528,4530,3},{533,4535,3}, {538,4538,3},{543,4543,3},{548,4548,3},{553,4552,3},{558,4557,3},{562,4562,3}, {567,4565,3},{572,4570,3},{577,4575,3},{582,4580,3},{587,4583,3},{592,4588,3}, {597,4593,3},{602,4597,3},{605,4600,3},{610,4605,3},{615,4610,3},{620,4615,3}, {625,4620,3},{630,4625,3},{635,4628,3},{640,4633,3},{643,4638,3},{648,4643,3}, {653,4648,3},{658,4653,3},{663,4658,3},{668,4663,3},{673,4667,3},{678,4672,3}, {683,4677,3},{688,4682,3},{693,4687,3},{698,4692,3},{702,4697,3},{707,4700,3}, {710,4705,3},{715,4710,3},{720,4715,3},{725,4720,3},{730,4725,3},{735,4730,3}, {740,4735,3},{745,4740,3},{750,4745,3},{755,4750,3},{760,4755,3},{763,4760,3}, {768,4765,3},{773,4772,3},{778,4777,3},{783,4782,3},{788,4787,3},{792,4790,3}, {797,4795,3},{800,4798,3},{800,4793,3},{800,4788,3},{800,4783,3},{800,4778,3}, {800,4773,3},{800,4768,3},{800,4763,3},{800,4757,3},{800,4752,3},{800,4747,3}, {800,4742,3},{800,4737,3},{800,4732,3},{800,4727,3},{800,4720,3},{800,4715,3}, {800,4710,3},{800,4705,3},{800,4700,3},{802,4697,3},{803,4692,3},{805,4687,3}, {807,4680,3},{808,4675,3},{810,4670,3},{812,4665,3},{813,4660,3},{815,4655,3}, {817,4650,3},{818,4645,3},{822,4640,3},{823,4635,3},{825,4630,3},{827,4625,3}, {828,4620,3},{830,4615,3},{832,4610,3},{833,4605,3},{835,4598,3},{837,4593,3}, {838,4588,3},{840,4583,3},{842,4578,3},{843,4573,3},{845,4568,3},{847,4563,3}, {848,4558,3},{850,4553,3},{852,4548,3},{853,4543,3},{855,4538,3},{857,4533,3}, {858,4528,3},{860,4522,3},{862,4517,3},{863,4512,3},{865,4507,3},{867,4502,3}, {868,4497,3},{870,4492,3},{872,4487,3},{875,4482,3},{875,4477,3},{878,4472,3}, {880,4467,3},{882,4460,3},{883,4455,3},{885,4450,3},{887,4445,3},{888,4440,3}, {890,4435,3},{892,4430,3},{893,4425,3},{895,4420,3},{897,4415,3},{898,4410,3}, {900,4405,3},{900,4402,3},{935,4363,3},{933,4358,3},{935,4355,3},{943,4343,3}, {948,4343,3},{952,4340,3},{955,4338,3},{957,4335,3},{962,4333,3},{965,4328,3}, {988,4322,3},{990,4318,3},{990,4312,3},{993,4308,3},{997,4305,3},{1008,4302,3}, {1012,4297,3},{1017,4290,3},{1022,4285,3},{1045,4278,3},{1053,4272,3},{1063,4267,3}, {1067,4272,3},{1078,4277,3},{1082,4282,3},{1088,4285,3},{1092,4292,3},{1100,4295,3}, {1105,4298,3},{1110,4302,3},{1115,4305,3},{1120,4308,3},{1125,4312,3},{1130,4315,3}, {1135,4318,3},{1140,4320,3},{1145,4323,3},{1148,4325,3},{1147,4328,3},{1150,4327,3}, {1150,4330,3},{1145,4332,3},{1145,4335,3},{1140,4337,3},{1140,4342,3},{1137,4347,3}, {1138,4348,3},{1132,4348,3},{1128,4348,3},{1123,4350,3},{1118,4355,3},{1098,4367,3}, {1082,4382,3},{1068,4395,3},{1065,4403,3},{1058,4410,3},{1045,4428,3},{1042,4438,3}, {1043,4443,3},{1042,4457,3},{1047,4475,3},{1042,4492,3},{1043,4498,3},{1045,4500,3}, {1045,4498,3},{1047,4503,3},{1050,4507,3},{1053,4517,3},{1057,4520,3},{1058,4525,3}, {1067,4533,3},{1065,4540,3},{1067,4547,3},{1072,4555,3},{1077,4558,3},{1077,4562,3}, {1080,4567,3},{1085,4573,3},{1088,4577,3},{1087,4580,3},{1083,4585,3},{1082,4585,3}, {1082,4587,3},{1083,4587,3},{1085,4588,3},{1078,4598,3},{1077,4612,3},{1078,4625,3}, {1070,4633,3},{1068,4645,3},{1073,4653,3},{1075,4665,3},{1087,4687,3},{1090,4688,3}, {1093,4698,3},{1097,4702,3},{1097,4707,3},{1103,4715,3},{1108,4717,3},{1110,4723,3}, {1118,4740,3},{1118,4752,3},{1113,4762,3},{1110,4770,3},{1113,4778,3},{1112,4787,3}, {1113,4790,3},{1112,4795,3},{1113,4813,3},{1115,4817,3},{1122,4822,3},{1123,4830,3}, {1127,4835,3},{1128,4847,3},{1132,4852,3},{1133,4865,3},{1125,4888,3},{1125,4898,3}, {1128,4910,3},{1130,4923,3},{1133,4930,3},{1133,4935,3},{1133,4943,3},{1138,4952,3}, {1145,4957,3},{1147,4968,3},{1145,4978,3},{1148,4987,3},{1152,4993,3},{1152,5008,3}, {1157,5017,3},{1158,5027,3},{1165,5035,3},{1168,5043,3},{1175,5050,3},{1187,5053,3}, {1190,5057,3},{1195,5063,3},{1195,5068,3},{1200,5078,3},{1195,5085,3},{1193,5097,3}, {1187,5107,3},{1187,5115,3},{1183,5123,3},{1183,5128,3},{1178,5127,3},{1177,5125,3}, {1167,5125,3},{1160,5118,3},{1150,5113,3},{1145,5112,3},{1133,5108,3},{1118,5108,3}, {1117,5110,3},{1115,5117,3},{1097,5112,3},{1070,5113,3},{1058,5117,3},{1057,5110,3}, {1048,5110,3},{1047,5103,3},{1043,5102,3},{1042,5103,3},{1043,5110,3},{1043,5122,3}, {1045,5122,3},{1048,5120,3},{1052,5120,3},{1057,5117,3},{1048,5132,3},{1048,5137,3}, {1045,5142,3},{1037,5137,3},{1038,5128,3},{1042,5125,3},{1042,5115,3},{1038,5102,3}, {1032,5090,3},{1018,5090,3},{1010,5088,3},{1000,5090,3},{977,5083,3},{970,5083,3}, {957,5080,3},{945,5085,3},{942,5083,3},{932,5077,3},{928,5070,3},{922,5065,3}, {918,5065,3},{913,5065,3},{907,5063,3},{898,5055,3},{895,5048,3},{887,5043,3}, {872,5038,3},{862,5032,3},{853,5032,3},{845,5025,3},{840,5023,3},{838,5020,3}, {832,5015,3},{818,5012,3},{813,5007,3},{805,4993,3},{793,4983,3},{783,4980,3}, {782,4980,3},{780,4983,3},{773,4982,3},{765,4975,3},{758,4973,3},{733,4960,3}, {723,4952,3},{710,4943,3},{703,4938,3},{675,4922,3},{642,4907,3},{628,4908,3}, {615,4905,3},{582,4885,3},{562,4872,3},{547,4863,3},{540,4857,3},{518,4842,3}, {505,4830,3},{488,4820,3},{453,4800,3},{447,4795,3},{427,4777,3},{418,4770,3}, {408,4760,3},{388,4745,3},{382,4738,3},{378,4733,3},{375,4730,3},{372,4727,3}, {368,4723,3},{363,4718,3},{360,4715,3},{355,4712,3},{352,4708,3},{347,4705,3}, {343,4702,3},{340,4697,3},{335,4693,3},{332,4690,3},{328,4687,3},{323,4683,3}, {318,4678,3},{313,4672,3},{300,4662,3},{278,4635,3},{277,4633,3},{273,4632,3}, {270,4628,3},{265,4622,3},{260,4618,3},{257,4613,3},{252,4612,3},{243,4602,3}, {235,4590,3},{230,4582,3},{228,4578,3},{225,4573,3},{223,4568,3},{220,4563,3}, {217,4558,3},{215,4555,3},{212,4550,3},{210,4545,3},{208,4542,3},{203,4537,3}, {200,4532,3},{198,4528,3},{197,4522,3},{193,4517,3},{192,4512,3},{190,4507,3}, {187,4502,3},{185,4498,3},{182,4493,3},{178,4488,3},{175,4485,3},{172,4478,3}, {170,4475,3},{167,4472,3},{163,4467,3},{160,4463,3},{157,4458,3},{155,4453,3}, {150,4450,3},{148,4445,3},{145,4442,3},{142,4437,3},{140,4435,3},{127,4422,3}, {123,4415,3},{118,4413,3},{117,4408,3},{108,4403,3},{108,4398,3},{102,4395,3}, {92,4380,3},{87,4375,3},{78,4363,3},{73,4358,3},{70,4355,3},{65,4348,3}, {62,4347,3},{58,4343,3},{55,4340,3},{50,4335,3},{47,4332,3},{43,4328,3}, {38,4325,3},{35,4322,3},{32,4318,3},{27,4313,3},{23,4310,3},{20,4307,3}, {15,4303,3},{12,4300,3},{8,4297,3},{3,4293,3},{0,4290,3},{65533,4287,3}, {65529,4283,3},{65524,4278,3},{65521,4275,3},{65518,4272,3},{65514,4267,3}, {65511,4263,3},{65504,4257,3},{65501,4255,3},{65499,4252,3},{65493,4247,3}, {65489,4248,3},{65489,4247,3},{65491,4247,3},{65486,4242,3},{65468,4225,3}, {65456,4218,3},{65454,4215,3},{65453,4207,3},{65451,4208,3},{65446,4207,3}, {65444,4203,3},{65439,4202,3},{65436,4197,3},{65446,4195,3},{65441,4195,3}, {65436,4195,3},{65434,4197,3},{65428,4195,3},{65418,4187,3},{65416,4190,3}, {65414,4188,3},{65416,4185,3},{65419,4183,3},{65411,4185,3},{65406,4182,3}, {65379,4165,3},{65369,4155,3},{1100,4295,131},{1100,4292,3},{1098,4290,3}, {1100,4285,3},{1098,4280,3},{1100,4278,3},{1108,4275,3},{1108,4268,3},{1110,4263,3}, {1107,4250,3},{1100,4240,3},{1102,4237,3},{1100,4235,3},{1098,4223,3},{1100,4213,3}, {1098,4208,3},{1095,4207,3},{1095,4197,3},{1093,4197,3},{1095,4193,3},{1098,4178,3}, {1100,4178,3},{1103,4180,3},{1125,4182,3},{1152,4177,3},{1175,4183,3},{1177,4188,3}, {1180,4190,3},{1182,4195,3},{1208,4213,3},{1210,4215,3},{1213,4217,3},{1225,4225,3}, {1230,4232,3},{1240,4233,3},{1253,4245,3},{1250,4253,3},{1237,4270,3},{1238,4272,3}, {1238,4275,3},{1242,4277,3},{1243,4282,3},{1253,4280,3},{1257,4287,3},{1263,4288,3}, {1262,4292,3},{1263,4295,3},{1270,4312,3},{1248,4330,3},{1247,4332,3},{1248,4333,3}, {1243,4333,3},{1238,4337,3},{1228,4337,3},{1223,4342,3},{1213,4342,3},{1203,4340,3}, {1198,4337,3},{1195,4317,3},{1185,4308,3},{1182,4303,3},{1182,4297,3},{1178,4295,3}, {1178,4290,3},{1175,4277,3},{1173,4275,3},{1168,4275,3},{1165,4270,3},{1160,4268,3}, {1158,4267,3},{1157,4262,3},{1160,4253,3},{1160,4252,3},{1157,4253,3},{1153,4252,3}, {1148,4262,3},{1148,4263,3},{1148,4268,3},{1152,4270,3},{1153,4267,3},{1155,4268,3}, {1160,4280,3},{1160,4308,3},{1158,4310,3},{1160,4312,3},{1162,4312,3},{1163,4313,3}, {1162,4315,3},{1158,4315,3},{1153,4320,3},{1153,4322,3},{1148,4325,3},{1145,4323,3}, {1140,4320,3},{1135,4318,3},{1130,4315,3},{1125,4312,3},{1120,4308,3},{1115,4305,3}, {1110,4302,3},{1105,4298,3},{1100,4295,3},{1423,3653,131},{1427,3655,3}, {1437,3652,3},{1442,3652,3},{1447,3652,3},{1452,3650,3},{1457,3650,3},{1462,3650,3}, {1467,3650,3},{1473,3648,3},{1478,3648,3},{1483,3648,3},{1488,3647,3},{1493,3647,3}, {1498,3647,3},{1503,3645,3},{1508,3645,3},{1515,3645,3},{1523,3655,3},{1543,3662,3}, {1545,3665,3},{1548,3663,3},{1575,3670,3},{1580,3677,3},{1622,3692,3},{1627,3697,3}, {1635,3695,3},{1642,3695,3},{1648,3692,3},{1652,3690,3},{1660,3692,3},{1663,3692,3}, {1672,3698,3},{1685,3702,3},{1687,3702,3},{1692,3702,3},{1695,3698,3},{1700,3702,3}, {1705,3700,3},{1707,3700,3},{1705,3710,3},{1702,3715,3},{1703,3718,3},{1702,3725,3}, {1707,3730,3},{1703,3742,3},{1707,3745,3},{1710,3748,3},{1720,3752,3},{1725,3753,3}, {1732,3750,3},{1733,3752,3},{1738,3773,3},{1747,3778,3},{1748,3782,3},{1748,3783,3}, {1745,3787,3},{1745,3792,3},{1750,3797,3},{1755,3805,3},{1755,3810,3},{1750,3810,3}, {1748,3812,3},{1750,3813,3},{1755,3813,3},{1753,3825,3},{1755,3827,3},{1760,3828,3}, {1767,3837,3},{1787,3847,3},{1802,3860,3},{1800,3860,3},{1795,3862,3},{1788,3867,3}, {1785,3867,3},{1778,3872,3},{1763,3882,3},{1753,3885,3},{1738,3893,3},{1730,3897,3}, {1723,3897,3},{1718,3902,3},{1707,3903,3},{1702,3907,3},{1688,3908,3},{1677,3913,3}, {1672,3915,3},{1672,3913,3},{1668,3917,3},{1662,3917,3},{1660,3913,3},{1655,3917,3}, {1653,3915,3},{1652,3918,3},{1620,3922,3},{1598,3927,3},{1590,3930,3},{1580,3943,3}, {1575,3942,3},{1573,3945,3},{1568,3945,3},{1567,3947,3},{1565,3945,3},{1563,3945,3}, {1562,3945,3},{1563,3947,3},{1563,3948,3},{1560,3947,3},{1560,3943,3},{1552,3947,3}, {1552,3950,3},{1553,3955,3},{1552,3958,3},{1548,3962,3},{1535,3965,3},{1532,3968,3}, {1525,3972,3},{1513,3970,3},{1508,3972,3},{1508,3975,3},{1507,3977,3},{1508,3982,3}, {1513,3982,3},{1517,3985,3},{1518,3985,3},{1527,3982,3},{1528,3982,3},{1527,3980,3}, {1527,3978,3},{1538,3977,3},{1545,3980,3},{1547,3985,3},{1550,3988,3},{1545,3990,3}, {1538,4000,3},{1537,4005,3},{1533,4008,3},{1523,4002,3},{1523,4005,3},{1520,4005,3}, {1515,4008,3},{1510,4010,3},{1507,4010,3},{1505,4013,3},{1503,4015,3},{1498,4015,3}, {1497,4017,3},{1493,4027,3},{1492,4030,3},{1495,4037,3},{1500,4038,3},{1497,4038,3}, {1497,4040,3},{1497,4042,3},{1500,4042,3},{1500,4045,3},{1498,4047,3},{1497,4050,3}, {1498,4052,3},{1500,4052,3},{1502,4052,3},{1498,4053,3},{1498,4055,3},{1495,4057,3}, {1495,4062,3},{1488,4062,3},{1488,4065,3},{1490,4065,3},{1490,4067,3},{1488,4070,3}, {1487,4067,3},{1483,4070,3},{1483,4073,3},{1480,4073,3},{1477,4072,3},{1473,4073,3}, {1472,4077,3},{1470,4077,3},{1470,4080,3},{1472,4082,3},{1470,4083,3},{1472,4085,3}, {1472,4088,3},{1465,4098,3},{1467,4105,3},{1463,4117,3},{1458,4120,3},{1448,4130,3}, {1440,4133,3},{1437,4138,3},{1430,4142,3},{1422,4150,3},{1413,4153,3},{1407,4162,3}, {1393,4168,3},{1393,4170,3},{1392,4172,3},{1393,4180,3},{1388,4183,3},{1387,4192,3}, {1387,4195,3},{1383,4198,3},{1378,4198,3},{1373,4207,3},{1370,4207,3},{1363,4212,3}, {1365,4213,3},{1362,4218,3},{1358,4218,3},{1355,4223,3},{1360,4220,3},{1360,4222,3}, {1363,4222,3},{1365,4217,3},{1367,4218,3},{1363,4223,3},{1360,4225,3},{1358,4228,3}, {1355,4230,3},{1348,4230,3},{1343,4233,3},{1322,4237,3},{1318,4248,3},{1323,4253,3}, {1320,4253,3},{1320,4255,3},{1317,4258,3},{1313,4262,3},{1307,4267,3},{1303,4273,3}, {1298,4275,3},{1297,4273,3},{1295,4277,3},{1287,4277,3},{1285,4278,3},{1287,4283,3}, {1282,4287,3},{1280,4293,3},{1278,4292,3},{1278,4293,3},{1280,4295,3},{1282,4298,3}, {1288,4300,3},{1290,4300,3},{1283,4305,3},{1283,4308,3},{1270,4312,3},{1263,4295,3}, {1262,4292,3},{1263,4288,3},{1257,4287,3},{1253,4280,3},{1243,4282,3},{1242,4277,3}, {1238,4275,3},{1238,4272,3},{1237,4270,3},{1250,4253,3},{1253,4245,3},{1253,4238,3}, {1257,4237,3},{1262,4233,3},{1263,4228,3},{1265,4223,3},{1267,4218,3},{1268,4213,3}, {1272,4208,3},{1275,4203,3},{1278,4200,3},{1283,4198,3},{1288,4197,3},{1293,4195,3}, {1298,4193,3},{1303,4192,3},{1308,4188,3},{1312,4185,3},{1317,4182,3},{1320,4178,3}, {1325,4177,3},{1330,4172,3},{1333,4168,3},{1337,4163,3},{1342,4160,3},{1345,4155,3}, {1348,4152,3},{1352,4147,3},{1355,4142,3},{1358,4138,3},{1362,4133,3},{1365,4128,3}, {1370,4125,3},{1373,4122,3},{1378,4118,3},{1382,4115,3},{1385,4110,3},{1388,4107,3}, {1393,4103,3},{1397,4098,3},{1400,4095,3},{1403,4090,3},{1405,4085,3},{1408,4080,3}, {1412,4075,3},{1415,4070,3},{1418,4067,3},{1420,4062,3},{1423,4057,3},{1425,4052,3}, {1428,4047,3},{1430,4043,3},{1433,4037,3},{1435,4032,3},{1438,4028,3},{1440,4023,3}, {1442,4018,3},{1443,4013,3},{1445,4007,3},{1448,4002,3},{1448,3997,3},{1450,3992,3}, {1452,3987,3},{1452,3982,3},{1450,3975,3},{1450,3970,3},{1450,3963,3},{1448,3958,3}, {1448,3953,3},{1447,3947,3},{1445,3942,3},{1445,3935,3},{1445,3930,3},{1445,3925,3}, {1450,3922,3},{1455,3920,3},{1458,3917,3},{1462,3912,3},{1462,3907,3},{1457,3903,3}, {1452,3902,3},{1450,3898,3},{1448,3893,3},{1447,3888,3},{1445,3883,3},{1443,3878,3}, {1442,3872,3},{1440,3867,3},{1440,3862,3},{1438,3855,3},{1440,3850,3},{1445,3845,3}, {1448,3842,3},{1453,3840,3},{1457,3837,3},{1458,3833,3},{1463,3832,3},{1467,3827,3}, {1467,3822,3},{1470,3817,3},{1473,3812,3},{1473,3807,3},{1477,3803,3},{1480,3798,3}, {1483,3795,3},{1488,3792,3},{1488,3790,3},{1483,3787,3},{1478,3785,3},{1475,3783,3}, {1470,3780,3},{1465,3780,3},{1460,3778,3},{1455,3777,3},{1450,3775,3},{1445,3773,3}, {1440,3770,3},{1435,3768,3},{1430,3765,3},{1427,3763,3},{1423,3758,3},{1425,3757,3}, {1427,3755,3},{1430,3752,3},{1433,3747,3},{1435,3747,3},{1440,3743,3},{1443,3740,3}, {1443,3735,3},{1443,3732,3},{1442,3727,3},{1440,3722,3},{1437,3722,3},{1432,3718,3}, {1428,3715,3},{1428,3710,3},{1428,3705,3},{1430,3700,3},{1432,3695,3},{1433,3690,3}, {1433,3683,3},{1432,3678,3},{1430,3673,3},{1428,3668,3},{1427,3663,3},{1427,3658,3}, {1423,3653,3},{462,3593,131},{480,3577,3},{508,3577,3},{515,3583,3},{523,3580,3}, {528,3580,3},{532,3583,3},{535,3575,3},{538,3568,3},{537,3560,3},{542,3555,3}, {543,3550,3},{543,3545,3},{535,3535,3},{537,3530,3},{543,3527,3},{548,3530,3}, {550,3528,3},{563,3510,3},{570,3510,3},{588,3498,3},{592,3500,3},{595,3498,3}, {600,3498,3},{607,3498,3},{613,3492,3},{620,3490,3},{623,3487,3},{635,3485,3}, {645,3480,3},{650,3480,3},{660,3477,3},{663,3472,3},{668,3470,3},{673,3463,3}, {675,3453,3},{692,3447,3},{697,3437,3},{697,3428,3},{702,3427,3},{702,3423,3}, {705,3422,3},{705,3420,3},{708,3420,3},{712,3420,3},{717,3418,3},{717,3412,3}, {722,3407,3},{725,3402,3},{738,3403,3},{753,3388,3},{757,3378,3},{765,3372,3}, {767,3368,3},{768,3365,3},{768,3355,3},{772,3352,3},{775,3347,3},{773,3340,3}, {772,3333,3},{775,3327,3},{777,3325,3},{780,3317,3},{778,3312,3},{778,3305,3}, {785,3302,3},{793,3298,3},{795,3302,3},{800,3303,3},{807,3310,3},{810,3310,3}, {812,3317,3},{813,3318,3},{820,3317,3},{825,3322,3},{828,3317,3},{833,3318,3}, {837,3317,3},{840,3317,3},{842,3322,3},{843,3320,3},{843,3323,3},{847,3327,3}, {843,3338,3},{845,3342,3},{847,3350,3},{848,3352,3},{845,3358,3},{847,3363,3}, {843,3367,3},{838,3370,3},{837,3378,3},{842,3382,3},{843,3385,3},{843,3397,3}, {858,3412,3},{863,3412,3},{868,3413,3},{873,3413,3},{878,3413,3},{883,3413,3}, {888,3413,3},{895,3413,3},{900,3413,3},{907,3413,3},{912,3412,3},{917,3412,3}, {922,3412,3},{927,3412,3},{932,3410,3},{937,3410,3},{942,3410,3},{947,3410,3}, {955,3408,3},{975,3413,3},{990,3420,3},{1003,3423,3},{1012,3432,3},{1017,3432,3}, {1023,3435,3},{1055,3428,3},{1063,3435,3},{1078,3443,3},{1088,3460,3},{1075,3477,3}, {1068,3477,3},{1068,3478,3},{1073,3482,3},{1073,3487,3},{1078,3487,3},{1087,3498,3}, {1092,3498,3},{1095,3493,3},{1120,3500,3},{1123,3497,3},{1125,3497,3},{1155,3510,3}, {1160,3510,3},{1165,3507,3},{1173,3505,3},{1183,3510,3},{1187,3513,3},{1190,3523,3}, {1193,3527,3},{1198,3527,3},{1202,3533,3},{1208,3535,3},{1217,3538,3},{1220,3543,3}, {1225,3543,3},{1260,3565,3},{1260,3568,3},{1262,3570,3},{1267,3570,3},{1272,3600,3}, {1272,3603,3},{1272,3608,3},{1270,3610,3},{1270,3615,3},{1287,3617,3},{1292,3613,3}, {1297,3615,3},{1298,3617,3},{1303,3617,3},{1337,3625,3},{1357,3640,3},{1360,3642,3}, {1367,3642,3},{1383,3648,3},{1395,3645,3},{1423,3653,3},{1427,3658,3},{1427,3663,3}, {1428,3668,3},{1430,3673,3},{1432,3678,3},{1433,3683,3},{1433,3690,3},{1432,3695,3}, {1430,3700,3},{1428,3705,3},{1428,3710,3},{1428,3715,3},{1432,3718,3},{1437,3722,3}, {1440,3722,3},{1442,3727,3},{1443,3732,3},{1443,3735,3},{1443,3740,3},{1440,3743,3}, {1435,3747,3},{1433,3747,3},{1430,3752,3},{1427,3755,3},{1425,3757,3},{1423,3758,3}, {1427,3763,3},{1430,3765,3},{1435,3768,3},{1440,3770,3},{1445,3773,3},{1450,3775,3}, {1455,3777,3},{1460,3778,3},{1465,3780,3},{1470,3780,3},{1475,3783,3},{1478,3785,3}, {1483,3787,3},{1488,3790,3},{1488,3792,3},{1483,3795,3},{1480,3798,3},{1477,3803,3}, {1473,3807,3},{1473,3812,3},{1470,3817,3},{1467,3822,3},{1467,3827,3},{1463,3832,3}, {1458,3833,3},{1457,3837,3},{1453,3840,3},{1448,3842,3},{1445,3845,3},{1440,3850,3}, {1438,3855,3},{1440,3862,3},{1440,3867,3},{1442,3872,3},{1443,3878,3},{1445,3883,3}, {1447,3888,3},{1448,3893,3},{1450,3898,3},{1452,3902,3},{1457,3903,3},{1462,3907,3}, {1462,3912,3},{1458,3917,3},{1455,3920,3},{1450,3922,3},{1445,3925,3},{1445,3930,3}, {1445,3935,3},{1445,3942,3},{1447,3947,3},{1448,3953,3},{1448,3958,3},{1450,3963,3}, {1450,3970,3},{1450,3975,3},{1452,3982,3},{1452,3987,3},{1450,3992,3},{1448,3997,3}, {1448,4002,3},{1445,4007,3},{1443,4013,3},{1442,4018,3},{1440,4023,3},{1438,4028,3}, {1435,4032,3},{1433,4037,3},{1430,4043,3},{1428,4047,3},{1425,4052,3},{1423,4057,3}, {1420,4062,3},{1418,4067,3},{1415,4070,3},{1412,4075,3},{1408,4080,3},{1405,4085,3}, {1403,4090,3},{1400,4095,3},{1397,4098,3},{1393,4103,3},{1388,4107,3},{1385,4110,3}, {1382,4115,3},{1378,4118,3},{1373,4122,3},{1370,4125,3},{1365,4128,3},{1362,4133,3}, {1358,4138,3},{1355,4142,3},{1352,4147,3},{1348,4152,3},{1345,4155,3},{1342,4160,3}, {1337,4163,3},{1333,4168,3},{1330,4172,3},{1325,4177,3},{1320,4178,3},{1317,4182,3}, {1312,4185,3},{1308,4188,3},{1303,4192,3},{1298,4193,3},{1293,4195,3},{1288,4197,3}, {1283,4198,3},{1278,4200,3},{1275,4203,3},{1272,4208,3},{1268,4213,3},{1267,4218,3}, {1265,4223,3},{1263,4228,3},{1262,4233,3},{1257,4237,3},{1253,4238,3},{1253,4245,3}, {1240,4233,3},{1230,4232,3},{1225,4225,3},{1213,4217,3},{1210,4215,3},{1208,4213,3}, {1182,4195,3},{1180,4190,3},{1177,4188,3},{1175,4183,3},{1152,4177,3},{1125,4182,3}, {1103,4180,3},{1100,4178,3},{1098,4178,3},{1095,4193,3},{1093,4197,3},{1095,4197,3}, {1095,4207,3},{1098,4208,3},{1100,4213,3},{1098,4223,3},{1100,4235,3},{1102,4237,3}, {1100,4240,3},{1107,4250,3},{1110,4263,3},{1108,4268,3},{1108,4275,3},{1100,4278,3}, {1098,4280,3},{1100,4285,3},{1098,4290,3},{1100,4292,3},{1100,4295,3},{1092,4292,3}, {1088,4285,3},{1082,4282,3},{1078,4277,3},{1067,4272,3},{1063,4267,3},{1053,4272,3}, {1045,4278,3},{1022,4285,3},{1017,4290,3},{1012,4297,3},{1008,4302,3},{997,4305,3}, {993,4308,3},{990,4312,3},{990,4318,3},{988,4322,3},{965,4328,3},{962,4333,3}, {957,4335,3},{955,4338,3},{952,4340,3},{948,4343,3},{943,4343,3},{935,4355,3}, {933,4358,3},{935,4363,3},{900,4402,3},{900,4405,3},{898,4410,3},{897,4415,3}, {895,4420,3},{893,4425,3},{892,4430,3},{890,4435,3},{888,4440,3},{887,4445,3}, {885,4450,3},{883,4455,3},{882,4460,3},{880,4467,3},{878,4472,3},{875,4477,3}, {875,4482,3},{872,4487,3},{870,4492,3},{868,4497,3},{867,4502,3},{865,4507,3}, {863,4512,3},{862,4517,3},{860,4522,3},{858,4528,3},{857,4533,3},{855,4538,3}, {853,4543,3},{852,4548,3},{850,4553,3},{848,4558,3},{847,4563,3},{845,4568,3}, {843,4573,3},{842,4578,3},{840,4583,3},{838,4588,3},{837,4593,3},{835,4598,3}, {833,4605,3},{832,4610,3},{830,4615,3},{828,4620,3},{827,4625,3},{825,4630,3}, {823,4635,3},{822,4640,3},{818,4645,3},{817,4650,3},{815,4655,3},{813,4660,3}, {812,4665,3},{810,4670,3},{808,4675,3},{807,4680,3},{805,4687,3},{803,4692,3}, {802,4697,3},{800,4700,3},{800,4705,3},{800,4710,3},{800,4715,3},{800,4720,3}, {800,4727,3},{800,4732,3},{800,4737,3},{800,4742,3},{800,4747,3},{800,4752,3}, {800,4757,3},{800,4763,3},{800,4768,3},{800,4773,3},{800,4778,3},{800,4783,3}, {800,4788,3},{800,4793,3},{800,4798,3},{797,4795,3},{792,4790,3},{788,4787,3}, {783,4782,3},{778,4777,3},{773,4772,3},{768,4765,3},{763,4760,3},{760,4755,3}, {755,4750,3},{750,4745,3},{745,4740,3},{740,4735,3},{735,4730,3},{730,4725,3}, {725,4720,3},{720,4715,3},{715,4710,3},{710,4705,3},{707,4700,3},{702,4697,3}, {698,4692,3},{693,4687,3},{688,4682,3},{683,4677,3},{678,4672,3},{673,4667,3}, {668,4663,3},{663,4658,3},{658,4653,3},{653,4648,3},{648,4643,3},{643,4638,3}, {640,4633,3},{635,4628,3},{630,4625,3},{625,4620,3},{620,4615,3},{615,4610,3}, {610,4605,3},{605,4600,3},{602,4597,3},{597,4593,3},{592,4588,3},{587,4583,3}, {582,4580,3},{577,4575,3},{572,4570,3},{567,4565,3},{562,4562,3},{558,4557,3}, {553,4552,3},{548,4548,3},{543,4543,3},{538,4538,3},{533,4535,3},{528,4530,3}, {523,4527,3},{518,4522,3},{515,4517,3},{510,4513,3},{505,4508,3},{500,4503,3}, {495,4500,3},{490,4495,3},{490,4490,3},{492,4485,3},{492,4480,3},{492,4475,3}, {492,4470,3},{492,4465,3},{493,4460,3},{493,4455,3},{493,4450,3},{493,4445,3}, {493,4440,3},{493,4435,3},{495,4428,3},{495,4423,3},{495,4418,3},{495,4413,3}, {495,4408,3},{497,4403,3},{497,4398,3},{492,4385,3},{488,4367,3},{477,4335,3}, {467,4315,3},{452,4298,3},{448,4295,3},{438,4293,3},{430,4287,3},{428,4277,3}, {427,4263,3},{420,4238,3},{422,4220,3},{420,4212,3},{417,4207,3},{413,4203,3}, {408,4195,3},{407,4193,3},{402,4193,3},{398,4192,3},{397,4190,3},{395,4185,3}, {400,4172,3},{397,4167,3},{398,4162,3},{397,4157,3},{397,4150,3},{395,4147,3}, {395,4117,3},{400,4110,3},{410,4102,3},{415,4092,3},{422,4088,3},{427,4080,3}, {428,4078,3},{425,4073,3},{423,4067,3},{420,4062,3},{418,4057,3},{417,4050,3}, {415,4045,3},{412,4040,3},{408,4035,3},{407,4030,3},{405,4023,3},{403,4018,3}, {400,4012,3},{397,4007,3},{393,4000,3},{390,3995,3},{387,3987,3},{377,3982,3}, {368,3978,3},{358,3968,3},{350,3960,3},{343,3957,3},{343,3952,3},{350,3948,3}, {348,3945,3},{350,3938,3},{352,3935,3},{352,3918,3},{355,3912,3},{355,3905,3}, {353,3892,3},{360,3872,3},{362,3870,3},{365,3868,3},{362,3865,3},{363,3855,3}, {367,3853,3},{367,3850,3},{363,3845,3},{365,3815,3},{363,3810,3},{373,3800,3}, {378,3790,3},{383,3783,3},{387,3778,3},{392,3772,3},{395,3765,3},{400,3758,3}, {403,3753,3},{407,3747,3},{412,3740,3},{415,3735,3},{420,3728,3},{423,3722,3}, {427,3717,3},{428,3712,3},{433,3708,3},{435,3705,3},{438,3703,3},{440,3697,3}, {443,3680,3},{443,3673,3},{443,3667,3},{445,3662,3},{445,3655,3},{445,3650,3}, {445,3643,3},{443,3637,3},{443,3630,3},{445,3625,3},{445,3622,3},{448,3620,3}, {453,3620,3},{460,3617,3},{462,3618,3},{465,3617,3},{467,3617,3},{467,3613,3}, {465,3612,3},{463,3613,3},{462,3613,3},{463,3603,3},{462,3603,3},{457,3603,3}, {455,3605,3},{452,3603,3},{458,3600,3},{463,3600,3},{463,3598,3},{458,3595,3}, {460,3595,3},{462,3593,3},{348,3087,131},{352,3085,3},{357,3085,3},{362,3080,3}, {367,3078,3},{368,3077,3},{363,3073,3},{365,3068,3},{362,3063,3},{362,3057,3}, {370,3058,3},{387,3055,3},{387,3053,3},{387,3048,3},{388,3042,3},{393,3033,3}, {397,3028,3},{397,3022,3},{400,3020,3},{405,3015,3},{410,3015,3},{413,3007,3}, {420,3003,3},{423,2998,3},{425,2995,3},{430,2995,3},{435,2990,3},{435,2983,3}, {438,2980,3},{448,2980,3},{453,2980,3},{457,2982,3},{458,2973,3},{462,2970,3}, {465,2965,3},{465,2962,3},{465,2958,3},{467,2955,3},{465,2953,3},{468,2950,3}, {468,2948,3},{467,2947,3},{458,2947,3},{457,2943,3},{453,2943,3},{448,2940,3}, {447,2935,3},{438,2932,3},{438,2925,3},{435,2925,3},{435,2920,3},{443,2912,3}, {443,2907,3},{445,2907,3},{447,2903,3},{448,2903,3},{450,2900,3},{448,2898,3}, {448,2882,3},{450,2880,3},{452,2880,3},{457,2878,3},{453,2875,3},{453,2872,3}, {442,2865,3},{442,2860,3},{437,2857,3},{437,2850,3},{432,2847,3},{428,2845,3}, {428,2837,3},{435,2833,3},{435,2827,3},{435,2820,3},{438,2817,3},{440,2813,3}, {442,2813,3},{443,2813,3},{445,2812,3},{442,2807,3},{448,2803,3},{457,2803,3}, {455,2797,3},{458,2795,3},{455,2793,3},{455,2787,3},{460,2782,3},{460,2778,3}, {467,2777,3},{472,2778,3},{478,2777,3},{478,2770,3},{483,2770,3},{490,2767,3}, {490,2758,3},{493,2753,3},{497,2752,3},{502,2745,3},{503,2748,3},{508,2748,3}, {513,2745,3},{527,2732,3},{533,2730,3},{542,2727,3},{548,2727,3},{555,2730,3}, {562,2723,3},{567,2723,3},{572,2720,3},{578,2713,3},{578,2708,3},{585,2702,3}, {588,2692,3},{598,2683,3},{600,2675,3},{598,2667,3},{603,2662,3},{608,2658,3}, {607,2653,3},{608,2650,3},{610,2652,3},{615,2658,3},{620,2658,3},{622,2653,3}, {628,2650,3},{628,2642,3},{632,2640,3},{633,2635,3},{637,2633,3},{642,2633,3}, {647,2632,3},{652,2637,3},{657,2635,3},{660,2637,3},{662,2642,3},{665,2642,3}, {667,2635,3},{670,2628,3},{687,2613,3},{692,2607,3},{698,2603,3},{702,2597,3}, {708,2592,3},{710,2583,3},{717,2577,3},{717,2568,3},{722,2563,3},{725,2557,3}, {727,2548,3},{735,2537,3},{742,2535,3},{747,2530,3},{747,2525,3},{750,2520,3}, {760,2522,3},{768,2530,3},{778,2528,3},{787,2522,3},{790,2518,3},{790,2515,3}, {790,2508,3},{793,2505,3},{797,2497,3},{802,2493,3},{803,2490,3},{817,2485,3}, {818,2477,3},{820,2473,3},{822,2463,3},{820,2453,3},{823,2448,3},{827,2447,3}, {827,2440,3},{825,2435,3},{827,2432,3},{828,2423,3},{832,2418,3},{838,2415,3}, {847,2417,3},{855,2423,3},{858,2427,3},{863,2423,3},{867,2425,3},{870,2425,3}, {868,2420,3},{870,2417,3},{868,2413,3},{870,2402,3},{870,2400,3},{870,2397,3}, {872,2393,3},{870,2388,3},{873,2382,3},{870,2373,3},{872,2367,3},{873,2363,3}, {872,2352,3},{878,2350,3},{890,2358,3},{900,2358,3},{900,2357,3},{897,2353,3}, {897,2350,3},{898,2347,3},{902,2345,3},{917,2350,3},{918,2357,3},{928,2365,3}, {933,2363,3},{943,2367,3},{945,2363,3},{952,2363,3},{953,2362,3},{957,2363,3}, {960,2367,3},{967,2370,3},{972,2368,3},{977,2368,3},{983,2367,3},{987,2367,3}, {992,2363,3},{998,2360,3},{1003,2357,3},{1007,2355,3},{1012,2352,3},{1015,2350,3}, {1020,2347,3},{1025,2343,3},{1028,2342,3},{1033,2338,3},{1037,2337,3},{1042,2333,3}, {1047,2330,3},{1048,2325,3},{1062,2313,3},{1070,2302,3},{1088,2288,3},{1095,2277,3}, {1093,2278,3},{1092,2287,3},{1095,2288,3},{1122,2297,3},{1128,2297,3},{1132,2295,3}, {1142,2293,3},{1140,2278,3},{1142,2278,3},{1147,2278,3},{1152,2265,3},{1163,2257,3}, {1167,2255,3},{1182,2258,3},{1200,2262,3},{1207,2263,3},{1208,2263,3},{1207,2262,3}, {1208,2258,3},{1207,2255,3},{1203,2248,3},{1205,2248,3},{1218,2250,3},{1235,2243,3}, {1240,2243,3},{1247,2238,3},{1248,2242,3},{1262,2247,3},{1267,2233,3},{1275,2222,3}, {1265,2213,3},{1263,2205,3},{1265,2195,3},{1268,2190,3},{1280,2183,3},{1297,2190,3}, {1302,2193,3},{1305,2195,3},{1313,2202,3},{1318,2217,3},{1335,2230,3},{1338,2230,3}, {1348,2223,3},{1357,2222,3},{1363,2215,3},{1367,2213,3},{1373,2213,3},{1378,2208,3}, {1397,2223,3},{1402,2232,3},{1402,2235,3},{1405,2240,3},{1405,2243,3},{1410,2248,3}, {1413,2255,3},{1417,2257,3},{1423,2255,3},{1425,2247,3},{1428,2245,3},{1432,2243,3}, {1435,2247,3},{1438,2245,3},{1448,2245,3},{1452,2238,3},{1457,2238,3},{1460,2240,3}, {1463,2247,3},{1468,2270,3},{1477,2268,3},{1487,2267,3},{1490,2273,3},{1498,2275,3}, {1508,2285,3},{1512,2293,3},{1515,2295,3},{1522,2298,3},{1537,2300,3},{1542,2298,3}, {1548,2292,3},{1555,2293,3},{1560,2302,3},{1572,2312,3},{1568,2335,3},{1572,2345,3}, {1577,2362,3},{1575,2378,3},{1570,2400,3},{1577,2400,3},{1583,2400,3},{1588,2400,3}, {1593,2400,3},{1600,2400,3},{1607,2400,3},{1613,2400,3},{1620,2400,3},{1627,2400,3}, {1633,2400,3},{1640,2400,3},{1647,2400,3},{1653,2400,3},{1658,2400,3},{1665,2400,3}, {1673,2400,3},{1678,2400,3},{1683,2400,3},{1690,2400,3},{1695,2400,3},{1702,2400,3}, {1707,2400,3},{1713,2400,3},{1720,2400,3},{1725,2400,3},{1730,2400,3},{1735,2400,3}, {1743,2400,3},{1748,2400,3},{1753,2400,3},{1760,2400,3},{1767,2400,3},{1773,2400,3}, {1778,2400,3},{1787,2400,3},{1793,2400,3},{1798,2400,3},{1803,2400,3},{1808,2400,3}, {1817,2400,3},{1823,2400,3},{1830,2400,3},{1837,2400,3},{1843,2400,3},{1850,2400,3}, {1857,2400,3},{1862,2400,3},{1868,2400,3},{1877,2400,3},{1883,2400,3},{1890,2400,3}, {1897,2400,3},{1903,2400,3},{1910,2400,3},{1917,2400,3},{1923,2400,3},{1930,2400,3}, {1937,2400,3},{1943,2400,3},{1950,2400,3},{1957,2400,3},{1962,2400,3},{1967,2400,3}, {1973,2400,3},{1978,2400,3},{1983,2400,3},{1990,2400,3},{1995,2400,3},{2000,2400,3}, {2000,2402,3},{2000,2408,3},{2000,2413,3},{2000,2420,3},{2000,2425,3},{2000,2430,3}, {2000,2437,3},{2000,2442,3},{2000,2448,3},{2000,2453,3},{2000,2460,3},{2000,2465,3}, {2000,2472,3},{2000,2477,3},{2000,2483,3},{2000,2488,3},{2000,2495,3},{2000,2500,3}, {2007,2500,3},{2012,2500,3},{2018,2500,3},{2023,2500,3},{2028,2500,3},{2033,2500,3}, {2040,2500,3},{2045,2500,3},{2050,2500,3},{2057,2500,3},{2062,2500,3},{2067,2500,3}, {2073,2500,3},{2078,2500,3},{2083,2500,3},{2090,2500,3},{2095,2500,3},{2100,2500,3}, {2107,2500,3},{2112,2500,3},{2117,2500,3},{2122,2500,3},{2128,2500,3},{2133,2500,3}, {2138,2500,3},{2145,2500,3},{2150,2500,3},{2155,2500,3},{2162,2500,3},{2167,2500,3}, {2172,2500,3},{2178,2500,3},{2183,2500,3},{2188,2500,3},{2195,2500,3},{2200,2500,3}, {2200,2507,3},{2200,2512,3},{2200,2518,3},{2200,2523,3},{2200,2530,3},{2200,2535,3}, {2200,2542,3},{2200,2547,3},{2200,2553,3},{2200,2558,3},{2200,2565,3},{2200,2572,3}, {2200,2577,3},{2200,2582,3},{2200,2588,3},{2200,2595,3},{2200,2600,3},{2200,2607,3}, {2200,2613,3},{2200,2618,3},{2200,2625,3},{2200,2630,3},{2200,2637,3},{2200,2642,3}, {2200,2648,3},{2200,2653,3},{2200,2660,3},{2200,2665,3},{2200,2672,3},{2200,2677,3}, {2200,2683,3},{2200,2688,3},{2200,2695,3},{2200,2700,3},{2200,2707,3},{2200,2712,3}, {2200,2718,3},{2200,2723,3},{2200,2730,3},{2200,2735,3},{2200,2742,3},{2200,2747,3}, {2200,2753,3},{2200,2758,3},{2200,2763,3},{2200,2770,3},{2200,2775,3},{2200,2782,3}, {2200,2787,3},{2200,2793,3},{2200,2798,3},{2200,2805,3},{2200,2810,3},{2200,2817,3}, {2200,2822,3},{2200,2827,3},{2200,2833,3},{2200,2840,3},{2200,2845,3},{2200,2852,3}, {2200,2857,3},{2200,2862,3},{2200,2868,3},{2200,2873,3},{2200,2880,3},{2200,2885,3}, {2200,2892,3},{2200,2897,3},{2200,2900,3},{2200,2905,3},{2200,2912,3},{2200,2917,3}, {2200,2923,3},{2200,2928,3},{2200,2935,3},{2200,2940,3},{2200,2945,3},{2200,2952,3}, {2200,2957,3},{2200,2963,3},{2200,2968,3},{2200,2973,3},{2200,2980,3},{2200,2985,3}, {2200,2992,3},{2200,2997,3},{2200,3002,3},{2200,3008,3},{2200,3013,3},{2200,3020,3}, {2200,3025,3},{2200,3030,3},{2200,3037,3},{2200,3042,3},{2200,3048,3},{2200,3053,3}, {2200,3060,3},{2200,3065,3},{2200,3070,3},{2200,3077,3},{2200,3082,3},{2200,3088,3}, {2200,3093,3},{2200,3098,3},{2200,3105,3},{2200,3110,3},{2200,3117,3},{2200,3122,3}, {2200,3127,3},{2205,3130,3},{2210,3133,3},{2217,3137,3},{2220,3138,3},{2223,3143,3}, {2223,3147,3},{2220,3143,3},{2215,3138,3},{2213,3135,3},{2210,3137,3},{2203,3135,3}, {2197,3135,3},{2192,3132,3},{2185,3123,3},{2182,3122,3},{2182,3118,3},{2180,3120,3}, {2177,3117,3},{2173,3118,3},{2165,3117,3},{2160,3110,3},{2150,3103,3},{2152,3107,3}, {2162,3113,3},{2162,3118,3},{2170,3120,3},{2172,3122,3},{2175,3122,3},{2177,3122,3}, {2177,3125,3},{2178,3127,3},{2177,3130,3},{2192,3138,3},{2207,3140,3},{2213,3143,3}, {2213,3147,3},{2218,3150,3},{2215,3152,3},{2210,3148,3},{2205,3147,3},{2200,3147,3}, {2200,3152,3},{2200,3158,3},{2200,3163,3},{2200,3168,3},{2200,3175,3},{2200,3180,3}, {2200,3187,3},{2200,3192,3},{2200,3198,3},{2200,3203,3},{2200,3208,3},{2200,3215,3}, {2200,3220,3},{2200,3225,3},{2200,3232,3},{2200,3237,3},{2200,3242,3},{2200,3248,3}, {2200,3253,3},{2200,3260,3},{2200,3265,3},{2200,3270,3},{2200,3277,3},{2200,3282,3}, {2200,3287,3},{2200,3293,3},{2200,3298,3},{2200,3303,3},{2200,3310,3},{2200,3317,3}, {2198,3318,3},{2197,3323,3},{2192,3328,3},{2188,3335,3},{2185,3340,3},{2180,3347,3}, {2177,3352,3},{2172,3357,3},{2173,3363,3},{2173,3368,3},{2173,3375,3},{2175,3382,3}, {2175,3387,3},{2175,3393,3},{2177,3402,3},{2182,3403,3},{2188,3405,3},{2193,3408,3}, {2198,3410,3},{2203,3412,3},{2208,3413,3},{2215,3415,3},{2220,3417,3},{2220,3423,3}, {2222,3430,3},{2223,3435,3},{2223,3442,3},{2225,3447,3},{2225,3453,3},{2227,3460,3}, {2228,3465,3},{2228,3472,3},{2235,3473,3},{2240,3477,3},{2245,3478,3},{2250,3482,3}, {2255,3483,3},{2262,3487,3},{2267,3488,3},{2272,3490,3},{2277,3493,3},{2285,3497,3}, {2283,3503,3},{2282,3508,3},{2280,3515,3},{2277,3523,3},{2282,3527,3},{2285,3532,3}, {2288,3535,3},{2292,3540,3},{2297,3543,3},{2300,3548,3},{2303,3552,3},{2308,3557,3}, {2313,3562,3},{2308,3568,3},{2303,3570,3},{2298,3570,3},{2298,3572,3},{2293,3573,3}, {2292,3575,3},{2290,3573,3},{2288,3577,3},{2290,3578,3},{2285,3578,3},{2288,3575,3}, {2285,3573,3},{2283,3573,3},{2283,3577,3},{2280,3578,3},{2282,3578,3},{2283,3578,3}, {2282,3582,3},{2275,3588,3},{2267,3598,3},{2268,3605,3},{2267,3615,3},{2263,3623,3}, {2258,3628,3},{2250,3630,3},{2247,3637,3},{2243,3637,3},{2232,3647,3},{2228,3660,3}, {2218,3672,3},{2218,3675,3},{2217,3677,3},{2213,3682,3},{2203,3690,3},{2202,3690,3}, {2200,3688,3},{2197,3688,3},{2197,3683,3},{2193,3688,3},{2188,3687,3},{2185,3688,3}, {2183,3683,3},{2182,3687,3},{2182,3690,3},{2177,3690,3},{2175,3687,3},{2175,3690,3}, {2163,3693,3},{2162,3690,3},{2160,3695,3},{2158,3695,3},{2157,3697,3},{2153,3697,3}, {2148,3698,3},{2147,3702,3},{2127,3710,3},{2113,3723,3},{2107,3727,3},{2103,3725,3}, {2102,3722,3},{2107,3720,3},{2108,3720,3},{2105,3722,3},{2113,3718,3},{2113,3717,3}, {2120,3717,3},{2120,3713,3},{2117,3712,3},{2115,3712,3},{2108,3710,3},{2107,3710,3}, {2107,3707,3},{2103,3707,3},{2102,3708,3},{2098,3708,3},{2087,3712,3},{2072,3715,3}, {2068,3715,3},{2063,3718,3},{2053,3722,3},{2047,3722,3},{2045,3720,3},{2047,3720,3}, {2047,3718,3},{2043,3718,3},{2038,3718,3},{2035,3718,3},{2020,3718,3},{2005,3722,3}, {2003,3722,3},{2003,3720,3},{2000,3720,3},{1983,3728,3},{1977,3728,3},{1977,3727,3}, {1968,3728,3},{1968,3725,3},{1962,3725,3},{1963,3722,3},{1960,3725,3},{1955,3725,3}, {1948,3730,3},{1938,3732,3},{1932,3735,3},{1918,3737,3},{1905,3743,3},{1900,3743,3}, {1895,3742,3},{1892,3743,3},{1885,3743,3},{1880,3748,3},{1872,3752,3},{1872,3755,3}, {1872,3758,3},{1872,3760,3},{1873,3768,3},{1870,3770,3},{1870,3777,3},{1865,3775,3}, {1862,3777,3},{1865,3778,3},{1868,3778,3},{1867,3778,3},{1862,3778,3},{1853,3795,3}, {1842,3807,3},{1837,3813,3},{1830,3808,3},{1830,3810,3},{1828,3812,3},{1823,3818,3}, {1823,3823,3},{1825,3827,3},{1828,3827,3},{1830,3830,3},{1828,3832,3},{1828,3828,3}, {1825,3828,3},{1823,3827,3},{1822,3822,3},{1822,3828,3},{1818,3837,3},{1820,3838,3}, {1822,3838,3},{1822,3840,3},{1818,3843,3},{1817,3842,3},{1815,3845,3},{1813,3843,3}, {1812,3848,3},{1813,3850,3},{1807,3852,3},{1810,3855,3},{1812,3853,3},{1807,3858,3}, {1803,3858,3},{1802,3860,3},{1787,3847,3},{1767,3837,3},{1760,3828,3},{1755,3827,3}, {1753,3825,3},{1755,3813,3},{1750,3813,3},{1748,3812,3},{1750,3810,3},{1755,3810,3}, {1755,3805,3},{1750,3797,3},{1745,3792,3},{1745,3787,3},{1748,3783,3},{1748,3782,3}, {1747,3778,3},{1738,3773,3},{1733,3752,3},{1732,3750,3},{1725,3753,3},{1720,3752,3}, {1710,3748,3},{1707,3745,3},{1703,3742,3},{1707,3730,3},{1702,3725,3},{1703,3718,3}, {1702,3715,3},{1705,3710,3},{1707,3700,3},{1705,3700,3},{1700,3702,3},{1695,3698,3}, {1692,3702,3},{1687,3702,3},{1685,3702,3},{1672,3698,3},{1663,3692,3},{1660,3692,3}, {1652,3690,3},{1648,3692,3},{1642,3695,3},{1635,3695,3},{1627,3697,3},{1622,3692,3}, {1580,3677,3},{1575,3670,3},{1548,3663,3},{1545,3665,3},{1543,3662,3},{1523,3655,3}, {1515,3645,3},{1508,3645,3},{1503,3645,3},{1498,3647,3},{1493,3647,3},{1488,3647,3}, {1483,3648,3},{1478,3648,3},{1473,3648,3},{1467,3650,3},{1462,3650,3},{1457,3650,3}, {1452,3650,3},{1447,3652,3},{1442,3652,3},{1437,3652,3},{1427,3655,3},{1423,3653,3}, {1395,3645,3},{1383,3648,3},{1367,3642,3},{1360,3642,3},{1357,3640,3},{1337,3625,3}, {1303,3617,3},{1298,3617,3},{1297,3615,3},{1292,3613,3},{1287,3617,3},{1270,3615,3}, {1270,3610,3},{1272,3608,3},{1272,3603,3},{1272,3600,3},{1267,3570,3},{1262,3570,3}, {1260,3568,3},{1260,3565,3},{1225,3543,3},{1220,3543,3},{1217,3538,3},{1208,3535,3}, {1202,3533,3},{1198,3527,3},{1193,3527,3},{1190,3523,3},{1187,3513,3},{1183,3510,3}, {1173,3505,3},{1165,3507,3},{1160,3510,3},{1155,3510,3},{1125,3497,3},{1123,3497,3}, {1120,3500,3},{1095,3493,3},{1092,3498,3},{1087,3498,3},{1078,3487,3},{1073,3487,3}, {1073,3482,3},{1068,3478,3},{1068,3477,3},{1075,3477,3},{1088,3460,3},{1078,3443,3}, {1063,3435,3},{1055,3428,3},{1023,3435,3},{1017,3432,3},{1012,3432,3},{1003,3423,3}, {990,3420,3},{975,3413,3},{955,3408,3},{947,3410,3},{942,3410,3},{937,3410,3}, {932,3410,3},{927,3412,3},{922,3412,3},{917,3412,3},{912,3412,3},{907,3413,3}, {900,3413,3},{895,3413,3},{888,3413,3},{883,3413,3},{878,3413,3},{873,3413,3}, {868,3413,3},{863,3412,3},{858,3412,3},{843,3397,3},{843,3385,3},{842,3382,3}, {837,3378,3},{838,3370,3},{843,3367,3},{847,3363,3},{845,3358,3},{848,3352,3}, {847,3350,3},{845,3342,3},{843,3338,3},{847,3327,3},{843,3323,3},{843,3320,3}, {842,3322,3},{840,3317,3},{837,3317,3},{833,3318,3},{828,3317,3},{825,3322,3}, {820,3317,3},{813,3318,3},{812,3317,3},{810,3310,3},{807,3310,3},{800,3303,3}, {795,3302,3},{793,3298,3},{785,3302,3},{778,3305,3},{778,3312,3},{780,3317,3}, {777,3325,3},{775,3327,3},{772,3333,3},{773,3340,3},{775,3347,3},{772,3352,3}, {768,3355,3},{768,3365,3},{767,3368,3},{765,3372,3},{757,3378,3},{753,3388,3}, {738,3403,3},{725,3402,3},{722,3407,3},{717,3412,3},{717,3418,3},{712,3420,3}, {708,3420,3},{705,3420,3},{705,3422,3},{702,3423,3},{702,3427,3},{697,3428,3}, {697,3437,3},{692,3447,3},{675,3453,3},{673,3463,3},{668,3470,3},{663,3472,3}, {660,3477,3},{650,3480,3},{645,3480,3},{635,3485,3},{623,3487,3},{620,3490,3}, {613,3492,3},{607,3498,3},{600,3498,3},{595,3498,3},{592,3500,3},{588,3498,3}, {570,3510,3},{563,3510,3},{550,3528,3},{548,3530,3},{543,3527,3},{537,3530,3}, {535,3535,3},{543,3545,3},{543,3550,3},{542,3555,3},{537,3560,3},{538,3568,3}, {535,3575,3},{532,3583,3},{528,3580,3},{523,3580,3},{515,3583,3},{508,3577,3}, {480,3577,3},{462,3593,3},{462,3592,3},{462,3587,3},{462,3580,3},{462,3575,3}, {462,3570,3},{462,3565,3},{462,3558,3},{462,3553,3},{462,3548,3},{462,3542,3}, {462,3537,3},{462,3532,3},{462,3527,3},{462,3520,3},{462,3515,3},{462,3510,3}, {462,3505,3},{462,3498,3},{462,3493,3},{462,3488,3},{462,3483,3},{462,3477,3}, {462,3472,3},{462,3467,3},{462,3462,3},{462,3455,3},{462,3450,3},{462,3445,3}, {462,3438,3},{458,3435,3},{453,3432,3},{450,3428,3},{447,3423,3},{442,3420,3}, {438,3415,3},{433,3412,3},{430,3408,3},{427,3403,3},{422,3400,3},{418,3395,3}, {413,3392,3},{410,3387,3},{405,3383,3},{402,3378,3},{398,3375,3},{393,3372,3}, {390,3367,3},{387,3363,3},{382,3358,3},{378,3355,3},{375,3352,3},{375,3345,3}, {375,3340,3},{377,3335,3},{377,3330,3},{377,3323,3},{377,3318,3},{388,3302,3}, {382,3290,3},{375,3272,3},{375,3240,3},{362,3220,3},{352,3220,3},{353,3210,3}, {358,3207,3},{360,3195,3},{368,3193,3},{380,3183,3},{382,3180,3},{372,3170,3}, {368,3157,3},{365,3153,3},{380,3128,3},{380,3118,3},{370,3103,3},{368,3097,3}, {357,3088,3},{348,3087,3},{2200,2500,131},{2203,2500,3},{2208,2500,3},{2215,2500,3}, {2220,2500,3},{2225,2500,3},{2232,2500,3},{2237,2500,3},{2242,2500,3},{2248,2500,3}, {2253,2500,3},{2258,2500,3},{2265,2500,3},{2270,2500,3},{2275,2500,3},{2280,2500,3}, {2287,2500,3},{2292,2500,3},{2297,2500,3},{2303,2500,3},{2308,2500,3},{2313,2500,3}, {2320,2500,3},{2325,2500,3},{2330,2500,3},{2337,2500,3},{2342,2500,3},{2347,2500,3}, {2352,2500,3},{2358,2500,3},{2363,2500,3},{2368,2500,3},{2375,2500,3},{2380,2500,3}, {2385,2500,3},{2392,2500,3},{2397,2500,3},{2402,2500,3},{2408,2500,3},{2413,2500,3}, {2418,2500,3},{2425,2500,3},{2430,2500,3},{2435,2500,3},{2442,2500,3},{2447,2500,3}, {2452,2500,3},{2458,2500,3},{2463,2500,3},{2468,2500,3},{2475,2500,3},{2480,2500,3}, {2485,2500,3},{2492,2500,3},{2497,2500,3},{2503,2500,3},{2508,2500,3},{2513,2500,3}, {2520,2500,3},{2525,2500,3},{2530,2500,3},{2537,2500,3},{2542,2500,3},{2547,2500,3}, {2553,2500,3},{2558,2500,3},{2563,2500,3},{2570,2500,3},{2575,2500,3},{2580,2500,3}, {2587,2500,3},{2592,2500,3},{2597,2500,3},{2603,2500,3},{2608,2500,3},{2613,2500,3}, {2620,2500,3},{2625,2500,3},{2630,2500,3},{2637,2500,3},{2642,2500,3},{2647,2500,3}, {2653,2500,3},{2658,2500,3},{2663,2500,3},{2670,2500,3},{2675,2500,3},{2680,2500,3}, {2687,2500,3},{2692,2500,3},{2697,2500,3},{2702,2500,3},{2708,2500,3},{2713,2500,3}, {2718,2500,3},{2725,2500,3},{2730,2500,3},{2735,2500,3},{2742,2500,3},{2747,2500,3}, {2752,2500,3},{2758,2500,3},{2763,2500,3},{2768,2500,3},{2775,2500,3},{2780,2500,3}, {2785,2500,3},{2792,2500,3},{2797,2500,3},{2802,2500,3},{2808,2500,3},{2813,2500,3}, {2820,2500,3},{2825,2500,3},{2830,2500,3},{2837,2500,3},{2842,2500,3},{2847,2500,3}, {2853,2500,3},{2858,2500,3},{2863,2500,3},{2870,2500,3},{2875,2500,3},{2880,2500,3}, {2887,2500,3},{2892,2500,3},{2897,2500,3},{2903,2500,3},{2908,2500,3},{2913,2500,3}, {2920,2500,3},{2925,2500,3},{2930,2497,3},{2937,2495,3},{2942,2492,3},{2948,2488,3}, {2953,2488,3},{2960,2488,3},{2965,2488,3},{2970,2487,3},{2973,2483,3},{2978,2482,3}, {2983,2483,3},{2990,2483,3},{2995,2482,3},{3000,2478,3},{3005,2477,3},{3010,2475,3}, {3013,2472,3},{3020,2472,3},{3025,2473,3},{3030,2477,3},{3033,2478,3},{3038,2483,3}, {3042,2487,3},{3047,2490,3},{3052,2493,3},{3057,2493,3},{3062,2497,3},{3067,2498,3}, {3072,2498,3},{3077,2502,3},{3082,2500,3},{3087,2498,3},{3092,2495,3},{3097,2493,3}, {3102,2492,3},{3107,2490,3},{3112,2488,3},{3117,2487,3},{3122,2488,3},{3127,2487,3}, {3132,2487,3},{3137,2487,3},{3142,2492,3},{3145,2497,3},{3148,2502,3},{3152,2505,3}, {3157,2507,3},{3162,2510,3},{3165,2515,3},{3153,2517,3},{3150,2532,3},{3150,2540,3}, {3162,2582,3},{3162,2592,3},{3160,2608,3},{3152,2637,3},{3148,2673,3},{3145,2682,3}, {3143,2690,3},{3145,2697,3},{3142,2700,3},{3142,2705,3},{3140,2707,3},{3137,2722,3}, {3137,2735,3},{3127,2738,3},{3123,2742,3},{3122,2747,3},{3122,2755,3},{3120,2757,3}, {3120,2762,3},{3118,2763,3},{3117,2765,3},{3122,2780,3},{3125,2785,3},{3123,2787,3}, {3120,2787,3},{3110,2792,3},{3108,2815,3},{3107,2820,3},{3105,2832,3},{3108,2842,3}, {3105,2847,3},{3105,2853,3},{3102,2860,3},{3098,2872,3},{3095,2882,3},{3090,2883,3}, {3083,2898,3},{3082,2912,3},{3087,2933,3},{3093,2948,3},{3110,2975,3},{3113,2978,3}, {3113,2982,3},{3118,2988,3},{3120,2987,3},{3122,2988,3},{3120,2990,3},{3125,2997,3}, {3133,3007,3},{3128,3008,3},{3127,3017,3},{3123,3015,3},{3122,3015,3},{3122,3017,3}, {3123,3020,3},{3122,3022,3},{3127,3028,3},{3123,3028,3},{3127,3030,3},{3128,3027,3}, {3127,3025,3},{3127,3018,3},{3132,3028,3},{3135,3032,3},{3143,3035,3},{3150,3035,3}, {3145,3037,3},{3143,3040,3},{3150,3035,3},{3147,3042,3},{3145,3050,3},{3158,3097,3}, {3153,3085,3},{3143,3065,3},{3142,3057,3},{3140,3055,3},{3138,3058,3},{3140,3065,3}, {3142,3068,3},{3138,3073,3},{3143,3078,3},{3145,3080,3},{3143,3082,3},{3143,3087,3}, {3142,3090,3},{3143,3093,3},{3145,3093,3},{3143,3098,3},{3152,3102,3},{3152,3108,3}, {3148,3110,3},{3150,3113,3},{3152,3112,3},{3152,3113,3},{3155,3112,3},{3157,3107,3}, {3158,3098,3},{3160,3103,3},{3160,3112,3},{3158,3118,3},{3153,3135,3},{3145,3152,3}, {3145,3160,3},{3148,3175,3},{3153,3185,3},{3153,3190,3},{3150,3195,3},{3147,3197,3}, {3138,3203,3},{3128,3220,3},{3132,3215,3},{3140,3200,3},{3138,3200,3},{3143,3197,3}, {3142,3200,3},{3152,3193,3},{3153,3188,3},{3152,3185,3},{3150,3185,3},{3150,3187,3}, {3145,3188,3},{3142,3188,3},{3145,3185,3},{3145,3183,3},{3147,3183,3},{3145,3183,3}, {3143,3183,3},{3143,3185,3},{3142,3185,3},{3142,3188,3},{3140,3183,3},{3138,3183,3}, {3137,3183,3},{3135,3185,3},{3135,3180,3},{3133,3178,3},{3133,3180,3},{3132,3178,3}, {3130,3180,3},{3130,3177,3},{3127,3178,3},{3128,3180,3},{3122,3188,3},{3125,3190,3}, {3122,3190,3},{3120,3193,3},{3118,3193,3},{3122,3197,3},{3123,3200,3},{3122,3200,3}, {3122,3203,3},{3115,3203,3},{3112,3202,3},{3113,3205,3},{3110,3207,3},{3108,3205,3}, {3108,3208,3},{3105,3210,3},{3105,3213,3},{3107,3210,3},{3110,3210,3},{3107,3215,3}, {3110,3213,3},{3110,3218,3},{3112,3218,3},{3112,3220,3},{3110,3222,3},{3112,3228,3}, {3113,3228,3},{3117,3227,3},{3117,3228,3},{3122,3230,3},{3125,3227,3},{3127,3228,3}, {3128,3222,3},{3127,3232,3},{3125,3230,3},{3120,3230,3},{3125,3230,3},{3127,3233,3}, {3125,3233,3},{3122,3240,3},{3115,3247,3},{3107,3255,3},{3105,3262,3},{3107,3275,3}, {3115,3293,3},{3107,3277,3},{3105,3267,3},{3105,3272,3},{3103,3270,3},{3103,3272,3}, {3105,3278,3},{3108,3283,3},{3110,3290,3},{3108,3293,3},{3108,3290,3},{3108,3292,3}, {3108,3293,3},{3110,3292,3},{3112,3293,3},{3108,3298,3},{3107,3298,3},{3108,3297,3}, {3107,3297,3},{3105,3302,3},{3107,3302,3},{3108,3302,3},{3110,3305,3},{3112,3307,3}, {3113,3307,3},{3110,3302,3},{3110,3295,3},{3112,3302,3},{3115,3303,3},{3118,3313,3}, {3118,3310,3},{3112,3317,3},{3110,3312,3},{3108,3315,3},{3105,3313,3},{3105,3322,3}, {3107,3320,3},{3110,3327,3},{3108,3327,3},{3108,3328,3},{3108,3330,3},{3110,3330,3}, {3110,3332,3},{3110,3328,3},{3112,3338,3},{3113,3338,3},{3113,3342,3},{3115,3342,3}, {3113,3348,3},{3112,3360,3},{3113,3372,3},{3120,3398,3},{3125,3410,3},{3133,3422,3}, {3122,3427,3},{3133,3422,3},{3122,3427,3},{3102,3435,3},{3068,3450,3},{3058,3452,3}, {3053,3452,3},{3048,3457,3},{3042,3455,3},{3037,3462,3},{3002,3475,3},{3000,3475,3}, {2975,3485,3},{2970,3485,3},{2965,3488,3},{2960,3487,3},{2953,3488,3},{2948,3490,3}, {2947,3485,3},{2933,3478,3},{2930,3473,3},{2920,3473,3},{2917,3472,3},{2917,3470,3}, {2905,3467,3},{2898,3468,3},{2895,3463,3},{2887,3465,3},{2883,3462,3},{2873,3463,3}, {2855,3452,3},{2848,3452,3},{2848,3448,3},{2843,3445,3},{2837,3445,3},{2832,3440,3}, {2823,3442,3},{2817,3445,3},{2808,3443,3},{2800,3445,3},{2797,3443,3},{2793,3437,3}, {2792,3437,3},{2792,3433,3},{2785,3432,3},{2785,3428,3},{2778,3427,3},{2778,3422,3}, {2777,3422,3},{2777,3425,3},{2773,3425,3},{2778,3418,3},{2780,3408,3},{2782,3405,3}, {2788,3398,3},{2790,3395,3},{2793,3392,3},{2793,3388,3},{2802,3380,3},{2802,3377,3}, {2803,3377,3},{2808,3372,3},{2817,3367,3},{2817,3365,3},{2818,3363,3},{2823,3362,3}, {2830,3357,3},{2837,3343,3},{2847,3335,3},{2850,3328,3},{2855,3327,3},{2853,3327,3}, {2855,3327,3},{2858,3325,3},{2858,3323,3},{2855,3325,3},{2855,3323,3},{2867,3320,3}, {2877,3322,3},{2882,3317,3},{2885,3317,3},{2892,3318,3},{2895,3317,3},{2900,3317,3}, {2905,3310,3},{2908,3307,3},{2920,3295,3},{2923,3288,3},{2930,3287,3},{2932,3283,3}, {2940,3282,3},{2945,3273,3},{2948,3273,3},{2945,3272,3},{2948,3273,3},{2958,3272,3}, {2960,3268,3},{2973,3270,3},{2982,3260,3},{2987,3263,3},{2993,3257,3},{2993,3258,3}, {2995,3258,3},{2997,3257,3},{2998,3258,3},{3000,3258,3},{2998,3255,3},{2993,3257,3}, {2995,3255,3},{2997,3253,3},{2993,3247,3},{2990,3247,3},{2987,3248,3},{2987,3252,3}, {2977,3242,3},{2968,3237,3},{2963,3237,3},{2960,3233,3},{2953,3237,3},{2948,3245,3}, {2938,3257,3},{2933,3260,3},{2910,3267,3},{2907,3263,3},{2905,3265,3},{2905,3262,3}, {2898,3262,3},{2893,3267,3},{2887,3268,3},{2880,3275,3},{2880,3278,3},{2877,3280,3}, {2873,3283,3},{2857,3287,3},{2855,3293,3},{2850,3297,3},{2848,3300,3},{2840,3305,3}, {2835,3310,3},{2828,3312,3},{2827,3315,3},{2818,3322,3},{2817,3323,3},{2815,3325,3}, {2813,3328,3},{2808,3333,3},{2805,3333,3},{2805,3337,3},{2803,3337,3},{2803,3342,3}, {2798,3348,3},{2785,3358,3},{2778,3358,3},{2780,3358,3},{2778,3357,3},{2782,3355,3}, {2783,3347,3},{2780,3347,3},{2775,3352,3},{2775,3357,3},{2770,3353,3},{2765,3360,3}, {2767,3357,3},{2767,3355,3},{2765,3355,3},{2768,3353,3},{2765,3350,3},{2758,3355,3}, {2753,3355,3},{2748,3363,3},{2747,3363,3},{2743,3367,3},{2732,3370,3},{2730,3373,3}, {2725,3383,3},{2720,3383,3},{2717,3382,3},{2712,3383,3},{2708,3388,3},{2705,3392,3}, {2703,3388,3},{2693,3395,3},{2690,3400,3},{2683,3400,3},{2683,3398,3},{2685,3397,3}, {2683,3395,3},{2675,3395,3},{2673,3393,3},{2665,3393,3},{2662,3402,3},{2652,3407,3}, {2642,3410,3},{2632,3418,3},{2620,3422,3},{2607,3432,3},{2600,3433,3},{2593,3438,3}, {2592,3442,3},{2585,3443,3},{2578,3448,3},{2572,3455,3},{2562,3458,3},{2548,3467,3}, {2538,3470,3},{2535,3473,3},{2513,3485,3},{2500,3493,3},{2495,3495,3},{2492,3498,3}, {2482,3500,3},{2475,3507,3},{2462,3512,3},{2458,3517,3},{2452,3513,3},{2448,3520,3}, {2440,3523,3},{2428,3538,3},{2412,3550,3},{2412,3552,3},{2415,3550,3},{2410,3557,3}, {2402,3562,3},{2400,3573,3},{2392,3582,3},{2390,3580,3},{2393,3578,3},{2395,3575,3}, {2393,3573,3},{2392,3570,3},{2393,3562,3},{2395,3558,3},{2395,3555,3},{2398,3555,3}, {2398,3553,3},{2395,3548,3},{2382,3548,3},{2378,3548,3},{2378,3552,3},{2375,3550,3}, {2372,3552,3},{2363,3550,3},{2358,3550,3},{2353,3550,3},{2350,3547,3},{2347,3548,3}, {2342,3548,3},{2338,3552,3},{2325,3553,3},{2313,3562,3},{2308,3557,3},{2303,3552,3}, {2300,3548,3},{2297,3543,3},{2292,3540,3},{2288,3535,3},{2285,3532,3},{2282,3527,3}, {2277,3523,3},{2280,3515,3},{2282,3508,3},{2283,3503,3},{2285,3497,3},{2277,3493,3}, {2272,3490,3},{2267,3488,3},{2262,3487,3},{2255,3483,3},{2250,3482,3},{2245,3478,3}, {2240,3477,3},{2235,3473,3},{2228,3472,3},{2228,3465,3},{2227,3460,3},{2225,3453,3}, {2225,3447,3},{2223,3442,3},{2223,3435,3},{2222,3430,3},{2220,3423,3},{2220,3417,3}, {2215,3415,3},{2208,3413,3},{2203,3412,3},{2198,3410,3},{2193,3408,3},{2188,3405,3}, {2182,3403,3},{2177,3402,3},{2175,3393,3},{2175,3387,3},{2175,3382,3},{2173,3375,3}, {2173,3368,3},{2173,3363,3},{2172,3357,3},{2177,3352,3},{2180,3347,3},{2185,3340,3}, {2188,3335,3},{2192,3328,3},{2197,3323,3},{2198,3318,3},{2200,3317,3},{2200,3310,3}, {2200,3303,3},{2200,3298,3},{2200,3293,3},{2200,3287,3},{2200,3282,3},{2200,3277,3}, {2200,3270,3},{2200,3265,3},{2200,3260,3},{2200,3253,3},{2200,3248,3},{2200,3242,3}, {2200,3237,3},{2200,3232,3},{2200,3225,3},{2200,3220,3},{2200,3215,3},{2200,3208,3}, {2200,3203,3},{2200,3198,3},{2200,3192,3},{2200,3187,3},{2200,3180,3},{2200,3175,3}, {2200,3168,3},{2200,3163,3},{2200,3158,3},{2200,3152,3},{2200,3147,3},{2205,3147,3}, {2210,3148,3},{2215,3152,3},{2218,3150,3},{2220,3153,3},{2218,3155,3},{2222,3155,3}, {2225,3160,3},{2223,3168,3},{2225,3165,3},{2227,3165,3},{2230,3162,3},{2232,3165,3}, {2232,3167,3},{2233,3167,3},{2232,3170,3},{2233,3168,3},{2235,3172,3},{2237,3177,3}, {2237,3178,3},{2237,3180,3},{2233,3182,3},{2235,3183,3},{2238,3183,3},{2238,3182,3}, {2240,3183,3},{2242,3180,3},{2242,3190,3},{2245,3188,3},{2247,3193,3},{2250,3193,3}, {2248,3197,3},{2255,3195,3},{2257,3193,3},{2255,3198,3},{2257,3198,3},{2260,3197,3}, {2265,3200,3},{2265,3203,3},{2263,3205,3},{2267,3203,3},{2272,3212,3},{2273,3215,3}, {2272,3218,3},{2270,3222,3},{2268,3222,3},{2268,3225,3},{2265,3223,3},{2263,3228,3}, {2260,3228,3},{2260,3232,3},{2257,3230,3},{2255,3225,3},{2252,3225,3},{2255,3230,3}, {2252,3232,3},{2252,3233,3},{2253,3232,3},{2260,3233,3},{2260,3242,3},{2265,3242,3}, {2268,3245,3},{2270,3248,3},{2272,3247,3},{2275,3258,3},{2282,3260,3},{2283,3260,3}, {2283,3263,3},{2287,3262,3},{2287,3260,3},{2290,3260,3},{2288,3263,3},{2290,3263,3}, {2292,3263,3},{2293,3265,3},{2292,3270,3},{2295,3268,3},{2297,3270,3},{2295,3272,3}, {2293,3270,3},{2293,3272,3},{2298,3273,3},{2300,3273,3},{2300,3275,3},{2305,3273,3}, {2307,3275,3},{2307,3278,3},{2302,3278,3},{2298,3287,3},{2292,3293,3},{2295,3293,3}, {2292,3298,3},{2292,3307,3},{2297,3300,3},{2297,3295,3},{2298,3295,3},{2297,3293,3}, {2300,3293,3},{2302,3295,3},{2303,3293,3},{2307,3290,3},{2307,3287,3},{2308,3287,3}, {2313,3285,3},{2317,3285,3},{2317,3288,3},{2313,3293,3},{2313,3297,3},{2322,3292,3}, {2323,3290,3},{2325,3292,3},{2325,3297,3},{2323,3295,3},{2322,3300,3},{2323,3302,3}, {2327,3300,3},{2333,3302,3},{2333,3298,3},{2335,3297,3},{2337,3298,3},{2337,3300,3}, {2340,3300,3},{2342,3298,3},{2340,3297,3},{2338,3297,3},{2340,3295,3},{2342,3297,3}, {2345,3292,3},{2347,3292,3},{2348,3293,3},{2348,3290,3},{2352,3290,3},{2350,3300,3}, {2352,3303,3},{2352,3297,3},{2355,3297,3},{2353,3295,3},{2357,3295,3},{2355,3293,3}, {2357,3292,3},{2358,3290,3},{2362,3290,3},{2363,3292,3},{2365,3292,3},{2362,3298,3}, {2363,3297,3},{2365,3298,3},{2367,3298,3},{2368,3300,3},{2370,3298,3},{2372,3300,3}, {2373,3297,3},{2375,3298,3},{2377,3295,3},{2382,3293,3},{2387,3288,3},{2388,3290,3}, {2392,3288,3},{2393,3290,3},{2398,3288,3},{2390,3285,3},{2390,3278,3},{2388,3283,3}, {2387,3283,3},{2385,3287,3},{2382,3288,3},{2372,3287,3},{2372,3285,3},{2372,3282,3}, {2368,3285,3},{2370,3287,3},{2368,3287,3},{2367,3285,3},{2362,3285,3},{2358,3282,3}, {2357,3282,3},{2357,3278,3},{2358,3278,3},{2358,3275,3},{2362,3275,3},{2363,3272,3}, {2363,3268,3},{2362,3268,3},{2358,3270,3},{2357,3273,3},{2355,3273,3},{2353,3270,3}, {2355,3267,3},{2350,3260,3},{2348,3263,3},{2350,3270,3},{2353,3273,3},{2355,3278,3}, {2352,3287,3},{2347,3282,3},{2350,3287,3},{2343,3290,3},{2343,3287,3},{2338,3282,3}, {2335,3290,3},{2330,3292,3},{2328,3288,3},{2333,3287,3},{2332,3283,3},{2328,3285,3}, {2327,3283,3},{2330,3282,3},{2328,3280,3},{2327,3280,3},{2327,3277,3},{2323,3275,3}, {2323,3272,3},{2320,3273,3},{2318,3270,3},{2315,3270,3},{2313,3268,3},{2312,3270,3}, {2308,3268,3},{2308,3265,3},{2307,3268,3},{2305,3263,3},{2303,3265,3},{2300,3263,3}, {2298,3265,3},{2292,3260,3},{2293,3255,3},{2288,3257,3},{2278,3257,3},{2277,3255,3}, {2277,3252,3},{2275,3252,3},{2272,3242,3},{2265,3238,3},{2262,3237,3},{2263,3232,3}, {2267,3232,3},{2268,3228,3},{2272,3228,3},{2273,3225,3},{2277,3225,3},{2277,3222,3}, {2277,3217,3},{2280,3217,3},{2277,3215,3},{2277,3212,3},{2275,3212,3},{2277,3207,3}, {2273,3205,3},{2273,3200,3},{2272,3200,3},{2270,3198,3},{2268,3197,3},{2265,3193,3}, {2265,3188,3},{2263,3188,3},{2262,3185,3},{2258,3183,3},{2258,3185,3},{2257,3187,3}, {2255,3185,3},{2258,3183,3},{2257,3178,3},{2260,3177,3},{2262,3168,3},{2265,3167,3}, {2265,3165,3},{2263,3167,3},{2262,3165,3},{2257,3168,3},{2252,3173,3},{2252,3177,3}, {2248,3178,3},{2248,3175,3},{2247,3177,3},{2247,3173,3},{2243,3173,3},{2247,3170,3}, {2247,3168,3},{2240,3168,3},{2238,3165,3},{2238,3167,3},{2233,3160,3},{2223,3147,3}, {2223,3143,3},{2220,3138,3},{2217,3137,3},{2210,3133,3},{2205,3130,3},{2200,3127,3}, {2200,3122,3},{2200,3117,3},{2200,3110,3},{2200,3105,3},{2200,3098,3},{2200,3093,3}, {2200,3088,3},{2200,3082,3},{2200,3077,3},{2200,3070,3},{2200,3065,3},{2200,3060,3}, {2200,3053,3},{2200,3048,3},{2200,3042,3},{2200,3037,3},{2200,3030,3},{2200,3025,3}, {2200,3020,3},{2200,3013,3},{2200,3008,3},{2200,3002,3},{2200,2997,3},{2200,2992,3}, {2200,2985,3},{2200,2980,3},{2200,2973,3},{2200,2968,3},{2200,2963,3},{2200,2957,3}, {2200,2952,3},{2200,2945,3},{2200,2940,3},{2200,2935,3},{2200,2928,3},{2200,2923,3}, {2200,2917,3},{2200,2912,3},{2200,2905,3},{2200,2900,3},{2200,2897,3},{2200,2892,3}, {2200,2885,3},{2200,2880,3},{2200,2873,3},{2200,2868,3},{2200,2862,3},{2200,2857,3}, {2200,2852,3},{2200,2845,3},{2200,2840,3},{2200,2833,3},{2200,2827,3},{2200,2822,3}, {2200,2817,3},{2200,2810,3},{2200,2805,3},{2200,2798,3},{2200,2793,3},{2200,2787,3}, {2200,2782,3},{2200,2775,3},{2200,2770,3},{2200,2763,3},{2200,2758,3},{2200,2753,3}, {2200,2747,3},{2200,2742,3},{2200,2735,3},{2200,2730,3},{2200,2723,3},{2200,2718,3}, {2200,2712,3},{2200,2707,3},{2200,2700,3},{2200,2695,3},{2200,2688,3},{2200,2683,3}, {2200,2677,3},{2200,2672,3},{2200,2665,3},{2200,2660,3},{2200,2653,3},{2200,2648,3}, {2200,2642,3},{2200,2637,3},{2200,2630,3},{2200,2625,3},{2200,2618,3},{2200,2613,3}, {2200,2607,3},{2200,2600,3},{2200,2595,3},{2200,2588,3},{2200,2582,3},{2200,2577,3}, {2200,2572,3},{2200,2565,3},{2200,2558,3},{2200,2553,3},{2200,2547,3},{2200,2542,3}, {2200,2535,3},{2200,2530,3},{2200,2523,3},{2200,2518,3},{2200,2512,3},{2200,2507,3}, {2200,2500,3},{2300,1500,131},{2297,1493,3},{2293,1488,3},{2292,1482,3}, {2288,1475,3},{2285,1470,3},{2282,1463,3},{2278,1457,3},{2275,1452,3},{2272,1445,3}, {2268,1438,3},{2267,1432,3},{2263,1427,3},{2262,1423,3},{2265,1420,3},{2268,1415,3}, {2272,1410,3},{2275,1407,3},{2278,1402,3},{2282,1398,3},{2287,1393,3},{2290,1390,3}, {2293,1385,3},{2297,1382,3},{2300,1377,3},{2303,1372,3},{2307,1368,3},{2310,1363,3}, {2313,1360,3},{2317,1355,3},{2318,1350,3},{2320,1343,3},{2322,1337,3},{2323,1332,3}, {2325,1325,3},{2327,1320,3},{2327,1313,3},{2328,1308,3},{2330,1302,3},{2332,1297,3}, {2333,1290,3},{2333,1285,3},{2335,1278,3},{2337,1272,3},{2338,1267,3},{2338,1260,3}, {2340,1255,3},{2342,1248,3},{2343,1243,3},{2343,1237,3},{2345,1232,3},{2347,1225,3}, {2348,1218,3},{2348,1213,3},{2350,1207,3},{2352,1198,3},{2360,1193,3},{2367,1192,3}, {2372,1188,3},{2377,1185,3},{2383,1182,3},{2388,1178,3},{2393,1175,3},{2400,1173,3}, {2405,1170,3},{2412,1167,3},{2417,1163,3},{2422,1160,3},{2430,1157,3},{2432,1153,3}, {2433,1147,3},{2435,1142,3},{2437,1135,3},{2438,1128,3},{2440,1123,3},{2442,1117,3}, {2443,1112,3},{2445,1105,3},{2447,1100,3},{2457,1072,3},{2448,1048,3},{2448,1042,3}, {2460,1025,3},{2475,1022,3},{2483,1005,3},{2490,1005,3},{2497,1005,3},{2502,1005,3}, {2507,1005,3},{2513,1005,3},{2518,1005,3},{2523,1003,3},{2532,1003,3},{2535,1002,3}, {2540,998,3},{2543,995,3},{2548,992,3},{2552,988,3},{2557,985,3},{2560,982,3}, {2565,980,3},{2568,975,3},{2573,973,3},{2577,970,3},{2582,967,3},{2585,963,3}, {2590,960,3},{2593,957,3},{2598,953,3},{2602,950,3},{2607,947,3},{2610,943,3}, {2615,940,3},{2620,940,3},{2622,942,3},{2628,945,3},{2630,950,3},{2635,950,3}, {2652,987,3},{2667,992,3},{2670,990,3},{2687,993,3},{2690,985,3},{2705,982,3}, {2727,975,3},{2732,973,3},{2737,977,3},{2743,978,3},{2750,983,3},{2757,982,3}, {2760,988,3},{2785,997,3},{2795,992,3},{2800,990,3},{2807,987,3},{2812,985,3}, {2817,982,3},{2825,978,3},{2828,980,3},{2833,980,3},{2840,982,3},{2845,982,3}, {2850,983,3},{2855,983,3},{2862,985,3},{2867,985,3},{2872,987,3},{2880,987,3}, {2895,987,3},{2915,983,3},{2945,975,3},{2963,967,3},{2978,958,3},{2997,945,3}, {3012,930,3},{3023,953,3},{3032,973,3},{3035,977,3},{3035,988,3},{3058,1008,3}, {3065,1012,3},{3073,1022,3},{3092,1028,3},{3100,1025,3},{3107,1027,3},{3142,1012,3}, {3152,1013,3},{3160,1022,3},{3170,1028,3},{3173,1033,3},{3173,1048,3},{3175,1052,3}, {3187,1062,3},{3197,1062,3},{3198,1065,3},{3197,1070,3},{3197,1072,3},{3200,1075,3}, {3202,1080,3},{3213,1088,3},{3237,1145,3},{3245,1157,3},{3248,1158,3},{3252,1157,3}, {3255,1155,3},{3262,1148,3},{3265,1147,3},{3283,1148,3},{3290,1147,3},{3317,1153,3}, {3317,1157,3},{3312,1160,3},{3310,1165,3},{3308,1180,3},{3312,1175,3},{3312,1170,3}, {3313,1170,3},{3307,1188,3},{3292,1213,3},{3283,1233,3},{3280,1257,3},{3280,1282,3}, {3285,1300,3},{3288,1312,3},{3292,1317,3},{3292,1327,3},{3290,1335,3},{3280,1360,3}, {3280,1378,3},{3277,1392,3},{3273,1402,3},{3270,1418,3},{3267,1425,3},{3263,1432,3}, {3253,1445,3},{3252,1450,3},{3248,1463,3},{3245,1473,3},{3243,1492,3},{3240,1518,3}, {3233,1527,3},{3222,1532,3},{3217,1537,3},{3208,1535,3},{3197,1535,3},{3165,1550,3}, {3150,1562,3},{3143,1568,3},{3132,1592,3},{3127,1608,3},{3123,1625,3},{3122,1675,3}, {3118,1693,3},{3112,1713,3},{3108,1737,3},{3102,1747,3},{3100,1760,3},{3093,1777,3}, {3092,1785,3},{3085,1792,3},{3083,1802,3},{3078,1820,3},{3067,1830,3},{3050,1855,3}, {3042,1865,3},{3038,1878,3},{3035,1880,3},{3028,1892,3},{3027,1900,3},{3027,1917,3}, {3028,1933,3},{3040,1955,3},{3042,1962,3},{3052,1977,3},{3082,2003,3},{3098,2013,3}, {3108,2015,3},{3122,2015,3},{3132,2010,3},{3137,2003,3},{3152,1997,3},{3173,1992,3}, {3197,1995,3},{3217,2007,3},{3240,2032,3},{3243,2038,3},{3257,2057,3},{3265,2082,3}, {3273,2095,3},{3277,2107,3},{3277,2128,3},{3278,2138,3},{3282,2148,3},{3293,2162,3}, {3295,2172,3},{3292,2178,3},{3290,2188,3},{3292,2208,3},{3293,2212,3},{3295,2215,3}, {3288,2222,3},{3288,2235,3},{3278,2253,3},{3278,2258,3},{3275,2265,3},{3273,2280,3}, {3268,2292,3},{3267,2300,3},{3263,2312,3},{3262,2312,3},{3258,2310,3},{3252,2310,3}, {3247,2315,3},{3243,2313,3},{3240,2313,3},{3243,2310,3},{3233,2308,3},{3228,2320,3}, {3222,2325,3},{3220,2328,3},{3215,2332,3},{3222,2330,3},{3222,2337,3},{3218,2342,3}, {3217,2373,3},{3210,2398,3},{3208,2400,3},{3207,2397,3},{3205,2398,3},{3205,2402,3}, {3202,2407,3},{3200,2410,3},{3200,2430,3},{3198,2455,3},{3200,2462,3},{3203,2465,3}, {3203,2473,3},{3198,2487,3},{3197,2498,3},{3192,2503,3},{3183,2503,3},{3173,2512,3}, {3165,2515,3},{3162,2510,3},{3157,2507,3},{3152,2505,3},{3148,2502,3},{3145,2497,3}, {3142,2492,3},{3137,2487,3},{3132,2487,3},{3127,2487,3},{3122,2488,3},{3117,2487,3}, {3112,2488,3},{3107,2490,3},{3102,2492,3},{3097,2493,3},{3092,2495,3},{3087,2498,3}, {3082,2500,3},{3077,2502,3},{3072,2498,3},{3067,2498,3},{3062,2497,3},{3057,2493,3}, {3052,2493,3},{3047,2490,3},{3042,2487,3},{3038,2483,3},{3033,2478,3},{3030,2477,3}, {3025,2473,3},{3020,2472,3},{3013,2472,3},{3010,2475,3},{3005,2477,3},{3000,2478,3}, {2995,2482,3},{2990,2483,3},{2983,2483,3},{2978,2482,3},{2973,2483,3},{2970,2487,3}, {2965,2488,3},{2960,2488,3},{2953,2488,3},{2948,2488,3},{2942,2492,3},{2937,2495,3}, {2930,2497,3},{2925,2500,3},{2920,2500,3},{2913,2500,3},{2908,2500,3},{2903,2500,3}, {2897,2500,3},{2892,2500,3},{2887,2500,3},{2880,2500,3},{2875,2500,3},{2870,2500,3}, {2863,2500,3},{2858,2500,3},{2853,2500,3},{2847,2500,3},{2842,2500,3},{2837,2500,3}, {2830,2500,3},{2825,2500,3},{2820,2500,3},{2813,2500,3},{2808,2500,3},{2802,2500,3}, {2797,2500,3},{2792,2500,3},{2785,2500,3},{2780,2500,3},{2775,2500,3},{2768,2500,3}, {2763,2500,3},{2758,2500,3},{2752,2500,3},{2747,2500,3},{2742,2500,3},{2735,2500,3}, {2730,2500,3},{2725,2500,3},{2718,2500,3},{2713,2500,3},{2708,2500,3},{2702,2500,3}, {2697,2500,3},{2692,2500,3},{2687,2500,3},{2680,2500,3},{2675,2500,3},{2670,2500,3}, {2663,2500,3},{2658,2500,3},{2653,2500,3},{2647,2500,3},{2642,2500,3},{2637,2500,3}, {2630,2500,3},{2625,2500,3},{2620,2500,3},{2613,2500,3},{2608,2500,3},{2603,2500,3}, {2597,2500,3},{2592,2500,3},{2587,2500,3},{2580,2500,3},{2575,2500,3},{2570,2500,3}, {2563,2500,3},{2558,2500,3},{2553,2500,3},{2547,2500,3},{2542,2500,3},{2537,2500,3}, {2530,2500,3},{2525,2500,3},{2520,2500,3},{2513,2500,3},{2508,2500,3},{2503,2500,3}, {2497,2500,3},{2492,2500,3},{2485,2500,3},{2480,2500,3},{2475,2500,3},{2468,2500,3}, {2463,2500,3},{2458,2500,3},{2452,2500,3},{2447,2500,3},{2442,2500,3},{2435,2500,3}, {2430,2500,3},{2425,2500,3},{2418,2500,3},{2413,2500,3},{2408,2500,3},{2402,2500,3}, {2397,2500,3},{2392,2500,3},{2385,2500,3},{2380,2500,3},{2375,2500,3},{2368,2500,3}, {2363,2500,3},{2358,2500,3},{2352,2500,3},{2347,2500,3},{2342,2500,3},{2337,2500,3}, {2330,2500,3},{2325,2500,3},{2320,2500,3},{2313,2500,3},{2308,2500,3},{2303,2500,3}, {2297,2500,3},{2292,2500,3},{2287,2500,3},{2280,2500,3},{2275,2500,3},{2270,2500,3}, {2265,2500,3},{2258,2500,3},{2253,2500,3},{2248,2500,3},{2242,2500,3},{2237,2500,3}, {2232,2500,3},{2225,2500,3},{2220,2500,3},{2215,2500,3},{2208,2500,3},{2203,2500,3}, {2200,2500,3},{2195,2500,3},{2188,2500,3},{2183,2500,3},{2178,2500,3},{2172,2500,3}, {2167,2500,3},{2162,2500,3},{2155,2500,3},{2150,2500,3},{2145,2500,3},{2138,2500,3}, {2133,2500,3},{2128,2500,3},{2122,2500,3},{2117,2500,3},{2112,2500,3},{2107,2500,3}, {2100,2500,3},{2095,2500,3},{2090,2500,3},{2083,2500,3},{2078,2500,3},{2073,2500,3}, {2067,2500,3},{2062,2500,3},{2057,2500,3},{2050,2500,3},{2045,2500,3},{2040,2500,3}, {2033,2500,3},{2028,2500,3},{2023,2500,3},{2018,2500,3},{2012,2500,3},{2007,2500,3}, {2000,2500,3},{2000,2495,3},{2000,2488,3},{2000,2483,3},{2000,2477,3},{2000,2472,3}, {2000,2465,3},{2000,2460,3},{2000,2453,3},{2000,2448,3},{2000,2442,3},{2000,2437,3}, {2000,2430,3},{2000,2425,3},{2000,2420,3},{2000,2413,3},{2000,2408,3},{2000,2402,3}, {2000,2400,3},{1995,2400,3},{1990,2400,3},{1983,2400,3},{1978,2400,3},{1973,2400,3}, {1967,2400,3},{1962,2400,3},{1957,2400,3},{1950,2400,3},{1953,2395,3},{1957,2390,3}, {1958,2383,3},{1962,2378,3},{1965,2373,3},{1968,2368,3},{1970,2362,3},{1973,2357,3}, {1977,2352,3},{1980,2347,3},{1982,2340,3},{1985,2335,3},{1988,2330,3},{1992,2323,3}, {1993,2318,3},{1997,2313,3},{2000,2308,3},{2003,2302,3},{2005,2297,3},{2008,2292,3}, {2012,2285,3},{2015,2280,3},{2017,2275,3},{2020,2270,3},{2023,2263,3},{2027,2258,3}, {2028,2253,3},{2032,2247,3},{2035,2242,3},{2037,2237,3},{2040,2232,3},{2043,2225,3}, {2047,2220,3},{2048,2215,3},{2052,2208,3},{2055,2203,3},{2058,2198,3},{2060,2192,3}, {2063,2187,3},{2067,2182,3},{2068,2175,3},{2072,2170,3},{2075,2165,3},{2078,2160,3}, {2080,2153,3},{2083,2148,3},{2087,2143,3},{2088,2137,3},{2092,2132,3},{2095,2127,3}, {2098,2120,3},{2100,2115,3},{2103,2110,3},{2107,2103,3},{2108,2098,3},{2112,2093,3}, {2115,2087,3},{2117,2082,3},{2120,2077,3},{2123,2070,3},{2125,2065,3},{2128,2060,3}, {2132,2053,3},{2135,2048,3},{2137,2043,3},{2140,2037,3},{2143,2032,3},{2145,2027,3}, {2148,2020,3},{2152,2015,3},{2153,2010,3},{2157,2003,3},{2160,1998,3},{2162,1992,3}, {2165,1987,3},{2168,1982,3},{2170,1975,3},{2173,1970,3},{2177,1965,3},{2180,1958,3}, {2182,1953,3},{2185,1947,3},{2188,1942,3},{2190,1937,3},{2193,1930,3},{2197,1925,3}, {2198,1920,3},{2202,1913,3},{2205,1908,3},{2207,1902,3},{2208,1900,3},{2212,1895,3}, {2213,1888,3},{2217,1883,3},{2220,1877,3},{2222,1872,3},{2225,1867,3},{2228,1860,3}, {2230,1855,3},{2233,1848,3},{2235,1843,3},{2238,1837,3},{2242,1832,3},{2243,1827,3}, {2247,1820,3},{2250,1815,3},{2252,1808,3},{2255,1803,3},{2258,1798,3},{2260,1792,3}, {2263,1787,3},{2265,1780,3},{2268,1775,3},{2272,1768,3},{2273,1763,3},{2277,1758,3}, {2280,1752,3},{2282,1747,3},{2285,1740,3},{2287,1735,3},{2290,1728,3},{2293,1723,3}, {2295,1717,3},{2298,1712,3},{2300,1707,3},{2303,1700,3},{2307,1695,3},{2308,1688,3}, {2312,1683,3},{2313,1677,3},{2317,1672,3},{2320,1665,3},{2322,1660,3},{2325,1653,3}, {2327,1648,3},{2330,1643,3},{2333,1637,3},{2335,1632,3},{2338,1625,3},{2340,1620,3}, {2343,1613,3},{2347,1608,3},{2348,1602,3},{2350,1600,3},{2347,1593,3},{2343,1587,3}, {2340,1582,3},{2337,1575,3},{2335,1568,3},{2332,1562,3},{2328,1557,3},{2325,1550,3}, {2322,1543,3},{2318,1537,3},{2317,1532,3},{2313,1525,3},{2310,1518,3},{2307,1513,3}, {2303,1507,3},{2300,1500,3},{753,1550,131},{763,1557,3},{775,1558,3},{777,1550,3}, {782,1548,3},{803,1538,3},{812,1538,3},{822,1532,3},{848,1520,3},{855,1512,3}, {865,1507,3},{868,1497,3},{873,1497,3},{875,1493,3},{877,1492,3},{882,1487,3}, {882,1482,3},{900,1457,3},{920,1435,3},{923,1435,3},{960,1403,3},{963,1395,3}, {975,1402,3},{978,1408,3},{983,1412,3},{993,1418,3},{998,1418,3},{1000,1445,3}, {998,1453,3},{992,1478,3},{997,1492,3},{995,1503,3},{995,1508,3},{998,1510,3}, {998,1517,3},{998,1523,3},{993,1542,3},{998,1568,3},{1010,1550,3},{1020,1543,3}, {1020,1540,3},{1028,1535,3},{1030,1530,3},{1033,1528,3},{1038,1528,3},{1048,1522,3}, {1050,1518,3},{1050,1515,3},{1053,1513,3},{1062,1515,3},{1080,1505,3},{1090,1508,3}, {1098,1503,3},{1120,1502,3},{1130,1507,3},{1135,1505,3},{1140,1505,3},{1143,1507,3}, {1152,1513,3},{1155,1513,3},{1158,1508,3},{1168,1507,3},{1172,1507,3},{1172,1510,3}, {1175,1508,3},{1178,1512,3},{1185,1508,3},{1185,1505,3},{1188,1503,3},{1193,1507,3}, {1197,1505,3},{1197,1508,3},{1200,1505,3},{1208,1505,3},{1210,1500,3},{1208,1498,3}, {1210,1495,3},{1215,1488,3},{1218,1492,3},{1220,1490,3},{1238,1490,3},{1245,1487,3}, {1245,1485,3},{1250,1487,3},{1263,1483,3},{1263,1477,3},{1268,1473,3},{1265,1470,3}, {1272,1472,3},{1272,1465,3},{1273,1462,3},{1277,1462,3},{1273,1458,3},{1277,1457,3}, {1277,1455,3},{1283,1455,3},{1285,1455,3},{1288,1452,3},{1288,1458,3},{1287,1460,3}, {1290,1463,3},{1290,1470,3},{1288,1473,3},{1287,1475,3},{1288,1477,3},{1288,1485,3}, {1290,1487,3},{1290,1495,3},{1292,1495,3},{1292,1498,3},{1293,1498,3},{1292,1502,3}, {1292,1505,3},{1295,1505,3},{1295,1507,3},{1293,1508,3},{1297,1508,3},{1293,1513,3}, {1293,1515,3},{1295,1515,3},{1297,1518,3},{1297,1520,3},{1300,1520,3},{1303,1518,3}, {1303,1517,3},{1307,1508,3},{1305,1503,3},{1307,1492,3},{1312,1490,3},{1318,1490,3}, {1320,1488,3},{1320,1487,3},{1318,1483,3},{1320,1482,3},{1323,1477,3},{1323,1470,3}, {1327,1467,3},{1325,1465,3},{1325,1462,3},{1327,1460,3},{1325,1458,3},{1327,1455,3}, {1325,1453,3},{1325,1445,3},{1323,1443,3},{1322,1440,3},{1318,1438,3},{1320,1433,3}, {1317,1428,3},{1315,1427,3},{1317,1423,3},{1318,1422,3},{1325,1415,3},{1327,1415,3}, {1327,1417,3},{1325,1420,3},{1328,1422,3},{1332,1422,3},{1335,1420,3},{1337,1417,3}, {1338,1417,3},{1342,1420,3},{1345,1420,3},{1348,1423,3},{1350,1422,3},{1347,1415,3}, {1340,1408,3},{1342,1407,3},{1342,1398,3},{1337,1398,3},{1332,1397,3},{1332,1395,3}, {1333,1387,3},{1335,1385,3},{1340,1380,3},{1342,1378,3},{1345,1377,3},{1352,1375,3}, {1353,1377,3},{1355,1380,3},{1358,1382,3},{1362,1385,3},{1365,1387,3},{1370,1387,3}, {1373,1385,3},{1377,1385,3},{1378,1383,3},{1383,1382,3},{1387,1378,3},{1388,1377,3}, {1390,1372,3},{1392,1368,3},{1397,1365,3},{1400,1360,3},{1400,1357,3},{1405,1355,3}, {1410,1353,3},{1417,1352,3},{1422,1352,3},{1427,1350,3},{1433,1348,3},{1438,1347,3}, {1443,1347,3},{1448,1348,3},{1450,1353,3},{1452,1358,3},{1453,1363,3},{1457,1368,3}, {1462,1368,3},{1463,1367,3},{1468,1370,3},{1472,1373,3},{1470,1377,3},{1475,1378,3}, {1480,1378,3},{1487,1377,3},{1492,1380,3},{1497,1383,3},{1502,1385,3},{1508,1390,3}, {1512,1392,3},{1517,1395,3},{1520,1398,3},{1525,1402,3},{1530,1407,3},{1535,1410,3}, {1540,1413,3},{1547,1418,3},{1552,1422,3},{1557,1425,3},{1562,1428,3},{1568,1433,3}, {1573,1437,3},{1577,1440,3},{1582,1445,3},{1585,1448,3},{1590,1452,3},{1593,1457,3}, {1597,1460,3},{1602,1463,3},{1605,1467,3},{1610,1472,3},{1613,1475,3},{1617,1478,3}, {1622,1483,3},{1625,1487,3},{1630,1490,3},{1633,1495,3},{1637,1498,3},{1642,1502,3}, {1645,1507,3},{1650,1510,3},{1653,1513,3},{1657,1517,3},{1662,1522,3},{1665,1525,3}, {1670,1528,3},{1673,1533,3},{1677,1537,3},{1682,1540,3},{1685,1545,3},{1690,1548,3}, {1695,1550,3},{1702,1550,3},{1707,1550,3},{1712,1550,3},{1717,1550,3},{1723,1552,3}, {1728,1552,3},{1733,1552,3},{1737,1552,3},{1742,1553,3},{1747,1553,3},{1752,1553,3}, {1758,1553,3},{1763,1553,3},{1768,1555,3},{1775,1555,3},{1780,1555,3},{1785,1555,3}, {1790,1555,3},{1797,1555,3},{1802,1557,3},{1807,1557,3},{1813,1557,3},{1818,1557,3}, {1823,1557,3},{1828,1557,3},{1835,1558,3},{1840,1558,3},{1845,1558,3},{1852,1558,3}, {1857,1558,3},{1862,1560,3},{1867,1560,3},{1873,1560,3},{1878,1560,3},{1885,1562,3}, {1890,1562,3},{1895,1563,3},{1900,1563,3},{1907,1563,3},{1912,1565,3},{1917,1565,3}, {1922,1567,3},{1928,1567,3},{1933,1567,3},{1938,1568,3},{1945,1568,3},{1950,1570,3}, {1955,1570,3},{1960,1572,3},{1967,1572,3},{1972,1573,3},{1977,1573,3},{1982,1573,3}, {1988,1575,3},{1993,1577,3},{2000,1578,3},{2005,1582,3},{2010,1585,3},{2015,1588,3}, {2020,1592,3},{2027,1595,3},{2032,1597,3},{2037,1598,3},{2040,1595,3},{2045,1590,3}, {2050,1587,3},{2053,1582,3},{2058,1578,3},{2062,1575,3},{2067,1570,3},{2070,1565,3}, {2073,1562,3},{2078,1557,3},{2083,1555,3},{2088,1555,3},{2093,1558,3},{2097,1562,3}, {2100,1560,3},{2105,1557,3},{2108,1553,3},{2113,1550,3},{2117,1547,3},{2122,1545,3}, {2127,1542,3},{2130,1538,3},{2135,1535,3},{2138,1532,3},{2143,1530,3},{2147,1525,3}, {2150,1520,3},{2157,1520,3},{2162,1520,3},{2167,1520,3},{2172,1520,3},{2178,1520,3}, {2183,1520,3},{2188,1520,3},{2195,1520,3},{2200,1520,3},{2207,1518,3},{2212,1517,3}, {2217,1517,3},{2223,1515,3},{2228,1513,3},{2233,1513,3},{2240,1512,3},{2245,1510,3}, {2250,1510,3},{2255,1508,3},{2262,1507,3},{2267,1507,3},{2272,1505,3},{2278,1505,3}, {2283,1503,3},{2288,1502,3},{2295,1502,3},{2300,1500,3},{2303,1507,3},{2307,1513,3}, {2310,1518,3},{2313,1525,3},{2317,1532,3},{2318,1537,3},{2322,1543,3},{2325,1550,3}, {2328,1557,3},{2332,1562,3},{2335,1568,3},{2337,1575,3},{2340,1582,3},{2343,1587,3}, {2347,1593,3},{2350,1600,3},{2348,1602,3},{2347,1608,3},{2343,1613,3},{2340,1620,3}, {2338,1625,3},{2335,1632,3},{2333,1637,3},{2330,1643,3},{2327,1648,3},{2325,1653,3}, {2322,1660,3},{2320,1665,3},{2317,1672,3},{2313,1677,3},{2312,1683,3},{2308,1688,3}, {2307,1695,3},{2303,1700,3},{2300,1707,3},{2298,1712,3},{2295,1717,3},{2293,1723,3}, {2290,1728,3},{2287,1735,3},{2285,1740,3},{2282,1747,3},{2280,1752,3},{2277,1758,3}, {2273,1763,3},{2272,1768,3},{2268,1775,3},{2265,1780,3},{2263,1787,3},{2260,1792,3}, {2258,1798,3},{2255,1803,3},{2252,1808,3},{2250,1815,3},{2247,1820,3},{2243,1827,3}, {2242,1832,3},{2238,1837,3},{2235,1843,3},{2233,1848,3},{2230,1855,3},{2228,1860,3}, {2225,1867,3},{2222,1872,3},{2220,1877,3},{2217,1883,3},{2213,1888,3},{2212,1895,3}, {2208,1900,3},{2207,1902,3},{2205,1908,3},{2202,1913,3},{2198,1920,3},{2197,1925,3}, {2193,1930,3},{2190,1937,3},{2188,1942,3},{2185,1947,3},{2182,1953,3},{2180,1958,3}, {2177,1965,3},{2173,1970,3},{2170,1975,3},{2168,1982,3},{2165,1987,3},{2162,1992,3}, {2160,1998,3},{2157,2003,3},{2153,2010,3},{2152,2015,3},{2148,2020,3},{2145,2027,3}, {2143,2032,3},{2140,2037,3},{2137,2043,3},{2135,2048,3},{2132,2053,3},{2128,2060,3}, {2125,2065,3},{2123,2070,3},{2120,2077,3},{2117,2082,3},{2115,2087,3},{2112,2093,3}, {2108,2098,3},{2107,2103,3},{2103,2110,3},{2100,2115,3},{2098,2120,3},{2095,2127,3}, {2092,2132,3},{2088,2137,3},{2087,2143,3},{2083,2148,3},{2080,2153,3},{2078,2160,3}, {2075,2165,3},{2072,2170,3},{2068,2175,3},{2067,2182,3},{2063,2187,3},{2060,2192,3}, {2058,2198,3},{2055,2203,3},{2052,2208,3},{2048,2215,3},{2047,2220,3},{2043,2225,3}, {2040,2232,3},{2037,2237,3},{2035,2242,3},{2032,2247,3},{2028,2253,3},{2027,2258,3}, {2023,2263,3},{2020,2270,3},{2017,2275,3},{2015,2280,3},{2012,2285,3},{2008,2292,3}, {2005,2297,3},{2003,2302,3},{2000,2308,3},{1997,2313,3},{1993,2318,3},{1992,2323,3}, {1988,2330,3},{1985,2335,3},{1982,2340,3},{1980,2347,3},{1977,2352,3},{1973,2357,3}, {1970,2362,3},{1968,2368,3},{1965,2373,3},{1962,2378,3},{1958,2383,3},{1957,2390,3}, {1953,2395,3},{1950,2400,3},{1943,2400,3},{1937,2400,3},{1930,2400,3},{1923,2400,3}, {1917,2400,3},{1910,2400,3},{1903,2400,3},{1897,2400,3},{1890,2400,3},{1883,2400,3}, {1877,2400,3},{1868,2400,3},{1862,2400,3},{1857,2400,3},{1850,2400,3},{1843,2400,3}, {1837,2400,3},{1830,2400,3},{1823,2400,3},{1817,2400,3},{1808,2400,3},{1803,2400,3}, {1798,2400,3},{1793,2400,3},{1787,2400,3},{1778,2400,3},{1773,2400,3},{1767,2400,3}, {1760,2400,3},{1753,2400,3},{1748,2400,3},{1743,2400,3},{1735,2400,3},{1730,2400,3}, {1725,2400,3},{1720,2400,3},{1713,2400,3},{1707,2400,3},{1702,2400,3},{1695,2400,3}, {1690,2400,3},{1683,2400,3},{1678,2400,3},{1673,2400,3},{1665,2400,3},{1658,2400,3}, {1653,2400,3},{1647,2400,3},{1640,2400,3},{1633,2400,3},{1627,2400,3},{1620,2400,3}, {1613,2400,3},{1607,2400,3},{1600,2400,3},{1593,2400,3},{1588,2400,3},{1583,2400,3}, {1577,2400,3},{1570,2400,3},{1575,2378,3},{1577,2362,3},{1572,2345,3},{1568,2335,3}, {1572,2312,3},{1560,2302,3},{1555,2293,3},{1548,2292,3},{1542,2298,3},{1537,2300,3}, {1522,2298,3},{1515,2295,3},{1512,2293,3},{1508,2285,3},{1498,2275,3},{1490,2273,3}, {1487,2267,3},{1477,2268,3},{1468,2270,3},{1463,2247,3},{1460,2240,3},{1457,2238,3}, {1452,2238,3},{1448,2245,3},{1438,2245,3},{1435,2247,3},{1432,2243,3},{1428,2245,3}, {1425,2247,3},{1423,2255,3},{1417,2257,3},{1413,2255,3},{1410,2248,3},{1405,2243,3}, {1405,2240,3},{1402,2235,3},{1402,2232,3},{1397,2223,3},{1378,2208,3},{1373,2213,3}, {1367,2213,3},{1363,2215,3},{1357,2222,3},{1348,2223,3},{1338,2230,3},{1335,2230,3}, {1318,2217,3},{1313,2202,3},{1305,2195,3},{1302,2193,3},{1297,2190,3},{1280,2183,3}, {1268,2190,3},{1265,2195,3},{1263,2205,3},{1265,2213,3},{1275,2222,3},{1267,2233,3}, {1262,2247,3},{1248,2242,3},{1247,2238,3},{1240,2243,3},{1235,2243,3},{1218,2250,3}, {1205,2248,3},{1203,2248,3},{1207,2255,3},{1208,2258,3},{1207,2262,3},{1208,2263,3}, {1207,2263,3},{1200,2262,3},{1182,2258,3},{1167,2255,3},{1163,2257,3},{1152,2265,3}, {1147,2278,3},{1142,2278,3},{1140,2278,3},{1142,2293,3},{1132,2295,3},{1128,2297,3}, {1122,2297,3},{1095,2288,3},{1092,2287,3},{1093,2278,3},{1095,2277,3},{1097,2265,3}, {1098,2260,3},{1097,2255,3},{1100,2252,3},{1100,2247,3},{1098,2243,3},{1095,2240,3}, {1095,2237,3},{1093,2232,3},{1090,2228,3},{1092,2225,3},{1087,2220,3},{1082,2218,3}, {1083,2210,3},{1083,2205,3},{1082,2202,3},{1080,2200,3},{1073,2200,3},{1073,2195,3}, {1072,2190,3},{1067,2185,3},{1068,2182,3},{1067,2178,3},{1065,2177,3},{1063,2172,3}, {1052,2170,3},{1045,2173,3},{1040,2175,3},{1037,2172,3},{1028,2172,3},{1028,2168,3}, {1023,2167,3},{1022,2163,3},{1020,2153,3},{1012,2145,3},{1005,2143,3},{997,2137,3}, {995,2133,3},{998,2127,3},{993,2122,3},{988,2120,3},{987,2117,3},{983,2113,3}, {977,2110,3},{975,2107,3},{977,2105,3},{975,2102,3},{972,2102,3},{968,2100,3}, {963,2100,3},{963,2098,3},{960,2098,3},{960,2095,3},{952,2090,3},{948,2083,3}, {942,2082,3},{940,2077,3},{938,2077,3},{937,2068,3},{933,2065,3},{930,2067,3}, {930,2060,3},{932,2053,3},{928,2053,3},{927,2050,3},{922,2052,3},{920,2048,3}, {913,2043,3},{913,2042,3},{910,2037,3},{910,2033,3},{912,2025,3},{913,2020,3}, {912,2015,3},{915,2010,3},{913,2010,3},{913,2007,3},{912,2003,3},{908,2003,3}, {910,2002,3},{908,1998,3},{908,1995,3},{907,1995,3},{907,1992,3},{903,1990,3}, {905,1983,3},{903,1977,3},{902,1968,3},{903,1958,3},{900,1955,3},{900,1947,3}, {902,1942,3},{900,1938,3},{902,1930,3},{900,1928,3},{902,1925,3},{902,1920,3}, {900,1917,3},{902,1908,3},{897,1898,3},{893,1897,3},{888,1888,3},{885,1887,3}, {883,1888,3},{885,1890,3},{880,1893,3},{880,1895,3},{877,1898,3},{875,1903,3}, {872,1907,3},{870,1912,3},{867,1913,3},{860,1907,3},{853,1905,3},{843,1893,3}, {835,1888,3},{833,1887,3},{832,1887,3},{828,1883,3},{825,1880,3},{822,1870,3}, {820,1867,3},{813,1863,3},{808,1863,3},{803,1858,3},{802,1805,3},{795,1788,3}, {798,1763,3},{797,1763,3},{793,1758,3},{793,1752,3},{788,1748,3},{790,1745,3}, {790,1743,3},{787,1742,3},{788,1738,3},{783,1730,3},{783,1727,3},{780,1723,3}, {777,1722,3},{777,1720,3},{777,1718,3},{768,1713,3},{770,1707,3},{767,1707,3}, {767,1702,3},{765,1700,3},{763,1687,3},{760,1687,3},{757,1688,3},{757,1685,3}, {755,1682,3},{755,1678,3},{760,1675,3},{765,1670,3},{768,1663,3},{773,1663,3}, {777,1662,3},{778,1657,3},{787,1657,3},{785,1650,3},{778,1647,3},{780,1642,3}, {770,1640,3},{768,1640,3},{767,1632,3},{762,1622,3},{760,1608,3},{758,1603,3}, {753,1602,3},{750,1597,3},{745,1578,3},{747,1573,3},{752,1572,3},{752,1568,3}, {753,1550,3},{65433,3407,131},{65434,3410,3},{65434,3405,3},{65436,3403,3}, {65436,3407,3},{65438,3407,3},{65438,3408,3},{65436,3413,3},{65443,3413,3}, {65448,3418,3},{65449,3418,3},{65456,3407,3},{65458,3408,3},{65463,3407,3}, {65463,3403,3},{65473,3405,3},{65476,3408,3},{65479,3407,3},{65481,3410,3}, {65483,3410,3},{65483,3413,3},{65483,3415,3},{65488,3417,3},{65494,3420,3}, {65494,3422,3},{65493,3422,3},{65493,3425,3},{65489,3428,3},{65488,3430,3}, {65491,3430,3},{65491,3432,3},{65488,3433,3},{65489,3437,3},{65491,3437,3}, {65491,3440,3},{65488,3440,3},{65486,3442,3},{65484,3440,3},{65483,3442,3}, {65489,3450,3},{65491,3450,3},{65496,3445,3},{65501,3445,3},{65504,3457,3}, {65503,3460,3},{65501,3475,3},{65503,3475,3},{65506,3475,3},{65508,3478,3}, {65504,3480,3},{65504,3483,3},{65508,3485,3},{65509,3482,3},{65516,3480,3}, {65519,3473,3},{65523,3472,3},{65528,3473,3},{65526,3472,3},{65528,3468,3}, {65521,3460,3},{65521,3457,3},{65518,3450,3},{65519,3445,3},{65516,3435,3}, {65513,3435,3},{65513,3438,3},{65508,3438,3},{65501,3432,3},{65496,3430,3}, {65496,3428,3},{65498,3427,3},{65499,3428,3},{65501,3428,3},{65503,3425,3}, {65504,3425,3},{65506,3423,3},{65509,3425,3},{65511,3425,3},{65513,3420,3}, {65516,3418,3},{65518,3418,3},{65516,3413,3},{65521,3408,3},{65523,3408,3}, {65524,3413,3},{65526,3412,3},{65528,3413,3},{65529,3413,3},{65529,3407,3}, {65524,3405,3},{65528,3405,3},{65528,3402,3},{65531,3403,3},{65531,3400,3}, {0,3400,3},{8,3395,3},{10,3395,3},{10,3398,3},{15,3400,3},{17,3398,3},{23,3400,3}, {30,3405,3},{35,3410,3},{38,3412,3},{43,3410,3},{47,3412,3},{60,3417,3}, {65,3427,3},{72,3432,3},{77,3432,3},{82,3440,3},{85,3442,3},{88,3445,3}, {97,3448,3},{103,3448,3},{112,3453,3},{110,3458,3},{115,3460,3},{117,3465,3}, {120,3468,3},{123,3482,3},{130,3483,3},{133,3480,3},{137,3480,3},{140,3480,3}, {142,3485,3},{153,3488,3},{158,3495,3},{167,3500,3},{188,3500,3},{192,3503,3}, {198,3498,3},{205,3498,3},{208,3500,3},{238,3488,3},{242,3488,3},{245,3493,3}, {250,3493,3},{253,3490,3},{260,3488,3},{258,3485,3},{268,3478,3},{278,3478,3}, {285,3475,3},{287,3472,3},{288,3470,3},{287,3468,3},{287,3465,3},{293,3458,3}, {312,3457,3},{313,3453,3},{315,3448,3},{318,3445,3},{327,3445,3},{335,3443,3}, {338,3440,3},{343,3442,3},{348,3440,3},{352,3445,3},{367,3447,3},{368,3442,3}, {373,3438,3},{373,3435,3},{370,3430,3},{373,3430,3},{377,3427,3},{378,3427,3}, {378,3417,3},{380,3420,3},{382,3417,3},{385,3422,3},{388,3422,3},{388,3418,3}, {388,3415,3},{387,3412,3},{388,3410,3},{395,3413,3},{402,3408,3},{405,3410,3}, {410,3408,3},{412,3407,3},{418,3407,3},{422,3400,3},{427,3403,3},{430,3408,3}, {433,3412,3},{438,3415,3},{442,3420,3},{447,3423,3},{450,3428,3},{453,3432,3}, {458,3435,3},{462,3438,3},{462,3445,3},{462,3450,3},{462,3455,3},{462,3462,3}, {462,3467,3},{462,3472,3},{462,3477,3},{462,3483,3},{462,3488,3},{462,3493,3}, {462,3498,3},{462,3505,3},{462,3510,3},{462,3515,3},{462,3520,3},{462,3527,3}, {462,3532,3},{462,3537,3},{462,3542,3},{462,3548,3},{462,3553,3},{462,3558,3}, {462,3565,3},{462,3570,3},{462,3575,3},{462,3580,3},{462,3587,3},{462,3592,3}, {462,3593,3},{460,3595,3},{458,3595,3},{438,3592,3},{413,3593,3},{395,3585,3}, {388,3587,3},{378,3585,3},{370,3583,3},{363,3583,3},{355,3590,3},{348,3590,3}, {348,3593,3},{355,3592,3},{355,3593,3},{347,3595,3},{342,3593,3},{332,3595,3}, {332,3598,3},{325,3603,3},{322,3610,3},{320,3612,3},{322,3615,3},{317,3613,3}, {312,3615,3},{303,3613,3},{302,3612,3},{298,3613,3},{298,3618,3},{297,3622,3}, {298,3625,3},{295,3625,3},{292,3628,3},{285,3638,3},{272,3645,3},{265,3643,3}, {257,3652,3},{252,3653,3},{248,3653,3},{245,3652,3},{240,3655,3},{242,3660,3}, {240,3662,3},{242,3665,3},{248,3670,3},{272,3668,3},{273,3670,3},{282,3670,3}, {285,3670,3},{288,3668,3},{290,3665,3},{290,3653,3},{298,3643,3},{302,3638,3}, {312,3638,3},{318,3633,3},{318,3630,3},{325,3628,3},{332,3622,3},{335,3625,3}, {337,3625,3},{352,3620,3},{360,3620,3},{368,3622,3},{368,3625,3},{375,3627,3}, {388,3622,3},{392,3620,3},{395,3618,3},{397,3620,3},{400,3620,3},{403,3622,3}, {407,3622,3},{413,3625,3},{418,3622,3},{430,3622,3},{433,3618,3},{445,3622,3}, {445,3625,3},{443,3630,3},{443,3637,3},{445,3643,3},{445,3650,3},{445,3655,3}, {445,3662,3},{443,3667,3},{443,3673,3},{443,3680,3},{440,3697,3},{438,3703,3}, {435,3705,3},{433,3708,3},{428,3712,3},{427,3717,3},{423,3722,3},{420,3728,3}, {415,3735,3},{412,3740,3},{407,3747,3},{403,3753,3},{400,3758,3},{395,3765,3}, {392,3772,3},{387,3778,3},{383,3783,3},{378,3790,3},{373,3800,3},{363,3810,3}, {365,3815,3},{363,3845,3},{367,3850,3},{367,3853,3},{363,3855,3},{362,3865,3}, {365,3868,3},{362,3870,3},{360,3872,3},{353,3892,3},{355,3905,3},{355,3912,3}, {352,3918,3},{352,3935,3},{350,3938,3},{348,3945,3},{350,3948,3},{343,3952,3}, {343,3957,3},{350,3960,3},{358,3968,3},{368,3978,3},{377,3982,3},{387,3987,3}, {390,3995,3},{393,4000,3},{397,4007,3},{400,4012,3},{403,4018,3},{405,4023,3}, {407,4030,3},{408,4035,3},{412,4040,3},{415,4045,3},{417,4050,3},{418,4057,3}, {420,4062,3},{423,4067,3},{425,4073,3},{428,4078,3},{427,4080,3},{422,4088,3}, {415,4092,3},{410,4102,3},{400,4110,3},{395,4117,3},{395,4147,3},{397,4150,3}, {397,4157,3},{398,4162,3},{397,4167,3},{400,4172,3},{395,4185,3},{397,4190,3}, {398,4192,3},{393,4188,3},{388,4185,3},{383,4182,3},{378,4178,3},{375,4173,3}, {370,4170,3},{365,4167,3},{360,4163,3},{355,4160,3},{350,4157,3},{345,4153,3}, {340,4150,3},{335,4147,3},{330,4143,3},{325,4140,3},{317,4133,3},{310,4127,3}, {305,4122,3},{300,4117,3},{295,4112,3},{290,4107,3},{285,4102,3},{283,4098,3}, {277,4098,3},{272,4098,3},{265,4098,3},{260,4098,3},{253,4098,3},{247,4098,3}, {242,4098,3},{237,4098,3},{230,4098,3},{225,4098,3},{220,4098,3},{213,4098,3}, {208,4098,3},{203,4098,3},{197,4098,3},{192,4098,3},{187,4098,3},{180,4098,3}, {175,4098,3},{170,4098,3},{163,4098,3},{158,4098,3},{153,4098,3},{147,4098,3}, {142,4098,3},{137,4098,3},{130,4098,3},{125,4098,3},{120,4098,3},{113,4098,3}, {108,4098,3},{103,4098,3},{97,4098,3},{92,4098,3},{87,4098,3},{80,4098,3}, {75,4098,3},{70,4098,3},{63,4098,3},{58,4098,3},{53,4098,3},{47,4098,3}, {42,4098,3},{37,4098,3},{30,4098,3},{25,4098,3},{20,4098,3},{13,4098,3}, {8,4098,3},{3,4098,3},{65533,4098,3},{65526,4098,3},{65519,4098,3},{65513,4098,3}, {65506,4100,3},{65499,4100,3},{65493,4100,3},{65486,4100,3},{65479,4100,3}, {65473,4100,3},{65466,4100,3},{65459,4100,3},{65449,4100,3},{65446,4102,3}, {65443,4105,3},{65439,4108,3},{65434,4112,3},{65431,4115,3},{65426,4117,3}, {65423,4120,3},{65418,4123,3},{65414,4127,3},{65411,4130,3},{65406,4133,3}, {65403,4137,3},{65398,4140,3},{65394,4142,3},{65389,4145,3},{65386,4148,3}, {65383,4152,3},{65378,4155,3},{65373,4155,3},{65369,4155,3},{65361,4148,3}, {65353,4143,3},{65353,4142,3},{65351,4142,3},{65346,4135,3},{65339,4132,3}, {65339,4128,3},{65339,4123,3},{65343,4122,3},{65341,4122,3},{65341,4120,3}, {65339,4120,3},{65336,4118,3},{65338,4110,3},{65331,4102,3},{65334,4098,3}, {65343,4098,3},{65346,4102,3},{65344,4098,3},{65334,4095,3},{65331,4098,3}, {65328,4095,3},{65329,4093,3},{65336,4090,3},{65339,4087,3},{65334,4085,3}, {65334,4088,3},{65333,4090,3},{65331,4090,3},{65329,4088,3},{65328,4090,3}, {65314,4092,3},{65313,4093,3},{65314,4095,3},{65311,4098,3},{65306,4095,3}, {65304,4092,3},{65306,4092,3},{65308,4095,3},{65308,4092,3},{65313,4090,3}, {65314,4088,3},{65313,4085,3},{65308,4082,3},{65306,4080,3},{65308,4077,3}, {65304,4080,3},{65303,4078,3},{65299,4082,3},{65296,4082,3},{65294,4078,3}, {65291,4077,3},{65289,4072,3},{65281,4063,3},{65281,4060,3},{65283,4053,3}, {65281,4042,3},{65271,4027,3},{65263,4020,3},{65266,4020,3},{65268,4018,3}, {65264,4018,3},{65263,4017,3},{65261,4017,3},{65259,4017,3},{65258,4015,3}, {65254,4018,3},{65246,4015,3},{65246,4017,3},{65244,4015,3},{65243,4017,3}, {65241,4015,3},{65238,4015,3},{65233,4013,3},{65236,4018,3},{65238,4023,3}, {65233,4018,3},{65228,4015,3},{65224,4017,3},{65218,4012,3},{65213,4013,3}, {65209,4012,3},{65203,4003,3},{65201,4000,3},{65204,3998,3},{65203,3993,3}, {65199,3993,3},{65196,3997,3},{65184,3990,3},{65178,3988,3},{65174,3987,3}, {65174,3985,3},{65176,3983,3},{65176,3978,3},{65178,3978,3},{65176,3978,3}, {65174,3980,3},{65173,3980,3},{65173,3983,3},{65171,3987,3},{65169,3987,3}, {65154,3983,3},{65144,3978,3},{65143,3977,3},{65141,3975,3},{65141,3972,3}, {65144,3972,3},{65146,3972,3},{65144,3968,3},{65139,3970,3},{65139,3975,3}, {65133,3972,3},{65131,3968,3},{65134,3965,3},{65139,3967,3},{65138,3965,3}, {65139,3962,3},{65138,3960,3},{65136,3963,3},{65133,3963,3},{65133,3955,3}, {65128,3957,3},{65129,3957,3},{65129,3962,3},{65126,3967,3},{65109,3958,3}, {65093,3955,3},{65094,3952,3},{65093,3950,3},{65089,3950,3},{65084,3947,3}, {65078,3945,3},{65081,3943,3},{65083,3945,3},{65083,3943,3},{65081,3942,3}, {65079,3942,3},{65078,3938,3},{65074,3942,3},{65073,3940,3},{65073,3933,3}, {65076,3930,3},{65074,3930,3},{65074,3925,3},{65071,3922,3},{65069,3922,3}, {65069,3920,3},{65069,3918,3},{65073,3915,3},{65076,3910,3},{65079,3907,3}, {65083,3902,3},{65084,3898,3},{65088,3893,3},{65091,3890,3},{65094,3887,3}, {65096,3882,3},{65099,3878,3},{65103,3873,3},{65106,3870,3},{65109,3865,3}, {65111,3862,3},{65114,3857,3},{65118,3853,3},{65121,3848,3},{65123,3845,3}, {65126,3840,3},{65129,3837,3},{65133,3832,3},{65136,3828,3},{65138,3823,3}, {65141,3820,3},{65144,3815,3},{65148,3812,3},{65151,3807,3},{65153,3803,3}, {65156,3798,3},{65159,3795,3},{65163,3790,3},{65164,3787,3},{65168,3782,3}, {65171,3778,3},{65183,3773,3},{65184,3770,3},{65186,3768,3},{65186,3762,3}, {65191,3763,3},{65191,3760,3},{65194,3760,3},{65201,3767,3},{65201,3768,3}, {65204,3768,3},{65204,3772,3},{65231,3768,3},{65233,3765,3},{65236,3760,3}, {65239,3755,3},{65243,3750,3},{65244,3743,3},{65248,3738,3},{65251,3733,3}, {65253,3728,3},{65256,3722,3},{65259,3717,3},{65263,3712,3},{65266,3705,3}, {65269,3700,3},{65271,3695,3},{65274,3690,3},{65278,3683,3},{65281,3678,3}, {65284,3673,3},{65288,3667,3},{65289,3662,3},{65293,3657,3},{65296,3650,3}, {65299,3645,3},{65303,3640,3},{65306,3633,3},{65308,3630,3},{65309,3627,3}, {65313,3622,3},{65314,3617,3},{65318,3613,3},{65321,3608,3},{65323,3603,3}, {65326,3598,3},{65328,3593,3},{65331,3588,3},{65334,3583,3},{65336,3578,3}, {65339,3573,3},{65343,3568,3},{65344,3563,3},{65348,3558,3},{65351,3553,3}, {65353,3548,3},{65356,3543,3},{65358,3540,3},{65361,3535,3},{65364,3530,3}, {65366,3525,3},{65369,3520,3},{65373,3515,3},{65374,3510,3},{65378,3505,3}, {65381,3500,3},{65383,3495,3},{65386,3490,3},{65388,3485,3},{65391,3480,3}, {65394,3475,3},{65396,3472,3},{65399,3467,3},{65403,3462,3},{65404,3457,3}, {65408,3452,3},{65411,3447,3},{65413,3442,3},{65416,3437,3},{65418,3432,3}, {65421,3427,3},{65424,3422,3},{65426,3417,3},{65429,3412,3},{65433,3408,3}, {65433,3407,3},{65398,2960,131},{65404,2960,3},{65409,2958,3},{65414,2960,3}, {65418,2957,3},{65429,2958,3},{65436,2957,3},{65439,2958,3},{65446,2958,3}, {65448,2963,3},{65458,2963,3},{65463,2962,3},{65471,2963,3},{65474,2965,3}, {65476,2963,3},{65479,2967,3},{65486,2967,3},{65489,2965,3},{65491,2968,3}, {65494,2975,3},{65498,2982,3},{65508,2988,3},{65518,2988,3},{65521,2990,3}, {65521,2987,3},{65519,2985,3},{65519,2982,3},{65523,2980,3},{65523,2978,3}, {65528,2975,3},{65528,2972,3},{65529,2972,3},{0,2973,3},{7,2972,3},{12,2973,3}, {13,2977,3},{15,2977,3},{17,2978,3},{15,2982,3},{37,2987,3},{48,2997,3}, {63,2993,3},{72,2995,3},{77,2995,3},{83,2997,3},{87,3002,3},{90,3010,3}, {90,3015,3},{100,3022,3},{107,3022,3},{113,3023,3},{115,3027,3},{117,3028,3}, {115,3033,3},{120,3035,3},{120,3038,3},{122,3045,3},{123,3047,3},{123,3048,3}, {122,3050,3},{120,3050,3},{118,3048,3},{117,3050,3},{113,3048,3},{112,3050,3}, {110,3052,3},{105,3050,3},{103,3050,3},{103,3052,3},{105,3053,3},{100,3053,3}, {105,3055,3},{103,3057,3},{102,3060,3},{103,3058,3},{105,3062,3},{107,3060,3}, {107,3062,3},{110,3063,3},{112,3067,3},{115,3070,3},{118,3072,3},{122,3072,3}, {123,3073,3},{125,3075,3},{130,3078,3},{132,3080,3},{135,3083,3},{138,3085,3}, {140,3087,3},{142,3088,3},{145,3092,3},{150,3093,3},{152,3095,3},{153,3100,3}, {157,3105,3},{158,3105,3},{158,3113,3},{160,3117,3},{162,3120,3},{163,3122,3}, {165,3123,3},{167,3125,3},{168,3127,3},{170,3128,3},{172,3130,3},{175,3132,3}, {177,3133,3},{182,3132,3},{183,3133,3},{182,3135,3},{182,3137,3},{183,3138,3}, {192,3140,3},{192,3142,3},{200,3138,3},{200,3140,3},{207,3140,3},{212,3138,3}, {213,3140,3},{217,3138,3},{220,3137,3},{223,3137,3},{225,3135,3},{228,3138,3}, {230,3140,3},{232,3143,3},{232,3145,3},{233,3147,3},{235,3148,3},{237,3148,3}, {238,3148,3},{240,3147,3},{238,3147,3},{235,3145,3},{233,3143,3},{233,3140,3}, {232,3137,3},{227,3133,3},{225,3132,3},{220,3130,3},{218,3128,3},{223,3120,3}, {230,3120,3},{228,3112,3},{230,3105,3},{233,3107,3},{240,3098,3},{242,3095,3}, {240,3093,3},{233,3092,3},{233,3088,3},{240,3083,3},{245,3083,3},{245,3073,3}, {248,3073,3},{252,3075,3},{260,3075,3},{262,3078,3},{267,3078,3},{270,3080,3}, {277,3082,3},{278,3085,3},{285,3088,3},{288,3088,3},{297,3085,3},{305,3077,3}, {323,3083,3},{328,3083,3},{328,3087,3},{340,3093,3},{347,3092,3},{350,3093,3}, {353,3092,3},{348,3087,3},{357,3088,3},{368,3097,3},{370,3103,3},{380,3118,3}, {380,3128,3},{365,3153,3},{368,3157,3},{372,3170,3},{382,3180,3},{380,3183,3}, {368,3193,3},{360,3195,3},{358,3207,3},{353,3210,3},{352,3220,3},{362,3220,3}, {375,3240,3},{375,3272,3},{382,3290,3},{388,3302,3},{377,3318,3},{377,3323,3}, {377,3330,3},{377,3335,3},{375,3340,3},{375,3345,3},{375,3352,3},{378,3355,3}, {382,3358,3},{387,3363,3},{390,3367,3},{393,3372,3},{398,3375,3},{402,3378,3}, {405,3383,3},{410,3387,3},{413,3392,3},{418,3395,3},{422,3400,3},{418,3407,3}, {412,3407,3},{410,3408,3},{405,3410,3},{402,3408,3},{395,3413,3},{388,3410,3}, {387,3412,3},{388,3415,3},{388,3418,3},{388,3422,3},{385,3422,3},{382,3417,3}, {380,3420,3},{378,3417,3},{378,3427,3},{377,3427,3},{373,3430,3},{370,3430,3}, {373,3435,3},{373,3438,3},{368,3442,3},{367,3447,3},{352,3445,3},{348,3440,3}, {343,3442,3},{338,3440,3},{335,3443,3},{327,3445,3},{318,3445,3},{315,3448,3}, {313,3453,3},{312,3457,3},{293,3458,3},{287,3465,3},{287,3468,3},{288,3470,3}, {287,3472,3},{285,3475,3},{278,3478,3},{268,3478,3},{258,3485,3},{260,3488,3}, {253,3490,3},{250,3493,3},{245,3493,3},{242,3488,3},{238,3488,3},{208,3500,3}, {205,3498,3},{198,3498,3},{192,3503,3},{188,3500,3},{167,3500,3},{158,3495,3}, {153,3488,3},{142,3485,3},{140,3480,3},{137,3480,3},{133,3480,3},{130,3483,3}, {123,3482,3},{120,3468,3},{117,3465,3},{115,3460,3},{110,3458,3},{112,3453,3}, {103,3448,3},{97,3448,3},{88,3445,3},{85,3442,3},{82,3440,3},{77,3432,3}, {72,3432,3},{65,3427,3},{60,3417,3},{47,3412,3},{43,3410,3},{38,3412,3}, {35,3410,3},{30,3405,3},{23,3400,3},{27,3398,3},{23,3395,3},{23,3392,3}, {20,3392,3},{20,3390,3},{17,3390,3},{20,3383,3},{17,3383,3},{15,3382,3}, {20,3380,3},{23,3380,3},{22,3378,3},{20,3380,3},{18,3375,3},{20,3370,3}, {25,3375,3},{27,3370,3},{32,3375,3},{33,3370,3},{32,3367,3},{32,3363,3}, {32,3362,3},{28,3363,3},{22,3362,3},{20,3358,3},{18,3357,3},{18,3355,3}, {20,3353,3},{18,3352,3},{22,3353,3},{20,3350,3},{23,3350,3},{18,3348,3}, {22,3347,3},{23,3342,3},{25,3345,3},{27,3342,3},{28,3343,3},{28,3340,3}, {28,3345,3},{28,3352,3},{30,3352,3},{30,3350,3},{32,3350,3},{33,3345,3}, {35,3347,3},{35,3342,3},{32,3343,3},{33,3340,3},{33,3337,3},{35,3337,3}, {37,3337,3},{35,3332,3},{38,3332,3},{38,3337,3},{42,3335,3},{45,3337,3}, {48,3340,3},{48,3337,3},{45,3335,3},{42,3330,3},{45,3328,3},{48,3328,3}, {47,3325,3},{43,3323,3},{43,3318,3},{40,3320,3},{38,3327,3},{37,3327,3}, {32,3315,3},{30,3315,3},{27,3317,3},{25,3313,3},{22,3313,3},{22,3312,3}, {25,3312,3},{27,3307,3},{25,3308,3},{22,3305,3},{22,3310,3},{18,3310,3}, {8,3298,3},{7,3290,3},{10,3290,3},{12,3287,3},{13,3290,3},{15,3288,3},{17,3290,3}, {20,3288,3},{17,3287,3},{18,3285,3},{15,3285,3},{15,3282,3},{10,3278,3}, {13,3275,3},{10,3275,3},{8,3267,3},{13,3265,3},{13,3270,3},{18,3273,3}, {20,3272,3},{17,3270,3},{17,3265,3},{22,3268,3},{23,3265,3},{28,3267,3}, {28,3265,3},{20,3262,3},{20,3258,3},{18,3257,3},{18,3258,3},{15,3258,3}, {13,3260,3},{13,3257,3},{12,3258,3},{10,3258,3},{12,3255,3},{7,3257,3}, {5,3257,3},{5,3255,3},{8,3253,3},{5,3252,3},{8,3250,3},{3,3247,3},{3,3243,3}, {5,3242,3},{10,3245,3},{12,3245,3},{8,3243,3},{8,3237,3},{5,3238,3},{2,3238,3}, {65534,3237,3},{65533,3237,3},{65534,3235,3},{2,3235,3},{5,3225,3},{2,3227,3}, {0,3230,3},{65533,3228,3},{65533,3225,3},{0,3220,3},{3,3220,3},{0,3220,3}, {65533,3222,3},{65531,3220,3},{65528,3218,3},{65531,3212,3},{65533,3208,3}, {65531,3202,3},{65529,3202,3},{65529,3205,3},{65526,3207,3},{65526,3198,3}, {65523,3192,3},{65521,3193,3},{65516,3192,3},{65518,3197,3},{65518,3198,3}, {65511,3198,3},{65511,3200,3},{65504,3203,3},{65503,3203,3},{65506,3202,3}, {65506,3200,3},{65493,3192,3},{65488,3183,3},{65483,3182,3},{65479,3180,3}, {65473,3178,3},{65471,3180,3},{65463,3173,3},{65456,3170,3},{65451,3170,3}, {65451,3175,3},{65449,3177,3},{65441,3177,3},{65436,3178,3},{65436,3173,3}, {65436,3168,3},{65436,3163,3},{65436,3157,3},{65436,3152,3},{65436,3147,3}, {65436,3142,3},{65436,3135,3},{65436,3130,3},{65436,3125,3},{65436,3118,3}, {65436,3113,3},{65436,3108,3},{65436,3103,3},{65436,3097,3},{65436,3092,3}, {65436,3087,3},{65436,3080,3},{65436,3075,3},{65434,3068,3},{65429,3067,3}, {65429,3063,3},{65429,3057,3},{65428,3052,3},{65429,3048,3},{65429,3037,3}, {65423,3035,3},{65421,3032,3},{65414,3028,3},{65413,3025,3},{65409,3023,3}, {65408,3018,3},{65403,3017,3},{65399,3013,3},{65399,3008,3},{65396,3007,3}, {65393,3005,3},{65393,3003,3},{65389,2998,3},{65388,2993,3},{65391,2990,3}, {65398,2988,3},{65403,2985,3},{65404,2983,3},{65401,2980,3},{65399,2980,3}, {65401,2977,3},{65401,2973,3},{65398,2968,3},{65398,2960,3},{64379,3495,131}, {64388,3497,3},{64391,3493,3},{64398,3488,3},{64401,3487,3},{64403,3480,3}, {64401,3477,3},{64406,3473,3},{64408,3475,3},{64409,3473,3},{64416,3472,3}, {64418,3468,3},{64426,3462,3},{64434,3460,3},{64438,3460,3},{64444,3465,3}, {64458,3465,3},{64461,3468,3},{64464,3465,3},{64471,3465,3},{64474,3462,3}, {64478,3462,3},{64479,3458,3},{64484,3458,3},{64488,3460,3},{64491,3457,3}, {64496,3457,3},{64508,3458,3},{64513,3457,3},{64519,3455,3},{64526,3452,3}, {64529,3453,3},{64538,3452,3},{64554,3438,3},{64558,3433,3},{64563,3433,3}, {64578,3415,3},{64586,3407,3},{64588,3405,3},{64588,3400,3},{64581,3395,3}, {64576,3397,3},{64569,3395,3},{64566,3392,3},{64574,3380,3},{64578,3375,3}, {64578,3373,3},{64574,3370,3},{64574,3365,3},{64578,3358,3},{64574,3353,3}, {64574,3343,3},{64583,3340,3},{64588,3332,3},{64586,3327,3},{64588,3323,3}, {64584,3320,3},{64586,3318,3},{64586,3313,3},{64594,3303,3},{64599,3300,3}, {64596,3293,3},{64588,3295,3},{64588,3298,3},{64599,3285,3},{64603,3282,3}, {64603,3277,3},{64608,3275,3},{64609,3255,3},{64614,3250,3},{64619,3248,3}, {64623,3243,3},{64623,3227,3},{64624,3222,3},{64629,3217,3},{64629,3212,3}, {64633,3205,3},{64629,3198,3},{64634,3193,3},{64639,3193,3},{64643,3195,3}, {64644,3188,3},{64648,3178,3},{64646,3175,3},{64644,3172,3},{64646,3168,3}, {64654,3157,3},{64666,3157,3},{64669,3148,3},{64673,3147,3},{64673,3140,3}, {64678,3138,3},{64678,3137,3},{64676,3135,3},{64676,3132,3},{64674,3128,3}, {64678,3123,3},{64678,3122,3},{64676,3118,3},{64678,3117,3},{64681,3117,3}, {64683,3115,3},{64686,3113,3},{64693,3115,3},{64698,3112,3},{64703,3103,3}, {64706,3102,3},{64709,3098,3},{64713,3097,3},{64718,3095,3},{64719,3095,3}, {64719,3097,3},{64721,3097,3},{64724,3095,3},{64726,3092,3},{64734,3090,3}, {64739,3087,3},{64741,3085,3},{64746,3083,3},{64749,3080,3},{64758,3075,3}, {64761,3075,3},{64768,3072,3},{64771,3067,3},{64776,3065,3},{64778,3062,3}, {64781,3062,3},{64784,3058,3},{64786,3058,3},{64788,3060,3},{64793,3058,3}, {64801,3062,3},{64814,3055,3},{64818,3053,3},{64819,3053,3},{64824,3050,3}, {64826,3050,3},{64824,3053,3},{64826,3055,3},{64833,3055,3},{64834,3058,3}, {64839,3057,3},{64856,3040,3},{64861,3040,3},{64873,3032,3},{64874,3028,3}, {64889,3015,3},{64891,3007,3},{64886,2995,3},{64888,2995,3},{64891,2990,3}, {64899,2982,3},{64908,2975,3},{64909,2972,3},{64916,2973,3},{64924,2972,3}, {64931,2973,3},{64936,2978,3},{64936,2983,3},{64941,2988,3},{64944,2995,3}, {64948,2995,3},{64959,2993,3},{64966,2990,3},{64979,2985,3},{64991,2973,3}, {64994,2975,3},{65003,2978,3},{65009,2978,3},{65009,2980,3},{65013,2980,3}, {65014,2982,3},{65016,2982,3},{65018,2980,3},{65019,2982,3},{65026,2982,3}, {65031,2977,3},{65034,2978,3},{65039,2973,3},{65041,2968,3},{65043,2967,3}, {65044,2962,3},{65044,2960,3},{65046,2958,3},{65049,2962,3},{65051,2960,3}, {65058,2960,3},{65078,2965,3},{65091,2965,3},{65091,2967,3},{65089,2975,3}, {65094,2977,3},{65096,2980,3},{65099,2982,3},{65099,2985,3},{65103,2993,3}, {65106,2997,3},{65109,3003,3},{65113,3005,3},{65119,3007,3},{65123,3013,3}, {65128,3017,3},{65134,3022,3},{65143,3023,3},{65151,3030,3},{65158,3032,3}, {65159,3035,3},{65158,3040,3},{65166,3040,3},{65174,3045,3},{65181,3045,3}, {65186,3048,3},{65184,3052,3},{65188,3053,3},{65191,3063,3},{65194,3067,3}, {65198,3067,3},{65199,3062,3},{65203,3065,3},{65206,3073,3},{65208,3073,3}, {65206,3077,3},{65211,3083,3},{65214,3082,3},{65216,3085,3},{65221,3085,3}, {65224,3083,3},{65228,3083,3},{65231,3080,3},{65238,3085,3},{65238,3075,3}, {65238,3067,3},{65241,3065,3},{65246,3057,3},{65241,3050,3},{65241,3048,3}, {65246,3047,3},{65246,3045,3},{65249,3043,3},{65251,3042,3},{65256,3043,3}, {65258,3045,3},{65261,3043,3},{65264,3047,3},{65266,3048,3},{65271,3052,3}, {65268,3045,3},{65268,3043,3},{65271,3043,3},{65278,3048,3},{65291,3052,3}, {65296,3057,3},{65298,3058,3},{65296,3065,3},{65301,3070,3},{65298,3078,3}, {65301,3083,3},{65306,3085,3},{65318,3085,3},{65328,3090,3},{65343,3082,3}, {65356,3083,3},{65366,3082,3},{65369,3083,3},{65384,3075,3},{65393,3073,3}, {65398,3068,3},{65398,3063,3},{65401,3060,3},{65403,3057,3},{65409,3055,3}, {65414,3052,3},{65419,3052,3},{65419,3047,3},{65423,3048,3},{65426,3045,3}, {65429,3048,3},{65428,3052,3},{65429,3057,3},{65429,3063,3},{65429,3067,3}, {65434,3068,3},{65436,3075,3},{65436,3080,3},{65436,3087,3},{65436,3092,3}, {65436,3097,3},{65436,3103,3},{65436,3108,3},{65436,3113,3},{65436,3118,3}, {65436,3125,3},{65436,3130,3},{65436,3135,3},{65436,3142,3},{65436,3147,3}, {65436,3152,3},{65436,3157,3},{65436,3163,3},{65436,3168,3},{65436,3173,3}, {65436,3178,3},{65433,3177,3},{65431,3177,3},{65431,3180,3},{65438,3183,3}, {65433,3183,3},{65434,3185,3},{65433,3187,3},{65429,3185,3},{65426,3187,3}, {65423,3185,3},{65419,3187,3},{65411,3187,3},{65404,3185,3},{65401,3182,3}, {65388,3180,3},{65388,3178,3},{65389,3177,3},{65388,3175,3},{65386,3173,3}, {65381,3175,3},{65379,3175,3},{65374,3177,3},{65369,3172,3},{65364,3172,3}, {65346,3168,3},{65341,3163,3},{65334,3162,3},{65331,3162,3},{65333,3167,3}, {65336,3168,3},{65336,3170,3},{65331,3168,3},{65328,3170,3},{65324,3168,3}, {65321,3168,3},{65303,3163,3},{65299,3163,3},{65301,3170,3},{65303,3170,3}, {65303,3175,3},{65301,3175,3},{65299,3178,3},{65299,3175,3},{65296,3175,3}, {65294,3180,3},{65289,3180,3},{65286,3177,3},{65286,3172,3},{65281,3172,3}, {65281,3175,3},{65274,3175,3},{65273,3177,3},{65274,3180,3},{65274,3187,3}, {65274,3182,3},{65271,3182,3},{65271,3178,3},{65269,3177,3},{65268,3178,3}, {65264,3175,3},{65264,3178,3},{65263,3178,3},{65253,3178,3},{65253,3182,3}, {65256,3183,3},{65259,3185,3},{65264,3182,3},{65268,3185,3},{65266,3188,3}, {65264,3187,3},{65264,3190,3},{65273,3190,3},{65271,3190,3},{65271,3193,3}, {65268,3193,3},{65264,3197,3},{65259,3197,3},{65259,3198,3},{65259,3202,3}, {65264,3200,3},{65268,3200,3},{65268,3198,3},{65273,3197,3},{65276,3193,3}, {65276,3198,3},{65286,3198,3},{65288,3200,3},{65286,3202,3},{65288,3203,3}, {65283,3207,3},{65284,3207,3},{65286,3210,3},{65283,3212,3},{65281,3217,3}, {65286,3217,3},{65288,3215,3},{65289,3212,3},{65293,3210,3},{65293,3207,3}, {65296,3207,3},{65298,3207,3},{65299,3207,3},{65299,3212,3},{65298,3212,3}, {65298,3217,3},{65304,3220,3},{65304,3222,3},{65311,3222,3},{65309,3223,3}, {65308,3225,3},{65309,3232,3},{65304,3232,3},{65303,3235,3},{65303,3232,3}, {65301,3232,3},{65296,3233,3},{65296,3237,3},{65294,3237,3},{65294,3235,3}, {65293,3237,3},{65293,3243,3},{65289,3243,3},{65291,3248,3},{65289,3250,3}, {65291,3255,3},{65286,3255,3},{65284,3252,3},{65281,3250,3},{65279,3252,3}, {65288,3262,3},{65298,3265,3},{65296,3267,3},{65293,3265,3},{65288,3270,3}, {65284,3267,3},{65284,3268,3},{65288,3273,3},{65283,3273,3},{65286,3277,3}, {65288,3280,3},{65284,3283,3},{65279,3280,3},{65279,3283,3},{65278,3283,3}, {65276,3282,3},{65273,3282,3},{65271,3280,3},{65269,3282,3},{65268,3285,3}, {65264,3282,3},{65264,3287,3},{65261,3287,3},{65256,3285,3},{65253,3285,3}, {65249,3272,3},{65248,3272,3},{65248,3275,3},{65244,3280,3},{65243,3275,3}, {65238,3275,3},{65234,3275,3},{65239,3282,3},{65248,3283,3},{65251,3285,3}, {65253,3288,3},{65256,3290,3},{65251,3292,3},{65249,3295,3},{65248,3303,3}, {65251,3302,3},{65251,3297,3},{65253,3297,3},{65254,3293,3},{65256,3293,3}, {65258,3297,3},{65259,3292,3},{65264,3288,3},{65266,3288,3},{65268,3292,3}, {65273,3287,3},{65279,3288,3},{65279,3292,3},{65288,3287,3},{65289,3290,3}, {65291,3290,3},{65294,3292,3},{65298,3295,3},{65298,3302,3},{65298,3310,3}, {65294,3313,3},{65289,3313,3},{65289,3317,3},{65284,3320,3},{65286,3330,3}, {65284,3333,3},{65286,3333,3},{65284,3335,3},{65283,3335,3},{65283,3338,3}, {65281,3340,3},{65281,3343,3},{65283,3342,3},{65283,3345,3},{65286,3347,3}, {65289,3340,3},{65291,3347,3},{65291,3353,3},{65293,3353,3},{65294,3350,3}, {65298,3353,3},{65299,3360,3},{65304,3365,3},{65306,3368,3},{65308,3372,3}, {65308,3375,3},{65314,3383,3},{65323,3382,3},{65328,3377,3},{65324,3368,3}, {65319,3362,3},{65318,3360,3},{65321,3343,3},{65319,3337,3},{65323,3333,3}, {65324,3327,3},{65323,3322,3},{65324,3320,3},{65328,3322,3},{65331,3322,3}, {65329,3330,3},{65333,3328,3},{65334,3327,3},{65336,3328,3},{65334,3330,3}, {65331,3332,3},{65334,3333,3},{65331,3338,3},{65333,3340,3},{65338,3338,3}, {65339,3340,3},{65334,3348,3},{65333,3355,3},{65338,3357,3},{65338,3353,3}, {65339,3353,3},{65341,3347,3},{65343,3348,3},{65344,3348,3},{65346,3345,3}, {65348,3347,3},{65348,3345,3},{65344,3335,3},{65343,3333,3},{65343,3330,3}, {65344,3328,3},{65344,3330,3},{65351,3332,3},{65356,3338,3},{65356,3345,3}, {65353,3345,3},{65351,3347,3},{65353,3352,3},{65354,3353,3},{65354,3355,3}, {65359,3357,3},{65358,3365,3},{65359,3365,3},{65368,3353,3},{65368,3370,3}, {65373,3372,3},{65373,3367,3},{65374,3368,3},{65376,3368,3},{65378,3365,3}, {65379,3365,3},{65379,3362,3},{65381,3367,3},{65383,3368,3},{65384,3368,3}, {65388,3365,3},{65389,3368,3},{65386,3372,3},{65388,3378,3},{65389,3380,3}, {65384,3383,3},{65384,3388,3},{65383,3392,3},{65384,3395,3},{65386,3393,3}, {65388,3393,3},{65386,3390,3},{65389,3388,3},{65389,3387,3},{65393,3385,3}, {65393,3378,3},{65394,3378,3},{65398,3380,3},{65396,3382,3},{65394,3385,3}, {65398,3383,3},{65398,3382,3},{65399,3382,3},{65403,3380,3},{65404,3390,3}, {65403,3397,3},{65401,3398,3},{65399,3397,3},{65399,3398,3},{65403,3398,3}, {65406,3393,3},{65408,3393,3},{65408,3390,3},{65411,3387,3},{65416,3392,3}, {65419,3398,3},{65423,3400,3},{65424,3398,3},{65426,3398,3},{65426,3403,3}, {65429,3407,3},{65433,3407,3},{65433,3408,3},{65429,3412,3},{65426,3417,3}, {65424,3422,3},{65421,3427,3},{65418,3432,3},{65416,3437,3},{65413,3442,3}, {65411,3447,3},{65408,3452,3},{65404,3457,3},{65403,3462,3},{65399,3467,3}, {65396,3472,3},{65394,3475,3},{65391,3480,3},{65388,3485,3},{65386,3490,3}, {65383,3495,3},{65381,3500,3},{65378,3505,3},{65374,3510,3},{65373,3515,3}, {65369,3520,3},{65366,3525,3},{65364,3530,3},{65361,3535,3},{65358,3540,3}, {65356,3543,3},{65353,3548,3},{65351,3553,3},{65348,3558,3},{65344,3563,3}, {65343,3568,3},{65339,3573,3},{65336,3578,3},{65334,3583,3},{65331,3588,3}, {65328,3593,3},{65326,3598,3},{65323,3603,3},{65321,3608,3},{65318,3613,3}, {65314,3617,3},{65313,3622,3},{65309,3627,3},{65308,3630,3},{65306,3633,3}, {65303,3640,3},{65299,3645,3},{65296,3650,3},{65293,3657,3},{65289,3662,3}, {65288,3667,3},{65284,3673,3},{65281,3678,3},{65278,3683,3},{65274,3690,3}, {65271,3695,3},{65269,3700,3},{65266,3705,3},{65263,3712,3},{65259,3717,3}, {65256,3722,3},{65253,3728,3},{65251,3733,3},{65248,3738,3},{65244,3743,3}, {65243,3750,3},{65239,3755,3},{65236,3760,3},{65233,3765,3},{65231,3768,3}, {65204,3772,3},{65204,3768,3},{65201,3768,3},{65201,3767,3},{65194,3760,3}, {65191,3760,3},{65191,3763,3},{65186,3762,3},{65186,3768,3},{65184,3770,3}, {65183,3773,3},{65171,3778,3},{65168,3782,3},{65164,3787,3},{65163,3790,3}, {65159,3795,3},{65156,3798,3},{65153,3803,3},{65151,3807,3},{65148,3812,3}, {65144,3815,3},{65141,3820,3},{65138,3823,3},{65136,3828,3},{65133,3832,3}, {65129,3837,3},{65126,3840,3},{65123,3845,3},{65121,3848,3},{65118,3853,3}, {65114,3857,3},{65111,3862,3},{65109,3865,3},{65106,3870,3},{65103,3873,3}, {65099,3878,3},{65096,3882,3},{65094,3887,3},{65091,3890,3},{65088,3893,3}, {65084,3898,3},{65083,3902,3},{65079,3907,3},{65076,3910,3},{65073,3915,3}, {65069,3918,3},{65069,3920,3},{65068,3918,3},{65068,3922,3},{65061,3922,3}, {65059,3920,3},{65061,3918,3},{65058,3917,3},{65058,3922,3},{65051,3922,3}, {65044,3918,3},{65043,3917,3},{65043,3915,3},{65049,3917,3},{65051,3917,3}, {65044,3913,3},{65044,3912,3},{65041,3913,3},{65036,3912,3},{65034,3913,3}, {65034,3910,3},{65031,3908,3},{65029,3910,3},{65029,3912,3},{65026,3913,3}, {65021,3908,3},{65018,3908,3},{65016,3907,3},{65013,3903,3},{65011,3905,3}, {65014,3907,3},{65013,3908,3},{64998,3902,3},{64996,3898,3},{64993,3897,3}, {64991,3900,3},{64981,3897,3},{64971,3890,3},{64964,3890,3},{64953,3883,3}, {64943,3882,3},{64936,3878,3},{64931,3878,3},{64923,3882,3},{64919,3887,3}, {64904,3885,3},{64898,3887,3},{64896,3890,3},{64893,3892,3},{64889,3897,3}, {64888,3903,3},{64889,3903,3},{64891,3898,3},{64888,3905,3},{64881,3912,3}, {64878,3915,3},{64874,3917,3},{64873,3920,3},{64863,3925,3},{64861,3927,3}, {64863,3928,3},{64861,3928,3},{64854,3928,3},{64851,3928,3},{64851,3930,3}, {64854,3930,3},{64853,3933,3},{64851,3937,3},{64849,3947,3},{64836,3955,3}, {64831,3953,3},{64823,3955,3},{64823,3952,3},{64818,3950,3},{64818,3948,3}, {64821,3948,3},{64818,3943,3},{64813,3942,3},{64811,3940,3},{64809,3938,3}, {64809,3937,3},{64806,3937,3},{64804,3932,3},{64803,3935,3},{64799,3935,3}, {64793,3933,3},{64789,3930,3},{64778,3927,3},{64768,3930,3},{64764,3928,3}, {64759,3930,3},{64758,3928,3},{64754,3925,3},{64754,3928,3},{64759,3932,3}, {64763,3932,3},{64761,3937,3},{64758,3933,3},{64758,3940,3},{64754,3945,3}, {64749,3943,3},{64746,3942,3},{64743,3943,3},{64736,3943,3},{64736,3945,3}, {64738,3945,3},{64734,3945,3},{64723,3938,3},{64716,3937,3},{64716,3935,3}, {64708,3935,3},{64708,3933,3},{64706,3933,3},{64706,3932,3},{64709,3930,3}, {64706,3930,3},{64704,3928,3},{64698,3930,3},{64684,3930,3},{64681,3935,3}, {64674,3937,3},{64669,3937,3},{64666,3938,3},{64666,3937,3},{64663,3943,3}, {64656,3947,3},{64654,3950,3},{64646,3952,3},{64644,3957,3},{64644,3952,3}, {64646,3950,3},{64649,3943,3},{64649,3940,3},{64644,3938,3},{64646,3947,3}, {64644,3945,3},{64643,3945,3},{64643,3950,3},{64638,3948,3},{64634,3950,3}, {64631,3950,3},{64629,3950,3},{64628,3950,3},{64623,3950,3},{64626,3957,3}, {64616,3965,3},{64609,3963,3},{64608,3965,3},{64598,3965,3},{64596,3962,3}, {64594,3960,3},{64596,3957,3},{64591,3957,3},{64591,3960,3},{64593,3962,3}, {64591,3965,3},{64589,3965,3},{64586,3968,3},{64576,3970,3},{64574,3973,3}, {64573,3972,3},{64571,3972,3},{64569,3975,3},{64566,3973,3},{64566,3975,3}, {64561,3970,3},{64561,3975,3},{64551,3980,3},{64548,3980,3},{64548,3975,3}, {64544,3978,3},{64543,3978,3},{64539,3970,3},{64536,3973,3},{64531,3968,3}, {64533,3973,3},{64538,3975,3},{64538,3982,3},{64534,3985,3},{64534,3988,3}, {64529,3993,3},{64526,3993,3},{64523,3997,3},{64514,3998,3},{64518,4000,3}, {64523,3998,3},{64523,4000,3},{64518,4013,3},{64516,4012,3},{64511,4013,3}, {64509,4012,3},{64508,4012,3},{64509,4013,3},{64508,4017,3},{64509,4017,3}, {64509,4018,3},{64506,4023,3},{64508,4023,3},{64508,4027,3},{64511,4020,3}, {64516,4023,3},{64513,4025,3},{64509,4030,3},{64501,4033,3},{64501,4037,3}, {64499,4040,3},{64503,4043,3},{64504,4042,3},{64504,4038,3},{64506,4042,3}, {64501,4045,3},{64498,4042,3},{64496,4043,3},{64493,4042,3},{64488,4043,3}, {64486,4042,3},{64479,4033,3},{64476,4023,3},{64469,4017,3},{64459,4003,3}, {64456,4000,3},{64453,3990,3},{64444,3977,3},{64441,3968,3},{64441,3963,3}, {64436,3952,3},{64429,3943,3},{64426,3935,3},{64419,3927,3},{64419,3920,3}, {64421,3913,3},{64419,3903,3},{64419,3890,3},{64409,3877,3},{64409,3870,3}, {64408,3865,3},{64403,3860,3},{64399,3853,3},{64394,3850,3},{64398,3838,3}, {64408,3827,3},{64409,3823,3},{64408,3815,3},{64411,3810,3},{64408,3793,3}, {64403,3787,3},{64394,3785,3},{64388,3782,3},{64384,3782,3},{64381,3780,3}, {64378,3770,3},{64371,3765,3},{64373,3758,3},{64369,3753,3},{64363,3745,3}, {64364,3740,3},{64368,3735,3},{64366,3728,3},{64369,3713,3},{64373,3708,3}, {64379,3703,3},{64378,3700,3},{64376,3690,3},{64379,3687,3},{64379,3683,3}, {64369,3673,3},{64366,3668,3},{64364,3668,3},{64364,3660,3},{64363,3655,3}, {64366,3650,3},{64368,3648,3},{64368,3638,3},{64366,3637,3},{64366,3618,3}, {64369,3617,3},{64376,3617,3},{64379,3613,3},{64384,3603,3},{64386,3597,3}, {64389,3597,3},{64393,3595,3},{64393,3590,3},{64394,3583,3},{64394,3582,3}, {64388,3577,3},{64388,3570,3},{64384,3570,3},{64379,3567,3},{64378,3565,3}, {64376,3562,3},{64376,3557,3},{64376,3553,3},{64374,3553,3},{64378,3550,3}, {64376,3548,3},{64376,3543,3},{64379,3542,3},{64379,3495,3},{65263,2902,131}, {65266,2898,3},{65268,2893,3},{65271,2888,3},{65279,2888,3},{65284,2885,3}, {65288,2888,3},{65291,2887,3},{65296,2890,3},{65298,2898,3},{65299,2900,3}, {65306,2902,3},{65306,2903,3},{65299,2907,3},{65298,2905,3},{65296,2905,3}, {65304,2908,3},{65304,2910,3},{65308,2912,3},{65303,2912,3},{65309,2915,3}, {65311,2917,3},{65309,2918,3},{65311,2920,3},{65313,2918,3},{65316,2918,3}, {65316,2922,3},{65319,2920,3},{65321,2923,3},{65319,2928,3},{65321,2927,3}, {65323,2925,3},{65326,2925,3},{65328,2927,3},{65324,2927,3},{65323,2927,3}, {65329,2928,3},{65326,2932,3},{65329,2932,3},{65329,2933,3},{65333,2933,3}, {65331,2937,3},{65333,2937,3},{65336,2933,3},{65338,2935,3},{65338,2933,3}, {65343,2932,3},{65343,2930,3},{65346,2928,3},{65353,2928,3},{65358,2927,3}, {65363,2927,3},{65363,2925,3},{65366,2925,3},{65368,2922,3},{65373,2927,3}, {65376,2932,3},{65384,2937,3},{65386,2945,3},{65391,2950,3},{65398,2960,3}, {65398,2968,3},{65401,2973,3},{65401,2977,3},{65399,2980,3},{65401,2980,3}, {65404,2983,3},{65403,2985,3},{65398,2988,3},{65391,2990,3},{65388,2993,3}, {65389,2998,3},{65393,3003,3},{65393,3005,3},{65396,3007,3},{65399,3008,3}, {65399,3013,3},{65403,3017,3},{65408,3018,3},{65409,3023,3},{65413,3025,3}, {65414,3028,3},{65421,3032,3},{65423,3035,3},{65429,3037,3},{65429,3048,3}, {65426,3045,3},{65423,3048,3},{65419,3047,3},{65419,3052,3},{65414,3052,3}, {65409,3055,3},{65403,3057,3},{65401,3060,3},{65398,3063,3},{65398,3068,3}, {65393,3073,3},{65384,3075,3},{65369,3083,3},{65366,3082,3},{65356,3083,3}, {65343,3082,3},{65328,3090,3},{65318,3085,3},{65306,3085,3},{65301,3083,3}, {65298,3078,3},{65301,3070,3},{65296,3065,3},{65298,3058,3},{65296,3057,3}, {65298,3050,3},{65301,3047,3},{65306,3045,3},{65304,3042,3},{65306,3038,3}, {65303,3035,3},{65301,3028,3},{65303,3022,3},{65299,3022,3},{65293,3015,3}, {65294,3010,3},{65303,3002,3},{65303,2998,3},{65304,2995,3},{65299,2993,3}, {65288,2995,3},{65284,2992,3},{65271,2992,3},{65261,2987,3},{65261,2985,3}, {65259,2982,3},{65259,2977,3},{65256,2973,3},{65256,2970,3},{65258,2963,3}, {65256,2960,3},{65256,2957,3},{65253,2953,3},{65256,2945,3},{65253,2937,3}, {65256,2935,3},{65259,2933,3},{65264,2935,3},{65268,2933,3},{65271,2933,3}, {65274,2918,3},{65278,2913,3},{65276,2907,3},{65269,2905,3},{65266,2905,3}, {65263,2902,3},{65091,2965,131},{65093,2965,3},{65094,2967,3},{65098,2965,3}, {65101,2960,3},{65111,2955,3},{65116,2953,3},{65119,2950,3},{65126,2948,3}, {65134,2943,3},{65139,2943,3},{65146,2938,3},{65154,2937,3},{65159,2933,3}, {65178,2935,3},{65183,2933,3},{65198,2935,3},{65201,2932,3},{65203,2920,3}, {65206,2920,3},{65209,2923,3},{65213,2922,3},{65214,2922,3},{65221,2922,3}, {65224,2923,3},{65229,2923,3},{65234,2922,3},{65234,2918,3},{65236,2915,3}, {65239,2913,3},{65244,2908,3},{65248,2908,3},{65249,2905,3},{65254,2905,3}, {65254,2898,3},{65259,2898,3},{65263,2902,3},{65266,2905,3},{65269,2905,3}, {65276,2907,3},{65278,2913,3},{65274,2918,3},{65271,2933,3},{65268,2933,3}, {65264,2935,3},{65259,2933,3},{65256,2935,3},{65253,2937,3},{65256,2945,3}, {65253,2953,3},{65256,2957,3},{65256,2960,3},{65258,2963,3},{65256,2970,3}, {65256,2973,3},{65259,2977,3},{65259,2982,3},{65261,2985,3},{65261,2987,3}, {65271,2992,3},{65284,2992,3},{65288,2995,3},{65299,2993,3},{65304,2995,3}, {65303,2998,3},{65303,3002,3},{65294,3010,3},{65293,3015,3},{65299,3022,3}, {65303,3022,3},{65301,3028,3},{65303,3035,3},{65306,3038,3},{65304,3042,3}, {65306,3045,3},{65301,3047,3},{65298,3050,3},{65296,3057,3},{65291,3052,3}, {65278,3048,3},{65271,3043,3},{65268,3043,3},{65268,3045,3},{65271,3052,3}, {65266,3048,3},{65264,3047,3},{65261,3043,3},{65258,3045,3},{65256,3043,3}, {65251,3042,3},{65249,3043,3},{65246,3045,3},{65246,3047,3},{65241,3048,3}, {65241,3050,3},{65246,3057,3},{65241,3065,3},{65238,3067,3},{65238,3075,3}, {65238,3085,3},{65231,3080,3},{65228,3083,3},{65224,3083,3},{65221,3085,3}, {65216,3085,3},{65214,3082,3},{65211,3083,3},{65206,3077,3},{65208,3073,3}, {65206,3073,3},{65203,3065,3},{65199,3062,3},{65198,3067,3},{65194,3067,3}, {65191,3063,3},{65188,3053,3},{65184,3052,3},{65186,3048,3},{65181,3045,3}, {65174,3045,3},{65166,3040,3},{65158,3040,3},{65159,3035,3},{65158,3032,3}, {65151,3030,3},{65143,3023,3},{65134,3022,3},{65128,3017,3},{65123,3013,3}, {65119,3007,3},{65113,3005,3},{65109,3003,3},{65106,2997,3},{65103,2993,3}, {65099,2985,3},{65099,2982,3},{65096,2980,3},{65094,2977,3},{65089,2975,3}, {65091,2967,3},{65091,2965,3},{62853,3213,131},{62886,3213,3},{62896,3207,3}, {62909,3207,3},{62919,3210,3},{62933,3207,3},{62934,3208,3},{62938,3200,3}, {62941,3197,3},{62954,3192,3},{62969,3198,3},{62971,3202,3},{62983,3200,3}, {62984,3198,3},{62994,3198,3},{62998,3202,3},{63033,3202,3},{63069,3200,3}, {63089,3202,3},{63104,3197,3},{63119,3188,3},{63143,3188,3},{63151,3177,3}, {63168,3168,3},{63174,3168,3},{63188,3155,3},{63194,3153,3},{63199,3155,3}, {63206,3155,3},{63211,3155,3},{63218,3157,3},{63223,3155,3},{63228,3152,3}, {63234,3150,3},{63239,3148,3},{63244,3147,3},{63249,3145,3},{63256,3143,3}, {63261,3142,3},{63266,3140,3},{63271,3138,3},{63278,3137,3},{63283,3133,3}, {63288,3132,3},{63294,3130,3},{63298,3135,3},{63303,3140,3},{63306,3145,3}, {63311,3150,3},{63314,3153,3},{63319,3158,3},{63323,3162,3},{63328,3167,3}, {63333,3170,3},{63336,3175,3},{63341,3178,3},{63344,3183,3},{63349,3187,3}, {63353,3192,3},{63358,3195,3},{63363,3200,3},{63366,3203,3},{63371,3208,3}, {63374,3212,3},{63379,3217,3},{63384,3220,3},{63388,3225,3},{63393,3228,3}, {63396,3233,3},{63401,3237,3},{63404,3242,3},{63401,3250,3},{63416,3238,3}, {63419,3240,3},{63423,3237,3},{63436,3248,3},{63444,3252,3},{63469,3248,3}, {63476,3250,3},{63481,3255,3},{63481,3267,3},{63494,3275,3},{63501,3282,3}, {63504,3283,3},{63509,3287,3},{63513,3288,3},{63518,3287,3},{63519,3290,3}, {63526,3290,3},{63528,3295,3},{63533,3295,3},{63533,3303,3},{63543,3302,3}, {63549,3303,3},{63554,3303,3},{63558,3307,3},{63563,3297,3},{63568,3298,3}, {63571,3297,3},{63568,3292,3},{63566,3292,3},{63568,3285,3},{63571,3283,3}, {63573,3285,3},{63586,3285,3},{63589,3283,3},{63588,3280,3},{63589,3278,3}, {63599,3278,3},{63608,3285,3},{63614,3285,3},{63626,3288,3},{63629,3285,3}, {63634,3283,3},{63634,3272,3},{63641,3270,3},{63644,3273,3},{63644,3272,3}, {63653,3270,3},{63658,3282,3},{63658,3290,3},{63659,3292,3},{63668,3295,3}, {63679,3288,3},{63683,3288,3},{63689,3302,3},{63691,3302,3},{63696,3300,3}, {63694,3302,3},{63698,3303,3},{63699,3305,3},{63701,3307,3},{63711,3297,3}, {63718,3300,3},{63731,3295,3},{63736,3297,3},{63738,3295,3},{63739,3297,3}, {63743,3297,3},{63748,3295,3},{63754,3297,3},{63756,3302,3},{63761,3303,3}, {63763,3302,3},{63774,3305,3},{63778,3303,3},{63781,3297,3},{63786,3295,3}, {63789,3298,3},{63801,3305,3},{63806,3300,3},{63821,3297,3},{63843,3285,3}, {63851,3293,3},{63864,3298,3},{63866,3293,3},{63864,3290,3},{63864,3277,3}, {63868,3270,3},{63876,3270,3},{63889,3238,3},{63893,3225,3},{63891,3207,3}, {63894,3190,3},{63901,3190,3},{63904,3182,3},{63906,3182,3},{63914,3172,3}, {63916,3155,3},{63918,3152,3},{63919,3148,3},{63919,3143,3},{63921,3142,3}, {63921,3140,3},{63923,3140,3},{63926,3135,3},{63929,3133,3},{63933,3132,3}, {63934,3128,3},{63936,3113,3},{63934,3110,3},{63934,3107,3},{63929,3102,3}, {63929,3100,3},{63931,3098,3},{63936,3093,3},{63936,3085,3},{63936,3080,3}, {63936,3075,3},{63936,3070,3},{63936,3063,3},{63936,3058,3},{63936,3053,3}, {63936,3048,3},{63936,3042,3},{63941,3042,3},{63946,3042,3},{63951,3042,3}, {63956,3042,3},{63963,3042,3},{63968,3042,3},{63973,3042,3},{63978,3038,3}, {63981,3035,3},{63988,3038,3},{63991,3037,3},{64003,3037,3},{64009,3028,3}, {64014,3025,3},{64026,3022,3},{64038,3022,3},{64038,3025,3},{64039,3030,3}, {64039,3035,3},{64044,3043,3},{64048,3050,3},{64049,3055,3},{64051,3060,3}, {64053,3067,3},{64054,3072,3},{64058,3077,3},{64061,3087,3},{64074,3148,3}, {64086,3170,3},{64088,3182,3},{64093,3192,3},{64096,3205,3},{64101,3213,3}, {64106,3237,3},{64108,3245,3},{64109,3250,3},{64111,3255,3},{64113,3262,3}, {64116,3267,3},{64118,3272,3},{64119,3278,3},{64121,3283,3},{64123,3288,3}, {64124,3295,3},{64128,3300,3},{64129,3305,3},{64131,3312,3},{64133,3317,3}, {64134,3322,3},{64129,3330,3},{64121,3330,3},{64114,3335,3},{64114,3338,3}, {64094,3348,3},{64093,3355,3},{64088,3357,3},{64086,3362,3},{64079,3363,3}, {64076,3368,3},{64084,3370,3},{64088,3373,3},{64083,3382,3},{64088,3393,3}, {64086,3407,3},{64089,3412,3},{64091,3418,3},{64089,3422,3},{64094,3437,3}, {64093,3440,3},{64081,3447,3},{64078,3453,3},{64069,3455,3},{64064,3455,3}, {64054,3458,3},{64046,3458,3},{64036,3462,3},{64021,3458,3},{64011,3462,3}, {64004,3458,3},{64001,3453,3},{63994,3452,3},{63991,3447,3},{63986,3445,3}, {63974,3445,3},{63966,3442,3},{63964,3438,3},{63961,3437,3},{63958,3432,3}, {63953,3427,3},{63944,3425,3},{63941,3433,3},{63929,3443,3},{63926,3443,3}, {63923,3440,3},{63916,3440,3},{63908,3445,3},{63904,3457,3},{63896,3460,3}, {63891,3465,3},{63886,3468,3},{63883,3477,3},{63878,3478,3},{63874,3483,3}, {63868,3487,3},{63866,3492,3},{63863,3493,3},{63861,3498,3},{63856,3500,3}, {63854,3503,3},{63854,3512,3},{63853,3513,3},{63841,3513,3},{63834,3505,3}, {63831,3505,3},{63828,3510,3},{63823,3508,3},{63823,3528,3},{63826,3530,3}, {63829,3530,3},{63833,3530,3},{63838,3532,3},{63841,3527,3},{63854,3530,3}, {63858,3528,3},{63866,3528,3},{63871,3523,3},{63874,3517,3},{63881,3513,3}, {63889,3525,3},{63896,3525,3},{63899,3528,3},{63903,3527,3},{63913,3528,3}, {63923,3540,3},{63924,3543,3},{63923,3548,3},{63919,3550,3},{63919,3553,3}, {63923,3555,3},{63923,3560,3},{63924,3567,3},{63924,3572,3},{63929,3578,3}, {63934,3582,3},{63941,3582,3},{63944,3583,3},{63994,3587,3},{64018,3580,3}, {64048,3592,3},{64048,3588,3},{64071,3588,3},{64109,3555,3},{64121,3548,3}, {64151,3520,3},{64168,3510,3},{64186,3487,3},{64188,3487,3},{64194,3485,3}, {64198,3487,3},{64204,3478,3},{64214,3482,3},{64219,3480,3},{64228,3482,3}, {64236,3478,3},{64241,3475,3},{64249,3477,3},{64253,3478,3},{64256,3478,3}, {64259,3480,3},{64261,3482,3},{64266,3482,3},{64266,3480,3},{64271,3480,3}, {64276,3477,3},{64283,3475,3},{64288,3470,3},{64293,3470,3},{64296,3470,3}, {64306,3470,3},{64309,3472,3},{64318,3470,3},{64324,3477,3},{64326,3480,3}, {64329,3482,3},{64331,3487,3},{64333,3488,3},{64341,3490,3},{64349,3493,3}, {64356,3497,3},{64364,3495,3},{64369,3497,3},{64379,3495,3},{64379,3542,3}, {64376,3543,3},{64376,3548,3},{64378,3550,3},{64374,3553,3},{64376,3553,3}, {64376,3557,3},{64376,3562,3},{64378,3565,3},{64379,3567,3},{64384,3570,3}, {64388,3570,3},{64388,3577,3},{64394,3582,3},{64394,3583,3},{64393,3590,3}, {64393,3595,3},{64389,3597,3},{64386,3597,3},{64384,3603,3},{64379,3613,3}, {64376,3617,3},{64369,3617,3},{64366,3618,3},{64366,3637,3},{64368,3638,3}, {64368,3648,3},{64366,3650,3},{64363,3655,3},{64364,3660,3},{64364,3668,3}, {64366,3668,3},{64369,3673,3},{64379,3683,3},{64379,3687,3},{64376,3690,3}, {64378,3700,3},{64379,3703,3},{64373,3708,3},{64369,3713,3},{64366,3728,3}, {64368,3735,3},{64364,3740,3},{64363,3745,3},{64369,3753,3},{64373,3758,3}, {64371,3765,3},{64378,3770,3},{64381,3780,3},{64384,3782,3},{64388,3782,3}, {64394,3785,3},{64403,3787,3},{64408,3793,3},{64411,3810,3},{64408,3815,3}, {64409,3823,3},{64408,3827,3},{64398,3838,3},{64394,3850,3},{64399,3853,3}, {64403,3860,3},{64408,3865,3},{64409,3870,3},{64409,3877,3},{64419,3890,3}, {64419,3903,3},{64421,3913,3},{64419,3920,3},{64419,3927,3},{64426,3935,3}, {64429,3943,3},{64436,3952,3},{64441,3963,3},{64441,3968,3},{64444,3977,3}, {64453,3990,3},{64456,4000,3},{64459,4003,3},{64469,4017,3},{64476,4023,3}, {64479,4033,3},{64486,4042,3},{64488,4043,3},{64489,4045,3},{64488,4052,3}, {64488,4053,3},{64483,4057,3},{64481,4055,3},{64481,4052,3},{64478,4053,3}, {64479,4055,3},{64478,4060,3},{64471,4058,3},{64468,4065,3},{64466,4063,3}, {64468,4058,3},{64459,4048,3},{64456,4048,3},{64458,4052,3},{64453,4062,3}, {64449,4062,3},{64446,4053,3},{64441,4050,3},{64433,4050,3},{64433,4053,3}, {64434,4053,3},{64434,4057,3},{64433,4057,3},{64421,4050,3},{64416,4050,3}, {64411,4043,3},{64404,4038,3},{64404,4035,3},{64399,4037,3},{64401,4038,3}, {64396,4043,3},{64398,4047,3},{64394,4048,3},{64393,4047,3},{64384,4045,3}, {64381,4042,3},{64376,4045,3},{64371,4042,3},{64369,4045,3},{64363,4045,3}, {64361,4047,3},{64354,4047,3},{64353,4048,3},{64353,4052,3},{64344,4048,3}, {64336,4053,3},{64333,4052,3},{64328,4052,3},{64323,4050,3},{64316,4052,3}, {64311,4050,3},{64313,4047,3},{64309,4045,3},{64311,4047,3},{64308,4050,3}, {64304,4052,3},{64298,4050,3},{64298,4055,3},{64296,4057,3},{64293,4052,3}, {64286,4047,3},{64283,4057,3},{64276,4057,3},{64273,4058,3},{64273,4062,3}, {64271,4062,3},{64269,4062,3},{64271,4057,3},{64266,4057,3},{64264,4062,3}, {64263,4062,3},{64259,4065,3},{64258,4065,3},{64256,4062,3},{64256,4058,3}, {64258,4057,3},{64258,4055,3},{64254,4057,3},{64254,4052,3},{64251,4055,3}, {64246,4053,3},{64244,4052,3},{64248,4052,3},{64248,4048,3},{64243,4042,3}, {64239,4042,3},{64234,4047,3},{64233,4048,3},{64234,4052,3},{64236,4053,3}, {64238,4053,3},{64239,4050,3},{64239,4058,3},{64238,4060,3},{64228,4057,3}, {64219,4057,3},{64209,4057,3},{64206,4053,3},{64204,4053,3},{64208,4057,3}, {64199,4057,3},{64201,4058,3},{64198,4058,3},{64193,4055,3},{64186,4053,3}, {64184,4053,3},{64178,4060,3},{64176,4057,3},{64171,4053,3},{64166,4055,3}, {64164,4057,3},{64146,4060,3},{64141,4063,3},{64134,4065,3},{64128,4065,3}, {64128,4060,3},{64123,4062,3},{64119,4053,3},{64114,4057,3},{64113,4057,3}, {64113,4058,3},{64114,4058,3},{64114,4060,3},{64113,4058,3},{64111,4060,3}, {64109,4058,3},{64109,4060,3},{64109,4062,3},{64114,4063,3},{64118,4070,3}, {64116,4072,3},{64111,4072,3},{64108,4075,3},{64103,4073,3},{64099,4067,3}, {64103,4063,3},{64091,4065,3},{64091,4063,3},{64089,4063,3},{64089,4065,3}, {64086,4062,3},{64086,4063,3},{64079,4063,3},{64083,4067,3},{64093,4068,3}, {64096,4077,3},{64096,4080,3},{64091,4083,3},{64086,4083,3},{64084,4077,3}, {64081,4077,3},{64081,4078,3},{64084,4080,3},{64084,4083,3},{64081,4083,3}, {64074,4080,3},{64066,4085,3},{64058,4083,3},{64056,4083,3},{64053,4078,3}, {64048,4073,3},{64046,4067,3},{64049,4065,3},{64049,4063,3},{64044,4067,3}, {64043,4068,3},{64044,4070,3},{64043,4077,3},{64036,4078,3},{64036,4070,3}, {64039,4067,3},{64036,4065,3},{64033,4070,3},{64028,4072,3},{64028,4063,3}, {64023,4060,3},{64023,4053,3},{64018,4052,3},{64016,4058,3},{64021,4062,3}, {64018,4067,3},{64011,4068,3},{64008,4067,3},{64001,4062,3},{63998,4062,3}, {63991,4057,3},{63988,4057,3},{63988,4058,3},{63984,4057,3},{63983,4053,3}, {63983,4050,3},{63979,4048,3},{63974,4043,3},{63964,4037,3},{63951,4023,3}, {63944,4018,3},{63941,4012,3},{63938,4012,3},{63936,4007,3},{63934,4008,3}, {63939,4013,3},{63936,4013,3},{63928,4010,3},{63924,4007,3},{63919,4003,3}, {63913,3998,3},{63913,3988,3},{63906,3978,3},{63894,3982,3},{63893,3985,3}, {63889,3980,3},{63891,3978,3},{63891,3975,3},{63889,3977,3},{63888,3972,3}, {63883,3970,3},{63881,3967,3},{63861,3930,3},{63853,3920,3},{63849,3917,3}, {63848,3915,3},{63849,3913,3},{63846,3913,3},{63846,3912,3},{63844,3908,3}, {63843,3908,3},{63843,3913,3},{63836,3908,3},{63836,3898,3},{63833,3890,3}, {63829,3872,3},{63833,3867,3},{63831,3868,3},{63829,3867,3},{63829,3868,3}, {63828,3868,3},{63826,3860,3},{63829,3858,3},{63824,3857,3},{63823,3853,3}, {63826,3852,3},{63824,3850,3},{63823,3850,3},{63823,3852,3},{63821,3850,3}, {63813,3825,3},{63806,3815,3},{63809,3813,3},{63816,3813,3},{63818,3812,3}, {63814,3812,3},{63818,3808,3},{63811,3813,3},{63808,3812,3},{63808,3813,3}, {63804,3812,3},{63799,3792,3},{63793,3778,3},{63789,3773,3},{63789,3770,3}, {63791,3772,3},{63791,3770,3},{63788,3768,3},{63784,3762,3},{63783,3757,3}, {63781,3755,3},{63776,3743,3},{63769,3738,3},{63771,3735,3},{63768,3733,3}, {63768,3728,3},{63764,3728,3},{63763,3723,3},{63761,3722,3},{63763,3718,3}, {63759,3720,3},{63748,3708,3},{63734,3698,3},{63736,3698,3},{63741,3692,3}, {63748,3690,3},{63748,3683,3},{63746,3682,3},{63748,3687,3},{63734,3690,3}, {63733,3695,3},{63729,3697,3},{63719,3690,3},{63716,3688,3},{63718,3683,3}, {63716,3680,3},{63713,3678,3},{63716,3685,3},{63706,3678,3},{63698,3668,3}, {63686,3657,3},{63686,3655,3},{63683,3655,3},{63683,3652,3},{63683,3650,3}, {63681,3652,3},{63681,3647,3},{63678,3648,3},{63673,3643,3},{63666,3642,3}, {63664,3640,3},{63666,3640,3},{63668,3638,3},{63666,3638,3},{63661,3638,3}, {63663,3640,3},{63659,3642,3},{63656,3640,3},{63656,3635,3},{63658,3628,3}, {63666,3623,3},{63659,3623,3},{63653,3627,3},{63649,3625,3},{63646,3627,3}, {63648,3622,3},{63646,3613,3},{63651,3612,3},{63654,3613,3},{63656,3612,3}, {63654,3610,3},{63644,3603,3},{63643,3598,3},{63648,3598,3},{63641,3595,3}, {63639,3590,3},{63641,3588,3},{63641,3585,3},{63638,3585,3},{63639,3587,3}, {63638,3588,3},{63631,3578,3},{63624,3570,3},{63624,3567,3},{63619,3563,3}, {63619,3567,3},{63611,3557,3},{63611,3558,3},{63609,3558,3},{63604,3553,3}, {63603,3550,3},{63594,3545,3},{63584,3535,3},{63576,3523,3},{63564,3512,3}, {63564,3510,3},{63564,3508,3},{63556,3500,3},{63556,3497,3},{63549,3488,3}, {63551,3483,3},{63558,3482,3},{63561,3475,3},{63563,3468,3},{63574,3462,3}, {63574,3457,3},{63573,3462,3},{63559,3467,3},{63558,3473,3},{63549,3478,3}, {63548,3477,3},{63548,3473,3},{63546,3468,3},{63546,3473,3},{63544,3475,3}, {63539,3475,3},{63536,3477,3},{63533,3475,3},{63521,3477,3},{63518,3477,3}, {63519,3470,3},{63518,3468,3},{63513,3473,3},{63503,3470,3},{63501,3467,3}, {63501,3470,3},{63496,3470,3},{63494,3467,3},{63493,3465,3},{63491,3470,3}, {63488,3472,3},{63483,3467,3},{63484,3473,3},{63481,3473,3},{63481,3477,3}, {63478,3477,3},{63478,3482,3},{63473,3483,3},{63471,3485,3},{63469,3485,3}, {63471,3488,3},{63469,3490,3},{63466,3487,3},{63464,3487,3},{63466,3488,3}, {63466,3495,3},{63463,3498,3},{63458,3500,3},{63458,3502,3},{63456,3502,3}, {63454,3500,3},{63448,3505,3},{63443,3503,3},{63441,3503,3},{63444,3507,3}, {63443,3512,3},{63439,3510,3},{63439,3512,3},{63436,3512,3},{63434,3507,3}, {63433,3508,3},{63428,3508,3},{63426,3505,3},{63428,3503,3},{63424,3502,3}, {63423,3507,3},{63419,3505,3},{63416,3507,3},{63413,3508,3},{63411,3505,3}, {63409,3507,3},{63404,3507,3},{63404,3508,3},{63418,3513,3},{63404,3512,3}, {63398,3512,3},{63384,3518,3},{63378,3525,3},{63371,3527,3},{63354,3528,3}, {63344,3532,3},{63339,3532,3},{63336,3533,3},{63326,3533,3},{63318,3533,3}, {63311,3533,3},{63303,3530,3},{63296,3530,3},{63286,3540,3},{63293,3540,3}, {63294,3543,3},{63301,3540,3},{63309,3540,3},{63313,3540,3},{63314,3542,3}, {63311,3543,3},{63313,3545,3},{63318,3542,3},{63324,3545,3},{63326,3547,3}, {63326,3550,3},{63304,3552,3},{63314,3553,3},{63318,3555,3},{63294,3553,3}, {63279,3550,3},{63268,3548,3},{63244,3552,3},{63241,3553,3},{63244,3555,3}, {63243,3558,3},{63246,3558,3},{63244,3562,3},{63218,3548,3},{63208,3548,3}, {63184,3542,3},{63168,3542,3},{63163,3542,3},{63161,3538,3},{63163,3538,3}, {63166,3538,3},{63168,3537,3},{63168,3533,3},{63166,3537,3},{63164,3537,3}, {63151,3535,3},{63146,3533,3},{63144,3535,3},{63141,3533,3},{63139,3535,3}, {63144,3538,3},{63149,3537,3},{63153,3538,3},{63148,3547,3},{63149,3547,3}, {63151,3548,3},{63156,3548,3},{63158,3548,3},{63156,3553,3},{63149,3555,3}, {63131,3548,3},{63126,3550,3},{63109,3538,3},{63088,3520,3},{63083,3518,3}, {63073,3505,3},{63061,3478,3},{63058,3470,3},{63056,3465,3},{63054,3460,3}, {63053,3453,3},{63051,3448,3},{63049,3447,3},{63048,3442,3},{63046,3435,3}, {63043,3430,3},{63041,3425,3},{63041,3420,3},{63039,3413,3},{63036,3408,3}, {63034,3403,3},{63033,3398,3},{63033,3392,3},{63029,3387,3},{63028,3382,3}, {63026,3375,3},{63024,3372,3},{63006,3330,3},{63006,3327,3},{63009,3333,3}, {63011,3333,3},{63008,3325,3},{63006,3322,3},{63004,3322,3},{63004,3323,3}, {63003,3323,3},{62994,3307,3},{62983,3288,3},{62976,3282,3},{62968,3277,3}, {62958,3273,3},{62949,3275,3},{62956,3273,3},{62953,3270,3},{62948,3268,3}, {62939,3260,3},{62938,3258,3},{62941,3252,3},{62938,3247,3},{62934,3250,3}, {62938,3250,3},{62939,3252,3},{62938,3255,3},{62926,3265,3},{62918,3268,3}, {62918,3270,3},{62916,3275,3},{62914,3278,3},{62909,3280,3},{62906,3283,3}, {62908,3288,3},{62916,3287,3},{62924,3290,3},{62928,3295,3},{62906,3292,3}, {62884,3292,3},{62871,3290,3},{62863,3290,3},{62854,3288,3},{62851,3288,3}, {62849,3233,3},{62853,3223,3},{62851,3218,3},{62853,3213,3},{64134,3322,131}, {64144,3317,3},{64139,3313,3},{64138,3308,3},{64131,3305,3},{64131,3302,3}, {64134,3300,3},{64141,3300,3},{64143,3297,3},{64146,3295,3},{64148,3292,3}, {64153,3292,3},{64154,3288,3},{64154,3282,3},{64158,3277,3},{64159,3277,3}, {64164,3285,3},{64166,3285,3},{64171,3278,3},{64171,3272,3},{64174,3268,3}, {64178,3272,3},{64179,3275,3},{64184,3285,3},{64189,3287,3},{64189,3288,3}, {64196,3292,3},{64208,3295,3},{64216,3302,3},{64221,3298,3},{64226,3298,3}, {64233,3300,3},{64246,3303,3},{64248,3303,3},{64251,3297,3},{64259,3297,3}, {64276,3305,3},{64274,3315,3},{64273,3318,3},{64276,3323,3},{64281,3330,3}, {64283,3338,3},{64288,3345,3},{64293,3348,3},{64298,3353,3},{64301,3352,3}, {64303,3347,3},{64301,3338,3},{64311,3333,3},{64316,3332,3},{64323,3327,3}, {64329,3328,3},{64338,3333,3},{64343,3335,3},{64348,3333,3},{64353,3333,3}, {64374,3333,3},{64376,3330,3},{64378,3325,3},{64381,3323,3},{64383,3327,3}, {64394,3325,3},{64391,3328,3},{64394,3330,3},{64398,3330,3},{64398,3332,3}, {64401,3332,3},{64409,3338,3},{64419,3342,3},{64421,3340,3},{64424,3338,3}, {64426,3337,3},{64431,3335,3},{64434,3332,3},{64443,3330,3},{64448,3327,3}, {64451,3328,3},{64449,3332,3},{64451,3333,3},{64456,3337,3},{64456,3340,3}, {64456,3342,3},{64456,3347,3},{64458,3348,3},{64458,3352,3},{64461,3352,3}, {64461,3353,3},{64466,3355,3},{64471,3362,3},{64471,3363,3},{64474,3363,3}, {64476,3367,3},{64479,3370,3},{64481,3368,3},{64484,3368,3},{64486,3365,3}, {64491,3363,3},{64496,3357,3},{64501,3355,3},{64514,3355,3},{64521,3347,3}, {64526,3340,3},{64528,3335,3},{64531,3332,3},{64543,3337,3},{64544,3338,3}, {64554,3337,3},{64554,3332,3},{64556,3330,3},{64566,3325,3},{64573,3323,3}, {64576,3320,3},{64576,3313,3},{64578,3312,3},{64576,3312,3},{64569,3310,3}, {64571,3308,3},{64574,3307,3},{64573,3302,3},{64573,3300,3},{64579,3300,3}, {64584,3302,3},{64588,3298,3},{64588,3295,3},{64596,3293,3},{64599,3300,3}, {64594,3303,3},{64586,3313,3},{64586,3318,3},{64584,3320,3},{64588,3323,3}, {64586,3327,3},{64588,3332,3},{64583,3340,3},{64574,3343,3},{64574,3353,3}, {64578,3358,3},{64574,3365,3},{64574,3370,3},{64578,3373,3},{64578,3375,3}, {64574,3380,3},{64568,3392,3},{64566,3392,3},{64563,3390,3},{64553,3390,3}, {64548,3393,3},{64546,3395,3},{64539,3395,3},{64538,3398,3},{64531,3400,3}, {64523,3402,3},{64521,3403,3},{64514,3408,3},{64509,3415,3},{64508,3415,3}, {64504,3418,3},{64503,3422,3},{64496,3425,3},{64494,3427,3},{64494,3423,3}, {64491,3420,3},{64488,3420,3},{64484,3422,3},{64479,3417,3},{64476,3420,3}, {64466,3420,3},{64463,3423,3},{64456,3422,3},{64439,3425,3},{64434,3423,3}, {64426,3425,3},{64419,3422,3},{64416,3422,3},{64414,3423,3},{64408,3423,3}, {64406,3427,3},{64384,3428,3},{64381,3430,3},{64378,3430,3},{64371,3433,3}, {64368,3432,3},{64364,3432,3},{64363,3427,3},{64359,3425,3},{64354,3420,3}, {64348,3418,3},{64346,3418,3},{64341,3413,3},{64336,3410,3},{64331,3405,3}, {64329,3407,3},{64324,3407,3},{64321,3403,3},{64311,3400,3},{64303,3403,3}, {64299,3410,3},{64298,3408,3},{64298,3415,3},{64296,3417,3},{64286,3420,3}, {64279,3418,3},{64269,3420,3},{64264,3423,3},{64263,3428,3},{64253,3427,3}, {64249,3432,3},{64246,3430,3},{64243,3432,3},{64246,3433,3},{64241,3432,3}, {64234,3435,3},{64228,3433,3},{64209,3435,3},{64204,3432,3},{64199,3432,3}, {64179,3443,3},{64178,3447,3},{64179,3452,3},{64174,3455,3},{64166,3463,3}, {64164,3463,3},{64161,3462,3},{64158,3462,3},{64154,3458,3},{64151,3460,3}, {64146,3458,3},{64143,3455,3},{64138,3452,3},{64124,3457,3},{64123,3458,3}, {64116,3463,3},{64114,3470,3},{64108,3470,3},{64111,3480,3},{64113,3482,3}, {64116,3483,3},{64119,3482,3},{64123,3482,3},{64126,3487,3},{64133,3483,3}, {64136,3487,3},{64131,3493,3},{64128,3493,3},{64121,3495,3},{64119,3503,3}, {64118,3505,3},{64116,3508,3},{64111,3508,3},{64106,3512,3},{64106,3515,3}, {64101,3518,3},{64096,3523,3},{64098,3527,3},{64101,3528,3},{64109,3525,3}, {64111,3523,3},{64118,3522,3},{64126,3518,3},{64131,3518,3},{64141,3512,3}, {64151,3512,3},{64154,3508,3},{64163,3507,3},{64163,3490,3},{64164,3487,3}, {64169,3485,3},{64173,3485,3},{64183,3485,3},{64188,3487,3},{64186,3487,3}, {64168,3510,3},{64151,3520,3},{64121,3548,3},{64109,3555,3},{64071,3588,3}, {64048,3588,3},{64048,3592,3},{64018,3580,3},{63994,3587,3},{63944,3583,3}, {63941,3582,3},{63934,3582,3},{63929,3578,3},{63924,3572,3},{63924,3567,3}, {63923,3560,3},{63923,3555,3},{63919,3553,3},{63919,3550,3},{63923,3548,3}, {63924,3543,3},{63923,3540,3},{63913,3528,3},{63903,3527,3},{63899,3528,3}, {63896,3525,3},{63889,3525,3},{63881,3513,3},{63874,3517,3},{63871,3523,3}, {63866,3528,3},{63858,3528,3},{63854,3530,3},{63841,3527,3},{63838,3532,3}, {63833,3530,3},{63829,3530,3},{63826,3530,3},{63823,3528,3},{63823,3508,3}, {63828,3510,3},{63831,3505,3},{63834,3505,3},{63841,3513,3},{63853,3513,3}, {63854,3512,3},{63854,3503,3},{63856,3500,3},{63861,3498,3},{63863,3493,3}, {63866,3492,3},{63868,3487,3},{63874,3483,3},{63878,3478,3},{63883,3477,3}, {63886,3468,3},{63891,3465,3},{63896,3460,3},{63904,3457,3},{63908,3445,3}, {63916,3440,3},{63923,3440,3},{63926,3443,3},{63929,3443,3},{63941,3433,3}, {63944,3425,3},{63953,3427,3},{63958,3432,3},{63961,3437,3},{63964,3438,3}, {63966,3442,3},{63974,3445,3},{63986,3445,3},{63991,3447,3},{63994,3452,3}, {64001,3453,3},{64004,3458,3},{64011,3462,3},{64021,3458,3},{64036,3462,3}, {64046,3458,3},{64054,3458,3},{64064,3455,3},{64069,3455,3},{64078,3453,3}, {64081,3447,3},{64093,3440,3},{64094,3437,3},{64089,3422,3},{64091,3418,3}, {64089,3412,3},{64086,3407,3},{64088,3393,3},{64083,3382,3},{64088,3373,3}, {64084,3370,3},{64076,3368,3},{64079,3363,3},{64086,3362,3},{64088,3357,3}, {64093,3355,3},{64094,3348,3},{64114,3338,3},{64114,3335,3},{64121,3330,3}, {64129,3330,3},{64134,3322,3},{63294,3130,131},{63299,3127,3},{63299,3120,3}, {63304,3117,3},{63303,3108,3},{63304,3103,3},{63308,3090,3},{63306,3067,3}, {63303,3063,3},{63304,3058,3},{63304,3057,3},{63304,3048,3},{63303,3040,3}, {63301,3030,3},{63306,3025,3},{63306,3012,3},{63318,2993,3},{63318,2983,3}, {63323,2977,3},{63323,2967,3},{63324,2965,3},{63323,2963,3},{63321,2962,3}, {63323,2958,3},{63321,2955,3},{63318,2953,3},{63319,2947,3},{63318,2937,3}, {63324,2928,3},{63329,2925,3},{63328,2918,3},{63329,2912,3},{63333,2907,3}, {63343,2903,3},{63348,2903,3},{63353,2908,3},{63356,2907,3},{63359,2900,3}, {63361,2887,3},{63368,2868,3},{63371,2865,3},{63373,2857,3},{63369,2850,3}, {63378,2828,3},{63376,2822,3},{63378,2813,3},{63379,2802,3},{63384,2798,3}, {63386,2797,3},{63388,2798,3},{63389,2795,3},{63391,2797,3},{63401,2792,3}, {63404,2792,3},{63414,2783,3},{63419,2780,3},{63423,2773,3},{63429,2768,3}, {63438,2770,3},{63443,2768,3},{63449,2770,3},{63453,2772,3},{63461,2773,3}, {63476,2770,3},{63479,2772,3},{63484,2772,3},{63488,2770,3},{63488,2763,3}, {63489,2762,3},{63488,2757,3},{63489,2747,3},{63489,2733,3},{63486,2728,3}, {63511,2728,3},{63526,2722,3},{63529,2718,3},{63529,2713,3},{63534,2707,3}, {63536,2703,3},{63534,2698,3},{63536,2693,3},{63541,2682,3},{63543,2673,3}, {63548,2670,3},{63551,2662,3},{63558,2657,3},{63561,2652,3},{63563,2643,3}, {63569,2640,3},{63571,2633,3},{63574,2635,3},{63578,2633,3},{63579,2630,3}, {63579,2625,3},{63583,2617,3},{63608,2605,3},{63616,2603,3},{63626,2597,3}, {63629,2597,3},{63636,2598,3},{63641,2597,3},{63646,2595,3},{63653,2585,3}, {63656,2582,3},{63674,2578,3},{63679,2568,3},{63686,2563,3},{63688,2560,3}, {63696,2553,3},{63708,2548,3},{63723,2540,3},{63729,2532,3},{63744,2523,3}, {63749,2523,3},{63756,2527,3},{63751,2533,3},{63749,2552,3},{63751,2555,3}, {63753,2562,3},{63756,2568,3},{63753,2570,3},{63751,2575,3},{63748,2580,3}, {63744,2585,3},{63743,2583,3},{63738,2587,3},{63736,2597,3},{63738,2600,3}, {63738,2603,3},{63739,2603,3},{63739,2610,3},{63743,2610,3},{63744,2617,3}, {63748,2622,3},{63744,2623,3},{63743,2632,3},{63743,2640,3},{63736,2650,3}, {63736,2657,3},{63731,2660,3},{63728,2670,3},{63733,2677,3},{63734,2683,3}, {63736,2683,3},{63738,2688,3},{63739,2702,3},{63738,2703,3},{63738,2708,3}, {63741,2707,3},{63743,2710,3},{63744,2708,3},{63748,2713,3},{63749,2717,3}, {63753,2717,3},{63754,2715,3},{63758,2720,3},{63758,2723,3},{63761,2722,3}, {63763,2722,3},{63778,2737,3},{63778,2745,3},{63779,2747,3},{63781,2747,3}, {63779,2745,3},{63779,2743,3},{63781,2745,3},{63784,2747,3},{63786,2755,3}, {63791,2755,3},{63791,2757,3},{63788,2757,3},{63798,2762,3},{63799,2760,3}, {63803,2765,3},{63806,2765,3},{63808,2768,3},{63813,2765,3},{63811,2768,3}, {63813,2768,3},{63814,2772,3},{63816,2768,3},{63821,2780,3},{63819,2785,3}, {63823,2783,3},{63826,2792,3},{63831,2793,3},{63831,2797,3},{63833,2795,3}, {63833,2797,3},{63833,2800,3},{63831,2800,3},{63831,2803,3},{63828,2805,3}, {63831,2807,3},{63833,2810,3},{63836,2808,3},{63838,2812,3},{63836,2805,3}, {63838,2805,3},{63839,2807,3},{63843,2807,3},{63844,2812,3},{63846,2808,3}, {63851,2812,3},{63854,2818,3},{63856,2827,3},{63854,2827,3},{63854,2832,3}, {63858,2833,3},{63856,2835,3},{63861,2835,3},{63861,2837,3},{63859,2838,3}, {63856,2837,3},{63853,2838,3},{63851,2845,3},{63848,2845,3},{63846,2847,3}, {63851,2847,3},{63854,2843,3},{63854,2847,3},{63859,2848,3},{63861,2853,3}, {63863,2855,3},{63863,2858,3},{63864,2858,3},{63864,2863,3},{63866,2863,3}, {63868,2868,3},{63868,2870,3},{63864,2868,3},{63863,2872,3},{63859,2868,3}, {63854,2873,3},{63856,2880,3},{63859,2880,3},{63858,2883,3},{63859,2887,3}, {63864,2888,3},{63866,2885,3},{63868,2885,3},{63869,2888,3},{63868,2890,3}, {63864,2892,3},{63869,2893,3},{63869,2895,3},{63873,2893,3},{63874,2900,3}, {63876,2893,3},{63879,2895,3},{63878,2888,3},{63879,2883,3},{63879,2888,3}, {63883,2887,3},{63883,2870,3},{63884,2877,3},{63888,2882,3},{63896,2885,3}, {63906,2883,3},{63913,2887,3},{63919,2885,3},{63924,2887,3},{63931,2887,3}, {63939,2893,3},{63941,2897,3},{63941,2905,3},{63948,2908,3},{63949,2913,3}, {63958,2925,3},{63966,2943,3},{63966,2952,3},{63969,2957,3},{63969,2963,3}, {63971,2970,3},{63974,2983,3},{63973,2995,3},{63971,3000,3},{63973,3008,3}, {63973,3017,3},{63969,3022,3},{63973,3025,3},{63969,3035,3},{63973,3042,3}, {63968,3042,3},{63963,3042,3},{63956,3042,3},{63951,3042,3},{63946,3042,3}, {63941,3042,3},{63936,3042,3},{63936,3048,3},{63936,3053,3},{63936,3058,3}, {63936,3063,3},{63936,3070,3},{63936,3075,3},{63936,3080,3},{63936,3085,3}, {63936,3093,3},{63931,3098,3},{63929,3100,3},{63929,3102,3},{63934,3107,3}, {63934,3110,3},{63936,3113,3},{63934,3128,3},{63933,3132,3},{63929,3133,3}, {63926,3135,3},{63923,3140,3},{63921,3140,3},{63921,3142,3},{63919,3143,3}, {63919,3148,3},{63918,3152,3},{63916,3155,3},{63914,3172,3},{63906,3182,3}, {63904,3182,3},{63901,3190,3},{63894,3190,3},{63891,3207,3},{63893,3225,3}, {63889,3238,3},{63876,3270,3},{63868,3270,3},{63864,3277,3},{63864,3290,3}, {63866,3293,3},{63864,3298,3},{63851,3293,3},{63843,3285,3},{63821,3297,3}, {63806,3300,3},{63801,3305,3},{63789,3298,3},{63786,3295,3},{63781,3297,3}, {63778,3303,3},{63774,3305,3},{63763,3302,3},{63761,3303,3},{63756,3302,3}, {63754,3297,3},{63748,3295,3},{63743,3297,3},{63739,3297,3},{63738,3295,3}, {63736,3297,3},{63731,3295,3},{63718,3300,3},{63711,3297,3},{63701,3307,3}, {63699,3305,3},{63698,3303,3},{63694,3302,3},{63696,3300,3},{63691,3302,3}, {63689,3302,3},{63683,3288,3},{63679,3288,3},{63668,3295,3},{63659,3292,3}, {63658,3290,3},{63658,3282,3},{63653,3270,3},{63644,3272,3},{63644,3273,3}, {63641,3270,3},{63634,3272,3},{63634,3283,3},{63629,3285,3},{63626,3288,3}, {63614,3285,3},{63608,3285,3},{63599,3278,3},{63589,3278,3},{63588,3280,3}, {63589,3283,3},{63586,3285,3},{63573,3285,3},{63571,3283,3},{63568,3285,3}, {63566,3292,3},{63568,3292,3},{63571,3297,3},{63568,3298,3},{63563,3297,3}, {63558,3307,3},{63554,3303,3},{63549,3303,3},{63543,3302,3},{63533,3303,3}, {63533,3295,3},{63528,3295,3},{63526,3290,3},{63519,3290,3},{63518,3287,3}, {63513,3288,3},{63509,3287,3},{63504,3283,3},{63501,3282,3},{63494,3275,3}, {63481,3267,3},{63481,3255,3},{63476,3250,3},{63469,3248,3},{63444,3252,3}, {63436,3248,3},{63423,3237,3},{63419,3240,3},{63416,3238,3},{63401,3250,3}, {63404,3242,3},{63401,3237,3},{63396,3233,3},{63393,3228,3},{63388,3225,3}, {63384,3220,3},{63379,3217,3},{63374,3212,3},{63371,3208,3},{63366,3203,3}, {63363,3200,3},{63358,3195,3},{63353,3192,3},{63349,3187,3},{63344,3183,3}, {63341,3178,3},{63336,3175,3},{63333,3170,3},{63328,3167,3},{63323,3162,3}, {63319,3158,3},{63314,3153,3},{63311,3150,3},{63306,3145,3},{63303,3140,3}, {63298,3135,3},{63294,3130,3},{63756,2527,131},{63759,2523,3},{63759,2518,3}, {63768,2513,3},{63766,2512,3},{63768,2510,3},{63771,2510,3},{63774,2507,3}, {63774,2503,3},{63778,2503,3},{63778,2498,3},{63781,2497,3},{63784,2487,3}, {63784,2478,3},{63784,2477,3},{63786,2467,3},{63786,2463,3},{63783,2458,3}, {63783,2457,3},{63788,2445,3},{63789,2437,3},{63788,2433,3},{63788,2430,3}, {63788,2425,3},{63788,2423,3},{63788,2418,3},{63786,2412,3},{63784,2407,3}, {63784,2400,3},{63783,2395,3},{63781,2390,3},{63781,2383,3},{63779,2378,3}, {63778,2372,3},{63778,2367,3},{63776,2360,3},{63774,2355,3},{63773,2348,3}, {63788,2320,3},{63803,2307,3},{63833,2273,3},{63859,2248,3},{63874,2230,3}, {63876,2227,3},{63879,2225,3},{63879,2222,3},{63888,2213,3},{63903,2212,3}, {63908,2208,3},{63913,2207,3},{63919,2200,3},{63924,2200,3},{63929,2200,3}, {63934,2200,3},{63939,2200,3},{63944,2200,3},{63949,2200,3},{63954,2200,3}, {63959,2200,3},{63966,2200,3},{63971,2200,3},{63976,2200,3},{63981,2200,3}, {63986,2200,3},{63991,2200,3},{63996,2200,3},{64001,2200,3},{64006,2200,3}, {64011,2200,3},{64016,2200,3},{64021,2200,3},{64028,2200,3},{64033,2200,3}, {64038,2200,3},{64043,2200,3},{64048,2200,3},{64053,2200,3},{64058,2200,3}, {64063,2200,3},{64068,2200,3},{64074,2200,3},{64079,2200,3},{64084,2200,3}, {64089,2200,3},{64094,2200,3},{64099,2200,3},{64104,2200,3},{64109,2200,3}, {64114,2200,3},{64119,2200,3},{64124,2200,3},{64131,2200,3},{64136,2200,3}, {64141,2200,3},{64146,2200,3},{64151,2200,3},{64156,2200,3},{64161,2200,3}, {64166,2200,3},{64171,2200,3},{64178,2200,3},{64183,2200,3},{64188,2200,3}, {64193,2200,3},{64198,2200,3},{64203,2200,3},{64209,2200,3},{64211,2200,3}, {64214,2200,3},{64219,2200,3},{64224,2200,3},{64229,2200,3},{64236,2200,3}, {64236,2205,3},{64236,2212,3},{64236,2217,3},{64236,2222,3},{64236,2228,3}, {64236,2233,3},{64236,2238,3},{64236,2245,3},{64236,2250,3},{64236,2257,3}, {64236,2262,3},{64236,2267,3},{64236,2273,3},{64236,2278,3},{64236,2283,3}, {64236,2290,3},{64236,2295,3},{64236,2300,3},{64236,2307,3},{64236,2312,3}, {64236,2318,3},{64236,2323,3},{64236,2328,3},{64236,2335,3},{64236,2340,3}, {64236,2345,3},{64236,2352,3},{64236,2357,3},{64236,2363,3},{64236,2368,3}, {64236,2373,3},{64236,2380,3},{64236,2385,3},{64236,2390,3},{64236,2397,3}, {64236,2402,3},{64243,2400,3},{64253,2390,3},{64258,2388,3},{64266,2392,3}, {64281,2395,3},{64298,2405,3},{64309,2403,3},{64316,2397,3},{64348,2398,3}, {64354,2402,3},{64358,2400,3},{64366,2400,3},{64371,2397,3},{64378,2400,3}, {64383,2403,3},{64391,2403,3},{64396,2408,3},{64408,2403,3},{64423,2403,3}, {64424,2400,3},{64439,2402,3},{64444,2398,3},{64449,2398,3},{64448,2407,3}, {64444,2413,3},{64441,2413,3},{64438,2415,3},{64434,2413,3},{64433,2415,3}, {64433,2420,3},{64431,2425,3},{64431,2432,3},{64424,2440,3},{64419,2438,3}, {64416,2442,3},{64408,2442,3},{64401,2437,3},{64399,2430,3},{64398,2430,3}, {64396,2432,3},{64394,2438,3},{64389,2445,3},{64389,2452,3},{64393,2458,3}, {64396,2460,3},{64398,2465,3},{64403,2470,3},{64404,2475,3},{64404,2482,3}, {64408,2488,3},{64409,2497,3},{64411,2518,3},{64416,2533,3},{64416,2535,3}, {64411,2533,3},{64408,2535,3},{64406,2530,3},{64401,2532,3},{64401,2530,3}, {64398,2528,3},{64389,2533,3},{64386,2532,3},{64381,2532,3},{64373,2537,3}, {64371,2540,3},{64369,2543,3},{64364,2550,3},{64361,2550,3},{64359,2550,3}, {64358,2552,3},{64361,2555,3},{64361,2558,3},{64363,2558,3},{64364,2563,3}, {64358,2573,3},{64356,2583,3},{64358,2587,3},{64354,2590,3},{64351,2597,3}, {64346,2598,3},{64346,2620,3},{64343,2625,3},{64343,2628,3},{64343,2632,3}, {64344,2637,3},{64344,2645,3},{64344,2647,3},{64341,2650,3},{64338,2667,3}, {64334,2672,3},{64339,2678,3},{64339,2687,3},{64339,2690,3},{64346,2697,3}, {64351,2700,3},{64361,2700,3},{64366,2705,3},{64376,2703,3},{64378,2715,3}, {64379,2720,3},{64374,2722,3},{64358,2723,3},{64341,2747,3},{64338,2748,3}, {64329,2750,3},{64319,2753,3},{64314,2757,3},{64309,2763,3},{64306,2767,3}, {64306,2778,3},{64308,2782,3},{64311,2783,3},{64311,2787,3},{64304,2797,3}, {64299,2798,3},{64299,2803,3},{64298,2812,3},{64293,2815,3},{64296,2820,3}, {64293,2823,3},{64293,2835,3},{64284,2845,3},{64274,2848,3},{64269,2853,3}, {64266,2853,3},{64264,2850,3},{64261,2850,3},{64258,2852,3},{64254,2857,3}, {64248,2857,3},{64246,2858,3},{64251,2863,3},{64251,2868,3},{64246,2873,3}, {64239,2877,3},{64238,2882,3},{64233,2883,3},{64231,2885,3},{64228,2885,3}, {64226,2887,3},{64223,2888,3},{64219,2892,3},{64201,2897,3},{64196,2902,3}, {64198,2915,3},{64196,2917,3},{64193,2918,3},{64193,2920,3},{64196,2923,3}, {64199,2930,3},{64201,2933,3},{64201,2937,3},{64203,2938,3},{64206,2947,3}, {64213,2955,3},{64214,2958,3},{64211,2963,3},{64211,2968,3},{64209,2968,3}, {64206,2968,3},{64204,2965,3},{64201,2965,3},{64199,2962,3},{64194,2963,3}, {64191,2972,3},{64191,2980,3},{64194,2980,3},{64199,2980,3},{64206,2980,3}, {64211,2980,3},{64216,2980,3},{64221,2980,3},{64228,2980,3},{64233,2980,3}, {64238,2980,3},{64244,2980,3},{64249,2980,3},{64254,2980,3},{64259,2980,3}, {64266,2980,3},{64271,2980,3},{64276,2980,3},{64283,2980,3},{64288,2980,3}, {64293,2980,3},{64298,2980,3},{64304,2980,3},{64309,2980,3},{64314,2980,3}, {64321,2980,3},{64321,2975,3},{64318,2972,3},{64314,2963,3},{64316,2960,3}, {64318,2957,3},{64314,2955,3},{64313,2948,3},{64301,2945,3},{64298,2948,3}, {64296,2948,3},{64298,2952,3},{64293,2953,3},{64289,2948,3},{64291,2947,3}, {64293,2940,3},{64294,2938,3},{64294,2930,3},{64298,2928,3},{64299,2925,3}, {64298,2923,3},{64299,2918,3},{64298,2913,3},{64296,2910,3},{64298,2910,3}, {64299,2910,3},{64298,2903,3},{64306,2900,3},{64316,2893,3},{64323,2885,3}, {64329,2880,3},{64331,2877,3},{64338,2875,3},{64338,2868,3},{64341,2862,3}, {64344,2860,3},{64344,2857,3},{64346,2855,3},{64349,2853,3},{64349,2850,3}, {64354,2848,3},{64358,2845,3},{64364,2845,3},{64368,2842,3},{64369,2843,3}, {64381,2837,3},{64391,2837,3},{64401,2843,3},{64408,2843,3},{64413,2847,3}, {64419,2848,3},{64428,2848,3},{64443,2855,3},{64453,2855,3},{64464,2862,3}, {64464,2867,3},{64468,2867,3},{64471,2870,3},{64474,2867,3},{64479,2867,3}, {64484,2863,3},{64493,2865,3},{64499,2862,3},{64506,2863,3},{64514,2857,3}, {64521,2862,3},{64541,2863,3},{64554,2867,3},{64558,2870,3},{64561,2867,3}, {64564,2863,3},{64576,2862,3},{64579,2858,3},{64581,2862,3},{64581,2857,3}, {64588,2857,3},{64589,2853,3},{64594,2853,3},{64596,2862,3},{64596,2867,3}, {64591,2870,3},{64591,2872,3},{64599,2873,3},{64603,2870,3},{64604,2872,3}, {64616,2880,3},{64623,2885,3},{64628,2890,3},{64633,2892,3},{64636,2900,3}, {64649,2905,3},{64651,2908,3},{64656,2910,3},{64671,2915,3},{64676,2910,3}, {64688,2890,3},{64689,2893,3},{64689,2900,3},{64691,2905,3},{64691,2910,3}, {64693,2917,3},{64693,2922,3},{64694,2927,3},{64694,2933,3},{64696,2938,3}, {64696,2943,3},{64698,2950,3},{64698,2955,3},{64699,2960,3},{64699,2967,3}, {64701,2972,3},{64701,2977,3},{64703,2983,3},{64703,2988,3},{64704,2993,3}, {64704,3000,3},{64706,3005,3},{64706,3010,3},{64708,3017,3},{64708,3022,3}, {64709,3027,3},{64709,3033,3},{64711,3038,3},{64711,3043,3},{64713,3050,3}, {64713,3055,3},{64713,3057,3},{64711,3057,3},{64708,3057,3},{64706,3057,3}, {64701,3047,3},{64693,3043,3},{64689,3045,3},{64686,3047,3},{64684,3047,3}, {64683,3050,3},{64684,3058,3},{64681,3057,3},{64678,3053,3},{64678,3055,3}, {64679,3062,3},{64684,3065,3},{64686,3065,3},{64686,3063,3},{64688,3068,3}, {64683,3068,3},{64683,3072,3},{64679,3072,3},{64679,3078,3},{64669,3090,3}, {64658,3102,3},{64656,3103,3},{64659,3110,3},{64661,3110,3},{64663,3113,3}, {64664,3113,3},{64661,3117,3},{64661,3118,3},{64673,3120,3},{64676,3118,3}, {64678,3122,3},{64678,3123,3},{64674,3128,3},{64676,3132,3},{64676,3135,3}, {64678,3137,3},{64678,3138,3},{64673,3140,3},{64673,3147,3},{64669,3148,3}, {64666,3157,3},{64654,3157,3},{64646,3168,3},{64644,3172,3},{64646,3175,3}, {64648,3178,3},{64644,3188,3},{64643,3195,3},{64639,3193,3},{64634,3193,3}, {64629,3198,3},{64633,3205,3},{64629,3212,3},{64629,3217,3},{64624,3222,3}, {64623,3227,3},{64623,3243,3},{64619,3248,3},{64614,3250,3},{64609,3255,3}, {64608,3275,3},{64603,3277,3},{64603,3282,3},{64599,3285,3},{64588,3298,3}, {64584,3302,3},{64579,3300,3},{64573,3300,3},{64573,3302,3},{64574,3307,3}, {64571,3308,3},{64569,3310,3},{64576,3312,3},{64578,3312,3},{64576,3313,3}, {64576,3320,3},{64573,3323,3},{64566,3325,3},{64556,3330,3},{64554,3332,3}, {64554,3337,3},{64544,3338,3},{64543,3337,3},{64531,3332,3},{64528,3335,3}, {64526,3340,3},{64521,3347,3},{64514,3355,3},{64501,3355,3},{64496,3357,3}, {64491,3363,3},{64486,3365,3},{64484,3368,3},{64481,3368,3},{64479,3370,3}, {64476,3367,3},{64474,3363,3},{64471,3363,3},{64471,3362,3},{64466,3355,3}, {64461,3353,3},{64461,3352,3},{64458,3352,3},{64458,3348,3},{64456,3347,3}, {64456,3342,3},{64456,3340,3},{64456,3337,3},{64451,3333,3},{64449,3332,3}, {64451,3328,3},{64448,3327,3},{64443,3330,3},{64434,3332,3},{64431,3335,3}, {64426,3337,3},{64424,3338,3},{64421,3340,3},{64419,3342,3},{64409,3338,3}, {64401,3332,3},{64398,3332,3},{64398,3330,3},{64394,3330,3},{64391,3328,3}, {64394,3325,3},{64383,3327,3},{64381,3323,3},{64378,3325,3},{64376,3330,3}, {64374,3333,3},{64353,3333,3},{64348,3333,3},{64343,3335,3},{64338,3333,3}, {64329,3328,3},{64323,3327,3},{64316,3332,3},{64311,3333,3},{64301,3338,3}, {64303,3347,3},{64301,3352,3},{64298,3353,3},{64293,3348,3},{64288,3345,3}, {64283,3338,3},{64281,3330,3},{64276,3323,3},{64273,3318,3},{64274,3315,3}, {64276,3305,3},{64259,3297,3},{64251,3297,3},{64248,3303,3},{64246,3303,3}, {64233,3300,3},{64226,3298,3},{64221,3298,3},{64216,3302,3},{64208,3295,3}, {64196,3292,3},{64189,3288,3},{64189,3287,3},{64184,3285,3},{64179,3275,3}, {64178,3272,3},{64174,3268,3},{64171,3272,3},{64171,3278,3},{64166,3285,3}, {64164,3285,3},{64159,3277,3},{64158,3277,3},{64154,3282,3},{64154,3288,3}, {64153,3292,3},{64148,3292,3},{64146,3295,3},{64143,3297,3},{64141,3300,3}, {64134,3300,3},{64131,3302,3},{64131,3305,3},{64138,3308,3},{64139,3313,3}, {64144,3317,3},{64134,3322,3},{64133,3317,3},{64131,3312,3},{64129,3305,3}, {64128,3300,3},{64124,3295,3},{64123,3288,3},{64121,3283,3},{64119,3278,3}, {64118,3272,3},{64116,3267,3},{64113,3262,3},{64111,3255,3},{64109,3250,3}, {64108,3245,3},{64106,3237,3},{64101,3213,3},{64096,3205,3},{64093,3192,3}, {64088,3182,3},{64086,3170,3},{64074,3148,3},{64061,3087,3},{64058,3077,3}, {64054,3072,3},{64053,3067,3},{64051,3060,3},{64049,3055,3},{64048,3050,3}, {64044,3043,3},{64039,3035,3},{64039,3030,3},{64038,3025,3},{64038,3022,3}, {64026,3022,3},{64014,3025,3},{64009,3028,3},{64003,3037,3},{63991,3037,3}, {63988,3038,3},{63981,3035,3},{63978,3038,3},{63973,3042,3},{63969,3035,3}, {63973,3025,3},{63969,3022,3},{63973,3017,3},{63973,3008,3},{63971,3000,3}, {63973,2995,3},{63974,2983,3},{63971,2970,3},{63969,2963,3},{63969,2957,3}, {63966,2952,3},{63966,2943,3},{63958,2925,3},{63949,2913,3},{63948,2908,3}, {63941,2905,3},{63941,2897,3},{63939,2893,3},{63931,2887,3},{63924,2887,3}, {63919,2885,3},{63913,2887,3},{63906,2883,3},{63896,2885,3},{63888,2882,3}, {63884,2877,3},{63883,2870,3},{63886,2868,3},{63888,2865,3},{63886,2863,3}, {63884,2855,3},{63883,2853,3},{63883,2857,3},{63879,2852,3},{63883,2852,3}, {63884,2848,3},{63883,2848,3},{63881,2845,3},{63876,2840,3},{63878,2837,3}, {63881,2838,3},{63879,2833,3},{63883,2832,3},{63883,2828,3},{63881,2830,3}, {63879,2828,3},{63878,2832,3},{63876,2833,3},{63874,2827,3},{63874,2825,3}, {63873,2825,3},{63871,2825,3},{63869,2822,3},{63873,2820,3},{63873,2817,3}, {63871,2818,3},{63868,2817,3},{63868,2820,3},{63866,2820,3},{63864,2813,3}, {63861,2813,3},{63859,2813,3},{63861,2808,3},{63858,2808,3},{63856,2807,3}, {63854,2808,3},{63853,2807,3},{63849,2802,3},{63851,2797,3},{63853,2797,3}, {63854,2797,3},{63854,2793,3},{63851,2783,3},{63853,2780,3},{63849,2780,3}, {63846,2787,3},{63846,2782,3},{63843,2775,3},{63844,2773,3},{63841,2768,3}, {63839,2773,3},{63838,2773,3},{63834,2765,3},{63831,2770,3},{63829,2772,3}, {63826,2767,3},{63828,2765,3},{63829,2767,3},{63831,2762,3},{63823,2755,3}, {63819,2755,3},{63818,2752,3},{63813,2750,3},{63809,2747,3},{63809,2745,3}, {63808,2742,3},{63804,2745,3},{63791,2732,3},{63789,2738,3},{63788,2737,3}, {63784,2737,3},{63783,2737,3},{63783,2733,3},{63779,2735,3},{63779,2730,3}, {63776,2730,3},{63774,2727,3},{63776,2725,3},{63774,2725,3},{63774,2722,3}, {63773,2723,3},{63771,2722,3},{63769,2718,3},{63766,2718,3},{63768,2717,3}, {63761,2713,3},{63758,2708,3},{63756,2710,3},{63756,2708,3},{63753,2708,3}, {63751,2710,3},{63753,2713,3},{63748,2708,3},{63746,2708,3},{63746,2707,3}, {63743,2705,3},{63741,2702,3},{63739,2702,3},{63738,2688,3},{63736,2683,3}, {63734,2683,3},{63733,2677,3},{63728,2670,3},{63731,2660,3},{63736,2657,3}, {63736,2650,3},{63743,2640,3},{63743,2632,3},{63744,2623,3},{63748,2622,3}, {63744,2617,3},{63743,2610,3},{63739,2610,3},{63739,2603,3},{63738,2603,3}, {63738,2600,3},{63736,2597,3},{63738,2587,3},{63743,2583,3},{63744,2585,3}, {63748,2580,3},{63751,2575,3},{63753,2570,3},{63756,2568,3},{63753,2562,3}, {63751,2555,3},{63749,2552,3},{63751,2533,3},{63756,2527,3},{64951,1318,131}, {64949,1310,3},{64951,1305,3},{64951,1300,3},{64954,1297,3},{64954,1288,3}, {64949,1275,3},{64939,1270,3},{64938,1267,3},{64938,1257,3},{64933,1248,3}, {64933,1245,3},{64934,1242,3},{64936,1245,3},{64939,1245,3},{64941,1240,3}, {64936,1238,3},{64939,1237,3},{64951,1225,3},{64958,1220,3},{64963,1228,3}, {64963,1237,3},{64963,1242,3},{64963,1247,3},{64964,1253,3},{64969,1253,3}, {64976,1253,3},{64981,1253,3},{64986,1253,3},{64993,1253,3},{64998,1253,3}, {65003,1253,3},{65009,1253,3},{65014,1253,3},{65019,1253,3},{65024,1253,3}, {65026,1247,3},{65031,1247,3},{65031,1250,3},{65036,1260,3},{65043,1262,3}, {65043,1270,3},{65049,1272,3},{65053,1278,3},{65056,1278,3},{65063,1282,3}, {65064,1287,3},{65064,1292,3},{65068,1302,3},{65069,1307,3},{65069,1308,3}, {65073,1308,3},{65078,1308,3},{65079,1312,3},{65078,1313,3},{65073,1318,3}, {65068,1320,3},{65059,1330,3},{65058,1338,3},{65051,1338,3},{65048,1342,3}, {65051,1343,3},{65056,1352,3},{65059,1350,3},{65061,1353,3},{65058,1358,3}, {65058,1360,3},{65063,1363,3},{65063,1370,3},{65066,1370,3},{65066,1373,3}, {65071,1372,3},{65083,1373,3},{65091,1373,3},{65094,1382,3},{65091,1385,3}, {65088,1388,3},{65086,1397,3},{65091,1402,3},{65093,1402,3},{65096,1407,3}, {65098,1418,3},{65104,1430,3},{65109,1442,3},{65103,1440,3},{65096,1445,3}, {65093,1448,3},{65084,1443,3},{65084,1440,3},{65081,1437,3},{65073,1438,3}, {65068,1443,3},{65061,1442,3},{65058,1443,3},{65053,1442,3},{65048,1442,3}, {65053,1448,3},{65051,1455,3},{65048,1458,3},{65044,1467,3},{65054,1483,3}, {65071,1492,3},{65081,1502,3},{65086,1510,3},{65103,1522,3},{65108,1533,3}, {65106,1542,3},{65109,1545,3},{65114,1548,3},{65123,1548,3},{65131,1555,3}, {65138,1570,3},{65139,1583,3},{65144,1590,3},{65151,1593,3},{65168,1603,3}, {65174,1605,3},{65179,1610,3},{65191,1615,3},{65194,1618,3},{65203,1623,3}, {65208,1622,3},{65211,1618,3},{65216,1620,3},{65221,1618,3},{65236,1620,3}, {65248,1618,3},{65264,1620,3},{65273,1623,3},{65298,1618,3},{65311,1618,3}, {65318,1620,3},{65326,1625,3},{65334,1637,3},{65349,1652,3},{65371,1665,3}, {65394,1675,3},{65404,1680,3},{65413,1688,3},{65421,1697,3},{65429,1712,3}, {65433,1728,3},{65436,1733,3},{65458,1755,3},{65474,1768,3},{65483,1772,3}, {65498,1775,3},{65513,1772,3},{65523,1772,3},{15,1780,3},{22,1785,3},{35,1795,3}, {45,1797,3},{48,1797,3},{60,1790,3},{68,1788,3},{82,1790,3},{100,1787,3}, {105,1788,3},{113,1793,3},{125,1798,3},{132,1798,3},{153,1807,3},{172,1808,3}, {185,1807,3},{195,1808,3},{205,1807,3},{213,1810,3},{222,1810,3},{230,1812,3}, {233,1817,3},{242,1822,3},{252,1823,3},{257,1832,3},{262,1835,3},{273,1840,3}, {283,1843,3},{297,1850,3},{308,1853,3},{315,1862,3},{322,1865,3},{327,1863,3}, {332,1865,3},{348,1863,3},{373,1858,3},{388,1862,3},{398,1865,3},{403,1865,3}, {413,1863,3},{423,1858,3},{430,1853,3},{432,1853,3},{437,1858,3},{435,1865,3}, {437,1870,3},{440,1875,3},{447,1880,3},{457,1883,3},{462,1888,3},{465,1890,3}, {467,1893,3},{472,1895,3},{475,1900,3},{480,1902,3},{483,1905,3},{490,1907,3}, {493,1912,3},{493,1918,3},{497,1920,3},{500,1923,3},{508,1937,3},{513,1942,3}, {513,1950,3},{515,1955,3},{513,1962,3},{513,1972,3},{508,1983,3},{500,1990,3}, {498,2000,3},{492,2008,3},{487,2018,3},{480,2023,3},{477,2035,3},{467,2040,3}, {462,2045,3},{455,2043,3},{452,2045,3},{442,2058,3},{442,2078,3},{443,2082,3}, {445,2083,3},{443,2097,3},{440,2107,3},{433,2112,3},{428,2122,3},{428,2123,3}, {432,2125,3},{433,2128,3},{428,2135,3},{427,2147,3},{425,2153,3},{430,2163,3}, {430,2175,3},{427,2177,3},{427,2183,3},{423,2187,3},{423,2195,3},{425,2200,3}, {422,2210,3},{417,2217,3},{415,2220,3},{413,2233,3},{415,2245,3},{422,2253,3}, {428,2253,3},{433,2257,3},{437,2262,3},{442,2258,3},{447,2260,3},{448,2260,3}, {448,2268,3},{453,2270,3},{457,2272,3},{462,2273,3},{465,2275,3},{472,2278,3}, {472,2280,3},{470,2285,3},{473,2287,3},{475,2288,3},{482,2288,3},{482,2293,3}, {483,2297,3},{482,2298,3},{475,2302,3},{473,2307,3},{472,2308,3},{470,2310,3}, {473,2317,3},{467,2323,3},{465,2327,3},{462,2327,3},{463,2330,3},{460,2333,3}, {458,2343,3},{465,2345,3},{467,2350,3},{473,2358,3},{477,2370,3},{478,2375,3}, {482,2380,3},{482,2383,3},{482,2385,3},{482,2388,3},{482,2395,3},{485,2393,3}, {487,2395,3},{485,2398,3},{490,2407,3},{492,2410,3},{490,2415,3},{493,2418,3}, {497,2423,3},{493,2425,3},{493,2427,3},{498,2427,3},{500,2428,3},{500,2437,3}, {502,2438,3},{503,2440,3},{505,2440,3},{505,2435,3},{510,2438,3},{512,2440,3}, {507,2443,3},{510,2443,3},{510,2447,3},{508,2453,3},{503,2457,3},{503,2460,3}, {498,2462,3},{495,2467,3},{492,2465,3},{492,2472,3},{492,2473,3},{492,2477,3}, {492,2478,3},{493,2482,3},{493,2487,3},{497,2488,3},{498,2498,3},{495,2507,3}, {502,2513,3},{500,2518,3},{502,2528,3},{505,2532,3},{508,2532,3},{512,2535,3}, {515,2535,3},{517,2532,3},{518,2532,3},{528,2535,3},{530,2538,3},{532,2537,3}, {533,2540,3},{532,2542,3},{533,2547,3},{535,2547,3},{535,2548,3},{533,2550,3}, {535,2553,3},{538,2555,3},{537,2558,3},{533,2558,3},{533,2562,3},{532,2560,3}, {530,2563,3},{532,2565,3},{528,2572,3},{527,2572,3},{525,2575,3},{525,2577,3}, {527,2577,3},{527,2578,3},{527,2580,3},{523,2580,3},{523,2582,3},{522,2580,3}, {520,2583,3},{522,2585,3},{522,2588,3},{517,2590,3},{517,2592,3},{520,2592,3}, {520,2593,3},{520,2595,3},{523,2597,3},{522,2600,3},{520,2602,3},{518,2603,3}, {520,2605,3},{520,2610,3},{523,2608,3},{523,2612,3},{525,2613,3},{525,2615,3}, {523,2615,3},{523,2620,3},{520,2622,3},{518,2625,3},{517,2625,3},{515,2628,3}, {513,2632,3},{515,2635,3},{513,2637,3},{515,2638,3},{510,2645,3},{507,2647,3}, {505,2650,3},{505,2655,3},{508,2658,3},{508,2662,3},{507,2662,3},{508,2663,3}, {507,2667,3},{508,2668,3},{510,2673,3},{508,2677,3},{503,2680,3},{505,2683,3}, {503,2687,3},{513,2693,3},{520,2708,3},{520,2715,3},{515,2722,3},{512,2732,3}, {510,2733,3},{508,2740,3},{507,2743,3},{502,2743,3},{502,2745,3},{497,2752,3}, {493,2753,3},{490,2758,3},{490,2767,3},{483,2770,3},{478,2770,3},{478,2777,3}, {472,2778,3},{467,2777,3},{460,2778,3},{460,2782,3},{455,2787,3},{455,2793,3}, {458,2795,3},{455,2797,3},{457,2803,3},{448,2803,3},{442,2807,3},{445,2812,3}, {443,2813,3},{442,2813,3},{440,2813,3},{438,2817,3},{435,2820,3},{435,2827,3}, {435,2833,3},{428,2837,3},{428,2845,3},{432,2847,3},{437,2850,3},{437,2857,3}, {442,2860,3},{442,2865,3},{453,2872,3},{453,2875,3},{457,2878,3},{452,2880,3}, {450,2880,3},{448,2882,3},{448,2898,3},{450,2900,3},{448,2903,3},{447,2903,3}, {445,2907,3},{443,2907,3},{443,2912,3},{435,2920,3},{435,2925,3},{438,2925,3}, {438,2932,3},{447,2935,3},{448,2940,3},{453,2943,3},{457,2943,3},{458,2947,3}, {467,2947,3},{468,2948,3},{468,2950,3},{465,2953,3},{467,2955,3},{465,2958,3}, {465,2962,3},{465,2965,3},{462,2970,3},{458,2973,3},{457,2982,3},{453,2980,3}, {448,2980,3},{438,2980,3},{435,2983,3},{435,2990,3},{430,2995,3},{425,2995,3}, {423,2998,3},{420,3003,3},{413,3007,3},{410,3015,3},{405,3015,3},{400,3020,3}, {397,3022,3},{397,3028,3},{393,3033,3},{388,3042,3},{387,3048,3},{387,3053,3}, {387,3055,3},{370,3058,3},{362,3057,3},{362,3063,3},{365,3068,3},{363,3073,3}, {368,3077,3},{367,3078,3},{362,3080,3},{357,3085,3},{352,3085,3},{348,3087,3}, {353,3092,3},{350,3093,3},{347,3092,3},{340,3093,3},{328,3087,3},{328,3083,3}, {323,3083,3},{305,3077,3},{297,3085,3},{288,3088,3},{285,3088,3},{278,3085,3}, {277,3082,3},{270,3080,3},{267,3078,3},{262,3078,3},{260,3075,3},{252,3075,3}, {248,3073,3},{245,3073,3},{245,3083,3},{240,3083,3},{233,3088,3},{233,3092,3}, {240,3093,3},{242,3095,3},{240,3098,3},{233,3107,3},{230,3105,3},{228,3112,3}, {230,3120,3},{223,3120,3},{218,3128,3},{217,3127,3},{215,3125,3},{212,3123,3}, {210,3122,3},{208,3118,3},{207,3117,3},{203,3113,3},{202,3110,3},{200,3107,3}, {195,3102,3},{193,3100,3},{193,3095,3},{190,3092,3},{183,3085,3},{182,3083,3}, {178,3080,3},{177,3077,3},{175,3075,3},{172,3073,3},{170,3072,3},{168,3068,3}, {167,3067,3},{165,3065,3},{162,3063,3},{160,3062,3},{158,3060,3},{157,3055,3}, {155,3053,3},{152,3050,3},{148,3048,3},{147,3048,3},{142,3047,3},{140,3045,3}, {138,3043,3},{135,3043,3},{132,3038,3},{127,3038,3},{125,3040,3},{127,3040,3}, {123,3043,3},{123,3045,3},{127,3045,3},{127,3047,3},{123,3047,3},{122,3045,3}, {120,3038,3},{120,3035,3},{115,3033,3},{117,3028,3},{115,3027,3},{113,3023,3}, {107,3022,3},{100,3022,3},{90,3015,3},{90,3010,3},{87,3002,3},{83,2997,3}, {77,2995,3},{72,2995,3},{63,2993,3},{48,2997,3},{37,2987,3},{15,2982,3}, {17,2978,3},{15,2977,3},{13,2977,3},{12,2973,3},{7,2972,3},{0,2973,3},{65529,2972,3}, {65528,2972,3},{65528,2970,3},{65524,2967,3},{65519,2950,3},{65511,2945,3}, {65503,2943,3},{65498,2938,3},{65494,2938,3},{65489,2937,3},{65488,2932,3}, {65483,2935,3},{65479,2932,3},{65478,2930,3},{65476,2932,3},{65478,2933,3}, {65474,2938,3},{65466,2937,3},{65469,2942,3},{65476,2943,3},{65474,2947,3}, {65473,2948,3},{65476,2957,3},{65479,2960,3},{65488,2963,3},{65489,2965,3}, {65486,2967,3},{65479,2967,3},{65476,2963,3},{65474,2965,3},{65471,2963,3}, {65463,2962,3},{65458,2963,3},{65448,2963,3},{65446,2958,3},{65439,2958,3}, {65436,2957,3},{65429,2958,3},{65418,2957,3},{65414,2960,3},{65409,2958,3}, {65404,2960,3},{65398,2960,3},{65391,2950,3},{65386,2945,3},{65384,2937,3}, {65376,2932,3},{65373,2927,3},{65368,2922,3},{65369,2918,3},{65373,2915,3}, {65373,2912,3},{65378,2905,3},{65374,2903,3},{65369,2902,3},{65366,2902,3}, {65373,2907,3},{65374,2908,3},{65369,2910,3},{65361,2903,3},{65361,2902,3}, {65358,2902,3},{65356,2903,3},{65353,2900,3},{65343,2895,3},{65339,2893,3}, {65339,2890,3},{65334,2888,3},{65331,2888,3},{65331,2890,3},{65333,2892,3}, {65334,2890,3},{65338,2893,3},{65336,2895,3},{65331,2897,3},{65326,2892,3}, {65326,2890,3},{65323,2885,3},{65321,2890,3},{65319,2888,3},{65319,2887,3}, {65318,2887,3},{65314,2885,3},{65309,2887,3},{65311,2888,3},{65313,2892,3}, {65311,2893,3},{65308,2892,3},{65303,2888,3},{65311,2897,3},{65309,2897,3}, {65304,2895,3},{65304,2893,3},{65299,2885,3},{65291,2883,3},{65289,2885,3}, {65291,2887,3},{65288,2888,3},{65284,2885,3},{65279,2888,3},{65271,2888,3}, {65268,2893,3},{65266,2898,3},{65263,2902,3},{65259,2898,3},{65254,2898,3}, {65254,2905,3},{65249,2905,3},{65248,2908,3},{65244,2908,3},{65239,2913,3}, {65236,2915,3},{65234,2918,3},{65234,2922,3},{65229,2923,3},{65224,2923,3}, {65221,2922,3},{65214,2922,3},{65213,2922,3},{65209,2923,3},{65206,2920,3}, {65203,2920,3},{65201,2915,3},{65193,2913,3},{65169,2915,3},{65159,2910,3}, {65153,2913,3},{65149,2910,3},{65146,2912,3},{65144,2910,3},{65136,2910,3}, {65133,2908,3},{65126,2910,3},{65121,2908,3},{65118,2910,3},{65114,2910,3}, {65108,2905,3},{65104,2905,3},{65101,2915,3},{65124,2922,3},{65131,2923,3}, {65124,2927,3},{65106,2922,3},{65101,2922,3},{65094,2920,3},{65084,2920,3}, {65086,2918,3},{65086,2917,3},{65081,2915,3},{65074,2910,3},{65068,2912,3}, {65058,2910,3},{65034,2912,3},{65028,2910,3},{65023,2913,3},{65013,2915,3}, {64989,2928,3},{64983,2933,3},{64973,2938,3},{64971,2937,3},{64974,2933,3}, {64973,2933,3},{64964,2935,3},{64961,2933,3},{64961,2935,3},{64959,2933,3}, {64954,2932,3},{64946,2923,3},{64944,2918,3},{64928,2918,3},{64923,2927,3}, {64919,2928,3},{64918,2932,3},{64914,2933,3},{64908,2933,3},{64894,2940,3}, {64889,2940,3},{64884,2943,3},{64883,2947,3},{64884,2948,3},{64883,2948,3}, {64879,2948,3},{64874,2948,3},{64866,2950,3},{64858,2955,3},{64853,2963,3}, {64846,2967,3},{64841,2972,3},{64831,2978,3},{64828,2985,3},{64824,2997,3}, {64816,3008,3},{64813,3012,3},{64806,3015,3},{64803,3015,3},{64799,3018,3}, {64794,3018,3},{64789,3022,3},{64781,3022,3},{64774,3020,3},{64766,3023,3}, {64759,3027,3},{64751,3027,3},{64748,3030,3},{64748,3033,3},{64746,3035,3}, {64743,3038,3},{64741,3042,3},{64739,3042,3},{64736,3045,3},{64734,3045,3}, {64733,3050,3},{64729,3053,3},{64726,3053,3},{64721,3058,3},{64716,3057,3}, {64713,3057,3},{64713,3055,3},{64713,3050,3},{64711,3043,3},{64711,3038,3}, {64709,3033,3},{64709,3027,3},{64708,3022,3},{64708,3017,3},{64706,3010,3}, {64706,3005,3},{64704,3000,3},{64704,2993,3},{64703,2988,3},{64703,2983,3}, {64701,2977,3},{64701,2972,3},{64699,2967,3},{64699,2960,3},{64698,2955,3}, {64698,2950,3},{64696,2943,3},{64696,2938,3},{64694,2933,3},{64694,2927,3}, {64693,2922,3},{64693,2917,3},{64691,2910,3},{64691,2905,3},{64689,2900,3}, {64689,2893,3},{64688,2890,3},{64688,2888,3},{64686,2887,3},{64668,2873,3}, {64648,2853,3},{64639,2848,3},{64628,2833,3},{64619,2832,3},{64614,2835,3}, {64608,2832,3},{64606,2833,3},{64598,2832,3},{64596,2833,3},{64593,2835,3}, {64583,2832,3},{64583,2833,3},{64584,2835,3},{64583,2845,3},{64586,2853,3}, {64589,2850,3},{64589,2847,3},{64591,2848,3},{64594,2848,3},{64598,2848,3}, {64599,2850,3},{64598,2852,3},{64593,2852,3},{64589,2853,3},{64588,2857,3}, {64581,2857,3},{64581,2862,3},{64579,2858,3},{64576,2862,3},{64564,2863,3}, {64561,2867,3},{64558,2870,3},{64554,2867,3},{64541,2863,3},{64521,2862,3}, {64514,2857,3},{64506,2863,3},{64499,2862,3},{64493,2865,3},{64484,2863,3}, {64479,2867,3},{64474,2867,3},{64471,2870,3},{64468,2867,3},{64464,2867,3}, {64464,2862,3},{64453,2855,3},{64443,2855,3},{64428,2848,3},{64419,2848,3}, {64413,2847,3},{64408,2843,3},{64401,2843,3},{64391,2837,3},{64381,2837,3}, {64369,2843,3},{64368,2842,3},{64364,2845,3},{64358,2845,3},{64354,2848,3}, {64349,2850,3},{64349,2853,3},{64346,2855,3},{64344,2857,3},{64344,2860,3}, {64341,2862,3},{64338,2868,3},{64338,2875,3},{64331,2877,3},{64329,2880,3}, {64323,2885,3},{64316,2893,3},{64306,2900,3},{64298,2903,3},{64299,2910,3}, {64298,2910,3},{64296,2910,3},{64298,2913,3},{64299,2918,3},{64298,2923,3}, {64299,2925,3},{64298,2928,3},{64294,2930,3},{64294,2938,3},{64293,2940,3}, {64291,2947,3},{64289,2948,3},{64293,2953,3},{64298,2952,3},{64296,2948,3}, {64298,2948,3},{64301,2945,3},{64313,2948,3},{64314,2955,3},{64318,2957,3}, {64316,2960,3},{64314,2963,3},{64318,2972,3},{64321,2975,3},{64321,2980,3}, {64314,2980,3},{64309,2980,3},{64304,2980,3},{64298,2980,3},{64293,2980,3}, {64288,2980,3},{64283,2980,3},{64276,2980,3},{64271,2980,3},{64266,2980,3}, {64259,2980,3},{64254,2980,3},{64249,2980,3},{64244,2980,3},{64238,2980,3}, {64233,2980,3},{64228,2980,3},{64221,2980,3},{64216,2980,3},{64211,2980,3}, {64206,2980,3},{64199,2980,3},{64194,2980,3},{64191,2980,3},{64191,2972,3}, {64194,2963,3},{64199,2962,3},{64201,2965,3},{64204,2965,3},{64206,2968,3}, {64209,2968,3},{64211,2968,3},{64211,2963,3},{64214,2958,3},{64213,2955,3}, {64206,2947,3},{64203,2938,3},{64201,2937,3},{64201,2933,3},{64199,2930,3}, {64196,2923,3},{64193,2920,3},{64193,2918,3},{64196,2917,3},{64198,2915,3}, {64196,2902,3},{64201,2897,3},{64219,2892,3},{64223,2888,3},{64226,2887,3}, {64228,2885,3},{64231,2885,3},{64233,2883,3},{64238,2882,3},{64239,2877,3}, {64246,2873,3},{64251,2868,3},{64251,2863,3},{64246,2858,3},{64248,2857,3}, {64254,2857,3},{64258,2852,3},{64261,2850,3},{64264,2850,3},{64266,2853,3}, {64269,2853,3},{64274,2848,3},{64284,2845,3},{64293,2835,3},{64293,2823,3}, {64296,2820,3},{64293,2815,3},{64298,2812,3},{64299,2803,3},{64299,2798,3}, {64304,2797,3},{64311,2787,3},{64311,2783,3},{64308,2782,3},{64306,2778,3}, {64306,2767,3},{64309,2763,3},{64314,2757,3},{64319,2753,3},{64329,2750,3}, {64338,2748,3},{64341,2747,3},{64358,2723,3},{64374,2722,3},{64379,2720,3}, {64378,2715,3},{64376,2703,3},{64366,2705,3},{64361,2700,3},{64351,2700,3}, {64346,2697,3},{64339,2690,3},{64339,2687,3},{64339,2678,3},{64334,2672,3}, {64338,2667,3},{64341,2650,3},{64344,2647,3},{64344,2645,3},{64344,2637,3}, {64343,2632,3},{64343,2628,3},{64343,2625,3},{64346,2620,3},{64346,2598,3}, {64351,2597,3},{64354,2590,3},{64358,2587,3},{64356,2583,3},{64358,2573,3}, {64364,2563,3},{64363,2558,3},{64361,2558,3},{64361,2555,3},{64358,2552,3}, {64359,2550,3},{64361,2550,3},{64364,2550,3},{64369,2543,3},{64371,2540,3}, {64373,2537,3},{64381,2532,3},{64386,2532,3},{64389,2533,3},{64398,2528,3}, {64401,2530,3},{64401,2532,3},{64406,2530,3},{64408,2535,3},{64411,2533,3}, {64416,2535,3},{64416,2533,3},{64411,2518,3},{64409,2497,3},{64408,2488,3}, {64404,2482,3},{64404,2475,3},{64403,2470,3},{64398,2465,3},{64396,2460,3}, {64393,2458,3},{64389,2452,3},{64389,2445,3},{64394,2438,3},{64396,2432,3}, {64398,2430,3},{64399,2430,3},{64401,2437,3},{64408,2442,3},{64416,2442,3}, {64419,2438,3},{64424,2440,3},{64431,2432,3},{64431,2425,3},{64433,2420,3}, {64433,2415,3},{64434,2413,3},{64438,2415,3},{64441,2413,3},{64444,2413,3}, {64448,2407,3},{64449,2398,3},{64448,2397,3},{64443,2395,3},{64439,2390,3}, {64434,2388,3},{64433,2385,3},{64436,2377,3},{64434,2367,3},{64439,2348,3}, {64438,2337,3},{64428,2322,3},{64428,2315,3},{64426,2308,3},{64426,2295,3}, {64429,2290,3},{64431,2287,3},{64426,2278,3},{64426,2272,3},{64429,2265,3}, {64433,2260,3},{64433,2253,3},{64431,2252,3},{64423,2248,3},{64418,2233,3}, {64413,2230,3},{64411,2225,3},{64411,2223,3},{64418,2227,3},{64429,2225,3}, {64438,2218,3},{64441,2220,3},{64449,2217,3},{64454,2220,3},{64458,2230,3}, {64461,2232,3},{64466,2232,3},{64469,2230,3},{64483,2230,3},{64486,2227,3}, {64494,2230,3},{64499,2232,3},{64506,2227,3},{64509,2227,3},{64521,2220,3}, {64531,2220,3},{64536,2217,3},{64543,2217,3},{64546,2210,3},{64549,2208,3}, {64548,2207,3},{64549,2205,3},{64551,2202,3},{64558,2198,3},{64561,2198,3}, {64561,2195,3},{64563,2195,3},{64569,2187,3},{64574,2185,3},{64591,2182,3}, {64596,2178,3},{64613,2185,3},{64628,2183,3},{64633,2185,3},{64653,2187,3}, {64659,2188,3},{64673,2190,3},{64676,2193,3},{64678,2192,3},{64681,2193,3}, {64688,2193,3},{64694,2193,3},{64701,2190,3},{64704,2192,3},{64708,2188,3}, {64721,2187,3},{64724,2182,3},{64731,2180,3},{64736,2175,3},{64743,2175,3}, {64748,2177,3},{64751,2177,3},{64758,2177,3},{64778,2185,3},{64783,2183,3}, {64788,2187,3},{64791,2185,3},{64794,2185,3},{64796,2183,3},{64799,2183,3}, {64808,2178,3},{64808,2173,3},{64808,2167,3},{64808,2162,3},{64808,2157,3}, {64808,2150,3},{64808,2145,3},{64808,2140,3},{64808,2133,3},{64808,2128,3}, {64808,2123,3},{64808,2117,3},{64808,2112,3},{64808,2107,3},{64808,2100,3}, {64808,2095,3},{64808,2090,3},{64808,2083,3},{64808,2078,3},{64808,2073,3}, {64808,2067,3},{64808,2062,3},{64808,2053,3},{64813,2053,3},{64824,2055,3}, {64829,2057,3},{64844,2063,3},{64844,2058,3},{64844,2033,3},{64836,2032,3}, {64836,2027,3},{64836,2020,3},{64836,2015,3},{64836,2010,3},{64836,2003,3}, {64836,1998,3},{64836,1993,3},{64836,1987,3},{64836,1982,3},{64836,1977,3}, {64836,1970,3},{64836,1965,3},{64836,1960,3},{64836,1955,3},{64831,1957,3}, {64826,1953,3},{64821,1950,3},{64809,1948,3},{64799,1950,3},{64789,1953,3}, {64788,1953,3},{64784,1948,3},{64779,1947,3},{64778,1937,3},{64768,1940,3}, {64748,1935,3},{64736,1937,3},{64736,1932,3},{64736,1927,3},{64736,1920,3}, {64736,1915,3},{64736,1910,3},{64736,1903,3},{64736,1898,3},{64736,1893,3}, {64736,1890,3},{64736,1880,3},{64739,1877,3},{64743,1877,3},{64743,1868,3}, {64743,1853,3},{64741,1852,3},{64736,1853,3},{64736,1842,3},{64734,1838,3}, {64736,1833,3},{64736,1820,3},{64733,1812,3},{64726,1812,3},{64726,1800,3}, {64731,1795,3},{64731,1790,3},{64731,1785,3},{64728,1780,3},{64729,1773,3}, {64726,1763,3},{64728,1753,3},{64729,1752,3},{64733,1755,3},{64734,1755,3}, {64736,1750,3},{64741,1748,3},{64741,1747,3},{64743,1747,3},{64744,1743,3}, {64748,1745,3},{64749,1742,3},{64751,1742,3},{64751,1738,3},{64753,1740,3}, {64754,1737,3},{64758,1737,3},{64758,1733,3},{64761,1732,3},{64764,1732,3}, {64764,1730,3},{64766,1730,3},{64766,1728,3},{64773,1728,3},{64778,1722,3}, {64784,1718,3},{64789,1715,3},{64791,1715,3},{64791,1718,3},{64793,1718,3}, {64794,1715,3},{64794,1713,3},{64793,1712,3},{64794,1710,3},{64801,1710,3}, {64806,1700,3},{64811,1698,3},{64816,1695,3},{64819,1695,3},{64821,1693,3}, {64828,1692,3},{64829,1693,3},{64829,1697,3},{64834,1697,3},{64838,1695,3}, {64839,1692,3},{64846,1693,3},{64849,1690,3},{64851,1687,3},{64854,1687,3}, {64858,1683,3},{64864,1682,3},{64868,1678,3},{64876,1677,3},{64879,1673,3}, {64883,1675,3},{64886,1672,3},{64889,1672,3},{64889,1670,3},{64894,1672,3}, {64896,1668,3},{64899,1670,3},{64901,1668,3},{64901,1672,3},{64903,1672,3}, {64908,1670,3},{64916,1672,3},{64919,1672,3},{64923,1668,3},{64924,1665,3}, {64926,1663,3},{64928,1662,3},{64929,1663,3},{64929,1660,3},{64938,1660,3}, {64938,1658,3},{64939,1658,3},{64944,1660,3},{64946,1658,3},{64948,1652,3}, {64946,1643,3},{64948,1640,3},{64951,1637,3},{64951,1632,3},{64951,1622,3}, {64951,1617,3},{64949,1612,3},{64949,1605,3},{64949,1600,3},{64949,1595,3}, {64949,1588,3},{64949,1582,3},{64949,1577,3},{64949,1572,3},{64951,1567,3}, {64951,1562,3},{64951,1555,3},{64949,1550,3},{64949,1545,3},{64949,1538,3}, {64949,1533,3},{64949,1528,3},{64949,1522,3},{64949,1517,3},{64949,1512,3}, {64949,1505,3},{64949,1500,3},{64949,1495,3},{64949,1490,3},{64949,1483,3}, {64948,1478,3},{64949,1470,3},{64946,1460,3},{64948,1450,3},{64946,1447,3}, {64948,1425,3},{64949,1418,3},{64948,1403,3},{64953,1398,3},{64949,1377,3}, {64949,1353,3},{64951,1345,3},{64949,1338,3},{64948,1333,3},{64949,1325,3}, {64951,1318,3},{222,1620,131},{225,1618,3},{227,1618,3},{242,1612,3},{247,1612,3}, {252,1608,3},{258,1612,3},{265,1610,3},{270,1612,3},{270,1608,3},{275,1608,3}, {278,1607,3},{282,1612,3},{290,1610,3},{298,1605,3},{298,1600,3},{305,1598,3}, {310,1593,3},{312,1590,3},{310,1582,3},{333,1560,3},{368,1525,3},{392,1508,3}, {403,1505,3},{402,1512,3},{405,1515,3},{405,1518,3},{407,1518,3},{407,1515,3}, {410,1513,3},{413,1510,3},{430,1508,3},{437,1503,3},{442,1502,3},{453,1480,3}, {462,1473,3},{477,1470,3},{480,1472,3},{485,1470,3},{488,1472,3},{495,1468,3}, {498,1470,3},{502,1467,3},{503,1468,3},{510,1468,3},{512,1468,3},{518,1467,3}, {522,1465,3},{525,1458,3},{530,1453,3},{538,1458,3},{542,1460,3},{545,1460,3}, {552,1462,3},{560,1458,3},{572,1463,3},{590,1462,3},{592,1460,3},{593,1458,3}, {590,1455,3},{592,1448,3},{597,1447,3},{600,1442,3},{605,1442,3},{608,1443,3}, {610,1447,3},{613,1448,3},{613,1452,3},{615,1452,3},{620,1455,3},{618,1458,3}, {627,1473,3},{633,1480,3},{635,1480,3},{638,1480,3},{673,1497,3},{675,1500,3}, {678,1507,3},{683,1507,3},{697,1513,3},{705,1515,3},{710,1520,3},{718,1520,3}, {723,1523,3},{730,1530,3},{732,1535,3},{735,1537,3},{737,1542,3},{740,1542,3}, {740,1547,3},{743,1543,3},{753,1550,3},{752,1568,3},{752,1572,3},{747,1573,3}, {745,1578,3},{750,1597,3},{753,1602,3},{758,1603,3},{760,1608,3},{762,1622,3}, {767,1632,3},{768,1640,3},{770,1640,3},{780,1642,3},{778,1647,3},{785,1650,3}, {787,1657,3},{778,1657,3},{777,1662,3},{773,1663,3},{768,1663,3},{765,1670,3}, {760,1675,3},{755,1678,3},{755,1682,3},{757,1685,3},{757,1688,3},{760,1687,3}, {763,1687,3},{765,1700,3},{767,1702,3},{767,1707,3},{770,1707,3},{768,1713,3}, {777,1718,3},{777,1720,3},{777,1722,3},{780,1723,3},{783,1727,3},{783,1730,3}, {788,1738,3},{787,1742,3},{790,1743,3},{790,1745,3},{788,1748,3},{793,1752,3}, {793,1758,3},{797,1763,3},{798,1763,3},{795,1788,3},{802,1805,3},{803,1858,3}, {808,1863,3},{813,1863,3},{820,1867,3},{822,1870,3},{825,1880,3},{828,1883,3}, {832,1887,3},{833,1887,3},{835,1888,3},{843,1893,3},{853,1905,3},{860,1907,3}, {867,1913,3},{870,1912,3},{872,1907,3},{875,1903,3},{877,1898,3},{880,1895,3}, {880,1893,3},{885,1890,3},{883,1888,3},{885,1887,3},{888,1888,3},{893,1897,3}, {897,1898,3},{902,1908,3},{900,1917,3},{902,1920,3},{902,1925,3},{900,1928,3}, {902,1930,3},{900,1938,3},{902,1942,3},{900,1947,3},{900,1955,3},{903,1958,3}, {902,1968,3},{903,1977,3},{905,1983,3},{903,1990,3},{907,1992,3},{907,1995,3}, {908,1995,3},{908,1998,3},{910,2002,3},{908,2003,3},{912,2003,3},{913,2007,3}, {913,2010,3},{915,2010,3},{912,2015,3},{913,2020,3},{912,2025,3},{910,2033,3}, {910,2037,3},{913,2042,3},{913,2043,3},{920,2048,3},{922,2052,3},{927,2050,3}, {928,2053,3},{932,2053,3},{930,2060,3},{930,2067,3},{933,2065,3},{937,2068,3}, {938,2077,3},{940,2077,3},{942,2082,3},{948,2083,3},{952,2090,3},{960,2095,3}, {960,2098,3},{963,2098,3},{963,2100,3},{968,2100,3},{972,2102,3},{975,2102,3}, {977,2105,3},{975,2107,3},{977,2110,3},{983,2113,3},{987,2117,3},{988,2120,3}, {993,2122,3},{998,2127,3},{995,2133,3},{997,2137,3},{1005,2143,3},{1012,2145,3}, {1020,2153,3},{1022,2163,3},{1023,2167,3},{1028,2168,3},{1028,2172,3},{1037,2172,3}, {1040,2175,3},{1045,2173,3},{1052,2170,3},{1063,2172,3},{1065,2177,3},{1067,2178,3}, {1068,2182,3},{1067,2185,3},{1072,2190,3},{1073,2195,3},{1073,2200,3},{1080,2200,3}, {1082,2202,3},{1083,2205,3},{1083,2210,3},{1082,2218,3},{1087,2220,3},{1092,2225,3}, {1090,2228,3},{1093,2232,3},{1095,2237,3},{1095,2240,3},{1098,2243,3},{1100,2247,3}, {1100,2252,3},{1097,2255,3},{1098,2260,3},{1097,2265,3},{1095,2277,3},{1088,2288,3}, {1070,2302,3},{1062,2313,3},{1048,2325,3},{1047,2330,3},{1042,2333,3},{1037,2337,3}, {1033,2338,3},{1028,2342,3},{1025,2343,3},{1020,2347,3},{1015,2350,3},{1012,2352,3}, {1007,2355,3},{1003,2357,3},{998,2360,3},{992,2363,3},{987,2367,3},{983,2367,3}, {977,2368,3},{972,2368,3},{967,2370,3},{960,2367,3},{957,2363,3},{953,2362,3}, {952,2363,3},{945,2363,3},{943,2367,3},{933,2363,3},{928,2365,3},{918,2357,3}, {917,2350,3},{902,2345,3},{898,2347,3},{897,2350,3},{897,2353,3},{900,2357,3}, {900,2358,3},{890,2358,3},{878,2350,3},{872,2352,3},{873,2363,3},{872,2367,3}, {870,2373,3},{873,2382,3},{870,2388,3},{872,2393,3},{870,2397,3},{870,2400,3}, {870,2402,3},{868,2413,3},{870,2417,3},{868,2420,3},{870,2425,3},{867,2425,3}, {863,2423,3},{858,2427,3},{855,2423,3},{847,2417,3},{838,2415,3},{832,2418,3}, {828,2423,3},{827,2432,3},{825,2435,3},{827,2440,3},{827,2447,3},{823,2448,3}, {820,2453,3},{822,2463,3},{820,2473,3},{818,2477,3},{817,2485,3},{803,2490,3}, {802,2493,3},{797,2497,3},{793,2505,3},{790,2508,3},{790,2515,3},{790,2518,3}, {787,2522,3},{778,2528,3},{768,2530,3},{760,2522,3},{750,2520,3},{747,2525,3}, {747,2530,3},{742,2535,3},{735,2537,3},{727,2548,3},{725,2557,3},{722,2563,3}, {717,2568,3},{717,2577,3},{710,2583,3},{708,2592,3},{702,2597,3},{698,2603,3}, {692,2607,3},{687,2613,3},{670,2628,3},{667,2635,3},{665,2642,3},{662,2642,3}, {660,2637,3},{657,2635,3},{652,2637,3},{647,2632,3},{642,2633,3},{637,2633,3}, {633,2635,3},{632,2640,3},{628,2642,3},{628,2650,3},{622,2653,3},{620,2658,3}, {615,2658,3},{610,2652,3},{608,2650,3},{607,2653,3},{608,2658,3},{603,2662,3}, {598,2667,3},{600,2675,3},{598,2683,3},{588,2692,3},{585,2702,3},{578,2708,3}, {578,2713,3},{572,2720,3},{567,2723,3},{562,2723,3},{555,2730,3},{548,2727,3}, {542,2727,3},{533,2730,3},{527,2732,3},{513,2745,3},{508,2748,3},{503,2748,3}, {502,2745,3},{502,2743,3},{507,2743,3},{508,2740,3},{510,2733,3},{512,2732,3}, {515,2722,3},{520,2715,3},{520,2708,3},{513,2693,3},{503,2687,3},{505,2683,3}, {503,2680,3},{508,2677,3},{510,2673,3},{508,2668,3},{507,2667,3},{508,2663,3}, {507,2662,3},{508,2662,3},{508,2658,3},{505,2655,3},{505,2650,3},{507,2647,3}, {510,2645,3},{515,2638,3},{513,2637,3},{515,2635,3},{513,2632,3},{515,2628,3}, {517,2625,3},{518,2625,3},{520,2622,3},{523,2620,3},{523,2615,3},{525,2615,3}, {525,2613,3},{523,2612,3},{523,2608,3},{520,2610,3},{520,2605,3},{518,2603,3}, {520,2602,3},{522,2600,3},{523,2597,3},{520,2595,3},{520,2593,3},{520,2592,3}, {517,2592,3},{517,2590,3},{522,2588,3},{522,2585,3},{520,2583,3},{522,2580,3}, {523,2582,3},{523,2580,3},{527,2580,3},{527,2578,3},{527,2577,3},{525,2577,3}, {525,2575,3},{527,2572,3},{528,2572,3},{532,2565,3},{530,2563,3},{532,2560,3}, {533,2562,3},{533,2558,3},{537,2558,3},{538,2555,3},{535,2553,3},{533,2550,3}, {535,2548,3},{535,2547,3},{533,2547,3},{532,2542,3},{533,2540,3},{532,2537,3}, {530,2538,3},{528,2535,3},{518,2532,3},{517,2532,3},{515,2535,3},{512,2535,3}, {508,2532,3},{505,2532,3},{502,2528,3},{500,2518,3},{502,2513,3},{495,2507,3}, {498,2498,3},{497,2488,3},{493,2487,3},{493,2482,3},{492,2478,3},{492,2477,3}, {492,2473,3},{492,2472,3},{492,2465,3},{495,2467,3},{498,2462,3},{503,2460,3}, {503,2457,3},{508,2453,3},{510,2447,3},{510,2443,3},{507,2443,3},{512,2440,3}, {510,2438,3},{505,2435,3},{505,2440,3},{503,2440,3},{502,2438,3},{500,2437,3}, {500,2428,3},{498,2427,3},{493,2427,3},{493,2425,3},{497,2423,3},{493,2418,3}, {490,2415,3},{492,2410,3},{490,2407,3},{485,2398,3},{487,2395,3},{485,2393,3}, {482,2395,3},{482,2388,3},{482,2385,3},{482,2383,3},{482,2380,3},{478,2375,3}, {477,2370,3},{473,2358,3},{467,2350,3},{465,2345,3},{458,2343,3},{460,2333,3}, {463,2330,3},{462,2327,3},{465,2327,3},{467,2323,3},{473,2317,3},{470,2310,3}, {472,2308,3},{473,2307,3},{475,2302,3},{482,2298,3},{483,2297,3},{482,2293,3}, {482,2288,3},{475,2288,3},{473,2287,3},{470,2285,3},{472,2280,3},{472,2278,3}, {465,2275,3},{462,2273,3},{457,2272,3},{453,2270,3},{448,2268,3},{448,2260,3}, {447,2260,3},{442,2258,3},{437,2262,3},{433,2257,3},{428,2253,3},{422,2253,3}, {415,2245,3},{413,2233,3},{415,2220,3},{417,2217,3},{422,2210,3},{425,2200,3}, {423,2195,3},{423,2187,3},{427,2183,3},{427,2177,3},{430,2175,3},{430,2163,3}, {425,2153,3},{427,2147,3},{428,2135,3},{433,2128,3},{432,2125,3},{428,2123,3}, {428,2122,3},{433,2112,3},{440,2107,3},{443,2097,3},{445,2083,3},{443,2082,3}, {442,2078,3},{442,2058,3},{452,2045,3},{455,2043,3},{462,2045,3},{467,2040,3}, {477,2035,3},{480,2023,3},{487,2018,3},{492,2008,3},{498,2000,3},{500,1990,3}, {508,1983,3},{513,1972,3},{513,1962,3},{515,1955,3},{513,1950,3},{513,1942,3}, {508,1937,3},{500,1923,3},{497,1920,3},{493,1918,3},{493,1912,3},{490,1907,3}, {483,1905,3},{480,1902,3},{475,1900,3},{472,1895,3},{467,1893,3},{465,1890,3}, {462,1888,3},{457,1883,3},{447,1880,3},{440,1875,3},{437,1870,3},{435,1865,3}, {437,1858,3},{432,1853,3},{430,1853,3},{423,1858,3},{413,1863,3},{403,1865,3}, {398,1865,3},{388,1862,3},{373,1858,3},{348,1863,3},{348,1858,3},{360,1853,3}, {363,1848,3},{360,1845,3},{360,1840,3},{358,1840,3},{358,1837,3},{358,1827,3}, {350,1823,3},{348,1820,3},{348,1817,3},{355,1815,3},{357,1810,3},{357,1803,3}, {353,1798,3},{358,1793,3},{357,1793,3},{353,1787,3},{362,1783,3},{362,1777,3}, {363,1773,3},{363,1772,3},{363,1762,3},{372,1748,3},{368,1745,3},{367,1740,3}, {362,1735,3},{363,1730,3},{362,1725,3},{358,1723,3},{358,1715,3},{357,1712,3}, {358,1708,3},{355,1705,3},{353,1698,3},{355,1697,3},{357,1688,3},{353,1687,3}, {352,1685,3},{352,1680,3},{355,1677,3},{355,1670,3},{353,1667,3},{348,1658,3}, {332,1655,3},{328,1653,3},{325,1653,3},{315,1648,3},{307,1652,3},{300,1647,3}, {292,1647,3},{288,1650,3},{285,1650,3},{278,1647,3},{273,1645,3},{268,1643,3}, {263,1640,3},{260,1638,3},{255,1637,3},{250,1633,3},{245,1632,3},{240,1630,3}, {235,1627,3},{230,1625,3},{227,1623,3},{222,1620,3},{62678,1648,131},{62683,1660,3}, {62686,1662,3},{62689,1668,3},{62686,1670,3},{62686,1673,3},{62691,1678,3}, {62696,1677,3},{62699,1680,3},{62708,1677,3},{62709,1677,3},{62711,1678,3}, {62709,1682,3},{62714,1680,3},{62714,1685,3},{62716,1685,3},{62718,1683,3}, {62719,1685,3},{62718,1688,3},{62726,1688,3},{62729,1692,3},{62729,1695,3}, {62731,1698,3},{62729,1700,3},{62733,1703,3},{62733,1707,3},{62731,1710,3}, {62726,1713,3},{62726,1718,3},{62716,1718,3},{62713,1722,3},{62711,1723,3}, {62714,1732,3},{62713,1735,3},{62706,1737,3},{62701,1740,3},{62696,1740,3}, {62693,1738,3},{62689,1732,3},{62686,1735,3},{62681,1737,3},{62679,1740,3}, {62678,1742,3},{62668,1740,3},{62664,1742,3},{62666,1755,3},{62668,1758,3}, {62666,1760,3},{62661,1760,3},{62659,1763,3},{62659,1767,3},{62661,1770,3}, {62659,1772,3},{62661,1775,3},{62658,1792,3},{62656,1797,3},{62649,1805,3}, {62644,1818,3},{62648,1822,3},{62648,1833,3},{62646,1838,3},{62648,1847,3}, {62648,1850,3},{62649,1855,3},{62653,1872,3},{62649,1895,3},{62643,1902,3}, {62643,1905,3},{62639,1912,3},{62643,1918,3},{62646,1923,3},{62646,1928,3}, {62648,1930,3},{62651,1927,3},{62656,1923,3},{62661,1927,3},{62663,1937,3}, {62666,1947,3},{62669,1950,3},{62676,1952,3},{62678,1953,3},{62683,1957,3}, {62684,1965,3},{62684,1967,3},{62686,1972,3},{62688,1973,3},{62686,1980,3}, {62688,1983,3},{62693,1987,3},{62693,2000,3},{62694,2000,3},{62701,2000,3}, {62706,2000,3},{62711,2000,3},{62718,2000,3},{62723,2000,3},{62728,2000,3}, {62734,2000,3},{62739,2000,3},{62744,2000,3},{62751,2000,3},{62756,2000,3}, {62761,2000,3},{62766,2000,3},{62773,2000,3},{62778,2000,3},{62783,2000,3}, {62789,2000,3},{62794,2000,3},{62799,2000,3},{62806,2000,3},{62811,2000,3}, {62816,2000,3},{62823,2000,3},{62828,2000,3},{62833,2000,3},{62838,2000,3}, {62844,2000,3},{62849,2000,3},{62854,2000,3},{62861,2000,3},{62866,2000,3}, {62871,2000,3},{62878,2000,3},{62883,2000,3},{62888,2000,3},{62894,2000,3}, {62899,2000,3},{62904,2000,3},{62911,2000,3},{62916,2000,3},{62921,2000,3}, {62926,2000,3},{62933,2000,3},{62938,2000,3},{62943,2000,3},{62949,2000,3}, {62954,2000,3},{62959,2000,3},{62966,2000,3},{62971,2000,3},{62976,2000,3}, {62983,2000,3},{62988,2000,3},{62993,2000,3},{62999,2000,3},{63004,2000,3}, {63009,2000,3},{63016,2000,3},{63021,2000,3},{63026,2000,3},{63031,2000,3}, {63038,2000,3},{63043,2000,3},{63048,2000,3},{63054,2000,3},{63059,2000,3}, {63048,2013,3},{63044,2025,3},{63038,2030,3},{63033,2038,3},{63028,2040,3}, {63019,2047,3},{63016,2045,3},{63013,2050,3},{63009,2050,3},{63008,2053,3}, {63004,2053,3},{62998,2057,3},{62996,2062,3},{62993,2062,3},{62993,2063,3}, {62989,2063,3},{62989,2068,3},{62989,2067,3},{62988,2063,3},{62983,2063,3}, {62979,2068,3},{62978,2068,3},{62974,2065,3},{62971,2068,3},{62968,2068,3}, {62964,2073,3},{62958,2077,3},{62953,2075,3},{62954,2078,3},{62951,2078,3}, {62948,2082,3},{62939,2083,3},{62936,2082,3},{62929,2082,3},{62921,2087,3}, {62918,2082,3},{62911,2080,3},{62904,2075,3},{62901,2070,3},{62898,2068,3}, {62891,2062,3},{62881,2060,3},{62878,2063,3},{62868,2060,3},{62853,2065,3}, {62851,2068,3},{62846,2070,3},{62849,2072,3},{62849,2077,3},{62854,2083,3}, {62856,2090,3},{62854,2097,3},{62851,2100,3},{62849,2110,3},{62849,2115,3}, {62851,2123,3},{62851,2130,3},{62854,2138,3},{62853,2145,3},{62851,2152,3}, {62851,2158,3},{62849,2162,3},{62849,2167,3},{62854,2175,3},{62856,2177,3}, {62859,2178,3},{62866,2177,3},{62868,2177,3},{62869,2182,3},{62869,2195,3}, {62873,2205,3},{62883,2213,3},{62896,2220,3},{62899,2223,3},{62903,2225,3}, {62904,2235,3},{62908,2237,3},{62909,2240,3},{62913,2242,3},{62916,2250,3}, {62914,2253,3},{62918,2257,3},{62921,2257,3},{62924,2262,3},{62928,2263,3}, {62929,2267,3},{62934,2265,3},{62936,2272,3},{62944,2273,3},{62948,2270,3}, {62949,2273,3},{62951,2273,3},{62953,2277,3},{62954,2277,3},{62958,2273,3}, {62959,2275,3},{62963,2277,3},{62969,2282,3},{62971,2280,3},{62974,2282,3}, {62974,2283,3},{62979,2282,3},{62984,2285,3},{62988,2283,3},{62989,2288,3}, {62996,2292,3},{62999,2297,3},{63003,2297,3},{63004,2300,3},{63006,2302,3}, {63006,2305,3},{63004,2307,3},{63003,2308,3},{63006,2310,3},{63009,2322,3}, {63009,2330,3},{63006,2342,3},{63008,2347,3},{63003,2350,3},{63003,2353,3}, {62998,2358,3},{62998,2362,3},{62991,2368,3},{62989,2375,3},{62986,2377,3}, {62984,2382,3},{62979,2383,3},{62978,2387,3},{62974,2390,3},{62973,2393,3}, {62974,2397,3},{62974,2400,3},{62969,2400,3},{62974,2413,3},{62973,2417,3}, {62974,2418,3},{62966,2428,3},{62964,2428,3},{62964,2432,3},{62961,2435,3}, {62959,2440,3},{62963,2445,3},{62958,2458,3},{62954,2463,3},{62953,2470,3}, {62954,2473,3},{62953,2480,3},{62954,2490,3},{62963,2503,3},{62963,2510,3}, {62961,2513,3},{62961,2535,3},{62969,2552,3},{62974,2558,3},{62993,2568,3}, {63009,2573,3},{63014,2577,3},{63044,2587,3},{63063,2587,3},{63061,2590,3}, {63064,2595,3},{63063,2598,3},{63064,2602,3},{63073,2627,3},{63073,2642,3}, {63078,2647,3},{63086,2650,3},{63093,2655,3},{63096,2663,3},{63101,2665,3}, {63104,2672,3},{63109,2685,3},{63121,2687,3},{63124,2687,3},{63128,2688,3}, {63166,2697,3},{63168,2698,3},{63169,2700,3},{63173,2702,3},{63169,2703,3}, {63168,2705,3},{63169,2707,3},{63174,2707,3},{63176,2710,3},{63179,2712,3}, {63179,2715,3},{63183,2713,3},{63183,2720,3},{63186,2720,3},{63189,2728,3}, {63196,2735,3},{63194,2738,3},{63198,2740,3},{63198,2742,3},{63194,2743,3}, {63198,2745,3},{63198,2753,3},{63203,2757,3},{63209,2757,3},{63213,2760,3}, {63213,2765,3},{63216,2770,3},{63214,2772,3},{63213,2775,3},{63219,2778,3}, {63223,2777,3},{63223,2782,3},{63226,2782,3},{63228,2788,3},{63231,2795,3}, {63241,2793,3},{63241,2797,3},{63244,2803,3},{63248,2805,3},{63253,2805,3}, {63253,2808,3},{63256,2812,3},{63258,2815,3},{63266,2817,3},{63269,2820,3}, {63271,2827,3},{63274,2830,3},{63279,2837,3},{63279,2845,3},{63278,2853,3}, {63279,2857,3},{63279,2863,3},{63284,2873,3},{63288,2883,3},{63289,2883,3}, {63291,2888,3},{63291,2892,3},{63298,2897,3},{63304,2897,3},{63311,2902,3}, {63313,2902,3},{63314,2917,3},{63316,2920,3},{63318,2923,3},{63318,2937,3}, {63319,2947,3},{63318,2953,3},{63321,2955,3},{63323,2958,3},{63321,2962,3}, {63323,2963,3},{63324,2965,3},{63323,2967,3},{63323,2977,3},{63318,2983,3}, {63318,2993,3},{63306,3012,3},{63306,3025,3},{63301,3030,3},{63303,3040,3}, {63304,3048,3},{63304,3057,3},{63304,3058,3},{63303,3063,3},{63306,3067,3}, {63308,3090,3},{63304,3103,3},{63303,3108,3},{63304,3117,3},{63299,3120,3}, {63299,3127,3},{63294,3130,3},{63288,3132,3},{63283,3133,3},{63278,3137,3}, {63271,3138,3},{63266,3140,3},{63261,3142,3},{63256,3143,3},{63249,3145,3}, {63244,3147,3},{63239,3148,3},{63234,3150,3},{63228,3152,3},{63223,3155,3}, {63218,3157,3},{63211,3155,3},{63206,3155,3},{63199,3155,3},{63194,3153,3}, {63188,3155,3},{63174,3168,3},{63168,3168,3},{63151,3177,3},{63143,3188,3}, {63119,3188,3},{63104,3197,3},{63089,3202,3},{63069,3200,3},{63033,3202,3}, {62998,3202,3},{62994,3198,3},{62984,3198,3},{62983,3200,3},{62971,3202,3}, {62969,3198,3},{62954,3192,3},{62941,3197,3},{62936,3188,3},{62939,3182,3}, {62963,3142,3},{62961,3132,3},{62944,3113,3},{62941,3112,3},{62926,3107,3}, {62913,3097,3},{62898,3083,3},{62889,3080,3},{62856,3082,3},{62854,3082,3}, {62856,3087,3},{62859,3090,3},{62856,3090,3},{62853,3092,3},{62848,3097,3}, {62846,3098,3},{62843,3098,3},{62839,3097,3},{62833,3098,3},{62828,3105,3}, {62819,3115,3},{62806,3148,3},{62808,3198,3},{62809,3197,3},{62824,3197,3}, {62843,3200,3},{62854,3200,3},{62854,3208,3},{62853,3213,3},{62851,3218,3}, {62853,3223,3},{62849,3233,3},{62851,3288,3},{62824,3283,3},{62819,3280,3}, {62811,3278,3},{62806,3277,3},{62801,3275,3},{62796,3272,3},{62791,3270,3}, {62786,3268,3},{62781,3267,3},{62776,3265,3},{62771,3263,3},{62766,3263,3}, {62759,3262,3},{62754,3260,3},{62748,3258,3},{62743,3260,3},{62719,3255,3}, {62698,3243,3},{62696,3240,3},{62696,3242,3},{62693,3243,3},{62683,3238,3}, {62673,3228,3},{62669,3223,3},{62664,3218,3},{62656,3210,3},{62658,3205,3}, {62656,3200,3},{62654,3200,3},{62653,3202,3},{62654,3207,3},{62648,3200,3}, {62643,3188,3},{62643,3183,3},{62643,3177,3},{62641,3178,3},{62634,3172,3}, {62631,3167,3},{62628,3163,3},{62623,3158,3},{62619,3155,3},{62616,3150,3}, {62611,3147,3},{62608,3143,3},{62601,3137,3},{62594,3132,3},{62591,3128,3}, {62586,3123,3},{62581,3120,3},{62578,3118,3},{62571,3113,3},{62568,3112,3}, {62563,3110,3},{62559,3107,3},{62554,3105,3},{62549,3105,3},{62549,3102,3}, {62546,3100,3},{62548,3107,3},{62546,3105,3},{62528,3087,3},{62503,3073,3}, {62488,3063,3},{62486,3062,3},{62471,3052,3},{62451,3040,3},{62444,3032,3}, {62439,3030,3},{62418,3010,3},{62408,3002,3},{62394,2985,3},{62391,2977,3}, {62381,2963,3},{62378,2963,3},{62374,2955,3},{62373,2953,3},{62368,2940,3}, {62366,2942,3},{62363,2940,3},{62361,2937,3},{62358,2935,3},{62356,2932,3}, {62341,2922,3},{62338,2915,3},{62329,2910,3},{62316,2895,3},{62308,2887,3}, {62301,2878,3},{62298,2873,3},{62291,2865,3},{62289,2865,3},{62283,2857,3}, {62279,2853,3},{62268,2837,3},{62266,2837,3},{62256,2813,3},{62246,2807,3}, {62238,2793,3},{62233,2790,3},{62224,2773,3},{62216,2763,3},{62211,2752,3}, {62208,2750,3},{62208,2747,3},{62206,2747,3},{62201,2738,3},{62199,2733,3}, {62191,2722,3},{62186,2712,3},{62183,2710,3},{62179,2700,3},{62178,2692,3}, {62173,2685,3},{62171,2673,3},{62168,2665,3},{62164,2663,3},{62164,2658,3}, {62161,2653,3},{62159,2648,3},{62159,2645,3},{62161,2637,3},{62159,2628,3}, {62164,2608,3},{62164,2598,3},{62163,2585,3},{62159,2572,3},{62156,2568,3}, {62151,2563,3},{62143,2562,3},{62136,2568,3},{62133,2570,3},{62133,2565,3}, {62131,2563,3},{62131,2557,3},{62133,2548,3},{62133,2540,3},{62139,2523,3}, {62139,2503,3},{62136,2492,3},{62128,2492,3},{62123,2483,3},{62119,2483,3}, {62118,2487,3},{62116,2483,3},{62118,2480,3},{62118,2470,3},{62119,2465,3}, {62118,2460,3},{62119,2452,3},{62126,2438,3},{62126,2427,3},{62131,2415,3}, {62133,2397,3},{62138,2368,3},{62138,2355,3},{62134,2340,3},{62131,2337,3}, {62128,2337,3},{62124,2340,3},{62128,2307,3},{62131,2305,3},{62133,2300,3}, {62128,2305,3},{62128,2300,3},{62128,2297,3},{62131,2280,3},{62134,2278,3}, {62136,2280,3},{62138,2273,3},{62133,2278,3},{62133,2277,3},{62136,2258,3}, {62136,2255,3},{62131,2247,3},{62129,2240,3},{62131,2230,3},{62126,2215,3}, {62121,2212,3},{62118,2215,3},{62114,2195,3},{62109,2192,3},{62106,2193,3}, {62103,2190,3},{62098,2180,3},{62098,2165,3},{62101,2153,3},{62098,2143,3}, {62096,2142,3},{62093,2130,3},{62099,2107,3},{62099,2095,3},{62096,2082,3}, {62094,2085,3},{62091,2087,3},{62089,2085,3},{62093,2067,3},{62089,2050,3}, {62086,2043,3},{62079,2038,3},{62074,2027,3},{62068,2022,3},{62068,2017,3}, {62063,2007,3},{62059,2005,3},{62056,2005,3},{62054,2000,3},{62054,1997,3}, {62058,1990,3},{62061,1985,3},{62061,1968,3},{62058,1965,3},{62064,1955,3}, {62069,1952,3},{62071,1945,3},{62074,1942,3},{62076,1938,3},{62074,1930,3}, {62083,1937,3},{62089,1933,3},{62094,1928,3},{62093,1922,3},{62096,1912,3}, {62099,1908,3},{62101,1912,3},{62106,1913,3},{62101,1908,3},{62103,1900,3}, {62099,1897,3},{62101,1893,3},{62098,1882,3},{62101,1880,3},{62103,1882,3}, {62106,1880,3},{62111,1885,3},{62118,1882,3},{62121,1885,3},{62126,1882,3}, {62128,1877,3},{62129,1862,3},{62126,1848,3},{62123,1845,3},{62119,1843,3}, {62113,1848,3},{62103,1847,3},{62101,1848,3},{62104,1842,3},{62111,1838,3}, {62113,1838,3},{62118,1837,3},{62119,1832,3},{62123,1832,3},{62124,1835,3}, {62129,1835,3},{62129,1833,3},{62133,1832,3},{62138,1837,3},{62144,1837,3}, {62144,1847,3},{62148,1848,3},{62151,1848,3},{62159,1843,3},{62166,1843,3}, {62173,1840,3},{62174,1837,3},{62178,1833,3},{62179,1832,3},{62186,1832,3}, {62189,1830,3},{62194,1823,3},{62201,1815,3},{62203,1817,3},{62214,1808,3}, {62218,1805,3},{62223,1797,3},{62226,1795,3},{62226,1800,3},{62221,1803,3}, {62216,1810,3},{62216,1812,3},{62218,1813,3},{62221,1810,3},{62226,1803,3}, {62233,1803,3},{62236,1798,3},{62234,1795,3},{62233,1795,3},{62231,1792,3}, {62233,1790,3},{62234,1790,3},{62236,1788,3},{62243,1788,3},{62244,1787,3}, {62249,1788,3},{62253,1785,3},{62256,1790,3},{62263,1790,3},{62264,1792,3}, {62264,1795,3},{62266,1797,3},{62263,1798,3},{62258,1805,3},{62258,1813,3}, {62268,1825,3},{62273,1828,3},{62288,1833,3},{62303,1832,3},{62308,1835,3}, {62326,1830,3},{62331,1830,3},{62341,1827,3},{62346,1828,3},{62353,1823,3}, {62361,1822,3},{62368,1818,3},{62391,1800,3},{62399,1792,3},{62411,1785,3}, {62414,1780,3},{62433,1768,3},{62444,1760,3},{62456,1755,3},{62461,1753,3}, {62468,1748,3},{62476,1745,3},{62501,1728,3},{62509,1727,3},{62521,1720,3}, {62539,1715,3},{62553,1708,3},{62568,1705,3},{62579,1700,3},{62583,1700,3}, {62599,1693,3},{62606,1688,3},{62611,1687,3},{62614,1685,3},{62628,1682,3}, {62633,1675,3},{62638,1673,3},{62646,1667,3},{62649,1660,3},{62659,1657,3}, {62664,1657,3},{62673,1647,3},{62678,1648,3},{62674,2870,131},{62668,2872,3}, {62666,2878,3},{62661,2880,3},{62659,2887,3},{62648,2895,3},{62644,2900,3}, {62646,2902,3},{62643,2907,3},{62639,2907,3},{62634,2918,3},{62629,2923,3}, {62628,2933,3},{62621,2933,3},{62619,2937,3},{62601,2945,3},{62598,2943,3}, {62593,2942,3},{62591,2935,3},{62588,2930,3},{62581,2930,3},{62579,2932,3}, {62578,2930,3},{62574,2930,3},{62573,2922,3},{62569,2917,3},{62566,2917,3}, {62564,2915,3},{62561,2913,3},{62554,2912,3},{62551,2915,3},{62544,2917,3}, {62543,2912,3},{62541,2910,3},{62528,2883,3},{62526,2873,3},{62523,2867,3}, {62524,2855,3},{62521,2848,3},{62523,2842,3},{62519,2838,3},{62511,2832,3}, {62511,2825,3},{62508,2822,3},{62503,2825,3},{62499,2825,3},{62496,2823,3}, {62491,2815,3},{62488,2817,3},{62481,2815,3},{62476,2810,3},{62469,2810,3}, {62471,2807,3},{62473,2793,3},{62476,2788,3},{62474,2785,3},{62476,2773,3}, {62484,2767,3},{62488,2762,3},{62496,2757,3},{62501,2747,3},{62504,2747,3}, {62504,2745,3},{62504,2738,3},{62506,2738,3},{62511,2737,3},{62514,2737,3}, {62523,2740,3},{62523,2733,3},{62531,2730,3},{62536,2723,3},{62563,2710,3}, {62566,2707,3},{62568,2703,3},{62573,2702,3},{62574,2703,3},{62573,2705,3}, {62576,2707,3},{62574,2708,3},{62578,2712,3},{62579,2720,3},{62583,2730,3}, {62588,2732,3},{62588,2735,3},{62591,2737,3},{62596,2742,3},{62599,2740,3}, {62603,2745,3},{62608,2747,3},{62609,2752,3},{62614,2752,3},{62621,2760,3}, {62628,2765,3},{62629,2763,3},{62629,2767,3},{62633,2763,3},{62633,2767,3}, {62636,2768,3},{62638,2772,3},{62641,2772,3},{62643,2775,3},{62644,2775,3}, {62644,2788,3},{62649,2790,3},{62651,2793,3},{62648,2797,3},{62648,2800,3}, {62648,2802,3},{62651,2802,3},{62654,2807,3},{62663,2812,3},{62666,2817,3}, {62664,2820,3},{62666,2835,3},{62673,2840,3},{62674,2857,3},{62679,2865,3}, {62674,2870,3},{62853,3213,131},{62854,3208,3},{62854,3200,3},{62843,3200,3}, {62824,3197,3},{62809,3197,3},{62808,3198,3},{62806,3148,3},{62819,3115,3}, {62828,3105,3},{62833,3098,3},{62839,3097,3},{62843,3098,3},{62846,3098,3}, {62848,3097,3},{62853,3092,3},{62856,3090,3},{62859,3090,3},{62856,3087,3}, {62854,3082,3},{62856,3082,3},{62889,3080,3},{62898,3083,3},{62913,3097,3}, {62926,3107,3},{62941,3112,3},{62944,3113,3},{62961,3132,3},{62963,3142,3}, {62939,3182,3},{62936,3188,3},{62941,3197,3},{62938,3200,3},{62934,3208,3}, {62933,3207,3},{62919,3210,3},{62909,3207,3},{62896,3207,3},{62886,3213,3}, {62853,3213,3},{63059,2000,131},{63064,2000,3},{63071,2000,3},{63076,2000,3}, {63081,2000,3},{63088,2000,3},{63093,2000,3},{63098,2000,3},{63104,2000,3}, {63109,2000,3},{63114,2000,3},{63121,2000,3},{63126,2000,3},{63131,2000,3}, {63136,2000,3},{63143,2000,3},{63148,2000,3},{63153,2000,3},{63159,2000,3}, {63164,2000,3},{63169,2000,3},{63176,2000,3},{63181,2000,3},{63186,2000,3}, {63193,2000,3},{63198,2000,3},{63203,2000,3},{63209,2000,3},{63214,2000,3}, {63219,2000,3},{63224,2000,3},{63231,2000,3},{63236,2000,3},{63241,2000,3}, {63248,2000,3},{63253,2000,3},{63258,2000,3},{63264,2000,3},{63269,2000,3}, {63274,2000,3},{63281,2000,3},{63286,2000,3},{63291,2000,3},{63298,2000,3}, {63303,2000,3},{63308,2000,3},{63313,2000,3},{63319,2000,3},{63324,2000,3}, {63329,2000,3},{63336,2000,3},{63336,2005,3},{63336,2012,3},{63336,2017,3}, {63336,2023,3},{63336,2030,3},{63336,2035,3},{63336,2042,3},{63336,2047,3}, {63336,2053,3},{63336,2058,3},{63336,2065,3},{63336,2072,3},{63336,2077,3}, {63336,2083,3},{63336,2088,3},{63336,2095,3},{63336,2098,3},{63336,2100,3}, {63341,2100,3},{63348,2100,3},{63353,2100,3},{63358,2100,3},{63364,2100,3}, {63369,2100,3},{63374,2100,3},{63381,2100,3},{63386,2100,3},{63391,2100,3}, {63398,2100,3},{63403,2100,3},{63408,2100,3},{63413,2100,3},{63419,2100,3}, {63424,2100,3},{63429,2100,3},{63436,2100,3},{63441,2100,3},{63446,2100,3}, {63453,2100,3},{63458,2100,3},{63463,2100,3},{63469,2100,3},{63474,2100,3}, {63479,2100,3},{63484,2100,3},{63491,2100,3},{63496,2100,3},{63501,2100,3}, {63508,2100,3},{63513,2100,3},{63518,2100,3},{63524,2100,3},{63529,2100,3}, {63534,2100,3},{63539,2100,3},{63546,2100,3},{63551,2100,3},{63556,2100,3}, {63563,2100,3},{63568,2100,3},{63573,2100,3},{63579,2100,3},{63584,2100,3}, {63589,2100,3},{63594,2100,3},{63601,2100,3},{63606,2100,3},{63611,2100,3}, {63618,2100,3},{63623,2100,3},{63628,2100,3},{63634,2100,3},{63639,2100,3}, {63644,2100,3},{63649,2100,3},{63656,2100,3},{63661,2100,3},{63666,2100,3}, {63673,2100,3},{63678,2100,3},{63683,2100,3},{63688,2100,3},{63694,2100,3}, {63699,2100,3},{63704,2100,3},{63704,2105,3},{63704,2112,3},{63704,2117,3}, {63704,2123,3},{63704,2130,3},{63706,2137,3},{63706,2147,3},{63708,2157,3}, {63709,2162,3},{63709,2168,3},{63711,2175,3},{63713,2182,3},{63713,2188,3}, {63714,2195,3},{63716,2200,3},{63718,2207,3},{63718,2213,3},{63719,2220,3}, {63721,2227,3},{63721,2232,3},{63723,2238,3},{63724,2245,3},{63724,2252,3}, {63726,2257,3},{63728,2263,3},{63728,2270,3},{63729,2277,3},{63731,2283,3}, {63733,2288,3},{63733,2295,3},{63734,2302,3},{63736,2308,3},{63736,2330,3}, {63734,2332,3},{63728,2333,3},{63719,2340,3},{63716,2340,3},{63716,2345,3}, {63713,2347,3},{63713,2350,3},{63709,2352,3},{63706,2352,3},{63703,2355,3}, {63701,2357,3},{63699,2355,3},{63696,2357,3},{63689,2357,3},{63688,2362,3}, {63689,2365,3},{63693,2368,3},{63693,2372,3},{63709,2387,3},{63711,2390,3}, {63716,2392,3},{63719,2400,3},{63724,2405,3},{63724,2410,3},{63733,2418,3}, {63736,2423,3},{63733,2430,3},{63741,2437,3},{63741,2442,3},{63731,2450,3}, {63731,2457,3},{63734,2462,3},{63741,2465,3},{63743,2470,3},{63746,2473,3}, {63748,2477,3},{63749,2477,3},{63753,2483,3},{63754,2493,3},{63756,2495,3}, {63758,2497,3},{63754,2498,3},{63754,2500,3},{63753,2502,3},{63754,2505,3}, {63753,2505,3},{63753,2507,3},{63753,2510,3},{63756,2513,3},{63758,2518,3}, {63756,2527,3},{63749,2523,3},{63744,2523,3},{63729,2532,3},{63723,2540,3}, {63708,2548,3},{63696,2553,3},{63688,2560,3},{63686,2563,3},{63679,2568,3}, {63674,2578,3},{63656,2582,3},{63653,2585,3},{63646,2595,3},{63641,2597,3}, {63636,2598,3},{63629,2597,3},{63626,2597,3},{63616,2603,3},{63608,2605,3}, {63583,2617,3},{63579,2625,3},{63579,2630,3},{63578,2633,3},{63574,2635,3}, {63571,2633,3},{63569,2640,3},{63563,2643,3},{63561,2652,3},{63558,2657,3}, {63551,2662,3},{63548,2670,3},{63543,2673,3},{63541,2682,3},{63536,2693,3}, {63534,2698,3},{63536,2703,3},{63534,2707,3},{63529,2713,3},{63529,2718,3}, {63526,2722,3},{63511,2728,3},{63486,2728,3},{63489,2733,3},{63489,2747,3}, {63488,2757,3},{63489,2762,3},{63488,2763,3},{63488,2770,3},{63484,2772,3}, {63479,2772,3},{63476,2770,3},{63461,2773,3},{63453,2772,3},{63449,2770,3}, {63443,2768,3},{63438,2770,3},{63429,2768,3},{63423,2773,3},{63419,2780,3}, {63414,2783,3},{63404,2792,3},{63401,2792,3},{63391,2797,3},{63389,2795,3}, {63388,2798,3},{63386,2797,3},{63384,2798,3},{63379,2802,3},{63378,2813,3}, {63376,2822,3},{63378,2828,3},{63369,2850,3},{63373,2857,3},{63371,2865,3}, {63368,2868,3},{63361,2887,3},{63359,2900,3},{63356,2907,3},{63353,2908,3}, {63348,2903,3},{63343,2903,3},{63333,2907,3},{63329,2912,3},{63328,2918,3}, {63329,2925,3},{63324,2928,3},{63318,2937,3},{63318,2923,3},{63316,2920,3}, {63314,2917,3},{63313,2902,3},{63311,2902,3},{63304,2897,3},{63298,2897,3}, {63291,2892,3},{63291,2888,3},{63289,2883,3},{63288,2883,3},{63284,2873,3}, {63279,2863,3},{63279,2857,3},{63278,2853,3},{63279,2845,3},{63279,2837,3}, {63274,2830,3},{63271,2827,3},{63269,2820,3},{63266,2817,3},{63258,2815,3}, {63256,2812,3},{63253,2808,3},{63253,2805,3},{63248,2805,3},{63244,2803,3}, {63241,2797,3},{63241,2793,3},{63231,2795,3},{63228,2788,3},{63226,2782,3}, {63223,2782,3},{63223,2777,3},{63219,2778,3},{63213,2775,3},{63214,2772,3}, {63216,2770,3},{63213,2765,3},{63213,2760,3},{63209,2757,3},{63203,2757,3}, {63198,2753,3},{63198,2745,3},{63194,2743,3},{63198,2742,3},{63198,2740,3}, {63194,2738,3},{63196,2735,3},{63189,2728,3},{63186,2720,3},{63183,2720,3}, {63183,2713,3},{63179,2715,3},{63179,2712,3},{63176,2710,3},{63174,2707,3}, {63169,2707,3},{63168,2705,3},{63169,2703,3},{63173,2702,3},{63169,2700,3}, {63168,2698,3},{63166,2697,3},{63128,2688,3},{63124,2687,3},{63121,2687,3}, {63109,2685,3},{63104,2672,3},{63101,2665,3},{63096,2663,3},{63093,2655,3}, {63086,2650,3},{63078,2647,3},{63073,2642,3},{63073,2627,3},{63064,2602,3}, {63063,2598,3},{63064,2595,3},{63061,2590,3},{63063,2587,3},{63044,2587,3}, {63014,2577,3},{63009,2573,3},{62993,2568,3},{62974,2558,3},{62969,2552,3}, {62961,2535,3},{62961,2513,3},{62963,2510,3},{62963,2503,3},{62954,2490,3}, {62953,2480,3},{62954,2473,3},{62953,2470,3},{62954,2463,3},{62958,2458,3}, {62963,2445,3},{62959,2440,3},{62961,2435,3},{62964,2432,3},{62964,2428,3}, {62966,2428,3},{62974,2418,3},{62973,2417,3},{62974,2413,3},{62969,2400,3}, {62974,2400,3},{62974,2397,3},{62973,2393,3},{62974,2390,3},{62978,2387,3}, {62979,2383,3},{62984,2382,3},{62986,2377,3},{62989,2375,3},{62991,2368,3}, {62998,2362,3},{62998,2358,3},{63003,2353,3},{63003,2350,3},{63008,2347,3}, {63006,2342,3},{63009,2330,3},{63009,2322,3},{63006,2310,3},{63003,2308,3}, {63004,2307,3},{63006,2305,3},{63006,2302,3},{63004,2300,3},{63003,2297,3}, {62999,2297,3},{62996,2292,3},{62989,2288,3},{62988,2283,3},{62984,2285,3}, {62979,2282,3},{62974,2283,3},{62974,2282,3},{62971,2280,3},{62969,2282,3}, {62963,2277,3},{62959,2275,3},{62958,2273,3},{62954,2277,3},{62953,2277,3}, {62951,2273,3},{62949,2273,3},{62948,2270,3},{62944,2273,3},{62936,2272,3}, {62934,2265,3},{62929,2267,3},{62928,2263,3},{62924,2262,3},{62921,2257,3}, {62918,2257,3},{62914,2253,3},{62916,2250,3},{62913,2242,3},{62909,2240,3}, {62908,2237,3},{62904,2235,3},{62903,2225,3},{62899,2223,3},{62896,2220,3}, {62883,2213,3},{62873,2205,3},{62869,2195,3},{62869,2182,3},{62868,2177,3}, {62866,2177,3},{62859,2178,3},{62856,2177,3},{62854,2175,3},{62849,2167,3}, {62849,2162,3},{62851,2158,3},{62851,2152,3},{62853,2145,3},{62854,2138,3}, {62851,2130,3},{62851,2123,3},{62849,2115,3},{62849,2110,3},{62851,2100,3}, {62854,2097,3},{62856,2090,3},{62854,2083,3},{62849,2077,3},{62849,2072,3}, {62846,2070,3},{62851,2068,3},{62853,2065,3},{62868,2060,3},{62878,2063,3}, {62881,2060,3},{62891,2062,3},{62898,2068,3},{62901,2070,3},{62904,2075,3}, {62911,2080,3},{62918,2082,3},{62921,2087,3},{62929,2082,3},{62936,2082,3}, {62939,2083,3},{62948,2082,3},{62951,2078,3},{62954,2078,3},{62953,2075,3}, {62958,2077,3},{62964,2073,3},{62968,2068,3},{62971,2068,3},{62974,2065,3}, {62978,2068,3},{62979,2068,3},{62983,2063,3},{62988,2063,3},{62989,2067,3}, {62989,2068,3},{62989,2063,3},{62993,2063,3},{62993,2062,3},{62996,2062,3}, {62998,2057,3},{63004,2053,3},{63008,2053,3},{63009,2050,3},{63013,2050,3}, {63016,2045,3},{63019,2047,3},{63028,2040,3},{63033,2038,3},{63038,2030,3}, {63044,2025,3},{63048,2013,3},{63059,2000,3},{63811,1177,131},{63813,1175,3}, {63834,1177,3},{63844,1178,3},{63853,1177,3},{63854,1182,3},{63868,1182,3}, {63873,1182,3},{63889,1182,3},{63926,1178,3},{63936,1182,3},{63949,1173,3}, {63953,1173,3},{63959,1175,3},{63961,1177,3},{63961,1183,3},{63961,1185,3}, {63959,1183,3},{63958,1183,3},{63959,1187,3},{63964,1192,3},{63971,1192,3}, {63976,1200,3},{63988,1203,3},{63996,1203,3},{64003,1205,3},{64014,1205,3}, {64018,1210,3},{64018,1213,3},{64019,1215,3},{64024,1213,3},{64023,1212,3}, {64026,1210,3},{64034,1215,3},{64041,1217,3},{64043,1218,3},{64053,1220,3}, {64054,1223,3},{64061,1228,3},{64068,1227,3},{64069,1228,3},{64088,1230,3}, {64098,1233,3},{64109,1235,3},{64118,1232,3},{64118,1233,3},{64121,1235,3}, {64126,1233,3},{64131,1233,3},{64133,1237,3},{64138,1238,3},{64141,1240,3}, {64148,1240,3},{64149,1245,3},{64148,1248,3},{64151,1250,3},{64171,1252,3}, {64174,1252,3},{64179,1253,3},{64181,1252,3},{64184,1253,3},{64193,1252,3}, {64196,1253,3},{64196,1257,3},{64199,1260,3},{64201,1263,3},{64204,1265,3}, {64206,1263,3},{64211,1267,3},{64211,1268,3},{64214,1270,3},{64213,1272,3}, {64216,1277,3},{64221,1278,3},{64226,1285,3},{64231,1288,3},{64236,1293,3}, {64241,1297,3},{64253,1293,3},{64258,1297,3},{64276,1318,3},{64274,1320,3}, {64274,1323,3},{64276,1325,3},{64278,1327,3},{64278,1330,3},{64276,1332,3}, {64276,1337,3},{64286,1347,3},{64293,1347,3},{64299,1352,3},{64304,1358,3}, {64303,1355,3},{64303,1358,3},{64311,1365,3},{64319,1367,3},{64326,1370,3}, {64336,1372,3},{64343,1377,3},{64356,1380,3},{64378,1378,3},{64398,1380,3}, {64403,1378,3},{64406,1382,3},{64436,1385,3},{64443,1383,3},{64459,1372,3}, {64463,1373,3},{64466,1377,3},{64468,1377,3},{64488,1360,3},{64496,1353,3}, {64501,1353,3},{64508,1352,3},{64516,1345,3},{64524,1342,3},{64529,1337,3}, {64539,1332,3},{64541,1333,3},{64546,1333,3},{64553,1330,3},{64566,1318,3}, {64568,1318,3},{64571,1322,3},{64574,1322,3},{64579,1320,3},{64583,1320,3}, {64589,1317,3},{64594,1317,3},{64603,1315,3},{64628,1298,3},{64641,1303,3}, {64649,1313,3},{64638,1303,3},{64631,1300,3},{64628,1302,3},{64639,1308,3}, {64641,1313,3},{64646,1315,3},{64649,1318,3},{64654,1318,3},{64658,1322,3}, {64659,1325,3},{64656,1322,3},{64653,1320,3},{64656,1323,3},{64658,1327,3}, {64661,1328,3},{64659,1335,3},{64663,1338,3},{64671,1340,3},{64676,1337,3}, {64689,1335,3},{64689,1338,3},{64698,1338,3},{64704,1337,3},{64713,1330,3}, {64718,1328,3},{64719,1327,3},{64723,1327,3},{64731,1320,3},{64743,1315,3}, {64751,1310,3},{64756,1308,3},{64763,1305,3},{64766,1305,3},{64776,1298,3}, {64781,1298,3},{64789,1293,3},{64804,1288,3},{64811,1283,3},{64828,1283,3}, {64839,1280,3},{64843,1278,3},{64844,1280,3},{64846,1277,3},{64859,1267,3}, {64871,1255,3},{64898,1240,3},{64913,1235,3},{64926,1225,3},{64928,1225,3}, {64931,1230,3},{64929,1230,3},{64928,1227,3},{64926,1230,3},{64924,1228,3}, {64928,1235,3},{64929,1248,3},{64931,1253,3},{64931,1255,3},{64933,1257,3}, {64933,1263,3},{64934,1267,3},{64936,1268,3},{64934,1270,3},{64934,1280,3}, {64939,1290,3},{64948,1297,3},{64948,1305,3},{64946,1310,3},{64951,1318,3}, {64949,1325,3},{64948,1333,3},{64949,1338,3},{64951,1345,3},{64949,1353,3}, {64949,1377,3},{64953,1398,3},{64948,1403,3},{64949,1418,3},{64948,1425,3}, {64946,1447,3},{64948,1450,3},{64946,1460,3},{64949,1470,3},{64948,1478,3}, {64949,1483,3},{64949,1490,3},{64949,1495,3},{64949,1500,3},{64949,1505,3}, {64949,1512,3},{64949,1517,3},{64949,1522,3},{64949,1528,3},{64949,1533,3}, {64949,1538,3},{64949,1545,3},{64949,1550,3},{64951,1555,3},{64951,1562,3}, {64951,1567,3},{64949,1572,3},{64949,1577,3},{64949,1582,3},{64949,1588,3}, {64949,1595,3},{64949,1600,3},{64949,1605,3},{64949,1612,3},{64951,1617,3}, {64951,1622,3},{64951,1632,3},{64951,1637,3},{64948,1640,3},{64946,1643,3}, {64948,1652,3},{64946,1658,3},{64944,1660,3},{64939,1658,3},{64938,1658,3}, {64938,1660,3},{64929,1660,3},{64929,1663,3},{64928,1662,3},{64926,1663,3}, {64924,1665,3},{64923,1668,3},{64919,1672,3},{64916,1672,3},{64908,1670,3}, {64903,1672,3},{64901,1672,3},{64901,1668,3},{64899,1670,3},{64896,1668,3}, {64894,1672,3},{64889,1670,3},{64889,1672,3},{64886,1672,3},{64883,1675,3}, {64879,1673,3},{64876,1677,3},{64868,1678,3},{64864,1682,3},{64858,1683,3}, {64854,1687,3},{64851,1687,3},{64849,1690,3},{64846,1693,3},{64839,1692,3}, {64838,1695,3},{64834,1697,3},{64829,1697,3},{64829,1693,3},{64828,1692,3}, {64821,1693,3},{64819,1695,3},{64816,1695,3},{64811,1698,3},{64806,1700,3}, {64801,1710,3},{64794,1710,3},{64793,1712,3},{64794,1713,3},{64794,1715,3}, {64793,1718,3},{64791,1718,3},{64791,1715,3},{64789,1715,3},{64784,1718,3}, {64778,1722,3},{64773,1728,3},{64766,1728,3},{64766,1730,3},{64764,1730,3}, {64764,1732,3},{64761,1732,3},{64758,1733,3},{64758,1737,3},{64754,1737,3}, {64753,1740,3},{64751,1738,3},{64751,1742,3},{64749,1742,3},{64748,1745,3}, {64744,1743,3},{64743,1747,3},{64741,1747,3},{64741,1748,3},{64736,1750,3}, {64734,1755,3},{64733,1755,3},{64729,1752,3},{64728,1753,3},{64726,1763,3}, {64729,1773,3},{64728,1780,3},{64731,1785,3},{64731,1790,3},{64731,1795,3}, {64726,1800,3},{64726,1812,3},{64733,1812,3},{64736,1820,3},{64736,1833,3}, {64734,1838,3},{64736,1842,3},{64736,1853,3},{64741,1852,3},{64743,1853,3}, {64743,1868,3},{64743,1877,3},{64739,1877,3},{64736,1880,3},{64736,1890,3}, {64736,1893,3},{64736,1898,3},{64736,1903,3},{64736,1910,3},{64736,1915,3}, {64736,1920,3},{64736,1927,3},{64736,1932,3},{64736,1937,3},{64748,1935,3}, {64768,1940,3},{64778,1937,3},{64779,1947,3},{64784,1948,3},{64788,1953,3}, {64789,1953,3},{64799,1950,3},{64809,1948,3},{64821,1950,3},{64826,1953,3}, {64831,1957,3},{64836,1955,3},{64836,1960,3},{64836,1965,3},{64836,1970,3}, {64836,1977,3},{64836,1982,3},{64836,1987,3},{64836,1993,3},{64836,1998,3}, {64836,2003,3},{64836,2010,3},{64836,2015,3},{64836,2020,3},{64836,2027,3}, {64836,2032,3},{64844,2033,3},{64844,2058,3},{64844,2063,3},{64829,2057,3}, {64824,2055,3},{64813,2053,3},{64808,2053,3},{64808,2062,3},{64808,2067,3}, {64808,2073,3},{64808,2078,3},{64808,2083,3},{64808,2090,3},{64808,2095,3}, {64808,2100,3},{64808,2107,3},{64808,2112,3},{64808,2117,3},{64808,2123,3}, {64808,2128,3},{64808,2133,3},{64808,2140,3},{64808,2145,3},{64808,2150,3}, {64808,2157,3},{64808,2162,3},{64808,2167,3},{64808,2173,3},{64808,2178,3}, {64799,2183,3},{64796,2183,3},{64794,2185,3},{64791,2185,3},{64788,2187,3}, {64783,2183,3},{64778,2185,3},{64758,2177,3},{64751,2177,3},{64748,2177,3}, {64743,2175,3},{64736,2175,3},{64731,2180,3},{64724,2182,3},{64721,2187,3}, {64708,2188,3},{64704,2192,3},{64701,2190,3},{64694,2193,3},{64688,2193,3}, {64681,2193,3},{64678,2192,3},{64676,2193,3},{64673,2190,3},{64659,2188,3}, {64653,2187,3},{64633,2185,3},{64628,2183,3},{64613,2185,3},{64596,2178,3}, {64591,2182,3},{64574,2185,3},{64569,2187,3},{64563,2195,3},{64561,2195,3}, {64561,2198,3},{64558,2198,3},{64551,2202,3},{64549,2205,3},{64548,2207,3}, {64549,2208,3},{64546,2210,3},{64543,2217,3},{64536,2217,3},{64531,2220,3}, {64521,2220,3},{64509,2227,3},{64506,2227,3},{64499,2232,3},{64494,2230,3}, {64486,2227,3},{64483,2230,3},{64469,2230,3},{64466,2232,3},{64461,2232,3}, {64458,2230,3},{64454,2220,3},{64449,2217,3},{64441,2220,3},{64438,2218,3}, {64429,2225,3},{64418,2227,3},{64411,2223,3},{64411,2225,3},{64413,2230,3}, {64418,2233,3},{64423,2248,3},{64431,2252,3},{64433,2253,3},{64433,2260,3}, {64429,2265,3},{64426,2272,3},{64426,2278,3},{64431,2287,3},{64429,2290,3}, {64426,2295,3},{64426,2308,3},{64428,2315,3},{64428,2322,3},{64438,2337,3}, {64439,2348,3},{64434,2367,3},{64436,2377,3},{64433,2385,3},{64434,2388,3}, {64439,2390,3},{64443,2395,3},{64448,2397,3},{64449,2398,3},{64444,2398,3}, {64439,2402,3},{64424,2400,3},{64423,2403,3},{64408,2403,3},{64396,2408,3}, {64391,2403,3},{64383,2403,3},{64378,2400,3},{64371,2397,3},{64366,2400,3}, {64358,2400,3},{64354,2402,3},{64348,2398,3},{64316,2397,3},{64309,2403,3}, {64298,2405,3},{64281,2395,3},{64266,2392,3},{64258,2388,3},{64253,2390,3}, {64243,2400,3},{64236,2402,3},{64236,2397,3},{64236,2390,3},{64236,2385,3}, {64236,2380,3},{64236,2373,3},{64236,2368,3},{64236,2363,3},{64236,2357,3}, {64236,2352,3},{64236,2345,3},{64236,2340,3},{64236,2335,3},{64236,2328,3}, {64236,2323,3},{64236,2318,3},{64236,2312,3},{64236,2307,3},{64236,2300,3}, {64236,2295,3},{64236,2290,3},{64236,2283,3},{64236,2278,3},{64236,2273,3}, {64236,2267,3},{64236,2262,3},{64236,2257,3},{64236,2250,3},{64236,2245,3}, {64236,2238,3},{64236,2233,3},{64236,2228,3},{64236,2222,3},{64236,2217,3}, {64236,2212,3},{64236,2205,3},{64236,2200,3},{64229,2200,3},{64224,2200,3}, {64219,2200,3},{64214,2200,3},{64211,2200,3},{64209,2200,3},{64203,2200,3}, {64198,2200,3},{64193,2200,3},{64188,2200,3},{64183,2200,3},{64178,2200,3}, {64171,2200,3},{64166,2200,3},{64161,2200,3},{64156,2200,3},{64151,2200,3}, {64146,2200,3},{64141,2200,3},{64136,2200,3},{64131,2200,3},{64124,2200,3}, {64119,2200,3},{64114,2200,3},{64109,2200,3},{64104,2200,3},{64099,2200,3}, {64094,2200,3},{64089,2200,3},{64084,2200,3},{64079,2200,3},{64074,2200,3}, {64068,2200,3},{64063,2200,3},{64058,2200,3},{64053,2200,3},{64048,2200,3}, {64043,2200,3},{64038,2200,3},{64033,2200,3},{64028,2200,3},{64021,2200,3}, {64016,2200,3},{64011,2200,3},{64006,2200,3},{64001,2200,3},{63996,2200,3}, {63991,2200,3},{63986,2200,3},{63981,2200,3},{63976,2200,3},{63971,2200,3}, {63966,2200,3},{63959,2200,3},{63954,2200,3},{63949,2200,3},{63944,2200,3}, {63939,2200,3},{63934,2200,3},{63929,2200,3},{63924,2200,3},{63919,2200,3}, {63913,2207,3},{63908,2208,3},{63903,2212,3},{63888,2213,3},{63879,2222,3}, {63879,2225,3},{63876,2227,3},{63874,2230,3},{63859,2248,3},{63833,2273,3}, {63803,2307,3},{63788,2320,3},{63773,2348,3},{63773,2343,3},{63771,2338,3}, {63771,2332,3},{63769,2325,3},{63768,2320,3},{63768,2313,3},{63766,2308,3}, {63764,2302,3},{63764,2297,3},{63763,2292,3},{63761,2285,3},{63761,2280,3}, {63759,2273,3},{63758,2268,3},{63758,2262,3},{63756,2257,3},{63754,2250,3}, {63754,2245,3},{63753,2238,3},{63753,2233,3},{63751,2228,3},{63749,2222,3}, {63749,2217,3},{63748,2210,3},{63746,2205,3},{63746,2198,3},{63744,2193,3}, {63743,2187,3},{63743,2182,3},{63741,2175,3},{63741,2170,3},{63739,2163,3}, {63738,2158,3},{63738,2152,3},{63736,2147,3},{63734,2142,3},{63734,2137,3}, {63736,2135,3},{63739,2125,3},{63744,2120,3},{63739,2095,3},{63736,2088,3}, {63734,2088,3},{63734,2085,3},{63733,2082,3},{63734,2078,3},{63734,2077,3}, {63736,2075,3},{63734,2072,3},{63738,2063,3},{63738,2055,3},{63739,2052,3}, {63741,2047,3},{63744,2043,3},{63748,2032,3},{63746,2023,3},{63748,2017,3}, {63744,2010,3},{63746,2008,3},{63748,1997,3},{63749,1992,3},{63748,1985,3}, {63748,1978,3},{63746,1975,3},{63748,1973,3},{63748,1970,3},{63751,1967,3}, {63749,1955,3},{63751,1933,3},{63753,1933,3},{63753,1922,3},{63754,1920,3}, {63753,1917,3},{63754,1913,3},{63751,1912,3},{63753,1895,3},{63761,1875,3}, {63769,1867,3},{63773,1862,3},{63776,1860,3},{63778,1857,3},{63779,1853,3}, {63783,1853,3},{63788,1848,3},{63793,1845,3},{63798,1840,3},{63798,1835,3}, {63798,1828,3},{63798,1823,3},{63798,1817,3},{63798,1812,3},{63798,1807,3}, {63798,1800,3},{63798,1795,3},{63798,1790,3},{63798,1783,3},{63798,1778,3}, {63798,1772,3},{63798,1767,3},{63798,1760,3},{63798,1755,3},{63796,1748,3}, {63796,1742,3},{63796,1737,3},{63796,1732,3},{63796,1725,3},{63796,1720,3}, {63796,1713,3},{63796,1708,3},{63796,1702,3},{63796,1697,3},{63796,1690,3}, {63796,1685,3},{63798,1680,3},{63798,1673,3},{63798,1668,3},{63798,1662,3}, {63798,1657,3},{63798,1650,3},{63798,1645,3},{63798,1638,3},{63798,1633,3}, {63798,1628,3},{63798,1622,3},{63798,1617,3},{63798,1610,3},{63798,1605,3}, {63798,1598,3},{63798,1593,3},{63798,1587,3},{63798,1582,3},{63798,1575,3}, {63798,1570,3},{63798,1563,3},{63798,1558,3},{63798,1553,3},{63798,1547,3}, {63798,1542,3},{63798,1535,3},{63798,1530,3},{63798,1523,3},{63798,1518,3}, {63798,1512,3},{63798,1507,3},{63798,1500,3},{63798,1495,3},{63798,1490,3}, {63798,1483,3},{63798,1478,3},{63798,1472,3},{63798,1467,3},{63798,1460,3}, {63798,1455,3},{63798,1448,3},{63798,1443,3},{63798,1438,3},{63798,1432,3}, {63798,1427,3},{63798,1420,3},{63794,1418,3},{63793,1413,3},{63793,1398,3}, {63799,1388,3},{63809,1375,3},{63821,1352,3},{63824,1352,3},{63831,1347,3}, {63836,1337,3},{63836,1322,3},{63838,1315,3},{63838,1308,3},{63838,1298,3}, {63829,1283,3},{63823,1270,3},{63819,1262,3},{63814,1258,3},{63811,1245,3}, {63811,1242,3},{63814,1240,3},{63814,1238,3},{63813,1238,3},{63811,1223,3}, {63814,1217,3},{63818,1215,3},{63819,1203,3},{63816,1193,3},{63811,1187,3}, {63811,1183,3},{63809,1182,3},{63811,1177,3},{62678,1648,131},{62674,1645,3}, {62679,1635,3},{62693,1623,3},{62696,1618,3},{62711,1603,3},{62719,1590,3}, {62728,1582,3},{62733,1575,3},{62741,1568,3},{62749,1567,3},{62763,1553,3}, {62768,1552,3},{62771,1553,3},{62781,1547,3},{62791,1540,3},{62791,1537,3}, {62804,1530,3},{62811,1528,3},{62814,1527,3},{62819,1527,3},{62828,1527,3}, {62833,1523,3},{62839,1523,3},{62843,1522,3},{62844,1518,3},{62846,1515,3}, {62849,1517,3},{62866,1508,3},{62871,1508,3},{62873,1510,3},{62873,1513,3}, {62868,1515,3},{62876,1517,3},{62896,1508,3},{62903,1497,3},{62916,1497,3}, {62923,1493,3},{62923,1498,3},{62931,1498,3},{62938,1497,3},{62944,1490,3}, {62951,1492,3},{62956,1485,3},{62961,1483,3},{62964,1485,3},{62971,1485,3}, {62979,1488,3},{62981,1488,3},{62989,1485,3},{62993,1485,3},{62999,1482,3}, {63008,1480,3},{63018,1483,3},{63031,1485,3},{63041,1480,3},{63051,1480,3}, {63056,1478,3},{63064,1473,3},{63079,1460,3},{63083,1460,3},{63086,1462,3}, {63091,1462,3},{63111,1452,3},{63123,1447,3},{63139,1445,3},{63146,1452,3}, {63153,1452,3},{63161,1448,3},{63176,1450,3},{63194,1443,3},{63201,1448,3}, {63198,1448,3},{63203,1450,3},{63223,1445,3},{63218,1467,3},{63213,1475,3}, {63239,1467,3},{63273,1468,3},{63273,1463,3},{63268,1458,3},{63268,1453,3}, {63281,1452,3},{63308,1438,3},{63318,1430,3},{63324,1428,3},{63353,1402,3}, {63358,1395,3},{63364,1397,3},{63376,1388,3},{63388,1385,3},{63401,1373,3}, {63411,1368,3},{63423,1358,3},{63434,1352,3},{63451,1340,3},{63456,1338,3}, {63463,1338,3},{63471,1335,3},{63489,1325,3},{63506,1322,3},{63518,1318,3}, {63523,1313,3},{63529,1305,3},{63539,1302,3},{63543,1300,3},{63548,1297,3}, {63553,1295,3},{63558,1292,3},{63563,1288,3},{63568,1287,3},{63571,1283,3}, {63576,1282,3},{63581,1278,3},{63586,1275,3},{63589,1273,3},{63594,1270,3}, {63604,1268,3},{63613,1263,3},{63626,1257,3},{63631,1252,3},{63636,1247,3}, {63643,1247,3},{63664,1230,3},{63678,1213,3},{63689,1202,3},{63694,1200,3}, {63699,1200,3},{63704,1197,3},{63711,1195,3},{63728,1180,3},{63739,1177,3}, {63749,1177,3},{63754,1173,3},{63781,1172,3},{63798,1173,3},{63809,1175,3}, {63811,1177,3},{63809,1182,3},{63811,1183,3},{63811,1187,3},{63816,1193,3}, {63819,1203,3},{63818,1215,3},{63814,1217,3},{63811,1223,3},{63813,1238,3}, {63814,1238,3},{63814,1240,3},{63811,1242,3},{63811,1245,3},{63814,1258,3}, {63819,1262,3},{63823,1270,3},{63829,1283,3},{63838,1298,3},{63838,1308,3}, {63838,1315,3},{63836,1322,3},{63836,1337,3},{63831,1347,3},{63824,1352,3}, {63821,1352,3},{63809,1375,3},{63799,1388,3},{63793,1398,3},{63793,1413,3}, {63794,1418,3},{63798,1420,3},{63798,1427,3},{63798,1432,3},{63798,1438,3}, {63798,1443,3},{63798,1448,3},{63798,1455,3},{63798,1460,3},{63798,1467,3}, {63798,1472,3},{63798,1478,3},{63798,1483,3},{63798,1490,3},{63798,1495,3}, {63798,1500,3},{63798,1507,3},{63798,1512,3},{63798,1518,3},{63798,1523,3}, {63798,1530,3},{63798,1535,3},{63798,1542,3},{63798,1547,3},{63798,1553,3}, {63798,1558,3},{63798,1563,3},{63798,1570,3},{63798,1575,3},{63798,1582,3}, {63798,1587,3},{63798,1593,3},{63798,1598,3},{63798,1605,3},{63798,1610,3}, {63798,1617,3},{63798,1622,3},{63798,1628,3},{63798,1633,3},{63798,1638,3}, {63798,1645,3},{63798,1650,3},{63798,1657,3},{63798,1662,3},{63798,1668,3}, {63798,1673,3},{63798,1680,3},{63796,1685,3},{63796,1690,3},{63796,1697,3}, {63796,1702,3},{63796,1708,3},{63796,1713,3},{63796,1720,3},{63796,1725,3}, {63796,1732,3},{63796,1737,3},{63796,1742,3},{63796,1748,3},{63798,1755,3}, {63798,1760,3},{63798,1767,3},{63798,1772,3},{63798,1778,3},{63798,1783,3}, {63798,1790,3},{63798,1795,3},{63798,1800,3},{63798,1807,3},{63798,1812,3}, {63798,1817,3},{63798,1823,3},{63798,1828,3},{63798,1835,3},{63798,1840,3}, {63793,1845,3},{63788,1848,3},{63783,1853,3},{63779,1853,3},{63778,1857,3}, {63776,1860,3},{63773,1862,3},{63769,1867,3},{63761,1875,3},{63753,1895,3}, {63751,1912,3},{63754,1913,3},{63753,1917,3},{63754,1920,3},{63753,1922,3}, {63753,1933,3},{63751,1933,3},{63749,1955,3},{63751,1967,3},{63748,1970,3}, {63748,1973,3},{63746,1975,3},{63748,1978,3},{63748,1985,3},{63749,1992,3}, {63748,1997,3},{63746,2008,3},{63744,2010,3},{63748,2017,3},{63746,2023,3}, {63748,2032,3},{63744,2043,3},{63741,2047,3},{63739,2052,3},{63738,2055,3}, {63738,2063,3},{63734,2072,3},{63736,2075,3},{63734,2077,3},{63734,2078,3}, {63733,2082,3},{63734,2085,3},{63734,2088,3},{63736,2088,3},{63739,2095,3}, {63744,2120,3},{63739,2125,3},{63736,2135,3},{63734,2137,3},{63734,2142,3}, {63736,2147,3},{63738,2152,3},{63738,2158,3},{63739,2163,3},{63741,2170,3}, {63741,2175,3},{63743,2182,3},{63743,2187,3},{63744,2193,3},{63746,2198,3}, {63746,2205,3},{63748,2210,3},{63749,2217,3},{63749,2222,3},{63751,2228,3}, {63753,2233,3},{63753,2238,3},{63754,2245,3},{63754,2250,3},{63756,2257,3}, {63758,2262,3},{63758,2268,3},{63759,2273,3},{63761,2280,3},{63761,2285,3}, {63763,2292,3},{63764,2297,3},{63764,2302,3},{63766,2308,3},{63768,2313,3}, {63768,2320,3},{63769,2325,3},{63771,2332,3},{63771,2338,3},{63773,2343,3}, {63773,2348,3},{63774,2355,3},{63776,2360,3},{63778,2367,3},{63778,2372,3}, {63779,2378,3},{63781,2383,3},{63781,2390,3},{63783,2395,3},{63784,2400,3}, {63784,2407,3},{63786,2412,3},{63788,2418,3},{63788,2423,3},{63788,2425,3}, {63788,2430,3},{63788,2433,3},{63789,2437,3},{63788,2445,3},{63783,2457,3}, {63783,2458,3},{63786,2463,3},{63786,2467,3},{63784,2477,3},{63784,2478,3}, {63784,2487,3},{63781,2497,3},{63778,2498,3},{63778,2503,3},{63774,2503,3}, {63774,2507,3},{63771,2510,3},{63768,2510,3},{63766,2512,3},{63768,2513,3}, {63759,2518,3},{63759,2523,3},{63756,2527,3},{63758,2518,3},{63756,2513,3}, {63753,2510,3},{63753,2507,3},{63753,2505,3},{63754,2505,3},{63753,2502,3}, {63754,2500,3},{63754,2498,3},{63758,2497,3},{63756,2495,3},{63754,2493,3}, {63753,2483,3},{63749,2477,3},{63748,2477,3},{63746,2473,3},{63743,2470,3}, {63741,2465,3},{63734,2462,3},{63731,2457,3},{63731,2450,3},{63741,2442,3}, {63741,2437,3},{63733,2430,3},{63736,2423,3},{63733,2418,3},{63724,2410,3}, {63724,2405,3},{63719,2400,3},{63716,2392,3},{63711,2390,3},{63709,2387,3}, {63693,2372,3},{63693,2368,3},{63689,2365,3},{63688,2362,3},{63689,2357,3}, {63696,2357,3},{63699,2355,3},{63701,2357,3},{63703,2355,3},{63706,2352,3}, {63709,2352,3},{63713,2350,3},{63713,2347,3},{63716,2345,3},{63716,2340,3}, {63719,2340,3},{63728,2333,3},{63734,2332,3},{63736,2330,3},{63736,2308,3}, {63734,2302,3},{63733,2295,3},{63733,2288,3},{63731,2283,3},{63729,2277,3}, {63728,2270,3},{63728,2263,3},{63726,2257,3},{63724,2252,3},{63724,2245,3}, {63723,2238,3},{63721,2232,3},{63721,2227,3},{63719,2220,3},{63718,2213,3}, {63718,2207,3},{63716,2200,3},{63714,2195,3},{63713,2188,3},{63713,2182,3}, {63711,2175,3},{63709,2168,3},{63709,2162,3},{63708,2157,3},{63706,2147,3}, {63706,2137,3},{63704,2130,3},{63704,2123,3},{63704,2117,3},{63704,2112,3}, {63704,2105,3},{63704,2100,3},{63699,2100,3},{63694,2100,3},{63688,2100,3}, {63683,2100,3},{63678,2100,3},{63673,2100,3},{63666,2100,3},{63661,2100,3}, {63656,2100,3},{63649,2100,3},{63644,2100,3},{63639,2100,3},{63634,2100,3}, {63628,2100,3},{63623,2100,3},{63618,2100,3},{63611,2100,3},{63606,2100,3}, {63601,2100,3},{63594,2100,3},{63589,2100,3},{63584,2100,3},{63579,2100,3}, {63573,2100,3},{63568,2100,3},{63563,2100,3},{63556,2100,3},{63551,2100,3}, {63546,2100,3},{63539,2100,3},{63534,2100,3},{63529,2100,3},{63524,2100,3}, {63518,2100,3},{63513,2100,3},{63508,2100,3},{63501,2100,3},{63496,2100,3}, {63491,2100,3},{63484,2100,3},{63479,2100,3},{63474,2100,3},{63469,2100,3}, {63463,2100,3},{63458,2100,3},{63453,2100,3},{63446,2100,3},{63441,2100,3}, {63436,2100,3},{63429,2100,3},{63424,2100,3},{63419,2100,3},{63413,2100,3}, {63408,2100,3},{63403,2100,3},{63398,2100,3},{63391,2100,3},{63386,2100,3}, {63381,2100,3},{63374,2100,3},{63369,2100,3},{63364,2100,3},{63358,2100,3}, {63353,2100,3},{63348,2100,3},{63341,2100,3},{63336,2100,3},{63336,2098,3}, {63336,2095,3},{63336,2088,3},{63336,2083,3},{63336,2077,3},{63336,2072,3}, {63336,2065,3},{63336,2058,3},{63336,2053,3},{63336,2047,3},{63336,2042,3}, {63336,2035,3},{63336,2030,3},{63336,2023,3},{63336,2017,3},{63336,2012,3}, {63336,2005,3},{63336,2000,3},{63329,2000,3},{63324,2000,3},{63319,2000,3}, {63313,2000,3},{63308,2000,3},{63303,2000,3},{63298,2000,3},{63291,2000,3}, {63286,2000,3},{63281,2000,3},{63274,2000,3},{63269,2000,3},{63264,2000,3}, {63258,2000,3},{63253,2000,3},{63248,2000,3},{63241,2000,3},{63236,2000,3}, {63231,2000,3},{63224,2000,3},{63219,2000,3},{63214,2000,3},{63209,2000,3}, {63203,2000,3},{63198,2000,3},{63193,2000,3},{63186,2000,3},{63181,2000,3}, {63176,2000,3},{63169,2000,3},{63164,2000,3},{63159,2000,3},{63153,2000,3}, {63148,2000,3},{63143,2000,3},{63136,2000,3},{63131,2000,3},{63126,2000,3}, {63121,2000,3},{63114,2000,3},{63109,2000,3},{63104,2000,3},{63098,2000,3}, {63093,2000,3},{63088,2000,3},{63081,2000,3},{63076,2000,3},{63071,2000,3}, {63064,2000,3},{63059,2000,3},{63054,2000,3},{63048,2000,3},{63043,2000,3}, {63038,2000,3},{63031,2000,3},{63026,2000,3},{63021,2000,3},{63016,2000,3}, {63009,2000,3},{63004,2000,3},{62999,2000,3},{62993,2000,3},{62988,2000,3}, {62983,2000,3},{62976,2000,3},{62971,2000,3},{62966,2000,3},{62959,2000,3}, {62954,2000,3},{62949,2000,3},{62943,2000,3},{62938,2000,3},{62933,2000,3}, {62926,2000,3},{62921,2000,3},{62916,2000,3},{62911,2000,3},{62904,2000,3}, {62899,2000,3},{62894,2000,3},{62888,2000,3},{62883,2000,3},{62878,2000,3}, {62871,2000,3},{62866,2000,3},{62861,2000,3},{62854,2000,3},{62849,2000,3}, {62844,2000,3},{62838,2000,3},{62833,2000,3},{62828,2000,3},{62823,2000,3}, {62816,2000,3},{62811,2000,3},{62806,2000,3},{62799,2000,3},{62794,2000,3}, {62789,2000,3},{62783,2000,3},{62778,2000,3},{62773,2000,3},{62766,2000,3}, {62761,2000,3},{62756,2000,3},{62751,2000,3},{62744,2000,3},{62739,2000,3}, {62734,2000,3},{62728,2000,3},{62723,2000,3},{62718,2000,3},{62711,2000,3}, {62706,2000,3},{62701,2000,3},{62694,2000,3},{62693,2000,3},{62693,1987,3}, {62688,1983,3},{62686,1980,3},{62688,1973,3},{62686,1972,3},{62684,1967,3}, {62684,1965,3},{62683,1957,3},{62678,1953,3},{62676,1952,3},{62669,1950,3}, {62666,1947,3},{62663,1937,3},{62661,1927,3},{62656,1923,3},{62651,1927,3}, {62648,1930,3},{62646,1928,3},{62646,1923,3},{62643,1918,3},{62639,1912,3}, {62643,1905,3},{62643,1902,3},{62649,1895,3},{62653,1872,3},{62649,1855,3}, {62648,1850,3},{62648,1847,3},{62646,1838,3},{62648,1833,3},{62648,1822,3}, {62644,1818,3},{62649,1805,3},{62656,1797,3},{62658,1792,3},{62661,1775,3}, {62659,1772,3},{62661,1770,3},{62659,1767,3},{62659,1763,3},{62661,1760,3}, {62666,1760,3},{62668,1758,3},{62666,1755,3},{62664,1742,3},{62668,1740,3}, {62678,1742,3},{62679,1740,3},{62681,1737,3},{62686,1735,3},{62689,1732,3}, {62693,1738,3},{62696,1740,3},{62701,1740,3},{62706,1737,3},{62713,1735,3}, {62714,1732,3},{62711,1723,3},{62713,1722,3},{62716,1718,3},{62726,1718,3}, {62726,1713,3},{62731,1710,3},{62733,1707,3},{62733,1703,3},{62729,1700,3}, {62731,1698,3},{62729,1695,3},{62729,1692,3},{62726,1688,3},{62718,1688,3}, {62719,1685,3},{62718,1683,3},{62716,1685,3},{62714,1685,3},{62714,1680,3}, {62709,1682,3},{62711,1678,3},{62709,1677,3},{62708,1677,3},{62699,1680,3}, {62696,1677,3},{62691,1678,3},{62686,1673,3},{62686,1670,3},{62689,1668,3}, {62686,1662,3},{62683,1660,3},{62678,1648,3},{62683,1660,3},{62678,1648,3}, {63223,1445,131},{63233,1442,3},{63239,1442,3},{63248,1443,3},{63248,1445,3}, {63241,1443,3},{63239,1447,3},{63236,1447,3},{63244,1453,3},{63256,1453,3}, {63268,1453,3},{63268,1458,3},{63273,1463,3},{63273,1468,3},{63239,1467,3}, {63213,1475,3},{63218,1467,3},{63223,1445,3},{65034,1202,131},{65051,1188,3}, {65058,1180,3},{65061,1180,3},{65059,1182,3},{65063,1183,3},{65071,1175,3}, {65076,1180,3},{65083,1177,3},{65116,1138,3},{65119,1137,3},{65126,1135,3}, {65141,1117,3},{65156,1122,3},{65159,1120,3},{65168,1123,3},{65176,1135,3}, {65178,1143,3},{65184,1148,3},{65193,1148,3},{65194,1153,3},{65194,1157,3}, {65191,1162,3},{65169,1175,3},{65163,1187,3},{65168,1193,3},{65171,1193,3}, {65178,1187,3},{65183,1187,3},{65186,1187,3},{65188,1193,3},{65191,1197,3}, {65201,1197,3},{65206,1200,3},{65208,1200,3},{65216,1185,3},{65228,1173,3}, {65231,1175,3},{65234,1180,3},{65241,1185,3},{65241,1187,3},{65248,1185,3}, {65253,1182,3},{65258,1163,3},{65253,1158,3},{65251,1158,3},{65251,1155,3}, {65256,1155,3},{65264,1162,3},{65274,1165,3},{65281,1163,3},{65286,1160,3}, {65293,1160,3},{65303,1158,3},{65303,1162,3},{65301,1168,3},{65296,1168,3}, {65296,1173,3},{65293,1173,3},{65293,1175,3},{65298,1180,3},{65299,1192,3}, {65303,1195,3},{65301,1198,3},{65294,1203,3},{65293,1208,3},{65293,1250,3}, {65301,1250,3},{65303,1247,3},{65306,1247,3},{65313,1250,3},{65319,1248,3}, {65326,1253,3},{65328,1248,3},{65333,1245,3},{65343,1247,3},{65348,1245,3}, {65349,1247,3},{65348,1247,3},{65344,1252,3},{65348,1253,3},{65349,1252,3}, {65354,1258,3},{65353,1263,3},{65354,1267,3},{65351,1273,3},{65348,1277,3}, {65348,1280,3},{65346,1283,3},{65343,1283,3},{65341,1285,3},{65336,1285,3}, {65331,1288,3},{65328,1292,3},{65326,1290,3},{65324,1292,3},{65321,1290,3}, {65318,1293,3},{65316,1295,3},{65318,1298,3},{65311,1302,3},{65309,1302,3}, {65308,1305,3},{65306,1302,3},{65303,1302,3},{65298,1300,3},{65303,1305,3}, {65298,1315,3},{65299,1322,3},{65293,1340,3},{65294,1343,3},{65293,1350,3}, {65296,1352,3},{65299,1357,3},{65303,1360,3},{65303,1363,3},{65306,1363,3}, {65318,1373,3},{65321,1373,3},{65326,1377,3},{65321,1382,3},{65313,1385,3}, {65306,1390,3},{65303,1390,3},{65301,1395,3},{65298,1392,3},{65296,1392,3}, {65294,1388,3},{65289,1388,3},{65286,1393,3},{65289,1400,3},{65286,1402,3}, {65288,1408,3},{65286,1408,3},{65286,1412,3},{65293,1417,3},{65296,1417,3}, {65299,1422,3},{65301,1427,3},{65306,1423,3},{65308,1420,3},{65311,1418,3}, {65311,1417,3},{65314,1420,3},{65316,1423,3},{65319,1423,3},{65321,1427,3}, {65331,1428,3},{65334,1427,3},{65338,1427,3},{65339,1432,3},{65341,1433,3}, {65343,1440,3},{65346,1445,3},{65349,1443,3},{65356,1445,3},{65361,1443,3}, {65366,1445,3},{65368,1448,3},{65368,1443,3},{65373,1443,3},{65374,1440,3}, {65376,1443,3},{65379,1447,3},{65381,1450,3},{65383,1450,3},{65386,1447,3}, {65388,1448,3},{65391,1448,3},{65393,1452,3},{65394,1452,3},{65398,1452,3}, {65401,1447,3},{65404,1447,3},{65408,1450,3},{65413,1450,3},{65416,1448,3}, {65419,1447,3},{65423,1447,3},{65433,1443,3},{65443,1443,3},{65449,1448,3}, {65453,1448,3},{65456,1447,3},{65463,1448,3},{65469,1453,3},{65473,1453,3}, {65474,1453,3},{65476,1452,3},{65484,1448,3},{65484,1445,3},{65488,1445,3}, {65489,1442,3},{65493,1435,3},{65494,1430,3},{65493,1428,3},{65493,1427,3}, {65494,1423,3},{65491,1420,3},{65499,1418,3},{65508,1415,3},{65508,1412,3}, {65511,1410,3},{65513,1407,3},{65509,1405,3},{65511,1402,3},{65521,1390,3}, {65523,1388,3},{65526,1392,3},{65526,1397,3},{65528,1402,3},{65531,1400,3}, {65534,1400,3},{0,1395,3},{2,1393,3},{5,1395,3},{7,1392,3},{13,1392,3}, {22,1388,3},{28,1393,3},{38,1397,3},{43,1407,3},{48,1408,3},{50,1407,3}, {53,1408,3},{57,1415,3},{55,1417,3},{53,1423,3},{63,1438,3},{68,1437,3}, {75,1442,3},{78,1443,3},{80,1447,3},{85,1448,3},{88,1447,3},{90,1450,3}, {93,1450,3},{98,1443,3},{105,1440,3},{110,1440,3},{115,1435,3},{120,1435,3}, {125,1430,3},{130,1430,3},{132,1428,3},{138,1420,3},{140,1413,3},{138,1407,3}, {142,1400,3},{142,1398,3},{143,1390,3},{143,1380,3},{137,1378,3},{138,1375,3}, {137,1372,3},{135,1365,3},{133,1363,3},{133,1360,3},{128,1357,3},{128,1353,3}, {127,1352,3},{130,1342,3},{130,1337,3},{127,1337,3},{127,1332,3},{123,1332,3}, {122,1320,3},{123,1317,3},{125,1315,3},{125,1317,3},{128,1318,3},{130,1322,3}, {133,1325,3},{135,1323,3},{138,1325,3},{143,1323,3},{143,1322,3},{145,1322,3}, {150,1318,3},{153,1318,3},{153,1315,3},{158,1313,3},{162,1315,3},{167,1313,3}, {170,1315,3},{173,1317,3},{175,1315,3},{177,1317,3},{178,1317,3},{182,1320,3}, {187,1318,3},{190,1317,3},{190,1318,3},{195,1322,3},{198,1322,3},{205,1328,3}, {217,1330,3},{217,1337,3},{217,1343,3},{217,1348,3},{217,1353,3},{217,1360,3}, {217,1365,3},{217,1370,3},{217,1375,3},{217,1382,3},{217,1387,3},{217,1392,3}, {217,1398,3},{215,1403,3},{215,1408,3},{215,1413,3},{215,1420,3},{215,1428,3}, {217,1435,3},{217,1442,3},{213,1443,3},{215,1447,3},{217,1457,3},{220,1457,3}, {220,1458,3},{215,1463,3},{213,1465,3},{213,1468,3},{210,1472,3},{213,1472,3}, {212,1475,3},{208,1473,3},{210,1477,3},{207,1477,3},{207,1480,3},{207,1482,3}, {208,1485,3},{210,1485,3},{212,1487,3},{207,1488,3},{205,1492,3},{202,1488,3}, {200,1490,3},{200,1497,3},{203,1498,3},{198,1503,3},{200,1507,3},{198,1507,3}, {198,1508,3},{202,1512,3},{200,1513,3},{203,1515,3},{203,1517,3},{202,1518,3}, {203,1522,3},{203,1523,3},{200,1525,3},{198,1530,3},{193,1530,3},{193,1532,3}, {192,1535,3},{197,1543,3},{198,1548,3},{193,1565,3},{193,1570,3},{192,1573,3}, {192,1575,3},{187,1580,3},{182,1588,3},{180,1588,3},{180,1592,3},{178,1593,3}, {177,1600,3},{175,1603,3},{172,1602,3},{168,1603,3},{165,1607,3},{172,1610,3}, {172,1615,3},{173,1617,3},{195,1610,3},{197,1607,3},{202,1607,3},{205,1608,3}, {208,1607,3},{210,1610,3},{217,1608,3},{217,1610,3},{220,1610,3},{218,1617,3}, {222,1620,3},{227,1623,3},{230,1625,3},{235,1627,3},{240,1630,3},{245,1632,3}, {250,1633,3},{255,1637,3},{260,1638,3},{263,1640,3},{268,1643,3},{273,1645,3}, {278,1647,3},{285,1650,3},{288,1650,3},{292,1647,3},{300,1647,3},{307,1652,3}, {315,1648,3},{325,1653,3},{328,1653,3},{332,1655,3},{348,1658,3},{353,1667,3}, {355,1670,3},{355,1677,3},{352,1680,3},{352,1685,3},{353,1687,3},{357,1688,3}, {355,1697,3},{353,1698,3},{355,1705,3},{358,1708,3},{357,1712,3},{358,1715,3}, {358,1723,3},{362,1725,3},{363,1730,3},{362,1735,3},{367,1740,3},{368,1745,3}, {372,1748,3},{363,1762,3},{363,1772,3},{363,1773,3},{362,1777,3},{362,1783,3}, {353,1787,3},{357,1793,3},{358,1793,3},{353,1798,3},{357,1803,3},{357,1810,3}, {355,1815,3},{348,1817,3},{348,1820,3},{350,1823,3},{358,1827,3},{358,1837,3}, {358,1840,3},{360,1840,3},{360,1845,3},{363,1848,3},{360,1853,3},{348,1858,3}, {348,1863,3},{332,1865,3},{327,1863,3},{322,1865,3},{315,1862,3},{308,1853,3}, {297,1850,3},{283,1843,3},{273,1840,3},{262,1835,3},{257,1832,3},{252,1823,3}, {242,1822,3},{233,1817,3},{230,1812,3},{222,1810,3},{213,1810,3},{205,1807,3}, {195,1808,3},{185,1807,3},{172,1808,3},{153,1807,3},{132,1798,3},{125,1798,3}, {113,1793,3},{105,1788,3},{100,1787,3},{82,1790,3},{68,1788,3},{60,1790,3}, {48,1797,3},{45,1797,3},{35,1795,3},{22,1785,3},{15,1780,3},{65523,1772,3}, {65513,1772,3},{65498,1775,3},{65483,1772,3},{65474,1768,3},{65458,1755,3}, {65436,1733,3},{65433,1728,3},{65429,1712,3},{65421,1697,3},{65413,1688,3}, {65404,1680,3},{65394,1675,3},{65371,1665,3},{65349,1652,3},{65334,1637,3}, {65326,1625,3},{65318,1620,3},{65311,1618,3},{65298,1618,3},{65273,1623,3}, {65264,1620,3},{65248,1618,3},{65236,1620,3},{65221,1618,3},{65216,1620,3}, {65211,1618,3},{65208,1622,3},{65203,1623,3},{65194,1618,3},{65191,1615,3}, {65179,1610,3},{65174,1605,3},{65168,1603,3},{65151,1593,3},{65144,1590,3}, {65139,1583,3},{65138,1570,3},{65131,1555,3},{65123,1548,3},{65114,1548,3}, {65109,1545,3},{65106,1542,3},{65108,1533,3},{65103,1522,3},{65086,1510,3}, {65081,1502,3},{65071,1492,3},{65054,1483,3},{65044,1467,3},{65048,1458,3}, {65051,1455,3},{65053,1448,3},{65048,1442,3},{65053,1442,3},{65058,1443,3}, {65061,1442,3},{65068,1443,3},{65073,1438,3},{65081,1437,3},{65084,1440,3}, {65084,1443,3},{65093,1448,3},{65096,1445,3},{65103,1440,3},{65109,1442,3}, {65104,1430,3},{65098,1418,3},{65096,1407,3},{65093,1402,3},{65091,1402,3}, {65086,1397,3},{65088,1388,3},{65091,1385,3},{65094,1382,3},{65091,1373,3}, {65083,1373,3},{65071,1372,3},{65066,1373,3},{65066,1370,3},{65063,1370,3}, {65063,1363,3},{65058,1360,3},{65058,1358,3},{65061,1353,3},{65059,1350,3}, {65056,1352,3},{65051,1343,3},{65048,1342,3},{65051,1338,3},{65058,1338,3}, {65059,1330,3},{65068,1320,3},{65073,1318,3},{65078,1313,3},{65079,1312,3}, {65078,1308,3},{65073,1308,3},{65076,1303,3},{65084,1297,3},{65088,1292,3}, {65094,1290,3},{65096,1287,3},{65094,1282,3},{65098,1278,3},{65093,1273,3}, {65089,1272,3},{65088,1270,3},{65079,1265,3},{65076,1247,3},{65076,1243,3}, {65076,1242,3},{65073,1238,3},{65069,1240,3},{65058,1235,3},{65056,1228,3}, {65058,1227,3},{65056,1225,3},{65058,1223,3},{65061,1222,3},{65058,1220,3}, {65046,1217,3},{65034,1202,3},{64958,1220,131},{64968,1213,3},{64974,1212,3}, {64983,1215,3},{64984,1220,3},{64991,1220,3},{65019,1210,3},{65033,1202,3}, {65033,1205,3},{65031,1208,3},{65036,1212,3},{65038,1210,3},{65034,1208,3}, {65034,1202,3},{65046,1217,3},{65058,1220,3},{65061,1222,3},{65058,1223,3}, {65056,1225,3},{65058,1227,3},{65056,1228,3},{65058,1235,3},{65069,1240,3}, {65073,1238,3},{65076,1242,3},{65076,1243,3},{65076,1247,3},{65079,1265,3}, {65088,1270,3},{65089,1272,3},{65093,1273,3},{65098,1278,3},{65094,1282,3}, {65096,1287,3},{65094,1290,3},{65088,1292,3},{65084,1297,3},{65076,1303,3}, {65073,1308,3},{65069,1308,3},{65069,1307,3},{65068,1302,3},{65064,1292,3}, {65064,1287,3},{65063,1282,3},{65056,1278,3},{65053,1278,3},{65049,1272,3}, {65043,1270,3},{65043,1262,3},{65036,1260,3},{65031,1250,3},{65031,1247,3}, {65026,1247,3},{65024,1253,3},{65019,1253,3},{65014,1253,3},{65009,1253,3}, {65003,1253,3},{64998,1253,3},{64993,1253,3},{64986,1253,3},{64981,1253,3}, {64976,1253,3},{64969,1253,3},{64964,1253,3},{64963,1247,3},{64963,1242,3}, {64963,1237,3},{64963,1228,3},{64958,1220,3},{235,982,131},{255,982,3}, {275,987,3},{282,988,3},{283,987,3},{295,990,3},{298,992,3},{302,995,3}, {308,997,3},{325,990,3},{327,993,3},{327,988,3},{340,982,3},{348,972,3}, {353,965,3},{357,970,3},{362,975,3},{362,982,3},{363,978,3},{360,970,3}, {360,963,3},{362,962,3},{363,963,3},{365,963,3},{382,955,3},{378,958,3}, {375,960,3},{375,965,3},{377,960,3},{382,960,3},{385,960,3},{387,962,3}, {383,967,3},{383,968,3},{385,970,3},{382,975,3},{387,975,3},{387,970,3}, {390,968,3},{392,970,3},{393,977,3},{395,977,3},{393,963,3},{395,962,3}, {402,965,3},{402,967,3},{407,970,3},{412,975,3},{413,975,3},{412,972,3}, {410,970,3},{412,970,3},{412,968,3},{403,963,3},{402,958,3},{402,957,3}, {403,955,3},{403,953,3},{407,950,3},{412,950,3},{412,948,3},{407,945,3}, {407,948,3},{403,948,3},{402,952,3},{398,953,3},{397,950,3},{400,948,3}, {402,942,3},{400,942,3},{398,947,3},{393,945,3},{392,947,3},{390,943,3}, {390,935,3},{393,932,3},{398,930,3},{402,932,3},{403,933,3},{403,930,3}, {398,927,3},{395,925,3},{397,922,3},{402,920,3},{402,912,3},{405,908,3}, {410,897,3},{422,898,3},{425,895,3},{430,892,3},{443,890,3},{450,890,3}, {453,893,3},{455,893,3},{452,892,3},{452,890,3},{458,890,3},{463,883,3}, {462,883,3},{458,887,3},{457,887,3},{455,888,3},{453,887,3},{457,883,3}, {460,880,3},{457,882,3},{453,878,3},{457,873,3},{467,868,3},{468,867,3}, {473,865,3},{470,863,3},{465,867,3},{458,867,3},{455,868,3},{452,872,3}, {450,870,3},{450,862,3},{448,858,3},{450,857,3},{453,858,3},{453,857,3}, {450,853,3},{453,850,3},{457,850,3},{457,853,3},{460,855,3},{460,852,3}, {463,852,3},{467,853,3},{470,858,3},{473,857,3},{475,858,3},{478,858,3}, {480,858,3},{483,863,3},{490,862,3},{492,865,3},{503,873,3},{507,873,3}, {512,877,3},{515,882,3},{518,882,3},{530,885,3},{532,883,3},{537,883,3}, {543,887,3},{550,887,3},{560,892,3},{563,890,3},{570,883,3},{575,887,3}, {578,888,3},{582,887,3},{583,887,3},{587,892,3},{590,893,3},{590,895,3}, {590,900,3},{595,900,3},{595,903,3},{608,913,3},{620,930,3},{633,937,3}, {633,943,3},{640,947,3},{645,958,3},{652,962,3},{652,972,3},{680,980,3}, {678,987,3},{702,1017,3},{698,1018,3},{692,1020,3},{688,1023,3},{688,1052,3}, {693,1052,3},{695,1055,3},{702,1057,3},{713,1060,3},{712,1062,3},{705,1062,3}, {703,1068,3},{697,1078,3},{697,1085,3},{688,1088,3},{683,1088,3},{680,1090,3}, {678,1093,3},{678,1102,3},{673,1107,3},{668,1108,3},{658,1107,3},{643,1112,3}, {643,1118,3},{645,1125,3},{643,1127,3},{645,1130,3},{643,1133,3},{645,1138,3}, {648,1142,3},{658,1143,3},{660,1152,3},{665,1155,3},{678,1158,3},{682,1155,3}, {690,1158,3},{695,1163,3},{697,1168,3},{700,1172,3},{700,1177,3},{703,1177,3}, {707,1182,3},{708,1188,3},{712,1190,3},{722,1182,3},{725,1178,3},{725,1175,3}, {727,1175,3},{730,1180,3},{740,1187,3},{745,1192,3},{757,1202,3},{757,1203,3}, {763,1203,3},{767,1202,3},{773,1203,3},{792,1217,3},{797,1222,3},{810,1220,3}, {820,1225,3},{832,1223,3},{840,1225,3},{842,1227,3},{843,1230,3},{842,1233,3}, {850,1242,3},{862,1238,3},{860,1243,3},{863,1250,3},{860,1257,3},{867,1268,3}, {877,1273,3},{875,1278,3},{877,1280,3},{885,1282,3},{902,1285,3},{907,1283,3}, {928,1292,3},{935,1292,3},{935,1287,3},{937,1285,3},{937,1287,3},{938,1288,3}, {942,1295,3},{945,1297,3},{950,1302,3},{953,1318,3},{958,1323,3},{965,1323,3}, {967,1325,3},{973,1325,3},{980,1328,3},{987,1323,3},{992,1323,3},{993,1325,3}, {998,1327,3},{1002,1325,3},{1007,1325,3},{1008,1328,3},{1012,1340,3},{1017,1347,3}, {1020,1347,3},{1023,1347,3},{1030,1348,3},{1045,1350,3},{1065,1357,3},{1068,1358,3}, {1085,1370,3},{1090,1372,3},{1093,1377,3},{1103,1378,3},{1107,1385,3},{1117,1388,3}, {1128,1400,3},{1125,1412,3},{1123,1415,3},{1125,1418,3},{1130,1425,3},{1132,1430,3}, {1140,1440,3},{1142,1447,3},{1145,1452,3},{1150,1462,3},{1157,1465,3},{1165,1463,3}, {1170,1455,3},{1177,1462,3},{1183,1462,3},{1192,1465,3},{1197,1465,3},{1203,1462,3}, {1205,1465,3},{1207,1463,3},{1212,1465,3},{1215,1467,3},{1218,1467,3},{1218,1465,3}, {1218,1462,3},{1220,1460,3},{1223,1455,3},{1225,1457,3},{1228,1453,3},{1228,1452,3}, {1232,1452,3},{1233,1448,3},{1235,1443,3},{1235,1422,3},{1238,1417,3},{1245,1418,3}, {1245,1420,3},{1247,1420,3},{1252,1422,3},{1258,1427,3},{1265,1420,3},{1267,1422,3}, {1268,1423,3},{1268,1425,3},{1270,1427,3},{1270,1432,3},{1268,1433,3},{1268,1435,3}, {1267,1437,3},{1267,1447,3},{1272,1448,3},{1277,1452,3},{1285,1452,3},{1285,1453,3}, {1283,1455,3},{1277,1455,3},{1277,1457,3},{1273,1458,3},{1277,1462,3},{1273,1462,3}, {1272,1465,3},{1272,1472,3},{1265,1470,3},{1268,1473,3},{1263,1477,3},{1263,1483,3}, {1250,1487,3},{1245,1485,3},{1245,1487,3},{1238,1490,3},{1220,1490,3},{1218,1492,3}, {1215,1488,3},{1210,1495,3},{1208,1498,3},{1210,1500,3},{1208,1505,3},{1200,1505,3}, {1197,1508,3},{1197,1505,3},{1193,1507,3},{1188,1503,3},{1185,1505,3},{1185,1508,3}, {1178,1512,3},{1175,1508,3},{1172,1510,3},{1172,1507,3},{1168,1507,3},{1158,1508,3}, {1155,1513,3},{1152,1513,3},{1143,1507,3},{1140,1505,3},{1135,1505,3},{1130,1507,3}, {1120,1502,3},{1098,1503,3},{1090,1508,3},{1080,1505,3},{1062,1515,3},{1053,1513,3}, {1050,1515,3},{1050,1518,3},{1048,1522,3},{1038,1528,3},{1033,1528,3},{1030,1530,3}, {1028,1535,3},{1020,1540,3},{1020,1543,3},{1010,1550,3},{998,1568,3},{993,1542,3}, {998,1523,3},{998,1517,3},{998,1510,3},{995,1508,3},{995,1503,3},{997,1492,3}, {992,1478,3},{998,1453,3},{1000,1445,3},{998,1418,3},{993,1418,3},{983,1412,3}, {978,1408,3},{975,1402,3},{963,1395,3},{960,1403,3},{923,1435,3},{920,1435,3}, {900,1457,3},{882,1482,3},{882,1487,3},{877,1492,3},{875,1493,3},{873,1497,3}, {868,1497,3},{865,1507,3},{855,1512,3},{848,1520,3},{822,1532,3},{812,1538,3}, {803,1538,3},{782,1548,3},{777,1550,3},{775,1558,3},{763,1557,3},{753,1550,3}, {743,1543,3},{740,1547,3},{740,1542,3},{737,1542,3},{735,1537,3},{732,1535,3}, {730,1530,3},{723,1523,3},{718,1520,3},{710,1520,3},{705,1515,3},{697,1513,3}, {683,1507,3},{678,1507,3},{675,1500,3},{673,1497,3},{638,1480,3},{635,1480,3}, {633,1480,3},{627,1473,3},{618,1458,3},{620,1455,3},{615,1452,3},{613,1452,3}, {613,1448,3},{610,1447,3},{608,1443,3},{605,1442,3},{600,1442,3},{597,1447,3}, {592,1448,3},{590,1455,3},{593,1458,3},{592,1460,3},{590,1462,3},{572,1463,3}, {560,1458,3},{552,1462,3},{545,1460,3},{542,1460,3},{538,1458,3},{530,1453,3}, {525,1458,3},{522,1465,3},{518,1467,3},{512,1468,3},{510,1468,3},{503,1468,3}, {502,1467,3},{498,1470,3},{495,1468,3},{488,1472,3},{485,1470,3},{480,1472,3}, {477,1470,3},{462,1473,3},{453,1480,3},{442,1502,3},{437,1503,3},{430,1508,3}, {413,1510,3},{410,1513,3},{407,1515,3},{407,1518,3},{405,1518,3},{405,1515,3}, {402,1512,3},{403,1505,3},{392,1508,3},{368,1525,3},{333,1560,3},{310,1582,3}, {312,1590,3},{310,1593,3},{305,1598,3},{298,1600,3},{298,1605,3},{290,1610,3}, {282,1612,3},{278,1607,3},{275,1608,3},{270,1608,3},{270,1612,3},{265,1610,3}, {258,1612,3},{252,1608,3},{247,1612,3},{242,1612,3},{227,1618,3},{225,1618,3}, {222,1620,3},{218,1617,3},{220,1610,3},{217,1610,3},{217,1608,3},{210,1610,3}, {208,1607,3},{205,1608,3},{202,1607,3},{197,1607,3},{195,1610,3},{173,1617,3}, {172,1615,3},{172,1610,3},{165,1607,3},{168,1603,3},{172,1602,3},{175,1603,3}, {177,1600,3},{178,1593,3},{180,1592,3},{180,1588,3},{182,1588,3},{187,1580,3}, {192,1575,3},{192,1573,3},{193,1570,3},{193,1565,3},{198,1548,3},{197,1543,3}, {192,1535,3},{193,1532,3},{193,1530,3},{198,1530,3},{200,1525,3},{203,1523,3}, {203,1522,3},{202,1518,3},{203,1517,3},{203,1515,3},{200,1513,3},{202,1512,3}, {198,1508,3},{198,1507,3},{200,1507,3},{198,1503,3},{203,1498,3},{200,1497,3}, {200,1490,3},{202,1488,3},{205,1492,3},{207,1488,3},{212,1487,3},{210,1485,3}, {208,1485,3},{207,1482,3},{207,1480,3},{207,1477,3},{210,1477,3},{208,1473,3}, {212,1475,3},{213,1472,3},{210,1472,3},{213,1468,3},{213,1465,3},{215,1463,3}, {220,1458,3},{220,1457,3},{217,1457,3},{215,1447,3},{213,1443,3},{217,1442,3}, {217,1435,3},{215,1428,3},{215,1420,3},{215,1413,3},{215,1408,3},{215,1403,3}, {217,1398,3},{217,1392,3},{217,1387,3},{217,1382,3},{217,1375,3},{217,1370,3}, {217,1365,3},{217,1360,3},{217,1353,3},{217,1348,3},{217,1343,3},{217,1337,3}, {217,1330,3},{222,1330,3},{223,1328,3},{227,1327,3},{227,1320,3},{228,1317,3}, {228,1313,3},{225,1308,3},{225,1305,3},{225,1300,3},{225,1288,3},{223,1287,3}, {227,1282,3},{225,1280,3},{223,1275,3},{227,1260,3},{228,1257,3},{230,1248,3}, {228,1240,3},{232,1233,3},{228,1222,3},{230,1192,3},{228,1175,3},{233,1168,3}, {232,1160,3},{230,1137,3},{227,1137,3},{223,1135,3},{217,1133,3},{217,1128,3}, {217,1123,3},{217,1118,3},{217,1112,3},{217,1107,3},{217,1102,3},{217,1097,3}, {217,1090,3},{217,1085,3},{217,1080,3},{217,1075,3},{217,1068,3},{217,1063,3}, {217,1058,3},{217,1052,3},{217,1047,3},{217,1042,3},{217,1037,3},{217,1030,3}, {217,1025,3},{217,1020,3},{217,1015,3},{217,1008,3},{217,1002,3},{220,993,3}, {225,983,3},{228,983,3},{233,983,3},{235,982,3},{65141,1117,131},{65151,1103,3}, {65161,1098,3},{65166,1098,3},{65171,1093,3},{65183,1080,3},{65194,1065,3}, {65196,1063,3},{65201,1065,3},{65204,1063,3},{65213,1053,3},{65219,1048,3}, {65244,1023,3},{65248,1017,3},{65271,988,3},{65276,985,3},{65291,970,3}, {65284,978,3},{65286,982,3},{65289,983,3},{65286,983,3},{65286,985,3},{65281,985,3}, {65283,990,3},{65281,993,3},{65278,993,3},{65276,993,3},{65278,997,3},{65273,997,3}, {65274,1000,3},{65273,1002,3},{65274,1003,3},{65278,1005,3},{65278,1015,3}, {65279,1017,3},{65281,1013,3},{65284,1013,3},{65284,1010,3},{65286,1008,3}, {65279,1010,3},{65279,1008,3},{65284,1005,3},{65286,1002,3},{65281,1000,3}, {65279,998,3},{65281,997,3},{65286,995,3},{65286,997,3},{65286,998,3},{65288,992,3}, {65294,988,3},{65293,982,3},{65288,977,3},{65293,972,3},{65294,975,3},{65296,972,3}, {65298,973,3},{65298,970,3},{65294,972,3},{65293,970,3},{65298,965,3},{65298,963,3}, {65293,967,3},{65298,962,3},{65303,958,3},{65314,957,3},{65329,942,3},{65334,940,3}, {65334,938,3},{65341,935,3},{65349,927,3},{65349,928,3},{65346,932,3},{65346,935,3}, {65344,935,3},{65344,937,3},{65348,937,3},{65344,938,3},{65343,938,3},{65344,938,3}, {65344,945,3},{65344,947,3},{65341,948,3},{65338,947,3},{65336,950,3},{65333,950,3}, {65329,953,3},{65331,957,3},{65333,957,3},{65336,955,3},{65339,950,3},{65341,950,3}, {65343,952,3},{65349,948,3},{65351,947,3},{65349,945,3},{65351,943,3},{65348,943,3}, {65353,940,3},{65354,937,3},{65348,933,3},{65349,930,3},{65351,932,3},{65353,928,3}, {65351,925,3},{65358,925,3},{65363,925,3},{65376,922,3},{65403,903,3},{65413,898,3}, {65404,902,3},{65401,908,3},{65398,908,3},{65396,912,3},{65389,915,3},{65386,920,3}, {65383,927,3},{65374,927,3},{65371,927,3},{65368,928,3},{65369,930,3},{65373,928,3}, {65371,932,3},{65373,932,3},{65374,940,3},{65371,938,3},{65369,942,3},{65371,942,3}, {65376,942,3},{65374,957,3},{65378,950,3},{65381,948,3},{65388,948,3},{65389,945,3}, {65388,943,3},{65384,943,3},{65379,940,3},{65378,932,3},{65379,928,3},{65384,928,3}, {65386,925,3},{65389,925,3},{65389,928,3},{65393,930,3},{65394,928,3},{65396,933,3}, {65403,935,3},{65406,933,3},{65408,932,3},{65401,933,3},{65399,933,3},{65398,930,3}, {65399,927,3},{65394,923,3},{65396,920,3},{65394,918,3},{65398,915,3},{65401,917,3}, {65403,915,3},{65399,912,3},{65406,903,3},{65409,902,3},{65413,902,3},{65414,903,3}, {65418,903,3},{65419,900,3},{65418,902,3},{65414,900,3},{65424,897,3},{65438,887,3}, {65434,892,3},{65436,892,3},{65436,890,3},{65439,893,3},{65439,887,3},{65444,887,3}, {65443,883,3},{65448,883,3},{65454,878,3},{65464,875,3},{65473,872,3},{65476,870,3}, {65479,872,3},{65474,872,3},{65476,875,3},{65473,875,3},{65473,878,3},{65464,880,3}, {65461,880,3},{65459,883,3},{65456,885,3},{65458,885,3},{65464,887,3},{65463,892,3}, {65466,888,3},{65468,890,3},{65468,893,3},{65461,897,3},{65456,900,3},{65448,900,3}, {65451,902,3},{65458,902,3},{65463,905,3},{65464,905,3},{65468,908,3},{65469,908,3}, {65469,910,3},{65468,912,3},{65471,912,3},{65473,908,3},{65476,910,3},{65484,918,3}, {65501,930,3},{65514,930,3},{65524,935,3},{65533,933,3},{2,935,3},{18,932,3}, {32,930,3},{37,935,3},{33,937,3},{28,938,3},{25,937,3},{22,938,3},{18,935,3}, {18,937,3},{20,938,3},{20,942,3},{18,943,3},{17,947,3},{13,947,3},{10,947,3}, {10,950,3},{17,948,3},{18,950,3},{17,957,3},{13,958,3},{12,958,3},{13,960,3}, {15,963,3},{13,967,3},{13,972,3},{10,975,3},{3,978,3},{2,982,3},{10,977,3}, {13,977,3},{13,980,3},{12,982,3},{15,985,3},{18,992,3},{17,997,3},{18,1003,3}, {18,998,3},{22,993,3},{18,985,3},{18,978,3},{22,972,3},{22,968,3},{28,958,3}, {32,957,3},{30,955,3},{30,952,3},{28,950,3},{48,940,3},{53,935,3},{53,930,3}, {62,932,3},{63,937,3},{65,942,3},{65,945,3},{67,953,3},{65,957,3},{62,957,3}, {62,950,3},{60,947,3},{60,952,3},{58,955,3},{57,955,3},{57,957,3},{60,958,3}, {48,958,3},{47,960,3},{52,960,3},{55,963,3},{60,963,3},{63,962,3},{78,963,3}, {82,962,3},{85,960,3},{93,958,3},{95,957,3},{98,957,3},{102,960,3},{102,962,3}, {102,965,3},{105,967,3},{105,973,3},{103,977,3},{97,980,3},{100,980,3}, {100,982,3},{100,988,3},{100,993,3},{100,998,3},{100,1005,3},{100,1010,3}, {100,1015,3},{100,1020,3},{100,1027,3},{100,1032,3},{100,1037,3},{100,1042,3}, {100,1048,3},{100,1053,3},{100,1058,3},{100,1065,3},{100,1070,3},{100,1075,3}, {100,1080,3},{100,1087,3},{100,1092,3},{100,1097,3},{100,1103,3},{100,1108,3}, {100,1113,3},{100,1118,3},{100,1125,3},{100,1130,3},{100,1135,3},{103,1135,3}, {108,1135,3},{113,1135,3},{118,1135,3},{125,1135,3},{130,1135,3},{135,1135,3}, {140,1135,3},{147,1135,3},{152,1135,3},{157,1135,3},{163,1135,3},{168,1135,3}, {173,1135,3},{178,1135,3},{185,1135,3},{190,1135,3},{195,1135,3},{200,1135,3}, {207,1135,3},{212,1135,3},{217,1133,3},{223,1135,3},{227,1137,3},{230,1137,3}, {232,1160,3},{233,1168,3},{228,1175,3},{230,1192,3},{228,1222,3},{232,1233,3}, {228,1240,3},{230,1248,3},{228,1257,3},{227,1260,3},{223,1275,3},{225,1280,3}, {227,1282,3},{223,1287,3},{225,1288,3},{225,1300,3},{225,1305,3},{225,1308,3}, {228,1313,3},{228,1317,3},{227,1320,3},{227,1327,3},{223,1328,3},{222,1330,3}, {217,1330,3},{205,1328,3},{198,1322,3},{195,1322,3},{190,1318,3},{190,1317,3}, {187,1318,3},{182,1320,3},{178,1317,3},{177,1317,3},{175,1315,3},{173,1317,3}, {170,1315,3},{167,1313,3},{162,1315,3},{158,1313,3},{153,1315,3},{153,1318,3}, {150,1318,3},{145,1322,3},{143,1322,3},{143,1323,3},{138,1325,3},{135,1323,3}, {133,1325,3},{130,1322,3},{128,1318,3},{125,1317,3},{125,1315,3},{123,1317,3}, {122,1320,3},{123,1332,3},{127,1332,3},{127,1337,3},{130,1337,3},{130,1342,3}, {127,1352,3},{128,1353,3},{128,1357,3},{133,1360,3},{133,1363,3},{135,1365,3}, {137,1372,3},{138,1375,3},{137,1378,3},{143,1380,3},{143,1390,3},{142,1398,3}, {142,1400,3},{138,1407,3},{140,1413,3},{138,1420,3},{132,1428,3},{130,1430,3}, {125,1430,3},{120,1435,3},{115,1435,3},{110,1440,3},{105,1440,3},{98,1443,3}, {93,1450,3},{90,1450,3},{88,1447,3},{85,1448,3},{80,1447,3},{78,1443,3}, {75,1442,3},{68,1437,3},{63,1438,3},{53,1423,3},{55,1417,3},{57,1415,3}, {53,1408,3},{50,1407,3},{48,1408,3},{43,1407,3},{38,1397,3},{28,1393,3}, {22,1388,3},{13,1392,3},{7,1392,3},{5,1395,3},{2,1393,3},{0,1395,3},{65534,1400,3}, {65531,1400,3},{65528,1402,3},{65526,1397,3},{65526,1392,3},{65523,1388,3}, {65521,1390,3},{65511,1402,3},{65509,1405,3},{65513,1407,3},{65511,1410,3}, {65508,1412,3},{65508,1415,3},{65499,1418,3},{65491,1420,3},{65494,1423,3}, {65493,1427,3},{65493,1428,3},{65494,1430,3},{65493,1435,3},{65489,1442,3}, {65488,1445,3},{65484,1445,3},{65484,1448,3},{65476,1452,3},{65474,1453,3}, {65473,1453,3},{65469,1453,3},{65463,1448,3},{65456,1447,3},{65453,1448,3}, {65449,1448,3},{65443,1443,3},{65433,1443,3},{65423,1447,3},{65419,1447,3}, {65416,1448,3},{65413,1450,3},{65408,1450,3},{65404,1447,3},{65401,1447,3}, {65398,1452,3},{65394,1452,3},{65393,1452,3},{65391,1448,3},{65388,1448,3}, {65386,1447,3},{65383,1450,3},{65381,1450,3},{65379,1447,3},{65376,1443,3}, {65374,1440,3},{65373,1443,3},{65368,1443,3},{65368,1448,3},{65366,1445,3}, {65361,1443,3},{65356,1445,3},{65349,1443,3},{65346,1445,3},{65343,1440,3}, {65341,1433,3},{65339,1432,3},{65338,1427,3},{65334,1427,3},{65331,1428,3}, {65321,1427,3},{65319,1423,3},{65316,1423,3},{65314,1420,3},{65311,1417,3}, {65311,1418,3},{65308,1420,3},{65306,1423,3},{65301,1427,3},{65299,1422,3}, {65296,1417,3},{65293,1417,3},{65286,1412,3},{65286,1408,3},{65288,1408,3}, {65286,1402,3},{65289,1400,3},{65286,1393,3},{65289,1388,3},{65294,1388,3}, {65296,1392,3},{65298,1392,3},{65301,1395,3},{65303,1390,3},{65306,1390,3}, {65313,1385,3},{65321,1382,3},{65326,1377,3},{65321,1373,3},{65318,1373,3}, {65306,1363,3},{65303,1363,3},{65303,1360,3},{65299,1357,3},{65296,1352,3}, {65293,1350,3},{65294,1343,3},{65293,1340,3},{65299,1322,3},{65298,1315,3}, {65303,1305,3},{65298,1300,3},{65303,1302,3},{65306,1302,3},{65308,1305,3}, {65309,1302,3},{65311,1302,3},{65318,1298,3},{65316,1295,3},{65318,1293,3}, {65321,1290,3},{65324,1292,3},{65326,1290,3},{65328,1292,3},{65331,1288,3}, {65336,1285,3},{65341,1285,3},{65343,1283,3},{65346,1283,3},{65348,1280,3}, {65348,1277,3},{65351,1273,3},{65354,1267,3},{65353,1263,3},{65354,1258,3}, {65349,1252,3},{65348,1253,3},{65344,1252,3},{65348,1247,3},{65349,1247,3}, {65348,1245,3},{65343,1247,3},{65333,1245,3},{65328,1248,3},{65326,1253,3}, {65319,1248,3},{65313,1250,3},{65306,1247,3},{65303,1247,3},{65301,1250,3}, {65293,1250,3},{65293,1208,3},{65294,1203,3},{65301,1198,3},{65303,1195,3}, {65299,1192,3},{65298,1180,3},{65293,1175,3},{65293,1173,3},{65296,1173,3}, {65296,1168,3},{65301,1168,3},{65303,1162,3},{65303,1158,3},{65293,1160,3}, {65286,1160,3},{65281,1163,3},{65274,1165,3},{65264,1162,3},{65256,1155,3}, {65251,1155,3},{65251,1158,3},{65253,1158,3},{65258,1163,3},{65253,1182,3}, {65248,1185,3},{65241,1187,3},{65241,1185,3},{65234,1180,3},{65231,1175,3}, {65228,1173,3},{65216,1185,3},{65208,1200,3},{65206,1200,3},{65201,1197,3}, {65191,1197,3},{65188,1193,3},{65186,1187,3},{65183,1187,3},{65178,1187,3}, {65171,1193,3},{65168,1193,3},{65163,1187,3},{65169,1175,3},{65191,1162,3}, {65194,1157,3},{65194,1153,3},{65193,1148,3},{65184,1148,3},{65178,1143,3}, {65176,1135,3},{65168,1123,3},{65159,1120,3},{65156,1122,3},{65141,1117,3}, {100,980,131},{105,978,3},{108,985,3},{108,982,3},{110,978,3},{110,970,3}, {113,972,3},{112,968,3},{107,965,3},{103,958,3},{112,955,3},{113,948,3}, {110,940,3},{115,937,3},{118,935,3},{118,937,3},{127,940,3},{133,945,3}, {138,945,3},{150,957,3},{157,960,3},{158,962,3},{157,965,3},{157,970,3}, {160,973,3},{158,970,3},{158,965,3},{163,962,3},{167,962,3},{177,972,3}, {182,975,3},{185,975,3},{192,982,3},{210,977,3},{213,978,3},{232,977,3}, {235,982,3},{233,983,3},{228,983,3},{225,983,3},{220,993,3},{217,1002,3}, {217,1008,3},{217,1015,3},{217,1020,3},{217,1025,3},{217,1030,3},{217,1037,3}, {217,1042,3},{217,1047,3},{217,1052,3},{217,1058,3},{217,1063,3},{217,1068,3}, {217,1075,3},{217,1080,3},{217,1085,3},{217,1090,3},{217,1097,3},{217,1102,3}, {217,1107,3},{217,1112,3},{217,1118,3},{217,1123,3},{217,1128,3},{217,1133,3}, {212,1135,3},{207,1135,3},{200,1135,3},{195,1135,3},{190,1135,3},{185,1135,3}, {178,1135,3},{173,1135,3},{168,1135,3},{163,1135,3},{157,1135,3},{152,1135,3}, {147,1135,3},{140,1135,3},{135,1135,3},{130,1135,3},{125,1135,3},{118,1135,3}, {113,1135,3},{108,1135,3},{103,1135,3},{100,1135,3},{100,1130,3},{100,1125,3}, {100,1118,3},{100,1113,3},{100,1108,3},{100,1103,3},{100,1097,3},{100,1092,3}, {100,1087,3},{100,1080,3},{100,1075,3},{100,1070,3},{100,1065,3},{100,1058,3}, {100,1053,3},{100,1048,3},{100,1042,3},{100,1037,3},{100,1032,3},{100,1027,3}, {100,1020,3},{100,1015,3},{100,1010,3},{100,1005,3},{100,998,3},{100,993,3}, {100,988,3},{100,982,3},{100,980,3},{637,272,131},{645,272,3},{657,275,3}, {662,273,3},{667,277,3},{668,280,3},{677,278,3},{677,275,3},{680,273,3}, {692,275,3},{695,273,3},{700,275,3},{703,280,3},{710,275,3},{713,278,3}, {742,275,3},{743,277,3},{742,280,3},{750,282,3},{757,273,3},{765,273,3}, {782,275,3},{790,268,3},{793,270,3},{813,272,3},{815,273,3},{820,275,3}, {833,272,3},{842,272,3},{847,275,3},{852,277,3},{867,275,3},{872,275,3}, {878,273,3},{882,277,3},{885,277,3},{890,278,3},{892,277,3},{893,278,3}, {905,278,3},{907,282,3},{905,288,3},{908,290,3},{908,297,3},{907,298,3}, {908,310,3},{925,315,3},{927,317,3},{937,317,3},{943,313,3},{950,317,3}, {950,320,3},{958,327,3},{963,327,3},{965,330,3},{963,332,3},{968,337,3}, {975,333,3},{982,335,3},{985,348,3},{985,353,3},{995,362,3},{1007,363,3}, {1010,367,3},{1017,368,3},{1018,368,3},{1020,365,3},{1027,358,3},{1038,363,3}, {1042,363,3},{1045,368,3},{1040,380,3},{1047,382,3},{1050,382,3},{1058,385,3}, {1070,385,3},{1072,380,3},{1078,378,3},{1080,375,3},{1090,378,3},{1102,375,3}, {1103,373,3},{1112,373,3},{1112,370,3},{1143,347,3},{1155,352,3},{1157,353,3}, {1165,357,3},{1168,360,3},{1173,357,3},{1175,357,3},{1175,368,3},{1182,367,3}, {1183,363,3},{1192,362,3},{1198,367,3},{1210,363,3},{1225,367,3},{1253,365,3}, {1275,395,3},{1300,410,3},{1318,413,3},{1348,415,3},{1348,425,3},{1368,447,3}, {1378,488,3},{1373,492,3},{1373,500,3},{1375,512,3},{1375,528,3},{1378,533,3}, {1385,537,3},{1388,555,3},{1382,567,3},{1367,612,3},{1365,617,3},{1368,623,3}, {1368,628,3},{1360,642,3},{1335,668,3},{1310,680,3},{1300,693,3},{1300,708,3}, {1313,722,3},{1310,738,3},{1335,782,3},{1330,812,3},{1322,823,3},{1322,827,3}, {1307,843,3},{1308,848,3},{1307,857,3},{1300,863,3},{1295,867,3},{1285,898,3}, {1282,932,3},{1283,940,3},{1282,942,3},{1280,963,3},{1308,988,3},{1307,992,3}, {1313,993,3},{1327,1015,3},{1332,1047,3},{1338,1070,3},{1338,1085,3},{1337,1107,3}, {1338,1128,3},{1338,1145,3},{1327,1182,3},{1317,1202,3},{1312,1207,3},{1310,1215,3}, {1312,1218,3},{1312,1220,3},{1312,1225,3},{1308,1227,3},{1310,1230,3},{1307,1233,3}, {1307,1243,3},{1305,1248,3},{1308,1250,3},{1313,1250,3},{1315,1255,3},{1318,1255,3}, {1320,1253,3},{1322,1257,3},{1323,1257,3},{1327,1258,3},{1327,1262,3},{1330,1263,3}, {1328,1265,3},{1328,1268,3},{1332,1268,3},{1332,1272,3},{1333,1275,3},{1338,1277,3}, {1337,1280,3},{1340,1280,3},{1340,1283,3},{1343,1283,3},{1345,1287,3},{1348,1285,3}, {1347,1288,3},{1350,1288,3},{1348,1292,3},{1355,1307,3},{1355,1308,3},{1352,1308,3}, {1353,1312,3},{1352,1312,3},{1352,1313,3},{1355,1313,3},{1355,1315,3},{1352,1315,3}, {1353,1318,3},{1353,1320,3},{1357,1325,3},{1358,1323,3},{1360,1327,3},{1362,1325,3}, {1368,1332,3},{1363,1337,3},{1355,1335,3},{1353,1337,3},{1350,1338,3},{1342,1338,3}, {1337,1343,3},{1333,1348,3},{1332,1350,3},{1327,1352,3},{1322,1355,3},{1317,1360,3}, {1317,1362,3},{1313,1362,3},{1312,1360,3},{1310,1362,3},{1313,1367,3},{1313,1368,3}, {1312,1372,3},{1308,1372,3},{1307,1373,3},{1307,1377,3},{1310,1382,3},{1310,1383,3}, {1313,1385,3},{1313,1390,3},{1310,1388,3},{1305,1383,3},{1298,1378,3},{1297,1378,3}, {1300,1382,3},{1300,1385,3},{1295,1380,3},{1293,1378,3},{1293,1380,3},{1298,1387,3}, {1298,1388,3},{1297,1388,3},{1297,1387,3},{1295,1385,3},{1295,1387,3},{1288,1387,3}, {1285,1380,3},{1283,1385,3},{1282,1387,3},{1278,1385,3},{1280,1383,3},{1280,1382,3}, {1277,1385,3},{1273,1383,3},{1272,1385,3},{1270,1385,3},{1267,1383,3},{1260,1392,3}, {1258,1395,3},{1253,1397,3},{1252,1397,3},{1250,1398,3},{1248,1402,3},{1248,1405,3}, {1255,1412,3},{1255,1413,3},{1250,1418,3},{1245,1418,3},{1238,1417,3},{1235,1422,3}, {1235,1443,3},{1233,1448,3},{1232,1452,3},{1228,1452,3},{1228,1453,3},{1225,1457,3}, {1223,1455,3},{1220,1460,3},{1218,1462,3},{1218,1465,3},{1218,1467,3},{1215,1467,3}, {1212,1465,3},{1207,1463,3},{1205,1465,3},{1203,1462,3},{1197,1465,3},{1192,1465,3}, {1183,1462,3},{1177,1462,3},{1170,1455,3},{1165,1463,3},{1157,1465,3},{1150,1462,3}, {1145,1452,3},{1142,1447,3},{1140,1440,3},{1132,1430,3},{1130,1425,3},{1125,1418,3}, {1123,1415,3},{1125,1412,3},{1128,1400,3},{1117,1388,3},{1107,1385,3},{1103,1378,3}, {1093,1377,3},{1090,1372,3},{1085,1370,3},{1068,1358,3},{1065,1357,3},{1045,1350,3}, {1030,1348,3},{1023,1347,3},{1020,1347,3},{1017,1347,3},{1012,1340,3},{1008,1328,3}, {1007,1325,3},{1002,1325,3},{998,1327,3},{993,1325,3},{992,1323,3},{987,1323,3}, {980,1328,3},{973,1325,3},{967,1325,3},{965,1323,3},{958,1323,3},{953,1318,3}, {950,1302,3},{945,1297,3},{942,1295,3},{938,1288,3},{937,1287,3},{937,1285,3}, {935,1287,3},{935,1292,3},{928,1292,3},{907,1283,3},{902,1285,3},{885,1282,3}, {877,1280,3},{875,1278,3},{877,1273,3},{867,1268,3},{860,1257,3},{863,1250,3}, {860,1243,3},{862,1238,3},{850,1242,3},{842,1233,3},{843,1230,3},{842,1227,3}, {840,1225,3},{832,1223,3},{820,1225,3},{810,1220,3},{797,1222,3},{792,1217,3}, {773,1203,3},{767,1202,3},{763,1203,3},{757,1203,3},{757,1202,3},{745,1192,3}, {740,1187,3},{730,1180,3},{727,1175,3},{725,1175,3},{725,1178,3},{722,1182,3}, {712,1190,3},{708,1188,3},{707,1182,3},{703,1177,3},{700,1177,3},{700,1172,3}, {697,1168,3},{695,1163,3},{690,1158,3},{682,1155,3},{678,1158,3},{665,1155,3}, {660,1152,3},{658,1143,3},{648,1142,3},{645,1138,3},{643,1133,3},{645,1130,3}, {643,1127,3},{645,1125,3},{643,1118,3},{643,1112,3},{658,1107,3},{668,1108,3}, {673,1107,3},{678,1102,3},{678,1093,3},{680,1090,3},{683,1088,3},{688,1088,3}, {697,1085,3},{697,1078,3},{703,1068,3},{705,1062,3},{712,1062,3},{713,1060,3}, {702,1057,3},{695,1055,3},{693,1052,3},{688,1052,3},{688,1023,3},{692,1020,3}, {698,1018,3},{702,1017,3},{678,987,3},{680,980,3},{652,972,3},{652,962,3}, {645,958,3},{640,947,3},{633,943,3},{633,937,3},{620,930,3},{608,913,3}, {595,903,3},{595,900,3},{590,900,3},{590,895,3},{590,893,3},{587,892,3}, {583,887,3},{582,887,3},{578,888,3},{575,887,3},{570,883,3},{563,890,3}, {560,892,3},{550,887,3},{543,887,3},{537,883,3},{532,883,3},{530,885,3}, {518,882,3},{515,882,3},{512,877,3},{507,873,3},{503,873,3},{492,865,3}, {490,862,3},{483,863,3},{480,858,3},{482,860,3},{482,857,3},{478,853,3}, {470,853,3},{470,848,3},{475,848,3},{473,845,3},{475,840,3},{482,843,3}, {485,842,3},{480,840,3},{478,838,3},{480,835,3},{483,833,3},{483,832,3}, {487,832,3},{490,825,3},{493,823,3},{498,818,3},{497,818,3},{492,825,3}, {485,827,3},{482,827,3},{475,832,3},{472,833,3},{467,832,3},{463,837,3}, {460,833,3},{460,832,3},{455,830,3},{455,803,3},{453,798,3},{452,773,3}, {450,775,3},{450,767,3},{452,767,3},{453,757,3},{453,753,3},{457,755,3}, {463,753,3},{467,753,3},{470,755,3},{468,752,3},{463,752,3},{460,753,3}, {457,750,3},{457,747,3},{455,745,3},{455,742,3},{460,732,3},{460,728,3}, {457,727,3},{455,727,3},{453,730,3},{453,733,3},{450,733,3},{450,728,3}, {462,718,3},{467,718,3},{465,715,3},{468,710,3},{475,707,3},{472,705,3}, {472,708,3},{467,708,3},{463,715,3},{460,717,3},{457,718,3},{455,715,3}, {453,718,3},{452,718,3},{447,717,3},{447,712,3},{445,710,3},{447,708,3}, {450,708,3},{448,705,3},{443,708,3},{443,705,3},{458,700,3},{458,702,3}, {465,703,3},{472,700,3},{468,698,3},{472,697,3},{468,697,3},{460,698,3}, {462,695,3},{468,690,3},{460,693,3},{458,692,3},{457,693,3},{460,695,3}, {458,698,3},{448,698,3},{438,702,3},{437,700,3},{438,697,3},{437,697,3}, {438,692,3},{438,687,3},{445,687,3},{445,685,3},{455,682,3},{457,682,3}, {460,685,3},{467,678,3},{475,677,3},{480,678,3},{480,677,3},{483,675,3}, {482,673,3},{483,672,3},{478,672,3},{477,675,3},{467,677,3},{460,682,3}, {457,680,3},{453,680,3},{440,683,3},{435,687,3},{433,673,3},{435,672,3}, {448,672,3},{457,675,3},{460,673,3},{452,670,3},{442,670,3},{450,668,3}, {453,668,3},{450,665,3},{442,667,3},{440,668,3},{433,670,3},{433,662,3}, {438,660,3},{447,660,3},{450,655,3},{447,658,3},{437,657,3},{433,658,3}, {432,647,3},{435,643,3},{433,640,3},{432,642,3},{430,625,3},{432,625,3}, {437,627,3},{443,633,3},{443,630,3},{442,630,3},{438,627,3},{445,627,3}, {450,623,3},{443,625,3},{440,625,3},{443,623,3},{443,620,3},{438,623,3}, {433,622,3},{432,620,3},{430,620,3},{430,622,3},{428,623,3},{427,610,3}, {428,608,3},{433,608,3},{437,610,3},{437,608,3},{442,608,3},{442,605,3}, {435,605,3},{432,607,3},{428,605,3},{430,603,3},{432,600,3},{433,598,3}, {435,600,3},{438,600,3},{442,598,3},{438,598,3},{438,597,3},{438,595,3}, {435,597,3},{433,597,3},{438,587,3},{440,585,3},{443,587,3},{443,585,3}, {442,585,3},{445,578,3},{447,580,3},{448,573,3},{463,560,3},{472,555,3}, {472,557,3},{472,558,3},{473,557,3},{475,553,3},{485,547,3},{483,552,3}, {490,547,3},{502,543,3},{512,538,3},{513,538,3},{513,543,3},{508,547,3}, {515,545,3},{515,550,3},{518,545,3},{515,543,3},{515,537,3},{530,535,3}, {535,533,3},{537,542,3},{537,545,3},{533,547,3},{538,550,3},{538,558,3}, {540,555,3},{548,553,3},{550,555,3},{550,562,3},{553,563,3},{552,560,3}, {552,555,3},{548,552,3},{543,550,3},{540,548,3},{540,545,3},{543,545,3}, {543,542,3},{540,542,3},{540,543,3},{538,538,3},{543,525,3},{550,520,3}, {555,518,3},{558,522,3},{558,530,3},{555,538,3},{563,543,3},{558,552,3}, {562,550,3},{565,545,3},{563,542,3},{562,540,3},{560,538,3},{562,532,3}, {563,532,3},{570,535,3},{572,533,3},{562,528,3},{560,523,3},{557,518,3}, {560,515,3},{570,508,3},{577,510,3},{580,512,3},{577,515,3},{582,515,3}, {585,520,3},{585,525,3},{590,528,3},{590,527,3},{587,523,3},{587,520,3}, {580,510,3},{575,505,3},{585,502,3},{597,492,3},{605,482,3},{613,475,3}, {625,458,3},{630,453,3},{637,440,3},{642,408,3},{643,380,3},{642,342,3}, {645,338,3},{645,340,3},{645,342,3},{645,343,3},{643,343,3},{642,343,3}, {645,347,3},{645,353,3},{647,357,3},{650,357,3},{653,372,3},{653,375,3}, {658,377,3},{660,385,3},{662,385,3},{662,377,3},{660,372,3},{655,363,3}, {655,358,3},{652,352,3},{653,348,3},{658,348,3},{660,347,3},{655,343,3}, {655,340,3},{650,340,3},{645,337,3},{642,338,3},{642,340,3},{638,338,3}, {640,323,3},{638,310,3},{638,293,3},{637,272,3},{1175,357,131},{1185,347,3}, {1185,343,3},{1188,338,3},{1188,332,3},{1195,327,3},{1202,325,3},{1205,322,3}, {1212,317,3},{1218,305,3},{1227,302,3},{1230,295,3},{1233,292,3},{1240,283,3}, {1238,278,3},{1235,275,3},{1235,272,3},{1228,268,3},{1230,267,3},{1230,265,3}, {1228,262,3},{1230,260,3},{1227,253,3},{1228,252,3},{1227,250,3},{1227,247,3}, {1225,247,3},{1227,243,3},{1223,238,3},{1208,240,3},{1203,243,3},{1202,247,3}, {1198,247,3},{1198,245,3},{1195,243,3},{1195,240,3},{1193,238,3},{1190,242,3}, {1188,240,3},{1195,235,3},{1200,232,3},{1205,228,3},{1212,223,3},{1217,220,3}, {1222,217,3},{1227,212,3},{1235,207,3},{1238,208,3},{1238,212,3},{1242,217,3}, {1240,217,3},{1242,227,3},{1247,227,3},{1252,223,3},{1260,222,3},{1263,220,3}, {1265,215,3},{1270,215,3},{1273,210,3},{1272,203,3},{1273,198,3},{1272,197,3}, {1270,193,3},{1263,188,3},{1262,187,3},{1262,180,3},{1262,175,3},{1262,170,3}, {1263,165,3},{1263,158,3},{1270,150,3},{1273,145,3},{1278,140,3},{1283,135,3}, {1287,128,3},{1292,123,3},{1295,118,3},{1302,112,3},{1302,102,3},{1305,98,3}, {1335,98,3},{1337,100,3},{1337,102,3},{1332,118,3},{1335,120,3},{1337,120,3}, {1335,123,3},{1333,125,3},{1335,128,3},{1340,125,3},{1340,117,3},{1347,103,3}, {1357,100,3},{1362,90,3},{1362,83,3},{1365,77,3},{1367,78,3},{1368,77,3}, {1368,62,3},{1372,60,3},{1378,62,3},{1378,58,3},{1392,47,3},{1395,47,3}, {1398,42,3},{1402,42,3},{1405,38,3},{1408,40,3},{1413,35,3},{1418,40,3}, {1423,40,3},{1425,42,3},{1437,32,3},{1437,30,3},{1447,18,3},{1452,17,3}, {1475,23,3},{1483,20,3},{1488,23,3},{1492,23,3},{1500,23,3},{1497,40,3}, {1500,52,3},{1495,70,3},{1497,75,3},{1498,97,3},{1500,100,3},{1528,132,3}, {1528,140,3},{1530,145,3},{1530,152,3},{1530,157,3},{1530,162,3},{1530,167,3}, {1530,172,3},{1532,178,3},{1532,183,3},{1532,188,3},{1532,193,3},{1532,200,3}, {1532,205,3},{1533,210,3},{1533,215,3},{1533,220,3},{1533,227,3},{1533,232,3}, {1533,237,3},{1533,242,3},{1535,247,3},{1535,253,3},{1535,263,3},{1533,302,3}, {1543,303,3},{1535,352,3},{1550,353,3},{1555,362,3},{1565,372,3},{1567,382,3}, {1572,388,3},{1575,390,3},{1590,392,3},{1598,400,3},{1608,398,3},{1623,405,3}, {1630,407,3},{1635,412,3},{1640,420,3},{1645,420,3},{1650,420,3},{1655,420,3}, {1660,420,3},{1665,420,3},{1670,420,3},{1675,420,3},{1680,420,3},{1685,422,3}, {1690,422,3},{1697,422,3},{1698,422,3},{1700,425,3},{1705,425,3},{1710,425,3}, {1715,425,3},{1720,425,3},{1725,425,3},{1730,425,3},{1735,425,3},{1740,425,3}, {1747,425,3},{1752,425,3},{1757,425,3},{1762,425,3},{1767,425,3},{1772,425,3}, {1777,425,3},{1782,425,3},{1787,425,3},{1792,425,3},{1797,425,3},{1803,425,3}, {1808,425,3},{1813,425,3},{1818,425,3},{1823,425,3},{1828,425,3},{1835,425,3}, {1840,425,3},{1845,425,3},{1850,425,3},{1855,425,3},{1860,425,3},{1867,425,3}, {1872,425,3},{1877,425,3},{1882,425,3},{1887,425,3},{1892,425,3},{1897,425,3}, {1902,425,3},{1907,425,3},{1912,425,3},{1915,425,3},{1915,430,3},{1917,435,3}, {1918,442,3},{1918,447,3},{1920,452,3},{1922,458,3},{1922,463,3},{1923,468,3}, {1925,473,3},{1925,480,3},{1927,485,3},{1927,490,3},{1928,497,3},{1930,502,3}, {1930,507,3},{1932,513,3},{1933,518,3},{1933,523,3},{1935,528,3},{1935,535,3}, {1937,540,3},{1938,545,3},{1938,552,3},{1940,557,3},{1942,562,3},{1942,568,3}, {1943,573,3},{1943,578,3},{1948,585,3},{1953,590,3},{1958,597,3},{1963,602,3}, {1967,608,3},{1972,613,3},{1977,618,3},{1982,625,3},{1987,630,3},{1992,637,3}, {1997,642,3},{2002,647,3},{2007,653,3},{2012,658,3},{2017,665,3},{2022,670,3}, {2027,677,3},{2032,682,3},{2037,687,3},{2040,693,3},{2045,698,3},{2050,705,3}, {2055,710,3},{2060,717,3},{2065,722,3},{2070,727,3},{2075,733,3},{2080,738,3}, {2085,745,3},{2088,750,3},{2092,757,3},{2095,762,3},{2098,768,3},{2102,773,3}, {2107,780,3},{2110,785,3},{2113,792,3},{2117,798,3},{2120,803,3},{2123,810,3}, {2128,815,3},{2132,822,3},{2135,827,3},{2138,833,3},{2142,838,3},{2145,845,3}, {2148,850,3},{2153,857,3},{2157,863,3},{2160,868,3},{2163,875,3},{2167,880,3}, {2170,887,3},{2173,892,3},{2178,898,3},{2182,905,3},{2185,910,3},{2188,917,3}, {2192,922,3},{2195,928,3},{2198,935,3},{2202,940,3},{2207,947,3},{2210,952,3}, {2213,958,3},{2217,963,3},{2220,970,3},{2223,977,3},{2227,982,3},{2230,988,3}, {2235,993,3},{2238,1000,3},{2242,1007,3},{2245,1012,3},{2248,1018,3},{2252,1023,3}, {2255,1030,3},{2258,1037,3},{2262,1042,3},{2267,1048,3},{2270,1055,3},{2273,1060,3}, {2277,1067,3},{2280,1072,3},{2283,1078,3},{2287,1085,3},{2290,1090,3},{2293,1097,3}, {2297,1102,3},{2300,1108,3},{2305,1115,3},{2308,1120,3},{2312,1127,3},{2315,1133,3}, {2318,1138,3},{2322,1145,3},{2325,1152,3},{2328,1157,3},{2332,1163,3},{2335,1170,3}, {2338,1175,3},{2342,1182,3},{2347,1187,3},{2350,1193,3},{2352,1198,3},{2350,1207,3}, {2348,1213,3},{2348,1218,3},{2347,1225,3},{2345,1232,3},{2343,1237,3},{2343,1243,3}, {2342,1248,3},{2340,1255,3},{2338,1260,3},{2338,1267,3},{2337,1272,3},{2335,1278,3}, {2333,1285,3},{2333,1290,3},{2332,1297,3},{2330,1302,3},{2328,1308,3},{2327,1313,3}, {2327,1320,3},{2325,1325,3},{2323,1332,3},{2322,1337,3},{2320,1343,3},{2318,1350,3}, {2317,1355,3},{2313,1360,3},{2310,1363,3},{2307,1368,3},{2303,1372,3},{2300,1377,3}, {2297,1382,3},{2293,1385,3},{2290,1390,3},{2287,1393,3},{2282,1398,3},{2278,1402,3}, {2275,1407,3},{2272,1410,3},{2268,1415,3},{2265,1420,3},{2262,1423,3},{2263,1427,3}, {2267,1432,3},{2268,1438,3},{2272,1445,3},{2275,1452,3},{2278,1457,3},{2282,1463,3}, {2285,1470,3},{2288,1475,3},{2292,1482,3},{2293,1488,3},{2297,1493,3},{2300,1500,3}, {2295,1502,3},{2288,1502,3},{2283,1503,3},{2278,1505,3},{2272,1505,3},{2267,1507,3}, {2262,1507,3},{2255,1508,3},{2250,1510,3},{2245,1510,3},{2240,1512,3},{2233,1513,3}, {2228,1513,3},{2223,1515,3},{2217,1517,3},{2212,1517,3},{2207,1518,3},{2200,1520,3}, {2195,1520,3},{2188,1520,3},{2183,1520,3},{2178,1520,3},{2172,1520,3},{2167,1520,3}, {2162,1520,3},{2157,1520,3},{2150,1520,3},{2147,1525,3},{2143,1530,3},{2138,1532,3}, {2135,1535,3},{2130,1538,3},{2127,1542,3},{2122,1545,3},{2117,1547,3},{2113,1550,3}, {2108,1553,3},{2105,1557,3},{2100,1560,3},{2097,1562,3},{2093,1558,3},{2088,1555,3}, {2083,1555,3},{2078,1557,3},{2073,1562,3},{2070,1565,3},{2067,1570,3},{2062,1575,3}, {2058,1578,3},{2053,1582,3},{2050,1587,3},{2045,1590,3},{2040,1595,3},{2037,1598,3}, {2032,1597,3},{2027,1595,3},{2020,1592,3},{2015,1588,3},{2010,1585,3},{2005,1582,3}, {2000,1578,3},{1993,1577,3},{1988,1575,3},{1982,1573,3},{1977,1573,3},{1972,1573,3}, {1967,1572,3},{1960,1572,3},{1955,1570,3},{1950,1570,3},{1945,1568,3},{1938,1568,3}, {1933,1567,3},{1928,1567,3},{1922,1567,3},{1917,1565,3},{1912,1565,3},{1907,1563,3}, {1900,1563,3},{1895,1563,3},{1890,1562,3},{1885,1562,3},{1878,1560,3},{1873,1560,3}, {1867,1560,3},{1862,1560,3},{1857,1558,3},{1852,1558,3},{1845,1558,3},{1840,1558,3}, {1835,1558,3},{1828,1557,3},{1823,1557,3},{1818,1557,3},{1813,1557,3},{1807,1557,3}, {1802,1557,3},{1797,1555,3},{1790,1555,3},{1785,1555,3},{1780,1555,3},{1775,1555,3}, {1768,1555,3},{1763,1553,3},{1758,1553,3},{1752,1553,3},{1747,1553,3},{1742,1553,3}, {1737,1552,3},{1733,1552,3},{1728,1552,3},{1723,1552,3},{1717,1550,3},{1712,1550,3}, {1707,1550,3},{1702,1550,3},{1695,1550,3},{1690,1548,3},{1685,1545,3},{1682,1540,3}, {1677,1537,3},{1673,1533,3},{1670,1528,3},{1665,1525,3},{1662,1522,3},{1657,1517,3}, {1653,1513,3},{1650,1510,3},{1645,1507,3},{1642,1502,3},{1637,1498,3},{1633,1495,3}, {1630,1490,3},{1625,1487,3},{1622,1483,3},{1617,1478,3},{1613,1475,3},{1610,1472,3}, {1605,1467,3},{1602,1463,3},{1597,1460,3},{1593,1457,3},{1590,1452,3},{1585,1448,3}, {1582,1445,3},{1577,1440,3},{1573,1437,3},{1568,1433,3},{1562,1428,3},{1557,1425,3}, {1552,1422,3},{1547,1418,3},{1540,1413,3},{1535,1410,3},{1530,1407,3},{1525,1402,3}, {1520,1398,3},{1517,1395,3},{1512,1392,3},{1508,1390,3},{1502,1385,3},{1497,1383,3}, {1492,1380,3},{1487,1377,3},{1480,1378,3},{1475,1378,3},{1470,1377,3},{1472,1373,3}, {1468,1370,3},{1463,1367,3},{1462,1368,3},{1457,1368,3},{1453,1363,3},{1452,1358,3}, {1450,1353,3},{1448,1348,3},{1443,1347,3},{1438,1347,3},{1433,1348,3},{1427,1350,3}, {1422,1352,3},{1417,1352,3},{1410,1353,3},{1405,1355,3},{1400,1357,3},{1397,1352,3}, {1393,1347,3},{1393,1337,3},{1392,1333,3},{1390,1328,3},{1388,1323,3},{1385,1322,3}, {1382,1325,3},{1378,1325,3},{1377,1327,3},{1375,1333,3},{1372,1335,3},{1370,1332,3}, {1368,1332,3},{1362,1325,3},{1360,1327,3},{1358,1323,3},{1357,1325,3},{1353,1320,3}, {1353,1318,3},{1352,1315,3},{1355,1315,3},{1355,1313,3},{1352,1313,3},{1352,1312,3}, {1353,1312,3},{1352,1308,3},{1355,1308,3},{1355,1307,3},{1348,1292,3},{1350,1288,3}, {1347,1288,3},{1348,1285,3},{1345,1287,3},{1343,1283,3},{1340,1283,3},{1340,1280,3}, {1337,1280,3},{1338,1277,3},{1333,1275,3},{1332,1272,3},{1332,1268,3},{1328,1268,3}, {1328,1265,3},{1330,1263,3},{1327,1262,3},{1327,1258,3},{1323,1257,3},{1322,1257,3}, {1320,1253,3},{1318,1255,3},{1315,1255,3},{1313,1250,3},{1308,1250,3},{1305,1248,3}, {1307,1243,3},{1307,1233,3},{1310,1230,3},{1308,1227,3},{1312,1225,3},{1312,1220,3}, {1312,1218,3},{1310,1215,3},{1312,1207,3},{1317,1202,3},{1327,1182,3},{1338,1145,3}, {1338,1128,3},{1337,1107,3},{1338,1085,3},{1338,1070,3},{1332,1047,3},{1327,1015,3}, {1313,993,3},{1307,992,3},{1308,988,3},{1280,963,3},{1282,942,3},{1283,940,3}, {1282,932,3},{1285,898,3},{1295,867,3},{1300,863,3},{1307,857,3},{1308,848,3}, {1307,843,3},{1322,827,3},{1322,823,3},{1330,812,3},{1335,782,3},{1310,738,3}, {1313,722,3},{1300,708,3},{1300,693,3},{1310,680,3},{1335,668,3},{1360,642,3}, {1368,628,3},{1368,623,3},{1365,617,3},{1367,612,3},{1382,567,3},{1388,555,3}, {1385,537,3},{1378,533,3},{1375,528,3},{1375,512,3},{1373,500,3},{1373,492,3}, {1378,488,3},{1368,447,3},{1348,425,3},{1348,415,3},{1318,413,3},{1300,410,3}, {1275,395,3},{1253,365,3},{1225,367,3},{1210,363,3},{1198,367,3},{1192,362,3}, {1183,363,3},{1182,367,3},{1175,368,3},{1175,357,3},{3023,953,131},{3028,952,3}, {3035,952,3},{3040,950,3},{3045,948,3},{3052,947,3},{3057,945,3},{3062,943,3}, {3067,943,3},{3073,942,3},{3078,940,3},{3083,938,3},{3090,937,3},{3095,935,3}, {3100,933,3},{3107,933,3},{3112,932,3},{3117,930,3},{3122,928,3},{3128,927,3}, {3133,925,3},{3138,923,3},{3145,923,3},{3150,922,3},{3155,920,3},{3162,918,3}, {3167,917,3},{3172,915,3},{3178,913,3},{3183,913,3},{3188,912,3},{3193,910,3}, {3200,908,3},{3205,907,3},{3210,905,3},{3213,898,3},{3217,895,3},{3220,888,3}, {3223,883,3},{3228,877,3},{3230,872,3},{3235,865,3},{3238,858,3},{3242,855,3}, {3245,848,3},{3248,843,3},{3253,835,3},{3257,835,3},{3263,833,3},{3268,833,3}, {3273,832,3},{3280,832,3},{3283,830,3},{3312,808,3},{3312,802,3},{3320,787,3}, {3320,778,3},{3323,773,3},{3343,772,3},{3368,755,3},{3375,755,3},{3378,752,3}, {3388,750,3},{3410,753,3},{3413,758,3},{3420,763,3},{3425,778,3},{3433,782,3}, {3438,783,3},{3442,785,3},{3453,812,3},{3458,818,3},{3462,820,3},{3465,825,3}, {3468,822,3},{3475,828,3},{3492,827,3},{3502,832,3},{3512,833,3},{3515,838,3}, {3520,840,3},{3523,845,3},{3527,843,3},{3528,833,3},{3533,832,3},{3543,832,3}, {3553,837,3},{3568,833,3},{3575,828,3},{3582,827,3},{3590,827,3},{3607,830,3}, {3615,833,3},{3622,832,3},{3628,833,3},{3635,837,3},{3645,837,3},{3648,830,3}, {3648,820,3},{3652,818,3},{3655,820,3},{3660,835,3},{3663,838,3},{3667,845,3}, {3675,848,3},{3675,847,3},{3677,842,3},{3680,843,3},{3680,848,3},{3680,855,3}, {3683,865,3},{3687,865,3},{3690,862,3},{3693,862,3},{3697,870,3},{3697,877,3}, {3698,883,3},{3703,892,3},{3715,905,3},{3718,915,3},{3723,920,3},{3723,933,3}, {3727,942,3},{3727,945,3},{3730,953,3},{3730,958,3},{3733,965,3},{3733,973,3}, {3733,985,3},{3728,987,3},{3725,985,3},{3723,978,3},{3718,978,3},{3715,980,3}, {3713,985,3},{3715,990,3},{3720,993,3},{3722,993,3},{3722,982,3},{3727,988,3}, {3725,992,3},{3725,998,3},{3727,1005,3},{3723,1008,3},{3723,1013,3},{3720,1020,3}, {3718,1022,3},{3718,1027,3},{3717,1023,3},{3715,1022,3},{3717,1022,3},{3717,1015,3}, {3715,1013,3},{3713,1022,3},{3712,1023,3},{3710,1023,3},{3710,1020,3},{3707,1017,3}, {3703,1017,3},{3698,1020,3},{3688,1035,3},{3683,1030,3},{3682,1028,3},{3683,1028,3}, {3685,1027,3},{3683,1020,3},{3678,1020,3},{3678,1025,3},{3680,1028,3},{3678,1028,3}, {3675,1032,3},{3672,1042,3},{3678,1053,3},{3685,1057,3},{3688,1060,3},{3688,1072,3}, {3700,1088,3},{3705,1090,3},{3708,1105,3},{3705,1107,3},{3702,1105,3},{3687,1112,3}, {3675,1098,3},{3665,1090,3},{3647,1080,3},{3643,1068,3},{3637,1053,3},{3625,1047,3}, {3612,1045,3},{3605,1047,3},{3600,1052,3},{3597,1052,3},{3592,1058,3},{3585,1062,3}, {3580,1068,3},{3578,1070,3},{3577,1073,3},{3578,1082,3},{3573,1082,3},{3570,1083,3}, {3563,1103,3},{3555,1102,3},{3552,1103,3},{3552,1105,3},{3540,1102,3},{3535,1102,3}, {3530,1107,3},{3523,1115,3},{3523,1112,3},{3517,1107,3},{3513,1102,3},{3505,1102,3}, {3497,1092,3},{3487,1090,3},{3483,1085,3},{3480,1085,3},{3475,1077,3},{3467,1073,3}, {3463,1063,3},{3453,1057,3},{3450,1043,3},{3440,1033,3},{3442,1028,3},{3438,1027,3}, {3432,1012,3},{3417,1000,3},{3402,1003,3},{3393,1008,3},{3383,1017,3},{3370,1033,3}, {3363,1048,3},{3367,1060,3},{3370,1067,3},{3370,1072,3},{3360,1072,3},{3353,1067,3}, {3348,1070,3},{3347,1075,3},{3355,1092,3},{3358,1093,3},{3362,1090,3},{3362,1097,3}, {3363,1098,3},{3362,1105,3},{3358,1108,3},{3353,1112,3},{3337,1110,3},{3337,1113,3}, {3333,1117,3},{3328,1128,3},{3330,1113,3},{3328,1112,3},{3325,1117,3},{3322,1117,3}, {3322,1123,3},{3318,1135,3},{3318,1142,3},{3320,1143,3},{3327,1133,3},{3320,1143,3}, {3317,1153,3},{3290,1147,3},{3283,1148,3},{3265,1147,3},{3262,1148,3},{3255,1155,3}, {3252,1157,3},{3248,1158,3},{3245,1157,3},{3237,1145,3},{3213,1088,3},{3202,1080,3}, {3200,1075,3},{3197,1072,3},{3197,1070,3},{3198,1065,3},{3197,1062,3},{3187,1062,3}, {3175,1052,3},{3173,1048,3},{3173,1033,3},{3170,1028,3},{3160,1022,3},{3152,1013,3}, {3142,1012,3},{3107,1027,3},{3100,1025,3},{3092,1028,3},{3073,1022,3},{3065,1012,3}, {3058,1008,3},{3035,988,3},{3035,977,3},{3032,973,3},{3023,953,3},{1915,425,131}, {1913,418,3},{1913,413,3},{1912,408,3},{1910,403,3},{1910,397,3},{1908,392,3}, {1908,387,3},{1907,380,3},{1905,375,3},{1905,370,3},{1903,365,3},{1902,358,3}, {1902,353,3},{1900,348,3},{1900,342,3},{1898,337,3},{1898,333,3},{1905,325,3}, {1907,320,3},{1912,313,3},{1915,312,3},{1923,315,3},{1925,320,3},{1933,320,3}, {1938,328,3},{1942,327,3},{1945,325,3},{1952,325,3},{1953,322,3},{1957,322,3}, {1982,323,3},{1985,315,3},{1990,308,3},{1995,297,3},{1997,282,3},{2000,272,3}, {2000,258,3},{2002,257,3},{2002,252,3},{2005,248,3},{2005,242,3},{2018,235,3}, {2023,228,3},{2028,220,3},{2023,212,3},{2022,208,3},{2027,198,3},{2023,193,3}, {2023,190,3},{2030,188,3},{2030,180,3},{2042,167,3},{2053,167,3},{2057,163,3}, {2063,148,3},{2065,137,3},{2073,132,3},{2073,117,3},{2080,117,3},{2100,120,3}, {2110,117,3},{2112,115,3},{2115,110,3},{2117,105,3},{2120,100,3},{2123,95,3}, {2127,90,3},{2130,85,3},{2133,80,3},{2137,75,3},{2140,70,3},{2142,65,3}, {2145,60,3},{2148,55,3},{2152,50,3},{2155,45,3},{2158,40,3},{2162,35,3}, {2163,30,3},{2167,25,3},{2170,20,3},{2173,15,3},{2177,10,3},{2180,5,3}, {2183,0,3},{2185,65533,3},{2188,65528,3},{2192,65523,3},{2195,65518,3}, {2200,65513,3},{2203,65508,3},{2207,65503,3},{2210,65498,3},{2213,65493,3}, {2217,65488,3},{2220,65483,3},{2223,65478,3},{2227,65473,3},{2230,65468,3}, {2233,65463,3},{2237,65458,3},{2240,65453,3},{2243,65448,3},{2248,65443,3}, {2252,65436,3},{2255,65431,3},{2258,65426,3},{2262,65421,3},{2265,65416,3}, {2268,65411,3},{2272,65406,3},{2275,65401,3},{2278,65396,3},{2282,65391,3}, {2285,65386,3},{2288,65381,3},{2292,65376,3},{2295,65371,3},{2298,65366,3}, {2302,65361,3},{2305,65356,3},{2308,65351,3},{2313,65346,3},{2317,65341,3}, {2320,65336,3},{2323,65331,3},{2327,65326,3},{2330,65321,3},{2333,65314,3}, {2337,65309,3},{2340,65304,3},{2343,65299,3},{2347,65294,3},{2350,65289,3}, {2353,65284,3},{2357,65279,3},{2360,65274,3},{2363,65269,3},{2367,65264,3}, {2370,65259,3},{2373,65253,3},{2377,65248,3},{2380,65243,3},{2383,65238,3}, {2387,65233,3},{2390,65228,3},{2393,65223,3},{2397,65218,3},{2400,65213,3}, {2403,65208,3},{2407,65201,3},{2410,65196,3},{2413,65191,3},{2417,65186,3}, {2420,65181,3},{2423,65176,3},{2427,65171,3},{2430,65166,3},{2433,65161,3}, {2437,65154,3},{2440,65149,3},{2443,65144,3},{2447,65139,3},{2450,65134,3}, {2453,65129,3},{2457,65124,3},{2460,65118,3},{2463,65113,3},{2467,65108,3}, {2470,65103,3},{2473,65098,3},{2477,65093,3},{2480,65088,3},{2483,65081,3}, {2487,65076,3},{2490,65071,3},{2493,65066,3},{2497,65061,3},{2500,65056,3}, {2502,65053,3},{2505,65048,3},{2508,65043,3},{2512,65038,3},{2515,65031,3}, {2518,65026,3},{2522,65021,3},{2525,65016,3},{2528,65011,3},{2532,65006,3}, {2535,64999,3},{2538,64994,3},{2540,64989,3},{2543,64984,3},{2547,64979,3}, {2550,64973,3},{2553,64968,3},{2557,64963,3},{2560,64958,3},{2563,64953,3}, {2567,64946,3},{2570,64941,3},{2573,64936,3},{2577,64931,3},{2580,64926,3}, {2583,64919,3},{2587,64914,3},{2590,64909,3},{2593,64904,3},{2595,64898,3}, {2598,64893,3},{2602,64888,3},{2605,64883,3},{2608,64878,3},{2612,64871,3}, {2615,64866,3},{2618,64861,3},{2622,64856,3},{2625,64849,3},{2628,64844,3}, {2632,64839,3},{2635,64834,3},{2637,64828,3},{2640,64823,3},{2643,64818,3}, {2647,64813,3},{2650,64806,3},{2653,64801,3},{2657,64796,3},{2660,64791,3}, {2663,64784,3},{2667,64779,3},{2670,64774,3},{2672,64768,3},{2675,64763,3}, {2678,64758,3},{2682,64753,3},{2685,64746,3},{2688,64741,3},{2692,64736,3}, {2695,64731,3},{2698,64724,3},{2700,64719,3},{2703,64714,3},{2707,64708,3}, {2710,64703,3},{2713,64698,3},{2717,64691,3},{2720,64686,3},{2723,64681,3}, {2725,64676,3},{2728,64669,3},{2767,64669,3},{2770,64669,3},{2777,64669,3}, {2783,64669,3},{2790,64669,3},{2797,64669,3},{2803,64669,3},{2810,64669,3}, {2817,64669,3},{2823,64669,3},{2830,64669,3},{2835,64669,3},{2840,64669,3}, {2847,64669,3},{2853,64669,3},{2860,64669,3},{2867,64669,3},{2872,64669,3}, {2878,64686,3},{2883,64689,3},{2885,64694,3},{2892,64699,3},{2895,64706,3}, {2905,64719,3},{2912,64736,3},{2915,64739,3},{2925,64756,3},{2930,64761,3}, {2932,64766,3},{2938,64771,3},{2940,64778,3},{2938,64788,3},{2940,64793,3}, {2947,64801,3},{2953,64806,3},{2963,64824,3},{2962,64838,3},{2962,64853,3}, {2957,64866,3},{2957,64878,3},{2963,64886,3},{2975,64888,3},{2982,64888,3}, {2983,64889,3},{2980,64896,3},{2982,64904,3},{2980,64914,3},{2985,64921,3}, {2983,64936,3},{2988,64958,3},{2990,64983,3},{2995,64988,3},{3000,65001,3}, {3010,65014,3},{3025,65028,3},{3045,65039,3},{3050,65044,3},{3058,65068,3}, {3063,65078,3},{3063,65089,3},{3065,65096,3},{3068,65101,3},{3077,65119,3}, {3092,65134,3},{3093,65151,3},{3093,65164,3},{3097,65173,3},{3102,65176,3}, {3110,65176,3},{3112,65171,3},{3117,65166,3},{3118,65163,3},{3117,65159,3}, {3115,65156,3},{3117,65153,3},{3123,65156,3},{3133,65156,3},{3140,65164,3}, {3143,65161,3},{3143,65154,3},{3148,65151,3},{3165,65153,3},{3170,65154,3}, {3172,65168,3},{3167,65184,3},{3173,65198,3},{3175,65209,3},{3183,65236,3}, {3185,65239,3},{3190,65241,3},{3203,65243,3},{3208,65251,3},{3208,65263,3}, {3213,65286,3},{3215,65303,3},{3212,65359,3},{3212,65391,3},{3208,65411,3}, {3210,65418,3},{3213,65419,3},{3217,65416,3},{3217,65414,3},{3217,65406,3}, {3222,65411,3},{3230,65413,3},{3233,65411,3},{3240,65416,3},{3242,65424,3}, {3245,65429,3},{3250,65434,3},{3267,65409,3},{3270,65406,3},{3272,65398,3}, {3293,65381,3},{3298,65388,3},{3307,65388,3},{3310,65381,3},{3315,65378,3}, {3320,65376,3},{3323,65371,3},{3327,65369,3},{3338,65369,3},{3352,65376,3}, {3355,65376,3},{3360,65376,3},{3365,65371,3},{3370,65363,3},{3377,65368,3}, {3388,65364,3},{3408,65371,3},{3435,65361,3},{3438,65356,3},{3448,65368,3}, {3450,65363,3},{3462,65351,3},{3465,65356,3},{3472,65358,3},{3475,65361,3}, {3482,65348,3},{3487,65339,3},{3493,65336,3},{3493,65329,3},{3500,65323,3}, {3502,65318,3},{3503,65316,3},{3508,65316,3},{3508,65318,3},{3510,65321,3}, {3507,65329,3},{3508,65336,3},{3507,65339,3},{3512,65358,3},{3517,65366,3}, {3518,65371,3},{3523,65376,3},{3530,65389,3},{3532,65399,3},{3538,65409,3}, {3557,65418,3},{3557,65421,3},{3563,65429,3},{3568,65433,3},{3570,65438,3}, {3572,65443,3},{3572,65446,3},{3573,65451,3},{3577,65454,3},{3577,65456,3}, {3575,65458,3},{3575,65464,3},{3572,65466,3},{3572,65471,3},{3572,65474,3}, {3577,65479,3},{3577,65483,3},{3583,65488,3},{3588,65488,3},{3588,65493,3}, {3590,65499,3},{3590,65501,3},{3587,65506,3},{3583,65506,3},{3580,65513,3}, {3578,65524,3},{3583,0,3},{3588,5,3},{3605,13,3},{3612,22,3},{3613,30,3}, {3620,35,3},{3622,45,3},{3633,65,3},{3633,75,3},{3638,87,3},{3640,92,3}, {3645,95,3},{3648,105,3},{3648,115,3},{3650,117,3},{3650,127,3},{3655,135,3}, {3652,148,3},{3653,153,3},{3653,157,3},{3657,183,3},{3657,203,3},{3663,233,3}, {3662,240,3},{3660,242,3},{3658,257,3},{3660,263,3},{3668,278,3},{3672,283,3}, {3675,285,3},{3680,290,3},{3680,293,3},{3680,303,3},{3675,308,3},{3673,313,3}, {3675,322,3},{3678,323,3},{3680,322,3},{3682,325,3},{3678,330,3},{3677,348,3}, {3682,363,3},{3688,375,3},{3692,388,3},{3690,393,3},{3688,410,3},{3690,415,3}, {3688,420,3},{3690,427,3},{3690,438,3},{3692,443,3},{3690,448,3},{3688,455,3}, {3690,478,3},{3677,510,3},{3672,508,3},{3667,517,3},{3665,525,3},{3663,533,3}, {3665,542,3},{3670,553,3},{3677,558,3},{3678,565,3},{3682,572,3},{3683,577,3}, {3682,582,3},{3683,600,3},{3692,623,3},{3695,627,3},{3698,625,3},{3702,627,3}, {3708,637,3},{3708,647,3},{3705,655,3},{3702,658,3},{3700,657,3},{3697,660,3}, {3695,667,3},{3695,675,3},{3695,678,3},{3695,683,3},{3693,685,3},{3692,687,3}, {3690,688,3},{3688,695,3},{3692,707,3},{3692,713,3},{3692,717,3},{3698,725,3}, {3703,725,3},{3707,718,3},{3708,722,3},{3707,727,3},{3708,728,3},{3707,733,3}, {3708,738,3},{3705,738,3},{3705,740,3},{3705,748,3},{3698,758,3},{3697,763,3}, {3698,767,3},{3695,772,3},{3697,777,3},{3698,780,3},{3693,777,3},{3692,778,3}, {3690,777,3},{3688,778,3},{3685,793,3},{3688,805,3},{3693,820,3},{3695,823,3}, {3692,828,3},{3692,835,3},{3690,845,3},{3693,862,3},{3690,862,3},{3687,865,3}, {3683,865,3},{3680,855,3},{3680,848,3},{3680,843,3},{3677,842,3},{3675,847,3}, {3675,848,3},{3667,845,3},{3663,838,3},{3660,835,3},{3655,820,3},{3652,818,3}, {3648,820,3},{3648,830,3},{3645,837,3},{3635,837,3},{3628,833,3},{3622,832,3}, {3615,833,3},{3607,830,3},{3590,827,3},{3582,827,3},{3575,828,3},{3568,833,3}, {3553,837,3},{3543,832,3},{3533,832,3},{3528,833,3},{3527,843,3},{3523,845,3}, {3520,840,3},{3515,838,3},{3512,833,3},{3502,832,3},{3492,827,3},{3475,828,3}, {3468,822,3},{3465,825,3},{3462,820,3},{3458,818,3},{3453,812,3},{3442,785,3}, {3438,783,3},{3433,782,3},{3425,778,3},{3420,763,3},{3413,758,3},{3410,753,3}, {3388,750,3},{3378,752,3},{3375,755,3},{3368,755,3},{3343,772,3},{3323,773,3}, {3320,778,3},{3320,787,3},{3312,802,3},{3312,808,3},{3283,830,3},{3280,832,3}, {3273,832,3},{3268,833,3},{3263,833,3},{3257,835,3},{3253,835,3},{3248,843,3}, {3245,848,3},{3242,855,3},{3238,858,3},{3235,865,3},{3230,872,3},{3228,877,3}, {3223,883,3},{3220,888,3},{3217,895,3},{3213,898,3},{3210,905,3},{3205,907,3}, {3200,908,3},{3193,910,3},{3188,912,3},{3183,913,3},{3178,913,3},{3172,915,3}, {3167,917,3},{3162,918,3},{3155,920,3},{3150,922,3},{3145,923,3},{3138,923,3}, {3133,925,3},{3128,927,3},{3122,928,3},{3117,930,3},{3112,932,3},{3107,933,3}, {3100,933,3},{3095,935,3},{3090,937,3},{3083,938,3},{3078,940,3},{3073,942,3}, {3067,943,3},{3062,943,3},{3057,945,3},{3052,947,3},{3045,948,3},{3040,950,3}, {3035,952,3},{3028,952,3},{3023,953,3},{3012,930,3},{2997,945,3},{2978,958,3}, {2963,967,3},{2945,975,3},{2915,983,3},{2895,987,3},{2880,987,3},{2872,987,3}, {2867,985,3},{2862,985,3},{2855,983,3},{2850,983,3},{2845,982,3},{2840,982,3}, {2833,980,3},{2828,980,3},{2825,978,3},{2817,982,3},{2812,985,3},{2807,987,3}, {2800,990,3},{2795,992,3},{2785,997,3},{2760,988,3},{2757,982,3},{2750,983,3}, {2743,978,3},{2737,977,3},{2732,973,3},{2727,975,3},{2705,982,3},{2690,985,3}, {2687,993,3},{2670,990,3},{2667,992,3},{2652,987,3},{2635,950,3},{2630,950,3}, {2628,945,3},{2622,942,3},{2620,940,3},{2615,940,3},{2610,943,3},{2607,947,3}, {2602,950,3},{2598,953,3},{2593,957,3},{2590,960,3},{2585,963,3},{2582,967,3}, {2577,970,3},{2573,973,3},{2568,975,3},{2565,980,3},{2560,982,3},{2557,985,3}, {2552,988,3},{2548,992,3},{2543,995,3},{2540,998,3},{2535,1002,3},{2532,1003,3}, {2523,1003,3},{2518,1005,3},{2513,1005,3},{2507,1005,3},{2502,1005,3},{2497,1005,3}, {2490,1005,3},{2483,1005,3},{2475,1022,3},{2460,1025,3},{2448,1042,3},{2448,1048,3}, {2457,1072,3},{2447,1100,3},{2445,1105,3},{2443,1112,3},{2442,1117,3},{2440,1123,3}, {2438,1128,3},{2437,1135,3},{2435,1142,3},{2433,1147,3},{2432,1153,3},{2430,1157,3}, {2422,1160,3},{2417,1163,3},{2412,1167,3},{2405,1170,3},{2400,1173,3},{2393,1175,3}, {2388,1178,3},{2383,1182,3},{2377,1185,3},{2372,1188,3},{2367,1192,3},{2360,1193,3}, {2352,1198,3},{2350,1193,3},{2347,1187,3},{2342,1182,3},{2338,1175,3},{2335,1170,3}, {2332,1163,3},{2328,1157,3},{2325,1152,3},{2322,1145,3},{2318,1138,3},{2315,1133,3}, {2312,1127,3},{2308,1120,3},{2305,1115,3},{2300,1108,3},{2297,1102,3},{2293,1097,3}, {2290,1090,3},{2287,1085,3},{2283,1078,3},{2280,1072,3},{2277,1067,3},{2273,1060,3}, {2270,1055,3},{2267,1048,3},{2262,1042,3},{2258,1037,3},{2255,1030,3},{2252,1023,3}, {2248,1018,3},{2245,1012,3},{2242,1007,3},{2238,1000,3},{2235,993,3},{2230,988,3}, {2227,982,3},{2223,977,3},{2220,970,3},{2217,963,3},{2213,958,3},{2210,952,3}, {2207,947,3},{2202,940,3},{2198,935,3},{2195,928,3},{2192,922,3},{2188,917,3}, {2185,910,3},{2182,905,3},{2178,898,3},{2173,892,3},{2170,887,3},{2167,880,3}, {2163,875,3},{2160,868,3},{2157,863,3},{2153,857,3},{2148,850,3},{2145,845,3}, {2142,838,3},{2138,833,3},{2135,827,3},{2132,822,3},{2128,815,3},{2123,810,3}, {2120,803,3},{2117,798,3},{2113,792,3},{2110,785,3},{2107,780,3},{2102,773,3}, {2098,768,3},{2095,762,3},{2092,757,3},{2088,750,3},{2085,745,3},{2080,738,3}, {2075,733,3},{2070,727,3},{2065,722,3},{2060,717,3},{2055,710,3},{2050,705,3}, {2045,698,3},{2040,693,3},{2037,687,3},{2032,682,3},{2027,677,3},{2022,670,3}, {2017,665,3},{2012,658,3},{2007,653,3},{2002,647,3},{1997,642,3},{1992,637,3}, {1987,630,3},{1982,625,3},{1977,618,3},{1972,613,3},{1967,608,3},{1963,602,3}, {1958,597,3},{1953,590,3},{1948,585,3},{1943,578,3},{1943,573,3},{1942,568,3}, {1942,562,3},{1940,557,3},{1938,552,3},{1938,545,3},{1937,540,3},{1935,535,3}, {1935,528,3},{1933,523,3},{1933,518,3},{1932,513,3},{1930,507,3},{1930,502,3}, {1928,497,3},{1927,490,3},{1927,485,3},{1925,480,3},{1925,473,3},{1923,468,3}, {1922,463,3},{1922,458,3},{1920,452,3},{1918,447,3},{1918,442,3},{1917,435,3}, {1915,430,3},{1915,425,3},{622,163,131},{623,163,3},{625,165,3},{628,180,3}, {640,177,3},{642,177,3},{643,175,3},{645,175,3},{648,173,3},{650,170,3}, {653,170,3},{655,167,3},{658,167,3},{657,165,3},{658,162,3},{663,160,3}, {665,162,3},{668,158,3},{672,158,3},{673,162,3},{675,162,3},{680,160,3}, {682,160,3},{690,160,3},{692,158,3},{700,155,3},{700,165,3},{745,165,3}, {753,165,3},{763,163,3},{770,163,3},{777,165,3},{783,165,3},{788,163,3}, {793,163,3},{798,163,3},{805,163,3},{810,163,3},{815,163,3},{820,163,3}, {825,163,3},{835,163,3},{837,162,3},{845,163,3},{850,167,3},{855,162,3}, {905,162,3},{910,160,3},{917,157,3},{922,150,3},{932,142,3},{948,138,3}, {950,138,3},{948,137,3},{955,133,3},{960,137,3},{965,137,3},{1000,135,3}, {1018,105,3},{1038,78,3},{1052,78,3},{1058,80,3},{1072,80,3},{1080,88,3}, {1087,88,3},{1088,90,3},{1092,88,3},{1100,95,3},{1103,95,3},{1108,98,3}, {1105,103,3},{1105,110,3},{1103,112,3},{1112,108,3},{1113,105,3},{1117,112,3}, {1117,113,3},{1117,115,3},{1122,115,3},{1125,113,3},{1127,113,3},{1128,117,3}, {1127,118,3},{1127,123,3},{1125,127,3},{1127,128,3},{1130,127,3},{1132,128,3}, {1128,130,3},{1130,132,3},{1128,133,3},{1130,135,3},{1135,133,3},{1140,140,3}, {1142,138,3},{1147,143,3},{1145,157,3},{1143,157,3},{1143,158,3},{1140,158,3}, {1138,162,3},{1142,172,3},{1142,175,3},{1143,180,3},{1145,187,3},{1143,190,3}, {1142,202,3},{1160,220,3},{1167,232,3},{1173,232,3},{1178,237,3},{1185,237,3}, {1187,240,3},{1188,240,3},{1190,242,3},{1193,238,3},{1195,240,3},{1195,243,3}, {1198,245,3},{1198,247,3},{1202,247,3},{1203,243,3},{1208,240,3},{1223,238,3}, {1227,243,3},{1225,247,3},{1227,247,3},{1227,250,3},{1228,252,3},{1227,253,3}, {1230,260,3},{1228,262,3},{1230,265,3},{1230,267,3},{1228,268,3},{1235,272,3}, {1235,275,3},{1238,278,3},{1240,283,3},{1233,292,3},{1230,295,3},{1227,302,3}, {1218,305,3},{1212,317,3},{1205,322,3},{1202,325,3},{1195,327,3},{1188,332,3}, {1188,338,3},{1185,343,3},{1185,347,3},{1175,357,3},{1173,357,3},{1168,360,3}, {1165,357,3},{1157,353,3},{1155,352,3},{1143,347,3},{1112,370,3},{1112,373,3}, {1103,373,3},{1102,375,3},{1090,378,3},{1080,375,3},{1078,378,3},{1072,380,3}, {1070,385,3},{1058,385,3},{1050,382,3},{1047,382,3},{1040,380,3},{1045,368,3}, {1042,363,3},{1038,363,3},{1027,358,3},{1020,365,3},{1018,368,3},{1017,368,3}, {1010,367,3},{1007,363,3},{995,362,3},{985,353,3},{985,348,3},{982,335,3}, {975,333,3},{968,337,3},{963,332,3},{965,330,3},{963,327,3},{958,327,3}, {950,320,3},{950,317,3},{943,313,3},{937,317,3},{927,317,3},{925,315,3}, {908,310,3},{907,298,3},{908,297,3},{908,290,3},{905,288,3},{907,282,3}, {905,278,3},{893,278,3},{892,277,3},{890,278,3},{885,277,3},{882,277,3}, {878,273,3},{872,275,3},{867,275,3},{852,277,3},{847,275,3},{842,272,3}, {833,272,3},{820,275,3},{815,273,3},{813,272,3},{793,270,3},{790,268,3}, {782,275,3},{765,273,3},{757,273,3},{750,282,3},{742,280,3},{743,277,3}, {742,275,3},{713,278,3},{710,275,3},{703,280,3},{700,275,3},{695,273,3}, {692,275,3},{680,273,3},{677,275,3},{677,278,3},{668,280,3},{667,277,3}, {662,273,3},{657,275,3},{645,272,3},{637,272,3},{637,268,3},{635,263,3}, {635,257,3},{635,252,3},{633,247,3},{633,242,3},{633,235,3},{633,230,3}, {632,225,3},{630,220,3},{630,215,3},{630,210,3},{628,203,3},{628,198,3}, {628,193,3},{627,187,3},{627,183,3},{625,177,3},{623,172,3},{623,167,3}, {622,163,3},{610,120,131},{617,120,3},{617,110,3},{622,107,3},{623,103,3}, {633,100,3},{633,90,3},{638,85,3},{642,78,3},{650,73,3},{653,72,3},{655,75,3}, {658,75,3},{658,68,3},{663,65,3},{673,65,3},{677,58,3},{682,57,3},{683,53,3}, {692,57,3},{693,55,3},{695,52,3},{698,52,3},{700,58,3},{702,60,3},{710,62,3}, {715,62,3},{720,63,3},{727,65,3},{730,67,3},{740,65,3},{738,58,3},{740,55,3}, {747,52,3},{758,52,3},{762,58,3},{770,60,3},{770,63,3},{775,62,3},{778,63,3}, {782,62,3},{792,62,3},{795,60,3},{802,62,3},{813,58,3},{815,60,3},{817,62,3}, {820,58,3},{822,60,3},{823,63,3},{825,63,3},{828,73,3},{832,73,3},{833,70,3}, {838,70,3},{842,65,3},{847,65,3},{850,63,3},{852,57,3},{855,53,3},{860,47,3}, {877,38,3},{878,40,3},{877,43,3},{880,45,3},{880,48,3},{883,50,3},{885,52,3}, {892,52,3},{903,45,3},{910,48,3},{915,48,3},{915,50,3},{920,53,3},{927,50,3}, {928,52,3},{930,55,3},{932,53,3},{942,55,3},{943,50,3},{947,50,3},{950,43,3}, {948,37,3},{943,33,3},{942,28,3},{943,23,3},{945,23,3},{945,22,3},{948,23,3}, {948,28,3},{950,30,3},{952,23,3},{957,23,3},{957,35,3},{958,38,3},{962,35,3}, {958,28,3},{965,25,3},{968,28,3},{965,33,3},{967,35,3},{972,35,3},{973,32,3}, {980,33,3},{983,35,3},{990,33,3},{993,38,3},{998,35,3},{1003,35,3},{1003,40,3}, {1007,40,3},{1010,35,3},{1020,35,3},{1025,37,3},{1030,40,3},{1030,33,3}, {1033,33,3},{1037,30,3},{1038,30,3},{1042,28,3},{1040,27,3},{1042,22,3}, {1040,20,3},{1052,13,3},{1055,7,3},{1058,5,3},{1060,0,3},{1063,65529,3}, {1070,65528,3},{1077,65529,3},{1082,65534,3},{1085,65534,3},{1092,0,3}, {1097,0,3},{1098,3,3},{1105,3,3},{1108,3,3},{1110,0,3},{1110,65526,3},{1112,65523,3}, {1113,65521,3},{1110,2,3},{1100,50,3},{1098,50,3},{1098,52,3},{1093,50,3}, {1100,67,3},{1100,95,3},{1092,88,3},{1088,90,3},{1087,88,3},{1080,88,3}, {1072,80,3},{1058,80,3},{1052,78,3},{1038,78,3},{1018,105,3},{1000,135,3}, {965,137,3},{960,137,3},{955,133,3},{948,137,3},{950,138,3},{948,138,3}, {932,142,3},{922,150,3},{917,157,3},{910,160,3},{905,162,3},{855,162,3}, {850,167,3},{845,163,3},{837,162,3},{835,163,3},{825,163,3},{820,163,3}, {815,163,3},{810,163,3},{805,163,3},{798,163,3},{793,163,3},{788,163,3}, {783,165,3},{777,165,3},{770,163,3},{763,163,3},{753,165,3},{745,165,3}, {700,165,3},{700,155,3},{692,158,3},{690,160,3},{682,160,3},{680,160,3}, {675,162,3},{673,162,3},{672,158,3},{668,158,3},{665,162,3},{663,160,3}, {658,162,3},{657,165,3},{658,167,3},{655,167,3},{653,170,3},{650,170,3}, {648,173,3},{645,175,3},{643,175,3},{642,177,3},{640,177,3},{628,180,3}, {625,165,3},{623,163,3},{622,163,3},{613,130,3},{610,120,3},{508,65226,131}, {512,65226,3},{512,65233,3},{510,65243,3},{512,65249,3},{512,65251,3},{510,65261,3}, {512,65263,3},{513,65263,3},{518,65263,3},{520,65259,3},{525,65261,3},{525,65259,3}, {528,65258,3},{530,65259,3},{535,65259,3},{535,65264,3},{540,65264,3},{553,65259,3}, {558,65259,3},{562,65258,3},{562,65254,3},{565,65251,3},{562,65246,3},{562,65243,3}, {563,65239,3},{572,65241,3},{570,65234,3},{585,65236,3},{600,65229,3},{615,65226,3}, {625,65221,3},{625,65219,3},{655,65213,3},{658,65213,3},{662,65211,3},{665,65211,3}, {665,65214,3},{670,65216,3},{672,65218,3},{677,65213,3},{682,65214,3},{707,65228,3}, {707,65234,3},{713,65234,3},{723,65241,3},{727,65239,3},{760,65244,3},{775,65253,3}, {782,65254,3},{785,65258,3},{795,65259,3},{793,65261,3},{795,65263,3},{802,65268,3}, {803,65278,3},{807,65278,3},{813,65274,3},{817,65278,3},{817,65281,3},{820,65288,3}, {825,65286,3},{830,65286,3},{835,65284,3},{840,65284,3},{845,65283,3},{850,65283,3}, {857,65281,3},{862,65281,3},{867,65279,3},{872,65279,3},{878,65278,3},{878,65274,3}, {882,65276,3},{888,65274,3},{892,65274,3},{893,65271,3},{902,65271,3},{903,65261,3}, {905,65259,3},{910,65259,3},{913,65259,3},{915,65263,3},{920,65264,3},{925,65269,3}, {932,65264,3},{938,65269,3},{942,65268,3},{947,65269,3},{948,65268,3},{957,65259,3}, {962,65259,3},{965,65261,3},{968,65259,3},{968,65258,3},{973,65256,3},{980,65259,3}, {982,65263,3},{988,65259,3},{997,65261,3},{1005,65256,3},{1015,65258,3}, {1018,65256,3},{1023,65259,3},{1027,65261,3},{1027,65258,3},{1032,65251,3}, {1038,65254,3},{1040,65258,3},{1042,65259,3},{1042,65254,3},{1045,65251,3}, {1062,65243,3},{1068,65246,3},{1072,65243,3},{1075,65246,3},{1088,65249,3}, {1088,65253,3},{1092,65254,3},{1097,65253,3},{1100,65253,3},{1100,65261,3}, {1098,65266,3},{1098,65271,3},{1100,65278,3},{1100,65283,3},{1100,65288,3}, {1100,65294,3},{1100,65299,3},{1100,65304,3},{1100,65309,3},{1100,65314,3}, {1100,65319,3},{1100,65326,3},{1100,65331,3},{1100,65338,3},{1100,65343,3}, {1100,65348,3},{1100,65353,3},{1100,65358,3},{1100,65363,3},{1100,65368,3}, {1100,65374,3},{1100,65379,3},{1103,65379,3},{1103,65384,3},{1103,65389,3}, {1103,65394,3},{1102,65398,3},{1100,65406,3},{1100,65411,3},{1100,65416,3}, {1100,65421,3},{1100,65428,3},{1102,65426,3},{1102,65433,3},{1100,65439,3}, {1100,65446,3},{1098,65446,3},{1098,65448,3},{1097,65448,3},{1097,65449,3}, {1100,65451,3},{1102,65456,3},{1100,65456,3},{1100,65468,3},{1098,65468,3}, {1098,65471,3},{1097,65469,3},{1092,65474,3},{1093,65476,3},{1098,65479,3}, {1100,65486,3},{1103,65493,3},{1107,65493,3},{1110,65494,3},{1110,65499,3}, {1107,65501,3},{1112,65508,3},{1113,65508,3},{1117,65508,3},{1113,65521,3}, {1112,65523,3},{1110,65526,3},{1110,0,3},{1108,3,3},{1105,3,3},{1098,3,3}, {1097,0,3},{1092,0,3},{1085,65534,3},{1082,65534,3},{1077,65529,3},{1070,65528,3}, {1063,65529,3},{1060,0,3},{1058,5,3},{1055,7,3},{1052,13,3},{1040,20,3}, {1042,22,3},{1040,27,3},{1042,28,3},{1038,30,3},{1037,30,3},{1033,33,3}, {1030,33,3},{1030,40,3},{1025,37,3},{1020,35,3},{1010,35,3},{1007,40,3}, {1003,40,3},{1003,35,3},{998,35,3},{993,38,3},{990,33,3},{983,35,3},{980,33,3}, {973,32,3},{972,35,3},{967,35,3},{965,33,3},{968,28,3},{965,25,3},{958,28,3}, {962,35,3},{958,38,3},{957,35,3},{957,23,3},{952,23,3},{950,30,3},{948,28,3}, {948,23,3},{945,22,3},{945,23,3},{943,23,3},{942,28,3},{943,33,3},{948,37,3}, {950,43,3},{947,50,3},{943,50,3},{942,55,3},{932,53,3},{930,55,3},{928,52,3}, {927,50,3},{920,53,3},{915,50,3},{915,48,3},{910,48,3},{903,45,3},{892,52,3}, {885,52,3},{883,50,3},{880,48,3},{880,45,3},{877,43,3},{878,40,3},{877,38,3}, {860,47,3},{855,53,3},{852,57,3},{850,63,3},{847,65,3},{842,65,3},{838,70,3}, {833,70,3},{832,73,3},{828,73,3},{825,63,3},{823,63,3},{822,60,3},{820,58,3}, {817,62,3},{815,60,3},{813,58,3},{802,62,3},{795,60,3},{792,62,3},{782,62,3}, {778,63,3},{775,62,3},{770,63,3},{770,60,3},{762,58,3},{758,52,3},{747,52,3}, {740,55,3},{738,58,3},{740,65,3},{730,67,3},{727,65,3},{720,63,3},{715,62,3}, {710,62,3},{702,60,3},{700,58,3},{698,52,3},{695,52,3},{693,55,3},{692,57,3}, {683,53,3},{682,57,3},{677,58,3},{673,65,3},{663,65,3},{658,68,3},{658,75,3}, {655,75,3},{653,72,3},{650,73,3},{642,78,3},{638,85,3},{633,90,3},{633,100,3}, {623,103,3},{622,107,3},{617,110,3},{617,120,3},{610,120,3},{603,108,3}, {597,103,3},{588,100,3},{583,100,3},{580,97,3},{577,92,3},{575,70,3},{577,68,3}, {577,70,3},{583,65,3},{588,65,3},{595,63,3},{605,52,3},{608,42,3},{605,37,3}, {605,32,3},{610,27,3},{610,22,3},{608,20,3},{608,27,3},{603,32,3},{602,38,3}, {607,42,3},{607,43,3},{603,50,3},{600,53,3},{598,57,3},{595,62,3},{588,65,3}, {582,63,3},{578,65,3},{577,65,3},{575,67,3},{578,32,3},{572,13,3},{567,7,3}, {563,3,3},{562,0,3},{558,65529,3},{548,65498,3},{537,65486,3},{535,65478,3}, {532,65473,3},{533,65473,3},{530,65466,3},{520,65456,3},{520,65446,3},{522,65446,3}, {520,65438,3},{522,65436,3},{520,65434,3},{520,65429,3},{512,65418,3},{508,65409,3}, {508,65404,3},{507,65393,3},{503,65388,3},{502,65374,3},{500,65373,3},{498,65374,3}, {497,65373,3},{495,65366,3},{492,65363,3},{487,65361,3},{487,65354,3},{485,65353,3}, {482,65346,3},{475,65339,3},{475,65334,3},{473,65328,3},{475,65326,3},{477,65326,3}, {478,65321,3},{480,65319,3},{485,65313,3},{488,65309,3},{492,65303,3},{497,65278,3}, {500,65268,3},{502,65251,3},{508,65226,3},{948,65268,131},{940,65263,3}, {940,65261,3},{942,65258,3},{948,65251,3},{957,65244,3},{972,65238,3},{973,65236,3}, {972,65229,3},{983,65224,3},{985,65221,3},{983,65218,3},{992,65218,3},{985,65209,3}, {985,65206,3},{990,65206,3},{988,65203,3},{992,65199,3},{993,65189,3},{993,65179,3}, {992,65176,3},{995,65173,3},{993,65169,3},{995,65168,3},{993,65159,3},{990,65156,3}, {990,65148,3},{987,65143,3},{987,65139,3},{983,65139,3},{982,65133,3},{980,65133,3}, {983,65123,3},{977,65118,3},{973,65109,3},{973,65111,3},{968,65108,3},{965,65108,3}, {960,65104,3},{962,65103,3},{962,65099,3},{960,65099,3},{958,65099,3},{960,65098,3}, {963,65096,3},{965,65093,3},{965,65084,3},{970,65084,3},{973,65086,3},{975,65084,3}, {975,65081,3},{972,65081,3},{968,65079,3},{968,65078,3},{972,65076,3},{970,65074,3}, {970,65071,3},{968,65071,3},{967,65068,3},{975,65063,3},{975,65059,3},{973,65059,3}, {975,65058,3},{975,65056,3},{977,65056,3},{977,65054,3},{978,65058,3},{980,65056,3}, {983,65058,3},{983,65054,3},{987,65053,3},{988,65046,3},{987,65043,3},{990,65039,3}, {995,65041,3},{1000,65038,3},{1002,65041,3},{1005,65038,3},{1007,65036,3}, {1008,65034,3},{1008,65031,3},{1010,65031,3},{1012,65029,3},{1012,65033,3}, {1015,65029,3},{1018,65029,3},{1018,65026,3},{1022,65028,3},{1020,65024,3}, {1025,65024,3},{1027,65026,3},{1030,65024,3},{1028,65019,3},{1028,65016,3}, {1030,65016,3},{1032,65016,3},{1032,65008,3},{1030,65004,3},{1028,64999,3}, {1030,64994,3},{1033,64994,3},{1035,64989,3},{1037,64989,3},{1038,64988,3}, {1042,64984,3},{1043,64984,3},{1047,64984,3},{1055,64989,3},{1062,64988,3}, {1065,64989,3},{1075,64991,3},{1077,64993,3},{1085,64994,3},{1090,64991,3}, {1098,64991,3},{1097,64988,3},{1108,64988,3},{1110,64999,3},{1113,65006,3}, {1120,65006,3},{1125,65011,3},{1140,65011,3},{1142,65016,3},{1145,65014,3}, {1153,65016,3},{1158,65014,3},{1160,65013,3},{1160,65008,3},{1162,65008,3}, {1167,65009,3},{1175,65009,3},{1178,65008,3},{1180,65001,3},{1183,64996,3}, {1183,65004,3},{1185,65008,3},{1183,65009,3},{1187,65011,3},{1195,65021,3}, {1198,65029,3},{1198,65038,3},{1202,65043,3},{1200,65048,3},{1202,65053,3}, {1200,65058,3},{1202,65059,3},{1200,65061,3},{1207,65066,3},{1207,65073,3}, {1212,65074,3},{1213,65076,3},{1213,65083,3},{1220,65079,3},{1228,65089,3}, {1232,65089,3},{1233,65091,3},{1232,65093,3},{1230,65094,3},{1230,65098,3}, {1235,65096,3},{1243,65093,3},{1253,65099,3},{1262,65094,3},{1265,65089,3}, {1273,65089,3},{1275,65101,3},{1272,65106,3},{1273,65113,3},{1277,65116,3}, {1283,65116,3},{1285,65114,3},{1297,65114,3},{1300,65109,3},{1312,65103,3}, {1318,65106,3},{1318,65114,3},{1323,65111,3},{1327,65116,3},{1328,65121,3}, {1340,65128,3},{1342,65133,3},{1343,65134,3},{1343,65138,3},{1347,65141,3}, {1348,65141,3},{1348,65138,3},{1350,65139,3},{1348,65141,3},{1347,65143,3}, {1345,65146,3},{1340,65139,3},{1338,65141,3},{1338,65148,3},{1335,65153,3}, {1335,65158,3},{1330,65163,3},{1327,65169,3},{1320,65178,3},{1320,65181,3}, {1318,65183,3},{1318,65193,3},{1328,65193,3},{1328,65213,3},{1355,65209,3}, {1358,65211,3},{1368,65211,3},{1370,65209,3},{1372,65209,3},{1370,65214,3}, {1368,65218,3},{1368,65226,3},{1365,65229,3},{1362,65231,3},{1362,65233,3}, {1365,65234,3},{1363,65241,3},{1365,65248,3},{1372,65246,3},{1382,65246,3}, {1385,65248,3},{1388,65248,3},{1400,65253,3},{1400,65251,3},{1403,65253,3}, {1413,65268,3},{1422,65276,3},{1428,65289,3},{1425,65306,3},{1415,65326,3}, {1418,65336,3},{1423,65336,3},{1430,65336,3},{1435,65336,3},{1440,65338,3}, {1448,65338,3},{1448,65346,3},{1448,65351,3},{1448,65358,3},{1450,65364,3}, {1452,65371,3},{1457,65378,3},{1460,65384,3},{1465,65391,3},{1468,65398,3}, {1473,65404,3},{1475,65411,3},{1477,65418,3},{1478,65423,3},{1478,65429,3}, {1483,65434,3},{1488,65441,3},{1495,65448,3},{1500,65454,3},{1505,65461,3}, {1508,65464,3},{1508,65493,3},{1500,65498,3},{1508,65513,3},{1500,0,3}, {1497,7,3},{1495,13,3},{1493,20,3},{1492,23,3},{1488,23,3},{1483,20,3}, {1475,23,3},{1452,17,3},{1447,18,3},{1437,30,3},{1437,32,3},{1425,42,3}, {1423,40,3},{1418,40,3},{1413,35,3},{1408,40,3},{1405,38,3},{1402,42,3}, {1398,42,3},{1395,47,3},{1392,47,3},{1378,58,3},{1378,62,3},{1372,60,3}, {1368,62,3},{1368,77,3},{1367,78,3},{1365,77,3},{1362,83,3},{1362,90,3}, {1357,100,3},{1347,103,3},{1340,117,3},{1340,125,3},{1335,128,3},{1333,125,3}, {1335,123,3},{1337,120,3},{1335,120,3},{1332,118,3},{1337,102,3},{1337,100,3}, {1335,98,3},{1305,98,3},{1302,102,3},{1302,112,3},{1295,118,3},{1292,123,3}, {1287,128,3},{1283,135,3},{1278,140,3},{1273,145,3},{1270,150,3},{1263,158,3}, {1263,165,3},{1262,170,3},{1262,175,3},{1262,180,3},{1262,187,3},{1263,188,3}, {1270,193,3},{1272,197,3},{1273,198,3},{1272,203,3},{1273,210,3},{1270,215,3}, {1265,215,3},{1263,220,3},{1260,222,3},{1252,223,3},{1247,227,3},{1242,227,3}, {1240,217,3},{1242,217,3},{1238,212,3},{1238,208,3},{1235,207,3},{1227,212,3}, {1222,217,3},{1217,220,3},{1212,223,3},{1205,228,3},{1200,232,3},{1195,235,3}, {1188,240,3},{1187,240,3},{1185,237,3},{1178,237,3},{1173,232,3},{1167,232,3}, {1160,220,3},{1142,202,3},{1143,190,3},{1145,187,3},{1143,180,3},{1142,175,3}, {1142,172,3},{1138,162,3},{1140,158,3},{1143,158,3},{1143,157,3},{1145,157,3}, {1147,143,3},{1142,138,3},{1140,140,3},{1135,133,3},{1130,135,3},{1128,133,3}, {1130,132,3},{1128,130,3},{1132,128,3},{1130,127,3},{1127,128,3},{1125,127,3}, {1127,123,3},{1127,118,3},{1128,117,3},{1127,113,3},{1125,113,3},{1122,115,3}, {1117,115,3},{1117,113,3},{1117,112,3},{1113,105,3},{1112,108,3},{1103,112,3}, {1105,110,3},{1105,103,3},{1108,98,3},{1103,95,3},{1100,95,3},{1100,67,3}, {1093,50,3},{1098,52,3},{1098,50,3},{1100,50,3},{1110,2,3},{1113,65521,3}, {1117,65508,3},{1113,65508,3},{1112,65508,3},{1107,65501,3},{1110,65499,3}, {1110,65494,3},{1107,65493,3},{1103,65493,3},{1100,65486,3},{1098,65479,3}, {1093,65476,3},{1092,65474,3},{1097,65469,3},{1098,65471,3},{1098,65468,3}, {1100,65468,3},{1100,65456,3},{1102,65456,3},{1100,65451,3},{1097,65449,3}, {1097,65448,3},{1098,65448,3},{1098,65446,3},{1100,65446,3},{1100,65439,3}, {1102,65433,3},{1102,65426,3},{1100,65428,3},{1100,65421,3},{1100,65416,3}, {1100,65411,3},{1100,65406,3},{1102,65398,3},{1103,65394,3},{1103,65389,3}, {1103,65384,3},{1103,65379,3},{1100,65379,3},{1100,65374,3},{1100,65368,3}, {1100,65363,3},{1100,65358,3},{1100,65353,3},{1100,65348,3},{1100,65343,3}, {1100,65338,3},{1100,65331,3},{1100,65326,3},{1100,65319,3},{1100,65314,3}, {1100,65309,3},{1100,65304,3},{1100,65299,3},{1100,65294,3},{1100,65288,3}, {1100,65283,3},{1100,65278,3},{1098,65271,3},{1098,65266,3},{1100,65261,3}, {1100,65253,3},{1097,65253,3},{1092,65254,3},{1088,65253,3},{1088,65249,3}, {1075,65246,3},{1072,65243,3},{1068,65246,3},{1062,65243,3},{1045,65251,3}, {1042,65254,3},{1042,65259,3},{1040,65258,3},{1038,65254,3},{1032,65251,3}, {1027,65258,3},{1027,65261,3},{1023,65259,3},{1018,65256,3},{1015,65258,3}, {1005,65256,3},{997,65261,3},{988,65259,3},{982,65263,3},{980,65259,3}, {973,65256,3},{968,65258,3},{968,65259,3},{965,65261,3},{962,65259,3},{957,65259,3}, {948,65268,3},{435,64784,131},{440,64779,3},{442,64781,3},{445,64779,3}, {450,64781,3},{457,64779,3},{460,64781,3},{467,64779,3},{475,64781,3},{478,64779,3}, {482,64778,3},{483,64778,3},{490,64778,3},{492,64779,3},{492,64783,3},{495,64783,3}, {497,64781,3},{507,64779,3},{508,64781,3},{510,64784,3},{510,64786,3},{513,64788,3}, {517,64789,3},{523,64789,3},{525,64789,3},{527,64789,3},{530,64794,3},{527,64794,3}, {527,64796,3},{532,64799,3},{537,64798,3},{537,64796,3},{543,64793,3},{543,64794,3}, {548,64794,3},{552,64798,3},{553,64796,3},{553,64798,3},{557,64796,3},{557,64799,3}, {565,64794,3},{572,64793,3},{583,64794,3},{587,64793,3},{587,64789,3},{582,64789,3}, {582,64788,3},{585,64786,3},{585,64784,3},{587,64784,3},{585,64781,3},{587,64779,3}, {588,64779,3},{592,64771,3},{595,64771,3},{593,64768,3},{590,64768,3},{595,64761,3}, {598,64758,3},{602,64758,3},{603,64759,3},{605,64758,3},{607,64758,3},{608,64754,3}, {608,64751,3},{613,64751,3},{620,64754,3},{625,64746,3},{628,64746,3},{627,64744,3}, {628,64738,3},{630,64734,3},{627,64719,3},{630,64716,3},{632,64708,3},{635,64708,3}, {633,64706,3},{637,64703,3},{637,64699,3},{635,64696,3},{635,64694,3},{638,64698,3}, {642,64696,3},{645,64698,3},{647,64694,3},{648,64691,3},{645,64689,3},{643,64688,3}, {648,64683,3},{650,64676,3},{653,64676,3},{653,64678,3},{655,64679,3},{657,64679,3}, {657,64683,3},{660,64683,3},{658,64684,3},{662,64686,3},{662,64688,3},{663,64688,3}, {663,64691,3},{665,64691,3},{665,64693,3},{667,64694,3},{672,64696,3},{673,64701,3}, {677,64701,3},{677,64703,3},{678,64703,3},{687,64706,3},{688,64703,3},{690,64704,3}, {697,64704,3},{700,64708,3},{708,64706,3},{718,64708,3},{723,64699,3},{727,64701,3}, {732,64698,3},{750,64694,3},{757,64689,3},{762,64696,3},{760,64698,3},{758,64698,3}, {758,64701,3},{760,64706,3},{758,64708,3},{755,64714,3},{757,64718,3},{763,64718,3}, {767,64721,3},{768,64723,3},{772,64726,3},{777,64726,3},{780,64728,3},{785,64724,3}, {787,64724,3},{797,64731,3},{802,64731,3},{803,64731,3},{803,64736,3},{802,64738,3}, {802,64741,3},{807,64739,3},{810,64736,3},{818,64738,3},{817,64729,3},{820,64719,3}, {823,64714,3},{825,64711,3},{828,64713,3},{838,64714,3},{840,64714,3},{845,64711,3}, {850,64716,3},{850,64721,3},{848,64721,3},{848,64726,3},{850,64728,3},{850,64731,3}, {850,64743,3},{843,64746,3},{842,64751,3},{843,64753,3},{847,64753,3},{848,64754,3}, {845,64758,3},{838,64761,3},{838,64771,3},{843,64768,3},{850,64771,3},{857,64768,3}, {862,64768,3},{867,64763,3},{872,64761,3},{875,64758,3},{877,64744,3},{880,64741,3}, {897,64743,3},{902,64744,3},{903,64751,3},{907,64754,3},{907,64761,3},{908,64763,3}, {910,64763,3},{912,64756,3},{917,64753,3},{917,64748,3},{920,64744,3},{923,64744,3}, {930,64748,3},{935,64748,3},{942,64751,3},{942,64744,3},{938,64741,3},{938,64734,3}, {940,64731,3},{950,64723,3},{962,64721,3},{967,64724,3},{975,64723,3},{982,64726,3}, {987,64726,3},{987,64721,3},{988,64723,3},{990,64723,3},{992,64721,3},{995,64719,3}, {997,64724,3},{998,64724,3},{998,64721,3},{1005,64724,3},{1008,64734,3}, {1015,64739,3},{1015,64743,3},{1017,64748,3},{1020,64749,3},{1020,64754,3}, {1030,64761,3},{1033,64759,3},{1033,64761,3},{1035,64763,3},{1038,64763,3}, {1040,64766,3},{1040,64769,3},{1045,64773,3},{1042,64776,3},{1042,64783,3}, {1045,64784,3},{1047,64788,3},{1045,64791,3},{1042,64791,3},{1038,64791,3}, {1037,64793,3},{1033,64793,3},{1035,64799,3},{1033,64801,3},{1028,64799,3}, {1025,64801,3},{1025,64808,3},{1022,64823,3},{1020,64829,3},{1015,64833,3}, {1013,64834,3},{1015,64838,3},{1018,64841,3},{1022,64841,3},{1025,64838,3}, {1033,64839,3},{1035,64841,3},{1035,64851,3},{1038,64858,3},{1033,64868,3}, {1037,64871,3},{1040,64871,3},{1043,64873,3},{1047,64869,3},{1048,64868,3}, {1052,64868,3},{1053,64869,3},{1058,64869,3},{1060,64868,3},{1067,64871,3}, {1065,64874,3},{1062,64876,3},{1060,64881,3},{1058,64883,3},{1055,64894,3}, {1058,64898,3},{1062,64894,3},{1068,64894,3},{1070,64904,3},{1073,64911,3}, {1072,64914,3},{1067,64913,3},{1063,64918,3},{1060,64914,3},{1057,64914,3}, {1052,64911,3},{1052,64914,3},{1050,64916,3},{1050,64919,3},{1043,64918,3}, {1042,64921,3},{1040,64918,3},{1035,64919,3},{1033,64916,3},{1032,64918,3}, {1032,64913,3},{1025,64914,3},{1025,64916,3},{1023,64916,3},{1020,64926,3}, {1018,64936,3},{1023,64939,3},{1027,64939,3},{1028,64941,3},{1028,64948,3}, {1037,64948,3},{1042,64956,3},{1042,64963,3},{1045,64971,3},{1045,64979,3}, {1043,64984,3},{1042,64984,3},{1038,64988,3},{1037,64989,3},{1035,64989,3}, {1033,64994,3},{1030,64994,3},{1028,64999,3},{1030,65004,3},{1032,65008,3}, {1032,65016,3},{1030,65016,3},{1028,65016,3},{1028,65019,3},{1030,65024,3}, {1027,65026,3},{1025,65024,3},{1020,65024,3},{1022,65028,3},{1018,65026,3}, {1018,65029,3},{1015,65029,3},{1012,65033,3},{1012,65029,3},{1010,65031,3}, {1008,65031,3},{1008,65034,3},{1007,65036,3},{1005,65038,3},{1002,65041,3}, {1000,65038,3},{995,65041,3},{990,65039,3},{987,65043,3},{988,65046,3}, {987,65053,3},{983,65054,3},{983,65058,3},{980,65056,3},{978,65058,3},{977,65054,3}, {977,65056,3},{975,65056,3},{975,65058,3},{973,65059,3},{975,65059,3},{975,65063,3}, {967,65068,3},{968,65071,3},{970,65071,3},{970,65074,3},{972,65076,3},{968,65078,3}, {968,65079,3},{972,65081,3},{975,65081,3},{975,65084,3},{973,65086,3},{970,65084,3}, {965,65084,3},{965,65093,3},{963,65096,3},{960,65098,3},{958,65099,3},{960,65099,3}, {962,65099,3},{962,65103,3},{960,65104,3},{965,65108,3},{968,65108,3},{973,65111,3}, {973,65109,3},{977,65118,3},{983,65123,3},{980,65133,3},{982,65133,3},{983,65139,3}, {987,65139,3},{987,65143,3},{990,65148,3},{990,65156,3},{993,65159,3},{995,65168,3}, {993,65169,3},{995,65173,3},{992,65176,3},{993,65179,3},{993,65189,3},{992,65199,3}, {988,65203,3},{990,65206,3},{985,65206,3},{985,65209,3},{992,65218,3},{983,65218,3}, {985,65221,3},{983,65224,3},{972,65229,3},{973,65236,3},{972,65238,3},{957,65244,3}, {948,65251,3},{942,65258,3},{940,65261,3},{940,65263,3},{948,65268,3},{947,65269,3}, {942,65268,3},{938,65269,3},{932,65264,3},{925,65269,3},{920,65264,3},{915,65263,3}, {913,65259,3},{910,65259,3},{905,65259,3},{903,65261,3},{902,65271,3},{893,65271,3}, {892,65274,3},{888,65274,3},{882,65276,3},{878,65274,3},{878,65278,3},{872,65279,3}, {867,65279,3},{862,65281,3},{857,65281,3},{850,65283,3},{845,65283,3},{840,65284,3}, {835,65284,3},{830,65286,3},{825,65286,3},{820,65288,3},{817,65281,3},{817,65278,3}, {813,65274,3},{807,65278,3},{803,65278,3},{802,65268,3},{795,65263,3},{793,65261,3}, {795,65259,3},{785,65258,3},{782,65254,3},{775,65253,3},{760,65244,3},{727,65239,3}, {723,65241,3},{713,65234,3},{707,65234,3},{707,65228,3},{682,65214,3},{677,65213,3}, {672,65218,3},{670,65216,3},{665,65214,3},{665,65211,3},{662,65211,3},{658,65213,3}, {655,65213,3},{625,65219,3},{625,65221,3},{615,65226,3},{600,65229,3},{585,65236,3}, {570,65234,3},{572,65241,3},{563,65239,3},{562,65243,3},{562,65246,3},{565,65251,3}, {562,65254,3},{562,65258,3},{558,65259,3},{553,65259,3},{540,65264,3},{535,65264,3}, {535,65259,3},{530,65259,3},{528,65258,3},{525,65259,3},{525,65261,3},{520,65259,3}, {518,65263,3},{513,65263,3},{512,65263,3},{510,65261,3},{512,65251,3},{512,65249,3}, {510,65243,3},{512,65233,3},{512,65226,3},{508,65226,3},{512,65209,3},{513,65209,3}, {515,65213,3},{512,65221,3},{510,65223,3},{510,65236,3},{508,65239,3},{510,65243,3}, {512,65243,3},{513,65253,3},{517,65251,3},{518,65249,3},{518,65248,3},{517,65241,3}, {513,65243,3},{512,65239,3},{513,65231,3},{515,65223,3},{520,65216,3},{523,65216,3}, {525,65219,3},{530,65219,3},{533,65224,3},{535,65223,3},{537,65221,3},{535,65213,3}, {533,65211,3},{530,65213,3},{528,65208,3},{525,65208,3},{523,65211,3},{522,65209,3}, {520,65206,3},{520,65204,3},{518,65204,3},{518,65206,3},{515,65206,3},{515,65208,3}, {512,65208,3},{512,65204,3},{518,65166,3},{518,65164,3},{520,65164,3},{523,65163,3}, {518,65161,3},{520,65154,3},{523,65138,3},{525,65136,3},{525,65139,3},{528,65143,3}, {525,65146,3},{527,65148,3},{528,65146,3},{528,65148,3},{527,65151,3},{527,65154,3}, {523,65159,3},{525,65158,3},{527,65163,3},{528,65164,3},{532,65161,3},{535,65161,3}, {537,65159,3},{538,65156,3},{537,65154,3},{528,65163,3},{527,65161,3},{527,65156,3}, {530,65154,3},{528,65153,3},{530,65148,3},{532,65148,3},{532,65146,3},{535,65146,3}, {532,65144,3},{532,65134,3},{530,65136,3},{530,65141,3},{528,65141,3},{527,65138,3}, {530,65129,3},{528,65128,3},{530,65123,3},{528,65118,3},{530,65116,3},{528,65113,3}, {528,65111,3},{530,65111,3},{532,65108,3},{530,65106,3},{532,65104,3},{527,65101,3}, {530,65098,3},{527,65094,3},{530,65094,3},{530,65089,3},{528,65088,3},{527,65091,3}, {525,65091,3},{525,65084,3},{527,65081,3},{530,65079,3},{527,65079,3},{523,65074,3}, {525,65073,3},{523,65068,3},{523,65066,3},{525,65064,3},{525,65069,3},{527,65068,3}, {532,65069,3},{527,65066,3},{527,65061,3},{525,65063,3},{523,65063,3},{522,65056,3}, {518,65054,3},{517,65056,3},{517,65061,3},{520,65063,3},{522,65066,3},{520,65068,3}, {520,65069,3},{522,65076,3},{518,65079,3},{520,65083,3},{520,65079,3},{522,65079,3}, {523,65083,3},{522,65091,3},{522,65096,3},{525,65098,3},{523,65106,3},{525,65114,3}, {527,65116,3},{528,65131,3},{527,65133,3},{527,65129,3},{523,65136,3},{520,65116,3}, {518,65073,3},{515,65061,3},{513,65041,3},{513,65038,3},{515,65039,3},{515,65034,3}, {522,65036,3},{522,65033,3},{518,65024,3},{522,65021,3},{522,65013,3},{520,65011,3}, {523,65004,3},{520,65003,3},{520,65006,3},{517,65006,3},{515,65003,3},{518,65003,3}, {513,65001,3},{517,64996,3},{515,64994,3},{513,64998,3},{512,64999,3},{512,65008,3}, {513,65008,3},{515,65003,3},{515,65006,3},{517,65008,3},{515,65018,3},{517,65018,3}, {517,65016,3},{518,65016,3},{520,65013,3},{520,65018,3},{517,65026,3},{518,65028,3}, {518,65031,3},{518,65033,3},{513,65034,3},{513,65036,3},{508,64984,3},{512,64981,3}, {510,64979,3},{508,64981,3},{507,64976,3},{502,64948,3},{497,64936,3},{495,64929,3}, {493,64928,3},{487,64914,3},{482,64896,3},{478,64891,3},{477,64879,3},{472,64874,3}, {468,64863,3},{467,64846,3},{462,64843,3},{453,64831,3},{452,64823,3},{452,64816,3}, {447,64811,3},{445,64806,3},{435,64793,3},{435,64784,3},{1015,64739,131}, {1023,64743,3},{1033,64739,3},{1035,64736,3},{1035,64728,3},{1042,64724,3}, {1043,64723,3},{1042,64723,3},{1042,64714,3},{1047,64713,3},{1050,64709,3}, {1062,64708,3},{1068,64708,3},{1072,64706,3},{1075,64706,3},{1077,64704,3}, {1077,64703,3},{1083,64706,3},{1085,64708,3},{1095,64708,3},{1100,64708,3}, {1105,64701,3},{1105,64698,3},{1107,64688,3},{1100,64684,3},{1097,64681,3}, {1097,64673,3},{1097,64668,3},{1102,64669,3},{1108,64676,3},{1113,64676,3}, {1115,64679,3},{1120,64681,3},{1123,64688,3},{1127,64688,3},{1128,64688,3}, {1130,64691,3},{1128,64699,3},{1133,64701,3},{1133,64696,3},{1135,64694,3}, {1137,64699,3},{1142,64689,3},{1143,64684,3},{1150,64683,3},{1147,64678,3}, {1150,64673,3},{1155,64669,3},{1167,64666,3},{1163,64661,3},{1167,64653,3}, {1193,64658,3},{1197,64656,3},{1200,64656,3},{1203,64653,3},{1203,64649,3}, {1205,64646,3},{1208,64644,3},{1215,64648,3},{1220,64644,3},{1218,64639,3}, {1222,64638,3},{1227,64638,3},{1235,64641,3},{1240,64638,3},{1243,64631,3}, {1243,64628,3},{1248,64621,3},{1250,64611,3},{1248,64608,3},{1250,64604,3}, {1248,64603,3},{1248,64599,3},{1245,64596,3},{1240,64603,3},{1237,64604,3}, {1237,64606,3},{1232,64606,3},{1232,64604,3},{1227,64604,3},{1225,64601,3}, {1227,64594,3},{1225,64589,3},{1222,64586,3},{1217,64573,3},{1213,64569,3}, {1208,64569,3},{1203,64566,3},{1203,64561,3},{1205,64556,3},{1205,64549,3}, {1210,64544,3},{1210,64539,3},{1215,64533,3},{1215,64529,3},{1218,64526,3}, {1218,64521,3},{1220,64518,3},{1220,64513,3},{1222,64511,3},{1222,64508,3}, {1218,64506,3},{1222,64503,3},{1218,64503,3},{1218,64501,3},{1217,64501,3}, {1217,64496,3},{1212,64491,3},{1212,64484,3},{1208,64486,3},{1207,64484,3}, {1205,64484,3},{1203,64479,3},{1200,64479,3},{1197,64478,3},{1197,64474,3}, {1190,64471,3},{1192,64463,3},{1197,64461,3},{1203,64456,3},{1207,64458,3}, {1210,64458,3},{1212,64454,3},{1215,64449,3},{1220,64446,3},{1223,64441,3}, {1222,64433,3},{1213,64429,3},{1212,64426,3},{1208,64424,3},{1208,64421,3}, {1205,64421,3},{1203,64419,3},{1202,64418,3},{1200,64411,3},{1203,64404,3}, {1205,64401,3},{1210,64398,3},{1213,64391,3},{1217,64386,3},{1222,64388,3}, {1223,64391,3},{1228,64393,3},{1237,64393,3},{1238,64393,3},{1238,64398,3}, {1247,64401,3},{1250,64399,3},{1248,64398,3},{1253,64396,3},{1253,64394,3}, {1252,64394,3},{1255,64391,3},{1257,64394,3},{1258,64394,3},{1262,64393,3}, {1265,64394,3},{1267,64391,3},{1268,64391,3},{1270,64393,3},{1272,64393,3}, {1273,64398,3},{1277,64396,3},{1278,64398,3},{1283,64396,3},{1283,64394,3}, {1290,64396,3},{1292,64394,3},{1293,64399,3},{1298,64398,3},{1300,64398,3}, {1297,64396,3},{1297,64394,3},{1300,64394,3},{1302,64396,3},{1305,64391,3}, {1308,64393,3},{1312,64384,3},{1315,64383,3},{1318,64384,3},{1322,64381,3}, {1325,64383,3},{1332,64378,3},{1337,64376,3},{1337,64373,3},{1340,64373,3}, {1338,64368,3},{1342,64366,3},{1342,64363,3},{1335,64359,3},{1330,64354,3}, {1335,64353,3},{1338,64348,3},{1343,64349,3},{1347,64349,3},{1348,64346,3}, {1352,64343,3},{1353,64339,3},{1362,64333,3},{1365,64333,3},{1370,64328,3}, {1377,64339,3},{1383,64341,3},{1390,64341,3},{1397,64336,3},{1402,64334,3}, {1407,64336,3},{1408,64338,3},{1417,64338,3},{1428,64333,3},{1428,64328,3}, {1432,64324,3},{1433,64326,3},{1437,64326,3},{1440,64316,3},{1445,64316,3}, {1450,64313,3},{1455,64314,3},{1455,64318,3},{1460,64318,3},{1462,64321,3}, {1465,64321,3},{1467,64318,3},{1470,64319,3},{1470,64314,3},{1473,64314,3}, {1475,64311,3},{1472,64331,3},{1477,64331,3},{1477,64339,3},{1482,64341,3}, {1483,64349,3},{1487,64353,3},{1490,64353,3},{1490,64356,3},{1493,64354,3}, {1503,64356,3},{1505,64354,3},{1505,64351,3},{1508,64353,3},{1510,64351,3}, {1513,64354,3},{1520,64353,3},{1523,64354,3},{1532,64356,3},{1535,64359,3}, {1547,64361,3},{1550,64364,3},{1555,64364,3},{1552,64371,3},{1555,64376,3}, {1558,64379,3},{1560,64386,3},{1562,64386,3},{1565,64386,3},{1563,64394,3}, {1545,64408,3},{1525,64436,3},{1520,64439,3},{1510,64446,3},{1520,64449,3}, {1522,64453,3},{1528,64453,3},{1535,64463,3},{1543,64464,3},{1543,64469,3}, {1543,64474,3},{1543,64481,3},{1543,64486,3},{1543,64491,3},{1543,64496,3}, {1543,64503,3},{1543,64508,3},{1542,64513,3},{1542,64519,3},{1538,64523,3}, {1537,64529,3},{1537,64534,3},{1538,64539,3},{1538,64544,3},{1538,64549,3}, {1538,64556,3},{1540,64561,3},{1542,64564,3},{1543,64571,3},{1543,64578,3}, {1543,64583,3},{1543,64588,3},{1545,64593,3},{1545,64594,3},{1550,64594,3}, {1555,64593,3},{1560,64591,3},{1565,64596,3},{1570,64603,3},{1568,64604,3}, {1563,64604,3},{1558,64603,3},{1553,64603,3},{1552,64603,3},{1550,64608,3}, {1550,64613,3},{1550,64619,3},{1550,64626,3},{1550,64631,3},{1550,64636,3}, {1550,64641,3},{1550,64648,3},{1550,64653,3},{1550,64658,3},{1550,64663,3}, {1550,64669,3},{1550,64674,3},{1550,64679,3},{1550,64684,3},{1550,64691,3}, {1550,64696,3},{1550,64701,3},{1550,64706,3},{1550,64713,3},{1550,64718,3}, {1550,64723,3},{1550,64728,3},{1550,64734,3},{1550,64739,3},{1550,64744,3}, {1550,64751,3},{1550,64756,3},{1550,64761,3},{1550,64766,3},{1550,64771,3}, {1550,64778,3},{1550,64783,3},{1550,64788,3},{1550,64793,3},{1550,64798,3}, {1550,64804,3},{1550,64809,3},{1550,64814,3},{1550,64819,3},{1550,64826,3}, {1550,64831,3},{1550,64836,3},{1550,64841,3},{1550,64848,3},{1550,64853,3}, {1550,64858,3},{1550,64863,3},{1550,64868,3},{1550,64874,3},{1550,64879,3}, {1550,64884,3},{1550,64889,3},{1550,64896,3},{1550,64901,3},{1550,64908,3}, {1550,64913,3},{1550,64918,3},{1550,64923,3},{1550,64928,3},{1550,64934,3}, {1550,64939,3},{1550,64946,3},{1550,64951,3},{1550,64956,3},{1550,64961,3}, {1550,64968,3},{1550,64973,3},{1550,64978,3},{1550,64983,3},{1550,64986,3}, {1555,64988,3},{1560,64988,3},{1565,64989,3},{1570,64991,3},{1575,64991,3}, {1580,64993,3},{1587,64993,3},{1592,64994,3},{1597,64996,3},{1602,64996,3}, {1607,64998,3},{1612,64998,3},{1617,64999,3},{1622,65001,3},{1627,65001,3}, {1632,65003,3},{1637,64998,3},{1640,64991,3},{1643,64986,3},{1647,64981,3}, {1650,64976,3},{1657,64976,3},{1662,64974,3},{1667,64974,3},{1672,64974,3}, {1677,64973,3},{1682,64973,3},{1687,64973,3},{1692,64971,3},{1697,64971,3}, {1702,64971,3},{1708,64969,3},{1713,64969,3},{1718,64968,3},{1723,64968,3}, {1728,64968,3},{1733,64966,3},{1738,64966,3},{1743,64966,3},{1748,64964,3}, {1753,64964,3},{1758,64964,3},{1765,64963,3},{1770,64963,3},{1775,64963,3}, {1780,64961,3},{1785,64961,3},{1790,64961,3},{1795,64959,3},{1802,64959,3}, {1807,64959,3},{1812,64958,3},{1817,64958,3},{1822,64958,3},{1827,64956,3}, {1832,64956,3},{1838,64956,3},{1843,64954,3},{1848,64954,3},{1853,64953,3}, {1858,64953,3},{1863,64953,3},{1868,64951,3},{1873,64951,3},{1878,64951,3}, {1883,64949,3},{1888,64949,3},{1895,64949,3},{1900,64948,3},{1905,64948,3}, {1910,64948,3},{1915,64946,3},{1920,64946,3},{1925,64946,3},{1930,64944,3}, {1935,64944,3},{1940,64944,3},{1945,64943,3},{1950,64943,3},{1955,64943,3}, {1962,64941,3},{1967,64941,3},{1972,64941,3},{1977,64939,3},{1982,64939,3}, {1987,64939,3},{1992,64938,3},{1997,64938,3},{2003,64936,3},{2008,64936,3}, {2013,64936,3},{2018,64934,3},{2023,64934,3},{2028,64934,3},{2033,64933,3}, {2038,64933,3},{2043,64933,3},{2048,64931,3},{2055,64931,3},{2060,64929,3}, {2065,64929,3},{2070,64929,3},{2075,64928,3},{2080,64928,3},{2085,64928,3}, {2090,64926,3},{2095,64926,3},{2102,64924,3},{2107,64924,3},{2112,64924,3}, {2117,64923,3},{2122,64923,3},{2127,64923,3},{2132,64921,3},{2137,64921,3}, {2143,64921,3},{2148,64919,3},{2153,64919,3},{2158,64919,3},{2163,64918,3}, {2168,64918,3},{2173,64918,3},{2178,64916,3},{2183,64916,3},{2188,64916,3}, {2193,64914,3},{2198,64914,3},{2203,64913,3},{2208,64913,3},{2213,64913,3}, {2220,64911,3},{2225,64911,3},{2230,64911,3},{2235,64909,3},{2240,64909,3}, {2245,64909,3},{2250,64908,3},{2255,64908,3},{2260,64908,3},{2265,64906,3}, {2270,64906,3},{2275,64906,3},{2280,64904,3},{2285,64904,3},{2290,64903,3}, {2295,64903,3},{2302,64903,3},{2307,64901,3},{2313,64901,3},{2315,64901,3}, {2317,64901,3},{2322,64899,3},{2327,64899,3},{2332,64898,3},{2338,64898,3}, {2343,64898,3},{2348,64896,3},{2353,64896,3},{2358,64896,3},{2363,64894,3}, {2368,64894,3},{2375,64893,3},{2380,64893,3},{2385,64893,3},{2390,64891,3}, {2395,64891,3},{2400,64891,3},{2405,64889,3},{2412,64889,3},{2417,64888,3}, {2422,64888,3},{2427,64888,3},{2432,64886,3},{2437,64886,3},{2442,64886,3}, {2448,64884,3},{2453,64884,3},{2458,64883,3},{2463,64883,3},{2468,64883,3}, {2473,64881,3},{2478,64881,3},{2485,64881,3},{2490,64879,3},{2495,64879,3}, {2500,64878,3},{2500,64886,3},{2500,64893,3},{2500,64899,3},{2500,64906,3}, {2500,64913,3},{2500,64919,3},{2500,64926,3},{2500,64933,3},{2500,64939,3}, {2500,64946,3},{2500,64953,3},{2500,64959,3},{2500,64966,3},{2500,64973,3}, {2500,64979,3},{2500,64986,3},{2500,64993,3},{2500,64999,3},{2500,65006,3}, {2500,65013,3},{2500,65019,3},{2500,65026,3},{2500,65033,3},{2500,65039,3}, {2500,65046,3},{2500,65053,3},{2500,65056,3},{2497,65061,3},{2493,65066,3}, {2490,65071,3},{2487,65076,3},{2483,65081,3},{2480,65088,3},{2477,65093,3}, {2473,65098,3},{2470,65103,3},{2467,65108,3},{2463,65113,3},{2460,65118,3}, {2457,65124,3},{2453,65129,3},{2450,65134,3},{2447,65139,3},{2443,65144,3}, {2440,65149,3},{2437,65154,3},{2433,65161,3},{2430,65166,3},{2427,65171,3}, {2423,65176,3},{2420,65181,3},{2417,65186,3},{2413,65191,3},{2410,65196,3}, {2407,65201,3},{2403,65208,3},{2400,65213,3},{2397,65218,3},{2393,65223,3}, {2390,65228,3},{2387,65233,3},{2383,65238,3},{2380,65243,3},{2377,65248,3}, {2373,65253,3},{2370,65259,3},{2367,65264,3},{2363,65269,3},{2360,65274,3}, {2357,65279,3},{2353,65284,3},{2350,65289,3},{2347,65294,3},{2343,65299,3}, {2340,65304,3},{2337,65309,3},{2333,65314,3},{2330,65321,3},{2327,65326,3}, {2323,65331,3},{2320,65336,3},{2317,65341,3},{2313,65346,3},{2308,65351,3}, {2305,65356,3},{2302,65361,3},{2298,65366,3},{2295,65371,3},{2292,65376,3}, {2288,65381,3},{2285,65386,3},{2282,65391,3},{2278,65396,3},{2275,65401,3}, {2272,65406,3},{2268,65411,3},{2265,65416,3},{2262,65421,3},{2258,65426,3}, {2255,65431,3},{2252,65436,3},{2248,65443,3},{2243,65448,3},{2240,65453,3}, {2237,65458,3},{2233,65463,3},{2230,65468,3},{2227,65473,3},{2223,65478,3}, {2220,65483,3},{2217,65488,3},{2213,65493,3},{2210,65498,3},{2207,65503,3}, {2203,65508,3},{2200,65513,3},{2195,65518,3},{2192,65523,3},{2188,65528,3}, {2185,65533,3},{2183,0,3},{2180,5,3},{2177,10,3},{2173,15,3},{2170,20,3}, {2167,25,3},{2163,30,3},{2162,35,3},{2158,40,3},{2155,45,3},{2152,50,3}, {2148,55,3},{2145,60,3},{2142,65,3},{2140,70,3},{2137,75,3},{2133,80,3}, {2130,85,3},{2127,90,3},{2123,95,3},{2120,100,3},{2117,105,3},{2115,110,3}, {2112,115,3},{2110,117,3},{2100,120,3},{2080,117,3},{2073,117,3},{2073,132,3}, {2065,137,3},{2063,148,3},{2057,163,3},{2053,167,3},{2042,167,3},{2030,180,3}, {2030,188,3},{2023,190,3},{2023,193,3},{2027,198,3},{2022,208,3},{2023,212,3}, {2028,220,3},{2023,228,3},{2018,235,3},{2005,242,3},{2005,248,3},{2002,252,3}, {2002,257,3},{2000,258,3},{2000,272,3},{1997,282,3},{1995,297,3},{1990,308,3}, {1985,315,3},{1982,323,3},{1957,322,3},{1953,322,3},{1952,325,3},{1945,325,3}, {1942,327,3},{1938,328,3},{1933,320,3},{1925,320,3},{1923,315,3},{1915,312,3}, {1912,313,3},{1907,320,3},{1905,325,3},{1898,333,3},{1898,337,3},{1900,342,3}, {1900,348,3},{1902,353,3},{1902,358,3},{1903,365,3},{1905,370,3},{1905,375,3}, {1907,380,3},{1908,387,3},{1908,392,3},{1910,397,3},{1910,403,3},{1912,408,3}, {1913,413,3},{1913,418,3},{1915,425,3},{1912,425,3},{1907,425,3},{1902,425,3}, {1897,425,3},{1892,425,3},{1887,425,3},{1882,425,3},{1877,425,3},{1872,425,3}, {1867,425,3},{1860,425,3},{1855,425,3},{1850,425,3},{1845,425,3},{1840,425,3}, {1835,425,3},{1828,425,3},{1823,425,3},{1818,425,3},{1813,425,3},{1808,425,3}, {1803,425,3},{1797,425,3},{1792,425,3},{1787,425,3},{1782,425,3},{1777,425,3}, {1772,425,3},{1767,425,3},{1762,425,3},{1757,425,3},{1752,425,3},{1747,425,3}, {1740,425,3},{1735,425,3},{1730,425,3},{1725,425,3},{1720,425,3},{1715,425,3}, {1710,425,3},{1705,425,3},{1700,425,3},{1698,422,3},{1697,422,3},{1690,422,3}, {1685,422,3},{1680,420,3},{1675,420,3},{1670,420,3},{1665,420,3},{1660,420,3}, {1655,420,3},{1650,420,3},{1645,420,3},{1640,420,3},{1635,412,3},{1630,407,3}, {1623,405,3},{1608,398,3},{1598,400,3},{1590,392,3},{1575,390,3},{1572,388,3}, {1567,382,3},{1565,372,3},{1555,362,3},{1550,353,3},{1535,352,3},{1543,303,3}, {1533,302,3},{1535,263,3},{1535,253,3},{1535,247,3},{1533,242,3},{1533,237,3}, {1533,232,3},{1533,227,3},{1533,220,3},{1533,215,3},{1533,210,3},{1532,205,3}, {1532,200,3},{1532,193,3},{1532,188,3},{1532,183,3},{1532,178,3},{1530,172,3}, {1530,167,3},{1530,162,3},{1530,157,3},{1530,152,3},{1530,145,3},{1528,140,3}, {1528,132,3},{1500,100,3},{1498,97,3},{1497,75,3},{1495,70,3},{1500,52,3}, {1497,40,3},{1500,23,3},{1492,23,3},{1493,20,3},{1495,13,3},{1497,7,3}, {1500,0,3},{1508,65513,3},{1500,65498,3},{1508,65493,3},{1508,65464,3}, {1505,65461,3},{1500,65454,3},{1495,65448,3},{1488,65441,3},{1483,65434,3}, {1478,65429,3},{1478,65423,3},{1477,65418,3},{1475,65411,3},{1473,65404,3}, {1468,65398,3},{1465,65391,3},{1460,65384,3},{1457,65378,3},{1452,65371,3}, {1450,65364,3},{1448,65358,3},{1448,65351,3},{1448,65346,3},{1448,65338,3}, {1440,65338,3},{1435,65336,3},{1430,65336,3},{1423,65336,3},{1418,65336,3}, {1415,65326,3},{1425,65306,3},{1428,65289,3},{1422,65276,3},{1413,65268,3}, {1403,65253,3},{1400,65251,3},{1400,65253,3},{1388,65248,3},{1385,65248,3}, {1382,65246,3},{1372,65246,3},{1365,65248,3},{1363,65241,3},{1365,65234,3}, {1362,65233,3},{1362,65231,3},{1365,65229,3},{1368,65226,3},{1368,65218,3}, {1370,65214,3},{1372,65209,3},{1370,65209,3},{1368,65211,3},{1358,65211,3}, {1355,65209,3},{1328,65213,3},{1328,65193,3},{1318,65193,3},{1318,65183,3}, {1320,65181,3},{1320,65178,3},{1327,65169,3},{1330,65163,3},{1335,65158,3}, {1335,65153,3},{1338,65148,3},{1338,65141,3},{1340,65139,3},{1345,65146,3}, {1347,65143,3},{1348,65141,3},{1350,65139,3},{1348,65138,3},{1348,65141,3}, {1347,65141,3},{1343,65138,3},{1343,65134,3},{1342,65133,3},{1340,65128,3}, {1328,65121,3},{1327,65116,3},{1323,65111,3},{1318,65114,3},{1318,65106,3}, {1312,65103,3},{1300,65109,3},{1297,65114,3},{1285,65114,3},{1283,65116,3}, {1277,65116,3},{1273,65113,3},{1272,65106,3},{1275,65101,3},{1273,65089,3}, {1265,65089,3},{1262,65094,3},{1253,65099,3},{1243,65093,3},{1235,65096,3}, {1230,65098,3},{1230,65094,3},{1232,65093,3},{1233,65091,3},{1232,65089,3}, {1228,65089,3},{1220,65079,3},{1213,65083,3},{1213,65076,3},{1212,65074,3}, {1207,65073,3},{1207,65066,3},{1200,65061,3},{1202,65059,3},{1200,65058,3}, {1202,65053,3},{1200,65048,3},{1202,65043,3},{1198,65038,3},{1198,65029,3}, {1195,65021,3},{1187,65011,3},{1183,65009,3},{1185,65008,3},{1183,65004,3}, {1183,64996,3},{1180,65001,3},{1178,65008,3},{1175,65009,3},{1167,65009,3}, {1162,65008,3},{1160,65008,3},{1160,65013,3},{1158,65014,3},{1153,65016,3}, {1145,65014,3},{1142,65016,3},{1140,65011,3},{1125,65011,3},{1120,65006,3}, {1113,65006,3},{1110,64999,3},{1108,64988,3},{1097,64988,3},{1098,64991,3}, {1090,64991,3},{1085,64994,3},{1077,64993,3},{1075,64991,3},{1065,64989,3}, {1062,64988,3},{1055,64989,3},{1047,64984,3},{1043,64984,3},{1045,64979,3}, {1045,64971,3},{1042,64963,3},{1042,64956,3},{1037,64948,3},{1028,64948,3}, {1028,64941,3},{1027,64939,3},{1023,64939,3},{1018,64936,3},{1020,64926,3}, {1023,64916,3},{1025,64916,3},{1025,64914,3},{1032,64913,3},{1032,64918,3}, {1033,64916,3},{1035,64919,3},{1040,64918,3},{1042,64921,3},{1043,64918,3}, {1050,64919,3},{1050,64916,3},{1052,64914,3},{1052,64911,3},{1057,64914,3}, {1060,64914,3},{1063,64918,3},{1067,64913,3},{1072,64914,3},{1073,64911,3}, {1070,64904,3},{1068,64894,3},{1062,64894,3},{1058,64898,3},{1055,64894,3}, {1058,64883,3},{1060,64881,3},{1062,64876,3},{1065,64874,3},{1067,64871,3}, {1060,64868,3},{1058,64869,3},{1053,64869,3},{1052,64868,3},{1048,64868,3}, {1047,64869,3},{1043,64873,3},{1040,64871,3},{1037,64871,3},{1033,64868,3}, {1038,64858,3},{1035,64851,3},{1035,64841,3},{1033,64839,3},{1025,64838,3}, {1022,64841,3},{1018,64841,3},{1015,64838,3},{1013,64834,3},{1015,64833,3}, {1020,64829,3},{1022,64823,3},{1025,64808,3},{1025,64801,3},{1028,64799,3}, {1033,64801,3},{1035,64799,3},{1033,64793,3},{1037,64793,3},{1038,64791,3}, {1042,64791,3},{1045,64791,3},{1047,64788,3},{1045,64784,3},{1042,64783,3}, {1042,64776,3},{1045,64773,3},{1040,64769,3},{1040,64766,3},{1038,64763,3}, {1035,64763,3},{1033,64761,3},{1033,64759,3},{1030,64761,3},{1020,64754,3}, {1020,64749,3},{1017,64748,3},{1015,64743,3},{1015,64739,3},{2767,64219,131}, {2770,64219,3},{2777,64233,3},{2792,64239,3},{2795,64246,3},{2798,64264,3}, {2798,64279,3},{2808,64329,3},{2813,64338,3},{2830,64384,3},{2835,64391,3}, {2850,64403,3},{2868,64426,3},{2873,64428,3},{2900,64479,3},{2910,64493,3}, {2923,64501,3},{2932,64513,3},{2940,64518,3},{2943,64523,3},{2952,64528,3}, {2958,64529,3},{2987,64556,3},{3008,64569,3},{3017,64573,3},{3042,64574,3}, {3043,64571,3},{3055,64566,3},{3055,64563,3},{3062,64556,3},{3063,64548,3}, {3068,64548,3},{3082,64554,3},{3085,64553,3},{3088,64554,3},{3107,64554,3}, {3112,64551,3},{3132,64556,3},{3138,64554,3},{3140,64551,3},{3148,64558,3}, {3152,64559,3},{3163,64568,3},{3170,64568,3},{3193,64589,3},{3203,64599,3}, {3212,64603,3},{3218,64608,3},{3232,64609,3},{3235,64608,3},{3237,64606,3}, {3247,64611,3},{3253,64608,3},{3255,64608,3},{3265,64621,3},{3277,64634,3}, {3287,64648,3},{3312,64673,3},{3318,64674,3},{3327,64684,3},{3327,64691,3}, {3328,64696,3},{3338,64706,3},{3343,64726,3},{3350,64744,3},{3353,64751,3}, {3355,64761,3},{3362,64769,3},{3360,64776,3},{3363,64783,3},{3372,64796,3}, {3372,64801,3},{3380,64814,3},{3387,64833,3},{3393,64843,3},{3405,64856,3}, {3430,64871,3},{3443,64881,3},{3483,64904,3},{3502,64913,3},{3538,64928,3}, {3548,64933,3},{3578,64944,3},{3580,64948,3},{3578,64959,3},{3582,64964,3}, {3583,64974,3},{3582,64976,3},{3585,64983,3},{3590,64988,3},{3592,64994,3}, {3590,65008,3},{3587,65003,3},{3583,65001,3},{3570,65004,3},{3568,65009,3}, {3558,65011,3},{3553,65019,3},{3542,65029,3},{3540,65036,3},{3532,65044,3}, {3522,65066,3},{3515,65101,3},{3518,65109,3},{3520,65123,3},{3525,65134,3}, {3523,65138,3},{3527,65144,3},{3522,65146,3},{3520,65154,3},{3522,65159,3}, {3527,65161,3},{3528,65169,3},{3523,65178,3},{3518,65203,3},{3523,65218,3}, {3528,65224,3},{3528,65226,3},{3528,65229,3},{3543,65239,3},{3543,65241,3}, {3537,65239,3},{3527,65246,3},{3525,65244,3},{3518,65244,3},{3513,65249,3}, {3512,65261,3},{3517,65254,3},{3523,65248,3},{3525,65248,3},{3513,65261,3}, {3510,65273,3},{3510,65281,3},{3510,65288,3},{3515,65294,3},{3510,65311,3}, {3508,65314,3},{3508,65316,3},{3503,65316,3},{3502,65318,3},{3500,65323,3}, {3493,65329,3},{3493,65336,3},{3487,65339,3},{3482,65348,3},{3475,65361,3}, {3472,65358,3},{3465,65356,3},{3462,65351,3},{3450,65363,3},{3448,65368,3}, {3438,65356,3},{3435,65361,3},{3408,65371,3},{3388,65364,3},{3377,65368,3}, {3370,65363,3},{3365,65371,3},{3360,65376,3},{3355,65376,3},{3352,65376,3}, {3338,65369,3},{3327,65369,3},{3323,65371,3},{3320,65376,3},{3315,65378,3}, {3310,65381,3},{3307,65388,3},{3298,65388,3},{3293,65381,3},{3272,65398,3}, {3270,65406,3},{3267,65409,3},{3250,65434,3},{3245,65429,3},{3242,65424,3}, {3240,65416,3},{3233,65411,3},{3230,65413,3},{3222,65411,3},{3217,65406,3}, {3217,65414,3},{3217,65416,3},{3213,65419,3},{3210,65418,3},{3208,65411,3}, {3212,65391,3},{3212,65359,3},{3215,65303,3},{3213,65286,3},{3208,65263,3}, {3208,65251,3},{3203,65243,3},{3190,65241,3},{3185,65239,3},{3183,65236,3}, {3175,65209,3},{3173,65198,3},{3167,65184,3},{3172,65168,3},{3170,65154,3}, {3165,65153,3},{3148,65151,3},{3143,65154,3},{3143,65161,3},{3140,65164,3}, {3133,65156,3},{3123,65156,3},{3117,65153,3},{3115,65156,3},{3117,65159,3}, {3118,65163,3},{3117,65166,3},{3112,65171,3},{3110,65176,3},{3102,65176,3}, {3097,65173,3},{3093,65164,3},{3093,65151,3},{3092,65134,3},{3077,65119,3}, {3068,65101,3},{3065,65096,3},{3063,65089,3},{3063,65078,3},{3058,65068,3}, {3050,65044,3},{3045,65039,3},{3025,65028,3},{3010,65014,3},{3000,65001,3}, {2995,64988,3},{2990,64983,3},{2988,64958,3},{2983,64936,3},{2985,64921,3}, {2980,64914,3},{2982,64904,3},{2980,64896,3},{2983,64889,3},{2982,64888,3}, {2975,64888,3},{2963,64886,3},{2957,64878,3},{2957,64866,3},{2962,64853,3}, {2962,64838,3},{2963,64824,3},{2953,64806,3},{2947,64801,3},{2940,64793,3}, {2938,64788,3},{2940,64778,3},{2938,64771,3},{2932,64766,3},{2930,64761,3}, {2925,64756,3},{2915,64739,3},{2912,64736,3},{2905,64719,3},{2895,64706,3}, {2892,64699,3},{2885,64694,3},{2883,64689,3},{2878,64686,3},{2872,64669,3}, {2867,64669,3},{2860,64669,3},{2853,64669,3},{2847,64669,3},{2840,64669,3}, {2835,64669,3},{2830,64669,3},{2823,64669,3},{2817,64669,3},{2810,64669,3}, {2803,64669,3},{2797,64669,3},{2790,64669,3},{2783,64669,3},{2777,64669,3}, {2770,64669,3},{2767,64669,3},{2767,64666,3},{2767,64659,3},{2767,64653,3}, {2767,64646,3},{2767,64639,3},{2767,64633,3},{2767,64626,3},{2767,64619,3}, {2767,64613,3},{2767,64606,3},{2767,64599,3},{2767,64593,3},{2767,64586,3}, {2767,64579,3},{2767,64573,3},{2767,64566,3},{2767,64559,3},{2767,64553,3}, {2767,64546,3},{2767,64539,3},{2767,64533,3},{2767,64526,3},{2767,64519,3}, {2767,64513,3},{2767,64506,3},{2767,64499,3},{2767,64493,3},{2767,64486,3}, {2767,64479,3},{2767,64473,3},{2767,64466,3},{2767,64459,3},{2767,64453,3}, {2767,64446,3},{2767,64439,3},{2767,64433,3},{2767,64426,3},{2767,64419,3}, {2767,64413,3},{2767,64406,3},{2767,64399,3},{2767,64393,3},{2767,64386,3}, {2767,64379,3},{2767,64373,3},{2767,64366,3},{2767,64359,3},{2767,64353,3}, {2767,64346,3},{2767,64339,3},{2767,64333,3},{2767,64326,3},{2767,64319,3}, {2767,64313,3},{2767,64306,3},{2767,64299,3},{2767,64293,3},{2767,64286,3}, {2767,64279,3},{2767,64273,3},{2767,64266,3},{2767,64259,3},{2767,64253,3}, {2767,64244,3},{2767,64238,3},{2767,64231,3},{2767,64224,3},{2767,64219,3}, {1603,63884,131},{1630,63883,3},{1648,63889,3},{1662,63889,3},{1697,63903,3}, {1707,63911,3},{1737,63923,3},{1773,63933,3},{1808,63933,3},{1837,63929,3}, {1842,63931,3},{1867,63923,3},{1892,63918,3},{1913,63908,3},{1920,63901,3}, {1925,63889,3},{1938,63883,3},{1938,63884,3},{1937,63891,3},{1940,63898,3}, {1947,63904,3},{1952,63908,3},{1953,63904,3},{1947,63898,3},{1953,63901,3}, {1953,63899,3},{1947,63893,3},{1942,63893,3},{1940,63889,3},{1945,63889,3}, {1950,63893,3},{1953,63894,3},{1963,63903,3},{1973,63909,3},{1975,63909,3}, {1978,63913,3},{1983,63911,3},{1985,63913,3},{1987,63913,3},{1985,63909,3}, {1988,63911,3},{1990,63908,3},{1987,63906,3},{1988,63904,3},{2000,63914,3}, {2007,63914,3},{2013,63909,3},{2015,63913,3},{2022,63916,3},{2028,63913,3}, {2030,63909,3},{2033,63908,3},{2035,63906,3},{2037,63904,3},{2042,63901,3}, {2043,63903,3},{2058,63896,3},{2058,63894,3},{2065,63893,3},{2063,63891,3}, {2065,63889,3},{2067,63894,3},{2067,63888,3},{2072,63886,3},{2073,63883,3}, {2058,63883,3},{2057,63881,3},{2065,63873,3},{2068,63868,3},{2070,63871,3}, {2073,63869,3},{2077,63866,3},{2093,63858,3},{2093,63856,3},{2115,63846,3}, {2117,63843,3},{2107,63839,3},{2105,63834,3},{2102,63834,3},{2102,63836,3}, {2097,63836,3},{2092,63836,3},{2090,63831,3},{2085,63834,3},{2077,63831,3}, {2082,63829,3},{2087,63829,3},{2093,63829,3},{2097,63831,3},{2102,63833,3}, {2107,63834,3},{2112,63836,3},{2118,63838,3},{2123,63839,3},{2128,63839,3}, {2133,63841,3},{2133,63846,3},{2133,63851,3},{2133,63858,3},{2133,63863,3}, {2133,63868,3},{2133,63874,3},{2133,63879,3},{2133,63884,3},{2133,63891,3}, {2133,63896,3},{2133,63901,3},{2133,63906,3},{2133,63913,3},{2133,63918,3}, {2133,63923,3},{2133,63929,3},{2133,63934,3},{2133,63941,3},{2133,63946,3}, {2133,63953,3},{2133,63958,3},{2133,63964,3},{2133,63969,3},{2133,63974,3}, {2133,63981,3},{2133,63986,3},{2133,63991,3},{2133,63998,3},{2133,64003,3}, {2133,64008,3},{2133,64013,3},{2133,64019,3},{2133,64024,3},{2133,64029,3}, {2133,64036,3},{2133,64041,3},{2133,64048,3},{2133,64053,3},{2133,64058,3}, {2133,64064,3},{2133,64069,3},{2133,64074,3},{2133,64079,3},{2133,64086,3}, {2133,64091,3},{2133,64096,3},{2135,64103,3},{2135,64109,3},{2135,64114,3}, {2135,64121,3},{2135,64126,3},{2135,64131,3},{2135,64138,3},{2135,64143,3}, {2135,64149,3},{2135,64154,3},{2135,64159,3},{2135,64166,3},{2133,64171,3}, {2133,64176,3},{2133,64181,3},{2133,64188,3},{2133,64193,3},{2133,64198,3}, {2133,64204,3},{2133,64209,3},{2133,64214,3},{2133,64221,3},{2133,64226,3}, {2133,64231,3},{2133,64236,3},{2138,64236,3},{2143,64236,3},{2148,64234,3}, {2155,64234,3},{2160,64234,3},{2165,64234,3},{2170,64234,3},{2175,64233,3}, {2180,64233,3},{2185,64233,3},{2190,64233,3},{2195,64231,3},{2200,64231,3}, {2207,64231,3},{2212,64231,3},{2217,64231,3},{2222,64229,3},{2227,64229,3}, {2232,64229,3},{2237,64229,3},{2243,64229,3},{2248,64228,3},{2253,64228,3}, {2258,64226,3},{2263,64224,3},{2268,64223,3},{2273,64221,3},{2280,64223,3}, {2285,64224,3},{2290,64226,3},{2295,64229,3},{2300,64234,3},{2303,64238,3}, {2307,64243,3},{2310,64249,3},{2313,64254,3},{2317,64259,3},{2320,64264,3}, {2323,64271,3},{2327,64276,3},{2330,64283,3},{2330,64288,3},{2332,64294,3}, {2332,64299,3},{2335,64306,3},{2337,64311,3},{2340,64316,3},{2342,64323,3}, {2343,64328,3},{2345,64334,3},{2345,64336,3},{2353,64336,3},{2358,64336,3}, {2365,64336,3},{2372,64336,3},{2377,64336,3},{2383,64336,3},{2390,64336,3}, {2397,64336,3},{2403,64336,3},{2410,64336,3},{2417,64336,3},{2423,64336,3}, {2430,64336,3},{2437,64336,3},{2443,64336,3},{2450,64336,3},{2457,64336,3}, {2463,64336,3},{2470,64336,3},{2477,64336,3},{2483,64336,3},{2490,64336,3}, {2497,64336,3},{2503,64336,3},{2510,64336,3},{2517,64336,3},{2523,64336,3}, {2530,64336,3},{2537,64336,3},{2543,64336,3},{2550,64336,3},{2557,64336,3}, {2563,64336,3},{2570,64336,3},{2577,64336,3},{2583,64336,3},{2590,64336,3}, {2597,64336,3},{2600,64336,3},{2600,64343,3},{2600,64349,3},{2600,64356,3}, {2600,64363,3},{2600,64369,3},{2600,64376,3},{2600,64383,3},{2600,64389,3}, {2600,64396,3},{2600,64403,3},{2600,64409,3},{2600,64416,3},{2600,64423,3}, {2600,64429,3},{2600,64436,3},{2600,64443,3},{2600,64449,3},{2600,64456,3}, {2600,64463,3},{2600,64469,3},{2600,64476,3},{2600,64483,3},{2600,64489,3}, {2600,64496,3},{2600,64503,3},{2600,64509,3},{2600,64516,3},{2600,64523,3}, {2600,64529,3},{2600,64536,3},{2600,64543,3},{2600,64549,3},{2600,64556,3}, {2600,64563,3},{2600,64569,3},{2600,64576,3},{2600,64583,3},{2600,64589,3}, {2600,64596,3},{2600,64603,3},{2600,64609,3},{2600,64616,3},{2600,64623,3}, {2600,64629,3},{2600,64636,3},{2600,64643,3},{2600,64649,3},{2600,64656,3}, {2600,64663,3},{2600,64669,3},{2607,64669,3},{2612,64669,3},{2617,64669,3}, {2623,64669,3},{2630,64669,3},{2637,64669,3},{2643,64669,3},{2650,64669,3}, {2655,64669,3},{2660,64669,3},{2667,64669,3},{2673,64669,3},{2678,64669,3}, {2683,64669,3},{2690,64669,3},{2697,64669,3},{2702,64669,3},{2707,64669,3}, {2713,64669,3},{2720,64669,3},{2728,64669,3},{2725,64676,3},{2723,64681,3}, {2720,64686,3},{2717,64691,3},{2713,64698,3},{2710,64703,3},{2707,64708,3}, {2703,64714,3},{2700,64719,3},{2698,64724,3},{2695,64731,3},{2692,64736,3}, {2688,64741,3},{2685,64746,3},{2682,64753,3},{2678,64758,3},{2675,64763,3}, {2672,64768,3},{2670,64774,3},{2667,64779,3},{2663,64784,3},{2660,64791,3}, {2657,64796,3},{2653,64801,3},{2650,64806,3},{2647,64813,3},{2643,64818,3}, {2640,64823,3},{2637,64828,3},{2635,64834,3},{2632,64839,3},{2628,64844,3}, {2625,64849,3},{2622,64856,3},{2618,64861,3},{2615,64866,3},{2612,64871,3}, {2608,64878,3},{2605,64883,3},{2602,64888,3},{2598,64893,3},{2595,64898,3}, {2593,64904,3},{2590,64909,3},{2587,64914,3},{2583,64919,3},{2580,64926,3}, {2577,64931,3},{2573,64936,3},{2570,64941,3},{2567,64946,3},{2563,64953,3}, {2560,64958,3},{2557,64963,3},{2553,64968,3},{2550,64973,3},{2547,64979,3}, {2543,64984,3},{2540,64989,3},{2538,64994,3},{2535,64999,3},{2532,65006,3}, {2528,65011,3},{2525,65016,3},{2522,65021,3},{2518,65026,3},{2515,65031,3}, {2512,65038,3},{2508,65043,3},{2505,65048,3},{2502,65053,3},{2500,65056,3}, {2500,65053,3},{2500,65046,3},{2500,65039,3},{2500,65033,3},{2500,65026,3}, {2500,65019,3},{2500,65013,3},{2500,65006,3},{2500,64999,3},{2500,64993,3}, {2500,64986,3},{2500,64979,3},{2500,64973,3},{2500,64966,3},{2500,64959,3}, {2500,64953,3},{2500,64946,3},{2500,64939,3},{2500,64933,3},{2500,64926,3}, {2500,64919,3},{2500,64913,3},{2500,64906,3},{2500,64899,3},{2500,64893,3}, {2500,64886,3},{2500,64878,3},{2495,64879,3},{2490,64879,3},{2485,64881,3}, {2478,64881,3},{2473,64881,3},{2468,64883,3},{2463,64883,3},{2458,64883,3}, {2453,64884,3},{2448,64884,3},{2442,64886,3},{2437,64886,3},{2432,64886,3}, {2427,64888,3},{2422,64888,3},{2417,64888,3},{2412,64889,3},{2405,64889,3}, {2400,64891,3},{2395,64891,3},{2390,64891,3},{2385,64893,3},{2380,64893,3}, {2375,64893,3},{2368,64894,3},{2363,64894,3},{2358,64896,3},{2353,64896,3}, {2348,64896,3},{2343,64898,3},{2338,64898,3},{2332,64898,3},{2327,64899,3}, {2322,64899,3},{2317,64901,3},{2315,64901,3},{2313,64901,3},{2307,64901,3}, {2302,64903,3},{2295,64903,3},{2290,64903,3},{2285,64904,3},{2280,64904,3}, {2275,64906,3},{2270,64906,3},{2265,64906,3},{2260,64908,3},{2255,64908,3}, {2250,64908,3},{2245,64909,3},{2240,64909,3},{2235,64909,3},{2230,64911,3}, {2225,64911,3},{2220,64911,3},{2213,64913,3},{2208,64913,3},{2203,64913,3}, {2198,64914,3},{2193,64914,3},{2188,64916,3},{2183,64916,3},{2178,64916,3}, {2173,64918,3},{2168,64918,3},{2163,64918,3},{2158,64919,3},{2153,64919,3}, {2148,64919,3},{2143,64921,3},{2137,64921,3},{2132,64921,3},{2127,64923,3}, {2122,64923,3},{2117,64923,3},{2112,64924,3},{2107,64924,3},{2102,64924,3}, {2095,64926,3},{2090,64926,3},{2085,64928,3},{2080,64928,3},{2075,64928,3}, {2070,64929,3},{2065,64929,3},{2060,64929,3},{2055,64931,3},{2048,64931,3}, {2043,64933,3},{2038,64933,3},{2033,64933,3},{2028,64934,3},{2023,64934,3}, {2018,64934,3},{2013,64936,3},{2008,64936,3},{2003,64936,3},{1997,64938,3}, {1992,64938,3},{1987,64939,3},{1982,64939,3},{1977,64939,3},{1972,64941,3}, {1967,64941,3},{1962,64941,3},{1955,64943,3},{1950,64943,3},{1945,64943,3}, {1940,64944,3},{1935,64944,3},{1930,64944,3},{1925,64946,3},{1920,64946,3}, {1915,64946,3},{1910,64948,3},{1905,64948,3},{1900,64948,3},{1895,64949,3}, {1888,64949,3},{1883,64949,3},{1878,64951,3},{1873,64951,3},{1868,64951,3}, {1863,64953,3},{1858,64953,3},{1853,64953,3},{1848,64954,3},{1843,64954,3}, {1838,64956,3},{1832,64956,3},{1827,64956,3},{1822,64958,3},{1817,64958,3}, {1812,64958,3},{1807,64959,3},{1802,64959,3},{1795,64959,3},{1790,64961,3}, {1785,64961,3},{1780,64961,3},{1775,64963,3},{1770,64963,3},{1765,64963,3}, {1758,64964,3},{1753,64964,3},{1748,64964,3},{1743,64966,3},{1738,64966,3}, {1733,64966,3},{1728,64968,3},{1723,64968,3},{1718,64968,3},{1713,64969,3}, {1708,64969,3},{1702,64971,3},{1697,64971,3},{1692,64971,3},{1687,64973,3}, {1682,64973,3},{1677,64973,3},{1672,64974,3},{1667,64974,3},{1662,64974,3}, {1657,64976,3},{1650,64976,3},{1647,64981,3},{1643,64986,3},{1640,64991,3}, {1637,64998,3},{1632,65003,3},{1627,65001,3},{1622,65001,3},{1617,64999,3}, {1612,64998,3},{1607,64998,3},{1602,64996,3},{1597,64996,3},{1592,64994,3}, {1587,64993,3},{1580,64993,3},{1575,64991,3},{1570,64991,3},{1565,64989,3}, {1560,64988,3},{1555,64988,3},{1550,64986,3},{1550,64983,3},{1550,64978,3}, {1550,64973,3},{1550,64968,3},{1550,64961,3},{1550,64956,3},{1550,64951,3}, {1550,64946,3},{1550,64939,3},{1550,64934,3},{1550,64928,3},{1550,64923,3}, {1550,64918,3},{1550,64913,3},{1550,64908,3},{1550,64901,3},{1550,64896,3}, {1550,64889,3},{1550,64884,3},{1550,64879,3},{1550,64874,3},{1550,64868,3}, {1550,64863,3},{1550,64858,3},{1550,64853,3},{1550,64848,3},{1550,64841,3}, {1550,64836,3},{1550,64831,3},{1550,64826,3},{1550,64819,3},{1550,64814,3}, {1550,64809,3},{1550,64804,3},{1550,64798,3},{1550,64793,3},{1550,64788,3}, {1550,64783,3},{1550,64778,3},{1550,64771,3},{1550,64766,3},{1550,64761,3}, {1550,64756,3},{1550,64751,3},{1550,64744,3},{1550,64739,3},{1550,64734,3}, {1550,64728,3},{1550,64723,3},{1550,64718,3},{1550,64713,3},{1550,64706,3}, {1550,64701,3},{1550,64696,3},{1550,64691,3},{1550,64684,3},{1550,64679,3}, {1550,64674,3},{1550,64669,3},{1550,64663,3},{1550,64658,3},{1550,64653,3}, {1550,64648,3},{1550,64641,3},{1550,64636,3},{1550,64631,3},{1550,64626,3}, {1550,64619,3},{1550,64613,3},{1550,64608,3},{1552,64603,3},{1553,64603,3}, {1558,64603,3},{1563,64604,3},{1568,64604,3},{1570,64603,3},{1565,64596,3}, {1560,64591,3},{1555,64593,3},{1550,64594,3},{1545,64594,3},{1545,64593,3}, {1543,64588,3},{1543,64583,3},{1543,64578,3},{1543,64571,3},{1542,64564,3}, {1540,64561,3},{1538,64556,3},{1538,64549,3},{1538,64544,3},{1538,64539,3}, {1537,64534,3},{1537,64529,3},{1538,64523,3},{1542,64519,3},{1542,64513,3}, {1543,64508,3},{1543,64503,3},{1543,64496,3},{1543,64491,3},{1543,64486,3}, {1543,64481,3},{1543,64474,3},{1543,64469,3},{1543,64464,3},{1535,64463,3}, {1528,64453,3},{1522,64453,3},{1520,64449,3},{1510,64446,3},{1520,64439,3}, {1525,64436,3},{1545,64408,3},{1563,64394,3},{1565,64386,3},{1562,64386,3}, {1560,64386,3},{1558,64379,3},{1555,64376,3},{1552,64371,3},{1555,64364,3}, {1550,64364,3},{1547,64361,3},{1535,64359,3},{1532,64356,3},{1523,64354,3}, {1520,64353,3},{1513,64354,3},{1510,64351,3},{1508,64353,3},{1505,64351,3}, {1505,64354,3},{1503,64356,3},{1493,64354,3},{1490,64356,3},{1490,64353,3}, {1487,64353,3},{1483,64349,3},{1482,64341,3},{1477,64339,3},{1477,64331,3}, {1472,64331,3},{1477,64324,3},{1478,64321,3},{1477,64311,3},{1483,64303,3}, {1485,64298,3},{1490,64291,3},{1495,64291,3},{1502,64288,3},{1505,64281,3}, {1508,64274,3},{1510,64271,3},{1508,64266,3},{1515,64258,3},{1520,64258,3}, {1522,64251,3},{1527,64246,3},{1527,64251,3},{1530,64253,3},{1533,64249,3}, {1537,64243,3},{1543,64243,3},{1545,64241,3},{1550,64239,3},{1548,64229,3}, {1552,64226,3},{1558,64226,3},{1562,64219,3},{1562,64213,3},{1567,64211,3}, {1570,64214,3},{1577,64208,3},{1578,64208,3},{1580,64209,3},{1583,64206,3}, {1588,64206,3},{1590,64203,3},{1593,64204,3},{1598,64199,3},{1603,64198,3}, {1607,64196,3},{1608,64193,3},{1610,64189,3},{1608,64188,3},{1608,64186,3}, {1608,64184,3},{1612,64184,3},{1613,64188,3},{1615,64186,3},{1613,64184,3}, {1613,64178,3},{1610,64168,3},{1613,64164,3},{1617,64166,3},{1618,64164,3}, {1615,64161,3},{1612,64151,3},{1615,64149,3},{1620,64149,3},{1623,64139,3}, {1627,64139,3},{1630,64138,3},{1633,64139,3},{1635,64136,3},{1635,64133,3}, {1655,64114,3},{1653,64109,3},{1658,64108,3},{1658,64103,3},{1663,64103,3}, {1663,64101,3},{1663,64098,3},{1665,64093,3},{1663,64091,3},{1663,64086,3}, {1663,64081,3},{1663,64073,3},{1665,64071,3},{1663,64064,3},{1662,64063,3}, {1665,64059,3},{1663,64058,3},{1665,64054,3},{1663,64051,3},{1665,64048,3}, {1663,64046,3},{1665,64041,3},{1668,64039,3},{1670,64038,3},{1663,64034,3}, {1663,64031,3},{1667,64028,3},{1667,64026,3},{1665,64024,3},{1662,64028,3}, {1658,64024,3},{1657,64004,3},{1655,63996,3},{1658,63991,3},{1657,63986,3}, {1652,63983,3},{1652,63974,3},{1650,63973,3},{1648,63968,3},{1650,63951,3}, {1652,63946,3},{1648,63939,3},{1650,63936,3},{1648,63931,3},{1652,63926,3}, {1655,63926,3},{1655,63924,3},{1655,63921,3},{1652,63918,3},{1652,63908,3}, {1645,63904,3},{1623,63898,3},{1618,63889,3},{1610,63889,3},{1605,63888,3}, {1610,63886,3},{1603,63884,3},{2077,63831,131},{2085,63826,3},{2090,63828,3}, {2095,63826,3},{2098,63829,3},{2110,63829,3},{2117,63833,3},{2120,63831,3}, {2127,63833,3},{2133,63833,3},{2143,63834,3},{2157,63839,3},{2167,63839,3}, {2173,63841,3},{2177,63839,3},{2182,63839,3},{2195,63844,3},{2202,63849,3}, {2208,63851,3},{2222,63861,3},{2222,63863,3},{2227,63864,3},{2230,63869,3}, {2227,63874,3},{2233,63888,3},{2252,63893,3},{2257,63901,3},{2277,63903,3}, {2285,63908,3},{2287,63904,3},{2288,63906,3},{2290,63908,3},{2290,63911,3}, {2293,63916,3},{2300,63921,3},{2307,63921,3},{2308,63918,3},{2307,63914,3}, {2308,63914,3},{2312,63916,3},{2318,63923,3},{2332,63928,3},{2342,63936,3}, {2352,63939,3},{2358,63944,3},{2363,63948,3},{2368,63953,3},{2373,63954,3}, {2378,63959,3},{2387,63959,3},{2392,63958,3},{2385,63956,3},{2383,63951,3}, {2380,63948,3},{2368,63941,3},{2365,63936,3},{2367,63936,3},{2370,63939,3}, {2382,63944,3},{2388,63951,3},{2397,63961,3},{2402,63974,3},{2415,63984,3}, {2418,63989,3},{2422,63991,3},{2433,64006,3},{2443,64013,3},{2448,64018,3}, {2453,64033,3},{2463,64038,3},{2468,64046,3},{2478,64048,3},{2492,64053,3}, {2520,64051,3},{2532,64053,3},{2543,64058,3},{2552,64064,3},{2558,64068,3}, {2577,64073,3},{2593,64084,3},{2602,64088,3},{2617,64088,3},{2627,64094,3}, {2630,64108,3},{2637,64113,3},{2642,64118,3},{2645,64134,3},{2663,64164,3}, {2673,64179,3},{2690,64188,3},{2710,64194,3},{2718,64196,3},{2732,64206,3}, {2745,64211,3},{2767,64219,3},{2767,64224,3},{2767,64231,3},{2767,64238,3}, {2767,64244,3},{2767,64253,3},{2767,64259,3},{2767,64266,3},{2767,64273,3}, {2767,64279,3},{2767,64286,3},{2767,64293,3},{2767,64299,3},{2767,64306,3}, {2767,64313,3},{2767,64319,3},{2767,64326,3},{2767,64333,3},{2767,64339,3}, {2767,64346,3},{2767,64353,3},{2767,64359,3},{2767,64366,3},{2767,64373,3}, {2767,64379,3},{2767,64386,3},{2767,64393,3},{2767,64399,3},{2767,64406,3}, {2767,64413,3},{2767,64419,3},{2767,64426,3},{2767,64433,3},{2767,64439,3}, {2767,64446,3},{2767,64453,3},{2767,64459,3},{2767,64466,3},{2767,64473,3}, {2767,64479,3},{2767,64486,3},{2767,64493,3},{2767,64499,3},{2767,64506,3}, {2767,64513,3},{2767,64519,3},{2767,64526,3},{2767,64533,3},{2767,64539,3}, {2767,64546,3},{2767,64553,3},{2767,64559,3},{2767,64566,3},{2767,64573,3}, {2767,64579,3},{2767,64586,3},{2767,64593,3},{2767,64599,3},{2767,64606,3}, {2767,64613,3},{2767,64619,3},{2767,64626,3},{2767,64633,3},{2767,64639,3}, {2767,64646,3},{2767,64653,3},{2767,64659,3},{2767,64666,3},{2767,64669,3}, {2728,64669,3},{2720,64669,3},{2713,64669,3},{2707,64669,3},{2702,64669,3}, {2697,64669,3},{2690,64669,3},{2683,64669,3},{2678,64669,3},{2673,64669,3}, {2667,64669,3},{2660,64669,3},{2655,64669,3},{2650,64669,3},{2643,64669,3}, {2637,64669,3},{2630,64669,3},{2623,64669,3},{2617,64669,3},{2612,64669,3}, {2607,64669,3},{2600,64669,3},{2600,64663,3},{2600,64656,3},{2600,64649,3}, {2600,64643,3},{2600,64636,3},{2600,64629,3},{2600,64623,3},{2600,64616,3}, {2600,64609,3},{2600,64603,3},{2600,64596,3},{2600,64589,3},{2600,64583,3}, {2600,64576,3},{2600,64569,3},{2600,64563,3},{2600,64556,3},{2600,64549,3}, {2600,64543,3},{2600,64536,3},{2600,64529,3},{2600,64523,3},{2600,64516,3}, {2600,64509,3},{2600,64503,3},{2600,64496,3},{2600,64489,3},{2600,64483,3}, {2600,64476,3},{2600,64469,3},{2600,64463,3},{2600,64456,3},{2600,64449,3}, {2600,64443,3},{2600,64436,3},{2600,64429,3},{2600,64423,3},{2600,64416,3}, {2600,64409,3},{2600,64403,3},{2600,64396,3},{2600,64389,3},{2600,64383,3}, {2600,64376,3},{2600,64369,3},{2600,64363,3},{2600,64356,3},{2600,64349,3}, {2600,64343,3},{2600,64336,3},{2597,64336,3},{2590,64336,3},{2583,64336,3}, {2577,64336,3},{2570,64336,3},{2563,64336,3},{2557,64336,3},{2550,64336,3}, {2543,64336,3},{2537,64336,3},{2530,64336,3},{2523,64336,3},{2517,64336,3}, {2510,64336,3},{2503,64336,3},{2497,64336,3},{2490,64336,3},{2483,64336,3}, {2477,64336,3},{2470,64336,3},{2463,64336,3},{2457,64336,3},{2450,64336,3}, {2443,64336,3},{2437,64336,3},{2430,64336,3},{2423,64336,3},{2417,64336,3}, {2410,64336,3},{2403,64336,3},{2397,64336,3},{2390,64336,3},{2383,64336,3}, {2377,64336,3},{2372,64336,3},{2365,64336,3},{2358,64336,3},{2353,64336,3}, {2345,64336,3},{2345,64334,3},{2343,64328,3},{2342,64323,3},{2340,64316,3}, {2337,64311,3},{2335,64306,3},{2332,64299,3},{2332,64294,3},{2330,64288,3}, {2330,64283,3},{2327,64276,3},{2323,64271,3},{2320,64264,3},{2317,64259,3}, {2313,64254,3},{2310,64249,3},{2307,64243,3},{2303,64238,3},{2300,64234,3}, {2295,64229,3},{2290,64226,3},{2285,64224,3},{2280,64223,3},{2273,64221,3}, {2268,64223,3},{2263,64224,3},{2258,64226,3},{2253,64228,3},{2248,64228,3}, {2243,64229,3},{2237,64229,3},{2232,64229,3},{2227,64229,3},{2222,64229,3}, {2217,64231,3},{2212,64231,3},{2207,64231,3},{2200,64231,3},{2195,64231,3}, {2190,64233,3},{2185,64233,3},{2180,64233,3},{2175,64233,3},{2170,64234,3}, {2165,64234,3},{2160,64234,3},{2155,64234,3},{2148,64234,3},{2143,64236,3}, {2138,64236,3},{2133,64236,3},{2133,64231,3},{2133,64226,3},{2133,64221,3}, {2133,64214,3},{2133,64209,3},{2133,64204,3},{2133,64198,3},{2133,64193,3}, {2133,64188,3},{2133,64181,3},{2133,64176,3},{2133,64171,3},{2135,64166,3}, {2135,64159,3},{2135,64154,3},{2135,64149,3},{2135,64143,3},{2135,64138,3}, {2135,64131,3},{2135,64126,3},{2135,64121,3},{2135,64114,3},{2135,64109,3}, {2135,64103,3},{2133,64096,3},{2133,64091,3},{2133,64086,3},{2133,64079,3}, {2133,64074,3},{2133,64069,3},{2133,64064,3},{2133,64058,3},{2133,64053,3}, {2133,64048,3},{2133,64041,3},{2133,64036,3},{2133,64029,3},{2133,64024,3}, {2133,64019,3},{2133,64013,3},{2133,64008,3},{2133,64003,3},{2133,63998,3}, {2133,63991,3},{2133,63986,3},{2133,63981,3},{2133,63974,3},{2133,63969,3}, {2133,63964,3},{2133,63958,3},{2133,63953,3},{2133,63946,3},{2133,63941,3}, {2133,63934,3},{2133,63929,3},{2133,63923,3},{2133,63918,3},{2133,63913,3}, {2133,63906,3},{2133,63901,3},{2133,63896,3},{2133,63891,3},{2133,63884,3}, {2133,63879,3},{2133,63874,3},{2133,63868,3},{2133,63863,3},{2133,63858,3}, {2133,63851,3},{2133,63846,3},{2133,63841,3},{2128,63839,3},{2123,63839,3}, {2118,63838,3},{2112,63836,3},{2107,63834,3},{2102,63833,3},{2097,63831,3}, {2093,63829,3},{2087,63829,3},{2082,63829,3},{2077,63831,3},{692,64388,131}, {692,64389,3},{693,64391,3},{693,64394,3},{697,64393,3},{702,64398,3},{707,64398,3}, {710,64403,3},{715,64401,3},{717,64404,3},{722,64406,3},{725,64418,3},{728,64418,3}, {738,64426,3},{742,64431,3},{752,64443,3},{750,64444,3},{753,64449,3},{760,64456,3}, {773,64468,3},{777,64476,3},{803,64476,3},{805,64479,3},{812,64483,3},{813,64486,3}, {815,64501,3},{818,64506,3},{822,64506,3},{827,64504,3},{832,64508,3},{837,64506,3}, {843,64509,3},{848,64511,3},{850,64514,3},{848,64514,3},{852,64519,3},{853,64519,3}, {852,64528,3},{850,64531,3},{843,64529,3},{842,64531,3},{845,64538,3},{847,64539,3}, {850,64544,3},{850,64551,3},{848,64551,3},{852,64558,3},{853,64556,3},{857,64559,3}, {853,64563,3},{852,64561,3},{847,64564,3},{843,64566,3},{847,64566,3},{848,64566,3}, {850,64568,3},{847,64573,3},{843,64573,3},{840,64569,3},{838,64569,3},{840,64576,3}, {842,64578,3},{838,64581,3},{837,64584,3},{835,64588,3},{832,64584,3},{827,64586,3}, {825,64584,3},{822,64586,3},{818,64584,3},{817,64589,3},{807,64591,3},{803,64589,3}, {805,64593,3},{802,64596,3},{795,64593,3},{790,64593,3},{783,64594,3},{780,64599,3}, {775,64601,3},{765,64598,3},{762,64601,3},{757,64598,3},{748,64594,3},{743,64589,3}, {737,64588,3},{742,64594,3},{738,64596,3},{740,64599,3},{743,64599,3},{742,64603,3}, {743,64604,3},{742,64606,3},{738,64608,3},{738,64616,3},{732,64616,3},{728,64619,3}, {728,64623,3},{725,64623,3},{723,64626,3},{720,64624,3},{722,64629,3},{725,64634,3}, {725,64639,3},{727,64639,3},{727,64641,3},{728,64643,3},{727,64644,3},{725,64644,3}, {727,64651,3},{732,64653,3},{735,64651,3},{740,64654,3},{742,64658,3},{745,64658,3}, {747,64661,3},{752,64664,3},{755,64664,3},{757,64664,3},{763,64664,3},{770,64669,3}, {768,64681,3},{762,64681,3},{757,64689,3},{750,64694,3},{732,64698,3},{727,64701,3}, {723,64699,3},{718,64708,3},{708,64706,3},{700,64708,3},{697,64704,3},{690,64704,3}, {688,64703,3},{687,64706,3},{678,64703,3},{677,64703,3},{677,64701,3},{673,64701,3}, {672,64696,3},{667,64694,3},{665,64693,3},{665,64691,3},{663,64691,3},{663,64688,3}, {662,64688,3},{662,64686,3},{658,64684,3},{660,64683,3},{657,64683,3},{657,64679,3}, {655,64679,3},{653,64678,3},{653,64676,3},{650,64676,3},{648,64683,3},{643,64688,3}, {645,64689,3},{648,64691,3},{647,64694,3},{645,64698,3},{642,64696,3},{638,64698,3}, {635,64694,3},{635,64696,3},{637,64699,3},{637,64703,3},{633,64706,3},{635,64708,3}, {632,64708,3},{630,64716,3},{627,64719,3},{630,64734,3},{628,64738,3},{627,64744,3}, {628,64746,3},{625,64746,3},{620,64754,3},{613,64751,3},{608,64751,3},{608,64754,3}, {607,64758,3},{605,64758,3},{603,64759,3},{602,64758,3},{598,64758,3},{595,64761,3}, {590,64768,3},{593,64768,3},{595,64771,3},{592,64771,3},{588,64779,3},{587,64779,3}, {585,64781,3},{587,64784,3},{585,64784,3},{585,64786,3},{582,64788,3},{582,64789,3}, {587,64789,3},{587,64793,3},{583,64794,3},{572,64793,3},{565,64794,3},{557,64799,3}, {557,64796,3},{553,64798,3},{553,64796,3},{552,64798,3},{548,64794,3},{543,64794,3}, {543,64793,3},{537,64796,3},{537,64798,3},{532,64799,3},{527,64796,3},{527,64794,3}, {530,64794,3},{527,64789,3},{525,64789,3},{523,64789,3},{517,64789,3},{513,64788,3}, {510,64786,3},{510,64784,3},{508,64781,3},{507,64779,3},{497,64781,3},{495,64783,3}, {492,64783,3},{492,64779,3},{490,64778,3},{483,64778,3},{482,64778,3},{478,64779,3}, {475,64781,3},{467,64779,3},{460,64781,3},{457,64779,3},{450,64781,3},{445,64779,3}, {442,64781,3},{440,64779,3},{435,64784,3},{435,64776,3},{435,64773,3},{435,64764,3}, {438,64763,3},{442,64754,3},{445,64753,3},{450,64741,3},{455,64726,3},{457,64711,3}, {463,64703,3},{467,64693,3},{475,64683,3},{485,64658,3},{492,64651,3},{498,64634,3}, {500,64634,3},{502,64626,3},{505,64624,3},{513,64609,3},{515,64608,3},{517,64608,3}, {527,64594,3},{530,64591,3},{538,64586,3},{542,64583,3},{543,64576,3},{545,64578,3}, {548,64576,3},{560,64558,3},{570,64549,3},{585,64531,3},{590,64531,3},{592,64529,3}, {598,64519,3},{607,64511,3},{610,64499,3},{612,64499,3},{612,64503,3},{613,64503,3}, {613,64499,3},{617,64498,3},{620,64493,3},{620,64489,3},{615,64498,3},{613,64498,3}, {617,64491,3},{622,64471,3},{627,64459,3},{632,64454,3},{632,64456,3},{630,64459,3}, {633,64456,3},{637,64456,3},{640,64461,3},{638,64456,3},{643,64453,3},{650,64446,3}, {660,64428,3},{670,64399,3},{675,64398,3},{680,64399,3},{683,64398,3},{692,64388,3}, {903,64206,131},{907,64203,3},{908,64206,3},{913,64209,3},{917,64214,3}, {917,64218,3},{918,64221,3},{918,64211,3},{927,64213,3},{923,64209,3},{918,64208,3}, {917,64208,3},{918,64204,3},{920,64206,3},{925,64206,3},{927,64204,3},{932,64203,3}, {932,64204,3},{932,64206,3},{935,64206,3},{933,64201,3},{928,64199,3},{928,64196,3}, {928,64194,3},{932,64196,3},{937,64193,3},{943,64196,3},{942,64194,3},{942,64186,3}, {947,64184,3},{950,64184,3},{957,64188,3},{950,64183,3},{953,64178,3},{957,64178,3}, {950,64164,3},{957,64169,3},{963,64173,3},{973,64174,3},{978,64179,3},{978,64174,3}, {980,64174,3},{985,64171,3},{983,64169,3},{980,64171,3},{977,64171,3},{973,64166,3}, {977,64161,3},{978,64161,3},{983,64163,3},{990,64168,3},{995,64168,3},{992,64166,3}, {987,64163,3},{985,64159,3},{985,64158,3},{985,64153,3},{995,64143,3},{997,64141,3}, {997,64138,3},{1000,64134,3},{1000,64133,3},{1003,64129,3},{1008,64131,3}, {1010,64134,3},{1008,64136,3},{1012,64134,3},{1010,64131,3},{1012,64129,3}, {1020,64136,3},{1013,64128,3},{1007,64128,3},{1005,64123,3},{1008,64118,3}, {1010,64118,3},{1013,64119,3},{1015,64123,3},{1017,64123,3},{1018,64123,3}, {1017,64121,3},{1015,64118,3},{1012,64118,3},{1010,64114,3},{1015,64111,3}, {1018,64111,3},{1015,64109,3},{1020,64103,3},{1023,64098,3},{1023,64093,3}, {1020,64091,3},{1025,64089,3},{1030,64091,3},{1033,64089,3},{1035,64086,3}, {1042,64081,3},{1047,64081,3},{1050,64083,3},{1048,64079,3},{1048,64069,3}, {1057,64071,3},{1057,64073,3},{1060,64076,3},{1062,64073,3},{1070,64074,3}, {1070,64076,3},{1073,64079,3},{1077,64079,3},{1083,64086,3},{1088,64086,3}, {1088,64083,3},{1085,64084,3},{1080,64078,3},{1068,64073,3},{1063,64066,3}, {1067,64066,3},{1068,64068,3},{1070,64064,3},{1075,64066,3},{1082,64073,3}, {1082,64069,3},{1078,64068,3},{1077,64064,3},{1070,64061,3},{1075,64056,3}, {1078,64059,3},{1083,64063,3},{1087,64063,3},{1083,64059,3},{1083,64054,3}, {1088,64054,3},{1090,64056,3},{1090,64054,3},{1093,64054,3},{1097,64063,3}, {1100,64064,3},{1103,64069,3},{1105,64068,3},{1103,64066,3},{1102,64063,3}, {1100,64063,3},{1098,64061,3},{1098,64056,3},{1100,64056,3},{1102,64056,3}, {1097,64049,3},{1097,64048,3},{1103,64048,3},{1103,64044,3},{1100,64046,3}, {1097,64046,3},{1097,64044,3},{1098,64041,3},{1093,64044,3},{1092,64046,3}, {1087,64041,3},{1087,64038,3},{1083,64039,3},{1083,64038,3},{1080,64041,3}, {1077,64041,3},{1077,64038,3},{1078,64033,3},{1085,64028,3},{1090,64029,3}, {1092,64033,3},{1095,64034,3},{1102,64039,3},{1120,64051,3},{1135,64056,3}, {1152,64068,3},{1152,64084,3},{1162,64104,3},{1168,64108,3},{1167,64111,3}, {1167,64121,3},{1163,64126,3},{1165,64131,3},{1163,64138,3},{1167,64141,3}, {1168,64143,3},{1167,64148,3},{1168,64149,3},{1173,64151,3},{1173,64149,3}, {1175,64151,3},{1172,64154,3},{1172,64156,3},{1170,64156,3},{1168,64158,3}, {1172,64164,3},{1178,64166,3},{1190,64164,3},{1202,64166,3},{1205,64156,3}, {1210,64154,3},{1212,64149,3},{1215,64148,3},{1215,64139,3},{1220,64139,3}, {1223,64144,3},{1225,64151,3},{1228,64149,3},{1227,64153,3},{1228,64154,3}, {1230,64154,3},{1228,64156,3},{1225,64156,3},{1227,64161,3},{1225,64164,3}, {1228,64166,3},{1230,64168,3},{1232,64169,3},{1237,64169,3},{1240,64169,3}, {1243,64171,3},{1247,64171,3},{1257,64164,3},{1268,64164,3},{1267,64201,3}, {1263,64204,3},{1267,64209,3},{1265,64214,3},{1265,64216,3},{1263,64218,3}, {1263,64229,3},{1258,64233,3},{1253,64229,3},{1250,64229,3},{1247,64233,3}, {1247,64239,3},{1248,64241,3},{1253,64241,3},{1255,64246,3},{1250,64253,3}, {1248,64253,3},{1247,64259,3},{1243,64259,3},{1243,64273,3},{1238,64278,3}, {1237,64279,3},{1238,64284,3},{1240,64288,3},{1238,64291,3},{1237,64296,3}, {1230,64301,3},{1235,64311,3},{1235,64319,3},{1242,64326,3},{1238,64339,3}, {1243,64346,3},{1242,64346,3},{1238,64353,3},{1240,64356,3},{1238,64363,3}, {1240,64368,3},{1243,64373,3},{1242,64374,3},{1243,64388,3},{1240,64398,3}, {1247,64401,3},{1238,64398,3},{1238,64393,3},{1237,64393,3},{1228,64393,3}, {1223,64391,3},{1222,64388,3},{1217,64386,3},{1213,64391,3},{1210,64398,3}, {1205,64401,3},{1203,64404,3},{1200,64411,3},{1202,64418,3},{1203,64419,3}, {1205,64421,3},{1208,64421,3},{1208,64424,3},{1212,64426,3},{1213,64429,3}, {1222,64433,3},{1223,64441,3},{1220,64446,3},{1215,64449,3},{1212,64454,3}, {1210,64458,3},{1207,64458,3},{1203,64456,3},{1197,64461,3},{1192,64463,3}, {1190,64471,3},{1197,64474,3},{1197,64478,3},{1200,64479,3},{1203,64479,3}, {1205,64484,3},{1207,64484,3},{1208,64486,3},{1212,64484,3},{1212,64491,3}, {1217,64496,3},{1217,64501,3},{1218,64501,3},{1218,64503,3},{1222,64503,3}, {1218,64506,3},{1222,64508,3},{1222,64511,3},{1220,64513,3},{1220,64518,3}, {1218,64521,3},{1218,64526,3},{1215,64529,3},{1215,64533,3},{1210,64539,3}, {1210,64544,3},{1205,64549,3},{1205,64556,3},{1203,64561,3},{1203,64566,3}, {1208,64569,3},{1213,64569,3},{1217,64573,3},{1222,64586,3},{1225,64589,3}, {1227,64594,3},{1225,64601,3},{1227,64604,3},{1232,64604,3},{1232,64606,3}, {1237,64606,3},{1237,64604,3},{1240,64603,3},{1245,64596,3},{1248,64599,3}, {1248,64603,3},{1250,64604,3},{1248,64608,3},{1250,64611,3},{1248,64621,3}, {1243,64628,3},{1243,64631,3},{1240,64638,3},{1235,64641,3},{1227,64638,3}, {1222,64638,3},{1218,64639,3},{1220,64644,3},{1215,64648,3},{1208,64644,3}, {1205,64646,3},{1203,64649,3},{1203,64653,3},{1200,64656,3},{1197,64656,3}, {1193,64658,3},{1167,64653,3},{1163,64661,3},{1167,64666,3},{1155,64669,3}, {1150,64673,3},{1147,64678,3},{1150,64683,3},{1143,64684,3},{1142,64689,3}, {1137,64699,3},{1135,64694,3},{1133,64696,3},{1133,64701,3},{1128,64699,3}, {1130,64691,3},{1128,64688,3},{1127,64688,3},{1123,64688,3},{1120,64681,3}, {1115,64679,3},{1113,64676,3},{1108,64676,3},{1102,64669,3},{1097,64668,3}, {1097,64673,3},{1097,64681,3},{1100,64684,3},{1107,64688,3},{1105,64698,3}, {1105,64701,3},{1100,64708,3},{1095,64708,3},{1085,64708,3},{1083,64706,3}, {1077,64703,3},{1077,64704,3},{1075,64706,3},{1072,64706,3},{1068,64708,3}, {1062,64708,3},{1050,64709,3},{1047,64713,3},{1042,64714,3},{1042,64723,3}, {1043,64723,3},{1042,64724,3},{1035,64728,3},{1035,64736,3},{1033,64739,3}, {1023,64743,3},{1015,64739,3},{1008,64734,3},{1005,64724,3},{998,64721,3}, {998,64724,3},{997,64724,3},{995,64719,3},{992,64721,3},{990,64723,3},{988,64723,3}, {987,64721,3},{987,64726,3},{982,64726,3},{975,64723,3},{967,64724,3},{962,64721,3}, {950,64723,3},{940,64731,3},{938,64734,3},{938,64741,3},{942,64744,3},{942,64751,3}, {935,64748,3},{930,64748,3},{923,64744,3},{920,64744,3},{917,64748,3},{917,64753,3}, {912,64756,3},{910,64763,3},{908,64763,3},{907,64761,3},{907,64754,3},{903,64751,3}, {902,64744,3},{897,64743,3},{880,64741,3},{877,64744,3},{875,64758,3},{872,64761,3}, {867,64763,3},{862,64768,3},{857,64768,3},{850,64771,3},{843,64768,3},{838,64771,3}, {838,64761,3},{845,64758,3},{848,64754,3},{847,64753,3},{843,64753,3},{842,64751,3}, {843,64746,3},{850,64743,3},{850,64731,3},{850,64728,3},{848,64726,3},{848,64721,3}, {850,64721,3},{850,64716,3},{845,64711,3},{840,64714,3},{838,64714,3},{828,64713,3}, {825,64711,3},{823,64714,3},{820,64719,3},{817,64729,3},{818,64738,3},{810,64736,3}, {807,64739,3},{802,64741,3},{802,64738,3},{803,64736,3},{803,64731,3},{802,64731,3}, {797,64731,3},{787,64724,3},{785,64724,3},{780,64728,3},{777,64726,3},{772,64726,3}, {768,64723,3},{767,64721,3},{763,64718,3},{757,64718,3},{755,64714,3},{758,64708,3}, {760,64706,3},{758,64701,3},{758,64698,3},{760,64698,3},{762,64696,3},{757,64689,3}, {762,64681,3},{768,64681,3},{770,64669,3},{763,64664,3},{757,64664,3},{755,64664,3}, {752,64664,3},{747,64661,3},{745,64658,3},{742,64658,3},{740,64654,3},{735,64651,3}, {732,64653,3},{727,64651,3},{725,64644,3},{727,64644,3},{728,64643,3},{727,64641,3}, {727,64639,3},{725,64639,3},{725,64634,3},{722,64629,3},{720,64624,3},{723,64626,3}, {725,64623,3},{728,64623,3},{728,64619,3},{732,64616,3},{738,64616,3},{738,64608,3}, {742,64606,3},{743,64604,3},{742,64603,3},{743,64599,3},{740,64599,3},{738,64596,3}, {742,64594,3},{737,64588,3},{743,64589,3},{748,64594,3},{757,64598,3},{762,64601,3}, {765,64598,3},{775,64601,3},{780,64599,3},{783,64594,3},{790,64593,3},{795,64593,3}, {802,64596,3},{805,64593,3},{803,64589,3},{807,64591,3},{817,64589,3},{818,64584,3}, {822,64586,3},{825,64584,3},{827,64586,3},{832,64584,3},{835,64588,3},{837,64584,3}, {838,64581,3},{842,64578,3},{840,64576,3},{838,64569,3},{840,64569,3},{843,64573,3}, {847,64573,3},{850,64568,3},{848,64566,3},{847,64566,3},{843,64566,3},{847,64564,3}, {852,64561,3},{853,64563,3},{857,64559,3},{853,64556,3},{852,64558,3},{848,64551,3}, {850,64551,3},{850,64544,3},{847,64539,3},{845,64538,3},{842,64531,3},{843,64529,3}, {850,64531,3},{852,64528,3},{853,64519,3},{852,64519,3},{848,64514,3},{850,64514,3}, {848,64511,3},{848,64508,3},{852,64504,3},{848,64496,3},{840,64493,3},{833,64484,3}, {830,64479,3},{833,64478,3},{833,64468,3},{827,64466,3},{828,64464,3},{832,64464,3}, {835,64466,3},{840,64471,3},{848,64473,3},{848,64474,3},{855,64474,3},{855,64476,3}, {860,64478,3},{862,64486,3},{865,64489,3},{868,64489,3},{872,64486,3},{873,64484,3}, {880,64479,3},{882,64478,3},{895,64476,3},{907,64479,3},{908,64463,3},{918,64463,3}, {923,64469,3},{927,64469,3},{930,64471,3},{938,64461,3},{940,64454,3},{942,64456,3}, {945,64453,3},{952,64453,3},{953,64449,3},{958,64449,3},{960,64444,3},{965,64443,3}, {967,64439,3},{973,64438,3},{978,64434,3},{985,64426,3},{987,64421,3},{997,64419,3}, {1000,64414,3},{1000,64409,3},{1000,64404,3},{1000,64399,3},{1000,64394,3}, {1000,64388,3},{1000,64383,3},{1000,64376,3},{1000,64371,3},{1000,64366,3}, {1000,64361,3},{1000,64356,3},{1000,64351,3},{1000,64346,3},{993,64346,3}, {988,64324,3},{990,64314,3},{993,64313,3},{988,64291,3},{987,64289,3},{987,64286,3}, {982,64288,3},{977,64284,3},{975,64286,3},{973,64284,3},{970,64284,3},{970,64279,3}, {967,64279,3},{965,64278,3},{960,64278,3},{960,64274,3},{955,64273,3},{955,64271,3}, {952,64271,3},{942,64268,3},{942,64266,3},{940,64266,3},{940,64261,3},{935,64261,3}, {935,64259,3},{930,64256,3},{928,64251,3},{928,64248,3},{927,64246,3},{928,64244,3}, {928,64241,3},{922,64239,3},{918,64243,3},{917,64238,3},{910,64236,3},{908,64229,3}, {905,64228,3},{905,64223,3},{908,64218,3},{907,64209,3},{903,64206,3},{692,64388,131}, {695,64379,3},{697,64378,3},{698,64379,3},{698,64374,3},{702,64371,3},{707,64366,3}, {710,64361,3},{712,64356,3},{715,64353,3},{717,64348,3},{718,64343,3},{720,64336,3}, {722,64331,3},{723,64326,3},{725,64321,3},{728,64316,3},{730,64311,3},{732,64306,3}, {733,64303,3},{735,64296,3},{737,64291,3},{738,64286,3},{740,64288,3},{742,64293,3}, {738,64299,3},{743,64294,3},{743,64289,3},{745,64286,3},{753,64293,3},{753,64303,3}, {753,64306,3},{755,64309,3},{755,64313,3},{757,64313,3},{757,64316,3},{760,64318,3}, {762,64311,3},{758,64309,3},{757,64306,3},{755,64289,3},{762,64286,3},{765,64288,3}, {763,64284,3},{762,64284,3},{765,64283,3},{770,64284,3},{772,64289,3},{777,64289,3}, {777,64291,3},{778,64289,3},{778,64288,3},{773,64286,3},{770,64281,3},{768,64276,3}, {770,64274,3},{770,64266,3},{775,64258,3},{780,64256,3},{782,64259,3},{782,64258,3}, {780,64254,3},{780,64253,3},{782,64249,3},{787,64246,3},{787,64244,3},{790,64239,3}, {792,64244,3},{793,64248,3},{792,64254,3},{797,64248,3},{802,64246,3},{805,64246,3}, {810,64248,3},{810,64244,3},{815,64243,3},{817,64241,3},{818,64238,3},{825,64238,3}, {823,64236,3},{823,64229,3},{817,64219,3},{822,64221,3},{827,64219,3},{833,64216,3}, {835,64214,3},{842,64209,3},{842,64208,3},{845,64209,3},{850,64208,3},{850,64216,3}, {842,64223,3},{840,64226,3},{837,64229,3},{837,64231,3},{838,64233,3},{840,64229,3}, {842,64231,3},{842,64226,3},{843,64223,3},{845,64223,3},{848,64226,3},{850,64231,3}, {852,64231,3},{852,64233,3},{855,64234,3},{855,64246,3},{857,64249,3},{858,64243,3}, {858,64244,3},{868,64248,3},{860,64243,3},{860,64234,3},{858,64231,3},{860,64228,3}, {862,64231,3},{865,64233,3},{867,64231,3},{862,64229,3},{862,64228,3},{865,64221,3}, {867,64221,3},{865,64219,3},{863,64223,3},{862,64223,3},{860,64226,3},{858,64226,3}, {857,64223,3},{852,64223,3},{852,64221,3},{867,64213,3},{882,64213,3},{885,64214,3}, {887,64216,3},{883,64219,3},{885,64238,3},{887,64234,3},{887,64223,3},{888,64219,3}, {892,64224,3},{893,64229,3},{893,64228,3},{892,64216,3},{897,64213,3},{895,64208,3}, {903,64206,3},{907,64209,3},{908,64218,3},{905,64223,3},{905,64228,3},{908,64229,3}, {910,64236,3},{917,64238,3},{918,64243,3},{922,64239,3},{928,64241,3},{928,64244,3}, {927,64246,3},{928,64248,3},{928,64251,3},{930,64256,3},{935,64259,3},{935,64261,3}, {940,64261,3},{940,64266,3},{942,64266,3},{942,64268,3},{952,64271,3},{955,64271,3}, {955,64273,3},{960,64274,3},{960,64278,3},{965,64278,3},{967,64279,3},{970,64279,3}, {970,64284,3},{973,64284,3},{975,64286,3},{977,64284,3},{982,64288,3},{987,64286,3}, {987,64289,3},{988,64291,3},{993,64313,3},{990,64314,3},{988,64324,3},{993,64346,3}, {1000,64346,3},{1000,64351,3},{1000,64356,3},{1000,64361,3},{1000,64366,3}, {1000,64371,3},{1000,64376,3},{1000,64383,3},{1000,64388,3},{1000,64394,3}, {1000,64399,3},{1000,64404,3},{1000,64409,3},{1000,64414,3},{997,64419,3}, {987,64421,3},{985,64426,3},{978,64434,3},{973,64438,3},{967,64439,3},{965,64443,3}, {960,64444,3},{958,64449,3},{953,64449,3},{952,64453,3},{945,64453,3},{942,64456,3}, {940,64454,3},{938,64461,3},{930,64471,3},{927,64469,3},{923,64469,3},{918,64463,3}, {908,64463,3},{907,64479,3},{895,64476,3},{882,64478,3},{880,64479,3},{873,64484,3}, {872,64486,3},{868,64489,3},{865,64489,3},{862,64486,3},{860,64478,3},{855,64476,3}, {855,64474,3},{848,64474,3},{848,64473,3},{840,64471,3},{835,64466,3},{832,64464,3}, {828,64464,3},{827,64466,3},{833,64468,3},{833,64478,3},{830,64479,3},{833,64484,3}, {840,64493,3},{848,64496,3},{852,64504,3},{848,64508,3},{848,64511,3},{843,64509,3}, {837,64506,3},{832,64508,3},{827,64504,3},{822,64506,3},{818,64506,3},{815,64501,3}, {813,64486,3},{812,64483,3},{805,64479,3},{803,64476,3},{777,64476,3},{773,64468,3}, {760,64456,3},{753,64449,3},{750,64444,3},{752,64443,3},{742,64431,3},{738,64426,3}, {728,64418,3},{725,64418,3},{722,64406,3},{717,64404,3},{715,64401,3},{710,64403,3}, {707,64398,3},{702,64398,3},{697,64393,3},{693,64394,3},{693,64391,3},{692,64389,3}, {692,64388,3},{1232,63864,131},{1237,63861,3},{1243,63856,3},{1248,63856,3}, {1253,63861,3},{1255,63866,3},{1255,63868,3},{1263,63878,3},{1262,63881,3}, {1257,63881,3},{1255,63883,3},{1258,63883,3},{1260,63886,3},{1255,63899,3}, {1260,63906,3},{1258,63911,3},{1260,63914,3},{1258,63916,3},{1263,63934,3}, {1258,63943,3},{1258,63949,3},{1255,63953,3},{1255,63954,3},{1258,63958,3}, {1258,63963,3},{1258,63968,3},{1253,63968,3},{1253,63973,3},{1257,63979,3}, {1260,63981,3},{1263,63986,3},{1272,63983,3},{1278,63983,3},{1278,63989,3}, {1282,63991,3},{1280,63996,3},{1283,63998,3},{1282,63994,3},{1283,63991,3}, {1280,63986,3},{1280,63984,3},{1282,63984,3},{1280,63983,3},{1273,63979,3}, {1265,63983,3},{1257,63973,3},{1255,63971,3},{1257,63969,3},{1260,63969,3}, {1262,63966,3},{1260,63963,3},{1262,63959,3},{1262,63956,3},{1260,63954,3}, {1258,63953,3},{1262,63951,3},{1260,63944,3},{1268,63934,3},{1273,63934,3}, {1268,63931,3},{1267,63931,3},{1263,63929,3},{1263,63923,3},{1262,63921,3}, {1262,63913,3},{1260,63908,3},{1262,63904,3},{1260,63901,3},{1257,63899,3}, {1257,63898,3},{1258,63894,3},{1263,63888,3},{1265,63888,3},{1267,63889,3}, {1267,63888,3},{1270,63886,3},{1267,63886,3},{1262,63884,3},{1265,63881,3}, {1267,63879,3},{1268,63879,3},{1267,63876,3},{1267,63873,3},{1270,63873,3}, {1273,63876,3},{1278,63876,3},{1273,63874,3},{1272,63871,3},{1263,63871,3}, {1257,63861,3},{1258,63858,3},{1268,63858,3},{1272,63861,3},{1273,63866,3}, {1275,63863,3},{1272,63859,3},{1272,63856,3},{1275,63858,3},{1278,63859,3}, {1282,63858,3},{1278,63856,3},{1282,63856,3},{1288,63859,3},{1303,63861,3}, {1315,63866,3},{1317,63869,3},{1317,63874,3},{1317,63879,3},{1317,63884,3}, {1317,63889,3},{1317,63896,3},{1317,63901,3},{1317,63906,3},{1317,63911,3}, {1317,63916,3},{1317,63923,3},{1317,63928,3},{1317,63933,3},{1317,63939,3}, {1317,63944,3},{1317,63949,3},{1317,63954,3},{1320,63954,3},{1325,63954,3}, {1330,63956,3},{1335,63956,3},{1335,63964,3},{1337,63968,3},{1337,63979,3}, {1340,63986,3},{1338,63994,3},{1337,64003,3},{1338,64008,3},{1343,64014,3}, {1353,64016,3},{1358,64021,3},{1360,64024,3},{1353,64031,3},{1348,64039,3}, {1345,64046,3},{1345,64051,3},{1343,64054,3},{1343,64059,3},{1338,64061,3}, {1337,64064,3},{1335,64071,3},{1337,64079,3},{1332,64084,3},{1330,64091,3}, {1327,64093,3},{1325,64098,3},{1325,64109,3},{1323,64114,3},{1325,64123,3}, {1328,64124,3},{1330,64136,3},{1332,64141,3},{1332,64149,3},{1338,64156,3}, {1343,64156,3},{1348,64153,3},{1352,64149,3},{1357,64146,3},{1358,64139,3}, {1358,64138,3},{1357,64134,3},{1357,64128,3},{1353,64124,3},{1352,64116,3}, {1348,64113,3},{1345,64103,3},{1353,64089,3},{1362,64086,3},{1365,64083,3}, {1367,64073,3},{1362,64064,3},{1365,64058,3},{1373,64054,3},{1378,64049,3}, {1380,64048,3},{1380,64041,3},{1380,64038,3},{1383,64029,3},{1378,64018,3}, {1375,64011,3},{1378,64008,3},{1380,64004,3},{1378,63999,3},{1370,63991,3}, {1358,63988,3},{1358,63983,3},{1358,63976,3},{1358,63971,3},{1358,63966,3}, {1358,63961,3},{1360,63956,3},{1360,63949,3},{1360,63944,3},{1360,63939,3}, {1360,63933,3},{1360,63928,3},{1360,63923,3},{1360,63918,3},{1360,63911,3}, {1360,63906,3},{1358,63901,3},{1358,63896,3},{1358,63891,3},{1358,63886,3}, {1358,63879,3},{1363,63878,3},{1365,63879,3},{1368,63884,3},{1370,63884,3}, {1373,63886,3},{1375,63884,3},{1368,63881,3},{1365,63876,3},{1370,63871,3}, {1375,63873,3},{1383,63879,3},{1382,63881,3},{1383,63881,3},{1385,63884,3}, {1382,63884,3},{1380,63888,3},{1383,63886,3},{1387,63886,3},{1388,63884,3}, {1395,63888,3},{1400,63888,3},{1387,63881,3},{1383,63871,3},{1380,63869,3}, {1377,63866,3},{1385,63861,3},{1387,63863,3},{1395,63861,3},{1398,63864,3}, {1400,63868,3},{1398,63873,3},{1395,63873,3},{1398,63874,3},{1400,63876,3}, {1398,63879,3},{1402,63879,3},{1403,63881,3},{1403,63879,3},{1403,63878,3}, {1407,63881,3},{1412,63886,3},{1413,63891,3},{1415,63893,3},{1415,63896,3}, {1417,63899,3},{1415,63894,3},{1417,63891,3},{1420,63891,3},{1418,63888,3}, {1415,63889,3},{1415,63884,3},{1407,63879,3},{1405,63876,3},{1400,63873,3}, {1400,63869,3},{1402,63864,3},{1403,63866,3},{1405,63866,3},{1407,63869,3}, {1410,63869,3},{1407,63868,3},{1407,63864,3},{1403,63864,3},{1402,63863,3}, {1400,63863,3},{1397,63859,3},{1385,63859,3},{1383,63858,3},{1395,63858,3}, {1402,63858,3},{1413,63854,3},{1417,63849,3},{1425,63846,3},{1430,63841,3}, {1438,63841,3},{1442,63838,3},{1445,63829,3},{1465,63818,3},{1468,63813,3}, {1475,63798,3},{1472,63793,3},{1470,63794,3},{1468,63793,3},{1467,63793,3}, {1465,63791,3},{1475,63783,3},{1480,63798,3},{1490,63819,3},{1522,63848,3}, {1540,63858,3},{1555,63869,3},{1577,63883,3},{1582,63881,3},{1590,63883,3}, {1603,63884,3},{1610,63886,3},{1605,63888,3},{1610,63889,3},{1618,63889,3}, {1623,63898,3},{1645,63904,3},{1652,63908,3},{1652,63918,3},{1655,63921,3}, {1655,63924,3},{1655,63926,3},{1652,63926,3},{1648,63931,3},{1650,63936,3}, {1648,63939,3},{1652,63946,3},{1650,63951,3},{1648,63968,3},{1650,63973,3}, {1652,63974,3},{1652,63983,3},{1657,63986,3},{1658,63991,3},{1655,63996,3}, {1657,64004,3},{1658,64024,3},{1662,64028,3},{1665,64024,3},{1667,64026,3}, {1667,64028,3},{1663,64031,3},{1663,64034,3},{1670,64038,3},{1668,64039,3}, {1665,64041,3},{1663,64046,3},{1665,64048,3},{1663,64051,3},{1665,64054,3}, {1663,64058,3},{1665,64059,3},{1662,64063,3},{1663,64064,3},{1665,64071,3}, {1663,64073,3},{1663,64081,3},{1663,64086,3},{1663,64091,3},{1665,64093,3}, {1663,64098,3},{1663,64101,3},{1663,64103,3},{1658,64103,3},{1658,64108,3}, {1653,64109,3},{1655,64114,3},{1635,64133,3},{1635,64136,3},{1633,64139,3}, {1630,64138,3},{1627,64139,3},{1623,64139,3},{1620,64149,3},{1615,64149,3}, {1612,64151,3},{1615,64161,3},{1618,64164,3},{1617,64166,3},{1613,64164,3}, {1610,64168,3},{1613,64178,3},{1613,64184,3},{1615,64186,3},{1613,64188,3}, {1612,64184,3},{1608,64184,3},{1608,64186,3},{1608,64188,3},{1610,64189,3}, {1608,64193,3},{1607,64196,3},{1603,64198,3},{1598,64199,3},{1593,64204,3}, {1590,64203,3},{1588,64206,3},{1583,64206,3},{1580,64209,3},{1578,64208,3}, {1577,64208,3},{1570,64214,3},{1567,64211,3},{1562,64213,3},{1562,64219,3}, {1558,64226,3},{1552,64226,3},{1548,64229,3},{1550,64239,3},{1545,64241,3}, {1543,64243,3},{1537,64243,3},{1533,64249,3},{1530,64253,3},{1527,64251,3}, {1527,64246,3},{1522,64251,3},{1520,64258,3},{1515,64258,3},{1508,64266,3}, {1510,64271,3},{1508,64274,3},{1505,64281,3},{1502,64288,3},{1495,64291,3}, {1490,64291,3},{1485,64298,3},{1483,64303,3},{1477,64311,3},{1478,64321,3}, {1477,64324,3},{1472,64331,3},{1475,64311,3},{1473,64314,3},{1470,64314,3}, {1470,64319,3},{1467,64318,3},{1465,64321,3},{1462,64321,3},{1460,64318,3}, {1455,64318,3},{1455,64314,3},{1450,64313,3},{1445,64316,3},{1440,64316,3}, {1437,64326,3},{1433,64326,3},{1432,64324,3},{1428,64328,3},{1428,64333,3}, {1417,64338,3},{1408,64338,3},{1407,64336,3},{1402,64334,3},{1397,64336,3}, {1390,64341,3},{1383,64341,3},{1377,64339,3},{1370,64328,3},{1365,64333,3}, {1362,64333,3},{1353,64339,3},{1352,64343,3},{1348,64346,3},{1347,64349,3}, {1343,64349,3},{1338,64348,3},{1335,64353,3},{1330,64354,3},{1335,64359,3}, {1342,64363,3},{1342,64366,3},{1338,64368,3},{1340,64373,3},{1337,64373,3}, {1337,64376,3},{1332,64378,3},{1325,64383,3},{1322,64381,3},{1318,64384,3}, {1315,64383,3},{1312,64384,3},{1308,64393,3},{1305,64391,3},{1302,64396,3}, {1300,64394,3},{1297,64394,3},{1297,64396,3},{1300,64398,3},{1298,64398,3}, {1293,64399,3},{1292,64394,3},{1290,64396,3},{1283,64394,3},{1283,64396,3}, {1278,64398,3},{1277,64396,3},{1273,64398,3},{1272,64393,3},{1270,64393,3}, {1268,64391,3},{1267,64391,3},{1265,64394,3},{1262,64393,3},{1258,64394,3}, {1257,64394,3},{1255,64391,3},{1252,64394,3},{1253,64394,3},{1253,64396,3}, {1248,64398,3},{1250,64399,3},{1247,64401,3},{1240,64398,3},{1243,64388,3}, {1242,64374,3},{1243,64373,3},{1240,64368,3},{1238,64363,3},{1240,64356,3}, {1238,64353,3},{1242,64346,3},{1243,64346,3},{1238,64339,3},{1242,64326,3}, {1235,64319,3},{1235,64311,3},{1230,64301,3},{1237,64296,3},{1238,64291,3}, {1240,64288,3},{1238,64284,3},{1237,64279,3},{1238,64278,3},{1243,64273,3}, {1243,64259,3},{1247,64259,3},{1248,64253,3},{1250,64253,3},{1255,64246,3}, {1253,64241,3},{1248,64241,3},{1247,64239,3},{1247,64233,3},{1250,64229,3}, {1253,64229,3},{1258,64233,3},{1263,64229,3},{1263,64218,3},{1265,64216,3}, {1265,64214,3},{1267,64209,3},{1263,64204,3},{1267,64201,3},{1268,64164,3}, {1268,64161,3},{1268,64156,3},{1268,64151,3},{1268,64144,3},{1268,64139,3}, {1268,64134,3},{1268,64129,3},{1268,64123,3},{1268,64118,3},{1268,64113,3}, {1268,64108,3},{1268,64103,3},{1268,64096,3},{1268,64091,3},{1268,64086,3}, {1268,64081,3},{1268,64076,3},{1268,64071,3},{1268,64064,3},{1268,64059,3}, {1268,64054,3},{1268,64049,3},{1268,64044,3},{1268,64038,3},{1268,64033,3}, {1268,64028,3},{1268,64021,3},{1268,64014,3},{1267,64013,3},{1263,64008,3}, {1262,64001,3},{1255,63996,3},{1243,63968,3},{1245,63948,3},{1243,63939,3}, {1247,63928,3},{1245,63919,3},{1247,63914,3},{1243,63908,3},{1235,63896,3}, {1235,63884,3},{1235,63881,3},{1235,63868,3},{1232,63864,3},{1303,63861,131}, {1307,63861,3},{1307,63858,3},{1312,63859,3},{1317,63856,3},{1323,63856,3}, {1327,63854,3},{1333,63853,3},{1335,63854,3},{1337,63854,3},{1342,63861,3}, {1345,63863,3},{1348,63868,3},{1347,63869,3},{1348,63873,3},{1347,63878,3}, {1343,63878,3},{1343,63874,3},{1333,63878,3},{1328,63881,3},{1328,63889,3}, {1327,63889,3},{1325,63894,3},{1320,63894,3},{1322,63898,3},{1327,63894,3}, {1327,63893,3},{1328,63898,3},{1325,63899,3},{1332,63911,3},{1330,63913,3}, {1327,63914,3},{1325,63914,3},{1327,63919,3},{1328,63921,3},{1327,63916,3}, {1330,63916,3},{1335,63914,3},{1337,63914,3},{1340,63918,3},{1342,63919,3}, {1340,63931,3},{1342,63946,3},{1343,63949,3},{1343,63959,3},{1347,63969,3}, {1345,63974,3},{1350,63981,3},{1350,63984,3},{1350,63989,3},{1345,63994,3}, {1343,64001,3},{1343,64004,3},{1345,64006,3},{1348,64006,3},{1345,64004,3}, {1345,63999,3},{1350,63989,3},{1350,63986,3},{1353,63981,3},{1348,63974,3}, {1350,63969,3},{1345,63958,3},{1347,63949,3},{1343,63928,3},{1345,63921,3}, {1342,63913,3},{1335,63909,3},{1335,63908,3},{1340,63908,3},{1338,63906,3}, {1338,63904,3},{1337,63906,3},{1337,63904,3},{1333,63904,3},{1333,63896,3}, {1335,63889,3},{1335,63884,3},{1342,63886,3},{1348,63879,3},{1353,63881,3}, {1358,63879,3},{1358,63886,3},{1358,63891,3},{1358,63896,3},{1358,63901,3}, {1360,63906,3},{1360,63911,3},{1360,63918,3},{1360,63923,3},{1360,63928,3}, {1360,63933,3},{1360,63939,3},{1360,63944,3},{1360,63949,3},{1360,63956,3}, {1358,63961,3},{1358,63966,3},{1358,63971,3},{1358,63976,3},{1358,63983,3}, {1358,63988,3},{1370,63991,3},{1378,63999,3},{1380,64004,3},{1378,64008,3}, {1375,64011,3},{1378,64018,3},{1383,64029,3},{1380,64038,3},{1380,64041,3}, {1380,64048,3},{1378,64049,3},{1373,64054,3},{1365,64058,3},{1362,64064,3}, {1367,64073,3},{1365,64083,3},{1362,64086,3},{1353,64089,3},{1345,64103,3}, {1348,64113,3},{1352,64116,3},{1353,64124,3},{1357,64128,3},{1357,64134,3}, {1358,64138,3},{1358,64139,3},{1357,64146,3},{1352,64149,3},{1348,64153,3}, {1343,64156,3},{1338,64156,3},{1332,64149,3},{1332,64141,3},{1330,64136,3}, {1328,64124,3},{1325,64123,3},{1323,64114,3},{1325,64109,3},{1325,64098,3}, {1327,64093,3},{1330,64091,3},{1332,64084,3},{1337,64079,3},{1335,64071,3}, {1337,64064,3},{1338,64061,3},{1343,64059,3},{1343,64054,3},{1345,64051,3}, {1345,64046,3},{1348,64039,3},{1353,64031,3},{1360,64024,3},{1358,64021,3}, {1353,64016,3},{1343,64014,3},{1338,64008,3},{1337,64003,3},{1338,63994,3}, {1340,63986,3},{1337,63979,3},{1337,63968,3},{1335,63964,3},{1335,63956,3}, {1330,63956,3},{1325,63954,3},{1320,63954,3},{1317,63954,3},{1317,63949,3}, {1317,63944,3},{1317,63939,3},{1317,63933,3},{1317,63928,3},{1317,63923,3}, {1317,63916,3},{1317,63911,3},{1317,63906,3},{1317,63901,3},{1317,63896,3}, {1317,63889,3},{1317,63884,3},{1317,63879,3},{1317,63874,3},{1317,63869,3}, {1315,63866,3},{1303,63861,3},{1095,64034,131},{1097,64034,3},{1093,64031,3}, {1092,64028,3},{1095,64026,3},{1095,64029,3},{1098,64031,3},{1100,64031,3}, {1097,64029,3},{1097,64028,3},{1097,64024,3},{1107,64026,3},{1107,64028,3}, {1110,64029,3},{1112,64033,3},{1113,64033,3},{1113,64036,3},{1117,64034,3}, {1118,64036,3},{1123,64034,3},{1117,64031,3},{1117,64028,3},{1113,64028,3}, {1113,64026,3},{1112,64024,3},{1110,64023,3},{1107,64019,3},{1100,64016,3}, {1100,64013,3},{1103,64009,3},{1108,64014,3},{1117,64016,3},{1122,64014,3}, {1123,64016,3},{1123,64013,3},{1122,64013,3},{1113,64014,3},{1112,64011,3}, {1113,64001,3},{1117,63999,3},{1118,63996,3},{1127,63996,3},{1130,63993,3}, {1137,63998,3},{1137,64003,3},{1140,64008,3},{1143,64009,3},{1138,64003,3}, {1138,64001,3},{1143,64001,3},{1145,64003,3},{1147,64001,3},{1135,63991,3}, {1138,63988,3},{1145,63991,3},{1145,63989,3},{1148,63989,3},{1150,63993,3}, {1148,63993,3},{1150,63994,3},{1148,63996,3},{1150,63996,3},{1153,63996,3}, {1153,63999,3},{1152,64001,3},{1157,64001,3},{1155,64004,3},{1153,64004,3}, {1153,64006,3},{1157,64008,3},{1157,64003,3},{1158,64003,3},{1160,64006,3}, {1157,64009,3},{1157,64011,3},{1162,64008,3},{1162,64013,3},{1158,64013,3}, {1157,64016,3},{1160,64016,3},{1162,64014,3},{1163,64018,3},{1162,64021,3}, {1160,64023,3},{1160,64024,3},{1162,64023,3},{1162,64024,3},{1158,64026,3}, {1158,64021,3},{1157,64023,3},{1153,64024,3},{1157,64026,3},{1157,64033,3}, {1158,64034,3},{1162,64034,3},{1160,64033,3},{1158,64029,3},{1160,64028,3}, {1162,64029,3},{1165,64029,3},{1162,64026,3},{1163,64026,3},{1163,64024,3}, {1165,64024,3},{1168,64024,3},{1165,64023,3},{1165,64019,3},{1167,64019,3}, {1168,64023,3},{1170,64023,3},{1170,64019,3},{1167,64018,3},{1165,64016,3}, {1168,64014,3},{1165,64013,3},{1168,64013,3},{1168,64016,3},{1170,64014,3}, {1172,64014,3},{1172,64018,3},{1175,64016,3},{1175,64014,3},{1173,64013,3}, {1173,64011,3},{1170,64011,3},{1167,64009,3},{1168,64009,3},{1170,64009,3}, {1175,64009,3},{1170,64008,3},{1170,64004,3},{1168,64004,3},{1167,64008,3}, {1165,64006,3},{1167,64004,3},{1163,64004,3},{1168,64003,3},{1168,64001,3}, {1167,64003,3},{1165,64001,3},{1160,64001,3},{1165,63998,3},{1163,63996,3}, {1158,63999,3},{1160,63998,3},{1158,63998,3},{1158,63996,3},{1160,63994,3}, {1157,63993,3},{1155,63991,3},{1160,63989,3},{1167,63994,3},{1168,63994,3}, {1165,63991,3},{1165,63988,3},{1170,63988,3},{1170,63984,3},{1168,63984,3}, {1167,63983,3},{1168,63981,3},{1172,63981,3},{1178,63983,3},{1183,63991,3}, {1187,63989,3},{1188,63993,3},{1187,63993,3},{1188,63994,3},{1188,63998,3}, {1187,64004,3},{1187,64016,3},{1190,64023,3},{1193,64029,3},{1192,64029,3}, {1185,64028,3},{1180,64029,3},{1178,64034,3},{1175,64038,3},{1175,64043,3}, {1177,64044,3},{1175,64041,3},{1180,64036,3},{1182,64031,3},{1183,64029,3}, {1195,64033,3},{1195,64038,3},{1197,64036,3},{1198,64028,3},{1197,64023,3}, {1192,64019,3},{1190,64016,3},{1192,64004,3},{1197,64001,3},{1197,63993,3}, {1193,63991,3},{1193,63986,3},{1183,63976,3},{1180,63971,3},{1178,63961,3}, {1175,63954,3},{1187,63956,3},{1187,63958,3},{1187,63963,3},{1188,63956,3}, {1177,63951,3},{1177,63948,3},{1182,63949,3},{1182,63948,3},{1180,63946,3}, {1177,63946,3},{1173,63939,3},{1178,63939,3},{1188,63943,3},{1197,63949,3}, {1200,63956,3},{1197,63963,3},{1202,63966,3},{1198,63961,3},{1202,63958,3}, {1202,63953,3},{1203,63949,3},{1200,63949,3},{1198,63943,3},{1197,63943,3}, {1198,63941,3},{1195,63943,3},{1192,63939,3},{1192,63928,3},{1188,63923,3}, {1190,63921,3},{1190,63916,3},{1193,63911,3},{1198,63908,3},{1200,63903,3}, {1210,63899,3},{1217,63903,3},{1220,63908,3},{1217,63908,3},{1217,63909,3}, {1222,63909,3},{1228,63918,3},{1228,63923,3},{1233,63924,3},{1235,63929,3}, {1233,63924,3},{1230,63921,3},{1228,63914,3},{1222,63904,3},{1223,63903,3}, {1225,63904,3},{1228,63904,3},{1223,63903,3},{1220,63903,3},{1218,63899,3}, {1220,63896,3},{1218,63894,3},{1217,63891,3},{1218,63886,3},{1222,63886,3}, {1227,63881,3},{1227,63876,3},{1232,63871,3},{1233,63868,3},{1232,63864,3}, {1235,63868,3},{1235,63881,3},{1235,63884,3},{1235,63896,3},{1243,63908,3}, {1247,63914,3},{1245,63919,3},{1247,63928,3},{1243,63939,3},{1245,63948,3}, {1243,63968,3},{1255,63996,3},{1262,64001,3},{1263,64008,3},{1267,64013,3}, {1268,64014,3},{1268,64021,3},{1268,64028,3},{1268,64033,3},{1268,64038,3}, {1268,64044,3},{1268,64049,3},{1268,64054,3},{1268,64059,3},{1268,64064,3}, {1268,64071,3},{1268,64076,3},{1268,64081,3},{1268,64086,3},{1268,64091,3}, {1268,64096,3},{1268,64103,3},{1268,64108,3},{1268,64113,3},{1268,64118,3}, {1268,64123,3},{1268,64129,3},{1268,64134,3},{1268,64139,3},{1268,64144,3}, {1268,64151,3},{1268,64156,3},{1268,64161,3},{1268,64164,3},{1257,64164,3}, {1247,64171,3},{1243,64171,3},{1240,64169,3},{1237,64169,3},{1232,64169,3}, {1230,64168,3},{1228,64166,3},{1225,64164,3},{1227,64161,3},{1225,64156,3}, {1228,64156,3},{1230,64154,3},{1228,64154,3},{1227,64153,3},{1228,64149,3}, {1225,64151,3},{1223,64144,3},{1220,64139,3},{1215,64139,3},{1215,64148,3}, {1212,64149,3},{1210,64154,3},{1205,64156,3},{1202,64166,3},{1190,64164,3}, {1178,64166,3},{1172,64164,3},{1168,64158,3},{1170,64156,3},{1172,64156,3}, {1172,64154,3},{1175,64151,3},{1173,64149,3},{1173,64151,3},{1168,64149,3}, {1167,64148,3},{1168,64143,3},{1167,64141,3},{1163,64138,3},{1165,64131,3}, {1163,64126,3},{1167,64121,3},{1167,64111,3},{1168,64108,3},{1162,64104,3}, {1152,64084,3},{1152,64068,3},{1135,64056,3},{1120,64051,3},{1102,64039,3}, {1095,64034,3},{57034,48988,128},{57031,49064,0},{57028,49184,0},{57013,49271,0}, {57008,49364,0},{57004,49409,0},{57004,49524,0},{57003,49601,0},{56991,49786,0}, {56991,49813,0},{56999,49969,0},{57003,50051,0},{57003,50293,0},{56999,50339,0}, {56991,50418,0},{56989,50486,0},{56993,50556,0},{57006,50563,0},{57023,50641,0}, {57026,50698,0},{57024,50951,0},{57021,51163,0},{57013,51439,0},{57011,51531,0}, {57013,51591,0},{57014,51623,0},{57028,51626,0},{57038,51674,0},{57039,51666,0}, {57048,51506,0},{57078,50648,0},{57091,50474,0},{57099,50391,0},{57109,50338,0}, {57133,50236,0},{57144,50213,0},{57156,50214,0},{57166,50236,0},{57178,50243,0}, {57221,50231,0},{57243,50264,0},{57264,50343,0},{57274,50358,0},{57279,50354,0}, {57289,50316,0},{57301,50244,0},{57323,50141,0},{57329,50093,0},{57339,50091,0}, {57346,50046,0},{57356,50061,0},{57371,50136,0},{57378,50128,0},{57386,50086,0}, {57398,49994,0},{57403,49946,0},{57404,49874,0},{57406,49848,0},{57411,49839,0}, {57423,49864,0},{57428,49889,0},{57436,50018,0},{57436,50056,0},{57429,50169,0}, {57428,50229,0},{57424,50279,0},{57423,50356,0},{57421,50378,0},{57408,50429,0}, {57403,50491,0},{57401,50544,0},{57401,50663,0},{57394,50851,0},{57396,50904,0}, {57398,50954,0},{57413,51043,0},{57431,51104,0},{57451,51143,0},{57466,51144,0}, {57473,51134,0},{57478,51108,0},{57489,50991,0},{57503,50913,0},{57523,50848,0}, {57548,50808,0},{57554,50793,0},{57558,50778,0},{57559,50758,0},{57566,50566,0}, {57574,50514,0},{57581,50453,0},{57593,50306,0},{57596,50276,0},{57599,50243,0}, {57621,50134,0},{57623,50098,0},{57621,50056,0},{57623,50011,0},{57628,49963,0}, {57634,49926,0},{57646,49901,0},{57651,49899,0},{57661,49904,0},{57674,49931,0}, {57684,49986,0},{57694,50116,0},{57701,50134,0},{57714,50151,0},{57723,50141,0}, {57729,50093,0},{57721,50033,0},{57719,49933,0},{57713,49908,0},{57711,49891,0}, {57711,49878,0},{57716,49866,0},{57726,49808,0},{57733,49793,0},{57734,49768,0}, {57738,49751,0},{57743,49738,0},{57751,49729,0},{57756,49741,0},{57769,49748,0}, {57779,49766,0},{57786,49756,0},{57793,49769,0},{57798,49754,0},{57803,49749,0}, {57808,49751,0},{57813,49763,0},{57821,49749,0},{57826,49768,0},{57826,49794,0}, {57818,49809,0},{57811,49829,0},{57808,49851,0},{57803,49863,0},{57799,49888,0}, {57811,49929,0},{57818,49913,0},{57821,49918,0},{57826,49938,0},{57828,49958,0}, {57828,49979,0},{57824,50013,0},{57828,50033,0},{57821,50046,0},{57823,50074,0}, {57821,50091,0},{57818,50114,0},{57819,50143,0},{57818,50154,0},{57814,50169,0}, {57811,50204,0},{57808,50226,0},{57799,50238,0},{57798,50229,0},{57796,50204,0}, {57793,50203,0},{57791,50209,0},{57791,50244,0},{57788,50294,0},{57789,50304,0}, {57791,50304,0},{57796,50316,0},{57806,50318,0},{57808,50326,0},{57806,50356,0}, {57803,50374,0},{57798,50414,0},{57794,50424,0},{57788,50419,0},{57788,50434,0}, {57776,50493,0},{57764,50536,0},{57759,50564,0},{57759,50586,0},{57761,50603,0}, {57768,50629,0},{57769,50603,0},{57774,50588,0},{57776,50584,0},{57779,50591,0}, {57778,50621,0},{57773,50654,0},{57776,50676,0},{57779,50678,0},{57786,50676,0}, {57791,50733,0},{57791,50756,0},{57793,50776,0},{57804,50783,0},{57806,50789,0}, {57803,50816,0},{57799,50818,0},{57798,50824,0},{57799,50828,0},{57811,50823,0}, {57814,50836,0},{57814,50849,0},{57804,50881,0},{57789,50904,0},{57789,50914,0}, {57794,50934,0},{57801,50933,0},{57804,50946,0},{57806,50948,0},{57813,50919,0}, {57821,50911,0},{57819,50929,0},{57821,50938,0},{57824,50944,0},{57824,50953,0}, {57828,50946,0},{57831,50918,0},{57836,50904,0},{57838,50913,0},{57836,50944,0}, {57834,50969,0},{57831,50996,0},{57833,51006,0},{57834,50998,0},{57836,50999,0}, {57843,50993,0},{57844,50984,0},{57844,50961,0},{57851,50924,0},{57853,50931,0}, {57856,50983,0},{57858,50991,0},{57863,50986,0},{57871,50921,0},{57883,50883,0}, {57891,50841,0},{57891,50808,0},{57894,50748,0},{57891,50728,0},{57886,50719,0}, {57886,50711,0},{57893,50591,0},{57898,50586,0},{57901,50588,0},{57906,50603,0}, {57908,50621,0},{57908,50646,0},{57913,50694,0},{57918,50681,0},{57924,50703,0}, {57924,50738,0},{57919,50761,0},{57913,50823,0},{57906,50843,0},{57899,50879,0}, {57898,50901,0},{57891,50964,0},{57893,50994,0},{57899,50998,0},{57903,50993,0}, {57906,50988,0},{57908,50963,0},{57909,50948,0},{57923,50919,0},{57928,50896,0}, {57936,50916,0},{57943,50924,0},{57946,50934,0},{57946,50944,0},{57944,51016,0}, {57946,51031,0},{57949,51059,0},{57949,51089,0},{57953,51104,0},{57953,51119,0}, {57961,51109,0},{57968,51109,0},{57969,51113,0},{57971,51143,0},{57978,51201,0}, {57974,51216,0},{57974,51234,0},{57971,51258,0},{57974,51269,0},{57983,51268,0}, {57986,51276,0},{57983,51314,0},{57986,51318,0},{57988,51331,0},{57989,51369,0}, {57986,51376,0},{57981,51383,0},{57979,51423,0},{57981,51456,0},{57983,51463,0}, {57989,51461,0},{57993,51474,0},{57996,51471,0},{57999,51474,0},{58003,51486,0}, {57999,51514,0},{58001,51521,0},{58004,51531,0},{58011,51528,0},{58019,51553,0}, {58019,51603,0},{58023,51658,0},{58019,51671,0},{58006,51693,0},{57999,51716,0}, {57999,51733,0},{58009,51763,0},{58014,51771,0},{58018,51758,0},{58028,51749,0}, {58039,51809,0},{58048,51833,0},{58054,51826,0},{58064,51826,0},{58064,51858,0}, {58071,51889,0},{58069,51924,0},{58074,51938,0},{58074,51953,0},{58074,51956,0}, {58081,51964,0},{58088,51988,0},{58086,52029,0},{58084,52043,0},{58079,52053,0}, {58079,52069,0},{58083,52118,0},{58078,52108,0},{58073,52108,0},{58069,52114,0}, {58066,52134,0},{58054,52126,0},{58051,52146,0},{58054,52154,0},{58054,52161,0}, {58051,52171,0},{58054,52191,0},{58056,52226,0},{58063,52274,0},{58058,52303,0}, {58063,52326,0},{58063,52348,0},{58063,52364,0},{58056,52394,0},{58058,52453,0}, {58058,52491,0},{58051,52526,0},{58049,52564,0},{58053,52603,0},{58053,52624,0}, {58058,52649,0},{58058,52671,0},{58063,52693,0},{58066,52734,0},{58068,52751,0}, {58068,52786,0},{58071,52801,0},{58069,52819,0},{58071,52846,0},{58071,52863,0}, {58069,52883,0},{58059,52918,0},{58058,52929,0},{58069,53069,0},{58068,53121,0}, {58069,53156,0},{58073,53201,0},{58071,53258,0},{58078,53326,0},{58076,53368,0}, {58076,53439,0},{58078,53451,0},{58083,53468,0},{58084,53478,0},{58084,53488,0}, {58081,53501,0},{58079,53534,0},{58088,53638,0},{58084,53671,0},{58096,53711,0}, {58106,53733,0},{58113,53754,0},{58111,53764,0},{58101,53778,0},{58099,53796,0}, {58098,53809,0},{58089,53813,0},{58089,53826,0},{58084,53849,0},{58084,53888,0}, {58084,53896,0},{58088,53916,0},{58088,53946,0},{58096,53948,0},{58099,53961,0}, {58098,53964,0},{58093,53964,0},{58088,53989,0},{58088,54009,0},{58091,54038,0}, {58089,54064,0},{58091,54069,0},{58103,54071,0},{58108,54061,0},{58118,54046,0}, {58129,54044,0},{58148,54088,0},{58148,54111,0},{58153,54133,0},{58153,54144,0}, {58148,54168,0},{58138,54176,0},{58134,54206,0},{58131,54218,0},{58119,54216,0}, {58118,54209,0},{58113,54184,0},{58108,54193,0},{58099,54176,0},{58096,54188,0}, {58098,54204,0},{58096,54213,0},{58094,54216,0},{58096,54231,0},{58096,54236,0}, {58089,54238,0},{58083,54253,0},{58069,54234,0},{58069,54249,0},{58068,54258,0}, {58069,54264,0},{58068,54274,0},{58061,54274,0},{58054,54264,0},{58051,54273,0}, {58056,54294,0},{58059,54388,0},{58078,54363,0},{58086,54371,0},{58088,54391,0}, {58089,54394,0},{58098,54379,0},{58109,54369,0},{58113,54373,0},{58119,54394,0}, {58118,54441,0},{58114,54456,0},{58109,54464,0},{58109,54471,0},{58111,54486,0}, {58111,54506,0},{58106,54523,0},{58081,54541,0},{58076,54541,0},{58071,54549,0}, {58069,54564,0},{58071,54568,0},{58074,54573,0},{58076,54606,0},{58071,54629,0}, {58069,54628,0},{58066,54609,0},{58064,54606,0},{58063,54626,0},{58058,54654,0}, {58061,54651,0},{58064,54658,0},{58066,54691,0},{58064,54693,0},{58061,54669,0}, {58059,54684,0},{58061,54696,0},{58063,54706,0},{58061,54708,0},{58058,54713,0}, {58053,54694,0},{58049,54706,0},{58049,54714,0},{58054,54721,0},{58058,54738,0}, {58066,54718,0},{58068,54719,0},{58069,54738,0},{58076,54703,0},{58078,54703,0}, {58078,54769,0},{58079,54788,0},{58081,54856,0},{58078,54856,0},{58076,54879,0}, {58074,54884,0},{58061,54874,0},{58054,54879,0},{58053,54886,0},{58039,54894,0}, {58024,54894,0},{58029,54909,0},{58038,54913,0},{58041,54924,0},{58044,54911,0}, {58048,54924,0},{58054,54928,0},{58059,54953,0},{58058,54986,0},{58059,54996,0}, {58059,55006,0},{58053,55043,0},{58051,55051,0},{58044,55061,0},{58038,55109,0}, {58034,55114,0},{58029,55133,0},{58029,55138,0},{58033,55136,0},{58029,55166,0}, {58026,55173,0},{58028,55214,0},{58026,55223,0},{58026,55234,0},{58026,55258,0}, {58023,55274,0},{58024,55296,0},{58023,55328,0},{58019,55336,0},{58016,55331,0}, {58014,55346,0},{58004,55359,0},{58001,55376,0},{57999,55474,0},{58008,55478,0}, {58018,55421,0},{58031,55359,0},{58044,55359,0},{58068,55384,0},{58071,55383,0}, {58073,55388,0},{58069,55403,0},{58064,55411,0},{58051,55471,0},{58051,55483,0}, {58054,55499,0},{58054,55509,0},{58051,55519,0},{58051,55529,0},{58053,55531,0}, {58063,55521,0},{58064,55518,0},{58064,55503,0},{58064,55496,0},{58068,55504,0}, {58068,55536,0},{58073,55524,0},{58083,55519,0},{58086,55531,0},{58088,55516,0}, {58089,55508,0},{58086,55464,0},{58083,55449,0},{58081,55438,0},{58079,55421,0}, {58083,55408,0},{58083,55394,0},{58088,55383,0},{58099,55383,0},{58106,55394,0}, {58108,55386,0},{58113,55389,0},{58119,55383,0},{58133,55364,0},{58143,55376,0}, {58141,55333,0},{58139,55319,0},{58139,55296,0},{58141,55283,0},{58141,55254,0}, {58143,55239,0},{58149,55229,0},{58161,55239,0},{58166,55224,0},{58173,55218,0}, {58176,55229,0},{58176,55248,0},{58173,55296,0},{58171,55321,0},{58168,55344,0}, {58168,55386,0},{58166,55394,0},{58158,55408,0},{58158,55429,0},{58154,55443,0}, {58156,55461,0},{58161,55483,0},{58159,55528,0},{58159,55543,0},{58166,55564,0}, {58171,55571,0},{58168,55594,0},{58171,55611,0},{58174,55618,0},{58176,55594,0}, {58179,55576,0},{58184,55566,0},{58186,55551,0},{58194,55544,0},{58196,55514,0}, {58199,55489,0},{58201,55414,0},{58203,55393,0},{58201,55351,0},{58204,55329,0}, {58201,55271,0},{58203,55236,0},{58219,55193,0},{58228,55194,0},{58246,55178,0}, {58256,55188,0},{58261,55211,0},{58261,55239,0},{58259,55256,0},{58261,55278,0}, {58256,55304,0},{58244,55301,0},{58243,55291,0},{58239,55294,0},{58238,55271,0}, {58234,55268,0},{58233,55279,0},{58236,55321,0},{58234,55328,0},{58229,55319,0}, {58228,55324,0},{58228,55341,0},{58236,55409,0},{58234,55458,0},{58226,55481,0}, {58228,55498,0},{58231,55504,0},{58231,55523,0},{58233,55534,0},{58229,55551,0}, {58234,55579,0},{58236,55613,0},{58236,55633,0},{58239,55646,0},{58236,55721,0}, {58234,55728,0},{58236,55749,0},{58233,55749,0},{58223,55729,0},{58219,55733,0}, {58219,55749,0},{58224,55773,0},{58219,55803,0},{58214,55833,0},{58208,55911,0}, {58201,55938,0},{58204,55956,0},{58211,55953,0},{58213,55964,0},{58213,55981,0}, {58216,56001,0},{58216,56016,0},{58213,56036,0},{58214,56054,0},{58218,56081,0}, {58219,56099,0},{58226,56104,0},{58234,56094,0},{58243,56091,0},{58244,56094,0}, {58233,56124,0},{58231,56138,0},{58218,56148,0},{58214,56164,0},{58214,56179,0}, {58218,56178,0},{58219,56189,0},{58219,56204,0},{58216,56216,0},{58216,56224,0}, {58214,56246,0},{58218,56244,0},{58221,56291,0},{58214,56346,0},{58211,56369,0}, {58211,56396,0},{58209,56413,0},{58203,56449,0},{58221,56504,0},{58219,56536,0}, {58219,56549,0},{58221,56568,0},{58226,56578,0},{58229,56603,0},{58246,56613,0}, {58259,56608,0},{58268,56601,0},{58271,56584,0},{58273,56581,0},{58276,56589,0}, {58276,56596,0},{58273,56651,0},{58271,56671,0},{58269,56699,0},{58268,56713,0}, {58261,56728,0},{58256,56728,0},{58253,56721,0},{58248,56701,0},{58243,56699,0}, {58234,56678,0},{58231,56678,0},{58224,56733,0},{58228,56743,0},{58224,56758,0}, {58223,56786,0},{58216,56809,0},{58213,56828,0},{58206,56839,0},{58204,56853,0}, {58204,56871,0},{58208,56889,0},{58214,56906,0},{58214,56929,0},{58216,56936,0}, {58221,56944,0},{58228,56946,0},{58236,56956,0},{58236,56961,0},{58223,56963,0}, {58214,56981,0},{58203,56989,0},{58199,56999,0},{58194,57026,0},{58184,57068,0}, {58183,57088,0},{58184,57114,0},{58184,57148,0},{58183,57176,0},{58184,57191,0}, {58183,57209,0},{58179,57214,0},{58176,57211,0},{58174,57214,0},{58156,57293,0}, {58143,57348,0},{58143,57354,0},{58148,57368,0},{58151,57423,0},{58159,57458,0}, {58168,57458,0},{58173,57464,0},{58179,57444,0},{58189,57433,0},{58196,57438,0}, {58204,57436,0},{58206,57439,0},{58208,57468,0},{58208,57483,0},{58201,57494,0}, {58196,57508,0},{58196,57524,0},{58199,57533,0},{58204,57531,0},{58221,57506,0}, {58231,57508,0},{58234,57516,0},{58226,57593,0},{58216,57614,0},{58208,57641,0}, {58203,57646,0},{58198,57673,0},{58191,57683,0},{58176,57674,0},{58174,57674,0}, {58171,57681,0},{58171,57703,0},{58176,57724,0},{58184,57799,0},{58181,57824,0}, {58183,57854,0},{58183,57864,0},{58176,57876,0},{58154,57826,0},{58151,57824,0}, {58149,57834,0},{58149,57849,0},{58154,57868,0},{58158,57894,0},{58158,57899,0}, {58154,57904,0},{58154,57924,0},{58163,57969,0},{58166,57998,0},{58169,58016,0}, {58169,58054,0},{58161,58079,0},{58166,58091,0},{58171,58121,0},{58169,58128,0}, {58164,58143,0},{58174,58163,0},{58178,58181,0},{58183,58189,0},{58183,58196,0}, {58179,58206,0},{58179,58216,0},{58184,58218,0},{58188,58229,0},{58189,58249,0}, {58188,58276,0},{58193,58289,0},{58194,58301,0},{58198,58363,0},{58196,58388,0}, {58201,58398,0},{58208,58421,0},{58209,58459,0},{58206,58501,0},{58208,58509,0}, {58211,58528,0},{58218,58601,0},{58223,58624,0},{58231,58673,0},{58234,58684,0}, {58248,58738,0},{58249,58764,0},{58253,58778,0},{58261,58791,0},{58278,58808,0}, {58296,58856,0},{58306,58844,0},{58309,58848,0},{58316,58841,0},{58326,58841,0}, {58333,58848,0},{58338,58838,0},{58346,58849,0},{58353,58838,0},{58364,58826,0}, {58366,58819,0},{58369,58804,0},{58376,58793,0},{58389,58783,0},{58403,58784,0}, {58409,58786,0},{58418,58796,0},{58433,58796,0},{58436,58793,0},{58436,58784,0}, {58456,58779,0},{58469,58763,0},{58476,58766,0},{58484,58754,0},{58491,58753,0}, {58496,58748,0},{58499,58748,0},{58511,58739,0},{58514,58721,0},{58518,58718,0}, {58521,58703,0},{58524,58696,0},{58533,58694,0},{58543,58686,0},{58551,58701,0}, {58568,58703,0},{58573,58691,0},{58581,58681,0},{58594,58653,0},{58598,58656,0}, {58598,58664,0},{58598,58709,0},{58599,58713,0},{58608,58709,0},{58609,58716,0}, {58608,58724,0},{58601,58734,0},{58599,58759,0},{58599,58786,0},{58601,58801,0}, {58611,58831,0},{58629,58859,0},{58636,58866,0},{58639,58864,0},{58641,58859,0}, {58639,58836,0},{58641,58828,0},{58644,58803,0},{58649,58791,0},{58654,58786,0}, {58656,58789,0},{58658,58796,0},{58656,58819,0},{58656,58834,0},{58659,58843,0}, {58673,58833,0},{58686,58818,0},{58688,58823,0},{58693,58841,0},{58698,58843,0}, {58701,58838,0},{58703,58824,0},{58706,58819,0},{58708,58824,0},{58706,58853,0}, {58708,58861,0},{58713,58878,0},{58718,58868,0},{58716,58858,0},{58713,58851,0}, {58714,58844,0},{58718,58839,0},{58729,58813,0},{58731,58824,0},{58738,58811,0}, {58739,58814,0},{58744,58856,0},{58748,58858,0},{58753,58851,0},{58754,58854,0}, {58754,58864,0},{58756,58864,0},{58758,58851,0},{58756,58833,0},{58758,58833,0}, {58761,58839,0},{58763,58868,0},{58764,58864,0},{58764,58846,0},{58769,58846,0}, {58776,58864,0},{58776,58884,0},{58783,58893,0},{58784,58891,0},{58781,58879,0}, {58783,58858,0},{58786,58853,0},{58788,58819,0},{58783,58808,0},{58781,58791,0}, {58781,58773,0},{58783,58774,0},{58786,58778,0},{58788,58771,0},{58788,58769,0}, {58796,58776,0},{58803,58788,0},{58806,58781,0},{58809,58778,0},{58816,58788,0}, {58818,58776,0},{58828,58786,0},{58831,58788,0},{58831,58793,0},{58828,58794,0}, {58828,58801,0},{58828,58806,0},{58831,58809,0},{58843,58819,0},{58841,58826,0}, {58843,58828,0},{58844,58831,0},{58846,58838,0},{58846,58844,0},{58843,58851,0}, {58839,58848,0},{58831,58849,0},{58823,58848,0},{58816,58853,0},{58813,58863,0}, {58816,58869,0},{58814,58878,0},{58804,58888,0},{58803,58893,0},{58804,58896,0}, {58811,58894,0},{58821,58896,0},{58824,58889,0},{58828,58896,0},{58829,58894,0}, {58833,58878,0},{58844,58889,0},{58849,58898,0},{58853,58898,0},{58859,58883,0}, {58874,58886,0},{58876,58891,0},{58881,58918,0},{58879,58924,0},{58874,58939,0}, {58869,58939,0},{58866,58958,0},{58869,58964,0},{58873,58958,0},{58874,58958,0}, {58879,58964,128},{58881,58969,0},{58884,58964,0},{58889,58969,0},{58893,58968,0}, {58893,58976,0},{58896,58978,0},{58903,58964,0},{58906,58953,0},{58911,58964,0}, {58919,58969,0},{58923,58966,0},{58926,58978,0},{58924,58986,0},{58923,58988,0}, {58921,59003,0},{58919,59013,0},{58921,59018,0},{58923,59019,0},{58928,59013,0}, {58931,59006,0},{58938,59008,0},{58939,59021,0},{58938,59026,0},{58941,59029,0}, {58939,59034,0},{58943,59043,0},{58943,59056,0},{58939,59054,0},{58931,59069,0}, {58933,59076,0},{58938,59089,0},{58941,59094,0},{58953,59071,0},{58963,59069,0}, {58963,59073,0},{58958,59103,0},{58958,59104,0},{58963,59104,0},{58964,59109,0}, {58966,59108,0},{58969,59101,0},{58974,59096,0},{58973,59113,0},{58969,59119,0}, {58968,59133,0},{58971,59133,0},{58976,59119,0},{58978,59121,0},{58978,59126,0}, {58981,59119,0},{58983,59119,0},{58984,59124,0},{58984,59131,0},{58983,59139,0}, {58979,59141,0},{58978,59146,0},{58979,59151,0},{58983,59149,0},{58984,59151,0}, {58984,59161,0},{58986,59164,0},{58989,59154,0},{58988,59148,0},{58991,59148,0}, {58991,59136,0},{58993,59131,0},{58998,59138,0},{59001,59139,0},{59003,59131,0}, {59006,59126,0},{59006,59134,0},{59018,59128,0},{59021,59138,0},{59024,59134,0}, {59028,59144,0},{59029,59141,0},{59033,59143,0},{59036,59154,0},{59033,59153,0}, {59033,59171,0},{59028,59196,0},{59029,59209,0},{59026,59214,0},{59021,59214,0}, {59024,59219,0},{59023,59226,0},{59024,59233,0},{59026,59239,0},{59033,59233,0}, {59034,59234,0},{59036,59223,0},{59043,59218,0},{59043,59221,0},{59044,59231,0}, {59046,59234,0},{59046,59253,0},{59051,59259,0},{59056,59243,0},{59056,59266,0}, {59046,59283,0},{59049,59301,0},{59051,59303,0},{59051,59294,0},{59053,59286,0}, {59058,59283,0},{59061,59274,0},{59063,59288,0},{59071,59284,0},{59073,59291,0}, {59078,59291,0},{59076,59298,0},{59071,59301,0},{59073,59306,0},{59071,59309,0}, {59066,59304,0},{59066,59311,0},{59063,59308,0},{59059,59313,0},{59061,59318,0}, {59063,59316,0},{59064,59321,0},{59068,59326,0},{59068,59331,0},{59064,59333,0}, {59068,59344,0},{59073,59346,0},{59076,59343,0},{59079,59351,0},{59076,59356,0}, {59078,59359,0},{59084,59361,0},{59084,59364,0},{59083,59363,0},{59079,59371,0}, {59081,59376,0},{59084,59379,0},{59083,59386,0},{59084,59389,0},{59086,59393,0}, {59088,59384,0},{59093,59381,0},{59094,59386,0},{59096,59394,0},{59099,59398,0}, {59099,59408,0},{59098,59403,0},{59096,59408,0},{59098,59414,0},{59098,59429,0}, {59101,59428,0},{59104,59428,0},{59109,59443,0},{59113,59443,0},{59114,59438,0}, {59118,59443,0},{59121,59439,0},{59123,59451,0},{59129,59434,0},{59133,59438,0}, {59134,59446,0},{59133,59451,0},{59131,59458,0},{59133,59461,0},{59136,59466,0}, {59138,59486,0},{59144,59508,0},{59143,59534,0},{59146,59541,0},{59149,59539,0}, {59151,59549,0},{59156,59546,0},{59159,59551,0},{59158,59554,0},{59151,59553,0}, {59149,59556,0},{59151,59563,0},{59149,59569,0},{59148,59579,0},{59146,59589,0}, {59149,59596,0},{59149,59603,0},{59153,59603,0},{59153,59594,0},{59154,59593,0}, {59158,59603,0},{59166,59603,0},{59169,59618,0},{59166,59628,0},{59169,59634,0}, {59171,59644,0},{59173,59648,0},{59176,59644,0},{59183,59644,0},{59188,59683,0}, {59191,59698,0},{59189,59719,0},{59193,59724,0},{59196,59721,0},{59199,59723,0}, {59194,59733,0},{59196,59738,0},{59199,59739,0},{59206,59749,0},{59206,59758,0}, {59209,59768,0},{59209,59781,0},{59214,59808,0},{59214,59821,0},{59211,59834,0}, {59209,59838,0},{59201,59838,0},{59199,59843,0},{59198,59841,0},{59194,59846,0}, {59191,59841,0},{59181,59864,0},{59176,59863,0},{59171,59856,0},{59173,59848,0}, {59174,59843,0},{59173,59838,0},{59173,59823,0},{59174,59819,0},{59184,59824,0}, {59189,59821,0},{59189,59799,0},{59186,59794,0},{59183,59799,0},{59181,59799,0}, {59183,59786,0},{59181,59778,0},{59178,59769,0},{59176,59778,0},{59174,59774,0}, {59171,59756,0},{59169,59749,0},{59169,59731,0},{59166,59726,0},{59164,59716,0}, {59153,59701,0},{59153,59696,0},{59146,59694,0},{59144,59684,0},{59141,59676,0}, {59136,59669,0},{59116,59654,0},{59113,59644,0},{59109,59646,0},{59108,59658,0}, {59106,59659,0},{59103,59658,0},{59099,59644,0},{59096,59649,0},{59096,59659,0}, {59094,59663,0},{59088,59663,0},{59083,59658,0},{59086,59636,0},{59093,59636,0}, {59089,59619,0},{59093,59609,0},{59099,59604,0},{59104,59591,0},{59103,59581,0}, {59101,59578,0},{59091,59584,0},{59086,59589,0},{59083,59586,0},{59083,59578,0}, {59084,59566,0},{59096,59568,0},{59098,59564,0},{59094,59541,0},{59088,59529,0}, {59084,59518,0},{59083,59518,0},{59079,59514,0},{59078,59499,0},{59073,59494,0}, {59066,59474,0},{59053,59459,0},{59044,59441,0},{59041,59431,0},{59039,59429,0}, {59038,59436,0},{59036,59433,0},{59038,59421,0},{59036,59411,0},{59033,59404,0}, {59031,59393,0},{59029,59384,0},{59021,59376,0},{59014,59376,0},{59013,59373,0}, {59013,59359,0},{59018,59348,0},{59018,59339,0},{59011,59333,0},{59006,59323,0}, {58999,59331,0},{58993,59328,0},{58988,59338,0},{58984,59364,0},{58983,59368,0}, {58981,59364,0},{58979,59358,0},{58981,59333,0},{58979,59326,0},{58976,59323,0}, {58973,59324,0},{58964,59316,0},{58959,59298,0},{58944,59291,0},{58936,59299,0}, {58934,59321,0},{58924,59331,0},{58923,59336,0},{58923,59344,0},{58919,59349,0}, {58923,59364,0},{58926,59363,0},{58928,59371,0},{58933,59378,0},{58931,59386,0}, {58929,59401,0},{58936,59403,0},{58941,59398,0},{58944,59404,0},{58944,59411,0}, {58939,59421,0},{58931,59426,0},{58929,59429,0},{58931,59434,0},{58936,59438,0}, {58944,59434,0},{58946,59436,0},{58946,59441,0},{58943,59451,0},{58943,59476,0}, {58941,59481,0},{58931,59469,0},{58924,59463,0},{58921,59451,0},{58913,59446,0}, {58906,59433,0},{58903,59423,0},{58908,59416,0},{58913,59416,0},{58916,59413,0}, {58924,59396,0},{58921,59389,0},{58913,59384,0},{58911,59371,0},{58908,59368,0}, {58893,59371,0},{58889,59364,0},{58893,59354,0},{58904,59349,0},{58916,59331,0}, {58918,59316,0},{58918,59294,0},{58914,59283,0},{58914,59263,0},{58913,59258,0}, {58909,59248,0},{58908,59248,0},{58901,59271,0},{58893,59293,0},{58888,59278,0}, {58881,59268,0},{58878,59269,0},{58876,59283,0},{58871,59279,0},{58869,59281,0}, {58869,59293,0},{58864,59288,0},{58863,59274,0},{58868,59263,0},{58884,59251,0}, {58896,59229,0},{58903,59221,0},{58906,59219,0},{58911,59194,0},{58914,59186,0}, {58919,59184,0},{58916,59176,0},{58914,59168,0},{58908,59156,0},{58901,59158,0}, {58901,59176,0},{58898,59178,0},{58896,59171,0},{58896,59149,0},{58894,59149,0}, {58891,59158,0},{58889,59139,0},{58888,59138,0},{58884,59146,0},{58883,59154,0}, {58878,59156,0},{58878,59146,0},{58878,59139,0},{58879,59133,0},{58879,59126,0}, {58878,59123,0},{58869,59121,0},{58869,59126,0},{58864,59116,0},{58859,59123,0}, {58861,59131,0},{58859,59143,0},{58858,59158,0},{58851,59164,0},{58846,59161,0}, {58844,59153,0},{58843,59143,0},{58848,59101,0},{58848,59078,0},{58844,59069,0}, {58841,59066,0},{58843,59054,0},{58839,59053,0},{58836,59043,0},{58834,59043,0}, {58831,59053,0},{58826,59053,0},{58826,59066,0},{58821,59069,0},{58814,59044,0}, {58813,59048,0},{58811,59059,0},{58804,59059,0},{58803,59053,0},{58804,59041,0}, {58801,59036,0},{58804,59021,0},{58798,59008,0},{58803,59004,0},{58803,58998,0}, {58796,58984,0},{58793,58989,0},{58786,58978,0},{58779,58974,0},{58778,58978,0}, {58774,58998,0},{58771,58998,0},{58769,59011,0},{58764,58994,0},{58761,58981,0}, {58758,58979,0},{58753,58986,0},{58748,58974,0},{58741,58988,0},{58741,59001,0}, {58739,59003,0},{58726,58964,0},{58723,58963,0},{58719,58969,0},{58723,58983,0}, {58723,59001,0},{58719,59006,0},{58723,59018,0},{58734,59039,0},{58729,59044,0}, {58729,59054,0},{58724,59059,0},{58721,59058,0},{58716,59048,0},{58714,59036,0}, {58716,59024,0},{58708,59006,0},{58704,58988,0},{58699,58991,0},{58699,59031,0}, {58696,59039,0},{58691,59036,0},{58689,59024,0},{58686,59019,0},{58683,59004,0}, {58679,59011,0},{58674,59014,0},{58673,59021,0},{58673,59036,0},{58668,59044,0}, {58666,59053,0},{58669,59071,0},{58659,59088,0},{58658,59103,0},{58658,59123,0}, {58661,59123,0},{58661,59136,0},{58663,59136,0},{58669,59114,0},{58676,59111,0}, {58676,59114,0},{58676,59118,0},{58673,59126,0},{58676,59131,0},{58678,59129,0}, {58681,59141,0},{58686,59146,0},{58689,59154,0},{58691,59166,0},{58693,59198,0}, {58689,59224,0},{58689,59243,0},{58686,59243,0},{58683,59234,0},{58688,59216,0}, {58681,59176,0},{58678,59164,0},{58669,59156,0},{58668,59149,0},{58664,59153,0}, {58659,59198,0},{58653,59214,0},{58651,59211,0},{58653,59196,0},{58646,59199,0}, {58644,59191,0},{58643,59199,0},{58641,59178,0},{58638,59168,0},{58636,59164,0}, {58633,59179,0},{58633,59206,0},{58631,59208,0},{58629,59208,0},{58623,59193,0}, {58618,59186,0},{58614,59188,0},{58614,59199,0},{58621,59218,0},{58613,59231,0}, {58609,59234,0},{58604,59231,0},{58601,59234,0},{58599,59243,0},{58601,59259,0}, {58599,59269,0},{58598,59274,0},{58588,59283,0},{58586,59299,0},{58583,59296,0}, {58578,59299,0},{58563,59298,0},{58559,59293,0},{58558,59278,0},{58551,59276,0}, {58546,59298,0},{58539,59294,0},{58538,59299,0},{58529,59343,0},{58521,59349,0}, {58516,59346,0},{58508,59336,0},{58499,59293,0},{58488,59306,0},{58483,59314,0}, {58481,59323,0},{58486,59353,0},{58486,59388,0},{58484,59393,0},{58479,59399,0}, {58476,59396,0},{58474,59381,0},{58473,59376,0},{58466,59373,0},{58464,59361,0}, {58461,59356,0},{58461,59346,0},{58459,59334,0},{58444,59328,0},{58443,59331,0}, {58443,59341,0},{58443,59356,0},{58446,59363,0},{58451,59378,0},{58453,59386,0}, {58451,59401,0},{58446,59409,0},{58436,59404,0},{58431,59394,0},{58429,59406,0}, {58426,59408,0},{58424,59424,0},{58416,59441,0},{58414,59438,0},{58413,59411,0}, {58411,59408,0},{58409,59413,0},{58408,59434,0},{58399,59441,0},{58399,59436,0}, {58399,59428,0},{58403,59413,0},{58403,59408,0},{58399,59408,0},{58394,59424,0}, {58391,59411,0},{58393,59393,0},{58391,59384,0},{58389,59383,0},{58386,59393,0}, {58381,59389,0},{58379,59393,0},{58379,59401,0},{58384,59411,0},{58384,59421,0}, {58374,59433,0},{58371,59454,0},{58361,59459,0},{58358,59454,0},{58359,59436,0}, {58353,59423,0},{58349,59406,0},{58348,59349,0},{58344,59341,0},{58341,59344,0}, {58334,59343,0},{58331,59349,0},{58329,59368,0},{58328,59388,0},{58329,59413,0}, {58333,59434,0},{58328,59451,0},{58329,59456,0},{58333,59456,0},{58338,59461,0}, {58336,59468,0},{58334,59469,0},{58326,59469,0},{58324,59461,0},{58318,59433,0}, {58318,59449,0},{58314,59463,0},{58304,59471,0},{58306,59448,0},{58306,59443,0}, {58304,59441,0},{58299,59438,0},{58299,59463,0},{58296,59474,0},{58291,59468,0}, {58289,59456,0},{58289,59436,0},{58293,59406,0},{58291,59393,0},{58288,59393,0}, {58283,59381,0},{58279,59398,0},{58274,59398,0},{58269,59384,0},{58268,59389,0}, {58264,59443,0},{58271,59468,0},{58271,59479,0},{58269,59484,0},{58263,59489,0}, {58256,59488,0},{58253,59486,0},{58246,59473,0},{58244,59478,0},{58238,59471,0}, {58233,59474,0},{58241,59491,0},{58238,59509,0},{58238,59523,0},{58248,59531,0}, {58251,59539,0},{58249,59551,0},{58246,59559,0},{58236,59558,0},{58228,59548,0}, {58213,59551,0},{58208,59519,0},{58209,59511,0},{58213,59503,0},{58219,59499,0}, {58221,59489,0},{58221,59486,0},{58213,59483,0},{58204,59481,0},{58199,59474,0}, {58201,59461,0},{58208,59464,0},{58214,59456,0},{58209,59456,0},{58204,59446,0}, {58208,59426,0},{58218,59414,0},{58221,59394,0},{58224,59366,0},{58224,59353,0}, {58221,59343,0},{58219,59348,0},{58214,59381,0},{58211,59383,0},{58211,59379,0}, {58214,59358,0},{58208,59368,0},{58206,59364,0},{58204,59383,0},{58201,59391,0}, {58199,59386,0},{58201,59361,0},{58201,59351,0},{58198,59351,0},{58191,59374,0}, {58183,59374,0},{58183,59383,0},{58189,59391,0},{58191,59398,0},{58186,59423,0}, {58183,59454,0},{58179,59468,0},{58166,59443,0},{58164,59448,0},{58168,59471,0}, {58168,59476,0},{58164,59476,0},{58161,59468,0},{58156,59464,0},{58154,59451,0}, {58151,59459,0},{58141,59443,0},{58139,59429,0},{58141,59413,0},{58148,59403,0}, {58148,59396,0},{58146,59384,0},{58148,59369,0},{58144,59358,0},{58141,59374,0}, {58134,59381,0},{58134,59391,0},{58129,59404,0},{58129,59428,0},{58128,59433,0}, {58116,59416,0},{58111,59394,0},{58111,59379,0},{58106,59374,0},{58103,59393,0}, {58106,59423,0},{58111,59451,0},{58109,59468,0},{58106,59469,0},{58099,59463,0}, {58094,59433,0},{58091,59439,0},{58088,59438,0},{58083,59423,0},{58083,59393,0}, {58086,59378,0},{58084,59348,0},{58093,59316,0},{58091,59309,0},{58089,59306,0}, {58073,59328,0},{58066,59344,0},{58054,59349,0},{58041,59324,0},{58038,59296,0}, {58038,59281,0},{58041,59276,0},{58059,59273,0},{58064,59261,0},{58069,59231,0}, {58076,59216,0},{58074,59208,0},{58064,59213,0},{58053,59229,0},{58046,59229,0}, {58044,59214,0},{58048,59189,0},{58046,59181,0},{58039,59171,0},{58036,59134,0}, {58034,59139,0},{58034,59158,0},{58034,59208,0},{58034,59213,0},{58023,59228,0}, {58021,59221,0},{58021,59183,0},{58019,59171,0},{58016,59124,0},{58009,59098,0}, {58004,59089,0},{58003,59111,0},{58006,59151,0},{58004,59218,0},{58004,59226,0}, {58001,59224,0},{57986,59174,0},{57968,59086,0},{57959,59031,0},{57963,59003,0}, {57959,58986,0},{57958,58978,0},{57951,58991,0},{57948,58979,0},{57933,58856,0}, {57928,58771,0},{57929,58733,0},{57923,58708,0},{57918,58668,0},{57916,58633,0}, {57913,58614,0},{57913,58598,0},{57914,58533,0},{57919,58518,0},{57923,58498,0}, {57928,58488,0},{57933,58489,0},{57934,58484,0},{57933,58468,0},{57931,58449,0}, {57929,58424,0},{57933,58399,0},{57933,58364,0},{57931,58299,0},{57933,58284,0}, {57934,58264,0},{57941,58236,0},{57943,58204,0},{57943,58133,0},{57946,58066,0}, {57953,57971,0},{57958,57888,0},{57956,57834,0},{57954,57749,0},{57949,57703,0}, {57941,57611,0},{57921,57456,0},{57896,57271,0},{57889,57236,0},{57873,57141,0}, {57859,57078,0},{57851,57046,0},{57841,57026,0},{57818,57006,0},{57809,57008,0}, {57803,57026,0},{57796,57101,0},{57783,57204,0},{57773,57268,0},{57763,57318,0}, {57761,57319,0},{57754,57299,0},{57754,57333,0},{57751,57353,0},{57749,57374,0}, {57741,57428,0},{57733,57483,0},{57726,57593,0},{57716,57689,0},{57706,57758,0}, {57694,57808,0},{57688,57814,0},{57679,57799,0},{57666,57751,0},{57658,57674,0}, {57654,57618,0},{57653,57581,0},{57656,57498,0},{57661,57446,0},{57661,57433,0}, {57658,57414,0},{57651,57408,0},{57631,57434,0},{57624,57408,0},{57623,57371,0}, {57621,57368,0},{57618,57383,0},{57604,57411,0},{57594,57416,0},{57586,57433,0}, {57583,57453,0},{57574,57459,0},{57559,57496,0},{57571,57534,0},{57576,57543,0}, {57603,57501,0},{57608,57504,0},{57609,57518,0},{57609,57566,0},{57606,57638,0}, {57606,57751,0},{57604,57873,0},{57601,57899,0},{57598,57921,0},{57583,57973,0}, {57566,57988,0},{57553,57958,0},{57543,57913,0},{57538,57876,0},{57536,57823,0}, {57533,57746,0},{57534,57699,0},{57534,57661,0},{57541,57558,0},{57541,57534,0}, {57539,57526,0},{57534,57544,0},{57533,57581,0},{57528,57604,0},{57523,57653,0}, {57516,57768,0},{57519,57813,0},{57518,57843,0},{57506,57888,0},{57479,57956,0}, {57463,58019,0},{57451,58099,0},{57444,58168,0},{57433,58329,0},{57423,58543,0}, {57401,58743,0},{57373,58944,0},{57313,59378,0},{57293,59573,0},{57281,59628,0}, {57273,59658,0},{57248,59624,0},{57239,59629,0},{57233,59668,0},{57233,59711,0}, {57236,59748,0},{57291,59959,0},{57303,60016,0},{57323,60173,0},{57331,60296,0}, {57333,60349,0},{57343,60471,0},{57348,60591,0},{57356,60821,0},{57354,60964,0}, {57348,61108,0},{57351,61223,0},{57361,61284,0},{57366,61303,0},{57386,61323,0}, {57399,61383,0},{57451,61744,0},{57479,61881,0},{57494,61964,0},{57499,62011,0}, {57503,62049,0},{57503,62099,0},{57499,62233,0},{57498,62294,0},{57488,62411,0}, {57488,62474,0},{57491,62493,0},{57501,62481,0},{57521,62528,0},{57533,62538,0}, {57554,62509,0},{57569,62518,0},{57578,62481,0},{57581,62473,0},{57594,62521,0}, {57608,62588,0},{57613,62593,0},{57619,62558,0},{57621,62531,0},{57631,62209,0}, {57644,62083,0},{57651,61996,0},{57654,61968,0},{57661,61951,0},{57678,61941,0}, {57686,61924,0},{57691,61939,0},{57691,61983,0},{57694,61969,0},{57698,61978,0}, {57698,61948,0},{57699,61943,0},{57709,61941,0},{57721,61953,0},{57728,61963,0}, {57729,61976,0},{57726,62019,0},{57726,62056,0},{57729,62024,0},{57731,62011,0}, {57744,62001,0},{57751,62014,0},{57753,62036,0},{57754,62093,0},{57769,62149,0}, {57789,62258,0},{57803,62349,0},{57808,62369,0},{57814,62379,0},{57826,62358,0}, {57831,62389,0},{57831,62403,0},{57824,62418,0},{57823,62431,0},{57831,62469,0}, {57838,62494,0},{57874,62698,0},{57879,62721,0},{57884,62729,0},{57899,62718,0}, {57904,62729,0},{57913,62728,0},{57913,62743,0},{57904,62774,0},{57901,62798,0}, {57916,62879,0},{57918,62884,0},{57919,62881,0},{57923,62858,0},{57923,62826,0}, {57921,62801,0},{57928,62829,0},{57931,62821,0},{57933,62824,0},{57934,62853,0}, {57933,62876,0},{57929,62904,0},{57933,62923,0},{57939,62948,0},{57943,62978,0}, {57948,63016,0},{57953,63093,0},{57968,63188,0},{57973,63244,0},{57981,63274,0}, {57986,63331,0},{57986,63348,0},{57981,63356,0},{57981,63366,0},{57988,63404,0}, {57986,63434,0},{57988,63449,0},{57993,63461,0},{57996,63478,0},{57996,63536,0}, {57999,63603,0},{58009,63634,0},{58016,63638,0},{58018,63628,0},{58019,63616,0}, {58016,63569,0},{58016,63566,0},{58019,63566,0},{58029,63593,0},{58031,63609,0}, {58036,63624,0},{58053,63661,0},{58056,63703,0},{58061,63724,0},{58079,63753,0}, {58086,63789,0},{58091,63876,0},{58094,63899,0},{58093,63943,0},{58099,63968,0}, {58103,63998,0},{58121,64053,0},{58124,64103,0},{58141,64164,0},{58143,64163,0}, {58143,64143,0},{58146,64124,0},{58144,64096,0},{58153,64089,0},{58154,64079,0}, {58153,64068,0},{58144,64053,0},{58139,64026,0},{58133,63994,0},{58129,63956,0}, {58129,63901,0},{58136,63851,0},{58138,63844,0},{58139,63848,0},{58141,63859,0}, {58141,63873,0},{58143,63879,0},{58153,63904,0},{58159,63928,0},{58161,63929,0}, {58163,63924,0},{58161,63911,0},{58158,63898,0},{58158,63879,0},{58153,63858,0}, {58154,63849,0},{58158,63846,0},{58168,63868,0},{58178,63903,0},{58194,63909,0}, {58204,63934,0},{58204,63954,0},{58209,63978,0},{58216,63999,0},{58218,64008,0}, {58216,64059,0},{58213,64081,0},{58213,64089,0},{58221,64114,0},{58223,64134,0}, {58228,64144,0},{58229,64159,0},{58236,64163,0},{58236,64138,0},{58244,64126,0}, {58251,64093,0},{58256,64089,0},{58258,64101,0},{58256,64166,0},{58253,64191,0}, {58256,64208,0},{58263,64221,0},{58271,64274,0},{58281,64313,0},{58293,64328,0}, {58301,64364,0},{58313,64391,0},{58324,64403,0},{58333,64404,0},{58348,64396,0}, {58364,64353,0},{58371,64323,0},{58393,64306,0},{58398,64308,0},{58401,64314,0}, {58408,64351,0},{58408,64378,0},{58408,64381,0},{58396,64373,0},{58379,64376,0}, {58373,64394,0},{58369,64408,0},{58369,64421,0},{58371,64434,0},{58373,64444,0}, {58399,64481,0},{58421,64528,0},{58424,64531,0},{58429,64529,0},{58431,64504,0}, {58436,64493,0},{58438,64493,0},{58441,64514,0},{58446,64558,0},{58444,64589,0}, {58441,64591,0},{58438,64584,0},{58436,64571,0},{58433,64569,0},{58429,64598,0}, {58424,64618,0},{58416,64638,0},{58409,64648,0},{58399,64654,0},{58361,64673,0}, {58356,64681,0},{58353,64699,0},{58364,64746,0},{58364,64789,0},{58366,64803,0}, {58373,64803,0},{58389,64764,0},{58396,64768,0},{58404,64783,0},{58436,64833,0}, {58448,64871,0},{58461,64899,0},{58464,64916,0},{58466,64944,0},{58466,64958,0}, {58463,64968,0},{58454,64988,0},{58448,64993,0},{58444,64988,0},{58421,64926,0}, {58401,64923,0},{58398,64926,0},{58394,64934,0},{58393,64951,0},{58394,64961,0}, {58398,65011,0},{58401,65036,0},{58408,65064,0},{58403,65116,0},{58408,65144,0}, {58403,65173,0},{58408,65211,0},{58406,65226,0},{58411,65249,0},{58413,65283,0}, {58419,65309,0},{58406,65303,0},{58399,65316,0},{58393,65318,0},{58388,65326,0}, {58388,65333,0},{58393,65334,0},{58396,65343,0},{58396,65368,0},{58393,65376,0}, {58393,65384,0},{58394,65391,0},{58404,65404,0},{58408,65421,0},{58408,65438,0}, {58401,65453,0},{58396,65458,0},{58378,65444,0},{58374,65476,0},{58369,65506,0}, {58386,0,0},{58391,8,0},{58398,12,0},{58403,33,0},{58409,45,0},{58414,70,0}, {58421,100,0},{58424,133,0},{58436,197,0},{58443,223,0},{58453,288,0},{58454,307,0}, {58454,343,0},{58463,395,0},{58468,442,0},{58473,545,0},{58476,585,0},{58476,662,0}, {58483,693,0},{58488,708,0},{58511,733,0},{58516,742,0},{58519,755,0},{58519,790,0}, {58518,797,0},{58514,803,0},{58498,823,0},{58493,833,0},{58488,848,0},{58489,867,0}, {58501,903,0},{58504,908,0},{58526,862,0},{58528,863,0},{58529,868,0},{58529,913,0}, {58524,932,0},{58506,987,0},{58498,1003,0},{58494,1025,0},{58479,1045,0}, {58469,1075,0},{58464,1127,0},{58466,1148,0},{58464,1162,0},{58463,1195,0}, {58464,1203,0},{58466,1208,0},{58494,1247,0},{58506,1265,0},{58508,1273,0}, {58509,1347,0},{58518,1395,0},{58519,1417,0},{58519,1432,0},{58508,1487,0}, {58508,1513,0},{58508,1570,0},{58511,1595,0},{58539,1803,0},{58538,1815,0}, {58531,1835,0},{58528,1853,0},{58519,1952,0},{58513,2003,0},{58498,2082,0}, {58496,2120,0},{58496,2185,0},{58494,2203,0},{58486,2240,0},{58481,2278,0}, {58483,2340,0},{58504,2548,0},{58506,2597,0},{58514,2627,0},{58521,2695,0}, {58523,2717,0},{58521,2730,0},{58519,2743,0},{58519,2753,0},{58524,2773,0}, {58526,2790,0},{58531,2807,0},{58536,2863,0},{58553,2948,0},{58554,2972,0}, {58554,3018,0},{58558,3098,0},{58559,3113,0},{58576,3165,0},{58584,3208,0}, {58598,3258,0},{58609,3293,0},{58614,3298,0},{58631,3303,0},{58636,3315,0}, {58641,3345,0},{58651,3332,0},{58659,3330,0},{58664,3332,0},{58671,3343,0}, {58681,3370,0},{58686,3397,0},{58688,3413,0},{58686,3442,0},{58683,3465,0}, {58664,3482,0},{58649,3485,0},{58641,3505,0},{58624,3555,0},{58608,3563,0}, {58589,3593,0},{58586,3607,0},{58584,3622,0},{58576,3650,0},{58569,3708,0}, {58566,3710,0},{58556,3710,0},{58558,3725,0},{58563,3733,0},{58566,3748,0}, {58573,3765,0},{58573,3775,0},{58569,3780,0},{58559,3785,0},{58559,3790,0}, {58563,3803,0},{58561,3818,0},{58554,3828,0},{58539,3838,0},{58536,3848,0}, {58541,3850,0},{58543,3863,0},{58543,3870,0},{58539,3873,0},{58541,3883,0}, {58548,3897,0},{58551,3897,0},{58551,3908,0},{58551,3912,0},{58556,3910,0}, {58564,3918,0},{58569,3942,0},{58571,3943,0},{58571,3972,0},{58574,3963,0}, {58576,3972,0},{58581,3968,0},{58584,3972,0},{58588,3960,0},{58591,3955,0}, {58594,3960,0},{58591,3973,0},{58593,3980,0},{58596,3982,0},{58596,3990,0}, {58598,3988,0},{58599,3977,0},{58608,3970,0},{58611,3972,0},{58613,3963,0}, {58618,3965,0},{58618,3980,0},{58619,3982,0},{58628,3975,0},{58639,3975,0}, {58646,3992,0},{58651,3997,0},{58658,4040,0},{58666,4057,0},{58669,4093,0}, {58678,4103,0},{58683,4105,0},{58684,4110,0},{58686,4138,0},{58698,4198,0}, {58698,4218,0},{58699,4228,0},{58709,4252,0},{58718,4263,0},{58721,4263,0}, {58723,4280,0},{58726,4282,0},{58728,4303,0},{58731,4312,0},{58733,4338,0}, {58731,4350,0},{58729,4375,0},{58733,4383,0},{58739,4405,0},{58738,4425,0}, {58738,4450,0},{58744,4457,0},{58748,4468,0},{58754,4477,0},{58763,4500,0}, {58766,4543,0},{58766,4552,0},{58763,4557,0},{58761,4560,0},{58759,4565,0}, {58759,4572,0},{58763,4575,0},{58766,4575,0},{58769,4583,0},{58771,4603,0}, {58771,4630,0},{58778,4640,0},{58784,4627,0},{58789,4630,0},{58794,4623,0}, {58799,4623,0},{58804,4633,0},{58808,4648,0},{58809,4690,0},{58808,4697,0}, {58808,4698,0},{58803,4697,0},{58801,4700,0},{58801,4720,0},{58799,4732,0}, {58791,4750,0},{58786,4753,0},{58784,4763,0},{58779,4762,0},{58778,4767,0}, {58778,4775,0},{58779,4783,0},{58778,4788,0},{58774,4793,0},{58773,4818,0}, {58776,4830,0},{58778,4845,0},{58791,4865,0},{58794,4883,0},{58799,4912,0}, {58808,4928,0},{58806,4888,0},{58806,4875,0},{58808,4870,0},{58813,4873,0}, {58813,4860,0},{58818,4842,0},{58823,4835,0},{58834,4833,0},{58838,4837,0}, {58841,4843,0},{58841,4860,0},{58846,4888,0},{58848,4907,0},{58853,4923,0}, {58853,4932,0},{58841,4940,0},{58836,4957,0},{58833,4985,0},{58824,4993,0}, {58823,4998,0},{58823,5007,0},{58826,5010,0},{58824,5023,0},{58819,5043,0}, {58818,5057,0},{58821,5073,0},{58821,5083,0},{58824,5095,0},{58828,5097,0}, {58826,5083,0},{58828,5080,0},{58828,5072,0},{58831,5058,0},{58831,5045,0}, {58836,5050,0},{58839,5045,0},{58843,5048,0},{58849,5060,0},{58853,5065,0}, {58856,5077,0},{58859,5043,0},{58859,5033,0},{58863,5023,0},{58866,5022,0}, {58884,5028,0},{58894,5038,0},{58906,5063,0},{58911,5113,0},{58916,5125,0}, {58918,5135,0},{58933,5175,0},{58938,5197,0},{58943,5248,0},{58941,5272,0}, {58943,5288,0},{58946,5312,0},{58951,5378,0},{58951,5390,0},{58948,5398,0}, {58948,5407,0},{58948,5450,0},{58946,5477,0},{58948,5493,0},{58944,5527,0}, {58941,5533,0},{58936,5552,0},{58934,5562,0},{58929,5570,0},{58913,5600,0}, {58906,5608,0},{58904,5617,0},{58896,5627,0},{58896,5668,0},{58891,5683,0}, {58884,5717,0},{58881,5728,0},{58866,5732,0},{58866,5697,0},{58866,5687,0}, {58856,5675,0},{58854,5662,0},{58848,5663,0},{58846,5652,0},{58844,5655,0}, {58843,5668,0},{58836,5670,0},{58834,5677,0},{58831,5678,0},{58829,5702,0}, {58831,5700,0},{58833,5690,0},{58834,5690,0},{58834,5707,0},{58839,5722,0}, {58839,5725,0},{58834,5727,0},{58834,5730,0},{58836,5748,0},{58834,5770,0}, {58831,5780,0},{58829,5792,0},{58826,5797,0},{58829,5805,0},{58829,5820,0}, {58823,5822,0},{58819,5837,0},{58818,5842,0},{58818,5852,0},{58819,5867,0}, {58819,5885,0},{58816,5895,0},{58809,5900,0},{58806,5907,0},{58804,5902,0}, {58806,5887,0},{58804,5885,0},{58799,5892,0},{58794,5912,0},{58798,5930,0}, {58798,5938,0},{58801,5945,0},{58799,5950,0},{58794,5950,0},{58793,5955,0}, {58798,5963,0},{58799,5975,0},{58796,6013,0},{58799,6053,0},{58796,6067,0}, {58791,6088,0},{58791,6103,0},{58788,6110,0},{58786,6133,0},{58788,6137,0}, {58789,6148,0},{58784,6140,0},{58781,6143,0},{58783,6167,0},{58781,6213,0}, {58778,6228,0},{58778,6242,0},{58774,6248,0},{58771,6275,0},{58773,6285,0}, {58783,6312,0},{58784,6348,0},{58784,6377,0},{58778,6433,0},{58769,6485,0}, {58769,6530,0},{58766,6568,0},{58763,6595,0},{58761,6650,0},{58758,6677,0}, {58758,6702,0},{58759,6720,0},{58758,6732,0},{58754,6750,0},{58753,6798,0}, {58748,6840,0},{58749,6855,0},{58749,6905,0},{58753,6918,0},{58759,6922,0}, {58761,6938,0},{58763,6957,0},{58761,6962,0},{58759,6965,0},{58748,6970,0}, {58731,6965,0},{58721,6967,0},{58716,6970,0},{58704,6992,0},{58691,6988,0}, {58679,6977,0},{58673,6992,0},{58666,6990,0},{58659,6980,0},{58653,6950,0}, {58651,6918,0},{58646,6918,0},{58643,6902,0},{58639,6897,0},{58646,6975,0}, {58644,6982,0},{58643,6982,0},{58638,6972,0},{58629,6937,0},{58626,6888,0}, {58624,6883,0},{58621,6885,0},{58619,6897,0},{58619,6953,0},{58614,6967,0}, {58609,6968,0},{58606,6958,0},{58603,6937,0},{58604,6915,0},{58609,6885,0}, {58609,6858,0},{58608,6847,0},{58604,6845,0},{58601,6848,0},{58598,6873,0}, {58593,6878,0},{58591,6872,0},{58589,6852,0},{58586,6850,0},{58581,6862,0}, {58579,6863,0},{58581,6842,0},{58581,6833,0},{58578,6828,0},{58574,6828,0}, {58564,6900,0},{58558,6910,0},{58551,6912,0},{58549,6908,0},{58544,6885,0}, {58544,6848,0},{58549,6837,0},{58548,6825,0},{58546,6810,0},{58543,6815,0}, {58541,6813,0},{58538,6803,0},{58534,6800,0},{58529,6805,0},{58521,6807,0}, {58514,6800,0},{58509,6827,0},{58499,6847,0},{58498,6857,0},{58499,6867,0}, {58506,6880,0},{58506,6897,0},{58498,6908,0},{58491,6912,0},{58461,6908,0}, {58458,6912,0},{58441,6988,0},{58438,7027,0},{58439,7062,0},{58438,7087,0}, {58436,7118,0},{58424,7107,0},{58418,7107,0},{58411,7118,0},{58408,7140,0}, {58421,7155,0},{58443,7218,0},{58459,7232,0},{58471,7230,0},{58478,7235,0}, {58489,7197,0},{58496,7183,0},{58503,7180,0},{58509,7188,0},{58516,7223,0}, {58518,7243,0},{58519,7257,0},{58526,7267,0},{58528,7277,0},{58534,7288,0}, {58538,7303,0},{58541,7312,0},{58546,7315,0},{58554,7347,0},{58556,7358,0}, {58556,7378,0},{58563,7402,0},{58564,7417,0},{58564,7430,0},{58563,7450,0}, {58563,7472,0},{58558,7483,0},{58558,7507,0},{58563,7548,0},{58564,7568,0}, {58568,7575,0},{58573,7577,0},{58583,7590,0},{58584,7597,0},{58586,7598,0}, {58589,7608,0},{58593,7597,0},{58594,7607,0},{58596,7605,0},{58598,7617,0}, {58594,7618,0},{58596,7632,0},{58599,7633,0},{58596,7647,0},{58598,7655,0}, {58609,7672,0},{58608,7683,0},{58609,7688,0},{58611,7688,0},{58614,7710,0}, {58614,7727,0},{58618,7743,0},{58623,7750,0},{58629,7787,128},{58631,7792,0}, {58634,7788,0},{58638,7793,0},{58648,7792,0},{58654,7800,0},{58658,7813,0}, {58661,7808,0},{58664,7792,0},{58668,7785,0},{58669,7785,0},{58669,7792,0}, {58673,7785,0},{58679,7790,0},{58684,7810,0},{58688,7807,0},{58691,7815,0}, {58694,7825,0},{58691,7827,0},{58696,7833,0},{58694,7835,0},{58691,7833,0}, {58691,7838,0},{58696,7845,0},{58703,7862,0},{58719,7887,0},{58723,7895,0}, {58728,7915,0},{58731,7952,0},{58736,7968,0},{58746,8028,0},{58748,8043,0}, {58748,8063,0},{58749,8078,0},{58749,8092,0},{58756,8130,0},{58759,8142,0}, {58771,8140,0},{58774,8147,0},{58768,8175,0},{58769,8205,0},{58773,8202,0}, {58776,8188,0},{58781,8168,0},{58784,8150,0},{58786,8147,0},{58788,8150,0}, {58789,8163,0},{58793,8173,0},{58801,8188,0},{58811,8200,0},{58814,8220,0}, {58813,8235,0},{58799,8253,0},{58796,8265,0},{58798,8272,0},{58806,8282,0}, {58811,8293,0},{58818,8320,0},{58819,8337,0},{58821,8382,0},{58819,8408,0}, {58821,8417,0},{58823,8458,0},{58821,8507,0},{58818,8540,0},{58818,8580,0}, {58823,8593,0},{58824,8598,0},{58828,8600,0},{58829,8607,0},{58834,8693,0}, {58844,8725,0},{58846,8748,0},{58851,8758,0},{58854,8775,0},{58858,8780,0}, {58866,8780,0},{58869,8785,0},{58871,8812,0},{58933,8823,0},{58931,8838,0}, {58928,8848,0},{58923,8848,0},{58916,8855,0},{58894,8868,0},{58891,8877,0}, {58884,8885,0},{58876,8877,0},{58864,8875,0},{58863,8888,0},{58858,8897,0}, {58858,8920,0},{58854,8937,0},{58853,8960,0},{58854,8973,0},{58859,8995,0}, {58858,9028,0},{58859,9033,0},{58859,9047,0},{58866,9060,0},{58868,9088,0}, {58871,9102,0},{58873,9112,0},{58878,9118,0},{58876,9143,0},{58878,9153,0}, {58881,9168,0},{58884,9193,0},{58886,9198,0},{58883,9237,0},{58874,9267,0}, {58873,9277,0},{58873,9285,0},{58881,9300,0},{58881,9307,0},{58878,9320,0}, {58878,9358,0},{58876,9372,0},{58879,9367,0},{58886,9378,0},{58886,9405,0}, {58883,9413,0},{58878,9418,0},{58876,9413,0},{58873,9418,0},{58869,9417,0}, {58869,9420,0},{58873,9435,0},{58884,9455,0},{58889,9478,0},{58899,9483,0}, {58896,9503,0},{58891,9520,0},{58891,9525,0},{58896,9523,0},{58911,9507,0}, {58914,9507,0},{58916,9510,0},{58913,9528,0},{58914,9540,0},{58909,9550,0}, {58896,9570,0},{58889,9578,0},{58883,9582,0},{58878,9577,0},{58876,9580,0}, {58878,9632,0},{58879,9643,0},{58878,9662,0},{58879,9682,0},{58888,9705,0}, {58886,9730,0},{58883,9735,0},{58881,9748,0},{58884,9755,0},{58884,9777,0}, {58881,9785,0},{58878,9788,0},{58886,9810,0},{58891,9832,0},{58893,9847,0}, {58891,9865,0},{58898,9867,0},{58901,9870,0},{58898,9890,0},{58899,9900,0}, {58906,9898,0},{58908,9905,0},{58911,9903,0},{58946,9878,0},{58956,9875,0}, {58958,9888,0},{58956,9900,0},{58954,9912,0},{58956,9925,0},{58956,9930,0}, {58954,9935,0},{58943,9943,0},{58938,9955,0},{58941,9957,0},{58946,9955,0}, {58954,9962,0},{58961,9952,0},{58961,9955,0},{58963,9972,0},{58968,9990,0}, {58971,10003,0},{58968,10025,0},{58966,10028,0},{58953,10030,0},{58934,10027,0}, {58928,10032,0},{58921,10032,0},{58921,10042,0},{58918,10045,0},{58923,10062,0}, {58928,10103,0},{58926,10110,0},{58923,10098,0},{58921,10083,0},{58918,10080,0}, {58914,10085,0},{58916,10090,0},{58914,10097,0},{58913,10102,0},{58921,10130,0}, {58926,10128,0},{58928,10120,0},{58928,10132,0},{58931,10140,0},{58933,10128,0}, {58934,10102,0},{58936,10105,0},{58938,10132,0},{58941,10155,0},{58939,10180,0}, {58939,10212,0},{58943,10247,0},{58949,10263,0},{58951,10277,0},{58951,10283,0}, {58944,10317,0},{58946,10322,0},{58944,10333,0},{58941,10343,0},{58938,10362,0}, {58939,10377,0},{58953,10383,0},{58956,10395,0},{58956,10400,0},{58953,10408,0}, {58949,10410,0},{58943,10395,0},{58941,10395,0},{58938,10417,0},{58936,10435,0}, {58934,10448,0},{58926,10468,0},{58926,10488,0},{58924,10498,0},{58918,10535,0}, {58916,10548,0},{58911,10563,0},{58909,10588,0},{58903,10617,0},{58896,10660,0}, {58893,10673,0},{58891,10687,0},{58891,10715,0},{58886,10742,0},{58881,10753,0}, {58879,10780,0},{58878,10792,0},{58878,10805,0},{58874,10818,0},{58866,10832,0}, {58864,10842,0},{58861,10845,0},{58859,10860,0},{58844,10880,0},{58844,10887,0}, {58848,10898,0},{58846,10917,0},{58849,10920,0},{58848,10927,0},{58848,10933,0}, {58849,10933,0},{58853,10922,0},{58854,10918,0},{58861,10928,0},{58864,10928,0}, {58869,10933,0},{58869,10950,0},{58874,10945,0},{58876,10947,0},{58876,10958,0}, {58879,10982,0},{58878,10990,0},{58874,11000,0},{58874,11025,0},{58876,11027,0}, {58878,11020,0},{58879,11020,0},{58886,11037,0},{58886,11043,0},{58884,11048,0}, {58883,11053,0},{58891,11060,0},{58896,11068,0},{58899,11055,0},{58906,11055,0}, {58929,11088,0},{58939,11135,0},{58948,11210,0},{58949,11250,0},{58958,11293,0}, {58964,11317,0},{58964,11340,0},{58963,11350,0},{58951,11365,0},{58948,11375,0}, {58934,11400,0},{58933,11412,0},{58919,11437,0},{58916,11453,0},{58914,11453,0}, {58913,11445,0},{58909,11443,0},{58904,11457,0},{58893,11450,0},{58889,11452,0}, {58891,11472,0},{58889,11478,0},{58883,11482,0},{58889,11495,0},{58889,11517,0}, {58891,11518,0},{58896,11535,0},{58899,11553,0},{58901,11592,0},{58899,11618,0}, {58898,11627,0},{58891,11635,0},{58889,11645,0},{58881,11660,0},{58879,11673,0}, {58873,11677,0},{58858,11690,0},{58853,11692,0},{58843,11740,0},{58841,11760,0}, {58838,11777,0},{58841,11795,0},{58839,11807,0},{58838,11832,0},{58839,11837,0}, {58846,11847,0},{58848,11863,0},{58844,11888,0},{58844,11928,0},{58843,11950,0}, {58848,11973,0},{58851,12007,0},{58853,12050,0},{58856,12062,0},{58854,12073,0}, {58853,12080,0},{58854,12090,0},{58853,12102,0},{58868,12132,0},{58869,12157,0}, {58873,12167,0},{58881,12212,0},{58874,12245,0},{58874,12272,0},{58869,12302,0}, {58868,12305,0},{58859,12300,0},{58858,12302,0},{58858,12313,0},{58864,12323,0}, {58864,12330,0},{58861,12337,0},{58859,12358,0},{58861,12367,0},{58866,12363,0}, {58868,12367,0},{58868,12382,0},{58874,12393,0},{58878,12412,0},{58884,12428,0}, {58886,12440,0},{58886,12450,0},{58884,12462,0},{58876,12480,0},{58876,12492,0}, {58866,12495,0},{58864,12502,0},{58868,12507,0},{58871,12503,0},{58876,12507,0}, {58878,12513,0},{58876,12518,0},{58873,12523,0},{58869,12530,0},{58871,12537,0}, {58874,12538,0},{58879,12532,0},{58878,12545,0},{58888,12548,0},{58896,12562,0}, {58906,12592,0},{58909,12625,0},{58908,12638,0},{58896,12655,0},{58894,12665,0}, {58891,12675,0},{58891,12692,0},{58888,12697,0},{58884,12707,0},{58883,12723,0}, {58881,12747,0},{58879,12753,0},{58874,12762,0},{58866,12765,0},{58861,12775,0}, {58853,12780,0},{58838,12798,0},{58833,12828,0},{58834,12842,0},{58834,12858,0}, {58834,12862,0},{58838,12865,0},{58839,12878,0},{58838,12907,0},{58834,12925,0}, {58833,12937,0},{58834,12943,0},{58839,12957,0},{58853,12973,0},{58856,12973,0}, {58859,12978,0},{58866,12980,0},{58871,12970,0},{58879,12972,0},{58883,12975,0}, {58891,12987,0},{58901,12995,0},{58913,13027,0},{58913,13040,0},{58916,13055,0}, {58914,13077,0},{58916,13082,0},{58923,13082,0},{58923,13085,0},{58923,13110,0}, {58918,13140,0},{58916,13197,0},{58921,13223,0},{58923,13252,0},{58919,13267,0}, {58919,13285,0},{58923,13303,0},{58926,13315,0},{58929,13348,0},{58929,13360,0}, {58928,13365,0},{58926,13385,0},{58923,13393,0},{58918,13398,0},{58914,13417,0}, {58916,13422,0},{58923,13430,0},{58931,13465,0},{58929,13478,0},{58926,13497,0}, {58926,13507,0},{58934,13540,0},{58933,13550,0},{58929,13557,0},{58929,13568,0}, {58926,13580,0},{58919,13592,0},{58919,13600,0},{58916,13603,0},{58911,13622,0}, {58908,13627,0},{58908,13637,0},{58899,13650,0},{58901,13668,0},{58903,13675,0}, {58906,13698,0},{58901,13738,0},{58903,13747,0},{58899,13763,0},{58899,13773,0}, {58896,13780,0},{58894,13790,0},{58889,13808,0},{58889,13828,0},{58886,13833,0}, {58883,13847,0},{58886,13868,0},{58881,13877,0},{58883,13898,0},{58881,13910,0}, {58883,13933,0},{58878,13955,0},{58878,13967,0},{58876,13970,0},{58874,13978,0}, {58871,13992,0},{58871,14010,0},{58869,14017,0},{58864,14018,0},{58863,14023,0}, {58863,14095,0},{58859,14108,0},{58861,14115,0},{58853,14135,0},{58853,14140,0}, {58856,14143,0},{58858,14152,0},{58859,14170,0},{58859,14195,0},{58856,14215,0}, {58851,14225,0},{58841,14237,0},{58838,14247,0},{58836,14257,0},{58836,14288,0}, {58838,14298,0},{58851,14328,0},{58851,14340,0},{58846,14372,0},{58839,14380,0}, {58831,14380,0},{58826,14388,0},{58829,14408,0},{58836,14430,0},{58834,14445,0}, {58828,14455,0},{58819,14460,0},{58814,14457,0},{58811,14458,0},{58813,14465,0}, {58821,14482,0},{58826,14502,0},{58831,14513,0},{58834,14537,0},{58833,14540,0}, {58826,14537,0},{58824,14540,0},{58821,14578,0},{58816,14583,0},{58803,14560,0}, {58793,14550,0},{58783,14533,0},{58774,14525,0},{58771,14570,0},{58774,14603,0}, {58774,14613,0},{58771,14628,0},{58764,14637,0},{58764,14658,0},{58754,14667,0}, {58751,14688,0},{58743,14698,0},{58736,14737,0},{58734,14762,0},{58738,14793,0}, {58736,14815,0},{58726,14832,0},{58713,14842,0},{58709,14838,0},{58713,14820,0}, {58709,14802,0},{58708,14792,0},{58699,14795,0},{58696,14803,0},{58693,14847,0}, {58694,14860,0},{58696,14867,0},{58699,14882,0},{58701,14905,0},{58704,14918,0}, {58703,14938,0},{58698,14960,0},{58696,14983,0},{58691,14980,0},{58689,14983,0}, {58689,14990,0},{58698,15053,0},{58701,15112,0},{58701,15115,0},{58698,15118,0}, {58691,15115,0},{58684,15107,0},{58669,15098,0},{58661,15127,0},{58651,15153,0}, {58649,15167,0},{58651,15170,0},{58654,15185,0},{58658,15215,0},{58654,15268,0}, {58649,15288,0},{58648,15307,0},{58654,15345,0},{58658,15352,0},{58654,15367,0}, {58658,15398,0},{58659,15402,0},{58666,15403,0},{58671,15400,0},{58673,15397,0}, {58676,15380,0},{58679,15375,0},{58684,15375,0},{58684,15392,0},{58686,15395,0}, {58688,15393,0},{58693,15373,0},{58698,15368,0},{58703,15370,0},{58704,15382,0}, {58694,15415,0},{58686,15425,0},{58683,15438,0},{58686,15448,0},{58686,15457,0}, {58681,15472,0},{58674,15478,0},{58674,15450,0},{58671,15455,0},{58666,15467,0}, {58661,15462,0},{58659,15448,0},{58658,15447,0},{58643,15472,0},{58636,15490,0}, {58626,15488,0},{58621,15478,0},{58618,15497,0},{58618,15520,0},{58621,15520,0}, {58626,15525,0},{58631,15543,0},{58629,15550,0},{58619,15563,0},{58619,15568,0}, {58624,15568,0},{58618,15587,0},{58618,15602,0},{58621,15605,0},{58624,15612,0}, {58628,15605,0},{58633,15605,0},{58636,15605,0},{58638,15610,0},{58634,15652,0}, {58616,15690,0},{58621,15697,0},{58618,15702,0},{58621,15707,0},{58621,15720,0}, {58629,15717,0},{58633,15722,0},{58629,15733,0},{58619,15743,0},{58618,15752,0}, {58621,15763,0},{58619,15787,0},{58623,15792,0},{58614,15828,0},{58601,15847,0}, {58601,15860,0},{58603,15867,0},{58603,15885,0},{58601,15893,0},{58598,15900,0}, {58601,15900,0},{58604,15898,0},{58606,15902,0},{58601,15913,0},{58596,15917,0}, {58591,15935,0},{58584,15953,0},{58581,15978,0},{58566,16013,0},{58558,16037,0}, {58554,16042,0},{58549,16038,0},{58548,16055,0},{58543,16067,0},{58539,16065,0}, {58539,16047,0},{58536,16042,0},{58533,16048,0},{58526,16082,0},{58509,16105,0}, {58514,16162,0},{58514,16168,0},{58509,16172,0},{58506,16180,0},{58503,16180,0}, {58499,16185,0},{58501,16190,0},{58504,16188,0},{58514,16200,0},{58514,16205,0}, {58509,16207,0},{58508,16202,0},{58498,16198,0},{58493,16203,0},{58499,16210,0}, {58506,16220,0},{58509,16252,0},{58508,16275,0},{58506,16280,0},{58498,16287,0}, {58494,16297,0},{58493,16292,0},{58489,16297,0},{58484,16300,0},{58483,16317,0}, {58474,16320,0},{58469,16352,0},{58469,16360,0},{58473,16378,0},{58479,16360,0}, {58481,16365,0},{58483,16363,0},{58486,16352,0},{58489,16352,0},{58489,16355,0}, {58488,16365,0},{58483,16372,0},{58483,16383,0},{58484,16390,0},{58483,16393,0}, {58483,16398,0},{58488,16410,0},{58488,16437,0},{58486,16465,0},{58481,16473,0}, {58481,16490,0},{58478,16495,0},{58481,16515,0},{58479,16538,0},{58478,16550,0}, {58471,16563,0},{58468,16580,0},{58464,16580,0},{58473,16608,0},{58476,16632,0}, {58474,16677,0},{58473,16683,0},{58466,16690,0},{58466,16672,0},{58469,16660,0}, {58466,16647,0},{58459,16660,0},{58458,16673,0},{58459,16680,0},{58459,16698,0}, {58463,16720,0},{58461,16738,0},{58463,16748,0},{58459,16772,0},{58456,16780,0}, {58449,16792,0},{58443,16790,0},{58441,16778,0},{58438,16783,0},{58428,16815,0}, {58421,16823,0},{58419,16833,0},{58418,16847,0},{58413,16892,0},{58411,16892,0}, {58408,16903,0},{58404,16905,0},{58401,16923,0},{58394,16922,0},{58393,16925,0}, {58394,16947,0},{58393,16955,0},{58388,16957,0},{58386,16965,0},{58386,16987,0}, {58379,16993,0},{58379,17002,0},{58374,17010,0},{58371,17025,0},{58371,17030,0}, {58376,17027,0},{58379,17033,0},{58383,17033,0},{58388,17043,0},{58393,17033,0}, {58408,17022,0},{58406,17030,0},{58401,17045,0},{58386,17058,0},{58369,17080,0}, {58361,17083,0},{58349,17100,0},{58339,17078,0},{58339,17062,0},{58333,17038,0}, {58336,17025,0},{58331,17020,0},{58329,17005,0},{58323,17008,0},{58318,16998,0}, {58308,17007,0},{58304,17002,0},{58301,17002,0},{58298,16987,0},{58296,17002,0}, {58298,17008,0},{58304,17020,0},{58306,17028,0},{58298,17032,0},{58288,17035,0}, {58278,17032,0},{58274,17023,0},{58276,17013,0},{58276,17005,0},{58268,17020,0}, {58266,17002,0},{58249,16990,0},{58241,16970,0},{58233,16972,0},{58229,16963,0}, {58226,16952,0},{58228,16927,0},{58221,16925,0},{58216,16932,0},{58211,16927,0}, {58211,16918,0},{58211,16902,0},{58211,16900,0},{58206,16910,0},{58203,16910,0}, {58199,16905,0},{58193,16920,0},{58189,16917,0},{58186,16900,0},{58189,16888,0}, {58198,16862,0},{58189,16858,0},{58184,16853,0},{58181,16838,0},{58186,16827,0}, {58198,16810,0},{58194,16785,0},{58189,16775,0},{58186,16773,0},{58184,16762,0}, {58181,16755,0},{58178,16732,0},{58179,16718,0},{58178,16700,0},{58171,16707,0}, {58169,16690,0},{58163,16667,0},{58159,16648,0},{58164,16628,0},{58163,16617,0}, {58156,16618,0},{58156,16593,0},{58154,16582,0},{58151,16592,0},{58148,16613,0}, {58144,16628,0},{58143,16622,0},{58144,16615,0},{58148,16587,0},{58143,16573,0}, {58138,16622,0},{58136,16627,0},{58129,16632,0},{58128,16612,0},{58129,16592,0}, {58134,16532,0},{58131,16512,0},{58119,16512,0},{58119,16503,0},{58126,16490,0}, {58121,16482,0},{58118,16483,0},{58111,16510,0},{58106,16507,0},{58101,16512,0}, {58098,16522,0},{58089,16537,0},{58086,16557,0},{58083,16552,0},{58074,16553,0}, {58073,16548,0},{58073,16538,0},{58079,16532,0},{58081,16525,0},{58078,16492,0}, {58078,16452,0},{58066,16462,0},{58071,16433,0},{58071,16423,0},{58069,16422,0}, {58063,16428,0},{58059,16418,0},{58058,16402,0},{58056,16408,0},{58054,16410,0}, {58046,16393,0},{58046,16388,0},{58051,16395,0},{58054,16387,0},{58059,16383,0}, {58061,16337,0},{58068,16315,0},{58066,16305,0},{58073,16295,0},{58071,16287,0}, {58063,16280,0},{58061,16263,0},{58058,16253,0},{58053,16225,0},{58046,16238,0}, {58043,16253,0},{58036,16250,0},{58034,16265,0},{58031,16270,0},{58026,16272,0}, {58024,16257,0},{58019,16273,0},{58016,16278,0},{58014,16325,0},{58009,16362,0}, {58011,16427,0},{58001,16447,0},{57993,16438,0},{57993,16450,0},{57998,16468,0}, {57996,16480,0},{57994,16482,0},{57979,16477,0},{57984,16423,0},{57986,16378,0}, {57989,16322,0},{57989,16293,0},{57979,16310,0},{57966,16292,0},{57961,16310,0}, {57958,16307,0},{57958,16293,0},{57953,16297,0},{57946,16288,0},{57943,16308,0}, {57941,16312,0},{57941,16303,0},{57941,16283,0},{57928,16277,0},{57926,16255,0}, {57924,16263,0},{57924,16260,0},{57926,16247,0},{57926,16243,0},{57921,16257,0}, {57921,16292,0},{57916,16287,0},{57914,16267,0},{57913,16283,0},{57911,16288,0}, {57903,16278,0},{57893,16295,0},{57884,16285,0},{57881,16277,0},{57881,16288,0}, {57878,16293,0},{57876,16270,0},{57874,16262,0},{57871,16268,0},{57866,16300,0}, {57863,16307,0},{57861,16300,0},{57851,16290,0},{57851,16263,0},{57844,16257,0}, {57841,16233,0},{57839,16250,0},{57836,16243,0},{57838,16263,0},{57838,16270,0}, {57834,16270,0},{57833,16317,0},{57831,16325,0},{57828,16322,0},{57823,16338,0}, {57821,16337,0},{57811,16355,0},{57799,16363,0},{57794,16383,0},{57789,16390,0}, {57786,16387,0},{57781,16360,0},{57774,16375,0},{57769,16358,0},{57766,16360,0}, {57768,16387,0},{57771,16407,0},{57771,16430,0},{57766,16447,0},{57763,16457,0}, {57754,16448,0},{57746,16460,0},{57736,16457,128},{57734,16447,0},{57728,16445,0}, {57724,16423,0},{57721,16420,0},{57723,16448,0},{57728,16460,0},{57733,16493,0}, {57726,16500,0},{57723,16492,0},{57711,16495,0},{57716,16520,0},{57721,16515,0}, {57729,16538,0},{57736,16550,0},{57729,16570,0},{57723,16562,0},{57718,16545,0}, {57706,16578,0},{57696,16568,0},{57691,16607,0},{57688,16645,0},{57688,16693,0}, {57686,16708,0},{57683,16720,0},{57674,16728,0},{57669,16722,0},{57668,16697,0}, {57668,16690,0},{57669,16692,0},{57671,16700,0},{57676,16697,0},{57681,16665,0}, {57684,16618,0},{57683,16590,0},{57678,16548,0},{57679,16483,0},{57679,16447,0}, {57678,16432,0},{57676,16418,0},{57671,16403,0},{57669,16405,0},{57668,16398,0}, {57666,16355,0},{57659,16335,0},{57656,16308,0},{57654,16288,0},{57643,16283,0}, {57641,16278,0},{57643,16255,0},{57648,16252,0},{57651,16240,0},{57649,16178,0}, {57639,16175,0},{57638,16125,0},{57633,16107,0},{57631,16092,0},{57636,16045,0}, {57643,16015,0},{57643,16000,0},{57638,15985,0},{57634,15985,0},{57626,16027,0}, {57623,16047,0},{57609,16052,0},{57606,16028,0},{57603,16052,0},{57599,16050,0}, {57593,16067,0},{57591,16053,0},{57584,16043,0},{57579,16008,0},{57569,16008,0}, {57561,15980,0},{57556,15975,0},{57549,15952,0},{57548,15925,0},{57546,15920,0}, {57543,15932,0},{57544,16000,0},{57549,16037,0},{57548,16047,0},{57543,16058,0}, {57538,16048,0},{57531,16052,0},{57531,16028,0},{57526,16027,0},{57519,15942,0}, {57513,15917,0},{57506,15938,0},{57494,15953,0},{57496,15982,0},{57496,16013,0}, {57499,16078,0},{57499,16093,0},{57489,16105,0},{57484,16098,0},{57484,16073,0}, {57483,16065,0},{57479,16027,0},{57481,16013,0},{57483,16013,0},{57483,16007,0}, {57479,15978,0},{57476,15992,0},{57471,16020,0},{57473,16062,0},{57478,16092,0}, {57473,16103,0},{57473,16122,0},{57468,16123,0},{57468,16105,0},{57464,16087,0}, {57461,16082,0},{57461,16070,0},{57458,16073,0},{57458,16045,0},{57459,16028,0}, {57458,16005,0},{57454,16007,0},{57453,16037,0},{57449,16043,0},{57449,16062,0}, {57446,16058,0},{57446,16090,0},{57441,16055,0},{57431,16070,0},{57428,16090,0}, {57426,16085,0},{57424,16062,0},{57419,16080,0},{57416,16065,0},{57414,16077,0}, {57414,16105,0},{57411,16103,0},{57413,16163,0},{57416,16210,0},{57413,16227,0}, {57404,16220,0},{57398,16153,0},{57389,16150,0},{57384,16128,0},{57383,16085,0}, {57381,16080,0},{57376,16102,0},{57379,16148,0},{57376,16185,0},{57373,16192,0}, {57369,16238,0},{57361,16245,0},{57358,16237,0},{57353,16293,0},{57348,16297,0}, {57346,16283,0},{57343,16297,0},{57341,16327,0},{57338,16330,0},{57334,16353,0}, {57331,16352,0},{57331,16367,0},{57329,16380,0},{57318,16393,0},{57314,16387,0}, {57311,16348,0},{57303,16335,0},{57298,16348,0},{57296,16363,0},{57298,16417,0}, {57301,16477,0},{57298,16503,0},{57293,16543,0},{57284,16553,0},{57279,16532,0}, {57274,16570,0},{57273,16618,0},{57269,16653,0},{57259,16638,0},{57259,16660,0}, {57263,16685,0},{57259,16730,0},{57256,16743,0},{57254,16730,0},{57253,16692,0}, {57251,16683,0},{57248,16697,0},{57244,16728,0},{57241,16705,0},{57239,16705,0}, {57238,16742,0},{57236,16753,0},{57231,16748,0},{57231,16770,0},{57236,16783,0}, {57238,16803,0},{57238,16828,0},{57234,16855,0},{57231,16850,0},{57226,16868,0}, {57219,16878,0},{57211,16858,0},{57208,16880,0},{57203,16903,0},{57203,16935,0}, {57199,16955,0},{57198,16998,0},{57193,17028,0},{57191,17078,0},{57186,17088,0}, {57189,17117,0},{57188,17137,0},{57181,17157,0},{57168,17230,0},{57163,17328,0}, {57159,17343,0},{57156,17337,0},{57151,17378,0},{57154,17458,0},{57154,17488,0}, {57151,17505,0},{57146,17520,0},{57143,17510,0},{57141,17532,0},{57141,17573,0}, {57136,17650,0},{57129,17703,0},{57129,17753,0},{57128,17800,0},{57123,17828,0}, {57124,17872,0},{57123,17915,0},{57114,17965,0},{57113,17968,0},{57108,17940,0}, {57103,17973,0},{57101,47541,0},{57103,47566,0},{57109,47688,0},{57108,47711,0}, {57103,47719,0},{57093,47691,0},{57096,47776,0},{57094,47873,0},{57093,47899,0}, {57093,48089,0},{57079,48408,0},{57076,48456,0},{57069,48619,0},{57064,48668,0}, {57059,48696,0},{57056,48679,0},{57053,48683,0},{57051,48763,0},{57048,48798,0}, {57048,48843,0},{57044,48889,0},{57038,48916,0},{57034,48986,0},{58183,52861,129}, {58193,52871,1},{58198,52846,1},{58204,52848,1},{58211,52841,1},{58216,52844,1}, {58221,52856,1},{58226,52876,1},{58223,52888,1},{58226,52904,1},{58224,52923,1}, {58221,52938,1},{58219,52953,1},{58221,52964,1},{58224,52976,1},{58224,52986,1}, {58224,52991,1},{58221,52993,1},{58218,52979,1},{58211,52979,1},{58204,52969,1}, {58203,52969,1},{58199,52994,1},{58203,53006,1},{58206,53014,1},{58208,53024,1}, {58204,53041,1},{58199,53046,1},{58191,53048,1},{58188,53064,1},{58183,53068,1}, {58178,53059,1},{58173,53028,1},{58169,53016,1},{58163,53034,1},{58163,53048,1}, {58168,53063,1},{58166,53088,1},{58161,53093,1},{58161,53098,1},{58163,53099,1}, {58168,53101,1},{58169,53113,1},{58176,53129,1},{58176,53136,1},{58174,53141,1}, {58168,53139,1},{58159,53153,1},{58158,53169,1},{58153,53171,1},{58148,53189,1}, {58143,53198,1},{58131,53196,1},{58124,53189,1},{58123,53183,1},{58124,53176,1}, {58128,53159,1},{58126,53139,1},{58128,53126,1},{58126,53104,1},{58128,53091,1}, {58134,53063,1},{58141,53054,1},{58143,53026,1},{58151,52999,1},{58151,52973,1}, {58153,52959,1},{58183,52921,1},{58191,52916,1},{58191,52909,1},{58184,52906,1}, {58178,52888,1},{58179,52864,1},{58183,52861,1},{58111,53288,129},{58119,53269,1}, {58124,53273,1},{58129,53288,1},{58136,53276,1},{58139,53283,1},{58143,53298,1}, {58148,53299,1},{58149,53309,1},{58151,53311,1},{58156,53306,1},{58158,53293,1}, {58161,53289,1},{58163,53276,1},{58163,53253,1},{58168,53259,1},{58173,53261,1}, {58178,53271,1},{58178,53361,1},{58173,53389,1},{58173,53404,1},{58169,53441,1}, {58171,53449,1},{58168,53483,1},{58171,53506,1},{58163,53534,1},{58161,53548,1}, {58163,53568,1},{58161,53583,1},{58164,53616,1},{58164,53653,1},{58163,53664,1}, {58156,53673,1},{58148,53663,1},{58139,53639,1},{58129,53579,1},{58114,53549,1}, {58106,53511,1},{58108,53448,1},{58106,53428,1},{58106,53411,1},{58106,53396,1}, {58104,53374,1},{58108,53333,1},{58111,53288,1},{57636,49438,129},{57648,49416,1}, {57653,49398,1},{57661,49326,1},{57663,49283,1},{57663,49229,1},{57661,49199,1}, {57658,49186,1},{57646,49181,1},{57641,49168,1},{57634,49141,1},{57629,49111,1}, {57623,49098,1},{57616,49109,1},{57606,49113,1},{57584,49193,1},{57571,49273,1}, {57563,49344,1},{57556,49483,1},{57554,49521,1},{57556,49598,1},{57561,49614,1}, {57566,49611,1},{57573,49583,1},{57586,49563,1},{57598,49558,1},{57613,49491,1}, {57636,49438,1},{57759,16710,129},{57773,16762,1},{57771,16817,1},{57768,16830,1}, {57768,16850,1},{57768,16860,1},{57771,16868,1},{57773,16893,1},{57783,16942,1}, {57789,16945,1},{57791,16935,1},{57793,16912,1},{57796,16900,1},{57796,16873,1}, {57801,16835,1},{57801,16823,1},{57796,16803,1},{57794,16780,1},{57798,16738,1}, {57804,16713,1},{57808,16715,1},{57816,16705,1},{57818,16690,1},{57819,16672,1}, {57818,16660,1},{57809,16637,1},{57799,16662,1},{57793,16650,1},{57786,16640,1}, {57783,16622,1},{57779,16623,1},{57774,16637,1},{57771,16653,1},{57769,16688,1}, {57766,16682,1},{57766,16655,1},{57764,16658,1},{57764,16687,1},{57753,16668,1}, {57751,16675,1},{57751,16685,1},{57753,16687,1},{57758,16693,1},{57759,16710,1}, {58283,55934,129},{58281,55916,1},{58283,55904,1},{58281,55871,1},{58283,55858,1}, {58281,55836,1},{58283,55809,1},{58286,55809,1},{58288,55804,1},{58286,55789,1}, {58284,55726,1},{58281,55713,1},{58283,55664,1},{58284,55659,1},{58286,55658,1}, {58289,55666,1},{58291,55661,1},{58293,55613,1},{58291,55593,1},{58291,55583,1}, {58296,55584,1},{58299,55593,1},{58303,55616,1},{58304,55611,1},{58304,55591,1}, {58304,55568,1},{58303,55543,1},{58304,55538,1},{58308,55536,1},{58309,55509,1}, {58308,55494,1},{58313,55483,1},{58314,55473,1},{58316,55369,1},{58314,55333,1}, {58316,55326,1},{58321,55319,1},{58321,55306,1},{58328,55299,1},{58333,55313,1}, {58343,55373,1},{58341,55393,1},{58343,55414,1},{58351,55444,1},{58349,55458,1}, {58349,55473,1},{58356,55481,1},{58358,55491,1},{58356,55504,1},{58353,55519,1}, {58348,55519,1},{58344,55484,1},{58341,55476,1},{58344,55521,1},{58341,55533,1}, {58338,55529,1},{58334,55516,1},{58333,55516,1},{58333,55528,1},{58336,55549,1}, {58339,55548,1},{58339,55554,1},{58344,55559,1},{58348,55558,1},{58349,55566,1}, {58348,55573,1},{58343,55581,1},{58339,55583,1},{58333,55576,1},{58331,55579,1}, {58331,55588,1},{58339,55594,1},{58341,55604,1},{58339,55618,1},{58334,55626,1}, {58336,55646,1},{58334,55651,1},{58331,55663,1},{58336,55666,1},{58341,55658,1}, {58344,55649,1},{58348,55619,1},{58349,55618,1},{58353,55621,1},{58354,55611,1}, {58359,55616,1},{58364,55638,1},{58373,55638,1},{58376,55653,1},{58376,55673,1}, {58373,55693,1},{58363,55721,1},{58361,55739,1},{58358,55739,1},{58353,55729,1}, {58351,55721,1},{58349,55704,1},{58339,55713,1},{58328,55701,1},{58326,55701,1}, {58328,55708,1},{58338,55728,1},{58336,55741,1},{58333,55746,1},{58328,55744,1}, {58324,55734,1},{58323,55736,1},{58328,55758,1},{58333,55764,1},{58336,55761,1}, {58343,55748,1},{58351,55756,1},{58356,55749,1},{58358,55751,1},{58359,55763,1}, {58358,55771,1},{58356,55779,1},{58354,55784,1},{58349,55773,1},{58351,55788,1}, {58349,55793,1},{58348,55798,1},{58341,55798,1},{58336,55774,1},{58334,55773,1}, {58319,55801,1},{58323,55804,1},{58329,55808,1},{58341,55824,1},{58356,55826,1}, {58361,55834,1},{58364,55851,1},{58359,55871,1},{58363,55894,1},{58361,55911,1}, {58358,55926,1},{58354,55931,1},{58344,55928,1},{58341,55911,1},{58338,55909,1}, {58334,55891,1},{58334,55873,1},{58323,55833,1},{58321,55838,1},{58318,55868,1}, {58318,55874,1},{58323,55889,1},{58326,55929,1},{58329,55953,1},{58333,55956,1}, {58336,55966,1},{58333,55978,1},{58329,55974,1},{58328,55988,1},{58324,55988,1}, {58323,55979,1},{58319,55973,1},{58318,55963,1},{58319,55939,1},{58318,55914,1}, {58316,55894,1},{58313,55884,1},{58313,55946,1},{58306,55956,1},{58306,55998,1}, {58303,55993,1},{58294,55949,1},{58289,55938,1},{58284,55943,1},{58283,55934,1}, {58263,57811,129},{58254,57809,1},{58249,57798,1},{58239,57794,1},{58233,57733,1}, {58226,57716,1},{58216,57683,1},{58216,57668,1},{58219,57658,1},{58233,57631,1}, {58238,57636,1},{58243,57649,1},{58244,57664,1},{58243,57673,1},{58239,57686,1}, {58243,57696,1},{58248,57711,1},{58256,57723,1},{58268,57719,1},{58269,57726,1}, {58269,57768,1},{58266,57784,1},{58266,57806,1},{58263,57811,1},{58238,58114,129}, {58231,58118,1},{58211,58091,1},{58204,58086,1},{58196,58088,1},{58183,58109,1}, {58171,58089,1},{58171,58073,1},{58174,58069,1},{58176,58049,1},{58194,57969,1}, {58204,57941,1},{58209,57938,1},{58214,57928,1},{58218,57928,1},{58228,57941,1}, {58223,57966,1},{58226,57973,1},{58228,57991,1},{58229,57996,1},{58234,58001,1}, {58236,57998,1},{58236,57971,1},{58241,57964,1},{58246,57978,1},{58251,57988,1}, {58254,57998,1},{58253,58053,1},{58243,58101,1},{58238,58114,1},{58273,58328,129}, {58289,58278,1},{58301,58294,1},{58309,58314,1},{58313,58338,1},{58311,58383,1}, {58311,58396,1},{58308,58426,1},{58308,58443,1},{58308,58466,1},{58309,58478,1}, {58313,58481,1},{58316,58468,1},{58319,58441,1},{58323,58436,1},{58328,58441,1}, {58334,58469,1},{58338,58473,1},{58338,58448,1},{58338,58444,1},{58338,58438,1}, {58354,58421,1},{58356,58411,1},{58353,58399,1},{58354,58393,1},{58366,58386,1}, {58371,58369,1},{58376,58361,1},{58374,58346,1},{58376,58343,1},{58378,58339,1}, {58381,58319,1},{58379,58304,1},{58376,58298,1},{58363,58289,1},{58353,58309,1}, {58351,58304,1},{58351,58293,1},{58353,58278,1},{58363,58258,1},{58359,58216,1}, {58358,58204,1},{58354,58201,1},{58353,58203,1},{58348,58229,1},{58344,58243,1}, {58333,58213,1},{58328,58211,1},{58324,58201,1},{58319,58184,1},{58321,58178,1}, {58329,58171,1},{58329,58116,1},{58338,58103,1},{58346,58056,1},{58353,58028,1}, {58371,57988,1},{58391,57969,1},{58398,57973,1},{58401,57986,1},{58399,58001,1}, {58391,58018,1},{58376,58038,1},{58376,58043,1},{58378,58049,1},{58376,58053,1}, {58373,58066,1},{58374,58074,1},{58381,58073,1},{58391,58048,1},{58408,58034,1}, {58413,58044,1},{58414,58054,1},{58411,58091,1},{58403,58101,1},{58393,58124,1}, {58388,58154,1},{58383,58176,1},{58376,58183,1},{58378,58194,1},{58381,58203,1}, {58388,58201,1},{58393,58194,1},{58393,58178,1},{58403,58148,1},{58409,58131,1}, {58416,58131,1},{58419,58139,1},{58421,58151,1},{58421,58183,1},{58416,58209,1}, {58413,58221,1},{58404,58233,1},{58403,58244,1},{58403,58251,1},{58408,58261,1}, {58409,58298,1},{58411,58303,1},{58414,58298,1},{58414,58259,1},{58416,58243,1}, {58423,58223,1},{58428,58218,1},{58433,58221,1},{58434,58246,1},{58441,58266,1}, {58439,58341,1},{58441,58363,1},{58444,58379,1},{58453,58396,1},{58456,58419,1}, {58456,58429,1},{58453,58436,1},{58439,58446,1},{58436,58453,1},{58438,58468,1}, {58441,58476,1},{58444,58476,1},{58449,58468,1},{58456,58446,1},{58461,58443,1}, {58468,58428,1},{58473,58423,1},{58481,58386,1},{58491,58381,1},{58498,58386,1}, {58508,58399,1},{58511,58419,1},{58511,58458,1},{58509,58483,1},{58513,58504,1}, {58511,58533,1},{58516,58536,1},{58519,58528,1},{58519,58514,1},{58518,58484,1}, {58518,58471,1},{58523,58458,1},{58528,58434,1},{58533,58419,1},{58539,58421,1}, {58539,58398,1},{58551,58374,1},{58556,58349,1},{58569,58351,1},{58574,58354,1}, {58584,58344,1},{58593,58359,1},{58596,58359,1},{58603,58374,1},{58606,58368,1}, {58606,58373,1},{58608,58373,1},{58613,58354,1},{58614,58353,1},{58614,58346,1}, {58619,58344,1},{58623,58323,1},{58628,58324,1},{58629,58329,1},{58638,58363,1}, {58643,58376,1},{58646,58393,1},{58648,58408,1},{58649,58418,1},{58649,58438,1}, {58654,58451,1},{58659,58484,1},{58658,58496,1},{58651,58521,1},{58646,58528,1}, {58634,58528,1},{58631,58533,1},{58626,58536,1},{58624,58528,1},{58618,58529,1}, {58609,58526,1},{58606,58538,1},{58608,58561,1},{58593,58574,1},{58589,58584,1}, {58581,58586,1},{58573,58601,1},{58556,58604,1},{58551,58611,1},{58541,58613,1}, {58529,58626,1},{58516,58629,1},{58508,58646,1},{58506,58661,1},{58501,58671,1}, {58496,58671,1},{58483,58688,1},{58469,58698,1},{58461,58699,1},{58456,58704,1}, {58454,58694,1},{58449,58706,1},{58439,58704,1},{58429,58711,1},{58406,58718,1}, {58399,58711,1},{58378,58721,1},{58373,58728,1},{58363,58721,1},{58346,58719,1}, {58341,58699,1},{58338,58693,1},{58328,58703,1},{58308,58694,1},{58306,58686,1}, {58308,58674,1},{58309,58659,1},{58308,58644,1},{58303,58633,1},{58296,58634,1}, {58289,58628,1},{58289,58636,1},{58293,58646,1},{58291,58649,1},{58284,58636,1}, {58283,58626,1},{58284,58621,1},{58284,58618,1},{58283,58614,1},{58279,58619,1}, {58278,58611,1},{58276,58598,1},{58269,58571,1},{58269,58541,1},{58268,58523,1}, {58269,58501,1},{58266,58479,1},{58269,58456,1},{58269,58379,1},{58266,58348,1}, {58268,58339,1},{58273,58328,1},{58538,58071,129},{58541,58023,1},{58541,58009,1}, {58539,57999,1},{58539,57986,1},{58538,57979,1},{58538,57971,1},{58543,57943,1}, {58549,57949,1},{58553,57949,1},{58569,57931,1},{58571,57943,1},{58574,57958,1}, {58573,57979,1},{58574,58008,1},{58576,58013,1},{58581,58009,1},{58583,58018,1}, {58581,58056,1},{58578,58071,1},{58573,58073,1},{58569,58079,1},{58566,58076,1}, {58561,58089,1},{58554,58096,1},{58544,58081,1},{58539,58078,1},{58538,58071,1}, {58783,58614,129},{58786,58619,1},{58803,58653,1},{58818,58666,1},{58833,58674,1}, {58863,58718,1},{58874,58754,1},{58876,58764,1},{58876,58776,1},{58873,58778,1}, {58866,58769,1},{58851,58746,1},{58846,58744,1},{58839,58748,1},{58836,58744,1}, {58831,58744,1},{58828,58759,1},{58824,58759,1},{58821,58769,1},{58816,58761,1}, {58803,58721,1},{58798,58723,1},{58796,58738,1},{58794,58741,1},{58783,58731,1}, {58781,58724,1},{58783,58711,1},{58783,58703,1},{58779,58696,1},{58776,58698,1}, {58771,58696,1},{58761,58681,1},{58759,58649,1},{58761,58641,1},{58769,58629,1}, {58773,58619,1},{58783,58614,1},{59066,59111,129},{59071,59118,1},{59079,59119,1}, {59084,59151,1},{59086,59153,1},{59091,59148,1},{59093,59153,1},{59094,59169,1}, {59099,59174,1},{59104,59174,1},{59106,59183,1},{59108,59184,1},{59111,59209,1}, {59108,59226,1},{59106,59226,1},{59103,59221,1},{59101,59209,1},{59099,59213,1}, {59093,59206,1},{59093,59213,1},{59098,59223,1},{59096,59228,1},{59089,59221,1}, {59091,59228,1},{59089,59229,1},{59081,59213,1},{59079,59224,1},{59081,59228,1}, {59086,59241,1},{59084,59243,1},{59086,59253,1},{59083,59253,1},{59079,59259,1}, {59073,59233,1},{59073,59228,1},{59061,59206,1},{59061,59199,1},{59063,59198,1}, {59063,59189,1},{59059,59188,1},{59053,59173,1},{59058,59161,1},{59059,59133,1}, {59063,59128,1},{59064,59111,1},{59066,59111,1},{59273,59423,129},{59274,59424,1}, {59278,59419,1},{59279,59421,1},{59276,59439,1},{59281,59454,1},{59291,59458,1}, {59288,59468,1},{59283,59473,1},{59281,59484,1},{59283,59506,1},{59289,59521,1}, {59289,59528,1},{59284,59534,1},{59281,59529,1},{59278,59531,1},{59274,59539,1}, {59276,59548,1},{59274,59554,1},{59268,59536,1},{59259,59511,1},{59261,59506,1}, {59263,59503,1},{59268,59506,1},{59266,59499,1},{59268,59496,1},{59271,59501,1}, {59274,59503,1},{59274,59499,1},{59273,59483,1},{59274,59473,1},{59269,59456,1}, {59271,59441,1},{59271,59421,1},{59273,59423,1},{59316,59638,129},{59329,59659,1}, {59331,59668,1},{59336,59671,1},{59336,59679,1},{59343,59696,1},{59341,59713,1}, {59343,59721,1},{59346,59738,1},{59343,59756,1},{59348,59769,1},{59348,59771,1}, {59344,59774,1},{59339,59771,1},{59334,59778,1},{59336,59763,1},{59334,59759,1}, {59329,59743,1},{59329,59724,1},{59324,59723,1},{59323,59726,1},{59319,59716,1}, {59319,59706,1},{59321,59701,1},{59326,59701,1},{59328,59709,1},{59331,59699,1}, {59329,59694,1},{59326,59693,1},{59321,59679,1},{59319,59681,1},{59321,59691,1}, {59319,59694,1},{59316,59694,1},{59313,59688,1},{59311,59678,1},{59311,59673,1}, {59313,59671,1},{59313,59663,1},{59314,59659,1},{59313,59653,1},{59316,59649,1}, {59314,59639,1},{59316,59638,1},{59411,60001,129},{59416,59996,1},{59419,59998,1}, {59423,59986,1},{59429,59998,1},{59428,60008,1},{59428,60021,1},{59426,60033,1}, {59426,60043,1},{59426,60071,1},{59423,60061,1},{59419,60033,1},{59416,60029,1}, {59414,60021,1},{59408,60014,1},{59409,60009,1},{59411,60001,1},{59193,59894,129}, {59198,59891,1},{59198,59883,1},{59203,59883,1},{59204,59891,1},{59208,59891,1}, {59214,59901,1},{59216,59914,1},{59223,59934,1},{59224,59953,1},{59223,59958,1}, {59221,59963,1},{59223,59969,1},{59224,59978,1},{59223,59988,1},{59221,59989,1}, {59218,59989,1},{59216,59993,1},{59218,60003,1},{59214,60031,1},{59213,60034,1}, {59208,60036,1},{59203,60029,1},{59199,60013,1},{59199,60003,1},{59203,59989,1}, {59203,59973,1},{59206,59964,1},{59204,59956,1},{59206,59949,1},{59203,59944,1}, {59203,59938,1},{59198,59933,1},{59193,59908,1},{59193,59894,1},{59091,59741,129}, {59094,59736,1},{59099,59736,1},{59098,59728,1},{59099,59719,1},{59104,59713,1}, {59108,59716,1},{59111,59728,1},{59116,59721,1},{59124,59729,1},{59128,59728,1}, {59128,59719,1},{59123,59709,1},{59124,59694,1},{59128,59693,1},{59136,59701,1}, {59138,59718,1},{59139,59716,1},{59141,59708,1},{59144,59711,1},{59148,59718,1}, {59146,59726,1},{59151,59733,1},{59151,59743,1},{59153,59739,1},{59156,59743,1}, {59158,59758,1},{59146,59761,1},{59138,59754,1},{59136,59759,1},{59129,59756,1}, {59128,59764,1},{59129,59771,1},{59134,59766,1},{59144,59788,1},{59144,59791,1}, {59141,59788,1},{59133,59789,1},{59131,59796,1},{59131,59808,1},{59128,59821,1}, {59121,59821,1},{59121,59831,1},{59119,59833,1},{59106,59801,1},{59103,59803,1}, {59099,59813,1},{59098,59806,1},{59099,59788,1},{59096,59771,1},{59096,59764,1}, {59091,59746,1},{59091,59741,1},{57796,58249,129},{57783,58253,1},{57764,58221,1}, {57741,58148,1},{57731,58094,1},{57729,58066,1},{57733,58001,1},{57746,57861,1}, {57748,57806,1},{57759,57653,1},{57763,57638,1},{57783,57624,1},{57788,57604,1}, {57788,57583,1},{57781,57553,1},{57784,57484,1},{57789,57446,1},{57796,57434,1}, {57808,57451,1},{57818,57451,1},{57826,57464,1},{57829,57484,1},{57823,57789,1}, {57806,58174,1},{57799,58226,1},{57796,58249,1},{57693,58878,129},{57673,58841,1}, {57668,58821,1},{57664,58783,1},{57651,58731,1},{57631,58668,1},{57611,58634,1}, {57598,58564,1},{57594,58563,1},{57578,58604,1},{57568,58588,1},{57566,58569,1}, {57568,58526,1},{57576,58446,1},{57606,58426,1},{57626,58436,1},{57631,58449,1}, {57643,58508,1},{57653,58576,1},{57668,58621,1},{57674,58664,1},{57684,58741,1}, {57693,58778,1},{57696,58799,1},{57698,58848,1},{57696,58874,1},{57693,58878,1}, {57544,59573,129},{57536,59598,1},{57529,59608,1},{57499,59591,1},{57484,59569,1}, {57468,59558,1},{57456,59579,1},{57439,59541,1},{57433,59516,1},{57433,59471,1}, {57439,59368,1},{57444,59323,1},{57454,59276,1},{57468,59256,1},{57471,59236,1}, {57469,59196,1},{57461,59139,1},{57463,59118,1},{57474,59034,1},{57493,58944,1}, {57496,58928,1},{57503,58924,1},{57509,58946,1},{57509,58958,1},{57506,58968,1}, {57498,58986,1},{57489,59059,1},{57486,59181,1},{57484,59319,1},{57488,59381,1}, {57489,59409,1},{57496,59443,1},{57508,59468,1},{57543,59539,1},{57546,59554,1}, {57544,59573,1},{57741,60864,129},{57738,60908,1},{57728,60996,1},{57713,61073,1}, {57704,61099,1},{57683,61106,1},{57666,61089,1},{57663,61063,1},{57661,61004,1}, {57659,60953,1},{57651,60904,1},{57644,60894,1},{57641,60906,1},{57641,60991,1}, {57643,61038,1},{57643,61099,1},{57639,61121,1},{57619,61123,1},{57613,61103,1}, {57604,61061,1},{57603,61058,1},{57601,61066,1},{57598,61158,1},{57593,61176,1}, {57574,61203,1},{57553,61208,1},{57541,61198,1},{57536,61186,1},{57536,61129,1}, {57533,61111,1},{57531,61111,1},{57523,61154,1},{57519,61159,1},{57506,61114,1}, {57491,61034,1},{57473,60876,1},{57466,60736,1},{57461,60631,1},{57453,60561,1}, {57449,60509,1},{57444,60379,1},{57441,60266,1},{57443,60166,1},{57444,60119,1}, {57449,60081,1},{57458,60058,1},{57471,60046,1},{57481,60048,1},{57493,60061,1}, {57548,60151,1},{57573,60178,1},{57643,60284,1},{57658,60326,1},{57671,60376,1}, {57684,60446,1},{57704,60574,1},{57723,60638,1},{57729,60664,1},{57739,60729,1}, {57743,60756,1},{57744,60804,1},{57743,60841,1},{57741,60864,1},{1037,10445,128}, {1038,10450,0},{1042,10452,0},{1038,10453,0},{1037,10450,0},{1033,10453,0}, {1028,10453,0},{1028,10457,0},{1027,10458,0},{1015,10462,0},{1015,10465,0}, {1020,10468,0},{1023,10473,0},{1020,10480,0},{1010,10490,0},{1010,10498,0}, {1002,10507,0},{995,10510,0},{992,10510,0},{985,10512,0},{993,10508,0}, {993,10507,0},{992,10503,0},{983,10495,0},{982,10490,0},{968,10487,0},{955,10483,0}, {915,10482,0},{905,10482,0},{903,10482,0},{900,10480,0},{898,10483,0},{895,10482,0}, {888,10482,0},{880,10480,0},{877,10482,0},{882,10493,0},{880,10492,0},{873,10492,0}, {872,10490,0},{872,10485,0},{870,10487,0},{872,10497,0},{868,10490,0},{870,10482,0}, {865,10483,0},{860,10477,0},{862,10472,0},{860,10473,0},{857,10485,0},{858,10502,0}, {863,10512,0},{873,10520,0},{877,10530,0},{883,10535,0},{900,10540,0},{900,10542,0}, {905,10545,0},{913,10553,0},{930,10600,0},{937,10620,0},{940,10620,0},{942,10617,0}, {948,10622,0},{952,10622,0},{955,10618,0},{965,10612,0},{977,10605,0},{1000,10582,0}, {997,10592,0},{992,10598,0},{978,10608,0},{963,10625,0},{957,10635,0},{953,10640,0}, {955,10650,0},{958,10655,0},{965,10658,0},{973,10657,0},{977,10652,0},{980,10652,0}, {985,10648,0},{1000,10632,0},{1007,10627,0},{1012,10618,0},{1015,10617,0}, {1018,10617,0},{1023,10612,0},{1015,10622,0},{998,10638,0},{992,10650,0}, {982,10660,0},{983,10665,0},{988,10667,0},{987,10668,0},{983,10667,0},{985,10668,0}, {987,10670,0},{990,10668,0},{997,10657,0},{1000,10648,0},{1013,10638,0}, {1022,10635,0},{1025,10628,0},{1025,10632,0},{1022,10637,0},{1003,10648,0}, {998,10660,0},{997,10665,0},{1000,10665,0},{1000,10668,0},{1003,10667,0}, {1008,10670,0},{1003,10672,0},{1008,10678,0},{1012,10680,0},{1015,10680,0}, {1020,10670,0},{1027,10648,0},{1032,10642,0},{1028,10665,0},{1028,10668,0}, {1028,10678,0},{1030,10680,0},{1038,10680,0},{1047,10673,0},{1043,10667,0}, {1047,10665,0},{1045,10663,0},{1043,10658,0},{1048,10658,0},{1047,10658,0}, {1043,10658,0},{1045,10663,0},{1048,10667,0},{1052,10665,0},{1050,10668,0}, {1052,10673,0},{1057,10673,0},{1058,10677,0},{1067,10673,0},{1068,10677,0}, {1067,10680,0},{1063,10683,0},{1065,10688,0},{1060,10693,0},{1057,10693,0}, {1053,10693,0},{1050,10697,0},{1047,10697,0},{1050,10698,0},{1052,10702,0}, {1055,10698,0},{1062,10698,0},{1055,10700,0},{1053,10702,0},{1057,10702,0}, {1058,10702,0},{1063,10700,0},{1065,10702,0},{1067,10698,0},{1070,10698,0}, {1067,10702,0},{1063,10703,0},{1063,10700,0},{1058,10703,0},{1055,10703,0}, {1053,10703,0},{1050,10702,0},{1050,10700,0},{1048,10700,0},{1050,10702,0}, {1047,10703,0},{1048,10705,0},{1050,10707,0},{1048,10707,0},{1048,10712,0}, {1047,10713,0},{1047,10715,0},{1048,10717,0},{1042,10722,0},{1040,10718,0}, {1040,10723,0},{1038,10725,0},{1045,10733,0},{1047,10738,0},{1047,10745,0}, {1050,10752,0},{1057,10758,0},{1063,10777,0},{1070,10783,0},{1072,10790,0}, {1070,10800,0},{1085,10807,0},{1092,10810,0},{1095,10823,0},{1093,10828,0}, {1092,10830,0},{1095,10832,0},{1095,10835,0},{1103,10838,0},{1105,10848,0}, {1110,10850,0},{1115,10855,0},{1118,10858,0},{1118,10867,0},{1117,10872,0}, {1118,10873,0},{1128,10877,0},{1132,10880,0},{1133,10887,0},{1130,10893,0}, {1132,10897,0},{1135,10902,0},{1153,10903,0},{1153,10902,0},{1153,10903,0}, {1157,10903,0},{1158,10905,0},{1163,10902,0},{1163,10903,0},{1162,10905,0}, {1158,10907,0},{1158,10910,0},{1157,10913,0},{1163,10918,0},{1167,10918,0}, {1168,10920,0},{1172,10920,0},{1172,10925,0},{1180,10920,0},{1182,10920,0}, {1183,10918,0},{1187,10920,0},{1182,10915,0},{1182,10913,0},{1185,10912,0}, {1190,10913,0},{1193,10918,0},{1198,10922,0},{1210,10917,0},{1212,10918,0}, {1205,10920,0},{1198,10923,0},{1188,10922,0},{1187,10925,0},{1187,10928,0}, {1192,10927,0},{1193,10928,0},{1197,10928,0},{1198,10925,0},{1208,10920,0}, {1210,10920,0},{1213,10923,0},{1215,10920,0},{1218,10922,0},{1220,10918,0}, {1220,10922,0},{1222,10920,0},{1225,10920,0},{1227,10917,0},{1227,10922,0}, {1228,10922,0},{1230,10925,0},{1233,10922,0},{1238,10920,0},{1240,10917,0}, {1243,10915,0},{1243,10917,0},{1245,10915,0},{1247,10917,0},{1243,10922,0}, {1235,10927,0},{1235,10930,0},{1238,10932,0},{1237,10933,0},{1238,10933,0}, {1240,10935,0},{1243,10930,0},{1247,10930,0},{1253,10923,0},{1255,10923,0}, {1258,10925,0},{1258,10923,0},{1257,10922,0},{1253,10922,0},{1258,10920,0}, {1262,10922,0},{1263,10920,0},{1268,10923,0},{1277,10933,0},{1280,10935,0}, {1280,10937,0},{1277,10937,0},{1270,10938,0},{1265,10935,0},{1263,10937,0}, {1265,10938,0},{1267,10938,0},{1268,10940,0},{1265,10942,0},{1263,10942,0}, {1262,10940,0},{1260,10942,0},{1257,10943,0},{1257,10945,0},{1263,10943,0}, {1265,10947,0},{1268,10943,0},{1275,10938,0},{1282,10937,0},{1287,10943,0}, {1287,10945,0},{1285,10943,0},{1285,10947,0},{1290,10947,0},{1307,10935,0}, {1308,10932,0},{1310,10933,0},{1313,10930,0},{1327,10932,0},{1330,10930,0}, {1327,10928,0},{1323,10930,0},{1325,10927,0},{1328,10925,0},{1332,10927,0}, {1330,10930,0},{1333,10928,0},{1333,10930,0},{1335,10930,0},{1335,10927,0}, {1338,10925,0},{1338,10923,0},{1348,10923,0},{1348,10925,0},{1348,10928,0}, {1345,10930,0},{1343,10927,0},{1342,10928,0},{1342,10933,0},{1345,10933,0}, {1347,10933,0},{1347,10932,0},{1350,10930,0},{1352,10932,0},{1352,10927,0}, {1355,10927,0},{1362,10922,0},{1365,10922,0},{1362,10923,0},{1355,10928,0}, {1353,10928,0},{1355,10928,0},{1357,10930,0},{1358,10928,0},{1363,10923,0}, {1368,10925,0},{1373,10922,0},{1377,10925,0},{1378,10923,0},{1380,10923,0}, {1382,10922,0},{1385,10923,0},{1390,10925,0},{1387,10927,0},{1375,10927,0}, {1377,10930,0},{1382,10930,0},{1388,10932,0},{1388,10928,0},{1392,10927,0}, {1402,10927,0},{1412,10922,0},{1413,10918,0},{1417,10917,0},{1417,10918,0}, {1417,10920,0},{1413,10922,0},{1413,10923,0},{1420,10920,0},{1423,10920,0}, {1428,10918,0},{1437,10913,0},{1447,10913,0},{1450,10910,0},{1457,10908,0}, {1455,10907,0},{1457,10907,0},{1458,10908,0},{1468,10907,0},{1467,10908,0}, {1468,10908,0},{1472,10908,0},{1482,10902,0},{1483,10898,0},{1483,10900,0}, {1500,10893,0},{1513,10890,0},{1512,10890,0},{1513,10888,0},{1515,10887,0}, {1515,10890,0},{1520,10890,0},{1520,10892,0},{1522,10890,0},{1522,10893,0}, {1525,10895,0},{1528,10888,0},{1535,10888,0},{1537,10883,0},{1542,10883,0}, {1542,10880,0},{1540,10882,0},{1538,10878,0},{1535,10878,0},{1535,10882,0}, {1533,10878,0},{1532,10877,0},{1538,10877,0},{1543,10872,0},{1548,10870,0}, {1543,10867,0},{1545,10863,0},{1548,10863,0},{1548,10867,0},{1552,10868,0}, {1550,10867,0},{1552,10863,0},{1555,10860,0},{1568,10848,0},{1580,10842,0}, {1588,10840,0},{1587,10837,0},{1588,10838,0},{1593,10832,0},{1598,10828,0}, {1607,10827,0},{1610,10827,0},{1610,10832,0},{1612,10835,0},{1615,10833,0}, {1613,10832,0},{1615,10827,0},{1615,10823,0},{1613,10822,0},{1612,10825,0}, {1608,10823,0},{1602,10827,0},{1602,10825,0},{1600,10820,0},{1603,10823,0}, {1608,10823,0},{1607,10820,0},{1608,10818,0},{1612,10813,0},{1615,10815,0}, {1622,10820,0},{1623,10807,0},{1625,10805,0},{1627,10805,0},{1623,10810,0}, {1635,10803,0},{1632,10800,0},{1635,10795,0},{1633,10793,0},{1630,10793,0}, {1628,10790,0},{1630,10782,0},{1638,10778,0},{1637,10783,0},{1652,10770,0}, {1650,10767,0},{1652,10767,0},{1652,10765,0},{1655,10767,0},{1655,10760,0}, {1655,10763,0},{1658,10760,0},{1658,10757,0},{1663,10745,0},{1665,10745,0}, {1663,10750,0},{1657,10762,0},{1658,10763,0},{1668,10747,0},{1690,10722,0}, {1690,10720,0},{1687,10718,0},{1687,10715,0},{1692,10720,0},{1702,10713,0}, {1702,10712,0},{1708,10712,0},{1733,10675,0},{1747,10663,0},{1757,10658,0}, {1768,10650,0},{1772,10642,0},{1770,10640,0},{1768,10640,0},{1768,10638,0}, {1770,10637,0},{1772,10638,0},{1773,10643,0},{1775,10630,0},{1777,10628,0}, {1777,10635,0},{1773,10642,0},{1770,10647,0},{1770,10650,0},{1772,10650,0}, {1778,10645,0},{1787,10645,0},{1787,10643,0},{1788,10645,0},{1792,10648,0}, {1795,10653,0},{1803,10645,0},{1808,10642,0},{1812,10643,0},{1812,10642,0}, {1810,10640,0},{1810,10637,0},{1807,10635,0},{1810,10633,0},{1810,10632,0}, {1812,10635,0},{1822,10625,0},{1827,10617,0},{1825,10610,0},{1828,10612,0}, {1833,10603,0},{1840,10597,0},{1847,10595,0},{1847,10592,0},{1857,10583,0}, {1867,10580,0},{1875,10578,0},{1875,10575,0},{1868,10577,0},{1867,10575,0}, {1870,10575,0},{1873,10573,0},{1877,10575,0},{1882,10572,0},{1882,10570,0}, {1885,10567,0},{1885,10572,0},{1890,10563,0},{1900,10560,0},{1908,10565,0}, {1908,10567,0},{1908,10570,0},{1910,10573,0},{1922,10575,0},{1923,10573,0}, {1923,10577,0},{1930,10582,0},{1932,10580,0},{1932,10582,0},{1940,10577,0}, {1942,10582,0},{1957,10582,0},{1960,10582,0},{1958,10578,0},{1960,10578,0}, {1962,10582,0},{1958,10582,0},{1960,10582,0},{1965,10583,0},{1970,10587,0}, {1972,10588,0},{1972,10590,0},{1977,10593,0},{1977,10587,0},{1980,10592,0}, {1980,10593,0},{1985,10593,0},{1988,10595,0},{1992,10595,0},{2000,10603,0}, {1997,10608,0},{2000,10610,0},{2003,10612,0},{1997,10610,0},{2000,10618,0}, {2003,10620,0},{2000,10620,0},{2003,10623,0},{2013,10632,0},{2018,10635,0}, {2020,10638,0},{2022,10648,0},{2027,10655,0},{2030,10653,0},{2030,10650,0}, {2032,10652,0},{2028,10657,0},{2030,10657,0},{2033,10658,0},{2037,10657,0}, {2038,10658,0},{2043,10660,0},{2045,10657,0},{2043,10652,0},{2048,10658,0}, {2052,10657,0},{2055,10658,0},{2053,10655,0},{2053,10652,0},{2055,10655,0}, {2058,10662,0},{2062,10663,0},{2063,10660,0},{2067,10658,0},{2063,10662,0}, {2063,10665,0},{2067,10670,0},{2070,10667,0},{2070,10673,0},{2070,10677,0}, {2068,10680,0},{2073,10678,0},{2075,10675,0},{2080,10672,0},{2080,10675,0}, {2083,10675,0},{2088,10670,0},{2090,10672,0},{2088,10673,0},{2093,10677,0}, {2095,10668,0},{2100,10665,0},{2100,10668,0},{2102,10665,0},{2100,10672,0}, {2103,10673,0},{2102,10675,0},{2102,10678,0},{2103,10678,0},{2102,10682,0}, {2100,10680,0},{2097,10683,0},{2097,10680,0},{2097,10678,0},{2093,10677,0}, {2093,10683,0},{2087,10687,0},{2090,10688,0},{2093,10688,0},{2090,10690,0}, {2090,10695,0},{2093,10692,0},{2097,10687,0},{2098,10685,0},{2098,10687,0}, {2100,10687,0},{2097,10688,0},{2095,10697,0},{2098,10702,0},{2102,10700,0}, {2100,10703,0},{2103,10703,0},{2100,10705,0},{2103,10705,0},{2100,10707,0}, {2103,10708,0},{2100,10708,0},{2103,10713,0},{2103,10715,0},{2100,10710,0}, {2095,10707,0},{2093,10715,0},{2093,10720,0},{2097,10720,0},{2098,10723,0}, {2100,10722,0},{2100,10733,0},{2102,10737,0},{2107,10735,0},{2108,10737,0}, {2110,10737,0},{2113,10738,0},{2118,10738,0},{2118,10735,0},{2123,10737,0}, {2127,10737,0},{2128,10745,0},{2130,10742,0},{2133,10742,0},{2132,10747,0}, {2128,10748,0},{2130,10748,0},{2130,10753,0},{2133,10752,0},{2135,10753,0}, {2133,10753,0},{2128,10757,0},{2130,10760,0},{2133,10762,0},{2135,10763,0}, {2138,10763,0},{2138,10767,0},{2140,10767,0},{2138,10770,0},{2142,10772,0}, {2142,10775,0},{2145,10777,0},{2145,10778,0},{2148,10778,0},{2148,10780,0}, {2150,10778,0},{2150,10775,0},{2152,10778,0},{2148,10782,0},{2152,10782,0}, {2152,10783,0},{2148,10783,0},{2152,10785,0},{2152,10787,0},{2153,10788,0}, {2152,10792,0},{2148,10793,0},{2147,10792,0},{2145,10792,0},{2145,10795,0}, {2147,10795,0},{2148,10798,0},{2143,10797,0},{2147,10800,0},{2148,10808,0}, {2150,10805,0},{2148,10802,0},{2152,10802,0},{2152,10803,0},{2155,10798,0}, {1163,10292,128},{1157,10295,0},{1160,10297,0},{1163,10297,0},{1165,10295,0}, {1172,10297,0},{1175,10295,0},{1178,10290,0},{1183,10290,0},{1178,10292,0}, {1177,10295,0},{1172,10298,0},{1173,10302,0},{1172,10305,0},{1172,10308,0}, {1170,10307,0},{1172,10302,0},{1167,10297,0},{1163,10297,0},{1167,10298,0}, {1167,10300,0},{1165,10300,0},{1165,10302,0},{1163,10302,0},{1163,10305,0}, {1162,10302,0},{1163,10300,0},{1163,10298,0},{1157,10298,0},{1155,10300,0}, {1157,10298,0},{1155,10297,0},{1153,10298,0},{1155,10303,0},{1160,10303,0}, {1158,10305,0},{1155,10305,0},{1150,10307,0},{1147,10310,0},{1148,10313,0}, {1150,10313,0},{1147,10315,0},{1143,10317,0},{1147,10313,0},{1143,10308,0}, {1143,10307,0},{1142,10310,0},{1135,10310,0},{1135,10313,0},{1130,10315,0}, {1132,10313,0},{1130,10312,0},{1128,10308,0},{1123,10308,0},{1122,10305,0}, {1122,10308,0},{1115,10312,0},{1108,10312,0},{1108,10310,0},{1097,10312,0}, {1093,10310,0},{1090,10313,0},{1087,10313,0},{1087,10322,0},{1088,10322,0}, {1093,10328,0},{1090,10333,0},{1087,10335,0},{1088,10342,0},{1097,10342,0}, {1108,10347,0},{1108,10345,0},{1113,10348,0},{1115,10347,0},{1113,10348,0}, {1115,10350,0},{1117,10350,0},{1115,10355,0},{1108,10360,0},{1107,10367,0}, {1103,10367,0},{1098,10367,0},{1087,10372,0},{1083,10372,0},{1080,10368,0}, {1077,10368,0},{1077,10367,0},{1073,10368,0},{1072,10357,0},{1062,10350,0}, {1060,10350,0},{1060,10353,0},{1053,10357,0},{1055,10362,0},{1050,10362,0}, {1048,10363,0},{1050,10370,0},{1050,10375,0},{1052,10373,0},{1055,10370,0}, {1053,10377,0},{1055,10383,0},{1060,10387,0},{1070,10387,0},{1065,10387,0}, {1065,10390,0},{1058,10393,0},{1055,10410,0},{1057,10417,0},{1053,10418,0}, {1057,10422,0},{1057,10425,0},{1053,10428,0},{1048,10430,0},{1050,10435,0}, {1048,10437,0},{1045,10440,0},{1045,10443,0},{1042,10445,0},{623,10210,128}, {632,10198,0},{642,10188,0},{645,10182,0},{648,10178,0},{683,10157,0},{685,10153,0}, {690,10140,0},{695,10130,0},{693,10127,0},{692,10133,0},{688,10137,0},{687,10135,0}, {687,10130,0},{690,10128,0},{687,10122,0},{687,10108,0},{685,10105,0},{685,10102,0}, {695,10085,0},{695,10080,0},{697,10078,0},{722,10060,0},{717,10058,0},{713,10053,0}, {713,10047,0},{715,10048,0},{717,10042,0},{722,10038,0},{725,10042,0},{727,10038,0}, {733,10037,0},{733,10032,0},{738,10027,0},{748,10023,0},{752,10018,0},{762,10015,0}, {772,10015,0},{773,10015,0},{775,10020,0},{778,10022,0},{780,10027,0},{778,10030,0}, {773,10032,0},{762,10032,0},{758,10030,0},{758,10028,0},{752,10027,0},{753,10030,0}, {755,10032,0},{757,10035,0},{757,10038,0},{753,10040,0},{730,10043,0},{727,10042,0}, {725,10043,0},{725,10048,0},{718,10057,0},{722,10058,0},{730,10052,0},{747,10043,0}, {778,10038,0},{812,10030,0},{830,10027,0},{843,10022,0},{850,10017,0},{852,10013,0}, {850,10015,0},{847,10018,0},{842,10017,0},{840,10018,0},{838,10017,0},{840,10013,0}, {843,10008,0},{853,10005,0},{857,9998,0},{862,9997,0},{887,9993,0},{898,9992,0}, {900,9993,0},{903,9992,0},{910,9992,0},{915,9988,0},{922,9988,0},{923,9987,0}, {930,9985,0},{932,9975,0},{930,9973,0},{932,9970,0},{930,9968,0},{930,9965,0}, {927,9962,0},{928,9953,0},{922,9950,0},{918,9945,0},{920,9937,0},{923,9930,0}, {922,9927,0},{925,9923,0},{933,9923,0},{938,9930,0},{940,9932,0},{947,9927,0}, {955,9922,0},{960,9922,0},{963,9918,0},{977,9915,0},{980,9915,0},{985,9917,0}, {998,9915,0},{1000,9917,0},{1002,9918,0},{1005,9918,0},{1007,9915,0},{1012,9915,0}, {1020,9920,0},{1020,9923,0},{1023,9925,0},{1023,9922,0},{1025,9920,0},{1027,9918,0}, {1030,9917,0},{1037,9915,0},{1037,9922,0},{1035,9923,0},{1037,9928,0},{1042,9928,0}, {1045,9923,0},{1047,9923,0},{1050,9927,0},{1052,9923,0},{1055,9928,0},{1065,9932,0}, {1067,9933,0},{1068,9937,0},{1070,9937,0},{1080,9943,0},{1087,9943,0},{1088,9948,0}, {1087,9950,0},{1090,9952,0},{1095,9950,0},{1103,9952,0},{1107,9950,0},{1112,9948,0}, {1118,9953,0},{1120,9955,0},{1118,9957,0},{1118,9958,0},{1122,9958,0},{1127,9957,0}, {1132,9957,0},{1140,9962,0},{1152,9963,0},{1168,9973,0},{1173,9978,0},{1173,9982,0}, {1177,9980,0},{1178,9982,0},{1182,9980,0},{1183,9983,0},{1188,9982,0},{1198,9987,0}, {1208,9997,0},{1215,9998,0},{1218,10002,0},{1223,10002,0},{1227,9998,0}, {1237,10002,0},{1247,9997,0},{1253,9998,0},{1262,9997,0},{1267,9997,0}, {1275,9997,0},{1287,10003,0},{1295,10005,0},{1305,10010,0},{1308,10008,0}, {1315,10007,0},{1322,10000,0},{1327,9997,0},{1330,9995,0},{1335,10002,0}, {1337,10002,0},{1337,10000,0},{1337,10003,0},{1342,10005,0},{1348,10025,0}, {1352,10027,0},{1348,10033,0},{1352,10057,0},{1353,10058,0},{1357,10058,0}, {1360,10060,0},{1355,10058,0},{1352,10065,0},{1347,10092,0},{1347,10097,0}, {1350,10100,0},{1345,10097,0},{1337,10098,0},{1333,10093,0},{1330,10092,0}, {1320,10095,0},{1308,10088,0},{1305,10092,0},{1302,10093,0},{1298,10092,0}, {1297,10090,0},{1293,10088,0},{1292,10087,0},{1287,10090,0},{1280,10092,0}, {1277,10090,0},{1277,10087,0},{1273,10083,0},{1270,10083,0},{1270,10087,0}, {1268,10085,0},{1267,10087,0},{1265,10087,0},{1265,10092,0},{1265,10093,0}, {1262,10092,0},{1260,10097,0},{1263,10098,0},{1268,10108,0},{1265,10128,0}, {1258,10142,0},{1263,10145,0},{1263,10157,0},{1265,10158,0},{1265,10165,0}, {1270,10168,0},{1270,10175,0},{1265,10187,0},{1260,10188,0},{1260,10190,0}, {1258,10192,0},{1257,10190,0},{1252,10195,0},{1258,10193,0},{1260,10195,0}, {1253,10195,0},{1253,10198,0},{1252,10203,0},{1247,10205,0},{1252,10207,0}, {1252,10203,0},{1255,10202,0},{1255,10200,0},{1257,10207,0},{1255,10203,0}, {1253,10203,0},{1253,10210,0},{1253,10208,0},{1252,10208,0},{1253,10210,0}, {1253,10212,0},{1252,10208,0},{1248,10210,0},{1250,10208,0},{1248,10207,0}, {1243,10212,0},{1240,10212,0},{1240,10215,0},{1232,10223,0},{1230,10227,0}, {1230,10228,0},{1237,10225,0},{1240,10223,0},{1240,10220,0},{1242,10222,0}, {1243,10220,0},{1243,10222,0},{1242,10223,0},{1243,10227,0},{1242,10227,0}, {1238,10227,0},{1242,10230,0},{1237,10227,0},{1232,10230,0},{1233,10235,0}, {1235,10233,0},{1237,10232,0},{1237,10233,0},{1235,10237,0},{1228,10232,0}, {1228,10228,0},{1228,10227,0},{1223,10228,0},{1220,10228,0},{1218,10230,0}, {1218,10232,0},{1220,10233,0},{1218,10237,0},{1217,10240,0},{1215,10247,0}, {1213,10247,0},{1212,10252,0},{1208,10255,0},{1205,10255,0},{1205,10258,0}, {1220,10255,0},{1222,10260,0},{1220,10260,0},{1217,10265,0},{1215,10263,0}, {1203,10277,0},{1195,10278,0},{1190,10277,0},{1175,10290,0},{1163,10292,0}, {642,10013,128},{628,10018,0},{620,10025,0},{608,10030,0},{603,10033,0}, {597,10035,0},{582,10038,0},{570,10037,0},{567,10038,0},{567,10033,0},{557,10035,0}, {552,10038,0},{538,10037,0},{528,10043,0},{525,10042,0},{520,10043,0},{512,10040,0}, {508,10037,0},{498,10040,0},{497,10042,0},{492,10043,0},{492,10045,0},{492,10048,0}, {490,10052,0},{488,10052,0},{488,10050,0},{487,10050,0},{487,10055,0},{485,10057,0}, {482,10057,0},{480,10057,0},{480,10062,0},{477,10062,0},{475,10063,0},{475,10058,0}, {465,10060,0},{467,10067,0},{463,10063,0},{463,10060,0},{460,10058,0},{457,10060,0}, {455,10065,0},{443,10062,0},{440,10058,0},{432,10057,0},{430,10058,0},{427,10060,0}, {425,10062,0},{423,10060,0},{417,10062,0},{417,10068,0},{412,10073,0},{410,10077,0}, {403,10077,0},{402,10078,0},{403,10083,0},{402,10087,0},{398,10077,0},{400,10072,0}, {392,10070,0},{388,10070,0},{383,10077,0},{385,10085,0},{380,10082,0},{378,10082,0}, {377,10087,0},{370,10093,0},{363,10102,0},{360,10105,0},{347,10112,0},{335,10120,0}, {333,10123,0},{327,10130,0},{313,10132,0},{308,10137,0},{300,10137,0},{290,10128,0}, {288,10130,0},{283,10128,0},{280,10140,0},{270,10148,0},{267,10153,0},{262,10168,0}, {260,10170,0},{258,10177,0},{257,10178,0},{252,10180,0},{247,10185,0},{240,10185,0}, {242,10193,0},{240,10198,0},{237,10198,0},{233,10205,0},{227,10210,0},{222,10217,0}, {210,10247,0},{205,10255,0},{202,10255,0},{193,10265,0},{185,10270,0},{185,10283,0}, {175,10293,0},{173,10302,0},{162,10320,0},{153,10337,0},{148,10340,0},{132,10345,0}, {127,10352,0},{133,10355,0},{138,10355,0},{135,10358,0},{138,10363,0},{145,10368,0}, {145,10377,0},{148,10382,0},{143,10392,0},{142,10397,0},{143,10400,0},{147,10402,0}, {150,10400,0},{153,10402,0},{160,10397,0},{163,10395,0},{165,10397,0},{157,10403,0}, {150,10405,0},{153,10412,0},{155,10415,0},{152,10413,0},{150,10408,0},{147,10405,0}, {142,10410,0},{138,10410,0},{137,10412,0},{133,10420,0},{137,10425,0},{137,10428,0}, {142,10428,0},{145,10430,0},{155,10427,0},{163,10425,0},{180,10418,0},{185,10417,0}, {183,10415,0},{185,10413,0},{198,10412,0},{202,10407,0},{213,10402,0},{220,10397,0}, {225,10398,0},{233,10395,0},{235,10392,0},{247,10383,0},{252,10383,0},{258,10382,0}, {262,10377,0},{265,10377,0},{263,10372,0},{265,10370,0},{267,10367,0},{267,10363,0}, {268,10362,0},{280,10352,0},{293,10343,0},{305,10343,0},{318,10345,0},{340,10343,0}, {350,10348,0},{350,10345,0},{353,10347,0},{363,10337,0},{375,10333,0},{380,10335,0}, {380,10338,0},{390,10338,0},{395,10340,0},{395,10343,0},{405,10340,0},{410,10340,0}, {415,10342,0},{417,10345,0},{422,10345,0},{423,10347,0},{432,10350,0},{447,10345,0}, {455,10347,0},{473,10343,0},{480,10345,0},{508,10328,0},{523,10322,0},{538,10312,0}, {547,10305,0},{553,10297,0},{558,10285,0},{572,10267,0},{580,10262,0},{588,10250,0}, {608,10242,0},{618,10233,0},{623,10218,0},{622,10217,0},{620,10220,0},{620,10217,0}, {623,10210,0},{1035,9875,128},{1033,9875,0},{1017,9870,0},{997,9860,0}, {995,9860,0},{997,9863,0},{995,9863,0},{995,9858,0},{993,9858,0},{992,9857,0}, {990,9858,0},{988,9857,0},{987,9857,0},{988,9855,0},{987,9853,0},{985,9852,0}, {980,9855,0},{983,9857,0},{983,9858,0},{978,9855,0},{978,9852,0},{973,9850,0}, {975,9852,0},{973,9857,0},{970,9853,0},{972,9850,0},{968,9852,0},{967,9850,0}, {965,9852,0},{963,9850,0},{963,9847,0},{962,9847,0},{957,9848,0},{957,9853,0}, {953,9848,0},{955,9845,0},{942,9842,0},{940,9840,0},{932,9838,0},{925,9835,0}, {922,9837,0},{920,9835,0},{920,9833,0},{920,9832,0},{913,9835,0},{908,9838,0}, {907,9837,0},{905,9833,0},{902,9832,0},{902,9833,0},{903,9838,0},{900,9835,0}, {897,9837,0},{897,9832,0},{892,9830,0},{890,9830,0},{885,9827,0},{877,9825,0}, {873,9822,0},{867,9823,0},{857,9822,0},{853,9825,0},{852,9825,0},{855,9822,0}, {858,9820,0},{857,9820,0},{830,9827,0},{822,9828,0},{820,9832,0},{818,9833,0}, {818,9835,0},{815,9837,0},{813,9840,0},{817,9840,0},{815,9842,0},{815,9843,0}, {818,9845,0},{822,9847,0},{828,9845,0},{832,9842,0},{833,9847,0},{832,9848,0}, {833,9850,0},{833,9853,0},{835,9853,0},{837,9860,0},{840,9860,0},{838,9862,0}, {838,9865,0},{835,9863,0},{828,9862,0},{828,9865,0},{830,9868,0},{828,9870,0}, {822,9870,0},{825,9873,0},{822,9873,0},{813,9873,0},{813,9875,0},{808,9875,0}, {802,9877,0},{805,9880,0},{800,9883,0},{802,9888,0},{805,9892,0},{802,9895,0}, {793,9897,0},{793,9900,0},{790,9903,0},{792,9907,0},{785,9905,0},{782,9902,0}, {770,9903,0},{768,9910,0},{770,9912,0},{777,9913,0},{773,9913,0},{772,9918,0}, {768,9920,0},{765,9927,0},{762,9925,0},{762,9928,0},{757,9930,0},{753,9932,0}, {750,9930,0},{750,9933,0},{745,9935,0},{737,9933,0},{730,9940,0},{727,9947,0}, {730,9948,0},{737,9948,0},{738,9952,0},{737,9952,0},{730,9953,0},{730,9955,0}, {737,9960,0},{728,9958,0},{727,9955,0},{723,9953,0},{715,9958,0},{713,9958,0}, {715,9962,0},{713,9962,0},{715,9963,0},{717,9967,0},{715,9967,0},{712,9968,0}, {713,9975,0},{703,9968,0},{697,9968,0},{697,9970,0},{693,9972,0},{693,9968,0}, {688,9968,0},{685,9970,0},{683,9978,0},{677,9982,0},{677,9985,0},{672,9988,0}, {672,9992,0},{667,9993,0},{665,9995,0},{663,9997,0},{658,9997,0},{658,9998,0}, {652,10005,0},{653,10010,0},{652,10010,0},{648,10008,0},{647,10012,0},{642,10013,0}, {2115,9220,128},{2105,9227,0},{2095,9228,0},{2078,9237,0},{2070,9237,0}, {2067,9245,0},{2065,9247,0},{2062,9250,0},{2053,9253,0},{2043,9265,0},{2028,9272,0}, {2025,9273,0},{2028,9273,0},{2032,9273,0},{2043,9273,0},{2050,9272,0},{2058,9272,0}, {2070,9263,0},{2058,9272,0},{2048,9275,0},{2048,9277,0},{2047,9277,0},{2045,9277,0}, {2047,9280,0},{2050,9280,0},{2048,9283,0},{2045,9283,0},{2045,9282,0},{2040,9285,0}, {2038,9283,0},{2035,9287,0},{2035,9288,0},{2032,9290,0},{2032,9293,0},{2030,9287,0}, {2027,9280,0},{2022,9277,0},{2012,9287,0},{2012,9290,0},{2020,9292,0},{2030,9300,0}, {2045,9302,0},{2055,9308,0},{2052,9308,0},{2043,9303,0},{2038,9303,0},{2037,9305,0}, {2038,9307,0},{2042,9308,0},{2043,9310,0},{2040,9308,0},{2038,9310,0},{2033,9303,0}, {2030,9303,0},{2022,9298,0},{2017,9298,0},{2013,9300,0},{2017,9303,0},{2022,9312,0}, {2018,9312,0},{2015,9308,0},{2017,9308,0},{2015,9307,0},{2013,9307,0},{2012,9297,0}, {2007,9298,0},{2000,9305,0},{1997,9305,0},{1985,9312,0},{1983,9315,0},{1980,9317,0}, {1985,9313,0},{1995,9310,0},{1998,9310,0},{2000,9313,0},{1983,9322,0},{1982,9323,0}, {1983,9325,0},{1992,9320,0},{2008,9313,0},{2005,9317,0},{2007,9318,0},{2005,9325,0}, {2005,9330,0},{2010,9333,0},{2008,9335,0},{2002,9337,0},{2008,9338,0},{1997,9342,0}, {1995,9345,0},{1998,9347,0},{1997,9350,0},{2000,9352,0},{1998,9353,0},{1997,9352,0}, {1995,9352,0},{1995,9353,0},{1993,9352,0},{1992,9357,0},{1988,9355,0},{1988,9358,0}, {1990,9362,0},{1992,9370,0},{1993,9372,0},{1992,9375,0},{1990,9372,0},{1988,9373,0}, {1987,9365,0},{1982,9363,0},{1978,9360,0},{1972,9360,0},{1972,9362,0},{1975,9363,0}, {1972,9363,0},{1972,9368,0},{1977,9370,0},{1977,9372,0},{1975,9375,0},{1973,9372,0}, {1972,9372,0},{1968,9372,0},{1967,9375,0},{1968,9377,0},{1973,9380,0},{1972,9382,0}, {1970,9382,0},{1968,9380,0},{1965,9380,0},{1965,9375,0},{1965,9373,0},{1963,9373,0}, {1960,9378,0},{1957,9380,0},{1950,9387,0},{1950,9393,0},{1947,9390,0},{1947,9392,0}, {1945,9395,0},{1947,9398,0},{1942,9398,0},{1938,9400,0},{1927,9388,0},{1923,9382,0}, {1925,9373,0},{1927,9373,0},{1927,9372,0},{1928,9372,0},{1930,9367,0},{1933,9362,0}, {1935,9363,0},{1940,9362,0},{1940,9357,0},{1943,9355,0},{1942,9350,0},{1940,9348,0}, {1938,9348,0},{1935,9348,0},{1932,9350,0},{1922,9357,0},{1917,9360,0},{1913,9365,0}, {1907,9367,0},{1902,9368,0},{1902,9372,0},{1897,9373,0},{1893,9383,0},{1885,9393,0}, {1888,9393,0},{1890,9397,0},{1897,9398,0},{1902,9395,0},{1907,9395,0},{1912,9395,0}, {1920,9392,0},{1920,9393,0},{1917,9393,0},{1915,9397,0},{1915,9400,0},{1920,9403,0}, {1932,9403,0},{1938,9407,0},{1938,9408,0},{1930,9405,0},{1925,9405,0},{1923,9407,0}, {1915,9403,0},{1912,9403,0},{1908,9403,0},{1908,9410,0},{1905,9405,0},{1903,9407,0}, {1900,9403,0},{1893,9405,0},{1890,9403,0},{1885,9403,0},{1882,9412,0},{1887,9413,0}, {1885,9415,0},{1882,9415,0},{1878,9418,0},{1873,9422,0},{1875,9425,0},{1873,9427,0}, {1872,9422,0},{1873,9418,0},{1872,9417,0},{1873,9415,0},{1865,9423,0},{1853,9427,0}, {1853,9425,0},{1843,9432,0},{1837,9435,0},{1835,9440,0},{1830,9440,0},{1828,9438,0}, {1830,9433,0},{1825,9433,0},{1825,9440,0},{1822,9443,0},{1818,9443,0},{1817,9445,0}, {1805,9448,0},{1802,9448,0},{1798,9443,0},{1790,9448,0},{1780,9448,0},{1773,9455,0}, {1765,9457,0},{1763,9458,0},{1755,9462,0},{1755,9460,0},{1758,9457,0},{1755,9455,0}, {1750,9457,0},{1740,9457,0},{1733,9457,0},{1730,9460,0},{1732,9455,0},{1728,9453,0}, {1728,9452,0},{1722,9450,0},{1720,9453,0},{1717,9453,0},{1718,9447,0},{1718,9445,0}, {1715,9445,0},{1712,9448,0},{1707,9445,0},{1695,9445,0},{1695,9447,0},{1690,9442,0}, {1688,9438,0},{1680,9440,0},{1672,9437,0},{1663,9437,0},{1660,9433,0},{1658,9435,0}, {1655,9435,0},{1652,9432,0},{1653,9428,0},{1653,9427,0},{1648,9427,0},{1637,9425,0}, {1635,9423,0},{1627,9425,0},{1623,9423,0},{1603,9420,0},{1597,9425,0},{1598,9428,0}, {1598,9433,0},{1605,9437,0},{1607,9443,0},{1612,9445,0},{1618,9452,0},{1630,9452,0}, {1630,9453,0},{1627,9457,0},{1630,9460,0},{1633,9460,0},{1635,9463,0},{1633,9465,0}, {1632,9462,0},{1630,9462,0},{1625,9458,0},{1623,9458,0},{1627,9463,0},{1635,9468,0}, {1653,9467,0},{1650,9468,0},{1652,9473,0},{1648,9470,0},{1638,9472,0},{1635,9473,0}, {1635,9470,0},{1625,9467,0},{1620,9468,0},{1612,9468,0},{1603,9463,0},{1597,9457,0}, {1595,9457,0},{1593,9458,0},{1595,9462,0},{1602,9472,0},{1607,9472,0},{1610,9475,0}, {1613,9477,0},{1615,9480,0},{1613,9477,0},{1610,9477,0},{1607,9473,0},{1600,9473,0}, {1595,9467,0},{1592,9460,0},{1588,9462,0},{1590,9463,0},{1587,9463,0},{1585,9465,0}, {1585,9468,0},{1585,9472,0},{1595,9478,0},{1600,9483,0},{1603,9487,0},{1613,9485,0}, {1618,9487,0},{1620,9490,0},{1622,9497,0},{1625,9498,0},{1620,9497,0},{1618,9490,0}, {1613,9487,0},{1602,9488,0},{1603,9492,0},{1602,9492,0},{1600,9490,0},{1600,9487,0}, {1595,9483,0},{1588,9485,0},{1585,9485,0},{1583,9485,0},{1585,9487,0},{1587,9488,0}, {1583,9490,0},{1582,9488,0},{1580,9485,0},{1578,9485,0},{1575,9497,0},{1578,9498,0}, {1578,9500,0},{1580,9503,0},{1595,9507,0},{1605,9507,0},{1615,9513,0},{1613,9515,0}, {1612,9523,0},{1612,9518,0},{1608,9513,0},{1607,9512,0},{1603,9510,0},{1598,9510,0}, {1603,9513,0},{1590,9512,0},{1582,9512,0},{1578,9515,0},{1578,9518,0},{1578,9522,0}, {1588,9522,0},{1593,9523,0},{1600,9527,0},{1597,9528,0},{1588,9523,0},{1587,9523,0}, {1587,9528,0},{1598,9533,0},{1605,9535,0},{1610,9532,0},{1613,9537,0},{1610,9533,0}, {1605,9537,0},{1597,9537,0},{1593,9535,0},{1590,9532,0},{1587,9532,0},{1583,9528,0}, {1572,9528,0},{1572,9538,0},{1573,9543,0},{1580,9552,0},{1595,9567,0},{1598,9568,0}, {1605,9568,0},{1612,9573,0},{1622,9573,0},{1615,9575,0},{1613,9578,0},{1623,9588,0}, {1620,9588,0},{1622,9592,0},{1625,9595,0},{1622,9593,0},{1622,9597,0},{1632,9608,0}, {1633,9607,0},{1638,9600,0},{1635,9608,0},{1632,9612,0},{1643,9633,0},{1645,9633,0}, {1647,9630,0},{1658,9623,0},{1665,9625,0},{1667,9622,0},{1672,9620,0},{1677,9617,0}, {1677,9620,0},{1682,9627,0},{1682,9628,0},{1680,9628,0},{1677,9623,0},{1675,9622,0}, {1668,9623,0},{1665,9627,0},{1660,9627,0},{1655,9630,0},{1650,9640,0},{1650,9650,0}, {1655,9660,0},{1672,9678,0},{1673,9680,0},{1675,9678,0},{1677,9682,0},{1685,9685,0}, {1687,9685,0},{1690,9680,0},{1690,9685,0},{1693,9683,0},{1692,9688,0},{1703,9692,0}, {1708,9690,0},{1720,9685,0},{1730,9692,0},{1733,9690,0},{1735,9685,0},{1737,9685,0}, {1738,9682,0},{1742,9683,0},{1738,9685,0},{1745,9688,0},{1738,9690,0},{1730,9700,0}, {1727,9702,0},{1725,9707,0},{1718,9708,0},{1718,9710,0},{1715,9710,0},{1708,9712,0}, {1708,9713,0},{1712,9715,0},{1713,9718,0},{1710,9725,0},{1708,9723,0},{1712,9718,0}, {1710,9717,0},{1707,9715,0},{1702,9720,0},{1692,9718,0},{1690,9718,0},{1690,9722,0}, {1682,9722,0},{1687,9723,0},{1683,9723,0},{1682,9725,0},{1677,9725,0},{1675,9727,0}, {1670,9727,0},{1667,9730,0},{1667,9735,0},{1663,9733,0},{1648,9737,0},{1652,9742,0}, {1652,9750,0},{1653,9752,0},{1652,9763,0},{1653,9765,0},{1657,9770,0},{1657,9773,0}, {1655,9768,0},{1648,9763,0},{1635,9762,0},{1627,9765,0},{1612,9762,0},{1607,9757,0}, {1603,9758,0},{1602,9758,0},{1600,9760,0},{1595,9763,0},{1592,9770,0},{1588,9772,0}, {1585,9770,0},{1585,9773,0},{1577,9773,0},{1575,9772,0},{1573,9773,0},{1560,9775,0}, {1553,9777,0},{1550,9775,0},{1542,9778,0},{1538,9775,0},{1535,9775,0},{1535,9773,0}, {1530,9775,0},{1525,9773,0},{1520,9778,0},{1520,9782,0},{1518,9780,0},{1515,9782,0}, {1507,9780,0},{1503,9780,0},{1502,9778,0},{1500,9780,0},{1497,9782,0},{1487,9780,0}, {1472,9785,0},{1472,9788,0},{1473,9790,0},{1480,9790,0},{1475,9793,0},{1480,9795,0}, {1477,9797,0},{1473,9797,0},{1472,9800,0},{1470,9798,0},{1465,9803,0},{1467,9798,0}, {1472,9795,0},{1472,9792,0},{1467,9788,0},{1462,9790,0},{1462,9792,0},{1457,9792,0}, {1452,9795,0},{1443,9797,0},{1447,9800,0},{1437,9798,0},{1430,9800,0},{1420,9807,0}, {1418,9808,0},{1420,9810,0},{1417,9810,0},{1412,9810,0},{1405,9808,0},{1403,9807,0}, {1402,9807,0},{1392,9808,0},{1390,9810,0},{1385,9810,0},{1378,9812,0},{1378,9808,0}, {1377,9808,0},{1372,9810,0},{1373,9812,0},{1370,9810,0},{1368,9812,0},{1368,9817,0}, {1367,9817,0},{1367,9815,0},{1363,9815,0},{1362,9813,0},{1360,9815,0},{1358,9813,0}, {1357,9815,0},{1353,9813,0},{1355,9815,0},{1353,9817,0},{1353,9818,0},{1357,9817,0}, {1362,9817,0},{1367,9820,0},{1375,9817,0},{1387,9820,0},{1393,9818,0},{1397,9820,0}, {1402,9818,0},{1407,9818,0},{1400,9823,0},{1392,9823,0},{1387,9825,0},{1370,9823,0}, {1370,9830,0},{1368,9828,0},{1365,9830,0},{1362,9833,0},{1358,9833,0},{1358,9837,0}, {1355,9837,0},{1355,9838,0},{1347,9843,0},{1345,9842,0},{1340,9845,0},{1338,9845,0}, {1340,9847,0},{1337,9845,0},{1328,9847,0},{1330,9850,0},{1328,9850,0},{1325,9850,0}, {1323,9853,0},{1317,9858,0},{1312,9857,0},{1308,9858,0},{1302,9858,0},{1295,9862,0}, {1292,9858,0},{1287,9863,0},{1280,9865,0},{1278,9865,0},{1277,9860,0},{1275,9863,0}, {1275,9868,0},{1275,9867,0},{1273,9863,0},{1272,9870,0},{1265,9865,0},{1262,9867,0}, {1262,9865,0},{1255,9862,0},{1250,9872,0},{1248,9862,0},{1242,9860,0},{1238,9865,0}, {1238,9867,0},{1233,9870,0},{1230,9867,0},{1228,9857,0},{1225,9853,0},{1222,9855,0}, {1220,9860,0},{1223,9867,0},{1222,9872,0},{1220,9872,0},{1217,9865,0},{1215,9867,0}, {1213,9863,0},{1212,9863,0},{1208,9863,0},{1207,9865,0},{1207,9872,0},{1203,9870,0}, {1202,9872,0},{1198,9872,0},{1197,9872,0},{1195,9868,0},{1192,9865,0},{1190,9857,0}, {1188,9855,0},{1188,9865,0},{1190,9868,0},{1188,9870,0},{1187,9867,0},{1185,9865,0}, {1183,9865,0},{1182,9862,0},{1180,9860,0},{1180,9863,0},{1175,9860,0},{1172,9862,0}, {1168,9867,0},{1170,9870,0},{1173,9872,0},{1177,9877,0},{1178,9877,0},{1182,9882,0}, {1185,9882,0},{1182,9882,0},{1178,9878,0},{1175,9878,0},{1173,9882,0},{1173,9885,0}, {1170,9888,0},{1168,9888,0},{1170,9883,0},{1170,9882,0},{1167,9880,0},{1168,9875,0}, {1162,9873,0},{1157,9873,0},{1157,9872,0},{1152,9872,0},{1152,9875,0},{1145,9877,0}, {1145,9872,0},{1138,9870,0},{1138,9872,0},{1135,9872,0},{1133,9873,0},{1127,9877,0}, {1122,9873,0},{1117,9873,0},{1113,9870,0},{1113,9867,0},{1108,9868,0},{1110,9870,0}, {1108,9870,0},{1105,9873,0},{1102,9870,0},{1100,9868,0},{1098,9872,0},{1092,9872,0}, {1090,9867,0},{1092,9863,0},{1088,9862,0},{1087,9858,0},{1085,9863,0},{1083,9860,0}, {1080,9860,0},{1077,9857,0},{1073,9857,0},{1075,9852,0},{1070,9853,0},{1070,9852,0}, {1073,9850,0},{1072,9845,0},{1062,9847,0},{1055,9850,0},{1045,9850,0},{1035,9853,0}, {1030,9850,0},{1025,9852,0},{1018,9848,0},{1015,9852,0},{1008,9850,0},{1007,9852,0}, {1002,9852,0},{998,9853,0},{998,9855,0},{1010,9862,0},{1022,9868,0},{1035,9875,0}, {2192,8903,128},{2193,8907,0},{2202,8907,0},{2208,8903,0},{2213,8905,0}, {2212,8907,0},{2205,8907,0},{2202,8908,0},{2192,8908,0},{2185,8910,0},{2182,8910,0}, {2178,8915,0},{2182,8918,0},{2172,8922,0},{2165,8920,0},{2163,8923,0},{2167,8930,0}, {2168,8927,0},{2175,8930,0},{2182,8928,0},{2182,8932,0},{2187,8932,0},{2188,8935,0}, {2197,8935,0},{2190,8938,0},{2187,8938,0},{2183,8937,0},{2177,8937,0},{2173,8937,0}, {2172,8940,0},{2172,8942,0},{2177,8947,0},{2178,8947,0},{2185,8945,0},{2188,8948,0}, {2190,8952,0},{2192,8952,0},{2197,8952,0},{2203,8948,0},{2205,8952,0},{2208,8952,0}, {2213,8950,0},{2210,8948,0},{2213,8947,0},{2218,8947,0},{2222,8947,0},{2228,8947,0}, {2227,8950,0},{2218,8948,0},{2208,8953,0},{2202,8952,0},{2198,8953,0},{2198,8955,0}, {2212,8958,0},{2220,8955,0},{2223,8958,0},{2227,8958,0},{2233,8962,0},{2223,8960,0}, {2220,8957,0},{2210,8960,0},{2198,8955,0},{2193,8957,0},{2188,8957,0},{2182,8952,0}, {2172,8955,0},{2170,8958,0},{2170,8960,0},{2172,8960,0},{2175,8958,0},{2177,8960,0}, {2175,8965,0},{2177,8970,0},{2178,8970,0},{2185,8962,0},{2192,8965,0},{2190,8967,0}, {2185,8967,0},{2182,8973,0},{2185,8975,0},{2183,8977,0},{2183,8982,0},{2187,8983,0}, {2188,8988,0},{2192,8988,0},{2197,8985,0},{2203,8985,0},{2207,8980,0},{2208,8987,0}, {2217,8987,0},{2227,8983,0},{2235,8988,0},{2242,8987,0},{2238,8990,0},{2242,8993,0}, {2247,8998,0},{2245,8998,0},{2237,8992,0},{2228,8988,0},{2218,8990,0},{2212,8992,0}, {2203,8992,0},{2200,8995,0},{2205,8998,0},{2200,9000,0},{2200,9005,0},{2207,9008,0}, {2208,9012,0},{2203,9008,0},{2198,9007,0},{2195,9002,0},{2187,9003,0},{2183,9002,0}, {2183,9003,0},{2183,9007,0},{2190,9010,0},{2190,9012,0},{2185,9010,0},{2183,9008,0}, {2180,9010,0},{2178,9015,0},{2180,9020,0},{2183,9025,0},{2185,9025,0},{2187,9023,0}, {2192,9028,0},{2200,9032,0},{2208,9037,0},{2207,9043,0},{2208,9045,0},{2218,9050,0}, {2222,9057,0},{2223,9057,0},{2227,9060,0},{2237,9062,0},{2245,9062,0},{2247,9058,0}, {2255,9057,0},{2262,9050,0},{2272,9048,0},{2275,9045,0},{2278,9047,0},{2280,9045,0}, {2278,9042,0},{2283,9038,0},{2285,9040,0},{2282,9045,0},{2282,9055,0},{2283,9060,0}, {2288,9067,0},{2290,9067,0},{2290,9065,0},{2293,9062,0},{2295,9055,0},{2297,9053,0}, {2302,9038,0},{2303,9043,0},{2310,9045,0},{2310,9052,0},{2312,9053,0},{2313,9053,0}, {2315,9052,0},{2318,9050,0},{2327,9055,0},{2330,9055,0},{2333,9053,0},{2335,9047,0}, {2342,9035,0},{2338,9035,0},{2347,9018,0},{2345,9018,0},{2338,9018,0},{2343,9015,0}, {2353,9013,0},{2358,9010,0},{2360,9005,0},{2358,9000,0},{2357,8997,0},{2358,8995,0}, {2370,8985,0},{2377,8978,0},{2377,8972,0},{2380,8963,0},{2378,8950,0},{2385,8943,0}, {2388,8937,0},{2388,8927,0},{2392,8922,0},{2395,8925,0},{2395,8935,0},{2385,8945,0}, {2382,8962,0},{2382,8968,0},{2383,8972,0},{2390,8972,0},{2393,8968,0},{2397,8968,0}, {2400,8967,0},{2398,8975,0},{2397,8972,0},{2395,8972,0},{2390,8977,0},{2380,8978,0}, {2373,8987,0},{2368,8990,0},{2362,9010,0},{2353,9017,0},{2347,9028,0},{2340,9052,0}, {2343,9055,0},{2347,9057,0},{2353,9057,0},{2358,9052,0},{2357,9047,0},{2360,9050,0}, {2358,9057,0},{2350,9058,0},{2352,9063,0},{2348,9058,0},{2338,9058,0},{2335,9060,0}, {2333,9063,0},{2327,9065,0},{2315,9058,0},{2310,9057,0},{2302,9062,0},{2297,9068,0}, {2290,9073,0},{2288,9077,0},{2288,9080,0},{2290,9080,0},{2293,9077,0},{2288,9083,0}, {2287,9093,0},{2282,9102,0},{2282,9110,0},{2283,9110,0},{2282,9113,0},{2280,9125,0}, {2282,9128,0},{2282,9132,0},{2278,9133,0},{2285,9132,0},{2288,9133,0},{2283,9135,0}, {2277,9138,0},{2277,9142,0},{2285,9145,0},{2288,9147,0},{2290,9145,0},{2292,9148,0}, {2290,9147,0},{2287,9148,0},{2280,9143,0},{2278,9145,0},{2265,9160,0},{2260,9162,0}, {2248,9170,0},{2238,9175,0},{2223,9178,0},{2223,9182,0},{2227,9182,0},{2227,9183,0}, {2222,9183,0},{2218,9182,0},{2212,9183,0},{2212,9185,0},{2193,9192,0},{2185,9192,0}, {2178,9190,0},{2180,9193,0},{2178,9195,0},{2168,9195,0},{2168,9197,0},{2165,9198,0}, {2167,9202,0},{2163,9200,0},{2160,9202,0},{2157,9200,0},{2152,9200,0},{2145,9195,0}, {2130,9203,0},{2117,9203,0},{2102,9218,0},{2095,9220,0},{2075,9232,0},{2075,9233,0}, {2080,9233,0},{2088,9230,0},{2093,9225,0},{2107,9225,0},{2112,9220,0},{2115,9220,0}, {2377,6820,128},{2372,6820,0},{2368,6822,0},{2367,6825,0},{2368,6828,0}, {2367,6828,0},{2365,6823,0},{2367,6820,0},{2363,6817,0},{2362,6815,0},{2360,6813,0}, {2358,6818,0},{2358,6827,0},{2360,6833,0},{2362,6835,0},{2363,6833,0},{2363,6837,0}, {2368,6838,0},{2373,6845,0},{2377,6858,0},{2383,6863,0},{2383,6870,0},{2385,6873,0}, {2387,6877,0},{2388,6880,0},{2387,6882,0},{2382,6872,0},{2382,6867,0},{2375,6863,0}, {2372,6857,0},{2368,6853,0},{2365,6847,0},{2363,6847,0},{2363,6850,0},{2362,6848,0}, {2363,6843,0},{2362,6842,0},{2352,6840,0},{2348,6842,0},{2350,6843,0},{2350,6845,0}, {2355,6843,0},{2352,6848,0},{2348,6845,0},{2345,6843,0},{2343,6843,0},{2343,6847,0}, {2342,6847,0},{2340,6848,0},{2340,6850,0},{2342,6850,0},{2342,6855,0},{2342,6852,0}, {2337,6852,0},{2335,6857,0},{2333,6857,0},{2333,6860,0},{2332,6860,0},{2332,6857,0}, {2327,6853,0},{2325,6857,0},{2325,6860,0},{2327,6862,0},{2323,6862,0},{2323,6860,0}, {2318,6862,0},{2318,6865,0},{2315,6865,0},{2315,6867,0},{2300,6890,0},{2293,6905,0}, {2287,6915,0},{2283,6922,0},{2282,6928,0},{2283,6933,0},{2278,6948,0},{2278,6957,0}, {2275,6958,0},{2275,6968,0},{2275,6970,0},{2277,6975,0},{2280,6975,0},{2283,6980,0}, {2288,6997,0},{2292,7013,0},{2293,7013,0},{2295,7012,0},{2298,7013,0},{2297,7013,0}, {2295,7017,0},{2295,7022,0},{2297,7023,0},{2300,7023,0},{2295,7027,0},{2293,7035,0}, {2293,7038,0},{2302,7042,0},{2305,7040,0},{2308,7040,0},{2313,7048,0},{2310,7050,0}, {2305,7053,0},{2298,7052,0},{2297,7048,0},{2297,7043,0},{2293,7042,0},{2288,7037,0}, {2282,7032,0},{2277,7032,0},{2273,7027,0},{2270,7027,0},{2255,7017,0},{2255,7003,0}, {2255,7002,0},{2253,6995,0},{2252,6993,0},{2250,6992,0},{2247,6988,0},{2247,6983,0}, {2242,6980,0},{2247,6973,0},{2240,6970,0},{2240,6967,0},{2237,6965,0},{2238,6962,0}, {2235,6962,0},{2237,6958,0},{2237,6955,0},{2245,6955,0},{2243,6953,0},{2245,6952,0}, {2243,6950,0},{2238,6953,0},{2233,6948,0},{2232,6940,0},{2233,6935,0},{2228,6932,0}, {2227,6923,0},{2227,6922,0},{2232,6917,0},{2237,6918,0},{2240,6920,0},{2242,6920,0}, {2240,6915,0},{2240,6908,0},{2240,6907,0},{2242,6905,0},{2243,6905,0},{2245,6908,0}, {2248,6908,0},{2248,6907,0},{2245,6900,0},{2240,6898,0},{2233,6895,0},{2230,6895,0}, {2220,6900,0},{2197,6922,0},{2185,6937,0},{2187,6938,0},{2183,6938,0},{2178,6942,0}, {2173,6948,0},{2165,6957,0},{2160,6965,0},{2150,6975,0},{2147,6982,0},{2145,6980,0}, {2132,6990,0},{2125,6997,0},{2118,7002,0},{2107,7015,0},{2092,7033,0},{2090,7040,0}, {2085,7047,0},{2078,7058,0},{2075,7068,0},{2072,7073,0},{2072,7078,0},{2070,7083,0}, {2070,7097,0},{2072,7100,0},{2073,7102,0},{2077,7113,0},{2083,7132,0},{2088,7147,0}, {2093,7148,0},{2098,7157,0},{2095,7155,0},{2102,7170,0},{2103,7178,0},{2107,7182,0}, {2113,7192,0},{2113,7200,0},{2120,7212,0},{2125,7208,0},{2127,7210,0},{2132,7210,0}, {2147,7225,0},{2158,7228,0},{2163,7230,0},{2168,7227,0},{2170,7222,0},{2173,7222,0}, {2177,7218,0},{2178,7217,0},{2177,7212,0},{2178,7207,0},{2177,7202,0},{2180,7202,0}, {2178,7200,0},{2185,7200,0},{2187,7200,0},{2183,7208,0},{2183,7210,0},{2185,7208,0}, {2187,7208,0},{2188,7205,0},{2190,7207,0},{2188,7210,0},{2185,7213,0},{2183,7215,0}, {2185,7217,0},{2188,7217,0},{2192,7215,0},{2193,7215,0},{2192,7212,0},{2193,7205,0}, {2195,7203,0},{2195,7210,0},{2197,7208,0},{2198,7213,0},{2202,7210,0},{2197,7217,0}, {2200,7218,0},{2198,7222,0},{2200,7222,0},{2202,7227,0},{2205,7227,0},{2207,7230,0}, {2215,7233,0},{2223,7230,0},{2223,7223,0},{2228,7223,0},{2225,7222,0},{2225,7218,0}, {2228,7215,0},{2230,7227,0},{2228,7227,0},{2227,7227,0},{2225,7230,0},{2227,7233,0}, {2228,7233,0},{2237,7238,0},{2235,7242,0},{2230,7238,0},{2225,7238,0},{2223,7242,0}, {2227,7245,0},{2225,7247,0},{2223,7245,0},{2223,7247,0},{2223,7250,0},{2228,7258,0}, {2227,7262,0},{2227,7268,0},{2223,7275,0},{2227,7282,0},{2227,7290,0},{2228,7290,0}, {2227,7292,0},{2222,7292,0},{2222,7288,0},{2223,7282,0},{2222,7278,0},{2217,7275,0}, {2218,7272,0},{2218,7268,0},{2222,7263,0},{2220,7258,0},{2213,7253,0},{2198,7250,0}, {2192,7253,0},{2190,7255,0},{2197,7262,0},{2197,7268,0},{2200,7272,0},{2198,7273,0}, {2198,7272,0},{2193,7268,0},{2193,7263,0},{2185,7257,0},{2177,7255,0},{2170,7253,0}, {2167,7253,0},{2168,7262,0},{2167,7268,0},{2168,7275,0},{2167,7278,0},{2168,7285,0}, {2168,7293,0},{2177,7312,0},{2175,7313,0},{2173,7312,0},{2172,7307,0},{2165,7290,0}, {2163,7282,0},{2157,7277,0},{2155,7272,0},{2148,7263,0},{2142,7258,0},{2143,7265,0}, {2147,7272,0},{2147,7275,0},{2145,7275,0},{2145,7270,0},{2142,7265,0},{2138,7257,0}, {2137,7257,0},{2137,7265,0},{2133,7258,0},{2125,7262,0},{2127,7263,0},{2125,7265,0}, {2120,7273,0},{2113,7262,0},{2110,7262,0},{2108,7263,0},{2110,7267,0},{2115,7267,0}, {2117,7272,0},{2115,7273,0},{2112,7270,0},{2107,7270,0},{2108,7273,0},{2112,7273,0}, {2112,7278,0},{2113,7280,0},{2110,7283,0},{2107,7283,0},{2107,7285,0},{2103,7285,0}, {2103,7277,0},{2100,7278,0},{2100,7282,0},{2097,7283,0},{2098,7288,0},{2097,7290,0}, {2095,7288,0},{2093,7283,0},{2090,7287,0},{2088,7285,0},{2085,7285,0},{2083,7283,0}, {2087,7290,0},{2083,7288,0},{2078,7290,0},{2082,7292,0},{2078,7292,0},{2077,7295,0}, {2073,7290,0},{2072,7292,0},{2063,7290,0},{2062,7288,0},{2050,7288,0},{2045,7283,0}, {2037,7282,0},{2035,7278,0},{2030,7275,0},{2022,7273,0},{2022,7275,0},{2010,7272,0}, {2007,7270,0},{1998,7270,0},{1993,7267,0},{1988,7267,0},{1983,7265,0},{1980,7268,0}, {1975,7268,0},{1978,7273,0},{1975,7273,0},{1975,7272,0},{1970,7273,0},{1970,7270,0}, {1972,7268,0},{1962,7272,0},{1960,7270,0},{1952,7273,0},{1952,7275,0},{1953,7273,0}, {1958,7273,0},{1957,7277,0},{1952,7280,0},{1953,7283,0},{1953,7288,0},{1947,7273,0}, {1937,7275,0},{1933,7280,0},{1933,7283,0},{1933,7288,0},{1930,7292,0},{1932,7297,0}, {1928,7300,0},{1925,7303,0},{1923,7302,0},{1922,7305,0},{1920,7303,0},{1922,7302,0}, {1928,7297,0},{1928,7290,0},{1932,7285,0},{1930,7280,0},{1932,7278,0},{1922,7277,0}, {1920,7278,0},{1925,7282,0},{1925,7283,0},{1917,7278,0},{1915,7278,0},{1917,7282,0}, {1907,7282,0},{1905,7283,0},{1903,7280,0},{1900,7280,0},{1895,7277,0},{1895,7280,0}, {1895,7282,0},{1890,7280,0},{1890,7282,0},{1895,7283,0},{1902,7288,0},{1898,7288,0}, {1902,7292,0},{1905,7295,0},{1907,7293,0},{1912,7293,0},{1917,7297,0},{1908,7297,0}, {1907,7300,0},{1900,7298,0},{1902,7305,0},{1900,7305,0},{1897,7295,0},{1895,7298,0}, {1893,7297,0},{1895,7293,0},{1892,7293,0},{1890,7293,0},{1892,7290,0},{1888,7290,0}, {1885,7292,0},{1887,7298,0},{1885,7297,0},{1883,7298,0},{1882,7302,0},{1880,7300,0}, {1873,7298,0},{1875,7297,0},{1878,7297,0},{1882,7293,0},{1878,7290,0},{1880,7288,0}, {1880,7285,0},{1867,7285,0},{1863,7288,0},{1855,7292,0},{1855,7297,0},{1848,7300,0}, {1847,7302,0},{1845,7300,0},{1847,7298,0},{1852,7297,0},{1853,7293,0},{1852,7290,0}, {1847,7288,0},{1842,7290,0},{1838,7292,0},{1835,7292,0},{1833,7295,0},{1833,7297,0}, {1830,7297,0},{1828,7298,0},{1827,7303,0},{1828,7305,0},{1827,7307,0},{1822,7308,0}, {1818,7307,0},{1818,7305,0},{1822,7305,0},{1825,7300,0},{1823,7297,0},{1827,7297,0}, {1828,7293,0},{1823,7292,0},{1822,7295,0},{1818,7297,0},{1812,7297,0},{1808,7298,0}, {1807,7298,0},{1803,7300,0},{1805,7305,0},{1805,7303,0},{1802,7300,0},{1798,7302,0}, {1798,7303,0},{1797,7302,0},{1795,7302,0},{1792,7305,0},{1790,7305,0},{1777,7312,0}, {1772,7312,0},{1768,7310,0},{1765,7312,0},{1763,7312,0},{1760,7313,0},{1758,7320,0}, {1757,7317,0},{1757,7313,0},{1753,7313,0},{1747,7318,0},{1743,7318,0},{1740,7317,0}, {1738,7317,0},{1737,7320,0},{1728,7325,0},{1730,7318,0},{1722,7323,0},{1720,7323,0}, {1717,7325,0},{1708,7327,0},{1703,7327,0},{1703,7325,0},{1700,7325,0},{1698,7328,0}, {1690,7327,0},{1690,7328,0},{1687,7327,0},{1682,7328,0},{1680,7332,0},{1675,7328,0}, {1672,7330,0},{1668,7333,0},{1665,7332,0},{1662,7332,0},{1663,7337,0},{1660,7338,0}, {1662,7335,0},{1660,7333,0},{1660,7332,0},{1657,7333,0},{1655,7337,0},{1653,7335,0}, {1652,7338,0},{1652,7333,0},{1655,7332,0},{1655,7330,0},{1652,7330,0},{1642,7335,0}, {1640,7338,0},{1637,7335,0},{1635,7338,0},{1622,7342,0},{1622,7343,0},{1618,7343,0}, {1612,7345,0},{1617,7345,0},{1618,7348,0},{1615,7347,0},{1608,7347,0},{1607,7345,0}, {1602,7348,0},{1602,7352,0},{1600,7348,0},{1598,7348,0},{1588,7360,0},{1578,7365,0}, {1573,7365,0},{1572,7367,0},{1572,7370,0},{1570,7368,0},{1562,7372,0},{1565,7378,0}, {1565,7383,0},{1565,7378,0},{1560,7373,0},{1550,7377,0},{1550,7380,0},{1553,7387,0}, {1550,7387,0},{1550,7382,0},{1545,7378,0},{1542,7392,0},{1540,7395,0},{1537,7397,0}, {1540,7392,0},{1540,7378,0},{1537,7382,0},{1537,7388,0},{1530,7390,0},{1527,7390,0}, {1515,7395,0},{1515,7397,0},{1512,7392,0},{1508,7392,0},{1507,7395,0},{1502,7400,0}, {1500,7402,0},{1497,7403,0},{1492,7403,0},{1490,7408,0},{1485,7412,0},{1485,7413,0}, {1490,7422,0},{1488,7420,0},{1487,7423,0},{1487,7418,0},{1483,7417,0},{1483,7415,0}, {1483,7412,0},{1480,7412,0},{1480,7408,0},{1477,7413,0},{1475,7415,0},{1475,7417,0}, {1472,7420,0},{1473,7422,0},{1472,7425,0},{1468,7427,0},{1462,7427,0},{1460,7428,0}, {1462,7432,0},{1460,7433,0},{1458,7428,0},{1452,7430,0},{1452,7433,0},{1455,7433,0}, {1457,7435,0},{1455,7435,0},{1453,7438,0},{1453,7437,0},{1452,7438,0},{1450,7440,0}, {1448,7442,0},{1447,7440,0},{1445,7440,0},{1447,7438,0},{1448,7438,0},{1453,7437,0}, {1452,7435,0},{1442,7438,0},{1442,7440,0},{1430,7442,0},{1425,7452,0},{1425,7443,0}, {1418,7447,0},{1405,7450,0},{1402,7450,0},{1398,7452,0},{1393,7457,0},{1383,7462,0}, {1368,7463,0},{1367,7465,0},{1370,7468,0},{1370,7470,0},{1368,7468,0},{1365,7470,0}, {1365,7473,0},{1363,7470,0},{1365,7468,0},{1362,7467,0},{1363,7467,0},{1352,7468,0}, {1347,7470,0},{1347,7472,0},{1343,7470,0},{1342,7472,0},{1342,7470,0},{1342,7468,0}, {1347,7468,0},{1338,7468,0},{1335,7472,0},{1322,7473,0},{1310,7477,0},{1308,7478,0}, {1302,7477,0},{1287,7482,0},{1285,7485,0},{1287,7492,0},{1287,7493,0},{1285,7488,0}, {1282,7487,0},{1283,7482,0},{1278,7485,0},{1275,7485,0},{1252,7497,0},{1233,7507,0}, {1222,7510,0},{1225,7513,0},{1220,7513,0},{1210,7518,0},{1200,7520,0},{1202,7522,0}, {1200,7523,0},{1197,7528,0},{1198,7527,0},{1202,7527,0},{1203,7530,0},{1202,7532,0}, {1200,7533,0},{1200,7527,0},{1198,7528,0},{1195,7532,0},{1195,7535,0},{1197,7540,0}, {1193,7538,0},{1192,7540,0},{1193,7530,0},{1192,7532,0},{1190,7532,0},{1185,7535,0}, {1185,7538,0},{1170,7553,0},{1147,7562,0},{1145,7568,0},{1137,7572,0},{1137,7573,0}, {1133,7573,0},{1108,7583,0},{1093,7588,0},{1080,7590,0},{1080,7593,0},{1077,7592,0}, {1075,7592,0},{1055,7602,0},{1050,7605,0},{1042,7608,0},{1037,7612,0},{1018,7617,0}, {1020,7620,0},{1027,7620,0},{1023,7622,0},{1023,7623,0},{1020,7623,0},{1017,7618,0}, {1008,7618,0},{998,7623,0},{1007,7623,0},{1012,7620,0},{1013,7622,0},{1012,7622,0}, {1010,7623,0},{1012,7623,0},{1008,7625,0},{1007,7625,0},{1003,7627,0},{998,7627,0}, {997,7628,0},{995,7630,0},{997,7632,0},{992,7637,0},{982,7640,0},{978,7638,0}, {973,7640,0},{970,7638,0},{970,7640,0},{968,7642,0},{967,7642,0},{970,7637,0}, {982,7637,0},{987,7633,0},{985,7632,0},{982,7633,0},{973,7635,0},{970,7633,0}, {987,7632,0},{987,7630,0},{983,7628,0},{987,7628,0},{988,7628,0},{987,7627,0}, {988,7627,0},{992,7627,0},{992,7630,0},{997,7625,0},{995,7623,0},{975,7628,0}, {968,7628,0},{948,7632,0},{928,7638,0},{915,7645,0},{925,7642,0},{925,7643,0}, {915,7647,0},{917,7647,0},{917,7648,0},{912,7648,0},{913,7647,0},{912,7645,0}, {900,7652,0},{893,7653,0},{900,7657,0},{895,7657,0},{900,7658,0},{900,7665,0}, {900,7667,0},{898,7663,0},{897,7667,0},{897,7660,0},{892,7657,0},{892,7662,0}, {890,7658,0},{893,7655,0},{892,7653,0},{890,7655,0},{880,7667,0},{840,7697,0}, {818,7723,0},{815,7728,0},{812,7730,0},{807,7753,0},{808,7757,0},{812,7757,0}, {813,7758,0},{818,7778,0},{822,7780,0},{825,7785,0},{833,7798,0},{837,7807,0}, {840,7807,0},{848,7813,0},{862,7813,0},{865,7812,0},{865,7813,0},{873,7817,0}, {875,7820,0},{877,7822,0},{878,7820,0},{877,7820,0},{877,7817,0},{887,7817,0}, {890,7820,0},{897,7823,0},{910,7842,0},{915,7865,0},{918,7867,0},{918,7873,0}, {923,7882,0},{925,7888,0},{925,7892,0},{927,7897,0},{925,7912,0},{927,7917,0}, {925,7923,0},{925,7928,0},{923,7933,0},{917,7940,0},{915,7945,0},{918,7943,0}, {925,7933,0},{932,7935,0},{932,7930,0},{928,7927,0},{928,7922,0},{928,7910,0}, {932,7903,0},{940,7895,0},{948,7890,0},{950,7893,0},{960,7895,0},{963,7897,0}, {967,7898,0},{973,7903,0},{983,7912,0},{992,7917,0},{1002,7925,0},{1003,7928,0}, {1008,7923,0},{1018,7923,0},{1018,7927,0},{1022,7927,0},{1028,7932,0},{1028,7937,0}, {1032,7940,0},{1032,7952,0},{1032,7953,0},{1033,7953,0},{1033,7957,0},{1033,7960,0}, {1032,7960,0},{1032,7955,0},{1030,7955,0},{1027,7973,0},{1027,7977,0},{1030,7975,0}, {1028,7972,0},{1030,7968,0},{1030,7962,0},{1032,7963,0},{1030,7970,0},{1032,7973,0}, {1028,7978,0},{1027,7978,0},{1028,7985,0},{1038,7987,0},{1082,7983,0},{1117,7985,0}, {1123,7983,0},{1135,7983,0},{1137,7977,0},{1135,7975,0},{1130,7970,0},{1130,7967,0}, {1138,7977,0},{1137,7982,0},{1143,7982,0},{1145,7978,0},{1143,7980,0},{1143,7978,0}, {1155,7975,0},{1177,7978,0},{1180,7980,0},{1183,7980,0},{1197,7985,0},{1203,7987,0}, {1223,8000,0},{1220,7995,0},{1222,7995,0},{1223,7998,0},{1228,8003,0},{1232,8005,0}, {1235,8010,0},{1248,8017,0},{1278,8027,0},{1295,8027,0},{1307,8028,0},{1310,8032,0}, {1313,8030,0},{1320,8033,0},{1322,8033,0},{1322,8032,0},{1325,8032,0},{1325,8033,0}, {1333,8035,0},{1345,8033,0},{1338,8033,0},{1342,8032,0},{1343,8027,0},{1347,8027,0}, {1348,8023,0},{1348,8017,0},{1350,8012,0},{1362,8005,0},{1362,8007,0},{1365,8007,0}, {1365,8008,0},{1368,8010,0},{1367,8012,0},{1362,8012,0},{1362,8013,0},{1365,8015,0}, {1373,8015,0},{1367,8018,0},{1365,8018,0},{1362,8022,0},{1352,8028,0},{1345,8030,0}, {1343,8032,0},{1345,8032,0},{1368,8023,0},{1373,8023,0},{1377,8025,0},{1382,8025,0}, {1402,8015,0},{1415,8013,0},{1423,8013,0},{1420,8008,0},{1420,8003,0},{1425,8008,0}, {1427,8015,0},{1435,8018,0},{1448,8018,0},{1457,8020,0},{1457,8015,0},{1458,8018,0}, {1460,8018,0},{1467,8015,0},{1470,8010,0},{1478,8010,0},{1483,8008,0},{1508,8005,0}, {1518,8007,0},{1522,8008,0},{1532,8008,0},{1540,8013,0},{1548,8020,0},{1550,8020,0}, {1570,8028,0},{1577,8037,0},{1585,8052,0},{1588,8055,0},{1587,8057,0},{1588,8060,0}, {1588,8068,0},{1588,8065,0},{1590,8067,0},{1588,8078,0},{1583,8080,0},{1573,8080,0}, {1572,8082,0},{1583,8085,0},{1592,8090,0},{1602,8088,0},{1600,8088,0},{1602,8088,0}, {1603,8090,0},{1593,8092,0},{1585,8090,0},{1578,8102,0},{1585,8100,0},{1597,8113,0}, {1597,8115,0},{1605,8115,0},{1618,8120,0},{1628,8127,0},{1632,8125,0},{1637,8132,0}, {1637,8135,0},{1637,8138,0},{1638,8142,0},{1637,8143,0},{1633,8142,0},{1635,8147,0}, {1635,8155,0},{1637,8153,0},{1637,8157,0},{1635,8157,0},{1633,8165,0},{1630,8170,0}, {1637,8183,0},{1638,8193,0},{1640,8195,0},{1642,8200,0},{1645,8203,0},{1645,8207,0}, {1657,8230,0},{1662,8228,0},{1660,8230,0},{1662,8232,0},{1680,8237,0},{1687,8237,0}, {1695,8235,0},{1693,8237,0},{1685,8237,0},{1682,8237,0},{1685,8235,0},{1687,8228,0}, {1688,8225,0},{1692,8225,0},{1693,8227,0},{1705,8232,0},{1720,8248,0},{1725,8253,0}, {1737,8277,0},{1740,8285,0},{1742,8288,0},{1742,8290,0},{1745,8298,0},{1750,8302,0}, {1755,8317,0},{1760,8323,0},{1763,8322,0},{1763,8325,0},{1767,8330,0},{1770,8325,0}, {1772,8323,0},{1772,8328,0},{1768,8330,0},{1772,8335,0},{1788,8345,0},{1792,8345,0}, {1790,8347,0},{1793,8352,0},{1802,8358,0},{1815,8378,0},{1820,8390,0},{1820,8393,0}, {1822,8393,0},{1823,8402,0},{1830,8412,0},{1837,8413,0},{1855,8435,0},{1850,8428,0}, {1850,8423,0},{1852,8425,0},{1852,8427,0},{1853,8428,0},{1865,8443,0},{1868,8445,0}, {1877,8453,0},{1888,8462,0},{1898,8470,0},{1910,8478,0},{1910,8475,0},{1907,8473,0}, {1910,8472,0},{1915,8473,0},{1913,8477,0},{1912,8477,0},{1912,8478,0},{1915,8482,0}, {1922,8487,0},{1933,8502,0},{1937,8507,0},{1942,8510,0},{1947,8517,0},{1958,8533,0}, {1968,8558,0},{1957,8532,0},{1960,8528,0},{1960,8532,0},{1962,8532,0},{1958,8533,0}, {1962,8538,0},{1963,8538,0},{1965,8540,0},{1967,8540,0},{1968,8538,0},{1967,8538,0}, {1967,8535,0},{1963,8530,0},{1965,8525,0},{1963,8523,0},{1960,8525,0},{1958,8522,0}, {1958,8520,0},{1955,8523,0},{1955,8518,0},{1953,8520,0},{1950,8520,0},{1950,8517,0}, {1947,8513,0},{1952,8512,0},{1952,8510,0},{1953,8510,0},{1955,8513,0},{1955,8515,0}, {1960,8513,0},{1968,8520,0},{1972,8520,0},{1977,8525,0},{1978,8532,0},{1983,8535,0}, {1990,8547,0},{1988,8557,0},{1983,8558,0},{1980,8557,0},{1975,8555,0},{1973,8557,0}, {1972,8552,0},{1973,8552,0},{1970,8542,0},{1968,8542,0},{1968,8545,0},{1967,8545,0}, {1968,8553,0},{1973,8562,0},{1972,8563,0},{1972,8562,0},{1977,8573,0},{1983,8602,0}, {1985,8605,0},{1985,8610,0},{1990,8627,0},{1995,8632,0},{1997,8638,0},{1998,8632,0}, {2002,8630,0},{2002,8623,0},{2007,8617,0},{2008,8615,0},{2013,8615,0},{2008,8618,0}, {2005,8623,0},{2007,8628,0},{1998,8637,0},{1998,8642,0},{2000,8642,0},{2000,8640,0}, {2002,8640,0},{2010,8648,0},{2010,8647,0},{2018,8648,0},{2028,8670,0},{2032,8675,0}, {2028,8670,0},{2030,8670,0},{2032,8675,0},{2038,8680,0},{2043,8680,0},{2038,8678,0}, {2040,8677,0},{2037,8672,0},{2038,8672,0},{2045,8673,0},{2048,8675,0},{2070,8705,0}, {2067,8703,0},{2067,8700,0},{2068,8698,0},{2070,8693,0},{2072,8695,0},{2070,8700,0}, {2075,8698,0},{2075,8693,0},{2077,8688,0},{2078,8690,0},{2078,8697,0},{2080,8697,0}, {2095,8690,0},{2098,8688,0},{2115,8683,0},{2120,8683,0},{2127,8688,0},{2138,8697,0}, {2148,8707,0},{2155,8722,0},{2157,8737,0},{2160,8745,0},{2165,8763,0},{2165,8767,0}, {2170,8780,0},{2177,8788,0},{2180,8790,0},{2185,8798,0},{2197,8803,0},{2202,8805,0}, {2202,8808,0},{2208,8817,0},{2212,8817,0},{2217,8815,0},{2220,8802,0},{2222,8798,0}, {2227,8795,0},{2240,8792,0},{2242,8790,0},{2242,8793,0},{2230,8797,0},{2223,8800,0}, {2222,8803,0},{2223,8808,0},{2222,8808,0},{2218,8817,0},{2215,8820,0},{2207,8822,0}, {2198,8815,0},{2195,8815,0},{2192,8817,0},{2187,8815,0},{2180,8820,0},{2172,8820,0}, {2168,8818,0},{2167,8818,0},{2162,8820,0},{2160,8820,0},{2162,8822,0},{2155,8825,0}, {2157,8830,0},{2160,8828,0},{2167,8830,0},{2178,8825,0},{2180,8827,0},{2177,8830,0}, {2160,8832,0},{2162,8835,0},{2167,8835,0},{2170,8832,0},{2172,8833,0},{2168,8835,0}, {2170,8838,0},{2163,8838,0},{2158,8838,0},{2162,8845,0},{2167,8847,0},{2173,8845,0}, {2180,8847,0},{2180,8850,0},{2185,8848,0},{2188,8847,0},{2192,8850,0},{2195,8850,0}, {2192,8852,0},{2187,8850,0},{2182,8853,0},{2178,8853,0},{2175,8850,0},{2167,8853,0}, {2160,8852,0},{2158,8850,0},{2155,8848,0},{2152,8850,0},{2153,8855,0},{2155,8853,0}, {2157,8853,0},{2155,8855,0},{2157,8857,0},{2162,8857,0},{2162,8860,0},{2170,8858,0}, {2170,8862,0},{2175,8863,0},{2178,8862,0},{2177,8857,0},{2182,8855,0},{2193,8860,0}, {2198,8860,0},{2203,8863,0},{2210,8862,0},{2220,8867,0},{2220,8868,0},{2217,8868,0}, {2215,8865,0},{2210,8863,0},{2202,8867,0},{2197,8862,0},{2193,8863,0},{2193,8868,0}, {2202,8873,0},{2208,8868,0},{2212,8873,0},{2213,8877,0},{2207,8872,0},{2203,8875,0}, {2200,8877,0},{2195,8872,0},{2188,8872,0},{2185,8870,0},{2170,8868,0},{2162,8872,0}, {2157,8872,0},{2155,8873,0},{2157,8878,0},{2158,8880,0},{2162,8877,0},{2165,8878,0}, {2167,8880,0},{2168,8880,0},{2165,8882,0},{2163,8880,0},{2162,8882,0},{2163,8885,0}, {2168,8883,0},{2177,8887,0},{2170,8887,0},{2165,8890,0},{2163,8893,0},{2160,8900,0}, {2163,8903,0},{2160,8905,0},{2162,8908,0},{2167,8908,0},{2178,8902,0},{2187,8902,0}, {2192,8893,0},{2195,8890,0},{2198,8892,0},{2198,8893,0},{2193,8895,0},{2190,8900,0}, {2190,8902,0},{2193,8902,0},{2192,8903,0},{2520,6162,128},{2520,6170,0}, {2517,6175,0},{2518,6178,0},{2517,6178,0},{2510,6175,0},{2508,6173,0},{2505,6172,0}, {2503,6177,0},{2505,6180,0},{2503,6185,0},{2507,6185,0},{2507,6187,0},{2510,6187,0}, {2512,6193,0},{2510,6210,0},{2515,6207,0},{2518,6208,0},{2520,6210,0},{2522,6217,0}, {2522,6225,0},{2520,6230,0},{2517,6232,0},{2515,6232,0},{2512,6230,0},{2512,6228,0}, {2510,6228,0},{2510,6238,0},{2512,6238,0},{2513,6233,0},{2517,6235,0},{2520,6242,0}, {2522,6248,0},{2522,6247,0},{2525,6248,0},{2527,6255,0},{2525,6275,0},{2522,6300,0}, {2523,6308,0},{2525,6312,0},{2525,6315,0},{2522,6330,0},{2522,6342,0},{2518,6350,0}, {2522,6352,0},{2525,6348,0},{2528,6347,0},{2528,6350,0},{2532,6352,0},{2537,6357,0}, {2538,6373,0},{2533,6393,0},{2533,6407,0},{2537,6407,0},{2542,6405,0},{2538,6402,0}, {2542,6400,0},{2542,6398,0},{2545,6403,0},{2543,6407,0},{2545,6412,0},{2545,6415,0}, {2542,6413,0},{2543,6410,0},{2542,6408,0},{2537,6412,0},{2535,6410,0},{2533,6410,0}, {2532,6425,0},{2530,6427,0},{2527,6438,0},{2523,6443,0},{2523,6448,0},{2527,6450,0}, {2527,6455,0},{2523,6462,0},{2522,6463,0},{2517,6460,0},{2517,6467,0},{2518,6472,0}, {2522,6467,0},{2528,6468,0},{2532,6475,0},{2532,6507,0},{2528,6513,0},{2530,6517,0}, {2532,6520,0},{2535,6520,0},{2537,6525,0},{2537,6528,0},{2538,6532,0},{2538,6535,0}, {2538,6540,0},{2537,6538,0},{2538,6545,0},{2535,6567,0},{2537,6570,0},{2538,6578,0}, {2542,6585,0},{2542,6600,0},{2545,6608,0},{2545,6617,0},{2547,6627,0},{2545,6640,0}, {2540,6650,0},{2540,6652,0},{2542,6650,0},{2545,6647,0},{2548,6648,0},{2548,6642,0}, {2552,6640,0},{2553,6635,0},{2555,6633,0},{2555,6627,0},{2548,6622,0},{2547,6610,0}, {2550,6613,0},{2557,6617,0},{2560,6620,0},{2562,6627,0},{2560,6632,0},{2562,6637,0}, {2558,6638,0},{2560,6643,0},{2552,6650,0},{2552,6653,0},{2545,6655,0},{2542,6658,0}, {2538,6658,0},{2538,6655,0},{2537,6655,0},{2525,6670,0},{2520,6673,0},{2515,6673,0}, {2512,6670,0},{2495,6668,0},{2493,6667,0},{2490,6668,0},{2488,6670,0},{2488,6667,0}, {2483,6665,0},{2485,6675,0},{2483,6682,0},{2485,6685,0},{2480,6695,0},{2483,6695,0}, {2483,6697,0},{2480,6702,0},{2477,6707,0},{2477,6708,0},{2480,6708,0},{2478,6712,0}, {2480,6715,0},{2475,6718,0},{2477,6723,0},{2475,6725,0},{2473,6725,0},{2472,6720,0}, {2465,6715,0},{2462,6715,0},{2460,6722,0},{2458,6725,0},{2458,6718,0},{2453,6720,0}, {2453,6723,0},{2450,6722,0},{2445,6725,0},{2442,6725,0},{2443,6728,0},{2435,6728,0}, {2435,6737,0},{2433,6730,0},{2428,6728,0},{2425,6730,0},{2422,6730,0},{2413,6733,0}, {2408,6733,0},{2407,6738,0},{2407,6747,0},{2405,6750,0},{2407,6753,0},{2403,6750,0}, {2403,6747,0},{2398,6745,0},{2397,6747,0},{2397,6750,0},{2392,6750,0},{2393,6753,0}, {2390,6752,0},{2390,6748,0},{2388,6748,0},{2387,6755,0},{2388,6753,0},{2388,6752,0}, {2390,6753,0},{2387,6757,0},{2388,6758,0},{2385,6758,0},{2385,6762,0},{2388,6763,0}, {2392,6763,0},{2393,6765,0},{2388,6765,0},{2380,6763,0},{2378,6772,0},{2380,6775,0}, {2383,6772,0},{2382,6780,0},{2382,6783,0},{2388,6785,0},{2392,6785,0},{2390,6787,0}, {2388,6785,0},{2385,6787,0},{2387,6788,0},{2387,6790,0},{2383,6790,0},{2380,6795,0}, {2380,6800,0},{2377,6802,0},{2383,6805,0},{2393,6802,0},{2392,6807,0},{2388,6805,0}, {2382,6810,0},{2380,6807,0},{2377,6808,0},{2372,6805,0},{2370,6810,0},{2373,6810,0}, {2372,6812,0},{2370,6812,0},{2368,6815,0},{2372,6817,0},{2375,6815,0},{2383,6817,0}, {2388,6815,0},{2390,6815,0},{2387,6817,0},{2383,6818,0},{2375,6817,0},{2375,6818,0}, {2377,6820,0},{2997,4853,128},{2995,4860,0},{2997,4865,0},{3000,4867,0}, {3003,4863,0},{3005,4865,0},{3003,4870,0},{3003,4888,0},{3003,4892,0},{3017,4895,0}, {3025,4892,0},{3030,4887,0},{3032,4887,0},{3033,4888,0},{3035,4887,0},{3042,4892,0}, {3042,4903,0},{3043,4903,0},{3047,4902,0},{3047,4895,0},{3048,4895,0},{3052,4898,0}, {3052,4903,0},{3050,4907,0},{3052,4910,0},{3050,4913,0},{3050,4917,0},{3047,4917,0}, {3050,4920,0},{3045,4923,0},{3045,4927,0},{3043,4927,0},{3038,4922,0},{3035,4922,0}, {3040,4907,0},{3038,4900,0},{3040,4895,0},{3038,4892,0},{3035,4900,0},{3030,4900,0}, {3028,4905,0},{3025,4908,0},{3025,4913,0},{3022,4917,0},{3023,4918,0},{3027,4922,0}, {3022,4922,0},{3020,4923,0},{3015,4923,0},{3015,4930,0},{3017,4935,0},{3017,4938,0}, {3017,4942,0},{3015,4948,0},{3005,4950,0},{3000,4957,0},{3020,4993,0},{3022,5000,0}, {3020,5005,0},{3015,5010,0},{3012,5013,0},{3010,5012,0},{3005,5015,0},{3000,5013,0}, {2998,5015,0},{2998,5013,0},{2995,5013,0},{2990,5018,0},{2987,5023,0},{2965,5040,0}, {2962,5047,0},{2947,5060,0},{2950,5062,0},{2947,5063,0},{2940,5067,0},{2932,5067,0}, {2928,5068,0},{2925,5068,0},{2925,5065,0},{2920,5063,0},{2913,5063,0},{2912,5068,0}, {2913,5072,0},{2913,5083,0},{2910,5085,0},{2910,5088,0},{2907,5090,0},{2907,5093,0}, {2902,5093,0},{2897,5090,0},{2895,5090,0},{2900,5083,0},{2897,5080,0},{2893,5080,0}, {2883,5088,0},{2880,5100,0},{2873,5105,0},{2850,5108,0},{2838,5115,0},{2823,5128,0}, {2820,5128,0},{2813,5127,0},{2807,5132,0},{2802,5145,0},{2793,5147,0},{2787,5158,0}, {2785,5158,0},{2783,5172,0},{2785,5180,0},{2783,5188,0},{2783,5202,0},{2768,5222,0}, {2765,5238,0},{2765,5243,0},{2762,5250,0},{2755,5257,0},{2747,5260,0},{2745,5267,0}, {2740,5267,0},{2740,5257,0},{2738,5257,0},{2735,5260,0},{2728,5275,0},{2722,5285,0}, {2720,5290,0},{2717,5293,0},{2713,5298,0},{2710,5303,0},{2708,5313,0},{2700,5333,0}, {2700,5338,0},{2697,5343,0},{2695,5347,0},{2688,5347,0},{2685,5348,0},{2680,5357,0}, {2678,5358,0},{2673,5368,0},{2670,5372,0},{2670,5393,0},{2673,5398,0},{2675,5402,0}, {2670,5413,0},{2670,5423,0},{2672,5428,0},{2670,5433,0},{2660,5440,0},{2658,5443,0}, {2658,5455,0},{2657,5458,0},{2652,5460,0},{2650,5463,0},{2650,5468,0},{2650,5480,0}, {2658,5495,0},{2662,5498,0},{2665,5505,0},{2670,5510,0},{2672,5520,0},{2678,5525,0}, {2678,5535,0},{2677,5537,0},{2675,5540,0},{2677,5548,0},{2682,5557,0},{2690,5558,0}, {2690,5555,0},{2698,5565,0},{2700,5570,0},{2698,5575,0},{2702,5580,0},{2702,5595,0}, {2707,5597,0},{2712,5608,0},{2715,5613,0},{2720,5635,0},{2717,5642,0},{2717,5652,0}, {2715,5655,0},{2715,5670,0},{2715,5673,0},{2713,5672,0},{2712,5677,0},{2713,5682,0}, {2708,5685,0},{2707,5688,0},{2703,5683,0},{2703,5687,0},{2700,5687,0},{2702,5690,0}, {2698,5692,0},{2700,5697,0},{2697,5697,0},{2695,5695,0},{2695,5693,0},{2685,5702,0}, {2667,5708,0},{2657,5710,0},{2645,5707,0},{2640,5708,0},{2635,5713,0},{2627,5713,0}, {2617,5722,0},{2612,5717,0},{2607,5717,0},{2600,5720,0},{2598,5723,0},{2592,5727,0}, {2578,5732,0},{2577,5740,0},{2575,5743,0},{2577,5745,0},{2575,5745,0},{2573,5752,0}, {2575,5775,0},{2570,5778,0},{2563,5778,0},{2568,5787,0},{2570,5795,0},{2568,5798,0}, {2563,5800,0},{2557,5805,0},{2553,5815,0},{2555,5823,0},{2557,5823,0},{2557,5827,0}, {2558,5830,0},{2558,5832,0},{2560,5835,0},{2562,5842,0},{2558,5840,0},{2558,5847,0}, {2560,5855,0},{2558,5860,0},{2557,5870,0},{2555,5872,0},{2557,5882,0},{2553,5885,0}, {2552,5892,0},{2540,5900,0},{2540,5905,0},{2540,5913,0},{2548,5945,0},{2547,5950,0}, {2542,5957,0},{2538,5962,0},{2542,5983,0},{2535,5990,0},{2537,5993,0},{2538,6002,0}, {2538,6008,0},{2533,6012,0},{2532,6018,0},{2537,6020,0},{2538,6030,0},{2535,6030,0}, {2533,6030,0},{2532,6040,0},{2527,6047,0},{2530,6045,0},{2533,6045,0},{2533,6040,0}, {2538,6040,0},{2543,6045,0},{2543,6055,0},{2540,6060,0},{2533,6060,0},{2528,6063,0}, {2528,6062,0},{2527,6062,0},{2517,6117,0},{2517,6120,0},{2512,6123,0},{2508,6140,0}, {2508,6145,0},{2508,6142,0},{2510,6143,0},{2512,6150,0},{2517,6152,0},{2520,6148,0}, {2520,6152,0},{2520,6155,0},{2522,6153,0},{2525,6155,0},{2523,6158,0},{2520,6158,0}, {2520,6162,0},{3002,4795,128},{3010,4793,0},{3000,4797,0},{3005,4810,0}, {3003,4817,0},{3000,4825,0},{2995,4835,0},{2993,4845,0},{2993,4855,0},{2995,4857,0}, {2995,4853,0},{2997,4853,0},{2855,4842,128},{2860,4838,0},{2865,4838,0}, {2863,4835,0},{2865,4835,0},{2867,4838,0},{2868,4837,0},{2867,4838,0},{2873,4838,0}, {2875,4837,0},{2877,4832,0},{2883,4828,0},{2888,4828,0},{2892,4822,0},{2903,4815,0}, {2927,4808,0},{2935,4808,0},{2935,4805,0},{2937,4802,0},{2940,4798,0},{2933,4788,0}, {2933,4783,0},{2935,4780,0},{2940,4783,0},{2938,4770,0},{2938,4768,0},{2940,4770,0}, {2942,4773,0},{2953,4785,0},{2957,4792,0},{2963,4797,0},{2963,4802,0},{2962,4803,0}, {2960,4802,0},{2960,4808,0},{2957,4810,0},{2955,4815,0},{2955,4817,0},{2958,4817,0}, {2973,4808,0},{2973,4805,0},{2980,4800,0},{2987,4798,0},{2993,4798,0},{3002,4795,0}, {2475,5083,128},{2472,5078,0},{2475,5075,0},{2477,5073,0},{2487,5073,0}, {2490,5068,0},{2495,5067,0},{2505,5060,0},{2507,5058,0},{2503,5057,0},{2505,5057,0}, {2512,5053,0},{2518,5055,0},{2523,5052,0},{2530,5052,0},{2542,5048,0},{2545,5045,0}, {2545,5042,0},{2548,5038,0},{2552,5038,0},{2548,5037,0},{2545,5037,0},{2563,5022,0}, {2568,5020,0},{2570,5015,0},{2573,5015,0},{2568,5023,0},{2565,5023,0},{2563,5025,0}, {2563,5027,0},{2567,5025,0},{2573,5022,0},{2577,5017,0},{2585,5012,0},{2592,5010,0}, {2593,5013,0},{2598,5010,0},{2600,5007,0},{2602,5007,0},{2602,5005,0},{2603,5003,0}, {2600,5003,0},{2598,5000,0},{2600,5000,0},{2607,4998,0},{2608,5002,0},{2613,4998,0}, {2620,5002,0},{2618,5007,0},{2613,5007,0},{2610,5010,0},{2603,5013,0},{2617,5017,0}, {2615,5018,0},{2617,5020,0},{2620,5022,0},{2630,5022,0},{2637,5022,0},{2642,5018,0}, {2645,5008,0},{2647,5005,0},{2657,5000,0},{2665,5002,0},{2667,4998,0},{2673,4998,0}, {2675,5000,0},{2673,5002,0},{2668,5003,0},{2668,5012,0},{2663,5015,0},{2665,5017,0}, {2672,5008,0},{2685,4995,0},{2685,4987,0},{2698,4967,0},{2705,4962,0},{2710,4957,0}, {2715,4955,0},{2718,4957,0},{2717,4955,0},{2718,4952,0},{2718,4950,0},{2715,4950,0}, {2713,4952,0},{2715,4947,0},{2713,4943,0},{2717,4943,0},{2713,4942,0},{2715,4937,0}, {2715,4940,0},{2720,4942,0},{2722,4938,0},{2720,4937,0},{2717,4935,0},{2720,4933,0}, {2720,4932,0},{2735,4930,0},{2735,4928,0},{2735,4925,0},{2733,4922,0},{2738,4923,0}, {2742,4927,0},{2742,4923,0},{2740,4920,0},{2742,4917,0},{2743,4912,0},{2747,4917,0}, {2743,4918,0},{2745,4922,0},{2745,4927,0},{2747,4928,0},{2745,4928,0},{2745,4930,0}, {2748,4930,0},{2750,4927,0},{2753,4925,0},{2755,4918,0},{2753,4915,0},{2755,4907,0}, {2753,4907,0},{2755,4905,0},{2757,4907,0},{2762,4897,0},{2760,4892,0},{2757,4892,0}, {2757,4890,0},{2758,4888,0},{2763,4890,0},{2760,4887,0},{2762,4883,0},{2762,4885,0}, {2762,4887,0},{2763,4885,0},{2765,4888,0},{2768,4888,0},{2765,4885,0},{2770,4885,0}, {2768,4882,0},{2773,4880,0},{2772,4880,0},{2772,4877,0},{2783,4882,0},{2782,4883,0}, {2775,4880,0},{2782,4885,0},{2780,4885,0},{2773,4883,0},{2773,4885,0},{2777,4888,0}, {2783,4888,0},{2797,4875,0},{2798,4875,0},{2798,4878,0},{2800,4878,0},{2803,4865,0}, {2807,4865,0},{2813,4860,0},{2818,4860,0},{2820,4862,0},{2828,4855,0},{2833,4852,0}, {2837,4852,0},{2840,4853,0},{2838,4847,0},{2840,4847,0},{2840,4850,0},{2842,4852,0}, {2845,4850,0},{2850,4850,0},{2850,4847,0},{2855,4842,0},{2462,5122,128}, {2463,5122,0},{2465,5127,0},{2467,5128,0},{2465,5128,0},{2463,5135,0},{2460,5133,0}, {2457,5133,0},{2460,5137,0},{2463,5138,0},{2467,5143,0},{2485,5150,0},{2492,5157,0}, {2502,5162,0},{2527,5160,0},{2528,5158,0},{2530,5152,0},{2543,5152,0},{2552,5147,0}, {2557,5150,0},{2562,5148,0},{2562,5153,0},{2563,5155,0},{2568,5153,0},{2568,5150,0}, {2570,5155,0},{2568,5155,0},{2570,5158,0},{2573,5158,0},{2573,5153,0},{2573,5155,0}, {2577,5157,0},{2573,5158,0},{2575,5160,0},{2590,5157,0},{2595,5150,0},{2595,5142,0}, {2597,5140,0},{2602,5138,0},{2603,5135,0},{2610,5133,0},{2615,5125,0},{2613,5118,0}, {2608,5113,0},{2605,5105,0},{2597,5100,0},{2597,5098,0},{2590,5098,0},{2585,5095,0}, {2583,5095,0},{2582,5097,0},{2580,5098,0},{2577,5097,0},{2580,5093,0},{2578,5090,0}, {2575,5092,0},{2572,5088,0},{2567,5088,0},{2563,5092,0},{2563,5098,0},{2560,5095,0}, {2560,5092,0},{2553,5090,0},{2553,5087,0},{2557,5087,0},{2563,5087,0},{2562,5080,0}, {2560,5078,0},{2560,5083,0},{2555,5083,0},{2552,5082,0},{2547,5085,0},{2547,5082,0}, {2552,5078,0},{2548,5075,0},{2548,5077,0},{2543,5075,0},{2510,5077,0},{2505,5080,0}, {2498,5080,0},{2492,5085,0},{2483,5085,0},{2480,5087,0},{2475,5083,0},{2450,5660,128}, {2468,5650,0},{2473,5648,0},{2497,5638,0},{2507,5635,0},{2523,5637,0},{2530,5638,0}, {2533,5638,0},{2537,5635,0},{2553,5637,0},{2560,5635,0},{2562,5628,0},{2567,5627,0}, {2575,5628,0},{2575,5630,0},{2573,5630,0},{2575,5632,0},{2580,5637,0},{2585,5637,0}, {2590,5640,0},{2593,5638,0},{2593,5643,0},{2595,5645,0},{2595,5642,0},{2597,5642,0}, {2598,5640,0},{2600,5642,0},{2602,5642,0},{2602,5638,0},{2605,5638,0},{2605,5643,0}, {2608,5643,0},{2608,5647,0},{2610,5643,0},{2608,5642,0},{2610,5638,0},{2610,5637,0}, {2615,5637,0},{2612,5633,0},{2615,5633,0},{2617,5632,0},{2620,5637,0},{2620,5638,0}, {2617,5638,0},{2618,5640,0},{2617,5640,0},{2615,5642,0},{2613,5647,0},{2615,5647,0}, {2617,5647,0},{2618,5643,0},{2622,5643,0},{2622,5645,0},{2620,5647,0},{2622,5648,0}, {2625,5648,0},{2625,5640,0},{2628,5640,0},{2632,5647,0},{2632,5652,0},{2635,5650,0}, {2635,5648,0},{2633,5648,0},{2633,5643,0},{2635,5643,0},{2635,5640,0},{2637,5640,0}, {2635,5638,0},{2637,5637,0},{2638,5637,0},{2632,5635,0},{2632,5632,0},{2627,5637,0}, {2627,5633,0},{2628,5632,0},{2627,5632,0},{2622,5630,0},{2625,5638,0},{2623,5640,0}, {2622,5640,0},{2622,5635,0},{2620,5630,0},{2623,5627,0},{2620,5622,0},{2622,5622,0}, {2627,5622,0},{2627,5620,0},{2622,5617,0},{2610,5608,0},{2598,5605,0},{2592,5602,0}, {2593,5603,0},{2592,5603,0},{2588,5603,0},{2583,5597,0},{2577,5595,0},{2577,5593,0}, {2582,5595,0},{2572,5587,0},{2568,5577,0},{2562,5568,0},{2558,5565,0},{2553,5563,0}, {2552,5555,0},{2553,5553,0},{2558,5557,0},{2558,5555,0},{2548,5548,0},{2547,5550,0}, {2542,5548,0},{2540,5545,0},{2542,5543,0},{2535,5538,0},{2537,5537,0},{2532,5537,0}, {2532,5533,0},{2527,5530,0},{2525,5533,0},{2520,5533,0},{2518,5530,0},{2520,5530,0}, {2522,5532,0},{2527,5528,0},{2520,5523,0},{2502,5507,0},{2483,5477,0},{2480,5477,0}, {2478,5475,0},{2480,5470,0},{2473,5463,0},{2472,5463,0},{2472,5465,0},{2468,5465,0}, {2467,5467,0},{2465,5463,0},{2462,5463,0},{2462,5460,0},{2460,5463,0},{2452,5458,0}, {2452,5455,0},{2450,5457,0},{2450,5455,0},{2452,5452,0},{2457,5448,0},{2457,5447,0}, {2453,5447,0},{2457,5447,0},{2453,5442,0},{2450,5447,0},{2448,5448,0},{2448,5457,0}, {2447,5458,0},{2445,5457,0},{2447,5452,0},{2443,5453,0},{2443,5448,0},{2443,5450,0}, {2440,5448,0},{2438,5448,0},{2428,5442,0},{2425,5438,0},{2427,5433,0},{2422,5427,0}, {2420,5418,0},{2413,5412,0},{2410,5395,0},{2407,5387,0},{2407,5368,0},{2405,5358,0}, {2408,5353,0},{2410,5347,0},{2412,5343,0},{2410,5342,0},{2410,5333,0},{2408,5330,0}, {2410,5325,0},{2413,5322,0},{2417,5315,0},{2413,5315,0},{2412,5315,0},{2413,5312,0}, {2412,5305,0},{2417,5300,0},{2413,5295,0},{2415,5285,0},{2413,5277,0},{2415,5270,0}, {2413,5268,0},{2420,5263,0},{2420,5262,0},{2420,5258,0},{2415,5258,0},{2413,5253,0}, {2408,5245,0},{2405,5243,0},{2403,5237,0},{2400,5233,0},{2400,5228,0},{2397,5220,0}, {2397,5210,0},{2395,5208,0},{2400,5202,0},{2398,5200,0},{2398,5193,0},{2395,5193,0}, {2398,5190,0},{2400,5182,0},{2405,5178,0},{2412,5177,0},{2427,5178,0},{2428,5175,0}, {2427,5173,0},{2422,5172,0},{2427,5167,0},{2423,5167,0},{2422,5163,0},{2427,5162,0}, {2435,5162,0},{2438,5158,0},{2435,5158,0},{2427,5158,0},{2425,5157,0},{2425,5153,0}, {2430,5150,0},{2432,5143,0},{2432,5138,0},{2428,5135,0},{2430,5128,0},{2433,5128,0}, {2435,5130,0},{2442,5132,0},{2448,5140,0},{2453,5142,0},{2457,5150,0},{2460,5148,0}, {2458,5145,0},{2462,5143,0},{2462,5142,0},{2462,5140,0},{2458,5138,0},{2452,5130,0}, {2457,5130,0},{2460,5130,0},{2460,5128,0},{2462,5127,0},{2462,5122,0},{1663,5310,128}, {1667,5313,0},{1673,5337,0},{1675,5348,0},{1673,5358,0},{1677,5362,0},{1678,5367,0}, {1682,5368,0},{1687,5375,0},{1690,5393,0},{1692,5398,0},{1693,5402,0},{1698,5402,0}, {1702,5410,0},{1702,5437,0},{1703,5442,0},{1702,5447,0},{1703,5450,0},{1702,5472,0}, {1697,5472,0},{1695,5477,0},{1697,5482,0},{1695,5482,0},{1697,5485,0},{1698,5485,0}, {1698,5487,0},{1697,5487,0},{1698,5488,0},{1698,5497,0},{1700,5498,0},{1702,5505,0}, {1702,5507,0},{1708,5515,0},{1715,5520,0},{1720,5522,0},{1723,5527,0},{1728,5525,0}, {1737,5530,0},{1740,5530,0},{1745,5528,0},{1747,5523,0},{1755,5523,0},{1762,5527,0}, {1768,5537,0},{1775,5538,0},{1783,5543,0},{1788,5565,0},{1790,5580,0},{1790,5588,0}, {1793,5603,0},{1793,5615,0},{1795,5618,0},{1793,5635,0},{1797,5635,0},{1802,5643,0}, {1808,5647,0},{1810,5652,0},{1813,5657,0},{1820,5655,0},{1833,5662,0},{1840,5662,0}, {1845,5663,0},{1858,5665,0},{1875,5682,0},{1880,5690,0},{1885,5703,0},{1892,5725,0}, {1895,5752,0},{1893,5772,0},{1897,5775,0},{1897,5780,0},{1903,5783,0},{1908,5780,0}, {1915,5782,0},{1918,5778,0},{1928,5775,0},{1937,5777,0},{1942,5777,0},{1953,5770,0}, {1967,5772,0},{1968,5770,0},{1972,5768,0},{1975,5770,0},{1985,5777,0},{1992,5778,0}, {1998,5782,0},{2002,5782,0},{2013,5785,0},{2018,5782,0},{2022,5783,0},{2027,5787,0}, {2032,5797,0},{2035,5798,0},{2038,5795,0},{2040,5797,0},{2043,5800,0},{2047,5807,0}, {2050,5807,0},{2055,5808,0},{2062,5822,0},{2062,5825,0},{2058,5827,0},{2048,5823,0}, {2042,5823,0},{2043,5822,0},{2047,5822,0},{2043,5820,0},{2040,5822,0},{2038,5827,0}, {2038,5830,0},{2037,5827,0},{2038,5835,0},{2035,5842,0},{2035,5845,0},{2040,5848,0}, {2042,5852,0},{2052,5853,0},{2057,5857,0},{2065,5860,0},{2070,5865,0},{2073,5867,0}, {2077,5873,0},{2078,5872,0},{2075,5870,0},{2077,5867,0},{2080,5867,0},{2082,5868,0}, {2085,5873,0},{2088,5873,0},{2093,5880,0},{2100,5880,0},{2103,5883,0},{2128,5905,0}, {2137,5917,0},{2143,5935,0},{2148,5935,0},{2162,5945,0},{2177,5950,0},{2183,5958,0}, {2187,5958,0},{2192,5962,0},{2193,5965,0},{2207,5968,0},{2210,5972,0},{2222,5980,0}, {2243,5985,0},{2253,5980,0},{2252,5978,0},{2253,5975,0},{2248,5977,0},{2250,5972,0}, {2253,5972,0},{2257,5963,0},{2255,5952,0},{2257,5952,0},{2258,5953,0},{2268,5940,0}, {2275,5935,0},{2280,5930,0},{2295,5923,0},{2305,5908,0},{2308,5907,0},{2315,5902,0}, {2320,5900,0},{2325,5895,0},{2332,5893,0},{2340,5882,0},{2342,5880,0},{2350,5878,0}, {2353,5877,0},{2352,5873,0},{2355,5872,0},{2353,5872,0},{2353,5870,0},{2357,5867,0}, {2357,5865,0},{2360,5862,0},{2363,5862,0},{2365,5858,0},{2365,5852,0},{2365,5850,0}, {2365,5848,0},{2362,5845,0},{2362,5835,0},{2365,5827,0},{2368,5820,0},{2372,5810,0}, {2372,5788,0},{2375,5782,0},{2378,5778,0},{2380,5762,0},{2383,5750,0},{2393,5717,0}, {2400,5708,0},{2413,5690,0},{2423,5683,0},{2432,5680,0},{2450,5660,0},{1268,4353,128}, {1273,4357,0},{1275,4360,0},{1268,4382,0},{1265,4387,0},{1265,4390,0},{1262,4392,0}, {1260,4395,0},{1260,4398,0},{1260,4407,0},{1265,4415,0},{1265,4420,0},{1263,4418,0}, {1263,4413,0},{1262,4417,0},{1263,4423,0},{1263,4428,0},{1268,4440,0},{1267,4443,0}, {1268,4443,0},{1278,4453,0},{1282,4460,0},{1280,4470,0},{1277,4473,0},{1275,4473,0}, {1277,4477,0},{1277,4483,0},{1273,4483,0},{1273,4487,0},{1273,4490,0},{1277,4492,0}, {1278,4488,0},{1277,4487,0},{1280,4488,0},{1278,4490,0},{1283,4495,0},{1283,4500,0}, {1285,4502,0},{1280,4503,0},{1280,4498,0},{1278,4498,0},{1275,4505,0},{1287,4507,0}, {1297,4513,0},{1302,4520,0},{1307,4540,0},{1318,4550,0},{1333,4565,0},{1335,4577,0}, {1338,4582,0},{1340,4605,0},{1340,4612,0},{1343,4623,0},{1340,4635,0},{1342,4642,0}, {1340,4647,0},{1342,4652,0},{1343,4663,0},{1343,4668,0},{1348,4685,0},{1353,4693,0}, {1360,4720,0},{1365,4740,0},{1387,4765,0},{1390,4772,0},{1393,4782,0},{1397,4788,0}, {1402,4793,0},{1405,4800,0},{1402,4815,0},{1400,4818,0},{1397,4818,0},{1398,4823,0}, {1400,4832,0},{1400,4835,0},{1402,4835,0},{1400,4843,0},{1402,4845,0},{1398,4847,0}, {1403,4855,0},{1403,4870,0},{1412,4878,0},{1417,4885,0},{1422,4888,0},{1425,4888,0}, {1425,4893,0},{1430,4895,0},{1432,4900,0},{1437,4900,0},{1443,4902,0},{1450,4908,0}, {1453,4913,0},{1452,4918,0},{1453,4918,0},{1463,4937,0},{1468,4952,0},{1473,4958,0}, {1480,4987,0},{1485,4997,0},{1485,5003,0},{1482,5005,0},{1485,5013,0},{1483,5018,0}, {1487,5022,0},{1492,5030,0},{1492,5035,0},{1500,5045,0},{1505,5055,0},{1508,5080,0}, {1512,5090,0},{1518,5123,0},{1523,5135,0},{1523,5138,0},{1525,5138,0},{1527,5147,0}, {1532,5152,0},{1533,5168,0},{1535,5168,0},{1537,5167,0},{1540,5167,0},{1543,5173,0}, {1547,5183,0},{1545,5187,0},{1547,5187,0},{1552,5190,0},{1553,5200,0},{1558,5208,0}, {1562,5222,0},{1565,5225,0},{1575,5222,0},{1583,5223,0},{1587,5218,0},{1593,5218,0}, {1598,5215,0},{1608,5220,0},{1610,5222,0},{1617,5222,0},{1627,5230,0},{1640,5245,0}, {1648,5260,0},{1650,5273,0},{1653,5278,0},{1655,5287,0},{1662,5298,0},{1665,5312,0}, {1640,4278,128},{1610,4285,0},{1588,4283,0},{1583,4275,0},{1575,4275,0}, {1573,4270,0},{1570,4270,0},{1568,4272,0},{1563,4270,0},{1558,4273,0},{1557,4272,0}, {1553,4275,0},{1547,4278,0},{1543,4277,0},{1535,4282,0},{1527,4282,0},{1523,4280,0}, {1523,4278,0},{1520,4278,0},{1522,4278,0},{1525,4278,0},{1530,4272,0},{1530,4270,0}, {1533,4272,0},{1537,4272,0},{1530,4268,0},{1527,4270,0},{1523,4268,0},{1523,4262,0}, {1518,4263,0},{1518,4267,0},{1520,4268,0},{1522,4270,0},{1518,4278,0},{1513,4287,0}, {1510,4288,0},{1507,4287,0},{1500,4288,0},{1495,4293,0},{1487,4295,0},{1482,4295,0}, {1483,4292,0},{1487,4288,0},{1492,4288,0},{1487,4288,0},{1478,4295,0},{1470,4297,0}, {1467,4300,0},{1462,4298,0},{1455,4303,0},{1443,4302,0},{1445,4300,0},{1452,4298,0}, {1452,4295,0},{1448,4298,0},{1437,4302,0},{1432,4305,0},{1418,4310,0},{1413,4308,0}, {1400,4308,0},{1387,4323,0},{1380,4323,0},{1372,4328,0},{1360,4328,0},{1358,4330,0}, {1352,4325,0},{1330,4325,0},{1330,4323,0},{1327,4323,0},{1320,4325,0},{1312,4332,0}, {1297,4340,0},{1293,4340,0},{1283,4348,0},{1278,4348,0},{1268,4347,0},{1270,4355,0}, {2937,3497,128},{2933,3495,0},{2930,3495,0},{2928,3493,0},{2925,3493,0}, {2923,3492,0},{2907,3488,0},{2903,3485,0},{2900,3487,0},{2890,3483,0},{2888,3485,0}, {2882,3483,0},{2868,3478,0},{2853,3480,0},{2827,3468,0},{2827,3467,0},{2822,3467,0}, {2820,3465,0},{2817,3467,0},{2818,3463,0},{2817,3462,0},{2810,3457,0},{2808,3457,0}, {2810,3460,0},{2808,3460,0},{2802,3462,0},{2803,3465,0},{2807,3465,0},{2807,3467,0}, {2810,3465,0},{2813,3468,0},{2813,3470,0},{2812,3472,0},{2810,3477,0},{2812,3482,0}, {2810,3482,0},{2808,3478,0},{2807,3480,0},{2810,3483,0},{2810,3482,0},{2812,3485,0}, {2812,3487,0},{2810,3483,0},{2807,3485,0},{2808,3488,0},{2808,3493,0},{2810,3495,0}, {2812,3500,0},{2810,3503,0},{2812,3502,0},{2812,3505,0},{2807,3510,0},{2807,3515,0}, {2805,3517,0},{2805,3522,0},{2803,3522,0},{2802,3517,0},{2800,3517,0},{2795,3525,0}, {2792,3527,0},{2785,3533,0},{2780,3535,0},{2778,3538,0},{2767,3545,0},{2763,3550,0}, {2755,3552,0},{2745,3557,0},{2735,3565,0},{2732,3573,0},{2728,3573,0},{2722,3578,0}, {2713,3577,0},{2710,3578,0},{2702,3585,0},{2688,3602,0},{2685,3602,0},{2675,3607,0}, {2662,3620,0},{2653,3627,0},{2632,3637,0},{2623,3643,0},{2615,3645,0},{2608,3653,0}, {2608,3662,0},{2607,3665,0},{2602,3667,0},{2593,3665,0},{2588,3660,0},{2582,3667,0}, {2578,3667,0},{2575,3673,0},{2578,3675,0},{2568,3687,0},{2565,3690,0},{2555,3693,0}, {2548,3700,0},{2543,3700,0},{2535,3703,0},{2530,3708,0},{2528,3712,0},{2522,3718,0}, {2515,3720,0},{2512,3718,0},{2502,3723,0},{2495,3720,0},{2487,3723,0},{2483,3718,0}, {2483,3713,0},{2478,3717,0},{2478,3722,0},{2477,3722,0},{2475,3718,0},{2468,3722,0}, {2467,3728,0},{2457,3738,0},{2455,3738,0},{2450,3742,0},{2447,3743,0},{2445,3745,0}, {2440,3748,0},{2440,3745,0},{2437,3745,0},{2435,3748,0},{2432,3748,0},{2427,3753,0}, {2427,3757,0},{2425,3760,0},{2425,3763,0},{2428,3762,0},{2428,3765,0},{2430,3767,0}, {2425,3773,0},{2427,3775,0},{2417,3783,0},{2417,3790,0},{2420,3788,0},{2422,3793,0}, {2418,3792,0},{2418,3795,0},{2417,3792,0},{2408,3803,0},{2408,3808,0},{2407,3808,0}, {2403,3813,0},{2400,3817,0},{2395,3825,0},{2388,3830,0},{2388,3833,0},{2382,3838,0}, {2378,3845,0},{2373,3845,0},{2362,3852,0},{2353,3855,0},{2352,3858,0},{2353,3858,0}, {2355,3855,0},{2357,3860,0},{2353,3860,0},{2350,3863,0},{2342,3865,0},{2342,3867,0}, {2335,3868,0},{2333,3870,0},{2328,3870,0},{2327,3872,0},{2325,3870,0},{2320,3875,0}, {2320,3877,0},{2317,3877,0},{2318,3878,0},{2315,3880,0},{2313,3878,0},{2308,3880,0}, {2303,3878,0},{2300,3878,0},{2298,3882,0},{2298,3887,0},{2297,3890,0},{2292,3892,0}, {2290,3893,0},{2287,3897,0},{2285,3895,0},{2285,3892,0},{2292,3888,0},{2292,3885,0}, {2275,3897,0},{2278,3897,0},{2283,3893,0},{2277,3902,0},{2272,3898,0},{2257,3908,0}, {2242,3907,0},{2237,3908,0},{2238,3910,0},{2242,3912,0},{2240,3915,0},{2233,3910,0}, {2232,3908,0},{2227,3907,0},{2222,3903,0},{2217,3903,0},{2212,3902,0},{2215,3905,0}, {2208,3903,0},{2205,3902,0},{2195,3900,0},{2185,3902,0},{2183,3903,0},{2183,3902,0}, {2190,3900,0},{2192,3895,0},{2188,3897,0},{2185,3897,0},{2180,3903,0},{2172,3907,0}, {2173,3908,0},{2175,3910,0},{2173,3912,0},{2168,3908,0},{2162,3910,0},{2158,3908,0}, {2152,3912,0},{2153,3915,0},{2152,3915,0},{2150,3917,0},{2148,3915,0},{2147,3917,0}, {2142,3917,0},{2137,3915,0},{2132,3908,0},{2122,3915,0},{2118,3917,0},{2115,3915,0}, {2110,3918,0},{2107,3923,0},{2103,3925,0},{2098,3925,0},{2092,3930,0},{2092,3935,0}, {2088,3937,0},{2090,3933,0},{2087,3935,0},{2082,3940,0},{2085,3942,0},{2082,3945,0}, {2080,3945,0},{2080,3942,0},{2077,3943,0},{2073,3947,0},{2075,3947,0},{2075,3950,0}, {2070,3948,0},{2067,3952,0},{2062,3955,0},{2058,3960,0},{2057,3957,0},{2052,3960,0}, {2043,3967,0},{2043,3968,0},{2035,3977,0},{2025,3993,0},{2027,3995,0},{2028,3990,0}, {2030,3990,0},{2027,3998,0},{2028,4005,0},{2027,4010,0},{2022,4013,0},{2020,4017,0}, {2018,4023,0},{2017,4023,0},{2012,4027,0},{2007,4033,0},{2007,4040,0},{2002,4045,0}, {1997,4053,0},{1995,4053,0},{1990,4053,0},{1988,4058,0},{1983,4060,0},{1982,4062,0}, {1977,4063,0},{1977,4065,0},{1978,4065,0},{1980,4067,0},{1978,4073,0},{1977,4075,0}, {1972,4078,0},{1967,4080,0},{1960,4080,0},{1962,4075,0},{1953,4085,0},{1950,4095,0}, {1947,4095,0},{1942,4093,0},{1935,4097,0},{1933,4095,0},{1932,4100,0},{1923,4105,0}, {1922,4103,0},{1918,4105,0},{1912,4108,0},{1907,4117,0},{1895,4113,0},{1887,4117,0}, {1887,4120,0},{1883,4125,0},{1875,4122,0},{1870,4120,0},{1865,4125,0},{1860,4127,0}, {1857,4130,0},{1858,4132,0},{1857,4137,0},{1853,4137,0},{1850,4140,0},{1847,4143,0}, {1840,4143,0},{1830,4148,0},{1828,4147,0},{1827,4152,0},{1822,4150,0},{1822,4153,0}, {1820,4153,0},{1820,4152,0},{1818,4157,0},{1817,4155,0},{1812,4160,0},{1808,4160,0}, {1803,4165,0},{1802,4165,0},{1800,4168,0},{1798,4167,0},{1795,4168,0},{1788,4175,0}, {1787,4178,0},{1783,4178,0},{1783,4182,0},{1780,4185,0},{1782,4188,0},{1778,4190,0}, {1777,4193,0},{1772,4198,0},{1772,4202,0},{1765,4205,0},{1765,4210,0},{1757,4213,0}, {1758,4215,0},{1757,4217,0},{1745,4227,0},{1745,4230,0},{1740,4232,0},{1733,4232,0}, {1730,4233,0},{1723,4233,0},{1713,4235,0},{1702,4237,0},{1703,4238,0},{1710,4237,0}, {1712,4238,0},{1718,4237,0},{1715,4242,0},{1712,4240,0},{1703,4245,0},{1703,4252,0}, {1700,4255,0},{1692,4255,0},{1687,4253,0},{1683,4257,0},{1682,4265,0},{1675,4268,0}, {1673,4272,0},{1672,4270,0},{1667,4272,0},{1667,4273,0},{1657,4272,0},{1652,4273,0}, {1647,4278,0},{1642,4278,0},{1638,4278,0},{2955,3498,128},{2953,3500,0}, {2945,3497,0},{2937,3497,0},{2955,3497,128},{2955,3498,0},{3310,3510,128}, {3297,3507,0},{3292,3507,0},{3292,3508,0},{3285,3507,0},{3282,3502,0},{3283,3498,0}, {3282,3495,0},{3273,3495,0},{3270,3492,0},{3242,3487,0},{3215,3478,0},{3195,3472,0}, {3175,3460,0},{3158,3448,0},{3148,3440,0},{3133,3422,0},{3465,3597,128}, {3460,3598,0},{3453,3598,0},{3452,3597,0},{3447,3590,0},{3447,3580,0},{3442,3582,0}, {3438,3573,0},{3432,3572,0},{3432,3570,0},{3432,3568,0},{3428,3565,0},{3423,3565,0}, {3420,3563,0},{3415,3562,0},{3410,3565,0},{3403,3562,0},{3400,3563,0},{3398,3560,0}, {3390,3557,0},{3390,3547,0},{3387,3548,0},{3380,3548,0},{3375,3545,0},{3372,3545,0}, {3370,3542,0},{3367,3542,0},{3365,3540,0},{3353,3535,0},{3345,3527,0},{3333,3525,0}, {3328,3520,0},{3328,3518,0},{3325,3522,0},{3322,3520,0},{3310,3510,0},{3465,3597,128}, {3492,3587,0},{3498,3588,0},{3502,3590,0},{3510,3588,0},{3517,3593,0},{3520,3597,0}, {3528,3592,0},{3542,3592,0},{3550,3582,0},{3550,3577,0},{3553,3577,0},{3557,3573,0}, {3558,3575,0},{3558,3573,0},{3560,3577,0},{3563,3578,0},{3565,3577,0},{3568,3580,0}, {3573,3585,0},{3585,3580,0},{3585,3585,0},{3593,3592,0},{3600,3598,0},{3610,3595,0}, {3625,3583,0},{3628,3578,0},{3632,3578,0},{3635,3582,0},{3637,3587,0},{3645,3592,0}, {3648,3600,0},{3653,3603,0},{3653,3608,0},{3658,3615,0},{3660,3618,0},{3665,3622,0}, {3670,3620,0},{3677,3620,0},{3678,3620,0},{3687,3612,0},{3692,3607,0},{3693,3602,0}, {3688,3595,0},{3678,3582,0},{3675,3565,0},{3672,3562,0},{3673,3562,0},{3672,3558,0}, {3668,3558,0},{3670,3560,0},{3668,3562,0},{3672,3562,0},{3670,3563,0},{3673,3563,0}, {3672,3567,0},{3672,3572,0},{3670,3565,0},{3665,3560,0},{3665,3562,0},{3670,3570,0}, {3667,3565,0},{3660,3562,0},{3658,3557,0},{3662,3550,0},{3660,3548,0},{3658,3553,0}, {3658,3543,0},{3653,3533,0},{3657,3530,0},{3672,3498,0},{3672,3490,0},{3673,3490,0}, {3677,3488,0},{3680,3483,0},{3682,3473,0},{3680,3467,0},{3678,3463,0},{3677,3457,0}, {3665,3442,0},{3663,3435,0},{3657,3427,0},{3647,3417,0},{3645,3413,0},{3640,3408,0}, {3632,3408,0},{3630,3400,0},{3628,3398,0},{3628,3400,0},{3622,3397,0},{3622,3395,0}, {3623,3395,0},{3628,3393,0},{3632,3388,0},{3627,3382,0},{3625,3383,0},{3623,3380,0}, {3618,3370,0},{3613,3368,0},{3618,3365,0},{3618,3360,0},{3613,3357,0},{3612,3353,0}, {3613,3353,0},{3615,3345,0},{3613,3340,0},{3615,3335,0},{3612,3328,0},{3613,3313,0}, {3607,3308,0},{3608,3305,0},{3610,3293,0},{3607,3287,0},{3602,3280,0},{3603,3267,0}, {3610,3255,0},{3610,3250,0},{3617,3237,0},{3622,3233,0},{3625,3228,0},{3628,3228,0}, {3635,3220,0},{3643,3215,0},{3652,3207,0},{3655,3202,0},{3655,3193,0},{3658,3185,0}, {3660,3178,0},{3663,3173,0},{3665,3167,0},{3672,3153,0},{3677,3138,0},{3678,3138,0}, {3680,3135,0},{3685,3105,0},{3685,3075,0},{3688,3068,0},{3685,3062,0},{3678,3057,0}, {3673,3057,0},{3668,3057,0},{3662,3055,0},{3660,3058,0},{3657,3058,0},{3652,3057,0}, {3645,3050,0},{3643,3050,0},{3643,3048,0},{3640,3047,0},{3633,3052,0},{3630,3047,0}, {3628,3047,0},{3628,3048,0},{3627,3048,0},{3625,3045,0},{3620,3040,0},{3623,3038,0}, {3627,3040,0},{3627,3037,0},{3630,3025,0},{3628,3015,0},{3625,3015,0},{3627,3013,0}, {3625,3013,0},{3623,3010,0},{3627,3005,0},{3625,3003,0},{3625,3005,0},{3620,2998,0}, {3622,2992,0},{3618,2988,0},{3617,2980,0},{3615,2982,0},{3613,2978,0},{3613,2977,0}, {3615,2978,0},{3617,2972,0},{3612,2968,0},{3615,2967,0},{3617,2963,0},{3617,2962,0}, {3617,2963,0},{3618,2963,0},{3618,2958,0},{3620,2962,0},{3620,2950,0},{3623,2945,0}, {3623,2942,0},{3625,2942,0},{3627,2940,0},{3627,2937,0},{3623,2935,0},{3632,2923,0}, {3633,2917,0},{3635,2915,0},{3637,2913,0},{3638,2910,0},{3642,2913,0},{3645,2912,0}, {3648,2910,0},{3648,2913,0},{3653,2913,0},{3657,2908,0},{3655,2905,0},{3653,2905,0}, {3655,2902,0},{3655,2905,0},{3658,2902,0},{3662,2903,0},{3662,2908,0},{3665,2908,0}, {3663,2910,0},{3662,2908,0},{3663,2912,0},{3667,2908,0},{3668,2905,0},{3672,2902,0}, {3670,2898,0},{3675,2893,0},{3670,2888,0},{3670,2890,0},{3668,2887,0},{3663,2885,0}, {3665,2890,0},{3667,2888,0},{3665,2890,0},{3662,2887,0},{3660,2887,0},{3658,2883,0}, {3662,2882,0},{3663,2885,0},{3665,2882,0},{3665,2878,0},{3667,2880,0},{3670,2872,0}, {3668,2867,0},{3672,2863,0},{3670,2862,0},{3673,2860,0},{3677,2862,0},{3682,2862,0}, {3680,2860,0},{3682,2858,0},{3683,2855,0},{3682,2853,0},{3682,2852,0},{3678,2852,0}, {3680,2848,0},{3682,2850,0},{3682,2847,0},{3683,2845,0},{3685,2847,0},{3688,2847,0}, {3687,2843,0},{3687,2840,0},{3685,2838,0},{3683,2838,0},{3683,2842,0},{3678,2840,0}, {3682,2832,0},{3678,2830,0},{3680,2827,0},{3682,2827,0},{3682,2832,0},{3685,2828,0}, {3683,2825,0},{3680,2823,0},{3675,2827,0},{3675,2830,0},{3672,2830,0},{3673,2828,0}, {3672,2825,0},{3668,2822,0},{3668,2817,0},{3660,2812,0},{3658,2808,0},{3658,2807,0}, {3657,2803,0},{3657,2802,0},{3657,2798,0},{3660,2797,0},{3660,2805,0},{3663,2808,0}, {3665,2807,0},{3663,2805,0},{3667,2807,0},{3668,2803,0},{3667,2803,0},{3667,2802,0}, {3668,2797,0},{3670,2803,0},{3672,2805,0},{3672,2808,0},{3670,2808,0},{3672,2812,0}, {3675,2808,0},{3677,2810,0},{3675,2813,0},{3680,2812,0},{3680,2808,0},{3675,2805,0}, {3677,2803,0},{3675,2802,0},{3675,2797,0},{3675,2795,0},{3673,2792,0},{3675,2790,0}, {3673,2788,0},{3675,2788,0},{3673,2787,0},{3675,2782,0},{3675,2772,0},{3672,2768,0}, {3672,2770,0},{3670,2767,0},{3665,2767,0},{3668,2755,0},{3665,2748,0},{3667,2740,0}, {3668,2740,0},{3668,2737,0},{3670,2737,0},{3670,2742,0},{3673,2743,0},{3675,2747,0}, {3677,2762,0},{3680,2763,0},{3678,2768,0},{3678,2773,0},{3682,2782,0},{3682,2792,0}, {3680,2793,0},{3680,2798,0},{3678,2803,0},{3680,2805,0},{3682,2805,0},{3682,2802,0}, {3683,2803,0},{3685,2800,0},{3687,2805,0},{3690,2802,0},{3690,2803,0},{3692,2802,0}, {3692,2807,0},{3693,2805,0},{3693,2810,0},{3693,2815,0},{3690,2817,0},{3692,2817,0}, {3693,2815,0},{3695,2820,0},{3697,2822,0},{3698,2820,0},{3700,2822,0},{3698,2825,0}, {3700,2825,0},{3702,2827,0},{3702,2832,0},{3703,2833,0},{3703,2810,0},{3702,2810,0}, {3703,2808,0},{3703,2792,0},{3698,2777,0},{3700,2768,0},{3698,2763,0},{3700,2757,0}, {3697,2757,0},{3700,2752,0},{3698,2748,0},{3703,2742,0},{3702,2742,0},{3702,2740,0}, {3700,2738,0},{3702,2738,0},{3702,2733,0},{3700,2733,0},{3697,2730,0},{3695,2730,0}, {3697,2730,0},{3695,2727,0},{3697,2725,0},{3702,2725,0},{3703,2723,0},{3708,2723,0}, {3710,2728,0},{3712,2725,0},{3713,2727,0},{3712,2732,0},{3715,2733,0},{3713,2735,0}, {3715,2737,0},{3715,2738,0},{3712,2738,0},{3712,2743,0},{3708,2747,0},{3712,2753,0}, {3712,2757,0},{3713,2757,0},{3713,2755,0},{3715,2755,0},{3718,2753,0},{3720,2757,0}, {3720,2758,0},{3718,2758,0},{3720,2762,0},{3722,2758,0},{3727,2762,0},{3728,2760,0}, {3727,2755,0},{3725,2755,0},{3722,2752,0},{3723,2750,0},{3727,2752,0},{3727,2748,0}, {3725,2747,0},{3727,2747,0},{3732,2750,0},{3733,2747,0},{3730,2745,0},{3730,2740,0}, {3735,2738,0},{3738,2743,0},{3742,2742,0},{3740,2737,0},{3737,2735,0},{3737,2732,0}, {3733,2733,0},{3735,2720,0},{3740,2722,0},{3747,2722,0},{3747,2718,0},{3750,2718,0}, {3755,2718,0},{3755,2722,0},{3758,2722,0},{3763,2713,0},{3765,2700,0},{3768,2702,0}, {3768,2712,0},{3772,2723,0},{3782,2727,0},{3783,2723,0},{3790,2727,0},{3795,2727,0}, {3798,2723,0},{3798,2713,0},{3800,2710,0},{3802,2707,0},{3803,2707,0},{3807,2698,0}, {3807,2692,0},{3803,2687,0},{3815,2682,0},{3817,2677,0},{3820,2678,0},{3822,2677,0}, {3820,2673,0},{3820,2663,0},{3810,2660,0},{3810,2658,0},{3813,2657,0},{3812,2655,0}, {3813,2653,0},{3817,2652,0},{3817,2648,0},{3822,2643,0},{3822,2642,0},{3820,2642,0}, {3822,2638,0},{3823,2640,0},{3827,2638,0},{3825,2638,0},{3822,2635,0},{3823,2632,0}, {3827,2628,0},{3827,2623,0},{3828,2623,0},{3828,2628,0},{3832,2628,0},{3832,2630,0}, {3833,2628,0},{3837,2628,0},{3835,2630,0},{3837,2632,0},{3833,2632,0},{3830,2637,0}, {3832,2638,0},{3833,2638,0},{3833,2640,0},{3835,2645,0},{3837,2648,0},{3842,2645,0}, {3840,2650,0},{3842,2652,0},{3847,2643,0},{3845,2640,0},{3845,2638,0},{3850,2640,0}, {3852,2637,0},{3863,2635,0},{3865,2637,0},{3867,2642,0},{3867,2648,0},{3865,2653,0}, {3860,2657,0},{3857,2657,0},{3852,2663,0},{3847,2663,0},{3847,2660,0},{3845,2660,0}, {3842,2658,0},{3842,2662,0},{3833,2665,0},{3830,2668,0},{3832,2670,0},{3838,2667,0}, {3843,2670,0},{3842,2673,0},{3837,2677,0},{3835,2680,0},{3838,2698,0},{3840,2702,0}, {3840,2708,0},{3845,2717,0},{3847,2705,0},{3845,2698,0},{3843,2693,0},{3845,2692,0}, {3847,2692,0},{3843,2690,0},{3843,2695,0},{3850,2688,0},{3853,2682,0},{3853,2683,0}, {3850,2688,0},{3855,2683,0},{3860,2685,0},{3862,2683,0},{3858,2680,0},{3860,2680,0}, {3862,2675,0},{3863,2677,0},{3865,2672,0},{3867,2675,0},{3868,2672,0},{3873,2673,0}, {3875,2683,0},{3873,2683,0},{3875,2685,0},{3873,2690,0},{3875,2692,0},{3875,2693,0}, {3882,2690,0},{3883,2693,0},{3880,2695,0},{3882,2697,0},{3885,2697,0},{3887,2702,0}, {3885,2703,0},{3887,2707,0},{3890,2703,0},{3892,2707,0},{3893,2705,0},{3892,2700,0}, {3893,2697,0},{3892,2685,0},{3893,2685,0},{3895,2680,0},{3898,2680,0},{3902,2682,0}, {3903,2680,0},{3907,2688,0},{3917,2682,0},{3917,2677,0},{3920,2673,0},{3925,2672,0}, {3927,2662,0},{3930,2663,0},{3932,2665,0},{3928,2663,0},{3928,2667,0},{3930,2667,0}, {3932,2670,0},{3933,2670,0},{3940,2680,0},{3943,2680,0},{3943,2687,0},{3947,2687,0}, {3948,2693,0},{3955,2695,0},{3957,2693,0},{3957,2688,0},{3955,2683,0},{3957,2678,0}, {3955,2667,0},{3952,2645,0},{3948,2637,0},{3948,2627,0},{3947,2625,0},{3947,2623,0}, {3945,2613,0},{3948,2607,0},{3957,2610,0},{3963,2615,0},{3967,2617,0},{3975,2613,0}, {3978,2615,0},{3982,2615,0},{3983,2613,0},{3995,2615,0},{4000,2620,0},{3998,2625,0}, {4000,2628,0},{4002,2633,0},{4010,2637,0},{4012,2640,0},{4020,2642,0},{4022,2652,0}, {4028,2657,0},{4028,2660,0},{4035,2668,0},{4038,2672,0},{4038,2670,0},{4040,2677,0}, {4040,2692,0},{4038,2697,0},{4040,2703,0},{4045,2708,0},{4045,2715,0},{4043,2718,0}, {4045,2723,0},{4047,2728,0},{4042,2733,0},{4040,2730,0},{4038,2730,0},{4032,2743,0}, {4030,2755,0},{4033,2762,0},{4032,2768,0},{4032,2778,0},{4037,2788,0},{4040,2783,0}, {4040,2778,0},{4043,2775,0},{4045,2775,0},{4048,2768,0},{4050,2768,0},{4052,2772,0}, {4053,2773,0},{4052,2775,0},{4053,2775,0},{4053,2778,0},{4050,2778,0},{4052,2780,0}, {4048,2803,0},{4045,2802,0},{4040,2790,0},{4037,2792,0},{4035,2795,0},{4040,2825,0}, {4040,2848,0},{4038,2847,0},{4040,2852,0},{4037,2867,0},{4037,2868,0},{4040,2878,0}, {4038,2887,0},{4037,2893,0},{4037,2907,0},{4042,2908,0},{4043,2915,0},{4047,2908,0}, {4047,2900,0},{4047,2897,0},{4047,2890,0},{4050,2885,0},{4052,2878,0},{4055,2880,0}, {4060,2893,0},{4063,2898,0},{4065,2910,0},{4067,2915,0},{4065,2927,0},{4070,2938,0}, {4068,2943,0},{4073,2952,0},{4068,2955,0},{4073,2980,0},{4072,2990,0},{4072,2993,0}, {4077,2993,0},{4075,2977,0},{4077,2975,0},{4078,2970,0},{4077,2952,0},{4078,2948,0}, {4077,2942,0},{4075,2938,0},{4077,2935,0},{4082,2933,0},{4080,2925,0},{4083,2928,0}, {4085,2928,0},{4088,2923,0},{4090,2915,0},{4095,2910,0},{4098,2902,0},{4103,2902,0}, {4105,2905,0},{4112,2907,0},{4112,2910,0},{4117,2907,0},{4123,2917,0},{4123,2922,0}, {4122,2930,0},{4117,2958,0},{4118,2962,0},{4115,2973,0},{4113,3007,0},{4113,3017,0}, {4117,3022,0},{4118,3023,0},{4122,3028,0},{4120,3033,0},{4118,3037,0},{4115,3050,0}, {4113,3063,0},{4108,3075,0},{4107,3097,0},{4110,3113,0},{4108,3123,0},{4113,3133,0}, {4117,3137,0},{4122,3142,0},{4123,3140,0},{4128,3142,0},{4130,3140,0},{4132,3140,0}, {4132,3147,0},{4135,3150,0},{4138,3162,0},{4143,3175,0},{4145,3177,0},{4150,3188,0}, {4155,3200,0},{4157,3203,0},{4160,3215,0},{4172,3228,0},{4172,3235,0},{4175,3238,0}, {4173,3242,0},{4177,3245,0},{4178,3250,0},{4182,3253,0},{4182,3257,0},{4183,3260,0}, {4183,3268,0},{4187,3278,0},{4187,3287,0},{4188,3295,0},{4193,3305,0},{4198,3325,0}, {4202,3333,0},{4198,3378,0},{4198,3410,0},{4193,3432,0},{4197,3447,0},{4197,3448,0}, {4195,3457,0},{4195,3472,0},{4198,3485,0},{4202,3492,0},{4210,3495,0},{4208,3502,0}, {4203,3505,0},{4202,3508,0},{4202,3515,0},{4203,3518,0},{4202,3522,0},{4202,3512,0}, {4192,3510,0},{4185,3515,0},{4180,3522,0},{4180,3520,0},{4177,3522,0},{4172,3528,0}, {4168,3542,0},{4165,3545,0},{4163,3558,0},{4167,3577,0},{4173,3595,0},{4168,3592,0}, {4163,3592,0},{4173,3597,0},{4168,3603,0},{4170,3603,0},{4168,3605,0},{4160,3613,0}, {4153,3613,0},{4150,3612,0},{4147,3613,0},{4135,3623,0},{4132,3633,0},{4128,3635,0}, {4125,3643,0},{4125,3648,0},{4127,3653,0},{4135,3662,0},{4137,3662,0},{4137,3665,0}, {4135,3687,0},{4128,3702,0},{4125,3703,0},{4120,3703,0},{4117,3705,0},{4115,3715,0}, {4115,3730,0},{4112,3732,0},{4110,3738,0},{4108,3742,0},{4107,3747,0},{4103,3753,0}, {4105,3760,0},{4112,3765,0},{4113,3768,0},{4112,3770,0},{4112,3778,0},{4107,3778,0}, {4105,3780,0},{4103,3782,0},{4102,3787,0},{4098,3790,0},{4098,3802,0},{4093,3820,0}, {4095,3828,0},{4092,3837,0},{4092,3838,0},{4092,3843,0},{4092,3852,0},{4097,3863,0}, {4095,3867,0},{4095,3870,0},{4102,3882,0},{4102,3887,0},{4103,3892,0},{4103,3902,0}, {4103,3905,0},{4107,3915,0},{4108,3917,0},{4105,3928,0},{4112,3942,0},{4110,3950,0}, {4102,3958,0},{4100,3965,0},{4102,3973,0},{4100,3978,0},{4095,3988,0},{4098,4000,0}, {4093,4007,0},{4092,4015,0},{4098,4033,0},{4102,4037,0},{4103,4045,0},{4103,4055,0}, {4107,4062,0},{4110,4068,0},{4115,4075,0},{4120,4083,0},{4120,4095,0},{4123,4105,0}, {4127,4110,0},{4128,4118,0},{4137,4132,0},{4137,4138,0},{4142,4143,0},{4145,4143,0}, {4150,4152,0},{4338,4000,128},{4337,4007,0},{4333,4013,0},{4332,4022,0}, {4323,4027,0},{4322,4027,0},{4317,4032,0},{4313,4033,0},{4317,4037,0},{4313,4045,0}, {4312,4052,0},{4308,4058,0},{4310,4065,0},{4308,4080,0},{4307,4085,0},{4297,4093,0}, {4298,4100,0},{4297,4103,0},{4292,4108,0},{4285,4110,0},{4278,4115,0},{4280,4120,0}, {4278,4125,0},{4275,4142,0},{4270,4147,0},{4255,4153,0},{4238,4155,0},{4235,4160,0}, {4227,4163,0},{4213,4165,0},{4200,4177,0},{4183,4178,0},{4172,4173,0},{4165,4165,0}, {4163,4162,0},{4150,4152,0},{4712,3825,128},{4713,3830,0},{4713,3845,0}, {4717,3847,0},{4723,3857,0},{4725,3878,0},{4728,3882,0},{4725,3878,0},{4722,3855,0}, {4713,3848,0},{4712,3855,0},{4713,3855,0},{4713,3862,0},{4715,3875,0},{4717,3885,0}, {4718,3888,0},{4718,3893,0},{4722,3893,0},{4725,3895,0},{4725,3903,0},{4728,3908,0}, {4725,3927,0},{4720,3928,0},{4718,3925,0},{4715,3925,0},{4713,3927,0},{4708,3927,0}, {4713,3933,0},{4712,3938,0},{4708,3930,0},{4700,3927,0},{4702,3917,0},{4700,3910,0}, {4703,3908,0},{4700,3903,0},{4695,3893,0},{4695,3887,0},{4688,3878,0},{4683,3855,0}, {4687,3848,0},{4683,3842,0},{4677,3840,0},{4675,3837,0},{4672,3838,0},{4673,3838,0}, {4675,3842,0},{4673,3850,0},{4670,3857,0},{4668,3860,0},{4665,3858,0},{4663,3847,0}, {4665,3838,0},{4668,3830,0},{4673,3827,0},{4668,3820,0},{4668,3812,0},{4662,3802,0}, {4662,3785,0},{4667,3773,0},{4648,3782,0},{4640,3790,0},{4635,3800,0},{4637,3802,0}, {4638,3797,0},{4640,3800,0},{4640,3808,0},{4635,3817,0},{4627,3827,0},{4622,3830,0}, {4610,3857,0},{4603,3857,0},{4602,3847,0},{4603,3843,0},{4613,3823,0},{4612,3817,0}, {4605,3817,0},{4603,3813,0},{4588,3808,0},{4585,3805,0},{4582,3805,0},{4583,3800,0}, {4590,3807,0},{4593,3808,0},{4595,3807,0},{4597,3803,0},{4603,3807,0},{4602,3803,0}, {4605,3810,0},{4607,3807,0},{4605,3802,0},{4603,3793,0},{4598,3792,0},{4583,3788,0}, {4577,3783,0},{4573,3780,0},{4567,3767,0},{4562,3770,0},{4563,3762,0},{4565,3763,0}, {4567,3762,0},{4563,3758,0},{4543,3758,0},{4542,3762,0},{4543,3763,0},{4545,3765,0}, {4550,3763,0},{4552,3765,0},{4555,3763,0},{4555,3767,0},{4557,3762,0},{4560,3763,0}, {4558,3765,0},{4557,3770,0},{4548,3768,0},{4545,3775,0},{4545,3770,0},{4542,3773,0}, {4538,3772,0},{4540,3777,0},{4537,3773,0},{4533,3770,0},{4530,3773,0},{4532,3767,0}, {4530,3765,0},{4533,3763,0},{4530,3762,0},{4530,3757,0},{4530,3760,0},{4533,3760,0}, {4535,3755,0},{4533,3750,0},{4537,3752,0},{4530,3738,0},{4533,3737,0},{4533,3717,0}, {4532,3715,0},{4530,3717,0},{4528,3732,0},{4527,3725,0},{4525,3723,0},{4523,3712,0}, {4523,3708,0},{4525,3707,0},{4527,3707,0},{4527,3712,0},{4530,3710,0},{4533,3713,0}, {4543,3683,0},{4542,3675,0},{4533,3667,0},{4533,3670,0},{4538,3677,0},{4537,3682,0}, {4537,3685,0},{4533,3682,0},{4532,3680,0},{4535,3678,0},{4535,3677,0},{4535,3675,0}, {4533,3677,0},{4530,3678,0},{4532,3697,0},{4527,3697,0},{4523,3683,0},{4523,3677,0}, {4522,3675,0},{4520,3670,0},{4520,3658,0},{4518,3658,0},{4513,3662,0},{4510,3670,0}, {4510,3685,0},{4498,3720,0},{4490,3732,0},{4487,3730,0},{4485,3732,0},{4473,3738,0}, {4472,3743,0},{4467,3748,0},{4465,3757,0},{4467,3763,0},{4463,3775,0},{4463,3782,0}, {4467,3782,0},{4473,3778,0},{4470,3787,0},{4467,3788,0},{4463,3793,0},{4460,3793,0}, {4455,3800,0},{4457,3803,0},{4455,3807,0},{4452,3805,0},{4448,3812,0},{4442,3815,0}, {4438,3820,0},{4438,3828,0},{4435,3833,0},{4433,3860,0},{4427,3875,0},{4417,3887,0}, {4415,3897,0},{4403,3910,0},{4392,3930,0},{4365,3962,0},{4362,3968,0},{4357,3972,0}, {4350,3987,0},{4340,3992,0},{4338,4002,0},{4687,3703,128},{4693,3723,0}, {4690,3732,0},{4687,3732,0},{4687,3733,0},{4702,3747,0},{4708,3757,0},{4707,3773,0}, {4710,3787,0},{4708,3793,0},{4710,3797,0},{4708,3803,0},{4710,3807,0},{4708,3808,0}, {4707,3813,0},{4702,3812,0},{4710,3822,0},{4712,3827,0},{4522,2967,128}, {4522,2970,0},{4522,2972,0},{4523,2973,0},{4525,2973,0},{4532,2977,0},{4540,2975,0}, {4542,2973,0},{4542,2975,0},{4547,2973,0},{4543,2972,0},{4547,2970,0},{4545,2968,0}, {4547,2967,0},{4543,2965,0},{4547,2960,0},{4557,2970,0},{4553,2967,0},{4555,2960,0}, {4557,2960,0},{4568,2960,0},{4572,2963,0},{4573,2962,0},{4578,2965,0},{4582,2963,0}, {4580,2968,0},{4578,2970,0},{4570,2968,0},{4565,2973,0},{4562,2973,0},{4563,2978,0}, {4565,2978,0},{4565,2982,0},{4567,2987,0},{4572,2980,0},{4573,2980,0},{4577,2988,0}, {4572,2993,0},{4580,2992,0},{4582,2993,0},{4577,2995,0},{4580,2997,0},{4585,2997,0}, {4583,3003,0},{4580,3007,0},{4582,3008,0},{4582,3010,0},{4585,3010,0},{4590,3012,0}, {4587,3013,0},{4582,3013,0},{4587,3025,0},{4598,3033,0},{4608,3050,0},{4613,3052,0}, {4625,3067,0},{4632,3068,0},{4635,3065,0},{4633,3072,0},{4635,3072,0},{4638,3077,0}, {4645,3080,0},{4650,3075,0},{4655,3078,0},{4655,3085,0},{4662,3107,0},{4663,3118,0}, {4660,3133,0},{4662,3142,0},{4672,3150,0},{4675,3145,0},{4680,3145,0},{4675,3147,0}, {4673,3152,0},{4677,3153,0},{4678,3158,0},{4682,3160,0},{4682,3162,0},{4677,3157,0}, {4667,3152,0},{4665,3148,0},{4663,3148,0},{4660,3157,0},{4663,3158,0},{4665,3163,0}, {4662,3182,0},{4663,3187,0},{4665,3190,0},{4673,3192,0},{4680,3187,0},{4683,3188,0}, {4685,3195,0},{4692,3197,0},{4693,3190,0},{4700,3193,0},{4698,3188,0},{4700,3185,0}, {4703,3183,0},{4708,3187,0},{4712,3182,0},{4717,3182,0},{4718,3180,0},{4722,3173,0}, {4725,3173,0},{4725,3175,0},{4722,3175,0},{4718,3183,0},{4713,3185,0},{4710,3190,0}, {4702,3187,0},{4700,3198,0},{4695,3193,0},{4693,3195,0},{4693,3200,0},{4692,3202,0}, {4685,3198,0},{4682,3193,0},{4677,3193,0},{4663,3202,0},{4662,3212,0},{4657,3213,0}, {4660,3223,0},{4655,3232,0},{4657,3240,0},{4663,3265,0},{4660,3260,0},{4658,3248,0}, {4653,3242,0},{4650,3240,0},{4648,3242,0},{4647,3235,0},{4652,3210,0},{4652,3187,0}, {4655,3177,0},{4655,3158,0},{4658,3152,0},{4655,3153,0},{4647,3167,0},{4643,3168,0}, {4648,3170,0},{4650,3172,0},{4648,3178,0},{4645,3193,0},{4645,3200,0},{4642,3205,0}, {4638,3207,0},{4638,3202,0},{4635,3198,0},{4635,3183,0},{4632,3177,0},{4628,3180,0}, {4628,3190,0},{4632,3188,0},{4630,3195,0},{4627,3197,0},{4625,3205,0},{4620,3213,0}, {4618,3223,0},{4620,3227,0},{4617,3225,0},{4613,3227,0},{4607,3252,0},{4613,3277,0}, {4612,3290,0},{4612,3302,0},{4613,3303,0},{4617,3303,0},{4613,3312,0},{4617,3320,0}, {4622,3323,0},{4615,3323,0},{4613,3322,0},{4613,3325,0},{4612,3332,0},{4610,3332,0}, {4608,3330,0},{4610,3333,0},{4608,3338,0},{4605,3343,0},{4605,3352,0},{4607,3350,0}, {4608,3355,0},{4610,3352,0},{4612,3353,0},{4615,3360,0},{4608,3365,0},{4603,3363,0}, {4602,3365,0},{4600,3363,0},{4597,3365,0},{4593,3362,0},{4595,3367,0},{4593,3377,0}, {4592,3377,0},{4590,3368,0},{4585,3368,0},{4588,3362,0},{4587,3357,0},{4583,3355,0}, {4585,3348,0},{4575,3325,0},{4575,3322,0},{4578,3317,0},{4577,3317,0},{4573,3318,0}, {4565,3290,0},{4560,3282,0},{4557,3283,0},{4555,3275,0},{4553,3270,0},{4552,3263,0}, {4547,3253,0},{4540,3248,0},{4533,3250,0},{4532,3258,0},{4532,3267,0},{4535,3273,0}, {4535,3288,0},{4535,3293,0},{4527,3307,0},{4520,3317,0},{4518,3322,0},{4515,3325,0}, {4518,3338,0},{4515,3345,0},{4510,3355,0},{4492,3362,0},{4485,3360,0},{4483,3355,0}, {4478,3352,0},{4470,3355,0},{4463,3352,0},{4462,3357,0},{4460,3343,0},{4458,3340,0}, {4458,3337,0},{4452,3347,0},{4448,3353,0},{4448,3358,0},{4443,3363,0},{4438,3372,0}, {4438,3393,0},{4443,3412,0},{4448,3418,0},{4450,3423,0},{4455,3427,0},{4455,3433,0}, {4463,3438,0},{4472,3445,0},{4475,3453,0},{4477,3465,0},{4482,3473,0},{4482,3483,0}, {4482,3487,0},{4482,3490,0},{4483,3492,0},{4483,3497,0},{4483,3500,0},{4478,3505,0}, {4478,3508,0},{4488,3515,0},{4492,3523,0},{4495,3525,0},{4495,3537,0},{4498,3537,0}, {4500,3543,0},{4502,3540,0},{4505,3540,0},{4512,3552,0},{4512,3563,0},{4508,3572,0}, {4505,3578,0},{4500,3583,0},{4498,3585,0},{4500,3593,0},{4500,3598,0},{4503,3605,0}, {4500,3622,0},{4503,3627,0},{4503,3637,0},{4508,3645,0},{4515,3640,0},{4528,3643,0}, {4528,3650,0},{4533,3648,0},{4533,3650,0},{4533,3660,0},{4535,3663,0},{4538,3663,0}, {4542,3660,0},{4540,3653,0},{4542,3652,0},{4543,3648,0},{4543,3640,0},{4545,3635,0}, {4543,3630,0},{4547,3630,0},{4547,3613,0},{4542,3607,0},{4537,3603,0},{4535,3600,0}, {4537,3595,0},{4540,3587,0},{4543,3585,0},{4545,3587,0},{4547,3585,0},{4547,3582,0}, {4542,3580,0},{4533,3572,0},{4528,3550,0},{4535,3537,0},{4542,3528,0},{4565,3507,0}, {4578,3495,0},{4593,3487,0},{4603,3483,0},{4618,3482,0},{4622,3488,0},{4625,3490,0}, {4623,3493,0},{4625,3505,0},{4630,3512,0},{4640,3522,0},{4647,3517,0},{4650,3518,0}, {4645,3523,0},{4643,3528,0},{4640,3527,0},{4635,3527,0},{4633,3530,0},{4635,3535,0}, {4618,3520,0},{4613,3505,0},{4612,3505,0},{4608,3498,0},{4607,3498,0},{4613,3518,0}, {4635,3537,0},{4645,3548,0},{4648,3563,0},{4658,3573,0},{4662,3582,0},{4665,3590,0}, {4667,3607,0},{4665,3612,0},{4667,3620,0},{4663,3623,0},{4660,3623,0},{4662,3627,0}, {4660,3627,0},{4662,3628,0},{4672,3638,0},{4675,3652,0},{4675,3658,0},{4677,3662,0}, {4677,3673,0},{4673,3680,0},{4668,3680,0},{4663,3677,0},{4665,3675,0},{4663,3677,0}, {4677,3687,0},{4680,3687,0},{4688,3705,0},{4522,2967,128},{4522,2962,0}, {4517,2965,0},{4517,2970,0},{4512,2967,0},{4500,2965,0},{4490,2963,0},{4488,2960,0}, {4485,2962,0},{4482,2957,0},{4478,2917,0},{4473,2907,0},{4468,2900,0},{4475,2898,0}, {4475,2903,0},{4478,2912,0},{4480,2915,0},{4487,2910,0},{4483,2910,0},{4482,2907,0}, {4487,2905,0},{4492,2903,0},{4497,2912,0},{4500,2903,0},{4500,2898,0},{4495,2887,0}, {4492,2887,0},{4490,2888,0},{4488,2887,0},{4482,2895,0},{4478,2892,0},{4477,2895,0}, {4475,2887,0},{4472,2880,0},{4468,2878,0},{4468,2882,0},{4467,2878,0},{4465,2878,0}, {4465,2885,0},{4468,2892,0},{4472,2890,0},{4468,2900,0},{4463,2895,0},{4468,2898,0}, {4468,2897,0},{4467,2895,0},{4467,2892,0},{4460,2878,0},{4463,2880,0},{4463,2877,0}, {4460,2877,0},{4458,2878,0},{4457,2873,0},{4455,2877,0},{4447,2875,0},{4452,2880,0}, {4457,2885,0},{4458,2890,0},{4462,2893,0},{4448,2883,0},{4442,2875,0},{4433,2868,0}, {4435,2868,0},{4433,2865,0},{4432,2863,0},{4423,2863,0},{4417,2867,0},{4415,2863,0}, {4398,2867,0},{4382,2858,0},{4375,2858,0},{4360,2857,0},{4353,2860,0},{4345,2855,0}, {4340,2848,0},{4337,2847,0},{4338,2845,0},{4342,2833,0},{4340,2825,0},{4340,2815,0}, {4337,2808,0},{4323,2802,0},{4320,2790,0},{4317,2795,0},{4307,2792,0},{4303,2788,0}, {4295,2790,0},{4285,2790,0},{4285,2788,0},{4278,2790,0},{4270,2790,0},{4272,2777,0}, {4270,2772,0},{4267,2772,0},{4267,2773,0},{4262,2763,0},{4255,2765,0},{4257,2762,0}, {4255,2752,0},{4248,2748,0},{4248,2745,0},{4243,2747,0},{4247,2748,0},{4243,2750,0}, {4245,2753,0},{4245,2760,0},{4245,2762,0},{4242,2765,0},{4243,2768,0},{4242,2770,0}, {4242,2772,0},{4240,2770,0},{4238,2772,0},{4237,2770,0},{4235,2772,0},{4233,2773,0}, {4233,2778,0},{4230,2778,0},{4228,2775,0},{4227,2777,0},{4225,2775,0},{4225,2778,0}, {4212,2790,0},{4207,2798,0},{4200,2802,0},{4198,2802,0},{4188,2805,0},{4188,2798,0}, {4182,2797,0},{4175,2803,0},{4173,2803,0},{4167,2808,0},{4165,2808,0},{4158,2813,0}, {4157,2817,0},{4153,2820,0},{4142,2847,0},{4135,2863,0},{4135,2868,0},{4128,2883,0}, {4125,2900,0},{4125,2905,0},{4123,2910,0},{4120,2910,0},{4115,2903,0},{4112,2907,0}, {4108,2905,0},{4105,2903,0},{4103,2898,0},{4100,2898,0},{4100,2893,0},{4095,2882,0}, {4098,2875,0},{4097,2860,0},{4100,2860,0},{4102,2858,0},{4105,2858,0},{4107,2857,0}, {4108,2853,0},{4107,2853,0},{4105,2857,0},{4102,2857,0},{4098,2855,0},{4100,2850,0}, {4105,2842,0},{4108,2823,0},{4108,2815,0},{4103,2802,0},{4097,2795,0},{4097,2787,0}, {4100,2782,0},{4102,2773,0},{4098,2750,0},{4092,2747,0},{4085,2745,0},{4077,2733,0}, {4070,2730,0},{4063,2718,0},{4060,2705,0},{4055,2698,0},{4055,2690,0},{4045,2668,0}, {4042,2668,0},{4038,2662,0},{4037,2662,0},{4033,2658,0},{4028,2648,0},{4027,2647,0}, {4022,2642,0},{4020,2635,0},{4015,2637,0},{4005,2622,0},{4005,2618,0},{4005,2617,0}, {4007,2617,0},{4018,2625,0},{4025,2627,0},{4028,2622,0},{4032,2623,0},{4032,2622,0}, {4037,2632,0},{4043,2643,0},{4050,2660,0},{4052,2668,0},{4055,2672,0},{4055,2678,0}, {4060,2683,0},{4065,2680,0},{4067,2677,0},{4063,2668,0},{4063,2658,0},{4060,2652,0}, {4062,2645,0},{4060,2632,0},{4060,2612,0},{4062,2607,0},{4072,2605,0},{4073,2603,0}, {4073,2605,0},{4078,2603,0},{4080,2602,0},{4082,2607,0},{4083,2605,0},{4082,2602,0}, {4083,2600,0},{4082,2600,0},{4085,2592,0},{4085,2572,0},{4087,2563,0},{4087,2555,0}, {4092,2537,0},{4093,2535,0},{4093,2530,0},{4093,2527,0},{4095,2513,0},{4098,2513,0}, {4098,2517,0},{4102,2513,0},{4100,2503,0},{4098,2503,0},{4097,2500,0},{4093,2498,0}, {4092,2488,0},{4085,2480,0},{4085,2470,0},{4087,2467,0},{4085,2463,0},{4095,2457,0}, {4093,2440,0},{4088,2432,0},{4085,2433,0},{4083,2430,0},{4083,2433,0},{4072,2410,0}, {4073,2398,0},{4078,2385,0},{4075,2373,0},{4072,2370,0},{4067,2368,0},{4063,2377,0}, {4058,2380,0},{4053,2392,0},{4052,2390,0},{4052,2383,0},{4050,2382,0},{4047,2382,0}, {4040,2387,0},{4038,2397,0},{4038,2400,0},{4040,2400,0},{4045,2400,0},{4040,2403,0}, {4037,2407,0},{4035,2418,0},{4032,2418,0},{4032,2423,0},{4025,2428,0},{4015,2440,0}, {4013,2438,0},{4012,2430,0},{4015,2428,0},{4020,2422,0},{4022,2422,0},{4028,2417,0}, {4030,2405,0},{4037,2393,0},{4037,2385,0},{4033,2378,0},{4035,2373,0},{4032,2370,0}, {4028,2370,0},{4020,2377,0},{4017,2390,0},{4012,2398,0},{4008,2398,0},{4007,2400,0}, {4003,2398,0},{4003,2402,0},{4002,2402,0},{3998,2398,0},{3997,2400,0},{3997,2397,0}, {3995,2398,0},{3995,2393,0},{3995,2392,0},{3997,2393,0},{3997,2390,0},{4002,2385,0}, {4002,2382,0},{4012,2377,0},{4023,2365,0},{4025,2353,0},{4028,2340,0},{4023,2333,0}, {4020,2333,0},{4015,2337,0},{4013,2340,0},{4003,2350,0},{3998,2367,0},{3993,2370,0}, {3993,2375,0},{3992,2372,0},{3992,2360,0},{3997,2345,0},{3997,2337,0},{4000,2338,0}, {4007,2333,0},{4008,2332,0},{4018,2332,0},{4023,2332,0},{4033,2302,0},{4035,2302,0}, {4038,2295,0},{4038,2288,0},{4040,2290,0},{4050,2282,0},{4052,2292,0},{4053,2298,0}, {4057,2298,0},{4058,2293,0},{4063,2293,0},{4065,2290,0},{4063,2285,0},{4060,2285,0}, {4057,2282,0},{4057,2275,0},{4052,2275,0},{4052,2272,0},{4050,2272,0},{4053,2268,0}, {4052,2265,0},{4050,2267,0},{4047,2265,0},{4048,2262,0},{4047,2258,0},{4040,2262,0}, {4037,2267,0},{4015,2255,0},{4010,2257,0},{4005,2257,0},{4002,2260,0},{3995,2272,0}, {3987,2273,0},{3980,2285,0},{3958,2293,0},{3953,2302,0},{3950,2308,0},{3947,2312,0}, {3932,2327,0},{3918,2335,0},{3915,2332,0},{3913,2323,0},{3913,2322,0},{3912,2323,0}, {3910,2320,0},{3908,2312,0},{3910,2305,0},{3915,2308,0},{3913,2312,0},{3910,2310,0}, {3913,2317,0},{3917,2318,0},{3915,2322,0},{3918,2322,0},{3922,2318,0},{3925,2318,0}, {3930,2312,0},{3932,2302,0},{3935,2300,0},{3937,2295,0},{3932,2293,0},{3930,2293,0}, {3928,2285,0},{3927,2282,0},{3918,2285,0},{3915,2285,0},{3917,2288,0},{3918,2287,0}, {3918,2288,0},{3917,2292,0},{3912,2292,0},{3910,2297,0},{3905,2300,0},{3903,2297,0}, {3900,2297,0},{3903,2303,0},{3903,2307,0},{3900,2302,0},{3895,2300,0},{3895,2293,0}, {3893,2293,0},{3892,2290,0},{3893,2285,0},{3888,2283,0},{3887,2275,0},{3888,2272,0}, {3888,2267,0},{3890,2265,0},{3892,2262,0},{3888,2258,0},{3888,2253,0},{3885,2252,0}, {3885,2257,0},{3883,2255,0},{3882,2260,0},{3885,2270,0},{3878,2275,0},{3878,2282,0}, {3875,2287,0},{3877,2290,0},{3875,2298,0},{3875,2303,0},{3872,2307,0},{3863,2308,0}, {3863,2312,0},{3865,2318,0},{3868,2317,0},{3868,2320,0},{3865,2325,0},{3865,2332,0}, {3860,2333,0},{3858,2330,0},{3855,2328,0},{3853,2338,0},{3852,2333,0},{3850,2333,0}, {3850,2337,0},{3850,2347,0},{3848,2353,0},{3850,2355,0},{3850,2358,0},{3847,2360,0}, {3845,2357,0},{3845,2360,0},{3842,2360,0},{3842,2363,0},{3835,2368,0},{3833,2370,0}, {3833,2377,0},{3832,2380,0},{3830,2393,0},{3820,2407,0},{3813,2407,0},{3815,2405,0}, {3813,2402,0},{3810,2398,0},{3800,2403,0},{3797,2402,0},{3793,2402,0},{3790,2405,0}, {3788,2402,0},{3787,2407,0},{3782,2405,0},{3780,2408,0},{3778,2408,0},{3775,2408,0}, {3773,2407,0},{3768,2407,0},{3765,2403,0},{3767,2395,0},{3772,2395,0},{3773,2392,0}, {3777,2390,0},{3782,2383,0},{3782,2382,0},{3780,2380,0},{3782,2378,0},{3780,2378,0}, {3782,2377,0},{3783,2377,0},{3785,2375,0},{3793,2368,0},{3793,2363,0},{3795,2365,0}, {3795,2362,0},{3797,2362,0},{3797,2357,0},{3798,2355,0},{3802,2360,0},{3805,2357,0}, {3802,2347,0},{3798,2340,0},{3798,2343,0},{3797,2342,0},{3797,2322,0},{3792,2313,0}, {3792,2302,0},{3790,2302,0},{3788,2298,0},{3785,2302,0},{3785,2312,0},{3780,2318,0}, {3777,2318,0},{3777,2312,0},{3773,2312,0},{3772,2317,0},{3768,2315,0},{3765,2317,0}, {3762,2317,0},{3753,2333,0},{3755,2337,0},{3762,2332,0},{3763,2338,0},{3762,2342,0}, {3757,2338,0},{3755,2337,0},{3753,2342,0},{3752,2340,0},{3750,2345,0},{3747,2352,0}, {3743,2352,0},{3742,2342,0},{3742,2335,0},{3740,2330,0},{3740,2327,0},{3738,2325,0}, {3738,2327,0},{3738,2323,0},{3737,2323,0},{3737,2325,0},{3735,2325,0},{3733,2327,0}, {3733,2318,0},{3730,2320,0},{3728,2318,0},{3730,2315,0},{3733,2315,0},{3732,2312,0}, {3733,2313,0},{3735,2312,0},{3737,2307,0},{3740,2307,0},{3740,2312,0},{3742,2312,0}, {3742,2313,0},{3745,2313,0},{3745,2305,0},{3747,2307,0},{3748,2305,0},{3745,2300,0}, {3752,2298,0},{3752,2293,0},{3753,2293,0},{3753,2290,0},{3752,2292,0},{3752,2285,0}, {3753,2282,0},{3758,2278,0},{3757,2272,0},{3752,2273,0},{3748,2273,0},{3742,2277,0}, {3740,2275,0},{3733,2283,0},{3725,2287,0},{3720,2292,0},{3712,2290,0},{3712,2295,0}, {3708,2297,0},{3708,2298,0},{3707,2298,0},{3708,2297,0},{3702,2300,0},{3698,2302,0}, {3698,2300,0},{3695,2302,0},{3687,2305,0},{3685,2305,0},{3682,2308,0},{3680,2310,0}, {3678,2308,0},{3677,2312,0},{3675,2308,0},{3673,2308,0},{3673,2307,0},{3673,2303,0}, {3668,2303,0},{3668,2307,0},{3667,2303,0},{3663,2303,0},{3658,2308,0},{3657,2313,0}, {3653,2315,0},{3650,2313,0},{3647,2320,0},{3643,2320,0},{3643,2308,0},{3652,2305,0}, {3652,2297,0},{3658,2295,0},{3663,2288,0},{3665,2288,0},{3667,2287,0},{3668,2283,0}, {3665,2282,0},{3667,2282,0},{3672,2282,0},{3680,2278,0},{3680,2273,0},{3680,2263,0}, {3678,2260,0},{3677,2257,0},{3673,2258,0},{3672,2253,0},{3668,2253,0},{3668,2255,0}, {3665,2255,0},{3667,2252,0},{3665,2252,0},{3662,2253,0},{3660,2252,0},{3662,2248,0}, {3660,2248,0},{3653,2248,0},{3645,2252,0},{3643,2248,0},{3640,2250,0},{3638,2248,0}, {3645,2247,0},{3648,2240,0},{3648,2238,0},{3652,2235,0},{3655,2237,0},{3653,2238,0}, {3658,2238,0},{3660,2238,0},{3660,2237,0},{3663,2237,0},{3665,2238,0},{3667,2237,0}, {3670,2238,0},{3670,2235,0},{3672,2233,0},{3682,2230,0},{3688,2223,0},{3690,2220,0}, {3688,2217,0},{3692,2213,0},{3693,2215,0},{3700,2217,0},{3702,2215,0},{3702,2203,0}, {3698,2193,0},{3687,2192,0},{3682,2193,0},{3680,2197,0},{3672,2188,0},{3680,2182,0}, {3678,2177,0},{3682,2170,0},{3688,2168,0},{3695,2172,0},{3695,2167,0},{3697,2168,0}, {3695,2165,0},{3700,2165,0},{3707,2158,0},{3715,2157,0},{3720,2158,0},{3727,2167,0}, {3730,2170,0},{3745,2165,0},{3753,2157,0},{3762,2145,0},{3765,2140,0},{3767,2133,0}, {3765,2132,0},{3763,2132,0},{3767,2130,0},{3772,2132,0},{3778,2130,0},{3782,2122,0}, {3783,2112,0},{3785,2110,0},{3793,2113,0},{3793,2117,0},{3793,2120,0},{3800,2128,0}, {3800,2130,0},{3802,2132,0},{3802,2128,0},{3812,2137,0},{3822,2137,0},{3818,2140,0}, {3822,2140,0},{3820,2142,0},{3820,2147,0},{3817,2153,0},{3815,2160,0},{3817,2167,0}, {3822,2172,0},{3827,2173,0},{3830,2177,0},{3833,2185,0},{3832,2202,0},{3827,2205,0}, {3825,2213,0},{3818,2222,128},{3817,2233,0},{3813,2242,0},{3813,2250,0}, {3808,2265,0},{3805,2272,0},{3797,2280,0},{3793,2287,0},{3795,2295,0},{3798,2298,0}, {3803,2288,0},{3803,2285,0},{3808,2295,0},{3805,2305,0},{3807,2317,0},{3810,2322,0}, {3815,2318,0},{3815,2323,0},{3817,2318,0},{3817,2313,0},{3818,2315,0},{3822,2312,0}, {3817,2307,0},{3818,2303,0},{3820,2305,0},{3822,2303,0},{3822,2293,0},{3820,2292,0}, {3820,2297,0},{3818,2297,0},{3818,2295,0},{3818,2292,0},{3823,2290,0},{3823,2288,0}, {3823,2278,0},{3825,2277,0},{3828,2280,0},{3832,2270,0},{3837,2268,0},{3838,2265,0}, {3837,2263,0},{3837,2265,0},{3835,2265,0},{3835,2262,0},{3833,2260,0},{3833,2258,0}, {3832,2260,0},{3828,2258,0},{3828,2255,0},{3833,2252,0},{3835,2253,0},{3842,2247,0}, {3843,2243,0},{3845,2240,0},{3842,2242,0},{3838,2238,0},{3837,2240,0},{3833,2238,0}, {3835,2230,0},{3833,2230,0},{3837,2225,0},{3833,2220,0},{3832,2218,0},{3833,2217,0}, {3837,2213,0},{3840,2205,0},{3842,2195,0},{3837,2188,0},{3840,2183,0},{3837,2178,0}, {3833,2177,0},{3835,2172,0},{3835,2165,0},{3833,2157,0},{3830,2152,0},{3833,2143,0}, {3832,2147,0},{3830,2148,0},{3833,2148,0},{3835,2148,0},{3837,2147,0},{3837,2143,0}, {3838,2142,0},{3840,2137,0},{3847,2137,0},{3850,2133,0},{3848,2130,0},{3845,2135,0}, {3838,2133,0},{3838,2130,0},{3837,2130,0},{3837,2127,0},{3833,2127,0},{3832,2123,0}, {3833,2120,0},{3832,2118,0},{3832,2120,0},{3830,2117,0},{3830,2118,0},{3830,2115,0}, {3833,2113,0},{3833,2108,0},{3835,2112,0},{3837,2110,0},{3838,2110,0},{3837,2110,0}, {3840,2113,0},{3842,2112,0},{3840,2110,0},{3842,2108,0},{3843,2108,0},{3842,2110,0}, {3843,2112,0},{3843,2110,0},{3848,2110,0},{3848,2108,0},{3848,2110,0},{3853,2110,0}, {3850,2103,0},{3853,2102,0},{3860,2103,0},{3865,2098,0},{3867,2098,0},{3867,2092,0}, {3880,2087,0},{3880,2085,0},{3877,2082,0},{3877,2080,0},{3875,2078,0},{3877,2077,0}, {3878,2077,0},{3880,2073,0},{3885,2073,0},{3887,2080,0},{3892,2075,0},{3895,2077,0}, {3893,2078,0},{3892,2082,0},{3893,2085,0},{3897,2087,0},{3893,2088,0},{3892,2087,0}, {3892,2090,0},{3895,2092,0},{3893,2095,0},{3895,2098,0},{3893,2100,0},{3893,2103,0}, {3890,2102,0},{3887,2108,0},{3892,2110,0},{3890,2115,0},{3887,2117,0},{3887,2118,0}, {3890,2117,0},{3892,2113,0},{3897,2113,0},{3898,2117,0},{3905,2108,0},{3903,2108,0}, {3902,2103,0},{3900,2107,0},{3900,2098,0},{3902,2100,0},{3903,2098,0},{3903,2095,0}, {3905,2093,0},{3903,2093,0},{3907,2095,0},{3907,2090,0},{3903,2087,0},{3903,2090,0}, {3905,2083,0},{3903,2083,0},{3903,2085,0},{3907,2087,0},{3907,2082,0},{3908,2085,0}, {3912,2082,0},{3908,2077,0},{3908,2080,0},{3902,2075,0},{3902,2073,0},{3897,2082,0}, {3895,2083,0},{3898,2077,0},{3895,2075,0},{3895,2073,0},{3898,2070,0},{3902,2072,0}, {3907,2068,0},{3912,2060,0},{3918,2055,0},{3922,2048,0},{3928,2048,0},{3928,2038,0}, {3928,2035,0},{3932,2030,0},{3938,2028,0},{3940,2023,0},{3943,2022,0},{3945,2027,0}, {3948,2022,0},{3950,2025,0},{3952,2025,0},{3952,2023,0},{3950,2022,0},{3952,2018,0}, {3952,2017,0},{3952,2020,0},{3953,2018,0},{3953,2013,0},{3957,2015,0},{3957,2017,0}, {3962,2018,0},{3965,2012,0},{3965,2010,0},{3968,2007,0},{3968,2002,0},{3970,1998,0}, {3975,2000,0},{3975,1998,0},{3977,2000,0},{3987,2002,0},{3990,1992,0},{3993,1993,0}, {4003,1987,0},{4005,1983,0},{4005,1980,0},{4007,1978,0},{4007,1977,0},{4010,1975,0}, {4013,1965,0},{4022,1947,0},{4030,1938,0},{4037,1935,0},{4042,1928,0},{4043,1932,0}, {4042,1935,0},{4038,1940,0},{4033,1942,0},{4035,1948,0},{4043,1948,0},{4053,1938,0}, {4050,1943,0},{4053,1945,0},{4057,1945,0},{4058,1940,0},{4057,1938,0},{4055,1938,0}, {4057,1938,0},{4065,1930,0},{4070,1935,0},{4080,1937,0},{4082,1940,0},{4085,1940,0}, {4087,1942,0},{4090,1938,0},{4095,1945,0},{4093,1942,0},{4090,1943,0},{4087,1943,0}, {4088,1943,0},{4087,1943,0},{4092,1952,0},{4100,1950,0},{4092,1945,0},{4098,1947,0}, {4100,1947,0},{4102,1943,0},{4110,1945,0},{4113,1943,0},{4115,1947,0},{4125,1952,0}, {4130,1950,0},{4130,1943,0},{4133,1942,0},{4138,1942,0},{4140,1938,0},{4140,1940,0}, {4140,1945,0},{4143,1945,0},{4145,1948,0},{4150,1952,0},{4153,1952,0},{4155,1947,0}, {4158,1945,0},{4157,1950,0},{4158,1957,0},{4162,1958,0},{4160,1960,0},{4160,1962,0}, {4163,1960,0},{4165,1957,0},{4170,1958,0},{4175,1957,0},{4177,1960,0},{4182,1960,0}, {4187,1943,0},{4185,1937,0},{4190,1928,0},{4192,1922,0},{4195,1915,0},{4198,1913,0}, {4198,1915,0},{4205,1913,0},{4208,1907,0},{4210,1908,0},{4213,1905,0},{4213,1900,0}, {4217,1900,0},{4222,1890,0},{4228,1888,0},{4227,1878,0},{4228,1877,0},{4232,1872,0}, {4238,1868,0},{4237,1862,0},{4238,1858,0},{4242,1855,0},{4243,1857,0},{4240,1870,0}, {4248,1868,0},{4243,1862,0},{4245,1852,0},{4240,1852,0},{4245,1847,0},{4245,1842,0}, {4248,1838,0},{4257,1823,0},{4258,1822,0},{4260,1823,0},{4262,1820,0},{4265,1807,0}, {4267,1805,0},{4267,1807,0},{4270,1805,0},{4268,1803,0},{4270,1800,0},{4277,1788,0}, {4278,1788,0},{4282,1780,0},{4280,1777,0},{4282,1772,0},{4278,1775,0},{4287,1745,0}, {4288,1745,0},{4292,1742,0},{4292,1737,0},{4298,1722,0},{4298,1712,0},{4300,1702,0}, {4302,1703,0},{4305,1700,0},{4305,1702,0},{4302,1707,0},{4302,1723,0},{4300,1730,0}, {4295,1743,0},{4292,1747,0},{4290,1757,0},{4283,1773,0},{4285,1770,0},{4288,1772,0}, {4287,1770,0},{4288,1767,0},{4293,1755,0},{4292,1762,0},{4293,1760,0},{4295,1752,0}, {4300,1747,0},{4303,1750,0},{4302,1743,0},{4303,1745,0},{4303,1743,0},{4307,1742,0}, {4303,1740,0},{4312,1733,0},{4317,1717,0},{4323,1710,0},{4323,1707,0},{4340,1688,0}, {4342,1675,0},{4345,1668,0},{4343,1663,0},{4350,1653,0},{4352,1640,0},{4353,1647,0}, {4355,1643,0},{4355,1632,0},{4352,1618,0},{4352,1613,0},{4352,1612,0},{4350,1617,0}, {4348,1617,0},{4348,1612,0},{4348,1610,0},{4350,1595,0},{4352,1595,0},{4352,1598,0}, {4355,1598,0},{4355,1593,0},{4357,1595,0},{4357,1592,0},{4358,1593,0},{4363,1592,0}, {4363,1597,0},{4365,1590,0},{4365,1595,0},{4367,1593,0},{4368,1595,0},{4367,1593,0}, {4370,1588,0},{4375,1578,0},{4377,1570,0},{4380,1567,0},{4382,1562,0},{4380,1568,0}, {4393,1545,0},{4403,1533,0},{4407,1528,0},{4410,1527,0},{4413,1520,0},{4415,1520,0}, {4418,1515,0},{4423,1517,0},{4427,1512,0},{4428,1512,0},{4428,1515,0},{4425,1518,0}, {4425,1520,0},{4428,1518,0},{4428,1520,0},{4430,1520,0},{4425,1528,0},{4428,1528,0}, {4428,1530,0},{4433,1527,0},{4427,1542,0},{4427,1543,0},{4425,1552,0},{4427,1553,0}, {4428,1552,0},{4428,1545,0},{4432,1542,0},{4437,1528,0},{4452,1510,0},{4458,1498,0}, {4472,1488,0},{4485,1488,0},{4497,1492,0},{4512,1485,0},{4515,1472,0},{4523,1462,0}, {4527,1457,0},{4528,1458,0},{4530,1457,0},{4530,1453,0},{4528,1455,0},{4530,1450,0}, {4532,1448,0},{4535,1433,0},{4530,1428,0},{4515,1423,0},{4512,1420,0},{4513,1418,0}, {4510,1420,0},{4508,1415,0},{4505,1415,0},{4498,1417,0},{4497,1415,0},{4497,1410,0}, {4495,1407,0},{4498,1408,0},{4503,1405,0},{4500,1403,0},{4498,1407,0},{4495,1405,0}, {4495,1403,0},{4492,1403,0},{4492,1402,0},{4490,1402,0},{4490,1398,0},{4488,1400,0}, {4482,1397,0},{4480,1400,0},{4482,1393,0},{4483,1392,0},{4482,1388,0},{4482,1392,0}, {4477,1392,0},{4477,1390,0},{4482,1390,0},{4482,1385,0},{4485,1385,0},{4487,1380,0}, {4487,1383,0},{4488,1385,0},{4490,1380,0},{4492,1380,0},{4497,1378,0},{4503,1368,0}, {4505,1368,0},{4507,1363,0},{4510,1363,0},{4512,1360,0},{4513,1362,0},{4513,1373,0}, {4513,1360,0},{4520,1358,0},{4525,1360,0},{4527,1358,0},{4528,1360,0},{4530,1358,0}, {4532,1360,0},{4533,1353,0},{4537,1355,0},{4548,1350,0},{4550,1350,0},{4548,1358,0}, {4548,1360,0},{4552,1360,0},{4553,1357,0},{4555,1375,0},{4557,1373,0},{4558,1370,0}, {4560,1372,0},{4562,1373,0},{4562,1380,0},{4563,1377,0},{4563,1375,0},{4567,1375,0}, {4570,1373,0},{4577,1363,0},{4578,1355,0},{4577,1353,0},{4575,1352,0},{4573,1355,0}, {4567,1340,0},{4568,1338,0},{4570,1343,0},{4573,1340,0},{4575,1325,0},{4578,1322,0}, {4577,1318,0},{4575,1315,0},{4577,1313,0},{4577,1312,0},{4573,1312,0},{4572,1307,0}, {4570,1307,0},{4568,1310,0},{4570,1315,0},{4563,1308,0},{4563,1298,0},{4562,1290,0}, {4555,1275,0},{4543,1242,0},{4548,1243,0},{4548,1247,0},{4550,1247,0},{4550,1250,0}, {4548,1250,0},{4548,1252,0},{4552,1253,0},{4555,1258,0},{4553,1255,0},{4555,1252,0}, {4557,1250,0},{4557,1248,0},{4553,1243,0},{4552,1245,0},{4553,1238,0},{4552,1238,0}, {4550,1242,0},{4550,1238,0},{4550,1237,0},{4548,1233,0},{4545,1227,0},{4537,1225,0}, {4535,1222,0},{4530,1222,0},{4532,1215,0},{4527,1217,0},{4527,1220,0},{4530,1220,0}, {4528,1223,0},{4527,1222,0},{4522,1222,0},{4520,1225,0},{4520,1227,0},{4520,1228,0}, {4523,1230,0},{4520,1230,0},{4515,1233,0},{4510,1233,0},{4512,1232,0},{4510,1230,0}, {4508,1230,0},{4508,1235,0},{4503,1238,0},{4502,1237,0},{4502,1238,0},{4503,1238,0}, {4507,1237,0},{4502,1243,0},{4503,1243,0},{4497,1248,0},{4497,1250,0},{4498,1248,0}, {4498,1252,0},{4497,1253,0},{4495,1252,0},{4492,1252,0},{4492,1250,0},{4487,1248,0}, {4482,1245,0},{4485,1243,0},{4490,1243,0},{4490,1242,0},{4487,1238,0},{4483,1242,0}, {4482,1240,0},{4482,1243,0},{4480,1242,0},{4480,1235,0},{4485,1230,0},{4483,1228,0}, {4472,1225,0},{4465,1225,0},{4460,1228,0},{4447,1228,0},{4440,1232,0},{4435,1232,0}, {4422,1238,0},{4398,1268,0},{4397,1282,0},{4383,1305,0},{4367,1330,0},{4362,1347,0}, {4363,1352,0},{4357,1357,0},{4355,1362,0},{4350,1363,0},{4310,1385,0},{4295,1388,0}, {4268,1402,0},{4253,1413,0},{4243,1427,0},{4238,1438,0},{4225,1452,0},{4222,1457,0}, {4217,1472,0},{4210,1472,0},{4208,1473,0},{4202,1488,0},{4200,1500,0},{4195,1507,0}, {4192,1517,0},{4192,1528,0},{4190,1540,0},{4193,1563,0},{4192,1568,0},{4192,1583,0}, {4195,1602,0},{4192,1615,0},{4188,1618,0},{4178,1618,0},{4168,1603,0},{4163,1593,0}, {4162,1590,0},{4152,1590,0},{4143,1598,0},{4123,1653,0},{4120,1658,0},{4108,1705,0}, {4103,1718,0},{4097,1728,0},{4090,1735,0},{4088,1740,0},{4083,1748,0},{4077,1770,0}, {4070,1783,0},{4068,1793,0},{4067,1797,0},{4065,1795,0},{4065,1802,0},{4060,1805,0}, {4055,1803,0},{4050,1813,0},{4045,1825,0},{4028,1843,0},{4013,1852,0},{4010,1852,0}, {4005,1848,0},{4003,1843,0},{4000,1842,0},{3992,1840,0},{3982,1838,0},{3980,1837,0}, {3980,1833,0},{3983,1827,0},{3983,1820,0},{3993,1805,0},{4000,1800,0},{4000,1802,0}, {4003,1802,0},{4005,1797,0},{4008,1800,0},{4010,1802,0},{4013,1798,0},{4017,1793,0}, {4025,1792,0},{4028,1787,0},{4030,1767,0},{4030,1752,0},{4033,1743,0},{4033,1740,0}, {4042,1720,0},{4045,1725,0},{4047,1723,0},{4047,1732,0},{4050,1732,0},{4048,1727,0}, {4050,1725,0},{4050,1723,0},{4048,1720,0},{4050,1718,0},{4052,1708,0},{4050,1700,0}, {4045,1692,0},{4032,1680,0},{4015,1670,0},{4010,1662,0},{4005,1660,0},{3997,1663,0}, {3987,1653,0},{3980,1648,0},{3975,1650,0},{3972,1653,0},{3967,1653,0},{3965,1655,0}, {3962,1663,0},{3962,1677,0},{3953,1688,0},{3950,1697,0},{3948,1702,0},{3943,1705,0}, {3940,1717,0},{3932,1712,0},{3927,1712,0},{3920,1715,0},{3910,1712,0},{3905,1715,0}, {3902,1720,0},{3900,1717,0},{3895,1717,0},{3890,1710,0},{3892,1708,0},{3890,1702,0}, {3892,1700,0},{3893,1697,0},{3892,1683,0},{3890,1678,0},{3880,1660,0},{3870,1653,0}, {3868,1655,0},{3857,1657,0},{3843,1657,0},{3835,1648,0},{3830,1633,0},{3813,1617,0}, {3798,1612,0},{3792,1607,0},{3792,1575,0},{3795,1567,0},{3800,1563,0},{3803,1565,0}, {3808,1563,0},{3815,1565,0},{3820,1563,0},{3823,1563,0},{3827,1575,0},{3830,1582,0}, {3852,1592,0},{3855,1592,0},{3862,1583,0},{3863,1583,0},{3867,1585,0},{3872,1598,0}, {3872,1610,0},{3872,1613,0},{3875,1618,0},{3883,1622,0},{3892,1622,0},{3893,1622,0}, {3895,1615,0},{3902,1610,0},{3913,1607,0},{3935,1603,0},{3952,1593,0},{3955,1587,0}, {3970,1580,0},{3980,1578,0},{3983,1577,0},{3987,1578,0},{4003,1567,0},{4005,1563,0}, {4007,1563,0},{4008,1557,0},{4007,1550,0},{3998,1542,0},{4000,1537,0},{4003,1532,0}, {4003,1527,0},{4005,1528,0},{4007,1527,0},{4017,1513,0},{4017,1503,0},{4022,1498,0}, {4023,1492,0},{4027,1490,0},{4028,1493,0},{4033,1493,0},{4035,1498,0},{4040,1500,0}, {4057,1490,0},{4067,1478,0},{4067,1473,0},{4063,1468,0},{4065,1463,0},{4062,1458,0}, {4062,1452,0},{4063,1448,0},{4062,1445,0},{4057,1435,0},{4058,1432,0},{4062,1433,0}, {4063,1438,0},{4067,1443,0},{4070,1448,0},{4075,1445,0},{4077,1440,0},{4082,1432,0}, {4083,1427,0},{4082,1422,0},{4080,1418,0},{4083,1410,0},{4082,1407,0},{4078,1408,0}, {4080,1405,0},{4087,1405,0},{4097,1398,0},{4102,1392,0},{4108,1390,0},{4118,1380,0}, {4125,1372,0},{4125,1360,0},{4123,1357,0},{4122,1358,0},{4120,1357,0},{4128,1335,0}, {4130,1330,0},{4127,1317,0},{4122,1310,0},{4122,1305,0},{4130,1300,0},{4138,1292,0}, {4142,1283,0},{4140,1277,0},{4147,1267,0},{4145,1262,0},{4162,1247,0},{4168,1235,0}, {4173,1223,0},{4187,1218,0},{4193,1212,0},{4195,1203,0},{4198,1202,0},{4203,1192,0}, {4203,1183,0},{4213,1175,0},{4222,1170,0},{4230,1162,0},{4240,1138,0},{4240,1140,0}, {4240,1137,0},{4240,1128,0},{4242,1127,0},{4240,1120,0},{4237,1118,0},{4237,1115,0}, {4240,1110,0},{4243,1108,0},{4245,1110,0},{4245,1117,0},{4252,1118,0},{4257,1115,0}, {4257,1112,0},{4263,1108,0},{4265,1100,0},{4270,1098,0},{4275,1093,0},{4278,1078,0}, {4280,1073,0},{4282,1077,0},{4288,1078,0},{4292,1075,0},{4295,1067,0},{4295,1058,0}, {4295,1055,0},{4292,1053,0},{4293,1050,0},{4298,1048,0},{4300,1052,0},{4307,1053,0}, {4315,1055,0},{4323,1053,0},{4340,1042,0},{4345,1037,0},{4347,1032,0},{4355,1030,0}, {4383,1025,0},{4390,1022,0},{4402,1010,0},{4405,1000,0},{4403,997,0},{4410,983,0}, {4408,982,0},{4407,985,0},{4405,983,0},{4403,985,0},{4403,983,0},{4405,982,0}, {4410,973,0},{4413,967,0},{4413,962,0},{4417,960,0},{4422,950,0},{4423,948,0}, {4423,943,0},{4425,942,0},{4425,940,0},{4430,933,0},{4435,923,0},{4433,922,0}, {4430,922,0},{4432,915,0},{4437,913,0},{4438,895,0},{4442,892,0},{4443,877,0}, {4432,850,0},{4428,843,0},{4425,845,0},{4422,842,0},{4418,842,0},{4413,827,0}, {4410,823,0},{4405,823,0},{4400,815,0},{4395,817,0},{4390,807,0},{4385,795,0}, {4382,777,0},{4378,768,0},{4378,760,0},{4378,753,0},{4378,750,0},{4378,748,0}, {4375,747,0},{4375,743,0},{4375,745,128},{4372,738,0},{4373,740,128},{4372,733,0}, {4368,733,0},{4372,732,0},{4370,723,0},{4367,722,0},{4367,715,0},{4363,713,0}, {4357,713,0},{4358,710,0},{4357,702,0},{4355,697,0},{4352,695,0},{4350,695,0}, {4343,688,0},{4342,685,0},{4343,675,0},{4337,672,0},{4335,667,0},{4332,667,0}, {4328,658,0},{4328,670,0},{4323,667,0},{4322,668,0},{4320,663,0},{4318,663,0}, {4317,662,0},{4318,660,0},{4320,660,0},{4320,657,0},{4317,650,0},{4317,640,0}, {4313,637,0},{4308,637,0},{4313,627,0},{4313,618,0},{4310,617,0},{4307,615,0}, {4307,618,0},{4305,617,0},{4305,608,0},{4307,612,0},{4310,612,0},{4310,603,0}, {4312,602,0},{4312,593,0},{4313,593,0},{4312,588,0},{4308,593,0},{4308,590,0}, {4305,587,0},{4307,583,0},{4308,577,0},{4312,582,0},{4312,578,0},{4315,577,0}, {4315,570,0},{4318,568,0},{4318,562,0},{4318,560,0},{4318,558,0},{4322,553,0}, {4320,550,0},{4322,547,0},{4322,537,0},{4323,535,0},{4327,537,0},{4328,535,0}, {4333,537,0},{4337,532,0},{4333,522,0},{4335,503,0},{4338,502,0},{4340,502,0}, {4342,507,0},{4342,515,0},{4347,523,0},{4350,522,0},{4348,517,0},{4350,512,0}, {4353,512,0},{4353,505,0},{4355,503,0},{4350,500,0},{4348,502,0},{4347,505,0}, {4343,507,0},{4342,498,0},{4343,492,0},{4342,487,0},{4340,485,0},{4338,487,0}, {4337,487,0},{4343,475,0},{4352,475,0},{4357,472,0},{4357,470,0},{4355,470,0}, {4352,473,0},{4342,473,0},{4338,482,0},{4337,482,0},{4335,480,0},{4337,460,0}, {4338,457,0},{4343,460,0},{4345,453,0},{4345,437,0},{4348,418,0},{4350,415,0}, {4353,415,0},{4357,412,0},{4357,395,0},{4358,408,0},{4362,410,0},{4355,388,0}, {4353,387,0},{4352,382,0},{4348,380,0},{4343,370,0},{4345,377,0},{4353,388,0}, {4355,393,0},{4342,370,0},{4338,362,0},{4328,352,0},{4328,340,0},{4322,327,0}, {4308,315,0},{4310,312,0},{4312,313,0},{4312,310,0},{4308,310,0},{4307,313,0}, {4305,313,0},{4295,308,0},{4295,307,0},{4298,308,0},{4298,307,0},{4297,305,0}, {4293,310,0},{4290,310,0},{4290,305,0},{4287,305,0},{4283,300,0},{4282,302,0}, {4280,308,0},{4268,308,0},{4270,305,0},{4268,305,0},{4265,308,0},{4255,310,0}, {4252,315,0},{4243,322,0},{4238,320,0},{4235,323,0},{4235,325,0},{4233,332,0}, {4232,335,0},{4225,330,0},{4225,322,0},{4227,320,0},{4225,317,0},{4222,315,0}, {4215,315,0},{4208,323,0},{4202,323,0},{4197,327,0},{4188,322,0},{4185,313,0}, {4180,308,0},{4173,297,0},{4172,287,0},{4163,275,0},{4145,228,0},{4132,215,0}, {4127,207,0},{4125,193,0},{4120,168,0},{4118,152,0},{4113,140,0},{4112,123,0}, {4107,118,0},{4108,113,0},{4107,105,0},{4103,98,0},{4097,88,0},{4080,72,0}, {4077,78,0},{4080,77,0},{4080,80,0},{4072,90,0},{4068,87,0},{4067,77,0}, {4057,67,0},{4060,62,0},{4060,70,0},{4065,73,0},{4063,62,0},{4060,58,0}, {4030,37,0},{4025,30,0},{4022,28,0},{4017,20,0},{4007,13,0},{4003,5,0}, {3995,0,0},{3992,65534,0},{3980,65523,0},{3970,65516,0},{3965,65514,0}, {3955,65504,0},{3950,65503,0},{3938,65503,0},{3918,65513,0},{3917,65511,0}, {3912,65511,0},{3893,65524,0},{3887,0,0},{3885,10,0},{3882,17,0},{3880,18,0}, {3880,17,0},{3877,22,0},{3873,22,0},{3872,17,0},{3868,13,0},{3867,8,0}, {3863,7,0},{3862,0,0},{3860,65529,0},{3858,65529,0},{3855,65529,0},{3853,65526,0}, {3853,65519,0},{3845,65498,0},{3840,65494,0},{3835,65494,0},{3835,65489,0}, {3833,65488,0},{3833,65484,0},{3820,65483,0},{3818,65474,0},{3815,65469,0}, {3805,65469,0},{3798,65471,0},{3795,65466,0},{3790,65461,0},{3783,65459,0}, {3780,65461,0},{3782,65458,0},{3780,65456,0},{3777,65454,0},{3775,65451,0}, {3773,65449,0},{3767,65454,0},{3763,65461,0},{3765,65464,0},{3763,65466,0}, {3762,65464,0},{3755,65444,0},{3758,65438,0},{3758,65429,0},{3757,65424,0}, {3753,65424,0},{3757,65414,0},{3755,65401,0},{3748,65389,0},{3743,65386,0}, {3743,65383,0},{3742,65379,0},{3738,65371,0},{3720,65354,0},{3698,65344,0}, {3695,65346,0},{3693,65341,0},{3690,65336,0},{3685,65334,0},{3673,65323,0}, {3673,65318,0},{3673,65314,0},{3680,65308,0},{3683,65299,0},{3682,65293,0}, {3682,65278,0},{3673,65271,0},{3670,65264,0},{3670,65259,0},{3672,65254,0}, {3670,65251,0},{3675,65244,0},{3677,65226,0},{3675,65203,0},{3670,65191,0}, {3675,65173,0},{3673,65163,0},{3675,65151,0},{3673,65141,0},{3675,65128,0}, {3673,65124,0},{3672,65113,0},{3672,65094,0},{3662,65086,0},{3657,65076,0}, {3650,65071,0},{3648,65061,0},{3652,65049,0},{3650,65043,0},{3647,65036,0}, {3642,65018,0},{3635,65011,0},{3630,65009,0},{3627,65004,0},{3615,64999,0}, {3617,64999,128},{3610,64999,0},{3615,64998,0},{3617,64993,0},{3615,64989,0}, {3607,64991,0},{3605,64989,0},{3600,64974,0},{3605,64968,0},{3607,64959,0}, {3608,64954,0},{3618,64943,0},{3618,64931,0},{3628,64924,0},{3632,64919,0}, {3637,64918,0},{3645,64913,0},{3653,64904,0},{3655,64906,0},{3653,64908,0}, {3648,64913,0},{3652,64918,0},{3652,64914,0},{3652,64911,0},{3657,64913,0}, {3662,64906,0},{3663,64898,0},{3673,64893,0},{3675,64893,0},{3680,64903,0}, {3687,64901,0},{3690,64903,0},{3690,64906,0},{3690,64914,0},{3693,64916,0}, {3692,64913,0},{3690,64903,0},{3682,64901,0},{3680,64899,0},{3682,64896,0}, {3693,64889,0},{3703,64876,0},{3718,64846,0},{3722,64844,0},{3728,64851,0}, {3722,64843,0},{3723,64839,0},{3717,64843,0},{3722,64828,0},{3722,64823,0}, {3720,64826,0},{3720,64803,0},{3718,64798,0},{3718,64794,0},{3717,64794,0}, {3718,64791,0},{3717,64783,0},{3698,64753,0},{3702,64746,0},{3700,64739,0}, {3700,64736,0},{3698,64739,0},{3705,64729,0},{3707,64721,0},{3707,64706,0}, {3710,64699,0},{3708,64691,0},{3712,64683,0},{3712,64676,0},{3712,64671,0}, {3708,64668,0},{3705,64651,0},{3700,64641,0},{3703,64636,0},{3715,64644,0}, {3718,64644,0},{3725,64648,0},{3732,64648,0},{3743,64654,0},{3753,64656,0}, {3760,64653,0},{3768,64654,0},{3770,64658,0},{3770,64661,0},{3773,64663,0}, {3772,64656,0},{3773,64654,0},{3788,64654,0},{3792,64653,0},{3795,64646,0}, {3813,64656,0},{3825,64656,0},{3840,64653,0},{3848,64641,0},{3848,64646,0}, {3845,64651,0},{3843,64656,0},{3842,64658,0},{3843,64659,0},{3840,64666,0}, {3842,64676,0},{3842,64668,0},{3845,64663,0},{3850,64661,0},{3852,64663,0}, {3857,64659,0},{3853,64658,0},{3852,64654,0},{3852,64658,0},{3848,64656,0}, {3848,64653,0},{3852,64644,0},{3847,64636,0},{3845,64629,0},{3842,64613,0}, {3847,64616,0},{3872,64586,0},{3875,64588,0},{3880,64586,0},{3893,64593,0}, {3908,64593,0},{3923,64601,0},{3932,64601,0},{3937,64594,0},{3938,64603,0}, {3943,64611,0},{3940,64613,0},{3942,64616,0},{3945,64613,0},{3955,64623,0}, {3972,64629,0},{3983,64636,0},{4013,64649,0},{4012,64654,0},{4012,64658,0}, {4015,64654,0},{4015,64648,0},{4018,64644,0},{4040,64654,0},{4062,64659,0}, {4063,64661,0},{4062,64661,0},{4065,64664,0},{4065,64668,0},{4067,64668,0}, {4067,64669,0},{4070,64671,0},{4070,64669,0},{4072,64669,0},{4073,64674,0}, {4075,64679,0},{4073,64673,0},{4073,64669,0},{4075,64668,0},{4078,64668,0}, {4082,64673,0},{4083,64671,0},{4080,64669,0},{4082,64668,0},{4075,64666,0}, {4067,64663,0},{4067,64661,0},{4097,64671,0},{4113,64669,0},{4115,64671,0}, {4117,64666,0},{4120,64664,0},{4133,64661,0},{4133,64659,0},{4140,64658,0}, {4152,64656,0},{4153,64658,0},{4155,64656,0},{4167,64653,0},{4170,64663,0}, {4172,64666,0},{4168,64654,0},{4170,64651,0},{4172,64648,0},{4175,64646,0}, {4180,64648,0},{4183,64648,0},{4192,64659,0},{4197,64661,0},{4188,64649,0}, {4197,64648,0},{4212,64646,0},{4213,64651,0},{4212,64654,0},{4213,64654,0}, {4217,64651,0},{4217,64654,0},{4223,64659,0},{4230,64673,0},{4235,64674,0}, {4233,64671,0},{4230,64669,0},{4225,64658,0},{4227,64649,0},{4230,64651,0}, {4228,64654,0},{4233,64653,0},{4233,64659,0},{4243,64671,0},{4243,64666,0}, {4240,64659,0},{4240,64653,0},{4242,64649,0},{4243,64648,0},{4247,64646,0}, {4247,64643,0},{4248,64643,0},{4250,64648,0},{4248,64649,0},{4247,64649,0}, {4247,64654,0},{4247,64653,0},{4250,64654,0},{4257,64653,0},{4260,64659,0}, {4268,64663,0},{4265,64661,0},{4263,64656,0},{4268,64651,0},{4262,64649,0}, {4262,64648,0},{4263,64646,0},{4262,64644,0},{4258,64644,0},{4258,64639,0}, {4255,64638,0},{4253,64636,0},{4253,64633,0},{4258,64633,0},{4260,64629,0}, {4268,64633,0},{4273,64634,0},{4275,64641,0},{4278,64643,0},{4280,64646,0}, {4283,64648,0},{4283,64644,0},{4282,64644,0},{4280,64641,0},{4280,64631,0}, {4278,64631,0},{4275,64628,0},{4277,64626,0},{4282,64623,0},{4283,64626,0}, {4287,64621,0},{4292,64623,0},{4295,64618,0},{4292,64616,0},{4295,64613,0}, {4292,64611,0},{4290,64609,0},{4293,64608,0},{4302,64611,0},{4307,64608,0}, {4307,64611,0},{4310,64611,0},{4310,64614,0},{4312,64614,0},{4310,64618,0}, {4312,64619,0},{4313,64621,0},{4315,64626,0},{4313,64616,0},{4315,64614,0}, {4318,64618,0},{4320,64629,0},{4325,64634,0},{4323,64638,0},{4323,64643,0}, {4378,64746,0},{4377,64749,0},{4372,64751,0},{4373,64749,0},{4368,64749,0}, {4368,64746,0},{4367,64749,0},{4368,64751,0},{4372,64749,0},{4372,64754,0}, {4373,64754,0},{4377,64763,0},{4380,64768,0},{4378,64769,0},{4373,64766,0}, {4377,64771,0},{4373,64774,0},{4370,64774,0},{4373,64779,0},{4373,64788,0}, {4372,64788,0},{4368,64799,0},{4362,64806,0},{4360,64809,0},{4357,64809,0}, {4358,64833,0},{4357,64833,0},{4353,64831,0},{4350,64831,0},{4355,64834,0}, {4357,64834,0},{4358,64841,0},{4357,64864,0},{4358,64871,0},{4358,64876,0}, {4357,64886,0},{4357,64889,0},{4358,64889,0},{4357,64894,0},{4358,64904,0}, {4362,64913,0},{4358,64918,0},{4358,64929,0},{4360,64934,0},{4360,64944,0}, {4365,64946,0},{4365,64949,0},{4368,64951,0},{4365,64958,0},{4358,64966,0}, {4360,64966,0},{4357,64969,0},{4357,64996,0},{4355,64998,0},{4352,64994,0}, {4355,64999,0},{4355,65006,0},{4350,65016,0},{4350,65028,0},{4348,65031,0}, {4348,65039,0},{4348,65041,0},{4343,65063,0},{4342,65083,0},{4342,65086,0}, {4340,65088,0},{4342,65093,0},{4340,65098,0},{4342,65101,0},{4340,65104,0}, {4342,65113,0},{4345,65128,0},{4345,65133,0},{4347,65134,0},{4345,65139,0}, {4347,65139,0},{4350,65143,0},{4352,65154,0},{4350,65159,0},{4347,65153,0}, {4343,65154,0},{4347,65159,0},{4345,65163,0},{4348,65161,0},{4348,65163,0}, {4350,65164,0},{4350,65168,0},{4353,65178,0},{4350,65186,0},{4348,65193,0}, {4347,65193,0},{4345,65186,0},{4342,65189,0},{4345,65191,0},{4342,65211,0}, {4338,65219,0},{4337,65229,0},{4333,65234,0},{4340,65233,0},{4343,65241,0}, {4345,65243,0},{4345,65254,0},{4347,65261,0},{4343,65266,0},{4338,65268,0}, {4342,65269,0},{4340,65284,0},{4332,65301,0},{4332,65318,0},{4332,65321,0}, {4330,65323,0},{4335,65339,0},{4333,65346,0},{4335,65344,0},{4342,65356,0}, {4340,65359,0},{4343,65376,0},{4353,65386,0},{4390,65398,0},{4427,65408,0}, {4450,65411,0},{4455,65409,0},{4467,65416,0},{4465,65423,0},{4467,65431,0}, {4467,65433,0},{4472,65429,0},{4477,65419,0},{4468,65413,0},{4463,65411,0}, {4467,65409,0},{4512,65416,0},{4523,65419,0},{4548,65421,0},{4555,65428,0}, {4557,65429,0},{4555,65431,0},{4552,65431,0},{4548,65436,0},{4545,65443,0}, {4535,65456,0},{4523,65463,0},{4510,65466,0},{4505,65471,0},{4498,65479,0}, {4490,65481,0},{4498,65483,0},{4502,65476,0},{4502,65481,0},{4500,65486,0}, {4503,65484,0},{4505,65476,0},{4508,65471,0},{4513,65469,0},{4535,65464,0}, {4547,65458,0},{4555,65444,0},{4558,65438,0},{4562,65436,0},{4568,65421,0}, {4570,65418,0},{4570,65411,0},{4580,65413,0},{4580,65421,0},{4575,65426,0}, {4572,65438,0},{4578,65426,0},{4587,65421,0},{4587,65424,0},{4590,65424,0}, {4590,65429,0},{4595,65428,0},{4597,65429,0},{4602,65424,0},{4600,65428,0}, {4602,65431,0},{4603,65431,0},{4605,65428,0},{4610,65426,0},{4612,65423,0}, {4612,65424,0},{4615,65421,0},{4615,65416,0},{4617,65414,0},{4622,65418,0}, {4627,65426,0},{4632,65424,0},{4633,65419,0},{4632,65416,0},{4627,65414,0}, {4633,65406,0},{4632,65406,0},{4635,65401,0},{4633,65391,0},{4640,65389,0}, {4642,65386,0},{4642,65373,0},{4645,65373,0},{4645,65368,0},{4648,65361,0}, {4652,65358,0},{4650,65358,0},{4648,65356,0},{4660,65354,0},{4660,65351,0}, {4663,65349,0},{4670,65344,0},{4670,65339,0},{4677,65336,0},{4683,65323,0}, {4690,65323,0},{4692,65326,0},{4693,65328,0},{4695,65331,0},{4700,65333,0}, {4703,65338,0},{4710,65331,0},{4713,65313,0},{4717,65319,0},{4727,65319,0}, {4730,65334,0},{4727,65341,0},{4728,65343,0},{4727,65346,0},{4727,65344,0}, {4725,65346,0},{4722,65356,0},{4722,65363,0},{4723,65356,0},{4728,65348,0}, {4732,65334,0},{4732,65319,0},{4728,65318,0},{4723,65308,0},{4728,65299,0}, {4728,65294,0},{4727,65293,0},{4728,65288,0},{4730,65283,0},{4728,65289,0}, {4730,65293,0},{4733,65288,0},{4732,65286,0},{4735,65286,0},{4738,65281,0}, {4742,65289,0},{4740,65293,0},{4742,65293,0},{4742,65298,0},{4742,65291,0}, {4745,65291,0},{4745,65288,0},{4750,65288,0},{4750,65299,0},{4750,65293,0}, {4753,65284,0},{4752,65273,0},{4755,65279,0},{4753,65273,0},{4752,65274,0}, {4753,65269,0},{4750,65268,0},{4750,65251,0},{4753,65249,0},{4755,65244,0}, {4757,65244,0},{4757,65249,0},{4755,65251,0},{4755,65254,0},{4757,65254,0}, {4755,65256,0},{4755,65263,0},{4757,65264,0},{4760,65268,0},{4763,65266,0}, {4760,65266,0},{4762,65259,0},{4762,65263,0},{4763,65261,0},{4765,65258,0}, {4763,65258,0},{4762,65251,0},{4760,65251,0},{4760,65248,0},{4758,65248,0}, {4758,65244,0},{4760,65244,0},{4760,65243,0},{4763,65243,0},{4765,65238,0}, {4763,65239,0},{4757,65243,0},{4757,65239,0},{4760,65236,0},{4757,65236,0}, {4760,65234,0},{4757,65234,0},{4757,65226,0},{4758,65228,0},{4760,65224,0}, {4750,65224,0},{4747,65228,0},{4747,65223,0},{4752,65221,0},{4758,65223,0}, {4762,65221,0},{4763,65216,0},{4768,65218,0},{4770,65224,0},{4773,65224,0}, {4772,65223,0},{4775,65223,0},{4773,65221,0},{4775,65218,0},{4773,65219,0}, {4772,65219,0},{4770,65216,0},{4768,65216,0},{4765,65214,0},{4770,65204,0}, {4770,65201,0},{4768,65208,0},{4770,65204,0},{4772,65201,0},{4778,65208,0}, {4773,65201,0},{4773,65196,0},{4773,65199,0},{4772,65199,0},{4770,65191,0}, {4777,65183,0},{4778,65168,0},{4782,65164,0},{4780,65159,0},{4780,65151,0}, {4790,65141,0},{4790,65138,0},{4787,65138,0},{4785,65133,0},{4787,65136,0}, {4787,65128,0},{4792,65123,0},{4790,65121,0},{4787,65124,0},{4785,65121,0}, {4787,65119,0},{4788,65118,0},{4787,65118,0},{4783,65118,0},{4783,65121,0}, {4780,65118,0},{4780,65111,0},{4780,65099,0},{4783,65099,0},{4783,65101,0}, {4787,65101,0},{4797,65093,0},{4802,65083,0},{4800,65079,0},{4803,65073,0}, {4803,65063,0},{4807,65066,0},{4808,65081,0},{4812,65099,0},{4810,65106,0}, {4812,65108,0},{4815,65108,0},{4820,65104,0},{4820,65099,0},{4823,65093,0}, {4823,65086,0},{4820,65084,0},{4817,65081,0},{4820,65081,0},{4823,65079,0}, {4825,65081,0},{4827,65074,0},{4828,65074,0},{4828,65078,0},{4832,65078,0}, {4833,65079,0},{4833,65083,0},{4830,65081,0},{4828,65086,0},{4830,65106,0}, {4828,65111,0},{4830,65118,0},{4830,65113,0},{4832,65113,0},{4830,65111,0}, {4832,65108,0},{4832,65104,0},{4835,65109,0},{4835,65104,0},{4833,65098,0}, {4833,65096,0},{4835,65096,0},{4833,65091,0},{4837,65093,0},{4843,65106,0}, {4835,65076,0},{4833,65059,0},{4837,65058,0},{4838,65059,0},{4843,65058,0}, {4847,65059,0},{4847,65061,0},{4852,65058,0},{4857,65066,0},{4857,65078,0}, {4858,65076,0},{4860,65076,0},{4860,65083,0},{4862,65079,0},{4863,65083,0}, {4863,65086,0},{4863,65094,0},{4865,65094,0},{4868,65103,0},{4867,65106,0}, {4863,65106,0},{4865,65113,0},{4865,65116,0},{4867,65114,0},{4868,65118,0}, {4870,65126,0},{4868,65129,0},{4868,65131,0},{4872,65131,0},{4873,65138,0}, {4865,65141,0},{4868,65144,0},{4867,65146,0},{4865,65146,0},{4863,65151,0}, {4868,65149,0},{4867,65151,0},{4868,65153,0},{4870,65151,0},{4873,65154,0}, {4870,65169,0},{4870,65171,0},{4868,65173,0},{4868,65178,0},{4873,65178,0}, {4873,65183,0},{4877,65178,0},{4880,65179,0},{4880,65183,0},{4883,65183,0}, {4883,65189,0},{4882,65191,0},{4882,65194,0},{4880,65193,0},{4883,65204,0}, {4883,65208,0},{4887,65214,0},{4883,65216,0},{4880,65214,0},{4885,65218,0}, {4887,65226,0},{4887,65228,0},{4882,65228,0},{4875,65224,0},{4882,65229,0}, {4882,65234,0},{4880,65236,0},{4878,65231,0},{4877,65239,0},{4877,65241,0}, {4875,65243,0},{4873,65243,0},{4865,65254,0},{4860,65254,0},{4855,65264,0}, {4853,65263,0},{4850,65268,0},{4853,65269,0},{4853,65273,0},{4860,65281,0}, {4862,65289,0},{4863,65289,0},{4865,65288,0},{4865,65294,0},{4863,65294,0}, {4865,65298,0},{4867,65303,0},{4870,65304,0},{4867,65308,0},{4862,65303,0}, {4865,65311,0},{4863,65313,0},{4858,65314,0},{4862,65316,0},{4858,65318,0}, {4862,65321,0},{4862,65323,0},{4863,65321,0},{4865,65326,0},{4865,65331,0}, {4853,65339,0},{4852,65338,0},{4853,65343,0},{4853,65339,0},{4858,65338,0}, {4858,65341,0},{4860,65336,0},{4865,65333,0},{4867,65336,0},{4868,65338,0}, {4868,65343,0},{4870,65343,0},{4872,65351,0},{4870,65351,0},{4865,65349,0}, {4863,65351,0},{4860,65359,0},{4862,65373,0},{4863,65378,0},{4863,65386,0}, {4865,65394,0},{4863,65401,0},{4867,65396,0},{4868,65386,0},{4872,65384,0}, {4875,65379,0},{4883,65379,0},{4883,65376,0},{4887,65378,0},{4893,65381,0}, {4895,65379,0},{4902,65381,0},{4902,65386,0},{4903,65383,0},{4902,65379,0}, {4900,65378,0},{4903,65376,0},{4908,65378,0},{4910,65374,0},{4913,65376,0}, {4913,65379,0},{4915,65376,0},{4922,65374,0},{4922,65381,0},{4923,65374,0}, {4922,65374,0},{4922,65373,0},{4928,65369,0},{4932,65366,0},{4933,65368,0}, {4935,65366,0},{4933,65364,0},{4938,65359,0},{4938,65354,0},{4945,65354,0}, {4950,65351,0},{4953,65348,0},{4958,65353,0},{4963,65351,0},{4965,65349,0}, {4968,65341,0},{4973,65343,0},{4970,65348,0},{4972,65351,0},{4968,65354,0}, {4967,65368,0},{4967,65369,0},{4965,65376,0},{4967,65384,0},{4970,65389,0}, {4970,65411,0},{4962,65413,0},{4962,65411,0},{4958,65409,0},{4958,65406,0}, {4955,65406,0},{4940,65419,0},{4935,65418,0},{4935,65423,0},{4933,65423,0}, {4935,65426,0},{4937,65424,0},{4940,65429,0},{4940,65438,0},{4940,65444,0}, {4937,65453,0},{4933,65496,0},{4928,65511,0},{4927,65513,0},{4928,65516,0}, {4930,65526,0},{4933,0,0},{4937,8,0},{4942,15,0},{4943,22,0},{4945,42,0}, {4948,50,0},{4945,35,0},{4947,25,0},{4948,18,0},{4947,18,0},{4947,17,0}, {4952,8,0},{4968,17,0},{4972,22,0},{4975,35,0},{4987,63,0},{4987,78,0}, {4992,97,0},{4993,107,0},{4998,123,0},{5010,143,0},{5020,152,0},{5022,155,0}, {5020,158,0},{5018,167,0},{5020,165,0},{5022,167,0},{5022,163,0},{5028,153,0}, {5037,155,0},{5037,162,0},{5040,155,0},{5053,158,0},{5055,160,0},{5058,158,0}, {5068,157,0},{5078,160,0},{5087,158,0},{5088,165,0},{5095,173,0},{5098,185,0}, {5102,212,0},{5105,232,0},{5105,242,0},{5108,255,0},{5132,310,0},{5138,338,0}, {5137,337,128},{5142,353,0},{5138,368,0},{5135,373,0},{5133,387,0},{5137,397,0}, {5140,398,0},{5140,403,0},{5137,407,0},{5135,412,0},{5137,422,0},{5130,427,0}, {5128,432,0},{5127,430,0},{5128,433,0},{5132,428,0},{5142,425,0},{5140,415,0}, {5142,408,0},{5145,398,0},{5145,393,0},{5140,390,0},{5140,380,0},{5142,375,0}, {5147,368,0},{5145,362,0},{5145,353,0},{5153,343,0},{5160,357,0},{5160,383,0}, {5160,387,0},{5157,390,0},{5155,387,0},{5153,397,0},{5150,405,0},{5145,410,0}, {5143,415,0},{5145,428,0},{5148,428,0},{5152,423,0},{5153,408,0},{5158,400,0}, {5162,408,0},{5160,417,0},{5158,422,0},{5162,420,0},{5162,413,0},{5165,412,0}, {5162,398,0},{5163,390,0},{5167,388,0},{5170,382,0},{5167,372,0},{5168,368,0}, {5172,368,0},{5173,372,0},{5175,383,0},{5178,387,0},{5182,388,0},{5185,398,0}, {5183,405,0},{5183,408,0},{5188,403,0},{5192,405,0},{5198,402,0},{5198,412,0}, {5200,415,0},{5223,443,0},{5245,457,0},{5247,460,0},{5248,458,0},{5275,465,0}, {5297,473,0},{5297,482,0},{5292,482,0},{5290,488,0},{5297,510,0},{5307,528,0}, {5308,538,0},{5322,545,0},{5328,558,0},{5340,598,0},{5342,625,0},{5340,632,0}, {5347,675,0},{5343,687,0},{5340,688,0},{5335,690,0},{5332,695,0},{5330,705,0}, {5330,708,0},{5327,707,0},{5325,710,0},{5323,718,0},{5325,722,0},{5492,867,128}, {5483,863,0},{5475,870,0},{5473,868,0},{5468,882,0},{5462,885,0},{5460,882,0}, {5460,890,0},{5450,902,0},{5445,900,0},{5445,895,0},{5440,887,0},{5440,863,0}, {5437,863,0},{5435,870,0},{5435,862,0},{5433,860,0},{5428,863,0},{5427,868,0}, {5430,873,0},{5428,890,0},{5432,897,0},{5427,892,0},{5425,885,0},{5418,882,0}, {5412,887,0},{5415,895,0},{5415,898,0},{5412,898,0},{5408,902,0},{5403,900,0}, {5402,898,0},{5405,888,0},{5403,883,0},{5398,888,0},{5395,890,0},{5388,898,0}, {5390,903,0},{5388,922,0},{5385,933,0},{5382,940,0},{5373,943,0},{5370,953,0}, {5362,957,0},{5357,968,0},{5355,982,0},{5353,983,0},{5355,968,0},{5358,957,0}, {5387,928,0},{5385,908,0},{5385,902,0},{5383,902,0},{5383,890,0},{5383,880,0}, {5385,873,0},{5390,867,0},{5388,860,0},{5385,858,0},{5370,848,0},{5365,848,0}, {5353,857,0},{5347,850,0},{5335,850,0},{5347,848,0},{5353,855,0},{5357,838,0}, {5362,835,0},{5362,832,0},{5360,825,0},{5353,823,0},{5352,823,0},{5352,832,0}, {5343,830,0},{5340,823,0},{5340,820,0},{5345,815,0},{5343,810,0},{5347,807,0}, {5350,807,0},{5352,817,0},{5353,817,0},{5357,815,0},{5357,812,0},{5358,812,0}, {5363,805,0},{5370,803,0},{5372,797,0},{5370,768,0},{5367,752,0},{5368,747,0}, {5368,730,0},{5367,723,0},{5358,710,0},{5357,708,0},{5353,715,0},{5352,710,0}, {5350,705,0},{5340,702,0},{5333,705,0},{5332,733,0},{5330,737,0},{5332,728,0}, {5330,723,0},{5325,723,0},{5323,720,0},{5490,867,128},{5495,868,0},{5502,863,0}, {5513,868,0},{5513,857,0},{5513,855,0},{5508,857,0},{5507,850,0},{5507,847,0}, {5512,845,0},{5518,848,0},{5520,850,0},{5518,860,0},{5515,857,0},{5513,865,0}, {5513,868,0},{5528,865,0},{5533,867,0},{5543,862,0},{5545,858,0},{5545,843,0}, {5555,830,0},{5558,832,0},{5558,827,0},{5555,823,0},{5553,827,0},{5552,825,0}, {5550,830,0},{5547,832,0},{5552,820,0},{5555,808,0},{5572,818,0},{5597,815,0}, {5587,820,0},{5582,818,0},{5583,830,0},{5590,840,0},{5603,830,0},{5608,823,0}, {5610,813,0},{5608,813,0},{5598,815,0},{5598,812,0},{5607,810,0},{5622,813,0}, {5635,812,0},{5632,815,0},{5632,825,0},{5628,825,0},{5632,832,0},{5632,828,0}, {5637,818,0},{5640,818,0},{5638,825,0},{5640,823,0},{5642,818,0},{5642,813,0}, {5637,812,0},{5658,813,0},{5667,818,0},{5668,823,0},{5662,820,0},{5658,823,0}, {5658,830,0},{5655,830,0},{5657,833,0},{5657,842,0},{5653,852,0},{5657,855,0}, {5655,858,0},{5648,860,0},{5647,867,0},{5648,875,0},{5652,873,0},{5655,875,0}, {5658,870,0},{5660,868,0},{5662,868,0},{5662,875,0},{5667,882,0},{5668,890,0}, {5670,892,0},{5672,885,0},{5678,892,0},{5678,897,0},{5680,905,0},{5678,908,0}, {5672,915,0},{5665,912,0},{5662,905,0},{5655,907,0},{5655,910,0},{5660,912,0}, {5660,915,0},{5662,913,0},{5663,915,0},{5662,917,0},{5660,928,0},{5657,925,0}, {5652,930,0},{5653,938,0},{5657,937,0},{5655,932,0},{5657,928,0},{5663,932,0}, {5668,930,0},{5668,922,0},{5665,920,0},{5667,917,0},{5675,925,0},{5677,918,0}, {5680,917,0},{5685,920,0},{5687,917,0},{5690,918,0},{5698,932,0},{5700,942,0}, {5698,958,0},{5695,953,0},{5692,957,0},{5695,957,0},{5698,965,0},{5703,970,0}, {5703,985,0},{5705,995,0},{5705,993,0},{5705,988,0},{5710,978,0},{5705,973,0}, {5705,962,0},{5703,955,0},{5703,952,0},{5705,952,0},{5698,923,0},{5705,910,0}, {5712,903,0},{5710,902,0},{5703,912,0},{5702,912,0},{5698,892,0},{5702,887,0}, {5698,885,0},{5700,880,0},{5697,882,0},{5693,875,0},{5693,868,0},{5688,862,0}, {5685,862,0},{5678,848,0},{5675,850,0},{5670,848,0},{5670,852,0},{5668,852,0}, {5667,843,0},{5667,848,0},{5665,852,0},{5667,858,0},{5660,858,0},{5657,855,0}, {5658,852,0},{5663,848,0},{5668,833,0},{5675,830,0},{5677,827,0},{5675,825,0}, {5672,827,0},{5670,825,0},{5675,823,0},{5682,825,0},{5693,837,0},{5710,858,0}, {5708,875,0},{5710,883,0},{5715,902,0},{5713,918,0},{5715,940,0},{5723,958,0}, {5745,977,0},{5757,995,0},{5758,1012,0},{5760,1027,0},{5772,1048,0},{5773,1055,0}, {5772,1063,0},{5765,1047,0},{5758,1042,0},{5752,1043,0},{5747,1050,0},{5743,1055,0}, {5737,1052,0},{5722,1053,0},{5713,1043,0},{5698,1033,0},{5698,1025,0},{5698,1020,0}, {5708,1002,0},{5708,998,0},{5705,995,0},{5707,998,0},{5705,1002,0},{5698,1017,0}, {5697,1028,0},{5682,1025,0},{5670,1033,0},{5668,1030,0},{5670,1025,0},{5670,1015,0}, {5668,1018,0},{5668,1025,0},{5665,1033,0},{5662,1035,0},{5655,1022,0},{5650,1022,0}, {5647,1018,0},{5647,1023,0},{5655,1023,0},{5658,1032,0},{5653,1038,0},{5650,1047,0}, {5653,1077,0},{5652,1083,0},{5643,1095,0},{5638,1090,0},{5633,1090,0},{5620,1072,0}, {5613,1070,0},{5613,1068,0},{5617,1063,0},{5620,1067,0},{5622,1062,0},{5622,1057,0}, {5617,1052,0},{5612,1055,0},{5610,1053,0},{5610,1050,0},{5613,1047,0},{5613,1050,0}, {5617,1050,0},{5615,1038,0},{5620,1033,0},{5622,1040,0},{5620,1043,0},{5623,1043,0}, {5627,1048,0},{5628,1040,0},{5627,1037,0},{5625,1033,0},{5617,1023,0},{5610,1023,0}, {5605,1027,0},{5602,1023,0},{5602,1028,0},{5598,1025,0},{5592,1025,0},{5588,1018,0}, {5583,1018,0},{5583,1015,0},{5587,1013,0},{5588,1010,0},{5587,998,0},{5585,995,0}, {5585,987,0},{5583,990,0},{5582,1005,0},{5575,1002,0},{5575,1007,0},{5573,1000,0}, {5570,1002,0},{5567,982,0},{5568,973,0},{5572,967,0},{5570,955,0},{5570,957,0}, {5570,963,0},{5565,972,0},{5562,975,0},{5562,985,0},{5557,975,0},{5555,972,0}, {5553,970,0},{5552,962,0},{5552,957,0},{5550,955,0},{5550,950,0},{5548,952,0}, {5548,962,0},{5547,967,0},{5545,965,0},{5543,960,0},{5542,958,0},{5540,962,0}, {5537,960,0},{5535,962,0},{5532,962,0},{5530,963,0},{5528,962,0},{5523,970,0}, {5517,962,0},{5518,958,0},{5515,948,0},{5513,952,0},{5513,947,0},{5512,947,0}, {5510,950,0},{5507,952,0},{5503,943,0},{5503,953,0},{5505,957,0},{5503,958,0}, {5500,962,0},{5498,972,0},{5488,977,0},{5488,970,0},{5487,975,0},{5483,973,0}, {5485,968,0},{5485,962,0},{5488,963,0},{5490,960,0},{5492,965,0},{5493,962,0}, {5492,958,0},{5488,955,0},{5487,950,0},{5482,945,0},{5395,1090,128},{5398,1087,0}, {5400,1078,0},{5405,1075,0},{5410,1080,0},{5410,1088,0},{5420,1110,0},{5435,1107,0}, {5437,1112,0},{5438,1113,0},{5437,1105,0},{5438,1093,0},{5430,1077,0},{5432,1068,0}, {5437,1062,0},{5443,1033,0},{5442,1028,0},{5442,1023,0},{5433,1018,0},{5432,1015,0}, {5437,1013,0},{5440,1020,0},{5443,1017,0},{5447,1020,0},{5448,1012,0},{5445,987,0}, {5448,985,0},{5452,998,0},{5455,1003,0},{5467,1003,0},{5467,993,0},{5470,998,0}, {5470,1002,0},{5477,997,0},{5480,990,0},{5477,990,0},{5475,987,0},{5477,982,0}, {5480,972,0},{5482,958,0},{5487,958,0},{5483,955,0},{5483,952,0},{5480,945,0}, {5483,945,0},{5373,1427,128},{5377,1423,0},{5373,1418,0},{5373,1408,0}, {5377,1397,0},{5383,1385,0},{5385,1382,0},{5388,1382,0},{5392,1392,0},{5403,1375,0}, {5405,1378,0},{5410,1380,0},{5415,1370,0},{5417,1372,0},{5413,1363,0},{5412,1348,0}, {5408,1350,0},{5410,1345,0},{5415,1342,0},{5415,1338,0},{5417,1340,0},{5417,1332,0}, {5418,1335,0},{5420,1330,0},{5423,1328,0},{5423,1322,0},{5427,1318,0},{5425,1315,0}, {5427,1317,0},{5428,1312,0},{5433,1307,0},{5437,1310,0},{5440,1303,0},{5443,1303,0}, {5440,1290,0},{5437,1288,0},{5435,1282,0},{5438,1278,0},{5437,1277,0},{5437,1273,0}, {5440,1272,0},{5437,1268,0},{5442,1272,0},{5437,1260,0},{5438,1257,0},{5435,1255,0}, {5433,1248,0},{5430,1248,0},{5428,1242,0},{5427,1242,0},{5425,1245,0},{5425,1238,0}, {5430,1237,0},{5440,1247,0},{5437,1253,0},{5438,1255,0},{5438,1260,0},{5440,1258,0}, {5442,1263,0},{5442,1267,0},{5443,1270,0},{5442,1280,0},{5442,1292,0},{5445,1290,0}, {5445,1265,0},{5445,1255,0},{5448,1253,0},{5430,1235,0},{5425,1220,0},{5418,1210,0}, {5417,1213,0},{5415,1210,0},{5410,1212,0},{5412,1208,0},{5418,1208,0},{5415,1182,0}, {5415,1168,0},{5410,1162,0},{5410,1163,0},{5403,1158,0},{5403,1152,0},{5402,1153,0}, {5397,1147,0},{5393,1148,0},{5390,1145,0},{5395,1133,0},{5393,1130,0},{5393,1125,0}, {5398,1125,0},{5398,1120,0},{5402,1118,0},{5400,1105,0},{5395,1090,0},{5387,1422,128}, {5380,1435,0},{5382,1433,0},{5385,1442,0},{5387,1442,0},{5388,1437,0},{5390,1438,0}, {5390,1443,0},{5387,1443,0},{5385,1457,0},{5380,1458,0},{5385,1463,0},{5377,1462,0}, {5375,1457,0},{5370,1453,0},{5367,1457,0},{5365,1462,0},{5360,1460,0},{5367,1453,0}, {5368,1442,0},{5373,1433,0},{5373,1428,0},{5370,1430,0},{5370,1422,0},{5375,1427,0}, {5393,1423,128},{5407,1400,0},{5410,1388,0},{5417,1382,0},{5417,1377,0}, {5415,1375,0},{5410,1382,0},{5402,1378,0},{5402,1380,0},{5405,1387,0},{5403,1388,0}, {5400,1385,0},{5402,1390,0},{5407,1392,0},{5405,1398,0},{5398,1405,0},{5393,1405,0}, {5395,1402,0},{5397,1402,0},{5397,1398,0},{5393,1397,0},{5398,1397,0},{5398,1390,0}, {5392,1393,0},{5388,1390,0},{5387,1383,0},{5385,1382,0},{5383,1390,0},{5385,1400,0}, {5387,1403,0},{5387,1408,0},{5387,1423,0},{5447,1962,128},{5440,1952,0}, {5438,1942,0},{5435,1905,0},{5435,1888,0},{5438,1872,0},{5442,1867,0},{5443,1860,0}, {5445,1857,0},{5455,1857,0},{5463,1852,0},{5463,1850,0},{5463,1847,0},{5470,1848,0}, {5473,1840,0},{5478,1843,0},{5470,1870,0},{5460,1882,0},{5463,1883,0},{5470,1870,0}, {5483,1833,0},{5483,1792,0},{5477,1758,0},{5473,1727,0},{5467,1707,0},{5460,1692,0}, {5455,1655,0},{5450,1645,0},{5450,1648,0},{5447,1647,0},{5447,1643,0},{5448,1643,0}, {5437,1628,0},{5438,1632,0},{5435,1633,0},{5432,1625,0},{5432,1623,0},{5435,1627,0}, {5428,1613,0},{5430,1620,0},{5428,1622,0},{5427,1622,0},{5427,1617,0},{5427,1607,0}, {5428,1613,0},{5427,1605,0},{5425,1585,0},{5420,1565,0},{5415,1532,0},{5405,1493,0}, {5403,1475,0},{5397,1452,0},{5392,1442,0},{5393,1423,0},{5948,2803,128}, {5942,2795,0},{5940,2785,0},{5945,2743,0},{5945,2697,0},{5948,2682,0},{5955,2665,0}, {5953,2650,0},{5955,2643,0},{5958,2625,0},{5958,2610,0},{5962,2605,0},{5963,2598,0}, {5958,2597,0},{5963,2588,0},{5958,2585,0},{5957,2582,0},{5958,2578,0},{5963,2577,0}, {5967,2570,0},{5965,2567,0},{5958,2572,0},{5957,2567,0},{5957,2563,0},{5967,2548,0}, {5957,2548,0},{5953,2555,0},{5952,2552,0},{5953,2542,0},{5948,2540,0},{5953,2512,0}, {5953,2510,0},{5950,2510,0},{5952,2503,0},{5950,2492,0},{5955,2487,0},{5957,2478,0}, {5952,2478,0},{5948,2482,0},{5945,2477,0},{5945,2473,0},{5950,2468,0},{5947,2467,0}, {5947,2462,0},{5945,2467,0},{5943,2463,0},{5947,2457,0},{5943,2450,0},{5947,2440,0}, {5947,2433,0},{5943,2432,0},{5942,2430,0},{5940,2425,0},{5940,2417,0},{5937,2422,0}, {5935,2422,0},{5940,2408,0},{5938,2403,0},{5935,2402,0},{5930,2410,0},{5927,2408,0}, {5928,2403,0},{5927,2390,0},{5928,2383,0},{5927,2372,0},{5923,2375,0},{5923,2373,0}, {5925,2365,0},{5922,2357,0},{5922,2347,0},{5918,2347,0},{5913,2352,0},{5907,2352,0}, {5908,2350,0},{5907,2343,0},{5902,2343,0},{5902,2340,0},{5898,2345,0},{5897,2355,0}, {5900,2357,0},{5902,2362,0},{5905,2357,0},{5902,2362,0},{5897,2363,0},{5895,2358,0}, {5893,2343,0},{5890,2342,0},{5885,2348,0},{5882,2353,0},{5880,2347,0},{5877,2343,0}, {5878,2360,0},{5878,2375,0},{5880,2378,0},{5877,2388,0},{5878,2378,0},{5877,2378,0}, {5873,2380,0},{5872,2378,0},{5875,2368,0},{5873,2360,0},{5875,2353,0},{5873,2352,0}, {5870,2355,0},{5870,2350,0},{5860,2352,0},{5857,2350,0},{5858,2355,0},{5857,2357,0}, {5852,2363,0},{5853,2368,0},{5843,2367,0},{5840,2372,0},{5833,2373,0},{5835,2383,0}, {5833,2385,0},{5832,2388,0},{5832,2397,0},{5823,2412,0},{5827,2415,0},{5828,2425,0}, {5838,2433,0},{5838,2447,0},{5832,2457,0},{5828,2455,0},{5825,2447,0},{5807,2445,0}, {5797,2437,0},{5782,2428,0},{5773,2430,0},{5768,2435,0},{5762,2438,0},{5753,2437,0}, {5733,2442,0},{5723,2440,0},{5712,2422,0},{5707,2403,0},{5702,2398,0},{5697,2378,0}, {5697,2368,0},{5698,2358,0},{5703,2350,0},{5705,2335,0},{5710,2327,0},{5717,2323,0}, {5723,2320,0},{5737,2313,0},{5742,2295,0},{5750,2285,0},{5758,2263,0},{5768,2258,0}, {5775,2260,0},{5773,2247,0},{5760,2200,0},{5760,2187,0},{5757,2172,0},{5728,2142,0}, {5720,2142,0},{5707,2142,0},{5698,2137,0},{5692,2127,0},{5683,2105,0},{5668,2105,0}, {5653,2098,0},{5650,2107,0},{5640,2108,0},{5638,2107,0},{5640,2103,0},{5645,2105,0}, {5652,2102,0},{5650,2100,0},{5643,2100,0},{5637,2097,0},{5630,2098,0},{5623,2098,0}, {5613,2103,0},{5605,2107,0},{5592,2105,0},{5578,2107,0},{5573,2108,0},{5568,2115,0}, {5547,2125,0},{5542,2125,0},{5533,2118,0},{5537,2125,0},{5533,2127,0},{5528,2128,0}, {5528,2127,0},{5520,2127,0},{5520,2118,0},{5495,2125,0},{5490,2108,0},{5490,2107,0}, {5490,2098,0},{5490,2087,0},{5493,2078,0},{5493,2057,0},{5497,2053,0},{5515,2083,0}, {5523,2090,0},{5527,2098,0},{5528,2098,0},{5533,2105,0},{5537,2105,0},{5542,2110,0}, {5543,2108,0},{5557,2113,0},{5568,2113,0},{5572,2108,0},{5553,2110,0},{5542,2105,0}, {5528,2093,0},{5517,2082,0},{5503,2063,0},{5495,2042,0},{5495,2030,0},{5497,2027,0}, {5495,2003,0},{5495,1997,0},{5487,1992,0},{5477,1997,0},{5472,1993,0},{5470,1990,0}, {5467,1990,0},{5455,1977,0},{5447,1963,0},{6057,2787,128},{6052,2790,0}, {6053,2792,0},{6052,2805,0},{6053,2807,0},{6053,2815,0},{6055,2815,0},{6053,2822,0}, {6057,2823,0},{6060,2828,0},{6060,2833,0},{6062,2832,0},{6062,2838,0},{6067,2840,0}, {6068,2858,0},{6073,2867,0},{6072,2873,0},{6067,2873,0},{6067,2865,0},{6062,2868,0}, {6062,2863,0},{6063,2858,0},{6060,2855,0},{6057,2860,0},{6060,2862,0},{6058,2865,0}, {6057,2867,0},{6047,2872,0},{6045,2868,0},{6052,2853,0},{6055,2850,0},{6057,2843,0}, {6043,2858,0},{6038,2860,0},{6033,2878,0},{6037,2882,0},{6032,2883,0},{6025,2897,0}, {6018,2902,0},{6017,2917,0},{6017,2942,0},{6020,2955,0},{6018,2977,0},{6013,2988,0}, {6008,2990,0},{6002,2995,0},{5998,3022,0},{5997,3025,0},{5995,3020,0},{5988,3022,0}, {5987,3015,0},{5987,3003,0},{5993,2977,0},{6000,2920,0},{5998,2910,0},{5997,2905,0}, {5993,2903,0},{5993,2898,0},{5990,2903,0},{5983,2898,0},{5982,2888,0},{5978,2883,0}, {5980,2878,0},{5978,2873,0},{5978,2870,0},{5982,2867,0},{5983,2858,0},{5987,2853,0}, {5985,2850,0},{5982,2843,0},{5970,2842,0},{5967,2837,0},{5968,2822,0},{5975,2818,0}, {5980,2808,0},{5977,2802,0},{5970,2800,0},{5960,2807,0},{5955,2807,0},{5948,2803,0}, {6582,2417,128},{6578,2418,0},{6577,2423,0},{6578,2425,0},{6582,2423,0}, {6577,2442,0},{6580,2445,0},{6580,2453,0},{6582,2455,0},{6588,2462,0},{6592,2470,0}, {6588,2470,0},{6588,2463,0},{6582,2458,0},{6578,2455,0},{6573,2455,0},{6570,2460,0}, {6568,2467,0},{6563,2467,0},{6563,2473,0},{6565,2478,0},{6565,2490,0},{6562,2493,0}, {6562,2507,0},{6555,2512,0},{6555,2522,0},{6552,2532,0},{6548,2535,0},{6542,2535,0}, {6537,2530,0},{6538,2527,0},{6533,2533,0},{6525,2528,0},{6525,2532,0},{6523,2530,0}, {6522,2533,0},{6522,2528,0},{6518,2527,0},{6515,2522,0},{6512,2522,0},{6508,2537,0}, {6495,2545,0},{6495,2542,0},{6495,2538,0},{6498,2532,0},{6498,2522,0},{6497,2518,0}, {6490,2530,0},{6490,2537,0},{6483,2537,0},{6482,2532,0},{6482,2523,0},{6483,2527,0}, {6483,2520,0},{6488,2517,0},{6488,2512,0},{6490,2512,0},{6492,2508,0},{6487,2492,0}, {6485,2473,0},{6483,2473,0},{6482,2467,0},{6478,2468,0},{6480,2458,0},{6480,2455,0}, {6477,2458,0},{6477,2453,0},{6472,2453,0},{6468,2443,0},{6463,2438,0},{6452,2435,0}, {6452,2428,0},{6448,2427,0},{6448,2422,0},{6445,2422,0},{6443,2410,0},{6440,2408,0}, {6438,2400,0},{6433,2398,0},{6428,2392,0},{6425,2395,0},{6427,2388,0},{6425,2385,0}, {6422,2378,0},{6420,2372,0},{6417,2372,0},{6413,2365,0},{6410,2362,0},{6410,2357,0}, {6405,2362,0},{6402,2362,0},{6403,2350,0},{6403,2347,0},{6405,2342,0},{6405,2338,0}, {6403,2338,0},{6395,2337,0},{6392,2342,0},{6390,2338,0},{6388,2315,0},{6387,2317,0}, {6385,2313,0},{6385,2307,0},{6382,2298,0},{6375,2300,0},{6380,2295,0},{6380,2290,0}, {6375,2293,0},{6373,2287,0},{6372,2290,0},{6372,2283,0},{6370,2290,0},{6368,2285,0}, {6363,2282,0},{6363,2278,0},{6363,2273,0},{6370,2268,0},{6370,2265,0},{6368,2263,0}, {6370,2258,0},{6365,2258,0},{6365,2253,0},{6362,2250,0},{6357,2255,0},{6357,2250,0}, {6355,2245,0},{6345,2240,0},{6348,2238,0},{6350,2233,0},{6352,2233,0},{6352,2228,0}, {6348,2227,0},{6342,2240,0},{6342,2233,0},{6347,2225,0},{6345,2218,0},{6343,2218,0}, {6335,2235,0},{6332,2237,0},{6327,2233,0},{6330,2228,0},{6328,2225,0},{6323,2222,0}, {6325,2218,0},{6322,2217,0},{6323,2213,0},{6322,2208,0},{6323,2205,0},{6323,2203,0}, {6320,2200,0},{6318,2197,0},{6313,2197,0},{6317,2188,0},{6325,2188,0},{6323,2180,0}, {6325,2175,0},{6322,2170,0},{6320,2175,0},{6322,2167,0},{6320,2165,0},{6320,2163,0}, {6323,2155,0},{6322,2150,0},{6318,2150,0},{6317,2155,0},{6317,2150,0},{6312,2152,0}, {6312,2157,0},{6308,2157,0},{6302,2168,0},{6302,2160,0},{6307,2150,0},{6303,2148,0}, {6305,2143,0},{6303,2143,0},{6295,2147,0},{6293,2142,0},{6287,2137,0},{6287,2125,0}, {6287,2123,0},{6280,2120,0},{6278,2117,0},{6278,2113,0},{6277,2110,0},{6273,2113,0}, {6272,2117,0},{6268,2113,0},{6267,2108,0},{6260,2107,0},{6262,2110,0},{6260,2112,0}, {6260,2117,0},{6258,2122,0},{6255,2113,0},{6252,2115,0},{6250,2112,0},{6245,2112,0}, {6245,2115,0},{6240,2113,0},{6242,2120,0},{6240,2118,0},{6233,2122,0},{6237,2122,0}, {6240,2127,0},{6237,2125,0},{6233,2128,0},{6235,2133,0},{6223,2132,0},{6227,2135,0}, {6223,2135,0},{6220,2138,0},{6218,2138,0},{6217,2133,0},{6210,2132,0},{6212,2128,0}, {6198,2123,0},{6198,2128,0},{6195,2128,0},{6193,2132,0},{6193,2138,0},{6190,2142,0}, {6188,2140,0},{6180,2148,0},{6175,2147,0},{6170,2158,0},{6172,2153,0},{6170,2152,0}, {6165,2153,0},{6152,2172,0},{6157,2150,0},{6155,2145,0},{6152,2150,0},{6152,2152,0}, {6152,2157,0},{6148,2158,0},{6148,2142,0},{6145,2152,0},{6142,2157,0},{6140,2145,0}, {6137,2153,0},{6132,2155,0},{6128,2155,0},{6127,2150,0},{6127,2152,0},{6125,2148,0}, {6123,2153,0},{6120,2157,0},{6120,2150,0},{6117,2150,0},{6117,2145,0},{6115,2145,0}, {6115,2147,0},{6113,2143,0},{6110,2147,0},{6108,2145,0},{6105,2148,0},{6107,2138,0}, {6105,2137,0},{6105,2140,0},{6103,2140,0},{6105,2130,0},{6090,2142,0},{6092,2138,0}, {6090,2135,0},{6088,2137,0},{6087,2143,0},{6087,2132,0},{6085,2135,0},{6082,2132,0}, {6082,2137,0},{6078,2137,0},{6077,2142,0},{6075,2138,0},{6073,2147,0},{6072,2142,0}, {6068,2143,0},{6068,2135,0},{6065,2137,0},{6060,2147,0},{6060,2142,0},{6058,2142,0}, {6057,2145,0},{6057,2150,0},{6057,2158,0},{6057,2152,0},{6052,2158,0},{6048,2157,0}, {6048,2158,0},{6050,2165,0},{6057,2167,0},{6058,2173,0},{6062,2183,0},{6060,2183,0}, {6058,2185,0},{6058,2182,0},{6057,2180,0},{6048,2178,0},{6048,2187,0},{6052,2183,0}, {6052,2195,0},{6048,2195,0},{6048,2198,0},{6047,2198,0},{6043,2205,0},{6047,2210,0}, {6043,2212,0},{6043,2218,0},{6037,2228,0},{6040,2247,0},{6040,2248,0},{6037,2247,0}, {6037,2258,0},{6040,2263,0},{6025,2245,0},{6025,2253,0},{6028,2263,0},{6027,2263,0}, {6025,2257,0},{6023,2258,0},{6020,2253,0},{6025,2277,0},{6030,2290,0},{6030,2300,0}, {6035,2305,0},{6035,2308,0},{6032,2303,0},{6028,2302,0},{6022,2290,0},{6018,2287,0}, {6017,2288,0},{6015,2288,0},{6012,2297,0},{6010,2297,0},{6013,2302,0},{6012,2305,0}, {6007,2298,0},{6003,2305,0},{6005,2318,0},{6003,2327,0},{6000,2322,0},{5997,2312,0}, {5992,2310,0},{5995,2313,0},{5993,2317,0},{5995,2318,0},{5993,2322,0},{6002,2330,0}, {6002,2332,0},{5992,2325,0},{5988,2317,0},{5985,2302,0},{5980,2288,0},{5982,2317,0}, {5983,2320,0},{5987,2320,0},{5993,2335,0},{6000,2345,0},{6007,2350,0},{6007,2353,0}, {6003,2355,0},{6002,2348,0},{5995,2343,0},{5997,2358,0},{5995,2362,0},{5997,2365,0}, {5997,2378,0},{5995,2380,0},{6000,2388,0},{6000,2395,0},{6003,2400,0},{6000,2400,0}, {6002,2408,0},{6003,2410,0},{6002,2418,0},{6005,2417,0},{6003,2425,0},{6005,2428,0}, {6007,2428,0},{6007,2433,0},{6007,2437,0},{6000,2432,0},{6002,2437,0},{6000,2438,0}, {6005,2445,0},{5998,2442,0},{5998,2447,0},{6007,2458,0},{6007,2457,0},{6010,2462,0}, {6008,2455,0},{6012,2460,0},{6013,2455,0},{6015,2455,0},{6013,2463,0},{6010,2467,0}, {6013,2468,0},{6013,2478,0},{6017,2482,0},{6018,2480,0},{6018,2482,0},{6017,2488,0}, {6015,2483,0},{6013,2485,0},{6013,2497,0},{6017,2497,0},{6018,2495,0},{6020,2498,0}, {6018,2502,0},{6015,2500,0},{6015,2507,0},{6018,2505,0},{6017,2510,0},{6018,2518,0}, {6020,2517,0},{6020,2520,0},{6022,2515,0},{6022,2520,0},{6025,2520,0},{6023,2528,0}, {6025,2532,0},{6027,2532,0},{6027,2537,0},{6023,2537,0},{6023,2550,0},{6028,2555,0}, {6032,2553,0},{6033,2562,0},{6037,2567,0},{6033,2570,0},{6033,2565,0},{6032,2568,0}, {6032,2565,0},{6030,2565,0},{6025,2572,0},{6027,2585,0},{6028,2575,0},{6032,2575,0}, {6028,2582,0},{6028,2587,0},{6025,2588,0},{6023,2592,0},{6032,2588,0},{6032,2590,0}, {6035,2592,0},{6040,2583,0},{6035,2595,0},{6037,2600,0},{6035,2600,0},{6032,2605,0}, {6030,2605,0},{6030,2608,0},{6033,2612,0},{6038,2600,0},{6042,2605,0},{6048,2592,0}, {6047,2597,0},{6040,2615,0},{6042,2618,0},{6040,2627,0},{6043,2623,0},{6045,2625,0}, {6037,2633,0},{6040,2635,0},{6038,2638,0},{6042,2638,0},{6038,2642,0},{6042,2643,0}, {6043,2648,0},{6048,2645,0},{6050,2647,0},{6060,2657,0},{6055,2657,0},{6047,2648,0}, {6045,2650,0},{6042,2657,0},{6045,2658,0},{6045,2665,0},{6042,2670,0},{6043,2675,0}, {6047,2675,0},{6048,2680,0},{6045,2682,0},{6045,2687,0},{6048,2690,0},{6045,2697,0}, {6048,2693,0},{6048,2700,0},{6053,2703,0},{6052,2708,0},{6053,2712,0},{6052,2713,0}, {6052,2718,0},{6053,2720,0},{6057,2718,0},{6058,2722,0},{6055,2722,0},{6052,2732,0}, {6052,2723,0},{6050,2723,0},{6050,2737,0},{6047,2745,0},{6045,2750,0},{6047,2748,0}, {6050,2748,0},{6047,2763,0},{6050,2760,0},{6052,2767,0},{6052,2770,0},{6050,2768,0}, {6048,2763,0},{6048,2772,0},{6050,2775,0},{6050,2773,0},{6052,2775,0},{6057,2775,0}, {6057,2778,0},{6052,2780,0},{6057,2787,0},{5898,1143,128},{5910,1132,0}, {5907,1118,0},{5900,1112,0},{5898,1118,0},{5895,1110,0},{5892,1120,0},{5887,1120,0}, {5885,1123,0},{5880,1123,0},{5877,1120,0},{5875,1122,0},{5875,1118,0},{5872,1118,0}, {5870,1122,0},{5867,1122,0},{5865,1125,0},{5860,1125,0},{5857,1128,0},{5855,1125,0}, {5850,1123,0},{5847,1128,0},{5845,1125,0},{5842,1125,0},{5840,1120,0},{5833,1122,0}, {5837,1127,0},{5835,1132,0},{5843,1143,0},{5835,1135,0},{5833,1135,0},{5835,1138,0}, {5838,1142,0},{5835,1142,0},{5835,1145,0},{5833,1145,0},{5833,1138,0},{5830,1140,0}, {5832,1145,0},{5827,1140,0},{5828,1148,0},{5833,1153,0},{5842,1157,0},{5847,1155,0}, {5840,1160,0},{5843,1163,0},{5842,1167,0},{5840,1162,0},{5838,1162,0},{5830,1152,0}, {5823,1150,0},{5823,1153,0},{5825,1153,0},{5825,1158,0},{5830,1165,0},{5830,1172,0}, {5833,1172,0},{5833,1188,0},{5830,1180,0},{5822,1185,0},{5822,1188,0},{5818,1187,0}, {5818,1183,0},{5812,1183,0},{5807,1178,0},{5805,1180,0},{5800,1180,0},{5793,1173,0}, {5792,1177,0},{5790,1175,0},{5788,1168,0},{5787,1170,0},{5783,1167,0},{5783,1170,0}, {5778,1173,0},{5778,1182,0},{5773,1172,0},{5770,1170,0},{5770,1175,0},{5772,1175,0}, {5770,1180,0},{5768,1187,0},{5767,1183,0},{5763,1187,0},{5760,1187,0},{5760,1188,0}, {5762,1190,0},{5762,1192,0},{5752,1190,0},{5750,1193,0},{5750,1192,0},{5748,1195,0}, {5747,1192,0},{5738,1190,0},{5738,1195,0},{5735,1193,0},{5737,1197,0},{5735,1198,0}, {5743,1202,0},{5745,1203,0},{5743,1210,0},{5740,1210,0},{5740,1207,0},{5738,1210,0}, {5733,1205,0},{5733,1212,0},{5732,1215,0},{5728,1215,0},{5725,1210,0},{5723,1215,0}, {5723,1210,0},{5722,1213,0},{5722,1220,0},{5718,1215,0},{5718,1220,0},{5713,1222,0}, {5712,1223,0},{5708,1222,0},{5707,1223,0},{5702,1233,0},{5692,1235,0},{5688,1248,0}, {5685,1253,0},{5683,1257,0},{5675,1262,0},{5672,1267,0},{5668,1267,0},{5667,1270,0}, {5665,1272,0},{5665,1278,0},{5665,1282,0},{5663,1288,0},{5653,1293,0},{5645,1290,0}, {5643,1285,0},{5647,1273,0},{5645,1267,0},{5642,1262,0},{5638,1263,0},{5637,1273,0}, {5630,1277,0},{5627,1283,0},{5623,1282,0},{5622,1272,0},{5623,1267,0},{5627,1263,0}, {5630,1245,0},{5623,1253,0},{5613,1257,0},{5603,1270,0},{5600,1270,0},{5587,1282,0}, {5585,1288,0},{5582,1293,0},{5578,1293,0},{5575,1292,0},{5573,1297,0},{5572,1297,0}, {5572,1302,0},{5567,1307,0},{5562,1303,0},{5558,1293,0},{5557,1292,0},{5543,1298,0}, {5545,1297,0},{5543,1295,0},{5542,1293,0},{5543,1287,0},{5540,1283,0},{5538,1283,0}, {5538,1288,0},{5538,1293,0},{5540,1295,0},{5538,1302,0},{5535,1307,0},{5535,1317,0}, {5533,1330,0},{5533,1338,0},{5538,1352,0},{5537,1358,0},{5542,1365,0},{5542,1385,0}, {5543,1388,0},{5543,1393,0},{5538,1407,0},{5538,1420,0},{5553,1437,0},{5562,1428,0}, {5567,1427,0},{5572,1420,0},{5583,1422,0},{5588,1427,0},{5590,1432,0},{5593,1433,0}, {5600,1445,0},{5603,1448,0},{5605,1457,0},{5603,1457,0},{5605,1460,0},{5603,1460,0}, {5600,1462,0},{5600,1468,0},{5602,1470,0},{5600,1473,0},{5603,1477,0},{5612,1468,0}, {5617,1470,0},{5617,1480,0},{5613,1483,0},{5617,1485,0},{5615,1505,0},{5618,1503,0}, {5618,1507,0},{5615,1512,0},{5617,1515,0},{5615,1523,0},{5618,1530,0},{5617,1532,0}, {5613,1530,0},{5613,1537,0},{5618,1542,0},{5615,1547,0},{5617,1548,0},{5617,1550,0}, {5620,1560,0},{5617,1558,0},{5618,1565,0},{5615,1577,0},{5617,1580,0},{5615,1582,0}, {5613,1582,0},{5610,1578,0},{5608,1585,0},{5620,1595,0},{5620,1600,0},{5625,1605,0}, {5642,1610,0},{5653,1618,0},{5653,1622,0},{5660,1622,0},{5665,1627,0},{5667,1638,0}, {5675,1635,0},{5677,1642,0},{5677,1645,0},{5677,1648,0},{5680,1647,0},{5678,1643,0}, {5680,1640,0},{5687,1645,0},{5692,1643,0},{5695,1647,0},{5698,1643,0},{5702,1643,0}, {5702,1647,0},{5705,1645,0},{5705,1652,0},{5707,1653,0},{5705,1653,0},{5705,1658,0}, {5707,1655,0},{5708,1657,0},{5712,1655,0},{5712,1652,0},{5717,1647,0},{5723,1647,0}, {5723,1650,0},{5728,1647,0},{5730,1648,0},{5732,1657,0},{5733,1653,0},{5733,1657,0}, {5738,1655,0},{5738,1663,0},{5740,1663,0},{5742,1667,0},{5742,1663,0},{5745,1663,0}, {5745,1667,0},{5747,1667,0},{5747,1670,0},{5755,1663,0},{5757,1652,0},{5757,1655,0}, {5758,1652,0},{5760,1653,0},{5762,1652,0},{5762,1655,0},{5758,1657,0},{5763,1663,0}, {5765,1658,0},{5765,1663,0},{5767,1663,0},{5770,1657,0},{5768,1665,0},{5768,1672,0}, {5770,1670,0},{5770,1672,0},{5773,1665,0},{5773,1667,0},{5778,1658,0},{5780,1657,0}, {5785,1645,0},{5790,1642,0},{5773,1670,0},{5777,1668,0},{5790,1647,0},{5790,1648,0}, {5792,1648,0},{5788,1657,0},{5790,1658,0},{5793,1658,0},{5795,1652,0},{5798,1650,0}, {5800,1652,0},{5798,1655,0},{5792,1665,0},{5792,1660,0},{5790,1662,0},{5790,1668,0}, {5792,1670,0},{5787,1673,0},{5788,1677,0},{5792,1673,0},{5792,1678,0},{5797,1673,0}, {5797,1672,0},{5798,1668,0},{5798,1662,0},{5798,1667,0},{5802,1663,0},{5805,1665,0}, {5800,1668,0},{5800,1670,0},{5802,1668,0},{5802,1675,0},{5805,1673,0},{5805,1668,0}, {5805,1672,0},{5808,1675,0},{5810,1670,0},{5813,1667,0},{5815,1668,0},{5820,1662,0}, {5820,1663,0},{5818,1665,0},{5812,1677,0},{5813,1680,0},{5817,1678,0},{5818,1683,0}, {5820,1682,0},{5823,1682,0},{5823,1678,0},{5825,1680,0},{5827,1670,0},{5828,1675,0}, {5832,1680,0},{5832,1673,0},{5828,1672,0},{5832,1670,0},{5835,1663,0},{5833,1673,0}, {5835,1677,0},{5837,1677,0},{5835,1675,0},{5837,1670,0},{5840,1672,0},{5847,1642,0}, {5848,1650,0},{5842,1675,0},{5845,1683,0},{5848,1685,0},{5848,1693,0},{5852,1683,0}, {5853,1685,0},{5855,1682,0},{5855,1683,0},{5858,1678,0},{5860,1678,0},{5860,1673,0}, {5860,1675,0},{5860,1668,0},{5863,1657,0},{5862,1652,0},{5863,1643,0},{5858,1640,0}, {5863,1633,0},{5862,1628,0},{5863,1618,0},{5863,1627,0},{5867,1625,0},{5862,1690,0}, {5863,1695,0},{5863,1703,0},{5867,1702,0},{5867,1695,0},{5867,1705,0},{5865,1708,0}, {5868,1712,0},{5870,1715,0},{5870,1707,0},{5873,1708,0},{5875,1703,0},{5877,1708,0}, {5875,1712,0},{5873,1715,0},{5872,1725,0},{5875,1730,0},{5875,1737,0},{5878,1738,0}, {5880,1733,0},{5880,1748,0},{5882,1745,0},{5887,1747,0},{5890,1745,0},{5885,1758,0}, {5887,1758,0},{5890,1753,0},{5890,1763,0},{5892,1763,0},{5892,1760,0},{5893,1762,0}, {5895,1758,0},{5897,1762,0},{5908,1762,0},{5912,1767,0},{5917,1767,0},{5912,1768,0}, {5908,1767,0},{5905,1770,0},{5905,1772,0},{5912,1773,0},{5913,1777,0},{5912,1777,0}, {5892,1775,0},{5892,1778,0},{5888,1778,0},{5890,1780,0},{5897,1778,0},{5892,1782,0}, {5892,1787,0},{5887,1790,0},{5892,1790,0},{5892,1793,0},{5893,1798,0},{5897,1797,0}, {5902,1802,0},{5903,1800,0},{5903,1805,0},{5905,1805,0},{5907,1812,0},{5908,1813,0}, {5912,1822,0},{5912,1825,0},{5910,1825,0},{5907,1820,0},{5910,1832,0},{5912,1828,0}, {5913,1830,0},{5913,1842,0},{5917,1843,0},{5917,1838,0},{5918,1840,0},{5918,1837,0}, {5920,1838,0},{5922,1832,0},{5923,1832,0},{5920,1842,0},{5927,1828,0},{5927,1827,0}, {5928,1832,0},{5932,1828,0},{5933,1832,0},{5933,1835,0},{5932,1833,0},{5930,1835,0}, {5930,1852,0},{5932,1865,0},{5935,1863,0},{5937,1855,0},{5937,1862,0},{5943,1848,0}, {5943,1843,0},{5940,1850,0},{5940,1845,0},{5933,1847,0},{5933,1843,0},{5935,1843,0}, {5937,1835,0},{5937,1827,0},{5932,1822,0},{5933,1820,0},{5932,1815,0},{5933,1797,0}, {5928,1788,0},{5922,1787,0},{5927,1787,0},{5927,1775,0},{5925,1778,0},{5923,1773,0}, {5925,1772,0},{5925,1773,0},{5927,1770,0},{5928,1763,0},{5928,1758,0},{5922,1760,0}, {5927,1755,0},{5932,1737,0},{5928,1737,0},{5925,1740,0},{5925,1722,0},{5927,1728,0}, {5932,1725,0},{5932,1730,0},{5935,1732,0},{5937,1717,0},{5937,1703,0},{5945,1692,0}, {5948,1683,0},{5947,1682,0},{5947,1670,0},{5940,1688,0},{5938,1688,0},{5938,1687,0}, {5938,1682,0},{5947,1667,0},{5945,1660,0},{5947,1645,0},{5943,1618,0},{5945,1608,0}, {5950,1602,0},{5947,1618,0},{5948,1623,0},{5948,1622,0},{5950,1623,0},{5950,1627,0}, {5947,1628,0},{5945,1632,0},{5948,1633,0},{5948,1635,0},{5952,1638,0},{5950,1642,0}, {5950,1648,0},{5952,1648,0},{5952,1645,0},{5953,1653,0},{5955,1655,0},{5960,1650,0}, {5962,1655,0},{5958,1662,0},{5953,1668,0},{5952,1673,0},{5958,1682,0},{5958,1690,0}, {5955,1695,0},{5953,1707,0},{5958,1702,0},{5960,1707,0},{5955,1712,0},{5955,1722,0}, {5947,1735,0},{5947,1737,0},{5950,1735,0},{5947,1740,0},{5948,1742,0},{5952,1738,0}, {5955,1740,0},{5962,1733,0},{5965,1738,0},{5962,1737,0},{5957,1743,0},{5953,1750,0}, {5955,1755,0},{5952,1752,0},{5948,1755,0},{5950,1758,0},{5948,1767,0},{5945,1768,0}, {5945,1772,0},{5948,1775,0},{5953,1778,0},{5958,1775,0},{5965,1757,0},{5970,1762,0}, {5973,1762,0},{5973,1753,0},{5972,1755,0},{5970,1752,0},{5965,1750,0},{5957,1753,0}, {5967,1748,0},{5968,1745,0},{5973,1750,0},{5975,1737,0},{5975,1753,0},{5980,1760,0}, {5978,1763,0},{5975,1763,0},{5973,1768,0},{5972,1765,0},{5967,1765,0},{5965,1760,0}, {5962,1772,0},{5965,1772,0},{5970,1772,0},{5965,1775,0},{5962,1775,0},{5958,1782,0}, {5957,1782,0},{5953,1785,0},{5950,1778,0},{5942,1775,0},{5937,1782,0},{5933,1793,0}, {5935,1798,0},{5933,1813,0},{5937,1808,0},{5940,1802,0},{5938,1805,0},{5940,1810,0}, {5943,1808,0},{5945,1812,0},{5943,1815,0},{5945,1818,0},{5942,1822,0},{5942,1817,0}, {5940,1817,0},{5938,1832,0},{5940,1833,0},{5942,1828,0},{5943,1828,0},{5945,1825,0}, {5945,1830,0},{5947,1827,0},{5947,1840,0},{5953,1847,0},{5958,1867,0},{5962,1868,0}, {5963,1865,0},{5962,1870,0},{5963,1873,0},{5965,1873,0},{5965,1870,0},{5967,1872,0}, {5967,1875,0},{5968,1875,0},{5972,1887,0},{5975,1892,0},{5973,1893,0},{5972,1898,0}, {5972,1903,0},{5973,1908,0},{5977,1907,0},{5978,1897,0},{5977,1873,0},{5978,1873,0}, {5980,1887,0},{5985,1893,0},{5993,1888,0},{5982,1905,0},{5988,1907,0},{5988,1903,0}, {5988,1902,0},{5992,1900,0},{5992,1893,0},{5993,1890,0},{6007,1882,0},{6012,1882,0}, {6010,1877,0},{6010,1875,0},{6000,1880,0},{6005,1875,0},{6012,1873,0},{6012,1868,0}, {6015,1863,0},{6013,1858,0},{6012,1858,0},{6007,1858,0},{6018,1855,0},{6015,1852,0}, {6018,1842,0},{6023,1840,0},{6020,1843,0},{6022,1845,0},{6025,1837,0},{6030,1832,0}, {6023,1847,0},{6022,1855,0},{6023,1860,0},{6028,1843,0},{6028,1848,0},{6035,1843,0}, {6035,1832,0},{6035,1827,0},{6033,1823,0},{6035,1820,0},{6038,1827,0},{6038,1817,0}, {6048,1803,0},{6050,1797,0},{6055,1800,0},{6060,1797,0},{6060,1787,0},{6057,1777,0}, {6053,1773,0},{6048,1773,0},{6052,1763,0},{6058,1760,0},{6060,1765,0},{6063,1762,0}, {6065,1755,0},{6063,1740,0},{6062,1733,0},{6063,1732,0},{6065,1737,0},{6068,1728,0}, {6070,1727,0},{6070,1718,0},{6073,1730,0},{6077,1733,0},{6078,1728,0},{6080,1728,0}, {6082,1725,0},{6083,1728,0},{6090,1723,0},{6090,1720,0},{6093,1720,0},{6095,1715,0}, {6100,1717,0},{6102,1725,0},{6102,1717,0},{6103,1718,0},{6105,1717,0},{6110,1720,0}, {6112,1715,0},{6113,1718,0},{6115,1717,0},{6117,1718,0},{6118,1718,0},{6122,1715,0}, {6123,1722,0},{6132,1710,0},{6132,1713,0},{6128,1720,0},{6128,1725,0},{6130,1717,0}, {6132,1715,0},{6130,1723,0},{6132,1727,0},{6133,1720,0},{6140,1710,0},{6143,1713,0}, {6142,1717,0},{6142,1722,0},{6143,1722,0},{6145,1717,0},{6148,1718,0},{6152,1712,0}, {6152,1717,0},{6155,1708,0},{6155,1718,0},{6158,1705,0},{6160,1715,0},{6162,1710,0}, {6160,1720,0},{6160,1725,0},{6163,1710,0},{6165,1713,0},{6163,1718,0},{6165,1717,0}, {6168,1727,0},{6170,1717,0},{6172,1715,0},{6172,1727,0},{6170,1730,0},{6168,1730,0}, {6167,1733,0},{6172,1733,0},{6168,1738,0},{6163,1743,0},{6163,1750,0},{6170,1752,0}, {6173,1748,0},{6172,1740,0},{6180,1737,0},{6182,1740,0},{6182,1733,0},{6185,1735,0}, {6187,1733,0},{6188,1737,0},{6190,1735,0},{6195,1735,0},{6195,1738,0},{6198,1740,0}, {6200,1747,0},{6203,1743,0},{6205,1747,0},{6207,1745,0},{6208,1748,0},{6223,1752,0}, {6223,1757,0},{6220,1753,0},{6220,1755,0},{6223,1765,0},{6227,1747,0},{6228,1747,0}, {6228,1748,0},{6232,1745,0},{6233,1742,0},{6232,1738,0},{6240,1733,0},{6240,1737,0}, {6243,1738,0},{6248,1733,0},{6250,1738,0},{6253,1742,0},{6245,1755,0},{6243,1762,0}, {6243,1770,0},{6247,1765,0},{6250,1770,0},{6248,1785,0},{6252,1788,0},{6253,1788,0}, {6255,1792,0},{6262,1793,0},{6260,1795,0},{6255,1797,0},{6260,1807,0},{6262,1805,0}, {6267,1788,0},{6265,1800,0},{6273,1800,0},{6277,1795,0},{6278,1795,0},{6282,1788,0}, {6285,1790,0},{6293,1783,0},{6300,1770,0},{6297,1777,0},{6298,1778,0},{6300,1783,0}, {6298,1782,0},{6292,1788,0},{6290,1793,0},{6282,1792,0},{6280,1797,0},{6282,1798,0}, {6285,1807,0},{6283,1807,0},{6282,1815,0},{6280,1813,0},{6280,1800,0},{6278,1808,0}, {6277,1808,0},{6277,1813,0},{6282,1818,0},{6278,1820,0},{6282,1827,0},{6283,1828,0}, {6282,1823,0},{6283,1822,0},{6287,1820,0},{6287,1825,0},{6288,1825,0},{6288,1828,0}, {6287,1828,0},{6283,1837,0},{6285,1847,0},{6288,1847,0},{6290,1840,0},{6290,1848,0}, {6290,1850,0},{6292,1853,0},{6292,1845,0},{6295,1838,0},{6297,1843,0},{6295,1845,0}, {6295,1853,0},{6297,1853,0},{6295,1858,0},{6298,1855,0},{6300,1823,0},{6302,1833,0}, {6303,1835,0},{6302,1838,0},{6302,1843,0},{6305,1838,0},{6305,1843,0},{6302,1848,0}, {6305,1850,0},{6307,1855,0},{6307,1853,0},{6312,1857,0},{6310,1863,0},{6312,1865,0}, {6313,1865,0},{6317,1857,0},{6315,1875,0},{6322,1870,0},{6322,1882,0},{6320,1875,0}, {6317,1878,0},{6318,1880,0},{6318,1890,0},{6322,1890,0},{6325,1873,0},{6325,1875,0}, {6325,1883,0},{6325,1887,0},{6327,1887,0},{6327,1888,0},{6325,1892,0},{6325,1895,0}, {6322,1897,0},{6318,1903,0},{6318,1907,0},{6320,1907,0},{6320,1912,0},{6322,1905,0}, {6325,1905,0},{6323,1910,0},{6325,1913,0},{6325,1912,0},{6330,1915,0},{6332,1913,0}, {6332,1920,0},{6333,1923,0},{6332,1925,0},{6333,1927,0},{6347,1930,0},{6343,1935,0}, {6345,1937,0},{6348,1935,0},{6345,1942,0},{6342,1947,0},{6340,1952,0},{6347,1947,0}, {6348,1952,0},{6350,1945,0},{6353,1947,0},{6355,1942,0},{6357,1945,0},{6352,1958,0}, {6343,1967,0},{6345,1977,0},{6352,1975,0},{6355,1983,0},{6362,1990,0},{6360,1992,0}, {6362,1993,0},{6360,2000,0},{6360,2003,0},{6362,2002,0},{6365,2002,0},{6367,2005,0}, {6363,2013,0},{6365,2023,0},{6373,2028,0},{6367,2027,0},{6365,2030,0},{6375,2032,0}, {6372,2037,0},{6368,2035,0},{6367,2038,0},{6370,2042,0},{6377,2042,0},{6377,2045,0}, {6382,2050,0},{6377,2055,0},{6382,2062,0},{6378,2065,0},{6380,2068,0},{6382,2072,0}, {6383,2067,0},{6387,2078,0},{6395,2082,0},{6398,2090,0},{6405,2090,0},{6410,2097,0}, {6413,2095,0},{6422,2107,0},{6422,2110,0},{6423,2113,0},{6427,2120,0},{6432,2125,0}, {6430,2127,0},{6432,2133,0},{6437,2132,0},{6433,2135,0},{6437,2145,0},{6442,2152,0}, {6445,2160,0},{6448,2158,0},{6447,2158,0},{6445,2148,0},{6452,2148,0},{6452,2138,0}, {6453,2135,0},{6452,2140,0},{6455,2145,0},{6452,2150,0},{6453,2155,0},{6453,2150,0}, {6458,2148,0},{6455,2145,0},{6460,2137,0},{6457,2137,0},{6458,2132,0},{6460,2130,0}, {6463,2123,0},{6465,2125,0},{6468,2112,0},{6472,2110,0},{6473,2113,0},{6467,2128,0}, {6468,2128,0},{6468,2132,0},{6475,2123,0},{6475,2130,0},{6477,2130,0},{6478,2122,0}, {6478,2110,0},{6483,2103,0},{6485,2107,0},{6482,2112,0},{6483,2118,0},{6485,2117,0}, {6487,2122,0},{6488,2120,0},{6492,2125,0},{6495,2125,0},{6497,2138,0},{6498,2137,0}, {6502,2142,0},{6502,2150,0},{6505,2147,0},{6507,2158,0},{6508,2153,0},{6512,2157,0}, {6513,2155,0},{6515,2162,0},{6532,2140,0},{6533,2127,0},{6535,2133,0},{6537,2132,0}, {6532,2142,0},{6532,2148,0},{6523,2157,0},{6525,2167,0},{6528,2170,0},{6533,2158,0}, {6532,2158,0},{6532,2153,0},{6535,2145,0},{6537,2148,0},{6538,2147,0},{6538,2160,0}, {6540,2155,0},{6542,2158,0},{6538,2167,0},{6540,2170,0},{6542,2172,0},{6540,2175,0}, {6540,2185,0},{6542,2187,0},{6540,2193,0},{6545,2195,0},{6542,2200,0},{6547,2203,0}, {6552,2193,0},{6548,2195,0},{6548,2192,0},{6553,2185,0},{6552,2200,0},{6552,2205,0}, {6552,2207,0},{6553,2208,0},{6553,2213,0},{6555,2220,0},{6555,2217,0},{6558,2212,0}, {6560,2202,0},{6565,2185,0},{6570,2177,0},{6572,2177,0},{6567,2187,0},{6565,2193,0}, {6555,2223,0},{6558,2225,0},{6557,2232,0},{6557,2235,0},{6553,2240,0},{6557,2242,0}, {6560,2233,0},{6563,2238,0},{6563,2233,0},{6567,2232,0},{6567,2228,0},{6563,2232,0}, {6560,2228,0},{6562,2218,0},{6562,2228,0},{6568,2225,0},{6570,2228,0},{6567,2235,0}, {6567,2238,0},{6572,2237,0},{6572,2225,0},{6575,2222,0},{6573,2232,0},{6575,2235,0}, {6580,2232,0},{6580,2237,0},{6583,2233,0},{6583,2237,0},{6587,2237,0},{6585,2248,0}, {6583,2247,0},{6582,2253,0},{6577,2250,0},{6580,2260,0},{6577,2265,0},{6575,2265,0}, {6577,2268,0},{6580,2270,0},{6587,2268,0},{6590,2263,0},{6590,2268,0},{6585,2278,0}, {6580,2283,0},{6578,2288,0},{6580,2290,0},{6575,2302,0},{6575,2305,0},{6570,2308,0}, {6572,2313,0},{6575,2315,0},{6577,2323,0},{6578,2318,0},{6583,2320,0},{6578,2332,0}, {6582,2333,0},{6582,2337,0},{6578,2338,0},{6577,2343,0},{6580,2342,0},{6583,2348,0}, {6580,2350,0},{6580,2360,0},{6578,2362,0},{6582,2368,0},{6582,2373,0},{6580,2377,0}, {6578,2387,0},{6575,2393,0},{6580,2398,0},{6578,2405,0},{6580,2403,0},{6582,2417,0}, {6978,3078,128},{6977,3072,0},{6978,3070,0},{6980,3072,0},{6982,3055,0}, {6982,3045,0},{6978,3045,0},{6968,3045,0},{6967,3042,0},{6967,3033,0},{6968,3040,0}, {6970,3042,0},{6983,3040,0},{6983,3038,0},{6983,3028,0},{6987,3033,0},{6988,3030,0}, {6987,3017,0},{6980,3015,0},{6977,3022,0},{6975,3012,0},{6968,3018,0},{6970,3012,0}, {6973,3007,0},{6968,2993,0},{6970,2993,0},{6973,3003,0},{6977,3005,0},{6975,2995,0}, {6973,2990,0},{6973,2980,0},{6973,2967,0},{6965,2948,0},{6970,2955,0},{6970,2952,0}, {6972,2958,0},{6977,2963,0},{6978,2970,0},{6983,2977,0},{6992,2972,0},{6990,2965,0}, {6992,2953,0},{6985,2943,0},{6985,2937,0},{6990,2943,0},{6997,2968,0},{7002,2933,0}, {7000,2913,0},{7003,2918,0},{7003,2913,0},{7005,2913,0},{7008,2877,0},{7008,2875,0}, {7010,2885,0},{7010,2862,0},{7017,2875,0},{7017,2860,0},{7018,2870,0},{7013,2902,0}, {7013,2915,0},{7007,2980,0},{7007,3015,0},{7008,3012,0},{7010,3023,0},{7013,3035,0}, {7015,3038,0},{7018,3037,0},{7020,3050,0},{7023,3052,0},{7027,3077,0},{7027,3092,0}, {7028,3107,0},{7033,3102,0},{7037,3105,0},{7045,3095,0},{7043,3083,0},{7042,3080,0}, {7045,3075,0},{7047,3072,0},{7050,3057,0},{7053,3060,0},{7053,3058,0},{7055,3045,0}, {7053,3032,0},{7052,3015,0},{7053,3000,0},{7053,3017,0},{7055,3012,0},{7055,3023,0}, {7060,3035,0},{7063,3022,0},{7063,3010,0},{7067,3020,0},{7072,3010,0},{7070,2995,0}, {7063,2985,0},{7062,2970,0},{7062,2968,0},{7067,2977,0},{7070,2978,0},{7073,2978,0}, {7075,2970,0},{7070,2955,0},{7070,2940,0},{7067,2933,0},{7065,2928,0},{7068,2930,0}, {7070,2937,0},{7072,2933,0},{7073,2942,0},{7073,2930,0},{7078,2940,0},{7080,2928,0}, {7085,2925,0},{7085,2907,0},{7087,2910,0},{7088,2890,0},{7087,2882,0},{7087,2875,0}, {7078,2865,0},{7073,2855,0},{7070,2853,0},{7067,2862,0},{7067,2850,0},{7055,2840,0}, {7052,2847,0},{7050,2855,0},{7048,2850,0},{7045,2852,0},{7045,2847,0},{7048,2845,0}, {7047,2833,0},{7043,2832,0},{7042,2825,0},{7028,2818,0},{7017,2823,0},{7008,2813,0}, {7007,2802,0},{7008,2810,0},{7015,2818,0},{7037,2815,0},{7050,2833,0},{7050,2823,0}, {7043,2812,0},{7047,2813,0},{7043,2807,0},{7045,2803,0},{7050,2818,0},{7047,2795,0}, {7048,2797,0},{7043,2788,0},{7048,2785,0},{7062,2822,0},{7065,2828,0},{7072,2830,0}, {7067,2813,0},{7062,2783,0},{7060,2765,0},{7065,2787,0},{7067,2788,0},{7070,2807,0}, {7073,2813,0},{7077,2788,0},{7073,2777,0},{7077,2783,0},{7078,2777,0},{7078,2793,0}, {7082,2800,0},{7078,2802,0},{7078,2813,0},{7078,2827,0},{7080,2830,0},{7083,2822,0}, {7083,2837,0},{7085,2835,0},{7085,2843,0},{7087,2845,0},{7088,2837,0},{7088,2847,0}, {7097,2855,0},{7098,2848,0},{7100,2835,0},{7097,2822,0},{7100,2823,0},{7100,2818,0}, {7102,2820,0},{7105,2827,0},{7108,2820,0},{7107,2813,0},{7103,2808,0},{7107,2803,0}, {7103,2788,0},{7105,2777,0},{7105,2775,0},{7107,2770,0},{7110,2773,0},{7112,2765,0}, {7108,2765,0},{7108,2752,0},{7102,2753,0},{7102,2758,0},{7095,2757,0},{7095,2752,0}, {7100,2748,0},{7103,2727,0},{7100,2722,0},{7093,2735,0},{7097,2717,0},{7095,2713,0}, {7092,2712,0},{7090,2717,0},{7088,2730,0},{7088,2735,0},{7092,2740,0},{7090,2740,0}, {7087,2738,0},{7087,2752,0},{7083,2753,0},{7082,2748,0},{7080,2763,0},{7082,2733,0}, {7080,2730,0},{7077,2728,0},{7075,2735,0},{7073,2732,0},{7075,2725,0},{7073,2713,0}, {7070,2708,0},{7068,2715,0},{7063,2710,0},{7058,2727,0},{7062,2707,0},{7057,2697,0}, {7055,2700,0},{7053,2697,0},{7047,2710,0},{7045,2695,0},{7047,2693,0},{7048,2695,0}, {7048,2685,0},{7047,2680,0},{7042,2675,0},{7042,2665,0},{7040,2663,0},{7038,2665,0}, {7037,2658,0},{7035,2655,0},{7037,2650,0},{7043,2652,0},{7047,2657,0},{7052,2657,0}, {7053,2660,0},{7063,2665,0},{7065,2655,0},{7063,2635,0},{7070,2663,0},{7073,2668,0}, {7083,2675,0},{7083,2667,0},{7085,2667,0},{7090,2673,0},{7095,2670,0},{7093,2655,0}, {7087,2637,0},{7077,2617,0},{7072,2613,0},{7072,2607,0},{7060,2600,0},{7035,2545,0}, {7032,2542,0},{7030,2553,0},{7028,2553,0},{7020,2538,0},{7018,2532,0},{7008,2523,0}, {7008,2515,0},{7008,2508,0},{7012,2508,0},{7013,2513,0},{7012,2507,0},{7015,2508,0}, {7012,2500,0},{7007,2505,0},{7007,2500,0},{7010,2493,0},{7022,2498,0},{7030,2520,0}, {7033,2518,0},{7032,2512,0},{7035,2513,0},{7037,2508,0},{7040,2518,0},{7038,2525,0}, {7040,2527,0},{7043,2525,0},{7047,2528,0},{7048,2505,0},{7048,2510,0},{7048,2527,0}, {7052,2527,0},{7050,2507,0},{7057,2525,0},{7067,2545,0},{7072,2563,0},{7073,2565,0}, {7075,2563,0},{7078,2575,0},{7087,2593,0},{7088,2590,0},{7090,2585,0},{7085,2577,0}, {7088,2572,0},{7088,2563,0},{7085,2553,0},{7087,2552,0},{7083,2547,0},{7085,2543,0}, {7087,2545,0},{7090,2553,0},{7097,2537,0},{7095,2533,0},{7090,2540,0},{7085,2538,0}, {7082,2535,0},{7080,2528,0},{7078,2525,0},{7085,2525,0},{7092,2517,0},{7088,2508,0}, {7085,2507,0},{7087,2492,0},{7093,2507,0},{7097,2498,0},{7092,2498,0},{7090,2483,0}, {7093,2487,0},{7097,2478,0},{7097,2460,0},{7095,2465,0},{7093,2457,0},{7090,2463,0}, {7090,2462,0},{7087,2473,0},{7085,2460,0},{7078,2463,0},{7082,2447,0},{7087,2440,0}, {7083,2427,0},{7077,2425,0},{7073,2457,0},{7065,2473,0},{7062,2473,0},{7062,2468,0}, {7062,2462,0},{7067,2448,0},{7068,2438,0},{7068,2437,0},{7067,2428,0},{7062,2427,0}, {7060,2427,0},{7053,2410,0},{7052,2425,0},{7045,2435,0},{7048,2425,0},{7052,2398,0}, {7048,2382,0},{7045,2377,0},{7037,2352,0},{7032,2347,0},{7032,2353,0},{7030,2353,0}, {7030,2362,0},{7028,2343,0},{7025,2330,0},{7023,2332,0},{7025,2343,0},{7023,2353,0}, {7022,2325,0},{7018,2332,0},{7018,2342,0},{7017,2330,0},{7013,2340,0},{7010,2337,0}, {7008,2318,0},{7003,2333,0},{7002,2353,0},{6998,2347,0},{6993,2332,0},{6997,2335,0}, {7000,2332,0},{6993,2313,0},{6995,2310,0},{6997,2315,0},{6998,2312,0},{7003,2313,0}, {7002,2305,0},{7003,2302,0},{7015,2300,0},{7010,2287,0},{7003,2230,0},{7008,2245,0}, {7012,2282,0},{7020,2297,0},{7022,2270,0},{7022,2260,0},{7023,2258,0},{7025,2240,0}, {7020,2235,0},{7017,2233,0},{7013,2252,0},{7012,2255,0},{7015,2237,0},{7013,2223,0}, {7017,2230,0},{7020,2228,0},{7023,2227,0},{7028,2232,0},{7028,2215,0},{7023,2213,0}, {7030,2210,0},{7028,2198,0},{7032,2203,0},{7032,2200,0},{7025,2180,0},{7022,2182,0}, {7020,2188,0},{7018,2185,0},{7015,2187,0},{7020,2180,0},{7027,2162,0},{7032,2157,0}, {7030,2152,0},{7022,2150,0},{7023,2145,0},{7027,2142,0},{7025,2130,0},{7020,2120,0}, {7020,2125,0},{7017,2132,0},{7017,2148,0},{7015,2143,0},{7010,2147,0},{7008,2155,0}, {7010,2162,0},{7005,2173,0},{7007,2182,0},{7008,2183,0},{7008,2188,0},{7008,2200,0}, {7012,2210,0},{7007,2202,0},{7005,2185,0},{7003,2180,0},{7002,2192,0},{7003,2212,0}, {7002,2205,0},{6993,2207,0},{6995,2203,0},{6997,2203,0},{6998,2200,0},{6998,2193,0}, {6993,2190,0},{6987,2193,0},{6985,2202,0},{6983,2200,0},{6983,2192,0},{6980,2205,0}, {6973,2210,0},{6973,2198,0},{6975,2205,0},{6977,2195,0},{6983,2188,0},{6988,2178,0}, {6988,2168,0},{6992,2158,0},{6995,2160,0},{6998,2155,0},{7002,2142,0},{7002,2132,0}, {7000,2125,0},{6993,2120,0},{6990,2133,0},{6990,2122,0},{6985,2123,0},{6982,2117,0}, {6982,2113,0},{6987,2118,0},{6987,2107,0},{6983,2105,0},{6982,2100,0},{6980,2105,0}, {6978,2102,0},{6982,2095,0},{6983,2097,0},{6985,2090,0},{6995,2108,0},{6992,2092,0}, {6987,2078,0},{6983,2083,0},{6980,2080,0},{6977,2062,0},{6977,2048,0},{6970,2055,0}, {6963,2048,0},{6958,2065,0},{6953,2072,0},{6948,2085,0},{6953,2062,0},{6958,2048,0}, {6948,2038,0},{6938,2028,0},{6938,2020,0},{6932,2003,0},{6925,1995,0},{6928,1992,0}, {6932,2000,0},{6933,1998,0},{6940,2018,0},{6947,2022,0},{6945,2025,0},{6953,2030,0}, {6957,2028,0},{6958,2037,0},{6960,2038,0},{6967,2032,0},{6988,2042,0},{6997,2028,0}, {6992,2020,0},{6985,2022,0},{6988,2017,0},{6993,2017,0},{6992,2015,0},{6978,2003,0}, {6977,1998,0},{6977,1997,0},{6983,2002,0},{6977,1988,0},{6968,1982,0},{6962,1987,0}, {6958,2012,0},{6958,1997,0},{6962,1980,0},{6960,1975,0},{6958,1975,0},{6943,1968,0}, {6943,1963,0},{6940,1955,0},{6942,1955,0},{6947,1965,0},{6950,1962,0},{6963,1973,0}, {6967,1968,0},{6980,1977,0},{6980,1957,0},{6977,1942,0},{6978,1927,0},{6975,1918,0}, {6973,1910,0},{6968,1908,0},{6962,1895,0},{6957,1895,0},{6953,1902,0},{6955,1908,0}, {6957,1923,0},{6952,1927,0},{6955,1918,0},{6952,1900,0},{6945,1900,0},{6942,1908,0}, {6938,1912,0},{6938,1930,0},{6935,1942,0},{6932,1945,0},{6925,1945,0},{6922,1950,0}, {6923,1940,0},{6922,1935,0},{6923,1928,0},{6923,1925,0},{6927,1928,0},{6927,1925,0}, {6925,1917,0},{6928,1920,0},{6928,1935,0},{6932,1937,0},{6935,1930,0},{6935,1912,0}, {6940,1902,0},{6942,1900,0},{6950,1885,0},{6955,1885,0},{6953,1877,0},{6955,1862,0}, {6952,1847,0},{6945,1845,0},{6943,1857,0},{6937,1863,0},{6932,1895,0},{6928,1900,0}, {6930,1892,0},{6932,1888,0},{6932,1877,0},{6932,1867,0},{6928,1870,0},{6925,1868,0}, {6928,1863,0},{6935,1855,0},{6923,1852,0},{6928,1850,0},{6937,1850,0},{6940,1842,0}, {6938,1837,0},{6945,1837,0},{6948,1828,0},{6945,1815,0},{6938,1817,0},{6932,1810,0}, {6930,1802,0},{6923,1798,0},{6923,1810,0},{6917,1807,0},{6915,1815,0},{6915,1800,0}, {6912,1785,0},{6910,1763,0},{6908,1767,0},{6898,1748,0},{6898,1753,0},{6895,1753,0}, {6895,1748,0},{6890,1743,0},{6892,1752,0},{6893,1770,0},{6890,1773,0},{6888,1783,0}, {6887,1783,0},{6887,1775,0},{6888,1773,0},{6888,1765,0},{6883,1747,0},{6878,1767,0}, {6878,1777,0},{6875,1778,0},{6882,1745,0},{6875,1723,0},{6873,1730,0},{6873,1742,0}, {6868,1747,0},{6868,1762,0},{6865,1768,0},{6867,1758,0},{6867,1747,0},{6872,1737,0}, {6872,1725,0},{6868,1710,0},{6865,1713,0},{6865,1718,0},{6863,1717,0},{6863,1710,0}, {6870,1698,0},{6865,1665,0},{6860,1657,0},{6853,1663,0},{6853,1652,0},{6850,1647,0}, {6843,1650,0},{6843,1653,0},{6845,1685,0},{6850,1700,0},{6847,1710,0},{6845,1708,0}, {6845,1702,0},{6843,1702,0},{6845,1722,0},{6850,1735,0},{6853,1753,0},{6850,1755,0}, {6845,1747,0},{6845,1763,0},{6840,1778,0},{6838,1787,0},{6837,1782,0},{6838,1778,0}, {6842,1758,0},{6842,1737,0},{6837,1757,0},{6835,1757,0},{6840,1733,0},{6840,1725,0}, {6838,1725,0},{6837,1720,0},{6833,1722,0},{6825,1742,0},{6823,1742,0},{6823,1735,0}, {6818,1737,0},{6817,1733,0},{6825,1733,0},{6830,1720,0},{6837,1713,0},{6837,1703,0}, {6832,1683,0},{6837,1688,0},{6840,1670,0},{6838,1647,0},{6835,1623,0},{6835,1628,0}, {6832,1625,0},{6830,1648,0},{6827,1658,0},{6820,1663,0},{6813,1680,0},{6813,1673,0}, {6820,1657,0},{6825,1652,0},{6827,1642,0},{6828,1637,0},{6828,1632,0},{6830,1630,0}, {6830,1622,0},{6832,1618,0},{6830,1615,0},{6827,1610,0},{6825,1627,0},{6825,1632,0}, {6823,1637,0},{6822,1617,0},{6820,1617,0},{6820,1642,0},{6822,1645,0},{6820,1647,0}, {6817,1658,0},{6818,1642,0},{6817,1647,0},{6815,1647,0},{6815,1640,0},{6813,1640,0}, {6815,1637,0},{6812,1632,0},{6813,1625,0},{6810,1630,0},{6808,1630,0},{6807,1635,0}, {6812,1648,0},{6808,1657,0},{6807,1672,0},{6807,1667,0},{6805,1667,0},{6807,1653,0}, {6810,1647,0},{6807,1640,0},{6803,1637,0},{6802,1650,0},{6798,1647,0},{6797,1653,0}, {6797,1645,0},{6800,1640,0},{6800,1633,0},{6798,1633,0},{6795,1642,0},{6793,1647,0}, {6790,1645,0},{6792,1640,0},{6800,1627,0},{6800,1620,0},{6797,1628,0},{6788,1625,0}, {6785,1645,0},{6782,1643,0},{6780,1652,0},{6788,1622,0},{6797,1620,0},{6803,1603,0}, {6807,1610,0},{6810,1607,0},{6817,1610,0},{6815,1605,0},{6817,1603,0},{6823,1605,0}, {6825,1597,0},{6818,1595,0},{6818,1587,0},{6813,1592,0},{6808,1585,0},{6808,1575,0}, {6807,1573,0},{6807,1567,0},{6805,1565,0},{6805,1562,0},{6810,1562,0},{6810,1573,0}, {6812,1570,0},{6813,1573,0},{6815,1567,0},{6817,1565,0},{6813,1563,0},{6812,1555,0}, {6808,1553,0},{6813,1550,0},{6812,1543,0},{6807,1535,0},{6805,1535,0},{6803,1528,0}, {6800,1532,0},{6798,1540,0},{6800,1543,0},{6802,1538,0},{6805,1550,0},{6808,1553,0}, {6803,1560,0},{6803,1580,0},{6807,1587,0},{6805,1590,0},{6803,1585,0},{6802,1587,0}, {6802,1605,0},{6800,1605,0},{6800,1597,0},{6797,1595,0},{6793,1588,0},{6790,1587,0}, {6795,1577,0},{6793,1560,0},{6792,1560,0},{6788,1553,0},{6785,1553,0},{6787,1550,0}, {6792,1555,0},{6788,1533,0},{6790,1533,0},{6783,1520,0},{6787,1523,0},{6790,1500,0}, {6787,1488,0},{6783,1485,0},{6785,1507,0},{6785,1510,0},{6783,1508,0},{6783,1497,0}, {6782,1488,0},{6782,1480,0},{6780,1475,0},{6778,1477,0},{6778,1483,0},{6775,1483,0}, {6778,1498,0},{6778,1503,0},{6775,1498,0},{6775,1502,0},{6773,1512,0},{6772,1478,0}, {6770,1482,0},{6770,1488,0},{6765,1473,0},{6763,1482,0},{6767,1500,0},{6772,1518,0}, {6773,1520,0},{6780,1537,0},{6785,1537,0},{6782,1540,0},{6785,1542,0},{6783,1545,0}, {6778,1542,0},{6777,1558,0},{6778,1570,0},{6777,1563,0},{6773,1578,0},{6767,1583,0}, {6775,1560,0},{6773,1540,0},{6770,1547,0},{6770,1558,0},{6767,1565,0},{6768,1553,0}, {6767,1553,0},{6768,1550,0},{6772,1532,0},{6768,1527,0},{6768,1533,0},{6767,1525,0}, {6762,1518,0},{6760,1537,0},{6762,1538,0},{6763,1540,0},{6762,1543,0},{6755,1545,0}, {6758,1542,0},{6760,1530,0},{6758,1525,0},{6753,1523,0},{6752,1537,0},{6752,1557,0}, {6755,1572,0},{6757,1590,0},{6755,1588,0},{6753,1570,0},{6748,1555,0},{6747,1553,0}, {6745,1558,0},{6743,1552,0},{6738,1560,0},{6733,1562,0},{6730,1570,0},{6727,1563,0}, {6728,1560,0},{6730,1565,0},{6735,1553,0},{6740,1553,0},{6747,1545,0},{6748,1532,0}, {6747,1523,0},{6742,1515,0},{6747,1517,0},{6748,1515,0},{6748,1522,0},{6752,1518,0}, {6747,1498,0},{6747,1483,0},{6748,1498,0},{6750,1505,0},{6755,1498,0},{6755,1500,0}, {6753,1510,0},{6753,1515,0},{6755,1515,0},{6757,1507,0},{6755,1492,0},{6750,1473,0}, {6747,1478,0},{6747,1477,0},{6745,1483,0},{6743,1483,0},{6743,1505,0},{6742,1488,0}, {6737,1482,0},{6742,1480,0},{6742,1463,0},{6740,1457,0},{6738,1462,0},{6733,1455,0}, {6723,1433,0},{6725,1455,0},{6728,1470,0},{6723,1470,0},{6722,1462,0},{6722,1470,0}, {6723,1477,0},{6725,1483,0},{6727,1478,0},{6727,1487,0},{6727,1497,0},{6730,1503,0}, {6732,1515,0},{6727,1515,0},{6725,1507,0},{6723,1520,0},{6723,1533,0},{6722,1532,0}, {6722,1527,0},{6720,1530,0},{6723,1540,0},{6720,1558,0},{6722,1570,0},{6717,1573,0}, {6720,1548,0},{6720,1538,0},{6718,1538,0},{6715,1548,0},{6710,1543,0},{6707,1550,0}, {6708,1540,0},{6717,1538,0},{6717,1528,0},{6718,1523,0},{6718,1515,0},{6722,1508,0}, {6720,1502,0},{6715,1493,0},{6712,1500,0},{6708,1498,0},{6715,1488,128}, {6720,1493,0},{6722,1498,0},{6720,1477,0},{6718,1468,0},{6718,1452,0},{6717,1472,0}, {6713,1475,0},{6712,1473,0},{6715,1470,0},{6715,1447,0},{6710,1443,0},{6712,1442,0}, {6717,1445,0},{6715,1435,0},{6708,1427,0},{6705,1457,0},{6703,1460,0},{6702,1457,0}, {6702,1455,0},{6705,1453,0},{6707,1440,0},{6705,1425,0},{6702,1427,0},{6698,1423,0}, {6697,1415,0},{6695,1413,0},{6697,1415,0},{6700,1410,0},{6705,1408,0},{6705,1405,0}, {6705,1403,0},{6702,1402,0},{6698,1405,0},{6693,1393,0},{6692,1395,0},{6692,1392,0}, {6695,1388,0},{6698,1397,0},{6700,1395,0},{6698,1388,0},{6697,1383,0},{6697,1377,0}, {6693,1378,0},{6693,1358,0},{6692,1353,0},{6690,1353,0},{6690,1362,0},{6687,1363,0}, {6685,1370,0},{6683,1370,0},{6683,1377,0},{6682,1380,0},{6680,1393,0},{6678,1398,0}, {6678,1382,0},{6680,1362,0},{6678,1350,0},{6677,1355,0},{6675,1375,0},{6675,1357,0}, {6672,1355,0},{6672,1362,0},{6673,1365,0},{6673,1390,0},{6672,1370,0},{6668,1370,0}, {6668,1357,0},{6672,1348,0},{6672,1328,0},{6672,1323,0},{6668,1330,0},{6667,1348,0}, {6663,1353,0},{6665,1345,0},{6667,1318,0},{6665,1317,0},{6663,1322,0},{6662,1340,0}, {6660,1323,0},{6657,1320,0},{6653,1327,0},{6655,1342,0},{6660,1353,0},{6660,1373,0}, {6660,1357,0},{6657,1345,0},{6653,1362,0},{6652,1367,0},{6655,1347,0},{6653,1333,0}, {6652,1327,0},{6650,1330,0},{6647,1327,0},{6645,1338,0},{6645,1323,0},{6652,1322,0}, {6653,1310,0},{6652,1297,0},{6647,1317,0},{6645,1310,0},{6643,1315,0},{6640,1317,0}, {6635,1300,0},{6632,1302,0},{6632,1308,0},{6632,1317,0},{6630,1313,0},{6630,1320,0}, {6632,1333,0},{6637,1332,0},{6633,1337,0},{6633,1345,0},{6632,1340,0},{6630,1353,0}, {6630,1333,0},{6627,1322,0},{6620,1303,0},{6618,1305,0},{6620,1318,0},{6625,1330,0}, {6625,1345,0},{6628,1358,0},{6628,1362,0},{6625,1357,0},{6623,1362,0},{6625,1372,0}, {6628,1375,0},{6627,1380,0},{6627,1392,0},{6630,1397,0},{6630,1403,0},{6633,1412,0}, {6632,1415,0},{6627,1400,0},{6623,1398,0},{6622,1385,0},{6620,1378,0},{6620,1377,0}, {6623,1380,0},{6623,1367,0},{6618,1362,0},{6617,1368,0},{6618,1378,0},{6617,1383,0}, {6615,1383,0},{6617,1375,0},{6615,1362,0},{6610,1355,0},{6612,1353,0},{6615,1355,0}, {6618,1358,0},{6618,1350,0},{6620,1358,0},{6623,1358,0},{6623,1355,0},{6622,1332,0}, {6613,1308,0},{6615,1305,0},{6613,1285,0},{6607,1267,0},{6605,1273,0},{6603,1273,0}, {6605,1288,0},{6608,1302,0},{6607,1303,0},{6605,1297,0},{6600,1297,0},{6598,1292,0}, {6595,1298,0},{6593,1312,0},{6585,1318,0},{6592,1303,0},{6592,1297,0},{6597,1283,0}, {6592,1267,0},{6585,1262,0},{6582,1262,0},{6583,1270,0},{6578,1272,0},{6580,1265,0}, {6578,1262,0},{6575,1255,0},{6570,1265,0},{6565,1267,0},{6565,1278,0},{6563,1278,0}, {6565,1262,0},{6568,1263,0},{6568,1258,0},{6572,1258,0},{6573,1252,0},{6570,1243,0}, {6565,1237,0},{6558,1235,0},{6558,1242,0},{6555,1238,0},{6552,1243,0},{6558,1253,0}, {6552,1247,0},{6552,1250,0},{6553,1255,0},{6558,1258,0},{6553,1258,0},{6553,1262,0}, {6550,1257,0},{6548,1260,0},{6548,1265,0},{6547,1260,0},{6545,1278,0},{6545,1267,0}, {6543,1263,0},{6537,1272,0},{6543,1260,0},{6542,1257,0},{6545,1255,0},{6545,1248,0}, {6537,1253,0},{6535,1265,0},{6533,1268,0},{6535,1260,0},{6535,1252,0},{6537,1252,0}, {6532,1242,0},{6533,1248,0},{6530,1242,0},{6530,1233,0},{6523,1225,0},{6527,1235,0}, {6527,1242,0},{6525,1245,0},{6527,1253,0},{6525,1260,0},{6527,1260,0},{6527,1265,0}, {6525,1272,0},{6523,1238,0},{6522,1235,0},{6523,1242,0},{6522,1243,0},{6518,1250,0}, {6517,1237,0},{6513,1240,0},{6513,1250,0},{6520,1267,0},{6533,1292,0},{6533,1295,0}, {6530,1293,0},{6525,1282,0},{6520,1278,0},{6518,1270,0},{6515,1267,0},{6513,1260,0}, {6512,1263,0},{6512,1250,0},{6508,1245,0},{6508,1233,0},{6507,1230,0},{6505,1220,0}, {6498,1218,0},{6503,1215,0},{6503,1207,0},{6505,1207,0},{6503,1203,0},{6503,1200,0}, {6505,1202,0},{6507,1197,0},{6502,1182,0},{6497,1182,0},{6495,1167,0},{6497,1162,0}, {6493,1163,0},{6495,1158,0},{6493,1148,0},{6490,1153,0},{6492,1160,0},{6488,1153,0}, {6492,1145,0},{6488,1130,0},{6485,1125,0},{6488,1157,0},{6490,1170,0},{6487,1155,0}, {6483,1127,0},{6482,1125,0},{6480,1143,0},{6477,1135,0},{6473,1125,0},{6475,1138,0}, {6482,1147,0},{6482,1155,0},{6483,1162,0},{6487,1162,0},{6495,1192,0},{6495,1198,0}, {6497,1203,0},{6497,1213,0},{6493,1222,0},{6495,1210,0},{6493,1200,0},{6493,1193,0}, {6488,1173,0},{6483,1165,0},{6485,1178,0},{6483,1178,0},{6482,1165,0},{6480,1183,0}, {6477,1173,0},{6478,1172,0},{6477,1157,0},{6477,1155,0},{6475,1160,0},{6473,1162,0}, {6475,1153,0},{6473,1152,0},{6470,1140,0},{6470,1142,0},{6467,1140,0},{6463,1142,0}, {6457,1152,0},{6458,1158,0},{6460,1158,0},{6460,1155,0},{6462,1160,0},{6462,1163,0}, {6458,1163,0},{6460,1172,0},{6458,1178,0},{6453,1157,0},{6453,1155,0},{6455,1157,0}, {6455,1152,0},{6452,1155,0},{6450,1145,0},{6447,1145,0},{6447,1165,0},{6447,1152,0}, {6443,1145,0},{6445,1142,0},{6442,1137,0},{6440,1138,0},{6438,1135,0},{6432,1123,0}, {6443,1133,0},{6445,1127,0},{6445,1122,0},{6443,1120,0},{6445,1117,0},{6448,1118,0}, {6452,1110,0},{6452,1107,0},{6457,1107,0},{6460,1097,0},{6458,1092,0},{6455,1097,0}, {6450,1097,0},{6450,1092,0},{6448,1097,0},{6448,1092,0},{6447,1090,0},{6448,1088,0}, {6450,1082,0},{6447,1083,0},{6447,1070,0},{6445,1065,0},{6443,1070,0},{6443,1078,0}, {6440,1078,0},{6437,1085,0},{6438,1077,0},{6440,1073,0},{6442,1067,0},{6445,1062,0}, {6443,1057,0},{6440,1063,0},{6443,1055,0},{6443,1050,0},{6440,1047,0},{6440,1057,0}, {6437,1060,0},{6435,1065,0},{6433,1060,0},{6437,1055,0},{6435,1052,0},{6433,1055,0}, {6435,1047,0},{6430,1045,0},{6430,1050,0},{6428,1043,0},{6428,1040,0},{6425,1040,0}, {6427,1035,0},{6425,1033,0},{6423,1025,0},{6422,1037,0},{6418,1037,0},{6420,1028,0}, {6418,1023,0},{6420,1018,0},{6418,1017,0},{6415,1020,0},{6415,1017,0},{6413,1017,0}, {6413,1013,0},{6412,1012,0},{6412,1022,0},{6410,1020,0},{6408,1010,0},{6412,1003,0}, {6410,1000,0},{6405,1003,0},{6395,993,0},{6398,1007,0},{6397,1007,0},{6398,1013,0}, {6392,995,0},{6393,1005,0},{6397,1015,0},{6393,1018,0},{6392,1003,0},{6388,992,0}, {6390,990,0},{6388,980,0},{6387,983,0},{6387,987,0},{6382,963,0},{6377,955,0}, {6375,958,0},{6377,978,0},{6372,955,0},{6370,957,0},{6367,953,0},{6367,957,0}, {6370,965,0},{6372,985,0},{6375,992,0},{6378,1003,0},{6375,1000,0},{6377,1010,0}, {6372,1000,0},{6368,982,0},{6367,978,0},{6365,983,0},{6362,980,0},{6360,983,0}, {6358,990,0},{6350,992,0},{6348,998,0},{6350,1010,0},{6355,1023,0},{6357,1040,0}, {6363,1062,0},{6367,1063,0},{6373,1092,0},{6375,1097,0},{6380,1100,0},{6383,1108,0}, {6388,1103,0},{6390,1092,0},{6385,1080,0},{6380,1057,0},{6387,1070,0},{6388,1080,0}, {6398,1112,0},{6402,1120,0},{6407,1122,0},{6412,1130,0},{6410,1135,0},{6407,1123,0}, {6403,1125,0},{6402,1135,0},{6403,1142,0},{6402,1145,0},{6402,1150,0},{6400,1150,0}, {6398,1143,0},{6397,1127,0},{6392,1120,0},{6390,1110,0},{6385,1110,0},{6385,1113,0}, {6387,1127,0},{6385,1135,0},{6385,1142,0},{6378,1145,0},{6377,1125,0},{6370,1115,0}, {6370,1097,0},{6363,1085,0},{6360,1072,0},{6355,1067,0},{6360,1088,0},{6360,1092,0}, {6358,1090,0},{6357,1085,0},{6357,1092,0},{6355,1092,0},{6353,1080,0},{6352,1077,0}, {6348,1078,0},{6347,1092,0},{6343,1083,0},{6342,1080,0},{6345,1068,0},{6343,1057,0}, {6345,1045,0},{6343,1037,0},{6347,1030,0},{6343,1008,0},{6338,1005,0},{6335,1012,0}, {6333,1025,0},{6332,1028,0},{6327,1027,0},{6332,1025,0},{6333,1023,0},{6333,1010,0}, {6335,1000,0},{6332,983,0},{6338,993,0},{6343,997,0},{6352,982,0},{6353,982,0}, {6363,972,0},{6358,950,0},{6358,955,0},{6353,957,0},{6357,953,0},{6357,947,0}, {6352,942,0},{6352,937,0},{6357,937,0},{6353,930,0},{6353,925,0},{6352,923,0}, {6350,923,0},{6350,915,0},{6347,915,0},{6345,922,0},{6345,928,0},{6347,927,0}, {6350,927,0},{6347,933,0},{6348,948,0},{6343,918,0},{6338,917,0},{6337,920,0}, {6338,942,0},{6340,948,0},{6337,940,0},{6335,923,0},{6330,908,0},{6335,910,0}, {6337,915,0},{6342,912,0},{6347,902,0},{6343,897,0},{6342,900,0},{6342,888,0}, {6340,888,0},{6343,882,0},{6342,873,0},{6340,872,0},{6342,868,0},{6340,865,0}, {6338,865,0},{6333,877,0},{6330,848,0},{6325,858,0},{6320,860,0},{6320,893,0}, {6318,863,0},{6317,857,0},{6313,857,0},{6312,863,0},{6310,863,0},{6313,853,0}, {6313,837,0},{6315,830,0},{6313,823,0},{6312,832,0},{6308,832,0},{6308,828,0}, {6313,822,0},{6312,817,0},{6307,822,0},{6303,823,0},{6302,832,0},{6302,847,0}, {6300,832,0},{6297,837,0},{6302,858,0},{6298,852,0},{6298,867,0},{6297,865,0}, {6297,845,0},{6295,842,0},{6290,848,0},{6288,862,0},{6282,870,0},{6287,858,0}, {6288,847,0},{6288,843,0},{6287,853,0},{6283,853,0},{6288,840,0},{6287,833,0}, {6293,830,0},{6297,833,0},{6303,813,0},{6307,813,0},{6310,808,0},{6308,798,0}, {6305,797,0},{6300,788,0},{6300,790,0},{6300,797,0},{6302,795,0},{6303,797,0}, {6300,800,0},{6295,813,0},{6292,818,0},{6290,820,0},{6288,817,0},{6283,818,0}, {6280,832,0},{6278,835,0},{6272,855,0},{6267,857,0},{6265,855,0},{6272,848,0}, {6272,842,0},{6278,830,0},{6282,817,0},{6293,808,0},{6297,798,0},{6290,768,0}, {6295,778,0},{6297,777,0},{6297,765,0},{6293,757,0},{6292,747,0},{6292,745,0}, {6295,742,0},{6302,727,0},{6298,710,0},{6293,700,0},{6292,688,0},{6290,695,0}, {6283,700,0},{6285,713,0},{6283,715,0},{6282,722,0},{6282,707,0},{6280,700,0}, {6277,695,0},{6275,698,0},{6272,697,0},{6275,737,0},{6278,747,0},{6280,763,0}, {6278,768,0},{6277,750,0},{6273,737,0},{6272,742,0},{6268,737,0},{6268,750,0}, {6273,768,0},{6277,807,0},{6275,805,0},{6270,815,0},{6273,798,0},{6272,797,0}, {6273,790,0},{6273,780,0},{6267,752,0},{6265,750,0},{6262,753,0},{6258,752,0}, {6258,750,0},{6263,748,0},{6262,742,0},{6257,745,0},{6257,752,0},{6258,772,0}, {6257,778,0},{6255,757,0},{6250,753,0},{6255,750,0},{6255,743,0},{6260,735,0}, {6263,717,0},{6260,713,0},{6257,715,0},{6253,713,0},{6262,710,0},{6262,703,0}, {6265,708,0},{6265,690,0},{6262,693,0},{6257,690,0},{6260,688,0},{6265,675,0}, {6260,665,0},{6262,662,0},{6257,662,0},{6262,655,0},{6260,643,0},{6262,633,0}, {6258,625,0},{6252,627,0},{6253,653,0},{6253,657,0},{6252,653,0},{6252,648,0}, {6250,650,0},{6252,662,0},{6248,668,0},{6248,643,0},{6247,623,0},{6245,623,0}, {6245,633,0},{6242,638,0},{6243,655,0},{6248,670,0},{6247,672,0},{6248,678,0}, {6245,677,0},{6245,685,0},{6237,697,0},{6237,692,0},{6232,698,0},{6228,717,0}, {6228,737,0},{6223,742,0},{6228,730,0},{6225,722,0},{6227,712,0},{6227,702,0}, {6218,703,0},{6212,697,0},{6210,703,0},{6213,713,0},{6212,717,0},{6210,718,0}, {6212,713,0},{6208,703,0},{6208,698,0},{6210,695,0},{6213,695,0},{6218,702,0}, {6228,698,0},{6235,688,0},{6242,688,0},{6245,670,0},{6240,655,0},{6235,657,0}, {6240,650,0},{6240,643,0},{6237,638,0},{6232,642,0},{6215,658,0},{6213,658,0}, {6210,653,0},{6215,657,0},{6225,645,0},{6227,640,0},{6237,632,0},{6230,602,0}, {6225,595,0},{6222,600,0},{6220,607,0},{6220,600,0},{6223,593,0},{6220,592,0}, {6210,608,0},{6208,627,0},{6207,635,0},{6205,635,0},{6208,615,0},{6207,605,0}, {6210,605,0},{6213,597,0},{6207,593,0},{6202,585,0},{6205,585,0},{6210,592,0}, {6215,593,0},{6218,592,0},{6220,587,0},{6217,567,0},{6213,568,0},{6208,575,0}, {6212,567,0},{6217,563,0},{6218,548,0},{6218,542,0},{6212,538,0},{6207,560,0}, {6207,558,0},{6207,553,0},{6200,547,0},{6205,545,0},{6212,528,0},{6217,528,0}, {6222,517,0},{6222,515,0},{6218,515,0},{6218,508,0},{6215,507,0},{6213,513,0}, {6210,510,0},{6210,520,0},{6202,540,0},{6202,530,0},{6195,523,0},{6197,522,0}, {6195,518,0},{6197,517,0},{6197,515,0},{6192,510,0},{6190,515,0},{6193,543,0}, {6192,545,0},{6192,560,0},{6192,567,0},{6192,597,0},{6188,573,0},{6185,578,0}, {6188,590,0},{6187,603,0},{6183,612,0},{6185,628,0},{6182,648,0},{6187,655,0}, {6190,667,0},{6188,670,0},{6187,682,0},{6183,678,0},{6187,668,0},{6187,658,0}, {6182,653,0},{6180,647,0},{6182,635,0},{6183,627,0},{6183,607,0},{6177,618,0}, {6177,617,0},{6177,610,0},{6180,605,0},{6183,597,0},{6177,595,0},{6173,590,0}, {6177,593,0},{6185,593,0},{6183,568,0},{6182,563,0},{6183,570,0},{6185,575,0}, {6188,567,0},{6192,542,0},{6190,535,0},{6187,528,0},{6185,528,0},{6183,533,0}, {6183,525,0},{6182,527,0},{6177,507,0},{6177,523,0},{6175,513,0},{6172,517,0}, {6170,513,0},{6175,505,0},{6173,498,0},{6168,493,0},{6163,497,0},{6163,525,0}, {6165,535,0},{6163,535,0},{6160,510,0},{6162,523,0},{6160,537,0},{6158,542,0}, {6158,532,0},{6160,533,0},{6160,527,0},{6158,515,0},{6155,535,0},{6155,515,0}, {6152,515,0},{6148,528,0},{6148,543,0},{6145,545,0},{6145,555,0},{6148,563,0}, {6150,570,0},{6148,577,0},{6145,580,0},{6148,567,0},{6145,562,0},{6145,555,0}, {6143,553,0},{6147,532,0},{6145,533,0},{6145,532,0},{6147,518,0},{6145,518,0}, {6145,508,0},{6142,495,0},{6140,498,0},{6142,512,0},{6140,508,0},{6137,507,0}, {6140,505,0},{6138,500,0},{6135,500,0},{6133,507,0},{6132,503,0},{6132,505,0}, {6135,515,0},{6137,527,0},{6138,540,0},{6137,563,0},{6137,545,0},{6137,537,0}, {6135,527,0},{6132,532,0},{6125,533,0},{6132,528,0},{6133,522,0},{6133,517,0}, {6130,517,0},{6130,510,0},{6125,495,0},{6125,500,0},{6123,500,0},{6123,507,0}, {6122,500,0},{6122,515,0},{6118,523,0},{6117,522,0},{6118,510,0},{6117,505,0}, {6113,512,0},{6115,517,0},{6113,522,0},{6113,517,0},{6110,520,0},{6112,530,0}, {6110,533,0},{6107,540,0},{6110,548,0},{6113,555,0},{6113,567,0},{6115,575,0}, {6120,578,0},{6115,578,0},{6117,592,0},{6120,603,0},{6118,603,0},{6117,597,0}, {6115,600,0},{6115,613,0},{6118,618,0},{6115,618,0},{6113,623,0},{6112,635,0}, {6112,643,0},{6113,650,0},{6115,652,0},{6120,647,0},{6120,653,0},{6127,650,0}, {6128,652,0},{6125,655,0},{6127,658,0},{6140,670,0},{6133,670,0},{6127,663,0}, {6123,657,0},{6122,657,0},{6118,672,0},{6118,683,0},{6117,692,0},{6118,700,0}, {6115,692,0},{6112,693,0},{6112,695,0},{6113,700,0},{6115,715,0},{6117,717,0}, {6118,722,0},{6117,730,0},{6118,737,0},{6122,730,0},{6127,728,128},{6128,723,0}, {6135,732,0},{6138,727,0},{6138,733,0},{6140,735,0},{6148,757,0},{6137,737,0}, {6133,737,0},{6128,730,0},{6127,733,0},{6122,735,0},{6120,738,0},{6120,760,0}, {6123,763,0},{6123,770,0},{6120,765,0},{6118,743,0},{6115,735,0},{6112,738,0}, {6110,743,0},{6113,723,0},{6112,718,0},{6110,700,0},{6097,707,0},{6095,717,0}, {6090,717,0},{6087,712,0},{6093,713,0},{6097,703,0},{6093,687,0},{6100,700,0}, {6108,695,0},{6108,687,0},{6113,685,0},{6113,682,0},{6115,667,0},{6117,662,0}, {6110,655,0},{6107,640,0},{6100,637,0},{6102,633,0},{6107,637,0},{6107,630,0}, {6103,625,0},{6107,627,0},{6110,627,0},{6112,612,0},{6112,583,0},{6108,583,0}, {6107,578,0},{6110,578,0},{6112,577,0},{6108,568,0},{6108,560,0},{6105,563,0}, {6107,557,0},{6105,547,0},{6100,545,0},{6103,542,0},{6103,528,0},{6105,523,0}, {6107,507,0},{6103,500,0},{6098,500,0},{6097,508,0},{6098,513,0},{6097,515,0}, {6095,510,0},{6087,510,0},{6088,508,0},{6095,508,0},{6097,500,0},{6095,498,0}, {6083,505,0},{6083,513,0},{6082,512,0},{6080,515,0},{6085,517,0},{6083,517,0}, {6082,525,0},{6083,532,0},{6087,533,0},{6090,548,0},{6088,547,0},{6087,553,0}, {6087,550,0},{6085,537,0},{6083,533,0},{6080,535,0},{6080,528,0},{6077,523,0}, {6075,525,0},{6073,537,0},{6065,543,0},{6068,540,0},{6067,537,0},{6063,543,0}, {6067,535,0},{6063,537,0},{6063,533,0},{6072,528,0},{6077,505,0},{6080,500,0}, {6080,493,0},{6077,502,0},{6073,505,0},{6072,513,0},{6070,515,0},{6070,508,0}, {6065,518,0},{6062,523,0},{6067,513,0},{6065,508,0},{6055,527,0},{6057,537,0}, {6060,540,0},{6063,553,0},{6068,553,0},{6070,560,0},{6075,568,0},{6070,567,0}, {6070,575,0},{6067,572,0},{6065,575,0},{6063,572,0},{6047,572,0},{6045,570,0}, {6045,565,0},{6042,563,0},{6042,550,0},{6052,530,0},{6047,523,0},{6038,530,0}, {6038,520,0},{6037,515,0},{6035,515,0},{6033,515,0},{6035,520,0},{6032,523,0}, {6032,517,0},{6028,517,0},{6027,532,0},{6020,522,0},{6022,530,0},{6020,535,0}, {6018,530,0},{6017,537,0},{6015,535,0},{6013,542,0},{6017,543,0},{6022,553,0}, {6035,562,0},{6038,572,0},{6038,573,0},{6037,572,0},{6035,567,0},{6025,557,0}, {6023,558,0},{6027,563,0},{6023,560,0},{6023,570,0},{6020,557,0},{6017,558,0}, {6015,555,0},{6013,558,0},{6015,565,0},{6018,567,0},{6020,578,0},{6017,570,0}, {6013,573,0},{6010,570,0},{6008,572,0},{6007,575,0},{6008,575,0},{6008,580,0}, {6007,577,0},{6007,568,0},{6000,570,0},{5998,575,0},{6002,577,0},{6000,578,0}, {6003,588,0},{6017,585,0},{6017,592,0},{6027,600,0},{6023,612,0},{6025,613,0}, {6028,617,0},{6030,615,0},{6035,618,0},{6037,612,0},{6037,625,0},{6042,618,0}, {6047,618,0},{6040,623,0},{6038,628,0},{6042,638,0},{6047,657,0},{6052,668,0}, {6050,670,0},{6047,660,0},{6045,660,0},{6043,663,0},{6045,670,0},{6047,673,0}, {6050,685,0},{6053,690,0},{6058,700,0},{6055,697,0},{6050,690,0},{6050,710,0}, {6047,705,0},{6048,693,0},{6047,682,0},{6043,673,0},{6038,670,0},{6037,665,0}, {6027,657,0},{6023,658,0},{6017,653,0},{6008,652,0},{6012,650,0},{6027,653,0}, {6042,663,0},{6043,653,0},{6042,647,0},{6038,643,0},{6037,633,0},{6033,633,0}, {6032,627,0},{6030,620,0},{6027,622,0},{6022,615,0},{6018,607,0},{6010,612,0}, {6012,618,0},{6015,625,0},{6013,625,0},{6012,628,0},{6007,603,0},{6000,595,0}, {5997,598,0},{5995,597,0},{5993,577,0},{5990,573,0},{5987,573,0},{5985,565,0}, {5985,570,0},{5985,572,0},{5985,570,0},{5983,570,0},{5977,583,0},{5978,592,0}, {5985,593,0},{5985,597,0},{5985,595,0},{5982,597,0},{5978,593,0},{5977,595,0}, {5975,598,0},{5977,605,0},{5983,620,0},{5985,630,0},{5982,622,0},{5975,607,0}, {5973,595,0},{5975,593,0},{5977,590,0},{5973,588,0},{5972,582,0},{5968,573,0}, {5967,578,0},{5967,588,0},{5965,588,0},{5965,577,0},{5960,577,0},{5960,572,0}, {5963,573,0},{5965,572,0},{5967,557,0},{5963,553,0},{5958,553,0},{5955,552,0}, {5950,542,0},{5953,542,0},{5953,545,0},{5957,550,0},{5962,548,0},{5970,552,0}, {5973,548,0},{5967,540,0},{5962,543,0},{5960,542,0},{5965,537,0},{5958,527,0}, {5953,520,0},{5952,525,0},{5950,518,0},{5943,520,0},{5940,527,0},{5935,528,0}, {5933,532,0},{5935,533,0},{5942,533,0},{5930,538,0},{5930,542,0},{5937,540,0}, {5940,543,0},{5930,543,0},{5927,552,0},{5933,558,0},{5940,558,0},{5942,555,0}, {5940,560,0},{5933,565,0},{5928,562,0},{5930,568,0},{5933,572,0},{5935,585,0}, {5938,587,0},{5943,578,0},{5940,565,0},{5943,572,0},{5947,570,0},{5945,573,0}, {5947,580,0},{5952,578,0},{5953,580,0},{5948,588,0},{5948,615,0},{5945,598,0}, {5945,588,0},{5942,588,0},{5935,593,0},{5938,600,0},{5940,597,0},{5943,598,0}, {5940,602,0},{5942,607,0},{5945,615,0},{5953,622,0},{5965,630,0},{5965,632,0}, {5952,625,0},{5957,638,0},{5955,655,0},{5955,645,0},{5950,623,0},{5943,618,0}, {5938,603,0},{5933,600,0},{5932,602,0},{5933,605,0},{5932,610,0},{5933,615,0}, {5932,618,0},{5933,620,0},{5937,620,0},{5933,623,0},{5930,623,0},{5930,608,0}, {5925,612,0},{5928,625,0},{5932,633,0},{5932,647,0},{5932,633,0},{5927,627,0}, {5925,617,0},{5917,600,0},{5913,602,0},{5915,612,0},{5910,590,0},{5907,587,0}, {5902,593,0},{5902,602,0},{5898,605,0},{5898,600,0},{5897,597,0},{5890,603,0}, {5897,610,0},{5900,615,0},{5903,640,0},{5905,662,0},{5902,637,0},{5895,612,0}, {5888,605,0},{5885,613,0},{5883,622,0},{5883,617,0},{5885,608,0},{5890,595,0}, {5893,593,0},{5897,585,0},{5895,582,0},{5892,582,0},{5893,575,0},{5887,572,0}, {5897,572,0},{5903,555,0},{5898,553,0},{5898,558,0},{5897,555,0},{5892,563,0}, {5890,562,0},{5895,555,0},{5893,553,0},{5888,557,0},{5887,553,0},{5880,552,0}, {5875,545,0},{5870,552,0},{5867,552,0},{5862,557,0},{5855,563,0},{5852,572,0}, {5848,575,0},{5847,595,0},{5842,597,0},{5838,602,0},{5830,628,0},{5827,633,0}, {5827,647,0},{5823,660,0},{5825,662,0},{5832,662,0},{5832,670,0},{5830,670,0}, {5828,665,0},{5828,663,0},{5822,668,0},{5827,685,0},{5820,667,0},{5818,665,0}, {5817,667,0},{5817,660,0},{5813,657,0},{5812,653,0},{5807,660,0},{5805,677,0}, {5807,678,0},{5812,668,0},{5818,672,0},{5812,673,0},{5812,682,0},{5818,678,0}, {5818,680,0},{5815,682,0},{5812,690,0},{5813,698,0},{5812,695,0},{5812,685,0}, {5808,680,0},{5807,688,0},{5810,690,0},{5808,692,0},{5805,692,0},{5810,697,0}, {5810,700,0},{5808,698,0},{5803,695,0},{5810,715,0},{5805,712,0},{5807,708,0}, {5805,705,0},{5803,700,0},{5798,700,0},{5800,707,0},{5803,707,0},{5805,715,0}, {5803,717,0},{5805,725,0},{5803,727,0},{5800,748,0},{5802,758,0},{5803,758,0}, {5802,760,0},{5802,762,0},{5805,763,0},{5805,767,0},{5807,767,0},{5805,770,0}, {5807,773,0},{5807,788,0},{5808,795,0},{5812,795,0},{5815,802,0},{5822,802,0}, {5815,808,0},{5813,803,0},{5810,805,0},{5810,812,0},{5810,813,0},{5815,817,0}, {5812,822,0},{5815,822,0},{5818,827,0},{5820,825,0},{5825,837,0},{5823,840,0}, {5827,840,0},{5825,843,0},{5825,850,0},{5828,850,0},{5835,858,0},{5832,860,0}, {5837,863,0},{5837,868,0},{5843,872,0},{5848,883,0},{5855,895,0},{5858,895,0}, {5860,892,0},{5858,897,0},{5860,903,0},{5867,920,0},{5868,918,0},{5868,905,0}, {5870,920,0},{5872,922,0},{5873,910,0},{5872,917,0},{5872,907,0},{5873,907,0}, {5873,930,0},{5878,940,0},{5878,937,0},{5883,945,0},{5885,940,0},{5882,930,0}, {5883,927,0},{5887,930,0},{5885,933,0},{5887,940,0},{5888,940,0},{5888,937,0}, {5890,938,0},{5888,945,0},{5890,947,0},{5890,950,0},{5890,952,0},{5893,947,0}, {5892,958,0},{5893,960,0},{5895,965,0},{5895,968,0},{5898,965,0},{5900,970,0}, {5898,972,0},{5902,972,0},{5903,963,0},{5908,962,0},{5912,953,0},{5912,960,0}, {5913,963,0},{5912,963,0},{5907,965,0},{5905,968,0},{5908,970,0},{5903,975,0}, {5905,978,0},{5900,985,0},{5897,985,0},{5897,982,0},{5895,983,0},{5897,1002,0}, {5903,1003,0},{5902,1007,0},{5905,1013,0},{5905,1017,0},{5903,1017,0},{5902,1012,0}, {5900,1013,0},{5902,1022,0},{5907,1020,0},{5912,1023,0},{5903,1027,0},{5910,1027,0}, {5905,1030,0},{5913,1028,0},{5912,1032,0},{5920,1033,0},{5922,1037,0},{5927,1037,0}, {5925,1043,0},{5923,1045,0},{5927,1048,0},{5932,1052,0},{5935,1045,0},{5942,1047,0}, {5945,1043,0},{5945,1037,0},{5955,1023,0},{5952,1037,0},{5955,1038,0},{5958,1040,0}, {5967,1038,0},{5970,1027,0},{5973,1022,0},{5973,1027,0},{5973,1030,0},{5970,1033,0}, {5970,1037,0},{5967,1042,0},{5953,1042,0},{5952,1045,0},{5955,1055,0},{5960,1062,0}, {5963,1060,0},{5968,1052,0},{5973,1050,0},{5983,1050,0},{5985,1047,0},{5987,1050,0}, {5988,1057,0},{5987,1060,0},{5990,1062,0},{5988,1067,0},{5990,1068,0},{5988,1075,0}, {5983,1077,0},{5973,1072,0},{5983,1067,0},{5985,1063,0},{5973,1055,0},{5968,1058,0}, {5968,1062,0},{5952,1065,0},{5947,1070,0},{5943,1067,0},{5948,1067,0},{5947,1062,0}, {5942,1058,0},{5940,1065,0},{5937,1065,0},{5932,1068,0},{5932,1072,0},{5933,1073,0}, {5932,1078,0},{5928,1075,0},{5922,1073,0},{5925,1077,0},{5922,1078,0},{5918,1078,0}, {5918,1080,0},{5915,1083,0},{5918,1085,0},{5920,1090,0},{5913,1090,0},{5913,1095,0}, {5918,1095,0},{5917,1100,0},{5915,1103,0},{5913,1103,0},{5912,1107,0},{5913,1110,0}, {5917,1108,0},{5913,1112,0},{5917,1115,0},{5918,1113,0},{5920,1117,0},{5915,1118,0}, {5915,1120,0},{5912,1117,0},{5910,1122,0},{5912,1130,0},{5910,1137,0},{5898,1143,0}, {6927,6505,128},{6925,6492,0},{6920,6495,0},{6915,6480,0},{6917,6477,0}, {6922,6480,0},{6925,6478,0},{6930,6487,0},{6928,6493,0},{6928,6500,0},{6932,6498,0}, {6952,6428,0},{6967,6342,0},{6970,6308,0},{6975,6250,0},{6975,6202,0},{6978,6173,0}, {6977,6158,0},{6980,6140,0},{6983,6127,0},{6983,6115,0},{6987,6110,0},{6985,6105,0}, {6987,6087,0},{6985,6077,0},{6982,6070,0},{6973,6072,0},{6972,6063,0},{6967,6067,0}, {6967,6050,0},{6967,6028,0},{6963,6015,0},{6957,6013,0},{6955,6022,0},{6952,6022,0}, {6947,6030,0},{6932,6055,0},{6922,6060,0},{6913,6058,0},{6912,6063,0},{6912,6073,0}, {6917,6073,0},{6913,6088,0},{6908,6093,0},{6900,6095,0},{6892,6092,0},{6890,6097,0}, {6890,6083,0},{6875,6060,0},{6872,6047,0},{6868,6008,0},{6870,6000,0},{6872,5995,0}, {6872,5990,0},{6868,5982,0},{6863,5977,0},{6860,5987,0},{6847,5997,0},{6837,5983,0}, {6833,5965,0},{6838,5937,0},{6840,5913,0},{6842,5907,0},{6848,5908,0},{6853,5912,0}, {6857,5907,0},{6862,5907,0},{6863,5912,0},{6870,5918,0},{6872,5927,0},{6870,5940,0}, {6875,5943,0},{6877,5942,0},{6890,5910,0},{6893,5888,0},{6897,5902,0},{6898,5923,0}, {6900,5923,0},{6900,5893,0},{6895,5852,0},{6890,5828,0},{6883,5825,0},{6878,5828,0}, {6877,5843,0},{6873,5842,0},{6873,5833,0},{6875,5837,0},{6878,5825,0},{6883,5820,0}, {6887,5825,0},{6888,5823,0},{6885,5797,0},{6882,5795,0},{6878,5798,0},{6875,5792,0}, {6873,5758,0},{6868,5753,0},{6865,5745,0},{6858,5740,0},{6855,5728,0},{6853,5708,0}, {6857,5687,0},{6863,5663,0},{6863,5657,0},{6858,5650,0},{6862,5653,0},{6863,5652,0}, {6860,5633,0},{6863,5613,0},{6867,5597,0},{6860,5583,0},{6857,5568,0},{6857,5558,0}, {6857,5547,0},{6855,5532,0},{6852,5523,0},{6850,5520,0},{6847,5510,0},{6843,5507,0}, {6843,5500,0},{6840,5493,0},{6833,5492,0},{6832,5485,0},{6828,5492,0},{6825,5493,0}, {6817,5482,0},{6818,5465,0},{6830,5455,0},{6830,5452,0},{6830,5447,0},{6820,5423,0}, {6820,5420,0},{6825,5417,0},{6832,5420,0},{6825,5410,0},{6822,5400,0},{6822,5387,0}, {6823,5383,0},{6825,5370,0},{6825,5347,0},{6823,5333,0},{6825,5325,0},{6827,5320,0}, {6835,5333,0},{6833,5337,0},{6835,5338,0},{6837,5343,0},{6835,5358,0},{6833,5367,0}, {6835,5368,0},{6840,5358,0},{6840,5362,0},{6840,5368,0},{6833,5380,0},{6835,5382,0}, {6838,5385,0},{6840,5395,0},{6850,5390,0},{6860,5375,0},{6865,5372,0},{6870,5383,0}, {6875,5382,0},{6880,5385,0},{6882,5398,0},{6885,5402,0},{6888,5372,0},{6888,5368,0}, {6885,5373,0},{6885,5368,0},{6888,5360,0},{6890,5360,0},{6893,5375,0},{6893,5397,0}, {6895,5433,0},{6898,5445,0},{6897,5452,0},{6900,5457,0},{6902,5443,0},{6897,5383,0}, {6892,5347,0},{6887,5322,0},{6860,5228,0},{6858,5240,0},{6862,5245,0},{6863,5252,0}, {6865,5263,0},{6862,5262,0},{6862,5250,0},{6858,5248,0},{6853,5258,0},{6848,5272,0}, {6847,5273,0},{6842,5267,0},{6840,5257,0},{6835,5245,0},{6833,5232,0},{6830,5227,0}, {6838,5213,0},{6842,5228,0},{6847,5228,0},{6847,5235,0},{6848,5235,0},{6850,5218,0}, {6848,5205,0},{6850,5205,0},{6853,5218,0},{6858,5220,0},{6853,5205,0},{6848,5178,0}, {6848,5158,0},{6845,5153,0},{6845,5158,0},{6843,5157,0},{6842,5150,0},{6843,5143,0}, {6838,5128,0},{6838,5113,0},{6835,5108,0},{6833,5088,0},{6835,5083,0},{6837,5078,0}, {6827,5058,0},{6812,5007,0},{6807,5003,0},{6803,4997,0},{6802,4985,0},{6805,4998,0}, {6808,5002,0},{6798,4965,0},{6787,4923,0},{6785,4895,0},{6787,4880,0},{6793,4867,0}, {6793,4858,0},{6783,4880,0},{6777,4880,0},{6773,4877,0},{6772,4888,0},{6767,4905,0}, {6765,4905,0},{6763,4910,0},{6763,4900,0},{6765,4897,0},{6767,4898,0},{6770,4885,0}, {6768,4882,0},{6768,4872,0},{6770,4873,0},{6772,4868,0},{6770,4863,0},{6767,4853,0}, {6767,4843,0},{6768,4835,0},{6768,4825,0},{6758,4810,0},{6760,4807,0},{6763,4810,0}, {6765,4800,0},{6758,4783,0},{6757,4782,0},{6747,4793,0},{6743,4795,0},{6733,4777,0}, {6723,4778,0},{6718,4768,0},{6712,4775,0},{6703,4775,0},{6698,4770,0},{6693,4758,0}, {6688,4760,0},{6687,4757,0},{6690,4757,0},{6692,4740,0},{6685,4705,0},{6685,4695,0}, {6683,4692,0},{6682,4658,0},{6677,4650,0},{6673,4638,0},{6678,4648,0},{6682,4653,0}, {6683,4660,0},{6687,4657,0},{6682,4603,0},{6685,4598,0},{6690,4582,0},{6697,4578,0}, {6708,4565,0},{6717,4560,0},{6728,4513,0},{6735,4492,0},{6748,4495,0},{6758,4515,0}, {6758,4530,0},{6760,4533,0},{6768,4535,0},{6770,4530,0},{6773,4538,0},{6777,4562,0}, {6777,4582,0},{6780,4615,0},{6783,4633,0},{6780,4667,0},{6782,4672,0},{6792,4672,0}, {6793,4665,0},{6800,4657,0},{6810,4655,0},{6810,4647,0},{6812,4652,0},{6813,4653,0}, {6822,4635,0},{6820,4633,0},{6822,4628,0},{6832,4610,0},{6832,4603,0},{6843,4593,0}, {6845,4595,0},{6845,4602,0},{6847,4600,0},{6857,4527,0},{6857,4480,0},{6853,4420,0}, {6853,4407,0},{6858,4385,0},{6863,4375,0},{6863,4363,0},{6868,4350,0},{6868,4337,0}, {6867,4327,0},{6862,4332,0},{6847,4373,0},{6840,4400,0},{6828,4423,0},{6803,4418,0}, {6805,4428,0},{6807,4442,0},{6805,4433,0},{6800,4415,0},{6798,4415,0},{6798,4422,0}, {6797,4413,0},{6795,4413,0},{6792,4413,0},{6793,4422,0},{6792,4427,0},{6788,4420,0}, {6788,4410,0},{6788,4408,0},{6778,4413,0},{6770,4407,0},{6770,4415,0},{6768,4415,0}, {6765,4412,0},{6768,4408,0},{6767,4403,0},{6743,4382,0},{6733,4375,0},{6722,4375,0}, {6720,4378,0},{6717,4390,0},{6718,4403,0},{6717,4417,0},{6708,4427,0},{6710,4438,0}, {6705,4430,0},{6702,4440,0},{6693,4448,0},{6692,4452,0},{6690,4447,0},{6683,4448,0}, {6680,4437,0},{6678,4437,0},{6667,4448,0},{6667,4457,0},{6662,4440,0},{6650,4437,0}, {6647,4425,0},{6632,4412,0},{6618,4408,0},{6608,4417,0},{6600,4412,0},{6593,4418,0}, {6587,4418,0},{6602,4402,0},{6608,4405,0},{6618,4385,0},{6618,4370,0},{6615,4363,0}, {6613,4350,0},{6608,4338,0},{6607,4338,0},{6603,4352,0},{6597,4352,0},{6603,4345,0}, {6603,4335,0},{6610,4330,0},{6610,4337,0},{6615,4345,0},{6620,4363,0},{6623,4370,0}, {6627,4367,0},{6632,4357,0},{6633,4338,0},{6642,4330,0},{6642,4300,0},{6638,4255,0}, {6640,4258,0},{6642,4267,0},{6645,4265,0},{6647,4258,0},{6653,4222,0},{6650,4213,0}, {6633,4192,0},{6618,4165,0},{6617,4165,0},{6615,4153,0},{6607,4135,0},{6600,4100,0}, {6597,4070,0},{6578,4042,0},{6568,4012,0},{6562,3985,0},{6557,3977,0},{6552,3972,0}, {6538,3972,0},{6522,3995,0},{6505,4013,0},{6502,4028,0},{6493,4037,0},{6480,4045,0}, {6477,4052,0},{6475,4052,0},{6477,4047,0},{6475,4042,0},{6473,4042,0},{6457,4053,0}, {6453,4050,0},{6457,4035,0},{6455,4018,0},{6462,4005,0},{6467,3983,0},{6460,3978,0}, {6462,3988,0},{6460,3992,0},{6458,3975,0},{6455,3975,0},{6457,3955,0},{6475,3893,0}, {6478,3865,0},{6482,3847,0},{6480,3842,0},{6477,3848,0},{6475,3848,0},{6475,3835,0}, {6475,3830,0},{6472,3818,0},{6467,3817,0},{6463,3805,0},{6465,3803,0},{6470,3813,0}, {6473,3803,0},{6477,3805,0},{6478,3817,0},{6478,3825,0},{6480,3832,0},{6477,3840,0}, {6480,3837,0},{6487,3842,0},{6485,3822,0},{6485,3807,0},{6488,3798,0},{6497,3775,0}, {6502,3775,0},{6505,3772,0},{6513,3743,0},{6515,3730,0},{6520,3703,0},{6518,3685,0}, {6517,3683,0},{6508,3687,0},{6502,3682,0},{6498,3683,0},{6492,3665,0},{6493,3658,0}, {6495,3652,0},{6495,3643,0},{6487,3647,0},{6483,3657,0},{6483,3650,0},{6475,3655,0}, {6472,3672,0},{6450,3700,0},{6438,3718,0},{6435,3735,0},{6438,3750,0},{6438,3758,0}, {6437,3763,0},{6440,3767,0},{6443,3770,0},{6445,3777,0},{6445,3780,0},{6438,3780,0}, {6437,3785,0},{6435,3795,0},{6433,3790,0},{6430,3802,0},{6423,3790,0},{6415,3805,0}, {6402,3808,0},{6393,3800,0},{6390,3782,0},{6392,3765,0},{6388,3758,0},{6385,3758,0}, {6382,3753,0},{6380,3740,0},{6382,3728,0},{6388,3717,0},{6390,3698,0},{6393,3693,0}, {6390,3685,0},{6393,3677,0},{6392,3668,0},{6397,3660,0},{6397,3648,0},{6400,3645,0}, {6402,3628,0},{6407,3628,0},{6410,3622,0},{6415,3628,0},{6415,3622,0},{6425,3608,0}, {6423,3603,0},{6418,3600,0},{6425,3590,0},{6432,3587,0},{6440,3557,0},{6433,3558,0}, {6435,3553,0},{6433,3533,128},{6437,3532,0},{6438,3513,0},{6443,3510,0}, {6445,3495,0},{6452,3495,0},{6452,3485,0},{6455,3475,0},{6455,3482,0},{6458,3483,0}, {6463,3497,0},{6470,3483,0},{6472,3482,0},{6477,3502,0},{6478,3490,0},{6477,3483,0}, {6475,3480,0},{6477,3475,0},{6480,3487,0},{6485,3495,0},{6497,3477,0},{6498,3470,0}, {6503,3482,0},{6505,3480,0},{6505,3475,0},{6510,3478,0},{6512,3467,0},{6515,3467,0}, {6517,3463,0},{6518,3468,0},{6523,3460,0},{6525,3463,0},{6525,3453,0},{6528,3453,0}, {6528,3447,0},{6535,3447,0},{6538,3440,0},{6538,3430,0},{6538,3432,0},{6538,3438,0}, {6542,3437,0},{6540,3450,0},{6545,3450,0},{6545,3468,0},{6548,3463,0},{6552,3472,0}, {6558,3473,0},{6560,3478,0},{6567,3473,0},{6567,3470,0},{6572,3475,0},{6572,3468,0}, {6580,3468,0},{6570,3492,0},{6572,3497,0},{6575,3490,0},{6577,3487,0},{6583,3490,0}, {6582,3483,0},{6588,3487,0},{6590,3485,0},{6592,3477,0},{6590,3470,0},{6593,3472,0}, {6595,3467,0},{6598,3472,0},{6605,3462,0},{6607,3457,0},{6608,3455,0},{6615,3435,0}, {6618,3415,0},{6620,3417,0},{6625,3410,0},{6625,3397,0},{6622,3390,0},{6627,3388,0}, {6630,3362,0},{6632,3365,0},{6633,3362,0},{6632,3350,0},{6632,3332,0},{6635,3343,0}, {6635,3367,0},{6637,3365,0},{6640,3352,0},{6642,3372,0},{6643,3373,0},{6645,3358,0}, {6648,3363,0},{6648,3360,0},{6647,3353,0},{6648,3332,0},{6652,3330,0},{6653,3322,0}, {6650,3312,0},{6652,3295,0},{6653,3295,0},{6655,3307,0},{6655,3317,0},{6657,3317,0}, {6652,3348,0},{6652,3353,0},{6653,3353,0},{6655,3345,0},{6658,3342,0},{6662,3325,0}, {6662,3322,0},{6658,3322,0},{6660,3312,0},{6657,3310,0},{6658,3287,0},{6660,3288,0}, {6660,3307,0},{6665,3313,0},{6662,3332,0},{6665,3332,0},{6668,3318,0},{6668,3297,0}, {6672,3280,0},{6673,3277,0},{6673,3285,0},{6673,3287,0},{6673,3293,0},{6677,3292,0}, {6680,3268,0},{6683,3268,0},{6688,3255,0},{6688,3242,0},{6690,3248,0},{6693,3250,0}, {6695,3238,0},{6695,3253,0},{6697,3257,0},{6703,3250,0},{6707,3228,0},{6708,3235,0}, {6712,3225,0},{6712,3210,0},{6712,3192,0},{6715,3192,0},{6715,3185,0},{6717,3188,0}, {6713,3207,0},{6717,3237,0},{6713,3245,0},{6713,3260,0},{6708,3277,0},{6708,3297,0}, {6705,3280,0},{6698,3282,0},{6682,3318,0},{6672,3353,0},{6673,3355,0},{6677,3348,0}, {6673,3355,0},{6678,3352,0},{6675,3363,0},{6678,3353,0},{6682,3352,0},{6678,3358,0}, {6683,3358,0},{6680,3363,0},{6680,3367,0},{6677,3377,0},{6670,3383,0},{6670,3387,0}, {6672,3388,0},{6668,3393,0},{6668,3402,0},{6670,3403,0},{6668,3405,0},{6670,3410,0}, {6677,3415,0},{6672,3415,0},{6667,3408,0},{6667,3415,0},{6668,3417,0},{6667,3420,0}, {6667,3432,0},{6665,3448,0},{6665,3452,0},{6663,3452,0},{6663,3437,0},{6662,3435,0}, {6653,3447,0},{6653,3455,0},{6660,3478,0},{6660,3488,0},{6653,3503,0},{6647,3520,0}, {6645,3533,0},{6642,3538,0},{6638,3552,0},{6638,3568,0},{6630,3638,0},{6627,3697,0}, {6625,3715,0},{6620,3740,0},{6613,3760,0},{6608,3797,0},{6605,3855,0},{6608,3883,0}, {6610,3893,0},{6612,3925,0},{6613,3935,0},{6618,3953,0},{6620,3973,0},{6623,3985,0}, {6628,4007,0},{6633,4018,0},{6640,4045,0},{6645,4057,0},{6650,4060,0},{6653,4072,0}, {6658,4073,0},{6678,4113,0},{6683,4122,0},{6695,4130,0},{6700,4127,0},{6700,4133,0}, {6702,4137,0},{6708,4133,0},{6712,4138,0},{6715,4133,0},{6720,4137,0},{6723,4132,0}, {6722,4125,0},{6723,4113,0},{6725,4112,0},{6742,4115,0},{6747,4108,0},{6747,4100,0}, {6753,4102,0},{6755,4098,0},{6763,4105,0},{6772,4100,0},{6773,4092,0},{6772,4082,0}, {6778,4068,0},{6782,4067,0},{6780,4057,0},{6775,4055,0},{6775,4048,0},{6783,4032,0}, {6785,4042,0},{6790,4037,0},{6790,4028,0},{6793,4027,0},{6795,4013,0},{6800,4008,0}, {6803,3998,0},{6810,3993,0},{6817,3978,0},{6817,3973,0},{6817,3970,0},{6812,3978,0}, {6803,3985,0},{6807,3952,0},{6813,3937,0},{6827,3893,0},{6828,3895,0},{6830,3893,0}, {6832,3878,0},{6838,3862,0},{6838,3860,0},{6835,3860,0},{6837,3852,0},{6837,3850,0}, {6828,3877,0},{6835,3845,0},{6833,3840,0},{6840,3840,0},{6843,3833,0},{6847,3822,0}, {6848,3820,0},{6850,3807,0},{6855,3803,0},{6865,3782,0},{6873,3758,0},{6873,3745,0}, {6878,3737,0},{6880,3723,0},{6883,3723,0},{6895,3675,0},{6902,3660,0},{6905,3633,0}, {6907,3627,0},{6910,3625,0},{6913,3608,0},{6912,3607,0},{6917,3598,0},{6927,3533,0}, {6927,3515,0},{6922,3527,0},{6918,3518,0},{6922,3510,0},{6922,3503,0},{6918,3497,0}, {6923,3498,0},{6925,3467,0},{6927,3460,0},{6928,3442,0},{6930,3442,0},{6932,3435,0}, {6932,3408,0},{6933,3395,0},{6933,3385,0},{6930,3387,0},{6932,3378,0},{6930,3372,0}, {6932,3375,0},{6933,3372,0},{6932,3358,0},{6920,3357,0},{6915,3350,0},{6913,3345,0}, {6910,3343,0},{6905,3307,0},{6895,3302,0},{6907,3303,0},{6908,3312,0},{6910,3327,0}, {6915,3340,0},{6918,3352,0},{6922,3353,0},{6920,3342,0},{6922,3340,0},{6923,3340,0}, {6923,3330,0},{6925,3343,0},{6927,3347,0},{6928,3340,0},{6927,3325,0},{6927,3323,0}, {6930,3328,0},{6930,3337,0},{6935,3348,0},{6937,3350,0},{6937,3342,0},{6940,3350,0}, {6942,3352,0},{6945,3345,0},{6943,3335,0},{6945,3332,0},{6940,3308,0},{6938,3297,0}, {6930,3290,0},{6932,3287,0},{6930,3282,0},{6935,3283,0},{6947,3308,0},{6947,3290,0}, {6942,3278,0},{6945,3280,0},{6947,3290,0},{6948,3287,0},{6950,3267,0},{6948,3262,0}, {6948,3258,0},{6950,3255,0},{6948,3253,0},{6948,3245,0},{6947,3242,0},{6943,3228,0}, {6943,3218,0},{6943,3228,0},{6950,3242,0},{6950,3250,0},{6953,3240,0},{6957,3243,0}, {6958,3238,0},{6957,3228,0},{6960,3213,0},{6957,3202,0},{6963,3207,0},{6965,3197,0}, {6967,3210,0},{6975,3212,0},{6972,3218,0},{6965,3217,0},{6963,3237,0},{6965,3243,0}, {6963,3248,0},{6958,3287,0},{6962,3305,0},{6965,3312,0},{6973,3313,0},{6975,3310,0}, {6980,3270,0},{6978,3265,0},{6978,3258,0},{6980,3250,0},{6985,3250,0},{6988,3235,0}, {6988,3225,0},{6995,3208,0},{6997,3193,0},{6992,3192,0},{6990,3198,0},{6978,3210,0}, {6978,3207,0},{6977,3205,0},{6980,3202,0},{6985,3182,0},{6983,3173,0},{6980,3172,0}, {6973,3168,0},{6970,3180,0},{6968,3180,0},{6970,3153,0},{6968,3153,0},{6970,3145,0}, {6968,3143,0},{6962,3130,0},{6968,3140,0},{6972,3140,0},{6975,3127,0},{6980,3088,0}, {6978,3078,0},{7387,11130,128},{7398,11120,0},{7400,11127,0},{7398,11138,0}, {7400,11145,0},{7400,11153,0},{7403,11157,0},{7405,11145,0},{7403,11120,0}, {7402,11110,0},{7398,11107,0},{7395,11110,0},{7390,11100,0},{7392,11090,0}, {7395,11078,0},{7395,11072,0},{7400,11057,0},{7402,11020,0},{7402,11007,0}, {7397,10988,0},{7388,10983,0},{7383,10957,0},{7382,10952,0},{7375,10953,0}, {7368,10965,0},{7367,10975,0},{7368,10975,0},{7370,10980,0},{7370,11027,0}, {7375,11048,0},{7375,11060,0},{7378,11065,0},{7377,11092,0},{7373,11088,0}, {7370,11092,0},{7368,11088,0},{7367,11067,0},{7365,11062,0},{7365,11047,0}, {7363,11040,0},{7360,11042,0},{7358,11012,0},{7355,11008,0},{7355,11015,0}, {7350,11010,0},{7350,11002,0},{7347,10982,0},{7345,10960,0},{7345,10950,0}, {7355,10922,0},{7355,10917,0},{7352,10918,0},{7348,10932,0},{7345,10943,0}, {7342,10942,0},{7347,10922,0},{7345,10920,0},{7342,10927,0},{7338,10915,0}, {7335,10893,0},{7333,10872,0},{7332,10858,0},{7330,10823,0},{7327,10820,0}, {7327,10838,0},{7322,10835,0},{7322,10822,0},{7325,10810,0},{7322,10795,0}, {7318,10783,0},{7317,10773,0},{7318,10703,0},{7315,10692,0},{7313,10680,0}, {7318,10635,0},{7315,10627,0},{7313,10620,0},{7310,10617,0},{7298,10622,0}, {7297,10628,0},{7295,10600,0},{7288,10595,0},{7287,10577,0},{7282,10567,0}, {7277,10545,0},{7277,10507,0},{7278,10507,0},{7280,10530,0},{7283,10535,0}, {7290,10567,0},{7295,10570,0},{7300,10583,0},{7310,10585,0},{7315,10602,0}, {7328,10607,0},{7332,10628,0},{7332,10655,0},{7330,10665,0},{7333,10680,0}, {7343,10688,0},{7353,10717,0},{7355,10717,0},{7357,10710,0},{7362,10715,0}, {7362,10732,0},{7363,10735,0},{7362,10743,0},{7363,10767,0},{7360,10775,0}, {7362,10778,0},{7367,10797,0},{7367,10803,0},{7365,10810,0},{7363,10807,0}, {7377,10848,0},{7382,10843,0},{7380,10850,0},{7382,10857,0},{7393,10877,0}, {7397,10892,0},{7403,10908,0},{7407,10923,0},{7408,10950,0},{7418,10985,0}, {7423,10995,0},{7430,10998,0},{7428,10972,0},{7430,10962,0},{7430,10955,0}, {7432,10963,0},{7432,10978,0},{7432,10980,0},{7432,10990,0},{7437,11003,0}, {7437,11020,0},{7443,11038,0},{7448,11028,0},{7448,11035,0},{7447,11050,0}, {7448,11060,0},{7453,11082,0},{7455,11095,0},{7457,11105,0},{7460,11100,0}, {7460,11112,0},{7468,11140,0},{7468,11160,0},{7467,11173,0},{7467,11180,0}, {7472,11195,0},{7473,11190,0},{7477,11195,0},{7478,11205,0},{7485,11208,0}, {7488,11213,0},{7492,11257,0},{7498,11288,0},{7507,11302,0},{7508,11310,0}, {7528,11360,0},{7537,11367,0},{7538,11363,0},{7538,11355,0},{7540,11353,0}, {7540,11372,0},{7552,11363,0},{7550,11355,0},{7552,11338,0},{7555,11327,0}, {7565,11328,0},{7562,11300,0},{7555,11302,0},{7555,11283,0},{7558,11278,0}, {7565,11288,0},{7570,11275,0},{7568,11282,0},{7570,11287,0},{7577,11268,0}, {7577,11252,0},{7583,11245,0},{7585,11233,0},{7583,11260,0},{7573,11305,0}, {7570,11313,0},{7567,11303,0},{7568,11330,0},{7567,11343,0},{7565,11360,0}, {7562,11358,0},{7553,11342,0},{7553,11352,0},{7560,11372,0},{7572,11375,0}, {7585,11390,0},{7588,11382,0},{7592,11385,0},{7593,11378,0},{7592,11375,0}, {7592,11372,0},{7592,11362,0},{7587,11363,0},{7585,11348,0},{7587,11355,0}, {7588,11357,0},{7593,11352,0},{7593,11343,0},{7595,11355,0},{7598,11350,0}, {7602,11355,0},{7603,11345,0},{7613,11347,0},{7618,11340,0},{7620,11335,0}, {7620,11323,0},{7622,11323,0},{7623,11330,0},{7625,11327,0},{7625,11293,0}, {7622,11300,0},{7617,11328,0},{7613,11325,0},{7612,11330,0},{7615,11322,0}, {7615,11310,0},{7613,11298,0},{7612,11303,0},{7607,11302,0},{7605,11293,0}, {7605,11257,0},{7608,11280,0},{7613,11285,0},{7620,11278,0},{7620,11260,0}, {7623,11250,0},{7622,11265,0},{7623,11268,0},{7627,11273,0},{7632,11265,0}, {7633,11275,0},{7637,11265,0},{7645,11223,0},{7638,11202,0},{7633,11183,0}, {7648,11220,0},{7660,11177,0},{7662,11165,0},{7662,11147,0},{7662,11145,0}, {7665,11155,0},{7667,11148,0},{7668,11155,0},{7670,11123,0},{7668,11110,0}, {7672,11107,0},{7675,11113,0},{7675,11110,0},{7675,11090,0},{7673,11092,0}, {7672,11073,0},{7673,11063,0},{7677,11060,0},{7675,11045,0},{7673,11030,0}, {7668,11003,0},{7670,10997,0},{7670,10988,0},{7672,10985,0},{7672,10968,0}, {7673,10960,0},{7673,10942,0},{7675,10937,0},{7672,10915,0},{7673,10907,0}, {7672,10880,0},{7672,10845,0},{7670,10830,0},{7673,10828,0},{7673,10795,0}, {7667,10790,0},{7663,10800,0},{7653,10788,0},{7650,10763,0},{7653,10735,0}, {7650,10702,0},{7650,10688,0},{7647,10682,0},{7650,10670,0},{7652,10640,0}, {7660,10638,0},{7660,10645,0},{7660,10653,0},{7655,10658,0},{7658,10668,0}, {7667,10680,0},{7672,10672,0},{7672,10675,0},{7670,10690,0},{7672,10697,0}, {7673,10697,0},{7675,10705,0},{7680,10707,0},{7680,10722,0},{7683,10728,0}, {7685,10720,0},{7687,10735,0},{7688,10727,0},{7690,10748,0},{7693,10750,0}, {7695,10733,0},{7700,10723,0},{7702,10727,0},{7700,10700,0},{7702,10698,0}, {7703,10702,0},{7705,10682,0},{7703,10677,0},{7703,10665,0},{7700,10677,0}, {7700,10673,0},{7700,10665,0},{7702,10657,0},{7702,10650,0},{7703,10648,0}, {7707,10620,0},{7698,10592,0},{7698,10577,0},{7697,10567,0},{7698,10553,0}, {7697,10545,0},{7702,10545,0},{7703,10578,0},{7705,10573,0},{7708,10588,0}, {7713,10592,0},{7712,10585,0},{7712,10560,0},{7708,10535,0},{7710,10515,0}, {7708,10507,0},{7708,10492,0},{7712,10477,0},{7710,10470,0},{7708,10437,0}, {7708,10412,0},{7713,10437,0},{7713,10452,0},{7717,10472,0},{7717,10487,0}, {7717,10495,0},{7720,10527,0},{7723,10530,0},{7725,10552,0},{7728,10545,0}, {7730,10562,0},{7733,10573,0},{7737,10573,0},{7737,10605,0},{7735,10618,0}, {7737,10630,0},{7740,10612,0},{7742,10600,0},{7747,10592,0},{7752,10590,0}, {7753,10583,0},{7757,10587,0},{7757,10565,0},{7753,10538,0},{7757,10523,0}, {7758,10492,0},{7763,10480,0},{7770,10475,0},{7770,10462,0},{7767,10437,0}, {7768,10427,0},{7770,10427,0},{7772,10433,0},{7773,10430,0},{7773,10407,0}, {7763,10365,0},{7762,10335,0},{7765,10327,0},{7763,10305,0},{7758,10290,0}, {7755,10292,0},{7750,10255,0},{7738,10228,0},{7738,10222,0},{7740,10215,0}, {7738,10207,0},{7728,10185,0},{7723,10162,0},{7717,10145,0},{7710,10120,0}, {7707,10117,0},{7705,10123,0},{7698,10122,0},{7698,10095,0},{7697,10092,0}, {7683,10087,0},{7678,10100,0},{7677,10118,0},{7675,10123,0},{7673,10113,0}, {7658,10107,0},{7655,10088,0},{7652,10103,0},{7650,10142,0},{7647,10157,0}, {7647,10178,0},{7642,10198,0},{7640,10218,0},{7638,10225,0},{7640,10188,0}, {7645,10170,0},{7645,10148,0},{7648,10132,0},{7647,10125,0},{7645,10102,0}, {7648,10105,0},{7653,10085,0},{7650,10065,0},{7647,10030,0},{7648,10023,0}, {7647,9943,0},{7652,9892,0},{7650,9882,0},{7647,9883,0},{7640,9902,0},{7635,9903,0}, {7635,9927,0},{7628,9940,0},{7627,9960,0},{7620,9963,0},{7615,9980,0},{7608,9988,0}, {7602,9982,0},{7595,9992,0},{7590,9988,0},{7585,9970,0},{7577,9958,0},{7577,9935,0}, {7575,9928,0},{7570,9935,0},{7568,9925,0},{7557,9918,0},{7555,9923,0},{7553,9938,0}, {7548,9960,0},{7547,9982,0},{7537,9980,0},{7528,10008,0},{7523,10008,0}, {7520,10020,0},{7517,10018,0},{7518,10017,0},{7523,10003,0},{7530,10002,0}, {7537,9977,0},{7542,9970,0},{7547,9975,0},{7547,9958,0},{7555,9910,0},{7567,9915,0}, {7572,9927,0},{7577,9923,0},{7582,9953,0},{7585,9967,0},{7597,9968,0},{7605,9977,0}, {7608,9963,0},{7607,9957,0},{7608,9958,0},{7610,9947,0},{7612,9960,0},{7615,9957,0}, {7613,9923,0},{7613,9915,0},{7617,9908,0},{7617,9923,0},{7617,9920,0},{7620,9930,0}, {7622,9928,0},{7620,9915,0},{7622,9903,0},{7622,9892,0},{7620,9885,0},{7620,9872,0}, {7627,9880,0},{7617,9837,0},{7617,9815,0},{7613,9810,0},{7615,9807,0},{7615,9802,0}, {7612,9793,0},{7610,9802,0},{7610,9822,0},{7608,9815,0},{7605,9790,0},{7610,9777,0}, {7608,9767,0},{7605,9755,0},{7605,9772,0},{7600,9783,0},{7598,9782,0},{7600,9755,0}, {7598,9735,0},{7597,9730,0},{7593,9733,0},{7593,9718,0},{7595,9725,0},{7598,9718,0}, {7605,9737,0},{7603,9722,0},{7598,9705,0},{7593,9693,0},{7592,9683,0},{7588,9683,0}, {7590,9667,0},{7588,9660,0},{7587,9645,0},{7597,9667,0},{7598,9662,0},{7598,9650,0}, {7600,9655,0},{7602,9652,0},{7598,9627,0},{7597,9633,0},{7595,9630,0},{7595,9593,0}, {7592,9582,0},{7585,9575,0},{7588,9557,0},{7590,9572,0},{7598,9588,0},{7598,9600,0}, {7603,9598,0},{7605,9608,0},{7607,9600,0},{7608,9620,0},{7610,9615,0},{7613,9582,0}, {7615,9542,0},{7613,9532,0},{7612,9527,0},{7612,9508,0},{7610,9505,0},{7612,9490,0}, {7615,9477,0},{7615,9455,0},{7615,9457,0},{7615,9467,0},{7612,9473,0},{7610,9460,0}, {7607,9460,0},{7605,9447,0},{7612,9438,0},{7610,9420,0},{7612,9410,0},{7612,9397,0}, {7612,9367,0},{7610,9367,0},{7607,9395,0},{7605,9400,0},{7603,9375,0},{7605,9370,0}, {7603,9363,0},{7605,9355,0},{7602,9342,0},{7603,9342,0},{7607,9333,0},{7610,9343,0}, {7608,9325,0},{7610,9315,0},{7608,9312,0},{7607,9322,0},{7603,9320,0},{7602,9312,0}, {7603,9310,0},{7607,9302,0},{7605,9292,0},{7598,9292,0},{7597,9283,0},{7592,9290,0}, {7590,9288,0},{7590,9308,0},{7590,9310,0},{7593,9297,0},{7598,9328,0},{7597,9332,0}, {7595,9327,0},{7587,9342,0},{7588,9348,0},{7592,9343,0},{7595,9355,0},{7590,9367,0}, {7593,9407,0},{7595,9413,0},{7595,9417,0},{7592,9407,0},{7583,9335,0},{7577,9250,0}, {7575,9240,0},{7575,9218,0},{7572,9205,0},{7572,9178,0},{7573,9172,0},{7570,9163,0}, {7563,9162,0},{7563,9123,0},{7563,9118,0},{7567,9117,0},{7562,9098,0},{7563,9092,0}, {7567,9090,0},{7563,9068,0},{7562,9063,0},{7558,9005,0},{7555,8992,0},{7553,9003,0}, {7552,9005,0},{7552,8988,0},{7548,8962,0},{7547,8962,0},{7543,8972,0},{7543,8938,0}, {7547,8940,0},{7547,8932,0},{7550,8925,0},{7545,8913,0},{7540,8873,0},{7543,8898,0}, {7540,8908,0},{7540,8887,0},{7537,8877,0},{7537,8882,0},{7535,8878,0},{7533,8860,0}, {7532,8855,0},{7527,8863,0},{7528,8852,0},{7525,8840,0},{7523,8832,0},{7517,8830,0}, {7513,8813,0},{7513,8807,0},{7510,8798,0},{7517,8728,0},{7515,8700,0},{7512,8692,0}, {7507,8692,0},{7508,8707,0},{7507,8725,0},{7503,8738,0},{7503,8777,0},{7502,8778,0}, {7500,8768,0},{7498,8768,0},{7497,8757,0},{7493,8760,0},{7493,8755,0},{7495,8743,0}, {7497,8748,0},{7500,8743,0},{7498,8718,0},{7495,8725,0},{7495,8737,0},{7493,8738,0}, {7485,8707,0},{7472,8707,0},{7472,8702,0},{7475,8698,0},{7475,8687,0},{7470,8677,0}, {7468,8677,0},{7468,8695,0},{7465,8690,0},{7460,8697,0},{7462,8685,0},{7462,8670,0}, {7465,8668,0},{7467,8660,0},{7470,8663,0},{7470,8655,0},{7472,8652,0},{7470,8633,0}, {7477,8622,0},{7475,8633,0},{7477,8638,0},{7482,8620,0},{7480,8615,0},{7482,8610,0}, {7482,8603,0},{7477,8612,0},{7472,8607,0},{7472,8587,0},{7470,8583,0},{7467,8587,0}, {7463,8575,0},{7463,8585,0},{7460,8595,0},{7462,8612,0},{7460,8632,0},{7457,8650,0}, {7455,8678,0},{7453,8660,0},{7450,8655,0},{7447,8668,0},{7442,8678,0},{7443,8708,0}, {7440,8707,0},{7435,8727,0},{7437,8702,0},{7435,8700,0},{7430,8705,0},{7427,8700,0}, {7428,8697,0},{7433,8697,0},{7433,8690,0},{7430,8685,0},{7432,8670,0},{7435,8690,0}, {7438,8695,0},{7438,8682,0},{7437,8680,0},{7438,8673,0},{7438,8660,0},{7440,8663,0}, {7443,8658,0},{7445,8648,0},{7443,8638,0},{7445,8632,0},{7442,8625,0},{7442,8622,0}, {7442,8607,0},{7440,8607,0},{7438,8627,0},{7432,8630,0},{7432,8625,0},{7437,8612,0}, {7437,8597,0},{7435,8590,0},{7432,8597,0},{7428,8595,0},{7427,8607,0},{7425,8657,0}, {7420,8677,0},{7418,8680,0},{7413,8672,0},{7410,8687,0},{7407,8685,0},{7405,8737,0}, {7402,8742,0},{7400,8740,0},{7405,8720,0},{7405,8697,0},{7403,8693,0},{7393,8713,0}, {7387,8720,0},{7383,8732,0},{7382,8743,0},{7383,8750,0},{7392,8753,0},{7390,8767,0}, {7383,8763,0},{7373,8730,0},{7368,8725,0},{7370,8735,0},{7362,8718,0},{7360,8710,0}, {7360,8687,0},{7357,8665,0},{7357,8622,0},{7347,8585,0},{7333,8588,0},{7332,8597,0}, {7325,8633,0},{7318,8645,0},{7317,8663,0},{7307,8677,0},{7298,8678,0},{7312,8667,0}, {7315,8652,0},{7318,8632,0},{7327,8622,0},{7333,8583,0},{7347,8578,0},{7350,8583,0}, {7353,8598,0},{7358,8612,0},{7362,8635,0},{7367,8652,0},{7367,8662,0},{7372,8675,0}, {7375,8685,0},{7378,8703,0},{7385,8710,0},{7390,8678,0},{7388,8667,0},{7388,8640,0}, {7385,8625,0},{7387,8602,0},{7382,8587,0},{7382,8558,0},{7377,8547,0},{7372,8548,0}, {7370,8522,0},{7372,8510,0},{7370,8500,0},{7372,8502,0},{7373,8490,0},{7377,8478,0}, {7375,8458,0},{7370,8435,0},{7370,8375,0},{7365,8340,0},{7367,8248,0},{7365,8217,0}, {7365,8152,0},{7362,8132,0},{7360,8125,0},{7358,8092,0},{7357,8085,0},{7358,8072,0}, {7357,8052,0},{7348,8052,0},{7352,8063,0},{7350,8068,0},{7343,8058,0},{7342,8048,0}, {7337,8042,0},{7338,8038,0},{7338,8035,0},{7332,8025,0},{7328,8033,0},{7328,8045,0}, {7327,8055,0},{7322,8057,0},{7320,8048,0},{7320,8032,0},{7317,8023,0},{7317,8033,0}, {7313,8057,0},{7312,8058,0},{7310,8043,0},{7307,8068,0},{7297,8082,0},{7285,8080,0}, {7278,8075,0},{7273,8063,0},{7265,8068,0},{7262,8083,0},{7257,8078,0},{7255,8072,0}, {7253,8072,0},{7247,8085,0},{7235,8117,0},{7233,8172,0},{7227,8212,0},{7228,8220,0}, {7223,8228,0},{7213,8230,0},{7208,8218,0},{7200,8250,0},{7195,8262,0},{7187,8267,0}, {7190,8280,0},{7187,8318,0},{7183,8338,0},{7180,8342,0},{7175,8342,0},{7162,8363,0}, {7157,8363,0},{7152,8358,0},{7148,8352,0},{7147,8338,0},{7135,8337,0},{7128,8328,0}, {7125,8315,0},{7112,8327,0},{7110,8323,0},{7112,8312,0},{7107,8317,0},{7105,8333,0}, {7102,8340,0},{7097,8338,0},{7092,8348,0},{7080,8353,0},{7077,8360,0},{7070,8360,0}, {7055,8377,0},{7050,8373,0},{7047,8377,0},{7033,8352,0},{7032,8333,0},{7032,8318,0}, {7033,8302,0},{7032,8295,0},{7023,8305,0},{7020,8313,0},{7012,8320,0},{7008,8317,0}, {7007,8307,0},{7008,8288,0},{7013,8282,0},{7017,8263,0},{7020,8267,0},{7025,8265,0}, {7038,8290,0},{7042,8300,0},{7050,8305,0},{7057,8300,0},{7060,8307,0},{7067,8305,0}, {7077,8313,0},{7087,8315,0},{7090,8310,0},{7092,8300,0},{7100,8290,0},{7100,8288,0}, {7092,8287,0},{7095,8285,0},{7095,8277,0},{7097,8275,0},{7095,8268,0},{7090,8258,0}, {7085,8258,0},{7080,8248,0},{7077,8257,0},{7075,8250,0},{7070,8248,0},{7068,8243,0}, {7060,8247,0},{7058,8217,0},{7050,8223,0},{7040,8225,0},{7020,8235,0},{7028,8223,0}, {7050,8215,0},{7057,8208,0},{7062,8220,0},{7068,8222,0},{7077,8242,0},{7083,8232,0}, {7092,8230,0},{7100,8220,0},{7108,8235,0},{7127,8225,0},{7130,8237,0},{7137,8270,0}, {7140,8303,0},{7145,8298,0},{7155,8302,0},{7157,8317,0},{7165,8330,0},{7168,8332,0}, {7172,8327,0},{7173,8320,0},{7173,8298,0},{7177,8292,0},{7178,8282,0},{7170,8213,0}, {7170,8167,0},{7172,8163,0},{7177,8130,0},{7185,8125,0},{7203,8063,128}, {7207,8067,0},{7208,8078,0},{7203,8073,0},{7202,8082,0},{7203,8085,0},{7208,8083,0}, {7218,8012,0},{7225,7980,0},{7237,7948,0},{7238,7930,0},{7237,7885,0},{7240,7852,0}, {7238,7850,0},{7240,7843,0},{7238,7832,0},{7237,7827,0},{7238,7813,0},{7233,7807,0}, {7232,7790,0},{7222,7775,0},{7218,7767,0},{7222,7752,0},{7222,7747,0},{7217,7748,0}, {7212,7738,0},{7208,7738,0},{7207,7748,0},{7212,7780,0},{7212,7795,0},{7210,7802,0}, {7197,7823,0},{7190,7817,0},{7188,7810,0},{7182,7770,0},{7183,7752,0},{7187,7743,0}, {7192,7737,0},{7205,7690,0},{7200,7638,0},{7192,7600,0},{7163,7627,0},{7158,7625,0}, {7157,7632,0},{7153,7655,0},{7147,7673,0},{7142,7700,0},{7142,7712,0},{7137,7720,0}, {7130,7752,0},{7133,7745,0},{7128,7772,0},{7128,7775,0},{7132,7773,0},{7133,7787,0}, {7135,7787,0},{7137,7800,0},{7135,7800,0},{7132,7790,0},{7125,7793,0},{7128,7803,0}, {7125,7828,0},{7122,7832,0},{7112,7823,0},{7110,7825,0},{7103,7845,0},{7105,7850,0}, {7110,7835,0},{7112,7845,0},{7110,7852,0},{7107,7850,0},{7105,7855,0},{7102,7847,0}, {7100,7848,0},{7092,7843,0},{7097,7858,0},{7093,7872,0},{7093,7880,0},{7098,7890,0}, {7098,7878,0},{7100,7883,0},{7098,7897,0},{7102,7903,0},{7102,7910,0},{7098,7908,0}, {7097,7902,0},{7095,7907,0},{7093,7903,0},{7092,7895,0},{7093,7895,0},{7093,7890,0}, {7092,7887,0},{7092,7855,0},{7088,7845,0},{7088,7840,0},{7093,7827,0},{7095,7805,0}, {7097,7795,0},{7102,7788,0},{7110,7787,0},{7115,7768,0},{7118,7703,0},{7115,7693,0}, {7112,7697,0},{7107,7692,0},{7115,7688,0},{7118,7690,0},{7122,7663,0},{7120,7638,0}, {7123,7615,0},{7118,7612,0},{7123,7603,0},{7130,7545,0},{7137,7527,0},{7145,7523,0}, {7147,7528,0},{7145,7543,0},{7150,7542,0},{7153,7553,0},{7157,7550,0},{7162,7538,0}, {7163,7550,0},{7167,7550,0},{7173,7527,0},{7178,7522,0},{7183,7522,0},{7190,7528,0}, {7195,7527,0},{7198,7543,0},{7203,7542,0},{7208,7553,0},{7215,7552,0},{7222,7560,0}, {7227,7575,0},{7230,7577,0},{7232,7567,0},{7233,7568,0},{7248,7555,0},{7253,7557,0}, {7253,7568,0},{7255,7572,0},{7263,7550,0},{7268,7542,0},{7268,7533,0},{7272,7540,0}, {7270,7545,0},{7273,7553,0},{7275,7552,0},{7282,7533,0},{7283,7520,0},{7287,7508,0}, {7288,7500,0},{7282,7473,0},{7270,7495,0},{7258,7507,0},{7238,7512,0},{7225,7510,0}, {7212,7495,0},{7195,7435,0},{7197,7432,0},{7195,7425,0},{7193,7412,0},{7190,7387,0}, {7182,7353,0},{7177,7347,0},{7172,7353,0},{7167,7350,0},{7142,7302,0},{7133,7333,0}, {7127,7353,0},{7105,7373,0},{7097,7390,0},{7085,7393,0},{7068,7430,0},{7053,7433,0}, {7042,7417,0},{7037,7407,0},{7030,7400,0},{7015,7368,0},{7008,7377,0},{7002,7370,0}, {6995,7370,0},{6982,7363,0},{6975,7352,0},{6970,7355,0},{6955,7377,0},{6943,7390,0}, {6935,7388,0},{6920,7375,0},{6917,7375,0},{6913,7380,0},{6907,7395,0},{6913,7418,0}, {6913,7450,0},{6908,7475,0},{6910,7515,0},{6913,7510,0},{6918,7522,0},{6925,7548,0}, {6927,7557,0},{6923,7577,0},{6923,7603,0},{6915,7637,0},{6913,7653,0},{6915,7663,0}, {6910,7678,0},{6902,7692,0},{6898,7722,0},{6893,7740,0},{6890,7763,0},{6887,7770,0}, {6868,7775,0},{6862,7772,0},{6857,7777,0},{6852,7777,0},{6852,7780,0},{6853,7788,0}, {6852,7793,0},{6848,7795,0},{6845,7790,0},{6838,7797,0},{6835,7808,0},{6832,7808,0}, {6827,7817,0},{6825,7815,0},{6822,7773,0},{6815,7757,0},{6808,7750,0},{6803,7752,0}, {6798,7747,0},{6793,7752,0},{6793,7758,0},{6792,7748,0},{6790,7747,0},{6777,7747,0}, {6773,7753,0},{6772,7765,0},{6773,7775,0},{6778,7777,0},{6777,7780,0},{6773,7783,0}, {6772,7795,0},{6770,7787,0},{6768,7787,0},{6770,7798,0},{6768,7805,0},{6765,7813,0}, {6767,7818,0},{6765,7823,0},{6767,7832,0},{6763,7840,0},{6770,7843,0},{6765,7850,0}, {6767,7853,0},{6767,7862,0},{6763,7858,0},{6763,7847,0},{6762,7850,0},{6760,7858,0}, {6762,7867,0},{6765,7872,0},{6765,7878,0},{6765,7887,0},{6763,7880,0},{6762,7883,0}, {6760,7897,0},{6757,7905,0},{6755,7895,0},{6757,7887,0},{6758,7872,0},{6758,7867,0}, {6758,7858,0},{6755,7848,0},{6755,7833,0},{6758,7825,0},{6753,7805,0},{6755,7798,0}, {6757,7795,0},{6755,7790,0},{6757,7785,0},{6755,7768,0},{6757,7768,0},{6762,7767,0}, {6778,7710,0},{6783,7708,0},{6785,7715,0},{6782,7717,0},{6783,7723,0},{6790,7730,0}, {6798,7718,0},{6805,7725,0},{6810,7722,0},{6815,7730,0},{6823,7737,0},{6827,7718,0}, {6830,7717,0},{6838,7730,0},{6845,7725,0},{6852,7732,0},{6860,7717,0},{6860,7710,0}, {6858,7715,0},{6857,7710,0},{6865,7702,0},{6877,7663,0},{6880,7662,0},{6887,7670,0}, {6897,7660,0},{6898,7655,0},{6898,7633,0},{6897,7612,0},{6893,7583,0},{6890,7562,0}, {6890,7547,0},{6878,7467,0},{6872,7448,0},{6862,7442,0},{6850,7447,0},{6837,7433,0}, {6823,7462,0},{6815,7473,0},{6793,7482,0},{6768,7473,0},{6742,7408,0},{6730,7392,0}, {6722,7395,0},{6712,7390,0},{6707,7392,0},{6705,7387,0},{6698,7385,0},{6693,7363,0}, {6683,7352,0},{6678,7320,0},{6675,7310,0},{6673,7300,0},{6665,7295,0},{6660,7247,0}, {6655,7245,0},{6650,7228,0},{6652,7238,0},{6650,7242,0},{6647,7237,0},{6638,7240,0}, {6630,7235,0},{6628,7223,0},{6623,7207,0},{6623,7203,0},{6622,7200,0},{6625,7193,0}, {6623,7185,0},{6623,7182,0},{6630,7175,0},{6632,7168,0},{6637,7132,0},{6637,7088,0}, {6633,7038,0},{6642,6990,0},{6647,6975,0},{6650,6938,0},{6660,6912,0},{6677,6912,0}, {6678,6908,0},{6678,6900,0},{6680,6897,0},{6683,6917,0},{6682,6932,0},{6683,6940,0}, {6678,6960,0},{6680,6963,0},{6682,6957,0},{6683,6958,0},{6682,6970,0},{6682,6978,0}, {6683,6990,0},{6685,6988,0},{6687,6990,0},{6685,6995,0},{6680,6998,0},{6675,7008,0}, {6673,7018,0},{6672,7015,0},{6668,7032,0},{6670,7055,0},{6672,7047,0},{6673,7062,0}, {6673,7053,0},{6675,7057,0},{6675,7073,0},{6673,7073,0},{6672,7068,0},{6672,7063,0}, {6668,7060,0},{6668,7047,0},{6665,7040,0},{6665,7032,0},{6662,7028,0},{6658,7033,0}, {6650,7072,0},{6653,7098,0},{6655,7098,0},{6658,7095,0},{6657,7103,0},{6658,7112,0}, {6660,7105,0},{6663,7107,0},{6662,7123,0},{6665,7117,0},{6663,7127,0},{6665,7133,0}, {6668,7137,0},{6663,7137,0},{6665,7157,0},{6672,7160,0},{6677,7152,0},{6678,7155,0}, {6683,7148,0},{6687,7152,0},{6690,7138,0},{6692,7145,0},{6693,7133,0},{6695,7132,0}, {6697,7137,0},{6695,7143,0},{6692,7153,0},{6693,7158,0},{6695,7163,0},{6692,7172,0}, {6692,7175,0},{6697,7180,0},{6698,7187,0},{6703,7193,0},{6707,7202,0},{6708,7198,0}, {6712,7202,0},{6713,7192,0},{6715,7213,0},{6720,7212,0},{6715,7217,0},{6717,7223,0}, {6723,7220,0},{6727,7203,0},{6730,7203,0},{6730,7213,0},{6733,7218,0},{6730,7227,0}, {6732,7240,0},{6740,7245,0},{6747,7240,0},{6752,7255,0},{6760,7255,0},{6762,7262,0}, {6763,7285,0},{6765,7288,0},{6768,7288,0},{6768,7295,0},{6772,7305,0},{6768,7312,0}, {6772,7315,0},{6782,7307,0},{6785,7320,0},{6795,7320,0},{6808,7307,0},{6817,7313,0}, {6822,7310,0},{6837,7342,0},{6845,7347,0},{6848,7360,0},{6843,7360,0},{6845,7365,0}, {6848,7365,0},{6858,7352,0},{6885,7272,0},{6888,7263,0},{6898,7255,0},{6918,7248,0}, {6922,7252,0},{6928,7265,0},{6938,7257,0},{6942,7248,0},{6942,7258,0},{6943,7263,0}, {6952,7262,0},{6965,7250,0},{6967,7257,0},{6968,7255,0},{6975,7265,0},{6985,7268,0}, {6990,7265,0},{6998,7253,0},{7005,7248,0},{7008,7257,0},{7018,7262,0},{7027,7242,0}, {7035,7253,0},{7040,7268,0},{7042,7278,0},{7053,7277,0},{7062,7268,0},{7070,7277,0}, {7087,7283,0},{7102,7262,0},{7108,7268,0},{7113,7263,0},{7115,7258,0},{7120,7235,0}, {7130,7205,0},{7147,7180,0},{7152,7182,0},{7158,7195,0},{7157,7202,0},{7157,7207,0}, {7160,7220,0},{7168,7223,0},{7172,7237,0},{7182,7232,0},{7185,7233,0},{7192,7252,0}, {7203,7257,0},{7212,7272,0},{7220,7273,0},{7228,7288,0},{7240,7280,0},{7248,7280,0}, {7252,7285,0},{7255,7277,0},{7260,7272,0},{7265,7282,0},{7267,7273,0},{7270,7272,0}, {7270,7283,0},{7283,7210,0},{7280,7188,0},{7282,7183,0},{7282,7195,0},{7283,7200,0}, {7287,7177,0},{7292,7153,0},{7290,7123,0},{7290,7098,0},{7288,7075,0},{7290,7030,0}, {7288,6960,0},{7288,6955,0},{7292,6957,0},{7293,6978,0},{7295,6980,0},{7297,6975,0}, {7297,6953,0},{7297,6937,0},{7293,6932,0},{7280,6923,0},{7272,6902,0},{7267,6898,0}, {7265,6905,0},{7265,6897,0},{7253,6887,0},{7248,6892,0},{7245,6885,0},{7232,6882,0}, {7232,6878,0},{7223,6873,0},{7203,6865,0},{7198,6857,0},{7192,6855,0},{7182,6847,0}, {7172,6830,0},{7167,6835,0},{7168,6828,0},{7167,6822,0},{7152,6795,0},{7150,6785,0}, {7143,6758,0},{7142,6758,0},{7130,6708,0},{7130,6692,0},{7117,6682,0},{7105,6662,0}, {7102,6662,0},{7100,6668,0},{7102,6677,0},{7105,6675,0},{7107,6682,0},{7110,6682,0}, {7108,6690,0},{7105,6683,0},{7100,6683,0},{7095,6677,0},{7088,6662,0},{7077,6668,0}, {7078,6678,0},{7080,6700,0},{7083,6710,0},{7082,6727,0},{7075,6733,0},{7053,6722,0}, {7047,6730,0},{7045,6725,0},{7042,6727,0},{7038,6720,0},{7022,6708,0},{7013,6723,0}, {7018,6725,0},{7015,6730,0},{7010,6728,0},{7010,6733,0},{7002,6725,0},{6998,6718,0}, {6995,6702,0},{6998,6697,0},{7002,6700,0},{7005,6698,0},{7003,6692,0},{7000,6687,0}, {6975,6677,0},{6957,6680,0},{6952,6693,0},{6957,6692,0},{6963,6685,0},{6965,6698,0}, {6965,6700,0},{6970,6698,0},{6968,6708,0},{6962,6735,0},{6962,6750,0},{6958,6763,0}, {6952,6778,0},{6948,6795,0},{6948,6803,0},{6952,6800,0},{6955,6807,0},{6955,6810,0}, {6938,6812,0},{6935,6803,0},{6928,6805,0},{6908,6835,0},{6898,6847,0},{6892,6865,0}, {6892,6878,0},{6897,6902,0},{6893,6903,0},{6895,6922,0},{6893,6907,0},{6892,6913,0}, {6892,6912,0},{6890,6895,0},{6887,6898,0},{6887,6912,0},{6883,6910,0},{6880,6902,0}, {6860,6890,0},{6837,6857,0},{6833,6857,0},{6832,6865,0},{6832,6857,0},{6822,6843,0}, {6822,6838,0},{6818,6828,0},{6823,6827,0},{6823,6818,0},{6830,6823,0},{6833,6825,0}, {6842,6817,0},{6847,6790,0},{6848,6778,0},{6852,6770,0},{6850,6780,0},{6858,6763,0}, {6868,6733,0},{6870,6720,0},{6875,6715,0},{6880,6703,0},{6885,6712,0},{6888,6688,0}, {6890,6658,0},{6895,6635,0},{6900,6625,0},{6903,6610,0},{6908,6568,0},{6913,6565,0}, {6912,6573,0},{6910,6577,0},{6910,6590,0},{6913,6587,0},{6918,6538,0},{6927,6505,0}, {6967,16243,128},{6970,16233,0},{6965,16230,0},{6965,16220,0},{6963,16217,0}, {6962,16220,0},{6958,16202,0},{6953,16200,0},{6952,16192,0},{6953,16182,0}, {6950,16177,0},{6948,16168,0},{6942,16160,0},{6938,16143,0},{6935,16148,0}, {6933,16147,0},{6933,16142,0},{6928,16147,0},{6922,16138,0},{6917,16147,0}, {6907,16150,0},{6902,16157,0},{6892,16158,0},{6880,16132,0},{6873,16130,0}, {6870,16133,0},{6868,16128,0},{6855,16113,0},{6853,16105,0},{6852,16095,0}, {6853,16080,0},{6857,16075,0},{6855,16100,0},{6857,16107,0},{6868,16122,0}, {6878,16122,0},{6892,16138,0},{6898,16142,0},{6905,16125,0},{6907,16103,0}, {6910,16097,0},{6917,16105,0},{6923,16100,0},{6930,16102,0},{6947,16092,0}, {6958,16100,0},{6963,16092,0},{6963,16087,0},{6965,16080,0},{6968,16057,0}, {6968,16038,0},{6965,16032,0},{6970,16030,0},{6973,16017,0},{6972,16013,0}, {6970,16018,0},{6980,15987,0},{6973,15973,0},{6980,15980,0},{6983,15973,0}, {6983,15977,0},{6990,15968,0},{6995,15975,0},{7000,15987,0},{7003,15985,0}, {7010,15992,0},{7010,15983,0},{7013,15968,0},{7012,15993,0},{7013,15995,0}, {7020,16000,0},{7023,16008,0},{7028,16010,0},{7042,16003,0},{7062,15978,0}, {7067,15967,0},{7082,15925,0},{7095,15858,0},{7105,15797,0},{7110,15682,0}, {7108,15655,0},{7110,15593,0},{7107,15560,0},{7097,15553,0},{7100,15550,0}, {7105,15550,0},{7103,15500,0},{7097,15442,0},{7097,15423,0},{7093,15417,0}, {7085,15365,0},{7088,15362,0},{7087,15347,0},{7088,15345,0},{7087,15333,0}, {7085,15332,0},{7085,15312,0},{7083,15308,0},{7083,15275,0},{7083,15258,0}, {7078,15253,0},{7085,15253,0},{7088,15222,0},{7093,15203,0},{7098,15167,0}, {7098,15165,0},{7097,15192,0},{7098,15207,0},{7098,15213,0},{7100,15213,0}, {7118,15177,0},{7125,15173,0},{7130,15163,0},{7135,15145,0},{7137,15117,0}, {7140,15103,0},{7137,15087,0},{7133,15078,0},{7127,15060,0},{7137,15067,0}, {7138,15073,0},{7138,15063,0},{7133,15057,0},{7127,15038,0},{7127,15028,0}, {7122,15015,0},{7120,15002,0},{7122,15002,0},{7127,15018,0},{7128,15030,0}, {7132,15033,0},{7133,15052,0},{7140,15055,0},{7145,15065,0},{7150,15065,0}, {7152,15055,0},{7150,15047,0},{7152,15043,0},{7150,15032,0},{7152,15027,0}, {7150,15005,0},{7147,14987,0},{7150,14988,0},{7153,14997,0},{7157,14993,0}, {7160,14997,0},{7160,15002,0},{7157,15000,0},{7158,15010,0},{7167,14997,0}, {7165,14968,0},{7167,14943,0},{7170,14910,0},{7167,14900,0},{7167,14882,0}, {7170,14885,0},{7170,14898,0},{7175,14903,0},{7177,14888,0},{7182,14883,0}, {7177,14910,0},{7177,14915,0},{7182,14920,0},{7185,14930,0},{7187,14932,0}, {7188,14928,0},{7190,14937,0},{7182,14957,0},{7177,14963,0},{7177,14972,0}, {7182,14987,0},{7183,14998,0},{7188,15007,0},{7195,15002,0},{7212,14972,0}, {7217,14953,0},{7222,14918,0},{7227,14872,0},{7230,14850,0},{7232,14827,0}, {7233,14748,0},{7232,14713,0},{7208,14663,0},{7190,14635,0},{7187,14625,0}, {7178,14607,0},{7177,14593,0},{7172,14575,0},{7173,14555,0},{7165,14532,0}, {7168,14525,0},{7170,14508,0},{7167,14502,0},{7170,14497,0},{7167,14488,0}, {7173,14492,0},{7178,14488,0},{7178,14507,0},{7183,14522,0},{7185,14522,0}, {7188,14505,0},{7192,14497,0},{7197,14498,0},{7193,14508,0},{7192,14520,0}, {7187,14535,0},{7192,14558,0},{7192,14575,0},{7193,14580,0},{7202,14580,0}, {7203,14575,0},{7202,14568,0},{7208,14562,0},{7222,14575,0},{7222,14568,0}, {7225,14562,0},{7223,14577,0},{7220,14590,0},{7218,14583,0},{7215,14585,0}, {7215,14595,0},{7210,14593,0},{7207,14598,0},{7212,14607,0},{7217,14607,0}, {7217,14620,0},{7217,14625,0},{7215,14623,0},{7213,14633,0},{7203,14610,0}, {7203,14598,0},{7193,14600,0},{7185,14595,0},{7187,14602,0},{7203,14643,0}, {7225,14687,0},{7232,14693,0},{7230,14605,0},{7227,14508,0},{7223,14490,0}, {7223,14475,0},{7218,14463,0},{7217,14453,0},{7217,14440,0},{7222,14418,0}, {7227,14410,0},{7227,14420,0},{7227,14423,0},{7230,14428,0},{7228,14440,0}, {7222,14452,0},{7227,14458,0},{7240,14477,0},{7243,14497,0},{7240,14508,0}, {7242,14517,0},{7240,14525,0},{7233,14535,0},{7235,14545,0},{7233,14632,0}, {7235,14647,0},{7233,14675,0},{7235,14685,0},{7240,14652,0},{7245,14620,0}, {7250,14582,0},{7257,14537,0},{7260,14467,0},{7263,14440,0},{7265,14413,0}, {7265,14382,0},{7268,14355,0},{7268,14305,0},{7270,14260,0},{7270,14242,0}, {7273,14187,0},{7277,14157,0},{7285,14135,0},{7290,14065,0},{7287,14058,0}, {7280,14067,0},{7278,14075,0},{7268,14102,0},{7258,14095,0},{7258,14110,0}, {7257,14093,0},{7253,14087,0},{7253,14077,0},{7250,14067,0},{7248,14040,0}, {7247,14010,0},{7248,13998,0},{7250,13978,0},{7250,13953,0},{7242,13938,0}, {7242,13933,0},{7233,13917,0},{7223,13908,0},{7217,13918,0},{7213,13933,0}, {7213,13935,0},{7215,13927,0},{7218,13925,0},{7217,13937,0},{7217,13955,0}, {7218,13943,0},{7223,13957,0},{7223,14003,0},{7220,14020,0},{7217,14020,0}, {7213,14007,0},{7217,13995,0},{7217,13987,0},{7207,13972,0},{7200,13972,0}, {7195,13963,0},{7195,13933,0},{7192,13962,0},{7187,13970,0},{7185,13980,0}, {7185,13975,0},{7178,13968,0},{7167,13973,0},{7158,13983,0},{7153,14000,0}, {7150,13998,0},{7147,14003,0},{7148,13985,0},{7145,13972,0},{7147,13968,0}, {7148,13963,0},{7150,13945,0},{7147,13938,0},{7142,13935,0},{7142,13922,0}, {7143,13912,0},{7145,13915,0},{7147,13912,0},{7157,13905,0},{7158,13892,0}, {7165,13872,0},{7160,13855,0},{7158,13860,0},{7155,13858,0},{7153,13847,0}, {7155,13843,0},{7157,13840,0},{7158,13840,0},{7162,13848,0},{7157,13807,0}, {7145,13798,0},{7140,13788,0},{7138,13783,0},{7137,13788,0},{7138,13795,0}, {7137,13793,0},{7133,13800,0},{7135,13805,0},{7133,13832,0},{7132,13837,0}, {7132,13808,0},{7130,13800,0},{7127,13823,0},{7123,13817,0},{7123,13808,0}, {7122,13805,0},{7122,13793,0},{7125,13783,0},{7123,13775,0},{7122,13775,0}, {7120,13785,0},{7118,13785,0},{7120,13790,0},{7118,13802,0},{7113,13807,0}, {7110,13798,0},{7112,13795,0},{7113,13797,0},{7115,13792,0},{7112,13785,0}, {7112,13780,0},{7118,13772,0},{7120,13753,0},{7122,13757,0},{7122,13767,0}, {7125,13773,0},{7125,13767,0},{7128,13770,0},{7123,13755,0},{7127,13750,0}, {7128,13742,0},{7128,13748,0},{7132,13745,0},{7135,13748,0},{7135,13738,0}, {7137,13735,0},{7137,13740,0},{7135,13728,0},{7137,13723,0},{7137,13727,0}, {7140,13723,0},{7142,13707,0},{7145,13697,0},{7147,13688,0},{7150,13682,0}, {7153,13672,0},{7152,13662,0},{7147,13655,0},{7150,13657,0},{7152,13652,0}, {7157,13648,0},{7158,13625,0},{7162,13613,0},{7163,13587,0},{7162,13558,0}, {7157,13537,0},{7157,13533,0},{7153,13542,0},{7153,13532,0},{7155,13523,0}, {7153,13517,0},{7150,13512,0},{7153,13507,0},{7153,13502,0},{7148,13482,0}, {7142,13477,0},{7142,13470,0},{7135,13477,0},{7127,13467,0},{7130,13465,0}, {7137,13475,0},{7140,13462,0},{7137,13445,0},{7138,13407,0},{7147,13353,0}, {7157,13317,0},{7173,13292,0},{7177,13272,0},{7183,13277,0},{7195,13273,0}, {7188,13253,0},{7168,13227,0},{7130,13195,0},{7125,13195,0},{7123,13212,0}, {7122,13218,0},{7123,13200,0},{7120,13185,0},{7118,13182,0},{7117,13187,0}, {7115,13187,0},{7113,13175,0},{7110,13177,0},{7088,13153,0},{7075,13122,0}, {7073,13102,0},{7075,13092,0},{7077,13088,0},{7083,13090,0},{7097,13080,0}, {7095,13072,0},{7088,13070,0},{7087,13063,0},{7088,13050,0},{7093,13047,0}, {7093,13032,0},{7097,13017,0},{7098,13022,0},{7108,13007,0},{7105,12993,0}, {7108,12993,0},{7110,12988,0},{7108,12963,0},{7112,12973,0},{7113,12975,0}, {7122,12970,0},{7127,12965,0},{7128,12952,0},{7133,12938,0},{7147,12932,0}, {7150,12923,0},{7153,12925,0},{7158,12918,0},{7160,12910,0},{7160,12890,0}, {7160,12885,0},{7165,12882,0},{7170,12890,0},{7172,12912,0},{7177,12930,0}, {7173,12943,0},{7172,12952,0},{7172,12953,0},{7180,12930,0},{7187,12930,0}, {7202,12907,0},{7200,12902,0},{7180,12918,0},{7173,12895,0},{7178,12865,0}, {7188,12862,0},{7190,12853,0},{7197,12843,0},{7202,12843,0},{7218,12807,0}, {7223,12787,0},{7223,12775,0},{7225,12775,0},{7225,12785,0},{7235,12767,0}, {7235,12745,0},{7240,12718,0},{7240,12695,0},{7240,12672,0},{7238,12672,0}, {7228,12690,0},{7207,12697,0},{7200,12705,0},{7197,12722,0},{7190,12733,0}, {7183,12723,0},{7175,12718,0},{7148,12732,0},{7138,12728,0},{7140,12722,0}, {7158,12720,0},{7177,12708,0},{7185,12713,0},{7202,12680,0},{7213,12675,0}, {7218,12658,0},{7223,12658,0},{7235,12637,0},{7228,12625,0},{7227,12612,0}, {7233,12588,0},{7233,12570,0},{7235,12562,0},{7242,12545,0},{7245,12525,0}, {7253,12513,0},{7258,12480,0},{7263,12473,0},{7263,12435,0},{7272,12412,0}, {7275,12378,0},{7275,12367,0},{7272,12347,0},{7273,12335,0},{7278,12305,0}, {7282,12265,0},{7287,12242,0},{7288,12205,0},{7292,12192,0},{7295,12197,0}, {7297,12187,0},{7297,12178,0},{7295,12175,0},{7297,12168,0},{7297,12138,0}, {7293,12103,0},{7297,12070,0},{7298,12058,0},{7302,11982,0},{7300,11975,0}, {7297,11982,0},{7295,11990,0},{7293,12017,0},{7290,12043,0},{7288,12057,0}, {7287,12055,0},{7290,12027,0},{7293,11982,0},{7300,11967,0},{7300,11958,0}, {7307,11953,0},{7307,11925,0},{7310,11898,0},{7320,11848,0},{7323,11840,0}, {7328,11835,0},{7333,11837,0},{7337,11843,0},{7338,11837,0},{7342,11835,0}, {7348,11848,0},{7348,11858,0},{7345,11868,0},{7347,11873,0},{7345,11892,0}, {7348,11900,0},{7355,11883,0},{7357,11863,0},{7358,11795,0},{7358,11772,0}, {7358,11725,0},{7367,11658,0},{7367,11613,0},{7370,11582,0},{7370,11543,0}, {7368,11517,0},{7360,11487,0},{7358,11453,0},{7358,11410,0},{7353,11385,0}, {7350,11348,0},{7343,11353,0},{7335,11377,0},{7335,11385,0},{7335,11397,0}, {7333,11403,0},{7332,11385,0},{7332,11370,0},{7328,11365,0},{7325,11357,0}, {7317,11353,0},{7310,11360,0},{7302,11352,0},{7297,11353,0},{7288,11337,0}, {7285,11315,0},{7273,11322,0},{7268,11335,0},{7263,11372,0},{7262,11397,0}, {7260,11408,0},{7262,11362,0},{7268,11330,0},{7272,11320,0},{7283,11308,0}, {7287,11313,0},{7288,11330,0},{7295,11348,0},{7300,11345,0},{7310,11352,0}, {7317,11348,0},{7333,11350,0},{7337,11327,0},{7342,11322,0},{7345,11313,0}, {7357,11328,0},{7358,11340,0},{7360,11343,0},{7368,11340,0},{7388,11313,0}, {7392,11298,0},{7400,11282,0},{7395,11282,0},{7388,11293,0},{7380,11295,0}, {7373,11278,0},{7372,11248,0},{7370,11225,0},{7372,11202,0},{7377,11165,0}, {7387,11130,0},{4228,13070,128},{4235,13075,0},{4245,13078,0},{4247,13083,0}, {4252,13083,0},{4252,13087,0},{4255,13085,0},{4257,13078,0},{4260,13077,0}, {4257,13073,0},{4262,13073,0},{4265,13067,0},{4267,13068,0},{4268,13072,0}, {4268,13075,0},{4268,13083,0},{4267,13083,0},{4265,13078,0},{4263,13080,0}, {4265,13088,0},{4265,13095,0},{4262,13093,0},{4263,13087,0},{4263,13082,0}, {4260,13093,0},{4263,13097,0},{4265,13102,0},{4262,13110,0},{4263,13110,0}, {4267,13112,0},{4262,13113,0},{4260,13120,0},{4257,13117,0},{4255,13120,0}, {4257,13123,0},{4260,13123,0},{4262,13122,0},{4267,13122,0},{4267,13125,0}, {4270,13125,0},{4277,13128,0},{4278,13132,0},{4277,13137,0},{4280,13135,0}, {4283,13137,0},{4287,13147,0},{4288,13140,0},{4290,13142,0},{4292,13138,0}, {4293,13138,0},{4293,13143,0},{4295,13150,0},{4300,13150,0},{4300,13152,0}, {4298,13155,0},{4300,13157,0},{4303,13157,0},{4315,13168,0},{4317,13170,0}, {4315,13165,0},{4317,13167,0},{4318,13167,0},{4318,13170,0},{4317,13173,0}, {4317,13175,0},{4318,13177,0},{4320,13172,0},{4322,13175,0},{4328,13177,0}, {4333,13182,0},{4333,13183,0},{4330,13183,0},{4330,13197,0},{4327,13198,0}, {4332,13202,0},{4332,13205,0},{4328,13205,0},{4323,13200,0},{4320,13192,0}, {4308,13183,0},{4312,13192,0},{4308,13188,0},{4308,13190,0},{4308,13198,0}, {4312,13203,0},{4318,13210,0},{4323,13223,0},{4328,13228,0},{4332,13228,0}, {4332,13230,0},{4328,13235,0},{4325,13230,0},{4322,13232,0},{4322,13237,0}, {4320,13238,0},{4317,13235,0},{4317,13232,0},{4313,13233,0},{4308,13230,0}, {4307,13228,0},{4302,13230,0},{4297,13228,0},{4288,13228,0},{4285,13232,0}, {4285,13235,0},{4290,13235,0},{4292,13238,0},{4293,13240,0},{4293,13247,0}, {4292,13250,0},{4287,13250,0},{4283,13258,0},{4285,13260,0},{4285,13268,0}, {4287,13268,0},{4290,13273,0},{4290,13277,0},{4288,13277,0},{4283,13277,0}, {4282,13280,0},{4277,13280,0},{4273,13285,0},{4277,13288,0},{4282,13290,0}, {4282,13293,0},{4282,13300,0},{4280,13300,0},{4273,13308,0},{4273,13303,0}, {4272,13300,0},{4268,13303,0},{4268,13317,0},{4275,13323,0},{4277,13332,0}, {4275,13337,0},{4280,13348,0},{4282,13352,0},{4282,13353,0},{4282,13357,0}, {4285,13360,0},{4285,13368,0},{4282,13372,0},{4285,13373,0},{4290,13387,0}, {4287,13390,0},{4297,13403,0},{4300,13412,0},{4308,13418,0},{4310,13430,0}, {4312,13432,0},{4312,13435,0},{4315,13442,0},{4323,13455,0},{4323,13460,0}, {4330,13470,0},{4330,13477,0},{4338,13483,0},{4343,13495,0},{4345,13497,0}, {4350,13507,0},{4350,13513,0},{4360,13517,0},{4363,13522,0},{4368,13523,0}, {4372,13518,0},{4372,13522,0},{4373,13523,0},{4373,13525,0},{4372,13525,0}, {4368,13527,0},{4372,13532,0},{4372,13535,0},{4375,13538,0},{4375,13542,0}, {4388,13552,0},{4390,13547,0},{4392,13547,0},{4395,13545,0},{4395,13548,0}, {4392,13552,0},{4395,13552,0},{4395,13553,0},{4398,13553,0},{4400,13555,0}, {4403,13563,0},{4412,13567,0},{4417,13565,0},{4418,13568,0},{4423,13572,0}, {4427,13580,0},{4432,13583,0},{4435,13583,0},{4440,13588,0},{4443,13598,0}, {4445,13600,0},{4445,13607,0},{4452,13618,0},{4455,13620,0},{4458,13623,0}, {4462,13622,0},{4467,13625,0},{4468,13627,0},{4470,13633,0},{4473,13630,0}, {4475,13633,0},{4478,13637,0},{4477,13643,0},{4483,13645,0},{4483,13648,0}, {4488,13653,0},{4488,13655,0},{4493,13655,0},{4503,13665,0},{4503,13668,0}, {4508,13677,0},{4518,13682,0},{4533,13705,0},{4537,13713,0},{4560,13737,0}, {4568,13752,0},{4580,13767,0},{4587,13770,0},{4593,13778,0},{4607,13793,0}, {4610,13795,0},{4613,13802,0},{4622,13810,0},{4628,13812,0},{4645,13820,0}, {4648,13823,0},{4653,13833,0},{4663,13835,0},{4673,13838,0},{4680,13842,0}, {4687,13850,0},{4692,13850,0},{4703,13857,0},{4708,13862,0},{4718,13877,0}, {4730,13888,0},{4732,13897,0},{4737,13898,0},{4742,13905,0},{4747,13905,0}, {4763,13917,0},{4765,13920,0},{4773,13922,0},{4782,13928,0},{4792,13940,0}, {4797,13952,0},{4807,13965,0},{4817,13973,0},{4830,13993,0},{4833,14003,0}, {4842,14008,0},{4845,14018,0},{4852,14020,0},{4857,14017,0},{4858,14020,0}, {4867,14018,0},{4877,14022,0},{4885,14025,0},{4890,14035,0},{4898,14040,0}, {4898,14037,0},{4902,14035,0},{4898,14030,0},{4897,14030,0},{4897,14028,0}, {4897,14025,0},{4900,14028,0},{4900,14022,0},{4903,14035,0},{4907,14033,0}, {4908,14030,0},{4908,14035,0},{4910,14035,0},{4915,14037,0},{4917,14035,0}, {4920,14037,0},{4920,14033,0},{4927,14040,0},{4927,14033,0},{4928,14033,0}, {4928,14043,0},{4940,14045,0},{4957,14055,0},{4968,14052,0},{4977,14053,0}, {4980,14047,0},{4987,14040,0},{4988,14043,0},{4998,14048,0},{5003,14063,0}, {5008,14070,0},{5010,14068,0},{5008,14062,0},{5007,14058,0},{5008,14058,0}, {5017,14052,0},{5022,14053,0},{5030,14052,0},{5033,14055,0},{5045,14050,0}, {5053,14043,0},{5060,14048,0},{5062,14052,0},{5070,14047,0},{5082,14055,0}, {5087,14053,0},{5092,14060,0},{5095,14068,0},{5100,14067,0},{5102,14070,0}, {5105,14072,0},{5110,14070,0},{5113,14067,0},{5118,14068,0},{5122,14065,0}, {5125,14072,0},{5127,14070,0},{5132,14068,0},{5133,14077,0},{5133,14080,0}, {5137,14087,0},{5142,14090,0},{5142,14082,0},{5143,14082,0},{5145,14078,0}, {5148,14083,0},{5150,14090,0},{5162,14092,0},{5167,14102,0},{5168,14108,0}, {5167,14112,0},{5170,14112,0},{5177,14118,0},{5183,14122,0},{5188,14128,0}, {5192,14142,0},{5195,14143,0},{5202,14130,0},{5208,14137,0},{5210,14135,0}, {5217,14150,0},{5215,14153,0},{5215,14155,0},{5222,14153,0},{5222,14140,0}, {5227,14133,0},{5228,14128,0},{5233,14123,0},{5235,14117,0},{5240,14113,0}, {5247,14113,0},{5252,14122,0},{5258,14128,0},{5263,14128,0},{5265,14132,0}, {5268,14128,0},{5273,14127,0},{5277,14120,0},{5285,14127,0},{5285,14118,0}, {5288,14108,0},{5292,14105,0},{5293,14097,0},{5298,14093,0},{5302,14095,0}, {5303,14085,0},{5310,14077,0},{5312,14070,0},{5312,14080,0},{5312,14087,0}, {5307,14090,0},{5305,14097,0},{5298,14115,0},{5298,14122,0},{5302,14125,0}, {5303,14118,0},{5308,14125,0},{5307,14135,0},{5307,14137,0},{5308,14137,0}, {5312,14138,0},{5315,14143,0},{5318,14142,0},{5322,14142,0},{5322,14135,0}, {5328,14142,0},{5332,14130,0},{5330,14123,0},{5337,14112,0},{5340,14112,0}, {5340,14103,0},{5345,14100,0},{5343,14093,0},{5347,14093,0},{5350,14097,0}, {5347,14110,0},{5357,14077,0},{5365,14055,0},{5368,14052,0},{5372,14053,0}, {5375,14045,0},{5378,14037,0},{5387,14025,0},{5390,14025,0},{5397,14033,0}, {5400,14023,0},{5405,14025,0},{5408,14015,0},{5412,14002,0},{5418,13990,0}, {5420,13992,0},{5422,13982,0},{5423,13978,0},{5430,13982,0},{5432,13975,0}, {5425,13963,0},{5418,13933,0},{5423,13900,0},{5432,13873,0},{5430,13865,0}, {5427,13872,0},{5423,13875,0},{5420,13872,0},{5417,13873,0},{5407,13867,0}, {5410,13877,0},{5407,13878,0},{5402,13878,0},{5395,13875,0},{5390,13868,0}, {5385,13868,0},{5383,13870,0},{5367,13862,0},{5357,13855,0},{5352,13845,0}, {5352,13828,0},{5352,13825,0},{5348,13822,0},{5353,13825,0},{5357,13823,0}, {5360,13835,0},{5365,13835,0},{5368,13837,0},{5382,13857,0},{5387,13858,0}, {5393,13857,0},{5398,13858,0},{5400,13858,0},{5390,13835,0},{5373,13828,0}, {5367,13813,0},{5363,13802,0},{5357,13790,0},{5355,13768,0},{5353,13748,0}, {5352,13738,0},{5353,13732,0},{5357,13722,0},{5358,13720,0},{5360,13722,0}, {5362,13728,0},{5367,13735,0},{5367,13748,0},{5368,13750,0},{5372,13757,0}, {5377,13755,0},{5378,13760,0},{5383,13760,0},{5388,13770,0},{5390,13778,0}, {5397,13787,0},{5393,13775,0},{5397,13767,0},{5395,13760,0},{5397,13757,0}, {5403,13743,0},{5405,13730,0},{5412,13730,0},{5415,13742,0},{5413,13745,0}, {5408,13745,0},{5408,13748,0},{5412,13748,0},{5413,13752,0},{5415,13752,0}, {5418,13758,0},{5423,13762,0},{5430,13773,0},{5432,13773,0},{5432,13768,0}, {5430,13765,0},{5430,13762,0},{5430,13753,0},{5432,13748,0},{5430,13738,0}, {5428,13737,0},{5427,13728,0},{5422,13725,0},{5422,13718,0},{5418,13717,0}, {5413,13707,0},{5403,13717,0},{5403,13728,0},{5387,13720,0},{5380,13712,0}, {5382,13708,0},{5385,13703,0},{5385,13695,0},{5383,13685,0},{5378,13682,0}, {5377,13678,0},{5382,13668,0},{5393,13665,0},{5402,13670,0},{5405,13677,0}, {5408,13677,0},{5415,13682,0},{5422,13675,0},{5425,13682,0},{5428,13675,0}, {5432,13682,0},{5435,13677,0},{5442,13673,0},{5443,13677,0},{5442,13682,0}, {5443,13683,0},{5447,13682,0},{5448,13683,0},{5452,13682,0},{5458,13688,0}, {5460,13682,0},{5465,13682,0},{5465,13677,0},{5462,13670,0},{5463,13665,0}, {5468,13667,0},{5465,13662,0},{5458,13653,0},{5460,13628,0},{5462,13622,0}, {5460,13610,0},{5457,13600,0},{5457,13573,0},{5458,13570,0},{5467,13567,0}, {5468,13547,0},{5472,13533,0},{5470,13523,0},{5472,13527,0},{5480,13517,0}, {5487,13515,0},{5493,13522,0},{5512,13555,0},{5513,13572,0},{5520,13580,0}, {5520,13587,0},{5525,13595,0},{5530,13607,0},{5530,13613,0},{5535,13618,0}, {5543,13630,0},{5553,13635,0},{5558,13643,0},{5558,13652,0},{5563,13655,0}, {5563,13660,0},{5567,13668,0},{5565,13675,0},{5565,13678,0},{5572,13682,0}, {5577,13690,0},{5580,13698,0},{5580,13707,0},{5588,13717,0},{5593,13730,0}, {5597,13733,0},{5597,13737,0},{5593,13742,0},{5595,13740,0},{5597,13743,0}, {5600,13743,0},{5602,13745,0},{5605,13745,0},{5612,13757,0},{5615,13773,0}, {5617,13773,0},{5620,13777,0},{5623,13777,0},{5625,13785,0},{5630,13788,0}, {5638,13792,0},{5638,13802,0},{5640,13807,0},{5645,13808,0},{5645,13817,0}, {5643,13823,0},{5648,13825,0},{5650,13815,0},{5657,13812,0},{5663,13822,0}, {5663,13827,0},{5667,13827,0},{5668,13830,0},{5672,13830,0},{5673,13840,0}, {5685,13848,0},{5687,13858,0},{5698,13863,0},{5700,13875,0},{5702,13882,0}, {5705,13882,0},{5702,13890,0},{5707,13897,0},{5713,13895,0},{5715,13897,0}, {5713,13907,0},{5715,13907,0},{5727,13917,0},{5730,13937,0},{5732,13940,0}, {5732,13948,0},{5738,13957,0},{5745,13960,0},{5748,13970,0},{5752,13983,0}, {5765,13993,0},{5772,14005,0},{5777,14028,0},{5775,14035,0},{5780,14042,0}, {5782,14050,0},{5793,14052,0},{5808,14062,0},{5823,14068,0},{5830,14078,0}, {5847,14108,0},{5848,14122,0},{5852,14133,0},{5865,14162,0},{5868,14170,0}, {5882,14183,0},{5897,14198,0},{5912,14225,0},{5923,14258,0},{5935,14315,0}, {5937,14313,0},{5938,14320,0},{5937,14333,0},{5933,14343,0},{5933,14353,0}, {5940,14378,0},{5942,14390,0},{5942,14405,0},{5938,14428,0},{5940,14432,0}, {5940,14438,0},{5938,14445,0},{5937,14442,0},{5937,14468,0},{5938,14463,0}, {5940,14462,0},{5940,14477,0},{5938,14480,0},{5938,14477,0},{5938,14493,0}, {5938,14507,0},{5942,14525,0},{5942,14528,0},{5938,14532,0},{5942,14562,0}, {5943,14567,0},{5942,14567,0},{5938,14577,0},{5942,14582,0},{5940,14583,0}, {5942,14592,0},{5935,14592,0},{5933,14587,0},{5927,14580,0},{5922,14585,0}, {5922,14593,0},{5915,14595,0},{5915,14603,0},{5920,14618,0},{5918,14632,0}, {5920,14635,0},{5927,14632,0},{5938,14632,0},{5945,14647,0},{5947,14653,0}, {5942,14667,0},{5937,14673,0},{5935,14687,0},{5937,14700,0},{5932,14717,0}, {5932,14730,0},{5923,14748,0},{5925,14755,0},{5928,14755,0},{5930,14760,0}, {5930,14767,0},{5927,14770,0},{5928,14782,0},{5930,14783,0},{5935,14778,0}, {5938,14783,0},{5942,14822,0},{5938,14837,0},{5935,14840,0},{5933,14837,0}, {5930,14840,0},{5927,14840,0},{5927,14842,0},{5925,14855,0},{5927,14868,0}, {5923,14872,0},{5925,14877,0},{5928,14880,0},{5925,14887,0},{5923,14890,0}, {5925,14895,0},{5932,14892,0},{5938,14897,0},{5940,14892,0},{5938,14892,0}, {5935,14887,0},{5940,14887,0},{5937,14878,0},{5938,14870,0},{5945,14870,0}, {5948,14875,0},{5955,14885,0},{5953,14888,0},{5952,14883,0},{5948,14885,0}, {5947,14890,0},{5947,14895,0},{5945,14897,0},{5950,14912,0},{5947,14922,0}, {5950,14922,0},{5953,14918,0},{5955,14908,0},{5958,14910,0},{5962,14903,0}, {5963,14903,0},{5965,14910,0},{5968,14918,0},{5973,14933,0},{5973,14935,0}, {5975,14932,0},{5977,14935,0},{5975,14937,0},{5977,14962,0},{5970,15003,0}, {5965,15013,0},{5965,15027,0},{5962,15035,0},{5962,15042,0},{5960,15045,0}, {5958,15043,0},{5955,15052,0},{5957,15073,0},{5955,15073,0},{5952,15050,0}, {5948,15043,0},{5952,15067,0},{5950,15072,0},{5948,15073,0},{5947,15068,0}, {5945,15068,0},{5945,15087,0},{5947,15093,0},{5948,15092,0},{5950,15093,0}, {5955,15087,0},{5957,15090,0},{5958,15110,0},{5957,15123,0},{5957,15130,0}, {5960,15133,0},{5960,15137,0},{5957,15140,0},{5955,15145,0},{5950,15148,0}, {5948,15160,0},{5943,15167,0},{5938,15167,0},{5935,15172,0},{5932,15167,0}, {5930,15170,0},{5930,15187,0},{5927,15198,0},{5928,15208,0},{5930,15213,0}, {5927,15217,0},{5923,15228,0},{5920,15228,0},{5920,15217,0},{5915,15205,0}, {5915,15187,0},{5915,15180,0},{5913,15172,0},{5915,15167,0},{5917,15162,0}, {5917,15140,0},{5915,15137,0},{5912,15133,0},{5908,15117,0},{5912,15107,0}, {5903,15113,0},{5902,15118,0},{5895,15122,0},{5892,15128,0},{5883,15132,0}, {5887,15145,0},{5885,15157,0},{5890,15208,0},{5892,15212,0},{5898,15212,0}, {5900,15220,0},{5902,15235,0},{5905,15235,0},{5903,15240,0},{5902,15240,0}, {5900,15247,0},{5895,15255,0},{5895,15263,0},{5890,15272,0},{5893,15282,0}, {5890,15290,0},{5895,15288,0},{5907,15298,0},{5910,15315,0},{5908,15330,0}, {5913,15332,0},{5913,15327,0},{5915,15332,0},{5922,15332,0},{5925,15337,0}, {5922,15352,0},{5920,15358,0},{5927,15375,0},{5925,15373,0},{5922,15373,0}, {5918,15367,0},{5917,15380,0},{5908,15390,0},{5905,15403,0},{5910,15415,0}, {5908,15427,0},{5912,15430,0},{5912,15435,0},{5918,15432,0},{5920,15433,0}, {5922,15445,0},{5920,15452,0},{5913,15465,0},{5913,15470,0},{5912,15477,0}, {5917,15473,0},{5920,15477,0},{5918,15500,0},{5920,15507,0},{5917,15518,0}, {5922,15513,0},{5925,15518,0},{5928,15513,0},{5937,15518,0},{5940,15507,0}, {5950,15497,0},{5948,15490,0},{5945,15485,0},{5948,15483,0},{5948,15475,0}, {5955,15463,0},{5953,15457,0},{5955,15442,0},{5950,15442,0},{5943,15450,0}, {5942,15443,0},{5947,15438,0},{5950,15440,0},{5953,15438,0},{5952,15435,0}, {5948,15435,0},{5945,15428,0},{5945,15413,0},{5947,15410,0},{5952,15407,0}, {5955,15413,0},{5965,15422,0},{5958,15430,0},{5958,15437,0},{5972,15423,0}, {5988,15423,0},{5990,15440,0},{5988,15443,0},{5985,15440,0},{5988,15448,0}, {5992,15447,0},{6005,15453,0},{6027,15480,0},{6035,15493,0},{6040,15508,0}, {6042,15513,0},{6047,15518,0},{6052,15533,0},{6053,15538,0},{6052,15542,0}, {6052,15545,0},{6053,15548,0},{6058,15548,0},{6058,15552,0},{6062,15555,0}, {6065,15565,0},{6067,15570,0},{6073,15582,0},{6072,15590,0},{6085,15590,0}, {6088,15592,0},{6102,15610,0},{6118,15642,0},{6122,15658,0},{6122,15667,0}, {6128,15663,0},{6133,15667,0},{6142,15663,0},{6153,15670,0},{6153,15687,0}, {6160,15698,0},{6165,15702,0},{6170,15715,0},{6172,15728,0},{6170,15737,0}, {6177,15737,0},{6180,15748,0},{6178,15790,0},{6173,15803,0},{6175,15812,0}, {6182,15832,0},{6182,15845,0},{6178,15852,0},{6183,15863,0},{6182,15885,0}, {6185,15883,0},{6188,15888,0},{6192,15920,0},{6188,15937,0},{6185,15938,0}, {6183,15933,0},{6177,15945,0},{6182,15950,128},{6182,15953,0},{6172,15948,0}, {6168,15948,0},{6167,15953,0},{6170,15967,0},{6172,15967,0},{6170,15972,0}, {6173,15975,0},{6172,15983,0},{6178,15992,0},{6182,15997,0},{6188,16010,0}, {6188,16015,0},{6195,16033,0},{6195,16035,0},{6192,16033,0},{6190,16037,0}, {6187,16035,0},{6185,16037,0},{6182,16035,0},{6177,16037,0},{6170,16023,0}, {6167,16028,0},{6163,16023,0},{6158,16022,0},{6157,16023,0},{6152,16017,0}, {6152,16008,0},{6147,16002,0},{6145,16008,0},{6142,16003,0},{6138,16003,0}, {6140,15997,0},{6138,15995,0},{6137,15995,0},{6133,15988,0},{6130,15992,0}, {6132,16000,0},{6128,15993,0},{6132,15985,0},{6130,15983,0},{6125,15975,0}, {6127,15985,0},{6125,15992,0},{6122,15990,0},{6118,15995,0},{6115,15993,0}, {6112,15998,0},{6110,15993,0},{6103,15990,0},{6098,15980,0},{6093,15978,0}, {6095,15992,0},{6098,15993,0},{6105,16017,0},{6107,16035,0},{6105,16043,0}, {6103,16038,0},{6100,16040,0},{6095,16033,0},{6092,16035,0},{6090,16032,0}, {6092,16030,0},{6090,16023,0},{6085,16023,0},{6083,16017,0},{6078,16022,0}, {6073,16022,0},{6072,16018,0},{6068,16018,0},{6068,16012,0},{6058,16013,0}, {6063,16027,0},{6067,16028,0},{6070,16035,0},{6072,16033,0},{6075,16038,0}, {6075,16042,0},{6073,16040,0},{6072,16045,0},{6075,16057,0},{6073,16058,0}, {6073,16062,0},{6078,16067,0},{6073,16080,0},{6080,16082,0},{6092,16090,0}, {6092,16095,0},{6097,16103,0},{6100,16117,0},{6107,16122,0},{6108,16130,0}, {6113,16143,0},{6117,16142,0},{6120,16147,0},{6120,16157,0},{6123,16162,0}, {6127,16157,0},{6127,16165,0},{6130,16175,0},{6138,16180,0},{6135,16187,0}, {6143,16188,0},{6138,16193,0},{6142,16203,0},{6145,16205,0},{6147,16208,0}, {6153,16222,0},{6157,16222,0},{6158,16228,0},{6162,16228,0},{6163,16235,0}, {6167,16240,0},{6167,16253,0},{6162,16267,0},{6160,16275,0},{6163,16275,0}, {6163,16270,0},{6167,16263,0},{6168,16265,0},{6172,16280,0},{6172,16285,0}, {6167,16293,0},{6163,16285,0},{6162,16290,0},{6158,16288,0},{6158,16295,0}, {6152,16300,0},{6155,16308,0},{6160,16307,0},{6162,16310,0},{6163,16313,0}, {6162,16322,0},{6165,16320,0},{6167,16328,0},{6168,16332,0},{6172,16330,0}, {6175,16323,0},{6178,16298,0},{6180,16295,0},{6192,16305,0},{6193,16300,0}, {6197,16303,0},{6198,16310,0},{6202,16310,0},{6207,16317,0},{6210,16308,0}, {6212,16313,0},{6220,16308,0},{6228,16312,0},{6230,16317,0},{6230,16322,0}, {6233,16323,0},{6235,16335,0},{6238,16332,0},{6240,16323,0},{6243,16322,0}, {6245,16317,0},{6247,16322,0},{6252,16322,0},{6255,16327,0},{6257,16348,0}, {6262,16373,0},{6260,16392,0},{6265,16395,0},{6268,16427,0},{6272,16437,0}, {6268,16458,0},{6258,16470,0},{6255,16492,0},{6252,16503,0},{6250,16532,0}, {6245,16565,0},{6243,16562,0},{6245,16547,0},{6248,16535,0},{6247,16513,0}, {6245,16508,0},{6240,16523,0},{6232,16533,0},{6232,16528,0},{6238,16523,0}, {6242,16508,0},{6242,16492,0},{6247,16472,0},{6247,16458,0},{6245,16452,0}, {6242,16443,0},{6237,16440,0},{6233,16423,0},{6227,16412,0},{6220,16408,0}, {6215,16410,0},{6210,16407,0},{6203,16410,0},{6198,16405,0},{6188,16407,0}, {6183,16403,0},{6178,16407,0},{6168,16402,0},{6163,16385,0},{6157,16383,0}, {6145,16375,0},{6142,16378,0},{6145,16385,0},{6143,16397,0},{6137,16402,0}, {6133,16402,0},{6130,16395,0},{6123,16393,0},{6115,16363,0},{6112,16360,0}, {6107,16360,0},{6105,16352,0},{6102,16347,0},{6100,16347,0},{6100,16352,0}, {6093,16375,0},{6087,16370,0},{6087,16357,0},{6083,16340,0},{6075,16330,0}, {6072,16332,0},{6075,16327,0},{6080,16330,0},{6082,16330,0},{6082,16318,0}, {6080,16310,0},{6078,16312,0},{6077,16308,0},{6078,16302,0},{6077,16288,0}, {6065,16277,0},{6060,16262,0},{6062,16250,0},{6055,16240,0},{6053,16220,0}, {6048,16212,0},{6042,16192,0},{6032,16187,0},{6033,16192,0},{6032,16192,0}, {6025,16193,0},{6017,16182,0},{6012,16172,0},{6010,16163,0},{6007,16158,0}, {6007,16150,0},{6005,16147,0},{5985,16125,0},{5977,16110,0},{5972,16097,0}, {5962,16087,0},{5955,16048,0},{5945,16045,0},{5935,16033,0},{5932,16020,0}, {5923,16005,0},{5917,15990,0},{5908,15978,0},{5905,15978,0},{5902,15973,0}, {5895,15975,0},{5887,15972,0},{5883,15962,0},{5880,15962,0},{5872,15950,0}, {5868,15948,0},{5867,15940,0},{5853,15918,0},{5847,15923,0},{5852,15915,0}, {5845,15910,0},{5842,15903,0},{5827,15867,0},{5803,15823,0},{5803,15828,0}, {5800,15830,0},{5797,15835,0},{5795,15833,0},{5800,15827,0},{5802,15822,0}, {5798,15805,0},{5798,15792,0},{5798,15780,0},{5802,15772,0},{5802,15765,0}, {5798,15763,0},{5795,15758,0},{5788,15757,0},{5782,15750,0},{5778,15743,0}, {5777,15733,0},{5777,15717,0},{5780,15707,0},{5785,15698,0},{5782,15690,0}, {5780,15687,0},{5773,15675,0},{5773,15685,0},{5765,15693,0},{5753,15698,0}, {5743,15698,0},{5712,15670,0},{5708,15672,0},{5703,15667,0},{5707,15665,0}, {5710,15655,0},{5708,15653,0},{5702,15652,0},{5695,15645,0},{5685,15620,0}, {5682,15620,0},{5678,15613,0},{5672,15607,0},{5677,15607,0},{5683,15617,0}, {5685,15617,0},{5682,15612,0},{5667,15595,0},{5660,15593,0},{5613,15573,0}, {5610,15577,0},{5610,15572,0},{5605,15568,0},{5592,15565,0},{5562,15562,0}, {5557,15558,0},{5533,15555,0},{5513,15557,0},{5492,15560,0},{5482,15565,0}, {5478,15563,0},{5445,15572,0},{5385,15593,0},{5383,15592,0},{5310,15608,0}, {5285,15610,0},{5257,15627,0},{5255,15630,0},{5252,15635,0},{5252,15643,0}, {5248,15643,0},{5245,15637,0},{5250,15637,0},{5252,15628,0},{5228,15640,0}, {5193,15650,0},{5175,15650,0},{5152,15647,0},{5147,15648,0},{5142,15652,0}, {5132,15652,0},{5127,15657,0},{5125,15663,0},{5123,15667,0},{5118,15670,0}, {5110,15670,0},{5107,15675,0},{5098,15675,0},{5088,15665,0},{5088,15670,0}, {5095,15678,0},{5102,15682,0},{5107,15695,0},{5120,15715,0},{5120,15722,0}, {5123,15725,0},{5133,15735,0},{5135,15747,0},{5138,15747,0},{5140,15752,0}, {5143,15748,0},{5148,15753,0},{5155,15768,0},{5157,15777,0},{5163,15788,0}, {5163,15792,0},{5167,15792,0},{5172,15798,0},{5177,15802,0},{5180,15812,0}, {5190,15818,0},{5193,15828,0},{5203,15828,0},{5207,15833,0},{5212,15832,0}, {5213,15833,0},{5212,15837,0},{5218,15843,0},{5222,15838,0},{5223,15843,0}, {5227,15842,0},{5227,15852,0},{5230,15855,0},{5233,15855,0},{5235,15850,0}, {5238,15857,0},{5243,15853,0},{5242,15842,0},{5243,15847,0},{5247,15847,0}, {5248,15853,0},{5250,15850,0},{5252,15852,0},{5257,15852,0},{5260,15843,0}, {5262,15845,0},{5265,15842,0},{5262,15853,0},{5265,15857,0},{5272,15860,0}, {5273,15857,0},{5275,15850,0},{5275,15848,0},{5278,15850,0},{5278,15857,0}, {5283,15855,0},{5282,15858,0},{5285,15863,0},{5287,15860,0},{5290,15865,0}, {5293,15863,0},{5295,15852,0},{5293,15848,0},{5290,15853,0},{5292,15848,0}, {5290,15845,0},{5295,15842,0},{5297,15845,0},{5300,15842,0},{5302,15843,0}, {5303,15850,0},{5307,15853,0},{5305,15860,0},{5302,15863,0},{5298,15868,0}, {5295,15867,0},{5288,15872,0},{5302,15892,0},{5308,15903,0},{5317,15928,0}, {5315,15938,0},{5323,15948,0},{5327,15962,0},{5323,15972,0},{5327,15977,0}, {5328,15982,0},{5325,15978,0},{5322,15977,0},{5315,15993,0},{5310,15997,0}, {5310,16005,0},{5327,16002,0},{5327,15997,0},{5320,15997,0},{5327,15992,0}, {5330,15997,0},{5333,15997,0},{5333,15992,0},{5338,15993,0},{5340,15988,0}, {5348,15985,0},{5348,15980,0},{5350,15982,0},{5352,15980,0},{5353,15982,0}, {5352,15985,0},{5347,15993,0},{5352,15997,0},{5357,15997,0},{5367,15990,0}, {5367,15987,0},{5358,15992,0},{5365,15982,0},{5368,15987,0},{5375,15983,0}, {5385,15985,0},{5398,15990,0},{5407,15998,0},{5412,15998,0},{5420,16010,0}, {5425,16025,0},{5437,16040,0},{5452,16072,0},{5453,16072,0},{5455,16085,0}, {5458,16112,0},{5458,16118,0},{5455,16122,0},{5452,16123,0},{5448,16130,0}, {5452,16147,0},{5450,16152,0},{5452,16162,0},{5450,16173,0},{5458,16182,0}, {5465,16198,0},{5470,16200,0},{5477,16212,0},{5482,16210,0},{5483,16215,0}, {5487,16215,0},{5490,16207,0},{5502,16197,0},{5507,16188,0},{5512,16183,0}, {5513,16182,0},{5537,16172,0},{5548,16172,0},{5563,16175,0},{5572,16182,0}, {5580,16192,0},{5587,16193,0},{5595,16202,0},{5602,16205,0},{5607,16203,0}, {5610,16210,0},{5617,16222,0},{5620,16243,0},{5623,16248,0},{5623,16252,0}, {5627,16257,0},{5633,16248,0},{5638,16240,0},{5640,16240,0},{5640,16247,0}, {5643,16252,0},{5642,16257,0},{5648,16263,0},{5648,16270,0},{5648,16275,0}, {5643,16290,0},{5645,16293,0},{5652,16293,0},{5655,16298,0},{5652,16310,0}, {5647,16307,0},{5643,16293,0},{5640,16292,0},{5637,16285,0},{5635,16272,0}, {5627,16267,0},{5623,16260,0},{5622,16252,0},{5622,16258,0},{5615,16270,0}, {5610,16275,0},{5603,16288,0},{5602,16303,0},{5603,16305,0},{5612,16313,0}, {5620,16335,0},{5625,16333,0},{5630,16332,0},{5632,16333,0},{5638,16332,0}, {5645,16323,0},{5648,16327,0},{5655,16323,0},{5657,16325,0},{5663,16322,0}, {5670,16325,0},{5673,16322,0},{5673,16312,0},{5675,16308,0},{5673,16300,0}, {5670,16292,0},{5673,16285,0},{5678,16278,0},{5688,16278,0},{5705,16283,0}, {5722,16275,0},{5735,16277,0},{5735,16273,0},{5743,16285,0},{5748,16305,0}, {5758,16312,0},{5760,16320,0},{5763,16322,0},{5767,16320,0},{5775,16328,0}, {5777,16327,0},{5785,16320,0},{5785,16300,0},{5792,16285,0},{5793,16277,0}, {5797,16270,0},{5795,16265,0},{5795,16255,0},{5792,16250,0},{5787,16247,0}, {5777,16248,0},{5768,16237,0},{5768,16233,0},{5772,16233,0},{5773,16240,0}, {5778,16243,0},{5780,16225,0},{5785,16210,0},{5790,16203,0},{5803,16193,0}, {5807,16193,0},{5845,16213,0},{5867,16240,0},{5875,16252,0},{5883,16277,0}, {5887,16278,0},{5885,16277,0},{5887,16272,0},{5883,16272,0},{5887,16267,0}, {5890,16280,0},{5898,16288,0},{5895,16292,0},{5893,16285,0},{5895,16298,0}, {5898,16303,0},{5903,16305,0},{5903,16300,0},{5913,16288,0},{5913,16293,0}, {5917,16295,0},{5915,16298,0},{5917,16302,0},{5913,16307,0},{5912,16307,0}, {5908,16317,0},{5903,16315,0},{5905,16320,0},{5915,16318,0},{5918,16312,0}, {5920,16307,0},{5920,16308,0},{5923,16307,0},{5927,16308,0},{5930,16317,0}, {5928,16320,0},{5930,16328,0},{5925,16323,0},{5925,16328,0},{5938,16333,0}, {5943,16330,0},{5950,16317,0},{5955,16320,0},{5957,16317,0},{5958,16327,0}, {5958,16333,0},{5962,16338,0},{5982,16337,0},{5985,16345,0},{5990,16350,0}, {5988,16368,0},{5998,16380,0},{5997,16372,0},{5997,16368,0},{5998,16365,0}, {6002,16362,0},{6003,16363,0},{6005,16373,0},{6005,16382,0},{6005,16383,0}, {6003,16387,0},{6002,16385,0},{6003,16390,0},{6003,16403,0},{5998,16412,0}, {6000,16420,0},{5992,16410,0},{5990,16403,0},{5987,16405,0},{5985,16418,0}, {5992,16410,0},{5997,16417,0},{5998,16430,0},{6000,16435,0},{6002,16437,0}, {6005,16432,0},{6008,16432,0},{6007,16435,0},{6012,16445,0},{6008,16453,0}, {6003,16460,0},{5993,16473,0},{5985,16478,0},{5982,16477,0},{5978,16482,0}, {5982,16492,0},{5983,16500,0},{5997,16515,0},{5998,16522,0},{6003,16515,0}, {6008,16512,0},{6008,16507,0},{6007,16505,0},{6008,16500,0},{6013,16500,0}, {6012,16505,0},{6013,16512,0},{6017,16518,0},{6015,16518,0},{6013,16515,0}, {6008,16520,0},{6010,16525,0},{6013,16528,0},{6018,16543,0},{6025,16543,0}, {6022,16545,0},{6022,16552,0},{6025,16565,0},{6028,16577,0},{6033,16585,0}, {6038,16598,0},{6043,16605,0},{6045,16620,0},{6042,16605,0},{6037,16595,0}, {6038,16592,0},{6043,16600,0},{6048,16622,0},{6048,16630,0},{6047,16632,0}, {6050,16638,0},{6048,16640,0},{6045,16635,0},{6040,16633,0},{6038,16627,0}, {6040,16623,0},{6033,16627,0},{6025,16627,0},{6020,16628,0},{6017,16625,0}, {6012,16617,0},{6002,16613,0},{5997,16615,0},{5992,16610,0},{5983,16610,0}, {5982,16612,0},{5985,16630,0},{6000,16655,0},{6022,16683,0},{6025,16693,0}, {6028,16693,0},{6030,16690,0},{6032,16705,0},{6043,16702,0},{6042,16707,0}, {6038,16712,0},{6035,16718,0},{6037,16730,0},{6038,16730,0},{6042,16728,0}, {6040,16737,0},{6047,16733,0},{6042,16745,0},{6043,16747,0},{6047,16748,0}, {6043,16753,0},{6045,16762,0},{6047,16768,0},{6048,16777,0},{6053,16775,0}, {6055,16777,0},{6052,16782,0},{6053,16797,0},{6058,16818,0},{6060,16833,0}, {6060,16848,0},{6055,16867,0},{6057,16877,0},{6055,16892,0},{6057,16903,0}, {6057,16915,0},{6058,16913,0},{6058,16920,0},{6062,16922,0},{6062,16928,0}, {6057,16937,0},{6055,16933,0},{6057,16927,0},{6055,16925,0},{6047,16953,0}, {6047,16957,0},{6043,16960,0},{6042,16970,0},{6028,16975,0},{6023,16982,0}, {6025,16988,0},{6023,16997,0},{6022,16985,0},{6018,16983,0},{6007,16993,0}, {6003,17008,0},{6002,17012,0},{5998,17010,0},{5992,17025,0},{5997,17040,0}, {6022,17047,0},{6027,17050,0},{6033,17067,0},{6035,17065,0},{6037,17060,0}, {6038,17062,0},{6043,17058,0},{6043,17052,0},{6045,17052,0},{6045,17060,0}, {6043,17062,0},{6042,17065,0},{6045,17078,0},{6050,17080,0},{6050,17075,0}, {6053,17075,0},{6050,17085,0},{6053,17100,0},{6057,17108,0},{6055,17118,0}, {6063,17137,0},{6068,17137,0},{6072,17140,0},{6078,17140,0},{6073,17147,0}, {6068,17142,0},{6072,17148,0},{6075,17163,0},{6077,17162,0},{6080,17153,0}, {6082,17167,0},{6085,17173,0},{6083,17185,0},{6085,17195,0},{6095,17195,0}, {6092,17200,0},{6088,17198,0},{6085,17202,0},{6087,17207,0},{6093,17212,0}, {6095,17218,0},{6097,17220,0},{6102,17217,0},{6103,17212,0},{6110,17202,0}, {6107,17215,0},{6102,17222,0},{6102,17228,0},{6102,17238,0},{6105,17248,0}, {6108,17248,0},{6107,17243,0},{6108,17242,0},{6110,17238,0},{6110,17230,0}, {6113,17225,0},{6112,17232,0},{6113,17243,0},{6117,17237,0},{6123,17235,0}, {6118,17255,0},{6120,17265,0},{6123,17267,0},{6127,17277,0},{6133,17267,0}, {6128,17285,0},{6130,17295,0},{6137,17290,0},{6143,17272,0},{6147,17288,0}, {6145,17292,0},{6145,17295,0},{6142,17298,0},{6138,17308,0},{6143,17322,0}, {6147,17330,0},{6152,17328,0},{6155,17335,0},{6155,17348,0},{6165,17347,0}, {6175,17357,0},{6175,17362,0},{6170,17370,0},{6168,17382,0},{6165,17380,0}, {6170,17392,0},{6172,17398,0},{6175,17402,0},{6178,17410,0},{6178,17403,0}, {6182,17400,0},{6183,17408,0},{6183,17407,0},{6182,17418,0},{6182,17420,0}, {6180,17415,0},{6182,17418,0},{6180,17428,0},{6185,17435,0},{6183,17438,0}, {6182,17437,0},{6180,17445,0},{6183,17460,0},{6187,17470,0},{6188,17473,0}, {6195,17462,0},{6198,17460,0},{6195,17470,0},{6195,17478,0},{6193,17480,0}, {6192,17477,0},{6193,17482,0},{6202,17517,0},{6205,17525,0},{6217,17527,0}, {6210,17530,0},{6212,17540,0},{6207,17530,0},{6217,17553,0},{6223,17580,0}, {6232,17628,0},{6240,17642,0},{6247,17663,0},{6247,17660,0},{6248,17660,0}, {6253,17668,0},{6253,17672,0},{6252,17668,0},{6250,17668,0},{6253,17685,0}, {6257,17727,0},{6258,17717,0},{6258,17705,0},{6262,17702,0},{6267,17693,0}, {6270,17693,0},{6272,17697,0},{6277,17705,0},{6278,17700,0},{6287,17698,0}, {6285,17703,0},{6283,17703,0},{6278,17715,0},{6272,17713,0},{6270,17720,0}, {6272,17727,0},{6273,17725,0},{6280,17733,0},{6282,17745,0},{6278,17742,0}, {6277,17743,0},{6277,17740,0},{6277,17733,0},{6273,17732,0},{6268,17733,0}, {6262,17727,0},{6258,17733,0},{6258,17730,0},{6257,17772,0},{6255,17803,0}, {6248,17828,0},{6235,17897,0},{6228,17907,0},{6228,17910,0},{6233,17915,0}, {6242,17915,0},{6247,17910,0},{6250,17918,0},{6250,17935,0},{6253,17940,0}, {6262,17943,0},{6262,17957,0},{6267,17955,0},{6270,17960,0},{6275,17960,0}, {6287,17950,0},{6290,17932,0},{6300,17923,0},{6302,17925,0},{6305,17930,0}, {6307,17937,0},{6305,17940,0},{6315,17942,0},{6322,17927,0},{6323,17920,0}, {6323,17913,0},{6328,17905,0},{6330,17893,0},{6333,17890,0},{6333,17883,0}, {6335,17882,0},{6338,17880,0},{6340,17883,0},{6332,17900,0},{6350,17880,0}, {6358,17878,0},{6358,17875,0},{6353,17875,0},{6343,17883,0},{6340,17877,0}, {6338,17868,0},{6342,17858,128},{6343,17863,0},{6345,17865,0},{6348,17872,0}, {6357,17872,0},{6357,17867,0},{6358,17852,0},{6357,17847,0},{6352,17840,0}, {6352,17837,0},{6357,17827,0},{6358,17827,0},{6363,17835,0},{6362,17847,0}, {6360,17847,0},{6358,17850,0},{6362,17853,0},{6363,17852,0},{6362,17862,0}, {6358,17863,0},{6360,17872,0},{6362,17872,0},{6362,17865,0},{6367,17860,0}, {6365,17872,0},{6363,17877,0},{6390,17870,0},{6400,17863,0},{6395,17865,0}, {6395,17858,0},{6397,17853,0},{6397,17842,0},{6397,17838,0},{6398,17848,0}, {6400,17838,0},{6403,17840,0},{6407,17847,0},{6407,17852,0},{6403,17858,0}, {6417,17843,0},{6427,17837,0},{6445,17818,0},{6440,17818,0},{6443,17820,0}, {6442,17823,0},{6435,17828,0},{6428,17820,0},{6425,17808,0},{6423,17810,0}, {6420,17818,0},{6420,17810,0},{6422,17795,0},{6425,17782,0},{6430,17767,0}, {6443,17742,0},{6455,17737,0},{6465,17745,0},{6475,17748,0},{6478,17733,0}, {6472,17715,0},{6470,17698,0},{6463,17685,0},{6460,17683,0},{6457,17673,0}, {6462,17670,0},{6468,17650,0},{6468,17645,0},{6462,17633,0},{6462,17622,0}, {6457,17613,0},{6453,17612,0},{6463,17615,0},{6465,17632,0},{6472,17642,0}, {6477,17630,0},{6482,17628,0},{6483,17623,0},{6487,17620,0},{6490,17603,0}, {6478,17583,0},{6475,17570,0},{6475,17548,0},{6473,17528,0},{6473,17505,0}, {6467,17477,0},{6467,17465,0},{6467,17452,0},{6468,17443,0},{6468,17470,0}, {6468,17477,0},{6477,17505,0},{6475,17515,0},{6477,17523,0},{6475,17532,0}, {6477,17538,0},{6478,17555,0},{6478,17572,0},{6483,17587,0},{6487,17593,0}, {6490,17593,0},{6495,17607,0},{6492,17608,0},{6492,17618,0},{6485,17640,0}, {6480,17643,0},{6482,17653,0},{6487,17663,0},{6487,17675,0},{6485,17678,0}, {6485,17688,0},{6480,17693,0},{6478,17700,0},{6477,17703,0},{6478,17718,0}, {6482,17728,0},{6483,17730,0},{6485,17722,0},{6488,17725,0},{6492,17722,0}, {6498,17707,0},{6500,17700,0},{6503,17697,0},{6505,17688,0},{6503,17682,0}, {6500,17670,0},{6500,17657,0},{6500,17650,0},{6503,17643,0},{6503,17633,0}, {6505,17630,0},{6505,17638,0},{6508,17638,0},{6508,17642,0},{6502,17658,0}, {6508,17690,0},{6502,17717,0},{6493,17725,0},{6492,17743,0},{6485,17748,0}, {6483,17738,0},{6482,17742,0},{6482,17750,0},{6478,17748,0},{6478,17755,0}, {6475,17763,0},{6472,17762,0},{6470,17778,0},{6470,17792,0},{6467,17800,0}, {6468,17808,0},{6468,17825,0},{6465,17827,0},{6465,17825,0},{6470,17873,0}, {6467,17875,0},{6463,17870,0},{6462,17850,0},{6458,17850,0},{6460,17862,0}, {6478,17915,0},{6480,17925,0},{6482,17942,0},{6482,17945,0},{6482,17948,0}, {6493,17968,0},{6502,17980,0},{6507,18000,0},{6515,47554,0},{6517,47566,0}, {6527,47579,0},{6543,47583,0},{6553,47604,0},{6560,47599,0},{6563,47603,0}, {6580,47561,0},{6595,47554,0},{6612,47559,0},{6618,47566,0},{6615,47578,0}, {6613,47578,0},{6613,47568,0},{6612,47573,0},{6613,47598,0},{6618,47611,0}, {6635,47594,0},{6632,47603,0},{6630,47606,0},{6628,47618,0},{6635,47618,0}, {6642,47618,0},{6638,47624,0},{6630,47628,0},{6625,47624,0},{6620,47629,0}, {6617,47639,0},{6620,47658,0},{6632,47671,0},{6637,47673,0},{6637,47678,0}, {6637,47679,0},{6640,47683,0},{6640,47686,0},{6630,47686,0},{6627,47683,0}, {6623,47684,0},{6618,47679,0},{6617,47681,0},{6612,47676,0},{6612,47669,0}, {6602,47666,0},{6598,47658,0},{6605,47638,0},{6593,47649,0},{6592,47646,0}, {6588,47649,0},{6585,47658,0},{6578,47668,0},{6578,47673,0},{6577,47671,0}, {6575,47674,0},{6575,47684,0},{6573,47689,0},{6563,47688,0},{6562,47683,0}, {6557,47684,0},{6555,47679,0},{6552,47681,0},{6548,47699,0},{6548,47716,0}, {6548,47766,0},{6548,47786,0},{6550,47796,0},{6558,47814,0},{6562,47829,0}, {6555,47879,0},{6548,47903,0},{6548,47918,0},{6548,47926,0},{6540,47943,0}, {6535,47943,0},{6530,47948,0},{6528,47944,0},{6517,47958,0},{6507,47954,0}, {6502,47944,0},{6495,47954,0},{6492,47973,0},{6488,47979,0},{6485,47983,0}, {6485,47994,0},{6483,47994,0},{6482,47984,0},{6478,47988,0},{6478,47996,0}, {6478,48023,0},{6478,48034,0},{6487,48034,0},{6485,48038,0},{6482,48036,0}, {6478,48051,0},{6467,48091,0},{6467,48108,0},{6465,48108,0},{6463,48101,0}, {6455,48124,0},{6442,48131,0},{6435,48168,0},{6435,48178,0},{6440,48189,0}, {6447,48199,0},{6450,48201,0},{6462,48194,0},{6458,48198,0},{6458,48203,0}, {6455,48201,0},{6452,48208,0},{6445,48204,0},{6445,48209,0},{6437,48194,0}, {6432,48193,0},{6425,48218,0},{6428,48236,0},{6432,48239,0},{6433,48246,0}, {6442,48246,0},{6445,48248,0},{6447,48244,0},{6447,48229,0},{6450,48234,0}, {6450,48241,0},{6452,48243,0},{6452,48253,0},{6450,48254,0},{6447,48259,0}, {6442,48256,0},{6442,48263,0},{6438,48273,0},{6440,48286,0},{6442,48291,0}, {6443,48308,0},{6450,48293,0},{6455,48289,0},{6457,48281,0},{6458,48269,0}, {6460,48263,0},{6463,48258,0},{6462,48248,0},{6458,48241,0},{6458,48234,0}, {6462,48241,0},{6467,48249,0},{6468,48246,0},{6467,48231,0},{6467,48228,0}, {6472,48239,0},{6472,48249,0},{6473,48249,0},{6477,48258,0},{6478,48258,0}, {6485,48239,0},{6478,48219,0},{6478,48216,0},{6482,48226,0},{6485,48228,0}, {6487,48231,0},{6488,48241,0},{6485,48256,0},{6487,48261,0},{6488,48266,0}, {6490,48276,0},{6492,48283,0},{6492,48286,0},{6492,48289,0},{6508,48323,0}, {6510,48323,0},{6508,48316,0},{6513,48311,0},{6513,48318,0},{6520,48311,0}, {6522,48306,0},{6522,48274,0},{6523,48268,0},{6525,48266,0},{6527,48269,0}, {6527,48274,0},{6523,48278,0},{6525,48283,0},{6527,48298,0},{6527,48308,0}, {6523,48311,0},{6525,48311,0},{6535,48311,0},{6550,48321,0},{6543,48308,0}, {6542,48296,0},{6547,48289,0},{6548,48303,0},{6553,48293,0},{6560,48296,0}, {6562,48269,0},{6563,48268,0},{6567,48269,0},{6567,48256,0},{6570,48251,0}, {6568,48256,0},{6570,48271,0},{6568,48274,0},{6568,48279,0},{6567,48294,0}, {6567,48301,0},{6563,48299,0},{6558,48308,0},{6555,48303,0},{6553,48313,0}, {6557,48324,0},{6555,48329,0},{6553,48333,0},{6553,48353,0},{6552,48354,0}, {6550,48343,0},{6548,48329,0},{6553,48396,0},{6548,48419,0},{6548,48431,0}, {6560,48434,0},{6560,48429,0},{6563,48423,0},{6567,48408,0},{6572,48399,0}, {6573,48404,0},{6575,48393,0},{6582,48388,0},{6583,48383,0},{6582,48394,0}, {6577,48409,0},{6570,48416,0},{6568,48428,0},{6565,48446,0},{6562,48448,0}, {6560,48468,0},{6562,48478,0},{6567,48483,0},{6573,48483,0},{6577,48479,0}, {6583,48484,0},{6585,48481,0},{6585,48474,0},{6602,48524,0},{6603,48536,0}, {6602,48543,0},{6598,48554,0},{6600,48558,0},{6607,48568,0},{6613,48564,0}, {6618,48533,0},{6617,48544,0},{6613,48543,0},{6617,48521,0},{6615,48518,0}, {6615,48513,0},{6618,48503,0},{6620,48506,0},{6618,48518,0},{6620,48523,0}, {6630,48504,0},{6630,48491,0},{6623,48481,0},{6623,48471,0},{6628,48481,0}, {6630,48479,0},{6632,48494,0},{6635,48478,0},{6645,48463,0},{6652,48448,0}, {6657,48426,0},{6665,48403,0},{6672,48393,0},{6675,48396,0},{6677,48394,0}, {6680,48376,0},{6685,48366,0},{6693,48368,0},{6695,48363,0},{6695,48344,0}, {6698,48341,0},{6695,48331,0},{6697,48303,0},{6702,48258,0},{6700,48286,0}, {6702,48274,0},{6705,48231,0},{6705,48229,0},{6703,48231,0},{6697,48281,0}, {6693,48293,0},{6692,48278,0},{6693,48271,0},{6690,48258,0},{6693,48233,0}, {6695,48228,0},{6700,48224,0},{6698,48214,0},{6695,48214,0},{6692,48208,0}, {6692,48216,0},{6688,48214,0},{6687,48221,0},{6683,48214,0},{6683,48199,0}, {6687,48199,0},{6688,48203,0},{6692,48199,0},{6692,48203,0},{6695,48201,0}, {6697,48201,0},{6700,48206,0},{6700,48214,0},{6702,48218,0},{6703,48206,0}, {6707,48206,0},{6705,48213,0},{6705,48223,0},{6708,48193,0},{6703,48189,0}, {6703,48184,0},{6705,48183,0},{6708,48186,0},{6710,48184,0},{6713,48168,0}, {6710,48161,0},{6708,48153,0},{6710,48098,0},{6708,48074,0},{6707,48071,0}, {6705,48074,0},{6708,48094,0},{6707,48093,0},{6705,48079,0},{6703,48083,0}, {6705,48108,0},{6702,48111,0},{6700,48104,0},{6698,48106,0},{6698,48124,0}, {6693,48128,0},{6690,48128,0},{6685,48134,0},{6670,48136,0},{6668,48141,0}, {6667,48138,0},{6668,48134,0},{6658,48106,0},{6655,48114,0},{6652,48144,0}, {6648,48148,0},{6645,48161,0},{6637,48158,0},{6635,48153,0},{6633,48143,0}, {6632,48151,0},{6627,48138,0},{6622,48134,0},{6625,48128,0},{6632,48129,0}, {6635,48138,0},{6640,48131,0},{6645,48138,0},{6648,48134,0},{6648,48121,0}, {6647,48116,0},{6647,48109,0},{6642,48114,0},{6640,48104,0},{6635,48096,0}, {6632,48101,0},{6630,48093,0},{6630,48089,0},{6633,48086,0},{6635,48094,0}, {6638,48086,0},{6645,48084,0},{6647,48088,0},{6645,48094,0},{6653,48088,0}, {6658,48071,0},{6662,48046,0},{6667,48036,0},{6668,48041,0},{6670,48041,0}, {6672,48048,0},{6675,48049,0},{6675,48059,0},{6673,48061,0},{6687,48059,0}, {6690,48056,0},{6693,48063,0},{6693,48056,0},{6698,48044,0},{6710,48041,0}, {6728,48046,0},{6732,48053,0},{6728,48056,0},{6730,48058,0},{6738,48053,0}, {6738,48049,0},{6740,48043,0},{6742,48041,0},{6742,48043,0},{6748,48028,0}, {6745,48031,0},{6737,48026,0},{6735,48016,0},{6735,47998,0},{6745,48014,0}, {6750,48014,0},{6752,48009,0},{6750,48023,0},{6753,48019,0},{6755,48009,0}, {6765,47999,0},{6765,48006,0},{6767,48006,0},{6768,47996,0},{6783,47946,0}, {6790,47921,0},{6817,47829,0},{6813,47819,0},{6815,47811,0},{6817,47813,0}, {6820,47809,0},{6820,47819,0},{6825,47799,0},{6822,47781,0},{6818,47773,0}, {6822,47774,0},{6822,47768,0},{6825,47759,0},{6828,47773,0},{6830,47776,0}, {6828,47789,0},{6830,47781,0},{6840,47753,0},{6855,47698,0},{6853,47701,0}, {6833,47766,0},{6828,47741,0},{6825,47739,0},{6825,47729,0},{6827,47728,0}, {6833,47741,0},{6843,47733,0},{6848,47711,0},{6848,47698,0},{6850,47693,0}, {6853,47663,0},{6867,47661,0},{6860,47679,0},{6858,47688,0},{6877,47644,0}, {6878,47619,0},{6882,47614,0},{6882,47596,0},{6885,47594,0},{6885,47601,0}, {6887,47603,0},{6890,47593,0},{6895,47584,0},{6895,47581,0},{6892,47584,0}, {6890,47578,0},{6892,47559,0},{6898,18000,128},{6898,17975,0},{6902,17967,0}, {6907,17965,0},{6908,17958,0},{6912,17957,0},{6900,17983,0},{6900,17995,0}, {6922,17935,0},{6927,17928,0},{6930,17907,0},{6928,17900,0},{6930,17888,0}, {6928,17872,0},{6930,17867,0},{6938,17867,0},{6937,17868,0},{6935,17885,0}, {6932,17888,0},{6932,17907,0},{6935,17900,0},{6947,17848,0},{6948,17833,0}, {6947,17825,0},{6947,17830,0},{6943,17823,0},{6947,17808,0},{6950,17790,0}, {6953,17773,0},{6953,17765,0},{6955,17760,0},{6955,17768,0},{6960,17745,0}, {6963,17703,0},{6967,17673,0},{6975,17650,0},{6978,17623,0},{6980,17628,0}, {6988,17612,0},{6988,17583,0},{6990,17572,0},{6988,17552,0},{6985,17543,0}, {6985,17530,0},{6985,17515,0},{6987,17515,0},{6988,17538,0},{6985,17505,0}, {6987,17445,0},{6988,17432,0},{6988,17403,0},{6985,17390,0},{6988,17377,0}, {6983,17375,0},{6987,17368,0},{6988,17370,0},{6995,17347,0},{6993,17322,0}, {6990,17317,0},{6988,17317,0},{6990,17320,0},{6992,17327,0},{6987,17340,0}, {6985,17347,0},{6982,17347,0},{6978,17337,0},{6978,17322,0},{6978,17317,0}, {6982,17322,0},{6985,17317,0},{6987,17303,0},{6990,17283,0},{6998,17273,0}, {6997,17250,0},{6998,17215,0},{7000,17193,0},{7007,17138,0},{7010,17080,0}, {7013,17047,0},{7012,17040,0},{7010,17053,0},{7007,17057,0},{6993,17052,0}, {6988,17057,0},{6980,17055,0},{6978,17057,0},{6975,17050,0},{6973,17028,0}, {6967,17015,0},{6962,17012,0},{6960,17017,0},{6958,17025,0},{6960,17047,0}, {6960,17058,0},{6953,17067,0},{6947,17068,0},{6945,17073,0},{6938,17075,0}, {6930,17092,0},{6923,17093,0},{6917,17088,0},{6915,17097,0},{6905,17103,0}, {6903,17117,0},{6902,17105,0},{6905,17098,0},{6903,17095,0},{6898,17090,0}, {6893,17068,0},{6883,17073,0},{6880,17070,0},{6892,17067,0},{6887,17045,0}, {6883,17043,0},{6882,17057,0},{6880,17053,0},{6875,17062,0},{6880,17050,0}, {6882,17035,0},{6878,16978,0},{6878,16958,0},{6883,16945,0},{6898,16943,0}, {6908,16937,0},{6910,16925,0},{6910,16913,0},{6920,16873,0},{6922,16842,0}, {6923,16828,0},{6928,16823,0},{6938,16820,0},{6955,16825,0},{6965,16792,0}, {6972,16807,0},{6972,16792,0},{6978,16778,0},{6975,16765,0},{6957,16717,0}, {6948,16687,0},{6950,16668,0},{6952,16670,0},{6952,16665,0},{6952,16613,0}, {6957,16583,0},{6958,16563,0},{6958,16475,0},{6960,16453,0},{6963,16438,0}, {6972,16415,0},{6975,16410,0},{6977,16402,0},{6970,16375,0},{6968,16360,0}, {6972,16322,0},{6965,16283,0},{6965,16272,0},{6968,16260,0},{6967,16243,0}, {3862,12837,128},{3868,12837,0},{3875,12828,0},{3872,12820,0},{3875,12818,0}, {3882,12812,0},{3887,12800,0},{3892,12797,0},{3893,12792,0},{3897,12792,0}, {3897,12788,0},{3898,12785,0},{3912,12777,0},{3912,12765,0},{3915,12762,0}, {3913,12753,0},{3920,12748,0},{3917,12747,0},{3917,12745,0},{3922,12738,0}, {3925,12737,0},{3930,12740,0},{3933,12738,0},{3933,12742,0},{3935,12747,0}, {3937,12745,0},{3935,12742,0},{3937,12737,0},{3940,12742,0},{3938,12743,0}, {3942,12745,0},{3943,12748,0},{3942,12752,0},{3937,12753,0},{3932,12752,0}, {3930,12753,0},{3930,12757,0},{3950,12753,0},{3960,12758,0},{3963,12755,0}, {3965,12750,0},{3972,12750,0},{3978,12757,0},{3982,12762,0},{3980,12767,0}, {3982,12768,0},{3985,12772,0},{3985,12778,0},{3987,12780,0},{3988,12778,0}, {3988,12787,0},{3997,12790,0},{3997,12793,0},{4002,12800,0},{4003,12800,0}, {4003,12813,0},{4002,12815,0},{4003,12823,0},{4007,12825,0},{4005,12828,0}, {4002,12832,0},{4003,12833,0},{4008,12838,0},{4013,12852,0},{4017,12860,0}, {4018,12865,0},{4022,12868,0},{4027,12863,0},{4030,12865,0},{4037,12888,0}, {4045,12898,0},{4047,12910,0},{4055,12917,0},{4068,12922,0},{4070,12927,0}, {4067,12930,0},{4068,12932,0},{4073,12935,0},{4078,12948,0},{4078,12953,0}, {4082,12957,0},{4083,12972,0},{4093,12975,0},{4098,12972,0},{4118,12972,0}, {4125,12975,0},{4128,12975,0},{4137,12980,0},{4143,12970,0},{4148,12967,0}, {4155,12967,0},{4165,12970,0},{4167,12973,0},{4175,12978,0},{4177,12985,0}, {4180,12988,0},{4187,12988,0},{4190,12990,0},{4188,12997,0},{4195,12998,0}, {4197,13000,0},{4198,12998,0},{4200,13000,0},{4200,13003,0},{4205,13005,0}, {4205,13008,0},{4207,13010,0},{4207,13017,0},{4208,13017,0},{4210,13020,0}, {4217,13022,0},{4222,13030,0},{4218,13030,0},{4218,13033,0},{4223,13037,0}, {4225,13040,0},{4227,13038,0},{4232,13040,0},{4230,13043,0},{4232,13048,0}, {4230,13058,0},{4228,13060,0},{4225,13060,0},{4228,13070,0},{3783,12670,128}, {3777,12668,0},{3773,12670,0},{3768,12668,0},{3763,12675,0},{3767,12667,0}, {3773,12667,0},{3777,12665,0},{3775,12660,0},{3777,12653,0},{3765,12655,0}, {3762,12658,0},{3760,12662,0},{3758,12665,0},{3752,12665,0},{3748,12667,0}, {3748,12663,0},{3747,12663,0},{3740,12667,0},{3738,12675,0},{3735,12675,0}, {3733,12670,0},{3733,12675,0},{3730,12677,0},{3730,12680,0},{3730,12685,0}, {3727,12687,0},{3728,12682,0},{3727,12680,0},{3722,12678,0},{3725,12677,0}, {3727,12670,0},{3725,12667,0},{3722,12668,0},{3722,12672,0},{3718,12667,0}, {3715,12667,0},{3715,12670,0},{3713,12668,0},{3712,12670,0},{3718,12680,0}, {3717,12680,0},{3718,12687,0},{3715,12687,0},{3713,12687,0},{3712,12678,0}, {3708,12677,0},{3707,12678,0},{3705,12675,0},{3703,12680,0},{3705,12683,0}, {3703,12685,0},{3705,12687,0},{3710,12688,0},{3705,12688,0},{3703,12692,0}, {3702,12692,0},{3702,12687,0},{3700,12688,0},{3700,12682,0},{3692,12690,0}, {3693,12698,0},{3698,12698,0},{3698,12703,0},{3698,12705,0},{3697,12698,0}, {3692,12700,0},{3687,12687,0},{3685,12687,0},{3682,12690,0},{3683,12687,0}, {3682,12687,0},{3680,12687,0},{3675,12685,0},{3677,12683,0},{3680,12685,0}, {3683,12683,0},{3690,12683,0},{3692,12682,0},{3688,12678,0},{3693,12680,0}, {3697,12678,0},{3697,12675,0},{3693,12672,0},{3697,12672,0},{3698,12670,0}, {3697,12668,0},{3695,12665,0},{3692,12663,0},{3697,12662,0},{3702,12657,0}, {3705,12652,0},{3705,12650,0},{3703,12653,0},{3700,12653,0},{3698,12657,0}, {3697,12658,0},{3697,12653,0},{3700,12650,0},{3700,12648,0},{3695,12655,0}, {3690,12658,0},{3695,12652,0},{3690,12650,0},{3683,12648,0},{3690,12645,0}, {3693,12648,0},{3695,12645,0},{3695,12643,0},{3698,12645,0},{3700,12643,0}, {3700,12638,0},{3698,12640,0},{3700,12637,0},{3698,12633,0},{3697,12638,0}, {3697,12637,0},{3697,12635,0},{3695,12635,0},{3692,12642,0},{3690,12642,0}, {3687,12638,0},{3685,12640,0},{3683,12637,0},{3685,12633,0},{3683,12633,0}, {3678,12635,0},{3680,12632,0},{3678,12628,0},{3680,12628,0},{3683,12632,0}, {3685,12630,0},{3688,12632,0},{3697,12630,0},{3695,12628,0},{3687,12628,0}, {3687,12623,0},{3690,12623,0},{3688,12620,0},{3688,12618,0},{3685,12622,0}, {3682,12620,0},{3680,12623,0},{3680,12620,0},{3677,12620,0},{3678,12618,0}, {3680,12617,0},{3677,12612,0},{3670,12613,0},{3672,12615,0},{3675,12615,0}, {3675,12620,0},{3673,12618,0},{3673,12620,0},{3670,12622,0},{3670,12617,0}, {3667,12617,0},{3668,12623,0},{3672,12627,0},{3668,12628,0},{3668,12627,0}, {3663,12630,0},{3658,12630,0},{3662,12635,0},{3662,12633,0},{3665,12633,0}, {3670,12630,0},{3670,12633,0},{3673,12635,0},{3670,12638,0},{3663,12638,0}, {3665,12642,0},{3670,12643,0},{3672,12643,0},{3672,12645,0},{3675,12647,0}, {3672,12650,0},{3668,12648,0},{3667,12652,0},{3665,12650,0},{3663,12652,0}, {3660,12653,0},{3658,12647,0},{3657,12647,0},{3653,12647,0},{3653,12652,0}, {3650,12648,0},{3645,12648,0},{3643,12652,0},{3647,12657,0},{3647,12662,0}, {3642,12650,0},{3640,12652,0},{3640,12650,0},{3637,12652,0},{3637,12657,0}, {3635,12658,0},{3632,12652,0},{3630,12653,0},{3630,12658,0},{3622,12653,0}, {3620,12655,0},{3620,12658,0},{3617,12660,0},{3615,12652,0},{3612,12650,0}, {3613,12652,0},{3612,12660,0},{3610,12662,0},{3608,12665,0},{3607,12663,0}, {3600,12668,0},{3600,12673,0},{3603,12677,0},{3605,12687,0},{3603,12685,0}, {3602,12677,0},{3598,12675,0},{3597,12663,0},{3593,12662,0},{3588,12662,0}, {3590,12665,0},{3588,12673,0},{3590,12683,0},{3587,12680,0},{3587,12673,0}, {3585,12670,0},{3580,12678,0},{3577,12678,0},{3578,12675,0},{3577,12670,0}, {3572,12668,0},{3575,12667,0},{3575,12665,0},{3563,12647,0},{3562,12647,0}, {3558,12650,0},{3558,12667,0},{3553,12668,0},{3555,12665,0},{3553,12662,0}, {3553,12653,0},{3552,12650,0},{3540,12642,0},{3533,12645,0},{3537,12642,0}, {3533,12638,0},{3528,12638,0},{3525,12635,0},{3525,12638,0},{3525,12632,0}, {3523,12632,0},{3523,12637,0},{3522,12637,0},{3520,12638,0},{3518,12637,0}, {3512,12642,0},{3508,12647,0},{3502,12643,0},{3503,12640,0},{3507,12640,0}, {3507,12637,0},{3510,12633,0},{3513,12635,0},{3515,12635,0},{3512,12632,0}, {3513,12628,0},{3512,12625,0},{3508,12628,0},{3505,12627,0},{3505,12630,0}, {3505,12632,0},{3508,12630,0},{3503,12637,0},{3500,12638,0},{3498,12633,0}, {3497,12635,0},{3497,12630,0},{3495,12632,0},{3493,12632,0},{3492,12635,0}, {3493,12637,0},{3497,12637,0},{3498,12640,0},{3497,12643,0},{3495,12640,0}, {3490,12640,0},{3488,12642,0},{3487,12640,0},{3485,12642,0},{3480,12637,0}, {3478,12638,0},{3482,12648,0},{3478,12650,0},{3478,12652,0},{3485,12655,0}, {3488,12653,0},{3490,12658,0},{3488,12658,0},{3485,12657,0},{3482,12658,0}, {3482,12667,0},{3480,12663,0},{3478,12663,0},{3480,12655,0},{3477,12653,0}, {3475,12653,0},{3477,12648,0},{3475,12645,0},{3477,12640,0},{3473,12637,0}, {3472,12638,0},{3473,12642,0},{3472,12650,0},{3463,12658,0},{3462,12662,0}, {3463,12653,0},{3462,12653,0},{3462,12652,0},{3465,12645,0},{3468,12645,0}, {3470,12640,0},{3465,12638,0},{3465,12642,0},{3462,12643,0},{3460,12648,0}, {3458,12645,0},{3460,12638,0},{3462,12637,0},{3465,12635,0},{3470,12635,0}, {3475,12630,0},{3468,12627,0},{3463,12628,0},{3462,12632,0},{3460,12632,0}, {3460,12630,0},{3458,12628,0},{3457,12632,0},{3458,12635,0},{3455,12637,0}, {3455,12638,0},{3453,12640,0},{3455,12642,0},{3453,12645,0},{3455,12647,0}, {3457,12653,0},{3455,12653,0},{3453,12652,0},{3450,12653,0},{3450,12648,0}, {3448,12647,0},{3447,12648,0},{3443,12648,0},{3442,12652,0},{3438,12648,0}, {3435,12648,0},{3433,12652,0},{3428,12652,0},{3430,12657,0},{3430,12660,0}, {3440,12663,0},{3442,12668,0},{3443,12668,0},{3443,12673,0},{3445,12670,0}, {3448,12677,0},{3452,12673,0},{3452,12677,0},{3455,12675,0},{3458,12677,0}, {3457,12680,0},{3445,12682,0},{3442,12688,0},{3445,12690,0},{3445,12695,0}, {3450,12693,0},{3453,12698,0},{3462,12700,0},{3465,12710,0},{3468,12713,0}, {3468,12720,0},{3477,12725,0},{3472,12730,0},{3473,12733,0},{3470,12735,0}, {3465,12733,0},{3465,12730,0},{3470,12728,0},{3468,12727,0},{3467,12723,0}, {3462,12727,0},{3457,12725,0},{3457,12720,0},{3463,12720,0},{3458,12718,0}, {3457,12713,0},{3453,12712,0},{3452,12713,0},{3452,12717,0},{3453,12722,0}, {3453,12723,0},{3452,12725,0},{3448,12728,0},{3443,12732,0},{3443,12733,0}, {3447,12733,0},{3447,12738,0},{3453,12743,0},{3453,12737,0},{3458,12733,0}, {3460,12738,0},{3457,12748,0},{3458,12752,0},{3462,12750,0},{3463,12745,0}, {3463,12748,0},{3470,12738,0},{3475,12740,0},{3475,12737,0},{3477,12735,0}, {3477,12740,0},{3480,12742,0},{3482,12737,0},{3483,12748,0},{3487,12750,0}, {3488,12752,0},{3482,12753,0},{3480,12753,0},{3480,12755,0},{3475,12758,0}, {3470,12755,0},{3465,12755,0},{3462,12763,0},{3470,12763,0},{3473,12765,0}, {3472,12770,0},{3472,12775,0},{3482,12777,0},{3485,12777,0},{3483,12775,0}, {3483,12772,0},{3482,12767,0},{3482,12763,0},{3488,12758,0},{3492,12757,0}, {3493,12760,0},{3490,12765,0},{3493,12772,0},{3498,12772,0},{3495,12773,0}, {3493,12787,0},{3497,12792,0},{3502,12793,0},{3498,12795,0},{3498,12798,0}, {3498,12802,0},{3503,12800,0},{3503,12803,0},{3508,12807,0},{3503,12805,0}, {3497,12807,0},{3495,12805,0},{3492,12807,0},{3492,12812,0},{3488,12813,0}, {3490,12815,0},{3488,12820,0},{3492,12820,0},{3493,12823,0},{3493,12827,0}, {3490,12828,0},{3495,12833,0},{3490,12835,0},{3490,12832,0},{3488,12832,0}, {3487,12842,0},{3485,12840,0},{3483,12842,0},{3483,12845,0},{3488,12847,0}, {3490,12845,0},{3488,12845,0},{3488,12843,0},{3497,12845,0},{3498,12842,0}, {3500,12848,0},{3500,12850,0},{3505,12848,0},{3500,12838,0},{3503,12838,0}, {3507,12848,0},{3510,12847,0},{3510,12850,0},{3510,12858,0},{3505,12860,0}, {3505,12865,0},{3517,12857,0},{3522,12860,0},{3520,12862,0},{3513,12862,0}, {3515,12863,0},{3513,12865,0},{3512,12867,0},{3513,12868,0},{3513,12870,0}, {3510,12870,0},{3510,12880,0},{3508,12880,0},{3510,12888,0},{3512,12890,0}, {3510,12892,0},{3510,12893,0},{3513,12898,0},{3503,12897,0},{3503,12900,0}, {3507,12900,0},{3505,12903,0},{3507,12903,0},{3512,12907,0},{3510,12912,0}, {3512,12913,0},{3513,12912,0},{3515,12915,0},{3515,12918,0},{3518,12923,0}, {3530,12928,0},{3535,12937,0},{3538,12935,0},{3542,12937,0},{3545,12935,0}, {3547,12938,0},{3553,12937,0},{3552,12940,0},{3547,12942,0},{3548,12943,0}, {3558,12948,0},{3563,12947,0},{3585,12955,0},{3592,12953,0},{3602,12958,0}, {3608,12955,0},{3600,12945,0},{3600,12942,0},{3603,12938,0},{3608,12943,0}, {3620,12938,0},{3632,12938,0},{3640,12943,0},{3650,12945,0},{3662,12942,0}, {3667,12943,0},{3668,12947,0},{3672,12947,0},{3677,12948,0},{3687,12943,0}, {3695,12942,0},{3702,12942,0},{3707,12943,0},{3715,12935,0},{3725,12935,0}, {3732,12928,0},{3747,12918,0},{3752,12913,0},{3757,12913,0},{3762,12907,0}, {3767,12907,0},{3787,12885,0},{3802,12873,0},{3813,12863,0},{3830,12855,0}, {3862,12837,0},{4010,12437,128},{4005,12438,0},{4002,12450,0},{4002,12447,0}, {4002,12443,0},{4002,12438,0},{3993,12437,0},{3992,12432,0},{3987,12437,0}, {3987,12440,0},{3982,12442,0},{3982,12457,0},{3978,12457,0},{3977,12458,0}, {3972,12458,0},{3968,12465,0},{3962,12462,0},{3960,12462,0},{3963,12470,0}, {3963,12475,0},{3968,12475,0},{3970,12473,0},{3973,12475,0},{3977,12473,0}, {3978,12475,0},{3972,12480,0},{3972,12485,0},{3970,12488,0},{3965,12492,0}, {3965,12493,0},{3967,12495,0},{3963,12497,0},{3963,12500,0},{3960,12505,0}, {3960,12510,0},{3955,12512,0},{3957,12517,0},{3958,12517,0},{3958,12522,0}, {3957,12522,0},{3957,12523,0},{3952,12528,0},{3958,12545,0},{3955,12545,0}, {3953,12540,0},{3948,12538,0},{3945,12533,0},{3943,12535,0},{3943,12538,0}, {3940,12535,0},{3940,12537,0},{3938,12545,0},{3937,12543,0},{3937,12540,0}, {3935,12542,0},{3932,12542,0},{3930,12545,0},{3923,12538,0},{3922,12542,0}, {3922,12537,0},{3918,12533,0},{3917,12533,0},{3915,12528,0},{3912,12528,0}, {3908,12533,0},{3907,12527,0},{3900,12522,0},{3898,12523,0},{3893,12518,0}, {3892,12520,0},{3888,12515,0},{3880,12513,0},{3878,12515,0},{3878,12520,0}, {3873,12522,0},{3880,12523,0},{3878,12523,0},{3875,12527,0},{3872,12523,0}, {3870,12528,0},{3870,12530,0},{3873,12530,0},{3870,12533,0},{3873,12537,0}, {3870,12537,0},{3872,12542,0},{3873,12543,0},{3875,12542,0},{3878,12545,0}, {3872,12548,0},{3870,12553,0},{3865,12560,0},{3865,12563,0},{3863,12565,0}, {3863,12560,0},{3868,12555,0},{3865,12552,0},{3868,12552,0},{3870,12545,0}, {3868,12543,0},{3867,12533,0},{3865,12532,0},{3867,12527,0},{3865,12522,0}, {3867,12520,0},{3862,12518,0},{3867,12512,0},{3865,12512,0},{3862,12513,0}, {3858,12513,0},{3857,12510,0},{3855,12508,0},{3855,12505,0},{3858,12507,0}, {3858,12500,0},{3853,12498,0},{3850,12502,0},{3843,12498,0},{3847,12495,0}, {3833,12487,0},{3825,12487,0},{3822,12492,0},{3823,12497,0},{3822,12498,0}, {3818,12493,0},{3822,12490,0},{3823,12487,0},{3822,12485,0},{3818,12482,0}, {3818,12478,0},{3813,12473,0},{3813,12467,0},{3812,12467,0},{3810,12478,0}, {3810,12487,0},{3813,12488,0},{3812,12492,0},{3808,12495,0},{3807,12502,0}, {3808,12513,0},{3807,12527,0},{3802,12525,0},{3802,12522,0},{3805,12520,0}, {3803,12510,0},{3798,12510,0},{3798,12515,0},{3798,12518,0},{3797,12517,0}, {3797,12510,0},{3797,12507,0},{3795,12500,0},{3792,12498,0},{3793,12502,0}, {3790,12502,0},{3787,12517,0},{3788,12522,0},{3793,12523,0},{3793,12525,0}, {3790,12525,0},{3790,12528,0},{3788,12532,0},{3782,12523,0},{3782,12530,0}, {3780,12532,0},{3785,12538,0},{3785,12535,0},{3787,12537,0},{3785,12545,0}, {3787,12543,0},{3788,12538,0},{3788,12543,0},{3792,12545,0},{3790,12547,0}, {3788,12552,0},{3785,12548,0},{3783,12548,0},{3783,12553,0},{3782,12552,0}, {3780,12550,0},{3782,12548,0},{3782,12543,0},{3780,12538,0},{3778,12538,0}, {3777,12538,0},{3777,12545,0},{3775,12540,0},{3775,12537,0},{3772,12533,0}, {3767,12535,0},{3772,12538,0},{3772,12547,0},{3780,12552,0},{3777,12553,0}, {3778,12555,0},{3778,12558,0},{3777,12558,0},{3775,12562,0},{3778,12562,0}, {3780,12562,0},{3782,12565,0},{3783,12563,0},{3785,12563,0},{3792,12563,0}, {3788,12567,0},{3792,12573,0},{3792,12570,0},{3795,12572,0},{3795,12568,0}, {3798,12568,0},{3797,12565,0},{3798,12562,0},{3798,12560,0},{3802,12557,0}, {3803,12558,0},{3802,12567,0},{3800,12570,0},{3798,12580,0},{3795,12580,0}, {3793,12583,0},{3783,12592,0},{3782,12598,0},{3783,12598,0},{3787,12597,0}, {3788,12595,0},{3790,12597,0},{3790,12598,0},{3785,12602,0},{3787,12605,0}, {3780,12605,0},{3778,12610,0},{3775,12610,0},{3773,12613,0},{3773,12615,0}, {3777,12617,0},{3782,12615,0},{3785,12622,0},{3783,12625,0},{3788,12638,0}, {3788,12640,0},{3785,12643,0},{3777,12658,0},{3778,12665,0},{3782,12667,0}, {3783,12670,0},{3998,11987,128},{4003,11995,0},{4013,12023,0},{4018,12032,0}, {4020,12045,0},{4025,12050,0},{4030,12050,0},{4035,12060,0},{4037,12058,0}, {4037,12053,0},{4040,12055,0},{4042,12060,0},{4045,12060,0},{4047,12062,0}, {4047,12067,0},{4052,12068,0},{4060,12080,0},{4067,12083,0},{4068,12093,0}, {4070,12098,0},{4072,12103,0},{4073,12100,0},{4073,12093,0},{4077,12093,0}, {4078,12097,0},{4082,12097,0},{4083,12100,0},{4082,12108,0},{4087,12108,0}, {4087,12112,0},{4093,12118,0},{4090,12125,0},{4092,12127,0},{4090,12128,0}, {4093,12135,0},{4093,12138,0},{4092,12143,0},{4088,12145,0},{4090,12148,0}, {4088,12152,0},{4083,12155,0},{4083,12160,0},{4085,12175,0},{4088,12178,0}, {4095,12180,0},{4098,12187,0},{4093,12183,0},{4082,12187,0},{4078,12192,0}, {4075,12205,0},{4068,12212,0},{4070,12215,0},{4060,12215,0},{4057,12225,0}, {4050,12230,0},{4043,12225,0},{4042,12220,0},{4038,12222,0},{4035,12218,0}, {4030,12212,0},{4023,12210,0},{4018,12202,0},{4018,12198,0},{4013,12200,0}, {4010,12193,0},{4003,12188,0},{4002,12183,0},{4002,12188,0},{4000,12188,0}, {3995,12180,0},{3992,12177,0},{3993,12170,0},{3992,12167,0},{3987,12160,0}, {3987,12155,0},{3982,12147,0},{3978,12148,0},{3973,12145,0},{3968,12150,0}, {3968,12155,0},{3965,12153,0},{3962,12153,0},{3965,12147,0},{3963,12147,0}, {3960,12142,0},{3960,12132,0},{3953,12123,0},{3952,12122,0},{3952,12128,0}, {3950,12130,0},{3952,12135,0},{3952,12143,0},{3938,12148,0},{3937,12153,0}, {3937,12172,0},{3938,12170,0},{3940,12172,0},{3938,12185,0},{3940,12192,0}, {3942,12192,0},{3940,12193,0},{3937,12187,0},{3937,12178,0},{3933,12173,0}, {3930,12173,0},{3927,12168,0},{3925,12160,0},{3923,12163,0},{3922,12160,0}, {3918,12158,0},{3917,12162,0},{3918,12163,0},{3912,12168,0},{3908,12167,0}, {3902,12145,0},{3902,12142,0},{3905,12137,0},{3900,12132,0},{3898,12135,0}, {3897,12133,0},{3897,12128,0},{3893,12123,0},{3895,12118,0},{3895,12113,0}, {3892,12110,0},{3890,12108,0},{3890,12115,0},{3885,12112,0},{3883,12112,0}, {3878,12113,0},{3877,12112,0},{3873,12113,0},{3872,12118,0},{3877,12123,0}, {3878,12122,0},{3880,12123,0},{3878,12130,0},{3880,12132,0},{3882,12135,0}, {3880,12148,0},{3887,12158,0},{3887,12170,0},{3890,12172,0},{3892,12167,0}, {3893,12158,0},{3895,12165,0},{3898,12167,0},{3900,12163,0},{3902,12167,0}, {3900,12173,0},{3902,12172,0},{3903,12173,0},{3902,12177,0},{3897,12180,0}, {3895,12183,0},{3895,12187,0},{3898,12190,0},{3903,12183,0},{3903,12187,0}, {3900,12192,0},{3905,12188,0},{3903,12197,0},{3907,12200,0},{3907,12205,0}, {3910,12205,0},{3915,12217,0},{3917,12210,0},{3920,12212,0},{3927,12223,0}, {3932,12225,0},{3932,12227,0},{3935,12230,0},{3942,12240,0},{3942,12247,0}, {3945,12255,0},{3948,12255,0},{3947,12258,0},{3948,12262,0},{3953,12265,0}, {3952,12268,0},{3955,12272,0},{3955,12277,0},{3962,12285,0},{3962,12293,0}, {3962,12295,0},{3962,12297,0},{3963,12300,0},{3967,12297,0},{3968,12302,0}, {3967,12305,0},{3968,12308,0},{3970,12310,0},{3968,12312,0},{3965,12315,0}, {3967,12322,0},{3968,12322,0},{3970,12327,0},{3972,12325,0},{3972,12322,0}, {3973,12320,0},{3975,12322,0},{3975,12327,0},{3982,12323,0},{3980,12325,0}, {3980,12328,0},{3978,12332,0},{3978,12338,0},{3982,12340,0},{3982,12342,0}, {3973,12340,0},{3973,12342,0},{3973,12347,0},{3978,12348,0},{3978,12355,0}, {3977,12357,0},{3978,12360,0},{3982,12360,0},{3992,12365,0},{3987,12365,0}, {3983,12370,0},{3982,12390,0},{3983,12393,0},{3983,12395,0},{3982,12398,0}, {3985,12408,0},{3983,12413,0},{3992,12425,0},{3993,12428,0},{3997,12430,0}, {3998,12435,0},{4002,12437,0},{4007,12435,0},{4010,12437,0},{3828,11778,128}, {3835,11772,0},{3843,11765,0},{3860,11755,0},{3868,11753,0},{3880,11758,0}, {3895,11770,0},{3898,11770,0},{3898,11775,0},{3902,11773,0},{3907,11773,0}, {3910,11772,0},{3912,11775,0},{3915,11780,0},{3920,11788,0},{3922,11805,0}, {3918,11817,0},{3912,11823,0},{3907,11825,0},{3907,11830,0},{3903,11832,0}, {3912,11850,0},{3917,11853,0},{3918,11860,0},{3918,11867,0},{3918,11868,0}, {3915,11870,0},{3915,11875,0},{3918,11883,0},{3922,11887,0},{3918,11887,0}, {3918,11888,0},{3917,11888,0},{3918,11897,0},{3912,11888,0},{3913,11892,0}, {3923,11907,0},{3927,11905,0},{3930,11912,0},{3933,11913,0},{3940,11925,0}, {3942,11927,0},{3945,11923,0},{3957,11927,0},{3953,11923,0},{3957,11925,0}, {3955,11922,0},{3957,11920,0},{3960,11925,0},{3958,11928,0},{3972,11935,0}, {3978,11945,0},{3980,11952,0},{3987,11952,0},{3990,11958,0},{3995,11977,0}, {3997,11980,0},{3998,11987,0},{3507,11928,128},{3512,11937,0},{3522,11938,0}, {3532,11943,0},{3533,11952,0},{3558,11965,0},{3562,11973,0},{3562,11975,0}, {3557,11975,0},{3558,11977,0},{3565,11983,0},{3562,11983,0},{3560,11985,0}, {3562,11990,0},{3568,11990,0},{3570,11993,0},{3573,11990,0},{3575,11992,0}, {3575,11995,0},{3572,11998,0},{3575,12002,0},{3582,12002,0},{3587,12005,0}, {3590,12010,0},{3590,12013,0},{3593,12018,0},{3588,12017,0},{3593,12022,0}, {3597,12030,0},{3598,12030,0},{3602,12028,0},{3597,12023,0},{3600,12023,0}, {3598,12018,0},{3607,12017,0},{3612,12008,0},{3613,12008,0},{3618,12012,0}, {3620,12008,0},{3622,12008,0},{3622,12012,0},{3620,12013,0},{3622,12022,0}, {3620,12022,0},{3617,12027,0},{3618,12030,0},{3620,12028,0},{3622,12028,0}, {3627,12028,0},{3627,12030,0},{3622,12032,0},{3622,12035,0},{3617,12035,0}, {3610,12030,0},{3608,12032,0},{3607,12028,0},{3603,12035,0},{3605,12043,0}, {3608,12047,0},{3608,12053,0},{3612,12057,0},{3610,12058,0},{3612,12063,0}, {3613,12068,0},{3622,12068,0},{3632,12063,0},{3633,12067,0},{3632,12070,0}, {3632,12072,0},{3637,12068,0},{3642,12070,0},{3647,12077,0},{3647,12078,0}, {3645,12083,0},{3642,12085,0},{3638,12085,0},{3637,12087,0},{3642,12090,0}, {3645,12090,0},{3645,12095,0},{3650,12093,0},{3653,12097,0},{3653,12092,0}, {3655,12092,0},{3657,12088,0},{3660,12085,0},{3658,12082,0},{3653,12078,0}, {3653,12075,0},{3657,12073,0},{3658,12075,0},{3662,12075,0},{3665,12083,0}, {3662,12093,0},{3660,12093,0},{3658,12095,0},{3658,12103,0},{3663,12103,0}, {3660,12105,0},{3662,12108,0},{3668,12120,0},{3672,12133,0},{3670,12140,0}, {3672,12137,0},{3675,12138,0},{3675,12145,0},{3678,12147,0},{3683,12145,0}, {3682,12148,0},{3680,12150,0},{3683,12155,0},{3683,12162,0},{3683,12160,0}, {3678,12155,0},{3678,12150,0},{3677,12148,0},{3675,12153,0},{3677,12155,0}, {3675,12157,0},{3677,12158,0},{3673,12162,0},{3682,12162,0},{3683,12167,0}, {3683,12168,0},{3682,12165,0},{3683,12172,0},{3688,12178,0},{3693,12193,0}, {3693,12195,0},{3697,12192,0},{3698,12192,0},{3700,12195,0},{3697,12200,0}, {3698,12205,0},{3695,12203,0},{3690,12203,0},{3692,12208,0},{3695,12210,0}, {3693,12213,0},{3700,12215,0},{3700,12218,0},{3693,12217,0},{3690,12227,0}, {3688,12218,0},{3683,12220,0},{3682,12232,0},{3683,12237,0},{3685,12238,0}, {3685,12242,0},{3688,12243,0},{3690,12240,0},{3692,12240,0},{3693,12252,0}, {3692,12252,0},{3690,12250,0},{3692,12253,0},{3702,12253,0},{3702,12243,0}, {3700,12242,0},{3703,12240,0},{3707,12245,0},{3710,12243,0},{3715,12245,0}, {3715,12247,0},{3710,12247,0},{3715,12248,0},{3715,12258,0},{3718,12257,0}, {3718,12262,0},{3727,12255,0},{3732,12255,0},{3730,12258,0},{3732,12258,0}, {3735,12257,0},{3737,12263,0},{3737,12268,0},{3740,12270,0},{3742,12268,0}, {3742,12262,0},{3740,12257,0},{3740,12253,0},{3742,12247,0},{3742,12242,0}, {3742,12232,0},{3742,12228,0},{3745,12227,0},{3745,12223,0},{3742,12218,0}, {3742,12217,0},{3748,12212,0},{3752,12215,0},{3755,12213,0},{3755,12212,0}, {3755,12208,0},{3757,12207,0},{3753,12207,0},{3753,12202,0},{3747,12198,0}, {3742,12200,0},{3742,12195,0},{3745,12195,0},{3747,12193,0},{3747,12168,0}, {3748,12163,0},{3745,12158,0},{3747,12163,0},{3745,12165,0},{3743,12167,0}, {3742,12157,0},{3745,12153,0},{3747,12148,0},{3752,12145,0},{3755,12138,0}, {3758,12138,0},{3758,12143,0},{3763,12137,0},{3763,12135,0},{3760,12137,0}, {3758,12135,0},{3757,12122,0},{3758,12115,0},{3763,12113,0},{3765,12113,0}, {3770,12115,0},{3772,12102,0},{3773,12100,0},{3778,12093,0},{3782,12093,0}, {3783,12087,0},{3782,12083,0},{3783,12073,0},{3778,12065,0},{3778,12062,0}, {3775,12055,0},{3773,12043,0},{3768,12037,0},{3768,12022,0},{3765,12032,0}, {3760,12030,0},{3750,12018,0},{3743,12007,0},{3737,11985,0},{3733,11985,0}, {3727,11990,0},{3725,11988,0},{3715,11975,0},{3712,11940,0},{3715,11923,0}, {3722,11905,0},{3727,11902,0},{3727,11897,0},{3735,11893,0},{3760,11897,0}, {3767,11903,0},{3767,11907,0},{3772,11910,0},{3778,11903,0},{3782,11902,0}, {3788,11903,0},{3803,11895,0},{3805,11892,0},{3805,11887,0},{3808,11883,0}, {3815,11885,0},{3813,11862,0},{3810,11858,0},{3807,11855,0},{3812,11843,0}, {3813,11835,0},{3812,11832,0},{3815,11818,0},{3815,11812,0},{3813,11808,0}, {3815,11807,0},{3815,11803,0},{3818,11802,0},{3818,11797,0},{3825,11790,0}, {3825,11783,0},{3828,11778,0},{2722,12043,128},{2722,12047,0},{2718,12047,0}, {2717,12047,0},{2720,12052,0},{2722,12050,0},{2723,12053,0},{2727,12052,0}, {2728,12053,0},{2732,12055,0},{2733,12050,0},{2735,12053,0},{2738,12055,0}, {2740,12055,0},{2737,12063,0},{2743,12063,0},{2745,12067,0},{2748,12068,0}, {2750,12065,0},{2750,12060,0},{2758,12057,0},{2760,12063,0},{2765,12067,0}, {2767,12065,0},{2772,12067,0},{2775,12063,0},{2772,12072,0},{2775,12073,0}, {2785,12080,0},{2787,12083,0},{2793,12085,0},{2795,12083,0},{2797,12073,0}, {2802,12070,0},{2803,12058,0},{2807,12058,0},{2812,12057,0},{2810,12058,0}, {2803,12060,0},{2803,12070,0},{2798,12080,0},{2798,12093,0},{2800,12095,0}, {2805,12098,0},{2812,12098,0},{2815,12102,0},{2817,12108,0},{2823,12112,0}, {2827,12110,0},{2827,12105,0},{2830,12102,0},{2828,12108,0},{2830,12110,0}, {2833,12113,0},{2835,12117,0},{2838,12117,0},{2835,12122,0},{2837,12127,0}, {2835,12122,0},{2832,12120,0},{2828,12125,0},{2820,12125,0},{2813,12135,0}, {2818,12138,0},{2818,12135,0},{2822,12137,0},{2825,12142,0},{2827,12142,0}, {2827,12140,0},{2830,12140,0},{2830,12143,0},{2833,12145,0},{2833,12152,0}, {2830,12157,0},{2828,12158,0},{2825,12157,0},{2828,12163,0},{2833,12165,0}, {2835,12158,0},{2840,12160,0},{2843,12157,0},{2848,12157,0},{2848,12152,0}, {2850,12157,0},{2855,12152,0},{2867,12148,0},{2870,12133,0},{2867,12125,0}, {2870,12130,0},{2873,12128,0},{2875,12123,0},{2880,12122,0},{2880,12117,0}, {2883,12113,0},{2883,12115,0},{2882,12117,0},{2880,12122,0},{2877,12123,0}, {2875,12130,0},{2872,12132,0},{2870,12150,0},{2872,12162,0},{2877,12162,0}, {2880,12167,0},{2880,12163,0},{2882,12167,0},{2883,12165,0},{2883,12162,0}, {2888,12163,0},{2890,12160,0},{2890,12153,0},{2893,12148,0},{2895,12150,0}, {2895,12153,0},{2892,12158,0},{2895,12158,0},{2892,12163,0},{2892,12168,0}, {2895,12172,0},{2897,12165,0},{2900,12165,0},{2902,12168,0},{2903,12165,0}, {2905,12165,0},{2905,12155,0},{2902,12155,0},{2902,12153,0},{2905,12153,0}, {2907,12155,0},{2905,12162,0},{2910,12163,0},{2910,12147,0},{2910,12140,0}, {2913,12147,0},{2913,12143,0},{2915,12143,0},{2915,12142,0},{2917,12142,0}, {2917,12145,0},{2920,12147,0},{2917,12148,0},{2918,12150,0},{2920,12150,0}, {2925,12153,0},{2927,12152,0},{2927,12157,0},{2930,12157,0},{2928,12158,0}, {2918,12162,0},{2920,12163,0},{2930,12162,0},{2930,12163,0},{2930,12165,0}, {2927,12165,0},{2920,12165,0},{2918,12167,0},{2920,12172,0},{2920,12175,0}, {2927,12177,0},{2935,12177,0},{2937,12177,0},{2937,12180,0},{2932,12178,0}, {2932,12183,0},{2930,12180,0},{2928,12183,0},{2927,12182,0},{2925,12183,0}, {2920,12180,0},{2918,12182,0},{2917,12185,0},{2918,12190,0},{2920,12195,0}, {2922,12193,0},{2922,12197,0},{2925,12195,0},{2925,12198,0},{2928,12198,0}, {2927,12195,0},{2927,12192,0},{2930,12190,0},{2930,12192,0},{2932,12190,0}, {2932,12193,0},{2933,12193,0},{2933,12192,0},{2937,12192,0},{2938,12188,0}, {2942,12190,0},{2940,12195,0},{2942,12195,0},{2943,12197,0},{2948,12193,0}, {2950,12195,0},{2952,12190,0},{2953,12195,0},{2955,12193,0},{2955,12197,0}, {2958,12198,0},{2960,12193,0},{2962,12193,0},{2963,12190,0},{2960,12185,0}, {2960,12180,0},{2958,12177,0},{2957,12173,0},{2955,12173,0},{2955,12182,0}, {2953,12185,0},{2952,12182,0},{2948,12180,0},{2947,12175,0},{2948,12175,0}, {2952,12177,0},{2952,12172,0},{2953,12172,0},{2952,12168,0},{2952,12170,0}, {2950,12168,0},{2948,12157,0},{2942,12153,0},{2940,12148,0},{2940,12147,0}, {2945,12152,0},{2945,12148,0},{2948,12150,0},{2947,12147,0},{2942,12145,0}, {2942,12143,0},{2945,12143,0},{2950,12145,0},{2952,12145,0},{2952,12147,0}, {2955,12150,0},{2950,12152,0},{2955,12155,0},{2957,12170,0},{2958,12170,0}, {2958,12172,0},{2970,12183,0},{2977,12188,0},{2985,12207,0},{2988,12213,0}, {2990,12212,0},{2988,12203,0},{2988,12192,0},{2992,12188,0},{2993,12182,0}, {2997,12178,0},{2997,12168,0},{3002,12162,0},{3003,12162,0},{3007,12157,0}, {3010,12157,0},{3012,12153,0},{3018,12148,0},{3025,12140,0},{3030,12128,0}, {3030,12115,0},{3013,12083,0},{3012,12070,0},{3013,12067,0},{3015,12063,0}, {3010,12067,0},{3010,12077,0},{3007,12080,0},{3008,12077,0},{3008,12068,0}, {3012,12062,0},{3017,12057,0},{3023,12057,0},{3032,12052,0},{3032,12047,0}, {3028,12042,0},{3022,12037,0},{3022,12030,0},{3027,12025,0},{3022,12020,0}, {3020,12015,0},{3028,12023,0},{3030,12027,0},{3028,12032,0},{3030,12035,0}, {3037,12038,0},{3040,12045,0},{3038,12068,0},{3033,12075,0},{3033,12080,0}, {3037,12092,0},{3040,12090,0},{3042,12093,0},{3048,12093,0},{3055,12097,0}, {3057,12100,0},{3060,12113,0},{3063,12115,0},{3067,12122,0},{3070,12135,0}, {3077,12138,0},{3082,12147,0},{3085,12157,0},{3087,12170,0},{3085,12180,0}, {3085,12187,0},{3092,12190,0},{3097,12188,0},{3122,12175,0},{3132,12167,0}, {3135,12160,0},{3137,12152,0},{3138,12150,0},{3145,12142,0},{3150,12132,0}, {3162,12123,0},{3172,12108,0},{3172,12103,0},{3175,12097,0},{3175,12087,0}, {3182,12072,0},{3185,12072,0},{3183,12073,0},{3182,12077,0},{3182,12078,0}, {3187,12078,0},{3198,12072,0},{3200,12068,0},{3198,12060,0},{3202,12050,0}, {3202,12043,0},{3198,12045,0},{3195,12042,0},{3195,12032,0},{3190,12023,0}, {3190,12018,0},{3192,12010,0},{3198,11990,0},{3202,11987,0},{3207,11987,0}, {3212,11977,0},{3217,11977,0},{3220,11978,0},{3222,11973,0},{3223,11970,0}, {3220,11965,0},{3218,11962,0},{3222,11965,0},{3230,11968,0},{3235,11962,0}, {3235,11965,0},{3232,11970,0},{3233,11977,0},{3228,11985,0},{3220,11988,0}, {3220,11992,0},{3215,11990,0},{3212,11992,0},{3200,12000,0},{3195,12010,0}, {3193,12022,0},{3195,12028,0},{3208,12043,0},{3210,12050,0},{3208,12057,0}, {3210,12062,0},{3202,12082,0},{3190,12092,0},{3188,12095,0},{3185,12095,0}, {3183,12098,0},{3187,12108,0},{3183,12117,0},{3187,12128,0},{3183,12145,0}, {3182,12148,0},{3178,12152,0},{3175,12158,0},{3172,12165,0},{3168,12183,0}, {3168,12188,0},{3173,12190,0},{3180,12187,0},{3192,12183,0},{3202,12173,0}, {3212,12153,0},{3210,12148,0},{3212,12143,0},{3217,12143,0},{3217,12138,0}, {3220,12138,0},{3223,12137,0},{3225,12142,0},{3228,12140,0},{3235,12142,0}, {3238,12140,0},{3245,12128,0},{3247,12120,0},{3248,12118,0},{3250,12113,0}, {3250,12110,0},{3253,12108,0},{3257,12097,0},{3263,12083,0},{3272,12083,0}, {3270,12087,0},{3278,12085,0},{3280,12090,0},{3282,12090,0},{3297,12088,0}, {3302,12090,0},{3303,12087,0},{3302,12083,0},{3302,12082,0},{3310,12082,0}, {3310,12080,0},{3312,12080,0},{3317,12078,0},{3320,12073,0},{3322,12075,0}, {3325,12073,0},{3327,12075,0},{3328,12070,0},{3332,12067,0},{3347,12063,0}, {3350,12060,0},{3358,12053,0},{3363,12048,0},{3365,12048,0},{3365,12050,0}, {3373,12050,0},{3377,12045,0},{3380,12045,0},{3385,12043,0},{3387,12040,0}, {3390,12042,0},{3403,12037,0},{3408,12035,0},{3415,12033,0},{3423,12027,0}, {3432,12025,0},{3437,12008,0},{3445,11993,0},{3447,11980,0},{3452,11973,0}, {3453,11965,0},{3455,11963,0},{3460,11953,0},{3467,11947,0},{3470,11948,0}, {3475,11943,0},{3475,11938,0},{3477,11935,0},{3475,11932,0},{3477,11923,0}, {3475,11922,0},{3472,11920,0},{3475,11918,0},{3478,11920,0},{3485,11917,0}, {3490,11920,0},{3502,11920,0},{3507,11922,0},{3507,11930,0},{2362,11718,128}, {2363,11720,0},{2365,11720,0},{2368,11723,0},{2365,11723,0},{2362,11722,0}, {2363,11727,0},{2367,11725,0},{2372,11727,0},{2375,11728,0},{2378,11728,0}, {2378,11730,0},{2375,11730,0},{2375,11733,0},{2380,11737,0},{2377,11743,0}, {2387,11748,0},{2390,11747,0},{2392,11742,0},{2393,11740,0},{2395,11742,0}, {2392,11747,0},{2390,11757,0},{2388,11758,0},{2382,11760,0},{2372,11757,0}, {2378,11763,0},{2385,11762,0},{2392,11763,0},{2395,11770,0},{2398,11768,0}, {2403,11770,0},{2403,11767,0},{2405,11767,0},{2403,11773,0},{2403,11775,0}, {2407,11775,0},{2405,11777,0},{2403,11777,0},{2402,11775,0},{2402,11778,0}, {2402,11780,0},{2395,11773,0},{2390,11773,0},{2392,11777,0},{2395,11777,0}, {2402,11783,0},{2403,11790,0},{2410,11790,0},{2415,11793,0},{2418,11792,0}, {2420,11793,0},{2420,11797,0},{2415,11797,0},{2425,11805,0},{2425,11812,0}, {2435,11808,0},{2435,11805,0},{2432,11802,0},{2435,11802,0},{2435,11805,0}, {2440,11805,0},{2438,11790,0},{2440,11787,0},{2447,11778,0},{2445,11790,0}, {2447,11788,0},{2447,11783,0},{2448,11785,0},{2443,11802,0},{2445,11803,0}, {2445,11802,0},{2447,11800,0},{2448,11800,0},{2450,11805,0},{2452,11805,0}, {2455,11797,0},{2458,11800,0},{2457,11800,0},{2455,11802,0},{2457,11805,0}, {2462,11805,0},{2460,11808,0},{2458,11810,0},{2458,11812,0},{2468,11817,0}, {2465,11820,0},{2462,11818,0},{2460,11822,0},{2460,11818,0},{2457,11818,0}, {2453,11822,0},{2453,11823,0},{2457,11825,0},{2457,11828,0},{2460,11828,0}, {2458,11835,0},{2460,11838,0},{2460,11842,0},{2462,11842,0},{2467,11840,0}, {2470,11842,0},{2468,11843,0},{2463,11843,0},{2457,11858,0},{2455,11855,0}, {2452,11855,0},{2455,11862,0},{2457,11865,0},{2462,11867,0},{2463,11863,0}, {2468,11863,0},{2468,11865,0},{2468,11867,0},{2467,11868,0},{2468,11872,0}, {2477,11877,0},{2477,11872,0},{2480,11870,0},{2477,11863,0},{2485,11862,0}, {2488,11857,0},{2485,11865,0},{2488,11867,0},{2492,11863,0},{2495,11867,0}, {2493,11868,0},{2490,11868,0},{2493,11870,0},{2490,11873,0},{2487,11870,0}, {2485,11870,0},{2485,11877,0},{2488,11880,0},{2487,11882,0},{2488,11887,0}, {2487,11890,0},{2488,11898,0},{2490,11897,0},{2488,11893,0},{2493,11890,0}, {2495,11892,0},{2495,11897,0},{2493,11898,0},{2495,11902,0},{2495,11900,0}, {2498,11898,0},{2502,11900,0},{2505,11900,0},{2502,11898,0},{2500,11895,0}, {2503,11888,0},{2508,11885,0},{2510,11887,0},{2510,11893,0},{2513,11895,0}, {2517,11897,0},{2518,11895,0},{2518,11890,0},{2522,11892,0},{2522,11887,0}, {2525,11888,0},{2528,11898,0},{2527,11907,0},{2525,11905,0},{2525,11898,0}, {2522,11898,0},{2523,11905,0},{2522,11907,0},{2517,11905,0},{2517,11903,0}, {2513,11903,0},{2512,11903,0},{2513,11905,0},{2517,11907,0},{2515,11907,0}, {2513,11907,0},{2512,11907,0},{2510,11908,0},{2512,11910,0},{2513,11908,0}, {2512,11915,0},{2513,11915,0},{2515,11915,0},{2515,11913,0},{2517,11912,0}, {2517,11908,0},{2525,11913,0},{2523,11915,0},{2520,11913,0},{2518,11915,0}, {2517,11925,0},{2520,11928,0},{2523,11927,0},{2525,11935,0},{2527,11935,0}, {2528,11930,0},{2532,11928,0},{2532,11927,0},{2532,11925,0},{2525,11922,0}, {2525,11920,0},{2528,11918,0},{2532,11922,0},{2533,11922,0},{2532,11917,0}, {2535,11917,0},{2535,11915,0},{2537,11915,0},{2538,11912,0},{2540,11910,0}, {2542,11910,0},{2547,11923,0},{2553,11928,0},{2557,11928,0},{2557,11932,0}, {2560,11932,0},{2560,11935,0},{2558,11935,0},{2558,11938,0},{2555,11935,0}, {2552,11935,0},{2550,11945,0},{2543,11943,0},{2547,11947,0},{2547,11952,0}, {2545,11948,0},{2542,11950,0},{2537,11948,0},{2538,11952,0},{2537,11953,0}, {2540,11957,0},{2542,11953,0},{2543,11953,0},{2545,11953,0},{2547,11957,0}, {2543,11958,0},{2542,11958,0},{2537,11960,0},{2533,11958,0},{2533,11962,0}, {2535,11965,0},{2537,11962,0},{2538,11965,0},{2542,11965,0},{2543,11962,0}, {2547,11962,0},{2547,11960,0},{2550,11960,0},{2548,11958,0},{2548,11957,0}, {2550,11960,0},{2552,11957,0},{2552,11958,0},{2553,11957,0},{2558,11958,0}, {2557,11955,0},{2557,11953,0},{2555,11952,0},{2558,11948,0},{2562,11948,0}, {2562,11945,0},{2568,11945,0},{2568,11952,0},{2570,11953,0},{2568,11957,0}, {2568,11958,0},{2573,11960,0},{2575,11962,0},{2577,11960,0},{2580,11960,0}, {2583,11957,0},{2587,11958,0},{2588,11957,0},{2587,11958,0},{2583,11960,0}, {2590,11962,0},{2590,11967,0},{2600,11970,0},{2602,11968,0},{2605,11953,0}, {2603,11950,0},{2598,11948,0},{2597,11945,0},{2593,11937,0},{2597,11923,0}, {2600,11923,0},{2608,11920,0},{2608,11915,0},{2615,11910,0},{2612,11915,0}, {2610,11922,0},{2605,11927,0},{2605,11933,0},{2598,11945,0},{2602,11948,0}, {2612,11957,0},{2613,11960,0},{2617,11960,0},{2622,11967,0},{2625,11967,0}, {2625,11963,0},{2628,11967,0},{2628,11975,0},{2628,11980,0},{2630,11978,0}, {2633,11982,0},{2632,11990,0},{2637,11995,0},{2635,11988,0},{2637,11985,0}, {2640,11985,0},{2642,11982,0},{2640,11978,0},{2637,11977,0},{2637,11975,0}, {2632,11975,0},{2632,11968,0},{2633,11968,0},{2633,11965,0},{2635,11965,0}, {2640,11965,0},{2645,11963,0},{2643,11962,0},{2643,11957,0},{2647,11958,0}, {2647,11963,0},{2650,11965,0},{2645,11968,0},{2643,11975,0},{2640,11977,0}, {2642,11978,0},{2643,11980,0},{2645,11982,0},{2648,11980,0},{2650,11978,0}, {2652,11980,0},{2652,11977,0},{2655,11975,0},{2655,11977,0},{2655,11978,0}, {2657,11978,0},{2658,11973,0},{2662,11973,0},{2660,11967,0},{2657,11960,0}, {2662,11955,0},{2665,11953,0},{2665,11960,0},{2668,11960,0},{2670,11960,0}, {2670,11955,0},{2677,11955,0},{2677,11957,0},{2678,11958,0},{2680,11962,0}, {2678,11963,0},{2675,11962,0},{2675,11965,0},{2670,11970,0},{2672,11973,0}, {2677,11968,0},{2682,11968,0},{2680,11972,0},{2673,11973,0},{2673,11977,0}, {2677,11977,0},{2678,11975,0},{2682,11978,0},{2683,11980,0},{2685,11983,0}, {2683,11983,0},{2682,11980,0},{2680,11978,0},{2678,11983,0},{2677,11980,0}, {2668,11980,0},{2672,11982,0},{2668,11985,0},{2665,11985,0},{2665,11987,0}, {2665,11990,0},{2670,11990,0},{2675,11993,0},{2680,11993,0},{2678,12000,0}, {2678,12008,0},{2677,12005,0},{2673,12003,0},{2672,12003,0},{2672,12000,0}, {2670,11998,0},{2665,11998,0},{2660,11985,0},{2657,11985,0},{2657,11983,0}, {2653,11983,0},{2652,11987,0},{2652,11988,0},{2655,11993,0},{2662,11995,0}, {2660,12000,0},{2662,12002,0},{2663,12008,0},{2662,12008,0},{2663,12013,0}, {2665,12013,0},{2665,12012,0},{2670,12010,0},{2672,12015,0},{2673,12013,0}, {2673,12010,0},{2675,12010,0},{2678,12012,0},{2682,12007,0},{2682,12003,0}, {2687,12002,0},{2688,12007,0},{2690,12003,0},{2688,12010,0},{2690,12012,0}, {2693,12012,0},{2692,12022,0},{2693,12023,0},{2697,12023,0},{2698,12015,0}, {2698,12020,0},{2698,12022,0},{2700,12025,0},{2703,12025,0},{2703,12022,0}, {2705,12025,0},{2707,12025,0},{2705,12028,0},{2710,12027,0},{2710,12025,0}, {2713,12025,0},{2712,12028,0},{2710,12037,0},{2710,12038,0},{2710,12037,0}, {2712,12037,0},{2713,12042,0},{2715,12038,0},{2715,12042,0},{2718,12038,0}, {2718,12035,0},{2722,12037,0},{2723,12035,0},{2722,12030,0},{2725,12025,0}, {2723,12022,0},{2722,12020,0},{2722,12018,0},{2723,12017,0},{2725,12020,0}, {2728,12020,0},{2727,12022,0},{2728,12025,0},{2730,12023,0},{2730,12027,0}, {2732,12027,0},{2730,12028,0},{2732,12032,0},{2730,12030,0},{2728,12032,0}, {2727,12030,0},{2725,12030,0},{2723,12038,0},{2717,12042,0},{2722,12042,0}, {2723,12045,0},{2155,10798,128},{2153,10807,0},{2155,10807,0},{2157,10807,0}, {2155,10808,0},{2157,10812,0},{2157,10813,0},{2158,10813,0},{2157,10817,0}, {2160,10820,0},{2163,10820,0},{2163,10822,0},{2163,10823,0},{2162,10822,0}, {2158,10827,0},{2150,10820,0},{2155,10828,0},{2158,10832,0},{2158,10828,0}, {2162,10832,0},{2162,10830,0},{2163,10832,0},{2167,10830,0},{2168,10832,0}, {2170,10832,0},{2172,10833,0},{2170,10833,0},{2168,10835,0},{2167,10840,0}, {2168,10842,0},{2165,10842,0},{2167,10847,0},{2162,10842,0},{2162,10845,0}, {2158,10843,0},{2158,10842,0},{2160,10842,0},{2160,10838,0},{2155,10840,0}, {2157,10847,0},{2157,10845,0},{2157,10847,0},{2160,10848,0},{2162,10848,0}, {2160,10850,0},{2160,10848,0},{2158,10848,0},{2162,10852,0},{2162,10853,0}, {2163,10852,0},{2163,10855,0},{2167,10855,0},{2167,10857,0},{2168,10857,0}, {2170,10855,0},{2167,10852,0},{2168,10852,0},{2172,10853,0},{2170,10852,0}, {2167,10850,0},{2168,10850,0},{2170,10848,0},{2172,10850,0},{2173,10847,0}, {2173,10850,0},{2177,10850,0},{2178,10850,0},{2180,10850,0},{2180,10847,0}, {2182,10848,0},{2187,10845,0},{2188,10845,0},{2190,10845,0},{2193,10847,0}, {2193,10848,0},{2187,10845,0},{2185,10847,0},{2185,10848,0},{2187,10848,0}, {2188,10852,0},{2190,10852,0},{2192,10853,0},{2195,10855,0},{2195,10857,0}, {2192,10857,0},{2190,10855,0},{2190,10858,0},{2192,10860,0},{2188,10863,0}, {2180,10857,0},{2178,10857,0},{2178,10858,0},{2178,10860,0},{2173,10860,0}, {2175,10863,0},{2178,10862,0},{2177,10863,0},{2178,10863,0},{2182,10865,0}, {2178,10865,0},{2180,10868,0},{2178,10867,0},{2175,10863,0},{2173,10868,0}, {2173,10865,0},{2170,10868,0},{2173,10870,0},{2173,10873,0},{2168,10870,0}, {2167,10872,0},{2167,10873,0},{2168,10875,0},{2165,10875,0},{2167,10873,0}, {2165,10872,0},{2163,10873,0},{2160,10873,0},{2162,10873,0},{2163,10878,0}, {2162,10883,0},{2163,10887,0},{2163,10882,0},{2167,10883,0},{2168,10883,0}, {2172,10880,0},{2172,10878,0},{2173,10878,0},{2173,10880,0},{2175,10880,0}, {2170,10883,0},{2175,10885,0},{2177,10885,0},{2178,10882,0},{2180,10882,0}, {2182,10878,0},{2182,10880,0},{2180,10883,0},{2182,10887,0},{2178,10885,0}, {2180,10887,0},{2178,10887,0},{2175,10887,0},{2177,10890,0},{2177,10892,0}, {2173,10887,0},{2172,10887,0},{2168,10885,0},{2167,10890,0},{2162,10892,0}, {2160,10897,0},{2162,10903,0},{2165,10907,0},{2162,10905,0},{2160,10905,0}, {2162,10907,0},{2160,10908,0},{2160,10910,0},{2158,10912,0},{2160,10913,0}, {2153,10915,0},{2152,10915,0},{2148,10912,0},{2148,10907,0},{2143,10903,0}, {2140,10913,0},{2140,10915,0},{2143,10915,0},{2142,10917,0},{2142,10922,0}, {2145,10922,0},{2148,10923,0},{2143,10925,0},{2143,10928,0},{2147,10932,0}, {2145,10935,0},{2145,10943,0},{2150,10947,0},{2147,10947,0},{2148,10953,0}, {2152,10955,0},{2155,10955,0},{2158,10958,0},{2163,10953,0},{2165,10947,0}, {2165,10952,0},{2168,10952,0},{2168,10950,0},{2170,10950,0},{2175,10957,0}, {2173,10960,0},{2170,10955,0},{2167,10957,0},{2163,10958,0},{2165,10962,0}, {2162,10960,0},{2157,10962,0},{2157,10963,0},{2160,10963,0},{2162,10968,0}, {2152,10965,0},{2150,10967,0},{2147,10973,0},{2148,10975,0},{2148,10977,0}, {2150,10977,0},{2157,10975,0},{2158,10977,0},{2153,10977,0},{2155,10980,0}, {2147,10980,0},{2147,10983,0},{2150,10983,0},{2147,10990,0},{2148,10995,0}, {2147,10992,0},{2145,10995,0},{2142,10992,0},{2140,10990,0},{2137,10992,0}, {2137,10985,0},{2135,10983,0},{2135,10982,0},{2133,10978,0},{2135,10978,0}, {2135,10977,0},{2122,10977,0},{2118,10975,0},{2117,10975,0},{2117,10973,0}, {2118,10973,0},{2117,10970,0},{2113,10967,0},{2103,10972,0},{2103,10970,0}, {2098,10967,0},{2095,10968,0},{2095,10967,0},{2092,10967,0},{2087,10967,0}, {2082,10970,0},{2080,10972,0},{2083,10970,0},{2080,10973,0},{2082,10973,0}, {2085,10973,0},{2087,10975,0},{2083,10975,0},{2082,10977,0},{2080,10975,0}, {2077,10977,0},{2073,10975,0},{2072,10985,128},{2068,10983,0},{2068,10980,0}, {2068,10977,0},{2067,10975,0},{2063,10975,0},{2063,10978,0},{2062,10980,0}, {2058,10982,0},{2055,10982,0},{2058,10985,0},{2055,10985,0},{2053,10982,0}, {2052,10982,0},{2048,10990,0},{2045,10992,0},{2050,10993,0},{2045,10995,0}, {2047,10997,0},{2043,11002,0},{2035,10998,0},{2042,10993,0},{2040,10987,0}, {2038,10988,0},{2037,10988,0},{2033,10992,0},{2030,10993,0},{2025,10992,0}, {2023,10992,0},{2028,10998,0},{2027,11000,0},{2030,11003,0},{2027,11010,0}, {2023,11012,0},{2023,11017,0},{2027,11020,0},{2028,11023,0},{2025,11028,0}, {2027,11028,0},{2027,11032,0},{2030,11037,0},{2030,11040,0},{2043,11052,0}, {2048,11053,0},{2057,11048,0},{2057,11047,0},{2057,11043,0},{2058,11042,0}, {2060,11038,0},{2063,11038,0},{2062,11037,0},{2063,11037,0},{2063,11032,0}, {2067,11032,0},{2065,11030,0},{2068,11030,0},{2072,11033,0},{2075,11032,0}, {2075,11033,0},{2078,11032,0},{2082,11033,0},{2082,11035,0},{2073,11035,0}, {2070,11038,0},{2072,11040,0},{2077,11040,0},{2083,11038,0},{2085,11033,0}, {2083,11025,0},{2085,11015,0},{2087,11015,0},{2087,11017,0},{2093,11015,0}, {2097,11017,0},{2098,11015,0},{2098,11017,0},{2102,11018,0},{2107,11020,0}, {2108,11020,0},{2107,11020,0},{2105,11020,0},{2102,11022,0},{2107,11025,0}, {2112,11033,0},{2117,11040,0},{2123,11042,0},{2128,11037,0},{2130,11037,0}, {2132,11035,0},{2133,11033,0},{2132,11038,0},{2133,11038,0},{2133,11040,0}, {2143,11035,0},{2145,11038,0},{2142,11037,0},{2138,11040,0},{2138,11042,0}, {2140,11043,0},{2130,11042,0},{2132,11045,0},{2133,11045,0},{2133,11047,0}, {2133,11048,0},{2130,11045,0},{2130,11048,0},{2127,11047,0},{2128,11047,0}, {2128,11043,0},{2127,11042,0},{2125,11043,0},{2118,11043,0},{2122,11048,0}, {2122,11053,0},{2122,11058,0},{2125,11058,0},{2123,11063,0},{2125,11063,0}, {2132,11062,0},{2137,11062,0},{2142,11070,0},{2142,11075,0},{2143,11077,0}, {2140,11075,0},{2135,11063,0},{2132,11063,0},{2135,11067,0},{2132,11065,0}, {2125,11065,0},{2135,11070,0},{2140,11080,0},{2138,11087,0},{2140,11092,0}, {2142,11093,0},{2143,11100,0},{2147,11103,0},{2147,11107,0},{2148,11105,0}, {2147,11102,0},{2145,11100,0},{2145,11098,0},{2145,11100,0},{2148,11102,0}, {2152,11098,0},{2152,11102,0},{2153,11103,0},{2152,11107,0},{2148,11108,0}, {2150,11112,0},{2148,11112,0},{2147,11108,0},{2147,11110,0},{2147,11115,0}, {2150,11122,0},{2150,11117,0},{2152,11115,0},{2153,11120,0},{2152,11122,0}, {2150,11130,0},{2145,11128,0},{2143,11125,0},{2143,11127,0},{2152,11140,0}, {2153,11135,0},{2153,11143,0},{2157,11140,0},{2160,11143,0},{2155,11145,0}, {2155,11147,0},{2152,11147,0},{2152,11152,0},{2153,11152,0},{2152,11153,0}, {2153,11160,0},{2155,11158,0},{2158,11158,0},{2155,11160,0},{2152,11163,0}, {2162,11170,0},{2162,11178,0},{2163,11175,0},{2165,11178,0},{2172,11177,0}, {2178,11168,0},{2175,11177,0},{2175,11178,0},{2173,11180,0},{2177,11183,0}, {2172,11182,0},{2172,11188,0},{2170,11188,0},{2168,11183,0},{2167,11185,0}, {2168,11188,0},{2172,11190,0},{2177,11200,0},{2182,11190,0},{2192,11190,0}, {2192,11192,0},{2182,11197,0},{2185,11202,0},{2188,11203,0},{2185,11203,0}, {2182,11200,0},{2180,11203,0},{2180,11218,0},{2183,11220,0},{2180,11220,0}, {2175,11218,0},{2173,11223,0},{2172,11223,0},{2170,11228,0},{2172,11233,0}, {2177,11238,0},{2182,11240,0},{2200,11235,0},{2207,11238,0},{2205,11240,0}, {2198,11237,0},{2195,11240,0},{2195,11250,0},{2190,11242,0},{2183,11242,0}, {2177,11257,0},{2180,11263,0},{2185,11265,0},{2185,11268,0},{2188,11270,0}, {2188,11273,0},{2193,11275,0},{2195,11280,0},{2197,11282,0},{2195,11285,0}, {2188,11287,0},{2185,11290,0},{2187,11295,0},{2192,11298,0},{2195,11302,0}, {2202,11300,0},{2210,11298,0},{2222,11310,0},{2215,11313,0},{2208,11312,0}, {2205,11318,0},{2208,11320,0},{2205,11320,0},{2203,11322,0},{2207,11325,0}, {2212,11325,0},{2215,11328,0},{2218,11330,0},{2218,11338,0},{2223,11337,0}, {2227,11332,0},{2233,11330,0},{2237,11325,0},{2242,11323,0},{2247,11317,0}, {2257,11317,0},{2247,11323,0},{2238,11327,0},{2230,11335,0},{2227,11337,0}, {2218,11343,0},{2217,11347,0},{2218,11352,0},{2220,11353,0},{2218,11355,0}, {2222,11355,0},{2225,11358,0},{2230,11357,0},{2232,11360,0},{2235,11358,0}, {2237,11360,0},{2240,11353,0},{2248,11357,0},{2255,11357,0},{2267,11352,0}, {2272,11347,0},{2275,11338,0},{2273,11343,0},{2277,11345,0},{2277,11350,0}, {2280,11343,0},{2288,11337,0},{2288,11327,0},{2290,11322,0},{2288,11330,0}, {2290,11335,0},{2293,11342,0},{2292,11348,0},{2303,11350,0},{2307,11347,0}, {2305,11342,0},{2308,11340,0},{2310,11340,0},{2308,11347,0},{2305,11352,0}, {2308,11355,0},{2310,11358,0},{2312,11360,0},{2312,11363,0},{2315,11370,0}, {2313,11382,0},{2312,11383,0},{2313,11372,0},{2312,11365,0},{2307,11353,0}, {2305,11353,0},{2302,11352,0},{2298,11355,0},{2302,11358,0},{2293,11358,0}, {2300,11358,0},{2303,11362,0},{2298,11360,0},{2292,11360,0},{2300,11360,0}, {2303,11363,0},{2292,11362,0},{2290,11360,0},{2287,11360,0},{2290,11362,0}, {2283,11360,0},{2283,11362,0},{2288,11362,0},{2283,11365,0},{2280,11367,0}, {2275,11365,0},{2275,11368,0},{2277,11372,0},{2275,11375,0},{2258,11382,0}, {2252,11388,0},{2247,11387,0},{2248,11392,0},{2252,11392,0},{2252,11395,0}, {2252,11403,0},{2247,11402,0},{2247,11398,0},{2240,11390,0},{2237,11392,0}, {2237,11395,0},{2238,11395,0},{2237,11398,0},{2235,11403,0},{2237,11405,0}, {2237,11410,0},{2230,11417,0},{2232,11420,0},{2230,11423,0},{2232,11425,0}, {2227,11428,0},{2228,11430,0},{2255,11423,0},{2260,11430,0},{2262,11438,0}, {2255,11447,0},{2248,11448,0},{2245,11450,0},{2248,11452,0},{2250,11462,0}, {2253,11460,0},{2255,11457,0},{2257,11453,0},{2255,11452,0},{2255,11450,0}, {2258,11450,0},{2260,11457,0},{2265,11458,0},{2265,11450,0},{2268,11452,0}, {2270,11452,0},{2270,11457,0},{2273,11455,0},{2275,11462,0},{2278,11468,0}, {2277,11472,0},{2278,11475,0},{2282,11477,0},{2278,11482,0},{2275,11475,0}, {2272,11472,0},{2267,11473,0},{2263,11472,0},{2260,11473,0},{2258,11475,0}, {2258,11487,0},{2257,11488,0},{2253,11487,0},{2255,11490,0},{2262,11492,0}, {2267,11495,0},{2272,11490,0},{2270,11488,0},{2273,11487,0},{2273,11485,0}, {2275,11485,0},{2273,11490,0},{2275,11493,0},{2270,11495,0},{2268,11498,0}, {2270,11502,0},{2273,11502,0},{2273,11503,0},{2278,11505,0},{2280,11513,0}, {2278,11515,0},{2277,11517,0},{2282,11517,0},{2283,11525,0},{2285,11525,0}, {2290,11530,0},{2283,11532,0},{2282,11527,0},{2278,11522,0},{2278,11532,0}, {2277,11535,0},{2278,11540,0},{2275,11542,0},{2273,11535,0},{2270,11535,0}, {2268,11538,0},{2268,11545,0},{2265,11557,0},{2267,11557,0},{2270,11555,0}, {2273,11560,0},{2275,11555,0},{2273,11555,0},{2272,11553,0},{2275,11552,0}, {2280,11553,0},{2285,11558,0},{2287,11560,0},{2283,11557,0},{2285,11547,0}, {2287,11550,0},{2288,11550,0},{2290,11547,0},{2290,11545,0},{2290,11542,0}, {2292,11542,0},{2292,11543,0},{2293,11545,0},{2292,11547,0},{2288,11552,0}, {2290,11555,0},{2288,11555,0},{2287,11553,0},{2285,11555,0},{2288,11558,0}, {2290,11567,0},{2293,11568,0},{2293,11573,0},{2288,11567,0},{2285,11572,0}, {2282,11580,0},{2277,11582,0},{2280,11578,0},{2275,11578,0},{2273,11580,0}, {2278,11585,0},{2280,11593,0},{2283,11595,0},{2280,11595,0},{2285,11602,0}, {2285,11605,0},{2290,11607,0},{2293,11603,0},{2290,11610,0},{2287,11608,0}, {2283,11608,0},{2285,11613,0},{2292,11618,0},{2295,11627,0},{2297,11622,0}, {2298,11620,0},{2297,11625,0},{2298,11627,0},{2300,11628,0},{2298,11628,0}, {2295,11630,0},{2293,11635,0},{2295,11645,0},{2293,11648,0},{2300,11650,0}, {2302,11653,0},{2307,11652,0},{2310,11653,0},{2313,11652,0},{2320,11658,0}, {2322,11658,0},{2322,11653,0},{2322,11650,0},{2325,11657,0},{2322,11660,0}, {2318,11660,0},{2317,11662,0},{2323,11667,0},{2325,11672,0},{2327,11667,0}, {2328,11667,0},{2327,11670,0},{2320,11678,0},{2323,11678,0},{2325,11677,0}, {2332,11673,0},{2332,11668,0},{2333,11665,0},{2332,11660,0},{2333,11655,0}, {2337,11653,0},{2342,11652,0},{2337,11660,0},{2335,11668,0},{2337,11673,0}, {2335,11675,0},{2342,11683,0},{2345,11685,0},{2347,11687,0},{2352,11685,0}, {2355,11688,0},{2358,11688,0},{2360,11687,0},{2367,11692,0},{2365,11693,0}, {2362,11692,0},{2362,11695,0},{2362,11697,0},{2365,11697,0},{2365,11698,0}, {2362,11702,0},{2365,11702,0},{2365,11703,0},{2363,11707,0},{2355,11707,0}, {2357,11710,0},{2360,11713,0},{2362,11718,0},{6385,63399,128},{6382,63373,0}, {6387,63363,0},{6387,63356,0},{6385,63351,0},{6383,63336,0},{6383,63318,0}, {6387,63303,0},{6383,63296,0},{6385,63293,0},{6382,63284,0},{6382,63271,0}, {6380,63268,0},{6383,63264,0},{6387,63266,0},{6388,63263,0},{6393,63268,0}, {6395,63273,0},{6395,63266,0},{6398,63263,0},{6408,63266,0},{6408,63269,0}, {6405,63278,0},{6398,63281,0},{6397,63296,0},{6402,63299,0},{6403,63311,0}, {6402,63316,0},{6405,63326,0},{6405,63334,0},{6408,63339,0},{6410,63331,0}, {6412,63336,0},{6412,63339,0},{6410,63338,0},{6410,63344,0},{6412,63343,0}, {6412,63344,0},{6415,63333,0},{6415,63349,0},{6413,63354,0},{6413,63358,0}, {6413,63354,0},{6415,63356,0},{6417,63354,0},{6418,63366,0},{6418,63359,0}, {6422,63364,0},{6422,63354,0},{6423,63354,0},{6423,63343,0},{6435,63361,0}, {6435,63371,0},{6435,63368,0},{6438,63378,0},{6437,63379,0},{6435,63389,0}, {6438,63399,0},{6437,63391,0},{6437,63388,0},{6440,63391,0},{6440,63373,0}, {6438,63363,0},{6433,63356,0},{6430,63341,0},{6432,63326,0},{6435,63336,0}, {6437,63338,0},{6437,63348,0},{6438,63349,0},{6440,63333,0},{6450,63338,0}, {6453,63348,0},{6453,63358,0},{6455,63354,0},{6460,63366,0},{6460,63371,0}, {6458,63371,0},{6458,63376,0},{6457,63378,0},{6457,63386,0},{6460,63374,0}, {6462,63378,0},{6462,63368,0},{6465,63374,0},{6465,63386,0},{6465,63376,0}, {6465,63373,0},{6463,63366,0},{6465,63369,0},{6465,63366,0},{6458,63359,0}, {6458,63353,0},{6457,63351,0},{6455,63341,0},{6452,63336,0},{6453,63333,0}, {6457,63333,0},{6447,63328,0},{6445,63319,0},{6450,63314,0},{6448,63311,0}, {6452,63314,0},{6455,63314,0},{6455,63309,0},{6457,63311,0},{6455,63303,0}, {6457,63301,0},{6462,63301,0},{6467,63293,0},{6463,63299,0},{6465,63303,0}, {6467,63301,0},{6468,63303,0},{6473,63318,0},{6467,63296,0},{6468,63294,0}, {6472,63301,0},{6475,63304,0},{6477,63293,0},{6482,63294,0},{6480,63293,0}, {6480,63289,0},{6480,63283,0},{6478,63278,0},{6477,63279,0},{6477,63271,0}, {6477,63268,0},{6478,63273,0},{6480,63268,0},{6480,63258,0},{6477,63264,0}, {6480,63249,0},{6480,63219,0},{6483,63208,0},{6482,63198,0},{6478,63191,0}, {6480,63179,0},{6482,63183,0},{6482,63179,0},{6478,63173,0},{6475,63173,0}, {6473,63169,0},{6473,63153,0},{6473,63148,0},{6475,63141,0},{6487,63131,0}, {6488,63129,0},{6488,63136,0},{6492,63139,0},{6492,63154,0},{6488,63169,0}, {6492,63181,0},{6495,63186,0},{6495,63198,0},{6497,63196,0},{6497,63201,0}, {6493,63203,0},{6492,63211,0},{6495,63214,0},{6498,63213,0},{6502,63218,0}, {6500,63228,0},{6495,63219,0},{6492,63224,0},{6497,63224,0},{6497,63229,0}, {6500,63233,0},{6500,63239,0},{6498,63241,0},{6502,63253,0},{6503,63258,0}, {6503,63249,0},{6508,63264,0},{6505,63266,0},{6502,63261,0},{6502,63268,0}, {6500,63269,0},{6497,63278,0},{6500,63274,0},{6502,63274,0},{6505,63283,0}, {6507,63301,0},{6505,63308,0},{6503,63321,0},{6503,63324,0},{6503,63341,0}, {6503,63356,0},{6505,63358,0},{6507,63351,0},{6515,63363,0},{6520,63361,0}, {6520,63354,0},{6515,63349,0},{6510,63329,0},{6512,63311,0},{6517,63296,0}, {6515,63289,0},{6515,63281,0},{6517,63279,0},{6518,63291,0},{6518,63281,0}, {6523,63286,0},{6523,63294,0},{6527,63294,0},{6527,63299,0},{6530,63303,0}, {6533,63319,0},{6540,63338,0},{6538,63343,0},{6540,63341,0},{6542,63344,0}, {6543,63358,0},{6545,63366,0},{6543,63354,0},{6545,63349,0},{6543,63339,0}, {6545,63341,0},{6547,63343,0},{6550,63336,0},{6550,63333,0},{6548,63331,0}, {6550,63328,0},{6552,63326,0},{6548,63324,0},{6543,63316,0},{6545,63306,0}, {6548,63298,0},{6550,63298,0},{6552,63316,0},{6560,63326,0},{6553,63311,0}, {6553,63301,0},{6557,63306,0},{6553,63299,0},{6555,63294,0},{6552,63296,0}, {6550,63289,0},{6552,63286,0},{6557,63286,0},{6563,63281,0},{6557,63283,0}, {6555,63281,0},{6553,63278,0},{6555,63276,0},{6557,63274,0},{6555,63273,0}, {6552,63271,0},{6553,63268,0},{6557,63264,0},{6563,63268,0},{6562,63264,0}, {6563,63259,0},{6550,63263,0},{6550,63258,0},{6553,63256,0},{6553,63248,0}, {6560,63256,0},{6562,63251,0},{6558,63249,0},{6557,63244,0},{6560,63241,0}, {6555,63239,0},{6553,63234,0},{6555,63221,0},{6558,63221,0},{6558,63218,0}, {6553,63216,0},{6552,63218,0},{6548,63213,0},{6550,63199,0},{6552,63196,0}, {6550,63196,0},{6547,63186,0},{6547,63171,0},{6542,63164,0},{6540,63149,0}, {6542,63138,0},{6545,63136,0},{6545,63139,0},{6547,63139,0},{6547,63133,0}, {6550,63116,0},{6548,63089,0},{6550,63083,0},{6553,63089,0},{6557,63098,0}, {6560,63099,0},{6563,63104,0},{6560,63121,0},{6552,63146,0},{6553,63156,0}, {6553,63148,0},{6563,63129,0},{6565,63129,0},{6565,63139,0},{6560,63156,0}, {6570,63129,0},{6578,63123,0},{6580,63126,0},{6570,63174,0},{6567,63181,0}, {6560,63179,0},{6563,63186,0},{6563,63196,0},{6565,63196,0},{6567,63208,0}, {6567,63191,0},{6570,63184,0},{6572,63183,0},{6573,63189,0},{6573,63201,0}, {6575,63203,0},{6573,63213,0},{6575,63211,0},{6578,63216,0},{6575,63184,0}, {6577,63163,0},{6587,63149,0},{6592,63154,0},{6590,63173,0},{6587,63176,0}, {6588,63186,0},{6587,63189,0},{6583,63214,0},{6590,63178,0},{6602,63154,0}, {6605,63156,0},{6607,63159,0},{6602,63193,0},{6598,63198,0},{6600,63196,0}, {6603,63193,0},{6605,63183,0},{6612,63169,0},{6613,63181,0},{6612,63191,0}, {6610,63196,0},{6613,63189,0},{6615,63176,0},{6618,63183,0},{6618,63188,0}, {6620,63189,0},{6618,63201,0},{6615,63219,0},{6612,63224,0},{6608,63226,0}, {6610,63233,0},{6608,63238,0},{6603,63238,0},{6597,63229,0},{6605,63243,0}, {6600,63246,0},{6602,63249,0},{6602,63251,0},{6593,63243,0},{6595,63249,0}, {6600,63253,0},{6597,63256,0},{6592,63254,0},{6605,63259,0},{6605,63268,0}, {6603,63269,0},{6597,63279,0},{6583,63271,0},{6597,63284,0},{6593,63288,0}, {6593,63291,0},{6590,63291,0},{6592,63294,0},{6583,63289,0},{6583,63293,0}, {6590,63296,0},{6590,63301,0},{6598,63294,0},{6603,63288,0},{6607,63289,0}, {6608,63298,0},{6608,63288,0},{6608,63279,0},{6612,63276,0},{6615,63253,0}, {6623,63238,0},{6627,63256,0},{6625,63268,0},{6625,63276,0},{6622,63278,0}, {6623,63281,0},{6625,63281,0},{6627,63296,0},{6627,63299,0},{6627,63286,0}, {6627,63279,0},{6632,63289,0},{6633,63286,0},{6632,63286,0},{6628,63276,0}, {6630,63266,0},{6635,63269,0},{6637,63274,0},{6637,63268,0},{6632,63254,0}, {6633,63253,0},{6637,63256,0},{6630,63243,0},{6632,63229,0},{6635,63218,0}, {6637,63233,0},{6638,63234,0},{6642,63224,0},{6643,63224,0},{6642,63234,0}, {6643,63234,0},{6643,63246,0},{6642,63249,0},{6643,63249,0},{6647,63241,0}, {6647,63244,0},{6643,63263,0},{6642,63268,0},{6647,63276,0},{6647,63281,0}, {6642,63289,0},{6643,63294,0},{6647,63291,0},{6643,63298,0},{6640,63301,0}, {6638,63309,0},{6633,63311,0},{6633,63316,0},{6632,63313,0},{6630,63314,0}, {6627,63313,0},{6627,63324,0},{6628,63326,0},{6627,63328,0},{6627,63339,0}, {6623,63344,0},{6620,63338,0},{6622,63343,0},{6618,63349,0},{6618,63361,0}, {6607,63364,0},{6607,63371,0},{6605,63373,0},{6602,63369,0},{6605,63374,0}, {6608,63373,0},{6610,63381,0},{6605,63384,0},{6605,63381,0},{6602,63383,0}, {6602,63403,0},{6598,63404,0},{6595,63376,0},{6593,63378,0},{6597,63389,0}, {6595,63398,0},{6593,63393,0},{6592,63408,0},{6588,63408,0},{6587,63404,0}, {6587,63408,0},{6583,63406,0},{6578,63401,0},{6577,63388,0},{6577,63396,0}, {6573,63403,0},{6568,63391,0},{6568,63378,0},{6577,63369,0},{6577,63364,0}, {6577,63358,0},{6575,63366,0},{6572,63369,0},{6568,63368,0},{6565,63371,0}, {6563,63378,0},{6563,63396,0},{6555,63388,0},{6558,63398,0},{6560,63404,0}, {6552,63406,0},{6543,63388,0},{6548,63406,0},{6543,63416,0},{6530,63416,0}, {6517,63428,0},{6518,63429,0},{6527,63424,0},{6533,63429,0},{6545,63426,0}, {6545,63431,0},{6535,63439,0},{6533,63444,0},{6545,63438,0},{6552,63438,0}, {6558,63443,0},{6567,63463,0},{6568,63468,0},{6567,63474,0},{6555,63471,0}, {6555,63474,0},{6558,63474,0},{6558,63479,0},{6553,63478,0},{6548,63486,0}, {6550,63491,0},{6555,63493,0},{6557,63484,0},{6560,63494,0},{6557,63496,0}, {6552,63496,0},{6557,63498,0},{6565,63504,0},{6567,63509,0},{6568,63504,0}, {6572,63509,0},{6577,63509,0},{6582,63503,0},{6585,63506,0},{6593,63496,0}, {6602,63494,0},{6602,63491,0},{6608,63494,0},{6610,63511,0},{6613,63518,0}, {6612,63524,0},{6612,63526,0},{6608,63529,0},{6608,63533,0},{6590,63549,0}, {6588,63561,0},{6587,63566,0},{6575,63573,0},{6573,63579,0},{6575,63581,0}, {6577,63583,0},{6575,63586,0},{6575,63593,0},{6573,63589,0},{6573,63594,0}, {6583,63598,0},{6592,63591,0},{6595,63584,0},{6598,63588,0},{6600,63594,0}, {6607,63591,0},{6608,63598,0},{6608,63613,0},{6607,63619,0},{6610,63623,0}, {6607,63631,0},{6610,63626,0},{6617,63629,0},{6618,63643,0},{6618,63644,0}, {6615,63644,0},{6617,63648,0},{6620,63651,0},{6618,63658,0},{6613,63656,0}, {6617,63666,0},{6613,63673,0},{6612,63674,0},{6608,63669,0},{6610,63676,0}, {6608,63681,0},{6607,63681,0},{6602,63684,0},{6597,63683,0},{6595,63703,0}, {6587,63709,0},{6587,63716,0},{6573,63718,0},{6570,63726,0},{6565,63729,0}, {6567,63731,0},{6573,63724,0},{6585,63729,0},{6592,63721,0},{6592,63719,0}, {6593,63714,0},{6597,63714,0},{6602,63706,0},{6615,63703,0},{6617,63706,0}, {6617,63726,0},{6615,63728,0},{6615,63746,0},{6612,63748,0},{6612,63754,0}, {6603,63768,0},{6602,63768,0},{6592,63781,0},{6597,63779,0},{6598,63786,0}, {6598,63774,0},{6600,63793,0},{6598,63793,0},{6595,63794,0},{6598,63794,0}, {6605,63801,0},{6610,63801,0},{6613,63809,0},{6617,63809,0},{6618,63813,0}, {6620,63821,0},{6622,63821,0},{6620,63833,0},{6618,63839,0},{6612,63843,0}, {6612,63846,0},{6613,63846,0},{6615,63864,0},{6613,63858,0},{6612,63861,0}, {6613,63864,0},{6608,63876,0},{6617,63868,0},{6620,63886,0},{6617,63873,0}, {6618,63884,0},{6617,63888,0},{6613,63893,0},{6617,63891,0},{6618,63888,0}, {6627,63894,0},{6637,63884,0},{6642,63886,0},{6647,63878,0},{6650,63879,0}, {6650,63883,0},{6648,63884,0},{6650,63886,0},{6652,63888,0},{6652,63893,0}, {6648,63894,0},{6652,63898,0},{6648,63906,0},{6648,63904,0},{6648,63911,0}, {6652,63913,0},{6650,63914,0},{6653,63919,0},{6652,63928,0},{6653,63934,0}, {6648,63946,0},{6648,63943,0},{6642,63943,0},{6642,63953,0},{6640,63953,0}, {6640,63964,0},{6633,63968,0},{6628,63959,0},{6627,63959,0},{6627,63968,0}, {6622,63968,0},{6622,63983,0},{6615,63998,0},{6618,64003,0},{6625,64003,0}, {6628,64026,0},{6630,64026,0},{6633,64034,0},{6638,64041,0},{6638,64048,0}, {6637,64063,0},{6638,64081,0},{6627,64036,0},{6622,64043,0},{6618,64041,0}, {6615,64034,0},{6613,64021,0},{6612,64018,0},{6610,64021,0},{6610,64029,0}, {6607,64031,0},{6605,64028,0},{6605,64043,0},{6603,64048,0},{6607,64058,0}, {6607,64064,0},{6605,64069,0},{6600,64071,0},{6600,64074,0},{6595,64076,0}, {6588,64071,0},{6583,64056,0},{6580,64054,0},{6575,64048,0},{6578,64058,0}, {6575,64054,0},{6573,64051,0},{6572,64054,0},{6578,64101,0},{6575,64101,0}, {6572,64096,0},{6567,64109,0},{6565,64101,0},{6553,64083,0},{6550,64079,0}, {6565,64106,0},{6563,64118,0},{6565,64111,0},{6560,64136,0},{6562,64149,0}, {6558,64151,0},{6557,64149,0},{6557,64154,0},{6552,64154,0},{6555,64166,0}, {6552,64173,0},{6550,64176,0},{6547,64173,0},{6537,64168,0},{6537,64153,0}, {6533,64163,0},{6532,64163,0},{6532,64151,0},{6527,64136,0},{6530,64166,0}, {6530,64173,0},{6527,64179,0},{6522,64173,0},{6522,64166,0},{6520,64133,0}, {6520,64174,0},{6515,64173,0},{6513,64161,0},{6513,64171,0},{6512,64168,0}, {6512,64173,0},{6510,64174,0},{6517,64183,0},{6517,64184,0},{6513,64184,0}, {6507,64186,0},{6503,64181,0},{6503,64176,0},{6500,64178,0},{6498,64169,0}, {6498,64156,0},{6503,64151,0},{6508,64133,0},{6503,64136,0},{6503,64113,0}, {6502,64116,0},{6502,64144,0},{6497,64149,0},{6495,64156,0},{6493,64166,0}, {6492,64166,0},{6493,64131,0},{6492,64133,0},{6490,64151,0},{6487,64159,0}, {6482,64153,0},{6483,64139,0},{6480,64153,0},{6478,64133,0},{6473,64138,0}, {6472,64128,0},{6468,64111,0},{6470,64103,0},{6478,64094,0},{6480,64084,0}, {6478,64091,0},{6475,64089,0},{6473,64098,0},{6468,64103,0},{6467,64109,0}, {6465,64106,0},{6467,64098,0},{6467,64088,0},{6463,64089,0},{6463,64096,0}, {6460,64094,0},{6458,64078,0},{6457,64079,0},{6455,64086,0},{6460,64101,0}, {6460,64103,0},{6453,64089,0},{6440,64081,0},{6438,64061,0},{6442,64079,0}, {6443,64071,0},{6443,64064,0},{6440,64064,0},{6432,64046,0},{6435,64046,0}, {6430,64041,0},{6430,64048,0},{6428,64048,0},{6425,64039,0},{6427,64034,0}, {6430,64026,0},{6427,64014,0},{6430,64016,0},{6428,64013,0},{6430,64011,0}, {6433,64008,0},{6430,64008,0},{6430,64004,0},{6435,64001,0},{6438,63996,0}, {6440,63989,0},{6438,63996,0},{6435,63998,0},{6433,63999,0},{6433,63996,0}, {6432,63999,0},{6428,63998,0},{6427,63993,0},{6427,63986,0},{6425,63993,0}, {6423,63986,0},{6422,63968,0},{6418,63956,0},{6420,63964,0},{6418,63964,0}, {6413,63934,0},{6413,63933,0},{6412,63938,0},{6405,63921,0},{6407,63919,0}, {6405,63916,0},{6403,63918,0},{6402,63911,0},{6403,63909,0},{6400,63901,0}, {6398,63901,0},{6400,63906,0},{6390,63888,0},{6390,63886,0},{6392,63889,0}, {6387,63874,0},{6385,63864,0},{6387,63858,0},{6385,63861,0},{6383,63858,0}, {6380,63856,0},{6383,63856,0},{6387,63848,0},{6380,63846,0},{6387,63843,0}, {6378,63843,0},{6378,63839,0},{6380,63839,0},{6388,63843,0},{6392,63839,0}, {6387,63839,0},{6385,63833,0},{6378,63836,0},{6378,63823,0},{6380,63819,0}, {6380,63816,0},{6382,63816,0},{6378,63808,0},{6375,63781,0},{6378,63781,0}, {6375,63779,0},{6375,63776,0},{6373,63778,0},{6370,63764,0},{6372,63764,0}, {6375,63774,0},{6377,63764,0},{6375,63764,0},{6375,63754,0},{6373,63756,0}, {6373,63749,0},{6368,63746,0},{6367,63739,0},{6365,63741,0},{6367,63748,0}, {6365,63751,0},{6367,63756,0},{6363,63753,0},{6362,63739,0},{6360,63741,0}, {6360,63751,0},{6353,63743,0},{6347,63716,0},{6347,63714,0},{6350,63714,0}, {6353,63724,0},{6352,63716,0},{6353,63708,0},{6355,63704,0},{6345,63709,0}, {6347,63719,0},{6343,63693,0},{6338,63663,0},{6342,63638,0},{6342,63629,0}, {6343,63624,0},{6342,63621,0},{6343,63611,0},{6347,63598,0},{6353,63563,0}, {6355,63564,0},{6353,63559,0},{6355,63549,0},{6353,63559,0},{6353,63531,0}, {6355,63528,0},{6353,63529,0},{6353,63519,0},{6360,63501,0},{6360,63506,0}, {6362,63503,0},{6363,63503,0},{6362,63499,0},{6362,63496,0},{6363,63499,0}, {6367,63491,0},{6370,63489,0},{6370,63486,0},{6363,63493,0},{6370,63481,0}, {6375,63481,0},{6377,63488,0},{6373,63504,0},{6378,63491,0},{6382,63496,0}, {6383,63494,0},{6380,63491,0},{6375,63479,0},{6370,63479,0},{6377,63459,0}, {6375,63471,0},{6377,63476,0},{6377,63473,0},{6378,63473,0},{6377,63468,0}, {6378,63464,0},{6382,63469,0},{6387,63466,0},{6387,63464,0},{6383,63468,0}, {6380,63461,0},{6380,63453,0},{6378,63454,0},{6382,63446,0},{6383,63429,0}, {6387,63419,0},{6393,63418,0},{6395,63431,0},{6395,63418,0},{6393,63409,0}, {6392,63406,0},{6388,63416,0},{6388,63403,0},{6387,63399,0},{6385,63399,0}, {5507,64811,128},{5505,64811,0},{5503,64826,0},{5507,64834,0},{5515,64839,0}, {5518,64839,0},{5517,64849,0},{5517,64861,0},{5518,64866,0},{5522,64881,0}, {5525,64888,0},{5523,64894,0},{5523,64901,0},{5520,64913,0},{5522,64921,0}, {5522,64926,0},{5515,64933,0},{5505,64931,0},{5505,64936,0},{5503,64939,0}, {5498,64936,0},{5497,64943,0},{5490,64951,0},{5487,64954,0},{5482,64954,0}, {5482,64959,0},{5478,64964,0},{5483,64956,0},{5485,64958,0},{5485,64963,0}, {5483,64966,0},{5480,64968,0},{5475,64966,0},{5472,64963,0},{5470,64949,0}, {5463,64944,0},{5460,64946,0},{5463,64951,0},{5468,64961,0},{5468,64973,0}, {5468,64979,0},{5463,64983,0},{5457,64988,0},{5452,64988,0},{5448,64993,0}, {5442,64989,0},{5438,64989,0},{5437,64988,0},{5435,64989,0},{5433,64984,0}, {5435,64983,0},{5440,64979,0},{5445,64983,0},{5450,64981,0},{5452,64979,0}, {5457,64969,0},{5457,64966,0},{5453,64964,0},{5452,64969,0},{5450,64968,0}, {5448,64971,0},{5442,64973,0},{5435,64964,0},{5438,64978,0},{5435,64981,0}, {5432,64983,0},{5428,64979,0},{5423,64971,0},{5425,64968,0},{5425,64961,0}, {5422,64949,0},{5417,64949,0},{5410,64946,0},{5403,64931,0},{5403,64926,0}, {5405,64928,0},{5407,64918,0},{5408,64916,0},{5408,64909,0},{5408,64911,0}, {5408,64909,128},{5407,64916,0},{5403,64918,0},{5403,64923,0},{5400,64924,0}, {5398,64918,0},{5402,64903,0},{5402,64899,0},{5400,64901,0},{5398,64899,0}, {5392,64898,0},{5387,64903,0},{5387,64911,0},{5380,64911,0},{5378,64914,0}, {5375,64911,0},{5368,64913,0},{5363,64914,0},{5357,64928,0},{5352,64928,0}, {5345,64921,0},{5340,64924,0},{5338,64931,0},{5337,64931,0},{5338,64923,0}, {5337,64918,0},{5335,64914,0},{5330,64919,0},{5327,64926,0},{5322,64926,0}, {5310,64933,0},{5300,64931,0},{5297,64936,0},{5285,64929,0},{5283,64924,0}, {5273,64921,0},{5267,64914,0},{5255,64916,0},{5242,64901,0},{5235,64899,0}, {5237,64894,0},{5235,64893,0},{5232,64893,0},{5230,64896,0},{5233,64898,0}, {5227,64898,0},{5225,64904,0},{5218,64899,0},{5218,64896,0},{5220,64898,0}, {5218,64889,0},{5220,64891,0},{5220,64888,0},{5217,64878,0},{5222,64866,0}, {5220,64856,0},{5225,64859,0},{5223,64856,0},{5223,64853,0},{5222,64853,0}, {5220,64854,0},{5217,64853,0},{5215,64848,0},{5212,64843,0},{5213,64843,0}, {5215,64846,0},{5218,64846,0},{5222,64844,0},{5225,64839,0},{5228,64836,0}, {5222,64839,0},{5218,64838,0},{5218,64841,0},{5213,64836,0},{5213,64826,0}, {5217,64829,0},{5217,64826,0},{5217,64824,0},{5215,64826,0},{5215,64819,0}, {5213,64818,0},{5213,64793,0},{5210,64781,0},{5208,64781,0},{5210,64776,0}, {5208,64774,0},{5207,64776,0},{5205,64783,0},{5203,64778,0},{5200,64778,0}, {5198,64764,0},{5195,64763,0},{5195,64758,0},{5195,64753,0},{5197,64749,0}, {5192,64746,0},{5192,64744,0},{5188,64748,0},{5187,64736,0},{5183,64733,0}, {5182,64734,0},{5180,64719,0},{5180,64711,0},{5182,64709,0},{5185,64718,0}, {5188,64719,0},{5187,64706,0},{5188,64698,0},{5187,64696,0},{5187,64703,0}, {5182,64708,0},{5178,64704,0},{5177,64706,0},{5172,64701,0},{5170,64693,0}, {5168,64691,0},{5170,64683,0},{5168,64684,0},{5165,64681,0},{5160,64683,0}, {5163,64678,0},{5163,64668,0},{5157,64666,0},{5157,64661,0},{5158,64659,0}, {5158,64649,0},{5155,64648,0},{5155,64643,0},{5153,64643,0},{5157,64636,0}, {5155,64629,0},{5157,64623,0},{5153,64624,0},{5152,64619,0},{5153,64618,0}, {5150,64618,0},{5148,64614,0},{5148,64609,0},{5150,64609,0},{5150,64606,0}, {5148,64606,0},{5147,64601,0},{5147,64598,0},{5150,64594,0},{5155,64596,0}, {5157,64591,0},{5153,64591,0},{5152,64584,0},{5153,64581,0},{5150,64581,0}, {5150,64578,0},{5148,64576,0},{5148,64573,0},{5152,64571,0},{5148,64564,0}, {5147,64566,0},{5145,64559,0},{5147,64559,0},{5145,64554,0},{5147,64554,0}, {5148,64553,0},{5153,64563,0},{5155,64571,0},{5162,64581,0},{5162,64578,0}, {5155,64556,0},{5155,64551,0},{5157,64558,0},{5160,64561,0},{5168,64589,0}, {5168,64591,0},{5172,64591,0},{5172,64588,0},{5173,64584,0},{5175,64581,0}, {5173,64581,0},{5168,64576,0},{5165,64544,0},{5162,64541,0},{5160,64533,0}, {5160,64529,0},{5160,64523,0},{5158,64521,0},{5162,64521,0},{5163,64529,0}, {5165,64529,0},{5167,64526,0},{5167,64528,0},{5168,64538,0},{5172,64541,0}, {5172,64536,0},{5173,64538,0},{5177,64546,0},{5173,64548,0},{5177,64551,0}, {5177,64558,0},{5178,64554,0},{5183,64563,0},{5185,64571,0},{5187,64578,0}, {5185,64564,0},{5182,64556,0},{5182,64553,0},{5180,64549,0},{5182,64548,0}, {5173,64523,0},{5175,64523,0},{5177,64514,0},{5178,64518,0},{5182,64519,0}, {5185,64516,0},{5183,64511,0},{5178,64503,0},{5185,64503,0},{5185,64498,0}, {5188,64496,0},{5190,64508,0},{5190,64511,0},{5193,64509,0},{5195,64506,0}, {5197,64509,0},{5198,64509,0},{5205,64536,0},{5208,64539,0},{5207,64539,0}, {5205,64543,0},{5213,64546,0},{5212,64549,0},{5213,64559,0},{5215,64548,0}, {5215,64539,0},{5210,64541,0},{5213,64536,0},{5210,64518,0},{5213,64514,0}, {5213,64509,0},{5212,64506,0},{5212,64509,0},{5210,64508,0},{5212,64499,0}, {5210,64501,0},{5210,64493,0},{5210,64489,0},{5212,64489,0},{5215,64489,0}, {5217,64491,0},{5218,64489,0},{5220,64494,0},{5217,64494,0},{5218,64499,0}, {5223,64499,0},{5223,64504,0},{5227,64509,0},{5228,64519,0},{5223,64519,0}, {5225,64528,0},{5228,64533,0},{5230,64531,0},{5230,64534,0},{5227,64534,0}, {5223,64541,0},{5223,64549,0},{5225,64554,0},{5223,64554,0},{5225,64563,0}, {5227,64561,0},{5227,64548,0},{5230,64548,0},{5230,64551,0},{5232,64553,0}, {5238,64553,0},{5240,64541,0},{5242,64543,0},{5245,64559,0},{5248,64566,0}, {5247,64573,0},{5248,64571,0},{5248,64568,0},{5252,64568,0},{5255,64569,0}, {5257,64573,0},{5255,64589,0},{5258,64593,0},{5257,64608,0},{5263,64629,0}, {5262,64631,0},{5262,64636,0},{5265,64641,0},{5267,64653,0},{5265,64656,0}, {5267,64663,0},{5270,64649,0},{5268,64641,0},{5272,64643,0},{5277,64639,0}, {5275,64633,0},{5272,64633,0},{5262,64621,0},{5262,64611,0},{5258,64608,0}, {5260,64603,0},{5263,64609,0},{5260,64596,0},{5263,64583,0},{5267,64581,0}, {5265,64578,0},{5263,64579,0},{5260,64566,0},{5258,64566,0},{5255,64548,0}, {5257,64543,0},{5260,64554,0},{5268,64569,0},{5273,64576,0},{5275,64586,0}, {5280,64588,0},{5283,64593,0},{5288,64593,0},{5293,64601,0},{5293,64599,0}, {5293,64589,0},{5297,64593,0},{5315,64609,0},{5312,64621,0},{5313,64628,0}, {5315,64624,0},{5315,64638,0},{5317,64629,0},{5317,64639,0},{5315,64639,0}, {5313,64643,0},{5315,64643,0},{5318,64643,0},{5322,64646,0},{5320,64641,0}, {5322,64636,0},{5323,64639,0},{5325,64639,0},{5325,64643,0},{5327,64643,0}, {5327,64633,0},{5323,64618,0},{5322,64588,0},{5323,64581,0},{5328,64581,0}, {5327,64579,0},{5323,64578,0},{5323,64574,0},{5325,64573,0},{5328,64576,0}, {5332,64574,0},{5332,64578,0},{5333,64579,0},{5335,64576,0},{5333,64576,0}, {5333,64571,0},{5333,64569,0},{5337,64574,0},{5335,64568,0},{5332,64563,0}, {5330,64559,0},{5332,64551,0},{5332,64546,0},{5335,64548,0},{5335,64546,0}, {5338,64558,0},{5340,64558,0},{5340,64554,0},{5342,64556,0},{5340,64549,0}, {5342,64548,0},{5342,64549,0},{5342,64546,0},{5338,64543,0},{5337,64539,0}, {5338,64533,0},{5342,64529,0},{5340,64524,0},{5342,64521,0},{5340,64518,0}, {5345,64521,0},{5345,64531,0},{5350,64524,0},{5352,64524,0},{5353,64521,0}, {5355,64516,0},{5355,64526,0},{5357,64526,0},{5357,64536,0},{5360,64531,0}, {5362,64548,0},{5368,64544,0},{5375,64546,0},{5378,64558,0},{5377,64576,0}, {5380,64581,0},{5382,64574,0},{5383,64576,0},{5383,64574,0},{5387,64579,0}, {5387,64578,0},{5390,64579,0},{5390,64559,0},{5387,64553,0},{5385,64544,0}, {5387,64543,0},{5395,64546,0},{5393,64554,0},{5392,64556,0},{5392,64558,0}, {5397,64556,0},{5397,64554,0},{5395,64554,0},{5397,64553,0},{5400,64551,0}, {5402,64546,0},{5405,64546,0},{5407,64549,0},{5408,64548,0},{5412,64553,0}, {5412,64548,0},{5408,64546,0},{5407,64543,0},{5407,64539,0},{5410,64538,0}, {5412,64544,0},{5413,64539,0},{5415,64543,0},{5417,64539,0},{5418,64541,0}, {5418,64543,0},{5422,64534,0},{5418,64534,0},{5418,64531,0},{5417,64533,0}, {5415,64528,0},{5413,64529,0},{5412,64528,0},{5408,64529,0},{5410,64524,0}, {5420,64526,0},{5422,64529,0},{5423,64524,0},{5423,64528,0},{5425,64528,0}, {5430,64536,0},{5427,64539,0},{5425,64546,0},{5422,64544,0},{5423,64538,0}, {5422,64539,0},{5420,64546,0},{5427,64551,0},{5425,64559,0},{5428,64556,0}, {5430,64549,0},{5433,64556,0},{5432,64568,0},{5432,64588,0},{5428,64598,0}, {5432,64603,0},{5430,64609,0},{5427,64611,0},{5427,64616,0},{5425,64614,0}, {5423,64616,0},{5422,64614,0},{5420,64619,0},{5417,64623,0},{5428,64631,0}, {5428,64643,0},{5425,64653,0},{5427,64659,0},{5427,64663,0},{5427,64668,0}, {5420,64678,0},{5420,64684,0},{5425,64678,0},{5425,64674,0},{5428,64678,0}, {5427,64689,0},{5432,64679,0},{5430,64686,0},{5432,64686,0},{5433,64679,0}, {5432,64671,0},{5435,64669,0},{5438,64679,0},{5440,64679,0},{5440,64683,0}, {5443,64689,0},{5445,64688,0},{5447,64689,0},{5445,64693,0},{5447,64708,0}, {5452,64711,0},{5455,64714,0},{5462,64721,0},{5460,64723,0},{5462,64726,0}, {5463,64723,0},{5460,64709,0},{5460,64706,0},{5463,64708,0},{5463,64706,0}, {5462,64701,0},{5455,64691,0},{5458,64691,0},{5462,64698,0},{5460,64689,0}, {5462,64688,0},{5460,64678,0},{5462,64669,0},{5465,64656,0},{5468,64658,0}, {5468,64656,0},{5470,64661,0},{5473,64661,0},{5477,64669,0},{5475,64691,0}, {5477,64689,0},{5478,64683,0},{5478,64689,0},{5475,64696,0},{5482,64681,0}, {5483,64688,0},{5483,64704,0},{5485,64698,0},{5487,64698,0},{5487,64704,0}, {5488,64706,0},{5490,64703,0},{5490,64698,0},{5488,64698,0},{5490,64691,0}, {5493,64691,0},{5495,64699,0},{5495,64696,0},{5500,64691,0},{5500,64696,0}, {5503,64696,0},{5503,64701,0},{5505,64701,0},{5505,64704,0},{5507,64703,0}, {5508,64706,0},{5510,64704,0},{5515,64708,0},{5515,64719,0},{5515,64721,0}, {5515,64723,0},{5512,64719,0},{5515,64728,0},{5517,64734,0},{5520,64734,0}, {5522,64738,0},{5520,64741,0},{5518,64741,0},{5518,64746,0},{5517,64748,0}, {5515,64746,0},{5515,64751,0},{5513,64746,0},{5513,64751,0},{5515,64751,0}, {5518,64753,0},{5518,64749,0},{5522,64748,0},{5522,64753,0},{5525,64756,0}, {5517,64754,0},{5517,64761,0},{5515,64766,0},{5510,64766,0},{5513,64769,0}, {5522,64766,0},{5517,64764,0},{5518,64763,0},{5520,64763,0},{5520,64756,0}, {5525,64761,0},{5525,64766,0},{5528,64771,0},{5523,64776,0},{5518,64774,0}, {5515,64781,0},{5512,64783,0},{5508,64783,0},{5503,64773,0},{5503,64778,0}, {5503,64779,0},{5500,64773,0},{5497,64771,0},{5502,64779,0},{5505,64789,0}, {5508,64788,0},{5513,64788,0},{5520,64781,0},{5525,64784,0},{5527,64783,0}, {5527,64788,0},{5528,64788,0},{5527,64791,0},{5530,64799,0},{5530,64803,0}, {5528,64801,0},{5527,64809,0},{5530,64803,0},{5533,64799,0},{5533,64803,0}, {5535,64798,0},{5537,64796,0},{5535,64811,0},{5533,64818,0},{5528,64823,0}, {5523,64843,0},{5522,64841,0},{5513,64819,0},{5507,64811,0},{5863,65036,128}, {5862,65039,0},{5862,65048,0},{5858,65053,0},{5857,65054,0},{5858,65059,0}, {5860,65056,0},{5860,65058,0},{5857,65061,0},{5855,65069,0},{5853,65069,0}, {5845,65059,0},{5848,65068,0},{5852,65069,0},{5853,65076,0},{5858,65076,0}, {5857,65084,0},{5855,65093,0},{5852,65093,0},{5845,65088,0},{5853,65099,0}, {5853,65108,0},{5852,65113,0},{5853,65113,0},{5855,65114,0},{5853,65118,0}, {5857,65123,0},{5855,65129,0},{5860,65134,0},{5857,65134,0},{5857,65146,0}, {5857,65158,0},{5862,65169,0},{5862,65181,0},{5860,65181,0},{5860,65184,0}, {5862,65189,0},{5860,65199,0},{5862,65201,0},{5865,65194,0},{5867,65199,0}, {5865,65201,0},{5865,65219,0},{5863,65221,0},{5865,65233,0},{5863,65234,0}, {5850,65223,0},{5847,65226,0},{5847,65234,0},{5837,65224,0},{5835,65221,0}, {5830,65216,0},{5827,65199,0},{5817,65184,0},{5807,65161,0},{5803,65154,0}, {5800,65151,0},{5795,65138,0},{5787,65134,0},{5787,65128,0},{5785,65124,0}, {5785,65116,0},{5783,65118,0},{5782,65131,0},{5783,65139,0},{5783,65143,0}, {5780,65141,0},{5782,65151,0},{5787,65156,0},{5785,65159,0},{5777,65149,0}, {5768,65138,0},{5768,65134,0},{5773,65133,0},{5772,65126,0},{5768,65119,0}, {5768,65106,0},{5765,65106,0},{5760,65094,0},{5757,65093,0},{5767,65113,0}, {5767,65128,0},{5768,65131,0},{5767,65136,0},{5760,65126,0},{5758,65124,0}, {5757,65126,0},{5757,65119,0},{5755,65118,0},{5755,65109,0},{5753,65114,0}, {5750,65111,0},{5748,65116,0},{5750,65119,0},{5752,65121,0},{5755,65133,0}, {5757,65133,0},{5758,65128,0},{5758,65151,0},{5765,65168,0},{5767,65181,0}, {5770,65188,0},{5772,65203,0},{5767,65234,0},{5770,65251,0},{5768,65253,0}, {5768,65263,0},{5767,65298,0},{5767,65303,0},{5768,65308,0},{5767,65318,0}, {5768,65324,0},{5768,65336,0},{5767,65338,0},{5767,65344,0},{5762,65349,0}, {5760,65354,0},{5757,65354,0},{5750,65359,0},{5750,65358,0},{5747,65358,0}, {5747,65361,0},{5727,65334,0},{5715,65329,0},{5712,65331,0},{5697,65318,0}, {5692,65318,0},{5682,65309,0},{5677,65299,0},{5677,65296,0},{5670,65293,0}, {5668,65294,0},{5665,65286,0},{5662,65289,0},{5657,65283,0},{5650,65264,0}, {5647,65263,0},{5647,65256,0},{5645,65249,0},{5647,65243,0},{5645,65239,0}, {5645,65231,0},{5637,65213,0},{5637,65204,0},{5635,65209,0},{5637,65218,0}, {5645,65246,0},{5643,65256,0},{5638,65254,0},{5637,65253,0},{5637,65254,0}, {5633,65259,0},{5632,65273,0},{5627,65278,0},{5622,65268,0},{5618,65256,0}, {5620,65244,0},{5620,65239,0},{5612,65223,0},{5605,65219,0},{5605,65209,0}, {5602,65196,0},{5605,65178,0},{5605,65168,0},{5602,65168,0},{5600,65171,0}, {5600,65184,0},{5598,65199,0},{5600,65203,0},{5598,65208,0},{5597,65223,0}, {5595,65228,0},{5595,65236,0},{5597,65241,0},{5597,65246,0},{5602,65251,0}, {5603,65251,0},{5607,65256,0},{5607,65271,0},{5602,65279,0},{5600,65279,0}, {5598,65289,0},{5593,65304,0},{5590,65323,0},{5588,65323,0},{5587,65328,0}, {5575,65338,0},{5563,65354,0},{5565,65358,0},{5563,65359,0},{5562,65361,0}, {5560,65359,0},{5560,65368,0},{5558,65373,0},{5553,65373,0},{5548,65378,0}, {5542,65379,0},{5538,65376,0},{5532,65381,0},{5528,65379,0},{5518,65386,0}, {5515,65384,0},{5500,65394,0},{5497,65401,0},{5492,65399,0},{5477,65406,0}, {5472,65411,0},{5470,65419,0},{5468,65416,0},{5465,65419,0},{5460,65418,0}, {5460,65419,0},{5460,65423,0},{5463,65423,0},{5458,65439,0},{5455,65458,0}, {5450,65473,0},{5448,65479,0},{5445,65484,0},{5442,65484,0},{5437,65491,0}, {5425,65499,0},{5422,65509,0},{5417,65511,0},{5412,65528,0},{5408,65519,0}, {5402,65514,0},{5387,65524,0},{5377,0,0},{5363,13,0},{5358,13,0},{5357,12,0}, {5360,13,0},{5362,12,0},{5363,5,0},{5363,0,0},{5362,65529,0},{5363,65524,0}, {5372,65511,0},{5373,65508,0},{5370,65494,0},{5370,65481,0},{5372,65473,0}, {5370,65464,0},{5368,65466,0},{5370,65474,0},{5367,65483,0},{5368,65489,0}, {5370,65506,0},{5368,65511,0},{5363,65516,0},{5357,65526,0},{5357,65531,0}, {5353,0,0},{5348,8,0},{5347,15,0},{5343,18,0},{5340,23,0},{5323,33,0},{5317,35,0}, {5308,33,0},{5302,17,0},{5292,7,0},{5292,3,0},{5288,0,0},{5288,8,0},{5288,12,0}, {5287,17,0},{5280,23,0},{5280,33,0},{5277,38,0},{5278,38,0},{5283,43,0}, {5293,48,0},{5297,55,0},{5295,60,0},{5297,67,0},{5295,85,0},{5297,88,0}, {5295,90,0},{5295,97,0},{5295,102,0},{5297,97,0},{5297,98,0},{5297,103,0}, {5295,110,0},{5293,128,0},{5287,143,0},{5277,165,0},{5273,168,0},{5262,175,0}, {5255,175,0},{5248,177,0},{5245,173,0},{5238,173,0},{5227,163,0},{5218,163,0}, {5208,158,0},{5205,147,0},{5193,133,0},{5200,125,0},{5195,127,0},{5197,117,0}, {5195,112,0},{5195,128,0},{5187,120,0},{5187,125,0},{5188,127,0},{5187,130,0}, {5185,128,0},{5180,120,0},{5177,113,0},{5178,103,0},{5180,100,0},{5180,93,0}, {5177,88,0},{5175,85,0},{5173,72,0},{5170,78,0},{5172,80,0},{5175,92,0}, {5173,95,0},{5168,97,0},{5163,93,0},{5163,90,0},{5163,82,0},{5162,87,0}, {5160,87,0},{5162,90,0},{5162,95,0},{5160,95,0},{5153,80,0},{5153,65,0}, {5150,57,0},{5150,47,0},{5147,43,0},{5145,38,0},{5145,45,0},{5148,48,0}, {5148,55,0},{5147,70,0},{5145,73,0},{5143,72,0},{5143,65,0},{5142,60,0}, {5142,55,0},{5138,62,0},{5138,65,0},{5138,68,0},{5138,70,0},{5142,70,0}, {5140,73,0},{5142,73,0},{5145,75,0},{5142,90,0},{5137,95,0},{5135,90,0}, {5137,80,0},{5133,92,0},{5138,122,0},{5140,145,0},{5135,143,0},{5132,138,0}, {5122,142,0},{5115,138,0},{5113,135,0},{5110,122,0},{5108,118,0},{5107,110,0}, {5103,103,0},{5098,97,0},{5092,98,0},{5093,80,0},{5092,73,0},{5087,67,0}, {5082,37,0},{5075,27,0},{5073,23,0},{5078,0,0},{5083,65516,0},{5077,65466,0}, {5075,65463,0},{5077,65461,0},{5073,65461,0},{5073,65454,0},{5077,65444,0}, {5080,65449,0},{5083,65446,0},{5082,65444,0},{5083,65443,0},{5083,65439,0}, {5082,65441,0},{5077,65441,0},{5078,65434,0},{5080,65438,0},{5083,65438,0}, {5083,65433,0},{5080,65433,0},{5078,65428,0},{5080,65426,0},{5083,65429,0}, {5085,65428,0},{5083,65419,0},{5082,65424,0},{5078,65421,0},{5083,65406,0}, {5088,65399,0},{5092,65389,0},{5090,65389,0},{5088,65396,0},{5082,65406,0}, {5078,65401,0},{5077,65389,0},{5072,65381,0},{5073,65368,0},{5073,65361,0}, {5072,65363,0},{5072,65354,0},{5072,65349,0},{5068,65343,0},{5072,65341,0}, {5072,65331,0},{5068,65329,0},{5070,65333,0},{5067,65333,0},{5067,65343,0}, {5065,65341,0},{5063,65346,0},{5062,65343,0},{5058,65341,0},{5058,65331,0}, {5058,65329,0},{5062,65316,0},{5063,65296,0},{5062,65293,0},{5058,65291,0}, {5055,65294,0},{5050,65291,0},{5057,65291,0},{5065,65274,0},{5070,65258,0}, {5073,65246,0},{5070,65239,0},{5068,65226,0},{5068,65214,0},{5060,65199,0}, {5062,65194,0},{5067,65189,0},{5060,65193,0},{5052,65186,0},{5047,65188,0}, {5043,65181,0},{5040,65183,0},{5038,65188,0},{5037,65186,0},{5035,65184,0}, {5033,65179,0},{5032,65179,0},{5030,65173,0},{5027,65171,0},{5022,65171,0}, {5020,65164,0},{5022,65159,0},{5022,65158,0},{5022,65154,0},{5027,65149,0}, {5030,65141,0},{5030,65133,0},{5032,65124,0},{5035,65123,0},{5037,65116,0}, {5035,65114,0},{5035,65119,0},{5032,65118,0},{5032,65114,0},{5035,65109,0}, {5035,65104,0},{5035,65094,0},{5033,65089,0},{5032,65071,0},{5032,65069,0}, {5033,65068,0},{5033,65061,0},{5023,65056,0},{5022,65049,0},{5020,65046,0}, {5020,65041,0},{5015,65038,0},{5013,65034,0},{5015,65036,0},{5015,65034,0}, {5022,65034,0},{5022,65033,0},{5020,65029,0},{5017,65031,0},{5015,65029,0}, {5015,65031,0},{5013,65028,0},{5010,65028,0},{5010,65024,0},{5008,65029,0}, {5005,65029,0},{5000,65026,0},{5000,65019,0},{4995,65016,0},{5000,65011,0}, {5007,65008,0},{5008,65003,0},{5013,64988,0},{5012,64983,0},{5008,64983,0}, {5005,64979,0},{5003,64969,0},{5007,64964,0},{5008,64966,0},{5013,64964,0}, {5015,64968,0},{5022,64984,0},{5020,64993,0},{5023,64998,0},{5023,65003,0}, {5027,65009,0},{5032,65014,0},{5035,65021,0},{5040,65021,0},{5042,65031,0}, {5047,65034,0},{5050,65033,0},{5053,65034,0},{5053,65038,0},{5057,65041,0}, {5055,65043,0},{5058,65044,0},{5060,65058,0},{5067,65061,0},{5070,65068,0}, {5073,65071,0},{5078,65081,0},{5090,65081,0},{5102,65084,0},{5102,65089,0}, {5098,65101,0},{5098,65104,0},{5103,65113,0},{5107,65116,0},{5113,65111,0}, {5115,65114,0},{5118,65114,0},{5118,65116,0},{5123,65158,0},{5122,65176,0}, {5122,65179,0},{5120,65193,0},{5118,65196,0},{5117,65208,0},{5120,65216,0}, {5120,65229,0},{5122,65236,0},{5123,65236,0},{5132,65234,0},{5132,65238,0}, {5138,65239,0},{5140,65244,0},{5148,65258,0},{5150,65264,0},{5172,65289,0}, {5175,65298,0},{5178,65296,0},{5175,65296,0},{5173,65288,0},{5158,65264,0}, {5153,65248,0},{5153,65239,0},{5155,65239,0},{5155,65238,0},{5153,65234,0}, {5148,65224,0},{5145,65223,0},{5145,65219,0},{5140,65218,0},{5138,65209,0}, {5138,65194,0},{5140,65181,0},{5147,65171,0},{5147,65164,0},{5155,65159,0}, {5162,65153,0},{5160,65138,0},{5158,65136,0},{5155,65138,0},{5155,65121,0}, {5153,65121,0},{5153,65114,0},{5155,65106,0},{5158,65108,0},{5162,65108,0}, {5163,65113,0},{5162,65114,0},{5163,65124,0},{5165,65128,0},{5167,65129,0}, {5165,65123,0},{5168,65118,0},{5167,65106,0},{5172,65098,0},{5173,65098,0}, {5172,65104,0},{5175,65099,0},{5178,65099,0},{5175,65096,0},{5177,65091,0}, {5173,65093,0},{5172,65069,0},{5165,65066,0},{5165,65061,0},{5163,65058,0}, {5163,65049,0},{5160,65043,0},{5162,65031,0},{5165,65031,0},{5167,65026,0}, {5168,65024,0},{5167,65029,0},{5168,65033,0},{5168,65039,0},{5172,65048,0}, {5170,65038,0},{5172,65019,0},{5168,65019,0},{5172,65013,0},{5173,65011,0}, {5173,65016,0},{5177,65019,0},{5177,65026,0},{5185,65024,0},{5187,65018,0}, {5187,65004,0},{5192,65006,0},{5192,65013,0},{5195,65018,0},{5197,65026,0}, {5202,65028,0},{5202,65038,0},{5200,65039,0},{5202,65044,0},{5203,65044,0}, {5202,65048,0},{5202,65053,0},{5205,65053,0},{5207,65059,0},{5210,65063,0}, {5210,65066,0},{5213,65066,0},{5213,65086,0},{5222,65098,0},{5222,65103,0}, {5225,65113,0},{5232,65121,0},{5238,65126,0},{5252,65131,0},{5253,65136,0}, {5255,65141,0},{5255,65129,0},{5260,65123,0},{5270,65129,0},{5273,65138,0}, {5272,65133,0},{5273,65129,0},{5278,65123,0},{5280,65121,0},{5285,65124,0}, {5290,65119,0},{5288,65098,0},{5287,65091,0},{5282,65088,0},{5280,65089,0}, {5277,65084,0},{5282,65076,0},{5280,65073,0},{5280,65064,0},{5278,65061,0}, {5280,65061,0},{5285,65064,0},{5292,65074,0},{5293,65083,0},{5303,65099,0}, {5312,65101,0},{5310,65104,0},{5312,65106,0},{5322,65118,0},{5323,65123,0}, {5323,65129,0},{5328,65148,0},{5328,65153,0},{5333,65149,0},{5332,65158,0}, {5328,65163,0},{5328,65174,0},{5335,65198,0},{5335,65206,0},{5333,65208,0}, {5323,65228,0},{5327,65229,0},{5338,65216,0},{5340,65219,0},{5343,65231,0}, {5340,65234,0},{5332,65243,0},{5328,65253,0},{5330,65261,0},{5333,65263,0}, {5333,65258,0},{5333,65248,0},{5338,65239,0},{5355,65226,0},{5368,65238,0}, {5373,65253,0},{5373,65233,0},{5380,65229,0},{5392,65231,0},{5395,65244,0}, {5393,65248,0},{5397,65253,0},{5397,65249,0},{5400,65251,0},{5400,65246,0}, {5403,65244,0},{5407,65249,0},{5410,65254,0},{5412,65256,0},{5418,65251,0}, {5420,65254,0},{5420,65248,0},{5415,65243,0},{5415,65239,0},{5420,65233,0}, {5412,65228,0},{5408,65221,0},{5407,65223,0},{5412,65213,0},{5415,65213,0}, {5417,65211,0},{5417,65214,0},{5427,65216,0},{5420,65211,0},{5420,65204,0}, {5428,65194,0},{5435,65194,0},{5452,65173,0},{5458,65178,0},{5465,65179,0}, {5472,65184,0},{5477,65193,0},{5480,65193,0},{5487,65198,0},{5490,65204,0}, {5488,65204,0},{5487,65209,0},{5490,65211,0},{5490,65208,0},{5492,65208,0}, {5495,65214,0},{5492,65226,0},{5493,65233,0},{5495,65233,0},{5495,65228,0}, {5497,65229,0},{5497,65234,0},{5498,65234,0},{5497,65223,0},{5497,65211,0}, {5498,65193,0},{5498,65191,0},{5498,65184,0},{5497,65183,0},{5498,65179,0}, {5488,65179,0},{5487,65176,0},{5487,65164,0},{5485,65161,0},{5487,65156,0}, {5485,65154,0},{5487,65154,0},{5487,65156,0},{5485,65151,0},{5482,65154,0}, {5477,65139,0},{5477,65131,0},{5483,65131,0},{5477,65128,0},{5477,65123,0}, {5483,65114,0},{5487,65116,0},{5483,65109,0},{5487,65101,0},{5490,65099,0}, {5492,65096,0},{5488,65096,0},{5487,65093,0},{5483,65094,0},{5480,65103,0}, {5478,65099,0},{5470,65101,0},{5468,65098,0},{5470,65086,0},{5478,65076,0}, {5483,65058,0},{5487,65056,0},{5487,65053,0},{5483,65043,0},{5480,65039,0}, {5470,65046,0},{5468,65049,0},{5465,65048,0},{5463,65051,0},{5463,65049,0}, {5465,65041,0},{5472,65041,0},{5485,65023,0},{5493,65018,0},{5500,65019,0}, {5502,65024,0},{5500,65028,0},{5493,65029,0},{5490,65036,0},{5492,65038,0}, {5500,65031,0},{5503,65029,0},{5513,65034,0},{5522,65049,0},{5532,65053,0}, {5535,65058,0},{5542,65061,0},{5545,65073,0},{5548,65074,0},{5553,65071,0}, {5553,65068,0},{5555,65071,0},{5560,65066,0},{5563,65054,0},{5565,65054,0}, {5570,65044,0},{5575,65051,0},{5582,65046,0},{5588,65046,0},{5593,65048,0}, {5597,65058,0},{5593,65064,0},{5592,65088,0},{5595,65071,0},{5602,65058,0}, {5607,65053,0},{5602,65054,0},{5598,65059,0},{5598,65056,0},{5598,65051,0}, {5605,65048,0},{5612,65054,0},{5608,65049,0},{5612,65048,0},{5615,65046,0}, {5610,65044,0},{5607,65048,0},{5598,65046,0},{5598,65041,0},{5597,65044,0}, {5587,65038,0},{5587,65031,0},{5593,65029,0},{5597,65026,0},{5590,65028,0}, {5593,65019,0},{5597,65018,0},{5597,65016,0},{5592,65016,0},{5588,65013,0}, {5583,65016,0},{5585,65004,0},{5592,65001,0},{5598,65001,0},{5605,65006,0}, {5610,65014,0},{5612,65016,0},{5615,65028,0},{5620,65031,0},{5627,65043,0}, {5623,65034,0},{5623,65029,0},{5617,65024,0},{5612,65011,0},{5600,64998,0}, {5600,64993,0},{5602,64991,0},{5595,64991,0},{5593,64993,0},{5587,64996,0}, {5578,65004,0},{5577,65003,0},{5575,64998,0},{5572,64991,0},{5565,64988,0}, {5560,64988,0},{5558,64991,0},{5557,64988,0},{5553,64988,0},{5543,64981,0}, {5542,64978,0},{5542,64981,0},{5537,64984,0},{5532,64978,0},{5528,64964,0}, {5530,64954,0},{5540,64956,0},{5543,64964,0},{5553,64966,0},{5557,64964,0}, {5562,64968,0},{5567,64968,0},{5583,64991,0},{5577,64976,0},{5580,64969,0}, {5583,64969,0},{5593,64979,0},{5588,64968,0},{5593,64968,0},{5603,64979,0}, {5602,64974,0},{5593,64968,0},{5593,64964,0},{5598,64966,0},{5602,64971,0}, {5605,64973,0},{5608,64978,0},{5608,64983,0},{5612,64979,0},{5618,64984,0}, {5612,64976,0},{5613,64974,0},{5622,64981,0},{5623,64976,0},{5633,64978,0}, {5635,64983,0},{5645,64991,0},{5643,65011,0},{5647,65001,0},{5645,64996,0}, {5650,64993,0},{5647,64991,0},{5648,64989,0},{5652,64993,0},{5650,64998,0}, {5652,65004,0},{5655,65011,0},{5652,64999,0},{5655,64994,0},{5662,65001,0}, {5663,65006,0},{5665,65004,0},{5668,65014,0},{5668,65024,0},{5670,65029,0}, {5668,65023,0},{5670,65011,0},{5682,65024,0},{5677,65016,0},{5677,65013,0}, {5670,65008,0},{5668,65001,0},{5667,64999,0},{5662,64988,0},{5653,64979,0}, {5648,64966,0},{5650,64964,0},{5652,64958,0},{5653,64959,0},{5655,64946,0}, {5658,64939,0},{5663,64934,0},{5665,64941,0},{5665,64948,0},{5670,64961,0}, {5667,64973,0},{5668,64979,0},{5668,64968,0},{5670,64959,0},{5667,64953,0}, {5667,64948,0},{5668,64916,0},{5672,64913,0},{5675,64921,0},{5675,64933,0}, {5677,64939,0},{5675,64944,0},{5675,64949,0},{5678,64948,0},{5677,64949,0}, {5678,64958,0},{5682,64951,0},{5683,64949,0},{5685,64959,0},{5683,64963,0}, {5687,64969,0},{5687,64964,0},{5685,64963,0},{5687,64958,0},{5688,64963,0}, {5688,64943,0},{5690,64946,0},{5690,64951,0},{5692,64948,0},{5700,64953,0}, {5702,64963,0},{5700,64963,0},{5697,64971,0},{5700,64984,0},{5698,64974,0}, {5700,64969,0},{5702,64968,0},{5703,64968,0},{5705,64958,0},{5708,64958,0}, {5712,64964,0},{5712,64971,0},{5708,64983,0},{5710,64993,0},{5710,64981,0}, {5713,64979,0},{5715,64969,0},{5717,64968,0},{5720,64973,0},{5722,64973,0}, {5723,64971,0},{5725,64973,0},{5727,64981,0},{5725,64984,0},{5722,64994,0}, {5723,64998,0},{5723,64989,0},{5727,64983,0},{5728,64966,0},{5728,64963,0}, {5733,64969,0},{5737,64984,0},{5742,64991,0},{5737,64981,0},{5735,64976,0}, {5737,64973,0},{5738,64976,0},{5740,64974,0},{5735,64961,0},{5735,64954,0}, {5738,64954,0},{5740,64956,0},{5742,64954,0},{5743,64956,0},{5745,64949,0}, {5748,64949,0},{5757,64953,0},{5757,64958,0},{5753,64961,0},{5755,64964,0}, {5750,64971,0},{5753,64971,0},{5752,64974,0},{5753,64984,0},{5755,64978,0}, {5755,64969,0},{5757,64966,0},{5757,64968,0},{5758,64963,0},{5762,64961,0}, {5763,64954,0},{5770,64958,0},{5770,64968,0},{5772,64966,0},{5772,64961,0}, {5775,64954,0},{5778,64956,0},{5785,64953,0},{5787,64966,0},{5785,64968,0}, {5778,64969,0},{5777,64974,0},{5778,64974,0},{5778,64978,0},{5783,64978,0}, {5788,64971,0},{5792,64974,0},{5790,64978,0},{5792,64981,0},{5787,64981,0}, {5785,64989,0},{5790,64994,0},{5785,65014,0},{5787,65011,0},{5792,64998,0}, {5793,64996,0},{5793,64999,0},{5790,65006,0},{5792,65013,0},{5787,65023,0}, {5783,65028,0},{5785,65028,0},{5792,65014,0},{5793,65018,0},{5795,65016,0}, {5798,65006,0},{5802,64999,0},{5803,64993,0},{5805,64993,0},{5807,64989,0}, {5810,64993,0},{5807,64999,0},{5808,65001,0},{5807,65009,0},{5808,65011,0}, {5812,65009,0},{5812,65013,0},{5813,65008,0},{5813,65013,0},{5815,65008,0}, {5817,65008,0},{5818,65003,0},{5820,65003,0},{5823,64996,0},{5825,64998,0}, {5822,65008,0},{5825,65016,0},{5823,65019,0},{5827,65026,0},{5823,65041,0}, {5825,65038,0},{5825,65043,0},{5825,65031,0},{5828,65023,0},{5832,65024,0}, {5832,65021,0},{5833,65019,0},{5840,65023,0},{5838,65033,0},{5840,65031,0}, {5842,65026,0},{5842,65029,0},{5843,65028,0},{5845,65031,0},{5843,65038,0}, {5847,65034,0},{5848,65026,0},{5852,65024,0},{5855,65033,0},{5863,65036,0}, {3567,3458,128},{3563,3457,0},{3558,3443,0},{3553,3438,0},{3540,3412,0}, {3537,3408,0},{3532,3405,0},{3532,3397,0},{3527,3392,0},{3517,3390,0},{3503,3403,0}, {3495,3410,0},{3498,3397,0},{3497,3390,0},{3493,3387,0},{3497,3382,0},{3497,3377,0}, {3497,3370,0},{3495,3367,0},{3492,3363,0},{3487,3363,0},{3482,3360,0},{3482,3355,0}, {3478,3352,0},{3475,3342,0},{3477,3340,0},{3475,3340,0},{3472,3333,0},{3472,3328,0}, {3470,3325,0},{3470,3312,0},{3468,3307,0},{3463,3300,0},{3460,3300,0},{3457,3303,0}, {3457,3298,0},{3457,3293,0},{3465,3292,0},{3467,3288,0},{3467,3278,0},{3463,3272,0}, {3467,3262,0},{3470,3255,0},{3470,3250,0},{3475,3240,0},{3483,3238,0},{3485,3235,0}, {3490,3232,0},{3492,3233,0},{3495,3230,0},{3498,3232,0},{3507,3227,0},{3510,3228,0}, {3503,3238,0},{3505,3243,0},{3507,3247,0},{3517,3255,0},{3518,3265,0},{3518,3273,0}, {3515,3282,0},{3515,3287,0},{3518,3292,0},{3527,3293,0},{3532,3293,0},{3540,3292,0}, {3535,3307,0},{3537,3312,0},{3535,3323,0},{3533,3338,0},{3533,3357,0},{3537,3367,0}, {3540,3375,0},{3540,3385,0},{3543,3397,0},{3550,3413,0},{3555,3418,0},{3555,3423,0}, {3557,3430,0},{3562,3437,0},{3565,3450,0},{3567,3450,0},{3568,3455,0},{3568,3458,0}, {3567,3458,0},{2623,5050,128},{2623,5055,0},{2623,5058,0},{2620,5062,0}, {2618,5060,0},{2620,5057,0},{2618,5055,0},{2613,5062,0},{2603,5063,0},{2587,5060,0}, {2578,5057,0},{2590,5053,0},{2593,5047,0},{2597,5047,0},{2605,5048,0},{2615,5045,0}, {2622,5045,0},{2623,5047,0},{2623,5050,0},{760,7980,128},{760,7978,0},{757,7978,0}, {727,7983,0},{720,7983,0},{718,7985,0},{715,7987,0},{712,7985,0},{715,7983,0}, {720,7982,0},{720,7980,0},{702,7987,0},{698,7987,0},{693,7983,0},{680,7985,0}, {657,7997,0},{648,7998,0},{647,7997,0},{645,7998,0},{638,8000,0},{632,8002,0}, {627,8003,0},{613,8010,0},{603,8018,0},{597,8033,0},{595,8040,0},{597,8043,0}, {593,8047,0},{593,8057,0},{592,8058,0},{593,8062,0},{595,8065,0},{595,8072,0}, {603,8082,0},{603,8087,0},{610,8098,0},{612,8112,0},{615,8117,0},{618,8120,0}, {617,8120,0},{620,8132,0},{625,8142,0},{635,8152,0},{643,8167,0},{662,8178,0}, {667,8178,0},{677,8183,0},{680,8183,0},{683,8185,0},{700,8188,0},{712,8187,0}, {728,8188,0},{747,8183,0},{747,8182,0},{740,8180,0},{747,8180,0},{745,8177,0}, {747,8178,0},{750,8175,0},{752,8177,0},{753,8175,0},{757,8177,0},{762,8175,0}, {763,8173,0},{762,8172,0},{765,8170,0},{772,8167,0},{773,8160,0},{777,8162,0}, {773,8167,0},{770,8168,0},{772,8172,0},{775,8170,0},{778,8165,0},{783,8163,0}, {783,8160,0},{790,8157,0},{792,8160,0},{797,8155,0},{798,8157,0},{800,8157,0}, {798,8153,0},{800,8153,0},{800,8152,0},{803,8150,0},{805,8148,0},{812,8147,0}, {808,8145,0},{808,8142,0},{813,8138,0},{818,8140,0},{810,8143,0},{817,8145,0}, {820,8142,0},{833,8140,0},{835,8137,0},{837,8135,0},{840,8135,0},{837,8138,0}, {848,8137,0},{852,8133,0},{850,8128,0},{847,8128,0},{845,8127,0},{847,8122,0}, {850,8120,0},{852,8117,0},{848,8115,0},{850,8113,0},{853,8117,0},{850,8122,0}, {857,8120,0},{857,8122,0},{853,8123,0},{855,8125,0},{862,8123,0},{860,8120,0}, {862,8123,0},{865,8123,0},{870,8118,0},{872,8118,0},{870,8117,0},{875,8117,0}, {880,8112,0},{887,8108,0},{888,8105,0},{897,8098,0},{893,8097,0},{893,8093,0}, {893,8092,0},{895,8092,0},{897,8093,0},{897,8092,0},{898,8093,0},{903,8088,0}, {903,8092,0},{900,8095,0},{900,8097,0},{902,8095,0},{912,8090,0},{910,8088,0}, {912,8088,0},{913,8087,0},{913,8083,0},{915,8085,0},{913,8088,0},{927,8082,0}, {927,8080,0},{923,8082,0},{927,8078,0},{930,8073,0},{930,8077,0},{928,8078,0}, {930,8080,0},{943,8067,0},{965,8037,0},{977,8027,0},{983,8025,0},{982,8015,0}, {980,8013,0},{977,8018,0},{977,8023,0},{967,8032,0},{957,8045,0},{965,8032,0}, {975,8023,0},{977,8013,0},{982,8012,0},{982,7998,0},{977,7992,0},{968,7995,0}, {967,8000,0},{965,8002,0},{960,8012,0},{960,8013,0},{963,8010,0},{958,8018,0}, {960,8020,0},{963,8017,0},{965,8018,0},{960,8027,0},{952,8038,0},{953,8045,0}, {952,8048,0},{945,8062,0},{945,8057,0},{948,8048,0},{950,8040,0},{945,8032,0}, {947,8027,0},{950,8028,0},{953,8025,0},{955,8017,0},{960,8007,0},{960,8005,0}, {958,8005,0},{952,8015,0},{947,8020,0},{945,8017,0},{942,8013,0},{940,8005,0}, {933,8007,0},{930,8012,0},{927,8012,0},{925,8012,0},{902,8005,0},{895,7995,0}, {893,7992,0},{887,7993,0},{880,7992,0},{873,7995,0},{863,7995,0},{860,7992,0}, {857,7992,0},{853,7987,0},{847,7987,0},{843,7985,0},{838,7985,0},{827,7983,0}, {823,7980,0},{820,7982,0},{817,7982,0},{813,7983,0},{807,7978,0},{800,7983,0}, {798,7980,0},{798,7975,0},{802,7973,0},{805,7975,0},{808,7973,0},{813,7973,0}, {817,7973,0},{820,7973,0},{822,7977,0},{825,7978,0},{827,7975,0},{828,7975,0}, {835,7978,0},{822,7970,0},{813,7970,0},{810,7970,0},{775,7978,0},{760,7980,0}, {138,10398,128},{137,10400,0},{133,10398,0},{132,10395,0},{128,10387,0}, {127,10385,0},{127,10380,0},{130,10375,0},{130,10365,0},{133,10365,0},{137,10367,0}, {140,10367,0},{143,10370,0},{143,10377,0},{145,10382,0},{143,10387,0},{138,10398,0}, {2252,11403,128},{2247,11402,0},{2247,11398,0},{2240,11390,0},{2237,11392,0}, {2237,11395,0},{2238,11395,0},{2237,11398,0},{2235,11403,0},{2237,11405,0}, {2237,11410,0},{2230,11417,0},{2232,11420,0},{2230,11423,0},{2232,11425,0}, {2227,11428,0},{2228,11430,0},{2235,11425,0},{2238,11427,0},{2238,11428,0}, {2237,11437,0},{2237,11438,0},{2240,11437,0},{2243,11438,0},{2245,11437,0}, {2243,11433,0},{2247,11433,0},{2248,11432,0},{2245,11428,0},{2242,11428,0}, {2242,11423,0},{2238,11420,0},{2242,11420,0},{2243,11417,0},{2245,11417,0}, {2245,11420,0},{2248,11427,0},{2247,11427,0},{2250,11432,0},{2250,11427,0}, {2253,11425,0},{2253,11422,0},{2255,11422,0},{2512,12128,128},{2517,12140,0}, {2513,12143,0},{2518,12140,0},{2525,12145,0},{2528,12152,0},{2528,12157,0}, {2527,12160,0},{2518,12165,0},{2520,12167,0},{2520,12168,0},{2517,12167,0}, {2513,12173,0},{2512,12190,0},{2502,12192,0},{2500,12200,0},{2497,12192,0}, {2485,12182,0},{2475,12180,0},{2472,12182,0},{2463,12182,0},{2462,12183,0}, {2460,12188,0},{2458,12183,0},{2452,12185,0},{2450,12182,0},{2448,12183,0}, {2443,12178,0},{2433,12177,0},{2430,12177,0},{2423,12170,0},{2422,12170,0}, {2420,12167,0},{2412,12165,0},{2408,12160,0},{2403,12162,0},{2402,12163,0}, {2397,12160,0},{2390,12160,0},{2363,12152,0},{2348,12150,0},{2333,12145,0}, {2323,12140,0},{2318,12140,0},{2318,12142,0},{2312,12138,0},{2308,12133,0}, {2295,12130,0},{2290,12127,0},{2283,12118,0},{2280,12118,0},{2277,12117,0}, {2273,12113,0},{2272,12108,0},{2263,12102,0},{2258,12100,0},{2257,12097,0}, {2245,12093,0},{2232,12087,0},{2203,12088,0},{2198,12083,0},{2190,12083,0}, {2195,12080,0},{2197,12075,0},{2193,12072,0},{2193,12070,0},{2198,12070,0}, {2202,12067,0},{2210,12070,0},{2217,12068,0},{2230,12062,0},{2233,12058,0}, {2237,12057,0},{2242,12050,0},{2248,12042,0},{2248,12038,0},{2250,12035,0}, {2258,12027,0},{2253,12030,0},{2252,12033,0},{2260,12030,0},{2265,12023,0}, {2268,12025,0},{2278,12020,0},{2283,12020,0},{2285,12018,0},{2295,12017,0}, {2298,12013,0},{2298,12017,0},{2302,12017,0},{2300,12012,0},{2302,12010,0}, {2303,12012,0},{2305,12008,0},{2303,12007,0},{2305,12005,0},{2307,12005,0}, {2310,12010,0},{2312,12005,0},{2312,12010,0},{2315,12005,0},{2318,12008,0}, {2323,12008,0},{2323,12010,0},{2332,12013,0},{2333,12015,0},{2333,12012,0}, {2335,12013,0},{2338,12015,0},{2342,12013,0},{2345,12013,0},{2347,12013,0}, {2348,12013,0},{2362,12012,0},{2368,12015,0},{2370,12017,0},{2378,12020,0}, {2390,12028,0},{2403,12035,0},{2405,12038,0},{2413,12042,0},{2420,12047,0}, {2437,12055,0},{2448,12065,0},{2460,12070,0},{2462,12075,0},{2467,12077,0}, {2467,12083,0},{2468,12082,0},{2473,12087,0},{2488,12092,0},{2490,12095,0}, {2492,12095,0},{2500,12100,0},{2505,12107,0},{2508,12117,0},{2512,12120,0}, {2512,12128,0},{3245,13165,128},{3247,13167,0},{3247,13170,0},{3248,13173,0}, {3250,13172,0},{3252,13168,0},{3258,13170,0},{3258,13173,0},{3262,13177,0}, {3265,13177,0},{3268,13182,0},{3268,13185,0},{3278,13188,0},{3277,13193,0}, {3278,13197,0},{3282,13200,0},{3283,13200,0},{3282,13195,0},{3287,13200,0}, {3290,13198,0},{3293,13207,0},{3293,13205,0},{3293,13200,0},{3293,13202,0}, {3295,13193,0},{3297,13190,0},{3303,13193,0},{3305,13202,0},{3308,13200,0}, {3305,13198,0},{3307,13195,0},{3308,13195,0},{3305,13193,0},{3307,13190,0}, {3307,13187,0},{3308,13188,0},{3312,13192,0},{3312,13182,0},{3315,13183,0}, {3318,13187,0},{3325,13190,0},{3323,13182,0},{3323,13177,0},{3325,13170,0}, {3325,13158,0},{3327,13152,0},{3332,13150,0},{3335,13150,0},{3335,13158,0}, {3337,13162,0},{3337,13163,0},{3342,13163,0},{3342,13170,0},{3347,13173,0}, {3355,13173,0},{3365,13167,0},{3368,13158,0},{3367,13157,0},{3367,13150,0}, {3365,13150,0},{3358,13145,0},{3357,13142,0},{3357,13135,0},{3357,13127,0}, {3358,13125,0},{3360,13120,0},{3362,13110,0},{3365,13107,0},{3370,13103,0}, {3377,13100,0},{3382,13095,0},{3383,13098,0},{3388,13098,0},{3388,13100,0}, {3395,13102,0},{3395,13097,0},{3388,13090,0},{3388,13087,0},{3392,13085,0}, {3392,13080,0},{3392,13075,0},{3393,13070,0},{3392,13067,0},{3388,13063,0}, {3388,13053,0},{3385,13052,0},{3385,13048,0},{3380,13045,0},{3373,13047,0}, {3365,13033,0},{3363,13033,0},{3367,13042,0},{3365,13042,0},{3360,13040,0}, {3357,13030,0},{3358,13027,0},{3360,13027,0},{3362,13023,0},{3365,13022,0}, {3363,13020,0},{3362,13017,0},{3358,13015,0},{3358,13010,0},{3355,13010,0}, {3355,13012,0},{3353,13012,0},{3355,13017,0},{3353,13017,0},{3350,13012,0}, {3348,13005,0},{3345,13002,0},{3345,12998,0},{3347,12997,0},{3347,12995,0}, {3350,12997,0},{3353,12993,0},{3353,12987,0},{3348,12985,0},{3343,12987,0}, {3343,12985,0},{3347,12982,0},{3345,12980,0},{3340,12983,0},{3340,12987,0}, {3338,12988,0},{3333,12985,0},{3328,12985,0},{3328,12982,0},{3337,12980,0}, {3333,12972,0},{3335,12968,0},{3338,12968,0},{3335,12965,0},{3337,12960,0}, {3335,12958,0},{3330,12957,0},{3328,12960,0},{3325,12957,0},{3320,12957,0}, {3318,12965,0},{3313,12968,0},{3312,12967,0},{3310,12967,0},{3312,12970,0}, {3315,12972,0},{3312,12973,0},{3313,12977,0},{3312,12977,0},{3308,12973,0}, {3305,12977,0},{3307,12980,0},{3305,12982,0},{3303,12982,0},{3305,12988,0}, {3302,12993,0},{3298,12995,0},{3292,12993,0},{3283,13000,0},{3283,12998,0}, {3287,12990,0},{3283,12988,0},{3283,12983,0},{3285,12980,0},{3287,12982,0}, {3288,12980,0},{3292,12980,0},{3293,12980,0},{3290,12982,0},{3292,12983,0}, {3298,12982,0},{3300,12977,0},{3298,12975,0},{3302,12975,0},{3303,12977,0}, {3305,12973,0},{3307,12973,0},{3308,12968,0},{3298,12965,0},{3297,12963,0}, {3283,12968,0},{3280,12973,0},{3282,12975,0},{3282,12978,0},{3278,12977,0}, {3277,12980,0},{3273,12982,0},{3272,12983,0},{3272,12987,0},{3268,12985,0}, {3257,12975,0},{3258,12982,0},{3262,12985,0},{3265,12990,0},{3275,12995,0}, {3275,12998,0},{3278,13008,0},{3278,13018,0},{3275,13018,0},{3273,13020,0}, {3272,13020,0},{3268,13017,0},{3267,13013,0},{3262,13013,0},{3260,13017,0}, {3258,13017,0},{3262,13023,0},{3263,13027,0},{3267,13035,0},{3277,13038,0}, {3285,13033,0},{3287,13030,0},{3287,13025,0},{3285,13022,0},{3283,13017,0}, {3283,13012,0},{3285,13010,0},{3290,13018,0},{3295,13022,0},{3312,13012,0}, {3310,13013,0},{3312,13015,0},{3318,13022,0},{3317,13028,0},{3315,13030,0}, {3313,13037,0},{3312,13037,0},{3308,13042,0},{3305,13043,0},{3300,13042,0}, {3292,13043,0},{3287,13052,0},{3285,13052,0},{3283,13055,0},{3278,13060,0}, {3273,13060,0},{3270,13063,0},{3270,13057,0},{3262,13045,0},{3263,13060,0}, {3265,13065,0},{3263,13067,0},{3260,13065,0},{3255,13057,0},{3253,13057,0}, {3250,13060,0},{3250,13055,0},{3245,13057,0},{3238,13050,0},{3233,13052,0}, {3233,13048,0},{3235,13047,0},{3233,13047,0},{3230,13047,0},{3220,13037,0}, {3212,13032,0},{3210,13028,0},{3213,13025,0},{3212,13020,0},{3210,13018,0}, {3207,13020,0},{3200,13017,0},{3198,13020,0},{3192,13022,0},{3185,13020,0}, {3182,13023,0},{3183,13018,0},{3182,13018,0},{3177,13018,0},{3172,13025,0}, {3162,13033,0},{3145,13030,0},{3142,13027,0},{3138,13022,0},{3142,13017,0}, {3140,13012,0},{3133,13020,0},{3132,13020,0},{3130,13022,0},{3125,13023,0}, {3123,13048,0},{3120,13052,0},{3117,13052,0},{3117,13057,0},{3115,13058,0}, {3118,13063,0},{3127,13067,0},{3132,13057,0},{3140,13053,0},{3147,13052,0}, {3160,13057,0},{3162,13060,0},{3170,13062,0},{3172,13068,0},{3170,13080,0}, {3165,13080,0},{3160,13080,0},{3155,13075,0},{3157,13072,0},{3160,13072,0}, {3162,13068,0},{3160,13062,0},{3158,13060,0},{3155,13063,0},{3153,13070,0}, {3148,13070,0},{3140,13077,0},{3132,13080,0},{3125,13080,0},{3112,13073,0}, {3107,13068,0},{3100,13067,0},{3100,13070,0},{3105,13075,0},{3112,13095,0}, {3115,13098,0},{3122,13102,0},{3127,13113,0},{3128,13110,0},{3132,13112,0}, {3133,13110,0},{3135,13100,0},{3145,13107,0},{3147,13113,0},{3147,13120,0}, {3145,13122,0},{3142,13123,0},{3138,13125,0},{3138,13132,0},{3137,13133,0}, {3137,13135,0},{3147,13137,0},{3148,13140,0},{3152,13138,0},{3155,13138,0}, {3162,13145,0},{3172,13147,0},{3178,13150,0},{3182,13147,0},{3183,13145,0}, {3187,13145,0},{3190,13145,0},{3197,13147,0},{3202,13152,0},{3213,13155,0}, {3215,13153,0},{3215,13155,0},{3222,13155,0},{3232,13160,0},{3233,13162,0}, {3238,13163,0},{3242,13167,0},{3245,13165,0},{3408,13460,128},{3403,13458,0}, {3398,13460,0},{3398,13465,0},{3392,13470,0},{3390,13470,0},{3387,13465,0}, {3383,13465,0},{3383,13472,0},{3382,13468,0},{3382,13475,0},{3377,13463,0}, {3368,13450,0},{3362,13438,0},{3357,13437,0},{3355,13432,0},{3345,13425,0}, {3333,13420,0},{3323,13418,0},{3328,13412,0},{3335,13405,0},{3338,13403,0}, {3343,13397,0},{3347,13393,0},{3352,13373,0},{3350,13360,0},{3347,13355,0}, {3343,13345,0},{3340,13345,0},{3338,13335,0},{3335,13333,0},{3337,13332,0}, {3337,13328,0},{3332,13325,0},{3328,13325,0},{3325,13327,0},{3323,13325,0}, {3317,13322,0},{3315,13323,0},{3313,13317,0},{3307,13312,0},{3302,13310,0}, {3302,13303,0},{3300,13302,0},{3287,13300,0},{3283,13297,0},{3280,13297,0}, {3275,13303,0},{3270,13302,0},{3272,13298,0},{3277,13295,0},{3277,13290,0}, {3275,13288,0},{3277,13287,0},{3273,13280,0},{3275,13275,0},{3278,13272,0}, {3275,13265,0},{3277,13263,0},{3283,13267,0},{3288,13272,0},{3290,13272,0}, {3290,13260,0},{3293,13257,0},{3292,13257,0},{3293,13253,0},{3292,13252,0}, {3288,13253,0},{3290,13248,0},{3300,13250,0},{3300,13248,0},{3303,13248,0}, {3303,13242,0},{3305,13248,0},{3307,13247,0},{3308,13247,0},{3312,13245,0}, {3312,13248,0},{3313,13243,0},{3315,13243,0},{3317,13245,0},{3318,13243,0}, {3318,13240,0},{3317,13242,0},{3318,13240,0},{3318,13242,0},{3317,13247,0}, {3318,13250,0},{3325,13253,0},{3325,13250,0},{3325,13248,0},{3327,13248,0}, {3330,13252,0},{3328,13242,0},{3330,13240,0},{3332,13238,0},{3333,13238,0}, {3333,13242,0},{3337,13242,0},{3335,13240,0},{3337,13238,0},{3342,13240,0}, {3343,13240,0},{3345,13242,0},{3347,13237,0},{3345,13235,0},{3345,13230,0}, {3338,13218,0},{3335,13215,0},{3335,13210,0},{3337,13210,0},{3333,13205,0}, {3333,13202,0},{3340,13210,0},{3340,13215,0},{3342,13215,0},{3345,13225,0}, {3347,13227,0},{3352,13240,0},{3360,13248,0},{3367,13263,0},{3375,13270,0}, {3388,13272,0},{3390,13277,0},{3398,13278,0},{3405,13292,0},{3410,13292,0}, {3410,13290,0},{3413,13293,0},{3410,13298,0},{3402,13305,0},{3395,13307,0}, {3392,13315,0},{3392,13322,0},{3395,13325,0},{3397,13327,0},{3398,13332,0}, {3397,13333,0},{3398,13335,0},{3397,13337,0},{3397,13353,0},{3405,13362,0}, {3410,13365,0},{3420,13363,0},{3425,13357,0},{3423,13365,0},{3422,13367,0}, {3425,13375,0},{3428,13375,0},{3433,13388,0},{3437,13390,0},{3433,13408,0}, {3437,13410,0},{3435,13412,0},{3437,13413,0},{3438,13413,0},{3437,13417,0}, {3432,13417,0},{3432,13418,0},{3435,13422,0},{3432,13427,0},{3428,13427,0}, {3425,13435,0},{3425,13440,0},{3422,13443,0},{3422,13457,0},{3423,13462,0}, {3420,13460,0},{3420,13462,0},{3423,13465,0},{3418,13463,0},{3418,13460,0}, {3417,13463,0},{3413,13462,0},{3407,13460,0},{4143,14113,128},{4137,14122,0}, {4135,14127,0},{4135,14135,0},{4137,14142,0},{4142,14145,0},{4140,14147,0}, {4137,14147,0},{4132,14145,0},{4117,14140,0},{4110,14140,0},{4073,14142,0}, {4060,14147,0},{4053,14148,0},{4052,14152,0},{4053,14158,0},{4043,14168,0}, {4027,14182,0},{4022,14183,0},{4018,14180,0},{4013,14188,0},{4010,14183,0}, {4007,14183,0},{4000,14190,0},{3998,14195,0},{3995,14195,0},{3992,14193,0}, {3988,14197,0},{3978,14198,0},{3978,14200,0},{3958,14195,0},{3963,14202,0}, {3963,14203,0},{3958,14203,0},{3957,14203,0},{3955,14207,0},{3948,14200,0}, {3947,14197,0},{3945,14195,0},{3943,14197,0},{3948,14203,0},{3947,14205,0}, {3945,14205,0},{3942,14203,0},{3942,14198,0},{3938,14193,0},{3937,14197,0}, {3935,14197,0},{3935,14192,0},{3933,14190,0},{3935,14198,0},{3930,14197,0}, {3930,14190,0},{3928,14193,0},{3927,14190,0},{3925,14190,0},{3925,14195,0}, {3922,14195,0},{3920,14187,0},{3918,14193,0},{3915,14190,0},{3915,14185,0}, {3910,14192,0},{3908,14188,0},{3910,14182,0},{3907,14187,0},{3905,14187,0}, {3905,14182,0},{3902,14185,0},{3903,14180,0},{3902,14175,0},{3903,14172,0}, {3898,14175,0},{3897,14172,0},{3897,14173,0},{3895,14172,0},{3897,14167,0}, {3900,14168,0},{3900,14163,0},{3885,14168,0},{3888,14163,0},{3888,14160,0}, {3885,14158,0},{3882,14160,0},{3877,14152,0},{3873,14157,0},{3870,14157,0}, {3870,14153,0},{3868,14152,0},{3865,14147,0},{3863,14153,0},{3858,14150,0}, {3857,14147,0},{3855,14150,0},{3853,14150,0},{3855,14153,0},{3853,14153,0}, {3852,14155,0},{3848,14153,0},{3850,14150,0},{3847,14150,0},{3843,14150,0}, {3843,14147,0},{3840,14148,0},{3838,14155,0},{3837,14150,0},{3835,14153,0}, {3832,14152,0},{3830,14153,0},{3827,14153,0},{3830,14145,0},{3833,14147,0}, {3833,14143,0},{3837,14143,0},{3838,14142,0},{3840,14130,0},{3837,14118,0}, {3832,14117,0},{3832,14113,0},{3837,14113,0},{3837,14108,0},{3832,14105,0}, {3830,14108,0},{3827,14103,0},{3815,14095,0},{3803,14092,0},{3793,14092,0}, {3778,14097,0},{3772,14102,0},{3767,14100,0},{3763,14103,0},{3748,14103,0}, {3737,14103,0},{3718,14100,0},{3715,14102,0},{3708,14098,0},{3697,14097,0}, {3693,14093,0},{3693,14090,0},{3690,14082,0},{3687,14080,0},{3683,14080,0}, {3678,14075,0},{3665,14072,0},{3647,14062,0},{3635,14062,0},{3627,14057,0}, {3608,14060,0},{3580,14078,0},{3575,14083,0},{3573,14087,0},{3570,14088,0}, {3568,14087,0},{3570,14085,0},{3567,14063,0},{3553,14047,0},{3538,14040,0}, {3522,14042,0},{3517,14038,0},{3517,14035,0},{3513,14033,0},{3510,14022,0}, {3510,14013,0},{3507,14012,0},{3500,14000,0},{3492,13995,0},{3488,13987,0}, {3490,13983,0},{3495,13977,0},{3500,13987,0},{3502,13985,0},{3503,13983,0}, {3505,13985,0},{3513,13983,0},{3517,13983,0},{3520,13987,0},{3522,13988,0}, {3528,13985,0},{3530,13978,0},{3533,13990,0},{3537,13992,0},{3542,13992,0}, {3543,13997,0},{3555,14012,0},{3557,14010,0},{3558,14008,0},{3563,14007,0}, {3567,13997,0},{3565,13993,0},{3562,13988,0},{3565,13985,0},{3562,13983,0}, {3562,13980,0},{3563,13978,0},{3557,13977,0},{3552,13978,0},{3550,13978,0}, {3547,13965,0},{3540,13970,0},{3538,13963,0},{3535,13965,0},{3532,13963,0}, {3528,13965,0},{3525,13975,0},{3520,13972,0},{3518,13967,0},{3513,13968,0}, {3512,13963,0},{3513,13962,0},{3518,13962,0},{3522,13962,0},{3528,13955,0}, {3530,13943,0},{3528,13927,0},{3523,13917,0},{3518,13913,0},{3513,13917,0}, {3513,13912,0},{3505,13908,0},{3503,13910,0},{3498,13908,0},{3493,13915,0}, {3487,13913,0},{3483,13908,0},{3477,13907,0},{3473,13900,0},{3468,13898,0}, {3463,13898,0},{3463,13897,0},{3465,13895,0},{3465,13893,0},{3460,13885,0}, {3460,13880,0},{3467,13877,0},{3468,13875,0},{3472,13875,0},{3475,13878,0}, {3477,13877,0},{3483,13877,0},{3487,13875,0},{3490,13880,0},{3495,13877,0}, {3500,13878,0},{3502,13890,0},{3503,13892,0},{3508,13883,0},{3512,13875,0}, {3510,13857,0},{3500,13850,0},{3498,13850,0},{3500,13852,0},{3500,13853,0}, {3498,13853,0},{3488,13835,0},{3485,13833,0},{3480,13833,0},{3475,13830,0}, {3472,13823,0},{3467,13820,0},{3462,13820,0},{3458,13823,0},{3465,13798,0}, {3463,13782,0},{3465,13768,0},{3467,13760,0},{3463,13733,0},{3457,13713,0}, {3458,13702,0},{3463,13707,0},{3463,13708,0},{3462,13712,0},{3465,13715,0}, {3465,13718,0},{3470,13730,0},{3472,13735,0},{3473,13733,0},{3477,13732,0}, {3480,13728,0},{3478,13725,0},{3480,13722,0},{3477,13717,0},{3477,13702,0}, {3483,13698,0},{3492,13698,0},{3485,13693,0},{3478,13692,0},{3468,13697,0}, {3468,13693,0},{3473,13687,0},{3475,13685,0},{3482,13687,0},{3487,13683,0}, {3492,13682,0},{3495,13683,0},{3500,13688,0},{3505,13690,0},{3508,13690,0}, {3507,13687,0},{3508,13685,0},{3502,13675,0},{3502,13672,0},{3498,13665,0}, {3495,13663,0},{3492,13665,0},{3485,13663,0},{3475,13653,0},{3470,13652,0}, {3465,13655,0},{3460,13653,0},{3458,13663,0},{3455,13667,0},{3450,13677,0}, {3448,13685,0},{3443,13688,0},{3443,13692,0},{3437,13692,0},{3437,13688,0}, {3435,13688,0},{3435,13690,0},{3433,13688,0},{3427,13690,0},{3423,13683,0}, {3427,13677,0},{3427,13685,0},{3427,13683,0},{3428,13685,0},{3430,13685,0}, {3432,13682,0},{3428,13680,0},{3430,13677,0},{3428,13677,0},{3428,13670,0}, {3433,13673,0},{3433,13670,0},{3432,13665,0},{3430,13667,0},{3425,13660,0}, {3427,13657,0},{3425,13655,0},{3427,13652,0},{3422,13650,0},{3420,13635,0}, {3417,13630,0},{3413,13628,0},{3412,13632,0},{3408,13632,0},{3408,13628,0}, {3408,13627,0},{3410,13625,0},{3408,13623,0},{3407,13622,0},{3402,13628,0}, {3397,13627,0},{3397,13625,0},{3398,13623,0},{3397,13620,0},{3393,13623,0}, {3393,13620,0},{3392,13620,0},{3392,13617,0},{3388,13615,0},{3387,13610,0}, {3365,13598,0},{3363,13595,0},{3360,13593,0},{3358,13593,0},{3358,13597,0}, {3352,13588,0},{3350,13582,0},{3347,13578,0},{3343,13578,0},{3343,13577,0}, {3345,13577,0},{3353,13545,0},{3358,13540,0},{3363,13538,0},{3365,13533,0}, {3368,13535,0},{3368,13538,0},{3370,13540,0},{3375,13532,0},{3377,13525,0}, {3382,13518,0},{3387,13515,0},{3388,13507,0},{3390,13508,0},{3392,13508,0}, {3395,13512,0},{3395,13508,0},{3397,13508,0},{3400,13515,0},{3403,13517,0}, {3405,13513,0},{3407,13510,0},{3412,13513,0},{3413,13520,0},{3418,13513,0}, {3420,13513,0},{3423,13512,0},{3425,13507,0},{3428,13507,0},{3432,13512,0}, {3435,13522,0},{3438,13530,0},{3447,13538,0},{3450,13540,0},{3452,13543,0}, {3455,13545,0},{3460,13545,0},{3463,13545,0},{3465,13542,0},{3470,13542,0}, {3470,13537,0},{3472,13533,0},{3468,13522,0},{3463,13517,0},{3462,13507,0}, {3463,13497,0},{3475,13477,0},{3478,13467,0},{3475,13450,0},{3478,13448,0}, {3472,13442,0},{3473,13438,0},{3472,13435,0},{3470,13435,0},{3470,13433,0}, {3473,13423,0},{3473,13422,0},{3472,13422,0},{3468,13428,0},{3463,13417,0}, {3462,13418,0},{3458,13413,0},{3458,13410,0},{3458,13407,0},{3460,13403,0}, {3460,13400,0},{3458,13393,0},{3457,13393,0},{3455,13395,0},{3458,13398,0}, {3458,13405,0},{3455,13403,0},{3453,13400,0},{3452,13400,0},{3453,13398,0}, {3452,13397,0},{3445,13393,0},{3447,13383,0},{3445,13382,0},{3443,13382,0}, {3443,13380,0},{3445,13378,0},{3448,13377,0},{3452,13370,0},{3442,13347,0}, {3443,13347,0},{3447,13352,0},{3448,13352,0},{3447,13342,0},{3445,13342,0}, {3437,13337,0},{3432,13327,0},{3433,13327,0},{3437,13332,0},{3438,13328,0}, {3438,13325,0},{3442,13327,0},{3442,13325,0},{3435,13322,0},{3435,13318,0}, {3432,13320,0},{3428,13320,0},{3428,13317,0},{3428,13313,0},{3425,13308,0}, {3432,13307,0},{3432,13308,0},{3435,13310,0},{3433,13312,0},{3432,13312,0}, {3432,13313,0},{3435,13315,0},{3435,13317,0},{3438,13315,0},{3438,13308,0}, {3433,13307,0},{3432,13303,0},{3432,13290,0},{3428,13285,0},{3430,13282,0}, {3428,13280,0},{3427,13277,0},{3423,13278,0},{3423,13277,0},{3420,13263,0}, {3422,13260,0},{3418,13257,0},{3420,13255,0},{3422,13257,0},{3425,13252,0}, {3428,13250,0},{3432,13250,0},{3433,13253,0},{3435,13252,0},{3435,13243,0}, {3437,13240,0},{3435,13237,0},{3433,13232,0},{3423,13222,0},{3415,13223,0}, {3413,13223,0},{3412,13222,0},{3410,13220,0},{3398,13222,0},{3395,13218,0}, {3395,13213,0},{3393,13213,0},{3383,13215,0},{3377,13205,0},{3377,13203,0}, {3380,13207,0},{3383,13207,0},{3383,13210,0},{3387,13210,0},{3390,13207,0}, {3392,13197,0},{3400,13185,0},{3398,13182,0},{3397,13182,0},{3397,13178,0}, {3398,13178,0},{3402,13183,0},{3405,13175,0},{3402,13162,0},{3403,13160,0}, {3402,13158,0},{3400,13160,0},{3398,13158,0},{3400,13155,0},{3400,13152,0}, {3403,13148,0},{3400,13147,0},{3400,13145,0},{3398,13145,0},{3398,13143,0}, {3400,13142,0},{3398,13140,0},{3400,13140,0},{3403,13138,0},{3395,13133,0}, {3392,13127,0},{3395,13122,0},{3393,13120,0},{3393,13117,0},{3398,13117,0}, {3402,13110,0},{3403,13103,0},{3398,13098,0},{3395,13093,0},{3392,13092,0}, {3393,13088,0},{3395,13090,0},{3403,13090,0},{3410,13087,0},{3418,13093,0}, {3428,13087,0},{3435,13090,0},{3437,13102,0},{3438,13100,0},{3438,13093,0}, {3442,13095,0},{3443,13098,0},{3440,13102,0},{3442,13107,0},{3442,13112,0}, {3437,13115,0},{3438,13118,0},{3442,13117,0},{3442,13118,0},{3443,13123,0}, {3442,13125,0},{3440,13127,0},{3440,13122,0},{3437,13120,0},{3438,13123,0}, {3438,13128,0},{3440,13133,0},{3442,13140,0},{3445,13138,0},{3448,13145,0}, {3452,13147,0},{3455,13153,0},{3460,13155,0},{3460,13160,0},{3463,13158,0}, {3465,13160,0},{3465,13167,0},{3470,13185,0},{3473,13187,0},{3482,13198,0}, {3487,13202,0},{3487,13205,0},{3492,13208,0},{3500,13222,0},{3503,13230,0}, {3512,13238,0},{3517,13242,0},{3528,13263,0},{3537,13268,0},{3540,13263,0}, {3542,13263,0},{3543,13268,0},{3543,13275,0},{3545,13273,0},{3550,13285,0}, {3550,13297,0},{3552,13297,0},{3555,13305,0},{3558,13308,0},{3555,13315,0}, {3557,13332,0},{3553,13325,0},{3550,13325,0},{3545,13332,0},{3545,13338,0}, {3545,13342,0},{3550,13348,0},{3552,13357,0},{3548,13378,0},{3552,13400,0}, {3552,13412,0},{3553,13427,0},{3558,13430,0},{3565,13452,0},{3563,13462,0}, {3565,13477,0},{3563,13483,0},{3565,13487,0},{3563,13492,0},{3567,13498,0}, {3568,13503,0},{3573,13508,0},{3577,13522,0},{3572,13528,0},{3568,13530,0}, {3565,13530,0},{3565,13527,0},{3557,13520,0},{3553,13518,0},{3553,13522,0}, {3555,13522,0},{3558,13523,0},{3555,13527,0},{3553,13525,0},{3550,13530,0}, {3552,13532,0},{3543,13532,0},{3548,13535,0},{3547,13538,0},{3548,13540,0}, {3550,13540,0},{3550,13535,0},{3553,13535,0},{3555,13540,0},{3558,13545,0}, {3552,13548,0},{3553,13552,0},{3548,13552,0},{3550,13558,0},{3553,13567,0}, {3552,13567,0},{3548,13562,0},{3548,13573,0},{3552,13577,0},{3552,13572,0}, {3555,13570,0},{3553,13577,0},{3552,13580,0},{3553,13583,0},{3557,13582,0}, {3557,13585,0},{3558,13585,0},{3560,13583,0},{3563,13583,0},{3560,13587,0}, {3562,13597,0},{3563,13598,0},{3565,13597,0},{3568,13598,0},{3570,13597,0}, {3573,13602,0},{3573,13603,0},{3570,13605,0},{3567,13603,0},{3565,13605,0}, {3565,13608,0},{3578,13610,0},{3587,13600,0},{3592,13600,0},{3595,13597,0}, {3598,13597,0},{3600,13600,0},{3610,13605,0},{3615,13612,0},{3623,13613,0}, {3625,13622,0},{3633,13630,0},{3637,13638,0},{3660,13660,0},{3675,13672,0}, {3688,13677,0},{3697,13677,0},{3705,13672,0},{3713,13673,0},{3713,13668,0}, {3718,13668,0},{3725,13673,0},{3732,13673,0},{3735,13677,0},{3738,13685,0}, {3738,13692,0},{3742,13703,0},{3748,13713,0},{3752,13727,0},{3750,13735,0}, {3747,13735,0},{3743,13737,0},{3742,13727,0},{3737,13723,0},{3735,13727,0}, {3732,13727,0},{3728,13723,0},{3728,13712,0},{3720,13707,0},{3718,13703,0}, {3718,13700,0},{3722,13693,0},{3713,13687,0},{3712,13688,0},{3710,13687,0}, {3707,13687,0},{3708,13692,0},{3707,13693,0},{3703,13698,0},{3708,13703,0}, {3708,13705,0},{3695,13705,0},{3685,13698,0},{3678,13708,0},{3675,13720,0}, {3675,13732,0},{3678,13738,0},{3685,13742,0},{3690,13742,0},{3693,13745,0}, {3698,13768,0},{3707,13793,0},{3710,13802,0},{3717,13810,0},{3717,13825,0}, {3730,13842,0},{3737,13855,0},{3752,13865,0},{3758,13873,0},{3773,13880,0}, {3780,13883,0},{3790,13898,0},{3800,13923,0},{3807,13935,0},{3815,13942,0}, {3822,13945,0},{3835,13945,0},{3843,13948,0},{3867,13962,0},{3872,13970,0}, {3878,13977,0},{3907,13988,0},{3927,13992,0},{3930,13997,0},{3938,14002,0}, {3958,14007,0},{3980,14003,0},{3985,14000,0},{3988,13992,0},{3988,13987,0}, {3987,13985,0},{3985,13983,0},{3985,13975,0},{3993,13970,0},{3993,13972,0}, {4000,13970,0},{3995,13982,0},{3998,13990,0},{4022,14002,0},{4033,14002,0}, {4042,13993,0},{4053,13993,0},{4057,13990,0},{4058,13987,0},{4060,13985,0}, {4067,13997,0},{4073,14000,0},{4075,14002,0},{4073,14010,0},{4075,14015,0}, {4080,14027,0},{4102,14032,0},{4098,14037,0},{4098,14038,0},{4102,14037,0}, {4102,14038,0},{4103,14033,0},{4110,14032,0},{4112,14027,0},{4113,14032,0}, {4125,14035,0},{4118,14047,0},{4122,14057,0},{4118,14065,0},{4108,14063,0}, {4093,14065,0},{4088,14068,0},{4083,14072,0},{4082,14075,0},{4083,14082,0}, {4085,14083,0},{4090,14087,0},{4093,14085,0},{4100,14088,0},{4097,14095,0}, {4093,14098,0},{4087,14108,0},{4085,14113,0},{4087,14115,0},{4088,14118,0}, {4098,14123,0},{4108,14125,0},{4115,14128,0},{4123,14123,0},{4127,14118,0}, {4127,14117,0},{4125,14113,0},{4123,14115,0},{4118,14107,0},{4118,14100,0}, {4117,14095,0},{4115,14087,0},{4112,14080,0},{4113,14078,0},{4117,14077,0}, {4123,14078,0},{4133,14083,0},{4140,14083,0},{4145,14088,0},{4153,14092,0}, {4148,14102,0},{4147,14108,0},{4143,14113,0},{4552,14195,128},{4538,14207,0}, {4533,14218,0},{4518,14235,0},{4505,14252,0},{4490,14262,0},{4470,14282,0}, {4448,14313,0},{4440,14328,0},{4437,14337,0},{4433,14338,0},{4427,14350,0}, {4418,14378,0},{4418,14368,0},{4412,14373,0},{4410,14377,0},{4410,14390,0}, {4410,14393,0},{4413,14398,0},{4413,14402,0},{4412,14417,0},{4410,14417,0}, {4408,14413,0},{4407,14412,0},{4403,14410,0},{4402,14415,0},{4403,14418,0}, {4410,14420,0},{4410,14427,0},{4405,14427,0},{4395,14437,0},{4392,14472,0}, {4392,14478,0},{4395,14483,0},{4408,14500,0},{4420,14518,0},{4435,14535,0}, {4427,14538,0},{4417,14532,0},{4413,14527,0},{4405,14525,0},{4400,14518,0}, {4393,14513,0},{4390,14512,0},{4383,14512,0},{4377,14507,0},{4367,14513,0}, {4362,14520,0},{4358,14522,0},{4337,14530,0},{4330,14538,0},{4332,14533,0}, {4335,14528,0},{4333,14527,0},{4332,14525,0},{4330,14532,0},{4328,14530,0}, {4327,14532,0},{4325,14547,0},{4323,14552,0},{4327,14550,0},{4333,14558,0}, {4335,14563,0},{4338,14565,0},{4338,14572,0},{4338,14575,0},{4337,14582,0}, {4330,14568,0},{4330,14562,0},{4327,14557,0},{4322,14557,0},{4318,14552,0}, {4317,14553,0},{4318,14547,0},{4317,14528,0},{4313,14520,0},{4313,14515,0}, {4310,14512,0},{4307,14517,0},{4307,14510,0},{4303,14510,0},{4302,14507,0}, {4303,14500,0},{4300,14503,0},{4298,14498,0},{4298,14487,0},{4300,14483,0}, {4303,14485,0},{4305,14480,0},{4298,14473,0},{4292,14477,0},{4295,14457,0}, {4293,14447,0},{4295,14438,0},{4300,14433,0},{4297,14415,0},{4290,14398,0}, {4285,14390,0},{4273,14377,0},{4263,14360,0},{4238,14338,0},{4228,14333,0}, {4217,14333,0},{4205,14332,0},{4198,14327,0},{4192,14323,0},{4197,14318,0}, {4203,14310,0},{4212,14293,0},{4213,14280,0},{4218,14265,0},{4223,14258,0}, {4225,14248,0},{4235,14230,0},{4243,14218,0},{4248,14202,0},{4255,14192,0}, {4260,14178,0},{4262,14167,0},{4260,14157,0},{4257,14143,0},{4245,14122,0}, {4240,14112,0},{4230,14098,0},{4232,14093,0},{4233,14093,0},{4232,14098,0}, {4233,14098,0},{4237,14092,0},{4243,14088,0},{4250,14080,0},{4255,14075,0}, {4258,14068,0},{4257,14047,0},{4247,14035,0},{4238,14030,0},{4232,14028,0}, {4225,14028,0},{4218,14043,0},{4210,14053,0},{4212,14073,0},{4207,14080,0}, {4202,14083,0},{4198,14090,0},{4190,14097,0},{4188,14110,0},{4180,14120,0}, {4178,14113,0},{4172,14103,0},{4170,14098,0},{4175,14092,0},{4177,14082,0}, {4177,14077,0},{4173,14070,0},{4177,14070,0},{4178,14072,0},{4180,14073,0}, {4182,14070,0},{4182,14065,0},{4178,14062,0},{4173,14060,0},{4168,14045,0}, {4163,14043,0},{4153,14045,0},{4152,14042,0},{4148,14028,0},{4140,14020,0}, {4142,14015,0},{4142,14007,0},{4145,14003,0},{4153,13998,0},{4160,13998,0}, {4168,14002,0},{4175,14007,0},{4180,14008,0},{4182,14013,0},{4187,14012,0}, {4190,14015,0},{4198,14013,0},{4208,14005,0},{4213,13993,0},{4218,13988,0}, {4222,13982,0},{4225,13978,0},{4232,13977,0},{4245,13983,0},{4262,13983,0}, {4265,13987,0},{4268,13990,0},{4268,14005,0},{4273,14010,0},{4275,14013,0}, {4282,14018,0},{4280,14022,0},{4275,14027,0},{4277,14030,0},{4282,14032,0}, {4288,14038,0},{4300,14053,0},{4315,14042,0},{4318,14035,0},{4323,14032,0}, {4332,14037,0},{4333,14043,0},{4337,14047,0},{4330,14063,0},{4327,14067,0}, {4323,14073,0},{4318,14080,0},{4323,14102,0},{4322,14102,0},{4318,14100,0}, {4313,14117,0},{4313,14120,0},{4318,14128,0},{4328,14140,0},{4338,14143,0}, {4352,14135,0},{4358,14138,0},{4372,14133,0},{4378,14138,0},{4382,14143,0}, {4382,14148,0},{4385,14157,0},{4395,14165,0},{4403,14167,0},{4430,14165,0}, {4443,14175,0},{4462,14180,0},{4485,14177,0},{4497,14172,0},{4513,14160,0}, {4518,14158,0},{4523,14158,0},{4535,14165,0},{4540,14163,0},{4543,14165,0}, {4543,14168,0},{4540,14170,0},{4542,14182,0},{4543,14187,0},{4550,14190,0}, {4552,14193,0},{4550,14197,0},{5433,1312,129},{5437,1313,1},{5438,1327,1}, {5438,1323,1},{5442,1323,1},{5443,1322,1},{5442,1315,1},{5445,1318,1},{5448,1327,1}, {5448,1323,1},{5452,1323,1},{5452,1317,1},{5455,1315,1},{5455,1327,1},{5452,1330,1}, {5455,1330,1},{5458,1337,1},{5452,1335,1},{5453,1340,1},{5455,1337,1},{5455,1338,1}, {5452,1342,1},{5450,1342,1},{5448,1347,1},{5448,1350,1},{5455,1350,1},{5457,1352,1}, {5455,1347,1},{5458,1338,1},{5462,1337,1},{5457,1330,1},{5457,1325,1},{5463,1330,1}, {5463,1323,1},{5463,1322,1},{5465,1323,1},{5467,1328,1},{5468,1342,1},{5467,1345,1}, {5463,1338,1},{5458,1342,1},{5457,1347,1},{5458,1365,1},{5457,1368,1},{5453,1368,1}, {5448,1358,1},{5445,1358,1},{5440,1362,1},{5440,1368,1},{5433,1377,1},{5432,1373,1}, {5427,1372,1},{5428,1370,1},{5428,1372,1},{5430,1372,1},{5430,1365,1},{5432,1372,1}, {5432,1362,1},{5435,1368,1},{5435,1365,1},{5433,1362,1},{5435,1358,1},{5433,1350,1}, {5428,1340,1},{5427,1335,1},{5425,1337,1},{5427,1337,1},{5427,1342,1},{5423,1343,1}, {5422,1340,1},{5425,1330,1},{5425,1332,1},{5428,1333,1},{5425,1327,1},{5427,1320,1}, {5430,1320,1},{5428,1315,1},{5430,1315,1},{5430,1318,1},{5433,1312,1},{5447,1100,129}, {5453,1107,1},{5450,1123,1},{5442,1132,1},{5442,1120,1},{5442,1117,1},{5440,1118,1}, {5442,1112,1},{5445,1110,1},{5445,1102,1},{5443,1103,1},{5445,1102,1},{5447,1100,1}, {5895,65268,129},{5892,65266,1},{5892,65259,1},{5888,65253,1},{5890,65249,1}, {5888,65244,1},{5897,65239,1},{5893,65228,1},{5893,65229,1},{5893,65224,1}, {5892,65224,1},{5892,65216,1},{5897,65213,1},{5900,65216,1},{5903,65214,1}, {5902,65211,1},{5900,65213,1},{5902,65208,1},{5898,65211,1},{5895,65206,1}, {5897,65201,1},{5902,65199,1},{5905,65203,1},{5912,65201,1},{5913,65204,1}, {5915,65214,1},{5912,65226,1},{5912,65228,1},{5910,65231,1},{5910,65229,1}, {5907,65236,1},{5903,65234,1},{5905,65229,1},{5900,65223,1},{5898,65229,1}, {5900,65231,1},{5902,65234,1},{5900,65241,1},{5902,65241,1},{5900,65244,1}, {5897,65251,1},{5898,65251,1},{5898,65258,1},{5897,65258,1},{5895,65253,1}, {5893,65254,1},{5897,65261,1},{5895,65268,1},{5442,65101,129},{5433,65099,1}, {5430,65106,1},{5423,65099,1},{5422,65096,1},{5418,65096,1},{5415,65089,1}, {5413,65088,1},{5408,65078,1},{5405,65074,1},{5407,65073,1},{5407,65069,1}, {5408,65066,1},{5407,65061,1},{5407,65058,1},{5413,65063,1},{5422,65064,1}, {5425,65074,1},{5437,65083,1},{5438,65088,1},{5442,65099,1},{5442,65101,1}, {5840,64919,129},{5835,64916,1},{5833,64921,1},{5828,64909,1},{5822,64901,1}, {5820,64908,1},{5822,64913,1},{5825,64921,1},{5820,64923,1},{5817,64913,1}, {5818,64908,1},{5820,64898,1},{5813,64901,1},{5808,64883,1},{5808,64893,1}, {5810,64896,1},{5807,64899,1},{5800,64896,1},{5802,64881,1},{5798,64889,1}, {5793,64888,1},{5793,64884,1},{5793,64881,1},{5792,64881,1},{5792,64878,1}, {5795,64873,1},{5792,64874,1},{5793,64868,1},{5798,64863,1},{5803,64866,1}, {5800,64861,1},{5793,64864,1},{5788,64868,1},{5788,64858,1},{5788,64854,1}, {5783,64859,1},{5782,64856,1},{5780,64856,1},{5782,64849,1},{5777,64846,1}, {5775,64841,1},{5772,64839,1},{5783,64819,1},{5783,64826,1},{5780,64828,1}, {5787,64836,1},{5787,64843,1},{5788,64839,1},{5790,64841,1},{5790,64853,1}, {5792,64849,1},{5792,64851,1},{5795,64838,1},{5795,64831,1},{5798,64823,1}, {5802,64826,1},{5803,64834,1},{5803,64829,1},{5805,64831,1},{5807,64826,1}, {5810,64826,1},{5812,64823,1},{5815,64826,1},{5817,64826,1},{5818,64834,1}, {5820,64829,1},{5823,64833,1},{5822,64839,1},{5823,64841,1},{5820,64844,1}, {5820,64841,1},{5818,64844,1},{5817,64849,1},{5818,64854,1},{5818,64861,1}, {5817,64864,1},{5818,64866,1},{5818,64861,1},{5823,64858,1},{5827,64856,1}, {5827,64854,1},{5830,64856,1},{5830,64861,1},{5835,64869,1},{5835,64883,1}, {5838,64884,1},{5847,64906,1},{5850,64908,1},{5850,64914,1},{5847,64919,1}, {5840,64919,1},{6047,65418,129},{6050,65414,1},{6047,65411,1},{6048,65409,1}, {6047,65406,1},{6043,65413,1},{6043,65404,1},{6040,65403,1},{6040,65399,1}, {6048,65406,1},{6048,65403,1},{6053,65404,1},{6053,65403,1},{6055,65406,1}, {6063,65406,1},{6062,65403,1},{6060,65404,1},{6062,65396,1},{6060,65394,1}, {6057,65394,1},{6053,65388,1},{6052,65394,1},{6052,65398,1},{6050,65396,1}, {6052,65389,1},{6055,65384,1},{6055,65381,1},{6052,65381,1},{6050,65376,1}, {6047,65374,1},{6048,65381,1},{6048,65388,1},{6047,65386,1},{6045,65388,1}, {6048,65391,1},{6042,65393,1},{6042,65398,1},{6038,65396,1},{6038,65403,1}, {6037,65401,1},{6035,65409,1},{6035,65403,1},{6033,65404,1},{6033,65401,1}, {6032,65399,1},{6030,65403,1},{6028,65399,1},{6032,65398,1},{6032,65394,1}, {6032,65391,1},{6030,65393,1},{6030,65389,1},{6028,65391,1},{6028,65389,1}, {6032,65388,1},{6030,65383,1},{6030,65384,1},{6030,65381,1},{6028,65381,1}, {6030,65376,1},{6028,65368,1},{6023,65369,1},{6022,65374,1},{6023,65381,1}, {6020,65383,1},{6022,65384,1},{6025,65386,1},{6022,65389,1},{6018,65383,1}, {6015,65391,1},{6018,65394,1},{6017,65394,1},{6018,65396,1},{6022,65396,1}, {6020,65401,1},{6023,65399,1},{6025,65394,1},{6025,65401,1},{6020,65403,1}, {6023,65406,1},{6023,65409,1},{6017,65404,1},{6018,65408,1},{6017,65408,1}, {6013,65408,1},{6013,65409,1},{6010,65409,1},{6000,65403,1},{5997,65404,1}, {5997,65401,1},{5995,65404,1},{5993,65401,1},{5988,65399,1},{5988,65401,1}, {5990,65404,1},{5987,65404,1},{5985,65409,1},{5988,65409,1},{6000,65411,1}, {5998,65414,1},{6000,65416,1},{6003,65414,1},{6005,65419,1},{6010,65414,1}, {6012,65418,1},{6013,65416,1},{6013,65421,1},{6015,65423,1},{6017,65421,1}, {6020,65421,1},{6018,65416,1},{6022,65419,1},{6020,65416,1},{6023,65418,1}, {6023,65414,1},{6025,65418,1},{6027,65416,1},{6023,65421,1},{6027,65426,1}, {6028,65426,1},{6028,65423,1},{6032,65429,1},{6033,65421,1},{6035,65419,1}, {6035,65429,1},{6038,65429,1},{6038,65426,1},{6037,65424,1},{6038,65424,1}, {6045,65433,1},{6043,65428,1},{6042,65426,1},{6038,65421,1},{6040,65421,1}, {6040,65413,1},{6042,65418,1},{6042,65421,1},{6047,65418,1},{5528,1480,129}, {5525,1488,1},{5522,1500,1},{5517,1503,1},{5513,1517,1},{5502,1515,1},{5498,1507,1}, {5502,1493,1},{5508,1473,1},{5510,1470,1},{5520,1472,1},{5530,1477,1},{5528,1480,1}, {5495,1123,129},{5495,1128,1},{5487,1140,1},{5480,1160,1},{5483,1157,1}, {5485,1163,1},{5488,1163,1},{5490,1165,1},{5487,1172,1},{5483,1173,1},{5483,1177,1}, {5475,1185,1},{5472,1180,1},{5470,1180,1},{5468,1183,1},{5463,1178,1},{5467,1165,1}, {5467,1158,1},{5463,1152,1},{5460,1145,1},{5472,1120,1},{5475,1102,1},{5478,1098,1}, {5480,1100,1},{5482,1098,1},{5480,1103,1},{5482,1110,1},{5488,1102,1},{5493,1105,1}, {5495,1113,1},{5495,1123,1},{5495,1183,129},{5492,1188,1},{5493,1190,1}, {5492,1195,1},{5490,1197,1},{5488,1208,1},{5483,1213,1},{5477,1202,1},{5473,1200,1}, {5470,1193,1},{5457,1195,1},{5458,1190,1},{5467,1185,1},{5472,1188,1},{5480,1180,1}, {5483,1178,1},{5487,1173,1},{5492,1173,1},{5493,1168,1},{5495,1173,1},{5493,1178,1}, {5497,1182,1},{5495,1183,1},{5505,1227,129},{5503,1230,1},{5500,1247,1}, {5498,1252,1},{5495,1252,1},{5493,1250,1},{5495,1233,1},{5495,1228,1},{5488,1222,1}, {5488,1217,1},{5490,1208,1},{5492,1208,1},{5493,1212,1},{5497,1210,1},{5497,1215,1}, {5498,1215,1},{5498,1223,1},{5503,1225,1},{5505,1223,1},{5505,1227,1},{5607,1253,129}, {5605,1258,1},{5602,1260,1},{5590,1250,1},{5577,1260,1},{5572,1260,1},{5565,1255,1}, {5562,1248,1},{5560,1247,1},{5560,1240,1},{5560,1235,1},{5555,1223,1},{5552,1220,1}, {5547,1217,1},{5543,1218,1},{5535,1242,1},{5528,1245,1},{5525,1242,1},{5523,1233,1}, {5523,1222,1},{5522,1215,1},{5518,1208,1},{5513,1208,1},{5515,1205,1},{5517,1207,1}, {5517,1202,1},{5513,1203,1},{5512,1215,1},{5508,1215,1},{5508,1207,1},{5500,1215,1}, {5497,1200,1},{5500,1192,1},{5498,1187,1},{5500,1183,1},{5503,1178,1},{5507,1163,1}, {5503,1182,1},{5512,1170,1},{5513,1180,1},{5515,1170,1},{5520,1170,1},{5517,1163,1}, {5522,1143,1},{5520,1130,1},{5518,1132,1},{5520,1125,1},{5523,1123,1},{5523,1128,1}, {5525,1128,1},{5525,1123,1},{5528,1123,1},{5532,1115,1},{5533,1118,1},{5535,1118,1}, {5535,1113,1},{5533,1113,1},{5535,1108,1},{5540,1120,1},{5550,1113,1},{5552,1108,1}, {5553,1108,1},{5555,1115,1},{5558,1115,1},{5563,1107,1},{5567,1093,1},{5567,1108,1}, {5568,1102,1},{5572,1097,1},{5573,1087,1},{5573,1108,1},{5575,1113,1},{5573,1117,1}, {5573,1112,1},{5572,1115,1},{5570,1120,1},{5570,1122,1},{5573,1118,1},{5573,1127,1}, {5577,1137,1},{5580,1138,1},{5583,1135,1},{5582,1140,1},{5583,1143,1},{5583,1148,1}, {5592,1152,1},{5593,1147,1},{5597,1130,1},{5598,1127,1},{5597,1140,1},{5595,1157,1}, {5593,1160,1},{5597,1177,1},{5592,1173,1},{5588,1175,1},{5590,1167,1},{5590,1165,1}, {5580,1172,1},{5580,1163,1},{5578,1163,1},{5578,1160,1},{5577,1163,1},{5578,1172,1}, {5577,1175,1},{5575,1173,1},{5568,1180,1},{5567,1178,1},{5568,1182,1},{5573,1185,1}, {5577,1183,1},{5580,1187,1},{5583,1193,1},{5590,1190,1},{5593,1192,1},{5590,1200,1}, {5585,1198,1},{5583,1202,1},{5575,1205,1},{5572,1203,1},{5572,1197,1},{5565,1192,1}, {5567,1197,1},{5565,1205,1},{5573,1208,1},{5592,1205,1},{5595,1202,1},{5593,1188,1}, {5595,1185,1},{5597,1185,1},{5608,1212,1},{5610,1223,1},{5610,1232,1},{5607,1253,1}, {5513,1093,129},{5502,1088,1},{5495,1082,1},{5473,1070,1},{5473,1067,1}, {5480,1065,1},{5483,1060,1},{5483,1063,1},{5487,1065,1},{5488,1070,1},{5492,1067,1}, {5505,1085,1},{5513,1088,1},{5515,1092,1},{5513,1093,1},{5558,1065,129}, {5548,1073,1},{5547,1068,1},{5543,1068,1},{5530,1083,1},{5530,1078,1},{5528,1078,1}, {5520,1080,1},{5507,1073,1},{5507,1062,1},{5503,1052,1},{5507,1030,1},{5510,1022,1}, {5507,1020,1},{5508,1015,1},{5508,1007,1},{5513,1015,1},{5518,1012,1},{5518,1010,1}, {5517,1008,1},{5518,1005,1},{5520,1000,1},{5518,998,1},{5513,1003,1},{5512,1002,1}, {5513,998,1},{5515,1000,1},{5518,997,1},{5520,998,1},{5522,992,1},{5525,988,1}, {5535,988,1},{5535,983,1},{5537,978,1},{5538,983,1},{5542,978,1},{5542,982,1}, {5543,975,1},{5547,970,1},{5543,982,1},{5550,968,1},{5552,973,1},{5553,975,1}, {5555,982,1},{5552,985,1},{5550,992,1},{5560,1020,1},{5560,1027,1},{5558,1028,1}, {5562,1028,1},{5562,1032,1},{5558,1040,1},{5555,1045,1},{5552,1053,1},{5552,1047,1}, {5550,1048,1},{5547,1042,1},{5543,1043,1},{5543,1048,1},{5547,1050,1},{5548,1060,1}, {5550,1060,1},{5552,1057,1},{5552,1062,1},{5560,1060,1},{5558,1065,1},{7800,2308,129}, {7793,2342,1},{7787,2365,1},{7785,2388,1},{7787,2400,1},{7788,2405,1},{7790,2432,1}, {7787,2437,1},{7785,2455,1},{7782,2458,1},{7775,2492,1},{7773,2485,1},{7772,2452,1}, {7768,2420,1},{7760,2400,1},{7750,2388,1},{7745,2375,1},{7742,2355,1},{7737,2337,1}, {7740,2320,1},{7738,2308,1},{7733,2292,1},{7728,2290,1},{7725,2263,1},{7727,2255,1}, {7725,2242,1},{7730,2238,1},{7733,2250,1},{7742,2240,1},{7748,2260,1},{7750,2270,1}, {7755,2277,1},{7753,2263,1},{7752,2258,1},{7757,2258,1},{7757,2247,1},{7755,2232,1}, {7752,2223,1},{7750,2213,1},{7748,2160,1},{7743,2112,1},{7745,2088,1},{7748,2087,1}, {7750,2093,1},{7753,2083,1},{7758,2097,1},{7758,2112,1},{7762,2122,1},{7773,2125,1}, {7785,2155,1},{7790,2153,1},{7792,2165,1},{7793,2163,1},{7797,2135,1},{7808,2087,1}, {7812,2093,1},{7818,2147,1},{7822,2187,1},{7820,2240,1},{7823,2252,1},{7825,2283,1}, {7822,2322,1},{7815,2347,1},{7810,2337,1},{7808,2310,1},{7800,2308,1},{7825,2200,129}, {7825,2217,1},{7827,2227,1},{7843,2220,1},{7848,2223,1},{7852,2213,1},{7858,2208,1}, {7857,2195,1},{7858,2188,1},{7860,2172,1},{7857,2150,1},{7860,2145,1},{7862,2120,1}, {7858,2110,1},{7855,2105,1},{7855,2087,1},{7848,2017,1},{7847,2012,1},{7843,2052,1}, {7838,2067,1},{7835,2068,1},{7833,2053,1},{7832,2047,1},{7830,2067,1},{7828,2078,1}, {7827,2078,1},{7825,2070,1},{7820,2063,1},{7818,2067,1},{7822,2085,1},{7822,2102,1}, {7820,2105,1},{7823,2132,1},{7825,2172,1},{7825,2200,1},{7880,2662,129}, {7872,2678,1},{7870,2690,1},{7870,2702,1},{7865,2693,1},{7862,2673,1},{7865,2670,1}, {7870,2647,1},{7878,2642,1},{7882,2652,1},{7880,2662,1},{7897,2865,129}, {7895,2888,1},{7890,2910,1},{7892,2968,1},{7888,2970,1},{7888,2950,1},{7885,2932,1}, {7885,2912,1},{7890,2885,1},{7888,2865,1},{7888,2842,1},{7882,2810,1},{7883,2785,1}, {7887,2802,1},{7892,2815,1},{7892,2838,1},{7897,2842,1},{7897,2865,1},{8035,2485,129}, {8032,2490,1},{8025,2478,1},{8025,2505,1},{8028,2532,1},{8025,2523,1},{8022,2527,1}, {8023,2555,1},{8020,2562,1},{8022,2568,1},{8022,2577,1},{8017,2570,1},{8018,2598,1}, {8018,2663,1},{8017,2680,1},{8010,2700,1},{8010,2722,1},{7997,2710,1},{7990,2723,1}, {7985,2712,1},{7983,2687,1},{7978,2678,1},{7978,2665,1},{7972,2647,1},{7962,2580,1}, {7952,2598,1},{7940,2572,1},{7933,2515,1},{7933,2497,1},{7937,2493,1},{7937,2480,1}, {7932,2452,1},{7930,2428,1},{7922,2423,1},{7918,2407,1},{7918,2392,1},{7918,2332,1}, {7922,2297,1},{7923,2283,1},{7928,2267,1},{7933,2265,1},{7937,2265,1},{7942,2290,1}, {7940,2262,1},{7940,2215,1},{7937,2173,1},{7940,2142,1},{7937,2093,1},{7937,2080,1}, {7942,2083,1},{7947,2075,1},{7945,2060,1},{7947,2022,1},{7952,2000,1},{7955,1968,1}, {7962,1967,1},{7965,2015,1},{7958,2043,1},{7958,2087,1},{7957,2112,1},{7958,2110,1}, {7962,2065,1},{7968,2048,1},{7972,2118,1},{7970,2183,1},{7975,2188,1},{7977,2227,1}, {7978,2235,1},{7980,2232,1},{7977,2180,1},{7978,2183,1},{7978,2173,1},{7980,2177,1}, {7982,2188,1},{7983,2167,1},{7978,2033,1},{7975,1998,1},{7972,1952,1},{7973,1940,1}, {7972,1915,1},{7973,1893,1},{7972,1877,1},{7978,1868,1},{7980,1860,1},{7978,1847,1}, {7988,1823,1},{7990,1812,1},{7993,1830,1},{7997,1865,1},{7997,1868,1},{7997,1855,1}, {8000,1865,1},{7997,1880,1},{8000,1878,1},{8005,1893,1},{8002,1873,1},{8005,1822,1}, {8008,1815,1},{8008,1837,1},{8010,1822,1},{8010,1813,1},{8013,1803,1},{8010,1802,1}, {8013,1792,1},{8013,1778,1},{8018,1803,1},{8017,1805,1},{8018,1817,1},{8017,1840,1}, {8018,1845,1},{8018,1860,1},{8015,1872,1},{8020,1873,1},{8018,1892,1},{8008,1928,1}, {8013,1940,1},{8013,1957,1},{8017,1955,1},{8017,1932,1},{8020,1922,1},{8033,1898,1}, {8035,1902,1},{8033,1933,1},{8022,1962,1},{8022,1982,1},{8022,1985,1},{8025,1972,1}, {8028,1983,1},{8032,1977,1},{8033,1985,1},{8035,1977,1},{8038,1992,1},{8040,1972,1}, {8038,1955,1},{8040,1948,1},{8047,1948,1},{8043,1968,1},{8050,1967,1},{8047,1985,1}, {8047,2003,1},{8037,2008,1},{8042,2018,1},{8042,2033,1},{8042,2043,1},{8037,2048,1}, {8028,2062,1},{8032,2083,1},{8027,2075,1},{8022,2083,1},{8022,2113,1},{8025,2132,1}, {8020,2132,1},{8022,2138,1},{8027,2148,1},{8023,2168,1},{8027,2167,1},{8027,2187,1}, {8020,2190,1},{8012,2160,1},{8012,2168,1},{8015,2180,1},{8010,2205,1},{8005,2222,1}, {7998,2223,1},{8000,2235,1},{8003,2233,1},{8003,2240,1},{8000,2243,1},{8002,2248,1}, {8007,2235,1},{8005,2245,1},{8007,2247,1},{8012,2238,1},{8027,2245,1},{8030,2258,1}, {8035,2233,1},{8042,2237,1},{8043,2250,1},{8042,2268,1},{8042,2267,1},{8035,2262,1}, {8032,2275,1},{8035,2270,1},{8042,2283,1},{8052,2277,1},{8052,2285,1},{8047,2295,1}, {8045,2328,1},{8043,2337,1},{8040,2330,1},{8038,2312,1},{8037,2322,1},{8035,2320,1}, {8033,2335,1},{8028,2330,1},{8025,2305,1},{8015,2300,1},{8012,2315,1},{8012,2323,1}, {8017,2308,1},{8017,2323,1},{8020,2325,1},{8013,2338,1},{8020,2342,1},{8018,2350,1}, {8017,2347,1},{8013,2355,1},{8017,2367,1},{8018,2383,1},{8023,2373,1},{8025,2380,1}, {8025,2372,1},{8030,2377,1},{8028,2385,1},{8027,2402,1},{8030,2390,1},{8032,2393,1}, {8027,2418,1},{8030,2422,1},{8028,2435,1},{8032,2430,1},{8032,2440,1},{8033,2418,1}, {8037,2418,1},{8037,2438,1},{8033,2457,1},{8032,2460,1},{8030,2448,1},{8027,2447,1}, {8025,2453,1},{8030,2473,1},{8035,2480,1},{8035,2485,1},{8022,3310,129}, {8025,3332,1},{8022,3360,1},{8020,3360,1},{8017,3302,1},{8013,3283,1},{8008,3232,1}, {8007,3158,1},{8008,3147,1},{8012,3150,1},{8018,3285,1},{8022,3310,1},{7953,1068,129}, {7945,1092,1},{7940,1085,1},{7938,1092,1},{7937,1085,1},{7923,1113,1},{7910,1123,1}, {7917,1172,1},{7928,1155,1},{7932,1163,1},{7932,1170,1},{7922,1183,1},{7923,1192,1}, {7928,1183,1},{7928,1203,1},{7930,1208,1},{7930,1212,1},{7923,1205,1},{7922,1213,1}, {7920,1195,1},{7913,1185,1},{7913,1188,1},{7907,1168,1},{7902,1208,1},{7900,1212,1}, {7898,1198,1},{7897,1207,1},{7900,1227,1},{7900,1243,1},{7890,1250,1},{7888,1228,1}, {7890,1220,1},{7898,1160,1},{7897,1133,1},{7895,1135,1},{7887,1162,1},{7883,1193,1}, {7882,1190,1},{7882,1182,1},{7882,1173,1},{7873,1163,1},{7870,1175,1},{7870,1185,1}, {7863,1193,1},{7858,1222,1},{7858,1235,1},{7855,1238,1},{7852,1283,1},{7855,1310,1}, {7853,1320,1},{7850,1293,1},{7850,1252,1},{7848,1237,1},{7837,1270,1},{7835,1287,1}, {7833,1290,1},{7832,1285,1},{7827,1295,1},{7823,1292,1},{7820,1300,1},{7822,1315,1}, {7820,1360,1},{7820,1382,1},{7822,1387,1},{7827,1375,1},{7822,1395,1},{7828,1398,1}, {7828,1408,1},{7825,1403,1},{7823,1408,1},{7830,1433,1},{7835,1425,1},{7838,1428,1}, {7838,1437,1},{7837,1443,1},{7838,1447,1},{7838,1473,1},{7845,1467,1},{7848,1440,1}, {7853,1445,1},{7855,1458,1},{7865,1455,1},{7867,1445,1},{7868,1458,1},{7872,1468,1}, {7873,1482,1},{7867,1485,1},{7863,1480,1},{7860,1500,1},{7863,1505,1},{7865,1525,1}, {7867,1523,1},{7877,1522,1},{7885,1538,1},{7880,1548,1},{7878,1542,1},{7872,1550,1}, {7863,1545,1},{7862,1540,1},{7862,1523,1},{7858,1520,1},{7857,1527,1},{7850,1530,1}, {7845,1543,1},{7845,1568,1},{7848,1603,1},{7852,1605,1},{7857,1632,1},{7865,1637,1}, {7872,1655,1},{7867,1662,1},{7867,1683,1},{7865,1683,1},{7857,1655,1},{7848,1645,1}, {7845,1633,1},{7843,1640,1},{7843,1657,1},{7840,1660,1},{7838,1685,1},{7843,1722,1}, {7842,1730,1},{7833,1677,1},{7833,1627,1},{7835,1610,1},{7833,1592,1},{7833,1577,1}, {7830,1560,1},{7822,1573,1},{7823,1550,1},{7822,1530,1},{7813,1500,1},{7810,1498,1}, {7812,1477,1},{7808,1447,1},{7810,1425,1},{7808,1422,1},{7802,1433,1},{7797,1435,1}, {7797,1428,1},{7802,1423,1},{7808,1397,1},{7808,1385,1},{7805,1358,1},{7800,1368,1}, {7795,1363,1},{7785,1365,1},{7780,1382,1},{7775,1372,1},{7773,1377,1},{7775,1387,1}, {7772,1395,1},{7778,1415,1},{7777,1422,1},{7775,1427,1},{7775,1442,1},{7777,1463,1}, {7778,1452,1},{7778,1455,1},{7777,1472,1},{7778,1480,1},{7780,1510,1},{7787,1535,1}, {7788,1557,1},{7785,1572,1},{7783,1587,1},{7785,1615,1},{7785,1667,1},{7790,1673,1}, {7793,1700,1},{7792,1697,1},{7790,1700,1},{7787,1688,1},{7788,1682,1},{7788,1678,1}, {7783,1687,1},{7777,1712,1},{7780,1680,1},{7778,1647,1},{7780,1637,1},{7777,1627,1}, {7777,1605,1},{7773,1545,1},{7767,1473,1},{7762,1488,1},{7762,1520,1},{7760,1528,1}, {7757,1592,1},{7750,1605,1},{7747,1630,1},{7747,1620,1},{7743,1622,1},{7745,1608,1}, {7753,1583,1},{7753,1542,1},{7757,1500,1},{7755,1477,1},{7748,1472,1},{7748,1453,1}, {7753,1460,1},{7758,1448,1},{7757,1413,1},{7753,1392,1},{7750,1393,1},{7745,1405,1}, {7745,1395,1},{7740,1397,1},{7735,1417,1},{7728,1415,1},{7728,1432,1},{7723,1430,1}, {7717,1447,1},{7718,1463,1},{7717,1477,1},{7712,1505,1},{7710,1505,1},{7708,1513,1}, {7705,1513,1},{7702,1523,1},{7700,1535,1},{7702,1590,1},{7707,1587,1},{7705,1595,1}, {7707,1597,1},{7708,1602,1},{7702,1608,1},{7702,1620,1},{7698,1625,1},{7700,1637,1}, {7700,1653,1},{7698,1632,1},{7695,1633,1},{7693,1623,1},{7695,1623,1},{7698,1615,1}, {7697,1593,1},{7693,1585,1},{7695,1577,1},{7693,1572,1},{7692,1557,1},{7688,1550,1}, {7683,1573,1},{7675,1598,1},{7670,1630,1},{7665,1633,1},{7658,1630,1},{7657,1635,1}, {7662,1643,1},{7660,1655,1},{7657,1662,1},{7657,1683,1},{7660,1700,1},{7663,1700,1}, {7663,1710,1},{7667,1710,1},{7670,1720,1},{7675,1712,1},{7678,1692,1},{7682,1695,1}, {7683,1707,1},{7685,1705,1},{7697,1732,1},{7705,1710,1},{7705,1735,1},{7707,1733,1}, {7715,1745,1},{7722,1743,1},{7725,1752,1},{7733,1750,1},{7737,1762,1},{7742,1767,1}, {7743,1762,1},{7745,1773,1},{7750,1775,1},{7750,1793,1},{7750,1802,1},{7750,1825,1}, {7750,1830,1},{7758,1828,1},{7778,1845,1},{7785,1845,1},{7790,1833,1},{7793,1837,1}, {7797,1850,1},{7802,1842,1},{7805,1855,1},{7803,1870,1},{7803,1883,1},{7810,1910,1}, {7817,1892,1},{7822,1908,1},{7828,1895,1},{7837,1907,1},{7845,1897,1},{7850,1950,1}, {7850,1967,1},{7857,1958,1},{7862,1972,1},{7862,1990,1},{7860,2002,1},{7862,2002,1}, {7863,2010,1},{7862,2017,1},{7865,2023,1},{7865,2042,1},{7862,2057,1},{7868,2067,1}, {7868,2075,1},{7867,2082,1},{7868,2087,1},{7863,2108,1},{7867,2122,1},{7865,2138,1}, {7870,2135,1},{7877,2155,1},{7885,2153,1},{7888,2112,1},{7892,2098,1},{7892,2078,1}, {7893,2052,1},{7898,2027,1},{7902,2005,1},{7902,1990,1},{7905,1993,1},{7910,1982,1}, {7915,1983,1},{7915,1960,1},{7918,1940,1},{7917,1942,1},{7918,1930,1},{7915,1918,1}, {7917,1892,1},{7922,1895,1},{7925,1887,1},{7925,1860,1},{7928,1880,1},{7930,1887,1}, {7943,1888,1},{7947,1877,1},{7953,1875,1},{7963,1835,1},{7962,1820,1},{7958,1810,1}, {7942,1793,1},{7938,1782,1},{7937,1768,1},{7937,1763,1},{7942,1777,1},{7950,1778,1}, {7955,1777,1},{7955,1760,1},{7957,1773,1},{7960,1775,1},{7965,1788,1},{7970,1808,1}, {7973,1810,1},{7988,1757,1},{7993,1728,1},{7997,1698,1},{7993,1688,1},{7988,1690,1}, {7987,1682,1},{7992,1670,1},{7995,1672,1},{8003,1655,1},{8007,1630,1},{8002,1605,1}, {7997,1598,1},{7993,1595,1},{7987,1613,1},{7987,1580,1},{7987,1568,1},{7977,1565,1}, {7958,1583,1},{7955,1592,1},{7952,1585,1},{7930,1597,1},{7923,1613,1},{7913,1620,1}, {7898,1637,1},{7893,1650,1},{7890,1645,1},{7892,1633,1},{7898,1615,1},{7905,1613,1}, {7915,1588,1},{7915,1580,1},{7910,1568,1},{7913,1565,1},{7922,1578,1},{7930,1563,1}, {7933,1548,1},{7952,1530,1},{7960,1528,1},{7977,1487,1},{7980,1458,1},{7980,1452,1}, {7968,1425,1},{7967,1432,1},{7963,1415,1},{7960,1427,1},{7960,1407,1},{7953,1388,1}, {7942,1405,1},{7940,1402,1},{7933,1415,1},{7927,1407,1},{7928,1400,1},{7928,1390,1}, {7938,1387,1},{7948,1360,1},{7948,1345,1},{7943,1347,1},{7947,1325,1},{7952,1327,1}, {7953,1342,1},{7958,1348,1},{7960,1327,1},{7958,1295,1},{7955,1260,1},{7957,1245,1}, {7958,1250,1},{7960,1270,1},{7967,1302,1},{7968,1302,1},{7970,1325,1},{7970,1328,1}, {7970,1337,1},{7970,1363,1},{7973,1388,1},{7977,1397,1},{7982,1397,1},{7987,1382,1}, {7982,1302,1},{7978,1283,1},{7977,1267,1},{7975,1252,1},{7978,1255,1},{7982,1243,1}, {7983,1233,1},{7983,1220,1},{7978,1217,1},{7972,1235,1},{7967,1232,1},{7970,1217,1}, {7967,1217,1},{7968,1205,1},{7973,1203,1},{7975,1193,1},{7983,1183,1},{7983,1170,1}, {7980,1163,1},{7980,1152,1},{7977,1153,1},{7978,1120,1},{7972,1120,1},{7965,1147,1}, {7963,1145,1},{7965,1102,1},{7962,1093,1},{7960,1085,1},{7957,1118,1},{7955,1072,1}, {7953,1068,1},{7873,1063,129},{7877,1053,1},{7883,1058,1},{7890,1048,1}, {7888,1083,1},{7883,1100,1},{7878,1100,1},{7877,1112,1},{7873,1118,1},{7868,1107,1}, {7867,1115,1},{7862,1115,1},{7862,1127,1},{7853,1127,1},{7855,1142,1},{7852,1147,1}, {7847,1163,1},{7845,1177,1},{7843,1188,1},{7840,1187,1},{7828,1210,1},{7822,1217,1}, {7820,1215,1},{7823,1188,1},{7830,1183,1},{7845,1135,1},{7843,1117,1},{7843,1110,1}, {7868,1080,1},{7873,1063,1},{6892,1542,129},{6898,1542,1},{6910,1557,1}, {6912,1562,1},{6915,1577,1},{6925,1587,1},{6928,1600,1},{6932,1612,1},{6928,1615,1}, {6915,1608,1},{6905,1587,1},{6903,1587,1},{6898,1562,1},{6902,1555,1},{6897,1557,1}, {6890,1552,1},{6887,1547,1},{6892,1542,1},{6827,1498,129},{6830,1500,1}, {6833,1507,1},{6837,1510,1},{6845,1523,1},{6845,1537,1},{6847,1525,1},{6848,1525,1}, {6848,1533,1},{6850,1528,1},{6852,1527,1},{6852,1518,1},{6855,1522,1},{6855,1532,1}, {6858,1532,1},{6858,1537,1},{6855,1545,1},{6860,1538,1},{6860,1545,1},{6862,1543,1}, {6860,1563,1},{6863,1558,1},{6865,1547,1},{6870,1543,1},{6873,1547,1},{6873,1562,1}, {6870,1572,1},{6873,1565,1},{6873,1550,1},{6877,1545,1},{6880,1547,1},{6882,1563,1}, {6883,1557,1},{6885,1555,1},{6888,1557,1},{6888,1562,1},{6890,1560,1},{6895,1563,1}, {6895,1580,1},{6897,1587,1},{6895,1592,1},{6892,1590,1},{6888,1593,1},{6880,1588,1}, {6873,1577,1},{6878,1593,1},{6878,1598,1},{6875,1598,1},{6868,1593,1},{6862,1577,1}, {6855,1578,1},{6853,1573,1},{6855,1582,1},{6862,1582,1},{6867,1598,1},{6867,1603,1}, {6863,1603,1},{6863,1608,1},{6868,1608,1},{6870,1603,1},{6872,1607,1},{6873,1622,1}, {6877,1620,1},{6878,1612,1},{6882,1608,1},{6885,1620,1},{6883,1630,1},{6890,1625,1}, {6887,1633,1},{6885,1645,1},{6882,1645,1},{6882,1655,1},{6878,1650,1},{6877,1655,1}, {6875,1652,1},{6870,1657,1},{6868,1653,1},{6863,1657,1},{6860,1648,1},{6855,1650,1}, {6855,1622,1},{6852,1615,1},{6853,1610,1},{6837,1593,1},{6837,1587,1},{6848,1587,1}, {6843,1585,1},{6842,1583,1},{6843,1577,1},{6838,1582,1},{6840,1578,1},{6842,1575,1}, {6837,1573,1},{6837,1567,1},{6835,1570,1},{6830,1562,1},{6833,1552,1},{6833,1532,1}, {6847,1562,1},{6850,1555,1},{6847,1555,1},{6842,1543,1},{6842,1537,1},{6837,1527,1}, {6835,1520,1},{6833,1523,1},{6830,1513,1},{6825,1503,1},{6827,1498,1},{7452,1898,129}, {7452,1913,1},{7452,1918,1},{7447,1930,1},{7437,1918,1},{7435,1907,1},{7448,1878,1}, {7450,1883,1},{7452,1898,1},{5733,1712,129},{5732,1712,1},{5727,1705,1}, {5723,1707,1},{5718,1705,1},{5717,1702,1},{5703,1695,1},{5703,1690,1},{5702,1693,1}, {5697,1687,1},{5692,1688,1},{5685,1685,1},{5680,1677,1},{5660,1668,1},{5655,1663,1}, {5637,1658,1},{5623,1650,1},{5622,1643,1},{5623,1642,1},{5642,1642,1},{5647,1638,1}, {5658,1642,1},{5687,1662,1},{5690,1673,1},{5698,1678,1},{5710,1688,1},{5720,1690,1}, {5723,1697,1},{5732,1698,1},{5737,1705,1},{5733,1708,1},{5735,1710,1},{5733,1712,1}, {5790,1900,129},{5782,1908,1},{5782,1902,1},{5777,1898,1},{5778,1895,1}, {5772,1893,1},{5773,1882,1},{5762,1877,1},{5760,1880,1},{5750,1877,1},{5747,1877,1}, {5747,1880,1},{5745,1878,1},{5743,1882,1},{5743,1892,1},{5740,1892,1},{5738,1890,1}, {5738,1887,1},{5737,1878,1},{5733,1873,1},{5728,1867,1},{5727,1868,1},{5727,1872,1}, {5723,1872,1},{5720,1857,1},{5720,1858,1},{5718,1855,1},{5713,1840,1},{5712,1840,1}, {5712,1845,1},{5708,1835,1},{5702,1833,1},{5700,1840,1},{5700,1835,1},{5698,1835,1}, {5693,1830,1},{5692,1822,1},{5692,1813,1},{5698,1820,1},{5702,1820,1},{5703,1827,1}, {5708,1828,1},{5705,1823,1},{5707,1820,1},{5708,1822,1},{5713,1823,1},{5713,1817,1}, {5723,1815,1},{5725,1810,1},{5728,1810,1},{5732,1815,1},{5738,1818,1},{5740,1815,1}, {5745,1812,1},{5753,1812,1},{5760,1818,1},{5765,1830,1},{5782,1847,1},{5783,1855,1}, {5783,1862,1},{5788,1863,1},{5792,1868,1},{5792,1872,1},{5792,1875,1},{5782,1880,1}, {5788,1885,1},{5792,1885,1},{5792,1892,1},{5788,1890,1},{5788,1895,1},{5790,1895,1}, {5790,1900,1},{6232,64848,129},{6233,64841,1},{6230,64833,1},{6232,64828,1}, {6230,64828,1},{6218,64841,1},{6217,64846,1},{6215,64851,1},{6210,64861,1}, {6213,64863,1},{6218,64854,1},{6218,64861,1},{6213,64866,1},{6208,64866,1}, {6205,64869,1},{6210,64871,1},{6210,64876,1},{6215,64869,1},{6213,64879,1}, {6218,64864,1},{6220,64866,1},{6218,64874,1},{6220,64876,1},{6222,64866,1}, {6223,64858,1},{6223,64861,1},{6227,64863,1},{6227,64854,1},{6228,64856,1}, {6228,64846,1},{6223,64844,1},{6228,64843,1},{6232,64848,1},{6230,64819,129}, {6228,64829,1},{6220,64838,1},{6218,64836,1},{6213,64851,1},{6212,64851,1}, {6210,64846,1},{6210,64854,1},{6207,64858,1},{6205,64851,1},{6203,64864,1}, {6200,64863,1},{6198,64866,1},{6193,64864,1},{6200,64849,1},{6203,64846,1}, {6205,64839,1},{6210,64834,1},{6212,64824,1},{6213,64823,1},{6215,64824,1}, {6215,64819,1},{6215,64816,1},{6217,64813,1},{6223,64818,1},{6228,64814,1}, {6230,64816,1},{6230,64819,1},{7113,64703,129},{7118,64736,1},{7113,64743,1}, {7110,64736,1},{7103,64738,1},{7100,64723,1},{7097,64696,1},{7097,64689,1}, {7097,64674,1},{7082,64638,1},{7082,64628,1},{7087,64624,1},{7087,64631,1}, {7092,64643,1},{7093,64654,1},{7097,64663,1},{7102,64684,1},{7113,64703,1}, {3997,318,129},{3995,320,1},{3990,310,1},{3988,310,1},{3987,312,1},{3990,322,1}, {3985,318,1},{3983,313,1},{3978,313,1},{3975,327,1},{3978,335,1},{3978,338,1}, {3975,347,1},{3972,348,1},{3965,345,1},{3963,342,1},{3960,340,1},{3950,330,1}, {3943,328,1},{3937,323,1},{3927,307,1},{3937,297,1},{3937,280,1},{3942,275,1}, {3948,273,1},{3952,275,1},{3957,268,1},{3957,263,1},{3953,255,1},{3947,252,1}, {3948,248,1},{3952,247,1},{3952,248,1},{3953,245,1},{3953,238,1},{3953,237,1}, {3958,235,1},{3962,237,1},{3967,247,1},{3970,252,1},{3972,258,1},{3977,263,1}, {3977,265,1},{3987,282,1},{3987,285,1},{3992,295,1},{3993,303,1},{3993,307,1}, {3997,318,1},{4003,422,129},{3998,428,1},{3997,428,1},{3995,427,1},{3995,430,1}, {3988,435,1},{3988,432,1},{3987,433,1},{3983,433,1},{3982,432,1},{3982,430,1}, {3983,422,1},{3993,405,1},{3995,398,1},{3993,392,1},{3993,385,1},{4000,387,1}, {4003,382,1},{4007,387,1},{4007,410,1},{4008,412,1},{4007,412,1},{4007,415,1}, {4003,415,1},{4005,417,1},{4007,418,1},{4007,420,1},{4003,420,1},{4003,422,1}, {3912,155,129},{3912,162,1},{3910,162,1},{3907,160,1},{3903,163,1},{3903,160,1}, {3900,158,1},{3898,155,1},{3895,153,1},{3892,147,1},{3892,145,1},{3885,140,1}, {3883,138,1},{3888,135,1},{3888,123,1},{3892,122,1},{3897,123,1},{3898,130,1}, {3903,130,1},{3908,137,1},{3913,153,1},{3912,155,1},{4300,943,129},{4298,947,1}, {4297,945,1},{4282,948,1},{4263,943,1},{4258,948,1},{4257,952,1},{4265,945,1}, {4262,948,1},{4253,953,1},{4250,953,1},{4243,955,1},{4238,953,1},{4227,957,1}, {4213,955,1},{4195,942,1},{4195,940,1},{4192,942,1},{4188,940,1},{4170,940,1}, {4168,937,1},{4165,938,1},{4163,935,1},{4162,935,1},{4162,930,1},{4160,928,1}, {4158,928,1},{4160,932,1},{4158,935,1},{4157,935,1},{4153,927,1},{4150,927,1}, {4150,928,1},{4147,927,1},{4145,922,1},{4142,922,1},{4140,922,1},{4142,925,1}, {4137,922,1},{4137,917,1},{4140,913,1},{4140,910,1},{4143,912,1},{4145,907,1}, {4148,908,1},{4147,903,1},{4148,892,1},{4150,892,1},{4150,888,1},{4152,888,1}, {4152,885,1},{4153,885,1},{4155,878,1},{4158,880,1},{4158,878,1},{4163,880,1}, {4165,887,1},{4167,888,1},{4168,892,1},{4172,882,1},{4170,878,1},{4172,877,1}, {4173,878,1},{4172,872,1},{4173,870,1},{4175,865,1},{4177,872,1},{4180,872,1}, {4182,877,1},{4183,878,1},{4185,875,1},{4185,878,1},{4188,878,1},{4190,880,1}, {4193,878,1},{4193,875,1},{4192,872,1},{4190,862,1},{4193,862,1},{4197,858,1}, {4197,865,1},{4198,867,1},{4200,865,1},{4202,867,1},{4205,875,1},{4207,872,1}, {4212,870,1},{4212,865,1},{4213,862,1},{4213,858,1},{4215,858,1},{4215,857,1}, {4217,858,1},{4217,857,1},{4218,858,1},{4220,858,1},{4223,855,1},{4227,868,1}, {4230,867,1},{4232,860,1},{4233,863,1},{4235,862,1},{4233,855,1},{4238,855,1}, {4238,862,1},{4242,862,1},{4242,867,1},{4243,865,1},{4247,868,1},{4248,865,1}, {4252,867,1},{4252,872,1},{4258,872,1},{4257,872,1},{4255,877,1},{4258,880,1}, {4260,882,1},{4262,887,1},{4263,888,1},{4263,902,1},{4267,905,1},{4268,905,1}, {4273,912,1},{4272,925,1},{4268,930,1},{4273,935,1},{4280,933,1},{4283,930,1}, {4287,933,1},{4290,932,1},{4292,937,1},{4300,933,1},{4300,938,1},{4300,943,1}, {3825,1562,129},{3823,1557,1},{3820,1555,1},{3820,1557,1},{3817,1553,1}, {3808,1550,1},{3795,1537,1},{3785,1530,1},{3775,1522,1},{3770,1522,1},{3763,1518,1}, {3758,1518,1},{3748,1508,1},{3732,1510,1},{3730,1517,1},{3730,1522,1},{3727,1525,1}, {3723,1527,1},{3725,1523,1},{3723,1523,1},{3722,1523,1},{3725,1522,1},{3723,1520,1}, {3718,1518,1},{3715,1522,1},{3715,1525,1},{3715,1523,1},{3712,1523,1},{3710,1530,1}, {3707,1530,1},{3705,1528,1},{3703,1528,1},{3705,1532,1},{3702,1533,1},{3700,1528,1}, {3697,1527,1},{3697,1522,1},{3692,1515,1},{3680,1510,1},{3667,1513,1},{3665,1508,1}, {3670,1502,1},{3668,1497,1},{3670,1493,1},{3672,1492,1},{3673,1487,1},{3670,1478,1}, {3672,1473,1},{3672,1470,1},{3675,1467,1},{3677,1458,1},{3678,1450,1},{3682,1447,1}, {3687,1443,1},{3697,1437,1},{3707,1425,1},{3712,1410,1},{3710,1388,1},{3715,1382,1}, {3715,1375,1},{3718,1367,1},{3728,1357,1},{3728,1348,1},{3730,1343,1},{3735,1338,1}, {3738,1328,1},{3745,1322,1},{3748,1317,1},{3750,1302,1},{3755,1298,1},{3757,1292,1}, {3757,1275,1},{3755,1265,1},{3763,1260,1},{3767,1257,1},{3765,1252,1},{3770,1247,1}, {3773,1247,1},{3780,1242,1},{3782,1245,1},{3787,1248,1},{3792,1245,1},{3797,1250,1}, {3800,1250,1},{3802,1250,1},{3802,1252,1},{3807,1257,1},{3808,1263,1},{3812,1267,1}, {3812,1272,1},{3815,1273,1},{3817,1272,1},{3818,1273,1},{3818,1277,1},{3815,1277,1}, {3815,1278,1},{3812,1278,1},{3807,1282,1},{3802,1290,1},{3803,1295,1},{3808,1307,1}, {3810,1307,1},{3813,1305,1},{3818,1310,1},{3818,1315,1},{3817,1318,1},{3818,1323,1}, {3820,1323,1},{3822,1332,1},{3817,1337,1},{3813,1337,1},{3810,1338,1},{3810,1345,1}, {3812,1350,1},{3810,1353,1},{3807,1353,1},{3803,1357,1},{3800,1365,1},{3798,1372,1}, {3797,1377,1},{3805,1402,1},{3802,1407,1},{3802,1425,1},{3802,1437,1},{3805,1443,1}, {3805,1452,1},{3808,1465,1},{3817,1473,1},{3815,1478,1},{3817,1488,1},{3818,1492,1}, {3815,1498,1},{3815,1503,1},{3812,1508,1},{3818,1520,1},{3822,1523,1},{3827,1523,1}, {3825,1525,1},{3822,1525,1},{3820,1528,1},{3823,1542,1},{3830,1553,1},{3827,1565,1}, {3825,1562,1},{4125,925,129},{4123,927,1},{4118,927,1},{4122,928,1},{4120,928,1}, {4118,942,1},{4117,940,1},{4113,943,1},{4108,945,1},{4113,947,1},{4113,952,1}, {4115,952,1},{4113,953,1},{4112,953,1},{4112,957,1},{4108,957,1},{4108,953,1}, {4102,952,1},{4103,955,1},{4100,955,1},{4100,967,1},{4098,965,1},{4100,960,1}, {4098,958,1},{4093,957,1},{4092,950,1},{4092,957,1},{4090,958,1},{4092,962,1}, {4092,963,1},{4088,962,1},{4088,965,1},{4085,967,1},{4083,972,1},{4083,968,1}, {4080,968,1},{4080,967,1},{4078,967,1},{4075,972,1},{4070,972,1},{4068,975,1}, {4060,975,1},{4053,983,1},{4040,977,1},{4035,970,1},{4025,962,1},{4020,962,1}, {4015,965,1},{4008,973,1},{4007,973,1},{3997,968,1},{3995,968,1},{3993,970,1}, {3993,972,1},{3992,972,1},{3990,968,1},{3972,968,1},{3967,965,1},{3957,965,1}, {3950,963,1},{3945,965,1},{3933,960,1},{3930,963,1},{3928,960,1},{3925,958,1}, {3915,957,1},{3912,952,1},{3910,952,1},{3913,950,1},{3913,940,1},{3915,940,1}, {3920,932,1},{3923,923,1},{3920,917,1},{3918,917,1},{3920,912,1},{3925,908,1}, {3925,905,1},{3927,902,1},{3922,903,1},{3922,908,1},{3917,903,1},{3913,902,1}, {3908,902,1},{3905,905,1},{3898,902,1},{3898,900,1},{3888,885,1},{3890,880,1}, {3888,880,1},{3893,872,1},{3888,865,1},{3887,865,1},{3887,863,1},{3890,863,1}, {3890,860,1},{3895,862,1},{3897,860,1},{3895,858,1},{3905,857,1},{3907,850,1}, {3908,852,1},{3908,848,1},{3905,847,1},{3897,843,1},{3897,840,1},{3903,837,1}, {3908,835,1},{3912,837,1},{3910,838,1},{3910,843,1},{3907,847,1},{3908,848,1}, {3912,847,1},{3912,843,1},{3917,843,1},{3918,842,1},{3917,840,1},{3920,840,1}, {3922,837,1},{3923,837,1},{3927,842,1},{3930,843,1},{3933,842,1},{3933,840,1}, {3937,837,1},{3943,840,1},{3947,838,1},{3952,843,1},{3960,847,1},{3963,845,1}, {3975,845,1},{3975,847,1},{3972,848,1},{3970,855,1},{3970,857,1},{3970,855,1}, {3972,850,1},{3975,853,1},{3978,855,1},{3975,852,1},{3980,855,1},{3987,855,1}, {3990,852,1},{3990,845,1},{3988,843,1},{3990,847,1},{3985,843,1},{3988,843,1}, {3990,840,1},{3997,838,1},{4002,842,1},{4003,838,1},{4005,845,1},{4008,848,1}, {4017,845,1},{4028,848,1},{4032,847,1},{4035,838,1},{4042,840,1},{4050,837,1}, {4052,833,1},{4058,830,1},{4057,822,1},{4057,820,1},{4058,820,1},{4060,822,1}, {4062,818,1},{4058,817,1},{4057,817,1},{4062,815,1},{4063,818,1},{4068,820,1}, {4073,813,1},{4088,822,1},{4093,818,1},{4097,820,1},{4095,823,1},{4090,823,1}, {4085,828,1},{4082,847,1},{4085,860,1},{4088,863,1},{4092,870,1},{4092,878,1}, {4097,885,1},{4102,887,1},{4103,892,1},{4112,902,1},{4113,910,1},{4115,913,1}, {4115,915,1},{4118,917,1},{4120,915,1},{4123,917,1},{4127,923,1},{4125,925,1}, {4050,2565,129},{4047,2570,1},{4042,2570,1},{4040,2560,1},{4040,2555,1}, {4048,2545,1},{4052,2555,1},{4050,2565,1},{4000,2545,129},{3998,2545,1}, {3995,2540,1},{3992,2538,1},{3992,2535,1},{3990,2537,1},{3988,2533,1},{3987,2535,1}, {3985,2533,1},{3982,2537,1},{3978,2535,1},{3980,2530,1},{3985,2527,1},{3985,2523,1}, {3988,2528,1},{3992,2527,1},{3992,2523,1},{3988,2520,1},{3988,2522,1},{3985,2518,1}, {3985,2520,1},{3980,2522,1},{3982,2513,1},{3985,2517,1},{3983,2513,1},{3985,2512,1}, {3983,2505,1},{3985,2507,1},{3988,2505,1},{3992,2507,1},{3993,2505,1},{3998,2503,1}, {4000,2513,1},{4000,2515,1},{3998,2527,1},{3995,2528,1},{3997,2532,1},{3997,2535,1}, {3998,2533,1},{4002,2537,1},{4003,2545,1},{4002,2543,1},{4000,2545,1},{3532,2632,129}, {3527,2627,1},{3520,2627,1},{3518,2632,1},{3517,2628,1},{3508,2627,1},{3503,2623,1}, {3502,2620,1},{3500,2612,1},{3502,2608,1},{3502,2600,1},{3503,2598,1},{3500,2580,1}, {3502,2570,1},{3502,2560,1},{3498,2550,1},{3500,2538,1},{3495,2520,1},{3493,2497,1}, {3493,2483,1},{3492,2480,1},{3493,2473,1},{3502,2477,1},{3508,2472,1},{3510,2457,1}, {3515,2453,1},{3515,2445,1},{3518,2438,1},{3517,2428,1},{3520,2420,1},{3518,2405,1}, {3523,2400,1},{3522,2392,1},{3525,2382,1},{3523,2378,1},{3523,2360,1},{3525,2358,1}, {3528,2353,1},{3530,2352,1},{3532,2355,1},{3538,2353,1},{3543,2357,1},{3547,2355,1}, {3548,2358,1},{3550,2357,1},{3562,2360,1},{3552,2362,1},{3550,2365,1},{3552,2373,1}, {3557,2373,1},{3560,2372,1},{3562,2372,1},{3565,2370,1},{3568,2373,1},{3567,2378,1}, {3565,2377,1},{3555,2378,1},{3552,2385,1},{3552,2405,1},{3555,2405,1},{3555,2410,1}, {3558,2408,1},{3560,2413,1},{3558,2418,1},{3555,2420,1},{3552,2418,1},{3550,2417,1}, {3552,2408,1},{3550,2407,1},{3545,2420,1},{3547,2425,1},{3545,2427,1},{3537,2427,1}, {3535,2432,1},{3538,2460,1},{3542,2465,1},{3543,2472,1},{3540,2483,1},{3542,2488,1}, {3540,2492,1},{3540,2497,1},{3542,2498,1},{3542,2502,1},{3540,2505,1},{3538,2505,1}, {3535,2507,1},{3535,2518,1},{3533,2523,1},{3533,2538,1},{3528,2545,1},{3533,2565,1}, {3533,2577,1},{3530,2573,1},{3527,2572,1},{3527,2573,1},{3528,2575,1},{3525,2575,1}, {3525,2573,1},{3517,2572,1},{3513,2573,1},{3510,2580,1},{3512,2583,1},{3515,2585,1}, {3517,2590,1},{3518,2590,1},{3520,2598,1},{3523,2603,1},{3522,2612,1},{3520,2612,1}, {3520,2617,1},{3525,2623,1},{3527,2623,1},{3528,2628,1},{3530,2630,1},{3532,2632,1}, {5315,14183,129},{5307,14192,1},{5302,14193,1},{5287,14185,1},{5278,14187,1}, {5273,14183,1},{5270,14185,1},{5265,14185,1},{5260,14180,1},{5258,14183,1}, {5245,14177,1},{5238,14167,1},{5232,14163,1},{5227,14167,1},{5222,14165,1}, {5217,14170,1},{5208,14163,1},{5195,14168,1},{5188,14163,1},{5183,14177,1}, {5178,14182,1},{5173,14183,1},{5172,14180,1},{5175,14170,1},{5173,14168,1}, {5168,14178,1},{5160,14188,1},{5162,14193,1},{5158,14195,1},{5157,14193,1}, {5147,14208,1},{5143,14210,1},{5142,14208,1},{5140,14208,1},{5132,14218,1}, {5127,14217,1},{5112,14227,1},{5097,14222,1},{5088,14213,1},{5085,14213,1}, {5082,14210,1},{5077,14210,1},{5053,14205,1},{5035,14215,1},{5028,14213,1}, {5025,14215,1},{5008,14218,1},{4988,14213,1},{4978,14217,1},{4955,14213,1}, {4933,14207,1},{4920,14208,1},{4913,14203,1},{4905,14203,1},{4895,14200,1}, {4892,14197,1},{4885,14197,1},{4878,14187,1},{4875,14185,1},{4862,14192,1}, {4840,14208,1},{4832,14213,1},{4797,14218,1},{4792,14217,1},{4785,14208,1}, {4777,14207,1},{4770,14200,1},{4760,14197,1},{4745,14195,1},{4735,14198,1}, {4728,14197,1},{4723,14203,1},{4708,14207,1},{4698,14202,1},{4658,14182,1}, {4643,14183,1},{4628,14190,1},{4608,14193,1},{4603,14193,1},{4588,14208,1}, {4600,14212,1},{4603,14220,1},{4608,14220,1},{4617,14225,1},{4628,14227,1}, {4658,14242,1},{4667,14250,1},{4670,14258,1},{4672,14268,1},{4675,14272,1}, {4670,14273,1},{4660,14278,1},{4660,14293,1},{4660,14298,1},{4658,14307,1}, {4658,14317,1},{4657,14323,1},{4652,14330,1},{4655,14328,1},{4655,14338,1}, {4650,14338,1},{4648,14333,1},{4645,14335,1},{4638,14335,1},{4620,14343,1}, {4612,14343,1},{4608,14340,1},{4602,14343,1},{4610,14347,1},{4618,14348,1}, {4622,14352,1},{4628,14353,1},{4630,14357,1},{4635,14358,1},{4637,14362,1}, {4640,14357,1},{4642,14358,1},{4658,14352,1},{4672,14352,1},{4683,14347,1}, {4683,14343,1},{4678,14342,1},{4678,14337,1},{4683,14318,1},{4680,14317,1}, {4678,14318,1},{4673,14337,1},{4670,14340,1},{4668,14337,1},{4672,14323,1}, {4670,14317,1},{4677,14313,1},{4680,14308,1},{4683,14310,1},{4683,14317,1}, {4685,14317,1},{4687,14315,1},{4685,14313,1},{4687,14310,1},{4688,14313,1}, {4707,14303,1},{4717,14303,1},{4725,14302,1},{4738,14287,1},{4743,14278,1}, {4743,14272,1},{4743,14275,1},{4760,14262,1},{4768,14257,1},{4778,14253,1}, {4790,14253,1},{4797,14255,1},{4800,14253,1},{4855,14278,1},{4892,14298,1}, {4903,14297,1},{4913,14302,1},{4922,14313,1},{4927,14327,1},{4930,14347,1}, {4930,14367,1},{4932,14360,1},{4932,14332,1},{4933,14333,1},{4935,14327,1}, {4938,14325,1},{4940,14338,1},{4938,14343,1},{4933,14350,1},{4933,14372,1}, {4932,14372,1},{4930,14368,1},{4927,14397,1},{4923,14410,1},{4913,14425,1}, {4907,14428,1},{4902,14435,1},{4898,14445,1},{4892,14453,1},{4878,14463,1}, {4865,14468,1},{4863,14475,1},{4867,14472,1},{4872,14468,1},{4875,14468,1}, {4878,14470,1},{4887,14468,1},{4903,14440,1},{4923,14428,1},{4942,14422,1}, {4952,14423,1},{4965,14413,1},{4977,14412,1},{4993,14402,1},{5002,14400,1}, {5028,14380,1},{5057,14370,1},{5080,14367,1},{5095,14360,1},{5125,14353,1}, {5130,14350,1},{5123,14352,1},{5122,14352,1},{5122,14348,1},{5128,14347,1}, {5135,14338,1},{5137,14343,1},{5133,14347,1},{5135,14347,1},{5148,14345,1}, {5157,14338,1},{5163,14338,1},{5163,14337,1},{5163,14335,1},{5162,14333,1}, {5150,14335,1},{5152,14330,1},{5150,14323,1},{5153,14322,1},{5167,14325,1}, {5172,14328,1},{5170,14332,1},{5173,14332,1},{5188,14323,1},{5185,14320,1}, {5187,14317,1},{5188,14317,1},{5192,14317,1},{5192,14313,1},{5197,14312,1}, {5197,14315,1},{5198,14317,1},{5203,14313,1},{5210,14313,1},{5210,14310,1}, {5215,14312,1},{5212,14315,1},{5232,14318,1},{5235,14317,1},{5232,14313,1}, {5233,14312,1},{5235,14312,1},{5233,14312,1},{5238,14315,1},{5248,14320,1}, {5252,14323,1},{5260,14325,1},{5258,14330,1},{5247,14323,1},{5247,14327,1}, {5245,14327,1},{5245,14323,1},{5245,14322,1},{5242,14320,1},{5233,14320,1}, {5247,14330,1},{5272,14333,1},{5280,14332,1},{5285,14335,1},{5332,14323,1}, {5340,14318,1},{5338,14312,1},{5338,14308,1},{5342,14312,1},{5345,14307,1}, {5348,14313,1},{5355,14310,1},{5353,14305,1},{5357,14298,1},{5358,14302,1}, {5360,14307,1},{5362,14305,1},{5362,14298,1},{5365,14303,1},{5367,14302,1}, {5367,14297,1},{5368,14298,1},{5370,14295,1},{5373,14295,1},{5377,14290,1}, {5382,14288,1},{5383,14293,1},{5380,14295,1},{5370,14300,1},{5387,14293,1}, {5387,14285,1},{5390,14287,1},{5390,14290,1},{5398,14293,1},{5407,14300,1}, {5413,14302,1},{5417,14295,1},{5425,14288,1},{5430,14282,1},{5442,14273,1}, {5442,14270,1},{5440,14268,1},{5435,14268,1},{5432,14262,1},{5428,14265,1}, {5427,14263,1},{5428,14258,1},{5427,14258,1},{5423,14258,1},{5423,14257,1}, {5423,14253,1},{5428,14252,1},{5432,14260,1},{5427,14243,1},{5427,14238,1}, {5430,14228,1},{5423,14240,1},{5413,14248,1},{5393,14272,1},{5387,14272,1}, {5368,14260,1},{5372,14268,1},{5383,14273,1},{5383,14277,1},{5370,14280,1}, {5363,14273,1},{5363,14268,1},{5368,14263,1},{5367,14260,1},{5367,14252,1}, {5365,14250,1},{5353,14252,1},{5357,14257,1},{5357,14260,1},{5355,14267,1}, {5353,14268,1},{5352,14268,1},{5352,14263,1},{5350,14258,1},{5338,14248,1}, {5337,14242,1},{5338,14238,1},{5335,14235,1},{5338,14225,1},{5347,14223,1}, {5348,14225,1},{5352,14223,1},{5353,14225,1},{5348,14207,1},{5338,14178,1}, {5337,14177,1},{5333,14180,1},{5330,14182,1},{5327,14180,1},{5320,14183,1}, {5315,14183,1},{4552,14880,129},{4547,14887,1},{4542,14880,1},{4537,14885,1}, {4533,14883,1},{4532,14875,1},{4532,14858,1},{4525,14847,1},{4522,14828,1}, {4508,14803,1},{4500,14795,1},{4497,14785,1},{4497,14780,1},{4493,14777,1}, {4497,14770,1},{4497,14762,1},{4492,14758,1},{4490,14762,1},{4480,14753,1}, {4467,14728,1},{4458,14723,1},{4455,14720,1},{4453,14708,1},{4450,14702,1}, {4440,14695,1},{4440,14688,1},{4440,14685,1},{4445,14683,1},{4452,14692,1}, {4458,14692,1},{4460,14693,1},{4455,14693,1},{4455,14698,1},{4457,14700,1}, {4462,14698,1},{4462,14707,1},{4462,14710,1},{4467,14715,1},{4472,14717,1}, {4475,14710,1},{4478,14708,1},{4480,14712,1},{4477,14717,1},{4478,14720,1}, {4485,14725,1},{4488,14733,1},{4497,14748,1},{4508,14750,1},{4508,14757,1}, {4505,14758,1},{4508,14767,1},{4518,14775,1},{4522,14788,1},{4535,14785,1}, {4542,14792,1},{4542,14797,1},{4537,14797,1},{4532,14800,1},{4527,14800,1}, {4525,14805,1},{4527,14832,1},{4535,14843,1},{4540,14847,1},{4545,14855,1}, {4547,14860,1},{4550,14863,1},{4552,14872,1},{4552,14880,1},{4560,14947,129}, {4558,14943,1},{4560,14957,1},{4563,14958,1},{4560,14960,1},{4563,14967,1}, {4577,14987,1},{4578,14992,1},{4583,14998,1},{4583,15003,1},{4590,15017,1}, {4593,15020,1},{4602,15023,1},{4622,15057,1},{4620,15050,1},{4622,15043,1}, {4622,15035,1},{4615,15022,1},{4610,15018,1},{4608,15013,1},{4608,15008,1}, {4600,14993,1},{4590,14985,1},{4588,14982,1},{4587,14978,1},{4585,14967,1}, {4580,14963,1},{4578,14960,1},{4575,14958,1},{4570,14955,1},{4568,14950,1}, {4560,14947,1},{4713,15220,129},{4717,15223,1},{4708,15212,1},{4698,15203,1}, {4693,15193,1},{4687,15187,1},{4687,15175,1},{4685,15170,1},{4680,15172,1}, {4677,15177,1},{4678,15183,1},{4683,15190,1},{4687,15193,1},{4688,15202,1}, {4697,15208,1},{4700,15215,1},{4707,15217,1},{4715,15230,1},{4717,15227,1}, {4715,15223,1},{4712,15220,1},{5005,15523,129},{5005,15538,1},{5003,15538,1}, {5000,15537,1},{5000,15538,1},{5002,15542,1},{5005,15543,1},{5012,15548,1}, {5018,15560,1},{5018,15578,1},{5023,15580,1},{5025,15588,1},{5037,15598,1}, {5042,15603,1},{5048,15605,1},{5048,15607,1},{5048,15612,1},{5052,15615,1}, {5057,15613,1},{5060,15617,1},{5063,15612,1},{5075,15612,1},{5078,15607,1}, {5077,15602,1},{5068,15588,1},{5058,15585,1},{5053,15578,1},{5045,15577,1}, {5038,15567,1},{5037,15543,1},{5035,15540,1},{5028,15533,1},{5030,15525,1}, {5028,15520,1},{5025,15518,1},{5022,15525,1},{5013,15525,1},{5008,15522,1}, {5005,15523,1},{5533,16623,129},{5532,16617,1},{5533,16610,1},{5537,16595,1}, {5535,16592,1},{5532,16590,1},{5528,16573,1},{5525,16590,1},{5522,16598,1}, {5518,16597,1},{5515,16605,1},{5510,16608,1},{5507,16607,1},{5498,16617,1}, {5493,16620,1},{5490,16628,1},{5482,16638,1},{5483,16640,1},{5482,16650,1}, {5478,16648,1},{5467,16667,1},{5470,16665,1},{5473,16667,1},{5480,16663,1}, {5485,16665,1},{5490,16658,1},{5495,16647,1},{5500,16638,1},{5508,16633,1}, {5515,16625,1},{5525,16622,1},{5530,16628,1},{5533,16625,1},{5857,16338,129}, {5847,16345,1},{5858,16358,1},{5860,16367,1},{5868,16382,1},{5872,16392,1}, {5873,16395,1},{5877,16408,1},{5882,16415,1},{5882,16427,1},{5883,16430,1}, {5885,16437,1},{5887,16442,1},{5887,16460,1},{5890,16467,1},{5898,16467,1}, {5903,16472,1},{5910,16463,1},{5918,16462,1},{5918,16458,1},{5923,16457,1}, {5920,16443,1},{5913,16432,1},{5905,16403,1},{5903,16392,1},{5902,16375,1}, {5900,16368,1},{5900,16367,1},{5902,16375,1},{5900,16385,1},{5902,16388,1}, {5900,16390,1},{5892,16377,1},{5875,16370,1},{5863,16357,1},{5858,16348,1}, {5857,16338,1},{7080,17878,129},{7087,17905,1},{7088,17927,1},{7087,17945,1}, {7090,17968,1},{7095,17980,1},{7100,17998,1},{7100,47544,1},{7097,47554,1}, {7095,47571,1},{7092,47588,1},{7092,47603,1},{7090,47604,1},{7097,47649,1}, {7100,47684,1},{7103,47714,1},{7103,47743,1},{7108,47754,1},{7112,47773,1}, {7117,47786,1},{7122,47791,1},{7128,47786,1},{7130,47764,1},{7137,47751,1}, {7140,47733,1},{7145,47734,1},{7148,47723,1},{7148,47711,1},{7152,47703,1}, {7150,47709,1},{7157,47679,1},{7158,47639,1},{7160,47633,1},{7158,47618,1}, {7155,47606,1},{7158,47574,1},{7157,47566,1},{7158,47563,1},{7157,47553,1}, {7155,47546,1},{7153,47549,1},{7153,17993,1},{7152,17985,1},{7148,17987,1}, {7148,17977,1},{7147,17977,1},{7145,17972,1},{7143,17953,1},{7140,17947,1}, {7130,17920,1},{7122,17887,1},{7118,17885,1},{7108,17865,1},{7103,17862,1}, {7090,17875,1},{7080,17878,1},{6977,16942,129},{6982,16945,1},{6987,16940,1}, {6990,16922,1},{6993,16887,1},{6997,16877,1},{7002,16827,1},{7000,16815,1}, {6998,16813,1},{6993,16795,1},{6983,16775,1},{6980,16780,1},{6977,16805,1}, {6970,16815,1},{6960,16865,1},{6957,16887,1},{6957,16920,1},{6965,16930,1}, {6975,16927,1},{6977,16930,1},{6977,16942,1},{7425,13542,129},{7425,13535,1}, {7415,13545,1},{7415,13557,1},{7410,13567,1},{7403,13573,1},{7393,13603,1}, {7390,13607,1},{7387,13615,1},{7390,13623,1},{7398,13627,1},{7408,13607,1}, {7423,13557,1},{7425,13542,1},{7388,14058,129},{7390,14048,1},{7393,14030,1}, {7403,14012,1},{7408,14007,1},{7418,14008,1},{7423,14022,1},{7427,14032,1}, {7428,14057,1},{7428,14080,1},{7425,14098,1},{7422,14108,1},{7417,14112,1}, {7413,14107,1},{7402,14105,1},{7397,14097,1},{7397,14082,1},{7390,14045,1}, {7388,14115,129},{7387,14108,1},{7382,14092,1},{7355,14060,1},{7345,14030,1}, {7343,13970,1},{7340,13965,1},{7337,13968,1},{7335,13973,1},{7335,14002,1}, {7342,14030,1},{7345,14063,1},{7345,14082,1},{7338,14113,1},{7337,14138,1}, {7330,14163,1},{7327,14222,1},{7323,14238,1},{7325,14265,1},{7320,14318,1}, {7323,14345,1},{7323,14355,1},{7332,14348,1},{7340,14343,1},{7345,14353,1}, {7352,14343,1},{7363,14318,1},{7367,14302,1},{7383,14252,1},{7387,14225,1}, {7392,14203,1},{7392,14172,1},{7387,14135,1},{7387,14123,1},{7388,14117,1}, {7558,14650,129},{7558,14642,1},{7557,14637,1},{7550,14633,1},{7547,14640,1}, {7545,14630,1},{7542,14625,1},{7540,14627,1},{7538,14617,1},{7528,14617,1}, {7522,14608,1},{7517,14632,1},{7510,14673,1},{7500,14713,1},{7497,14732,1}, {7497,14755,1},{7495,14770,1},{7492,14773,1},{7488,14787,1},{7478,14825,1}, {7477,14868,1},{7475,14917,1},{7477,14933,1},{7477,14970,1},{7478,14975,1}, {7483,15005,1},{7488,15047,1},{7488,15060,1},{7493,15068,1},{7500,15065,1}, {7505,15077,1},{7512,15085,1},{7513,15095,1},{7517,15083,1},{7515,15068,1}, {7513,15067,1},{7512,15063,1},{7508,15050,1},{7510,15047,1},{7513,15055,1}, {7513,15040,1},{7517,15028,1},{7515,15015,1},{7518,15022,1},{7522,15015,1}, {7528,14933,1},{7527,14908,1},{7522,14888,1},{7522,14858,1},{7528,14845,1}, {7538,14857,1},{7542,14838,1},{7540,14815,1},{7542,14782,1},{7543,14760,1}, {7543,14735,1},{7542,14738,1},{7538,14743,1},{7538,14737,1},{7540,14737,1}, {7538,14722,1},{7537,14717,1},{7535,14718,1},{7537,14732,1},{7535,14735,1}, {7533,14713,1},{7533,14697,1},{7537,14677,1},{7542,14663,1},{7548,14668,1}, {7550,14677,1},{7558,14650,1},{7480,13983,129},{7483,14030,1},{7490,14092,1}, {7493,14152,1},{7500,14192,1},{7500,14223,1},{7497,14223,1},{7492,14235,1}, {7497,14207,1},{7495,14198,1},{7493,14197,1},{7488,14207,1},{7482,14243,1}, {7482,14255,1},{7483,14270,1},{7485,14272,1},{7485,14262,1},{7490,14270,1}, {7487,14282,1},{7488,14293,1},{7490,14348,1},{7493,14370,1},{7498,14367,1}, {7502,14358,1},{7500,14342,1},{7502,14332,1},{7505,14310,1},{7507,14285,1}, {7510,14262,1},{7517,14255,1},{7522,14242,1},{7525,14242,1},{7538,14215,1}, {7547,14218,1},{7553,14207,1},{7558,14213,1},{7562,14200,1},{7563,14222,1}, {7565,14202,1},{7567,14203,1},{7565,14223,1},{7567,14242,1},{7568,14240,1}, {7572,14230,1},{7573,14267,1},{7572,14270,1},{7572,14293,1},{7567,14303,1}, {7560,14302,1},{7555,14273,1},{7545,14250,1},{7542,14253,1},{7537,14250,1}, {7530,14265,1},{7523,14272,1},{7522,14283,1},{7513,14290,1},{7513,14300,1}, {7507,14337,1},{7508,14355,1},{7507,14375,1},{7503,14397,1},{7505,14418,1}, {7505,14440,1},{7512,14452,1},{7517,14470,1},{7525,14473,1},{7527,14493,1}, {7530,14488,1},{7533,14467,1},{7540,14468,1},{7543,14475,1},{7552,14520,1}, {7552,14540,1},{7560,14520,1},{7563,14483,1},{7568,14472,1},{7572,14448,1}, {7583,14390,1},{7582,14378,1},{7583,14378,1},{7587,14363,1},{7583,14338,1}, {7580,14337,1},{7582,14325,1},{7580,14308,1},{7585,14257,1},{7588,14247,1}, {7593,14237,1},{7612,14170,1},{7613,14155,1},{7618,14135,1},{7617,14130,1}, {7615,14138,1},{7605,14150,1},{7600,14162,1},{7605,14118,1},{7605,14100,1}, {7600,14092,1},{7573,14087,1},{7565,14107,1},{7560,14092,1},{7563,14077,1}, {7562,14068,1},{7565,14043,1},{7572,14047,1},{7575,14053,1},{7580,14050,1}, {7582,14043,1},{7582,14027,1},{7580,14015,1},{7582,14013,1},{7583,13997,1}, {7588,13978,1},{7593,13983,1},{7592,13990,1},{7597,13983,1},{7598,13965,1}, {7603,13947,1},{7607,13918,1},{7612,13902,1},{7620,13897,1},{7622,13887,1}, {7623,13905,1},{7622,13873,1},{7620,13857,1},{7617,13850,1},{7605,13843,1}, {7613,13833,1},{7615,13837,1},{7612,13817,1},{7605,13797,1},{7608,13810,1}, {7607,13810,1},{7602,13800,1},{7600,13772,1},{7595,13742,1},{7588,13743,1}, {7580,13762,1},{7578,13772,1},{7575,13775,1},{7578,13752,1},{7577,13747,1}, {7578,13730,1},{7578,13718,1},{7572,13707,1},{7568,13715,1},{7565,13715,1}, {7560,13697,1},{7558,13698,1},{7557,13708,1},{7562,13697,1},{7565,13713,1}, {7558,13728,1},{7558,13718,1},{7553,13718,1},{7547,13730,1},{7547,13715,1}, {7542,13713,1},{7540,13717,1},{7542,13725,1},{7542,13740,1},{7538,13743,1}, {7535,13738,1},{7533,13722,1},{7535,13710,1},{7538,13705,1},{7538,13693,1}, {7535,13687,1},{7530,13693,1},{7527,13692,1},{7513,13713,1},{7503,13748,1}, {7502,13762,1},{7502,13765,1},{7498,13778,1},{7485,13788,1},{7477,13817,1}, {7472,13875,1},{7465,13907,1},{7465,13922,1},{7468,13935,1},{7477,13950,1}, {7483,13955,1},{7488,13965,1},{7485,13957,1},{7487,13948,1},{7488,13947,1}, {7493,13947,1},{7498,13965,1},{7497,13973,1},{7497,13985,1},{7492,13987,1}, {7490,13997,1},{7482,14007,1},{7537,13545,129},{7537,13550,1},{7537,13582,1}, {7540,13593,1},{7543,13603,1},{7550,13597,1},{7562,13618,1},{7570,13587,1}, {7587,13570,1},{7567,13553,1},{7562,13558,1},{7557,13558,1},{7545,13545,1}, {7538,13545,1},{7410,11282,129},{7420,11297,1},{7422,11317,1},{7428,11328,1}, {7430,11323,1},{7435,11337,1},{7438,11338,1},{7438,11343,1},{7445,11340,1}, {7448,11328,1},{7450,11310,1},{7450,11272,1},{7455,11213,1},{7453,11203,1}, {7447,11197,1},{7445,11200,1},{7438,11198,1},{7435,11188,1},{7437,11170,1}, {7435,11148,1},{7430,11147,1},{7425,11158,1},{7422,11197,1},{7413,11217,1}, {7413,11232,1},{7410,11258,1},{7410,11282,1},{7795,9947,129},{7793,9952,1}, {7797,9965,1},{7795,9988,1},{7795,10002,1},{7803,10048,1},{7807,10062,1}, {7807,10072,1},{7810,10092,1},{7817,10113,1},{7820,10128,1},{7820,10200,1}, {7818,10203,1},{7820,10208,1},{7822,10255,1},{7822,10267,1},{7817,10268,1}, {7818,10285,1},{7822,10287,1},{7825,10300,1},{7823,10317,1},{7827,10360,1}, {7827,10383,1},{7832,10418,1},{7835,10465,1},{7833,10477,1},{7850,10537,1}, {7858,10540,1},{7860,10532,1},{7865,10533,1},{7882,10517,1},{7885,10492,1}, {7883,10472,1},{7880,10473,1},{7877,10458,1},{7883,10465,1},{7885,10437,1}, {7885,10448,1},{7888,10452,1},{7897,10443,1},{7898,10430,1},{7900,10407,1}, {7903,10408,1},{7907,10398,1},{7912,10402,1},{7913,10395,1},{7913,10382,1}, {7915,10383,1},{7913,10363,1},{7917,10365,1},{7915,10353,1},{7910,10345,1}, {7910,10330,1},{7908,10330,1},{7905,10312,1},{7905,10292,1},{7888,10267,1}, {7883,10253,1},{7882,10238,1},{7903,10270,1},{7907,10267,1},{7913,10280,1}, {7915,10273,1},{7922,10283,1},{7927,10290,1},{7928,10297,1},{7928,10308,1}, {7932,10317,1},{7933,10312,1},{7933,10297,1},{7938,10290,1},{7943,10237,1}, {7942,10222,1},{7935,10213,1},{7923,10225,1},{7927,10195,1},{7930,10197,1}, {7937,10182,1},{7935,10155,1},{7925,10153,1},{7923,10128,1},{7920,10120,1}, {7917,10112,1},{7913,10127,1},{7913,10110,1},{7912,10103,1},{7907,10098,1}, {7898,10162,1},{7898,10150,1},{7903,10108,1},{7898,10090,1},{7888,10078,1}, {7880,10083,1},{7878,10110,1},{7875,10117,1},{7880,10060,1},{7875,10038,1}, {7865,10025,1},{7857,10027,1},{7843,10008,1},{7842,10000,1},{7833,10005,1}, {7825,9973,1},{7817,9952,1},{7808,9943,1},{7803,9927,1},{7798,9942,1},{7795,9937,1}, {7795,9945,1},{7925,9947,129},{7930,9967,1},{7937,9975,1},{7947,9968,1}, {7952,9978,1},{7957,9972,1},{7968,9988,1},{7973,9982,1},{7975,9997,1},{7977,10008,1}, {7980,10000,1},{7982,10002,1},{7993,9968,1},{7993,9950,1},{7997,9955,1}, {7998,9937,1},{8002,9937,1},{8002,9917,1},{8003,9922,1},{8003,9877,1},{8003,9865,1}, {8005,9853,1},{8002,9843,1},{7997,9858,1},{7992,9843,1},{7987,9838,1},{7987,9828,1}, {7990,9805,1},{7990,9790,1},{7987,9788,1},{7985,9792,1},{7980,9772,1},{7977,9772,1}, {7970,9723,1},{7972,9722,1},{7978,9762,1},{7980,9752,1},{7982,9755,1},{7983,9765,1}, {7985,9758,1},{7988,9777,1},{7998,9785,1},{8002,9798,1},{8005,9808,1},{8008,9793,1}, {8015,9770,1},{8017,9753,1},{8017,9715,1},{8013,9692,1},{8012,9673,1},{8013,9660,1}, {8010,9650,1},{8010,9637,1},{8012,9628,1},{8010,9623,1},{8008,9618,1},{8008,9610,1}, {8012,9607,1},{8010,9588,1},{8012,9558,1},{8008,9540,1},{8003,9535,1},{8002,9527,1}, {8005,9510,1},{8010,9500,1},{8010,9493,1},{8007,9493,1},{8003,9480,1},{8002,9477,1}, {7997,9447,1},{7997,9433,1},{7993,9438,1},{7990,9423,1},{7988,9433,1},{7987,9435,1}, {7985,9450,1},{7982,9468,1},{7977,9408,1},{7968,9380,1},{7965,9378,1},{7962,9365,1}, {7955,9328,1},{7955,9308,1},{7957,9292,1},{7955,9285,1},{7953,9312,1},{7952,9302,1}, {7952,9307,1},{7952,9328,1},{7950,9330,1},{7947,9312,1},{7943,9320,1},{7948,9352,1}, {7950,9345,1},{7952,9347,1},{7955,9367,1},{7960,9380,1},{7960,9388,1},{7953,9368,1}, {7948,9398,1},{7945,9372,1},{7943,9395,1},{7943,9407,1},{7947,9407,1},{7947,9433,1}, {7925,9432,1},{7920,9463,1},{7913,9462,1},{7907,9483,1},{7907,9498,1},{7905,9498,1}, {7903,9505,1},{7907,9528,1},{7910,9550,1},{7907,9565,1},{7900,9570,1},{7900,9603,1}, {7902,9627,1},{7902,9637,1},{7898,9630,1},{7900,9675,1},{7897,9687,1},{7895,9685,1}, {7887,9722,1},{7885,9725,1},{7883,9760,1},{7883,9742,1},{7882,9742,1},{7882,9775,1}, {7880,9780,1},{7882,9808,1},{7880,9808,1},{7880,9825,1},{7878,9830,1},{7878,9858,1}, {7880,9858,1},{7880,9900,1},{7883,9922,1},{7882,9943,1},{7883,9952,1},{7893,9992,1}, {7897,9995,1},{7902,9987,1},{7908,9985,1},{7913,9950,1},{7917,9960,1},{7928,9905,1}, {7930,9905,1},{7930,9915,1},{7928,9930,1},{7925,9945,1},{8128,9560,129}, {8127,9510,1},{8123,9507,1},{8122,9555,1},{8122,9513,1},{8112,9475,1},{8110,9450,1}, {8110,9435,1},{8107,9407,1},{8105,9368,1},{8103,9365,1},{8103,9347,1},{8100,9307,1}, {8092,9315,1},{8088,9270,1},{8085,9273,1},{8077,9248,1},{8075,9253,1},{8075,9268,1}, {8077,9277,1},{8077,9287,1},{8077,9312,1},{8080,9333,1},{8065,9283,1},{8052,9278,1}, {8050,9230,1},{8045,9188,1},{8042,9208,1},{8040,9252,1},{8038,9262,1},{8038,9230,1}, {8040,9213,1},{8040,9207,1},{8038,9212,1},{8038,9168,1},{8037,9168,1},{8035,9153,1}, {8032,9142,1},{8030,9147,1},{8032,9163,1},{8028,9157,1},{8030,9245,1},{8032,9285,1}, {8030,9325,1},{8027,9328,1},{8030,9282,1},{8028,9240,1},{8028,9210,1},{8023,9225,1}, {8017,9288,1},{8018,9233,1},{8020,9220,1},{8017,9207,1},{8015,9262,1},{8008,9308,1}, {8003,9330,1},{8002,9357,1},{8000,9368,1},{8007,9438,1},{8013,9452,1},{8012,9468,1}, {8013,9482,1},{8013,9507,1},{8017,9543,1},{8020,9557,1},{8022,9597,1},{8023,9720,1}, {8030,9742,1},{8033,9735,1},{8035,9720,1},{8043,9720,1},{8052,9702,1},{8058,9705,1}, {8065,9720,1},{8067,9713,1},{8065,9735,1},{8067,9758,1},{8067,9773,1},{8068,9777,1}, {8070,9797,1},{8072,9797,1},{8073,9775,1},{8077,9788,1},{8080,9775,1},{8082,9778,1}, {8083,9752,1},{8083,9742,1},{8085,9742,1},{8090,9695,1},{8093,9690,1},{8095,9675,1}, {8098,9663,1},{8100,9673,1},{8103,9653,1},{8108,9655,1},{8117,9617,1},{8120,9615,1}, {8120,9597,1},{8123,9602,1},{8128,9578,1},{8128,9560,1},{7233,7687,129}, {7235,7688,1},{7247,7723,1},{7255,7733,1},{7263,7762,1},{7258,7818,1},{7252,7835,1}, {7248,7838,1},{7242,7818,1},{7237,7793,1},{7230,7778,1},{7228,7757,1},{7228,7722,1}, {7227,7710,1},{7230,7688,1},{7235,7687,1},{7303,6987,129},{7313,6992,1}, {7318,7002,1},{7323,7007,1},{7340,6997,1},{7345,7020,1},{7350,7048,1},{7347,7052,1}, {7352,7088,1},{7348,7108,1},{7345,7125,1},{7343,7125,1},{7343,7110,1},{7340,7115,1}, {7335,7108,1},{7330,7110,1},{7328,7107,1},{7328,7100,1},{7327,7098,1},{7327,7108,1}, {7327,7125,1},{7325,7128,1},{7327,7128,1},{7328,7128,1},{7332,7140,1},{7335,7143,1}, {7327,7162,1},{7318,7168,1},{7317,7135,1},{7313,7127,1},{7312,7108,1},{7313,7090,1}, {7307,7053,1},{7303,7042,1},{7303,7022,1},{7310,7010,1},{7305,7000,1},{7303,7010,1}, {7302,7010,1},{7303,6988,1},{7305,6987,1},{6908,4823,129},{6925,4828,1}, {6935,4842,1},{6945,4867,1},{6950,4892,1},{6952,4902,1},{6950,4932,1},{6928,5012,1}, {6915,5032,1},{6912,5033,1},{6907,5027,1},{6900,5015,1},{6900,5012,1},{6903,5012,1}, {6915,5023,1},{6915,5020,1},{6907,4995,1},{6902,4985,1},{6900,4992,1},{6900,4990,1}, {6888,4968,1},{6882,4948,1},{6882,4930,1},{6880,4930,1},{6877,4918,1},{6872,4878,1}, {6875,4872,1},{6873,4868,1},{6873,4858,1},{6885,4830,1},{6888,4833,1},{6890,4827,1}, {6888,4823,1},{6895,4823,1},{6898,4827,1},{6900,4822,1},{6903,4827,1},{6905,4822,1}, {6908,4825,1},{7178,5140,129},{7193,5145,1},{7208,5160,1},{7217,5187,1}, {7212,5193,1},{7210,5205,1},{7207,5207,1},{7213,5220,1},{7208,5220,1},{7207,5233,1}, {7208,5242,1},{7215,5237,1},{7215,5248,1},{7217,5250,1},{7222,5240,1},{7222,5248,1}, {7222,5247,1},{7223,5248,1},{7228,5242,1},{7225,5258,1},{7228,5258,1},{7232,5268,1}, {7233,5268,1},{7237,5258,1},{7233,5275,1},{7235,5287,1},{7237,5270,1},{7243,5267,1}, {7245,5282,1},{7247,5277,1},{7248,5267,1},{7252,5275,1},{7252,5287,1},{7257,5292,1}, {7260,5310,1},{7258,5292,1},{7255,5275,1},{7260,5278,1},{7262,5282,1},{7262,5273,1}, {7263,5277,1},{7267,5297,1},{7265,5322,1},{7268,5298,1},{7267,5273,1},{7267,5255,1}, {7270,5250,1},{7272,5238,1},{7273,5238,1},{7275,5240,1},{7275,5247,1},{7278,5248,1}, {7285,5260,1},{7292,5297,1},{7292,5307,1},{7287,5332,1},{7288,5338,1},{7290,5328,1}, {7290,5338,1},{7293,5340,1},{7293,5323,1},{7297,5313,1},{7302,5315,1},{7300,5338,1}, {7307,5327,1},{7307,5318,1},{7308,5313,1},{7312,5317,1},{7315,5315,1},{7322,5333,1}, {7323,5345,1},{7323,5357,1},{7327,5365,1},{7330,5377,1},{7328,5397,1},{7327,5405,1}, {7327,5423,1},{7330,5433,1},{7332,5442,1},{7338,5457,1},{7342,5493,1},{7338,5517,1}, {7333,5533,1},{7332,5545,1},{7332,5577,1},{7328,5580,1},{7325,5603,1},{7325,5620,1}, {7323,5643,1},{7317,5657,1},{7313,5658,1},{7312,5655,1},{7307,5580,1},{7307,5627,1}, {7305,5643,1},{7305,5647,1},{7300,5635,1},{7300,5608,1},{7297,5562,1},{7295,5568,1}, {7293,5600,1},{7297,5618,1},{7297,5625,1},{7297,5627,1},{7288,5623,1},{7282,5622,1}, {7278,5613,1},{7278,5598,1},{7280,5587,1},{7277,5573,1},{7278,5567,1},{7282,5550,1}, {7278,5543,1},{7278,5557,1},{7275,5572,1},{7275,5583,1},{7267,5595,1},{7267,5580,1}, {7270,5563,1},{7267,5565,1},{7263,5573,1},{7262,5570,1},{7262,5562,1},{7257,5568,1}, {7253,5560,1},{7253,5557,1},{7258,5545,1},{7258,5527,1},{7257,5545,1},{7253,5547,1}, {7252,5555,1},{7247,5555,1},{7245,5538,1},{7245,5512,1},{7243,5547,1},{7235,5547,1}, {7230,5537,1},{7225,5553,1},{7220,5558,1},{7207,5535,1},{7205,5545,1},{7198,5535,1}, {7193,5538,1},{7195,5527,1},{7193,5525,1},{7192,5522,1},{7192,5540,1},{7188,5552,1}, {7177,5553,1},{7160,5567,1},{7138,5602,1},{7127,5608,1},{7120,5623,1},{7107,5655,1}, {7100,5667,1},{7095,5685,1},{7087,5705,1},{7082,5732,1},{7082,5745,1},{7078,5748,1}, {7073,5763,1},{7073,5753,1},{7075,5745,1},{7073,5743,1},{7070,5755,1},{7063,5745,1}, {7062,5740,1},{7060,5745,1},{7060,5740,1},{7067,5703,1},{7067,5698,1},{7065,5698,1}, {7067,5688,1},{7070,5682,1},{7070,5673,1},{7063,5685,1},{7062,5707,1},{7063,5715,1}, {7060,5718,1},{7057,5735,1},{7057,5732,1},{7060,5693,1},{7063,5673,1},{7067,5662,1}, {7065,5660,1},{7063,5670,1},{7063,5660,1},{7067,5650,1},{7072,5652,1},{7073,5658,1}, {7075,5652,1},{7073,5645,1},{7072,5643,1},{7073,5623,1},{7072,5622,1},{7070,5632,1}, {7070,5620,1},{7068,5630,1},{7067,5622,1},{7065,5623,1},{7065,5638,1},{7068,5635,1}, {7067,5645,1},{7065,5648,1},{7063,5653,1},{7063,5647,1},{7062,5647,1},{7058,5665,1}, {7055,5655,1},{7057,5637,1},{7057,5655,1},{7058,5653,1},{7060,5628,1},{7067,5607,1}, {7065,5603,1},{7063,5612,1},{7062,5618,1},{7058,5617,1},{7060,5613,1},{7065,5597,1}, {7068,5582,1},{7065,5585,1},{7058,5605,1},{7057,5602,1},{7060,5595,1},{7058,5588,1}, {7062,5583,1},{7062,5568,1},{7063,5560,1},{7062,5570,1},{7062,5572,1},{7067,5560,1}, {7063,5573,1},{7063,5580,1},{7070,5575,1},{7073,5562,1},{7072,5560,1},{7068,5570,1}, {7065,5575,1},{7068,5565,1},{7070,5550,1},{7075,5542,1},{7070,5535,1},{7068,5543,1}, {7065,5547,1},{7068,5540,1},{7067,5538,1},{7068,5528,1},{7065,5523,1},{7060,5530,1}, {7058,5527,1},{7058,5522,1},{7055,5520,1},{7055,5517,1},{7063,5497,1},{7068,5475,1}, {7072,5470,1},{7075,5472,1},{7078,5457,1},{7082,5452,1},{7077,5457,1},{7078,5450,1}, {7073,5448,1},{7070,5465,1},{7068,5462,1},{7067,5473,1},{7065,5475,1},{7065,5467,1}, {7068,5453,1},{7070,5455,1},{7072,5443,1},{7077,5428,1},{7077,5427,1},{7073,5428,1}, {7073,5422,1},{7075,5413,1},{7073,5412,1},{7073,5405,1},{7082,5385,1},{7078,5388,1}, {7080,5382,1},{7080,5372,1},{7082,5365,1},{7083,5355,1},{7085,5357,1},{7083,5353,1}, {7080,5353,1},{7082,5347,1},{7085,5340,1},{7087,5330,1},{7087,5343,1},{7087,5352,1}, {7088,5357,1},{7087,5362,1},{7083,5368,1},{7087,5368,1},{7090,5367,1},{7095,5375,1}, {7098,5370,1},{7107,5350,1},{7110,5348,1},{7107,5360,1},{7107,5368,1},{7108,5367,1}, {7110,5370,1},{7105,5392,1},{7113,5382,1},{7113,5393,1},{7113,5403,1},{7112,5407,1}, {7113,5393,1},{7112,5393,1},{7110,5392,1},{7110,5408,1},{7112,5423,1},{7113,5423,1}, {7112,5415,1},{7115,5398,1},{7118,5403,1},{7118,5410,1},{7120,5405,1},{7122,5407,1}, {7120,5417,1},{7123,5408,1},{7123,5403,1},{7117,5395,1},{7120,5387,1},{7120,5380,1}, {7115,5382,1},{7117,5370,1},{7118,5372,1},{7120,5357,1},{7125,5345,1},{7130,5360,1}, {7140,5372,1},{7142,5388,1},{7147,5395,1},{7147,5387,1},{7143,5382,1},{7138,5357,1}, {7132,5353,1},{7128,5348,1},{7132,5337,1},{7145,5325,1},{7147,5333,1},{7152,5335,1}, {7153,5343,1},{7157,5335,1},{7150,5320,1},{7142,5313,1},{7150,5305,1},{7148,5300,1}, {7143,5303,1},{7143,5297,1},{7140,5297,1},{7138,5290,1},{7147,5285,1},{7147,5280,1}, {7142,5282,1},{7143,5273,1},{7148,5270,1},{7147,5263,1},{7147,5262,1},{7153,5265,1}, {7158,5255,1},{7162,5257,1},{7163,5252,1},{7157,5250,1},{7153,5237,1},{7147,5240,1}, {7152,5227,1},{7158,5225,1},{7153,5213,1},{7147,5228,1},{7148,5215,1},{7147,5208,1}, {7147,5195,1},{7145,5182,1},{7150,5173,1},{7153,5160,1},{7157,5153,1},{7160,5155,1}, {7168,5147,1},{7172,5147,1},{7172,5142,1},{7180,5140,1},{7468,5698,129}, {7467,5678,1},{7468,5650,1},{7470,5643,1},{7472,5642,1},{7465,5592,1},{7467,5587,1}, {7468,5587,1},{7468,5573,1},{7465,5553,1},{7462,5557,1},{7457,5550,1},{7457,5567,1}, {7455,5570,1},{7452,5565,1},{7455,5585,1},{7453,5605,1},{7452,5608,1},{7450,5602,1}, {7448,5603,1},{7448,5617,1},{7450,5623,1},{7448,5628,1},{7445,5590,1},{7445,5560,1}, {7443,5545,1},{7443,5537,1},{7437,5523,1},{7435,5550,1},{7432,5558,1},{7433,5567,1}, {7430,5575,1},{7427,5573,1},{7427,5567,1},{7430,5565,1},{7428,5557,1},{7427,5525,1}, {7430,5523,1},{7427,5513,1},{7427,5507,1},{7423,5513,1},{7423,5532,1},{7420,5558,1}, {7415,5563,1},{7413,5580,1},{7410,5587,1},{7412,5565,1},{7415,5548,1},{7415,5527,1}, {7418,5517,1},{7417,5510,1},{7417,5502,1},{7410,5478,1},{7402,5458,1},{7398,5478,1}, {7397,5480,1},{7395,5448,1},{7392,5425,1},{7387,5408,1},{7383,5407,1},{7378,5388,1}, {7378,5375,1},{7380,5368,1},{7380,5365,1},{7375,5363,1},{7365,5395,1},{7363,5393,1}, {7360,5407,1},{7360,5422,1},{7363,5440,1},{7370,5448,1},{7370,5455,1},{7372,5477,1}, {7373,5485,1},{7368,5485,1},{7372,5497,1},{7372,5535,1},{7370,5512,1},{7365,5487,1}, {7367,5475,1},{7362,5467,1},{7357,5437,1},{7348,5418,1},{7347,5430,1},{7347,5442,1}, {7345,5432,1},{7342,5428,1},{7338,5405,1},{7337,5405,1},{7335,5420,1},{7332,5422,1}, {7337,5440,1},{7340,5453,1},{7340,5468,1},{7343,5478,1},{7345,5497,1},{7340,5520,1}, {7333,5542,1},{7335,5570,1},{7333,5582,1},{7330,5593,1},{7333,5598,1},{7335,5598,1}, {7340,5597,1},{7343,5587,1},{7343,5590,1},{7342,5602,1},{7335,5603,1},{7330,5607,1}, {7328,5613,1},{7325,5672,1},{7325,5677,1},{7327,5672,1},{7332,5680,1},{7333,5673,1}, {7337,5677,1},{7332,5688,1},{7335,5700,1},{7342,5717,1},{7345,5718,1},{7345,5725,1}, {7350,5725,1},{7360,5690,1},{7360,5675,1},{7362,5685,1},{7365,5675,1},{7367,5672,1}, {7367,5682,1},{7363,5687,1},{7358,5702,1},{7355,5733,1},{7358,5735,1},{7362,5760,1}, {7370,5758,1},{7383,5732,1},{7385,5670,1},{7388,5655,1},{7383,5740,1},{7382,5752,1}, {7372,5770,1},{7380,5793,1},{7387,5790,1},{7390,5782,1},{7392,5792,1},{7400,5767,1}, {7407,5755,1},{7408,5725,1},{7408,5732,1},{7408,5747,1},{7408,5753,1},{7412,5752,1}, {7418,5742,1},{7418,5755,1},{7405,5770,1},{7402,5790,1},{7398,5812,1},{7400,5822,1}, {7405,5820,1},{7405,5810,1},{7410,5817,1},{7413,5813,1},{7413,5825,1},{7408,5830,1}, {7413,5837,1},{7413,5852,1},{7415,5850,1},{7417,5830,1},{7418,5825,1},{7422,5827,1}, {7422,5833,1},{7418,5833,1},{7420,5838,1},{7417,5850,1},{7418,5858,1},{7422,5852,1}, {7422,5865,1},{7423,5853,1},{7423,5872,1},{7425,5868,1},{7427,5875,1},{7438,5857,1}, {7442,5863,1},{7448,5845,1},{7450,5843,1},{7455,5818,1},{7457,5818,1},{7450,5872,1}, {7447,5878,1},{7443,5905,1},{7443,5915,1},{7450,5910,1},{7458,5918,1},{7462,5922,1}, {7465,5908,1},{7467,5915,1},{7463,5928,1},{7472,5910,1},{7475,5912,1},{7462,5953,1}, {7458,5975,1},{7463,5988,1},{7468,5987,1},{7472,5978,1},{7473,5963,1},{7480,5952,1}, {7475,5970,1},{7473,5982,1},{7472,5997,1},{7475,6027,1},{7478,6037,1},{7482,6027,1}, {7485,6020,1},{7487,6057,1},{7492,6068,1},{7495,6063,1},{7497,6058,1},{7497,6010,1}, {7500,5993,1},{7498,6013,1},{7500,6018,1},{7502,6023,1},{7498,6023,1},{7500,6032,1}, {7502,6045,1},{7512,6050,1},{7510,6060,1},{7503,6058,1},{7502,6067,1},{7502,6073,1}, {7508,6082,1},{7510,6075,1},{7515,6085,1},{7522,6117,1},{7528,6130,1},{7533,6128,1}, {7532,6138,1},{7525,6138,1},{7522,6147,1},{7528,6165,1},{7537,6170,1},{7535,6182,1}, {7537,6183,1},{7545,6203,1},{7543,6222,1},{7545,6230,1},{7550,6253,1},{7553,6280,1}, {7558,6303,1},{7558,6330,1},{7563,6355,1},{7570,6362,1},{7570,6357,1},{7570,6367,1}, {7563,6373,1},{7567,6385,1},{7568,6402,1},{7572,6412,1},{7572,6433,1},{7580,6487,1}, {7580,6513,1},{7583,6520,1},{7588,6545,1},{7595,6597,1},{7595,6610,1},{7600,6628,1}, {7600,6645,1},{7605,6668,1},{7610,6710,1},{7618,6745,1},{7627,6800,1},{7628,6832,1}, {7630,6832,1},{7632,6817,1},{7633,6833,1},{7638,6843,1},{7640,6840,1},{7643,6858,1}, {7657,6893,1},{7658,6878,1},{7665,6885,1},{7670,6903,1},{7673,6890,1},{7678,6893,1}, {7682,6875,1},{7687,6882,1},{7688,6868,1},{7692,6858,1},{7693,6847,1},{7695,6850,1}, {7697,6813,1},{7700,6807,1},{7700,6795,1},{7702,6757,1},{7698,6733,1},{7695,6718,1}, {7695,6700,1},{7692,6688,1},{7690,6668,1},{7687,6660,1},{7685,6643,1},{7680,6633,1}, {7678,6623,1},{7675,6612,1},{7675,6595,1},{7668,6577,1},{7667,6575,1},{7663,6588,1}, {7658,6593,1},{7655,6602,1},{7653,6600,1},{7653,6590,1},{7658,6558,1},{7655,6540,1}, {7652,6535,1},{7650,6523,1},{7647,6517,1},{7647,6507,1},{7650,6507,1},{7647,6480,1}, {7645,6480,1},{7645,6472,1},{7642,6467,1},{7637,6467,1},{7640,6452,1},{7637,6443,1}, {7635,6428,1},{7632,6412,1},{7632,6403,1},{7635,6395,1},{7633,6385,1},{7635,6372,1}, {7632,6352,1},{7628,6348,1},{7627,6325,1},{7622,6298,1},{7622,6290,1},{7623,6292,1}, {7623,6285,1},{7627,6283,1},{7627,6275,1},{7625,6270,1},{7620,6263,1},{7622,6255,1}, {7618,6250,1},{7620,6238,1},{7627,6240,1},{7625,6223,1},{7627,6198,1},{7630,6192,1}, {7628,6182,1},{7632,6168,1},{7628,6157,1},{7627,6107,1},{7625,6098,1},{7622,6102,1}, {7615,6090,1},{7613,6097,1},{7615,6112,1},{7612,6115,1},{7607,6107,1},{7605,6082,1}, {7600,6073,1},{7602,6047,1},{7612,6083,1},{7612,6082,1},{7612,6043,1},{7610,6027,1}, {7605,6003,1},{7602,6033,1},{7598,6032,1},{7598,6003,1},{7592,5972,1},{7593,5962,1}, {7593,5940,1},{7588,5933,1},{7585,5912,1},{7587,5892,1},{7583,5877,1},{7578,5873,1}, {7578,5860,1},{7575,5853,1},{7572,5858,1},{7567,5798,1},{7562,5793,1},{7562,5815,1}, {7560,5820,1},{7557,5817,1},{7557,5802,1},{7553,5765,1},{7550,5750,1},{7545,5755,1}, {7545,5762,1},{7542,5767,1},{7532,5773,1},{7533,5753,1},{7537,5742,1},{7538,5718,1}, {7538,5705,1},{7535,5685,1},{7532,5677,1},{7528,5673,1},{7528,5688,1},{7523,5690,1}, {7507,5648,1},{7518,5638,1},{7515,5618,1},{7517,5615,1},{7520,5623,1},{7520,5608,1}, {7522,5610,1},{7522,5605,1},{7520,5593,1},{7515,5580,1},{7508,5573,1},{7508,5593,1}, {7500,5587,1},{7500,5605,1},{7502,5617,1},{7503,5642,1},{7502,5647,1},{7500,5642,1}, {7495,5630,1},{7497,5638,1},{7493,5635,1},{7497,5665,1},{7495,5668,1},{7495,5660,1}, {7492,5652,1},{7492,5638,1},{7487,5610,1},{7483,5585,1},{7480,5582,1},{7477,5593,1}, {7478,5608,1},{7480,5620,1},{7480,5648,1},{7475,5642,1},{7475,5653,1},{7470,5660,1}, {7470,5692,1},{7468,5697,1},{8083,6255,129},{8092,6297,1},{8097,6312,1}, {8098,6333,1},{8097,6393,1},{8098,6410,1},{8102,6418,1},{8105,6422,1},{8110,6412,1}, {8117,6425,1},{8120,6455,1},{8118,6487,1},{8113,6523,1},{8103,6545,1},{8100,6530,1}, {8098,6542,1},{8092,6547,1},{8080,6500,1},{8075,6458,1},{8073,6423,1},{8072,6380,1}, {8072,6365,1},{8068,6322,1},{8068,6308,1},{8072,6302,1},{8080,6252,1},{8085,6255,1}, {7993,5833,129},{7998,5867,1},{7993,5873,1},{7990,5898,1},{7987,5887,1}, {7992,5853,1},{7993,5828,1},{7993,5837,1},{8000,5880,129},{8003,5880,1}, {8012,5945,1},{8008,5982,1},{8000,5988,1},{7998,5992,1},{7995,5968,1},{7995,5943,1}, {7992,5937,1},{7993,5918,1},{7995,5917,1},{8000,5880,1},{8010,5763,129}, {8012,5753,1},{8013,5740,1},{8017,5727,1},{8033,5727,1},{8035,5720,1},{8040,5727,1}, {8048,5697,1},{8050,5737,1},{8048,5752,1},{8048,5793,1},{8047,5840,1},{8042,5892,1}, {8037,5920,1},{8033,5928,1},{8032,5922,1},{8033,5870,1},{8033,5858,1},{8032,5858,1}, {8032,5837,1},{8028,5813,1},{8025,5808,1},{8023,5847,1},{8017,5843,1},{8018,5807,1}, {8020,5805,1},{8017,5790,1},{8012,5802,1},{8010,5797,1},{8012,5763,1},{8012,5577,129}, {8018,5605,1},{8025,5595,1},{8033,5598,1},{8035,5618,1},{8032,5657,1},{8033,5667,1}, {8037,5675,1},{8035,5710,1},{8025,5708,1},{8020,5715,1},{8015,5703,1},{8012,5712,1}, {8007,5702,1},{8007,5673,1},{8007,5650,1},{8007,5597,1},{8010,5572,1},{8013,5580,1}, {8020,5232,129},{8027,5218,1},{8028,5235,1},{8028,5257,1},{8032,5260,1}, {8032,5273,1},{8035,5270,1},{8042,5293,1},{8040,5302,1},{8042,5315,1},{8040,5330,1}, {8033,5343,1},{8030,5362,1},{8028,5383,1},{8025,5387,1},{8022,5372,1},{8025,5365,1}, {8023,5358,1},{8018,5352,1},{8017,5343,1},{8018,5313,1},{8017,5272,1},{8020,5260,1}, {8020,5233,1},{8022,5232,1},{7998,5005,129},{8000,5028,1},{7998,5045,1}, {7998,5057,1},{8005,5067,1},{8007,5087,1},{8010,5097,1},{8007,5107,1},{8005,5127,1}, {8000,5120,1},{7997,5137,1},{7995,5135,1},{7993,5150,1},{7992,5137,1},{7993,5052,1}, {7995,5042,1},{7997,5008,1},{7998,5007,1},{8008,4762,129},{8017,4778,1}, {8020,4808,1},{8020,4785,1},{8023,4795,1},{8023,4745,1},{8022,4733,1},{8018,4738,1}, {8018,4717,1},{8017,4712,1},{8018,4692,1},{8023,4690,1},{8023,4683,1},{8028,4663,1}, {8030,4663,1},{8037,4703,1},{8037,4715,1},{8030,4725,1},{8032,4742,1},{8030,4753,1}, {8032,4768,1},{8030,4800,1},{8032,4795,1},{8033,4818,1},{8037,4788,1},{8037,4767,1}, {8040,4762,1},{8042,4822,1},{8043,4810,1},{8047,4812,1},{8047,4772,1},{8045,4743,1}, {8045,4740,1},{8053,4802,1},{8053,4822,1},{8057,4840,1},{8053,4857,1},{8050,4855,1}, {8050,4872,1},{8048,4878,1},{8053,4892,1},{8053,4922,1},{8055,4918,1},{8060,4942,1}, {8063,4928,1},{8065,4943,1},{8063,4967,1},{8068,4962,1},{8072,4968,1},{8068,4923,1}, {8073,4933,1},{8072,4910,1},{8072,4900,1},{8073,4895,1},{8077,4912,1},{8077,4900,1}, {8083,4962,1},{8088,4982,1},{8093,5025,1},{8090,5043,1},{8088,5015,1},{8087,5002,1}, {8085,5017,1},{8088,5067,1},{8092,5085,1},{8085,5103,1},{8083,5102,1},{8082,5077,1}, {8080,5068,1},{8080,5047,1},{8078,5053,1},{8075,5025,1},{8072,5035,1},{8077,5065,1}, {8073,5077,1},{8077,5097,1},{8075,5113,1},{8077,5115,1},{8078,5127,1},{8073,5148,1}, {8072,5175,1},{8068,5173,1},{8063,5142,1},{8062,5118,1},{8053,5092,1},{8052,5017,1}, {8050,5005,1},{8048,4970,1},{8045,4980,1},{8040,4983,1},{8037,4960,1},{8038,4920,1}, {8038,4882,1},{8033,4880,1},{8030,4863,1},{8028,4872,1},{8028,4892,1},{8023,4903,1}, {8020,4898,1},{8018,4912,1},{8017,4898,1},{8015,4898,1},{8015,4877,1},{8020,4853,1}, {8015,4855,1},{8008,4837,1},{8013,4817,1},{8012,4803,1},{8008,4802,1},{8007,4765,1}, {8008,4760,1},{8010,4763,1},{8063,4495,129},{8067,4547,1},{8067,4595,1}, {8070,4637,1},{8072,4652,1},{8073,4640,1},{8073,4643,1},{8075,4703,1},{8080,4720,1}, {8083,4712,1},{8085,4750,1},{8080,4793,1},{8083,4825,1},{8078,4853,1},{8075,4865,1}, {8075,4852,1},{8072,4845,1},{8065,4875,1},{8062,4872,1},{8063,4852,1},{8065,4847,1}, {8067,4803,1},{8072,4800,1},{8072,4790,1},{8077,4775,1},{8073,4757,1},{8072,4762,1}, {8073,4748,1},{8067,4755,1},{8068,4742,1},{8065,4730,1},{8058,4742,1},{8063,4717,1}, {8055,4700,1},{8055,4665,1},{8052,4668,1},{8052,4650,1},{8047,4652,1},{8043,4608,1}, {8057,4603,1},{8055,4583,1},{8055,4575,1},{8052,4553,1},{8057,4537,1},{8060,4490,1}, {8062,4485,1},{8063,4497,1},{8053,5930,129},{8055,5937,1},{8058,5925,1}, {8065,5922,1},{8070,5928,1},{8078,5957,1},{8080,5950,1},{8085,5992,1},{8085,6020,1}, {8083,6027,1},{8080,5997,1},{8080,6035,1},{8078,6035,1},{8082,6068,1},{8083,6103,1}, {8085,6115,1},{8085,6138,1},{8087,6155,1},{8088,6160,1},{8088,6205,1},{8083,6217,1}, {8077,6228,1},{8067,6203,1},{8063,6213,1},{8060,6193,1},{8060,6170,1},{8055,6158,1}, {8053,6160,1},{8050,6127,1},{8048,6138,1},{8040,6103,1},{8043,6062,1},{8050,6025,1}, {8043,5995,1},{8042,5967,1},{8047,5952,1},{8052,5925,1},{8053,5932,1},{8083,6255,129}, {8092,6297,1},{8097,6312,1},{8098,6333,1},{8097,6393,1},{8098,6410,1},{8102,6418,1}, {8105,6422,1},{8110,6412,1},{8117,6425,1},{8120,6455,1},{8118,6487,1},{8113,6523,1}, {8103,6545,1},{8100,6530,1},{8098,6542,1},{8092,6547,1},{8080,6500,1},{8075,6458,1}, {8073,6423,1},{8072,6380,1},{8072,6365,1},{8068,6322,1},{8068,6308,1},{8072,6302,1}, {8080,6252,1},{8085,6255,1},{8100,6007,129},{8110,6067,1},{8112,6147,1}, {8110,6170,1},{8108,6162,1},{8103,6160,1},{8100,6148,1},{8093,6115,1},{8092,6092,1}, {8093,6037,1},{8097,6025,1},{8098,6005,1},{8100,6010,1},{8083,5793,129}, {8087,5818,1},{8090,5872,1},{8087,5897,1},{8083,5902,1},{8077,5892,1},{8077,5863,1}, {8075,5847,1},{8078,5787,1},{8082,5782,1},{8083,5795,1},{8110,5610,129}, {8112,5615,1},{8110,5628,1},{8110,5675,1},{8105,5717,1},{8107,5725,1},{8105,5748,1}, {8102,5765,1},{8097,5777,1},{8092,5827,1},{8085,5777,1},{8090,5723,1},{8092,5723,1}, {8095,5718,1},{8097,5693,1},{8102,5692,1},{8108,5612,1},{8110,5610,1},{8083,5400,129}, {8085,5408,1},{8085,5453,1},{8087,5467,1},{8087,5477,1},{8083,5482,1},{8088,5493,1}, {8090,5505,1},{8088,5525,1},{8085,5537,1},{8080,5598,1},{8075,5515,1},{8072,5488,1}, {8073,5467,1},{8078,5465,1},{8077,5422,1},{8078,5410,1},{8080,5398,1},{8083,5400,1}, {8102,5443,129},{8112,5468,1},{8108,5487,1},{8107,5517,1},{8100,5552,1}, {8103,5602,1},{8102,5623,1},{8097,5663,1},{8093,5665,1},{8090,5685,1},{8087,5730,1}, {8080,5772,1},{8073,5753,1},{8070,5713,1},{8070,5702,1},{8080,5663,1},{8083,5600,1}, {8085,5578,1},{8088,5577,1},{8090,5553,1},{8093,5538,1},{8097,5537,1},{8095,5502,1}, {8097,5490,1},{8100,5485,1},{8098,5467,1},{8100,5443,1},{8102,5443,1},{8072,5547,129}, {8073,5558,1},{8073,5573,1},{8075,5578,1},{8078,5648,1},{8072,5685,1},{8070,5695,1}, {8067,5693,1},{8063,5670,1},{8062,5638,1},{8065,5630,1},{8063,5605,1},{8063,5583,1}, {8065,5565,1},{8067,5560,1},{8070,5570,1},{8070,5545,1},{8072,5550,1},{8122,5557,129}, {8127,5562,1},{8127,5543,1},{8130,5553,1},{8132,5548,1},{8132,5577,1},{8132,5590,1}, {8130,5590,1},{8127,5625,1},{8125,5660,1},{8132,5638,1},{8138,5637,1},{8138,5675,1}, {8137,5682,1},{8138,5702,1},{8133,5742,1},{8132,5745,1},{8133,5765,1},{8132,5777,1}, {8128,5790,1},{8127,5778,1},{8127,5745,1},{8125,5708,1},{8117,5652,1},{8117,5638,1}, {8122,5632,1},{8118,5585,1},{8120,5558,1},{8122,5555,1},{8147,5685,129}, {8150,5700,1},{8152,5695,1},{8153,5747,1},{8155,5750,1},{8157,5772,1},{8155,5782,1}, {8148,5787,1},{8147,5838,1},{8140,5855,1},{8137,5808,1},{8140,5757,1},{8143,5743,1}, {8145,5677,1},{8147,5685,1},{8168,6217,129},{8172,6275,1},{8172,6280,1}, {8170,6272,1},{8172,6322,1},{8172,6347,1},{8168,6375,1},{8163,6377,1},{8158,6347,1}, {8162,6273,1},{8165,6252,1},{8167,6210,1},{8168,6220,1},{4452,14617,129}, {4450,14620,1},{4445,14627,1},{4442,14635,1},{4442,14647,1},{4445,14657,1}, {4438,14653,1},{4435,14652,1},{4438,14647,1},{4437,14640,1},{4428,14630,1}, {4425,14612,1},{4418,14605,1},{4413,14593,1},{4407,14588,1},{4402,14588,1}, {4402,14583,1},{4393,14578,1},{4390,14572,1},{4390,14565,1},{4387,14560,1}, {4382,14558,1},{4365,14555,1},{4373,14553,1},{4372,14543,1},{4380,14543,1}, {4383,14542,1},{4385,14545,1},{4390,14548,1},{4392,14555,1},{4405,14575,1}, {4412,14577,1},{4415,14578,1},{4418,14585,1},{4425,14588,1},{4428,14597,1}, {4438,14602,1},{4442,14605,1},{4447,14608,1},{4450,14613,1},{4450,14617,1}, {5908,2263,129},{5907,2272,1},{5905,2270,1},{5900,2272,1},{5900,2287,1}, {5898,2293,1},{5897,2295,1},{5892,2295,1},{5890,2300,1},{5885,2305,1},{5882,2302,1}, {5885,2297,1},{5883,2295,1},{5883,2288,1},{5882,2287,1},{5882,2288,1},{5878,2288,1}, {5877,2285,1},{5878,2278,1},{5880,2278,1},{5882,2283,1},{5882,2278,1},{5878,2272,1}, {5870,2267,1},{5868,2257,1},{5870,2247,1},{5873,2250,1},{5880,2245,1},{5883,2245,1}, {5888,2238,1},{5888,2218,1},{5893,2205,1},{5895,2207,1},{5895,2238,1},{5897,2247,1}, {5898,2243,1},{5898,2248,1},{5898,2250,1},{5902,2248,1},{5903,2257,1},{5908,2258,1}, {5908,2263,1},{5905,2318,129},{5903,2327,1},{5903,2333,1},{5898,2340,1}, {5897,2337,1},{5897,2317,1},{5902,2312,1},{5903,2320,1},{5867,2323,129}, {5863,2335,1},{5860,2335,1},{5857,2340,1},{5853,2338,1},{5855,2327,1},{5853,2322,1}, {5857,2315,1},{5858,2307,1},{5862,2307,1},{5862,2312,1},{5867,2313,1},{5868,2320,1}, {5867,2325,1},{5782,2325,129},{5778,2328,1},{5778,2322,1},{5782,2322,1}, {5782,2325,1},{5860,2300,129},{5857,2308,1},{5852,2313,1},{5850,2327,1}, {5845,2333,1},{5843,2333,1},{5847,2327,1},{5845,2323,1},{5843,2328,1},{5843,2323,1}, {5848,2315,1},{5843,2313,1},{5843,2310,1},{5840,2308,1},{5835,2303,1},{5838,2295,1}, {5835,2297,1},{5830,2292,1},{5827,2282,1},{5827,2272,1},{5823,2275,1},{5822,2273,1}, {5822,2265,1},{5825,2263,1},{5825,2258,1},{5822,2257,1},{5825,2253,1},{5822,2250,1}, {5823,2248,1},{5818,2228,1},{5817,2227,1},{5810,2227,1},{5802,2220,1},{5798,2220,1}, {5792,2205,1},{5792,2200,1},{5798,2197,1},{5798,2200,1},{5808,2208,1},{5807,2215,1}, {5815,2220,1},{5817,2218,1},{5817,2208,1},{5823,2200,1},{5825,2190,1},{5828,2185,1}, {5830,2185,1},{5830,2192,1},{5833,2187,1},{5833,2190,1},{5832,2195,1},{5835,2197,1}, {5835,2200,1},{5847,2192,1},{5850,2183,1},{5848,2192,1},{5852,2192,1},{5850,2202,1}, {5842,2208,1},{5848,2210,1},{5852,2217,1},{5855,2218,1},{5853,2222,1},{5850,2223,1}, {5850,2228,1},{5857,2230,1},{5858,2245,1},{5863,2257,1},{5858,2265,1},{5860,2268,1}, {5858,2275,1},{5862,2280,1},{5862,2292,1},{5860,2298,1},{6988,5895,129}, {7003,5862,1},{7008,5857,1},{7010,5860,1},{7013,5855,1},{7013,5862,1},{7015,5857,1}, {7018,5858,1},{7020,5845,1},{7023,5850,1},{7023,5845,1},{7025,5842,1},{7027,5843,1}, {7027,5848,1},{7025,5862,1},{7022,5880,1},{7025,5878,1},{7033,5850,1},{7035,5868,1}, {7038,5877,1},{7042,5873,1},{7043,5888,1},{7048,5903,1},{7045,5905,1},{7037,5932,1}, {7028,5947,1},{7025,5953,1},{7020,5955,1},{7020,5962,1},{7017,5977,1},{7013,5978,1}, {7010,5995,1},{7010,6002,1},{7007,6005,1},{6997,6032,1},{6995,6032,1},{6995,6042,1}, {6992,6048,1},{6987,6045,1},{6980,6055,1},{6975,6043,1},{6972,6047,1},{6973,6037,1}, {6972,6035,1},{6968,6020,1},{6972,6000,1},{6967,5992,1},{6970,5987,1},{6968,5975,1}, {6972,5957,1},{6975,5953,1},{6978,5955,1},{6978,5962,1},{6980,5962,1},{6988,5942,1}, {6988,5925,1},{6992,5918,1},{6992,5908,1},{6993,5897,1},{6993,5893,1},{6988,5912,1}, {6987,5913,1},{6987,5902,1},{6990,5893,1},{2068,5892,129},{2060,5890,1}, {2057,5893,1},{2052,5895,1},{2043,5883,1},{2038,5880,1},{2040,5878,1},{2038,5877,1}, {2037,5877,1},{2035,5880,1},{2028,5878,1},{2025,5877,1},{2028,5875,1},{2027,5872,1}, {2025,5873,1},{2022,5873,1},{2017,5865,1},{2020,5863,1},{2035,5863,1},{2043,5872,1}, {2043,5877,1},{2047,5878,1},{2053,5880,1},{2062,5887,1},{2068,5888,1},{2068,5892,1}, {2695,5628,129},{2693,5625,1},{2692,5618,1},{2685,5615,1},{2678,5608,1}, {2673,5598,1},{2668,5595,1},{2670,5592,1},{2673,5588,1},{2668,5577,1},{2668,5570,1}, {2660,5550,1},{2658,5545,1},{2657,5537,1},{2657,5535,1},{2653,5530,1},{2655,5528,1}, {2665,5528,1},{2663,5533,1},{2665,5537,1},{2665,5538,1},{2668,5542,1},{2672,5557,1}, {2677,5567,1},{2680,5577,1},{2685,5578,1},{2690,5578,1},{2693,5573,1},{2695,5575,1}, {2695,5578,1},{2690,5588,1},{2692,5593,1},{2697,5600,1},{2700,5617,1},{2700,5623,1}, {2697,5628,1},{2695,5628,1},{1353,9307,129},{1343,9305,1},{1340,9305,1}, {1340,9308,1},{1335,9303,1},{1333,9300,1},{1335,9300,1},{1335,9298,1},{1333,9298,1}, {1332,9298,1},{1332,9303,1},{1327,9307,1},{1327,9308,1},{1322,9305,1},{1307,9305,1}, {1303,9303,1},{1302,9298,1},{1303,9297,1},{1308,9297,1},{1307,9295,1},{1307,9293,1}, {1300,9293,1},{1297,9297,1},{1295,9293,1},{1298,9292,1},{1297,9290,1},{1292,9287,1}, {1290,9288,1},{1292,9292,1},{1292,9293,1},{1290,9293,1},{1287,9297,1},{1280,9297,1}, {1278,9297,1},{1275,9298,1},{1272,9300,1},{1263,9298,1},{1252,9300,1},{1248,9295,1}, {1247,9297,1},{1243,9293,1},{1242,9293,1},{1245,9290,1},{1243,9290,1},{1243,9285,1}, {1238,9287,1},{1235,9290,1},{1233,9292,1},{1230,9287,1},{1228,9290,1},{1223,9288,1}, {1220,9290,1},{1220,9287,1},{1217,9287,1},{1217,9285,1},{1213,9282,1},{1212,9283,1}, {1210,9282,1},{1207,9275,1},{1203,9278,1},{1203,9277,1},{1198,9273,1},{1188,9273,1}, {1195,9277,1},{1192,9280,1},{1188,9280,1},{1185,9278,1},{1170,9275,1},{1170,9272,1}, {1165,9268,1},{1162,9268,1},{1162,9270,1},{1165,9270,1},{1165,9273,1},{1168,9273,1}, {1167,9275,1},{1165,9277,1},{1150,9273,1},{1148,9272,1},{1152,9270,1},{1152,9267,1}, {1157,9265,1},{1160,9262,1},{1163,9265,1},{1165,9262,1},{1172,9260,1},{1172,9257,1}, {1183,9257,1},{1183,9253,1},{1185,9252,1},{1192,9255,1},{1193,9257,1},{1190,9258,1}, {1190,9262,1},{1187,9262,1},{1198,9262,1},{1212,9265,1},{1213,9263,1},{1222,9267,1}, {1222,9270,1},{1223,9272,1},{1222,9272,1},{1217,9272,1},{1218,9278,1},{1220,9278,1}, {1225,9278,1},{1227,9275,1},{1228,9275,1},{1227,9278,1},{1230,9278,1},{1232,9273,1}, {1235,9272,1},{1248,9273,1},{1260,9272,1},{1265,9275,1},{1265,9278,1},{1268,9275,1}, {1282,9273,1},{1287,9280,1},{1295,9282,1},{1298,9283,1},{1305,9280,1},{1310,9283,1}, {1312,9283,1},{1313,9287,1},{1317,9283,1},{1318,9285,1},{1322,9285,1},{1325,9287,1}, {1328,9285,1},{1330,9285,1},{1333,9283,1},{1337,9287,1},{1338,9288,1},{1343,9290,1}, {1347,9290,1},{1347,9292,1},{1350,9295,1},{1355,9295,1},{1355,9300,1},{1357,9302,1}, {1355,9302,1},{1357,9305,1},{1353,9307,1},{923,9278,129},{920,9280,1},{915,9280,1}, {913,9278,1},{913,9273,1},{917,9272,1},{922,9272,1},{922,9275,1},{927,9277,1}, {923,9278,1},{1998,10957,129},{2000,10962,1},{2000,10972,1},{2000,10973,1}, {1995,10972,1},{1998,10973,1},{1997,10978,1},{1995,10980,1},{1998,10982,1}, {1998,10983,1},{1993,10983,1},{1995,10987,1},{1998,10988,1},{1998,10995,1}, {1993,10998,1},{1992,10995,1},{1990,10998,1},{1990,11000,1},{1993,11000,1}, {1993,11002,1},{1995,11002,1},{1998,11003,1},{1997,11012,1},{1998,11013,1}, {2000,11015,1},{1998,11012,1},{1998,11007,1},{2000,11012,1},{2007,11015,1}, {2003,11025,1},{2003,11030,1},{2005,11032,1},{2005,11035,1},{2003,11037,1}, {2000,11037,1},{1997,11040,1},{1992,11042,1},{1997,11042,1},{2000,11038,1}, {2005,11037,1},{2008,11038,1},{2007,11042,1},{2003,11042,1},{2003,11043,1}, {2005,11042,1},{2002,11048,1},{2002,11053,1},{2000,11052,1},{1998,11055,1}, {2000,11057,1},{1992,11060,1},{1993,11062,1},{1997,11062,1},{2002,11060,1}, {2003,11057,1},{2008,11057,1},{2012,11060,1},{2012,11065,1},{2015,11068,1}, {2008,11070,1},{2002,11077,1},{1998,11087,1},{2000,11092,1},{1997,11095,1}, {1980,11098,1},{1968,11100,1},{1968,11102,1},{1963,11103,1},{1963,11097,1}, {1953,11085,1},{1955,11082,1},{1960,11082,1},{1960,11085,1},{1962,11085,1}, {1962,11080,1},{1955,11082,1},{1953,11080,1},{1948,11080,1},{1945,11075,1}, {1943,11075,1},{1942,11073,1},{1940,11070,1},{1938,11067,1},{1933,11068,1}, {1930,11063,1},{1928,11063,1},{1915,11058,1},{1917,11048,1},{1912,11052,1}, {1913,11055,1},{1908,11055,1},{1913,11057,1},{1913,11058,1},{1905,11057,1}, {1903,11053,1},{1898,11052,1},{1890,11052,1},{1888,11047,1},{1885,11047,1}, {1882,11043,1},{1880,11045,1},{1880,11050,1},{1882,11050,1},{1887,11050,1}, {1888,11050,1},{1878,11053,1},{1877,11047,1},{1873,11043,1},{1868,11043,1}, {1867,11042,1},{1867,11033,1},{1868,11040,1},{1870,11040,1},{1868,11038,1}, {1868,11033,1},{1867,11030,1},{1865,11025,1},{1853,11010,1},{1850,11008,1}, {1850,11003,1},{1848,11005,1},{1848,11008,1},{1840,11007,1},{1843,11005,1}, {1843,11003,1},{1840,11005,1},{1838,11005,1},{1838,10997,1},{1840,10997,1}, {1840,11002,1},{1845,11002,1},{1843,11000,1},{1843,10998,1},{1842,10997,1}, {1842,10992,1},{1840,10988,1},{1838,10983,1},{1840,10980,1},{1840,10975,1}, {1830,10972,1},{1827,10973,1},{1827,10972,1},{1828,10970,1},{1827,10967,1}, {1825,10973,1},{1823,10973,1},{1820,10970,1},{1820,10968,1},{1823,10968,1}, {1823,10963,1},{1820,10960,1},{1817,10960,1},{1817,10957,1},{1820,10957,1}, {1822,10955,1},{1823,10957,1},{1825,10957,1},{1823,10953,1},{1822,10953,1}, {1820,10950,1},{1818,10948,1},{1820,10947,1},{1823,10952,1},{1825,10950,1}, {1823,10948,1},{1827,10948,1},{1828,10945,1},{1830,10928,1},{1830,10922,1}, {1828,10917,1},{1830,10913,1},{1835,10913,1},{1837,10905,1},{1837,10898,1}, {1840,10895,1},{1843,10888,1},{1848,10880,1},{1850,10868,1},{1857,10867,1}, {1862,10870,1},{1872,10870,1},{1878,10867,1},{1883,10862,1},{1893,10865,1}, {1910,10862,1},{1915,10867,1},{1915,10868,1},{1920,10867,1},{1922,10862,1}, {1932,10865,1},{1930,10867,1},{1935,10867,1},{1938,10868,1},{1938,10877,1}, {1942,10878,1},{1945,10887,1},{1950,10892,1},{1950,10893,1},{1952,10893,1}, {1960,10902,1},{1962,10908,1},{1965,10917,1},{1968,10920,1},{1972,10920,1}, {1972,10930,1},{1975,10927,1},{1977,10930,1},{1977,10928,1},{1978,10930,1}, {1978,10927,1},{1973,10920,1},{1972,10917,1},{1980,10917,1},{1982,10920,1}, {1987,10922,1},{1987,10925,1},{1990,10927,1},{1990,10928,1},{1992,10930,1}, {1992,10932,1},{1988,10932,1},{1988,10937,1},{1985,10942,1},{1987,10945,1}, {1983,10947,1},{1987,10952,1},{1985,10953,1},{1985,10955,1},{1985,10958,1}, {1988,10952,1},{1992,10952,1},{1992,10955,1},{1993,10955,1},{1992,10953,1}, {1995,10953,1},{1998,10958,1},{3492,12793,129},{3488,12793,1},{3487,12790,1}, {3483,12792,1},{3480,12795,1},{3482,12800,1},{3480,12807,1},{3472,12805,1}, {3470,12807,1},{3472,12802,1},{3470,12797,1},{3477,12793,1},{3477,12792,1}, {3472,12790,1},{3472,12785,1},{3477,12787,1},{3485,12782,1},{3488,12783,1}, {3490,12787,1},{3493,12788,1},{3493,12792,1},{3490,12793,1},{3495,12872,129}, {3493,12873,1},{3487,12872,1},{3488,12875,1},{3483,12873,1},{3483,12872,1}, {3478,12875,1},{3480,12868,1},{3478,12868,1},{3475,12865,1},{3473,12868,1}, {3472,12868,1},{3470,12858,1},{3472,12862,1},{3473,12860,1},{3475,12860,1}, {3475,12857,1},{3477,12855,1},{3478,12860,1},{3483,12860,1},{3482,12855,1}, {3480,12853,1},{3483,12850,1},{3488,12850,1},{3492,12853,1},{3488,12865,1}, {3493,12860,1},{3495,12862,1},{3495,12865,1},{3498,12868,1},{3502,12868,1}, {3503,12870,1},{3502,12873,1},{3498,12872,1},{3495,12873,1},{3353,12683,129}, {3353,12685,1},{3352,12690,1},{3350,12690,1},{3350,12692,1},{3347,12692,1}, {3347,12693,1},{3347,12695,1},{3345,12693,1},{3338,12692,1},{3330,12685,1}, {3323,12660,1},{3322,12648,1},{3323,12642,1},{3323,12633,1},{3318,12627,1}, {3323,12620,1},{3328,12615,1},{3332,12615,1},{3335,12618,1},{3345,12632,1}, {3355,12665,1},{3353,12683,1},{3468,12947,129},{3465,12950,1},{3462,12950,1}, {3462,12945,1},{3458,12948,1},{3453,12948,1},{3443,12938,1},{3438,12937,1}, {3438,12940,1},{3432,12938,1},{3430,12933,1},{3432,12932,1},{3433,12937,1}, {3437,12935,1},{3433,12932,1},{3438,12932,1},{3437,12930,1},{3433,12928,1}, {3435,12923,1},{3437,12927,1},{3442,12928,1},{3445,12932,1},{3445,12928,1}, {3452,12932,1},{3452,12933,1},{3455,12930,1},{3463,12933,1},{3463,12940,1}, {3468,12943,1},{3468,12947,1},{3423,12933,129},{3422,12933,1},{3420,12930,1}, {3412,12928,1},{3407,12922,1},{3408,12922,1},{3410,12918,1},{3432,12922,1}, {3432,12923,1},{3428,12923,1},{3430,12928,1},{3430,12930,1},{3427,12932,1}, {3428,12935,1},{3423,12933,1},{3245,13023,129},{3252,13033,1},{3250,13040,1}, {3252,13045,1},{3252,13047,1},{3250,13045,1},{3237,13037,1},{3242,13035,1}, {3240,13023,1},{3243,13020,1},{3247,13023,1},{3235,12997,129},{3242,12998,1}, {3247,13002,1},{3250,13003,1},{3252,13000,1},{3253,13000,1},{3252,13003,1}, {3253,13010,1},{3253,13018,1},{3248,13020,1},{3233,13020,1},{3230,13017,1}, {3232,13017,1},{3227,13013,1},{3220,13005,1},{3218,13000,1},{3220,12998,1}, {3220,13000,1},{3225,13002,1},{3223,12995,1},{3228,13000,1},{3230,13007,1}, {3230,13000,1},{3235,12997,1},{2850,12968,129},{2843,12972,1},{2840,12962,1}, {2828,12950,1},{2828,12945,1},{2827,12945,1},{2825,12942,1},{2822,12947,1}, {2818,12940,1},{2815,12940,1},{2817,12935,1},{2813,12938,1},{2812,12938,1}, {2818,12928,1},{2822,12927,1},{2820,12925,1},{2822,12923,1},{2823,12918,1}, {2825,12915,1},{2825,12927,1},{2828,12928,1},{2828,12923,1},{2830,12923,1}, {2832,12925,1},{2835,12932,1},{2837,12933,1},{2835,12937,1},{2837,12938,1}, {2837,12940,1},{2838,12942,1},{2838,12945,1},{2842,12947,1},{2838,12952,1}, {2843,12953,1},{2848,12962,1},{2843,12960,1},{2843,12965,1},{2848,12967,1}, {2850,12967,1},{2850,12968,1},{2687,12828,129},{2683,12832,1},{2680,12833,1}, {2677,12833,1},{2670,12830,1},{2663,12823,1},{2662,12817,1},{2660,12815,1}, {2658,12813,1},{2657,12815,1},{2655,12813,1},{2655,12805,1},{2652,12803,1}, {2648,12798,1},{2647,12795,1},{2645,12795,1},{2645,12787,1},{2643,12783,1}, {2642,12783,1},{2640,12787,1},{2637,12787,1},{2630,12792,1},{2632,12783,1}, {2630,12782,1},{2620,12777,1},{2618,12777,1},{2618,12782,1},{2615,12782,1}, {2612,12778,1},{2612,12773,1},{2608,12772,1},{2608,12765,1},{2613,12765,1}, {2620,12763,1},{2620,12767,1},{2627,12770,1},{2627,12772,1},{2630,12773,1}, {2630,12775,1},{2643,12772,1},{2645,12780,1},{2647,12782,1},{2648,12783,1}, {2650,12788,1},{2655,12797,1},{2658,12797,1},{2660,12795,1},{2662,12788,1}, {2668,12788,1},{2668,12800,1},{2663,12798,1},{2663,12802,1},{2667,12810,1}, {2668,12810,1},{2672,12813,1},{2672,12815,1},{2675,12815,1},{2677,12817,1}, {2680,12823,1},{2688,12825,1},{2685,12828,1},{2793,63954,129},{2792,63954,1}, {2783,63958,1},{2775,63969,1},{2773,63978,1},{2775,63981,1},{2780,63993,1}, {2787,63999,1},{2790,63998,1},{2793,63999,1},{2797,63998,1},{2802,63999,1}, {2803,63996,1},{2810,63996,1},{2812,63994,1},{2817,63996,1},{2818,63994,1}, {2817,63993,1},{2813,63993,1},{2813,63989,1},{2815,63984,1},{2815,63974,1}, {2817,63966,1},{2807,63966,1},{2802,63958,1},{2800,63954,1},{2793,63954,1}, {2857,63913,129},{2857,63904,1},{2853,63901,1},{2853,63898,1},{2842,63888,1}, {2842,63883,1},{2838,63879,1},{2838,63871,1},{2837,63866,1},{2837,63861,1}, {2837,63851,1},{2835,63844,1},{2825,63851,1},{2820,63853,1},{2807,63864,1}, {2798,63868,1},{2802,63883,1},{2812,63891,1},{2813,63894,1},{2822,63896,1}, {2830,63901,1},{2837,63901,1},{2840,63908,1},{2847,63913,1},{2852,63924,1}, {2855,63924,1},{2858,63924,1},{2855,63916,1},{2857,63913,1},{375,892,129}, {370,897,1},{363,895,1},{352,887,1},{342,882,1},{338,878,1},{332,878,1}, {327,873,1},{320,868,1},{323,860,1},{325,850,1},{327,845,1},{333,842,1}, {343,845,1},{347,847,1},{347,858,1},{352,858,1},{355,862,1},{367,863,1}, {377,870,1},{375,882,1},{375,892,1},{64398,4328,129},{64399,4335,1},{64398,4338,1}, {64396,4340,1},{64374,4337,1},{64363,4343,1},{64356,4345,1},{64348,4350,1}, {64344,4348,1},{64343,4347,1},{64343,4343,1},{64351,4337,1},{64351,4332,1}, {64353,4328,1},{64359,4322,1},{64363,4322,1},{64369,4325,1},{64379,4325,1}, {64393,4325,1},{64396,4327,1},{64398,4328,1},{64943,3918,129},{64934,3918,1}, {64929,3922,1},{64924,3922,1},{64921,3920,1},{64919,3918,1},{64918,3920,1}, {64911,3920,1},{64906,3925,1},{64904,3928,1},{64909,3927,1},{64909,3930,1}, {64911,3928,1},{64911,3930,1},{64906,3933,1},{64906,3935,1},{64903,3938,1}, {64899,3938,1},{64898,3940,1},{64901,3942,1},{64904,3938,1},{64906,3942,1}, {64893,3945,1},{64889,3948,1},{64889,3953,1},{64891,3957,1},{64898,3957,1}, {64906,3953,1},{64918,3953,1},{64923,3950,1},{64921,3948,1},{64916,3950,1}, {64918,3947,1},{64914,3945,1},{64918,3943,1},{64918,3942,1},{64921,3943,1}, {64924,3942,1},{64929,3943,1},{64931,3940,1},{64941,3937,1},{64946,3935,1}, {64956,3937,1},{64963,3932,1},{64963,3930,1},{64956,3930,1},{64951,3928,1}, {64949,3923,1},{64944,3920,1},{64946,3920,1},{64943,3918,1},{4473,6145,130}, {4477,6148,2},{4473,6150,2},{4483,6157,2},{4483,6160,2},{4480,6160,2},{4480,6163,2}, {4488,6167,2},{4485,6170,2},{4488,6173,2},{4487,6177,2},{4490,6175,2},{4495,6182,2}, {4495,6187,2},{4497,6185,2},{4498,6185,2},{4498,6192,2},{4497,6192,2},{4497,6195,2}, {4502,6193,2},{4502,6197,2},{4505,6197,2},{4502,6183,2},{4505,6182,2},{4512,6183,2}, {4503,6175,2},{4498,6173,2},{4500,6173,2},{4503,6175,2},{4505,6172,2},{4510,6172,2}, {4510,6175,2},{4515,6175,2},{4517,6178,2},{4513,6182,2},{4515,6185,2},{4518,6177,2}, {4515,6173,2},{4522,6172,2},{4518,6168,2},{4517,6170,2},{4513,6165,2},{4518,6162,2}, {4517,6155,2},{4515,6153,2},{4518,6150,2},{4523,6152,2},{4530,6152,2},{4533,6148,2}, {4538,6137,2},{4545,6135,2},{4548,6130,2},{4548,6125,2},{4552,6125,2},{4555,6123,2}, {4557,6130,2},{4560,6128,2},{4562,6130,2},{4565,6127,2},{4567,6127,2},{4570,6117,2}, {4573,6117,2},{4577,6115,2},{4573,6115,2},{4572,6113,2},{4570,6103,2},{4562,6097,2}, {4563,6093,2},{4568,6092,2},{4572,6092,2},{4573,6093,2},{4573,6098,2},{4580,6105,2}, {4587,6100,2},{4585,6103,2},{4587,6110,2},{4590,6113,2},{4590,6103,2},{4593,6108,2}, {4597,6103,2},{4602,6107,2},{4602,6102,2},{4607,6098,2},{4608,6092,2},{4610,6090,2}, {4613,6103,2},{4610,6115,2},{4615,6120,2},{4615,6123,2},{4620,6127,2},{4622,6123,2}, {4623,6125,2},{4625,6127,2},{4625,6130,2},{4627,6130,2},{4628,6127,2},{4633,6132,2}, {4630,6133,2},{4632,6137,2},{4648,6140,2},{4648,6142,2},{4645,6145,2},{4648,6152,2}, {4670,6165,2},{4672,6173,2},{4675,6170,2},{4678,6165,2},{4678,6155,2},{4682,6158,2}, {4687,6157,2},{4685,6150,2},{4680,6150,2},{4677,6133,2},{4675,6130,2},{4670,6132,2}, {4667,6130,2},{4667,6115,2},{4663,6115,2},{4665,6120,2},{4663,6122,2},{4658,6118,2}, {4652,6120,2},{4648,6112,2},{4648,6090,2},{4652,6087,2},{4655,6085,2},{4658,6082,2}, {4667,6085,2},{4670,6092,2},{4675,6090,2},{4678,6082,2},{4677,6068,2},{4680,6058,2}, {4680,6055,2},{4677,6052,2},{4680,6050,2},{4680,6048,2},{4675,6045,2},{4673,6045,2}, {4675,6050,2},{4673,6053,2},{4673,6058,2},{4665,6072,2},{4658,6063,2},{4658,6057,2}, {4665,6050,2},{4660,6043,2},{4663,6042,2},{4665,6043,2},{4667,6040,2},{4672,6040,2}, {4670,6037,2},{4667,6038,2},{4670,6033,2},{4673,6032,2},{4672,6023,2},{4663,6010,2}, {4662,6003,2},{4660,6000,2},{4658,5992,2},{4653,5990,2},{4657,5987,2},{4653,5983,2}, {4653,5980,2},{4652,5980,2},{4652,5983,2},{4652,5992,2},{4648,5993,2},{4647,5987,2}, {4643,5988,2},{4638,5995,2},{4638,6002,2},{4635,6003,2},{4632,6008,2},{4628,6008,2}, {4627,6012,2},{4623,6012,2},{4620,5998,2},{4613,5995,2},{4608,5987,2},{4610,5985,2}, {4617,5987,2},{4620,5982,2},{4628,5982,2},{4633,5973,2},{4635,5965,2},{4633,5962,2}, {4637,5955,2},{4633,5948,2},{4632,5947,2},{4632,5943,2},{4628,5947,2},{4627,5952,2}, {4623,5953,2},{4613,5957,2},{4612,5957,2},{4613,5953,2},{4603,5948,2},{4602,5950,2}, {4603,5952,2},{4603,5953,2},{4592,5953,2},{4587,5948,2},{4582,5950,2},{4582,5948,2}, {4582,5935,2},{4577,5930,2},{4582,5927,2},{4590,5933,2},{4595,5938,2},{4595,5943,2}, {4602,5945,2},{4603,5938,2},{4602,5925,2},{4597,5917,2},{4597,5908,2},{4598,5908,2}, {4600,5912,2},{4602,5910,2},{4600,5898,2},{4595,5890,2},{4593,5880,2},{4590,5872,2}, {4578,5865,2},{4560,5860,2},{4555,5855,2},{4542,5852,2},{4535,5845,2},{4525,5837,2}, {4510,5833,2},{4505,5827,2},{4483,5818,2},{4468,5822,2},{4462,5830,2},{4460,5830,2}, {4458,5825,2},{4452,5820,2},{4450,5822,2},{4443,5820,2},{4440,5822,2},{4427,5825,2}, {4417,5840,2},{4402,5838,2},{4390,5833,2},{4377,5833,2},{4368,5838,2},{4365,5843,2}, {4363,5843,2},{4367,5857,2},{4370,5860,2},{4370,5867,2},{4372,5870,2},{4372,5873,2}, {4370,5870,2},{4368,5872,2},{4373,5883,2},{4373,5885,2},{4373,5893,2},{4375,5897,2}, {4373,5897,2},{4372,5897,2},{4370,5895,2},{4368,5897,2},{4372,5902,2},{4377,5902,2}, {4380,5898,2},{4382,5890,2},{4382,5883,2},{4390,5885,2},{4385,5897,2},{4388,5895,2}, {4393,5882,2},{4393,5873,2},{4393,5887,2},{4388,5895,2},{4380,5905,2},{4372,5908,2}, {4368,5913,2},{4373,5915,2},{4375,5918,2},{4378,5917,2},{4380,5918,2},{4380,5930,2}, {4377,5933,2},{4373,5940,2},{4380,5950,2},{4373,5950,2},{4370,5955,2},{4367,5965,2}, {4367,5968,2},{4367,5977,2},{4363,5980,2},{4362,5968,2},{4358,5968,2},{4347,5972,2}, {4343,5977,2},{4338,5975,2},{4340,5980,2},{4345,5983,2},{4345,5987,2},{4347,5990,2}, {4347,5997,2},{4350,5998,2},{4348,6002,2},{4348,6005,2},{4352,6010,2},{4350,6010,2}, {4348,6010,2},{4347,6015,2},{4348,6018,2},{4358,6018,2},{4357,6023,2},{4360,6035,2}, {4360,6037,2},{4358,6037,2},{4363,6040,2},{4363,6043,2},{4358,6042,2},{4358,6047,2}, {4357,6047,2},{4362,6048,2},{4358,6052,2},{4363,6052,2},{4360,6055,2},{4355,6057,2}, {4360,6063,2},{4358,6067,2},{4358,6070,2},{4362,6070,2},{4360,6073,2},{4362,6073,2}, {4358,6077,2},{4367,6080,2},{4365,6082,2},{4360,6080,2},{4360,6085,2},{4358,6085,2}, {4360,6090,2},{4365,6088,2},{4368,6090,2},{4368,6093,2},{4363,6098,2},{4363,6102,2}, {4365,6103,2},{4367,6100,2},{4370,6100,2},{4373,6100,2},{4380,6105,2},{4378,6100,2}, {4380,6100,2},{4383,6100,2},{4382,6095,2},{4385,6093,2},{4383,6090,2},{4380,6090,2}, {4385,6087,2},{4388,6090,2},{4390,6085,2},{4393,6085,2},{4387,6082,2},{4388,6078,2}, {4387,6077,2},{4388,6075,2},{4393,6075,2},{4397,6073,2},{4402,6073,2},{4403,6073,2}, {4400,6078,2},{4403,6082,2},{4402,6083,2},{4402,6085,2},{4407,6087,2},{4407,6088,2}, {4422,6090,2},{4422,6095,2},{4418,6097,2},{4422,6098,2},{4433,6097,2},{4432,6100,2}, {4423,6103,2},{4417,6102,2},{4417,6107,2},{4410,6110,2},{4422,6108,2},{4423,6105,2}, {4435,6103,2},{4438,6105,2},{4435,6107,2},{4433,6107,2},{4432,6108,2},{4423,6110,2}, {4422,6113,2},{4418,6113,2},{4422,6115,2},{4428,6112,2},{4433,6113,2},{4433,6117,2}, {4428,6118,2},{4433,6118,2},{4435,6117,2},{4440,6118,2},{4440,6122,2},{4438,6123,2}, {4445,6123,2},{4440,6115,2},{4443,6112,2},{4445,6113,2},{4448,6117,2},{4450,6113,2}, {4453,6112,2},{4453,6107,2},{4457,6108,2},{4458,6112,2},{4460,6112,2},{4457,6117,2}, {4460,6117,2},{4462,6122,2},{4463,6120,2},{4463,6113,2},{4465,6112,2},{4467,6117,2}, {4465,6118,2},{4468,6123,2},{4463,6127,2},{4463,6128,2},{4465,6128,2},{4467,6130,2}, {4468,6142,2},{4473,6145,2},{4643,7418,130},{4643,7422,2},{4645,7423,2}, {4648,7428,2},{4650,7437,2},{4657,7442,2},{4660,7453,2},{4672,7457,2},{4675,7458,2}, {4673,7462,2},{4673,7463,2},{4677,7462,2},{4677,7485,2},{4682,7488,2},{4680,7493,2}, {4682,7495,2},{4683,7497,2},{4682,7500,2},{4678,7497,2},{4677,7500,2},{4680,7507,2}, {4685,7507,2},{4685,7508,2},{4678,7512,2},{4672,7530,2},{4673,7550,2},{4680,7570,2}, {4678,7572,2},{4680,7575,2},{4678,7583,2},{4680,7585,2},{4683,7592,2},{4682,7595,2}, {4680,7593,2},{4678,7597,2},{4677,7595,2},{4677,7600,2},{4680,7605,2},{4678,7607,2}, {4680,7610,2},{4680,7617,2},{4673,7637,2},{4667,7638,2},{4663,7640,2},{4665,7640,2}, {4662,7652,2},{4665,7653,2},{4667,7660,2},{4665,7668,2},{4668,7672,2},{4665,7673,2}, {4663,7672,2},{4657,7693,2},{4665,7683,2},{4668,7685,2},{4663,7693,2},{4665,7700,2}, {4663,7707,2},{4655,7713,2},{4655,7723,2},{4658,7725,2},{4662,7728,2},{4662,7740,2}, {4665,7748,2},{4663,7753,2},{4663,7763,2},{4663,7765,2},{4667,7762,2},{4665,7767,2}, {4667,7770,2},{4665,7775,2},{4665,7788,2},{4663,7793,2},{4658,7805,2},{4662,7812,2}, {4660,7815,2},{4655,7818,2},{4655,7823,2},{4648,7825,2},{4645,7832,2},{4650,7833,2}, {4653,7837,2},{4660,7835,2},{4667,7835,2},{4667,7838,2},{4660,7838,2},{4660,7842,2}, {4663,7840,2},{4667,7845,2},{4667,7847,2},{4663,7843,2},{4660,7847,2},{4667,7850,2}, {4675,7860,2},{4672,7877,2},{4667,7882,2},{4662,7880,2},{4662,7892,2},{4663,7893,2}, {4670,7882,2},{4675,7877,2},{4678,7878,2},{4680,7888,2},{4678,7893,2},{4675,7897,2}, {4673,7902,2},{4678,7902,2},{4682,7902,2},{4682,7903,2},{4680,7917,2},{4672,7923,2}, {4667,7925,2},{4662,7923,2},{4660,7908,2},{4647,7907,2},{4637,7893,2},{4637,7888,2}, {4638,7873,2},{4637,7867,2},{4638,7860,2},{4640,7855,2},{4640,7852,2},{4640,7845,2}, {4637,7842,2},{4633,7842,2},{4632,7848,2},{4628,7843,2},{4628,7840,2},{4633,7838,2}, {4637,7832,2},{4635,7828,2},{4633,7827,2},{4635,7812,2},{4633,7812,2},{4632,7818,2}, {4632,7805,2},{4643,7785,2},{4642,7777,2},{4642,7775,2},{4640,7783,2},{4640,7777,2}, {4637,7770,2},{4640,7773,2},{4640,7760,2},{4650,7742,2},{4648,7733,2},{4645,7725,2}, {4647,7723,2},{4648,7717,2},{4645,7710,2},{4645,7703,2},{4647,7693,2},{4645,7692,2}, {4647,7690,2},{4652,7677,2},{4653,7668,2},{4653,7660,2},{4653,7645,2},{4653,7640,2}, {4657,7633,2},{4657,7627,2},{4657,7628,2},{4657,7625,2},{4653,7625,2},{4655,7623,2}, {4655,7620,2},{4652,7620,2},{4653,7610,2},{4655,7607,2},{4653,7605,2},{4652,7608,2}, {4650,7607,2},{4652,7603,2},{4650,7593,2},{4652,7597,2},{4653,7595,2},{4655,7590,2}, {4652,7585,2},{4650,7577,2},{4652,7577,2},{4652,7568,2},{4648,7567,2},{4650,7565,2}, {4647,7555,2},{4648,7553,2},{4650,7558,2},{4652,7558,2},{4655,7552,2},{4662,7547,2}, {4665,7552,2},{4662,7552,2},{4662,7557,2},{4663,7555,2},{4667,7558,2},{4667,7547,2}, {4660,7540,2},{4648,7547,2},{4648,7543,2},{4648,7540,2},{4645,7537,2},{4648,7533,2}, {4652,7535,2},{4653,7532,2},{4652,7527,2},{4650,7525,2},{4648,7528,2},{4648,7525,2}, {4645,7528,2},{4642,7522,2},{4643,7515,2},{4642,7513,2},{4643,7508,2},{4648,7515,2}, {4648,7512,2},{4647,7508,2},{4640,7505,2},{4638,7500,2},{4642,7492,2},{4640,7490,2}, {4633,7487,2},{4627,7485,2},{4618,7478,2},{4613,7482,2},{4610,7478,2},{4607,7472,2}, {4608,7470,2},{4608,7467,2},{4605,7462,2},{4603,7462,2},{4602,7458,2},{4600,7457,2}, {4602,7455,2},{4598,7452,2},{4598,7450,2},{4603,7443,2},{4602,7435,2},{4602,7430,2}, {4598,7423,2},{4595,7423,2},{4590,7427,2},{4578,7432,2},{4575,7428,2},{4577,7428,2}, {4577,7423,2},{4572,7423,2},{4572,7428,2},{4570,7433,2},{4567,7433,2},{4565,7432,2}, {4568,7425,2},{4567,7425,2},{4565,7427,2},{4562,7427,2},{4555,7410,2},{4550,7407,2}, {4547,7410,2},{4542,7407,2},{4537,7410,2},{4533,7407,2},{4532,7410,2},{4533,7415,2}, {4535,7415,2},{4533,7417,2},{4518,7413,2},{4508,7417,2},{4505,7412,2},{4505,7407,2}, {4502,7408,2},{4503,7413,2},{4500,7412,2},{4498,7413,2},{4497,7413,2},{4498,7410,2}, {4500,7400,2},{4503,7400,2},{4505,7403,2},{4510,7398,2},{4513,7398,2},{4513,7403,2}, {4515,7400,2},{4518,7400,2},{4520,7398,2},{4522,7400,2},{4522,7388,2},{4525,7387,2}, {4528,7380,2},{4530,7382,2},{4535,7373,2},{4535,7377,2},{4538,7370,2},{4550,7363,2}, {4557,7353,2},{4557,7347,2},{4558,7343,2},{4568,7345,2},{4567,7350,2},{4568,7352,2}, {4572,7352,2},{4575,7357,2},{4578,7343,2},{4580,7342,2},{4582,7347,2},{4583,7348,2}, {4582,7352,2},{4580,7358,2},{4587,7360,2},{4587,7362,2},{4588,7360,2},{4588,7363,2}, {4592,7365,2},{4593,7363,2},{4597,7368,2},{4597,7365,2},{4598,7365,2},{4597,7375,2}, {4598,7373,2},{4602,7373,2},{4608,7363,2},{4612,7365,2},{4613,7363,2},{4615,7367,2}, {4618,7368,2},{4618,7373,2},{4623,7375,2},{4622,7378,2},{4620,7378,2},{4617,7383,2}, {4620,7385,2},{4620,7388,2},{4620,7393,2},{4618,7397,2},{4618,7400,2},{4622,7405,2}, {4622,7400,2},{4625,7400,2},{4627,7398,2},{4625,7395,2},{4630,7395,2},{4632,7398,2}, {4633,7398,2},{4642,7408,2},{4645,7415,2},{4643,7420,2},{4272,7800,130}, {4275,7820,2},{4273,7830,2},{4273,7827,2},{4272,7825,2},{4272,7820,2},{4267,7817,2}, {4267,7812,2},{4262,7808,2},{4260,7810,2},{4258,7823,2},{4260,7830,2},{4258,7832,2}, {4257,7832,2},{4257,7812,2},{4248,7803,2},{4243,7785,2},{4242,7782,2},{4240,7782,2}, {4238,7788,2},{4237,7792,2},{4235,7783,2},{4228,7780,2},{4220,7768,2},{4218,7755,2}, {4217,7750,2},{4217,7747,2},{4217,7737,2},{4217,7728,2},{4215,7707,2},{4218,7697,2}, {4217,7693,2},{4218,7692,2},{4222,7682,2},{4225,7675,2},{4227,7657,2},{4233,7640,2}, {4233,7635,2},{4232,7632,2},{4232,7627,2},{4238,7620,2},{4240,7622,2},{4245,7618,2}, {4247,7620,2},{4248,7630,2},{4247,7645,2},{4250,7650,2},{4252,7662,2},{4255,7665,2}, {4257,7668,2},{4262,7698,2},{4260,7702,2},{4263,7707,2},{4265,7717,2},{4265,7723,2}, {4268,7735,2},{4265,7750,2},{4272,7780,2},{4272,7785,2},{4272,7803,2},{7448,10280,130}, {7453,10272,2},{7458,10318,2},{7458,10347,2},{7463,10357,2},{7463,10368,2}, {7462,10397,2},{7465,10403,2},{7467,10397,2},{7472,10395,2},{7468,10408,2}, {7472,10433,2},{7478,10477,2},{7477,10497,2},{7475,10513,2},{7480,10563,2}, {7483,10580,2},{7485,10568,2},{7483,10538,2},{7483,10520,2},{7492,10473,2}, {7510,10450,2},{7513,10420,2},{7512,10413,2},{7502,10410,2},{7498,10393,2}, {7498,10383,2},{7492,10380,2},{7487,10402,2},{7485,10403,2},{7488,10420,2}, {7488,10442,2},{7483,10435,2},{7478,10418,2},{7480,10397,2},{7480,10385,2}, {7473,10367,2},{7472,10353,2},{7468,10343,2},{7468,10323,2},{7462,10303,2}, {7465,10300,2},{7463,10288,2},{7462,10272,2},{7465,10248,2},{7463,10197,2}, {7462,10193,2},{7463,10183,2},{7462,10137,2},{7467,10107,2},{7473,10083,2}, {7475,10065,2},{7477,10062,2},{7480,10055,2},{7490,10057,2},{7490,10040,2}, {7492,10047,2},{7492,10057,2},{7498,10065,2},{7503,10063,2},{7508,10057,2}, {7508,10038,2},{7513,10037,2},{7513,10022,2},{7515,10023,2},{7517,10018,2}, {7517,10007,2},{7513,10000,2},{7510,10007,2},{7507,10002,2},{7507,10052,2}, {7505,10055,2},{7502,10050,2},{7497,10055,2},{7493,10045,2},{7493,10038,2}, {7495,10038,2},{7495,10030,2},{7493,10030,2},{7488,10005,2},{7487,10012,2}, {7483,10012,2},{7482,10040,2},{7473,10038,2},{7460,10057,2},{7457,10047,2}, {7453,10047,2},{7455,10042,2},{7453,10037,2},{7450,10022,2},{7445,10022,2}, {7437,10005,2},{7438,9990,2},{7443,9968,2},{7443,9952,2},{7442,9947,2}, {7443,9938,2},{7442,9917,2},{7440,9913,2},{7437,9932,2},{7437,9975,2},{7433,9987,2}, {7430,9978,2},{7433,9997,2},{7433,10018,2},{7435,10030,2},{7433,10045,2}, {7430,10048,2},{7428,10057,2},{7430,10065,2},{7432,10080,2},{7423,10095,2}, {7412,10100,2},{7403,10115,2},{7392,10102,2},{7390,10092,2},{7383,10092,2}, {7387,10107,2},{7385,10133,2},{7382,10145,2},{7383,10157,2},{7395,10148,2}, {7398,10157,2},{7400,10148,2},{7417,10122,2},{7423,10118,2},{7433,10103,2}, {7438,10113,2},{7442,10112,2},{7443,10093,2},{7440,10083,2},{7442,10072,2}, {7443,10058,2},{7447,10085,2},{7448,10113,2},{7450,10120,2},{7450,10132,2}, {7448,10140,2},{7443,10132,2},{7438,10133,2},{7432,10157,2},{7425,10175,2}, {7425,10198,2},{7422,10198,2},{7425,10208,2},{7422,10217,2},{7423,10220,2}, {7427,10218,2},{7427,10208,2},{7430,10205,2},{7432,10208,2},{7437,10203,2}, {7447,10188,2},{7452,10192,2},{7453,10243,2},{7452,10253,2},{7448,10280,2}, {6287,3463,130},{6283,3467,2},{6282,3473,2},{6285,3477,2},{6283,3488,2}, {6277,3505,2},{6275,3507,2},{6277,3497,2},{6273,3505,2},{6272,3517,2},{6268,3522,2}, {6267,3540,2},{6263,3542,2},{6262,3542,2},{6257,3550,2},{6262,3548,2},{6263,3552,2}, {6255,3555,2},{6257,3558,2},{6255,3570,2},{6248,3580,2},{6242,3585,2},{6232,3583,2}, {6218,3577,2},{6210,3568,2},{6205,3565,2},{6200,3572,2},{6197,3582,2},{6195,3587,2}, {6190,3583,2},{6187,3585,2},{6185,3582,2},{6183,3583,2},{6180,3595,2},{6172,3603,2}, {6165,3602,2},{6158,3618,2},{6152,3623,2},{6148,3623,2},{6145,3637,2},{6140,3643,2}, {6130,3643,2},{6128,3640,2},{6128,3637,2},{6125,3633,2},{6117,3645,2},{6117,3638,2}, {6113,3633,2},{6107,3622,2},{6108,3608,2},{6102,3605,2},{6095,3595,2},{6093,3580,2}, {6093,3585,2},{6092,3583,2},{6092,3595,2},{6088,3593,2},{6085,3587,2},{6088,3580,2}, {6087,3575,2},{6090,3578,2},{6092,3577,2},{6088,3563,2},{6090,3555,2},{6095,3550,2}, {6098,3552,2},{6105,3538,2},{6105,3533,2},{6100,3527,2},{6102,3522,2},{6098,3513,2}, {6100,3510,2},{6102,3515,2},{6105,3512,2},{6107,3497,2},{6108,3493,2},{6110,3490,2}, {6108,3487,2},{6105,3492,2},{6102,3483,2},{6113,3478,2},{6115,3482,2},{6123,3482,2}, {6122,3490,2},{6118,3498,2},{6120,3505,2},{6122,3510,2},{6118,3517,2},{6117,3525,2}, {6117,3522,2},{6113,3522,2},{6118,3510,2},{6117,3505,2},{6112,3503,2},{6105,3517,2}, {6105,3523,2},{6108,3530,2},{6107,3542,2},{6105,3545,2},{6100,3555,2},{6112,3570,2}, {6115,3568,2},{6118,3560,2},{6123,3562,2},{6127,3555,2},{6132,3555,2},{6133,3550,2}, {6137,3548,2},{6138,3537,2},{6142,3535,2},{6145,3528,2},{6148,3525,2},{6148,3518,2}, {6150,3512,2},{6148,3505,2},{6153,3503,2},{6153,3488,2},{6158,3478,2},{6158,3472,2}, {6163,3467,2},{6165,3463,2},{6177,3445,2},{6182,3432,2},{6183,3435,2},{6188,3428,2}, {6190,3430,2},{6185,3437,2},{6183,3437,2},{6182,3448,2},{6177,3457,2},{6185,3458,2}, {6185,3463,2},{6190,3462,2},{6203,3450,2},{6212,3428,2},{6215,3430,2},{6218,3423,2}, {6222,3428,2},{6227,3427,2},{6233,3415,2},{6240,3410,2},{6242,3403,2},{6240,3403,2}, {6237,3402,2},{6237,3398,2},{6247,3393,2},{6253,3397,2},{6252,3407,2},{6243,3407,2}, {6243,3412,2},{6235,3418,2},{6225,3437,2},{6223,3432,2},{6218,3432,2},{6210,3448,2}, {6208,3460,2},{6202,3473,2},{6205,3475,2},{6223,3457,2},{6223,3460,2},{6225,3462,2}, {6223,3463,2},{6217,3472,2},{6223,3470,2},{6233,3457,2},{6247,3443,2},{6235,3463,2}, {6225,3477,2},{6225,3480,2},{6232,3478,2},{6235,3475,2},{6245,3457,2},{6250,3455,2}, {6253,3448,2},{6260,3447,2},{6255,3450,2},{6245,3470,2},{6235,3482,2},{6227,3485,2}, {6232,3487,2},{6225,3487,2},{6225,3483,2},{6218,3488,2},{6205,3505,2},{6203,3515,2}, {6205,3515,2},{6210,3520,2},{6222,3502,2},{6222,3505,2},{6225,3502,2},{6222,3510,2}, {6217,3517,2},{6217,3528,2},{6212,3535,2},{6217,3538,2},{6217,3548,2},{6223,3558,2}, {6238,3553,2},{6248,3543,2},{6253,3535,2},{6257,3533,2},{6257,3530,2},{6252,3530,2}, {6255,3515,2},{6255,3510,2},{6257,3508,2},{6265,3495,2},{6265,3492,2},{6262,3497,2}, {6263,3490,2},{6263,3485,2},{6260,3483,2},{6257,3490,2},{6250,3498,2},{6242,3503,2}, {6255,3492,2},{6255,3488,2},{6253,3490,2},{6257,3483,2},{6267,3473,2},{6265,3470,2}, {6260,3477,2},{6260,3473,2},{6270,3467,2},{6275,3457,2},{6280,3457,2},{6285,3453,2}, {6285,3452,2},{6285,3448,2},{6290,3445,2},{6292,3448,2},{6292,3455,2},{6288,3458,2}, {6287,3463,2},{5895,3812,130},{5888,3820,2},{5855,3872,2},{5848,3892,2}, {5850,3907,2},{5847,3897,2},{5843,3895,2},{5840,3897,2},{5833,3908,2},{5835,3900,2}, {5835,3892,2},{5833,3885,2},{5827,3880,2},{5818,3880,2},{5810,3885,2},{5812,3878,2}, {5818,3875,2},{5825,3858,2},{5823,3857,2},{5810,3870,2},{5812,3863,2},{5808,3858,2}, {5810,3855,2},{5813,3848,2},{5815,3840,2},{5810,3833,2},{5808,3832,2},{5803,3842,2}, {5802,3843,2},{5803,3835,2},{5803,3825,2},{5810,3823,2},{5822,3827,2},{5825,3823,2}, {5825,3813,2},{5825,3808,2},{5827,3810,2},{5832,3792,2},{5830,3790,2},{5827,3792,2}, {5827,3790,2},{5833,3785,2},{5840,3775,2},{5840,3772,2},{5843,3768,2},{5843,3763,2}, {5845,3765,2},{5848,3758,2},{5852,3755,2},{5852,3750,2},{5858,3748,2},{5858,3743,2}, {5863,3738,2},{5865,3732,2},{5870,3725,2},{5868,3715,2},{5868,3708,2},{5872,3717,2}, {5872,3722,2},{5877,3715,2},{5882,3713,2},{5882,3717,2},{5888,3712,2},{5883,3720,2}, {5877,3727,2},{5877,3733,2},{5872,3735,2},{5873,3748,2},{5867,3737,2},{5862,3747,2}, {5862,3752,2},{5863,3752,2},{5862,3757,2},{5858,3755,2},{5855,3757,2},{5853,3763,2}, {5855,3767,2},{5858,3770,2},{5860,3768,2},{5858,3763,2},{5862,3763,2},{5863,3760,2}, {5865,3762,2},{5865,3767,2},{5860,3773,2},{5863,3773,2},{5863,3777,2},{5855,3793,2}, {5852,3808,2},{5853,3810,2},{5858,3808,2},{5860,3805,2},{5860,3813,2},{5862,3813,2}, {5867,3802,2},{5867,3795,2},{5868,3802,2},{5870,3800,2},{5872,3792,2},{5872,3795,2}, {5875,3793,2},{5872,3802,2},{5872,3805,2},{5877,3805,2},{5880,3798,2},{5888,3800,2}, {5887,3797,2},{5883,3793,2},{5885,3790,2},{5888,3790,2},{5888,3785,2},{5892,3785,2}, {5895,3773,2},{5892,3768,2},{5892,3753,2},{5883,3753,2},{5882,3750,2},{5887,3743,2}, {5890,3748,2},{5895,3748,2},{5895,3755,2},{5898,3758,2},{5897,3763,2},{5902,3773,2}, {5903,3768,2},{5905,3770,2},{5908,3767,2},{5910,3770,2},{5912,3770,2},{5918,3753,2}, {5913,3773,2},{5915,3778,2},{5913,3783,2},{5913,3788,2},{5915,3793,2},{5920,3798,2}, {5920,3805,2},{5918,3800,2},{5913,3795,2},{5908,3815,2},{5910,3818,2},{5915,3818,2}, {5918,3817,2},{5920,3810,2},{5922,3812,2},{5922,3820,2},{5918,3818,2},{5915,3827,2}, {5913,3833,2},{5913,3837,2},{5920,3842,2},{5918,3845,2},{5908,3837,2},{5908,3830,2}, {5907,3832,2},{5907,3825,2},{5907,3820,2},{5905,3820,2},{5905,3813,2},{5908,3810,2}, {5912,3793,2},{5910,3787,2},{5908,3777,2},{5903,3792,2},{5905,3795,2},{5898,3802,2}, {5900,3807,2},{5893,3813,2},{6173,3092,130},{6170,3107,2},{6163,3107,2}, {6162,3112,2},{6162,3117,2},{6163,3117,2},{6163,3122,2},{6167,3125,2},{6158,3130,2}, {6163,3133,2},{6162,3137,2},{6152,3153,2},{6143,3158,2},{6140,3165,2},{6142,3165,2}, {6145,3160,2},{6148,3160,2},{6138,3173,2},{6135,3187,2},{6132,3190,2},{6123,3223,2}, {6113,3252,2},{6107,3258,2},{6098,3258,2},{6098,3263,2},{6097,3263,2},{6085,3280,2}, {6072,3282,2},{6068,3292,2},{6065,3295,2},{6045,3278,2},{6050,3278,2},{6055,3265,2}, {6055,3262,2},{6052,3258,2},{6040,3268,2},{6035,3263,2},{6035,3257,2},{6025,3262,2}, {6018,3253,2},{6013,3228,2},{6018,3220,2},{6022,3217,2},{6022,3210,2},{6023,3210,2}, {6025,3198,2},{6023,3190,2},{6025,3183,2},{6023,3178,2},{6025,3173,2},{6023,3172,2}, {6017,3162,2},{6015,3157,2},{6013,3157,2},{6015,3160,2},{6013,3162,2},{6005,3153,2}, {5998,3158,2},{5993,3155,2},{5990,3148,2},{5990,3142,2},{5990,3138,2},{5993,3137,2}, {5993,3133,2},{5993,3125,2},{5992,3117,2},{5993,3105,2},{6002,3115,2},{6003,3117,2}, {6007,3108,2},{6010,3112,2},{6013,3112,2},{6020,3097,2},{6045,3085,2},{6047,3082,2}, {6043,3080,2},{6045,3077,2},{6052,3077,2},{6053,3072,2},{6058,3070,2},{6063,3052,2}, {6068,3053,2},{6073,3050,2},{6073,3053,2},{6083,3052,2},{6087,3043,2},{6088,3047,2}, {6095,3037,2},{6100,3028,2},{6103,3025,2},{6117,2988,2},{6122,2980,2},{6120,2992,2}, {6117,2995,2},{6115,3000,2},{6118,3002,2},{6122,2998,2},{6122,2988,2},{6123,2992,2}, {6125,2983,2},{6127,2987,2},{6130,2990,2},{6122,3007,2},{6125,3007,2},{6125,3010,2}, {6127,3007,2},{6130,3010,2},{6130,3020,2},{6130,3027,2},{6132,3025,2},{6133,3018,2}, {6133,3025,2},{6135,3023,2},{6135,3015,2},{6137,3015,2},{6138,3022,2},{6142,3020,2}, {6145,3025,2},{6143,3032,2},{6145,3035,2},{6148,3023,2},{6152,3023,2},{6152,3032,2}, {6148,3047,2},{6148,3048,2},{6153,3047,2},{6152,3052,2},{6153,3063,2},{6160,3055,2}, {6160,3060,2},{6170,3070,2},{6172,3075,2},{6175,3075,2},{6178,3083,2},{6177,3085,2}, {6175,3090,2},{6173,3087,2},{6173,3095,2},{5572,10948,130},{5575,10952,2}, {5577,10960,2},{5573,10982,2},{5575,10978,2},{5578,10962,2},{5578,10963,2}, {5578,10970,2},{5577,10975,2},{5578,10980,2},{5575,10987,2},{5572,10987,2}, {5567,10997,2},{5555,10983,2},{5553,10988,2},{5550,10985,2},{5547,10985,2}, {5547,10990,2},{5545,10985,2},{5535,10982,2},{5530,10977,2},{5523,10980,2}, {5515,10973,2},{5513,10975,2},{5510,10975,2},{5503,10978,2},{5498,10972,2}, {5492,10972,2},{5487,10967,2},{5483,10968,2},{5480,10963,2},{5468,10963,2}, {5465,10955,2},{5462,10952,2},{5443,10952,2},{5438,10948,2},{5433,10952,2}, {5430,10947,2},{5415,10957,2},{5412,10952,2},{5402,10947,2},{5388,10927,2}, {5382,10922,2},{5380,10918,2},{5378,10918,2},{5375,10922,2},{5368,10918,2}, {5367,10922,2},{5362,10917,2},{5362,10903,2},{5363,10898,2},{5367,10903,2}, {5373,10908,2},{5377,10902,2},{5382,10907,2},{5387,10903,2},{5385,10890,2}, {5378,10880,2},{5362,10867,2},{5352,10853,2},{5352,10857,2},{5355,10867,2}, {5360,10887,2},{5358,10890,2},{5350,10898,2},{5340,10900,2},{5335,10897,2}, {5332,10885,2},{5328,10882,2},{5327,10875,2},{5330,10868,2},{5328,10862,2}, {5320,10845,2},{5317,10843,2},{5310,10830,2},{5307,10830,2},{5305,10833,2}, {5302,10833,2},{5292,10818,2},{5283,10800,2},{5278,10797,2},{5272,10780,2}, {5270,10753,2},{5267,10742,2},{5262,10733,2},{5257,10713,2},{5245,10690,2}, {5238,10687,2},{5232,10682,2},{5232,10678,2},{5233,10673,2},{5237,10665,2}, {5238,10655,2},{5237,10647,2},{5233,10640,2},{5233,10633,2},{5225,10623,2}, {5213,10628,2},{5208,10625,2},{5210,10623,2},{5205,10622,2},{5200,10617,2}, {5195,10620,2},{5190,10610,2},{5187,10607,2},{5182,10600,2},{5173,10592,2}, {5173,10585,2},{5170,10580,2},{5165,10553,2},{5160,10538,2},{5157,10513,2}, {5153,10493,2},{5150,10488,2},{5147,10477,2},{5148,10463,2},{5147,10452,2}, {5150,10442,2},{5150,10427,2},{5160,10393,2},{5162,10385,2},{5168,10372,2}, {5170,10372,2},{5172,10373,2},{5175,10408,2},{5180,10440,2},{5178,10463,2}, {5187,10475,2},{5187,10498,2},{5190,10508,2},{5192,10523,2},{5198,10530,2}, {5203,10545,2},{5212,10558,2},{5218,10567,2},{5223,10570,2},{5247,10595,2}, {5257,10617,2},{5263,10643,2},{5273,10658,2},{5277,10657,2},{5277,10662,2}, {5282,10665,2},{5287,10677,2},{5293,10680,2},{5298,10692,2},{5303,10685,2}, {5302,10678,2},{5302,10673,2},{5308,10683,2},{5310,10688,2},{5313,10690,2}, {5317,10698,2},{5322,10702,2},{5328,10715,2},{5343,10753,2},{5347,10757,2}, {5350,10755,2},{5363,10765,2},{5382,10802,2},{5383,10807,2},{5392,10820,2}, {5400,10823,2},{5405,10828,2},{5415,10830,2},{5418,10838,2},{5428,10847,2}, {5430,10850,2},{5448,10858,2},{5460,10873,2},{5472,10882,2},{5478,10885,2}, {5482,10885,2},{5485,10892,2},{5492,10895,2},{5495,10890,2},{5503,10903,2}, {5505,10910,2},{5510,10912,2},{5518,10918,2},{5532,10920,2},{5538,10922,2}, {5543,10918,2},{5545,10920,2},{5547,10917,2},{5555,10920,2},{5558,10923,2}, {5562,10935,2},{5565,10937,2},{5568,10943,2},{5575,10950,2},{5620,10223,130}, {5622,10227,2},{5623,10230,2},{5625,10228,2},{5625,10223,2},{5628,10225,2}, {5623,10238,2},{5625,10250,2},{5627,10245,2},{5628,10250,2},{5632,10248,2}, {5635,10245,2},{5637,10250,2},{5632,10253,2},{5632,10258,2},{5635,10258,2}, {5633,10262,2},{5632,10262,2},{5630,10258,2},{5623,10258,2},{5622,10277,2}, {5623,10278,2},{5628,10280,2},{5630,10282,2},{5623,10282,2},{5620,10283,2}, {5618,10287,2},{5620,10288,2},{5620,10290,2},{5618,10290,2},{5617,10293,2}, {5618,10298,2},{5623,10300,2},{5623,10305,2},{5620,10305,2},{5613,10297,2}, {5605,10305,2},{5603,10302,2},{5592,10302,2},{5583,10307,2},{5577,10322,2}, {5575,10322,2},{5570,10327,2},{5568,10323,2},{5563,10325,2},{5562,10322,2}, {5557,10320,2},{5553,10320,2},{5552,10323,2},{5550,10320,2},{5530,10335,2}, {5512,10335,2},{5508,10333,2},{5500,10327,2},{5492,10312,2},{5477,10308,2}, {5473,10310,2},{5470,10322,2},{5463,10325,2},{5463,10330,2},{5462,10327,2}, {5443,10327,2},{5443,10333,2},{5442,10330,2},{5438,10333,2},{5430,10333,2}, {5420,10340,2},{5413,10352,2},{5417,10340,2},{5425,10333,2},{5437,10332,2}, {5438,10327,2},{5437,10320,2},{5425,10305,2},{5415,10300,2},{5407,10305,2}, {5403,10312,2},{5397,10318,2},{5390,10328,2},{5388,10327,2},{5385,10333,2}, {5385,10328,2},{5382,10328,2},{5363,10345,2},{5362,10353,2},{5363,10357,2}, {5365,10357,2},{5363,10358,2},{5360,10360,2},{5358,10367,2},{5358,10370,2}, {5363,10373,2},{5363,10378,2},{5353,10370,2},{5347,10377,2},{5347,10373,2}, {5350,10368,2},{5355,10365,2},{5358,10352,2},{5358,10343,2},{5355,10342,2}, {5352,10342,2},{5353,10338,2},{5335,10343,2},{5327,10343,2},{5317,10337,2}, {5310,10338,2},{5310,10337,2},{5317,10333,2},{5328,10338,2},{5340,10338,2}, {5353,10333,2},{5365,10335,2},{5370,10333,2},{5372,10330,2},{5373,10310,2}, {5378,10292,2},{5378,10282,2},{5382,10292,2},{5375,10317,2},{5375,10325,2}, {5377,10325,2},{5387,10322,2},{5397,10315,2},{5400,10307,2},{5402,10307,2}, {5407,10298,2},{5415,10297,2},{5425,10302,2},{5437,10315,2},{5442,10312,2}, {5443,10305,2},{5443,10313,2},{5438,10320,2},{5443,10325,2},{5465,10322,2}, {5468,10318,2},{5473,10307,2},{5480,10305,2},{5492,10308,2},{5503,10325,2}, {5513,10332,2},{5530,10332,2},{5538,10327,2},{5548,10315,2},{5562,10318,2}, {5572,10318,2},{5580,10308,2},{5583,10298,2},{5595,10295,2},{5598,10297,2}, {5603,10295,2},{5610,10288,2},{5613,10283,2},{5608,10278,2},{5610,10277,2}, {5613,10278,2},{5615,10277,2},{5615,10265,2},{5615,10262,2},{5615,10258,2}, {5617,10253,2},{5615,10252,2},{5615,10245,2},{5610,10252,2},{5610,10248,2}, {5613,10243,2},{5612,10240,2},{5610,10238,2},{5605,10253,2},{5602,10255,2}, {5607,10242,2},{5607,10235,2},{5613,10233,2},{5610,10218,2},{5607,10222,2}, {5607,10212,2},{5603,10217,2},{5607,10207,2},{5605,10200,2},{5603,10202,2}, {5602,10195,2},{5600,10195,2},{5600,10200,2},{5598,10200,2},{5598,10202,2}, {5597,10198,2},{5593,10202,2},{5590,10197,2},{5587,10197,2},{5582,10185,2}, {5575,10185,2},{5573,10192,2},{5572,10195,2},{5572,10205,2},{5573,10208,2}, {5568,10217,2},{5567,10217,2},{5568,10198,2},{5568,10195,2},{5560,10213,2}, {5562,10220,2},{5558,10237,2},{5555,10240,2},{5548,10238,2},{5542,10228,2}, {5533,10233,2},{5528,10228,2},{5532,10237,2},{5530,10242,2},{5528,10243,2}, {5525,10242,2},{5525,10228,2},{5518,10235,2},{5515,10233,2},{5512,10223,2}, {5510,10225,2},{5507,10223,2},{5505,10213,2},{5503,10208,2},{5503,10207,2}, {5507,10210,2},{5508,10220,2},{5512,10217,2},{5513,10218,2},{5517,10230,2}, {5522,10227,2},{5525,10227,2},{5528,10242,2},{5530,10238,2},{5527,10230,2}, {5528,10225,2},{5533,10232,2},{5543,10225,2},{5545,10228,2},{5548,10235,2}, {5553,10233,2},{5553,10218,2},{5552,10218,2},{5550,10222,2},{5548,10222,2}, {5550,10217,2},{5547,10198,2},{5543,10185,2},{5540,10185,2},{5542,10182,2}, {5540,10173,2},{5542,10182,2},{5545,10173,2},{5547,10173,2},{5548,10167,2}, {5548,10173,2},{5547,10187,2},{5548,10195,2},{5550,10203,2},{5552,10212,2}, {5553,10213,2},{5558,10185,2},{5560,10187,2},{5563,10180,2},{5568,10180,2}, {5568,10177,2},{5572,10182,2},{5578,10182,2},{5580,10173,2},{5583,10173,2}, {5583,10170,2},{5583,10162,2},{5585,10162,2},{5587,10150,2},{5588,10148,2}, {5590,10155,2},{5592,10150,2},{5595,10147,2},{5595,10140,2},{5590,10142,2}, {5588,10135,2},{5592,10137,2},{5593,10135,2},{5600,10118,2},{5600,10127,2}, {5597,10138,2},{5598,10147,2},{5590,10165,2},{5598,10158,2},{5598,10162,2}, {5598,10167,2},{5593,10168,2},{5592,10170,2},{5597,10175,2},{5598,10172,2}, {5600,10175,2},{5605,10168,2},{5603,10182,2},{5607,10175,2},{5608,10177,2}, {5610,10160,2},{5612,10167,2},{5615,10167,2},{5617,10173,2},{5622,10168,2}, {5627,10168,2},{5628,10173,2},{5628,10180,2},{5627,10183,2},{5622,10182,2}, {5620,10185,2},{5622,10193,2},{5627,10197,2},{5625,10203,2},{5623,10203,2}, {5623,10198,2},{5620,10197,2},{5620,10190,2},{5617,10195,2},{5617,10185,2}, {5615,10188,2},{5613,10178,2},{5612,10178,2},{5608,10187,2},{5612,10190,2}, {5617,10212,2},{5618,10212,2},{5620,10223,2},{5895,2772,130},{5890,2772,2}, {5885,2780,2},{5867,2777,2},{5857,2783,2},{5848,2785,2},{5843,2780,2},{5843,2777,2}, {5847,2778,2},{5835,2763,2},{5830,2765,2},{5832,2753,2},{5823,2752,2},{5823,2758,2}, {5818,2760,2},{5817,2758,2},{5817,2760,2},{5813,2762,2},{5815,2765,2},{5817,2775,2}, {5818,2780,2},{5817,2785,2},{5817,2795,2},{5815,2797,2},{5812,2803,2},{5807,2805,2}, {5800,2815,2},{5797,2813,2},{5792,2818,2},{5785,2813,2},{5787,2808,2},{5785,2795,2}, {5790,2792,2},{5792,2785,2},{5793,2790,2},{5795,2790,2},{5798,2780,2},{5802,2778,2}, {5803,2773,2},{5803,2765,2},{5802,2767,2},{5797,2760,2},{5803,2758,2},{5808,2760,2}, {5810,2755,2},{5820,2747,2},{5825,2747,2},{5828,2742,2},{5837,2742,2},{5840,2733,2}, {5840,2727,2},{5842,2723,2},{5862,2720,2},{5872,2712,2},{5878,2695,2},{5883,2695,2}, {5888,2698,2},{5895,2707,2},{5898,2727,2},{5902,2752,2},{5898,2773,2},{5895,2772,2}, {5838,2612,130},{5833,2615,2},{5822,2613,2},{5817,2608,2},{5810,2608,2}, {5818,2605,2},{5820,2600,2},{5825,2598,2},{5832,2592,2},{5842,2598,2},{5840,2608,2}, {5838,2612,2},{5572,10948,130},{5575,10952,2},{5577,10960,2},{5573,10982,2}, {5575,10978,2},{5578,10962,2},{5578,10963,2},{5578,10970,2},{5577,10975,2}, {5578,10980,2},{5575,10987,2},{5572,10987,2},{5567,10997,2},{5555,10983,2}, {5553,10988,2},{5550,10985,2},{5547,10985,2},{5547,10990,2},{5545,10985,2}, {5535,10982,2},{5530,10977,2},{5523,10980,2},{5515,10973,2},{5513,10975,2}, {5510,10975,2},{5503,10978,2},{5498,10972,2},{5492,10972,2},{5487,10967,2}, {5483,10968,2},{5480,10963,2},{5468,10963,2},{5465,10955,2},{5462,10952,2}, {5443,10952,2},{5438,10948,2},{5433,10952,2},{5430,10947,2},{5415,10957,2}, {5412,10952,2},{5402,10947,2},{5388,10927,2},{5382,10922,2},{5380,10918,2}, {5378,10918,2},{5375,10922,2},{5368,10918,2},{5367,10922,2},{5362,10917,2}, {5362,10903,2},{5363,10898,2},{5367,10903,2},{5373,10908,2},{5377,10902,2}, {5382,10907,2},{5387,10903,2},{5385,10890,2},{5378,10880,2},{5362,10867,2}, {5352,10853,2},{5352,10857,2},{5355,10867,2},{5360,10887,2},{5358,10890,2}, {5350,10898,2},{5340,10900,2},{5335,10897,2},{5332,10885,2},{5328,10882,2}, {5327,10875,2},{5330,10868,2},{5328,10862,2},{5320,10845,2},{5317,10843,2}, {5310,10830,2},{5307,10830,2},{5305,10833,2},{5302,10833,2},{5292,10818,2}, {5283,10800,2},{5278,10797,2},{5272,10780,2},{5270,10753,2},{5267,10742,2}, {5262,10733,2},{5257,10713,2},{5245,10690,2},{5238,10687,2},{5232,10682,2}, {5232,10678,2},{5233,10673,2},{5237,10665,2},{5238,10655,2},{5237,10647,2}, {5233,10640,2},{5233,10633,2},{5225,10623,2},{5213,10628,2},{5208,10625,2}, {5210,10623,2},{5205,10622,2},{5200,10617,2},{5195,10620,2},{5190,10610,2}, {5187,10607,2},{5182,10600,2},{5173,10592,2},{5173,10585,2},{5170,10580,2}, {5165,10553,2},{5160,10538,2},{5157,10513,2},{5153,10493,2},{5150,10488,2}, {5147,10477,2},{5148,10463,2},{5147,10452,2},{5150,10442,2},{5150,10427,2}, {5160,10393,2},{5162,10385,2},{5168,10372,2},{5170,10372,2},{5172,10373,2}, {5175,10408,2},{5180,10440,2},{5178,10463,2},{5187,10475,2},{5187,10498,2}, {5190,10508,2},{5192,10523,2},{5198,10530,2},{5203,10545,2},{5212,10558,2}, {5218,10567,2},{5223,10570,2},{5247,10595,2},{5257,10617,2},{5263,10643,2}, {5273,10658,2},{5277,10657,2},{5277,10662,2},{5282,10665,2},{5287,10677,2}, {5293,10680,2},{5298,10692,2},{5303,10685,2},{5302,10678,2},{5302,10673,2}, {5308,10683,2},{5310,10688,2},{5313,10690,2},{5317,10698,2},{5322,10702,2}, {5328,10715,2},{5343,10753,2},{5347,10757,2},{5350,10755,2},{5363,10765,2}, {5382,10802,2},{5383,10807,2},{5392,10820,2},{5400,10823,2},{5405,10828,2}, {5415,10830,2},{5418,10838,2},{5428,10847,2},{5430,10850,2},{5448,10858,2}, {5460,10873,2},{5472,10882,2},{5478,10885,2},{5482,10885,2},{5485,10892,2}, {5492,10895,2},{5495,10890,2},{5503,10903,2},{5505,10910,2},{5510,10912,2}, {5518,10918,2},{5532,10920,2},{5538,10922,2},{5543,10918,2},{5545,10920,2}, {5547,10917,2},{5555,10920,2},{5558,10923,2},{5562,10935,2},{5565,10937,2}, {5568,10943,2},{5575,10950,2},{5223,10440,130},{5220,10443,2},{5220,10447,2}, {5217,10447,2},{5218,10452,2},{5215,10448,2},{5212,10457,2},{5200,10467,2}, {5192,10480,2},{5193,10472,2},{5198,10467,2},{5200,10462,2},{5210,10452,2}, {5210,10450,2},{5205,10447,2},{5205,10443,2},{5208,10447,2},{5213,10443,2}, {5215,10445,2},{5217,10442,2},{5215,10438,2},{5218,10440,2},{5220,10438,2}, {5220,10435,2},{5223,10433,2},{5225,10433,2},{5223,10440,2},{5620,10223,130}, {5622,10227,2},{5623,10230,2},{5625,10228,2},{5625,10223,2},{5628,10225,2}, {5623,10238,2},{5625,10250,2},{5627,10245,2},{5628,10250,2},{5632,10248,2}, {5635,10245,2},{5637,10250,2},{5632,10253,2},{5632,10258,2},{5635,10258,2}, {5633,10262,2},{5632,10262,2},{5630,10258,2},{5623,10258,2},{5622,10277,2}, {5623,10278,2},{5628,10280,2},{5630,10282,2},{5623,10282,2},{5620,10283,2}, {5618,10287,2},{5620,10288,2},{5620,10290,2},{5618,10290,2},{5617,10293,2}, {5618,10298,2},{5623,10300,2},{5623,10305,2},{5620,10305,2},{5613,10297,2}, {5605,10305,2},{5603,10302,2},{5592,10302,2},{5583,10307,2},{5577,10322,2}, {5575,10322,2},{5570,10327,2},{5568,10323,2},{5563,10325,2},{5562,10322,2}, {5557,10320,2},{5553,10320,2},{5552,10323,2},{5550,10320,2},{5530,10335,2}, {5512,10335,2},{5508,10333,2},{5500,10327,2},{5492,10312,2},{5477,10308,2}, {5473,10310,2},{5470,10322,2},{5463,10325,2},{5463,10330,2},{5462,10327,2}, {5443,10327,2},{5443,10333,2},{5442,10330,2},{5438,10333,2},{5430,10333,2}, {5420,10340,2},{5413,10352,2},{5417,10340,2},{5425,10333,2},{5437,10332,2}, {5438,10327,2},{5437,10320,2},{5425,10305,2},{5415,10300,2},{5407,10305,2}, {5403,10312,2},{5397,10318,2},{5390,10328,2},{5388,10327,2},{5385,10333,2}, {5385,10328,2},{5382,10328,2},{5363,10345,2},{5362,10353,2},{5363,10357,2}, {5365,10357,2},{5363,10358,2},{5360,10360,2},{5358,10367,2},{5358,10370,2}, {5363,10373,2},{5363,10378,2},{5353,10370,2},{5347,10377,2},{5347,10373,2}, {5350,10368,2},{5355,10365,2},{5358,10352,2},{5358,10343,2},{5355,10342,2}, {5352,10342,2},{5353,10338,2},{5335,10343,2},{5327,10343,2},{5317,10337,2}, {5310,10338,2},{5310,10337,2},{5317,10333,2},{5328,10338,2},{5340,10338,2}, {5353,10333,2},{5365,10335,2},{5370,10333,2},{5372,10330,2},{5373,10310,2}, {5378,10292,2},{5378,10282,2},{5382,10292,2},{5375,10317,2},{5375,10325,2}, {5377,10325,2},{5387,10322,2},{5397,10315,2},{5400,10307,2},{5402,10307,2}, {5407,10298,2},{5415,10297,2},{5425,10302,2},{5437,10315,2},{5442,10312,2}, {5443,10305,2},{5443,10313,2},{5438,10320,2},{5443,10325,2},{5465,10322,2}, {5468,10318,2},{5473,10307,2},{5480,10305,2},{5492,10308,2},{5503,10325,2}, {5513,10332,2},{5530,10332,2},{5538,10327,2},{5548,10315,2},{5562,10318,2}, {5572,10318,2},{5580,10308,2},{5583,10298,2},{5595,10295,2},{5598,10297,2}, {5603,10295,2},{5610,10288,2},{5613,10283,2},{5608,10278,2},{5610,10277,2}, {5613,10278,2},{5615,10277,2},{5615,10265,2},{5615,10262,2},{5615,10258,2}, {5617,10253,2},{5615,10252,2},{5615,10245,2},{5610,10252,2},{5610,10248,2}, {5613,10243,2},{5612,10240,2},{5610,10238,2},{5605,10253,2},{5602,10255,2}, {5607,10242,2},{5607,10235,2},{5613,10233,2},{5610,10218,2},{5607,10222,2}, {5607,10212,2},{5603,10217,2},{5607,10207,2},{5605,10200,2},{5603,10202,2}, {5602,10195,2},{5600,10195,2},{5600,10200,2},{5598,10200,2},{5598,10202,2}, {5597,10198,2},{5593,10202,2},{5590,10197,2},{5587,10197,2},{5582,10185,2}, {5575,10185,2},{5573,10192,2},{5572,10195,2},{5572,10205,2},{5573,10208,2}, {5568,10217,2},{5567,10217,2},{5568,10198,2},{5568,10195,2},{5560,10213,2}, {5562,10220,2},{5558,10237,2},{5555,10240,2},{5548,10238,2},{5542,10228,2}, {5533,10233,2},{5528,10228,2},{5532,10237,2},{5530,10242,2},{5528,10243,2}, {5525,10242,2},{5525,10228,2},{5518,10235,2},{5515,10233,2},{5512,10223,2}, {5510,10225,2},{5507,10223,2},{5505,10213,2},{5503,10208,2},{5503,10207,2}, {5507,10210,2},{5508,10220,2},{5512,10217,2},{5513,10218,2},{5517,10230,2}, {5522,10227,2},{5525,10227,2},{5528,10242,2},{5530,10238,2},{5527,10230,2}, {5528,10225,2},{5533,10232,2},{5543,10225,2},{5545,10228,2},{5548,10235,2}, {5553,10233,2},{5553,10218,2},{5552,10218,2},{5550,10222,2},{5548,10222,2}, {5550,10217,2},{5547,10198,2},{5543,10185,2},{5540,10185,2},{5542,10182,2}, {5540,10173,2},{5542,10182,2},{5545,10173,2},{5547,10173,2},{5548,10167,2}, {5548,10173,2},{5547,10187,2},{5548,10195,2},{5550,10203,2},{5552,10212,2}, {5553,10213,2},{5558,10185,2},{5560,10187,2},{5563,10180,2},{5568,10180,2}, {5568,10177,2},{5572,10182,2},{5578,10182,2},{5580,10173,2},{5583,10173,2}, {5583,10170,2},{5583,10162,2},{5585,10162,2},{5587,10150,2},{5588,10148,2}, {5590,10155,2},{5592,10150,2},{5595,10147,2},{5595,10140,2},{5590,10142,2}, {5588,10135,2},{5592,10137,2},{5593,10135,2},{5600,10118,2},{5600,10127,2}, {5597,10138,2},{5598,10147,2},{5590,10165,2},{5598,10158,2},{5598,10162,2}, {5598,10167,2},{5593,10168,2},{5592,10170,2},{5597,10175,2},{5598,10172,2}, {5600,10175,2},{5605,10168,2},{5603,10182,2},{5607,10175,2},{5608,10177,2}, {5610,10160,2},{5612,10167,2},{5615,10167,2},{5617,10173,2},{5622,10168,2}, {5627,10168,2},{5628,10173,2},{5628,10180,2},{5627,10183,2},{5622,10182,2}, {5620,10185,2},{5622,10193,2},{5627,10197,2},{5625,10203,2},{5623,10203,2}, {5623,10198,2},{5620,10197,2},{5620,10190,2},{5617,10195,2},{5617,10185,2}, {5615,10188,2},{5613,10178,2},{5612,10178,2},{5608,10187,2},{5612,10190,2}, {5617,10212,2},{5618,10212,2},{5620,10223,2},{5473,9092,130},{5488,9092,2}, {5503,9105,2},{5508,9115,2},{5508,9137,2},{5515,9153,2},{5517,9183,2},{5520,9193,2}, {5520,9203,2},{5525,9208,2},{5528,9205,2},{5528,9215,2},{5533,9222,2},{5535,9225,2}, {5547,9233,2},{5550,9240,2},{5545,9242,2},{5538,9237,2},{5533,9245,2},{5537,9250,2}, {5532,9250,2},{5530,9253,2},{5530,9262,2},{5527,9262,2},{5527,9257,2},{5525,9255,2}, {5527,9253,2},{5530,9250,2},{5530,9243,2},{5535,9235,2},{5533,9232,2},{5527,9227,2}, {5523,9220,2},{5520,9220,2},{5520,9213,2},{5517,9202,2},{5515,9190,2},{5513,9187,2}, {5512,9188,2},{5510,9188,2},{5512,9183,2},{5510,9172,2},{5505,9163,2},{5508,9165,2}, {5505,9137,2},{5502,9132,2},{5503,9132,2},{5505,9128,2},{5503,9115,2},{5497,9103,2}, {5492,9100,2},{5482,9097,2},{5470,9098,2},{5465,9097,2},{5453,9127,2},{5447,9132,2}, {5440,9132,2},{5437,9137,2},{5438,9143,2},{5438,9153,2},{5437,9155,2},{5437,9158,2}, {5438,9167,2},{5437,9173,2},{5433,9155,2},{5433,9152,2},{5438,9145,2},{5435,9138,2}, {5427,9150,2},{5417,9155,2},{5403,9158,2},{5397,9155,2},{5397,9160,2},{5398,9165,2}, {5400,9175,2},{5398,9180,2},{5395,9183,2},{5393,9178,2},{5395,9165,2},{5392,9152,2}, {5387,9145,2},{5377,9152,2},{5373,9152,2},{5378,9140,2},{5383,9142,2},{5387,9138,2}, {5390,9142,2},{5395,9142,2},{5400,9152,2},{5408,9153,2},{5408,9150,2},{5410,9148,2}, {5410,9143,2},{5413,9145,2},{5418,9138,2},{5425,9135,2},{5427,9132,2},{5430,9128,2}, {5432,9122,2},{5437,9125,2},{5442,9122,2},{5450,9123,2},{5457,9110,2},{5462,9095,2}, {5467,9087,2},{5472,9087,2},{5473,9092,2},{5392,8123,130},{5397,8123,2}, {5403,8128,2},{5408,8138,2},{5410,8148,2},{5415,8160,2},{5418,8165,2},{5430,8173,2}, {5435,8193,2},{5437,8193,2},{5437,8202,2},{5440,8212,2},{5452,8232,2},{5463,8242,2}, {5468,8263,2},{5478,8277,2},{5485,8300,2},{5483,8308,2},{5478,8310,2},{5477,8318,2}, {5478,8320,2},{5473,8327,2},{5470,8328,2},{5470,8325,2},{5473,8322,2},{5478,8307,2}, {5478,8305,2},{5470,8302,2},{5468,8295,2},{5465,8288,2},{5467,8285,2},{5465,8277,2}, {5455,8260,2},{5453,8247,2},{5450,8242,2},{5445,8232,2},{5443,8223,2},{5435,8208,2}, {5428,8175,2},{5423,8172,2},{5417,8168,2},{5412,8162,2},{5405,8143,2},{5400,8135,2}, {5403,8135,2},{5395,8132,2},{5388,8133,2},{5392,8130,2},{5400,8130,2},{5397,8127,2}, {5393,8128,2},{5388,8125,2},{5388,8123,2},{5393,8123,2},{4772,8423,130}, {4782,8408,2},{4787,8393,2},{4787,8385,2},{4790,8380,2},{4797,8377,2},{4797,8370,2}, {4802,8365,2},{4802,8353,2},{4807,8342,2},{4803,8335,2},{4805,8330,2},{4810,8320,2}, {4815,8317,2},{4815,8310,2},{4817,8305,2},{4823,8300,2},{4827,8303,2},{4822,8310,2}, {4825,8317,2},{4828,8327,2},{4825,8335,2},{4827,8348,2},{4833,8350,2},{4837,8355,2}, {4837,8360,2},{4842,8345,2},{4850,8338,2},{4857,8337,2},{4858,8342,2},{4865,8345,2}, {4877,8342,2},{4887,8345,2},{4895,8355,2},{4897,8363,2},{4903,8373,2},{4908,8402,2}, {4912,8415,2},{4915,8418,2},{4920,8418,2},{4925,8413,2},{4925,8412,2},{4935,8400,2}, {4938,8392,2},{4943,8387,2},{4945,8370,2},{4942,8365,2},{4948,8363,2},{4955,8352,2}, {4952,8348,2},{4953,8347,2},{4953,8343,2},{4957,8343,2},{4963,8337,2},{4962,8343,2}, {4958,8348,2},{4962,8358,2},{4958,8367,2},{4958,8373,2},{4963,8375,2},{4963,8378,2}, {4965,8382,2},{4972,8387,2},{4972,8397,2},{4973,8400,2},{4970,8397,2},{4968,8388,2}, {4962,8380,2},{4958,8378,2},{4955,8382,2},{4957,8372,2},{4955,8370,2},{4953,8373,2}, {4952,8368,2},{4950,8367,2},{4948,8380,2},{4948,8383,2},{4947,8382,2},{4945,8392,2}, {4940,8393,2},{4940,8398,2},{4928,8412,2},{4920,8430,2},{4920,8445,2},{4918,8448,2}, {4917,8442,2},{4917,8438,2},{4913,8435,2},{4912,8428,2},{4905,8400,2},{4900,8393,2}, {4900,8383,2},{4893,8367,2},{4893,8358,2},{4880,8348,2},{4872,8345,2},{4865,8352,2}, {4850,8353,2},{4845,8357,2},{4840,8363,2},{4838,8375,2},{4840,8378,2},{4842,8382,2}, {4840,8388,2},{4840,8395,2},{4840,8397,2},{4837,8393,2},{4835,8385,2},{4837,8377,2}, {4837,8368,2},{4830,8352,2},{4827,8350,2},{4825,8352,2},{4823,8357,2},{4822,8372,2}, {4813,8388,2},{4812,8400,2},{4808,8407,2},{4803,8410,2},{4807,8415,2},{4803,8422,2}, {4802,8435,2},{4800,8440,2},{4797,8445,2},{4793,8455,2},{4790,8445,2},{4785,8443,2}, {4782,8437,2},{4777,8438,2},{4775,8435,2},{4777,8423,2},{4773,8427,2},{4773,8435,2}, {4770,8430,2},{4773,8422,2},{5895,3812,130},{5888,3820,2},{5855,3872,2}, {5848,3892,2},{5850,3907,2},{5847,3897,2},{5843,3895,2},{5840,3897,2},{5833,3908,2}, {5835,3900,2},{5835,3892,2},{5833,3885,2},{5827,3880,2},{5818,3880,2},{5810,3885,2}, {5812,3878,2},{5818,3875,2},{5825,3858,2},{5823,3857,2},{5810,3870,2},{5812,3863,2}, {5808,3858,2},{5810,3855,2},{5813,3848,2},{5815,3840,2},{5810,3833,2},{5808,3832,2}, {5803,3842,2},{5802,3843,2},{5803,3835,2},{5803,3825,2},{5810,3823,2},{5822,3827,2}, {5825,3823,2},{5825,3813,2},{5825,3808,2},{5827,3810,2},{5832,3792,2},{5830,3790,2}, {5827,3792,2},{5827,3790,2},{5833,3785,2},{5840,3775,2},{5840,3772,2},{5843,3768,2}, {5843,3763,2},{5845,3765,2},{5848,3758,2},{5852,3755,2},{5852,3750,2},{5858,3748,2}, {5858,3743,2},{5863,3738,2},{5865,3732,2},{5870,3725,2},{5868,3715,2},{5868,3708,2}, {5872,3717,2},{5872,3722,2},{5877,3715,2},{5882,3713,2},{5882,3717,2},{5888,3712,2}, {5883,3720,2},{5877,3727,2},{5877,3733,2},{5872,3735,2},{5873,3748,2},{5867,3737,2}, {5862,3747,2},{5862,3752,2},{5863,3752,2},{5862,3757,2},{5858,3755,2},{5855,3757,2}, {5853,3763,2},{5855,3767,2},{5858,3770,2},{5860,3768,2},{5858,3763,2},{5862,3763,2}, {5863,3760,2},{5865,3762,2},{5865,3767,2},{5860,3773,2},{5863,3773,2},{5863,3777,2}, {5855,3793,2},{5852,3808,2},{5853,3810,2},{5858,3808,2},{5860,3805,2},{5860,3813,2}, {5862,3813,2},{5867,3802,2},{5867,3795,2},{5868,3802,2},{5870,3800,2},{5872,3792,2}, {5872,3795,2},{5875,3793,2},{5872,3802,2},{5872,3805,2},{5877,3805,2},{5880,3798,2}, {5888,3800,2},{5887,3797,2},{5883,3793,2},{5885,3790,2},{5888,3790,2},{5888,3785,2}, {5892,3785,2},{5895,3773,2},{5892,3768,2},{5892,3753,2},{5883,3753,2},{5882,3750,2}, {5887,3743,2},{5890,3748,2},{5895,3748,2},{5895,3755,2},{5898,3758,2},{5897,3763,2}, {5902,3773,2},{5903,3768,2},{5905,3770,2},{5908,3767,2},{5910,3770,2},{5912,3770,2}, {5918,3753,2},{5913,3773,2},{5915,3778,2},{5913,3783,2},{5913,3788,2},{5915,3793,2}, {5920,3798,2},{5920,3805,2},{5918,3800,2},{5913,3795,2},{5908,3815,2},{5910,3818,2}, {5915,3818,2},{5918,3817,2},{5920,3810,2},{5922,3812,2},{5922,3820,2},{5918,3818,2}, {5915,3827,2},{5913,3833,2},{5913,3837,2},{5920,3842,2},{5918,3845,2},{5908,3837,2}, {5908,3830,2},{5907,3832,2},{5907,3825,2},{5907,3820,2},{5905,3820,2},{5905,3813,2}, {5908,3810,2},{5912,3793,2},{5910,3787,2},{5908,3777,2},{5903,3792,2},{5905,3795,2}, {5898,3802,2},{5900,3807,2},{5893,3813,2},{4950,4355,130},{4948,4360,2}, {4938,4370,2},{4933,4372,2},{4928,4368,2},{4927,4372,2},{4923,4370,2},{4918,4375,2}, {4918,4378,2},{4923,4387,2},{4923,4392,2},{4920,4398,2},{4917,4403,2},{4913,4398,2}, {4910,4397,2},{4908,4395,2},{4903,4397,2},{4893,4390,2},{4892,4382,2},{4892,4365,2}, {4883,4362,2},{4880,4358,2},{4878,4352,2},{4875,4347,2},{4870,4348,2},{4865,4357,2}, {4865,4370,2},{4867,4373,2},{4867,4378,2},{4862,4368,2},{4858,4353,2},{4852,4350,2}, {4852,4362,2},{4850,4360,2},{4848,4345,2},{4843,4337,2},{4840,4337,2},{4833,4330,2}, {4828,4335,2},{4832,4327,2},{4828,4318,2},{4827,4315,2},{4822,4313,2},{4818,4315,2}, {4815,4312,2},{4808,4308,2},{4807,4312,2},{4805,4313,2},{4800,4325,2},{4800,4310,2}, {4795,4305,2},{4792,4305,2},{4782,4310,2},{4778,4308,2},{4768,4308,2},{4768,4307,2}, {4768,4303,2},{4777,4303,2},{4780,4305,2},{4785,4300,2},{4780,4295,2},{4777,4290,2}, {4777,4278,2},{4775,4267,2},{4768,4262,2},{4763,4252,2},{4760,4253,2},{4763,4245,2}, {4762,4240,2},{4760,4238,2},{4758,4240,2},{4757,4237,2},{4758,4235,2},{4758,4225,2}, {4757,4222,2},{4755,4223,2},{4753,4217,2},{4758,4215,2},{4760,4212,2},{4767,4212,2}, {4768,4213,2},{4772,4223,2},{4773,4225,2},{4778,4217,2},{4780,4220,2},{4778,4223,2}, {4780,4228,2},{4783,4227,2},{4785,4220,2},{4783,4232,2},{4785,4235,2},{4792,4237,2}, {4795,4228,2},{4798,4225,2},{4800,4222,2},{4795,4233,2},{4797,4238,2},{4800,4240,2}, {4800,4242,2},{4793,4243,2},{4792,4247,2},{4783,4245,2},{4780,4257,2},{4788,4280,2}, {4797,4287,2},{4793,4280,2},{4795,4280,2},{4800,4285,2},{4805,4283,2},{4815,4287,2}, {4817,4285,2},{4817,4277,2},{4818,4292,2},{4822,4290,2},{4822,4303,2},{4827,4307,2}, {4838,4310,2},{4847,4305,2},{4855,4292,2},{4855,4298,2},{4852,4302,2},{4850,4305,2}, {4853,4313,2},{4848,4310,2},{4845,4315,2},{4847,4317,2},{4845,4320,2},{4847,4327,2}, {4847,4333,2},{4853,4343,2},{4857,4343,2},{4862,4350,2},{4865,4352,2},{4870,4345,2}, {4878,4345,2},{4883,4355,2},{4885,4358,2},{4893,4365,2},{4893,4382,2},{4895,4387,2}, {4898,4390,2},{4908,4392,2},{4918,4398,2},{4920,4390,2},{4917,4378,2},{4918,4373,2}, {4920,4368,2},{4923,4368,2},{4925,4370,2},{4927,4365,2},{4933,4368,2},{4937,4368,2}, {4950,4355,2},{5208,4778,130},{5215,4782,2},{5218,4793,2},{5228,4802,2}, {5232,4808,2},{5252,4818,2},{5258,4820,2},{5267,4827,2},{5272,4837,2},{5277,4842,2}, {5287,4858,2},{5280,4853,2},{5275,4843,2},{5272,4842,2},{5268,4837,2},{5270,4850,2}, {5260,4827,2},{5247,4822,2},{5237,4813,2},{5232,4815,2},{5228,4810,2},{5225,4812,2}, {5222,4823,2},{5223,4828,2},{5222,4832,2},{5220,4823,2},{5222,4818,2},{5222,4808,2}, {5218,4802,2},{5213,4798,2},{5210,4795,2},{5208,4782,2},{5205,4773,2},{5208,4778,2}, {5468,4897,130},{5465,4897,2},{5465,4898,2},{5463,4915,2},{5460,4907,2}, {5462,4895,2},{5465,4892,2},{5463,4890,2},{5455,4888,2},{5455,4892,2},{5452,4892,2}, {5450,4883,2},{5447,4887,2},{5440,4888,2},{5445,4885,2},{5443,4880,2},{5447,4878,2}, {5445,4875,2},{5443,4860,2},{5440,4855,2},{5438,4853,2},{5437,4847,2},{5423,4852,2}, {5417,4858,2},{5415,4870,2},{5415,4880,2},{5413,4877,2},{5408,4885,2},{5408,4878,2}, {5407,4877,2},{5405,4883,2},{5398,4890,2},{5393,4900,2},{5395,4903,2},{5403,4917,2}, {5405,4922,2},{5408,4928,2},{5410,4932,2},{5410,4938,2},{5415,4942,2},{5413,4947,2}, {5415,4950,2},{5420,4958,2},{5420,4967,2},{5423,4973,2},{5423,4975,2},{5420,4972,2}, {5418,4972,2},{5415,4982,2},{5413,4977,2},{5415,4972,2},{5418,4963,2},{5417,4958,2}, {5415,4957,2},{5413,4955,2},{5412,4950,2},{5408,4945,2},{5408,4955,2},{5402,4937,2}, {5398,4942,2},{5398,4932,2},{5395,4928,2},{5397,4927,2},{5395,4922,2},{5390,4920,2}, {5378,4927,2},{5377,4928,2},{5378,4930,2},{5380,4933,2},{5378,4933,2},{5377,4935,2}, {5373,4940,2},{5370,4940,2},{5367,4937,2},{5368,4935,2},{5370,4935,2},{5375,4932,2}, {5372,4927,2},{5375,4927,2},{5383,4915,2},{5380,4908,2},{5370,4908,2},{5362,4903,2}, {5357,4905,2},{5352,4910,2},{5350,4920,2},{5347,4955,2},{5347,4987,2},{5343,4995,2}, {5345,4983,2},{5343,4978,2},{5345,4950,2},{5343,4942,2},{5340,4927,2},{5335,4923,2}, {5330,4927,2},{5327,4920,2},{5328,4910,2},{5327,4902,2},{5327,4882,2},{5337,4865,2}, {5337,4870,2},{5327,4888,2},{5328,4903,2},{5330,4907,2},{5332,4920,2},{5333,4922,2}, {5335,4918,2},{5337,4922,2},{5340,4923,2},{5342,4918,2},{5340,4912,2},{5338,4907,2}, {5342,4905,2},{5345,4893,2},{5345,4902,2},{5347,4905,2},{5350,4903,2},{5358,4888,2}, {5363,4885,2},{5375,4885,2},{5378,4890,2},{5382,4888,2},{5383,4890,2},{5382,4893,2}, {5383,4893,2},{5395,4887,2},{5402,4872,2},{5410,4862,2},{5410,4857,2},{5408,4853,2}, {5410,4852,2},{5410,4845,2},{5413,4845,2},{5417,4837,2},{5420,4837,2},{5437,4843,2}, {5440,4838,2},{5460,4842,2},{5465,4855,2},{5465,4882,2},{5468,4883,2},{5472,4878,2}, {5480,4882,2},{5487,4890,2},{5492,4885,2},{5500,4885,2},{5515,4923,2},{5515,4928,2}, {5518,4930,2},{5525,4920,2},{5530,4918,2},{5542,4902,2},{5545,4903,2},{5543,4907,2}, {5545,4907,2},{5548,4905,2},{5548,4907,2},{5545,4910,2},{5538,4917,2},{5538,4922,2}, {5533,4918,2},{5525,4928,2},{5528,4928,2},{5527,4933,2},{5528,4942,2},{5532,4942,2}, {5537,4930,2},{5540,4937,2},{5542,4932,2},{5545,4933,2},{5548,4930,2},{5552,4933,2}, {5557,4940,2},{5550,4933,2},{5537,4943,2},{5538,4957,2},{5537,4962,2},{5542,4970,2}, {5535,4987,2},{5537,4998,2},{5545,5002,2},{5545,5007,2},{5547,5012,2},{5545,5010,2}, {5545,5022,2},{5542,5028,2},{5542,5033,2},{5540,5035,2},{5545,5047,2},{5548,5050,2}, {5547,5050,2},{5545,5062,2},{5542,5063,2},{5552,5083,2},{5548,5097,2},{5547,5100,2}, {5548,5112,2},{5552,5120,2},{5548,5137,2},{5548,5138,2},{5548,5132,2},{5547,5142,2}, {5550,5148,2},{5553,5148,2},{5568,5138,2},{5572,5142,2},{5578,5138,2},{5580,5142,2}, {5578,5147,2},{5587,5147,2},{5580,5150,2},{5577,5143,2},{5575,5143,2},{5573,5148,2}, {5568,5143,2},{5560,5150,2},{5560,5155,2},{5563,5167,2},{5568,5172,2},{5572,5178,2}, {5568,5187,2},{5572,5195,2},{5572,5200,2},{5567,5187,2},{5567,5183,2},{5570,5180,2}, {5568,5175,2},{5555,5170,2},{5558,5162,2},{5557,5153,2},{5555,5153,2},{5552,5155,2}, {5545,5143,2},{5550,5118,2},{5547,5123,2},{5547,5112,2},{5545,5120,2},{5542,5123,2}, {5538,5123,2},{5533,5118,2},{5535,5113,2},{5538,5120,2},{5540,5122,2},{5545,5115,2}, {5543,5110,2},{5545,5098,2},{5548,5083,2},{5547,5080,2},{5542,5070,2},{5543,5077,2}, {5543,5078,2},{5540,5077,2},{5538,5072,2},{5540,5068,2},{5537,5063,2},{5537,5048,2}, {5537,5038,2},{5533,5037,2},{5533,5032,2},{5537,5027,2},{5537,5022,2},{5532,5012,2}, {5530,4993,2},{5532,4992,2},{5532,4990,2},{5525,4985,2},{5522,4975,2},{5517,4968,2}, {5518,4962,2},{5517,4963,2},{5513,4958,2},{5510,4960,2},{5512,4953,2},{5515,4953,2}, {5512,4945,2},{5505,4940,2},{5508,4947,2},{5507,4947,2},{5498,4938,2},{5502,4937,2}, {5503,4918,2},{5502,4917,2},{5500,4922,2},{5498,4922,2},{5498,4895,2},{5493,4892,2}, {5478,4895,2},{5480,4898,2},{5482,4903,2},{5480,4912,2},{5477,4917,2},{5478,4905,2}, {5477,4903,2},{5475,4903,2},{5468,4892,2},{5468,4897,2},{4852,4457,130}, {4858,4448,2},{4863,4448,2},{4870,4457,2},{4873,4463,2},{4892,4477,2},{4898,4485,2}, {4903,4488,2},{4917,4502,2},{4925,4498,2},{4942,4505,2},{4947,4513,2},{4953,4513,2}, {4960,4518,2},{4963,4528,2},{4972,4532,2},{4978,4538,2},{4985,4535,2},{4993,4537,2}, {5008,4547,2},{5013,4560,2},{5020,4567,2},{5020,4572,2},{5017,4577,2},{5020,4583,2}, {5023,4585,2},{5027,4593,2},{5025,4605,2},{5027,4612,2},{5028,4615,2},{5027,4618,2}, {5025,4617,2},{5025,4622,2},{5023,4620,2},{5020,4620,2},{5022,4623,2},{5025,4625,2}, {5022,4632,2},{5018,4632,2},{5017,4633,2},{5020,4637,2},{5022,4640,2},{5023,4633,2}, {5028,4638,2},{5030,4643,2},{5033,4642,2},{5035,4645,2},{5037,4643,2},{5035,4640,2}, {5035,4637,2},{5032,4637,2},{5030,4633,2},{5027,4628,2},{5028,4625,2},{5032,4625,2}, {5032,4613,2},{5032,4608,2},{5033,4603,2},{5030,4603,2},{5028,4585,2},{5035,4593,2}, {5042,4592,2},{5050,4587,2},{5055,4578,2},{5065,4572,2},{5072,4577,2},{5073,4573,2}, {5077,4583,2},{5075,4588,2},{5078,4590,2},{5077,4600,2},{5087,4607,2},{5092,4607,2}, {5097,4602,2},{5103,4605,2},{5115,4585,2},{5123,4587,2},{5132,4595,2},{5135,4600,2}, {5140,4600,2},{5143,4603,2},{5143,4598,2},{5147,4598,2},{5148,4603,2},{5152,4615,2}, {5158,4622,2},{5163,4633,2},{5167,4633,2},{5163,4625,2},{5172,4632,2},{5172,4638,2}, {5177,4648,2},{5172,4655,2},{5172,4660,2},{5172,4675,2},{5175,4680,2},{5175,4687,2}, {5182,4698,2},{5188,4703,2},{5183,4693,2},{5180,4683,2},{5173,4673,2},{5177,4667,2}, {5178,4652,2},{5180,4653,2},{5180,4660,2},{5183,4655,2},{5190,4657,2},{5180,4648,2}, {5178,4633,2},{5175,4628,2},{5177,4625,2},{5168,4625,2},{5165,4622,2},{5165,4618,2}, {5157,4617,2},{5148,4597,2},{5142,4595,2},{5138,4585,2},{5133,4580,2},{5127,4577,2}, {5115,4580,2},{5108,4583,2},{5103,4600,2},{5095,4597,2},{5088,4603,2},{5082,4590,2}, {5080,4578,2},{5077,4568,2},{5072,4563,2},{5060,4565,2},{5055,4573,2},{5042,4587,2}, {5032,4570,2},{5022,4563,2},{5017,4552,2},{5013,4548,2},{5008,4542,2},{4993,4533,2}, {4978,4533,2},{4965,4518,2},{4955,4512,2},{4952,4507,2},{4953,4503,2},{4955,4503,2}, {4957,4505,2},{4957,4500,2},{4953,4500,2},{4948,4502,2},{4950,4505,2},{4948,4508,2}, {4943,4503,2},{4938,4502,2},{4928,4495,2},{4918,4497,2},{4912,4488,2},{4907,4485,2}, {4893,4468,2},{4882,4463,2},{4870,4450,2},{4862,4443,2},{4857,4445,2},{4852,4452,2}, {4852,4457,2},{5752,4283,130},{5748,4282,2},{5748,4277,2},{5745,4278,2}, {5745,4268,2},{5742,4258,2},{5742,4272,2},{5742,4278,2},{5740,4282,2},{5727,4268,2}, {5730,4275,2},{5733,4278,2},{5735,4282,2},{5735,4285,2},{5737,4287,2},{5735,4293,2}, {5737,4298,2},{5735,4310,2},{5730,4310,2},{5722,4293,2},{5717,4290,2},{5718,4297,2}, {5717,4298,2},{5713,4305,2},{5708,4302,2},{5707,4307,2},{5703,4307,2},{5698,4318,2}, {5695,4320,2},{5693,4317,2},{5693,4312,2},{5697,4303,2},{5693,4302,2},{5693,4305,2}, {5690,4305,2},{5690,4312,2},{5688,4315,2},{5690,4318,2},{5690,4320,2},{5682,4323,2}, {5678,4327,2},{5675,4322,2},{5675,4325,2},{5672,4323,2},{5673,4313,2},{5673,4307,2}, {5672,4308,2},{5673,4313,2},{5672,4320,2},{5668,4325,2},{5667,4312,2},{5660,4305,2}, {5667,4317,2},{5665,4332,2},{5667,4343,2},{5673,4337,2},{5678,4337,2},{5680,4340,2}, {5682,4337,2},{5687,4338,2},{5687,4335,2},{5692,4330,2},{5693,4330,2},{5693,4337,2}, {5695,4340,2},{5695,4337,2},{5698,4337,2},{5697,4332,2},{5700,4323,2},{5703,4322,2}, {5705,4323,2},{5705,4318,2},{5713,4325,2},{5712,4322,2},{5705,4317,2},{5713,4313,2}, {5730,4322,2},{5735,4327,2},{5737,4327,2},{5740,4332,2},{5740,4337,2},{5743,4333,2}, {5747,4337,2},{5748,4335,2},{5757,4352,2},{5760,4352,2},{5760,4360,2},{5762,4357,2}, {5767,4363,2},{5772,4370,2},{5770,4363,2},{5763,4355,2},{5762,4348,2},{5757,4342,2}, {5752,4332,2},{5743,4328,2},{5742,4325,2},{5742,4320,2},{5745,4318,2},{5763,4320,2}, {5758,4317,2},{5748,4318,2},{5743,4315,2},{5742,4313,2},{5740,4303,2},{5738,4302,2}, {5738,4288,2},{5742,4282,2},{5747,4283,2},{5748,4287,2},{5752,4283,2},{5680,5408,130}, {5677,5408,2},{5680,5418,2},{5695,5423,2},{5695,5437,2},{5703,5457,2},{5700,5467,2}, {5703,5478,2},{5702,5485,2},{5705,5487,2},{5707,5495,2},{5708,5502,2},{5713,5505,2}, {5718,5505,2},{5727,5510,2},{5728,5507,2},{5732,5512,2},{5727,5527,2},{5732,5543,2}, {5730,5547,2},{5722,5555,2},{5723,5558,2},{5730,5555,2},{5735,5558,2},{5745,5552,2}, {5750,5557,2},{5755,5557,2},{5760,5552,2},{5760,5540,2},{5763,5540,2},{5768,5545,2}, {5772,5545,2},{5782,5523,2},{5787,5525,2},{5785,5518,2},{5783,5517,2},{5778,5525,2}, {5775,5528,2},{5773,5537,2},{5772,5538,2},{5770,5537,2},{5770,5530,2},{5765,5535,2}, {5760,5533,2},{5758,5542,2},{5757,5552,2},{5750,5552,2},{5743,5540,2},{5742,5548,2}, {5737,5552,2},{5733,5545,2},{5732,5533,2},{5737,5513,2},{5740,5508,2},{5735,5502,2}, {5735,5495,2},{5733,5500,2},{5730,5500,2},{5722,5495,2},{5715,5497,2},{5712,5495,2}, {5710,5490,2},{5712,5480,2},{5708,5478,2},{5707,5473,2},{5708,5467,2},{5710,5453,2}, {5712,5447,2},{5708,5447,2},{5702,5437,2},{5700,5420,2},{5695,5410,2},{5680,5410,2}, {5927,5625,130},{5932,5640,2},{5937,5648,2},{5938,5640,2},{5942,5638,2}, {5937,5655,2},{5938,5667,2},{5942,5668,2},{5943,5668,2},{5948,5658,2},{5955,5667,2}, {5960,5662,2},{5960,5667,2},{5965,5660,2},{5973,5655,2},{5977,5657,2},{5992,5637,2}, {5990,5643,2},{5987,5647,2},{5982,5657,2},{5973,5667,2},{5963,5665,2},{5960,5673,2}, {5955,5670,2},{5955,5673,2},{5947,5668,2},{5942,5673,2},{5935,5665,2},{5928,5672,2}, {5930,5663,2},{5927,5650,2},{5928,5642,2},{5925,5638,2},{5925,5628,2},{5922,5622,2}, {5917,5623,2},{5917,5632,2},{5913,5635,2},{5912,5627,2},{5912,5622,2},{5905,5620,2}, {5907,5625,2},{5905,5628,2},{5903,5630,2},{5905,5638,2},{5902,5632,2},{5898,5633,2}, {5895,5628,2},{5890,5630,2},{5892,5640,2},{5895,5645,2},{5893,5648,2},{5892,5667,2}, {5890,5665,2},{5885,5667,2},{5883,5670,2},{5885,5665,2},{5890,5657,2},{5888,5642,2}, {5883,5637,2},{5878,5633,2},{5877,5640,2},{5873,5642,2},{5877,5633,2},{5873,5630,2}, {5870,5625,2},{5868,5630,2},{5867,5622,2},{5860,5610,2},{5852,5628,2},{5848,5633,2}, {5850,5638,2},{5845,5638,2},{5842,5645,2},{5837,5645,2},{5835,5640,2},{5832,5640,2}, {5833,5627,2},{5832,5625,2},{5825,5638,2},{5820,5638,2},{5817,5635,2},{5818,5642,2}, {5817,5650,2},{5813,5657,2},{5813,5658,2},{5818,5655,2},{5817,5665,2},{5822,5662,2}, {5825,5667,2},{5820,5672,2},{5822,5672,2},{5825,5673,2},{5828,5677,2},{5830,5682,2}, {5832,5685,2},{5832,5688,2},{5827,5683,2},{5818,5685,2},{5817,5693,2},{5815,5700,2}, {5820,5705,2},{5817,5710,2},{5817,5705,2},{5812,5702,2},{5815,5690,2},{5813,5682,2}, {5817,5680,2},{5827,5678,2},{5823,5675,2},{5818,5675,2},{5820,5668,2},{5818,5667,2}, {5815,5668,2},{5815,5662,2},{5812,5667,2},{5807,5670,2},{5807,5673,2},{5803,5680,2}, {5800,5682,2},{5797,5678,2},{5797,5672,2},{5797,5667,2},{5795,5673,2},{5792,5670,2}, {5793,5677,2},{5792,5678,2},{5790,5680,2},{5788,5675,2},{5785,5683,2},{5782,5677,2}, {5780,5678,2},{5782,5685,2},{5775,5687,2},{5775,5683,2},{5768,5687,2},{5775,5678,2}, {5777,5685,2},{5778,5685,2},{5777,5677,2},{5778,5673,2},{5783,5673,2},{5785,5678,2}, {5785,5670,2},{5790,5673,2},{5788,5670,2},{5790,5667,2},{5793,5668,2},{5795,5663,2}, {5798,5665,2},{5800,5677,2},{5802,5678,2},{5805,5670,2},{5810,5662,2},{5817,5643,2}, {5815,5637,2},{5805,5630,2},{5817,5630,2},{5825,5635,2},{5828,5623,2},{5832,5620,2}, {5835,5623,2},{5837,5638,2},{5838,5642,2},{5842,5638,2},{5850,5625,2},{5847,5618,2}, {5853,5622,2},{5853,5613,2},{5847,5607,2},{5852,5605,2},{5850,5597,2},{5853,5600,2}, {5857,5598,2},{5863,5603,2},{5865,5602,2},{5860,5593,2},{5863,5590,2},{5860,5575,2}, {5860,5567,2},{5857,5563,2},{5858,5557,2},{5855,5548,2},{5857,5537,2},{5857,5548,2}, {5860,5555,2},{5860,5563,2},{5867,5592,2},{5877,5615,2},{5878,5600,2},{5880,5598,2}, {5880,5600,2},{5880,5607,2},{5877,5617,2},{5878,5622,2},{5882,5620,2},{5890,5608,2}, {5893,5612,2},{5893,5600,2},{5897,5583,2},{5897,5562,2},{5898,5558,2},{5900,5583,2}, {5898,5595,2},{5897,5603,2},{5895,5608,2},{5895,5620,2},{5898,5622,2},{5908,5612,2}, {5913,5618,2},{5923,5620,2},{5927,5625,2},{6032,3788,130},{6022,3802,2}, {6018,3802,2},{6010,3798,2},{6008,3798,2},{6007,3803,2},{6005,3778,2},{6005,3760,2}, {6008,3738,2},{6013,3725,2},{6018,3722,2},{6025,3728,2},{6030,3740,2},{6033,3755,2}, {6033,3772,2},{6032,3790,2},{3092,4672,130},{3092,4675,2},{3090,4675,2}, {3088,4677,2},{3092,4685,2},{3093,4688,2},{3092,4690,2},{3083,4703,2},{3085,4707,2}, {3085,4715,2},{3088,4718,2},{3088,4720,2},{3087,4723,2},{3083,4718,2},{3082,4722,2}, {3077,4723,2},{3077,4725,2},{3077,4730,2},{3075,4732,2},{3077,4735,2},{3078,4733,2}, {3087,4738,2},{3087,4747,2},{3080,4755,2},{3077,4750,2},{3077,4747,2},{3075,4745,2}, {3075,4757,2},{3072,4763,2},{3063,4767,2},{3060,4770,2},{3060,4767,2},{3065,4762,2}, {3060,4762,2},{3058,4767,2},{3057,4767,2},{3053,4760,2},{3057,4758,2},{3055,4757,2}, {3052,4757,2},{3052,4753,2},{3057,4747,2},{3055,4747,2},{3053,4745,2},{3057,4743,2}, {3065,4742,2},{3065,4723,2},{3070,4722,2},{3070,4718,2},{3073,4712,2},{3072,4695,2}, {3075,4697,2},{3077,4695,2},{3077,4692,2},{3078,4692,2},{3080,4690,2},{3078,4687,2}, {3073,4693,2},{3072,4692,2},{3070,4682,2},{3072,4675,2},{3070,4675,2},{3070,4672,2}, {3067,4667,2},{3067,4660,2},{3067,4658,2},{3072,4658,2},{3075,4660,2},{3075,4675,2}, {3077,4678,2},{3078,4670,2},{3082,4668,2},{3083,4665,2},{3087,4663,2},{3090,4667,2}, {3092,4672,2},{3823,4540,130},{3820,4545,2},{3812,4550,2},{3807,4550,2}, {3803,4547,2},{3803,4548,2},{3798,4548,2},{3797,4547,2},{3795,4547,2},{3793,4543,2}, {3790,4540,2},{3780,4542,2},{3777,4543,2},{3775,4548,2},{3773,4550,2},{3773,4553,2}, {3777,4553,2},{3777,4557,2},{3775,4568,2},{3770,4575,2},{3772,4575,2},{3768,4577,2}, {3767,4580,2},{3763,4578,2},{3765,4568,2},{3763,4565,2},{3760,4572,2},{3757,4572,2}, {3752,4580,2},{3747,4580,2},{3742,4587,2},{3738,4592,2},{3737,4592,2},{3737,4588,2}, {3737,4585,2},{3732,4582,2},{3728,4573,2},{3728,4572,2},{3732,4570,2},{3730,4567,2}, {3727,4562,2},{3720,4562,2},{3713,4558,2},{3712,4555,2},{3715,4552,2},{3713,4550,2}, {3712,4550,2},{3712,4547,2},{3718,4540,2},{3720,4535,2},{3735,4528,2},{3738,4532,2}, {3748,4530,2},{3750,4527,2},{3757,4528,2},{3760,4525,2},{3763,4527,2},{3767,4523,2}, {3770,4527,2},{3775,4527,2},{3783,4517,2},{3785,4507,2},{3795,4505,2},{3800,4508,2}, {3803,4518,2},{3805,4520,2},{3807,4518,2},{3812,4520,2},{3817,4517,2},{3812,4513,2}, {3815,4512,2},{3812,4505,2},{3813,4500,2},{3815,4500,2},{3820,4505,2},{3825,4505,2}, {3827,4510,2},{3827,4533,2},{3823,4540,2},{5728,3775,130},{5723,3785,2}, {5727,3790,2},{5730,3800,2},{5742,3813,2},{5748,3827,2},{5757,3830,2},{5750,3825,2}, {5758,3832,2},{5742,3810,2},{5732,3798,2},{5728,3787,2},{5727,3785,2},{5728,3778,2}, {5670,3637,130},{5663,3650,2},{5662,3650,2},{5660,3642,2},{5660,3635,2}, {5658,3630,2},{5658,3623,2},{5657,3617,2},{5650,3612,2},{5660,3657,2},{5668,3668,2}, {5670,3677,2},{5677,3677,2},{5677,3680,2},{5678,3682,2},{5677,3695,2},{5672,3698,2}, {5677,3702,2},{5670,3703,2},{5670,3707,2},{5673,3707,2},{5672,3712,2},{5673,3713,2}, {5675,3715,2},{5675,3713,2},{5678,3708,2},{5682,3707,2},{5680,3702,2},{5683,3700,2}, {5685,3693,2},{5682,3687,2},{5680,3675,2},{5677,3668,2},{5677,3673,2},{5672,3675,2}, {5662,3658,2},{5667,3655,2},{5670,3635,2},{5675,3635,2},{5757,4002,130}, {5758,4012,2},{5767,4018,2},{5772,4032,2},{5775,4037,2},{5777,4057,2},{5780,4060,2}, {5780,4067,2},{5782,4063,2},{5783,4065,2},{5788,4060,2},{5788,4055,2},{5792,4055,2}, {5792,4050,2},{5793,4047,2},{5793,4057,2},{5793,4058,2},{5793,4060,2},{5792,4063,2}, {5793,4067,2},{5797,4062,2},{5797,4063,2},{5798,4063,2},{5800,4072,2},{5800,4073,2}, {5795,4073,2},{5795,4083,2},{5802,4082,2},{5803,4088,2},{5802,4090,2},{5792,4087,2}, {5790,4090,2},{5790,4072,2},{5787,4073,2},{5787,4067,2},{5785,4065,2},{5782,4072,2}, {5782,4083,2},{5778,4092,2},{5767,4105,2},{5768,4115,2},{5762,4110,2},{5757,4113,2}, {5752,4120,2},{5748,4150,2},{5743,4165,2},{5747,4172,2},{5743,4182,2},{5743,4185,2}, {5752,4197,2},{5750,4208,2},{5747,4218,2},{5747,4225,2},{5750,4225,2},{5750,4228,2}, {5748,4230,2},{5742,4257,2},{5740,4250,2},{5743,4247,2},{5743,4242,2},{5745,4230,2}, {5743,4218,2},{5748,4205,2},{5748,4198,2},{5740,4180,2},{5737,4175,2},{5740,4175,2}, {5742,4178,2},{5743,4175,2},{5742,4162,2},{5748,4125,2},{5747,4120,2},{5743,4122,2}, {5745,4118,2},{5748,4118,2},{5748,4110,2},{5755,4103,2},{5752,4113,2},{5758,4107,2}, {5763,4105,2},{5768,4097,2},{5775,4093,2},{5777,4087,2},{5778,4077,2},{5778,4082,2}, {5780,4077,2},{5777,4060,2},{5772,4055,2},{5770,4055,2},{5775,4052,2},{5767,4035,2}, {5768,4032,2},{5763,4020,2},{5757,4017,2},{5548,4908,130},{5563,4902,2}, {5580,4908,2},{5578,4897,2},{5578,4887,2},{5582,4880,2},{5583,4838,2},{5588,4823,2}, {5593,4825,2},{5592,4822,2},{5592,4813,2},{5592,4808,2},{5597,4802,2},{5595,4800,2}, {5602,4793,2},{5615,4793,2},{5615,4788,2},{5617,4763,2},{5615,4753,2},{5618,4727,2}, {5617,4697,2},{5620,4683,2},{5633,4673,2},{5637,4657,2},{5637,4652,2},{5633,4647,2}, {5633,4642,2},{5628,4635,2},{5627,4617,2},{5618,4608,2},{5615,4597,2},{5618,4595,2}, {5622,4588,2},{5622,4583,2},{5620,4580,2},{5617,4577,2},{5615,4562,2},{5617,4557,2}, {5617,4550,2},{5608,4542,2},{5610,4537,2},{5617,4525,2},{5613,4517,2},{5610,4508,2}, {5610,4487,2},{5607,4473,2},{5607,4467,2},{5608,4458,2},{5612,4453,2},{5612,4447,2}, {5618,4438,2},{5620,4433,2},{5618,4423,2},{5628,4420,2},{5635,4410,2},{5635,4398,2}, {5642,4388,2},{5643,4373,2},{5657,4358,2},{5667,4343,2},{5667,4342,2},{5643,4370,2}, {5640,4387,2},{5632,4397,2},{5633,4402,2},{5632,4408,2},{5628,4415,2},{5622,4422,2}, {5618,4420,2},{5617,4423,2},{5617,4437,2},{5610,4445,2},{5610,4452,2},{5607,4458,2}, {5605,4467,2},{5607,4477,2},{5608,4485,2},{5608,4508,2},{5613,4517,2},{5615,4525,2}, {5608,4535,2},{5608,4542,2},{5610,4547,2},{5615,4552,2},{5613,4560,2},{5615,4577,2}, {5618,4582,2},{5620,4585,2},{5618,4592,2},{5613,4595,2},{5613,4597,2},{5618,4612,2}, {5625,4618,2},{5628,4637,2},{5635,4658,2},{5632,4672,2},{5620,4680,2},{5615,4692,2}, {5613,4698,2},{5617,4712,2},{5613,4750,2},{5612,4758,2},{5608,4758,2},{5607,4755,2}, {5603,4758,2},{5613,4763,2},{5612,4785,2},{5610,4790,2},{5602,4792,2},{5593,4797,2}, {5590,4807,2},{5588,4815,2},{5587,4808,2},{5587,4812,2},{5587,4817,2},{5582,4825,2}, {5580,4862,2},{5577,4858,2},{5575,4865,2},{5572,4857,2},{5562,4843,2},{5570,4858,2}, {5572,4868,2},{5570,4872,2},{5573,4872,2},{5575,4870,2},{5577,4873,2},{5577,4882,2}, {5575,4885,2},{5577,4888,2},{5575,4897,2},{5572,4898,2},{5560,4895,2},{5548,4905,2}, {4725,4023,130},{4722,4018,2},{4725,4017,2},{4723,4008,2},{4725,4000,2}, {4722,3995,2},{4720,3972,2},{4718,3957,2},{4713,3953,2},{4712,3938,2},{4710,3938,2}, {4710,3945,2},{4712,3950,2},{4713,3955,2},{4717,3958,2},{4718,3972,2},{4720,3985,2}, {4720,3995,2},{4722,4000,2},{4722,4007,2},{4723,4013,2},{4722,4015,2},{4720,4020,2}, {4702,4740,130},{4700,4748,2},{4695,4758,2},{4687,4755,2},{4683,4757,2}, {4683,4760,2},{4685,4770,2},{4683,4773,2},{4677,4777,2},{4672,4783,2},{4655,4792,2}, {4652,4800,2},{4645,4795,2},{4642,4797,2},{4638,4802,2},{4635,4800,2},{4637,4803,2}, {4643,4798,2},{4648,4803,2},{4653,4803,2},{4658,4793,2},{4672,4788,2},{4675,4783,2}, {4677,4778,2},{4685,4775,2},{4687,4770,2},{4685,4762,2},{4685,4758,2},{4693,4762,2}, {4702,4753,2},{4703,4748,2},{4702,4740,2},{6200,4513,130},{6203,4507,2}, {6210,4510,2},{6220,4500,2},{6223,4483,2},{6230,4475,2},{6232,4470,2},{6235,4460,2}, {6233,4445,2},{6233,4430,2},{6237,4413,2},{6240,4392,2},{6250,4380,2},{6258,4363,2}, {6277,4308,2},{6290,4263,2},{6293,4260,2},{6302,4258,2},{6305,4248,2},{6305,4227,2}, {6310,4203,2},{6323,4200,2},{6330,4205,2},{6345,4183,2},{6357,4188,2},{6360,4175,2}, {6363,4172,2},{6365,4152,2},{6370,4148,2},{6375,4138,2},{6380,4143,2},{6387,4162,2}, {6392,4160,2},{6395,4167,2},{6402,4173,2},{6405,4168,2},{6413,4172,2},{6417,4175,2}, {6417,4187,2},{6427,4183,2},{6430,4175,2},{6430,4158,2},{6433,4145,2},{6435,4118,2}, {6437,4105,2},{6445,4088,2},{6453,4053,2},{6457,4053,2},{6457,4060,2},{6452,4072,2}, {6448,4087,2},{6438,4112,2},{6435,4152,2},{6428,4185,2},{6415,4193,2},{6413,4177,2}, {6407,4175,2},{6402,4178,2},{6390,4163,2},{6385,4163,2},{6378,4145,2},{6375,4143,2}, {6365,4157,2},{6367,4172,2},{6358,4192,2},{6345,4188,2},{6328,4208,2},{6322,4203,2}, {6310,4210,2},{6307,4230,2},{6307,4247,2},{6305,4255,2},{6302,4263,2},{6293,4265,2}, {6290,4268,2},{6282,4305,2},{6260,4363,2},{6248,4388,2},{6240,4395,2},{6238,4417,2}, {6235,4428,2},{6235,4467,2},{6232,4477,2},{6225,4487,2},{6223,4500,2},{6208,4513,2}, {6200,4512,2},{6613,6565,130},{6622,6585,2},{6635,6618,2},{6642,6623,2}, {6650,6638,2},{6662,6645,2},{6665,6652,2},{6665,6667,2},{6657,6707,2},{6658,6718,2}, {6663,6725,2},{6665,6730,2},{6665,6747,2},{6660,6758,2},{6658,6790,2},{6653,6807,2}, {6653,6818,2},{6663,6845,2},{6668,6853,2},{6665,6833,2},{6667,6827,2},{6668,6828,2}, {6672,6842,2},{6675,6842,2},{6675,6857,2},{6677,6853,2},{6677,6863,2},{6680,6873,2}, {6680,6897,2},{6678,6900,2},{6677,6880,2},{6677,6875,2},{6672,6865,2},{6660,6850,2}, {6652,6827,2},{6648,6805,2},{6650,6797,2},{6655,6785,2},{6657,6762,2},{6662,6745,2}, {6663,6733,2},{6653,6717,2},{6652,6708,2},{6662,6667,2},{6662,6653,2},{6660,6650,2}, {6650,6652,2},{6643,6637,2},{6633,6627,2},{6627,6615,2},{6620,6588,2},{6613,6577,2}, {6302,6510,130},{6300,6508,2},{6297,6512,2},{6292,6528,2},{6287,6538,2}, {6280,6540,2},{6277,6545,2},{6268,6565,2},{6258,6575,2},{6248,6595,2},{6248,6608,2}, {6243,6638,2},{6237,6650,2},{6230,6653,2},{6228,6657,2},{6227,6688,2},{6223,6708,2}, {6220,6718,2},{6212,6733,2},{6205,6738,2},{6190,6745,2},{6183,6758,2},{6172,6758,2}, {6167,6765,2},{6165,6772,2},{6165,6783,2},{6158,6810,2},{6150,6823,2},{6145,6837,2}, {6135,6840,2},{6127,6832,2},{6122,6830,2},{6120,6832,2},{6118,6843,2},{6110,6857,2}, {6110,6878,2},{6117,6885,2},{6120,6892,2},{6122,6895,2},{6120,6902,2},{6123,6913,2}, {6120,6925,2},{6123,6928,2},{6125,6938,2},{6128,6942,2},{6130,6950,2},{6127,6960,2}, {6128,6967,2},{6128,6977,2},{6127,6988,2},{6123,6995,2},{6123,7015,2},{6128,7023,2}, {6128,7035,2},{6132,7045,2},{6128,7057,2},{6127,7082,2},{6132,7095,2},{6128,7100,2}, {6127,7117,2},{6120,7122,2},{6120,7125,2},{6125,7143,2},{6123,7157,2},{6128,7170,2}, {6125,7213,2},{6130,7223,2},{6132,7230,2},{6130,7250,2},{6122,7260,2},{6127,7283,2}, {6123,7295,2},{6125,7305,2},{6125,7325,2},{6122,7338,2},{6125,7353,2},{6123,7358,2}, {6118,7367,2},{6125,7382,2},{6120,7390,2},{6118,7408,2},{6120,7420,2},{6123,7430,2}, {6122,7435,2},{6117,7438,2},{6115,7442,2},{6122,7442,2},{6123,7445,2},{6122,7455,2}, {6120,7460,2},{6122,7472,2},{6117,7480,2},{6117,7497,2},{6112,7508,2},{6112,7513,2}, {6117,7520,2},{6112,7530,2},{6112,7548,2},{6107,7552,2},{6100,7565,2},{6102,7572,2}, {6107,7585,2},{6103,7592,2},{6103,7603,2},{6100,7618,2},{6095,7620,2},{6095,7630,2}, {6088,7643,2},{6093,7653,2},{6093,7662,2},{6085,7670,2},{6085,7680,2},{6078,7683,2}, {6078,7690,2},{6073,7702,2},{6073,7717,2},{6065,7735,2},{6065,7740,2},{6070,7750,2}, {6070,7757,2},{6062,7773,2},{6052,7777,2},{6048,7785,2},{6043,7793,2},{6040,7805,2}, {6040,7808,2},{6043,7823,2},{6040,7837,2},{6035,7842,2},{6028,7832,2},{6030,7840,2}, {6030,7847,2},{6025,7852,2},{6022,7850,2},{6022,7858,2},{6015,7873,2},{6013,7892,2}, {6012,7892,2},{6008,7885,2},{6007,7895,2},{6003,7905,2},{6000,7903,2},{5997,7895,2}, {5987,7903,2},{5978,7920,2},{5970,7915,2},{5962,7923,2},{5958,7930,2},{5952,7935,2}, {5952,7942,2},{5953,7947,2},{5953,7952,2},{5945,7967,2},{5940,7968,2},{5943,7975,2}, {5945,7983,2},{5942,7997,2},{5945,8007,2},{5942,8010,2},{5938,8022,2},{5935,8022,2}, {5933,8012,2},{5932,8013,2},{5928,8025,2},{5932,8030,2},{5933,8035,2},{5935,8043,2}, {5933,8052,2},{5927,8057,2},{5923,8053,2},{5923,8060,2},{5917,8062,2},{5917,8072,2}, {5913,8075,2},{5912,8083,2},{5908,8087,2},{5908,8098,2},{5908,8102,2},{5912,8102,2}, {5913,8107,2},{5912,8125,2},{5905,8132,2},{5900,8143,2},{5895,8143,2},{5895,8148,2}, {5893,8153,2},{5890,8153,2},{5887,8152,2},{5883,8162,2},{5882,8165,2},{5877,8165,2}, {5873,8153,2},{5873,8162,2},{5870,8168,2},{5875,8170,2},{5875,8173,2},{5870,8180,2}, {5868,8192,2},{5860,8192,2},{5858,8217,2},{5855,8222,2},{5852,8220,2},{5850,8227,2}, {5845,8232,2},{5842,8247,2},{5838,8243,2},{5835,8245,2},{5838,8257,2},{5833,8263,2}, {5830,8265,2},{5830,8268,2},{5832,8275,2},{5832,8285,2},{5830,8300,2},{5827,8300,2}, {5823,8292,2},{5817,8295,2},{5813,8308,2},{5813,8317,2},{5812,8323,2},{5803,8323,2}, {5792,8335,2},{5785,8332,2},{5783,8340,2},{5773,8348,2},{5770,8368,2},{5773,8375,2}, {5775,8380,2},{5773,8387,2},{5770,8387,2},{5762,8380,2},{5757,8388,2},{5750,8388,2}, {5747,8395,2},{5735,8397,2},{5732,8403,2},{5728,8403,2},{5730,8410,2},{5727,8418,2}, {5727,8428,2},{5725,8437,2},{5722,8440,2},{5715,8437,2},{5715,8445,2},{5712,8448,2}, {5707,8443,2},{5700,8440,2},{5690,8445,2},{5677,8442,2},{5672,8437,2},{5665,8425,2}, {5652,8415,2},{5648,8408,2},{5638,8405,2},{5633,8408,2},{5630,8400,2},{5633,8407,2}, {5640,8402,2},{5652,8407,2},{5653,8412,2},{5668,8423,2},{5673,8435,2},{5680,8440,2}, {5690,8442,2},{5698,8437,2},{5708,8440,2},{5712,8445,2},{5713,8433,2},{5720,8437,2}, {5723,8435,2},{5725,8425,2},{5725,8417,2},{5728,8412,2},{5727,8400,2},{5732,8398,2}, {5733,8392,2},{5745,8393,2},{5750,8383,2},{5755,8385,2},{5760,8377,2},{5772,8383,2}, {5773,8380,2},{5772,8375,2},{5768,8370,2},{5773,8342,2},{5782,8337,2},{5785,8328,2}, {5792,8332,2},{5803,8318,2},{5810,8317,2},{5815,8295,2},{5820,8288,2},{5825,8288,2}, {5827,8295,2},{5830,8295,2},{5830,8273,2},{5827,8267,2},{5830,8262,2},{5833,8260,2}, {5837,8255,2},{5833,8242,2},{5838,8240,2},{5842,8242,2},{5843,8230,2},{5848,8225,2}, {5850,8217,2},{5855,8215,2},{5857,8212,2},{5857,8190,2},{5862,8187,2},{5867,8188,2}, {5867,8178,2},{5873,8173,2},{5872,8170,2},{5867,8168,2},{5872,8148,2},{5875,8148,2}, {5877,8153,2},{5878,8163,2},{5880,8163,2},{5885,8148,2},{5892,8150,2},{5892,8143,2}, {5895,8140,2},{5900,8140,2},{5902,8130,2},{5910,8122,2},{5912,8108,2},{5912,8107,2}, {5907,8105,2},{5907,8102,2},{5907,8085,2},{5908,8082,2},{5910,8080,2},{5912,8072,2}, {5913,8068,2},{5915,8070,2},{5915,8058,2},{5920,8058,2},{5920,8052,2},{5923,8047,2}, {5927,8052,2},{5932,8048,2},{5932,8037,2},{5925,8027,2},{5932,8007,2},{5935,8007,2}, {5937,8015,2},{5942,8005,2},{5940,7997,2},{5943,7980,2},{5942,7975,2},{5938,7970,2}, {5938,7965,2},{5943,7962,2},{5950,7952,2},{5950,7947,2},{5948,7945,2},{5950,7932,2}, {5957,7927,2},{5960,7920,2},{5968,7910,2},{5978,7915,2},{5985,7898,2},{5997,7890,2}, {5998,7890,2},{6003,7898,2},{6005,7885,2},{6008,7880,2},{6012,7887,2},{6012,7873,2}, {6020,7857,2},{6020,7847,2},{6022,7845,2},{6027,7848,2},{6028,7843,2},{6025,7830,2}, {6030,7828,2},{6035,7837,2},{6038,7837,2},{6042,7822,2},{6038,7810,2},{6038,7805,2}, {6043,7788,2},{6047,7783,2},{6048,7773,2},{6057,7768,2},{6060,7768,2},{6067,7755,2}, {6067,7750,2},{6062,7740,2},{6065,7727,2},{6072,7717,2},{6070,7700,2},{6075,7692,2}, {6077,7682,2},{6082,7678,2},{6083,7667,2},{6092,7658,2},{6087,7640,2},{6092,7628,2}, {6093,7618,2},{6093,7615,2},{6097,7615,2},{6098,7612,2},{6102,7600,2},{6100,7592,2}, {6103,7585,2},{6098,7572,2},{6098,7565,2},{6103,7552,2},{6108,7545,2},{6110,7530,2}, {6113,7522,2},{6110,7513,2},{6110,7508,2},{6113,7497,2},{6115,7478,2},{6118,7468,2}, {6117,7460,2},{6120,7447,2},{6118,7445,2},{6115,7447,2},{6113,7443,2},{6115,7435,2}, {6120,7428,2},{6117,7417,2},{6115,7408,2},{6118,7390,2},{6122,7382,2},{6117,7372,2}, {6117,7367,2},{6122,7352,2},{6120,7337,2},{6122,7323,2},{6122,7313,2},{6123,7305,2}, {6122,7295,2},{6123,7282,2},{6120,7263,2},{6122,7255,2},{6127,7247,2},{6130,7230,2}, {6123,7218,2},{6123,7197,2},{6125,7190,2},{6123,7182,2},{6125,7172,2},{6123,7167,2}, {6122,7153,2},{6122,7143,2},{6117,7127,2},{6118,7118,2},{6123,7117,2},{6125,7110,2}, {6128,7093,2},{6125,7083,2},{6125,7050,2},{6128,7045,2},{6127,7037,2},{6125,7025,2}, {6122,7022,2},{6122,7013,2},{6122,6990,2},{6125,6985,2},{6127,6973,2},{6123,6960,2}, {6128,6948,2},{6123,6942,2},{6122,6933,2},{6118,6930,2},{6117,6925,2},{6122,6912,2}, {6118,6895,2},{6112,6890,2},{6110,6897,2},{6107,6898,2},{6102,6900,2},{6100,6905,2}, {6097,6932,2},{6095,6938,2},{6095,6947,2},{6088,6952,2},{6085,6958,2},{6070,6968,2}, {6068,6985,2},{6065,6988,2},{6058,6983,2},{6052,6977,2},{6043,6983,2},{6035,6977,2}, {6035,6985,2},{6023,6990,2},{6022,6987,2},{6022,6982,2},{6020,6982,2},{6012,6970,2}, {6010,6972,2},{6013,6977,2},{6012,6982,2},{6007,6987,2},{6002,6993,2},{5997,6992,2}, {5993,6993,2},{5990,6987,2},{5982,6995,2},{5980,6992,2},{5983,6982,2},{5982,6978,2}, {5977,6978,2},{5973,6977,2},{5975,6957,2},{5965,6947,2},{5963,6932,2},{5955,6932,2}, {5953,6923,2},{5955,6910,2},{5950,6912,2},{5943,6905,2},{5943,6900,2},{5943,6890,2}, {5942,6895,2},{5938,6897,2},{5933,6890,2},{5928,6887,2},{5925,6882,2},{5917,6883,2}, {5918,6890,2},{5917,6893,2},{5917,6895,2},{5913,6893,2},{5910,6885,2},{5902,6892,2}, {5898,6887,2},{5902,6878,2},{5902,6877,2},{5895,6888,2},{5893,6888,2},{5892,6885,2}, {5892,6877,2},{5890,6875,2},{5888,6880,2},{5887,6880,2},{5885,6870,2},{5882,6878,2}, {5877,6877,2},{5873,6868,2},{5877,6860,2},{5863,6857,2},{5862,6863,2},{5857,6860,2}, {5852,6865,2},{5850,6865,2},{5848,6853,2},{5850,6842,2},{5847,6842,2},{5845,6835,2}, {5840,6837,2},{5835,6833,2},{5833,6830,2},{5832,6817,2},{5828,6823,2},{5823,6825,2}, {5817,6822,2},{5815,6827,2},{5817,6822,2},{5818,6820,2},{5827,6822,2},{5832,6813,2}, {5833,6813,2},{5837,6830,2},{5840,6833,2},{5847,6833,2},{5852,6838,2},{5850,6853,2}, {5852,6862,2},{5855,6855,2},{5860,6860,2},{5863,6855,2},{5875,6858,2},{5880,6855,2}, {5880,6863,2},{5875,6870,2},{5880,6875,2},{5882,6875,2},{5883,6867,2},{5885,6867,2}, {5887,6877,2},{5888,6870,2},{5890,6868,2},{5895,6877,2},{5893,6885,2},{5895,6887,2}, {5898,6873,2},{5902,6872,2},{5905,6873,2},{5903,6880,2},{5900,6885,2},{5902,6888,2}, {5910,6882,2},{5917,6890,2},{5915,6882,2},{5917,6880,2},{5923,6882,2},{5927,6878,2}, {5930,6885,2},{5935,6887,2},{5938,6893,2},{5940,6893,2},{5945,6887,2},{5947,6903,2}, {5950,6908,2},{5955,6907,2},{5957,6908,2},{5957,6928,2},{5963,6927,2},{5968,6945,2}, {5977,6955,2},{5975,6975,2},{5985,6977,2},{5983,6992,2},{5992,6982,2},{5995,6990,2}, {6003,6990,2},{6010,6978,2},{6008,6972,2},{6008,6967,2},{6010,6965,2},{6015,6967,2}, {6022,6977,2},{6023,6977,2},{6025,6987,2},{6032,6983,2},{6033,6975,2},{6037,6973,2}, {6038,6973,2},{6043,6978,2},{6053,6973,2},{6065,6983,2},{6067,6972,2},{6068,6963,2}, {6075,6962,2},{6080,6955,2},{6083,6955,2},{6087,6947,2},{6093,6943,2},{6092,6940,2}, {6093,6935,2},{6095,6932,2},{6093,6922,2},{6098,6913,2},{6098,6903,2},{6102,6897,2}, {6107,6895,2},{6108,6893,2},{6107,6882,2},{6107,6853,2},{6113,6843,2},{6117,6830,2}, {6123,6823,2},{6130,6825,2},{6138,6835,2},{6142,6833,2},{6148,6822,2},{6153,6800,2}, {6160,6788,2},{6162,6778,2},{6162,6768,2},{6168,6755,2},{6173,6752,2},{6182,6753,2}, {6190,6740,2},{6205,6732,2},{6215,6720,2},{6218,6712,2},{6223,6690,2},{6223,6673,2}, {6227,6665,2},{6227,6652,2},{6237,6645,2},{6242,6635,2},{6247,6590,2},{6253,6578,2}, {6268,6558,2},{6275,6540,2},{6287,6530,2},{6290,6523,2},{6292,6515,2},{6300,6502,2}, {6302,6503,2},{6308,6492,2},{6313,6490,2},{6320,6500,2},{6332,6497,2},{6338,6505,2}, {6342,6520,2},{6345,6525,2},{6352,6518,2},{6357,6520,2},{6363,6515,2},{6368,6517,2}, {6370,6522,2},{6370,6533,2},{6373,6533,2},{6377,6530,2},{6385,6532,2},{6387,6540,2}, {6392,6552,2},{6403,6560,2},{6413,6555,2},{6417,6555,2},{6422,6545,2},{6428,6550,2}, {6432,6540,2},{6438,6542,2},{6442,6533,2},{6447,6540,2},{6453,6540,2},{6457,6535,2}, {6462,6525,2},{6465,6522,2},{6475,6523,2},{6483,6517,2},{6488,6523,2},{6493,6513,2}, {6495,6505,2},{6498,6497,2},{6505,6498,2},{6508,6488,2},{6522,6482,2},{6527,6473,2}, {6535,6472,2},{6542,6473,2},{6550,6465,2},{6557,6478,2},{6565,6483,2},{6573,6500,2}, {6583,6510,2},{6587,6518,2},{6592,6545,2},{6597,6545,2},{6607,6560,2},{6612,6565,2}, {6612,6567,2},{6608,6580,2},{6605,6587,2},{6585,6582,2},{6570,6565,2},{6558,6558,2}, {6542,6557,2},{6535,6542,2},{6530,6537,2},{6525,6527,2},{6508,6520,2},{6502,6530,2}, {6500,6545,2},{6502,6558,2},{6502,6563,2},{6497,6563,2},{6490,6547,2},{6482,6552,2}, {6473,6545,2},{6470,6550,2},{6463,6573,2},{6462,6572,2},{6460,6562,2},{6458,6558,2}, {6448,6573,2},{6445,6582,2},{6437,6585,2},{6433,6592,2},{6425,6582,2},{6422,6597,2}, {6413,6602,2},{6413,6588,2},{6412,6583,2},{6408,6585,2},{6408,6580,2},{6407,6577,2}, {6398,6578,2},{6395,6575,2},{6392,6580,2},{6387,6573,2},{6378,6585,2},{6378,6568,2}, {6377,6565,2},{6370,6573,2},{6363,6570,2},{6355,6575,2},{6352,6568,2},{6352,6560,2}, {6348,6555,2},{6347,6542,2},{6342,6550,2},{6335,6548,2},{6332,6540,2},{6327,6522,2}, {6320,6517,2},{6308,6515,2},{6303,6505,2},{6302,6503,130},{6308,6492,2}, {6313,6490,2},{6320,6500,2},{6332,6497,2},{6338,6505,2},{6342,6520,2},{6345,6525,2}, {6352,6518,2},{6357,6520,2},{6363,6515,2},{6368,6517,2},{6370,6522,2},{6370,6533,2}, {6373,6533,2},{6377,6530,2},{6385,6532,2},{6387,6540,2},{6392,6552,2},{6403,6560,2}, {6413,6555,2},{6417,6555,2},{6422,6545,2},{6428,6550,2},{6432,6540,2},{6438,6542,2}, {6442,6533,2},{6447,6540,2},{6453,6540,2},{6457,6535,2},{6462,6525,2},{6465,6522,2}, {6475,6523,2},{6483,6517,2},{6488,6523,2},{6493,6513,2},{6495,6505,2},{6498,6497,2}, {6505,6498,2},{6508,6488,2},{6522,6482,2},{6527,6473,2},{6535,6472,2},{6542,6473,2}, {6550,6465,2},{6557,6478,2},{6565,6483,2},{6573,6500,2},{6583,6510,2},{6587,6518,2}, {6592,6545,2},{6597,6545,2},{6607,6560,2},{6612,6565,2},{6612,6567,2},{6608,6580,2}, {6605,6587,2},{6585,6582,2},{6570,6565,2},{6558,6558,2},{6542,6557,2},{6535,6542,2}, {6530,6537,2},{6525,6527,2},{6508,6520,2},{6502,6530,2},{6500,6545,2},{6502,6558,2}, {6502,6563,2},{6497,6563,2},{6490,6547,2},{6482,6552,2},{6473,6545,2},{6470,6550,2}, {6463,6573,2},{6462,6572,2},{6460,6562,2},{6458,6558,2},{6448,6573,2},{6445,6582,2}, {6437,6585,2},{6433,6592,2},{6425,6582,2},{6422,6597,2},{6413,6602,2},{6413,6588,2}, {6412,6583,2},{6408,6585,2},{6408,6580,2},{6407,6577,2},{6398,6578,2},{6395,6575,2}, {6392,6580,2},{6387,6573,2},{6378,6585,2},{6378,6568,2},{6377,6565,2},{6370,6573,2}, {6363,6570,2},{6355,6575,2},{6352,6568,2},{6352,6560,2},{6348,6555,2},{6347,6542,2}, {6342,6550,2},{6335,6548,2},{6332,6540,2},{6327,6522,2},{6320,6517,2},{6308,6515,2}, {6303,6505,2},{6438,9208,130},{6440,9200,2},{6442,9185,2},{6445,9173,2}, {6447,9140,2},{6448,9127,2},{6455,9105,2},{6458,9092,2},{6470,9080,2},{6473,9073,2}, {6477,9058,2},{6477,9040,2},{6487,9027,2},{6497,9025,2},{6503,9017,2},{6507,9013,2}, {6508,9002,2},{6512,8997,2},{6517,8998,2},{6528,8993,2},{6543,8993,2},{6553,8998,2}, {6562,8998,2},{6568,8983,2},{6568,8973,2},{6573,8965,2},{6575,8948,2},{6578,8938,2}, {6587,8925,2},{6590,8912,2},{6593,8903,2},{6595,8888,2},{6592,8858,2},{6587,8845,2}, {6580,8837,2},{6583,8822,2},{6580,8815,2},{6578,8802,2},{6577,8807,2},{6567,8810,2}, {6555,8807,2},{6542,8800,2},{6530,8800,2},{6522,8792,2},{6513,8795,2},{6497,8783,2}, {6480,8783,2},{6472,8777,2},{6467,8763,2},{6443,8757,2},{6437,8762,2},{6430,8762,2}, {6408,8755,2},{6398,8765,2},{6393,8763,2},{6383,8753,2},{6370,8737,2},{6368,8735,2}, {6362,8742,2},{6348,8737,2},{6340,8727,2},{6337,8727,2},{6328,8763,2},{6320,8788,2}, {6308,8812,2},{6293,8820,2},{6287,8843,2},{6280,8850,2},{6275,8848,2},{6262,8862,2}, {6250,8880,2},{6245,8902,2},{6240,8905,2},{6237,8902,2},{6228,8900,2},{6242,8900,2}, {6248,8880,2},{6262,8857,2},{6273,8843,2},{6278,8847,2},{6283,8843,2},{6292,8818,2}, {6308,8803,2},{6317,8785,2},{6322,8768,2},{6327,8753,2},{6333,8730,2},{6337,8722,2}, {6342,8722,2},{6350,8733,2},{6358,8735,2},{6372,8732,2},{6395,8760,2},{6398,8760,2}, {6408,8750,2},{6437,8757,2},{6450,8747,2},{6463,8750,2},{6470,8760,2},{6473,8768,2}, {6485,8777,2},{6497,8777,2},{6508,8787,2},{6520,8785,2},{6533,8793,2},{6548,8793,2}, {6560,8802,2},{6570,8802,2},{6575,8797,2},{6577,8777,2},{6593,8768,2},{6595,8773,2}, {6597,8790,2},{6602,8792,2},{6607,8788,2},{6612,8730,2},{6617,8722,2},{6622,8718,2}, {6627,8720,2},{6632,8745,2},{6635,8748,2},{6637,8748,2},{6640,8728,2},{6658,8687,2}, {6660,8673,2},{6658,8665,2},{6653,8642,2},{6655,8625,2},{6658,8622,2},{6672,8635,2}, {6675,8660,2},{6678,8668,2},{6682,8670,2},{6695,8660,2},{6710,8662,2},{6723,8648,2}, {6733,8653,2},{6740,8652,2},{6742,8650,2},{6742,8642,2},{6743,8637,2},{6753,8630,2}, {6760,8620,2},{6780,8633,2},{6787,8650,2},{6788,8652,2},{6792,8652,2},{6795,8640,2}, {6803,8628,2},{6812,8637,2},{6822,8655,2},{6825,8657,2},{6830,8652,2},{6832,8642,2}, {6835,8635,2},{6842,8628,2},{6847,8625,2},{6855,8630,2},{6870,8620,2},{6873,8607,2}, {6883,8585,2},{6888,8582,2},{6893,8582,2},{6903,8602,2},{6910,8607,2},{6915,8603,2}, {6922,8575,2},{6928,8572,2},{6933,8578,2},{6940,8602,2},{6945,8605,2},{6960,8572,2}, {6965,8543,2},{6973,8532,2},{6977,8513,2},{6975,8495,2},{6968,8472,2},{6957,8442,2}, {6957,8422,2},{6960,8413,2},{6970,8403,2},{6973,8393,2},{6973,8358,2},{6975,8348,2}, {6987,8332,2},{6985,8338,2},{6988,8343,2},{7002,8333,2},{7005,8322,2},{7007,8308,2}, {7008,8318,2},{7007,8342,2},{7002,8350,2},{6997,8355,2},{6993,8365,2},{6987,8372,2}, {6983,8390,2},{6978,8392,2},{6972,8412,2},{6970,8437,2},{6965,8445,2},{6978,8480,2}, {6982,8532,2},{6980,8547,2},{6973,8568,2},{6962,8580,2},{6953,8595,2},{6945,8620,2}, {6938,8615,2},{6933,8603,2},{6928,8602,2},{6923,8593,2},{6915,8612,2},{6912,8615,2}, {6905,8613,2},{6887,8598,2},{6878,8607,2},{6870,8627,2},{6865,8635,2},{6857,8640,2}, {6843,8637,2},{6837,8643,2},{6832,8658,2},{6825,8663,2},{6817,8655,2},{6810,8645,2}, {6807,8643,2},{6795,8652,2},{6787,8663,2},{6783,8657,2},{6778,8642,2},{6768,8632,2}, {6760,8628,2},{6752,8640,2},{6747,8640,2},{6748,8660,2},{6747,8667,2},{6743,8668,2}, {6740,8667,2},{6728,8672,2},{6720,8667,2},{6715,8675,2},{6710,8677,2},{6703,8673,2}, {6698,8677,2},{6690,8672,2},{6678,8678,2},{6673,8675,2},{6662,8633,2},{6658,8633,2}, {6657,8642,2},{6658,8650,2},{6663,8667,2},{6663,8682,2},{6660,8697,2},{6657,8702,2}, {6650,8718,2},{6648,8723,2},{6643,8728,2},{6638,8753,2},{6635,8757,2},{6628,8757,2}, {6625,8752,2},{6620,8733,2},{6617,8732,2},{6613,8740,2},{6612,8757,2},{6612,8787,2}, {6608,8798,2},{6598,8800,2},{6585,8783,2},{6580,8788,2},{6580,8802,2},{6585,8815,2}, {6583,8825,2},{6582,8832,2},{6593,8848,2},{6595,8857,2},{6597,8887,2},{6597,8903,2}, {6592,8917,2},{6590,8925,2},{6580,8943,2},{6577,8965,2},{6567,8998,2},{6560,9005,2}, {6545,8998,2},{6528,9000,2},{6522,9005,2},{6512,9002,2},{6505,9022,2},{6495,9032,2}, {6490,9032,2},{6480,9045,2},{6478,9058,2},{6473,9082,2},{6458,9095,2},{6455,9117,2}, {6450,9128,2},{6447,9138,2},{6448,9152,2},{6447,9173,2},{6443,9183,2},{6442,9197,2}, {6438,9207,2},{4338,4002,131},{4340,3992,3},{4350,3987,3},{4357,3972,3}, {4362,3968,3},{4365,3962,3},{4392,3930,3},{4403,3910,3},{4415,3897,3},{4417,3887,3}, {4427,3875,3},{4433,3860,3},{4435,3833,3},{4438,3828,3},{4438,3820,3},{4442,3815,3}, {4448,3812,3},{4452,3805,3},{4455,3807,3},{4457,3803,3},{4455,3800,3},{4460,3793,3}, {4463,3793,3},{4467,3788,3},{4470,3787,3},{4473,3778,3},{4467,3782,3},{4463,3782,3}, {4463,3775,3},{4467,3763,3},{4465,3757,3},{4467,3748,3},{4472,3743,3},{4473,3738,3}, {4485,3732,3},{4487,3730,3},{4490,3732,3},{4498,3720,3},{4510,3685,3},{4510,3670,3}, {4513,3662,3},{4518,3658,3},{4520,3658,3},{4520,3670,3},{4522,3675,3},{4523,3677,3}, {4523,3683,3},{4527,3697,3},{4532,3697,3},{4530,3678,3},{4533,3677,3},{4535,3675,3}, {4535,3677,3},{4535,3678,3},{4532,3680,3},{4533,3682,3},{4537,3685,3},{4537,3682,3}, {4538,3677,3},{4533,3670,3},{4533,3667,3},{4542,3675,3},{4543,3683,3},{4533,3713,3}, {4530,3710,3},{4527,3712,3},{4527,3707,3},{4525,3707,3},{4523,3708,3},{4523,3712,3}, {4525,3723,3},{4527,3725,3},{4528,3732,3},{4530,3717,3},{4532,3715,3},{4533,3717,3}, {4533,3737,3},{4530,3738,3},{4537,3752,3},{4533,3750,3},{4535,3755,3},{4533,3760,3}, {4530,3760,3},{4530,3757,3},{4530,3762,3},{4533,3763,3},{4530,3765,3},{4532,3767,3}, {4530,3773,3},{4533,3770,3},{4537,3773,3},{4540,3777,3},{4538,3772,3},{4542,3773,3}, {4545,3770,3},{4545,3775,3},{4548,3768,3},{4557,3770,3},{4558,3765,3},{4560,3763,3}, {4557,3762,3},{4555,3767,3},{4555,3763,3},{4552,3765,3},{4550,3763,3},{4545,3765,3}, {4543,3763,3},{4542,3762,3},{4543,3758,3},{4563,3758,3},{4567,3762,3},{4565,3763,3}, {4563,3762,3},{4562,3770,3},{4567,3767,3},{4573,3780,3},{4577,3783,3},{4583,3788,3}, {4598,3792,3},{4603,3793,3},{4605,3802,3},{4607,3807,3},{4605,3810,3},{4602,3803,3}, {4603,3807,3},{4597,3803,3},{4595,3807,3},{4593,3808,3},{4590,3807,3},{4583,3800,3}, {4582,3805,3},{4585,3805,3},{4588,3808,3},{4603,3813,3},{4605,3817,3},{4612,3817,3}, {4613,3823,3},{4603,3843,3},{4602,3847,3},{4603,3857,3},{4610,3857,3},{4622,3830,3}, {4627,3827,3},{4635,3817,3},{4640,3808,3},{4640,3800,3},{4638,3797,3},{4637,3802,3}, {4635,3800,3},{4640,3790,3},{4648,3782,3},{4667,3773,3},{4662,3785,3},{4662,3802,3}, {4668,3812,3},{4668,3820,3},{4673,3827,3},{4668,3830,3},{4665,3838,3},{4663,3847,3}, {4665,3858,3},{4668,3860,3},{4670,3857,3},{4673,3850,3},{4675,3842,3},{4673,3838,3}, {4672,3838,3},{4675,3837,3},{4677,3840,3},{4683,3842,3},{4687,3848,3},{4683,3855,3}, {4688,3878,3},{4695,3887,3},{4695,3893,3},{4700,3903,3},{4703,3908,3},{4700,3910,3}, {4702,3917,3},{4700,3927,3},{4708,3930,3},{4712,3938,3},{4713,3933,3},{4708,3927,3}, {4713,3927,3},{4715,3925,3},{4718,3925,3},{4720,3928,3},{4725,3927,3},{4728,3908,3}, {4725,3903,3},{4725,3895,3},{4722,3893,3},{4718,3893,3},{4718,3888,3},{4717,3885,3}, {4715,3875,3},{4713,3862,3},{4713,3855,3},{4712,3855,3},{4713,3848,3},{4722,3855,3}, {4725,3878,3},{4728,3882,3},{4725,3878,3},{4723,3857,3},{4717,3847,3},{4713,3845,3}, {4713,3830,3},{4712,3823,3},{4713,3823,3},{4718,3823,3},{4723,3827,3},{4725,3833,3}, {4730,3832,3},{4730,3823,3},{4732,3823,3},{4737,3827,3},{4738,3830,3},{4742,3832,3}, {4747,3830,3},{4753,3830,3},{4757,3833,3},{4762,3838,3},{4762,3847,3},{4763,3845,3}, {4763,3853,3},{4765,3863,3},{4770,3868,3},{4768,3877,3},{4770,3878,3},{4775,3878,3}, {4782,3880,3},{4782,3883,3},{4787,3883,3},{4787,3887,3},{4787,3895,3},{4787,3903,3}, {4783,3912,3},{4785,3920,3},{4787,3928,3},{4788,3937,3},{4785,3943,3},{4787,3947,3}, {4783,3953,3},{4783,3957,3},{4783,3965,3},{4783,3975,3},{4788,3978,3},{4793,3980,3}, {4800,3982,3},{4805,3982,3},{4808,3988,3},{4813,3990,3},{4818,3995,3},{4822,3995,3}, {4823,4002,3},{4827,4002,3},{4832,3998,3},{4830,3993,3},{4832,3985,3},{4835,3992,3}, {4838,3992,3},{4843,3990,3},{4847,3985,3},{4850,3985,3},{4852,3987,3},{4858,3983,3}, {4858,3977,3},{4860,3968,3},{4863,3968,3},{4868,3972,3},{4873,3972,3},{4878,3977,3}, {4883,3980,3},{4890,3983,3},{4893,3978,3},{4900,3972,3},{4905,3967,3},{4907,3970,3}, {4905,3978,3},{4907,3987,3},{4907,3993,3},{4908,3995,3},{4912,3998,3},{4918,4003,3}, {4918,4008,3},{4923,4013,3},{4925,4020,3},{4932,4018,3},{4940,4017,3},{4945,4017,3}, {4950,4022,3},{4957,4022,3},{4962,4015,3},{4962,4005,3},{4960,3997,3},{4957,3990,3}, {4957,3980,3},{4962,3968,3},{4967,3963,3},{4973,3962,3},{4975,3958,3},{4977,3947,3}, {4975,3935,3},{4977,3927,3},{4985,3922,3},{4988,3917,3},{4983,3910,3},{4982,3903,3}, {4982,3895,3},{4987,3893,3},{4987,3885,3},{4990,3878,3},{4993,3870,3},{4998,3870,3}, {4998,3868,3},{4997,3865,3},{4998,3862,3},{4997,3853,3},{5000,3847,3},{5000,3837,3}, {5003,3837,3},{5008,3833,3},{5008,3830,3},{5008,3828,3},{5007,3820,3},{5005,3820,3}, {4997,3822,3},{4993,3815,3},{4993,3812,3},{4992,3805,3},{4995,3802,3},{4997,3802,3}, {5000,3795,3},{5005,3792,3},{5005,3787,3},{5008,3780,3},{5013,3772,3},{5018,3765,3}, {5025,3763,3},{5030,3763,3},{5030,3762,3},{5033,3753,3},{5038,3747,3},{5043,3747,3}, {5043,3743,3},{5043,3735,3},{5038,3728,3},{5035,3717,3},{5035,3710,3},{5035,3700,3}, {5035,3693,3},{5032,3680,3},{5027,3668,3},{5023,3662,3},{5028,3657,3},{5030,3660,3}, {5030,3652,3},{5033,3643,3},{5030,3632,3},{5035,3630,3},{5037,3627,3},{5042,3622,3}, {5043,3618,3},{5045,3607,3},{5045,3598,3},{5043,3582,3},{5040,3580,3},{5037,3570,3}, {5038,3562,3},{5045,3560,3},{5048,3553,3},{5052,3547,3},{5060,3542,3},{5060,3543,3}, {5065,3542,3},{5067,3550,3},{5072,3548,3},{5078,3548,3},{5082,3542,3},{5088,3538,3}, {5093,3540,3},{5095,3535,3},{5102,3533,3},{5103,3542,3},{5107,3542,3},{5107,3530,3}, {5105,3528,3},{5105,3522,3},{5110,3518,3},{5115,3513,3},{5122,3513,3},{5122,3505,3}, {5123,3497,3},{5120,3490,3},{5118,3482,3},{5118,3475,3},{5120,3468,3},{5125,3465,3}, {5125,3463,3},{5125,3455,3},{5123,3445,3},{5127,3438,3},{5125,3430,3},{5125,3427,3}, {5132,3432,3},{5138,3432,3},{5137,3428,3},{5140,3422,3},{5145,3427,3},{5152,3430,3}, {5157,3427,3},{5160,3420,3},{5163,3413,3},{5168,3413,3},{5170,3425,3},{5172,3433,3}, {5173,3445,3},{5177,3445,3},{5183,3443,3},{5185,3438,3},{5185,3427,3},{5192,3425,3}, {5192,3422,3},{5197,3413,3},{5202,3410,3},{5208,3408,3},{5208,3412,3},{5213,3413,3}, {5215,3408,3},{5218,3407,3},{5222,3400,3},{5225,3393,3},{5230,3392,3},{5230,3387,3}, {5237,3382,3},{5235,3370,3},{5233,3362,3},{5230,3355,3},{5235,3352,3},{5235,3350,3}, {5235,3345,3},{5237,3338,3},{5235,3330,3},{5238,3320,3},{5233,3313,3},{5230,3305,3}, {5227,3298,3},{5225,3290,3},{5228,3283,3},{5225,3280,3},{5225,3270,3},{5227,3268,3}, {5232,3258,3},{5232,3247,3},{5233,3237,3},{5230,3237,3},{5225,3238,3},{5218,3235,3}, {5213,3237,3},{5210,3230,3},{5208,3223,3},{5205,3213,3},{5205,3205,3},{5203,3197,3}, {5203,3195,3},{5208,3193,3},{5210,3190,3},{5210,3180,3},{5212,3180,3},{5218,3178,3}, {5220,3172,3},{5222,3172,3},{5227,3170,3},{5227,3168,3},{5230,3162,3},{5237,3163,3}, {5242,3162,3},{5247,3162,3},{5252,3160,3},{5253,3163,3},{5253,3167,3},{5257,3167,3}, {5258,3158,3},{5263,3157,3},{5270,3153,3},{5273,3162,3},{5280,3158,3},{5285,3155,3}, {5287,3147,3},{5295,3138,3},{5300,3132,3},{5303,3125,3},{5303,3130,3},{5303,3132,3}, {5308,3135,3},{5310,3138,3},{5315,3138,3},{5320,3143,3},{5320,3147,3},{5320,3150,3}, {5318,3158,3},{5322,3163,3},{5322,3168,3},{5317,3178,3},{5312,3185,3},{5312,3190,3}, {5308,3197,3},{5308,3207,3},{5308,3215,3},{5310,3218,3},{5310,3223,3},{5313,3230,3}, {5318,3237,3},{5318,3242,3},{5323,3248,3},{5328,3253,3},{5330,3257,3},{5333,3265,3}, {5333,3273,3},{5335,3273,3},{5340,3277,3},{5347,3277,3},{5347,3265,3},{5350,3263,3}, {5348,3260,3},{5352,3260,3},{5355,3252,3},{5358,3245,3},{5365,3245,3},{5365,3242,3}, {5368,3250,3},{5373,3247,3},{5373,3237,3},{5377,3230,3},{5378,3222,3},{5380,3215,3}, {5380,3205,3},{5380,3197,3},{5378,3187,3},{5380,3180,3},{5380,3177,3},{5382,3178,3}, {5383,3178,3},{5388,3182,3},{5393,3185,3},{5398,3187,3},{5403,3190,3},{5407,3182,3}, {5412,3178,3},{5412,3168,3},{5413,3167,3},{5413,3157,3},{5417,3150,3},{5420,3148,3}, {5423,3140,3},{5425,3132,3},{5432,3132,3},{5437,3130,3},{5442,3128,3},{5447,3123,3}, {5448,3120,3},{5450,3110,3},{5455,3113,3},{5458,3118,3},{5467,3120,3},{5467,3118,3}, {5467,3108,3},{5468,3100,3},{5470,3102,3},{5473,3093,3},{5478,3085,3},{5480,3077,3}, {5483,3077,3},{5488,3083,3},{5495,3087,3},{5497,3095,3},{5500,3097,3},{5503,3093,3}, {5503,3102,3},{5510,3100,3},{5515,3102,3},{5517,3098,3},{5518,3098,3},{5520,3095,3}, {5525,3092,3},{5528,3085,3},{5533,3083,3},{5535,3088,3},{5540,3093,3},{5545,3090,3}, {5550,3095,3},{5557,3097,3},{5562,3093,3},{5563,3085,3},{5560,3077,3},{5565,3072,3}, {5565,3068,3},{5570,3065,3},{5573,3062,3},{5577,3052,3},{5582,3047,3},{5582,3037,3}, {5585,3028,3},{5587,3020,3},{5583,3010,3},{5585,3000,3},{5585,2990,3},{5582,2983,3}, {5578,2978,3},{5578,2977,3},{5580,2975,3},{5580,2972,3},{5578,2962,3},{5572,2957,3}, {5570,2948,3},{5573,2945,3},{5575,2937,3},{5578,2937,3},{5583,2940,3},{5588,2942,3}, {5593,2947,3},{5597,2938,3},{5598,2927,3},{5602,2917,3},{5605,2910,3},{5603,2900,3}, {5600,2892,3},{5595,2885,3},{5597,2880,3},{5598,2872,3},{5603,2870,3},{5610,2867,3}, {5612,2855,3},{5608,2845,3},{5605,2837,3},{5605,2832,3},{5608,2828,3},{5613,2823,3}, {5617,2815,3},{5617,2818,3},{5623,2820,3},{5632,2822,3},{5638,2817,3},{5640,2818,3}, {5647,2815,3},{5652,2810,3},{5658,2813,3},{5662,2803,3},{5667,2802,3},{5672,2797,3}, {5677,2793,3},{5682,2798,3},{5683,2795,3},{5683,2792,3},{5687,2785,3},{5687,2777,3}, {5685,2767,3},{5687,2768,3},{5692,2768,3},{5692,2772,3},{5698,2773,3},{5703,2773,3}, {5708,2775,3},{5710,2772,3},{5712,2775,3},{5717,2782,3},{5722,2785,3},{5727,2787,3}, {5732,2783,3},{5735,2777,3},{5738,2768,3},{5742,2762,3},{5743,2752,3},{5747,2752,3}, {5748,2755,3},{5753,2753,3},{5753,2742,3},{5755,2732,3},{5760,2737,3},{5765,2738,3}, {5770,2742,3},{5772,2753,3},{5775,2753,3},{5780,2750,3},{5782,2755,3},{5783,2765,3}, {5783,2775,3},{5787,2783,3},{5792,2780,3},{5792,2775,3},{5795,2768,3},{5800,2770,3}, {5800,2765,3},{5802,2767,3},{5803,2765,3},{5803,2773,3},{5802,2778,3},{5798,2780,3}, {5795,2790,3},{5793,2790,3},{5792,2785,3},{5790,2792,3},{5785,2795,3},{5787,2808,3}, {5785,2813,3},{5792,2818,3},{5797,2813,3},{5800,2815,3},{5807,2805,3},{5812,2803,3}, {5815,2797,3},{5817,2795,3},{5817,2785,3},{5818,2780,3},{5817,2775,3},{5815,2765,3}, {5813,2762,3},{5817,2760,3},{5817,2758,3},{5818,2760,3},{5823,2758,3},{5823,2752,3}, {5832,2753,3},{5830,2765,3},{5835,2763,3},{5847,2778,3},{5843,2777,3},{5843,2780,3}, {5848,2785,3},{5857,2783,3},{5867,2777,3},{5885,2780,3},{5890,2772,3},{5895,2772,3}, {5898,2773,3},{5903,2777,3},{5910,2778,3},{5915,2783,3},{5918,2788,3},{5923,2790,3}, {5927,2797,3},{5928,2807,3},{5932,2818,3},{5933,2818,3},{5940,2822,3},{5943,2813,3}, {5947,2805,3},{5955,2807,3},{5960,2807,3},{5970,2800,3},{5977,2802,3},{5980,2808,3}, {5975,2818,3},{5968,2822,3},{5967,2837,3},{5970,2842,3},{5982,2843,3},{5985,2850,3}, {5987,2853,3},{5983,2858,3},{5982,2867,3},{5978,2870,3},{5978,2873,3},{5980,2878,3}, {5978,2883,3},{5982,2888,3},{5983,2898,3},{5990,2903,3},{5993,2898,3},{5993,2903,3}, {5997,2905,3},{5998,2910,3},{6000,2920,3},{5993,2977,3},{5987,3003,3},{5987,3015,3}, {5988,3022,3},{5995,3020,3},{5997,3025,3},{5998,3022,3},{6002,2995,3},{6008,2990,3}, {6013,2988,3},{6018,2977,3},{6020,2955,3},{6017,2942,3},{6017,2917,3},{6018,2902,3}, {6025,2897,3},{6032,2883,3},{6037,2882,3},{6033,2878,3},{6038,2860,3},{6043,2858,3}, {6057,2843,3},{6055,2850,3},{6052,2853,3},{6045,2868,3},{6047,2872,3},{6057,2867,3}, {6058,2865,3},{6060,2862,3},{6057,2860,3},{6060,2855,3},{6063,2858,3},{6062,2863,3}, {6062,2868,3},{6067,2865,3},{6067,2873,3},{6072,2873,3},{6073,2867,3},{6068,2858,3}, {6067,2840,3},{6062,2838,3},{6062,2832,3},{6060,2833,3},{6060,2828,3},{6057,2823,3}, {6053,2822,3},{6055,2815,3},{6053,2815,3},{6053,2807,3},{6052,2805,3},{6053,2792,3}, {6052,2790,3},{6057,2785,3},{6072,2810,3},{6077,2815,3},{6080,2827,3},{6087,2835,3}, {6095,2852,3},{6097,2863,3},{6103,2870,3},{6110,2882,3},{6125,2922,3},{6137,2937,3}, {6143,2948,3},{6148,2953,3},{6152,2965,3},{6160,2982,3},{6165,2983,3},{6173,2998,3}, {6198,3033,3},{6217,3063,3},{6220,3065,3},{6230,3093,3},{6237,3098,3},{6245,3115,3}, {6247,3117,3},{6250,3127,3},{6262,3132,3},{6265,3138,3},{6280,3147,3},{6292,3158,3}, {6293,3153,3},{6298,3152,3},{6312,3128,3},{6322,3122,3},{6332,3097,3},{6335,3092,3}, {6340,3078,3},{6348,3048,3},{6355,3040,3},{6360,3025,3},{6373,3000,3},{6375,3002,3}, {6382,3027,3},{6392,3035,3},{6402,3055,3},{6408,3062,3},{6418,3055,3},{6422,3058,3}, {6425,3057,3},{6425,3045,3},{6432,3038,3},{6435,3015,3},{6440,3005,3},{6447,3008,3}, {6452,3005,3},{6458,3007,3},{6463,3018,3},{6467,3022,3},{6473,3012,3},{6477,3013,3}, {6480,3005,3},{6480,2980,3},{6492,2965,3},{6500,2960,3},{6507,2963,3},{6512,2987,3}, {6515,2982,3},{6518,2987,3},{6522,2985,3},{6522,2963,3},{6525,2960,3},{6535,2975,3}, {6552,2975,3},{6557,2987,3},{6563,2972,3},{6568,3002,3},{6567,3012,3},{6572,3013,3}, {6583,3010,3},{6598,2998,3},{6613,2992,3},{6632,2963,3},{6650,2955,3},{6658,2943,3}, {6670,2933,3},{6683,2910,3},{6692,2908,3},{6702,2913,3},{6730,2953,3},{6752,2993,3}, {6757,2998,3},{6767,2998,3},{6770,3003,3},{6782,2970,3},{6808,2935,3},{6820,2870,3}, {6853,2845,3},{6873,2875,3},{6885,2882,3},{6888,2873,3},{6887,2848,3},{6890,2843,3}, {6892,2845,3},{6903,2885,3},{6905,2895,3},{6903,2900,3},{6903,2912,3},{6912,2925,3}, {6925,2932,3},{6932,2932,3},{6938,2968,3},{6943,2982,3},{6943,2995,3},{6950,3010,3}, {6955,3013,3},{6958,3018,3},{6963,3015,3},{6963,3007,3},{6965,3007,3},{6967,3015,3}, {6963,3030,3},{6955,3052,3},{6953,3080,3},{6955,3092,3},{6958,3095,3},{6968,3095,3}, {6970,3090,3},{6978,3080,3},{6980,3088,3},{6975,3127,3},{6972,3140,3},{6968,3140,3}, {6962,3130,3},{6968,3143,3},{6970,3145,3},{6968,3153,3},{6970,3153,3},{6968,3180,3}, {6970,3180,3},{6973,3168,3},{6980,3172,3},{6983,3173,3},{6985,3182,3},{6980,3202,3}, {6977,3205,3},{6978,3207,3},{6978,3210,3},{6990,3198,3},{6992,3192,3},{6997,3193,3}, {6995,3208,3},{6988,3225,3},{6988,3235,3},{6985,3250,3},{6980,3250,3},{6978,3258,3}, {6978,3265,3},{6980,3270,3},{6975,3310,3},{6973,3313,3},{6965,3312,3},{6962,3305,3}, {6958,3287,3},{6963,3248,3},{6965,3243,3},{6963,3237,3},{6965,3217,3},{6972,3218,3}, {6975,3212,3},{6967,3210,3},{6965,3197,3},{6963,3207,3},{6957,3202,3},{6960,3213,3}, {6957,3228,3},{6958,3238,3},{6957,3243,3},{6953,3240,3},{6950,3250,3},{6950,3242,3}, {6943,3228,3},{6943,3218,3},{6943,3228,3},{6947,3242,3},{6948,3245,3},{6948,3253,3}, {6950,3255,3},{6948,3258,3},{6948,3262,3},{6950,3267,3},{6948,3287,3},{6947,3290,3}, {6945,3280,3},{6942,3278,3},{6947,3290,3},{6947,3308,3},{6935,3283,3},{6930,3282,3}, {6932,3287,3},{6930,3290,3},{6938,3297,3},{6940,3308,3},{6945,3332,3},{6943,3335,3}, {6945,3345,3},{6942,3352,3},{6940,3350,3},{6937,3342,3},{6937,3350,3},{6935,3348,3}, {6930,3337,3},{6930,3328,3},{6927,3323,3},{6927,3325,3},{6928,3340,3},{6927,3347,3}, {6925,3343,3},{6923,3330,3},{6923,3340,3},{6922,3340,3},{6920,3342,3},{6922,3353,3}, {6918,3352,3},{6915,3340,3},{6910,3327,3},{6908,3312,3},{6907,3303,3},{6895,3302,3}, {6905,3307,3},{6910,3343,3},{6913,3345,3},{6915,3350,3},{6920,3357,3},{6932,3358,3}, {6933,3372,3},{6932,3375,3},{6930,3372,3},{6932,3378,3},{6930,3387,3},{6933,3385,3}, {6933,3395,3},{6932,3408,3},{6932,3435,3},{6930,3442,3},{6928,3442,3},{6927,3460,3}, {6925,3467,3},{6923,3498,3},{6918,3497,3},{6922,3503,3},{6922,3510,3},{6918,3518,3}, {6922,3527,3},{6927,3515,3},{6927,3533,3},{6917,3598,3},{6912,3607,3},{6913,3608,3}, {6910,3625,3},{6907,3627,3},{6905,3633,3},{6902,3660,3},{6895,3675,3},{6883,3723,3}, {6880,3723,3},{6878,3737,3},{6873,3745,3},{6873,3758,3},{6865,3782,3},{6855,3803,3}, {6850,3807,3},{6848,3820,3},{6847,3822,3},{6843,3833,3},{6840,3840,3},{6833,3840,3}, {6835,3845,3},{6828,3877,3},{6837,3850,3},{6837,3852,3},{6835,3860,3},{6838,3860,3}, {6838,3862,3},{6832,3878,3},{6830,3893,3},{6828,3895,3},{6827,3893,3},{6813,3937,3}, {6807,3952,3},{6803,3985,3},{6812,3978,3},{6817,3970,3},{6817,3973,3},{6817,3978,3}, {6810,3993,3},{6803,3998,3},{6800,4008,3},{6795,4013,3},{6793,4027,3},{6790,4028,3}, {6790,4037,3},{6785,4042,3},{6783,4032,3},{6775,4048,3},{6775,4055,3},{6780,4057,3}, {6782,4067,3},{6778,4068,3},{6772,4082,3},{6773,4092,3},{6772,4100,3},{6763,4105,3}, {6755,4098,3},{6753,4102,3},{6747,4100,3},{6747,4108,3},{6742,4115,3},{6725,4112,3}, {6723,4113,3},{6722,4125,3},{6723,4132,3},{6720,4137,3},{6715,4133,3},{6712,4138,3}, {6708,4133,3},{6702,4137,3},{6700,4133,3},{6700,4127,3},{6695,4130,3},{6683,4122,3}, {6678,4113,3},{6658,4073,3},{6653,4072,3},{6650,4060,3},{6645,4057,3},{6640,4045,3}, {6633,4018,3},{6628,4007,3},{6623,3985,3},{6620,3973,3},{6618,3953,3},{6613,3935,3}, {6612,3925,3},{6610,3893,3},{6608,3883,3},{6605,3855,3},{6608,3797,3},{6613,3760,3}, {6620,3740,3},{6625,3715,3},{6627,3697,3},{6630,3638,3},{6638,3568,3},{6638,3552,3}, {6642,3538,3},{6645,3533,3},{6647,3520,3},{6653,3503,3},{6660,3488,3},{6660,3478,3}, {6653,3455,3},{6653,3447,3},{6662,3435,3},{6663,3437,3},{6663,3452,3},{6665,3452,3}, {6665,3448,3},{6667,3432,3},{6667,3420,3},{6668,3417,3},{6667,3415,3},{6667,3408,3}, {6672,3415,3},{6677,3415,3},{6670,3410,3},{6668,3405,3},{6670,3403,3},{6668,3402,3}, {6668,3393,3},{6672,3388,3},{6670,3387,3},{6670,3383,3},{6677,3377,3},{6680,3367,3}, {6680,3363,3},{6683,3358,3},{6678,3358,3},{6682,3352,3},{6678,3353,3},{6675,3363,3}, {6678,3352,3},{6673,3355,3},{6677,3348,3},{6673,3355,3},{6672,3353,3},{6682,3318,3}, {6698,3282,3},{6705,3280,3},{6708,3297,3},{6708,3277,3},{6713,3260,3},{6713,3245,3}, {6717,3237,3},{6713,3207,3},{6717,3188,3},{6715,3185,3},{6715,3192,3},{6712,3192,3}, {6712,3210,3},{6712,3225,3},{6708,3235,3},{6707,3228,3},{6703,3250,3},{6697,3257,3}, {6695,3253,3},{6695,3238,3},{6693,3250,3},{6690,3248,3},{6688,3242,3},{6688,3255,3}, {6683,3268,3},{6680,3268,3},{6677,3292,3},{6673,3293,3},{6673,3287,3},{6673,3285,3}, {6673,3277,3},{6672,3280,3},{6668,3297,3},{6668,3318,3},{6665,3332,3},{6662,3332,3}, {6665,3313,3},{6660,3307,3},{6660,3288,3},{6658,3287,3},{6657,3310,3},{6660,3312,3}, {6658,3322,3},{6662,3322,3},{6662,3325,3},{6658,3342,3},{6655,3345,3},{6653,3353,3}, {6652,3353,3},{6652,3348,3},{6657,3317,3},{6655,3317,3},{6655,3307,3},{6653,3295,3}, {6652,3295,3},{6650,3312,3},{6653,3322,3},{6652,3330,3},{6648,3332,3},{6647,3353,3}, {6648,3360,3},{6648,3363,3},{6645,3358,3},{6643,3373,3},{6642,3372,3},{6640,3352,3}, {6637,3365,3},{6635,3367,3},{6635,3343,3},{6632,3332,3},{6632,3350,3},{6633,3362,3}, {6632,3365,3},{6630,3362,3},{6627,3388,3},{6622,3390,3},{6625,3397,3},{6625,3410,3}, {6620,3417,3},{6618,3415,3},{6615,3435,3},{6608,3455,3},{6607,3457,3},{6605,3462,3}, {6598,3472,3},{6595,3467,3},{6593,3472,3},{6590,3470,3},{6592,3477,3},{6590,3485,3}, {6588,3487,3},{6582,3483,3},{6583,3490,3},{6577,3487,3},{6575,3490,3},{6572,3497,3}, {6570,3492,3},{6580,3468,3},{6572,3468,3},{6572,3475,3},{6567,3470,3},{6567,3473,3}, {6560,3478,3},{6558,3473,3},{6552,3472,3},{6548,3463,3},{6545,3468,3},{6545,3450,3}, {6540,3450,3},{6542,3437,3},{6538,3438,3},{6538,3432,3},{6538,3430,3},{6538,3440,3}, {6535,3447,3},{6528,3447,3},{6528,3453,3},{6525,3453,3},{6525,3463,3},{6523,3460,3}, {6518,3468,3},{6517,3463,3},{6515,3467,3},{6512,3467,3},{6510,3478,3},{6505,3475,3}, {6505,3480,3},{6503,3482,3},{6498,3470,3},{6497,3477,3},{6485,3495,3},{6480,3487,3}, {6477,3475,3},{6475,3480,3},{6477,3483,3},{6478,3490,3},{6477,3502,3},{6472,3482,3}, {6470,3483,3},{6463,3497,3},{6458,3483,3},{6455,3482,3},{6455,3475,3},{6452,3485,3}, {6452,3495,3},{6445,3495,3},{6443,3510,3},{6438,3513,3},{6437,3532,3},{6433,3543,3}, {6433,3558,3},{6440,3557,3},{6432,3587,3},{6425,3590,3},{6418,3600,3},{6423,3603,3}, {6425,3608,3},{6415,3622,3},{6415,3628,3},{6410,3622,3},{6407,3628,3},{6402,3628,3}, {6400,3645,3},{6397,3648,3},{6397,3660,3},{6392,3668,3},{6393,3677,3},{6390,3685,3}, {6393,3693,3},{6390,3698,3},{6388,3717,3},{6382,3728,3},{6380,3740,3},{6382,3753,3}, {6385,3758,3},{6388,3758,3},{6392,3765,3},{6390,3782,3},{6393,3800,3},{6402,3808,3}, {6415,3805,3},{6423,3790,3},{6430,3802,3},{6433,3790,3},{6435,3795,3},{6437,3785,3}, {6438,3780,3},{6445,3780,3},{6445,3777,3},{6443,3770,3},{6440,3767,3},{6437,3763,3}, {6438,3758,3},{6438,3750,3},{6435,3735,3},{6438,3718,3},{6450,3700,3},{6472,3672,3}, {6475,3655,3},{6483,3650,3},{6483,3657,3},{6487,3647,3},{6495,3643,3},{6495,3652,3}, {6493,3658,3},{6492,3665,3},{6498,3683,3},{6502,3682,3},{6508,3687,3},{6517,3683,3}, {6518,3685,3},{6520,3703,3},{6515,3730,3},{6513,3743,3},{6505,3772,3},{6502,3775,3}, {6497,3775,3},{6488,3798,3},{6485,3807,3},{6485,3822,3},{6487,3842,3},{6480,3837,3}, {6477,3840,3},{6480,3832,3},{6478,3825,3},{6478,3817,3},{6477,3805,3},{6473,3803,3}, {6470,3813,3},{6465,3803,3},{6463,3805,3},{6467,3817,3},{6472,3818,3},{6475,3830,3}, {6475,3835,3},{6475,3848,3},{6477,3848,3},{6480,3842,3},{6482,3847,3},{6478,3865,3}, {6475,3893,3},{6457,3955,3},{6455,3975,3},{6458,3975,3},{6460,3992,3},{6462,3988,3}, {6460,3978,3},{6467,3983,3},{6462,4005,3},{6455,4018,3},{6457,4035,3},{6453,4050,3}, {6457,4053,3},{6473,4042,3},{6475,4042,3},{6477,4047,3},{6475,4052,3},{6477,4052,3}, {6480,4045,3},{6493,4037,3},{6502,4028,3},{6505,4013,3},{6522,3995,3},{6538,3972,3}, {6552,3972,3},{6557,3977,3},{6562,3985,3},{6568,4012,3},{6578,4042,3},{6597,4070,3}, {6600,4100,3},{6607,4135,3},{6615,4153,3},{6617,4165,3},{6618,4165,3},{6633,4192,3}, {6650,4213,3},{6653,4222,3},{6647,4258,3},{6645,4265,3},{6642,4267,3},{6640,4258,3}, {6638,4255,3},{6642,4300,3},{6642,4330,3},{6633,4338,3},{6632,4357,3},{6627,4367,3}, {6623,4370,3},{6620,4363,3},{6615,4345,3},{6610,4337,3},{6610,4330,3},{6603,4335,3}, {6603,4345,3},{6597,4352,3},{6603,4352,3},{6607,4338,3},{6608,4338,3},{6613,4350,3}, {6615,4363,3},{6618,4370,3},{6618,4385,3},{6608,4405,3},{6602,4402,3},{6587,4418,3}, {6593,4418,3},{6600,4412,3},{6608,4417,3},{6618,4408,3},{6632,4412,3},{6647,4425,3}, {6650,4437,3},{6662,4440,3},{6667,4457,3},{6667,4448,3},{6678,4437,3},{6680,4437,3}, {6683,4448,3},{6690,4447,3},{6692,4452,3},{6693,4448,3},{6702,4440,3},{6705,4430,3}, {6710,4438,3},{6708,4427,3},{6717,4417,3},{6718,4403,3},{6717,4390,3},{6720,4378,3}, {6722,4375,3},{6733,4375,3},{6743,4382,3},{6767,4403,3},{6768,4408,3},{6765,4412,3}, {6768,4415,3},{6770,4415,3},{6770,4407,3},{6778,4413,3},{6788,4408,3},{6788,4410,3}, {6788,4420,3},{6792,4427,3},{6793,4422,3},{6792,4413,3},{6795,4413,3},{6797,4413,3}, {6798,4422,3},{6798,4415,3},{6800,4415,3},{6805,4433,3},{6807,4442,3},{6805,4428,3}, {6803,4418,3},{6828,4423,3},{6840,4400,3},{6847,4373,3},{6862,4332,3},{6867,4327,3}, {6868,4337,3},{6868,4350,3},{6863,4363,3},{6863,4375,3},{6858,4385,3},{6853,4407,3}, {6853,4420,3},{6857,4480,3},{6857,4527,3},{6847,4600,3},{6845,4602,3},{6845,4595,3}, {6843,4593,3},{6832,4603,3},{6832,4610,3},{6822,4628,3},{6820,4633,3},{6822,4635,3}, {6813,4653,3},{6812,4652,3},{6810,4647,3},{6810,4655,3},{6800,4657,3},{6793,4665,3}, {6792,4672,3},{6782,4672,3},{6780,4667,3},{6783,4633,3},{6780,4615,3},{6777,4582,3}, {6777,4562,3},{6773,4538,3},{6770,4530,3},{6768,4535,3},{6760,4533,3},{6758,4530,3}, {6758,4515,3},{6748,4495,3},{6735,4492,3},{6728,4513,3},{6717,4560,3},{6708,4565,3}, {6697,4578,3},{6690,4582,3},{6685,4598,3},{6682,4603,3},{6687,4657,3},{6683,4660,3}, {6682,4653,3},{6678,4648,3},{6673,4638,3},{6677,4650,3},{6682,4658,3},{6683,4692,3}, {6685,4695,3},{6685,4705,3},{6692,4740,3},{6690,4757,3},{6687,4757,3},{6688,4760,3}, {6693,4758,3},{6698,4770,3},{6703,4775,3},{6712,4775,3},{6718,4768,3},{6723,4778,3}, {6733,4777,3},{6743,4795,3},{6747,4793,3},{6757,4782,3},{6758,4783,3},{6765,4800,3}, {6763,4810,3},{6760,4807,3},{6758,4810,3},{6768,4825,3},{6768,4835,3},{6767,4843,3}, {6767,4853,3},{6770,4863,3},{6772,4868,3},{6770,4873,3},{6768,4872,3},{6768,4882,3}, {6770,4885,3},{6767,4898,3},{6765,4897,3},{6763,4900,3},{6763,4910,3},{6765,4905,3}, {6767,4905,3},{6772,4888,3},{6773,4877,3},{6777,4880,3},{6783,4880,3},{6793,4858,3}, {6793,4867,3},{6787,4880,3},{6785,4895,3},{6787,4923,3},{6798,4965,3},{6808,5002,3}, {6805,4998,3},{6802,4985,3},{6803,4997,3},{6807,5003,3},{6812,5007,3},{6827,5058,3}, {6837,5078,3},{6835,5083,3},{6833,5088,3},{6835,5108,3},{6838,5113,3},{6838,5128,3}, {6843,5143,3},{6842,5150,3},{6843,5157,3},{6845,5158,3},{6845,5153,3},{6848,5158,3}, {6848,5178,3},{6853,5205,3},{6858,5220,3},{6853,5218,3},{6850,5205,3},{6848,5205,3}, {6850,5218,3},{6848,5235,3},{6847,5235,3},{6847,5228,3},{6842,5228,3},{6838,5213,3}, {6830,5227,3},{6833,5232,3},{6835,5245,3},{6840,5257,3},{6842,5267,3},{6847,5273,3}, {6848,5272,3},{6853,5258,3},{6858,5248,3},{6862,5250,3},{6862,5262,3},{6865,5263,3}, {6863,5252,3},{6862,5245,3},{6858,5240,3},{6860,5228,3},{6887,5322,3},{6892,5347,3}, {6897,5383,3},{6902,5443,3},{6900,5457,3},{6897,5452,3},{6898,5445,3},{6895,5433,3}, {6893,5397,3},{6893,5375,3},{6890,5360,3},{6888,5360,3},{6885,5368,3},{6885,5373,3}, {6888,5368,3},{6888,5372,3},{6885,5402,3},{6882,5398,3},{6880,5385,3},{6875,5382,3}, {6870,5383,3},{6865,5372,3},{6860,5375,3},{6850,5390,3},{6840,5395,3},{6838,5385,3}, {6835,5382,3},{6833,5380,3},{6840,5368,3},{6840,5362,3},{6840,5358,3},{6835,5368,3}, {6833,5367,3},{6835,5358,3},{6837,5343,3},{6835,5338,3},{6833,5337,3},{6835,5333,3}, {6827,5320,3},{6825,5325,3},{6823,5333,3},{6825,5347,3},{6825,5370,3},{6823,5383,3}, {6822,5387,3},{6822,5400,3},{6825,5410,3},{6832,5420,3},{6825,5417,3},{6820,5420,3}, {6820,5423,3},{6830,5447,3},{6830,5452,3},{6830,5455,3},{6818,5465,3},{6817,5482,3}, {6825,5493,3},{6828,5492,3},{6832,5485,3},{6833,5492,3},{6840,5493,3},{6843,5500,3}, {6843,5507,3},{6847,5510,3},{6850,5520,3},{6852,5523,3},{6855,5532,3},{6857,5547,3}, {6857,5558,3},{6857,5568,3},{6860,5583,3},{6867,5597,3},{6863,5613,3},{6860,5633,3}, {6863,5652,3},{6862,5653,3},{6858,5650,3},{6863,5657,3},{6863,5663,3},{6857,5687,3}, {6853,5708,3},{6855,5728,3},{6858,5740,3},{6865,5745,3},{6868,5753,3},{6873,5758,3}, {6875,5792,3},{6878,5798,3},{6882,5795,3},{6885,5797,3},{6888,5823,3},{6887,5825,3}, {6883,5820,3},{6878,5825,3},{6875,5837,3},{6873,5833,3},{6873,5842,3},{6877,5843,3}, {6878,5828,3},{6883,5825,3},{6890,5828,3},{6895,5852,3},{6900,5893,3},{6900,5923,3}, {6898,5923,3},{6897,5902,3},{6893,5888,3},{6890,5910,3},{6877,5942,3},{6875,5943,3}, {6870,5940,3},{6872,5927,3},{6870,5918,3},{6863,5912,3},{6862,5907,3},{6857,5907,3}, {6853,5912,3},{6848,5908,3},{6842,5907,3},{6840,5913,3},{6838,5937,3},{6833,5965,3}, {6837,5983,3},{6847,5997,3},{6860,5987,3},{6863,5977,3},{6868,5982,3},{6872,5990,3}, {6872,5995,3},{6870,6000,3},{6868,6008,3},{6872,6047,3},{6875,6060,3},{6890,6083,3}, {6890,6097,3},{6892,6092,3},{6900,6095,3},{6908,6093,3},{6913,6088,3},{6917,6073,3}, {6912,6073,3},{6912,6063,3},{6913,6058,3},{6922,6060,3},{6932,6055,3},{6947,6030,3}, {6952,6022,3},{6955,6022,3},{6957,6013,3},{6963,6015,3},{6967,6028,3},{6967,6050,3}, {6967,6067,3},{6972,6063,3},{6973,6072,3},{6982,6070,3},{6985,6077,3},{6987,6087,3}, {6985,6105,3},{6987,6110,3},{6983,6115,3},{6983,6127,3},{6980,6140,3},{6977,6158,3}, {6978,6173,3},{6975,6202,3},{6975,6250,3},{6970,6308,3},{6967,6342,3},{6952,6428,3}, {6932,6498,3},{6928,6500,3},{6928,6493,3},{6930,6487,3},{6925,6478,3},{6922,6480,3}, {6917,6477,3},{6915,6480,3},{6920,6495,3},{6925,6492,3},{6927,6505,3},{6918,6538,3}, {6913,6587,3},{6910,6590,3},{6910,6577,3},{6912,6573,3},{6913,6565,3},{6908,6568,3}, {6903,6610,3},{6900,6625,3},{6895,6635,3},{6890,6658,3},{6888,6688,3},{6885,6712,3}, {6880,6703,3},{6875,6715,3},{6870,6720,3},{6868,6733,3},{6858,6763,3},{6850,6780,3}, {6852,6770,3},{6848,6778,3},{6847,6790,3},{6842,6817,3},{6833,6825,3},{6830,6823,3}, {6823,6818,3},{6823,6827,3},{6818,6828,3},{6822,6838,3},{6822,6843,3},{6832,6857,3}, {6832,6865,3},{6833,6857,3},{6837,6857,3},{6860,6890,3},{6880,6902,3},{6883,6910,3}, {6887,6912,3},{6887,6898,3},{6890,6895,3},{6892,6912,3},{6892,6913,3},{6893,6907,3}, {6895,6922,3},{6893,6903,3},{6897,6902,3},{6892,6878,3},{6892,6865,3},{6898,6847,3}, {6908,6835,3},{6928,6805,3},{6935,6803,3},{6938,6812,3},{6955,6810,3},{6955,6807,3}, {6952,6800,3},{6948,6803,3},{6948,6795,3},{6952,6778,3},{6958,6763,3},{6962,6750,3}, {6962,6735,3},{6968,6708,3},{6970,6698,3},{6965,6700,3},{6965,6698,3},{6963,6685,3}, {6957,6692,3},{6952,6693,3},{6957,6680,3},{6975,6677,3},{7000,6687,3},{7003,6692,3}, {7005,6698,3},{7002,6700,3},{6998,6697,3},{6995,6702,3},{6998,6718,3},{7002,6725,3}, {7010,6733,3},{7010,6728,3},{7015,6730,3},{7018,6725,3},{7013,6723,3},{7022,6708,3}, {7038,6720,3},{7042,6727,3},{7045,6725,3},{7047,6730,3},{7053,6722,3},{7075,6733,3}, {7082,6727,3},{7083,6710,3},{7080,6700,3},{7078,6678,3},{7077,6668,3},{7088,6662,3}, {7095,6677,3},{7100,6683,3},{7105,6683,3},{7108,6690,3},{7110,6682,3},{7107,6682,3}, {7105,6675,3},{7102,6677,3},{7100,6668,3},{7102,6662,3},{7105,6662,3},{7117,6682,3}, {7130,6692,3},{7130,6708,3},{7142,6758,3},{7143,6758,3},{7150,6785,3},{7152,6795,3}, {7167,6822,3},{7168,6828,3},{7167,6835,3},{7172,6830,3},{7182,6847,3},{7192,6855,3}, {7198,6857,3},{7203,6865,3},{7223,6873,3},{7232,6878,3},{7232,6882,3},{7245,6885,3}, {7248,6892,3},{7253,6887,3},{7265,6897,3},{7265,6905,3},{7267,6898,3},{7272,6902,3}, {7280,6923,3},{7293,6932,3},{7297,6937,3},{7297,6953,3},{7297,6975,3},{7295,6980,3}, {7293,6978,3},{7292,6957,3},{7288,6955,3},{7288,6960,3},{7290,7030,3},{7288,7075,3}, {7290,7098,3},{7290,7123,3},{7292,7153,3},{7287,7177,3},{7283,7200,3},{7282,7195,3}, {7282,7183,3},{7280,7188,3},{7283,7210,3},{7270,7283,3},{7270,7272,3},{7267,7273,3}, {7265,7282,3},{7260,7272,3},{7255,7277,3},{7252,7285,3},{7248,7280,3},{7240,7280,3}, {7228,7288,3},{7220,7273,3},{7212,7272,3},{7203,7257,3},{7192,7252,3},{7185,7233,3}, {7182,7232,3},{7172,7237,3},{7168,7223,3},{7160,7220,3},{7157,7207,3},{7157,7202,3}, {7158,7195,3},{7152,7182,3},{7147,7180,3},{7130,7205,3},{7120,7235,3},{7115,7258,3}, {7113,7263,3},{7108,7268,3},{7102,7262,3},{7087,7283,3},{7070,7277,3},{7062,7268,3}, {7053,7277,3},{7042,7278,3},{7040,7268,3},{7035,7253,3},{7027,7242,3},{7018,7262,3}, {7008,7257,3},{7005,7248,3},{6998,7253,3},{6990,7265,3},{6985,7268,3},{6975,7265,3}, {6968,7255,3},{6967,7257,3},{6965,7250,3},{6952,7262,3},{6943,7263,3},{6942,7258,3}, {6942,7248,3},{6938,7257,3},{6928,7265,3},{6922,7252,3},{6918,7248,3},{6898,7255,3}, {6888,7263,3},{6885,7272,3},{6858,7352,3},{6848,7365,3},{6845,7365,3},{6843,7360,3}, {6848,7360,3},{6845,7347,3},{6837,7342,3},{6822,7310,3},{6817,7313,3},{6808,7307,3}, {6795,7320,3},{6785,7320,3},{6782,7307,3},{6772,7315,3},{6768,7312,3},{6772,7305,3}, {6768,7295,3},{6768,7288,3},{6765,7288,3},{6763,7285,3},{6762,7262,3},{6760,7255,3}, {6752,7255,3},{6747,7240,3},{6740,7245,3},{6732,7240,3},{6730,7227,3},{6733,7218,3}, {6730,7213,3},{6730,7203,3},{6727,7203,3},{6723,7220,3},{6717,7223,3},{6715,7217,3}, {6720,7212,3},{6715,7213,3},{6713,7192,3},{6712,7202,3},{6708,7198,3},{6707,7202,3}, {6703,7193,3},{6698,7187,3},{6697,7180,3},{6692,7175,3},{6692,7172,3},{6695,7163,3}, {6693,7158,3},{6692,7153,3},{6695,7143,3},{6697,7137,3},{6695,7132,3},{6693,7133,3}, {6692,7145,3},{6690,7138,3},{6687,7152,3},{6683,7148,3},{6678,7155,3},{6677,7152,3}, {6672,7160,3},{6665,7157,3},{6663,7137,3},{6668,7137,3},{6665,7133,3},{6663,7127,3}, {6665,7117,3},{6662,7123,3},{6663,7107,3},{6660,7105,3},{6658,7112,3},{6657,7103,3}, {6658,7095,3},{6655,7098,3},{6653,7098,3},{6650,7072,3},{6658,7033,3},{6662,7028,3}, {6665,7032,3},{6665,7040,3},{6668,7047,3},{6668,7060,3},{6672,7063,3},{6672,7068,3}, {6673,7073,3},{6675,7073,3},{6675,7057,3},{6673,7053,3},{6673,7062,3},{6672,7047,3}, {6670,7055,3},{6668,7032,3},{6672,7015,3},{6673,7018,3},{6675,7008,3},{6680,6998,3}, {6685,6995,3},{6687,6990,3},{6685,6988,3},{6683,6990,3},{6682,6978,3},{6682,6970,3}, {6683,6958,3},{6682,6957,3},{6680,6963,3},{6678,6960,3},{6683,6940,3},{6682,6932,3}, {6683,6917,3},{6680,6897,3},{6678,6900,3},{6678,6908,3},{6677,6912,3},{6660,6912,3}, {6650,6938,3},{6647,6975,3},{6642,6990,3},{6633,7038,3},{6637,7088,3},{6637,7132,3}, {6632,7168,3},{6630,7175,3},{6623,7182,3},{6623,7185,3},{6625,7193,3},{6622,7200,3}, {6623,7203,3},{6623,7207,3},{6628,7223,3},{6630,7235,3},{6638,7240,3},{6647,7237,3}, {6650,7242,3},{6652,7238,3},{6650,7228,3},{6655,7245,3},{6660,7247,3},{6665,7295,3}, {6673,7300,3},{6675,7310,3},{6678,7320,3},{6683,7352,3},{6693,7363,3},{6698,7385,3}, {6705,7387,3},{6707,7392,3},{6712,7390,3},{6722,7395,3},{6730,7392,3},{6742,7408,3}, {6768,7473,3},{6793,7482,3},{6815,7473,3},{6823,7462,3},{6837,7433,3},{6850,7447,3}, {6862,7442,3},{6872,7448,3},{6878,7467,3},{6890,7547,3},{6890,7562,3},{6893,7583,3}, {6897,7612,3},{6898,7633,3},{6898,7655,3},{6897,7660,3},{6887,7670,3},{6880,7662,3}, {6877,7663,3},{6865,7702,3},{6857,7710,3},{6858,7715,3},{6860,7710,3},{6860,7717,3}, {6852,7732,3},{6845,7725,3},{6838,7730,3},{6830,7717,3},{6827,7718,3},{6823,7737,3}, {6815,7730,3},{6810,7722,3},{6805,7725,3},{6798,7718,3},{6790,7730,3},{6783,7723,3}, {6782,7717,3},{6785,7715,3},{6783,7708,3},{6778,7710,3},{6762,7767,3},{6757,7768,3}, {6755,7768,3},{6757,7785,3},{6755,7790,3},{6757,7795,3},{6755,7798,3},{6753,7805,3}, {6758,7825,3},{6755,7833,3},{6755,7848,3},{6758,7858,3},{6758,7867,3},{6758,7872,3}, {6757,7887,3},{6755,7895,3},{6757,7905,3},{6760,7897,3},{6762,7883,3},{6763,7880,3}, {6765,7887,3},{6765,7878,3},{6765,7872,3},{6762,7867,3},{6760,7858,3},{6762,7850,3}, {6763,7847,3},{6763,7858,3},{6767,7862,3},{6767,7853,3},{6765,7850,3},{6770,7843,3}, {6763,7840,3},{6767,7832,3},{6765,7823,3},{6767,7818,3},{6765,7813,3},{6768,7805,3}, {6770,7798,3},{6768,7787,3},{6770,7787,3},{6772,7795,3},{6773,7783,3},{6777,7780,3}, {6778,7777,3},{6773,7775,3},{6772,7765,3},{6773,7753,3},{6777,7747,3},{6790,7747,3}, {6792,7748,3},{6793,7758,3},{6793,7752,3},{6798,7747,3},{6803,7752,3},{6808,7750,3}, {6815,7757,3},{6822,7773,3},{6825,7815,3},{6827,7817,3},{6832,7808,3},{6835,7808,3}, {6838,7797,3},{6845,7790,3},{6848,7795,3},{6852,7793,3},{6853,7788,3},{6852,7780,3}, {6852,7777,3},{6857,7777,3},{6862,7772,3},{6868,7775,3},{6887,7770,3},{6890,7763,3}, {6893,7740,3},{6898,7722,3},{6902,7692,3},{6910,7678,3},{6915,7663,3},{6913,7653,3}, {6915,7637,3},{6923,7603,3},{6923,7577,3},{6927,7557,3},{6925,7548,3},{6918,7522,3}, {6913,7510,3},{6910,7515,3},{6908,7475,3},{6913,7450,3},{6913,7418,3},{6907,7395,3}, {6913,7380,3},{6917,7375,3},{6920,7375,3},{6935,7388,3},{6943,7390,3},{6955,7377,3}, {6970,7355,3},{6975,7352,3},{6982,7363,3},{6995,7370,3},{7002,7370,3},{7008,7377,3}, {7015,7368,3},{7030,7400,3},{7037,7407,3},{7042,7417,3},{7053,7433,3},{7068,7430,3}, {7085,7393,3},{7097,7390,3},{7105,7373,3},{7127,7353,3},{7133,7333,3},{7142,7302,3}, {7167,7350,3},{7172,7353,3},{7177,7347,3},{7182,7353,3},{7190,7387,3},{7193,7412,3}, {7195,7425,3},{7197,7432,3},{7195,7435,3},{7212,7495,3},{7225,7510,3},{7238,7512,3}, {7258,7507,3},{7270,7495,3},{7282,7473,3},{7288,7500,3},{7287,7508,3},{7283,7520,3}, {7282,7533,3},{7275,7552,3},{7273,7553,3},{7270,7545,3},{7272,7540,3},{7268,7533,3}, {7268,7542,3},{7263,7550,3},{7255,7572,3},{7253,7568,3},{7253,7557,3},{7248,7555,3}, {7233,7568,3},{7232,7567,3},{7230,7577,3},{7227,7575,3},{7222,7560,3},{7215,7552,3}, {7208,7553,3},{7203,7542,3},{7198,7543,3},{7195,7527,3},{7190,7528,3},{7183,7522,3}, {7178,7522,3},{7173,7527,3},{7167,7550,3},{7163,7550,3},{7162,7538,3},{7157,7550,3}, {7153,7553,3},{7150,7542,3},{7145,7543,3},{7147,7528,3},{7145,7523,3},{7137,7527,3}, {7130,7545,3},{7123,7603,3},{7118,7612,3},{7123,7615,3},{7120,7638,3},{7122,7663,3}, {7118,7690,3},{7115,7688,3},{7107,7692,3},{7112,7697,3},{7115,7693,3},{7118,7703,3}, {7115,7768,3},{7110,7787,3},{7102,7788,3},{7097,7795,3},{7095,7805,3},{7093,7827,3}, {7088,7840,3},{7088,7845,3},{7092,7855,3},{7092,7887,3},{7093,7890,3},{7093,7895,3}, {7092,7895,3},{7093,7903,3},{7095,7907,3},{7097,7902,3},{7098,7908,3},{7102,7910,3}, {7102,7903,3},{7098,7897,3},{7100,7883,3},{7098,7878,3},{7098,7890,3},{7093,7880,3}, {7093,7872,3},{7097,7858,3},{7092,7843,3},{7100,7848,3},{7102,7847,3},{7105,7855,3}, {7107,7850,3},{7110,7852,3},{7112,7845,3},{7110,7835,3},{7105,7850,3},{7103,7845,3}, {7110,7825,3},{7112,7823,3},{7122,7832,3},{7125,7828,3},{7128,7803,3},{7125,7793,3}, {7132,7790,3},{7135,7800,3},{7137,7800,3},{7135,7787,3},{7133,7787,3},{7132,7773,3}, {7128,7775,3},{7128,7772,3},{7133,7745,3},{7130,7752,3},{7137,7720,3},{7142,7712,3}, {7142,7700,3},{7147,7673,3},{7153,7655,3},{7157,7632,3},{7158,7625,3},{7163,7627,3}, {7192,7600,3},{7200,7638,3},{7205,7690,3},{7192,7737,3},{7187,7743,3},{7183,7752,3}, {7182,7770,3},{7188,7810,3},{7190,7817,3},{7197,7823,3},{7210,7802,3},{7212,7795,3}, {7212,7780,3},{7207,7748,3},{7208,7738,3},{7212,7738,3},{7217,7748,3},{7222,7747,3}, {7222,7752,3},{7218,7767,3},{7222,7775,3},{7232,7790,3},{7233,7807,3},{7238,7813,3}, {7237,7827,3},{7238,7832,3},{7240,7843,3},{7238,7850,3},{7240,7852,3},{7237,7885,3}, {7238,7930,3},{7237,7948,3},{7225,7980,3},{7218,8012,3},{7208,8083,3},{7203,8085,3}, {7202,8082,3},{7203,8073,3},{7208,8078,3},{7207,8067,3},{7203,8063,3},{7185,8125,3}, {7177,8130,3},{7172,8163,3},{7170,8167,3},{7170,8213,3},{7178,8282,3},{7177,8292,3}, {7173,8298,3},{7173,8320,3},{7172,8327,3},{7168,8332,3},{7165,8330,3},{7157,8317,3}, {7155,8302,3},{7145,8298,3},{7140,8303,3},{7137,8270,3},{7130,8237,3},{7127,8225,3}, {7108,8235,3},{7100,8220,3},{7092,8230,3},{7083,8232,3},{7077,8242,3},{7068,8222,3}, {7062,8220,3},{7057,8208,3},{7050,8215,3},{7028,8223,3},{7020,8235,3},{7040,8225,3}, {7050,8223,3},{7058,8217,3},{7060,8247,3},{7068,8243,3},{7070,8248,3},{7075,8250,3}, {7077,8257,3},{7080,8248,3},{7085,8258,3},{7090,8258,3},{7095,8268,3},{7097,8275,3}, {7095,8277,3},{7095,8285,3},{7092,8287,3},{7100,8288,3},{7100,8290,3},{7092,8300,3}, {7090,8310,3},{7087,8315,3},{7077,8313,3},{7067,8305,3},{7060,8307,3},{7057,8300,3}, {7050,8305,3},{7042,8300,3},{7038,8290,3},{7025,8265,3},{7020,8267,3},{7017,8263,3}, {7013,8282,3},{7008,8288,3},{7007,8307,3},{7008,8317,3},{7012,8320,3},{7020,8313,3}, {7023,8305,3},{7032,8295,3},{7033,8302,3},{7032,8318,3},{7032,8333,3},{7033,8352,3}, {7047,8377,3},{7050,8373,3},{7055,8377,3},{7070,8360,3},{7077,8360,3},{7080,8353,3}, {7092,8348,3},{7097,8338,3},{7102,8340,3},{7105,8333,3},{7107,8317,3},{7112,8312,3}, {7110,8323,3},{7112,8327,3},{7125,8315,3},{7128,8328,3},{7135,8337,3},{7147,8338,3}, {7148,8352,3},{7152,8358,3},{7157,8363,3},{7162,8363,3},{7175,8342,3},{7180,8342,3}, {7183,8338,3},{7187,8318,3},{7190,8280,3},{7187,8267,3},{7195,8262,3},{7200,8250,3}, {7208,8218,3},{7213,8230,3},{7223,8228,3},{7228,8220,3},{7227,8212,3},{7233,8172,3}, {7235,8117,3},{7247,8085,3},{7253,8072,3},{7255,8072,3},{7257,8078,3},{7262,8083,3}, {7265,8068,3},{7273,8063,3},{7278,8075,3},{7285,8080,3},{7297,8082,3},{7307,8068,3}, {7310,8043,3},{7312,8058,3},{7313,8057,3},{7317,8033,3},{7317,8023,3},{7320,8032,3}, {7320,8048,3},{7322,8057,3},{7327,8055,3},{7328,8045,3},{7328,8033,3},{7332,8025,3}, {7338,8035,3},{7338,8038,3},{7337,8042,3},{7342,8048,3},{7343,8058,3},{7350,8068,3}, {7352,8063,3},{7348,8052,3},{7357,8052,3},{7358,8072,3},{7357,8085,3},{7358,8092,3}, {7360,8125,3},{7362,8132,3},{7365,8152,3},{7365,8217,3},{7367,8248,3},{7365,8340,3}, {7370,8375,3},{7370,8435,3},{7375,8458,3},{7377,8478,3},{7373,8490,3},{7372,8502,3}, {7370,8500,3},{7372,8510,3},{7370,8522,3},{7372,8548,3},{7377,8547,3},{7382,8558,3}, {7382,8587,3},{7387,8602,3},{7385,8625,3},{7388,8640,3},{7388,8667,3},{7390,8678,3}, {7385,8710,3},{7378,8703,3},{7375,8685,3},{7372,8675,3},{7367,8662,3},{7367,8652,3}, {7362,8635,3},{7358,8612,3},{7353,8598,3},{7350,8583,3},{7347,8578,3},{7333,8583,3}, {7327,8622,3},{7318,8632,3},{7315,8652,3},{7312,8667,3},{7298,8678,3},{7307,8677,3}, {7317,8663,3},{7318,8645,3},{7325,8633,3},{7332,8597,3},{7333,8588,3},{7347,8585,3}, {7357,8622,3},{7357,8665,3},{7360,8687,3},{7360,8710,3},{7362,8718,3},{7370,8735,3}, {7368,8725,3},{7373,8730,3},{7383,8763,3},{7390,8767,3},{7392,8753,3},{7383,8750,3}, {7382,8743,3},{7383,8732,3},{7387,8720,3},{7393,8713,3},{7403,8693,3},{7405,8697,3}, {7405,8720,3},{7400,8740,3},{7402,8742,3},{7405,8737,3},{7407,8685,3},{7410,8687,3}, {7413,8672,3},{7418,8680,3},{7420,8677,3},{7425,8657,3},{7427,8607,3},{7428,8595,3}, {7432,8597,3},{7435,8590,3},{7437,8597,3},{7437,8612,3},{7432,8625,3},{7432,8630,3}, {7438,8627,3},{7440,8607,3},{7442,8607,3},{7442,8622,3},{7442,8625,3},{7445,8632,3}, {7443,8638,3},{7445,8648,3},{7443,8658,3},{7440,8663,3},{7438,8660,3},{7438,8673,3}, {7437,8680,3},{7438,8682,3},{7438,8695,3},{7435,8690,3},{7432,8670,3},{7430,8685,3}, {7433,8690,3},{7433,8697,3},{7428,8697,3},{7427,8700,3},{7430,8705,3},{7435,8700,3}, {7437,8702,3},{7435,8727,3},{7440,8707,3},{7443,8708,3},{7442,8678,3},{7447,8668,3}, {7450,8655,3},{7453,8660,3},{7455,8678,3},{7457,8650,3},{7460,8632,3},{7462,8612,3}, {7460,8595,3},{7463,8585,3},{7463,8575,3},{7467,8587,3},{7470,8583,3},{7472,8587,3}, {7472,8607,3},{7477,8612,3},{7482,8603,3},{7482,8610,3},{7480,8615,3},{7482,8620,3}, {7477,8638,3},{7475,8633,3},{7477,8622,3},{7470,8633,3},{7472,8652,3},{7470,8655,3}, {7470,8663,3},{7467,8660,3},{7465,8668,3},{7462,8670,3},{7462,8685,3},{7460,8697,3}, {7465,8690,3},{7468,8695,3},{7468,8677,3},{7470,8677,3},{7475,8687,3},{7475,8698,3}, {7472,8702,3},{7472,8707,3},{7485,8707,3},{7493,8738,3},{7495,8737,3},{7495,8725,3}, {7498,8718,3},{7500,8743,3},{7497,8748,3},{7495,8743,3},{7493,8755,3},{7493,8760,3}, {7497,8757,3},{7498,8768,3},{7500,8768,3},{7502,8778,3},{7503,8777,3},{7503,8738,3}, {7507,8725,3},{7508,8707,3},{7507,8692,3},{7512,8692,3},{7515,8700,3},{7517,8728,3}, {7510,8798,3},{7513,8807,3},{7513,8813,3},{7517,8830,3},{7523,8832,3},{7525,8840,3}, {7528,8852,3},{7527,8863,3},{7532,8855,3},{7533,8860,3},{7535,8878,3},{7537,8882,3}, {7537,8877,3},{7540,8887,3},{7540,8908,3},{7543,8898,3},{7540,8873,3},{7545,8913,3}, {7550,8925,3},{7547,8932,3},{7547,8940,3},{7543,8938,3},{7543,8972,3},{7547,8962,3}, {7548,8962,3},{7552,8988,3},{7552,9005,3},{7553,9003,3},{7555,8992,3},{7558,9005,3}, {7562,9063,3},{7563,9068,3},{7567,9090,3},{7563,9092,3},{7562,9098,3},{7567,9117,3}, {7563,9118,3},{7563,9123,3},{7563,9162,3},{7570,9163,3},{7573,9172,3},{7572,9178,3}, {7572,9205,3},{7575,9218,3},{7575,9240,3},{7577,9250,3},{7583,9335,3},{7592,9407,3}, {7595,9417,3},{7595,9413,3},{7593,9407,3},{7590,9367,3},{7595,9355,3},{7592,9343,3}, {7588,9348,3},{7587,9342,3},{7595,9327,3},{7597,9332,3},{7598,9328,3},{7593,9297,3}, {7590,9310,3},{7590,9308,3},{7590,9288,3},{7592,9290,3},{7597,9283,3},{7598,9292,3}, {7605,9292,3},{7607,9302,3},{7603,9310,3},{7602,9312,3},{7603,9320,3},{7607,9322,3}, {7608,9312,3},{7610,9315,3},{7608,9325,3},{7610,9343,3},{7607,9333,3},{7603,9342,3}, {7602,9342,3},{7605,9355,3},{7603,9363,3},{7605,9370,3},{7603,9375,3},{7605,9400,3}, {7607,9395,3},{7610,9367,3},{7612,9367,3},{7612,9397,3},{7612,9410,3},{7610,9420,3}, {7612,9438,3},{7605,9447,3},{7607,9460,3},{7610,9460,3},{7612,9473,3},{7615,9467,3}, {7615,9457,3},{7615,9455,3},{7615,9477,3},{7612,9490,3},{7610,9505,3},{7612,9508,3}, {7612,9527,3},{7613,9532,3},{7615,9542,3},{7613,9582,3},{7610,9615,3},{7608,9620,3}, {7607,9600,3},{7605,9608,3},{7603,9598,3},{7598,9600,3},{7598,9588,3},{7590,9572,3}, {7588,9557,3},{7585,9575,3},{7592,9582,3},{7595,9593,3},{7595,9630,3},{7597,9633,3}, {7598,9627,3},{7602,9652,3},{7600,9655,3},{7598,9650,3},{7598,9662,3},{7597,9667,3}, {7587,9645,3},{7588,9660,3},{7590,9667,3},{7588,9683,3},{7592,9683,3},{7593,9693,3}, {7598,9705,3},{7603,9722,3},{7605,9737,3},{7598,9718,3},{7595,9725,3},{7593,9718,3}, {7593,9733,3},{7597,9730,3},{7598,9735,3},{7600,9755,3},{7598,9782,3},{7600,9783,3}, {7605,9772,3},{7605,9755,3},{7608,9767,3},{7610,9777,3},{7605,9790,3},{7608,9815,3}, {7610,9822,3},{7610,9802,3},{7612,9793,3},{7615,9802,3},{7615,9807,3},{7613,9810,3}, {7617,9815,3},{7617,9837,3},{7627,9880,3},{7620,9872,3},{7620,9885,3},{7622,9892,3}, {7622,9903,3},{7620,9915,3},{7622,9928,3},{7620,9930,3},{7617,9920,3},{7617,9923,3}, {7617,9908,3},{7613,9915,3},{7613,9923,3},{7615,9957,3},{7612,9960,3},{7610,9947,3}, {7608,9958,3},{7607,9957,3},{7608,9963,3},{7605,9977,3},{7597,9968,3},{7585,9967,3}, {7582,9953,3},{7577,9923,3},{7572,9927,3},{7567,9915,3},{7555,9910,3},{7547,9958,3}, {7547,9975,3},{7542,9970,3},{7537,9977,3},{7530,10002,3},{7523,10003,3}, {7518,10017,3},{7517,10018,3},{7520,10020,3},{7523,10008,3},{7528,10008,3}, {7537,9980,3},{7547,9982,3},{7548,9960,3},{7553,9938,3},{7555,9923,3},{7557,9918,3}, {7568,9925,3},{7570,9935,3},{7575,9928,3},{7577,9935,3},{7577,9958,3},{7585,9970,3}, {7590,9988,3},{7595,9992,3},{7602,9982,3},{7608,9988,3},{7615,9980,3},{7620,9963,3}, {7627,9960,3},{7628,9940,3},{7635,9927,3},{7635,9903,3},{7640,9902,3},{7647,9883,3}, {7650,9882,3},{7652,9892,3},{7647,9943,3},{7648,10023,3},{7647,10030,3}, {7650,10065,3},{7653,10085,3},{7648,10105,3},{7645,10102,3},{7647,10125,3}, {7648,10132,3},{7645,10148,3},{7645,10170,3},{7640,10188,3},{7638,10225,3}, {7640,10218,3},{7642,10198,3},{7647,10178,3},{7647,10157,3},{7650,10142,3}, {7652,10103,3},{7655,10088,3},{7658,10107,3},{7673,10113,3},{7675,10123,3}, {7677,10118,3},{7678,10100,3},{7683,10087,3},{7697,10092,3},{7698,10095,3}, {7698,10122,3},{7705,10123,3},{7707,10117,3},{7710,10120,3},{7717,10145,3}, {7723,10162,3},{7728,10185,3},{7738,10207,3},{7740,10215,3},{7738,10222,3}, {7738,10228,3},{7750,10255,3},{7755,10292,3},{7758,10290,3},{7763,10305,3}, {7765,10327,3},{7762,10335,3},{7763,10365,3},{7773,10407,3},{7773,10430,3}, {7772,10433,3},{7770,10427,3},{7768,10427,3},{7767,10437,3},{7770,10462,3}, {7770,10475,3},{7763,10480,3},{7758,10492,3},{7757,10523,3},{7753,10538,3}, {7757,10565,3},{7757,10587,3},{7753,10583,3},{7752,10590,3},{7747,10592,3}, {7742,10600,3},{7740,10612,3},{7737,10630,3},{7735,10618,3},{7737,10605,3}, {7737,10573,3},{7733,10573,3},{7730,10562,3},{7728,10545,3},{7725,10552,3}, {7723,10530,3},{7720,10527,3},{7717,10495,3},{7717,10487,3},{7717,10472,3}, {7713,10452,3},{7713,10437,3},{7708,10412,3},{7708,10437,3},{7710,10470,3}, {7712,10477,3},{7708,10492,3},{7708,10507,3},{7710,10515,3},{7708,10535,3}, {7712,10560,3},{7712,10585,3},{7713,10592,3},{7708,10588,3},{7705,10573,3}, {7703,10578,3},{7702,10545,3},{7697,10545,3},{7698,10553,3},{7697,10567,3}, {7698,10577,3},{7698,10592,3},{7707,10620,3},{7703,10648,3},{7702,10650,3}, {7702,10657,3},{7700,10665,3},{7700,10673,3},{7700,10677,3},{7703,10665,3}, {7703,10677,3},{7705,10682,3},{7703,10702,3},{7702,10698,3},{7700,10700,3}, {7702,10727,3},{7700,10723,3},{7695,10733,3},{7693,10750,3},{7690,10748,3}, {7688,10727,3},{7687,10735,3},{7685,10720,3},{7683,10728,3},{7680,10722,3}, {7680,10707,3},{7675,10705,3},{7673,10697,3},{7672,10697,3},{7670,10690,3}, {7672,10675,3},{7672,10672,3},{7667,10680,3},{7658,10668,3},{7655,10658,3}, {7660,10653,3},{7660,10645,3},{7660,10638,3},{7652,10640,3},{7650,10670,3}, {7647,10682,3},{7650,10688,3},{7650,10702,3},{7653,10735,3},{7650,10763,3}, {7653,10788,3},{7663,10800,3},{7667,10790,3},{7673,10795,3},{7673,10828,3}, {7670,10830,3},{7672,10845,3},{7672,10880,3},{7673,10907,3},{7672,10915,3}, {7675,10937,3},{7673,10942,3},{7673,10960,3},{7672,10968,3},{7672,10985,3}, {7670,10988,3},{7670,10997,3},{7668,11003,3},{7673,11030,3},{7675,11045,3}, {7677,11060,3},{7673,11063,3},{7672,11073,3},{7673,11092,3},{7675,11090,3}, {7675,11110,3},{7675,11113,3},{7672,11107,3},{7668,11110,3},{7670,11123,3}, {7668,11155,3},{7667,11148,3},{7665,11155,3},{7662,11145,3},{7662,11147,3}, {7662,11165,3},{7660,11177,3},{7648,11220,3},{7633,11183,3},{7638,11202,3}, {7645,11223,3},{7637,11265,3},{7633,11275,3},{7632,11265,3},{7627,11273,3}, {7623,11268,3},{7622,11265,3},{7623,11250,3},{7620,11260,3},{7620,11278,3}, {7613,11285,3},{7608,11280,3},{7605,11257,3},{7605,11293,3},{7607,11302,3}, {7612,11303,3},{7613,11298,3},{7615,11310,3},{7615,11322,3},{7612,11330,3}, {7613,11325,3},{7617,11328,3},{7622,11300,3},{7625,11293,3},{7625,11327,3}, {7623,11330,3},{7622,11323,3},{7620,11323,3},{7620,11335,3},{7618,11340,3}, {7613,11347,3},{7603,11345,3},{7602,11355,3},{7598,11350,3},{7595,11355,3}, {7593,11343,3},{7593,11352,3},{7588,11357,3},{7587,11355,3},{7585,11348,3}, {7587,11363,3},{7592,11362,3},{7592,11372,3},{7592,11375,3},{7593,11378,3}, {7592,11385,3},{7588,11382,3},{7585,11390,3},{7572,11375,3},{7560,11372,3}, {7553,11352,3},{7553,11342,3},{7562,11358,3},{7565,11360,3},{7567,11343,3}, {7568,11330,3},{7567,11303,3},{7570,11313,3},{7573,11305,3},{7583,11260,3}, {7585,11233,3},{7583,11245,3},{7577,11252,3},{7577,11268,3},{7570,11287,3}, {7568,11282,3},{7570,11275,3},{7565,11288,3},{7558,11278,3},{7555,11283,3}, {7555,11302,3},{7562,11300,3},{7565,11328,3},{7555,11327,3},{7552,11338,3}, {7550,11355,3},{7552,11363,3},{7540,11372,3},{7540,11353,3},{7538,11355,3}, {7538,11363,3},{7537,11367,3},{7528,11360,3},{7508,11310,3},{7507,11302,3}, {7498,11288,3},{7492,11257,3},{7488,11213,3},{7485,11208,3},{7478,11205,3}, {7477,11195,3},{7473,11190,3},{7472,11195,3},{7467,11180,3},{7467,11173,3}, {7468,11160,3},{7468,11140,3},{7460,11112,3},{7460,11100,3},{7457,11105,3}, {7455,11095,3},{7453,11082,3},{7448,11060,3},{7447,11050,3},{7448,11035,3}, {7448,11028,3},{7443,11038,3},{7437,11020,3},{7437,11003,3},{7432,10990,3}, {7432,10980,3},{7432,10978,3},{7432,10963,3},{7430,10955,3},{7430,10962,3}, {7428,10972,3},{7430,10998,3},{7423,10995,3},{7418,10985,3},{7408,10950,3}, {7407,10923,3},{7403,10908,3},{7397,10892,3},{7393,10877,3},{7382,10857,3}, {7380,10850,3},{7382,10843,3},{7377,10848,3},{7363,10807,3},{7365,10810,3}, {7367,10803,3},{7367,10797,3},{7362,10778,3},{7360,10775,3},{7363,10767,3}, {7362,10743,3},{7363,10735,3},{7362,10732,3},{7362,10715,3},{7357,10710,3}, {7355,10717,3},{7353,10717,3},{7343,10688,3},{7333,10680,3},{7330,10665,3}, {7332,10655,3},{7332,10628,3},{7328,10607,3},{7315,10602,3},{7310,10585,3}, {7300,10583,3},{7295,10570,3},{7290,10567,3},{7283,10535,3},{7280,10530,3}, {7278,10507,3},{7277,10507,3},{7277,10545,3},{7282,10567,3},{7287,10577,3}, {7288,10595,3},{7295,10600,3},{7297,10628,3},{7298,10622,3},{7310,10617,3}, {7313,10620,3},{7315,10627,3},{7318,10635,3},{7313,10680,3},{7315,10692,3}, {7318,10703,3},{7317,10773,3},{7318,10783,3},{7322,10795,3},{7325,10810,3}, {7322,10822,3},{7322,10835,3},{7327,10838,3},{7327,10820,3},{7330,10823,3}, {7332,10858,3},{7333,10872,3},{7335,10893,3},{7338,10915,3},{7342,10927,3}, {7345,10920,3},{7347,10922,3},{7342,10942,3},{7345,10943,3},{7348,10932,3}, {7352,10918,3},{7355,10917,3},{7355,10922,3},{7345,10950,3},{7345,10960,3}, {7347,10982,3},{7350,11002,3},{7350,11010,3},{7355,11015,3},{7355,11008,3}, {7358,11012,3},{7360,11042,3},{7363,11040,3},{7365,11047,3},{7365,11062,3}, {7367,11067,3},{7368,11088,3},{7370,11092,3},{7373,11088,3},{7377,11092,3}, {7378,11065,3},{7375,11060,3},{7375,11048,3},{7370,11027,3},{7370,10980,3}, {7368,10975,3},{7367,10975,3},{7368,10965,3},{7375,10953,3},{7382,10952,3}, {7383,10957,3},{7388,10983,3},{7397,10988,3},{7402,11007,3},{7402,11020,3}, {7400,11057,3},{7395,11072,3},{7395,11078,3},{7392,11090,3},{7390,11100,3}, {7395,11110,3},{7398,11107,3},{7402,11110,3},{7403,11120,3},{7405,11145,3}, {7403,11157,3},{7400,11153,3},{7400,11145,3},{7398,11138,3},{7400,11127,3}, {7398,11120,3},{7387,11130,3},{7377,11165,3},{7372,11202,3},{7370,11225,3}, {7372,11248,3},{7373,11278,3},{7380,11295,3},{7388,11293,3},{7395,11282,3}, {7400,11282,3},{7392,11298,3},{7388,11313,3},{7368,11340,3},{7360,11343,3}, {7358,11340,3},{7357,11328,3},{7345,11313,3},{7342,11322,3},{7337,11327,3}, {7333,11350,3},{7317,11348,3},{7310,11352,3},{7300,11345,3},{7295,11348,3}, {7288,11330,3},{7287,11313,3},{7283,11308,3},{7272,11320,3},{7268,11330,3}, {7262,11362,3},{7260,11408,3},{7262,11397,3},{7263,11372,3},{7268,11335,3}, {7273,11322,3},{7285,11315,3},{7288,11337,3},{7297,11353,3},{7302,11352,3}, {7310,11360,3},{7317,11353,3},{7325,11357,3},{7328,11365,3},{7332,11370,3}, {7332,11385,3},{7333,11403,3},{7335,11397,3},{7335,11385,3},{7335,11377,3}, {7343,11353,3},{7350,11348,3},{7353,11385,3},{7358,11410,3},{7358,11453,3}, {7360,11487,3},{7368,11517,3},{7370,11543,3},{7370,11582,3},{7367,11613,3}, {7367,11658,3},{7358,11725,3},{7358,11772,3},{7358,11795,3},{7357,11863,3}, {7355,11883,3},{7348,11900,3},{7345,11892,3},{7347,11873,3},{7345,11868,3}, {7348,11858,3},{7348,11848,3},{7342,11835,3},{7338,11837,3},{7337,11843,3}, {7333,11837,3},{7328,11835,3},{7323,11840,3},{7320,11848,3},{7310,11898,3}, {7307,11925,3},{7307,11953,3},{7300,11958,3},{7300,11967,3},{7293,11982,3}, {7290,12027,3},{7287,12055,3},{7288,12057,3},{7290,12043,3},{7293,12017,3}, {7295,11990,3},{7297,11982,3},{7300,11975,3},{7302,11982,3},{7298,12058,3}, {7297,12070,3},{7293,12103,3},{7297,12138,3},{7297,12168,3},{7295,12175,3}, {7297,12178,3},{7297,12187,3},{7295,12197,3},{7292,12192,3},{7288,12205,3}, {7287,12242,3},{7282,12265,3},{7278,12305,3},{7273,12335,3},{7272,12347,3}, {7275,12367,3},{7275,12378,3},{7272,12412,3},{7263,12435,3},{7263,12473,3}, {7258,12480,3},{7253,12513,3},{7245,12525,3},{7242,12545,3},{7235,12562,3}, {7233,12570,3},{7233,12588,3},{7227,12612,3},{7228,12625,3},{7235,12637,3}, {7223,12658,3},{7218,12658,3},{7213,12675,3},{7202,12680,3},{7185,12713,3}, {7177,12708,3},{7158,12720,3},{7140,12722,3},{7138,12728,3},{7148,12732,3}, {7175,12718,3},{7183,12723,3},{7190,12733,3},{7197,12722,3},{7200,12705,3}, {7207,12697,3},{7228,12690,3},{7238,12672,3},{7240,12672,3},{7240,12695,3}, {7240,12718,3},{7235,12745,3},{7235,12767,3},{7225,12785,3},{7225,12775,3}, {7223,12775,3},{7223,12787,3},{7218,12807,3},{7202,12843,3},{7197,12843,3}, {7190,12853,3},{7188,12862,3},{7178,12865,3},{7173,12895,3},{7180,12918,3}, {7200,12902,3},{7202,12907,3},{7187,12930,3},{7180,12930,3},{7172,12953,3}, {7172,12952,3},{7173,12943,3},{7177,12930,3},{7172,12912,3},{7170,12890,3}, {7165,12882,3},{7160,12885,3},{7160,12890,3},{7160,12910,3},{7158,12918,3}, {7153,12925,3},{7150,12923,3},{7147,12932,3},{7133,12938,3},{7128,12952,3}, {7127,12965,3},{7122,12970,3},{7113,12975,3},{7112,12973,3},{7108,12963,3}, {7110,12988,3},{7108,12993,3},{7105,12993,3},{7108,13007,3},{7098,13022,3}, {7097,13017,3},{7093,13032,3},{7093,13047,3},{7088,13050,3},{7087,13063,3}, {7088,13070,3},{7095,13072,3},{7097,13080,3},{7083,13090,3},{7077,13088,3}, {7075,13092,3},{7073,13102,3},{7075,13122,3},{7088,13153,3},{7110,13177,3}, {7113,13175,3},{7115,13187,3},{7117,13187,3},{7118,13182,3},{7120,13185,3}, {7123,13200,3},{7122,13218,3},{7123,13212,3},{7125,13195,3},{7130,13195,3}, {7168,13227,3},{7188,13253,3},{7195,13273,3},{7183,13277,3},{7177,13272,3}, {7173,13292,3},{7157,13317,3},{7147,13353,3},{7138,13407,3},{7137,13445,3}, {7140,13462,3},{7137,13475,3},{7130,13465,3},{7127,13467,3},{7135,13477,3}, {7142,13470,3},{7142,13477,3},{7148,13482,3},{7153,13502,3},{7153,13507,3}, {7150,13512,3},{7153,13517,3},{7155,13523,3},{7153,13532,3},{7153,13542,3}, {7157,13533,3},{7157,13537,3},{7162,13558,3},{7163,13587,3},{7162,13613,3}, {7158,13625,3},{7157,13648,3},{7152,13652,3},{7150,13657,3},{7147,13655,3}, {7152,13662,3},{7153,13672,3},{7150,13682,3},{7147,13688,3},{7145,13697,3}, {7142,13707,3},{7140,13723,3},{7137,13727,3},{7137,13723,3},{7135,13728,3}, {7137,13740,3},{7137,13735,3},{7135,13738,3},{7135,13748,3},{7132,13745,3}, {7128,13748,3},{7128,13742,3},{7127,13750,3},{7123,13755,3},{7128,13770,3}, {7125,13767,3},{7125,13773,3},{7122,13767,3},{7122,13757,3},{7120,13753,3}, {7118,13772,3},{7112,13780,3},{7112,13785,3},{7115,13792,3},{7113,13797,3}, {7112,13795,3},{7110,13798,3},{7113,13807,3},{7118,13802,3},{7120,13790,3}, {7118,13785,3},{7120,13785,3},{7122,13775,3},{7123,13775,3},{7125,13783,3}, {7122,13793,3},{7122,13805,3},{7123,13808,3},{7123,13817,3},{7127,13823,3}, {7130,13800,3},{7132,13808,3},{7132,13837,3},{7133,13832,3},{7135,13805,3}, {7133,13800,3},{7137,13793,3},{7138,13795,3},{7137,13788,3},{7138,13783,3}, {7140,13788,3},{7145,13798,3},{7157,13807,3},{7162,13848,3},{7158,13840,3}, {7157,13840,3},{7155,13843,3},{7153,13847,3},{7155,13858,3},{7158,13860,3}, {7160,13855,3},{7165,13872,3},{7158,13892,3},{7157,13905,3},{7147,13912,3}, {7145,13915,3},{7143,13912,3},{7142,13922,3},{7142,13935,3},{7147,13938,3}, {7150,13945,3},{7148,13963,3},{7147,13968,3},{7145,13972,3},{7148,13985,3}, {7147,14003,3},{7150,13998,3},{7153,14000,3},{7158,13983,3},{7167,13973,3}, {7178,13968,3},{7185,13975,3},{7185,13980,3},{7187,13970,3},{7192,13962,3}, {7195,13933,3},{7195,13963,3},{7200,13972,3},{7207,13972,3},{7217,13987,3}, {7217,13995,3},{7213,14007,3},{7217,14020,3},{7220,14020,3},{7223,14003,3}, {7223,13957,3},{7218,13943,3},{7217,13955,3},{7217,13937,3},{7218,13925,3}, {7215,13927,3},{7213,13935,3},{7213,13933,3},{7217,13918,3},{7223,13908,3}, {7233,13917,3},{7242,13933,3},{7242,13938,3},{7250,13953,3},{7250,13978,3}, {7248,13998,3},{7247,14010,3},{7248,14040,3},{7250,14067,3},{7253,14077,3}, {7253,14087,3},{7257,14093,3},{7258,14110,3},{7258,14095,3},{7268,14102,3}, {7278,14075,3},{7280,14067,3},{7287,14058,3},{7290,14065,3},{7285,14135,3}, {7277,14157,3},{7273,14187,3},{7270,14242,3},{7270,14260,3},{7268,14305,3}, {7268,14355,3},{7265,14382,3},{7265,14413,3},{7263,14440,3},{7260,14467,3}, {7257,14537,3},{7250,14582,3},{7245,14620,3},{7240,14652,3},{7235,14685,3}, {7233,14675,3},{7235,14647,3},{7233,14632,3},{7235,14545,3},{7233,14535,3}, {7240,14525,3},{7242,14517,3},{7240,14508,3},{7243,14497,3},{7240,14477,3}, {7227,14458,3},{7222,14452,3},{7228,14440,3},{7230,14428,3},{7227,14423,3}, {7227,14420,3},{7227,14410,3},{7222,14418,3},{7217,14440,3},{7217,14453,3}, {7218,14463,3},{7223,14475,3},{7223,14490,3},{7227,14508,3},{7230,14605,3}, {7232,14693,3},{7225,14687,3},{7203,14643,3},{7187,14602,3},{7185,14595,3}, {7193,14600,3},{7203,14598,3},{7203,14610,3},{7213,14633,3},{7215,14623,3}, {7217,14625,3},{7217,14620,3},{7217,14607,3},{7212,14607,3},{7207,14598,3}, {7210,14593,3},{7215,14595,3},{7215,14585,3},{7218,14583,3},{7220,14590,3}, {7223,14577,3},{7225,14562,3},{7222,14568,3},{7222,14575,3},{7208,14562,3}, {7202,14568,3},{7203,14575,3},{7202,14580,3},{7193,14580,3},{7192,14575,3}, {7192,14558,3},{7187,14535,3},{7192,14520,3},{7193,14508,3},{7197,14498,3}, {7192,14497,3},{7188,14505,3},{7185,14522,3},{7183,14522,3},{7178,14507,3}, {7178,14488,3},{7173,14492,3},{7167,14488,3},{7170,14497,3},{7167,14502,3}, {7170,14508,3},{7168,14525,3},{7165,14532,3},{7173,14555,3},{7172,14575,3}, {7177,14593,3},{7178,14607,3},{7187,14625,3},{7190,14635,3},{7208,14663,3}, {7232,14713,3},{7233,14748,3},{7232,14827,3},{7230,14850,3},{7227,14872,3}, {7222,14918,3},{7217,14953,3},{7212,14972,3},{7195,15002,3},{7188,15007,3}, {7183,14998,3},{7182,14987,3},{7177,14972,3},{7177,14963,3},{7182,14957,3}, {7190,14937,3},{7188,14928,3},{7187,14932,3},{7185,14930,3},{7182,14920,3}, {7177,14915,3},{7177,14910,3},{7182,14883,3},{7177,14888,3},{7175,14903,3}, {7170,14898,3},{7170,14885,3},{7167,14882,3},{7167,14900,3},{7170,14910,3}, {7167,14943,3},{7165,14968,3},{7167,14997,3},{7158,15010,3},{7157,15000,3}, {7160,15002,3},{7160,14997,3},{7157,14993,3},{7153,14997,3},{7150,14988,3}, {7147,14987,3},{7150,15005,3},{7152,15027,3},{7150,15032,3},{7152,15043,3}, {7150,15047,3},{7152,15055,3},{7150,15065,3},{7145,15065,3},{7140,15055,3}, {7133,15052,3},{7132,15033,3},{7128,15030,3},{7127,15018,3},{7122,15002,3}, {7120,15002,3},{7122,15015,3},{7127,15028,3},{7127,15038,3},{7133,15057,3}, {7138,15063,3},{7138,15073,3},{7137,15067,3},{7127,15060,3},{7133,15078,3}, {7137,15087,3},{7140,15103,3},{7137,15117,3},{7135,15145,3},{7130,15163,3}, {7125,15173,3},{7118,15177,3},{7100,15213,3},{7098,15213,3},{7098,15207,3}, {7097,15192,3},{7098,15165,3},{7098,15167,3},{7093,15203,3},{7088,15222,3}, {7085,15253,3},{7078,15253,3},{7083,15258,3},{7083,15275,3},{7083,15308,3}, {7085,15312,3},{7085,15332,3},{7087,15333,3},{7088,15345,3},{7087,15347,3}, {7088,15362,3},{7085,15365,3},{7093,15417,3},{7097,15423,3},{7097,15442,3}, {7103,15500,3},{7105,15550,3},{7100,15550,3},{7097,15553,3},{7107,15560,3}, {7110,15593,3},{7108,15655,3},{7110,15682,3},{7105,15797,3},{7095,15858,3}, {7082,15925,3},{7067,15967,3},{7062,15978,3},{7042,16003,3},{7028,16010,3}, {7023,16008,3},{7020,16000,3},{7013,15995,3},{7012,15993,3},{7013,15968,3}, {7010,15983,3},{7010,15992,3},{7003,15985,3},{7000,15987,3},{6995,15975,3}, {6990,15968,3},{6983,15977,3},{6983,15973,3},{6980,15980,3},{6973,15973,3}, {6980,15987,3},{6970,16018,3},{6972,16013,3},{6973,16017,3},{6970,16030,3}, {6965,16032,3},{6968,16038,3},{6968,16057,3},{6965,16080,3},{6963,16087,3}, {6963,16092,3},{6958,16100,3},{6947,16092,3},{6930,16102,3},{6923,16100,3}, {6917,16105,3},{6910,16097,3},{6907,16103,3},{6905,16125,3},{6898,16142,3}, {6892,16138,3},{6878,16122,3},{6868,16122,3},{6857,16107,3},{6855,16100,3}, {6857,16075,3},{6853,16080,3},{6852,16095,3},{6853,16105,3},{6855,16113,3}, {6868,16128,3},{6870,16133,3},{6873,16130,3},{6880,16132,3},{6892,16158,3}, {6902,16157,3},{6907,16150,3},{6917,16147,3},{6922,16138,3},{6928,16147,3}, {6933,16142,3},{6933,16147,3},{6935,16148,3},{6938,16143,3},{6942,16160,3}, {6948,16168,3},{6950,16177,3},{6953,16182,3},{6952,16192,3},{6953,16200,3}, {6958,16202,3},{6962,16220,3},{6963,16217,3},{6965,16220,3},{6965,16230,3}, {6970,16233,3},{6967,16243,3},{6968,16260,3},{6965,16272,3},{6965,16283,3}, {6972,16322,3},{6968,16360,3},{6970,16375,3},{6977,16402,3},{6975,16410,3}, {6972,16415,3},{6963,16438,3},{6960,16453,3},{6958,16475,3},{6958,16563,3}, {6957,16583,3},{6952,16613,3},{6952,16665,3},{6952,16670,3},{6950,16668,3}, {6948,16687,3},{6957,16717,3},{6975,16765,3},{6978,16778,3},{6972,16792,3}, {6972,16807,3},{6965,16792,3},{6955,16825,3},{6938,16820,3},{6928,16823,3}, {6923,16828,3},{6922,16842,3},{6920,16873,3},{6910,16913,3},{6910,16925,3}, {6908,16937,3},{6898,16943,3},{6883,16945,3},{6878,16958,3},{6878,16978,3}, {6882,17035,3},{6880,17050,3},{6875,17062,3},{6880,17053,3},{6882,17057,3}, {6883,17043,3},{6887,17045,3},{6892,17067,3},{6880,17070,3},{6883,17073,3}, {6893,17068,3},{6898,17090,3},{6903,17095,3},{6905,17098,3},{6902,17105,3}, {6903,17117,3},{6905,17103,3},{6915,17097,3},{6917,17088,3},{6923,17093,3}, {6930,17092,3},{6938,17075,3},{6945,17073,3},{6947,17068,3},{6953,17067,3}, {6960,17058,3},{6960,17047,3},{6958,17025,3},{6960,17017,3},{6962,17012,3}, {6967,17015,3},{6973,17028,3},{6975,17050,3},{6978,17057,3},{6980,17055,3}, {6988,17057,3},{6993,17052,3},{7007,17057,3},{7010,17053,3},{7012,17040,3}, {7013,17047,3},{7010,17080,3},{7007,17138,3},{7000,17193,3},{6998,17215,3}, {6997,17250,3},{6998,17273,3},{6990,17283,3},{6987,17303,3},{6985,17317,3}, {6982,17322,3},{6978,17317,3},{6978,17322,3},{6978,17337,3},{6982,17347,3}, {6985,17347,3},{6987,17340,3},{6992,17327,3},{6990,17320,3},{6988,17317,3}, {6990,17317,3},{6993,17322,3},{6995,17347,3},{6988,17370,3},{6987,17368,3}, {6983,17375,3},{6988,17377,3},{6985,17390,3},{6988,17403,3},{6988,17432,3}, {6987,17445,3},{6985,17505,3},{6988,17538,3},{6987,17515,3},{6985,17515,3}, {6985,17530,3},{6985,17543,3},{6988,17552,3},{6990,17572,3},{6988,17583,3}, {6988,17612,3},{6980,17628,3},{6978,17623,3},{6975,17650,3},{6967,17673,3}, {6963,17703,3},{6960,17745,3},{6955,17768,3},{6955,17760,3},{6953,17765,3}, {6953,17773,3},{6950,17790,3},{6947,17808,3},{6943,17823,3},{6947,17830,3}, {6947,17825,3},{6948,17833,3},{6947,17848,3},{6935,17900,3},{6932,17907,3}, {6932,17888,3},{6935,17885,3},{6937,17868,3},{6938,17867,3},{6930,17867,3}, {6928,17872,3},{6930,17888,3},{6928,17900,3},{6930,17907,3},{6927,17928,3}, {6922,17935,3},{6900,17995,3},{6900,17983,3},{6912,17957,3},{6908,17958,3}, {6907,17965,3},{6902,17967,3},{6898,17975,3},{6898,18000,3},{6892,47559,3}, {6890,47578,3},{6892,47584,3},{6895,47581,3},{6895,47584,3},{6890,47593,3}, {6887,47603,3},{6885,47601,3},{6885,47594,3},{6882,47596,3},{6882,47614,3}, {6878,47619,3},{6877,47644,3},{6858,47688,3},{6860,47679,3},{6867,47661,3}, {6853,47663,3},{6850,47693,3},{6848,47698,3},{6848,47711,3},{6843,47733,3}, {6833,47741,3},{6827,47728,3},{6825,47729,3},{6825,47739,3},{6828,47741,3}, {6833,47766,3},{6853,47701,3},{6855,47698,3},{6840,47753,3},{6830,47781,3}, {6828,47789,3},{6830,47776,3},{6828,47773,3},{6825,47759,3},{6822,47768,3}, {6822,47774,3},{6818,47773,3},{6822,47781,3},{6825,47799,3},{6820,47819,3}, {6820,47809,3},{6817,47813,3},{6815,47811,3},{6813,47819,3},{6817,47829,3}, {6790,47921,3},{6783,47946,3},{6768,47996,3},{6767,48006,3},{6765,48006,3}, {6765,47999,3},{6755,48009,3},{6753,48019,3},{6750,48023,3},{6752,48009,3}, {6750,48014,3},{6745,48014,3},{6735,47998,3},{6735,48016,3},{6737,48026,3}, {6745,48031,3},{6748,48028,3},{6742,48043,3},{6742,48041,3},{6740,48043,3}, {6738,48049,3},{6738,48053,3},{6730,48058,3},{6728,48056,3},{6732,48053,3}, {6728,48046,3},{6710,48041,3},{6698,48044,3},{6693,48056,3},{6693,48063,3}, {6690,48056,3},{6687,48059,3},{6673,48061,3},{6675,48059,3},{6675,48049,3}, {6672,48048,3},{6670,48041,3},{6668,48041,3},{6667,48036,3},{6662,48046,3}, {6658,48071,3},{6653,48088,3},{6645,48094,3},{6647,48088,3},{6645,48084,3}, {6638,48086,3},{6635,48094,3},{6633,48086,3},{6630,48089,3},{6630,48093,3}, {6632,48101,3},{6635,48096,3},{6640,48104,3},{6642,48114,3},{6647,48109,3}, {6647,48116,3},{6648,48121,3},{6648,48134,3},{6645,48138,3},{6640,48131,3}, {6635,48138,3},{6632,48129,3},{6625,48128,3},{6622,48134,3},{6627,48138,3}, {6632,48151,3},{6633,48143,3},{6635,48153,3},{6637,48158,3},{6645,48161,3}, {6648,48148,3},{6652,48144,3},{6655,48114,3},{6658,48106,3},{6668,48134,3}, {6667,48138,3},{6668,48141,3},{6670,48136,3},{6685,48134,3},{6690,48128,3}, {6693,48128,3},{6698,48124,3},{6698,48106,3},{6700,48104,3},{6702,48111,3}, {6705,48108,3},{6703,48083,3},{6705,48079,3},{6707,48093,3},{6708,48094,3}, {6705,48074,3},{6707,48071,3},{6708,48074,3},{6710,48098,3},{6708,48153,3}, {6710,48161,3},{6713,48168,3},{6710,48184,3},{6708,48186,3},{6705,48183,3}, {6703,48184,3},{6703,48189,3},{6708,48193,3},{6705,48223,3},{6705,48213,3}, {6707,48206,3},{6703,48206,3},{6702,48218,3},{6700,48214,3},{6700,48206,3}, {6697,48201,3},{6695,48201,3},{6692,48203,3},{6692,48199,3},{6688,48203,3}, {6687,48199,3},{6683,48199,3},{6683,48214,3},{6687,48221,3},{6688,48214,3}, {6692,48216,3},{6692,48208,3},{6695,48214,3},{6698,48214,3},{6700,48224,3}, {6695,48228,3},{6693,48233,3},{6690,48258,3},{6693,48271,3},{6692,48278,3}, {6693,48293,3},{6697,48281,3},{6703,48231,3},{6705,48229,3},{6705,48231,3}, {6702,48274,3},{6700,48286,3},{6702,48258,3},{6697,48303,3},{6695,48331,3}, {6698,48341,3},{6695,48344,3},{6695,48363,3},{6693,48368,3},{6685,48366,3}, {6680,48376,3},{6677,48394,3},{6675,48396,3},{6672,48393,3},{6665,48403,3}, {6657,48426,3},{6652,48448,3},{6645,48463,3},{6635,48478,3},{6632,48494,3}, {6630,48479,3},{6628,48481,3},{6623,48471,3},{6623,48481,3},{6630,48491,3}, {6630,48504,3},{6620,48523,3},{6618,48518,3},{6620,48506,3},{6618,48503,3}, {6615,48513,3},{6615,48518,3},{6617,48521,3},{6613,48543,3},{6617,48544,3}, {6618,48533,3},{6613,48564,3},{6607,48568,3},{6600,48558,3},{6598,48554,3}, {6602,48543,3},{6603,48536,3},{6602,48524,3},{6585,48474,3},{6585,48481,3}, {6583,48484,3},{6577,48479,3},{6573,48483,3},{6567,48483,3},{6562,48478,3}, {6560,48468,3},{6562,48448,3},{6565,48446,3},{6568,48428,3},{6570,48416,3}, {6577,48409,3},{6582,48394,3},{6583,48383,3},{6582,48388,3},{6575,48393,3}, {6573,48404,3},{6572,48399,3},{6567,48408,3},{6563,48423,3},{6560,48429,3}, {6560,48434,3},{6548,48431,3},{6548,48419,3},{6553,48396,3},{6548,48329,3}, {6550,48343,3},{6552,48354,3},{6553,48353,3},{6553,48333,3},{6555,48329,3}, {6557,48324,3},{6553,48313,3},{6555,48303,3},{6558,48308,3},{6563,48299,3}, {6567,48301,3},{6567,48294,3},{6568,48279,3},{6568,48274,3},{6570,48271,3}, {6568,48256,3},{6570,48251,3},{6567,48256,3},{6567,48269,3},{6563,48268,3}, {6562,48269,3},{6560,48296,3},{6553,48293,3},{6548,48303,3},{6547,48289,3}, {6542,48296,3},{6543,48308,3},{6550,48321,3},{6535,48311,3},{6525,48311,3}, {6523,48311,3},{6527,48308,3},{6527,48298,3},{6525,48283,3},{6523,48278,3}, {6527,48274,3},{6527,48269,3},{6525,48266,3},{6523,48268,3},{6522,48274,3}, {6522,48306,3},{6520,48311,3},{6513,48318,3},{6513,48311,3},{6508,48316,3}, {6510,48323,3},{6508,48323,3},{6492,48289,3},{6492,48286,3},{6492,48283,3}, {6490,48276,3},{6488,48266,3},{6487,48261,3},{6485,48256,3},{6488,48241,3}, {6487,48231,3},{6485,48228,3},{6482,48226,3},{6478,48216,3},{6478,48219,3}, {6485,48239,3},{6478,48258,3},{6477,48258,3},{6473,48249,3},{6472,48249,3}, {6472,48239,3},{6467,48228,3},{6467,48231,3},{6468,48246,3},{6467,48249,3}, {6462,48241,3},{6458,48234,3},{6458,48241,3},{6462,48248,3},{6463,48258,3}, {6460,48263,3},{6458,48269,3},{6457,48281,3},{6455,48289,3},{6450,48293,3}, {6443,48308,3},{6442,48291,3},{6440,48286,3},{6438,48273,3},{6442,48263,3}, {6442,48256,3},{6447,48259,3},{6450,48254,3},{6452,48253,3},{6452,48243,3}, {6450,48241,3},{6450,48234,3},{6447,48229,3},{6447,48244,3},{6445,48248,3}, {6442,48246,3},{6433,48246,3},{6432,48239,3},{6428,48236,3},{6425,48218,3}, {6432,48193,3},{6437,48194,3},{6445,48209,3},{6445,48204,3},{6452,48208,3}, {6455,48201,3},{6458,48203,3},{6458,48198,3},{6462,48194,3},{6450,48201,3}, {6447,48199,3},{6440,48189,3},{6435,48178,3},{6435,48168,3},{6442,48131,3}, {6455,48124,3},{6463,48101,3},{6465,48108,3},{6467,48108,3},{6467,48091,3}, {6478,48051,3},{6482,48036,3},{6485,48038,3},{6487,48034,3},{6478,48034,3}, {6478,48023,3},{6478,47996,3},{6478,47988,3},{6482,47984,3},{6483,47994,3}, {6485,47994,3},{6485,47983,3},{6488,47979,3},{6492,47973,3},{6495,47954,3}, {6502,47944,3},{6507,47954,3},{6517,47958,3},{6528,47944,3},{6530,47948,3}, {6535,47943,3},{6540,47943,3},{6548,47926,3},{6548,47918,3},{6548,47903,3}, {6555,47879,3},{6562,47829,3},{6558,47814,3},{6550,47796,3},{6548,47786,3}, {6548,47766,3},{6548,47716,3},{6548,47699,3},{6552,47681,3},{6555,47679,3}, {6557,47684,3},{6562,47683,3},{6563,47688,3},{6573,47689,3},{6575,47684,3}, {6575,47674,3},{6577,47671,3},{6578,47673,3},{6578,47668,3},{6585,47658,3}, {6588,47649,3},{6592,47646,3},{6593,47649,3},{6605,47638,3},{6598,47658,3}, {6602,47666,3},{6612,47669,3},{6612,47676,3},{6617,47681,3},{6618,47679,3}, {6623,47684,3},{6627,47683,3},{6630,47686,3},{6640,47686,3},{6640,47683,3}, {6637,47679,3},{6637,47678,3},{6637,47673,3},{6632,47671,3},{6620,47658,3}, {6617,47639,3},{6620,47629,3},{6625,47624,3},{6630,47628,3},{6638,47624,3}, {6642,47618,3},{6635,47618,3},{6628,47618,3},{6630,47606,3},{6632,47603,3}, {6635,47594,3},{6618,47611,3},{6613,47598,3},{6612,47573,3},{6613,47568,3}, {6613,47578,3},{6615,47578,3},{6618,47566,3},{6612,47559,3},{6595,47554,3}, {6580,47561,3},{6563,47603,3},{6560,47599,3},{6553,47604,3},{6543,47583,3}, {6527,47579,3},{6517,47566,3},{6515,47554,3},{6507,18000,3},{6502,17980,3}, {6493,17968,3},{6482,17948,3},{6482,17945,3},{6482,17942,3},{6480,17925,3}, {6478,17915,3},{6460,17862,3},{6458,17850,3},{6462,17850,3},{6463,17870,3}, {6467,17875,3},{6470,17873,3},{6465,17825,3},{6465,17827,3},{6468,17825,3}, {6468,17808,3},{6467,17800,3},{6470,17792,3},{6470,17778,3},{6472,17762,3}, {6475,17763,3},{6478,17755,3},{6478,17748,3},{6482,17750,3},{6482,17742,3}, {6483,17738,3},{6485,17748,3},{6492,17743,3},{6493,17725,3},{6502,17717,3}, {6508,17690,3},{6502,17658,3},{6508,17642,3},{6508,17638,3},{6505,17638,3}, {6505,17630,3},{6503,17633,3},{6503,17643,3},{6500,17650,3},{6500,17657,3}, {6500,17670,3},{6503,17682,3},{6505,17688,3},{6503,17697,3},{6500,17700,3}, {6498,17707,3},{6492,17722,3},{6488,17725,3},{6485,17722,3},{6483,17730,3}, {6482,17728,3},{6478,17718,3},{6477,17703,3},{6478,17700,3},{6480,17693,3}, {6485,17688,3},{6485,17678,3},{6487,17675,3},{6487,17663,3},{6482,17653,3}, {6480,17643,3},{6485,17640,3},{6492,17618,3},{6492,17608,3},{6495,17607,3}, {6490,17593,3},{6487,17593,3},{6483,17587,3},{6478,17572,3},{6478,17555,3}, {6477,17538,3},{6475,17532,3},{6477,17523,3},{6475,17515,3},{6477,17505,3}, {6468,17477,3},{6468,17470,3},{6468,17443,3},{6467,17452,3},{6467,17465,3}, {6467,17477,3},{6473,17505,3},{6473,17528,3},{6475,17548,3},{6475,17570,3}, {6478,17583,3},{6490,17603,3},{6487,17620,3},{6483,17623,3},{6482,17628,3}, {6477,17630,3},{6472,17642,3},{6465,17632,3},{6463,17615,3},{6453,17612,3}, {6457,17613,3},{6462,17622,3},{6462,17633,3},{6468,17645,3},{6468,17650,3}, {6462,17670,3},{6457,17673,3},{6460,17683,3},{6463,17685,3},{6470,17698,3}, {6472,17715,3},{6478,17733,3},{6475,17748,3},{6465,17745,3},{6455,17737,3}, {6443,17742,3},{6430,17767,3},{6425,17782,3},{6422,17795,3},{6420,17810,3}, {6420,17818,3},{6423,17810,3},{6425,17808,3},{6428,17820,3},{6435,17828,3}, {6442,17823,3},{6443,17820,3},{6440,17818,3},{6445,17818,3},{6427,17837,3}, {6417,17843,3},{6403,17858,3},{6407,17852,3},{6407,17847,3},{6403,17840,3}, {6400,17838,3},{6398,17848,3},{6397,17838,3},{6397,17842,3},{6397,17853,3}, {6395,17858,3},{6395,17865,3},{6400,17863,3},{6390,17870,3},{6363,17877,3}, {6365,17872,3},{6367,17860,3},{6362,17865,3},{6362,17872,3},{6360,17872,3}, {6358,17863,3},{6362,17862,3},{6363,17852,3},{6362,17853,3},{6358,17850,3}, {6360,17847,3},{6362,17847,3},{6363,17835,3},{6358,17827,3},{6357,17827,3}, {6352,17837,3},{6352,17840,3},{6357,17847,3},{6358,17852,3},{6357,17867,3}, {6357,17872,3},{6348,17872,3},{6345,17865,3},{6343,17863,3},{6342,17858,3}, {6338,17868,3},{6340,17877,3},{6343,17883,3},{6353,17875,3},{6358,17875,3}, {6358,17878,3},{6350,17880,3},{6332,17900,3},{6340,17883,3},{6338,17880,3}, {6335,17882,3},{6333,17883,3},{6333,17890,3},{6330,17893,3},{6328,17905,3}, {6323,17913,3},{6323,17920,3},{6322,17927,3},{6315,17942,3},{6305,17940,3}, {6307,17937,3},{6305,17930,3},{6302,17925,3},{6300,17923,3},{6290,17932,3}, {6287,17950,3},{6275,17960,3},{6270,17960,3},{6267,17955,3},{6262,17957,3}, {6262,17943,3},{6253,17940,3},{6250,17935,3},{6250,17918,3},{6247,17910,3}, {6242,17915,3},{6233,17915,3},{6228,17910,3},{6228,17907,3},{6235,17897,3}, {6248,17828,3},{6255,17803,3},{6257,17772,3},{6258,17730,3},{6258,17733,3}, {6262,17727,3},{6268,17733,3},{6273,17732,3},{6277,17733,3},{6277,17740,3}, {6277,17743,3},{6278,17742,3},{6282,17745,3},{6280,17733,3},{6273,17725,3}, {6272,17727,3},{6270,17720,3},{6272,17713,3},{6278,17715,3},{6283,17703,3}, {6285,17703,3},{6287,17698,3},{6278,17700,3},{6277,17705,3},{6272,17697,3}, {6270,17693,3},{6267,17693,3},{6262,17702,3},{6258,17705,3},{6258,17717,3}, {6257,17727,3},{6253,17685,3},{6250,17668,3},{6252,17668,3},{6253,17672,3}, {6253,17668,3},{6248,17660,3},{6247,17660,3},{6247,17663,3},{6240,17642,3}, {6232,17628,3},{6223,17580,3},{6217,17553,3},{6207,17530,3},{6212,17540,3}, {6210,17530,3},{6217,17527,3},{6205,17525,3},{6202,17517,3},{6193,17482,3}, {6192,17477,3},{6193,17480,3},{6195,17478,3},{6195,17470,3},{6198,17460,3}, {6195,17462,3},{6188,17473,3},{6187,17470,3},{6183,17460,3},{6180,17445,3}, {6182,17437,3},{6183,17438,3},{6185,17435,3},{6180,17428,3},{6182,17418,3}, {6180,17415,3},{6182,17420,3},{6182,17418,3},{6183,17407,3},{6183,17408,3}, {6182,17400,3},{6178,17403,3},{6178,17410,3},{6175,17402,3},{6172,17398,3}, {6170,17392,3},{6165,17380,3},{6168,17382,3},{6170,17370,3},{6175,17362,3}, {6175,17357,3},{6165,17347,3},{6155,17348,3},{6155,17335,3},{6152,17328,3}, {6147,17330,3},{6143,17322,3},{6138,17308,3},{6142,17298,3},{6145,17295,3}, {6145,17292,3},{6147,17288,3},{6143,17272,3},{6137,17290,3},{6130,17295,3}, {6128,17285,3},{6133,17267,3},{6127,17277,3},{6123,17267,3},{6120,17265,3}, {6118,17255,3},{6123,17235,3},{6117,17237,3},{6113,17243,3},{6112,17232,3}, {6113,17225,3},{6110,17230,3},{6110,17238,3},{6108,17242,3},{6107,17243,3}, {6108,17248,3},{6105,17248,3},{6102,17238,3},{6102,17228,3},{6102,17222,3}, {6107,17215,3},{6110,17202,3},{6103,17212,3},{6102,17217,3},{6097,17220,3}, {6095,17218,3},{6093,17212,3},{6087,17207,3},{6085,17202,3},{6088,17198,3}, {6092,17200,3},{6095,17195,3},{6085,17195,3},{6083,17185,3},{6085,17173,3}, {6082,17167,3},{6080,17153,3},{6077,17162,3},{6075,17163,3},{6072,17148,3}, {6068,17142,3},{6073,17147,3},{6078,17140,3},{6072,17140,3},{6068,17137,3}, {6063,17137,3},{6055,17118,3},{6057,17108,3},{6053,17100,3},{6050,17085,3}, {6053,17075,3},{6050,17075,3},{6050,17080,3},{6045,17078,3},{6042,17065,3}, {6043,17062,3},{6045,17060,3},{6045,17052,3},{6043,17052,3},{6043,17058,3}, {6038,17062,3},{6037,17060,3},{6035,17065,3},{6033,17067,3},{6027,17050,3}, {6022,17047,3},{5997,17040,3},{5992,17025,3},{5998,17010,3},{6002,17012,3}, {6003,17008,3},{6007,16993,3},{6018,16983,3},{6022,16985,3},{6023,16997,3}, {6025,16988,3},{6023,16982,3},{6028,16975,3},{6042,16970,3},{6043,16960,3}, {6047,16957,3},{6047,16953,3},{6055,16925,3},{6057,16927,3},{6055,16933,3}, {6057,16937,3},{6062,16928,3},{6062,16922,3},{6058,16920,3},{6058,16913,3}, {6057,16915,3},{6057,16903,3},{6055,16892,3},{6057,16877,3},{6055,16867,3}, {6060,16848,3},{6060,16833,3},{6058,16818,3},{6053,16797,3},{6052,16782,3}, {6055,16777,3},{6053,16775,3},{6048,16777,3},{6047,16768,3},{6045,16762,3}, {6043,16753,3},{6047,16748,3},{6043,16747,3},{6042,16745,3},{6047,16733,3}, {6040,16737,3},{6042,16728,3},{6038,16730,3},{6037,16730,3},{6035,16718,3}, {6038,16712,3},{6042,16707,3},{6043,16702,3},{6032,16705,3},{6030,16690,3}, {6028,16693,3},{6025,16693,3},{6022,16683,3},{6000,16655,3},{5985,16630,3}, {5982,16612,3},{5983,16610,3},{5992,16610,3},{5997,16615,3},{6002,16613,3}, {6012,16617,3},{6017,16625,3},{6020,16628,3},{6025,16627,3},{6033,16627,3}, {6040,16623,3},{6038,16627,3},{6040,16633,3},{6045,16635,3},{6048,16640,3}, {6050,16638,3},{6047,16632,3},{6048,16630,3},{6048,16622,3},{6043,16600,3}, {6038,16592,3},{6037,16595,3},{6042,16605,3},{6045,16620,3},{6043,16605,3}, {6038,16598,3},{6033,16585,3},{6028,16577,3},{6025,16565,3},{6022,16552,3}, {6022,16545,3},{6025,16543,3},{6018,16543,3},{6013,16528,3},{6010,16525,3}, {6008,16520,3},{6013,16515,3},{6015,16518,3},{6017,16518,3},{6013,16512,3}, {6012,16505,3},{6013,16500,3},{6008,16500,3},{6007,16505,3},{6008,16507,3}, {6008,16512,3},{6003,16515,3},{5998,16522,3},{5997,16515,3},{5983,16500,3}, {5982,16492,3},{5978,16482,3},{5982,16477,3},{5985,16478,3},{5993,16473,3}, {6003,16460,3},{6008,16453,3},{6012,16445,3},{6007,16435,3},{6008,16432,3}, {6005,16432,3},{6002,16437,3},{6000,16435,3},{5998,16430,3},{5997,16417,3}, {5992,16410,3},{5985,16418,3},{5987,16405,3},{5990,16403,3},{5992,16410,3}, {6000,16420,3},{5998,16412,3},{6003,16403,3},{6003,16390,3},{6002,16385,3}, {6003,16387,3},{6005,16383,3},{6005,16382,3},{6005,16373,3},{6003,16363,3}, {6002,16362,3},{5998,16365,3},{5997,16368,3},{5997,16372,3},{5998,16380,3}, {5988,16368,3},{5990,16350,3},{5985,16345,3},{5982,16337,3},{5962,16338,3}, {5958,16333,3},{5958,16327,3},{5957,16317,3},{5955,16320,3},{5950,16317,3}, {5943,16330,3},{5938,16333,3},{5925,16328,3},{5925,16323,3},{5930,16328,3}, {5928,16320,3},{5930,16317,3},{5927,16308,3},{5923,16307,3},{5920,16308,3}, {5920,16307,3},{5918,16312,3},{5915,16318,3},{5905,16320,3},{5903,16315,3}, {5908,16317,3},{5912,16307,3},{5913,16307,3},{5917,16302,3},{5915,16298,3}, {5917,16295,3},{5913,16293,3},{5913,16288,3},{5903,16300,3},{5903,16305,3}, {5898,16303,3},{5895,16298,3},{5893,16285,3},{5895,16292,3},{5898,16288,3}, {5890,16280,3},{5887,16267,3},{5883,16272,3},{5887,16272,3},{5885,16277,3}, {5887,16278,3},{5883,16277,3},{5875,16252,3},{5867,16240,3},{5845,16213,3}, {5807,16193,3},{5803,16193,3},{5790,16203,3},{5785,16210,3},{5780,16225,3}, {5778,16243,3},{5773,16240,3},{5772,16233,3},{5768,16233,3},{5768,16237,3}, {5777,16248,3},{5787,16247,3},{5792,16250,3},{5795,16255,3},{5795,16265,3}, {5797,16270,3},{5793,16277,3},{5792,16285,3},{5785,16300,3},{5785,16320,3}, {5777,16327,3},{5775,16328,3},{5767,16320,3},{5763,16322,3},{5760,16320,3}, {5758,16312,3},{5748,16305,3},{5743,16285,3},{5735,16273,3},{5735,16277,3}, {5722,16275,3},{5705,16283,3},{5688,16278,3},{5678,16278,3},{5673,16285,3}, {5670,16292,3},{5673,16300,3},{5675,16308,3},{5673,16312,3},{5673,16322,3}, {5670,16325,3},{5663,16322,3},{5657,16325,3},{5655,16323,3},{5648,16327,3}, {5645,16323,3},{5638,16332,3},{5632,16333,3},{5630,16332,3},{5625,16333,3}, {5620,16335,3},{5612,16313,3},{5603,16305,3},{5602,16303,3},{5603,16288,3}, {5610,16275,3},{5615,16270,3},{5622,16258,3},{5622,16252,3},{5623,16260,3}, {5627,16267,3},{5635,16272,3},{5637,16285,3},{5640,16292,3},{5643,16293,3}, {5647,16307,3},{5652,16310,3},{5655,16298,3},{5652,16293,3},{5645,16293,3}, {5643,16290,3},{5648,16275,3},{5648,16270,3},{5648,16263,3},{5642,16257,3}, {5643,16252,3},{5640,16247,3},{5640,16240,3},{5638,16240,3},{5633,16248,3}, {5627,16257,3},{5623,16252,3},{5623,16248,3},{5620,16243,3},{5617,16222,3}, {5610,16210,3},{5607,16203,3},{5602,16205,3},{5595,16202,3},{5587,16193,3}, {5580,16192,3},{5572,16182,3},{5563,16175,3},{5548,16172,3},{5537,16172,3}, {5513,16182,3},{5512,16183,3},{5507,16188,3},{5502,16197,3},{5490,16207,3}, {5487,16215,3},{5483,16215,3},{5482,16210,3},{5477,16212,3},{5470,16200,3}, {5465,16198,3},{5458,16182,3},{5450,16173,3},{5452,16162,3},{5450,16152,3}, {5452,16147,3},{5448,16130,3},{5452,16123,3},{5455,16122,3},{5458,16118,3}, {5458,16112,3},{5455,16085,3},{5453,16072,3},{5452,16072,3},{5437,16040,3}, {5425,16025,3},{5420,16010,3},{5412,15998,3},{5407,15998,3},{5398,15990,3}, {5385,15985,3},{5375,15983,3},{5368,15987,3},{5365,15982,3},{5358,15992,3}, {5367,15987,3},{5367,15990,3},{5357,15997,3},{5352,15997,3},{5347,15993,3}, {5352,15985,3},{5353,15982,3},{5352,15980,3},{5350,15982,3},{5348,15980,3}, {5348,15985,3},{5340,15988,3},{5338,15993,3},{5333,15992,3},{5333,15997,3}, {5330,15997,3},{5327,15992,3},{5320,15997,3},{5327,15997,3},{5327,16002,3}, {5310,16005,3},{5310,15997,3},{5315,15993,3},{5322,15977,3},{5325,15978,3}, {5328,15982,3},{5327,15977,3},{5323,15972,3},{5327,15962,3},{5323,15948,3}, {5315,15938,3},{5317,15928,3},{5308,15903,3},{5302,15892,3},{5288,15872,3}, {5295,15867,3},{5298,15868,3},{5302,15863,3},{5305,15860,3},{5307,15853,3}, {5303,15850,3},{5302,15843,3},{5300,15842,3},{5297,15845,3},{5295,15842,3}, {5290,15845,3},{5292,15848,3},{5290,15853,3},{5293,15848,3},{5295,15852,3}, {5293,15863,3},{5290,15865,3},{5287,15860,3},{5285,15863,3},{5282,15858,3}, {5283,15855,3},{5278,15857,3},{5278,15850,3},{5275,15848,3},{5275,15850,3}, {5273,15857,3},{5272,15860,3},{5265,15857,3},{5262,15853,3},{5265,15842,3}, {5262,15845,3},{5260,15843,3},{5257,15852,3},{5252,15852,3},{5250,15850,3}, {5248,15853,3},{5247,15847,3},{5243,15847,3},{5242,15842,3},{5243,15853,3}, {5238,15857,3},{5235,15850,3},{5233,15855,3},{5230,15855,3},{5227,15852,3}, {5227,15842,3},{5223,15843,3},{5222,15838,3},{5218,15843,3},{5212,15837,3}, {5213,15833,3},{5212,15832,3},{5207,15833,3},{5203,15828,3},{5193,15828,3}, {5190,15818,3},{5180,15812,3},{5177,15802,3},{5172,15798,3},{5167,15792,3}, {5163,15792,3},{5163,15788,3},{5157,15777,3},{5155,15768,3},{5148,15753,3}, {5143,15748,3},{5140,15752,3},{5138,15747,3},{5135,15747,3},{5133,15735,3}, {5123,15725,3},{5120,15722,3},{5120,15715,3},{5107,15695,3},{5102,15682,3}, {5095,15678,3},{5088,15670,3},{5088,15665,3},{5098,15675,3},{5107,15675,3}, {5110,15670,3},{5118,15670,3},{5123,15667,3},{5125,15663,3},{5127,15657,3}, {5132,15652,3},{5142,15652,3},{5147,15648,3},{5152,15647,3},{5175,15650,3}, {5193,15650,3},{5228,15640,3},{5252,15628,3},{5250,15637,3},{5245,15637,3}, {5248,15643,3},{5252,15643,3},{5252,15635,3},{5255,15630,3},{5257,15627,3}, {5285,15610,3},{5292,15610,3},{5297,15610,3},{5302,15610,3},{5307,15608,3}, {5310,15608,3},{5317,15607,3},{5323,15605,3},{5328,15605,3},{5333,15603,3}, {5338,15602,3},{5345,15600,3},{5350,15600,3},{5355,15598,3},{5362,15597,3}, {5367,15597,3},{5372,15595,3},{5377,15595,3},{5383,15592,3},{5385,15593,3}, {5392,15590,3},{5397,15588,3},{5403,15588,3},{5408,15587,3},{5413,15585,3}, {5418,15580,3},{5423,15578,3},{5430,15577,3},{5435,15575,3},{5440,15573,3}, {5445,15572,3},{5452,15570,3},{5457,15568,3},{5462,15567,3},{5468,15567,3}, {5473,15565,3},{5478,15563,3},{5482,15565,3},{5492,15560,3},{5513,15557,3}, {5533,15555,3},{5557,15558,3},{5562,15562,3},{5592,15565,3},{5605,15568,3}, {5610,15572,3},{5610,15577,3},{5613,15573,3},{5660,15593,3},{5667,15595,3}, {5682,15612,3},{5685,15617,3},{5683,15617,3},{5677,15607,3},{5672,15607,3}, {5678,15613,3},{5682,15620,3},{5685,15620,3},{5695,15645,3},{5702,15652,3}, {5708,15653,3},{5710,15655,3},{5707,15665,3},{5703,15667,3},{5708,15672,3}, {5712,15670,3},{5743,15698,3},{5753,15698,3},{5765,15693,3},{5773,15685,3}, {5773,15675,3},{5780,15687,3},{5782,15690,3},{5785,15698,3},{5780,15707,3}, {5777,15717,3},{5777,15733,3},{5778,15743,3},{5782,15750,3},{5788,15757,3}, {5795,15758,3},{5798,15763,3},{5802,15765,3},{5802,15772,3},{5798,15780,3}, {5798,15792,3},{5798,15805,3},{5802,15822,3},{5800,15827,3},{5795,15833,3}, {5797,15835,3},{5800,15830,3},{5803,15828,3},{5803,15823,3},{5827,15867,3}, {5842,15903,3},{5845,15910,3},{5852,15915,3},{5847,15923,3},{5853,15918,3}, {5867,15940,3},{5868,15948,3},{5872,15950,3},{5880,15962,3},{5883,15962,3}, {5887,15972,3},{5895,15975,3},{5902,15973,3},{5905,15978,3},{5908,15978,3}, {5917,15990,3},{5923,16005,3},{5932,16020,3},{5935,16033,3},{5945,16045,3}, {5955,16048,3},{5962,16087,3},{5972,16097,3},{5977,16110,3},{5985,16125,3}, {6005,16147,3},{6007,16150,3},{6007,16158,3},{6010,16163,3},{6012,16172,3}, {6017,16182,3},{6025,16193,3},{6032,16192,3},{6033,16192,3},{6032,16187,3}, {6042,16192,3},{6048,16212,3},{6053,16220,3},{6055,16240,3},{6062,16250,3}, {6060,16262,3},{6065,16277,3},{6077,16288,3},{6078,16302,3},{6077,16308,3}, {6078,16312,3},{6080,16310,3},{6082,16318,3},{6082,16330,3},{6080,16330,3}, {6075,16327,3},{6072,16332,3},{6075,16330,3},{6083,16340,3},{6087,16357,3}, {6087,16370,3},{6093,16375,3},{6100,16352,3},{6100,16347,3},{6102,16347,3}, {6105,16352,3},{6107,16360,3},{6112,16360,3},{6115,16363,3},{6123,16393,3}, {6130,16395,3},{6133,16402,3},{6137,16402,3},{6143,16397,3},{6145,16385,3}, {6142,16378,3},{6145,16375,3},{6157,16383,3},{6163,16385,3},{6168,16402,3}, {6178,16407,3},{6183,16403,3},{6188,16407,3},{6198,16405,3},{6203,16410,3}, {6210,16407,3},{6215,16410,3},{6220,16408,3},{6227,16412,3},{6233,16423,3}, {6237,16440,3},{6242,16443,3},{6245,16452,3},{6247,16458,3},{6247,16472,3}, {6242,16492,3},{6242,16508,3},{6238,16523,3},{6232,16528,3},{6232,16533,3}, {6240,16523,3},{6245,16508,3},{6247,16513,3},{6248,16535,3},{6245,16547,3}, {6243,16562,3},{6245,16565,3},{6250,16532,3},{6252,16503,3},{6255,16492,3}, {6258,16470,3},{6268,16458,3},{6272,16437,3},{6268,16427,3},{6265,16395,3}, {6260,16392,3},{6262,16373,3},{6257,16348,3},{6255,16327,3},{6252,16322,3}, {6247,16322,3},{6245,16317,3},{6243,16322,3},{6240,16323,3},{6238,16332,3}, {6235,16335,3},{6233,16323,3},{6230,16322,3},{6230,16317,3},{6228,16312,3}, {6220,16308,3},{6212,16313,3},{6210,16308,3},{6207,16317,3},{6202,16310,3}, {6198,16310,3},{6197,16303,3},{6193,16300,3},{6192,16305,3},{6180,16295,3}, {6178,16298,3},{6175,16323,3},{6172,16330,3},{6168,16332,3},{6167,16328,3}, {6165,16320,3},{6162,16322,3},{6163,16313,3},{6162,16310,3},{6160,16307,3}, {6155,16308,3},{6152,16300,3},{6158,16295,3},{6158,16288,3},{6162,16290,3}, {6163,16285,3},{6167,16293,3},{6172,16285,3},{6172,16280,3},{6168,16265,3}, {6167,16263,3},{6163,16270,3},{6163,16275,3},{6160,16275,3},{6162,16267,3}, {6167,16253,3},{6167,16240,3},{6163,16235,3},{6162,16228,3},{6158,16228,3}, {6157,16222,3},{6153,16222,3},{6147,16208,3},{6145,16205,3},{6142,16203,3}, {6138,16193,3},{6143,16188,3},{6135,16187,3},{6138,16180,3},{6130,16175,3}, {6127,16165,3},{6127,16157,3},{6123,16162,3},{6120,16157,3},{6120,16147,3}, {6117,16142,3},{6113,16143,3},{6108,16130,3},{6107,16122,3},{6100,16117,3}, {6097,16103,3},{6092,16095,3},{6092,16090,3},{6080,16082,3},{6073,16080,3}, {6078,16067,3},{6073,16062,3},{6073,16058,3},{6075,16057,3},{6072,16045,3}, {6073,16040,3},{6075,16042,3},{6075,16038,3},{6072,16033,3},{6070,16035,3}, {6067,16028,3},{6063,16027,3},{6058,16013,3},{6068,16012,3},{6068,16018,3}, {6072,16018,3},{6073,16022,3},{6078,16022,3},{6083,16017,3},{6085,16023,3}, {6090,16023,3},{6092,16030,3},{6090,16032,3},{6092,16035,3},{6095,16033,3}, {6100,16040,3},{6103,16038,3},{6105,16043,3},{6107,16035,3},{6105,16017,3}, {6098,15993,3},{6095,15992,3},{6093,15978,3},{6098,15980,3},{6103,15990,3}, {6110,15993,3},{6112,15998,3},{6115,15993,3},{6118,15995,3},{6122,15990,3}, {6125,15992,3},{6127,15985,3},{6125,15975,3},{6130,15983,3},{6132,15985,3}, {6128,15993,3},{6132,16000,3},{6130,15992,3},{6133,15988,3},{6137,15995,3}, {6138,15995,3},{6140,15997,3},{6138,16003,3},{6142,16003,3},{6145,16008,3}, {6147,16002,3},{6152,16008,3},{6152,16017,3},{6157,16023,3},{6158,16022,3}, {6163,16023,3},{6167,16028,3},{6170,16023,3},{6177,16037,3},{6182,16035,3}, {6185,16037,3},{6187,16035,3},{6190,16037,3},{6192,16033,3},{6195,16035,3}, {6195,16033,3},{6188,16015,3},{6188,16010,3},{6182,15997,3},{6178,15992,3}, {6172,15983,3},{6173,15975,3},{6170,15972,3},{6172,15967,3},{6170,15967,3}, {6167,15953,3},{6168,15948,3},{6172,15948,3},{6182,15953,3},{6182,15950,3}, {6177,15945,3},{6183,15933,3},{6185,15938,3},{6188,15937,3},{6192,15920,3}, {6188,15888,3},{6185,15883,3},{6182,15885,3},{6183,15863,3},{6178,15852,3}, {6182,15845,3},{6182,15832,3},{6175,15812,3},{6173,15803,3},{6178,15790,3}, {6180,15748,3},{6177,15737,3},{6170,15737,3},{6172,15728,3},{6170,15715,3}, {6165,15702,3},{6160,15698,3},{6153,15687,3},{6153,15670,3},{6142,15663,3}, {6133,15667,3},{6128,15663,3},{6122,15667,3},{6122,15658,3},{6118,15642,3}, {6102,15610,3},{6088,15592,3},{6085,15590,3},{6072,15590,3},{6073,15582,3}, {6067,15570,3},{6065,15565,3},{6062,15555,3},{6058,15552,3},{6058,15548,3}, {6053,15548,3},{6052,15545,3},{6052,15542,3},{6053,15538,3},{6052,15533,3}, {6047,15518,3},{6042,15513,3},{6040,15508,3},{6035,15493,3},{6027,15480,3}, {6005,15453,3},{5992,15447,3},{5988,15448,3},{5985,15440,3},{5988,15443,3}, {5990,15440,3},{5988,15423,3},{5972,15423,3},{5958,15437,3},{5958,15430,3}, {5965,15422,3},{5955,15413,3},{5952,15407,3},{5947,15410,3},{5945,15413,3}, {5945,15428,3},{5948,15435,3},{5952,15435,3},{5953,15438,3},{5950,15440,3}, {5947,15438,3},{5942,15443,3},{5943,15450,3},{5950,15442,3},{5955,15442,3}, {5953,15457,3},{5955,15463,3},{5948,15475,3},{5948,15483,3},{5945,15485,3}, {5948,15490,3},{5950,15497,3},{5940,15507,3},{5937,15518,3},{5928,15513,3}, {5925,15518,3},{5922,15513,3},{5917,15518,3},{5920,15507,3},{5918,15500,3}, {5920,15477,3},{5917,15473,3},{5912,15477,3},{5913,15470,3},{5913,15465,3}, {5920,15452,3},{5922,15445,3},{5920,15433,3},{5918,15432,3},{5912,15435,3}, {5912,15430,3},{5908,15427,3},{5910,15415,3},{5905,15403,3},{5908,15390,3}, {5917,15380,3},{5918,15367,3},{5922,15373,3},{5925,15373,3},{5927,15375,3}, {5920,15358,3},{5922,15352,3},{5925,15337,3},{5922,15332,3},{5915,15332,3}, {5913,15327,3},{5913,15332,3},{5908,15330,3},{5910,15315,3},{5907,15298,3}, {5895,15288,3},{5890,15290,3},{5893,15282,3},{5890,15272,3},{5895,15263,3}, {5895,15255,3},{5900,15247,3},{5902,15240,3},{5903,15240,3},{5905,15235,3}, {5902,15235,3},{5900,15220,3},{5898,15212,3},{5892,15212,3},{5890,15208,3}, {5885,15157,3},{5887,15145,3},{5883,15132,3},{5892,15128,3},{5895,15122,3}, {5902,15118,3},{5903,15113,3},{5912,15107,3},{5908,15117,3},{5912,15133,3}, {5915,15137,3},{5917,15140,3},{5917,15162,3},{5915,15167,3},{5913,15172,3}, {5915,15180,3},{5915,15187,3},{5915,15205,3},{5920,15217,3},{5920,15228,3}, {5923,15228,3},{5927,15217,3},{5930,15213,3},{5928,15208,3},{5927,15198,3}, {5930,15187,3},{5930,15170,3},{5932,15167,3},{5935,15172,3},{5938,15167,3}, {5943,15167,3},{5948,15160,3},{5950,15148,3},{5955,15145,3},{5957,15140,3}, {5960,15137,3},{5960,15133,3},{5957,15130,3},{5957,15123,3},{5958,15110,3}, {5957,15090,3},{5955,15087,3},{5950,15093,3},{5948,15092,3},{5947,15093,3}, {5945,15087,3},{5945,15068,3},{5947,15068,3},{5948,15073,3},{5950,15072,3}, {5952,15067,3},{5948,15043,3},{5952,15050,3},{5955,15073,3},{5957,15073,3}, {5955,15052,3},{5958,15043,3},{5960,15045,3},{5962,15042,3},{5962,15035,3}, {5965,15027,3},{5965,15013,3},{5970,15003,3},{5977,14962,3},{5975,14937,3}, {5977,14935,3},{5975,14932,3},{5973,14935,3},{5973,14933,3},{5968,14918,3}, {5965,14910,3},{5963,14903,3},{5962,14903,3},{5958,14910,3},{5955,14908,3}, {5953,14918,3},{5950,14922,3},{5947,14922,3},{5950,14912,3},{5945,14897,3}, {5947,14895,3},{5947,14890,3},{5948,14885,3},{5952,14883,3},{5953,14888,3}, {5955,14885,3},{5948,14875,3},{5945,14870,3},{5938,14870,3},{5937,14878,3}, {5940,14887,3},{5935,14887,3},{5938,14892,3},{5940,14892,3},{5938,14897,3}, {5932,14892,3},{5925,14895,3},{5923,14890,3},{5925,14887,3},{5928,14880,3}, {5925,14877,3},{5923,14872,3},{5927,14868,3},{5925,14855,3},{5927,14842,3}, {5927,14840,3},{5930,14840,3},{5933,14837,3},{5935,14840,3},{5938,14837,3}, {5942,14822,3},{5938,14783,3},{5935,14778,3},{5930,14783,3},{5928,14782,3}, {5927,14770,3},{5930,14767,3},{5930,14760,3},{5928,14755,3},{5925,14755,3}, {5923,14748,3},{5932,14730,3},{5932,14717,3},{5937,14700,3},{5935,14687,3}, {5937,14673,3},{5942,14667,3},{5947,14653,3},{5945,14647,3},{5938,14632,3}, {5927,14632,3},{5920,14635,3},{5918,14632,3},{5920,14618,3},{5915,14603,3}, {5915,14595,3},{5922,14593,3},{5922,14585,3},{5927,14580,3},{5933,14587,3}, {5935,14592,3},{5942,14592,3},{5940,14583,3},{5942,14582,3},{5938,14577,3}, {5942,14567,3},{5943,14567,3},{5942,14562,3},{5938,14532,3},{5942,14528,3}, {5942,14525,3},{5938,14507,3},{5938,14493,3},{5938,14477,3},{5938,14480,3}, {5940,14477,3},{5940,14462,3},{5938,14463,3},{5937,14468,3},{5937,14442,3}, {5938,14445,3},{5940,14438,3},{5940,14432,3},{5938,14428,3},{5942,14405,3}, {5942,14390,3},{5940,14378,3},{5933,14353,3},{5933,14343,3},{5937,14333,3}, {5938,14320,3},{5937,14313,3},{5935,14315,3},{5923,14258,3},{5912,14225,3}, {5897,14198,3},{5882,14183,3},{5868,14170,3},{5865,14162,3},{5852,14133,3}, {5848,14122,3},{5847,14108,3},{5830,14078,3},{5823,14068,3},{5808,14062,3}, {5793,14052,3},{5782,14050,3},{5780,14042,3},{5775,14035,3},{5777,14028,3}, {5772,14005,3},{5765,13993,3},{5752,13983,3},{5748,13970,3},{5745,13960,3}, {5738,13957,3},{5732,13948,3},{5732,13940,3},{5730,13937,3},{5727,13917,3}, {5715,13907,3},{5713,13907,3},{5715,13897,3},{5713,13895,3},{5707,13897,3}, {5702,13890,3},{5705,13882,3},{5702,13882,3},{5700,13875,3},{5698,13863,3}, {5687,13858,3},{5685,13848,3},{5673,13840,3},{5672,13830,3},{5668,13830,3}, {5667,13827,3},{5663,13827,3},{5663,13822,3},{5657,13812,3},{5650,13815,3}, {5648,13825,3},{5643,13823,3},{5645,13817,3},{5645,13808,3},{5640,13807,3}, {5638,13802,3},{5638,13792,3},{5630,13788,3},{5625,13785,3},{5623,13777,3}, {5620,13777,3},{5617,13773,3},{5615,13773,3},{5612,13757,3},{5605,13745,3}, {5602,13745,3},{5600,13743,3},{5597,13743,3},{5595,13740,3},{5593,13742,3}, {5597,13737,3},{5597,13733,3},{5593,13730,3},{5588,13717,3},{5580,13707,3}, {5580,13698,3},{5577,13690,3},{5572,13682,3},{5565,13678,3},{5565,13675,3}, {5567,13668,3},{5563,13660,3},{5563,13655,3},{5558,13652,3},{5558,13643,3}, {5553,13635,3},{5543,13630,3},{5535,13618,3},{5530,13613,3},{5530,13607,3}, {5525,13595,3},{5520,13587,3},{5520,13580,3},{5513,13572,3},{5512,13555,3}, {5493,13522,3},{5487,13515,3},{5480,13517,3},{5472,13527,3},{5470,13523,3}, {5472,13533,3},{5468,13547,3},{5467,13567,3},{5458,13570,3},{5457,13573,3}, {5457,13600,3},{5460,13610,3},{5462,13622,3},{5460,13628,3},{5458,13653,3}, {5465,13662,3},{5468,13667,3},{5463,13665,3},{5462,13670,3},{5465,13677,3}, {5465,13682,3},{5460,13682,3},{5458,13688,3},{5452,13682,3},{5448,13683,3}, {5447,13682,3},{5443,13683,3},{5442,13682,3},{5443,13677,3},{5442,13673,3}, {5435,13677,3},{5432,13682,3},{5428,13675,3},{5425,13682,3},{5422,13675,3}, {5415,13682,3},{5408,13677,3},{5405,13677,3},{5402,13670,3},{5393,13665,3}, {5382,13668,3},{5377,13678,3},{5378,13682,3},{5383,13685,3},{5385,13695,3}, {5385,13703,3},{5382,13708,3},{5380,13712,3},{5387,13720,3},{5403,13728,3}, {5403,13717,3},{5413,13707,3},{5418,13717,3},{5422,13718,3},{5422,13725,3}, {5427,13728,3},{5428,13737,3},{5430,13738,3},{5432,13748,3},{5430,13753,3}, {5430,13762,3},{5430,13765,3},{5432,13768,3},{5432,13773,3},{5430,13773,3}, {5423,13762,3},{5418,13758,3},{5415,13752,3},{5413,13752,3},{5412,13748,3}, {5408,13748,3},{5408,13745,3},{5413,13745,3},{5415,13742,3},{5412,13730,3}, {5405,13730,3},{5403,13743,3},{5397,13757,3},{5395,13760,3},{5397,13767,3}, {5393,13775,3},{5397,13787,3},{5390,13778,3},{5388,13770,3},{5383,13760,3}, {5378,13760,3},{5377,13755,3},{5372,13757,3},{5368,13750,3},{5367,13748,3}, {5367,13735,3},{5362,13728,3},{5360,13722,3},{5358,13720,3},{5357,13722,3}, {5353,13732,3},{5352,13738,3},{5353,13748,3},{5355,13768,3},{5357,13790,3}, {5363,13802,3},{5367,13813,3},{5373,13828,3},{5390,13835,3},{5400,13858,3}, {5398,13858,3},{5393,13857,3},{5387,13858,3},{5382,13857,3},{5368,13837,3}, {5365,13835,3},{5360,13835,3},{5357,13823,3},{5353,13825,3},{5348,13822,3}, {5352,13825,3},{5352,13828,3},{5352,13845,3},{5357,13855,3},{5367,13862,3}, {5383,13870,3},{5385,13868,3},{5390,13868,3},{5395,13875,3},{5402,13878,3}, {5407,13878,3},{5410,13877,3},{5407,13867,3},{5417,13873,3},{5420,13872,3}, {5423,13875,3},{5427,13872,3},{5430,13865,3},{5432,13873,3},{5423,13900,3}, {5418,13933,3},{5425,13963,3},{5432,13975,3},{5430,13982,3},{5423,13978,3}, {5422,13982,3},{5420,13992,3},{5418,13990,3},{5412,14002,3},{5408,14015,3}, {5405,14025,3},{5400,14023,3},{5397,14033,3},{5390,14025,3},{5387,14025,3}, {5378,14037,3},{5375,14045,3},{5372,14053,3},{5368,14052,3},{5365,14055,3}, {5357,14077,3},{5347,14110,3},{5350,14097,3},{5347,14093,3},{5343,14093,3}, {5345,14100,3},{5340,14103,3},{5340,14112,3},{5337,14112,3},{5330,14123,3}, {5332,14130,3},{5328,14142,3},{5322,14135,3},{5322,14142,3},{5318,14142,3}, {5315,14143,3},{5312,14138,3},{5308,14137,3},{5307,14137,3},{5307,14135,3}, {5308,14125,3},{5303,14118,3},{5302,14125,3},{5298,14122,3},{5298,14115,3}, {5305,14097,3},{5307,14090,3},{5312,14087,3},{5312,14080,3},{5312,14070,3}, {5310,14077,3},{5303,14085,3},{5302,14095,3},{5298,14093,3},{5293,14097,3}, {5292,14105,3},{5288,14108,3},{5285,14118,3},{5285,14127,3},{5277,14120,3}, {5273,14127,3},{5268,14128,3},{5265,14132,3},{5263,14128,3},{5258,14128,3}, {5252,14122,3},{5247,14113,3},{5240,14113,3},{5235,14117,3},{5233,14123,3}, {5228,14128,3},{5227,14133,3},{5222,14140,3},{5222,14153,3},{5215,14155,3}, {5215,14153,3},{5217,14150,3},{5210,14135,3},{5208,14137,3},{5202,14130,3}, {5195,14143,3},{5192,14142,3},{5188,14128,3},{5183,14122,3},{5177,14118,3}, {5170,14112,3},{5167,14112,3},{5168,14108,3},{5167,14102,3},{5162,14092,3}, {5150,14090,3},{5148,14083,3},{5145,14078,3},{5143,14082,3},{5142,14082,3}, {5142,14090,3},{5137,14087,3},{5133,14080,3},{5133,14077,3},{5132,14068,3}, {5127,14070,3},{5125,14072,3},{5122,14065,3},{5118,14068,3},{5113,14067,3}, {5110,14070,3},{5105,14072,3},{5102,14070,3},{5100,14067,3},{5095,14068,3}, {5092,14060,3},{5087,14053,3},{5082,14055,3},{5070,14047,3},{5062,14052,3}, {5060,14048,3},{5053,14043,3},{5045,14050,3},{5033,14055,3},{5030,14052,3}, {5022,14053,3},{5017,14052,3},{5008,14058,3},{5007,14058,3},{5008,14062,3}, {5010,14068,3},{5008,14070,3},{5003,14063,3},{4998,14048,3},{4988,14043,3}, {4987,14040,3},{4980,14047,3},{4977,14053,3},{4968,14052,3},{4957,14055,3}, {4940,14045,3},{4928,14043,3},{4928,14033,3},{4927,14033,3},{4927,14040,3}, {4920,14033,3},{4920,14037,3},{4917,14035,3},{4915,14037,3},{4910,14035,3}, {4908,14035,3},{4908,14030,3},{4907,14033,3},{4903,14035,3},{4900,14022,3}, {4900,14028,3},{4897,14025,3},{4897,14028,3},{4897,14030,3},{4898,14030,3}, {4902,14035,3},{4898,14037,3},{4898,14040,3},{4890,14035,3},{4885,14025,3}, {4877,14022,3},{4867,14018,3},{4858,14020,3},{4857,14017,3},{4852,14020,3}, {4845,14018,3},{4842,14008,3},{4833,14003,3},{4830,13993,3},{4817,13973,3}, {4807,13965,3},{4797,13952,3},{4792,13940,3},{4782,13928,3},{4773,13922,3}, {4765,13920,3},{4763,13917,3},{4747,13905,3},{4742,13905,3},{4737,13898,3}, {4732,13897,3},{4730,13888,3},{4718,13877,3},{4708,13862,3},{4703,13857,3}, {4692,13850,3},{4687,13850,3},{4680,13842,3},{4673,13838,3},{4663,13835,3}, {4653,13833,3},{4648,13823,3},{4645,13820,3},{4628,13812,3},{4622,13810,3}, {4613,13802,3},{4610,13795,3},{4607,13793,3},{4593,13778,3},{4587,13770,3}, {4580,13767,3},{4568,13752,3},{4560,13737,3},{4537,13713,3},{4533,13705,3}, {4518,13682,3},{4508,13677,3},{4503,13668,3},{4503,13665,3},{4493,13655,3}, {4488,13655,3},{4488,13653,3},{4483,13648,3},{4483,13645,3},{4477,13643,3}, {4478,13637,3},{4475,13633,3},{4473,13630,3},{4470,13633,3},{4468,13627,3}, {4467,13625,3},{4462,13622,3},{4458,13623,3},{4455,13620,3},{4452,13618,3}, {4445,13607,3},{4445,13600,3},{4443,13598,3},{4440,13588,3},{4435,13583,3}, {4432,13583,3},{4427,13580,3},{4423,13572,3},{4418,13568,3},{4417,13565,3}, {4412,13567,3},{4403,13563,3},{4400,13555,3},{4398,13553,3},{4395,13553,3}, {4395,13552,3},{4392,13552,3},{4395,13548,3},{4395,13545,3},{4392,13547,3}, {4390,13547,3},{4388,13552,3},{4375,13542,3},{4375,13538,3},{4372,13535,3}, {4372,13532,3},{4368,13527,3},{4372,13525,3},{4373,13525,3},{4373,13523,3}, {4372,13522,3},{4372,13518,3},{4368,13523,3},{4363,13522,3},{4360,13517,3}, {4350,13513,3},{4350,13507,3},{4345,13497,3},{4343,13495,3},{4338,13483,3}, {4330,13477,3},{4330,13470,3},{4323,13460,3},{4323,13455,3},{4315,13442,3}, {4312,13435,3},{4312,13432,3},{4310,13430,3},{4308,13418,3},{4300,13412,3}, {4297,13403,3},{4287,13390,3},{4290,13387,3},{4285,13373,3},{4282,13372,3}, {4285,13368,3},{4285,13360,3},{4282,13357,3},{4282,13353,3},{4282,13352,3}, {4280,13348,3},{4275,13337,3},{4277,13332,3},{4275,13323,3},{4268,13317,3}, {4268,13303,3},{4272,13300,3},{4273,13303,3},{4273,13308,3},{4280,13300,3}, {4282,13300,3},{4282,13293,3},{4282,13290,3},{4277,13288,3},{4273,13285,3}, {4277,13280,3},{4282,13280,3},{4283,13277,3},{4288,13277,3},{4290,13277,3}, {4290,13273,3},{4287,13268,3},{4285,13268,3},{4285,13260,3},{4283,13258,3}, {4287,13250,3},{4292,13250,3},{4293,13247,3},{4293,13240,3},{4292,13238,3}, {4290,13235,3},{4285,13235,3},{4285,13232,3},{4288,13228,3},{4297,13228,3}, {4302,13230,3},{4307,13228,3},{4308,13230,3},{4313,13233,3},{4317,13232,3}, {4317,13235,3},{4320,13238,3},{4322,13237,3},{4322,13232,3},{4325,13230,3}, {4328,13235,3},{4332,13230,3},{4332,13228,3},{4328,13228,3},{4323,13223,3}, {4318,13210,3},{4312,13203,3},{4308,13198,3},{4308,13190,3},{4308,13188,3}, {4312,13192,3},{4308,13183,3},{4320,13192,3},{4323,13200,3},{4328,13205,3}, {4332,13205,3},{4332,13202,3},{4327,13198,3},{4330,13197,3},{4330,13183,3}, {4333,13183,3},{4333,13182,3},{4328,13177,3},{4322,13175,3},{4320,13172,3}, {4318,13177,3},{4317,13175,3},{4317,13173,3},{4318,13170,3},{4318,13167,3}, {4317,13167,3},{4315,13165,3},{4317,13170,3},{4315,13168,3},{4303,13157,3}, {4300,13157,3},{4298,13155,3},{4300,13152,3},{4300,13150,3},{4295,13150,3}, {4293,13143,3},{4293,13138,3},{4292,13138,3},{4290,13142,3},{4288,13140,3}, {4287,13147,3},{4283,13137,3},{4280,13135,3},{4277,13137,3},{4278,13132,3}, {4277,13128,3},{4270,13125,3},{4267,13125,3},{4267,13122,3},{4262,13122,3}, {4260,13123,3},{4257,13123,3},{4255,13120,3},{4257,13117,3},{4260,13120,3}, {4262,13113,3},{4267,13112,3},{4263,13110,3},{4262,13110,3},{4265,13102,3}, {4263,13097,3},{4260,13093,3},{4263,13082,3},{4263,13087,3},{4262,13093,3}, {4265,13095,3},{4265,13088,3},{4263,13080,3},{4265,13078,3},{4267,13083,3}, {4268,13083,3},{4268,13075,3},{4268,13072,3},{4267,13068,3},{4265,13067,3}, {4262,13073,3},{4257,13073,3},{4260,13077,3},{4257,13078,3},{4255,13085,3}, {4252,13087,3},{4252,13083,3},{4247,13083,3},{4245,13078,3},{4235,13075,3}, {4228,13068,3},{4232,13065,3},{4238,13065,3},{4242,13060,3},{4250,13057,3}, {4255,13057,3},{4258,13062,3},{4262,13060,3},{4268,13053,3},{4268,13047,3}, {4270,13042,3},{4272,13040,3},{4275,13043,3},{4283,13063,3},{4283,13077,3}, {4285,13078,3},{4288,13082,3},{4285,13087,3},{4285,13102,3},{4290,13105,3}, {4292,13112,3},{4293,13113,3},{4297,13110,3},{4303,13110,3},{4313,13122,3}, {4315,13122,3},{4320,13118,3},{4327,13127,3},{4337,13127,3},{4340,13132,3}, {4345,13130,3},{4353,13120,3},{4355,13118,3},{4360,13122,3},{4362,13120,3}, {4367,13122,3},{4370,13120,3},{4373,13122,3},{4382,13120,3},{4392,13125,3}, {4397,13123,3},{4403,13125,3},{4405,13130,3},{4408,13128,3},{4413,13127,3}, {4420,13125,3},{4425,13123,3},{4430,13122,3},{4435,13120,3},{4440,13118,3}, {4445,13117,3},{4452,13115,3},{4457,13113,3},{4462,13112,3},{4468,13110,3}, {4470,13107,3},{4475,13105,3},{4478,13100,3},{4483,13095,3},{4487,13105,3}, {4488,13107,3},{4492,13107,3},{4493,13113,3},{4492,13122,3},{4492,13127,3}, {4497,13133,3},{4497,13147,3},{4498,13148,3},{4512,13165,3},{4513,13165,3}, {4517,13163,3},{4520,13165,3},{4522,13167,3},{4522,13175,3},{4533,13183,3}, {4535,13187,3},{4533,13190,3},{4528,13193,3},{4523,13202,3},{4522,13210,3}, {4520,13217,3},{4518,13225,3},{4517,13232,3},{4515,13240,3},{4513,13247,3}, {4512,13253,3},{4510,13262,3},{4508,13268,3},{4507,13277,3},{4505,13283,3}, {4502,13293,3},{4505,13303,3},{4512,13312,3},{4517,13313,3},{4525,13310,3}, {4545,13315,3},{4550,13318,3},{4557,13337,3},{4557,13342,3},{4560,13342,3}, {4562,13347,3},{4565,13345,3},{4567,13348,3},{4568,13348,3},{4570,13345,3}, {4573,13348,3},{4577,13348,3},{4578,13350,3},{4580,13347,3},{4583,13348,3}, {4583,13350,3},{4588,13352,3},{4588,13355,3},{4587,13358,3},{4590,13360,3}, {4593,13362,3},{4593,13367,3},{4607,13372,3},{4615,13368,3},{4615,13375,3}, {4620,13378,3},{4622,13380,3},{4620,13383,3},{4622,13385,3},{4623,13385,3}, {4625,13390,3},{4630,13388,3},{4632,13392,3},{4633,13387,3},{4635,13388,3}, {4637,13392,3},{4640,13393,3},{4642,13390,3},{4643,13385,3},{4647,13385,3}, {4653,13390,3},{4657,13390,3},{4662,13398,3},{4667,13402,3},{4677,13405,3}, {4682,13402,3},{4692,13407,3},{4697,13407,3},{4708,13413,3},{4708,13420,3}, {4712,13422,3},{4713,13422,3},{4717,13418,3},{4720,13420,3},{4725,13415,3}, {4732,13418,3},{4735,13423,3},{4742,13432,3},{4743,13448,3},{4747,13455,3}, {4750,13457,3},{4757,13467,3},{4763,13468,3},{4770,13477,3},{4773,13477,3}, {4780,13468,3},{4787,13467,3},{4790,13460,3},{4795,13460,3},{4800,13455,3}, {4807,13458,3},{4810,13467,3},{4823,13468,3},{4827,13473,3},{4830,13462,3}, {4837,13457,3},{4835,13448,3},{4838,13442,3},{4837,13425,3},{4833,13418,3}, {4832,13405,3},{4830,13402,3},{4827,13398,3},{4827,13388,3},{4825,13375,3}, {4818,13370,3},{4817,13360,3},{4810,13353,3},{4807,13352,3},{4807,13348,3}, {4810,13340,3},{4810,13332,3},{4812,13322,3},{4810,13308,3},{4803,13302,3}, {4800,13288,3},{4795,13283,3},{4793,13277,3},{4795,13275,3},{4795,13267,3}, {4793,13265,3},{4787,13267,3},{4780,13258,3},{4773,13258,3},{4772,13253,3}, {4775,13235,3},{4770,13217,3},{4770,13200,3},{4767,13192,3},{4768,13187,3}, {4767,13182,3},{4770,13168,3},{4767,13162,3},{4765,13158,3},{4767,13155,3}, {4772,13153,3},{4773,13142,3},{4773,13127,3},{4770,13117,3},{4767,13110,3}, {4770,13098,3},{4772,13093,3},{4780,13095,3},{4790,13088,3},{4805,13068,3}, {4810,13067,3},{4813,13067,3},{4818,13075,3},{4825,13077,3},{4828,13083,3}, {4833,13082,3},{4835,13077,3},{4842,13073,3},{4848,13077,3},{4850,13073,3}, {4848,13063,3},{4852,13062,3},{4857,13062,3},{4860,13052,3},{4880,13063,3}, {4885,13067,3},{4887,13067,3},{4888,13062,3},{4885,13052,3},{4888,13047,3}, {4890,13042,3},{4887,13028,3},{4887,13022,3},{4900,12998,3},{4903,12990,3}, {4908,12992,3},{4912,12983,3},{4915,12985,3},{4917,12977,3},{4920,12973,3}, {4927,12972,3},{4928,12968,3},{4927,12960,3},{4930,12955,3},{4938,12953,3}, {4942,12948,3},{4942,12938,3},{4940,12937,3},{4935,12937,3},{4935,12932,3}, {4938,12925,3},{4938,12920,3},{4935,12910,3},{4937,12905,3},{4943,12900,3}, {4945,12892,3},{4947,12890,3},{4948,12885,3},{4947,12875,3},{4950,12875,3}, {4953,12880,3},{4957,12878,3},{4958,12872,3},{4962,12867,3},{4957,12862,3}, {4958,12850,3},{4957,12837,3},{4953,12833,3},{4955,12827,3},{4953,12822,3}, {4953,12810,3},{4958,12800,3},{4960,12795,3},{4958,12790,3},{4958,12782,3}, {4963,12777,3},{4967,12768,3},{4975,12767,3},{4980,12753,3},{4983,12750,3}, {4992,12753,3},{4998,12748,3},{5005,12748,3},{5013,12757,3},{5020,12758,3}, {5032,12733,3},{5042,12735,3},{5047,12728,3},{5057,12737,3},{5068,12728,3}, {5073,12730,3},{5078,12722,3},{5092,12713,3},{5097,12703,3},{5105,12693,3}, {5118,12690,3},{5128,12697,3},{5130,12698,3},{5133,12695,3},{5130,12687,3}, {5127,12688,3},{5125,12690,3},{5123,12688,3},{5125,12685,3},{5127,12682,3}, {5133,12682,3},{5133,12690,3},{5138,12692,3},{5140,12690,3},{5142,12678,3}, {5145,12678,3},{5150,12682,3},{5153,12680,3},{5157,12667,3},{5160,12667,3}, {5163,12673,3},{5167,12670,3},{5170,12672,3},{5172,12670,3},{5173,12667,3}, {5175,12663,3},{5190,12652,3},{5193,12647,3},{5200,12643,3},{5203,12647,3}, {5203,12652,3},{5213,12655,3},{5217,12647,3},{5220,12632,3},{5223,12633,3}, {5228,12643,3},{5230,12632,3},{5238,12633,3},{5247,12627,3},{5247,12620,3}, {5252,12622,3},{5253,12618,3},{5258,12607,3},{5257,12605,3},{5257,12602,3}, {5262,12598,3},{5265,12598,3},{5268,12607,3},{5273,12603,3},{5275,12610,3}, {5277,12610,3},{5278,12605,3},{5277,12597,3},{5285,12587,3},{5288,12587,3}, {5290,12583,3},{5288,12565,3},{5292,12565,3},{5295,12572,3},{5298,12573,3}, {5302,12565,3},{5305,12562,3},{5305,12557,3},{5303,12550,3},{5308,12547,3}, {5320,12517,3},{5320,12507,3},{5317,12488,3},{5310,12490,3},{5308,12485,3}, {5313,12480,3},{5313,12470,3},{5317,12470,3},{5318,12465,3},{5318,12450,3}, {5322,12440,3},{5325,12433,3},{5337,12425,3},{5337,12418,3},{5333,12412,3}, {5340,12402,3},{5343,12398,3},{5347,12388,3},{5350,12370,3},{5355,12362,3}, {5353,12358,3},{5350,12353,3},{5353,12355,3},{5355,12350,3},{5350,12348,3}, {5352,12345,3},{5355,12327,3},{5350,12315,3},{5348,12297,3},{5345,12282,3}, {5345,12262,3},{5343,12242,3},{5348,12232,3},{5347,12225,3},{5347,12217,3}, {5342,12210,3},{5342,12202,3},{5342,12197,3},{5342,12182,3},{5338,12173,3}, {5338,12167,3},{5333,12150,3},{5332,12133,3},{5328,12123,3},{5327,12113,3}, {5328,12107,3},{5328,12103,3},{5328,12087,3},{5327,12083,3},{5323,12083,3}, {5318,12072,3},{5310,12063,3},{5302,12048,3},{5285,12027,3},{5280,12017,3}, {5280,12012,3},{5277,12003,3},{5270,12005,3},{5262,12003,3},{5258,12007,3}, {5258,12018,3},{5262,12028,3},{5262,12038,3},{5263,12043,3},{5253,12072,3}, {5243,12068,3},{5233,12062,3},{5230,12065,3},{5223,12077,3},{5212,12078,3}, {5207,12075,3},{5205,12070,3},{5198,12072,3},{5192,12065,3},{5190,12057,3}, {5188,12055,3},{5188,12048,3},{5183,12047,3},{5183,12040,3},{5177,12032,3}, {5167,12018,3},{5167,12010,3},{5162,12005,3},{5155,12005,3},{5150,11998,3}, {5143,11998,3},{5138,11995,3},{5137,11988,3},{5133,11992,3},{5128,11987,3}, {5127,11982,3},{5122,11982,3},{5120,11975,3},{5117,11978,3},{5115,11977,3}, {5107,11975,3},{5100,11967,3},{5097,11958,3},{5093,11957,3},{5090,11952,3}, {5088,11953,3},{5083,11950,3},{5080,11952,3},{5075,11950,3},{5068,11945,3}, {5067,11938,3},{5063,11937,3},{5060,11928,3},{5045,11925,3},{5042,11920,3}, {5042,11917,3},{5040,11913,3},{5037,11913,3},{5037,11918,3},{5035,11918,3}, {5035,11935,3},{5032,11937,3},{5027,11933,3},{5017,11935,3},{5010,11933,3}, {5002,11923,3},{4998,11907,3},{4998,11892,3},{4995,11872,3},{4995,11863,3}, {4990,11853,3},{4982,11847,3},{4982,11838,3},{4978,11837,3},{4973,11823,3}, {4967,11817,3},{4965,11812,3},{4960,11803,3},{4955,11790,3},{4950,11787,3}, {4952,11778,3},{4962,11750,3},{4963,11728,3},{4965,11717,3},{4972,11697,3}, {4983,11672,3},{4993,11662,3},{4997,11643,3},{5003,11622,3},{5000,11607,3}, {4990,11580,3},{4988,11573,3},{4990,11563,3},{4990,11540,3},{5000,11520,3}, {5015,11502,3},{5023,11485,3},{5025,11478,3},{5027,11467,3},{5025,11455,3}, {5025,11445,3},{5028,11432,3},{5025,11418,3},{5018,11407,3},{5017,11400,3}, {5008,11387,3},{5008,11378,3},{5002,11357,3},{4997,11348,3},{4993,11345,3}, {4980,11320,3},{4967,11310,3},{4960,11308,3},{4958,11298,3},{4953,11290,3}, {4950,11277,3},{4950,11270,3},{4953,11263,3},{4953,11248,3},{4943,11213,3}, {4940,11197,3},{4940,11183,3},{4940,11168,3},{4935,11153,3},{4935,11148,3}, {4937,11137,3},{4933,11130,3},{4930,11118,3},{4918,11095,3},{4915,11078,3}, {4915,11070,3},{4920,11047,3},{4925,11040,3},{4918,11030,3},{4917,11020,3}, {4918,11008,3},{4920,10990,3},{4918,10985,3},{4923,10975,3},{4923,10955,3}, {4925,10950,3},{4928,10948,3},{4930,10943,3},{4933,10935,3},{4937,10920,3}, {4933,10907,3},{4935,10895,3},{4935,10888,3},{4933,10855,3},{4943,10837,3}, {4953,10827,3},{4955,10815,3},{4958,10807,3},{4962,10803,3},{4967,10803,3}, {4967,10797,3},{4968,10795,3},{4975,10798,3},{4985,10795,3},{4995,10798,3}, {4995,10790,3},{4997,10785,3},{4995,10782,3},{4998,10775,3},{4998,10742,3}, {5002,10732,3},{5000,10727,3},{5003,10718,3},{5005,10715,3},{5008,10708,3}, {5015,10703,3},{5020,10700,3},{5033,10673,3},{5035,10655,3},{5030,10625,3}, {5033,10617,3},{5035,10607,3},{5038,10607,3},{5042,10598,3},{5043,10585,3}, {5043,10580,3},{5043,10563,3},{5048,10535,3},{5047,10528,3},{5042,10518,3}, {5040,10512,3},{5040,10502,3},{5037,10490,3},{5035,10483,3},{5035,10472,3}, {5030,10463,3},{5030,10442,3},{5025,10435,3},{5023,10430,3},{5020,10427,3}, {5017,10425,3},{5013,10407,3},{5020,10382,3},{5015,10373,3},{5013,10367,3}, {5020,10347,3},{5020,10332,3},{5022,10328,3},{5030,10325,3},{5032,10318,3}, {5030,10300,3},{5032,10292,3},{5038,10278,3},{5042,10262,3},{5052,10253,3}, {5053,10248,3},{5055,10237,3},{5057,10233,3},{5065,10230,3},{5072,10235,3}, {5075,10233,3},{5078,10227,3},{5083,10223,3},{5085,10223,3},{5090,10227,3}, {5095,10223,3},{5098,10225,3},{5112,10217,3},{5120,10218,3},{5125,10215,3}, {5130,10223,3},{5133,10222,3},{5138,10208,3},{5140,10200,3},{5142,10193,3}, {5143,10182,3},{5145,10177,3},{5145,10167,3},{5148,10158,3},{5145,10138,3}, {5152,10127,3},{5153,10115,3},{5157,10110,3},{5170,10070,3},{5172,10060,3}, {5173,10055,3},{5173,10025,3},{5175,9995,3},{5178,9988,3},{5188,9973,3}, {5190,9957,3},{5195,9932,3},{5200,9925,3},{5207,9903,3},{5212,9900,3},{5215,9893,3}, {5212,9888,3},{5203,9887,3},{5183,9870,3},{5178,9862,3},{5172,9833,3},{5158,9825,3}, {5152,9827,3},{5145,9823,3},{5145,9820,3},{5147,9812,3},{5145,9805,3},{5132,9793,3}, {5122,9797,3},{5117,9792,3},{5107,9788,3},{5100,9783,3},{5093,9788,3},{5090,9795,3}, {5087,9797,3},{5085,9802,3},{5078,9797,3},{5063,9807,3},{5057,9817,3},{5057,9827,3}, {5052,9832,3},{5047,9833,3},{5040,9828,3},{5030,9828,3},{5005,9810,3},{4998,9795,3}, {4993,9787,3},{4997,9778,3},{4993,9760,3},{4992,9758,3},{4988,9760,3},{4985,9758,3}, {4978,9748,3},{4973,9733,3},{4973,9728,3},{4977,9717,3},{4980,9715,3},{4982,9708,3}, {4990,9700,3},{4992,9672,3},{4987,9662,3},{4987,9660,3},{4993,9655,3},{4993,9650,3}, {4990,9638,3},{4995,9630,3},{5000,9607,3},{4995,9597,3},{5002,9590,3},{5002,9583,3}, {4995,9575,3},{4993,9560,3},{4990,9553,3},{4995,9542,3},{4995,9508,3},{5002,9502,3}, {5005,9498,3},{5007,9483,3},{5002,9463,3},{5007,9460,3},{5012,9453,3},{5017,9452,3}, {5018,9442,3},{5022,9438,3},{5030,9437,3},{5042,9435,3},{5050,9430,3},{5055,9430,3}, {5057,9428,3},{5058,9355,3},{5062,9343,3},{5060,9335,3},{5062,9322,3},{5060,9310,3}, {5062,9302,3},{5063,9302,3},{5065,9297,3},{5075,9300,3},{5078,9298,3},{5080,9280,3}, {5072,9277,3},{5068,9270,3},{5068,9267,3},{5075,9257,3},{5078,9247,3},{5087,9242,3}, {5087,9238,3},{5085,9233,3},{5075,9230,3},{5070,9222,3},{5068,9212,3},{5072,9192,3}, {5070,9178,3},{5065,9167,3},{5057,9160,3},{5053,9147,3},{5048,9145,3},{5047,9143,3}, {5048,9130,3},{5043,9117,3},{5043,9103,3},{5033,9087,3},{5030,9075,3},{5025,9073,3}, {5022,9070,3},{5022,9065,3},{5022,9052,3},{5018,9045,3},{5018,9035,3},{5012,9025,3}, {5008,9005,3},{5005,9002,3},{5000,9002,3},{4997,8998,3},{4995,8990,3},{4995,8978,3}, {4992,8967,3},{4990,8963,3},{4985,8963,3},{4982,8967,3},{4980,8965,3},{4975,8973,3}, {4972,8973,3},{4968,8963,3},{4965,8947,3},{4958,8938,3},{4963,8927,3},{4963,8923,3}, {4962,8920,3},{4957,8923,3},{4953,8923,3},{4950,8918,3},{4947,8902,3},{4947,8898,3}, {4953,8895,3},{4955,8892,3},{4953,8888,3},{4947,8888,3},{4947,8890,3},{4945,8890,3}, {4943,8885,3},{4945,8873,3},{4950,8865,3},{4948,8857,3},{4948,8835,3},{4947,8822,3}, {4937,8813,3},{4930,8817,3},{4927,8817,3},{4923,8805,3},{4918,8798,3},{4917,8783,3}, {4917,8772,3},{4913,8760,3},{4913,8753,3},{4910,8750,3},{4908,8743,3},{4910,8732,3}, {4917,8730,3},{4922,8727,3},{4925,8718,3},{4925,8710,3},{4925,8705,3},{4930,8700,3}, {4930,8697,3},{4935,8690,3},{4940,8692,3},{4945,8682,3},{4950,8682,3},{4953,8678,3}, {4957,8672,3},{4957,8667,3},{4962,8662,3},{4967,8665,3},{4970,8675,3},{4972,8678,3}, {4980,8680,3},{4980,8672,3},{4980,8665,3},{4980,8662,3},{4975,8660,3},{4972,8653,3}, {4968,8647,3},{4962,8638,3},{4960,8630,3},{4958,8625,3},{4953,8623,3},{4952,8620,3}, {4947,8617,3},{4952,8612,3},{4952,8603,3},{4948,8598,3},{4950,8595,3},{4955,8593,3}, {4955,8585,3},{4957,8577,3},{4955,8570,3},{4958,8562,3},{4960,8555,3},{4958,8545,3}, {4957,8543,3},{4957,8537,3},{4960,8533,3},{4958,8528,3},{4963,8522,3},{4970,8520,3}, {4975,8518,3},{4983,8512,3},{4988,8510,3},{4990,8502,3},{4993,8498,3},{5000,8498,3}, {5000,8502,3},{5005,8502,3},{5008,8493,3},{5010,8485,3},{5013,8480,3},{5017,8470,3}, {5018,8462,3},{5022,8452,3},{5025,8450,3},{5025,8447,3},{5022,8437,3},{5022,8433,3}, {5027,8427,3},{5030,8423,3},{5035,8425,3},{5043,8422,3},{5050,8423,3},{5055,8420,3}, {5060,8412,3},{5067,8405,3},{5070,8400,3},{5075,8397,3},{5082,8392,3},{5087,8383,3}, {5090,8372,3},{5092,8365,3},{5095,8358,3},{5095,8348,3},{5098,8342,3},{5102,8343,3}, {5100,8335,3},{5102,8325,3},{5100,8320,3},{5102,8312,3},{5095,8308,3},{5092,8302,3}, {5090,8293,3},{5093,8282,3},{5093,8273,3},{5087,8272,3},{5082,8270,3},{5077,8257,3}, {5077,8248,3},{5078,8238,3},{5078,8228,3},{5075,8222,3},{5075,8212,3},{5080,8203,3}, {5080,8195,3},{5080,8183,3},{5082,8180,3},{5077,8177,3},{5077,8168,3},{5075,8160,3}, {5075,8148,3},{5077,8145,3},{5082,8147,3},{5087,8147,3},{5087,8143,3},{5093,8143,3}, {5098,8140,3},{5097,8130,3},{5095,8122,3},{5095,8112,3},{5095,8107,3},{5100,8108,3}, {5105,8110,3},{5115,8115,3},{5120,8113,3},{5117,8107,3},{5122,8093,3},{5125,8093,3}, {5127,8085,3},{5130,8075,3},{5130,8065,3},{5125,8063,3},{5122,8063,3},{5120,8062,3}, {5122,8048,3},{5122,8045,3},{5113,8043,3},{5108,8048,3},{5102,8047,3},{5097,8047,3}, {5097,8043,3},{5093,8038,3},{5093,8027,3},{5090,8020,3},{5083,8020,3},{5083,8010,3}, {5085,8007,3},{5078,8007,3},{5077,8008,3},{5082,8003,3},{5088,7998,3},{5093,7993,3}, {5100,7990,3},{5108,7982,3},{5115,7978,3},{5125,7970,3},{5130,7967,3},{5137,7962,3}, {5142,7957,3},{5147,7953,3},{5152,7950,3},{5158,7945,3},{5163,7940,3},{5170,7937,3}, {5175,7932,3},{5182,7927,3},{5187,7922,3},{5193,7917,3},{5200,7912,3},{5207,7905,3}, {5213,7900,3},{5217,7895,3},{5223,7890,3},{5232,7885,3},{5237,7880,3},{5243,7873,3}, {5248,7868,3},{5255,7862,3},{5260,7858,3},{5263,7853,3},{5270,7848,3},{5275,7845,3}, {5285,7835,3},{5292,7828,3},{5295,7825,3},{5300,7820,3},{5307,7812,3},{5312,7807,3}, {5317,7802,3},{5322,7798,3},{5327,7793,3},{5332,7787,3},{5337,7777,3},{5342,7770,3}, {5345,7762,3},{5352,7752,3},{5357,7740,3},{5360,7733,3},{5363,7725,3},{5367,7718,3}, {5372,7707,3},{5375,7700,3},{5380,7690,3},{5383,7683,3},{5387,7677,3},{5392,7667,3}, {5397,7658,3},{5402,7653,3},{5408,7650,3},{5413,7643,3},{5415,7642,3},{5417,7643,3}, {5417,7652,3},{5417,7662,3},{5413,7663,3},{5415,7672,3},{5420,7677,3},{5423,7685,3}, {5430,7687,3},{5435,7687,3},{5438,7678,3},{5442,7688,3},{5443,7693,3},{5445,7693,3}, {5442,7678,3},{5442,7675,3},{5437,7668,3},{5435,7658,3},{5433,7650,3},{5433,7640,3}, {5433,7630,3},{5435,7625,3},{5430,7620,3},{5425,7615,3},{5423,7607,3},{5420,7597,3}, {5418,7588,3},{5415,7580,3},{5413,7570,3},{5410,7562,3},{5412,7553,3},{5408,7542,3}, {5403,7545,3},{5398,7547,3},{5395,7538,3},{5392,7532,3},{5388,7523,3},{5385,7517,3}, {5380,7507,3},{5378,7503,3},{5382,7493,3},{5382,7485,3},{5382,7482,3},{5377,7478,3}, {5375,7468,3},{5370,7467,3},{5367,7465,3},{5368,7455,3},{5368,7447,3},{5360,7443,3}, {5358,7448,3},{5347,7442,3},{5347,7440,3},{5348,7428,3},{5355,7427,3},{5360,7425,3}, {5360,7418,3},{5355,7415,3},{5355,7407,3},{5363,7407,3},{5365,7395,3},{5365,7390,3}, {5360,7385,3},{5362,7375,3},{5362,7367,3},{5357,7365,3},{5357,7360,3},{5350,7355,3}, {5345,7345,3},{5348,7338,3},{5353,7340,3},{5355,7333,3},{5357,7325,3},{5365,7328,3}, {5368,7327,3},{5368,7332,3},{5375,7335,3},{5380,7335,3},{5382,7345,3},{5385,7343,3}, {5388,7345,3},{5387,7358,3},{5387,7368,3},{5392,7372,3},{5400,7373,3},{5405,7375,3}, {5407,7363,3},{5403,7360,3},{5400,7352,3},{5395,7353,3},{5398,7345,3},{5398,7342,3}, {5397,7342,3},{5395,7332,3},{5397,7322,3},{5398,7308,3},{5405,7305,3},{5405,7298,3}, {5410,7298,3},{5410,7283,3},{5413,7275,3},{5413,7260,3},{5408,7253,3},{5405,7252,3}, {5405,7262,3},{5405,7265,3},{5400,7272,3},{5398,7272,3},{5395,7272,3},{5398,7255,3}, {5392,7250,3},{5393,7240,3},{5395,7238,3},{5403,7242,3},{5408,7237,3},{5410,7237,3}, {5412,7245,3},{5412,7248,3},{5413,7250,3},{5415,7240,3},{5418,7230,3},{5423,7232,3}, {5425,7228,3},{5432,7227,3},{5437,7218,3},{5437,7207,3},{5433,7207,3},{5428,7213,3}, {5425,7208,3},{5420,7217,3},{5418,7220,3},{5413,7217,3},{5415,7210,3},{5420,7207,3}, {5423,7190,3},{5425,7177,3},{5420,7173,3},{5415,7175,3},{5412,7168,3},{5412,7158,3}, {5412,7152,3},{5417,7148,3},{5418,7140,3},{5418,7132,3},{5412,7122,3},{5412,7117,3}, {5418,7113,3},{5422,7107,3},{5427,7110,3},{5430,7102,3},{5435,7102,3},{5432,7115,3}, {5432,7118,3},{5438,7123,3},{5445,7120,3},{5450,7120,3},{5458,7120,3},{5462,7130,3}, {5467,7130,3},{5470,7120,3},{5473,7110,3},{5478,7105,3},{5485,7103,3},{5490,7100,3}, {5498,7102,3},{5505,7102,3},{5512,7098,3},{5517,7093,3},{5523,7085,3},{5528,7083,3}, {5530,7073,3},{5527,7065,3},{5527,7053,3},{5528,7048,3},{5527,7045,3},{5522,7042,3}, {5518,7032,3},{5513,7023,3},{5513,7013,3},{5518,7005,3},{5520,7000,3},{5522,6992,3}, {5528,6988,3},{5532,6980,3},{5533,6968,3},{5535,6960,3},{5533,6948,3},{5537,6940,3}, {5535,6927,3},{5533,6920,3},{5538,6913,3},{5542,6905,3},{5543,6895,3},{5537,6892,3}, {5533,6900,3},{5528,6900,3},{5532,6890,3},{5535,6882,3},{5533,6872,3},{5528,6870,3}, {5523,6863,3},{5518,6862,3},{5520,6852,3},{5520,6840,3},{5518,6835,3},{5518,6825,3}, {5518,6822,3},{5518,6818,3},{5513,6820,3},{5508,6827,3},{5502,6822,3},{5497,6822,3}, {5495,6810,3},{5495,6802,3},{5497,6793,3},{5497,6785,3},{5492,6778,3},{5487,6772,3}, {5485,6763,3},{5483,6755,3},{5485,6743,3},{5487,6735,3},{5487,6732,3},{5482,6727,3}, {5480,6717,3},{5478,6707,3},{5478,6695,3},{5477,6685,3},{5475,6675,3},{5473,6673,3}, {5472,6660,3},{5472,6652,3},{5470,6640,3},{5468,6630,3},{5465,6618,3},{5463,6605,3}, {5462,6597,3},{5470,6597,3},{5470,6587,3},{5465,6582,3},{5460,6577,3},{5463,6567,3}, {5463,6558,3},{5465,6550,3},{5465,6547,3},{5458,6548,3},{5457,6548,3},{5458,6538,3}, {5457,6528,3},{5453,6522,3},{5445,6518,3},{5440,6523,3},{5433,6522,3},{5433,6512,3}, {5440,6503,3},{5442,6495,3},{5438,6485,3},{5435,6475,3},{5440,6475,3},{5440,6465,3}, {5437,6457,3},{5437,6448,3},{5433,6445,3},{5433,6435,3},{5432,6427,3},{5432,6417,3}, {5432,6408,3},{5428,6402,3},{5430,6402,3},{5432,6400,3},{5428,6398,3},{5428,6388,3}, {5427,6380,3},{5425,6372,3},{5423,6363,3},{5422,6355,3},{5420,6345,3},{5420,6333,3}, {5420,6325,3},{5418,6317,3},{5413,6317,3},{5410,6308,3},{5410,6298,3},{5412,6288,3}, {5412,6283,3},{5407,6277,3},{5403,6270,3},{5400,6263,3},{5397,6258,3},{5392,6257,3}, {5390,6253,3},{5393,6245,3},{5398,6242,3},{5402,6248,3},{5405,6242,3},{5403,6233,3}, {5403,6225,3},{5403,6213,3},{5405,6210,3},{5403,6202,3},{5398,6203,3},{5397,6205,3}, {5395,6195,3},{5397,6187,3},{5402,6190,3},{5403,6185,3},{5398,6180,3},{5403,6173,3}, {5400,6163,3},{5397,6163,3},{5395,6162,3},{5400,6157,3},{5403,6150,3},{5408,6147,3}, {5408,6137,3},{5408,6133,3},{5403,6125,3},{5398,6128,3},{5393,6125,3},{5392,6125,3}, {5392,6120,3},{5395,6117,3},{5395,6107,3},{5395,6103,3},{5390,6098,3},{5388,6107,3}, {5388,6112,3},{5385,6118,3},{5382,6122,3},{5377,6118,3},{5372,6112,3},{5370,6105,3}, {5365,6105,3},{5367,6093,3},{5362,6092,3},{5362,6102,3},{5360,6110,3},{5357,6117,3}, {5357,6127,3},{5357,6135,3},{5360,6143,3},{5358,6152,3},{5353,6158,3},{5350,6158,3}, {5347,6152,3},{5347,6142,3},{5348,6138,3},{5350,6130,3},{5350,6127,3},{5343,6123,3}, {5340,6117,3},{5332,6117,3},{5327,6125,3},{5327,6133,3},{5325,6143,3},{5322,6152,3}, {5322,6162,3},{5325,6167,3},{5322,6173,3},{5317,6180,3},{5313,6190,3},{5313,6198,3}, {5312,6208,3},{5312,6212,3},{5307,6213,3},{5300,6213,3},{5297,6207,3},{5295,6198,3}, {5302,6190,3},{5300,6180,3},{5300,6172,3},{5297,6165,3},{5300,6158,3},{5303,6150,3}, {5303,6147,3},{5300,6140,3},{5300,6132,3},{5303,6123,3},{5300,6115,3},{5297,6112,3}, {5298,6103,3},{5293,6107,3},{5288,6102,3},{5283,6095,3},{5280,6088,3},{5277,6083,3}, {5275,6073,3},{5270,6072,3},{5265,6075,3},{5263,6083,3},{5258,6085,3},{5252,6085,3}, {5250,6093,3},{5250,6097,3},{5243,6100,3},{5237,6105,3},{5230,6100,3},{5227,6093,3}, {5223,6085,3},{5223,6080,3},{5218,6075,3},{5217,6067,3},{5217,6055,3},{5213,6047,3}, {5210,6040,3},{5203,6033,3},{5200,6023,3},{5200,6015,3},{5198,6007,3},{5193,6005,3}, {5188,6010,3},{5187,6018,3},{5188,6018,3},{5190,6017,3},{5188,6025,3},{5185,6033,3}, {5182,6040,3},{5180,6052,3},{5173,6045,3},{5170,6040,3},{5165,6048,3},{5162,6060,3}, {5162,6070,3},{5162,6078,3},{5162,6090,3},{5155,6093,3},{5150,6097,3},{5147,6103,3}, {5145,6112,3},{5145,6113,3},{5145,6118,3},{5142,6128,3},{5140,6138,3},{5143,6145,3}, {5140,6152,3},{5133,6155,3},{5130,6163,3},{5127,6168,3},{5125,6158,3},{5118,6157,3}, {5113,6155,3},{5103,6152,3},{5098,6150,3},{5090,6148,3},{5083,6147,3},{5078,6138,3}, {5075,6125,3},{5073,6118,3},{5070,6103,3},{5068,6093,3},{5067,6083,3},{5067,6068,3}, {5067,6058,3},{5067,6048,3},{5068,6038,3},{5070,6032,3},{5075,6023,3},{5080,6018,3}, {5083,6018,3},{5087,6008,3},{5083,6000,3},{5082,6000,3},{5077,5997,3},{5070,5993,3}, {5065,5990,3},{5060,5983,3},{5057,5972,3},{5053,5962,3},{5052,5953,3},{5058,5952,3}, {5065,5948,3},{5065,5938,3},{5067,5930,3},{5065,5928,3},{5068,5918,3},{5070,5903,3}, {5070,5895,3},{5072,5887,3},{5075,5885,3},{5078,5878,3},{5083,5878,3},{5083,5870,3}, {5082,5862,3},{5088,5857,3},{5093,5857,3},{5100,5860,3},{5107,5857,3},{5108,5848,3}, {5108,5840,3},{5108,5837,3},{5115,5833,3},{5117,5830,3},{5113,5822,3},{5110,5822,3}, {5107,5818,3},{5108,5810,3},{5110,5810,3},{5112,5810,3},{5113,5808,3},{5110,5802,3}, {5110,5793,3},{5112,5785,3},{5113,5783,3},{5113,5780,3},{5113,5778,3},{5108,5775,3}, {5100,5775,3},{5093,5773,3},{5092,5772,3},{5092,5768,3},{5095,5765,3},{5093,5757,3}, {5092,5753,3},{5088,5753,3},{5088,5743,3},{5093,5735,3},{5098,5732,3},{5102,5727,3}, {5107,5720,3},{5110,5718,3},{5107,5708,3},{5105,5700,3},{5107,5698,3},{5105,5690,3}, {5108,5682,3},{5108,5673,3},{5102,5673,3},{5097,5673,3},{5098,5665,3},{5103,5658,3}, {5107,5653,3},{5108,5652,3},{5108,5650,3},{5105,5647,3},{5098,5648,3},{5098,5647,3}, {5097,5640,3},{5092,5638,3},{5092,5630,3},{5093,5622,3},{5092,5617,3},{5085,5615,3}, {5080,5613,3},{5075,5612,3},{5072,5603,3},{5068,5595,3},{5065,5587,3},{5062,5577,3}, {5058,5572,3},{5057,5570,3},{5060,5562,3},{5063,5553,3},{5067,5548,3},{5067,5540,3}, {5065,5538,3},{5070,5530,3},{5075,5522,3},{5078,5515,3},{5082,5507,3},{5087,5510,3}, {5090,5510,3},{5093,5505,3},{5092,5502,3},{5088,5500,3},{5087,5492,3},{5085,5490,3}, {5085,5485,3},{5088,5483,3},{5088,5473,3},{5088,5472,3},{5082,5467,3},{5075,5467,3}, {5068,5472,3},{5063,5473,3},{5058,5465,3},{5055,5463,3},{5053,5453,3},{5053,5450,3}, {5058,5447,3},{5063,5442,3},{5068,5445,3},{5073,5445,3},{5078,5447,3},{5083,5452,3}, {5087,5445,3},{5088,5432,3},{5093,5425,3},{5098,5420,3},{5102,5417,3},{5103,5420,3}, {5105,5415,3},{5112,5413,3},{5113,5407,3},{5117,5403,3},{5118,5395,3},{5120,5387,3}, {5120,5378,3},{5120,5375,3},{5123,5368,3},{5127,5365,3},{5132,5362,3},{5137,5363,3}, {5142,5358,3},{5143,5350,3},{5148,5345,3},{5152,5338,3},{5150,5330,3},{5150,5322,3}, {5152,5318,3},{5153,5320,3},{5153,5315,3},{5150,5317,3},{5148,5312,3},{5148,5310,3}, {5148,5305,3},{5148,5297,3},{5147,5297,3},{5148,5295,3},{5150,5293,3},{5148,5292,3}, {5148,5288,3},{5150,5288,3},{5150,5280,3},{5153,5278,3},{5150,5275,3},{5148,5268,3}, {5147,5270,3},{5148,5267,3},{5145,5263,3},{5147,5260,3},{5147,5257,3},{5150,5252,3}, {5155,5250,3},{5162,5245,3},{5165,5238,3},{5175,5237,3},{5177,5235,3},{5177,5233,3}, {5172,5228,3},{5172,5218,3},{5167,5213,3},{5167,5205,3},{5167,5197,3},{5168,5185,3}, {5163,5180,3},{5158,5175,3},{5153,5180,3},{5148,5172,3},{5147,5163,3},{5153,5163,3}, {5153,5158,3},{5155,5157,3},{5157,5155,3},{5152,5152,3},{5148,5143,3},{5148,5132,3}, {5150,5128,3},{5155,5125,3},{5157,5135,3},{5165,5137,3},{5167,5130,3},{5168,5128,3}, {5168,5118,3},{5167,5107,3},{5168,5097,3},{5168,5088,3},{5173,5087,3},{5177,5077,3}, {5177,5075,3},{5170,5073,3},{5167,5080,3},{5160,5078,3},{5157,5068,3},{5157,5067,3}, {5163,5072,3},{5165,5062,3},{5165,5060,3},{5160,5055,3},{5160,5052,3},{5155,5050,3}, {5148,5052,3},{5147,5047,3},{5145,5047,3},{5143,5037,3},{5138,5033,3},{5132,5030,3}, {5130,5022,3},{5128,5012,3},{5125,5000,3},{5120,4987,3},{5115,4980,3},{5112,4973,3}, {5112,4963,3},{5112,4955,3},{5112,4947,3},{5113,4942,3},{5110,4937,3},{5103,4935,3}, {5100,4932,3},{5093,4940,3},{5088,4942,3},{5083,4933,3},{5083,4925,3},{5080,4915,3}, {5077,4907,3},{5072,4902,3},{5067,4895,3},{5063,4887,3},{5060,4882,3},{5062,4872,3}, {5067,4863,3},{5067,4860,3},{5065,4855,3},{5062,4857,3},{5058,4863,3},{5047,4867,3}, {5042,4867,3},{5033,4868,3},{5025,4872,3},{5020,4877,3},{5013,4877,3},{5010,4877,3}, {5008,4885,3},{5002,4888,3},{4997,4880,3},{4993,4873,3},{4990,4865,3},{4988,4857,3}, {4983,4843,3},{4982,4843,3},{4983,4838,3},{4983,4835,3},{4987,4830,3},{4987,4828,3}, {4987,4825,3},{4987,4822,3},{4993,4818,3},{5000,4813,3},{5005,4812,3},{5010,4808,3}, {5013,4802,3},{5018,4797,3},{5023,4792,3},{5028,4785,3},{5033,4780,3},{5037,4773,3}, {5040,4767,3},{5045,4758,3},{5045,4752,3},{5042,4745,3},{5037,4740,3},{5033,4740,3}, {5033,4732,3},{5027,4730,3},{5020,4727,3},{5013,4733,3},{5005,4730,3},{5000,4727,3}, {4993,4717,3},{4988,4700,3},{4987,4692,3},{4980,4688,3},{4975,4687,3},{4968,4687,3}, {4963,4687,3},{4957,4683,3},{4952,4682,3},{4945,4680,3},{4938,4678,3},{4933,4678,3}, {4930,4687,3},{4925,4697,3},{4922,4702,3},{4913,4705,3},{4907,4700,3},{4900,4693,3}, {4897,4685,3},{4893,4678,3},{4885,4672,3},{4880,4670,3},{4875,4667,3},{4868,4663,3}, {4862,4658,3},{4855,4655,3},{4850,4652,3},{4845,4650,3},{4842,4658,3},{4838,4668,3}, {4837,4675,3},{4833,4688,3},{4833,4692,3},{4827,4700,3},{4822,4707,3},{4822,4710,3}, {4817,4712,3},{4810,4710,3},{4808,4718,3},{4803,4713,3},{4800,4702,3},{4795,4707,3}, {4790,4712,3},{4785,4715,3},{4782,4712,3},{4777,4717,3},{4772,4727,3},{4768,4735,3}, {4768,4737,3},{4773,4740,3},{4778,4742,3},{4780,4740,3},{4778,4750,3},{4777,4758,3}, {4775,4767,3},{4775,4778,3},{4775,4792,3},{4777,4800,3},{4775,4808,3},{4770,4817,3}, {4763,4822,3},{4758,4827,3},{4750,4832,3},{4747,4837,3},{4742,4843,3},{4742,4853,3}, {4742,4858,3},{4737,4862,3},{4732,4863,3},{4725,4865,3},{4717,4868,3},{4708,4873,3}, {4703,4877,3},{4697,4883,3},{4690,4890,3},{4683,4897,3},{4678,4900,3},{4673,4897,3}, {4670,4892,3},{4668,4883,3},{4668,4875,3},{4673,4870,3},{4677,4865,3},{4677,4858,3}, {4673,4852,3},{4668,4848,3},{4665,4848,3},{4663,4855,3},{4660,4857,3},{4660,4863,3}, {4657,4867,3},{4655,4875,3},{4650,4880,3},{4648,4882,3},{4645,4890,3},{4643,4897,3}, {4640,4903,3},{4638,4910,3},{4637,4917,3},{4638,4922,3},{4635,4922,3},{4630,4923,3}, {4625,4930,3},{4625,4928,3},{4627,4925,3},{4628,4915,3},{4632,4915,3},{4633,4917,3}, {4633,4913,3},{4625,4905,3},{4623,4912,3},{4615,4912,3},{4615,4910,3},{4618,4907,3}, {4620,4903,3},{4617,4902,3},{4617,4898,3},{4613,4893,3},{4610,4895,3},{4608,4895,3}, {4615,4888,3},{4610,4888,3},{4613,4887,3},{4613,4883,3},{4608,4888,3},{4607,4885,3}, {4612,4883,3},{4613,4878,3},{4610,4882,3},{4605,4882,3},{4608,4878,3},{4613,4870,3}, {4612,4870,3},{4612,4867,3},{4608,4867,3},{4608,4863,3},{4607,4870,3},{4602,4873,3}, {4598,4872,3},{4597,4865,3},{4597,4873,3},{4593,4877,3},{4592,4873,3},{4588,4875,3}, {4587,4878,3},{4585,4878,3},{4583,4878,3},{4585,4877,3},{4583,4872,3},{4582,4872,3}, {4587,4868,3},{4588,4870,3},{4588,4867,3},{4595,4860,3},{4597,4857,3},{4593,4850,3}, {4593,4845,3},{4587,4840,3},{4588,4837,3},{4585,4837,3},{4585,4840,3},{4583,4840,3}, {4583,4828,3},{4577,4825,3},{4577,4822,3},{4572,4825,3},{4572,4823,3},{4573,4820,3}, {4573,4815,3},{4572,4813,3},{4575,4807,3},{4572,4803,3},{4570,4800,3},{4572,4798,3}, {4572,4793,3},{4568,4790,3},{4572,4788,3},{4572,4785,3},{4565,4783,3},{4563,4785,3}, {4560,4782,3},{4568,4777,3},{4570,4767,3},{4573,4765,3},{4575,4762,3},{4577,4755,3}, {4573,4755,3},{4575,4758,3},{4572,4758,3},{4572,4763,3},{4567,4763,3},{4567,4760,3}, {4563,4760,3},{4562,4765,3},{4558,4763,3},{4557,4765,3},{4555,4763,3},{4557,4762,3}, {4565,4755,3},{4568,4743,3},{4572,4745,3},{4572,4750,3},{4572,4748,3},{4575,4738,3}, {4567,4742,3},{4563,4755,3},{4557,4757,3},{4553,4755,3},{4558,4750,3},{4557,4748,3}, {4550,4755,3},{4548,4750,3},{4542,4748,3},{4542,4738,3},{4540,4740,3},{4540,4745,3}, {4538,4747,3},{4537,4742,3},{4530,4738,3},{4518,4738,3},{4518,4730,3},{4497,4720,3}, {4497,4717,3},{4493,4715,3},{4495,4710,3},{4487,4712,3},{4478,4708,3},{4485,4702,3}, {4490,4702,3},{4492,4700,3},{4482,4702,3},{4477,4697,3},{4477,4693,3},{4473,4687,3}, {4470,4683,3},{4470,4678,3},{4465,4675,3},{4465,4672,3},{4457,4670,3},{4455,4672,3}, {4452,4668,3},{4445,4670,3},{4440,4677,3},{4438,4680,3},{4440,4683,3},{4437,4702,3}, {4433,4705,3},{4423,4710,3},{4420,4718,3},{4422,4720,3},{4422,4723,3},{4408,4728,3}, {4403,4735,3},{4392,4742,3},{4388,4743,3},{4387,4747,3},{4382,4743,3},{4382,4748,3}, {4377,4750,3},{4373,4743,3},{4368,4745,3},{4362,4740,3},{4360,4738,3},{4362,4737,3}, {4355,4738,3},{4353,4740,3},{4350,4740,3},{4350,4743,3},{4353,4747,3},{4363,4747,3}, {4368,4750,3},{4372,4750,3},{4380,4753,3},{4387,4753,3},{4390,4763,3},{4387,4770,3}, {4383,4765,3},{4372,4758,3},{4357,4753,3},{4352,4753,3},{4345,4748,3},{4330,4748,3}, {4328,4750,3},{4333,4757,3},{4330,4758,3},{4320,4748,3},{4312,4748,3},{4308,4745,3}, {4302,4747,3},{4295,4755,3},{4295,4758,3},{4290,4762,3},{4287,4770,3},{4277,4772,3}, {4272,4770,3},{4263,4773,3},{4260,4787,3},{4247,4795,3},{4238,4802,3},{4233,4812,3}, {4217,4823,3},{4210,4830,3},{4193,4838,3},{4190,4843,3},{4188,4853,3},{4185,4850,3}, {4178,4847,3},{4173,4845,3},{4167,4843,3},{4162,4840,3},{4157,4832,3},{4153,4827,3}, {4150,4820,3},{4150,4812,3},{4148,4805,3},{4143,4803,3},{4138,4798,3},{4135,4793,3}, {4130,4792,3},{4123,4790,3},{4122,4788,3},{4122,4780,3},{4118,4775,3},{4122,4770,3}, {4123,4763,3},{4122,4757,3},{4123,4750,3},{4125,4750,3},{4127,4743,3},{4128,4737,3}, {4130,4730,3},{4132,4727,3},{4138,4725,3},{4142,4722,3},{4148,4718,3},{4152,4717,3}, {4157,4712,3},{4158,4712,3},{4155,4707,3},{4155,4702,3},{4160,4698,3},{4163,4700,3}, {4163,4697,3},{4168,4692,3},{4172,4692,3},{4173,4685,3},{4178,4678,3},{4183,4677,3}, {4185,4677,3},{4187,4675,3},{4183,4670,3},{4182,4662,3},{4180,4658,3},{4182,4655,3}, {4187,4653,3},{4188,4647,3},{4190,4642,3},{4195,4638,3},{4193,4632,3},{4198,4627,3}, {4200,4625,3},{4198,4618,3},{4202,4612,3},{4200,4612,3},{4198,4610,3},{4203,4607,3}, {4203,4605,3},{4203,4597,3},{4203,4595,3},{4207,4590,3},{4212,4587,3},{4212,4580,3}, {4215,4573,3},{4218,4567,3},{4222,4562,3},{4228,4563,3},{4228,4572,3},{4230,4573,3}, {4235,4573,3},{4243,4577,3},{4248,4577,3},{4250,4567,3},{4253,4558,3},{4253,4552,3}, {4255,4545,3},{4253,4537,3},{4253,4535,3},{4257,4530,3},{4262,4527,3},{4267,4520,3}, {4270,4515,3},{4270,4508,3},{4273,4500,3},{4275,4493,3},{4273,4487,3},{4267,4482,3}, {4262,4478,3},{4268,4473,3},{4273,4472,3},{4275,4465,3},{4275,4452,3},{4273,4445,3}, {4272,4440,3},{4272,4432,3},{4268,4425,3},{4263,4422,3},{4262,4417,3},{4262,4408,3}, {4260,4402,3},{4257,4397,3},{4257,4390,3},{4258,4382,3},{4258,4378,3},{4263,4373,3}, {4267,4377,3},{4272,4380,3},{4275,4380,3},{4277,4372,3},{4280,4365,3},{4283,4360,3}, {4287,4355,3},{4288,4348,3},{4290,4340,3},{4290,4333,3},{4292,4327,3},{4293,4320,3}, {4300,4312,3},{4303,4305,3},{4307,4303,3},{4310,4303,3},{4312,4297,3},{4312,4293,3}, {4317,4290,3},{4317,4283,3},{4318,4275,3},{4317,4268,3},{4315,4268,3},{4317,4262,3}, {4318,4255,3},{4320,4248,3},{4322,4247,3},{4323,4247,3},{4325,4245,3},{4325,4238,3}, {4322,4232,3},{4322,4228,3},{4323,4222,3},{4322,4215,3},{4320,4208,3},{4320,4205,3}, {4322,4198,3},{4323,4188,3},{4325,4188,3},{4320,4183,3},{4322,4177,3},{4323,4173,3}, {4322,4172,3},{4322,4163,3},{4325,4157,3},{4327,4152,3},{4330,4143,3},{4335,4142,3}, {4337,4137,3},{4333,4132,3},{4337,4123,3},{4338,4117,3},{4340,4113,3},{4338,4110,3}, {4338,4107,3},{4343,4100,3},{4343,4093,3},{4347,4090,3},{4348,4083,3},{4352,4077,3}, {4353,4070,3},{4355,4068,3},{4357,4065,3},{4352,4058,3},{4353,4052,3},{4355,4045,3}, {4355,4037,3},{4357,4030,3},{4358,4023,3},{4358,4017,3},{4355,4010,3},{4352,4007,3}, {4345,4003,3},{4340,4002,3},{4338,4002,3},{3783,12668,131},{3795,12668,3}, {3795,12675,3},{3800,12680,3},{3810,12688,3},{3813,12695,3},{3822,12698,3}, {3828,12710,3},{3832,12722,3},{3833,12740,3},{3830,12750,3},{3832,12757,3}, {3833,12778,3},{3830,12783,3},{3832,12790,3},{3832,12807,3},{3835,12818,3}, {3843,12828,3},{3850,12832,3},{3858,12830,3},{3862,12837,3},{3830,12855,3}, {3813,12863,3},{3802,12873,3},{3787,12885,3},{3767,12907,3},{3762,12907,3}, {3757,12913,3},{3752,12913,3},{3747,12918,3},{3732,12928,3},{3725,12935,3}, {3715,12935,3},{3707,12943,3},{3702,12942,3},{3695,12942,3},{3687,12943,3}, {3677,12948,3},{3672,12947,3},{3668,12947,3},{3667,12943,3},{3662,12942,3}, {3650,12945,3},{3640,12943,3},{3632,12938,3},{3620,12938,3},{3608,12943,3}, {3603,12938,3},{3600,12942,3},{3600,12945,3},{3608,12955,3},{3602,12958,3}, {3592,12953,3},{3585,12955,3},{3563,12947,3},{3558,12948,3},{3548,12943,3}, {3547,12942,3},{3552,12940,3},{3553,12937,3},{3547,12938,3},{3545,12935,3}, {3542,12937,3},{3538,12935,3},{3535,12937,3},{3530,12928,3},{3518,12923,3}, {3515,12918,3},{3515,12915,3},{3513,12912,3},{3512,12913,3},{3510,12912,3}, {3512,12907,3},{3507,12903,3},{3505,12903,3},{3507,12900,3},{3503,12900,3}, {3503,12897,3},{3513,12898,3},{3510,12893,3},{3510,12892,3},{3512,12890,3}, {3510,12888,3},{3508,12880,3},{3510,12880,3},{3510,12870,3},{3513,12870,3}, {3513,12868,3},{3512,12867,3},{3513,12865,3},{3515,12863,3},{3513,12862,3}, {3520,12862,3},{3522,12860,3},{3517,12857,3},{3505,12865,3},{3505,12860,3}, {3510,12858,3},{3510,12850,3},{3510,12847,3},{3507,12848,3},{3503,12838,3}, {3500,12838,3},{3505,12848,3},{3500,12850,3},{3500,12848,3},{3498,12842,3}, {3497,12845,3},{3488,12843,3},{3488,12845,3},{3490,12845,3},{3488,12847,3}, {3483,12845,3},{3483,12842,3},{3485,12840,3},{3487,12842,3},{3488,12832,3}, {3490,12832,3},{3490,12835,3},{3495,12833,3},{3490,12828,3},{3493,12827,3}, {3493,12823,3},{3492,12820,3},{3488,12820,3},{3490,12815,3},{3488,12813,3}, {3492,12812,3},{3492,12807,3},{3495,12805,3},{3497,12807,3},{3503,12805,3}, {3508,12807,3},{3503,12803,3},{3503,12800,3},{3498,12802,3},{3498,12798,3}, {3498,12795,3},{3502,12793,3},{3497,12792,3},{3493,12787,3},{3495,12773,3}, {3498,12772,3},{3493,12772,3},{3490,12765,3},{3493,12760,3},{3492,12757,3}, {3488,12758,3},{3482,12763,3},{3482,12767,3},{3483,12772,3},{3483,12775,3}, {3485,12777,3},{3482,12777,3},{3472,12775,3},{3472,12770,3},{3473,12765,3}, {3470,12763,3},{3462,12763,3},{3465,12755,3},{3470,12755,3},{3475,12758,3}, {3480,12755,3},{3480,12753,3},{3482,12753,3},{3488,12752,3},{3487,12750,3}, {3483,12748,3},{3482,12737,3},{3480,12742,3},{3477,12740,3},{3477,12735,3}, {3475,12737,3},{3475,12740,3},{3470,12738,3},{3463,12748,3},{3463,12745,3}, {3462,12750,3},{3458,12752,3},{3457,12748,3},{3460,12738,3},{3458,12733,3}, {3453,12737,3},{3453,12743,3},{3447,12738,3},{3447,12733,3},{3443,12733,3}, {3443,12732,3},{3448,12728,3},{3452,12725,3},{3453,12723,3},{3453,12722,3}, {3452,12717,3},{3452,12713,3},{3453,12712,3},{3457,12713,3},{3458,12718,3}, {3463,12720,3},{3457,12720,3},{3457,12725,3},{3462,12727,3},{3467,12723,3}, {3468,12727,3},{3470,12728,3},{3465,12730,3},{3465,12733,3},{3470,12735,3}, {3473,12733,3},{3472,12730,3},{3477,12725,3},{3468,12720,3},{3468,12713,3}, {3465,12710,3},{3462,12700,3},{3453,12698,3},{3450,12693,3},{3445,12695,3}, {3445,12690,3},{3442,12688,3},{3445,12682,3},{3457,12680,3},{3458,12677,3}, {3455,12675,3},{3452,12677,3},{3452,12673,3},{3448,12677,3},{3445,12670,3}, {3443,12673,3},{3443,12668,3},{3442,12668,3},{3440,12663,3},{3430,12660,3}, {3430,12657,3},{3428,12652,3},{3433,12652,3},{3435,12648,3},{3438,12648,3}, {3442,12652,3},{3443,12648,3},{3447,12648,3},{3448,12647,3},{3450,12648,3}, {3450,12653,3},{3453,12652,3},{3455,12653,3},{3457,12653,3},{3455,12647,3}, {3453,12645,3},{3455,12642,3},{3453,12640,3},{3455,12638,3},{3455,12637,3}, {3458,12635,3},{3457,12632,3},{3458,12628,3},{3460,12630,3},{3460,12632,3}, {3462,12632,3},{3463,12628,3},{3468,12627,3},{3475,12630,3},{3470,12635,3}, {3465,12635,3},{3462,12637,3},{3460,12638,3},{3458,12645,3},{3460,12648,3}, {3462,12643,3},{3465,12642,3},{3465,12638,3},{3470,12640,3},{3468,12645,3}, {3465,12645,3},{3462,12652,3},{3462,12653,3},{3463,12653,3},{3462,12662,3}, {3463,12658,3},{3472,12650,3},{3473,12642,3},{3472,12638,3},{3473,12637,3}, {3477,12640,3},{3475,12645,3},{3477,12648,3},{3475,12653,3},{3477,12653,3}, {3480,12655,3},{3478,12663,3},{3480,12663,3},{3482,12667,3},{3482,12658,3}, {3485,12657,3},{3488,12658,3},{3490,12658,3},{3488,12653,3},{3485,12655,3}, {3478,12652,3},{3478,12650,3},{3482,12648,3},{3478,12638,3},{3480,12637,3}, {3485,12642,3},{3487,12640,3},{3488,12642,3},{3490,12640,3},{3495,12640,3}, {3497,12643,3},{3498,12640,3},{3497,12637,3},{3493,12637,3},{3492,12635,3}, {3493,12632,3},{3495,12632,3},{3497,12630,3},{3497,12635,3},{3498,12633,3}, {3500,12638,3},{3503,12637,3},{3508,12630,3},{3505,12632,3},{3505,12630,3}, {3505,12627,3},{3508,12628,3},{3512,12625,3},{3513,12628,3},{3512,12632,3}, {3515,12635,3},{3513,12635,3},{3510,12633,3},{3507,12637,3},{3507,12640,3}, {3503,12640,3},{3502,12643,3},{3508,12647,3},{3512,12642,3},{3518,12637,3}, {3520,12638,3},{3522,12637,3},{3523,12637,3},{3523,12632,3},{3525,12632,3}, {3525,12638,3},{3525,12635,3},{3528,12638,3},{3533,12638,3},{3537,12642,3}, {3533,12645,3},{3540,12642,3},{3552,12650,3},{3553,12653,3},{3553,12662,3}, {3555,12665,3},{3553,12668,3},{3558,12667,3},{3558,12650,3},{3562,12647,3}, {3563,12647,3},{3575,12665,3},{3575,12667,3},{3572,12668,3},{3577,12670,3}, {3578,12675,3},{3577,12678,3},{3580,12678,3},{3585,12670,3},{3587,12673,3}, {3587,12680,3},{3590,12683,3},{3588,12673,3},{3590,12665,3},{3588,12662,3}, {3593,12662,3},{3597,12663,3},{3598,12675,3},{3602,12677,3},{3603,12685,3}, {3605,12687,3},{3603,12677,3},{3600,12673,3},{3600,12668,3},{3607,12663,3}, {3608,12665,3},{3610,12662,3},{3612,12660,3},{3613,12652,3},{3612,12650,3}, {3615,12652,3},{3617,12660,3},{3620,12658,3},{3620,12655,3},{3622,12653,3}, {3630,12658,3},{3630,12653,3},{3632,12652,3},{3635,12658,3},{3637,12657,3}, {3637,12652,3},{3640,12650,3},{3640,12652,3},{3642,12650,3},{3647,12662,3}, {3647,12657,3},{3643,12652,3},{3645,12648,3},{3650,12648,3},{3653,12652,3}, {3653,12647,3},{3657,12647,3},{3658,12647,3},{3660,12653,3},{3663,12652,3}, {3665,12650,3},{3667,12652,3},{3668,12648,3},{3672,12650,3},{3675,12647,3}, {3672,12645,3},{3672,12643,3},{3670,12643,3},{3665,12642,3},{3663,12638,3}, {3670,12638,3},{3673,12635,3},{3670,12633,3},{3670,12630,3},{3665,12633,3}, {3662,12633,3},{3662,12635,3},{3658,12630,3},{3663,12630,3},{3668,12627,3}, {3668,12628,3},{3672,12627,3},{3668,12623,3},{3667,12617,3},{3670,12617,3}, {3670,12622,3},{3673,12620,3},{3673,12618,3},{3675,12620,3},{3675,12615,3}, {3672,12615,3},{3670,12613,3},{3677,12612,3},{3680,12617,3},{3678,12618,3}, {3677,12620,3},{3680,12620,3},{3680,12623,3},{3682,12620,3},{3685,12622,3}, {3688,12618,3},{3688,12620,3},{3690,12623,3},{3687,12623,3},{3687,12628,3}, {3695,12628,3},{3697,12630,3},{3688,12632,3},{3685,12630,3},{3683,12632,3}, {3680,12628,3},{3678,12628,3},{3680,12632,3},{3678,12635,3},{3683,12633,3}, {3685,12633,3},{3683,12637,3},{3685,12640,3},{3687,12638,3},{3690,12642,3}, {3692,12642,3},{3695,12635,3},{3697,12635,3},{3697,12637,3},{3697,12638,3}, {3698,12633,3},{3700,12637,3},{3698,12640,3},{3700,12638,3},{3700,12643,3}, {3698,12645,3},{3695,12643,3},{3695,12645,3},{3693,12648,3},{3690,12645,3}, {3683,12648,3},{3690,12650,3},{3695,12652,3},{3690,12658,3},{3695,12655,3}, {3700,12648,3},{3700,12650,3},{3697,12653,3},{3697,12658,3},{3698,12657,3}, {3700,12653,3},{3703,12653,3},{3705,12650,3},{3705,12652,3},{3702,12657,3}, {3697,12662,3},{3692,12663,3},{3695,12665,3},{3697,12668,3},{3698,12670,3}, {3697,12672,3},{3693,12672,3},{3697,12675,3},{3697,12678,3},{3693,12680,3}, {3688,12678,3},{3692,12682,3},{3690,12683,3},{3683,12683,3},{3680,12685,3}, {3677,12683,3},{3675,12685,3},{3680,12687,3},{3682,12687,3},{3683,12687,3}, {3682,12690,3},{3685,12687,3},{3687,12687,3},{3692,12700,3},{3697,12698,3}, {3698,12705,3},{3698,12703,3},{3698,12698,3},{3693,12698,3},{3692,12690,3}, {3700,12682,3},{3700,12688,3},{3702,12687,3},{3702,12692,3},{3703,12692,3}, {3705,12688,3},{3710,12688,3},{3705,12687,3},{3703,12685,3},{3705,12683,3}, {3703,12680,3},{3705,12675,3},{3707,12678,3},{3708,12677,3},{3712,12678,3}, {3713,12687,3},{3715,12687,3},{3718,12687,3},{3717,12680,3},{3718,12680,3}, {3712,12670,3},{3713,12668,3},{3715,12670,3},{3715,12667,3},{3718,12667,3}, {3722,12672,3},{3722,12668,3},{3725,12667,3},{3727,12670,3},{3725,12677,3}, {3722,12678,3},{3727,12680,3},{3728,12682,3},{3727,12687,3},{3730,12685,3}, {3730,12680,3},{3730,12677,3},{3733,12675,3},{3733,12670,3},{3735,12675,3}, {3738,12675,3},{3740,12667,3},{3747,12663,3},{3748,12663,3},{3748,12667,3}, {3752,12665,3},{3758,12665,3},{3760,12662,3},{3762,12658,3},{3765,12655,3}, {3777,12653,3},{3775,12660,3},{3777,12665,3},{3773,12667,3},{3767,12667,3}, {3763,12675,3},{3768,12668,3},{3773,12670,3},{3777,12668,3},{3783,12668,3}, {3782,12667,3},{3778,12665,3},{3777,12658,3},{3785,12643,3},{3788,12640,3}, {3788,12638,3},{3783,12625,3},{3785,12622,3},{3782,12615,3},{3777,12617,3}, {3773,12615,3},{3773,12613,3},{3775,12610,3},{3778,12610,3},{3780,12605,3}, {3787,12605,3},{3785,12602,3},{3790,12598,3},{3790,12597,3},{3788,12595,3}, {3787,12597,3},{3783,12598,3},{3782,12598,3},{3783,12592,3},{3793,12583,3}, {3795,12580,3},{3798,12580,3},{3800,12570,3},{3802,12567,3},{3803,12558,3}, {3802,12557,3},{3798,12560,3},{3798,12562,3},{3797,12565,3},{3798,12568,3}, {3795,12568,3},{3795,12572,3},{3792,12570,3},{3792,12573,3},{3788,12567,3}, {3792,12563,3},{3785,12563,3},{3783,12563,3},{3782,12565,3},{3780,12562,3}, {3778,12562,3},{3775,12562,3},{3777,12558,3},{3778,12558,3},{3778,12555,3}, {3777,12553,3},{3780,12552,3},{3772,12547,3},{3772,12538,3},{3767,12535,3}, {3772,12533,3},{3775,12537,3},{3775,12540,3},{3777,12545,3},{3777,12538,3}, {3778,12538,3},{3780,12538,3},{3782,12543,3},{3782,12548,3},{3780,12550,3}, {3782,12552,3},{3783,12553,3},{3783,12548,3},{3785,12548,3},{3788,12552,3}, {3790,12547,3},{3792,12545,3},{3788,12543,3},{3788,12538,3},{3787,12543,3}, {3785,12545,3},{3787,12537,3},{3785,12535,3},{3785,12538,3},{3780,12532,3}, {3782,12530,3},{3782,12523,3},{3788,12532,3},{3790,12528,3},{3790,12525,3}, {3793,12525,3},{3793,12523,3},{3788,12522,3},{3787,12517,3},{3790,12502,3}, {3793,12502,3},{3792,12498,3},{3795,12500,3},{3797,12507,3},{3797,12510,3}, {3797,12517,3},{3798,12518,3},{3798,12515,3},{3798,12510,3},{3803,12510,3}, {3805,12520,3},{3802,12522,3},{3802,12525,3},{3807,12527,3},{3808,12513,3}, {3807,12502,3},{3808,12495,3},{3812,12492,3},{3813,12488,3},{3810,12487,3}, {3810,12478,3},{3812,12467,3},{3813,12467,3},{3813,12473,3},{3818,12478,3}, {3818,12482,3},{3822,12485,3},{3823,12487,3},{3822,12490,3},{3818,12493,3}, {3822,12498,3},{3823,12497,3},{3822,12492,3},{3825,12487,3},{3833,12487,3}, {3847,12495,3},{3843,12498,3},{3850,12502,3},{3853,12498,3},{3858,12500,3}, {3858,12507,3},{3855,12505,3},{3855,12508,3},{3857,12510,3},{3858,12513,3}, {3862,12513,3},{3865,12512,3},{3867,12512,3},{3862,12518,3},{3867,12520,3}, {3865,12522,3},{3867,12527,3},{3865,12532,3},{3867,12533,3},{3868,12543,3}, {3870,12545,3},{3868,12552,3},{3865,12552,3},{3868,12555,3},{3863,12560,3}, {3863,12565,3},{3865,12563,3},{3865,12560,3},{3870,12553,3},{3872,12548,3}, {3878,12545,3},{3875,12542,3},{3873,12543,3},{3872,12542,3},{3870,12537,3}, {3873,12537,3},{3870,12533,3},{3873,12530,3},{3870,12530,3},{3870,12528,3}, {3872,12523,3},{3875,12527,3},{3878,12523,3},{3880,12523,3},{3873,12522,3}, {3878,12520,3},{3878,12515,3},{3880,12513,3},{3888,12515,3},{3892,12520,3}, {3893,12518,3},{3898,12523,3},{3900,12522,3},{3907,12527,3},{3908,12533,3}, {3912,12528,3},{3915,12528,3},{3917,12533,3},{3918,12533,3},{3922,12537,3}, {3922,12542,3},{3923,12538,3},{3930,12545,3},{3932,12542,3},{3935,12542,3}, {3937,12540,3},{3937,12543,3},{3938,12545,3},{3940,12537,3},{3940,12535,3}, {3943,12538,3},{3943,12535,3},{3945,12533,3},{3948,12538,3},{3953,12540,3}, {3955,12545,3},{3958,12545,3},{3952,12528,3},{3957,12523,3},{3957,12522,3}, {3958,12522,3},{3958,12517,3},{3957,12517,3},{3955,12512,3},{3960,12510,3}, {3960,12505,3},{3963,12500,3},{3963,12497,3},{3967,12495,3},{3965,12493,3}, {3965,12492,3},{3970,12488,3},{3972,12485,3},{3972,12480,3},{3978,12475,3}, {3977,12473,3},{3973,12475,3},{3970,12473,3},{3968,12475,3},{3963,12475,3}, {3963,12470,3},{3960,12462,3},{3962,12462,3},{3968,12465,3},{3972,12458,3}, {3977,12458,3},{3978,12457,3},{3982,12457,3},{3982,12442,3},{3987,12440,3}, {3987,12437,3},{3992,12432,3},{3993,12437,3},{4002,12438,3},{4002,12443,3}, {4002,12447,3},{4002,12450,3},{4005,12438,3},{4010,12437,3},{4022,12455,3}, {4025,12455,3},{4028,12462,3},{4030,12472,3},{4037,12475,3},{4042,12483,3}, {4048,12488,3},{4045,12492,3},{4045,12503,3},{4047,12505,3},{4052,12500,3}, {4053,12503,3},{4055,12508,3},{4058,12515,3},{4060,12525,3},{4062,12525,3}, {4065,12528,3},{4065,12532,3},{4063,12533,3},{4063,12537,3},{4062,12540,3}, {4067,12542,3},{4067,12547,3},{4072,12547,3},{4072,12555,3},{4077,12555,3}, {4078,12558,3},{4077,12560,3},{4075,12562,3},{4077,12568,3},{4080,12565,3}, {4082,12565,3},{4087,12570,3},{4087,12573,3},{4088,12577,3},{4087,12582,3}, {4090,12588,3},{4090,12592,3},{4088,12593,3},{4090,12602,3},{4092,12598,3}, {4093,12603,3},{4097,12607,3},{4100,12607,3},{4100,12610,3},{4102,12610,3}, {4105,12613,3},{4108,12612,3},{4110,12618,3},{4115,12628,3},{4122,12632,3}, {4123,12635,3},{4127,12637,3},{4135,12645,3},{4137,12650,3},{4133,12650,3}, {4135,12653,3},{4143,12650,3},{4150,12655,3},{4157,12658,3},{4162,12657,3}, {4163,12660,3},{4167,12662,3},{4167,12667,3},{4170,12672,3},{4172,12668,3}, {4173,12670,3},{4170,12678,3},{4173,12680,3},{4173,12685,3},{4178,12690,3}, {4180,12693,3},{4177,12693,3},{4173,12703,3},{4168,12708,3},{4167,12703,3}, {4165,12703,3},{4163,12710,3},{4162,12710,3},{4160,12713,3},{4158,12718,3}, {4153,12710,3},{4152,12713,3},{4153,12717,3},{4152,12718,3},{4152,12722,3}, {4150,12723,3},{4150,12728,3},{4147,12727,3},{4147,12753,3},{4143,12755,3}, {4140,12763,3},{4142,12765,3},{4140,12785,3},{4143,12787,3},{4143,12790,3}, {4145,12793,3},{4142,12798,3},{4145,12800,3},{4142,12802,3},{4140,12802,3}, {4142,12805,3},{4138,12805,3},{4138,12808,3},{4140,12810,3},{4137,12812,3}, {4142,12820,3},{4158,12830,3},{4165,12827,3},{4170,12817,3},{4177,12813,3}, {4180,12810,3},{4192,12807,3},{4200,12807,3},{4203,12833,3},{4203,12842,3}, {4200,12847,3},{4200,12850,3},{4200,12857,3},{4202,12860,3},{4203,12863,3}, {4202,12868,3},{4205,12873,3},{4202,12893,3},{4208,12895,3},{4210,12903,3}, {4213,12907,3},{4213,12912,3},{4222,12922,3},{4223,12920,3},{4223,12918,3}, {4230,12922,3},{4232,12918,3},{4232,12923,3},{4233,12923,3},{4235,12922,3}, {4237,12923,3},{4238,12930,3},{4242,12930,3},{4242,12935,3},{4243,12933,3}, {4245,12935,3},{4243,12937,3},{4243,12945,3},{4237,12953,3},{4240,12957,3}, {4242,12960,3},{4243,12958,3},{4245,12960,3},{4243,12967,3},{4243,12970,3}, {4248,12973,3},{4257,12973,3},{4260,12977,3},{4262,12975,3},{4263,12975,3}, {4265,12977,3},{4267,12978,3},{4270,12975,3},{4285,12980,3},{4292,12985,3}, {4297,12985,3},{4297,12990,3},{4298,12988,3},{4300,12992,3},{4298,12995,3}, {4295,13005,3},{4298,13010,3},{4297,13013,3},{4292,13010,3},{4290,13025,3}, {4272,13025,3},{4260,13038,3},{4260,13043,3},{4255,13043,3},{4255,13045,3}, {4255,13047,3},{4260,13047,3},{4260,13052,3},{4248,13055,3},{4247,13057,3}, {4243,13057,3},{4242,13060,3},{4238,13065,3},{4232,13065,3},{4228,13068,3}, {4225,13060,3},{4228,13060,3},{4230,13058,3},{4232,13048,3},{4230,13043,3}, {4232,13040,3},{4227,13038,3},{4225,13040,3},{4223,13037,3},{4218,13033,3}, {4218,13030,3},{4222,13030,3},{4217,13022,3},{4210,13020,3},{4208,13017,3}, {4207,13017,3},{4207,13010,3},{4205,13008,3},{4205,13005,3},{4200,13003,3}, {4200,13000,3},{4198,12998,3},{4197,13000,3},{4195,12998,3},{4188,12997,3}, {4190,12990,3},{4187,12988,3},{4180,12988,3},{4177,12985,3},{4175,12978,3}, {4167,12973,3},{4165,12970,3},{4155,12967,3},{4148,12967,3},{4143,12970,3}, {4137,12980,3},{4128,12975,3},{4125,12975,3},{4118,12972,3},{4098,12972,3}, {4093,12975,3},{4083,12972,3},{4082,12957,3},{4078,12953,3},{4078,12948,3}, {4073,12935,3},{4068,12932,3},{4067,12930,3},{4070,12927,3},{4068,12922,3}, {4055,12917,3},{4047,12910,3},{4045,12898,3},{4037,12888,3},{4030,12865,3}, {4027,12863,3},{4022,12868,3},{4018,12865,3},{4017,12860,3},{4013,12852,3}, {4008,12838,3},{4003,12833,3},{4002,12832,3},{4005,12828,3},{4007,12825,3}, {4003,12823,3},{4002,12815,3},{4003,12813,3},{4003,12800,3},{4002,12800,3}, {3997,12793,3},{3997,12790,3},{3988,12787,3},{3988,12778,3},{3987,12780,3}, {3985,12778,3},{3985,12772,3},{3982,12768,3},{3980,12767,3},{3982,12762,3}, {3978,12757,3},{3972,12750,3},{3965,12750,3},{3963,12755,3},{3960,12758,3}, {3950,12753,3},{3930,12757,3},{3930,12753,3},{3932,12752,3},{3937,12753,3}, {3942,12752,3},{3943,12748,3},{3942,12745,3},{3938,12743,3},{3940,12742,3}, {3937,12737,3},{3935,12742,3},{3937,12745,3},{3935,12747,3},{3933,12742,3}, {3933,12738,3},{3930,12740,3},{3925,12737,3},{3922,12738,3},{3917,12745,3}, {3917,12747,3},{3920,12748,3},{3913,12753,3},{3915,12762,3},{3912,12765,3}, {3912,12777,3},{3898,12785,3},{3897,12788,3},{3897,12792,3},{3893,12792,3}, {3892,12797,3},{3887,12800,3},{3882,12812,3},{3875,12818,3},{3872,12820,3}, {3875,12828,3},{3868,12837,3},{3862,12837,3},{3858,12830,3},{3850,12832,3}, {3843,12828,3},{3835,12818,3},{3832,12807,3},{3832,12790,3},{3830,12783,3}, {3833,12778,3},{3832,12757,3},{3830,12750,3},{3833,12740,3},{3832,12722,3}, {3828,12710,3},{3822,12698,3},{3813,12695,3},{3810,12688,3},{3800,12680,3}, {3795,12675,3},{3795,12668,3},{3783,12668,3},{4917,8783,131},{4912,8787,3}, {4902,8787,3},{4893,8780,3},{4892,8772,3},{4890,8770,3},{4887,8773,3},{4885,8782,3}, {4880,8783,3},{4875,8795,3},{4875,8798,3},{4872,8798,3},{4868,8808,3},{4865,8808,3}, {4862,8802,3},{4857,8798,3},{4850,8797,3},{4850,8808,3},{4845,8820,3},{4847,8833,3}, {4845,8837,3},{4842,8837,3},{4837,8845,3},{4838,8853,3},{4835,8857,3},{4830,8865,3}, {4823,8860,3},{4823,8865,3},{4818,8868,3},{4815,8875,3},{4807,8885,3},{4792,8890,3}, {4793,8917,3},{4798,8930,3},{4802,8928,3},{4803,8937,3},{4802,8960,3},{4797,8958,3}, {4790,8965,3},{4787,8973,3},{4782,8977,3},{4780,8988,3},{4782,8995,3},{4785,8995,3}, {4787,8998,3},{4783,9007,3},{4773,9012,3},{4768,9030,3},{4765,9035,3},{4762,9035,3}, {4750,9045,3},{4740,9047,3},{4738,9052,3},{4732,9050,3},{4727,9053,3},{4722,9055,3}, {4708,9067,3},{4707,9070,3},{4700,9073,3},{4698,9083,3},{4695,9090,3},{4688,9090,3}, {4685,9095,3},{4682,9092,3},{4675,9100,3},{4675,9098,3},{4673,9103,3},{4667,9105,3}, {4650,9102,3},{4647,9095,3},{4638,9090,3},{4630,9090,3},{4612,9100,3},{4602,9102,3}, {4597,9098,3},{4587,9085,3},{4577,9077,3},{4560,9067,3},{4548,9067,3},{4532,9070,3}, {4520,9090,3},{4520,9117,3},{4510,9148,3},{4508,9167,3},{4505,9177,3},{4505,9198,3}, {4500,9228,3},{4500,9290,3},{4502,9313,3},{4500,9318,3},{4498,9327,3},{4498,9337,3}, {4493,9350,3},{4492,9362,3},{4485,9375,3},{4468,9393,3},{4467,9400,3},{4468,9413,3}, {4452,9437,3},{4452,9447,3},{4445,9458,3},{4435,9467,3},{4433,9472,3},{4433,9487,3}, {4425,9503,3},{4427,9540,3},{4425,9540,3},{4418,9533,3},{4403,9532,3},{4402,9533,3}, {4398,9552,3},{4368,9567,3},{4340,9585,3},{4330,9590,3},{4323,9590,3},{4315,9598,3}, {4287,9637,3},{4273,9638,3},{4272,9638,3},{4270,9687,3},{4267,9712,3},{4262,9730,3}, {4262,9745,3},{4267,9757,3},{4262,9800,3},{4260,9840,3},{4255,9878,3},{4253,9908,3}, {4252,9933,3},{4255,9947,3},{4255,9965,3},{4258,9992,3},{4265,10003,3}, {4265,10010,3},{4265,10018,3},{4263,10025,3},{4268,10030,3},{4268,10037,3}, {4268,10045,3},{4268,10052,3},{4268,10058,3},{4268,10065,3},{4268,10073,3}, {4268,10080,3},{4267,10088,3},{4265,10095,3},{4265,10102,3},{4263,10108,3}, {4262,10115,3},{4260,10122,3},{4258,10128,3},{4258,10135,3},{4257,10143,3}, {4255,10150,3},{4253,10157,3},{4253,10163,3},{4252,10170,3},{4252,10178,3}, {4247,10183,3},{4220,10207,3},{4215,10218,3},{4212,10237,3},{4210,10253,3}, {4200,10302,3},{4190,10328,3},{4180,10382,3},{4180,10413,3},{4182,10432,3}, {4185,10448,3},{4185,10455,3},{4162,10453,3},{4153,10493,3},{4173,10520,3}, {4173,10523,3},{4177,10533,3},{4188,10558,3},{4200,10587,3},{4208,10618,3}, {4218,10643,3},{4228,10683,3},{4235,10728,3},{4240,10730,3},{4245,10748,3}, {4242,10758,3},{4242,10763,3},{4240,10790,3},{4247,10825,3},{4243,10833,3}, {4243,10858,3},{4240,10885,3},{4245,10898,3},{4243,10932,3},{4245,10935,3}, {4245,10952,3},{4248,10953,3},{4248,10957,3},{4255,10968,3},{4265,10995,3}, {4265,11013,3},{4267,11013,3},{4277,11040,3},{4287,11050,3},{4290,11057,3}, {4302,11068,3},{4308,11070,3},{4312,11077,3},{4332,11100,3},{4342,11123,3}, {4345,11133,3},{4350,11143,3},{4350,11157,3},{4367,11178,3},{4367,11192,3}, {4370,11197,3},{4378,11198,3},{4390,11190,3},{4398,11180,3},{4407,11167,3}, {4418,11155,3},{4430,11148,3},{4432,11143,3},{4435,11142,3},{4443,11143,3}, {4457,11155,3},{4468,11157,3},{4500,11178,3},{4510,11200,3},{4508,11217,3}, {4508,11243,3},{4498,11253,3},{4493,11258,3},{4483,11283,3},{4485,11293,3}, {4483,11300,3},{4478,11323,3},{4480,11348,3},{4475,11360,3},{4487,11378,3}, {4487,11385,3},{4493,11392,3},{4493,11407,3},{4503,11417,3},{4508,11425,3}, {4522,11447,3},{4540,11458,3},{4543,11477,3},{4538,11493,3},{4540,11518,3}, {4540,11538,3},{4545,11570,3},{4555,11582,3},{4568,11605,3},{4568,11613,3}, {4572,11620,3},{4580,11628,3},{4590,11623,3},{4598,11628,3},{4613,11640,3}, {4625,11658,3},{4628,11660,3},{4632,11673,3},{4635,11678,3},{4635,11682,3}, {4640,11683,3},{4637,11710,3},{4638,11735,3},{4647,11737,3},{4652,11743,3}, {4658,11742,3},{4660,11762,3},{4658,11762,3},{4652,11768,3},{4653,11782,3}, {4658,11785,3},{4662,11790,3},{4665,11805,3},{4668,11812,3},{4670,11818,3}, {4675,11833,3},{4672,11847,3},{4673,11863,3},{4670,11870,3},{4670,11877,3}, {4673,11878,3},{4677,11885,3},{4677,11888,3},{4673,11890,3},{4675,11898,3}, {4665,11908,3},{4667,11925,3},{4660,11932,3},{4663,11945,3},{4662,11958,3}, {4658,11963,3},{4660,11968,3},{4667,11973,3},{4667,11983,3},{4663,11987,3}, {4667,11990,3},{4677,11988,3},{4688,11990,3},{4693,11985,3},{4698,11985,3}, {4703,11980,3},{4712,11977,3},{4728,11957,3},{4730,11952,3},{4742,11935,3}, {4743,11932,3},{4748,11933,3},{4753,11913,3},{4767,11912,3},{4770,11913,3}, {4780,11878,3},{4795,11853,3},{4800,11843,3},{4802,11835,3},{4800,11828,3}, {4803,11822,3},{4803,11817,3},{4800,11803,3},{4800,11797,3},{4802,11790,3}, {4803,11783,3},{4800,11778,3},{4795,11768,3},{4763,11738,3},{4780,11713,3}, {4787,11692,3},{4788,11680,3},{4783,11643,3},{4787,11625,3},{4778,11607,3}, {4767,11597,3},{4788,11558,3},{4818,11548,3},{4827,11583,3},{4852,11582,3}, {4880,11612,3},{4887,11605,3},{4892,11608,3},{4895,11612,3},{4900,11615,3}, {4905,11618,3},{4910,11622,3},{4915,11625,3},{4918,11627,3},{4923,11630,3}, {4928,11633,3},{4933,11637,3},{4938,11640,3},{4942,11643,3},{4947,11647,3}, {4952,11650,3},{4957,11653,3},{4960,11657,3},{4965,11658,3},{4970,11662,3}, {4975,11665,3},{4980,11668,3},{4983,11672,3},{4972,11697,3},{4965,11717,3}, {4963,11728,3},{4962,11750,3},{4952,11778,3},{4950,11787,3},{4955,11790,3}, {4960,11803,3},{4965,11812,3},{4967,11817,3},{4973,11823,3},{4978,11837,3}, {4982,11838,3},{4982,11847,3},{4990,11853,3},{4995,11863,3},{4995,11872,3}, {4998,11892,3},{4998,11907,3},{5002,11923,3},{5010,11933,3},{5017,11935,3}, {5027,11933,3},{5032,11937,3},{5035,11935,3},{5035,11918,3},{5037,11918,3}, {5037,11913,3},{5040,11913,3},{5042,11917,3},{5042,11920,3},{5045,11925,3}, {5060,11928,3},{5063,11937,3},{5067,11938,3},{5068,11945,3},{5075,11950,3}, {5080,11952,3},{5083,11950,3},{5088,11953,3},{5090,11952,3},{5093,11957,3}, {5097,11958,3},{5100,11967,3},{5107,11975,3},{5115,11977,3},{5117,11978,3}, {5120,11975,3},{5122,11982,3},{5127,11982,3},{5128,11987,3},{5133,11992,3}, {5137,11988,3},{5138,11995,3},{5143,11998,3},{5150,11998,3},{5155,12005,3}, {5162,12005,3},{5167,12010,3},{5167,12018,3},{5177,12032,3},{5183,12040,3}, {5183,12047,3},{5188,12048,3},{5188,12055,3},{5190,12057,3},{5192,12065,3}, {5198,12072,3},{5205,12070,3},{5207,12075,3},{5212,12078,3},{5223,12077,3}, {5230,12065,3},{5233,12062,3},{5243,12068,3},{5253,12072,3},{5263,12043,3}, {5262,12038,3},{5262,12028,3},{5258,12018,3},{5258,12007,3},{5262,12003,3}, {5270,12005,3},{5277,12003,3},{5280,12012,3},{5280,12017,3},{5285,12027,3}, {5302,12048,3},{5310,12063,3},{5318,12072,3},{5323,12083,3},{5327,12083,3}, {5328,12087,3},{5328,12103,3},{5328,12107,3},{5327,12113,3},{5328,12123,3}, {5332,12133,3},{5333,12150,3},{5338,12167,3},{5338,12173,3},{5342,12182,3}, {5342,12197,3},{5342,12202,3},{5342,12210,3},{5347,12217,3},{5347,12225,3}, {5348,12232,3},{5343,12242,3},{5345,12262,3},{5345,12282,3},{5348,12297,3}, {5350,12315,3},{5355,12327,3},{5352,12345,3},{5350,12348,3},{5355,12350,3}, {5353,12355,3},{5350,12353,3},{5353,12358,3},{5355,12362,3},{5350,12370,3}, {5347,12388,3},{5343,12398,3},{5340,12402,3},{5333,12412,3},{5337,12418,3}, {5337,12425,3},{5325,12433,3},{5322,12440,3},{5318,12450,3},{5318,12465,3}, {5317,12470,3},{5313,12470,3},{5313,12480,3},{5308,12485,3},{5310,12490,3}, {5317,12488,3},{5320,12507,3},{5320,12517,3},{5308,12547,3},{5303,12550,3}, {5305,12557,3},{5305,12562,3},{5302,12565,3},{5298,12573,3},{5295,12572,3}, {5292,12565,3},{5288,12565,3},{5290,12583,3},{5288,12587,3},{5285,12587,3}, {5277,12597,3},{5278,12605,3},{5277,12610,3},{5275,12610,3},{5273,12603,3}, {5268,12607,3},{5265,12598,3},{5262,12598,3},{5257,12602,3},{5257,12605,3}, {5258,12607,3},{5253,12618,3},{5252,12622,3},{5247,12620,3},{5247,12627,3}, {5238,12633,3},{5230,12632,3},{5228,12643,3},{5223,12633,3},{5220,12632,3}, {5217,12647,3},{5213,12655,3},{5203,12652,3},{5203,12647,3},{5200,12643,3}, {5193,12647,3},{5190,12652,3},{5175,12663,3},{5173,12667,3},{5172,12670,3}, {5170,12672,3},{5167,12670,3},{5163,12673,3},{5160,12667,3},{5157,12667,3}, {5153,12680,3},{5150,12682,3},{5145,12678,3},{5142,12678,3},{5140,12690,3}, {5138,12692,3},{5133,12690,3},{5133,12682,3},{5127,12682,3},{5125,12685,3}, {5123,12688,3},{5125,12690,3},{5127,12688,3},{5130,12687,3},{5133,12695,3}, {5130,12698,3},{5128,12697,3},{5118,12690,3},{5105,12693,3},{5097,12703,3}, {5092,12713,3},{5078,12722,3},{5073,12730,3},{5068,12728,3},{5057,12737,3}, {5047,12728,3},{5042,12735,3},{5032,12733,3},{5020,12758,3},{5013,12757,3}, {5005,12748,3},{4998,12748,3},{4992,12753,3},{4983,12750,3},{4980,12753,3}, {4975,12767,3},{4967,12768,3},{4963,12777,3},{4958,12782,3},{4958,12790,3}, {4960,12795,3},{4958,12800,3},{4953,12810,3},{4953,12822,3},{4955,12827,3}, {4953,12833,3},{4957,12837,3},{4958,12850,3},{4957,12862,3},{4962,12867,3}, {4958,12872,3},{4957,12878,3},{4953,12880,3},{4950,12875,3},{4947,12875,3}, {4948,12885,3},{4947,12890,3},{4945,12892,3},{4943,12900,3},{4937,12905,3}, {4935,12910,3},{4938,12920,3},{4938,12925,3},{4935,12932,3},{4935,12937,3}, {4940,12937,3},{4942,12938,3},{4942,12948,3},{4938,12953,3},{4930,12955,3}, {4927,12960,3},{4928,12968,3},{4927,12972,3},{4920,12973,3},{4917,12977,3}, {4915,12985,3},{4912,12983,3},{4908,12992,3},{4903,12990,3},{4900,12998,3}, {4887,13022,3},{4887,13028,3},{4890,13042,3},{4888,13047,3},{4885,13052,3}, {4888,13062,3},{4887,13067,3},{4885,13067,3},{4880,13063,3},{4860,13052,3}, {4857,13062,3},{4852,13062,3},{4848,13063,3},{4850,13073,3},{4848,13077,3}, {4842,13073,3},{4835,13077,3},{4833,13082,3},{4828,13083,3},{4825,13077,3}, {4818,13075,3},{4813,13067,3},{4810,13067,3},{4805,13068,3},{4790,13088,3}, {4780,13095,3},{4772,13093,3},{4770,13098,3},{4767,13110,3},{4770,13117,3}, {4773,13127,3},{4773,13142,3},{4772,13153,3},{4767,13155,3},{4765,13158,3}, {4767,13162,3},{4770,13168,3},{4767,13182,3},{4768,13187,3},{4767,13192,3}, {4770,13200,3},{4770,13217,3},{4775,13235,3},{4772,13253,3},{4773,13258,3}, {4780,13258,3},{4787,13267,3},{4793,13265,3},{4795,13267,3},{4795,13275,3}, {4793,13277,3},{4795,13283,3},{4800,13288,3},{4803,13302,3},{4810,13308,3}, {4812,13322,3},{4810,13332,3},{4810,13340,3},{4807,13348,3},{4807,13352,3}, {4810,13353,3},{4817,13360,3},{4818,13370,3},{4825,13375,3},{4827,13388,3}, {4827,13398,3},{4830,13402,3},{4832,13405,3},{4833,13418,3},{4837,13425,3}, {4838,13442,3},{4835,13448,3},{4837,13457,3},{4830,13462,3},{4827,13473,3}, {4823,13468,3},{4810,13467,3},{4807,13458,3},{4800,13455,3},{4795,13460,3}, {4790,13460,3},{4787,13467,3},{4780,13468,3},{4773,13477,3},{4770,13477,3}, {4763,13468,3},{4757,13467,3},{4750,13457,3},{4747,13455,3},{4743,13448,3}, {4742,13432,3},{4735,13423,3},{4732,13418,3},{4725,13415,3},{4720,13420,3}, {4717,13418,3},{4713,13422,3},{4712,13422,3},{4708,13420,3},{4708,13413,3}, {4697,13407,3},{4692,13407,3},{4682,13402,3},{4677,13405,3},{4667,13402,3}, {4662,13398,3},{4657,13390,3},{4653,13390,3},{4647,13385,3},{4643,13385,3}, {4642,13390,3},{4640,13393,3},{4637,13392,3},{4635,13388,3},{4633,13387,3}, {4632,13392,3},{4630,13388,3},{4625,13390,3},{4623,13385,3},{4622,13385,3}, {4620,13383,3},{4622,13380,3},{4620,13378,3},{4615,13375,3},{4615,13368,3}, {4607,13372,3},{4593,13367,3},{4593,13362,3},{4590,13360,3},{4587,13358,3}, {4588,13355,3},{4588,13352,3},{4583,13350,3},{4583,13348,3},{4580,13347,3}, {4578,13350,3},{4577,13348,3},{4573,13348,3},{4570,13345,3},{4568,13348,3}, {4567,13348,3},{4565,13345,3},{4562,13347,3},{4560,13342,3},{4557,13342,3}, {4557,13337,3},{4550,13318,3},{4545,13315,3},{4525,13310,3},{4517,13313,3}, {4512,13312,3},{4505,13303,3},{4502,13293,3},{4505,13283,3},{4507,13277,3}, {4508,13268,3},{4510,13262,3},{4512,13253,3},{4513,13247,3},{4515,13240,3}, {4517,13232,3},{4518,13225,3},{4520,13217,3},{4522,13210,3},{4523,13202,3}, {4528,13193,3},{4533,13190,3},{4535,13187,3},{4533,13183,3},{4522,13175,3}, {4522,13167,3},{4520,13165,3},{4517,13163,3},{4513,13165,3},{4512,13165,3}, {4498,13148,3},{4497,13147,3},{4497,13133,3},{4492,13127,3},{4492,13122,3}, {4493,13113,3},{4492,13107,3},{4488,13107,3},{4487,13105,3},{4483,13095,3}, {4478,13100,3},{4475,13105,3},{4470,13107,3},{4468,13110,3},{4462,13112,3}, {4457,13113,3},{4452,13115,3},{4445,13117,3},{4440,13118,3},{4435,13120,3}, {4430,13122,3},{4425,13123,3},{4420,13125,3},{4413,13127,3},{4408,13128,3}, {4405,13130,3},{4403,13125,3},{4397,13123,3},{4392,13125,3},{4382,13120,3}, {4373,13122,3},{4370,13120,3},{4367,13122,3},{4362,13120,3},{4360,13122,3}, {4355,13118,3},{4353,13120,3},{4345,13130,3},{4340,13132,3},{4337,13127,3}, {4327,13127,3},{4320,13118,3},{4315,13122,3},{4313,13122,3},{4303,13110,3}, {4297,13110,3},{4293,13113,3},{4292,13112,3},{4290,13105,3},{4285,13102,3}, {4285,13087,3},{4288,13082,3},{4285,13078,3},{4283,13077,3},{4283,13063,3}, {4275,13043,3},{4272,13040,3},{4270,13042,3},{4268,13047,3},{4268,13053,3}, {4262,13060,3},{4258,13062,3},{4255,13057,3},{4250,13057,3},{4242,13060,3}, {4238,13065,3},{4232,13065,3},{4228,13068,3},{4242,13060,3},{4243,13057,3}, {4247,13057,3},{4248,13055,3},{4260,13052,3},{4260,13047,3},{4255,13047,3}, {4255,13045,3},{4255,13043,3},{4260,13043,3},{4260,13038,3},{4272,13025,3}, {4290,13025,3},{4292,13010,3},{4297,13013,3},{4298,13010,3},{4295,13005,3}, {4298,12995,3},{4300,12992,3},{4298,12988,3},{4297,12990,3},{4297,12985,3}, {4292,12985,3},{4285,12980,3},{4270,12975,3},{4267,12978,3},{4265,12977,3}, {4263,12975,3},{4262,12975,3},{4260,12977,3},{4257,12973,3},{4248,12973,3}, {4243,12970,3},{4243,12967,3},{4245,12960,3},{4243,12958,3},{4242,12960,3}, {4240,12957,3},{4237,12953,3},{4243,12945,3},{4243,12937,3},{4245,12935,3}, {4243,12933,3},{4242,12935,3},{4242,12930,3},{4238,12930,3},{4237,12923,3}, {4235,12922,3},{4233,12923,3},{4232,12923,3},{4232,12918,3},{4230,12922,3}, {4223,12918,3},{4223,12920,3},{4222,12922,3},{4213,12912,3},{4213,12907,3}, {4210,12903,3},{4208,12895,3},{4202,12893,3},{4205,12873,3},{4202,12868,3}, {4203,12863,3},{4202,12860,3},{4200,12857,3},{4200,12850,3},{4200,12847,3}, {4203,12842,3},{4203,12833,3},{4200,12807,3},{4192,12807,3},{4180,12810,3}, {4177,12813,3},{4170,12817,3},{4165,12827,3},{4158,12830,3},{4142,12820,3}, {4137,12812,3},{4140,12810,3},{4138,12808,3},{4138,12805,3},{4142,12805,3}, {4140,12802,3},{4142,12802,3},{4145,12800,3},{4142,12798,3},{4145,12793,3}, {4143,12790,3},{4143,12787,3},{4140,12785,3},{4142,12765,3},{4140,12763,3}, {4143,12755,3},{4147,12753,3},{4147,12727,3},{4150,12728,3},{4150,12723,3}, {4152,12722,3},{4152,12718,3},{4153,12717,3},{4152,12713,3},{4153,12710,3}, {4158,12718,3},{4160,12713,3},{4162,12710,3},{4163,12710,3},{4165,12703,3}, {4167,12703,3},{4168,12708,3},{4173,12703,3},{4177,12693,3},{4180,12693,3}, {4178,12690,3},{4173,12685,3},{4173,12680,3},{4170,12678,3},{4173,12670,3}, {4172,12668,3},{4170,12672,3},{4167,12667,3},{4167,12662,3},{4163,12660,3}, {4162,12657,3},{4157,12658,3},{4150,12655,3},{4143,12650,3},{4135,12653,3}, {4133,12650,3},{4137,12650,3},{4135,12645,3},{4127,12637,3},{4123,12635,3}, {4122,12632,3},{4115,12628,3},{4110,12618,3},{4108,12612,3},{4105,12613,3}, {4102,12610,3},{4100,12610,3},{4100,12607,3},{4097,12607,3},{4093,12603,3}, {4092,12598,3},{4090,12602,3},{4088,12593,3},{4090,12592,3},{4090,12588,3}, {4087,12582,3},{4088,12577,3},{4087,12573,3},{4087,12570,3},{4082,12565,3}, {4080,12565,3},{4077,12568,3},{4075,12562,3},{4077,12560,3},{4078,12558,3}, {4077,12555,3},{4072,12555,3},{4072,12547,3},{4067,12547,3},{4067,12542,3}, {4062,12540,3},{4063,12537,3},{4063,12533,3},{4065,12532,3},{4065,12528,3}, {4062,12525,3},{4060,12525,3},{4058,12515,3},{4055,12508,3},{4053,12503,3}, {4052,12500,3},{4047,12505,3},{4045,12503,3},{4045,12492,3},{4048,12488,3}, {4042,12483,3},{4037,12475,3},{4030,12472,3},{4028,12462,3},{4025,12455,3}, {4022,12455,3},{4010,12437,3},{4007,12435,3},{4002,12437,3},{3998,12435,3}, {3997,12430,3},{3993,12428,3},{3992,12425,3},{3983,12413,3},{3985,12408,3}, {3982,12398,3},{3983,12395,3},{3983,12393,3},{3982,12390,3},{3983,12370,3}, {3987,12365,3},{3992,12365,3},{3982,12360,3},{3978,12360,3},{3977,12357,3}, {3978,12355,3},{3978,12348,3},{3973,12347,3},{3973,12342,3},{3973,12340,3}, {3982,12342,3},{3982,12340,3},{3978,12338,3},{3978,12332,3},{3980,12328,3}, {3980,12325,3},{3982,12323,3},{3975,12327,3},{3975,12322,3},{3973,12320,3}, {3972,12322,3},{3972,12325,3},{3970,12327,3},{3968,12322,3},{3967,12322,3}, {3965,12315,3},{3968,12312,3},{3970,12310,3},{3968,12308,3},{3967,12305,3}, {3968,12302,3},{3967,12297,3},{3963,12300,3},{3962,12297,3},{3962,12295,3}, {3962,12293,3},{3962,12285,3},{3955,12277,3},{3955,12272,3},{3952,12268,3}, {3953,12265,3},{3948,12262,3},{3947,12258,3},{3948,12255,3},{3945,12255,3}, {3942,12247,3},{3942,12240,3},{3935,12230,3},{3932,12227,3},{3932,12225,3}, {3927,12223,3},{3920,12212,3},{3917,12210,3},{3915,12217,3},{3910,12205,3}, {3907,12205,3},{3907,12200,3},{3903,12197,3},{3905,12188,3},{3900,12192,3}, {3903,12187,3},{3903,12183,3},{3898,12190,3},{3895,12187,3},{3895,12183,3}, {3897,12180,3},{3902,12177,3},{3903,12173,3},{3902,12172,3},{3900,12173,3}, {3902,12167,3},{3900,12163,3},{3898,12167,3},{3895,12165,3},{3893,12158,3}, {3892,12167,3},{3890,12172,3},{3887,12170,3},{3887,12158,3},{3880,12148,3}, {3882,12135,3},{3880,12132,3},{3878,12130,3},{3880,12123,3},{3878,12122,3}, {3877,12123,3},{3872,12118,3},{3873,12113,3},{3877,12112,3},{3878,12113,3}, {3883,12112,3},{3885,12112,3},{3890,12115,3},{3890,12108,3},{3892,12110,3}, {3895,12113,3},{3895,12118,3},{3893,12123,3},{3897,12128,3},{3897,12133,3}, {3898,12135,3},{3900,12132,3},{3905,12137,3},{3902,12142,3},{3902,12145,3}, {3908,12167,3},{3912,12168,3},{3918,12163,3},{3917,12162,3},{3918,12158,3}, {3922,12160,3},{3923,12163,3},{3925,12160,3},{3927,12168,3},{3930,12173,3}, {3933,12173,3},{3937,12178,3},{3937,12187,3},{3940,12193,3},{3942,12192,3}, {3940,12192,3},{3938,12185,3},{3940,12172,3},{3938,12170,3},{3937,12172,3}, {3937,12153,3},{3938,12148,3},{3952,12143,3},{3952,12135,3},{3950,12130,3}, {3952,12128,3},{3952,12122,3},{3953,12123,3},{3960,12132,3},{3960,12142,3}, {3963,12147,3},{3965,12147,3},{3962,12153,3},{3965,12153,3},{3968,12155,3}, {3968,12150,3},{3973,12145,3},{3978,12148,3},{3982,12147,3},{3987,12155,3}, {3987,12160,3},{3992,12167,3},{3993,12170,3},{3992,12177,3},{3995,12180,3}, {4000,12188,3},{4002,12188,3},{4002,12183,3},{4003,12188,3},{4010,12193,3}, {4013,12200,3},{4018,12198,3},{4018,12202,3},{4023,12210,3},{4030,12212,3}, {4035,12218,3},{4038,12222,3},{4042,12220,3},{4043,12225,3},{4050,12230,3}, {4057,12225,3},{4060,12215,3},{4070,12215,3},{4068,12212,3},{4075,12205,3}, {4078,12192,3},{4082,12187,3},{4093,12183,3},{4098,12187,3},{4095,12180,3}, {4088,12178,3},{4085,12175,3},{4083,12160,3},{4083,12155,3},{4088,12152,3}, {4090,12148,3},{4088,12145,3},{4092,12143,3},{4093,12138,3},{4093,12135,3}, {4090,12128,3},{4092,12127,3},{4090,12125,3},{4093,12118,3},{4087,12112,3}, {4087,12108,3},{4082,12108,3},{4083,12100,3},{4082,12097,3},{4078,12097,3}, {4077,12093,3},{4073,12093,3},{4073,12100,3},{4072,12103,3},{4070,12098,3}, {4068,12093,3},{4067,12083,3},{4060,12080,3},{4052,12068,3},{4047,12067,3}, {4047,12062,3},{4045,12060,3},{4042,12060,3},{4040,12055,3},{4037,12053,3}, {4037,12058,3},{4035,12060,3},{4030,12050,3},{4025,12050,3},{4020,12045,3}, {4018,12032,3},{4013,12023,3},{4003,11995,3},{3998,11987,3},{3997,11980,3}, {3995,11977,3},{3990,11958,3},{3987,11952,3},{3980,11952,3},{3978,11945,3}, {3972,11935,3},{3958,11928,3},{3960,11925,3},{3957,11920,3},{3955,11922,3}, {3957,11925,3},{3953,11923,3},{3957,11927,3},{3945,11923,3},{3942,11927,3}, {3940,11925,3},{3933,11913,3},{3930,11912,3},{3927,11905,3},{3923,11907,3}, {3913,11892,3},{3912,11888,3},{3918,11897,3},{3917,11888,3},{3918,11888,3}, {3918,11887,3},{3922,11887,3},{3918,11883,3},{3915,11875,3},{3915,11870,3}, {3918,11868,3},{3918,11867,3},{3918,11860,3},{3917,11853,3},{3912,11850,3}, {3903,11832,3},{3907,11830,3},{3907,11825,3},{3912,11823,3},{3918,11817,3}, {3922,11805,3},{3920,11788,3},{3915,11780,3},{3912,11775,3},{3910,11772,3}, {3907,11773,3},{3902,11773,3},{3898,11775,3},{3898,11770,3},{3895,11770,3}, {3880,11758,3},{3868,11753,3},{3860,11755,3},{3843,11765,3},{3835,11772,3}, {3828,11778,3},{3825,11783,3},{3825,11790,3},{3818,11797,3},{3818,11802,3}, {3815,11803,3},{3815,11807,3},{3813,11808,3},{3815,11812,3},{3815,11818,3}, {3812,11832,3},{3813,11835,3},{3812,11843,3},{3807,11855,3},{3810,11858,3}, {3813,11862,3},{3815,11885,3},{3808,11883,3},{3805,11887,3},{3805,11892,3}, {3803,11895,3},{3788,11903,3},{3782,11902,3},{3778,11903,3},{3772,11910,3}, {3767,11907,3},{3767,11903,3},{3760,11897,3},{3735,11893,3},{3727,11897,3}, {3727,11902,3},{3722,11905,3},{3715,11923,3},{3712,11940,3},{3715,11975,3}, {3725,11988,3},{3727,11990,3},{3733,11985,3},{3737,11985,3},{3743,12007,3}, {3750,12018,3},{3760,12030,3},{3765,12032,3},{3768,12022,3},{3768,12037,3}, {3773,12043,3},{3775,12055,3},{3778,12062,3},{3778,12065,3},{3783,12073,3}, {3782,12083,3},{3783,12087,3},{3782,12093,3},{3778,12093,3},{3773,12100,3}, {3772,12102,3},{3770,12115,3},{3765,12113,3},{3763,12113,3},{3758,12115,3}, {3757,12122,3},{3758,12135,3},{3760,12137,3},{3763,12135,3},{3763,12137,3}, {3758,12143,3},{3758,12138,3},{3755,12138,3},{3752,12145,3},{3747,12148,3}, {3745,12153,3},{3742,12157,3},{3743,12167,3},{3745,12165,3},{3747,12163,3}, {3745,12158,3},{3748,12163,3},{3747,12168,3},{3747,12193,3},{3745,12195,3}, {3742,12195,3},{3742,12200,3},{3747,12198,3},{3753,12202,3},{3753,12207,3}, {3757,12207,3},{3755,12208,3},{3755,12212,3},{3755,12213,3},{3752,12215,3}, {3748,12212,3},{3742,12217,3},{3742,12218,3},{3745,12223,3},{3745,12227,3}, {3742,12228,3},{3742,12232,3},{3742,12242,3},{3742,12247,3},{3740,12253,3}, {3740,12257,3},{3742,12262,3},{3742,12268,3},{3740,12270,3},{3737,12268,3}, {3737,12263,3},{3735,12257,3},{3732,12258,3},{3730,12258,3},{3732,12255,3}, {3727,12255,3},{3718,12262,3},{3718,12257,3},{3715,12258,3},{3715,12248,3}, {3710,12247,3},{3715,12247,3},{3715,12245,3},{3710,12243,3},{3707,12245,3}, {3703,12240,3},{3700,12242,3},{3702,12243,3},{3702,12253,3},{3692,12253,3}, {3690,12250,3},{3692,12252,3},{3693,12252,3},{3692,12240,3},{3690,12240,3}, {3688,12243,3},{3685,12242,3},{3685,12238,3},{3683,12237,3},{3682,12232,3}, {3683,12220,3},{3688,12218,3},{3690,12227,3},{3693,12217,3},{3700,12218,3}, {3700,12215,3},{3693,12213,3},{3695,12210,3},{3692,12208,3},{3690,12203,3}, {3695,12203,3},{3698,12205,3},{3697,12200,3},{3700,12195,3},{3698,12192,3}, {3697,12192,3},{3693,12195,3},{3693,12193,3},{3688,12178,3},{3683,12172,3}, {3682,12165,3},{3683,12168,3},{3683,12167,3},{3682,12162,3},{3673,12162,3}, {3677,12158,3},{3675,12157,3},{3677,12155,3},{3675,12153,3},{3677,12148,3}, {3678,12150,3},{3678,12155,3},{3683,12160,3},{3683,12162,3},{3683,12155,3}, {3680,12150,3},{3682,12148,3},{3683,12145,3},{3678,12147,3},{3675,12145,3}, {3675,12138,3},{3672,12137,3},{3670,12140,3},{3672,12133,3},{3668,12120,3}, {3662,12108,3},{3660,12105,3},{3663,12103,3},{3658,12103,3},{3658,12095,3}, {3660,12093,3},{3662,12093,3},{3665,12083,3},{3662,12075,3},{3658,12075,3}, {3657,12073,3},{3653,12075,3},{3653,12078,3},{3658,12082,3},{3660,12085,3}, {3657,12088,3},{3655,12092,3},{3653,12092,3},{3653,12097,3},{3650,12093,3}, {3645,12095,3},{3645,12090,3},{3642,12090,3},{3637,12087,3},{3638,12085,3}, {3642,12085,3},{3645,12083,3},{3647,12078,3},{3647,12077,3},{3642,12070,3}, {3637,12068,3},{3632,12072,3},{3632,12070,3},{3633,12067,3},{3632,12063,3}, {3622,12068,3},{3613,12068,3},{3612,12063,3},{3610,12058,3},{3612,12057,3}, {3608,12053,3},{3608,12047,3},{3605,12043,3},{3603,12035,3},{3607,12028,3}, {3608,12032,3},{3610,12030,3},{3617,12035,3},{3622,12035,3},{3622,12032,3}, {3627,12030,3},{3627,12028,3},{3622,12028,3},{3620,12028,3},{3618,12030,3}, {3617,12027,3},{3620,12022,3},{3622,12022,3},{3620,12013,3},{3622,12012,3}, {3622,12008,3},{3620,12008,3},{3618,12012,3},{3613,12008,3},{3612,12008,3}, {3607,12017,3},{3598,12018,3},{3600,12023,3},{3597,12023,3},{3602,12028,3}, {3598,12030,3},{3597,12030,3},{3593,12022,3},{3588,12017,3},{3593,12018,3}, {3590,12013,3},{3590,12010,3},{3587,12005,3},{3582,12002,3},{3575,12002,3}, {3572,11998,3},{3575,11995,3},{3575,11992,3},{3573,11990,3},{3570,11993,3}, {3568,11990,3},{3562,11990,3},{3560,11985,3},{3562,11983,3},{3565,11983,3}, {3558,11977,3},{3557,11975,3},{3562,11975,3},{3562,11973,3},{3558,11965,3}, {3533,11952,3},{3532,11943,3},{3522,11938,3},{3512,11937,3},{3507,11928,3}, {3507,11922,3},{3502,11920,3},{3490,11920,3},{3485,11917,3},{3478,11920,3}, {3475,11918,3},{3472,11920,3},{3475,11922,3},{3477,11923,3},{3475,11932,3}, {3477,11935,3},{3475,11938,3},{3475,11943,3},{3470,11948,3},{3467,11947,3}, {3460,11953,3},{3455,11963,3},{3453,11965,3},{3452,11973,3},{3447,11980,3}, {3445,11993,3},{3437,12008,3},{3432,12025,3},{3423,12027,3},{3415,12033,3}, {3408,12035,3},{3403,12037,3},{3390,12042,3},{3387,12040,3},{3385,12043,3}, {3380,12045,3},{3377,12045,3},{3373,12050,3},{3365,12050,3},{3365,12048,3}, {3363,12048,3},{3358,12053,3},{3350,12060,3},{3347,12063,3},{3332,12067,3}, {3328,12070,3},{3327,12075,3},{3325,12073,3},{3322,12075,3},{3320,12073,3}, {3317,12078,3},{3312,12080,3},{3310,12080,3},{3310,12082,3},{3302,12082,3}, {3302,12083,3},{3303,12087,3},{3302,12090,3},{3297,12088,3},{3282,12090,3}, {3280,12090,3},{3278,12085,3},{3270,12087,3},{3272,12083,3},{3263,12083,3}, {3257,12097,3},{3253,12108,3},{3250,12110,3},{3250,12113,3},{3248,12118,3}, {3247,12120,3},{3245,12128,3},{3238,12140,3},{3235,12142,3},{3228,12140,3}, {3225,12142,3},{3223,12137,3},{3220,12138,3},{3217,12138,3},{3217,12143,3}, {3212,12143,3},{3210,12148,3},{3212,12153,3},{3202,12173,3},{3192,12183,3}, {3180,12187,3},{3173,12190,3},{3168,12188,3},{3168,12183,3},{3172,12165,3}, {3175,12158,3},{3178,12152,3},{3182,12148,3},{3183,12145,3},{3187,12128,3}, {3183,12117,3},{3187,12108,3},{3183,12098,3},{3185,12095,3},{3188,12095,3}, {3190,12092,3},{3202,12082,3},{3210,12062,3},{3208,12057,3},{3210,12050,3}, {3208,12043,3},{3195,12028,3},{3193,12022,3},{3195,12010,3},{3200,12000,3}, {3212,11992,3},{3215,11990,3},{3220,11992,3},{3220,11988,3},{3228,11985,3}, {3233,11977,3},{3232,11970,3},{3235,11965,3},{3235,11962,3},{3230,11968,3}, {3222,11965,3},{3218,11962,3},{3220,11965,3},{3223,11970,3},{3222,11973,3}, {3220,11978,3},{3217,11977,3},{3212,11977,3},{3207,11987,3},{3202,11987,3}, {3198,11990,3},{3192,12010,3},{3190,12018,3},{3190,12023,3},{3195,12032,3}, {3195,12042,3},{3198,12045,3},{3202,12043,3},{3202,12050,3},{3198,12060,3}, {3200,12068,3},{3198,12072,3},{3187,12078,3},{3182,12078,3},{3182,12077,3}, {3183,12073,3},{3185,12072,3},{3182,12072,3},{3175,12087,3},{3175,12097,3}, {3172,12103,3},{3172,12108,3},{3162,12123,3},{3150,12132,3},{3145,12142,3}, {3138,12150,3},{3137,12152,3},{3135,12160,3},{3132,12167,3},{3122,12175,3}, {3097,12188,3},{3092,12190,3},{3085,12187,3},{3085,12180,3},{3087,12170,3}, {3085,12157,3},{3082,12147,3},{3077,12138,3},{3070,12135,3},{3067,12122,3}, {3063,12115,3},{3060,12113,3},{3057,12100,3},{3055,12097,3},{3048,12093,3}, {3042,12093,3},{3040,12090,3},{3037,12092,3},{3033,12080,3},{3033,12075,3}, {3038,12068,3},{3040,12045,3},{3037,12038,3},{3030,12035,3},{3028,12032,3}, {3030,12027,3},{3028,12023,3},{3020,12015,3},{3022,12020,3},{3027,12025,3}, {3022,12030,3},{3022,12037,3},{3028,12042,3},{3032,12047,3},{3032,12052,3}, {3023,12057,3},{3017,12057,3},{3012,12062,3},{3008,12068,3},{3008,12077,3}, {3007,12080,3},{3010,12077,3},{3010,12067,3},{3015,12063,3},{3013,12067,3}, {3012,12070,3},{3013,12083,3},{3030,12115,3},{3030,12128,3},{3025,12140,3}, {3018,12148,3},{3012,12153,3},{3010,12157,3},{3007,12157,3},{3003,12162,3}, {3002,12162,3},{2997,12168,3},{2997,12178,3},{2993,12182,3},{2992,12188,3}, {2988,12192,3},{2988,12203,3},{2990,12212,3},{2988,12213,3},{2985,12207,3}, {2977,12188,3},{2970,12183,3},{2958,12172,3},{2958,12170,3},{2957,12170,3}, {2955,12155,3},{2950,12152,3},{2955,12150,3},{2952,12147,3},{2952,12145,3}, {2950,12145,3},{2945,12143,3},{2942,12143,3},{2942,12145,3},{2947,12147,3}, {2948,12150,3},{2945,12148,3},{2945,12152,3},{2940,12147,3},{2940,12148,3}, {2942,12153,3},{2948,12157,3},{2950,12168,3},{2952,12170,3},{2952,12168,3}, {2953,12172,3},{2952,12172,3},{2952,12177,3},{2948,12175,3},{2947,12175,3}, {2948,12180,3},{2952,12182,3},{2953,12185,3},{2955,12182,3},{2955,12173,3}, {2957,12173,3},{2958,12177,3},{2960,12180,3},{2960,12185,3},{2963,12190,3}, {2962,12193,3},{2960,12193,3},{2958,12198,3},{2955,12197,3},{2955,12193,3}, {2953,12195,3},{2952,12190,3},{2950,12195,3},{2948,12193,3},{2943,12197,3}, {2942,12195,3},{2940,12195,3},{2942,12190,3},{2938,12188,3},{2937,12192,3}, {2933,12192,3},{2933,12193,3},{2932,12193,3},{2932,12190,3},{2930,12192,3}, {2930,12190,3},{2927,12192,3},{2927,12195,3},{2928,12198,3},{2925,12198,3}, {2925,12195,3},{2922,12197,3},{2922,12193,3},{2920,12195,3},{2918,12190,3}, {2917,12185,3},{2918,12182,3},{2920,12180,3},{2925,12183,3},{2927,12182,3}, {2928,12183,3},{2930,12180,3},{2932,12183,3},{2932,12178,3},{2937,12180,3}, {2937,12177,3},{2935,12177,3},{2927,12177,3},{2920,12175,3},{2920,12172,3}, {2918,12167,3},{2920,12165,3},{2927,12165,3},{2930,12165,3},{2930,12163,3}, {2930,12162,3},{2920,12163,3},{2918,12162,3},{2928,12158,3},{2930,12157,3}, {2927,12157,3},{2927,12152,3},{2925,12153,3},{2920,12150,3},{2918,12150,3}, {2917,12148,3},{2920,12147,3},{2917,12145,3},{2917,12142,3},{2915,12142,3}, {2915,12143,3},{2913,12143,3},{2913,12147,3},{2910,12140,3},{2910,12147,3}, {2910,12163,3},{2905,12162,3},{2907,12155,3},{2905,12153,3},{2902,12153,3}, {2902,12155,3},{2905,12155,3},{2905,12165,3},{2903,12165,3},{2902,12168,3}, {2900,12165,3},{2897,12165,3},{2895,12172,3},{2892,12168,3},{2892,12163,3}, {2895,12158,3},{2892,12158,3},{2895,12153,3},{2895,12150,3},{2893,12148,3}, {2890,12153,3},{2890,12160,3},{2888,12163,3},{2883,12162,3},{2883,12165,3}, {2882,12167,3},{2880,12163,3},{2880,12167,3},{2877,12162,3},{2872,12162,3}, {2870,12150,3},{2872,12132,3},{2875,12130,3},{2877,12123,3},{2880,12122,3}, {2882,12117,3},{2883,12115,3},{2883,12113,3},{2880,12117,3},{2880,12122,3}, {2875,12123,3},{2873,12128,3},{2870,12130,3},{2867,12125,3},{2870,12133,3}, {2867,12148,3},{2855,12152,3},{2850,12157,3},{2848,12152,3},{2848,12157,3}, {2843,12157,3},{2840,12160,3},{2835,12158,3},{2833,12165,3},{2828,12163,3}, {2825,12157,3},{2828,12158,3},{2830,12157,3},{2833,12152,3},{2833,12145,3}, {2830,12143,3},{2830,12140,3},{2827,12140,3},{2827,12142,3},{2825,12142,3}, {2822,12137,3},{2818,12135,3},{2818,12138,3},{2813,12135,3},{2820,12125,3}, {2828,12125,3},{2832,12120,3},{2835,12122,3},{2837,12127,3},{2835,12122,3}, {2838,12117,3},{2835,12117,3},{2833,12113,3},{2830,12110,3},{2828,12108,3}, {2830,12102,3},{2827,12105,3},{2827,12110,3},{2823,12112,3},{2817,12108,3}, {2815,12102,3},{2812,12098,3},{2805,12098,3},{2800,12095,3},{2798,12093,3}, {2798,12080,3},{2803,12070,3},{2803,12060,3},{2810,12058,3},{2812,12057,3}, {2807,12058,3},{2803,12058,3},{2802,12070,3},{2797,12073,3},{2795,12083,3}, {2793,12085,3},{2787,12083,3},{2785,12080,3},{2775,12073,3},{2772,12072,3}, {2775,12063,3},{2772,12067,3},{2767,12065,3},{2765,12067,3},{2760,12063,3}, {2758,12057,3},{2750,12060,3},{2750,12065,3},{2748,12068,3},{2745,12067,3}, {2743,12063,3},{2737,12063,3},{2740,12055,3},{2738,12055,3},{2735,12053,3}, {2733,12050,3},{2732,12055,3},{2728,12053,3},{2727,12052,3},{2723,12053,3}, {2722,12050,3},{2720,12052,3},{2717,12047,3},{2718,12047,3},{2722,12047,3}, {2722,12043,3},{2722,12042,3},{2717,12042,3},{2723,12038,3},{2725,12030,3}, {2727,12030,3},{2728,12032,3},{2730,12030,3},{2732,12032,3},{2730,12028,3}, {2732,12027,3},{2730,12027,3},{2730,12023,3},{2728,12025,3},{2727,12022,3}, {2728,12020,3},{2725,12020,3},{2723,12017,3},{2722,12018,3},{2722,12020,3}, {2723,12022,3},{2725,12025,3},{2722,12030,3},{2723,12035,3},{2722,12037,3}, {2718,12035,3},{2718,12038,3},{2715,12042,3},{2715,12038,3},{2713,12042,3}, {2712,12037,3},{2710,12037,3},{2710,12038,3},{2710,12037,3},{2712,12028,3}, {2713,12025,3},{2710,12025,3},{2710,12027,3},{2705,12028,3},{2707,12025,3}, {2705,12025,3},{2703,12022,3},{2703,12025,3},{2700,12025,3},{2698,12022,3}, {2698,12020,3},{2698,12015,3},{2697,12023,3},{2693,12023,3},{2692,12022,3}, {2693,12012,3},{2690,12012,3},{2688,12010,3},{2690,12003,3},{2688,12007,3}, {2687,12002,3},{2682,12003,3},{2682,12007,3},{2678,12012,3},{2675,12010,3}, {2673,12010,3},{2673,12013,3},{2672,12015,3},{2670,12010,3},{2665,12012,3}, {2665,12013,3},{2663,12013,3},{2662,12008,3},{2663,12008,3},{2662,12002,3}, {2660,12000,3},{2662,11995,3},{2655,11993,3},{2652,11988,3},{2652,11987,3}, {2653,11983,3},{2657,11983,3},{2657,11985,3},{2660,11985,3},{2665,11998,3}, {2670,11998,3},{2672,12000,3},{2672,12003,3},{2673,12003,3},{2677,12005,3}, {2678,12008,3},{2678,12000,3},{2680,11993,3},{2675,11993,3},{2670,11990,3}, {2665,11990,3},{2665,11987,3},{2665,11985,3},{2668,11985,3},{2672,11982,3}, {2668,11980,3},{2677,11980,3},{2678,11983,3},{2680,11978,3},{2682,11980,3}, {2683,11983,3},{2685,11983,3},{2683,11980,3},{2682,11978,3},{2678,11975,3}, {2677,11977,3},{2673,11977,3},{2673,11973,3},{2680,11972,3},{2682,11968,3}, {2677,11968,3},{2672,11973,3},{2670,11970,3},{2675,11965,3},{2675,11962,3}, {2678,11963,3},{2680,11962,3},{2678,11958,3},{2677,11957,3},{2677,11955,3}, {2670,11955,3},{2670,11960,3},{2668,11960,3},{2665,11960,3},{2665,11953,3}, {2662,11955,3},{2657,11960,3},{2660,11967,3},{2662,11973,3},{2658,11973,3}, {2657,11978,3},{2655,11978,3},{2655,11977,3},{2655,11975,3},{2652,11977,3}, {2652,11980,3},{2650,11978,3},{2648,11980,3},{2645,11982,3},{2643,11980,3}, {2642,11978,3},{2640,11977,3},{2643,11975,3},{2645,11968,3},{2650,11965,3}, {2647,11963,3},{2647,11958,3},{2643,11957,3},{2643,11962,3},{2645,11963,3}, {2640,11965,3},{2635,11965,3},{2633,11965,3},{2633,11968,3},{2632,11968,3}, {2632,11975,3},{2637,11975,3},{2637,11977,3},{2640,11978,3},{2642,11982,3}, {2640,11985,3},{2637,11985,3},{2635,11988,3},{2637,11995,3},{2632,11990,3}, {2633,11982,3},{2630,11978,3},{2628,11980,3},{2628,11975,3},{2628,11967,3}, {2625,11963,3},{2625,11967,3},{2622,11967,3},{2617,11960,3},{2613,11960,3}, {2612,11957,3},{2602,11948,3},{2598,11945,3},{2605,11933,3},{2605,11927,3}, {2610,11922,3},{2612,11915,3},{2615,11910,3},{2608,11915,3},{2608,11920,3}, {2600,11923,3},{2597,11923,3},{2593,11937,3},{2597,11945,3},{2598,11948,3}, {2603,11950,3},{2605,11953,3},{2602,11968,3},{2600,11970,3},{2590,11967,3}, {2590,11962,3},{2583,11960,3},{2587,11958,3},{2588,11957,3},{2587,11958,3}, {2583,11957,3},{2580,11960,3},{2577,11960,3},{2575,11962,3},{2573,11960,3}, {2568,11958,3},{2568,11957,3},{2570,11953,3},{2568,11952,3},{2568,11945,3}, {2562,11945,3},{2562,11948,3},{2558,11948,3},{2555,11952,3},{2557,11953,3}, {2557,11955,3},{2558,11958,3},{2553,11957,3},{2552,11958,3},{2552,11957,3}, {2550,11960,3},{2548,11957,3},{2548,11958,3},{2550,11960,3},{2547,11960,3}, {2547,11962,3},{2543,11962,3},{2542,11965,3},{2538,11965,3},{2537,11962,3}, {2535,11965,3},{2533,11962,3},{2533,11958,3},{2537,11960,3},{2542,11958,3}, {2543,11958,3},{2547,11957,3},{2545,11953,3},{2543,11953,3},{2542,11953,3}, {2540,11957,3},{2537,11953,3},{2538,11952,3},{2537,11948,3},{2542,11950,3}, {2545,11948,3},{2547,11952,3},{2547,11947,3},{2543,11943,3},{2550,11945,3}, {2552,11935,3},{2555,11935,3},{2558,11938,3},{2558,11935,3},{2560,11935,3}, {2560,11932,3},{2557,11932,3},{2557,11928,3},{2553,11928,3},{2547,11923,3}, {2542,11910,3},{2540,11910,3},{2538,11912,3},{2537,11915,3},{2535,11915,3}, {2535,11917,3},{2532,11917,3},{2533,11922,3},{2532,11922,3},{2528,11918,3}, {2525,11920,3},{2525,11922,3},{2532,11925,3},{2532,11927,3},{2532,11928,3}, {2528,11930,3},{2527,11935,3},{2525,11935,3},{2523,11927,3},{2520,11928,3}, {2517,11925,3},{2518,11915,3},{2520,11913,3},{2523,11915,3},{2525,11913,3}, {2517,11908,3},{2517,11912,3},{2515,11913,3},{2515,11915,3},{2513,11915,3}, {2512,11915,3},{2513,11908,3},{2512,11910,3},{2510,11908,3},{2512,11907,3}, {2513,11907,3},{2515,11907,3},{2517,11907,3},{2513,11905,3},{2512,11903,3}, {2513,11903,3},{2517,11903,3},{2517,11905,3},{2522,11907,3},{2523,11905,3}, {2522,11898,3},{2525,11898,3},{2525,11905,3},{2527,11907,3},{2528,11898,3}, {2525,11888,3},{2522,11887,3},{2522,11892,3},{2518,11890,3},{2518,11895,3}, {2517,11897,3},{2513,11895,3},{2510,11893,3},{2510,11887,3},{2508,11885,3}, {2503,11888,3},{2500,11895,3},{2502,11898,3},{2505,11900,3},{2502,11900,3}, {2498,11898,3},{2495,11900,3},{2495,11902,3},{2493,11898,3},{2495,11897,3}, {2495,11892,3},{2493,11890,3},{2488,11893,3},{2490,11897,3},{2488,11898,3}, {2487,11890,3},{2488,11887,3},{2487,11882,3},{2488,11880,3},{2485,11877,3}, {2485,11870,3},{2487,11870,3},{2490,11873,3},{2493,11870,3},{2490,11868,3}, {2493,11868,3},{2495,11867,3},{2492,11863,3},{2488,11867,3},{2485,11865,3}, {2488,11857,3},{2485,11862,3},{2477,11863,3},{2480,11870,3},{2477,11872,3}, {2477,11877,3},{2468,11872,3},{2467,11868,3},{2468,11867,3},{2468,11865,3}, {2468,11863,3},{2463,11863,3},{2462,11867,3},{2457,11865,3},{2455,11862,3}, {2452,11855,3},{2455,11855,3},{2457,11858,3},{2463,11843,3},{2468,11843,3}, {2470,11842,3},{2467,11840,3},{2462,11842,3},{2460,11842,3},{2460,11838,3}, {2458,11835,3},{2460,11828,3},{2457,11828,3},{2457,11825,3},{2453,11823,3}, {2453,11822,3},{2457,11818,3},{2460,11818,3},{2460,11822,3},{2462,11818,3}, {2465,11820,3},{2468,11817,3},{2458,11812,3},{2458,11810,3},{2460,11808,3}, {2462,11805,3},{2457,11805,3},{2455,11802,3},{2457,11800,3},{2458,11800,3}, {2455,11797,3},{2452,11805,3},{2450,11805,3},{2448,11800,3},{2447,11800,3}, {2445,11802,3},{2445,11803,3},{2443,11802,3},{2448,11785,3},{2447,11783,3}, {2447,11788,3},{2445,11790,3},{2447,11778,3},{2440,11787,3},{2438,11790,3}, {2440,11805,3},{2435,11805,3},{2435,11802,3},{2432,11802,3},{2435,11805,3}, {2435,11808,3},{2425,11812,3},{2425,11805,3},{2415,11797,3},{2420,11797,3}, {2420,11793,3},{2418,11792,3},{2415,11793,3},{2410,11790,3},{2403,11790,3}, {2402,11783,3},{2395,11777,3},{2392,11777,3},{2390,11773,3},{2395,11773,3}, {2402,11780,3},{2402,11778,3},{2402,11775,3},{2403,11777,3},{2405,11777,3}, {2407,11775,3},{2403,11775,3},{2403,11773,3},{2405,11767,3},{2403,11767,3}, {2403,11770,3},{2398,11768,3},{2395,11770,3},{2392,11763,3},{2385,11762,3}, {2378,11763,3},{2372,11757,3},{2382,11760,3},{2388,11758,3},{2390,11757,3}, {2392,11747,3},{2395,11742,3},{2393,11740,3},{2392,11742,3},{2390,11747,3}, {2387,11748,3},{2377,11743,3},{2380,11737,3},{2375,11733,3},{2375,11730,3}, {2378,11730,3},{2378,11728,3},{2375,11728,3},{2372,11727,3},{2367,11725,3}, {2363,11727,3},{2362,11722,3},{2365,11723,3},{2368,11723,3},{2365,11720,3}, {2363,11720,3},{2362,11718,3},{2360,11713,3},{2357,11710,3},{2355,11707,3}, {2363,11707,3},{2365,11703,3},{2365,11702,3},{2362,11702,3},{2365,11698,3}, {2365,11697,3},{2362,11697,3},{2362,11695,3},{2362,11692,3},{2365,11693,3}, {2367,11692,3},{2360,11687,3},{2358,11688,3},{2355,11688,3},{2352,11685,3}, {2347,11687,3},{2345,11685,3},{2342,11683,3},{2335,11675,3},{2337,11673,3}, {2335,11668,3},{2337,11660,3},{2342,11652,3},{2337,11653,3},{2333,11655,3}, {2332,11660,3},{2333,11665,3},{2332,11668,3},{2332,11673,3},{2325,11677,3}, {2323,11678,3},{2320,11678,3},{2327,11670,3},{2328,11667,3},{2327,11667,3}, {2325,11672,3},{2323,11667,3},{2317,11662,3},{2318,11660,3},{2322,11660,3}, {2325,11657,3},{2322,11650,3},{2322,11653,3},{2322,11658,3},{2320,11658,3}, {2313,11652,3},{2310,11653,3},{2307,11652,3},{2302,11653,3},{2300,11650,3}, {2293,11648,3},{2295,11645,3},{2293,11635,3},{2295,11630,3},{2298,11628,3}, {2300,11628,3},{2298,11627,3},{2297,11625,3},{2298,11620,3},{2297,11622,3}, {2295,11627,3},{2292,11618,3},{2285,11613,3},{2283,11608,3},{2287,11608,3}, {2290,11610,3},{2293,11603,3},{2290,11607,3},{2285,11605,3},{2285,11602,3}, {2280,11595,3},{2283,11595,3},{2280,11593,3},{2278,11585,3},{2273,11580,3}, {2275,11578,3},{2280,11578,3},{2277,11582,3},{2282,11580,3},{2285,11572,3}, {2288,11567,3},{2293,11573,3},{2293,11568,3},{2290,11567,3},{2288,11558,3}, {2285,11555,3},{2287,11553,3},{2288,11555,3},{2290,11555,3},{2288,11552,3}, {2292,11547,3},{2293,11545,3},{2292,11543,3},{2292,11542,3},{2290,11542,3}, {2290,11545,3},{2290,11547,3},{2288,11550,3},{2287,11550,3},{2285,11547,3}, {2283,11557,3},{2287,11560,3},{2285,11558,3},{2280,11553,3},{2275,11552,3}, {2272,11553,3},{2273,11555,3},{2275,11555,3},{2273,11560,3},{2270,11555,3}, {2267,11557,3},{2265,11557,3},{2268,11545,3},{2268,11538,3},{2270,11535,3}, {2273,11535,3},{2275,11542,3},{2278,11540,3},{2277,11535,3},{2278,11532,3}, {2278,11522,3},{2282,11527,3},{2283,11532,3},{2290,11530,3},{2285,11525,3}, {2283,11525,3},{2282,11517,3},{2277,11517,3},{2278,11515,3},{2280,11513,3}, {2278,11505,3},{2273,11503,3},{2273,11502,3},{2270,11502,3},{2268,11498,3}, {2270,11495,3},{2275,11493,3},{2273,11490,3},{2275,11485,3},{2273,11485,3}, {2273,11487,3},{2270,11488,3},{2272,11490,3},{2267,11495,3},{2262,11492,3}, {2255,11490,3},{2253,11487,3},{2257,11488,3},{2258,11487,3},{2258,11475,3}, {2260,11473,3},{2263,11472,3},{2267,11473,3},{2272,11472,3},{2275,11475,3}, {2278,11482,3},{2282,11477,3},{2278,11475,3},{2277,11472,3},{2278,11468,3}, {2275,11462,3},{2273,11455,3},{2270,11457,3},{2270,11452,3},{2268,11452,3}, {2265,11450,3},{2265,11458,3},{2260,11457,3},{2258,11450,3},{2255,11450,3}, {2255,11452,3},{2257,11453,3},{2255,11457,3},{2253,11460,3},{2250,11462,3}, {2248,11452,3},{2245,11450,3},{2248,11448,3},{2255,11447,3},{2262,11438,3}, {2260,11430,3},{2255,11423,3},{2253,11422,3},{2253,11425,3},{2250,11427,3}, {2250,11432,3},{2247,11427,3},{2248,11427,3},{2245,11420,3},{2245,11417,3}, {2243,11417,3},{2242,11420,3},{2238,11420,3},{2242,11423,3},{2242,11428,3}, {2245,11428,3},{2248,11432,3},{2247,11433,3},{2243,11433,3},{2245,11437,3}, {2243,11438,3},{2240,11437,3},{2237,11438,3},{2237,11437,3},{2238,11428,3}, {2238,11427,3},{2235,11425,3},{2228,11430,3},{2227,11428,3},{2232,11425,3}, {2230,11423,3},{2232,11420,3},{2230,11417,3},{2237,11410,3},{2237,11405,3}, {2235,11403,3},{2237,11398,3},{2238,11395,3},{2237,11395,3},{2237,11392,3}, {2240,11390,3},{2247,11398,3},{2247,11402,3},{2252,11403,3},{2252,11395,3}, {2252,11392,3},{2248,11392,3},{2247,11387,3},{2252,11388,3},{2258,11382,3}, {2275,11375,3},{2277,11372,3},{2275,11368,3},{2275,11365,3},{2280,11367,3}, {2283,11365,3},{2288,11362,3},{2283,11362,3},{2283,11360,3},{2290,11362,3}, {2287,11360,3},{2290,11360,3},{2292,11362,3},{2303,11363,3},{2300,11360,3}, {2292,11360,3},{2298,11360,3},{2303,11362,3},{2300,11358,3},{2293,11358,3}, {2302,11358,3},{2298,11355,3},{2302,11352,3},{2305,11353,3},{2307,11353,3}, {2312,11365,3},{2313,11372,3},{2312,11383,3},{2313,11382,3},{2315,11370,3}, {2312,11363,3},{2312,11360,3},{2310,11358,3},{2308,11355,3},{2305,11352,3}, {2308,11347,3},{2310,11340,3},{2308,11340,3},{2305,11342,3},{2307,11347,3}, {2303,11350,3},{2292,11348,3},{2293,11342,3},{2290,11335,3},{2288,11330,3}, {2290,11322,3},{2288,11327,3},{2288,11337,3},{2280,11343,3},{2277,11350,3}, {2277,11345,3},{2273,11343,3},{2275,11338,3},{2272,11347,3},{2267,11352,3}, {2255,11357,3},{2248,11357,3},{2240,11353,3},{2237,11360,3},{2235,11358,3}, {2232,11360,3},{2230,11357,3},{2225,11358,3},{2222,11355,3},{2218,11355,3}, {2220,11353,3},{2218,11352,3},{2217,11347,3},{2218,11343,3},{2227,11337,3}, {2230,11335,3},{2238,11327,3},{2247,11323,3},{2257,11317,3},{2247,11317,3}, {2242,11323,3},{2237,11325,3},{2233,11330,3},{2227,11332,3},{2223,11337,3}, {2218,11338,3},{2218,11330,3},{2215,11328,3},{2212,11325,3},{2207,11325,3}, {2203,11322,3},{2205,11320,3},{2208,11320,3},{2205,11318,3},{2208,11312,3}, {2215,11313,3},{2222,11310,3},{2210,11298,3},{2202,11300,3},{2195,11302,3}, {2192,11298,3},{2187,11295,3},{2185,11290,3},{2188,11287,3},{2195,11285,3}, {2197,11282,3},{2195,11280,3},{2193,11275,3},{2188,11273,3},{2188,11270,3}, {2185,11268,3},{2185,11265,3},{2180,11263,3},{2177,11257,3},{2183,11242,3}, {2190,11242,3},{2195,11250,3},{2195,11240,3},{2198,11237,3},{2205,11240,3}, {2207,11238,3},{2200,11235,3},{2182,11240,3},{2177,11238,3},{2172,11233,3}, {2170,11228,3},{2172,11223,3},{2173,11223,3},{2175,11218,3},{2180,11220,3}, {2183,11220,3},{2180,11218,3},{2180,11203,3},{2182,11200,3},{2185,11203,3}, {2188,11203,3},{2185,11202,3},{2182,11197,3},{2192,11192,3},{2192,11190,3}, {2182,11190,3},{2177,11200,3},{2172,11190,3},{2168,11188,3},{2167,11185,3}, {2168,11183,3},{2170,11188,3},{2172,11188,3},{2172,11182,3},{2177,11183,3}, {2173,11180,3},{2175,11178,3},{2175,11177,3},{2178,11168,3},{2172,11177,3}, {2165,11178,3},{2163,11175,3},{2162,11178,3},{2162,11170,3},{2152,11163,3}, {2155,11160,3},{2158,11158,3},{2155,11158,3},{2153,11160,3},{2152,11153,3}, {2153,11152,3},{2152,11152,3},{2152,11147,3},{2155,11147,3},{2155,11145,3}, {2160,11143,3},{2157,11140,3},{2153,11143,3},{2153,11135,3},{2152,11140,3}, {2143,11127,3},{2143,11125,3},{2145,11128,3},{2150,11130,3},{2152,11122,3}, {2153,11120,3},{2152,11115,3},{2150,11117,3},{2150,11122,3},{2147,11115,3}, {2147,11110,3},{2147,11108,3},{2148,11112,3},{2150,11112,3},{2148,11108,3}, {2152,11107,3},{2153,11103,3},{2152,11102,3},{2152,11098,3},{2148,11102,3}, {2145,11100,3},{2145,11098,3},{2145,11100,3},{2147,11102,3},{2148,11105,3}, {2147,11107,3},{2147,11103,3},{2143,11100,3},{2142,11093,3},{2140,11092,3}, {2138,11087,3},{2140,11080,3},{2135,11070,3},{2125,11065,3},{2132,11065,3}, {2135,11067,3},{2132,11063,3},{2135,11063,3},{2140,11075,3},{2143,11077,3}, {2142,11075,3},{2142,11070,3},{2137,11062,3},{2132,11062,3},{2125,11063,3}, {2123,11063,3},{2125,11058,3},{2122,11058,3},{2122,11053,3},{2122,11048,3}, {2118,11043,3},{2125,11043,3},{2127,11042,3},{2128,11043,3},{2128,11047,3}, {2127,11047,3},{2130,11048,3},{2130,11045,3},{2133,11048,3},{2133,11047,3}, {2133,11045,3},{2132,11045,3},{2130,11042,3},{2140,11043,3},{2138,11042,3}, {2138,11040,3},{2142,11037,3},{2145,11038,3},{2143,11035,3},{2133,11040,3}, {2133,11038,3},{2132,11038,3},{2133,11033,3},{2132,11035,3},{2130,11037,3}, {2128,11037,3},{2123,11042,3},{2117,11040,3},{2112,11033,3},{2107,11025,3}, {2102,11022,3},{2105,11020,3},{2107,11020,3},{2108,11020,3},{2107,11020,3}, {2102,11018,3},{2098,11017,3},{2098,11015,3},{2097,11017,3},{2093,11015,3}, {2087,11017,3},{2087,11015,3},{2085,11015,3},{2083,11025,3},{2085,11033,3}, {2083,11038,3},{2077,11040,3},{2072,11040,3},{2070,11038,3},{2073,11035,3}, {2082,11035,3},{2082,11033,3},{2078,11032,3},{2075,11033,3},{2075,11032,3}, {2072,11033,3},{2068,11030,3},{2065,11030,3},{2067,11032,3},{2063,11032,3}, {2063,11037,3},{2062,11037,3},{2063,11038,3},{2060,11038,3},{2058,11042,3}, {2057,11043,3},{2057,11047,3},{2057,11048,3},{2048,11053,3},{2043,11052,3}, {2030,11040,3},{2030,11037,3},{2027,11032,3},{2027,11028,3},{2025,11028,3}, {2028,11023,3},{2027,11020,3},{2023,11017,3},{2023,11012,3},{2027,11010,3}, {2030,11003,3},{2027,11000,3},{2028,10998,3},{2023,10992,3},{2025,10992,3}, {2030,10993,3},{2033,10992,3},{2037,10988,3},{2038,10988,3},{2040,10987,3}, {2042,10993,3},{2035,10998,3},{2043,11002,3},{2047,10997,3},{2045,10995,3}, {2050,10993,3},{2045,10992,3},{2048,10990,3},{2052,10982,3},{2053,10982,3}, {2055,10985,3},{2058,10985,3},{2055,10982,3},{2058,10982,3},{2062,10980,3}, {2063,10978,3},{2063,10975,3},{2067,10975,3},{2068,10977,3},{2068,10980,3}, {2068,10983,3},{2072,10980,3},{2077,10977,3},{2080,10975,3},{2082,10977,3}, {2083,10975,3},{2087,10975,3},{2085,10973,3},{2082,10973,3},{2080,10973,3}, {2083,10970,3},{2080,10972,3},{2082,10970,3},{2087,10967,3},{2092,10967,3}, {2095,10967,3},{2095,10968,3},{2098,10967,3},{2103,10970,3},{2103,10972,3}, {2113,10967,3},{2117,10970,3},{2118,10973,3},{2117,10973,3},{2117,10975,3}, {2118,10975,3},{2122,10977,3},{2135,10977,3},{2135,10978,3},{2133,10978,3}, {2135,10982,3},{2135,10983,3},{2137,10985,3},{2137,10992,3},{2140,10990,3}, {2142,10992,3},{2145,10995,3},{2147,10992,3},{2148,10995,3},{2147,10990,3}, {2150,10983,3},{2147,10983,3},{2147,10980,3},{2155,10980,3},{2153,10977,3}, {2158,10977,3},{2157,10975,3},{2150,10977,3},{2148,10977,3},{2148,10975,3}, {2147,10973,3},{2150,10967,3},{2152,10965,3},{2162,10968,3},{2160,10963,3}, {2157,10963,3},{2157,10962,3},{2162,10960,3},{2165,10962,3},{2163,10958,3}, {2167,10957,3},{2170,10955,3},{2173,10960,3},{2175,10957,3},{2170,10950,3}, {2168,10950,3},{2168,10952,3},{2165,10952,3},{2165,10947,3},{2163,10953,3}, {2158,10958,3},{2155,10955,3},{2152,10955,3},{2148,10953,3},{2147,10947,3}, {2150,10947,3},{2145,10943,3},{2145,10935,3},{2147,10932,3},{2143,10928,3}, {2143,10925,3},{2148,10923,3},{2145,10922,3},{2142,10922,3},{2142,10917,3}, {2143,10915,3},{2140,10915,3},{2140,10913,3},{2143,10903,3},{2148,10907,3}, {2148,10912,3},{2152,10915,3},{2153,10915,3},{2160,10913,3},{2158,10912,3}, {2160,10910,3},{2160,10908,3},{2162,10907,3},{2160,10905,3},{2162,10905,3}, {2165,10907,3},{2162,10903,3},{2160,10897,3},{2162,10892,3},{2167,10890,3}, {2168,10885,3},{2172,10887,3},{2173,10887,3},{2177,10892,3},{2177,10890,3}, {2175,10887,3},{2178,10887,3},{2180,10887,3},{2178,10885,3},{2182,10887,3}, {2180,10883,3},{2182,10880,3},{2182,10878,3},{2180,10882,3},{2178,10882,3}, {2177,10885,3},{2175,10885,3},{2170,10883,3},{2175,10880,3},{2173,10880,3}, {2173,10878,3},{2172,10878,3},{2172,10880,3},{2168,10883,3},{2167,10883,3}, {2163,10882,3},{2163,10887,3},{2162,10883,3},{2163,10878,3},{2162,10873,3}, {2160,10873,3},{2163,10873,3},{2165,10872,3},{2167,10873,3},{2165,10875,3}, {2168,10875,3},{2167,10873,3},{2167,10872,3},{2168,10870,3},{2173,10873,3}, {2173,10870,3},{2170,10868,3},{2173,10865,3},{2173,10868,3},{2175,10863,3}, {2178,10867,3},{2180,10868,3},{2178,10865,3},{2182,10865,3},{2178,10863,3}, {2177,10863,3},{2178,10862,3},{2175,10863,3},{2173,10860,3},{2178,10860,3}, {2178,10858,3},{2178,10857,3},{2180,10857,3},{2188,10863,3},{2192,10860,3}, {2190,10858,3},{2190,10855,3},{2192,10857,3},{2195,10857,3},{2195,10855,3}, {2192,10853,3},{2190,10852,3},{2188,10852,3},{2187,10848,3},{2185,10848,3}, {2185,10847,3},{2187,10845,3},{2193,10848,3},{2193,10847,3},{2190,10845,3}, {2188,10845,3},{2187,10845,3},{2182,10848,3},{2180,10847,3},{2180,10850,3}, {2178,10850,3},{2177,10850,3},{2173,10850,3},{2173,10847,3},{2172,10850,3}, {2170,10848,3},{2168,10850,3},{2167,10850,3},{2170,10852,3},{2172,10853,3}, {2168,10852,3},{2167,10852,3},{2170,10855,3},{2168,10857,3},{2167,10857,3}, {2167,10855,3},{2163,10855,3},{2163,10852,3},{2162,10853,3},{2162,10852,3}, {2158,10848,3},{2160,10848,3},{2160,10850,3},{2162,10848,3},{2160,10848,3}, {2157,10847,3},{2157,10845,3},{2157,10847,3},{2155,10840,3},{2160,10838,3}, {2160,10842,3},{2158,10842,3},{2158,10843,3},{2162,10845,3},{2162,10842,3}, {2167,10847,3},{2165,10842,3},{2168,10842,3},{2167,10840,3},{2168,10835,3}, {2170,10833,3},{2172,10833,3},{2170,10832,3},{2168,10832,3},{2167,10830,3}, {2163,10832,3},{2162,10830,3},{2162,10832,3},{2158,10828,3},{2158,10832,3}, {2155,10828,3},{2150,10820,3},{2158,10827,3},{2162,10822,3},{2163,10823,3}, {2163,10822,3},{2163,10820,3},{2160,10820,3},{2157,10817,3},{2158,10813,3}, {2157,10813,3},{2157,10812,3},{2155,10808,3},{2157,10807,3},{2155,10807,3}, {2153,10807,3},{2155,10798,3},{2153,10807,3},{2153,10795,3},{2158,10793,3}, {2160,10790,3},{2165,10787,3},{2167,10778,3},{2162,10767,3},{2162,10757,3}, {2158,10753,3},{2160,10748,3},{2163,10748,3},{2165,10745,3},{2165,10742,3}, {2160,10738,3},{2162,10735,3},{2168,10735,3},{2173,10730,3},{2170,10722,3}, {2180,10710,3},{2182,10702,3},{2185,10702,3},{2190,10705,3},{2193,10703,3}, {2193,10693,3},{2197,10690,3},{2197,10682,3},{2202,10675,3},{2198,10673,3}, {2197,10668,3},{2200,10667,3},{2203,10670,3},{2208,10670,3},{2220,10667,3}, {2222,10670,3},{2233,10665,3},{2235,10657,3},{2245,10655,3},{2248,10658,3}, {2260,10660,3},{2262,10663,3},{2258,10665,3},{2257,10668,3},{2258,10672,3}, {2265,10673,3},{2270,10677,3},{2275,10677,3},{2278,10682,3},{2280,10682,3}, {2280,10677,3},{2282,10677,3},{2285,10672,3},{2287,10670,3},{2288,10668,3}, {2285,10665,3},{2287,10662,3},{2292,10660,3},{2292,10655,3},{2293,10652,3}, {2290,10650,3},{2287,10642,3},{2285,10628,3},{2287,10625,3},{2292,10625,3}, {2297,10620,3},{2298,10608,3},{2298,10602,3},{2293,10598,3},{2293,10592,3}, {2292,10587,3},{2302,10578,3},{2303,10573,3},{2305,10572,3},{2307,10557,3}, {2315,10555,3},{2318,10552,3},{2320,10550,3},{2328,10545,3},{2328,10540,3}, {2332,10535,3},{2337,10535,3},{2338,10533,3},{2333,10527,3},{2327,10523,3}, {2325,10522,3},{2327,10518,3},{2325,10513,3},{2325,10508,3},{2318,10497,3}, {2317,10495,3},{2318,10490,3},{2312,10488,3},{2310,10482,3},{2293,10487,3}, {2290,10478,3},{2282,10473,3},{2282,10467,3},{2283,10463,3},{2282,10460,3}, {2285,10458,3},{2275,10448,3},{2268,10437,3},{2273,10427,3},{2280,10425,3}, {2283,10427,3},{2283,10425,3},{2280,10412,3},{2268,10403,3},{2253,10402,3}, {2250,10397,3},{2260,10383,3},{2278,10365,3},{2278,10362,3},{2273,10360,3}, {2270,10357,3},{2265,10358,3},{2258,10353,3},{2265,10345,3},{2270,10343,3}, {2275,10343,3},{2278,10337,3},{2280,10333,3},{2273,10330,3},{2267,10328,3}, {2263,10318,3},{2258,10315,3},{2255,10317,3},{2250,10307,3},{2245,10307,3}, {2243,10303,3},{2247,10298,3},{2248,10293,3},{2260,10287,3},{2262,10278,3}, {2268,10268,3},{2270,10263,3},{2272,10260,3},{2270,10258,3},{2270,10257,3}, {2275,10255,3},{2277,10248,3},{2275,10245,3},{2268,10243,3},{2268,10238,3}, {2265,10238,3},{2263,10242,3},{2248,10227,3},{2242,10225,3},{2243,10218,3}, {2240,10213,3},{2243,10212,3},{2245,10203,3},{2243,10198,3},{2243,10192,3}, {2238,10190,3},{2238,10188,3},{2248,10180,3},{2250,10173,3},{2247,10168,3}, {2245,10167,3},{2242,10167,3},{2238,10168,3},{2237,10165,3},{2228,10163,3}, {2228,10157,3},{2225,10153,3},{2220,10158,3},{2217,10160,3},{2213,10160,3}, {2212,10157,3},{2200,10163,3},{2197,10163,3},{2193,10167,3},{2193,10170,3}, {2188,10172,3},{2187,10175,3},{2183,10175,3},{2182,10178,3},{2172,10175,3}, {2170,10178,3},{2165,10178,3},{2163,10183,3},{2160,10182,3},{2158,10177,3}, {2152,10178,3},{2148,10175,3},{2145,10177,3},{2132,10173,3},{2130,10177,3}, {2128,10182,3},{2125,10185,3},{2122,10183,3},{2122,10178,3},{2115,10178,3}, {2113,10173,3},{2115,10172,3},{2118,10170,3},{2120,10167,3},{2118,10160,3}, {2123,10162,3},{2125,10152,3},{2123,10140,3},{2118,10133,3},{2118,10128,3}, {2125,10123,3},{2130,10125,3},{2132,10123,3},{2138,10127,3},{2142,10120,3}, {2148,10122,3},{2155,10122,3},{2157,10115,3},{2163,10117,3},{2170,10112,3}, {2177,10112,3},{2172,10102,3},{2168,10088,3},{2165,10087,3},{2163,10083,3}, {2158,10080,3},{2152,10073,3},{2150,10068,3},{2148,10067,3},{2145,10060,3}, {2145,10057,3},{2147,10052,3},{2145,10048,3},{2153,10043,3},{2153,10038,3}, {2153,10035,3},{2148,10030,3},{2145,10022,3},{2143,10022,3},{2145,10018,3}, {2148,10015,3},{2150,10012,3},{2158,10010,3},{2163,10013,3},{2165,10017,3}, {2168,10012,3},{2170,10000,3},{2182,9995,3},{2185,9995,3},{2197,9998,3}, {2203,9997,3},{2205,9997,3},{2207,9988,3},{2203,9987,3},{2202,9985,3},{2205,9982,3}, {2207,9975,3},{2203,9970,3},{2207,9968,3},{2210,9965,3},{2208,9962,3},{2212,9957,3}, {2210,9952,3},{2213,9947,3},{2210,9937,3},{2212,9923,3},{2217,9917,3},{2217,9920,3}, {2220,9918,3},{2227,9923,3},{2232,9925,3},{2235,9927,3},{2238,9927,3},{2243,9933,3}, {2250,9938,3},{2253,9937,3},{2260,9938,3},{2275,9933,3},{2278,9938,3},{2287,9943,3}, {2293,9943,3},{2295,9945,3},{2292,9948,3},{2292,9953,3},{2292,9955,3},{2293,9957,3}, {2302,9952,3},{2307,9952,3},{2308,9950,3},{2310,9940,3},{2313,9935,3},{2312,9932,3}, {2312,9927,3},{2310,9923,3},{2312,9915,3},{2310,9912,3},{2313,9905,3},{2317,9907,3}, {2317,9902,3},{2318,9893,3},{2318,9888,3},{2332,9893,3},{2333,9892,3},{2333,9888,3}, {2337,9892,3},{2342,9892,3},{2348,9888,3},{2348,9882,3},{2353,9880,3},{2355,9882,3}, {2362,9888,3},{2363,9885,3},{2368,9885,3},{2370,9882,3},{2377,9882,3},{2380,9868,3}, {2383,9870,3},{2392,9868,3},{2395,9870,3},{2397,9868,3},{2400,9875,3},{2410,9890,3}, {2412,9890,3},{2417,9888,3},{2413,9885,3},{2412,9872,3},{2408,9860,3},{2412,9855,3}, {2413,9843,3},{2410,9835,3},{2413,9822,3},{2408,9805,3},{2403,9795,3},{2403,9792,3}, {2395,9783,3},{2395,9778,3},{2388,9772,3},{2387,9767,3},{2385,9765,3},{2390,9762,3}, {2393,9753,3},{2397,9755,3},{2400,9762,3},{2407,9765,3},{2412,9772,3},{2417,9775,3}, {2422,9773,3},{2425,9777,3},{2428,9775,3},{2430,9767,3},{2433,9767,3},{2435,9772,3}, {2440,9768,3},{2443,9767,3},{2443,9753,3},{2457,9757,3},{2467,9757,3},{2475,9755,3}, {2483,9768,3},{2483,9777,3},{2485,9780,3},{2492,9773,3},{2508,9772,3},{2508,9775,3}, {2513,9778,3},{2527,9783,3},{2527,9787,3},{2522,9790,3},{2522,9793,3},{2530,9802,3}, {2532,9807,3},{2538,9810,3},{2538,9813,3},{2547,9815,3},{2550,9813,3},{2555,9817,3}, {2562,9817,3},{2558,9827,3},{2555,9830,3},{2555,9833,3},{2558,9838,3},{2565,9840,3}, {2568,9843,3},{2573,9845,3},{2577,9848,3},{2580,9848,3},{2585,9853,3},{2580,9863,3}, {2587,9872,3},{2590,9872,3},{2592,9868,3},{2598,9865,3},{2600,9860,3},{2605,9860,3}, {2612,9857,3},{2615,9865,3},{2610,9865,3},{2610,9867,3},{2613,9870,3},{2617,9872,3}, {2618,9873,3},{2625,9870,3},{2625,9867,3},{2627,9867,3},{2632,9868,3},{2638,9873,3}, {2658,9875,3},{2660,9878,3},{2670,9877,3},{2672,9875,3},{2678,9878,3},{2687,9873,3}, {2690,9877,3},{2700,9873,3},{2705,9877,3},{2708,9875,3},{2710,9870,3},{2715,9872,3}, {2720,9870,3},{2733,9873,3},{2737,9873,3},{2738,9870,3},{2747,9868,3},{2758,9870,3}, {2760,9870,3},{2762,9867,3},{2760,9863,3},{2760,9860,3},{2767,9855,3},{2765,9852,3}, {2768,9843,3},{2760,9843,3},{2755,9842,3},{2755,9840,3},{2753,9835,3},{2755,9832,3}, {2768,9827,3},{2773,9823,3},{2777,9823,3},{2780,9822,3},{2782,9823,3},{2785,9818,3}, {2787,9817,3},{2788,9817,3},{2790,9820,3},{2792,9820,3},{2795,9818,3},{2797,9813,3}, {2802,9815,3},{2813,9815,3},{2818,9810,3},{2822,9807,3},{2822,9802,3},{2828,9802,3}, {2830,9797,3},{2835,9793,3},{2838,9790,3},{2837,9785,3},{2835,9783,3},{2835,9780,3}, {2842,9775,3},{2852,9772,3},{2852,9768,3},{2848,9763,3},{2855,9758,3},{2855,9757,3}, {2845,9752,3},{2838,9747,3},{2835,9748,3},{2830,9747,3},{2830,9742,3},{2827,9740,3}, {2825,9737,3},{2822,9735,3},{2823,9730,3},{2828,9725,3},{2832,9723,3},{2832,9720,3}, {2838,9713,3},{2838,9708,3},{2833,9702,3},{2833,9698,3},{2835,9693,3},{2837,9692,3}, {2837,9678,3},{2843,9673,3},{2847,9665,3},{2847,9660,3},{2843,9653,3},{2842,9645,3}, {2835,9640,3},{2840,9637,3},{2838,9632,3},{2842,9628,3},{2842,9627,3},{2848,9637,3}, {2853,9633,3},{2855,9633,3},{2857,9640,3},{2858,9640,3},{2858,9643,3},{2863,9648,3}, {2868,9647,3},{2873,9660,3},{2878,9662,3},{2890,9653,3},{2897,9652,3},{2897,9648,3}, {2907,9650,3},{2905,9643,3},{2903,9635,3},{2893,9625,3},{2890,9620,3},{2890,9617,3}, {2895,9615,3},{2900,9618,3},{2907,9615,3},{2908,9612,3},{2910,9618,3},{2915,9622,3}, {2917,9625,3},{2918,9635,3},{2925,9640,3},{2928,9637,3},{2925,9632,3},{2923,9628,3}, {2925,9623,3},{2932,9618,3},{2935,9618,3},{2947,9608,3},{2940,9595,3},{2940,9588,3}, {2937,9583,3},{2935,9577,3},{2930,9572,3},{2930,9568,3},{2925,9563,3},{2925,9558,3}, {2922,9558,3},{2922,9553,3},{2913,9555,3},{2913,9550,3},{2905,9547,3},{2903,9538,3}, {2907,9525,3},{2910,9522,3},{2912,9512,3},{2915,9508,3},{2915,9502,3},{2917,9498,3}, {2913,9502,3},{2912,9502,3},{2915,9495,3},{2918,9487,3},{2917,9480,3},{2922,9480,3}, {2927,9475,3},{2932,9470,3},{2933,9463,3},{2927,9457,3},{2922,9455,3},{2922,9442,3}, {2920,9440,3},{2915,9435,3},{2915,9428,3},{2908,9422,3},{2898,9413,3},{2897,9403,3}, {2888,9405,3},{2887,9405,3},{2883,9400,3},{2883,9393,3},{2880,9393,3},{2880,9390,3}, {2878,9390,3},{2877,9385,3},{2875,9380,3},{2870,9373,3},{2872,9370,3},{2868,9365,3}, {2868,9357,3},{2867,9332,3},{2863,9328,3},{2863,9323,3},{2838,9313,3},{2837,9308,3}, {2827,9298,3},{2825,9293,3},{2820,9288,3},{2818,9282,3},{2820,9280,3},{2813,9268,3}, {2807,9267,3},{2805,9273,3},{2797,9272,3},{2792,9263,3},{2790,9258,3},{2787,9255,3}, {2783,9245,3},{2785,9243,3},{2787,9242,3},{2782,9240,3},{2780,9238,3},{2785,9235,3}, {2780,9233,3},{2780,9230,3},{2787,9227,3},{2787,9225,3},{2782,9225,3},{2782,9213,3}, {2778,9208,3},{2777,9207,3},{2773,9202,3},{2773,9197,3},{2773,9188,3},{2777,9183,3}, {2777,9165,3},{2787,9165,3},{2792,9168,3},{2793,9167,3},{2797,9160,3},{2800,9143,3}, {2805,9133,3},{2810,9132,3},{2807,9130,3},{2807,9122,3},{2798,9113,3},{2797,9108,3}, {2798,9102,3},{2803,9095,3},{2805,9092,3},{2805,9083,3},{2808,9073,3},{2810,9068,3}, {2807,9060,3},{2808,9053,3},{2807,9047,3},{2808,9037,3},{2812,9035,3},{2820,9040,3}, {2823,9040,3},{2825,9038,3},{2830,9018,3},{2832,9000,3},{2830,8998,3},{2828,8993,3}, {2830,8990,3},{2823,8980,3},{2820,8980,3},{2815,8958,3},{2808,8955,3},{2805,8948,3}, {2787,8937,3},{2780,8923,3},{2762,8913,3},{2757,8913,3},{2750,8900,3},{2747,8897,3}, {2732,8892,3},{2738,8885,3},{2738,8882,3},{2743,8878,3},{2745,8878,3},{2752,8878,3}, {2755,8877,3},{2767,8883,3},{2787,8888,3},{2790,8887,3},{2793,8883,3},{2800,8883,3}, {2807,8875,3},{2808,8867,3},{2812,8863,3},{2807,8855,3},{2803,8853,3},{2803,8848,3}, {2798,8840,3},{2795,8815,3},{2790,8812,3},{2787,8815,3},{2785,8808,3},{2790,8805,3}, {2792,8803,3},{2790,8798,3},{2783,8795,3},{2782,8790,3},{2782,8785,3},{2780,8780,3}, {2782,8773,3},{2780,8765,3},{2780,8762,3},{2785,8755,3},{2783,8752,3},{2785,8750,3}, {2782,8742,3},{2787,8742,3},{2778,8727,3},{2780,8720,3},{2783,8715,3},{2788,8713,3}, {2797,8693,3},{2800,8687,3},{2803,8677,3},{2810,8673,3},{2810,8670,3},{2808,8667,3}, {2807,8663,3},{2808,8657,3},{2803,8655,3},{2802,8652,3},{2797,8653,3},{2793,8653,3}, {2792,8652,3},{2792,8643,3},{2795,8642,3},{2795,8635,3},{2797,8623,3},{2807,8620,3}, {2810,8620,3},{2813,8617,3},{2810,8613,3},{2807,8607,3},{2793,8608,3},{2792,8608,3}, {2792,8607,3},{2793,8595,3},{2797,8595,3},{2802,8592,3},{2810,8592,3},{2820,8585,3}, {2820,8580,3},{2822,8577,3},{2818,8573,3},{2830,8557,3},{2832,8548,3},{2832,8542,3}, {2827,8537,3},{2828,8533,3},{2827,8530,3},{2832,8522,3},{2833,8515,3},{2843,8510,3}, {2857,8512,3},{2863,8512,3},{2868,8510,3},{2867,8505,3},{2863,8500,3},{2858,8485,3}, {2862,8468,3},{2865,8468,3},{2867,8463,3},{2872,8460,3},{2870,8447,3},{2873,8442,3}, {2873,8435,3},{2880,8433,3},{2882,8425,3},{2880,8420,3},{2880,8415,3},{2887,8412,3}, {2898,8415,3},{2905,8410,3},{2912,8412,3},{2918,8408,3},{2928,8412,3},{2928,8400,3}, {2933,8397,3},{2930,8388,3},{2913,8380,3},{2907,8372,3},{2905,8363,3},{2908,8358,3}, {2913,8353,3},{2917,8345,3},{2940,8340,3},{2955,8325,3},{2967,8308,3},{2967,8295,3}, {2975,8283,3},{2977,8277,3},{2995,8260,3},{3002,8245,3},{3003,8233,3},{3008,8223,3}, {3015,8217,3},{3017,8195,3},{3025,8182,3},{3022,8180,3},{3027,8175,3},{3033,8173,3}, {3042,8167,3},{3045,8162,3},{3030,8148,3},{3027,8143,3},{3025,8138,3},{3020,8137,3}, {3015,8135,3},{3015,8125,3},{3008,8128,3},{3002,8123,3},{3002,8113,3},{3005,8108,3}, {3010,8110,3},{3012,8108,3},{3015,8107,3},{3020,8102,3},{3022,8103,3},{3027,8100,3}, {3032,8082,3},{3040,8075,3},{3047,8060,3},{3047,8053,3},{3057,8032,3},{3057,8023,3}, {3057,8020,3},{3062,8023,3},{3068,8018,3},{3068,8023,3},{3073,8025,3},{3077,8022,3}, {3080,8020,3},{3080,8017,3},{3078,8012,3},{3078,8008,3},{3085,8005,3},{3088,7997,3}, {3088,7992,3},{3097,7988,3},{3098,7975,3},{3098,7972,3},{3097,7967,3},{3093,7960,3}, {3097,7955,3},{3102,7950,3},{3103,7942,3},{3110,7940,3},{3115,7930,3},{3122,7928,3}, {3123,7925,3},{3127,7925,3},{3130,7922,3},{3133,7922,3},{3135,7917,3},{3140,7917,3}, {3142,7912,3},{3143,7908,3},{3142,7902,3},{3133,7900,3},{3137,7895,3},{3130,7890,3}, {3130,7887,3},{3130,7885,3},{3128,7882,3},{3130,7877,3},{3135,7877,3},{3145,7880,3}, {3147,7877,3},{3148,7872,3},{3152,7872,3},{3162,7885,3},{3165,7880,3},{3168,7878,3}, {3167,7877,3},{3168,7875,3},{3173,7872,3},{3175,7872,3},{3178,7870,3},{3182,7872,3}, {3198,7877,3},{3205,7867,3},{3212,7860,3},{3222,7855,3},{3223,7848,3},{3225,7848,3}, {3235,7848,3},{3238,7845,3},{3242,7848,3},{3253,7840,3},{3257,7842,3},{3258,7848,3}, {3257,7857,3},{3258,7865,3},{3260,7868,3},{3263,7870,3},{3263,7877,3},{3260,7878,3}, {3257,7875,3},{3247,7878,3},{3243,7887,3},{3237,7893,3},{3235,7897,3},{3238,7903,3}, {3238,7910,3},{3242,7912,3},{3247,7912,3},{3250,7917,3},{3252,7927,3},{3250,7932,3}, {3253,7935,3},{3260,7945,3},{3265,7950,3},{3275,7953,3},{3280,7947,3},{3288,7945,3}, {3293,7938,3},{3297,7935,3},{3310,7937,3},{3313,7940,3},{3317,7940,3},{3318,7937,3}, {3320,7925,3},{3323,7915,3},{3322,7910,3},{3328,7908,3},{3332,7900,3},{3340,7893,3}, {3353,7893,3},{3357,7890,3},{3363,7892,3},{3363,7895,3},{3362,7902,3},{3363,7903,3}, {3372,7902,3},{3375,7902,3},{3383,7895,3},{3397,7890,3},{3402,7897,3},{3400,7910,3}, {3403,7913,3},{3402,7942,3},{3403,7943,3},{3407,7947,3},{3412,7952,3},{3418,7952,3}, {3418,7955,3},{3420,7958,3},{3440,7953,3},{3443,7953,3},{3442,7972,3},{3445,7977,3}, {3450,7973,3},{3453,7972,3},{3455,7977,3},{3457,7985,3},{3467,7988,3},{3465,8002,3}, {3467,8007,3},{3477,8010,3},{3485,8018,3},{3490,8020,3},{3510,8020,3},{3520,8030,3}, {3523,8030,3},{3532,8028,3},{3535,8030,3},{3542,8038,3},{3547,8038,3},{3552,8038,3}, {3552,8035,3},{3550,8030,3},{3555,8025,3},{3557,8020,3},{3545,8013,3},{3542,8008,3}, {3542,8005,3},{3545,8002,3},{3560,7997,3},{3562,7992,3},{3557,7987,3},{3557,7983,3}, {3563,7982,3},{3565,7970,3},{3577,7963,3},{3580,7967,3},{3582,7965,3},{3583,7960,3}, {3587,7960,3},{3587,7957,3},{3585,7947,3},{3588,7943,3},{3593,7945,3},{3597,7943,3}, {3598,7933,3},{3595,7923,3},{3595,7912,3},{3592,7902,3},{3590,7893,3},{3592,7883,3}, {3592,7875,3},{3585,7868,3},{3582,7863,3},{3577,7853,3},{3577,7843,3},{3572,7838,3}, {3570,7830,3},{3567,7827,3},{3562,7817,3},{3555,7813,3},{3557,7800,3},{3555,7797,3}, {3550,7797,3},{3548,7795,3},{3547,7792,3},{3550,7782,3},{3550,7778,3},{3547,7773,3}, {3547,7770,3},{3547,7763,3},{3548,7752,3},{3547,7742,3},{3553,7732,3},{3553,7718,3}, {3555,7712,3},{3558,7708,3},{3560,7692,3},{3565,7687,3},{3565,7678,3},{3572,7672,3}, {3575,7658,3},{3582,7657,3},{3590,7658,3},{3592,7657,3},{3587,7653,3},{3587,7645,3}, {3583,7642,3},{3583,7637,3},{3582,7633,3},{3582,7628,3},{3582,7618,3},{3583,7615,3}, {3590,7615,3},{3598,7612,3},{3600,7608,3},{3602,7597,3},{3608,7593,3},{3612,7592,3}, {3617,7600,3},{3618,7600,3},{3620,7600,3},{3623,7603,3},{3632,7598,3},{3642,7602,3}, {3645,7600,3},{3655,7593,3},{3662,7590,3},{3667,7585,3},{3673,7575,3},{3677,7567,3}, {3677,7557,3},{3677,7553,3},{3673,7553,3},{3673,7545,3},{3677,7543,3},{3685,7543,3}, {3692,7540,3},{3697,7520,3},{3700,7515,3},{3698,7497,3},{3695,7492,3},{3692,7490,3}, {3697,7488,3},{3702,7482,3},{3702,7473,3},{3707,7468,3},{3703,7457,3},{3703,7453,3}, {3708,7450,3},{3713,7440,3},{3717,7438,3},{3718,7440,3},{3718,7447,3},{3723,7452,3}, {3723,7458,3},{3725,7460,3},{3723,7465,3},{3727,7467,3},{3727,7470,3},{3730,7475,3}, {3723,7480,3},{3722,7482,3},{3723,7490,3},{3723,7493,3},{3728,7497,3},{3732,7510,3}, {3738,7512,3},{3740,7518,3},{3743,7513,3},{3752,7505,3},{3757,7495,3},{3765,7490,3}, {3770,7495,3},{3773,7495,3},{3778,7498,3},{3785,7490,3},{3788,7493,3},{3792,7490,3}, {3793,7492,3},{3802,7492,3},{3808,7482,3},{3820,7480,3},{3830,7480,3},{3838,7487,3}, {3847,7485,3},{3853,7478,3},{3853,7472,3},{3858,7465,3},{3867,7435,3},{3865,7425,3}, {3865,7420,3},{3868,7417,3},{3867,7413,3},{3862,7412,3},{3860,7407,3},{3855,7408,3}, {3853,7395,3},{3862,7382,3},{3870,7378,3},{3873,7375,3},{3880,7377,3},{3887,7370,3}, {3892,7373,3},{3893,7383,3},{3897,7385,3},{3900,7383,3},{3908,7372,3},{3915,7370,3}, {3917,7367,3},{3923,7362,3},{3935,7367,3},{3943,7365,3},{3947,7367,3},{3948,7385,3}, {3957,7390,3},{3960,7395,3},{3963,7393,3},{3972,7392,3},{3975,7385,3},{3978,7385,3}, {3983,7385,3},{3987,7390,3},{3993,7392,3},{3997,7397,3},{4005,7400,3},{4007,7403,3}, {4007,7410,3},{4012,7422,3},{4010,7430,3},{4010,7437,3},{4013,7443,3},{4027,7460,3}, {4028,7467,3},{4035,7473,3},{4033,7488,3},{4035,7488,3},{4042,7482,3},{4052,7487,3}, {4045,7507,3},{4047,7517,3},{4045,7523,3},{4048,7525,3},{4048,7528,3},{4052,7533,3}, {4063,7552,3},{4065,7558,3},{4060,7562,3},{4048,7565,3},{4045,7570,3},{4040,7567,3}, {4030,7570,3},{4032,7578,3},{4030,7593,3},{4037,7598,3},{4040,7607,3},{4038,7620,3}, {4045,7628,3},{4043,7630,3},{4037,7632,3},{4035,7635,3},{4043,7648,3},{4055,7657,3}, {4060,7663,3},{4075,7665,3},{4082,7670,3},{4085,7678,3},{4093,7678,3},{4102,7687,3}, {4105,7702,3},{4105,7708,3},{4102,7713,3},{4100,7727,3},{4103,7738,3},{4098,7750,3}, {4098,7755,3},{4100,7760,3},{4100,7768,3},{4107,7787,3},{4105,7803,3},{4103,7808,3}, {4110,7818,3},{4115,7823,3},{4123,7828,3},{4128,7837,3},{4130,7838,3},{4135,7837,3}, {4138,7838,3},{4147,7853,3},{4148,7863,3},{4153,7868,3},{4157,7882,3},{4163,7892,3}, {4165,7900,3},{4172,7913,3},{4173,7922,3},{4178,7932,3},{4178,7940,3},{4178,7945,3}, {4188,7965,3},{4188,7978,3},{4192,7982,3},{4198,7983,3},{4202,7988,3},{4203,8003,3}, {4203,8020,3},{4205,8027,3},{4210,8028,3},{4213,8025,3},{4220,8023,3},{4222,8028,3}, {4225,8030,3},{4228,8027,3},{4232,8028,3},{4237,8023,3},{4245,8022,3},{4248,8025,3}, {4257,8018,3},{4263,8015,3},{4265,8017,3},{4273,8023,3},{4278,8025,3},{4283,8027,3}, {4283,8038,3},{4288,8058,3},{4293,8057,3},{4295,8045,3},{4300,8038,3},{4303,8038,3}, {4307,8048,3},{4313,8065,3},{4310,8077,3},{4313,8080,3},{4315,8082,3},{4328,8077,3}, {4330,8068,3},{4333,8067,3},{4342,8073,3},{4348,8073,3},{4367,8062,3},{4392,8050,3}, {4398,8045,3},{4407,8042,3},{4413,8037,3},{4425,8040,3},{4445,8035,3},{4460,8040,3}, {4465,8038,3},{4468,8043,3},{4470,8052,3},{4473,8052,3},{4477,8043,3},{4477,8037,3}, {4482,8027,3},{4480,8000,3},{4487,7988,3},{4490,7987,3},{4493,7995,3},{4502,8008,3}, {4503,8012,3},{4505,8040,3},{4505,8042,3},{4510,8045,3},{4512,8047,3},{4512,8060,3}, {4515,8077,3},{4513,8087,3},{4517,8097,3},{4517,8105,3},{4523,8123,3},{4530,8155,3}, {4533,8163,3},{4535,8170,3},{4535,8175,3},{4530,8180,3},{4520,8182,3},{4518,8190,3}, {4515,8195,3},{4517,8202,3},{4522,8217,3},{4523,8230,3},{4523,8233,3},{4513,8248,3}, {4513,8257,3},{4525,8263,3},{4535,8267,3},{4543,8265,3},{4547,8257,3},{4550,8237,3}, {4553,8232,3},{4557,8232,3},{4577,8242,3},{4590,8252,3},{4617,8257,3},{4635,8272,3}, {4677,8287,3},{4697,8302,3},{4722,8303,3},{4723,8313,3},{4722,8318,3},{4718,8323,3}, {4713,8342,3},{4707,8357,3},{4702,8378,3},{4697,8392,3},{4698,8413,3},{4700,8418,3}, {4700,8430,3},{4700,8445,3},{4698,8453,3},{4700,8468,3},{4693,8478,3},{4688,8477,3}, {4683,8473,3},{4683,8477,3},{4687,8497,3},{4690,8498,3},{4693,8507,3},{4700,8518,3}, {4705,8523,3},{4707,8552,3},{4718,8558,3},{4720,8568,3},{4728,8570,3},{4732,8568,3}, {4737,8570,3},{4752,8560,3},{4762,8562,3},{4795,8553,3},{4807,8560,3},{4815,8562,3}, {4838,8577,3},{4842,8580,3},{4842,8587,3},{4843,8602,3},{4842,8623,3},{4845,8630,3}, {4850,8633,3},{4850,8647,3},{4853,8660,3},{4862,8665,3},{4863,8668,3},{4873,8678,3}, {4880,8677,3},{4885,8682,3},{4890,8675,3},{4897,8673,3},{4902,8677,3},{4907,8685,3}, {4910,8687,3},{4910,8703,3},{4913,8717,3},{4912,8722,3},{4910,8732,3},{4908,8743,3}, {4910,8750,3},{4913,8753,3},{4913,8760,3},{4917,8772,3},{4917,8783,3},{4273,9638,131}, {4287,9637,3},{4315,9598,3},{4323,9590,3},{4330,9590,3},{4340,9585,3},{4368,9567,3}, {4398,9552,3},{4402,9533,3},{4403,9532,3},{4418,9533,3},{4425,9540,3},{4427,9540,3}, {4425,9503,3},{4433,9487,3},{4433,9472,3},{4435,9467,3},{4445,9458,3},{4452,9447,3}, {4452,9437,3},{4468,9413,3},{4467,9400,3},{4468,9393,3},{4485,9375,3},{4492,9362,3}, {4493,9350,3},{4498,9337,3},{4498,9327,3},{4500,9318,3},{4502,9313,3},{4500,9290,3}, {4500,9228,3},{4505,9198,3},{4505,9177,3},{4508,9167,3},{4510,9148,3},{4520,9117,3}, {4520,9090,3},{4532,9070,3},{4548,9067,3},{4560,9067,3},{4577,9077,3},{4587,9085,3}, {4597,9098,3},{4602,9102,3},{4612,9100,3},{4630,9090,3},{4638,9090,3},{4647,9095,3}, {4650,9102,3},{4667,9105,3},{4673,9103,3},{4675,9098,3},{4675,9100,3},{4682,9092,3}, {4685,9095,3},{4688,9090,3},{4695,9090,3},{4698,9083,3},{4700,9073,3},{4707,9070,3}, {4708,9067,3},{4722,9055,3},{4727,9053,3},{4732,9050,3},{4738,9052,3},{4740,9047,3}, {4750,9045,3},{4762,9035,3},{4765,9035,3},{4768,9030,3},{4773,9012,3},{4783,9007,3}, {4787,8998,3},{4785,8995,3},{4782,8995,3},{4780,8988,3},{4782,8977,3},{4787,8973,3}, {4790,8965,3},{4797,8958,3},{4802,8960,3},{4803,8937,3},{4802,8928,3},{4798,8930,3}, {4793,8917,3},{4792,8890,3},{4807,8885,3},{4815,8875,3},{4818,8868,3},{4823,8865,3}, {4823,8860,3},{4830,8865,3},{4835,8857,3},{4838,8853,3},{4837,8845,3},{4842,8837,3}, {4845,8837,3},{4847,8833,3},{4845,8820,3},{4850,8808,3},{4850,8797,3},{4857,8798,3}, {4862,8802,3},{4865,8808,3},{4868,8808,3},{4872,8798,3},{4875,8798,3},{4875,8795,3}, {4880,8783,3},{4885,8782,3},{4887,8773,3},{4890,8770,3},{4892,8772,3},{4893,8780,3}, {4902,8787,3},{4912,8787,3},{4917,8783,3},{4918,8798,3},{4923,8805,3},{4927,8817,3}, {4930,8817,3},{4937,8813,3},{4947,8822,3},{4948,8835,3},{4948,8857,3},{4950,8865,3}, {4945,8873,3},{4943,8885,3},{4945,8890,3},{4947,8890,3},{4947,8888,3},{4953,8888,3}, {4955,8892,3},{4953,8895,3},{4947,8898,3},{4947,8902,3},{4950,8918,3},{4953,8923,3}, {4957,8923,3},{4962,8920,3},{4963,8923,3},{4963,8927,3},{4958,8938,3},{4965,8947,3}, {4968,8963,3},{4972,8973,3},{4975,8973,3},{4980,8965,3},{4982,8967,3},{4985,8963,3}, {4990,8963,3},{4992,8967,3},{4995,8978,3},{4995,8990,3},{4997,8998,3},{5000,9002,3}, {5005,9002,3},{5008,9005,3},{5012,9025,3},{5018,9035,3},{5018,9045,3},{5022,9052,3}, {5022,9065,3},{5022,9070,3},{5025,9073,3},{5030,9075,3},{5033,9087,3},{5043,9103,3}, {5043,9117,3},{5048,9130,3},{5047,9143,3},{5048,9145,3},{5053,9147,3},{5057,9160,3}, {5065,9167,3},{5070,9178,3},{5072,9192,3},{5068,9212,3},{5070,9222,3},{5075,9230,3}, {5085,9233,3},{5087,9238,3},{5087,9242,3},{5078,9247,3},{5075,9257,3},{5068,9267,3}, {5068,9270,3},{5072,9277,3},{5080,9280,3},{5078,9298,3},{5075,9300,3},{5065,9297,3}, {5063,9302,3},{5062,9302,3},{5060,9310,3},{5062,9322,3},{5060,9335,3},{5062,9343,3}, {5058,9355,3},{5057,9428,3},{5055,9430,3},{5050,9430,3},{5042,9435,3},{5030,9437,3}, {5022,9438,3},{5018,9442,3},{5017,9452,3},{5012,9453,3},{5007,9460,3},{5002,9463,3}, {5007,9483,3},{5005,9498,3},{5002,9502,3},{4995,9508,3},{4995,9542,3},{4990,9553,3}, {4993,9560,3},{4995,9575,3},{5002,9583,3},{5002,9590,3},{4995,9597,3},{5000,9607,3}, {4995,9630,3},{4990,9638,3},{4993,9650,3},{4993,9655,3},{4987,9660,3},{4987,9662,3}, {4992,9672,3},{4990,9700,3},{4982,9708,3},{4980,9715,3},{4977,9717,3},{4973,9728,3}, {4973,9733,3},{4978,9748,3},{4985,9758,3},{4988,9760,3},{4992,9758,3},{4993,9760,3}, {4997,9778,3},{4993,9787,3},{4998,9795,3},{5005,9810,3},{5030,9828,3},{5040,9828,3}, {5047,9833,3},{5052,9832,3},{5057,9827,3},{5057,9817,3},{5063,9807,3},{5078,9797,3}, {5085,9802,3},{5087,9797,3},{5090,9795,3},{5093,9788,3},{5100,9783,3},{5107,9788,3}, {5117,9792,3},{5122,9797,3},{5132,9793,3},{5145,9805,3},{5147,9812,3},{5145,9820,3}, {5145,9823,3},{5152,9827,3},{5158,9825,3},{5172,9833,3},{5178,9862,3},{5183,9870,3}, {5203,9887,3},{5212,9888,3},{5215,9893,3},{5212,9900,3},{5207,9903,3},{5200,9925,3}, {5195,9932,3},{5190,9957,3},{5188,9973,3},{5178,9988,3},{5175,9995,3},{5173,10025,3}, {5173,10055,3},{5172,10060,3},{5170,10070,3},{5157,10110,3},{5153,10115,3}, {5152,10127,3},{5145,10138,3},{5148,10158,3},{5145,10167,3},{5145,10177,3}, {5143,10182,3},{5142,10193,3},{5140,10200,3},{5138,10208,3},{5133,10222,3}, {5130,10223,3},{5125,10215,3},{5120,10218,3},{5112,10217,3},{5098,10225,3}, {5095,10223,3},{5090,10227,3},{5085,10223,3},{5083,10223,3},{5078,10227,3}, {5075,10233,3},{5072,10235,3},{5065,10230,3},{5057,10233,3},{5055,10237,3}, {5053,10248,3},{5052,10253,3},{5042,10262,3},{5038,10278,3},{5032,10292,3}, {5030,10300,3},{5032,10318,3},{5030,10325,3},{5022,10328,3},{5020,10332,3}, {5020,10347,3},{5013,10367,3},{5015,10373,3},{5020,10382,3},{5013,10407,3}, {5017,10425,3},{5020,10427,3},{5023,10430,3},{5025,10435,3},{5030,10442,3}, {5030,10463,3},{5035,10472,3},{5035,10483,3},{5037,10490,3},{5040,10502,3}, {5040,10512,3},{5042,10518,3},{5047,10528,3},{5048,10535,3},{5043,10563,3}, {5043,10580,3},{5043,10585,3},{5042,10598,3},{5038,10607,3},{5035,10607,3}, {5033,10617,3},{5030,10625,3},{5035,10655,3},{5033,10673,3},{5020,10700,3}, {5015,10703,3},{5008,10708,3},{5005,10715,3},{5003,10718,3},{5000,10727,3}, {5002,10732,3},{4998,10742,3},{4998,10775,3},{4995,10782,3},{4997,10785,3}, {4995,10790,3},{4995,10798,3},{4985,10795,3},{4975,10798,3},{4968,10795,3}, {4967,10797,3},{4967,10803,3},{4962,10803,3},{4958,10807,3},{4955,10815,3}, {4953,10827,3},{4943,10837,3},{4933,10855,3},{4935,10888,3},{4935,10895,3}, {4933,10907,3},{4937,10920,3},{4933,10935,3},{4930,10943,3},{4928,10948,3}, {4925,10950,3},{4923,10955,3},{4923,10975,3},{4918,10985,3},{4920,10990,3}, {4918,11008,3},{4917,11020,3},{4918,11030,3},{4925,11040,3},{4920,11047,3}, {4915,11070,3},{4915,11078,3},{4918,11095,3},{4930,11118,3},{4933,11130,3}, {4937,11137,3},{4935,11148,3},{4935,11153,3},{4940,11168,3},{4940,11183,3}, {4940,11197,3},{4943,11213,3},{4953,11248,3},{4953,11263,3},{4950,11270,3}, {4950,11277,3},{4953,11290,3},{4958,11298,3},{4960,11308,3},{4967,11310,3}, {4980,11320,3},{4993,11345,3},{4997,11348,3},{5002,11357,3},{5008,11378,3}, {5008,11387,3},{5017,11400,3},{5018,11407,3},{5025,11418,3},{5028,11432,3}, {5025,11445,3},{5025,11455,3},{5027,11467,3},{5025,11478,3},{5023,11485,3}, {5015,11502,3},{5000,11520,3},{4990,11540,3},{4990,11563,3},{4988,11573,3}, {4990,11580,3},{5000,11607,3},{5003,11622,3},{4997,11643,3},{4993,11662,3}, {4983,11672,3},{4980,11668,3},{4975,11665,3},{4970,11662,3},{4965,11658,3}, {4960,11657,3},{4957,11653,3},{4952,11650,3},{4947,11647,3},{4942,11643,3}, {4938,11640,3},{4933,11637,3},{4928,11633,3},{4923,11630,3},{4918,11627,3}, {4915,11625,3},{4910,11622,3},{4905,11618,3},{4900,11615,3},{4895,11612,3}, {4892,11608,3},{4887,11605,3},{4880,11612,3},{4852,11582,3},{4827,11583,3}, {4818,11548,3},{4788,11558,3},{4767,11597,3},{4778,11607,3},{4787,11625,3}, {4783,11643,3},{4788,11680,3},{4787,11692,3},{4780,11713,3},{4763,11738,3}, {4795,11768,3},{4800,11778,3},{4803,11783,3},{4802,11790,3},{4800,11797,3}, {4800,11803,3},{4803,11817,3},{4803,11822,3},{4800,11828,3},{4802,11835,3}, {4800,11843,3},{4795,11853,3},{4780,11878,3},{4770,11913,3},{4767,11912,3}, {4753,11913,3},{4748,11933,3},{4743,11932,3},{4742,11935,3},{4730,11952,3}, {4728,11957,3},{4712,11977,3},{4703,11980,3},{4698,11985,3},{4693,11985,3}, {4688,11990,3},{4677,11988,3},{4667,11990,3},{4663,11987,3},{4667,11983,3}, {4667,11973,3},{4660,11968,3},{4658,11963,3},{4662,11958,3},{4663,11945,3}, {4660,11932,3},{4667,11925,3},{4665,11908,3},{4675,11898,3},{4673,11890,3}, {4677,11888,3},{4677,11885,3},{4673,11878,3},{4670,11877,3},{4670,11870,3}, {4673,11863,3},{4672,11847,3},{4675,11833,3},{4670,11818,3},{4668,11812,3}, {4665,11805,3},{4662,11790,3},{4658,11785,3},{4653,11782,3},{4652,11768,3}, {4658,11762,3},{4660,11762,3},{4658,11742,3},{4652,11743,3},{4647,11737,3}, {4638,11735,3},{4637,11710,3},{4640,11683,3},{4635,11682,3},{4635,11678,3}, {4632,11673,3},{4628,11660,3},{4625,11658,3},{4613,11640,3},{4598,11628,3}, {4590,11623,3},{4580,11628,3},{4572,11620,3},{4568,11613,3},{4568,11605,3}, {4555,11582,3},{4545,11570,3},{4540,11538,3},{4540,11518,3},{4538,11493,3}, {4543,11477,3},{4540,11458,3},{4522,11447,3},{4508,11425,3},{4503,11417,3}, {4493,11407,3},{4493,11392,3},{4487,11385,3},{4487,11378,3},{4475,11360,3}, {4480,11348,3},{4478,11323,3},{4483,11300,3},{4485,11293,3},{4483,11283,3}, {4493,11258,3},{4498,11253,3},{4508,11243,3},{4508,11217,3},{4510,11200,3}, {4500,11178,3},{4468,11157,3},{4457,11155,3},{4443,11143,3},{4435,11142,3}, {4432,11143,3},{4430,11148,3},{4418,11155,3},{4407,11167,3},{4398,11180,3}, {4390,11190,3},{4378,11198,3},{4370,11197,3},{4367,11192,3},{4367,11178,3}, {4350,11157,3},{4350,11143,3},{4345,11133,3},{4342,11123,3},{4332,11100,3}, {4312,11077,3},{4308,11070,3},{4302,11068,3},{4290,11057,3},{4287,11050,3}, {4277,11040,3},{4267,11013,3},{4265,11013,3},{4265,10995,3},{4255,10968,3}, {4248,10957,3},{4248,10953,3},{4245,10952,3},{4245,10935,3},{4243,10932,3}, {4245,10898,3},{4240,10885,3},{4243,10858,3},{4243,10833,3},{4247,10825,3}, {4240,10790,3},{4242,10763,3},{4242,10758,3},{4245,10748,3},{4240,10730,3}, {4235,10728,3},{4228,10683,3},{4218,10643,3},{4208,10618,3},{4200,10587,3}, {4188,10558,3},{4177,10533,3},{4173,10523,3},{4173,10520,3},{4153,10493,3}, {4162,10453,3},{4185,10455,3},{4185,10448,3},{4182,10432,3},{4180,10413,3}, {4180,10382,3},{4190,10328,3},{4200,10302,3},{4210,10253,3},{4212,10237,3}, {4215,10218,3},{4220,10207,3},{4247,10183,3},{4252,10178,3},{4252,10170,3}, {4253,10163,3},{4253,10157,3},{4255,10150,3},{4257,10143,3},{4258,10135,3}, {4258,10128,3},{4260,10122,3},{4262,10115,3},{4263,10108,3},{4265,10102,3}, {4265,10095,3},{4267,10088,3},{4268,10080,3},{4268,10073,3},{4268,10065,3}, {4268,10058,3},{4268,10052,3},{4268,10045,3},{4268,10037,3},{4268,10030,3}, {4263,10025,3},{4265,10018,3},{4265,10010,3},{4265,10003,3},{4258,9992,3}, {4255,9965,3},{4255,9947,3},{4252,9933,3},{4253,9908,3},{4255,9878,3},{4260,9840,3}, {4262,9800,3},{4267,9757,3},{4262,9745,3},{4262,9730,3},{4267,9712,3},{4270,9687,3}, {4272,9638,3},{4273,9638,3},{4177,5243,131},{4190,5250,3},{4197,5247,3}, {4200,5243,3},{4205,5243,3},{4210,5240,3},{4218,5243,3},{4218,5248,3},{4233,5260,3}, {4240,5260,3},{4242,5263,3},{4253,5268,3},{4262,5265,3},{4272,5257,3},{4275,5258,3}, {4272,5258,3},{4265,5267,3},{4258,5272,3},{4265,5275,3},{4272,5273,3},{4275,5268,3}, {4275,5262,3},{4277,5263,3},{4280,5258,3},{4283,5243,3},{4282,5233,3},{4278,5228,3}, {4283,5223,3},{4287,5220,3},{4288,5217,3},{4288,5208,3},{4283,5195,3},{4283,5192,3}, {4292,5183,3},{4303,5177,3},{4308,5172,3},{4310,5167,3},{4315,5168,3},{4318,5165,3}, {4317,5153,3},{4315,5152,3},{4317,5140,3},{4315,5127,3},{4320,5127,3},{4330,5132,3}, {4345,5132,3},{4355,5127,3},{4358,5122,3},{4362,5122,3},{4362,5115,3},{4367,5112,3}, {4380,5102,3},{4392,5098,3},{4400,5092,3},{4403,5085,3},{4408,5087,3},{4420,5083,3}, {4427,5068,3},{4428,5042,3},{4433,5028,3},{4437,5023,3},{4457,5022,3},{4458,5023,3}, {4457,5027,3},{4465,5032,3},{4463,5043,3},{4463,5055,3},{4463,5058,3},{4462,5063,3}, {4462,5072,3},{4460,5075,3},{4463,5078,3},{4463,5087,3},{4457,5095,3},{4457,5100,3}, {4453,5098,3},{4452,5103,3},{4448,5112,3},{4448,5120,3},{4452,5127,3},{4455,5128,3}, {4455,5137,3},{4455,5138,3},{4453,5137,3},{4452,5138,3},{4452,5140,3},{4452,5143,3}, {4453,5145,3},{4452,5150,3},{4452,5157,3},{4453,5157,3},{4458,5147,3},{4462,5142,3}, {4460,5130,3},{4473,5122,3},{4480,5110,3},{4482,5102,3},{4487,5095,3},{4493,5100,3}, {4495,5095,3},{4498,5097,3},{4498,5107,3},{4503,5110,3},{4507,5120,3},{4502,5125,3}, {4502,5128,3},{4510,5125,3},{4517,5125,3},{4532,5138,3},{4535,5142,3},{4538,5142,3}, {4533,5147,3},{4533,5158,3},{4538,5165,3},{4540,5172,3},{4543,5173,3},{4545,5175,3}, {4543,5178,3},{4540,5178,3},{4540,5188,3},{4537,5193,3},{4538,5200,3},{4538,5215,3}, {4540,5245,3},{4540,5248,3},{4533,5283,3},{4532,5290,3},{4532,5298,3},{4530,5310,3}, {4533,5320,3},{4533,5325,3},{4537,5325,3},{4538,5315,3},{4540,5310,3},{4540,5307,3}, {4547,5292,3},{4547,5288,3},{4548,5285,3},{4552,5275,3},{4555,5273,3},{4565,5275,3}, {4565,5278,3},{4577,5287,3},{4580,5293,3},{4600,5308,3},{4605,5308,3},{4610,5312,3}, {4628,5317,3},{4637,5315,3},{4647,5303,3},{4645,5310,3},{4648,5307,3},{4652,5307,3}, {4648,5305,3},{4648,5300,3},{4657,5303,3},{4655,5303,3},{4655,5308,3},{4662,5310,3}, {4660,5312,3},{4663,5315,3},{4663,5320,3},{4668,5320,3},{4672,5320,3},{4672,5313,3}, {4675,5310,3},{4685,5308,3},{4690,5305,3},{4690,5300,3},{4697,5290,3},{4695,5283,3}, {4695,5262,3},{4695,5257,3},{4698,5253,3},{4700,5245,3},{4688,5235,3},{4687,5218,3}, {4682,5225,3},{4680,5220,3},{4682,5207,3},{4685,5207,3},{4685,5203,3},{4688,5200,3}, {4690,5200,3},{4693,5202,3},{4693,5200,3},{4687,5193,3},{4688,5187,3},{4690,5187,3}, {4693,5188,3},{4690,5177,3},{4695,5168,3},{4705,5168,3},{4705,5165,3},{4705,5163,3}, {4698,5160,3},{4705,5153,3},{4712,5120,3},{4707,5112,3},{4705,5097,3},{4702,5088,3}, {4703,5085,3},{4700,5085,3},{4690,5077,3},{4692,5073,3},{4693,5073,3},{4697,5075,3}, {4693,5068,3},{4693,5062,3},{4685,5060,3},{4682,5055,3},{4688,5058,3},{4687,5050,3}, {4690,5043,3},{4680,5037,3},{4685,5037,3},{4680,5033,3},{4680,5030,3},{4672,5023,3}, {4672,5022,3},{4677,5023,3},{4675,5020,3},{4668,5007,3},{4663,5003,3},{4663,4997,3}, {4658,4988,3},{4657,4983,3},{4655,4982,3},{4653,4980,3},{4657,4977,3},{4653,4975,3}, {4655,4970,3},{4652,4970,3},{4655,4968,3},{4658,4962,3},{4652,4963,3},{4652,4960,3}, {4650,4958,3},{4653,4957,3},{4657,4947,3},{4658,4947,3},{4650,4950,3},{4650,4947,3}, {4653,4947,3},{4655,4943,3},{4653,4942,3},{4658,4930,3},{4648,4940,3},{4648,4932,3}, {4652,4930,3},{4652,4928,3},{4650,4930,3},{4648,4928,3},{4643,4935,3},{4640,4937,3}, {4638,4937,3},{4640,4933,3},{4643,4928,3},{4647,4927,3},{4647,4922,3},{4645,4925,3}, {4642,4925,3},{4640,4928,3},{4638,4925,3},{4642,4917,3},{4637,4917,3},{4638,4910,3}, {4640,4903,3},{4643,4897,3},{4645,4890,3},{4648,4882,3},{4650,4880,3},{4655,4875,3}, {4657,4867,3},{4660,4863,3},{4660,4857,3},{4663,4855,3},{4665,4848,3},{4668,4848,3}, {4673,4852,3},{4677,4858,3},{4677,4865,3},{4673,4870,3},{4668,4875,3},{4668,4883,3}, {4670,4892,3},{4673,4897,3},{4678,4900,3},{4683,4897,3},{4690,4890,3},{4697,4883,3}, {4703,4877,3},{4708,4873,3},{4717,4868,3},{4725,4865,3},{4732,4863,3},{4737,4862,3}, {4742,4858,3},{4742,4853,3},{4742,4843,3},{4747,4837,3},{4750,4832,3},{4758,4827,3}, {4763,4822,3},{4770,4817,3},{4775,4808,3},{4777,4800,3},{4775,4792,3},{4775,4778,3}, {4775,4767,3},{4777,4758,3},{4778,4750,3},{4780,4740,3},{4778,4742,3},{4773,4740,3}, {4768,4737,3},{4768,4735,3},{4772,4727,3},{4777,4717,3},{4782,4712,3},{4785,4715,3}, {4790,4712,3},{4795,4707,3},{4800,4702,3},{4803,4713,3},{4808,4718,3},{4810,4710,3}, {4817,4712,3},{4822,4710,3},{4822,4707,3},{4827,4700,3},{4833,4692,3},{4833,4688,3}, {4837,4675,3},{4838,4668,3},{4842,4658,3},{4845,4650,3},{4850,4652,3},{4855,4655,3}, {4862,4658,3},{4868,4663,3},{4875,4667,3},{4880,4670,3},{4885,4672,3},{4893,4678,3}, {4897,4685,3},{4900,4693,3},{4907,4700,3},{4913,4705,3},{4922,4702,3},{4925,4697,3}, {4930,4687,3},{4933,4678,3},{4938,4678,3},{4945,4680,3},{4952,4682,3},{4957,4683,3}, {4963,4687,3},{4968,4687,3},{4975,4687,3},{4980,4688,3},{4987,4692,3},{4988,4700,3}, {4993,4717,3},{5000,4727,3},{5005,4730,3},{5013,4733,3},{5020,4727,3},{5027,4730,3}, {5033,4732,3},{5033,4740,3},{5037,4740,3},{5042,4745,3},{5045,4752,3},{5045,4758,3}, {5040,4767,3},{5037,4773,3},{5033,4780,3},{5028,4785,3},{5023,4792,3},{5018,4797,3}, {5013,4802,3},{5010,4808,3},{5005,4812,3},{5000,4813,3},{4993,4818,3},{4987,4822,3}, {4987,4825,3},{4987,4828,3},{4987,4830,3},{4983,4835,3},{4983,4838,3},{4982,4843,3}, {4983,4843,3},{4988,4857,3},{4990,4865,3},{4993,4873,3},{4997,4880,3},{5002,4888,3}, {5008,4885,3},{5010,4877,3},{5013,4877,3},{5020,4877,3},{5025,4872,3},{5033,4868,3}, {5042,4867,3},{5047,4867,3},{5058,4863,3},{5062,4857,3},{5065,4855,3},{5067,4860,3}, {5067,4863,3},{5062,4872,3},{5060,4882,3},{5063,4887,3},{5067,4895,3},{5072,4902,3}, {5077,4907,3},{5080,4915,3},{5083,4925,3},{5083,4933,3},{5088,4942,3},{5093,4940,3}, {5100,4932,3},{5103,4935,3},{5110,4937,3},{5113,4942,3},{5112,4947,3},{5112,4955,3}, {5112,4963,3},{5112,4973,3},{5115,4980,3},{5120,4987,3},{5125,5000,3},{5128,5012,3}, {5130,5022,3},{5132,5030,3},{5138,5033,3},{5143,5037,3},{5145,5047,3},{5147,5047,3}, {5148,5052,3},{5155,5050,3},{5160,5052,3},{5160,5055,3},{5165,5060,3},{5165,5062,3}, {5163,5072,3},{5157,5067,3},{5157,5068,3},{5160,5078,3},{5167,5080,3},{5170,5073,3}, {5177,5075,3},{5177,5077,3},{5173,5087,3},{5168,5088,3},{5168,5097,3},{5167,5107,3}, {5168,5118,3},{5168,5128,3},{5167,5130,3},{5165,5137,3},{5157,5135,3},{5155,5125,3}, {5150,5128,3},{5148,5132,3},{5148,5143,3},{5152,5152,3},{5157,5155,3},{5155,5157,3}, {5153,5158,3},{5153,5163,3},{5147,5163,3},{5148,5172,3},{5153,5180,3},{5158,5175,3}, {5163,5180,3},{5168,5185,3},{5167,5197,3},{5167,5205,3},{5167,5213,3},{5172,5218,3}, {5172,5228,3},{5177,5233,3},{5177,5235,3},{5175,5237,3},{5165,5238,3},{5162,5245,3}, {5155,5250,3},{5150,5252,3},{5147,5257,3},{5147,5260,3},{5145,5263,3},{5148,5267,3}, {5147,5270,3},{5148,5268,3},{5150,5275,3},{5153,5278,3},{5150,5280,3},{5150,5288,3}, {5148,5288,3},{5148,5292,3},{5150,5293,3},{5148,5295,3},{5147,5297,3},{5148,5297,3}, {5148,5305,3},{5148,5310,3},{5148,5312,3},{5150,5317,3},{5153,5315,3},{5153,5320,3}, {5152,5318,3},{5150,5322,3},{5150,5330,3},{5152,5338,3},{5148,5345,3},{5143,5350,3}, {5142,5358,3},{5137,5363,3},{5132,5362,3},{5127,5365,3},{5123,5368,3},{5120,5375,3}, {5120,5378,3},{5120,5387,3},{5118,5395,3},{5117,5403,3},{5113,5407,3},{5112,5413,3}, {5105,5415,3},{5103,5420,3},{5102,5417,3},{5098,5420,3},{5093,5425,3},{5088,5432,3}, {5087,5445,3},{5083,5452,3},{5078,5447,3},{5073,5445,3},{5068,5445,3},{5063,5442,3}, {5058,5447,3},{5053,5450,3},{5053,5453,3},{5055,5463,3},{5058,5465,3},{5063,5473,3}, {5068,5472,3},{5075,5467,3},{5082,5467,3},{5088,5472,3},{5088,5473,3},{5088,5483,3}, {5085,5485,3},{5085,5490,3},{5087,5492,3},{5088,5500,3},{5092,5502,3},{5093,5505,3}, {5090,5510,3},{5087,5510,3},{5082,5507,3},{5078,5515,3},{5075,5522,3},{5070,5530,3}, {5065,5538,3},{5067,5540,3},{5067,5548,3},{5063,5553,3},{5060,5562,3},{5057,5570,3}, {5058,5572,3},{5062,5577,3},{5065,5587,3},{5068,5595,3},{5072,5603,3},{5075,5612,3}, {5080,5613,3},{5085,5615,3},{5092,5617,3},{5093,5622,3},{5092,5630,3},{5092,5638,3}, {5097,5640,3},{5098,5647,3},{5098,5648,3},{5105,5647,3},{5108,5650,3},{5108,5652,3}, {5107,5653,3},{5103,5658,3},{5098,5665,3},{5097,5673,3},{5102,5673,3},{5108,5673,3}, {5108,5682,3},{5105,5690,3},{5107,5698,3},{5105,5700,3},{5107,5708,3},{5110,5718,3}, {5107,5720,3},{5102,5727,3},{5098,5732,3},{5093,5735,3},{5088,5743,3},{5088,5753,3}, {5092,5753,3},{5093,5757,3},{5095,5765,3},{5092,5768,3},{5092,5772,3},{5093,5773,3}, {5100,5775,3},{5108,5775,3},{5113,5778,3},{5113,5780,3},{5113,5783,3},{5112,5785,3}, {5110,5793,3},{5110,5802,3},{5113,5808,3},{5112,5810,3},{5110,5810,3},{5108,5810,3}, {5107,5818,3},{5110,5822,3},{5113,5822,3},{5117,5830,3},{5115,5833,3},{5108,5837,3}, {5108,5840,3},{5108,5848,3},{5107,5857,3},{5100,5860,3},{5093,5857,3},{5088,5857,3}, {5082,5862,3},{5083,5870,3},{5083,5878,3},{5078,5878,3},{5075,5885,3},{5072,5887,3}, {5070,5895,3},{5070,5903,3},{5068,5918,3},{5065,5928,3},{5067,5930,3},{5065,5938,3}, {5065,5948,3},{5058,5952,3},{5052,5953,3},{5053,5962,3},{5057,5972,3},{5060,5983,3}, {5065,5990,3},{5070,5993,3},{5077,5997,3},{5082,6000,3},{5083,6000,3},{5087,6008,3}, {5083,6018,3},{5080,6018,3},{5075,6023,3},{5070,6032,3},{5068,6038,3},{5067,6048,3}, {5067,6058,3},{5067,6068,3},{5067,6083,3},{5068,6093,3},{5070,6103,3},{5073,6118,3}, {5075,6125,3},{5078,6138,3},{5083,6147,3},{5090,6148,3},{5098,6150,3},{5103,6152,3}, {5113,6155,3},{5118,6157,3},{5125,6158,3},{5127,6168,3},{5130,6163,3},{5133,6155,3}, {5140,6152,3},{5143,6145,3},{5140,6138,3},{5142,6128,3},{5145,6118,3},{5145,6113,3}, {5145,6112,3},{5147,6103,3},{5150,6097,3},{5155,6093,3},{5162,6090,3},{5162,6078,3}, {5162,6070,3},{5162,6060,3},{5165,6048,3},{5170,6040,3},{5173,6045,3},{5180,6052,3}, {5182,6040,3},{5185,6033,3},{5188,6025,3},{5190,6017,3},{5188,6018,3},{5187,6018,3}, {5188,6010,3},{5193,6005,3},{5198,6007,3},{5200,6015,3},{5200,6023,3},{5203,6033,3}, {5210,6040,3},{5213,6047,3},{5217,6055,3},{5217,6067,3},{5218,6075,3},{5223,6080,3}, {5223,6085,3},{5227,6093,3},{5230,6100,3},{5237,6105,3},{5243,6100,3},{5250,6097,3}, {5250,6093,3},{5252,6085,3},{5258,6085,3},{5263,6083,3},{5265,6075,3},{5270,6072,3}, {5275,6073,3},{5277,6083,3},{5280,6088,3},{5283,6095,3},{5288,6102,3},{5293,6107,3}, {5298,6103,3},{5297,6112,3},{5300,6115,3},{5303,6123,3},{5300,6132,3},{5300,6140,3}, {5303,6147,3},{5303,6150,3},{5300,6158,3},{5297,6165,3},{5300,6172,3},{5300,6180,3}, {5302,6190,3},{5295,6198,3},{5297,6207,3},{5300,6213,3},{5307,6213,3},{5312,6212,3}, {5312,6208,3},{5313,6198,3},{5313,6190,3},{5317,6180,3},{5322,6173,3},{5325,6167,3}, {5322,6162,3},{5322,6152,3},{5325,6143,3},{5327,6133,3},{5327,6125,3},{5332,6117,3}, {5340,6117,3},{5343,6123,3},{5350,6127,3},{5350,6130,3},{5348,6138,3},{5347,6142,3}, {5347,6152,3},{5350,6158,3},{5353,6158,3},{5358,6152,3},{5360,6143,3},{5357,6135,3}, {5357,6127,3},{5357,6117,3},{5360,6110,3},{5362,6102,3},{5362,6092,3},{5367,6093,3}, {5365,6105,3},{5370,6105,3},{5372,6112,3},{5377,6118,3},{5382,6122,3},{5385,6118,3}, {5388,6112,3},{5388,6107,3},{5390,6098,3},{5395,6103,3},{5395,6107,3},{5395,6117,3}, {5392,6120,3},{5392,6125,3},{5393,6125,3},{5398,6128,3},{5403,6125,3},{5408,6133,3}, {5408,6137,3},{5408,6147,3},{5403,6150,3},{5400,6157,3},{5395,6162,3},{5397,6163,3}, {5400,6163,3},{5403,6173,3},{5398,6180,3},{5403,6185,3},{5402,6190,3},{5397,6187,3}, {5395,6195,3},{5397,6205,3},{5398,6203,3},{5403,6202,3},{5405,6210,3},{5403,6213,3}, {5403,6225,3},{5403,6233,3},{5405,6242,3},{5402,6248,3},{5398,6242,3},{5393,6245,3}, {5390,6253,3},{5392,6257,3},{5397,6258,3},{5400,6263,3},{5403,6270,3},{5407,6277,3}, {5412,6283,3},{5412,6288,3},{5410,6298,3},{5410,6308,3},{5413,6317,3},{5418,6317,3}, {5420,6325,3},{5420,6333,3},{5420,6345,3},{5422,6355,3},{5423,6363,3},{5425,6372,3}, {5427,6380,3},{5428,6388,3},{5428,6398,3},{5432,6400,3},{5430,6402,3},{5428,6402,3}, {5432,6408,3},{5432,6417,3},{5432,6427,3},{5433,6435,3},{5433,6445,3},{5437,6448,3}, {5437,6457,3},{5440,6465,3},{5440,6475,3},{5435,6475,3},{5438,6485,3},{5442,6495,3}, {5440,6503,3},{5433,6512,3},{5433,6522,3},{5440,6523,3},{5445,6518,3},{5453,6522,3}, {5457,6528,3},{5458,6538,3},{5457,6548,3},{5458,6548,3},{5465,6547,3},{5465,6550,3}, {5463,6558,3},{5463,6567,3},{5460,6577,3},{5465,6582,3},{5470,6587,3},{5470,6597,3}, {5462,6597,3},{5463,6605,3},{5465,6618,3},{5468,6630,3},{5470,6640,3},{5472,6652,3}, {5472,6660,3},{5473,6673,3},{5475,6675,3},{5477,6685,3},{5478,6695,3},{5478,6707,3}, {5480,6717,3},{5482,6727,3},{5487,6732,3},{5487,6735,3},{5485,6743,3},{5483,6755,3}, {5485,6763,3},{5487,6772,3},{5492,6778,3},{5497,6785,3},{5497,6793,3},{5495,6802,3}, {5495,6810,3},{5497,6822,3},{5502,6822,3},{5508,6827,3},{5513,6820,3},{5518,6818,3}, {5518,6822,3},{5518,6825,3},{5518,6835,3},{5520,6840,3},{5520,6852,3},{5518,6862,3}, {5523,6863,3},{5528,6870,3},{5533,6872,3},{5535,6882,3},{5532,6890,3},{5528,6900,3}, {5533,6900,3},{5537,6892,3},{5543,6895,3},{5542,6905,3},{5538,6913,3},{5533,6920,3}, {5535,6927,3},{5537,6940,3},{5533,6948,3},{5535,6960,3},{5533,6968,3},{5532,6980,3}, {5528,6988,3},{5522,6992,3},{5520,7000,3},{5518,7005,3},{5513,7013,3},{5513,7023,3}, {5518,7032,3},{5522,7042,3},{5527,7045,3},{5528,7048,3},{5527,7053,3},{5527,7065,3}, {5530,7073,3},{5528,7083,3},{5523,7085,3},{5517,7093,3},{5512,7098,3},{5505,7102,3}, {5498,7102,3},{5490,7100,3},{5485,7103,3},{5478,7105,3},{5473,7110,3},{5470,7120,3}, {5467,7130,3},{5462,7130,3},{5458,7120,3},{5450,7120,3},{5445,7120,3},{5438,7123,3}, {5432,7118,3},{5432,7115,3},{5435,7102,3},{5430,7102,3},{5427,7110,3},{5422,7107,3}, {5418,7113,3},{5412,7117,3},{5412,7122,3},{5418,7132,3},{5418,7140,3},{5417,7148,3}, {5412,7152,3},{5412,7158,3},{5412,7168,3},{5415,7175,3},{5420,7173,3},{5425,7177,3}, {5423,7190,3},{5420,7207,3},{5415,7210,3},{5413,7217,3},{5418,7220,3},{5420,7217,3}, {5425,7208,3},{5428,7213,3},{5433,7207,3},{5437,7207,3},{5437,7218,3},{5432,7227,3}, {5425,7228,3},{5423,7232,3},{5418,7230,3},{5415,7240,3},{5413,7250,3},{5412,7248,3}, {5412,7245,3},{5410,7237,3},{5408,7237,3},{5403,7242,3},{5395,7238,3},{5393,7240,3}, {5392,7250,3},{5398,7255,3},{5395,7272,3},{5398,7272,3},{5400,7272,3},{5405,7265,3}, {5405,7262,3},{5405,7252,3},{5408,7253,3},{5413,7260,3},{5413,7275,3},{5410,7283,3}, {5410,7298,3},{5405,7298,3},{5405,7305,3},{5398,7308,3},{5397,7322,3},{5395,7332,3}, {5397,7342,3},{5398,7342,3},{5398,7345,3},{5395,7353,3},{5400,7352,3},{5403,7360,3}, {5407,7363,3},{5405,7375,3},{5400,7373,3},{5392,7372,3},{5387,7368,3},{5387,7358,3}, {5388,7345,3},{5385,7343,3},{5382,7345,3},{5380,7335,3},{5375,7335,3},{5368,7332,3}, {5368,7327,3},{5365,7328,3},{5357,7325,3},{5355,7333,3},{5353,7340,3},{5348,7338,3}, {5345,7345,3},{5350,7355,3},{5357,7360,3},{5357,7365,3},{5362,7367,3},{5362,7375,3}, {5360,7385,3},{5365,7390,3},{5365,7395,3},{5363,7407,3},{5355,7407,3},{5355,7415,3}, {5360,7418,3},{5360,7425,3},{5355,7427,3},{5348,7428,3},{5347,7440,3},{5347,7442,3}, {5358,7448,3},{5360,7443,3},{5368,7447,3},{5368,7455,3},{5367,7465,3},{5370,7467,3}, {5375,7468,3},{5377,7478,3},{5382,7482,3},{5382,7485,3},{5382,7493,3},{5378,7503,3}, {5380,7507,3},{5385,7517,3},{5388,7523,3},{5392,7532,3},{5395,7538,3},{5398,7547,3}, {5403,7545,3},{5408,7542,3},{5412,7553,3},{5410,7562,3},{5413,7570,3},{5415,7580,3}, {5418,7588,3},{5420,7597,3},{5423,7607,3},{5425,7615,3},{5430,7620,3},{5435,7625,3}, {5433,7630,3},{5433,7640,3},{5433,7650,3},{5435,7658,3},{5437,7668,3},{5442,7675,3}, {5442,7678,3},{5445,7693,3},{5443,7693,3},{5442,7688,3},{5438,7678,3},{5435,7687,3}, {5430,7687,3},{5423,7685,3},{5420,7677,3},{5415,7672,3},{5413,7663,3},{5417,7662,3}, {5417,7652,3},{5417,7643,3},{5415,7642,3},{5413,7643,3},{5408,7650,3},{5402,7653,3}, {5397,7658,3},{5392,7667,3},{5387,7677,3},{5383,7683,3},{5380,7690,3},{5375,7700,3}, {5372,7707,3},{5367,7718,3},{5363,7725,3},{5360,7733,3},{5357,7740,3},{5352,7752,3}, {5345,7762,3},{5342,7770,3},{5337,7777,3},{5332,7787,3},{5327,7793,3},{5322,7798,3}, {5317,7802,3},{5312,7807,3},{5307,7812,3},{5300,7820,3},{5295,7825,3},{5292,7828,3}, {5285,7835,3},{5275,7845,3},{5270,7848,3},{5263,7853,3},{5260,7858,3},{5255,7862,3}, {5248,7868,3},{5243,7873,3},{5237,7880,3},{5232,7885,3},{5223,7890,3},{5217,7895,3}, {5213,7900,3},{5207,7905,3},{5200,7912,3},{5193,7917,3},{5187,7922,3},{5182,7927,3}, {5175,7932,3},{5170,7937,3},{5163,7940,3},{5158,7945,3},{5152,7950,3},{5147,7953,3}, {5142,7957,3},{5137,7962,3},{5130,7967,3},{5125,7970,3},{5115,7978,3},{5108,7982,3}, {5100,7990,3},{5093,7993,3},{5088,7998,3},{5082,8003,3},{5077,8008,3},{5078,8007,3}, {5085,8007,3},{5083,8010,3},{5083,8020,3},{5090,8020,3},{5093,8027,3},{5093,8038,3}, {5097,8043,3},{5097,8047,3},{5102,8047,3},{5108,8048,3},{5113,8043,3},{5122,8045,3}, {5122,8048,3},{5120,8062,3},{5122,8063,3},{5125,8063,3},{5130,8065,3},{5130,8075,3}, {5127,8085,3},{5125,8093,3},{5122,8093,3},{5117,8107,3},{5120,8113,3},{5115,8115,3}, {5105,8110,3},{5100,8108,3},{5095,8107,3},{5095,8112,3},{5095,8122,3},{5097,8130,3}, {5098,8140,3},{5093,8143,3},{5087,8143,3},{5087,8147,3},{5082,8147,3},{5077,8145,3}, {5075,8148,3},{5075,8160,3},{5077,8168,3},{5077,8177,3},{5082,8180,3},{5080,8183,3}, {5080,8195,3},{5080,8203,3},{5075,8212,3},{5075,8222,3},{5078,8228,3},{5078,8238,3}, {5077,8248,3},{5077,8257,3},{5082,8270,3},{5087,8272,3},{5093,8273,3},{5093,8282,3}, {5090,8293,3},{5092,8302,3},{5095,8308,3},{5102,8312,3},{5100,8320,3},{5102,8325,3}, {5100,8335,3},{5102,8343,3},{5098,8342,3},{5095,8348,3},{5095,8358,3},{5092,8365,3}, {5090,8372,3},{5087,8383,3},{5082,8392,3},{5075,8397,3},{5070,8400,3},{5067,8405,3}, {5060,8412,3},{5055,8420,3},{5050,8423,3},{5043,8422,3},{5035,8425,3},{5030,8423,3}, {5027,8427,3},{5022,8433,3},{5022,8437,3},{5025,8447,3},{5025,8450,3},{5022,8452,3}, {5018,8462,3},{5017,8470,3},{5013,8480,3},{5010,8485,3},{5008,8493,3},{5005,8502,3}, {5000,8502,3},{5000,8498,3},{4993,8498,3},{4990,8502,3},{4988,8510,3},{4983,8512,3}, {4975,8518,3},{4970,8520,3},{4963,8522,3},{4958,8528,3},{4960,8533,3},{4957,8537,3}, {4957,8543,3},{4958,8545,3},{4960,8555,3},{4958,8562,3},{4955,8570,3},{4957,8577,3}, {4955,8585,3},{4955,8593,3},{4950,8595,3},{4948,8598,3},{4952,8603,3},{4952,8612,3}, {4947,8617,3},{4952,8620,3},{4953,8623,3},{4958,8625,3},{4960,8630,3},{4962,8638,3}, {4968,8647,3},{4972,8653,3},{4975,8660,3},{4980,8662,3},{4980,8665,3},{4980,8672,3}, {4980,8680,3},{4972,8678,3},{4970,8675,3},{4967,8665,3},{4962,8662,3},{4957,8667,3}, {4957,8672,3},{4953,8678,3},{4950,8682,3},{4945,8682,3},{4940,8692,3},{4935,8690,3}, {4930,8697,3},{4930,8700,3},{4925,8705,3},{4925,8710,3},{4925,8718,3},{4922,8727,3}, {4917,8730,3},{4910,8732,3},{4912,8722,3},{4913,8717,3},{4910,8703,3},{4910,8687,3}, {4907,8685,3},{4902,8677,3},{4897,8673,3},{4890,8675,3},{4885,8682,3},{4880,8677,3}, {4873,8678,3},{4863,8668,3},{4862,8665,3},{4853,8660,3},{4850,8647,3},{4850,8633,3}, {4845,8630,3},{4842,8623,3},{4843,8602,3},{4842,8587,3},{4842,8580,3},{4838,8577,3}, {4815,8562,3},{4807,8560,3},{4795,8553,3},{4762,8562,3},{4752,8560,3},{4737,8570,3}, {4732,8568,3},{4728,8570,3},{4720,8568,3},{4718,8558,3},{4707,8552,3},{4705,8523,3}, {4700,8518,3},{4693,8507,3},{4690,8498,3},{4687,8497,3},{4683,8477,3},{4683,8473,3}, {4688,8477,3},{4693,8478,3},{4700,8468,3},{4698,8453,3},{4700,8445,3},{4700,8430,3}, {4700,8418,3},{4698,8413,3},{4697,8392,3},{4702,8378,3},{4707,8357,3},{4713,8342,3}, {4718,8323,3},{4722,8318,3},{4723,8313,3},{4722,8303,3},{4697,8302,3},{4677,8287,3}, {4635,8272,3},{4617,8257,3},{4590,8252,3},{4577,8242,3},{4557,8232,3},{4553,8232,3}, {4550,8237,3},{4547,8257,3},{4543,8265,3},{4535,8267,3},{4525,8263,3},{4513,8257,3}, {4513,8248,3},{4523,8233,3},{4523,8230,3},{4522,8217,3},{4517,8202,3},{4515,8195,3}, {4518,8190,3},{4520,8182,3},{4530,8180,3},{4535,8175,3},{4535,8170,3},{4533,8163,3}, {4530,8155,3},{4523,8123,3},{4517,8105,3},{4517,8097,3},{4513,8087,3},{4515,8077,3}, {4512,8060,3},{4512,8047,3},{4510,8045,3},{4505,8042,3},{4505,8040,3},{4503,8012,3}, {4502,8008,3},{4493,7995,3},{4490,7987,3},{4487,7988,3},{4480,8000,3},{4482,8027,3}, {4477,8037,3},{4477,8043,3},{4473,8052,3},{4470,8052,3},{4468,8043,3},{4465,8038,3}, {4460,8040,3},{4445,8035,3},{4425,8040,3},{4413,8037,3},{4407,8042,3},{4398,8045,3}, {4392,8050,3},{4367,8062,3},{4348,8073,3},{4342,8073,3},{4333,8067,3},{4330,8068,3}, {4328,8077,3},{4315,8082,3},{4313,8080,3},{4310,8077,3},{4313,8065,3},{4307,8048,3}, {4303,8038,3},{4300,8038,3},{4295,8045,3},{4293,8057,3},{4288,8058,3},{4283,8038,3}, {4283,8027,3},{4278,8025,3},{4273,8023,3},{4265,8017,3},{4263,8015,3},{4257,8018,3}, {4248,8025,3},{4245,8022,3},{4237,8023,3},{4232,8028,3},{4228,8027,3},{4225,8030,3}, {4222,8028,3},{4223,8022,3},{4223,8020,3},{4220,8012,3},{4222,8012,3},{4230,8010,3}, {4233,8007,3},{4235,8002,3},{4240,7997,3},{4243,7993,3},{4243,7985,3},{4245,7985,3}, {4245,7980,3},{4247,7973,3},{4248,7965,3},{4245,7962,3},{4245,7957,3},{4247,7950,3}, {4250,7947,3},{4253,7940,3},{4258,7935,3},{4262,7928,3},{4265,7922,3},{4270,7918,3}, {4278,7918,3},{4278,7915,3},{4273,7907,3},{4278,7902,3},{4278,7895,3},{4278,7888,3}, {4280,7882,3},{4282,7875,3},{4283,7867,3},{4285,7865,3},{4287,7858,3},{4290,7852,3}, {4288,7845,3},{4288,7838,3},{4285,7832,3},{4287,7825,3},{4288,7817,3},{4285,7815,3}, {4287,7808,3},{4283,7807,3},{4287,7803,3},{4285,7797,3},{4287,7793,3},{4288,7785,3}, {4292,7778,3},{4290,7775,3},{4292,7768,3},{4292,7758,3},{4293,7752,3},{4293,7742,3}, {4292,7735,3},{4292,7722,3},{4297,7718,3},{4297,7708,3},{4297,7700,3},{4298,7693,3}, {4298,7685,3},{4295,7678,3},{4290,7673,3},{4290,7665,3},{4292,7658,3},{4292,7652,3}, {4288,7648,3},{4288,7645,3},{4287,7638,3},{4288,7632,3},{4292,7627,3},{4292,7618,3}, {4292,7612,3},{4292,7603,3},{4293,7600,3},{4295,7593,3},{4295,7585,3},{4290,7578,3}, {4283,7577,3},{4280,7572,3},{4282,7563,3},{4282,7562,3},{4282,7558,3},{4283,7548,3}, {4282,7542,3},{4285,7532,3},{4283,7523,3},{4285,7515,3},{4288,7510,3},{4292,7503,3}, {4295,7497,3},{4298,7492,3},{4300,7485,3},{4298,7478,3},{4302,7472,3},{4307,7468,3}, {4310,7462,3},{4313,7458,3},{4317,7450,3},{4318,7448,3},{4320,7442,3},{4320,7435,3}, {4323,7428,3},{4323,7415,3},{4322,7417,3},{4318,7417,3},{4317,7410,3},{4317,7402,3}, {4320,7395,3},{4315,7392,3},{4310,7390,3},{4310,7387,3},{4312,7378,3},{4308,7370,3}, {4305,7363,3},{4302,7355,3},{4297,7353,3},{4290,7350,3},{4283,7350,3},{4275,7348,3}, {4270,7345,3},{4263,7342,3},{4257,7342,3},{4250,7345,3},{4247,7350,3},{4242,7350,3}, {4240,7348,3},{4242,7345,3},{4243,7338,3},{4245,7330,3},{4250,7330,3},{4252,7318,3}, {4253,7308,3},{4253,7300,3},{4253,7292,3},{4255,7283,3},{4260,7278,3},{4263,7275,3}, {4265,7267,3},{4268,7258,3},{4268,7250,3},{4272,7240,3},{4275,7233,3},{4277,7227,3}, {4275,7218,3},{4273,7212,3},{4277,7205,3},{4278,7198,3},{4282,7190,3},{4283,7183,3}, {4280,7177,3},{4280,7170,3},{4277,7162,3},{4277,7157,3},{4282,7152,3},{4280,7143,3}, {4278,7137,3},{4277,7127,3},{4275,7127,3},{4270,7123,3},{4267,7117,3},{4260,7115,3}, {4260,7113,3},{4260,7105,3},{4255,7102,3},{4253,7103,3},{4250,7110,3},{4247,7107,3}, {4250,7100,3},{4248,7098,3},{4243,7095,3},{4237,7092,3},{4232,7087,3},{4225,7088,3}, {4227,7093,3},{4225,7093,3},{4220,7087,3},{4220,7078,3},{4215,7073,3},{4212,7068,3}, {4207,7065,3},{4200,7063,3},{4200,7060,3},{4202,7058,3},{4207,7055,3},{4210,7048,3}, {4213,7042,3},{4212,7040,3},{4207,7037,3},{4203,7032,3},{4198,7033,3},{4197,7032,3}, {4193,7023,3},{4190,7018,3},{4183,7015,3},{4182,7007,3},{4177,7003,3},{4177,7002,3}, {4178,6998,3},{4172,6995,3},{4170,6990,3},{4172,6983,3},{4170,6975,3},{4167,6968,3}, {4165,6962,3},{4162,6957,3},{4157,6952,3},{4155,6945,3},{4150,6940,3},{4145,6942,3}, {4145,6935,3},{4147,6928,3},{4145,6922,3},{4142,6917,3},{4138,6912,3},{4133,6907,3}, {4135,6903,3},{4130,6898,3},{4125,6898,3},{4120,6895,3},{4120,6892,3},{4115,6887,3}, {4108,6880,3},{4102,6875,3},{4097,6872,3},{4093,6865,3},{4095,6863,3},{4097,6863,3}, {4098,6867,3},{4100,6865,3},{4100,6862,3},{4103,6860,3},{4100,6855,3},{4102,6852,3}, {4108,6850,3},{4108,6847,3},{4112,6843,3},{4112,6835,3},{4113,6827,3},{4115,6818,3}, {4117,6807,3},{4118,6805,3},{4120,6798,3},{4118,6790,3},{4117,6785,3},{4120,6778,3}, {4120,6775,3},{4120,6767,3},{4120,6760,3},{4120,6752,3},{4122,6740,3},{4120,6733,3}, {4122,6725,3},{4122,6712,3},{4123,6700,3},{4123,6693,3},{4123,6682,3},{4125,6673,3}, {4125,6660,3},{4128,6660,3},{4135,6660,3},{4142,6658,3},{4152,6658,3},{4158,6657,3}, {4168,6655,3},{4177,6655,3},{4183,6653,3},{4190,6653,3},{4190,6642,3},{4192,6630,3}, {4192,6622,3},{4193,6610,3},{4195,6602,3},{4200,6602,3},{4205,6602,3},{4212,6602,3}, {4217,6602,3},{4222,6602,3},{4227,6602,3},{4232,6602,3},{4238,6602,3},{4235,6610,3}, {4237,6610,3},{4247,6610,3},{4255,6610,3},{4262,6610,3},{4268,6610,3},{4278,6610,3}, {4288,6610,3},{4297,6610,3},{4293,6600,3},{4290,6592,3},{4287,6583,3},{4290,6582,3}, {4295,6580,3},{4302,6577,3},{4307,6573,3},{4315,6572,3},{4320,6568,3},{4330,6565,3}, {4337,6557,3},{4342,6548,3},{4345,6542,3},{4352,6533,3},{4357,6528,3},{4362,6525,3}, {4372,6518,3},{4377,6515,3},{4378,6508,3},{4377,6500,3},{4373,6492,3},{4372,6485,3}, {4368,6477,3},{4363,6462,3},{4360,6453,3},{4360,6447,3},{4360,6432,3},{4362,6422,3}, {4362,6415,3},{4362,6400,3},{4363,6392,3},{4363,6380,3},{4365,6367,3},{4365,6358,3}, {4367,6345,3},{4367,6338,3},{4367,6330,3},{4365,6320,3},{4363,6308,3},{4362,6298,3}, {4362,6290,3},{4358,6273,3},{4357,6258,3},{4355,6248,3},{4355,6242,3},{4353,6232,3}, {4352,6222,3},{4350,6213,3},{4350,6200,3},{4352,6198,3},{4358,6190,3},{4363,6183,3}, {4372,6175,3},{4378,6168,3},{4387,6158,3},{4392,6153,3},{4397,6147,3},{4402,6142,3}, {4405,6137,3},{4410,6132,3},{4413,6128,3},{4422,6118,3},{4428,6112,3},{4433,6113,3}, {4433,6117,3},{4428,6118,3},{4433,6118,3},{4435,6117,3},{4440,6118,3},{4440,6122,3}, {4438,6123,3},{4445,6123,3},{4440,6115,3},{4443,6112,3},{4445,6113,3},{4448,6117,3}, {4450,6113,3},{4453,6112,3},{4453,6107,3},{4457,6108,3},{4458,6112,3},{4460,6112,3}, {4457,6117,3},{4460,6117,3},{4462,6122,3},{4463,6120,3},{4463,6113,3},{4465,6112,3}, {4467,6117,3},{4465,6118,3},{4468,6123,3},{4463,6127,3},{4463,6128,3},{4465,6128,3}, {4467,6130,3},{4468,6142,3},{4473,6145,3},{4477,6148,3},{4473,6150,3},{4483,6157,3}, {4483,6160,3},{4480,6160,3},{4480,6163,3},{4488,6167,3},{4485,6170,3},{4488,6173,3}, {4487,6177,3},{4490,6175,3},{4495,6182,3},{4495,6187,3},{4497,6185,3},{4498,6185,3}, {4498,6192,3},{4497,6192,3},{4497,6195,3},{4502,6193,3},{4502,6197,3},{4505,6197,3}, {4502,6183,3},{4505,6182,3},{4512,6183,3},{4503,6175,3},{4498,6173,3},{4500,6173,3}, {4503,6175,3},{4505,6172,3},{4510,6172,3},{4510,6175,3},{4515,6175,3},{4517,6178,3}, {4513,6182,3},{4515,6185,3},{4518,6177,3},{4515,6173,3},{4522,6172,3},{4518,6168,3}, {4517,6170,3},{4513,6165,3},{4518,6162,3},{4517,6155,3},{4515,6153,3},{4518,6150,3}, {4523,6152,3},{4530,6152,3},{4533,6148,3},{4538,6137,3},{4545,6135,3},{4548,6130,3}, {4548,6125,3},{4552,6125,3},{4555,6123,3},{4557,6130,3},{4560,6128,3},{4562,6130,3}, {4565,6127,3},{4567,6127,3},{4570,6117,3},{4573,6117,3},{4577,6115,3},{4573,6115,3}, {4572,6113,3},{4570,6103,3},{4562,6097,3},{4563,6093,3},{4568,6092,3},{4572,6092,3}, {4573,6093,3},{4573,6098,3},{4580,6105,3},{4587,6100,3},{4585,6103,3},{4587,6110,3}, {4590,6113,3},{4590,6103,3},{4593,6108,3},{4597,6103,3},{4602,6107,3},{4602,6102,3}, {4607,6098,3},{4608,6092,3},{4610,6090,3},{4613,6103,3},{4610,6115,3},{4615,6120,3}, {4615,6123,3},{4620,6127,3},{4622,6123,3},{4623,6125,3},{4625,6127,3},{4625,6130,3}, {4627,6130,3},{4628,6127,3},{4633,6132,3},{4630,6133,3},{4632,6137,3},{4648,6140,3}, {4648,6142,3},{4645,6145,3},{4648,6152,3},{4670,6165,3},{4672,6173,3},{4675,6170,3}, {4678,6165,3},{4678,6155,3},{4682,6158,3},{4687,6157,3},{4685,6150,3},{4680,6150,3}, {4677,6133,3},{4675,6130,3},{4670,6132,3},{4667,6130,3},{4667,6115,3},{4663,6115,3}, {4665,6120,3},{4663,6122,3},{4658,6118,3},{4652,6120,3},{4648,6112,3},{4648,6090,3}, {4652,6087,3},{4655,6085,3},{4658,6082,3},{4667,6085,3},{4670,6092,3},{4675,6090,3}, {4678,6082,3},{4677,6068,3},{4680,6058,3},{4680,6055,3},{4677,6052,3},{4680,6050,3}, {4680,6048,3},{4675,6045,3},{4673,6045,3},{4675,6050,3},{4673,6053,3},{4673,6058,3}, {4665,6072,3},{4658,6063,3},{4658,6057,3},{4665,6050,3},{4660,6043,3},{4663,6042,3}, {4665,6043,3},{4667,6040,3},{4672,6040,3},{4670,6037,3},{4667,6038,3},{4670,6033,3}, {4673,6032,3},{4672,6023,3},{4663,6010,3},{4662,6003,3},{4660,6000,3},{4658,5992,3}, {4653,5990,3},{4657,5987,3},{4653,5983,3},{4653,5980,3},{4652,5980,3},{4652,5983,3}, {4652,5992,3},{4648,5993,3},{4647,5987,3},{4643,5988,3},{4638,5995,3},{4638,6002,3}, {4635,6003,3},{4632,6008,3},{4628,6008,3},{4627,6012,3},{4623,6012,3},{4620,5998,3}, {4613,5995,3},{4608,5987,3},{4610,5985,3},{4617,5987,3},{4620,5982,3},{4628,5982,3}, {4633,5973,3},{4635,5965,3},{4633,5962,3},{4637,5955,3},{4633,5948,3},{4632,5947,3}, {4632,5943,3},{4628,5947,3},{4627,5952,3},{4623,5953,3},{4613,5957,3},{4612,5957,3}, {4613,5953,3},{4603,5948,3},{4602,5950,3},{4603,5952,3},{4603,5953,3},{4592,5953,3}, {4587,5948,3},{4582,5950,3},{4582,5948,3},{4582,5935,3},{4577,5930,3},{4582,5927,3}, {4590,5933,3},{4595,5938,3},{4595,5943,3},{4602,5945,3},{4603,5938,3},{4602,5925,3}, {4597,5917,3},{4597,5908,3},{4598,5908,3},{4600,5912,3},{4602,5910,3},{4600,5898,3}, {4595,5890,3},{4593,5880,3},{4590,5872,3},{4578,5865,3},{4560,5860,3},{4558,5852,3}, {4557,5843,3},{4553,5832,3},{4550,5820,3},{4548,5813,3},{4545,5798,3},{4542,5785,3}, {4540,5775,3},{4538,5767,3},{4537,5758,3},{4533,5750,3},{4532,5735,3},{4530,5728,3}, {4528,5720,3},{4525,5708,3},{4523,5700,3},{4522,5692,3},{4518,5677,3},{4517,5668,3}, {4513,5658,3},{4512,5647,3},{4508,5637,3},{4507,5630,3},{4503,5615,3},{4502,5608,3}, {4500,5600,3},{4497,5600,3},{4492,5600,3},{4487,5600,3},{4480,5600,3},{4475,5600,3}, {4470,5600,3},{4463,5600,3},{4458,5600,3},{4453,5600,3},{4447,5600,3},{4442,5600,3}, {4437,5600,3},{4430,5600,3},{4425,5600,3},{4420,5600,3},{4413,5600,3},{4408,5600,3}, {4403,5600,3},{4397,5600,3},{4392,5600,3},{4387,5600,3},{4382,5600,3},{4375,5600,3}, {4370,5600,3},{4365,5600,3},{4358,5600,3},{4353,5600,3},{4348,5600,3},{4342,5600,3}, {4337,5600,3},{4332,5600,3},{4325,5600,3},{4320,5600,3},{4315,5600,3},{4308,5600,3}, {4303,5600,3},{4298,5600,3},{4292,5600,3},{4287,5600,3},{4282,5600,3},{4275,5600,3}, {4270,5600,3},{4265,5600,3},{4258,5600,3},{4253,5600,3},{4248,5600,3},{4242,5600,3}, {4237,5600,3},{4232,5600,3},{4227,5600,3},{4220,5600,3},{4215,5600,3},{4210,5600,3}, {4203,5600,3},{4198,5600,3},{4193,5600,3},{4187,5600,3},{4182,5600,3},{4177,5600,3}, {4170,5600,3},{4165,5600,3},{4160,5600,3},{4153,5600,3},{4148,5600,3},{4143,5600,3}, {4137,5600,3},{4132,5600,3},{4132,5593,3},{4132,5585,3},{4128,5580,3},{4128,5573,3}, {4128,5565,3},{4125,5560,3},{4128,5555,3},{4125,5553,3},{4128,5547,3},{4133,5540,3}, {4138,5533,3},{4143,5527,3},{4150,5522,3},{4155,5517,3},{4160,5513,3},{4167,5510,3}, {4173,5505,3},{4178,5500,3},{4182,5495,3},{4188,5495,3},{4193,5493,3},{4198,5488,3}, {4202,5483,3},{4207,5477,3},{4210,5470,3},{4215,5458,3},{4222,5448,3},{4225,5442,3}, {4227,5435,3},{4230,5428,3},{4233,5418,3},{4233,5410,3},{4233,5403,3},{4233,5395,3}, {4233,5387,3},{4232,5378,3},{4230,5370,3},{4230,5363,3},{4228,5357,3},{4227,5342,3}, {4222,5332,3},{4220,5323,3},{4217,5313,3},{4213,5303,3},{4210,5297,3},{4205,5288,3}, {4200,5282,3},{4197,5275,3},{4193,5270,3},{4188,5263,3},{4185,5257,3},{4182,5252,3}, {4177,5243,3},{1038,10445,131},{1042,10450,3},{1053,10458,3},{1053,10467,3}, {1053,10487,3},{1063,10497,3},{1072,10510,3},{1075,10510,3},{1077,10507,3}, {1088,10503,3},{1093,10507,3},{1095,10510,3},{1095,10512,3},{1092,10512,3}, {1088,10527,3},{1085,10535,3},{1090,10537,3},{1097,10543,3},{1095,10547,3}, {1095,10555,3},{1102,10578,3},{1092,10587,3},{1085,10587,3},{1083,10593,3}, {1090,10595,3},{1085,10602,3},{1080,10608,3},{1078,10618,3},{1077,10620,3}, {1087,10618,3},{1092,10615,3},{1093,10615,3},{1097,10615,3},{1098,10622,3}, {1105,10618,3},{1110,10615,3},{1108,10613,3},{1107,10612,3},{1108,10610,3}, {1115,10603,3},{1118,10602,3},{1120,10595,3},{1123,10592,3},{1127,10592,3}, {1130,10587,3},{1138,10588,3},{1143,10590,3},{1147,10588,3},{1155,10588,3}, {1157,10583,3},{1162,10582,3},{1162,10583,3},{1167,10585,3},{1167,10588,3}, {1165,10597,3},{1172,10602,3},{1177,10602,3},{1178,10605,3},{1175,10613,3}, {1175,10618,3},{1173,10627,3},{1168,10630,3},{1170,10638,3},{1167,10647,3}, {1168,10647,3},{1177,10642,3},{1182,10645,3},{1185,10645,3},{1187,10647,3}, {1197,10642,3},{1198,10647,3},{1195,10650,3},{1198,10652,3},{1198,10662,3}, {1197,10663,3},{1197,10667,3},{1198,10667,3},{1197,10672,3},{1207,10678,3}, {1207,10692,3},{1208,10698,3},{1213,10703,3},{1213,10705,3},{1228,10717,3}, {1233,10732,3},{1233,10735,3},{1225,10742,3},{1225,10743,3},{1230,10747,3}, {1233,10752,3},{1235,10755,3},{1242,10755,3},{1248,10758,3},{1252,10757,3}, {1255,10760,3},{1260,10760,3},{1265,10758,3},{1268,10758,3},{1272,10757,3}, {1280,10757,3},{1288,10752,3},{1295,10750,3},{1300,10750,3},{1302,10748,3}, {1338,10763,3},{1355,10763,3},{1360,10758,3},{1372,10753,3},{1380,10747,3}, {1385,10748,3},{1388,10747,3},{1392,10748,3},{1395,10745,3},{1398,10745,3}, {1400,10745,3},{1400,10738,3},{1403,10737,3},{1408,10737,3},{1412,10733,3}, {1425,10738,3},{1435,10738,3},{1443,10742,3},{1443,10743,3},{1442,10747,3}, {1445,10748,3},{1453,10752,3},{1455,10753,3},{1460,10753,3},{1465,10755,3}, {1470,10755,3},{1472,10755,3},{1475,10752,3},{1477,10753,3},{1480,10752,3}, {1488,10758,3},{1497,10748,3},{1502,10747,3},{1505,10753,3},{1505,10758,3}, {1507,10762,3},{1510,10760,3},{1513,10765,3},{1522,10765,3},{1520,10768,3}, {1527,10770,3},{1535,10762,3},{1538,10760,3},{1542,10760,3},{1542,10755,3}, {1543,10752,3},{1550,10752,3},{1548,10748,3},{1552,10747,3},{1550,10745,3}, {1552,10743,3},{1550,10740,3},{1560,10735,3},{1562,10730,3},{1565,10727,3}, {1573,10725,3},{1577,10718,3},{1578,10718,3},{1587,10720,3},{1587,10723,3}, {1585,10727,3},{1592,10733,3},{1592,10740,3},{1602,10748,3},{1605,10745,3}, {1608,10747,3},{1608,10742,3},{1607,10740,3},{1607,10733,3},{1615,10725,3}, {1615,10720,3},{1618,10717,3},{1627,10715,3},{1630,10710,3},{1630,10702,3}, {1630,10698,3},{1635,10698,3},{1640,10690,3},{1642,10692,3},{1642,10688,3}, {1647,10690,3},{1652,10690,3},{1653,10687,3},{1653,10683,3},{1648,10682,3}, {1647,10678,3},{1643,10678,3},{1642,10675,3},{1643,10675,3},{1643,10672,3}, {1645,10668,3},{1653,10667,3},{1658,10667,3},{1660,10667,3},{1658,10663,3}, {1662,10663,3},{1662,10660,3},{1668,10657,3},{1700,10657,3},{1697,10652,3}, {1698,10645,3},{1703,10642,3},{1707,10642,3},{1712,10638,3},{1720,10633,3}, {1723,10633,3},{1725,10632,3},{1728,10632,3},{1728,10628,3},{1727,10627,3}, {1725,10625,3},{1727,10622,3},{1740,10603,3},{1762,10587,3},{1767,10575,3}, {1775,10572,3},{1778,10568,3},{1782,10568,3},{1787,10562,3},{1798,10563,3}, {1800,10562,3},{1802,10558,3},{1805,10558,3},{1808,10553,3},{1812,10553,3}, {1813,10550,3},{1817,10550,3},{1820,10548,3},{1820,10543,3},{1820,10542,3}, {1815,10540,3},{1820,10532,3},{1827,10532,3},{1825,10527,3},{1828,10523,3}, {1832,10518,3},{1838,10518,3},{1840,10515,3},{1845,10510,3},{1860,10515,3}, {1860,10518,3},{1862,10520,3},{1865,10520,3},{1867,10515,3},{1870,10513,3}, {1870,10510,3},{1872,10503,3},{1873,10502,3},{1873,10495,3},{1878,10492,3}, {1878,10485,3},{1880,10473,3},{1883,10470,3},{1883,10467,3},{1888,10462,3}, {1890,10457,3},{1898,10452,3},{1898,10445,3},{1907,10438,3},{1908,10432,3}, {1912,10428,3},{1912,10422,3},{1915,10422,3},{1917,10420,3},{1920,10417,3}, {1920,10412,3},{1923,10408,3},{1923,10405,3},{1923,10400,3},{1927,10393,3}, {1930,10392,3},{1930,10390,3},{1930,10388,3},{1932,10388,3},{1935,10393,3}, {1938,10397,3},{1942,10402,3},{1942,10405,3},{1942,10407,3},{1945,10407,3}, {1948,10408,3},{1950,10412,3},{1952,10410,3},{1957,10410,3},{1957,10407,3}, {1962,10403,3},{1963,10403,3},{1967,10402,3},{1970,10403,3},{1967,10410,3}, {1967,10413,3},{1968,10415,3},{1970,10425,3},{1968,10432,3},{1967,10432,3}, {1968,10437,3},{1970,10442,3},{1965,10445,3},{1963,10448,3},{1962,10452,3}, {1960,10457,3},{1962,10460,3},{1962,10463,3},{1968,10467,3},{1975,10472,3}, {1975,10477,3},{1978,10478,3},{1978,10483,3},{1985,10485,3},{1987,10483,3}, {1987,10478,3},{1988,10478,3},{1993,10485,3},{1997,10490,3},{1998,10490,3}, {1998,10495,3},{2000,10498,3},{2007,10497,3},{2010,10500,3},{2010,10497,3}, {2013,10493,3},{2018,10495,3},{2022,10487,3},{2023,10480,3},{2020,10473,3}, {2022,10468,3},{2028,10468,3},{2028,10472,3},{2033,10472,3},{2037,10465,3}, {2042,10462,3},{2040,10452,3},{2042,10442,3},{2045,10438,3},{2047,10438,3}, {2052,10447,3},{2053,10447,3},{2052,10452,3},{2052,10455,3},{2055,10458,3}, {2058,10458,3},{2063,10463,3},{2067,10465,3},{2072,10450,3},{2077,10448,3}, {2078,10442,3},{2082,10438,3},{2083,10435,3},{2087,10433,3},{2090,10430,3}, {2090,10427,3},{2090,10425,3},{2093,10423,3},{2095,10418,3},{2095,10413,3}, {2098,10410,3},{2095,10407,3},{2090,10403,3},{2090,10398,3},{2088,10393,3}, {2088,10390,3},{2085,10387,3},{2085,10380,3},{2080,10378,3},{2075,10378,3}, {2073,10373,3},{2067,10373,3},{2065,10368,3},{2073,10362,3},{2075,10352,3}, {2083,10345,3},{2082,10345,3},{2080,10343,3},{2078,10338,3},{2082,10330,3}, {2083,10328,3},{2082,10325,3},{2085,10317,3},{2093,10308,3},{2097,10308,3}, {2105,10303,3},{2108,10297,3},{2115,10295,3},{2117,10292,3},{2123,10292,3}, {2125,10288,3},{2125,10282,3},{2130,10287,3},{2130,10290,3},{2138,10290,3}, {2145,10295,3},{2147,10293,3},{2143,10288,3},{2147,10290,3},{2158,10300,3}, {2173,10298,3},{2175,10297,3},{2173,10295,3},{2172,10287,3},{2182,10287,3}, {2185,10285,3},{2185,10282,3},{2182,10280,3},{2173,10282,3},{2167,10275,3}, {2165,10268,3},{2173,10265,3},{2178,10267,3},{2185,10265,3},{2187,10263,3}, {2193,10260,3},{2197,10250,3},{2200,10250,3},{2203,10252,3},{2205,10245,3}, {2212,10242,3},{2220,10232,3},{2222,10227,3},{2223,10223,3},{2228,10222,3}, {2230,10218,3},{2233,10218,3},{2240,10213,3},{2243,10218,3},{2242,10225,3}, {2248,10227,3},{2263,10242,3},{2265,10238,3},{2268,10238,3},{2268,10243,3}, {2275,10245,3},{2277,10248,3},{2275,10255,3},{2270,10257,3},{2270,10258,3}, {2272,10260,3},{2270,10263,3},{2268,10268,3},{2262,10278,3},{2260,10287,3}, {2248,10293,3},{2247,10298,3},{2243,10303,3},{2245,10307,3},{2250,10307,3}, {2255,10317,3},{2258,10315,3},{2263,10318,3},{2267,10328,3},{2273,10330,3}, {2280,10333,3},{2278,10337,3},{2275,10343,3},{2270,10343,3},{2265,10345,3}, {2258,10353,3},{2265,10358,3},{2270,10357,3},{2273,10360,3},{2278,10362,3}, {2278,10365,3},{2260,10383,3},{2250,10397,3},{2253,10402,3},{2268,10403,3}, {2280,10412,3},{2283,10425,3},{2283,10427,3},{2280,10425,3},{2273,10427,3}, {2268,10437,3},{2275,10448,3},{2285,10458,3},{2282,10460,3},{2283,10463,3}, {2282,10467,3},{2282,10473,3},{2290,10478,3},{2293,10487,3},{2310,10482,3}, {2312,10488,3},{2318,10490,3},{2317,10495,3},{2318,10497,3},{2325,10508,3}, {2325,10513,3},{2327,10518,3},{2325,10522,3},{2327,10523,3},{2333,10527,3}, {2338,10533,3},{2337,10535,3},{2332,10535,3},{2328,10540,3},{2328,10545,3}, {2320,10550,3},{2318,10552,3},{2315,10555,3},{2307,10557,3},{2305,10572,3}, {2303,10573,3},{2302,10578,3},{2292,10587,3},{2293,10592,3},{2293,10598,3}, {2298,10602,3},{2298,10608,3},{2297,10620,3},{2292,10625,3},{2287,10625,3}, {2285,10628,3},{2287,10642,3},{2290,10650,3},{2293,10652,3},{2292,10655,3}, {2292,10660,3},{2287,10662,3},{2285,10665,3},{2288,10668,3},{2287,10670,3}, {2285,10672,3},{2282,10677,3},{2280,10677,3},{2280,10682,3},{2278,10682,3}, {2275,10677,3},{2270,10677,3},{2265,10673,3},{2258,10672,3},{2257,10668,3}, {2258,10665,3},{2262,10663,3},{2260,10660,3},{2248,10658,3},{2245,10655,3}, {2235,10657,3},{2233,10665,3},{2222,10670,3},{2220,10667,3},{2208,10670,3}, {2203,10670,3},{2200,10667,3},{2197,10668,3},{2198,10673,3},{2202,10675,3}, {2197,10682,3},{2197,10690,3},{2193,10693,3},{2193,10703,3},{2190,10705,3}, {2185,10702,3},{2182,10702,3},{2180,10710,3},{2170,10722,3},{2173,10730,3}, {2168,10735,3},{2162,10735,3},{2160,10738,3},{2165,10742,3},{2165,10745,3}, {2163,10748,3},{2160,10748,3},{2158,10753,3},{2162,10757,3},{2162,10767,3}, {2167,10778,3},{2165,10787,3},{2160,10790,3},{2158,10793,3},{2153,10795,3}, {2153,10807,3},{2155,10798,3},{2152,10803,3},{2152,10802,3},{2148,10802,3}, {2150,10805,3},{2148,10808,3},{2147,10800,3},{2143,10797,3},{2148,10798,3}, {2147,10795,3},{2145,10795,3},{2145,10792,3},{2147,10792,3},{2148,10793,3}, {2152,10792,3},{2153,10788,3},{2152,10787,3},{2152,10785,3},{2148,10783,3}, {2152,10783,3},{2152,10782,3},{2148,10782,3},{2152,10778,3},{2150,10775,3}, {2150,10778,3},{2148,10780,3},{2148,10778,3},{2145,10778,3},{2145,10777,3}, {2142,10775,3},{2142,10772,3},{2138,10770,3},{2140,10767,3},{2138,10767,3}, {2138,10763,3},{2135,10763,3},{2133,10762,3},{2130,10760,3},{2128,10757,3}, {2133,10753,3},{2135,10753,3},{2133,10752,3},{2130,10753,3},{2130,10748,3}, {2128,10748,3},{2132,10747,3},{2133,10742,3},{2130,10742,3},{2128,10745,3}, {2127,10737,3},{2123,10737,3},{2118,10735,3},{2118,10738,3},{2113,10738,3}, {2110,10737,3},{2108,10737,3},{2107,10735,3},{2102,10737,3},{2100,10733,3}, {2100,10722,3},{2098,10723,3},{2097,10720,3},{2093,10720,3},{2093,10715,3}, {2095,10707,3},{2100,10710,3},{2103,10715,3},{2103,10713,3},{2100,10708,3}, {2103,10708,3},{2100,10707,3},{2103,10705,3},{2100,10705,3},{2103,10703,3}, {2100,10703,3},{2102,10700,3},{2098,10702,3},{2095,10697,3},{2097,10688,3}, {2100,10687,3},{2098,10687,3},{2098,10685,3},{2097,10687,3},{2093,10692,3}, {2090,10695,3},{2090,10690,3},{2093,10688,3},{2090,10688,3},{2087,10687,3}, {2093,10683,3},{2093,10677,3},{2097,10678,3},{2097,10680,3},{2097,10683,3}, {2100,10680,3},{2102,10682,3},{2103,10678,3},{2102,10678,3},{2102,10675,3}, {2103,10673,3},{2100,10672,3},{2102,10665,3},{2100,10668,3},{2100,10665,3}, {2095,10668,3},{2093,10677,3},{2088,10673,3},{2090,10672,3},{2088,10670,3}, {2083,10675,3},{2080,10675,3},{2080,10672,3},{2075,10675,3},{2073,10678,3}, {2068,10680,3},{2070,10677,3},{2070,10673,3},{2070,10667,3},{2067,10670,3}, {2063,10665,3},{2063,10662,3},{2067,10658,3},{2063,10660,3},{2062,10663,3}, {2058,10662,3},{2055,10655,3},{2053,10652,3},{2053,10655,3},{2055,10658,3}, {2052,10657,3},{2048,10658,3},{2043,10652,3},{2045,10657,3},{2043,10660,3}, {2038,10658,3},{2037,10657,3},{2033,10658,3},{2030,10657,3},{2028,10657,3}, {2032,10652,3},{2030,10650,3},{2030,10653,3},{2027,10655,3},{2022,10648,3}, {2020,10638,3},{2018,10635,3},{2013,10632,3},{2003,10623,3},{2000,10620,3}, {2003,10620,3},{2000,10618,3},{1997,10610,3},{2003,10612,3},{2000,10610,3}, {1997,10608,3},{2000,10603,3},{1992,10595,3},{1988,10595,3},{1985,10593,3}, {1980,10593,3},{1980,10592,3},{1977,10587,3},{1977,10593,3},{1972,10590,3}, {1972,10588,3},{1970,10587,3},{1965,10583,3},{1960,10582,3},{1958,10582,3}, {1962,10582,3},{1960,10578,3},{1958,10578,3},{1960,10582,3},{1957,10582,3}, {1942,10582,3},{1940,10577,3},{1932,10582,3},{1932,10580,3},{1930,10582,3}, {1923,10577,3},{1923,10573,3},{1922,10575,3},{1910,10573,3},{1908,10570,3}, {1908,10567,3},{1908,10565,3},{1900,10560,3},{1890,10563,3},{1885,10572,3}, {1885,10567,3},{1882,10570,3},{1882,10572,3},{1877,10575,3},{1873,10573,3}, {1870,10575,3},{1867,10575,3},{1868,10577,3},{1875,10575,3},{1875,10578,3}, {1867,10580,3},{1857,10583,3},{1847,10592,3},{1847,10595,3},{1840,10597,3}, {1833,10603,3},{1828,10612,3},{1825,10610,3},{1827,10617,3},{1822,10625,3}, {1812,10635,3},{1810,10632,3},{1810,10633,3},{1807,10635,3},{1810,10637,3}, {1810,10640,3},{1812,10642,3},{1812,10643,3},{1808,10642,3},{1803,10645,3}, {1795,10653,3},{1792,10648,3},{1788,10645,3},{1787,10643,3},{1787,10645,3}, {1778,10645,3},{1772,10650,3},{1770,10650,3},{1770,10647,3},{1773,10642,3}, {1777,10635,3},{1777,10628,3},{1775,10630,3},{1773,10643,3},{1772,10638,3}, {1770,10637,3},{1768,10638,3},{1768,10640,3},{1770,10640,3},{1772,10642,3}, {1768,10650,3},{1757,10658,3},{1747,10663,3},{1733,10675,3},{1708,10712,3}, {1702,10712,3},{1702,10713,3},{1692,10720,3},{1687,10715,3},{1687,10718,3}, {1690,10720,3},{1690,10722,3},{1668,10747,3},{1658,10763,3},{1657,10762,3}, {1663,10750,3},{1665,10745,3},{1663,10745,3},{1658,10757,3},{1658,10760,3}, {1655,10763,3},{1655,10760,3},{1655,10767,3},{1652,10765,3},{1652,10767,3}, {1650,10767,3},{1652,10770,3},{1637,10783,3},{1638,10778,3},{1630,10782,3}, {1628,10790,3},{1630,10793,3},{1633,10793,3},{1635,10795,3},{1632,10800,3}, {1635,10803,3},{1623,10810,3},{1627,10805,3},{1625,10805,3},{1623,10807,3}, {1622,10820,3},{1615,10815,3},{1612,10813,3},{1608,10818,3},{1607,10820,3}, {1608,10823,3},{1603,10823,3},{1600,10820,3},{1602,10825,3},{1602,10827,3}, {1608,10823,3},{1612,10825,3},{1613,10822,3},{1615,10823,3},{1615,10827,3}, {1613,10832,3},{1615,10833,3},{1612,10835,3},{1610,10832,3},{1610,10827,3}, {1607,10827,3},{1598,10828,3},{1593,10832,3},{1588,10838,3},{1587,10837,3}, {1588,10840,3},{1580,10842,3},{1568,10848,3},{1555,10860,3},{1552,10863,3}, {1550,10867,3},{1552,10868,3},{1548,10867,3},{1548,10863,3},{1545,10863,3}, {1543,10867,3},{1548,10870,3},{1543,10872,3},{1538,10877,3},{1532,10877,3}, {1533,10878,3},{1535,10882,3},{1535,10878,3},{1538,10878,3},{1540,10882,3}, {1542,10880,3},{1542,10883,3},{1537,10883,3},{1535,10888,3},{1528,10888,3}, {1525,10895,3},{1522,10893,3},{1522,10890,3},{1520,10892,3},{1520,10890,3}, {1515,10890,3},{1515,10887,3},{1513,10888,3},{1512,10890,3},{1513,10890,3}, {1500,10893,3},{1483,10900,3},{1483,10898,3},{1482,10902,3},{1472,10908,3}, {1468,10908,3},{1467,10908,3},{1468,10907,3},{1458,10908,3},{1457,10907,3}, {1455,10907,3},{1457,10908,3},{1450,10910,3},{1447,10913,3},{1437,10913,3}, {1428,10918,3},{1423,10920,3},{1420,10920,3},{1413,10923,3},{1413,10922,3}, {1417,10920,3},{1417,10918,3},{1417,10917,3},{1413,10918,3},{1412,10922,3}, {1402,10927,3},{1392,10927,3},{1388,10928,3},{1388,10932,3},{1382,10930,3}, {1377,10930,3},{1375,10927,3},{1387,10927,3},{1390,10925,3},{1385,10923,3}, {1382,10922,3},{1380,10923,3},{1378,10923,3},{1377,10925,3},{1373,10922,3}, {1368,10925,3},{1363,10923,3},{1358,10928,3},{1357,10930,3},{1355,10928,3}, {1353,10928,3},{1355,10928,3},{1362,10923,3},{1365,10922,3},{1362,10922,3}, {1355,10927,3},{1352,10927,3},{1352,10932,3},{1350,10930,3},{1347,10932,3}, {1347,10933,3},{1345,10933,3},{1342,10933,3},{1342,10928,3},{1343,10927,3}, {1345,10930,3},{1348,10928,3},{1348,10925,3},{1348,10923,3},{1338,10923,3}, {1338,10925,3},{1335,10927,3},{1335,10930,3},{1333,10930,3},{1333,10928,3}, {1330,10930,3},{1332,10927,3},{1328,10925,3},{1325,10927,3},{1323,10930,3}, {1327,10928,3},{1330,10930,3},{1327,10932,3},{1313,10930,3},{1310,10933,3}, {1308,10932,3},{1307,10935,3},{1290,10947,3},{1285,10947,3},{1285,10943,3}, {1287,10945,3},{1287,10943,3},{1282,10937,3},{1275,10938,3},{1268,10943,3}, {1265,10947,3},{1263,10943,3},{1257,10945,3},{1257,10943,3},{1260,10942,3}, {1262,10940,3},{1263,10942,3},{1265,10942,3},{1268,10940,3},{1267,10938,3}, {1265,10938,3},{1263,10937,3},{1265,10935,3},{1270,10938,3},{1277,10937,3}, {1280,10937,3},{1280,10935,3},{1277,10933,3},{1268,10923,3},{1263,10920,3}, {1262,10922,3},{1258,10920,3},{1253,10922,3},{1257,10922,3},{1258,10923,3}, {1258,10925,3},{1255,10923,3},{1253,10923,3},{1247,10930,3},{1243,10930,3}, {1240,10935,3},{1238,10933,3},{1237,10933,3},{1238,10932,3},{1235,10930,3}, {1235,10927,3},{1243,10922,3},{1247,10917,3},{1245,10915,3},{1243,10917,3}, {1243,10915,3},{1240,10917,3},{1238,10920,3},{1233,10922,3},{1230,10925,3}, {1228,10922,3},{1227,10922,3},{1227,10917,3},{1225,10920,3},{1222,10920,3}, {1220,10922,3},{1220,10918,3},{1218,10922,3},{1215,10920,3},{1213,10923,3}, {1210,10920,3},{1208,10920,3},{1198,10925,3},{1197,10928,3},{1193,10928,3}, {1192,10927,3},{1187,10928,3},{1187,10925,3},{1188,10922,3},{1198,10923,3}, {1205,10920,3},{1212,10918,3},{1210,10917,3},{1198,10922,3},{1193,10918,3}, {1190,10913,3},{1185,10912,3},{1182,10913,3},{1182,10915,3},{1187,10920,3}, {1183,10918,3},{1182,10920,3},{1180,10920,3},{1172,10925,3},{1172,10920,3}, {1168,10920,3},{1167,10918,3},{1163,10918,3},{1157,10913,3},{1158,10910,3}, {1158,10907,3},{1162,10905,3},{1163,10903,3},{1163,10902,3},{1158,10905,3}, {1157,10903,3},{1153,10903,3},{1153,10902,3},{1153,10903,3},{1135,10902,3}, {1132,10897,3},{1130,10893,3},{1133,10887,3},{1132,10880,3},{1128,10877,3}, {1118,10873,3},{1117,10872,3},{1118,10867,3},{1118,10858,3},{1115,10855,3}, {1110,10850,3},{1105,10848,3},{1103,10838,3},{1095,10835,3},{1095,10832,3}, {1092,10830,3},{1093,10828,3},{1095,10823,3},{1092,10810,3},{1085,10807,3}, {1070,10800,3},{1072,10790,3},{1070,10783,3},{1063,10777,3},{1057,10758,3}, {1050,10752,3},{1047,10745,3},{1047,10738,3},{1045,10733,3},{1038,10725,3}, {1040,10723,3},{1040,10718,3},{1042,10722,3},{1048,10717,3},{1047,10715,3}, {1047,10713,3},{1048,10712,3},{1048,10707,3},{1050,10707,3},{1048,10705,3}, {1047,10703,3},{1050,10702,3},{1048,10700,3},{1050,10700,3},{1050,10702,3}, {1053,10703,3},{1055,10703,3},{1058,10703,3},{1063,10700,3},{1063,10703,3}, {1067,10702,3},{1070,10698,3},{1067,10698,3},{1065,10702,3},{1063,10700,3}, {1058,10702,3},{1057,10702,3},{1053,10702,3},{1055,10700,3},{1062,10698,3}, {1055,10698,3},{1052,10702,3},{1050,10698,3},{1047,10697,3},{1050,10697,3}, {1053,10693,3},{1057,10693,3},{1060,10693,3},{1065,10688,3},{1063,10683,3}, {1067,10680,3},{1068,10677,3},{1067,10673,3},{1058,10677,3},{1057,10673,3}, {1052,10673,3},{1050,10668,3},{1052,10665,3},{1048,10667,3},{1045,10663,3}, {1043,10658,3},{1047,10658,3},{1048,10658,3},{1043,10658,3},{1045,10663,3}, {1047,10665,3},{1043,10667,3},{1047,10673,3},{1038,10680,3},{1030,10680,3}, {1028,10678,3},{1028,10668,3},{1028,10665,3},{1032,10642,3},{1027,10648,3}, {1020,10670,3},{1015,10680,3},{1012,10680,3},{1008,10678,3},{1003,10672,3}, {1008,10670,3},{1003,10667,3},{1000,10668,3},{1000,10665,3},{997,10665,3}, {998,10660,3},{1003,10648,3},{1022,10637,3},{1025,10632,3},{1025,10628,3}, {1022,10635,3},{1013,10638,3},{1000,10648,3},{997,10657,3},{990,10668,3}, {987,10670,3},{985,10668,3},{983,10667,3},{987,10668,3},{988,10667,3},{983,10665,3}, {982,10660,3},{992,10650,3},{998,10638,3},{1015,10622,3},{1023,10612,3}, {1018,10617,3},{1015,10617,3},{1012,10618,3},{1007,10627,3},{1000,10632,3}, {985,10648,3},{980,10652,3},{977,10652,3},{973,10657,3},{965,10658,3},{958,10655,3}, {955,10650,3},{953,10640,3},{957,10635,3},{963,10625,3},{978,10608,3},{992,10598,3}, {997,10592,3},{1000,10582,3},{977,10605,3},{965,10612,3},{955,10618,3}, {952,10622,3},{948,10622,3},{942,10617,3},{940,10620,3},{937,10620,3},{930,10600,3}, {913,10553,3},{905,10545,3},{900,10542,3},{900,10540,3},{883,10535,3},{877,10530,3}, {873,10520,3},{863,10512,3},{858,10502,3},{857,10485,3},{860,10473,3},{862,10472,3}, {860,10477,3},{865,10483,3},{870,10482,3},{868,10490,3},{872,10497,3},{870,10487,3}, {872,10485,3},{872,10490,3},{873,10492,3},{880,10492,3},{882,10493,3},{877,10482,3}, {880,10480,3},{888,10482,3},{895,10482,3},{898,10483,3},{900,10480,3},{903,10482,3}, {905,10482,3},{915,10482,3},{955,10483,3},{968,10487,3},{982,10490,3},{983,10495,3}, {992,10503,3},{993,10507,3},{993,10508,3},{985,10512,3},{992,10510,3},{995,10510,3}, {1002,10507,3},{1010,10498,3},{1010,10490,3},{1020,10480,3},{1023,10473,3}, {1020,10468,3},{1015,10465,3},{1015,10462,3},{1027,10458,3},{1028,10457,3}, {1028,10453,3},{1033,10453,3},{1037,10450,3},{1038,10453,3},{1042,10452,3}, {1038,10450,3},{1038,10445,3},{1045,10443,3},{1045,10440,3},{1048,10437,3}, {1050,10435,3},{1048,10430,3},{1053,10428,3},{1057,10425,3},{1057,10422,3}, {1053,10418,3},{1057,10417,3},{1055,10410,3},{1058,10393,3},{1065,10390,3}, {1065,10387,3},{1070,10387,3},{1060,10387,3},{1055,10383,3},{1053,10377,3}, {1055,10370,3},{1052,10373,3},{1050,10375,3},{1050,10370,3},{1048,10363,3}, {1050,10362,3},{1055,10362,3},{1053,10357,3},{1060,10353,3},{1060,10350,3}, {1062,10350,3},{1072,10357,3},{1073,10368,3},{1077,10367,3},{1077,10368,3}, {1080,10368,3},{1083,10372,3},{1087,10372,3},{1098,10367,3},{1103,10367,3}, {1107,10367,3},{1108,10360,3},{1115,10355,3},{1117,10350,3},{1115,10350,3}, {1113,10348,3},{1115,10347,3},{1113,10348,3},{1108,10345,3},{1108,10347,3}, {1097,10342,3},{1088,10342,3},{1087,10335,3},{1090,10333,3},{1093,10328,3}, {1088,10322,3},{1087,10322,3},{1087,10313,3},{1090,10313,3},{1093,10310,3}, {1097,10312,3},{1108,10310,3},{1108,10312,3},{1115,10312,3},{1122,10308,3}, {1122,10305,3},{1123,10308,3},{1128,10308,3},{1130,10312,3},{1132,10313,3}, {1130,10315,3},{1135,10313,3},{1135,10310,3},{1142,10310,3},{1143,10307,3}, {1143,10308,3},{1147,10313,3},{1143,10317,3},{1147,10315,3},{1150,10313,3}, {1148,10313,3},{1147,10310,3},{1150,10307,3},{1155,10305,3},{1158,10305,3}, {1160,10303,3},{1155,10303,3},{1153,10298,3},{1155,10297,3},{1157,10298,3}, {1155,10300,3},{1157,10298,3},{1163,10298,3},{1163,10300,3},{1162,10302,3}, {1163,10305,3},{1163,10302,3},{1165,10302,3},{1165,10300,3},{1167,10300,3}, {1167,10298,3},{1163,10297,3},{1167,10297,3},{1172,10302,3},{1170,10307,3}, {1172,10308,3},{1172,10305,3},{1173,10302,3},{1172,10298,3},{1177,10295,3}, {1178,10292,3},{1183,10290,3},{1178,10290,3},{1175,10295,3},{1172,10297,3}, {1165,10295,3},{1163,10297,3},{1160,10297,3},{1157,10295,3},{1163,10292,3}, {1165,10293,3},{1175,10292,3},{1183,10285,3},{1190,10283,3},{1198,10278,3}, {1205,10278,3},{1217,10272,3},{1237,10273,3},{1240,10278,3},{1243,10278,3}, {1247,10273,3},{1252,10272,3},{1255,10268,3},{1260,10263,3},{1267,10250,3}, {1273,10250,3},{1275,10252,3},{1280,10253,3},{1285,10250,3},{1288,10252,3}, {1293,10248,3},{1295,10250,3},{1298,10250,3},{1300,10252,3},{1302,10250,3}, {1307,10247,3},{1312,10242,3},{1323,10237,3},{1328,10235,3},{1350,10237,3}, {1355,10233,3},{1358,10237,3},{1357,10245,3},{1357,10253,3},{1360,10260,3}, {1360,10262,3},{1365,10257,3},{1368,10257,3},{1377,10272,3},{1393,10278,3}, {1402,10290,3},{1408,10290,3},{1413,10293,3},{1418,10295,3},{1423,10303,3}, {1430,10310,3},{1433,10318,3},{1433,10323,3},{1435,10328,3},{1435,10340,3}, {1440,10345,3},{1437,10347,3},{1443,10357,3},{1440,10362,3},{1442,10365,3}, {1445,10367,3},{1443,10370,3},{1438,10370,3},{1437,10380,3},{1438,10385,3}, {1435,10388,3},{1433,10392,3},{1435,10395,3},{1437,10395,3},{1437,10400,3}, {1435,10403,3},{1438,10413,3},{1437,10415,3},{1437,10417,3},{1442,10420,3}, {1438,10420,3},{1438,10422,3},{1442,10427,3},{1438,10433,3},{1437,10443,3}, {1435,10447,3},{1438,10452,3},{1437,10455,3},{1437,10458,3},{1443,10465,3}, {1440,10468,3},{1443,10472,3},{1442,10473,3},{1445,10480,3},{1445,10482,3}, {1442,10485,3},{1442,10490,3},{1438,10500,3},{1432,10500,3},{1425,10503,3}, {1422,10508,3},{1425,10515,3},{1432,10518,3},{1435,10518,3},{1435,10522,3}, {1428,10522,3},{1418,10528,3},{1417,10533,3},{1412,10537,3},{1412,10547,3}, {1417,10557,3},{1415,10558,3},{1413,10563,3},{1410,10565,3},{1412,10567,3}, {1410,10570,3},{1412,10573,3},{1408,10578,3},{1402,10580,3},{1393,10592,3}, {1392,10597,3},{1393,10602,3},{1392,10610,3},{1400,10612,3},{1405,10618,3}, {1408,10617,3},{1412,10613,3},{1418,10610,3},{1423,10603,3},{1430,10603,3}, {1433,10600,3},{1437,10600,3},{1435,10607,3},{1437,10607,3},{1435,10608,3}, {1438,10610,3},{1437,10617,3},{1438,10622,3},{1442,10623,3},{1450,10625,3}, {1448,10627,3},{1448,10628,3},{1445,10633,3},{1445,10642,3},{1448,10643,3}, {1452,10643,3},{1452,10648,3},{1457,10647,3},{1460,10653,3},{1455,10657,3}, {1452,10657,3},{1450,10660,3},{1447,10663,3},{1447,10667,3},{1443,10672,3}, {1445,10673,3},{1435,10680,3},{1430,10685,3},{1435,10692,3},{1433,10697,3}, {1437,10698,3},{1437,10700,3},{1442,10705,3},{1445,10705,3},{1440,10712,3}, {1443,10717,3},{1447,10720,3},{1450,10720,3},{1450,10725,3},{1453,10725,3}, {1460,10732,3},{1460,10735,3},{1457,10737,3},{1455,10743,3},{1455,10745,3}, {1463,10747,3},{1465,10750,3},{1470,10755,3},{1465,10755,3},{1460,10753,3}, {1455,10753,3},{1453,10752,3},{1445,10748,3},{1442,10747,3},{1443,10743,3}, {1443,10742,3},{1435,10738,3},{1425,10738,3},{1412,10733,3},{1408,10737,3}, {1403,10737,3},{1400,10738,3},{1400,10745,3},{1398,10745,3},{1395,10745,3}, {1392,10748,3},{1388,10747,3},{1385,10748,3},{1380,10747,3},{1372,10753,3}, {1360,10758,3},{1355,10763,3},{1338,10763,3},{1302,10748,3},{1300,10750,3}, {1295,10750,3},{1288,10752,3},{1280,10757,3},{1272,10757,3},{1268,10758,3}, {1265,10758,3},{1260,10760,3},{1255,10760,3},{1252,10757,3},{1248,10758,3}, {1242,10755,3},{1235,10755,3},{1233,10752,3},{1230,10747,3},{1225,10743,3}, {1225,10742,3},{1233,10735,3},{1233,10732,3},{1228,10717,3},{1213,10705,3}, {1213,10703,3},{1208,10698,3},{1207,10692,3},{1207,10678,3},{1197,10672,3}, {1198,10667,3},{1197,10667,3},{1197,10663,3},{1198,10662,3},{1198,10652,3}, {1195,10650,3},{1198,10647,3},{1197,10642,3},{1187,10647,3},{1185,10645,3}, {1182,10645,3},{1177,10642,3},{1168,10647,3},{1167,10647,3},{1170,10638,3}, {1168,10630,3},{1173,10627,3},{1175,10618,3},{1175,10613,3},{1178,10605,3}, {1177,10602,3},{1172,10602,3},{1165,10597,3},{1167,10588,3},{1167,10585,3}, {1162,10583,3},{1162,10582,3},{1157,10583,3},{1155,10588,3},{1147,10588,3}, {1143,10590,3},{1138,10588,3},{1130,10587,3},{1127,10592,3},{1123,10592,3}, {1120,10595,3},{1118,10602,3},{1115,10603,3},{1108,10610,3},{1107,10612,3}, {1108,10613,3},{1110,10615,3},{1105,10618,3},{1098,10622,3},{1097,10615,3}, {1093,10615,3},{1092,10615,3},{1087,10618,3},{1077,10620,3},{1078,10618,3}, {1080,10608,3},{1085,10602,3},{1090,10595,3},{1083,10593,3},{1085,10587,3}, {1092,10587,3},{1102,10578,3},{1095,10555,3},{1095,10547,3},{1097,10543,3}, {1090,10537,3},{1085,10535,3},{1088,10527,3},{1092,10512,3},{1095,10512,3}, {1095,10510,3},{1093,10507,3},{1088,10503,3},{1077,10507,3},{1075,10510,3}, {1072,10510,3},{1063,10497,3},{1053,10487,3},{1053,10467,3},{1053,10458,3}, {1042,10450,3},{1038,10445,3},{2035,10008,131},{2040,10013,3},{2063,10017,3}, {2075,10025,3},{2078,10035,3},{2083,10037,3},{2080,10052,3},{2083,10058,3}, {2087,10065,3},{2088,10063,3},{2087,10055,3},{2087,10052,3},{2088,10052,3}, {2095,10052,3},{2098,10055,3},{2102,10055,3},{2105,10062,3},{2113,10067,3}, {2118,10070,3},{2130,10072,3},{2130,10078,3},{2130,10085,3},{2137,10090,3}, {2140,10100,3},{2148,10113,3},{2153,10117,3},{2157,10115,3},{2155,10122,3}, {2148,10122,3},{2142,10120,3},{2138,10127,3},{2132,10123,3},{2130,10125,3}, {2125,10123,3},{2118,10128,3},{2118,10133,3},{2123,10140,3},{2125,10152,3}, {2123,10162,3},{2118,10160,3},{2120,10167,3},{2118,10170,3},{2115,10172,3}, {2113,10173,3},{2115,10178,3},{2122,10178,3},{2122,10183,3},{2125,10185,3}, {2128,10182,3},{2130,10177,3},{2132,10173,3},{2145,10177,3},{2148,10175,3}, {2152,10178,3},{2158,10177,3},{2160,10182,3},{2163,10183,3},{2165,10178,3}, {2170,10178,3},{2172,10175,3},{2182,10178,3},{2183,10175,3},{2187,10175,3}, {2188,10172,3},{2193,10170,3},{2193,10167,3},{2197,10163,3},{2200,10163,3}, {2212,10157,3},{2213,10160,3},{2217,10160,3},{2220,10158,3},{2225,10153,3}, {2228,10157,3},{2228,10163,3},{2237,10165,3},{2238,10168,3},{2242,10167,3}, {2245,10167,3},{2247,10168,3},{2250,10173,3},{2248,10180,3},{2238,10188,3}, {2238,10190,3},{2243,10192,3},{2243,10198,3},{2245,10203,3},{2243,10212,3}, {2240,10213,3},{2233,10218,3},{2230,10218,3},{2228,10222,3},{2223,10223,3}, {2222,10227,3},{2220,10232,3},{2212,10242,3},{2205,10245,3},{2203,10252,3}, {2200,10250,3},{2197,10250,3},{2193,10260,3},{2187,10263,3},{2185,10265,3}, {2178,10267,3},{2173,10265,3},{2165,10268,3},{2167,10275,3},{2173,10282,3}, {2182,10280,3},{2185,10282,3},{2185,10285,3},{2182,10287,3},{2172,10287,3}, {2173,10295,3},{2175,10297,3},{2173,10298,3},{2158,10300,3},{2147,10290,3}, {2143,10288,3},{2147,10293,3},{2145,10295,3},{2138,10290,3},{2130,10290,3}, {2130,10287,3},{2125,10282,3},{2125,10288,3},{2123,10292,3},{2117,10292,3}, {2115,10295,3},{2108,10297,3},{2105,10303,3},{2097,10308,3},{2093,10308,3}, {2085,10317,3},{2082,10325,3},{2083,10328,3},{2082,10330,3},{2078,10338,3}, {2080,10343,3},{2082,10345,3},{2083,10345,3},{2075,10352,3},{2073,10362,3}, {2065,10368,3},{2067,10373,3},{2073,10373,3},{2075,10378,3},{2080,10378,3}, {2085,10380,3},{2085,10387,3},{2088,10390,3},{2088,10393,3},{2090,10398,3}, {2090,10403,3},{2095,10407,3},{2098,10410,3},{2095,10413,3},{2095,10418,3}, {2093,10423,3},{2090,10425,3},{2090,10427,3},{2090,10430,3},{2087,10433,3}, {2083,10435,3},{2082,10438,3},{2078,10442,3},{2077,10448,3},{2072,10450,3}, {2067,10465,3},{2063,10463,3},{2058,10458,3},{2055,10458,3},{2052,10455,3}, {2052,10452,3},{2053,10447,3},{2052,10447,3},{2047,10438,3},{2045,10438,3}, {2042,10442,3},{2040,10452,3},{2042,10462,3},{2037,10465,3},{2033,10472,3}, {2028,10472,3},{2028,10468,3},{2022,10468,3},{2020,10473,3},{2023,10480,3}, {2022,10487,3},{2018,10495,3},{2013,10493,3},{2010,10497,3},{2010,10500,3}, {2007,10497,3},{2000,10498,3},{1998,10495,3},{1998,10490,3},{1997,10490,3}, {1993,10485,3},{1988,10478,3},{1987,10478,3},{1987,10483,3},{1985,10485,3}, {1978,10483,3},{1978,10478,3},{1975,10477,3},{1975,10472,3},{1968,10467,3}, {1962,10463,3},{1962,10460,3},{1960,10457,3},{1962,10452,3},{1963,10448,3}, {1965,10445,3},{1970,10442,3},{1968,10437,3},{1967,10432,3},{1968,10432,3}, {1970,10425,3},{1968,10415,3},{1967,10413,3},{1967,10410,3},{1970,10403,3}, {1967,10402,3},{1963,10403,3},{1962,10403,3},{1957,10407,3},{1957,10410,3}, {1952,10410,3},{1950,10412,3},{1948,10408,3},{1945,10407,3},{1942,10407,3}, {1942,10405,3},{1942,10402,3},{1938,10397,3},{1935,10393,3},{1932,10388,3}, {1930,10388,3},{1930,10390,3},{1930,10392,3},{1927,10393,3},{1923,10400,3}, {1923,10405,3},{1923,10408,3},{1920,10412,3},{1920,10417,3},{1917,10420,3}, {1915,10422,3},{1912,10422,3},{1912,10428,3},{1908,10432,3},{1907,10438,3}, {1898,10445,3},{1898,10452,3},{1890,10457,3},{1888,10462,3},{1883,10467,3}, {1883,10470,3},{1880,10473,3},{1878,10485,3},{1878,10492,3},{1873,10495,3}, {1873,10502,3},{1872,10503,3},{1870,10510,3},{1870,10513,3},{1867,10515,3}, {1865,10520,3},{1862,10520,3},{1860,10518,3},{1860,10515,3},{1845,10510,3}, {1840,10515,3},{1838,10518,3},{1832,10518,3},{1828,10523,3},{1825,10527,3}, {1827,10532,3},{1820,10532,3},{1815,10540,3},{1820,10542,3},{1820,10543,3}, {1820,10548,3},{1817,10550,3},{1813,10550,3},{1812,10553,3},{1808,10553,3}, {1805,10558,3},{1802,10558,3},{1800,10562,3},{1798,10563,3},{1787,10562,3}, {1782,10568,3},{1778,10568,3},{1775,10572,3},{1767,10575,3},{1762,10587,3}, {1740,10603,3},{1727,10622,3},{1725,10625,3},{1727,10627,3},{1728,10628,3}, {1728,10632,3},{1725,10632,3},{1723,10633,3},{1720,10633,3},{1712,10638,3}, {1707,10642,3},{1703,10642,3},{1698,10645,3},{1697,10652,3},{1700,10657,3}, {1668,10657,3},{1662,10660,3},{1662,10663,3},{1658,10663,3},{1660,10667,3}, {1658,10667,3},{1653,10667,3},{1645,10668,3},{1643,10672,3},{1643,10675,3}, {1642,10675,3},{1643,10678,3},{1647,10678,3},{1648,10682,3},{1653,10683,3}, {1653,10687,3},{1652,10690,3},{1647,10690,3},{1642,10688,3},{1642,10692,3}, {1640,10690,3},{1635,10698,3},{1630,10698,3},{1630,10702,3},{1630,10710,3}, {1627,10715,3},{1618,10717,3},{1615,10720,3},{1615,10725,3},{1607,10733,3}, {1607,10740,3},{1608,10742,3},{1608,10747,3},{1605,10745,3},{1602,10748,3}, {1592,10740,3},{1592,10733,3},{1585,10727,3},{1587,10723,3},{1587,10720,3}, {1578,10718,3},{1577,10718,3},{1573,10725,3},{1565,10727,3},{1562,10730,3}, {1560,10735,3},{1550,10740,3},{1552,10743,3},{1550,10745,3},{1552,10747,3}, {1548,10748,3},{1550,10752,3},{1543,10752,3},{1542,10755,3},{1542,10760,3}, {1538,10760,3},{1535,10762,3},{1527,10770,3},{1520,10768,3},{1522,10765,3}, {1513,10765,3},{1510,10760,3},{1507,10762,3},{1505,10758,3},{1505,10753,3}, {1502,10747,3},{1497,10748,3},{1488,10758,3},{1480,10752,3},{1477,10753,3}, {1475,10752,3},{1472,10755,3},{1470,10755,3},{1465,10750,3},{1463,10747,3}, {1455,10745,3},{1455,10743,3},{1457,10737,3},{1460,10735,3},{1460,10732,3}, {1453,10725,3},{1450,10725,3},{1450,10720,3},{1447,10720,3},{1443,10717,3}, {1440,10712,3},{1445,10705,3},{1442,10705,3},{1437,10700,3},{1437,10698,3}, {1433,10697,3},{1435,10692,3},{1430,10685,3},{1435,10680,3},{1445,10673,3}, {1443,10672,3},{1447,10667,3},{1447,10663,3},{1450,10660,3},{1452,10657,3}, {1455,10657,3},{1460,10653,3},{1457,10647,3},{1452,10648,3},{1452,10643,3}, {1448,10643,3},{1445,10642,3},{1445,10633,3},{1448,10628,3},{1448,10627,3}, {1450,10625,3},{1442,10623,3},{1438,10622,3},{1437,10617,3},{1438,10610,3}, {1435,10608,3},{1437,10607,3},{1435,10607,3},{1437,10600,3},{1433,10600,3}, {1430,10603,3},{1423,10603,3},{1418,10610,3},{1412,10613,3},{1408,10617,3}, {1405,10618,3},{1400,10612,3},{1392,10610,3},{1393,10602,3},{1392,10597,3}, {1393,10592,3},{1402,10580,3},{1408,10578,3},{1412,10573,3},{1410,10570,3}, {1412,10567,3},{1410,10565,3},{1413,10563,3},{1415,10558,3},{1417,10557,3}, {1412,10547,3},{1412,10537,3},{1417,10533,3},{1418,10528,3},{1428,10522,3}, {1435,10522,3},{1433,10523,3},{1437,10525,3},{1437,10530,3},{1440,10532,3}, {1438,10535,3},{1442,10538,3},{1443,10545,3},{1447,10545,3},{1455,10553,3}, {1462,10553,3},{1467,10552,3},{1473,10553,3},{1477,10552,3},{1482,10552,3}, {1483,10555,3},{1488,10553,3},{1490,10558,3},{1495,10555,3},{1498,10562,3}, {1500,10558,3},{1507,10555,3},{1507,10552,3},{1512,10547,3},{1520,10548,3}, {1525,10555,3},{1527,10560,3},{1533,10558,3},{1533,10550,3},{1535,10547,3}, {1538,10550,3},{1540,10557,3},{1543,10560,3},{1552,10560,3},{1558,10563,3}, {1567,10563,3},{1573,10560,3},{1575,10553,3},{1577,10550,3},{1575,10545,3}, {1580,10540,3},{1593,10535,3},{1598,10538,3},{1600,10543,3},{1602,10542,3}, {1605,10518,3},{1610,10508,3},{1613,10505,3},{1625,10502,3},{1635,10490,3}, {1645,10485,3},{1653,10475,3},{1657,10475,3},{1672,10477,3},{1680,10475,3}, {1687,10477,3},{1692,10475,3},{1702,10473,3},{1713,10480,3},{1728,10482,3}, {1738,10480,3},{1742,10478,3},{1745,10475,3},{1750,10472,3},{1753,10468,3}, {1765,10447,3},{1773,10440,3},{1782,10435,3},{1785,10428,3},{1798,10422,3}, {1810,10410,3},{1820,10407,3},{1832,10398,3},{1833,10395,3},{1828,10388,3}, {1828,10387,3},{1833,10380,3},{1833,10372,3},{1840,10360,3},{1843,10340,3}, {1842,10330,3},{1837,10325,3},{1835,10323,3},{1832,10328,3},{1828,10328,3}, {1823,10317,3},{1817,10313,3},{1812,10307,3},{1803,10307,3},{1798,10305,3}, {1798,10302,3},{1800,10295,3},{1797,10287,3},{1793,10278,3},{1788,10275,3}, {1787,10267,3},{1780,10268,3},{1783,10258,3},{1790,10262,3},{1795,10260,3}, {1797,10253,3},{1797,10248,3},{1798,10242,3},{1803,10237,3},{1805,10230,3}, {1807,10228,3},{1815,10218,3},{1820,10218,3},{1822,10208,3},{1820,10205,3}, {1815,10202,3},{1807,10193,3},{1803,10192,3},{1803,10188,3},{1807,10178,3}, {1803,10177,3},{1792,10173,3},{1790,10165,3},{1787,10162,3},{1785,10160,3}, {1787,10158,3},{1782,10157,3},{1778,10158,3},{1777,10152,3},{1773,10150,3}, {1773,10148,3},{1775,10148,3},{1773,10145,3},{1773,10142,3},{1772,10143,3}, {1768,10142,3},{1770,10138,3},{1765,10135,3},{1765,10132,3},{1757,10125,3}, {1753,10123,3},{1752,10118,3},{1747,10117,3},{1747,10112,3},{1750,10110,3}, {1750,10108,3},{1755,10103,3},{1757,10092,3},{1760,10092,3},{1765,10095,3}, {1772,10098,3},{1777,10098,3},{1778,10100,3},{1782,10098,3},{1783,10103,3}, {1790,10102,3},{1793,10108,3},{1797,10112,3},{1802,10113,3},{1805,10118,3}, {1812,10117,3},{1820,10118,3},{1822,10117,3},{1825,10115,3},{1830,10115,3}, {1833,10118,3},{1837,10110,3},{1843,10105,3},{1848,10110,3},{1852,10110,3}, {1852,10113,3},{1857,10118,3},{1860,10118,3},{1863,10123,3},{1868,10127,3}, {1872,10123,3},{1878,10125,3},{1888,10125,3},{1895,10130,3},{1898,10130,3}, {1903,10135,3},{1905,10135,3},{1913,10127,3},{1923,10125,3},{1930,10123,3}, {1933,10123,3},{1937,10120,3},{1947,10122,3},{1948,10127,3},{1952,10128,3}, {1957,10128,3},{1958,10125,3},{1960,10122,3},{1957,10120,3},{1957,10112,3}, {1962,10103,3},{1962,10090,3},{1952,10082,3},{1948,10078,3},{1952,10073,3}, {1955,10065,3},{1955,10062,3},{1952,10060,3},{1950,10058,3},{1952,10053,3}, {1952,10052,3},{1955,10048,3},{1958,10048,3},{1963,10045,3},{1970,10043,3}, {1975,10040,3},{1985,10045,3},{1988,10050,3},{2015,10058,3},{2017,10055,3}, {2015,10052,3},{2018,10047,3},{2023,10043,3},{2023,10042,3},{2035,10037,3}, {2038,10033,3},{2038,10025,3},{2035,10022,3},{2032,10022,3},{2028,10017,3}, {2025,10017,3},{2023,10017,3},{2025,10010,3},{2032,10010,3},{2035,10008,3}, {1435,10522,131},{1435,10518,3},{1432,10518,3},{1425,10515,3},{1422,10508,3}, {1425,10503,3},{1432,10500,3},{1438,10500,3},{1442,10490,3},{1442,10485,3}, {1445,10482,3},{1445,10480,3},{1442,10473,3},{1443,10472,3},{1440,10468,3}, {1443,10465,3},{1437,10458,3},{1437,10455,3},{1438,10452,3},{1435,10447,3}, {1437,10443,3},{1438,10433,3},{1442,10427,3},{1438,10422,3},{1438,10420,3}, {1442,10420,3},{1437,10417,3},{1437,10415,3},{1438,10413,3},{1435,10403,3}, {1437,10400,3},{1437,10395,3},{1435,10395,3},{1433,10392,3},{1435,10388,3}, {1438,10385,3},{1437,10380,3},{1438,10370,3},{1443,10370,3},{1445,10367,3}, {1442,10365,3},{1440,10362,3},{1443,10357,3},{1437,10347,3},{1440,10345,3}, {1435,10340,3},{1435,10328,3},{1433,10323,3},{1433,10318,3},{1430,10310,3}, {1423,10303,3},{1418,10295,3},{1413,10293,3},{1408,10290,3},{1402,10290,3}, {1393,10278,3},{1377,10272,3},{1368,10257,3},{1365,10257,3},{1360,10262,3}, {1360,10260,3},{1357,10253,3},{1357,10245,3},{1358,10237,3},{1355,10233,3}, {1350,10237,3},{1328,10235,3},{1323,10237,3},{1312,10242,3},{1307,10247,3}, {1302,10250,3},{1300,10252,3},{1298,10250,3},{1295,10250,3},{1293,10248,3}, {1288,10252,3},{1285,10250,3},{1280,10253,3},{1275,10252,3},{1273,10250,3}, {1267,10250,3},{1260,10263,3},{1255,10268,3},{1252,10272,3},{1247,10273,3}, {1243,10278,3},{1240,10278,3},{1237,10273,3},{1217,10272,3},{1205,10278,3}, {1198,10278,3},{1190,10283,3},{1183,10285,3},{1175,10292,3},{1165,10293,3}, {1163,10292,3},{1175,10290,3},{1190,10277,3},{1195,10278,3},{1203,10277,3}, {1215,10263,3},{1217,10265,3},{1220,10260,3},{1222,10260,3},{1220,10255,3}, {1205,10258,3},{1205,10255,3},{1208,10255,3},{1212,10252,3},{1213,10247,3}, {1215,10247,3},{1217,10240,3},{1218,10237,3},{1220,10233,3},{1218,10232,3}, {1218,10230,3},{1220,10228,3},{1223,10228,3},{1228,10227,3},{1228,10228,3}, {1228,10232,3},{1235,10237,3},{1237,10233,3},{1237,10232,3},{1235,10233,3}, {1233,10235,3},{1232,10230,3},{1237,10227,3},{1242,10230,3},{1238,10227,3}, {1242,10227,3},{1243,10227,3},{1242,10223,3},{1243,10222,3},{1243,10220,3}, {1242,10222,3},{1240,10220,3},{1240,10223,3},{1237,10225,3},{1230,10228,3}, {1230,10227,3},{1232,10223,3},{1240,10215,3},{1240,10212,3},{1243,10212,3}, {1248,10207,3},{1250,10208,3},{1248,10210,3},{1252,10208,3},{1253,10212,3}, {1253,10210,3},{1252,10208,3},{1253,10208,3},{1253,10210,3},{1253,10203,3}, {1255,10203,3},{1257,10207,3},{1255,10200,3},{1255,10202,3},{1252,10203,3}, {1252,10207,3},{1247,10205,3},{1252,10203,3},{1253,10198,3},{1253,10195,3}, {1260,10195,3},{1258,10193,3},{1252,10195,3},{1257,10190,3},{1258,10192,3}, {1260,10190,3},{1260,10188,3},{1265,10187,3},{1270,10175,3},{1270,10168,3}, {1265,10165,3},{1265,10158,3},{1263,10157,3},{1263,10145,3},{1258,10142,3}, {1265,10128,3},{1268,10108,3},{1263,10098,3},{1260,10097,3},{1262,10092,3}, {1265,10093,3},{1265,10092,3},{1265,10087,3},{1267,10087,3},{1268,10085,3}, {1270,10087,3},{1270,10083,3},{1273,10083,3},{1277,10087,3},{1277,10090,3}, {1280,10092,3},{1287,10090,3},{1292,10087,3},{1293,10088,3},{1297,10090,3}, {1298,10092,3},{1302,10093,3},{1305,10092,3},{1308,10088,3},{1320,10095,3}, {1330,10092,3},{1333,10093,3},{1337,10098,3},{1345,10097,3},{1350,10100,3}, {1347,10097,3},{1347,10092,3},{1352,10065,3},{1355,10058,3},{1360,10060,3}, {1357,10058,3},{1353,10058,3},{1352,10057,3},{1348,10033,3},{1352,10027,3}, {1348,10025,3},{1342,10005,3},{1337,10003,3},{1337,10000,3},{1337,10002,3}, {1335,10002,3},{1330,9995,3},{1327,9997,3},{1322,10000,3},{1315,10007,3}, {1308,10008,3},{1305,10010,3},{1295,10005,3},{1287,10003,3},{1275,9997,3}, {1267,9997,3},{1262,9997,3},{1253,9998,3},{1247,9997,3},{1237,10002,3}, {1227,9998,3},{1223,10002,3},{1218,10002,3},{1215,9998,3},{1208,9997,3}, {1198,9987,3},{1188,9982,3},{1183,9983,3},{1182,9980,3},{1178,9982,3},{1177,9980,3}, {1173,9982,3},{1173,9978,3},{1168,9973,3},{1152,9963,3},{1140,9962,3},{1132,9957,3}, {1127,9957,3},{1122,9958,3},{1118,9958,3},{1118,9957,3},{1120,9955,3},{1118,9953,3}, {1112,9948,3},{1107,9950,3},{1103,9952,3},{1095,9950,3},{1090,9952,3},{1087,9950,3}, {1088,9948,3},{1087,9943,3},{1080,9943,3},{1070,9937,3},{1068,9937,3},{1067,9933,3}, {1065,9932,3},{1055,9928,3},{1052,9923,3},{1050,9927,3},{1047,9923,3},{1045,9923,3}, {1042,9928,3},{1037,9928,3},{1035,9923,3},{1037,9922,3},{1037,9915,3},{1030,9917,3}, {1027,9918,3},{1025,9920,3},{1023,9922,3},{1023,9925,3},{1020,9923,3},{1020,9920,3}, {1012,9915,3},{1007,9915,3},{1005,9918,3},{1002,9918,3},{1000,9917,3},{998,9915,3}, {985,9917,3},{980,9915,3},{977,9915,3},{963,9918,3},{960,9922,3},{955,9922,3}, {947,9927,3},{940,9932,3},{938,9930,3},{933,9923,3},{925,9923,3},{922,9927,3}, {923,9930,3},{920,9937,3},{918,9945,3},{922,9950,3},{928,9953,3},{927,9962,3}, {930,9965,3},{930,9968,3},{932,9970,3},{930,9973,3},{932,9975,3},{930,9985,3}, {923,9987,3},{922,9988,3},{915,9988,3},{910,9992,3},{903,9992,3},{900,9993,3}, {898,9992,3},{887,9993,3},{862,9997,3},{857,9998,3},{853,10005,3},{843,10008,3}, {840,10013,3},{838,10017,3},{840,10018,3},{842,10017,3},{847,10018,3},{850,10015,3}, {852,10013,3},{850,10017,3},{843,10022,3},{830,10027,3},{812,10030,3},{778,10038,3}, {747,10043,3},{730,10052,3},{722,10058,3},{718,10057,3},{725,10048,3},{725,10043,3}, {727,10042,3},{730,10043,3},{753,10040,3},{757,10038,3},{757,10035,3},{755,10032,3}, {753,10030,3},{752,10027,3},{758,10028,3},{758,10030,3},{762,10032,3},{773,10032,3}, {778,10030,3},{780,10027,3},{778,10022,3},{775,10020,3},{773,10015,3},{772,10015,3}, {762,10015,3},{752,10018,3},{748,10023,3},{738,10027,3},{733,10032,3},{733,10037,3}, {727,10038,3},{725,10042,3},{722,10038,3},{717,10042,3},{715,10048,3},{713,10047,3}, {713,10053,3},{717,10058,3},{722,10060,3},{697,10078,3},{695,10080,3},{695,10085,3}, {685,10102,3},{685,10105,3},{687,10108,3},{687,10122,3},{690,10128,3},{687,10130,3}, {687,10135,3},{688,10137,3},{692,10133,3},{693,10127,3},{695,10130,3},{690,10140,3}, {685,10153,3},{683,10157,3},{648,10178,3},{645,10182,3},{642,10188,3},{632,10198,3}, {623,10210,3},{612,10208,3},{597,10195,3},{587,10195,3},{578,10185,3},{575,10183,3}, {575,10180,3},{578,10177,3},{578,10175,3},{577,10168,3},{582,10167,3},{587,10167,3}, {587,10163,3},{590,10162,3},{592,10157,3},{587,10150,3},{587,10142,3},{580,10135,3}, {580,10128,3},{577,10127,3},{570,10125,3},{567,10122,3},{563,10115,3},{572,10108,3}, {573,10102,3},{578,10098,3},{590,10103,3},{593,10110,3},{598,10112,3},{603,10110,3}, {610,10112,3},{615,10108,3},{617,10108,3},{618,10112,3},{625,10112,3},{625,10103,3}, {628,10098,3},{623,10095,3},{625,10088,3},{623,10085,3},{628,10085,3},{633,10085,3}, {637,10083,3},{642,10083,3},{645,10080,3},{645,10077,3},{650,10075,3},{645,10067,3}, {648,10053,3},{652,10052,3},{652,10043,3},{655,10037,3},{658,10033,3},{670,10030,3}, {670,10027,3},{668,10025,3},{672,10022,3},{670,10018,3},{663,10017,3},{657,10020,3}, {653,10017,3},{648,10017,3},{642,10012,3},{647,10012,3},{648,10008,3},{652,10010,3}, {653,10010,3},{652,10005,3},{658,9998,3},{658,9997,3},{663,9997,3},{665,9995,3}, {667,9993,3},{672,9992,3},{672,9988,3},{677,9985,3},{677,9982,3},{683,9978,3}, {685,9970,3},{688,9968,3},{693,9968,3},{693,9972,3},{697,9970,3},{697,9968,3}, {703,9968,3},{713,9975,3},{712,9968,3},{715,9967,3},{717,9967,3},{715,9963,3}, {713,9962,3},{715,9962,3},{713,9958,3},{715,9958,3},{723,9953,3},{727,9955,3}, {728,9958,3},{737,9960,3},{730,9955,3},{730,9953,3},{737,9952,3},{738,9952,3}, {737,9948,3},{730,9948,3},{727,9947,3},{730,9940,3},{737,9933,3},{745,9935,3}, {750,9933,3},{750,9930,3},{753,9932,3},{757,9930,3},{762,9928,3},{762,9925,3}, {765,9927,3},{768,9920,3},{772,9918,3},{773,9913,3},{777,9913,3},{770,9912,3}, {768,9910,3},{770,9903,3},{782,9902,3},{785,9905,3},{792,9907,3},{790,9903,3}, {793,9900,3},{793,9897,3},{802,9895,3},{805,9892,3},{802,9888,3},{800,9883,3}, {805,9880,3},{802,9877,3},{808,9875,3},{813,9875,3},{813,9873,3},{822,9873,3}, {825,9873,3},{822,9870,3},{828,9870,3},{830,9868,3},{828,9865,3},{828,9862,3}, {835,9863,3},{838,9865,3},{838,9862,3},{840,9860,3},{837,9860,3},{835,9853,3}, {833,9853,3},{833,9850,3},{832,9848,3},{833,9847,3},{832,9842,3},{828,9845,3}, {822,9847,3},{818,9845,3},{815,9843,3},{815,9842,3},{817,9840,3},{813,9840,3}, {815,9837,3},{818,9835,3},{818,9833,3},{820,9832,3},{822,9828,3},{830,9827,3}, {857,9820,3},{858,9820,3},{855,9822,3},{852,9825,3},{853,9825,3},{857,9822,3}, {867,9823,3},{873,9822,3},{877,9825,3},{885,9827,3},{890,9830,3},{892,9830,3}, {897,9832,3},{897,9837,3},{900,9835,3},{903,9838,3},{902,9833,3},{902,9832,3}, {905,9833,3},{907,9837,3},{908,9838,3},{913,9835,3},{920,9832,3},{920,9833,3}, {920,9835,3},{922,9837,3},{925,9835,3},{932,9838,3},{940,9840,3},{942,9842,3}, {955,9845,3},{953,9848,3},{957,9853,3},{957,9848,3},{962,9847,3},{963,9847,3}, {963,9850,3},{965,9852,3},{967,9850,3},{968,9852,3},{972,9850,3},{970,9853,3}, {973,9857,3},{975,9852,3},{973,9850,3},{978,9852,3},{978,9855,3},{983,9858,3}, {983,9857,3},{980,9855,3},{985,9852,3},{987,9853,3},{988,9855,3},{987,9857,3}, {988,9857,3},{990,9858,3},{992,9857,3},{993,9858,3},{995,9858,3},{995,9863,3}, {997,9863,3},{995,9860,3},{997,9860,3},{1017,9870,3},{1033,9875,3},{1035,9875,3}, {1042,9877,3},{1047,9880,3},{1052,9882,3},{1058,9880,3},{1062,9877,3},{1068,9878,3}, {1077,9887,3},{1078,9890,3},{1082,9892,3},{1082,9893,3},{1082,9897,3},{1083,9898,3}, {1083,9900,3},{1088,9902,3},{1092,9900,3},{1097,9902,3},{1095,9907,3},{1097,9908,3}, {1102,9910,3},{1103,9917,3},{1108,9920,3},{1110,9923,3},{1123,9928,3},{1128,9932,3}, {1132,9933,3},{1138,9940,3},{1145,9940,3},{1147,9945,3},{1152,9947,3},{1162,9947,3}, {1163,9948,3},{1163,9957,3},{1168,9960,3},{1173,9963,3},{1183,9967,3},{1183,9963,3}, {1188,9958,3},{1197,9960,3},{1200,9960,3},{1202,9955,3},{1205,9955,3},{1213,9957,3}, {1213,9947,3},{1218,9950,3},{1222,9948,3},{1227,9948,3},{1232,9945,3},{1240,9945,3}, {1247,9942,3},{1250,9943,3},{1258,9943,3},{1260,9942,3},{1260,9938,3},{1265,9935,3}, {1267,9930,3},{1272,9928,3},{1272,9925,3},{1280,9923,3},{1283,9920,3},{1292,9918,3}, {1297,9920,3},{1305,9912,3},{1313,9913,3},{1318,9912,3},{1322,9922,3},{1332,9920,3}, {1333,9922,3},{1340,9922,3},{1347,9922,3},{1357,9917,3},{1358,9918,3},{1363,9917,3}, {1372,9918,3},{1375,9917,3},{1377,9913,3},{1383,9912,3},{1388,9912,3},{1393,9903,3}, {1402,9900,3},{1403,9897,3},{1408,9897,3},{1412,9890,3},{1415,9887,3},{1422,9877,3}, {1428,9873,3},{1428,9868,3},{1432,9862,3},{1437,9860,3},{1438,9857,3},{1453,9850,3}, {1453,9847,3},{1458,9847,3},{1460,9845,3},{1472,9832,3},{1477,9830,3},{1480,9827,3}, {1485,9827,3},{1487,9825,3},{1492,9825,3},{1500,9822,3},{1505,9823,3},{1510,9818,3}, {1518,9822,3},{1522,9820,3},{1523,9827,3},{1530,9832,3},{1528,9838,3},{1527,9842,3}, {1528,9842,3},{1530,9840,3},{1532,9840,3},{1532,9842,3},{1537,9843,3},{1537,9847,3}, {1538,9850,3},{1537,9855,3},{1533,9857,3},{1535,9858,3},{1545,9860,3},{1558,9857,3}, {1567,9858,3},{1572,9857,3},{1587,9862,3},{1593,9858,3},{1597,9862,3},{1602,9860,3}, {1605,9857,3},{1605,9865,3},{1608,9867,3},{1612,9868,3},{1613,9870,3},{1612,9878,3}, {1610,9880,3},{1613,9885,3},{1622,9887,3},{1627,9892,3},{1632,9892,3},{1638,9893,3}, {1643,9887,3},{1648,9887,3},{1645,9883,3},{1638,9882,3},{1633,9875,3},{1627,9872,3}, {1628,9868,3},{1638,9867,3},{1642,9865,3},{1645,9867,3},{1655,9858,3},{1658,9860,3}, {1662,9858,3},{1663,9853,3},{1672,9852,3},{1673,9848,3},{1678,9850,3},{1678,9853,3}, {1680,9853,3},{1680,9855,3},{1683,9852,3},{1687,9852,3},{1685,9855,3},{1688,9855,3}, {1692,9850,3},{1693,9852,3},{1697,9848,3},{1698,9848,3},{1698,9847,3},{1702,9847,3}, {1705,9842,3},{1705,9833,3},{1708,9832,3},{1710,9832,3},{1712,9830,3},{1713,9830,3}, {1720,9825,3},{1722,9825,3},{1722,9822,3},{1732,9812,3},{1738,9812,3},{1742,9805,3}, {1745,9805,3},{1747,9803,3},{1750,9802,3},{1753,9795,3},{1770,9778,3},{1775,9777,3}, {1783,9770,3},{1787,9768,3},{1793,9770,3},{1795,9773,3},{1797,9775,3},{1805,9772,3}, {1805,9768,3},{1808,9770,3},{1812,9768,3},{1815,9768,3},{1823,9762,3},{1825,9762,3}, {1827,9765,3},{1828,9765,3},{1832,9762,3},{1833,9758,3},{1832,9755,3},{1827,9753,3}, {1828,9748,3},{1833,9745,3},{1842,9743,3},{1855,9735,3},{1858,9737,3},{1855,9737,3}, {1855,9742,3},{1850,9745,3},{1848,9753,3},{1853,9762,3},{1855,9762,3},{1857,9767,3}, {1857,9777,3},{1868,9778,3},{1873,9777,3},{1887,9775,3},{1893,9768,3},{1897,9773,3}, {1903,9775,3},{1910,9783,3},{1922,9783,3},{1928,9778,3},{1930,9783,3},{1940,9780,3}, {1950,9788,3},{1953,9787,3},{1957,9787,3},{1957,9790,3},{1960,9797,3},{1963,9800,3}, {1965,9803,3},{1972,9803,3},{1980,9805,3},{1980,9808,3},{1977,9810,3},{1978,9813,3}, {1973,9820,3},{1972,9823,3},{1968,9825,3},{1967,9827,3},{1970,9833,3},{1970,9847,3}, {1972,9852,3},{1968,9857,3},{1970,9858,3},{1972,9862,3},{1973,9865,3},{1977,9878,3}, {1982,9883,3},{1975,9892,3},{1978,9897,3},{1978,9900,3},{1980,9900,3},{1985,9903,3}, {1993,9902,3},{1993,9903,3},{1997,9903,3},{2005,9905,3},{2010,9908,3},{2013,9918,3}, {2010,9927,3},{2007,9933,3},{2010,9947,3},{2015,9952,3},{2015,9953,3},{2020,9955,3}, {2025,9952,3},{2032,9950,3},{2037,9945,3},{2038,9945,3},{2035,9953,3},{2032,9967,3}, {2033,9973,3},{2033,9982,3},{2042,9987,3},{2045,9997,3},{2038,10002,3}, {2038,10007,3},{2035,10007,3},{2035,10008,3},{2032,10010,3},{2025,10010,3}, {2023,10017,3},{2025,10017,3},{2028,10017,3},{2032,10022,3},{2035,10022,3}, {2038,10025,3},{2038,10033,3},{2035,10037,3},{2023,10042,3},{2023,10043,3}, {2018,10047,3},{2015,10052,3},{2017,10055,3},{2015,10058,3},{1988,10050,3}, {1985,10045,3},{1975,10040,3},{1970,10043,3},{1963,10045,3},{1958,10048,3}, {1955,10048,3},{1952,10052,3},{1952,10053,3},{1950,10058,3},{1952,10060,3}, {1955,10062,3},{1955,10065,3},{1952,10073,3},{1948,10078,3},{1952,10082,3}, {1962,10090,3},{1962,10103,3},{1957,10112,3},{1957,10120,3},{1960,10122,3}, {1958,10125,3},{1957,10128,3},{1952,10128,3},{1948,10127,3},{1947,10122,3}, {1937,10120,3},{1933,10123,3},{1930,10123,3},{1923,10125,3},{1913,10127,3}, {1905,10135,3},{1903,10135,3},{1898,10130,3},{1895,10130,3},{1888,10125,3}, {1878,10125,3},{1872,10123,3},{1868,10127,3},{1863,10123,3},{1860,10118,3}, {1857,10118,3},{1852,10113,3},{1852,10110,3},{1848,10110,3},{1843,10105,3}, {1837,10110,3},{1833,10118,3},{1830,10115,3},{1825,10115,3},{1822,10117,3}, {1820,10118,3},{1812,10117,3},{1805,10118,3},{1802,10113,3},{1797,10112,3}, {1793,10108,3},{1790,10102,3},{1783,10103,3},{1782,10098,3},{1778,10100,3}, {1777,10098,3},{1772,10098,3},{1765,10095,3},{1760,10092,3},{1757,10092,3}, {1755,10103,3},{1750,10108,3},{1750,10110,3},{1747,10112,3},{1747,10117,3}, {1752,10118,3},{1753,10123,3},{1757,10125,3},{1765,10132,3},{1765,10135,3}, {1770,10138,3},{1768,10142,3},{1772,10143,3},{1773,10142,3},{1773,10145,3}, {1775,10148,3},{1773,10148,3},{1773,10150,3},{1777,10152,3},{1778,10158,3}, {1782,10157,3},{1787,10158,3},{1785,10160,3},{1787,10162,3},{1790,10165,3}, {1792,10173,3},{1803,10177,3},{1807,10178,3},{1803,10188,3},{1803,10192,3}, {1807,10193,3},{1815,10202,3},{1820,10205,3},{1822,10208,3},{1820,10218,3}, {1815,10218,3},{1807,10228,3},{1805,10230,3},{1803,10237,3},{1798,10242,3}, {1797,10248,3},{1797,10253,3},{1795,10260,3},{1790,10262,3},{1783,10258,3}, {1780,10268,3},{1787,10267,3},{1788,10275,3},{1793,10278,3},{1797,10287,3}, {1800,10295,3},{1798,10302,3},{1798,10305,3},{1803,10307,3},{1812,10307,3}, {1817,10313,3},{1823,10317,3},{1828,10328,3},{1832,10328,3},{1835,10323,3}, {1837,10325,3},{1842,10330,3},{1843,10340,3},{1840,10360,3},{1833,10372,3}, {1833,10380,3},{1828,10387,3},{1828,10388,3},{1833,10395,3},{1832,10398,3}, {1820,10407,3},{1810,10410,3},{1798,10422,3},{1785,10428,3},{1782,10435,3}, {1773,10440,3},{1765,10447,3},{1753,10468,3},{1750,10472,3},{1745,10475,3}, {1742,10478,3},{1738,10480,3},{1728,10482,3},{1713,10480,3},{1702,10473,3}, {1692,10475,3},{1687,10477,3},{1680,10475,3},{1672,10477,3},{1657,10475,3}, {1653,10475,3},{1645,10485,3},{1635,10490,3},{1625,10502,3},{1613,10505,3}, {1610,10508,3},{1605,10518,3},{1602,10542,3},{1600,10543,3},{1598,10538,3}, {1593,10535,3},{1580,10540,3},{1575,10545,3},{1577,10550,3},{1575,10553,3}, {1573,10560,3},{1567,10563,3},{1558,10563,3},{1552,10560,3},{1543,10560,3}, {1540,10557,3},{1538,10550,3},{1535,10547,3},{1533,10550,3},{1533,10558,3}, {1527,10560,3},{1525,10555,3},{1520,10548,3},{1512,10547,3},{1507,10552,3}, {1507,10555,3},{1500,10558,3},{1498,10562,3},{1495,10555,3},{1490,10558,3}, {1488,10553,3},{1483,10555,3},{1482,10552,3},{1477,10552,3},{1473,10553,3}, {1467,10552,3},{1462,10553,3},{1455,10553,3},{1447,10545,3},{1443,10545,3}, {1442,10538,3},{1438,10535,3},{1440,10532,3},{1437,10530,3},{1437,10525,3}, {1433,10523,3},{1435,10522,3},{642,10012,131},{648,10017,3},{653,10017,3}, {657,10020,3},{663,10017,3},{670,10018,3},{672,10022,3},{668,10025,3},{670,10027,3}, {670,10030,3},{658,10033,3},{655,10037,3},{652,10043,3},{652,10052,3},{648,10053,3}, {645,10067,3},{650,10075,3},{645,10077,3},{645,10080,3},{642,10083,3},{637,10083,3}, {633,10085,3},{628,10085,3},{623,10085,3},{625,10088,3},{623,10095,3},{628,10098,3}, {625,10103,3},{625,10112,3},{618,10112,3},{617,10108,3},{615,10108,3},{610,10112,3}, {603,10110,3},{598,10112,3},{593,10110,3},{590,10103,3},{578,10098,3},{573,10102,3}, {572,10108,3},{563,10115,3},{567,10122,3},{570,10125,3},{577,10127,3},{580,10128,3}, {580,10135,3},{587,10142,3},{587,10150,3},{592,10157,3},{590,10162,3},{587,10163,3}, {587,10167,3},{582,10167,3},{577,10168,3},{578,10175,3},{578,10177,3},{575,10180,3}, {575,10183,3},{578,10185,3},{587,10195,3},{597,10195,3},{612,10208,3},{623,10210,3}, {620,10217,3},{620,10220,3},{622,10217,3},{623,10218,3},{618,10233,3},{608,10242,3}, {588,10250,3},{580,10262,3},{572,10267,3},{558,10285,3},{553,10297,3},{547,10305,3}, {538,10312,3},{523,10322,3},{508,10328,3},{480,10345,3},{473,10343,3},{455,10347,3}, {447,10345,3},{432,10350,3},{423,10347,3},{422,10345,3},{417,10345,3},{415,10342,3}, {410,10340,3},{405,10340,3},{395,10343,3},{395,10340,3},{390,10338,3},{380,10338,3}, {380,10335,3},{375,10333,3},{363,10337,3},{353,10347,3},{350,10345,3},{350,10348,3}, {340,10343,3},{318,10345,3},{305,10343,3},{293,10343,3},{280,10352,3},{268,10362,3}, {267,10363,3},{267,10367,3},{265,10370,3},{263,10372,3},{265,10377,3},{262,10377,3}, {258,10382,3},{252,10383,3},{247,10383,3},{235,10392,3},{233,10395,3},{225,10398,3}, {220,10397,3},{213,10402,3},{202,10407,3},{198,10412,3},{185,10413,3},{183,10415,3}, {185,10417,3},{180,10418,3},{163,10425,3},{155,10427,3},{145,10430,3},{142,10428,3}, {137,10428,3},{137,10425,3},{133,10420,3},{137,10412,3},{138,10410,3},{142,10410,3}, {147,10405,3},{150,10408,3},{152,10413,3},{155,10415,3},{153,10412,3},{150,10405,3}, {157,10403,3},{165,10397,3},{163,10395,3},{160,10397,3},{153,10402,3},{150,10400,3}, {147,10402,3},{143,10400,3},{142,10397,3},{143,10392,3},{148,10382,3},{145,10377,3}, {145,10368,3},{138,10363,3},{135,10358,3},{138,10355,3},{133,10355,3},{127,10352,3}, {132,10345,3},{148,10340,3},{153,10337,3},{162,10320,3},{173,10302,3},{175,10293,3}, {185,10283,3},{185,10270,3},{193,10265,3},{202,10255,3},{205,10255,3},{210,10247,3}, {222,10217,3},{227,10210,3},{233,10205,3},{237,10198,3},{240,10198,3},{242,10193,3}, {240,10185,3},{247,10185,3},{252,10180,3},{257,10178,3},{258,10177,3},{260,10170,3}, {262,10168,3},{267,10153,3},{270,10148,3},{280,10140,3},{283,10128,3},{288,10130,3}, {290,10128,3},{300,10137,3},{308,10137,3},{313,10132,3},{327,10130,3},{333,10123,3}, {335,10120,3},{347,10112,3},{360,10105,3},{363,10102,3},{370,10093,3},{377,10087,3}, {378,10082,3},{380,10082,3},{385,10085,3},{383,10077,3},{388,10070,3},{392,10070,3}, {400,10072,3},{398,10077,3},{402,10087,3},{403,10083,3},{402,10078,3},{403,10077,3}, {410,10077,3},{412,10073,3},{417,10068,3},{417,10062,3},{423,10060,3},{425,10062,3}, {427,10060,3},{430,10058,3},{432,10057,3},{440,10058,3},{443,10062,3},{455,10065,3}, {457,10060,3},{460,10058,3},{463,10060,3},{463,10063,3},{467,10067,3},{465,10060,3}, {475,10058,3},{475,10063,3},{477,10062,3},{480,10062,3},{480,10057,3},{482,10057,3}, {485,10057,3},{487,10055,3},{487,10050,3},{488,10050,3},{488,10052,3},{490,10052,3}, {492,10048,3},{492,10045,3},{492,10043,3},{497,10042,3},{498,10040,3},{508,10037,3}, {512,10040,3},{520,10043,3},{525,10042,3},{528,10043,3},{538,10037,3},{552,10038,3}, {557,10035,3},{567,10033,3},{567,10038,3},{570,10037,3},{582,10038,3},{597,10035,3}, {603,10033,3},{608,10030,3},{620,10025,3},{628,10018,3},{642,10012,3},{1035,9875,131}, {1022,9868,3},{1010,9862,3},{998,9855,3},{998,9853,3},{1002,9852,3},{1007,9852,3}, {1008,9850,3},{1015,9852,3},{1018,9848,3},{1025,9852,3},{1030,9850,3},{1035,9853,3}, {1045,9850,3},{1055,9850,3},{1062,9847,3},{1072,9845,3},{1073,9850,3},{1070,9852,3}, {1070,9853,3},{1075,9852,3},{1073,9857,3},{1077,9857,3},{1080,9860,3},{1083,9860,3}, {1085,9863,3},{1087,9858,3},{1088,9862,3},{1092,9863,3},{1090,9867,3},{1092,9872,3}, {1098,9872,3},{1100,9868,3},{1102,9870,3},{1105,9873,3},{1108,9870,3},{1110,9870,3}, {1108,9868,3},{1113,9867,3},{1113,9870,3},{1117,9873,3},{1122,9873,3},{1127,9877,3}, {1133,9873,3},{1135,9872,3},{1138,9872,3},{1138,9870,3},{1145,9872,3},{1145,9877,3}, {1152,9875,3},{1152,9872,3},{1157,9872,3},{1157,9873,3},{1162,9873,3},{1168,9875,3}, {1167,9880,3},{1170,9882,3},{1170,9883,3},{1168,9888,3},{1170,9888,3},{1173,9885,3}, {1173,9882,3},{1175,9878,3},{1178,9878,3},{1182,9882,3},{1185,9882,3},{1182,9882,3}, {1178,9877,3},{1177,9877,3},{1173,9872,3},{1170,9870,3},{1168,9867,3},{1172,9862,3}, {1175,9860,3},{1180,9863,3},{1180,9860,3},{1182,9862,3},{1183,9865,3},{1185,9865,3}, {1187,9867,3},{1188,9870,3},{1190,9868,3},{1188,9865,3},{1188,9855,3},{1190,9857,3}, {1192,9865,3},{1195,9868,3},{1197,9872,3},{1198,9872,3},{1202,9872,3},{1203,9870,3}, {1207,9872,3},{1207,9865,3},{1208,9863,3},{1212,9863,3},{1213,9863,3},{1215,9867,3}, {1217,9865,3},{1220,9872,3},{1222,9872,3},{1223,9867,3},{1220,9860,3},{1222,9855,3}, {1225,9853,3},{1228,9857,3},{1230,9867,3},{1233,9870,3},{1238,9867,3},{1238,9865,3}, {1242,9860,3},{1248,9862,3},{1250,9872,3},{1255,9862,3},{1262,9865,3},{1262,9867,3}, {1265,9865,3},{1272,9870,3},{1273,9863,3},{1275,9867,3},{1275,9868,3},{1275,9863,3}, {1277,9860,3},{1278,9865,3},{1280,9865,3},{1287,9863,3},{1292,9858,3},{1295,9862,3}, {1302,9858,3},{1308,9858,3},{1312,9857,3},{1317,9858,3},{1323,9853,3},{1325,9850,3}, {1328,9850,3},{1330,9850,3},{1328,9847,3},{1337,9845,3},{1340,9847,3},{1338,9845,3}, {1340,9845,3},{1345,9842,3},{1347,9843,3},{1355,9838,3},{1355,9837,3},{1358,9837,3}, {1358,9833,3},{1362,9833,3},{1365,9830,3},{1368,9828,3},{1370,9830,3},{1370,9823,3}, {1387,9825,3},{1392,9823,3},{1400,9823,3},{1407,9818,3},{1402,9818,3},{1397,9820,3}, {1393,9818,3},{1387,9820,3},{1375,9817,3},{1367,9820,3},{1362,9817,3},{1357,9817,3}, {1353,9818,3},{1353,9817,3},{1355,9815,3},{1353,9813,3},{1357,9815,3},{1358,9813,3}, {1360,9815,3},{1362,9813,3},{1363,9815,3},{1367,9815,3},{1367,9817,3},{1368,9817,3}, {1368,9812,3},{1370,9810,3},{1373,9812,3},{1372,9810,3},{1377,9808,3},{1378,9808,3}, {1378,9812,3},{1385,9810,3},{1390,9810,3},{1392,9808,3},{1402,9807,3},{1403,9807,3}, {1405,9808,3},{1412,9810,3},{1417,9810,3},{1420,9810,3},{1418,9808,3},{1420,9807,3}, {1430,9800,3},{1437,9798,3},{1447,9800,3},{1443,9797,3},{1452,9795,3},{1457,9792,3}, {1462,9792,3},{1462,9790,3},{1467,9788,3},{1472,9792,3},{1472,9795,3},{1467,9798,3}, {1465,9803,3},{1470,9798,3},{1472,9800,3},{1473,9797,3},{1477,9797,3},{1480,9795,3}, {1475,9793,3},{1480,9790,3},{1473,9790,3},{1472,9788,3},{1472,9785,3},{1487,9780,3}, {1497,9782,3},{1500,9780,3},{1502,9778,3},{1503,9780,3},{1507,9780,3},{1515,9782,3}, {1518,9780,3},{1520,9782,3},{1520,9778,3},{1525,9773,3},{1530,9775,3},{1535,9773,3}, {1535,9775,3},{1538,9775,3},{1542,9778,3},{1550,9775,3},{1553,9777,3},{1560,9775,3}, {1573,9773,3},{1575,9772,3},{1577,9773,3},{1585,9773,3},{1585,9770,3},{1588,9772,3}, {1592,9770,3},{1595,9763,3},{1600,9760,3},{1602,9758,3},{1603,9758,3},{1607,9757,3}, {1612,9762,3},{1627,9765,3},{1635,9762,3},{1648,9763,3},{1655,9768,3},{1657,9773,3}, {1657,9770,3},{1653,9765,3},{1652,9763,3},{1653,9752,3},{1652,9750,3},{1652,9742,3}, {1648,9737,3},{1663,9733,3},{1667,9735,3},{1667,9730,3},{1670,9727,3},{1675,9727,3}, {1677,9725,3},{1682,9725,3},{1683,9723,3},{1687,9723,3},{1682,9722,3},{1690,9722,3}, {1690,9718,3},{1692,9718,3},{1702,9720,3},{1707,9715,3},{1710,9717,3},{1712,9718,3}, {1708,9723,3},{1710,9725,3},{1713,9718,3},{1712,9715,3},{1708,9713,3},{1708,9712,3}, {1715,9710,3},{1718,9710,3},{1718,9708,3},{1725,9707,3},{1727,9702,3},{1730,9700,3}, {1738,9690,3},{1745,9688,3},{1738,9685,3},{1742,9683,3},{1738,9682,3},{1737,9685,3}, {1735,9685,3},{1733,9690,3},{1730,9692,3},{1720,9685,3},{1708,9690,3},{1703,9692,3}, {1692,9688,3},{1693,9683,3},{1690,9685,3},{1690,9680,3},{1687,9685,3},{1685,9685,3}, {1677,9682,3},{1675,9678,3},{1673,9680,3},{1672,9678,3},{1655,9660,3},{1650,9650,3}, {1650,9640,3},{1655,9630,3},{1660,9627,3},{1665,9627,3},{1668,9623,3},{1675,9622,3}, {1677,9623,3},{1680,9628,3},{1682,9628,3},{1682,9627,3},{1677,9620,3},{1677,9617,3}, {1672,9620,3},{1667,9622,3},{1665,9625,3},{1658,9623,3},{1647,9630,3},{1645,9633,3}, {1643,9633,3},{1632,9612,3},{1635,9608,3},{1638,9600,3},{1633,9607,3},{1632,9608,3}, {1622,9597,3},{1622,9593,3},{1625,9595,3},{1622,9592,3},{1620,9588,3},{1623,9588,3}, {1613,9578,3},{1615,9575,3},{1622,9573,3},{1612,9573,3},{1605,9568,3},{1598,9568,3}, {1595,9567,3},{1580,9552,3},{1573,9543,3},{1572,9538,3},{1572,9528,3},{1583,9528,3}, {1587,9532,3},{1590,9532,3},{1593,9535,3},{1597,9537,3},{1605,9537,3},{1610,9533,3}, {1613,9537,3},{1610,9532,3},{1605,9535,3},{1598,9533,3},{1587,9528,3},{1587,9523,3}, {1588,9523,3},{1597,9528,3},{1600,9527,3},{1593,9523,3},{1588,9522,3},{1578,9522,3}, {1578,9518,3},{1578,9515,3},{1582,9512,3},{1590,9512,3},{1603,9513,3},{1598,9510,3}, {1603,9510,3},{1607,9512,3},{1608,9513,3},{1612,9518,3},{1612,9523,3},{1613,9515,3}, {1615,9513,3},{1605,9507,3},{1595,9507,3},{1580,9503,3},{1578,9500,3},{1578,9498,3}, {1575,9497,3},{1578,9485,3},{1580,9485,3},{1582,9488,3},{1583,9490,3},{1587,9488,3}, {1585,9487,3},{1583,9485,3},{1585,9485,3},{1588,9485,3},{1595,9483,3},{1600,9487,3}, {1600,9490,3},{1602,9492,3},{1603,9492,3},{1602,9488,3},{1613,9487,3},{1618,9490,3}, {1620,9497,3},{1625,9498,3},{1622,9497,3},{1620,9490,3},{1618,9487,3},{1613,9485,3}, {1603,9487,3},{1600,9483,3},{1595,9478,3},{1585,9472,3},{1585,9468,3},{1585,9465,3}, {1587,9463,3},{1590,9463,3},{1588,9462,3},{1592,9460,3},{1595,9467,3},{1600,9473,3}, {1607,9473,3},{1610,9477,3},{1613,9477,3},{1615,9480,3},{1613,9477,3},{1610,9475,3}, {1607,9472,3},{1602,9472,3},{1595,9462,3},{1593,9458,3},{1595,9457,3},{1597,9457,3}, {1603,9463,3},{1612,9468,3},{1620,9468,3},{1625,9467,3},{1635,9470,3},{1635,9473,3}, {1638,9472,3},{1648,9470,3},{1652,9473,3},{1650,9468,3},{1653,9467,3},{1635,9468,3}, {1627,9463,3},{1623,9458,3},{1625,9458,3},{1630,9462,3},{1632,9462,3},{1633,9465,3}, {1635,9463,3},{1633,9460,3},{1630,9460,3},{1627,9457,3},{1630,9453,3},{1630,9452,3}, {1618,9452,3},{1612,9445,3},{1607,9443,3},{1605,9437,3},{1598,9433,3},{1598,9428,3}, {1597,9425,3},{1603,9420,3},{1623,9423,3},{1627,9425,3},{1635,9423,3},{1637,9425,3}, {1648,9427,3},{1653,9427,3},{1653,9428,3},{1652,9432,3},{1655,9435,3},{1658,9435,3}, {1660,9433,3},{1663,9437,3},{1672,9437,3},{1680,9440,3},{1688,9438,3},{1690,9442,3}, {1695,9447,3},{1695,9445,3},{1707,9445,3},{1712,9448,3},{1715,9445,3},{1718,9445,3}, {1718,9447,3},{1717,9453,3},{1720,9453,3},{1722,9450,3},{1728,9452,3},{1728,9453,3}, {1732,9455,3},{1730,9460,3},{1733,9457,3},{1740,9457,3},{1750,9457,3},{1755,9455,3}, {1758,9457,3},{1755,9460,3},{1755,9462,3},{1763,9458,3},{1765,9457,3},{1773,9455,3}, {1780,9448,3},{1790,9448,3},{1798,9443,3},{1802,9448,3},{1805,9448,3},{1817,9445,3}, {1818,9443,3},{1822,9443,3},{1825,9440,3},{1825,9433,3},{1830,9433,3},{1828,9438,3}, {1830,9440,3},{1835,9440,3},{1837,9435,3},{1843,9432,3},{1853,9425,3},{1853,9427,3}, {1865,9423,3},{1873,9415,3},{1872,9417,3},{1873,9418,3},{1872,9422,3},{1873,9427,3}, {1875,9425,3},{1873,9422,3},{1878,9418,3},{1882,9415,3},{1885,9415,3},{1887,9413,3}, {1882,9412,3},{1885,9403,3},{1890,9403,3},{1893,9405,3},{1900,9403,3},{1903,9407,3}, {1905,9405,3},{1908,9410,3},{1908,9403,3},{1912,9403,3},{1915,9403,3},{1923,9407,3}, {1925,9405,3},{1930,9405,3},{1938,9408,3},{1938,9407,3},{1932,9403,3},{1920,9403,3}, {1915,9400,3},{1915,9397,3},{1917,9393,3},{1920,9393,3},{1920,9392,3},{1912,9395,3}, {1907,9395,3},{1902,9395,3},{1897,9398,3},{1890,9397,3},{1888,9393,3},{1885,9393,3}, {1893,9383,3},{1897,9373,3},{1902,9372,3},{1902,9368,3},{1907,9367,3},{1913,9365,3}, {1917,9360,3},{1922,9357,3},{1932,9350,3},{1935,9348,3},{1938,9348,3},{1940,9348,3}, {1942,9350,3},{1943,9355,3},{1940,9357,3},{1940,9362,3},{1935,9363,3},{1933,9362,3}, {1930,9367,3},{1928,9372,3},{1927,9372,3},{1927,9373,3},{1925,9373,3},{1923,9382,3}, {1927,9388,3},{1938,9400,3},{1942,9398,3},{1947,9398,3},{1945,9395,3},{1947,9392,3}, {1947,9390,3},{1950,9393,3},{1950,9387,3},{1957,9380,3},{1960,9378,3},{1963,9373,3}, {1965,9373,3},{1965,9375,3},{1965,9380,3},{1968,9380,3},{1970,9382,3},{1972,9382,3}, {1973,9380,3},{1968,9377,3},{1967,9375,3},{1968,9372,3},{1972,9372,3},{1973,9372,3}, {1975,9375,3},{1977,9372,3},{1977,9370,3},{1972,9368,3},{1972,9363,3},{1975,9363,3}, {1972,9362,3},{1972,9360,3},{1978,9360,3},{1982,9363,3},{1987,9365,3},{1988,9373,3}, {1990,9372,3},{1992,9375,3},{1993,9372,3},{1992,9370,3},{1990,9362,3},{1988,9358,3}, {1988,9355,3},{1992,9357,3},{1993,9352,3},{1995,9353,3},{1995,9352,3},{1997,9352,3}, {1998,9353,3},{2000,9352,3},{1997,9350,3},{1998,9347,3},{1995,9345,3},{1997,9342,3}, {2008,9338,3},{2002,9337,3},{2008,9335,3},{2010,9333,3},{2005,9330,3},{2005,9325,3}, {2007,9318,3},{2005,9317,3},{2008,9313,3},{1992,9320,3},{1983,9325,3},{1982,9323,3}, {1983,9322,3},{2000,9313,3},{1998,9310,3},{1995,9310,3},{1985,9313,3},{1980,9317,3}, {1983,9315,3},{1985,9312,3},{1997,9305,3},{2000,9305,3},{2007,9298,3},{2012,9297,3}, {2013,9307,3},{2015,9307,3},{2017,9308,3},{2015,9308,3},{2018,9312,3},{2022,9312,3}, {2017,9303,3},{2013,9300,3},{2017,9298,3},{2022,9298,3},{2030,9303,3},{2033,9303,3}, {2038,9310,3},{2040,9308,3},{2043,9310,3},{2042,9308,3},{2038,9307,3},{2037,9305,3}, {2038,9303,3},{2043,9303,3},{2052,9308,3},{2055,9308,3},{2045,9302,3},{2030,9300,3}, {2020,9292,3},{2012,9290,3},{2012,9287,3},{2022,9277,3},{2027,9280,3},{2030,9287,3}, {2032,9293,3},{2032,9290,3},{2035,9288,3},{2035,9287,3},{2038,9283,3},{2040,9285,3}, {2045,9282,3},{2045,9283,3},{2048,9283,3},{2050,9280,3},{2047,9280,3},{2045,9277,3}, {2047,9277,3},{2048,9277,3},{2048,9275,3},{2058,9272,3},{2070,9263,3},{2058,9272,3}, {2050,9272,3},{2043,9273,3},{2032,9273,3},{2028,9273,3},{2025,9273,3},{2028,9272,3}, {2043,9265,3},{2053,9253,3},{2062,9250,3},{2065,9247,3},{2067,9245,3},{2070,9237,3}, {2078,9237,3},{2095,9228,3},{2105,9227,3},{2113,9220,3},{2118,9220,3},{2123,9222,3}, {2130,9220,3},{2133,9220,3},{2137,9225,3},{2142,9227,3},{2142,9232,3},{2147,9237,3}, {2143,9242,3},{2137,9243,3},{2135,9248,3},{2138,9255,3},{2130,9258,3},{2125,9260,3}, {2130,9267,3},{2147,9262,3},{2163,9260,3},{2180,9260,3},{2188,9262,3},{2198,9260,3}, {2202,9265,3},{2203,9268,3},{2210,9268,3},{2210,9270,3},{2215,9270,3},{2217,9272,3}, {2205,9287,3},{2198,9288,3},{2195,9290,3},{2200,9292,3},{2202,9293,3},{2203,9295,3}, {2200,9300,3},{2207,9298,3},{2210,9302,3},{2212,9305,3},{2220,9305,3},{2222,9308,3}, {2218,9315,3},{2220,9317,3},{2223,9315,3},{2225,9320,3},{2243,9318,3},{2247,9313,3}, {2253,9312,3},{2260,9313,3},{2267,9310,3},{2278,9310,3},{2288,9312,3},{2288,9313,3}, {2292,9315,3},{2292,9317,3},{2302,9313,3},{2305,9313,3},{2307,9320,3},{2302,9323,3}, {2302,9330,3},{2307,9335,3},{2312,9335,3},{2313,9338,3},{2317,9337,3},{2323,9338,3}, {2335,9337,3},{2338,9340,3},{2350,9340,3},{2360,9342,3},{2365,9342,3},{2368,9343,3}, {2373,9340,3},{2387,9338,3},{2392,9338,3},{2398,9333,3},{2407,9333,3},{2408,9337,3}, {2408,9340,3},{2397,9348,3},{2397,9353,3},{2398,9357,3},{2397,9360,3},{2400,9362,3}, {2402,9363,3},{2400,9375,3},{2393,9382,3},{2395,9393,3},{2392,9403,3},{2390,9405,3}, {2388,9410,3},{2385,9412,3},{2385,9413,3},{2387,9415,3},{2393,9417,3},{2400,9422,3}, {2415,9425,3},{2428,9432,3},{2433,9432,3},{2437,9437,3},{2440,9435,3},{2442,9438,3}, {2448,9438,3},{2450,9442,3},{2457,9445,3},{2462,9452,3},{2472,9453,3},{2472,9458,3}, {2472,9460,3},{2477,9462,3},{2482,9462,3},{2487,9467,3},{2493,9470,3},{2498,9470,3}, {2502,9473,3},{2513,9473,3},{2518,9460,3},{2522,9458,3},{2528,9458,3},{2533,9462,3}, {2540,9463,3},{2547,9470,3},{2550,9473,3},{2550,9478,3},{2557,9485,3},{2557,9488,3}, {2558,9488,3},{2573,9500,3},{2575,9503,3},{2593,9502,3},{2597,9508,3},{2605,9518,3}, {2608,9517,3},{2612,9512,3},{2618,9510,3},{2620,9512,3},{2622,9508,3},{2633,9507,3}, {2642,9510,3},{2648,9507,3},{2657,9515,3},{2662,9513,3},{2663,9520,3},{2668,9523,3}, {2668,9525,3},{2665,9525,3},{2665,9527,3},{2672,9543,3},{2682,9552,3},{2682,9562,3}, {2688,9565,3},{2688,9572,3},{2697,9575,3},{2700,9580,3},{2703,9590,3},{2708,9597,3}, {2717,9602,3},{2723,9610,3},{2727,9620,3},{2728,9630,3},{2730,9643,3},{2730,9652,3}, {2732,9657,3},{2737,9662,3},{2735,9665,3},{2733,9667,3},{2737,9672,3},{2735,9678,3}, {2732,9682,3},{2727,9685,3},{2725,9688,3},{2722,9687,3},{2718,9688,3},{2713,9702,3}, {2710,9707,3},{2710,9710,3},{2708,9713,3},{2713,9717,3},{2717,9713,3},{2718,9713,3}, {2722,9710,3},{2745,9690,3},{2747,9690,3},{2750,9692,3},{2758,9688,3},{2762,9688,3}, {2767,9693,3},{2767,9697,3},{2773,9702,3},{2775,9708,3},{2778,9708,3},{2780,9712,3}, {2790,9723,3},{2792,9728,3},{2790,9732,3},{2788,9732,3},{2790,9737,3},{2795,9737,3}, {2802,9740,3},{2808,9732,3},{2817,9733,3},{2820,9737,3},{2822,9735,3},{2825,9737,3}, {2827,9740,3},{2830,9742,3},{2830,9747,3},{2835,9748,3},{2838,9747,3},{2845,9752,3}, {2855,9757,3},{2855,9758,3},{2848,9763,3},{2852,9768,3},{2852,9772,3},{2842,9775,3}, {2835,9780,3},{2835,9783,3},{2837,9785,3},{2838,9790,3},{2835,9793,3},{2830,9797,3}, {2828,9802,3},{2822,9802,3},{2822,9807,3},{2818,9810,3},{2813,9815,3},{2802,9815,3}, {2797,9813,3},{2795,9818,3},{2792,9820,3},{2790,9820,3},{2788,9817,3},{2787,9817,3}, {2785,9818,3},{2782,9823,3},{2780,9822,3},{2777,9823,3},{2773,9823,3},{2768,9827,3}, {2755,9832,3},{2753,9835,3},{2755,9840,3},{2755,9842,3},{2760,9843,3},{2768,9843,3}, {2765,9852,3},{2767,9855,3},{2760,9860,3},{2760,9863,3},{2762,9867,3},{2760,9870,3}, {2758,9870,3},{2747,9868,3},{2738,9870,3},{2737,9873,3},{2733,9873,3},{2720,9870,3}, {2715,9872,3},{2710,9870,3},{2708,9875,3},{2705,9877,3},{2700,9873,3},{2690,9877,3}, {2687,9873,3},{2678,9878,3},{2672,9875,3},{2670,9877,3},{2660,9878,3},{2658,9875,3}, {2638,9873,3},{2632,9868,3},{2627,9867,3},{2625,9867,3},{2625,9870,3},{2618,9873,3}, {2617,9872,3},{2613,9870,3},{2610,9867,3},{2610,9865,3},{2615,9865,3},{2612,9857,3}, {2605,9860,3},{2600,9860,3},{2598,9865,3},{2592,9868,3},{2590,9872,3},{2587,9872,3}, {2580,9863,3},{2585,9853,3},{2580,9848,3},{2577,9848,3},{2573,9845,3},{2568,9843,3}, {2565,9840,3},{2558,9838,3},{2555,9833,3},{2555,9830,3},{2558,9827,3},{2562,9817,3}, {2555,9817,3},{2550,9813,3},{2547,9815,3},{2538,9813,3},{2538,9810,3},{2532,9807,3}, {2530,9802,3},{2522,9793,3},{2522,9790,3},{2527,9787,3},{2527,9783,3},{2513,9778,3}, {2508,9775,3},{2508,9772,3},{2492,9773,3},{2485,9780,3},{2483,9777,3},{2483,9768,3}, {2475,9755,3},{2467,9757,3},{2457,9757,3},{2443,9753,3},{2443,9767,3},{2440,9768,3}, {2435,9772,3},{2433,9767,3},{2430,9767,3},{2428,9775,3},{2425,9777,3},{2422,9773,3}, {2417,9775,3},{2412,9772,3},{2407,9765,3},{2400,9762,3},{2397,9755,3},{2393,9753,3}, {2390,9762,3},{2385,9765,3},{2387,9767,3},{2388,9772,3},{2395,9778,3},{2395,9783,3}, {2403,9792,3},{2403,9795,3},{2408,9805,3},{2413,9822,3},{2410,9835,3},{2413,9843,3}, {2412,9855,3},{2408,9860,3},{2412,9872,3},{2413,9885,3},{2417,9888,3},{2412,9890,3}, {2410,9890,3},{2400,9875,3},{2397,9868,3},{2395,9870,3},{2392,9868,3},{2383,9870,3}, {2380,9868,3},{2377,9882,3},{2370,9882,3},{2368,9885,3},{2363,9885,3},{2362,9888,3}, {2355,9882,3},{2353,9880,3},{2348,9882,3},{2348,9888,3},{2342,9892,3},{2337,9892,3}, {2333,9888,3},{2333,9892,3},{2332,9893,3},{2318,9888,3},{2318,9893,3},{2317,9902,3}, {2317,9907,3},{2313,9905,3},{2310,9912,3},{2312,9915,3},{2310,9923,3},{2312,9927,3}, {2312,9932,3},{2313,9935,3},{2310,9940,3},{2308,9950,3},{2307,9952,3},{2302,9952,3}, {2293,9957,3},{2292,9955,3},{2292,9953,3},{2292,9948,3},{2295,9945,3},{2293,9943,3}, {2287,9943,3},{2278,9938,3},{2275,9933,3},{2260,9938,3},{2253,9937,3},{2250,9938,3}, {2243,9933,3},{2238,9927,3},{2235,9927,3},{2232,9925,3},{2227,9923,3},{2220,9918,3}, {2217,9920,3},{2217,9917,3},{2212,9923,3},{2210,9937,3},{2213,9947,3},{2210,9952,3}, {2212,9957,3},{2208,9962,3},{2210,9965,3},{2207,9968,3},{2203,9970,3},{2207,9975,3}, {2205,9982,3},{2202,9985,3},{2203,9987,3},{2207,9988,3},{2205,9997,3},{2203,9997,3}, {2197,9998,3},{2185,9995,3},{2182,9995,3},{2170,10000,3},{2168,10012,3}, {2165,10017,3},{2163,10013,3},{2158,10010,3},{2150,10012,3},{2148,10015,3}, {2145,10018,3},{2143,10022,3},{2145,10022,3},{2148,10030,3},{2153,10035,3}, {2153,10038,3},{2153,10043,3},{2145,10048,3},{2147,10052,3},{2145,10057,3}, {2145,10060,3},{2148,10067,3},{2150,10068,3},{2152,10073,3},{2158,10080,3}, {2163,10083,3},{2165,10087,3},{2168,10088,3},{2172,10102,3},{2177,10112,3}, {2170,10112,3},{2163,10117,3},{2157,10115,3},{2153,10117,3},{2148,10113,3}, {2140,10100,3},{2137,10090,3},{2130,10085,3},{2130,10078,3},{2130,10072,3}, {2118,10070,3},{2113,10067,3},{2105,10062,3},{2102,10055,3},{2098,10055,3}, {2095,10052,3},{2088,10052,3},{2087,10052,3},{2087,10055,3},{2088,10063,3}, {2087,10065,3},{2083,10058,3},{2080,10052,3},{2083,10037,3},{2078,10035,3}, {2075,10025,3},{2063,10017,3},{2040,10013,3},{2035,10008,3},{2035,10007,3}, {2038,10007,3},{2038,10002,3},{2045,9997,3},{2042,9987,3},{2033,9982,3}, {2033,9973,3},{2032,9967,3},{2035,9953,3},{2038,9945,3},{2037,9945,3},{2032,9950,3}, {2025,9952,3},{2020,9955,3},{2015,9953,3},{2015,9952,3},{2010,9947,3},{2007,9933,3}, {2010,9927,3},{2013,9918,3},{2010,9908,3},{2005,9905,3},{1997,9903,3},{1993,9903,3}, {1993,9902,3},{1985,9903,3},{1980,9900,3},{1978,9900,3},{1978,9897,3},{1975,9892,3}, {1982,9883,3},{1977,9878,3},{1973,9865,3},{1972,9862,3},{1970,9858,3},{1968,9857,3}, {1972,9852,3},{1970,9847,3},{1970,9833,3},{1967,9827,3},{1968,9825,3},{1972,9823,3}, {1973,9820,3},{1978,9813,3},{1977,9810,3},{1980,9808,3},{1980,9805,3},{1972,9803,3}, {1965,9803,3},{1963,9800,3},{1960,9797,3},{1957,9790,3},{1957,9787,3},{1953,9787,3}, {1950,9788,3},{1940,9780,3},{1930,9783,3},{1928,9778,3},{1922,9783,3},{1910,9783,3}, {1903,9775,3},{1897,9773,3},{1893,9768,3},{1887,9775,3},{1873,9777,3},{1868,9778,3}, {1857,9777,3},{1857,9767,3},{1855,9762,3},{1853,9762,3},{1848,9753,3},{1850,9745,3}, {1855,9742,3},{1855,9737,3},{1858,9737,3},{1855,9735,3},{1842,9743,3},{1833,9745,3}, {1828,9748,3},{1827,9753,3},{1832,9755,3},{1833,9758,3},{1832,9762,3},{1828,9765,3}, {1827,9765,3},{1825,9762,3},{1823,9762,3},{1815,9768,3},{1812,9768,3},{1808,9770,3}, {1805,9768,3},{1805,9772,3},{1797,9775,3},{1795,9773,3},{1793,9770,3},{1787,9768,3}, {1783,9770,3},{1775,9777,3},{1770,9778,3},{1753,9795,3},{1750,9802,3},{1747,9803,3}, {1745,9805,3},{1742,9805,3},{1738,9812,3},{1732,9812,3},{1722,9822,3},{1722,9825,3}, {1720,9825,3},{1713,9830,3},{1712,9830,3},{1710,9832,3},{1708,9832,3},{1705,9833,3}, {1705,9842,3},{1702,9847,3},{1698,9847,3},{1698,9848,3},{1697,9848,3},{1693,9852,3}, {1692,9850,3},{1688,9855,3},{1685,9855,3},{1687,9852,3},{1683,9852,3},{1680,9855,3}, {1680,9853,3},{1678,9853,3},{1678,9850,3},{1673,9848,3},{1672,9852,3},{1663,9853,3}, {1662,9858,3},{1658,9860,3},{1655,9858,3},{1645,9867,3},{1642,9865,3},{1638,9867,3}, {1628,9868,3},{1627,9872,3},{1633,9875,3},{1638,9882,3},{1645,9883,3},{1648,9887,3}, {1643,9887,3},{1638,9893,3},{1632,9892,3},{1627,9892,3},{1622,9887,3},{1613,9885,3}, {1610,9880,3},{1612,9878,3},{1613,9870,3},{1612,9868,3},{1608,9867,3},{1605,9865,3}, {1605,9857,3},{1602,9860,3},{1597,9862,3},{1593,9858,3},{1587,9862,3},{1572,9857,3}, {1567,9858,3},{1558,9857,3},{1545,9860,3},{1535,9858,3},{1533,9857,3},{1537,9855,3}, {1538,9850,3},{1537,9847,3},{1537,9843,3},{1532,9842,3},{1532,9840,3},{1530,9840,3}, {1528,9842,3},{1527,9842,3},{1528,9838,3},{1530,9832,3},{1523,9827,3},{1522,9820,3}, {1518,9822,3},{1510,9818,3},{1505,9823,3},{1500,9822,3},{1492,9825,3},{1487,9825,3}, {1485,9827,3},{1480,9827,3},{1477,9830,3},{1472,9832,3},{1460,9845,3},{1458,9847,3}, {1453,9847,3},{1453,9850,3},{1438,9857,3},{1437,9860,3},{1432,9862,3},{1428,9868,3}, {1428,9873,3},{1422,9877,3},{1415,9887,3},{1412,9890,3},{1408,9897,3},{1403,9897,3}, {1402,9900,3},{1393,9903,3},{1388,9912,3},{1383,9912,3},{1377,9913,3},{1375,9917,3}, {1372,9918,3},{1363,9917,3},{1358,9918,3},{1357,9917,3},{1347,9922,3},{1340,9922,3}, {1333,9922,3},{1332,9920,3},{1322,9922,3},{1318,9912,3},{1313,9913,3},{1305,9912,3}, {1297,9920,3},{1292,9918,3},{1283,9920,3},{1280,9923,3},{1272,9925,3},{1272,9928,3}, {1267,9930,3},{1265,9935,3},{1260,9938,3},{1260,9942,3},{1258,9943,3},{1250,9943,3}, {1247,9942,3},{1240,9945,3},{1232,9945,3},{1227,9948,3},{1222,9948,3},{1218,9950,3}, {1213,9947,3},{1213,9957,3},{1205,9955,3},{1202,9955,3},{1200,9960,3},{1197,9960,3}, {1188,9958,3},{1183,9963,3},{1183,9967,3},{1173,9963,3},{1168,9960,3},{1163,9957,3}, {1163,9948,3},{1162,9947,3},{1152,9947,3},{1147,9945,3},{1145,9940,3},{1138,9940,3}, {1132,9933,3},{1128,9932,3},{1123,9928,3},{1110,9923,3},{1108,9920,3},{1103,9917,3}, {1102,9910,3},{1097,9908,3},{1095,9907,3},{1097,9902,3},{1092,9900,3},{1088,9902,3}, {1083,9900,3},{1083,9898,3},{1082,9897,3},{1082,9893,3},{1082,9892,3},{1078,9890,3}, {1077,9887,3},{1068,9878,3},{1062,9877,3},{1058,9880,3},{1052,9882,3},{1047,9880,3}, {1042,9877,3},{1035,9875,3},{2377,6820,131},{2388,6822,3},{2390,6828,3}, {2392,6827,3},{2395,6830,3},{2392,6832,3},{2392,6833,3},{2393,6835,3},{2397,6835,3}, {2397,6837,3},{2395,6838,3},{2397,6838,3},{2397,6875,3},{2432,6875,3},{2433,6878,3}, {2433,6882,3},{2428,6885,3},{2427,6883,3},{2423,6885,3},{2425,6887,3},{2432,6890,3}, {2433,6893,3},{2425,6898,3},{2428,6905,3},{2430,6908,3},{2425,6918,3},{2428,6925,3}, {2430,6932,3},{2428,6960,3},{2417,6972,3},{2417,7003,3},{2420,7007,3},{2432,7012,3}, {2433,7025,3},{2437,7032,3},{2437,7038,3},{2442,7043,3},{2443,7058,3},{2442,7060,3}, {2437,7057,3},{2428,7058,3},{2425,7065,3},{2423,7072,3},{2423,7078,3},{2427,7088,3}, {2432,7087,3},{2437,7093,3},{2437,7097,3},{2437,7103,3},{2440,7105,3},{2442,7110,3}, {2443,7110,3},{2445,7108,3},{2445,7100,3},{2448,7100,3},{2453,7100,3},{2455,7098,3}, {2460,7098,3},{2465,7100,3},{2468,7108,3},{2475,7105,3},{2483,7102,3},{2493,7095,3}, {2515,7088,3},{2527,7075,3},{2533,7073,3},{2540,7068,3},{2568,7067,3},{2572,7062,3}, {2568,7053,3},{2567,7038,3},{2570,7028,3},{2580,7022,3},{2583,7018,3},{2590,7013,3}, {2598,7008,3},{2608,7010,3},{2625,7017,3},{2632,7017,3},{2638,7018,3},{2643,7018,3}, {2653,7018,3},{2657,7015,3},{2660,7010,3},{2658,6985,3},{2660,6980,3},{2667,6972,3}, {2675,6952,3},{2682,6948,3},{2700,6952,3},{2718,6958,3},{2728,6970,3},{2732,6975,3}, {2742,6988,3},{2750,6993,3},{2760,7003,3},{2783,7013,3},{2795,7028,3},{2802,7037,3}, {2805,7048,3},{2803,7053,3},{2800,7058,3},{2793,7067,3},{2787,7067,3},{2773,7073,3}, {2770,7083,3},{2772,7093,3},{2785,7123,3},{2787,7140,3},{2788,7163,3},{2797,7190,3}, {2812,7192,3},{2822,7200,3},{2833,7213,3},{2840,7220,3},{2868,7230,3},{2877,7238,3}, {2895,7273,3},{2903,7295,3},{2915,7298,3},{2925,7308,3},{2957,7327,3},{2995,7340,3}, {3002,7358,3},{3007,7380,3},{3020,7397,3},{3032,7393,3},{3033,7390,3},{3037,7385,3}, {3038,7387,3},{3040,7390,3},{3042,7390,3},{3042,7393,3},{3048,7393,3},{3047,7397,3}, {3050,7397,3},{3053,7400,3},{3053,7408,3},{3062,7410,3},{3068,7420,3},{3072,7423,3}, {3073,7427,3},{3077,7427,3},{3080,7430,3},{3083,7432,3},{3085,7437,3},{3090,7437,3}, {3092,7442,3},{3097,7447,3},{3098,7452,3},{3107,7455,3},{3102,7463,3},{3105,7465,3}, {3107,7468,3},{3108,7468,3},{3112,7463,3},{3112,7457,3},{3115,7453,3},{3128,7455,3}, {3140,7458,3},{3145,7463,3},{3148,7463,3},{3152,7460,3},{3160,7460,3},{3173,7452,3}, {3177,7452,3},{3177,7455,3},{3182,7453,3},{3188,7465,3},{3195,7470,3},{3195,7478,3}, {3202,7482,3},{3202,7487,3},{3203,7488,3},{3203,7497,3},{3207,7498,3},{3207,7503,3}, {3208,7502,3},{3210,7502,3},{3210,7505,3},{3207,7510,3},{3208,7513,3},{3208,7517,3}, {3210,7517,3},{3212,7518,3},{3215,7525,3},{3215,7530,3},{3217,7533,3},{3220,7533,3}, {3223,7537,3},{3228,7538,3},{3235,7532,3},{3240,7522,3},{3242,7515,3},{3247,7507,3}, {3248,7502,3},{3245,7493,3},{3248,7488,3},{3248,7485,3},{3247,7475,3},{3248,7472,3}, {3250,7468,3},{3260,7465,3},{3267,7468,3},{3273,7467,3},{3283,7472,3},{3283,7470,3}, {3282,7463,3},{3277,7463,3},{3275,7463,3},{3275,7458,3},{3277,7455,3},{3273,7452,3}, {3277,7448,3},{3278,7447,3},{3277,7442,3},{3303,7432,3},{3305,7425,3},{3317,7412,3}, {3322,7402,3},{3325,7400,3},{3327,7402,3},{3328,7410,3},{3332,7417,3},{3342,7418,3}, {3358,7413,3},{3360,7407,3},{3365,7400,3},{3368,7400,3},{3375,7402,3},{3378,7405,3}, {3382,7413,3},{3388,7423,3},{3395,7430,3},{3398,7428,3},{3405,7422,3},{3403,7402,3}, {3405,7397,3},{3407,7395,3},{3410,7393,3},{3413,7395,3},{3415,7403,3},{3418,7407,3}, {3428,7407,3},{3432,7405,3},{3433,7398,3},{3433,7387,3},{3435,7385,3},{3432,7377,3}, {3433,7375,3},{3440,7378,3},{3445,7387,3},{3455,7392,3},{3457,7395,3},{3462,7393,3}, {3465,7395,3},{3467,7397,3},{3468,7405,3},{3465,7417,3},{3470,7417,3},{3473,7420,3}, {3478,7432,3},{3478,7437,3},{3477,7455,3},{3472,7462,3},{3468,7470,3},{3470,7482,3}, {3467,7495,3},{3467,7517,3},{3462,7527,3},{3450,7540,3},{3447,7553,3},{3450,7582,3}, {3463,7610,3},{3465,7620,3},{3463,7635,3},{3470,7640,3},{3475,7650,3},{3478,7663,3}, {3475,7673,3},{3473,7682,3},{3475,7690,3},{3478,7695,3},{3487,7695,3},{3492,7695,3}, {3497,7700,3},{3500,7705,3},{3505,7707,3},{3510,7705,3},{3513,7708,3},{3515,7715,3}, {3518,7720,3},{3522,7727,3},{3523,7732,3},{3527,7737,3},{3530,7743,3},{3533,7748,3}, {3535,7753,3},{3538,7760,3},{3542,7765,3},{3543,7770,3},{3547,7777,3},{3550,7782,3}, {3547,7792,3},{3548,7795,3},{3550,7797,3},{3555,7797,3},{3557,7800,3},{3555,7813,3}, {3562,7817,3},{3567,7827,3},{3570,7830,3},{3572,7838,3},{3577,7843,3},{3577,7853,3}, {3582,7863,3},{3585,7868,3},{3592,7875,3},{3592,7883,3},{3590,7893,3},{3592,7902,3}, {3595,7912,3},{3595,7923,3},{3598,7933,3},{3597,7943,3},{3593,7945,3},{3588,7943,3}, {3585,7947,3},{3587,7957,3},{3587,7960,3},{3583,7960,3},{3582,7965,3},{3580,7967,3}, {3577,7963,3},{3565,7970,3},{3563,7982,3},{3557,7983,3},{3557,7987,3},{3562,7992,3}, {3560,7997,3},{3545,8002,3},{3542,8005,3},{3542,8008,3},{3545,8013,3},{3557,8020,3}, {3555,8025,3},{3550,8030,3},{3552,8035,3},{3552,8038,3},{3547,8038,3},{3542,8038,3}, {3535,8030,3},{3532,8028,3},{3523,8030,3},{3520,8030,3},{3510,8020,3},{3490,8020,3}, {3485,8018,3},{3477,8010,3},{3467,8007,3},{3465,8002,3},{3467,7988,3},{3457,7985,3}, {3455,7977,3},{3453,7972,3},{3450,7973,3},{3445,7977,3},{3442,7972,3},{3443,7953,3}, {3440,7953,3},{3420,7958,3},{3418,7955,3},{3418,7952,3},{3412,7952,3},{3407,7947,3}, {3403,7943,3},{3402,7942,3},{3403,7913,3},{3400,7910,3},{3402,7897,3},{3397,7890,3}, {3383,7895,3},{3375,7902,3},{3372,7902,3},{3363,7903,3},{3362,7902,3},{3363,7895,3}, {3363,7892,3},{3357,7890,3},{3353,7893,3},{3340,7893,3},{3332,7900,3},{3328,7908,3}, {3322,7910,3},{3323,7915,3},{3320,7925,3},{3318,7937,3},{3317,7940,3},{3313,7940,3}, {3310,7937,3},{3297,7935,3},{3293,7938,3},{3288,7945,3},{3280,7947,3},{3275,7953,3}, {3265,7950,3},{3260,7945,3},{3253,7935,3},{3250,7932,3},{3252,7927,3},{3250,7917,3}, {3247,7912,3},{3242,7912,3},{3238,7910,3},{3238,7903,3},{3235,7897,3},{3237,7893,3}, {3243,7887,3},{3247,7878,3},{3257,7875,3},{3260,7878,3},{3263,7877,3},{3263,7870,3}, {3260,7868,3},{3258,7865,3},{3257,7857,3},{3258,7848,3},{3257,7842,3},{3253,7840,3}, {3242,7848,3},{3238,7845,3},{3235,7848,3},{3225,7848,3},{3223,7848,3},{3222,7855,3}, {3212,7860,3},{3205,7867,3},{3198,7877,3},{3182,7872,3},{3178,7870,3},{3175,7872,3}, {3173,7872,3},{3168,7875,3},{3167,7877,3},{3168,7878,3},{3165,7880,3},{3162,7885,3}, {3152,7872,3},{3148,7872,3},{3147,7877,3},{3145,7880,3},{3135,7877,3},{3130,7877,3}, {3128,7882,3},{3130,7885,3},{3130,7887,3},{3130,7890,3},{3137,7895,3},{3133,7900,3}, {3142,7902,3},{3143,7908,3},{3142,7912,3},{3140,7917,3},{3135,7917,3},{3133,7922,3}, {3130,7922,3},{3127,7925,3},{3123,7925,3},{3122,7928,3},{3115,7930,3},{3110,7940,3}, {3103,7942,3},{3102,7950,3},{3097,7955,3},{3093,7960,3},{3097,7967,3},{3098,7972,3}, {3098,7975,3},{3097,7988,3},{3088,7992,3},{3088,7997,3},{3085,8005,3},{3078,8008,3}, {3078,8012,3},{3080,8017,3},{3080,8020,3},{3077,8022,3},{3073,8025,3},{3068,8023,3}, {3068,8018,3},{3062,8023,3},{3057,8020,3},{3057,8023,3},{3057,8032,3},{3047,8053,3}, {3047,8060,3},{3040,8075,3},{3032,8082,3},{3027,8100,3},{3022,8103,3},{3020,8102,3}, {3018,8095,3},{3018,8092,3},{3022,8092,3},{3020,8088,3},{3017,8087,3},{3013,8087,3}, {3005,8077,3},{3002,8075,3},{3002,8072,3},{2997,8068,3},{2995,8060,3},{2985,8053,3}, {2980,8048,3},{2978,8042,3},{2975,8037,3},{2967,8038,3},{2965,8042,3},{2960,8040,3}, {2955,8035,3},{2952,8035,3},{2948,8028,3},{2945,8028,3},{2945,8025,3},{2942,8023,3}, {2938,8027,3},{2932,8028,3},{2932,8030,3},{2920,8028,3},{2922,8025,3},{2920,8023,3}, {2915,8025,3},{2913,8023,3},{2912,8017,3},{2910,8015,3},{2903,8012,3},{2900,8013,3}, {2895,8007,3},{2892,8005,3},{2883,8007,3},{2882,8013,3},{2877,8018,3},{2875,8025,3}, {2872,8027,3},{2870,8032,3},{2863,8035,3},{2863,8043,3},{2857,8052,3},{2858,8052,3}, {2865,8050,3},{2868,8053,3},{2868,8058,3},{2865,8058,3},{2863,8067,3},{2858,8070,3}, {2857,8075,3},{2853,8078,3},{2850,8083,3},{2850,8090,3},{2847,8090,3},{2843,8093,3}, {2843,8102,3},{2840,8102,3},{2837,8120,3},{2825,8125,3},{2820,8132,3},{2817,8132,3}, {2815,8130,3},{2815,8132,3},{2813,8132,3},{2813,8137,3},{2817,8138,3},{2815,8143,3}, {2813,8147,3},{2808,8148,3},{2802,8160,3},{2798,8163,3},{2797,8170,3},{2792,8178,3}, {2785,8188,3},{2787,8192,3},{2790,8195,3},{2792,8200,3},{2792,8208,3},{2787,8212,3}, {2785,8217,3},{2775,8232,3},{2773,8235,3},{2768,8242,3},{2767,8245,3},{2772,8270,3}, {2768,8272,3},{2755,8275,3},{2750,8277,3},{2750,8292,3},{2747,8295,3},{2745,8303,3}, {2745,8318,3},{2738,8325,3},{2735,8327,3},{2733,8332,3},{2735,8335,3},{2740,8338,3}, {2742,8340,3},{2745,8338,3},{2748,8340,3},{2747,8360,3},{2735,8385,3},{2737,8388,3}, {2742,8383,3},{2743,8383,3},{2745,8392,3},{2745,8403,3},{2752,8410,3},{2752,8415,3}, {2750,8415,3},{2747,8420,3},{2743,8422,3},{2745,8425,3},{2740,8428,3},{2738,8432,3}, {2733,8462,3},{2730,8465,3},{2722,8468,3},{2713,8468,3},{2705,8465,3},{2700,8475,3}, {2702,8485,3},{2697,8490,3},{2695,8497,3},{2690,8497,3},{2688,8503,3},{2685,8503,3}, {2687,8512,3},{2687,8518,3},{2685,8520,3},{2680,8518,3},{2677,8522,3},{2673,8533,3}, {2677,8538,3},{2680,8542,3},{2680,8548,3},{2687,8563,3},{2680,8573,3},{2677,8573,3}, {2667,8573,3},{2660,8580,3},{2660,8583,3},{2657,8585,3},{2662,8595,3},{2665,8597,3}, {2667,8603,3},{2660,8613,3},{2660,8620,3},{2658,8620,3},{2662,8628,3},{2662,8633,3}, {2660,8633,3},{2658,8633,3},{2658,8638,3},{2657,8642,3},{2653,8653,3},{2650,8657,3}, {2648,8662,3},{2642,8673,3},{2645,8677,3},{2643,8683,3},{2647,8688,3},{2650,8690,3}, {2653,8693,3},{2653,8700,3},{2658,8707,3},{2645,8710,3},{2642,8713,3},{2640,8715,3}, {2642,8725,3},{2637,8727,3},{2635,8733,3},{2635,8735,3},{2640,8737,3},{2643,8747,3}, {2642,8753,3},{2638,8760,3},{2640,8765,3},{2643,8768,3},{2642,8777,3},{2645,8778,3}, {2647,8778,3},{2643,8785,3},{2647,8788,3},{2647,8790,3},{2645,8793,3},{2643,8792,3}, {2640,8795,3},{2637,8802,3},{2643,8810,3},{2648,8812,3},{2653,8810,3},{2660,8813,3}, {2667,8817,3},{2677,8820,3},{2687,8818,3},{2693,8813,3},{2698,8812,3},{2703,8807,3}, {2705,8803,3},{2712,8800,3},{2715,8802,3},{2723,8802,3},{2733,8807,3},{2740,8803,3}, {2743,8807,3},{2748,8805,3},{2753,8805,3},{2758,8808,3},{2760,8812,3},{2778,8818,3}, {2782,8818,3},{2785,8820,3},{2787,8815,3},{2790,8812,3},{2795,8815,3},{2798,8840,3}, {2803,8848,3},{2803,8853,3},{2807,8855,3},{2812,8863,3},{2808,8867,3},{2807,8875,3}, {2800,8883,3},{2793,8883,3},{2790,8887,3},{2787,8888,3},{2767,8883,3},{2755,8877,3}, {2752,8878,3},{2745,8878,3},{2743,8878,3},{2738,8882,3},{2738,8885,3},{2732,8892,3}, {2728,8890,3},{2725,8880,3},{2715,8875,3},{2713,8880,3},{2708,8887,3},{2695,8888,3}, {2698,8892,3},{2697,8895,3},{2693,8895,3},{2692,8898,3},{2693,8903,3},{2688,8908,3}, {2683,8910,3},{2682,8913,3},{2682,8920,3},{2682,8927,3},{2685,8930,3},{2687,8937,3}, {2680,8947,3},{2682,8953,3},{2677,8965,3},{2673,8962,3},{2672,8963,3},{2673,8968,3}, {2670,8977,3},{2670,8985,3},{2673,8985,3},{2672,8990,3},{2675,9015,3},{2678,9018,3}, {2682,9018,3},{2685,9022,3},{2685,9030,3},{2690,9035,3},{2690,9038,3},{2680,9057,3}, {2677,9070,3},{2678,9103,3},{2682,9108,3},{2680,9123,3},{2678,9128,3},{2678,9132,3}, {2680,9138,3},{2688,9142,3},{2687,9150,3},{2680,9155,3},{2682,9162,3},{2680,9167,3}, {2682,9170,3},{2680,9172,3},{2687,9185,3},{2685,9187,3},{2682,9188,3},{2680,9190,3}, {2683,9192,3},{2685,9190,3},{2687,9193,3},{2690,9192,3},{2685,9198,3},{2685,9202,3}, {2687,9208,3},{2690,9210,3},{2693,9212,3},{2702,9208,3},{2708,9202,3},{2710,9202,3}, {2717,9202,3},{2718,9205,3},{2725,9207,3},{2728,9212,3},{2737,9208,3},{2748,9200,3}, {2745,9195,3},{2745,9187,3},{2742,9178,3},{2742,9177,3},{2745,9177,3},{2748,9167,3}, {2755,9162,3},{2765,9160,3},{2767,9160,3},{2772,9165,3},{2777,9165,3},{2777,9183,3}, {2773,9188,3},{2773,9197,3},{2773,9202,3},{2777,9207,3},{2778,9208,3},{2782,9213,3}, {2782,9225,3},{2787,9225,3},{2787,9227,3},{2780,9230,3},{2780,9233,3},{2785,9235,3}, {2780,9238,3},{2782,9240,3},{2787,9242,3},{2785,9243,3},{2783,9245,3},{2787,9255,3}, {2790,9258,3},{2792,9263,3},{2797,9272,3},{2805,9273,3},{2807,9267,3},{2813,9268,3}, {2820,9280,3},{2818,9282,3},{2820,9288,3},{2825,9293,3},{2827,9298,3},{2837,9308,3}, {2838,9313,3},{2863,9323,3},{2863,9328,3},{2867,9332,3},{2868,9357,3},{2868,9365,3}, {2872,9370,3},{2870,9373,3},{2875,9380,3},{2877,9385,3},{2878,9390,3},{2880,9390,3}, {2880,9393,3},{2883,9393,3},{2883,9400,3},{2887,9405,3},{2888,9405,3},{2897,9403,3}, {2898,9413,3},{2908,9422,3},{2915,9428,3},{2915,9435,3},{2920,9440,3},{2922,9442,3}, {2922,9455,3},{2927,9457,3},{2933,9463,3},{2932,9470,3},{2927,9475,3},{2922,9480,3}, {2917,9480,3},{2918,9487,3},{2915,9495,3},{2912,9502,3},{2913,9502,3},{2917,9498,3}, {2915,9502,3},{2915,9508,3},{2912,9512,3},{2910,9522,3},{2907,9525,3},{2903,9538,3}, {2905,9547,3},{2913,9550,3},{2913,9555,3},{2922,9553,3},{2922,9558,3},{2925,9558,3}, {2925,9563,3},{2930,9568,3},{2930,9572,3},{2935,9577,3},{2937,9583,3},{2940,9588,3}, {2940,9595,3},{2947,9608,3},{2935,9618,3},{2932,9618,3},{2925,9623,3},{2923,9628,3}, {2925,9632,3},{2928,9637,3},{2925,9640,3},{2918,9635,3},{2917,9625,3},{2915,9622,3}, {2910,9618,3},{2908,9612,3},{2907,9615,3},{2900,9618,3},{2895,9615,3},{2890,9617,3}, {2890,9620,3},{2893,9625,3},{2903,9635,3},{2905,9643,3},{2907,9650,3},{2897,9648,3}, {2897,9652,3},{2890,9653,3},{2878,9662,3},{2873,9660,3},{2868,9647,3},{2863,9648,3}, {2858,9643,3},{2858,9640,3},{2857,9640,3},{2855,9633,3},{2853,9633,3},{2848,9637,3}, {2842,9627,3},{2842,9628,3},{2838,9632,3},{2840,9637,3},{2835,9640,3},{2842,9645,3}, {2843,9653,3},{2847,9660,3},{2847,9665,3},{2843,9673,3},{2837,9678,3},{2837,9692,3}, {2835,9693,3},{2833,9698,3},{2833,9702,3},{2838,9708,3},{2838,9713,3},{2832,9720,3}, {2832,9723,3},{2828,9725,3},{2823,9730,3},{2822,9735,3},{2820,9737,3},{2817,9733,3}, {2808,9732,3},{2802,9740,3},{2795,9737,3},{2790,9737,3},{2788,9732,3},{2790,9732,3}, {2792,9728,3},{2790,9723,3},{2780,9712,3},{2778,9708,3},{2775,9708,3},{2773,9702,3}, {2767,9697,3},{2767,9693,3},{2762,9688,3},{2758,9688,3},{2750,9692,3},{2747,9690,3}, {2745,9690,3},{2722,9710,3},{2718,9713,3},{2717,9713,3},{2713,9717,3},{2708,9713,3}, {2710,9710,3},{2710,9707,3},{2713,9702,3},{2718,9688,3},{2722,9687,3},{2725,9688,3}, {2727,9685,3},{2732,9682,3},{2735,9678,3},{2737,9672,3},{2733,9667,3},{2735,9665,3}, {2737,9662,3},{2732,9657,3},{2730,9652,3},{2730,9643,3},{2728,9630,3},{2727,9620,3}, {2723,9610,3},{2717,9602,3},{2708,9597,3},{2703,9590,3},{2700,9580,3},{2697,9575,3}, {2688,9572,3},{2688,9565,3},{2682,9562,3},{2682,9552,3},{2672,9543,3},{2665,9527,3}, {2665,9525,3},{2668,9525,3},{2668,9523,3},{2663,9520,3},{2662,9513,3},{2657,9515,3}, {2648,9507,3},{2642,9510,3},{2633,9507,3},{2622,9508,3},{2620,9512,3},{2618,9510,3}, {2612,9512,3},{2608,9517,3},{2605,9518,3},{2597,9508,3},{2593,9502,3},{2575,9503,3}, {2573,9500,3},{2558,9488,3},{2557,9488,3},{2557,9485,3},{2550,9478,3},{2550,9473,3}, {2547,9470,3},{2540,9463,3},{2533,9462,3},{2528,9458,3},{2522,9458,3},{2518,9460,3}, {2513,9473,3},{2502,9473,3},{2498,9470,3},{2493,9470,3},{2487,9467,3},{2482,9462,3}, {2477,9462,3},{2472,9460,3},{2472,9458,3},{2472,9453,3},{2462,9452,3},{2457,9445,3}, {2450,9442,3},{2448,9438,3},{2442,9438,3},{2440,9435,3},{2437,9437,3},{2433,9432,3}, {2428,9432,3},{2415,9425,3},{2400,9422,3},{2393,9417,3},{2387,9415,3},{2385,9413,3}, {2385,9412,3},{2388,9410,3},{2390,9405,3},{2392,9403,3},{2395,9393,3},{2393,9382,3}, {2400,9375,3},{2402,9363,3},{2400,9362,3},{2397,9360,3},{2398,9357,3},{2397,9353,3}, {2397,9348,3},{2408,9340,3},{2408,9337,3},{2407,9333,3},{2398,9333,3},{2392,9338,3}, {2387,9338,3},{2373,9340,3},{2368,9343,3},{2365,9342,3},{2360,9342,3},{2350,9340,3}, {2338,9340,3},{2335,9337,3},{2323,9338,3},{2317,9337,3},{2313,9338,3},{2312,9335,3}, {2307,9335,3},{2302,9330,3},{2302,9323,3},{2307,9320,3},{2305,9313,3},{2302,9313,3}, {2292,9317,3},{2292,9315,3},{2288,9313,3},{2288,9312,3},{2278,9310,3},{2267,9310,3}, {2260,9313,3},{2253,9312,3},{2247,9313,3},{2243,9318,3},{2225,9320,3},{2223,9315,3}, {2220,9317,3},{2218,9315,3},{2222,9308,3},{2220,9305,3},{2212,9305,3},{2210,9302,3}, {2207,9298,3},{2200,9300,3},{2203,9295,3},{2202,9293,3},{2200,9292,3},{2195,9290,3}, {2198,9288,3},{2205,9287,3},{2217,9272,3},{2215,9270,3},{2210,9270,3},{2210,9268,3}, {2203,9268,3},{2202,9265,3},{2198,9260,3},{2213,9257,3},{2213,9260,3},{2217,9260,3}, {2220,9258,3},{2252,9255,3},{2255,9253,3},{2260,9253,3},{2272,9252,3},{2277,9247,3}, {2283,9245,3},{2285,9247,3},{2288,9245,3},{2293,9238,3},{2305,9238,3},{2310,9237,3}, {2322,9235,3},{2328,9238,3},{2337,9237,3},{2343,9232,3},{2355,9230,3},{2360,9228,3}, {2363,9228,3},{2370,9228,3},{2372,9227,3},{2372,9225,3},{2365,9222,3},{2365,9220,3}, {2372,9220,3},{2373,9217,3},{2373,9213,3},{2365,9207,3},{2365,9203,3},{2373,9197,3}, {2373,9195,3},{2367,9193,3},{2358,9197,3},{2350,9197,3},{2345,9193,3},{2343,9188,3}, {2342,9185,3},{2327,9177,3},{2308,9182,3},{2307,9178,3},{2303,9178,3},{2300,9172,3}, {2298,9165,3},{2295,9162,3},{2297,9160,3},{2298,9157,3},{2300,9155,3},{2305,9155,3}, {2307,9152,3},{2308,9153,3},{2318,9150,3},{2320,9147,3},{2322,9147,3},{2322,9145,3}, {2323,9145,3},{2327,9143,3},{2327,9140,3},{2320,9138,3},{2308,9140,3},{2307,9138,3}, {2308,9135,3},{2313,9133,3},{2332,9130,3},{2333,9128,3},{2337,9132,3},{2337,9128,3}, {2348,9125,3},{2352,9120,3},{2355,9120,3},{2363,9117,3},{2367,9117,3},{2365,9118,3}, {2368,9120,3},{2370,9117,3},{2373,9117,3},{2377,9122,3},{2385,9125,3},{2390,9123,3}, {2397,9127,3},{2400,9132,3},{2398,9135,3},{2400,9137,3},{2405,9138,3},{2410,9137,3}, {2412,9142,3},{2408,9153,3},{2410,9162,3},{2412,9163,3},{2415,9163,3},{2422,9165,3}, {2415,9170,3},{2415,9175,3},{2423,9175,3},{2423,9183,3},{2418,9183,3},{2415,9190,3}, {2427,9193,3},{2433,9192,3},{2435,9195,3},{2432,9198,3},{2433,9200,3},{2437,9197,3}, {2438,9197,3},{2437,9208,3},{2440,9212,3},{2443,9213,3},{2452,9213,3},{2457,9218,3}, {2463,9220,3},{2475,9225,3},{2482,9227,3},{2488,9225,3},{2490,9225,3},{2490,9230,3}, {2485,9238,3},{2487,9248,3},{2488,9250,3},{2493,9248,3},{2495,9245,3},{2497,9245,3}, {2497,9242,3},{2503,9240,3},{2505,9235,3},{2508,9233,3},{2510,9223,3},{2513,9220,3}, {2515,9215,3},{2517,9212,3},{2518,9203,3},{2517,9198,3},{2518,9193,3},{2517,9175,3}, {2515,9175,3},{2517,9172,3},{2513,9170,3},{2513,9165,3},{2513,9160,3},{2517,9158,3}, {2515,9155,3},{2513,9148,3},{2517,9140,3},{2517,9133,3},{2520,9125,3},{2520,9123,3}, {2520,9108,3},{2517,9097,3},{2515,9087,3},{2515,9082,3},{2518,9077,3},{2517,9075,3}, {2517,9068,3},{2518,9065,3},{2517,9052,3},{2515,9043,3},{2515,9038,3},{2520,9028,3}, {2522,9012,3},{2528,8997,3},{2532,8992,3},{2528,8988,3},{2528,8985,3},{2537,8982,3}, {2552,8985,3},{2563,8987,3},{2573,8982,3},{2577,8983,3},{2582,8980,3},{2593,8987,3}, {2595,8982,3},{2598,8985,3},{2600,8983,3},{2598,8982,3},{2605,8978,3},{2608,8978,3}, {2615,8973,3},{2617,8968,3},{2620,8968,3},{2623,8968,3},{2622,8963,3},{2618,8963,3}, {2617,8965,3},{2618,8962,3},{2615,8958,3},{2613,8960,3},{2613,8963,3},{2610,8960,3}, {2610,8958,3},{2608,8963,3},{2607,8963,3},{2603,8958,3},{2600,8958,3},{2597,8957,3}, {2597,8955,3},{2600,8952,3},{2600,8943,3},{2603,8940,3},{2600,8937,3},{2602,8932,3}, {2607,8928,3},{2607,8925,3},{2610,8925,3},{2612,8923,3},{2613,8915,3},{2627,8912,3}, {2632,8908,3},{2633,8910,3},{2632,8912,3},{2633,8913,3},{2635,8907,3},{2638,8907,3}, {2640,8903,3},{2645,8897,3},{2642,8892,3},{2637,8892,3},{2635,8895,3},{2633,8897,3}, {2633,8900,3},{2630,8900,3},{2630,8903,3},{2627,8903,3},{2627,8905,3},{2627,8907,3}, {2623,8905,3},{2623,8900,3},{2623,8895,3},{2628,8893,3},{2628,8890,3},{2627,8887,3}, {2623,8887,3},{2623,8885,3},{2623,8883,3},{2628,8880,3},{2630,8877,3},{2627,8868,3}, {2628,8867,3},{2628,8870,3},{2630,8872,3},{2632,8873,3},{2635,8873,3},{2637,8870,3}, {2638,8870,3},{2640,8867,3},{2642,8868,3},{2642,8865,3},{2647,8862,3},{2647,8857,3}, {2653,8848,3},{2655,8843,3},{2663,8842,3},{2658,8837,3},{2647,8833,3},{2645,8837,3}, {2648,8838,3},{2647,8848,3},{2637,8853,3},{2637,8845,3},{2633,8843,3},{2632,8840,3}, {2628,8835,3},{2622,8835,3},{2618,8825,3},{2615,8818,3},{2612,8818,3},{2610,8815,3}, {2607,8818,3},{2603,8818,3},{2602,8815,3},{2593,8812,3},{2592,8810,3},{2583,8812,3}, {2580,8813,3},{2578,8815,3},{2580,8822,3},{2582,8825,3},{2580,8828,3},{2573,8835,3}, {2567,8845,3},{2560,8845,3},{2557,8850,3},{2553,8852,3},{2553,8855,3},{2552,8855,3}, {2550,8862,3},{2547,8870,3},{2550,8872,3},{2552,8880,3},{2547,8883,3},{2543,8883,3}, {2540,8882,3},{2537,8885,3},{2533,8888,3},{2533,8890,3},{2532,8892,3},{2532,8900,3}, {2528,8902,3},{2523,8895,3},{2520,8897,3},{2520,8893,3},{2518,8893,3},{2517,8895,3}, {2517,8893,3},{2518,8888,3},{2520,8883,3},{2517,8880,3},{2517,8875,3},{2518,8873,3}, {2520,8862,3},{2517,8858,3},{2518,8853,3},{2520,8850,3},{2518,8845,3},{2507,8847,3}, {2500,8842,3},{2493,8840,3},{2487,8835,3},{2488,8827,3},{2492,8825,3},{2495,8822,3}, {2492,8813,3},{2485,8817,3},{2482,8813,3},{2482,8812,3},{2477,8810,3},{2477,8808,3}, {2472,8807,3},{2468,8805,3},{2460,8810,3},{2452,8812,3},{2450,8813,3},{2443,8832,3}, {2432,8850,3},{2432,8858,3},{2430,8865,3},{2432,8868,3},{2425,8873,3},{2420,8875,3}, {2417,8872,3},{2408,8870,3},{2407,8873,3},{2403,8873,3},{2403,8875,3},{2400,8872,3}, {2398,8875,3},{2392,8873,3},{2390,8870,3},{2387,8867,3},{2387,8862,3},{2387,8860,3}, {2382,8860,3},{2377,8858,3},{2375,8858,3},{2365,8857,3},{2363,8858,3},{2360,8858,3}, {2358,8863,3},{2355,8865,3},{2352,8870,3},{2350,8873,3},{2347,8875,3},{2350,8878,3}, {2350,8880,3},{2347,8878,3},{2340,8875,3},{2337,8875,3},{2332,8872,3},{2325,8872,3}, {2322,8880,3},{2325,8883,3},{2322,8893,3},{2320,8898,3},{2318,8898,3},{2317,8895,3}, {2312,8892,3},{2310,8887,3},{2297,8887,3},{2293,8890,3},{2287,8893,3},{2285,8897,3}, {2278,8897,3},{2275,8893,3},{2268,8895,3},{2263,8895,3},{2258,8897,3},{2255,8895,3}, {2255,8893,3},{2252,8897,3},{2247,8900,3},{2242,8900,3},{2240,8898,3},{2232,8900,3}, {2230,8902,3},{2228,8900,3},{2227,8902,3},{2218,8907,3},{2215,8908,3},{2215,8910,3}, {2208,8905,3},{2198,8908,3},{2193,8907,3},{2192,8903,3},{2193,8902,3},{2190,8902,3}, {2190,8900,3},{2193,8895,3},{2198,8893,3},{2198,8892,3},{2195,8890,3},{2192,8893,3}, {2187,8902,3},{2178,8902,3},{2167,8908,3},{2162,8908,3},{2160,8905,3},{2163,8903,3}, {2160,8900,3},{2163,8893,3},{2165,8890,3},{2170,8887,3},{2177,8887,3},{2168,8883,3}, {2163,8885,3},{2162,8882,3},{2163,8880,3},{2165,8882,3},{2168,8880,3},{2167,8880,3}, {2165,8878,3},{2162,8877,3},{2158,8880,3},{2157,8878,3},{2155,8873,3},{2157,8872,3}, {2162,8872,3},{2170,8868,3},{2185,8870,3},{2188,8872,3},{2195,8872,3},{2200,8877,3}, {2203,8875,3},{2207,8872,3},{2213,8877,3},{2212,8873,3},{2208,8868,3},{2202,8873,3}, {2193,8868,3},{2193,8863,3},{2197,8862,3},{2202,8867,3},{2210,8863,3},{2215,8865,3}, {2217,8868,3},{2220,8868,3},{2220,8867,3},{2210,8862,3},{2203,8863,3},{2198,8860,3}, {2193,8860,3},{2182,8855,3},{2177,8857,3},{2178,8862,3},{2175,8863,3},{2170,8862,3}, {2170,8858,3},{2162,8860,3},{2162,8857,3},{2157,8857,3},{2155,8855,3},{2157,8853,3}, {2155,8853,3},{2153,8855,3},{2152,8850,3},{2155,8848,3},{2158,8850,3},{2160,8852,3}, {2167,8853,3},{2175,8850,3},{2178,8853,3},{2182,8853,3},{2187,8850,3},{2192,8852,3}, {2195,8850,3},{2192,8850,3},{2188,8847,3},{2185,8848,3},{2180,8850,3},{2180,8847,3}, {2173,8845,3},{2167,8847,3},{2162,8845,3},{2158,8838,3},{2163,8838,3},{2170,8838,3}, {2168,8835,3},{2172,8833,3},{2170,8832,3},{2167,8835,3},{2162,8835,3},{2160,8832,3}, {2177,8830,3},{2180,8827,3},{2178,8825,3},{2167,8830,3},{2160,8828,3},{2157,8830,3}, {2155,8825,3},{2162,8822,3},{2160,8820,3},{2162,8820,3},{2167,8818,3},{2168,8818,3}, {2172,8820,3},{2180,8820,3},{2187,8815,3},{2192,8817,3},{2195,8815,3},{2198,8815,3}, {2207,8822,3},{2215,8820,3},{2218,8817,3},{2222,8808,3},{2223,8808,3},{2222,8803,3}, {2223,8800,3},{2230,8797,3},{2242,8793,3},{2242,8790,3},{2240,8792,3},{2227,8795,3}, {2222,8798,3},{2220,8802,3},{2217,8815,3},{2212,8817,3},{2208,8817,3},{2202,8808,3}, {2202,8805,3},{2197,8803,3},{2185,8798,3},{2180,8790,3},{2177,8788,3},{2170,8780,3}, {2165,8767,3},{2165,8763,3},{2160,8745,3},{2157,8737,3},{2155,8722,3},{2148,8707,3}, {2138,8697,3},{2127,8688,3},{2120,8683,3},{2115,8683,3},{2098,8688,3},{2095,8690,3}, {2080,8697,3},{2078,8697,3},{2078,8690,3},{2077,8688,3},{2075,8693,3},{2075,8698,3}, {2070,8700,3},{2072,8695,3},{2070,8693,3},{2068,8698,3},{2067,8700,3},{2067,8703,3}, {2070,8705,3},{2048,8675,3},{2045,8673,3},{2038,8672,3},{2037,8672,3},{2040,8677,3}, {2038,8678,3},{2043,8680,3},{2038,8680,3},{2032,8675,3},{2030,8670,3},{2028,8670,3}, {2032,8675,3},{2028,8670,3},{2018,8648,3},{2010,8647,3},{2010,8648,3},{2002,8640,3}, {2000,8640,3},{2000,8642,3},{1998,8642,3},{1998,8637,3},{2007,8628,3},{2005,8623,3}, {2008,8618,3},{2013,8615,3},{2008,8615,3},{2007,8617,3},{2002,8623,3},{2002,8630,3}, {1998,8632,3},{1997,8638,3},{1995,8632,3},{1990,8627,3},{1985,8610,3},{1985,8605,3}, {1983,8602,3},{1977,8573,3},{1972,8562,3},{1972,8563,3},{1973,8562,3},{1968,8553,3}, {1967,8545,3},{1968,8545,3},{1968,8542,3},{1970,8542,3},{1973,8552,3},{1972,8552,3}, {1973,8557,3},{1975,8555,3},{1980,8557,3},{1983,8558,3},{1988,8557,3},{1990,8547,3}, {1983,8535,3},{1978,8532,3},{1977,8525,3},{1972,8520,3},{1968,8520,3},{1960,8513,3}, {1955,8515,3},{1955,8513,3},{1953,8510,3},{1952,8510,3},{1952,8512,3},{1947,8513,3}, {1950,8517,3},{1950,8520,3},{1953,8520,3},{1955,8518,3},{1955,8523,3},{1958,8520,3}, {1958,8522,3},{1960,8525,3},{1963,8523,3},{1965,8525,3},{1963,8530,3},{1967,8535,3}, {1967,8538,3},{1968,8538,3},{1967,8540,3},{1965,8540,3},{1963,8538,3},{1962,8538,3}, {1958,8533,3},{1962,8532,3},{1960,8532,3},{1960,8528,3},{1957,8532,3},{1968,8558,3}, {1958,8533,3},{1947,8517,3},{1942,8510,3},{1937,8507,3},{1933,8502,3},{1922,8487,3}, {1915,8482,3},{1912,8478,3},{1912,8477,3},{1913,8477,3},{1915,8473,3},{1910,8472,3}, {1907,8473,3},{1910,8475,3},{1910,8478,3},{1898,8470,3},{1888,8462,3},{1877,8453,3}, {1868,8445,3},{1865,8443,3},{1853,8428,3},{1852,8427,3},{1852,8425,3},{1850,8423,3}, {1850,8428,3},{1855,8435,3},{1837,8413,3},{1830,8412,3},{1823,8402,3},{1822,8393,3}, {1820,8393,3},{1820,8390,3},{1815,8378,3},{1802,8358,3},{1793,8352,3},{1790,8347,3}, {1792,8345,3},{1788,8345,3},{1772,8335,3},{1768,8330,3},{1772,8328,3},{1772,8323,3}, {1770,8325,3},{1767,8330,3},{1763,8325,3},{1763,8322,3},{1760,8323,3},{1755,8317,3}, {1750,8302,3},{1745,8298,3},{1742,8290,3},{1742,8288,3},{1740,8285,3},{1737,8277,3}, {1725,8253,3},{1720,8248,3},{1705,8232,3},{1693,8227,3},{1692,8225,3},{1688,8225,3}, {1687,8228,3},{1685,8235,3},{1682,8237,3},{1685,8237,3},{1693,8237,3},{1695,8235,3}, {1687,8237,3},{1680,8237,3},{1662,8232,3},{1660,8230,3},{1662,8228,3},{1657,8230,3}, {1645,8207,3},{1645,8203,3},{1642,8200,3},{1640,8195,3},{1638,8193,3},{1637,8183,3}, {1630,8170,3},{1633,8165,3},{1635,8157,3},{1637,8157,3},{1637,8153,3},{1635,8155,3}, {1635,8147,3},{1633,8142,3},{1637,8143,3},{1638,8142,3},{1637,8138,3},{1637,8135,3}, {1637,8132,3},{1632,8125,3},{1628,8127,3},{1618,8120,3},{1605,8115,3},{1597,8115,3}, {1597,8113,3},{1585,8100,3},{1578,8102,3},{1585,8090,3},{1593,8092,3},{1603,8090,3}, {1602,8088,3},{1600,8088,3},{1602,8088,3},{1592,8090,3},{1583,8085,3},{1572,8082,3}, {1573,8080,3},{1583,8080,3},{1588,8078,3},{1590,8067,3},{1588,8065,3},{1588,8068,3}, {1588,8060,3},{1587,8057,3},{1588,8055,3},{1585,8052,3},{1577,8037,3},{1570,8028,3}, {1550,8020,3},{1548,8020,3},{1540,8013,3},{1532,8008,3},{1522,8008,3},{1518,8007,3}, {1508,8005,3},{1483,8008,3},{1478,8010,3},{1470,8010,3},{1467,8015,3},{1460,8018,3}, {1458,8018,3},{1457,8015,3},{1457,8020,3},{1448,8018,3},{1435,8018,3},{1427,8015,3}, {1425,8008,3},{1420,8003,3},{1420,8008,3},{1423,8013,3},{1415,8013,3},{1402,8015,3}, {1382,8025,3},{1377,8025,3},{1373,8023,3},{1368,8023,3},{1345,8032,3},{1343,8032,3}, {1345,8030,3},{1352,8028,3},{1362,8022,3},{1365,8018,3},{1367,8018,3},{1373,8015,3}, {1365,8015,3},{1362,8013,3},{1362,8012,3},{1367,8012,3},{1368,8010,3},{1365,8008,3}, {1365,8007,3},{1362,8007,3},{1362,8005,3},{1350,8012,3},{1348,8017,3},{1348,8023,3}, {1347,8027,3},{1343,8027,3},{1342,8032,3},{1338,8033,3},{1345,8033,3},{1333,8035,3}, {1325,8033,3},{1325,8032,3},{1322,8032,3},{1322,8033,3},{1320,8033,3},{1313,8030,3}, {1310,8032,3},{1307,8028,3},{1295,8027,3},{1278,8027,3},{1248,8017,3},{1235,8010,3}, {1232,8005,3},{1228,8003,3},{1223,7998,3},{1222,7995,3},{1220,7995,3},{1223,8000,3}, {1203,7987,3},{1197,7985,3},{1183,7980,3},{1180,7980,3},{1177,7978,3},{1155,7975,3}, {1143,7978,3},{1143,7980,3},{1145,7978,3},{1143,7982,3},{1137,7982,3},{1138,7977,3}, {1130,7967,3},{1130,7970,3},{1135,7975,3},{1137,7977,3},{1135,7983,3},{1123,7983,3}, {1117,7985,3},{1082,7983,3},{1038,7987,3},{1028,7985,3},{1027,7978,3},{1028,7978,3}, {1032,7973,3},{1030,7970,3},{1032,7963,3},{1030,7962,3},{1030,7968,3},{1028,7972,3}, {1030,7975,3},{1027,7977,3},{1027,7973,3},{1030,7955,3},{1032,7955,3},{1032,7960,3}, {1033,7960,3},{1033,7957,3},{1033,7953,3},{1032,7953,3},{1032,7952,3},{1032,7940,3}, {1028,7937,3},{1028,7932,3},{1022,7927,3},{1018,7927,3},{1018,7923,3},{1008,7923,3}, {1003,7928,3},{1002,7925,3},{992,7917,3},{983,7912,3},{973,7903,3},{967,7898,3}, {963,7897,3},{960,7895,3},{950,7893,3},{948,7890,3},{940,7895,3},{932,7903,3}, {928,7910,3},{928,7922,3},{928,7927,3},{932,7930,3},{932,7935,3},{925,7933,3}, {918,7943,3},{915,7945,3},{917,7940,3},{923,7933,3},{925,7928,3},{925,7923,3}, {927,7917,3},{925,7912,3},{927,7897,3},{925,7892,3},{925,7888,3},{923,7882,3}, {918,7873,3},{918,7867,3},{915,7865,3},{910,7842,3},{897,7823,3},{890,7820,3}, {887,7817,3},{877,7817,3},{877,7820,3},{878,7820,3},{877,7822,3},{875,7820,3}, {873,7817,3},{865,7813,3},{865,7812,3},{862,7813,3},{848,7813,3},{840,7807,3}, {837,7807,3},{833,7798,3},{825,7785,3},{822,7780,3},{818,7778,3},{813,7758,3}, {812,7757,3},{808,7757,3},{807,7753,3},{812,7730,3},{815,7728,3},{818,7723,3}, {840,7697,3},{880,7667,3},{890,7655,3},{892,7653,3},{893,7655,3},{890,7658,3}, {892,7662,3},{892,7657,3},{897,7660,3},{897,7667,3},{898,7663,3},{900,7667,3}, {900,7665,3},{900,7658,3},{895,7657,3},{900,7657,3},{893,7653,3},{900,7652,3}, {912,7645,3},{913,7647,3},{912,7648,3},{917,7648,3},{917,7647,3},{915,7647,3}, {925,7643,3},{925,7642,3},{915,7645,3},{928,7638,3},{948,7632,3},{968,7628,3}, {975,7628,3},{995,7623,3},{997,7625,3},{992,7630,3},{992,7627,3},{988,7627,3}, {987,7627,3},{988,7628,3},{987,7628,3},{983,7628,3},{987,7630,3},{987,7632,3}, {970,7633,3},{973,7635,3},{982,7633,3},{985,7632,3},{987,7633,3},{982,7637,3}, {970,7637,3},{967,7642,3},{968,7642,3},{970,7640,3},{970,7638,3},{973,7640,3}, {978,7638,3},{982,7640,3},{992,7637,3},{997,7632,3},{995,7630,3},{997,7628,3}, {998,7627,3},{1003,7627,3},{1007,7625,3},{1008,7625,3},{1012,7623,3},{1010,7623,3}, {1012,7622,3},{1013,7622,3},{1012,7620,3},{1007,7623,3},{998,7623,3},{1008,7618,3}, {1017,7618,3},{1020,7623,3},{1023,7623,3},{1023,7622,3},{1027,7620,3},{1020,7620,3}, {1018,7617,3},{1037,7612,3},{1042,7608,3},{1050,7605,3},{1055,7602,3},{1075,7592,3}, {1077,7592,3},{1080,7593,3},{1080,7590,3},{1093,7588,3},{1108,7583,3},{1133,7573,3}, {1137,7573,3},{1137,7572,3},{1145,7568,3},{1147,7562,3},{1170,7553,3},{1185,7538,3}, {1185,7535,3},{1190,7532,3},{1192,7532,3},{1193,7530,3},{1192,7540,3},{1193,7538,3}, {1197,7540,3},{1195,7535,3},{1195,7532,3},{1198,7528,3},{1200,7527,3},{1200,7533,3}, {1202,7532,3},{1203,7530,3},{1202,7527,3},{1198,7527,3},{1197,7528,3},{1200,7523,3}, {1202,7522,3},{1200,7520,3},{1210,7518,3},{1220,7513,3},{1225,7513,3},{1222,7510,3}, {1233,7507,3},{1252,7497,3},{1275,7485,3},{1278,7485,3},{1283,7482,3},{1282,7487,3}, {1285,7488,3},{1287,7493,3},{1287,7492,3},{1285,7485,3},{1287,7482,3},{1302,7477,3}, {1308,7478,3},{1310,7477,3},{1322,7473,3},{1335,7472,3},{1338,7468,3},{1347,7468,3}, {1342,7468,3},{1342,7470,3},{1342,7472,3},{1343,7470,3},{1347,7472,3},{1347,7470,3}, {1352,7468,3},{1363,7467,3},{1362,7467,3},{1365,7468,3},{1363,7470,3},{1365,7473,3}, {1365,7470,3},{1368,7468,3},{1370,7470,3},{1370,7468,3},{1367,7465,3},{1368,7463,3}, {1383,7462,3},{1393,7457,3},{1398,7452,3},{1402,7450,3},{1405,7450,3},{1418,7447,3}, {1425,7443,3},{1425,7452,3},{1430,7442,3},{1442,7440,3},{1442,7438,3},{1452,7435,3}, {1453,7437,3},{1448,7438,3},{1447,7438,3},{1445,7440,3},{1447,7440,3},{1448,7442,3}, {1450,7440,3},{1452,7438,3},{1453,7437,3},{1453,7438,3},{1455,7435,3},{1457,7435,3}, {1455,7433,3},{1452,7433,3},{1452,7430,3},{1458,7428,3},{1460,7433,3},{1462,7432,3}, {1460,7428,3},{1462,7427,3},{1468,7427,3},{1472,7425,3},{1473,7422,3},{1472,7420,3}, {1475,7417,3},{1475,7415,3},{1477,7413,3},{1480,7408,3},{1480,7412,3},{1483,7412,3}, {1483,7415,3},{1483,7417,3},{1487,7418,3},{1487,7423,3},{1488,7420,3},{1490,7422,3}, {1485,7413,3},{1485,7412,3},{1490,7408,3},{1492,7403,3},{1497,7403,3},{1500,7402,3}, {1502,7400,3},{1507,7395,3},{1508,7392,3},{1512,7392,3},{1515,7397,3},{1515,7395,3}, {1527,7390,3},{1530,7390,3},{1537,7388,3},{1537,7382,3},{1540,7378,3},{1540,7392,3}, {1537,7397,3},{1540,7395,3},{1542,7392,3},{1545,7378,3},{1550,7382,3},{1550,7387,3}, {1553,7387,3},{1550,7380,3},{1550,7377,3},{1560,7373,3},{1565,7378,3},{1565,7383,3}, {1565,7378,3},{1562,7372,3},{1570,7368,3},{1572,7370,3},{1572,7367,3},{1573,7365,3}, {1578,7365,3},{1588,7360,3},{1598,7348,3},{1600,7348,3},{1602,7352,3},{1602,7348,3}, {1607,7345,3},{1608,7347,3},{1615,7347,3},{1618,7348,3},{1617,7345,3},{1612,7345,3}, {1618,7343,3},{1622,7343,3},{1622,7342,3},{1635,7338,3},{1637,7335,3},{1640,7338,3}, {1642,7335,3},{1652,7330,3},{1655,7330,3},{1655,7332,3},{1652,7333,3},{1652,7338,3}, {1653,7335,3},{1655,7337,3},{1657,7333,3},{1660,7332,3},{1660,7333,3},{1662,7335,3}, {1660,7338,3},{1663,7337,3},{1662,7332,3},{1665,7332,3},{1668,7333,3},{1672,7330,3}, {1675,7328,3},{1680,7332,3},{1682,7328,3},{1687,7327,3},{1690,7328,3},{1690,7327,3}, {1698,7328,3},{1700,7325,3},{1703,7325,3},{1703,7327,3},{1708,7327,3},{1717,7325,3}, {1720,7323,3},{1722,7323,3},{1730,7318,3},{1728,7325,3},{1737,7320,3},{1738,7317,3}, {1740,7317,3},{1743,7318,3},{1747,7318,3},{1753,7313,3},{1757,7313,3},{1757,7317,3}, {1758,7320,3},{1760,7313,3},{1763,7312,3},{1765,7312,3},{1768,7310,3},{1772,7312,3}, {1777,7312,3},{1790,7305,3},{1792,7305,3},{1795,7302,3},{1797,7302,3},{1798,7303,3}, {1798,7302,3},{1802,7300,3},{1805,7303,3},{1805,7305,3},{1803,7300,3},{1807,7298,3}, {1808,7298,3},{1812,7297,3},{1818,7297,3},{1822,7295,3},{1823,7292,3},{1828,7293,3}, {1827,7297,3},{1823,7297,3},{1825,7300,3},{1822,7305,3},{1818,7305,3},{1818,7307,3}, {1822,7308,3},{1827,7307,3},{1828,7305,3},{1827,7303,3},{1828,7298,3},{1830,7297,3}, {1833,7297,3},{1833,7295,3},{1835,7292,3},{1838,7292,3},{1842,7290,3},{1847,7288,3}, {1852,7290,3},{1853,7293,3},{1852,7297,3},{1847,7298,3},{1845,7300,3},{1847,7302,3}, {1848,7300,3},{1855,7297,3},{1855,7292,3},{1863,7288,3},{1867,7285,3},{1880,7285,3}, {1880,7288,3},{1878,7290,3},{1882,7293,3},{1878,7297,3},{1875,7297,3},{1873,7298,3}, {1880,7300,3},{1882,7302,3},{1883,7298,3},{1885,7297,3},{1887,7298,3},{1885,7292,3}, {1888,7290,3},{1892,7290,3},{1890,7293,3},{1892,7293,3},{1895,7293,3},{1893,7297,3}, {1895,7298,3},{1897,7295,3},{1900,7305,3},{1902,7305,3},{1900,7298,3},{1907,7300,3}, {1908,7297,3},{1917,7297,3},{1912,7293,3},{1907,7293,3},{1905,7295,3},{1902,7292,3}, {1898,7288,3},{1902,7288,3},{1895,7283,3},{1890,7282,3},{1890,7280,3},{1895,7282,3}, {1895,7280,3},{1895,7277,3},{1900,7280,3},{1903,7280,3},{1905,7283,3},{1907,7282,3}, {1917,7282,3},{1915,7278,3},{1917,7278,3},{1925,7283,3},{1925,7282,3},{1920,7278,3}, {1922,7277,3},{1932,7278,3},{1930,7280,3},{1932,7285,3},{1928,7290,3},{1928,7297,3}, {1922,7302,3},{1920,7303,3},{1922,7305,3},{1923,7302,3},{1925,7303,3},{1928,7300,3}, {1932,7297,3},{1930,7292,3},{1933,7288,3},{1933,7283,3},{1933,7280,3},{1937,7275,3}, {1947,7273,3},{1953,7288,3},{1953,7283,3},{1952,7280,3},{1957,7277,3},{1958,7273,3}, {1953,7273,3},{1952,7275,3},{1952,7273,3},{1960,7270,3},{1962,7272,3},{1972,7268,3}, {1970,7270,3},{1970,7273,3},{1975,7272,3},{1975,7273,3},{1978,7273,3},{1975,7268,3}, {1980,7268,3},{1983,7265,3},{1988,7267,3},{1993,7267,3},{1998,7270,3},{2007,7270,3}, {2010,7272,3},{2022,7275,3},{2022,7273,3},{2030,7275,3},{2035,7278,3},{2037,7282,3}, {2045,7283,3},{2050,7288,3},{2062,7288,3},{2063,7290,3},{2072,7292,3},{2073,7290,3}, {2077,7295,3},{2078,7292,3},{2082,7292,3},{2078,7290,3},{2083,7288,3},{2087,7290,3}, {2083,7283,3},{2085,7285,3},{2088,7285,3},{2090,7287,3},{2093,7283,3},{2095,7288,3}, {2097,7290,3},{2098,7288,3},{2097,7283,3},{2100,7282,3},{2100,7278,3},{2103,7277,3}, {2103,7285,3},{2107,7285,3},{2107,7283,3},{2110,7283,3},{2113,7280,3},{2112,7278,3}, {2112,7273,3},{2108,7273,3},{2107,7270,3},{2112,7270,3},{2115,7273,3},{2117,7272,3}, {2115,7267,3},{2110,7267,3},{2108,7263,3},{2110,7262,3},{2113,7262,3},{2120,7273,3}, {2125,7265,3},{2127,7263,3},{2125,7262,3},{2133,7258,3},{2137,7265,3},{2137,7257,3}, {2138,7257,3},{2142,7265,3},{2145,7270,3},{2145,7275,3},{2147,7275,3},{2147,7272,3}, {2143,7265,3},{2142,7258,3},{2148,7263,3},{2155,7272,3},{2157,7277,3},{2163,7282,3}, {2165,7290,3},{2172,7307,3},{2173,7312,3},{2175,7313,3},{2177,7312,3},{2168,7293,3}, {2168,7285,3},{2167,7278,3},{2168,7275,3},{2167,7268,3},{2168,7262,3},{2167,7253,3}, {2170,7253,3},{2177,7255,3},{2185,7257,3},{2193,7263,3},{2193,7268,3},{2198,7272,3}, {2198,7273,3},{2200,7272,3},{2197,7268,3},{2197,7262,3},{2190,7255,3},{2192,7253,3}, {2198,7250,3},{2213,7253,3},{2220,7258,3},{2222,7263,3},{2218,7268,3},{2218,7272,3}, {2217,7275,3},{2222,7278,3},{2223,7282,3},{2222,7288,3},{2222,7292,3},{2227,7292,3}, {2228,7290,3},{2227,7290,3},{2227,7282,3},{2223,7275,3},{2227,7268,3},{2227,7262,3}, {2228,7258,3},{2223,7250,3},{2223,7247,3},{2223,7245,3},{2225,7247,3},{2227,7245,3}, {2223,7242,3},{2225,7238,3},{2230,7238,3},{2235,7242,3},{2237,7238,3},{2228,7233,3}, {2227,7233,3},{2225,7230,3},{2227,7227,3},{2228,7227,3},{2230,7227,3},{2228,7215,3}, {2225,7218,3},{2225,7222,3},{2228,7223,3},{2223,7223,3},{2223,7230,3},{2215,7233,3}, {2207,7230,3},{2205,7227,3},{2202,7227,3},{2200,7222,3},{2198,7222,3},{2200,7218,3}, {2197,7217,3},{2202,7210,3},{2198,7213,3},{2197,7208,3},{2195,7210,3},{2195,7203,3}, {2193,7205,3},{2192,7212,3},{2193,7215,3},{2192,7215,3},{2188,7217,3},{2185,7217,3}, {2183,7215,3},{2185,7213,3},{2188,7210,3},{2190,7207,3},{2188,7205,3},{2187,7208,3}, {2185,7208,3},{2183,7210,3},{2183,7208,3},{2187,7200,3},{2185,7200,3},{2178,7200,3}, {2180,7202,3},{2177,7202,3},{2178,7207,3},{2177,7212,3},{2178,7217,3},{2177,7218,3}, {2173,7222,3},{2170,7222,3},{2168,7227,3},{2163,7230,3},{2158,7228,3},{2147,7225,3}, {2132,7210,3},{2127,7210,3},{2125,7208,3},{2120,7212,3},{2113,7200,3},{2113,7192,3}, {2107,7182,3},{2103,7178,3},{2102,7170,3},{2095,7155,3},{2098,7157,3},{2093,7148,3}, {2088,7147,3},{2083,7132,3},{2077,7113,3},{2073,7102,3},{2072,7100,3},{2070,7097,3}, {2070,7083,3},{2072,7078,3},{2072,7073,3},{2075,7068,3},{2078,7058,3},{2085,7047,3}, {2090,7040,3},{2092,7033,3},{2107,7015,3},{2118,7002,3},{2125,6997,3},{2132,6990,3}, {2145,6980,3},{2147,6982,3},{2150,6975,3},{2160,6965,3},{2165,6957,3},{2173,6948,3}, {2178,6942,3},{2183,6938,3},{2187,6938,3},{2185,6937,3},{2197,6922,3},{2220,6900,3}, {2230,6895,3},{2233,6895,3},{2240,6898,3},{2245,6900,3},{2248,6907,3},{2248,6908,3}, {2245,6908,3},{2243,6905,3},{2242,6905,3},{2240,6907,3},{2240,6908,3},{2240,6915,3}, {2242,6920,3},{2240,6920,3},{2237,6918,3},{2232,6917,3},{2227,6922,3},{2227,6923,3}, {2228,6932,3},{2233,6935,3},{2232,6940,3},{2233,6948,3},{2238,6953,3},{2243,6950,3}, {2245,6952,3},{2243,6953,3},{2245,6955,3},{2237,6955,3},{2237,6958,3},{2235,6962,3}, {2238,6962,3},{2237,6965,3},{2240,6967,3},{2240,6970,3},{2247,6973,3},{2242,6980,3}, {2247,6983,3},{2247,6988,3},{2250,6992,3},{2252,6993,3},{2253,6995,3},{2255,7002,3}, {2255,7003,3},{2255,7017,3},{2270,7027,3},{2273,7027,3},{2277,7032,3},{2282,7032,3}, {2288,7037,3},{2293,7042,3},{2297,7043,3},{2297,7048,3},{2298,7052,3},{2305,7053,3}, {2310,7050,3},{2313,7048,3},{2308,7040,3},{2305,7040,3},{2302,7042,3},{2293,7038,3}, {2293,7035,3},{2295,7027,3},{2300,7023,3},{2297,7023,3},{2295,7022,3},{2295,7017,3}, {2297,7013,3},{2298,7013,3},{2295,7012,3},{2293,7013,3},{2292,7013,3},{2288,6997,3}, {2283,6980,3},{2280,6975,3},{2277,6975,3},{2275,6970,3},{2275,6968,3},{2275,6958,3}, {2278,6957,3},{2278,6948,3},{2283,6933,3},{2282,6928,3},{2283,6922,3},{2287,6915,3}, {2293,6905,3},{2300,6890,3},{2315,6867,3},{2315,6865,3},{2318,6865,3},{2318,6862,3}, {2323,6860,3},{2323,6862,3},{2327,6862,3},{2325,6860,3},{2325,6857,3},{2327,6853,3}, {2332,6857,3},{2332,6860,3},{2333,6860,3},{2333,6857,3},{2335,6857,3},{2337,6852,3}, {2342,6852,3},{2342,6855,3},{2342,6850,3},{2340,6850,3},{2340,6848,3},{2342,6847,3}, {2343,6847,3},{2343,6843,3},{2345,6843,3},{2348,6845,3},{2352,6848,3},{2355,6843,3}, {2350,6845,3},{2350,6843,3},{2348,6842,3},{2352,6840,3},{2362,6842,3},{2363,6843,3}, {2362,6848,3},{2363,6850,3},{2363,6847,3},{2365,6847,3},{2368,6853,3},{2372,6857,3}, {2375,6863,3},{2382,6867,3},{2382,6872,3},{2387,6882,3},{2388,6880,3},{2387,6877,3}, {2385,6873,3},{2383,6870,3},{2383,6863,3},{2377,6858,3},{2373,6845,3},{2368,6838,3}, {2363,6837,3},{2363,6833,3},{2362,6835,3},{2360,6833,3},{2358,6827,3},{2358,6818,3}, {2360,6813,3},{2362,6815,3},{2363,6817,3},{2367,6820,3},{2365,6823,3},{2367,6828,3}, {2368,6828,3},{2367,6825,3},{2368,6822,3},{2372,6820,3},{2377,6820,3},{2192,8903,131}, {2193,8907,3},{2198,8908,3},{2208,8905,3},{2215,8910,3},{2215,8908,3},{2218,8907,3}, {2227,8902,3},{2228,8900,3},{2230,8902,3},{2232,8900,3},{2240,8898,3},{2242,8900,3}, {2247,8900,3},{2252,8897,3},{2255,8893,3},{2255,8895,3},{2258,8897,3},{2263,8895,3}, {2268,8895,3},{2275,8893,3},{2278,8897,3},{2285,8897,3},{2287,8893,3},{2293,8890,3}, {2297,8887,3},{2310,8887,3},{2312,8892,3},{2317,8895,3},{2318,8898,3},{2320,8898,3}, {2322,8893,3},{2325,8883,3},{2322,8880,3},{2325,8872,3},{2332,8872,3},{2337,8875,3}, {2340,8875,3},{2347,8878,3},{2350,8880,3},{2350,8878,3},{2347,8875,3},{2350,8873,3}, {2352,8870,3},{2355,8865,3},{2358,8863,3},{2360,8858,3},{2363,8858,3},{2365,8857,3}, {2375,8858,3},{2377,8858,3},{2382,8860,3},{2387,8860,3},{2387,8862,3},{2387,8867,3}, {2390,8870,3},{2392,8873,3},{2398,8875,3},{2400,8872,3},{2403,8875,3},{2403,8873,3}, {2407,8873,3},{2408,8870,3},{2417,8872,3},{2420,8875,3},{2425,8873,3},{2432,8868,3}, {2430,8865,3},{2432,8858,3},{2432,8850,3},{2443,8832,3},{2450,8813,3},{2452,8812,3}, {2460,8810,3},{2468,8805,3},{2472,8807,3},{2477,8808,3},{2477,8810,3},{2482,8812,3}, {2482,8813,3},{2485,8817,3},{2492,8813,3},{2495,8822,3},{2492,8825,3},{2488,8827,3}, {2487,8835,3},{2493,8840,3},{2500,8842,3},{2507,8847,3},{2518,8845,3},{2520,8850,3}, {2518,8853,3},{2517,8858,3},{2520,8862,3},{2518,8873,3},{2517,8875,3},{2517,8880,3}, {2520,8883,3},{2518,8888,3},{2517,8893,3},{2517,8895,3},{2518,8893,3},{2520,8893,3}, {2520,8897,3},{2523,8895,3},{2528,8902,3},{2532,8900,3},{2532,8892,3},{2533,8890,3}, {2533,8888,3},{2537,8885,3},{2540,8882,3},{2543,8883,3},{2547,8883,3},{2552,8880,3}, {2550,8872,3},{2547,8870,3},{2550,8862,3},{2552,8855,3},{2553,8855,3},{2553,8852,3}, {2557,8850,3},{2560,8845,3},{2567,8845,3},{2573,8835,3},{2580,8828,3},{2582,8825,3}, {2580,8822,3},{2578,8815,3},{2580,8813,3},{2583,8812,3},{2592,8810,3},{2593,8812,3}, {2602,8815,3},{2603,8818,3},{2607,8818,3},{2610,8815,3},{2612,8818,3},{2615,8818,3}, {2618,8825,3},{2622,8835,3},{2628,8835,3},{2632,8840,3},{2633,8843,3},{2637,8845,3}, {2637,8853,3},{2647,8848,3},{2648,8838,3},{2645,8837,3},{2647,8833,3},{2658,8837,3}, {2663,8842,3},{2655,8843,3},{2653,8848,3},{2647,8857,3},{2647,8862,3},{2642,8865,3}, {2642,8868,3},{2640,8867,3},{2638,8870,3},{2637,8870,3},{2635,8873,3},{2632,8873,3}, {2630,8872,3},{2628,8870,3},{2628,8867,3},{2627,8868,3},{2630,8877,3},{2628,8880,3}, {2623,8883,3},{2623,8885,3},{2623,8887,3},{2627,8887,3},{2628,8890,3},{2628,8893,3}, {2623,8895,3},{2623,8900,3},{2623,8905,3},{2627,8907,3},{2627,8905,3},{2627,8903,3}, {2630,8903,3},{2630,8900,3},{2633,8900,3},{2633,8897,3},{2635,8895,3},{2637,8892,3}, {2642,8892,3},{2645,8897,3},{2640,8903,3},{2638,8907,3},{2635,8907,3},{2633,8913,3}, {2632,8912,3},{2633,8910,3},{2632,8908,3},{2627,8912,3},{2613,8915,3},{2612,8923,3}, {2610,8925,3},{2607,8925,3},{2607,8928,3},{2602,8932,3},{2600,8937,3},{2603,8940,3}, {2600,8943,3},{2600,8952,3},{2597,8955,3},{2597,8957,3},{2600,8958,3},{2603,8958,3}, {2607,8963,3},{2608,8963,3},{2610,8958,3},{2610,8960,3},{2613,8963,3},{2613,8960,3}, {2615,8958,3},{2618,8962,3},{2617,8965,3},{2618,8963,3},{2622,8963,3},{2623,8968,3}, {2620,8968,3},{2617,8968,3},{2615,8973,3},{2608,8978,3},{2605,8978,3},{2598,8982,3}, {2600,8983,3},{2598,8985,3},{2595,8982,3},{2593,8987,3},{2582,8980,3},{2577,8983,3}, {2573,8982,3},{2563,8987,3},{2552,8985,3},{2537,8982,3},{2528,8985,3},{2528,8988,3}, {2532,8992,3},{2528,8997,3},{2522,9012,3},{2520,9028,3},{2515,9038,3},{2515,9043,3}, {2517,9052,3},{2518,9065,3},{2517,9068,3},{2517,9075,3},{2518,9077,3},{2515,9082,3}, {2515,9087,3},{2517,9097,3},{2520,9108,3},{2520,9123,3},{2520,9125,3},{2517,9133,3}, {2517,9140,3},{2513,9148,3},{2515,9155,3},{2517,9158,3},{2513,9160,3},{2513,9165,3}, {2513,9170,3},{2517,9172,3},{2515,9175,3},{2517,9175,3},{2518,9193,3},{2517,9198,3}, {2518,9203,3},{2517,9212,3},{2515,9215,3},{2513,9220,3},{2510,9223,3},{2508,9233,3}, {2505,9235,3},{2503,9240,3},{2497,9242,3},{2497,9245,3},{2495,9245,3},{2493,9248,3}, {2488,9250,3},{2487,9248,3},{2485,9238,3},{2490,9230,3},{2490,9225,3},{2488,9225,3}, {2482,9227,3},{2475,9225,3},{2463,9220,3},{2457,9218,3},{2452,9213,3},{2443,9213,3}, {2440,9212,3},{2437,9208,3},{2438,9197,3},{2437,9197,3},{2433,9200,3},{2432,9198,3}, {2435,9195,3},{2433,9192,3},{2427,9193,3},{2415,9190,3},{2418,9183,3},{2423,9183,3}, {2423,9175,3},{2415,9175,3},{2415,9170,3},{2422,9165,3},{2415,9163,3},{2412,9163,3}, {2410,9162,3},{2408,9153,3},{2412,9142,3},{2410,9137,3},{2405,9138,3},{2400,9137,3}, {2398,9135,3},{2400,9132,3},{2397,9127,3},{2390,9123,3},{2385,9125,3},{2377,9122,3}, {2373,9117,3},{2370,9117,3},{2368,9120,3},{2365,9118,3},{2367,9117,3},{2363,9117,3}, {2355,9120,3},{2352,9120,3},{2348,9125,3},{2337,9128,3},{2337,9132,3},{2333,9128,3}, {2332,9130,3},{2313,9133,3},{2308,9135,3},{2307,9138,3},{2308,9140,3},{2320,9138,3}, {2327,9140,3},{2327,9143,3},{2323,9145,3},{2322,9145,3},{2322,9147,3},{2320,9147,3}, {2318,9150,3},{2308,9153,3},{2307,9152,3},{2305,9155,3},{2300,9155,3},{2298,9157,3}, {2297,9160,3},{2295,9162,3},{2298,9165,3},{2300,9172,3},{2303,9178,3},{2307,9178,3}, {2308,9182,3},{2327,9177,3},{2342,9185,3},{2343,9188,3},{2345,9193,3},{2350,9197,3}, {2358,9197,3},{2367,9193,3},{2373,9195,3},{2373,9197,3},{2365,9203,3},{2365,9207,3}, {2373,9213,3},{2373,9217,3},{2372,9220,3},{2365,9220,3},{2365,9222,3},{2372,9225,3}, {2372,9227,3},{2370,9228,3},{2363,9228,3},{2360,9228,3},{2355,9230,3},{2343,9232,3}, {2337,9237,3},{2328,9238,3},{2322,9235,3},{2310,9237,3},{2305,9238,3},{2293,9238,3}, {2288,9245,3},{2285,9247,3},{2283,9245,3},{2277,9247,3},{2272,9252,3},{2260,9253,3}, {2255,9253,3},{2252,9255,3},{2220,9258,3},{2217,9260,3},{2213,9260,3},{2213,9257,3}, {2198,9260,3},{2188,9262,3},{2180,9260,3},{2163,9260,3},{2147,9262,3},{2130,9267,3}, {2125,9260,3},{2130,9258,3},{2138,9255,3},{2135,9248,3},{2137,9243,3},{2143,9242,3}, {2147,9237,3},{2142,9232,3},{2142,9227,3},{2137,9225,3},{2133,9220,3},{2130,9220,3}, {2123,9222,3},{2118,9220,3},{2113,9220,3},{2112,9220,3},{2107,9225,3},{2093,9225,3}, {2088,9230,3},{2080,9233,3},{2075,9233,3},{2075,9232,3},{2095,9220,3},{2102,9218,3}, {2117,9203,3},{2130,9203,3},{2145,9195,3},{2152,9200,3},{2157,9200,3},{2160,9202,3}, {2163,9200,3},{2167,9202,3},{2165,9198,3},{2168,9197,3},{2168,9195,3},{2178,9195,3}, {2180,9193,3},{2178,9190,3},{2185,9192,3},{2193,9192,3},{2212,9185,3},{2212,9183,3}, {2218,9182,3},{2222,9183,3},{2227,9183,3},{2227,9182,3},{2223,9182,3},{2223,9178,3}, {2238,9175,3},{2248,9170,3},{2260,9162,3},{2265,9160,3},{2278,9145,3},{2280,9143,3}, {2287,9148,3},{2290,9147,3},{2292,9148,3},{2290,9145,3},{2288,9147,3},{2285,9145,3}, {2277,9142,3},{2277,9138,3},{2283,9135,3},{2288,9133,3},{2285,9132,3},{2278,9133,3}, {2282,9132,3},{2282,9128,3},{2280,9125,3},{2282,9113,3},{2283,9110,3},{2282,9110,3}, {2282,9102,3},{2287,9093,3},{2288,9083,3},{2293,9077,3},{2290,9080,3},{2288,9080,3}, {2288,9077,3},{2290,9073,3},{2297,9068,3},{2302,9062,3},{2310,9057,3},{2315,9058,3}, {2327,9065,3},{2333,9063,3},{2335,9060,3},{2338,9058,3},{2348,9058,3},{2352,9063,3}, {2350,9058,3},{2358,9057,3},{2360,9050,3},{2357,9047,3},{2358,9052,3},{2353,9057,3}, {2347,9057,3},{2343,9055,3},{2340,9052,3},{2347,9028,3},{2353,9017,3},{2362,9010,3}, {2368,8990,3},{2373,8987,3},{2380,8978,3},{2390,8977,3},{2395,8972,3},{2397,8972,3}, {2398,8975,3},{2400,8967,3},{2397,8968,3},{2393,8968,3},{2390,8972,3},{2383,8972,3}, {2382,8968,3},{2382,8962,3},{2385,8945,3},{2395,8935,3},{2395,8925,3},{2392,8922,3}, {2388,8927,3},{2388,8937,3},{2385,8943,3},{2378,8950,3},{2380,8963,3},{2377,8972,3}, {2377,8978,3},{2370,8985,3},{2358,8995,3},{2357,8997,3},{2358,9000,3},{2360,9005,3}, {2358,9010,3},{2353,9013,3},{2343,9015,3},{2338,9018,3},{2345,9018,3},{2347,9018,3}, {2338,9035,3},{2342,9035,3},{2335,9047,3},{2333,9053,3},{2330,9055,3},{2327,9055,3}, {2318,9050,3},{2315,9052,3},{2313,9053,3},{2312,9053,3},{2310,9052,3},{2310,9045,3}, {2303,9043,3},{2302,9038,3},{2297,9053,3},{2295,9055,3},{2293,9062,3},{2290,9065,3}, {2290,9067,3},{2288,9067,3},{2283,9060,3},{2282,9055,3},{2282,9045,3},{2285,9040,3}, {2283,9038,3},{2278,9042,3},{2280,9045,3},{2278,9047,3},{2275,9045,3},{2272,9048,3}, {2262,9050,3},{2255,9057,3},{2247,9058,3},{2245,9062,3},{2237,9062,3},{2227,9060,3}, {2223,9057,3},{2222,9057,3},{2218,9050,3},{2208,9045,3},{2207,9043,3},{2208,9037,3}, {2200,9032,3},{2192,9028,3},{2187,9023,3},{2185,9025,3},{2183,9025,3},{2180,9020,3}, {2178,9015,3},{2180,9010,3},{2183,9008,3},{2185,9010,3},{2190,9012,3},{2190,9010,3}, {2183,9007,3},{2183,9003,3},{2183,9002,3},{2187,9003,3},{2195,9002,3},{2198,9007,3}, {2203,9008,3},{2208,9012,3},{2207,9008,3},{2200,9005,3},{2200,9000,3},{2205,8998,3}, {2200,8995,3},{2203,8992,3},{2212,8992,3},{2218,8990,3},{2228,8988,3},{2237,8992,3}, {2245,8998,3},{2247,8998,3},{2242,8993,3},{2238,8990,3},{2242,8987,3},{2235,8988,3}, {2227,8983,3},{2217,8987,3},{2208,8987,3},{2207,8980,3},{2203,8985,3},{2197,8985,3}, {2192,8988,3},{2188,8988,3},{2187,8983,3},{2183,8982,3},{2183,8977,3},{2185,8975,3}, {2182,8973,3},{2185,8967,3},{2190,8967,3},{2192,8965,3},{2185,8962,3},{2178,8970,3}, {2177,8970,3},{2175,8965,3},{2177,8960,3},{2175,8958,3},{2172,8960,3},{2170,8960,3}, {2170,8958,3},{2172,8955,3},{2182,8952,3},{2188,8957,3},{2193,8957,3},{2198,8955,3}, {2210,8960,3},{2220,8957,3},{2223,8960,3},{2233,8962,3},{2227,8958,3},{2223,8958,3}, {2220,8955,3},{2212,8958,3},{2198,8955,3},{2198,8953,3},{2202,8952,3},{2208,8953,3}, {2218,8948,3},{2227,8950,3},{2228,8947,3},{2222,8947,3},{2218,8947,3},{2213,8947,3}, {2210,8948,3},{2213,8950,3},{2208,8952,3},{2205,8952,3},{2203,8948,3},{2197,8952,3}, {2192,8952,3},{2190,8952,3},{2188,8948,3},{2185,8945,3},{2178,8947,3},{2177,8947,3}, {2172,8942,3},{2172,8940,3},{2173,8937,3},{2177,8937,3},{2183,8937,3},{2187,8938,3}, {2190,8938,3},{2197,8935,3},{2188,8935,3},{2187,8932,3},{2182,8932,3},{2182,8928,3}, {2175,8930,3},{2168,8927,3},{2167,8930,3},{2163,8923,3},{2165,8920,3},{2172,8922,3}, {2182,8918,3},{2178,8915,3},{2182,8910,3},{2185,8910,3},{2192,8908,3},{2202,8908,3}, {2205,8907,3},{2212,8907,3},{2213,8905,3},{2208,8903,3},{2202,8907,3},{2193,8907,3}, {2192,8903,3},{2732,8892,131},{2747,8897,3},{2750,8900,3},{2757,8913,3}, {2762,8913,3},{2780,8923,3},{2787,8937,3},{2805,8948,3},{2808,8955,3},{2815,8958,3}, {2820,8980,3},{2823,8980,3},{2830,8990,3},{2828,8993,3},{2830,8998,3},{2832,9000,3}, {2830,9018,3},{2825,9038,3},{2823,9040,3},{2820,9040,3},{2812,9035,3},{2808,9037,3}, {2807,9047,3},{2808,9053,3},{2807,9060,3},{2810,9068,3},{2808,9073,3},{2805,9083,3}, {2805,9092,3},{2803,9095,3},{2798,9102,3},{2797,9108,3},{2798,9113,3},{2807,9122,3}, {2807,9130,3},{2810,9132,3},{2805,9133,3},{2800,9143,3},{2797,9160,3},{2793,9167,3}, {2792,9168,3},{2787,9165,3},{2777,9165,3},{2772,9165,3},{2767,9160,3},{2765,9160,3}, {2755,9162,3},{2748,9167,3},{2745,9177,3},{2742,9177,3},{2742,9178,3},{2745,9187,3}, {2745,9195,3},{2748,9200,3},{2737,9208,3},{2728,9212,3},{2725,9207,3},{2718,9205,3}, {2717,9202,3},{2710,9202,3},{2708,9202,3},{2702,9208,3},{2693,9212,3},{2690,9210,3}, {2687,9208,3},{2685,9202,3},{2685,9198,3},{2690,9192,3},{2687,9193,3},{2685,9190,3}, {2683,9192,3},{2680,9190,3},{2682,9188,3},{2685,9187,3},{2687,9185,3},{2680,9172,3}, {2682,9170,3},{2680,9167,3},{2682,9162,3},{2680,9155,3},{2687,9150,3},{2688,9142,3}, {2680,9138,3},{2678,9132,3},{2678,9128,3},{2680,9123,3},{2682,9108,3},{2678,9103,3}, {2677,9070,3},{2680,9057,3},{2690,9038,3},{2690,9035,3},{2685,9030,3},{2685,9022,3}, {2682,9018,3},{2678,9018,3},{2675,9015,3},{2672,8990,3},{2673,8985,3},{2670,8985,3}, {2670,8977,3},{2673,8968,3},{2672,8963,3},{2673,8962,3},{2677,8965,3},{2682,8953,3}, {2680,8947,3},{2687,8937,3},{2685,8930,3},{2682,8927,3},{2682,8920,3},{2682,8913,3}, {2683,8910,3},{2688,8908,3},{2693,8903,3},{2692,8898,3},{2693,8895,3},{2697,8895,3}, {2698,8892,3},{2695,8888,3},{2708,8887,3},{2713,8880,3},{2715,8875,3},{2725,8880,3}, {2728,8890,3},{2732,8892,3},{3020,8102,131},{3015,8107,3},{3012,8108,3}, {3010,8110,3},{3005,8108,3},{3002,8113,3},{3002,8123,3},{3008,8128,3},{3015,8125,3}, {3015,8135,3},{3020,8137,3},{3025,8138,3},{3027,8143,3},{3030,8148,3},{3045,8162,3}, {3042,8167,3},{3033,8173,3},{3027,8175,3},{3022,8180,3},{3025,8182,3},{3017,8195,3}, {3015,8217,3},{3008,8223,3},{3003,8233,3},{3002,8245,3},{2995,8260,3},{2977,8277,3}, {2975,8283,3},{2967,8295,3},{2967,8308,3},{2955,8325,3},{2940,8340,3},{2917,8345,3}, {2913,8353,3},{2908,8358,3},{2905,8363,3},{2907,8372,3},{2913,8380,3},{2930,8388,3}, {2933,8397,3},{2928,8400,3},{2928,8412,3},{2918,8408,3},{2912,8412,3},{2905,8410,3}, {2898,8415,3},{2887,8412,3},{2880,8415,3},{2880,8420,3},{2882,8425,3},{2880,8433,3}, {2873,8435,3},{2873,8442,3},{2870,8447,3},{2872,8460,3},{2867,8463,3},{2865,8468,3}, {2862,8468,3},{2858,8485,3},{2863,8500,3},{2867,8505,3},{2868,8510,3},{2863,8512,3}, {2857,8512,3},{2843,8510,3},{2833,8515,3},{2832,8522,3},{2827,8530,3},{2828,8533,3}, {2827,8537,3},{2832,8542,3},{2832,8548,3},{2830,8557,3},{2818,8573,3},{2822,8577,3}, {2820,8580,3},{2820,8585,3},{2810,8592,3},{2802,8592,3},{2797,8595,3},{2793,8595,3}, {2792,8607,3},{2792,8608,3},{2793,8608,3},{2807,8607,3},{2810,8613,3},{2813,8617,3}, {2810,8620,3},{2807,8620,3},{2797,8623,3},{2795,8635,3},{2795,8642,3},{2792,8643,3}, {2792,8652,3},{2793,8653,3},{2797,8653,3},{2802,8652,3},{2803,8655,3},{2808,8657,3}, {2807,8663,3},{2808,8667,3},{2810,8670,3},{2810,8673,3},{2803,8677,3},{2800,8687,3}, {2797,8693,3},{2788,8713,3},{2783,8715,3},{2780,8720,3},{2778,8727,3},{2787,8742,3}, {2782,8742,3},{2785,8750,3},{2783,8752,3},{2785,8755,3},{2780,8762,3},{2780,8765,3}, {2782,8773,3},{2780,8780,3},{2782,8785,3},{2782,8790,3},{2783,8795,3},{2790,8798,3}, {2792,8803,3},{2790,8805,3},{2785,8808,3},{2787,8815,3},{2785,8820,3},{2782,8818,3}, {2778,8818,3},{2760,8812,3},{2758,8808,3},{2753,8805,3},{2748,8805,3},{2743,8807,3}, {2740,8803,3},{2733,8807,3},{2723,8802,3},{2715,8802,3},{2712,8800,3},{2705,8803,3}, {2703,8807,3},{2698,8812,3},{2693,8813,3},{2687,8818,3},{2677,8820,3},{2667,8817,3}, {2660,8813,3},{2653,8810,3},{2648,8812,3},{2643,8810,3},{2637,8802,3},{2640,8795,3}, {2643,8792,3},{2645,8793,3},{2647,8790,3},{2647,8788,3},{2643,8785,3},{2647,8778,3}, {2645,8778,3},{2642,8777,3},{2643,8768,3},{2640,8765,3},{2638,8760,3},{2642,8753,3}, {2643,8747,3},{2640,8737,3},{2635,8735,3},{2635,8733,3},{2637,8727,3},{2642,8725,3}, {2640,8715,3},{2642,8713,3},{2645,8710,3},{2658,8707,3},{2653,8700,3},{2653,8693,3}, {2650,8690,3},{2647,8688,3},{2643,8683,3},{2645,8677,3},{2642,8673,3},{2648,8662,3}, {2650,8657,3},{2653,8653,3},{2657,8642,3},{2658,8638,3},{2658,8633,3},{2660,8633,3}, {2662,8633,3},{2662,8628,3},{2658,8620,3},{2660,8620,3},{2660,8613,3},{2667,8603,3}, {2665,8597,3},{2662,8595,3},{2657,8585,3},{2660,8583,3},{2660,8580,3},{2667,8573,3}, {2677,8573,3},{2680,8573,3},{2687,8563,3},{2680,8548,3},{2680,8542,3},{2677,8538,3}, {2673,8533,3},{2677,8522,3},{2680,8518,3},{2685,8520,3},{2687,8518,3},{2687,8512,3}, {2685,8503,3},{2688,8503,3},{2690,8497,3},{2695,8497,3},{2697,8490,3},{2702,8485,3}, {2700,8475,3},{2705,8465,3},{2713,8468,3},{2722,8468,3},{2730,8465,3},{2733,8462,3}, {2738,8432,3},{2740,8428,3},{2745,8425,3},{2743,8422,3},{2747,8420,3},{2750,8415,3}, {2752,8415,3},{2752,8410,3},{2745,8403,3},{2745,8392,3},{2743,8383,3},{2742,8383,3}, {2737,8388,3},{2735,8385,3},{2747,8360,3},{2748,8340,3},{2745,8338,3},{2742,8340,3}, {2740,8338,3},{2735,8335,3},{2733,8332,3},{2735,8327,3},{2738,8325,3},{2745,8318,3}, {2745,8303,3},{2747,8295,3},{2750,8292,3},{2750,8277,3},{2755,8275,3},{2768,8272,3}, {2772,8270,3},{2767,8245,3},{2768,8242,3},{2773,8235,3},{2775,8232,3},{2785,8217,3}, {2787,8212,3},{2792,8208,3},{2792,8200,3},{2790,8195,3},{2787,8192,3},{2785,8188,3}, {2792,8178,3},{2797,8170,3},{2798,8163,3},{2802,8160,3},{2808,8148,3},{2813,8147,3}, {2815,8143,3},{2817,8138,3},{2813,8137,3},{2813,8132,3},{2815,8132,3},{2815,8130,3}, {2817,8132,3},{2820,8132,3},{2825,8125,3},{2837,8120,3},{2840,8102,3},{2843,8102,3}, {2843,8093,3},{2847,8090,3},{2850,8090,3},{2850,8083,3},{2853,8078,3},{2857,8075,3}, {2858,8070,3},{2863,8067,3},{2865,8058,3},{2868,8058,3},{2868,8053,3},{2865,8050,3}, {2858,8052,3},{2857,8052,3},{2863,8043,3},{2863,8035,3},{2870,8032,3},{2872,8027,3}, {2875,8025,3},{2877,8018,3},{2882,8013,3},{2883,8007,3},{2892,8005,3},{2895,8007,3}, {2900,8013,3},{2903,8012,3},{2910,8015,3},{2912,8017,3},{2913,8023,3},{2915,8025,3}, {2920,8023,3},{2922,8025,3},{2920,8028,3},{2932,8030,3},{2932,8028,3},{2938,8027,3}, {2942,8023,3},{2945,8025,3},{2945,8028,3},{2948,8028,3},{2952,8035,3},{2955,8035,3}, {2960,8040,3},{2965,8042,3},{2967,8038,3},{2975,8037,3},{2978,8042,3},{2980,8048,3}, {2985,8053,3},{2995,8060,3},{2997,8068,3},{3002,8072,3},{3002,8075,3},{3005,8077,3}, {3013,8087,3},{3017,8087,3},{3020,8088,3},{3022,8092,3},{3018,8092,3},{3018,8095,3}, {3020,8102,3},{2520,6162,131},{2532,6165,3},{2565,6167,3},{2568,6168,3}, {2573,6173,3},{2572,6180,3},{2575,6183,3},{2582,6183,3},{2585,6182,3},{2587,6185,3}, {2588,6188,3},{2592,6183,3},{2597,6182,3},{2600,6185,3},{2607,6183,3},{2627,6188,3}, {2628,6197,3},{2633,6203,3},{2632,6208,3},{2628,6212,3},{2628,6223,3},{2632,6225,3}, {2633,6223,3},{2633,6227,3},{2637,6228,3},{2642,6227,3},{2647,6232,3},{2650,6232,3}, {2653,6237,3},{2655,6242,3},{2657,6243,3},{2658,6262,3},{2662,6267,3},{2660,6270,3}, {2662,6275,3},{2663,6277,3},{2665,6283,3},{2663,6318,3},{2672,6320,3},{2682,6318,3}, {2685,6325,3},{2708,6325,3},{2713,6333,3},{2723,6327,3},{2723,6323,3},{2727,6320,3}, {2727,6318,3},{2725,6315,3},{2725,6305,3},{2722,6295,3},{2722,6285,3},{2727,6278,3}, {2728,6280,3},{2732,6282,3},{2737,6280,3},{2748,6285,3},{2775,6283,3},{2803,6277,3}, {2822,6280,3},{2828,6278,3},{2827,6260,3},{2832,6253,3},{2838,6250,3},{2838,6247,3}, {2842,6243,3},{2845,6233,3},{2852,6207,3},{2857,6190,3},{2865,6182,3},{2873,6173,3}, {2878,6167,3},{2887,6160,3},{2902,6153,3},{2905,6148,3},{2908,6152,3},{2910,6148,3}, {2913,6147,3},{2915,6143,3},{2922,6140,3},{2927,6137,3},{2930,6135,3},{2935,6137,3}, {2938,6137,3},{2940,6132,3},{2943,6128,3},{2948,6123,3},{2953,6120,3},{2957,6115,3}, {2962,6112,3},{2965,6107,3},{2970,6103,3},{2973,6098,3},{2978,6095,3},{2982,6092,3}, {2987,6087,3},{2985,6092,3},{2983,6098,3},{2982,6103,3},{2980,6110,3},{2978,6117,3}, {2977,6122,3},{2975,6128,3},{2973,6135,3},{2972,6140,3},{2970,6147,3},{2968,6153,3}, {2967,6158,3},{2965,6165,3},{2962,6172,3},{2960,6177,3},{2958,6183,3},{2957,6188,3}, {2955,6195,3},{2953,6202,3},{2952,6207,3},{2950,6213,3},{2948,6220,3},{2947,6225,3}, {2945,6232,3},{2943,6238,3},{2942,6243,3},{2940,6248,3},{2942,6257,3},{2942,6262,3}, {2942,6268,3},{2943,6273,3},{2943,6280,3},{2943,6287,3},{2945,6292,3},{2945,6298,3}, {2945,6305,3},{2947,6312,3},{2947,6317,3},{2947,6323,3},{2948,6330,3},{2948,6335,3}, {2948,6342,3},{2950,6347,3},{2950,6353,3},{2950,6358,3},{2950,6365,3},{2948,6372,3}, {2947,6377,3},{2947,6383,3},{2945,6390,3},{2943,6397,3},{2943,6402,3},{2940,6407,3}, {2938,6412,3},{2942,6413,3},{2945,6417,3},{2950,6420,3},{2952,6427,3},{2953,6432,3}, {2955,6438,3},{2957,6443,3},{2958,6450,3},{2958,6455,3},{2958,6462,3},{2958,6467,3}, {2958,6473,3},{2958,6480,3},{2957,6485,3},{2957,6492,3},{2955,6498,3},{2953,6503,3}, {2957,6510,3},{2957,6517,3},{2958,6522,3},{2960,6528,3},{2962,6533,3},{2963,6540,3}, {2965,6547,3},{2967,6552,3},{2968,6558,3},{2970,6563,3},{2972,6570,3},{2973,6577,3}, {2975,6582,3},{2975,6588,3},{2977,6593,3},{2978,6600,3},{2980,6607,3},{2982,6612,3}, {2983,6618,3},{2985,6625,3},{2990,6632,3},{2995,6633,3},{2995,6637,3},{3005,6625,3}, {3007,6623,3},{3023,6633,3},{3030,6632,3},{3045,6635,3},{3050,6633,3},{3052,6630,3}, {3057,6628,3},{3093,6640,3},{3098,6658,3},{3108,6668,3},{3122,6672,3},{3122,6680,3}, {3128,6685,3},{3132,6697,3},{3132,6705,3},{3125,6703,3},{3125,6705,3},{3125,6717,3}, {3122,6720,3},{3122,6728,3},{3122,6738,3},{3127,6758,3},{3127,6762,3},{3133,6772,3}, {3133,6778,3},{3135,6780,3},{3140,6778,3},{3142,6773,3},{3140,6767,3},{3143,6762,3}, {3147,6762,3},{3153,6758,3},{3153,6772,3},{3158,6782,3},{3163,6787,3},{3163,6798,3}, {3167,6800,3},{3170,6807,3},{3173,6808,3},{3177,6813,3},{3183,6817,3},{3182,6823,3}, {3178,6827,3},{3177,6837,3},{3173,6853,3},{3177,6857,3},{3178,6843,3},{3180,6845,3}, {3183,6855,3},{3182,6858,3},{3178,6862,3},{3178,6870,3},{3170,6873,3},{3167,6878,3}, {3162,6880,3},{3160,6883,3},{3162,6893,3},{3165,6895,3},{3165,6903,3},{3177,6917,3}, {3187,6922,3},{3193,6933,3},{3215,6927,3},{3232,6928,3},{3245,6925,3},{3253,6928,3}, {3257,6938,3},{3267,6945,3},{3273,6943,3},{3277,6940,3},{3285,6948,3},{3287,6952,3}, {3300,6948,3},{3303,6950,3},{3308,6958,3},{3308,6968,3},{3308,6970,3},{3313,6978,3}, {3310,6983,3},{3308,6988,3},{3313,6997,3},{3313,7003,3},{3320,7007,3},{3320,7015,3}, {3333,7033,3},{3342,7028,3},{3347,7023,3},{3347,7020,3},{3352,7017,3},{3360,7020,3}, {3363,7020,3},{3367,7015,3},{3373,7013,3},{3373,7010,3},{3375,6998,3},{3382,6995,3}, {3385,6992,3},{3390,6990,3},{3393,6987,3},{3398,6990,3},{3402,6990,3},{3403,6990,3}, {3405,7000,3},{3402,7010,3},{3402,7017,3},{3400,7020,3},{3398,7030,3},{3397,7033,3}, {3395,7078,3},{3397,7088,3},{3398,7092,3},{3402,7090,3},{3402,7098,3},{3403,7100,3}, {3405,7107,3},{3407,7108,3},{3412,7108,3},{3417,7113,3},{3427,7112,3},{3435,7117,3}, {3437,7115,3},{3438,7108,3},{3447,7100,3},{3450,7098,3},{3455,7098,3},{3457,7108,3}, {3462,7110,3},{3467,7110,3},{3473,7118,3},{3475,7123,3},{3477,7123,3},{3482,7128,3}, {3487,7130,3},{3488,7132,3},{3495,7150,3},{3502,7153,3},{3505,7153,3},{3508,7153,3}, {3512,7157,3},{3513,7162,3},{3520,7167,3},{3530,7155,3},{3533,7155,3},{3542,7165,3}, {3550,7160,3},{3557,7162,3},{3562,7152,3},{3572,7155,3},{3575,7148,3},{3578,7150,3}, {3587,7143,3},{3590,7138,3},{3595,7138,3},{3597,7128,3},{3605,7118,3},{3610,7123,3}, {3613,7125,3},{3617,7133,3},{3620,7133,3},{3622,7142,3},{3632,7150,3},{3633,7158,3}, {3637,7157,3},{3640,7160,3},{3647,7163,3},{3647,7165,3},{3640,7177,3},{3640,7180,3}, {3642,7182,3},{3647,7178,3},{3648,7180,3},{3650,7190,3},{3658,7202,3},{3658,7207,3}, {3663,7207,3},{3665,7218,3},{3667,7220,3},{3670,7217,3},{3672,7218,3},{3675,7232,3}, {3677,7247,3},{3682,7257,3},{3683,7287,3},{3687,7297,3},{3685,7302,3},{3688,7310,3}, {3688,7323,3},{3687,7330,3},{3688,7337,3},{3690,7348,3},{3688,7355,3},{3690,7358,3}, {3692,7367,3},{3690,7385,3},{3682,7403,3},{3683,7412,3},{3690,7415,3},{3690,7425,3}, {3697,7435,3},{3700,7442,3},{3702,7448,3},{3697,7455,3},{3703,7457,3},{3707,7468,3}, {3702,7473,3},{3702,7482,3},{3697,7488,3},{3692,7490,3},{3695,7492,3},{3698,7497,3}, {3700,7515,3},{3697,7520,3},{3692,7540,3},{3685,7543,3},{3677,7543,3},{3673,7545,3}, {3673,7553,3},{3677,7553,3},{3677,7557,3},{3677,7567,3},{3673,7575,3},{3667,7585,3}, {3662,7590,3},{3655,7593,3},{3645,7600,3},{3642,7602,3},{3632,7598,3},{3623,7603,3}, {3620,7600,3},{3618,7600,3},{3617,7600,3},{3612,7592,3},{3608,7593,3},{3602,7597,3}, {3600,7608,3},{3598,7612,3},{3590,7615,3},{3583,7615,3},{3582,7618,3},{3582,7628,3}, {3582,7633,3},{3583,7637,3},{3583,7642,3},{3587,7645,3},{3587,7653,3},{3592,7657,3}, {3590,7658,3},{3582,7657,3},{3575,7658,3},{3572,7672,3},{3565,7678,3},{3565,7687,3}, {3560,7692,3},{3558,7708,3},{3555,7712,3},{3553,7718,3},{3553,7732,3},{3547,7742,3}, {3548,7752,3},{3547,7763,3},{3547,7770,3},{3547,7773,3},{3550,7778,3},{3550,7782,3}, {3547,7777,3},{3543,7770,3},{3542,7765,3},{3538,7760,3},{3535,7753,3},{3533,7748,3}, {3530,7743,3},{3527,7737,3},{3523,7732,3},{3522,7727,3},{3518,7720,3},{3515,7715,3}, {3513,7708,3},{3510,7705,3},{3505,7707,3},{3500,7705,3},{3497,7700,3},{3492,7695,3}, {3487,7695,3},{3478,7695,3},{3475,7690,3},{3473,7682,3},{3475,7673,3},{3478,7663,3}, {3475,7650,3},{3470,7640,3},{3463,7635,3},{3465,7620,3},{3463,7610,3},{3450,7582,3}, {3447,7553,3},{3450,7540,3},{3462,7527,3},{3467,7517,3},{3467,7495,3},{3470,7482,3}, {3468,7470,3},{3472,7462,3},{3477,7455,3},{3478,7437,3},{3478,7432,3},{3473,7420,3}, {3470,7417,3},{3465,7417,3},{3468,7405,3},{3467,7397,3},{3465,7395,3},{3462,7393,3}, {3457,7395,3},{3455,7392,3},{3445,7387,3},{3440,7378,3},{3433,7375,3},{3432,7377,3}, {3435,7385,3},{3433,7387,3},{3433,7398,3},{3432,7405,3},{3428,7407,3},{3418,7407,3}, {3415,7403,3},{3413,7395,3},{3410,7393,3},{3407,7395,3},{3405,7397,3},{3403,7402,3}, {3405,7422,3},{3398,7428,3},{3395,7430,3},{3388,7423,3},{3382,7413,3},{3378,7405,3}, {3375,7402,3},{3368,7400,3},{3365,7400,3},{3360,7407,3},{3358,7413,3},{3342,7418,3}, {3332,7417,3},{3328,7410,3},{3327,7402,3},{3325,7400,3},{3322,7402,3},{3317,7412,3}, {3305,7425,3},{3303,7432,3},{3277,7442,3},{3278,7447,3},{3277,7448,3},{3273,7452,3}, {3277,7455,3},{3275,7458,3},{3275,7463,3},{3277,7463,3},{3282,7463,3},{3283,7470,3}, {3283,7472,3},{3273,7467,3},{3267,7468,3},{3260,7465,3},{3250,7468,3},{3248,7472,3}, {3247,7475,3},{3248,7485,3},{3248,7488,3},{3245,7493,3},{3248,7502,3},{3247,7507,3}, {3242,7515,3},{3240,7522,3},{3235,7532,3},{3228,7538,3},{3223,7537,3},{3220,7533,3}, {3217,7533,3},{3215,7530,3},{3215,7525,3},{3212,7518,3},{3210,7517,3},{3208,7517,3}, {3208,7513,3},{3207,7510,3},{3210,7505,3},{3210,7502,3},{3208,7502,3},{3207,7503,3}, {3207,7498,3},{3203,7497,3},{3203,7488,3},{3202,7487,3},{3202,7482,3},{3195,7478,3}, {3195,7470,3},{3188,7465,3},{3182,7453,3},{3177,7455,3},{3177,7452,3},{3173,7452,3}, {3160,7460,3},{3152,7460,3},{3148,7463,3},{3145,7463,3},{3140,7458,3},{3128,7455,3}, {3115,7453,3},{3112,7457,3},{3112,7463,3},{3108,7468,3},{3107,7468,3},{3105,7465,3}, {3102,7463,3},{3107,7455,3},{3098,7452,3},{3097,7447,3},{3092,7442,3},{3090,7437,3}, {3085,7437,3},{3083,7432,3},{3080,7430,3},{3077,7427,3},{3073,7427,3},{3072,7423,3}, {3068,7420,3},{3062,7410,3},{3053,7408,3},{3053,7400,3},{3050,7397,3},{3047,7397,3}, {3048,7393,3},{3042,7393,3},{3042,7390,3},{3040,7390,3},{3038,7387,3},{3037,7385,3}, {3033,7390,3},{3032,7393,3},{3020,7397,3},{3007,7380,3},{3002,7358,3},{2995,7340,3}, {2957,7327,3},{2925,7308,3},{2915,7298,3},{2903,7295,3},{2895,7273,3},{2877,7238,3}, {2868,7230,3},{2840,7220,3},{2833,7213,3},{2822,7200,3},{2812,7192,3},{2797,7190,3}, {2788,7163,3},{2787,7140,3},{2785,7123,3},{2772,7093,3},{2770,7083,3},{2773,7073,3}, {2787,7067,3},{2793,7067,3},{2800,7058,3},{2803,7053,3},{2805,7048,3},{2802,7037,3}, {2795,7028,3},{2783,7013,3},{2760,7003,3},{2750,6993,3},{2742,6988,3},{2732,6975,3}, {2728,6970,3},{2718,6958,3},{2700,6952,3},{2682,6948,3},{2675,6952,3},{2667,6972,3}, {2660,6980,3},{2658,6985,3},{2660,7010,3},{2657,7015,3},{2653,7018,3},{2643,7018,3}, {2638,7018,3},{2632,7017,3},{2625,7017,3},{2608,7010,3},{2598,7008,3},{2590,7013,3}, {2583,7018,3},{2580,7022,3},{2570,7028,3},{2567,7038,3},{2568,7053,3},{2572,7062,3}, {2568,7067,3},{2540,7068,3},{2533,7073,3},{2527,7075,3},{2515,7088,3},{2493,7095,3}, {2483,7102,3},{2475,7105,3},{2468,7108,3},{2465,7100,3},{2460,7098,3},{2455,7098,3}, {2453,7100,3},{2448,7100,3},{2445,7100,3},{2445,7108,3},{2443,7110,3},{2442,7110,3}, {2440,7105,3},{2437,7103,3},{2437,7097,3},{2437,7093,3},{2432,7087,3},{2427,7088,3}, {2423,7078,3},{2423,7072,3},{2425,7065,3},{2428,7058,3},{2437,7057,3},{2442,7060,3}, {2443,7058,3},{2442,7043,3},{2437,7038,3},{2437,7032,3},{2433,7025,3},{2432,7012,3}, {2420,7007,3},{2417,7003,3},{2417,6972,3},{2428,6960,3},{2430,6932,3},{2428,6925,3}, {2425,6918,3},{2430,6908,3},{2428,6905,3},{2425,6898,3},{2433,6893,3},{2432,6890,3}, {2425,6887,3},{2423,6885,3},{2427,6883,3},{2428,6885,3},{2433,6882,3},{2433,6878,3}, {2432,6875,3},{2397,6875,3},{2397,6838,3},{2395,6838,3},{2397,6837,3},{2397,6835,3}, {2393,6835,3},{2392,6833,3},{2392,6832,3},{2395,6830,3},{2392,6827,3},{2390,6828,3}, {2388,6822,3},{2377,6820,3},{2375,6818,3},{2375,6817,3},{2383,6818,3},{2387,6817,3}, {2390,6815,3},{2388,6815,3},{2383,6817,3},{2375,6815,3},{2372,6817,3},{2368,6815,3}, {2370,6812,3},{2372,6812,3},{2373,6810,3},{2370,6810,3},{2372,6805,3},{2377,6808,3}, {2380,6807,3},{2382,6810,3},{2388,6805,3},{2392,6807,3},{2393,6802,3},{2383,6805,3}, {2377,6802,3},{2380,6800,3},{2380,6795,3},{2383,6790,3},{2387,6790,3},{2387,6788,3}, {2385,6787,3},{2388,6785,3},{2390,6787,3},{2392,6785,3},{2388,6785,3},{2382,6783,3}, {2382,6780,3},{2383,6772,3},{2380,6775,3},{2378,6772,3},{2380,6763,3},{2388,6765,3}, {2393,6765,3},{2392,6763,3},{2388,6763,3},{2385,6762,3},{2385,6758,3},{2388,6758,3}, {2387,6757,3},{2390,6753,3},{2388,6752,3},{2388,6753,3},{2387,6755,3},{2388,6748,3}, {2390,6748,3},{2390,6752,3},{2393,6753,3},{2392,6750,3},{2397,6750,3},{2397,6747,3}, {2398,6745,3},{2403,6747,3},{2403,6750,3},{2407,6753,3},{2405,6750,3},{2407,6747,3}, {2407,6738,3},{2408,6733,3},{2413,6733,3},{2422,6730,3},{2425,6730,3},{2428,6728,3}, {2433,6730,3},{2435,6737,3},{2435,6728,3},{2443,6728,3},{2442,6725,3},{2445,6725,3}, {2450,6722,3},{2453,6723,3},{2453,6720,3},{2458,6718,3},{2458,6725,3},{2460,6722,3}, {2462,6715,3},{2465,6715,3},{2472,6720,3},{2473,6725,3},{2475,6725,3},{2477,6723,3}, {2475,6718,3},{2480,6715,3},{2478,6712,3},{2480,6708,3},{2477,6708,3},{2477,6707,3}, {2480,6702,3},{2483,6697,3},{2483,6695,3},{2480,6695,3},{2485,6685,3},{2483,6682,3}, {2485,6675,3},{2483,6665,3},{2488,6667,3},{2488,6670,3},{2490,6668,3},{2493,6667,3}, {2495,6668,3},{2512,6670,3},{2515,6673,3},{2520,6673,3},{2525,6670,3},{2537,6655,3}, {2538,6655,3},{2538,6658,3},{2542,6658,3},{2545,6655,3},{2552,6653,3},{2552,6650,3}, {2560,6643,3},{2558,6638,3},{2562,6637,3},{2560,6632,3},{2562,6627,3},{2560,6620,3}, {2557,6617,3},{2550,6613,3},{2547,6610,3},{2548,6622,3},{2555,6627,3},{2555,6633,3}, {2553,6635,3},{2552,6640,3},{2548,6642,3},{2548,6648,3},{2545,6647,3},{2542,6650,3}, {2540,6652,3},{2540,6650,3},{2545,6640,3},{2547,6627,3},{2545,6617,3},{2545,6608,3}, {2542,6600,3},{2542,6585,3},{2538,6578,3},{2537,6570,3},{2535,6567,3},{2538,6545,3}, {2537,6538,3},{2538,6540,3},{2538,6535,3},{2538,6532,3},{2537,6528,3},{2537,6525,3}, {2535,6520,3},{2532,6520,3},{2530,6517,3},{2528,6513,3},{2532,6507,3},{2532,6475,3}, {2528,6468,3},{2522,6467,3},{2518,6472,3},{2517,6467,3},{2517,6460,3},{2522,6463,3}, {2523,6462,3},{2527,6455,3},{2527,6450,3},{2523,6448,3},{2523,6443,3},{2527,6438,3}, {2530,6427,3},{2532,6425,3},{2533,6410,3},{2535,6410,3},{2537,6412,3},{2542,6408,3}, {2543,6410,3},{2542,6413,3},{2545,6415,3},{2545,6412,3},{2543,6407,3},{2545,6403,3}, {2542,6398,3},{2542,6400,3},{2538,6402,3},{2542,6405,3},{2537,6407,3},{2533,6407,3}, {2533,6393,3},{2538,6373,3},{2537,6357,3},{2532,6352,3},{2528,6350,3},{2528,6347,3}, {2525,6348,3},{2522,6352,3},{2518,6350,3},{2522,6342,3},{2522,6330,3},{2525,6315,3}, {2525,6312,3},{2523,6308,3},{2522,6300,3},{2525,6275,3},{2527,6255,3},{2525,6248,3}, {2522,6247,3},{2522,6248,3},{2520,6242,3},{2517,6235,3},{2513,6233,3},{2512,6238,3}, {2510,6238,3},{2510,6228,3},{2512,6228,3},{2512,6230,3},{2515,6232,3},{2517,6232,3}, {2520,6230,3},{2522,6225,3},{2522,6217,3},{2520,6210,3},{2518,6208,3},{2515,6207,3}, {2510,6210,3},{2512,6193,3},{2510,6187,3},{2507,6187,3},{2507,6185,3},{2503,6185,3}, {2505,6180,3},{2503,6177,3},{2505,6172,3},{2508,6173,3},{2510,6175,3},{2517,6178,3}, {2518,6178,3},{2517,6175,3},{2520,6170,3},{2520,6162,3},{4023,7097,131}, {4027,7097,3},{4027,7098,3},{4028,7102,3},{4030,7108,3},{4032,7115,3},{4033,7122,3}, {4030,7130,3},{4030,7137,3},{4027,7143,3},{4025,7150,3},{4023,7148,3},{4020,7155,3}, {4018,7162,3},{4020,7162,3},{4025,7162,3},{4025,7163,3},{4025,7167,3},{4018,7168,3}, {4015,7173,3},{4017,7178,3},{4020,7185,3},{4025,7185,3},{4025,7187,3},{4023,7195,3}, {4027,7200,3},{4032,7197,3},{4035,7203,3},{4040,7208,3},{4047,7210,3},{4045,7212,3}, {4045,7215,3},{4050,7218,3},{4050,7225,3},{4047,7227,3},{4043,7233,3},{4040,7242,3}, {4042,7242,3},{4047,7243,3},{4052,7242,3},{4052,7238,3},{4057,7242,3},{4062,7237,3}, {4062,7238,3},{4062,7242,3},{4060,7245,3},{4055,7248,3},{4057,7250,3},{4053,7257,3}, {4052,7263,3},{4053,7265,3},{4060,7268,3},{4057,7277,3},{4058,7277,3},{4067,7277,3}, {4068,7283,3},{4072,7290,3},{4073,7297,3},{4077,7305,3},{4080,7312,3},{4085,7313,3}, {4085,7307,3},{4088,7298,3},{4087,7298,3},{4083,7300,3},{4083,7298,3},{4082,7292,3}, {4083,7290,3},{4087,7285,3},{4087,7282,3},{4085,7273,3},{4087,7265,3},{4088,7258,3}, {4093,7255,3},{4098,7250,3},{4098,7248,3},{4103,7250,3},{4103,7248,3},{4105,7240,3}, {4105,7233,3},{4102,7228,3},{4100,7220,3},{4102,7218,3},{4105,7223,3},{4110,7222,3}, {4115,7220,3},{4117,7212,3},{4115,7207,3},{4117,7200,3},{4117,7193,3},{4120,7187,3}, {4127,7190,3},{4132,7193,3},{4132,7192,3},{4138,7187,3},{4137,7183,3},{4142,7182,3}, {4147,7177,3},{4145,7172,3},{4142,7170,3},{4143,7170,3},{4145,7170,3},{4150,7172,3}, {4155,7172,3},{4155,7170,3},{4153,7168,3},{4150,7162,3},{4147,7167,3},{4143,7167,3}, {4138,7167,3},{4133,7162,3},{4130,7157,3},{4132,7153,3},{4130,7145,3},{4123,7145,3}, {4118,7145,3},{4112,7143,3},{4110,7140,3},{4112,7138,3},{4117,7135,3},{4115,7133,3}, {4110,7130,3},{4112,7127,3},{4115,7128,3},{4118,7123,3},{4118,7122,3},{4117,7122,3}, {4118,7118,3},{4115,7112,3},{4117,7108,3},{4120,7102,3},{4117,7097,3},{4118,7095,3}, {4120,7092,3},{4123,7085,3},{4117,7082,3},{4118,7080,3},{4118,7078,3},{4120,7078,3}, {4125,7080,3},{4128,7078,3},{4135,7078,3},{4138,7077,3},{4147,7072,3},{4147,7068,3}, {4145,7060,3},{4142,7055,3},{4140,7048,3},{4145,7043,3},{4148,7037,3},{4152,7032,3}, {4152,7025,3},{4152,7018,3},{4155,7018,3},{4160,7020,3},{4160,7027,3},{4163,7035,3}, {4168,7040,3},{4172,7050,3},{4178,7052,3},{4182,7058,3},{4187,7063,3},{4192,7068,3}, {4192,7075,3},{4193,7075,3},{4192,7082,3},{4195,7085,3},{4200,7083,3},{4205,7087,3}, {4205,7090,3},{4203,7097,3},{4205,7103,3},{4208,7108,3},{4213,7115,3},{4213,7122,3}, {4215,7123,3},{4220,7125,3},{4222,7123,3},{4227,7115,3},{4228,7110,3},{4228,7102,3}, {4227,7093,3},{4225,7088,3},{4232,7087,3},{4237,7092,3},{4243,7095,3},{4248,7098,3}, {4250,7100,3},{4247,7107,3},{4250,7110,3},{4253,7103,3},{4255,7102,3},{4260,7105,3}, {4260,7113,3},{4260,7115,3},{4267,7117,3},{4270,7123,3},{4275,7127,3},{4277,7127,3}, {4278,7137,3},{4280,7143,3},{4282,7152,3},{4277,7157,3},{4277,7162,3},{4280,7170,3}, {4280,7177,3},{4283,7183,3},{4282,7190,3},{4278,7198,3},{4277,7205,3},{4273,7212,3}, {4275,7218,3},{4277,7227,3},{4275,7233,3},{4272,7240,3},{4268,7250,3},{4268,7258,3}, {4265,7267,3},{4263,7275,3},{4260,7278,3},{4255,7283,3},{4253,7292,3},{4253,7300,3}, {4253,7308,3},{4252,7318,3},{4250,7330,3},{4245,7330,3},{4243,7338,3},{4242,7345,3}, {4240,7348,3},{4242,7350,3},{4247,7350,3},{4250,7345,3},{4257,7342,3},{4263,7342,3}, {4270,7345,3},{4275,7348,3},{4283,7350,3},{4290,7350,3},{4297,7353,3},{4302,7355,3}, {4305,7363,3},{4308,7370,3},{4312,7378,3},{4310,7387,3},{4310,7390,3},{4315,7392,3}, {4320,7395,3},{4317,7402,3},{4317,7410,3},{4318,7417,3},{4322,7417,3},{4323,7415,3}, {4323,7428,3},{4320,7435,3},{4320,7442,3},{4318,7448,3},{4317,7450,3},{4313,7458,3}, {4310,7462,3},{4307,7468,3},{4302,7472,3},{4298,7478,3},{4300,7485,3},{4298,7492,3}, {4295,7497,3},{4292,7503,3},{4288,7510,3},{4285,7515,3},{4283,7523,3},{4285,7532,3}, {4282,7542,3},{4283,7548,3},{4282,7558,3},{4282,7562,3},{4282,7563,3},{4280,7572,3}, {4283,7577,3},{4290,7578,3},{4295,7585,3},{4295,7593,3},{4293,7600,3},{4292,7603,3}, {4292,7612,3},{4292,7618,3},{4292,7627,3},{4288,7632,3},{4287,7638,3},{4288,7645,3}, {4288,7648,3},{4292,7652,3},{4292,7658,3},{4290,7665,3},{4290,7673,3},{4295,7678,3}, {4298,7685,3},{4298,7693,3},{4297,7700,3},{4297,7708,3},{4297,7718,3},{4292,7722,3}, {4292,7735,3},{4293,7742,3},{4293,7752,3},{4292,7758,3},{4292,7768,3},{4290,7775,3}, {4292,7778,3},{4288,7785,3},{4287,7793,3},{4285,7797,3},{4287,7803,3},{4283,7807,3}, {4287,7808,3},{4285,7815,3},{4288,7817,3},{4287,7825,3},{4285,7832,3},{4288,7838,3}, {4288,7845,3},{4290,7852,3},{4287,7858,3},{4285,7865,3},{4283,7867,3},{4282,7875,3}, {4280,7882,3},{4278,7888,3},{4278,7895,3},{4278,7902,3},{4273,7907,3},{4278,7915,3}, {4278,7918,3},{4270,7918,3},{4265,7922,3},{4262,7928,3},{4258,7935,3},{4253,7940,3}, {4250,7947,3},{4247,7950,3},{4245,7957,3},{4245,7962,3},{4248,7965,3},{4247,7973,3}, {4245,7980,3},{4245,7985,3},{4243,7985,3},{4243,7993,3},{4240,7997,3},{4235,8002,3}, {4233,8007,3},{4230,8010,3},{4222,8012,3},{4220,8012,3},{4223,8020,3},{4223,8022,3}, {4222,8028,3},{4220,8023,3},{4213,8025,3},{4210,8028,3},{4205,8027,3},{4203,8020,3}, {4203,8003,3},{4202,7988,3},{4198,7983,3},{4192,7982,3},{4188,7978,3},{4188,7965,3}, {4178,7945,3},{4178,7940,3},{4178,7932,3},{4173,7922,3},{4172,7913,3},{4165,7900,3}, {4163,7892,3},{4157,7882,3},{4153,7868,3},{4148,7863,3},{4147,7853,3},{4138,7838,3}, {4135,7837,3},{4130,7838,3},{4128,7837,3},{4123,7828,3},{4115,7823,3},{4110,7818,3}, {4103,7808,3},{4105,7803,3},{4107,7787,3},{4100,7768,3},{4100,7760,3},{4098,7755,3}, {4098,7750,3},{4103,7738,3},{4100,7727,3},{4102,7713,3},{4105,7708,3},{4105,7702,3}, {4102,7687,3},{4093,7678,3},{4085,7678,3},{4082,7670,3},{4075,7665,3},{4060,7663,3}, {4055,7657,3},{4043,7648,3},{4035,7635,3},{4037,7632,3},{4043,7630,3},{4045,7628,3}, {4038,7620,3},{4040,7607,3},{4037,7598,3},{4030,7593,3},{4032,7578,3},{4030,7570,3}, {4040,7567,3},{4045,7570,3},{4048,7565,3},{4060,7562,3},{4065,7558,3},{4063,7552,3}, {4052,7533,3},{4048,7528,3},{4048,7525,3},{4045,7523,3},{4047,7517,3},{4045,7507,3}, {4052,7487,3},{4042,7482,3},{4035,7488,3},{4033,7488,3},{4035,7473,3},{4028,7467,3}, {4027,7460,3},{4013,7443,3},{4010,7437,3},{4010,7430,3},{4012,7422,3},{4007,7410,3}, {4007,7403,3},{4005,7400,3},{3997,7397,3},{3993,7392,3},{3987,7390,3},{3983,7385,3}, {3978,7385,3},{3975,7385,3},{3972,7392,3},{3963,7393,3},{3960,7395,3},{3957,7390,3}, {3948,7385,3},{3947,7367,3},{3947,7362,3},{3945,7355,3},{3947,7347,3},{3945,7338,3}, {3940,7335,3},{3938,7332,3},{3940,7323,3},{3935,7322,3},{3935,7315,3},{3937,7308,3}, {3937,7300,3},{3937,7292,3},{3935,7285,3},{3935,7277,3},{3938,7268,3},{3938,7263,3}, {3935,7258,3},{3938,7252,3},{3937,7248,3},{3933,7242,3},{3933,7235,3},{3930,7230,3}, {3923,7227,3},{3918,7225,3},{3918,7223,3},{3923,7222,3},{3927,7217,3},{3927,7212,3}, {3930,7208,3},{3937,7203,3},{3935,7202,3},{3933,7195,3},{3928,7192,3},{3928,7185,3}, {3928,7178,3},{3935,7175,3},{3940,7180,3},{3945,7177,3},{3945,7168,3},{3945,7162,3}, {3947,7155,3},{3953,7155,3},{3958,7155,3},{3960,7148,3},{3957,7142,3},{3957,7133,3}, {3955,7133,3},{3952,7128,3},{3955,7125,3},{3953,7123,3},{3950,7117,3},{3950,7108,3}, {3947,7108,3},{3942,7107,3},{3940,7100,3},{3943,7093,3},{3938,7092,3},{3938,7083,3}, {3940,7077,3},{3947,7077,3},{3950,7070,3},{3957,7067,3},{3958,7062,3},{3960,7055,3}, {3962,7050,3},{3958,7045,3},{3958,7043,3},{3958,7037,3},{3953,7030,3},{3953,7027,3}, {3955,7025,3},{3960,7020,3},{3955,7017,3},{3958,7012,3},{3953,7005,3},{3955,7007,3}, {3957,7003,3},{3953,7002,3},{3955,6998,3},{3957,6998,3},{3957,6990,3},{3953,6987,3}, {3957,6982,3},{3958,6975,3},{3958,6967,3},{3957,6960,3},{3955,6953,3},{3953,6947,3}, {3955,6940,3},{3952,6937,3},{3953,6933,3},{3958,6937,3},{3960,6933,3},{3967,6932,3}, {3973,6930,3},{3978,6928,3},{3983,6930,3},{3988,6930,3},{3993,6935,3},{4000,6935,3}, {4000,6938,3},{3998,6940,3},{3990,6943,3},{3990,6945,3},{3990,6948,3},{3992,6950,3}, {3998,6953,3},{4003,6950,3},{4008,6953,3},{4012,6962,3},{4012,6970,3},{4015,6977,3}, {4017,6983,3},{4018,6990,3},{4022,6998,3},{4023,7005,3},{4020,7010,3},{4017,7017,3}, {4013,7022,3},{4012,7030,3},{4010,7037,3},{4007,7043,3},{4005,7050,3},{4002,7057,3}, {3998,7052,3},{3993,7047,3},{3993,7050,3},{3995,7057,3},{3997,7063,3},{4002,7065,3}, {4008,7067,3},{4008,7068,3},{4008,7072,3},{4012,7082,3},{4017,7085,3},{4015,7092,3}, {4017,7097,3},{4023,7097,3},{3825,6837,131},{3830,6830,3},{3833,6823,3}, {3838,6822,3},{3842,6815,3},{3842,6812,3},{3847,6815,3},{3852,6810,3},{3858,6807,3}, {3865,6808,3},{3872,6807,3},{3873,6813,3},{3880,6807,3},{3882,6813,3},{3887,6820,3}, {3893,6820,3},{3897,6813,3},{3902,6812,3},{3902,6803,3},{3903,6797,3},{3902,6790,3}, {3900,6788,3},{3902,6782,3},{3900,6775,3},{3902,6768,3},{3908,6767,3},{3915,6768,3}, {3915,6763,3},{3918,6762,3},{3918,6757,3},{3920,6750,3},{3922,6743,3},{3930,6740,3}, {3932,6743,3},{3932,6752,3},{3935,6750,3},{3942,6748,3},{3948,6743,3},{3953,6745,3}, {3953,6748,3},{3958,6752,3},{3960,6763,3},{3963,6765,3},{3965,6770,3},{3965,6773,3}, {3965,6780,3},{3963,6788,3},{3960,6793,3},{3958,6802,3},{3957,6808,3},{3957,6815,3}, {3955,6823,3},{3955,6830,3},{3953,6837,3},{3955,6840,3},{3953,6847,3},{3955,6853,3}, {3957,6853,3},{3960,6858,3},{3968,6863,3},{3975,6860,3},{3975,6862,3},{3980,6865,3}, {3985,6867,3},{3987,6873,3},{3983,6877,3},{3987,6882,3},{3992,6880,3},{3998,6878,3}, {3998,6880,3},{3993,6883,3},{3987,6887,3},{3987,6890,3},{3992,6890,3},{3998,6885,3}, {4003,6882,3},{4008,6882,3},{4007,6883,3},{4003,6885,3},{4005,6887,3},{4007,6887,3}, {4007,6893,3},{4007,6900,3},{4008,6902,3},{4015,6898,3},{4013,6885,3},{4012,6877,3}, {4010,6868,3},{4010,6862,3},{4013,6853,3},{4015,6860,3},{4017,6867,3},{4020,6878,3}, {4020,6885,3},{4022,6893,3},{4022,6900,3},{4022,6908,3},{4020,6917,3},{4020,6923,3}, {4020,6930,3},{4022,6932,3},{4025,6925,3},{4028,6925,3},{4028,6927,3},{4028,6930,3}, {4035,6933,3},{4040,6930,3},{4045,6927,3},{4050,6927,3},{4055,6923,3},{4057,6927,3}, {4058,6933,3},{4060,6935,3},{4067,6935,3},{4073,6937,3},{4078,6940,3},{4078,6945,3}, {4075,6955,3},{4070,6957,3},{4067,6963,3},{4063,6968,3},{4065,6975,3},{4070,6980,3}, {4070,6982,3},{4072,6988,3},{4070,6992,3},{4073,6997,3},{4075,7005,3},{4078,7012,3}, {4083,7018,3},{4085,7025,3},{4087,7030,3},{4088,7037,3},{4092,7038,3},{4098,7040,3}, {4103,7042,3},{4103,7048,3},{4100,7053,3},{4093,7058,3},{4088,7063,3},{4083,7068,3}, {4078,7070,3},{4078,7068,3},{4082,7067,3},{4075,7067,3},{4075,7068,3},{4073,7078,3}, {4072,7078,3},{4065,7073,3},{4065,7068,3},{4062,7063,3},{4057,7058,3},{4055,7052,3}, {4050,7047,3},{4048,7040,3},{4047,7033,3},{4043,7033,3},{4042,7035,3},{4040,7035,3}, {4037,7040,3},{4038,7042,3},{4037,7048,3},{4033,7057,3},{4032,7057,3},{4025,7057,3}, {4020,7060,3},{4017,7065,3},{4017,7068,3},{4018,7075,3},{4020,7083,3},{4023,7090,3}, {4023,7097,3},{4017,7097,3},{4015,7092,3},{4017,7085,3},{4012,7082,3},{4008,7072,3}, {4008,7068,3},{4008,7067,3},{4002,7065,3},{3997,7063,3},{3995,7057,3},{3993,7050,3}, {3993,7047,3},{3998,7052,3},{4002,7057,3},{4005,7050,3},{4007,7043,3},{4010,7037,3}, {4012,7030,3},{4013,7022,3},{4017,7017,3},{4020,7010,3},{4023,7005,3},{4022,6998,3}, {4018,6990,3},{4017,6983,3},{4015,6977,3},{4012,6970,3},{4012,6962,3},{4008,6953,3}, {4003,6950,3},{3998,6953,3},{3992,6950,3},{3990,6948,3},{3990,6945,3},{3990,6943,3}, {3998,6940,3},{4000,6938,3},{4000,6935,3},{3993,6935,3},{3988,6930,3},{3983,6930,3}, {3978,6928,3},{3973,6930,3},{3967,6932,3},{3960,6933,3},{3958,6937,3},{3953,6933,3}, {3952,6937,3},{3955,6940,3},{3953,6947,3},{3955,6953,3},{3957,6960,3},{3958,6967,3}, {3958,6975,3},{3957,6982,3},{3953,6987,3},{3957,6990,3},{3957,6998,3},{3955,6998,3}, {3953,7002,3},{3957,7003,3},{3955,7007,3},{3953,7005,3},{3958,7012,3},{3955,7017,3}, {3960,7020,3},{3955,7025,3},{3953,7027,3},{3953,7030,3},{3958,7037,3},{3958,7043,3}, {3958,7045,3},{3962,7050,3},{3960,7055,3},{3958,7062,3},{3957,7067,3},{3950,7070,3}, {3947,7077,3},{3940,7077,3},{3938,7083,3},{3938,7092,3},{3943,7093,3},{3940,7100,3}, {3942,7107,3},{3947,7108,3},{3950,7108,3},{3950,7117,3},{3953,7123,3},{3955,7125,3}, {3952,7128,3},{3955,7133,3},{3957,7133,3},{3957,7142,3},{3960,7148,3},{3958,7155,3}, {3953,7155,3},{3947,7155,3},{3945,7162,3},{3945,7168,3},{3945,7177,3},{3940,7180,3}, {3935,7175,3},{3928,7178,3},{3928,7185,3},{3928,7192,3},{3933,7195,3},{3935,7202,3}, {3937,7203,3},{3930,7208,3},{3927,7212,3},{3927,7217,3},{3923,7222,3},{3918,7223,3}, {3918,7225,3},{3923,7227,3},{3930,7230,3},{3933,7235,3},{3933,7242,3},{3937,7248,3}, {3938,7252,3},{3935,7258,3},{3938,7263,3},{3938,7268,3},{3935,7277,3},{3935,7285,3}, {3937,7292,3},{3937,7300,3},{3937,7308,3},{3935,7315,3},{3935,7322,3},{3940,7323,3}, {3938,7332,3},{3940,7335,3},{3945,7338,3},{3947,7347,3},{3945,7355,3},{3947,7362,3}, {3947,7367,3},{3943,7365,3},{3935,7367,3},{3923,7362,3},{3917,7367,3},{3915,7370,3}, {3908,7372,3},{3900,7383,3},{3897,7385,3},{3893,7383,3},{3892,7373,3},{3887,7370,3}, {3880,7377,3},{3873,7375,3},{3870,7378,3},{3862,7382,3},{3853,7395,3},{3855,7408,3}, {3860,7407,3},{3862,7412,3},{3867,7413,3},{3868,7417,3},{3865,7420,3},{3865,7425,3}, {3867,7435,3},{3858,7465,3},{3853,7472,3},{3853,7478,3},{3847,7485,3},{3838,7487,3}, {3830,7480,3},{3820,7480,3},{3808,7482,3},{3802,7492,3},{3793,7492,3},{3792,7490,3}, {3788,7493,3},{3785,7490,3},{3778,7498,3},{3773,7495,3},{3770,7495,3},{3765,7490,3}, {3757,7495,3},{3752,7505,3},{3743,7513,3},{3740,7518,3},{3738,7512,3},{3732,7510,3}, {3728,7497,3},{3723,7493,3},{3723,7490,3},{3725,7488,3},{3733,7482,3},{3740,7468,3}, {3738,7463,3},{3738,7455,3},{3740,7448,3},{3740,7440,3},{3743,7437,3},{3740,7432,3}, {3740,7423,3},{3737,7423,3},{3733,7420,3},{3732,7407,3},{3727,7393,3},{3727,7387,3}, {3723,7382,3},{3723,7377,3},{3722,7373,3},{3723,7372,3},{3725,7368,3},{3723,7363,3}, {3727,7362,3},{3730,7365,3},{3732,7373,3},{3733,7377,3},{3743,7378,3},{3743,7362,3}, {3747,7353,3},{3748,7343,3},{3745,7337,3},{3747,7330,3},{3740,7320,3},{3740,7315,3}, {3732,7307,3},{3730,7298,3},{3725,7288,3},{3723,7280,3},{3708,7270,3},{3707,7267,3}, {3702,7267,3},{3703,7262,3},{3700,7253,3},{3700,7242,3},{3698,7230,3},{3693,7222,3}, {3670,7185,3},{3668,7177,3},{3668,7168,3},{3670,7162,3},{3677,7155,3},{3685,7153,3}, {3695,7145,3},{3698,7147,3},{3708,7143,3},{3720,7145,3},{3728,7148,3},{3737,7150,3}, {3742,7148,3},{3747,7152,3},{3755,7150,3},{3772,7153,3},{3777,7153,3},{3782,7158,3}, {3790,7160,3},{3795,7155,3},{3795,7152,3},{3788,7133,3},{3792,7130,3},{3792,7125,3}, {3798,7127,3},{3817,7137,3},{3825,7137,3},{3830,7132,3},{3832,7123,3},{3838,7115,3}, {3840,7110,3},{3840,7105,3},{3845,7102,3},{3847,7095,3},{3847,7093,3},{3845,7095,3}, {3843,7093,3},{3845,7087,3},{3845,7077,3},{3842,7073,3},{3842,7067,3},{3840,7067,3}, {3838,7068,3},{3835,7060,3},{3828,7058,3},{3825,7055,3},{3812,7047,3},{3810,7042,3}, {3805,7035,3},{3802,7035,3},{3797,7025,3},{3793,7025,3},{3793,7023,3},{3792,7020,3}, {3793,7017,3},{3787,7017,3},{3782,7025,3},{3770,7028,3},{3765,7025,3},{3762,7025,3}, {3762,7022,3},{3758,7020,3},{3753,7017,3},{3753,7013,3},{3755,7002,3},{3758,6995,3}, {3760,6993,3},{3762,6990,3},{3758,6980,3},{3760,6973,3},{3758,6968,3},{3757,6965,3}, {3758,6952,3},{3753,6948,3},{3745,6938,3},{3738,6937,3},{3735,6938,3},{3730,6942,3}, {3723,6942,3},{3723,6945,3},{3720,6942,3},{3717,6940,3},{3712,6933,3},{3710,6925,3}, {3717,6912,3},{3720,6910,3},{3725,6903,3},{3732,6898,3},{3733,6888,3},{3732,6888,3}, {3728,6892,3},{3727,6890,3},{3732,6887,3},{3733,6883,3},{3732,6880,3},{3725,6882,3}, {3725,6880,3},{3727,6877,3},{3727,6867,3},{3725,6867,3},{3723,6863,3},{3720,6863,3}, {3718,6855,3},{3717,6852,3},{3715,6842,3},{3712,6842,3},{3710,6838,3},{3710,6830,3}, {3708,6828,3},{3702,6827,3},{3700,6825,3},{3702,6818,3},{3692,6803,3},{3693,6800,3}, {3698,6797,3},{3702,6792,3},{3707,6788,3},{3710,6778,3},{3718,6778,3},{3720,6780,3}, {3727,6783,3},{3735,6783,3},{3747,6783,3},{3755,6788,3},{3763,6793,3},{3768,6798,3}, {3773,6805,3},{3780,6808,3},{3788,6813,3},{3788,6822,3},{3792,6828,3},{3798,6828,3}, {3803,6832,3},{3810,6837,3},{3820,6840,3},{3825,6837,3},{2987,6087,131}, {2993,6093,3},{2998,6098,3},{3002,6102,3},{3007,6107,3},{3010,6110,3},{3015,6115,3}, {3020,6118,3},{3023,6123,3},{3028,6127,3},{3032,6132,3},{3037,6135,3},{3040,6140,3}, {3045,6143,3},{3050,6148,3},{3053,6152,3},{3058,6157,3},{3062,6160,3},{3067,6163,3}, {3072,6168,3},{3075,6172,3},{3080,6177,3},{3083,6182,3},{3088,6182,3},{3095,6180,3}, {3102,6185,3},{3113,6180,3},{3118,6182,3},{3125,6177,3},{3132,6177,3},{3138,6172,3}, {3140,6162,3},{3140,6155,3},{3142,6148,3},{3142,6142,3},{3143,6135,3},{3143,6130,3}, {3145,6123,3},{3145,6117,3},{3147,6110,3},{3147,6103,3},{3148,6097,3},{3148,6092,3}, {3150,6085,3},{3157,6083,3},{3162,6082,3},{3167,6082,3},{3173,6083,3},{3187,6082,3}, {3195,6082,3},{3198,6080,3},{3202,6082,3},{3203,6080,3},{3208,6083,3},{3213,6083,3}, {3218,6085,3},{3223,6085,3},{3228,6083,3},{3233,6082,3},{3238,6080,3},{3243,6078,3}, {3248,6078,3},{3253,6075,3},{3258,6073,3},{3263,6072,3},{3268,6070,3},{3273,6068,3}, {3278,6067,3},{3283,6065,3},{3288,6065,3},{3293,6062,3},{3298,6060,3},{3307,6058,3}, {3315,6058,3},{3337,6077,3},{3342,6085,3},{3348,6085,3},{3350,6093,3},{3352,6095,3}, {3355,6090,3},{3357,6067,3},{3363,6053,3},{3373,6050,3},{3382,6055,3},{3413,6050,3}, {3420,6055,3},{3425,6062,3},{3428,6068,3},{3432,6067,3},{3432,6092,3},{3440,6083,3}, {3447,6080,3},{3448,6077,3},{3452,6075,3},{3452,6072,3},{3455,6075,3},{3457,6085,3}, {3463,6092,3},{3465,6097,3},{3473,6098,3},{3482,6107,3},{3493,6107,3},{3502,6112,3}, {3507,6112,3},{3510,6115,3},{3513,6113,3},{3518,6110,3},{3520,6112,3},{3523,6110,3}, {3528,6110,3},{3530,6118,3},{3540,6120,3},{3543,6123,3},{3548,6123,3},{3552,6128,3}, {3555,6128,3},{3560,6128,3},{3563,6128,3},{3563,6137,3},{3563,6138,3},{3560,6137,3}, {3560,6140,3},{3557,6140,3},{3555,6145,3},{3552,6147,3},{3545,6160,3},{3542,6180,3}, {3545,6197,3},{3545,6203,3},{3533,6215,3},{3532,6223,3},{3530,6227,3},{3522,6228,3}, {3520,6227,3},{3513,6232,3},{3528,6247,3},{3528,6252,3},{3523,6255,3},{3522,6262,3}, {3525,6272,3},{3528,6275,3},{3542,6298,3},{3543,6310,3},{3553,6313,3},{3555,6310,3}, {3563,6310,3},{3570,6323,3},{3577,6315,3},{3577,6313,3},{3580,6313,3},{3583,6310,3}, {3587,6312,3},{3585,6330,3},{3587,6337,3},{3590,6353,3},{3597,6360,3},{3598,6378,3}, {3603,6392,3},{3603,6400,3},{3600,6407,3},{3608,6407,3},{3612,6410,3},{3617,6418,3}, {3617,6427,3},{3615,6428,3},{3622,6433,3},{3625,6447,3},{3640,6460,3},{3650,6463,3}, {3660,6462,3},{3665,6462,3},{3693,6480,3},{3707,6478,3},{3712,6478,3},{3725,6507,3}, {3723,6523,3},{3725,6530,3},{3725,6555,3},{3735,6565,3},{3745,6565,3},{3752,6568,3}, {3753,6572,3},{3753,6577,3},{3757,6578,3},{3750,6585,3},{3743,6608,3},{3737,6617,3}, {3737,6623,3},{3732,6630,3},{3735,6642,3},{3732,6643,3},{3733,6647,3},{3737,6652,3}, {3737,6662,3},{3733,6667,3},{3737,6677,3},{3738,6700,3},{3735,6710,3},{3732,6710,3}, {3728,6712,3},{3725,6718,3},{3718,6725,3},{3722,6740,3},{3728,6750,3},{3727,6753,3}, {3722,6755,3},{3725,6760,3},{3723,6773,3},{3718,6778,3},{3710,6778,3},{3707,6788,3}, {3702,6792,3},{3698,6797,3},{3693,6800,3},{3692,6803,3},{3702,6818,3},{3700,6825,3}, {3702,6827,3},{3708,6828,3},{3710,6830,3},{3710,6838,3},{3712,6842,3},{3715,6842,3}, {3717,6852,3},{3718,6855,3},{3720,6863,3},{3723,6863,3},{3725,6867,3},{3727,6867,3}, {3727,6877,3},{3725,6880,3},{3725,6882,3},{3732,6880,3},{3733,6883,3},{3732,6887,3}, {3727,6890,3},{3728,6892,3},{3732,6888,3},{3733,6888,3},{3732,6898,3},{3725,6903,3}, {3720,6910,3},{3717,6912,3},{3710,6925,3},{3712,6933,3},{3717,6940,3},{3720,6942,3}, {3723,6945,3},{3723,6942,3},{3730,6942,3},{3735,6938,3},{3738,6937,3},{3745,6938,3}, {3753,6948,3},{3758,6952,3},{3757,6965,3},{3758,6968,3},{3760,6973,3},{3758,6980,3}, {3762,6990,3},{3760,6993,3},{3758,6995,3},{3755,7002,3},{3753,7013,3},{3753,7017,3}, {3758,7020,3},{3762,7022,3},{3762,7025,3},{3765,7025,3},{3770,7028,3},{3782,7025,3}, {3787,7017,3},{3793,7017,3},{3792,7020,3},{3793,7023,3},{3793,7025,3},{3797,7025,3}, {3802,7035,3},{3805,7035,3},{3810,7042,3},{3812,7047,3},{3825,7055,3},{3828,7058,3}, {3835,7060,3},{3838,7068,3},{3840,7067,3},{3842,7067,3},{3842,7073,3},{3845,7077,3}, {3845,7087,3},{3843,7093,3},{3845,7095,3},{3847,7093,3},{3847,7095,3},{3845,7102,3}, {3840,7105,3},{3840,7110,3},{3838,7115,3},{3832,7123,3},{3830,7132,3},{3825,7137,3}, {3817,7137,3},{3798,7127,3},{3792,7125,3},{3792,7130,3},{3788,7133,3},{3795,7152,3}, {3795,7155,3},{3790,7160,3},{3782,7158,3},{3777,7153,3},{3772,7153,3},{3755,7150,3}, {3747,7152,3},{3742,7148,3},{3737,7150,3},{3728,7148,3},{3720,7145,3},{3708,7143,3}, {3698,7147,3},{3695,7145,3},{3685,7153,3},{3677,7155,3},{3670,7162,3},{3668,7168,3}, {3668,7177,3},{3670,7185,3},{3693,7222,3},{3698,7230,3},{3700,7242,3},{3700,7253,3}, {3703,7262,3},{3702,7267,3},{3707,7267,3},{3708,7270,3},{3723,7280,3},{3725,7288,3}, {3730,7298,3},{3732,7307,3},{3740,7315,3},{3740,7320,3},{3747,7330,3},{3745,7337,3}, {3748,7343,3},{3747,7353,3},{3743,7362,3},{3743,7378,3},{3733,7377,3},{3732,7373,3}, {3730,7365,3},{3727,7362,3},{3723,7363,3},{3725,7368,3},{3723,7372,3},{3722,7373,3}, {3723,7377,3},{3723,7382,3},{3727,7387,3},{3727,7393,3},{3732,7407,3},{3733,7420,3}, {3737,7423,3},{3740,7423,3},{3740,7432,3},{3743,7437,3},{3740,7440,3},{3740,7448,3}, {3738,7455,3},{3738,7463,3},{3740,7468,3},{3733,7482,3},{3725,7488,3},{3723,7490,3}, {3722,7482,3},{3723,7480,3},{3730,7475,3},{3727,7470,3},{3727,7467,3},{3723,7465,3}, {3725,7460,3},{3723,7458,3},{3723,7452,3},{3718,7447,3},{3718,7440,3},{3717,7438,3}, {3713,7440,3},{3708,7450,3},{3703,7453,3},{3703,7457,3},{3697,7455,3},{3702,7448,3}, {3700,7442,3},{3697,7435,3},{3690,7425,3},{3690,7415,3},{3683,7412,3},{3682,7403,3}, {3690,7385,3},{3692,7367,3},{3690,7358,3},{3688,7355,3},{3690,7348,3},{3688,7337,3}, {3687,7330,3},{3688,7323,3},{3688,7310,3},{3685,7302,3},{3687,7297,3},{3683,7287,3}, {3682,7257,3},{3677,7247,3},{3675,7232,3},{3672,7218,3},{3670,7217,3},{3667,7220,3}, {3665,7218,3},{3663,7207,3},{3658,7207,3},{3658,7202,3},{3650,7190,3},{3648,7180,3}, {3647,7178,3},{3642,7182,3},{3640,7180,3},{3640,7177,3},{3647,7165,3},{3647,7163,3}, {3640,7160,3},{3637,7157,3},{3633,7158,3},{3632,7150,3},{3622,7142,3},{3620,7133,3}, {3617,7133,3},{3613,7125,3},{3610,7123,3},{3605,7118,3},{3597,7128,3},{3595,7138,3}, {3590,7138,3},{3587,7143,3},{3578,7150,3},{3575,7148,3},{3572,7155,3},{3562,7152,3}, {3557,7162,3},{3550,7160,3},{3542,7165,3},{3533,7155,3},{3530,7155,3},{3520,7167,3}, {3513,7162,3},{3512,7157,3},{3508,7153,3},{3505,7153,3},{3502,7153,3},{3495,7150,3}, {3488,7132,3},{3487,7130,3},{3482,7128,3},{3477,7123,3},{3475,7123,3},{3473,7118,3}, {3467,7110,3},{3462,7110,3},{3457,7108,3},{3455,7098,3},{3450,7098,3},{3447,7100,3}, {3438,7108,3},{3437,7115,3},{3435,7117,3},{3427,7112,3},{3417,7113,3},{3412,7108,3}, {3407,7108,3},{3405,7107,3},{3403,7100,3},{3402,7098,3},{3402,7090,3},{3398,7092,3}, {3397,7088,3},{3395,7078,3},{3397,7033,3},{3398,7030,3},{3400,7020,3},{3402,7017,3}, {3402,7010,3},{3405,7000,3},{3403,6990,3},{3402,6990,3},{3398,6990,3},{3393,6987,3}, {3390,6990,3},{3385,6992,3},{3382,6995,3},{3375,6998,3},{3373,7010,3},{3373,7013,3}, {3367,7015,3},{3363,7020,3},{3360,7020,3},{3352,7017,3},{3347,7020,3},{3347,7023,3}, {3342,7028,3},{3333,7033,3},{3320,7015,3},{3320,7007,3},{3313,7003,3},{3313,6997,3}, {3308,6988,3},{3310,6983,3},{3313,6978,3},{3308,6970,3},{3308,6968,3},{3308,6958,3}, {3303,6950,3},{3300,6948,3},{3287,6952,3},{3285,6948,3},{3277,6940,3},{3273,6943,3}, {3267,6945,3},{3257,6938,3},{3253,6928,3},{3245,6925,3},{3232,6928,3},{3215,6927,3}, {3193,6933,3},{3187,6922,3},{3177,6917,3},{3165,6903,3},{3165,6895,3},{3162,6893,3}, {3160,6883,3},{3162,6880,3},{3167,6878,3},{3170,6873,3},{3178,6870,3},{3178,6862,3}, {3182,6858,3},{3183,6855,3},{3180,6845,3},{3178,6843,3},{3177,6857,3},{3173,6853,3}, {3177,6837,3},{3178,6827,3},{3182,6823,3},{3183,6817,3},{3177,6813,3},{3173,6808,3}, {3170,6807,3},{3167,6800,3},{3163,6798,3},{3163,6787,3},{3158,6782,3},{3153,6772,3}, {3153,6758,3},{3147,6762,3},{3143,6762,3},{3140,6767,3},{3142,6773,3},{3140,6778,3}, {3135,6780,3},{3133,6778,3},{3133,6772,3},{3127,6762,3},{3127,6758,3},{3122,6738,3}, {3122,6728,3},{3122,6720,3},{3125,6717,3},{3125,6705,3},{3125,6703,3},{3132,6705,3}, {3132,6697,3},{3128,6685,3},{3122,6680,3},{3122,6672,3},{3108,6668,3},{3098,6658,3}, {3093,6640,3},{3057,6628,3},{3052,6630,3},{3050,6633,3},{3045,6635,3},{3030,6632,3}, {3023,6633,3},{3007,6623,3},{3005,6625,3},{2995,6637,3},{2995,6633,3},{2990,6632,3}, {2985,6625,3},{2983,6618,3},{2982,6612,3},{2980,6607,3},{2978,6600,3},{2977,6593,3}, {2975,6588,3},{2975,6582,3},{2973,6577,3},{2972,6570,3},{2970,6563,3},{2968,6558,3}, {2967,6552,3},{2965,6547,3},{2963,6540,3},{2962,6533,3},{2960,6528,3},{2958,6522,3}, {2957,6517,3},{2957,6510,3},{2953,6503,3},{2955,6498,3},{2957,6492,3},{2957,6485,3}, {2958,6480,3},{2958,6473,3},{2958,6467,3},{2958,6462,3},{2958,6455,3},{2958,6450,3}, {2957,6443,3},{2955,6438,3},{2953,6432,3},{2952,6427,3},{2950,6420,3},{2945,6417,3}, {2942,6413,3},{2938,6412,3},{2940,6407,3},{2943,6402,3},{2943,6397,3},{2945,6390,3}, {2947,6383,3},{2947,6377,3},{2948,6372,3},{2950,6365,3},{2950,6358,3},{2950,6353,3}, {2950,6347,3},{2948,6342,3},{2948,6335,3},{2948,6330,3},{2947,6323,3},{2947,6317,3}, {2947,6312,3},{2945,6305,3},{2945,6298,3},{2945,6292,3},{2943,6287,3},{2943,6280,3}, {2943,6273,3},{2942,6268,3},{2942,6262,3},{2942,6257,3},{2940,6248,3},{2942,6243,3}, {2943,6238,3},{2945,6232,3},{2947,6225,3},{2948,6220,3},{2950,6213,3},{2952,6207,3}, {2953,6202,3},{2955,6195,3},{2957,6188,3},{2958,6183,3},{2960,6177,3},{2962,6172,3}, {2965,6165,3},{2967,6158,3},{2968,6153,3},{2970,6147,3},{2972,6140,3},{2973,6135,3}, {2975,6128,3},{2977,6122,3},{2978,6117,3},{2980,6110,3},{2982,6103,3},{2983,6098,3}, {2985,6092,3},{2987,6087,3},{4132,5600,131},{4137,5600,3},{4143,5600,3}, {4148,5600,3},{4153,5600,3},{4160,5600,3},{4165,5600,3},{4170,5600,3},{4177,5600,3}, {4182,5600,3},{4187,5600,3},{4193,5600,3},{4198,5600,3},{4203,5600,3},{4210,5600,3}, {4215,5600,3},{4220,5600,3},{4227,5600,3},{4232,5600,3},{4237,5600,3},{4242,5600,3}, {4248,5600,3},{4253,5600,3},{4258,5600,3},{4265,5600,3},{4270,5600,3},{4275,5600,3}, {4282,5600,3},{4287,5600,3},{4292,5600,3},{4298,5600,3},{4303,5600,3},{4308,5600,3}, {4315,5600,3},{4320,5600,3},{4325,5600,3},{4332,5600,3},{4337,5600,3},{4342,5600,3}, {4348,5600,3},{4353,5600,3},{4358,5600,3},{4365,5600,3},{4370,5600,3},{4375,5600,3}, {4382,5600,3},{4387,5600,3},{4392,5600,3},{4397,5600,3},{4403,5600,3},{4408,5600,3}, {4413,5600,3},{4420,5600,3},{4425,5600,3},{4430,5600,3},{4437,5600,3},{4442,5600,3}, {4447,5600,3},{4453,5600,3},{4458,5600,3},{4463,5600,3},{4470,5600,3},{4475,5600,3}, {4480,5600,3},{4487,5600,3},{4492,5600,3},{4497,5600,3},{4500,5600,3},{4502,5608,3}, {4503,5615,3},{4507,5630,3},{4508,5637,3},{4512,5647,3},{4513,5658,3},{4517,5668,3}, {4518,5677,3},{4522,5692,3},{4523,5700,3},{4525,5708,3},{4528,5720,3},{4530,5728,3}, {4532,5735,3},{4533,5750,3},{4537,5758,3},{4538,5767,3},{4540,5775,3},{4542,5785,3}, {4545,5798,3},{4548,5813,3},{4550,5820,3},{4553,5832,3},{4557,5843,3},{4558,5852,3}, {4560,5860,3},{4555,5855,3},{4542,5852,3},{4535,5845,3},{4525,5837,3},{4510,5833,3}, {4505,5827,3},{4483,5818,3},{4468,5822,3},{4462,5830,3},{4460,5830,3},{4458,5825,3}, {4452,5820,3},{4450,5822,3},{4443,5820,3},{4440,5822,3},{4427,5825,3},{4417,5840,3}, {4402,5838,3},{4390,5833,3},{4377,5833,3},{4368,5838,3},{4365,5843,3},{4363,5843,3}, {4367,5857,3},{4370,5860,3},{4370,5867,3},{4372,5870,3},{4372,5873,3},{4370,5870,3}, {4368,5872,3},{4373,5883,3},{4373,5885,3},{4373,5893,3},{4375,5897,3},{4373,5897,3}, {4372,5897,3},{4370,5895,3},{4368,5897,3},{4372,5902,3},{4377,5902,3},{4380,5898,3}, {4382,5890,3},{4382,5883,3},{4390,5885,3},{4385,5897,3},{4388,5895,3},{4393,5882,3}, {4393,5873,3},{4393,5887,3},{4388,5895,3},{4380,5905,3},{4372,5908,3},{4368,5913,3}, {4373,5915,3},{4375,5918,3},{4378,5917,3},{4380,5918,3},{4380,5930,3},{4377,5933,3}, {4373,5940,3},{4380,5950,3},{4373,5950,3},{4370,5955,3},{4367,5965,3},{4367,5968,3}, {4367,5977,3},{4363,5980,3},{4362,5968,3},{4358,5968,3},{4347,5972,3},{4343,5977,3}, {4338,5975,3},{4340,5980,3},{4345,5983,3},{4345,5987,3},{4347,5990,3},{4347,5997,3}, {4350,5998,3},{4348,6002,3},{4348,6005,3},{4352,6010,3},{4350,6010,3},{4348,6010,3}, {4347,6015,3},{4348,6018,3},{4358,6018,3},{4357,6023,3},{4360,6035,3},{4360,6037,3}, {4358,6037,3},{4363,6040,3},{4363,6043,3},{4358,6042,3},{4358,6047,3},{4357,6047,3}, {4362,6048,3},{4358,6052,3},{4363,6052,3},{4360,6055,3},{4355,6057,3},{4360,6063,3}, {4358,6067,3},{4358,6070,3},{4362,6070,3},{4360,6073,3},{4362,6073,3},{4358,6077,3}, {4367,6080,3},{4365,6082,3},{4360,6080,3},{4360,6085,3},{4358,6085,3},{4360,6090,3}, {4365,6088,3},{4368,6090,3},{4368,6093,3},{4363,6098,3},{4363,6102,3},{4365,6103,3}, {4367,6100,3},{4370,6100,3},{4373,6100,3},{4380,6105,3},{4378,6100,3},{4380,6100,3}, {4383,6100,3},{4382,6095,3},{4385,6093,3},{4383,6090,3},{4380,6090,3},{4385,6087,3}, {4388,6090,3},{4390,6085,3},{4393,6085,3},{4387,6082,3},{4388,6078,3},{4387,6077,3}, {4388,6075,3},{4393,6075,3},{4397,6073,3},{4402,6073,3},{4403,6073,3},{4400,6078,3}, {4403,6082,3},{4402,6083,3},{4402,6085,3},{4407,6087,3},{4407,6088,3},{4422,6090,3}, {4422,6095,3},{4418,6097,3},{4422,6098,3},{4433,6097,3},{4432,6100,3},{4423,6103,3}, {4417,6102,3},{4417,6107,3},{4410,6110,3},{4422,6108,3},{4423,6105,3},{4435,6103,3}, {4438,6105,3},{4435,6107,3},{4433,6107,3},{4432,6108,3},{4423,6110,3},{4422,6113,3}, {4418,6113,3},{4422,6115,3},{4428,6112,3},{4422,6118,3},{4413,6128,3},{4410,6132,3}, {4405,6137,3},{4402,6142,3},{4397,6147,3},{4392,6153,3},{4387,6158,3},{4378,6168,3}, {4372,6175,3},{4363,6183,3},{4358,6190,3},{4352,6198,3},{4350,6200,3},{4350,6213,3}, {4352,6222,3},{4353,6232,3},{4355,6242,3},{4355,6248,3},{4357,6258,3},{4358,6273,3}, {4362,6290,3},{4362,6298,3},{4363,6308,3},{4365,6320,3},{4367,6330,3},{4367,6338,3}, {4367,6345,3},{4365,6358,3},{4365,6367,3},{4363,6380,3},{4363,6392,3},{4362,6400,3}, {4362,6415,3},{4362,6422,3},{4360,6432,3},{4360,6447,3},{4360,6453,3},{4363,6462,3}, {4368,6477,3},{4372,6485,3},{4373,6492,3},{4377,6500,3},{4378,6508,3},{4377,6515,3}, {4372,6518,3},{4362,6525,3},{4357,6528,3},{4352,6533,3},{4345,6542,3},{4342,6548,3}, {4337,6557,3},{4330,6565,3},{4320,6568,3},{4315,6572,3},{4307,6573,3},{4302,6577,3}, {4295,6580,3},{4290,6582,3},{4287,6583,3},{4290,6592,3},{4293,6600,3},{4297,6610,3}, {4288,6610,3},{4278,6610,3},{4268,6610,3},{4262,6610,3},{4255,6610,3},{4247,6610,3}, {4237,6610,3},{4235,6610,3},{4238,6602,3},{4232,6602,3},{4227,6602,3},{4222,6602,3}, {4217,6602,3},{4212,6602,3},{4205,6602,3},{4200,6602,3},{4195,6602,3},{4193,6610,3}, {4192,6622,3},{4192,6630,3},{4190,6642,3},{4190,6653,3},{4183,6653,3},{4177,6655,3}, {4168,6655,3},{4158,6657,3},{4152,6658,3},{4142,6658,3},{4135,6660,3},{4128,6660,3}, {4125,6660,3},{4125,6673,3},{4123,6682,3},{4123,6693,3},{4123,6700,3},{4122,6712,3}, {4122,6725,3},{4120,6733,3},{4122,6740,3},{4120,6752,3},{4120,6760,3},{4120,6767,3}, {4120,6775,3},{4120,6778,3},{4117,6785,3},{4118,6790,3},{4120,6798,3},{4118,6805,3}, {4117,6807,3},{4115,6818,3},{4113,6827,3},{4112,6835,3},{4112,6843,3},{4108,6847,3}, {4108,6850,3},{4102,6852,3},{4100,6855,3},{4103,6860,3},{4100,6862,3},{4100,6865,3}, {4098,6867,3},{4097,6863,3},{4095,6863,3},{4093,6865,3},{4097,6872,3},{4102,6875,3}, {4108,6880,3},{4115,6887,3},{4120,6892,3},{4120,6895,3},{4125,6898,3},{4130,6898,3}, {4135,6903,3},{4133,6907,3},{4138,6912,3},{4142,6917,3},{4145,6922,3},{4147,6928,3}, {4145,6935,3},{4145,6942,3},{4150,6940,3},{4155,6945,3},{4157,6952,3},{4162,6957,3}, {4165,6962,3},{4167,6968,3},{4170,6975,3},{4172,6983,3},{4170,6990,3},{4172,6995,3}, {4178,6998,3},{4177,7002,3},{4177,7003,3},{4182,7007,3},{4183,7015,3},{4190,7018,3}, {4193,7023,3},{4197,7032,3},{4198,7033,3},{4203,7032,3},{4207,7037,3},{4212,7040,3}, {4213,7042,3},{4210,7048,3},{4207,7055,3},{4202,7058,3},{4200,7060,3},{4200,7063,3}, {4207,7065,3},{4212,7068,3},{4215,7073,3},{4220,7078,3},{4220,7087,3},{4225,7093,3}, {4227,7093,3},{4228,7102,3},{4228,7110,3},{4227,7115,3},{4222,7123,3},{4220,7125,3}, {4215,7123,3},{4213,7122,3},{4213,7115,3},{4208,7108,3},{4205,7103,3},{4203,7097,3}, {4205,7090,3},{4205,7087,3},{4200,7083,3},{4195,7085,3},{4192,7082,3},{4193,7075,3}, {4192,7075,3},{4192,7068,3},{4187,7063,3},{4182,7058,3},{4178,7052,3},{4172,7050,3}, {4168,7040,3},{4163,7035,3},{4160,7027,3},{4160,7020,3},{4155,7018,3},{4152,7018,3}, {4152,7025,3},{4152,7032,3},{4148,7037,3},{4145,7043,3},{4140,7048,3},{4142,7055,3}, {4145,7060,3},{4147,7068,3},{4147,7072,3},{4138,7077,3},{4135,7078,3},{4128,7078,3}, {4125,7080,3},{4120,7078,3},{4118,7078,3},{4118,7080,3},{4117,7082,3},{4123,7085,3}, {4120,7092,3},{4118,7095,3},{4117,7097,3},{4120,7102,3},{4117,7108,3},{4115,7112,3}, {4118,7118,3},{4117,7122,3},{4118,7122,3},{4118,7123,3},{4115,7128,3},{4112,7127,3}, {4110,7130,3},{4115,7133,3},{4117,7135,3},{4112,7138,3},{4110,7140,3},{4112,7143,3}, {4118,7145,3},{4123,7145,3},{4130,7145,3},{4132,7153,3},{4130,7157,3},{4133,7162,3}, {4138,7167,3},{4143,7167,3},{4147,7167,3},{4150,7162,3},{4153,7168,3},{4155,7170,3}, {4155,7172,3},{4150,7172,3},{4145,7170,3},{4143,7170,3},{4142,7170,3},{4145,7172,3}, {4147,7177,3},{4142,7182,3},{4137,7183,3},{4138,7187,3},{4132,7192,3},{4132,7193,3}, {4127,7190,3},{4120,7187,3},{4117,7193,3},{4117,7200,3},{4115,7207,3},{4117,7212,3}, {4115,7220,3},{4110,7222,3},{4105,7223,3},{4102,7218,3},{4100,7220,3},{4102,7228,3}, {4105,7233,3},{4105,7240,3},{4103,7248,3},{4103,7250,3},{4098,7248,3},{4098,7250,3}, {4093,7255,3},{4088,7258,3},{4087,7265,3},{4085,7273,3},{4087,7282,3},{4087,7285,3}, {4083,7290,3},{4082,7292,3},{4083,7298,3},{4083,7300,3},{4087,7298,3},{4088,7298,3}, {4085,7307,3},{4085,7313,3},{4080,7312,3},{4077,7305,3},{4073,7297,3},{4072,7290,3}, {4068,7283,3},{4067,7277,3},{4058,7277,3},{4057,7277,3},{4060,7268,3},{4053,7265,3}, {4052,7263,3},{4053,7257,3},{4057,7250,3},{4055,7248,3},{4060,7245,3},{4062,7242,3}, {4062,7238,3},{4062,7237,3},{4057,7242,3},{4052,7238,3},{4052,7242,3},{4047,7243,3}, {4042,7242,3},{4040,7242,3},{4043,7233,3},{4047,7227,3},{4050,7225,3},{4050,7218,3}, {4045,7215,3},{4045,7212,3},{4047,7210,3},{4040,7208,3},{4035,7203,3},{4032,7197,3}, {4027,7200,3},{4023,7195,3},{4025,7187,3},{4025,7185,3},{4020,7185,3},{4017,7178,3}, {4015,7173,3},{4018,7168,3},{4025,7167,3},{4025,7163,3},{4025,7162,3},{4020,7162,3}, {4018,7162,3},{4020,7155,3},{4023,7148,3},{4025,7150,3},{4027,7143,3},{4030,7137,3}, {4030,7130,3},{4033,7122,3},{4032,7115,3},{4030,7108,3},{4028,7102,3},{4027,7098,3}, {4027,7097,3},{4023,7097,3},{4023,7090,3},{4020,7083,3},{4018,7075,3},{4017,7068,3}, {4017,7065,3},{4020,7060,3},{4025,7057,3},{4032,7057,3},{4033,7057,3},{4037,7048,3}, {4038,7042,3},{4037,7040,3},{4040,7035,3},{4042,7035,3},{4043,7033,3},{4047,7033,3}, {4048,7040,3},{4050,7047,3},{4055,7052,3},{4057,7058,3},{4062,7063,3},{4065,7068,3}, {4065,7073,3},{4072,7078,3},{4073,7078,3},{4075,7068,3},{4075,7067,3},{4082,7067,3}, {4078,7068,3},{4078,7070,3},{4083,7068,3},{4088,7063,3},{4093,7058,3},{4100,7053,3}, {4103,7048,3},{4103,7042,3},{4098,7040,3},{4092,7038,3},{4088,7037,3},{4087,7030,3}, {4085,7025,3},{4083,7018,3},{4078,7012,3},{4075,7005,3},{4073,6997,3},{4070,6992,3}, {4072,6988,3},{4070,6982,3},{4070,6980,3},{4065,6975,3},{4063,6968,3},{4067,6963,3}, {4070,6957,3},{4075,6955,3},{4078,6945,3},{4078,6940,3},{4073,6937,3},{4067,6935,3}, {4060,6935,3},{4058,6933,3},{4057,6927,3},{4055,6923,3},{4050,6927,3},{4045,6927,3}, {4040,6930,3},{4035,6933,3},{4028,6930,3},{4028,6927,3},{4028,6925,3},{4025,6925,3}, {4022,6932,3},{4020,6930,3},{4020,6923,3},{4020,6917,3},{4022,6908,3},{4022,6900,3}, {4022,6893,3},{4020,6885,3},{4020,6878,3},{4017,6867,3},{4015,6860,3},{4013,6853,3}, {4010,6862,3},{4010,6868,3},{4012,6877,3},{4013,6885,3},{4015,6898,3},{4008,6902,3}, {4007,6900,3},{4007,6893,3},{4007,6887,3},{4005,6887,3},{4003,6885,3},{4007,6883,3}, {4008,6882,3},{4003,6882,3},{3998,6885,3},{3992,6890,3},{3987,6890,3},{3987,6887,3}, {3993,6883,3},{3998,6880,3},{3998,6878,3},{3992,6880,3},{3987,6882,3},{3983,6877,3}, {3987,6873,3},{3985,6867,3},{3980,6865,3},{3975,6862,3},{3975,6860,3},{3968,6863,3}, {3960,6858,3},{3957,6853,3},{3955,6853,3},{3953,6847,3},{3955,6840,3},{3953,6837,3}, {3955,6830,3},{3955,6823,3},{3957,6815,3},{3957,6808,3},{3958,6802,3},{3960,6793,3}, {3963,6788,3},{3965,6780,3},{3965,6773,3},{3965,6770,3},{3963,6765,3},{3960,6763,3}, {3958,6752,3},{3953,6748,3},{3953,6745,3},{3948,6743,3},{3942,6748,3},{3935,6750,3}, {3932,6752,3},{3932,6743,3},{3930,6740,3},{3922,6743,3},{3920,6750,3},{3918,6757,3}, {3918,6762,3},{3915,6763,3},{3915,6768,3},{3908,6767,3},{3902,6768,3},{3900,6775,3}, {3902,6782,3},{3900,6788,3},{3902,6790,3},{3903,6797,3},{3902,6803,3},{3902,6812,3}, {3897,6813,3},{3893,6820,3},{3887,6820,3},{3882,6813,3},{3880,6807,3},{3873,6813,3}, {3872,6807,3},{3865,6808,3},{3858,6807,3},{3852,6810,3},{3847,6815,3},{3842,6812,3}, {3842,6815,3},{3838,6822,3},{3833,6823,3},{3830,6830,3},{3825,6837,3},{3820,6840,3}, {3810,6837,3},{3803,6832,3},{3798,6828,3},{3792,6828,3},{3788,6822,3},{3788,6813,3}, {3780,6808,3},{3773,6805,3},{3768,6798,3},{3763,6793,3},{3755,6788,3},{3747,6783,3}, {3735,6783,3},{3727,6783,3},{3720,6780,3},{3718,6778,3},{3723,6773,3},{3725,6760,3}, {3722,6755,3},{3727,6753,3},{3728,6750,3},{3722,6740,3},{3718,6725,3},{3725,6718,3}, {3728,6712,3},{3732,6710,3},{3735,6710,3},{3738,6700,3},{3737,6677,3},{3733,6667,3}, {3737,6662,3},{3737,6652,3},{3738,6652,3},{3740,6652,3},{3742,6657,3},{3743,6663,3}, {3748,6663,3},{3753,6658,3},{3760,6653,3},{3768,6655,3},{3775,6653,3},{3782,6657,3}, {3788,6662,3},{3792,6667,3},{3797,6668,3},{3802,6662,3},{3803,6655,3},{3803,6643,3}, {3805,6638,3},{3807,6633,3},{3812,6627,3},{3817,6623,3},{3817,6620,3},{3818,6612,3}, {3822,6607,3},{3823,6600,3},{3827,6593,3},{3827,6585,3},{3823,6580,3},{3825,6570,3}, {3827,6563,3},{3830,6553,3},{3833,6543,3},{3838,6537,3},{3843,6527,3},{3848,6520,3}, {3852,6515,3},{3857,6508,3},{3862,6500,3},{3863,6493,3},{3867,6485,3},{3870,6480,3}, {3873,6473,3},{3877,6465,3},{3880,6458,3},{3883,6452,3},{3890,6443,3},{3895,6437,3}, {3898,6432,3},{3898,6430,3},{3895,6420,3},{3898,6413,3},{3903,6405,3},{3907,6398,3}, {3910,6393,3},{3915,6385,3},{3918,6378,3},{3923,6372,3},{3928,6367,3},{3935,6358,3}, {3940,6352,3},{3945,6342,3},{3947,6337,3},{3953,6327,3},{3957,6317,3},{3960,6312,3}, {3963,6307,3},{3967,6300,3},{3970,6295,3},{3973,6287,3},{3978,6280,3},{3982,6272,3}, {3987,6265,3},{3990,6257,3},{3997,6247,3},{4003,6243,3},{4010,6240,3},{4015,6242,3}, {4022,6240,3},{4028,6238,3},{4033,6238,3},{4038,6233,3},{4043,6235,3},{4045,6232,3}, {4048,6227,3},{4052,6220,3},{4055,6215,3},{4060,6212,3},{4065,6208,3},{4072,6205,3}, {4077,6203,3},{4082,6200,3},{4087,6200,3},{4092,6200,3},{4098,6198,3},{4103,6197,3}, {4105,6190,3},{4108,6190,3},{4112,6185,3},{4118,6175,3},{4122,6172,3},{4123,6165,3}, {4128,6160,3},{4127,6152,3},{4128,6145,3},{4125,6140,3},{4118,6138,3},{4115,6133,3}, {4115,6125,3},{4117,6118,3},{4120,6113,3},{4122,6107,3},{4123,6100,3},{4123,6093,3}, {4123,6087,3},{4123,6077,3},{4123,6068,3},{4122,6057,3},{4122,6047,3},{4125,6040,3}, {4130,6033,3},{4133,6027,3},{4137,6020,3},{4140,6013,3},{4145,6010,3},{4150,6010,3}, {4157,6013,3},{4162,6017,3},{4165,6013,3},{4172,6008,3},{4177,6007,3},{4182,6010,3}, {4180,6018,3},{4177,6023,3},{4177,6032,3},{4178,6030,3},{4182,6023,3},{4185,6015,3}, {4190,6012,3},{4192,6005,3},{4197,5995,3},{4200,5995,3},{4200,6003,3},{4203,6002,3}, {4208,6000,3},{4215,5997,3},{4217,6005,3},{4222,6000,3},{4223,5993,3},{4228,5990,3}, {4230,5982,3},{4227,5980,3},{4228,5972,3},{4228,5963,3},{4228,5957,3},{4228,5948,3}, {4228,5940,3},{4233,5935,3},{4237,5930,3},{4243,5928,3},{4248,5922,3},{4253,5915,3}, {4252,5908,3},{4253,5900,3},{4255,5893,3},{4258,5887,3},{4263,5880,3},{4268,5877,3}, {4273,5870,3},{4278,5863,3},{4277,5862,3},{4275,5863,3},{4270,5860,3},{4265,5857,3}, {4265,5853,3},{4265,5847,3},{4267,5840,3},{4268,5830,3},{4267,5822,3},{4263,5817,3}, {4262,5815,3},{4257,5823,3},{4255,5830,3},{4248,5835,3},{4242,5840,3},{4237,5842,3}, {4235,5845,3},{4232,5852,3},{4230,5852,3},{4228,5850,3},{4228,5840,3},{4235,5840,3}, {4242,5838,3},{4245,5832,3},{4247,5820,3},{4245,5812,3},{4247,5812,3},{4250,5807,3}, {4248,5800,3},{4245,5795,3},{4245,5792,3},{4240,5793,3},{4235,5793,3},{4228,5793,3}, {4223,5792,3},{4223,5783,3},{4217,5785,3},{4217,5783,3},{4217,5772,3},{4215,5765,3}, {4217,5762,3},{4217,5752,3},{4217,5745,3},{4215,5737,3},{4212,5727,3},{4207,5722,3}, {4202,5718,3},{4197,5715,3},{4193,5708,3},{4190,5700,3},{4183,5698,3},{4178,5697,3}, {4172,5698,3},{4165,5698,3},{4160,5702,3},{4155,5703,3},{4150,5702,3},{4143,5703,3}, {4138,5708,3},{4138,5715,3},{4135,5713,3},{4130,5707,3},{4127,5703,3},{4127,5695,3}, {4127,5688,3},{4128,5678,3},{4128,5667,3},{4128,5660,3},{4130,5650,3},{4130,5643,3}, {4130,5635,3},{4130,5627,3},{4132,5620,3},{4132,5612,3},{4132,5600,3},{3735,5390,131}, {3750,5388,3},{3755,5387,3},{3773,5382,3},{3788,5380,3},{3803,5382,3},{3822,5385,3}, {3835,5387,3},{3842,5383,3},{3852,5382,3},{3867,5385,3},{3877,5392,3},{3880,5392,3}, {3892,5398,3},{3892,5397,3},{3893,5397,3},{3893,5393,3},{3898,5388,3},{3903,5387,3}, {3903,5382,3},{3905,5380,3},{3903,5377,3},{3912,5372,3},{3907,5373,3},{3907,5370,3}, {3913,5370,3},{3917,5373,3},{3917,5370,3},{3920,5370,3},{3923,5372,3},{3920,5367,3}, {3918,5368,3},{3908,5368,3},{3912,5363,3},{3918,5362,3},{3918,5360,3},{3923,5360,3}, {3920,5358,3},{3920,5357,3},{3928,5358,3},{3928,5357,3},{3932,5358,3},{3932,5355,3}, {3935,5357,3},{3933,5353,3},{3933,5350,3},{3932,5345,3},{3933,5343,3},{3930,5338,3}, {3933,5340,3},{3932,5328,3},{3935,5330,3},{3937,5323,3},{3933,5315,3},{3932,5320,3}, {3927,5317,3},{3918,5318,3},{3918,5317,3},{3932,5315,3},{3940,5308,3},{3952,5318,3}, {3962,5323,3},{3965,5327,3},{3967,5330,3},{3965,5332,3},{3962,5327,3},{3952,5320,3}, {3952,5325,3},{3953,5342,3},{3948,5348,3},{3947,5355,3},{3947,5357,3},{3948,5358,3}, {3950,5357,3},{3952,5358,3},{3948,5363,3},{3952,5365,3},{3952,5370,3},{3950,5372,3}, {3952,5373,3},{3955,5370,3},{3955,5365,3},{3957,5363,3},{3957,5365,3},{3960,5365,3}, {3962,5363,3},{3962,5360,3},{3962,5357,3},{3967,5355,3},{3967,5353,3},{3963,5353,3}, {3970,5345,3},{3968,5345,3},{3967,5345,3},{3968,5343,3},{3963,5345,3},{3967,5342,3}, {3975,5343,3},{3977,5338,3},{3977,5342,3},{3987,5350,3},{3988,5348,3},{3990,5353,3}, {3992,5352,3},{3997,5358,3},{3997,5348,3},{4000,5342,3},{4000,5338,3},{3993,5328,3}, {4000,5317,3},{3997,5312,3},{3997,5307,3},{3997,5305,3},{4000,5308,3},{3997,5300,3}, {3998,5293,3},{4002,5293,3},{4002,5290,3},{3990,5292,3},{3975,5305,3},{3978,5300,3}, {3973,5303,3},{3977,5300,3},{3983,5297,3},{3987,5290,3},{3995,5288,3},{3997,5283,3}, {4005,5273,3},{4017,5277,3},{4018,5273,3},{4022,5273,3},{4027,5268,3},{4037,5273,3}, {4045,5272,3},{4052,5275,3},{4068,5287,3},{4072,5283,3},{4075,5283,3},{4077,5287,3}, {4078,5287,3},{4087,5288,3},{4095,5293,3},{4102,5292,3},{4107,5292,3},{4108,5292,3}, {4107,5295,3},{4103,5297,3},{4102,5295,3},{4093,5302,3},{4090,5303,3},{4087,5307,3}, {4087,5312,3},{4083,5307,3},{4077,5312,3},{4077,5318,3},{4082,5325,3},{4077,5323,3}, {4077,5332,3},{4078,5333,3},{4082,5335,3},{4083,5338,3},{4078,5338,3},{4073,5347,3}, {4077,5355,3},{4085,5355,3},{4088,5358,3},{4090,5360,3},{4088,5363,3},{4085,5365,3}, {4083,5365,3},{4080,5367,3},{4078,5365,3},{4072,5368,3},{4068,5373,3},{4063,5370,3}, {4062,5375,3},{4063,5377,3},{4063,5387,3},{4065,5390,3},{4067,5395,3},{4065,5403,3}, {4068,5410,3},{4072,5407,3},{4073,5423,3},{4072,5423,3},{4068,5422,3},{4067,5427,3}, {4067,5440,3},{4068,5437,3},{4072,5443,3},{4072,5432,3},{4083,5427,3},{4087,5427,3}, {4088,5425,3},{4093,5433,3},{4090,5440,3},{4087,5442,3},{4087,5447,3},{4083,5445,3}, {4082,5443,3},{4080,5448,3},{4083,5463,3},{4087,5467,3},{4088,5472,3},{4097,5477,3}, {4107,5468,3},{4103,5477,3},{4108,5472,3},{4110,5473,3},{4112,5465,3},{4115,5463,3}, {4125,5452,3},{4133,5430,3},{4140,5420,3},{4145,5415,3},{4148,5407,3},{4160,5402,3}, {4170,5402,3},{4180,5398,3},{4188,5393,3},{4190,5390,3},{4197,5390,3},{4200,5392,3}, {4207,5390,3},{4212,5382,3},{4215,5367,3},{4210,5347,3},{4210,5337,3},{4207,5328,3}, {4210,5315,3},{4207,5308,3},{4203,5307,3},{4200,5297,3},{4197,5295,3},{4178,5283,3}, {4172,5278,3},{4167,5277,3},{4167,5278,3},{4170,5282,3},{4170,5283,3},{4170,5287,3}, {4167,5292,3},{4163,5290,3},{4157,5290,3},{4138,5282,3},{4123,5285,3},{4112,5292,3}, {4105,5288,3},{4107,5285,3},{4115,5285,3},{4123,5282,3},{4132,5278,3},{4137,5277,3}, {4138,5272,3},{4142,5272,3},{4143,5270,3},{4145,5265,3},{4148,5263,3},{4152,5255,3}, {4157,5258,3},{4165,5258,3},{4168,5257,3},{4168,5253,3},{4177,5243,3},{4182,5252,3}, {4185,5257,3},{4188,5263,3},{4193,5270,3},{4197,5275,3},{4200,5282,3},{4205,5288,3}, {4210,5297,3},{4213,5303,3},{4217,5313,3},{4220,5323,3},{4222,5332,3},{4227,5342,3}, {4228,5357,3},{4230,5363,3},{4230,5370,3},{4232,5378,3},{4233,5387,3},{4233,5395,3}, {4233,5403,3},{4233,5410,3},{4233,5418,3},{4230,5428,3},{4227,5435,3},{4225,5442,3}, {4222,5448,3},{4215,5458,3},{4210,5470,3},{4207,5477,3},{4202,5483,3},{4198,5488,3}, {4193,5493,3},{4188,5495,3},{4182,5495,3},{4178,5500,3},{4173,5505,3},{4167,5510,3}, {4160,5513,3},{4155,5517,3},{4150,5522,3},{4143,5527,3},{4138,5533,3},{4133,5540,3}, {4128,5547,3},{4125,5553,3},{4128,5555,3},{4125,5560,3},{4128,5565,3},{4128,5573,3}, {4128,5580,3},{4132,5585,3},{4132,5593,3},{4132,5600,3},{4132,5612,3},{4132,5620,3}, {4130,5627,3},{4130,5635,3},{4130,5643,3},{4130,5650,3},{4128,5660,3},{4128,5667,3}, {4128,5678,3},{4127,5688,3},{4127,5695,3},{4127,5703,3},{4130,5707,3},{4135,5713,3}, {4138,5715,3},{4138,5708,3},{4143,5703,3},{4150,5702,3},{4155,5703,3},{4160,5702,3}, {4165,5698,3},{4172,5698,3},{4178,5697,3},{4183,5698,3},{4190,5700,3},{4193,5708,3}, {4197,5715,3},{4202,5718,3},{4207,5722,3},{4212,5727,3},{4215,5737,3},{4217,5745,3}, {4217,5752,3},{4217,5762,3},{4215,5765,3},{4217,5772,3},{4217,5783,3},{4217,5785,3}, {4223,5783,3},{4223,5792,3},{4228,5793,3},{4235,5793,3},{4240,5793,3},{4245,5792,3}, {4245,5795,3},{4248,5800,3},{4250,5807,3},{4247,5812,3},{4245,5812,3},{4247,5820,3}, {4245,5832,3},{4242,5838,3},{4235,5840,3},{4228,5840,3},{4228,5850,3},{4230,5852,3}, {4232,5852,3},{4235,5845,3},{4237,5842,3},{4242,5840,3},{4248,5835,3},{4255,5830,3}, {4257,5823,3},{4262,5815,3},{4263,5817,3},{4267,5822,3},{4268,5830,3},{4267,5840,3}, {4265,5847,3},{4265,5853,3},{4265,5857,3},{4270,5860,3},{4275,5863,3},{4277,5862,3}, {4278,5863,3},{4273,5870,3},{4268,5877,3},{4263,5880,3},{4258,5887,3},{4255,5893,3}, {4253,5900,3},{4252,5908,3},{4253,5915,3},{4248,5922,3},{4243,5928,3},{4237,5930,3}, {4233,5935,3},{4228,5940,3},{4228,5948,3},{4228,5957,3},{4228,5963,3},{4228,5972,3}, {4227,5980,3},{4230,5982,3},{4228,5990,3},{4223,5993,3},{4222,6000,3},{4217,6005,3}, {4215,5997,3},{4208,6000,3},{4203,6002,3},{4200,6003,3},{4200,5995,3},{4197,5995,3}, {4192,6005,3},{4190,6012,3},{4185,6015,3},{4182,6023,3},{4178,6030,3},{4177,6032,3}, {4177,6023,3},{4180,6018,3},{4182,6010,3},{4177,6007,3},{4172,6008,3},{4165,6013,3}, {4162,6017,3},{4157,6013,3},{4150,6010,3},{4145,6010,3},{4140,6013,3},{4137,6020,3}, {4133,6027,3},{4130,6033,3},{4125,6040,3},{4122,6047,3},{4122,6057,3},{4123,6068,3}, {4123,6077,3},{4123,6087,3},{4123,6093,3},{4123,6100,3},{4122,6107,3},{4120,6113,3}, {4117,6118,3},{4115,6125,3},{4115,6133,3},{4118,6138,3},{4125,6140,3},{4128,6145,3}, {4127,6152,3},{4128,6160,3},{4123,6165,3},{4122,6172,3},{4118,6175,3},{4112,6185,3}, {4108,6190,3},{4105,6190,3},{4103,6197,3},{4098,6198,3},{4092,6200,3},{4087,6200,3}, {4082,6200,3},{4077,6203,3},{4072,6205,3},{4065,6208,3},{4060,6212,3},{4055,6215,3}, {4052,6220,3},{4048,6227,3},{4045,6232,3},{4043,6235,3},{4038,6233,3},{4033,6238,3}, {4028,6238,3},{4022,6240,3},{4015,6242,3},{4010,6240,3},{4003,6243,3},{3997,6247,3}, {3990,6257,3},{3987,6265,3},{3982,6272,3},{3978,6280,3},{3973,6287,3},{3970,6295,3}, {3967,6300,3},{3963,6307,3},{3960,6312,3},{3957,6317,3},{3953,6327,3},{3947,6337,3}, {3945,6342,3},{3940,6352,3},{3935,6358,3},{3928,6367,3},{3923,6372,3},{3918,6378,3}, {3915,6385,3},{3910,6393,3},{3907,6398,3},{3903,6405,3},{3898,6413,3},{3895,6420,3}, {3898,6430,3},{3898,6432,3},{3895,6437,3},{3890,6443,3},{3883,6452,3},{3880,6458,3}, {3877,6465,3},{3873,6473,3},{3870,6480,3},{3867,6485,3},{3863,6493,3},{3862,6500,3}, {3857,6508,3},{3852,6515,3},{3848,6520,3},{3843,6527,3},{3838,6537,3},{3833,6543,3}, {3830,6553,3},{3827,6563,3},{3825,6570,3},{3823,6580,3},{3827,6585,3},{3827,6593,3}, {3823,6600,3},{3822,6607,3},{3818,6612,3},{3817,6620,3},{3817,6623,3},{3812,6627,3}, {3807,6633,3},{3805,6638,3},{3803,6643,3},{3803,6655,3},{3802,6662,3},{3797,6668,3}, {3792,6667,3},{3788,6662,3},{3782,6657,3},{3775,6653,3},{3768,6655,3},{3760,6653,3}, {3753,6658,3},{3748,6663,3},{3743,6663,3},{3742,6657,3},{3740,6652,3},{3738,6652,3}, {3737,6652,3},{3733,6647,3},{3732,6643,3},{3735,6642,3},{3732,6630,3},{3737,6623,3}, {3737,6617,3},{3743,6608,3},{3750,6585,3},{3757,6578,3},{3753,6577,3},{3753,6572,3}, {3752,6568,3},{3745,6565,3},{3735,6565,3},{3725,6555,3},{3725,6530,3},{3723,6523,3}, {3725,6507,3},{3712,6478,3},{3707,6478,3},{3693,6480,3},{3665,6462,3},{3660,6462,3}, {3650,6463,3},{3640,6460,3},{3625,6447,3},{3622,6433,3},{3615,6428,3},{3617,6427,3}, {3617,6418,3},{3612,6410,3},{3608,6407,3},{3600,6407,3},{3603,6400,3},{3603,6392,3}, {3598,6378,3},{3597,6360,3},{3590,6353,3},{3587,6337,3},{3585,6330,3},{3587,6312,3}, {3583,6310,3},{3580,6313,3},{3577,6313,3},{3577,6315,3},{3570,6323,3},{3563,6310,3}, {3555,6310,3},{3553,6313,3},{3543,6310,3},{3542,6298,3},{3528,6275,3},{3525,6272,3}, {3522,6262,3},{3523,6255,3},{3528,6252,3},{3528,6247,3},{3513,6232,3},{3520,6227,3}, {3522,6228,3},{3530,6227,3},{3532,6223,3},{3533,6215,3},{3545,6203,3},{3545,6197,3}, {3542,6180,3},{3545,6160,3},{3552,6147,3},{3555,6145,3},{3557,6140,3},{3560,6140,3}, {3560,6137,3},{3563,6138,3},{3563,6137,3},{3563,6128,3},{3560,6128,3},{3568,6123,3}, {3582,6127,3},{3590,6125,3},{3590,6123,3},{3593,6120,3},{3598,6112,3},{3600,6117,3}, {3603,6117,3},{3605,6120,3},{3612,6123,3},{3628,6118,3},{3632,6115,3},{3640,6115,3}, {3643,6117,3},{3650,6117,3},{3657,6118,3},{3665,6115,3},{3665,6107,3},{3665,6100,3}, {3665,6093,3},{3665,6087,3},{3665,6080,3},{3665,6073,3},{3665,6065,3},{3665,6058,3}, {3665,6052,3},{3665,6045,3},{3665,6037,3},{3665,6033,3},{3670,6030,3},{3675,6028,3}, {3687,6017,3},{3703,6005,3},{3705,6000,3},{3707,5992,3},{3712,5982,3},{3713,5973,3}, {3715,5967,3},{3713,5962,3},{3718,5960,3},{3722,5957,3},{3720,5953,3},{3722,5948,3}, {3725,5948,3},{3732,5940,3},{3742,5937,3},{3743,5938,3},{3748,5938,3},{3753,5933,3}, {3753,5930,3},{3752,5925,3},{3763,5905,3},{3767,5893,3},{3767,5888,3},{3770,5882,3}, {3767,5880,3},{3767,5875,3},{3765,5873,3},{3765,5868,3},{3772,5857,3},{3770,5853,3}, {3765,5850,3},{3763,5838,3},{3767,5837,3},{3768,5823,3},{3778,5820,3},{3780,5817,3}, {3782,5805,3},{3785,5797,3},{3787,5790,3},{3787,5782,3},{3790,5778,3},{3790,5775,3}, {3793,5770,3},{3792,5763,3},{3793,5757,3},{3793,5752,3},{3793,5745,3},{3800,5735,3}, {3810,5737,3},{3815,5732,3},{3817,5728,3},{3820,5728,3},{3823,5725,3},{3827,5725,3}, {3828,5720,3},{3828,5717,3},{3823,5713,3},{3820,5705,3},{3823,5687,3},{3825,5680,3}, {3828,5675,3},{3827,5665,3},{3823,5662,3},{3827,5657,3},{3827,5645,3},{3818,5632,3}, {3817,5632,3},{3813,5635,3},{3808,5633,3},{3808,5632,3},{3807,5622,3},{3810,5617,3}, {3807,5598,3},{3808,5593,3},{3810,5587,3},{3812,5580,3},{3813,5575,3},{3808,5545,3}, {3803,5538,3},{3798,5525,3},{3797,5520,3},{3795,5513,3},{3780,5495,3},{3775,5483,3}, {3765,5478,3},{3758,5482,3},{3752,5478,3},{3747,5468,3},{3745,5468,3},{3745,5458,3}, {3735,5433,3},{3737,5428,3},{3733,5423,3},{3735,5390,3},{2997,4853,131}, {3000,4845,3},{3007,4843,3},{3013,4838,3},{3018,4842,3},{3022,4840,3},{3033,4828,3}, {3033,4820,3},{3042,4817,3},{3047,4807,3},{3048,4803,3},{3100,4803,3},{3100,4770,3}, {3140,4770,3},{3180,4787,3},{3187,4778,3},{3190,4778,3},{3193,4773,3},{3202,4768,3}, {3202,4767,3},{3205,4763,3},{3208,4763,3},{3212,4758,3},{3212,4757,3},{3215,4755,3}, {3215,4750,3},{3223,4753,3},{3233,4742,3},{3238,4743,3},{3240,4743,3},{3248,4735,3}, {3248,4732,3},{3248,4728,3},{3247,4725,3},{3247,4713,3},{3260,4695,3},{3268,4683,3}, {3270,4678,3},{3277,4673,3},{3293,4642,3},{3297,4628,3},{3295,4617,3},{3297,4610,3}, {3300,4610,3},{3303,4613,3},{3307,4615,3},{3308,4610,3},{3308,4605,3},{3310,4605,3}, {3312,4605,3},{3312,4612,3},{3318,4618,3},{3320,4620,3},{3320,4618,3},{3327,4618,3}, {3338,4605,3},{3343,4605,3},{3350,4600,3},{3350,4597,3},{3348,4595,3},{3348,4587,3}, {3352,4588,3},{3355,4595,3},{3360,4590,3},{3363,4590,3},{3363,4583,3},{3358,4577,3}, {3360,4575,3},{3363,4575,3},{3367,4570,3},{3372,4565,3},{3378,4563,3},{3380,4560,3}, {3395,4550,3},{3395,4545,3},{3397,4540,3},{3402,4547,3},{3408,4547,3},{3415,4557,3}, {3418,4555,3},{3423,4557,3},{3432,4558,3},{3435,4553,3},{3433,4548,3},{3445,4543,3}, {3447,4545,3},{3447,4550,3},{3450,4552,3},{3452,4553,3},{3457,4552,3},{3458,4552,3}, {3460,4553,3},{3458,4557,3},{3457,4562,3},{3457,4565,3},{3455,4572,3},{3458,4573,3}, {3460,4572,3},{3467,4572,3},{3472,4565,3},{3473,4565,3},{3477,4570,3},{3482,4570,3}, {3485,4577,3},{3492,4577,3},{3490,4585,3},{3490,4587,3},{3493,4587,3},{3497,4590,3}, {3503,4588,3},{3505,4592,3},{3510,4593,3},{3507,4602,3},{3505,4603,3},{3508,4608,3}, {3510,4615,3},{3512,4617,3},{3517,4615,3},{3518,4618,3},{3522,4620,3},{3525,4612,3}, {3532,4615,3},{3533,4613,3},{3540,4605,3},{3550,4598,3},{3553,4600,3},{3558,4598,3}, {3558,4602,3},{3568,4602,3},{3570,4605,3},{3570,4615,3},{3572,4620,3},{3572,4623,3}, {3578,4633,3},{3580,4635,3},{3583,4633,3},{3583,4632,3},{3582,4627,3},{3580,4618,3}, {3582,4615,3},{3585,4613,3},{3587,4608,3},{3585,4603,3},{3583,4590,3},{3582,4587,3}, {3582,4577,3},{3593,4567,3},{3600,4555,3},{3602,4550,3},{3598,4538,3},{3598,4535,3}, {3602,4533,3},{3608,4537,3},{3615,4532,3},{3623,4532,3},{3625,4528,3},{3628,4530,3}, {3630,4527,3},{3638,4528,3},{3643,4523,3},{3642,4515,3},{3643,4508,3},{3650,4507,3}, {3653,4502,3},{3657,4503,3},{3660,4503,3},{3665,4507,3},{3668,4507,3},{3675,4502,3}, {3677,4497,3},{3678,4495,3},{3678,4487,3},{3680,4485,3},{3683,4485,3},{3688,4490,3}, {3693,4490,3},{3697,4488,3},{3702,4492,3},{3705,4487,3},{3705,4483,3},{3707,4482,3}, {3708,4478,3},{3712,4477,3},{3715,4478,3},{3723,4477,3},{3727,4482,3},{3730,4482,3}, {3735,4475,3},{3738,4472,3},{3738,4467,3},{3743,4465,3},{3745,4458,3},{3748,4460,3}, {3757,4460,3},{3760,4462,3},{3762,4458,3},{3765,4455,3},{3770,4462,3},{3773,4462,3}, {3777,4458,3},{3778,4453,3},{3777,4445,3},{3782,4445,3},{3782,4442,3},{3787,4440,3}, {3788,4433,3},{3787,4428,3},{3790,4422,3},{3802,4427,3},{3803,4428,3},{3810,4432,3}, {3810,4435,3},{3813,4435,3},{3817,4438,3},{3827,4440,3},{3832,4447,3},{3835,4448,3}, {3840,4443,3},{3837,4438,3},{3838,4430,3},{3845,4430,3},{3852,4432,3},{3863,4432,3}, {3867,4427,3},{3870,4428,3},{3872,4427,3},{3883,4430,3},{3887,4428,3},{3887,4425,3}, {3890,4420,3},{3895,4420,3},{3900,4417,3},{3903,4420,3},{3908,4418,3},{3913,4422,3}, {3920,4410,3},{3923,4410,3},{3925,4408,3},{3928,4410,3},{3938,4403,3},{3942,4407,3}, {3942,4412,3},{3940,4413,3},{3942,4420,3},{3942,4423,3},{3938,4430,3},{3942,4442,3}, {3945,4443,3},{3957,4443,3},{3965,4448,3},{3970,4447,3},{3978,4460,3},{3972,4468,3}, {3970,4473,3},{3963,4480,3},{3972,4477,3},{3968,4480,3},{3963,4480,3},{3962,4483,3}, {3962,4487,3},{3960,4488,3},{3948,4493,3},{3945,4495,3},{3943,4495,3},{3942,4500,3}, {3937,4507,3},{3928,4513,3},{3922,4515,3},{3918,4527,3},{3920,4532,3},{3917,4532,3}, {3917,4535,3},{3913,4535,3},{3910,4538,3},{3907,4540,3},{3905,4543,3},{3902,4542,3}, {3900,4543,3},{3897,4553,3},{3897,4557,3},{3895,4562,3},{3893,4577,3},{3888,4588,3}, {3888,4595,3},{3888,4605,3},{3885,4613,3},{3883,4617,3},{3892,4635,3},{3888,4642,3}, {3887,4653,3},{3890,4655,3},{3898,4665,3},{3902,4667,3},{3903,4673,3},{3908,4675,3}, {3915,4683,3},{3917,4690,3},{3915,4695,3},{3920,4703,3},{3925,4705,3},{3930,4710,3}, {3938,4730,3},{3947,4740,3},{3950,4747,3},{3952,4753,3},{3955,4758,3},{3963,4777,3}, {3968,4780,3},{3968,4793,3},{3972,4798,3},{3968,4805,3},{3960,4813,3},{3943,4833,3}, {3938,4837,3},{3935,4827,3},{3933,4818,3},{3930,4815,3},{3927,4812,3},{3922,4813,3}, {3915,4822,3},{3912,4828,3},{3903,4833,3},{3900,4830,3},{3898,4827,3},{3895,4807,3}, {3893,4807,3},{3890,4802,3},{3883,4802,3},{3877,4812,3},{3873,4825,3},{3867,4825,3}, {3865,4828,3},{3860,4833,3},{3862,4845,3},{3857,4845,3},{3855,4848,3},{3840,4863,3}, {3842,4873,3},{3845,4878,3},{3843,4888,3},{3830,4887,3},{3805,4892,3},{3797,4895,3}, {3790,4895,3},{3783,4898,3},{3780,4898,3},{3775,4900,3},{3763,4912,3},{3755,4927,3}, {3748,4943,3},{3745,4983,3},{3748,4993,3},{3745,4997,3},{3747,4995,3},{3745,4993,3}, {3745,4995,3},{3738,5018,3},{3737,5022,3},{3728,5023,3},{3715,5032,3},{3712,5035,3}, {3707,5045,3},{3703,5048,3},{3683,5088,3},{3677,5100,3},{3673,5110,3},{3668,5142,3}, {3658,5187,3},{3658,5197,3},{3660,5210,3},{3668,5243,3},{3670,5255,3},{3672,5267,3}, {3675,5282,3},{3685,5322,3},{3688,5348,3},{3692,5393,3},{3695,5402,3},{3690,5400,3}, {3690,5398,3},{3687,5382,3},{3687,5360,3},{3685,5367,3},{3685,5363,3},{3682,5368,3}, {3680,5388,3},{3680,5395,3},{3682,5403,3},{3695,5403,3},{3697,5403,3},{3698,5398,3}, {3702,5402,3},{3710,5397,3},{3718,5395,3},{3727,5392,3},{3735,5390,3},{3733,5423,3}, {3737,5428,3},{3735,5433,3},{3745,5458,3},{3745,5468,3},{3747,5468,3},{3752,5478,3}, {3758,5482,3},{3765,5478,3},{3775,5483,3},{3780,5495,3},{3795,5513,3},{3797,5520,3}, {3798,5525,3},{3803,5538,3},{3808,5545,3},{3813,5575,3},{3812,5580,3},{3810,5587,3}, {3808,5593,3},{3807,5598,3},{3810,5617,3},{3807,5622,3},{3808,5632,3},{3808,5633,3}, {3813,5635,3},{3817,5632,3},{3818,5632,3},{3827,5645,3},{3827,5657,3},{3823,5662,3}, {3827,5665,3},{3828,5675,3},{3825,5680,3},{3823,5687,3},{3820,5705,3},{3823,5713,3}, {3828,5717,3},{3828,5720,3},{3827,5725,3},{3823,5725,3},{3820,5728,3},{3817,5728,3}, {3815,5732,3},{3810,5737,3},{3800,5735,3},{3793,5745,3},{3793,5752,3},{3793,5757,3}, {3792,5763,3},{3793,5770,3},{3790,5775,3},{3790,5778,3},{3787,5782,3},{3787,5790,3}, {3785,5797,3},{3782,5805,3},{3780,5817,3},{3778,5820,3},{3768,5823,3},{3767,5837,3}, {3763,5838,3},{3765,5850,3},{3770,5853,3},{3772,5857,3},{3765,5868,3},{3765,5873,3}, {3767,5875,3},{3767,5880,3},{3770,5882,3},{3767,5888,3},{3767,5893,3},{3763,5905,3}, {3752,5925,3},{3753,5930,3},{3753,5933,3},{3748,5938,3},{3743,5938,3},{3742,5937,3}, {3732,5940,3},{3725,5948,3},{3722,5948,3},{3720,5953,3},{3722,5957,3},{3718,5960,3}, {3713,5962,3},{3715,5967,3},{3713,5973,3},{3712,5982,3},{3707,5992,3},{3705,6000,3}, {3703,6005,3},{3687,6017,3},{3675,6028,3},{3670,6030,3},{3665,6033,3},{3665,6037,3}, {3665,6045,3},{3665,6052,3},{3665,6058,3},{3665,6065,3},{3665,6073,3},{3665,6080,3}, {3665,6087,3},{3665,6093,3},{3665,6100,3},{3665,6107,3},{3665,6115,3},{3657,6118,3}, {3650,6117,3},{3643,6117,3},{3640,6115,3},{3632,6115,3},{3628,6118,3},{3612,6123,3}, {3605,6120,3},{3603,6117,3},{3600,6117,3},{3598,6112,3},{3593,6120,3},{3590,6123,3}, {3590,6125,3},{3582,6127,3},{3568,6123,3},{3560,6128,3},{3555,6128,3},{3552,6128,3}, {3548,6123,3},{3543,6123,3},{3540,6120,3},{3530,6118,3},{3528,6110,3},{3523,6110,3}, {3520,6112,3},{3518,6110,3},{3513,6113,3},{3510,6115,3},{3507,6112,3},{3502,6112,3}, {3493,6107,3},{3482,6107,3},{3473,6098,3},{3465,6097,3},{3463,6092,3},{3457,6085,3}, {3455,6075,3},{3452,6072,3},{3452,6075,3},{3448,6077,3},{3447,6080,3},{3440,6083,3}, {3432,6092,3},{3432,6067,3},{3428,6068,3},{3425,6062,3},{3420,6055,3},{3413,6050,3}, {3382,6055,3},{3373,6050,3},{3363,6053,3},{3357,6067,3},{3355,6090,3},{3352,6095,3}, {3350,6093,3},{3348,6085,3},{3342,6085,3},{3337,6077,3},{3315,6058,3},{3307,6058,3}, {3298,6060,3},{3293,6062,3},{3288,6065,3},{3283,6065,3},{3278,6067,3},{3273,6068,3}, {3268,6070,3},{3263,6072,3},{3258,6073,3},{3253,6075,3},{3248,6078,3},{3243,6078,3}, {3238,6080,3},{3233,6082,3},{3228,6083,3},{3223,6085,3},{3218,6085,3},{3213,6083,3}, {3208,6083,3},{3203,6080,3},{3202,6082,3},{3198,6080,3},{3195,6082,3},{3187,6082,3}, {3173,6083,3},{3167,6082,3},{3162,6082,3},{3157,6083,3},{3150,6085,3},{3148,6092,3}, {3148,6097,3},{3147,6103,3},{3147,6110,3},{3145,6117,3},{3145,6123,3},{3143,6130,3}, {3143,6135,3},{3142,6142,3},{3142,6148,3},{3140,6155,3},{3140,6162,3},{3138,6172,3}, {3132,6177,3},{3125,6177,3},{3118,6182,3},{3113,6180,3},{3102,6185,3},{3095,6180,3}, {3088,6182,3},{3083,6182,3},{3080,6177,3},{3075,6172,3},{3072,6168,3},{3067,6163,3}, {3062,6160,3},{3058,6157,3},{3053,6152,3},{3050,6148,3},{3045,6143,3},{3040,6140,3}, {3037,6135,3},{3032,6132,3},{3028,6127,3},{3023,6123,3},{3020,6118,3},{3015,6115,3}, {3010,6110,3},{3007,6107,3},{3002,6102,3},{2998,6098,3},{2993,6093,3},{2987,6087,3}, {2982,6092,3},{2978,6095,3},{2973,6098,3},{2970,6103,3},{2965,6107,3},{2962,6112,3}, {2957,6115,3},{2953,6120,3},{2948,6123,3},{2943,6128,3},{2940,6132,3},{2938,6137,3}, {2935,6137,3},{2930,6135,3},{2927,6137,3},{2922,6140,3},{2915,6143,3},{2913,6147,3}, {2910,6148,3},{2908,6152,3},{2905,6148,3},{2902,6153,3},{2887,6160,3},{2878,6167,3}, {2873,6173,3},{2865,6182,3},{2857,6190,3},{2852,6207,3},{2845,6233,3},{2842,6243,3}, {2838,6247,3},{2838,6250,3},{2832,6253,3},{2827,6260,3},{2828,6278,3},{2822,6280,3}, {2803,6277,3},{2775,6283,3},{2748,6285,3},{2737,6280,3},{2732,6282,3},{2728,6280,3}, {2727,6278,3},{2722,6285,3},{2722,6295,3},{2725,6305,3},{2725,6315,3},{2727,6318,3}, {2727,6320,3},{2723,6323,3},{2723,6327,3},{2713,6333,3},{2708,6325,3},{2685,6325,3}, {2682,6318,3},{2672,6320,3},{2663,6318,3},{2665,6283,3},{2663,6277,3},{2662,6275,3}, {2660,6270,3},{2662,6267,3},{2658,6262,3},{2657,6243,3},{2655,6242,3},{2653,6237,3}, {2650,6232,3},{2647,6232,3},{2642,6227,3},{2637,6228,3},{2633,6227,3},{2633,6223,3}, {2632,6225,3},{2628,6223,3},{2628,6212,3},{2632,6208,3},{2633,6203,3},{2628,6197,3}, {2627,6188,3},{2607,6183,3},{2600,6185,3},{2597,6182,3},{2592,6183,3},{2588,6188,3}, {2587,6185,3},{2585,6182,3},{2582,6183,3},{2575,6183,3},{2572,6180,3},{2573,6173,3}, {2568,6168,3},{2565,6167,3},{2532,6165,3},{2520,6162,3},{2520,6158,3},{2523,6158,3}, {2525,6155,3},{2522,6153,3},{2520,6155,3},{2520,6152,3},{2520,6148,3},{2517,6152,3}, {2512,6150,3},{2510,6143,3},{2508,6142,3},{2508,6145,3},{2508,6140,3},{2512,6123,3}, {2517,6120,3},{2517,6117,3},{2527,6062,3},{2528,6062,3},{2528,6063,3},{2533,6060,3}, {2540,6060,3},{2543,6055,3},{2543,6045,3},{2538,6040,3},{2533,6040,3},{2533,6045,3}, {2530,6045,3},{2527,6047,3},{2532,6040,3},{2533,6030,3},{2535,6030,3},{2538,6030,3}, {2537,6020,3},{2532,6018,3},{2533,6012,3},{2538,6008,3},{2538,6002,3},{2537,5993,3}, {2535,5990,3},{2542,5983,3},{2538,5962,3},{2542,5957,3},{2547,5950,3},{2548,5945,3}, {2540,5913,3},{2540,5905,3},{2540,5900,3},{2552,5892,3},{2553,5885,3},{2557,5882,3}, {2555,5872,3},{2557,5870,3},{2558,5860,3},{2560,5855,3},{2558,5847,3},{2558,5840,3}, {2562,5842,3},{2560,5835,3},{2558,5832,3},{2558,5830,3},{2557,5827,3},{2557,5823,3}, {2555,5823,3},{2553,5815,3},{2557,5805,3},{2563,5800,3},{2568,5798,3},{2570,5795,3}, {2568,5787,3},{2563,5778,3},{2570,5778,3},{2575,5775,3},{2573,5752,3},{2575,5745,3}, {2577,5745,3},{2575,5743,3},{2577,5740,3},{2578,5732,3},{2592,5727,3},{2598,5723,3}, {2600,5720,3},{2607,5717,3},{2612,5717,3},{2617,5722,3},{2627,5713,3},{2635,5713,3}, {2640,5708,3},{2645,5707,3},{2657,5710,3},{2667,5708,3},{2685,5702,3},{2695,5693,3}, {2695,5695,3},{2697,5697,3},{2700,5697,3},{2698,5692,3},{2702,5690,3},{2700,5687,3}, {2703,5687,3},{2703,5683,3},{2707,5688,3},{2708,5685,3},{2713,5682,3},{2712,5677,3}, {2713,5672,3},{2715,5673,3},{2715,5670,3},{2715,5655,3},{2717,5652,3},{2717,5642,3}, {2720,5635,3},{2715,5613,3},{2712,5608,3},{2707,5597,3},{2702,5595,3},{2702,5580,3}, {2698,5575,3},{2700,5570,3},{2698,5565,3},{2690,5555,3},{2690,5558,3},{2682,5557,3}, {2677,5548,3},{2675,5540,3},{2677,5537,3},{2678,5535,3},{2678,5525,3},{2672,5520,3}, {2670,5510,3},{2665,5505,3},{2662,5498,3},{2658,5495,3},{2650,5480,3},{2650,5468,3}, {2650,5463,3},{2652,5460,3},{2657,5458,3},{2658,5455,3},{2658,5443,3},{2660,5440,3}, {2670,5433,3},{2672,5428,3},{2670,5423,3},{2670,5413,3},{2675,5402,3},{2673,5398,3}, {2670,5393,3},{2670,5372,3},{2673,5368,3},{2678,5358,3},{2680,5357,3},{2685,5348,3}, {2688,5347,3},{2695,5347,3},{2697,5343,3},{2700,5338,3},{2700,5333,3},{2708,5313,3}, {2710,5303,3},{2713,5298,3},{2717,5293,3},{2720,5290,3},{2722,5285,3},{2728,5275,3}, {2735,5260,3},{2738,5257,3},{2740,5257,3},{2740,5267,3},{2745,5267,3},{2747,5260,3}, {2755,5257,3},{2762,5250,3},{2765,5243,3},{2765,5238,3},{2768,5222,3},{2783,5202,3}, {2783,5188,3},{2785,5180,3},{2783,5172,3},{2785,5158,3},{2787,5158,3},{2793,5147,3}, {2802,5145,3},{2807,5132,3},{2813,5127,3},{2820,5128,3},{2823,5128,3},{2838,5115,3}, {2850,5108,3},{2873,5105,3},{2880,5100,3},{2883,5088,3},{2893,5080,3},{2897,5080,3}, {2900,5083,3},{2895,5090,3},{2897,5090,3},{2902,5093,3},{2907,5093,3},{2907,5090,3}, {2910,5088,3},{2910,5085,3},{2913,5083,3},{2913,5072,3},{2912,5068,3},{2913,5063,3}, {2920,5063,3},{2925,5065,3},{2925,5068,3},{2928,5068,3},{2932,5067,3},{2940,5067,3}, {2947,5063,3},{2950,5062,3},{2947,5060,3},{2962,5047,3},{2965,5040,3},{2987,5023,3}, {2990,5018,3},{2995,5013,3},{2998,5013,3},{2998,5015,3},{3000,5013,3},{3005,5015,3}, {3010,5012,3},{3012,5013,3},{3015,5010,3},{3020,5005,3},{3022,5000,3},{3020,4993,3}, {3000,4957,3},{3005,4950,3},{3015,4948,3},{3017,4942,3},{3017,4938,3},{3017,4935,3}, {3015,4930,3},{3015,4923,3},{3020,4923,3},{3022,4922,3},{3027,4922,3},{3023,4918,3}, {3022,4917,3},{3025,4913,3},{3025,4908,3},{3028,4905,3},{3030,4900,3},{3035,4900,3}, {3038,4892,3},{3040,4895,3},{3038,4900,3},{3040,4907,3},{3035,4922,3},{3038,4922,3}, {3043,4927,3},{3045,4927,3},{3045,4923,3},{3050,4920,3},{3047,4917,3},{3050,4917,3}, {3050,4913,3},{3052,4910,3},{3050,4907,3},{3052,4903,3},{3052,4898,3},{3048,4895,3}, {3047,4895,3},{3047,4902,3},{3043,4903,3},{3042,4903,3},{3042,4892,3},{3035,4887,3}, {3033,4888,3},{3032,4887,3},{3030,4887,3},{3025,4892,3},{3017,4895,3},{3003,4892,3}, {3003,4888,3},{3003,4870,3},{3005,4865,3},{3003,4863,3},{3000,4867,3},{2997,4865,3}, {2995,4860,3},{2997,4853,3},{3890,4655,131},{3895,4652,3},{3900,4653,3}, {3905,4655,3},{3910,4652,3},{3915,4648,3},{3915,4645,3},{3920,4645,3},{3920,4647,3}, {3920,4653,3},{3918,4653,3},{3917,4655,3},{3918,4657,3},{3920,4657,3},{3923,4662,3}, {3925,4657,3},{3930,4653,3},{3933,4650,3},{3935,4643,3},{3940,4640,3},{3945,4640,3}, {3945,4643,3},{3945,4645,3},{3948,4650,3},{3948,4655,3},{3952,4652,3},{3955,4657,3}, {3958,4650,3},{3957,4643,3},{3962,4642,3},{3962,4640,3},{3963,4637,3},{3963,4633,3}, {3960,4627,3},{3960,4620,3},{3958,4618,3},{3960,4618,3},{3962,4617,3},{3965,4613,3}, {3968,4608,3},{3972,4603,3},{3977,4600,3},{3980,4595,3},{3983,4583,3},{3985,4583,3}, {3993,4578,3},{3997,4572,3},{3997,4563,3},{4000,4562,3},{4000,4558,3},{4003,4562,3}, {4003,4568,3},{4003,4577,3},{4000,4582,3},{4003,4588,3},{4007,4590,3},{4012,4592,3}, {4017,4597,3},{4023,4597,3},{4027,4592,3},{4027,4595,3},{4030,4592,3},{4030,4585,3}, {4032,4582,3},{4035,4575,3},{4037,4567,3},{4040,4562,3},{4043,4557,3},{4048,4552,3}, {4050,4545,3},{4055,4545,3},{4060,4543,3},{4062,4537,3},{4067,4535,3},{4072,4540,3}, {4075,4545,3},{4078,4550,3},{4085,4558,3},{4090,4558,3},{4090,4555,3},{4093,4550,3}, {4098,4547,3},{4098,4542,3},{4103,4543,3},{4103,4540,3},{4100,4533,3},{4103,4528,3}, {4103,4527,3},{4102,4525,3},{4102,4522,3},{4107,4515,3},{4110,4515,3},{4110,4513,3}, {4108,4512,3},{4108,4513,3},{4105,4507,3},{4107,4505,3},{4112,4508,3},{4113,4518,3}, {4117,4520,3},{4117,4515,3},{4122,4512,3},{4120,4507,3},{4122,4502,3},{4125,4503,3}, {4130,4500,3},{4132,4505,3},{4135,4512,3},{4138,4515,3},{4142,4522,3},{4147,4527,3}, {4147,4532,3},{4145,4535,3},{4143,4542,3},{4145,4543,3},{4142,4550,3},{4140,4557,3}, {4138,4558,3},{4137,4565,3},{4137,4572,3},{4135,4572,3},{4130,4568,3},{4125,4575,3}, {4122,4580,3},{4122,4587,3},{4118,4595,3},{4118,4603,3},{4118,4610,3},{4120,4612,3}, {4118,4615,3},{4118,4625,3},{4113,4630,3},{4110,4637,3},{4108,4642,3},{4103,4647,3}, {4105,4653,3},{4107,4662,3},{4107,4663,3},{4113,4665,3},{4120,4665,3},{4125,4668,3}, {4130,4672,3},{4130,4668,3},{4135,4665,3},{4138,4660,3},{4142,4653,3},{4143,4647,3}, {4147,4642,3},{4150,4635,3},{4155,4632,3},{4160,4630,3},{4160,4627,3},{4167,4625,3}, {4172,4627,3},{4178,4628,3},{4182,4633,3},{4185,4640,3},{4190,4642,3},{4188,4647,3}, {4187,4653,3},{4182,4655,3},{4180,4658,3},{4182,4662,3},{4183,4670,3},{4187,4675,3}, {4185,4677,3},{4183,4677,3},{4178,4678,3},{4173,4685,3},{4172,4692,3},{4168,4692,3}, {4163,4697,3},{4163,4700,3},{4160,4698,3},{4155,4702,3},{4155,4707,3},{4158,4712,3}, {4157,4712,3},{4152,4717,3},{4148,4718,3},{4142,4722,3},{4138,4725,3},{4132,4727,3}, {4130,4730,3},{4128,4737,3},{4127,4743,3},{4125,4750,3},{4123,4750,3},{4122,4757,3}, {4123,4763,3},{4122,4770,3},{4118,4775,3},{4122,4780,3},{4122,4788,3},{4123,4790,3}, {4130,4792,3},{4135,4793,3},{4138,4798,3},{4143,4803,3},{4148,4805,3},{4150,4812,3}, {4150,4820,3},{4153,4827,3},{4157,4832,3},{4162,4840,3},{4167,4843,3},{4173,4845,3}, {4178,4847,3},{4185,4850,3},{4188,4853,3},{4183,4858,3},{4178,4868,3},{4168,4878,3}, {4163,4880,3},{4160,4885,3},{4153,4890,3},{4150,4895,3},{4145,4898,3},{4142,4903,3}, {4127,4913,3},{4115,4915,3},{4103,4922,3},{4085,4940,3},{4082,4948,3},{4078,4953,3}, {4070,4952,3},{4067,4953,3},{4062,4958,3},{4062,4965,3},{4058,4970,3},{4057,4983,3}, {4058,4992,3},{4058,5007,3},{4057,5007,3},{4052,5012,3},{4050,5023,3},{4043,5028,3}, {4040,5033,3},{4037,5037,3},{4028,5037,3},{4023,5040,3},{4022,5038,3},{4028,5035,3}, {4033,5027,3},{4035,5012,3},{4035,5010,3},{4035,5003,3},{4033,5002,3},{4032,4998,3}, {4035,4997,3},{4037,4988,3},{4033,4983,3},{4032,4985,3},{4028,4982,3},{4027,4970,3}, {4023,4967,3},{4022,4957,3},{4015,4948,3},{4008,4950,3},{4005,4942,3},{3998,4948,3}, {3995,4943,3},{3992,4942,3},{3987,4945,3},{3983,4942,3},{3982,4942,3},{3978,4940,3}, {3970,4942,3},{3968,4938,3},{3962,4932,3},{3950,4928,3},{3947,4930,3},{3938,4942,3}, {3935,4940,3},{3932,4940,3},{3935,4937,3},{3928,4940,3},{3930,4937,3},{3933,4933,3}, {3935,4930,3},{3933,4927,3},{3928,4923,3},{3915,4923,3},{3908,4920,3},{3902,4920,3}, {3898,4913,3},{3897,4907,3},{3900,4905,3},{3903,4912,3},{3910,4915,3},{3910,4907,3}, {3915,4907,3},{3917,4905,3},{3918,4900,3},{3917,4897,3},{3912,4893,3},{3905,4893,3}, {3902,4895,3},{3895,4893,3},{3888,4888,3},{3887,4883,3},{3882,4883,3},{3875,4887,3}, {3843,4888,3},{3845,4878,3},{3842,4873,3},{3840,4863,3},{3855,4848,3},{3857,4845,3}, {3862,4845,3},{3860,4833,3},{3865,4828,3},{3867,4825,3},{3873,4825,3},{3877,4812,3}, {3883,4802,3},{3890,4802,3},{3893,4807,3},{3895,4807,3},{3898,4827,3},{3900,4830,3}, {3903,4833,3},{3912,4828,3},{3915,4822,3},{3922,4813,3},{3927,4812,3},{3930,4815,3}, {3933,4818,3},{3935,4827,3},{3938,4837,3},{3943,4833,3},{3960,4813,3},{3968,4805,3}, {3972,4798,3},{3968,4793,3},{3968,4780,3},{3963,4777,3},{3955,4758,3},{3952,4753,3}, {3950,4747,3},{3947,4740,3},{3938,4730,3},{3930,4710,3},{3925,4705,3},{3920,4703,3}, {3915,4695,3},{3917,4690,3},{3915,4683,3},{3908,4675,3},{3903,4673,3},{3902,4667,3}, {3898,4665,3},{3890,4655,3},{4150,4152,131},{4163,4162,3},{4165,4165,3}, {4172,4173,3},{4183,4178,3},{4200,4177,3},{4213,4165,3},{4227,4163,3},{4235,4160,3}, {4238,4155,3},{4255,4153,3},{4270,4147,3},{4275,4142,3},{4278,4125,3},{4280,4120,3}, {4278,4115,3},{4285,4110,3},{4292,4108,3},{4297,4103,3},{4298,4100,3},{4297,4093,3}, {4307,4085,3},{4308,4080,3},{4310,4065,3},{4308,4058,3},{4312,4052,3},{4313,4045,3}, {4317,4037,3},{4313,4033,3},{4317,4032,3},{4322,4027,3},{4323,4027,3},{4332,4022,3}, {4333,4013,3},{4337,4007,3},{4338,4002,3},{4340,4002,3},{4345,4003,3},{4352,4007,3}, {4355,4010,3},{4358,4017,3},{4358,4023,3},{4357,4030,3},{4355,4037,3},{4355,4045,3}, {4353,4052,3},{4352,4058,3},{4357,4065,3},{4355,4068,3},{4353,4070,3},{4352,4077,3}, {4348,4083,3},{4347,4090,3},{4343,4093,3},{4343,4100,3},{4338,4107,3},{4338,4110,3}, {4340,4113,3},{4338,4117,3},{4337,4123,3},{4333,4132,3},{4337,4137,3},{4335,4142,3}, {4330,4143,3},{4327,4152,3},{4325,4157,3},{4322,4163,3},{4322,4172,3},{4323,4173,3}, {4322,4177,3},{4320,4183,3},{4325,4188,3},{4323,4188,3},{4322,4198,3},{4320,4205,3}, {4320,4208,3},{4322,4215,3},{4323,4222,3},{4322,4228,3},{4322,4232,3},{4325,4238,3}, {4325,4245,3},{4323,4247,3},{4322,4247,3},{4320,4248,3},{4318,4255,3},{4317,4262,3}, {4315,4268,3},{4317,4268,3},{4318,4275,3},{4317,4283,3},{4317,4290,3},{4312,4293,3}, {4312,4297,3},{4310,4303,3},{4307,4303,3},{4303,4305,3},{4300,4312,3},{4293,4320,3}, {4292,4327,3},{4290,4333,3},{4290,4340,3},{4288,4348,3},{4287,4355,3},{4283,4360,3}, {4280,4365,3},{4277,4372,3},{4275,4380,3},{4272,4380,3},{4267,4377,3},{4263,4373,3}, {4258,4378,3},{4258,4382,3},{4257,4390,3},{4257,4397,3},{4260,4402,3},{4262,4408,3}, {4262,4417,3},{4263,4422,3},{4268,4425,3},{4272,4432,3},{4272,4440,3},{4273,4445,3}, {4275,4452,3},{4275,4465,3},{4273,4472,3},{4268,4473,3},{4262,4478,3},{4267,4482,3}, {4273,4487,3},{4275,4493,3},{4273,4500,3},{4270,4508,3},{4270,4515,3},{4267,4520,3}, {4262,4527,3},{4257,4530,3},{4253,4535,3},{4253,4537,3},{4255,4545,3},{4253,4552,3}, {4253,4558,3},{4250,4567,3},{4248,4577,3},{4243,4577,3},{4235,4573,3},{4230,4573,3}, {4228,4572,3},{4228,4563,3},{4222,4562,3},{4218,4567,3},{4215,4573,3},{4212,4580,3}, {4212,4587,3},{4207,4590,3},{4203,4595,3},{4203,4597,3},{4203,4605,3},{4203,4607,3}, {4198,4610,3},{4200,4612,3},{4202,4612,3},{4198,4618,3},{4200,4625,3},{4198,4627,3}, {4193,4632,3},{4195,4638,3},{4190,4642,3},{4185,4640,3},{4182,4633,3},{4178,4628,3}, {4172,4627,3},{4167,4625,3},{4160,4627,3},{4160,4630,3},{4155,4632,3},{4150,4635,3}, {4147,4642,3},{4143,4647,3},{4142,4653,3},{4138,4660,3},{4135,4665,3},{4130,4668,3}, {4130,4672,3},{4125,4668,3},{4120,4665,3},{4113,4665,3},{4107,4663,3},{4107,4662,3}, {4105,4653,3},{4103,4647,3},{4108,4642,3},{4110,4637,3},{4113,4630,3},{4118,4625,3}, {4118,4615,3},{4120,4612,3},{4118,4610,3},{4118,4603,3},{4118,4595,3},{4122,4587,3}, {4122,4580,3},{4125,4575,3},{4130,4568,3},{4135,4572,3},{4137,4572,3},{4137,4565,3}, {4138,4558,3},{4140,4557,3},{4142,4550,3},{4145,4543,3},{4143,4542,3},{4145,4535,3}, {4147,4532,3},{4147,4527,3},{4142,4522,3},{4138,4515,3},{4135,4512,3},{4132,4505,3}, {4130,4500,3},{4127,4495,3},{4127,4488,3},{4130,4482,3},{4127,4480,3},{4123,4483,3}, {4122,4487,3},{4122,4480,3},{4122,4473,3},{4123,4467,3},{4123,4462,3},{4118,4458,3}, {4120,4458,3},{4120,4450,3},{4118,4443,3},{4123,4435,3},{4122,4433,3},{4122,4427,3}, {4123,4423,3},{4123,4417,3},{4118,4415,3},{4118,4407,3},{4118,4400,3},{4115,4398,3}, {4117,4390,3},{4115,4382,3},{4113,4377,3},{4112,4375,3},{4113,4368,3},{4113,4362,3}, {4115,4355,3},{4113,4348,3},{4113,4347,3},{4118,4343,3},{4120,4337,3},{4118,4323,3}, {4125,4320,3},{4125,4312,3},{4128,4320,3},{4130,4320,3},{4132,4313,3},{4137,4308,3}, {4137,4303,3},{4145,4298,3},{4148,4290,3},{4150,4290,3},{4147,4285,3},{4152,4278,3}, {4153,4282,3},{4158,4283,3},{4160,4267,3},{4158,4258,3},{4150,4257,3},{4147,4252,3}, {4145,4252,3},{4143,4247,3},{4148,4228,3},{4148,4220,3},{4150,4218,3},{4150,4210,3}, {4148,4205,3},{4152,4197,3},{4143,4183,3},{4147,4177,3},{4147,4172,3},{4150,4172,3}, {4148,4165,3},{4150,4152,3},{4113,4347,131},{4113,4348,3},{4115,4355,3}, {4113,4362,3},{4113,4368,3},{4112,4375,3},{4113,4377,3},{4115,4382,3},{4117,4390,3}, {4115,4398,3},{4118,4400,3},{4118,4407,3},{4118,4415,3},{4123,4417,3},{4123,4423,3}, {4122,4427,3},{4122,4433,3},{4123,4435,3},{4118,4443,3},{4120,4450,3},{4120,4458,3}, {4118,4458,3},{4123,4462,3},{4123,4467,3},{4122,4473,3},{4122,4480,3},{4122,4487,3}, {4123,4483,3},{4127,4480,3},{4130,4482,3},{4127,4488,3},{4127,4495,3},{4130,4500,3}, {4125,4503,3},{4122,4502,3},{4120,4507,3},{4122,4512,3},{4117,4515,3},{4117,4520,3}, {4113,4518,3},{4112,4508,3},{4107,4505,3},{4105,4507,3},{4108,4513,3},{4108,4512,3}, {4110,4513,3},{4110,4515,3},{4107,4515,3},{4102,4522,3},{4102,4525,3},{4103,4527,3}, {4103,4528,3},{4100,4533,3},{4103,4540,3},{4103,4543,3},{4098,4542,3},{4098,4547,3}, {4093,4550,3},{4090,4555,3},{4090,4558,3},{4085,4558,3},{4078,4550,3},{4075,4545,3}, {4072,4540,3},{4067,4535,3},{4062,4537,3},{4060,4543,3},{4055,4545,3},{4050,4545,3}, {4048,4552,3},{4043,4557,3},{4040,4562,3},{4037,4567,3},{4035,4575,3},{4032,4582,3}, {4030,4585,3},{4030,4592,3},{4027,4595,3},{4027,4592,3},{4023,4597,3},{4017,4597,3}, {4012,4592,3},{4007,4590,3},{4003,4588,3},{4000,4582,3},{4003,4577,3},{4003,4568,3}, {4003,4562,3},{4000,4558,3},{4000,4562,3},{3997,4563,3},{3997,4572,3},{3993,4578,3}, {3985,4583,3},{3983,4583,3},{3980,4595,3},{3977,4600,3},{3972,4603,3},{3968,4608,3}, {3965,4613,3},{3962,4617,3},{3960,4618,3},{3958,4618,3},{3960,4620,3},{3960,4627,3}, {3963,4633,3},{3963,4637,3},{3962,4640,3},{3962,4642,3},{3957,4643,3},{3958,4650,3}, {3955,4657,3},{3952,4652,3},{3948,4655,3},{3948,4650,3},{3945,4645,3},{3945,4643,3}, {3945,4640,3},{3940,4640,3},{3935,4643,3},{3933,4650,3},{3930,4653,3},{3925,4657,3}, {3923,4662,3},{3920,4657,3},{3918,4657,3},{3917,4655,3},{3918,4653,3},{3920,4653,3}, {3920,4647,3},{3920,4645,3},{3915,4645,3},{3915,4648,3},{3910,4652,3},{3905,4655,3}, {3900,4653,3},{3895,4652,3},{3890,4655,3},{3887,4653,3},{3888,4642,3},{3892,4635,3}, {3883,4617,3},{3885,4613,3},{3887,4615,3},{3892,4613,3},{3898,4610,3},{3903,4608,3}, {3908,4605,3},{3913,4603,3},{3917,4602,3},{3923,4600,3},{3930,4600,3},{3932,4595,3}, {3935,4588,3},{3937,4582,3},{3942,4582,3},{3947,4583,3},{3950,4582,3},{3955,4582,3}, {3958,4577,3},{3960,4568,3},{3957,4562,3},{3953,4553,3},{3950,4547,3},{3953,4542,3}, {3957,4533,3},{3962,4527,3},{3958,4522,3},{3960,4518,3},{3965,4520,3},{3970,4518,3}, {3977,4513,3},{3978,4507,3},{3973,4497,3},{3973,4490,3},{3972,4477,3},{3977,4470,3}, {3978,4470,3},{3980,4465,3},{3983,4462,3},{3983,4460,3},{3992,4455,3},{3997,4448,3}, {4000,4438,3},{4005,4428,3},{4003,4418,3},{4002,4415,3},{4003,4410,3},{4002,4405,3}, {4002,4393,3},{4012,4365,3},{4013,4365,3},{4017,4372,3},{4022,4367,3},{4023,4370,3}, {4027,4368,3},{4033,4360,3},{4042,4362,3},{4047,4355,3},{4052,4362,3},{4053,4365,3}, {4055,4365,3},{4068,4375,3},{4070,4373,3},{4077,4375,3},{4083,4368,3},{4092,4367,3}, {4100,4360,3},{4102,4348,3},{4110,4345,3},{4113,4347,3},{3885,4613,131}, {3888,4605,3},{3888,4595,3},{3888,4588,3},{3893,4577,3},{3895,4562,3},{3897,4557,3}, {3897,4553,3},{3900,4543,3},{3902,4542,3},{3905,4543,3},{3907,4540,3},{3910,4538,3}, {3913,4535,3},{3917,4535,3},{3917,4532,3},{3920,4532,3},{3918,4527,3},{3922,4515,3}, {3928,4513,3},{3937,4507,3},{3942,4500,3},{3943,4495,3},{3945,4495,3},{3948,4493,3}, {3960,4488,3},{3962,4487,3},{3962,4483,3},{3963,4480,3},{3968,4480,3},{3972,4477,3}, {3973,4490,3},{3973,4497,3},{3978,4507,3},{3977,4513,3},{3970,4518,3},{3965,4520,3}, {3960,4518,3},{3958,4522,3},{3962,4527,3},{3957,4533,3},{3953,4542,3},{3950,4547,3}, {3953,4553,3},{3957,4562,3},{3960,4568,3},{3958,4577,3},{3955,4582,3},{3950,4582,3}, {3947,4583,3},{3942,4582,3},{3937,4582,3},{3935,4588,3},{3932,4595,3},{3930,4600,3}, {3923,4600,3},{3917,4602,3},{3913,4603,3},{3908,4605,3},{3903,4608,3},{3898,4610,3}, {3892,4613,3},{3887,4615,3},{3885,4613,3},{3593,3592,131},{3600,3598,3}, {3610,3595,3},{3625,3583,3},{3628,3578,3},{3632,3578,3},{3635,3582,3},{3637,3587,3}, {3645,3592,3},{3648,3600,3},{3653,3603,3},{3653,3608,3},{3658,3615,3},{3660,3618,3}, {3665,3622,3},{3670,3620,3},{3677,3620,3},{3678,3620,3},{3687,3612,3},{3692,3607,3}, {3693,3602,3},{3688,3595,3},{3678,3582,3},{3675,3565,3},{3672,3562,3},{3673,3562,3}, {3672,3558,3},{3668,3558,3},{3670,3560,3},{3668,3562,3},{3672,3562,3},{3670,3563,3}, {3673,3563,3},{3672,3567,3},{3672,3572,3},{3670,3565,3},{3665,3560,3},{3665,3562,3}, {3670,3570,3},{3667,3565,3},{3660,3562,3},{3658,3557,3},{3662,3550,3},{3660,3548,3}, {3658,3553,3},{3658,3543,3},{3653,3533,3},{3657,3530,3},{3672,3498,3},{3672,3490,3}, {3673,3490,3},{3677,3488,3},{3680,3483,3},{3682,3473,3},{3680,3467,3},{3678,3463,3}, {3677,3457,3},{3665,3442,3},{3663,3435,3},{3657,3427,3},{3647,3417,3},{3645,3413,3}, {3640,3408,3},{3632,3408,3},{3630,3400,3},{3628,3398,3},{3628,3400,3},{3622,3397,3}, {3622,3395,3},{3623,3395,3},{3628,3393,3},{3632,3388,3},{3627,3382,3},{3625,3383,3}, {3623,3380,3},{3618,3370,3},{3613,3368,3},{3618,3365,3},{3618,3360,3},{3613,3357,3}, {3612,3353,3},{3613,3353,3},{3615,3345,3},{3613,3340,3},{3615,3335,3},{3612,3328,3}, {3613,3313,3},{3607,3308,3},{3608,3305,3},{3610,3293,3},{3607,3287,3},{3602,3280,3}, {3603,3267,3},{3610,3255,3},{3610,3250,3},{3617,3237,3},{3622,3233,3},{3625,3228,3}, {3628,3228,3},{3635,3220,3},{3643,3215,3},{3652,3207,3},{3655,3202,3},{3655,3193,3}, {3658,3185,3},{3660,3178,3},{3663,3173,3},{3665,3167,3},{3672,3153,3},{3677,3138,3}, {3678,3138,3},{3680,3135,3},{3685,3105,3},{3685,3075,3},{3688,3068,3},{3685,3062,3}, {3678,3057,3},{3673,3057,3},{3668,3057,3},{3662,3055,3},{3660,3058,3},{3657,3058,3}, {3652,3057,3},{3645,3050,3},{3643,3050,3},{3643,3048,3},{3640,3047,3},{3633,3052,3}, {3630,3047,3},{3628,3047,3},{3628,3048,3},{3627,3048,3},{3625,3045,3},{3620,3040,3}, {3623,3038,3},{3627,3040,3},{3627,3037,3},{3630,3025,3},{3628,3015,3},{3625,3015,3}, {3627,3013,3},{3625,3013,3},{3623,3010,3},{3627,3005,3},{3625,3003,3},{3625,3005,3}, {3620,2998,3},{3622,2992,3},{3618,2988,3},{3617,2980,3},{3615,2982,3},{3613,2978,3}, {3613,2977,3},{3615,2978,3},{3617,2972,3},{3612,2968,3},{3615,2967,3},{3617,2963,3}, {3617,2962,3},{3617,2963,3},{3618,2963,3},{3618,2958,3},{3620,2962,3},{3620,2950,3}, {3623,2945,3},{3623,2942,3},{3625,2942,3},{3627,2940,3},{3627,2937,3},{3623,2935,3}, {3632,2923,3},{3633,2917,3},{3635,2915,3},{3637,2913,3},{3638,2910,3},{3642,2913,3}, {3645,2912,3},{3648,2910,3},{3648,2913,3},{3653,2913,3},{3657,2908,3},{3655,2905,3}, {3653,2905,3},{3655,2902,3},{3655,2905,3},{3658,2902,3},{3662,2903,3},{3662,2908,3}, {3665,2908,3},{3663,2910,3},{3662,2908,3},{3663,2912,3},{3667,2908,3},{3668,2905,3}, {3672,2902,3},{3670,2898,3},{3675,2893,3},{3670,2888,3},{3670,2890,3},{3668,2887,3}, {3663,2885,3},{3665,2890,3},{3667,2888,3},{3665,2890,3},{3662,2887,3},{3660,2887,3}, {3658,2883,3},{3662,2882,3},{3663,2885,3},{3665,2882,3},{3665,2878,3},{3667,2880,3}, {3670,2872,3},{3668,2867,3},{3672,2863,3},{3670,2862,3},{3673,2860,3},{3677,2862,3}, {3682,2862,3},{3680,2860,3},{3682,2858,3},{3683,2855,3},{3682,2853,3},{3682,2852,3}, {3678,2852,3},{3680,2848,3},{3682,2850,3},{3682,2847,3},{3683,2845,3},{3685,2847,3}, {3688,2847,3},{3687,2843,3},{3687,2840,3},{3685,2838,3},{3683,2838,3},{3683,2842,3}, {3678,2840,3},{3682,2832,3},{3678,2830,3},{3680,2827,3},{3682,2827,3},{3682,2832,3}, {3685,2828,3},{3683,2825,3},{3680,2823,3},{3675,2827,3},{3675,2830,3},{3672,2830,3}, {3673,2828,3},{3672,2825,3},{3668,2822,3},{3668,2817,3},{3660,2812,3},{3658,2808,3}, {3658,2807,3},{3657,2803,3},{3657,2802,3},{3657,2798,3},{3660,2797,3},{3660,2805,3}, {3663,2808,3},{3665,2807,3},{3663,2805,3},{3667,2807,3},{3668,2803,3},{3667,2803,3}, {3667,2802,3},{3668,2797,3},{3670,2803,3},{3672,2805,3},{3672,2808,3},{3670,2808,3}, {3672,2812,3},{3675,2808,3},{3677,2810,3},{3675,2813,3},{3680,2812,3},{3680,2808,3}, {3675,2805,3},{3677,2803,3},{3675,2802,3},{3675,2797,3},{3675,2795,3},{3673,2792,3}, {3675,2790,3},{3673,2788,3},{3675,2788,3},{3673,2787,3},{3675,2782,3},{3675,2772,3}, {3672,2768,3},{3672,2770,3},{3670,2767,3},{3665,2767,3},{3668,2755,3},{3665,2748,3}, {3667,2740,3},{3668,2740,3},{3668,2737,3},{3670,2737,3},{3670,2742,3},{3673,2743,3}, {3675,2747,3},{3677,2762,3},{3680,2763,3},{3678,2768,3},{3678,2773,3},{3682,2782,3}, {3682,2792,3},{3680,2793,3},{3680,2798,3},{3678,2803,3},{3680,2805,3},{3682,2805,3}, {3682,2802,3},{3683,2803,3},{3685,2800,3},{3687,2805,3},{3690,2802,3},{3690,2803,3}, {3692,2802,3},{3692,2807,3},{3693,2805,3},{3693,2810,3},{3693,2815,3},{3690,2817,3}, {3692,2817,3},{3693,2815,3},{3695,2820,3},{3697,2822,3},{3698,2820,3},{3700,2822,3}, {3698,2825,3},{3700,2825,3},{3702,2827,3},{3702,2832,3},{3703,2833,3},{3703,2810,3}, {3702,2810,3},{3703,2808,3},{3703,2792,3},{3698,2777,3},{3700,2768,3},{3698,2763,3}, {3700,2757,3},{3697,2757,3},{3700,2752,3},{3698,2748,3},{3703,2742,3},{3702,2742,3}, {3702,2740,3},{3700,2738,3},{3702,2738,3},{3702,2733,3},{3700,2733,3},{3697,2730,3}, {3695,2730,3},{3697,2730,3},{3695,2727,3},{3697,2725,3},{3702,2725,3},{3703,2723,3}, {3708,2723,3},{3710,2728,3},{3712,2725,3},{3713,2727,3},{3712,2732,3},{3715,2733,3}, {3713,2735,3},{3715,2737,3},{3715,2738,3},{3712,2738,3},{3712,2743,3},{3708,2747,3}, {3712,2753,3},{3712,2757,3},{3713,2757,3},{3713,2755,3},{3715,2755,3},{3718,2753,3}, {3720,2757,3},{3720,2758,3},{3718,2758,3},{3720,2762,3},{3722,2758,3},{3727,2762,3}, {3728,2760,3},{3727,2755,3},{3725,2755,3},{3722,2752,3},{3723,2750,3},{3727,2752,3}, {3727,2748,3},{3725,2747,3},{3727,2747,3},{3732,2750,3},{3733,2747,3},{3730,2745,3}, {3730,2740,3},{3735,2738,3},{3738,2743,3},{3742,2742,3},{3740,2737,3},{3737,2735,3}, {3737,2732,3},{3733,2733,3},{3735,2720,3},{3740,2722,3},{3747,2722,3},{3747,2718,3}, {3750,2718,3},{3755,2718,3},{3755,2722,3},{3758,2722,3},{3763,2713,3},{3765,2700,3}, {3768,2702,3},{3768,2712,3},{3772,2723,3},{3782,2727,3},{3783,2723,3},{3790,2727,3}, {3795,2727,3},{3798,2723,3},{3798,2713,3},{3800,2710,3},{3802,2707,3},{3803,2707,3}, {3807,2698,3},{3807,2692,3},{3803,2687,3},{3815,2682,3},{3817,2677,3},{3820,2678,3}, {3822,2677,3},{3820,2673,3},{3820,2663,3},{3810,2660,3},{3810,2658,3},{3813,2657,3}, {3812,2655,3},{3813,2653,3},{3817,2652,3},{3817,2648,3},{3822,2643,3},{3822,2642,3}, {3820,2642,3},{3822,2638,3},{3823,2640,3},{3827,2638,3},{3825,2638,3},{3822,2635,3}, {3823,2632,3},{3827,2628,3},{3827,2623,3},{3828,2623,3},{3828,2628,3},{3832,2628,3}, {3832,2630,3},{3833,2628,3},{3837,2628,3},{3835,2630,3},{3837,2632,3},{3833,2632,3}, {3830,2637,3},{3832,2638,3},{3833,2638,3},{3833,2640,3},{3835,2645,3},{3837,2648,3}, {3842,2645,3},{3840,2650,3},{3842,2652,3},{3847,2643,3},{3845,2640,3},{3845,2638,3}, {3850,2640,3},{3852,2637,3},{3863,2635,3},{3865,2637,3},{3867,2642,3},{3867,2648,3}, {3865,2653,3},{3860,2657,3},{3857,2657,3},{3852,2663,3},{3847,2663,3},{3847,2660,3}, {3845,2660,3},{3842,2658,3},{3842,2662,3},{3833,2665,3},{3830,2668,3},{3832,2670,3}, {3838,2667,3},{3843,2670,3},{3842,2673,3},{3837,2677,3},{3835,2680,3},{3838,2698,3}, {3840,2702,3},{3840,2708,3},{3845,2717,3},{3847,2705,3},{3845,2698,3},{3843,2693,3}, {3845,2692,3},{3847,2692,3},{3843,2690,3},{3843,2695,3},{3850,2688,3},{3853,2682,3}, {3853,2683,3},{3850,2688,3},{3855,2683,3},{3860,2685,3},{3862,2683,3},{3858,2680,3}, {3860,2680,3},{3862,2675,3},{3863,2677,3},{3865,2672,3},{3867,2675,3},{3868,2672,3}, {3873,2673,3},{3875,2683,3},{3873,2683,3},{3875,2685,3},{3873,2690,3},{3875,2692,3}, {3875,2693,3},{3882,2690,3},{3883,2693,3},{3880,2695,3},{3882,2697,3},{3885,2697,3}, {3887,2702,3},{3885,2703,3},{3887,2707,3},{3890,2703,3},{3892,2707,3},{3893,2705,3}, {3892,2700,3},{3893,2697,3},{3892,2685,3},{3893,2685,3},{3895,2680,3},{3898,2680,3}, {3902,2682,3},{3903,2680,3},{3907,2688,3},{3917,2682,3},{3917,2677,3},{3920,2673,3}, {3925,2672,3},{3927,2662,3},{3930,2663,3},{3932,2665,3},{3928,2663,3},{3928,2667,3}, {3930,2667,3},{3932,2670,3},{3933,2670,3},{3940,2680,3},{3943,2680,3},{3943,2687,3}, {3947,2687,3},{3948,2693,3},{3955,2695,3},{3957,2693,3},{3957,2688,3},{3955,2683,3}, {3957,2678,3},{3955,2667,3},{3952,2645,3},{3948,2637,3},{3948,2627,3},{3947,2625,3}, {3947,2623,3},{3945,2613,3},{3948,2607,3},{3957,2610,3},{3963,2615,3},{3967,2617,3}, {3975,2613,3},{3978,2615,3},{3982,2615,3},{3983,2613,3},{3995,2615,3},{4000,2620,3}, {3998,2625,3},{4000,2628,3},{4002,2633,3},{4010,2637,3},{4012,2640,3},{4020,2642,3}, {4022,2652,3},{4028,2657,3},{4028,2660,3},{4035,2668,3},{4038,2672,3},{4038,2670,3}, {4040,2677,3},{4040,2692,3},{4038,2697,3},{4040,2703,3},{4045,2708,3},{4045,2715,3}, {4043,2718,3},{4045,2723,3},{4047,2728,3},{4042,2733,3},{4040,2730,3},{4038,2730,3}, {4032,2743,3},{4030,2755,3},{4033,2762,3},{4032,2768,3},{4032,2778,3},{4037,2788,3}, {4040,2783,3},{4040,2778,3},{4043,2775,3},{4045,2775,3},{4048,2768,3},{4050,2768,3}, {4052,2772,3},{4053,2773,3},{4052,2775,3},{4053,2775,3},{4053,2778,3},{4050,2778,3}, {4052,2780,3},{4048,2803,3},{4045,2802,3},{4040,2790,3},{4037,2792,3},{4035,2795,3}, {4040,2825,3},{4040,2848,3},{4038,2847,3},{4040,2852,3},{4037,2867,3},{4037,2868,3}, {4040,2878,3},{4038,2887,3},{4037,2893,3},{4037,2907,3},{4042,2908,3},{4043,2915,3}, {4047,2908,3},{4047,2900,3},{4047,2897,3},{4047,2890,3},{4050,2885,3},{4052,2878,3}, {4055,2880,3},{4060,2893,3},{4063,2898,3},{4065,2910,3},{4067,2915,3},{4065,2927,3}, {4070,2938,3},{4068,2943,3},{4073,2952,3},{4068,2955,3},{4073,2980,3},{4072,2990,3}, {4072,2993,3},{4077,2993,3},{4075,2977,3},{4077,2975,3},{4078,2970,3},{4077,2952,3}, {4078,2948,3},{4077,2942,3},{4075,2938,3},{4077,2935,3},{4082,2933,3},{4080,2925,3}, {4083,2928,3},{4085,2928,3},{4088,2923,3},{4090,2915,3},{4095,2910,3},{4098,2902,3}, {4103,2902,3},{4105,2905,3},{4112,2907,3},{4112,2910,3},{4117,2907,3},{4123,2917,3}, {4123,2922,3},{4122,2930,3},{4117,2958,3},{4118,2962,3},{4115,2973,3},{4113,3007,3}, {4113,3017,3},{4117,3022,3},{4118,3023,3},{4122,3028,3},{4120,3033,3},{4118,3037,3}, {4115,3050,3},{4113,3063,3},{4108,3075,3},{4107,3097,3},{4110,3113,3},{4108,3123,3}, {4113,3133,3},{4117,3137,3},{4122,3142,3},{4123,3140,3},{4128,3142,3},{4130,3140,3}, {4132,3140,3},{4132,3147,3},{4135,3150,3},{4138,3162,3},{4143,3175,3},{4145,3177,3}, {4150,3188,3},{4155,3200,3},{4157,3203,3},{4160,3215,3},{4172,3228,3},{4172,3235,3}, {4175,3238,3},{4173,3242,3},{4177,3245,3},{4178,3250,3},{4182,3253,3},{4182,3257,3}, {4183,3260,3},{4183,3268,3},{4187,3278,3},{4187,3287,3},{4188,3295,3},{4193,3305,3}, {4198,3325,3},{4202,3333,3},{4198,3378,3},{4198,3410,3},{4193,3432,3},{4197,3447,3}, {4197,3448,3},{4195,3457,3},{4195,3472,3},{4198,3485,3},{4202,3492,3},{4210,3495,3}, {4208,3502,3},{4203,3505,3},{4202,3508,3},{4202,3515,3},{4203,3518,3},{4202,3522,3}, {4202,3512,3},{4192,3510,3},{4185,3515,3},{4180,3522,3},{4180,3520,3},{4177,3522,3}, {4172,3528,3},{4168,3542,3},{4165,3545,3},{4163,3558,3},{4167,3577,3},{4173,3595,3}, {4168,3592,3},{4163,3592,3},{4173,3597,3},{4168,3603,3},{4170,3603,3},{4168,3605,3}, {4160,3613,3},{4153,3613,3},{4150,3612,3},{4147,3613,3},{4135,3623,3},{4132,3633,3}, {4128,3635,3},{4125,3643,3},{4125,3648,3},{4127,3653,3},{4135,3662,3},{4137,3662,3}, {4137,3665,3},{4135,3687,3},{4128,3702,3},{4125,3703,3},{4120,3703,3},{4117,3705,3}, {4115,3715,3},{4115,3730,3},{4112,3732,3},{4110,3738,3},{4108,3742,3},{4107,3747,3}, {4103,3753,3},{4105,3760,3},{4112,3765,3},{4113,3768,3},{4112,3770,3},{4112,3778,3}, {4107,3778,3},{4105,3780,3},{4103,3782,3},{4102,3787,3},{4098,3790,3},{4098,3802,3}, {4093,3820,3},{4095,3828,3},{4092,3837,3},{4092,3838,3},{4092,3843,3},{4092,3852,3}, {4097,3863,3},{4095,3867,3},{4095,3870,3},{4102,3882,3},{4102,3887,3},{4103,3892,3}, {4103,3902,3},{4103,3905,3},{4107,3915,3},{4108,3917,3},{4105,3928,3},{4112,3942,3}, {4110,3950,3},{4102,3958,3},{4100,3965,3},{4102,3973,3},{4100,3978,3},{4095,3988,3}, {4098,4000,3},{4093,4007,3},{4092,4015,3},{4098,4033,3},{4102,4037,3},{4103,4045,3}, {4103,4055,3},{4107,4062,3},{4110,4068,3},{4115,4075,3},{4120,4083,3},{4120,4095,3}, {4123,4105,3},{4127,4110,3},{4128,4118,3},{4137,4132,3},{4137,4138,3},{4142,4143,3}, {4145,4143,3},{4150,4152,3},{4148,4165,3},{4150,4172,3},{4147,4172,3},{4147,4177,3}, {4143,4183,3},{4152,4197,3},{4148,4205,3},{4150,4210,3},{4150,4218,3},{4148,4220,3}, {4148,4228,3},{4143,4247,3},{4145,4252,3},{4147,4252,3},{4150,4257,3},{4158,4258,3}, {4160,4267,3},{4158,4283,3},{4153,4282,3},{4152,4278,3},{4147,4285,3},{4150,4290,3}, {4148,4290,3},{4145,4298,3},{4137,4303,3},{4137,4308,3},{4132,4313,3},{4130,4320,3}, {4128,4320,3},{4125,4312,3},{4125,4320,3},{4118,4323,3},{4120,4337,3},{4118,4343,3}, {4113,4347,3},{4110,4345,3},{4102,4348,3},{4100,4360,3},{4092,4367,3},{4083,4368,3}, {4077,4375,3},{4070,4373,3},{4068,4375,3},{4055,4365,3},{4053,4365,3},{4052,4362,3}, {4047,4355,3},{4042,4362,3},{4033,4360,3},{4027,4368,3},{4023,4370,3},{4022,4367,3}, {4017,4372,3},{4013,4365,3},{4012,4365,3},{4002,4393,3},{4002,4405,3},{4003,4410,3}, {4002,4415,3},{4003,4418,3},{4005,4428,3},{4000,4438,3},{3997,4448,3},{3992,4455,3}, {3983,4460,3},{3983,4462,3},{3980,4465,3},{3978,4470,3},{3977,4470,3},{3972,4477,3}, {3968,4480,3},{3963,4480,3},{3970,4473,3},{3972,4468,3},{3978,4460,3},{3970,4447,3}, {3965,4448,3},{3957,4443,3},{3945,4443,3},{3942,4442,3},{3938,4430,3},{3942,4423,3}, {3942,4420,3},{3940,4413,3},{3942,4412,3},{3942,4407,3},{3938,4403,3},{3928,4410,3}, {3925,4408,3},{3923,4410,3},{3920,4410,3},{3913,4422,3},{3908,4418,3},{3903,4420,3}, {3900,4417,3},{3895,4420,3},{3890,4420,3},{3887,4425,3},{3887,4428,3},{3883,4430,3}, {3872,4427,3},{3870,4428,3},{3867,4427,3},{3863,4432,3},{3852,4432,3},{3845,4430,3}, {3838,4430,3},{3837,4438,3},{3840,4443,3},{3835,4448,3},{3832,4447,3},{3827,4440,3}, {3817,4438,3},{3813,4435,3},{3810,4435,3},{3810,4432,3},{3803,4428,3},{3802,4427,3}, {3790,4422,3},{3787,4428,3},{3788,4433,3},{3787,4440,3},{3782,4442,3},{3782,4445,3}, {3777,4445,3},{3778,4453,3},{3777,4458,3},{3773,4462,3},{3770,4462,3},{3765,4455,3}, {3762,4458,3},{3760,4462,3},{3757,4460,3},{3748,4460,3},{3745,4458,3},{3743,4465,3}, {3738,4467,3},{3738,4472,3},{3735,4475,3},{3730,4482,3},{3727,4482,3},{3723,4477,3}, {3715,4478,3},{3717,4477,3},{3718,4463,3},{3707,4443,3},{3705,4435,3},{3702,4437,3}, {3697,4432,3},{3698,4425,3},{3705,4423,3},{3710,4420,3},{3715,4423,3},{3717,4427,3}, {3725,4427,3},{3728,4423,3},{3732,4412,3},{3732,4402,3},{3728,4397,3},{3722,4392,3}, {3722,4387,3},{3720,4383,3},{3723,4378,3},{3723,4372,3},{3723,4362,3},{3725,4358,3}, {3727,4357,3},{3725,4348,3},{3733,4335,3},{3732,4328,3},{3738,4315,3},{3735,4302,3}, {3732,4295,3},{3735,4283,3},{3738,4282,3},{3738,4278,3},{3735,4273,3},{3732,4272,3}, {3727,4265,3},{3715,4258,3},{3710,4235,3},{3713,4235,3},{3717,4233,3},{3723,4235,3}, {3728,4228,3},{3728,4222,3},{3732,4222,3},{3732,4220,3},{3727,4215,3},{3718,4205,3}, {3713,4183,3},{3712,4168,3},{3708,4155,3},{3707,4122,3},{3708,4118,3},{3713,4093,3}, {3712,4083,3},{3712,4077,3},{3708,4068,3},{3703,4052,3},{3700,4043,3},{3688,4018,3}, {3687,4012,3},{3682,4000,3},{3675,3982,3},{3675,3970,3},{3672,3963,3},{3667,3923,3}, {3667,3918,3},{3670,3903,3},{3670,3892,3},{3670,3873,3},{3685,3852,3},{3690,3838,3}, {3692,3825,3},{3690,3818,3},{3678,3788,3},{3675,3778,3},{3673,3767,3},{3663,3745,3}, {3667,3725,3},{3665,3717,3},{3667,3712,3},{3662,3708,3},{3663,3705,3},{3667,3702,3}, {3672,3705,3},{3675,3698,3},{3683,3667,3},{3680,3667,3},{3675,3662,3},{3670,3662,3}, {3663,3658,3},{3655,3658,3},{3648,3655,3},{3642,3657,3},{3640,3658,3},{3638,3662,3}, {3635,3662,3},{3633,3660,3},{3633,3665,3},{3628,3668,3},{3623,3668,3},{3622,3662,3}, {3623,3650,3},{3623,3648,3},{3620,3647,3},{3622,3638,3},{3620,3640,3},{3618,3637,3}, {3602,3638,3},{3600,3635,3},{3600,3632,3},{3600,3630,3},{3595,3630,3},{3597,3623,3}, {3595,3622,3},{3592,3618,3},{3582,3617,3},{3582,3615,3},{3587,3610,3},{3588,3602,3}, {3593,3600,3},{3593,3592,3},{2910,4655,131},{2917,4662,3},{2925,4668,3}, {2958,4693,3},{2995,4712,3},{3002,4717,3},{3008,4735,3},{3008,4772,3},{3002,4795,3}, {2993,4798,3},{2987,4798,3},{2980,4800,3},{2973,4805,3},{2973,4808,3},{2958,4817,3}, {2955,4817,3},{2955,4815,3},{2957,4810,3},{2960,4808,3},{2960,4802,3},{2962,4803,3}, {2963,4802,3},{2963,4797,3},{2957,4792,3},{2953,4785,3},{2942,4773,3},{2940,4770,3}, {2938,4768,3},{2938,4770,3},{2940,4783,3},{2935,4780,3},{2933,4783,3},{2933,4788,3}, {2940,4798,3},{2937,4802,3},{2935,4805,3},{2935,4808,3},{2927,4808,3},{2903,4815,3}, {2892,4822,3},{2888,4828,3},{2883,4828,3},{2877,4832,3},{2875,4837,3},{2873,4838,3}, {2867,4838,3},{2868,4837,3},{2867,4838,3},{2865,4835,3},{2863,4835,3},{2865,4838,3}, {2860,4838,3},{2855,4842,3},{2855,4835,3},{2855,4830,3},{2855,4823,3},{2855,4817,3}, {2855,4810,3},{2855,4805,3},{2855,4798,3},{2855,4792,3},{2853,4785,3},{2853,4780,3}, {2853,4773,3},{2855,4768,3},{2857,4768,3},{2863,4760,3},{2870,4758,3},{2878,4757,3}, {2900,4747,3},{2900,4738,3},{2902,4732,3},{2902,4725,3},{2903,4720,3},{2903,4713,3}, {2905,4707,3},{2905,4700,3},{2907,4695,3},{2907,4688,3},{2907,4682,3},{2908,4675,3}, {2908,4668,3},{2910,4663,3},{2910,4655,3},{2920,4472,3},{2923,4467,3},{2925,4460,3}, {2927,4455,3},{2928,4450,3},{2930,4443,3},{2933,4438,3},{2935,4433,3},{2937,4427,3}, {2938,4422,3},{2940,4417,3},{2943,4410,3},{2945,4405,3},{2947,4400,3},{2947,4397,3}, {2950,4390,3},{2952,4383,3},{2953,4378,3},{2957,4372,3},{2958,4365,3},{2960,4358,3}, {2965,4360,3},{2970,4360,3},{2975,4360,3},{2982,4360,3},{2987,4360,3},{2993,4360,3}, {2998,4360,3},{3005,4362,3},{3010,4362,3},{3015,4362,3},{3022,4363,3},{3027,4363,3}, {3032,4365,3},{3038,4367,3},{3038,4360,3},{3038,4353,3},{3038,4347,3},{3040,4340,3}, {3040,4333,3},{3040,4327,3},{3040,4320,3},{3042,4313,3},{3042,4307,3},{3043,4305,3}, {3050,4303,3},{3055,4302,3},{3060,4302,3},{3067,4300,3},{3073,4298,3},{3075,4293,3}, {3077,4287,3},{3080,4280,3},{3083,4275,3},{3085,4268,3},{3088,4262,3},{3090,4257,3}, {3093,4250,3},{3095,4243,3},{3098,4237,3},{3102,4232,3},{3103,4225,3},{3107,4218,3}, {3108,4213,3},{3112,4207,3},{3113,4200,3},{3117,4193,3},{3118,4187,3},{3122,4182,3}, {3123,4175,3},{3127,4168,3},{3128,4162,3},{3132,4157,3},{3133,4150,3},{3137,4143,3}, {3140,4138,3},{3142,4132,3},{3145,4127,3},{3148,4120,3},{3152,4113,3},{3155,4107,3}, {3157,4102,3},{3160,4095,3},{3163,4088,3},{3167,4083,3},{3170,4077,3},{3173,4070,3}, {3175,4063,3},{3178,4058,3},{3182,4052,3},{3185,4045,3},{3188,4038,3},{3190,4033,3}, {3193,4027,3},{3197,4020,3},{3200,4013,3},{3203,4008,3},{3207,4000,3},{3207,3995,3}, {3208,3988,3},{3210,3983,3},{3212,3977,3},{3213,3970,3},{3215,3963,3},{3217,3957,3}, {3218,3950,3},{3220,3943,3},{3222,3937,3},{3223,3930,3},{3228,3928,3},{3233,3927,3}, {3238,3923,3},{3243,3922,3},{3248,3920,3},{3253,3917,3},{3258,3915,3},{3263,3913,3}, {3268,3912,3},{3272,3908,3},{3277,3907,3},{3282,3905,3},{3287,3902,3},{3292,3900,3}, {3297,3898,3},{3302,3895,3},{3307,3893,3},{3312,3892,3},{3317,3890,3},{3322,3887,3}, {3325,3885,3},{3330,3883,3},{3335,3880,3},{3338,3880,3},{3340,3885,3},{3343,3892,3}, {3347,3898,3},{3348,3903,3},{3352,3910,3},{3355,3915,3},{3358,3922,3},{3360,3928,3}, {3363,3933,3},{3367,3940,3},{3370,3947,3},{3372,3952,3},{3375,3958,3},{3378,3965,3}, {3382,3970,3},{3383,3977,3},{3387,3983,3},{3390,3988,3},{3392,3995,3},{3395,4002,3}, {3398,4007,3},{3402,4013,3},{3403,4020,3},{3407,4027,3},{3410,4032,3},{3413,4038,3}, {3415,4045,3},{3418,4052,3},{3422,4057,3},{3425,4063,3},{3427,4070,3},{3430,4075,3}, {3433,4082,3},{3437,4088,3},{3438,4095,3},{3442,4100,3},{3460,4110,3},{3478,4123,3}, {3522,4122,3},{3540,4127,3},{3550,4128,3},{3562,4138,3},{3583,4138,3},{3605,4125,3}, {3635,4128,3},{3653,4140,3},{3660,4183,3},{3663,4188,3},{3668,4193,3},{3672,4197,3}, {3677,4202,3},{3680,4207,3},{3683,4212,3},{3688,4217,3},{3692,4220,3},{3695,4225,3}, {3700,4230,3},{3703,4235,3},{3707,4237,3},{3710,4235,3},{3715,4258,3},{3727,4265,3}, {3732,4272,3},{3735,4273,3},{3738,4278,3},{3738,4282,3},{3735,4283,3},{3732,4295,3}, {3735,4302,3},{3738,4315,3},{3732,4328,3},{3733,4335,3},{3725,4348,3},{3727,4357,3}, {3725,4358,3},{3723,4362,3},{3723,4372,3},{3723,4378,3},{3720,4383,3},{3722,4387,3}, {3722,4392,3},{3728,4397,3},{3732,4402,3},{3732,4412,3},{3728,4423,3},{3725,4427,3}, {3717,4427,3},{3715,4423,3},{3710,4420,3},{3705,4423,3},{3698,4425,3},{3697,4432,3}, {3702,4437,3},{3705,4435,3},{3707,4443,3},{3718,4463,3},{3717,4477,3},{3715,4478,3}, {3712,4477,3},{3708,4478,3},{3707,4482,3},{3705,4483,3},{3705,4487,3},{3702,4492,3}, {3697,4488,3},{3693,4490,3},{3688,4490,3},{3683,4485,3},{3680,4485,3},{3678,4487,3}, {3678,4495,3},{3677,4497,3},{3675,4502,3},{3668,4507,3},{3665,4507,3},{3660,4503,3}, {3657,4503,3},{3653,4502,3},{3650,4507,3},{3643,4508,3},{3642,4515,3},{3643,4523,3}, {3638,4528,3},{3630,4527,3},{3628,4530,3},{3625,4528,3},{3623,4532,3},{3615,4532,3}, {3608,4537,3},{3602,4533,3},{3598,4535,3},{3598,4538,3},{3602,4550,3},{3600,4555,3}, {3593,4567,3},{3582,4577,3},{3582,4587,3},{3583,4590,3},{3585,4603,3},{3587,4608,3}, {3585,4613,3},{3582,4615,3},{3580,4618,3},{3582,4627,3},{3583,4632,3},{3583,4633,3}, {3580,4635,3},{3578,4633,3},{3572,4623,3},{3572,4620,3},{3570,4615,3},{3570,4605,3}, {3568,4602,3},{3558,4602,3},{3558,4598,3},{3553,4600,3},{3550,4598,3},{3540,4605,3}, {3533,4613,3},{3532,4615,3},{3525,4612,3},{3522,4620,3},{3518,4618,3},{3517,4615,3}, {3512,4617,3},{3510,4615,3},{3508,4608,3},{3505,4603,3},{3507,4602,3},{3510,4593,3}, {3505,4592,3},{3503,4588,3},{3497,4590,3},{3493,4587,3},{3490,4587,3},{3490,4585,3}, {3492,4577,3},{3485,4577,3},{3482,4570,3},{3477,4570,3},{3473,4565,3},{3472,4565,3}, {3467,4572,3},{3460,4572,3},{3458,4573,3},{3455,4572,3},{3457,4565,3},{3457,4562,3}, {3458,4557,3},{3460,4553,3},{3458,4552,3},{3457,4552,3},{3452,4553,3},{3450,4552,3}, {3447,4550,3},{3447,4545,3},{3445,4543,3},{3433,4548,3},{3435,4553,3},{3432,4558,3}, {3423,4557,3},{3418,4555,3},{3415,4557,3},{3408,4547,3},{3402,4547,3},{3397,4540,3}, {3395,4545,3},{3395,4550,3},{3380,4560,3},{3378,4563,3},{3372,4565,3},{3367,4570,3}, {3363,4575,3},{3360,4575,3},{3358,4577,3},{3363,4583,3},{3363,4590,3},{3360,4590,3}, {3355,4595,3},{3352,4588,3},{3348,4587,3},{3348,4595,3},{3350,4597,3},{3350,4600,3}, {3343,4605,3},{3338,4605,3},{3327,4618,3},{3320,4618,3},{3320,4620,3},{3318,4618,3}, {3312,4612,3},{3312,4605,3},{3310,4605,3},{3308,4605,3},{3308,4610,3},{3307,4615,3}, {3303,4613,3},{3300,4610,3},{3297,4610,3},{3295,4617,3},{3297,4628,3},{3293,4642,3}, {3277,4673,3},{3270,4678,3},{3268,4683,3},{3260,4695,3},{3247,4713,3},{3247,4725,3}, {3248,4728,3},{3248,4732,3},{3248,4735,3},{3240,4743,3},{3238,4743,3},{3233,4742,3}, {3223,4753,3},{3215,4750,3},{3215,4755,3},{3212,4757,3},{3212,4758,3},{3208,4763,3}, {3205,4763,3},{3202,4767,3},{3202,4768,3},{3193,4773,3},{3190,4778,3},{3187,4778,3}, {3180,4787,3},{3140,4770,3},{3100,4770,3},{3100,4803,3},{3048,4803,3},{3047,4807,3}, {3042,4817,3},{3033,4820,3},{3033,4828,3},{3022,4840,3},{3018,4842,3},{3013,4838,3}, {3007,4843,3},{3000,4845,3},{2997,4853,3},{2995,4853,3},{2995,4857,3},{2993,4855,3}, {2993,4845,3},{2995,4835,3},{3000,4825,3},{3003,4817,3},{3005,4810,3},{3000,4797,3}, {3010,4793,3},{3002,4795,3},{3008,4772,3},{3008,4735,3},{3002,4717,3},{2995,4712,3}, {2958,4693,3},{2925,4668,3},{2917,4662,3},{2910,4655,3},{3325,3562,131}, {3328,3562,3},{3330,3570,3},{3333,3572,3},{3335,3580,3},{3340,3583,3},{3347,3593,3}, {3348,3595,3},{3353,3595,3},{3355,3603,3},{3358,3607,3},{3362,3603,3},{3363,3595,3}, {3365,3593,3},{3368,3597,3},{3372,3597,3},{3377,3602,3},{3377,3603,3},{3383,3607,3}, {3382,3610,3},{3385,3615,3},{3383,3620,3},{3387,3625,3},{3383,3633,3},{3383,3638,3}, {3385,3638,3},{3388,3637,3},{3388,3633,3},{3392,3628,3},{3405,3640,3},{3407,3643,3}, {3405,3647,3},{3407,3650,3},{3410,3652,3},{3413,3657,3},{3418,3660,3},{3420,3663,3}, {3423,3660,3},{3427,3658,3},{3432,3660,3},{3432,3657,3},{3437,3653,3},{3440,3655,3}, {3442,3655,3},{3447,3647,3},{3452,3645,3},{3450,3635,3},{3452,3633,3},{3455,3640,3}, {3460,3640,3},{3462,3642,3},{3460,3645,3},{3463,3647,3},{3463,3638,3},{3465,3637,3}, {3468,3635,3},{3470,3632,3},{3465,3630,3},{3463,3628,3},{3463,3625,3},{3463,3623,3}, {3465,3612,3},{3463,3603,3},{3465,3597,3},{3492,3587,3},{3498,3588,3},{3502,3590,3}, {3510,3588,3},{3517,3593,3},{3520,3597,3},{3528,3592,3},{3542,3592,3},{3550,3582,3}, {3550,3577,3},{3553,3577,3},{3557,3573,3},{3558,3575,3},{3558,3573,3},{3560,3577,3}, {3563,3578,3},{3565,3577,3},{3568,3580,3},{3573,3585,3},{3585,3580,3},{3585,3585,3}, {3593,3592,3},{3593,3600,3},{3588,3602,3},{3587,3610,3},{3582,3615,3},{3582,3617,3}, {3592,3618,3},{3595,3622,3},{3597,3623,3},{3595,3630,3},{3600,3630,3},{3600,3632,3}, {3600,3635,3},{3602,3638,3},{3618,3637,3},{3620,3640,3},{3622,3638,3},{3620,3647,3}, {3623,3648,3},{3623,3650,3},{3622,3662,3},{3623,3668,3},{3628,3668,3},{3633,3665,3}, {3633,3660,3},{3635,3662,3},{3638,3662,3},{3640,3658,3},{3642,3657,3},{3648,3655,3}, {3655,3658,3},{3663,3658,3},{3670,3662,3},{3675,3662,3},{3680,3667,3},{3683,3667,3}, {3675,3698,3},{3672,3705,3},{3667,3702,3},{3663,3705,3},{3662,3708,3},{3667,3712,3}, {3665,3717,3},{3667,3725,3},{3663,3745,3},{3673,3767,3},{3675,3778,3},{3678,3788,3}, {3690,3818,3},{3692,3825,3},{3690,3838,3},{3685,3852,3},{3670,3873,3},{3670,3892,3}, {3670,3903,3},{3667,3918,3},{3667,3923,3},{3672,3963,3},{3675,3970,3},{3675,3982,3}, {3682,4000,3},{3687,4012,3},{3688,4018,3},{3700,4043,3},{3703,4052,3},{3708,4068,3}, {3712,4077,3},{3712,4083,3},{3713,4093,3},{3708,4118,3},{3707,4122,3},{3708,4155,3}, {3712,4168,3},{3713,4183,3},{3718,4205,3},{3727,4215,3},{3732,4220,3},{3732,4222,3}, {3728,4222,3},{3728,4228,3},{3723,4235,3},{3717,4233,3},{3713,4235,3},{3710,4235,3}, {3707,4237,3},{3703,4235,3},{3700,4230,3},{3695,4225,3},{3692,4220,3},{3688,4217,3}, {3683,4212,3},{3680,4207,3},{3677,4202,3},{3672,4197,3},{3668,4193,3},{3663,4188,3}, {3660,4183,3},{3653,4140,3},{3635,4128,3},{3605,4125,3},{3583,4138,3},{3562,4138,3}, {3550,4128,3},{3540,4127,3},{3522,4122,3},{3478,4123,3},{3460,4110,3},{3442,4100,3}, {3438,4095,3},{3437,4088,3},{3433,4082,3},{3430,4075,3},{3427,4070,3},{3425,4063,3}, {3422,4057,3},{3418,4052,3},{3415,4045,3},{3413,4038,3},{3410,4032,3},{3407,4027,3}, {3403,4020,3},{3402,4013,3},{3398,4007,3},{3395,4002,3},{3392,3995,3},{3390,3988,3}, {3387,3983,3},{3383,3977,3},{3382,3970,3},{3378,3965,3},{3375,3958,3},{3372,3952,3}, {3370,3947,3},{3367,3940,3},{3363,3933,3},{3360,3928,3},{3358,3922,3},{3355,3915,3}, {3352,3910,3},{3348,3903,3},{3347,3898,3},{3343,3892,3},{3340,3885,3},{3338,3880,3}, {3337,3877,3},{3333,3872,3},{3330,3867,3},{3328,3860,3},{3325,3855,3},{3322,3850,3}, {3320,3845,3},{3317,3840,3},{3313,3833,3},{3312,3828,3},{3308,3823,3},{3305,3818,3}, {3303,3813,3},{3300,3808,3},{3297,3803,3},{3295,3797,3},{3292,3792,3},{3288,3787,3}, {3287,3782,3},{3283,3777,3},{3280,3772,3},{3278,3765,3},{3275,3760,3},{3272,3755,3}, {3268,3750,3},{3267,3745,3},{3263,3740,3},{3260,3735,3},{3258,3730,3},{3255,3723,3}, {3252,3718,3},{3248,3713,3},{3247,3708,3},{3243,3703,3},{3240,3698,3},{3238,3693,3}, {3235,3688,3},{3232,3683,3},{3233,3677,3},{3233,3672,3},{3235,3668,3},{3235,3662,3}, {3235,3657,3},{3237,3650,3},{3238,3645,3},{3238,3640,3},{3245,3632,3},{3252,3622,3}, {3253,3620,3},{3252,3617,3},{3253,3613,3},{3252,3608,3},{3258,3607,3},{3262,3603,3}, {3265,3603,3},{3267,3597,3},{3268,3595,3},{3268,3597,3},{3272,3593,3},{3273,3583,3}, {3273,3580,3},{3275,3580,3},{3270,3568,3},{3268,3567,3},{3268,3565,3},{3275,3563,3}, {3282,3563,3},{3285,3565,3},{3290,3562,3},{3293,3563,3},{3303,3563,3},{3323,3568,3}, {3325,3562,3},{3310,3510,131},{3322,3520,3},{3325,3522,3},{3328,3518,3}, {3328,3520,3},{3333,3525,3},{3345,3527,3},{3353,3535,3},{3365,3540,3},{3367,3542,3}, {3370,3542,3},{3372,3545,3},{3375,3545,3},{3380,3548,3},{3387,3548,3},{3390,3547,3}, {3390,3557,3},{3398,3560,3},{3400,3563,3},{3403,3562,3},{3410,3565,3},{3415,3562,3}, {3420,3563,3},{3423,3565,3},{3428,3565,3},{3432,3568,3},{3432,3570,3},{3432,3572,3}, {3438,3573,3},{3442,3582,3},{3447,3580,3},{3447,3590,3},{3452,3597,3},{3453,3598,3}, {3460,3598,3},{3465,3597,3},{3463,3603,3},{3465,3612,3},{3463,3623,3},{3463,3625,3}, {3463,3628,3},{3465,3630,3},{3470,3632,3},{3468,3635,3},{3465,3637,3},{3463,3638,3}, {3463,3647,3},{3460,3645,3},{3462,3642,3},{3460,3640,3},{3455,3640,3},{3452,3633,3}, {3450,3635,3},{3452,3645,3},{3447,3647,3},{3442,3655,3},{3440,3655,3},{3437,3653,3}, {3432,3657,3},{3432,3660,3},{3427,3658,3},{3423,3660,3},{3420,3663,3},{3418,3660,3}, {3413,3657,3},{3410,3652,3},{3407,3650,3},{3405,3647,3},{3407,3643,3},{3405,3640,3}, {3392,3628,3},{3388,3633,3},{3388,3637,3},{3385,3638,3},{3383,3638,3},{3383,3633,3}, {3387,3625,3},{3383,3620,3},{3385,3615,3},{3382,3610,3},{3383,3607,3},{3377,3603,3}, {3377,3602,3},{3372,3597,3},{3368,3597,3},{3365,3593,3},{3363,3595,3},{3362,3603,3}, {3358,3607,3},{3355,3603,3},{3353,3595,3},{3348,3595,3},{3347,3593,3},{3340,3583,3}, {3335,3580,3},{3333,3572,3},{3330,3570,3},{3328,3562,3},{3325,3562,3},{3328,3557,3}, {3323,3553,3},{3310,3550,3},{3310,3545,3},{3307,3543,3},{3307,3535,3},{3310,3532,3}, {3310,3530,3},{3310,3525,3},{3310,3510,3},{2475,5083,131},{2480,5087,3}, {2483,5085,3},{2492,5085,3},{2498,5080,3},{2505,5080,3},{2510,5077,3},{2543,5075,3}, {2548,5077,3},{2548,5075,3},{2552,5078,3},{2547,5082,3},{2547,5085,3},{2552,5082,3}, {2555,5083,3},{2560,5083,3},{2560,5078,3},{2562,5080,3},{2563,5087,3},{2557,5087,3}, {2553,5087,3},{2553,5090,3},{2560,5092,3},{2560,5095,3},{2563,5098,3},{2563,5092,3}, {2567,5088,3},{2572,5088,3},{2575,5092,3},{2578,5090,3},{2580,5093,3},{2577,5097,3}, {2580,5098,3},{2582,5097,3},{2583,5095,3},{2585,5095,3},{2590,5098,3},{2597,5098,3}, {2597,5100,3},{2605,5105,3},{2608,5113,3},{2613,5118,3},{2615,5125,3},{2610,5133,3}, {2603,5135,3},{2602,5138,3},{2597,5140,3},{2595,5142,3},{2595,5150,3},{2590,5157,3}, {2575,5160,3},{2573,5158,3},{2577,5157,3},{2573,5155,3},{2573,5153,3},{2573,5158,3}, {2570,5158,3},{2568,5155,3},{2570,5155,3},{2568,5150,3},{2568,5153,3},{2563,5155,3}, {2562,5153,3},{2562,5148,3},{2557,5150,3},{2552,5147,3},{2543,5152,3},{2530,5152,3}, {2528,5158,3},{2527,5160,3},{2502,5162,3},{2492,5157,3},{2485,5150,3},{2467,5143,3}, {2463,5138,3},{2460,5137,3},{2457,5133,3},{2460,5133,3},{2463,5135,3},{2465,5128,3}, {2467,5128,3},{2465,5127,3},{2463,5122,3},{2462,5122,3},{2458,5118,3},{2457,5112,3}, {2455,5112,3},{2457,5107,3},{2457,5100,3},{2460,5095,3},{2465,5090,3},{2470,5085,3}, {2475,5083,3},{1663,5308,131},{1665,5307,3},{1670,5303,3},{1675,5298,3}, {1680,5295,3},{1685,5290,3},{1690,5287,3},{1695,5282,3},{1700,5277,3},{1705,5273,3}, {1712,5272,3},{1717,5272,3},{1723,5273,3},{1730,5273,3},{1730,5275,3},{1735,5273,3}, {1740,5270,3},{1745,5267,3},{1750,5263,3},{1755,5260,3},{1760,5257,3},{1765,5253,3}, {1770,5248,3},{1775,5247,3},{1780,5243,3},{1785,5238,3},{1790,5237,3},{1790,5235,3}, {1795,5232,3},{1800,5228,3},{1805,5225,3},{1810,5222,3},{1815,5218,3},{1820,5215,3}, {1825,5210,3},{1830,5208,3},{1830,5207,3},{1835,5205,3},{1840,5200,3},{1845,5198,3}, {1845,5197,3},{1850,5193,3},{1855,5190,3},{1862,5188,3},{1868,5190,3},{1873,5193,3}, {1880,5195,3},{1887,5197,3},{1893,5198,3},{1900,5200,3},{1902,5207,3},{1905,5213,3}, {1907,5220,3},{1908,5227,3},{1912,5233,3},{1913,5240,3},{1915,5247,3},{1918,5253,3}, {1920,5260,3},{1922,5267,3},{1923,5273,3},{1927,5278,3},{1928,5285,3},{1930,5292,3}, {1933,5298,3},{1935,5305,3},{1937,5312,3},{1940,5318,3},{1942,5325,3},{1943,5332,3}, {1947,5338,3},{1948,5345,3},{1950,5352,3},{1953,5358,3},{1955,5365,3},{1957,5372,3}, {1960,5378,3},{1962,5385,3},{1963,5392,3},{1967,5398,3},{1968,5405,3},{1970,5412,3}, {1973,5418,3},{1975,5427,3},{1978,5433,3},{1980,5440,3},{1982,5447,3},{1985,5453,3}, {1987,5460,3},{1988,5467,3},{1992,5473,3},{1993,5480,3},{1995,5487,3},{1998,5493,3}, {2000,5500,3},{2007,5502,3},{2013,5505,3},{2020,5507,3},{2027,5508,3},{2033,5512,3}, {2040,5513,3},{2047,5515,3},{2053,5518,3},{2060,5520,3},{2067,5522,3},{2073,5525,3}, {2080,5527,3},{2087,5528,3},{2093,5532,3},{2100,5533,3},{2107,5535,3},{2113,5538,3}, {2120,5540,3},{2127,5542,3},{2133,5545,3},{2140,5547,3},{2147,5548,3},{2153,5552,3}, {2160,5553,3},{2167,5555,3},{2173,5558,3},{2180,5560,3},{2187,5562,3},{2193,5565,3}, {2200,5567,3},{2203,5565,3},{2210,5560,3},{2217,5555,3},{2223,5552,3},{2230,5547,3}, {2237,5542,3},{2243,5538,3},{2250,5533,3},{2257,5528,3},{2263,5525,3},{2270,5520,3}, {2275,5520,3},{2275,5522,3},{2280,5522,3},{2287,5522,3},{2293,5522,3},{2300,5522,3}, {2305,5523,3},{2310,5523,3},{2315,5527,3},{2320,5528,3},{2320,5530,3},{2325,5532,3}, {2325,5533,3},{2330,5535,3},{2335,5537,3},{2340,5538,3},{2345,5538,3},{2345,5540,3}, {2350,5540,3},{2352,5545,3},{2357,5547,3},{2362,5548,3},{2367,5550,3},{2372,5552,3}, {2372,5553,3},{2377,5557,3},{2382,5555,3},{2387,5557,3},{2392,5553,3},{2392,5550,3}, {2397,5547,3},{2398,5553,3},{2400,5560,3},{2402,5560,3},{2403,5567,3},{2402,5573,3}, {2403,5580,3},{2402,5582,3},{2403,5588,3},{2405,5595,3},{2407,5595,3},{2407,5602,3}, {2412,5600,3},{2418,5598,3},{2418,5597,3},{2423,5595,3},{2423,5592,3},{2422,5585,3}, {2423,5578,3},{2425,5578,3},{2427,5578,3},{2432,5582,3},{2437,5583,3},{2442,5583,3}, {2442,5582,3},{2447,5580,3},{2452,5580,3},{2452,5578,3},{2458,5578,3},{2458,5580,3}, {2458,5582,3},{2463,5582,3},{2463,5583,3},{2468,5583,3},{2473,5582,3},{2478,5582,3}, {2483,5580,3},{2488,5580,3},{2488,5582,3},{2493,5585,3},{2497,5590,3},{2498,5597,3}, {2497,5603,3},{2492,5603,3},{2487,5605,3},{2488,5598,3},{2487,5598,3},{2485,5598,3}, {2483,5603,3},{2478,5603,3},{2478,5605,3},{2473,5607,3},{2473,5613,3},{2478,5618,3}, {2483,5618,3},{2483,5620,3},{2483,5622,3},{2485,5628,3},{2488,5630,3},{2488,5633,3}, {2493,5633,3},{2498,5635,3},{2498,5637,3},{2473,5648,3},{2468,5650,3},{2450,5660,3}, {2432,5680,3},{2423,5683,3},{2413,5690,3},{2400,5708,3},{2393,5717,3},{2383,5750,3}, {2380,5762,3},{2378,5778,3},{2375,5782,3},{2372,5788,3},{2372,5810,3},{2368,5820,3}, {2365,5827,3},{2362,5835,3},{2362,5845,3},{2365,5848,3},{2365,5850,3},{2365,5852,3}, {2365,5858,3},{2363,5862,3},{2360,5862,3},{2357,5865,3},{2357,5867,3},{2353,5870,3}, {2353,5872,3},{2355,5872,3},{2352,5873,3},{2353,5877,3},{2350,5878,3},{2342,5880,3}, {2340,5882,3},{2332,5893,3},{2325,5895,3},{2320,5900,3},{2315,5902,3},{2308,5907,3}, {2305,5908,3},{2295,5923,3},{2280,5930,3},{2275,5935,3},{2268,5940,3},{2258,5953,3}, {2257,5952,3},{2255,5952,3},{2257,5963,3},{2253,5972,3},{2250,5972,3},{2248,5977,3}, {2253,5975,3},{2252,5978,3},{2253,5980,3},{2243,5985,3},{2222,5980,3},{2210,5972,3}, {2207,5968,3},{2193,5965,3},{2192,5962,3},{2187,5958,3},{2183,5958,3},{2177,5950,3}, {2162,5945,3},{2148,5935,3},{2143,5935,3},{2137,5917,3},{2128,5905,3},{2103,5883,3}, {2100,5880,3},{2093,5880,3},{2088,5873,3},{2085,5873,3},{2082,5868,3},{2080,5867,3}, {2077,5867,3},{2075,5870,3},{2078,5872,3},{2077,5873,3},{2073,5867,3},{2070,5865,3}, {2065,5860,3},{2057,5857,3},{2052,5853,3},{2042,5852,3},{2040,5848,3},{2035,5845,3}, {2035,5842,3},{2038,5835,3},{2037,5827,3},{2038,5830,3},{2038,5827,3},{2040,5822,3}, {2043,5820,3},{2047,5822,3},{2043,5822,3},{2042,5823,3},{2048,5823,3},{2058,5827,3}, {2062,5825,3},{2062,5822,3},{2055,5808,3},{2050,5807,3},{2047,5807,3},{2043,5800,3}, {2040,5797,3},{2038,5795,3},{2035,5798,3},{2032,5797,3},{2027,5787,3},{2022,5783,3}, {2018,5782,3},{2013,5785,3},{2002,5782,3},{1998,5782,3},{1992,5778,3},{1985,5777,3}, {1975,5770,3},{1972,5768,3},{1968,5770,3},{1967,5772,3},{1953,5770,3},{1942,5777,3}, {1937,5777,3},{1928,5775,3},{1918,5778,3},{1915,5782,3},{1908,5780,3},{1903,5783,3}, {1897,5780,3},{1897,5775,3},{1893,5772,3},{1895,5752,3},{1892,5725,3},{1885,5703,3}, {1880,5690,3},{1875,5682,3},{1858,5665,3},{1845,5663,3},{1840,5662,3},{1833,5662,3}, {1820,5655,3},{1813,5657,3},{1810,5652,3},{1808,5647,3},{1802,5643,3},{1797,5635,3}, {1793,5635,3},{1795,5618,3},{1793,5615,3},{1793,5603,3},{1790,5588,3},{1790,5580,3}, {1788,5565,3},{1783,5543,3},{1775,5538,3},{1768,5537,3},{1762,5527,3},{1755,5523,3}, {1747,5523,3},{1745,5528,3},{1740,5530,3},{1737,5530,3},{1728,5525,3},{1723,5527,3}, {1720,5522,3},{1715,5520,3},{1708,5515,3},{1702,5507,3},{1702,5505,3},{1700,5498,3}, {1698,5497,3},{1698,5488,3},{1697,5487,3},{1698,5487,3},{1698,5485,3},{1697,5485,3}, {1695,5482,3},{1697,5482,3},{1695,5477,3},{1697,5472,3},{1702,5472,3},{1703,5450,3}, {1702,5447,3},{1703,5442,3},{1702,5437,3},{1702,5410,3},{1698,5402,3},{1693,5402,3}, {1692,5398,3},{1690,5393,3},{1687,5375,3},{1682,5368,3},{1678,5367,3},{1677,5362,3}, {1673,5358,3},{1675,5348,3},{1673,5337,3},{1667,5313,3},{1663,5308,3},{2563,5627,131}, {2560,5622,3},{2562,5620,3},{2567,5615,3},{2577,5615,3},{2583,5615,3},{2590,5617,3}, {2602,5617,3},{2608,5615,3},{2608,5608,3},{2622,5617,3},{2627,5620,3},{2627,5622,3}, {2622,5622,3},{2620,5622,3},{2623,5627,3},{2620,5630,3},{2622,5635,3},{2622,5640,3}, {2623,5640,3},{2625,5638,3},{2622,5630,3},{2627,5632,3},{2628,5632,3},{2627,5633,3}, {2627,5637,3},{2632,5632,3},{2632,5635,3},{2638,5637,3},{2637,5637,3},{2635,5638,3}, {2637,5640,3},{2635,5640,3},{2635,5643,3},{2633,5643,3},{2633,5648,3},{2635,5648,3}, {2635,5650,3},{2632,5652,3},{2632,5647,3},{2628,5640,3},{2625,5640,3},{2625,5648,3}, {2622,5648,3},{2620,5647,3},{2622,5645,3},{2622,5643,3},{2618,5643,3},{2617,5647,3}, {2615,5647,3},{2613,5647,3},{2615,5642,3},{2617,5640,3},{2618,5640,3},{2617,5638,3}, {2620,5638,3},{2620,5637,3},{2617,5632,3},{2615,5633,3},{2612,5633,3},{2615,5637,3}, {2610,5637,3},{2610,5638,3},{2608,5642,3},{2610,5643,3},{2608,5647,3},{2608,5643,3}, {2605,5643,3},{2605,5638,3},{2602,5638,3},{2602,5642,3},{2600,5642,3},{2598,5640,3}, {2597,5642,3},{2595,5642,3},{2595,5645,3},{2593,5643,3},{2593,5638,3},{2590,5640,3}, {2585,5637,3},{2580,5637,3},{2575,5632,3},{2573,5630,3},{2575,5630,3},{2575,5628,3}, {2567,5627,3},{2563,5627,3},{2270,5520,131},{2267,5517,3},{2262,5512,3}, {2255,5505,3},{2250,5500,3},{2252,5493,3},{2252,5487,3},{2253,5480,3},{2255,5473,3}, {2255,5467,3},{2257,5460,3},{2258,5453,3},{2258,5447,3},{2260,5440,3},{2262,5433,3}, {2262,5427,3},{2263,5420,3},{2265,5413,3},{2265,5407,3},{2267,5400,3},{2268,5393,3}, {2268,5387,3},{2270,5380,3},{2272,5373,3},{2272,5367,3},{2273,5360,3},{2275,5353,3}, {2275,5347,3},{2277,5340,3},{2278,5333,3},{2278,5327,3},{2280,5320,3},{2282,5313,3}, {2282,5307,3},{2283,5300,3},{2285,5293,3},{2285,5287,3},{2287,5280,3},{2288,5273,3}, {2288,5267,3},{2290,5260,3},{2292,5253,3},{2292,5247,3},{2293,5240,3},{2295,5233,3}, {2295,5227,3},{2297,5220,3},{2298,5213,3},{2298,5207,3},{2300,5200,3},{2303,5198,3}, {2310,5197,3},{2317,5195,3},{2322,5193,3},{2328,5192,3},{2335,5190,3},{2342,5188,3}, {2348,5187,3},{2355,5185,3},{2362,5182,3},{2367,5180,3},{2373,5178,3},{2380,5177,3}, {2387,5175,3},{2390,5168,3},{2395,5162,3},{2398,5157,3},{2403,5150,3},{2407,5143,3}, {2410,5137,3},{2415,5130,3},{2418,5125,3},{2423,5118,3},{2427,5112,3},{2433,5112,3}, {2440,5112,3},{2447,5112,3},{2455,5112,3},{2457,5112,3},{2458,5118,3},{2462,5122,3}, {2462,5127,3},{2460,5128,3},{2460,5130,3},{2457,5130,3},{2452,5130,3},{2458,5138,3}, {2462,5140,3},{2462,5142,3},{2462,5143,3},{2458,5145,3},{2460,5148,3},{2457,5150,3}, {2453,5142,3},{2448,5140,3},{2442,5132,3},{2435,5130,3},{2433,5128,3},{2430,5128,3}, {2428,5135,3},{2432,5138,3},{2432,5143,3},{2430,5150,3},{2425,5153,3},{2425,5157,3}, {2427,5158,3},{2435,5158,3},{2438,5158,3},{2435,5162,3},{2427,5162,3},{2422,5163,3}, {2423,5167,3},{2427,5167,3},{2422,5172,3},{2427,5173,3},{2428,5175,3},{2427,5178,3}, {2412,5177,3},{2405,5178,3},{2400,5182,3},{2398,5190,3},{2395,5193,3},{2398,5193,3}, {2398,5200,3},{2400,5202,3},{2395,5208,3},{2397,5210,3},{2397,5220,3},{2400,5228,3}, {2400,5233,3},{2403,5237,3},{2405,5243,3},{2408,5245,3},{2413,5253,3},{2415,5258,3}, {2420,5258,3},{2420,5262,3},{2420,5263,3},{2413,5268,3},{2415,5270,3},{2413,5277,3}, {2415,5285,3},{2413,5295,3},{2417,5300,3},{2412,5305,3},{2413,5312,3},{2412,5315,3}, {2413,5315,3},{2417,5315,3},{2413,5322,3},{2410,5325,3},{2408,5330,3},{2410,5333,3}, {2410,5342,3},{2412,5343,3},{2410,5347,3},{2408,5353,3},{2405,5358,3},{2407,5368,3}, {2407,5387,3},{2410,5395,3},{2413,5412,3},{2420,5418,3},{2422,5427,3},{2427,5433,3}, {2425,5438,3},{2428,5442,3},{2438,5448,3},{2440,5448,3},{2443,5450,3},{2443,5448,3}, {2443,5453,3},{2447,5452,3},{2445,5457,3},{2447,5458,3},{2448,5457,3},{2448,5448,3}, {2450,5447,3},{2453,5442,3},{2457,5447,3},{2453,5447,3},{2457,5447,3},{2457,5448,3}, {2452,5452,3},{2450,5455,3},{2450,5457,3},{2452,5455,3},{2452,5458,3},{2460,5463,3}, {2462,5460,3},{2462,5463,3},{2465,5463,3},{2467,5467,3},{2468,5465,3},{2472,5465,3}, {2472,5463,3},{2473,5463,3},{2480,5470,3},{2478,5475,3},{2480,5477,3},{2483,5477,3}, {2502,5507,3},{2520,5523,3},{2527,5528,3},{2522,5532,3},{2520,5530,3},{2518,5530,3}, {2520,5533,3},{2525,5533,3},{2527,5530,3},{2532,5533,3},{2532,5537,3},{2537,5537,3}, {2535,5538,3},{2542,5543,3},{2540,5545,3},{2542,5548,3},{2547,5550,3},{2548,5548,3}, {2558,5555,3},{2558,5557,3},{2553,5553,3},{2552,5555,3},{2553,5563,3},{2558,5565,3}, {2562,5568,3},{2568,5577,3},{2572,5587,3},{2582,5595,3},{2577,5593,3},{2577,5595,3}, {2583,5597,3},{2588,5603,3},{2592,5603,3},{2593,5603,3},{2592,5602,3},{2598,5605,3}, {2608,5608,3},{2608,5615,3},{2602,5617,3},{2590,5617,3},{2583,5615,3},{2577,5615,3}, {2567,5615,3},{2562,5620,3},{2560,5622,3},{2563,5627,3},{2560,5635,3},{2553,5637,3}, {2537,5635,3},{2533,5638,3},{2530,5638,3},{2523,5637,3},{2507,5635,3},{2498,5637,3}, {2498,5635,3},{2493,5633,3},{2488,5633,3},{2488,5630,3},{2485,5628,3},{2483,5622,3}, {2483,5620,3},{2483,5618,3},{2478,5618,3},{2473,5613,3},{2473,5607,3},{2478,5605,3}, {2478,5603,3},{2483,5603,3},{2485,5598,3},{2487,5598,3},{2488,5598,3},{2487,5605,3}, {2492,5603,3},{2497,5603,3},{2498,5597,3},{2497,5590,3},{2493,5585,3},{2488,5582,3}, {2488,5580,3},{2483,5580,3},{2478,5582,3},{2473,5582,3},{2468,5583,3},{2463,5583,3}, {2463,5582,3},{2458,5582,3},{2458,5580,3},{2458,5578,3},{2452,5578,3},{2452,5580,3}, {2447,5580,3},{2442,5582,3},{2442,5583,3},{2437,5583,3},{2432,5582,3},{2427,5578,3}, {2425,5578,3},{2423,5578,3},{2422,5585,3},{2423,5592,3},{2423,5595,3},{2418,5597,3}, {2418,5598,3},{2412,5600,3},{2407,5602,3},{2407,5595,3},{2405,5595,3},{2403,5588,3}, {2402,5582,3},{2403,5580,3},{2402,5573,3},{2403,5567,3},{2402,5560,3},{2400,5560,3}, {2398,5553,3},{2397,5547,3},{2392,5550,3},{2392,5553,3},{2387,5557,3},{2382,5555,3}, {2377,5557,3},{2372,5553,3},{2372,5552,3},{2367,5550,3},{2362,5548,3},{2357,5547,3}, {2352,5545,3},{2350,5540,3},{2345,5540,3},{2345,5538,3},{2340,5538,3},{2335,5537,3}, {2330,5535,3},{2325,5533,3},{2325,5532,3},{2320,5530,3},{2320,5528,3},{2315,5527,3}, {2310,5523,3},{2305,5523,3},{2300,5522,3},{2293,5522,3},{2287,5522,3},{2280,5522,3}, {2275,5522,3},{2275,5520,3},{2270,5520,3},{1268,4353,131},{1268,4347,3}, {1278,4348,3},{1283,4348,3},{1293,4340,3},{1297,4340,3},{1312,4332,3},{1320,4325,3}, {1327,4323,3},{1330,4323,3},{1330,4325,3},{1352,4325,3},{1358,4330,3},{1360,4328,3}, {1372,4328,3},{1380,4323,3},{1387,4323,3},{1400,4308,3},{1413,4308,3},{1418,4310,3}, {1432,4305,3},{1437,4302,3},{1448,4298,3},{1452,4295,3},{1452,4298,3},{1445,4300,3}, {1443,4302,3},{1455,4303,3},{1462,4298,3},{1467,4300,3},{1470,4297,3},{1478,4295,3}, {1487,4288,3},{1492,4288,3},{1487,4288,3},{1483,4292,3},{1482,4295,3},{1487,4295,3}, {1495,4293,3},{1500,4288,3},{1507,4287,3},{1510,4288,3},{1513,4287,3},{1518,4278,3}, {1522,4270,3},{1520,4268,3},{1518,4267,3},{1518,4263,3},{1523,4262,3},{1523,4268,3}, {1527,4270,3},{1530,4268,3},{1537,4272,3},{1533,4272,3},{1530,4270,3},{1530,4272,3}, {1525,4278,3},{1522,4278,3},{1520,4278,3},{1523,4278,3},{1523,4280,3},{1527,4282,3}, {1535,4282,3},{1543,4277,3},{1547,4278,3},{1553,4275,3},{1557,4272,3},{1558,4273,3}, {1563,4270,3},{1568,4272,3},{1570,4270,3},{1573,4270,3},{1575,4275,3},{1583,4275,3}, {1588,4283,3},{1610,4285,3},{1638,4278,3},{1638,4283,3},{1642,4288,3},{1643,4293,3}, {1648,4293,3},{1648,4295,3},{1648,4297,3},{1652,4302,3},{1657,4307,3},{1662,4308,3}, {1662,4310,3},{1668,4310,3},{1668,4315,3},{1667,4315,3},{1667,4320,3},{1668,4320,3}, {1670,4320,3},{1675,4318,3},{1677,4323,3},{1682,4323,3},{1682,4322,3},{1682,4320,3}, {1683,4315,3},{1688,4315,3},{1693,4312,3},{1693,4313,3},{1698,4315,3},{1705,4315,3}, {1710,4313,3},{1715,4317,3},{1722,4317,3},{1723,4322,3},{1725,4327,3},{1727,4327,3}, {1732,4325,3},{1732,4323,3},{1733,4318,3},{1737,4323,3},{1742,4325,3},{1745,4330,3}, {1748,4335,3},{1750,4340,3},{1752,4340,3},{1753,4345,3},{1752,4350,3},{1750,4355,3}, {1748,4360,3},{1747,4365,3},{1742,4367,3},{1740,4372,3},{1735,4375,3},{1735,4380,3}, {1735,4387,3},{1737,4392,3},{1735,4392,3},{1730,4393,3},{1732,4398,3},{1735,4398,3}, {1737,4403,3},{1735,4408,3},{1737,4413,3},{1738,4413,3},{1742,4418,3},{1740,4420,3}, {1740,4427,3},{1742,4432,3},{1742,4438,3},{1742,4445,3},{1740,4450,3},{1562,4633,3}, {1568,4640,3},{1575,4645,3},{1582,4652,3},{1588,4658,3},{1595,4663,3},{1602,4670,3}, {1608,4677,3},{1615,4682,3},{1622,4688,3},{1628,4693,3},{1635,4700,3},{1642,4707,3}, {1648,4712,3},{1655,4718,3},{1662,4725,3},{1668,4730,3},{1675,4737,3},{1682,4743,3}, {1688,4748,3},{1693,4755,3},{1700,4762,3},{1707,4767,3},{1713,4773,3},{1720,4780,3}, {1727,4785,3},{1733,4792,3},{1740,4798,3},{1747,4803,3},{1753,4810,3},{1760,4815,3}, {1767,4822,3},{1773,4828,3},{1780,4833,3},{1787,4840,3},{1793,4847,3},{1800,4852,3}, {1807,4858,3},{1813,4865,3},{1820,4870,3},{1827,4877,3},{1828,4883,3},{1830,4890,3}, {1832,4897,3},{1833,4903,3},{1833,4910,3},{1835,4917,3},{1837,4923,3},{1838,4930,3}, {1840,4937,3},{1842,4943,3},{1843,4950,3},{1845,4957,3},{1847,4962,3},{1848,4968,3}, {1848,4975,3},{1850,4982,3},{1852,4988,3},{1853,4995,3},{1855,5002,3},{1857,5008,3}, {1858,5015,3},{1860,5022,3},{1862,5028,3},{1863,5035,3},{1863,5042,3},{1865,5048,3}, {1867,5055,3},{1868,5062,3},{1870,5068,3},{1872,5075,3},{1873,5082,3},{1875,5088,3}, {1877,5095,3},{1877,5102,3},{1878,5108,3},{1880,5115,3},{1882,5120,3},{1883,5127,3}, {1885,5133,3},{1887,5140,3},{1888,5147,3},{1890,5153,3},{1892,5160,3},{1892,5167,3}, {1893,5173,3},{1895,5180,3},{1897,5187,3},{1898,5193,3},{1900,5200,3},{1893,5198,3}, {1887,5197,3},{1880,5195,3},{1873,5193,3},{1868,5190,3},{1862,5188,3},{1855,5190,3}, {1850,5193,3},{1845,5197,3},{1845,5198,3},{1840,5200,3},{1835,5205,3},{1830,5207,3}, {1830,5208,3},{1825,5210,3},{1820,5215,3},{1815,5218,3},{1810,5222,3},{1805,5225,3}, {1800,5228,3},{1795,5232,3},{1790,5235,3},{1790,5237,3},{1785,5238,3},{1780,5243,3}, {1775,5247,3},{1770,5248,3},{1765,5253,3},{1760,5257,3},{1755,5260,3},{1750,5263,3}, {1745,5267,3},{1740,5270,3},{1735,5273,3},{1730,5275,3},{1730,5273,3},{1723,5273,3}, {1717,5272,3},{1712,5272,3},{1705,5273,3},{1700,5277,3},{1695,5282,3},{1690,5287,3}, {1685,5290,3},{1680,5295,3},{1675,5298,3},{1670,5303,3},{1665,5307,3},{1663,5308,3}, {1662,5298,3},{1655,5287,3},{1653,5278,3},{1650,5273,3},{1648,5260,3},{1640,5245,3}, {1627,5230,3},{1617,5222,3},{1610,5222,3},{1608,5220,3},{1598,5215,3},{1593,5218,3}, {1587,5218,3},{1583,5223,3},{1575,5222,3},{1565,5225,3},{1562,5222,3},{1558,5208,3}, {1553,5200,3},{1552,5190,3},{1547,5187,3},{1545,5187,3},{1547,5183,3},{1543,5173,3}, {1540,5167,3},{1537,5167,3},{1535,5168,3},{1533,5168,3},{1532,5152,3},{1527,5147,3}, {1525,5138,3},{1523,5138,3},{1523,5135,3},{1518,5123,3},{1512,5090,3},{1508,5080,3}, {1505,5055,3},{1500,5045,3},{1492,5035,3},{1492,5030,3},{1487,5022,3},{1483,5018,3}, {1485,5013,3},{1482,5005,3},{1485,5003,3},{1485,4997,3},{1480,4987,3},{1473,4958,3}, {1468,4952,3},{1463,4937,3},{1453,4918,3},{1452,4918,3},{1453,4913,3},{1450,4908,3}, {1443,4902,3},{1437,4900,3},{1432,4900,3},{1430,4895,3},{1425,4893,3},{1425,4888,3}, {1422,4888,3},{1417,4885,3},{1412,4878,3},{1403,4870,3},{1403,4855,3},{1398,4847,3}, {1402,4845,3},{1400,4843,3},{1402,4835,3},{1400,4835,3},{1400,4832,3},{1398,4823,3}, {1397,4818,3},{1400,4818,3},{1402,4815,3},{1405,4800,3},{1402,4793,3},{1397,4788,3}, {1393,4782,3},{1390,4772,3},{1387,4765,3},{1365,4740,3},{1360,4720,3},{1353,4693,3}, {1348,4685,3},{1343,4668,3},{1343,4663,3},{1342,4652,3},{1340,4647,3},{1342,4642,3}, {1340,4635,3},{1343,4623,3},{1340,4612,3},{1340,4605,3},{1338,4582,3},{1335,4577,3}, {1333,4565,3},{1318,4550,3},{1307,4540,3},{1302,4520,3},{1297,4513,3},{1287,4507,3}, {1275,4505,3},{1278,4498,3},{1280,4498,3},{1280,4503,3},{1285,4502,3},{1283,4500,3}, {1283,4495,3},{1278,4490,3},{1280,4488,3},{1277,4487,3},{1278,4488,3},{1277,4492,3}, {1273,4490,3},{1273,4487,3},{1273,4483,3},{1277,4483,3},{1277,4477,3},{1275,4473,3}, {1277,4473,3},{1280,4470,3},{1282,4460,3},{1278,4453,3},{1268,4443,3},{1267,4443,3}, {1268,4440,3},{1263,4428,3},{1263,4423,3},{1262,4417,3},{1263,4413,3},{1263,4418,3}, {1265,4420,3},{1265,4415,3},{1260,4407,3},{1260,4398,3},{1260,4395,3},{1262,4392,3}, {1265,4390,3},{1265,4387,3},{1268,4382,3},{1275,4360,3},{1273,4357,3},{1268,4353,3}, {1638,4278,131},{1642,4278,3},{1647,4278,3},{1652,4273,3},{1657,4272,3}, {1667,4273,3},{1667,4272,3},{1672,4270,3},{1673,4272,3},{1675,4268,3},{1682,4265,3}, {1683,4257,3},{1687,4253,3},{1692,4255,3},{1700,4255,3},{1703,4252,3},{1703,4245,3}, {1712,4240,3},{1715,4242,3},{1718,4237,3},{1712,4238,3},{1710,4237,3},{1703,4238,3}, {1702,4237,3},{1713,4235,3},{1723,4233,3},{1730,4233,3},{1733,4232,3},{1740,4232,3}, {1745,4230,3},{1745,4227,3},{1757,4217,3},{1758,4215,3},{1757,4213,3},{1765,4210,3}, {1765,4205,3},{1772,4202,3},{1772,4198,3},{1777,4193,3},{1778,4190,3},{1782,4188,3}, {1780,4185,3},{1783,4182,3},{1783,4178,3},{1787,4178,3},{1788,4175,3},{1795,4168,3}, {1798,4167,3},{1800,4168,3},{1802,4165,3},{1803,4165,3},{1808,4160,3},{1812,4160,3}, {1817,4155,3},{1818,4157,3},{1820,4152,3},{1820,4153,3},{1822,4153,3},{1822,4150,3}, {1827,4152,3},{1828,4147,3},{1830,4148,3},{1840,4143,3},{1847,4143,3},{1850,4140,3}, {1853,4137,3},{1857,4137,3},{1858,4132,3},{1857,4130,3},{1860,4127,3},{1865,4125,3}, {1870,4120,3},{1875,4122,3},{1883,4125,3},{1887,4120,3},{1887,4117,3},{1895,4113,3}, {1907,4117,3},{1912,4108,3},{1918,4105,3},{1922,4103,3},{1923,4105,3},{1932,4100,3}, {1933,4095,3},{1935,4097,3},{1942,4093,3},{1947,4095,3},{1950,4095,3},{1953,4085,3}, {1962,4075,3},{1960,4080,3},{1967,4080,3},{1972,4078,3},{1977,4075,3},{1978,4073,3}, {1980,4067,3},{1978,4065,3},{1977,4065,3},{1977,4063,3},{1982,4062,3},{1983,4060,3}, {1988,4058,3},{1990,4053,3},{1995,4053,3},{1997,4053,3},{2002,4045,3},{2007,4040,3}, {2007,4033,3},{2012,4027,3},{2017,4023,3},{2018,4023,3},{2020,4017,3},{2022,4013,3}, {2027,4010,3},{2028,4005,3},{2027,3998,3},{2030,3990,3},{2028,3990,3},{2027,3995,3}, {2025,3993,3},{2035,3977,3},{2043,3968,3},{2043,3967,3},{2052,3960,3},{2057,3957,3}, {2058,3960,3},{2062,3955,3},{2067,3952,3},{2070,3948,3},{2075,3950,3},{2075,3947,3}, {2073,3947,3},{2077,3943,3},{2080,3942,3},{2080,3945,3},{2082,3945,3},{2085,3942,3}, {2082,3940,3},{2087,3935,3},{2090,3933,3},{2088,3937,3},{2092,3935,3},{2092,3930,3}, {2098,3925,3},{2103,3925,3},{2107,3923,3},{2110,3918,3},{2115,3915,3},{2118,3917,3}, {2122,3915,3},{2132,3908,3},{2137,3915,3},{2142,3917,3},{2147,3917,3},{2148,3915,3}, {2150,3917,3},{2152,3915,3},{2153,3915,3},{2152,3912,3},{2158,3908,3},{2162,3910,3}, {2168,3908,3},{2173,3912,3},{2175,3910,3},{2173,3908,3},{2172,3907,3},{2180,3903,3}, {2185,3897,3},{2188,3897,3},{2192,3895,3},{2190,3900,3},{2183,3902,3},{2183,3903,3}, {2185,3902,3},{2195,3900,3},{2205,3902,3},{2208,3903,3},{2215,3905,3},{2212,3902,3}, {2217,3903,3},{2222,3903,3},{2227,3907,3},{2232,3908,3},{2233,3910,3},{2240,3915,3}, {2242,3912,3},{2238,3910,3},{2237,3908,3},{2242,3907,3},{2257,3908,3},{2272,3898,3}, {2277,3902,3},{2283,3893,3},{2278,3897,3},{2275,3897,3},{2292,3885,3},{2292,3888,3}, {2285,3892,3},{2285,3895,3},{2287,3897,3},{2290,3893,3},{2292,3892,3},{2297,3890,3}, {2298,3887,3},{2298,3882,3},{2300,3878,3},{2303,3878,3},{2308,3880,3},{2313,3878,3}, {2315,3880,3},{2318,3878,3},{2317,3877,3},{2320,3877,3},{2320,3875,3},{2325,3870,3}, {2327,3872,3},{2328,3870,3},{2333,3870,3},{2335,3868,3},{2342,3867,3},{2342,3865,3}, {2350,3863,3},{2353,3860,3},{2357,3860,3},{2355,3855,3},{2353,3858,3},{2352,3858,3}, {2353,3855,3},{2362,3852,3},{2373,3845,3},{2378,3845,3},{2382,3838,3},{2388,3833,3}, {2388,3830,3},{2395,3825,3},{2400,3817,3},{2403,3813,3},{2407,3808,3},{2408,3808,3}, {2408,3803,3},{2417,3792,3},{2418,3795,3},{2418,3792,3},{2422,3793,3},{2420,3788,3}, {2417,3790,3},{2417,3783,3},{2427,3775,3},{2425,3773,3},{2430,3767,3},{2428,3765,3}, {2428,3762,3},{2425,3763,3},{2425,3760,3},{2427,3757,3},{2427,3753,3},{2432,3748,3}, {2435,3748,3},{2437,3745,3},{2440,3745,3},{2440,3748,3},{2445,3745,3},{2447,3743,3}, {2450,3742,3},{2455,3738,3},{2457,3738,3},{2467,3728,3},{2468,3722,3},{2475,3718,3}, {2477,3722,3},{2478,3722,3},{2478,3717,3},{2483,3713,3},{2483,3718,3},{2487,3723,3}, {2495,3720,3},{2502,3723,3},{2512,3718,3},{2515,3720,3},{2522,3718,3},{2528,3712,3}, {2530,3708,3},{2535,3703,3},{2543,3700,3},{2548,3700,3},{2555,3693,3},{2565,3690,3}, {2568,3687,3},{2578,3675,3},{2575,3673,3},{2578,3667,3},{2582,3667,3},{2588,3660,3}, {2593,3665,3},{2602,3667,3},{2607,3665,3},{2608,3662,3},{2608,3653,3},{2615,3645,3}, {2623,3643,3},{2632,3637,3},{2653,3627,3},{2662,3620,3},{2675,3607,3},{2685,3602,3}, {2688,3602,3},{2702,3585,3},{2710,3578,3},{2713,3577,3},{2722,3578,3},{2728,3573,3}, {2732,3573,3},{2735,3565,3},{2745,3557,3},{2755,3552,3},{2763,3550,3},{2767,3545,3}, {2778,3538,3},{2780,3535,3},{2785,3533,3},{2792,3527,3},{2795,3525,3},{2800,3517,3}, {2802,3517,3},{2803,3522,3},{2805,3522,3},{2805,3517,3},{2807,3515,3},{2807,3510,3}, {2812,3505,3},{2812,3502,3},{2810,3503,3},{2812,3500,3},{2810,3495,3},{2808,3493,3}, {2808,3488,3},{2807,3485,3},{2810,3483,3},{2812,3487,3},{2812,3485,3},{2810,3482,3}, {2810,3483,3},{2807,3480,3},{2808,3478,3},{2810,3482,3},{2812,3482,3},{2810,3477,3}, {2812,3472,3},{2813,3470,3},{2813,3468,3},{2810,3465,3},{2807,3467,3},{2807,3465,3}, {2803,3465,3},{2802,3462,3},{2808,3460,3},{2810,3460,3},{2808,3457,3},{2810,3457,3}, {2817,3462,3},{2818,3463,3},{2817,3467,3},{2820,3465,3},{2822,3467,3},{2827,3467,3}, {2827,3468,3},{2853,3480,3},{2868,3478,3},{2882,3483,3},{2888,3485,3},{2890,3483,3}, {2900,3487,3},{2903,3485,3},{2907,3488,3},{2923,3492,3},{2925,3493,3},{2928,3493,3}, {2930,3495,3},{2933,3495,3},{2937,3497,3},{2935,3502,3},{2935,3508,3},{2933,3513,3}, {2933,3520,3},{2932,3525,3},{2930,3530,3},{2930,3537,3},{2928,3542,3},{2928,3548,3}, {2927,3553,3},{2927,3560,3},{2925,3565,3},{2925,3572,3},{2923,3577,3},{2923,3583,3}, {2922,3588,3},{2922,3595,3},{2920,3600,3},{2918,3607,3},{2922,3610,3},{2925,3615,3}, {2928,3620,3},{2932,3623,3},{2935,3628,3},{2938,3633,3},{2942,3638,3},{2945,3642,3}, {2948,3647,3},{2950,3650,3},{2957,3653,3},{2960,3657,3},{2965,3660,3},{2968,3663,3}, {2973,3665,3},{2978,3668,3},{2983,3672,3},{2987,3675,3},{2988,3682,3},{2988,3687,3}, {2990,3693,3},{2992,3698,3},{2992,3705,3},{2993,3710,3},{2993,3717,3},{2995,3722,3}, {2997,3728,3},{2997,3733,3},{2998,3740,3},{3000,3745,3},{3000,3750,3},{3005,3753,3}, {3010,3755,3},{3015,3758,3},{3020,3760,3},{3025,3762,3},{3030,3765,3},{3033,3767,3}, {3037,3773,3},{3040,3778,3},{3042,3783,3},{3045,3788,3},{3047,3793,3},{3050,3798,3}, {3050,3800,3},{3055,3797,3},{3058,3792,3},{3062,3788,3},{3067,3785,3},{3070,3780,3}, {3073,3777,3},{3078,3773,3},{3082,3768,3},{3087,3765,3},{3090,3762,3},{3093,3757,3}, {3098,3753,3},{3102,3750,3},{3107,3745,3},{3110,3742,3},{3113,3737,3},{3118,3733,3}, {3122,3730,3},{3125,3725,3},{3130,3722,3},{3133,3718,3},{3137,3713,3},{3142,3710,3}, {3145,3707,3},{3150,3700,3},{3152,3708,3},{3153,3713,3},{3155,3718,3},{3157,3725,3}, {3158,3730,3},{3160,3737,3},{3162,3742,3},{3163,3747,3},{3163,3753,3},{3165,3758,3}, {3167,3765,3},{3168,3770,3},{3170,3775,3},{3172,3782,3},{3172,3787,3},{3173,3793,3}, {3175,3798,3},{3177,3803,3},{3178,3810,3},{3180,3815,3},{3182,3822,3},{3182,3827,3}, {3183,3833,3},{3185,3838,3},{3187,3843,3},{3188,3850,3},{3190,3855,3},{3192,3862,3}, {3192,3867,3},{3193,3872,3},{3195,3878,3},{3197,3883,3},{3198,3890,3},{3200,3895,3}, {3200,3900,3},{3205,3905,3},{3208,3910,3},{3212,3915,3},{3215,3918,3},{3218,3923,3}, {3222,3928,3},{3223,3930,3},{3222,3937,3},{3220,3943,3},{3218,3950,3},{3217,3957,3}, {3215,3963,3},{3213,3970,3},{3212,3977,3},{3210,3983,3},{3208,3988,3},{3207,3995,3}, {3207,4000,3},{3203,4008,3},{3200,4013,3},{3197,4020,3},{3193,4027,3},{3190,4033,3}, {3188,4038,3},{3185,4045,3},{3182,4052,3},{3178,4058,3},{3175,4063,3},{3173,4070,3}, {3170,4077,3},{3167,4083,3},{3163,4088,3},{3160,4095,3},{3157,4102,3},{3155,4107,3}, {3152,4113,3},{3148,4120,3},{3145,4127,3},{3142,4132,3},{3140,4138,3},{3137,4143,3}, {3133,4150,3},{3132,4157,3},{3128,4162,3},{3127,4168,3},{3123,4175,3},{3122,4182,3}, {3118,4187,3},{3117,4193,3},{3113,4200,3},{3112,4207,3},{3108,4213,3},{3107,4218,3}, {3103,4225,3},{3102,4232,3},{3098,4237,3},{3095,4243,3},{3093,4250,3},{3090,4257,3}, {3088,4262,3},{3085,4268,3},{3083,4275,3},{3080,4280,3},{3077,4287,3},{3075,4293,3}, {3073,4298,3},{3067,4300,3},{3060,4302,3},{3055,4302,3},{3050,4303,3},{3043,4305,3}, {3042,4307,3},{3042,4313,3},{3040,4320,3},{3040,4327,3},{3040,4333,3},{3040,4340,3}, {3038,4347,3},{3038,4353,3},{3038,4360,3},{3038,4367,3},{3032,4365,3},{3027,4363,3}, {3022,4363,3},{3015,4362,3},{3010,4362,3},{3005,4362,3},{2998,4360,3},{2993,4360,3}, {2987,4360,3},{2982,4360,3},{2975,4360,3},{2970,4360,3},{2965,4360,3},{2960,4358,3}, {2958,4365,3},{2957,4372,3},{2953,4378,3},{2952,4383,3},{2950,4390,3},{2947,4397,3}, {2947,4400,3},{2945,4405,3},{2943,4410,3},{2940,4417,3},{2938,4422,3},{2937,4427,3}, {2935,4433,3},{2933,4438,3},{2930,4443,3},{2928,4450,3},{2927,4455,3},{2925,4460,3}, {2923,4467,3},{2920,4472,3},{2910,4655,3},{2910,4663,3},{2908,4668,3},{2908,4675,3}, {2907,4682,3},{2907,4688,3},{2907,4695,3},{2905,4700,3},{2905,4707,3},{2903,4713,3}, {2903,4720,3},{2902,4725,3},{2902,4732,3},{2900,4738,3},{2900,4747,3},{2878,4757,3}, {2870,4758,3},{2863,4760,3},{2857,4768,3},{2855,4768,3},{2853,4773,3},{2853,4780,3}, {2853,4785,3},{2855,4792,3},{2855,4798,3},{2855,4805,3},{2855,4810,3},{2855,4817,3}, {2855,4823,3},{2855,4830,3},{2855,4835,3},{2855,4842,3},{2850,4847,3},{2850,4850,3}, {2845,4850,3},{2842,4852,3},{2840,4850,3},{2840,4847,3},{2838,4847,3},{2840,4853,3}, {2837,4852,3},{2833,4852,3},{2828,4855,3},{2820,4862,3},{2818,4860,3},{2813,4860,3}, {2807,4865,3},{2803,4865,3},{2800,4878,3},{2798,4878,3},{2798,4875,3},{2797,4875,3}, {2783,4888,3},{2777,4888,3},{2773,4885,3},{2773,4883,3},{2780,4885,3},{2782,4885,3}, {2775,4880,3},{2782,4883,3},{2783,4882,3},{2772,4877,3},{2772,4880,3},{2773,4880,3}, {2768,4882,3},{2770,4885,3},{2765,4885,3},{2768,4888,3},{2765,4888,3},{2763,4885,3}, {2762,4887,3},{2762,4885,3},{2762,4883,3},{2760,4887,3},{2763,4890,3},{2758,4888,3}, {2757,4890,3},{2757,4892,3},{2760,4892,3},{2762,4897,3},{2757,4907,3},{2755,4905,3}, {2753,4907,3},{2755,4907,3},{2753,4915,3},{2755,4918,3},{2753,4925,3},{2750,4927,3}, {2748,4930,3},{2745,4930,3},{2745,4928,3},{2747,4928,3},{2745,4927,3},{2745,4922,3}, {2743,4918,3},{2747,4917,3},{2743,4912,3},{2742,4917,3},{2740,4920,3},{2742,4923,3}, {2742,4927,3},{2738,4923,3},{2733,4922,3},{2735,4925,3},{2735,4928,3},{2735,4930,3}, {2720,4932,3},{2720,4933,3},{2717,4935,3},{2720,4937,3},{2722,4938,3},{2720,4942,3}, {2715,4940,3},{2715,4937,3},{2713,4942,3},{2717,4943,3},{2713,4943,3},{2715,4947,3}, {2713,4952,3},{2715,4950,3},{2718,4950,3},{2718,4952,3},{2717,4955,3},{2718,4957,3}, {2715,4955,3},{2710,4957,3},{2705,4962,3},{2698,4967,3},{2685,4987,3},{2685,4995,3}, {2672,5008,3},{2665,5017,3},{2663,5015,3},{2668,5012,3},{2668,5003,3},{2673,5002,3}, {2675,5000,3},{2673,4998,3},{2667,4998,3},{2665,5002,3},{2657,5000,3},{2647,5005,3}, {2645,5008,3},{2642,5018,3},{2637,5022,3},{2630,5022,3},{2620,5022,3},{2617,5020,3}, {2615,5018,3},{2617,5017,3},{2603,5013,3},{2610,5010,3},{2613,5007,3},{2618,5007,3}, {2620,5002,3},{2613,4998,3},{2608,5002,3},{2607,4998,3},{2600,5000,3},{2598,5000,3}, {2600,5003,3},{2603,5003,3},{2602,5005,3},{2602,5007,3},{2600,5007,3},{2598,5010,3}, {2593,5013,3},{2592,5010,3},{2585,5012,3},{2577,5017,3},{2573,5022,3},{2567,5025,3}, {2563,5027,3},{2563,5025,3},{2565,5023,3},{2568,5023,3},{2573,5015,3},{2570,5015,3}, {2568,5020,3},{2563,5022,3},{2545,5037,3},{2548,5037,3},{2552,5038,3},{2548,5038,3}, {2545,5042,3},{2545,5045,3},{2542,5048,3},{2530,5052,3},{2523,5052,3},{2518,5055,3}, {2512,5053,3},{2505,5057,3},{2503,5057,3},{2507,5058,3},{2505,5060,3},{2495,5067,3}, {2490,5068,3},{2487,5073,3},{2477,5073,3},{2475,5075,3},{2472,5078,3},{2475,5083,3}, {2470,5085,3},{2465,5090,3},{2460,5095,3},{2457,5100,3},{2457,5107,3},{2455,5112,3}, {2447,5112,3},{2440,5112,3},{2433,5112,3},{2427,5112,3},{2423,5118,3},{2418,5125,3}, {2415,5130,3},{2410,5137,3},{2407,5143,3},{2403,5150,3},{2398,5157,3},{2395,5162,3}, {2390,5168,3},{2387,5175,3},{2380,5177,3},{2373,5178,3},{2367,5180,3},{2362,5182,3}, {2355,5185,3},{2348,5187,3},{2342,5188,3},{2335,5190,3},{2328,5192,3},{2322,5193,3}, {2317,5195,3},{2310,5197,3},{2303,5198,3},{2300,5200,3},{2298,5207,3},{2298,5213,3}, {2297,5220,3},{2295,5227,3},{2295,5233,3},{2293,5240,3},{2292,5247,3},{2292,5253,3}, {2290,5260,3},{2288,5267,3},{2288,5273,3},{2287,5280,3},{2285,5287,3},{2285,5293,3}, {2283,5300,3},{2282,5307,3},{2282,5313,3},{2280,5320,3},{2278,5327,3},{2278,5333,3}, {2277,5340,3},{2275,5347,3},{2275,5353,3},{2273,5360,3},{2272,5367,3},{2272,5373,3}, {2270,5380,3},{2268,5387,3},{2268,5393,3},{2267,5400,3},{2265,5407,3},{2265,5413,3}, {2263,5420,3},{2262,5427,3},{2262,5433,3},{2260,5440,3},{2258,5447,3},{2258,5453,3}, {2257,5460,3},{2255,5467,3},{2255,5473,3},{2253,5480,3},{2252,5487,3},{2252,5493,3}, {2250,5500,3},{2255,5505,3},{2262,5512,3},{2267,5517,3},{2270,5520,3},{2263,5525,3}, {2257,5528,3},{2250,5533,3},{2243,5538,3},{2237,5542,3},{2230,5547,3},{2223,5552,3}, {2217,5555,3},{2210,5560,3},{2203,5565,3},{2200,5567,3},{2193,5565,3},{2187,5562,3}, {2180,5560,3},{2173,5558,3},{2167,5555,3},{2160,5553,3},{2153,5552,3},{2147,5548,3}, {2140,5547,3},{2133,5545,3},{2127,5542,3},{2120,5540,3},{2113,5538,3},{2107,5535,3}, {2100,5533,3},{2093,5532,3},{2087,5528,3},{2080,5527,3},{2073,5525,3},{2067,5522,3}, {2060,5520,3},{2053,5518,3},{2047,5515,3},{2040,5513,3},{2033,5512,3},{2027,5508,3}, {2020,5507,3},{2013,5505,3},{2007,5502,3},{2000,5500,3},{1998,5493,3},{1995,5487,3}, {1993,5480,3},{1992,5473,3},{1988,5467,3},{1987,5460,3},{1985,5453,3},{1982,5447,3}, {1980,5440,3},{1978,5433,3},{1975,5427,3},{1973,5418,3},{1970,5412,3},{1968,5405,3}, {1967,5398,3},{1963,5392,3},{1962,5385,3},{1960,5378,3},{1957,5372,3},{1955,5365,3}, {1953,5358,3},{1950,5352,3},{1948,5345,3},{1947,5338,3},{1943,5332,3},{1942,5325,3}, {1940,5318,3},{1937,5312,3},{1935,5305,3},{1933,5298,3},{1930,5292,3},{1928,5285,3}, {1927,5278,3},{1923,5273,3},{1922,5267,3},{1920,5260,3},{1918,5253,3},{1915,5247,3}, {1913,5240,3},{1912,5233,3},{1908,5227,3},{1907,5220,3},{1905,5213,3},{1902,5207,3}, {1900,5200,3},{1898,5193,3},{1897,5187,3},{1895,5180,3},{1893,5173,3},{1892,5167,3}, {1892,5160,3},{1890,5153,3},{1888,5147,3},{1887,5140,3},{1885,5133,3},{1883,5127,3}, {1882,5120,3},{1880,5115,3},{1878,5108,3},{1877,5102,3},{1877,5095,3},{1875,5088,3}, {1873,5082,3},{1872,5075,3},{1870,5068,3},{1868,5062,3},{1867,5055,3},{1865,5048,3}, {1863,5042,3},{1863,5035,3},{1862,5028,3},{1860,5022,3},{1858,5015,3},{1857,5008,3}, {1855,5002,3},{1853,4995,3},{1852,4988,3},{1850,4982,3},{1848,4975,3},{1848,4968,3}, {1847,4962,3},{1845,4957,3},{1843,4950,3},{1842,4943,3},{1840,4937,3},{1838,4930,3}, {1837,4923,3},{1835,4917,3},{1833,4910,3},{1833,4903,3},{1832,4897,3},{1830,4890,3}, {1828,4883,3},{1827,4877,3},{1820,4870,3},{1813,4865,3},{1807,4858,3},{1800,4852,3}, {1793,4847,3},{1787,4840,3},{1780,4833,3},{1773,4828,3},{1767,4822,3},{1760,4815,3}, {1753,4810,3},{1747,4803,3},{1740,4798,3},{1733,4792,3},{1727,4785,3},{1720,4780,3}, {1713,4773,3},{1707,4767,3},{1700,4762,3},{1693,4755,3},{1688,4748,3},{1682,4743,3}, {1675,4737,3},{1668,4730,3},{1662,4725,3},{1655,4718,3},{1648,4712,3},{1642,4707,3}, {1635,4700,3},{1628,4693,3},{1622,4688,3},{1615,4682,3},{1608,4677,3},{1602,4670,3}, {1595,4663,3},{1588,4658,3},{1582,4652,3},{1575,4645,3},{1568,4640,3},{1562,4633,3}, {1740,4450,3},{1742,4445,3},{1742,4438,3},{1742,4432,3},{1740,4427,3},{1740,4420,3}, {1742,4418,3},{1738,4413,3},{1737,4413,3},{1735,4408,3},{1737,4403,3},{1735,4398,3}, {1732,4398,3},{1730,4393,3},{1735,4392,3},{1737,4392,3},{1735,4387,3},{1735,4380,3}, {1735,4375,3},{1740,4372,3},{1742,4367,3},{1747,4365,3},{1748,4360,3},{1750,4355,3}, {1752,4350,3},{1753,4345,3},{1752,4340,3},{1750,4340,3},{1748,4335,3},{1745,4330,3}, {1742,4325,3},{1737,4323,3},{1733,4318,3},{1732,4323,3},{1732,4325,3},{1727,4327,3}, {1725,4327,3},{1723,4322,3},{1722,4317,3},{1715,4317,3},{1710,4313,3},{1705,4315,3}, {1698,4315,3},{1693,4313,3},{1693,4312,3},{1688,4315,3},{1683,4315,3},{1682,4320,3}, {1682,4322,3},{1682,4323,3},{1677,4323,3},{1675,4318,3},{1670,4320,3},{1668,4320,3}, {1667,4320,3},{1667,4315,3},{1668,4315,3},{1668,4310,3},{1662,4310,3},{1662,4308,3}, {1657,4307,3},{1652,4302,3},{1648,4297,3},{1648,4295,3},{1648,4293,3},{1643,4293,3}, {1642,4288,3},{1638,4283,3},{1638,4278,3},{2937,3497,131},{2945,3497,3}, {2953,3500,3},{2955,3497,3},{2963,3500,3},{2973,3502,3},{2987,3508,3},{2995,3507,3}, {2997,3508,3},{3005,3510,3},{3013,3517,3},{3023,3513,3},{3035,3518,3},{3043,3515,3}, {3060,3520,3},{3072,3528,3},{3078,3530,3},{3082,3533,3},{3087,3533,3},{3092,3535,3}, {3095,3540,3},{3102,3540,3},{3108,3545,3},{3108,3547,3},{3110,3552,3},{3112,3552,3}, {3113,3550,3},{3115,3552,3},{3117,3553,3},{3120,3552,3},{3120,3550,3},{3122,3547,3}, {3125,3543,3},{3125,3542,3},{3123,3540,3},{3132,3543,3},{3132,3545,3},{3133,3547,3}, {3137,3550,3},{3137,3552,3},{3132,3550,3},{3130,3550,3},{3130,3552,3},{3132,3553,3}, {3133,3555,3},{3140,3555,3},{3145,3557,3},{3147,3557,3},{3148,3557,3},{3150,3555,3}, {3152,3555,3},{3153,3555,3},{3157,3555,3},{3163,3557,3},{3167,3557,3},{3168,3557,3}, {3172,3558,3},{3173,3558,3},{3175,3558,3},{3177,3557,3},{3177,3555,3},{3182,3553,3}, {3187,3555,3},{3193,3553,3},{3198,3553,3},{3203,3552,3},{3208,3553,3},{3213,3555,3}, {3218,3557,3},{3223,3557,3},{3228,3557,3},{3235,3555,3},{3240,3555,3},{3245,3557,3}, {3250,3557,3},{3255,3557,3},{3260,3557,3},{3265,3557,3},{3265,3560,3},{3268,3565,3}, {3268,3567,3},{3270,3568,3},{3275,3580,3},{3273,3580,3},{3273,3583,3},{3272,3593,3}, {3268,3597,3},{3268,3595,3},{3267,3597,3},{3265,3603,3},{3262,3603,3},{3258,3607,3}, {3252,3608,3},{3253,3613,3},{3252,3617,3},{3253,3620,3},{3252,3622,3},{3245,3632,3}, {3238,3640,3},{3238,3645,3},{3237,3650,3},{3235,3657,3},{3235,3662,3},{3235,3668,3}, {3233,3672,3},{3233,3677,3},{3232,3683,3},{3235,3688,3},{3238,3693,3},{3240,3698,3}, {3243,3703,3},{3247,3708,3},{3248,3713,3},{3252,3718,3},{3255,3723,3},{3258,3730,3}, {3260,3735,3},{3263,3740,3},{3267,3745,3},{3268,3750,3},{3272,3755,3},{3275,3760,3}, {3278,3765,3},{3280,3772,3},{3283,3777,3},{3287,3782,3},{3288,3787,3},{3292,3792,3}, {3295,3797,3},{3297,3803,3},{3300,3808,3},{3303,3813,3},{3305,3818,3},{3308,3823,3}, {3312,3828,3},{3313,3833,3},{3317,3840,3},{3320,3845,3},{3322,3850,3},{3325,3855,3}, {3328,3860,3},{3330,3867,3},{3333,3872,3},{3337,3877,3},{3338,3880,3},{3335,3880,3}, {3330,3883,3},{3325,3885,3},{3322,3887,3},{3317,3890,3},{3312,3892,3},{3307,3893,3}, {3302,3895,3},{3297,3898,3},{3292,3900,3},{3287,3902,3},{3282,3905,3},{3277,3907,3}, {3272,3908,3},{3268,3912,3},{3263,3913,3},{3258,3915,3},{3253,3917,3},{3248,3920,3}, {3243,3922,3},{3238,3923,3},{3233,3927,3},{3228,3928,3},{3223,3930,3},{3222,3928,3}, {3218,3923,3},{3215,3918,3},{3212,3915,3},{3208,3910,3},{3205,3905,3},{3200,3900,3}, {3200,3895,3},{3198,3890,3},{3197,3883,3},{3195,3878,3},{3193,3872,3},{3192,3867,3}, {3192,3862,3},{3190,3855,3},{3188,3850,3},{3187,3843,3},{3185,3838,3},{3183,3833,3}, {3182,3827,3},{3182,3822,3},{3180,3815,3},{3178,3810,3},{3177,3803,3},{3175,3798,3}, {3173,3793,3},{3172,3787,3},{3172,3782,3},{3170,3775,3},{3168,3770,3},{3167,3765,3}, {3165,3758,3},{3163,3753,3},{3163,3747,3},{3162,3742,3},{3160,3737,3},{3158,3730,3}, {3157,3725,3},{3155,3718,3},{3153,3713,3},{3152,3708,3},{3150,3700,3},{3145,3707,3}, {3142,3710,3},{3137,3713,3},{3133,3718,3},{3130,3722,3},{3125,3725,3},{3122,3730,3}, {3118,3733,3},{3113,3737,3},{3110,3742,3},{3107,3745,3},{3102,3750,3},{3098,3753,3}, {3093,3757,3},{3090,3762,3},{3087,3765,3},{3082,3768,3},{3078,3773,3},{3073,3777,3}, {3070,3780,3},{3067,3785,3},{3062,3788,3},{3058,3792,3},{3055,3797,3},{3050,3800,3}, {3050,3798,3},{3047,3793,3},{3045,3788,3},{3042,3783,3},{3040,3778,3},{3037,3773,3}, {3033,3767,3},{3030,3765,3},{3025,3762,3},{3020,3760,3},{3015,3758,3},{3010,3755,3}, {3005,3753,3},{3000,3750,3},{3000,3745,3},{2998,3740,3},{2997,3733,3},{2997,3728,3}, {2995,3722,3},{2993,3717,3},{2993,3710,3},{2992,3705,3},{2992,3698,3},{2990,3693,3}, {2988,3687,3},{2988,3682,3},{2987,3675,3},{2983,3672,3},{2978,3668,3},{2973,3665,3}, {2968,3663,3},{2965,3660,3},{2960,3657,3},{2957,3653,3},{2950,3650,3},{2948,3647,3}, {2945,3642,3},{2942,3638,3},{2938,3633,3},{2935,3628,3},{2932,3623,3},{2928,3620,3}, {2925,3615,3},{2922,3610,3},{2918,3607,3},{2920,3600,3},{2922,3595,3},{2922,3588,3}, {2923,3583,3},{2923,3577,3},{2925,3572,3},{2925,3565,3},{2927,3560,3},{2927,3553,3}, {2928,3548,3},{2928,3542,3},{2930,3537,3},{2930,3530,3},{2932,3525,3},{2933,3520,3}, {2933,3513,3},{2935,3508,3},{2935,3502,3},{2937,3497,3},{3150,3540,131}, {3147,3535,3},{3143,3530,3},{3140,3525,3},{3137,3520,3},{3137,3515,3},{3137,3508,3}, {3137,3502,3},{3135,3497,3},{3137,3490,3},{3142,3488,3},{3145,3492,3},{3150,3495,3}, {3157,3495,3},{3162,3497,3},{3165,3502,3},{3168,3507,3},{3172,3512,3},{3175,3517,3}, {3175,3523,3},{3180,3522,3},{3182,3517,3},{3183,3510,3},{3183,3507,3},{3182,3500,3}, {3187,3497,3},{3188,3503,3},{3193,3500,3},{3198,3500,3},{3200,3500,3},{3205,3500,3}, {3210,3498,3},{3215,3498,3},{3220,3498,3},{3223,3503,3},{3230,3502,3},{3235,3505,3}, {3240,3505,3},{3247,3507,3},{3248,3512,3},{3252,3517,3},{3255,3523,3},{3252,3527,3}, {3252,3533,3},{3252,3540,3},{3247,3542,3},{3242,3543,3},{3242,3550,3},{3240,3555,3}, {3235,3555,3},{3228,3557,3},{3223,3557,3},{3218,3557,3},{3213,3555,3},{3208,3553,3}, {3203,3552,3},{3198,3553,3},{3193,3553,3},{3187,3555,3},{3182,3553,3},{3177,3555,3}, {3177,3553,3},{3177,3552,3},{3175,3550,3},{3172,3547,3},{3168,3545,3},{3167,3545,3}, {3165,3543,3},{3162,3542,3},{3157,3542,3},{3155,3540,3},{3150,3540,3},{2948,3490,131}, {2953,3488,3},{2960,3487,3},{2965,3488,3},{2970,3485,3},{2975,3485,3},{3000,3475,3}, {3002,3475,3},{3037,3462,3},{3042,3455,3},{3048,3457,3},{3053,3452,3},{3058,3452,3}, {3068,3450,3},{3102,3435,3},{3122,3427,3},{3130,3437,3},{3137,3437,3},{3140,3438,3}, {3153,3457,3},{3155,3457,3},{3158,3448,3},{3175,3460,3},{3195,3472,3},{3215,3478,3}, {3242,3487,3},{3270,3492,3},{3273,3495,3},{3282,3495,3},{3283,3498,3},{3282,3502,3}, {3285,3507,3},{3292,3508,3},{3292,3507,3},{3297,3507,3},{3310,3510,3},{3310,3525,3}, {3310,3530,3},{3310,3532,3},{3307,3535,3},{3307,3543,3},{3310,3545,3},{3310,3550,3}, {3323,3553,3},{3328,3557,3},{3325,3562,3},{3323,3568,3},{3303,3563,3},{3293,3563,3}, {3290,3562,3},{3288,3558,3},{3287,3553,3},{3283,3552,3},{3282,3552,3},{3277,3555,3}, {3272,3557,3},{3272,3560,3},{3275,3563,3},{3268,3565,3},{3265,3560,3},{3265,3557,3}, {3260,3557,3},{3255,3557,3},{3250,3557,3},{3245,3557,3},{3240,3555,3},{3242,3550,3}, {3242,3543,3},{3247,3542,3},{3252,3540,3},{3252,3533,3},{3252,3527,3},{3255,3523,3}, {3252,3517,3},{3248,3512,3},{3247,3507,3},{3240,3505,3},{3235,3505,3},{3230,3502,3}, {3223,3503,3},{3220,3498,3},{3215,3498,3},{3210,3498,3},{3205,3500,3},{3200,3500,3}, {3198,3500,3},{3193,3500,3},{3188,3503,3},{3187,3497,3},{3182,3500,3},{3183,3507,3}, {3183,3510,3},{3182,3517,3},{3180,3522,3},{3175,3523,3},{3175,3517,3},{3172,3512,3}, {3168,3507,3},{3165,3502,3},{3162,3497,3},{3157,3495,3},{3150,3495,3},{3145,3492,3}, {3142,3488,3},{3137,3490,3},{3135,3497,3},{3137,3502,3},{3137,3508,3},{3137,3515,3}, {3137,3520,3},{3140,3525,3},{3143,3530,3},{3147,3535,3},{3150,3540,3},{3147,3540,3}, {3143,3538,3},{3140,3540,3},{3132,3542,3},{3132,3543,3},{3123,3540,3},{3123,3537,3}, {3122,3535,3},{3120,3537,3},{3118,3537,3},{3117,3537,3},{3115,3538,3},{3110,3540,3}, {3108,3545,3},{3102,3540,3},{3095,3540,3},{3092,3535,3},{3087,3533,3},{3082,3533,3}, {3078,3530,3},{3072,3528,3},{3060,3520,3},{3043,3515,3},{3035,3518,3},{3023,3513,3}, {3013,3517,3},{3005,3510,3},{2997,3508,3},{2995,3507,3},{2987,3508,3},{2973,3502,3}, {2963,3500,3},{2955,3497,3},{2950,3492,3},{2948,3490,3},{3122,3427,131}, {3133,3422,3},{3148,3440,3},{3158,3448,3},{3155,3457,3},{3153,3457,3},{3140,3438,3}, {3137,3437,3},{3130,3437,3},{3122,3427,3},{6057,2785,131},{6052,2780,3}, {6057,2778,3},{6057,2775,3},{6052,2775,3},{6050,2773,3},{6050,2775,3},{6048,2772,3}, {6048,2763,3},{6050,2768,3},{6052,2770,3},{6052,2767,3},{6050,2760,3},{6047,2763,3}, {6050,2748,3},{6047,2748,3},{6045,2750,3},{6047,2745,3},{6050,2737,3},{6050,2723,3}, {6052,2723,3},{6052,2732,3},{6055,2722,3},{6058,2722,3},{6057,2718,3},{6053,2720,3}, {6052,2718,3},{6052,2713,3},{6053,2712,3},{6052,2708,3},{6053,2703,3},{6048,2700,3}, {6048,2693,3},{6045,2697,3},{6048,2690,3},{6045,2687,3},{6045,2682,3},{6048,2680,3}, {6047,2675,3},{6043,2675,3},{6042,2670,3},{6045,2665,3},{6045,2658,3},{6042,2657,3}, {6045,2650,3},{6047,2648,3},{6055,2657,3},{6060,2657,3},{6050,2647,3},{6048,2645,3}, {6043,2648,3},{6042,2643,3},{6038,2642,3},{6042,2638,3},{6038,2638,3},{6040,2635,3}, {6037,2633,3},{6045,2625,3},{6043,2623,3},{6040,2627,3},{6042,2618,3},{6040,2615,3}, {6047,2597,3},{6048,2592,3},{6042,2605,3},{6038,2600,3},{6033,2612,3},{6030,2608,3}, {6030,2605,3},{6032,2605,3},{6035,2600,3},{6037,2600,3},{6035,2595,3},{6040,2583,3}, {6035,2592,3},{6032,2590,3},{6032,2588,3},{6023,2592,3},{6025,2588,3},{6028,2587,3}, {6028,2582,3},{6032,2575,3},{6028,2575,3},{6027,2585,3},{6025,2572,3},{6030,2565,3}, {6032,2565,3},{6032,2568,3},{6033,2565,3},{6033,2570,3},{6037,2567,3},{6033,2562,3}, {6032,2553,3},{6028,2555,3},{6023,2550,3},{6023,2537,3},{6027,2537,3},{6027,2532,3}, {6025,2532,3},{6023,2528,3},{6025,2520,3},{6022,2520,3},{6022,2515,3},{6020,2520,3}, {6020,2517,3},{6018,2518,3},{6017,2510,3},{6018,2505,3},{6015,2507,3},{6015,2500,3}, {6018,2502,3},{6020,2498,3},{6018,2495,3},{6017,2497,3},{6013,2497,3},{6013,2485,3}, {6015,2483,3},{6017,2488,3},{6018,2482,3},{6018,2480,3},{6017,2482,3},{6013,2478,3}, {6013,2468,3},{6010,2467,3},{6013,2463,3},{6015,2455,3},{6013,2455,3},{6012,2460,3}, {6008,2455,3},{6010,2462,3},{6007,2457,3},{6007,2458,3},{5998,2447,3},{5998,2442,3}, {6005,2445,3},{6000,2438,3},{6002,2437,3},{6000,2432,3},{6007,2437,3},{6007,2433,3}, {6007,2428,3},{6005,2428,3},{6003,2425,3},{6005,2417,3},{6002,2418,3},{6003,2410,3}, {6002,2408,3},{6000,2400,3},{6003,2400,3},{6000,2395,3},{6000,2388,3},{5995,2380,3}, {5997,2378,3},{5997,2365,3},{5995,2362,3},{5997,2358,3},{5995,2343,3},{6002,2348,3}, {6003,2355,3},{6007,2353,3},{6007,2350,3},{6000,2345,3},{5993,2335,3},{5987,2320,3}, {5983,2320,3},{5982,2317,3},{5980,2288,3},{5985,2302,3},{5988,2317,3},{5992,2325,3}, {6002,2332,3},{6002,2330,3},{5993,2322,3},{5995,2318,3},{5993,2317,3},{5995,2313,3}, {5992,2310,3},{5997,2312,3},{6000,2322,3},{6003,2327,3},{6005,2318,3},{6003,2305,3}, {6007,2298,3},{6012,2305,3},{6013,2302,3},{6010,2297,3},{6012,2297,3},{6015,2288,3}, {6017,2288,3},{6018,2287,3},{6022,2290,3},{6028,2302,3},{6032,2303,3},{6035,2308,3}, {6035,2305,3},{6030,2300,3},{6030,2290,3},{6025,2277,3},{6020,2253,3},{6023,2258,3}, {6025,2257,3},{6027,2263,3},{6028,2263,3},{6025,2253,3},{6025,2245,3},{6040,2263,3}, {6037,2258,3},{6037,2247,3},{6040,2248,3},{6040,2247,3},{6037,2228,3},{6043,2218,3}, {6043,2212,3},{6047,2210,3},{6043,2205,3},{6047,2198,3},{6048,2198,3},{6048,2195,3}, {6052,2195,3},{6052,2183,3},{6048,2187,3},{6048,2178,3},{6057,2180,3},{6058,2182,3}, {6058,2185,3},{6060,2183,3},{6062,2183,3},{6058,2173,3},{6057,2167,3},{6050,2165,3}, {6048,2158,3},{6048,2157,3},{6052,2158,3},{6057,2152,3},{6057,2158,3},{6057,2150,3}, {6057,2145,3},{6058,2142,3},{6060,2142,3},{6060,2147,3},{6065,2137,3},{6068,2135,3}, {6068,2143,3},{6072,2142,3},{6073,2147,3},{6075,2138,3},{6077,2142,3},{6078,2137,3}, {6082,2137,3},{6082,2132,3},{6085,2135,3},{6087,2132,3},{6087,2143,3},{6088,2137,3}, {6090,2135,3},{6092,2138,3},{6090,2142,3},{6105,2130,3},{6103,2140,3},{6105,2140,3}, {6105,2137,3},{6107,2138,3},{6105,2148,3},{6108,2145,3},{6110,2147,3},{6113,2143,3}, {6115,2147,3},{6115,2145,3},{6117,2145,3},{6117,2150,3},{6120,2150,3},{6120,2157,3}, {6123,2153,3},{6125,2148,3},{6127,2152,3},{6127,2150,3},{6128,2155,3},{6132,2155,3}, {6137,2153,3},{6140,2145,3},{6142,2157,3},{6145,2152,3},{6148,2142,3},{6148,2158,3}, {6152,2157,3},{6152,2152,3},{6152,2150,3},{6155,2145,3},{6157,2150,3},{6152,2172,3}, {6165,2153,3},{6170,2152,3},{6172,2153,3},{6170,2158,3},{6175,2147,3},{6180,2148,3}, {6188,2140,3},{6190,2142,3},{6193,2138,3},{6193,2132,3},{6195,2128,3},{6198,2128,3}, {6198,2123,3},{6212,2128,3},{6210,2132,3},{6217,2133,3},{6218,2138,3},{6220,2138,3}, {6223,2135,3},{6227,2135,3},{6223,2132,3},{6235,2133,3},{6233,2128,3},{6237,2125,3}, {6240,2127,3},{6237,2122,3},{6233,2122,3},{6240,2118,3},{6242,2120,3},{6240,2113,3}, {6245,2115,3},{6245,2112,3},{6250,2112,3},{6252,2115,3},{6255,2113,3},{6258,2122,3}, {6260,2117,3},{6260,2112,3},{6262,2110,3},{6260,2107,3},{6267,2108,3},{6268,2113,3}, {6272,2117,3},{6273,2113,3},{6277,2110,3},{6278,2113,3},{6278,2117,3},{6280,2120,3}, {6287,2123,3},{6287,2125,3},{6287,2137,3},{6293,2142,3},{6295,2147,3},{6303,2143,3}, {6305,2143,3},{6303,2148,3},{6307,2150,3},{6302,2160,3},{6302,2168,3},{6308,2157,3}, {6312,2157,3},{6312,2152,3},{6317,2150,3},{6317,2155,3},{6318,2150,3},{6322,2150,3}, {6323,2155,3},{6320,2163,3},{6320,2165,3},{6322,2167,3},{6320,2175,3},{6322,2170,3}, {6325,2175,3},{6323,2180,3},{6325,2188,3},{6317,2188,3},{6313,2197,3},{6318,2197,3}, {6320,2200,3},{6323,2203,3},{6323,2205,3},{6322,2208,3},{6323,2213,3},{6322,2217,3}, {6325,2218,3},{6323,2222,3},{6328,2225,3},{6330,2228,3},{6327,2233,3},{6332,2237,3}, {6335,2235,3},{6343,2218,3},{6345,2218,3},{6347,2225,3},{6342,2233,3},{6342,2240,3}, {6348,2227,3},{6352,2228,3},{6352,2233,3},{6350,2233,3},{6348,2238,3},{6345,2240,3}, {6355,2245,3},{6357,2250,3},{6357,2255,3},{6362,2250,3},{6365,2253,3},{6365,2258,3}, {6370,2258,3},{6368,2263,3},{6370,2265,3},{6370,2268,3},{6363,2273,3},{6363,2278,3}, {6363,2282,3},{6368,2285,3},{6370,2290,3},{6372,2283,3},{6372,2290,3},{6373,2287,3}, {6375,2293,3},{6380,2290,3},{6380,2295,3},{6375,2300,3},{6382,2298,3},{6385,2307,3}, {6385,2313,3},{6387,2317,3},{6388,2315,3},{6390,2338,3},{6392,2342,3},{6395,2337,3}, {6403,2338,3},{6405,2338,3},{6405,2342,3},{6403,2347,3},{6403,2350,3},{6402,2362,3}, {6405,2362,3},{6410,2357,3},{6410,2362,3},{6413,2365,3},{6417,2372,3},{6420,2372,3}, {6422,2378,3},{6425,2385,3},{6427,2388,3},{6425,2395,3},{6428,2392,3},{6433,2398,3}, {6438,2400,3},{6440,2408,3},{6443,2410,3},{6445,2422,3},{6448,2422,3},{6448,2427,3}, {6452,2428,3},{6452,2435,3},{6463,2438,3},{6468,2443,3},{6472,2453,3},{6477,2453,3}, {6477,2458,3},{6480,2455,3},{6480,2458,3},{6478,2468,3},{6482,2467,3},{6483,2473,3}, {6485,2473,3},{6487,2492,3},{6492,2508,3},{6490,2512,3},{6488,2512,3},{6488,2517,3}, {6483,2520,3},{6483,2527,3},{6482,2523,3},{6482,2532,3},{6483,2537,3},{6490,2537,3}, {6490,2530,3},{6497,2518,3},{6498,2522,3},{6498,2532,3},{6495,2538,3},{6495,2542,3}, {6495,2545,3},{6508,2537,3},{6512,2522,3},{6515,2522,3},{6518,2527,3},{6522,2528,3}, {6522,2533,3},{6523,2530,3},{6525,2532,3},{6525,2528,3},{6533,2533,3},{6538,2527,3}, {6537,2530,3},{6542,2535,3},{6548,2535,3},{6552,2532,3},{6555,2522,3},{6555,2512,3}, {6562,2507,3},{6562,2493,3},{6565,2490,3},{6565,2478,3},{6563,2473,3},{6563,2467,3}, {6568,2467,3},{6570,2460,3},{6573,2455,3},{6578,2455,3},{6582,2458,3},{6588,2463,3}, {6588,2470,3},{6592,2470,3},{6588,2462,3},{6582,2455,3},{6580,2453,3},{6580,2445,3}, {6577,2442,3},{6582,2423,3},{6578,2425,3},{6577,2423,3},{6578,2418,3},{6582,2417,3}, {6613,2393,3},{6620,2373,3},{6632,2367,3},{6637,2368,3},{6645,2365,3},{6648,2373,3}, {6650,2373,3},{6652,2380,3},{6653,2380,3},{6655,2388,3},{6675,2388,3},{6678,2393,3}, {6680,2400,3},{6688,2393,3},{6697,2383,3},{6700,2373,3},{6710,2367,3},{6715,2357,3}, {6720,2362,3},{6722,2358,3},{6727,2360,3},{6728,2375,3},{6732,2377,3},{6737,2375,3}, {6742,2377,3},{6743,2363,3},{6745,2355,3},{6743,2348,3},{6747,2343,3},{6755,2347,3}, {6758,2355,3},{6773,2348,3},{6787,2348,3},{6788,2352,3},{6792,2365,3},{6795,2365,3}, {6798,2355,3},{6800,2352,3},{6805,2340,3},{6812,2333,3},{6815,2328,3},{6812,2315,3}, {6823,2315,3},{6828,2307,3},{6833,2290,3},{6838,2282,3},{6838,2277,3},{6842,2267,3}, {6842,2263,3},{6845,2247,3},{6845,2238,3},{6847,2237,3},{6847,2232,3},{6847,2217,3}, {6848,2205,3},{6857,2190,3},{6858,2175,3},{6865,2162,3},{6868,2147,3},{6875,2140,3}, {6875,2130,3},{6882,2122,3},{6887,2108,3},{6888,2090,3},{6893,2088,3},{6895,2093,3}, {6900,2087,3},{6905,2058,3},{6910,2073,3},{6903,2103,3},{6905,2108,3},{6910,2112,3}, {6913,2105,3},{6922,2103,3},{6933,2132,3},{6928,2168,3},{6885,2235,3},{6872,2240,3}, {6873,2255,3},{6868,2280,3},{6870,2307,3},{6863,2320,3},{6868,2345,3},{6872,2368,3}, {6883,2383,3},{6883,2393,3},{6882,2405,3},{6878,2412,3},{6877,2418,3},{6875,2420,3}, {6872,2433,3},{6870,2452,3},{6867,2475,3},{6855,2490,3},{6860,2495,3},{6863,2510,3}, {6877,2515,3},{6882,2522,3},{6888,2542,3},{6888,2562,3},{6898,2575,3},{6902,2582,3}, {6912,2573,3},{6925,2572,3},{6935,2575,3},{6938,2583,3},{6943,2583,3},{6948,2587,3}, {6955,2585,3},{6957,2593,3},{6958,2595,3},{6963,2598,3},{6967,2595,3},{6970,2598,3}, {6975,2615,3},{6980,2625,3},{6985,2638,3},{6993,2647,3},{6995,2662,3},{6993,2672,3}, {6995,2680,3},{6995,2685,3},{6993,2687,3},{6990,2705,3},{6993,2720,3},{6995,2730,3}, {6998,2730,3},{7003,2753,3},{7007,2757,3},{7007,2775,3},{7008,2790,3},{7008,2795,3}, {7000,2798,3},{6993,2810,3},{6992,2817,3},{6988,2832,3},{6983,2838,3},{6970,2910,3}, {6968,2913,3},{6948,2930,3},{6937,2912,3},{6923,2882,3},{6912,2878,3},{6903,2900,3}, {6905,2895,3},{6903,2885,3},{6892,2845,3},{6890,2843,3},{6887,2848,3},{6888,2873,3}, {6885,2882,3},{6873,2875,3},{6853,2845,3},{6820,2870,3},{6808,2935,3},{6782,2970,3}, {6770,3003,3},{6767,2998,3},{6757,2998,3},{6752,2993,3},{6730,2953,3},{6702,2913,3}, {6692,2908,3},{6683,2910,3},{6670,2933,3},{6658,2943,3},{6650,2955,3},{6632,2963,3}, {6613,2992,3},{6598,2998,3},{6583,3010,3},{6572,3013,3},{6567,3012,3},{6568,3002,3}, {6563,2972,3},{6557,2987,3},{6552,2975,3},{6535,2975,3},{6525,2960,3},{6522,2963,3}, {6522,2985,3},{6518,2987,3},{6515,2982,3},{6512,2987,3},{6507,2963,3},{6500,2960,3}, {6492,2965,3},{6480,2980,3},{6480,3005,3},{6477,3013,3},{6473,3012,3},{6467,3022,3}, {6463,3018,3},{6458,3007,3},{6452,3005,3},{6447,3008,3},{6440,3005,3},{6435,3015,3}, {6432,3038,3},{6425,3045,3},{6425,3057,3},{6422,3058,3},{6418,3055,3},{6408,3062,3}, {6402,3055,3},{6392,3035,3},{6382,3027,3},{6375,3002,3},{6373,3000,3},{6360,3025,3}, {6355,3040,3},{6348,3048,3},{6340,3078,3},{6335,3092,3},{6332,3097,3},{6322,3122,3}, {6312,3128,3},{6298,3152,3},{6293,3153,3},{6292,3158,3},{6280,3147,3},{6265,3138,3}, {6262,3132,3},{6250,3127,3},{6247,3117,3},{6245,3115,3},{6237,3098,3},{6230,3093,3}, {6220,3065,3},{6217,3063,3},{6198,3033,3},{6173,2998,3},{6165,2983,3},{6160,2982,3}, {6152,2965,3},{6148,2953,3},{6143,2948,3},{6137,2937,3},{6125,2922,3},{6110,2882,3}, {6103,2870,3},{6097,2863,3},{6095,2852,3},{6087,2835,3},{6080,2827,3},{6077,2815,3}, {6072,2810,3},{6057,2785,3},{5898,1143,131},{5910,1137,3},{5912,1130,3}, {5910,1122,3},{5912,1117,3},{5915,1120,3},{5915,1118,3},{5920,1117,3},{5918,1113,3}, {5917,1115,3},{5913,1112,3},{5917,1108,3},{5913,1110,3},{5912,1107,3},{5913,1103,3}, {5915,1103,3},{5917,1100,3},{5918,1095,3},{5913,1095,3},{5913,1090,3},{5920,1090,3}, {5918,1085,3},{5915,1083,3},{5918,1080,3},{5918,1078,3},{5922,1078,3},{5925,1077,3}, {5922,1073,3},{5928,1075,3},{5932,1078,3},{5933,1073,3},{5932,1072,3},{5932,1068,3}, {5937,1065,3},{5940,1065,3},{5942,1058,3},{5947,1062,3},{5948,1067,3},{5943,1067,3}, {5947,1070,3},{5952,1065,3},{5968,1062,3},{5968,1058,3},{5973,1055,3},{5985,1063,3}, {5983,1067,3},{5973,1072,3},{5983,1077,3},{5988,1075,3},{5990,1068,3},{5988,1067,3}, {5990,1062,3},{5987,1060,3},{5988,1057,3},{5987,1050,3},{5985,1047,3},{5983,1050,3}, {5973,1050,3},{5968,1052,3},{5963,1060,3},{5960,1062,3},{5955,1055,3},{5952,1045,3}, {5953,1042,3},{5967,1042,3},{5970,1037,3},{5970,1033,3},{5973,1030,3},{5973,1027,3}, {5973,1022,3},{5970,1027,3},{5967,1038,3},{5958,1040,3},{5955,1038,3},{5952,1037,3}, {5955,1023,3},{5945,1037,3},{5945,1043,3},{5942,1047,3},{5935,1045,3},{5932,1052,3}, {5927,1048,3},{5923,1045,3},{5925,1043,3},{5927,1037,3},{5922,1037,3},{5920,1033,3}, {5912,1032,3},{5913,1028,3},{5905,1030,3},{5910,1027,3},{5903,1027,3},{5912,1023,3}, {5907,1020,3},{5902,1022,3},{5900,1013,3},{5902,1012,3},{5903,1017,3},{5905,1017,3}, {5905,1013,3},{5902,1007,3},{5903,1003,3},{5897,1002,3},{5895,983,3},{5897,982,3}, {5897,985,3},{5900,985,3},{5905,978,3},{5903,975,3},{5908,970,3},{5905,968,3}, {5907,965,3},{5912,963,3},{5913,963,3},{5912,960,3},{5912,953,3},{5908,962,3}, {5903,963,3},{5902,972,3},{5898,972,3},{5900,970,3},{5898,965,3},{5895,968,3}, {5895,965,3},{5893,960,3},{5892,958,3},{5893,947,3},{5890,952,3},{5890,950,3}, {5890,947,3},{5888,945,3},{5890,938,3},{5888,937,3},{5888,940,3},{5887,940,3}, {5885,933,3},{5887,930,3},{5883,927,3},{5882,930,3},{5885,940,3},{5883,945,3}, {5878,937,3},{5878,940,3},{5873,930,3},{5873,907,3},{5872,907,3},{5872,917,3}, {5873,910,3},{5872,922,3},{5870,920,3},{5868,905,3},{5868,918,3},{5867,920,3}, {5860,903,3},{5858,897,3},{5860,892,3},{5858,895,3},{5855,895,3},{5848,883,3}, {5843,872,3},{5837,868,3},{5837,863,3},{5832,860,3},{5835,858,3},{5828,850,3}, {5825,850,3},{5825,843,3},{5827,840,3},{5823,840,3},{5825,837,3},{5820,825,3}, {5818,827,3},{5815,822,3},{5812,822,3},{5815,817,3},{5810,813,3},{5810,812,3}, {5810,805,3},{5813,803,3},{5815,808,3},{5822,802,3},{5815,802,3},{5812,795,3}, {5808,795,3},{5807,788,3},{5807,773,3},{5805,770,3},{5807,767,3},{5805,767,3}, {5805,763,3},{5802,762,3},{5802,760,3},{5803,758,3},{5802,758,3},{5800,748,3}, {5803,727,3},{5805,725,3},{5803,717,3},{5805,715,3},{5803,707,3},{5800,707,3}, {5798,700,3},{5803,700,3},{5805,705,3},{5807,708,3},{5805,712,3},{5810,715,3}, {5803,695,3},{5808,698,3},{5810,700,3},{5810,697,3},{5805,692,3},{5808,692,3}, {5810,690,3},{5807,688,3},{5808,680,3},{5812,685,3},{5812,695,3},{5813,698,3}, {5812,690,3},{5815,682,3},{5818,680,3},{5818,678,3},{5812,682,3},{5812,673,3}, {5818,672,3},{5812,668,3},{5807,678,3},{5805,677,3},{5807,660,3},{5812,653,3}, {5813,657,3},{5817,660,3},{5817,667,3},{5818,665,3},{5820,667,3},{5827,685,3}, {5822,668,3},{5828,663,3},{5828,665,3},{5830,670,3},{5832,670,3},{5832,662,3}, {5825,662,3},{5823,660,3},{5827,647,3},{5827,633,3},{5830,628,3},{5838,602,3}, {5842,597,3},{5847,595,3},{5848,575,3},{5852,572,3},{5855,563,3},{5862,557,3}, {5867,552,3},{5870,552,3},{5875,545,3},{5880,552,3},{5887,553,3},{5888,557,3}, {5893,553,3},{5895,555,3},{5890,562,3},{5892,563,3},{5897,555,3},{5898,558,3}, {5898,553,3},{5903,555,3},{5897,572,3},{5887,572,3},{5893,575,3},{5892,582,3}, {5895,582,3},{5897,585,3},{5893,593,3},{5890,595,3},{5885,608,3},{5883,617,3}, {5883,622,3},{5885,613,3},{5888,605,3},{5895,612,3},{5902,637,3},{5905,662,3}, {5903,640,3},{5900,615,3},{5897,610,3},{5890,603,3},{5897,597,3},{5898,600,3}, {5898,605,3},{5902,602,3},{5902,593,3},{5907,587,3},{5910,590,3},{5915,612,3}, {5913,602,3},{5917,600,3},{5925,617,3},{5927,627,3},{5932,633,3},{5932,647,3}, {5932,633,3},{5928,625,3},{5925,612,3},{5930,608,3},{5930,623,3},{5933,623,3}, {5937,620,3},{5933,620,3},{5932,618,3},{5933,615,3},{5932,610,3},{5933,605,3}, {5932,602,3},{5933,600,3},{5938,603,3},{5943,618,3},{5950,623,3},{5955,645,3}, {5955,655,3},{5957,638,3},{5952,625,3},{5965,632,3},{5965,630,3},{5953,622,3}, {5945,615,3},{5942,607,3},{5940,602,3},{5943,598,3},{5940,597,3},{5938,600,3}, {5935,593,3},{5942,588,3},{5945,588,3},{5945,598,3},{5948,615,3},{5948,588,3}, {5953,580,3},{5952,578,3},{5947,580,3},{5945,573,3},{5947,570,3},{5943,572,3}, {5940,565,3},{5943,578,3},{5938,587,3},{5935,585,3},{5933,572,3},{5930,568,3}, {5928,562,3},{5933,565,3},{5940,560,3},{5942,555,3},{5940,558,3},{5933,558,3}, {5927,552,3},{5930,543,3},{5940,543,3},{5937,540,3},{5930,542,3},{5930,538,3}, {5942,533,3},{5935,533,3},{5933,532,3},{5935,528,3},{5940,527,3},{5943,520,3}, {5950,518,3},{5952,525,3},{5953,520,3},{5958,527,3},{5965,537,3},{5960,542,3}, {5962,543,3},{5967,540,3},{5973,548,3},{5970,552,3},{5962,548,3},{5957,550,3}, {5953,545,3},{5953,542,3},{5950,542,3},{5955,552,3},{5958,553,3},{5963,553,3}, {5967,557,3},{5965,572,3},{5963,573,3},{5960,572,3},{5960,577,3},{5965,577,3}, {5965,588,3},{5967,588,3},{5967,578,3},{5968,573,3},{5972,582,3},{5973,588,3}, {5977,590,3},{5975,593,3},{5973,595,3},{5975,607,3},{5982,622,3},{5985,630,3}, {5983,620,3},{5977,605,3},{5975,598,3},{5977,595,3},{5978,593,3},{5982,597,3}, {5985,595,3},{5985,597,3},{5985,593,3},{5978,592,3},{5977,583,3},{5983,570,3}, {5985,570,3},{5985,572,3},{5985,570,3},{5985,565,3},{5987,573,3},{5990,573,3}, {5993,577,3},{5995,597,3},{5997,598,3},{6000,595,3},{6007,603,3},{6012,628,3}, {6013,625,3},{6015,625,3},{6012,618,3},{6010,612,3},{6018,607,3},{6022,615,3}, {6027,622,3},{6030,620,3},{6032,627,3},{6033,633,3},{6037,633,3},{6038,643,3}, {6042,647,3},{6043,653,3},{6042,663,3},{6027,653,3},{6012,650,3},{6008,652,3}, {6017,653,3},{6023,658,3},{6027,657,3},{6037,665,3},{6038,670,3},{6043,673,3}, {6047,682,3},{6048,693,3},{6047,705,3},{6050,710,3},{6050,690,3},{6055,697,3}, {6058,700,3},{6053,690,3},{6050,685,3},{6047,673,3},{6045,670,3},{6043,663,3}, {6045,660,3},{6047,660,3},{6050,670,3},{6052,668,3},{6047,657,3},{6042,638,3}, {6038,628,3},{6040,623,3},{6047,618,3},{6042,618,3},{6037,625,3},{6037,612,3}, {6035,618,3},{6030,615,3},{6028,617,3},{6025,613,3},{6023,612,3},{6027,600,3}, {6017,592,3},{6017,585,3},{6003,588,3},{6000,578,3},{6002,577,3},{5998,575,3}, {6000,570,3},{6007,568,3},{6007,577,3},{6008,580,3},{6008,575,3},{6007,575,3}, {6008,572,3},{6010,570,3},{6013,573,3},{6017,570,3},{6020,578,3},{6018,567,3}, {6015,565,3},{6013,558,3},{6015,555,3},{6017,558,3},{6020,557,3},{6023,570,3}, {6023,560,3},{6027,563,3},{6023,558,3},{6025,557,3},{6035,567,3},{6037,572,3}, {6038,573,3},{6038,572,3},{6035,562,3},{6022,553,3},{6017,543,3},{6013,542,3}, {6015,535,3},{6017,537,3},{6018,530,3},{6020,535,3},{6022,530,3},{6020,522,3}, {6027,532,3},{6028,517,3},{6032,517,3},{6032,523,3},{6035,520,3},{6033,515,3}, {6035,515,3},{6037,515,3},{6038,520,3},{6038,530,3},{6047,523,3},{6052,530,3}, {6042,550,3},{6042,563,3},{6045,565,3},{6045,570,3},{6047,572,3},{6063,572,3}, {6065,575,3},{6067,572,3},{6070,575,3},{6070,567,3},{6075,568,3},{6070,560,3}, {6068,553,3},{6063,553,3},{6060,540,3},{6057,537,3},{6055,527,3},{6065,508,3}, {6067,513,3},{6062,523,3},{6065,518,3},{6070,508,3},{6070,515,3},{6072,513,3}, {6073,505,3},{6077,502,3},{6080,493,3},{6080,500,3},{6077,505,3},{6072,528,3}, {6063,533,3},{6063,537,3},{6067,535,3},{6063,543,3},{6067,537,3},{6068,540,3}, {6065,543,3},{6073,537,3},{6075,525,3},{6077,523,3},{6080,528,3},{6080,535,3}, {6083,533,3},{6085,537,3},{6087,550,3},{6087,553,3},{6088,547,3},{6090,548,3}, {6087,533,3},{6083,532,3},{6082,525,3},{6083,517,3},{6085,517,3},{6080,515,3}, {6082,512,3},{6083,513,3},{6083,505,3},{6095,498,3},{6097,500,3},{6095,508,3}, {6088,508,3},{6087,510,3},{6095,510,3},{6097,515,3},{6098,513,3},{6097,508,3}, {6098,500,3},{6103,500,3},{6107,507,3},{6105,523,3},{6103,528,3},{6103,542,3}, {6100,545,3},{6105,547,3},{6107,557,3},{6105,563,3},{6108,560,3},{6108,568,3}, {6112,577,3},{6110,578,3},{6107,578,3},{6108,583,3},{6112,583,3},{6112,612,3}, {6110,627,3},{6107,627,3},{6103,625,3},{6107,630,3},{6107,637,3},{6102,633,3}, {6100,637,3},{6107,640,3},{6110,655,3},{6117,662,3},{6115,667,3},{6113,682,3}, {6113,685,3},{6108,687,3},{6108,695,3},{6100,700,3},{6093,687,3},{6097,703,3}, {6093,713,3},{6087,712,3},{6090,717,3},{6095,717,3},{6097,707,3},{6110,700,3}, {6112,718,3},{6113,723,3},{6110,743,3},{6112,738,3},{6115,735,3},{6118,743,3}, {6120,765,3},{6123,770,3},{6123,763,3},{6120,760,3},{6120,738,3},{6122,735,3}, {6127,733,3},{6128,730,3},{6133,737,3},{6137,737,3},{6148,757,3},{6140,735,3}, {6138,733,3},{6138,727,3},{6135,732,3},{6128,723,3},{6127,728,3},{6122,730,3}, {6118,737,3},{6117,730,3},{6118,722,3},{6117,717,3},{6115,715,3},{6113,700,3}, {6112,695,3},{6112,693,3},{6115,692,3},{6118,700,3},{6117,692,3},{6118,683,3}, {6118,672,3},{6122,657,3},{6123,657,3},{6127,663,3},{6133,670,3},{6140,670,3}, {6127,658,3},{6125,655,3},{6128,652,3},{6127,650,3},{6120,653,3},{6120,647,3}, {6115,652,3},{6113,650,3},{6112,643,3},{6112,635,3},{6113,623,3},{6115,618,3}, {6118,618,3},{6115,613,3},{6115,600,3},{6117,597,3},{6118,603,3},{6120,603,3}, {6117,592,3},{6115,578,3},{6120,578,3},{6115,575,3},{6113,567,3},{6113,555,3}, {6110,548,3},{6107,540,3},{6110,533,3},{6112,530,3},{6110,520,3},{6113,517,3}, {6113,522,3},{6115,517,3},{6113,512,3},{6117,505,3},{6118,510,3},{6117,522,3}, {6118,523,3},{6122,515,3},{6122,500,3},{6123,507,3},{6123,500,3},{6125,500,3}, {6125,495,3},{6130,510,3},{6130,517,3},{6133,517,3},{6133,522,3},{6132,528,3}, {6125,533,3},{6132,532,3},{6135,527,3},{6137,537,3},{6137,545,3},{6137,563,3}, {6138,540,3},{6137,527,3},{6135,515,3},{6132,505,3},{6132,503,3},{6133,507,3}, {6135,500,3},{6138,500,3},{6140,505,3},{6137,507,3},{6140,508,3},{6142,512,3}, {6140,498,3},{6142,495,3},{6145,508,3},{6145,518,3},{6147,518,3},{6145,532,3}, {6145,533,3},{6147,532,3},{6143,553,3},{6145,555,3},{6145,562,3},{6148,567,3}, {6145,580,3},{6148,577,3},{6150,570,3},{6148,563,3},{6145,555,3},{6145,545,3}, {6148,543,3},{6148,528,3},{6152,515,3},{6155,515,3},{6155,535,3},{6158,515,3}, {6160,527,3},{6160,533,3},{6158,532,3},{6158,542,3},{6160,537,3},{6162,523,3}, {6160,510,3},{6163,535,3},{6165,535,3},{6163,525,3},{6163,497,3},{6168,493,3}, {6173,498,3},{6175,505,3},{6170,513,3},{6172,517,3},{6175,513,3},{6177,523,3}, {6177,507,3},{6182,527,3},{6183,525,3},{6183,533,3},{6185,528,3},{6187,528,3}, {6190,535,3},{6192,542,3},{6188,567,3},{6185,575,3},{6183,570,3},{6182,563,3}, {6183,568,3},{6185,593,3},{6177,593,3},{6173,590,3},{6177,595,3},{6183,597,3}, {6180,605,3},{6177,610,3},{6177,617,3},{6177,618,3},{6183,607,3},{6183,627,3}, {6182,635,3},{6180,647,3},{6182,653,3},{6187,658,3},{6187,668,3},{6183,678,3}, {6187,682,3},{6188,670,3},{6190,667,3},{6187,655,3},{6182,648,3},{6185,628,3}, {6183,612,3},{6187,603,3},{6188,590,3},{6185,578,3},{6188,573,3},{6192,597,3}, {6192,567,3},{6192,560,3},{6192,545,3},{6193,543,3},{6190,515,3},{6192,510,3}, {6197,515,3},{6197,517,3},{6195,518,3},{6197,522,3},{6195,523,3},{6202,530,3}, {6202,540,3},{6210,520,3},{6210,510,3},{6213,513,3},{6215,507,3},{6218,508,3}, {6218,515,3},{6222,515,3},{6222,517,3},{6217,528,3},{6212,528,3},{6205,545,3}, {6200,547,3},{6207,553,3},{6207,558,3},{6207,560,3},{6212,538,3},{6218,542,3}, {6218,548,3},{6217,563,3},{6212,567,3},{6208,575,3},{6213,568,3},{6217,567,3}, {6220,587,3},{6218,592,3},{6215,593,3},{6210,592,3},{6205,585,3},{6202,585,3}, {6207,593,3},{6213,597,3},{6210,605,3},{6207,605,3},{6208,615,3},{6205,635,3}, {6207,635,3},{6208,627,3},{6210,608,3},{6220,592,3},{6223,593,3},{6220,600,3}, {6220,607,3},{6222,600,3},{6225,595,3},{6230,602,3},{6237,632,3},{6227,640,3}, {6225,645,3},{6215,657,3},{6210,653,3},{6213,658,3},{6215,658,3},{6232,642,3}, {6237,638,3},{6240,643,3},{6240,650,3},{6235,657,3},{6240,655,3},{6245,670,3}, {6242,688,3},{6235,688,3},{6228,698,3},{6218,702,3},{6213,695,3},{6210,695,3}, {6208,698,3},{6208,703,3},{6212,713,3},{6210,718,3},{6212,717,3},{6213,713,3}, {6210,703,3},{6212,697,3},{6218,703,3},{6227,702,3},{6227,712,3},{6225,722,3}, {6228,730,3},{6223,742,3},{6228,737,3},{6228,717,3},{6232,698,3},{6237,692,3}, {6237,697,3},{6245,685,3},{6245,677,3},{6248,678,3},{6247,672,3},{6248,670,3}, {6243,655,3},{6242,638,3},{6245,633,3},{6245,623,3},{6247,623,3},{6248,643,3}, {6248,668,3},{6252,662,3},{6250,650,3},{6252,648,3},{6252,653,3},{6253,657,3}, {6253,653,3},{6252,627,3},{6258,625,3},{6262,633,3},{6260,643,3},{6262,655,3}, {6257,662,3},{6262,662,3},{6260,665,3},{6265,675,3},{6260,688,3},{6257,690,3}, {6262,693,3},{6265,690,3},{6265,708,3},{6262,703,3},{6262,710,3},{6253,713,3}, {6257,715,3},{6260,713,3},{6263,717,3},{6260,735,3},{6255,743,3},{6255,750,3}, {6250,753,3},{6255,757,3},{6257,778,3},{6258,772,3},{6257,752,3},{6257,745,3}, {6262,742,3},{6263,748,3},{6258,750,3},{6258,752,3},{6262,753,3},{6265,750,3}, {6267,752,3},{6273,780,3},{6273,790,3},{6272,797,3},{6273,798,3},{6270,815,3}, {6275,805,3},{6277,807,3},{6273,768,3},{6268,750,3},{6268,737,3},{6272,742,3}, {6273,737,3},{6277,750,3},{6278,768,3},{6280,763,3},{6278,747,3},{6275,737,3}, {6272,697,3},{6275,698,3},{6277,695,3},{6280,700,3},{6282,707,3},{6282,722,3}, {6283,715,3},{6285,713,3},{6283,700,3},{6290,695,3},{6292,688,3},{6293,700,3}, {6298,710,3},{6302,727,3},{6295,742,3},{6292,745,3},{6292,747,3},{6293,757,3}, {6297,765,3},{6297,777,3},{6295,778,3},{6290,768,3},{6297,798,3},{6293,808,3}, {6282,817,3},{6278,830,3},{6272,842,3},{6272,848,3},{6265,855,3},{6267,857,3}, {6272,855,3},{6278,835,3},{6280,832,3},{6283,818,3},{6288,817,3},{6290,820,3}, {6292,818,3},{6295,813,3},{6300,800,3},{6303,797,3},{6302,795,3},{6300,797,3}, {6300,790,3},{6300,788,3},{6305,797,3},{6308,798,3},{6310,808,3},{6307,813,3}, {6303,813,3},{6297,833,3},{6293,830,3},{6287,833,3},{6288,840,3},{6283,853,3}, {6287,853,3},{6288,843,3},{6288,847,3},{6287,858,3},{6282,870,3},{6288,862,3}, {6290,848,3},{6295,842,3},{6297,845,3},{6297,865,3},{6298,867,3},{6298,852,3}, {6302,858,3},{6297,837,3},{6300,832,3},{6302,847,3},{6302,832,3},{6303,823,3}, {6307,822,3},{6312,817,3},{6313,822,3},{6308,828,3},{6308,832,3},{6312,832,3}, {6313,823,3},{6315,830,3},{6313,837,3},{6313,853,3},{6310,863,3},{6312,863,3}, {6313,857,3},{6317,857,3},{6318,863,3},{6320,893,3},{6320,860,3},{6325,858,3}, {6330,848,3},{6333,877,3},{6338,865,3},{6340,865,3},{6342,868,3},{6340,872,3}, {6342,873,3},{6343,882,3},{6340,888,3},{6342,888,3},{6342,900,3},{6343,897,3}, {6347,902,3},{6342,912,3},{6337,915,3},{6335,910,3},{6330,908,3},{6335,923,3}, {6337,940,3},{6340,948,3},{6338,942,3},{6337,920,3},{6338,917,3},{6343,918,3}, {6348,948,3},{6347,933,3},{6350,927,3},{6347,927,3},{6345,928,3},{6345,922,3}, {6347,915,3},{6350,915,3},{6350,923,3},{6352,923,3},{6353,925,3},{6353,930,3}, {6357,937,3},{6352,937,3},{6352,942,3},{6357,947,3},{6357,953,3},{6353,957,3}, {6358,955,3},{6358,950,3},{6363,972,3},{6353,982,3},{6352,982,3},{6343,997,3}, {6338,993,3},{6332,983,3},{6335,1000,3},{6333,1010,3},{6333,1023,3},{6332,1025,3}, {6327,1027,3},{6332,1028,3},{6333,1025,3},{6335,1012,3},{6338,1005,3},{6343,1008,3}, {6347,1030,3},{6343,1037,3},{6345,1045,3},{6343,1057,3},{6345,1068,3},{6342,1080,3}, {6343,1083,3},{6347,1092,3},{6348,1078,3},{6352,1077,3},{6353,1080,3},{6355,1092,3}, {6357,1092,3},{6357,1085,3},{6358,1090,3},{6360,1092,3},{6360,1088,3},{6355,1067,3}, {6360,1072,3},{6363,1085,3},{6370,1097,3},{6370,1115,3},{6377,1125,3},{6378,1145,3}, {6385,1142,3},{6385,1135,3},{6387,1127,3},{6385,1113,3},{6385,1110,3},{6390,1110,3}, {6392,1120,3},{6397,1127,3},{6398,1143,3},{6400,1150,3},{6402,1150,3},{6402,1145,3}, {6403,1142,3},{6402,1135,3},{6403,1125,3},{6407,1123,3},{6410,1135,3},{6412,1130,3}, {6407,1122,3},{6402,1120,3},{6398,1112,3},{6388,1080,3},{6387,1070,3},{6380,1057,3}, {6385,1080,3},{6390,1092,3},{6388,1103,3},{6383,1108,3},{6380,1100,3},{6375,1097,3}, {6373,1092,3},{6367,1063,3},{6363,1062,3},{6357,1040,3},{6355,1023,3},{6350,1010,3}, {6348,998,3},{6350,992,3},{6358,990,3},{6360,983,3},{6362,980,3},{6365,983,3}, {6367,978,3},{6368,982,3},{6372,1000,3},{6377,1010,3},{6375,1000,3},{6378,1003,3}, {6375,992,3},{6372,985,3},{6370,965,3},{6367,957,3},{6367,953,3},{6370,957,3}, {6372,955,3},{6377,978,3},{6375,958,3},{6377,955,3},{6382,963,3},{6387,987,3}, {6387,983,3},{6388,980,3},{6390,990,3},{6388,992,3},{6392,1003,3},{6393,1018,3}, {6397,1015,3},{6393,1005,3},{6392,995,3},{6398,1013,3},{6397,1007,3},{6398,1007,3}, {6395,993,3},{6405,1003,3},{6410,1000,3},{6412,1003,3},{6408,1010,3},{6410,1020,3}, {6412,1022,3},{6412,1012,3},{6413,1013,3},{6413,1017,3},{6415,1017,3},{6415,1020,3}, {6418,1017,3},{6420,1018,3},{6418,1023,3},{6420,1028,3},{6418,1037,3},{6422,1037,3}, {6423,1025,3},{6425,1033,3},{6427,1035,3},{6425,1040,3},{6428,1040,3},{6428,1043,3}, {6430,1050,3},{6430,1045,3},{6435,1047,3},{6433,1055,3},{6435,1052,3},{6437,1055,3}, {6433,1060,3},{6435,1065,3},{6437,1060,3},{6440,1057,3},{6440,1047,3},{6443,1050,3}, {6443,1055,3},{6440,1063,3},{6443,1057,3},{6445,1062,3},{6442,1067,3},{6440,1073,3}, {6438,1077,3},{6437,1085,3},{6440,1078,3},{6443,1078,3},{6443,1070,3},{6445,1065,3}, {6447,1070,3},{6447,1083,3},{6450,1082,3},{6448,1088,3},{6447,1090,3},{6448,1092,3}, {6448,1097,3},{6450,1092,3},{6450,1097,3},{6455,1097,3},{6458,1092,3},{6460,1097,3}, {6457,1107,3},{6452,1107,3},{6452,1110,3},{6448,1118,3},{6445,1117,3},{6443,1120,3}, {6445,1122,3},{6445,1127,3},{6443,1133,3},{6432,1123,3},{6438,1135,3},{6440,1138,3}, {6442,1137,3},{6445,1142,3},{6443,1145,3},{6447,1152,3},{6447,1165,3},{6447,1145,3}, {6450,1145,3},{6452,1155,3},{6455,1152,3},{6455,1157,3},{6453,1155,3},{6453,1157,3}, {6458,1178,3},{6460,1172,3},{6458,1163,3},{6462,1163,3},{6462,1160,3},{6460,1155,3}, {6460,1158,3},{6458,1158,3},{6457,1152,3},{6463,1142,3},{6467,1140,3},{6470,1142,3}, {6470,1140,3},{6473,1152,3},{6475,1153,3},{6473,1162,3},{6475,1160,3},{6477,1155,3}, {6477,1157,3},{6478,1172,3},{6477,1173,3},{6480,1183,3},{6482,1165,3},{6483,1178,3}, {6485,1178,3},{6483,1165,3},{6488,1173,3},{6493,1193,3},{6493,1200,3},{6495,1210,3}, {6493,1222,3},{6497,1213,3},{6497,1203,3},{6495,1198,3},{6495,1192,3},{6487,1162,3}, {6483,1162,3},{6482,1155,3},{6482,1147,3},{6475,1138,3},{6473,1125,3},{6477,1135,3}, {6480,1143,3},{6482,1125,3},{6483,1127,3},{6487,1155,3},{6490,1170,3},{6488,1157,3}, {6485,1125,3},{6488,1130,3},{6492,1145,3},{6488,1153,3},{6492,1160,3},{6490,1153,3}, {6493,1148,3},{6495,1158,3},{6493,1163,3},{6497,1162,3},{6495,1167,3},{6497,1182,3}, {6502,1182,3},{6507,1197,3},{6505,1202,3},{6503,1200,3},{6503,1203,3},{6505,1207,3}, {6503,1207,3},{6503,1215,3},{6498,1218,3},{6505,1220,3},{6507,1230,3},{6508,1233,3}, {6508,1245,3},{6512,1250,3},{6512,1263,3},{6513,1260,3},{6515,1267,3},{6518,1270,3}, {6520,1278,3},{6525,1282,3},{6530,1293,3},{6533,1295,3},{6533,1292,3},{6520,1267,3}, {6513,1250,3},{6513,1240,3},{6517,1237,3},{6518,1250,3},{6522,1243,3},{6523,1242,3}, {6522,1235,3},{6523,1238,3},{6525,1272,3},{6527,1265,3},{6527,1260,3},{6525,1260,3}, {6527,1253,3},{6525,1245,3},{6527,1242,3},{6527,1235,3},{6523,1225,3},{6530,1233,3}, {6530,1242,3},{6533,1248,3},{6532,1242,3},{6537,1252,3},{6535,1252,3},{6535,1260,3}, {6533,1268,3},{6535,1265,3},{6537,1253,3},{6545,1248,3},{6545,1255,3},{6542,1257,3}, {6543,1260,3},{6537,1272,3},{6543,1263,3},{6545,1267,3},{6545,1278,3},{6547,1260,3}, {6548,1265,3},{6548,1260,3},{6550,1257,3},{6553,1262,3},{6553,1258,3},{6558,1258,3}, {6553,1255,3},{6552,1250,3},{6552,1247,3},{6558,1253,3},{6552,1243,3},{6555,1238,3}, {6558,1242,3},{6558,1235,3},{6565,1237,3},{6570,1243,3},{6573,1252,3},{6572,1258,3}, {6568,1258,3},{6568,1263,3},{6565,1262,3},{6563,1278,3},{6565,1278,3},{6565,1267,3}, {6570,1265,3},{6575,1255,3},{6578,1262,3},{6580,1265,3},{6578,1272,3},{6583,1270,3}, {6582,1262,3},{6585,1262,3},{6592,1267,3},{6597,1283,3},{6592,1297,3},{6592,1303,3}, {6585,1318,3},{6593,1312,3},{6595,1298,3},{6598,1292,3},{6600,1297,3},{6605,1297,3}, {6607,1303,3},{6608,1302,3},{6605,1288,3},{6603,1273,3},{6605,1273,3},{6607,1267,3}, {6613,1285,3},{6615,1305,3},{6613,1308,3},{6622,1332,3},{6623,1355,3},{6623,1358,3}, {6620,1358,3},{6618,1350,3},{6618,1358,3},{6615,1355,3},{6612,1353,3},{6610,1355,3}, {6615,1362,3},{6617,1375,3},{6615,1383,3},{6617,1383,3},{6618,1378,3},{6617,1368,3}, {6618,1362,3},{6623,1367,3},{6623,1380,3},{6620,1377,3},{6620,1378,3},{6622,1385,3}, {6623,1398,3},{6627,1400,3},{6632,1415,3},{6633,1412,3},{6630,1403,3},{6630,1397,3}, {6627,1392,3},{6627,1380,3},{6628,1375,3},{6625,1372,3},{6623,1362,3},{6625,1357,3}, {6628,1362,3},{6628,1358,3},{6625,1345,3},{6625,1330,3},{6620,1318,3},{6618,1305,3}, {6620,1303,3},{6627,1322,3},{6630,1333,3},{6630,1353,3},{6632,1340,3},{6633,1345,3}, {6633,1337,3},{6637,1332,3},{6632,1333,3},{6630,1320,3},{6630,1313,3},{6632,1317,3}, {6632,1308,3},{6632,1302,3},{6635,1300,3},{6640,1317,3},{6643,1315,3},{6645,1310,3}, {6647,1317,3},{6652,1297,3},{6653,1310,3},{6652,1322,3},{6645,1323,3},{6645,1338,3}, {6647,1327,3},{6650,1330,3},{6652,1327,3},{6653,1333,3},{6655,1347,3},{6652,1367,3}, {6653,1362,3},{6657,1345,3},{6660,1357,3},{6660,1373,3},{6660,1353,3},{6655,1342,3}, {6653,1327,3},{6657,1320,3},{6660,1323,3},{6662,1340,3},{6663,1322,3},{6665,1317,3}, {6667,1318,3},{6665,1345,3},{6663,1353,3},{6667,1348,3},{6668,1330,3},{6672,1323,3}, {6672,1328,3},{6672,1348,3},{6668,1357,3},{6668,1370,3},{6672,1370,3},{6673,1390,3}, {6673,1365,3},{6672,1362,3},{6672,1355,3},{6675,1357,3},{6675,1375,3},{6677,1355,3}, {6678,1350,3},{6680,1362,3},{6678,1382,3},{6678,1398,3},{6680,1393,3},{6682,1380,3}, {6683,1377,3},{6683,1370,3},{6685,1370,3},{6687,1363,3},{6690,1362,3},{6690,1353,3}, {6692,1353,3},{6693,1358,3},{6693,1378,3},{6697,1377,3},{6697,1383,3},{6698,1388,3}, {6700,1395,3},{6698,1397,3},{6695,1388,3},{6692,1392,3},{6692,1395,3},{6693,1393,3}, {6698,1405,3},{6702,1402,3},{6705,1403,3},{6705,1405,3},{6705,1408,3},{6700,1410,3}, {6697,1415,3},{6695,1413,3},{6697,1415,3},{6698,1423,3},{6702,1427,3},{6705,1425,3}, {6707,1440,3},{6705,1453,3},{6702,1455,3},{6702,1457,3},{6703,1460,3},{6705,1457,3}, {6708,1427,3},{6715,1435,3},{6717,1445,3},{6712,1442,3},{6710,1443,3},{6715,1447,3}, {6715,1470,3},{6712,1473,3},{6713,1475,3},{6717,1472,3},{6718,1452,3},{6718,1468,3}, {6720,1477,3},{6722,1498,3},{6720,1493,3},{6715,1488,3},{6708,1498,3},{6712,1500,3}, {6715,1493,3},{6720,1502,3},{6722,1508,3},{6718,1515,3},{6718,1523,3},{6717,1528,3}, {6717,1538,3},{6708,1540,3},{6707,1550,3},{6710,1543,3},{6715,1548,3},{6718,1538,3}, {6720,1538,3},{6720,1548,3},{6717,1573,3},{6722,1570,3},{6720,1558,3},{6723,1540,3}, {6720,1530,3},{6722,1527,3},{6722,1532,3},{6723,1533,3},{6723,1520,3},{6725,1507,3}, {6727,1515,3},{6732,1515,3},{6730,1503,3},{6727,1497,3},{6727,1487,3},{6727,1478,3}, {6725,1483,3},{6723,1477,3},{6722,1470,3},{6722,1462,3},{6723,1470,3},{6728,1470,3}, {6725,1455,3},{6723,1433,3},{6733,1455,3},{6738,1462,3},{6740,1457,3},{6742,1463,3}, {6742,1480,3},{6737,1482,3},{6742,1488,3},{6743,1505,3},{6743,1483,3},{6745,1483,3}, {6747,1477,3},{6747,1478,3},{6750,1473,3},{6755,1492,3},{6757,1507,3},{6755,1515,3}, {6753,1515,3},{6753,1510,3},{6755,1500,3},{6755,1498,3},{6750,1505,3},{6748,1498,3}, {6747,1483,3},{6747,1498,3},{6752,1518,3},{6748,1522,3},{6748,1515,3},{6747,1517,3}, {6742,1515,3},{6747,1523,3},{6748,1532,3},{6747,1545,3},{6740,1553,3},{6735,1553,3}, {6730,1565,3},{6728,1560,3},{6727,1563,3},{6730,1570,3},{6733,1562,3},{6738,1560,3}, {6743,1552,3},{6745,1558,3},{6747,1553,3},{6748,1555,3},{6753,1570,3},{6755,1588,3}, {6757,1590,3},{6755,1572,3},{6752,1557,3},{6752,1537,3},{6753,1523,3},{6758,1525,3}, {6760,1530,3},{6758,1542,3},{6755,1545,3},{6762,1543,3},{6763,1540,3},{6762,1538,3}, {6760,1537,3},{6762,1518,3},{6767,1525,3},{6768,1533,3},{6768,1527,3},{6772,1532,3}, {6768,1550,3},{6767,1553,3},{6768,1553,3},{6767,1565,3},{6770,1558,3},{6770,1547,3}, {6773,1540,3},{6775,1560,3},{6767,1583,3},{6773,1578,3},{6777,1563,3},{6778,1570,3}, {6777,1558,3},{6778,1542,3},{6783,1545,3},{6785,1542,3},{6782,1540,3},{6785,1537,3}, {6780,1537,3},{6773,1520,3},{6772,1518,3},{6767,1500,3},{6763,1482,3},{6765,1473,3}, {6770,1488,3},{6770,1482,3},{6772,1478,3},{6773,1512,3},{6775,1502,3},{6775,1498,3}, {6778,1503,3},{6778,1498,3},{6775,1483,3},{6778,1483,3},{6778,1477,3},{6780,1475,3}, {6782,1480,3},{6782,1488,3},{6783,1497,3},{6783,1508,3},{6785,1510,3},{6785,1507,3}, {6783,1485,3},{6787,1488,3},{6790,1500,3},{6787,1523,3},{6783,1520,3},{6790,1533,3}, {6788,1533,3},{6792,1555,3},{6787,1550,3},{6785,1553,3},{6788,1553,3},{6792,1560,3}, {6793,1560,3},{6795,1577,3},{6790,1587,3},{6793,1588,3},{6797,1595,3},{6800,1597,3}, {6800,1605,3},{6802,1605,3},{6802,1587,3},{6803,1585,3},{6805,1590,3},{6807,1587,3}, {6803,1580,3},{6803,1560,3},{6808,1553,3},{6805,1550,3},{6802,1538,3},{6800,1543,3}, {6798,1540,3},{6800,1532,3},{6803,1528,3},{6805,1535,3},{6807,1535,3},{6812,1543,3}, {6813,1550,3},{6808,1553,3},{6812,1555,3},{6813,1563,3},{6817,1565,3},{6815,1567,3}, {6813,1573,3},{6812,1570,3},{6810,1573,3},{6810,1562,3},{6805,1562,3},{6805,1565,3}, {6807,1567,3},{6807,1573,3},{6808,1575,3},{6808,1585,3},{6813,1592,3},{6818,1587,3}, {6818,1595,3},{6825,1597,3},{6823,1605,3},{6817,1603,3},{6815,1605,3},{6817,1610,3}, {6810,1607,3},{6807,1610,3},{6803,1603,3},{6797,1620,3},{6788,1622,3},{6780,1652,3}, {6782,1643,3},{6785,1645,3},{6788,1625,3},{6797,1628,3},{6800,1620,3},{6800,1627,3}, {6792,1640,3},{6790,1645,3},{6793,1647,3},{6795,1642,3},{6798,1633,3},{6800,1633,3}, {6800,1640,3},{6797,1645,3},{6797,1653,3},{6798,1647,3},{6802,1650,3},{6803,1637,3}, {6807,1640,3},{6810,1647,3},{6807,1653,3},{6805,1667,3},{6807,1667,3},{6807,1672,3}, {6808,1657,3},{6812,1648,3},{6807,1635,3},{6808,1630,3},{6810,1630,3},{6813,1625,3}, {6812,1632,3},{6815,1637,3},{6813,1640,3},{6815,1640,3},{6815,1647,3},{6817,1647,3}, {6818,1642,3},{6817,1658,3},{6820,1647,3},{6822,1645,3},{6820,1642,3},{6820,1617,3}, {6822,1617,3},{6823,1637,3},{6825,1632,3},{6825,1627,3},{6827,1610,3},{6830,1615,3}, {6832,1618,3},{6830,1622,3},{6830,1630,3},{6828,1632,3},{6828,1637,3},{6827,1642,3}, {6825,1652,3},{6820,1657,3},{6813,1673,3},{6813,1680,3},{6820,1663,3},{6827,1658,3}, {6830,1648,3},{6832,1625,3},{6835,1628,3},{6835,1623,3},{6838,1647,3},{6840,1670,3}, {6837,1688,3},{6832,1683,3},{6837,1703,3},{6837,1713,3},{6830,1720,3},{6825,1733,3}, {6817,1733,3},{6818,1737,3},{6823,1735,3},{6823,1742,3},{6825,1742,3},{6833,1722,3}, {6837,1720,3},{6838,1725,3},{6840,1725,3},{6840,1733,3},{6835,1757,3},{6837,1757,3}, {6842,1737,3},{6842,1758,3},{6838,1778,3},{6837,1782,3},{6838,1787,3},{6840,1778,3}, {6845,1763,3},{6845,1747,3},{6850,1755,3},{6853,1753,3},{6850,1735,3},{6845,1722,3}, {6843,1702,3},{6845,1702,3},{6845,1708,3},{6847,1710,3},{6850,1700,3},{6845,1685,3}, {6843,1653,3},{6843,1650,3},{6850,1647,3},{6853,1652,3},{6853,1663,3},{6860,1657,3}, {6865,1665,3},{6870,1698,3},{6863,1710,3},{6863,1717,3},{6865,1718,3},{6865,1713,3}, {6868,1710,3},{6872,1725,3},{6872,1737,3},{6867,1747,3},{6867,1758,3},{6865,1768,3}, {6868,1762,3},{6868,1747,3},{6873,1742,3},{6873,1730,3},{6875,1723,3},{6882,1745,3}, {6875,1778,3},{6878,1777,3},{6878,1767,3},{6883,1747,3},{6888,1765,3},{6888,1773,3}, {6887,1775,3},{6887,1783,3},{6888,1783,3},{6890,1773,3},{6893,1770,3},{6892,1752,3}, {6890,1743,3},{6895,1748,3},{6895,1753,3},{6898,1753,3},{6898,1748,3},{6908,1767,3}, {6910,1763,3},{6912,1785,3},{6915,1800,3},{6915,1815,3},{6917,1807,3},{6923,1810,3}, {6923,1798,3},{6930,1802,3},{6932,1810,3},{6938,1817,3},{6945,1815,3},{6948,1828,3}, {6945,1837,3},{6938,1837,3},{6940,1842,3},{6937,1850,3},{6928,1850,3},{6923,1852,3}, {6935,1855,3},{6928,1863,3},{6925,1868,3},{6928,1870,3},{6932,1867,3},{6932,1877,3}, {6932,1888,3},{6930,1892,3},{6928,1900,3},{6932,1895,3},{6937,1863,3},{6943,1857,3}, {6945,1845,3},{6952,1847,3},{6955,1862,3},{6953,1877,3},{6955,1885,3},{6950,1885,3}, {6942,1900,3},{6940,1902,3},{6935,1912,3},{6935,1930,3},{6932,1937,3},{6928,1935,3}, {6928,1920,3},{6925,1917,3},{6927,1925,3},{6927,1928,3},{6923,1925,3},{6923,1928,3}, {6922,1935,3},{6923,1940,3},{6922,1950,3},{6925,1945,3},{6932,1945,3},{6935,1942,3}, {6938,1930,3},{6938,1912,3},{6942,1908,3},{6945,1900,3},{6952,1900,3},{6955,1918,3}, {6952,1927,3},{6957,1923,3},{6955,1908,3},{6953,1902,3},{6957,1895,3},{6962,1895,3}, {6968,1908,3},{6973,1910,3},{6975,1918,3},{6978,1927,3},{6977,1942,3},{6980,1957,3}, {6980,1977,3},{6967,1968,3},{6963,1973,3},{6950,1962,3},{6947,1965,3},{6942,1955,3}, {6940,1955,3},{6943,1963,3},{6943,1968,3},{6958,1975,3},{6960,1975,3},{6962,1980,3}, {6958,1997,3},{6958,2012,3},{6962,1987,3},{6968,1982,3},{6977,1988,3},{6983,2002,3}, {6977,1997,3},{6977,1998,3},{6978,2003,3},{6992,2015,3},{6993,2017,3},{6988,2017,3}, {6985,2022,3},{6992,2020,3},{6997,2028,3},{6988,2042,3},{6967,2032,3},{6960,2038,3}, {6958,2037,3},{6957,2028,3},{6953,2030,3},{6945,2025,3},{6947,2022,3},{6940,2018,3}, {6933,1998,3},{6932,2000,3},{6928,1992,3},{6925,1995,3},{6932,2003,3},{6938,2020,3}, {6938,2028,3},{6948,2038,3},{6958,2048,3},{6953,2062,3},{6948,2085,3},{6953,2072,3}, {6958,2065,3},{6963,2048,3},{6970,2055,3},{6977,2048,3},{6977,2062,3},{6980,2080,3}, {6983,2083,3},{6987,2078,3},{6992,2092,3},{6995,2108,3},{6985,2090,3},{6983,2097,3}, {6982,2095,3},{6978,2102,3},{6980,2105,3},{6982,2100,3},{6983,2105,3},{6987,2107,3}, {6987,2118,3},{6982,2113,3},{6982,2117,3},{6985,2123,3},{6990,2122,3},{6990,2133,3}, {6993,2120,3},{7000,2125,3},{7002,2132,3},{7002,2142,3},{6998,2155,3},{6995,2160,3}, {6992,2158,3},{6988,2168,3},{6988,2178,3},{6983,2188,3},{6977,2195,3},{6975,2205,3}, {6973,2198,3},{6973,2210,3},{6980,2205,3},{6983,2192,3},{6983,2200,3},{6985,2202,3}, {6987,2193,3},{6993,2190,3},{6998,2193,3},{6998,2200,3},{6997,2203,3},{6995,2203,3}, {6993,2207,3},{7002,2205,3},{7003,2212,3},{7002,2192,3},{7003,2180,3},{7005,2185,3}, {7007,2202,3},{7012,2210,3},{7008,2200,3},{7008,2188,3},{7008,2183,3},{7007,2182,3}, {7005,2173,3},{7010,2162,3},{7008,2155,3},{7010,2147,3},{7015,2143,3},{7017,2148,3}, {7017,2132,3},{7020,2125,3},{7020,2120,3},{7025,2130,3},{7027,2142,3},{7023,2145,3}, {7022,2150,3},{7030,2152,3},{7032,2157,3},{7027,2162,3},{7020,2180,3},{7015,2187,3}, {7018,2185,3},{7020,2188,3},{7022,2182,3},{7025,2180,3},{7032,2200,3},{7032,2203,3}, {7028,2198,3},{7030,2210,3},{7023,2213,3},{7028,2215,3},{7028,2232,3},{7023,2227,3}, {7020,2228,3},{7017,2230,3},{7013,2223,3},{7015,2237,3},{7012,2255,3},{7013,2252,3}, {7017,2233,3},{7020,2235,3},{7025,2240,3},{7023,2258,3},{7022,2260,3},{7022,2270,3}, {7020,2297,3},{7012,2282,3},{7008,2245,3},{7003,2230,3},{7010,2287,3},{7015,2300,3}, {7003,2302,3},{7002,2305,3},{7003,2313,3},{6998,2312,3},{6997,2315,3},{6995,2310,3}, {6993,2313,3},{7000,2332,3},{6997,2335,3},{6993,2332,3},{6998,2347,3},{7002,2353,3}, {7003,2333,3},{7008,2318,3},{7010,2337,3},{7013,2340,3},{7017,2330,3},{7018,2342,3}, {7018,2332,3},{7022,2325,3},{7023,2353,3},{7025,2343,3},{7023,2332,3},{7025,2330,3}, {7028,2343,3},{7030,2362,3},{7030,2353,3},{7032,2353,3},{7032,2347,3},{7037,2352,3}, {7045,2377,3},{7048,2382,3},{7052,2398,3},{7048,2425,3},{7045,2435,3},{7052,2425,3}, {7053,2410,3},{7060,2427,3},{7062,2427,3},{7067,2428,3},{7068,2437,3},{7068,2438,3}, {7067,2448,3},{7062,2462,3},{7062,2468,3},{7062,2473,3},{7065,2473,3},{7073,2457,3}, {7077,2425,3},{7083,2427,3},{7087,2440,3},{7082,2447,3},{7078,2463,3},{7085,2460,3}, {7087,2473,3},{7090,2462,3},{7090,2463,3},{7093,2457,3},{7095,2465,3},{7097,2460,3}, {7097,2478,3},{7093,2487,3},{7090,2483,3},{7092,2498,3},{7097,2498,3},{7093,2507,3}, {7087,2492,3},{7085,2507,3},{7088,2508,3},{7092,2517,3},{7085,2525,3},{7078,2525,3}, {7080,2528,3},{7082,2535,3},{7085,2538,3},{7090,2540,3},{7095,2533,3},{7097,2537,3}, {7090,2553,3},{7087,2545,3},{7085,2543,3},{7083,2547,3},{7087,2552,3},{7085,2553,3}, {7088,2563,3},{7088,2572,3},{7085,2577,3},{7090,2585,3},{7088,2590,3},{7087,2593,3}, {7078,2575,3},{7075,2563,3},{7073,2565,3},{7072,2563,3},{7067,2545,3},{7057,2525,3}, {7050,2507,3},{7052,2527,3},{7048,2527,3},{7048,2510,3},{7048,2505,3},{7047,2528,3}, {7043,2525,3},{7040,2527,3},{7038,2525,3},{7040,2518,3},{7037,2508,3},{7035,2513,3}, {7032,2512,3},{7033,2518,3},{7030,2520,3},{7022,2498,3},{7010,2493,3},{7007,2500,3}, {7007,2505,3},{7012,2500,3},{7015,2508,3},{7012,2507,3},{7013,2513,3},{7012,2508,3}, {7008,2508,3},{7008,2515,3},{7008,2523,3},{7018,2532,3},{7020,2538,3},{7028,2553,3}, {7030,2553,3},{7032,2542,3},{7035,2545,3},{7060,2600,3},{7072,2607,3},{7072,2613,3}, {7077,2617,3},{7087,2637,3},{7093,2655,3},{7095,2670,3},{7090,2673,3},{7085,2667,3}, {7083,2667,3},{7083,2675,3},{7073,2668,3},{7070,2663,3},{7063,2635,3},{7065,2655,3}, {7063,2665,3},{7053,2660,3},{7052,2657,3},{7047,2657,3},{7043,2652,3},{7037,2650,3}, {7035,2655,3},{7037,2658,3},{7038,2665,3},{7040,2663,3},{7042,2665,3},{7042,2675,3}, {7047,2680,3},{7048,2685,3},{7048,2695,3},{7047,2693,3},{7045,2695,3},{7047,2710,3}, {7053,2697,3},{7055,2700,3},{7057,2697,3},{7062,2707,3},{7058,2727,3},{7063,2710,3}, {7068,2715,3},{7070,2708,3},{7073,2713,3},{7075,2725,3},{7073,2732,3},{7075,2735,3}, {7077,2728,3},{7080,2730,3},{7082,2733,3},{7080,2763,3},{7082,2748,3},{7083,2753,3}, {7087,2752,3},{7087,2738,3},{7090,2740,3},{7092,2740,3},{7088,2735,3},{7088,2730,3}, {7090,2717,3},{7092,2712,3},{7095,2713,3},{7097,2717,3},{7093,2735,3},{7100,2722,3}, {7103,2727,3},{7100,2748,3},{7095,2752,3},{7095,2757,3},{7102,2758,3},{7102,2753,3}, {7108,2752,3},{7108,2765,3},{7112,2765,3},{7110,2773,3},{7107,2770,3},{7105,2775,3}, {7105,2777,3},{7103,2788,3},{7107,2803,3},{7103,2808,3},{7107,2813,3},{7108,2820,3}, {7105,2827,3},{7102,2820,3},{7100,2818,3},{7100,2823,3},{7097,2822,3},{7100,2835,3}, {7098,2848,3},{7097,2855,3},{7088,2847,3},{7088,2837,3},{7087,2845,3},{7085,2843,3}, {7085,2835,3},{7083,2837,3},{7083,2822,3},{7080,2830,3},{7078,2827,3},{7078,2813,3}, {7078,2802,3},{7082,2800,3},{7078,2793,3},{7078,2777,3},{7077,2783,3},{7073,2777,3}, {7077,2788,3},{7073,2813,3},{7070,2807,3},{7067,2788,3},{7065,2787,3},{7060,2765,3}, {7062,2783,3},{7067,2813,3},{7072,2830,3},{7065,2828,3},{7062,2822,3},{7048,2785,3}, {7043,2788,3},{7048,2797,3},{7047,2795,3},{7050,2818,3},{7045,2803,3},{7043,2807,3}, {7047,2813,3},{7043,2812,3},{7050,2823,3},{7050,2833,3},{7037,2815,3},{7015,2818,3}, {7008,2810,3},{7007,2802,3},{7008,2813,3},{7017,2823,3},{7028,2818,3},{7042,2825,3}, {7043,2832,3},{7047,2833,3},{7048,2845,3},{7045,2847,3},{7045,2852,3},{7048,2850,3}, {7050,2855,3},{7052,2847,3},{7055,2840,3},{7067,2850,3},{7067,2862,3},{7070,2853,3}, {7073,2855,3},{7078,2865,3},{7087,2875,3},{7087,2882,3},{7088,2890,3},{7087,2910,3}, {7085,2907,3},{7085,2925,3},{7080,2928,3},{7078,2940,3},{7073,2930,3},{7073,2942,3}, {7072,2933,3},{7070,2937,3},{7068,2930,3},{7065,2928,3},{7067,2933,3},{7070,2940,3}, {7070,2955,3},{7075,2970,3},{7073,2978,3},{7070,2978,3},{7067,2977,3},{7062,2968,3}, {7062,2970,3},{7063,2985,3},{7070,2995,3},{7072,3010,3},{7067,3020,3},{7063,3010,3}, {7063,3022,3},{7060,3035,3},{7055,3023,3},{7055,3012,3},{7053,3017,3},{7053,3000,3}, {7052,3015,3},{7053,3032,3},{7055,3045,3},{7053,3058,3},{7053,3060,3},{7050,3057,3}, {7047,3072,3},{7045,3075,3},{7042,3080,3},{7043,3083,3},{7045,3095,3},{7037,3105,3}, {7033,3102,3},{7028,3107,3},{7027,3092,3},{7027,3077,3},{7023,3052,3},{7020,3050,3}, {7018,3037,3},{7015,3038,3},{7013,3035,3},{7010,3023,3},{7008,3012,3},{7007,3015,3}, {7007,2980,3},{7013,2915,3},{7013,2902,3},{7018,2870,3},{7017,2860,3},{7017,2875,3}, {7010,2862,3},{7010,2885,3},{7008,2875,3},{7008,2877,3},{7005,2913,3},{7003,2913,3}, {7003,2918,3},{7000,2913,3},{7002,2933,3},{6997,2968,3},{6990,2943,3},{6985,2937,3}, {6985,2943,3},{6992,2953,3},{6990,2965,3},{6992,2972,3},{6983,2977,3},{6978,2970,3}, {6977,2963,3},{6972,2958,3},{6970,2952,3},{6970,2955,3},{6965,2948,3},{6973,2967,3}, {6973,2980,3},{6973,2990,3},{6975,2995,3},{6977,3005,3},{6973,3003,3},{6970,2993,3}, {6968,2993,3},{6973,3007,3},{6970,3012,3},{6968,3018,3},{6975,3012,3},{6977,3022,3}, {6980,3015,3},{6987,3017,3},{6988,3030,3},{6987,3033,3},{6983,3028,3},{6983,3038,3}, {6983,3040,3},{6970,3042,3},{6968,3040,3},{6967,3033,3},{6967,3042,3},{6968,3045,3}, {6978,3045,3},{6982,3045,3},{6982,3055,3},{6980,3072,3},{6978,3070,3},{6977,3072,3}, {6978,3080,3},{6970,3090,3},{6968,3095,3},{6958,3095,3},{6955,3092,3},{6953,3080,3}, {6955,3052,3},{6963,3030,3},{6967,3015,3},{6965,3007,3},{6963,3007,3},{6963,3015,3}, {6958,3018,3},{6955,3013,3},{6950,3010,3},{6943,2995,3},{6943,2982,3},{6938,2968,3}, {6932,2932,3},{6925,2932,3},{6912,2925,3},{6903,2912,3},{6903,2900,3},{6912,2878,3}, {6923,2882,3},{6937,2912,3},{6948,2930,3},{6968,2913,3},{6970,2910,3},{6983,2838,3}, {6988,2832,3},{6992,2817,3},{6993,2810,3},{7000,2798,3},{7008,2795,3},{7008,2790,3}, {7007,2775,3},{7007,2757,3},{7003,2753,3},{6998,2730,3},{6995,2730,3},{6993,2720,3}, {6990,2705,3},{6993,2687,3},{6995,2685,3},{6995,2680,3},{6993,2672,3},{6995,2662,3}, {6993,2647,3},{6985,2638,3},{6980,2625,3},{6975,2615,3},{6970,2598,3},{6967,2595,3}, {6963,2598,3},{6958,2595,3},{6957,2593,3},{6955,2585,3},{6948,2587,3},{6943,2583,3}, {6938,2583,3},{6935,2575,3},{6925,2572,3},{6912,2573,3},{6902,2582,3},{6898,2575,3}, {6888,2562,3},{6888,2542,3},{6882,2522,3},{6877,2515,3},{6863,2510,3},{6860,2495,3}, {6855,2490,3},{6867,2475,3},{6870,2452,3},{6872,2433,3},{6875,2420,3},{6877,2418,3}, {6878,2412,3},{6882,2405,3},{6883,2393,3},{6883,2383,3},{6872,2368,3},{6868,2345,3}, {6863,2320,3},{6870,2307,3},{6868,2280,3},{6873,2255,3},{6872,2240,3},{6885,2235,3}, {6928,2168,3},{6933,2132,3},{6922,2103,3},{6913,2105,3},{6910,2112,3},{6905,2108,3}, {6903,2103,3},{6910,2073,3},{6905,2058,3},{6905,2010,3},{6893,2032,3},{6878,2035,3}, {6867,2020,3},{6855,1995,3},{6850,2008,3},{6848,2022,3},{6845,2018,3},{6840,2005,3}, {6833,1993,3},{6848,1895,3},{6847,1862,3},{6853,1835,3},{6850,1808,3},{6842,1805,3}, {6833,1808,3},{6817,1815,3},{6795,1788,3},{6803,1760,3},{6808,1727,3},{6803,1718,3}, {6790,1673,3},{6763,1655,3},{6752,1638,3},{6750,1620,3},{6742,1608,3},{6723,1637,3}, {6717,1640,3},{6702,1635,3},{6688,1602,3},{6660,1563,3},{6648,1537,3},{6628,1547,3}, {6615,1503,3},{6613,1450,3},{6583,1463,3},{6570,1453,3},{6558,1450,3},{6532,1450,3}, {6525,1437,3},{6507,1427,3},{6497,1410,3},{6458,1367,3},{6452,1387,3},{6447,1412,3}, {6433,1415,3},{6417,1415,3},{6402,1398,3},{6410,1323,3},{6405,1293,3},{6395,1265,3}, {6385,1248,3},{6367,1228,3},{6358,1213,3},{6348,1220,3},{6327,1193,3},{6302,1217,3}, {6290,1203,3},{6275,1208,3},{6260,1202,3},{6258,1205,3},{6250,1210,3},{6247,1215,3}, {6242,1220,3},{6237,1222,3},{6232,1227,3},{6227,1230,3},{6222,1228,3},{6217,1227,3}, {6212,1225,3},{6205,1223,3},{6200,1222,3},{6195,1220,3},{6190,1218,3},{6185,1217,3}, {6178,1215,3},{6173,1212,3},{6170,1218,3},{6165,1227,3},{6162,1235,3},{6157,1240,3}, {6157,1253,3},{6137,1285,3},{6120,1277,3},{6115,1270,3},{6107,1265,3},{6105,1257,3}, {6105,1240,3},{6100,1222,3},{6088,1232,3},{6078,1237,3},{6065,1250,3},{6060,1250,3}, {6053,1258,3},{6048,1260,3},{6040,1258,3},{6030,1248,3},{6018,1252,3},{6008,1248,3}, {5998,1232,3},{5988,1213,3},{5990,1197,3},{5988,1193,3},{5985,1182,3},{5980,1188,3}, {5970,1190,3},{5968,1183,3},{5965,1183,3},{5960,1167,3},{5927,1180,3},{5917,1175,3}, {5908,1175,3},{5902,1168,3},{5890,1162,3},{5888,1147,3},{5890,1142,3},{5898,1143,3}, {5890,1142,3},{5888,1147,3},{5890,1162,3},{5902,1168,3},{5908,1175,3},{5917,1175,3}, {5927,1180,3},{5960,1167,3},{5965,1183,3},{5968,1183,3},{5970,1190,3},{5980,1188,3}, {5985,1182,3},{5988,1193,3},{5990,1197,3},{5988,1213,3},{5998,1232,3},{6008,1248,3}, {6018,1252,3},{6030,1248,3},{6040,1258,3},{6048,1260,3},{6053,1258,3},{6060,1250,3}, {6065,1250,3},{6078,1237,3},{6088,1232,3},{6100,1222,3},{6105,1240,3},{6105,1257,3}, {6107,1265,3},{6115,1270,3},{6120,1277,3},{6137,1285,3},{6157,1253,3},{6157,1240,3}, {6162,1235,3},{6165,1227,3},{6170,1218,3},{6173,1212,3},{6178,1215,3},{6185,1217,3}, {6190,1218,3},{6195,1220,3},{6200,1222,3},{6205,1223,3},{6212,1225,3},{6217,1227,3}, {6222,1228,3},{6227,1230,3},{6232,1227,3},{6237,1222,3},{6242,1220,3},{6247,1215,3}, {6250,1210,3},{6258,1205,3},{6260,1202,3},{6275,1208,3},{6290,1203,3},{6302,1217,3}, {6327,1193,3},{6348,1220,3},{6358,1213,3},{6367,1228,3},{6385,1248,3},{6395,1265,3}, {6405,1293,3},{6410,1323,3},{6402,1398,3},{6417,1415,3},{6433,1415,3},{6447,1412,3}, {6452,1387,3},{6458,1367,3},{6497,1410,3},{6507,1427,3},{6525,1437,3},{6532,1450,3}, {6558,1450,3},{6570,1453,3},{6583,1463,3},{6613,1450,3},{6615,1503,3},{6628,1547,3}, {6648,1537,3},{6660,1563,3},{6688,1602,3},{6702,1635,3},{6717,1640,3},{6723,1637,3}, {6742,1608,3},{6750,1620,3},{6752,1638,3},{6763,1655,3},{6790,1673,3},{6803,1718,3}, {6808,1727,3},{6803,1760,3},{6795,1788,3},{6817,1815,3},{6833,1808,3},{6842,1805,3}, {6850,1808,3},{6853,1835,3},{6847,1862,3},{6848,1895,3},{6833,1993,3},{6840,2005,3}, {6845,2018,3},{6848,2022,3},{6850,2008,3},{6855,1995,3},{6867,2020,3},{6878,2035,3}, {6893,2032,3},{6905,2010,3},{6905,2058,3},{6900,2087,3},{6895,2093,3},{6893,2088,3}, {6888,2090,3},{6887,2108,3},{6882,2122,3},{6875,2130,3},{6875,2140,3},{6868,2147,3}, {6865,2162,3},{6858,2175,3},{6857,2190,3},{6848,2205,3},{6847,2217,3},{6847,2232,3}, {6847,2237,3},{6845,2238,3},{6845,2247,3},{6842,2263,3},{6842,2267,3},{6838,2277,3}, {6838,2282,3},{6833,2290,3},{6828,2307,3},{6823,2315,3},{6812,2315,3},{6815,2328,3}, {6812,2333,3},{6805,2340,3},{6800,2352,3},{6798,2355,3},{6795,2365,3},{6792,2365,3}, {6788,2352,3},{6787,2348,3},{6773,2348,3},{6758,2355,3},{6755,2347,3},{6747,2343,3}, {6743,2348,3},{6745,2355,3},{6743,2363,3},{6742,2377,3},{6737,2375,3},{6732,2377,3}, {6728,2375,3},{6727,2360,3},{6722,2358,3},{6720,2362,3},{6715,2357,3},{6710,2367,3}, {6700,2373,3},{6697,2383,3},{6688,2393,3},{6680,2400,3},{6678,2393,3},{6675,2388,3}, {6655,2388,3},{6653,2380,3},{6652,2380,3},{6650,2373,3},{6648,2373,3},{6645,2365,3}, {6637,2368,3},{6632,2367,3},{6620,2373,3},{6613,2393,3},{6582,2417,3},{6580,2403,3}, {6578,2405,3},{6580,2398,3},{6575,2393,3},{6578,2387,3},{6580,2377,3},{6582,2373,3}, {6582,2368,3},{6578,2362,3},{6580,2360,3},{6580,2350,3},{6583,2348,3},{6580,2342,3}, {6577,2343,3},{6578,2338,3},{6582,2337,3},{6582,2333,3},{6578,2332,3},{6583,2320,3}, {6578,2318,3},{6577,2323,3},{6575,2315,3},{6572,2313,3},{6570,2308,3},{6575,2305,3}, {6575,2302,3},{6580,2290,3},{6578,2288,3},{6580,2283,3},{6585,2278,3},{6590,2268,3}, {6590,2263,3},{6587,2268,3},{6580,2270,3},{6577,2268,3},{6575,2265,3},{6577,2265,3}, {6580,2260,3},{6577,2250,3},{6582,2253,3},{6583,2247,3},{6585,2248,3},{6587,2237,3}, {6583,2237,3},{6583,2233,3},{6580,2237,3},{6580,2232,3},{6575,2235,3},{6573,2232,3}, {6575,2222,3},{6572,2225,3},{6572,2237,3},{6567,2238,3},{6567,2235,3},{6570,2228,3}, {6568,2225,3},{6562,2228,3},{6562,2218,3},{6560,2228,3},{6563,2232,3},{6567,2228,3}, {6567,2232,3},{6563,2233,3},{6563,2238,3},{6560,2233,3},{6557,2242,3},{6553,2240,3}, {6557,2235,3},{6557,2232,3},{6558,2225,3},{6555,2223,3},{6565,2193,3},{6567,2187,3}, {6572,2177,3},{6570,2177,3},{6565,2185,3},{6560,2202,3},{6558,2212,3},{6555,2217,3}, {6555,2220,3},{6553,2213,3},{6553,2208,3},{6552,2207,3},{6552,2205,3},{6552,2200,3}, {6553,2185,3},{6548,2192,3},{6548,2195,3},{6552,2193,3},{6547,2203,3},{6542,2200,3}, {6545,2195,3},{6540,2193,3},{6542,2187,3},{6540,2185,3},{6540,2175,3},{6542,2172,3}, {6540,2170,3},{6538,2167,3},{6542,2158,3},{6540,2155,3},{6538,2160,3},{6538,2147,3}, {6537,2148,3},{6535,2145,3},{6532,2153,3},{6532,2158,3},{6533,2158,3},{6528,2170,3}, {6525,2167,3},{6523,2157,3},{6532,2148,3},{6532,2142,3},{6537,2132,3},{6535,2133,3}, {6533,2127,3},{6532,2140,3},{6515,2162,3},{6513,2155,3},{6512,2157,3},{6508,2153,3}, {6507,2158,3},{6505,2147,3},{6502,2150,3},{6502,2142,3},{6498,2137,3},{6497,2138,3}, {6495,2125,3},{6492,2125,3},{6488,2120,3},{6487,2122,3},{6485,2117,3},{6483,2118,3}, {6482,2112,3},{6485,2107,3},{6483,2103,3},{6478,2110,3},{6478,2122,3},{6477,2130,3}, {6475,2130,3},{6475,2123,3},{6468,2132,3},{6468,2128,3},{6467,2128,3},{6473,2113,3}, {6472,2110,3},{6468,2112,3},{6465,2125,3},{6463,2123,3},{6460,2130,3},{6458,2132,3}, {6457,2137,3},{6460,2137,3},{6455,2145,3},{6458,2148,3},{6453,2150,3},{6453,2155,3}, {6452,2150,3},{6455,2145,3},{6452,2140,3},{6453,2135,3},{6452,2138,3},{6452,2148,3}, {6445,2148,3},{6447,2158,3},{6448,2158,3},{6445,2160,3},{6442,2152,3},{6437,2145,3}, {6433,2135,3},{6437,2132,3},{6432,2133,3},{6430,2127,3},{6432,2125,3},{6427,2120,3}, {6423,2113,3},{6422,2110,3},{6422,2107,3},{6413,2095,3},{6410,2097,3},{6405,2090,3}, {6398,2090,3},{6395,2082,3},{6387,2078,3},{6383,2067,3},{6382,2072,3},{6380,2068,3}, {6378,2065,3},{6382,2062,3},{6377,2055,3},{6382,2050,3},{6377,2045,3},{6377,2042,3}, {6370,2042,3},{6367,2038,3},{6368,2035,3},{6372,2037,3},{6375,2032,3},{6365,2030,3}, {6367,2027,3},{6373,2028,3},{6365,2023,3},{6363,2013,3},{6367,2005,3},{6365,2002,3}, {6362,2002,3},{6360,2003,3},{6360,2000,3},{6362,1993,3},{6360,1992,3},{6362,1990,3}, {6355,1983,3},{6352,1975,3},{6345,1977,3},{6343,1967,3},{6352,1958,3},{6357,1945,3}, {6355,1942,3},{6353,1947,3},{6350,1945,3},{6348,1952,3},{6347,1947,3},{6340,1952,3}, {6342,1947,3},{6345,1942,3},{6348,1935,3},{6345,1937,3},{6343,1935,3},{6347,1930,3}, {6333,1927,3},{6332,1925,3},{6333,1923,3},{6332,1920,3},{6332,1913,3},{6330,1915,3}, {6325,1912,3},{6325,1913,3},{6323,1910,3},{6325,1905,3},{6322,1905,3},{6320,1912,3}, {6320,1907,3},{6318,1907,3},{6318,1903,3},{6322,1897,3},{6325,1895,3},{6325,1892,3}, {6327,1888,3},{6327,1887,3},{6325,1887,3},{6325,1883,3},{6325,1875,3},{6325,1873,3}, {6322,1890,3},{6318,1890,3},{6318,1880,3},{6317,1878,3},{6320,1875,3},{6322,1882,3}, {6322,1870,3},{6315,1875,3},{6317,1857,3},{6313,1865,3},{6312,1865,3},{6310,1863,3}, {6312,1857,3},{6307,1853,3},{6307,1855,3},{6305,1850,3},{6302,1848,3},{6305,1843,3}, {6305,1838,3},{6302,1843,3},{6302,1838,3},{6303,1835,3},{6302,1833,3},{6300,1823,3}, {6298,1855,3},{6295,1858,3},{6297,1853,3},{6295,1853,3},{6295,1845,3},{6297,1843,3}, {6295,1838,3},{6292,1845,3},{6292,1853,3},{6290,1850,3},{6290,1848,3},{6290,1840,3}, {6288,1847,3},{6285,1847,3},{6283,1837,3},{6287,1828,3},{6288,1828,3},{6288,1825,3}, {6287,1825,3},{6287,1820,3},{6283,1822,3},{6282,1823,3},{6283,1828,3},{6282,1827,3}, {6278,1820,3},{6282,1818,3},{6277,1813,3},{6277,1808,3},{6278,1808,3},{6280,1800,3}, {6280,1813,3},{6282,1815,3},{6283,1807,3},{6285,1807,3},{6282,1798,3},{6280,1797,3}, {6282,1792,3},{6290,1793,3},{6292,1788,3},{6298,1782,3},{6300,1783,3},{6298,1778,3}, {6297,1777,3},{6300,1770,3},{6293,1783,3},{6285,1790,3},{6282,1788,3},{6278,1795,3}, {6277,1795,3},{6273,1800,3},{6265,1800,3},{6267,1788,3},{6262,1805,3},{6260,1807,3}, {6255,1797,3},{6260,1795,3},{6262,1793,3},{6255,1792,3},{6253,1788,3},{6252,1788,3}, {6248,1785,3},{6250,1770,3},{6247,1765,3},{6243,1770,3},{6243,1762,3},{6245,1755,3}, {6253,1742,3},{6250,1738,3},{6248,1733,3},{6243,1738,3},{6240,1737,3},{6240,1733,3}, {6232,1738,3},{6233,1742,3},{6232,1745,3},{6228,1748,3},{6228,1747,3},{6227,1747,3}, {6223,1765,3},{6220,1755,3},{6220,1753,3},{6223,1757,3},{6223,1752,3},{6208,1748,3}, {6207,1745,3},{6205,1747,3},{6203,1743,3},{6200,1747,3},{6198,1740,3},{6195,1738,3}, {6195,1735,3},{6190,1735,3},{6188,1737,3},{6187,1733,3},{6185,1735,3},{6182,1733,3}, {6182,1740,3},{6180,1737,3},{6172,1740,3},{6173,1748,3},{6170,1752,3},{6163,1750,3}, {6163,1743,3},{6168,1738,3},{6172,1733,3},{6167,1733,3},{6168,1730,3},{6170,1730,3}, {6172,1727,3},{6172,1715,3},{6170,1717,3},{6168,1727,3},{6165,1717,3},{6163,1718,3}, {6165,1713,3},{6163,1710,3},{6160,1725,3},{6160,1720,3},{6162,1710,3},{6160,1715,3}, {6158,1705,3},{6155,1718,3},{6155,1708,3},{6152,1717,3},{6152,1712,3},{6148,1718,3}, {6145,1717,3},{6143,1722,3},{6142,1722,3},{6142,1717,3},{6143,1713,3},{6140,1710,3}, {6133,1720,3},{6132,1727,3},{6130,1723,3},{6132,1715,3},{6130,1717,3},{6128,1725,3}, {6128,1720,3},{6132,1713,3},{6132,1710,3},{6123,1722,3},{6122,1715,3},{6118,1718,3}, {6117,1718,3},{6115,1717,3},{6113,1718,3},{6112,1715,3},{6110,1720,3},{6105,1717,3}, {6103,1718,3},{6102,1717,3},{6102,1725,3},{6100,1717,3},{6095,1715,3},{6093,1720,3}, {6090,1720,3},{6090,1723,3},{6083,1728,3},{6082,1725,3},{6080,1728,3},{6078,1728,3}, {6077,1733,3},{6073,1730,3},{6070,1718,3},{6070,1727,3},{6068,1728,3},{6065,1737,3}, {6063,1732,3},{6062,1733,3},{6063,1740,3},{6065,1755,3},{6063,1762,3},{6060,1765,3}, {6058,1760,3},{6052,1763,3},{6048,1773,3},{6053,1773,3},{6057,1777,3},{6060,1787,3}, {6060,1797,3},{6055,1800,3},{6050,1797,3},{6048,1803,3},{6038,1817,3},{6038,1827,3}, {6035,1820,3},{6033,1823,3},{6035,1827,3},{6035,1832,3},{6035,1843,3},{6028,1848,3}, {6028,1843,3},{6023,1860,3},{6022,1855,3},{6023,1847,3},{6030,1832,3},{6025,1837,3}, {6022,1845,3},{6020,1843,3},{6023,1840,3},{6018,1842,3},{6015,1852,3},{6018,1855,3}, {6007,1858,3},{6012,1858,3},{6013,1858,3},{6015,1863,3},{6012,1868,3},{6012,1873,3}, {6005,1875,3},{6000,1880,3},{6010,1875,3},{6010,1877,3},{6012,1882,3},{6007,1882,3}, {5993,1890,3},{5992,1893,3},{5992,1900,3},{5988,1902,3},{5988,1903,3},{5988,1907,3}, {5982,1905,3},{5993,1888,3},{5985,1893,3},{5980,1887,3},{5978,1873,3},{5977,1873,3}, {5978,1897,3},{5977,1907,3},{5973,1908,3},{5972,1903,3},{5972,1898,3},{5973,1893,3}, {5975,1892,3},{5972,1887,3},{5968,1875,3},{5967,1875,3},{5967,1872,3},{5965,1870,3}, {5965,1873,3},{5963,1873,3},{5962,1870,3},{5963,1865,3},{5962,1868,3},{5958,1867,3}, {5953,1847,3},{5947,1840,3},{5947,1827,3},{5945,1830,3},{5945,1825,3},{5943,1828,3}, {5942,1828,3},{5940,1833,3},{5938,1832,3},{5940,1817,3},{5942,1817,3},{5942,1822,3}, {5945,1818,3},{5943,1815,3},{5945,1812,3},{5943,1808,3},{5940,1810,3},{5938,1805,3}, {5940,1802,3},{5937,1808,3},{5933,1813,3},{5935,1798,3},{5933,1793,3},{5937,1782,3}, {5942,1775,3},{5950,1778,3},{5953,1785,3},{5957,1782,3},{5958,1782,3},{5962,1775,3}, {5965,1775,3},{5970,1772,3},{5965,1772,3},{5962,1772,3},{5965,1760,3},{5967,1765,3}, {5972,1765,3},{5973,1768,3},{5975,1763,3},{5978,1763,3},{5980,1760,3},{5975,1753,3}, {5975,1737,3},{5973,1750,3},{5968,1745,3},{5967,1748,3},{5957,1753,3},{5965,1750,3}, {5970,1752,3},{5972,1755,3},{5973,1753,3},{5973,1762,3},{5970,1762,3},{5965,1757,3}, {5958,1775,3},{5953,1778,3},{5948,1775,3},{5945,1772,3},{5945,1768,3},{5948,1767,3}, {5950,1758,3},{5948,1755,3},{5952,1752,3},{5955,1755,3},{5953,1750,3},{5957,1743,3}, {5962,1737,3},{5965,1738,3},{5962,1733,3},{5955,1740,3},{5952,1738,3},{5948,1742,3}, {5947,1740,3},{5950,1735,3},{5947,1737,3},{5947,1735,3},{5955,1722,3},{5955,1712,3}, {5960,1707,3},{5958,1702,3},{5953,1707,3},{5955,1695,3},{5958,1690,3},{5958,1682,3}, {5952,1673,3},{5953,1668,3},{5958,1662,3},{5962,1655,3},{5960,1650,3},{5955,1655,3}, {5953,1653,3},{5952,1645,3},{5952,1648,3},{5950,1648,3},{5950,1642,3},{5952,1638,3}, {5948,1635,3},{5948,1633,3},{5945,1632,3},{5947,1628,3},{5950,1627,3},{5950,1623,3}, {5948,1622,3},{5948,1623,3},{5947,1618,3},{5950,1602,3},{5945,1608,3},{5943,1618,3}, {5947,1645,3},{5945,1660,3},{5947,1667,3},{5938,1682,3},{5938,1687,3},{5938,1688,3}, {5940,1688,3},{5947,1670,3},{5947,1682,3},{5948,1683,3},{5945,1692,3},{5937,1703,3}, {5937,1717,3},{5935,1732,3},{5932,1730,3},{5932,1725,3},{5927,1728,3},{5925,1722,3}, {5925,1740,3},{5928,1737,3},{5932,1737,3},{5927,1755,3},{5922,1760,3},{5928,1758,3}, {5928,1763,3},{5927,1770,3},{5925,1773,3},{5925,1772,3},{5923,1773,3},{5925,1778,3}, {5927,1775,3},{5927,1787,3},{5922,1787,3},{5928,1788,3},{5933,1797,3},{5932,1815,3}, {5933,1820,3},{5932,1822,3},{5937,1827,3},{5937,1835,3},{5935,1843,3},{5933,1843,3}, {5933,1847,3},{5940,1845,3},{5940,1850,3},{5943,1843,3},{5943,1848,3},{5937,1862,3}, {5937,1855,3},{5935,1863,3},{5932,1865,3},{5930,1852,3},{5930,1835,3},{5932,1833,3}, {5933,1835,3},{5933,1832,3},{5932,1828,3},{5928,1832,3},{5927,1827,3},{5927,1828,3}, {5920,1842,3},{5923,1832,3},{5922,1832,3},{5920,1838,3},{5918,1837,3},{5918,1840,3}, {5917,1838,3},{5917,1843,3},{5913,1842,3},{5913,1830,3},{5912,1828,3},{5910,1832,3}, {5907,1820,3},{5910,1825,3},{5912,1825,3},{5912,1822,3},{5908,1813,3},{5907,1812,3}, {5905,1805,3},{5903,1805,3},{5903,1800,3},{5902,1802,3},{5897,1797,3},{5893,1798,3}, {5892,1793,3},{5892,1790,3},{5887,1790,3},{5892,1787,3},{5892,1782,3},{5897,1778,3}, {5890,1780,3},{5888,1778,3},{5892,1778,3},{5892,1775,3},{5912,1777,3},{5913,1777,3}, {5912,1773,3},{5905,1772,3},{5905,1770,3},{5908,1767,3},{5912,1768,3},{5917,1767,3}, {5912,1767,3},{5908,1762,3},{5897,1762,3},{5895,1758,3},{5893,1762,3},{5892,1760,3}, {5892,1763,3},{5890,1763,3},{5890,1753,3},{5887,1758,3},{5885,1758,3},{5890,1745,3}, {5887,1747,3},{5882,1745,3},{5880,1748,3},{5880,1733,3},{5878,1738,3},{5875,1737,3}, {5875,1730,3},{5872,1725,3},{5873,1715,3},{5875,1712,3},{5877,1708,3},{5875,1703,3}, {5873,1708,3},{5870,1707,3},{5870,1715,3},{5868,1712,3},{5865,1708,3},{5867,1705,3}, {5867,1695,3},{5867,1702,3},{5863,1703,3},{5863,1695,3},{5862,1690,3},{5867,1625,3}, {5863,1627,3},{5863,1618,3},{5862,1628,3},{5863,1633,3},{5858,1640,3},{5863,1643,3}, {5862,1652,3},{5863,1657,3},{5860,1668,3},{5860,1675,3},{5860,1673,3},{5860,1678,3}, {5858,1678,3},{5855,1683,3},{5855,1682,3},{5853,1685,3},{5852,1683,3},{5848,1693,3}, {5848,1685,3},{5845,1683,3},{5842,1675,3},{5848,1650,3},{5847,1642,3},{5840,1672,3}, {5837,1670,3},{5835,1675,3},{5837,1677,3},{5835,1677,3},{5833,1673,3},{5835,1663,3}, {5832,1670,3},{5828,1672,3},{5832,1673,3},{5832,1680,3},{5828,1675,3},{5827,1670,3}, {5825,1680,3},{5823,1678,3},{5823,1682,3},{5820,1682,3},{5818,1683,3},{5817,1678,3}, {5813,1680,3},{5812,1677,3},{5818,1665,3},{5820,1663,3},{5820,1662,3},{5815,1668,3}, {5813,1667,3},{5810,1670,3},{5808,1675,3},{5805,1672,3},{5805,1668,3},{5805,1673,3}, {5802,1675,3},{5802,1668,3},{5800,1670,3},{5800,1668,3},{5805,1665,3},{5802,1663,3}, {5798,1667,3},{5798,1662,3},{5798,1668,3},{5797,1672,3},{5797,1673,3},{5792,1678,3}, {5792,1673,3},{5788,1677,3},{5787,1673,3},{5792,1670,3},{5790,1668,3},{5790,1662,3}, {5792,1660,3},{5792,1665,3},{5798,1655,3},{5800,1652,3},{5798,1650,3},{5795,1652,3}, {5793,1658,3},{5790,1658,3},{5788,1657,3},{5792,1648,3},{5790,1648,3},{5790,1647,3}, {5777,1668,3},{5773,1670,3},{5790,1642,3},{5785,1645,3},{5780,1657,3},{5778,1658,3}, {5773,1667,3},{5773,1665,3},{5770,1672,3},{5770,1670,3},{5768,1672,3},{5768,1665,3}, {5770,1657,3},{5767,1663,3},{5765,1663,3},{5765,1658,3},{5763,1663,3},{5758,1657,3}, {5762,1655,3},{5762,1652,3},{5760,1653,3},{5758,1652,3},{5757,1655,3},{5757,1652,3}, {5755,1663,3},{5747,1670,3},{5747,1667,3},{5745,1667,3},{5745,1663,3},{5742,1663,3}, {5742,1667,3},{5740,1663,3},{5738,1663,3},{5738,1655,3},{5733,1657,3},{5733,1653,3}, {5732,1657,3},{5730,1648,3},{5728,1647,3},{5723,1650,3},{5723,1647,3},{5717,1647,3}, {5712,1652,3},{5712,1655,3},{5708,1657,3},{5707,1655,3},{5705,1658,3},{5705,1653,3}, {5707,1653,3},{5705,1652,3},{5705,1645,3},{5702,1647,3},{5702,1643,3},{5698,1643,3}, {5695,1647,3},{5692,1643,3},{5687,1645,3},{5680,1640,3},{5678,1643,3},{5680,1647,3}, {5677,1648,3},{5677,1645,3},{5677,1642,3},{5675,1635,3},{5667,1638,3},{5665,1627,3}, {5660,1622,3},{5653,1622,3},{5653,1618,3},{5642,1610,3},{5625,1605,3},{5620,1600,3}, {5620,1595,3},{5608,1585,3},{5610,1578,3},{5613,1582,3},{5615,1582,3},{5617,1580,3}, {5615,1577,3},{5618,1565,3},{5617,1558,3},{5620,1560,3},{5617,1550,3},{5617,1548,3}, {5615,1547,3},{5618,1542,3},{5613,1537,3},{5613,1530,3},{5617,1532,3},{5618,1530,3}, {5615,1523,3},{5617,1515,3},{5615,1512,3},{5618,1507,3},{5618,1503,3},{5615,1505,3}, {5617,1485,3},{5613,1483,3},{5617,1480,3},{5617,1470,3},{5612,1468,3},{5603,1477,3}, {5600,1473,3},{5602,1470,3},{5600,1468,3},{5600,1462,3},{5603,1460,3},{5605,1460,3}, {5603,1457,3},{5605,1457,3},{5603,1448,3},{5600,1445,3},{5593,1433,3},{5590,1432,3}, {5588,1427,3},{5583,1422,3},{5572,1420,3},{5567,1427,3},{5562,1428,3},{5553,1437,3}, {5538,1420,3},{5538,1407,3},{5543,1393,3},{5543,1388,3},{5542,1385,3},{5542,1365,3}, {5537,1358,3},{5538,1352,3},{5533,1338,3},{5533,1330,3},{5535,1317,3},{5535,1307,3}, {5538,1302,3},{5540,1295,3},{5538,1293,3},{5538,1288,3},{5538,1283,3},{5540,1283,3}, {5543,1287,3},{5542,1293,3},{5543,1295,3},{5545,1297,3},{5543,1298,3},{5557,1292,3}, {5558,1293,3},{5562,1303,3},{5567,1307,3},{5572,1302,3},{5572,1297,3},{5573,1297,3}, {5575,1292,3},{5578,1293,3},{5582,1293,3},{5585,1288,3},{5587,1282,3},{5600,1270,3}, {5603,1270,3},{5613,1257,3},{5623,1253,3},{5630,1245,3},{5627,1263,3},{5623,1267,3}, {5622,1272,3},{5623,1282,3},{5627,1283,3},{5630,1277,3},{5637,1273,3},{5638,1263,3}, {5642,1262,3},{5645,1267,3},{5647,1273,3},{5643,1285,3},{5645,1290,3},{5653,1293,3}, {5663,1288,3},{5665,1282,3},{5665,1278,3},{5665,1272,3},{5667,1270,3},{5668,1267,3}, {5672,1267,3},{5675,1262,3},{5683,1257,3},{5685,1253,3},{5688,1248,3},{5692,1235,3}, {5702,1233,3},{5707,1223,3},{5708,1222,3},{5712,1223,3},{5713,1222,3},{5718,1220,3}, {5718,1215,3},{5722,1220,3},{5722,1213,3},{5723,1210,3},{5723,1215,3},{5725,1210,3}, {5728,1215,3},{5732,1215,3},{5733,1212,3},{5733,1205,3},{5738,1210,3},{5740,1207,3}, {5740,1210,3},{5743,1210,3},{5745,1203,3},{5743,1202,3},{5735,1198,3},{5737,1197,3}, {5735,1193,3},{5738,1195,3},{5738,1190,3},{5747,1192,3},{5748,1195,3},{5750,1192,3}, {5750,1193,3},{5752,1190,3},{5762,1192,3},{5762,1190,3},{5760,1188,3},{5760,1187,3}, {5763,1187,3},{5767,1183,3},{5768,1187,3},{5770,1180,3},{5772,1175,3},{5770,1175,3}, {5770,1170,3},{5773,1172,3},{5778,1182,3},{5778,1173,3},{5783,1170,3},{5783,1167,3}, {5787,1170,3},{5788,1168,3},{5790,1175,3},{5792,1177,3},{5793,1173,3},{5800,1180,3}, {5805,1180,3},{5807,1178,3},{5812,1183,3},{5818,1183,3},{5818,1187,3},{5822,1188,3}, {5822,1185,3},{5830,1180,3},{5833,1188,3},{5833,1172,3},{5830,1172,3},{5830,1165,3}, {5825,1158,3},{5825,1153,3},{5823,1153,3},{5823,1150,3},{5830,1152,3},{5838,1162,3}, {5840,1162,3},{5842,1167,3},{5843,1163,3},{5840,1160,3},{5847,1155,3},{5842,1157,3}, {5833,1153,3},{5828,1148,3},{5827,1140,3},{5832,1145,3},{5830,1140,3},{5833,1138,3}, {5833,1145,3},{5835,1145,3},{5835,1142,3},{5838,1142,3},{5835,1138,3},{5833,1135,3}, {5835,1135,3},{5843,1143,3},{5835,1132,3},{5837,1127,3},{5833,1122,3},{5840,1120,3}, {5842,1125,3},{5845,1125,3},{5847,1128,3},{5850,1123,3},{5855,1125,3},{5857,1128,3}, {5860,1125,3},{5865,1125,3},{5867,1122,3},{5870,1122,3},{5872,1118,3},{5875,1118,3}, {5875,1122,3},{5877,1120,3},{5880,1123,3},{5885,1123,3},{5887,1120,3},{5892,1120,3}, {5895,1110,3},{5898,1118,3},{5900,1112,3},{5907,1118,3},{5910,1132,3},{5898,1143,3}, {5788,2435,131},{5797,2437,3},{5807,2445,3},{5825,2447,3},{5828,2455,3}, {5832,2457,3},{5838,2447,3},{5838,2433,3},{5828,2425,3},{5827,2415,3},{5823,2412,3}, {5832,2397,3},{5832,2388,3},{5833,2385,3},{5835,2383,3},{5833,2373,3},{5840,2372,3}, {5843,2367,3},{5853,2368,3},{5852,2363,3},{5857,2357,3},{5858,2355,3},{5857,2350,3}, {5860,2352,3},{5870,2350,3},{5870,2355,3},{5873,2352,3},{5875,2353,3},{5873,2360,3}, {5875,2368,3},{5872,2378,3},{5873,2380,3},{5877,2378,3},{5878,2378,3},{5877,2388,3}, {5880,2378,3},{5878,2375,3},{5878,2360,3},{5877,2343,3},{5880,2347,3},{5882,2353,3}, {5885,2348,3},{5890,2342,3},{5893,2343,3},{5895,2358,3},{5897,2363,3},{5902,2362,3}, {5905,2357,3},{5902,2362,3},{5900,2357,3},{5897,2355,3},{5898,2345,3},{5902,2340,3}, {5902,2343,3},{5907,2343,3},{5908,2350,3},{5907,2352,3},{5913,2352,3},{5918,2347,3}, {5922,2347,3},{5922,2357,3},{5925,2365,3},{5923,2373,3},{5923,2375,3},{5927,2372,3}, {5928,2383,3},{5927,2390,3},{5928,2403,3},{5927,2408,3},{5930,2410,3},{5935,2402,3}, {5938,2403,3},{5940,2408,3},{5935,2422,3},{5937,2422,3},{5940,2417,3},{5940,2425,3}, {5942,2430,3},{5943,2432,3},{5947,2433,3},{5947,2440,3},{5943,2450,3},{5947,2457,3}, {5943,2463,3},{5945,2467,3},{5947,2462,3},{5947,2467,3},{5950,2468,3},{5945,2473,3}, {5945,2477,3},{5948,2482,3},{5952,2478,3},{5957,2478,3},{5955,2487,3},{5950,2492,3}, {5952,2503,3},{5950,2510,3},{5953,2510,3},{5953,2512,3},{5948,2540,3},{5953,2542,3}, {5952,2552,3},{5953,2555,3},{5957,2548,3},{5967,2548,3},{5957,2563,3},{5957,2567,3}, {5958,2572,3},{5965,2567,3},{5967,2570,3},{5963,2577,3},{5958,2578,3},{5957,2582,3}, {5958,2585,3},{5963,2588,3},{5958,2597,3},{5963,2598,3},{5962,2605,3},{5958,2610,3}, {5958,2625,3},{5955,2643,3},{5953,2650,3},{5955,2665,3},{5948,2682,3},{5945,2697,3}, {5945,2743,3},{5940,2785,3},{5942,2795,3},{5947,2805,3},{5943,2813,3},{5940,2822,3}, {5933,2818,3},{5932,2818,3},{5928,2807,3},{5927,2797,3},{5923,2790,3},{5918,2788,3}, {5915,2783,3},{5910,2778,3},{5903,2777,3},{5898,2773,3},{5902,2752,3},{5898,2727,3}, {5895,2707,3},{5888,2698,3},{5883,2695,3},{5878,2695,3},{5872,2712,3},{5862,2720,3}, {5842,2723,3},{5840,2727,3},{5840,2733,3},{5837,2742,3},{5828,2742,3},{5825,2747,3}, {5820,2747,3},{5810,2755,3},{5808,2760,3},{5803,2758,3},{5797,2762,3},{5800,2765,3}, {5800,2770,3},{5795,2768,3},{5792,2775,3},{5792,2780,3},{5787,2783,3},{5783,2775,3}, {5783,2765,3},{5782,2755,3},{5780,2750,3},{5775,2753,3},{5772,2753,3},{5770,2742,3}, {5765,2738,3},{5760,2737,3},{5755,2732,3},{5755,2723,3},{5757,2712,3},{5760,2702,3}, {5763,2693,3},{5763,2692,3},{5760,2683,3},{5757,2668,3},{5752,2660,3},{5752,2650,3}, {5757,2645,3},{5758,2635,3},{5762,2625,3},{5767,2622,3},{5773,2618,3},{5775,2610,3}, {5778,2602,3},{5783,2605,3},{5785,2605,3},{5785,2593,3},{5787,2583,3},{5792,2577,3}, {5792,2575,3},{5790,2572,3},{5790,2568,3},{5795,2560,3},{5797,2557,3},{5798,2547,3}, {5802,2545,3},{5803,2537,3},{5808,2530,3},{5807,2527,3},{5800,2530,3},{5800,2527,3}, {5805,2522,3},{5807,2522,3},{5808,2512,3},{5803,2505,3},{5800,2495,3},{5798,2487,3}, {5798,2475,3},{5795,2470,3},{5795,2463,3},{5795,2460,3},{5793,2452,3},{5792,2447,3}, {5788,2445,3},{5788,2435,3},{5150,2362,131},{5152,2360,3},{5155,2357,3}, {5165,2353,3},{5167,2355,3},{5175,2355,3},{5178,2362,3},{5180,2363,3},{5183,2360,3}, {5190,2363,3},{5192,2362,3},{5195,2363,3},{5198,2367,3},{5208,2363,3},{5212,2360,3}, {5212,2352,3},{5215,2348,3},{5217,2350,3},{5218,2345,3},{5217,2343,3},{5218,2338,3}, {5220,2338,3},{5222,2330,3},{5223,2330,3},{5223,2320,3},{5228,2318,3},{5228,2317,3}, {5252,2340,3},{5260,2360,3},{5262,2368,3},{5262,2375,3},{5268,2390,3},{5273,2393,3}, {5288,2393,3},{5292,2392,3},{5297,2393,3},{5302,2393,3},{5308,2388,3},{5317,2392,3}, {5320,2387,3},{5323,2385,3},{5325,2382,3},{5340,2375,3},{5348,2367,3},{5363,2362,3}, {5375,2358,3},{5378,2355,3},{5397,2350,3},{5395,2355,3},{5392,2363,3},{5393,2375,3}, {5390,2380,3},{5392,2383,3},{5393,2380,3},{5395,2385,3},{5395,2390,3},{5397,2393,3}, {5393,2403,3},{5397,2413,3},{5393,2422,3},{5392,2432,3},{5392,2443,3},{5397,2452,3}, {5400,2463,3},{5400,2472,3},{5395,2470,3},{5397,2473,3},{5398,2482,3},{5403,2483,3}, {5408,2480,3},{5413,2485,3},{5415,2493,3},{5413,2502,3},{5413,2508,3},{5418,2515,3}, {5427,2523,3},{5427,2533,3},{5430,2543,3},{5432,2552,3},{5430,2552,3},{5428,2555,3}, {5420,2558,3},{5417,2553,3},{5415,2560,3},{5415,2570,3},{5418,2580,3},{5423,2578,3}, {5423,2580,3},{5428,2575,3},{5432,2568,3},{5432,2567,3},{5433,2557,3},{5435,2555,3}, {5437,2558,3},{5442,2563,3},{5448,2565,3},{5455,2572,3},{5460,2577,3},{5465,2573,3}, {5472,2575,3},{5477,2573,3},{5483,2578,3},{5488,2585,3},{5493,2590,3},{5495,2600,3}, {5493,2603,3},{5495,2608,3},{5497,2610,3},{5498,2618,3},{5503,2625,3},{5512,2627,3}, {5515,2637,3},{5513,2647,3},{5517,2652,3},{5515,2655,3},{5515,2665,3},{5520,2668,3}, {5522,2673,3},{5527,2677,3},{5528,2685,3},{5532,2685,3},{5533,2675,3},{5533,2667,3}, {5533,2657,3},{5533,2648,3},{5537,2648,3},{5538,2657,3},{5545,2655,3},{5552,2652,3}, {5557,2660,3},{5562,2663,3},{5567,2662,3},{5570,2667,3},{5570,2670,3},{5570,2682,3}, {5573,2688,3},{5580,2693,3},{5583,2702,3},{5583,2708,3},{5585,2718,3},{5583,2720,3}, {5580,2728,3},{5582,2737,3},{5578,2747,3},{5578,2760,3},{5583,2763,3},{5588,2763,3}, {5595,2770,3},{5598,2780,3},{5603,2782,3},{5607,2793,3},{5612,2797,3},{5613,2805,3}, {5617,2815,3},{5613,2823,3},{5608,2828,3},{5605,2832,3},{5605,2837,3},{5608,2845,3}, {5612,2855,3},{5610,2867,3},{5603,2870,3},{5598,2872,3},{5597,2880,3},{5595,2885,3}, {5600,2892,3},{5603,2900,3},{5605,2910,3},{5602,2917,3},{5598,2927,3},{5597,2938,3}, {5593,2947,3},{5588,2942,3},{5583,2940,3},{5578,2937,3},{5575,2937,3},{5573,2945,3}, {5570,2948,3},{5572,2957,3},{5578,2962,3},{5580,2972,3},{5580,2975,3},{5578,2977,3}, {5578,2978,3},{5582,2983,3},{5585,2990,3},{5585,3000,3},{5583,3010,3},{5587,3020,3}, {5585,3028,3},{5582,3037,3},{5582,3047,3},{5577,3052,3},{5573,3062,3},{5570,3065,3}, {5565,3068,3},{5565,3072,3},{5560,3077,3},{5563,3085,3},{5562,3093,3},{5557,3097,3}, {5550,3095,3},{5545,3090,3},{5540,3093,3},{5535,3088,3},{5533,3083,3},{5528,3085,3}, {5525,3092,3},{5520,3095,3},{5518,3098,3},{5517,3098,3},{5515,3102,3},{5510,3100,3}, {5503,3102,3},{5503,3093,3},{5500,3097,3},{5497,3095,3},{5495,3087,3},{5488,3083,3}, {5483,3077,3},{5480,3077,3},{5478,3085,3},{5473,3093,3},{5470,3102,3},{5468,3100,3}, {5467,3108,3},{5467,3118,3},{5467,3120,3},{5458,3118,3},{5455,3113,3},{5450,3110,3}, {5448,3120,3},{5447,3123,3},{5442,3128,3},{5437,3130,3},{5432,3132,3},{5425,3132,3}, {5423,3140,3},{5420,3148,3},{5417,3150,3},{5413,3157,3},{5413,3167,3},{5412,3168,3}, {5412,3178,3},{5407,3182,3},{5403,3190,3},{5398,3187,3},{5393,3185,3},{5388,3182,3}, {5383,3178,3},{5382,3178,3},{5380,3177,3},{5380,3180,3},{5378,3187,3},{5380,3197,3}, {5380,3205,3},{5380,3215,3},{5378,3222,3},{5377,3230,3},{5373,3237,3},{5373,3247,3}, {5368,3250,3},{5365,3242,3},{5365,3245,3},{5358,3245,3},{5355,3252,3},{5352,3260,3}, {5348,3260,3},{5350,3263,3},{5347,3265,3},{5347,3277,3},{5340,3277,3},{5335,3273,3}, {5333,3273,3},{5333,3265,3},{5330,3257,3},{5328,3253,3},{5323,3248,3},{5318,3242,3}, {5318,3237,3},{5313,3230,3},{5310,3223,3},{5310,3218,3},{5308,3215,3},{5308,3207,3}, {5308,3197,3},{5312,3190,3},{5312,3185,3},{5317,3178,3},{5322,3168,3},{5322,3163,3}, {5318,3158,3},{5320,3150,3},{5320,3147,3},{5320,3143,3},{5315,3138,3},{5310,3138,3}, {5308,3135,3},{5303,3132,3},{5303,3130,3},{5303,3125,3},{5300,3132,3},{5295,3138,3}, {5287,3147,3},{5285,3155,3},{5280,3158,3},{5273,3162,3},{5270,3153,3},{5263,3157,3}, {5258,3158,3},{5257,3167,3},{5253,3167,3},{5253,3163,3},{5252,3160,3},{5247,3162,3}, {5242,3162,3},{5237,3163,3},{5230,3162,3},{5227,3168,3},{5227,3170,3},{5222,3172,3}, {5220,3172,3},{5218,3178,3},{5212,3180,3},{5210,3180,3},{5210,3170,3},{5212,3162,3}, {5212,3150,3},{5213,3142,3},{5210,3135,3},{5207,3132,3},{5205,3130,3},{5207,3120,3}, {5210,3112,3},{5208,3100,3},{5207,3093,3},{5202,3093,3},{5200,3090,3},{5198,3090,3}, {5195,3083,3},{5190,3080,3},{5190,3077,3},{5185,3070,3},{5183,3068,3},{5178,3067,3}, {5178,3063,3},{5177,3065,3},{5172,3063,3},{5172,3058,3},{5167,3058,3},{5162,3055,3}, {5160,3052,3},{5158,3057,3},{5155,3055,3},{5155,3058,3},{5150,3060,3},{5148,3062,3}, {5143,3060,3},{5142,3063,3},{5137,3067,3},{5133,3065,3},{5132,3058,3},{5125,3057,3}, {5128,3050,3},{5128,3047,3},{5130,3047,3},{5133,3038,3},{5135,3035,3},{5140,3037,3}, {5145,3030,3},{5148,3023,3},{5152,3017,3},{5150,3007,3},{5148,2995,3},{5148,2990,3}, {5147,2988,3},{5145,2980,3},{5150,2973,3},{5152,2973,3},{5150,2963,3},{5147,2958,3}, {5147,2955,3},{5142,2953,3},{5140,2950,3},{5142,2943,3},{5138,2937,3},{5140,2932,3}, {5147,2928,3},{5152,2927,3},{5158,2925,3},{5158,2922,3},{5163,2923,3},{5165,2913,3}, {5158,2902,3},{5157,2900,3},{5158,2900,3},{5158,2892,3},{5155,2883,3},{5150,2878,3}, {5145,2880,3},{5143,2880,3},{5142,2878,3},{5147,2873,3},{5145,2870,3},{5143,2868,3}, {5152,2865,3},{5157,2868,3},{5157,2860,3},{5158,2852,3},{5157,2843,3},{5155,2840,3}, {5160,2835,3},{5163,2827,3},{5168,2828,3},{5165,2818,3},{5162,2813,3},{5157,2805,3}, {5157,2795,3},{5157,2792,3},{5162,2792,3},{5163,2788,3},{5158,2783,3},{5153,2780,3}, {5147,2775,3},{5150,2768,3},{5155,2768,3},{5158,2773,3},{5160,2773,3},{5163,2765,3}, {5165,2757,3},{5165,2753,3},{5167,2753,3},{5162,2750,3},{5163,2740,3},{5162,2728,3}, {5160,2727,3},{5160,2725,3},{5165,2727,3},{5167,2727,3},{5167,2723,3},{5167,2720,3}, {5177,2720,3},{5178,2720,3},{5178,2712,3},{5178,2703,3},{5175,2695,3},{5178,2685,3}, {5180,2677,3},{5182,2667,3},{5183,2663,3},{5182,2655,3},{5180,2652,3},{5183,2645,3}, {5187,2642,3},{5187,2633,3},{5188,2622,3},{5190,2615,3},{5192,2607,3},{5192,2598,3}, {5192,2590,3},{5195,2582,3},{5192,2572,3},{5192,2560,3},{5193,2550,3},{5193,2542,3}, {5197,2533,3},{5198,2528,3},{5197,2518,3},{5195,2510,3},{5192,2503,3},{5192,2495,3}, {5193,2483,3},{5190,2475,3},{5192,2467,3},{5193,2453,3},{5193,2442,3},{5192,2438,3}, {5183,2438,3},{5178,2437,3},{5173,2432,3},{5165,2418,3},{5160,2410,3},{5158,2405,3}, {5158,2397,3},{5158,2395,3},{5165,2390,3},{5163,2382,3},{5167,2373,3},{5163,2365,3}, {5157,2363,3},{5152,2368,3},{5150,2362,3},{5607,2107,131},{5613,2103,3}, {5623,2098,3},{5630,2098,3},{5637,2097,3},{5643,2100,3},{5650,2100,3},{5652,2102,3}, {5645,2105,3},{5640,2103,3},{5638,2107,3},{5640,2108,3},{5650,2107,3},{5653,2098,3}, {5668,2105,3},{5683,2105,3},{5692,2127,3},{5698,2137,3},{5707,2142,3},{5720,2142,3}, {5728,2142,3},{5757,2172,3},{5760,2187,3},{5760,2200,3},{5773,2247,3},{5775,2260,3}, {5768,2258,3},{5758,2263,3},{5750,2285,3},{5742,2295,3},{5737,2313,3},{5723,2320,3}, {5717,2323,3},{5710,2327,3},{5705,2335,3},{5703,2350,3},{5698,2358,3},{5697,2368,3}, {5697,2378,3},{5702,2398,3},{5707,2403,3},{5712,2422,3},{5723,2440,3},{5733,2442,3}, {5753,2437,3},{5762,2438,3},{5768,2435,3},{5773,2430,3},{5782,2428,3},{5788,2435,3}, {5788,2445,3},{5792,2447,3},{5793,2452,3},{5795,2460,3},{5795,2463,3},{5795,2470,3}, {5798,2475,3},{5798,2487,3},{5800,2495,3},{5803,2505,3},{5808,2512,3},{5807,2522,3}, {5805,2522,3},{5800,2527,3},{5800,2530,3},{5807,2527,3},{5808,2530,3},{5803,2537,3}, {5802,2545,3},{5798,2547,3},{5797,2557,3},{5795,2560,3},{5790,2568,3},{5790,2572,3}, {5792,2575,3},{5792,2577,3},{5787,2583,3},{5785,2593,3},{5785,2605,3},{5783,2605,3}, {5778,2602,3},{5775,2610,3},{5773,2618,3},{5767,2622,3},{5762,2625,3},{5758,2635,3}, {5757,2645,3},{5752,2650,3},{5752,2660,3},{5757,2668,3},{5760,2683,3},{5763,2692,3}, {5763,2693,3},{5760,2702,3},{5757,2712,3},{5755,2723,3},{5755,2732,3},{5753,2742,3}, {5753,2753,3},{5748,2755,3},{5747,2752,3},{5743,2752,3},{5742,2762,3},{5738,2768,3}, {5735,2777,3},{5732,2783,3},{5727,2787,3},{5722,2785,3},{5717,2782,3},{5712,2775,3}, {5710,2772,3},{5708,2775,3},{5703,2773,3},{5698,2773,3},{5692,2772,3},{5692,2768,3}, {5687,2768,3},{5685,2767,3},{5687,2777,3},{5687,2785,3},{5683,2792,3},{5683,2795,3}, {5682,2798,3},{5677,2793,3},{5672,2797,3},{5667,2802,3},{5662,2803,3},{5658,2813,3}, {5652,2810,3},{5647,2815,3},{5640,2818,3},{5638,2817,3},{5632,2822,3},{5623,2820,3}, {5617,2818,3},{5617,2815,3},{5613,2805,3},{5612,2797,3},{5607,2793,3},{5603,2782,3}, {5598,2780,3},{5595,2770,3},{5588,2763,3},{5583,2763,3},{5578,2760,3},{5578,2747,3}, {5582,2737,3},{5580,2728,3},{5583,2720,3},{5585,2718,3},{5583,2708,3},{5583,2702,3}, {5580,2693,3},{5573,2688,3},{5570,2682,3},{5570,2670,3},{5570,2667,3},{5567,2662,3}, {5567,2653,3},{5570,2642,3},{5570,2638,3},{5573,2635,3},{5578,2625,3},{5583,2623,3}, {5590,2610,3},{5595,2605,3},{5598,2598,3},{5600,2590,3},{5600,2587,3},{5605,2582,3}, {5608,2573,3},{5610,2570,3},{5615,2568,3},{5613,2557,3},{5617,2555,3},{5615,2547,3}, {5615,2537,3},{5615,2532,3},{5618,2523,3},{5618,2515,3},{5618,2510,3},{5623,2507,3}, {5628,2503,3},{5632,2497,3},{5637,2495,3},{5642,2490,3},{5643,2492,3},{5645,2488,3}, {5640,2483,3},{5640,2473,3},{5637,2465,3},{5633,2460,3},{5630,2458,3},{5627,2450,3}, {5625,2445,3},{5628,2437,3},{5630,2430,3},{5627,2420,3},{5627,2412,3},{5632,2403,3}, {5633,2395,3},{5633,2383,3},{5633,2380,3},{5632,2378,3},{5635,2377,3},{5637,2367,3}, {5633,2357,3},{5635,2347,3},{5638,2337,3},{5637,2325,3},{5637,2317,3},{5632,2313,3}, {5632,2303,3},{5640,2302,3},{5640,2298,3},{5642,2297,3},{5637,2288,3},{5637,2277,3}, {5637,2267,3},{5638,2258,3},{5640,2247,3},{5640,2237,3},{5640,2227,3},{5643,2215,3}, {5642,2205,3},{5642,2200,3},{5637,2193,3},{5637,2183,3},{5633,2175,3},{5632,2167,3}, {5630,2157,3},{5628,2147,3},{5623,2142,3},{5622,2133,3},{5617,2127,3},{5617,2123,3}, {5608,2122,3},{5608,2112,3},{5607,2107,3},{5525,2128,131},{5528,2127,3}, {5528,2128,3},{5533,2127,3},{5537,2125,3},{5533,2118,3},{5542,2125,3},{5547,2125,3}, {5568,2115,3},{5573,2108,3},{5578,2107,3},{5592,2105,3},{5607,2107,3},{5608,2112,3}, {5608,2122,3},{5617,2123,3},{5617,2127,3},{5622,2133,3},{5623,2142,3},{5628,2147,3}, {5630,2157,3},{5632,2167,3},{5633,2175,3},{5637,2183,3},{5637,2193,3},{5642,2200,3}, {5642,2205,3},{5643,2215,3},{5640,2227,3},{5640,2237,3},{5640,2247,3},{5638,2258,3}, {5637,2267,3},{5637,2277,3},{5637,2288,3},{5642,2297,3},{5640,2298,3},{5640,2302,3}, {5632,2303,3},{5632,2313,3},{5637,2317,3},{5637,2325,3},{5638,2337,3},{5635,2347,3}, {5633,2357,3},{5637,2367,3},{5635,2377,3},{5632,2378,3},{5633,2380,3},{5633,2383,3}, {5633,2395,3},{5632,2403,3},{5627,2412,3},{5627,2420,3},{5630,2430,3},{5628,2437,3}, {5625,2445,3},{5627,2450,3},{5630,2458,3},{5633,2460,3},{5637,2465,3},{5640,2473,3}, {5640,2483,3},{5645,2488,3},{5643,2492,3},{5642,2490,3},{5637,2495,3},{5632,2497,3}, {5628,2503,3},{5623,2507,3},{5618,2510,3},{5618,2515,3},{5618,2523,3},{5615,2532,3}, {5615,2537,3},{5615,2547,3},{5617,2555,3},{5613,2557,3},{5615,2568,3},{5610,2570,3}, {5608,2573,3},{5605,2582,3},{5600,2587,3},{5600,2590,3},{5598,2598,3},{5595,2605,3}, {5590,2610,3},{5583,2623,3},{5578,2625,3},{5573,2635,3},{5570,2638,3},{5570,2642,3}, {5567,2653,3},{5567,2662,3},{5562,2663,3},{5557,2660,3},{5552,2652,3},{5545,2655,3}, {5538,2657,3},{5537,2648,3},{5533,2648,3},{5533,2657,3},{5533,2667,3},{5533,2675,3}, {5532,2685,3},{5528,2685,3},{5527,2677,3},{5522,2673,3},{5520,2668,3},{5515,2665,3}, {5515,2655,3},{5517,2652,3},{5513,2647,3},{5515,2637,3},{5512,2627,3},{5503,2625,3}, {5498,2618,3},{5497,2610,3},{5495,2608,3},{5493,2603,3},{5495,2600,3},{5493,2590,3}, {5488,2585,3},{5483,2578,3},{5477,2573,3},{5472,2575,3},{5465,2573,3},{5460,2577,3}, {5455,2572,3},{5448,2565,3},{5442,2563,3},{5437,2558,3},{5435,2555,3},{5433,2557,3}, {5432,2567,3},{5432,2568,3},{5428,2575,3},{5423,2580,3},{5423,2578,3},{5418,2580,3}, {5415,2570,3},{5415,2560,3},{5417,2553,3},{5420,2558,3},{5428,2555,3},{5430,2552,3}, {5432,2552,3},{5430,2543,3},{5427,2533,3},{5427,2523,3},{5418,2515,3},{5413,2508,3}, {5413,2502,3},{5415,2493,3},{5413,2485,3},{5408,2480,3},{5403,2483,3},{5398,2482,3}, {5397,2473,3},{5395,2470,3},{5400,2472,3},{5400,2463,3},{5397,2452,3},{5392,2443,3}, {5392,2432,3},{5393,2422,3},{5397,2413,3},{5393,2403,3},{5397,2393,3},{5395,2390,3}, {5395,2385,3},{5393,2380,3},{5392,2383,3},{5390,2380,3},{5393,2375,3},{5392,2363,3}, {5395,2355,3},{5397,2350,3},{5400,2347,3},{5402,2352,3},{5405,2352,3},{5418,2345,3}, {5418,2342,3},{5425,2333,3},{5425,2323,3},{5428,2320,3},{5430,2315,3},{5430,2307,3}, {5432,2305,3},{5435,2307,3},{5435,2302,3},{5438,2300,3},{5440,2287,3},{5440,2282,3}, {5437,2278,3},{5440,2275,3},{5447,2270,3},{5453,2268,3},{5460,2268,3},{5462,2272,3}, {5467,2273,3},{5472,2273,3},{5477,2282,3},{5480,2288,3},{5485,2287,3},{5490,2285,3}, {5492,2280,3},{5495,2273,3},{5498,2267,3},{5497,2267,3},{5502,2262,3},{5507,2257,3}, {5507,2255,3},{5505,2247,3},{5507,2238,3},{5507,2228,3},{5505,2217,3},{5503,2207,3}, {5503,2205,3},{5508,2203,3},{5508,2200,3},{5508,2190,3},{5512,2182,3},{5515,2172,3}, {5518,2163,3},{5518,2152,3},{5523,2145,3},{5528,2138,3},{5528,2135,3},{5525,2128,3}, {5528,2093,131},{5542,2105,3},{5553,2110,3},{5572,2108,3},{5568,2113,3}, {5557,2113,3},{5543,2108,3},{5542,2110,3},{5537,2105,3},{5533,2105,3},{5528,2098,3}, {5528,2093,3},{5447,1960,131},{5455,1977,3},{5467,1990,3},{5470,1990,3}, {5472,1993,3},{5477,1997,3},{5487,1992,3},{5495,1997,3},{5495,2003,3},{5497,2027,3}, {5495,2030,3},{5495,2042,3},{5503,2063,3},{5517,2082,3},{5528,2093,3},{5528,2098,3}, {5527,2098,3},{5523,2090,3},{5515,2083,3},{5497,2053,3},{5493,2057,3},{5493,2078,3}, {5490,2087,3},{5490,2098,3},{5490,2107,3},{5490,2108,3},{5495,2125,3},{5520,2118,3}, {5520,2127,3},{5525,2128,3},{5528,2135,3},{5528,2138,3},{5523,2145,3},{5518,2152,3}, {5518,2163,3},{5515,2172,3},{5512,2182,3},{5508,2190,3},{5508,2200,3},{5508,2203,3}, {5503,2205,3},{5503,2207,3},{5505,2217,3},{5507,2228,3},{5507,2238,3},{5505,2247,3}, {5507,2255,3},{5507,2257,3},{5502,2262,3},{5497,2267,3},{5498,2267,3},{5495,2273,3}, {5492,2280,3},{5490,2285,3},{5485,2287,3},{5480,2288,3},{5477,2282,3},{5472,2273,3}, {5467,2273,3},{5462,2272,3},{5460,2268,3},{5453,2268,3},{5447,2270,3},{5440,2275,3}, {5437,2278,3},{5435,2263,3},{5435,2252,3},{5435,2243,3},{5435,2233,3},{5433,2225,3}, {5433,2215,3},{5433,2207,3},{5433,2198,3},{5433,2188,3},{5433,2180,3},{5433,2170,3}, {5433,2162,3},{5433,2153,3},{5433,2142,3},{5435,2073,3},{5442,2018,3},{5442,2005,3}, {5445,1968,3},{5447,1960,3},{4545,2822,131},{4552,2825,3},{4555,2832,3}, {4552,2840,3},{4548,2845,3},{4552,2852,3},{4557,2852,3},{4558,2855,3},{4562,2853,3}, {4567,2852,3},{4568,2850,3},{4572,2853,3},{4575,2860,3},{4577,2860,3},{4577,2863,3}, {4580,2872,3},{4582,2872,3},{4585,2878,3},{4590,2878,3},{4595,2877,3},{4598,2882,3}, {4600,2890,3},{4602,2898,3},{4607,2900,3},{4612,2897,3},{4615,2902,3},{4620,2905,3}, {4622,2903,3},{4628,2895,3},{4633,2898,3},{4638,2897,3},{4647,2895,3},{4650,2902,3}, {4652,2908,3},{4653,2918,3},{4655,2917,3},{4657,2925,3},{4652,2923,3},{4650,2927,3}, {4645,2923,3},{4640,2922,3},{4638,2925,3},{4638,2927,3},{4643,2932,3},{4645,2932,3}, {4650,2933,3},{4650,2935,3},{4648,2937,3},{4645,2942,3},{4647,2940,3},{4648,2947,3}, {4645,2950,3},{4642,2957,3},{4637,2960,3},{4637,2970,3},{4640,2968,3},{4645,2968,3}, {4645,2975,3},{4648,2975,3},{4647,2978,3},{4645,2980,3},{4643,2980,3},{4638,2982,3}, {4637,2990,3},{4640,2993,3},{4638,3000,3},{4640,3007,3},{4638,3010,3},{4643,3015,3}, {4642,3015,3},{4643,3007,3},{4647,3003,3},{4652,2997,3},{4650,2993,3},{4657,2992,3}, {4657,2995,3},{4660,2997,3},{4665,2995,3},{4670,2997,3},{4677,2998,3},{4682,2995,3}, {4683,2997,3},{4683,2993,3},{4683,2992,3},{4683,2990,3},{4688,2988,3},{4688,2987,3}, {4687,2982,3},{4687,2975,3},{4692,2973,3},{4693,2965,3},{4698,2960,3},{4703,2962,3}, {4705,2963,3},{4710,2962,3},{4708,2955,3},{4713,2952,3},{4715,2958,3},{4717,2958,3}, {4727,2957,3},{4727,2960,3},{4732,2960,3},{4738,2957,3},{4735,2950,3},{4733,2950,3}, {4730,2943,3},{4732,2940,3},{4738,2940,3},{4738,2937,3},{4738,2933,3},{4745,2932,3}, {4743,2925,3},{4745,2923,3},{4745,2918,3},{4747,2917,3},{4752,2918,3},{4750,2917,3}, {4757,2915,3},{4757,2917,3},{4760,2923,3},{4767,2922,3},{4772,2922,3},{4775,2927,3}, {4782,2928,3},{4780,2925,3},{4780,2923,3},{4785,2923,3},{4790,2928,3},{4790,2925,3}, {4788,2923,3},{4788,2922,3},{4795,2920,3},{4800,2918,3},{4798,2910,3},{4795,2908,3}, {4795,2905,3},{4797,2897,3},{4795,2893,3},{4800,2890,3},{4803,2885,3},{4807,2885,3}, {4812,2885,3},{4813,2878,3},{4813,2870,3},{4817,2863,3},{4817,2855,3},{4812,2852,3}, {4807,2850,3},{4810,2845,3},{4817,2843,3},{4818,2842,3},{4818,2838,3},{4813,2833,3}, {4813,2832,3},{4815,2832,3},{4820,2837,3},{4825,2835,3},{4823,2827,3},{4822,2820,3}, {4827,2817,3},{4823,2810,3},{4825,2808,3},{4830,2810,3},{4833,2802,3},{4833,2793,3}, {4838,2788,3},{4842,2783,3},{4847,2777,3},{4845,2768,3},{4847,2760,3},{4848,2760,3}, {4848,2758,3},{4847,2752,3},{4842,2745,3},{4842,2738,3},{4845,2735,3},{4843,2732,3}, {4838,2728,3},{4837,2723,3},{4840,2720,3},{4840,2712,3},{4843,2707,3},{4843,2705,3}, {4838,2705,3},{4837,2702,3},{4837,2693,3},{4843,2687,3},{4842,2682,3},{4840,2675,3}, {4838,2675,3},{4833,2683,3},{4832,2683,3},{4827,2678,3},{4828,2677,3},{4830,2677,3}, {4832,2675,3},{4835,2670,3},{4833,2668,3},{4830,2668,3},{4830,2665,3},{4825,2662,3}, {4825,2658,3},{4820,2653,3},{4822,2647,3},{4818,2640,3},{4818,2632,3},{4817,2632,3}, {4808,2627,3},{4807,2623,3},{4800,2620,3},{4798,2617,3},{4797,2585,3},{4793,2577,3}, {4793,2555,3},{4792,2533,3},{4788,2523,3},{4775,2512,3},{4772,2492,3},{4772,2490,3}, {4782,2482,3},{4785,2468,3},{4790,2467,3},{4793,2460,3},{4795,2442,3},{4793,2437,3}, {4793,2432,3},{4790,2423,3},{4792,2413,3},{4795,2405,3},{4797,2397,3},{4793,2387,3}, {4797,2383,3},{4798,2378,3},{4798,2367,3},{4802,2355,3},{4798,2348,3},{4800,2338,3}, {4805,2330,3},{4808,2327,3},{4812,2317,3},{4808,2312,3},{4802,2308,3},{4798,2303,3}, {4802,2295,3},{4797,2293,3},{4795,2290,3},{4798,2285,3},{4805,2288,3},{4812,2280,3}, {4810,2262,3},{4818,2257,3},{4820,2258,3},{4820,2255,3},{4825,2250,3},{4825,2238,3}, {4832,2232,3},{4837,2232,3},{4837,2227,3},{4840,2227,3},{4842,2215,3},{4848,2215,3}, {4852,2217,3},{4858,2217,3},{4862,2223,3},{4865,2225,3},{4868,2233,3},{4877,2235,3}, {4880,2238,3},{4885,2238,3},{4890,2243,3},{4898,2247,3},{4900,2253,3},{4908,2255,3}, {4910,2260,3},{4905,2265,3},{4905,2268,3},{4905,2277,3},{4900,2285,3},{4900,2288,3}, {4905,2287,3},{4908,2288,3},{4913,2278,3},{4915,2278,3},{4917,2270,3},{4928,2277,3}, {4938,2273,3},{4943,2268,3},{4948,2268,3},{4952,2265,3},{4957,2268,3},{4963,2275,3}, {4968,2278,3},{4970,2283,3},{4973,2288,3},{4977,2290,3},{4980,2295,3},{4983,2297,3}, {4985,2300,3},{4998,2315,3},{5020,2345,3},{5032,2368,3},{5038,2370,3},{5040,2382,3}, {5040,2400,3},{5047,2403,3},{5050,2403,3},{5055,2413,3},{5058,2410,3},{5063,2410,3}, {5068,2407,3},{5070,2408,3},{5072,2403,3},{5077,2402,3},{5077,2398,3},{5080,2395,3}, {5083,2397,3},{5083,2412,3},{5085,2415,3},{5090,2403,3},{5095,2397,3},{5098,2397,3}, {5100,2392,3},{5107,2390,3},{5110,2387,3},{5115,2387,3},{5122,2373,3},{5128,2370,3}, {5130,2363,3},{5133,2363,3},{5137,2368,3},{5140,2370,3},{5145,2363,3},{5148,2367,3}, {5150,2362,3},{5152,2368,3},{5157,2363,3},{5163,2365,3},{5167,2373,3},{5163,2382,3}, {5165,2390,3},{5158,2395,3},{5158,2397,3},{5158,2405,3},{5160,2410,3},{5165,2418,3}, {5173,2432,3},{5178,2437,3},{5183,2438,3},{5192,2438,3},{5193,2442,3},{5193,2453,3}, {5192,2467,3},{5190,2475,3},{5193,2483,3},{5192,2495,3},{5192,2503,3},{5195,2510,3}, {5197,2518,3},{5198,2528,3},{5197,2533,3},{5193,2542,3},{5193,2550,3},{5192,2560,3}, {5192,2572,3},{5195,2582,3},{5192,2590,3},{5192,2598,3},{5192,2607,3},{5190,2615,3}, {5188,2622,3},{5187,2633,3},{5187,2642,3},{5183,2645,3},{5180,2652,3},{5182,2655,3}, {5183,2663,3},{5182,2667,3},{5180,2677,3},{5178,2685,3},{5175,2695,3},{5178,2703,3}, {5178,2712,3},{5178,2720,3},{5177,2720,3},{5167,2720,3},{5167,2723,3},{5167,2727,3}, {5165,2727,3},{5160,2725,3},{5160,2727,3},{5162,2728,3},{5163,2740,3},{5162,2750,3}, {5167,2753,3},{5165,2753,3},{5165,2757,3},{5163,2765,3},{5160,2773,3},{5158,2773,3}, {5155,2768,3},{5150,2768,3},{5147,2775,3},{5153,2780,3},{5158,2783,3},{5163,2788,3}, {5162,2792,3},{5157,2792,3},{5157,2795,3},{5157,2805,3},{5162,2813,3},{5165,2818,3}, {5168,2828,3},{5163,2827,3},{5160,2835,3},{5155,2840,3},{5157,2843,3},{5158,2852,3}, {5157,2860,3},{5157,2868,3},{5152,2865,3},{5143,2868,3},{5145,2870,3},{5147,2873,3}, {5142,2878,3},{5143,2880,3},{5145,2880,3},{5150,2878,3},{5155,2883,3},{5158,2892,3}, {5158,2900,3},{5157,2900,3},{5158,2902,3},{5165,2913,3},{5163,2923,3},{5158,2922,3}, {5158,2925,3},{5152,2927,3},{5147,2928,3},{5140,2932,3},{5138,2937,3},{5142,2943,3}, {5140,2950,3},{5142,2953,3},{5147,2955,3},{5147,2958,3},{5150,2963,3},{5152,2973,3}, {5150,2973,3},{5145,2980,3},{5147,2988,3},{5148,2990,3},{5148,2995,3},{5150,3007,3}, {5152,3017,3},{5148,3023,3},{5145,3030,3},{5140,3037,3},{5135,3035,3},{5133,3038,3}, {5130,3047,3},{5128,3047,3},{5128,3050,3},{5125,3057,3},{5132,3058,3},{5133,3065,3}, {5137,3067,3},{5142,3063,3},{5143,3060,3},{5148,3062,3},{5150,3060,3},{5155,3058,3}, {5155,3055,3},{5158,3057,3},{5160,3052,3},{5162,3055,3},{5167,3058,3},{5172,3058,3}, {5172,3063,3},{5177,3065,3},{5178,3063,3},{5178,3067,3},{5183,3068,3},{5185,3070,3}, {5190,3077,3},{5190,3080,3},{5195,3083,3},{5198,3090,3},{5200,3090,3},{5202,3093,3}, {5207,3093,3},{5208,3100,3},{5210,3112,3},{5207,3120,3},{5205,3130,3},{5207,3132,3}, {5210,3135,3},{5213,3142,3},{5212,3150,3},{5212,3162,3},{5210,3170,3},{5210,3180,3}, {5210,3190,3},{5208,3193,3},{5203,3195,3},{5203,3197,3},{5205,3205,3},{5205,3213,3}, {5208,3223,3},{5210,3230,3},{5213,3237,3},{5218,3235,3},{5225,3238,3},{5230,3237,3}, {5233,3237,3},{5232,3247,3},{5232,3258,3},{5227,3268,3},{5225,3270,3},{5225,3280,3}, {5228,3283,3},{5225,3290,3},{5227,3298,3},{5230,3305,3},{5233,3313,3},{5238,3320,3}, {5235,3330,3},{5237,3338,3},{5235,3345,3},{5235,3350,3},{5235,3352,3},{5230,3355,3}, {5233,3362,3},{5235,3370,3},{5237,3382,3},{5230,3387,3},{5230,3392,3},{5225,3393,3}, {5222,3400,3},{5218,3407,3},{5215,3408,3},{5213,3413,3},{5208,3412,3},{5208,3408,3}, {5202,3410,3},{5197,3413,3},{5192,3422,3},{5192,3425,3},{5185,3427,3},{5185,3438,3}, {5183,3443,3},{5177,3445,3},{5173,3445,3},{5172,3433,3},{5170,3425,3},{5168,3413,3}, {5163,3413,3},{5160,3420,3},{5157,3427,3},{5152,3430,3},{5145,3427,3},{5140,3422,3}, {5137,3428,3},{5138,3432,3},{5132,3432,3},{5125,3427,3},{5125,3430,3},{5127,3438,3}, {5123,3445,3},{5125,3455,3},{5125,3463,3},{5125,3465,3},{5120,3468,3},{5118,3475,3}, {5118,3482,3},{5120,3490,3},{5123,3497,3},{5122,3505,3},{5122,3513,3},{5115,3513,3}, {5110,3518,3},{5105,3522,3},{5105,3528,3},{5107,3530,3},{5107,3542,3},{5103,3542,3}, {5102,3533,3},{5095,3535,3},{5093,3540,3},{5088,3538,3},{5082,3542,3},{5078,3548,3}, {5072,3548,3},{5067,3550,3},{5065,3542,3},{5060,3543,3},{5060,3542,3},{5052,3547,3}, {5048,3553,3},{5045,3560,3},{5038,3562,3},{5037,3570,3},{5040,3580,3},{5043,3582,3}, {5045,3598,3},{5045,3607,3},{5043,3618,3},{5042,3622,3},{5037,3627,3},{5035,3630,3}, {5030,3632,3},{5033,3643,3},{5030,3652,3},{5030,3660,3},{5028,3657,3},{5023,3662,3}, {5027,3668,3},{5032,3680,3},{5035,3693,3},{5035,3700,3},{5035,3710,3},{5035,3717,3}, {5038,3728,3},{5043,3735,3},{5043,3743,3},{5043,3747,3},{5038,3747,3},{5033,3753,3}, {5030,3762,3},{5030,3763,3},{5025,3763,3},{5018,3765,3},{5013,3772,3},{5008,3780,3}, {5005,3787,3},{5005,3792,3},{5000,3795,3},{4997,3802,3},{4995,3802,3},{4992,3805,3}, {4993,3812,3},{4993,3815,3},{4997,3822,3},{5005,3820,3},{5007,3820,3},{5008,3828,3}, {5008,3830,3},{5008,3833,3},{5003,3837,3},{5000,3837,3},{5000,3847,3},{4997,3853,3}, {4998,3862,3},{4997,3865,3},{4998,3868,3},{4998,3870,3},{4993,3870,3},{4990,3878,3}, {4987,3885,3},{4987,3893,3},{4982,3895,3},{4982,3903,3},{4983,3910,3},{4988,3917,3}, {4985,3922,3},{4977,3927,3},{4975,3935,3},{4977,3947,3},{4975,3958,3},{4973,3962,3}, {4967,3963,3},{4962,3968,3},{4957,3980,3},{4957,3990,3},{4960,3997,3},{4962,4005,3}, {4962,4015,3},{4957,4022,3},{4950,4022,3},{4945,4017,3},{4940,4017,3},{4932,4018,3}, {4925,4020,3},{4923,4013,3},{4918,4008,3},{4918,4003,3},{4912,3998,3},{4908,3995,3}, {4907,3993,3},{4907,3987,3},{4905,3978,3},{4907,3970,3},{4905,3967,3},{4900,3972,3}, {4893,3978,3},{4890,3983,3},{4883,3980,3},{4878,3977,3},{4873,3972,3},{4868,3972,3}, {4863,3968,3},{4860,3968,3},{4858,3977,3},{4858,3983,3},{4852,3987,3},{4850,3985,3}, {4847,3985,3},{4843,3990,3},{4838,3992,3},{4835,3992,3},{4832,3985,3},{4830,3993,3}, {4832,3998,3},{4827,4002,3},{4823,4002,3},{4822,3995,3},{4818,3995,3},{4813,3990,3}, {4808,3988,3},{4805,3982,3},{4800,3982,3},{4793,3980,3},{4788,3978,3},{4783,3975,3}, {4783,3965,3},{4783,3957,3},{4783,3953,3},{4787,3947,3},{4785,3943,3},{4788,3937,3}, {4787,3928,3},{4785,3920,3},{4783,3912,3},{4787,3903,3},{4787,3895,3},{4787,3887,3}, {4787,3883,3},{4782,3883,3},{4782,3880,3},{4775,3878,3},{4770,3878,3},{4768,3877,3}, {4770,3868,3},{4765,3863,3},{4763,3853,3},{4763,3845,3},{4762,3847,3},{4762,3838,3}, {4757,3833,3},{4753,3830,3},{4747,3830,3},{4742,3832,3},{4738,3830,3},{4737,3827,3}, {4732,3823,3},{4730,3823,3},{4730,3832,3},{4725,3833,3},{4723,3827,3},{4718,3823,3}, {4713,3823,3},{4712,3823,3},{4687,3703,3},{4680,3687,3},{4677,3687,3},{4663,3677,3}, {4665,3675,3},{4663,3677,3},{4668,3680,3},{4673,3680,3},{4677,3673,3},{4677,3662,3}, {4675,3658,3},{4675,3652,3},{4672,3638,3},{4662,3628,3},{4660,3627,3},{4662,3627,3}, {4660,3623,3},{4663,3623,3},{4667,3620,3},{4665,3612,3},{4667,3607,3},{4665,3590,3}, {4662,3582,3},{4658,3573,3},{4648,3563,3},{4645,3548,3},{4635,3537,3},{4613,3518,3}, {4607,3498,3},{4608,3498,3},{4612,3505,3},{4613,3505,3},{4618,3520,3},{4635,3535,3}, {4633,3530,3},{4635,3527,3},{4640,3527,3},{4643,3528,3},{4645,3523,3},{4650,3518,3}, {4647,3517,3},{4640,3522,3},{4630,3512,3},{4625,3505,3},{4623,3493,3},{4625,3490,3}, {4622,3488,3},{4618,3482,3},{4603,3483,3},{4593,3487,3},{4578,3495,3},{4565,3507,3}, {4542,3528,3},{4535,3537,3},{4528,3550,3},{4533,3572,3},{4542,3580,3},{4547,3582,3}, {4547,3585,3},{4545,3587,3},{4543,3585,3},{4540,3587,3},{4537,3595,3},{4535,3600,3}, {4537,3603,3},{4542,3607,3},{4547,3613,3},{4547,3630,3},{4543,3630,3},{4545,3635,3}, {4543,3640,3},{4543,3648,3},{4542,3652,3},{4540,3653,3},{4542,3660,3},{4538,3663,3}, {4535,3663,3},{4533,3660,3},{4533,3650,3},{4533,3648,3},{4528,3650,3},{4528,3643,3}, {4515,3640,3},{4508,3645,3},{4503,3637,3},{4503,3627,3},{4500,3622,3},{4503,3605,3}, {4500,3598,3},{4500,3593,3},{4498,3585,3},{4500,3583,3},{4505,3578,3},{4508,3572,3}, {4512,3563,3},{4512,3552,3},{4505,3540,3},{4502,3540,3},{4500,3543,3},{4498,3537,3}, {4495,3537,3},{4495,3525,3},{4492,3523,3},{4488,3515,3},{4478,3508,3},{4478,3505,3}, {4483,3500,3},{4483,3497,3},{4483,3492,3},{4482,3490,3},{4482,3487,3},{4482,3483,3}, {4482,3473,3},{4477,3465,3},{4475,3453,3},{4472,3445,3},{4463,3438,3},{4455,3433,3}, {4455,3427,3},{4450,3423,3},{4448,3418,3},{4443,3412,3},{4438,3393,3},{4438,3372,3}, {4443,3363,3},{4448,3358,3},{4448,3353,3},{4452,3347,3},{4458,3337,3},{4458,3340,3}, {4460,3343,3},{4462,3357,3},{4463,3352,3},{4470,3355,3},{4478,3352,3},{4483,3355,3}, {4485,3360,3},{4492,3362,3},{4510,3355,3},{4515,3345,3},{4518,3338,3},{4515,3325,3}, {4518,3322,3},{4520,3317,3},{4527,3307,3},{4535,3293,3},{4535,3288,3},{4535,3273,3}, {4532,3267,3},{4532,3258,3},{4533,3250,3},{4540,3248,3},{4547,3253,3},{4552,3263,3}, {4553,3270,3},{4555,3275,3},{4557,3283,3},{4560,3282,3},{4565,3290,3},{4573,3318,3}, {4577,3317,3},{4578,3317,3},{4575,3322,3},{4575,3325,3},{4585,3348,3},{4583,3355,3}, {4587,3357,3},{4588,3362,3},{4585,3368,3},{4590,3368,3},{4592,3377,3},{4593,3377,3}, {4595,3367,3},{4593,3362,3},{4597,3365,3},{4600,3363,3},{4602,3365,3},{4603,3363,3}, {4608,3365,3},{4615,3360,3},{4612,3353,3},{4610,3352,3},{4608,3355,3},{4607,3350,3}, {4605,3352,3},{4605,3343,3},{4608,3338,3},{4610,3333,3},{4608,3330,3},{4610,3332,3}, {4612,3332,3},{4613,3325,3},{4613,3322,3},{4615,3323,3},{4622,3323,3},{4617,3320,3}, {4613,3312,3},{4617,3303,3},{4613,3303,3},{4612,3302,3},{4612,3290,3},{4613,3277,3}, {4607,3252,3},{4613,3227,3},{4617,3225,3},{4620,3227,3},{4618,3223,3},{4620,3213,3}, {4625,3205,3},{4627,3197,3},{4630,3195,3},{4632,3188,3},{4628,3190,3},{4628,3180,3}, {4632,3177,3},{4635,3183,3},{4635,3198,3},{4638,3202,3},{4638,3207,3},{4642,3205,3}, {4645,3200,3},{4645,3193,3},{4648,3178,3},{4650,3172,3},{4648,3170,3},{4643,3168,3}, {4647,3167,3},{4655,3153,3},{4658,3152,3},{4655,3158,3},{4655,3177,3},{4652,3187,3}, {4652,3210,3},{4647,3235,3},{4648,3242,3},{4650,3240,3},{4653,3242,3},{4658,3252,3}, {4660,3258,3},{4663,3263,3},{4665,3263,3},{4662,3255,3},{4657,3240,3},{4655,3232,3}, {4660,3223,3},{4657,3213,3},{4662,3212,3},{4663,3202,3},{4677,3193,3},{4682,3193,3}, {4685,3198,3},{4692,3202,3},{4693,3200,3},{4693,3195,3},{4695,3193,3},{4700,3198,3}, {4702,3187,3},{4710,3190,3},{4713,3185,3},{4718,3183,3},{4722,3175,3},{4725,3175,3}, {4725,3173,3},{4722,3173,3},{4718,3180,3},{4717,3182,3},{4712,3182,3},{4708,3187,3}, {4703,3183,3},{4700,3185,3},{4698,3188,3},{4700,3193,3},{4693,3190,3},{4692,3197,3}, {4685,3195,3},{4683,3188,3},{4680,3187,3},{4673,3192,3},{4665,3190,3},{4663,3187,3}, {4662,3182,3},{4665,3163,3},{4663,3158,3},{4660,3157,3},{4663,3148,3},{4665,3148,3}, {4667,3152,3},{4677,3157,3},{4682,3162,3},{4682,3160,3},{4678,3158,3},{4677,3153,3}, {4673,3152,3},{4675,3147,3},{4680,3145,3},{4675,3145,3},{4672,3150,3},{4662,3142,3}, {4660,3133,3},{4663,3118,3},{4662,3107,3},{4655,3085,3},{4655,3078,3},{4650,3075,3}, {4645,3080,3},{4638,3077,3},{4635,3072,3},{4633,3072,3},{4635,3065,3},{4632,3068,3}, {4625,3067,3},{4613,3052,3},{4608,3050,3},{4598,3033,3},{4587,3025,3},{4582,3013,3}, {4587,3013,3},{4590,3012,3},{4585,3010,3},{4582,3010,3},{4582,3008,3},{4580,3007,3}, {4583,3003,3},{4585,2997,3},{4580,2997,3},{4577,2995,3},{4582,2993,3},{4580,2992,3}, {4572,2993,3},{4577,2988,3},{4573,2980,3},{4572,2980,3},{4567,2987,3},{4565,2982,3}, {4565,2978,3},{4563,2978,3},{4562,2973,3},{4565,2973,3},{4570,2968,3},{4578,2970,3}, {4580,2968,3},{4582,2963,3},{4578,2965,3},{4573,2962,3},{4572,2963,3},{4568,2960,3}, {4557,2960,3},{4555,2960,3},{4553,2967,3},{4557,2970,3},{4547,2960,3},{4543,2965,3}, {4547,2967,3},{4545,2968,3},{4547,2970,3},{4543,2972,3},{4547,2973,3},{4542,2975,3}, {4542,2973,3},{4540,2975,3},{4532,2977,3},{4525,2973,3},{4523,2973,3},{4522,2972,3}, {4522,2970,3},{4522,2967,3},{4528,2967,3},{4535,2965,3},{4538,2958,3},{4543,2942,3}, {4543,2932,3},{4543,2930,3},{4543,2922,3},{4538,2917,3},{4537,2908,3},{4532,2902,3}, {4532,2897,3},{4528,2893,3},{4532,2880,3},{4528,2880,3},{4527,2875,3},{4523,2880,3}, {4522,2870,3},{4525,2857,3},{4532,2835,3},{4538,2828,3},{4543,2828,3},{4545,2822,3}, {5087,1483,131},{5088,1482,3},{5093,1490,3},{5105,1497,3},{5127,1503,3}, {5135,1497,3},{5143,1498,3},{5147,1495,3},{5153,1473,3},{5155,1472,3},{5160,1477,3}, {5167,1475,3},{5172,1467,3},{5178,1465,3},{5182,1460,3},{5185,1462,3},{5190,1470,3}, {5195,1472,3},{5200,1472,3},{5207,1477,3},{5212,1468,3},{5223,1472,3},{5228,1458,3}, {5238,1453,3},{5243,1455,3},{5243,1458,3},{5248,1463,3},{5253,1462,3},{5257,1463,3}, {5262,1460,3},{5265,1448,3},{5275,1435,3},{5277,1430,3},{5282,1422,3},{5283,1415,3}, {5285,1413,3},{5288,1417,3},{5297,1415,3},{5305,1435,3},{5313,1438,3},{5320,1438,3}, {5327,1445,3},{5330,1442,3},{5345,1438,3},{5355,1430,3},{5362,1432,3},{5367,1428,3}, {5373,1427,3},{5370,1422,3},{5370,1430,3},{5373,1428,3},{5373,1433,3},{5368,1442,3}, {5367,1453,3},{5360,1460,3},{5365,1462,3},{5367,1457,3},{5370,1453,3},{5375,1457,3}, {5377,1462,3},{5385,1463,3},{5380,1458,3},{5385,1457,3},{5387,1443,3},{5390,1443,3}, {5390,1438,3},{5388,1437,3},{5387,1442,3},{5385,1442,3},{5382,1433,3},{5380,1435,3}, {5387,1422,3},{5393,1423,3},{5392,1442,3},{5397,1452,3},{5403,1475,3},{5405,1493,3}, {5415,1532,3},{5420,1565,3},{5425,1585,3},{5427,1605,3},{5428,1613,3},{5427,1607,3}, {5427,1617,3},{5427,1622,3},{5428,1622,3},{5430,1620,3},{5428,1613,3},{5435,1627,3}, {5432,1623,3},{5432,1625,3},{5435,1633,3},{5438,1632,3},{5437,1628,3},{5448,1643,3}, {5447,1643,3},{5447,1647,3},{5450,1648,3},{5450,1645,3},{5455,1655,3},{5460,1692,3}, {5467,1707,3},{5473,1727,3},{5477,1758,3},{5483,1792,3},{5483,1833,3},{5470,1870,3}, {5463,1883,3},{5460,1882,3},{5470,1870,3},{5478,1843,3},{5473,1840,3},{5470,1848,3}, {5463,1847,3},{5463,1850,3},{5463,1852,3},{5455,1857,3},{5445,1857,3},{5443,1860,3}, {5442,1867,3},{5438,1872,3},{5435,1888,3},{5435,1905,3},{5438,1942,3},{5440,1952,3}, {5447,1960,3},{5445,1968,3},{5442,2005,3},{5442,2018,3},{5435,2073,3},{5433,2142,3}, {5433,2153,3},{5433,2162,3},{5433,2170,3},{5433,2180,3},{5433,2188,3},{5433,2198,3}, {5433,2207,3},{5433,2215,3},{5433,2225,3},{5435,2233,3},{5435,2243,3},{5435,2252,3}, {5435,2263,3},{5437,2278,3},{5440,2282,3},{5440,2287,3},{5438,2300,3},{5435,2302,3}, {5435,2307,3},{5432,2305,3},{5430,2307,3},{5430,2315,3},{5428,2320,3},{5425,2323,3}, {5425,2333,3},{5418,2342,3},{5418,2345,3},{5405,2352,3},{5402,2352,3},{5400,2347,3}, {5397,2350,3},{5378,2355,3},{5375,2358,3},{5363,2362,3},{5348,2367,3},{5340,2375,3}, {5325,2382,3},{5323,2385,3},{5320,2387,3},{5317,2392,3},{5308,2388,3},{5302,2393,3}, {5297,2393,3},{5292,2392,3},{5288,2393,3},{5273,2393,3},{5268,2390,3},{5262,2375,3}, {5262,2368,3},{5260,2360,3},{5252,2340,3},{5228,2317,3},{5228,2318,3},{5223,2320,3}, {5223,2330,3},{5222,2330,3},{5220,2338,3},{5218,2338,3},{5217,2343,3},{5218,2345,3}, {5217,2350,3},{5215,2348,3},{5212,2352,3},{5212,2360,3},{5208,2363,3},{5198,2367,3}, {5195,2363,3},{5192,2362,3},{5190,2363,3},{5183,2360,3},{5180,2363,3},{5178,2362,3}, {5175,2355,3},{5167,2355,3},{5165,2353,3},{5155,2357,3},{5152,2360,3},{5150,2362,3}, {5148,2367,3},{5145,2363,3},{5140,2370,3},{5137,2368,3},{5133,2363,3},{5130,2363,3}, {5128,2370,3},{5122,2373,3},{5115,2387,3},{5110,2387,3},{5107,2390,3},{5100,2392,3}, {5098,2397,3},{5095,2397,3},{5090,2403,3},{5085,2415,3},{5083,2412,3},{5083,2397,3}, {5080,2395,3},{5077,2398,3},{5077,2402,3},{5072,2403,3},{5070,2408,3},{5068,2407,3}, {5063,2410,3},{5058,2410,3},{5055,2413,3},{5050,2403,3},{5047,2403,3},{5040,2400,3}, {5040,2382,3},{5038,2370,3},{5032,2368,3},{5020,2345,3},{4998,2315,3},{4985,2300,3}, {4983,2297,3},{4980,2295,3},{4977,2290,3},{4973,2288,3},{4970,2283,3},{4968,2278,3}, {4963,2275,3},{4957,2268,3},{4952,2265,3},{4948,2268,3},{4943,2268,3},{4938,2273,3}, {4928,2277,3},{4917,2270,3},{4915,2278,3},{4913,2278,3},{4908,2288,3},{4905,2287,3}, {4900,2288,3},{4900,2285,3},{4905,2277,3},{4905,2268,3},{4905,2265,3},{4910,2260,3}, {4908,2255,3},{4910,2242,3},{4913,2235,3},{4915,2223,3},{4918,2223,3},{4922,2203,3}, {4928,2202,3},{4933,2197,3},{4933,2193,3},{4938,2183,3},{4938,2180,3},{4935,2178,3}, {4938,2175,3},{4942,2170,3},{4943,2162,3},{4942,2143,3},{4945,2128,3},{4940,2120,3}, {4943,2113,3},{4942,2107,3},{4940,2105,3},{4937,2110,3},{4937,2103,3},{4930,2098,3}, {4930,2092,3},{4933,2087,3},{4933,2082,3},{4942,2070,3},{4940,2065,3},{4942,2062,3}, {4938,2057,3},{4942,2045,3},{4938,2043,3},{4938,2040,3},{4940,2038,3},{4940,2033,3}, {4935,2032,3},{4933,2020,3},{4930,2017,3},{4932,2015,3},{4917,2008,3},{4922,2000,3}, {4923,1995,3},{4923,1992,3},{4920,1985,3},{4920,1978,3},{4922,1977,3},{4923,1977,3}, {4928,1983,3},{4930,1980,3},{4935,1980,3},{4940,1978,3},{4938,1973,3},{4940,1963,3}, {4945,1965,3},{4945,1958,3},{4957,1953,3},{4962,1947,3},{4957,1938,3},{4953,1937,3}, {4953,1928,3},{4952,1925,3},{4945,1923,3},{4943,1920,3},{4942,1920,3},{4940,1912,3}, {4942,1908,3},{4942,1907,3},{4940,1903,3},{4940,1897,3},{4950,1898,3},{4952,1885,3}, {4955,1887,3},{4962,1883,3},{4967,1882,3},{4968,1878,3},{4968,1875,3},{4970,1872,3}, {4972,1863,3},{4982,1857,3},{4987,1862,3},{4987,1858,3},{4992,1858,3},{4990,1853,3}, {4992,1847,3},{4993,1845,3},{4993,1835,3},{4992,1832,3},{4997,1827,3},{4997,1822,3}, {4998,1820,3},{5000,1812,3},{5003,1810,3},{5007,1805,3},{5005,1802,3},{5003,1802,3}, {5003,1805,3},{5000,1805,3},{5000,1797,3},{4998,1792,3},{4998,1783,3},{5008,1773,3}, {5010,1775,3},{5012,1768,3},{5010,1768,3},{5010,1765,3},{5015,1760,3},{5017,1762,3}, {5018,1770,3},{5020,1772,3},{5020,1777,3},{5023,1777,3},{5027,1773,3},{5030,1775,3}, {5032,1772,3},{5032,1770,3},{5030,1770,3},{5027,1765,3},{5027,1748,3},{5025,1745,3}, {5028,1740,3},{5028,1738,3},{5027,1737,3},{5027,1735,3},{5032,1733,3},{5032,1735,3}, {5032,1728,3},{5035,1722,3},{5038,1720,3},{5038,1715,3},{5040,1712,3},{5040,1705,3}, {5043,1690,3},{5042,1687,3},{5037,1692,3},{5032,1695,3},{5028,1702,3},{5022,1702,3}, {5023,1698,3},{5022,1697,3},{5022,1690,3},{5020,1688,3},{5020,1685,3},{5013,1678,3}, {5010,1672,3},{5012,1662,3},{5017,1657,3},{5023,1655,3},{5023,1652,3},{5032,1645,3}, {5032,1640,3},{5038,1637,3},{5037,1628,3},{5038,1627,3},{5042,1625,3},{5042,1622,3}, {5043,1620,3},{5045,1622,3},{5048,1630,3},{5050,1632,3},{5050,1637,3},{5053,1640,3}, {5057,1642,3},{5057,1645,3},{5060,1643,3},{5067,1633,3},{5067,1623,3},{5063,1622,3}, {5063,1618,3},{5067,1612,3},{5060,1605,3},{5060,1602,3},{5060,1600,3},{5063,1602,3}, {5068,1598,3},{5067,1587,3},{5075,1580,3},{5073,1575,3},{5073,1568,3},{5075,1568,3}, {5077,1560,3},{5078,1552,3},{5082,1543,3},{5078,1540,3},{5078,1538,3},{5083,1537,3}, {5085,1532,3},{5088,1528,3},{5093,1527,3},{5095,1530,3},{5100,1523,3},{5098,1518,3}, {5102,1517,3},{5102,1515,3},{5098,1513,3},{5102,1507,3},{5102,1505,3},{5103,1502,3}, {5100,1498,3},{5098,1498,3},{5098,1502,3},{5097,1502,3},{5092,1500,3},{5087,1500,3}, {5087,1483,3},{4800,1715,131},{4803,1715,3},{4803,1708,3},{4808,1708,3}, {4810,1710,3},{4815,1707,3},{4815,1703,3},{4817,1698,3},{4828,1695,3},{4828,1692,3}, {4833,1690,3},{4837,1683,3},{4847,1687,3},{4855,1695,3},{4860,1695,3},{4863,1700,3}, {4868,1702,3},{4873,1705,3},{4877,1710,3},{4882,1713,3},{4885,1720,3},{4887,1727,3}, {4885,1730,3},{4885,1733,3},{4883,1735,3},{4883,1738,3},{4885,1747,3},{4883,1753,3}, {4885,1762,3},{4887,1768,3},{4890,1775,3},{4892,1782,3},{4893,1790,3},{4898,1792,3}, {4902,1797,3},{4903,1805,3},{4907,1812,3},{4910,1817,3},{4915,1818,3},{4920,1818,3}, {4923,1818,3},{4927,1823,3},{4928,1832,3},{4932,1838,3},{4935,1843,3},{4937,1843,3}, {4940,1850,3},{4943,1855,3},{4948,1858,3},{4950,1867,3},{4950,1873,3},{4950,1882,3}, {4952,1885,3},{4950,1898,3},{4940,1897,3},{4940,1903,3},{4942,1907,3},{4942,1908,3}, {4940,1912,3},{4942,1920,3},{4943,1920,3},{4945,1923,3},{4952,1925,3},{4953,1928,3}, {4953,1937,3},{4957,1938,3},{4962,1947,3},{4957,1953,3},{4945,1958,3},{4945,1965,3}, {4940,1963,3},{4938,1973,3},{4940,1978,3},{4935,1980,3},{4930,1980,3},{4928,1983,3}, {4923,1977,3},{4922,1977,3},{4920,1978,3},{4920,1985,3},{4923,1992,3},{4923,1995,3}, {4922,2000,3},{4917,2008,3},{4932,2015,3},{4930,2017,3},{4933,2020,3},{4935,2032,3}, {4940,2033,3},{4940,2038,3},{4938,2040,3},{4938,2043,3},{4942,2045,3},{4938,2057,3}, {4942,2062,3},{4940,2065,3},{4942,2070,3},{4933,2082,3},{4933,2087,3},{4930,2092,3}, {4930,2098,3},{4937,2103,3},{4937,2110,3},{4940,2105,3},{4942,2107,3},{4943,2113,3}, {4940,2120,3},{4945,2128,3},{4942,2143,3},{4943,2162,3},{4942,2170,3},{4938,2175,3}, {4935,2178,3},{4938,2180,3},{4938,2183,3},{4933,2193,3},{4933,2197,3},{4928,2202,3}, {4922,2203,3},{4918,2223,3},{4915,2223,3},{4913,2235,3},{4910,2242,3},{4908,2255,3}, {4900,2253,3},{4898,2247,3},{4890,2243,3},{4885,2238,3},{4880,2238,3},{4877,2235,3}, {4868,2233,3},{4865,2225,3},{4862,2223,3},{4858,2217,3},{4852,2217,3},{4848,2215,3}, {4842,2215,3},{4838,2210,3},{4838,2193,3},{4837,2185,3},{4833,2182,3},{4833,2178,3}, {4837,2172,3},{4845,2163,3},{4850,2162,3},{4850,2155,3},{4855,2152,3},{4857,2145,3}, {4855,2132,3},{4852,2128,3},{4853,2123,3},{4852,2117,3},{4848,2112,3},{4852,2107,3}, {4852,2095,3},{4855,2092,3},{4855,2087,3},{4858,2082,3},{4853,2050,3},{4848,2050,3}, {4843,2043,3},{4835,2040,3},{4828,2033,3},{4827,2030,3},{4825,2028,3},{4828,2025,3}, {4827,2023,3},{4827,2015,3},{4822,2013,3},{4813,1992,3},{4815,1988,3},{4815,1978,3}, {4820,1978,3},{4820,1970,3},{4823,1967,3},{4823,1963,3},{4820,1952,3},{4808,1947,3}, {4808,1937,3},{4807,1927,3},{4805,1923,3},{4805,1907,3},{4807,1903,3},{4805,1895,3}, {4805,1885,3},{4800,1882,3},{4798,1875,3},{4797,1877,3},{4788,1877,3},{4783,1885,3}, {4782,1885,3},{4782,1875,3},{4777,1867,3},{4777,1855,3},{4775,1850,3},{4777,1845,3}, {4773,1830,3},{4777,1798,3},{4775,1778,3},{4777,1772,3},{4783,1762,3},{4783,1757,3}, {4787,1753,3},{4788,1747,3},{4800,1733,3},{4800,1727,3},{4803,1723,3},{4802,1718,3}, {4800,1715,3},{4877,1383,131},{4878,1382,3},{4880,1382,3},{4888,1373,3}, {4888,1368,3},{4890,1365,3},{4895,1363,3},{4898,1352,3},{4895,1348,3},{4898,1340,3}, {4905,1340,3},{4910,1332,3},{4913,1318,3},{4917,1318,3},{4920,1312,3},{4925,1308,3}, {4927,1303,3},{4930,1303,3},{4933,1297,3},{4935,1288,3},{4933,1288,3},{4933,1280,3}, {4940,1275,3},{4943,1267,3},{4947,1263,3},{4952,1263,3},{4953,1260,3},{4962,1257,3}, {4963,1252,3},{4968,1252,3},{4970,1245,3},{4973,1240,3},{4977,1240,3},{4978,1247,3}, {4983,1247,3},{4983,1250,3},{4992,1255,3},{4993,1248,3},{4997,1250,3},{4998,1247,3}, {4998,1243,3},{5003,1235,3},{5005,1227,3},{5008,1225,3},{5010,1220,3},{5013,1220,3}, {5017,1222,3},{5020,1218,3},{5023,1215,3},{5025,1210,3},{5028,1213,3},{5030,1212,3}, {5032,1210,3},{5032,1218,3},{5027,1220,3},{5027,1225,3},{5025,1225,3},{5022,1228,3}, {5018,1228,3},{5017,1232,3},{5023,1233,3},{5023,1235,3},{5028,1237,3},{5030,1240,3}, {5032,1240,3},{5035,1248,3},{5037,1248,3},{5040,1252,3},{5042,1262,3},{5042,1267,3}, {5040,1270,3},{5043,1275,3},{5045,1278,3},{5043,1282,3},{5045,1282,3},{5042,1293,3}, {5042,1298,3},{5045,1302,3},{5050,1303,3},{5052,1313,3},{5050,1318,3},{5058,1325,3}, {5057,1328,3},{5058,1332,3},{5063,1338,3},{5062,1342,3},{5060,1347,3},{5063,1352,3}, {5065,1352,3},{5067,1355,3},{5070,1353,3},{5070,1355,3},{5073,1377,3},{5072,1387,3}, {5075,1390,3},{5078,1390,3},{5078,1395,3},{5082,1398,3},{5080,1403,3},{5082,1407,3}, {5085,1420,3},{5088,1425,3},{5090,1440,3},{5093,1440,3},{5095,1432,3},{5097,1430,3}, {5098,1432,3},{5098,1425,3},{5105,1430,3},{5102,1442,3},{5103,1445,3},{5102,1448,3}, {5105,1450,3},{5102,1450,3},{5100,1457,3},{5098,1460,3},{5092,1457,3},{5093,1465,3}, {5085,1462,3},{5083,1472,3},{5082,1472,3},{5082,1480,3},{5087,1483,3},{5087,1500,3}, {5092,1500,3},{5097,1502,3},{5098,1502,3},{5098,1498,3},{5100,1498,3},{5103,1502,3}, {5102,1505,3},{5102,1507,3},{5098,1513,3},{5102,1515,3},{5102,1517,3},{5098,1518,3}, {5100,1523,3},{5095,1530,3},{5093,1527,3},{5088,1528,3},{5085,1532,3},{5083,1537,3}, {5078,1538,3},{5078,1540,3},{5082,1543,3},{5078,1552,3},{5077,1560,3},{5075,1568,3}, {5073,1568,3},{5073,1575,3},{5075,1580,3},{5067,1587,3},{5068,1598,3},{5063,1602,3}, {5060,1600,3},{5060,1602,3},{5060,1605,3},{5067,1612,3},{5063,1618,3},{5063,1622,3}, {5067,1623,3},{5067,1633,3},{5060,1643,3},{5057,1645,3},{5057,1642,3},{5053,1640,3}, {5050,1637,3},{5050,1632,3},{5048,1630,3},{5045,1622,3},{5043,1620,3},{5042,1622,3}, {5042,1625,3},{5038,1627,3},{5037,1628,3},{5038,1637,3},{5032,1640,3},{5032,1645,3}, {5023,1652,3},{5023,1655,3},{5017,1657,3},{5012,1662,3},{5010,1672,3},{5013,1678,3}, {5020,1685,3},{5020,1688,3},{5022,1690,3},{5022,1697,3},{5023,1698,3},{5022,1702,3}, {5028,1702,3},{5032,1695,3},{5037,1692,3},{5042,1687,3},{5043,1690,3},{5040,1705,3}, {5040,1712,3},{5038,1715,3},{5038,1720,3},{5035,1722,3},{5032,1728,3},{5032,1735,3}, {5032,1733,3},{5027,1735,3},{5027,1737,3},{5028,1738,3},{5028,1740,3},{5025,1745,3}, {5027,1748,3},{5027,1765,3},{5030,1770,3},{5032,1770,3},{5032,1772,3},{5030,1775,3}, {5027,1773,3},{5023,1777,3},{5020,1777,3},{5020,1772,3},{5018,1770,3},{5017,1762,3}, {5015,1760,3},{5010,1765,3},{5010,1768,3},{5012,1768,3},{5010,1775,3},{5008,1773,3}, {4998,1783,3},{4998,1792,3},{5000,1797,3},{5000,1805,3},{5003,1805,3},{5003,1802,3}, {5005,1802,3},{5007,1805,3},{5003,1810,3},{5000,1812,3},{4998,1820,3},{4997,1822,3}, {4997,1827,3},{4992,1832,3},{4993,1835,3},{4993,1845,3},{4992,1847,3},{4990,1853,3}, {4992,1858,3},{4987,1858,3},{4987,1862,3},{4982,1857,3},{4972,1863,3},{4970,1872,3}, {4968,1875,3},{4968,1878,3},{4967,1882,3},{4962,1883,3},{4955,1887,3},{4952,1885,3}, {4950,1882,3},{4950,1873,3},{4950,1867,3},{4948,1858,3},{4943,1855,3},{4940,1850,3}, {4937,1843,3},{4935,1843,3},{4932,1838,3},{4928,1832,3},{4927,1823,3},{4923,1818,3}, {4920,1818,3},{4915,1818,3},{4910,1817,3},{4907,1812,3},{4903,1805,3},{4902,1797,3}, {4898,1792,3},{4893,1790,3},{4892,1782,3},{4890,1775,3},{4887,1768,3},{4885,1762,3}, {4883,1753,3},{4885,1747,3},{4883,1738,3},{4883,1735,3},{4885,1733,3},{4885,1730,3}, {4887,1727,3},{4885,1720,3},{4882,1713,3},{4877,1710,3},{4873,1705,3},{4868,1702,3}, {4863,1700,3},{4860,1695,3},{4855,1695,3},{4870,1692,3},{4873,1688,3},{4872,1683,3}, {4875,1672,3},{4873,1670,3},{4878,1665,3},{4878,1660,3},{4882,1653,3},{4882,1647,3}, {4875,1642,3},{4873,1637,3},{4875,1633,3},{4873,1633,3},{4875,1610,3},{4880,1597,3}, {4883,1595,3},{4883,1590,3},{4885,1590,3},{4885,1588,3},{4887,1588,3},{4887,1585,3}, {4888,1583,3},{4887,1568,3},{4890,1562,3},{4892,1552,3},{4895,1547,3},{4895,1543,3}, {4898,1537,3},{4898,1532,3},{4900,1528,3},{4895,1527,3},{4895,1517,3},{4900,1515,3}, {4902,1503,3},{4902,1500,3},{4898,1498,3},{4892,1500,3},{4882,1495,3},{4877,1497,3}, {4878,1482,3},{4873,1480,3},{4868,1473,3},{4860,1472,3},{4858,1470,3},{4858,1467,3}, {4860,1467,3},{4860,1463,3},{4863,1462,3},{4862,1457,3},{4865,1447,3},{4860,1443,3}, {4860,1438,3},{4855,1433,3},{4857,1433,3},{4860,1420,3},{4860,1407,3},{4863,1402,3}, {4867,1405,3},{4872,1400,3},{4877,1383,3},{4545,2822,131},{4547,2818,3}, {4553,2817,3},{4555,2815,3},{4558,2807,3},{4562,2810,3},{4562,2817,3},{4567,2817,3}, {4577,2815,3},{4578,2812,3},{4582,2812,3},{4587,2813,3},{4600,2808,3},{4607,2808,3}, {4618,2815,3},{4622,2812,3},{4623,2812,3},{4623,2813,3},{4627,2813,3},{4628,2818,3}, {4630,2820,3},{4633,2818,3},{4643,2825,3},{4647,2825,3},{4650,2822,3},{4660,2825,3}, {4667,2823,3},{4683,2812,3},{4688,2812,3},{4690,2810,3},{4692,2810,3},{4698,2808,3}, {4703,2803,3},{4705,2795,3},{4707,2795,3},{4712,2785,3},{4713,2785,3},{4713,2780,3}, {4717,2782,3},{4728,2773,3},{4730,2763,3},{4737,2757,3},{4740,2758,3},{4742,2757,3}, {4745,2758,3},{4747,2755,3},{4748,2748,3},{4757,2743,3},{4758,2738,3},{4765,2730,3}, {4770,2727,3},{4772,2728,3},{4773,2730,3},{4782,2722,3},{4782,2725,3},{4783,2725,3}, {4785,2722,3},{4790,2722,3},{4792,2715,3},{4793,2717,3},{4795,2715,3},{4798,2717,3}, {4798,2713,3},{4800,2713,3},{4802,2708,3},{4803,2712,3},{4803,2707,3},{4808,2703,3}, {4812,2705,3},{4813,2697,3},{4815,2697,3},{4815,2700,3},{4817,2695,3},{4818,2695,3}, {4820,2693,3},{4818,2690,3},{4820,2690,3},{4822,2687,3},{4822,2683,3},{4825,2683,3}, {4825,2675,3},{4827,2673,3},{4825,2672,3},{4827,2670,3},{4825,2668,3},{4825,2662,3}, {4830,2665,3},{4830,2668,3},{4833,2668,3},{4835,2670,3},{4832,2675,3},{4830,2677,3}, {4828,2677,3},{4827,2678,3},{4832,2683,3},{4833,2683,3},{4838,2675,3},{4840,2675,3}, {4842,2682,3},{4843,2687,3},{4837,2693,3},{4837,2702,3},{4838,2705,3},{4843,2705,3}, {4843,2707,3},{4840,2712,3},{4840,2720,3},{4837,2723,3},{4838,2728,3},{4843,2732,3}, {4845,2735,3},{4842,2738,3},{4842,2745,3},{4847,2752,3},{4848,2758,3},{4848,2760,3}, {4847,2760,3},{4845,2768,3},{4847,2777,3},{4842,2783,3},{4838,2788,3},{4833,2793,3}, {4833,2802,3},{4830,2810,3},{4825,2808,3},{4823,2810,3},{4827,2817,3},{4822,2820,3}, {4823,2827,3},{4825,2835,3},{4820,2837,3},{4815,2832,3},{4813,2832,3},{4813,2833,3}, {4818,2838,3},{4818,2842,3},{4817,2843,3},{4810,2845,3},{4807,2850,3},{4812,2852,3}, {4817,2855,3},{4817,2863,3},{4813,2870,3},{4813,2878,3},{4812,2885,3},{4807,2885,3}, {4803,2885,3},{4800,2890,3},{4795,2893,3},{4797,2897,3},{4795,2905,3},{4795,2908,3}, {4798,2910,3},{4800,2918,3},{4795,2920,3},{4788,2922,3},{4788,2923,3},{4790,2925,3}, {4790,2928,3},{4785,2923,3},{4780,2923,3},{4780,2925,3},{4782,2928,3},{4775,2927,3}, {4772,2922,3},{4767,2922,3},{4760,2923,3},{4757,2917,3},{4757,2915,3},{4750,2917,3}, {4752,2918,3},{4747,2917,3},{4745,2918,3},{4745,2923,3},{4743,2925,3},{4745,2932,3}, {4738,2933,3},{4738,2937,3},{4738,2940,3},{4732,2940,3},{4730,2943,3},{4733,2950,3}, {4735,2950,3},{4738,2957,3},{4732,2960,3},{4727,2960,3},{4727,2957,3},{4717,2958,3}, {4715,2958,3},{4713,2952,3},{4708,2955,3},{4710,2962,3},{4705,2963,3},{4703,2962,3}, {4698,2960,3},{4693,2965,3},{4692,2973,3},{4687,2975,3},{4687,2982,3},{4688,2987,3}, {4688,2988,3},{4683,2990,3},{4683,2992,3},{4683,2993,3},{4683,2997,3},{4682,2995,3}, {4677,2998,3},{4670,2997,3},{4665,2995,3},{4660,2997,3},{4657,2995,3},{4657,2992,3}, {4650,2993,3},{4652,2997,3},{4647,3003,3},{4643,3007,3},{4642,3015,3},{4643,3015,3}, {4638,3010,3},{4640,3007,3},{4638,3000,3},{4640,2993,3},{4637,2990,3},{4638,2982,3}, {4643,2980,3},{4645,2980,3},{4647,2978,3},{4648,2975,3},{4645,2975,3},{4645,2968,3}, {4640,2968,3},{4637,2970,3},{4637,2960,3},{4642,2957,3},{4645,2950,3},{4648,2947,3}, {4647,2940,3},{4645,2942,3},{4648,2937,3},{4650,2935,3},{4650,2933,3},{4645,2932,3}, {4643,2932,3},{4638,2927,3},{4638,2925,3},{4640,2922,3},{4645,2923,3},{4650,2927,3}, {4652,2923,3},{4657,2925,3},{4655,2917,3},{4653,2918,3},{4652,2908,3},{4650,2902,3}, {4647,2895,3},{4638,2897,3},{4633,2898,3},{4628,2895,3},{4622,2903,3},{4620,2905,3}, {4615,2902,3},{4612,2897,3},{4607,2900,3},{4602,2898,3},{4600,2890,3},{4598,2882,3}, {4595,2877,3},{4590,2878,3},{4585,2878,3},{4582,2872,3},{4580,2872,3},{4577,2863,3}, {4577,2860,3},{4575,2860,3},{4572,2853,3},{4568,2850,3},{4567,2852,3},{4562,2853,3}, {4558,2855,3},{4557,2852,3},{4552,2852,3},{4548,2845,3},{4552,2840,3},{4555,2832,3}, {4552,2825,3},{4545,2822,3},{4422,2268,131},{4428,2268,3},{4430,2257,3}, {4432,2255,3},{4448,2245,3},{4448,2255,3},{4455,2258,3},{4455,2263,3},{4452,2270,3}, {4453,2275,3},{4457,2277,3},{4460,2272,3},{4463,2260,3},{4472,2248,3},{4472,2243,3}, {4468,2238,3},{4467,2232,3},{4448,2218,3},{4448,2215,3},{4450,2208,3},{4463,2200,3}, {4465,2185,3},{4467,2177,3},{4465,2172,3},{4467,2168,3},{4465,2165,3},{4468,2162,3}, {4477,2158,3},{4478,2153,3},{4478,2140,3},{4482,2137,3},{4487,2137,3},{4487,2148,3}, {4490,2157,3},{4493,2153,3},{4497,2148,3},{4497,2143,3},{4498,2140,3},{4500,2142,3}, {4500,2138,3},{4500,2137,3},{4502,2137,3},{4503,2145,3},{4510,2147,3},{4512,2152,3}, {4515,2152,3},{4518,2148,3},{4522,2142,3},{4523,2127,3},{4527,2120,3},{4532,2117,3}, {4530,2112,3},{4532,2105,3},{4543,2087,3},{4547,2085,3},{4548,2078,3},{4550,2078,3}, {4553,2082,3},{4560,2077,3},{4565,2080,3},{4577,2080,3},{4577,2078,3},{4575,2075,3}, {4575,2072,3},{4580,2067,3},{4583,2065,3},{4590,2058,3},{4592,2050,3},{4595,2045,3}, {4598,2038,3},{4607,2032,3},{4612,2027,3},{4615,2028,3},{4617,2035,3},{4615,2047,3}, {4618,2048,3},{4617,2055,3},{4613,2063,3},{4617,2072,3},{4620,2072,3},{4620,2077,3}, {4623,2075,3},{4627,2082,3},{4627,2087,3},{4625,2092,3},{4627,2095,3},{4625,2098,3}, {4627,2102,3},{4623,2105,3},{4625,2108,3},{4628,2112,3},{4630,2118,3},{4638,2120,3}, {4640,2122,3},{4642,2130,3},{4645,2130,3},{4650,2127,3},{4655,2132,3},{4662,2133,3}, {4662,2140,3},{4665,2145,3},{4668,2145,3},{4668,2148,3},{4672,2152,3},{4673,2153,3}, {4675,2148,3},{4682,2152,3},{4683,2155,3},{4685,2160,3},{4692,2160,3},{4695,2167,3}, {4698,2167,3},{4700,2170,3},{4703,2165,3},{4708,2172,3},{4712,2178,3},{4717,2180,3}, {4718,2185,3},{4723,2183,3},{4727,2187,3},{4730,2187,3},{4735,2193,3},{4738,2202,3}, {4752,2202,3},{4758,2212,3},{4760,2218,3},{4768,2223,3},{4773,2228,3},{4775,2233,3}, {4773,2238,3},{4775,2242,3},{4778,2243,3},{4780,2247,3},{4777,2255,3},{4778,2265,3}, {4783,2272,3},{4783,2277,3},{4788,2277,3},{4790,2285,3},{4795,2290,3},{4797,2293,3}, {4802,2295,3},{4798,2303,3},{4802,2308,3},{4808,2312,3},{4812,2317,3},{4808,2327,3}, {4805,2330,3},{4800,2338,3},{4798,2348,3},{4802,2355,3},{4798,2367,3},{4798,2378,3}, {4797,2383,3},{4793,2387,3},{4797,2397,3},{4795,2405,3},{4792,2413,3},{4790,2423,3}, {4793,2432,3},{4793,2437,3},{4795,2442,3},{4793,2460,3},{4790,2467,3},{4785,2468,3}, {4782,2482,3},{4772,2490,3},{4772,2492,3},{4775,2512,3},{4788,2523,3},{4792,2533,3}, {4793,2555,3},{4793,2577,3},{4797,2585,3},{4798,2617,3},{4800,2620,3},{4807,2623,3}, {4808,2627,3},{4817,2632,3},{4818,2632,3},{4818,2640,3},{4822,2647,3},{4820,2653,3}, {4825,2658,3},{4825,2662,3},{4825,2668,3},{4827,2670,3},{4825,2672,3},{4827,2673,3}, {4825,2675,3},{4825,2683,3},{4822,2683,3},{4822,2687,3},{4820,2690,3},{4818,2690,3}, {4820,2693,3},{4818,2695,3},{4817,2695,3},{4815,2700,3},{4815,2697,3},{4813,2697,3}, {4812,2705,3},{4808,2703,3},{4803,2707,3},{4803,2712,3},{4802,2708,3},{4800,2713,3}, {4798,2713,3},{4798,2717,3},{4795,2715,3},{4793,2717,3},{4792,2715,3},{4790,2722,3}, {4785,2722,3},{4783,2725,3},{4782,2725,3},{4782,2722,3},{4773,2730,3},{4772,2728,3}, {4770,2727,3},{4765,2730,3},{4758,2738,3},{4757,2743,3},{4748,2748,3},{4747,2755,3}, {4745,2758,3},{4742,2757,3},{4740,2758,3},{4737,2757,3},{4730,2763,3},{4728,2773,3}, {4717,2782,3},{4713,2780,3},{4713,2785,3},{4712,2785,3},{4707,2795,3},{4705,2795,3}, {4703,2803,3},{4698,2808,3},{4692,2810,3},{4690,2810,3},{4688,2812,3},{4683,2812,3}, {4667,2823,3},{4660,2825,3},{4650,2822,3},{4647,2825,3},{4643,2825,3},{4633,2818,3}, {4630,2820,3},{4628,2818,3},{4627,2813,3},{4623,2813,3},{4623,2812,3},{4622,2812,3}, {4618,2815,3},{4607,2808,3},{4600,2808,3},{4587,2813,3},{4582,2812,3},{4578,2812,3}, {4577,2815,3},{4567,2817,3},{4562,2817,3},{4562,2810,3},{4558,2807,3},{4555,2815,3}, {4553,2817,3},{4547,2818,3},{4545,2822,3},{4543,2828,3},{4538,2828,3},{4532,2835,3}, {4525,2857,3},{4522,2870,3},{4523,2880,3},{4527,2875,3},{4528,2880,3},{4532,2880,3}, {4528,2893,3},{4532,2897,3},{4532,2902,3},{4537,2908,3},{4538,2917,3},{4543,2922,3}, {4543,2930,3},{4543,2932,3},{4543,2942,3},{4538,2958,3},{4535,2965,3},{4528,2967,3}, {4522,2967,3},{4522,2962,3},{4517,2965,3},{4517,2970,3},{4512,2967,3},{4500,2965,3}, {4490,2963,3},{4488,2960,3},{4485,2962,3},{4482,2957,3},{4478,2917,3},{4473,2907,3}, {4468,2900,3},{4475,2898,3},{4475,2903,3},{4478,2912,3},{4480,2915,3},{4487,2910,3}, {4483,2910,3},{4482,2907,3},{4487,2905,3},{4492,2903,3},{4497,2912,3},{4500,2903,3}, {4500,2898,3},{4495,2887,3},{4492,2887,3},{4490,2888,3},{4488,2887,3},{4482,2895,3}, {4478,2892,3},{4477,2895,3},{4475,2887,3},{4472,2880,3},{4468,2878,3},{4468,2882,3}, {4467,2878,3},{4465,2878,3},{4465,2885,3},{4468,2892,3},{4472,2890,3},{4468,2900,3}, {4463,2895,3},{4468,2898,3},{4468,2897,3},{4467,2895,3},{4467,2892,3},{4460,2878,3}, {4463,2880,3},{4463,2877,3},{4460,2877,3},{4458,2878,3},{4457,2873,3},{4455,2877,3}, {4447,2875,3},{4452,2880,3},{4457,2885,3},{4458,2890,3},{4462,2893,3},{4448,2883,3}, {4442,2875,3},{4433,2868,3},{4435,2868,3},{4433,2865,3},{4432,2863,3},{4423,2863,3}, {4417,2867,3},{4415,2863,3},{4398,2867,3},{4382,2858,3},{4375,2858,3},{4373,2843,3}, {4377,2825,3},{4383,2805,3},{4387,2800,3},{4398,2795,3},{4400,2792,3},{4397,2782,3}, {4397,2773,3},{4405,2765,3},{4402,2760,3},{4402,2740,3},{4405,2737,3},{4408,2728,3}, {4413,2728,3},{4412,2722,3},{4415,2702,3},{4413,2690,3},{4408,2675,3},{4408,2670,3}, {4405,2660,3},{4405,2638,3},{4403,2630,3},{4398,2620,3},{4398,2615,3},{4395,2608,3}, {4392,2607,3},{4385,2595,3},{4378,2588,3},{4375,2582,3},{4372,2578,3},{4367,2563,3}, {4365,2557,3},{4365,2548,3},{4362,2538,3},{4368,2527,3},{4368,2508,3},{4373,2498,3}, {4372,2472,3},{4375,2460,3},{4377,2452,3},{4370,2435,3},{4368,2418,3},{4375,2400,3}, {4377,2387,3},{4380,2375,3},{4380,2362,3},{4383,2350,3},{4385,2328,3},{4380,2313,3}, {4380,2307,3},{4385,2288,3},{4388,2283,3},{4398,2288,3},{4402,2300,3},{4408,2305,3}, {4410,2300,3},{4412,2290,3},{4420,2277,3},{4422,2270,3},{4422,2268,3},{4133,2293,131}, {4137,2297,3},{4142,2295,3},{4145,2298,3},{4148,2297,3},{4153,2295,3},{4155,2297,3}, {4163,2295,3},{4165,2298,3},{4173,2303,3},{4177,2302,3},{4178,2297,3},{4185,2293,3}, {4188,2290,3},{4203,2287,3},{4203,2282,3},{4205,2280,3},{4205,2277,3},{4205,2273,3}, {4207,2272,3},{4207,2268,3},{4215,2252,3},{4220,2250,3},{4222,2247,3},{4232,2237,3}, {4233,2245,3},{4240,2248,3},{4240,2252,3},{4248,2255,3},{4252,2255,3},{4257,2243,3}, {4268,2247,3},{4270,2247,3},{4273,2250,3},{4282,2245,3},{4288,2253,3},{4287,2257,3}, {4290,2260,3},{4287,2267,3},{4290,2275,3},{4293,2277,3},{4298,2278,3},{4300,2285,3}, {4305,2290,3},{4308,2292,3},{4310,2297,3},{4320,2300,3},{4323,2290,3},{4328,2285,3}, {4333,2283,3},{4335,2280,3},{4338,2277,3},{4340,2268,3},{4343,2265,3},{4343,2263,3}, {4347,2258,3},{4347,2255,3},{4357,2250,3},{4365,2250,3},{4368,2243,3},{4377,2240,3}, {4382,2237,3},{4387,2240,3},{4400,2242,3},{4402,2245,3},{4403,2253,3},{4407,2255,3}, {4407,2262,3},{4412,2262,3},{4417,2263,3},{4417,2262,3},{4422,2268,3},{4422,2270,3}, {4420,2277,3},{4412,2290,3},{4410,2300,3},{4408,2305,3},{4402,2300,3},{4398,2288,3}, {4388,2283,3},{4385,2288,3},{4380,2307,3},{4380,2313,3},{4385,2328,3},{4383,2350,3}, {4380,2362,3},{4380,2375,3},{4377,2387,3},{4375,2400,3},{4368,2418,3},{4370,2435,3}, {4377,2452,3},{4375,2460,3},{4372,2472,3},{4373,2498,3},{4368,2508,3},{4368,2527,3}, {4362,2538,3},{4365,2548,3},{4365,2557,3},{4367,2563,3},{4372,2578,3},{4375,2582,3}, {4378,2588,3},{4385,2595,3},{4392,2607,3},{4395,2608,3},{4398,2615,3},{4398,2620,3}, {4403,2630,3},{4405,2638,3},{4405,2660,3},{4408,2670,3},{4408,2675,3},{4413,2690,3}, {4415,2702,3},{4412,2722,3},{4413,2728,3},{4408,2728,3},{4405,2737,3},{4402,2740,3}, {4402,2760,3},{4405,2765,3},{4397,2773,3},{4397,2782,3},{4400,2792,3},{4398,2795,3}, {4387,2800,3},{4383,2805,3},{4377,2825,3},{4373,2843,3},{4375,2858,3},{4360,2857,3}, {4353,2860,3},{4345,2855,3},{4340,2848,3},{4337,2847,3},{4338,2845,3},{4342,2833,3}, {4340,2825,3},{4340,2815,3},{4337,2808,3},{4323,2802,3},{4320,2790,3},{4317,2795,3}, {4307,2792,3},{4303,2788,3},{4295,2790,3},{4285,2790,3},{4285,2788,3},{4278,2790,3}, {4270,2790,3},{4272,2777,3},{4270,2772,3},{4267,2772,3},{4267,2773,3},{4262,2763,3}, {4255,2765,3},{4257,2762,3},{4255,2752,3},{4248,2748,3},{4248,2745,3},{4243,2747,3}, {4247,2748,3},{4243,2750,3},{4245,2753,3},{4245,2760,3},{4245,2762,3},{4242,2765,3}, {4243,2768,3},{4242,2770,3},{4242,2772,3},{4240,2770,3},{4238,2772,3},{4237,2770,3}, {4235,2772,3},{4233,2773,3},{4233,2778,3},{4230,2778,3},{4228,2775,3},{4227,2777,3}, {4225,2775,3},{4225,2778,3},{4212,2790,3},{4207,2798,3},{4200,2802,3},{4198,2802,3}, {4198,2798,3},{4198,2792,3},{4200,2788,3},{4200,2783,3},{4198,2782,3},{4195,2783,3}, {4198,2770,3},{4193,2758,3},{4192,2757,3},{4192,2758,3},{4190,2757,3},{4195,2752,3}, {4195,2748,3},{4200,2742,3},{4207,2737,3},{4208,2733,3},{4212,2723,3},{4208,2720,3}, {4207,2720,3},{4207,2713,3},{4208,2710,3},{4208,2705,3},{4208,2703,3},{4205,2702,3}, {4203,2698,3},{4200,2697,3},{4200,2693,3},{4198,2690,3},{4200,2687,3},{4197,2683,3}, {4198,2680,3},{4197,2675,3},{4198,2663,3},{4193,2657,3},{4190,2658,3},{4188,2658,3}, {4183,2655,3},{4182,2637,3},{4175,2633,3},{4172,2635,3},{4172,2628,3},{4175,2623,3}, {4175,2617,3},{4172,2607,3},{4167,2607,3},{4163,2610,3},{4163,2613,3},{4157,2615,3}, {4153,2618,3},{4148,2617,3},{4143,2620,3},{4142,2617,3},{4135,2613,3},{4135,2605,3}, {4132,2598,3},{4132,2593,3},{4132,2590,3},{4135,2583,3},{4132,2578,3},{4132,2572,3}, {4130,2572,3},{4132,2567,3},{4132,2557,3},{4128,2553,3},{4128,2548,3},{4125,2528,3}, {4125,2523,3},{4128,2522,3},{4135,2512,3},{4133,2508,3},{4137,2507,3},{4140,2493,3}, {4142,2492,3},{4140,2482,3},{4135,2482,3},{4137,2477,3},{4142,2472,3},{4143,2462,3}, {4147,2460,3},{4148,2457,3},{4155,2455,3},{4157,2453,3},{4155,2447,3},{4153,2447,3}, {4153,2440,3},{4152,2432,3},{4155,2430,3},{4157,2425,3},{4153,2420,3},{4152,2418,3}, {4153,2415,3},{4155,2410,3},{4152,2407,3},{4147,2408,3},{4145,2405,3},{4147,2402,3}, {4143,2397,3},{4145,2395,3},{4148,2392,3},{4145,2390,3},{4143,2380,3},{4140,2377,3}, {4142,2367,3},{4138,2363,3},{4140,2355,3},{4140,2353,3},{4142,2343,3},{4140,2340,3}, {4137,2335,3},{4140,2332,3},{4140,2330,3},{4137,2323,3},{4133,2322,3},{4132,2318,3}, {4132,2310,3},{4133,2293,3},{4073,2603,131},{4075,2612,3},{4082,2615,3}, {4083,2622,3},{4085,2620,3},{4088,2622,3},{4088,2623,3},{4090,2625,3},{4092,2627,3}, {4090,2630,3},{4093,2630,3},{4095,2637,3},{4098,2633,3},{4100,2637,3},{4103,2638,3}, {4105,2633,3},{4108,2632,3},{4112,2633,3},{4112,2632,3},{4115,2633,3},{4117,2632,3}, {4120,2633,3},{4125,2633,3},{4127,2642,3},{4135,2653,3},{4133,2658,3},{4135,2663,3}, {4142,2663,3},{4153,2660,3},{4160,2660,3},{4165,2648,3},{4167,2650,3},{4172,2635,3}, {4175,2633,3},{4182,2637,3},{4183,2655,3},{4188,2658,3},{4190,2658,3},{4193,2657,3}, {4198,2663,3},{4197,2675,3},{4198,2680,3},{4197,2683,3},{4200,2687,3},{4198,2690,3}, {4200,2693,3},{4200,2697,3},{4203,2698,3},{4205,2702,3},{4208,2703,3},{4208,2705,3}, {4208,2710,3},{4207,2713,3},{4207,2720,3},{4208,2720,3},{4212,2723,3},{4208,2733,3}, {4207,2737,3},{4200,2742,3},{4195,2748,3},{4195,2752,3},{4190,2757,3},{4192,2758,3}, {4192,2757,3},{4193,2758,3},{4198,2770,3},{4195,2783,3},{4198,2782,3},{4200,2783,3}, {4200,2788,3},{4198,2792,3},{4198,2798,3},{4198,2802,3},{4188,2805,3},{4188,2798,3}, {4182,2797,3},{4175,2803,3},{4173,2803,3},{4167,2808,3},{4165,2808,3},{4158,2813,3}, {4157,2817,3},{4153,2820,3},{4142,2847,3},{4135,2863,3},{4135,2868,3},{4128,2883,3}, {4125,2900,3},{4125,2905,3},{4123,2910,3},{4120,2910,3},{4115,2903,3},{4112,2907,3}, {4108,2905,3},{4105,2903,3},{4103,2898,3},{4100,2898,3},{4100,2893,3},{4095,2882,3}, {4098,2875,3},{4097,2860,3},{4100,2860,3},{4102,2858,3},{4105,2858,3},{4107,2857,3}, {4108,2853,3},{4107,2853,3},{4105,2857,3},{4102,2857,3},{4098,2855,3},{4100,2850,3}, {4105,2842,3},{4108,2823,3},{4108,2815,3},{4103,2802,3},{4097,2795,3},{4097,2787,3}, {4100,2782,3},{4102,2773,3},{4098,2750,3},{4092,2747,3},{4085,2745,3},{4077,2733,3}, {4070,2730,3},{4063,2718,3},{4060,2705,3},{4055,2698,3},{4055,2690,3},{4045,2668,3}, {4042,2668,3},{4038,2662,3},{4037,2662,3},{4033,2658,3},{4028,2648,3},{4027,2647,3}, {4022,2642,3},{4020,2635,3},{4015,2637,3},{4005,2622,3},{4005,2618,3},{4005,2617,3}, {4007,2617,3},{4018,2625,3},{4025,2627,3},{4028,2622,3},{4032,2623,3},{4032,2622,3}, {4037,2632,3},{4043,2643,3},{4050,2660,3},{4052,2668,3},{4055,2672,3},{4055,2678,3}, {4060,2683,3},{4065,2680,3},{4067,2677,3},{4063,2668,3},{4063,2658,3},{4060,2652,3}, {4062,2645,3},{4060,2632,3},{4060,2612,3},{4062,2607,3},{4072,2605,3},{4073,2603,3}, {3822,2217,131},{3817,2233,3},{3813,2242,3},{3813,2250,3},{3808,2265,3}, {3805,2272,3},{3797,2280,3},{3793,2287,3},{3795,2295,3},{3798,2298,3},{3803,2288,3}, {3803,2285,3},{3808,2295,3},{3805,2305,3},{3807,2317,3},{3810,2322,3},{3815,2318,3}, {3815,2323,3},{3817,2318,3},{3817,2313,3},{3818,2315,3},{3822,2312,3},{3817,2307,3}, {3818,2303,3},{3820,2305,3},{3822,2303,3},{3822,2293,3},{3820,2292,3},{3820,2297,3}, {3818,2297,3},{3818,2295,3},{3818,2292,3},{3823,2290,3},{3823,2288,3},{3823,2278,3}, {3825,2277,3},{3828,2280,3},{3832,2270,3},{3837,2268,3},{3838,2265,3},{3837,2263,3}, {3837,2265,3},{3835,2265,3},{3835,2262,3},{3833,2260,3},{3833,2258,3},{3832,2260,3}, {3828,2258,3},{3828,2255,3},{3833,2252,3},{3835,2253,3},{3842,2247,3},{3843,2243,3}, {3845,2240,3},{3842,2242,3},{3838,2238,3},{3837,2240,3},{3833,2238,3},{3835,2230,3}, {3833,2230,3},{3837,2225,3},{3833,2220,3},{3832,2218,3},{3833,2217,3},{3837,2213,3}, {3840,2205,3},{3842,2195,3},{3837,2188,3},{3840,2183,3},{3837,2178,3},{3833,2177,3}, {3835,2172,3},{3835,2165,3},{3833,2157,3},{3830,2152,3},{3833,2143,3},{3832,2147,3}, {3830,2148,3},{3833,2148,3},{3835,2148,3},{3837,2147,3},{3837,2143,3},{3838,2142,3}, {3840,2137,3},{3847,2137,3},{3850,2133,3},{3848,2130,3},{3845,2135,3},{3838,2133,3}, {3838,2130,3},{3837,2130,3},{3837,2127,3},{3833,2127,3},{3832,2123,3},{3833,2120,3}, {3832,2118,3},{3832,2120,3},{3830,2117,3},{3830,2118,3},{3830,2115,3},{3833,2113,3}, {3833,2108,3},{3835,2112,3},{3837,2110,3},{3838,2110,3},{3837,2110,3},{3840,2113,3}, {3842,2112,3},{3840,2110,3},{3842,2108,3},{3843,2108,3},{3842,2110,3},{3843,2112,3}, {3843,2110,3},{3848,2110,3},{3848,2108,3},{3848,2110,3},{3853,2110,3},{3850,2103,3}, {3853,2102,3},{3860,2103,3},{3865,2098,3},{3867,2098,3},{3867,2092,3},{3880,2087,3}, {3880,2085,3},{3877,2082,3},{3877,2080,3},{3875,2078,3},{3877,2077,3},{3878,2077,3}, {3880,2073,3},{3885,2073,3},{3887,2080,3},{3892,2075,3},{3895,2077,3},{3893,2078,3}, {3892,2082,3},{3893,2085,3},{3897,2087,3},{3893,2088,3},{3892,2087,3},{3892,2090,3}, {3895,2092,3},{3893,2095,3},{3895,2098,3},{3893,2100,3},{3893,2103,3},{3890,2102,3}, {3887,2108,3},{3892,2110,3},{3890,2115,3},{3887,2117,3},{3887,2118,3},{3890,2117,3}, {3892,2113,3},{3897,2113,3},{3898,2117,3},{3905,2108,3},{3903,2108,3},{3902,2103,3}, {3900,2107,3},{3900,2098,3},{3902,2100,3},{3903,2098,3},{3903,2095,3},{3905,2093,3}, {3903,2093,3},{3907,2095,3},{3907,2090,3},{3903,2087,3},{3903,2090,3},{3905,2083,3}, {3903,2083,3},{3903,2085,3},{3907,2087,3},{3907,2082,3},{3908,2085,3},{3912,2082,3}, {3908,2077,3},{3908,2080,3},{3902,2075,3},{3902,2073,3},{3897,2082,3},{3895,2083,3}, {3898,2077,3},{3895,2075,3},{3895,2073,3},{3898,2070,3},{3902,2072,3},{3907,2068,3}, {3912,2060,3},{3918,2055,3},{3922,2048,3},{3928,2048,3},{3928,2038,3},{3928,2035,3}, {3932,2030,3},{3938,2028,3},{3940,2023,3},{3943,2022,3},{3945,2027,3},{3948,2022,3}, {3950,2025,3},{3952,2025,3},{3952,2023,3},{3950,2022,3},{3952,2018,3},{3952,2017,3}, {3952,2020,3},{3953,2018,3},{3953,2013,3},{3957,2015,3},{3957,2017,3},{3962,2018,3}, {3965,2012,3},{3965,2010,3},{3968,2007,3},{3968,2002,3},{3968,2007,3},{3965,2013,3}, {3965,2020,3},{3965,2022,3},{3968,2023,3},{3967,2027,3},{3970,2027,3},{3973,2032,3}, {3977,2030,3},{3980,2028,3},{3980,2035,3},{3978,2038,3},{3980,2042,3},{3982,2042,3}, {3992,2037,3},{3992,2033,3},{3995,2033,3},{4000,2032,3},{4000,2040,3},{4005,2042,3}, {4007,2045,3},{4008,2052,3},{4007,2055,3},{4007,2058,3},{4010,2067,3},{4015,2068,3}, {4018,2068,3},{4022,2072,3},{4028,2072,3},{4030,2073,3},{4032,2077,3},{4033,2075,3}, {4037,2078,3},{4043,2078,3},{4045,2083,3},{4048,2085,3},{4047,2092,3},{4047,2095,3}, {4052,2098,3},{4057,2105,3},{4068,2105,3},{4077,2097,3},{4080,2098,3},{4085,2098,3}, {4087,2135,3},{4092,2142,3},{4092,2153,3},{4087,2157,3},{4087,2160,3},{4090,2165,3}, {4090,2168,3},{4093,2168,3},{4093,2180,3},{4098,2180,3},{4105,2192,3},{4110,2192,3}, {4113,2198,3},{4113,2202,3},{4115,2207,3},{4113,2208,3},{4112,2213,3},{4115,2217,3}, {4117,2225,3},{4115,2232,3},{4113,2233,3},{4113,2240,3},{4112,2243,3},{4113,2253,3}, {4112,2258,3},{4115,2263,3},{4118,2265,3},{4118,2267,3},{4115,2273,3},{4117,2275,3}, {4132,2277,3},{4133,2280,3},{4133,2293,3},{4132,2310,3},{4132,2318,3},{4133,2322,3}, {4137,2323,3},{4140,2330,3},{4140,2332,3},{4137,2335,3},{4140,2340,3},{4142,2343,3}, {4140,2353,3},{4140,2355,3},{4138,2363,3},{4142,2367,3},{4140,2377,3},{4143,2380,3}, {4145,2390,3},{4148,2392,3},{4145,2395,3},{4143,2397,3},{4147,2402,3},{4145,2405,3}, {4147,2408,3},{4152,2407,3},{4155,2410,3},{4153,2415,3},{4152,2418,3},{4153,2420,3}, {4157,2425,3},{4155,2430,3},{4152,2432,3},{4153,2440,3},{4153,2447,3},{4155,2447,3}, {4157,2453,3},{4155,2455,3},{4148,2457,3},{4147,2460,3},{4143,2462,3},{4142,2472,3}, {4137,2477,3},{4135,2482,3},{4140,2482,3},{4142,2492,3},{4140,2493,3},{4137,2507,3}, {4133,2508,3},{4135,2512,3},{4128,2522,3},{4125,2523,3},{4125,2528,3},{4128,2548,3}, {4128,2553,3},{4132,2557,3},{4132,2567,3},{4130,2572,3},{4132,2572,3},{4132,2578,3}, {4135,2583,3},{4132,2590,3},{4132,2593,3},{4132,2598,3},{4135,2605,3},{4135,2613,3}, {4142,2617,3},{4143,2620,3},{4148,2617,3},{4153,2618,3},{4157,2615,3},{4163,2613,3}, {4163,2610,3},{4167,2607,3},{4172,2607,3},{4175,2617,3},{4175,2623,3},{4172,2628,3}, {4172,2635,3},{4167,2650,3},{4165,2648,3},{4160,2660,3},{4153,2660,3},{4142,2663,3}, {4135,2663,3},{4133,2658,3},{4135,2653,3},{4127,2642,3},{4125,2633,3},{4120,2633,3}, {4117,2632,3},{4115,2633,3},{4112,2632,3},{4112,2633,3},{4108,2632,3},{4105,2633,3}, {4103,2638,3},{4100,2637,3},{4098,2633,3},{4095,2637,3},{4093,2630,3},{4090,2630,3}, {4092,2627,3},{4090,2625,3},{4088,2623,3},{4088,2622,3},{4085,2620,3},{4083,2622,3}, {4082,2615,3},{4075,2612,3},{4073,2603,3},{4073,2605,3},{4078,2603,3},{4080,2602,3}, {4082,2607,3},{4083,2605,3},{4082,2602,3},{4083,2600,3},{4082,2600,3},{4085,2592,3}, {4085,2572,3},{4087,2563,3},{4087,2555,3},{4092,2537,3},{4093,2535,3},{4093,2530,3}, {4093,2527,3},{4095,2513,3},{4098,2513,3},{4098,2517,3},{4102,2513,3},{4100,2503,3}, {4098,2503,3},{4097,2500,3},{4093,2498,3},{4092,2488,3},{4085,2480,3},{4085,2470,3}, {4087,2467,3},{4085,2463,3},{4095,2457,3},{4093,2440,3},{4088,2432,3},{4085,2433,3}, {4083,2430,3},{4083,2433,3},{4072,2410,3},{4073,2398,3},{4078,2385,3},{4075,2373,3}, {4072,2370,3},{4067,2368,3},{4063,2377,3},{4058,2380,3},{4053,2392,3},{4052,2390,3}, {4052,2383,3},{4050,2382,3},{4047,2382,3},{4040,2387,3},{4038,2397,3},{4038,2400,3}, {4040,2400,3},{4045,2400,3},{4040,2403,3},{4037,2407,3},{4035,2418,3},{4032,2418,3}, {4032,2423,3},{4025,2428,3},{4015,2440,3},{4013,2438,3},{4012,2430,3},{4015,2428,3}, {4020,2422,3},{4022,2422,3},{4028,2417,3},{4030,2405,3},{4037,2393,3},{4037,2385,3}, {4033,2378,3},{4035,2373,3},{4032,2370,3},{4028,2370,3},{4020,2377,3},{4017,2390,3}, {4012,2398,3},{4008,2398,3},{4007,2400,3},{4003,2398,3},{4003,2402,3},{4002,2402,3}, {3998,2398,3},{3997,2400,3},{3997,2397,3},{3995,2398,3},{3995,2393,3},{3995,2392,3}, {3997,2393,3},{3997,2390,3},{4002,2385,3},{4002,2382,3},{4012,2377,3},{4023,2365,3}, {4025,2353,3},{4028,2340,3},{4023,2333,3},{4020,2333,3},{4015,2337,3},{4013,2340,3}, {4003,2350,3},{3998,2367,3},{3993,2370,3},{3993,2375,3},{3992,2372,3},{3992,2360,3}, {3997,2345,3},{3997,2337,3},{4000,2338,3},{4007,2333,3},{4008,2332,3},{4018,2332,3}, {4023,2332,3},{4033,2302,3},{4035,2302,3},{4038,2295,3},{4038,2288,3},{4040,2290,3}, {4050,2282,3},{4052,2292,3},{4053,2298,3},{4057,2298,3},{4058,2293,3},{4063,2293,3}, {4065,2290,3},{4063,2285,3},{4060,2285,3},{4057,2282,3},{4057,2275,3},{4052,2275,3}, {4052,2272,3},{4050,2272,3},{4053,2268,3},{4052,2265,3},{4050,2267,3},{4047,2265,3}, {4048,2262,3},{4047,2258,3},{4040,2262,3},{4037,2267,3},{4015,2255,3},{4010,2257,3}, {4005,2257,3},{4002,2260,3},{3995,2272,3},{3987,2273,3},{3980,2285,3},{3958,2293,3}, {3953,2302,3},{3950,2308,3},{3947,2312,3},{3932,2327,3},{3918,2335,3},{3915,2332,3}, {3913,2323,3},{3913,2322,3},{3912,2323,3},{3910,2320,3},{3908,2312,3},{3910,2305,3}, {3915,2308,3},{3913,2312,3},{3910,2310,3},{3913,2317,3},{3917,2318,3},{3915,2322,3}, {3918,2322,3},{3922,2318,3},{3925,2318,3},{3930,2312,3},{3932,2302,3},{3935,2300,3}, {3937,2295,3},{3932,2293,3},{3930,2293,3},{3928,2285,3},{3927,2282,3},{3918,2285,3}, {3915,2285,3},{3917,2288,3},{3918,2287,3},{3918,2288,3},{3917,2292,3},{3912,2292,3}, {3910,2297,3},{3905,2300,3},{3903,2297,3},{3900,2297,3},{3903,2303,3},{3903,2307,3}, {3900,2302,3},{3895,2300,3},{3895,2293,3},{3893,2293,3},{3892,2290,3},{3893,2285,3}, {3888,2283,3},{3887,2275,3},{3888,2272,3},{3888,2267,3},{3890,2265,3},{3892,2262,3}, {3888,2258,3},{3888,2253,3},{3885,2252,3},{3885,2257,3},{3883,2255,3},{3882,2260,3}, {3885,2270,3},{3878,2275,3},{3878,2282,3},{3875,2287,3},{3877,2290,3},{3875,2298,3}, {3875,2303,3},{3872,2307,3},{3863,2308,3},{3863,2312,3},{3865,2318,3},{3868,2317,3}, {3868,2320,3},{3865,2325,3},{3865,2332,3},{3860,2333,3},{3858,2330,3},{3855,2328,3}, {3853,2338,3},{3852,2333,3},{3850,2333,3},{3850,2337,3},{3850,2347,3},{3848,2353,3}, {3850,2355,3},{3850,2358,3},{3847,2360,3},{3845,2357,3},{3845,2360,3},{3842,2360,3}, {3842,2363,3},{3835,2368,3},{3833,2370,3},{3833,2377,3},{3832,2380,3},{3830,2393,3}, {3820,2407,3},{3813,2407,3},{3815,2405,3},{3813,2402,3},{3810,2398,3},{3800,2403,3}, {3797,2402,3},{3793,2402,3},{3790,2405,3},{3788,2402,3},{3787,2407,3},{3782,2405,3}, {3780,2408,3},{3778,2408,3},{3775,2408,3},{3773,2407,3},{3768,2407,3},{3765,2403,3}, {3767,2395,3},{3772,2395,3},{3773,2392,3},{3777,2390,3},{3782,2383,3},{3782,2382,3}, {3780,2380,3},{3782,2378,3},{3780,2378,3},{3782,2377,3},{3783,2377,3},{3785,2375,3}, {3793,2368,3},{3793,2363,3},{3795,2365,3},{3795,2362,3},{3797,2362,3},{3797,2357,3}, {3798,2355,3},{3802,2360,3},{3805,2357,3},{3802,2347,3},{3798,2340,3},{3798,2343,3}, {3797,2342,3},{3797,2322,3},{3792,2313,3},{3792,2302,3},{3790,2302,3},{3788,2298,3}, {3785,2302,3},{3785,2312,3},{3780,2318,3},{3777,2318,3},{3777,2312,3},{3773,2312,3}, {3772,2317,3},{3768,2315,3},{3765,2317,3},{3762,2317,3},{3753,2333,3},{3755,2337,3}, {3762,2332,3},{3763,2338,3},{3762,2342,3},{3757,2338,3},{3755,2337,3},{3753,2342,3}, {3752,2340,3},{3750,2345,3},{3747,2352,3},{3743,2352,3},{3742,2342,3},{3742,2335,3}, {3740,2330,3},{3740,2327,3},{3738,2325,3},{3738,2327,3},{3738,2323,3},{3737,2323,3}, {3737,2325,3},{3735,2325,3},{3733,2327,3},{3733,2318,3},{3730,2320,3},{3728,2318,3}, {3730,2315,3},{3733,2315,3},{3732,2312,3},{3733,2313,3},{3735,2312,3},{3737,2307,3}, {3740,2307,3},{3740,2312,3},{3742,2312,3},{3742,2313,3},{3745,2313,3},{3745,2305,3}, {3747,2307,3},{3748,2305,3},{3745,2300,3},{3752,2298,3},{3752,2293,3},{3753,2293,3}, {3753,2290,3},{3752,2292,3},{3752,2285,3},{3753,2282,3},{3758,2278,3},{3757,2272,3}, {3752,2273,3},{3748,2273,3},{3742,2277,3},{3740,2275,3},{3733,2283,3},{3725,2287,3}, {3720,2292,3},{3712,2290,3},{3712,2295,3},{3708,2297,3},{3708,2298,3},{3707,2298,3}, {3708,2297,3},{3702,2300,3},{3698,2302,3},{3698,2300,3},{3695,2302,3},{3687,2305,3}, {3685,2305,3},{3682,2308,3},{3680,2310,3},{3678,2308,3},{3677,2312,3},{3675,2308,3}, {3673,2308,3},{3673,2307,3},{3673,2303,3},{3668,2303,3},{3668,2307,3},{3667,2303,3}, {3663,2303,3},{3658,2308,3},{3657,2313,3},{3653,2315,3},{3650,2313,3},{3647,2320,3}, {3643,2320,3},{3643,2308,3},{3652,2305,3},{3652,2297,3},{3658,2295,3},{3663,2288,3}, {3665,2288,3},{3667,2287,3},{3668,2283,3},{3665,2282,3},{3667,2282,3},{3672,2282,3}, {3680,2278,3},{3680,2273,3},{3680,2263,3},{3678,2260,3},{3677,2257,3},{3673,2258,3}, {3672,2253,3},{3668,2253,3},{3668,2255,3},{3665,2255,3},{3667,2252,3},{3665,2252,3}, {3662,2253,3},{3660,2252,3},{3662,2248,3},{3660,2248,3},{3653,2248,3},{3645,2252,3}, {3643,2248,3},{3640,2250,3},{3638,2248,3},{3645,2247,3},{3648,2240,3},{3648,2238,3}, {3652,2235,3},{3655,2237,3},{3653,2238,3},{3658,2238,3},{3660,2238,3},{3660,2237,3}, {3663,2237,3},{3665,2238,3},{3667,2237,3},{3670,2238,3},{3670,2235,3},{3672,2233,3}, {3682,2230,3},{3688,2223,3},{3690,2220,3},{3688,2217,3},{3692,2213,3},{3693,2215,3}, {3700,2217,3},{3702,2215,3},{3702,2203,3},{3698,2193,3},{3687,2192,3},{3682,2193,3}, {3680,2197,3},{3672,2188,3},{3680,2182,3},{3678,2177,3},{3682,2170,3},{3688,2168,3}, {3695,2172,3},{3695,2167,3},{3697,2168,3},{3695,2165,3},{3700,2165,3},{3707,2158,3}, {3715,2157,3},{3720,2158,3},{3727,2167,3},{3730,2170,3},{3745,2165,3},{3753,2157,3}, {3762,2145,3},{3765,2140,3},{3767,2133,3},{3765,2132,3},{3763,2132,3},{3767,2130,3}, {3772,2132,3},{3778,2130,3},{3782,2122,3},{3783,2112,3},{3785,2110,3},{3793,2113,3}, {3793,2117,3},{3793,2120,3},{3800,2128,3},{3800,2130,3},{3802,2132,3},{3802,2128,3}, {3812,2137,3},{3822,2137,3},{3818,2140,3},{3822,2140,3},{3820,2142,3},{3820,2147,3}, {3817,2153,3},{3815,2160,3},{3817,2167,3},{3822,2172,3},{3827,2173,3},{3830,2177,3}, {3833,2185,3},{3832,2202,3},{3827,2205,3},{3822,2217,3},{4085,2098,131}, {4090,2098,3},{4092,2095,3},{4093,2085,3},{4092,2083,3},{4090,2080,3},{4092,2073,3}, {4108,2067,3},{4110,2060,3},{4112,2058,3},{4113,2060,3},{4123,2052,3},{4133,2050,3}, {4135,2050,3},{4135,2052,3},{4137,2055,3},{4140,2057,3},{4143,2052,3},{4148,2050,3}, {4153,2045,3},{4155,2047,3},{4158,2055,3},{4165,2053,3},{4170,2053,3},{4173,2052,3}, {4178,2053,3},{4178,2057,3},{4178,2065,3},{4183,2067,3},{4187,2073,3},{4188,2073,3}, {4192,2075,3},{4192,2073,3},{4197,2073,3},{4202,2073,3},{4203,2072,3},{4205,2078,3}, {4207,2082,3},{4208,2088,3},{4212,2093,3},{4213,2100,3},{4217,2107,3},{4218,2113,3}, {4213,2117,3},{4210,2120,3},{4207,2127,3},{4207,2128,3},{4207,2130,3},{4207,2132,3}, {4212,2128,3},{4213,2128,3},{4217,2133,3},{4222,2137,3},{4222,2143,3},{4220,2152,3}, {4222,2158,3},{4222,2165,3},{4223,2172,3},{4227,2175,3},{4232,2178,3},{4230,2185,3}, {4230,2192,3},{4230,2198,3},{4228,2200,3},{4228,2202,3},{4228,2203,3},{4230,2210,3}, {4228,2212,3},{4230,2218,3},{4233,2225,3},{4235,2230,3},{4232,2237,3},{4222,2247,3}, {4220,2250,3},{4215,2252,3},{4207,2268,3},{4207,2272,3},{4205,2273,3},{4205,2277,3}, {4205,2280,3},{4203,2282,3},{4203,2287,3},{4188,2290,3},{4185,2293,3},{4178,2297,3}, {4177,2302,3},{4173,2303,3},{4165,2298,3},{4163,2295,3},{4155,2297,3},{4153,2295,3}, {4148,2297,3},{4145,2298,3},{4142,2295,3},{4137,2297,3},{4133,2293,3},{4133,2280,3}, {4132,2277,3},{4117,2275,3},{4115,2273,3},{4118,2267,3},{4118,2265,3},{4115,2263,3}, {4112,2258,3},{4113,2253,3},{4112,2243,3},{4113,2240,3},{4113,2233,3},{4115,2232,3}, {4117,2225,3},{4115,2217,3},{4112,2213,3},{4113,2208,3},{4115,2207,3},{4113,2202,3}, {4113,2198,3},{4110,2192,3},{4105,2192,3},{4098,2180,3},{4093,2180,3},{4093,2168,3}, {4090,2168,3},{4090,2165,3},{4087,2160,3},{4087,2157,3},{4092,2153,3},{4092,2142,3}, {4087,2135,3},{4085,2098,3},{4245,1852,131},{4248,1857,3},{4252,1857,3}, {4257,1858,3},{4262,1860,3},{4267,1860,3},{4272,1858,3},{4272,1857,3},{4275,1852,3}, {4278,1847,3},{4282,1847,3},{4287,1850,3},{4288,1855,3},{4293,1850,3},{4298,1853,3}, {4300,1860,3},{4300,1867,3},{4302,1875,3},{4307,1873,3},{4312,1870,3},{4315,1873,3}, {4320,1875,3},{4322,1873,3},{4327,1873,3},{4330,1880,3},{4332,1887,3},{4333,1887,3}, {4335,1888,3},{4335,1892,3},{4333,1893,3},{4332,1895,3},{4328,1895,3},{4327,1897,3}, {4323,1902,3},{4322,1903,3},{4322,1905,3},{4323,1907,3},{4327,1912,3},{4332,1917,3}, {4333,1917,3},{4335,1915,3},{4335,1913,3},{4340,1910,3},{4343,1905,3},{4347,1900,3}, {4352,1897,3},{4352,1898,3},{4352,1900,3},{4352,1907,3},{4348,1913,3},{4350,1917,3}, {4352,1923,3},{4350,1930,3},{4352,1932,3},{4352,1930,3},{4353,1928,3},{4358,1932,3}, {4358,1935,3},{4360,1942,3},{4358,1942,3},{4357,1942,3},{4355,1942,3},{4353,1943,3}, {4353,1945,3},{4355,1945,3},{4357,1952,3},{4362,1953,3},{4367,1953,3},{4372,1953,3}, {4375,1948,3},{4380,1945,3},{4383,1940,3},{4388,1937,3},{4392,1932,3},{4397,1927,3}, {4402,1927,3},{4398,1933,3},{4397,1938,3},{4395,1945,3},{4393,1953,3},{4395,1955,3}, {4398,1960,3},{4403,1963,3},{4408,1962,3},{4407,1960,3},{4407,1957,3},{4408,1955,3}, {4412,1950,3},{4415,1948,3},{4415,1947,3},{4415,1945,3},{4417,1940,3},{4422,1938,3}, {4427,1933,3},{4428,1932,3},{4428,1923,3},{4430,1917,3},{4433,1915,3},{4438,1913,3}, {4443,1915,3},{4448,1913,3},{4452,1918,3},{4455,1918,3},{4457,1920,3},{4460,1925,3}, {4465,1928,3},{4468,1932,3},{4473,1935,3},{4478,1937,3},{4483,1937,3},{4488,1937,3}, {4490,1935,3},{4492,1928,3},{4492,1922,3},{4493,1918,3},{4490,1913,3},{4487,1907,3}, {4485,1898,3},{4490,1903,3},{4493,1908,3},{4495,1910,3},{4497,1908,3},{4497,1907,3}, {4495,1907,3},{4495,1905,3},{4500,1908,3},{4505,1912,3},{4510,1910,3},{4512,1910,3}, {4510,1917,3},{4512,1920,3},{4512,1922,3},{4517,1922,3},{4518,1920,3},{4517,1928,3}, {4517,1930,3},{4518,1933,3},{4518,1940,3},{4522,1947,3},{4527,1943,3},{4523,1937,3}, {4523,1928,3},{4528,1927,3},{4528,1925,3},{4528,1923,3},{4528,1915,3},{4532,1910,3}, {4535,1903,3},{4538,1898,3},{4543,1902,3},{4547,1900,3},{4548,1900,3},{4550,1907,3}, {4550,1908,3},{4550,1910,3},{4552,1912,3},{4553,1905,3},{4555,1900,3},{4553,1893,3}, {4553,1892,3},{4558,1892,3},{4563,1895,3},{4568,1897,3},{4572,1892,3},{4575,1887,3}, {4577,1885,3},{4582,1883,3},{4587,1883,3},{4588,1880,3},{4592,1882,3},{4592,1883,3}, {4592,1888,3},{4593,1892,3},{4593,1900,3},{4595,1900,3},{4597,1902,3},{4597,1907,3}, {4602,1907,3},{4603,1910,3},{4602,1913,3},{4598,1915,3},{4598,1928,3},{4603,1930,3}, {4603,1940,3},{4607,1942,3},{4607,1947,3},{4610,1948,3},{4612,1952,3},{4615,1952,3}, {4617,1957,3},{4617,1972,3},{4613,1980,3},{4615,1985,3},{4617,1997,3},{4617,2002,3}, {4615,2005,3},{4617,2012,3},{4615,2015,3},{4615,2020,3},{4612,2027,3},{4607,2032,3}, {4598,2038,3},{4595,2045,3},{4592,2050,3},{4590,2058,3},{4583,2065,3},{4580,2067,3}, {4575,2072,3},{4575,2075,3},{4577,2078,3},{4577,2080,3},{4565,2080,3},{4560,2077,3}, {4553,2082,3},{4550,2078,3},{4548,2078,3},{4547,2085,3},{4543,2087,3},{4532,2105,3}, {4530,2112,3},{4532,2117,3},{4527,2120,3},{4523,2127,3},{4522,2142,3},{4518,2148,3}, {4515,2152,3},{4512,2152,3},{4510,2147,3},{4503,2145,3},{4502,2137,3},{4500,2137,3}, {4500,2138,3},{4500,2142,3},{4498,2140,3},{4497,2143,3},{4497,2148,3},{4493,2153,3}, {4490,2157,3},{4487,2148,3},{4487,2137,3},{4482,2137,3},{4478,2140,3},{4478,2153,3}, {4477,2158,3},{4468,2162,3},{4465,2165,3},{4467,2168,3},{4465,2172,3},{4467,2177,3}, {4465,2185,3},{4463,2200,3},{4450,2208,3},{4448,2215,3},{4448,2218,3},{4467,2232,3}, {4468,2238,3},{4472,2243,3},{4472,2248,3},{4463,2260,3},{4460,2272,3},{4457,2277,3}, {4453,2275,3},{4452,2270,3},{4455,2263,3},{4455,2258,3},{4448,2255,3},{4448,2245,3}, {4432,2255,3},{4430,2257,3},{4428,2268,3},{4422,2268,3},{4417,2262,3},{4417,2263,3}, {4412,2262,3},{4407,2262,3},{4407,2255,3},{4403,2253,3},{4402,2245,3},{4400,2242,3}, {4387,2240,3},{4382,2237,3},{4377,2240,3},{4368,2243,3},{4365,2250,3},{4357,2250,3}, {4347,2255,3},{4347,2258,3},{4343,2263,3},{4343,2265,3},{4340,2268,3},{4338,2277,3}, {4335,2280,3},{4333,2283,3},{4328,2285,3},{4323,2290,3},{4320,2300,3},{4310,2297,3}, {4308,2292,3},{4305,2290,3},{4300,2285,3},{4298,2278,3},{4293,2277,3},{4290,2275,3}, {4287,2267,3},{4290,2260,3},{4287,2257,3},{4288,2253,3},{4282,2245,3},{4273,2250,3}, {4270,2247,3},{4268,2247,3},{4257,2243,3},{4252,2255,3},{4248,2255,3},{4240,2252,3}, {4240,2248,3},{4233,2245,3},{4232,2237,3},{4235,2230,3},{4233,2225,3},{4230,2218,3}, {4228,2212,3},{4230,2210,3},{4228,2203,3},{4228,2202,3},{4228,2200,3},{4230,2198,3}, {4230,2192,3},{4230,2185,3},{4232,2178,3},{4227,2175,3},{4223,2172,3},{4222,2165,3}, {4222,2158,3},{4220,2152,3},{4222,2143,3},{4222,2137,3},{4217,2133,3},{4213,2128,3}, {4212,2128,3},{4207,2132,3},{4207,2130,3},{4207,2128,3},{4207,2127,3},{4210,2120,3}, {4213,2117,3},{4218,2113,3},{4217,2107,3},{4213,2100,3},{4212,2093,3},{4208,2088,3}, {4207,2082,3},{4205,2078,3},{4203,2072,3},{4202,2073,3},{4197,2073,3},{4192,2073,3}, {4192,2075,3},{4188,2073,3},{4187,2073,3},{4183,2067,3},{4178,2065,3},{4178,2057,3}, {4187,2057,3},{4188,2060,3},{4192,2058,3},{4193,2062,3},{4197,2062,3},{4205,2060,3}, {4207,2057,3},{4213,2057,3},{4222,2052,3},{4227,2045,3},{4232,2035,3},{4233,2035,3}, {4233,2025,3},{4238,2023,3},{4240,2022,3},{4243,2022,3},{4252,2017,3},{4257,2005,3}, {4255,2002,3},{4252,2000,3},{4252,1993,3},{4248,1990,3},{4247,1983,3},{4252,1977,3}, {4258,1975,3},{4260,1977,3},{4263,1975,3},{4267,1972,3},{4262,1965,3},{4257,1962,3}, {4255,1962,3},{4252,1957,3},{4247,1955,3},{4240,1947,3},{4238,1943,3},{4233,1942,3}, {4218,1928,3},{4210,1940,3},{4208,1938,3},{4203,1937,3},{4197,1938,3},{4195,1935,3}, {4193,1937,3},{4190,1933,3},{4188,1937,3},{4185,1937,3},{4190,1928,3},{4192,1922,3}, {4195,1915,3},{4198,1913,3},{4198,1915,3},{4205,1913,3},{4208,1907,3},{4210,1908,3}, {4213,1905,3},{4213,1900,3},{4217,1900,3},{4222,1890,3},{4228,1888,3},{4227,1878,3}, {4228,1877,3},{4232,1872,3},{4238,1868,3},{4237,1862,3},{4238,1858,3},{4242,1855,3}, {4243,1857,3},{4240,1870,3},{4248,1868,3},{4243,1862,3},{4245,1852,3},{3968,2002,131}, {3970,1998,3},{3975,2000,3},{3975,1998,3},{3977,2000,3},{3987,2002,3},{3990,1992,3}, {3993,1993,3},{4003,1987,3},{4005,1983,3},{4005,1980,3},{4007,1978,3},{4007,1977,3}, {4010,1975,3},{4013,1965,3},{4022,1947,3},{4030,1938,3},{4037,1935,3},{4042,1928,3}, {4043,1932,3},{4042,1935,3},{4038,1940,3},{4033,1942,3},{4035,1948,3},{4043,1948,3}, {4053,1938,3},{4050,1943,3},{4053,1945,3},{4057,1945,3},{4058,1940,3},{4057,1938,3}, {4055,1938,3},{4057,1938,3},{4065,1930,3},{4070,1935,3},{4080,1937,3},{4082,1940,3}, {4085,1940,3},{4087,1942,3},{4090,1938,3},{4095,1945,3},{4093,1942,3},{4090,1943,3}, {4087,1943,3},{4088,1943,3},{4087,1943,3},{4092,1952,3},{4100,1950,3},{4092,1945,3}, {4098,1947,3},{4100,1947,3},{4102,1943,3},{4110,1945,3},{4113,1943,3},{4115,1947,3}, {4125,1952,3},{4130,1950,3},{4130,1943,3},{4133,1942,3},{4138,1942,3},{4140,1938,3}, {4140,1940,3},{4140,1945,3},{4143,1945,3},{4145,1948,3},{4150,1952,3},{4153,1952,3}, {4155,1947,3},{4158,1945,3},{4157,1950,3},{4158,1957,3},{4162,1958,3},{4160,1960,3}, {4160,1962,3},{4163,1960,3},{4165,1957,3},{4170,1958,3},{4175,1957,3},{4177,1960,3}, {4182,1960,3},{4187,1943,3},{4185,1937,3},{4188,1937,3},{4190,1933,3},{4193,1937,3}, {4195,1935,3},{4197,1938,3},{4203,1937,3},{4208,1938,3},{4210,1940,3},{4218,1928,3}, {4233,1942,3},{4238,1943,3},{4240,1947,3},{4247,1955,3},{4252,1957,3},{4255,1962,3}, {4257,1962,3},{4262,1965,3},{4267,1972,3},{4263,1975,3},{4260,1977,3},{4258,1975,3}, {4252,1977,3},{4247,1983,3},{4248,1990,3},{4252,1993,3},{4252,2000,3},{4255,2002,3}, {4257,2005,3},{4252,2017,3},{4243,2022,3},{4240,2022,3},{4238,2023,3},{4233,2025,3}, {4233,2035,3},{4232,2035,3},{4227,2045,3},{4222,2052,3},{4213,2057,3},{4207,2057,3}, {4205,2060,3},{4197,2062,3},{4193,2062,3},{4192,2058,3},{4188,2060,3},{4187,2057,3}, {4178,2057,3},{4178,2053,3},{4173,2052,3},{4170,2053,3},{4165,2053,3},{4158,2055,3}, {4155,2047,3},{4153,2045,3},{4148,2050,3},{4143,2052,3},{4140,2057,3},{4137,2055,3}, {4135,2052,3},{4135,2050,3},{4133,2050,3},{4123,2052,3},{4113,2060,3},{4112,2058,3}, {4110,2060,3},{4108,2067,3},{4092,2073,3},{4090,2080,3},{4092,2083,3},{4093,2085,3}, {4092,2095,3},{4090,2098,3},{4085,2098,3},{4080,2098,3},{4077,2097,3},{4068,2105,3}, {4057,2105,3},{4052,2098,3},{4047,2095,3},{4047,2092,3},{4048,2085,3},{4045,2083,3}, {4043,2078,3},{4037,2078,3},{4033,2075,3},{4032,2077,3},{4030,2073,3},{4028,2072,3}, {4022,2072,3},{4018,2068,3},{4015,2068,3},{4010,2067,3},{4007,2058,3},{4007,2055,3}, {4008,2052,3},{4007,2045,3},{4005,2042,3},{4000,2040,3},{4000,2032,3},{3995,2033,3}, {3992,2033,3},{3992,2037,3},{3982,2042,3},{3980,2042,3},{3978,2038,3},{3980,2035,3}, {3980,2028,3},{3977,2030,3},{3973,2032,3},{3970,2027,3},{3967,2027,3},{3968,2023,3}, {3965,2022,3},{3965,2020,3},{3965,2013,3},{3968,2007,3},{3968,2002,3},{4295,1752,131}, {4295,1763,3},{4297,1770,3},{4302,1768,3},{4307,1765,3},{4308,1765,3},{4310,1763,3}, {4312,1762,3},{4310,1758,3},{4310,1755,3},{4313,1750,3},{4317,1745,3},{4320,1740,3}, {4323,1735,3},{4327,1728,3},{4332,1727,3},{4337,1727,3},{4342,1727,3},{4347,1727,3}, {4348,1722,3},{4355,1722,3},{4357,1722,3},{4358,1722,3},{4357,1715,3},{4357,1708,3}, {4357,1707,3},{4360,1702,3},{4363,1697,3},{4363,1695,3},{4368,1692,3},{4372,1687,3}, {4377,1682,3},{4380,1678,3},{4385,1675,3},{4388,1672,3},{4392,1665,3},{4395,1660,3}, {4400,1658,3},{4403,1653,3},{4407,1647,3},{4408,1645,3},{4410,1638,3},{4412,1632,3}, {4417,1628,3},{4422,1625,3},{4427,1623,3},{4432,1620,3},{4433,1620,3},{4437,1615,3}, {4438,1613,3},{4443,1615,3},{4448,1615,3},{4453,1613,3},{4453,1612,3},{4455,1612,3}, {4455,1610,3},{4453,1603,3},{4457,1598,3},{4462,1595,3},{4465,1590,3},{4467,1585,3}, {4470,1580,3},{4475,1582,3},{4480,1582,3},{4483,1577,3},{4487,1570,3},{4492,1568,3}, {4497,1572,3},{4500,1575,3},{4505,1575,3},{4510,1577,3},{4515,1577,3},{4520,1573,3}, {4522,1572,3},{4523,1572,3},{4522,1578,3},{4523,1585,3},{4523,1588,3},{4520,1595,3}, {4520,1600,3},{4515,1603,3},{4510,1607,3},{4507,1608,3},{4505,1613,3},{4503,1620,3}, {4500,1627,3},{4500,1630,3},{4502,1637,3},{4507,1640,3},{4512,1643,3},{4515,1648,3}, {4520,1652,3},{4520,1658,3},{4520,1662,3},{4518,1667,3},{4518,1675,3},{4517,1682,3}, {4520,1688,3},{4525,1692,3},{4523,1693,3},{4523,1692,3},{4522,1693,3},{4523,1697,3}, {4522,1700,3},{4518,1705,3},{4515,1710,3},{4513,1717,3},{4512,1720,3},{4512,1722,3}, {4517,1728,3},{4513,1733,3},{4512,1733,3},{4512,1735,3},{4512,1742,3},{4512,1743,3}, {4510,1743,3},{4510,1748,3},{4510,1755,3},{4510,1762,3},{4512,1765,3},{4508,1772,3}, {4505,1777,3},{4502,1783,3},{4505,1790,3},{4508,1795,3},{4513,1800,3},{4513,1802,3}, {4513,1803,3},{4512,1805,3},{4510,1805,3},{4508,1812,3},{4508,1818,3},{4512,1823,3}, {4512,1825,3},{4510,1832,3},{4508,1838,3},{4510,1840,3},{4510,1842,3},{4505,1845,3}, {4503,1852,3},{4507,1855,3},{4508,1858,3},{4508,1860,3},{4507,1862,3},{4507,1860,3}, {4505,1862,3},{4505,1863,3},{4505,1865,3},{4507,1865,3},{4507,1867,3},{4508,1867,3}, {4503,1870,3},{4502,1872,3},{4500,1875,3},{4500,1877,3},{4495,1878,3},{4493,1877,3}, {4493,1875,3},{4490,1875,3},{4487,1882,3},{4485,1887,3},{4485,1895,3},{4485,1898,3}, {4487,1907,3},{4490,1913,3},{4493,1918,3},{4492,1922,3},{4492,1928,3},{4490,1935,3}, {4488,1937,3},{4483,1937,3},{4478,1937,3},{4473,1935,3},{4468,1932,3},{4465,1928,3}, {4460,1925,3},{4457,1920,3},{4455,1918,3},{4452,1918,3},{4448,1913,3},{4443,1915,3}, {4438,1913,3},{4433,1915,3},{4430,1917,3},{4428,1923,3},{4428,1932,3},{4427,1933,3}, {4422,1938,3},{4417,1940,3},{4415,1945,3},{4415,1947,3},{4415,1948,3},{4412,1950,3}, {4408,1955,3},{4407,1957,3},{4407,1960,3},{4408,1962,3},{4403,1963,3},{4398,1960,3}, {4395,1955,3},{4393,1953,3},{4395,1945,3},{4397,1938,3},{4398,1933,3},{4402,1927,3}, {4397,1927,3},{4392,1932,3},{4388,1937,3},{4383,1940,3},{4380,1945,3},{4375,1948,3}, {4372,1953,3},{4367,1953,3},{4362,1953,3},{4357,1952,3},{4355,1945,3},{4353,1945,3}, {4353,1943,3},{4355,1942,3},{4357,1942,3},{4358,1942,3},{4360,1942,3},{4358,1935,3}, {4358,1932,3},{4353,1928,3},{4352,1930,3},{4352,1932,3},{4350,1930,3},{4352,1923,3}, {4350,1917,3},{4348,1913,3},{4352,1907,3},{4352,1900,3},{4352,1898,3},{4352,1897,3}, {4347,1900,3},{4343,1905,3},{4340,1910,3},{4335,1913,3},{4335,1915,3},{4333,1917,3}, {4332,1917,3},{4327,1912,3},{4323,1907,3},{4322,1905,3},{4322,1903,3},{4323,1902,3}, {4327,1897,3},{4328,1895,3},{4332,1895,3},{4333,1893,3},{4335,1892,3},{4335,1888,3}, {4333,1887,3},{4332,1887,3},{4330,1880,3},{4327,1873,3},{4322,1873,3},{4320,1875,3}, {4315,1873,3},{4312,1870,3},{4307,1873,3},{4302,1875,3},{4300,1867,3},{4300,1860,3}, {4298,1853,3},{4293,1850,3},{4288,1855,3},{4287,1850,3},{4282,1847,3},{4278,1847,3}, {4275,1852,3},{4272,1857,3},{4272,1858,3},{4267,1860,3},{4262,1860,3},{4257,1858,3}, {4252,1857,3},{4248,1857,3},{4245,1852,3},{4243,1852,3},{4245,1848,3},{4250,1843,3}, {4255,1842,3},{4260,1838,3},{4262,1833,3},{4262,1825,3},{4265,1820,3},{4267,1815,3}, {4272,1812,3},{4275,1807,3},{4278,1802,3},{4282,1795,3},{4285,1790,3},{4290,1788,3}, {4292,1788,3},{4292,1785,3},{4292,1783,3},{4290,1780,3},{4292,1773,3},{4290,1767,3}, {4288,1767,3},{4293,1755,3},{4292,1762,3},{4293,1760,3},{4295,1752,3},{4288,1767,131}, {4290,1767,3},{4292,1773,3},{4290,1780,3},{4292,1783,3},{4292,1785,3},{4292,1788,3}, {4290,1788,3},{4285,1790,3},{4282,1795,3},{4278,1802,3},{4275,1807,3},{4272,1812,3}, {4267,1815,3},{4265,1820,3},{4262,1825,3},{4262,1833,3},{4260,1838,3},{4255,1842,3}, {4250,1843,3},{4245,1848,3},{4243,1852,3},{4245,1852,3},{4240,1852,3},{4245,1847,3}, {4245,1842,3},{4248,1838,3},{4257,1823,3},{4258,1822,3},{4260,1823,3},{4262,1820,3}, {4265,1807,3},{4267,1805,3},{4267,1807,3},{4270,1805,3},{4268,1803,3},{4270,1800,3}, {4277,1788,3},{4278,1788,3},{4282,1780,3},{4280,1777,3},{4282,1772,3},{4278,1775,3}, {4287,1745,3},{4288,1745,3},{4292,1742,3},{4292,1737,3},{4298,1722,3},{4298,1712,3}, {4300,1702,3},{4302,1703,3},{4305,1700,3},{4305,1702,3},{4302,1707,3},{4302,1723,3}, {4300,1730,3},{4295,1743,3},{4292,1747,3},{4290,1757,3},{4283,1773,3},{4285,1770,3}, {4288,1772,3},{4287,1770,3},{4288,1767,3},{4295,1752,131},{4300,1747,3}, {4303,1750,3},{4302,1743,3},{4303,1745,3},{4303,1743,3},{4307,1742,3},{4303,1740,3}, {4312,1733,3},{4317,1717,3},{4323,1710,3},{4323,1707,3},{4340,1688,3},{4342,1675,3}, {4345,1668,3},{4343,1663,3},{4350,1653,3},{4352,1640,3},{4353,1647,3},{4355,1643,3}, {4355,1632,3},{4352,1618,3},{4352,1613,3},{4352,1612,3},{4350,1617,3},{4348,1617,3}, {4348,1612,3},{4348,1610,3},{4350,1595,3},{4352,1595,3},{4352,1598,3},{4355,1598,3}, {4355,1593,3},{4357,1595,3},{4357,1592,3},{4358,1593,3},{4363,1592,3},{4363,1597,3}, {4365,1590,3},{4365,1595,3},{4367,1593,3},{4368,1595,3},{4367,1593,3},{4370,1588,3}, {4375,1578,3},{4377,1570,3},{4380,1567,3},{4382,1562,3},{4380,1568,3},{4393,1545,3}, {4403,1533,3},{4407,1528,3},{4410,1527,3},{4413,1520,3},{4415,1520,3},{4418,1515,3}, {4423,1517,3},{4427,1512,3},{4428,1512,3},{4428,1515,3},{4425,1518,3},{4425,1520,3}, {4428,1518,3},{4428,1520,3},{4430,1520,3},{4425,1528,3},{4428,1528,3},{4428,1530,3}, {4433,1527,3},{4427,1542,3},{4427,1543,3},{4425,1552,3},{4427,1553,3},{4428,1552,3}, {4428,1545,3},{4432,1542,3},{4437,1528,3},{4452,1510,3},{4458,1498,3},{4472,1488,3}, {4485,1488,3},{4497,1492,3},{4512,1485,3},{4515,1472,3},{4523,1462,3},{4527,1457,3}, {4528,1458,3},{4530,1457,3},{4530,1453,3},{4528,1455,3},{4530,1450,3},{4532,1448,3}, {4535,1433,3},{4530,1428,3},{4515,1423,3},{4512,1420,3},{4513,1418,3},{4510,1420,3}, {4508,1415,3},{4505,1415,3},{4498,1417,3},{4497,1415,3},{4497,1410,3},{4495,1407,3}, {4498,1408,3},{4503,1405,3},{4500,1403,3},{4498,1407,3},{4495,1405,3},{4495,1403,3}, {4492,1403,3},{4492,1402,3},{4490,1402,3},{4490,1398,3},{4488,1400,3},{4482,1397,3}, {4480,1400,3},{4482,1393,3},{4483,1392,3},{4482,1388,3},{4482,1392,3},{4477,1392,3}, {4477,1390,3},{4482,1390,3},{4482,1385,3},{4485,1385,3},{4487,1380,3},{4487,1383,3}, {4488,1385,3},{4490,1380,3},{4492,1380,3},{4497,1378,3},{4503,1368,3},{4505,1368,3}, {4507,1363,3},{4510,1363,3},{4512,1360,3},{4513,1362,3},{4513,1373,3},{4513,1360,3}, {4520,1358,3},{4525,1360,3},{4527,1358,3},{4528,1360,3},{4530,1358,3},{4532,1360,3}, {4533,1353,3},{4537,1355,3},{4548,1350,3},{4550,1350,3},{4548,1358,3},{4548,1360,3}, {4545,1365,3},{4545,1367,3},{4543,1368,3},{4543,1370,3},{4545,1377,3},{4547,1383,3}, {4547,1385,3},{4545,1392,3},{4545,1395,3},{4545,1397,3},{4545,1398,3},{4545,1400,3}, {4550,1402,3},{4552,1402,3},{4552,1403,3},{4553,1405,3},{4548,1410,3},{4548,1417,3}, {4547,1423,3},{4548,1428,3},{4548,1430,3},{4547,1430,3},{4547,1432,3},{4548,1437,3}, {4550,1445,3},{4553,1450,3},{4557,1457,3},{4560,1458,3},{4562,1458,3},{4563,1458,3}, {4558,1465,3},{4555,1470,3},{4552,1473,3},{4548,1478,3},{4547,1482,3},{4547,1488,3}, {4548,1492,3},{4550,1492,3},{4548,1498,3},{4547,1503,3},{4543,1508,3},{4542,1515,3}, {4543,1522,3},{4545,1528,3},{4547,1537,3},{4552,1533,3},{4555,1530,3},{4562,1530,3}, {4563,1530,3},{4563,1538,3},{4563,1540,3},{4565,1542,3},{4568,1537,3},{4570,1537,3}, {4572,1535,3},{4570,1533,3},{4568,1532,3},{4570,1525,3},{4570,1523,3},{4573,1523,3}, {4575,1528,3},{4578,1535,3},{4582,1542,3},{4583,1548,3},{4583,1555,3},{4583,1563,3}, {4583,1565,3},{4583,1567,3},{4583,1568,3},{4588,1568,3},{4592,1572,3},{4598,1572,3}, {4603,1572,3},{4605,1572,3},{4608,1567,3},{4612,1560,3},{4615,1563,3},{4620,1567,3}, {4622,1567,3},{4622,1575,3},{4622,1578,3},{4625,1583,3},{4628,1590,3},{4630,1597,3}, {4633,1602,3},{4635,1608,3},{4638,1613,3},{4637,1620,3},{4637,1628,3},{4637,1630,3}, {4642,1630,3},{4647,1630,3},{4652,1630,3},{4653,1630,3},{4653,1637,3},{4653,1640,3}, {4652,1645,3},{4653,1652,3},{4650,1653,3},{4647,1667,3},{4640,1672,3},{4640,1675,3}, {4638,1675,3},{4640,1680,3},{4637,1682,3},{4638,1683,3},{4633,1688,3},{4628,1688,3}, {4625,1693,3},{4618,1710,3},{4618,1715,3},{4615,1718,3},{4612,1718,3},{4610,1723,3}, {4608,1720,3},{4608,1723,3},{4607,1723,3},{4607,1727,3},{4603,1725,3},{4603,1730,3}, {4602,1725,3},{4602,1730,3},{4598,1730,3},{4598,1732,3},{4597,1732,3},{4600,1733,3}, {4598,1735,3},{4600,1737,3},{4597,1737,3},{4597,1738,3},{4597,1735,3},{4595,1737,3}, {4595,1738,3},{4593,1738,3},{4593,1743,3},{4595,1743,3},{4595,1745,3},{4593,1758,3}, {4590,1763,3},{4583,1767,3},{4582,1783,3},{4577,1787,3},{4578,1790,3},{4578,1800,3}, {4577,1808,3},{4578,1815,3},{4578,1820,3},{4577,1828,3},{4577,1837,3},{4575,1840,3}, {4577,1847,3},{4580,1848,3},{4580,1857,3},{4585,1862,3},{4592,1867,3},{4592,1872,3}, {4588,1880,3},{4587,1883,3},{4582,1883,3},{4577,1885,3},{4575,1887,3},{4572,1892,3}, {4568,1897,3},{4563,1895,3},{4558,1892,3},{4553,1892,3},{4553,1893,3},{4555,1900,3}, {4553,1905,3},{4552,1912,3},{4550,1910,3},{4550,1908,3},{4550,1907,3},{4548,1900,3}, {4547,1900,3},{4543,1902,3},{4538,1898,3},{4535,1903,3},{4532,1910,3},{4528,1915,3}, {4528,1923,3},{4528,1925,3},{4528,1927,3},{4523,1928,3},{4523,1937,3},{4527,1943,3}, {4522,1947,3},{4518,1940,3},{4518,1933,3},{4517,1930,3},{4517,1928,3},{4518,1920,3}, {4517,1922,3},{4512,1922,3},{4512,1920,3},{4510,1917,3},{4512,1910,3},{4510,1910,3}, {4505,1912,3},{4500,1908,3},{4495,1905,3},{4495,1907,3},{4497,1907,3},{4497,1908,3}, {4495,1910,3},{4493,1908,3},{4490,1903,3},{4485,1898,3},{4485,1895,3},{4485,1887,3}, {4487,1882,3},{4490,1875,3},{4493,1875,3},{4493,1877,3},{4495,1878,3},{4500,1877,3}, {4500,1875,3},{4502,1872,3},{4503,1870,3},{4508,1867,3},{4507,1867,3},{4507,1865,3}, {4505,1865,3},{4505,1863,3},{4505,1862,3},{4507,1860,3},{4507,1862,3},{4508,1860,3}, {4508,1858,3},{4507,1855,3},{4503,1852,3},{4505,1845,3},{4510,1842,3},{4510,1840,3}, {4508,1838,3},{4510,1832,3},{4512,1825,3},{4512,1823,3},{4508,1818,3},{4508,1812,3}, {4510,1805,3},{4512,1805,3},{4513,1803,3},{4513,1802,3},{4513,1800,3},{4508,1795,3}, {4505,1790,3},{4502,1783,3},{4505,1777,3},{4508,1772,3},{4512,1765,3},{4510,1762,3}, {4510,1755,3},{4510,1748,3},{4510,1743,3},{4512,1743,3},{4512,1742,3},{4512,1735,3}, {4512,1733,3},{4513,1733,3},{4517,1728,3},{4512,1722,3},{4512,1720,3},{4513,1717,3}, {4515,1710,3},{4518,1705,3},{4522,1700,3},{4523,1697,3},{4522,1693,3},{4523,1692,3}, {4523,1693,3},{4525,1692,3},{4520,1688,3},{4517,1682,3},{4518,1675,3},{4518,1667,3}, {4520,1662,3},{4520,1658,3},{4520,1652,3},{4515,1648,3},{4512,1643,3},{4507,1640,3}, {4502,1637,3},{4500,1630,3},{4500,1627,3},{4503,1620,3},{4505,1613,3},{4507,1608,3}, {4510,1607,3},{4515,1603,3},{4520,1600,3},{4520,1595,3},{4523,1588,3},{4523,1585,3}, {4522,1578,3},{4523,1572,3},{4522,1572,3},{4520,1573,3},{4515,1577,3},{4510,1577,3}, {4505,1575,3},{4500,1575,3},{4497,1572,3},{4492,1568,3},{4487,1570,3},{4483,1577,3}, {4480,1582,3},{4475,1582,3},{4470,1580,3},{4467,1585,3},{4465,1590,3},{4462,1595,3}, {4457,1598,3},{4453,1603,3},{4455,1610,3},{4455,1612,3},{4453,1612,3},{4453,1613,3}, {4448,1615,3},{4443,1615,3},{4438,1613,3},{4437,1615,3},{4433,1620,3},{4432,1620,3}, {4427,1623,3},{4422,1625,3},{4417,1628,3},{4412,1632,3},{4410,1638,3},{4408,1645,3}, {4407,1647,3},{4403,1653,3},{4400,1658,3},{4395,1660,3},{4392,1665,3},{4388,1672,3}, {4385,1675,3},{4380,1678,3},{4377,1682,3},{4372,1687,3},{4368,1692,3},{4363,1695,3}, {4363,1697,3},{4360,1702,3},{4357,1707,3},{4357,1708,3},{4357,1715,3},{4358,1722,3}, {4357,1722,3},{4355,1722,3},{4348,1722,3},{4347,1727,3},{4342,1727,3},{4337,1727,3}, {4332,1727,3},{4327,1728,3},{4323,1735,3},{4320,1740,3},{4317,1745,3},{4313,1750,3}, {4310,1755,3},{4310,1758,3},{4312,1762,3},{4310,1763,3},{4308,1765,3},{4307,1765,3}, {4302,1768,3},{4297,1770,3},{4295,1763,3},{4295,1752,3},{4687,1610,131}, {4693,1620,3},{4695,1625,3},{4700,1628,3},{4702,1630,3},{4700,1630,3},{4702,1640,3}, {4700,1643,3},{4700,1652,3},{4703,1648,3},{4703,1645,3},{4705,1652,3},{4710,1647,3}, {4713,1653,3},{4715,1653,3},{4715,1645,3},{4718,1647,3},{4722,1642,3},{4725,1643,3}, {4727,1647,3},{4728,1650,3},{4733,1647,3},{4735,1645,3},{4742,1645,3},{4742,1648,3}, {4740,1650,3},{4742,1652,3},{4742,1658,3},{4743,1662,3},{4747,1667,3},{4750,1665,3}, {4752,1670,3},{4755,1672,3},{4757,1667,3},{4762,1667,3},{4763,1665,3},{4763,1658,3}, {4767,1643,3},{4770,1645,3},{4768,1648,3},{4772,1655,3},{4775,1655,3},{4777,1663,3}, {4773,1672,3},{4772,1673,3},{4768,1677,3},{4768,1682,3},{4772,1685,3},{4772,1687,3}, {4768,1688,3},{4768,1690,3},{4772,1710,3},{4773,1707,3},{4778,1707,3},{4780,1705,3}, {4782,1707,3},{4787,1702,3},{4788,1708,3},{4793,1710,3},{4797,1712,3},{4798,1710,3}, {4800,1715,3},{4802,1718,3},{4803,1723,3},{4800,1727,3},{4800,1733,3},{4788,1747,3}, {4787,1753,3},{4783,1757,3},{4783,1762,3},{4777,1772,3},{4775,1778,3},{4777,1798,3}, {4773,1830,3},{4777,1845,3},{4775,1850,3},{4777,1855,3},{4777,1867,3},{4782,1875,3}, {4782,1885,3},{4783,1885,3},{4788,1877,3},{4797,1877,3},{4798,1875,3},{4800,1882,3}, {4805,1885,3},{4805,1895,3},{4807,1903,3},{4805,1907,3},{4805,1923,3},{4807,1927,3}, {4808,1937,3},{4808,1947,3},{4820,1952,3},{4823,1963,3},{4823,1967,3},{4820,1970,3}, {4820,1978,3},{4815,1978,3},{4815,1988,3},{4813,1992,3},{4822,2013,3},{4827,2015,3}, {4827,2023,3},{4828,2025,3},{4825,2028,3},{4827,2030,3},{4828,2033,3},{4835,2040,3}, {4843,2043,3},{4848,2050,3},{4853,2050,3},{4858,2082,3},{4855,2087,3},{4855,2092,3}, {4852,2095,3},{4852,2107,3},{4848,2112,3},{4852,2117,3},{4853,2123,3},{4852,2128,3}, {4855,2132,3},{4857,2145,3},{4855,2152,3},{4850,2155,3},{4850,2162,3},{4845,2163,3}, {4837,2172,3},{4833,2178,3},{4833,2182,3},{4837,2185,3},{4838,2193,3},{4838,2210,3}, {4842,2215,3},{4840,2227,3},{4837,2227,3},{4837,2232,3},{4832,2232,3},{4825,2238,3}, {4825,2250,3},{4820,2255,3},{4820,2258,3},{4818,2257,3},{4810,2262,3},{4812,2280,3}, {4805,2288,3},{4798,2285,3},{4795,2290,3},{4790,2285,3},{4788,2277,3},{4783,2277,3}, {4783,2272,3},{4778,2265,3},{4777,2255,3},{4780,2247,3},{4778,2243,3},{4775,2242,3}, {4773,2238,3},{4775,2233,3},{4773,2228,3},{4768,2223,3},{4760,2218,3},{4758,2212,3}, {4752,2202,3},{4738,2202,3},{4735,2193,3},{4730,2187,3},{4727,2187,3},{4723,2183,3}, {4718,2185,3},{4717,2180,3},{4712,2178,3},{4708,2172,3},{4703,2165,3},{4700,2170,3}, {4698,2167,3},{4695,2167,3},{4692,2160,3},{4685,2160,3},{4683,2155,3},{4682,2152,3}, {4675,2148,3},{4673,2153,3},{4672,2152,3},{4668,2148,3},{4668,2145,3},{4665,2145,3}, {4662,2140,3},{4662,2133,3},{4655,2132,3},{4650,2127,3},{4645,2130,3},{4642,2130,3}, {4640,2122,3},{4638,2120,3},{4630,2118,3},{4628,2112,3},{4625,2108,3},{4623,2105,3}, {4627,2102,3},{4625,2098,3},{4627,2095,3},{4625,2092,3},{4627,2087,3},{4627,2082,3}, {4623,2075,3},{4620,2077,3},{4620,2072,3},{4617,2072,3},{4613,2063,3},{4617,2055,3}, {4618,2048,3},{4615,2047,3},{4617,2035,3},{4615,2028,3},{4612,2027,3},{4615,2020,3}, {4615,2015,3},{4617,2012,3},{4615,2005,3},{4617,2002,3},{4617,1997,3},{4615,1985,3}, {4613,1980,3},{4617,1972,3},{4617,1957,3},{4615,1952,3},{4612,1952,3},{4610,1948,3}, {4607,1947,3},{4607,1942,3},{4603,1940,3},{4603,1930,3},{4598,1928,3},{4598,1915,3}, {4602,1913,3},{4603,1910,3},{4602,1907,3},{4597,1907,3},{4597,1902,3},{4595,1900,3}, {4593,1900,3},{4593,1892,3},{4592,1888,3},{4592,1883,3},{4592,1882,3},{4588,1880,3}, {4592,1872,3},{4592,1867,3},{4585,1862,3},{4580,1857,3},{4580,1848,3},{4577,1847,3}, {4575,1840,3},{4577,1837,3},{4577,1828,3},{4578,1820,3},{4578,1815,3},{4577,1808,3}, {4578,1800,3},{4578,1790,3},{4577,1787,3},{4582,1783,3},{4583,1767,3},{4590,1763,3}, {4593,1758,3},{4595,1745,3},{4595,1743,3},{4593,1743,3},{4593,1738,3},{4595,1738,3}, {4595,1737,3},{4597,1735,3},{4597,1738,3},{4597,1737,3},{4600,1737,3},{4598,1735,3}, {4600,1733,3},{4597,1732,3},{4598,1732,3},{4598,1730,3},{4602,1730,3},{4602,1725,3}, {4603,1730,3},{4603,1725,3},{4607,1727,3},{4607,1723,3},{4608,1723,3},{4608,1720,3}, {4610,1723,3},{4612,1718,3},{4615,1718,3},{4618,1715,3},{4618,1710,3},{4625,1693,3}, {4628,1688,3},{4633,1688,3},{4638,1683,3},{4637,1682,3},{4640,1680,3},{4638,1675,3}, {4640,1675,3},{4640,1672,3},{4647,1667,3},{4650,1653,3},{4653,1652,3},{4657,1652,3}, {4657,1648,3},{4662,1645,3},{4665,1638,3},{4667,1638,3},{4667,1642,3},{4668,1643,3}, {4670,1638,3},{4672,1638,3},{4672,1637,3},{4675,1632,3},{4680,1632,3},{4680,1633,3}, {4685,1635,3},{4687,1630,3},{4688,1623,3},{4687,1610,3},{4707,958,131}, {4710,963,3},{4713,963,3},{4715,962,3},{4717,957,3},{4722,958,3},{4727,953,3}, {4737,962,3},{4738,967,3},{4742,965,3},{4745,965,3},{4747,960,3},{4750,957,3}, {4753,957,3},{4758,975,3},{4760,978,3},{4758,982,3},{4755,982,3},{4753,985,3}, {4755,988,3},{4753,992,3},{4755,997,3},{4753,997,3},{4748,1000,3},{4750,1005,3}, {4743,1010,3},{4742,1007,3},{4737,1010,3},{4737,1012,3},{4737,1015,3},{4738,1018,3}, {4738,1023,3},{4733,1020,3},{4732,1022,3},{4730,1018,3},{4727,1017,3},{4728,1023,3}, {4732,1033,3},{4737,1038,3},{4738,1043,3},{4743,1047,3},{4748,1047,3},{4750,1043,3}, {4755,1045,3},{4758,1043,3},{4758,1047,3},{4758,1048,3},{4755,1047,3},{4753,1050,3}, {4753,1057,3},{4757,1060,3},{4755,1075,3},{4752,1077,3},{4753,1088,3},{4752,1092,3}, {4748,1087,3},{4748,1092,3},{4743,1098,3},{4742,1097,3},{4740,1098,3},{4740,1112,3}, {4743,1122,3},{4743,1123,3},{4740,1123,3},{4740,1128,3},{4745,1133,3},{4745,1140,3}, {4747,1140,3},{4748,1138,3},{4752,1143,3},{4752,1150,3},{4752,1157,3},{4758,1160,3}, {4760,1163,3},{4758,1168,3},{4758,1183,3},{4760,1185,3},{4762,1200,3},{4762,1220,3}, {4763,1220,3},{4770,1218,3},{4775,1225,3},{4770,1223,3},{4768,1225,3},{4770,1233,3}, {4768,1237,3},{4770,1245,3},{4768,1245,3},{4767,1245,3},{4763,1252,3},{4765,1258,3}, {4767,1260,3},{4768,1267,3},{4767,1278,3},{4765,1277,3},{4762,1283,3},{4762,1280,3}, {4758,1278,3},{4755,1282,3},{4755,1285,3},{4748,1295,3},{4748,1302,3},{4750,1305,3}, {4753,1303,3},{4757,1307,3},{4758,1305,3},{4760,1307,3},{4763,1310,3},{4768,1308,3}, {4772,1302,3},{4772,1298,3},{4772,1292,3},{4778,1293,3},{4785,1302,3},{4793,1293,3}, {4797,1288,3},{4802,1285,3},{4808,1277,3},{4812,1277,3},{4817,1283,3},{4820,1287,3}, {4822,1297,3},{4827,1302,3},{4830,1317,3},{4830,1328,3},{4837,1340,3},{4843,1343,3}, {4847,1343,3},{4852,1345,3},{4857,1343,3},{4857,1345,3},{4857,1347,3},{4857,1350,3}, {4858,1352,3},{4857,1357,3},{4857,1360,3},{4852,1373,3},{4857,1375,3},{4858,1380,3}, {4862,1382,3},{4870,1382,3},{4870,1383,3},{4873,1380,3},{4877,1383,3},{4872,1400,3}, {4867,1405,3},{4863,1402,3},{4860,1407,3},{4860,1420,3},{4857,1433,3},{4855,1433,3}, {4860,1438,3},{4860,1443,3},{4865,1447,3},{4862,1457,3},{4863,1462,3},{4860,1463,3}, {4860,1467,3},{4858,1467,3},{4858,1470,3},{4860,1472,3},{4868,1473,3},{4873,1480,3}, {4878,1482,3},{4877,1497,3},{4882,1495,3},{4892,1500,3},{4898,1498,3},{4902,1500,3}, {4902,1503,3},{4900,1515,3},{4895,1517,3},{4895,1527,3},{4900,1528,3},{4898,1532,3}, {4898,1537,3},{4895,1543,3},{4895,1547,3},{4892,1552,3},{4890,1562,3},{4887,1568,3}, {4888,1583,3},{4887,1585,3},{4887,1588,3},{4885,1588,3},{4885,1590,3},{4883,1590,3}, {4883,1595,3},{4880,1597,3},{4875,1610,3},{4873,1633,3},{4875,1633,3},{4873,1637,3}, {4875,1642,3},{4882,1647,3},{4882,1653,3},{4878,1660,3},{4878,1665,3},{4873,1670,3}, {4875,1672,3},{4872,1683,3},{4873,1688,3},{4870,1692,3},{4855,1695,3},{4847,1687,3}, {4837,1683,3},{4833,1690,3},{4828,1692,3},{4828,1695,3},{4817,1698,3},{4815,1703,3}, {4815,1707,3},{4810,1710,3},{4808,1708,3},{4803,1708,3},{4803,1715,3},{4800,1715,3}, {4798,1710,3},{4797,1712,3},{4793,1710,3},{4788,1708,3},{4787,1702,3},{4782,1707,3}, {4780,1705,3},{4778,1707,3},{4773,1707,3},{4772,1710,3},{4768,1690,3},{4768,1688,3}, {4772,1687,3},{4772,1685,3},{4768,1682,3},{4768,1677,3},{4772,1673,3},{4773,1672,3}, {4777,1663,3},{4775,1655,3},{4772,1655,3},{4768,1648,3},{4770,1645,3},{4767,1643,3}, {4763,1658,3},{4763,1665,3},{4762,1667,3},{4757,1667,3},{4755,1672,3},{4752,1670,3}, {4750,1665,3},{4747,1667,3},{4743,1662,3},{4742,1658,3},{4742,1652,3},{4740,1650,3}, {4742,1648,3},{4742,1645,3},{4735,1645,3},{4733,1647,3},{4728,1650,3},{4727,1647,3}, {4725,1643,3},{4722,1642,3},{4718,1647,3},{4715,1645,3},{4715,1653,3},{4713,1653,3}, {4710,1647,3},{4705,1652,3},{4703,1645,3},{4703,1648,3},{4700,1652,3},{4700,1643,3}, {4702,1640,3},{4700,1630,3},{4702,1630,3},{4700,1628,3},{4695,1625,3},{4693,1620,3}, {4687,1610,3},{4683,1598,3},{4675,1598,3},{4670,1603,3},{4667,1603,3},{4668,1600,3}, {4672,1587,3},{4672,1580,3},{4670,1577,3},{4672,1565,3},{4668,1565,3},{4668,1563,3}, {4667,1555,3},{4663,1553,3},{4662,1550,3},{4662,1547,3},{4665,1542,3},{4665,1527,3}, {4665,1513,3},{4665,1503,3},{4662,1498,3},{4663,1495,3},{4662,1492,3},{4660,1487,3}, {4652,1482,3},{4650,1472,3},{4645,1468,3},{4643,1458,3},{4638,1457,3},{4643,1452,3}, {4643,1445,3},{4645,1443,3},{4643,1432,3},{4645,1415,3},{4648,1412,3},{4650,1405,3}, {4648,1400,3},{4652,1392,3},{4653,1372,3},{4655,1355,3},{4657,1343,3},{4658,1338,3}, {4655,1332,3},{4655,1325,3},{4660,1315,3},{4662,1285,3},{4665,1277,3},{4663,1273,3}, {4667,1270,3},{4667,1257,3},{4670,1240,3},{4678,1235,3},{4678,1228,3},{4685,1230,3}, {4688,1227,3},{4688,1222,3},{4690,1218,3},{4692,1215,3},{4693,1217,3},{4697,1213,3}, {4702,1213,3},{4703,1220,3},{4707,1223,3},{4708,1223,3},{4710,1218,3},{4708,1210,3}, {4707,1208,3},{4705,1202,3},{4703,1192,3},{4698,1175,3},{4702,1163,3},{4700,1153,3}, {4702,1148,3},{4697,1142,3},{4700,1135,3},{4697,1118,3},{4692,1110,3},{4687,1108,3}, {4682,1107,3},{4677,1102,3},{4678,1095,3},{4677,1088,3},{4678,1085,3},{4680,1073,3}, {4683,1077,3},{4685,1072,3},{4687,1070,3},{4687,1067,3},{4685,1057,3},{4687,1047,3}, {4693,1048,3},{4700,1038,3},{4700,1035,3},{4695,1030,3},{4693,1032,3},{4693,1025,3}, {4688,1023,3},{4685,1013,3},{4687,1007,3},{4690,1002,3},{4692,997,3},{4692,993,3}, {4693,988,3},{4700,990,3},{4700,987,3},{4702,988,3},{4707,968,3},{4707,958,3}, {4548,1360,131},{4552,1360,3},{4553,1357,3},{4555,1375,3},{4557,1373,3}, {4558,1370,3},{4560,1372,3},{4558,1385,3},{4563,1392,3},{4567,1387,3},{4575,1380,3}, {4578,1372,3},{4580,1368,3},{4582,1360,3},{4585,1358,3},{4595,1363,3},{4598,1363,3}, {4600,1358,3},{4597,1355,3},{4602,1348,3},{4603,1352,3},{4607,1350,3},{4610,1360,3}, {4618,1367,3},{4618,1365,3},{4618,1357,3},{4622,1355,3},{4623,1343,3},{4622,1345,3}, {4622,1342,3},{4630,1338,3},{4633,1343,3},{4637,1343,3},{4640,1357,3},{4643,1360,3}, {4645,1368,3},{4653,1372,3},{4652,1392,3},{4648,1400,3},{4650,1405,3},{4648,1412,3}, {4645,1415,3},{4643,1432,3},{4645,1443,3},{4643,1445,3},{4643,1452,3},{4638,1457,3}, {4643,1458,3},{4645,1468,3},{4650,1472,3},{4652,1482,3},{4660,1487,3},{4662,1492,3}, {4663,1495,3},{4662,1498,3},{4665,1503,3},{4665,1513,3},{4665,1527,3},{4665,1542,3}, {4662,1547,3},{4662,1550,3},{4663,1553,3},{4667,1555,3},{4668,1563,3},{4668,1565,3}, {4672,1565,3},{4670,1577,3},{4672,1580,3},{4672,1587,3},{4668,1600,3},{4667,1603,3}, {4670,1603,3},{4675,1598,3},{4683,1598,3},{4687,1610,3},{4688,1623,3},{4687,1630,3}, {4685,1635,3},{4680,1633,3},{4680,1632,3},{4675,1632,3},{4672,1637,3},{4672,1638,3}, {4670,1638,3},{4668,1643,3},{4667,1642,3},{4667,1638,3},{4665,1638,3},{4662,1645,3}, {4657,1648,3},{4657,1652,3},{4653,1652,3},{4652,1645,3},{4653,1640,3},{4653,1637,3}, {4653,1630,3},{4652,1630,3},{4647,1630,3},{4642,1630,3},{4637,1630,3},{4637,1628,3}, {4637,1620,3},{4638,1613,3},{4635,1608,3},{4633,1602,3},{4630,1597,3},{4628,1590,3}, {4625,1583,3},{4622,1578,3},{4622,1575,3},{4622,1567,3},{4620,1567,3},{4615,1563,3}, {4612,1560,3},{4608,1567,3},{4605,1572,3},{4603,1572,3},{4598,1572,3},{4592,1572,3}, {4588,1568,3},{4583,1568,3},{4583,1567,3},{4583,1565,3},{4583,1563,3},{4583,1555,3}, {4583,1548,3},{4582,1542,3},{4578,1535,3},{4575,1528,3},{4573,1523,3},{4570,1523,3}, {4570,1525,3},{4568,1532,3},{4570,1533,3},{4572,1535,3},{4570,1537,3},{4568,1537,3}, {4565,1542,3},{4563,1540,3},{4563,1538,3},{4563,1530,3},{4562,1530,3},{4555,1530,3}, {4552,1533,3},{4547,1537,3},{4545,1528,3},{4543,1522,3},{4542,1515,3},{4543,1508,3}, {4547,1503,3},{4548,1498,3},{4550,1492,3},{4548,1492,3},{4547,1488,3},{4547,1482,3}, {4548,1478,3},{4552,1473,3},{4555,1470,3},{4558,1465,3},{4563,1458,3},{4562,1458,3}, {4560,1458,3},{4557,1457,3},{4553,1450,3},{4550,1445,3},{4548,1437,3},{4547,1432,3}, {4547,1430,3},{4548,1430,3},{4548,1428,3},{4547,1423,3},{4548,1417,3},{4548,1410,3}, {4553,1405,3},{4552,1403,3},{4552,1402,3},{4550,1402,3},{4545,1400,3},{4545,1398,3}, {4545,1397,3},{4545,1395,3},{4545,1392,3},{4547,1385,3},{4547,1383,3},{4545,1377,3}, {4543,1370,3},{4543,1368,3},{4545,1367,3},{4545,1365,3},{4548,1360,3},{4378,753,131}, {4388,750,3},{4390,755,3},{4395,757,3},{4400,765,3},{4405,767,3},{4408,770,3}, {4410,770,3},{4413,765,3},{4418,767,3},{4418,762,3},{4417,762,3},{4417,755,3}, {4413,742,3},{4413,735,3},{4415,733,3},{4415,727,3},{4418,723,3},{4418,722,3}, {4422,715,3},{4422,712,3},{4425,705,3},{4425,698,3},{4428,697,3},{4432,693,3}, {4433,693,3},{4438,688,3},{4443,688,3},{4445,693,3},{4448,687,3},{4453,685,3}, {4458,693,3},{4463,697,3},{4467,695,3},{4468,698,3},{4468,707,3},{4472,707,3}, {4475,703,3},{4480,702,3},{4483,703,3},{4487,695,3},{4487,690,3},{4487,685,3}, {4492,675,3},{4502,675,3},{4503,667,3},{4508,665,3},{4512,662,3},{4515,668,3}, {4515,673,3},{4517,677,3},{4513,685,3},{4513,688,3},{4515,690,3},{4517,688,3}, {4518,693,3},{4522,697,3},{4523,705,3},{4522,707,3},{4525,710,3},{4525,713,3}, {4533,712,3},{4533,713,3},{4542,718,3},{4543,712,3},{4548,708,3},{4552,700,3}, {4560,697,3},{4565,698,3},{4567,695,3},{4567,692,3},{4568,690,3},{4570,683,3}, {4573,682,3},{4578,680,3},{4583,682,3},{4583,687,3},{4585,687,3},{4587,697,3}, {4593,703,3},{4588,710,3},{4588,718,3},{4592,730,3},{4593,743,3},{4597,748,3}, {4597,753,3},{4598,755,3},{4598,757,3},{4598,765,3},{4595,772,3},{4593,772,3}, {4593,777,3},{4592,778,3},{4592,787,3},{4593,787,3},{4598,788,3},{4600,792,3}, {4600,802,3},{4605,803,3},{4607,803,3},{4610,805,3},{4612,810,3},{4615,815,3}, {4618,817,3},{4623,813,3},{4625,808,3},{4628,810,3},{4630,813,3},{4632,820,3}, {4637,827,3},{4638,830,3},{4640,832,3},{4642,830,3},{4645,837,3},{4647,843,3}, {4645,847,3},{4640,847,3},{4628,843,3},{4625,845,3},{4622,853,3},{4617,860,3}, {4612,862,3},{4610,870,3},{4612,875,3},{4610,877,3},{4610,882,3},{4608,885,3}, {4605,885,3},{4602,880,3},{4598,878,3},{4595,890,3},{4588,893,3},{4583,892,3}, {4585,895,3},{4583,900,3},{4582,902,3},{4583,903,3},{4592,908,3},{4593,903,3}, {4597,900,3},{4600,903,3},{4603,902,3},{4607,907,3},{4612,908,3},{4618,918,3}, {4622,920,3},{4623,925,3},{4635,930,3},{4637,928,3},{4642,928,3},{4643,925,3}, {4650,928,3},{4650,937,3},{4647,940,3},{4650,945,3},{4650,947,3},{4638,947,3}, {4637,950,3},{4632,952,3},{4630,958,3},{4630,970,3},{4637,973,3},{4635,977,3}, {4637,983,3},{4638,995,3},{4635,1000,3},{4628,1000,3},{4627,1005,3},{4623,1005,3}, {4622,1007,3},{4623,1013,3},{4627,1018,3},{4633,1010,3},{4642,1017,3},{4643,1013,3}, {4642,1008,3},{4645,1005,3},{4647,1007,3},{4648,1005,3},{4653,1005,3},{4657,1008,3}, {4662,1010,3},{4663,1023,3},{4662,1025,3},{4658,1025,3},{4658,1028,3},{4655,1030,3}, {4655,1043,3},{4653,1045,3},{4655,1047,3},{4662,1048,3},{4663,1047,3},{4665,1040,3}, {4668,1038,3},{4672,1042,3},{4673,1042,3},{4677,1045,3},{4680,1043,3},{4682,1047,3}, {4687,1047,3},{4685,1057,3},{4687,1067,3},{4687,1070,3},{4685,1072,3},{4683,1077,3}, {4680,1073,3},{4678,1085,3},{4677,1088,3},{4678,1095,3},{4677,1102,3},{4682,1107,3}, {4687,1108,3},{4692,1110,3},{4697,1118,3},{4700,1135,3},{4697,1142,3},{4702,1148,3}, {4700,1153,3},{4702,1163,3},{4698,1175,3},{4703,1192,3},{4705,1202,3},{4707,1208,3}, {4708,1210,3},{4710,1218,3},{4708,1223,3},{4707,1223,3},{4703,1220,3},{4702,1213,3}, {4697,1213,3},{4693,1217,3},{4692,1215,3},{4690,1218,3},{4688,1222,3},{4688,1227,3}, {4685,1230,3},{4678,1228,3},{4678,1235,3},{4670,1240,3},{4667,1257,3},{4667,1270,3}, {4663,1273,3},{4665,1277,3},{4662,1285,3},{4660,1315,3},{4655,1325,3},{4655,1332,3}, {4658,1338,3},{4657,1343,3},{4655,1355,3},{4653,1372,3},{4645,1368,3},{4643,1360,3}, {4640,1357,3},{4637,1343,3},{4633,1343,3},{4630,1338,3},{4622,1342,3},{4622,1345,3}, {4623,1343,3},{4622,1355,3},{4618,1357,3},{4618,1365,3},{4618,1367,3},{4610,1360,3}, {4607,1350,3},{4603,1352,3},{4602,1348,3},{4597,1355,3},{4600,1358,3},{4598,1363,3}, {4595,1363,3},{4585,1358,3},{4582,1360,3},{4580,1368,3},{4578,1372,3},{4575,1380,3}, {4567,1387,3},{4563,1392,3},{4558,1385,3},{4560,1372,3},{4562,1373,3},{4562,1380,3}, {4563,1377,3},{4563,1375,3},{4567,1375,3},{4570,1373,3},{4577,1363,3},{4578,1355,3}, {4577,1353,3},{4575,1352,3},{4573,1355,3},{4567,1340,3},{4568,1338,3},{4570,1343,3}, {4573,1340,3},{4575,1325,3},{4578,1322,3},{4577,1318,3},{4575,1315,3},{4577,1313,3}, {4577,1312,3},{4573,1312,3},{4572,1307,3},{4570,1307,3},{4568,1310,3},{4570,1315,3}, {4563,1308,3},{4563,1298,3},{4562,1290,3},{4555,1275,3},{4543,1242,3},{4548,1243,3}, {4548,1247,3},{4550,1247,3},{4550,1250,3},{4548,1250,3},{4548,1252,3},{4552,1253,3}, {4555,1258,3},{4553,1255,3},{4555,1252,3},{4557,1250,3},{4557,1248,3},{4553,1243,3}, {4552,1245,3},{4553,1238,3},{4552,1238,3},{4550,1242,3},{4550,1238,3},{4550,1237,3}, {4548,1233,3},{4545,1227,3},{4537,1225,3},{4535,1222,3},{4530,1222,3},{4532,1215,3}, {4527,1217,3},{4527,1220,3},{4530,1220,3},{4528,1223,3},{4527,1222,3},{4522,1222,3}, {4520,1225,3},{4520,1227,3},{4520,1228,3},{4523,1230,3},{4520,1230,3},{4515,1233,3}, {4510,1233,3},{4512,1232,3},{4510,1230,3},{4508,1230,3},{4508,1235,3},{4503,1238,3}, {4502,1237,3},{4502,1238,3},{4503,1238,3},{4507,1237,3},{4502,1243,3},{4503,1243,3}, {4497,1248,3},{4497,1250,3},{4498,1248,3},{4498,1252,3},{4497,1253,3},{4495,1252,3}, {4492,1252,3},{4492,1250,3},{4487,1248,3},{4482,1245,3},{4485,1243,3},{4490,1243,3}, {4490,1242,3},{4487,1238,3},{4483,1242,3},{4482,1240,3},{4482,1243,3},{4480,1242,3}, {4480,1235,3},{4485,1230,3},{4483,1228,3},{4472,1225,3},{4465,1225,3},{4460,1228,3}, {4447,1228,3},{4440,1232,3},{4435,1232,3},{4422,1238,3},{4398,1268,3},{4397,1282,3}, {4383,1305,3},{4367,1330,3},{4362,1347,3},{4363,1352,3},{4357,1357,3},{4355,1362,3}, {4350,1363,3},{4310,1385,3},{4295,1388,3},{4268,1402,3},{4253,1413,3},{4243,1427,3}, {4238,1438,3},{4225,1452,3},{4222,1457,3},{4217,1472,3},{4210,1472,3},{4208,1473,3}, {4202,1488,3},{4200,1500,3},{4195,1507,3},{4192,1517,3},{4192,1528,3},{4190,1540,3}, {4193,1563,3},{4192,1568,3},{4192,1583,3},{4195,1602,3},{4192,1615,3},{4188,1618,3}, {4178,1618,3},{4168,1603,3},{4163,1593,3},{4162,1590,3},{4152,1590,3},{4143,1598,3}, {4123,1653,3},{4120,1658,3},{4108,1705,3},{4103,1718,3},{4097,1728,3},{4090,1735,3}, {4088,1740,3},{4083,1748,3},{4077,1770,3},{4070,1783,3},{4068,1793,3},{4067,1797,3}, {4065,1795,3},{4065,1802,3},{4060,1805,3},{4055,1803,3},{4050,1813,3},{4045,1825,3}, {4028,1843,3},{4013,1852,3},{4010,1852,3},{4005,1848,3},{4003,1843,3},{4000,1842,3}, {3992,1840,3},{3982,1838,3},{3980,1837,3},{3980,1833,3},{3983,1827,3},{3983,1820,3}, {3993,1805,3},{4000,1800,3},{4000,1802,3},{4003,1802,3},{4005,1797,3},{4008,1800,3}, {4010,1802,3},{4013,1798,3},{4017,1793,3},{4025,1792,3},{4028,1787,3},{4030,1767,3}, {4030,1752,3},{4033,1743,3},{4033,1740,3},{4042,1720,3},{4045,1725,3},{4047,1723,3}, {4047,1732,3},{4050,1732,3},{4048,1727,3},{4050,1725,3},{4050,1723,3},{4048,1720,3}, {4050,1718,3},{4052,1708,3},{4050,1700,3},{4045,1692,3},{4032,1680,3},{4015,1670,3}, {4010,1662,3},{4005,1660,3},{3997,1663,3},{3987,1653,3},{3980,1648,3},{3975,1650,3}, {3972,1653,3},{3967,1653,3},{3965,1655,3},{3962,1663,3},{3962,1677,3},{3953,1688,3}, {3950,1697,3},{3948,1702,3},{3943,1705,3},{3940,1717,3},{3932,1712,3},{3927,1712,3}, {3920,1715,3},{3910,1712,3},{3905,1715,3},{3902,1720,3},{3900,1717,3},{3895,1717,3}, {3890,1710,3},{3892,1708,3},{3890,1702,3},{3892,1700,3},{3893,1697,3},{3892,1683,3}, {3890,1678,3},{3880,1660,3},{3870,1653,3},{3868,1655,3},{3857,1657,3},{3843,1657,3}, {3835,1648,3},{3830,1633,3},{3813,1617,3},{3798,1612,3},{3792,1607,3},{3792,1575,3}, {3795,1567,3},{3800,1563,3},{3803,1565,3},{3808,1563,3},{3815,1565,3},{3820,1563,3}, {3823,1563,3},{3827,1575,3},{3830,1582,3},{3852,1592,3},{3855,1592,3},{3862,1583,3}, {3863,1583,3},{3867,1585,3},{3872,1598,3},{3872,1610,3},{3872,1613,3},{3875,1618,3}, {3883,1622,3},{3892,1622,3},{3893,1622,3},{3895,1615,3},{3902,1610,3},{3913,1607,3}, {3935,1603,3},{3952,1593,3},{3955,1587,3},{3970,1580,3},{3980,1578,3},{3983,1577,3}, {3987,1578,3},{4003,1567,3},{4005,1563,3},{4007,1563,3},{4008,1557,3},{4007,1550,3}, {3998,1542,3},{4000,1537,3},{4003,1532,3},{4003,1527,3},{4005,1528,3},{4007,1527,3}, {4017,1513,3},{4017,1503,3},{4022,1498,3},{4023,1492,3},{4027,1490,3},{4028,1493,3}, {4033,1493,3},{4035,1498,3},{4040,1500,3},{4057,1490,3},{4067,1478,3},{4067,1473,3}, {4063,1468,3},{4065,1463,3},{4062,1458,3},{4062,1452,3},{4063,1448,3},{4062,1445,3}, {4057,1435,3},{4058,1432,3},{4062,1433,3},{4063,1438,3},{4067,1443,3},{4070,1448,3}, {4075,1445,3},{4077,1440,3},{4082,1432,3},{4083,1427,3},{4082,1422,3},{4080,1418,3}, {4083,1410,3},{4082,1407,3},{4078,1408,3},{4080,1405,3},{4087,1405,3},{4097,1398,3}, {4102,1392,3},{4108,1390,3},{4118,1380,3},{4125,1372,3},{4125,1360,3},{4123,1357,3}, {4122,1358,3},{4120,1357,3},{4128,1335,3},{4130,1330,3},{4127,1317,3},{4122,1310,3}, {4122,1305,3},{4130,1300,3},{4138,1292,3},{4142,1283,3},{4140,1277,3},{4147,1267,3}, {4145,1262,3},{4162,1247,3},{4168,1235,3},{4173,1223,3},{4187,1218,3},{4193,1212,3}, {4195,1203,3},{4198,1202,3},{4203,1192,3},{4203,1183,3},{4213,1175,3},{4222,1170,3}, {4230,1162,3},{4240,1138,3},{4240,1140,3},{4240,1137,3},{4240,1128,3},{4242,1127,3}, {4240,1120,3},{4237,1118,3},{4237,1115,3},{4240,1110,3},{4243,1108,3},{4245,1110,3}, {4245,1117,3},{4252,1118,3},{4257,1115,3},{4257,1112,3},{4263,1108,3},{4265,1100,3}, {4270,1098,3},{4275,1093,3},{4278,1078,3},{4280,1073,3},{4282,1077,3},{4288,1078,3}, {4292,1075,3},{4295,1067,3},{4295,1058,3},{4295,1055,3},{4292,1053,3},{4293,1050,3}, {4298,1048,3},{4300,1052,3},{4307,1053,3},{4315,1055,3},{4323,1053,3},{4340,1042,3}, {4345,1037,3},{4347,1032,3},{4355,1030,3},{4383,1025,3},{4390,1022,3},{4402,1010,3}, {4405,1000,3},{4403,997,3},{4410,983,3},{4408,982,3},{4407,985,3},{4405,983,3}, {4403,985,3},{4403,983,3},{4405,982,3},{4410,973,3},{4413,967,3},{4413,962,3}, {4417,960,3},{4422,950,3},{4423,948,3},{4423,943,3},{4425,942,3},{4425,940,3}, {4430,933,3},{4435,923,3},{4433,922,3},{4430,922,3},{4432,915,3},{4437,913,3}, {4438,895,3},{4442,892,3},{4443,877,3},{4432,850,3},{4428,843,3},{4425,845,3}, {4422,842,3},{4418,842,3},{4413,827,3},{4410,823,3},{4405,823,3},{4400,815,3}, {4395,817,3},{4390,807,3},{4385,795,3},{4382,777,3},{4378,768,3},{4378,760,3}, {4378,753,3},{4392,1240,131},{4395,1242,3},{4398,1245,3},{4398,1252,3}, {4395,1252,3},{4390,1247,3},{4392,1240,3},{4758,758,131},{4763,757,3},{4767,752,3}, {4770,752,3},{4773,755,3},{4778,753,3},{4785,757,3},{4788,755,3},{4790,758,3}, {4793,758,3},{4798,762,3},{4805,757,3},{4812,758,3},{4825,768,3},{4830,770,3}, {4833,775,3},{4840,773,3},{4848,777,3},{4852,780,3},{4858,780,3},{4865,783,3}, {4870,795,3},{4875,797,3},{4875,802,3},{4878,803,3},{4880,810,3},{4890,813,3}, {4895,818,3},{4897,823,3},{4898,808,3},{4905,795,3},{4903,787,3},{4905,780,3}, {4905,777,3},{4905,765,3},{4908,760,3},{4908,753,3},{4913,748,3},{4915,750,3}, {4917,748,3},{4917,738,3},{4915,737,3},{4913,732,3},{4912,730,3},{4913,723,3}, {4912,720,3},{4913,712,3},{4915,710,3},{4915,708,3},{4913,708,3},{4912,705,3}, {4918,703,3},{4920,695,3},{4922,693,3},{4922,685,3},{4918,687,3},{4917,685,3}, {4915,683,3},{4917,673,3},{4918,672,3},{4922,673,3},{4922,670,3},{4928,667,3}, {4933,657,3},{4935,657,3},{4937,660,3},{4940,653,3},{4943,653,3},{4947,647,3}, {4948,642,3},{4947,637,3},{4953,635,3},{4955,637,3},{4957,637,3},{4963,643,3}, {4967,642,3},{4970,652,3},{4973,650,3},{4982,652,3},{4982,640,3},{4985,637,3}, {4983,632,3},{4987,630,3},{4988,625,3},{4995,622,3},{4997,618,3},{4995,618,3}, {5002,613,3},{5005,613,3},{5007,612,3},{5013,613,3},{5013,615,3},{5017,613,3}, {5018,618,3},{5023,617,3},{5027,628,3},{5032,632,3},{5030,637,3},{5033,640,3}, {5038,635,3},{5043,637,3},{5047,633,3},{5048,635,3},{5050,622,3},{5055,617,3}, {5058,623,3},{5058,625,3},{5062,627,3},{5062,617,3},{5065,618,3},{5072,612,3}, {5072,603,3},{5075,602,3},{5077,602,3},{5080,598,3},{5080,602,3},{5085,602,3}, {5085,607,3},{5092,608,3},{5093,602,3},{5097,602,3},{5097,603,3},{5098,595,3}, {5097,588,3},{5100,590,3},{5105,587,3},{5107,590,3},{5103,593,3},{5103,595,3}, {5108,600,3},{5115,617,3},{5117,615,3},{5118,617,3},{5120,617,3},{5117,608,3}, {5122,607,3},{5123,608,3},{5137,622,3},{5140,622,3},{5140,620,3},{5147,622,3}, {5152,620,3},{5160,610,3},{5165,612,3},{5167,603,3},{5172,603,3},{5173,595,3}, {5177,598,3},{5182,595,3},{5183,602,3},{5187,605,3},{5183,617,3},{5185,617,3}, {5190,612,3},{5190,617,3},{5187,620,3},{5187,628,3},{5185,632,3},{5185,637,3}, {5183,637,3},{5183,640,3},{5187,640,3},{5185,647,3},{5190,660,3},{5192,668,3}, {5190,672,3},{5197,683,3},{5202,680,3},{5203,668,3},{5207,670,3},{5208,675,3}, {5212,677,3},{5212,687,3},{5217,690,3},{5218,695,3},{5222,698,3},{5223,705,3}, {5228,703,3},{5235,707,3},{5238,707,3},{5247,698,3},{5243,695,3},{5247,685,3}, {5247,675,3},{5248,670,3},{5255,668,3},{5257,677,3},{5258,672,3},{5263,672,3}, {5263,673,3},{5265,678,3},{5263,705,3},{5282,707,3},{5287,710,3},{5293,718,3}, {5302,722,3},{5313,718,3},{5320,722,3},{5323,720,3},{5325,723,3},{5330,723,3}, {5332,728,3},{5330,737,3},{5332,733,3},{5333,705,3},{5340,702,3},{5350,705,3}, {5352,710,3},{5353,715,3},{5357,708,3},{5358,710,3},{5367,723,3},{5368,730,3}, {5368,747,3},{5367,752,3},{5370,768,3},{5372,797,3},{5370,803,3},{5363,805,3}, {5358,812,3},{5357,812,3},{5357,815,3},{5353,817,3},{5352,817,3},{5350,807,3}, {5347,807,3},{5343,810,3},{5345,815,3},{5340,820,3},{5340,823,3},{5343,830,3}, {5352,832,3},{5352,823,3},{5353,823,3},{5360,825,3},{5362,832,3},{5362,835,3}, {5357,838,3},{5353,855,3},{5347,848,3},{5335,850,3},{5347,850,3},{5353,857,3}, {5365,848,3},{5370,848,3},{5385,858,3},{5388,860,3},{5390,867,3},{5385,873,3}, {5383,880,3},{5383,890,3},{5383,902,3},{5385,902,3},{5385,908,3},{5387,928,3}, {5358,957,3},{5355,968,3},{5353,983,3},{5355,982,3},{5357,968,3},{5362,957,3}, {5370,953,3},{5373,943,3},{5382,940,3},{5385,933,3},{5388,922,3},{5390,903,3}, {5388,898,3},{5395,890,3},{5398,888,3},{5403,883,3},{5405,888,3},{5402,898,3}, {5403,900,3},{5408,902,3},{5412,898,3},{5415,898,3},{5415,895,3},{5412,887,3}, {5418,882,3},{5425,885,3},{5427,892,3},{5432,897,3},{5428,890,3},{5430,873,3}, {5427,868,3},{5428,863,3},{5433,860,3},{5435,862,3},{5435,870,3},{5437,863,3}, {5440,863,3},{5440,887,3},{5445,895,3},{5445,900,3},{5450,902,3},{5460,890,3}, {5460,882,3},{5462,885,3},{5468,882,3},{5473,868,3},{5475,870,3},{5483,863,3}, {5490,867,3},{5488,872,3},{5492,882,3},{5490,892,3},{5488,903,3},{5487,917,3}, {5485,922,3},{5482,925,3},{5480,935,3},{5483,940,3},{5482,945,3},{5480,945,3}, {5483,952,3},{5483,955,3},{5487,958,3},{5482,958,3},{5480,972,3},{5477,982,3}, {5475,987,3},{5477,990,3},{5480,990,3},{5477,997,3},{5470,1002,3},{5470,998,3}, {5467,993,3},{5467,1003,3},{5455,1003,3},{5452,998,3},{5448,985,3},{5445,987,3}, {5448,1012,3},{5447,1020,3},{5443,1017,3},{5440,1020,3},{5437,1013,3},{5432,1015,3}, {5433,1018,3},{5442,1023,3},{5442,1028,3},{5443,1033,3},{5437,1062,3},{5432,1068,3}, {5430,1077,3},{5438,1093,3},{5437,1105,3},{5438,1113,3},{5437,1112,3},{5435,1107,3}, {5420,1110,3},{5410,1088,3},{5410,1080,3},{5405,1075,3},{5400,1078,3},{5398,1087,3}, {5395,1090,3},{5400,1105,3},{5402,1118,3},{5398,1120,3},{5398,1125,3},{5393,1125,3}, {5393,1130,3},{5395,1133,3},{5390,1145,3},{5393,1148,3},{5397,1147,3},{5402,1153,3}, {5403,1152,3},{5403,1158,3},{5410,1163,3},{5410,1162,3},{5415,1168,3},{5415,1182,3}, {5418,1208,3},{5412,1208,3},{5410,1212,3},{5415,1210,3},{5417,1213,3},{5418,1210,3}, {5425,1220,3},{5430,1235,3},{5448,1253,3},{5445,1255,3},{5445,1265,3},{5445,1290,3}, {5442,1292,3},{5442,1280,3},{5443,1270,3},{5442,1267,3},{5442,1263,3},{5440,1258,3}, {5438,1260,3},{5438,1255,3},{5437,1253,3},{5440,1247,3},{5430,1237,3},{5425,1238,3}, {5425,1245,3},{5427,1242,3},{5428,1242,3},{5430,1248,3},{5433,1248,3},{5435,1255,3}, {5438,1257,3},{5437,1260,3},{5442,1272,3},{5437,1268,3},{5440,1272,3},{5437,1273,3}, {5437,1277,3},{5438,1278,3},{5435,1282,3},{5437,1288,3},{5440,1290,3},{5443,1303,3}, {5440,1303,3},{5437,1310,3},{5433,1307,3},{5428,1312,3},{5427,1317,3},{5425,1315,3}, {5427,1318,3},{5423,1322,3},{5423,1328,3},{5420,1330,3},{5418,1335,3},{5417,1332,3}, {5417,1340,3},{5415,1338,3},{5415,1342,3},{5410,1345,3},{5408,1350,3},{5412,1348,3}, {5413,1363,3},{5417,1372,3},{5415,1370,3},{5410,1380,3},{5405,1378,3},{5403,1375,3}, {5392,1392,3},{5388,1382,3},{5385,1382,3},{5383,1385,3},{5377,1397,3},{5373,1408,3}, {5373,1418,3},{5377,1423,3},{5373,1427,3},{5367,1428,3},{5362,1432,3},{5355,1430,3}, {5345,1438,3},{5330,1442,3},{5327,1445,3},{5320,1438,3},{5313,1438,3},{5305,1435,3}, {5297,1415,3},{5288,1417,3},{5285,1413,3},{5283,1415,3},{5282,1422,3},{5277,1430,3}, {5275,1435,3},{5265,1448,3},{5262,1460,3},{5257,1463,3},{5253,1462,3},{5248,1463,3}, {5243,1458,3},{5243,1455,3},{5238,1453,3},{5228,1458,3},{5223,1472,3},{5212,1468,3}, {5207,1477,3},{5200,1472,3},{5195,1472,3},{5190,1470,3},{5185,1462,3},{5182,1460,3}, {5178,1465,3},{5172,1467,3},{5167,1475,3},{5160,1477,3},{5155,1472,3},{5153,1473,3}, {5147,1495,3},{5143,1498,3},{5135,1497,3},{5127,1503,3},{5105,1497,3},{5093,1490,3}, {5088,1482,3},{5087,1483,3},{5082,1480,3},{5082,1472,3},{5083,1472,3},{5085,1462,3}, {5093,1465,3},{5092,1457,3},{5098,1460,3},{5100,1457,3},{5102,1450,3},{5105,1450,3}, {5102,1448,3},{5103,1445,3},{5102,1442,3},{5105,1430,3},{5098,1425,3},{5098,1432,3}, {5097,1430,3},{5095,1432,3},{5093,1440,3},{5090,1440,3},{5088,1425,3},{5085,1420,3}, {5082,1407,3},{5080,1403,3},{5082,1398,3},{5078,1395,3},{5078,1390,3},{5075,1390,3}, {5072,1387,3},{5073,1377,3},{5070,1355,3},{5070,1353,3},{5067,1355,3},{5065,1352,3}, {5063,1352,3},{5060,1347,3},{5062,1342,3},{5063,1338,3},{5058,1332,3},{5057,1328,3}, {5058,1325,3},{5050,1318,3},{5052,1313,3},{5050,1303,3},{5045,1302,3},{5042,1298,3}, {5042,1293,3},{5045,1282,3},{5043,1282,3},{5045,1278,3},{5043,1275,3},{5040,1270,3}, {5042,1267,3},{5042,1262,3},{5040,1252,3},{5037,1248,3},{5035,1248,3},{5032,1240,3}, {5030,1240,3},{5028,1237,3},{5023,1235,3},{5023,1233,3},{5017,1232,3},{5018,1228,3}, {5022,1228,3},{5025,1225,3},{5027,1225,3},{5027,1220,3},{5032,1218,3},{5032,1210,3}, {5030,1212,3},{5028,1213,3},{5025,1210,3},{5023,1215,3},{5020,1218,3},{5017,1222,3}, {5013,1220,3},{5010,1220,3},{5008,1225,3},{5005,1227,3},{5003,1235,3},{4998,1243,3}, {4998,1247,3},{4997,1250,3},{4993,1248,3},{4992,1255,3},{4983,1250,3},{4983,1247,3}, {4978,1247,3},{4977,1240,3},{4973,1240,3},{4970,1245,3},{4968,1252,3},{4963,1252,3}, {4962,1257,3},{4953,1260,3},{4952,1263,3},{4947,1263,3},{4943,1267,3},{4940,1275,3}, {4933,1280,3},{4933,1288,3},{4935,1288,3},{4933,1297,3},{4930,1303,3},{4927,1303,3}, {4925,1308,3},{4920,1312,3},{4917,1318,3},{4913,1318,3},{4910,1332,3},{4905,1340,3}, {4898,1340,3},{4895,1348,3},{4898,1352,3},{4895,1363,3},{4890,1365,3},{4888,1368,3}, {4888,1373,3},{4880,1382,3},{4878,1382,3},{4877,1383,3},{4873,1380,3},{4870,1383,3}, {4870,1382,3},{4862,1382,3},{4858,1380,3},{4857,1375,3},{4852,1373,3},{4857,1360,3}, {4857,1357,3},{4858,1352,3},{4857,1350,3},{4857,1347,3},{4857,1345,3},{4857,1343,3}, {4852,1345,3},{4847,1343,3},{4843,1343,3},{4837,1340,3},{4830,1328,3},{4830,1317,3}, {4827,1302,3},{4822,1297,3},{4820,1287,3},{4817,1283,3},{4812,1277,3},{4808,1277,3}, {4802,1285,3},{4797,1288,3},{4793,1293,3},{4785,1302,3},{4778,1293,3},{4772,1292,3}, {4772,1298,3},{4772,1302,3},{4768,1308,3},{4763,1310,3},{4760,1307,3},{4758,1305,3}, {4757,1307,3},{4753,1303,3},{4750,1305,3},{4748,1302,3},{4748,1295,3},{4755,1285,3}, {4755,1282,3},{4758,1278,3},{4762,1280,3},{4762,1283,3},{4765,1277,3},{4767,1278,3}, {4768,1267,3},{4767,1260,3},{4765,1258,3},{4763,1252,3},{4767,1245,3},{4768,1245,3}, {4770,1245,3},{4768,1237,3},{4770,1233,3},{4768,1225,3},{4770,1223,3},{4775,1225,3}, {4770,1218,3},{4763,1220,3},{4762,1220,3},{4762,1200,3},{4760,1185,3},{4758,1183,3}, {4758,1168,3},{4760,1163,3},{4758,1160,3},{4752,1157,3},{4752,1150,3},{4752,1143,3}, {4748,1138,3},{4747,1140,3},{4745,1140,3},{4745,1133,3},{4740,1128,3},{4740,1123,3}, {4743,1123,3},{4743,1122,3},{4740,1112,3},{4740,1098,3},{4742,1097,3},{4743,1098,3}, {4748,1092,3},{4748,1087,3},{4752,1092,3},{4753,1088,3},{4752,1077,3},{4755,1075,3}, {4757,1060,3},{4753,1057,3},{4753,1050,3},{4755,1047,3},{4758,1048,3},{4758,1047,3}, {4758,1043,3},{4755,1045,3},{4750,1043,3},{4748,1047,3},{4743,1047,3},{4738,1043,3}, {4737,1038,3},{4732,1033,3},{4728,1023,3},{4727,1017,3},{4730,1018,3},{4732,1022,3}, {4733,1020,3},{4738,1023,3},{4738,1018,3},{4737,1015,3},{4737,1012,3},{4737,1010,3}, {4742,1007,3},{4743,1010,3},{4750,1005,3},{4748,1000,3},{4753,997,3},{4755,997,3}, {4753,992,3},{4755,988,3},{4753,985,3},{4755,982,3},{4758,982,3},{4760,978,3}, {4758,975,3},{4753,957,3},{4765,930,3},{4765,917,3},{4767,913,3},{4768,905,3}, {4765,888,3},{4768,885,3},{4770,887,3},{4772,882,3},{4773,882,3},{4772,877,3}, {4770,880,3},{4768,880,3},{4770,872,3},{4772,873,3},{4773,872,3},{4777,873,3}, {4777,868,3},{4778,868,3},{4780,865,3},{4777,863,3},{4780,862,3},{4780,857,3}, {4778,857,3},{4777,848,3},{4772,845,3},{4770,840,3},{4767,842,3},{4767,845,3}, {4765,847,3},{4767,853,3},{4767,858,3},{4767,862,3},{4765,863,3},{4765,860,3}, {4762,860,3},{4760,858,3},{4762,857,3},{4763,852,3},{4760,847,3},{4758,850,3}, {4757,833,3},{4762,828,3},{4762,820,3},{4757,808,3},{4755,792,3},{4758,790,3}, {4758,782,3},{4755,778,3},{4755,767,3},{4757,762,3},{4758,767,3},{4760,767,3}, {4758,758,3},{5387,1422,131},{5387,1408,3},{5387,1403,3},{5385,1400,3}, {5383,1390,3},{5385,1382,3},{5387,1383,3},{5388,1390,3},{5392,1393,3},{5398,1390,3}, {5398,1397,3},{5393,1397,3},{5397,1398,3},{5397,1402,3},{5395,1402,3},{5393,1405,3}, {5398,1405,3},{5405,1398,3},{5407,1392,3},{5402,1390,3},{5400,1385,3},{5403,1388,3}, {5405,1387,3},{5402,1380,3},{5402,1378,3},{5410,1382,3},{5415,1375,3},{5417,1377,3}, {5417,1382,3},{5410,1388,3},{5407,1400,3},{5393,1423,3},{5392,1420,3},{5387,1422,3}, {5490,867,131},{5495,868,3},{5502,863,3},{5513,868,3},{5513,857,3},{5513,855,3}, {5508,857,3},{5507,850,3},{5507,847,3},{5512,845,3},{5518,848,3},{5520,850,3}, {5518,860,3},{5515,857,3},{5513,865,3},{5513,868,3},{5528,865,3},{5533,867,3}, {5543,862,3},{5545,858,3},{5545,843,3},{5555,830,3},{5558,832,3},{5558,827,3}, {5555,823,3},{5553,827,3},{5552,825,3},{5550,830,3},{5547,832,3},{5552,820,3}, {5555,808,3},{5572,818,3},{5597,815,3},{5587,820,3},{5582,818,3},{5583,830,3}, {5590,840,3},{5603,830,3},{5608,823,3},{5610,813,3},{5608,813,3},{5598,815,3}, {5598,812,3},{5607,810,3},{5622,813,3},{5635,812,3},{5632,815,3},{5632,825,3}, {5628,825,3},{5632,832,3},{5632,828,3},{5637,818,3},{5640,818,3},{5638,825,3}, {5640,823,3},{5642,818,3},{5642,813,3},{5637,812,3},{5658,813,3},{5667,818,3}, {5668,823,3},{5662,820,3},{5658,823,3},{5658,830,3},{5655,830,3},{5657,833,3}, {5657,842,3},{5653,852,3},{5657,855,3},{5655,858,3},{5648,860,3},{5647,867,3}, {5648,875,3},{5652,873,3},{5655,875,3},{5658,870,3},{5660,868,3},{5662,868,3}, {5662,875,3},{5667,882,3},{5668,890,3},{5670,892,3},{5672,885,3},{5678,892,3}, {5678,897,3},{5680,905,3},{5678,908,3},{5672,915,3},{5665,912,3},{5662,905,3}, {5655,907,3},{5655,910,3},{5660,912,3},{5660,915,3},{5662,913,3},{5663,915,3}, {5662,917,3},{5660,928,3},{5657,925,3},{5652,930,3},{5653,938,3},{5657,937,3}, {5655,932,3},{5657,928,3},{5663,932,3},{5668,930,3},{5668,922,3},{5665,920,3}, {5667,917,3},{5675,925,3},{5677,918,3},{5680,917,3},{5685,920,3},{5687,917,3}, {5690,918,3},{5698,932,3},{5700,942,3},{5698,958,3},{5695,953,3},{5692,957,3}, {5695,957,3},{5698,965,3},{5703,970,3},{5703,985,3},{5705,995,3},{5705,993,3}, {5705,988,3},{5710,978,3},{5705,973,3},{5705,962,3},{5703,955,3},{5703,952,3}, {5705,952,3},{5698,923,3},{5705,910,3},{5712,903,3},{5710,902,3},{5703,912,3}, {5702,912,3},{5698,892,3},{5702,887,3},{5698,885,3},{5700,880,3},{5697,882,3}, {5693,875,3},{5693,868,3},{5688,862,3},{5685,862,3},{5678,848,3},{5675,850,3}, {5670,848,3},{5670,852,3},{5668,852,3},{5667,843,3},{5667,848,3},{5665,852,3}, {5667,858,3},{5660,858,3},{5657,855,3},{5658,852,3},{5663,848,3},{5668,833,3}, {5675,830,3},{5677,827,3},{5675,825,3},{5672,827,3},{5670,825,3},{5675,823,3}, {5682,825,3},{5693,837,3},{5710,858,3},{5708,875,3},{5710,883,3},{5715,902,3}, {5713,918,3},{5715,940,3},{5723,958,3},{5745,977,3},{5757,995,3},{5758,1012,3}, {5760,1027,3},{5772,1048,3},{5773,1055,3},{5772,1063,3},{5765,1047,3},{5758,1042,3}, {5752,1043,3},{5747,1050,3},{5743,1055,3},{5737,1052,3},{5722,1053,3},{5713,1043,3}, {5698,1033,3},{5698,1025,3},{5698,1020,3},{5708,1002,3},{5708,998,3},{5705,995,3}, {5707,998,3},{5705,1002,3},{5698,1017,3},{5697,1028,3},{5682,1025,3},{5670,1033,3}, {5668,1030,3},{5670,1025,3},{5670,1015,3},{5668,1018,3},{5668,1025,3},{5665,1033,3}, {5662,1035,3},{5655,1022,3},{5650,1022,3},{5647,1018,3},{5647,1023,3},{5655,1023,3}, {5658,1032,3},{5653,1038,3},{5650,1047,3},{5653,1077,3},{5652,1083,3},{5643,1095,3}, {5638,1090,3},{5633,1090,3},{5620,1072,3},{5613,1070,3},{5613,1068,3},{5617,1063,3}, {5620,1067,3},{5622,1062,3},{5622,1057,3},{5617,1052,3},{5612,1055,3},{5610,1053,3}, {5610,1050,3},{5613,1047,3},{5613,1050,3},{5617,1050,3},{5615,1038,3},{5620,1033,3}, {5622,1040,3},{5620,1043,3},{5623,1043,3},{5627,1048,3},{5628,1040,3},{5627,1037,3}, {5625,1033,3},{5617,1023,3},{5610,1023,3},{5605,1027,3},{5602,1023,3},{5602,1028,3}, {5598,1025,3},{5592,1025,3},{5588,1018,3},{5583,1018,3},{5583,1015,3},{5587,1013,3}, {5588,1010,3},{5587,998,3},{5585,995,3},{5585,987,3},{5583,990,3},{5582,1005,3}, {5575,1002,3},{5575,1007,3},{5573,1000,3},{5570,1002,3},{5567,982,3},{5568,973,3}, {5572,967,3},{5570,955,3},{5570,957,3},{5570,963,3},{5565,972,3},{5562,975,3}, {5562,985,3},{5557,975,3},{5555,972,3},{5553,970,3},{5552,962,3},{5552,957,3}, {5550,955,3},{5550,950,3},{5548,952,3},{5548,962,3},{5547,967,3},{5545,965,3}, {5543,960,3},{5542,958,3},{5540,962,3},{5537,960,3},{5535,962,3},{5532,962,3}, {5530,963,3},{5528,962,3},{5523,970,3},{5517,962,3},{5518,958,3},{5515,948,3}, {5513,952,3},{5513,947,3},{5512,947,3},{5510,950,3},{5507,952,3},{5503,943,3}, {5503,953,3},{5505,957,3},{5503,958,3},{5500,962,3},{5498,972,3},{5488,977,3}, {5488,970,3},{5487,975,3},{5483,973,3},{5485,968,3},{5485,962,3},{5488,963,3}, {5490,960,3},{5492,965,3},{5493,962,3},{5492,958,3},{5488,955,3},{5487,950,3}, {5482,945,3},{5483,940,3},{5480,935,3},{5482,925,3},{5485,922,3},{5487,917,3}, {5488,903,3},{5490,892,3},{5492,882,3},{5488,872,3},{5490,867,3},{4707,958,131}, {4707,947,3},{4710,952,3},{4720,948,3},{4727,953,3},{4722,958,3},{4717,957,3}, {4715,962,3},{4713,963,3},{4710,963,3},{4707,958,3},{4593,703,131},{4597,703,3}, {4597,700,3},{4600,702,3},{4607,693,3},{4605,687,3},{4613,688,3},{4615,678,3}, {4622,680,3},{4627,685,3},{4635,677,3},{4638,680,3},{4642,682,3},{4643,678,3}, {4647,663,3},{4645,650,3},{4643,645,3},{4642,642,3},{4640,632,3},{4635,625,3}, {4632,623,3},{4632,625,3},{4630,625,3},{4627,627,3},{4627,630,3},{4625,630,3}, {4620,620,3},{4617,618,3},{4615,615,3},{4613,597,3},{4615,598,3},{4618,600,3}, {4622,597,3},{4627,612,3},{4630,610,3},{4637,617,3},{4643,607,3},{4645,608,3}, {4648,608,3},{4655,617,3},{4660,613,3},{4668,628,3},{4672,637,3},{4678,645,3}, {4682,643,3},{4687,647,3},{4693,643,3},{4697,648,3},{4700,663,3},{4703,670,3}, {4708,670,3},{4717,685,3},{4717,683,3},{4723,693,3},{4725,695,3},{4728,695,3}, {4730,702,3},{4732,702,3},{4735,707,3},{4737,705,3},{4737,702,3},{4735,688,3}, {4738,688,3},{4740,693,3},{4743,695,3},{4745,700,3},{4750,698,3},{4750,703,3}, {4750,708,3},{4750,713,3},{4750,720,3},{4745,718,3},{4743,723,3},{4742,725,3}, {4743,732,3},{4743,738,3},{4747,745,3},{4750,743,3},{4748,748,3},{4750,750,3}, {4752,750,3},{4753,752,3},{4755,750,3},{4758,758,3},{4760,767,3},{4758,767,3}, {4757,762,3},{4755,767,3},{4755,778,3},{4758,782,3},{4758,790,3},{4755,792,3}, {4757,808,3},{4762,820,3},{4762,828,3},{4757,833,3},{4758,850,3},{4760,847,3}, {4763,852,3},{4762,857,3},{4760,858,3},{4762,860,3},{4765,860,3},{4765,863,3}, {4767,862,3},{4767,858,3},{4767,853,3},{4765,847,3},{4767,845,3},{4767,842,3}, {4770,840,3},{4772,845,3},{4777,848,3},{4778,857,3},{4780,857,3},{4780,862,3}, {4777,863,3},{4780,865,3},{4778,868,3},{4777,868,3},{4777,873,3},{4773,872,3}, {4772,873,3},{4770,872,3},{4768,880,3},{4770,880,3},{4772,877,3},{4773,882,3}, {4772,882,3},{4770,887,3},{4768,885,3},{4765,888,3},{4768,905,3},{4767,913,3}, {4765,917,3},{4765,930,3},{4753,957,3},{4750,957,3},{4747,960,3},{4745,965,3}, {4742,965,3},{4738,967,3},{4737,962,3},{4727,953,3},{4720,948,3},{4710,952,3}, {4707,947,3},{4707,958,3},{4707,968,3},{4702,988,3},{4700,987,3},{4700,990,3}, {4693,988,3},{4692,993,3},{4692,997,3},{4690,1002,3},{4687,1007,3},{4685,1013,3}, {4688,1023,3},{4693,1025,3},{4693,1032,3},{4695,1030,3},{4700,1035,3},{4700,1038,3}, {4693,1048,3},{4687,1047,3},{4682,1047,3},{4680,1043,3},{4677,1045,3},{4673,1042,3}, {4672,1042,3},{4668,1038,3},{4665,1040,3},{4663,1047,3},{4662,1048,3},{4655,1047,3}, {4653,1045,3},{4655,1043,3},{4655,1030,3},{4658,1028,3},{4658,1025,3},{4662,1025,3}, {4663,1023,3},{4662,1010,3},{4657,1008,3},{4653,1005,3},{4648,1005,3},{4647,1007,3}, {4645,1005,3},{4642,1008,3},{4643,1013,3},{4642,1017,3},{4633,1010,3},{4627,1018,3}, {4623,1013,3},{4622,1007,3},{4623,1005,3},{4627,1005,3},{4628,1000,3},{4635,1000,3}, {4638,995,3},{4637,983,3},{4635,977,3},{4637,973,3},{4630,970,3},{4630,958,3}, {4632,952,3},{4637,950,3},{4638,947,3},{4650,947,3},{4650,945,3},{4647,940,3}, {4650,937,3},{4650,928,3},{4643,925,3},{4642,928,3},{4637,928,3},{4635,930,3}, {4623,925,3},{4622,920,3},{4618,918,3},{4612,908,3},{4607,907,3},{4603,902,3}, {4600,903,3},{4597,900,3},{4593,903,3},{4592,908,3},{4583,903,3},{4582,902,3}, {4583,900,3},{4585,895,3},{4583,892,3},{4588,893,3},{4595,890,3},{4598,878,3}, {4602,880,3},{4605,885,3},{4608,885,3},{4610,882,3},{4610,877,3},{4612,875,3}, {4610,870,3},{4612,862,3},{4617,860,3},{4622,853,3},{4625,845,3},{4628,843,3}, {4640,847,3},{4645,847,3},{4647,843,3},{4645,837,3},{4642,830,3},{4640,832,3}, {4638,830,3},{4637,827,3},{4632,820,3},{4630,813,3},{4628,810,3},{4625,808,3}, {4623,813,3},{4618,817,3},{4615,815,3},{4612,810,3},{4610,805,3},{4607,803,3}, {4605,803,3},{4600,802,3},{4600,792,3},{4598,788,3},{4593,787,3},{4592,787,3}, {4592,778,3},{4593,777,3},{4593,772,3},{4595,772,3},{4598,765,3},{4598,757,3}, {4598,755,3},{4597,753,3},{4597,748,3},{4593,743,3},{4592,730,3},{4588,718,3}, {4588,710,3},{4593,703,3},{5137,337,131},{5142,353,3},{5138,368,3},{5135,373,3}, {5133,387,3},{5137,397,3},{5140,398,3},{5140,403,3},{5137,407,3},{5135,412,3}, {5137,422,3},{5130,427,3},{5128,432,3},{5127,430,3},{5128,433,3},{5132,428,3}, {5142,425,3},{5140,415,3},{5142,408,3},{5145,398,3},{5145,393,3},{5140,390,3}, {5140,380,3},{5142,375,3},{5147,368,3},{5145,362,3},{5145,353,3},{5153,343,3}, {5160,357,3},{5160,383,3},{5160,387,3},{5157,390,3},{5155,387,3},{5153,397,3}, {5150,405,3},{5145,410,3},{5143,415,3},{5145,428,3},{5148,428,3},{5152,423,3}, {5153,408,3},{5158,400,3},{5162,408,3},{5160,417,3},{5158,422,3},{5162,420,3}, {5162,413,3},{5165,412,3},{5162,398,3},{5163,390,3},{5167,388,3},{5170,382,3}, {5167,372,3},{5168,368,3},{5172,368,3},{5173,372,3},{5175,383,3},{5178,387,3}, {5182,388,3},{5185,398,3},{5183,405,3},{5183,408,3},{5188,403,3},{5192,405,3}, {5198,402,3},{5198,412,3},{5200,415,3},{5223,443,3},{5245,457,3},{5247,460,3}, {5248,458,3},{5275,465,3},{5297,473,3},{5297,482,3},{5292,482,3},{5290,488,3}, {5297,510,3},{5307,528,3},{5308,538,3},{5322,545,3},{5328,558,3},{5340,598,3}, {5342,625,3},{5340,632,3},{5347,675,3},{5343,687,3},{5340,688,3},{5335,690,3}, {5332,695,3},{5330,705,3},{5330,708,3},{5327,707,3},{5325,710,3},{5323,718,3}, {5323,720,3},{5320,722,3},{5313,718,3},{5302,722,3},{5293,718,3},{5287,710,3}, {5282,707,3},{5263,705,3},{5265,678,3},{5263,673,3},{5263,672,3},{5258,672,3}, {5257,677,3},{5255,668,3},{5248,670,3},{5247,675,3},{5247,685,3},{5243,695,3}, {5247,698,3},{5238,707,3},{5235,707,3},{5228,703,3},{5223,705,3},{5222,698,3}, {5218,695,3},{5217,690,3},{5212,687,3},{5212,677,3},{5208,675,3},{5207,670,3}, {5203,668,3},{5202,680,3},{5197,683,3},{5190,672,3},{5192,668,3},{5190,660,3}, {5185,647,3},{5187,640,3},{5183,640,3},{5183,637,3},{5185,637,3},{5185,632,3}, {5187,628,3},{5187,620,3},{5190,617,3},{5190,612,3},{5185,617,3},{5183,617,3}, {5187,605,3},{5183,602,3},{5182,595,3},{5177,598,3},{5173,595,3},{5172,603,3}, {5167,603,3},{5165,612,3},{5160,610,3},{5152,620,3},{5147,622,3},{5140,620,3}, {5140,622,3},{5137,622,3},{5123,608,3},{5122,607,3},{5117,608,3},{5120,617,3}, {5118,617,3},{5117,615,3},{5115,617,3},{5108,600,3},{5103,595,3},{5103,593,3}, {5107,590,3},{5105,587,3},{5100,590,3},{5097,588,3},{5098,595,3},{5097,603,3}, {5097,602,3},{5093,602,3},{5092,608,3},{5085,607,3},{5085,602,3},{5080,602,3}, {5080,598,3},{5077,602,3},{5075,602,3},{5075,590,3},{5077,588,3},{5075,582,3}, {5078,577,3},{5077,575,3},{5075,570,3},{5080,570,3},{5082,565,3},{5085,563,3}, {5088,565,3},{5088,568,3},{5095,577,3},{5097,572,3},{5098,577,3},{5103,577,3}, {5107,578,3},{5105,580,3},{5110,580,3},{5110,585,3},{5112,582,3},{5115,585,3}, {5117,583,3},{5117,580,3},{5120,573,3},{5118,567,3},{5122,557,3},{5127,555,3}, {5130,552,3},{5127,540,3},{5127,523,3},{5130,523,3},{5132,513,3},{5140,508,3}, {5143,510,3},{5148,503,3},{5148,502,3},{5145,500,3},{5140,493,3},{5142,488,3}, {5142,478,3},{5143,478,3},{5142,483,3},{5148,485,3},{5150,480,3},{5150,477,3}, {5145,467,3},{5143,467,3},{5142,465,3},{5143,458,3},{5143,455,3},{5148,455,3}, {5148,448,3},{5145,440,3},{5143,442,3},{5142,440,3},{5138,443,3},{5137,443,3}, {5137,435,3},{5138,430,3},{5137,423,3},{5128,413,3},{5120,390,3},{5122,388,3}, {5122,380,3},{5127,378,3},{5130,360,3},{5128,352,3},{5125,352,3},{5125,343,3}, {5127,338,3},{5132,337,3},{5133,338,3},{5137,337,3},{4953,580,131},{4957,587,3}, {4958,587,3},{4960,585,3},{4963,590,3},{4967,590,3},{4968,585,3},{4972,587,3}, {4972,582,3},{4980,578,3},{4980,575,3},{4983,573,3},{4985,575,3},{4987,575,3}, {4987,578,3},{4990,573,3},{4995,577,3},{4998,583,3},{5002,582,3},{5003,585,3}, {5007,585,3},{5012,590,3},{5013,595,3},{5017,597,3},{5018,602,3},{5017,603,3}, {5015,607,3},{5017,610,3},{5013,613,3},{5007,612,3},{5005,613,3},{5002,613,3}, {4995,618,3},{4997,618,3},{4995,622,3},{4988,625,3},{4987,630,3},{4983,632,3}, {4985,637,3},{4982,640,3},{4982,652,3},{4973,650,3},{4970,652,3},{4967,642,3}, {4963,643,3},{4957,637,3},{4955,637,3},{4953,635,3},{4947,637,3},{4950,623,3}, {4950,615,3},{4950,617,3},{4948,612,3},{4945,608,3},{4947,607,3},{4945,603,3}, {4945,598,3},{4947,598,3},{4948,597,3},{4950,587,3},{4953,580,3},{5108,255,131}, {5132,310,3},{5137,337,3},{5133,338,3},{5132,337,3},{5127,338,3},{5125,343,3}, {5125,352,3},{5128,352,3},{5130,360,3},{5127,378,3},{5122,380,3},{5122,388,3}, {5120,390,3},{5128,413,3},{5137,423,3},{5138,430,3},{5137,435,3},{5137,443,3}, {5138,443,3},{5142,440,3},{5143,442,3},{5145,440,3},{5148,448,3},{5148,455,3}, {5143,455,3},{5143,458,3},{5142,465,3},{5143,467,3},{5145,467,3},{5150,477,3}, {5150,480,3},{5148,485,3},{5142,483,3},{5143,478,3},{5142,478,3},{5142,488,3}, {5140,493,3},{5145,500,3},{5148,502,3},{5148,503,3},{5143,510,3},{5140,508,3}, {5132,513,3},{5130,523,3},{5127,523,3},{5127,540,3},{5130,552,3},{5127,555,3}, {5122,557,3},{5118,567,3},{5120,573,3},{5117,580,3},{5117,583,3},{5115,585,3}, {5112,582,3},{5110,585,3},{5110,580,3},{5105,580,3},{5107,578,3},{5103,577,3}, {5098,577,3},{5097,572,3},{5095,577,3},{5088,568,3},{5088,565,3},{5085,563,3}, {5082,565,3},{5080,570,3},{5075,570,3},{5077,575,3},{5078,577,3},{5075,582,3}, {5077,588,3},{5075,590,3},{5075,602,3},{5072,603,3},{5072,612,3},{5065,618,3}, {5062,617,3},{5062,627,3},{5058,625,3},{5058,623,3},{5055,617,3},{5050,622,3}, {5048,635,3},{5047,633,3},{5043,637,3},{5038,635,3},{5033,640,3},{5030,637,3}, {5032,632,3},{5027,628,3},{5023,617,3},{5018,618,3},{5017,613,3},{5013,615,3}, {5013,613,3},{5017,610,3},{5015,607,3},{5017,603,3},{5018,602,3},{5017,597,3}, {5013,595,3},{5012,590,3},{5007,585,3},{5003,585,3},{5002,582,3},{4998,583,3}, {4995,577,3},{4990,573,3},{4987,578,3},{4987,575,3},{4985,575,3},{4983,573,3}, {4980,575,3},{4980,578,3},{4972,582,3},{4972,587,3},{4968,585,3},{4967,590,3}, {4963,590,3},{4960,585,3},{4958,587,3},{4957,587,3},{4953,580,3},{4955,578,3}, {4955,577,3},{4953,573,3},{4955,567,3},{4952,562,3},{4953,557,3},{4952,553,3}, {4950,547,3},{4953,548,3},{4960,543,3},{4962,540,3},{4963,535,3},{4962,532,3}, {4967,533,3},{4970,528,3},{4968,523,3},{4970,517,3},{4972,517,3},{4972,513,3}, {4977,510,3},{4977,507,3},{4980,500,3},{4980,498,3},{4980,487,3},{4983,487,3}, {4987,485,3},{4992,488,3},{4995,485,3},{4995,480,3},{4998,480,3},{5005,485,3}, {5007,483,3},{5008,485,3},{5010,487,3},{5008,488,3},{5013,490,3},{5015,488,3}, {5015,485,3},{5017,483,3},{5008,470,3},{5000,467,3},{4998,460,3},{4993,445,3}, {4997,433,3},{4997,432,3},{4997,422,3},{4998,415,3},{5003,415,3},{5007,423,3}, {5013,420,3},{5013,413,3},{5022,417,3},{5025,422,3},{5027,422,3},{5028,417,3}, {5027,417,3},{5025,415,3},{5030,412,3},{5035,403,3},{5033,390,3},{5035,385,3}, {5035,377,3},{5030,370,3},{5037,367,3},{5045,367,3},{5048,362,3},{5048,352,3}, {5052,352,3},{5053,348,3},{5052,345,3},{5050,337,3},{5053,328,3},{5060,328,3}, {5067,325,3},{5068,327,3},{5072,323,3},{5072,320,3},{5078,317,3},{5080,312,3}, {5078,308,3},{5075,295,3},{5073,293,3},{5070,290,3},{5073,285,3},{5073,280,3}, {5082,272,3},{5082,263,3},{5085,260,3},{5088,262,3},{5092,260,3},{5095,263,3}, {5100,260,3},{5100,258,3},{5108,255,3},{4340,65359,131},{4343,65376,3}, {4353,65386,3},{4390,65398,3},{4427,65408,3},{4450,65411,3},{4455,65409,3}, {4467,65416,3},{4465,65423,3},{4467,65431,3},{4467,65433,3},{4472,65429,3}, {4477,65419,3},{4468,65413,3},{4463,65411,3},{4467,65409,3},{4512,65416,3}, {4523,65419,3},{4548,65421,3},{4555,65428,3},{4557,65429,3},{4555,65431,3}, {4552,65431,3},{4548,65436,3},{4545,65443,3},{4535,65456,3},{4523,65463,3}, {4510,65466,3},{4505,65471,3},{4498,65479,3},{4490,65481,3},{4498,65483,3}, {4502,65476,3},{4502,65481,3},{4500,65486,3},{4503,65484,3},{4505,65476,3}, {4508,65471,3},{4513,65469,3},{4535,65464,3},{4547,65458,3},{4555,65444,3}, {4558,65438,3},{4562,65436,3},{4568,65421,3},{4570,65418,3},{4570,65411,3}, {4580,65413,3},{4580,65421,3},{4575,65426,3},{4572,65438,3},{4578,65426,3}, {4587,65421,3},{4587,65424,3},{4590,65424,3},{4590,65429,3},{4595,65428,3}, {4597,65429,3},{4602,65424,3},{4600,65428,3},{4602,65431,3},{4603,65431,3}, {4605,65428,3},{4610,65426,3},{4612,65423,3},{4612,65424,3},{4615,65421,3}, {4615,65416,3},{4617,65414,3},{4622,65418,3},{4627,65426,3},{4632,65424,3}, {4633,65419,3},{4632,65416,3},{4627,65414,3},{4633,65406,3},{4632,65406,3}, {4635,65401,3},{4633,65391,3},{4640,65389,3},{4642,65386,3},{4642,65373,3}, {4645,65373,3},{4645,65368,3},{4648,65361,3},{4652,65358,3},{4650,65358,3}, {4648,65356,3},{4660,65354,3},{4660,65351,3},{4663,65349,3},{4670,65344,3}, {4670,65339,3},{4677,65336,3},{4683,65323,3},{4690,65323,3},{4692,65326,3}, {4693,65328,3},{4695,65331,3},{4700,65333,3},{4703,65338,3},{4710,65331,3}, {4713,65313,3},{4717,65319,3},{4727,65319,3},{4730,65334,3},{4727,65341,3}, {4728,65343,3},{4727,65346,3},{4727,65344,3},{4725,65346,3},{4722,65356,3}, {4722,65363,3},{4723,65356,3},{4728,65348,3},{4732,65334,3},{4732,65319,3}, {4728,65318,3},{4723,65308,3},{4728,65299,3},{4728,65294,3},{4727,65293,3}, {4728,65288,3},{4730,65283,3},{4728,65289,3},{4730,65293,3},{4733,65288,3}, {4732,65286,3},{4735,65286,3},{4738,65281,3},{4742,65289,3},{4740,65293,3}, {4742,65293,3},{4742,65298,3},{4742,65291,3},{4745,65291,3},{4745,65288,3}, {4750,65288,3},{4750,65299,3},{4750,65293,3},{4753,65284,3},{4752,65273,3}, {4755,65279,3},{4753,65273,3},{4752,65274,3},{4753,65269,3},{4750,65268,3}, {4750,65251,3},{4753,65249,3},{4755,65244,3},{4757,65244,3},{4757,65249,3}, {4755,65251,3},{4755,65254,3},{4757,65254,3},{4755,65256,3},{4755,65263,3}, {4757,65264,3},{4760,65268,3},{4763,65266,3},{4760,65266,3},{4762,65259,3}, {4762,65263,3},{4763,65261,3},{4765,65258,3},{4763,65258,3},{4762,65251,3}, {4760,65251,3},{4760,65248,3},{4758,65248,3},{4758,65244,3},{4760,65244,3}, {4760,65243,3},{4763,65243,3},{4765,65238,3},{4763,65239,3},{4757,65243,3}, {4757,65239,3},{4760,65236,3},{4757,65236,3},{4760,65234,3},{4757,65234,3}, {4757,65226,3},{4758,65228,3},{4760,65224,3},{4750,65224,3},{4747,65228,3}, {4747,65223,3},{4752,65221,3},{4758,65223,3},{4762,65221,3},{4763,65216,3}, {4768,65218,3},{4770,65224,3},{4773,65224,3},{4772,65223,3},{4775,65223,3}, {4773,65221,3},{4775,65218,3},{4773,65219,3},{4772,65219,3},{4770,65216,3}, {4768,65216,3},{4765,65214,3},{4770,65204,3},{4770,65201,3},{4768,65208,3}, {4770,65204,3},{4772,65201,3},{4778,65208,3},{4773,65201,3},{4773,65196,3}, {4773,65199,3},{4772,65199,3},{4770,65191,3},{4777,65183,3},{4778,65168,3}, {4782,65164,3},{4780,65159,3},{4780,65151,3},{4790,65141,3},{4790,65138,3}, {4787,65138,3},{4785,65133,3},{4787,65136,3},{4787,65128,3},{4792,65123,3}, {4790,65121,3},{4787,65124,3},{4785,65121,3},{4787,65119,3},{4788,65118,3}, {4787,65118,3},{4783,65118,3},{4783,65121,3},{4780,65118,3},{4780,65111,3}, {4780,65099,3},{4783,65099,3},{4783,65101,3},{4787,65101,3},{4797,65093,3}, {4802,65083,3},{4800,65079,3},{4803,65073,3},{4803,65063,3},{4807,65066,3}, {4808,65081,3},{4812,65099,3},{4810,65106,3},{4812,65108,3},{4815,65108,3}, {4820,65104,3},{4820,65099,3},{4823,65093,3},{4823,65086,3},{4820,65084,3}, {4817,65081,3},{4820,65081,3},{4823,65079,3},{4825,65081,3},{4827,65074,3}, {4828,65074,3},{4828,65078,3},{4832,65078,3},{4833,65079,3},{4833,65083,3}, {4830,65081,3},{4828,65086,3},{4830,65106,3},{4828,65111,3},{4830,65118,3}, {4830,65113,3},{4832,65113,3},{4830,65111,3},{4832,65108,3},{4832,65104,3}, {4835,65109,3},{4835,65104,3},{4833,65098,3},{4833,65096,3},{4835,65096,3}, {4833,65091,3},{4837,65093,3},{4843,65106,3},{4835,65076,3},{4833,65059,3}, {4837,65058,3},{4838,65059,3},{4843,65058,3},{4847,65059,3},{4847,65061,3}, {4852,65058,3},{4857,65066,3},{4857,65078,3},{4858,65076,3},{4860,65076,3}, {4860,65083,3},{4862,65079,3},{4863,65083,3},{4863,65086,3},{4863,65094,3}, {4865,65094,3},{4868,65103,3},{4867,65106,3},{4863,65106,3},{4865,65113,3}, {4865,65116,3},{4867,65114,3},{4868,65118,3},{4870,65126,3},{4868,65129,3}, {4868,65131,3},{4872,65131,3},{4873,65138,3},{4865,65141,3},{4868,65144,3}, {4867,65146,3},{4865,65146,3},{4863,65151,3},{4868,65149,3},{4867,65151,3}, {4868,65153,3},{4870,65151,3},{4873,65154,3},{4870,65169,3},{4870,65171,3}, {4868,65173,3},{4868,65178,3},{4873,65178,3},{4873,65183,3},{4877,65178,3}, {4880,65179,3},{4880,65183,3},{4883,65183,3},{4883,65189,3},{4882,65191,3}, {4882,65194,3},{4880,65193,3},{4883,65204,3},{4883,65208,3},{4887,65214,3}, {4883,65216,3},{4880,65214,3},{4885,65218,3},{4887,65226,3},{4887,65228,3}, {4882,65228,3},{4875,65224,3},{4882,65229,3},{4882,65234,3},{4880,65236,3}, {4878,65231,3},{4877,65239,3},{4877,65241,3},{4875,65243,3},{4873,65243,3}, {4865,65254,3},{4860,65254,3},{4855,65264,3},{4853,65263,3},{4850,65268,3}, {4853,65269,3},{4853,65273,3},{4860,65281,3},{4862,65289,3},{4863,65289,3}, {4865,65288,3},{4865,65294,3},{4863,65294,3},{4865,65298,3},{4867,65303,3}, {4870,65304,3},{4867,65308,3},{4862,65303,3},{4865,65311,3},{4863,65313,3}, {4858,65314,3},{4862,65316,3},{4858,65318,3},{4862,65321,3},{4862,65323,3}, {4863,65321,3},{4865,65326,3},{4865,65331,3},{4853,65339,3},{4852,65338,3}, {4853,65343,3},{4853,65339,3},{4858,65338,3},{4858,65341,3},{4860,65336,3}, {4865,65333,3},{4867,65336,3},{4868,65338,3},{4868,65343,3},{4870,65343,3}, {4872,65351,3},{4870,65351,3},{4865,65349,3},{4863,65351,3},{4860,65359,3}, {4862,65373,3},{4863,65378,3},{4863,65386,3},{4865,65394,3},{4863,65401,3}, {4867,65396,3},{4868,65386,3},{4872,65384,3},{4875,65379,3},{4883,65379,3}, {4883,65376,3},{4887,65378,3},{4893,65381,3},{4895,65379,3},{4902,65381,3}, {4902,65386,3},{4903,65383,3},{4902,65379,3},{4900,65378,3},{4903,65376,3}, {4908,65378,3},{4910,65374,3},{4913,65376,3},{4913,65379,3},{4915,65376,3}, {4922,65374,3},{4922,65381,3},{4923,65374,3},{4922,65374,3},{4922,65373,3}, {4928,65369,3},{4932,65366,3},{4933,65368,3},{4935,65366,3},{4933,65364,3}, {4938,65359,3},{4938,65354,3},{4945,65354,3},{4950,65351,3},{4953,65348,3}, {4958,65353,3},{4963,65351,3},{4965,65349,3},{4968,65341,3},{4973,65343,3}, {4970,65348,3},{4972,65351,3},{4968,65354,3},{4967,65368,3},{4967,65369,3}, {4965,65376,3},{4967,65384,3},{4970,65389,3},{4970,65411,3},{4962,65413,3}, {4962,65411,3},{4958,65409,3},{4958,65406,3},{4955,65406,3},{4940,65419,3}, {4935,65418,3},{4935,65423,3},{4933,65423,3},{4935,65426,3},{4937,65424,3}, {4940,65429,3},{4940,65438,3},{4940,65444,3},{4937,65453,3},{4933,65496,3}, {4928,65511,3},{4927,65513,3},{4928,65516,3},{4930,65526,3},{4933,0,3}, {4937,8,3},{4942,15,3},{4943,22,3},{4945,42,3},{4948,50,3},{4945,35,3}, {4947,25,3},{4948,18,3},{4947,18,3},{4947,17,3},{4952,8,3},{4968,17,3}, {4972,22,3},{4975,35,3},{4987,63,3},{4987,78,3},{4992,97,3},{4993,107,3}, {4998,123,3},{5010,143,3},{5020,152,3},{5022,155,3},{5020,158,3},{5018,167,3}, {5020,165,3},{5022,167,3},{5022,163,3},{5028,153,3},{5037,155,3},{5037,162,3}, {5040,155,3},{5053,158,3},{5055,160,3},{5058,158,3},{5068,157,3},{5078,160,3}, {5087,158,3},{5088,165,3},{5095,173,3},{5098,185,3},{5102,212,3},{5105,232,3}, {5105,242,3},{5108,255,3},{5100,258,3},{5100,260,3},{5095,263,3},{5092,260,3}, {5088,262,3},{5085,260,3},{5082,263,3},{5082,272,3},{5073,280,3},{5073,285,3}, {5070,290,3},{5073,293,3},{5075,295,3},{5078,308,3},{5080,312,3},{5078,317,3}, {5072,320,3},{5072,323,3},{5068,327,3},{5067,325,3},{5060,328,3},{5053,328,3}, {5050,337,3},{5052,345,3},{5053,348,3},{5052,352,3},{5048,352,3},{5048,362,3}, {5045,367,3},{5037,367,3},{5030,370,3},{5035,377,3},{5035,385,3},{5033,390,3}, {5035,403,3},{5030,412,3},{5025,415,3},{5027,417,3},{5028,417,3},{5027,422,3}, {5025,422,3},{5022,417,3},{5013,413,3},{5013,420,3},{5007,423,3},{5003,415,3}, {4998,415,3},{4997,422,3},{4997,432,3},{4997,433,3},{4993,445,3},{4998,460,3}, {5000,467,3},{5008,470,3},{5017,483,3},{5015,485,3},{5015,488,3},{5013,490,3}, {5008,488,3},{5010,487,3},{5008,485,3},{5007,483,3},{5005,485,3},{4998,480,3}, {4995,480,3},{4995,485,3},{4992,488,3},{4987,485,3},{4983,487,3},{4980,487,3}, {4980,498,3},{4980,500,3},{4977,507,3},{4977,510,3},{4972,513,3},{4972,517,3}, {4970,517,3},{4968,523,3},{4970,528,3},{4967,533,3},{4962,532,3},{4963,535,3}, {4962,540,3},{4960,543,3},{4953,548,3},{4950,547,3},{4952,553,3},{4953,557,3}, {4952,562,3},{4955,567,3},{4953,573,3},{4955,577,3},{4955,578,3},{4953,580,3}, {4950,587,3},{4948,597,3},{4947,598,3},{4945,598,3},{4945,603,3},{4947,607,3}, {4945,608,3},{4948,612,3},{4950,617,3},{4950,615,3},{4950,623,3},{4947,637,3}, {4948,642,3},{4947,647,3},{4943,653,3},{4940,653,3},{4937,660,3},{4935,657,3}, {4933,657,3},{4928,667,3},{4922,670,3},{4922,673,3},{4918,672,3},{4917,673,3}, {4915,683,3},{4917,685,3},{4918,687,3},{4922,685,3},{4922,693,3},{4920,695,3}, {4918,703,3},{4912,705,3},{4913,708,3},{4915,708,3},{4915,710,3},{4913,712,3}, {4912,720,3},{4913,723,3},{4912,730,3},{4913,732,3},{4915,737,3},{4917,738,3}, {4917,748,3},{4915,750,3},{4913,748,3},{4908,753,3},{4908,760,3},{4905,765,3}, {4905,777,3},{4905,780,3},{4903,787,3},{4905,795,3},{4898,808,3},{4897,823,3}, {4895,818,3},{4890,813,3},{4880,810,3},{4878,803,3},{4875,802,3},{4875,797,3}, {4870,795,3},{4865,783,3},{4858,780,3},{4852,780,3},{4848,777,3},{4840,773,3}, {4833,775,3},{4830,770,3},{4825,768,3},{4812,758,3},{4805,757,3},{4798,762,3}, {4793,758,3},{4790,758,3},{4788,755,3},{4785,757,3},{4778,753,3},{4773,755,3}, {4770,752,3},{4767,752,3},{4763,757,3},{4758,758,3},{4755,750,3},{4753,752,3}, {4752,750,3},{4750,750,3},{4748,748,3},{4750,743,3},{4747,745,3},{4743,738,3}, {4743,732,3},{4742,725,3},{4743,723,3},{4745,718,3},{4750,720,3},{4750,713,3}, {4750,708,3},{4750,703,3},{4750,698,3},{4745,700,3},{4743,695,3},{4740,693,3}, {4738,688,3},{4735,688,3},{4737,702,3},{4737,705,3},{4735,707,3},{4732,702,3}, {4730,702,3},{4728,695,3},{4725,695,3},{4723,693,3},{4717,683,3},{4717,685,3}, {4708,670,3},{4703,670,3},{4700,663,3},{4697,648,3},{4693,643,3},{4687,647,3}, {4682,643,3},{4678,645,3},{4672,637,3},{4668,628,3},{4660,613,3},{4655,617,3}, {4648,608,3},{4645,608,3},{4643,607,3},{4637,617,3},{4630,610,3},{4627,612,3}, {4622,597,3},{4618,600,3},{4615,598,3},{4613,597,3},{4615,615,3},{4617,618,3}, {4620,620,3},{4625,630,3},{4627,630,3},{4627,627,3},{4630,625,3},{4632,625,3}, {4632,623,3},{4635,625,3},{4640,632,3},{4642,642,3},{4643,645,3},{4645,650,3}, {4647,663,3},{4643,678,3},{4642,682,3},{4638,680,3},{4635,677,3},{4627,685,3}, {4622,680,3},{4615,678,3},{4613,688,3},{4605,687,3},{4607,693,3},{4600,702,3}, {4597,700,3},{4597,703,3},{4593,703,3},{4587,697,3},{4585,687,3},{4583,687,3}, {4583,682,3},{4578,680,3},{4573,682,3},{4570,683,3},{4568,690,3},{4567,692,3}, {4567,695,3},{4565,698,3},{4560,697,3},{4552,700,3},{4548,708,3},{4543,712,3}, {4542,718,3},{4533,713,3},{4533,712,3},{4525,713,3},{4525,710,3},{4522,707,3}, {4523,705,3},{4522,697,3},{4518,693,3},{4517,688,3},{4515,690,3},{4513,688,3}, {4513,685,3},{4517,677,3},{4515,673,3},{4515,668,3},{4512,662,3},{4508,665,3}, {4503,667,3},{4502,675,3},{4492,675,3},{4487,685,3},{4487,690,3},{4487,695,3}, {4483,703,3},{4480,702,3},{4475,703,3},{4472,707,3},{4468,707,3},{4468,698,3}, {4467,695,3},{4463,697,3},{4458,693,3},{4453,685,3},{4448,687,3},{4445,693,3}, {4443,688,3},{4438,688,3},{4433,693,3},{4432,693,3},{4428,697,3},{4425,698,3}, {4425,705,3},{4422,712,3},{4422,715,3},{4418,722,3},{4418,723,3},{4415,727,3}, {4415,733,3},{4413,735,3},{4413,742,3},{4417,755,3},{4417,762,3},{4418,762,3}, {4418,767,3},{4413,765,3},{4410,770,3},{4408,770,3},{4405,767,3},{4400,765,3}, {4395,757,3},{4390,755,3},{4388,750,3},{4378,753,3},{4378,750,3},{4378,748,3}, {4375,747,3},{4375,743,3},{4372,738,3},{4375,738,3},{4377,742,3},{4375,743,3}, {4373,738,3},{4372,733,3},{4368,733,3},{4372,732,3},{4370,723,3},{4367,722,3}, {4367,715,3},{4363,713,3},{4357,713,3},{4358,710,3},{4357,702,3},{4355,697,3}, {4352,695,3},{4350,695,3},{4343,688,3},{4342,685,3},{4343,675,3},{4337,672,3}, {4335,667,3},{4332,667,3},{4328,658,3},{4328,670,3},{4323,667,3},{4322,668,3}, {4320,663,3},{4318,663,3},{4317,662,3},{4318,660,3},{4320,660,3},{4320,657,3}, {4317,650,3},{4317,640,3},{4313,637,3},{4308,637,3},{4313,627,3},{4313,618,3}, {4310,617,3},{4307,615,3},{4307,618,3},{4305,617,3},{4305,608,3},{4307,612,3}, {4310,612,3},{4310,603,3},{4312,602,3},{4312,593,3},{4313,593,3},{4312,588,3}, {4308,593,3},{4308,590,3},{4305,587,3},{4307,583,3},{4308,577,3},{4312,582,3}, {4312,578,3},{4315,577,3},{4315,570,3},{4318,568,3},{4318,562,3},{4318,560,3}, {4318,558,3},{4322,553,3},{4320,550,3},{4322,547,3},{4322,537,3},{4323,535,3}, {4327,537,3},{4328,535,3},{4333,537,3},{4337,532,3},{4333,522,3},{4335,503,3}, {4338,502,3},{4340,502,3},{4342,507,3},{4342,515,3},{4347,523,3},{4350,522,3}, {4348,517,3},{4350,512,3},{4353,512,3},{4353,505,3},{4355,503,3},{4350,500,3}, {4348,502,3},{4347,505,3},{4343,507,3},{4342,498,3},{4343,492,3},{4342,487,3}, {4340,485,3},{4338,487,3},{4337,487,3},{4343,475,3},{4352,475,3},{4357,472,3}, {4357,470,3},{4355,470,3},{4352,473,3},{4342,473,3},{4338,482,3},{4337,482,3}, {4335,480,3},{4337,460,3},{4338,457,3},{4343,460,3},{4345,453,3},{4345,437,3}, {4348,418,3},{4350,415,3},{4353,415,3},{4357,412,3},{4357,395,3},{4358,408,3}, {4362,410,3},{4355,388,3},{4353,387,3},{4352,382,3},{4348,380,3},{4343,370,3}, {4345,377,3},{4353,388,3},{4355,393,3},{4342,370,3},{4338,362,3},{4328,352,3}, {4328,340,3},{4322,327,3},{4308,315,3},{4310,312,3},{4312,313,3},{4312,310,3}, {4308,310,3},{4307,313,3},{4305,313,3},{4295,308,3},{4295,307,3},{4298,308,3}, {4298,307,3},{4297,305,3},{4293,310,3},{4290,310,3},{4290,305,3},{4287,305,3}, {4283,300,3},{4282,302,3},{4280,308,3},{4268,308,3},{4270,305,3},{4268,305,3}, {4265,308,3},{4255,310,3},{4252,315,3},{4243,322,3},{4245,315,3},{4243,312,3}, {4248,307,3},{4248,302,3},{4248,297,3},{4247,295,3},{4247,288,3},{4242,282,3}, {4243,275,3},{4242,272,3},{4238,268,3},{4235,270,3},{4233,270,3},{4237,260,3}, {4235,258,3},{4235,252,3},{4242,238,3},{4243,228,3},{4242,218,3},{4238,210,3}, {4237,207,3},{4238,202,3},{4243,200,3},{4247,197,3},{4250,175,3},{4257,178,3}, {4258,182,3},{4260,178,3},{4262,178,3},{4263,165,3},{4267,160,3},{4267,153,3}, {4262,152,3},{4260,148,3},{4267,147,3},{4273,137,3},{4273,122,3},{4273,118,3}, {4277,118,3},{4280,110,3},{4280,97,3},{4283,90,3},{4285,82,3},{4288,77,3}, {4285,70,3},{4278,70,3},{4273,72,3},{4272,72,3},{4272,47,3},{4275,40,3}, {4270,37,3},{4270,32,3},{4273,30,3},{4275,22,3},{4272,10,3},{4272,0,3}, {4273,65529,3},{4283,65521,3},{4283,65518,3},{4287,65508,3},{4285,65503,3}, {4282,65499,3},{4283,65488,3},{4280,65483,3},{4283,65483,3},{4283,65479,3}, {4290,65473,3},{4292,65466,3},{4297,65466,3},{4298,65463,3},{4297,65446,3}, {4298,65441,3},{4303,65429,3},{4307,65413,3},{4308,65409,3},{4313,65409,3}, {4312,65404,3},{4307,65403,3},{4307,65396,3},{4310,65393,3},{4320,65401,3}, {4328,65399,3},{4332,65384,3},{4328,65383,3},{4328,65379,3},{4333,65374,3}, {4332,65366,3},{4335,65364,3},{4340,65359,3},{4250,175,131},{4250,172,3}, {4248,170,3},{4247,160,3},{4245,160,3},{4245,157,3},{4245,148,3},{4248,145,3}, {4250,147,3},{4252,150,3},{4253,148,3},{4255,145,3},{4260,148,3},{4262,152,3}, {4267,153,3},{4267,160,3},{4263,165,3},{4262,178,3},{4260,178,3},{4258,182,3}, {4257,178,3},{4250,175,3},{4373,738,131},{4375,738,3},{4377,742,3},{4375,743,3}, {4373,738,3},{3718,64794,131},{3745,64789,3},{3748,64788,3},{3752,64784,3}, {3757,64784,3},{3765,64789,3},{3775,64793,3},{3782,64803,3},{3787,64808,3}, {3793,64809,3},{3798,64809,3},{3800,64814,3},{3800,64821,3},{3803,64823,3}, {3805,64824,3},{3803,64828,3},{3802,64829,3},{3803,64833,3},{3807,64833,3}, {3812,64836,3},{3818,64836,3},{3822,64841,3},{3818,64831,3},{3818,64824,3}, {3823,64823,3},{3828,64816,3},{3843,64806,3},{3843,64799,3},{3847,64803,3}, {3848,64801,3},{3855,64804,3},{3862,64809,3},{3863,64806,3},{3872,64808,3}, {3882,64821,3},{3883,64826,3},{3887,64833,3},{3890,64829,3},{3895,64831,3}, {3900,64836,3},{3905,64838,3},{3908,64836,3},{3910,64833,3},{3912,64829,3}, {3910,64819,3},{3917,64819,3},{3918,64811,3},{3923,64809,3},{3928,64809,3}, {3933,64803,3},{3940,64801,3},{3942,64804,3},{3947,64804,3},{3960,64784,3}, {3968,64781,3},{3967,64801,3},{3968,64808,3},{3967,64818,3},{3968,64836,3}, {3978,64839,3},{3982,64839,3},{3987,64846,3},{4002,64849,3},{4012,64843,3}, {4013,64834,3},{4022,64834,3},{4028,64843,3},{4028,64851,3},{4032,64851,3}, {4035,64858,3},{4037,64858,3},{4042,64853,3},{4045,64851,3},{4053,64858,3}, {4058,64853,3},{4067,64856,3},{4075,64853,3},{4085,64854,3},{4087,64856,3}, {4088,64853,3},{4103,64843,3},{4105,64856,3},{4110,64861,3},{4115,64861,3}, {4118,64864,3},{4125,64871,3},{4125,64879,3},{4128,64886,3},{4135,64896,3}, {4137,64899,3},{4140,64899,3},{4140,64904,3},{4148,64908,3},{4158,64918,3}, {4162,64913,3},{4165,64909,3},{4168,64901,3},{4168,64891,3},{4167,64886,3}, {4168,64883,3},{4175,64881,3},{4187,64884,3},{4188,64884,3},{4188,64878,3}, {4195,64881,3},{4197,64878,3},{4195,64873,3},{4195,64863,3},{4198,64859,3}, {4200,64854,3},{4195,64854,3},{4195,64846,3},{4195,64843,3},{4198,64839,3}, {4197,64834,3},{4197,64831,3},{4198,64826,3},{4198,64818,3},{4192,64819,3}, {4187,64808,3},{4185,64798,3},{4183,64794,3},{4187,64789,3},{4188,64784,3}, {4187,64783,3},{4183,64773,3},{4190,64776,3},{4190,64768,3},{4192,64764,3}, {4190,64753,3},{4187,64748,3},{4193,64746,3},{4195,64744,3},{4190,64741,3}, {4188,64736,3},{4183,64729,3},{4183,64721,3},{4183,64719,3},{4190,64718,3}, {4190,64714,3},{4192,64711,3},{4202,64718,3},{4203,64726,3},{4208,64726,3}, {4210,64724,3},{4210,64716,3},{4215,64716,3},{4210,64703,3},{4210,64689,3}, {4207,64683,3},{4205,64674,3},{4200,64669,3},{4197,64661,3},{4188,64649,3}, {4197,64648,3},{4212,64646,3},{4213,64651,3},{4212,64654,3},{4213,64654,3}, {4217,64651,3},{4217,64654,3},{4223,64659,3},{4230,64673,3},{4235,64674,3}, {4233,64671,3},{4230,64669,3},{4225,64658,3},{4227,64649,3},{4230,64651,3}, {4228,64654,3},{4233,64653,3},{4233,64659,3},{4243,64671,3},{4243,64666,3}, {4240,64659,3},{4240,64653,3},{4242,64649,3},{4243,64648,3},{4247,64646,3}, {4247,64643,3},{4248,64643,3},{4250,64648,3},{4248,64649,3},{4247,64649,3}, {4247,64654,3},{4247,64653,3},{4250,64654,3},{4257,64653,3},{4260,64659,3}, {4268,64663,3},{4265,64661,3},{4263,64656,3},{4268,64651,3},{4262,64649,3}, {4262,64648,3},{4263,64646,3},{4262,64644,3},{4258,64644,3},{4258,64639,3}, {4255,64638,3},{4253,64636,3},{4253,64633,3},{4258,64633,3},{4260,64629,3}, {4268,64633,3},{4273,64634,3},{4275,64641,3},{4278,64643,3},{4280,64646,3}, {4283,64648,3},{4283,64644,3},{4282,64644,3},{4280,64641,3},{4280,64631,3}, {4278,64631,3},{4275,64628,3},{4277,64626,3},{4282,64623,3},{4283,64626,3}, {4287,64621,3},{4292,64623,3},{4295,64618,3},{4292,64616,3},{4295,64613,3}, {4292,64611,3},{4290,64609,3},{4293,64608,3},{4302,64611,3},{4307,64608,3}, {4307,64611,3},{4310,64611,3},{4310,64614,3},{4312,64614,3},{4310,64618,3}, {4312,64619,3},{4313,64621,3},{4315,64626,3},{4313,64616,3},{4315,64614,3}, {4318,64618,3},{4320,64629,3},{4325,64634,3},{4323,64638,3},{4323,64643,3}, {4328,64638,3},{4330,64638,3},{4332,64644,3},{4335,64651,3},{4332,64658,3}, {4330,64664,3},{4332,64671,3},{4333,64678,3},{4333,64686,3},{4337,64691,3}, {4340,64696,3},{4337,64701,3},{4342,64703,3},{4340,64709,3},{4335,64713,3}, {4333,64714,3},{4338,64714,3},{4340,64714,3},{4343,64716,3},{4345,64709,3}, {4347,64706,3},{4347,64714,3},{4350,64719,3},{4348,64713,3},{4350,64711,3}, {4348,64704,3},{4353,64704,3},{4357,64704,3},{4358,64713,3},{4362,64718,3}, {4365,64723,3},{4367,64726,3},{4365,64728,3},{4365,64729,3},{4370,64729,3}, {4372,64736,3},{4375,64741,3},{4378,64746,3},{4377,64749,3},{4372,64751,3}, {4373,64749,3},{4368,64749,3},{4368,64746,3},{4367,64749,3},{4368,64751,3}, {4372,64749,3},{4372,64754,3},{4373,64754,3},{4377,64763,3},{4380,64768,3}, {4378,64769,3},{4373,64766,3},{4377,64771,3},{4373,64774,3},{4370,64774,3}, {4373,64779,3},{4373,64788,3},{4372,64788,3},{4368,64799,3},{4362,64806,3}, {4360,64809,3},{4357,64809,3},{4358,64833,3},{4357,64833,3},{4353,64831,3}, {4350,64831,3},{4355,64834,3},{4357,64834,3},{4358,64841,3},{4357,64864,3}, {4358,64871,3},{4358,64876,3},{4357,64886,3},{4357,64889,3},{4358,64889,3}, {4357,64894,3},{4358,64904,3},{4362,64913,3},{4358,64918,3},{4358,64929,3}, {4360,64934,3},{4360,64944,3},{4365,64946,3},{4365,64949,3},{4368,64951,3}, {4365,64958,3},{4358,64966,3},{4360,64966,3},{4357,64969,3},{4357,64996,3}, {4355,64998,3},{4352,64994,3},{4355,64999,3},{4355,65006,3},{4350,65016,3}, {4350,65028,3},{4348,65031,3},{4348,65039,3},{4348,65041,3},{4343,65063,3}, {4342,65083,3},{4342,65086,3},{4340,65088,3},{4342,65093,3},{4340,65098,3}, {4342,65101,3},{4340,65104,3},{4342,65113,3},{4345,65128,3},{4345,65133,3}, {4347,65134,3},{4345,65139,3},{4347,65139,3},{4350,65143,3},{4352,65154,3}, {4350,65159,3},{4347,65153,3},{4343,65154,3},{4347,65159,3},{4345,65163,3}, {4348,65161,3},{4348,65163,3},{4350,65164,3},{4350,65168,3},{4353,65178,3}, {4350,65186,3},{4348,65193,3},{4347,65193,3},{4345,65186,3},{4342,65189,3}, {4345,65191,3},{4342,65211,3},{4338,65219,3},{4337,65229,3},{4333,65234,3}, {4340,65233,3},{4343,65241,3},{4345,65243,3},{4345,65254,3},{4347,65261,3}, {4343,65266,3},{4338,65268,3},{4342,65269,3},{4340,65284,3},{4332,65301,3}, {4332,65318,3},{4332,65321,3},{4330,65323,3},{4335,65339,3},{4333,65346,3}, {4335,65344,3},{4342,65356,3},{4340,65359,3},{4335,65364,3},{4332,65366,3}, {4333,65374,3},{4328,65379,3},{4328,65383,3},{4332,65384,3},{4328,65399,3}, {4320,65401,3},{4310,65393,3},{4307,65396,3},{4307,65403,3},{4312,65404,3}, {4313,65409,3},{4308,65409,3},{4307,65413,3},{4303,65429,3},{4298,65441,3}, {4297,65446,3},{4298,65463,3},{4297,65466,3},{4292,65466,3},{4290,65473,3}, {4283,65479,3},{4283,65483,3},{4280,65483,3},{4283,65488,3},{4282,65499,3}, {4285,65503,3},{4287,65508,3},{4283,65518,3},{4283,65521,3},{4273,65529,3}, {4272,0,3},{4272,10,3},{4275,22,3},{4273,30,3},{4270,32,3},{4270,37,3}, {4275,40,3},{4272,47,3},{4272,72,3},{4273,72,3},{4278,70,3},{4285,70,3}, {4288,77,3},{4285,82,3},{4283,90,3},{4280,97,3},{4280,110,3},{4277,118,3}, {4273,118,3},{4273,122,3},{4273,137,3},{4267,147,3},{4260,148,3},{4255,145,3}, {4253,148,3},{4252,150,3},{4250,147,3},{4248,145,3},{4245,148,3},{4245,157,3}, {4245,160,3},{4247,160,3},{4248,170,3},{4250,172,3},{4250,175,3},{4247,197,3}, {4243,200,3},{4238,202,3},{4237,207,3},{4238,210,3},{4242,218,3},{4243,228,3}, {4242,238,3},{4235,252,3},{4235,258,3},{4237,260,3},{4233,270,3},{4235,270,3}, {4238,268,3},{4242,272,3},{4243,275,3},{4242,282,3},{4247,288,3},{4247,295,3}, {4248,297,3},{4248,302,3},{4248,307,3},{4243,312,3},{4245,315,3},{4243,322,3}, {4238,320,3},{4235,323,3},{4235,325,3},{4233,332,3},{4232,335,3},{4225,330,3}, {4225,322,3},{4227,320,3},{4225,317,3},{4222,315,3},{4215,315,3},{4208,323,3}, {4202,323,3},{4197,327,3},{4188,322,3},{4185,313,3},{4180,308,3},{4173,297,3}, {4172,287,3},{4163,275,3},{4145,228,3},{4132,215,3},{4127,207,3},{4125,193,3}, {4120,168,3},{4118,152,3},{4113,140,3},{4112,123,3},{4107,118,3},{4108,113,3}, {4107,105,3},{4103,98,3},{4097,88,3},{4080,72,3},{4077,78,3},{4080,77,3}, {4080,80,3},{4072,90,3},{4068,87,3},{4067,77,3},{4057,67,3},{4060,62,3}, {4060,70,3},{4065,73,3},{4063,62,3},{4060,58,3},{4030,37,3},{4025,30,3}, {4022,28,3},{4017,20,3},{4007,13,3},{4003,5,3},{3995,0,3},{3992,65534,3}, {3980,65523,3},{3970,65516,3},{3965,65514,3},{3955,65504,3},{3950,65503,3}, {3938,65503,3},{3918,65513,3},{3917,65511,3},{3912,65511,3},{3893,65524,3}, {3887,0,3},{3885,10,3},{3882,17,3},{3880,18,3},{3880,17,3},{3877,22,3}, {3873,22,3},{3872,17,3},{3868,13,3},{3867,8,3},{3863,7,3},{3862,0,3},{3860,65529,3}, {3858,65529,3},{3855,65529,3},{3853,65526,3},{3853,65519,3},{3845,65498,3}, {3840,65494,3},{3835,65494,3},{3835,65489,3},{3833,65488,3},{3833,65484,3}, {3820,65483,3},{3818,65474,3},{3815,65469,3},{3805,65469,3},{3798,65471,3}, {3795,65466,3},{3790,65461,3},{3783,65459,3},{3780,65461,3},{3782,65458,3}, {3780,65456,3},{3777,65454,3},{3775,65451,3},{3773,65449,3},{3767,65454,3}, {3763,65461,3},{3765,65464,3},{3763,65466,3},{3762,65464,3},{3755,65444,3}, {3758,65438,3},{3758,65429,3},{3757,65424,3},{3753,65424,3},{3757,65414,3}, {3755,65401,3},{3748,65389,3},{3743,65386,3},{3743,65383,3},{3742,65379,3}, {3738,65371,3},{3720,65354,3},{3698,65344,3},{3695,65346,3},{3693,65341,3}, {3690,65336,3},{3685,65334,3},{3673,65323,3},{3673,65318,3},{3673,65314,3}, {3680,65308,3},{3683,65299,3},{3682,65293,3},{3682,65278,3},{3673,65271,3}, {3670,65264,3},{3670,65259,3},{3672,65254,3},{3670,65251,3},{3675,65244,3}, {3677,65226,3},{3675,65203,3},{3670,65191,3},{3675,65173,3},{3673,65163,3}, {3675,65151,3},{3673,65141,3},{3675,65128,3},{3673,65124,3},{3672,65113,3}, {3672,65094,3},{3662,65086,3},{3657,65076,3},{3650,65071,3},{3648,65061,3}, {3652,65049,3},{3650,65043,3},{3647,65036,3},{3642,65018,3},{3635,65011,3}, {3630,65009,3},{3627,65004,3},{3615,64999,3},{3615,64998,3},{3615,64999,3}, {3615,64998,3},{3617,64993,3},{3615,64989,3},{3607,64991,3},{3605,64989,3}, {3600,64974,3},{3605,64968,3},{3607,64959,3},{3608,64954,3},{3618,64943,3}, {3618,64931,3},{3628,64924,3},{3632,64919,3},{3637,64918,3},{3645,64913,3}, {3653,64904,3},{3655,64906,3},{3653,64908,3},{3648,64913,3},{3652,64918,3}, {3652,64914,3},{3652,64911,3},{3657,64913,3},{3662,64906,3},{3663,64898,3}, {3673,64893,3},{3675,64893,3},{3680,64903,3},{3687,64901,3},{3690,64903,3}, {3690,64906,3},{3690,64914,3},{3693,64916,3},{3692,64913,3},{3690,64903,3}, {3682,64901,3},{3680,64899,3},{3682,64896,3},{3693,64889,3},{3703,64876,3}, {3718,64846,3},{3722,64844,3},{3728,64851,3},{3722,64843,3},{3723,64839,3}, {3717,64843,3},{3722,64828,3},{3722,64823,3},{3720,64826,3},{3720,64803,3}, {3718,64798,3},{3718,64794,3},{3717,64794,3},{3718,64791,3},{3717,64783,3}, {3698,64753,3},{3702,64746,3},{3700,64739,3},{3700,64736,3},{3698,64739,3}, {3705,64729,3},{3707,64721,3},{3707,64706,3},{3710,64699,3},{3708,64691,3}, {3712,64683,3},{3712,64676,3},{3712,64671,3},{3708,64668,3},{3705,64651,3}, {3700,64641,3},{3703,64636,3},{3715,64644,3},{3718,64644,3},{3725,64648,3}, {3732,64648,3},{3743,64654,3},{3753,64656,3},{3760,64653,3},{3768,64654,3}, {3770,64658,3},{3770,64661,3},{3773,64663,3},{3772,64656,3},{3773,64654,3}, {3788,64654,3},{3792,64653,3},{3795,64646,3},{3813,64656,3},{3825,64656,3}, {3840,64653,3},{3848,64641,3},{3848,64646,3},{3845,64651,3},{3843,64656,3}, {3842,64658,3},{3843,64659,3},{3840,64666,3},{3842,64676,3},{3842,64668,3}, {3845,64663,3},{3850,64661,3},{3852,64663,3},{3857,64659,3},{3853,64658,3}, {3852,64654,3},{3852,64658,3},{3848,64656,3},{3848,64653,3},{3852,64644,3}, {3847,64636,3},{3845,64629,3},{3842,64613,3},{3847,64616,3},{3872,64586,3}, {3875,64588,3},{3880,64586,3},{3893,64593,3},{3908,64593,3},{3923,64601,3}, {3932,64601,3},{3937,64594,3},{3938,64603,3},{3943,64611,3},{3940,64613,3}, {3942,64616,3},{3945,64613,3},{3955,64623,3},{3972,64629,3},{3983,64636,3}, {4013,64649,3},{4012,64654,3},{4012,64658,3},{4015,64654,3},{4015,64648,3}, {4018,64644,3},{4040,64654,3},{4062,64659,3},{4063,64661,3},{4062,64661,3}, {4065,64664,3},{4065,64668,3},{4067,64668,3},{4067,64669,3},{4070,64671,3}, {4070,64669,3},{4072,64669,3},{4073,64674,3},{4075,64679,3},{4073,64673,3}, {4073,64669,3},{4075,64668,3},{4078,64668,3},{4082,64673,3},{4083,64671,3}, {4080,64669,3},{4082,64668,3},{4075,64666,3},{4067,64663,3},{4067,64661,3}, {4097,64671,3},{4113,64669,3},{4115,64671,3},{4117,64666,3},{4120,64664,3}, {4133,64661,3},{4133,64659,3},{4140,64658,3},{4152,64656,3},{4153,64658,3}, {4155,64656,3},{4167,64653,3},{4170,64663,3},{4172,64666,3},{4168,64654,3}, {4170,64651,3},{4172,64648,3},{4175,64646,3},{4180,64648,3},{4183,64648,3}, {4192,64659,3},{4197,64661,3},{4200,64669,3},{4205,64674,3},{4207,64683,3}, {4210,64689,3},{4210,64703,3},{4215,64716,3},{4210,64716,3},{4210,64724,3}, {4208,64726,3},{4203,64726,3},{4202,64718,3},{4192,64711,3},{4190,64714,3}, {4190,64718,3},{4183,64719,3},{4183,64721,3},{4183,64729,3},{4188,64736,3}, {4190,64741,3},{4195,64744,3},{4193,64746,3},{4187,64748,3},{4190,64753,3}, {4192,64764,3},{4190,64768,3},{4190,64776,3},{4183,64773,3},{4187,64783,3}, {4188,64784,3},{4187,64789,3},{4183,64794,3},{4185,64798,3},{4187,64808,3}, {4192,64819,3},{4198,64818,3},{4198,64826,3},{4197,64831,3},{4197,64834,3}, {4198,64839,3},{4195,64843,3},{4195,64846,3},{4195,64854,3},{4200,64854,3}, {4198,64859,3},{4195,64863,3},{4195,64873,3},{4197,64878,3},{4195,64881,3}, {4188,64878,3},{4188,64884,3},{4187,64884,3},{4175,64881,3},{4168,64883,3}, {4167,64886,3},{4168,64891,3},{4168,64901,3},{4165,64909,3},{4162,64913,3}, {4158,64918,3},{4148,64908,3},{4140,64904,3},{4140,64899,3},{4137,64899,3}, {4135,64896,3},{4128,64886,3},{4125,64879,3},{4125,64871,3},{4118,64864,3}, {4115,64861,3},{4110,64861,3},{4105,64856,3},{4103,64843,3},{4088,64853,3}, {4087,64856,3},{4085,64854,3},{4075,64853,3},{4067,64856,3},{4058,64853,3}, {4053,64858,3},{4045,64851,3},{4042,64853,3},{4037,64858,3},{4035,64858,3}, {4032,64851,3},{4028,64851,3},{4028,64843,3},{4022,64834,3},{4013,64834,3}, {4012,64843,3},{4002,64849,3},{3987,64846,3},{3982,64839,3},{3978,64839,3}, {3968,64836,3},{3967,64818,3},{3968,64808,3},{3967,64801,3},{3968,64781,3}, {3960,64784,3},{3947,64804,3},{3942,64804,3},{3940,64801,3},{3933,64803,3}, {3928,64809,3},{3923,64809,3},{3918,64811,3},{3917,64819,3},{3910,64819,3}, {3912,64829,3},{3910,64833,3},{3908,64836,3},{3905,64838,3},{3900,64836,3}, {3895,64831,3},{3890,64829,3},{3887,64833,3},{3883,64826,3},{3882,64821,3}, {3872,64808,3},{3863,64806,3},{3862,64809,3},{3855,64804,3},{3848,64801,3}, {3847,64803,3},{3843,64799,3},{3843,64806,3},{3828,64816,3},{3823,64823,3}, {3818,64824,3},{3818,64831,3},{3822,64841,3},{3818,64836,3},{3812,64836,3}, {3807,64833,3},{3803,64833,3},{3802,64829,3},{3803,64828,3},{3805,64824,3}, {3803,64823,3},{3800,64821,3},{3800,64814,3},{3798,64809,3},{3793,64809,3}, {3787,64808,3},{3782,64803,3},{3775,64793,3},{3765,64789,3},{3757,64784,3}, {3752,64784,3},{3748,64788,3},{3745,64789,3},{3718,64794,3},{3615,64998,131}, {3615,64999,3},{3610,64999,3},{3615,64998,3},{5162,65269,131},{5167,65268,3}, {5167,65269,3},{5173,65268,3},{5178,65268,3},{5183,65269,3},{5185,65261,3}, {5188,65256,3},{5192,65249,3},{5193,65249,3},{5192,65241,3},{5195,65234,3}, {5198,65228,3},{5203,65228,3},{5208,65223,3},{5213,65223,3},{5215,65226,3}, {5217,65224,3},{5222,65228,3},{5227,65234,3},{5227,65238,3},{5227,65234,3}, {5232,65234,3},{5235,65238,3},{5235,65229,3},{5238,65223,3},{5242,65214,3}, {5247,65214,3},{5250,65223,3},{5250,65233,3},{5252,65236,3},{5257,65236,3}, {5255,65226,3},{5253,65223,3},{5258,65223,3},{5263,65228,3},{5268,65231,3}, {5272,65233,3},{5272,65236,3},{5272,65238,3},{5277,65233,3},{5280,65224,3}, {5278,65221,3},{5285,65221,3},{5290,65221,3},{5293,65226,3},{5293,65231,3}, {5297,65238,3},{5293,65243,3},{5295,65246,3},{5292,65254,3},{5290,65254,3}, {5293,65263,3},{5298,65264,3},{5300,65254,3},{5303,65249,3},{5308,65248,3}, {5312,65246,3},{5313,65239,3},{5318,65243,3},{5323,65238,3},{5325,65228,3}, {5327,65229,3},{5338,65216,3},{5340,65219,3},{5343,65231,3},{5340,65234,3}, {5332,65243,3},{5328,65253,3},{5330,65261,3},{5333,65263,3},{5333,65258,3}, {5333,65248,3},{5338,65239,3},{5355,65226,3},{5368,65238,3},{5373,65253,3}, {5373,65233,3},{5380,65229,3},{5392,65231,3},{5395,65244,3},{5393,65248,3}, {5397,65253,3},{5397,65249,3},{5400,65251,3},{5400,65246,3},{5403,65244,3}, {5407,65249,3},{5410,65254,3},{5412,65256,3},{5418,65251,3},{5420,65254,3}, {5420,65248,3},{5415,65243,3},{5415,65239,3},{5420,65233,3},{5412,65228,3}, {5408,65221,3},{5407,65223,3},{5412,65213,3},{5415,65213,3},{5417,65211,3}, {5417,65214,3},{5427,65216,3},{5420,65211,3},{5420,65204,3},{5428,65194,3}, {5435,65194,3},{5452,65173,3},{5458,65178,3},{5465,65179,3},{5472,65184,3}, {5477,65193,3},{5480,65193,3},{5487,65198,3},{5490,65204,3},{5488,65204,3}, {5487,65209,3},{5490,65211,3},{5490,65208,3},{5492,65208,3},{5495,65214,3}, {5492,65226,3},{5493,65233,3},{5495,65233,3},{5495,65228,3},{5497,65229,3}, {5497,65234,3},{5498,65234,3},{5498,65229,3},{5500,65231,3},{5505,65231,3}, {5507,65241,3},{5510,65248,3},{5513,65256,3},{5518,65266,3},{5523,65271,3}, {5528,65274,3},{5532,65281,3},{5535,65288,3},{5535,65298,3},{5542,65304,3}, {5545,65316,3},{5548,65318,3},{5550,65314,3},{5555,65313,3},{5558,65306,3}, {5563,65303,3},{5565,65311,3},{5570,65318,3},{5573,65324,3},{5580,65328,3}, {5582,65333,3},{5575,65338,3},{5563,65354,3},{5565,65358,3},{5563,65359,3}, {5562,65361,3},{5560,65359,3},{5560,65368,3},{5558,65373,3},{5553,65373,3}, {5548,65378,3},{5542,65379,3},{5538,65376,3},{5532,65381,3},{5528,65379,3}, {5518,65386,3},{5515,65384,3},{5500,65394,3},{5497,65401,3},{5492,65399,3}, {5477,65406,3},{5472,65411,3},{5470,65419,3},{5468,65416,3},{5465,65419,3}, {5460,65418,3},{5460,65419,3},{5460,65423,3},{5463,65423,3},{5458,65439,3}, {5455,65458,3},{5450,65473,3},{5448,65479,3},{5445,65484,3},{5442,65484,3}, {5437,65491,3},{5425,65499,3},{5422,65509,3},{5417,65511,3},{5412,65528,3}, {5408,65519,3},{5402,65514,3},{5387,65524,3},{5377,0,3},{5363,13,3},{5358,13,3}, {5357,12,3},{5360,13,3},{5362,12,3},{5363,5,3},{5363,0,3},{5362,65529,3}, {5363,65524,3},{5372,65511,3},{5373,65508,3},{5370,65494,3},{5370,65481,3}, {5372,65473,3},{5370,65464,3},{5368,65466,3},{5370,65474,3},{5367,65483,3}, {5368,65489,3},{5370,65506,3},{5368,65511,3},{5363,65516,3},{5357,65526,3}, {5357,65531,3},{5353,0,3},{5348,8,3},{5347,15,3},{5343,18,3},{5340,23,3}, {5323,33,3},{5317,35,3},{5308,33,3},{5302,17,3},{5292,7,3},{5292,3,3},{5288,0,3}, {5288,8,3},{5288,12,3},{5287,17,3},{5280,23,3},{5280,33,3},{5277,38,3}, {5278,38,3},{5283,43,3},{5293,48,3},{5297,55,3},{5295,60,3},{5297,67,3}, {5295,85,3},{5297,88,3},{5295,90,3},{5295,97,3},{5295,102,3},{5297,97,3}, {5297,98,3},{5297,103,3},{5295,110,3},{5293,128,3},{5287,143,3},{5277,165,3}, {5273,168,3},{5262,175,3},{5255,175,3},{5248,177,3},{5245,173,3},{5238,173,3}, {5227,163,3},{5218,163,3},{5208,158,3},{5205,147,3},{5193,133,3},{5200,125,3}, {5195,127,3},{5197,117,3},{5195,112,3},{5195,128,3},{5187,120,3},{5187,125,3}, {5188,127,3},{5187,130,3},{5185,128,3},{5180,120,3},{5177,113,3},{5178,103,3}, {5180,100,3},{5180,93,3},{5177,88,3},{5175,85,3},{5173,72,3},{5170,78,3}, {5172,80,3},{5175,92,3},{5173,95,3},{5168,97,3},{5163,93,3},{5163,90,3}, {5163,82,3},{5162,87,3},{5160,87,3},{5162,90,3},{5162,95,3},{5160,95,3}, {5153,80,3},{5153,65,3},{5150,57,3},{5150,47,3},{5147,43,3},{5145,38,3}, {5145,45,3},{5148,48,3},{5148,55,3},{5147,70,3},{5145,73,3},{5143,72,3}, {5143,65,3},{5142,60,3},{5142,55,3},{5138,62,3},{5138,65,3},{5138,68,3}, {5138,70,3},{5142,70,3},{5140,73,3},{5142,73,3},{5145,75,3},{5142,90,3}, {5137,95,3},{5135,90,3},{5137,80,3},{5133,92,3},{5138,122,3},{5140,145,3}, {5135,143,3},{5132,138,3},{5122,142,3},{5115,138,3},{5113,135,3},{5110,122,3}, {5108,118,3},{5107,110,3},{5103,103,3},{5098,97,3},{5092,98,3},{5093,80,3}, {5092,73,3},{5087,67,3},{5082,37,3},{5075,27,3},{5073,23,3},{5078,0,3}, {5083,65516,3},{5077,65466,3},{5075,65463,3},{5077,65461,3},{5073,65461,3}, {5073,65454,3},{5077,65444,3},{5080,65449,3},{5083,65446,3},{5082,65444,3}, {5083,65443,3},{5083,65439,3},{5082,65441,3},{5077,65441,3},{5078,65434,3}, {5080,65438,3},{5083,65438,3},{5083,65433,3},{5080,65433,3},{5078,65428,3}, {5080,65426,3},{5083,65429,3},{5085,65428,3},{5083,65419,3},{5082,65424,3}, {5078,65421,3},{5083,65406,3},{5088,65399,3},{5092,65389,3},{5090,65389,3}, {5088,65396,3},{5082,65406,3},{5078,65401,3},{5077,65389,3},{5072,65381,3}, {5073,65368,3},{5073,65361,3},{5072,65363,3},{5072,65354,3},{5072,65349,3}, {5068,65343,3},{5072,65341,3},{5072,65331,3},{5068,65329,3},{5070,65333,3}, {5067,65333,3},{5067,65343,3},{5065,65341,3},{5063,65346,3},{5062,65343,3}, {5058,65341,3},{5058,65331,3},{5058,65329,3},{5062,65316,3},{5063,65296,3}, {5062,65293,3},{5058,65291,3},{5055,65294,3},{5050,65291,3},{5057,65291,3}, {5065,65274,3},{5070,65258,3},{5073,65246,3},{5070,65239,3},{5068,65226,3}, {5068,65214,3},{5060,65199,3},{5062,65194,3},{5067,65189,3},{5060,65193,3}, {5052,65186,3},{5047,65188,3},{5043,65181,3},{5040,65183,3},{5038,65188,3}, {5037,65186,3},{5035,65184,3},{5033,65179,3},{5032,65179,3},{5030,65173,3}, {5027,65171,3},{5022,65171,3},{5020,65164,3},{5022,65159,3},{5022,65158,3}, {5022,65154,3},{5027,65149,3},{5030,65141,3},{5030,65133,3},{5032,65124,3}, {5035,65123,3},{5037,65116,3},{5035,65114,3},{5035,65119,3},{5032,65118,3}, {5032,65114,3},{5035,65109,3},{5035,65104,3},{5035,65094,3},{5033,65089,3}, {5032,65071,3},{5032,65069,3},{5033,65068,3},{5033,65061,3},{5023,65056,3}, {5022,65049,3},{5020,65046,3},{5020,65041,3},{5015,65038,3},{5013,65034,3}, {5015,65036,3},{5015,65034,3},{5022,65034,3},{5022,65033,3},{5020,65029,3}, {5017,65031,3},{5015,65029,3},{5015,65031,3},{5013,65028,3},{5010,65028,3}, {5010,65024,3},{5008,65029,3},{5005,65029,3},{5000,65026,3},{5000,65019,3}, {4995,65016,3},{5000,65011,3},{5007,65008,3},{5008,65003,3},{5013,64988,3}, {5012,64983,3},{5008,64983,3},{5005,64979,3},{5003,64969,3},{5007,64964,3}, {5008,64966,3},{5013,64964,3},{5015,64968,3},{5022,64984,3},{5020,64993,3}, {5023,64998,3},{5023,65003,3},{5027,65009,3},{5032,65014,3},{5035,65021,3}, {5040,65021,3},{5042,65031,3},{5047,65034,3},{5050,65033,3},{5053,65034,3}, {5053,65038,3},{5057,65041,3},{5055,65043,3},{5058,65044,3},{5060,65058,3}, {5067,65061,3},{5070,65068,3},{5073,65071,3},{5078,65081,3},{5090,65081,3}, {5102,65084,3},{5102,65089,3},{5098,65101,3},{5098,65104,3},{5103,65113,3}, {5107,65116,3},{5113,65111,3},{5115,65114,3},{5118,65114,3},{5118,65116,3}, {5123,65158,3},{5122,65176,3},{5122,65179,3},{5120,65193,3},{5118,65196,3}, {5117,65208,3},{5120,65216,3},{5120,65229,3},{5122,65236,3},{5123,65236,3}, {5132,65234,3},{5132,65238,3},{5138,65239,3},{5140,65244,3},{5148,65258,3}, {5150,65264,3},{5172,65289,3},{5175,65298,3},{5178,65296,3},{5175,65296,3}, {5173,65288,3},{5162,65269,3},{5498,65229,131},{5497,65223,3},{5497,65211,3}, {5498,65193,3},{5498,65191,3},{5498,65184,3},{5497,65183,3},{5498,65179,3}, {5488,65179,3},{5487,65176,3},{5487,65164,3},{5485,65161,3},{5487,65156,3}, {5485,65154,3},{5487,65154,3},{5487,65156,3},{5485,65151,3},{5482,65154,3}, {5477,65139,3},{5477,65131,3},{5483,65131,3},{5477,65128,3},{5477,65123,3}, {5483,65114,3},{5487,65116,3},{5483,65109,3},{5487,65101,3},{5490,65099,3}, {5492,65096,3},{5488,65096,3},{5487,65093,3},{5483,65094,3},{5480,65103,3}, {5478,65099,3},{5470,65101,3},{5468,65098,3},{5470,65086,3},{5478,65076,3}, {5483,65058,3},{5487,65056,3},{5487,65053,3},{5483,65043,3},{5480,65039,3}, {5470,65046,3},{5468,65049,3},{5465,65048,3},{5463,65051,3},{5463,65049,3}, {5465,65041,3},{5472,65041,3},{5485,65023,3},{5493,65018,3},{5500,65019,3}, {5502,65024,3},{5500,65028,3},{5493,65029,3},{5490,65036,3},{5492,65038,3}, {5500,65031,3},{5503,65029,3},{5513,65034,3},{5522,65049,3},{5532,65053,3}, {5535,65058,3},{5542,65061,3},{5545,65073,3},{5548,65074,3},{5553,65071,3}, {5553,65068,3},{5555,65071,3},{5560,65066,3},{5563,65054,3},{5565,65054,3}, {5570,65044,3},{5575,65051,3},{5582,65046,3},{5588,65046,3},{5593,65048,3}, {5597,65058,3},{5593,65064,3},{5592,65088,3},{5595,65071,3},{5602,65058,3}, {5607,65053,3},{5602,65054,3},{5598,65059,3},{5598,65056,3},{5598,65051,3}, {5605,65048,3},{5612,65054,3},{5608,65049,3},{5612,65048,3},{5615,65046,3}, {5610,65044,3},{5607,65048,3},{5598,65046,3},{5598,65041,3},{5597,65044,3}, {5587,65038,3},{5587,65031,3},{5593,65029,3},{5597,65026,3},{5590,65028,3}, {5593,65019,3},{5597,65018,3},{5597,65016,3},{5592,65016,3},{5588,65013,3}, {5583,65016,3},{5585,65004,3},{5592,65001,3},{5598,65001,3},{5605,65006,3}, {5610,65014,3},{5612,65016,3},{5615,65028,3},{5620,65031,3},{5627,65043,3}, {5623,65034,3},{5623,65029,3},{5617,65024,3},{5612,65011,3},{5600,64998,3}, {5600,64993,3},{5602,64991,3},{5595,64991,3},{5593,64993,3},{5587,64996,3}, {5578,65004,3},{5577,65003,3},{5575,64998,3},{5572,64991,3},{5565,64988,3}, {5560,64988,3},{5558,64991,3},{5557,64988,3},{5553,64988,3},{5543,64981,3}, {5542,64978,3},{5542,64981,3},{5537,64984,3},{5532,64978,3},{5528,64964,3}, {5530,64954,3},{5540,64956,3},{5543,64964,3},{5553,64966,3},{5557,64964,3}, {5562,64968,3},{5567,64968,3},{5583,64991,3},{5577,64976,3},{5580,64969,3}, {5583,64969,3},{5593,64979,3},{5588,64968,3},{5593,64968,3},{5603,64979,3}, {5602,64974,3},{5593,64968,3},{5593,64964,3},{5598,64966,3},{5602,64971,3}, {5605,64973,3},{5608,64978,3},{5608,64983,3},{5612,64979,3},{5618,64984,3}, {5612,64976,3},{5613,64974,3},{5622,64981,3},{5623,64976,3},{5633,64978,3}, {5635,64983,3},{5645,64991,3},{5643,65011,3},{5647,65001,3},{5645,64996,3}, {5650,64993,3},{5647,64991,3},{5648,64989,3},{5652,64993,3},{5650,64998,3}, {5652,65004,3},{5655,65011,3},{5652,64999,3},{5655,64994,3},{5662,65001,3}, {5663,65006,3},{5665,65004,3},{5668,65014,3},{5668,65024,3},{5670,65029,3}, {5668,65023,3},{5670,65011,3},{5682,65024,3},{5677,65016,3},{5677,65013,3}, {5670,65008,3},{5668,65001,3},{5667,64999,3},{5662,64988,3},{5653,64979,3}, {5648,64966,3},{5650,64964,3},{5652,64958,3},{5653,64959,3},{5655,64946,3}, {5658,64939,3},{5663,64934,3},{5665,64941,3},{5665,64948,3},{5670,64961,3}, {5667,64973,3},{5668,64979,3},{5668,64968,3},{5670,64959,3},{5667,64953,3}, {5667,64948,3},{5668,64916,3},{5672,64913,3},{5675,64921,3},{5675,64933,3}, {5677,64939,3},{5675,64944,3},{5675,64949,3},{5678,64948,3},{5677,64949,3}, {5678,64958,3},{5682,64951,3},{5683,64949,3},{5685,64959,3},{5683,64963,3}, {5687,64969,3},{5687,64964,3},{5685,64963,3},{5687,64958,3},{5688,64963,3}, {5688,64943,3},{5690,64946,3},{5690,64951,3},{5692,64948,3},{5700,64953,3}, {5702,64963,3},{5700,64963,3},{5697,64971,3},{5700,64984,3},{5698,64974,3}, {5700,64969,3},{5702,64968,3},{5703,64968,3},{5705,64958,3},{5708,64958,3}, {5712,64964,3},{5712,64971,3},{5708,64983,3},{5710,64993,3},{5710,64981,3}, {5713,64979,3},{5715,64969,3},{5717,64968,3},{5720,64973,3},{5722,64973,3}, {5723,64971,3},{5725,64973,3},{5727,64981,3},{5725,64984,3},{5722,64994,3}, {5723,64998,3},{5723,64989,3},{5727,64983,3},{5728,64966,3},{5728,64963,3}, {5733,64969,3},{5737,64984,3},{5742,64991,3},{5737,64981,3},{5735,64976,3}, {5737,64973,3},{5738,64976,3},{5740,64974,3},{5735,64961,3},{5735,64954,3}, {5738,64954,3},{5740,64956,3},{5742,64954,3},{5743,64956,3},{5745,64949,3}, {5748,64949,3},{5757,64953,3},{5757,64958,3},{5753,64961,3},{5755,64964,3}, {5750,64971,3},{5753,64971,3},{5752,64974,3},{5753,64984,3},{5755,64978,3}, {5755,64969,3},{5757,64966,3},{5757,64968,3},{5758,64963,3},{5762,64961,3}, {5763,64954,3},{5770,64958,3},{5770,64968,3},{5772,64966,3},{5772,64961,3}, {5775,64954,3},{5778,64956,3},{5785,64953,3},{5787,64966,3},{5785,64968,3}, {5778,64969,3},{5777,64974,3},{5778,64974,3},{5778,64978,3},{5783,64978,3}, {5788,64971,3},{5792,64974,3},{5790,64978,3},{5792,64981,3},{5787,64981,3}, {5785,64989,3},{5790,64994,3},{5785,65014,3},{5787,65011,3},{5792,64998,3}, {5793,64996,3},{5793,64999,3},{5790,65006,3},{5792,65013,3},{5787,65023,3}, {5783,65028,3},{5785,65028,3},{5792,65014,3},{5793,65018,3},{5795,65016,3}, {5798,65006,3},{5802,64999,3},{5803,64993,3},{5805,64993,3},{5807,64989,3}, {5810,64993,3},{5807,64999,3},{5808,65001,3},{5807,65009,3},{5808,65011,3}, {5812,65009,3},{5812,65013,3},{5813,65008,3},{5813,65013,3},{5815,65008,3}, {5817,65008,3},{5818,65003,3},{5820,65003,3},{5823,64996,3},{5825,64998,3}, {5822,65008,3},{5825,65016,3},{5823,65019,3},{5827,65026,3},{5823,65041,3}, {5825,65038,3},{5825,65043,3},{5825,65031,3},{5828,65023,3},{5832,65024,3}, {5832,65021,3},{5833,65019,3},{5840,65023,3},{5838,65033,3},{5840,65031,3}, {5842,65026,3},{5842,65029,3},{5843,65028,3},{5845,65031,3},{5843,65038,3}, {5847,65034,3},{5848,65026,3},{5852,65024,3},{5855,65033,3},{5863,65036,3}, {5862,65039,3},{5862,65048,3},{5858,65053,3},{5857,65054,3},{5858,65059,3}, {5860,65056,3},{5860,65058,3},{5857,65061,3},{5855,65069,3},{5853,65069,3}, {5845,65059,3},{5848,65068,3},{5852,65069,3},{5853,65076,3},{5858,65076,3}, {5857,65084,3},{5855,65093,3},{5852,65093,3},{5845,65088,3},{5853,65099,3}, {5853,65108,3},{5852,65113,3},{5853,65113,3},{5855,65114,3},{5853,65118,3}, {5857,65123,3},{5855,65129,3},{5860,65134,3},{5857,65134,3},{5857,65146,3}, {5857,65158,3},{5862,65169,3},{5862,65181,3},{5860,65181,3},{5860,65184,3}, {5862,65189,3},{5860,65199,3},{5862,65201,3},{5865,65194,3},{5867,65199,3}, {5865,65201,3},{5865,65219,3},{5863,65221,3},{5865,65233,3},{5863,65234,3}, {5850,65223,3},{5847,65226,3},{5847,65234,3},{5837,65224,3},{5835,65221,3}, {5830,65216,3},{5827,65199,3},{5817,65184,3},{5807,65161,3},{5803,65154,3}, {5800,65151,3},{5795,65138,3},{5787,65134,3},{5787,65128,3},{5785,65124,3}, {5785,65116,3},{5783,65118,3},{5782,65131,3},{5783,65139,3},{5783,65143,3}, {5780,65141,3},{5782,65151,3},{5787,65156,3},{5785,65159,3},{5777,65149,3}, {5768,65138,3},{5768,65134,3},{5773,65133,3},{5772,65126,3},{5768,65119,3}, {5768,65106,3},{5765,65106,3},{5760,65094,3},{5757,65093,3},{5767,65113,3}, {5767,65128,3},{5768,65131,3},{5767,65136,3},{5760,65126,3},{5758,65124,3}, {5757,65126,3},{5757,65119,3},{5755,65118,3},{5755,65109,3},{5753,65114,3}, {5750,65111,3},{5748,65116,3},{5750,65119,3},{5752,65121,3},{5755,65133,3}, {5757,65133,3},{5758,65128,3},{5758,65151,3},{5765,65168,3},{5767,65181,3}, {5770,65188,3},{5772,65203,3},{5767,65234,3},{5770,65251,3},{5768,65253,3}, {5768,65263,3},{5767,65298,3},{5767,65303,3},{5768,65308,3},{5767,65318,3}, {5768,65324,3},{5768,65336,3},{5767,65338,3},{5767,65344,3},{5762,65349,3}, {5760,65354,3},{5757,65354,3},{5750,65359,3},{5750,65358,3},{5747,65358,3}, {5747,65361,3},{5727,65334,3},{5715,65329,3},{5712,65331,3},{5697,65318,3}, {5692,65318,3},{5682,65309,3},{5677,65299,3},{5677,65296,3},{5670,65293,3}, {5668,65294,3},{5665,65286,3},{5662,65289,3},{5657,65283,3},{5650,65264,3}, {5647,65263,3},{5647,65256,3},{5645,65249,3},{5647,65243,3},{5645,65239,3}, {5645,65231,3},{5637,65213,3},{5637,65204,3},{5635,65209,3},{5637,65218,3}, {5645,65246,3},{5643,65256,3},{5638,65254,3},{5637,65253,3},{5637,65254,3}, {5633,65259,3},{5632,65273,3},{5627,65278,3},{5622,65268,3},{5618,65256,3}, {5620,65244,3},{5620,65239,3},{5612,65223,3},{5605,65219,3},{5605,65209,3}, {5602,65196,3},{5605,65178,3},{5605,65168,3},{5602,65168,3},{5600,65171,3}, {5600,65184,3},{5598,65199,3},{5600,65203,3},{5598,65208,3},{5597,65223,3}, {5595,65228,3},{5595,65236,3},{5597,65241,3},{5597,65246,3},{5602,65251,3}, {5603,65251,3},{5607,65256,3},{5607,65271,3},{5602,65279,3},{5600,65279,3}, {5598,65289,3},{5593,65304,3},{5590,65323,3},{5588,65323,3},{5587,65328,3}, {5582,65333,3},{5580,65328,3},{5573,65324,3},{5570,65318,3},{5565,65311,3}, {5563,65303,3},{5558,65306,3},{5555,65313,3},{5550,65314,3},{5548,65318,3}, {5545,65316,3},{5542,65304,3},{5535,65298,3},{5535,65288,3},{5532,65281,3}, {5528,65274,3},{5523,65271,3},{5518,65266,3},{5513,65256,3},{5510,65248,3}, {5507,65241,3},{5505,65231,3},{5500,65231,3},{5498,65229,3},{5162,65269,131}, {5158,65264,3},{5153,65248,3},{5153,65239,3},{5155,65239,3},{5155,65238,3}, {5153,65234,3},{5148,65224,3},{5145,65223,3},{5145,65219,3},{5140,65218,3}, {5138,65209,3},{5138,65194,3},{5140,65181,3},{5147,65171,3},{5147,65164,3}, {5155,65159,3},{5162,65153,3},{5160,65138,3},{5158,65136,3},{5155,65138,3}, {5155,65121,3},{5153,65121,3},{5153,65114,3},{5155,65106,3},{5158,65108,3}, {5162,65108,3},{5163,65113,3},{5162,65114,3},{5163,65124,3},{5165,65128,3}, {5167,65129,3},{5165,65123,3},{5168,65118,3},{5167,65106,3},{5172,65098,3}, {5173,65098,3},{5172,65104,3},{5175,65099,3},{5178,65099,3},{5175,65096,3}, {5177,65091,3},{5173,65093,3},{5172,65069,3},{5165,65066,3},{5165,65061,3}, {5163,65058,3},{5163,65049,3},{5160,65043,3},{5162,65031,3},{5165,65031,3}, {5167,65026,3},{5168,65024,3},{5167,65029,3},{5168,65033,3},{5168,65039,3}, {5172,65048,3},{5170,65038,3},{5172,65019,3},{5168,65019,3},{5172,65013,3}, {5173,65011,3},{5173,65016,3},{5177,65019,3},{5177,65026,3},{5185,65024,3}, {5187,65018,3},{5187,65004,3},{5192,65006,3},{5192,65013,3},{5195,65018,3}, {5197,65026,3},{5202,65028,3},{5202,65038,3},{5200,65039,3},{5202,65044,3}, {5203,65044,3},{5202,65048,3},{5202,65053,3},{5205,65053,3},{5207,65059,3}, {5210,65063,3},{5210,65066,3},{5213,65066,3},{5213,65086,3},{5222,65098,3}, {5222,65103,3},{5225,65113,3},{5232,65121,3},{5238,65126,3},{5252,65131,3}, {5253,65136,3},{5255,65141,3},{5255,65129,3},{5260,65123,3},{5270,65129,3}, {5273,65138,3},{5272,65133,3},{5273,65129,3},{5278,65123,3},{5280,65121,3}, {5285,65124,3},{5290,65119,3},{5288,65098,3},{5287,65091,3},{5282,65088,3}, {5280,65089,3},{5277,65084,3},{5282,65076,3},{5280,65073,3},{5280,65064,3}, {5278,65061,3},{5280,65061,3},{5285,65064,3},{5292,65074,3},{5293,65083,3}, {5303,65099,3},{5312,65101,3},{5310,65104,3},{5312,65106,3},{5322,65118,3}, {5323,65123,3},{5323,65129,3},{5328,65148,3},{5328,65153,3},{5333,65149,3}, {5332,65158,3},{5328,65163,3},{5328,65174,3},{5335,65198,3},{5335,65206,3}, {5333,65208,3},{5323,65228,3},{5325,65228,3},{5323,65238,3},{5318,65243,3}, {5313,65239,3},{5312,65246,3},{5308,65248,3},{5303,65249,3},{5300,65254,3}, {5298,65264,3},{5293,65263,3},{5290,65254,3},{5292,65254,3},{5295,65246,3}, {5293,65243,3},{5297,65238,3},{5293,65231,3},{5293,65226,3},{5290,65221,3}, {5285,65221,3},{5278,65221,3},{5280,65224,3},{5277,65233,3},{5272,65238,3}, {5272,65236,3},{5272,65233,3},{5268,65231,3},{5263,65228,3},{5258,65223,3}, {5253,65223,3},{5255,65226,3},{5257,65236,3},{5252,65236,3},{5250,65233,3}, {5250,65223,3},{5247,65214,3},{5242,65214,3},{5238,65223,3},{5235,65229,3}, {5235,65238,3},{5232,65234,3},{5227,65234,3},{5227,65238,3},{5227,65234,3}, {5222,65228,3},{5217,65224,3},{5215,65226,3},{5213,65223,3},{5208,65223,3}, {5203,65228,3},{5198,65228,3},{5195,65234,3},{5192,65241,3},{5193,65249,3}, {5192,65249,3},{5188,65256,3},{5185,65261,3},{5183,65269,3},{5178,65268,3}, {5173,65268,3},{5167,65269,3},{5167,65268,3},{5162,65269,3},{5408,64911,131}, {5410,64908,3},{5408,64901,3},{5407,64901,3},{5407,64896,3},{5408,64889,3}, {5405,64886,3},{5403,64876,3},{5408,64871,3},{5415,64873,3},{5418,64871,3}, {5420,64866,3},{5418,64863,3},{5422,64856,3},{5433,64848,3},{5440,64841,3}, {5442,64833,3},{5430,64814,3},{5425,64821,3},{5422,64821,3},{5422,64814,3}, {5412,64808,3},{5413,64794,3},{5417,64794,3},{5412,64788,3},{5413,64778,3}, {5420,64766,3},{5422,64751,3},{5428,64748,3},{5430,64743,3},{5435,64738,3}, {5437,64731,3},{5443,64721,3},{5445,64719,3},{5448,64731,3},{5452,64731,3}, {5453,64738,3},{5453,64739,3},{5453,64749,3},{5455,64753,3},{5460,64766,3}, {5462,64764,3},{5462,64763,3},{5463,64749,3},{5467,64744,3},{5473,64749,3}, {5473,64754,3},{5470,64761,3},{5473,64771,3},{5473,64781,3},{5482,64784,3}, {5483,64788,3},{5488,64791,3},{5493,64791,3},{5498,64796,3},{5498,64794,3}, {5503,64799,3},{5505,64811,3},{5503,64826,3},{5507,64834,3},{5515,64839,3}, {5518,64839,3},{5517,64849,3},{5517,64861,3},{5518,64866,3},{5522,64881,3}, {5525,64888,3},{5523,64894,3},{5523,64901,3},{5520,64913,3},{5522,64921,3}, {5522,64926,3},{5515,64933,3},{5505,64931,3},{5505,64936,3},{5503,64939,3}, {5498,64936,3},{5497,64943,3},{5490,64951,3},{5487,64954,3},{5482,64954,3}, {5482,64959,3},{5478,64964,3},{5483,64956,3},{5485,64958,3},{5485,64963,3}, {5483,64966,3},{5480,64968,3},{5475,64966,3},{5472,64963,3},{5470,64949,3}, {5463,64944,3},{5460,64946,3},{5463,64951,3},{5468,64961,3},{5468,64973,3}, {5468,64979,3},{5463,64983,3},{5457,64988,3},{5452,64988,3},{5448,64993,3}, {5442,64989,3},{5438,64989,3},{5437,64988,3},{5435,64989,3},{5433,64984,3}, {5435,64983,3},{5440,64979,3},{5445,64983,3},{5450,64981,3},{5452,64979,3}, {5457,64969,3},{5457,64966,3},{5453,64964,3},{5452,64969,3},{5450,64968,3}, {5448,64971,3},{5442,64973,3},{5435,64964,3},{5438,64978,3},{5435,64981,3}, {5432,64983,3},{5428,64979,3},{5423,64971,3},{5425,64968,3},{5425,64961,3}, {5422,64949,3},{5417,64949,3},{5410,64946,3},{5403,64931,3},{5403,64926,3}, {5405,64928,3},{5407,64918,3},{5408,64916,3},{5408,64909,3},{5408,64911,3}, {5407,64916,3},{5403,64918,3},{5403,64923,3},{5400,64924,3},{5398,64918,3}, {5402,64903,3},{5402,64899,3},{5400,64901,3},{5398,64899,3},{5392,64898,3}, {5387,64903,3},{5387,64911,3},{5380,64911,3},{5378,64914,3},{5375,64911,3}, {5368,64913,3},{5363,64914,3},{5357,64928,3},{5352,64928,3},{5345,64921,3}, {5340,64924,3},{5338,64931,3},{5337,64931,3},{5338,64923,3},{5337,64918,3}, {5335,64914,3},{5330,64919,3},{5327,64926,3},{5322,64926,3},{5310,64933,3}, {5300,64931,3},{5297,64936,3},{5285,64929,3},{5283,64924,3},{5273,64921,3}, {5267,64914,3},{5255,64916,3},{5242,64901,3},{5235,64899,3},{5237,64894,3}, {5235,64893,3},{5232,64893,3},{5230,64896,3},{5233,64898,3},{5227,64898,3}, {5225,64904,3},{5218,64899,3},{5218,64896,3},{5220,64898,3},{5218,64889,3}, {5220,64891,3},{5220,64888,3},{5217,64878,3},{5222,64866,3},{5220,64856,3}, {5225,64859,3},{5223,64856,3},{5223,64853,3},{5222,64853,3},{5220,64854,3}, {5217,64853,3},{5215,64848,3},{5212,64843,3},{5213,64843,3},{5215,64846,3}, {5218,64846,3},{5222,64844,3},{5225,64839,3},{5228,64836,3},{5222,64839,3}, {5218,64838,3},{5218,64841,3},{5213,64836,3},{5213,64826,3},{5217,64829,3}, {5217,64826,3},{5217,64824,3},{5215,64826,3},{5215,64819,3},{5213,64818,3}, {5213,64793,3},{5210,64781,3},{5208,64781,3},{5210,64776,3},{5208,64774,3}, {5207,64776,3},{5205,64783,3},{5203,64778,3},{5200,64778,3},{5198,64764,3}, {5195,64763,3},{5195,64758,3},{5195,64753,3},{5197,64749,3},{5192,64746,3}, {5192,64744,3},{5188,64748,3},{5187,64736,3},{5183,64733,3},{5182,64734,3}, {5180,64719,3},{5180,64711,3},{5182,64709,3},{5185,64718,3},{5188,64719,3}, {5187,64706,3},{5188,64698,3},{5187,64696,3},{5187,64703,3},{5182,64708,3}, {5178,64704,3},{5177,64706,3},{5172,64701,3},{5170,64693,3},{5168,64691,3}, {5170,64683,3},{5168,64684,3},{5165,64681,3},{5160,64683,3},{5163,64678,3}, {5163,64668,3},{5157,64666,3},{5157,64661,3},{5158,64659,3},{5158,64649,3}, {5155,64648,3},{5155,64643,3},{5153,64643,3},{5157,64636,3},{5155,64629,3}, {5157,64623,3},{5153,64624,3},{5152,64619,3},{5153,64618,3},{5150,64618,3}, {5148,64614,3},{5148,64609,3},{5150,64609,3},{5150,64606,3},{5148,64606,3}, {5147,64601,3},{5147,64598,3},{5150,64594,3},{5155,64596,3},{5157,64591,3}, {5153,64591,3},{5152,64584,3},{5153,64581,3},{5150,64581,3},{5150,64578,3}, {5148,64576,3},{5148,64573,3},{5152,64571,3},{5148,64564,3},{5147,64566,3}, {5145,64559,3},{5147,64559,3},{5145,64554,3},{5147,64554,3},{5148,64553,3}, {5153,64563,3},{5155,64571,3},{5162,64581,3},{5162,64578,3},{5155,64556,3}, {5155,64551,3},{5157,64558,3},{5160,64561,3},{5168,64589,3},{5168,64591,3}, {5172,64591,3},{5172,64588,3},{5173,64584,3},{5175,64581,3},{5173,64581,3}, {5168,64576,3},{5165,64544,3},{5162,64541,3},{5160,64533,3},{5160,64529,3}, {5160,64523,3},{5158,64521,3},{5162,64521,3},{5163,64529,3},{5165,64529,3}, {5167,64526,3},{5167,64528,3},{5168,64538,3},{5172,64541,3},{5172,64536,3}, {5173,64538,3},{5177,64546,3},{5173,64548,3},{5177,64551,3},{5177,64558,3}, {5178,64554,3},{5183,64563,3},{5185,64571,3},{5187,64578,3},{5185,64564,3}, {5182,64556,3},{5182,64553,3},{5180,64549,3},{5182,64548,3},{5173,64523,3}, {5175,64523,3},{5177,64514,3},{5178,64518,3},{5182,64519,3},{5185,64516,3}, {5183,64511,3},{5178,64503,3},{5185,64503,3},{5185,64498,3},{5188,64496,3}, {5190,64508,3},{5190,64511,3},{5193,64509,3},{5195,64506,3},{5197,64509,3}, {5198,64509,3},{5205,64536,3},{5208,64539,3},{5207,64539,3},{5205,64543,3}, {5213,64546,3},{5212,64549,3},{5213,64559,3},{5215,64548,3},{5215,64539,3}, {5210,64541,3},{5213,64536,3},{5210,64518,3},{5213,64514,3},{5213,64509,3}, {5212,64506,3},{5212,64509,3},{5210,64508,3},{5212,64499,3},{5210,64501,3}, {5210,64493,3},{5210,64489,3},{5212,64489,3},{5215,64489,3},{5217,64491,3}, {5218,64489,3},{5220,64494,3},{5217,64494,3},{5218,64499,3},{5223,64499,3}, {5223,64504,3},{5227,64509,3},{5228,64519,3},{5223,64519,3},{5225,64528,3}, {5228,64533,3},{5230,64531,3},{5230,64534,3},{5227,64534,3},{5223,64541,3}, {5223,64549,3},{5225,64554,3},{5223,64554,3},{5225,64563,3},{5227,64561,3}, {5227,64548,3},{5230,64548,3},{5230,64551,3},{5232,64553,3},{5238,64553,3}, {5240,64541,3},{5242,64543,3},{5245,64559,3},{5248,64566,3},{5247,64573,3}, {5248,64571,3},{5248,64568,3},{5252,64568,3},{5255,64569,3},{5257,64573,3}, {5255,64589,3},{5258,64593,3},{5257,64608,3},{5263,64629,3},{5262,64631,3}, {5262,64636,3},{5265,64641,3},{5267,64653,3},{5265,64656,3},{5267,64663,3}, {5270,64649,3},{5268,64641,3},{5272,64643,3},{5277,64639,3},{5275,64633,3}, {5272,64633,3},{5262,64621,3},{5262,64611,3},{5258,64608,3},{5260,64603,3}, {5263,64609,3},{5260,64596,3},{5263,64583,3},{5267,64581,3},{5265,64578,3}, {5263,64579,3},{5260,64566,3},{5258,64566,3},{5255,64548,3},{5257,64543,3}, {5260,64554,3},{5268,64569,3},{5273,64576,3},{5275,64586,3},{5280,64588,3}, {5283,64593,3},{5288,64593,3},{5293,64601,3},{5293,64599,3},{5293,64589,3}, {5297,64593,3},{5315,64609,3},{5312,64621,3},{5313,64628,3},{5315,64624,3}, {5315,64638,3},{5317,64629,3},{5317,64639,3},{5315,64639,3},{5313,64643,3}, {5315,64643,3},{5318,64643,3},{5322,64646,3},{5320,64641,3},{5322,64636,3}, {5323,64639,3},{5325,64639,3},{5325,64643,3},{5327,64643,3},{5327,64633,3}, {5323,64618,3},{5322,64588,3},{5323,64581,3},{5328,64581,3},{5327,64579,3}, {5323,64578,3},{5323,64574,3},{5325,64573,3},{5328,64576,3},{5332,64574,3}, {5332,64578,3},{5333,64579,3},{5335,64576,3},{5333,64576,3},{5333,64571,3}, {5333,64569,3},{5337,64574,3},{5335,64568,3},{5332,64563,3},{5330,64559,3}, {5332,64551,3},{5332,64546,3},{5335,64548,3},{5335,64546,3},{5338,64558,3}, {5340,64558,3},{5340,64554,3},{5342,64556,3},{5340,64549,3},{5342,64548,3}, {5342,64549,3},{5342,64546,3},{5338,64543,3},{5337,64539,3},{5338,64533,3}, {5342,64529,3},{5340,64524,3},{5342,64521,3},{5340,64518,3},{5345,64521,3}, {5345,64531,3},{5350,64524,3},{5352,64524,3},{5353,64521,3},{5355,64516,3}, {5355,64526,3},{5357,64526,3},{5357,64536,3},{5360,64531,3},{5362,64548,3}, {5368,64544,3},{5375,64546,3},{5378,64558,3},{5377,64576,3},{5380,64581,3}, {5382,64574,3},{5383,64576,3},{5383,64574,3},{5387,64579,3},{5387,64578,3}, {5390,64579,3},{5390,64559,3},{5387,64553,3},{5385,64544,3},{5387,64543,3}, {5395,64546,3},{5393,64554,3},{5392,64556,3},{5392,64558,3},{5397,64556,3}, {5397,64554,3},{5395,64554,3},{5397,64553,3},{5400,64551,3},{5402,64546,3}, {5405,64546,3},{5407,64549,3},{5408,64548,3},{5412,64553,3},{5412,64548,3}, {5408,64546,3},{5407,64543,3},{5407,64539,3},{5410,64538,3},{5412,64544,3}, {5413,64539,3},{5415,64543,3},{5417,64539,3},{5418,64541,3},{5418,64543,3}, {5422,64534,3},{5418,64534,3},{5418,64531,3},{5417,64533,3},{5415,64528,3}, {5413,64529,3},{5412,64528,3},{5408,64529,3},{5410,64524,3},{5420,64526,3}, {5422,64529,3},{5423,64524,3},{5423,64528,3},{5425,64528,3},{5430,64536,3}, {5427,64539,3},{5425,64546,3},{5422,64544,3},{5423,64538,3},{5422,64539,3}, {5420,64546,3},{5427,64551,3},{5425,64559,3},{5428,64556,3},{5430,64549,3}, {5433,64556,3},{5432,64568,3},{5432,64588,3},{5428,64598,3},{5432,64603,3}, {5430,64609,3},{5427,64611,3},{5427,64616,3},{5425,64614,3},{5423,64616,3}, {5422,64614,3},{5420,64619,3},{5417,64623,3},{5428,64631,3},{5428,64643,3}, {5425,64653,3},{5427,64659,3},{5427,64663,3},{5427,64668,3},{5420,64678,3}, {5420,64684,3},{5425,64678,3},{5425,64674,3},{5428,64678,3},{5427,64689,3}, {5432,64679,3},{5430,64686,3},{5432,64686,3},{5433,64679,3},{5432,64671,3}, {5435,64669,3},{5438,64679,3},{5440,64679,3},{5440,64683,3},{5443,64689,3}, {5445,64688,3},{5447,64689,3},{5445,64693,3},{5447,64708,3},{5452,64711,3}, {5455,64714,3},{5462,64721,3},{5460,64723,3},{5462,64726,3},{5463,64723,3}, {5460,64709,3},{5460,64706,3},{5463,64708,3},{5463,64706,3},{5462,64701,3}, {5455,64691,3},{5458,64691,3},{5462,64698,3},{5460,64689,3},{5462,64688,3}, {5460,64678,3},{5462,64669,3},{5465,64656,3},{5468,64658,3},{5468,64656,3}, {5470,64661,3},{5473,64661,3},{5477,64669,3},{5475,64691,3},{5477,64689,3}, {5478,64683,3},{5478,64689,3},{5475,64696,3},{5482,64681,3},{5483,64688,3}, {5483,64704,3},{5485,64698,3},{5487,64698,3},{5487,64704,3},{5488,64706,3}, {5490,64703,3},{5490,64698,3},{5488,64698,3},{5490,64691,3},{5493,64691,3}, {5495,64699,3},{5495,64696,3},{5500,64691,3},{5500,64696,3},{5503,64696,3}, {5503,64701,3},{5505,64701,3},{5505,64704,3},{5507,64703,3},{5508,64706,3}, {5510,64704,3},{5515,64708,3},{5515,64719,3},{5515,64721,3},{5515,64723,3}, {5512,64719,3},{5515,64728,3},{5517,64734,3},{5520,64734,3},{5522,64738,3}, {5520,64741,3},{5518,64741,3},{5518,64746,3},{5517,64748,3},{5515,64746,3}, {5515,64751,3},{5513,64746,3},{5513,64751,3},{5515,64751,3},{5518,64753,3}, {5518,64749,3},{5522,64748,3},{5522,64753,3},{5525,64756,3},{5517,64754,3}, {5517,64761,3},{5515,64766,3},{5510,64766,3},{5513,64769,3},{5522,64766,3}, {5517,64764,3},{5518,64763,3},{5520,64763,3},{5520,64756,3},{5525,64761,3}, {5525,64766,3},{5528,64771,3},{5523,64776,3},{5518,64774,3},{5515,64781,3}, {5512,64783,3},{5508,64783,3},{5503,64773,3},{5503,64778,3},{5503,64779,3}, {5500,64773,3},{5497,64771,3},{5502,64779,3},{5505,64789,3},{5508,64788,3}, {5513,64788,3},{5520,64781,3},{5525,64784,3},{5527,64783,3},{5527,64788,3}, {5528,64788,3},{5527,64791,3},{5530,64799,3},{5530,64803,3},{5528,64801,3}, {5527,64809,3},{5530,64803,3},{5533,64799,3},{5533,64803,3},{5535,64798,3}, {5537,64796,3},{5535,64811,3},{5533,64818,3},{5528,64823,3},{5523,64843,3}, {5522,64841,3},{5513,64819,3},{5505,64811,3},{5503,64799,3},{5498,64794,3}, {5498,64796,3},{5493,64791,3},{5488,64791,3},{5483,64788,3},{5482,64784,3}, {5473,64781,3},{5473,64771,3},{5470,64761,3},{5473,64754,3},{5473,64749,3}, {5467,64744,3},{5463,64749,3},{5462,64763,3},{5462,64764,3},{5460,64766,3}, {5455,64753,3},{5453,64749,3},{5453,64739,3},{5453,64738,3},{5452,64731,3}, {5448,64731,3},{5445,64719,3},{5443,64721,3},{5437,64731,3},{5435,64738,3}, {5430,64743,3},{5428,64748,3},{5422,64751,3},{5420,64766,3},{5413,64778,3}, {5412,64788,3},{5417,64794,3},{5413,64794,3},{5412,64808,3},{5422,64814,3}, {5422,64821,3},{5425,64821,3},{5430,64814,3},{5442,64833,3},{5440,64841,3}, {5433,64848,3},{5422,64856,3},{5418,64863,3},{5420,64866,3},{5418,64871,3}, {5415,64873,3},{5408,64871,3},{5403,64876,3},{5405,64886,3},{5408,64889,3}, {5407,64896,3},{5407,64901,3},{5408,64901,3},{5410,64908,3},{5408,64911,3}, {3737,5390,130},{3727,5392,2},{3718,5395,2},{3710,5397,2},{3702,5402,2}, {3698,5398,2},{3697,5403,2},{3695,5403,2},{3682,5403,2},{3680,5395,2},{3680,5388,2}, {3682,5368,2},{3685,5363,2},{3685,5367,2},{3687,5360,2},{3687,5382,2},{3690,5398,2}, {3690,5400,2},{3695,5402,2},{3692,5393,2},{3688,5348,2},{3685,5322,2},{3675,5282,2}, {3672,5267,2},{3670,5255,2},{3668,5243,2},{3660,5210,2},{3658,5197,2},{3658,5187,2}, {3668,5142,2},{3673,5110,2},{3677,5100,2},{3683,5088,2},{3703,5048,2},{3707,5045,2}, {3712,5035,2},{3715,5032,2},{3728,5023,2},{3737,5022,2},{3738,5018,2},{3745,4995,2}, {3745,4993,2},{3747,4995,2},{3745,4997,2},{3748,4993,2},{3745,4983,2},{3755,4927,2}, {3748,4943,2},{3763,4912,2},{3775,4900,2},{3780,4898,2},{3783,4898,2},{3790,4895,2}, {3797,4895,2},{3805,4892,2},{3830,4887,2},{3845,4888,2},{3843,4888,2},{3875,4887,2}, {3882,4883,2},{3887,4883,2},{3888,4888,2},{3895,4893,2},{3902,4895,2},{3905,4893,2}, {3912,4893,2},{3917,4897,2},{3918,4900,2},{3917,4905,2},{3915,4907,2},{3910,4907,2}, {3910,4915,2},{3903,4912,2},{3900,4905,2},{3897,4907,2},{3898,4913,2},{3902,4920,2}, {3908,4920,2},{3915,4923,2},{3928,4923,2},{3933,4927,2},{3935,4930,2},{3933,4933,2}, {3930,4937,2},{3928,4940,2},{3935,4937,2},{3932,4940,2},{3935,4940,2},{3938,4942,2}, {3947,4930,2},{3950,4928,2},{3962,4932,2},{3968,4938,2},{3970,4942,2},{3978,4940,2}, {3982,4942,2},{3983,4942,2},{3987,4945,2},{3992,4942,2},{3995,4943,2},{3998,4948,2}, {4005,4942,2},{4008,4950,2},{4015,4948,2},{4022,4957,2},{4023,4967,2},{4027,4970,2}, {4028,4982,2},{4032,4985,2},{4033,4983,2},{4037,4988,2},{4035,4997,2},{4032,4998,2}, {4033,5002,2},{4035,5003,2},{4035,5010,2},{4035,5012,2},{4033,5027,2},{4028,5035,2}, {4022,5038,2},{4023,5040,2},{4028,5037,2},{4037,5037,2},{4040,5033,2},{4043,5028,2}, {4050,5023,2},{4052,5012,2},{4057,5007,2},{4058,5007,2},{4058,4992,2},{4057,4983,2}, {4058,4970,2},{4062,4965,2},{4062,4958,2},{4067,4953,2},{4070,4952,2},{4078,4953,2}, {4082,4948,2},{4085,4940,2},{4103,4922,2},{4115,4915,2},{4127,4913,2},{4142,4903,2}, {4145,4898,2},{4150,4895,2},{4153,4890,2},{4160,4885,2},{4163,4880,2},{4168,4878,2}, {4178,4868,2},{4183,4858,2},{4188,4855,2},{4190,4843,2},{4193,4838,2},{4210,4830,2}, {4217,4823,2},{4233,4812,2},{4238,4802,2},{4247,4795,2},{4260,4787,2},{4263,4773,2}, {4272,4770,2},{4277,4772,2},{4287,4770,2},{4290,4762,2},{4295,4758,2},{4295,4755,2}, {4302,4747,2},{4308,4745,2},{4312,4748,2},{4320,4748,2},{4330,4758,2},{4333,4757,2}, {4328,4750,2},{4330,4748,2},{4345,4748,2},{4352,4753,2},{4357,4753,2},{4372,4758,2}, {4383,4765,2},{4387,4770,2},{4390,4763,2},{4387,4753,2},{4380,4753,2},{4372,4750,2}, {4368,4750,2},{4363,4747,2},{4353,4747,2},{4350,4743,2},{4350,4740,2},{4353,4740,2}, {4355,4738,2},{4362,4737,2},{4360,4738,2},{4362,4740,2},{4368,4745,2},{4373,4743,2}, {4377,4750,2},{4382,4748,2},{4382,4743,2},{4387,4747,2},{4388,4743,2},{4392,4742,2}, {4403,4735,2},{4408,4728,2},{4422,4723,2},{4422,4720,2},{4420,4718,2},{4423,4710,2}, {4433,4705,2},{4437,4702,2},{4440,4683,2},{4438,4680,2},{4440,4677,2},{4445,4670,2}, {4452,4668,2},{4455,4672,2},{4457,4670,2},{4465,4672,2},{4465,4675,2},{4470,4678,2}, {4470,4683,2},{4473,4687,2},{4477,4693,2},{4477,4697,2},{4482,4702,2},{4492,4700,2}, {4490,4702,2},{4485,4702,2},{4478,4708,2},{4487,4712,2},{4495,4710,2},{4493,4715,2}, {4497,4717,2},{4497,4720,2},{4518,4730,2},{4518,4738,2},{4530,4738,2},{4537,4742,2}, {4538,4747,2},{4540,4745,2},{4540,4740,2},{4542,4738,2},{4542,4748,2},{4548,4750,2}, {4550,4755,2},{4557,4748,2},{4558,4750,2},{4553,4755,2},{4557,4757,2},{4563,4755,2}, {4567,4742,2},{4575,4738,2},{4572,4748,2},{4572,4750,2},{4572,4745,2},{4568,4743,2}, {4565,4755,2},{4557,4762,2},{4555,4763,2},{4557,4765,2},{4558,4763,2},{4562,4765,2}, {4563,4760,2},{4567,4760,2},{4567,4763,2},{4572,4763,2},{4572,4758,2},{4575,4758,2}, {4573,4755,2},{4577,4755,2},{4575,4762,2},{4573,4765,2},{4570,4767,2},{4568,4777,2}, {4560,4782,2},{4563,4785,2},{4565,4783,2},{4572,4785,2},{4572,4788,2},{4568,4790,2}, {4572,4793,2},{4572,4798,2},{4570,4800,2},{4572,4803,2},{4575,4807,2},{4572,4813,2}, {4573,4815,2},{4573,4820,2},{4572,4823,2},{4572,4825,2},{4577,4822,2},{4577,4825,2}, {4583,4828,2},{4583,4840,2},{4585,4840,2},{4585,4837,2},{4588,4837,2},{4587,4840,2}, {4593,4845,2},{4593,4850,2},{4597,4857,2},{4595,4860,2},{4588,4867,2},{4588,4870,2}, {4587,4868,2},{4582,4872,2},{4583,4872,2},{4585,4877,2},{4583,4878,2},{4585,4878,2}, {4587,4878,2},{4588,4875,2},{4592,4873,2},{4593,4877,2},{4597,4873,2},{4597,4865,2}, {4598,4872,2},{4602,4873,2},{4607,4870,2},{4608,4863,2},{4608,4867,2},{4612,4867,2}, {4612,4870,2},{4613,4870,2},{4608,4878,2},{4605,4882,2},{4610,4882,2},{4613,4878,2}, {4612,4883,2},{4607,4885,2},{4608,4888,2},{4613,4883,2},{4613,4887,2},{4610,4888,2}, {4615,4888,2},{4608,4895,2},{4610,4895,2},{4613,4893,2},{4617,4898,2},{4617,4902,2}, {4620,4903,2},{4618,4907,2},{4615,4910,2},{4615,4912,2},{4623,4912,2},{4625,4905,2}, {4633,4913,2},{4633,4917,2},{4632,4915,2},{4628,4915,2},{4627,4925,2},{4625,4928,2}, {4625,4930,2},{4630,4923,2},{4637,4922,2},{4635,4922,2},{4638,4922,2},{4638,4918,2}, {4642,4917,2},{4638,4925,2},{4640,4928,2},{4642,4925,2},{4645,4925,2},{4647,4922,2}, {4647,4927,2},{4643,4928,2},{4640,4933,2},{4638,4937,2},{4640,4937,2},{4643,4935,2}, {4648,4928,2},{4650,4930,2},{4652,4928,2},{4652,4930,2},{4648,4932,2},{4648,4940,2}, {4658,4930,2},{4653,4942,2},{4655,4943,2},{4653,4947,2},{4650,4947,2},{4650,4950,2}, {4658,4947,2},{4657,4947,2},{4653,4957,2},{4650,4958,2},{4652,4960,2},{4652,4963,2}, {4658,4962,2},{4655,4968,2},{4652,4970,2},{4655,4970,2},{4653,4975,2},{4657,4977,2}, {4653,4980,2},{4655,4982,2},{4657,4983,2},{4658,4988,2},{4663,4997,2},{4663,5003,2}, {4668,5007,2},{4675,5020,2},{4677,5023,2},{4672,5022,2},{4672,5023,2},{4680,5030,2}, {4680,5033,2},{4685,5037,2},{4680,5037,2},{4690,5043,2},{4687,5050,2},{4688,5058,2}, {4682,5055,2},{4685,5060,2},{4693,5062,2},{4693,5068,2},{4697,5075,2},{4693,5073,2}, {4692,5073,2},{4690,5077,2},{4700,5085,2},{4703,5085,2},{4702,5088,2},{4705,5097,2}, {4707,5112,2},{4712,5120,2},{4705,5153,2},{4698,5160,2},{4705,5163,2},{4705,5165,2}, {4705,5168,2},{4695,5168,2},{4690,5177,2},{4693,5188,2},{4690,5187,2},{4688,5187,2}, {4687,5193,2},{4693,5200,2},{4693,5202,2},{4690,5200,2},{4688,5200,2},{4685,5203,2}, {4685,5207,2},{4682,5207,2},{4680,5220,2},{4682,5225,2},{4687,5218,2},{4688,5235,2}, {4700,5245,2},{4698,5253,2},{4695,5257,2},{4695,5262,2},{4695,5283,2},{4697,5290,2}, {4690,5300,2},{4690,5305,2},{4685,5308,2},{4675,5310,2},{4672,5313,2},{4672,5320,2}, {4668,5320,2},{4663,5320,2},{4663,5315,2},{4660,5312,2},{4662,5310,2},{4655,5308,2}, {4655,5303,2},{4657,5303,2},{4648,5300,2},{4648,5305,2},{4652,5307,2},{4648,5307,2}, {4645,5310,2},{4647,5303,2},{4637,5315,2},{4628,5317,2},{4610,5312,2},{4605,5308,2}, {4600,5308,2},{4580,5293,2},{4577,5287,2},{4565,5278,2},{4565,5275,2},{4555,5273,2}, {4552,5275,2},{4548,5285,2},{4547,5288,2},{4547,5292,2},{4540,5307,2},{4540,5310,2}, {4538,5315,2},{4537,5325,2},{4533,5325,2},{4533,5320,2},{4530,5310,2},{4532,5298,2}, {4532,5290,2},{4533,5283,2},{4540,5248,2},{4540,5245,2},{4538,5215,2},{4538,5200,2}, {4537,5193,2},{4540,5188,2},{4540,5178,2},{4543,5178,2},{4545,5175,2},{4543,5173,2}, {4540,5172,2},{4538,5165,2},{4533,5158,2},{4533,5147,2},{4538,5142,2},{4535,5142,2}, {4532,5138,2},{4517,5125,2},{4510,5125,2},{4502,5128,2},{4502,5125,2},{4507,5120,2}, {4503,5110,2},{4498,5107,2},{4498,5097,2},{4495,5095,2},{4493,5100,2},{4487,5095,2}, {4482,5102,2},{4480,5110,2},{4473,5122,2},{4460,5130,2},{4462,5142,2},{4458,5147,2}, {4453,5157,2},{4452,5157,2},{4452,5150,2},{4453,5145,2},{4452,5143,2},{4452,5140,2}, {4452,5138,2},{4453,5137,2},{4455,5138,2},{4455,5137,2},{4455,5128,2},{4452,5127,2}, {4448,5120,2},{4448,5112,2},{4452,5103,2},{4453,5098,2},{4457,5100,2},{4457,5095,2}, {4463,5087,2},{4463,5078,2},{4460,5075,2},{4462,5072,2},{4462,5063,2},{4463,5058,2}, {4463,5055,2},{4463,5043,2},{4465,5032,2},{4457,5027,2},{4458,5023,2},{4457,5022,2}, {4437,5023,2},{4433,5028,2},{4428,5042,2},{4427,5068,2},{4420,5083,2},{4408,5087,2}, {4403,5085,2},{4400,5092,2},{4392,5098,2},{4380,5102,2},{4367,5112,2},{4362,5115,2}, {4362,5122,2},{4358,5122,2},{4355,5127,2},{4345,5132,2},{4330,5132,2},{4320,5127,2}, {4315,5127,2},{4317,5140,2},{4315,5152,2},{4317,5153,2},{4318,5165,2},{4315,5168,2}, {4310,5167,2},{4308,5172,2},{4303,5177,2},{4292,5183,2},{4283,5192,2},{4283,5195,2}, {4288,5208,2},{4288,5217,2},{4287,5220,2},{4283,5223,2},{4278,5228,2},{4282,5233,2}, {4283,5243,2},{4280,5258,2},{4277,5263,2},{4275,5262,2},{4275,5268,2},{4272,5273,2}, {4265,5275,2},{4258,5272,2},{4265,5267,2},{4272,5258,2},{4275,5258,2},{4272,5257,2}, {4262,5265,2},{4253,5268,2},{4242,5263,2},{4240,5260,2},{4233,5260,2},{4218,5248,2}, {4218,5243,2},{4210,5240,2},{4205,5243,2},{4200,5243,2},{4197,5247,2},{4190,5250,2}, {4175,5243,2},{4168,5253,2},{4168,5257,2},{4165,5258,2},{4157,5258,2},{4152,5255,2}, {4148,5263,2},{4145,5265,2},{4143,5270,2},{4142,5272,2},{4138,5272,2},{4137,5277,2}, {4132,5278,2},{4123,5282,2},{4115,5285,2},{4107,5285,2},{4105,5288,2},{4112,5292,2}, {4123,5285,2},{4138,5282,2},{4157,5290,2},{4163,5290,2},{4167,5292,2},{4170,5287,2}, {4170,5283,2},{4170,5285,2},{4170,5282,2},{4167,5278,2},{4167,5277,2},{4172,5278,2}, {4178,5283,2},{4197,5295,2},{4200,5297,2},{4203,5307,2},{4207,5308,2},{4210,5315,2}, {4207,5328,2},{4210,5337,2},{4210,5347,2},{4215,5367,2},{4212,5382,2},{4207,5390,2}, {4200,5392,2},{4197,5390,2},{4190,5390,2},{4188,5393,2},{4180,5398,2},{4170,5402,2}, {4160,5402,2},{4148,5407,2},{4145,5415,2},{4140,5420,2},{4133,5430,2},{4125,5452,2}, {4115,5463,2},{4112,5465,2},{4110,5473,2},{4108,5472,2},{4103,5477,2},{4107,5468,2}, {4097,5477,2},{4088,5472,2},{4087,5467,2},{4083,5463,2},{4080,5448,2},{4082,5443,2}, {4083,5445,2},{4087,5447,2},{4087,5442,2},{4090,5440,2},{4093,5433,2},{4088,5425,2}, {4087,5427,2},{4083,5427,2},{4072,5432,2},{4072,5443,2},{4068,5437,2},{4067,5440,2}, {4067,5427,2},{4068,5422,2},{4072,5423,2},{4073,5423,2},{4072,5407,2},{4068,5410,2}, {4065,5403,2},{4067,5395,2},{4065,5390,2},{4063,5387,2},{4063,5377,2},{4062,5375,2}, {4063,5370,2},{4068,5373,2},{4072,5368,2},{4078,5365,2},{4080,5367,2},{4083,5365,2}, {4085,5365,2},{4088,5363,2},{4090,5360,2},{4088,5358,2},{4085,5355,2},{4077,5355,2}, {4073,5347,2},{4078,5338,2},{4083,5338,2},{4082,5335,2},{4078,5333,2},{4077,5332,2}, {4077,5323,2},{4082,5325,2},{4077,5318,2},{4077,5312,2},{4083,5307,2},{4087,5312,2}, {4087,5307,2},{4090,5303,2},{4093,5302,2},{4102,5295,2},{4103,5297,2},{4107,5295,2}, {4108,5292,2},{4107,5292,2},{4102,5292,2},{4095,5293,2},{4087,5288,2},{4078,5287,2}, {4077,5287,2},{4075,5283,2},{4072,5283,2},{4068,5287,2},{4052,5275,2},{4045,5272,2}, {4037,5273,2},{4027,5268,2},{4022,5273,2},{4018,5273,2},{4017,5277,2},{4005,5273,2}, {3997,5283,2},{3995,5288,2},{3987,5290,2},{3983,5297,2},{3977,5300,2},{3973,5303,2}, {3978,5300,2},{3975,5305,2},{3990,5292,2},{4002,5290,2},{4002,5293,2},{3998,5293,2}, {3997,5300,2},{4000,5308,2},{3997,5305,2},{3997,5307,2},{3997,5312,2},{4000,5317,2}, {3993,5328,2},{4000,5338,2},{4000,5342,2},{3997,5348,2},{3997,5358,2},{3992,5352,2}, {3990,5353,2},{3988,5348,2},{3987,5350,2},{3977,5342,2},{3977,5338,2},{3975,5343,2}, {3967,5342,2},{3963,5345,2},{3968,5343,2},{3967,5345,2},{3968,5345,2},{3970,5345,2}, {3963,5353,2},{3967,5353,2},{3967,5355,2},{3962,5357,2},{3962,5360,2},{3962,5363,2}, {3960,5365,2},{3957,5365,2},{3957,5363,2},{3955,5365,2},{3955,5370,2},{3952,5373,2}, {3950,5372,2},{3952,5370,2},{3952,5365,2},{3948,5363,2},{3952,5358,2},{3950,5357,2}, {3948,5358,2},{3947,5357,2},{3947,5355,2},{3948,5348,2},{3953,5342,2},{3952,5325,2}, {3952,5320,2},{3962,5327,2},{3965,5332,2},{3967,5330,2},{3965,5327,2},{3962,5323,2}, {3952,5318,2},{3940,5308,2},{3932,5315,2},{3918,5317,2},{3918,5318,2},{3927,5317,2}, {3932,5320,2},{3933,5315,2},{3937,5323,2},{3935,5330,2},{3932,5328,2},{3933,5340,2}, {3930,5338,2},{3933,5343,2},{3932,5345,2},{3933,5350,2},{3933,5353,2},{3935,5357,2}, {3932,5355,2},{3932,5358,2},{3928,5357,2},{3928,5358,2},{3920,5357,2},{3920,5358,2}, {3923,5360,2},{3918,5360,2},{3918,5362,2},{3912,5363,2},{3908,5368,2},{3918,5368,2}, {3920,5367,2},{3923,5372,2},{3920,5370,2},{3917,5370,2},{3917,5373,2},{3913,5370,2}, {3907,5370,2},{3907,5373,2},{3912,5372,2},{3903,5377,2},{3905,5380,2},{3903,5382,2}, {3903,5387,2},{3898,5388,2},{3893,5393,2},{3893,5397,2},{3892,5397,2},{3892,5398,2}, {3880,5392,2},{3877,5392,2},{3867,5385,2},{3852,5382,2},{3842,5383,2},{3835,5387,2}, {3822,5385,2},{3803,5382,2},{3788,5380,2},{3773,5382,2},{3755,5387,2},{3750,5388,2}, {3735,5390,2},{3253,53824,128},{3265,53819,0},{3268,53814,0},{3270,53816,0}, {3268,53818,0},{3262,53821,0},{3262,53824,0},{3265,53824,0},{3268,53821,0}, {3273,53814,0},{3270,53813,0},{3267,53811,0},{3268,53809,0},{3277,53811,0}, {3283,53808,0},{3288,53811,0},{3300,53808,0},{3312,53803,0},{3325,53794,0}, {3335,53786,0},{3345,53771,0},{3348,53764,0},{3355,53758,0},{3360,53751,0}, {3363,53741,0},{3377,53724,0},{3377,53716,0},{3378,53714,0},{3377,53709,0}, {3373,53709,0},{3372,53708,0},{3375,53701,0},{3375,53696,0},{3378,53694,0}, {3383,53698,0},{3385,53698,0},{3393,53693,0},{3405,53683,0},{3403,53661,0}, {3403,53658,0},{3402,53656,0},{3405,53644,0},{3408,53634,0},{3412,53624,0}, {3412,53623,0},{3412,53626,0},{3412,53624,0},{3417,53614,0},{3428,53609,0}, {3428,53604,0},{3435,53594,0},{3442,53583,0},{3442,53574,0},{3442,53568,0}, {3440,53564,0},{3442,53558,0},{3442,53549,0},{3447,53536,0},{3448,53524,0}, {3447,53506,0},{3445,53491,0},{3453,53486,0},{3457,53481,0},{3457,53474,0}, {3462,53473,0},{3470,53478,0},{3477,53474,0},{3485,53476,0},{3493,53471,0}, {3505,53476,0},{3510,53476,0},{3513,53474,0},{3518,53466,0},{3517,53461,0}, {3522,53451,0},{3525,53449,0},{3530,53449,0},{3537,53453,0},{3533,53453,0}, {3535,53456,0},{3537,53453,0},{3543,53451,0},{3547,53436,0},{3565,53421,0}, {3567,53409,0},{3573,53406,0},{3577,53406,0},{3588,53393,0},{3600,53389,0}, {3603,53381,0},{3618,53371,0},{3625,53356,0},{3628,53354,0},{3630,53349,0}, {3640,53349,0},{3652,53344,0},{3653,53346,0},{3657,53344,0},{3658,53341,0}, {3660,53341,0},{3665,53346,0},{3662,53351,0},{3663,53354,0},{3675,53358,0}, {3673,53363,0},{3675,53361,0},{3677,53359,0},{3682,53361,0},{3697,53349,0}, {3698,53346,0},{3695,53341,0},{3697,53338,0},{3695,53333,0},{3697,53328,0}, {3702,53318,0},{3712,53308,0},{3712,53306,0},{3722,53298,0},{3733,53299,0}, {3748,53294,0},{3750,53293,0},{3752,53288,0},{3758,53286,0},{3765,53289,0}, {3778,53288,0},{3782,53291,0},{3782,53298,0},{3778,53301,0},{3775,53299,0}, {3773,53303,0},{3772,53299,0},{3765,53299,0},{3762,53301,0},{3760,53306,0}, {3758,53308,0},{3758,53313,0},{3755,53313,0},{3753,53318,0},{3752,53318,0}, {3750,53324,0},{3747,53328,0},{3747,53336,0},{3748,53333,0},{3750,53333,0}, {3752,53328,0},{3770,53321,0},{3772,53319,0},{3772,53314,0},{3773,53313,0}, {3775,53316,0},{3778,53306,0},{3783,53306,0},{3783,53308,0},{3790,53306,0}, {3792,53301,0},{3797,53296,0},{3797,53299,0},{3802,53301,0},{3802,53308,0}, {3807,53314,0},{3803,53323,0},{3807,53334,0},{3802,53368,0},{3802,53369,0}, {3803,53366,0},{3805,53369,0},{3808,53371,0},{3810,53376,0},{3805,53384,0}, {3805,53388,0},{3800,53393,0},{3802,53394,0},{3812,53378,0},{3810,53371,0}, {3807,53368,0},{3805,53364,0},{3805,53361,0},{3807,53359,0},{3810,53366,0}, {3815,53369,0},{3808,53361,0},{3808,53351,0},{3807,53346,0},{3808,53348,0}, {3810,53338,0},{3815,53339,0},{3815,53336,0},{3813,53333,0},{3810,53331,0}, {3805,53323,0},{3807,53319,0},{3808,53313,0},{3812,53308,0},{3817,53298,0}, {3813,53296,0},{3812,53288,0},{3808,53289,0},{3802,53288,0},{3800,53293,0}, {3798,53293,0},{3797,53289,0},{3795,53289,0},{3793,53288,0},{3788,53294,0}, {3788,53291,0},{3790,53289,0},{3788,53289,0},{3783,53291,0},{3783,53288,0}, {3792,53273,0},{3793,53271,0},{3792,53271,0},{3790,53268,0},{3797,53261,0}, {3800,53258,0},{3805,53246,0},{3808,53244,0},{3807,53243,0},{3805,53244,0}, {3802,53241,0},{3800,53241,0},{3800,53236,0},{3805,53241,0},{3815,53243,0}, {3820,53243,0},{3823,53239,0},{3818,53246,0},{3810,53253,0},{3808,53256,0}, {3812,53253,0},{3825,53243,0},{3830,53239,0},{3833,53233,0},{3832,53233,0}, {3832,53231,0},{3837,53231,0},{3847,53226,0},{3857,53204,0},{3865,53196,0}, {3873,53191,0},{3875,53186,0},{3893,53166,0},{3897,53164,0},{3902,53169,0}, {3912,53168,0},{3918,53164,0},{3922,53161,0},{3937,53156,0},{3948,53158,0}, {3957,53163,0},{3962,53159,0},{3970,53159,0},{3977,53154,0},{3983,53154,0}, {3998,53141,0},{4002,53134,0},{4003,53131,0},{4010,53129,0},{4025,53104,0}, {4033,53104,0},{4045,53098,0},{4058,53103,0},{4065,53108,0},{4072,53109,0}, {4077,53114,0},{4072,53111,0},{4070,53114,0},{4072,53118,0},{4075,53116,0}, {4080,53119,0},{4082,53128,0},{4085,53129,0},{4085,53123,0},{4078,53118,0}, {4078,53116,0},{4087,53121,0},{4098,53126,0},{4103,53126,0},{4108,53123,0}, {4115,53123,0},{4122,53126,0},{4142,53133,0},{4153,53129,0},{4155,53131,0}, {4157,53128,0},{4170,53124,0},{4175,53121,0},{4178,53111,0},{4187,53118,0}, {4195,53119,0},{4200,53118,0},{4212,53103,0},{4222,53099,0},{4227,53096,0}, {4230,53096,0},{4233,53093,0},{4238,53096,0},{4248,53094,0},{4255,53098,0}, {4267,53098,0},{4270,53093,0},{4275,53089,0},{4275,53086,0},{4282,53086,0}, {4285,53081,0},{4303,53093,0},{4335,53099,0},{4335,53104,0},{4332,53104,0}, {4330,53106,0},{4333,53106,0},{4335,53109,0},{4337,53106,0},{4342,53111,0}, {4343,53114,0},{4338,53116,0},{4337,53123,0},{4345,53116,0},{4348,53118,0}, {4338,53104,0},{4357,53114,0},{4367,53118,0},{4370,53121,0},{4373,53124,0}, {4372,53126,0},{4372,53129,0},{4375,53124,0},{4375,53121,0},{4370,53121,0}, {4370,53118,0},{4400,53124,0},{4400,53126,0},{4407,53124,0},{4418,53126,0}, {4433,53126,0},{4443,53129,0},{4442,53136,0},{4445,53134,0},{4447,53129,0}, {4462,53131,0},{4462,53136,0},{4465,53136,0},{4465,53133,0},{4468,53131,0}, {4473,53133,0},{4483,53131,0},{4492,53134,0},{4492,53136,0},{4507,53136,0}, {4518,53141,0},{4522,53141,0},{4528,53143,0},{4533,53141,0},{4535,53138,0}, {4537,53141,0},{4543,53143,0},{4540,53143,0},{4542,53146,0},{4547,53141,0}, {4550,53141,0},{4552,53143,0},{4552,53146,0},{4548,53149,0},{4552,53153,0}, {4553,53149,0},{4558,53148,0},{4558,53144,0},{4560,53143,0},{4568,53146,0}, {4572,53151,0},{4572,53146,0},{4568,53144,0},{4572,53144,0},{4577,53141,0}, {4578,53139,0},{4582,53141,0},{4588,53143,0},{4595,53139,0},{4598,53144,0}, {4603,53144,0},{4613,53143,0},{4623,53138,0},{4617,53151,0},{4617,53156,0}, {4613,53156,0},{4612,53158,0},{4615,53159,0},{4620,53153,0},{4622,53159,0}, {4618,53164,0},{4620,53178,0},{4622,53176,0},{4622,53181,0},{4625,53186,0}, {4625,53189,0},{4622,53193,0},{4617,53196,0},{4615,53209,0},{4617,53216,0}, {4620,53219,0},{4617,53209,0},{4620,53204,0},{4623,53198,0},{4628,53193,0}, {4627,53179,0},{4628,53171,0},{4632,53168,0},{4630,53166,0},{4628,53161,0}, {4630,53158,0},{4627,53151,0},{4627,53146,0},{4633,53138,0},{4632,53134,0}, {4628,53134,0},{4628,53129,0},{4635,53133,0},{4665,53131,0},{4665,53134,0}, {4663,53133,0},{4658,53136,0},{4650,53134,0},{4640,53138,0},{4640,53143,0}, {4645,53144,0},{4642,53153,0},{4643,53153,0},{4645,53148,0},{4650,53144,0}, {4653,53148,0},{4657,53148,0},{4663,53143,0},{4662,53148,0},{4665,53144,0}, {4668,53146,0},{4672,53153,0},{4667,53158,0},{4670,53161,0},{4670,53158,0}, {4675,53149,0},{4673,53144,0},{4675,53141,0},{4672,53141,0},{4675,53129,0}, {4692,53124,0},{4693,53126,0},{4692,53128,0},{4687,53129,0},{4685,53134,0}, {4685,53136,0},{4688,53134,0},{4688,53133,0},{4690,53133,0},{4698,53156,0}, {4698,53144,0},{4700,53144,0},{4698,53139,0},{4705,53134,0},{4707,53129,0}, {4707,53126,0},{4703,53123,0},{4697,53124,0},{4693,53121,0},{4698,53121,0}, {4707,53121,0},{4722,53118,0},{4732,53113,0},{4733,53109,0},{4737,53111,0}, {4737,53106,0},{4767,53101,0},{4775,53096,0},{4777,53093,0},{4783,53089,0}, {4785,53086,0},{4788,53081,0},{4788,53078,0},{4800,53071,0},{4812,53068,0}, {4817,53064,0},{4822,53069,0},{4825,53068,0},{4833,53071,0},{4837,53066,0}, {4840,53064,0},{4838,53079,0},{4830,53096,0},{4825,53121,0},{4820,53133,0}, {4818,53143,0},{4817,53158,0},{4817,53166,0},{4815,53174,0},{4815,53188,0}, {4815,53194,0},{4813,53194,0},{4813,53201,0},{4813,53213,0},{4820,53226,0}, {4817,53221,0},{4815,53228,0},{4812,53233,0},{4807,53234,0},{4805,53236,0}, {4807,53238,0},{4810,53236,0},{4812,53241,0},{4810,53244,0},{4808,53246,0}, {4807,53249,0},{4803,53253,0},{4802,53249,0},{4800,53251,0},{4805,53254,0}, {4810,53249,0},{4812,53249,0},{4815,53253,0},{4817,53261,0},{4813,53263,0}, {4812,53258,0},{4808,53258,0},{4798,53269,0},{4795,53269,0},{4790,53276,0}, {4788,53269,0},{4785,53269,0},{4782,53264,0},{4770,53258,0},{4772,53254,0}, {4782,53258,0},{4787,53256,0},{4780,53254,0},{4783,53251,0},{4777,53253,0}, {4773,53249,0},{4767,53246,0},{4762,53239,0},{4752,53231,0},{4747,53226,0}, {4737,53221,0},{4735,53226,0},{4737,53236,0},{4745,53253,0},{4745,53249,0}, {4738,53234,0},{4740,53226,0},{4752,53234,0},{4762,53243,0},{4763,53246,0}, {4768,53261,0},{4775,53264,0},{4787,53274,0},{4785,53278,0},{4783,53279,0}, {4783,53281,0},{4793,53279,0},{4795,53276,0},{4792,53284,0},{4782,53288,0}, {4780,53288,0},{4777,53291,0},{4775,53288,0},{4777,53283,0},{4772,53278,0}, {4775,53271,0},{4770,53276,0},{4758,53278,0},{4767,53269,0},{4765,53268,0}, {4760,53269,0},{4758,53274,0},{4755,53269,0},{4757,53276,0},{4760,53283,0}, {4755,53283,0},{4753,53288,0},{4743,53281,0},{4737,53283,0},{4735,53279,0}, {4730,53283,0},{4728,53279,0},{4732,53269,0},{4733,53269,0},{4738,53274,0}, {4742,53274,0},{4740,53273,0},{4735,53264,0},{4730,53261,0},{4725,53264,0}, {4723,53263,0},{4722,53263,0},{4718,53261,0},{4722,53258,0},{4727,53254,0}, {4732,53259,0},{4742,53256,0},{4733,53253,0},{4730,53244,0},{4720,53243,0}, {4718,53239,0},{4715,53229,0},{4715,53236,0},{4712,53229,0},{4713,53234,0}, {4720,53244,0},{4718,53244,0},{4712,53241,0},{4710,53238,0},{4712,53241,0}, {4715,53244,0},{4707,53246,0},{4707,53248,0},{4710,53248,0},{4715,53248,0}, {4718,53253,0},{4715,53251,0},{4715,53256,0},{4718,53256,0},{4710,53264,0}, {4712,53268,0},{4720,53279,0},{4728,53284,0},{4733,53284,0},{4728,53294,0}, {4730,53298,0},{4733,53294,0},{4737,53304,0},{4740,53304,0},{4747,53301,0}, {4750,53301,0},{4760,53296,0},{4762,53299,0},{4758,53303,0},{4762,53303,0}, {4767,53294,0},{4773,53301,0},{4778,53298,0},{4783,53299,0},{4788,53304,0}, {4797,53308,0},{4798,53314,0},{4802,53318,0},{4803,53316,0},{4803,53313,0}, {4803,53309,0},{4808,53303,0},{4822,53298,0},{4823,53293,0},{4822,53291,0}, {4817,53289,0},{4813,53291,0},{4810,53298,0},{4805,53301,0},{4805,53298,0}, {4812,53291,0},{4812,53286,0},{4818,53283,0},{4823,53284,0},{4825,53286,0}, {4825,53293,0},{4823,53298,0},{4830,53298,0},{4837,53286,0},{4837,53283,0}, {4840,53279,0},{4843,53279,0},{4840,53273,0},{4842,53268,0},{4847,53269,0}, {4850,53266,0},{4852,53274,0},{4845,53278,0},{4848,53279,0},{4845,53283,0}, {4845,53288,0},{4853,53288,0},{4858,53279,0},{4858,53284,0},{4855,53289,0}, {4855,53291,0},{4860,53293,0},{4870,53284,0},{4873,53286,0},{4875,53284,0}, {4878,53278,0},{4875,53276,0},{4872,53273,0},{4872,53269,0},{4877,53271,0}, {4880,53268,0},{4878,53266,0},{4882,53266,0},{4887,53259,0},{4892,53261,0}, {4893,53259,0},{4893,53256,0},{4893,53254,0},{4897,53259,0},{4895,53263,0}, {4898,53261,128},{4902,53259,0},{4900,53253,0},{4903,53248,0},{4908,53249,0}, {4908,53246,0},{4905,53233,0},{4898,53233,0},{4898,53228,0},{4903,53224,0}, {4907,53221,0},{4908,53226,0},{4915,53233,0},{4910,53224,0},{4913,53214,0}, {4920,53216,0},{4920,53223,0},{4918,53223,0},{4920,53223,0},{4925,53213,0}, {4928,53211,0},{4928,53221,0},{4930,53219,0},{4930,53221,0},{4928,53224,0}, {4928,53244,0},{4933,53248,0},{4943,53251,0},{4945,53249,0},{4943,53248,0}, {4937,53246,0},{4932,53243,0},{4930,53234,0},{4933,53213,0},{4933,53209,0}, {4937,53208,0},{4938,53211,0},{4943,53213,0},{4952,53211,0},{4962,53216,0}, {4965,53216,0},{4968,53221,0},{4970,53219,0},{4967,53213,0},{4958,53211,0}, {4958,53204,0},{4955,53201,0},{4955,53198,0},{4952,53186,0},{4942,53188,0}, {4938,53184,0},{4943,53164,0},{4947,53161,0},{4947,53151,0},{4947,53148,0}, {4950,53144,0},{4952,53139,0},{4963,53129,0},{4972,53133,0},{4973,53136,0}, {4973,53143,0},{4968,53148,0},{4963,53153,0},{4950,53158,0},{4953,53161,0}, {4958,53159,0},{4960,53159,0},{4963,53168,0},{4963,53174,0},{4970,53183,0}, {4965,53169,0},{4963,53158,0},{4965,53154,0},{4970,53153,0},{4977,53143,0}, {4983,53148,0},{4988,53149,0},{4992,53148,0},{4993,53141,0},{4998,53139,0}, {5003,53149,0},{5005,53156,0},{5008,53161,0},{5015,53153,0},{5022,53138,0}, {5017,53141,0},{5015,53149,0},{5010,53154,0},{5005,53151,0},{5000,53136,0}, {4992,53138,0},{4987,53144,0},{4983,53143,0},{4983,53139,0},{4980,53138,0}, {4982,53136,0},{4992,53133,0},{4987,53129,0},{4983,53131,0},{4982,53128,0}, {4980,53128,0},{4977,53119,0},{4978,53111,0},{4975,53109,0},{4977,53101,0}, {4977,53096,0},{4977,53091,0},{4980,53084,0},{4983,53083,0},{4987,53079,0}, {4993,53066,0},{4998,53059,0},{5007,53053,0},{4998,53066,0},{5003,53066,0}, {5007,53069,0},{5010,53066,0},{5012,53069,0},{5013,53069,0},{5017,53074,0}, {5023,53076,0},{5028,53073,0},{5033,53064,0},{5035,53068,0},{5038,53071,0}, {5040,53076,0},{5040,53083,0},{5045,53094,0},{5050,53101,0},{5050,53098,0}, {5047,53093,0},{5042,53079,0},{5043,53069,0},{5035,53063,0},{5032,53053,0}, {5033,53039,0},{5037,53041,0},{5043,53036,0},{5035,53036,0},{5035,53033,0}, {5032,53031,0},{5032,53028,0},{5035,53028,0},{5037,53029,0},{5048,53031,0}, {5050,53039,0},{5055,53043,0},{5055,53048,0},{5058,53049,0},{5060,53048,0}, {5068,53049,0},{5072,53054,0},{5080,53044,0},{5088,53058,0},{5092,53054,0}, {5093,53051,0},{5092,53049,0},{5088,53049,0},{5083,53044,0},{5080,53038,0}, {5080,53041,0},{5075,53041,0},{5075,53046,0},{5073,53046,0},{5067,53044,0}, {5062,53046,0},{5060,53043,0},{5060,53041,0},{5057,53038,0},{5055,53034,0}, {5053,53033,0},{5050,53026,0},{5043,53024,0},{5042,53018,0},{5047,53011,0}, {5050,53011,0},{5045,53006,0},{5048,53003,0},{5050,53001,0},{5053,53003,0}, {5053,52999,0},{5048,52996,0},{5047,52994,0},{5047,52979,0},{5053,52983,0}, {5058,52981,0},{5063,52983,0},{5067,52986,0},{5068,52991,0},{5072,52993,0}, {5072,52989,0},{5067,52981,0},{5055,52979,0},{5050,52974,0},{5047,52974,0}, {5043,52966,0},{5043,52964,0},{5050,52956,0},{5052,52963,0},{5053,52954,0}, {5050,52949,0},{5047,52939,0},{5048,52936,0},{5047,52929,0},{5050,52928,0}, {5048,52923,0},{5050,52914,0},{5052,52908,0},{5053,52913,0},{5052,52918,0}, {5057,52918,0},{5057,52919,0},{5062,52939,0},{5063,52943,0},{5065,52938,0}, {5063,52929,0},{5058,52916,0},{5060,52911,0},{5063,52909,0},{5065,52926,0}, {5067,52933,0},{5065,52944,0},{5067,52953,0},{5068,52961,0},{5067,52964,0}, {5068,52966,0},{5073,52968,0},{5075,52974,0},{5078,52976,0},{5085,52971,0}, {5087,52976,0},{5085,52979,0},{5087,52981,0},{5093,52986,0},{5105,52981,0}, {5110,52973,0},{5107,52973,0},{5095,52978,0},{5093,52981,0},{5090,52979,0}, {5090,52974,0},{5087,52968,0},{5082,52968,0},{5080,52973,0},{5078,52971,0}, {5077,52966,0},{5070,52961,0},{5070,52951,0},{5068,52943,0},{5070,52939,0}, {5070,52936,0},{5068,52931,0},{5067,52916,0},{5067,52914,0},{5070,52914,0}, {5072,52919,0},{5080,52934,0},{5077,52921,0},{5080,52916,0},{5087,52918,0}, {5085,52914,0},{5085,52913,0},{5087,52913,0},{5085,52898,0},{5082,52893,0}, {5082,52886,0},{5083,52881,0},{5088,52881,0},{5092,52886,0},{5090,52913,0}, {5092,52918,0},{5093,52919,0},{5095,52918,0},{5092,52911,0},{5095,52889,0}, {5098,52886,0},{5107,52884,0},{5102,52881,0},{5093,52884,0},{5090,52879,0}, {5088,52871,0},{5087,52869,0},{5088,52864,0},{5093,52851,0},{5090,52846,0}, {5090,52833,0},{5093,52824,0},{5093,52818,0},{5092,52819,0},{5088,52829,0}, {5088,52844,0},{5082,52834,0},{5087,52823,0},{5088,52814,0},{5092,52811,0}, {5093,52796,0},{5095,52793,0},{5097,52794,0},{5098,52794,0},{5098,52788,0}, {5100,52783,0},{5110,52786,0},{5110,52788,0},{5112,52786,0},{5108,52773,0}, {5110,52768,0},{5112,52769,0},{5113,52766,0},{5113,52761,0},{5117,52758,0}, {5123,52758,0},{5125,52761,0},{5130,52779,0},{5128,52793,0},{5127,52799,0}, {5128,52813,0},{5133,52823,0},{5138,52824,0},{5132,52818,0},{5130,52808,0}, {5132,52784,0},{5135,52791,0},{5135,52789,0},{5133,52779,0},{5133,52758,0}, {5137,52758,0},{5138,52763,0},{5138,52769,0},{5147,52776,0},{5147,52781,0}, {5150,52781,0},{5152,52784,0},{5158,52784,0},{5162,52786,0},{5165,52798,0}, {5167,52826,0},{5165,52844,0},{5163,52866,0},{5165,52871,0},{5167,52871,0}, {5168,52874,0},{5172,52876,0},{5180,52869,0},{5172,52873,0},{5167,52866,0}, {5168,52836,0},{5170,52831,0},{5168,52816,0},{5168,52809,0},{5172,52803,0}, {5168,52799,0},{5167,52794,0},{5167,52793,0},{5175,52793,0},{5177,52799,0}, {5187,52801,0},{5178,52796,0},{5177,52791,0},{5170,52789,0},{5170,52771,0}, {5168,52778,0},{5167,52789,0},{5165,52786,0},{5163,52783,0},{5157,52778,0}, {5153,52779,0},{5147,52773,0},{5145,52766,0},{5150,52759,0},{5152,52771,0}, {5153,52768,0},{5153,52756,0},{5160,52756,0},{5160,52753,0},{5163,52753,0}, {5167,52748,0},{5173,52749,0},{5180,52748,0},{5190,52749,0},{5193,52758,0}, {5195,52769,0},{5205,52771,0},{5213,52778,0},{5215,52786,0},{5215,52789,0}, {5213,52789,0},{5212,52789,0},{5210,52786,0},{5210,52778,0},{5203,52774,0}, {5203,52778,0},{5208,52781,0},{5208,52794,0},{5218,52791,0},{5218,52796,0}, {5222,52799,0},{5223,52808,0},{5225,52811,0},{5232,52819,0},{5230,52836,0}, {5225,52843,0},{5220,52843,0},{5208,52861,0},{5198,52869,0},{5203,52869,0}, {5212,52861,0},{5220,52846,0},{5225,52846,0},{5230,52843,0},{5233,52843,0}, {5235,52849,0},{5237,52863,0},{5240,52856,0},{5237,52844,0},{5233,52838,0}, {5235,52823,0},{5238,52818,0},{5242,52818,0},{5245,52813,0},{5252,52813,0}, {5262,52829,0},{5263,52838,0},{5272,52844,0},{5283,52839,0},{5288,52829,0}, {5282,52836,0},{5270,52838,0},{5265,52831,0},{5263,52828,0},{5255,52811,0}, {5250,52808,0},{5247,52809,0},{5240,52791,0},{5233,52783,0},{5232,52776,0}, {5230,52774,0},{5230,52768,0},{5227,52763,0},{5228,52761,0},{5230,52761,0}, {5235,52764,0},{5230,52758,0},{5225,52756,0},{5220,52751,0},{5227,52748,0}, {5230,52743,0},{5235,52744,0},{5237,52753,0},{5245,52744,0},{5250,52749,0}, {5252,52748,0},{5248,52744,0},{5243,52743,0},{5238,52748,0},{5232,52739,0}, {5233,52734,0},{5240,52731,0},{5247,52729,0},{5252,52739,0},{5250,52743,0}, {5253,52743,0},{5255,52748,0},{5258,52748,0},{5255,52743,0},{5253,52733,0}, {5250,52726,0},{5243,52721,0},{5242,52721,0},{5238,52716,0},{5227,52708,0}, {5228,52696,0},{5233,52703,0},{5237,52703,0},{5240,52706,0},{5240,52711,0}, {5247,52714,0},{5257,52713,0},{5267,52718,0},{5275,52724,0},{5288,52723,0}, {5292,52733,0},{5292,52723,0},{5285,52719,0},{5283,52714,0},{5282,52713,0}, {5280,52709,0},{5282,52699,0},{5283,52698,0},{5282,52693,0},{5287,52688,0}, {5292,52686,0},{5307,52683,0},{5310,52686,0},{5310,52683,0},{5312,52681,0}, {5313,52688,0},{5315,52679,0},{5323,52669,0},{5318,52669,0},{5328,52649,0}, {5333,52648,0},{5337,52651,0},{5337,52648,0},{5340,52649,0},{5343,52648,0}, {5348,52653,0},{5348,52651,0},{5348,52648,0},{5345,52644,0},{5348,52643,0}, {5355,52639,0},{5353,52649,0},{5357,52654,0},{5355,52658,0},{5350,52661,0}, {5348,52664,0},{5345,52669,0},{5348,52666,0},{5347,52671,0},{5338,52686,0}, {5335,52686,0},{5333,52688,0},{5338,52689,0},{5340,52686,0},{5343,52688,0}, {5345,52699,0},{5348,52701,0},{5345,52713,0},{5347,52718,0},{5345,52721,0}, {5343,52726,0},{5340,52729,0},{5333,52726,0},{5337,52731,0},{5333,52741,0}, {5325,52741,0},{5322,52749,0},{5323,52749,0},{5328,52743,0},{5333,52744,0}, {5340,52731,0},{5347,52724,0},{5348,52724,0},{5347,52711,0},{5350,52699,0}, {5348,52698,0},{5347,52698,0},{5343,52684,0},{5347,52678,0},{5348,52676,0}, {5350,52673,0},{5352,52668,0},{5355,52666,0},{5357,52661,0},{5362,52654,0}, {5365,52654,0},{5372,52659,0},{5377,52656,0},{5380,52659,0},{5382,52664,0}, {5382,52668,0},{5385,52668,0},{5387,52671,0},{5383,52676,0},{5383,52689,0}, {5385,52688,0},{5387,52674,0},{5388,52668,0},{5403,52676,0},{5400,52668,0}, {5393,52664,0},{5392,52661,0},{5392,52658,0},{5388,52656,0},{5387,52653,0}, {5383,52651,0},{5377,52643,0},{5385,52646,0},{5382,52643,0},{5388,52641,0}, {5390,52636,0},{5387,52639,0},{5378,52639,0},{5377,52636,0},{5378,52633,0}, {5382,52631,0},{5378,52629,0},{5377,52633,0},{5375,52633,0},{5372,52624,0}, {5367,52621,0},{5363,52613,0},{5353,52613,0},{5352,52609,0},{5350,52613,0}, {5343,52613,0},{5340,52609,0},{5338,52609,0},{5340,52601,0},{5357,52576,0}, {5368,52563,0},{5368,52566,0},{5370,52564,0},{5372,52558,0},{5375,52554,0}, {5375,52551,0},{5385,52538,0},{5388,52539,0},{5387,52536,0},{5388,52531,0}, {5395,52526,0},{5402,52528,0},{5407,52528,0},{5415,52531,0},{5415,52541,0}, {5403,52553,0},{5400,52561,0},{5395,52564,0},{5400,52563,0},{5402,52558,0}, {5405,52553,0},{5415,52544,0},{5418,52543,0},{5422,52553,0},{5418,52573,0}, {5418,52576,0},{5422,52581,0},{5423,52589,0},{5423,52583,0},{5420,52574,0}, {5422,52568,0},{5423,52549,0},{5418,52534,0},{5418,52528,0},{5415,52524,0}, {5420,52518,0},{5420,52509,0},{5423,52508,0},{5427,52516,0},{5428,52513,0}, {5433,52509,0},{5440,52511,0},{5435,52508,0},{5433,52501,0},{5433,52489,0}, {5437,52488,0},{5443,52489,0},{5445,52498,0},{5450,52493,0},{5457,52493,0}, {5457,52498,0},{5462,52493,0},{5463,52493,0},{5460,52501,0},{5433,52531,0}, {5432,52538,0},{5433,52539,0},{5435,52533,0},{5440,52528,0},{5448,52529,0}, {5448,52536,0},{5452,52538,0},{5450,52529,0},{5443,52528,0},{5443,52524,0}, {5452,52513,0},{5458,52508,0},{5463,52499,0},{5467,52499,0},{5468,52503,0}, {5472,52513,0},{5470,52519,0},{5467,52524,0},{5467,52528,0},{5463,52531,0}, {5462,52538,0},{5462,52548,0},{5463,52549,0},{5463,52536,0},{5470,52528,0}, {5473,52516,0},{5482,52521,0},{5483,52526,0},{5488,52531,0},{5488,52528,0}, {5485,52523,0},{5485,52519,0},{5497,52533,0},{5497,52541,0},{5492,52538,0}, {5498,52554,0},{5497,52559,0},{5498,52571,0},{5500,52574,0},{5500,52558,0}, {5500,52539,0},{5502,52536,0},{5510,52539,0},{5517,52549,0},{5525,52554,0}, {5528,52561,0},{5532,52563,0},{5537,52568,0},{5543,52571,0},{5545,52576,0}, {5543,52584,0},{5547,52589,0},{5548,52588,0},{5545,52583,0},{5545,52573,0}, {5540,52566,0},{5547,52564,0},{5563,52554,0},{5553,52556,0},{5548,52559,0}, {5542,52558,0},{5538,52553,0},{5537,52553,0},{5540,52556,0},{5537,52554,0}, {5537,52558,0},{5532,52553,0},{5528,52554,0},{5523,52548,0},{5517,52544,0}, {5508,52534,0},{5505,52534,0},{5500,52529,0},{5500,52524,0},{5507,52519,0}, {5518,52528,0},{5528,52541,0},{5535,52536,0},{5547,52534,0},{5555,52526,0}, {5567,52529,0},{5572,52523,0},{5578,52526,0},{5592,52539,0},{5593,52539,0}, {5592,52536,0},{5575,52519,0},{5565,52524,0},{5553,52521,0},{5543,52529,0}, {5535,52531,0},{5528,52538,0},{5523,52529,0},{5523,52526,0},{5520,52526,0}, {5517,52521,0},{5503,52513,0},{5490,52499,0},{5480,52478,0},{5480,52476,0}, {5485,52479,0},{5485,52478,0},{5477,52468,0},{5478,52463,0},{5482,52468,0}, {5490,52463,0},{5497,52463,0},{5495,52461,0},{5488,52461,0},{5483,52463,0}, {5482,52461,0},{5482,52458,0},{5478,52458,0},{5477,52454,0},{5478,52446,0}, {5480,52444,0},{5488,52443,0},{5492,52439,0},{5493,52443,0},{5497,52443,0}, {5497,52439,0},{5500,52436,0},{5507,52439,0},{5510,52453,0},{5510,52454,0}, {5507,52456,0},{5508,52464,0},{5513,52468,0},{5522,52481,0},{5533,52489,0}, {5533,52488,0},{5528,52481,0},{5522,52476,0},{5510,52461,0},{5510,52458,0}, {5515,52454,0},{5508,52444,0},{5510,52434,0},{5513,52429,0},{5518,52429,0}, {5528,52444,0},{5530,52474,0},{5532,52469,0},{5535,52471,0},{5535,52468,0}, {5530,52464,0},{5530,52449,0},{5547,52448,0},{5558,52449,0},{5568,52446,0}, {5570,52448,0},{5578,52441,0},{5582,52444,0},{5580,52438,0},{5582,52434,0}, {5587,52431,0},{5590,52424,0},{5593,52423,0},{5593,52421,0},{5597,52419,0}, {5597,52416,0},{5600,52419,0},{5605,52431,0},{5605,52428,0},{5610,52434,0}, {5610,52429,0},{5600,52414,0},{5597,52404,0},{5597,52398,0},{5600,52394,0}, {5597,52388,0},{5598,52386,0},{5597,52384,0},{5593,52374,0},{5588,52361,0}, {5585,52344,0},{5580,52361,0},{5572,52354,0},{5572,52349,0},{5567,52354,0}, {5563,52353,0},{5562,52348,0},{5560,52348,0},{5567,52336,0},{5558,52343,0}, {5558,52341,0},{5553,52344,0},{5550,52339,0},{5558,52318,0},{5568,52316,0}, {5575,52309,0},{5575,52313,0},{5572,52319,0},{5577,52319,0},{5580,52319,0}, {5580,52331,0},{5585,52328,0},{5588,52333,0},{5593,52329,0},{5595,52333,0}, {5597,52341,0},{5617,52339,0},{5618,52349,0},{5620,52349,0},{5620,52359,0}, {5617,52376,0},{5622,52388,0},{5620,52373,0},{5623,52346,0},{5630,52339,0}, {5635,52339,0},{5638,52329,0},{5637,52326,0},{5638,52321,0},{5647,52318,0}, {5648,52311,0},{5648,52308,0},{5653,52301,0},{5660,52303,0},{5663,52304,0}, {5660,52293,0},{5663,52281,0},{5667,52284,0},{5667,52291,0},{5672,52284,0}, {5675,52289,0},{5677,52289,0},{5677,52294,0},{5680,52296,0},{5682,52299,0}, {5682,52296,0},{5678,52293,0},{5678,52288,0},{5675,52286,0},{5678,52271,0}, {5685,52259,0},{5688,52258,0},{5690,52249,0},{5693,52251,0},{5698,52244,0}, {5695,52258,0},{5698,52259,0},{5705,52254,0},{5708,52258,0},{5707,52251,0}, {5702,52248,0},{5705,52241,0},{5703,52239,0},{5707,52229,0},{5708,52221,0}, {5713,52221,0},{5715,52224,0},{5717,52221,0},{5715,52218,0},{5713,52218,0}, {5713,52214,0},{5717,52214,0},{5717,52211,0},{5712,52211,0},{5710,52206,0}, {5718,52181,0},{5722,52188,0},{5725,52186,0},{5728,52189,0},{5728,52213,0}, {5732,52219,0},{5732,52228,0},{5735,52233,0},{5737,52231,0},{5733,52224,0}, {5732,52214,0},{5733,52206,0},{5733,52198,0},{5735,52193,0},{5738,52191,0}, {5740,52201,0},{5743,52203,0},{5742,52193,0},{5743,52189,0},{5750,52184,0}, {5753,52186,0},{5757,52193,0},{5757,52203,0},{5758,52204,0},{5758,52193,0}, {5757,52183,0},{5757,52178,0},{5758,52174,0},{5763,52169,0},{5770,52173,0}, {5770,52181,0},{5767,52186,0},{5758,52218,0},{5750,52231,0},{5752,52236,0}, {5753,52228,0},{5760,52219,0},{5762,52221,0},{5762,52214,0},{5765,52209,0}, {5767,52203,0},{5772,52196,0},{5772,52189,0},{5775,52183,0},{5790,52181,0}, {5792,52183,0},{5790,52196,0},{5788,52203,0},{5785,52224,0},{5790,52218,0}, {5790,52208,0},{5790,52203,0},{5792,52196,0},{5792,52181,0},{5790,52176,0}, {5787,52178,0},{5788,52173,0},{5785,52173,0},{5782,52174,0},{5778,52171,0}, {5778,52166,0},{5785,52161,0},{5795,52151,0},{5798,52158,0},{5793,52166,0}, {5795,52168,0},{5798,52166,0},{5802,52169,0},{5802,52163,0},{5805,52159,0}, {5810,52166,0},{5813,52164,0},{5815,52169,0},{5813,52161,0},{5810,52163,0}, {5805,52156,0},{5802,52156,0},{5798,52148,0},{5802,52138,0},{5807,52134,0}, {5807,52131,0},{5810,52129,0},{5812,52133,0},{5818,52128,0},{5825,52131,0}, {5828,52129,0},{5828,52134,0},{5832,52138,0},{5840,52134,0},{5843,52141,0}, {5850,52144,0},{5852,52148,0},{5850,52156,0},{5852,52159,0},{5852,52146,0}, {5850,52138,0},{5843,52138,0},{5842,52129,0},{5840,52131,0},{5833,52129,0}, {5830,52121,0},{5825,52126,0},{5820,52121,0},{5822,52111,0},{5835,52084,0}, {5835,52073,0},{5838,52071,0},{5838,52059,0},{5848,52058,0},{5857,52048,0}, {5867,52038,0},{5865,52044,0},{5867,52044,0},{5870,52043,0},{5882,52041,0}, {5882,52036,0},{5878,52036,0},{5878,52033,0},{5873,52034,0},{5883,52021,0}, {5888,52023,0},{5893,52019,0},{5900,52019,0},{5902,52016,0},{5920,52008,0}, {5927,51999,0},{5943,52004,0},{5947,52003,0},{5945,51999,0},{5930,51996,0}, {5932,51981,0},{5928,51991,0},{5923,51993,0},{5920,52001,0},{5908,52006,0}, {5912,51998,0},{5920,51994,0},{5922,51988,0},{5923,51981,0},{5918,51989,0}, {5913,51991,0},{5908,51998,0},{5897,51998,0},{5892,52001,0},{5892,52004,0}, {5887,52003,0},{5878,52013,0},{5872,52011,0},{5863,52019,0},{5862,52014,0}, {5860,52014,0},{5853,52019,0},{5833,52031,0},{5830,52031,0},{5830,52028,0}, {5823,52028,0},{5820,52021,0},{5825,52003,0},{5848,51988,0},{5847,51984,0}, {5842,51989,0},{5837,51989,0},{5842,51973,0},{5840,51966,0},{5838,51944,0}, {5847,51949,0},{5845,51941,0},{5847,51944,0},{5847,51951,0},{5848,51949,0}, {5855,51953,0},{5858,51948,0},{5860,51954,0},{5860,51949,0},{5862,51946,0}, {5870,51943,0},{5870,51938,0},{5872,51939,0},{5882,51929,0},{5887,51943,0}, {5885,51944,0},{5888,51961,0},{5890,51956,0},{5892,51939,0},{5890,51943,0}, {5888,51941,0},{5885,51933,0},{5888,51931,0},{5892,51933,0},{5895,51926,0}, {5902,51926,0},{5903,51921,0},{5895,51923,0},{5892,51914,0},{5893,51926,0}, {5890,51924,0},{5887,51926,0},{5877,51923,0},{5875,51919,0},{5875,51911,0}, {5880,51898,0},{5882,51909,0},{5883,51889,0},{5890,51886,0},{5897,51888,0}, {5897,51883,0},{5892,51879,0},{5897,51873,0},{5902,51866,0},{5897,51869,0}, {5890,51876,0},{5890,51874,0},{5888,51871,0},{5892,51866,0},{5897,51851,0}, {5907,51831,0},{5905,51829,0},{5897,51844,0},{5893,51846,0},{5892,51844,0}, {5892,51833,0},{5882,51823,0},{5890,51838,0},{5888,51851,0},{5883,51856,0}, {5887,51858,0},{5887,51863,0},{5883,51871,0},{5883,51879,0},{5882,51883,0}, {5880,51888,0},{5877,51884,0},{5878,51883,0},{5877,51883,0},{5880,51878,0}, {5882,51873,0},{5882,51871,0},{5878,51878,0},{5877,51876,0},{5873,51884,0}, {5870,51884,0},{5867,51893,0},{5872,51886,0},{5875,51888,0},{5873,51889,0}, {5872,51898,0},{5868,51903,0},{5862,51889,0},{5862,51884,0},{5858,51888,0}, {5862,51896,0},{5860,51903,0},{5862,51903,0},{5865,51903,0},{5862,51908,0}, {5867,51906,0},{5862,51918,0},{5860,51916,0},{5858,51918,0},{5855,51924,0}, {5855,51921,0},{5852,51919,0},{5852,51914,0},{5850,51919,0},{5852,51923,0}, {5852,51928,0},{5838,51933,0},{5833,51928,0},{5830,51911,0},{5832,51908,0}, {5833,51908,0},{5835,51909,0},{5840,51904,0},{5837,51901,0},{5840,51891,0}, {5843,51886,0},{5838,51888,0},{5837,51884,0},{5837,51881,0},{5833,51888,0}, {5838,51889,0},{5837,51898,0},{5833,51901,0},{5830,51899,0},{5832,51893,0}, {5830,51888,0},{5837,51876,0},{5833,51871,0},{5827,51881,0},{5823,51878,0}, {5822,51871,0},{5825,51864,0},{5827,51866,0},{5828,51869,0},{5830,51868,0}, {5830,51863,0},{5830,51861,0},{5830,51858,0},{5833,51859,0},{5832,51854,0}, {5832,51851,0},{5835,51853,0},{5838,51849,0},{5833,51846,0},{5838,51843,0}, {5840,51836,0},{5838,51828,0},{5840,51824,0},{5858,51781,0},{5860,51774,0}, {5862,51774,0},{5862,51779,0},{5867,51793,0},{5868,51788,0},{5865,51778,0}, {5862,51771,0},{5867,51768,0},{5880,51743,0},{5885,51744,0},{5890,51739,0}, {5903,51716,0},{5907,51706,0},{5907,51708,0},{5908,51694,0},{5910,51694,0}, {5908,51698,0},{5910,51696,0},{5912,51676,0},{5913,51676,0},{5912,51686,0}, {5915,51686,0},{5918,51693,0},{5918,51691,0},{5917,51671,0},{5913,51673,0}, {5920,51661,0},{5927,51641,0},{5932,51616,0},{5930,51624,0},{5933,51619,0}, {5933,51613,0},{5938,51614,0},{5937,51608,0},{5935,51608,0},{5938,51593,0}, {5942,51586,0},{5938,51598,0},{5940,51604,0},{5942,51598,0},{5940,51591,0}, {5943,51584,0},{5943,51579,0},{5953,51551,0},{5955,51553,0},{5955,51563,0}, {5958,51568,0},{5957,51573,0},{5962,51579,0},{5962,51578,0},{5965,51578,0}, {5970,51589,0},{5980,51578,0},{5988,51574,0},{5998,51588,0},{5993,51599,0}, {5985,51606,0},{5982,51603,0},{5972,51603,0},{5962,51609,0},{5960,51604,0}, {5960,51603,0},{5957,51608,0},{5957,51611,0},{5962,51614,0},{5967,51609,0}, {5973,51609,0},{5973,51606,0},{5978,51611,0},{5983,51608,0},{5985,51623,0}, {5983,51636,0},{5980,51639,0},{5980,51646,0},{5982,51641,0},{5985,51634,0}, {5987,51613,0},{6000,51596,0},{6002,51588,0},{6005,51586,0},{6005,51583,0}, {6000,51578,0},{5995,51578,0},{5993,51568,0},{5982,51553,0},{5972,51513,0}, {5970,51498,0},{5975,51449,0},{5988,51391,0},{5992,51391,0},{5992,51396,0}, {5992,51393,0},{5988,51393,0},{5993,51408,0},{5998,51409,0},{6002,51409,0}, {6007,51406,0},{6007,51408,0},{6010,51399,0},{6013,51398,0},{6012,51388,0}, {6008,51391,0},{6003,51398,0},{5997,51374,0},{5995,51364,0},{6002,51343,0}, {6012,51264,0},{6007,51219,0},{6003,51169,0},{5998,51148,0},{6003,51134,0}, {6003,51111,0},{6003,51136,0},{6005,51136,0},{6015,51116,0},{6015,51111,0}, {6020,51118,0},{6018,51111,0},{6020,51099,0},{6018,51099,0},{6017,51093,0}, {6018,51088,0},{6020,51089,0},{6022,51086,0},{6018,51081,0},{6020,51073,0}, {6022,51068,0},{6022,51073,0},{6028,51066,0},{6030,51058,0},{6028,51056,0}, {6030,51053,0},{6030,51048,0},{6028,51046,0},{6030,51043,0},{6035,51048,0}, {6038,51044,0},{6040,51046,0},{6040,51053,0},{6043,51051,0},{6045,51056,0}, {6050,51058,0},{6047,51051,0},{6047,51048,0},{6048,51048,0},{6052,51053,0}, {6060,51056,0},{6063,51061,0},{6067,51059,0},{6067,51073,0},{6072,51074,0}, {6068,51061,0},{6065,51058,0},{6062,51051,0},{6055,51046,0},{6052,51034,0}, {6043,51026,0},{6037,51013,0},{6035,51006,0},{6035,50998,0},{6040,50988,0}, {6042,50986,0},{6047,50971,0},{6045,50948,0},{6047,50943,0},{6048,50946,0}, {6048,50949,0},{6055,50963,0},{6065,50974,0},{6067,50973,0},{6062,50951,0}, {6062,50948,0},{6065,50956,0},{6067,50948,0},{6070,50951,0},{6063,50941,0}, {6063,50936,0},{6070,50944,0},{6065,50928,0},{6063,50916,0},{6063,50911,0}, {6065,50909,0},{6072,50928,0},{6075,50931,0},{6075,50934,0},{6080,50933,0}, {6075,50924,0},{6075,50918,0},{6077,50919,0},{6075,50913,0},{6072,50909,0}, {6073,50904,0},{6077,50908,0},{6077,50906,0},{6070,50894,0},{6068,50888,0}, {6070,50886,0},{6070,50871,0},{6075,50868,0},{6073,50873,0},{6077,50876,0}, {6075,50879,0},{6075,50888,0},{6077,50883,0},{6077,50893,0},{6082,50916,0}, {6083,50911,0},{6085,50916,0},{6083,50928,0},{6090,50913,0},{6083,50906,0}, {6082,50896,0},{6085,50896,0},{6082,50888,0},{6082,50881,0},{6085,50879,0}, {6082,50874,0},{6087,50874,0},{6088,50873,0},{6087,50869,0},{6088,50866,0}, {6097,50861,0},{6095,50864,0},{6093,50868,0},{6095,50878,0},{6097,50866,0}, {6103,50869,0},{6103,50879,0},{6105,50873,0},{6107,50873,0},{6108,50876,0}, {6108,50913,0},{6113,50906,0},{6113,50894,0},{6113,50876,0},{6093,50839,0}, {6095,50833,0},{6098,50838,0},{6100,50838,0},{6100,50834,0},{6098,50834,0}, {6097,50831,0},{6100,50833,0},{6100,50824,0},{6098,50821,0},{6095,50821,0}, {6097,50816,0},{6102,50816,0},{6098,50811,0},{6100,50809,0},{6098,50808,0}, {6093,50811,0},{6093,50804,0},{6092,50806,0},{6088,50799,0},{6092,50798,0}, {6090,50791,0},{6098,50798,0},{6095,50791,0},{6098,50791,0},{6102,50793,0}, {6098,50788,0},{6092,50786,0},{6090,50783,0},{6092,50781,0},{6105,50783,0}, {6107,50788,0},{6113,50783,0},{6115,50784,0},{6115,50779,0},{6113,50778,0}, {6110,50781,0},{6102,50776,0},{6102,50769,0},{6100,50774,0},{6097,50773,0}, {6095,50776,0},{6087,50776,0},{6085,50771,0},{6087,50768,0},{6090,50769,0}, {6088,50763,0},{6095,50766,0},{6092,50758,0},{6088,50759,0},{6087,50754,0}, {6087,50759,0},{6083,50761,0},{6082,50758,0},{6083,50751,0},{6085,50746,0}, {6090,50743,0},{6095,50731,0},{6102,50741,0},{6107,50744,0},{6108,50743,0}, {6117,50758,0},{6120,50766,0},{6123,50766,0},{6122,50759,0},{6128,50764,0}, {6112,50741,0},{6105,50736,0},{6102,50731,0},{6105,50724,0},{6112,50721,0}, {6108,50716,0},{6108,50709,0},{6107,50706,0},{6105,50696,0},{6105,50701,0}, {6102,50698,0},{6100,50691,0},{6098,50693,0},{6098,50696,0},{6107,50711,0}, {6107,50721,0},{6095,50711,0},{6097,50703,0},{6092,50709,0},{6083,50704,0}, {6085,50696,0},{6083,50703,0},{6082,50703,0},{6082,50696,0},{6083,50691,0}, {6083,50676,0},{6078,50666,0},{6080,50679,0},{6080,50681,0},{6080,50691,0}, {6075,50673,0},{6068,50666,0},{6067,50669,0},{6070,50676,0},{6073,50678,0}, {6077,50684,0},{6077,50699,0},{6077,50698,0},{6075,50701,0},{6073,50696,0}, {6068,50696,0},{6067,50691,0},{6063,50694,0},{6067,50701,0},{6070,50701,0}, {6075,50708,0},{6077,50713,0},{6072,50711,0},{6063,50716,0},{6053,50703,0}, {6055,50701,0},{6057,50701,0},{6057,50694,0},{6058,50693,0},{6058,50688,0}, {6050,50671,0},{6045,50668,0},{6053,50691,0},{6052,50699,0},{6050,50698,0}, {6050,50703,0},{6048,50701,0},{6048,50709,0},{6045,50709,0},{6045,50713,0}, {6048,50714,0},{6052,50713,0},{6055,50718,0},{6050,50718,0},{6052,50721,0}, {6058,50723,0},{6060,50728,0},{6057,50733,0},{6053,50729,0},{6055,50734,0}, {6053,50736,0},{6052,50739,0},{6047,50736,0},{6045,50738,0},{6047,50743,0}, {6043,50741,0},{6043,50736,0},{6042,50738,0},{6040,50731,0},{6042,50728,0}, {6038,50728,0},{6042,50718,0},{6037,50724,0},{6035,50723,0},{6035,50716,0}, {6037,50714,0},{6038,50713,0},{6035,50709,0},{6035,50714,0},{6032,50714,0}, {6025,50704,0},{6028,50699,0},{6028,50698,0},{6023,50701,0},{6018,50693,0}, {6020,50703,0},{6025,50714,0},{6023,50718,0},{6022,50709,0},{6020,50718,0}, {6015,50716,0},{6023,50723,0},{6022,50726,0},{6015,50721,0},{6012,50709,0}, {6013,50706,0},{6017,50708,0},{6017,50704,0},{6015,50703,0},{6013,50699,0}, {6007,50698,0},{6003,50693,0},{6002,50696,0},{5995,50693,0},{5995,50689,0}, {6003,50683,0},{5998,50683,0},{5998,50679,0},{5995,50681,0},{5992,50671,0}, {5995,50669,0},{5995,50656,0},{5993,50649,0},{5997,50643,0},{5995,50634,0}, {5998,50634,0},{5997,50629,0},{5998,50624,0},{6005,50633,0},{6005,50623,0}, {6000,50616,0},{5995,50614,0},{5992,50611,0},{5990,50613,0},{5987,50609,0}, {5997,50606,0},{5998,50603,0},{6002,50606,0},{6002,50601,0},{6012,50599,0}, {6012,50594,0},{6003,50593,0},{6000,50598,0},{5998,50593,0},{5993,50589,0}, {5993,50583,0},{5992,50581,0},{5982,50573,0},{5978,50578,0},{5978,50583,0}, {5975,50581,0},{5973,50584,0},{5972,50583,0},{5975,50573,0},{5977,50576,0}, {5978,50571,0},{5980,50573,0},{5982,50569,0},{5985,50571,0},{5990,50571,0}, {5997,50564,0},{5995,50563,0},{5988,50563,0},{5983,50559,0},{5985,50553,0}, {5985,50549,0},{5978,50559,0},{5965,50561,0},{5968,50556,0},{5972,50554,0}, {5973,50549,0},{5977,50544,0},{5980,50533,0},{5977,50533,0},{5973,50539,0}, {5972,50544,0},{5970,50543,0},{5963,50534,0},{5967,50531,0},{5970,50523,0}, {5967,50526,0},{5962,50526,0},{5958,50528,0},{5957,50521,0},{5958,50518,0}, {5953,50518,0},{5953,50511,0},{5950,50511,0},{5950,50508,0},{5948,50506,0}, {5947,50498,0},{5948,50501,0},{5950,50498,0},{5950,50503,0},{5955,50501,0}, {5958,50508,0},{5960,50506,0},{5972,50514,0},{5957,50496,0},{5947,50489,0}, {5947,50486,0},{5950,50486,0},{5952,50481,0},{5960,50486,0},{5955,50471,0}, {5948,50479,0},{5947,50473,0},{5943,50476,0},{5942,50471,0},{5942,50464,0}, {5937,50458,0},{5932,50444,0},{5925,50448,0},{5923,50439,0},{5920,50441,0}, {5923,50436,0},{5927,50436,0},{5930,50431,0},{5928,50429,0},{5932,50411,0}, {5932,50409,0},{5930,50409,0},{5928,50418,0},{5925,50426,0},{5922,50424,0}, {5922,50406,0},{5927,50396,0},{5923,50384,0},{5922,50389,0},{5920,50388,0}, {5920,50376,0},{5918,50374,0},{5918,50379,0},{5917,50378,0},{5917,50364,0}, {5917,50361,0},{5922,50361,0},{5922,50351,0},{5922,50346,0},{5925,50348,0}, {5928,50338,0},{5932,50338,0},{5935,50343,0},{5935,50354,0},{5940,50346,0}, {5945,50359,0},{5945,50364,0},{5948,50368,0},{5947,50389,0},{5943,50396,0}, {5943,50399,0},{5947,50398,0},{5950,50391,0},{5953,50391,0},{5957,50401,0}, {5957,50409,0},{5960,50411,0},{5960,50419,0},{5965,50416,0},{5967,50423,0}, {5972,50426,0},{5978,50436,0},{5980,50433,0},{5977,50424,0},{5965,50391,0}, {5963,50389,0},{5960,50394,0},{5963,50388,0},{5968,50361,0},{5973,50351,0}, {5977,50348,0},{6002,50364,0},{6020,50393,0},{6027,50398,0},{6037,50398,0}, {6038,50406,0},{6053,50409,0},{6058,50403,0},{6072,50394,0},{6075,50406,0}, {6077,50411,0},{6078,50431,0},{6097,50469,0},{6103,50496,0},{6103,50503,0}, {6098,50506,0},{6093,50513,0},{6090,50531,0},{6097,50553,0},{6097,50564,0}, {6093,50573,0},{6093,50584,0},{6090,50594,0},{6088,50619,0},{6085,50633,0}, {6088,50631,0},{6095,50619,0},{6093,50603,0},{6095,50598,0},{6098,50586,0}, {6098,50574,0},{6115,50529,0},{6120,50533,0},{6120,50541,0},{6123,50546,0}, {6132,50553,0},{6133,50558,0},{6133,50563,0},{6140,50568,0},{6148,50609,0}, {6150,50611,0},{6150,50594,0},{6152,50594,0},{6150,50583,0},{6147,50566,0}, {6138,50548,0},{6127,50543,0},{6123,50536,0},{6125,50519,0},{6125,50509,0}, {6128,50506,0},{6125,50503,0},{6125,50488,0},{6128,50481,0},{6137,50483,0}, {6137,50479,0},{6128,50478,0},{6128,50473,0},{6130,50471,0},{6128,50469,0}, {6125,50464,0},{6120,50448,0},{6122,50441,0},{6117,50429,0},{6105,50419,0}, {6103,50408,0},{6102,50401,0},{6102,50386,0},{6093,50369,0},{6092,50361,0}, {6083,50356,0},{6072,50364,0},{6072,50358,0},{6075,50351,0},{6073,50349,0}, {6072,50344,0},{6067,50331,0},{6060,50326,0},{6055,50313,0},{6050,50304,0}, {6043,50303,0},{6040,50311,0},{6035,50298,0},{6028,50294,0},{6028,50286,0}, {6023,50279,0},{6022,50274,0},{6025,50268,0},{6023,50261,0},{6023,50251,0}, {6025,50253,0},{6025,50258,0},{6027,50253,0},{6025,50248,0},{6030,50248,0}, {6030,50244,0},{6030,50233,0},{6028,50226,0},{6027,50226,0},{6028,50231,0}, {6028,50241,0},{6023,50244,0},{6017,50268,0},{6013,50268,0},{6008,50278,0}, {6005,50278,0},{5997,50268,0},{5992,50266,0},{5988,50253,0},{5988,50229,0}, {5987,50213,0},{5982,50208,0},{5983,50216,0},{5982,50223,0},{5983,50231,0}, {5983,50236,0},{5982,50236,0},{5980,50236,0},{5970,50231,0},{5968,50223,0}, {5965,50216,0},{5965,50211,0},{5968,50208,0},{5967,50204,0},{5963,50204,0}, {5965,50193,0},{5967,50198,0},{5972,50199,0},{5972,50204,0},{5975,50194,0}, {5978,50191,0},{5972,50193,0},{5965,50188,0},{5963,50181,0},{5965,50179,0}, {5968,50176,0},{5970,50178,0},{5968,50173,0},{5965,50173,0},{5963,50166,0}, {5963,50173,0},{5960,50179,0},{5955,50178,0},{5955,50164,0},{5953,50158,0}, {5955,50154,0},{5955,50149,0},{5952,50159,0},{5947,50164,0},{5943,50163,0}, {5942,50156,0},{5943,50148,0},{5938,50141,0},{5940,50138,0},{5938,50134,0}, {5938,50121,0},{5935,50128,0},{5937,50138,0},{5937,50141,0},{5930,50124,0}, {5925,50121,0},{5920,50123,0},{5920,50118,0},{5917,50118,0},{5917,50113,0}, {5915,50114,0},{5915,50109,0},{5912,50111,0},{5912,50119,0},{5907,50116,0}, {5903,50118,0},{5903,50123,0},{5908,50133,0},{5905,50149,0},{5907,50154,0}, {5907,50159,0},{5907,50164,0},{5900,50178,0},{5898,50181,0},{5900,50189,0}, {5898,50189,0},{5898,50194,0},{5893,50199,0},{5893,50203,0},{5890,50203,0}, {5888,50208,0},{5887,50199,0},{5887,50211,0},{5883,50208,0},{5885,50203,0}, {5885,50199,0},{5872,50191,0},{5868,50179,0},{5863,50176,0},{5862,50159,0}, {5862,50146,0},{5860,50144,0},{5858,50148,0},{5853,50143,0},{5853,50139,0}, {5852,50144,0},{5850,50143,0},{5848,50139,0},{5848,50126,0},{5840,50129,0}, {5840,50136,0},{5838,50136,0},{5835,50129,0},{5835,50116,0},{5833,50118,0}, {5832,50108,0},{5828,50099,0},{5825,50101,0},{5827,50109,0},{5830,50109,0}, {5830,50114,0},{5832,50118,0},{5828,50124,0},{5827,50121,0},{5825,50111,0}, {5825,50118,0},{5822,50121,0},{5818,50116,0},{5818,50106,0},{5813,50114,0}, {5813,50109,0},{5813,50106,0},{5815,50103,0},{5813,50101,0},{5808,50103,0}, {5808,50099,0},{5815,50091,0},{5818,50091,0},{5820,50088,0},{5808,50089,0}, {5812,50078,0},{5810,50076,0},{5808,50081,0},{5807,50083,0},{5802,50078,0}, {5803,50073,0},{5807,50069,0},{5805,50064,0},{5802,50063,0},{5800,50058,0}, {5803,50048,0},{5802,50033,0},{5795,50031,0},{5795,50024,0},{5788,50029,0}, {5787,50018,0},{5787,50016,0},{5788,50011,0},{5783,50014,0},{5783,50009,0}, {5783,50003,0},{5780,50006,0},{5780,50001,0},{5775,50006,0},{5773,50006,0}, {5772,49998,0},{5773,49994,0},{5780,49978,0},{5778,49974,0},{5773,49973,0}, {5772,49973,0},{5768,49978,0},{5767,49978,0},{5763,49964,0},{5765,49959,0}, {5762,49963,0},{5755,49963,0},{5755,49956,0},{5758,49954,0},{5755,49949,0}, {5755,49946,0},{5753,49944,0},{5757,49934,0},{5757,49933,0},{5753,49934,0}, {5753,49926,0},{5752,49926,0},{5752,49933,0},{5743,49933,0},{5743,49924,0}, {5748,49918,0},{5743,49913,0},{5743,49909,0},{5740,49901,0},{5733,49889,0}, {5732,49881,0},{5727,49881,0},{5732,49899,0},{5728,49903,0},{5725,49901,0}, {5722,49891,0},{5722,49894,0},{5718,49901,0},{5715,49899,0},{5712,49889,0}, {5710,49888,0},{5708,49891,0},{5710,49888,0},{5708,49886,0},{5705,49886,0}, {5705,49878,0},{5707,49873,0},{5705,49874,0},{5705,49871,0},{5698,49881,0}, {5700,49868,0},{5703,49864,0},{5705,49859,0},{5703,49856,0},{5700,49859,0}, {5697,49858,0},{5692,49856,0},{5690,49853,0},{5695,49848,0},{5697,49839,0}, {5690,49841,0},{5690,49834,0},{5682,49828,0},{5685,49818,0},{5682,49821,0}, {5678,49821,0},{5677,49816,0},{5680,49806,0},{5685,49799,0},{5685,49793,0}, {5682,49789,0},{5680,49794,0},{5677,49796,0},{5677,49791,0},{5675,49789,0}, {5677,49786,0},{5672,49779,0},{5672,49776,0},{5668,49781,0},{5667,49788,0}, {5663,49791,0},{5662,49789,0},{5660,49769,0},{5662,49766,0},{5667,49761,0}, {5668,49758,0},{5665,49751,0},{5665,49744,0},{5662,49741,0},{5660,49738,0}, {5660,49734,0},{5657,49731,0},{5657,49724,0},{5653,49724,0},{5657,49744,0}, {5655,49751,0},{5652,49753,0},{5647,49748,0},{5652,49723,0},{5650,49719,0}, {5648,49721,0},{5648,49724,0},{5647,49723,0},{5647,49709,0},{5648,49703,0}, {5647,49699,0},{5645,49694,0},{5640,49689,0},{5637,49684,0},{5635,49686,0}, {5632,49676,0},{5628,49671,0},{5627,49671,0},{5625,49681,0},{5627,49681,0}, {5630,49679,0},{5633,49691,0},{5630,49693,0},{5632,49696,0},{5630,49696,0}, {5632,49703,0},{5630,49706,0},{5630,49713,0},{5628,49716,0},{5627,49714,0}, {5623,49701,0},{5623,49696,0},{5620,49694,0},{5622,49699,0},{5620,49704,0}, {5617,49703,0},{5623,49718,0},{5623,49724,0},{5622,49719,0},{5618,49716,0}, {5618,49709,0},{5617,49709,0},{5615,49701,0},{5612,49701,0},{5613,49698,0}, {5617,49698,0},{5617,49694,0},{5613,49694,0},{5613,49693,0},{5608,49696,0}, {5607,49694,0},{5610,49691,0},{5610,49686,0},{5607,49689,0},{5605,49688,0}, {5603,49689,0},{5605,49689,0},{5603,49694,0},{5600,49693,0},{5603,49686,0}, {5603,49684,0},{5598,49686,0},{5602,49679,0},{5605,49684,0},{5603,49678,0}, {5605,49676,0},{5607,49679,0},{5610,49676,0},{5612,49681,0},{5613,49681,0}, {5615,49684,0},{5617,49686,0},{5617,49689,0},{5620,49686,0},{5618,49673,0}, {5617,49679,0},{5612,49671,0},{5612,49669,0},{5615,49669,0},{5615,49666,0}, {5610,49666,0},{5610,49669,0},{5607,49669,0},{5603,49663,0},{5602,49671,0}, {5598,49671,0},{5598,49668,0},{5597,49669,0},{5595,49668,0},{5595,49661,0}, {5597,49663,0},{5600,49663,0},{5602,49659,0},{5598,49656,0},{5602,49653,0}, {5600,49649,0},{5592,49643,0},{5593,49639,0},{5592,49634,0},{5588,49634,0}, {5592,49628,0},{5590,49619,0},{5588,49618,0},{5588,49611,0},{5585,49604,0}, {5588,49601,0},{5585,49596,0},{5580,49594,0},{5578,49593,0},{5583,49588,0}, {5590,49589,0},{5588,49581,0},{5587,49581,0},{5585,49583,0},{5577,49586,0}, {5572,49581,0},{5565,49581,0},{5562,49574,0},{5557,49574,0},{5557,49563,0}, {5560,49566,0},{5560,49561,0},{5562,49568,0},{5560,49571,0},{5563,49574,0}, {5567,49566,0},{5570,49573,0},{5573,49568,0},{5582,49574,0},{5585,49563,0}, {5585,49551,0},{5578,49551,0},{5578,49549,0},{5578,49544,0},{5582,49539,0}, {5578,49539,0},{5578,49533,0},{5577,49531,0},{5572,49534,0},{5572,49526,0}, {5570,49529,0},{5570,49524,0},{5573,49521,0},{5567,49523,0},{5567,49521,0}, {5565,49511,0},{5563,49508,0},{5565,49493,0},{5563,49493,0},{5560,49499,0}, {5557,49491,0},{5550,49489,0},{5548,49484,0},{5548,49481,0},{5555,49478,0}, {5560,49476,0},{5555,49469,0},{5553,49459,0},{5552,49461,0},{5552,49469,0}, {5545,49468,0},{5545,49458,0},{5545,49454,0},{5547,49451,0},{5552,49453,0}, {5552,49448,0},{5550,49441,0},{5547,49438,0},{5543,49433,0},{5535,49411,0}, {5535,49404,0},{5538,49401,0},{5537,49386,0},{5548,49388,0},{5558,49399,0}, {5553,49408,0},{5553,49423,0},{5555,49411,0},{5558,49406,0},{5563,49394,0}, {5562,49379,0},{5560,49374,0},{5558,49374,0},{5552,49364,0},{5548,49368,0}, {5543,49364,0},{5540,49366,0},{5527,49349,0},{5522,49346,0},{5522,49341,0}, {5522,49344,0},{5523,49343,0},{5523,49331,0},{5518,49334,0},{5517,49333,0}, {5515,49338,0},{5512,49341,0},{5510,49339,0},{5507,49329,0},{5510,49323,0}, {5517,49326,0},{5515,49319,0},{5510,49314,0},{5505,49316,0},{5502,49309,0}, {5507,49304,0},{5503,49301,0},{5503,49291,0},{5510,49283,0},{5512,49288,0}, {5508,49294,0},{5510,49299,0},{5517,49288,0},{5525,49283,0},{5527,49276,0}, {5528,49281,0},{5530,49279,0},{5530,49274,0},{5528,49268,0},{5522,49264,0}, {5517,49276,0},{5513,49276,0},{5513,49273,0},{5507,49271,0},{5508,49274,0}, {5507,49274,0},{5495,49279,0},{5500,49271,0},{5502,49274,0},{5505,49271,0}, {5493,49261,0},{5493,49249,0},{5495,49246,0},{5495,49244,0},{5500,49238,0}, {5500,49244,0},{5502,49244,0},{5503,49239,0},{5508,49234,0},{5510,49226,0}, {5510,49219,0},{5512,49224,0},{5513,49219,0},{5512,49216,0},{5508,49218,0}, {5510,49213,0},{5507,49213,0},{5507,49216,0},{5503,49214,0},{5502,49216,0}, {5497,49229,0},{5495,49231,0},{5490,49223,0},{5483,49213,0},{5483,49208,0}, {5480,49203,0},{5482,49199,0},{5485,49198,0},{5488,49203,0},{5490,49204,0}, {5492,49209,0},{5492,49206,0},{5492,49201,0},{5495,49203,0},{5495,49211,0}, {5495,49213,0},{5500,49208,0},{5512,49204,0},{5518,49224,0},{5525,49234,0}, {5523,49236,0},{5520,49231,0},{5517,49229,0},{5518,49248,0},{5523,49253,0}, {5525,49249,0},{5523,49248,0},{5527,49248,0},{5527,49253,0},{5530,49258,0}, {5532,49264,0},{5538,49273,0},{5535,49273,0},{5535,49281,0},{5537,49288,0}, {5545,49286,0},{5543,49276,0},{5540,49274,0},{5543,49276,0},{5547,49283,0}, {5568,49311,0},{5572,49323,0},{5577,49328,0},{5580,49339,0},{5588,49356,0}, {5590,49368,0},{5602,49421,0},{5595,49399,0},{5595,49413,0},{5595,49424,0}, {5593,49429,0},{5595,49434,0},{5600,49448,0},{5597,49449,0},{5595,49449,0}, {5593,49449,0},{5593,49443,0},{5593,49438,0},{5590,49434,0},{5587,49436,0}, {5588,49443,0},{5582,49441,0},{5572,49456,0},{5575,49458,0},{5573,49464,0}, {5570,49468,0},{5573,49469,0},{5578,49461,0},{5588,49456,0},{5585,49469,0}, {5587,49486,0},{5583,49489,0},{5580,49489,0},{5582,49494,0},{5578,49499,0}, {5577,49511,0},{5582,49504,0},{5583,49513,0},{5585,49513,0},{5590,49491,0}, {5593,49484,0},{5593,49479,0},{5598,49483,0},{5598,49481,0},{5598,49479,0}, {5600,49479,0},{5610,49489,0},{5617,49491,0},{5628,49501,0},{5633,49511,0}, {5640,49521,0},{5647,49539,0},{5653,49553,0},{5665,49588,0},{5660,49581,0}, {5663,49594,0},{5668,49606,0},{5668,49614,0},{5670,49609,0},{5673,49613,0}, {5680,49633,0},{5690,49649,0},{5682,49634,0},{5680,49633,0},{5678,49638,0}, {5680,49638,0},{5683,49641,0},{5678,49649,0},{5678,49659,0},{5678,49668,0}, {5677,49673,0},{5683,49671,0},{5688,49666,0},{5700,49668,0},{5708,49674,0}, {5732,49708,0},{5737,49719,0},{5737,49731,0},{5738,49726,0},{5748,49741,0}, {5757,49763,0},{5757,49768,0},{5755,49766,0},{5752,49771,0},{5747,49771,0}, {5748,49773,0},{5748,49784,0},{5747,49784,0},{5747,49788,0},{5750,49796,0}, {5753,49794,0},{5757,49796,0},{5755,49791,0},{5750,49794,0},{5750,49784,0}, {5748,49779,0},{5750,49776,0},{5762,49776,0},{5763,49773,0},{5762,49773,0}, {5762,49766,0},{5765,49766,0},{5773,49764,0},{5787,49773,0},{5808,49774,0}, {5817,49783,0},{5817,49794,0},{5820,49796,0},{5820,49816,0},{5817,49823,0}, {5820,49819,0},{5822,49806,0},{5823,49803,0},{5822,49789,0},{5827,49783,0}, {5828,49783,0},{5830,49779,0},{5838,49781,0},{5850,49789,0},{5855,49801,0}, {5863,49814,0},{5870,49826,0},{5872,49834,0},{5873,49843,0},{5872,49831,0}, {5873,49829,0},{5877,49829,0},{5883,49836,0},{5887,49833,0},{5890,49838,0}, {5893,49838,0},{5900,49851,0},{5908,49851,0},{5915,49858,0},{5910,49849,0}, {5902,49848,0},{5898,49844,0},{5897,49833,0},{5890,49831,0},{5887,49824,0}, {5883,49801,0},{5863,49731,0},{5860,49718,0},{5865,49704,0},{5872,49701,0}, {5875,49698,0},{5880,49679,0},{5883,49679,0},{5885,49684,0},{5887,49684,0}, {5895,49686,0},{5897,49694,0},{5900,49691,0},{5898,49689,0},{5900,49686,0}, {5903,49699,0},{5900,49723,0},{5895,49729,0},{5892,49728,0},{5887,49733,0}, {5890,49736,0},{5892,49731,0},{5895,49733,0},{5903,49723,0},{5908,49694,0}, {5917,49683,0},{5913,49681,0},{5907,49691,0},{5903,49683,0},{5892,49674,0}, {5887,49663,0},{5888,49661,0},{5893,49663,0},{5893,49659,0},{5897,49658,0}, {5897,49663,0},{5900,49661,0},{5897,49654,0},{5892,49659,0},{5882,49656,0}, {5877,49658,0},{5873,49651,0},{5873,49648,0},{5877,49648,0},{5878,49654,0}, {5880,49654,0},{5880,49648,0},{5878,49651,0},{5877,49644,0},{5872,49646,0}, {5857,49656,0},{5857,49658,0},{5850,49659,0},{5850,49666,0},{5843,49659,0}, {5842,49654,0},{5842,49656,0},{5840,49648,0},{5843,49629,0},{5845,49633,0}, {5845,49628,0},{5848,49628,0},{5848,49624,0},{5872,49601,0},{5880,49591,0}, {5885,49581,0},{5883,49571,0},{5890,49576,0},{5895,49573,0},{5893,49559,0}, {5892,49561,0},{5888,49558,0},{5885,49559,0},{5885,49554,0},{5880,49554,0}, {5877,49544,0},{5888,49534,0},{5888,49528,0},{5887,49526,0},{5887,49521,0}, {5888,49521,0},{5892,49519,0},{5890,49511,0},{5892,49511,0},{5895,49509,0}, {5893,49508,0},{5895,49504,0},{5898,49506,0},{5898,49511,0},{5907,49503,0}, {5905,49496,0},{5892,49463,0},{5882,49453,0},{5887,49453,0},{5888,49448,0}, {5887,49439,0},{5880,49418,0},{5880,49409,0},{5882,49409,0},{5882,49406,0}, {5880,49404,0},{5878,49408,0},{5878,49414,0},{5877,49408,0},{5872,49399,0}, {5867,49398,0},{5868,49404,0},{5863,49383,0},{5860,49378,0},{5860,49374,0}, {5857,49366,0},{5855,49359,0},{5860,49364,0},{5862,49364,0},{5865,49361,0}, {5862,49359,0},{5858,49361,0},{5862,49358,0},{5863,49354,0},{5863,49326,0}, {5865,49319,0},{5867,49329,0},{5868,49331,0},{5868,49336,0},{5867,49341,0}, {5865,49343,0},{5865,49348,0},{5868,49353,0},{5872,49351,0},{5875,49356,0}, {5877,49366,0},{5880,49371,0},{5882,49366,0},{5880,49361,0},{5878,49359,0}, {5880,49359,0},{5887,49356,0},{5897,49358,0},{5903,49351,0},{5905,49354,0}, {5902,49354,0},{5903,49364,0},{5910,49379,0},{5912,49374,128},{5913,49374,0}, {5912,49366,0},{5910,49348,0},{5908,49348,0},{5907,49351,0},{5907,49348,0}, {5910,49341,0},{5915,49336,0},{5927,49331,0},{5930,49336,0},{5927,49331,0}, {5923,49334,0},{5925,49338,0},{5928,49339,0},{5938,49341,0},{5938,49346,0}, {5942,49349,0},{5942,49351,0},{5947,49356,0},{5947,49363,0},{5950,49366,0}, {5962,49349,0},{5970,49348,0},{5982,49336,0},{5988,49328,0},{5995,49326,0}, {6000,49318,0},{6007,49313,0},{6015,49316,0},{6020,49311,0},{6020,49319,0}, {6025,49321,0},{6023,49316,0},{6022,49318,0},{6022,49314,0},{6022,49309,0}, {6023,49308,0},{6022,49306,0},{6020,49308,0},{6018,49306,0},{6017,49309,0}, {6013,49304,0},{6018,49299,0},{6022,49303,0},{6030,49289,0},{6033,49298,0}, {6047,49306,0},{6052,49314,0},{6058,49314,0},{6063,49328,0},{6065,49339,0}, {6065,49343,0},{6068,49339,0},{6070,49348,0},{6070,49341,0},{6065,49328,0}, {6070,49326,0},{6073,49319,0},{6073,49318,0},{6072,49319,0},{6068,49324,0}, {6065,49324,0},{6062,49309,0},{6053,49306,0},{6047,49299,0},{6043,49298,0}, {6043,49293,0},{6038,49294,0},{6037,49291,0},{6038,49291,0},{6038,49286,0}, {6035,49286,0},{6033,49276,0},{6032,49279,0},{6030,49276,0},{6028,49281,0}, {6025,49281,0},{6027,49266,0},{6022,49286,0},{6018,49291,0},{6012,49286,0}, {6005,49289,0},{6000,49284,0},{5998,49274,0},{6000,49261,0},{5997,49263,0}, {5995,49258,0},{5985,49223,0},{5982,49199,0},{5980,49169,0},{5982,49136,0}, {5985,49121,0},{5995,49114,0},{5997,49116,0},{5997,49126,0},{5998,49126,0}, {5998,49123,0},{6000,49124,0},{6000,49121,0},{6008,49094,0},{6015,49088,0}, {6018,49088,0},{6027,49069,0},{6028,49071,0},{6030,49068,0},{6033,49071,0}, {6028,49061,0},{6033,49041,0},{6037,49033,0},{6043,49021,0},{6047,49033,0}, {6050,49036,0},{6052,49039,0},{6055,49038,0},{6055,49029,0},{6050,49016,0}, {6052,48998,0},{6055,48993,0},{6058,48998,0},{6058,49008,0},{6062,49011,0}, {6063,49018,0},{6065,49021,0},{6072,49038,0},{6078,49033,0},{6083,49048,0}, {6087,49048,0},{6090,49041,0},{6092,49041,0},{6093,49043,0},{6087,49053,0}, {6090,49063,0},{6092,49071,0},{6090,49073,0},{6085,49066,0},{6082,49071,0}, {6082,49089,0},{6080,49094,0},{6078,49109,0},{6073,49109,0},{6073,49114,0}, {6068,49114,0},{6065,49104,0},{6062,49103,0},{6062,49098,0},{6057,49093,0}, {6055,49093,0},{6057,49098,0},{6065,49109,0},{6067,49123,0},{6072,49126,0}, {6077,49133,0},{6078,49141,0},{6077,49149,0},{6075,49156,0},{6068,49153,0}, {6067,49156,0},{6063,49153,0},{6058,49156,0},{6058,49169,0},{6063,49183,0}, {6068,49193,0},{6072,49193,0},{6075,49189,0},{6075,49194,0},{6077,49194,0}, {6080,49183,0},{6085,49163,0},{6085,49143,0},{6088,49158,0},{6087,49163,0}, {6087,49169,0},{6088,49181,0},{6090,49181,0},{6093,49161,0},{6095,49161,0}, {6097,49168,0},{6100,49168,0},{6098,49161,0},{6097,49156,0},{6095,49156,0}, {6092,49148,0},{6085,49141,0},{6087,49118,0},{6085,49108,0},{6087,49096,0}, {6085,49079,0},{6087,49076,0},{6090,49078,0},{6092,49074,0},{6093,49064,0}, {6092,49061,0},{6090,49056,0},{6092,49053,0},{6095,49051,0},{6095,49046,0}, {6095,49039,0},{6090,49029,0},{6093,49021,0},{6097,49016,0},{6100,49021,0}, {6102,49039,0},{6102,49041,0},{6108,49043,0},{6107,49049,0},{6108,49051,0}, {6112,49059,0},{6112,49036,0},{6107,49036,0},{6105,49033,0},{6108,49024,0}, {6110,49024,0},{6112,49019,0},{6113,49018,0},{6115,49024,0},{6118,49024,0}, {6122,49029,0},{6125,49023,0},{6123,49024,0},{6122,49028,0},{6120,49021,0}, {6115,49021,0},{6115,49011,0},{6120,48999,0},{6125,49006,0},{6127,49016,0}, {6132,49016,0},{6133,49011,0},{6137,49021,0},{6140,49018,0},{6142,49021,0}, {6142,49031,0},{6145,49034,128},{6148,49038,0},{6150,49051,0},{6152,49053,0}, {6155,49061,0},{6158,49061,0},{6160,49066,0},{6163,49064,0},{6162,49059,0}, {6160,49061,0},{6158,49056,0},{6152,49048,0},{6150,49034,0},{6147,49034,0}, {6147,49028,0},{6143,49028,0},{6143,49019,0},{6140,49016,0},{6137,49016,0}, {6133,49008,0},{6132,49009,0},{6132,49014,0},{6128,49013,0},{6127,49014,0}, {6127,49006,0},{6120,48996,0},{6115,49003,0},{6113,48999,0},{6108,49001,0}, {6107,48998,0},{6108,48984,0},{6112,48976,0},{6123,48971,0},{6125,48976,0}, {6127,48973,0},{6128,48974,0},{6130,48963,0},{6130,48953,0},{6133,48949,0}, {6140,48944,0},{6143,48948,0},{6145,48958,0},{6148,48959,0},{6153,48954,0}, {6155,48946,0},{6153,48928,0},{6152,48928,0},{6150,48931,0},{6148,48926,0}, {6153,48921,0},{6158,48916,0},{6172,48921,0},{6163,48923,0},{6168,48959,0}, {6168,48951,0},{6173,48936,0},{6182,48926,0},{6183,48938,0},{6182,48943,0}, {6183,48954,0},{6182,48956,0},{6185,48961,0},{6185,48978,0},{6192,48966,0}, {6200,48961,0},{6212,48966,0},{6218,48979,0},{6235,48999,0},{6237,49003,0}, {6243,49009,0},{6252,49023,0},{6253,49033,0},{6253,49049,0},{6252,49049,0}, {6247,49051,0},{6247,49061,0},{6243,49068,0},{6243,49076,0},{6243,49071,0}, {6237,49061,0},{6238,49066,0},{6242,49073,0},{6243,49079,0},{6245,49078,0}, {6247,49068,0},{6252,49073,0},{6250,49069,0},{6248,49066,0},{6250,49061,0}, {6248,49053,0},{6253,49058,0},{6257,49051,0},{6263,49071,0},{6275,49088,0}, {6275,49084,0},{6263,49063,0},{6262,49056,0},{6275,49049,0},{6278,49049,0}, {6280,49059,0},{6282,49051,0},{6283,49048,0},{6293,49054,0},{6302,49068,0}, {6303,49079,0},{6302,49086,0},{6302,49089,0},{6303,49091,0},{6302,49098,0}, {6300,49104,0},{6305,49103,0},{6307,49099,0},{6308,49084,0},{6313,49078,0}, {6322,49094,0},{6327,49121,0},{6325,49138,0},{6322,49153,0},{6322,49164,0}, {6315,49173,0},{6312,49169,0},{6312,49174,0},{6313,49178,0},{6312,49183,0}, {6310,49174,0},{6305,49169,0},{6302,49156,0},{6298,49156,0},{6302,49161,0}, {6305,49174,0},{6310,49183,0},{6310,49193,0},{6302,49203,0},{6303,49206,0}, {6307,49229,0},{6315,49251,0},{6320,49254,0},{6323,49268,0},{6333,49286,0}, {6342,49294,0},{6348,49309,0},{6353,49304,0},{6352,49328,0},{6348,49334,0}, {6343,49319,0},{6343,49321,0},{6345,49333,0},{6343,49338,0},{6345,49339,0}, {6345,49354,0},{6347,49369,0},{6345,49379,0},{6347,49388,0},{6345,49391,0}, {6348,49409,0},{6352,49421,0},{6362,49434,0},{6363,49439,0},{6373,49456,0}, {6378,49459,0},{6387,49458,0},{6407,49443,0},{6422,49441,0},{6437,49416,0}, {6438,49418,0},{6440,49411,0},{6442,49418,0},{6442,49401,0},{6443,49394,0}, {6442,49386,0},{6438,49383,0},{6442,49383,0},{6445,49389,0},{6450,49389,0}, {6453,49396,0},{6450,49424,0},{6452,49434,0},{6452,49436,0},{6453,49433,0}, {6453,49428,0},{6455,49428,0},{6455,49439,0},{6462,49454,0},{6472,49458,0}, {6482,49448,0},{6487,49431,0},{6492,49421,0},{6492,49429,0},{6492,49433,0}, {6493,49438,0},{6493,49431,0},{6492,49428,0},{6493,49416,0},{6490,49414,0}, {6487,49404,0},{6478,49399,0},{6475,49381,0},{6477,49379,0},{6478,49369,0}, {6482,49364,0},{6482,49356,0},{6478,49364,0},{6477,49353,0},{6473,49343,0}, {6472,49343,0},{6475,49356,0},{6472,49348,0},{6470,49334,0},{6472,49324,0}, {6470,49329,0},{6468,49318,0},{6462,49311,0},{6452,49278,0},{6448,49274,0}, {6438,49273,0},{6437,49264,0},{6433,49258,0},{6442,49254,0},{6445,49249,0}, {6448,49249,0},{6450,49253,0},{6455,49241,0},{6455,49231,0},{6458,49233,0}, {6462,49223,0},{6465,49221,0},{6465,49214,0},{6460,49198,0},{6455,49208,0}, {6455,49216,0},{6452,49221,0},{6452,49233,0},{6448,49231,0},{6447,49224,0}, {6442,49223,0},{6440,49218,0},{6448,49208,0},{6450,49201,0},{6455,49188,0}, {6458,49154,0},{6457,49136,0},{6458,49113,0},{6457,49098,0},{6458,49109,0}, {6458,49101,0},{6448,49063,0},{6452,49069,0},{6452,49054,0},{6448,49048,0}, {6453,49043,0},{6452,49043,0},{6450,49039,0},{6447,49046,0},{6445,49044,0}, {6447,49059,0},{6445,49049,0},{6445,49034,0},{6452,48988,0},{6457,48924,0}, {6463,48901,0},{6470,48891,0},{6473,48888,0},{6478,48888,0},{6482,48891,0}, {6482,48898,0},{6483,48898,0},{6483,48894,0},{6488,48898,0},{6492,48894,0}, {6495,48884,0},{6493,48884,0},{6490,48893,0},{6495,48883,0},{6500,48866,0}, {6505,48864,0},{6508,48853,0},{6513,48844,0},{6518,48839,0},{6523,48841,0}, {6528,48848,0},{6527,48851,0},{6520,48843,0},{6515,48844,0},{6512,48861,0}, {6513,48881,0},{6518,48889,0},{6523,48888,0},{6527,48899,0},{6523,48924,0}, {6523,48931,0},{6525,48929,0},{6530,48916,0},{6532,48904,0},{6530,48899,0}, {6530,48898,0},{6537,48873,0},{6538,48843,0},{6535,48853,0},{6533,48871,0}, {6535,48853,0},{6538,48829,0},{6542,48791,0},{6545,48776,0},{6552,48766,0}, {6557,48744,0},{6558,48729,0},{6565,48723,0},{6570,48728,0},{6575,48746,0}, {6577,48751,0},{6573,48749,0},{6568,48733,0},{6565,48729,0},{6563,48733,0}, {6568,48751,0},{6572,48754,0},{6572,48776,0},{6573,48784,0},{6577,48786,0}, {6577,48781,0},{6580,48779,0},{6580,48791,0},{6583,48784,0},{6590,48808,0}, {6585,48818,0},{6588,48831,0},{6593,48849,0},{6597,48839,0},{6602,48853,0}, {6598,48849,0},{6598,48856,0},{6600,48854,0},{6607,48866,0},{6618,48909,0}, {6617,48923,0},{6615,48928,0},{6613,48921,0},{6612,48928,0},{6612,48948,0}, {6610,48956,0},{6610,48964,0},{6615,48981,0},{6615,48986,0},{6617,48984,0}, {6622,48964,0},{6622,48948,0},{6625,48949,0},{6632,48959,0},{6640,48991,0}, {6645,49019,0},{6643,49028,0},{6640,49033,0},{6647,49041,0},{6652,49063,0}, {6655,49064,0},{6660,49108,0},{6660,49143,0},{6660,49161,0},{6657,49174,0}, {6658,49151,0},{6657,49143,0},{6657,49158,0},{6652,49161,0},{6648,49159,0}, {6643,49151,0},{6640,49146,0},{6628,49151,0},{6623,49141,0},{6622,49128,0}, {6620,49126,0},{6620,49118,0},{6618,49118,0},{6620,49138,0},{6618,49138,0}, {6618,49141,0},{6622,49143,0},{6618,49146,0},{6612,49153,0},{6607,49171,0}, {6608,49186,0},{6608,49199,0},{6607,49211,0},{6607,49226,0},{6610,49241,0}, {6610,49261,0},{6607,49268,0},{6600,49269,0},{6603,49271,0},{6607,49288,0}, {6603,49299,0},{6608,49319,0},{6607,49333,0},{6603,49344,0},{6602,49339,0}, {6602,49346,0},{6598,49344,0},{6598,49356,0},{6598,49358,0},{6600,49353,0}, {6602,49353,0},{6605,49358,0},{6607,49363,0},{6608,49363,0},{6608,49358,0}, {6615,49369,0},{6625,49379,0},{6627,49388,0},{6627,49401,0},{6625,49399,0}, {6623,49403,0},{6622,49409,0},{6623,49428,0},{6613,49426,0},{6613,49418,0}, {6612,49421,0},{6613,49431,0},{6620,49436,0},{6625,49436,0},{6633,49423,0}, {6640,49381,0},{6640,49363,0},{6638,49356,0},{6637,49344,0},{6632,49344,0}, {6632,49348,0},{6628,49351,0},{6627,49344,0},{6633,49339,0},{6643,49349,0}, {6650,49349,0},{6653,49346,0},{6662,49328,0},{6672,49314,0},{6673,49286,0}, {6680,49283,0},{6687,49273,0},{6690,49273,0},{6692,49284,0},{6695,49288,0}, {6692,49294,0},{6695,49303,0},{6695,49304,0},{6682,49323,0},{6678,49334,0}, {6670,49329,0},{6665,49328,0},{6653,49348,0},{6645,49376,0},{6648,49401,0}, {6653,49416,0},{6650,49421,0},{6648,49428,0},{6643,49438,0},{6637,49458,0}, {6637,49481,0},{6638,49486,0},{6640,49513,0},{6652,49514,0},{6660,49504,0}, {6663,49504,0},{6665,49511,0},{6665,49501,0},{6662,49499,0},{6663,49488,0}, {6658,49481,0},{6660,49466,0},{6665,49458,0},{6667,49451,0},{6665,49419,0}, {6655,49409,0},{6653,49386,0},{6657,49379,0},{6658,49381,0},{6662,49366,0}, {6673,49346,0},{6677,49349,0},{6680,49348,0},{6683,49356,0},{6690,49356,0}, {6692,49364,0},{6695,49363,0},{6697,49371,0},{6695,49386,0},{6698,49386,0}, {6702,49368,0},{6700,49364,0},{6705,49351,0},{6703,49326,0},{6700,49313,0}, {6705,49311,0},{6707,49306,0},{6700,49306,0},{6698,49291,0},{6702,49289,0}, {6715,49303,0},{6717,49301,0},{6715,49293,0},{6713,49299,0},{6702,49281,0}, {6702,49271,0},{6705,49261,0},{6703,49253,0},{6705,49241,0},{6703,49241,0}, {6700,49251,0},{6700,49248,0},{6705,49221,0},{6712,49163,0},{6713,49159,0}, {6737,49153,0},{6752,49138,0},{6762,49124,0},{6772,49088,0},{6775,49086,0}, {6777,49076,0},{6783,49066,0},{6783,49059,0},{6780,49064,0},{6803,48999,0}, {6808,48978,0},{6810,48954,0},{6813,48944,0},{6822,48929,0},{6830,48908,0}, {6832,48893,0},{6835,48853,0},{6842,48891,0},{6837,48861,0},{6835,48874,0}, {6837,48883,0},{6840,48891,0},{6838,48898,0},{6842,48894,0},{6840,48904,0}, {6843,48899,0},{6847,48904,0},{6852,48906,0},{6857,48913,0},{6875,48918,0}, {6887,48913,0},{6888,48914,0},{6885,48963,0},{6888,49028,0},{6892,49073,0}, {6893,49104,0},{6900,49143,0},{6908,49166,0},{6913,49178,0},{6932,49209,0}, {6942,49218,0},{6942,49221,0},{6930,49209,0},{6935,49221,0},{6938,49224,0}, {6948,49224,0},{6952,49229,0},{6957,49229,0},{6960,49221,0},{6962,49233,0}, {6965,49229,0},{6965,49233,0},{6967,49229,0},{6968,49231,0},{6967,49238,0}, {6968,49241,0},{6970,49243,0},{6972,49241,0},{6973,49233,0},{6978,49241,0}, {6997,49284,0},{7005,49288,0},{7005,49299,0},{7010,49301,0},{7015,49314,0}, {7030,49338,0},{7032,49348,0},{7030,49353,0},{7028,49353,0},{7027,49364,0}, {7025,49366,0},{7025,49346,0},{7025,49348,0},{7023,49361,0},{7022,49351,0}, {7018,49351,0},{7017,49346,0},{7020,49336,0},{7018,49331,0},{7015,49324,0}, {7017,49351,0},{7018,49356,0},{7020,49363,0},{7020,49366,0},{7022,49363,0}, {7025,49374,0},{7025,49406,0},{7032,49433,0},{7030,49433,0},{7028,49441,0}, {7032,49438,0},{7038,49461,0},{7043,49476,0},{7038,49454,0},{7048,49489,0}, {7060,49521,0},{7058,49519,0},{7057,49524,0},{7060,49543,0},{7055,49541,0}, {7053,49544,0},{7052,49541,0},{7052,49533,0},{7048,49529,0},{7047,49516,0}, {7048,49544,0},{7032,49523,0},{7037,49539,0},{7033,49544,0},{7032,49544,0}, {7020,49559,0},{7038,49548,0},{7050,49554,0},{7047,49566,0},{7052,49586,0}, {7050,49594,0},{7053,49608,0},{7052,49593,0},{7052,49579,0},{7050,49564,0}, {7053,49556,0},{7063,49543,0},{7063,49533,0},{7060,49524,0},{7063,49526,0}, {7070,49544,0},{7070,49554,0},{7072,49551,0},{7080,49569,0},{7088,49618,0}, {7085,49599,0},{7083,49621,0},{7082,49621,0},{7080,49604,0},{7078,49591,0}, {7075,49599,0},{7077,49606,0},{7073,49604,0},{7068,49614,0},{7075,49608,0}, {7077,49611,0},{7075,49621,0},{7077,49636,0},{7078,49636,0},{7082,49628,0}, {7078,49666,0},{7082,49698,0},{7082,49703,0},{7083,49686,0},{7085,49686,0}, {7082,49713,0},{7083,49731,0},{7085,49749,0},{7095,49784,0},{7105,49809,0}, {7130,49854,0},{7140,49889,0},{7137,49898,0},{7140,49889,0},{7137,49884,0}, {7135,49876,0},{7130,49883,0},{7128,49893,0},{7127,49891,0},{7127,49913,0}, {7125,49924,0},{7122,49926,0},{7122,49931,0},{7117,49924,0},{7118,49936,0}, {7122,49941,0},{7120,49944,0},{7118,49971,0},{7117,49976,0},{7112,49981,0}, {7108,49981,0},{7103,49964,0},{7100,49963,0},{7097,49948,0},{7097,49926,0}, {7095,49934,0},{7093,49934,0},{7092,49918,0},{7092,49931,0},{7090,49928,0}, {7090,49929,0},{7090,49938,0},{7085,49943,0},{7082,49938,0},{7075,49939,0}, {7077,49946,0},{7082,49944,0},{7083,49946,0},{7083,49964,0},{7083,49971,0}, {7087,49971,0},{7083,49978,0},{7087,49983,0},{7093,49983,0},{7100,49998,0}, {7103,50008,0},{7100,50011,0},{7098,50016,0},{7103,50018,0},{7108,50008,0}, {7112,50019,0},{7108,50026,0},{7113,50024,0},{7115,50028,0},{7113,50033,0}, {7105,50033,0},{7102,50028,0},{7102,50034,0},{7112,50034,0},{7112,50039,0}, {7108,50046,0},{7110,50054,0},{7102,50076,0},{7092,50071,0},{7088,50056,0}, {7088,50068,0},{7088,50069,0},{7083,50074,0},{7082,50104,0},{7080,50111,0}, {7078,50111,0},{7078,50116,0},{7083,50133,0},{7088,50144,0},{7090,50198,0}, {7093,50216,0},{7090,50228,0},{7092,50233,0},{7090,50241,0},{7087,50244,0}, {7085,50249,0},{7088,50254,0},{7082,50266,0},{7085,50269,0},{7088,50261,0}, {7088,50271,0},{7087,50296,0},{7083,50311,0},{7082,50314,0},{7073,50293,0}, {7072,50294,0},{7070,50286,0},{7065,50286,0},{7060,50298,0},{7060,50326,0}, {7057,50328,0},{7058,50286,0},{7057,50279,0},{7057,50273,0},{7055,50274,0}, {7055,50284,0},{7055,50293,0},{7055,50311,0},{7055,50326,0},{7057,50334,0}, {7055,50363,0},{7052,50356,0},{7052,50349,0},{7050,50359,0},{7047,50339,0}, {7045,50339,0},{7043,50388,0},{7042,50403,0},{7037,50414,0},{7038,50419,0}, {7042,50414,0},{7045,50418,0},{7045,50438,0},{7047,50443,0},{7047,50449,0}, {7048,50453,0},{7047,50463,0},{7050,50458,0},{7050,50484,0},{7047,50488,0}, {7048,50494,0},{7048,50499,0},{7042,50496,0},{7045,50511,0},{7043,50524,0}, {7052,50548,0},{7048,50556,0},{7052,50566,0},{7052,50586,0},{7050,50589,0}, {7050,50588,0},{7048,50598,0},{7048,50601,0},{7050,50601,0},{7048,50619,0}, {7047,50631,0},{7042,50639,0},{7043,50644,0},{7042,50654,0},{7040,50676,0}, {7037,50684,0},{7032,50686,0},{7032,50699,0},{7037,50714,0},{7035,50726,0}, {7030,50731,0},{7032,50736,0},{7030,50738,0},{7032,50749,0},{7030,50756,0}, {7023,50756,0},{7018,50796,0},{7020,50809,0},{7017,50819,0},{7017,50838,0}, {7018,50843,0},{7017,50846,0},{7018,50848,0},{7020,50883,0},{7018,50908,0}, {7015,50928,0},{7015,50941,0},{7017,50943,0},{7013,50948,0},{7017,50948,0}, {7017,50953,0},{7008,50976,0},{7007,50976,0},{7010,50981,0},{7005,50989,0}, {7003,51003,0},{7003,51014,0},{7000,51006,0},{6998,51033,0},{6997,51039,0}, {6998,51048,0},{7000,51048,0},{6997,51059,0},{6997,51073,0},{7003,51096,0}, {7003,51119,0},{7007,51124,0},{7005,51129,0},{6998,51129,0},{7005,51134,0}, {7008,51131,0},{7007,51143,0},{7008,51148,0},{7008,51153,0},{7010,51161,0}, {7008,51168,0},{7008,51174,0},{7010,51179,0},{7012,51179,0},{7010,51184,0}, {7012,51201,0},{7005,51208,0},{7012,51208,0},{7008,51223,0},{7008,51234,0}, {7007,51238,0},{7008,51246,0},{7002,51273,0},{7000,51278,0},{6997,51276,0}, {6998,51281,0},{6997,51288,0},{6997,51284,0},{6995,51284,0},{6993,51294,0}, {6992,51294,0},{6992,51299,0},{6988,51299,0},{6988,51304,0},{6985,51309,0}, {6985,51326,0},{6980,51334,0},{6978,51339,0},{6980,51341,0},{6982,51344,0}, {6980,51348,0},{6978,51363,0},{6972,51383,0},{6963,51398,0},{6963,51411,0}, {6967,51414,0},{6968,51406,0},{6965,51434,0},{6963,51446,0},{6962,51446,0}, {6962,51453,0},{6963,51453,0},{6962,51461,0},{6960,51496,0},{6960,51509,0}, {6962,51526,0},{6962,51548,0},{6957,51578,0},{6960,51559,0},{6958,51561,0}, {6957,51576,0},{6955,51594,0},{6950,51609,0},{6950,51623,0},{6942,51639,0}, {6935,51659,0},{6928,51671,0},{6923,51676,0},{6925,51684,0},{6923,51684,0}, {6923,51691,0},{6925,51696,0},{6930,51696,0},{6928,51691,0},{6930,51696,0}, {6930,51701,0},{6923,51703,0},{6917,51714,0},{6913,51729,0},{6903,51773,0}, {6900,51798,0},{6900,51793,0},{6898,51794,0},{6897,51808,0},{6895,51811,0}, {6895,51834,0},{6892,51839,0},{6892,51848,0},{6887,51861,0},{6887,51869,0}, {6890,51876,0},{6888,51883,0},{6890,51883,0},{6892,51888,0},{6888,51916,0}, {6888,51924,0},{6883,51954,0},{6877,51964,0},{6875,51983,0},{6870,51994,0}, {6867,51996,0},{6867,52004,0},{6868,52006,0},{6865,52019,0},{6868,52014,0}, {6868,52018,0},{6873,52003,0},{6877,52001,0},{6880,51989,0},{6883,51986,0}, {6883,52003,0},{6887,51979,0},{6888,51974,0},{6893,52013,0},{6888,52019,0}, {6890,52026,0},{6888,52038,0},{6888,52041,0},{6893,52051,0},{6888,52068,0}, {6885,52073,0},{6880,52073,0},{6875,52086,0},{6872,52089,0},{6868,52104,0}, {6870,52114,0},{6877,52106,0},{6880,52096,0},{6888,52088,0},{6902,52074,0}, {6910,52083,0},{6910,52103,0},{6915,52104,0},{6917,52113,0},{6922,52114,0}, {6927,52121,0},{6928,52146,0},{6933,52149,0},{6935,52161,0},{6933,52161,0}, {6933,52166,0},{6935,52169,0},{6937,52168,0},{6938,52168,0},{6940,52181,0}, {6940,52214,0},{6942,52218,0},{6945,52228,0},{6943,52231,0},{6947,52231,0}, {6952,52239,0},{6957,52241,0},{6960,52238,0},{6965,52246,0},{6965,52258,0}, {6963,52258,0},{6965,52273,0},{6963,52283,0},{6963,52294,0},{6965,52301,0}, {6968,52303,0},{6968,52299,0},{6965,52291,0},{6968,52294,0},{6970,52291,0}, {6967,52279,0},{6968,52274,0},{6973,52283,0},{6977,52309,0},{6973,52288,0}, {6972,52294,0},{6973,52308,0},{6972,52304,0},{6968,52323,0},{6972,52326,0}, {6973,52338,0},{6977,52344,0},{6977,52353,0},{6980,52359,0},{6983,52359,0}, {6987,52373,0},{6990,52394,0},{6992,52391,0},{6995,52394,0},{6993,52413,0}, {6988,52416,0},{6985,52414,0},{6982,52418,0},{6985,52421,0},{6987,52418,0}, {6988,52419,0},{6990,52423,0},{6988,52428,0},{7000,52436,0},{7002,52443,0}, {7003,52443,0},{7003,52434,0},{7010,52446,0},{7007,52446,0},{7010,52456,0}, {7010,52459,0},{7013,52461,0},{7012,52466,0},{7008,52463,0},{7010,52471,0}, {7013,52471,0},{7013,52478,0},{7017,52481,0},{7017,52489,0},{7017,52484,0}, {7010,52483,0},{7012,52488,0},{7013,52486,0},{7013,52494,0},{7017,52496,0}, {7013,52499,0},{7013,52504,0},{7010,52503,0},{7010,52508,0},{7008,52503,0}, {7008,52514,0},{7010,52519,0},{7005,52518,0},{7012,52526,0},{7010,52529,0}, {7007,52528,0},{7010,52543,0},{7007,52538,0},{7008,52546,0},{7010,52551,0}, {7015,52551,0},{7018,52558,0},{7020,52553,0},{7022,52558,0},{7022,52563,0}, {7025,52563,0},{7027,52569,0},{7018,52578,0},{7017,52573,0},{7015,52589,0}, {7012,52586,0},{7010,52589,0},{7013,52593,0},{7012,52596,0},{7005,52589,0}, {7005,52581,0},{7002,52586,0},{6990,52536,0},{6985,52516,0},{6983,52511,0}, {6985,52506,0},{6977,52488,0},{6978,52484,0},{6970,52478,0},{6968,52458,0}, {6960,52451,0},{6960,52448,0},{6957,52443,0},{6960,52433,0},{6963,52433,0}, {6963,52418,0},{6960,52411,0},{6960,52403,0},{6957,52403,0},{6958,52394,0}, {6957,52384,0},{6958,52371,0},{6953,52371,0},{6957,52363,0},{6953,52348,0}, {6953,52336,0},{6948,52328,0},{6945,52331,0},{6945,52326,0},{6942,52326,0}, {6942,52323,0},{6938,52328,0},{6937,52326,0},{6932,52303,0},{6925,52304,0}, {6930,52298,0},{6930,52291,0},{6925,52293,0},{6923,52288,0},{6917,52288,0}, {6928,52281,0},{6928,52274,0},{6925,52269,0},{6927,52264,0},{6923,52258,0}, {6922,52253,0},{6918,52253,0},{6912,52246,0},{6910,52248,0},{6910,52253,0}, {6907,52246,0},{6898,52248,0},{6900,52243,0},{6908,52243,0},{6905,52236,0}, {6907,52228,0},{6905,52224,0},{6903,52216,0},{6898,52216,0},{6897,52211,0}, {6895,52214,0},{6892,52213,0},{6887,52204,0},{6888,52196,0},{6892,52199,0}, {6888,52189,0},{6885,52193,0},{6885,52188,0},{6880,52189,0},{6875,52204,0}, {6873,52213,0},{6872,52216,0},{6868,52233,0},{6868,52244,0},{6872,52243,0}, {6872,52221,0},{6873,52219,0},{6875,52211,0},{6878,52209,0},{6875,52219,0}, {6877,52223,0},{6880,52211,0},{6878,52203,0},{6885,52198,0},{6887,52213,0}, {6885,52218,0},{6880,52226,0},{6880,52229,0},{6882,52231,0},{6880,52243,0}, {6885,52239,0},{6885,52251,0},{6878,52264,0},{6880,52266,0},{6883,52263,0}, {6880,52288,0},{6883,52289,0},{6883,52294,0},{6887,52296,0},{6892,52281,0}, {6890,52279,0},{6888,52286,0},{6890,52276,0},{6887,52271,0},{6885,52273,0}, {6883,52268,0},{6885,52258,0},{6887,52258,0},{6888,52266,0},{6890,52256,0}, {6892,52253,0},{6893,52258,0},{6893,52268,0},{6898,52251,0},{6903,52249,0}, {6903,52253,0},{6907,52249,0},{6908,52256,0},{6908,52269,0},{6913,52279,0}, {6913,52286,0},{6923,52294,0},{6915,52294,0},{6910,52289,0},{6913,52298,0}, {6923,52304,0},{6922,52308,0},{6918,52301,0},{6918,52304,0},{6922,52316,0}, {6913,52314,0},{6923,52319,0},{6923,52328,0},{6925,52339,0},{6932,52344,0}, {6932,52348,0},{6928,52344,0},{6928,52349,0},{6940,52364,0},{6938,52356,0}, {6937,52351,0},{6940,52348,0},{6940,52341,0},{6940,52339,0},{6943,52349,0}, {6942,52353,0},{6943,52359,0},{6942,52371,0},{6945,52368,0},{6947,52371,0}, {6943,52394,0},{6940,52388,0},{6935,52388,0},{6933,52383,0},{6937,52394,0}, {6942,52396,0},{6942,52401,0},{6945,52399,0},{6945,52403,0},{6950,52404,0}, {6940,52411,0},{6950,52409,0},{6950,52413,0},{6947,52413,0},{6938,52414,0}, {6937,52404,0},{6930,52394,0},{6932,52404,0},{6937,52411,0},{6937,52416,0}, {6938,52419,0},{6950,52419,0},{6958,52411,0},{6952,52421,0},{6952,52424,0}, {6937,52423,0},{6948,52429,0},{6952,52429,0},{6958,52416,0},{6962,52423,0}, {6960,52428,0},{6957,52426,0},{6947,52433,0},{6932,52424,0},{6937,52433,0}, {6947,52439,0},{6955,52438,0},{6953,52441,0},{6942,52443,0},{6935,52431,0}, {6932,52433,0},{6940,52443,0},{6938,52446,0},{6932,52444,0},{6927,52436,0}, {6913,52434,0},{6913,52444,0},{6917,52441,0},{6927,52441,0},{6935,52456,0}, {6937,52454,0},{6940,52459,0},{6940,52468,0},{6945,52471,0},{6945,52461,0}, {6958,52491,0},{6962,52491,0},{6968,52503,0},{6970,52499,0},{6972,52521,0}, {6975,52541,0},{6978,52568,0},{6982,52576,0},{6987,52626,0},{6988,52633,0}, {6995,52639,0},{6997,52644,0},{6995,52651,0},{6995,52646,0},{6992,52646,0}, {6988,52641,0},{6985,52643,0},{6985,52623,0},{6982,52619,0},{6975,52623,0}, {6970,52621,0},{6967,52638,0},{6968,52644,0},{6972,52639,0},{6973,52639,0}, {6975,52656,0},{6987,52676,0},{6993,52696,0},{6995,52704,0},{7000,52706,0}, {7010,52699,0},{7012,52701,0},{7018,52724,0},{7018,52739,0},{7020,52749,0}, {7022,52764,0},{7023,52774,0},{7022,52784,0},{7025,52776,0},{7028,52733,0}, {7037,52724,0},{7035,52739,0},{7037,52743,0},{7040,52744,0},{7037,52733,0}, {7037,52719,0},{7038,52716,0},{7052,52723,0},{7058,52736,0},{7042,52789,0}, {7027,52819,0},{7007,52844,0},{7002,52846,0},{6997,52859,0},{6995,52856,0}, {6993,52859,0},{6990,52854,0},{6977,52866,0},{6953,52911,0},{6940,52946,0}, {6938,52959,0},{6938,52969,0},{6935,52978,0},{6932,52993,0},{6935,52999,0}, {6937,52998,0},{6938,52991,0},{6942,52991,0},{6940,52991,0},{6938,53016,0}, {6938,53023,0},{6942,53024,0},{6943,53023,0},{6945,53028,0},{6945,53021,0}, {6947,53024,0},{6947,53013,0},{6945,53009,0},{6945,53006,0},{6947,53006,0}, {6945,53001,0},{6947,52993,0},{6942,52974,0},{6947,52978,0},{6948,52981,0}, {6947,52986,0},{6950,52984,0},{6952,52989,0},{6950,53003,0},{6952,53003,0}, {6952,53008,0},{6948,53024,0},{6953,53009,0},{6955,53006,0},{6958,53014,0}, {6962,52993,0},{6962,52999,0},{6963,52994,0},{6968,52999,0},{6970,53014,0}, {6975,53029,0},{6973,53039,0},{6965,53043,0},{6968,53049,0},{6972,53049,0}, {6972,53054,0},{6975,53046,0},{6975,53034,0},{6978,53021,0},{6977,53013,0}, {6980,53008,0},{6985,53018,0},{6980,53019,0},{6980,53031,0},{6987,53034,0}, {6993,53046,0},{6997,53064,0},{6998,53066,0},{6997,53069,0},{6998,53073,0}, {7002,53068,0},{6997,53061,0},{6998,53051,0},{7002,53056,0},{7002,53053,0}, {7002,53044,0},{7000,53044,0},{7000,53038,0},{6998,53031,0},{6997,53031,0}, {6997,53024,0},{6993,53024,0},{6993,53018,0},{6993,53014,0},{6997,53018,0}, {7000,53016,0},{7008,53036,0},{7007,53039,0},{7003,53036,0},{7003,53031,0}, {7002,53034,0},{7003,53049,0},{7003,53041,0},{7007,53053,0},{7005,53056,0}, {7007,53073,0},{7002,53078,0},{7002,53083,0},{7003,53081,0},{7005,53083,0}, {7003,53093,0},{7008,53091,0},{7008,53079,0},{7010,53086,0},{7012,53081,0}, {7008,53063,0},{7010,53068,0},{7012,53061,0},{7015,53066,0},{7015,53081,0}, {7015,53084,0},{7015,53096,0},{7012,53091,0},{7007,53101,0},{7002,53098,0}, {7000,53086,0},{7000,53094,0},{6998,53093,0},{6997,53083,0},{6995,53093,0}, {6992,53093,0},{6992,53086,0},{6990,53086,0},{6988,53091,0},{6987,53091,0}, {6985,53096,0},{6978,53086,0},{6973,53086,0},{6970,53106,0},{6973,53116,0}, {6972,53126,0},{6972,53129,0},{6970,53133,0},{6967,53131,0},{6962,53116,0}, {6955,53113,0},{6947,53094,0},{6942,53094,0},{6940,53084,0},{6937,53089,0}, {6935,53103,0},{6935,53126,0},{6938,53131,0},{6935,53133,0},{6935,53138,0}, {6938,53134,0},{6940,53138,0},{6937,53148,0},{6938,53153,0},{6937,53156,0}, {6938,53161,0},{6937,53166,0},{6935,53168,0},{6938,53188,0},{6942,53198,0}, {6945,53191,0},{6948,53196,0},{6950,53209,0},{6950,53211,0},{6950,53219,0}, {6957,53223,0},{6962,53219,0},{6967,53226,0},{6975,53224,0},{6977,53221,0}, {6983,53239,0},{6980,53256,0},{6980,53261,0},{6983,53261,0},{6982,53266,0}, {6980,53291,0},{6982,53303,0},{6980,53318,0},{6982,53329,0},{6982,53343,0}, {6980,53368,0},{6977,53378,0},{6977,53391,0},{6967,53428,0},{6962,53453,0}, {6952,53474,0},{6938,53513,0},{6935,53539,0},{6933,53558,0},{6932,53573,0}, {6930,53613,0},{6927,53629,0},{6925,53653,0},{6922,53671,0},{6912,53691,0}, {6908,53709,0},{6902,53733,0},{6898,53749,0},{6895,53798,0},{6888,53821,0}, {6890,53831,0},{6890,53839,0},{6893,53836,0},{6893,53838,0},{6893,53843,0}, {6888,53853,0},{6885,53886,0},{6887,53894,0},{6888,53898,0},{6883,53914,0}, {6880,53939,0},{6882,53941,0},{6887,53924,0},{6888,53928,0},{6893,53908,0}, {6897,53903,0},{6898,53913,0},{6897,53929,0},{6892,53949,0},{6893,53953,0}, {6893,53959,0},{6897,53951,0},{6900,53943,0},{6897,53966,0},{6897,53976,0}, {6890,54004,0},{6890,54013,0},{6885,54028,0},{6887,54029,0},{6887,54038,0}, {6880,54056,0},{6875,54063,0},{6873,54078,0},{6868,54091,0},{6867,54089,0}, {6862,54096,0},{6857,54118,0},{6853,54119,0},{6852,54126,0},{6847,54129,0}, {6843,54131,0},{6842,54123,0},{6840,54126,0},{6838,54131,0},{6840,54136,0}, {6843,54139,0},{6840,54146,0},{6838,54141,0},{6832,54131,0},{6823,54134,0}, {6825,54116,0},{6823,54109,0},{6823,54099,0},{6827,54091,0},{6825,54066,0}, {6825,54054,0},{6828,54039,0},{6823,54049,0},{6818,54061,0},{6818,54053,0}, {6815,54046,0},{6818,54013,0},{6813,54019,0},{6808,54013,0},{6803,54013,0}, {6802,54024,0},{6798,54016,0},{6793,53983,0},{6790,53983,0},{6788,53984,0}, {6788,53996,0},{6788,54011,0},{6787,54008,0},{6782,54018,0},{6782,54024,0}, {6780,54026,0},{6778,54034,0},{6780,54044,0},{6782,54061,0},{6780,54069,0}, {6777,54078,0},{6778,54083,0},{6775,54091,0},{6772,54108,0},{6773,54118,0}, {6772,54139,0},{6768,54151,0},{6770,54214,0},{6767,54231,0},{6768,54251,0}, {6767,54264,0},{6768,54298,0},{6770,54303,0},{6773,54299,0},{6773,54303,0}, {6773,54316,0},{6773,54336,0},{6770,54338,0},{6768,54346,0},{6770,54349,0}, {6772,54343,0},{6773,54346,0},{6775,54344,0},{6775,54356,0},{6772,54383,0}, {6775,54379,0},{6777,54383,0},{6777,54389,0},{6773,54389,0},{6775,54396,0}, {6780,54404,0},{6783,54418,0},{6783,54421,0},{6780,54416,0},{6778,54419,0}, {6775,54416,0},{6778,54428,0},{6777,54433,0},{6780,54453,0},{6787,54463,0}, {6788,54471,0},{6788,54479,0},{6795,54496,0},{6795,54503,0},{6797,54503,0}, {6795,54513,0},{6792,54518,0},{6792,54523,0},{6797,54516,0},{6800,54519,0}, {6800,54528,0},{6795,54539,0},{6787,54536,0},{6783,54538,0},{6783,54544,0}, {6788,54543,0},{6787,54554,0},{6780,54566,0},{6778,54561,0},{6773,54574,0}, {6773,54561,0},{6772,54563,0},{6768,54583,0},{6770,54588,0},{6772,54586,0}, {6773,54586,0},{6777,54596,0},{6773,54596,0},{6773,54601,0},{6772,54629,0}, {6767,54636,0},{6757,54639,0},{6753,54644,0},{6750,54634,0},{6747,54634,0}, {6743,54638,0},{6743,54643,0},{6740,54643,0},{6742,54649,0},{6735,54654,0}, {6737,54658,0},{6745,54661,0},{6760,54663,0},{6763,54668,0},{6762,54674,0}, {6760,54678,0},{6758,54678,0},{6748,54684,0},{6735,54688,0},{6735,54693,0}, {6743,54693,0},{6745,54696,0},{6743,54701,0},{6740,54706,0},{6730,54734,0}, {6713,54749,0},{6713,54744,0},{6705,54748,0},{6708,54733,0},{6707,54728,0}, {6708,54721,0},{6702,54714,0},{6705,54703,0},{6708,54689,0},{6715,54676,0}, {6705,54683,0},{6703,54686,0},{6703,54688,0},{6707,54689,0},{6703,54694,0}, {6698,54703,0},{6695,54721,0},{6692,54724,0},{6687,54724,0},{6685,54713,0}, {6683,54719,0},{6685,54729,0},{6683,54738,0},{6678,54743,0},{6672,54741,0}, {6667,54748,0},{6673,54751,0},{6677,54748,0},{6675,54753,0},{6665,54768,0}, {6663,54764,0},{6657,54771,0},{6653,54781,0},{6655,54783,0},{6655,54784,0}, {6647,54791,0},{6643,54801,0},{6635,54811,0},{6637,54816,0},{6640,54813,0}, {6650,54794,0},{6655,54791,0},{6658,54779,0},{6670,54771,0},{6677,54756,0}, {6675,54764,0},{6677,54768,0},{6695,54759,0},{6702,54761,0},{6697,54773,0}, {6697,54776,0},{6708,54771,0},{6702,54784,0},{6692,54788,0},{6693,54776,0}, {6695,54769,0},{6693,54766,0},{6688,54773,0},{6687,54776,0},{6690,54778,0}, {6687,54783,0},{6683,54779,0},{6682,54784,0},{6685,54788,0},{6683,54789,0}, {6680,54793,0},{6682,54794,0},{6688,54788,0},{6688,54796,0},{6697,54791,0}, {6697,54794,0},{6688,54814,0},{6682,54823,0},{6682,54828,0},{6697,54813,0}, {6703,54796,0},{6707,54801,0},{6707,54811,0},{6710,54811,0},{6712,54816,0}, {6712,54806,0},{6715,54798,0},{6720,54786,0},{6732,54776,0},{6742,54764,0}, {6743,54764,0},{6740,54771,0},{6742,54773,0},{6750,54778,0},{6770,54736,0}, {6777,54734,0},{6785,54743,0},{6790,54766,0},{6793,54771,0},{6797,54759,0}, {6795,54756,0},{6798,54753,0},{6798,54744,0},{6808,54748,0},{6810,54751,0}, {6808,54756,0},{6807,54766,0},{6805,54763,0},{6805,54754,0},{6803,54756,0}, {6803,54763,0},{6802,54753,0},{6798,54758,0},{6798,54763,0},{6802,54763,0}, {6805,54768,0},{6807,54778,0},{6805,54801,0},{6813,54821,0},{6813,54824,0}, {6808,54824,0},{6810,54834,0},{6808,54839,0},{6812,54841,0},{6810,54859,0}, {6815,54861,0},{6822,54856,0},{6822,54858,0},{6822,54861,0},{6822,54868,0}, {6820,54866,0},{6817,54871,0},{6822,54873,0},{6825,54874,0},{6818,54889,0}, {6815,54893,0},{6818,54896,0},{6818,54901,0},{6823,54886,0},{6830,54894,0}, {6833,54889,0},{6835,54893,0},{6835,54903,0},{6840,54914,0},{6837,54924,0}, {6840,54931,0},{6840,54938,0},{6842,54939,0},{6840,54944,0},{6842,54951,0}, {6845,54954,0},{6842,54958,0},{6842,54963,0},{6848,54966,0},{6855,54959,0}, {6863,54971,0},{6863,54963,0},{6862,54958,0},{6863,54948,0},{6862,54933,0}, {6860,54929,0},{6852,54881,0},{6852,54894,0},{6850,54881,0},{6847,54886,0}, {6845,54883,0},{6847,54878,0},{6847,54873,0},{6842,54876,0},{6842,54886,0}, {6840,54888,0},{6835,54879,0},{6830,54883,0},{6828,54881,0},{6830,54876,0}, {6835,54871,0},{6835,54864,0},{6837,54864,0},{6842,54856,0},{6837,54856,0}, {6838,54843,0},{6837,54834,0},{6833,54833,0},{6830,54823,0},{6827,54823,0}, {6827,54809,0},{6832,54803,0},{6832,54788,0},{6835,54779,0},{6833,54763,0}, {6833,54753,0},{6827,54748,0},{6823,54761,0},{6820,54763,0},{6818,54774,0}, {6817,54776,0},{6818,54758,0},{6817,54749,0},{6815,54746,0},{6815,54734,0}, {6817,54738,0},{6817,54736,0},{6817,54716,0},{6812,54699,0},{6813,54693,0}, {6817,54696,0},{6817,54699,0},{6813,54699,0},{6817,54703,0},{6823,54701,0}, {6822,54696,0},{6818,54696,0},{6818,54691,0},{6828,54696,0},{6830,54691,0}, {6830,54686,0},{6825,54678,0},{6825,54666,0},{6823,54664,0},{6827,54654,0}, {6830,54663,0},{6835,54663,0},{6840,54678,0},{6860,54701,0},{6862,54708,0}, {6865,54761,0},{6868,54783,0},{6870,54806,0},{6873,54818,0},{6882,54854,0}, {6882,54871,0},{6885,54878,0},{6890,54909,0},{6893,54914,0},{6888,54941,0}, {6888,54956,0},{6872,54989,0},{6865,54981,0},{6852,54996,0},{6852,55003,0}, {6847,55004,0},{6850,54994,0},{6847,54989,0},{6845,54983,0},{6842,54983,0}, {6842,55003,0},{6837,55001,0},{6833,55006,0},{6825,55031,0},{6827,55036,0}, {6830,55028,0},{6832,55036,0},{6832,55043,0},{6835,55046,0},{6830,55053,0}, {6827,55049,0},{6825,55041,0},{6823,55043,0},{6822,55046,0},{6823,55051,0}, {6827,55054,0},{6825,55056,0},{6823,55076,0},{6813,55069,0},{6813,55076,0}, {6808,55076,0},{6807,55086,0},{6803,55086,0},{6803,55099,0},{6805,55106,0}, {6802,55119,0},{6805,55136,0},{6802,55149,0},{6803,55161,0},{6807,55166,0}, {6805,55176,0},{6807,55181,0},{6812,55181,0},{6817,55194,0},{6812,55203,0}, {6808,55198,0},{6803,55199,0},{6800,55199,0},{6800,55206,0},{6797,55211,0}, {6795,55223,0},{6792,55226,0},{6793,55239,0},{6782,55256,0},{6778,55289,0}, {6773,55303,0},{6772,55304,0},{6773,55311,0},{6768,55313,0},{6770,55316,0}, {6773,55314,0},{6777,55321,0},{6775,55331,0},{6777,55338,0},{6778,55338,0}, {6778,55343,0},{6775,55344,0},{6775,55351,0},{6770,55354,0},{6773,55361,0}, {6768,55369,0},{6768,55381,0},{6770,55388,0},{6770,55396,0},{6772,55391,0}, {6773,55391,0},{6772,55398,0},{6773,55403,0},{6772,55411,0},{6777,55413,0}, {6775,55418,0},{6778,55426,0},{6778,55428,0},{6773,55426,0},{6775,55446,0}, {6777,55446,0},{6782,55444,0},{6782,55449,0},{6778,55453,0},{6782,55458,0}, {6782,55464,0},{6785,55466,0},{6783,55473,0},{6783,55478,0},{6780,55478,0}, {6785,55496,0},{6785,55518,0},{6782,55528,0},{6782,55544,0},{6780,55554,0}, {6782,55558,0},{6782,55568,0},{6778,55573,0},{6780,55578,0},{6780,55586,0}, {6777,55588,0},{6780,55591,0},{6777,55598,0},{6777,55606,0},{6770,55614,0}, {6773,55624,0},{6772,55638,0},{6770,55643,0},{6775,55646,0},{6775,55663,0}, {6780,55666,0},{6778,55676,0},{6780,55701,0},{6787,55691,0},{6787,55683,0}, {6795,55664,0},{6807,55663,0},{6807,55673,0},{6810,55678,0},{6790,55713,0}, {6775,55728,0},{6775,55738,0},{6770,55743,0},{6768,55756,0},{6765,55763,0}, {6763,55771,0},{6760,55779,0},{6762,55796,0},{6767,55808,0},{6762,55816,0}, {6767,55818,0},{6767,55829,0},{6772,55821,0},{6772,55814,0},{6778,55824,0}, {6793,55813,0},{6788,55808,0},{6787,55799,0},{6788,55794,0},{6793,55789,0}, {6802,55768,0},{6797,55764,0},{6798,55759,0},{6797,55751,0},{6795,55744,0}, {6792,55741,0},{6795,55734,0},{6792,55731,0},{6783,55729,0},{6787,55718,0}, {6792,55714,0},{6800,55696,0},{6807,55691,0},{6813,55678,0},{6815,55678,0}, {6813,55683,0},{6818,55689,0},{6813,55693,0},{6810,55693,0},{6808,55696,0}, {6810,55703,0},{6817,55704,0},{6818,55698,0},{6820,55686,0},{6823,55681,0}, {6823,55688,0},{6825,55688,0},{6830,55676,0},{6837,55664,0},{6837,55676,0}, {6833,55684,0},{6837,55683,0},{6835,55688,0},{6837,55689,0},{6840,55683,0}, {6842,55683,0},{6837,55694,0},{6837,55699,0},{6830,55716,0},{6833,55721,0}, {6832,55729,0},{6837,55726,0},{6833,55744,0},{6838,55746,0},{6837,55759,0}, {6837,55761,0},{6840,55758,0},{6842,55746,0},{6845,55746,0},{6850,55734,0}, {6853,55736,0},{6853,55746,0},{6855,55751,0},{6852,55766,0},{6845,55773,0}, {6842,55783,0},{6842,55786,0},{6845,55784,0},{6845,55774,0},{6850,55779,0}, {6850,55798,0},{6847,55808,0},{6843,55814,0},{6838,55826,0},{6838,55819,0}, {6837,55819,0},{6835,55836,0},{6828,55836,0},{6830,55831,0},{6828,55828,0}, {6827,55828,0},{6827,55834,0},{6823,55844,0},{6827,55856,0},{6828,55856,0}, {6828,55869,0},{6827,55869,0},{6825,55874,0},{6822,55866,0},{6818,55873,0}, {6825,55874,0},{6832,55894,0},{6827,55889,0},{6820,55884,0},{6813,55873,0}, {6812,55874,0},{6810,55868,0},{6808,55868,0},{6807,55856,0},{6803,55854,0}, {6802,55859,0},{6802,55868,0},{6805,55871,0},{6807,55874,0},{6803,55883,0}, {6803,55891,0},{6808,55888,0},{6808,55881,0},{6815,55889,0},{6820,55906,0}, {6825,55936,0},{6830,55946,0},{6815,55928,0},{6810,55934,0},{6782,55914,0}, {6773,55918,0},{6770,55914,0},{6768,55916,0},{6770,55919,0},{6762,55918,0}, {6763,55909,0},{6770,55904,0},{6760,55903,0},{6757,55898,0},{6755,55889,0}, {6753,55893,0},{6747,55889,0},{6750,55894,0},{6747,55899,0},{6745,55898,0}, {6743,55903,0},{6745,55906,0},{6742,55916,0},{6743,55919,0},{6747,55926,0}, {6743,55929,0},{6733,55919,0},{6732,55913,0},{6725,55911,0},{6725,55921,0}, {6725,55923,0},{6722,55924,0},{6725,55934,0},{6728,55943,0},{6728,55946,0}, {6738,55963,0},{6733,55968,0},{6733,55973,0},{6738,55976,0},{6735,55984,0}, {6730,55979,0},{6717,55953,0},{6718,55961,0},{6723,55971,0},{6720,55971,0}, {6722,55981,0},{6720,55988,0},{6713,55989,0},{6715,55993,0},{6720,55993,0}, {6715,55998,0},{6712,55999,0},{6707,55994,0},{6703,56003,0},{6697,56001,0}, {6693,55983,0},{6695,55973,0},{6698,55976,0},{6698,55974,0},{6695,55953,0}, {6695,55943,0},{6700,55941,0},{6702,55936,0},{6707,55941,0},{6702,55931,0}, {6697,55934,0},{6695,55924,0},{6697,55921,0},{6698,55924,0},{6698,55923,0}, {6698,55918,0},{6700,55908,0},{6705,55909,0},{6707,55906,0},{6707,55899,0}, {6708,55898,0},{6707,55891,0},{6703,55894,0},{6700,55896,0},{6697,55908,0}, {6692,55913,0},{6690,55921,0},{6683,55926,0},{6675,55951,0},{6665,55958,0}, {6658,55954,0},{6665,55964,0},{6668,55973,0},{6673,55971,0},{6673,55968,0}, {6670,55969,0},{6667,55964,0},{6668,55959,0},{6673,55958,0},{6682,55946,0}, {6685,55936,0},{6690,55928,0},{6693,55928,0},{6695,55934,0},{6692,55948,0}, {6693,55953,0},{6693,55959,0},{6690,55964,0},{6692,55976,0},{6690,55984,0}, {6693,55993,0},{6693,55994,0},{6688,56004,0},{6693,56011,0},{6697,56014,0}, {6698,56013,0},{6700,56006,0},{6703,56008,0},{6707,56001,0},{6710,56004,0}, {6715,56001,0},{6722,56009,0},{6727,56011,0},{6727,56018,0},{6728,56019,0}, {6735,56003,0},{6743,55998,0},{6745,55994,0},{6750,56003,0},{6753,56004,0}, {6763,55989,0},{6765,55981,0},{6768,55978,0},{6770,55966,0},{6773,55964,0}, {6778,55973,0},{6778,55978,0},{6782,55983,0},{6787,55983,0},{6790,55978,0}, {6802,55994,0},{6805,55993,0},{6807,55989,0},{6807,56001,0},{6807,56008,0}, {6808,56011,0},{6808,56014,0},{6805,56013,0},{6803,56009,0},{6807,56018,0}, {6808,56026,0},{6805,56034,0},{6803,56049,0},{6807,56064,0},{6810,56066,0}, {6815,56078,0},{6827,56116,0},{6837,56114,0},{6842,56124,0},{6847,56139,0}, {6852,56169,0},{6855,56176,0},{6855,56181,0},{6860,56183,0},{6863,56199,0}, {6862,56179,0},{6863,56171,0},{6862,56161,0},{6872,56169,0},{6875,56166,0}, {6877,56173,0},{6880,56173,0},{6885,56179,0},{6890,56171,0},{6897,56171,0}, {6897,56163,0},{6897,56149,0},{6900,56153,0},{6900,56146,0},{6907,56156,0}, {6903,56143,0},{6903,56146,0},{6900,56141,0},{6897,56143,0},{6890,56129,0}, {6887,56129,0},{6887,56133,0},{6885,56128,0},{6883,56133,0},{6885,56138,0}, {6888,56143,0},{6885,56143,0},{6888,56154,0},{6877,56128,0},{6875,56114,0}, {6875,56111,0},{6872,56094,0},{6873,56089,0},{6872,56084,0},{6875,56079,0}, {6875,56073,0},{6888,56081,0},{6890,56078,0},{6892,56079,0},{6897,56076,0}, {6897,56083,0},{6897,56088,0},{6893,56089,0},{6897,56096,0},{6902,56101,0}, {6903,56106,0},{6903,56114,0},{6905,56121,0},{6908,56118,0},{6910,56119,0}, {6915,56136,0},{6912,56113,0},{6915,56103,0},{6925,56106,0},{6927,56109,0}, {6930,56104,0},{6932,56108,0},{6937,56134,0},{6935,56146,0},{6935,56148,0}, {6935,56156,0},{6940,56161,0},{6945,56179,0},{6943,56183,0},{6932,56161,0}, {6932,56156,0},{6925,56148,0},{6927,56154,0},{6922,56148,0},{6922,56149,0}, {6922,56154,0},{6918,56151,0},{6917,56153,0},{6925,56173,0},{6928,56176,0}, {6932,56189,0},{6935,56193,0},{6938,56199,0},{6935,56186,0},{6937,56183,0}, {6937,56178,0},{6948,56193,0},{6953,56178,0},{6952,56164,0},{6948,56158,0}, {6948,56154,0},{6948,56151,0},{6943,56146,0},{6943,56121,0},{6945,56106,0}, {6948,56099,0},{6955,56086,0},{6965,56079,0},{6963,56073,0},{6968,56073,0}, {6967,56061,0},{6962,56063,0},{6957,56053,0},{6958,56041,0},{6960,56039,0}, {6960,56036,0},{6962,56034,0},{6962,56026,0},{6962,56021,0},{6968,56001,0}, {6968,55996,0},{6973,55978,0},{6978,55971,0},{6978,55963,0},{6973,55958,0}, {6977,55953,0},{6978,55954,0},{6978,55958,0},{6980,55956,0},{6980,55951,0}, {6977,55949,0},{6980,55943,0},{6978,55939,0},{6980,55936,0},{6983,55929,0}, {6987,55916,0},{6988,55921,0},{6987,55924,0},{6987,55928,0},{6990,55924,0}, {6992,55928,0},{6992,55924,0},{6995,55926,0},{6997,55918,0},{6997,55911,0}, {7013,55883,0},{7023,55879,0},{7032,55881,0},{7042,55893,0},{7042,55903,0}, {7048,55904,0},{7057,55911,0},{7053,55918,0},{7053,55921,0},{7057,55923,0}, {7058,55929,0},{7055,55944,0},{7053,55956,0},{7053,55958,0},{7055,55956,0}, {7058,55938,0},{7062,55929,0},{7065,55931,0},{7072,55954,0},{7070,55946,0}, {7065,55924,0},{7062,55919,0},{7068,55898,0},{7072,55894,0},{7073,55893,0}, {7080,55874,0},{7095,55884,0},{7103,55886,0},{7105,55894,0},{7108,55899,0}, {7112,55894,0},{7108,55894,0},{7108,55888,0},{7113,55879,0},{7117,55891,0}, {7115,55898,0},{7120,55889,0},{7125,55893,0},{7128,55886,0},{7130,55893,0}, {7130,55906,0},{7138,55916,0},{7142,55931,0},{7138,55946,0},{7135,55949,0}, {7128,55969,0},{7128,55983,0},{7132,55984,0},{7135,55978,0},{7135,55988,0}, {7137,55993,0},{7143,55981,0},{7152,55998,0},{7148,55986,0},{7152,55954,0}, {7155,55941,0},{7158,55948,0},{7162,55946,0},{7163,55964,0},{7167,55969,0}, {7167,55974,0},{7172,55986,0},{7172,56009,0},{7177,56008,0},{7183,56013,0}, {7185,56048,0},{7183,56064,0},{7187,56074,0},{7183,56061,0},{7185,56049,0}, {7183,56016,0},{7187,56011,0},{7195,56014,0},{7198,56041,0},{7200,56079,0}, {7198,56088,0},{7195,56088,0},{7195,56096,0},{7192,56098,0},{7190,56086,0}, {7188,56091,0},{7185,56089,0},{7185,56079,0},{7182,56071,0},{7178,56076,0}, {7175,56074,0},{7175,56083,0},{7182,56088,0},{7178,56091,0},{7182,56096,0}, {7180,56101,0},{7175,56096,0},{7167,56094,0},{7178,56116,0},{7175,56121,0}, {7178,56133,0},{7175,56139,0},{7175,56148,0},{7178,56156,0},{7177,56163,0}, {7175,56166,0},{7172,56166,0},{7165,56154,0},{7157,56174,0},{7153,56194,0}, {7150,56199,0},{7147,56213,0},{7137,56221,0},{7137,56231,0},{7133,56239,0}, {7132,56236,0},{7128,56243,0},{7122,56243,0},{7115,56251,0},{7107,56248,0}, {7103,56251,0},{7090,56246,0},{7085,56251,0},{7083,56241,0},{7085,56239,0}, {7088,56233,0},{7087,56233,0},{7082,56241,0},{7080,56254,0},{7077,56268,0}, {7075,56268,0},{7073,56271,0},{7072,56264,0},{7072,56273,0},{7067,56268,0}, {7067,56293,0},{7063,56303,0},{7062,56306,0},{7058,56303,0},{7057,56306,0}, {7062,56311,0},{7058,56319,0},{7057,56319,0},{7057,56311,0},{7055,56309,0}, {7050,56318,0},{7048,56308,0},{7047,56321,0},{7047,56324,0},{7043,56323,0}, {7043,56329,0},{7040,56333,0},{7038,56336,0},{7032,56336,0},{7030,56328,0}, {7030,56336,0},{7028,56336,0},{7025,56341,0},{7030,56344,0},{7030,56349,0}, {7035,56346,0},{7037,56351,0},{7033,56358,0},{7037,56363,0},{7035,56366,0}, {7032,56368,0},{7030,56363,0},{7020,56366,0},{7023,56373,0},{7017,56384,0}, {7015,56384,0},{7013,56376,0},{7013,56354,0},{7012,56341,0},{7013,56333,0}, {7017,56323,0},{7018,56313,0},{7025,56308,0},{7023,56306,0},{7023,56299,0}, {7022,56309,0},{7018,56308,0},{7017,56288,0},{7017,56294,0},{7015,56298,0}, {7013,56293,0},{7008,56288,0},{7008,56278,0},{7007,56284,0},{7005,56288,0}, {7008,56293,0},{7008,56309,0},{7008,56328,0},{7005,56336,0},{7002,56343,0}, {6998,56333,0},{6998,56329,0},{6990,56314,0},{6990,56309,0},{6988,56311,0}, {6983,56293,0},{6982,56289,0},{6980,56281,0},{6977,56279,0},{6977,56274,0}, {6978,56271,0},{6977,56271,0},{6970,56249,0},{6970,56283,0},{6970,56269,0}, {6967,56263,0},{6968,56251,0},{6968,56244,0},{6967,56244,0},{6965,56269,0}, {6967,56273,0},{6970,56286,0},{6968,56296,0},{6970,56299,0},{6970,56303,0}, {6967,56299,0},{6967,56308,0},{6963,56318,0},{6962,56328,0},{6963,56306,0}, {6955,56324,0},{6953,56336,0},{6948,56356,0},{6952,56356,0},{6953,56364,0}, {6955,56363,0},{6955,56371,0},{6958,56378,0},{6962,56376,0},{6965,56386,0}, {6967,56388,0},{6967,56399,0},{6965,56403,0},{6965,56408,0},{6963,56411,0}, {6965,56416,0},{6965,56419,0},{6963,56419,0},{6963,56426,0},{6962,56426,0}, {6962,56414,0},{6955,56403,0},{6953,56384,0},{6952,56379,0},{6950,56381,0}, {6953,56389,0},{6952,56403,0},{6953,56404,0},{6957,56416,0},{6952,56426,0}, {6953,56436,0},{6952,56439,0},{6953,56448,0},{6948,56448,0},{6948,56461,0}, {6953,56464,0},{6950,56488,0},{6945,56499,0},{6945,56506,0},{6943,56496,0}, {6945,56489,0},{6942,56481,0},{6943,56474,0},{6945,56474,0},{6945,56466,0}, {6942,56473,0},{6942,56478,0},{6938,56466,0},{6940,56463,0},{6937,56456,0}, {6925,56454,0},{6925,56443,0},{6927,56446,0},{6927,56439,0},{6930,56444,0}, {6927,56429,0},{6928,56426,0},{6930,56436,0},{6935,56441,0},{6930,56428,0}, {6928,56416,0},{6935,56391,0},{6923,56426,0},{6922,56434,0},{6915,56446,0}, {6908,56469,0},{6900,56464,0},{6898,56476,0},{6893,56478,0},{6892,56473,0}, {6892,56483,0},{6887,56493,0},{6885,56488,0},{6885,56494,0},{6883,56493,0}, {6883,56483,0},{6880,56476,0},{6882,56493,0},{6880,56489,0},{6878,56491,0}, {6878,56484,0},{6875,56483,0},{6870,56488,0},{6867,56486,0},{6862,56479,0}, {6860,56486,0},{6857,56483,0},{6853,56489,0},{6845,56476,0},{6842,56481,0}, {6837,56504,0},{6833,56488,0},{6835,56501,0},{6833,56504,0},{6830,56504,0}, {6823,56511,0},{6823,56516,0},{6825,56524,0},{6832,56519,0},{6835,56533,0}, {6840,56538,0},{6843,56536,0},{6845,56546,0},{6847,56544,0},{6848,56549,0}, {6853,56553,0},{6853,56556,0},{6855,56544,0},{6860,56541,0},{6867,56546,0}, {6867,56553,0},{6872,56556,0},{6867,56561,0},{6862,56559,0},{6865,56564,0}, {6870,56563,0},{6882,56568,0},{6883,56563,0},{6885,56564,0},{6895,56561,0}, {6902,56566,0},{6912,56588,0},{6918,56596,0},{6922,56598,0},{6925,56604,0}, {6928,56623,0},{6923,56641,0},{6915,56649,0},{6910,56658,0},{6892,56716,0}, {6877,56739,0},{6865,56744,0},{6860,56741,0},{6848,56748,0},{6847,56753,0}, {6843,56753,0},{6840,56758,0},{6833,56758,0},{6825,56751,0},{6820,56743,0}, {6823,56736,0},{6823,56719,0},{6837,56716,0},{6832,56706,0},{6828,56696,0}, {6812,56708,0},{6807,56703,0},{6805,56703,0},{6803,56698,0},{6780,56709,0}, {6773,56719,0},{6768,56719,0},{6765,56724,0},{6762,56739,0},{6740,56776,0}, {6737,56788,0},{6727,56791,0},{6727,56801,0},{6725,56799,0},{6718,56786,0}, {6712,56784,0},{6717,56793,0},{6718,56799,0},{6717,56804,0},{6710,56806,0}, {6712,56808,0},{6722,56813,0},{6722,56818,0},{6723,56819,0},{6722,56824,0}, {6718,56824,0},{6722,56829,0},{6725,56831,0},{6723,56836,0},{6725,56839,0}, {6728,56836,0},{6730,56836,0},{6732,56831,0},{6735,56828,0},{6735,56834,0}, {6732,56839,0},{6735,56839,0},{6740,56849,0},{6742,56856,0},{6742,56859,0}, {6735,56871,0},{6740,56874,0},{6740,56876,0},{6735,56876,0},{6735,56884,0}, {6743,56883,0},{6747,56889,0},{6750,56886,0},{6760,56891,0},{6768,56884,0}, {6783,56899,0},{6795,56923,0},{6802,56923,0},{6802,56926,0},{6798,56926,0}, {6805,56946,0},{6810,56944,0},{6813,56951,0},{6818,56948,0},{6818,56953,0}, {6822,56958,0},{6823,56951,0},{6830,56956,0},{6832,56951,0},{6833,56958,0}, {6840,56964,0},{6843,56961,0},{6845,56969,0},{6847,56961,0},{6850,56964,0}, {6862,56961,0},{6873,56969,0},{6875,56973,0},{6873,56981,0},{6873,56988,0}, {6877,56989,0},{6878,56979,0},{6878,56984,0},{6877,56999,0},{6873,56998,0}, {6872,57013,0},{6872,57014,0},{6875,57009,0},{6875,57013,0},{6875,57023,0}, {6875,57041,0},{6873,57058,0},{6877,57061,0},{6882,57053,0},{6880,57036,0}, {6882,57028,0},{6883,57019,0},{6887,57018,0},{6888,57036,0},{6890,57029,0}, {6893,57036,0},{6893,57024,0},{6895,57023,0},{6895,57039,0},{6893,57054,0}, {6895,57056,0},{6898,57043,0},{6900,57038,0},{6902,57041,0},{6900,57051,0}, {6902,57051,0},{6903,57054,0},{6902,57059,0},{6900,57078,0},{6902,57083,0}, {6903,57063,0},{6908,57059,0},{6907,57048,0},{6908,57041,0},{6912,57039,0}, {6912,57034,0},{6913,57039,0},{6915,57036,0},{6912,57024,0},{6915,57026,0}, {6917,57036,0},{6917,57019,0},{6915,57018,0},{6913,57014,0},{6915,57006,0}, {6917,57006,0},{6918,57016,0},{6920,56998,0},{6922,56998,0},{6927,56989,0}, {6932,56986,0},{6930,56996,0},{6932,57003,0},{6933,56991,0},{6937,56993,0}, {6940,56986,0},{6942,56989,0},{6942,56998,0},{6945,56994,0},{6943,57003,0}, {6947,56996,0},{6947,56993,0},{6943,56988,0},{6945,56983,0},{6952,56983,0}, {6955,56989,0},{6957,56988,0},{6957,56998,0},{6963,56983,0},{6965,56981,0}, {6970,56993,0},{6973,56993,0},{6977,56984,0},{6978,56994,0},{6978,56998,0}, {6975,56996,0},{6978,57003,0},{6982,56999,0},{6983,56978,0},{6987,56979,0}, {6985,56999,0},{6977,57029,0},{6980,57031,0},{6982,57049,0},{6985,57048,0}, {6983,57061,0},{6987,57081,0},{6985,57101,0},{6983,57108,0},{6982,57123,0}, {6978,57126,0},{6975,57139,0},{6970,57163,0},{6968,57201,0},{6970,57211,0}, {6968,57236,0},{6968,57243,0},{6968,57269,0},{6970,57268,0},{6968,57278,0}, {6965,57286,0},{6963,57309,0},{6962,57296,0},{6963,57289,0},{6965,57278,0}, {6963,57274,0},{6962,57276,0},{6962,57271,0},{6958,57281,0},{6958,57261,0}, {6957,57274,0},{6950,57288,0},{6952,57273,0},{6952,57238,0},{6955,57213,0}, {6953,57206,0},{6950,57258,0},{6940,57313,0},{6938,57313,0},{6938,57306,0}, {6940,57298,0},{6930,57321,0},{6928,57321,0},{6928,57311,0},{6927,57313,0}, {6925,57308,0},{6923,57311,0},{6925,57333,0},{6927,57331,0},{6927,57336,0}, {6927,57366,0},{6923,57376,0},{6920,57386,0},{6920,57394,0},{6920,57399,0}, {6918,57403,0},{6908,57409,0},{6907,57389,0},{6900,57379,0},{6898,57374,0}, {6898,57368,0},{6895,57364,0},{6890,57338,0},{6887,57331,0},{6892,57354,0}, {6890,57358,0},{6890,57369,0},{6887,57376,0},{6883,57379,0},{6887,57388,0}, {6888,57394,0},{6887,57398,0},{6877,57413,0},{6875,57409,0},{6863,57409,0}, {6850,57373,0},{6852,57354,0},{6847,57353,0},{6845,57344,0},{6842,57339,0}, {6843,57334,0},{6850,57328,0},{6853,57311,0},{6852,57311,0},{6848,57318,0}, {6845,57314,0},{6848,57291,0},{6853,57281,0},{6852,57274,0},{6850,57273,0}, {6848,57278,0},{6845,57288,0},{6843,57281,0},{6843,57271,0},{6840,57273,0}, {6840,57286,0},{6835,57301,0},{6832,57301,0},{6832,57288,0},{6830,57288,0}, {6827,57298,0},{6828,57309,0},{6823,57309,0},{6817,57301,0},{6815,57304,0}, {6812,57318,0},{6815,57326,0},{6822,57331,0},{6820,57338,0},{6812,57333,0}, {6810,57324,0},{6808,57328,0},{6800,57319,0},{6790,57326,0},{6785,57339,0}, {6782,57343,0},{6780,57356,0},{6778,57353,0},{6777,57353,0},{6773,57366,0}, {6767,57376,0},{6762,57393,0},{6747,57411,0},{6743,57413,0},{6738,57406,0}, {6730,57401,0},{6708,57394,0},{6707,57393,0},{6705,57386,0},{6700,57386,0}, {6698,57383,0},{6700,57374,0},{6700,57371,0},{6697,57364,0},{6700,57353,0}, {6697,57338,0},{6692,57331,0},{6690,57334,0},{6685,57328,0},{6683,57328,0}, {6677,57318,0},{6672,57321,0},{6673,57301,0},{6672,57298,0},{6670,57298,0}, {6667,57289,0},{6665,57288,0},{6662,57281,0},{6657,57276,0},{6655,57234,0}, {6650,57234,0},{6647,57231,0},{6647,57224,0},{6640,57213,0},{6635,57196,0}, {6635,57186,0},{6635,57178,0},{6637,57179,0},{6640,57171,0},{6643,57173,0}, {6643,57176,0},{6638,57181,0},{6640,57183,0},{6648,57171,0},{6652,57169,0}, {6655,57151,0},{6660,57146,0},{6657,57141,0},{6658,57138,0},{6670,57134,0}, {6670,57138,0},{6670,57144,0},{6665,57146,0},{6668,57151,0},{6672,57141,0}, {6677,57141,0},{6677,57144,0},{6682,57148,0},{6688,57144,0},{6682,57141,0}, {6678,57131,0},{6677,57133,0},{6675,57126,0},{6672,57126,0},{6670,57123,0}, {6673,57106,0},{6675,57104,0},{6678,57109,0},{6680,57096,0},{6682,57093,0}, {6683,57113,0},{6687,57098,0},{6690,57094,0},{6692,57098,0},{6693,57088,0}, {6698,57078,0},{6697,57094,0},{6697,57099,0},{6703,57053,0},{6707,57044,0}, {6705,57043,0},{6703,57046,0},{6703,57043,0},{6700,57053,0},{6698,57049,0}, {6700,57058,0},{6698,57073,0},{6697,57031,0},{6692,57014,0},{6690,57021,0}, {6687,57013,0},{6683,57024,0},{6685,57029,0},{6685,57041,0},{6690,57046,0}, {6692,57036,0},{6692,57048,0},{6695,57051,0},{6695,57063,0},{6693,57063,0}, {6693,57074,0},{6692,57074,0},{6690,57079,0},{6690,57061,0},{6687,57078,0}, {6682,57086,0},{6685,57069,0},{6683,57068,0},{6682,57074,0},{6682,57084,0}, {6678,57091,0},{6677,57104,0},{6672,57091,0},{6670,57101,0},{6668,57104,0}, {6670,57111,0},{6668,57121,0},{6665,57121,0},{6658,57114,0},{6643,57146,0}, {6632,57149,0},{6630,57158,0},{6627,57159,0},{6622,57168,0},{6618,57166,0}, {6615,57151,0},{6620,57158,0},{6622,57156,0},{6620,57139,0},{6622,57138,0}, {6627,57123,0},{6630,57121,0},{6632,57116,0},{6630,57104,0},{6628,57104,0}, {6628,57099,0},{6637,57093,0},{6638,57089,0},{6638,57084,0},{6640,57084,0}, {6633,57073,0},{6622,57096,0},{6615,57099,0},{6617,57089,0},{6620,57081,0}, {6622,57073,0},{6620,57063,0},{6627,57049,0},{6625,57038,0},{6627,57033,0}, {6628,57028,0},{6632,57024,0},{6627,57018,0},{6627,57013,0},{6632,57006,0}, {6648,57001,0},{6658,56988,0},{6657,56978,0},{6650,56951,0},{6652,56948,0}, {6650,56923,0},{6652,56914,0},{6652,56908,0},{6655,56903,0},{6652,56898,0}, {6655,56879,0},{6655,56876,0},{6652,56878,0},{6650,56874,0},{6653,56859,0}, {6652,56858,0},{6643,56873,0},{6645,56856,0},{6643,56854,0},{6632,56873,0}, {6628,56903,0},{6618,56944,0},{6615,56946,0},{6610,56934,0},{6608,56938,0}, {6603,56939,0},{6598,56924,0},{6598,56916,0},{6593,56913,0},{6590,56903,0}, {6590,56894,0},{6580,56886,0},{6578,56891,0},{6575,56891,0},{6567,56881,0}, {6567,56873,0},{6565,56868,0},{6555,56853,0},{6553,56838,0},{6552,56838,0}, {6548,56834,0},{6548,56828,0},{6545,56824,0},{6543,56824,0},{6542,56829,0}, {6540,56828,0},{6540,56819,0},{6537,56814,0},{6532,56796,0},{6533,56766,0}, {6532,56749,0},{6535,56731,0},{6540,56714,0},{6550,56703,0},{6558,56679,0}, {6560,56671,0},{6563,56653,0},{6563,56678,0},{6562,56691,0},{6563,56694,0}, {6568,56658,0},{6570,56651,0},{6570,56646,0},{6568,56643,0},{6568,56638,0}, {6573,56624,0},{6578,56619,0},{6582,56604,0},{6583,56603,0},{6587,56593,0}, {6587,56589,0},{6585,56588,0},{6585,56584,0},{6588,56584,0},{6593,56569,0}, {6595,56536,0},{6592,56548,0},{6587,56563,0},{6583,56563,0},{6582,56559,0}, {6588,56529,0},{6587,56509,0},{6587,56494,0},{6588,56493,0},{6590,56496,0}, {6590,56513,0},{6592,56513,0},{6590,56479,0},{6592,56448,0},{6595,56424,0}, {6595,56418,0},{6597,56404,0},{6595,56386,0},{6588,56403,0},{6588,56409,0}, {6580,56434,0},{6582,56436,0},{6590,56424,0},{6592,56428,0},{6588,56463,0}, {6588,56481,0},{6578,56539,0},{6572,56561,0},{6563,56578,0},{6560,56589,0}, {6550,56596,0},{6543,56619,0},{6533,56631,0},{6530,56663,0},{6532,56671,0}, {6530,56679,0},{6527,56699,0},{6528,56724,0},{6527,56729,0},{6528,56741,0}, {6527,56759,0},{6527,56763,0},{6528,56763,0},{6528,56776,0},{6527,56779,0}, {6527,56801,0},{6523,56833,0},{6520,56831,0},{6515,56843,0},{6510,56836,0}, {6505,56839,0},{6500,56824,0},{6497,56828,0},{6488,56813,0},{6480,56806,0}, {6477,56806,0},{6475,56799,0},{6470,56791,0},{6475,56788,0},{6472,56784,0}, {6463,56784,0},{6457,56778,0},{6452,56766,0},{6452,56756,0},{6445,56751,0}, {6435,56748,0},{6425,56731,0},{6423,56731,0},{6422,56736,0},{6418,56738,0}, {6417,56731,0},{6413,56724,0},{6413,56713,0},{6405,56689,0},{6405,56681,0}, {6402,56681,0},{6400,56668,0},{6398,56669,0},{6397,56663,0},{6398,56653,0}, {6398,56651,0},{6402,56646,0},{6398,56644,0},{6398,56636,0},{6400,56636,0}, {6407,56621,0},{6417,56609,0},{6413,56608,0},{6397,56626,0},{6397,56633,0}, {6395,56633,0},{6395,56621,0},{6397,56623,0},{6397,56618,0},{6402,56609,0}, {6397,56611,0},{6403,56599,0},{6402,56593,0},{6403,56589,0},{6407,56586,0}, {6408,56581,0},{6402,56579,0},{6395,56588,0},{6408,56566,0},{6403,56564,0}, {6410,56554,0},{6413,56554,0},{6415,56563,0},{6423,56561,0},{6425,56558,0}, {6420,56554,0},{6420,56548,0},{6417,56554,0},{6415,56554,0},{6415,56548,0}, {6417,56544,0},{6415,56536,0},{6413,56524,0},{6410,56533,0},{6412,56534,0}, {6412,56538,0},{6410,56544,0},{6408,56541,0},{6405,56541,0},{6405,56546,0}, {6402,56551,0},{6402,56544,0},{6400,56544,0},{6398,56553,0},{6393,56554,0}, {6392,56553,0},{6393,56548,0},{6392,56543,0},{6393,56536,0},{6393,56541,0}, {6397,56541,0},{6398,56534,0},{6398,56533,0},{6397,56534,0},{6395,56526,0}, {6400,56519,0},{6400,56509,0},{6398,56514,0},{6392,56528,0},{6392,56524,0}, {6388,56526,0},{6382,56539,0},{6377,56538,0},{6378,56524,0},{6375,56531,0}, {6372,56526,0},{6370,56526,0},{6370,56523,0},{6365,56519,0},{6363,56521,0}, {6360,56511,0},{6362,56508,0},{6363,56514,0},{6365,56508,0},{6362,56501,0}, {6362,56491,0},{6363,56488,0},{6365,56491,0},{6367,56481,0},{6367,56488,0}, {6370,56474,0},{6368,56473,0},{6365,56466,0},{6365,56474,0},{6368,56476,0}, {6365,56481,0},{6363,56481,0},{6360,56479,0},{6362,56476,0},{6360,56469,0}, {6358,56464,0},{6357,56451,0},{6358,56438,0},{6362,56429,0},{6362,56428,0}, {6363,56421,0},{6363,56413,0},{6365,56406,0},{6367,56398,0},{6368,56396,0}, {6368,56403,0},{6368,56401,0},{6373,56383,0},{6372,56378,0},{6372,56369,0}, {6373,56368,0},{6375,56371,0},{6377,56368,0},{6377,56364,0},{6373,56361,0}, {6375,56344,0},{6378,56338,0},{6380,56348,0},{6382,56339,0},{6382,56336,0}, {6378,56336,0},{6377,56331,0},{6375,56331,0},{6375,56323,0},{6377,56313,0}, {6378,56298,0},{6383,56286,0},{6385,56266,0},{6387,56261,0},{6388,56259,0}, {6390,56244,0},{6393,56239,0},{6393,56228,0},{6398,56214,0},{6398,56208,0}, {6402,56193,0},{6407,56184,0},{6410,56174,0},{6412,56173,0},{6415,56174,0}, {6417,56166,0},{6418,56158,0},{6413,56169,0},{6408,56169,0},{6402,56181,0}, {6400,56176,0},{6400,56181,0},{6398,56178,0},{6398,56159,0},{6395,56159,0}, {6395,56166,0},{6388,56171,0},{6383,56184,0},{6383,56193,0},{6380,56203,0}, {6385,56198,0},{6383,56206,0},{6383,56214,0},{6385,56214,0},{6387,56203,0}, {6393,56191,0},{6393,56194,0},{6397,56191,0},{6397,56194,0},{6388,56226,0}, {6387,56236,0},{6383,56244,0},{6383,56261,0},{6377,56274,0},{6382,56283,0}, {6380,56293,0},{6373,56296,0},{6373,56313,0},{6372,56321,0},{6370,56326,0}, {6368,56316,0},{6365,56316,0},{6365,56319,0},{6362,56309,0},{6363,56306,0}, {6365,56303,0},{6358,56296,0},{6355,56283,0},{6352,56289,0},{6355,56293,0}, {6355,56301,0},{6357,56304,0},{6353,56313,0},{6362,56316,0},{6362,56324,0}, {6365,56329,0},{6363,56333,0},{6368,56339,0},{6372,56353,0},{6372,56359,0}, {6365,56374,0},{6358,56376,0},{6358,56384,0},{6355,56388,0},{6352,56398,0}, {6348,56398,0},{6348,56406,0},{6350,56409,0},{6348,56421,0},{6345,56429,0}, {6347,56434,0},{6340,56458,0},{6340,56448,0},{6342,56441,0},{6342,56439,0}, {6338,56443,0},{6335,56458,0},{6335,56468,0},{6333,56468,0},{6332,56461,0}, {6328,56463,0},{6328,56466,0},{6325,56464,0},{6322,56468,0},{6318,56466,0}, {6318,56463,0},{6315,56469,0},{6312,56468,0},{6308,56471,0},{6308,56468,0}, {6307,56473,0},{6303,56471,0},{6303,56466,0},{6302,56464,0},{6300,56468,0}, {6300,56461,0},{6297,56464,0},{6297,56458,0},{6293,56458,0},{6293,56429,0}, {6292,56419,0},{6285,56414,0},{6283,56404,0},{6282,56394,0},{6280,56401,0}, {6278,56401,0},{6278,56386,0},{6282,56364,0},{6283,56349,0},{6287,56324,0}, {6285,56323,0},{6282,56328,0},{6280,56326,0},{6285,56303,0},{6282,56291,0}, {6278,56291,0},{6272,56303,0},{6268,56314,0},{6268,56308,0},{6265,56318,0}, {6265,56341,0},{6262,56348,0},{6258,56346,0},{6255,56339,0},{6253,56341,0}, {6253,56331,0},{6255,56328,0},{6255,56319,0},{6257,56318,0},{6258,56321,0}, {6260,56319,0},{6260,56309,0},{6257,56311,0},{6257,56303,0},{6253,56303,0}, {6253,56298,0},{6255,56288,0},{6258,56291,0},{6260,56288,0},{6257,56286,0}, {6262,56278,0},{6262,56274,0},{6253,56283,0},{6250,56279,0},{6250,56286,0}, {6248,56286,0},{6248,56283,0},{6245,56283,0},{6247,56274,0},{6247,56264,0}, {6245,56263,0},{6238,56264,0},{6237,56268,0},{6235,56254,0},{6235,56264,0}, {6232,56276,0},{6227,56276,0},{6225,56273,0},{6222,56278,0},{6218,56279,0}, {6215,56288,0},{6217,56279,0},{6215,56276,0},{6222,56274,0},{6223,56268,0}, {6227,56266,0},{6228,56261,0},{6235,56218,0},{6237,56211,0},{6235,56218,0}, {6233,56229,0},{6228,56239,0},{6228,56244,0},{6227,56246,0},{6225,56253,0}, {6222,56259,0},{6218,56258,0},{6218,56249,0},{6220,56246,0},{6218,56243,0}, {6220,56236,0},{6217,56238,0},{6217,56229,0},{6215,56224,0},{6213,56224,0}, {6210,56228,0},{6213,56234,0},{6210,56243,0},{6207,56238,0},{6208,56229,0}, {6203,56228,0},{6205,56221,0},{6202,56223,0},{6198,56219,0},{6203,56211,0}, {6205,56206,0},{6205,56203,0},{6202,56206,0},{6203,56194,0},{6195,56214,0}, {6195,56198,0},{6192,56206,0},{6190,56208,0},{6188,56206,0},{6193,56184,0}, {6195,56174,0},{6188,56188,0},{6188,56176,0},{6185,56174,0},{6185,56186,0}, {6183,56188,0},{6182,56201,0},{6180,56193,0},{6178,56198,0},{6178,56211,0}, {6175,56211,0},{6175,56199,0},{6177,56191,0},{6175,56191,0},{6172,56194,0}, {6172,56204,0},{6168,56191,0},{6168,56184,0},{6163,56171,0},{6155,56158,0}, {6157,56153,0},{6152,56149,0},{6145,56138,0},{6142,56143,0},{6140,56139,0}, {6138,56149,0},{6135,56154,0},{6132,56151,0},{6130,56143,0},{6132,56124,0}, {6127,56134,0},{6122,56136,0},{6122,56134,0},{6120,56134,0},{6117,56126,0}, {6115,56133,0},{6112,56129,0},{6112,56136,0},{6110,56138,0},{6107,56123,0}, {6090,56113,0},{6087,56101,0},{6077,56094,0},{6072,56096,0},{6063,56086,0}, {6055,56084,0},{6052,56078,0},{6053,56069,0},{6053,56063,0},{6052,56071,0}, {6050,56071,0},{6050,56056,0},{6047,56068,0},{6038,56074,0},{6027,56066,0}, {6018,56069,0},{6013,56064,0},{6008,56066,0},{6007,56059,0},{6002,56061,0}, {6002,56056,0},{5998,56058,0},{5995,56054,0},{5993,56056,0},{5978,56059,0}, {5963,56054,0},{5957,56058,0},{5957,56059,0},{5955,56056,0},{5952,56058,0}, {5950,56061,0},{5945,56063,0},{5940,56063,0},{5937,56064,0},{5933,56063,0}, {5935,56068,0},{5935,56071,0},{5930,56059,0},{5908,56056,0},{5908,56043,0}, {5905,56036,0},{5907,56053,0},{5905,56056,0},{5902,56056,0},{5900,56064,0}, {5898,56068,0},{5893,56068,0},{5888,56063,0},{5883,56061,0},{5888,56071,0}, {5887,56078,0},{5883,56084,0},{5880,56088,0},{5872,56094,0},{5872,56103,0}, {5875,56108,0},{5878,56108,0},{5880,56116,0},{5873,56113,0},{5868,56116,0}, {5860,56108,0},{5848,56106,0},{5843,56108,0},{5840,56103,0},{5832,56103,0}, {5822,56099,0},{5840,56113,0},{5858,56111,0},{5867,56119,0},{5872,56119,0}, {5873,56123,0},{5877,56119,0},{5877,56124,0},{5877,56144,0},{5875,56149,0}, {5877,56153,0},{5877,56161,0},{5878,56164,0},{5877,56179,0},{5877,56186,0}, {5875,56189,0},{5872,56189,0},{5870,56196,0},{5875,56203,0},{5877,56213,0}, {5875,56216,0},{5873,56221,0},{5872,56219,0},{5868,56223,0},{5853,56223,0}, {5842,56231,0},{5822,56243,0},{5817,56251,0},{5815,56249,0},{5805,56256,0}, {5800,56256,0},{5787,56261,0},{5783,56258,0},{5782,56263,0},{5772,56269,0}, {5763,56276,0},{5755,56281,0},{5752,56286,0},{5745,56291,0},{5733,56294,0}, {5723,56293,0},{5705,56278,0},{5695,56264,0},{5690,56248,0},{5693,56268,0}, {5703,56289,0},{5707,56311,0},{5705,56314,0},{5698,56301,0},{5693,56289,0}, {5695,56294,0},{5697,56306,0},{5702,56313,0},{5703,56321,0},{5707,56341,0}, {5722,56413,0},{5727,56436,0},{5725,56454,0},{5723,56464,0},{5723,56476,0}, {5718,56486,0},{5720,56491,0},{5718,56498,0},{5717,56496,0},{5705,56529,0}, {5700,56541,0},{5692,56586,0},{5692,56599,0},{5687,56616,0},{5687,56628,0}, {5683,56631,0},{5687,56648,0},{5683,56649,0},{5683,56653,0},{5683,56654,0}, {5680,56653,0},{5675,56664,0},{5670,56671,0},{5665,56688,0},{5655,56701,0}, {5643,56738,0},{5638,56741,0},{5632,56751,0},{5620,56764,0},{5615,56766,0}, {5608,56778,0},{5603,56774,0},{5600,56774,0},{5605,56781,0},{5603,56788,0}, {5602,56788,0},{5600,56791,0},{5600,56801,0},{5595,56799,0},{5597,56804,0}, {5593,56828,0},{5593,56838,0},{5592,56841,0},{5590,56839,0},{5590,56849,0}, {5585,56868,0},{5582,56888,0},{5573,56908,0},{5570,56928,0},{5570,56941,0}, {5563,56954,0},{5563,56964,0},{5560,56968,0},{5557,56979,0},{5547,56986,0}, {5542,56996,0},{5535,57023,0},{5530,57024,0},{5527,57014,0},{5525,57014,0}, {5522,57009,0},{5515,57003,0},{5510,56996,0},{5507,56998,0},{5498,56994,0}, {5502,56999,0},{5513,57004,0},{5525,57016,0},{5528,57024,0},{5530,57036,0}, {5528,57051,0},{5525,57064,0},{5523,57076,0},{5528,57104,0},{5528,57118,0}, {5527,57126,0},{5532,57143,0},{5528,57153,0},{5525,57164,0},{5522,57163,0}, {5525,57168,0},{5523,57171,0},{5522,57176,0},{5518,57179,0},{5515,57178,0}, {5513,57179,0},{5515,57178,0},{5518,57181,0},{5523,57178,0},{5525,57168,0}, {5528,57166,0},{5527,57181,0},{5523,57188,0},{5522,57201,0},{5522,57213,0}, {5520,57218,0},{5523,57233,0},{5523,57239,0},{5522,57243,0},{5517,57246,0}, {5510,57241,0},{5515,57248,0},{5513,57258,0},{5515,57264,0},{5517,57269,0}, {5513,57281,0},{5517,57283,0},{5515,57291,0},{5512,57294,0},{5508,57296,0}, {5507,57304,0},{5510,57303,0},{5513,57304,0},{5517,57301,0},{5515,57306,0}, {5510,57311,0},{5503,57308,0},{5497,57311,0},{5493,57309,0},{5488,57311,0}, {5488,57314,0},{5485,57316,0},{5437,57293,0},{5422,57293,0},{5415,57299,0}, {5412,57298,0},{5412,57304,0},{5407,57311,0},{5382,57323,0},{5375,57323,0}, {5360,57314,0},{5358,57316,0},{5352,57314,0},{5342,57321,0},{5328,57324,0}, {5323,57316,0},{5322,57311,0},{5307,57306,0},{5298,57308,0},{5297,57306,0}, {5295,57309,0},{5293,57311,0},{5288,57326,0},{5278,57339,0},{5277,57338,0}, {5275,57339,0},{5268,57344,0},{5263,57354,0},{5252,57366,0},{5245,57381,0}, {5242,57379,0},{5235,57381,0},{5230,57388,0},{5232,57381,0},{5230,57373,0}, {5227,57363,0},{5225,57363,0},{5227,57358,0},{5225,57354,0},{5223,57349,0}, {5223,57354,0},{5218,57348,0},{5223,57363,0},{5223,57386,0},{5218,57393,0}, {5215,57394,0},{5210,57401,0},{5208,57409,0},{5203,57421,0},{5205,57426,0}, {5203,57429,0},{5200,57438,0},{5190,57444,0},{5188,57448,0},{5188,57454,0}, {5185,57454,0},{5180,57466,0},{5170,57478,0},{5152,57484,0},{5147,57493,0}, {5137,57493,0},{5128,57471,0},{5118,57461,0},{5115,57451,0},{5108,57446,0}, {5107,57439,0},{5103,57434,0},{5105,57443,0},{5103,57443,0},{5100,57441,0}, {5103,57444,0},{5112,57449,0},{5115,57466,0},{5128,57483,0},{5133,57496,0}, {5130,57514,0},{5130,57524,0},{5127,57528,0},{5125,57536,0},{5118,57548,0}, {5112,57563,0},{5105,57568,0},{5102,57573,0},{5087,57593,0},{5077,57601,0}, {5072,57603,0},{5078,57603,0},{5088,57594,0},{5098,57583,0},{5105,57568,0}, {5112,57564,0},{5118,57561,0},{5130,57568,0},{5140,57566,0},{5142,57574,0}, {5145,57578,0},{5147,57584,0},{5155,57581,0},{5157,57588,0},{5167,57603,0}, {5163,57613,0},{5157,57608,0},{5152,57609,0},{5152,57619,0},{5153,57623,0}, {5152,57626,0},{5147,57634,0},{5128,57643,0},{5123,57639,0},{5118,57646,0}, {5117,57651,0},{5123,57644,0},{5130,57646,0},{5135,57651,0},{5135,57654,0}, {5137,57648,0},{5140,57648,0},{5148,57659,0},{5148,57668,0},{5150,57664,0}, {5152,57654,0},{5160,57654,0},{5160,57658,0},{5162,57653,0},{5165,57648,0}, {5167,57641,0},{5170,57643,0},{5177,57633,0},{5180,57636,0},{5180,57644,0}, {5183,57653,0},{5193,57646,0},{5197,57661,0},{5202,57664,0},{5200,57666,0}, {5205,57666,0},{5205,57673,0},{5208,57671,0},{5208,57674,0},{5212,57678,0}, {5215,57679,0},{5218,57683,0},{5223,57681,0},{5225,57686,0},{5223,57696,0}, {5227,57689,0},{5227,57681,0},{5230,57681,0},{5235,57686,0},{5237,57686,0}, {5238,57683,0},{5242,57684,0},{5243,57681,0},{5247,57686,0},{5248,57683,0}, {5248,57679,0},{5250,57683,0},{5253,57678,0},{5252,57671,0},{5253,57671,0}, {5255,57668,0},{5253,57666,0},{5255,57664,0},{5257,57659,0},{5260,57668,0}, {5262,57663,0},{5262,57664,0},{5265,57664,0},{5265,57658,0},{5270,57661,0}, {5270,57654,0},{5272,57659,0},{5273,57658,0},{5275,57651,0},{5278,57653,0}, {5278,57664,0},{5282,57663,0},{5282,57659,0},{5282,57658,0},{5288,57668,0}, {5287,57656,0},{5288,57649,0},{5292,57646,0},{5293,57649,0},{5297,57649,0}, {5297,57656,0},{5298,57658,0},{5298,57653,0},{5302,57651,0},{5300,57649,0}, {5302,57638,0},{5305,57644,0},{5307,57644,0},{5307,57639,0},{5317,57644,0}, {5318,57641,0},{5320,57646,0},{5322,57643,0},{5322,57648,0},{5325,57646,0}, {5325,57644,0},{5327,57646,0},{5328,57641,0},{5332,57643,0},{5335,57639,0}, {5338,57643,0},{5345,57638,0},{5345,57634,0},{5345,57629,0},{5345,57631,0}, {5347,57628,0},{5350,57624,0},{5353,57633,0},{5353,57634,0},{5352,57631,0}, {5348,57634,0},{5352,57639,0},{5357,57633,0},{5355,57641,0},{5357,57644,0}, {5362,57638,0},{5360,57629,0},{5363,57631,0},{5363,57636,0},{5367,57631,0}, {5367,57634,0},{5368,57634,0},{5372,57621,0},{5372,57631,0},{5373,57633,0}, {5375,57629,0},{5378,57631,0},{5380,57629,0},{5382,57634,0},{5383,57631,0}, {5383,57639,0},{5382,57643,0},{5382,57646,0},{5385,57638,0},{5385,57629,0}, {5388,57629,0},{5392,57626,0},{5392,57636,0},{5393,57633,0},{5395,57623,0}, {5395,57633,0},{5397,57626,0},{5397,57633,0},{5397,57631,0},{5398,57626,0}, {5398,57629,0},{5400,57629,0},{5400,57633,0},{5400,57639,0},{5402,57638,0}, {5405,57633,0},{5403,57628,0},{5407,57626,0},{5408,57623,0},{5408,57608,0}, {5408,57619,0},{5412,57619,0},{5410,57624,0},{5412,57626,0},{5412,57623,0}, {5413,57626,0},{5415,57623,0},{5417,57629,0},{5418,57631,0},{5417,57618,0}, {5415,57616,0},{5417,57611,0},{5418,57613,0},{5420,57601,0},{5420,57598,0}, {5422,57603,0},{5425,57603,0},{5425,57608,0},{5427,57596,0},{5428,57593,0}, {5430,57594,0},{5430,57589,0},{5437,57589,0},{5437,57586,0},{5440,57586,0}, {5442,57591,0},{5442,57586,0},{5445,57588,0},{5450,57584,0},{5450,57581,0}, {5452,57584,0},{5455,57576,0},{5457,57583,0},{5458,57584,0},{5462,57579,0}, {5457,57574,0},{5458,57573,0},{5463,57578,0},{5463,57576,0},{5462,57574,0}, {5463,57568,0},{5465,57571,0},{5467,57569,0},{5467,57568,0},{5465,57568,0}, {5465,57559,0},{5470,57573,0},{5473,57573,0},{5472,57573,0},{5473,57586,0}, {5477,57589,0},{5475,57591,0},{5477,57603,0},{5482,57613,0},{5485,57638,0}, {5492,57649,0},{5492,57659,0},{5498,57679,0},{5500,57683,0},{5503,57703,0}, {5515,57723,0},{5525,57751,0},{5527,57758,0},{5537,57769,0},{5540,57781,0}, {5558,57813,0},{5565,57823,0},{5570,57828,0},{5567,57818,0},{5568,57818,0}, {5575,57829,0},{5585,57839,0},{5593,57853,0},{5598,57856,0},{5600,57864,0}, {5603,57868,0},{5612,57873,0},{5625,57878,0},{5630,57883,0},{5680,57886,0}, {5700,57881,0},{5710,57883,0},{5717,57879,0},{5723,57878,0},{5740,57871,0}, {5762,57854,0},{5767,57856,0},{5787,57834,0},{5795,57829,0},{5797,57824,0}, {5802,57821,0},{5807,57811,0},{5810,57801,0},{5813,57798,0},{5817,57788,0}, {5817,57791,0},{5820,57791,0},{5827,57774,0},{5838,57734,0},{5842,57734,0}, {5845,57729,0},{5845,57723,0},{5850,57716,0},{5852,57709,0},{5862,57698,0}, {5862,57693,0},{5860,57693,0},{5855,57704,0},{5853,57701,0},{5857,57691,0}, {5862,57689,0},{5862,57679,0},{5867,57681,0},{5867,57679,0},{5868,57684,0}, {5870,57686,0},{5870,57689,0},{5877,57681,0},{5878,57683,0},{5878,57686,0}, {5882,57688,0},{5892,57681,0},{5893,57683,0},{5893,57679,0},{5897,57679,0}, {5895,57684,0},{5892,57691,0},{5895,57693,0},{5897,57694,0},{5895,57701,0}, {5892,57701,0},{5893,57706,0},{5895,57704,0},{5897,57708,0},{5900,57711,0}, {5898,57704,0},{5902,57709,0},{5905,57708,0},{5907,57711,0},{5905,57716,0}, {5910,57714,0},{5908,57718,0},{5910,57723,0},{5915,57721,0},{5915,57728,0}, {5922,57726,0},{5923,57736,0},{5927,57741,0},{5928,57753,0},{5930,57753,0}, {5932,57748,0},{5932,57758,0},{5935,57759,0},{5937,57756,0},{5940,57768,0}, {5942,57764,0},{5940,57761,0},{5943,57758,0},{5940,57748,0},{5940,57744,0}, {5943,57746,0},{5945,57751,0},{5947,57748,0},{5950,57749,0},{5953,57764,0}, {5962,57764,0},{5963,57759,0},{5967,57756,0},{5968,57763,0},{5972,57759,0}, {5970,57766,0},{5967,57769,0},{5968,57776,0},{5970,57779,0},{5967,57779,0}, {5963,57789,0},{5958,57791,0},{5957,57804,0},{5960,57793,0},{5967,57791,0}, {5968,57783,0},{5972,57788,0},{5975,57783,0},{5975,57791,0},{5977,57791,0}, {5978,57794,0},{5980,57806,0},{5988,57799,0},{5992,57793,0},{5992,57799,0}, {5995,57798,0},{5997,57806,0},{5998,57804,0},{6000,57813,0},{6002,57806,0}, {6005,57818,0},{6003,57804,0},{6007,57801,0},{6005,57796,0},{6003,57793,0}, {6005,57789,0},{6005,57788,0},{6007,57773,0},{6008,57778,0},{6012,57776,0}, {6013,57781,0},{6013,57796,0},{6015,57786,0},{6020,57781,0},{6022,57789,0}, {6025,57784,0},{6027,57779,0},{6028,57781,0},{6027,57774,0},{6033,57776,0}, {6033,57773,0},{6037,57773,0},{6040,57761,0},{6042,57761,0},{6047,57768,0}, {6050,57779,0},{6055,57781,0},{6055,57794,0},{6057,57781,0},{6055,57769,0}, {6060,57758,0},{6063,57753,0},{6075,57776,0},{6077,57771,0},{6077,57761,0}, {6083,57784,0},{6078,57758,0},{6075,57748,0},{6080,57751,0},{6078,57739,0}, {6082,57748,0},{6083,57746,0},{6078,57716,0},{6085,57719,0},{6088,57726,0}, {6092,57726,0},{6103,57748,0},{6105,57754,0},{6115,57758,0},{6120,57766,0}, {6122,57766,0},{6123,57761,0},{6127,57764,0},{6145,57756,0},{6145,57763,0}, {6143,57766,0},{6147,57768,0},{6147,57779,0},{6148,57781,0},{6152,57769,0}, {6157,57774,0},{6153,57789,0},{6157,57783,0},{6158,57773,0},{6158,57778,0}, {6160,57778,0},{6160,57764,0},{6170,57758,0},{6168,57754,0},{6168,57746,0}, {6172,57736,0},{6178,57736,0},{6187,57728,0},{6195,57728,0},{6203,57721,0}, {6227,57719,0},{6233,57726,0},{6240,57734,0},{6240,57741,0},{6247,57759,0}, {6247,57766,0},{6252,57771,0},{6253,57781,0},{6260,57789,0},{6258,57796,0}, {6255,57799,0},{6255,57818,0},{6252,57823,0},{6253,57826,0},{6252,57831,0}, {6253,57841,0},{6252,57846,0},{6250,57861,0},{6248,57869,0},{6245,57874,0}, {6245,57883,0},{6238,57921,0},{6233,57926,0},{6235,57933,0},{6233,57934,0}, {6235,57939,0},{6233,57944,0},{6232,57954,0},{6228,57973,0},{6227,57976,0}, {6223,57966,0},{6215,57946,0},{6217,57953,0},{6218,57958,0},{6223,57976,0}, {6230,57988,0},{6232,58004,0},{6228,58021,0},{6223,58021,0},{6227,58029,0}, {6225,58043,0},{6223,58049,0},{6220,58051,0},{6217,58059,0},{6215,58059,0}, {6210,58076,0},{6212,58081,0},{6215,58068,0},{6220,58059,0},{6225,58063,0}, {6225,58094,0},{6230,58108,0},{6232,58108,0},{6233,58113,0},{6232,58121,0}, {6235,58128,0},{6235,58136,0},{6245,58149,0},{6248,58168,0},{6247,58171,0}, {6238,58179,0},{6238,58184,0},{6238,58189,0},{6237,58191,0},{6237,58198,0}, {6233,58204,0},{6232,58214,0},{6225,58218,0},{6220,58229,0},{6218,58229,0}, {6215,58244,0},{6213,58246,0},{6212,58241,0},{6212,58244,0},{6212,58251,0}, {6212,58258,0},{6213,58254,0},{6215,58263,0},{6212,58274,0},{6205,58269,0}, {6205,58276,0},{6203,58274,0},{6202,58276,0},{6197,58276,0},{6195,58268,0}, {6190,58268,0},{6183,58256,0},{6183,58263,0},{6188,58269,0},{6185,58269,0}, {6180,58274,0},{6183,58276,0},{6190,58273,0},{6195,58276,0},{6188,58296,0}, {6187,58316,0},{6183,58318,0},{6180,58323,0},{6178,58316,0},{6178,58318,0}, {6177,58314,0},{6173,58314,0},{6175,58323,0},{6173,58328,0},{6168,58338,0}, {6162,58333,0},{6160,58324,0},{6162,58313,0},{6162,58309,0},{6157,58306,0}, {6160,58314,0},{6158,58326,0},{6160,58338,0},{6167,58343,0},{6170,58339,0}, {6170,58341,0},{6167,58369,0},{6160,58379,0},{6160,58378,0},{6157,58381,0}, {6153,58351,0},{6152,58351,0},{6152,58358,0},{6150,58359,0},{6148,58356,0}, {6147,58361,0},{6143,58348,0},{6142,58351,0},{6142,58356,0},{6140,58366,0}, {6140,58378,0},{6137,58366,0},{6137,58354,0},{6135,58356,0},{6135,58354,0}, {6135,58364,0},{6133,58369,0},{6128,58363,0},{6125,58376,0},{6120,58373,0}, {6122,58378,0},{6120,58379,0},{6115,58378,0},{6117,58386,0},{6120,58383,0}, {6122,58384,0},{6122,58391,0},{6118,58391,0},{6115,58396,0},{6112,58399,0}, {6115,58399,0},{6117,58414,0},{6112,58416,0},{6113,58419,0},{6112,58424,0}, {6112,58438,0},{6110,58444,0},{6107,58443,0},{6107,58451,0},{6105,58459,0}, {6108,58458,0},{6107,58464,0},{6105,58471,0},{6102,58468,0},{6103,58474,0}, {6102,58478,0},{6100,58481,0},{6103,58479,0},{6105,58483,0},{6107,58483,0}, {6102,58493,0},{6105,58491,0},{6105,58494,0},{6108,58494,0},{6107,58501,0}, {6110,58503,0},{6108,58509,0},{6107,58511,0},{6108,58521,0},{6107,58521,0}, {6107,58526,0},{6102,58519,0},{6102,58526,0},{6098,58524,0},{6095,58528,0}, {6090,58528,0},{6088,58521,0},{6087,58529,0},{6085,58529,0},{6085,58536,0}, {6080,58543,0},{6085,58551,0},{6083,58544,0},{6085,58543,0},{6092,58561,0}, {6088,58563,0},{6087,58568,0},{6088,58571,0},{6090,58571,0},{6095,58568,0}, {6102,58568,0},{6108,58576,0},{6107,58584,0},{6093,58594,0},{6092,58593,0}, {6090,58599,0},{6087,58598,0},{6080,58598,0},{6073,58578,0},{6070,58571,0}, {6068,58564,0},{6065,58568,0},{6060,58566,0},{6060,58571,0},{6057,58571,0}, {6055,58566,0},{6053,58553,0},{6047,58561,0},{6042,58558,0},{6040,58563,0}, {6037,58564,0},{6032,58559,0},{6028,58566,0},{6023,58571,0},{6023,58576,0}, {6020,58574,0},{6018,58571,0},{6018,58576,0},{6007,58574,0},{6007,58566,0}, {6003,58564,0},{6007,58558,0},{6007,58553,0},{6002,58553,0},{6000,58559,0}, {5998,58556,0},{6002,58541,0},{6000,58514,0},{6003,58503,0},{6000,58504,0}, {6000,58481,0},{6007,58438,0},{6007,58433,0},{5997,58479,0},{5998,58513,0}, {5997,58518,0},{5995,58529,0},{5997,58563,0},{5992,58564,0},{5990,58559,0}, {5987,58579,0},{5983,58576,0},{5978,58574,0},{5977,58581,0},{5968,58571,0}, {5970,58576,0},{5967,58584,0},{5960,58581,0},{5957,58568,0},{5950,58561,0}, {5948,58561,0},{5948,58566,0},{5945,58569,0},{5942,58571,0},{5938,58569,0}, {5937,58573,0},{5937,58571,0},{5935,58561,0},{5932,58561,0},{5930,58563,0}, {5930,58571,0},{5932,58576,0},{5935,58594,0},{5933,58599,0},{5930,58599,0}, {5933,58606,0},{5932,58611,0},{5928,58609,0},{5927,58613,0},{5922,58611,0}, {5920,58608,0},{5923,58603,0},{5925,58601,0},{5922,58599,0},{5918,58599,0}, {5920,58594,0},{5922,58594,0},{5922,58593,0},{5917,58583,0},{5910,58583,0}, {5913,58589,0},{5910,58593,0},{5912,58599,0},{5908,58601,0},{5907,58594,0}, {5902,58593,0},{5907,58588,0},{5907,58586,0},{5890,58591,0},{5887,58589,0}, {5888,58584,0},{5880,58581,0},{5878,58571,0},{5880,58568,0},{5887,58564,0}, {5888,58569,0},{5893,58569,0},{5892,58566,0},{5892,58564,0},{5897,58564,0}, {5898,58561,0},{5897,58558,0},{5905,58549,0},{5898,58549,0},{5895,58546,0}, {5895,58553,0},{5893,58556,0},{5882,58556,0},{5887,58548,0},{5887,58546,0}, {5883,58546,0},{5880,58539,0},{5882,58533,0},{5878,58526,0},{5877,58511,0}, {5875,58529,0},{5873,58533,0},{5877,58544,0},{5870,58544,0},{5870,58548,0}, {5872,58551,0},{5870,58556,0},{5868,58554,0},{5865,58548,0},{5858,58554,0}, {5870,58566,0},{5870,58571,0},{5875,58576,0},{5877,58586,0},{5885,58596,0}, {5888,58608,0},{5890,58611,0},{5888,58616,0},{5890,58621,0},{5890,58638,0}, {5888,58636,0},{5887,58639,0},{5888,58649,0},{5892,58659,0},{5890,58663,0}, {5890,58673,0},{5883,58686,0},{5882,58696,0},{5878,58696,0},{5878,58701,0}, {5875,58699,0},{5870,58698,0},{5867,58703,0},{5860,58701,0},{5858,58703,0}, {5860,58708,0},{5858,58709,0},{5853,58706,0},{5855,58716,0},{5848,58714,0}, {5843,58716,0},{5833,58711,0},{5823,58704,0},{5813,58701,0},{5805,58691,0}, {5803,58686,0},{5802,58666,0},{5797,58649,0},{5797,58639,0},{5792,58634,0}, {5790,58623,0},{5787,58614,0},{5777,58599,0},{5783,58614,0},{5788,58623,0}, {5793,58641,0},{5800,58668,0},{5800,58681,0},{5803,58696,0},{5807,58698,0}, {5810,58704,0},{5820,58706,0},{5825,58713,0},{5830,58713,0},{5842,58719,0}, {5848,58719,0},{5853,58723,0},{5852,58733,0},{5858,58736,0},{5855,58739,0}, {5852,58739,0},{5850,58746,0},{5840,58744,0},{5835,58746,0},{5832,58751,0}, {5825,58746,0},{5813,58726,0},{5807,58723,0},{5813,58736,0},{5820,58739,0}, {5823,58749,0},{5827,58749,0},{5830,58756,0},{5835,58753,0},{5847,58759,0}, {5843,58769,0},{5838,58766,0},{5835,58766,0},{5832,58763,0},{5830,58764,0}, {5828,58763,0},{5828,58768,0},{5825,58771,0},{5817,58766,0},{5807,58769,0}, {5797,58763,0},{5792,58764,0},{5798,58766,0},{5805,58773,0},{5812,58771,0}, {5822,58778,0},{5823,58784,0},{5827,58788,0},{5828,58794,0},{5828,58798,0}, {5832,58803,0},{5833,58809,0},{5833,58814,0},{5838,58819,0},{5835,58828,0}, {5838,58831,0},{5842,58828,0},{5842,58834,0},{5850,58841,0},{5848,58848,0}, {5845,58846,0},{5843,58851,0},{5845,58853,0},{5847,58856,0},{5850,58856,0}, {5848,58874,0},{5853,58869,0},{5855,58874,0},{5860,58874,0},{5863,58878,0}, {5867,58876,0},{5867,58879,0},{5872,58881,0},{5872,58889,0},{5873,58891,0}, {5875,58888,0},{5880,58891,0},{5882,58889,0},{5885,58898,0},{5872,58924,0}, {5865,58929,0},{5867,58934,0},{5865,58936,0},{5863,58936,0},{5862,58943,0}, {5850,58934,0},{5840,58938,0},{5837,58928,0},{5832,58929,0},{5837,58933,0}, {5838,58939,0},{5843,58941,0},{5845,58944,0},{5848,58938,0},{5853,58946,0}, {5858,58948,0},{5857,58953,0},{5862,58949,0},{5865,58943,0},{5868,58941,0}, {5868,58933,0},{5875,58931,0},{5877,58926,0},{5887,58934,0},{5883,58938,0}, {5883,58941,0},{5883,58951,0},{5885,58956,0},{5887,58956,0},{5888,58941,0}, {5890,58938,0},{5895,58951,0},{5902,58948,0},{5893,58968,0},{5897,58968,0}, {5900,58956,0},{5902,58963,0},{5903,58958,0},{5905,58969,0},{5903,58974,0}, {5900,58979,0},{5898,58986,0},{5900,58984,0},{5902,58979,0},{5905,58978,0}, {5907,58984,0},{5903,58991,0},{5903,59004,0},{5907,59001,0},{5907,58993,0}, {5910,58981,0},{5908,58979,0},{5907,58973,0},{5915,58964,0},{5918,58964,0}, {5920,58968,0},{5922,58963,0},{5927,58961,0},{5927,58968,0},{5918,58978,0}, {5925,58974,0},{5923,58979,0},{5927,58981,0},{5925,58984,0},{5925,58986,0}, {5930,58979,0},{5938,58978,0},{5935,58988,0},{5932,58991,0},{5928,59001,0}, {5933,58996,0},{5935,58991,0},{5940,58993,0},{5940,58998,0},{5943,58986,0}, {5945,58989,0},{5945,58988,0},{5948,58979,0},{5947,58993,0},{5948,58999,0}, {5947,59018,0},{5940,59023,0},{5937,59034,0},{5938,59038,0},{5942,59024,0}, {5947,59019,0},{5948,59014,0},{5948,59009,0},{5952,59006,0},{5952,58994,0}, {5973,58981,0},{5977,58989,0},{5980,58988,0},{5978,58993,0},{5982,58994,0}, {5980,58999,0},{5982,58998,0},{5985,59003,0},{5982,59016,0},{5978,59021,0}, {5977,59038,0},{5980,59023,0},{5983,59014,0},{5985,59016,0},{5988,59013,0}, {5987,59021,0},{5988,59023,0},{5992,59014,0},{5992,59021,0},{5995,59023,0}, {5993,59029,0},{5997,59024,0},{5998,59029,0},{6002,59023,0},{6005,59024,0}, {6005,59031,0},{6007,59033,0},{6010,59029,0},{6012,59038,0},{6015,59036,0}, {6015,59039,0},{6018,59041,0},{6020,59048,0},{6025,59041,0},{6027,59046,0}, {6030,59051,0},{6033,59053,0},{6037,59051,0},{6037,59053,0},{6033,59066,0}, {6033,59069,0},{6035,59066,0},{6035,59073,0},{6025,59098,0},{6028,59074,0}, {6027,59064,0},{6023,59059,0},{6027,59073,0},{6027,59081,0},{6023,59089,0}, {6017,59079,0},{6017,59086,0},{6022,59096,0},{6020,59093,0},{6020,59096,0}, {6017,59098,0},{6012,59088,0},{6008,59088,0},{6007,59073,0},{6000,59054,0}, {5998,59054,0},{6005,59076,0},{6007,59091,0},{6013,59098,0},{6012,59099,0}, {6007,59099,0},{6007,59094,0},{6005,59099,0},{6002,59098,0},{6000,59093,0}, {6000,59078,0},{6000,59088,0},{5997,59096,0},{5993,59096,0},{5990,59084,0}, {5992,59099,0},{5995,59099,0},{5998,59103,0},{6000,59114,0},{6002,59104,0}, {6005,59104,0},{6005,59106,0},{6003,59114,0},{6002,59116,0},{6002,59119,0}, {5998,59121,0},{5995,59106,0},{5995,59114,0},{5992,59118,0},{5990,59116,0}, {5987,59109,0},{5988,59119,0},{5992,59121,0},{5990,59123,0},{5983,59119,0}, {5978,59118,0},{5977,59114,0},{5978,59109,0},{5977,59109,0},{5968,59119,0}, {5968,59141,0},{5967,59139,0},{5965,59144,0},{5963,59141,0},{5963,59131,0}, {5952,59124,0},{5955,59133,0},{5963,59136,0},{5960,59143,0},{5962,59148,0}, {5960,59149,0},{5958,59149,0},{5957,59143,0},{5950,59138,0},{5957,59149,0}, {5952,59163,0},{5942,59156,0},{5942,59138,0},{5940,59131,0},{5938,59129,0}, {5938,59153,0},{5937,59156,0},{5938,59159,0},{5938,59161,0},{5935,59161,0}, {5937,59164,0},{5927,59159,0},{5925,59154,0},{5923,59156,0},{5925,59163,0}, {5933,59166,0},{5937,59171,0},{5935,59174,0},{5935,59181,0},{5932,59184,0}, {5927,59183,0},{5923,59178,0},{5922,59173,0},{5922,59176,0},{5923,59184,0}, {5928,59191,0},{5928,59198,0},{5925,59194,0},{5923,59191,0},{5922,59193,0}, {5920,59189,0},{5922,59198,0},{5920,59201,0},{5913,59194,0},{5910,59188,0}, {5910,59183,0},{5907,59178,0},{5905,59159,0},{5908,59143,0},{5907,59138,0}, {5902,59131,0},{5903,59138,0},{5907,59143,0},{5905,59146,0},{5902,59144,0}, {5895,59149,0},{5903,59149,0},{5903,59158,0},{5902,59161,0},{5903,59171,0}, {5903,59183,0},{5907,59189,0},{5907,59194,0},{5910,59199,0},{5908,59206,0}, {5907,59208,0},{5905,59224,0},{5903,59223,0},{5903,59219,0},{5902,59203,0}, {5900,59214,0},{5895,59206,0},{5898,59216,0},{5898,59219,0},{5895,59219,0}, {5893,59213,0},{5893,59219,0},{5888,59213,0},{5885,59204,0},{5885,59218,0}, {5887,59219,0},{5885,59219,0},{5882,59219,0},{5885,59224,0},{5888,59224,0}, {5890,59229,0},{5888,59238,0},{5887,59231,0},{5885,59234,0},{5880,59246,0}, {5875,59244,0},{5870,59233,0},{5870,59239,0},{5872,59246,0},{5870,59249,0}, {5867,59251,0},{5863,59244,0},{5860,59244,0},{5855,59226,0},{5850,59219,0}, {5850,59206,0},{5850,59204,0},{5850,59194,0},{5852,59193,0},{5850,59191,0}, {5847,59184,0},{5848,59194,0},{5847,59203,0},{5845,59201,0},{5840,59194,0}, {5835,59183,0},{5830,59178,0},{5837,59194,0},{5847,59209,0},{5845,59228,0}, {5837,59219,0},{5845,59231,0},{5843,59234,0},{5847,59243,0},{5847,59254,0}, {5850,59258,0},{5845,59259,0},{5848,59261,0},{5850,59274,0},{5848,59281,0}, {5842,59271,0},{5838,59274,0},{5830,59274,0},{5828,59266,0},{5827,59264,0}, {5827,59251,0},{5822,59246,0},{5820,59248,0},{5822,59249,0},{5825,59253,0}, {5825,59268,0},{5827,59271,0},{5825,59276,0},{5822,59278,0},{5822,59274,0}, {5818,59273,0},{5817,59269,0},{5815,59229,0},{5813,59234,0},{5812,59234,0}, {5807,59214,0},{5805,59218,0},{5807,59223,0},{5803,59221,0},{5798,59203,0}, {5800,59223,0},{5802,59226,0},{5807,59228,0},{5808,59239,0},{5813,59243,0}, {5815,59253,0},{5812,59251,0},{5813,59258,0},{5812,59261,0},{5815,59264,0}, {5812,59269,0},{5813,59273,0},{5817,59279,0},{5812,59279,0},{5813,59283,0}, {5817,59283,0},{5818,59289,0},{5817,59291,0},{5810,59283,0},{5805,59284,0}, {5807,59288,0},{5810,59288,0},{5810,59291,0},{5810,59299,0},{5808,59293,0}, {5807,59298,0},{5805,59298,0},{5807,59303,0},{5803,59306,0},{5800,59298,0}, {5800,59283,0},{5797,59278,0},{5795,59271,0},{5793,59269,0},{5797,59284,0}, {5795,59294,0},{5793,59293,0},{5787,59294,0},{5795,59298,0},{5798,59301,0}, {5790,59303,0},{5795,59308,0},{5790,59316,0},{5793,59316,0},{5797,59321,0}, {5797,59323,0},{5795,59328,0},{5790,59329,0},{5783,59323,0},{5780,59324,0}, {5778,59328,0},{5777,59336,0},{5772,59341,0},{5768,59339,0},{5767,59343,0}, {5767,59346,0},{5762,59348,0},{5758,59331,0},{5757,59328,0},{5755,59329,0}, {5753,59323,0},{5753,59309,0},{5745,59303,0},{5750,59283,0},{5750,59281,0}, {5742,59299,0},{5747,59319,0},{5745,59331,0},{5742,59348,0},{5737,59356,0}, {5737,59344,0},{5733,59349,0},{5728,59349,0},{5725,59341,0},{5725,59333,0}, {5723,59334,0},{5722,59346,0},{5717,59351,0},{5720,59359,0},{5715,59358,0}, {5723,59373,0},{5722,59374,0},{5720,59369,0},{5715,59366,0},{5715,59371,0}, {5717,59388,0},{5715,59391,0},{5710,59399,0},{5705,59398,0},{5702,59401,0}, {5700,59399,0},{5698,59401,0},{5695,59401,0},{5698,59398,0},{5697,59393,0}, {5698,59388,0},{5695,59381,0},{5692,59379,0},{5688,59371,0},{5682,59371,0}, {5680,59368,0},{5678,59354,0},{5680,59346,0},{5670,59348,0},{5675,59351,0}, {5675,59359,0},{5673,59366,0},{5672,59366,0},{5670,59363,0},{5670,59354,0}, {5668,59356,0},{5665,59369,0},{5662,59369,0},{5665,59344,0},{5668,59346,0}, {5667,59336,0},{5668,59329,0},{5672,59316,0},{5677,59288,0},{5678,59286,0}, {5683,59308,0},{5682,59323,0},{5682,59329,0},{5683,59331,0},{5685,59306,0}, {5683,59293,0},{5685,59286,0},{5683,59281,0},{5680,59278,0},{5677,59284,0}, {5677,59286,0},{5675,59296,0},{5670,59303,0},{5667,59321,0},{5663,59331,0}, {5662,59344,0},{5662,59343,0},{5662,59313,0},{5662,59314,0},{5660,59333,0}, {5658,59336,0},{5658,59349,0},{5657,59358,0},{5657,59364,0},{5653,59371,0}, {5652,59371,0},{5650,59368,0},{5650,59343,0},{5650,59329,0},{5648,59328,0}, {5648,59341,0},{5647,59341,0},{5645,59336,0},{5645,59323,0},{5642,59329,0}, {5642,59339,0},{5643,59343,0},{5642,59346,0},{5640,59358,0},{5638,59351,0}, {5637,59358,0},{5633,59359,0},{5633,59364,0},{5633,59363,0},{5632,59364,0}, {5632,59371,0},{5628,59378,0},{5630,59359,0},{5630,59354,0},{5630,59356,0}, {5627,59369,0},{5625,59358,0},{5627,59353,0},{5627,59359,0},{5628,59361,0}, {5630,59348,0},{5628,59341,0},{5630,59334,0},{5628,59328,0},{5625,59336,0}, {5623,59334,0},{5622,59344,0},{5623,59349,0},{5622,59353,0},{5622,59359,0}, {5620,59359,0},{5622,59371,0},{5622,59379,0},{5620,59379,0},{5622,59401,0}, {5618,59403,0},{5617,59398,0},{5612,59394,0},{5615,59401,0},{5613,59401,0}, {5610,59403,0},{5608,59396,0},{5605,59391,0},{5603,59394,0},{5607,59404,0}, {5605,59413,0},{5603,59404,0},{5602,59409,0},{5602,59388,0},{5600,59386,0}, {5600,59398,0},{5598,59398,0},{5597,59396,0},{5600,59394,0},{5600,59389,0}, {5597,59396,0},{5597,59424,0},{5593,59429,0},{5590,59428,0},{5588,59416,0}, {5587,59416,0},{5585,59426,0},{5587,59443,0},{5585,59463,0},{5580,59463,0}, {5577,59459,0},{5575,59456,0},{5577,59454,0},{5575,59448,0},{5575,59439,0}, {5573,59441,0},{5573,59449,0},{5573,59461,0},{5582,59471,0},{5582,59476,0}, {5578,59474,0},{5570,59476,0},{5567,59471,0},{5563,59473,0},{5557,59468,0}, {5563,59476,0},{5580,59486,0},{5580,59491,0},{5577,59493,0},{5578,59496,0}, {5577,59499,0},{5578,59501,0},{5578,59503,0},{5575,59503,0},{5572,59498,0}, {5568,59499,0},{5567,59488,0},{5560,59483,0},{5563,59489,0},{5560,59498,0}, {5550,59491,0},{5558,59503,0},{5557,59504,0},{5553,59503,0},{5552,59506,0}, {5552,59504,0},{5552,59503,0},{5545,59494,0},{5545,59491,0},{5540,59493,0}, {5535,59488,0},{5538,59494,0},{5543,59494,0},{5548,59504,0},{5548,59506,0}, {5543,59499,0},{5545,59504,0},{5543,59504,0},{5543,59508,0},{5548,59508,0}, {5550,59509,0},{5548,59516,0},{5543,59514,0},{5543,59516,0},{5540,59501,0}, {5532,59494,0},{5528,59496,0},{5528,59493,0},{5528,59489,0},{5520,59483,0}, {5517,59474,0},{5518,59481,0},{5523,59488,0},{5522,59493,0},{5523,59494,0}, {5527,59499,0},{5525,59501,0},{5518,59489,0},{5512,59484,0},{5505,59469,0}, {5503,59469,0},{5500,59468,0},{5503,59474,0},{5507,59478,0},{5510,59488,0}, {5515,59491,0},{5517,59496,0},{5515,59496,0},{5517,59499,0},{5523,59509,0}, {5525,59516,0},{5528,59519,0},{5528,59523,0},{5520,59516,0},{5523,59523,0}, {5527,59531,0},{5527,59534,0},{5510,59518,0},{5510,59514,0},{5510,59513,0}, {5505,59508,0},{5502,59506,0},{5513,59526,0},{5523,59534,0},{5523,59544,0}, {5527,59544,0},{5533,59558,0},{5528,59561,0},{5527,59564,0},{5522,59561,0}, {5520,59563,0},{5520,59559,0},{5515,59549,0},{5517,59539,0},{5512,59539,0}, {5513,59544,0},{5513,59549,0},{5512,59549,0},{5510,59556,0},{5513,59559,0}, {5515,59563,0},{5513,59573,0},{5517,59583,0},{5520,59583,0},{5522,59586,0}, {5518,59588,0},{5513,59586,0},{5513,59593,0},{5510,59588,0},{5505,59584,0}, {5505,59579,0},{5500,59573,0},{5500,59568,0},{5498,59568,0},{5497,59563,0}, {5495,59564,0},{5488,59553,0},{5485,59549,0},{5485,59554,0},{5482,59553,0}, {5478,59548,0},{5475,59541,0},{5475,59543,0},{5475,59548,0},{5478,59558,0}, {5483,59556,0},{5490,59561,0},{5495,59576,0},{5507,59593,0},{5503,59596,0}, {5518,59608,0},{5522,59614,0},{5517,59614,0},{5518,59618,0},{5523,59619,0}, {5520,59623,0},{5515,59623,0},{5510,59611,0},{5505,59608,0},{5500,59599,0}, {5497,59598,0},{5502,59603,0},{5502,59606,0},{5503,59611,0},{5508,59613,0}, {5510,59618,0},{5507,59621,0},{5512,59623,0},{5512,59626,0},{5508,59624,0}, {5508,59628,0},{5515,59629,0},{5515,59633,0},{5515,59634,0},{5512,59636,0}, {5513,59639,0},{5510,59641,0},{5500,59631,0},{5502,59638,0},{5500,59639,0}, {5495,59646,0},{5490,59634,0},{5490,59643,0},{5492,59643,0},{5492,59646,0}, {5492,59648,0},{5490,59648,0},{5485,59644,0},{5485,59646,0},{5483,59653,0}, {5485,59654,0},{5485,59659,0},{5480,59661,0},{5485,59663,0},{5485,59668,0}, {5482,59668,0},{5480,59676,0},{5480,59684,0},{5477,59679,0},{5478,59686,0}, {5477,59693,0},{5473,59694,0},{5475,59698,0},{5478,59698,0},{5480,59711,0}, {5480,59718,0},{5477,59716,0},{5475,59719,0},{5473,59734,0},{5472,59736,0}, {5473,59741,0},{5473,59751,0},{5470,59756,0},{5468,59758,0},{5468,59763,0}, {5465,59764,0},{5463,59766,0},{5463,59778,0},{5467,59783,0},{5465,59791,0}, {5463,59793,0},{5462,59794,0},{5458,59794,0},{5458,59801,0},{5457,59801,0}, {5455,59793,0},{5455,59798,0},{5450,59798,0},{5448,59794,0},{5447,59766,0}, {5447,59789,0},{5445,59794,0},{5445,59791,0},{5447,59789,0},{5445,59783,0}, {5442,59784,0},{5438,59774,0},{5437,59753,0},{5438,59749,0},{5438,59743,0}, {5437,59721,0},{5435,59718,0},{5433,59718,0},{5432,59709,0},{5433,59726,0}, {5428,59711,0},{5425,59713,0},{5423,59691,0},{5415,59666,0},{5413,59644,0}, {5405,59598,0},{5407,59584,0},{5405,59579,0},{5403,59578,0},{5402,59584,0}, {5400,59584,0},{5402,59593,0},{5402,59604,0},{5407,59634,0},{5410,59654,0}, {5413,59661,0},{5412,59668,0},{5418,59679,0},{5420,59689,0},{5423,59694,0}, {5423,59699,0},{5415,59691,0},{5412,59683,0},{5410,59683,0},{5403,59673,0}, {5403,59633,0},{5402,59644,0},{5397,59638,0},{5393,59616,0},{5383,59589,0}, {5382,59576,0},{5383,59568,0},{5385,59556,0},{5383,59548,0},{5382,59549,0}, {5380,59556,0},{5378,59554,0},{5378,59544,0},{5377,59531,0},{5378,59523,0}, {5370,59534,0},{5370,59529,0},{5368,59526,0},{5362,59524,0},{5357,59529,0}, {5353,59523,0},{5355,59521,0},{5357,59516,0},{5363,59501,0},{5367,59498,0}, {5370,59484,0},{5373,59468,0},{5377,59456,0},{5383,59449,0},{5380,59451,0}, {5375,59448,0},{5373,59443,0},{5372,59444,0},{5372,59454,0},{5372,59461,0}, {5368,59483,0},{5355,59509,0},{5355,59518,0},{5350,59526,0},{5350,59531,0}, {5343,59533,0},{5347,59528,0},{5343,59518,0},{5338,59506,0},{5338,59503,0}, {5335,59499,0},{5337,59496,0},{5335,59494,0},{5333,59498,0},{5335,59518,0}, {5332,59516,0},{5327,59494,0},{5327,59511,0},{5332,59519,0},{5327,59524,0}, {5330,59528,0},{5332,59523,0},{5333,59521,0},{5335,59533,0},{5347,59546,0}, {5345,59549,0},{5348,59549,0},{5347,59554,0},{5348,59558,0},{5352,59546,0}, {5353,59548,0},{5352,59561,0},{5353,59578,0},{5358,59589,0},{5362,59598,0}, {5365,59599,0},{5365,59603,0},{5368,59606,0},{5367,59608,0},{5368,59614,0}, {5367,59619,0},{5368,59628,0},{5372,59629,0},{5372,59634,0},{5375,59634,0}, {5375,59631,0},{5380,59629,0},{5388,59648,0},{5395,59653,0},{5397,59666,0}, {5398,59676,0},{5402,59681,0},{5403,59694,0},{5405,59704,0},{5407,59714,0}, {5410,59723,0},{5407,59741,0},{5407,59758,0},{5410,59751,0},{5410,59739,0}, {5413,59733,0},{5413,59719,0},{5408,59704,0},{5413,59694,0},{5420,59701,0}, {5420,59713,0},{5423,59713,0},{5423,59718,0},{5423,59733,0},{5420,59744,0}, {5422,59748,0},{5420,59751,0},{5422,59758,0},{5418,59758,0},{5420,59771,0}, {5418,59776,0},{5417,59774,0},{5418,59779,0},{5417,59783,0},{5420,59789,0}, {5418,59793,0},{5415,59798,0},{5413,59796,0},{5413,59799,0},{5410,59799,0}, {5400,59806,0},{5397,59813,0},{5393,59821,0},{5393,59814,0},{5388,59814,0}, {5385,59821,0},{5382,59828,0},{5382,59823,0},{5380,59826,0},{5378,59821,0}, {5377,59819,0},{5373,59824,0},{5363,59788,0},{5358,59781,0},{5362,59791,0}, {5360,59791,0},{5358,59804,0},{5355,59801,0},{5353,59806,0},{5350,59806,0}, {5343,59799,0},{5343,59808,0},{5348,59808,0},{5353,59821,0},{5357,59823,0}, {5357,59819,0},{5358,59823,0},{5362,59823,0},{5363,59828,0},{5367,59829,0}, {5372,59834,0},{5373,59839,0},{5372,59848,0},{5373,59853,0},{5372,59856,0}, {5373,59858,0},{5373,59861,0},{5375,59861,0},{5375,59866,0},{5372,59869,0}, {5373,59874,0},{5375,59873,0},{5377,59874,0},{5378,59888,0},{5377,59893,0}, {5373,59893,0},{5373,59894,0},{5372,59893,0},{5370,59881,0},{5367,59876,0}, {5368,59866,0},{5367,59863,0},{5362,59888,0},{5363,59903,0},{5360,59909,0}, {5360,59903,0},{5358,59901,0},{5358,59904,0},{5357,59933,0},{5355,59938,0}, {5350,59936,0},{5352,59929,0},{5353,59931,0},{5353,59929,0},{5357,59911,0}, {5355,59909,0},{5353,59909,0},{5347,59933,0},{5343,59933,0},{5342,59939,0}, {5337,59933,0},{5337,59938,0},{5340,59944,0},{5337,59949,0},{5335,59948,0}, {5333,59956,0},{5332,59953,0},{5330,59944,0},{5328,59954,0},{5327,59954,0}, {5325,59949,0},{5323,59953,0},{5323,59958,0},{5327,59959,0},{5325,59961,0}, {5320,59958,0},{5320,59953,0},{5318,59956,0},{5318,59959,0},{5317,59959,0}, {5313,59961,0},{5310,59953,0},{5312,59941,0},{5308,59948,0},{5303,59944,0}, {5303,59931,0},{5303,59919,0},{5302,59928,0},{5298,59923,0},{5297,59924,0}, {5300,59933,0},{5300,59941,0},{5297,59948,0},{5295,59944,0},{5292,59953,0}, {5290,59953,0},{5288,59956,0},{5283,59956,0},{5282,59948,0},{5282,59946,0}, {5282,59939,0},{5280,59936,0},{5278,59944,0},{5277,59936,0},{5280,59931,0}, {5282,59919,0},{5278,59921,0},{5277,59931,0},{5272,59934,0},{5272,59936,0}, {5268,59939,0},{5268,59958,0},{5265,59963,0},{5263,59958,0},{5262,59961,0}, {5260,59956,0},{5262,59953,0},{5262,59946,0},{5263,59943,0},{5265,59931,0}, {5265,59926,0},{5265,59924,0},{5265,59931,0},{5262,59939,0},{5258,59931,0}, {5257,59938,0},{5255,59936,0},{5257,59928,0},{5253,59914,0},{5258,59903,0}, {5260,59886,0},{5257,59891,0},{5257,59901,0},{5253,59911,0},{5253,59919,0}, {5255,59924,0},{5253,59933,0},{5250,59939,0},{5252,59953,0},{5248,59951,0}, {5250,59961,0},{5247,59963,0},{5245,59959,0},{5243,59971,0},{5240,59969,0}, {5237,59973,0},{5235,59971,0},{5238,59963,0},{5238,59956,0},{5237,59954,0}, {5237,59958,0},{5235,59959,0},{5233,59958,0},{5243,59916,0},{5240,59923,0}, {5237,59939,0},{5235,59941,0},{5232,59954,0},{5230,59951,0},{5230,59958,0}, {5228,59959,0},{5230,59966,0},{5227,59964,0},{5225,59958,0},{5223,59958,0}, {5225,59963,0},{5223,59969,0},{5222,59974,0},{5222,59958,0},{5218,59961,0}, {5218,59968,0},{5213,59964,0},{5210,59968,0},{5208,59966,0},{5208,59956,0}, {5205,59959,0},{5200,59951,0},{5202,59939,0},{5197,59946,0},{5193,59944,0}, {5187,59924,0},{5182,59916,0},{5178,59914,0},{5178,59901,0},{5175,59901,0}, {5173,59896,0},{5175,59893,0},{5168,59888,0},{5165,59878,0},{5165,59868,0}, {5160,59868,0},{5157,59861,0},{5153,59859,0},{5153,59856,0},{5148,59854,0}, {5147,59851,0},{5148,59843,0},{5142,59841,0},{5142,59828,0},{5142,59821,0}, {5142,59819,0},{5142,59814,0},{5150,59811,0},{5148,59798,0},{5147,59796,0}, {5148,59793,0},{5147,59791,0},{5145,59791,0},{5145,59789,0},{5147,59788,0}, {5143,59784,0},{5143,59776,0},{5147,59778,0},{5143,59774,0},{5143,59768,0}, {5148,59768,0},{5147,59761,0},{5140,59759,0},{5142,59756,0},{5143,59756,0}, {5142,59754,0},{5132,59734,0},{5128,59723,0},{5130,59721,0},{5127,59714,0}, {5128,59709,0},{5133,59711,0},{5133,59708,0},{5132,59709,0},{5130,59708,0}, {5128,59706,0},{5127,59706,0},{5130,59694,0},{5130,59688,0},{5125,59678,0}, {5127,59676,0},{5128,59673,0},{5123,59673,0},{5123,59671,0},{5125,59669,0}, {5122,59669,0},{5118,59676,0},{5115,59674,0},{5113,59669,0},{5110,59663,0}, {5108,59658,0},{5107,59654,0},{5108,59653,0},{5105,59651,0},{5103,59653,0}, {5100,59648,0},{5100,59644,0},{5103,59648,0},{5105,59646,0},{5102,59639,0}, {5102,59636,0},{5100,59636,0},{5100,59641,0},{5095,59639,0},{5093,59641,0}, {5090,59639,0},{5088,59643,0},{5087,59638,0},{5083,59641,0},{5078,59633,0}, {5075,59634,0},{5077,59629,0},{5078,59626,0},{5082,59626,0},{5087,59631,0}, {5088,59629,0},{5088,59626,0},{5080,59624,0},{5075,59616,0},{5073,59616,0}, {5073,59614,0},{5075,59613,0},{5075,59609,0},{5072,59609,0},{5070,59604,0}, {5067,59601,0},{5067,59594,0},{5063,59594,0},{5062,59589,0},{5057,59588,0}, {5057,59584,0},{5053,59584,0},{5052,59581,0},{5048,59578,0},{5047,59564,0}, {5043,59561,0},{5043,59554,0},{5037,59548,0},{5037,59551,0},{5033,59551,0}, {5035,59554,0},{5032,59553,0},{5028,59544,0},{5025,59541,0},{5023,59533,0}, {5025,59529,0},{5023,59524,0},{5020,59523,0},{5023,59523,0},{5023,59519,0}, {5025,59521,0},{5028,59521,0},{5028,59518,0},{5023,59511,0},{5023,59509,0}, {5027,59513,0},{5027,59509,0},{5028,59508,0},{5025,59508,0},{5025,59499,0}, {5022,59499,0},{5025,59496,0},{5023,59493,0},{5027,59491,0},{5020,59478,0}, {5022,59474,0},{5025,59474,0},{5022,59469,0},{5023,59469,0},{5023,59461,0}, {5020,59458,0},{5022,59454,0},{5022,59453,0},{5027,59458,0},{5022,59444,0}, {5020,59443,0},{5022,59441,0},{5023,59433,0},{5020,59431,0},{5022,59426,0}, {5018,59424,0},{5020,59421,0},{5018,59419,0},{5020,59416,0},{5020,59406,0}, {5008,59364,0},{5010,59358,0},{5015,59376,0},{5018,59378,0},{5013,59361,0}, {5013,59356,0},{5018,59354,0},{5020,59351,0},{5023,59349,0},{5023,59314,0}, {5027,59308,0},{5027,59306,0},{5028,59304,0},{5027,59298,0},{5030,59296,0}, {5025,59291,0},{5028,59283,0},{5027,59279,0},{5028,59263,0},{5028,59261,0}, {5032,59264,0},{5030,59258,0},{5028,59256,0},{5028,59239,0},{5032,59236,0}, {5028,59229,0},{5030,59221,0},{5028,59218,0},{5025,59219,0},{5023,59213,0}, {5023,59198,0},{5022,59196,0},{5022,59193,0},{5027,59188,0},{5025,59174,0}, {5027,59173,0},{5027,59169,0},{5030,59166,0},{5030,59158,0},{5032,59154,0}, {5028,59128,0},{5027,59119,0},{5027,59109,0},{5032,59089,0},{5028,59083,0}, {5028,59073,0},{5027,59049,0},{5027,59046,0},{5030,59044,0},{5028,59038,0}, {5030,59024,0},{5028,59018,0},{5032,59011,0},{5030,59009,0},{5030,58989,0}, {5025,58964,0},{5027,58951,0},{5028,58946,0},{5028,58941,0},{5027,58936,0}, {5022,58931,0},{5022,58928,0},{5025,58926,0},{5022,58926,0},{5018,58928,0}, {5022,58913,0},{5020,58899,0},{5022,58896,0},{5027,58894,0},{5027,58889,0}, {5022,58883,0},{5018,58881,0},{5017,58884,0},{5017,58893,0},{5013,58889,0}, {5015,58881,0},{5015,58878,0},{5018,58873,0},{5015,58874,0},{5013,58869,0}, {5005,58863,0},{5002,58848,0},{4997,58839,0},{4995,58838,0},{4992,58839,0}, {4982,58833,0},{4985,58829,0},{4982,58821,0},{4975,58818,0},{4968,58819,0}, {4958,58813,0},{4948,58813,0},{4933,58799,0},{4933,58778,0},{4930,58769,0}, {4932,58764,0},{4930,58759,0},{4927,58754,0},{4930,58741,0},{4928,58736,0}, {4928,58731,0},{4925,58728,0},{4927,58724,0},{4920,58721,0},{4918,58713,0}, {4920,58706,0},{4917,58711,0},{4917,58716,0},{4912,58718,0},{4910,58711,0}, {4910,58703,0},{4905,58696,0},{4907,58691,0},{4910,58698,0},{4913,58699,0}, {4915,58696,0},{4918,58694,0},{4918,58691,0},{4918,58694,0},{4912,58696,0}, {4908,58691,0},{4905,58676,0},{4900,58673,0},{4895,58671,0},{4893,58666,0}, {4892,58671,0},{4890,58658,0},{4888,58654,0},{4882,58641,0},{4878,58639,0}, {4877,58629,0},{4860,58621,0},{4858,58619,0},{4858,58613,0},{4845,58606,0}, {4835,58596,0},{4830,58593,0},{4825,58583,0},{4823,58578,0},{4813,58568,0}, {4815,58554,0},{4822,58548,0},{4825,58541,0},{4827,58539,0},{4827,58523,0}, {4837,58499,0},{4837,58493,0},{4838,58476,0},{4838,58468,0},{4843,58459,0}, {4843,58453,0},{4847,58438,0},{4843,58429,0},{4845,58438,0},{4843,58441,0}, {4840,58458,0},{4837,58456,0},{4835,58448,0},{4832,58449,0},{4835,58459,0}, {4835,58481,0},{4832,58503,0},{4830,58504,0},{4830,58509,0},{4827,58514,0}, {4823,58518,0},{4823,58526,0},{4825,58533,0},{4823,58536,0},{4822,58544,0}, {4815,58549,0},{4812,58563,0},{4807,58558,0},{4800,58558,0},{4797,58554,0}, {4792,58553,0},{4785,58546,0},{4777,58543,0},{4775,58539,0},{4770,58534,0}, {4767,58523,0},{4763,58523,0},{4758,58516,0},{4750,58513,0},{4743,58491,0}, {4743,58486,0},{4738,58486,0},{4727,58479,0},{4710,58464,0},{4707,58454,0}, {4705,58446,0},{4700,58439,0},{4687,58418,0},{4682,58414,0},{4675,58406,0}, {4678,58414,0},{4685,58421,0},{4685,58436,0},{4690,58444,0},{4690,58451,0}, {4692,58454,0},{4692,58459,0},{4695,58463,0},{4702,58486,0},{4718,58504,0}, {4732,58516,0},{4733,58524,0},{4738,58531,0},{4745,58533,0},{4748,58534,0}, {4753,58546,0},{4782,58576,0},{4783,58581,0},{4787,58581,0},{4800,58593,0}, {4802,58603,0},{4810,58613,0},{4815,58623,0},{4825,58633,0},{4833,58651,0}, {4837,58654,0},{4837,58663,0},{4843,58674,0},{4845,58683,0},{4853,58691,0}, {4855,58701,0},{4863,58713,0},{4865,58724,0},{4868,58731,0},{4870,58739,0}, {4885,58781,0},{4887,58793,0},{4892,58803,0},{4897,58828,0},{4912,58873,0}, {4913,58888,0},{4917,58894,0},{4922,58928,0},{4922,58946,0},{4923,58959,0}, {4923,58963,0},{4927,58976,0},{4927,58991,0},{4923,59013,0},{4922,59039,0}, {4918,59056,0},{4915,59063,0},{4912,59078,0},{4897,59106,0},{4888,59114,0}, {4882,59114,0},{4875,59121,0},{4882,59106,0},{4888,59081,0},{4883,59089,0}, {4882,59083,0},{4882,59096,0},{4878,59099,0},{4878,59094,0},{4877,59093,0}, {4877,59098,0},{4875,59103,0},{4863,59119,0},{4862,59111,0},{4860,59109,0}, {4855,59108,0},{4852,59118,0},{4850,59114,0},{4847,59104,0},{4842,59104,0}, {4840,59086,0},{4835,59071,0},{4833,59064,0},{4832,59066,0},{4820,59059,0}, {4817,59043,0},{4818,59039,0},{4815,59041,0},{4803,59016,0},{4800,59006,0}, {4800,58989,0},{4805,58986,0},{4812,58954,0},{4817,58948,0},{4822,58946,0}, {4818,58944,0},{4818,58941,0},{4817,58936,0},{4812,58933,0},{4810,58928,0}, {4812,58913,0},{4812,58906,0},{4810,58909,0},{4807,58908,0},{4810,58901,0}, {4812,58894,0},{4812,58888,0},{4810,58884,0},{4805,58883,0},{4805,58873,0}, {4803,58869,0},{4800,58851,0},{4798,58861,0},{4802,58869,0},{4802,58874,0}, {4807,58893,0},{4807,58901,0},{4802,58901,0},{4800,58911,0},{4797,58921,0}, {4793,58928,0},{4792,58953,0},{4787,58961,0},{4782,58964,0},{4772,58968,0}, {4767,58973,0},{4765,58969,0},{4762,58973,0},{4767,58976,0},{4768,58988,0}, {4775,59001,0},{4780,59013,0},{4785,59031,0},{4783,59038,0},{4780,59031,0}, {4778,59029,0},{4782,59053,0},{4780,59056,0},{4778,59058,0},{4775,59056,0}, {4775,59049,0},{4773,59053,0},{4775,59058,0},{4770,59059,0},{4772,59061,0}, {4775,59059,0},{4777,59063,0},{4773,59068,0},{4772,59069,0},{4770,59061,0}, {4768,59059,0},{4767,59054,0},{4762,59054,0},{4755,59046,0},{4752,59046,0}, {4752,59049,0},{4748,59046,0},{4747,59044,0},{4745,59043,0},{4748,59046,0}, {4748,59049,0},{4745,59048,0},{4743,59048,0},{4735,59044,0},{4740,59046,0}, {4737,59043,0},{4728,59039,0},{4727,59033,0},{4713,59013,0},{4708,58999,0}, {4707,59008,0},{4708,59009,0},{4708,59016,0},{4705,59014,0},{4705,59019,0}, {4708,59026,0},{4708,59034,0},{4705,59038,0},{4708,59043,0},{4708,59056,0}, {4705,59053,0},{4698,59056,0},{4692,59046,0},{4683,59046,0},{4678,59049,0}, {4672,59058,0},{4670,59051,0},{4667,59051,0},{4670,59054,0},{4667,59061,0}, {4670,59061,0},{4668,59064,0},{4658,59064,0},{4650,59069,0},{4648,59064,0}, {4645,59068,0},{4647,59071,0},{4642,59074,0},{4633,59073,0},{4632,59066,0}, {4633,59076,0},{4633,59078,0},{4637,59079,0},{4632,59084,0},{4628,59079,0}, {4622,59079,0},{4623,59084,0},{4625,59084,0},{4622,59099,0},{4623,59111,0}, {4622,59114,0},{4620,59121,0},{4618,59119,0},{4615,59121,0},{4618,59124,0}, {4615,59128,0},{4618,59131,0},{4618,59141,0},{4612,59158,0},{4610,59159,0}, {4608,59156,0},{4608,59151,0},{4605,59144,0},{4607,59129,0},{4602,59126,0}, {4598,59133,0},{4600,59134,0},{4598,59143,0},{4597,59149,0},{4593,59149,0}, {4592,59154,0},{4588,59156,0},{4587,59164,0},{4587,59163,0},{4583,59161,0}, {4585,59168,0},{4583,59169,0},{4582,59169,0},{4583,59171,0},{4587,59171,0}, {4587,59173,0},{4587,59178,0},{4588,59188,0},{4587,59194,0},{4585,59194,0}, {4585,59188,0},{4582,59193,0},{4582,59184,0},{4580,59186,0},{4580,59213,0}, {4577,59204,0},{4577,59198,0},{4575,59199,0},{4572,59208,0},{4575,59211,0}, {4573,59211,0},{4577,59218,0},{4573,59218,0},{4577,59224,0},{4575,59229,0}, {4578,59228,0},{4580,59224,0},{4582,59226,0},{4577,59258,0},{4577,59269,0}, {4575,59264,0},{4575,59261,0},{4573,59263,0},{4573,59269,0},{4572,59273,0}, {4567,59259,0},{4563,59258,0},{4565,59261,0},{4563,59263,0},{4562,59261,0}, {4565,59266,0},{4563,59271,0},{4567,59269,0},{4568,59274,0},{4567,59281,0}, {4565,59283,0},{4565,59289,0},{4562,59284,0},{4560,59288,0},{4562,59289,0}, {4567,59301,0},{4565,59293,0},{4567,59294,0},{4570,59311,0},{4578,59328,0}, {4587,59339,0},{4588,59344,0},{4587,59346,0},{4583,59344,0},{4568,59348,0}, {4567,59354,0},{4563,59356,0},{4562,59364,0},{4562,59369,0},{4563,59373,0}, {4562,59371,0},{4562,59374,0},{4567,59379,0},{4568,59389,0},{4560,59399,0}, {4558,59399,0},{4553,59403,0},{4550,59413,0},{4545,59413,0},{4540,59399,0}, {4542,59399,0},{4538,59389,0},{4537,59388,0},{4535,59389,0},{4533,59411,0}, {4535,59424,0},{4533,59433,0},{4532,59439,0},{4527,59439,0},{4530,59433,0}, {4527,59434,0},{4523,59431,0},{4520,59424,0},{4523,59421,0},{4527,59424,0}, {4525,59419,0},{4520,59419,0},{4525,59416,0},{4525,59409,0},{4522,59399,0}, {4518,59399,0},{4518,59403,0},{4517,59401,0},{4515,59396,0},{4517,59393,0}, {4515,59391,0},{4515,59384,0},{4513,59381,0},{4515,59374,0},{4517,59373,0}, {4515,59371,0},{4518,59366,0},{4512,59373,0},{4512,59369,0},{4508,59371,0}, {4508,59366,0},{4510,59366,0},{4508,59364,0},{4510,59361,0},{4508,59361,0}, {4510,59354,0},{4507,59354,0},{4508,59351,0},{4505,59353,0},{4505,59348,0}, {4502,59348,0},{4505,59343,0},{4502,59341,0},{4502,59336,0},{4502,59334,0}, {4500,59331,0},{4498,59338,0},{4498,59329,0},{4497,59329,0},{4498,59321,0}, {4495,59318,0},{4495,59313,0},{4493,59309,0},{4492,59304,0},{4492,59303,0}, {4488,59303,0},{4492,59299,0},{4490,59296,0},{4488,59296,0},{4485,59291,0}, {4483,59291,0},{4490,59288,0},{4485,59284,0},{4487,59281,0},{4483,59279,0}, {4480,59283,0},{4480,59279,0},{4483,59278,0},{4483,59274,0},{4482,59274,0}, {4480,59269,0},{4478,59271,0},{4480,59268,0},{4478,59261,0},{4478,59256,0}, {4475,59253,0},{4472,59256,0},{4472,59253,0},{4473,59249,0},{4472,59249,0}, {4473,59243,0},{4470,59238,0},{4472,59236,0},{4477,59236,0},{4477,59234,0}, {4477,59233,0},{4477,59229,0},{4470,59234,0},{4467,59231,0},{4472,59231,0}, {4473,59226,0},{4478,59224,0},{4473,59224,0},{4468,59221,0},{4470,59219,0}, {4473,59221,0},{4467,59216,0},{4473,59213,0},{4472,59211,0},{4468,59213,0}, {4465,59208,0},{4463,59208,0},{4463,59196,0},{4465,59194,0},{4467,59198,0}, {4468,59196,0},{4467,59191,0},{4463,59194,0},{4458,59193,0},{4468,59176,0}, {4470,59174,0},{4472,59171,0},{4467,59173,0},{4467,59178,0},{4463,59179,0}, {4458,59183,0},{4455,59181,0},{4452,59184,0},{4448,59183,0},{4447,59179,0}, {4447,59178,0},{4448,59178,0},{4448,59176,0},{4443,59173,0},{4447,59173,0}, {4447,59166,0},{4445,59166,0},{4447,59161,0},{4450,59159,0},{4447,59158,0}, {4447,59156,0},{4448,59154,0},{4453,59158,0},{4450,59156,0},{4452,59153,0}, {4450,59151,0},{4448,59149,0},{4452,59143,0},{4453,59141,0},{4458,59144,0}, {4462,59143,0},{4463,59144,0},{4465,59143,0},{4468,59148,0},{4465,59138,0}, {4463,59129,0},{4458,59129,0},{4452,59134,0},{4452,59131,0},{4447,59128,0}, {4448,59124,0},{4455,59124,0},{4458,59119,0},{4457,59116,0},{4453,59114,0}, {4457,59106,0},{4450,59106,0},{4447,59104,0},{4447,59106,0},{4445,59101,0}, {4442,59103,0},{4440,59111,0},{4440,59106,0},{4438,59106,0},{4437,59114,0}, {4435,59101,0},{4433,59103,0},{4432,59106,0},{4435,59106,0},{4432,59109,0}, {4430,59108,0},{4428,59108,0},{4430,59113,0},{4427,59111,0},{4425,59108,0}, {4427,59103,0},{4430,59103,0},{4433,59094,0},{4428,59101,0},{4425,59099,0}, {4425,59096,0},{4413,59086,0},{4415,59083,0},{4415,59079,0},{4415,59076,0}, {4413,59074,0},{4412,59078,0},{4413,59079,0},{4412,59081,0},{4408,59081,0}, {4407,59078,0},{4407,59074,0},{4405,59071,0},{4405,59064,0},{4403,59069,0}, {4398,59069,0},{4398,59066,0},{4395,59063,0},{4395,59054,0},{4392,59051,0}, {4388,59056,0},{4387,59058,0},{4387,59054,0},{4382,59053,0},{4382,59051,0}, {4387,59049,0},{4388,59046,0},{4383,59048,0},{4380,59048,0},{4380,59044,0}, {4387,59039,0},{4385,59039,0},{4382,59041,0},{4380,59043,0},{4375,59039,0}, {4383,59033,0},{4375,59036,0},{4370,59033,0},{4372,59031,0},{4370,59029,0}, {4370,59028,0},{4375,59028,0},{4367,59024,0},{4368,59021,0},{4375,59023,0}, {4372,59019,0},{4370,59018,0},{4380,59013,0},{4378,59013,0},{4378,59011,0}, {4372,59014,0},{4368,59011,0},{4367,59009,0},{4368,59006,0},{4370,59003,0}, {4375,59004,0},{4377,59003,0},{4373,59003,0},{4373,58999,0},{4367,59003,0}, {4362,59001,0},{4360,58999,0},{4355,59003,0},{4357,58999,0},{4357,58996,0}, {4360,58991,0},{4357,58991,0},{4353,58996,0},{4350,58994,0},{4355,58993,0}, {4355,58991,0},{4352,58989,0},{4352,58988,0},{4347,58989,0},{4353,58981,0}, {4355,58981,0},{4357,58979,0},{4348,58971,0},{4350,58969,0},{4350,58963,0}, {4357,58963,0},{4357,58961,0},{4355,58961,0},{4357,58958,0},{4368,58958,0}, {4365,58956,0},{4362,58956,0},{4363,58954,0},{4370,58954,0},{4373,58951,0}, {4380,58949,0},{4377,58949,0},{4383,58944,0},{4382,58943,0},{4380,58943,0}, {4378,58941,0},{4378,58938,0},{4385,58938,0},{4383,58936,0},{4380,58936,0}, {4373,58939,0},{4370,58938,0},{4373,58936,0},{4368,58934,0},{4375,58931,0}, {4372,58931,0},{4373,58929,0},{4377,58928,0},{4373,58924,0},{4380,58923,0}, {4383,58926,0},{4383,58923,0},{4382,58923,0},{4383,58921,0},{4385,58919,0}, {4402,58921,0},{4408,58918,0},{4410,58914,0},{4417,58918,0},{4423,58923,0}, {4433,58924,0},{4448,58938,0},{4453,58949,0},{4458,58951,0},{4458,58941,0}, {4445,58924,0},{4438,58918,0},{4442,58918,0},{4460,58941,0},{4462,58946,0}, {4468,58958,0},{4467,58959,0},{4460,58961,0},{4462,58968,0},{4468,58976,0}, {4478,58993,0},{4468,58971,0},{4470,58968,0},{4467,58964,0},{4468,58961,0}, {4470,58961,0},{4490,58998,0},{4492,59006,0},{4500,59019,0},{4505,59033,0}, {4515,59054,0},{4522,59079,0},{4525,59093,0},{4528,59096,0},{4530,59096,0}, {4533,59088,0},{4530,59103,0},{4527,59104,0},{4523,59101,0},{4520,59099,0}, {4517,59101,0},{4515,59098,0},{4513,59098,0},{4510,59099,0},{4513,59104,0}, {4510,59114,0},{4505,59121,0},{4498,59121,0},{4500,59121,0},{4500,59126,0}, {4502,59124,0},{4505,59126,0},{4505,59124,0},{4512,59116,0},{4515,59116,0}, {4517,59119,0},{4520,59121,0},{4528,59148,0},{4527,59151,0},{4528,59156,0}, {4532,59158,0},{4530,59163,0},{4532,59164,0},{4532,59178,0},{4533,59183,0}, {4532,59188,0},{4528,59189,0},{4533,59189,0},{4537,59199,0},{4537,59184,0}, {4540,59176,0},{4538,59173,0},{4540,59161,0},{4538,59151,0},{4535,59148,0}, {4537,59144,0},{4538,59144,0},{4540,59139,0},{4538,59136,0},{4538,59131,0}, {4540,59133,0},{4542,59129,0},{4540,59114,0},{4538,59111,0},{4540,59104,0}, {4537,59104,0},{4537,59098,0},{4540,59091,0},{4542,59079,0},{4538,59069,0}, {4535,59064,0},{4533,59066,0},{4532,59061,0},{4528,59059,0},{4532,59059,0}, {4533,59059,0},{4535,59054,0},{4535,59049,0},{4532,59043,0},{4535,59043,0}, {4542,59044,0},{4545,59051,0},{4547,59056,0},{4548,59053,0},{4553,59068,0}, {4558,59073,0},{4560,59079,0},{4567,59088,0},{4568,59091,0},{4572,59093,0}, {4573,59093,0},{4575,59096,0},{4580,59099,0},{4582,59106,0},{4580,59106,0}, {4577,59103,0},{4573,59103,0},{4577,59109,0},{4577,59106,0},{4580,59108,0}, {4583,59109,0},{4588,59103,0},{4588,59099,0},{4587,59103,0},{4577,59089,0}, {4572,59088,0},{4573,59081,0},{4577,59084,0},{4582,59088,0},{4585,59083,0}, {4590,59083,0},{4587,59081,0},{4590,59078,0},{4595,59074,0},{4600,59068,0}, {4605,59068,0},{4608,59061,0},{4608,59059,0},{4603,59066,0},{4600,59066,0}, {4593,59074,0},{4585,59079,0},{4580,59076,0},{4575,59069,0},{4572,59071,0}, {4572,59066,0},{4562,59061,0},{4560,59058,0},{4563,59054,0},{4562,59044,0}, {4555,59034,0},{4545,59003,0},{4537,58984,0},{4532,58981,0},{4532,58974,0}, {4527,58964,0},{4525,58963,0},{4527,58958,0},{4525,58954,0},{4520,58946,0}, {4522,58938,0},{4528,58933,0},{4528,58926,0},{4530,58923,0},{4532,58923,0}, {4538,58934,0},{4542,58936,0},{4547,58936,0},{4542,58931,0},{4535,58928,0}, {4535,58923,0},{4533,58916,0},{4528,58921,0},{4528,58928,0},{4525,58931,0}, {4522,58923,0},{4520,58921,0},{4517,58914,0},{4522,58911,0},{4520,58904,0}, {4518,58906,0},{4518,58911,0},{4517,58911,0},{4513,58904,0},{4515,58901,0}, {4512,58901,0},{4510,58896,0},{4507,58893,0},{4508,58889,0},{4512,58889,0}, {4515,58888,0},{4513,58884,0},{4515,58883,0},{4508,58871,0},{4507,58866,0}, {4508,58864,0},{4505,58861,0},{4507,58856,0},{4508,58858,0},{4510,58858,0}, {4508,58856,0},{4508,58851,0},{4505,58848,0},{4507,58846,0},{4512,58846,0}, {4513,58851,0},{4515,58843,0},{4518,58841,0},{4515,58838,0},{4517,58833,0}, {4512,58831,0},{4508,58833,0},{4515,58824,0},{4522,58823,0},{4522,58821,0}, {4525,58818,0},{4522,58818,0},{4518,58819,0},{4518,58816,0},{4517,58816,0}, {4517,58819,0},{4508,58826,0},{4507,58826,0},{4498,58833,0},{4493,58829,0}, {4497,58826,0},{4495,58824,0},{4492,58826,0},{4490,58824,0},{4493,58818,0}, {4492,58816,0},{4488,58821,0},{4483,58823,0},{4488,58823,0},{4487,58826,0}, {4490,58826,0},{4487,58831,0},{4483,58829,0},{4485,58833,0},{4492,58831,0}, {4487,58836,0},{4487,58838,0},{4483,58839,0},{4478,58833,0},{4478,58829,0}, {4477,58829,0},{4475,58826,0},{4472,58826,0},{4467,58816,0},{4467,58818,0}, {4467,58813,0},{4468,58811,0},{4467,58809,0},{4465,58811,0},{4465,58809,0}, {4467,58804,0},{4472,58806,0},{4472,58801,0},{4470,58801,0},{4472,58798,0}, {4470,58798,0},{4468,58799,0},{4465,58799,0},{4463,58801,0},{4463,58798,0}, {4462,58796,0},{4468,58793,0},{4468,58791,0},{4462,58793,0},{4462,58786,0}, {4465,58786,0},{4463,58784,0},{4467,58783,0},{4467,58781,0},{4465,58781,0}, {4463,58778,0},{4463,58781,0},{4455,58779,0},{4455,58773,0},{4457,58773,0}, {4458,58771,0},{4455,58768,0},{4452,58766,0},{4452,58763,0},{4462,58763,0}, {4455,58759,0},{4455,58756,0},{4460,58759,0},{4462,58758,0},{4458,58756,0}, {4460,58753,0},{4455,58751,0},{4457,58749,0},{4450,58753,0},{4450,58748,0}, {4442,58746,0},{4443,58744,0},{4450,58746,0},{4450,58744,0},{4443,58743,0}, {4443,58741,0},{4452,58739,0},{4448,58738,0},{4448,58734,0},{4447,58734,0}, {4445,58738,0},{4442,58739,0},{4440,58738,0},{4442,58734,0},{4440,58734,0}, {4435,58731,0},{4437,58729,0},{4438,58729,0},{4440,58728,0},{4442,58726,0}, {4447,58726,0},{4448,58726,0},{4452,58721,0},{4447,58721,0},{4448,58718,0}, {4453,58718,0},{4453,58716,0},{4448,58714,0},{4450,58711,0},{4453,58711,0}, {4453,58706,0},{4452,58706,0},{4452,58709,0},{4447,58709,0},{4447,58701,0}, {4443,58698,0},{4442,58698,0},{4442,58694,0},{4450,58694,0},{4450,58689,0}, {4448,58691,0},{4440,58691,0},{4440,58689,0},{4445,58689,0},{4442,58684,0}, {4443,58679,0},{4438,58683,0},{4432,58681,0},{4432,58684,0},{4428,58684,0}, {4428,58683,0},{4427,58684,0},{4425,58684,0},{4430,58674,0},{4432,58668,0}, {4437,58663,0},{4433,58658,0},{4433,58654,0},{4438,58658,0},{4438,58661,0}, {4440,58661,0},{4442,58661,0},{4442,58668,0},{4445,58664,0},{4445,58661,0}, {4440,58656,0},{4443,58656,0},{4457,58663,0},{4458,58656,0},{4448,58654,0}, {4447,58653,0},{4447,58651,0},{4450,58651,0},{4448,58648,0},{4445,58644,0}, {4443,58638,0},{4435,58643,0},{4430,58636,0},{4422,58631,0},{4410,58628,0}, {4410,58631,0},{4407,58629,0},{4405,58624,0},{4402,58624,0},{4400,58618,0}, {4398,58616,0},{4397,58618,0},{4393,58611,0},{4397,58609,0},{4402,58614,0}, {4402,58613,0},{4395,58606,0},{4400,58606,0},{4398,58599,0},{4402,58603,0}, {4403,58599,0},{4407,58601,0},{4407,58599,0},{4405,58599,0},{4405,58596,0}, {4402,58598,0},{4400,58596,0},{4400,58594,0},{4385,58586,0},{4392,58583,0}, {4385,58581,0},{4390,58579,0},{4393,58581,0},{4397,58579,0},{4402,58584,0}, {4403,58583,0},{4402,58581,0},{4397,58578,0},{4390,58578,0},{4385,58579,0}, {4383,58578,0},{4387,58578,0},{4385,58576,0},{4388,58569,0},{4393,58571,0}, {4393,58574,0},{4395,58571,0},{4400,58573,0},{4403,58576,0},{4403,58573,0}, {4402,58569,0},{4392,58561,0},{4388,58561,0},{4388,58564,0},{4383,58563,0}, {4387,58566,0},{4385,58566,0},{4378,58564,0},{4377,58561,0},{4398,58556,0}, {4403,58558,0},{4407,58559,0},{4408,58559,0},{4407,58558,0},{4400,58549,0}, {4397,58549,0},{4398,58554,0},{4375,58559,0},{4372,58554,0},{4375,58553,0}, {4377,58551,0},{4380,58551,0},{4385,58553,0},{4385,58551,0},{4388,58551,0}, {4388,58549,0},{4387,58546,0},{4385,58549,0},{4380,58548,0},{4380,58546,0}, {4382,58546,0},{4380,58544,0},{4373,58538,0},{4385,58544,0},{4387,58543,0}, {4385,58543,0},{4375,58536,0},{4377,58534,0},{4387,58541,0},{4385,58538,0}, {4383,58536,0},{4387,58538,0},{4388,58538,0},{4383,58533,0},{4383,58528,0}, {4378,58519,0},{4375,58518,0},{4372,58513,0},{4367,58513,0},{4367,58508,0}, {4365,58509,0},{4365,58516,0},{4358,58518,0},{4357,58511,0},{4358,58511,0}, {4357,58509,0},{4353,58506,0},{4357,58506,0},{4357,58503,0},{4350,58499,0}, {4347,58501,0},{4348,58504,0},{4347,58504,0},{4337,58491,0},{4335,58484,0}, {4327,58478,0},{4322,58479,0},{4320,58476,0},{4318,58478,0},{4317,58474,0}, {4308,58469,0},{4312,58463,0},{4307,58461,0},{4308,58463,128},{4305,58461,0}, {4305,58466,0},{4293,58458,0},{4287,58454,0},{4142,58489,129},{4138,58498,1}, {4137,58501,1},{4135,58496,1},{4133,58483,1},{4133,58466,1},{4132,58458,1}, {4135,58453,1},{4145,58464,1},{4142,58489,1},{4288,58454,128},{4287,58454,0}, {4285,58454,0},{4272,58458,0},{4267,58464,0},{4267,58468,0},{4268,58471,0}, {4268,58474,0},{4267,58474,0},{4263,58476,0},{4262,58483,0},{4262,58484,0}, {4258,58484,0},{4258,58471,0},{4257,58461,0},{4252,58458,0},{4248,58458,0}, {4245,58451,0},{4242,58444,0},{4237,58444,0},{4233,58448,0},{4230,58448,0}, {4227,58449,0},{4223,58459,0},{4222,58469,0},{4217,58474,0},{4212,58476,0}, {4203,58476,0},{4198,58473,0},{4197,58473,0},{4193,58479,0},{4192,58488,0}, {4183,58484,0},{4177,58488,0},{4173,58501,0},{4173,58516,0},{4177,58528,0}, {4182,58538,0},{4190,58534,0},{4193,58533,0},{4190,58529,0},{4195,58529,0}, {4200,58528,0},{4205,58524,0},{4205,58519,0},{4202,58518,0},{4208,58513,0}, {4208,58521,0},{4207,58528,0},{4203,58533,0},{4197,58538,0},{4190,58541,0}, {4183,58543,0},{4173,58543,0},{4167,58543,0},{4155,58534,0},{4167,58539,0}, {4167,58524,0},{4162,58509,0},{4163,58494,0},{4157,58488,0},{4153,58468,0}, {4173,58473,0},{4175,58466,0},{4158,58451,0},{4163,58446,0},{4155,58443,0}, {4153,58439,0},{4150,58431,0},{4152,58429,0},{4153,58433,0},{4157,58431,0}, {4153,58429,0},{4155,58426,0},{4153,58426,0},{4152,58426,0},{4150,58423,0}, {4132,58353,128},{4132,58348,0},{4133,58349,0},{4133,58348,0},{4135,58339,0}, {4132,58336,0},{4132,58333,0},{4135,58328,0},{4130,58324,0},{4132,58316,0}, {4130,58316,0},{4132,58314,0},{4128,58311,0},{4128,58306,0},{4130,58301,0}, {4132,58301,0},{4135,58303,0},{4137,58298,0},{4135,58298,0},{4132,58301,0}, {4128,58301,0},{4128,58289,0},{4125,58284,0},{4127,58283,0},{4125,58283,0}, {4127,58279,0},{4128,58274,0},{4125,58268,0},{4127,58259,0},{4125,58256,0}, {4125,58248,0},{4130,58244,0},{4122,58236,0},{4122,58231,0},{4117,58226,0}, {4115,58221,0},{4117,58221,0},{4118,58219,0},{4117,58218,0},{4117,58214,0}, {4113,58211,0},{4112,58199,0},{4105,58189,0},{4105,58186,0},{4103,58184,0}, {4102,58178,0},{4102,58176,0},{4100,58171,0},{4102,58173,128},{4095,58169,0}, {4095,58164,0},{4087,58158,0},{4087,58154,0},{4082,58156,0},{4080,58144,0}, {4072,58138,0},{4072,58136,0},{4075,58136,0},{4087,58144,0},{4102,58148,0}, {4107,58149,0},{4118,58148,0},{4125,58141,0},{4130,58143,0},{4132,58141,0}, {4127,58138,0},{4120,58139,0},{4117,58144,0},{4102,58146,0},{4097,58146,0}, {4087,58141,0},{4078,58136,0},{4072,58134,0},{4067,58124,0},{4067,58123,0}, {4072,58126,0},{4070,58123,0},{4065,58116,0},{4058,58114,0},{4055,58111,0}, {4052,58111,0},{4050,58111,128},{4047,58109,0},{4045,58111,0},{4043,58116,0}, {4045,58126,0},{4040,58138,0},{4047,58136,0},{4045,58138,0},{4040,58141,0}, {4028,58141,0},{4008,58133,0},{4008,58134,0},{4005,58134,0},{3978,58128,0}, {3988,58128,0},{3997,58131,0},{4005,58131,0},{4005,58128,0},{4003,58131,0}, {4002,58129,0},{4000,58124,0},{3997,58126,0},{3993,58123,0},{3992,58128,0}, {3988,58123,0},{3985,58124,0},{3982,58121,0},{3977,58118,0},{3970,58121,0}, {3957,58104,0},{3952,58108,0},{3952,58104,0},{3953,58103,0},{3953,58098,0}, {3955,58096,0},{3952,58096,0},{3948,58098,0},{3943,58096,0},{3947,58094,0}, {3943,58091,0},{3940,58089,0},{3940,58093,0},{3935,58094,0},{3930,58083,0}, {3937,58088,0},{3935,58084,0},{3933,58081,0},{3930,58081,0},{3930,58071,0}, {3928,58071,0},{3927,58074,0},{3928,58081,0},{3922,58071,0},{3912,58066,0}, {3912,58063,0},{3912,58066,0},{3908,58064,0},{3903,58059,0},{3903,58058,0}, {3900,58058,0},{3895,58051,0},{3892,58043,0},{3893,58039,0},{3895,58039,0}, {3902,58041,0},{3913,58048,0},{3918,58046,0},{3920,58041,0},{3918,58034,0}, {3922,58033,0},{3918,58021,0},{3920,58019,0},{3923,58019,0},{3927,58013,0}, {3928,58011,0},{3930,58006,0},{3935,58003,0},{3933,57999,0},{3943,57989,0}, {3947,57984,0},{3950,57981,0},{3948,57983,0},{3950,57984,0},{3957,57984,0}, {3962,57981,0},{3965,57984,0},{3968,57986,0},{3972,57989,0},{3973,57989,0}, {3975,57991,0},{3983,58003,0},{3988,58023,0},{3990,58026,0},{3992,58024,0}, {3995,58024,0},{3997,58029,0},{4002,58033,0},{4000,58033,128},{3997,58024,0}, {3990,58021,0},{3990,58018,0},{3987,58011,0},{3985,57999,0},{3980,57993,0}, {3982,57994,128},{3978,57989,0},{3972,57988,0},{3967,57981,0},{3965,57978,0}, {3962,57976,0},{3955,57981,0},{3947,57978,0},{3942,57984,0},{3935,57986,0}, {3932,57993,0},{3925,57996,0},{3917,57996,0},{3908,57998,0},{3897,58006,0}, {3892,58006,0},{3880,58019,0},{3878,58024,0},{3880,58028,0},{3863,58029,0}, {3870,58028,0},{3870,58023,0},{3865,58024,0},{3865,58021,0},{3863,58026,0}, {3860,58016,0},{3858,58016,0},{3858,58018,0},{3857,58016,0},{3858,58023,0}, {3857,58028,0},{3858,58029,0},{3862,58029,0},{3860,58031,0},{3857,58031,0}, {3845,58033,0},{3833,58029,0},{3845,58029,0},{3845,58028,0},{3843,58028,0}, {3843,58024,0},{3840,58026,0},{3842,58021,0},{3842,58018,0},{3840,58023,0}, {3835,58023,0},{3835,58026,0},{3833,58026,0},{3823,58019,0},{3823,58016,0}, {3827,58018,0},{3823,58013,0},{3812,58008,0},{3812,58004,0},{3808,58001,0}, {3802,57999,0},{3803,57999,128},{3797,57993,0},{3793,57993,0},{3792,57994,0}, {3790,57993,0},{3787,57993,0},{3780,57986,0},{3768,57979,0},{3758,57974,0}, {3757,57978,0},{3750,57971,0},{3755,57964,0},{3752,57963,0},{3750,57966,0}, {3748,57958,0},{3745,57956,0},{3740,57956,0},{3737,57953,0},{3723,57949,0}, {3718,57949,0},{3718,57946,0},{3722,57948,0},{3715,57944,0},{3713,57941,0}, {3727,57934,0},{3732,57938,0},{3732,57936,0},{3738,57938,0},{3738,57939,0}, {3742,57941,0},{3742,57938,0},{3743,57939,0},{3747,57941,0},{3748,57944,0}, {3750,57943,0},{3748,57941,0},{3750,57941,0},{3755,57944,0},{3755,57946,0}, {3757,57943,0},{3758,57946,0},{3760,57944,0},{3762,57946,0},{3762,57949,0}, {3765,57948,0},{3767,57954,0},{3770,57953,0},{3772,57958,0},{3773,57954,0}, {3777,57959,0},{3780,57956,0},{3778,57961,0},{3780,57966,0},{3782,57964,0}, {3783,57966,0},{3783,57969,0},{3790,57968,0},{3790,57963,0},{3795,57973,0}, {3797,57971,0},{3798,57961,0},{3797,57956,0},{3793,57951,0},{3795,57948,0}, {3797,57951,0},{3798,57951,0},{3798,57948,0},{3803,57951,0},{3803,57954,0}, {3810,57961,0},{3808,57956,0},{3808,57951,0},{3810,57953,0},{3813,57954,0}, {3813,57958,0},{3815,57958,0},{3815,57946,0},{3812,57944,0},{3813,57943,0}, {3820,57943,0},{3823,57954,0},{3825,57948,0},{3828,57946,0},{3840,57953,0}, {3840,57951,0},{3832,57944,0},{3825,57941,0},{3832,57936,0},{3833,57939,0}, {3837,57939,0},{3837,57938,0},{3832,57933,0},{3828,57934,0},{3823,57933,0}, {3828,57928,0},{3830,57924,0},{3833,57921,0},{3838,57914,0},{3833,57916,0}, {3832,57914,0},{3848,57903,0},{3850,57908,0},{3848,57908,0},{3845,57909,0}, {3852,57913,0},{3853,57918,0},{3855,57918,0},{3857,57919,0},{3858,57916,0}, {3855,57913,0},{3857,57908,0},{3860,57911,0},{3862,57909,0},{3862,57914,0}, {3863,57919,0},{3860,57919,0},{3860,57923,0},{3857,57931,0},{3858,57936,0}, {3860,57939,0},{3865,57939,0},{3860,57934,0},{3862,57928,0},{3863,57926,0}, {3865,57926,0},{3865,57921,0},{3868,57926,0},{3868,57919,0},{3872,57919,0}, {3868,57916,0},{3872,57913,0},{3875,57916,0},{3877,57914,0},{3877,57913,0}, {3872,57909,0},{3872,57908,0},{3878,57909,0},{3875,57906,0},{3868,57904,0}, {3868,57903,0},{3877,57903,0},{3883,57909,0},{3882,57914,0},{3880,57914,0}, {3877,57919,0},{3880,57926,0},{3878,57921,0},{3880,57918,0},{3885,57919,0}, {3887,57926,0},{3888,57921,0},{3892,57921,0},{3888,57918,0},{3893,57918,0}, {3897,57914,0},{3893,57909,0},{3892,57909,0},{3892,57906,0},{3892,57903,0}, {3888,57904,0},{3885,57901,0},{3890,57901,0},{3903,57906,0},{3898,57913,0}, {3900,57919,0},{3902,57921,0},{3903,57921,0},{3907,57919,0},{3907,57923,0}, {3908,57923,0},{3913,57929,0},{3912,57923,0},{3912,57921,0},{3913,57921,0}, {3912,57919,0},{3912,57918,0},{3908,57918,0},{3903,57916,0},{3903,57913,0}, {3912,57913,0},{3915,57909,0},{3932,57919,0},{3933,57924,0},{3937,57924,0}, {3937,57926,0},{3937,57953,0},{3940,57934,0},{3947,57944,0},{3947,57953,0}, {3950,57946,0},{3953,57951,0},{3958,57953,0},{3957,57951,0},{3947,57936,0}, {3948,57936,0},{3955,57941,0},{3960,57943,0},{3955,57938,0},{3957,57934,0}, {3957,57929,0},{3948,57924,0},{3945,57929,0},{3937,57916,0},{3938,57913,0}, {3947,57914,0},{3947,57913,0},{3945,57911,0},{3938,57909,0},{3933,57911,0}, {3932,57908,0},{3940,57904,0},{3938,57896,0},{3937,57898,0},{3937,57901,0}, {3935,57903,0},{3933,57903,0},{3933,57899,0},{3930,57899,0},{3933,57894,0}, {3932,57893,0},{3927,57898,0},{3927,57894,0},{3930,57891,0},{3930,57888,0}, {3925,57893,0},{3923,57898,0},{3922,57894,0},{3922,57888,0},{3923,57888,0}, {3927,57879,0},{3925,57874,0},{3923,57878,0},{3922,57879,0},{3922,57884,0}, {3918,57884,0},{3917,57888,0},{3917,57891,0},{3910,57894,0},{3907,57894,0}, {3908,57891,0},{3910,57884,0},{3908,57884,0},{3905,57894,0},{3902,57896,0}, {3900,57896,0},{3900,57893,0},{3898,57891,0},{3902,57886,0},{3907,57881,0}, {3907,57879,0},{3893,57891,0},{3892,57891,0},{3897,57884,0},{3895,57883,0}, {3893,57883,0},{3890,57888,0},{3888,57886,0},{3888,57883,0},{3887,57884,0}, {3883,57883,0},{3885,57888,0},{3883,57888,0},{3877,57881,0},{3873,57881,0}, {3872,57884,0},{3853,57886,0},{3842,57896,0},{3837,57899,0},{3833,57894,0}, {3835,57891,0},{3837,57889,0},{3838,57888,0},{3842,57879,0},{3848,57873,0}, {3868,57868,0},{3848,57869,0},{3840,57878,0},{3837,57886,0},{3832,57888,0}, {3830,57891,0},{3830,57899,0},{3823,57898,0},{3817,57904,0},{3813,57904,0}, {3810,57903,0},{3805,57904,0},{3812,57894,0},{3818,57893,0},{3820,57893,0}, {3820,57891,0},{3817,57891,0},{3813,57889,0},{3817,57886,0},{3813,57886,0}, {3813,57884,0},{3820,57879,0},{3823,57874,0},{3823,57861,0},{3825,57858,0}, {3837,57854,0},{3840,57849,0},{3828,57853,0},{3827,57853,0},{3827,57849,0}, {3835,57839,0},{3848,57834,0},{3843,57833,0},{3842,57828,0},{3843,57826,0}, {3845,57826,0},{3845,57823,0},{3840,57824,0},{3837,57818,0},{3837,57816,0}, {3840,57811,0},{3848,57809,0},{3855,57813,0},{3857,57819,0},{3858,57816,0}, {3860,57818,0},{3862,57824,0},{3868,57826,0},{3870,57834,0},{3875,57836,0}, {3880,57834,0},{3887,57834,0},{3890,57829,0},{3890,57831,128},{3890,57829,0}, {3885,57833,0},{3873,57833,0},{3870,57824,0},{3868,57823,0},{3870,57823,0}, {3870,57821,0},{3868,57819,0},{3865,57823,0},{3863,57819,0},{3863,57816,0}, {3865,57816,0},{3865,57813,0},{3858,57809,0},{3857,57811,0},{3855,57808,0}, {3853,57808,0},{3850,57806,0},{3840,57806,0},{3843,57803,0},{3843,57801,0}, {3837,57808,0},{3835,57803,0},{3833,57811,0},{3835,57821,0},{3840,57833,0}, {3838,57836,0},{3835,57836,0},{3833,57836,0},{3832,57831,0},{3825,57841,0}, {3820,57841,0},{3817,57851,0},{3817,57859,0},{3813,57863,0},{3815,57868,0}, {3813,57873,0},{3815,57876,0},{3812,57878,0},{3807,57884,0},{3803,57883,0}, {3802,57883,0},{3802,57889,0},{3800,57891,0},{3798,57889,0},{3798,57894,0}, {3790,57913,0},{3788,57913,0},{3782,57911,0},{3785,57906,0},{3785,57904,0}, {3778,57908,0},{3775,57906,0},{3773,57904,0},{3770,57908,0},{3770,57904,0}, {3767,57904,0},{3767,57903,0},{3763,57904,0},{3763,57906,0},{3762,57904,0}, {3762,57899,0},{3765,57894,0},{3767,57894,0},{3765,57893,0},{3770,57889,0}, {3765,57888,0},{3767,57884,0},{3770,57884,0},{3775,57879,0},{3778,57878,0}, {3778,57874,0},{3782,57874,0},{3782,57871,0},{3783,57869,0},{3783,57864,0}, {3792,57859,0},{3795,57853,0},{3798,57853,0},{3800,57848,0},{3808,57843,0}, {3812,57833,0},{3817,57831,0},{3817,57823,0},{3813,57826,0},{3815,57831,0}, {3810,57833,0},{3807,57843,0},{3805,57844,0},{3798,57846,0},{3797,57849,0}, {3792,57853,0},{3790,57858,0},{3780,57864,0},{3778,57868,0},{3777,57869,0}, {3775,57874,0},{3763,57883,0},{3762,57893,0},{3758,57896,0},{3757,57908,0}, {3755,57904,0},{3755,57898,0},{3753,57896,0},{3748,57906,0},{3750,57908,0}, {3752,57908,0},{3750,57911,0},{3748,57911,0},{3747,57908,0},{3743,57913,0}, {3738,57913,0},{3732,57909,0},{3735,57906,0},{3738,57904,0},{3737,57901,0}, {3738,57899,0},{3743,57896,0},{3742,57893,0},{3738,57896,0},{3738,57891,0}, {3737,57891,0},{3733,57896,0},{3732,57893,0},{3732,57898,0},{3728,57899,0}, {3727,57891,0},{3732,57878,0},{3740,57871,0},{3743,57868,0},{3753,57859,0}, {3753,57858,0},{3750,57856,0},{3748,57861,0},{3730,57876,0},{3723,57891,0}, {3723,57899,0},{3717,57898,0},{3717,57904,0},{3713,57908,0},{3710,57903,0}, {3710,57909,0},{3708,57909,0},{3700,57908,0},{3700,57899,0},{3697,57896,0}, {3705,57889,0},{3707,57884,0},{3710,57883,0},{3708,57881,0},{3713,57874,0}, {3718,57874,0},{3722,57873,0},{3722,57863,0},{3720,57861,0},{3722,57859,0}, {3725,57853,0},{3727,57851,0},{3732,57849,0},{3727,57849,0},{3723,57844,0}, {3732,57836,0},{3728,57831,0},{3733,57828,0},{3732,57823,0},{3733,57813,0}, {3735,57811,0},{3732,57809,0},{3732,57808,0},{3728,57818,0},{3728,57826,0}, {3727,57829,0},{3728,57836,0},{3723,57839,0},{3720,57846,0},{3720,57856,0}, {3715,57863,0},{3718,57869,0},{3705,57871,0},{3703,57878,0},{3702,57879,0}, {3700,57878,0},{3697,57888,0},{3693,57886,0},{3690,57888,0},{3687,57884,0}, {3685,57884,0},{3690,57894,0},{3688,57901,0},{3687,57904,0},{3685,57906,0}, {3688,57904,0},{3692,57906,0},{3693,57904,0},{3697,57909,0},{3692,57919,0}, {3692,57926,0},{3690,57929,0},{3692,57936,0},{3655,57951,0},{3627,57958,0}, {3612,57964,0},{3590,57979,0},{3578,57984,0},{3585,57978,0},{3590,57976,0}, {3600,57969,0},{3600,57964,0},{3602,57964,0},{3600,57966,0},{3602,57968,0}, {3603,57968,0},{3605,57968,0},{3607,57963,0},{3618,57961,0},{3628,57954,0}, {3640,57953,0},{3653,57948,0},{3660,57948,0},{3672,57943,0},{3670,57939,0}, {3658,57938,0},{3653,57941,0},{3657,57941,0},{3657,57944,0},{3648,57946,0}, {3650,57939,0},{3652,57939,0},{3658,57931,0},{3653,57934,0},{3650,57933,0}, {3643,57939,0},{3643,57938,0},{3642,57938,0},{3635,57943,0},{3640,57941,0}, {3640,57943,0},{3642,57943,0},{3643,57944,0},{3635,57944,0},{3627,57949,0}, {3607,57958,0},{3610,57951,0},{3617,57949,0},{3622,57944,0},{3623,57946,0}, {3625,57941,0},{3628,57943,0},{3632,57939,0},{3632,57936,0},{3627,57941,0}, {3623,57939,0},{3622,57941,0},{3620,57939,0},{3617,57946,0},{3618,57934,0}, {3622,57931,0},{3625,57926,0},{3628,57923,0},{3630,57916,0},{3632,57918,0}, {3632,57916,0},{3628,57914,0},{3625,57921,0},{3622,57924,0},{3617,57931,0}, {3615,57929,0},{3612,57919,0},{3615,57914,0},{3622,57908,0},{3620,57908,0}, {3615,57911,0},{3613,57913,0},{3610,57916,0},{3610,57914,0},{3615,57899,0}, {3618,57896,0},{3618,57894,0},{3620,57889,0},{3617,57893,0},{3612,57898,0}, {3610,57904,0},{3608,57899,0},{3608,57894,0},{3607,57893,0},{3605,57894,0}, {3600,57884,0},{3602,57878,0},{3605,57874,0},{3603,57871,0},{3605,57868,0}, {3610,57866,0},{3612,57864,0},{3617,57863,0},{3623,57864,0},{3628,57869,0}, {3632,57864,0},{3628,57866,0},{3622,57861,0},{3613,57859,0},{3600,57866,0}, {3600,57868,0},{3595,57863,0},{3593,57871,0},{3595,57883,0},{3598,57896,0}, {3597,57898,0},{3593,57898,0},{3595,57901,0},{3592,57908,0},{3593,57909,0}, {3593,57906,0},{3597,57908,0},{3600,57919,0},{3598,57931,0},{3595,57934,0}, {3595,57929,0},{3592,57929,0},{3593,57934,0},{3587,57931,0},{3587,57928,0}, {3585,57931,0},{3578,57931,0},{3580,57924,0},{3578,57924,0},{3575,57931,0}, {3572,57931,0},{3568,57933,0},{3568,57926,0},{3570,57923,0},{3568,57923,0}, {3567,57926,0},{3565,57933,0},{3572,57936,0},{3588,57938,0},{3592,57943,0}, {3588,57946,0},{3587,57949,0},{3588,57951,0},{3593,57946,0},{3592,57951,0}, {3593,57954,0},{3595,57949,0},{3597,57951,0},{3597,57954,0},{3593,57954,0}, {3588,57961,0},{3582,57964,0},{3577,57963,0},{3573,57964,0},{3568,57964,0}, {3570,57959,0},{3568,57959,0},{3563,57963,0},{3562,57961,0},{3560,57958,0}, {3557,57958,0},{3557,57954,0},{3557,57953,0},{3558,57954,0},{3558,57949,0}, {3563,57948,0},{3562,57946,0},{3558,57946,0},{3555,57944,0},{3552,57938,0}, {3550,57939,0},{3548,57936,0},{3547,57936,0},{3542,57933,0},{3543,57931,0}, {3542,57929,0},{3538,57929,0},{3537,57923,0},{3533,57921,0},{3535,57919,0}, {3535,57913,0},{3537,57911,0},{3535,57909,0},{3535,57908,0},{3542,57901,0}, {3538,57899,0},{3535,57901,0},{3533,57899,0},{3535,57898,0},{3537,57894,0}, {3537,57898,0},{3538,57896,0},{3542,57898,0},{3547,57896,0},{3545,57893,0}, {3540,57893,0},{3540,57888,0},{3537,57891,0},{3538,57886,0},{3542,57884,0}, {3543,57886,0},{3543,57881,0},{3547,57881,0},{3550,57878,0},{3550,57888,0}, {3553,57889,0},{3555,57878,0},{3553,57874,0},{3552,57871,0},{3550,57874,0}, {3547,57874,0},{3540,57878,0},{3538,57878,0},{3540,57871,0},{3543,57871,0}, {3542,57861,0},{3543,57856,0},{3545,57854,0},{3547,57844,0},{3553,57831,0}, {3548,57834,0},{3547,57838,0},{3543,57838,0},{3542,57851,0},{3540,57853,0}, {3537,57864,0},{3535,57866,0},{3530,57883,0},{3530,57886,0},{3527,57889,0}, {3522,57888,0},{3523,57879,0},{3522,57884,0},{3520,57883,0},{3522,57878,0}, {3520,57876,0},{3517,57869,0},{3515,57878,0},{3515,57879,0},{3517,57878,0}, {3517,57879,0},{3515,57881,0},{3513,57881,0},{3510,57878,0},{3508,57874,0}, {3508,57876,0},{3507,57876,0},{3498,57858,0},{3500,57851,0},{3507,57841,0}, {3507,57838,0},{3515,57828,0},{3498,57841,0},{3495,57846,0},{3493,57856,0}, {3490,57861,0},{3498,57873,0},{3498,57876,0},{3495,57876,0},{3493,57881,0}, {3493,57883,0},{3497,57879,0},{3498,57879,0},{3500,57883,0},{3497,57886,0}, {3498,57888,0},{3502,57888,0},{3507,57891,0},{3505,57893,0},{3502,57893,0}, {3498,57894,0},{3497,57889,0},{3493,57891,0},{3495,57894,0},{3493,57898,0}, {3497,57898,0},{3497,57904,0},{3502,57901,0},{3502,57904,0},{3498,57908,0}, {3497,57909,0},{3493,57906,0},{3493,57901,0},{3488,57903,0},{3487,57898,0}, {3488,57896,0},{3483,57894,0},{3477,57886,0},{3473,57886,0},{3473,57878,0}, {3477,57878,0},{3478,57879,0},{3482,57874,0},{3472,57874,0},{3472,57869,0}, {3475,57869,0},{3480,57868,0},{3475,57859,0},{3475,57864,0},{3472,57866,0}, {3473,57849,0},{3472,57844,0},{3468,57826,0},{3472,57828,0},{3473,57824,0}, {3475,57824,0},{3475,57823,0},{3472,57824,0},{3468,57823,0},{3468,57819,0}, {3465,57819,0},{3455,57803,0},{3458,57796,0},{3465,57803,0},{3470,57798,0}, {3473,57799,0},{3473,57794,0},{3475,57793,0},{3468,57793,0},{3468,57796,0}, {3463,57799,0},{3462,57798,0},{3460,57791,0},{3458,57794,0},{3455,57799,0}, {3453,57798,0},{3452,57799,0},{3450,57789,0},{3438,57769,0},{3433,57764,0}, {3422,57754,0},{3415,57749,0},{3405,57748,0},{3393,57744,0},{3393,57743,0}, {3398,57744,0},{3410,57744,0},{3418,57741,0},{3402,57741,0},{3388,57734,0}, {3392,57713,0},{3390,57701,0},{3395,57699,0},{3390,57696,0},{3387,57681,0}, {3388,57681,0},{3387,57676,0},{3385,57679,0},{3383,57671,0},{3378,57661,0}, {3370,57649,0},{3363,57643,0},{3342,57623,0},{3322,57618,0},{3330,57616,0}, {3332,57609,0},{3337,57611,0},{3343,57618,0},{3337,57609,0},{3328,57606,0}, {3323,57614,0},{3318,57614,0},{3318,57618,0},{3313,57613,0},{3317,57611,0}, {3317,57609,0},{3313,57611,0},{3312,57609,0},{3313,57608,0},{3315,57603,0}, {3313,57606,0},{3312,57608,0},{3305,57598,0},{3302,57598,0},{3298,57586,0}, {3302,57586,0},{3303,57583,0},{3300,57578,0},{3295,57573,0},{3292,57574,0}, {3293,57578,0},{3292,57578,0},{3285,57566,0},{3280,57563,0},{3277,57553,0}, {3277,57549,0},{3278,57548,0},{3278,57546,0},{3285,57548,0},{3285,57546,0}, {3283,57546,0},{3285,57541,0},{3278,57543,0},{3280,57539,0},{3278,57539,0}, {3277,57541,0},{3275,57546,0},{3273,57548,0},{3273,57549,0},{3272,57549,0}, {3268,57548,0},{3265,57541,0},{3265,57534,0},{3263,57534,0},{3262,57538,0}, {3260,57536,0},{3260,57528,0},{3255,57519,0},{3262,57513,0},{3262,57509,0}, {3260,57511,0},{3257,57516,0},{3248,57503,0},{3253,57499,0},{3250,57499,0}, {3247,57496,0},{3250,57493,0},{3250,57488,0},{3255,57481,0},{3252,57483,0}, {3252,57469,0},{3250,57468,0},{3248,57481,0},{3250,57483,0},{3247,57488,0}, {3245,57478,0},{3245,57488,0},{3242,57491,0},{3240,57489,0},{3238,57486,0}, {3237,57481,0},{3235,57481,0},{3237,57489,0},{3240,57493,0},{3235,57491,0}, {3235,57489,0},{3233,57491,0},{3232,57489,0},{3225,57473,0},{3227,57471,0}, {3232,57473,0},{3238,57473,0},{3235,57471,0},{3237,57469,0},{3245,57471,0}, {3247,57471,0},{3245,57468,0},{3245,57469,0},{3237,57468,0},{3230,57469,0}, {3232,57466,0},{3238,57459,0},{3247,57456,0},{3250,57458,0},{3250,57456,0}, {3253,57453,0},{3253,57451,0},{3248,57454,0},{3240,57456,0},{3238,57458,0}, {3232,57456,0},{3225,57461,0},{3225,57466,0},{3222,57469,0},{3215,57464,0}, {3210,57454,0},{3218,57458,0},{3225,57458,0},{3222,57458,0},{3220,57458,0}, {3215,57453,0},{3212,57453,0},{3205,57446,0},{3202,57448,0},{3203,57446,128}, {3202,57451,0},{3200,57453,0},{3197,57449,0},{3195,57446,0},{3198,57443,0}, {3192,57439,0},{3190,57443,0},{3187,57438,0},{3188,57431,0},{3192,57426,0}, {3188,57424,0},{3188,57428,0},{3187,57428,0},{3187,57423,0},{3185,57423,0}, {3182,57433,0},{3177,57428,0},{3173,57424,0},{3177,57409,0},{3175,57409,0}, {3173,57414,0},{3170,57418,0},{3167,57413,0},{3167,57421,0},{3168,57419,0}, {3170,57423,0},{3160,57423,0},{3157,57419,0},{3157,57418,0},{3162,57416,0}, {3163,57413,0},{3160,57416,0},{3157,57414,0},{3155,57411,0},{3157,57406,0}, {3155,57403,0},{3153,57406,0},{3153,57409,0},{3148,57408,0},{3153,57413,0}, {3153,57419,0},{3143,57411,0},{3138,57409,0},{3140,57408,0},{3143,57406,0}, {3143,57403,0},{3135,57408,0},{3133,57408,0},{3135,57393,0},{3137,57389,0}, {3137,57388,0},{3133,57394,0},{3132,57403,0},{3128,57408,0},{3127,57409,0}, {3122,57408,0},{3122,57406,0},{3122,57404,0},{3113,57398,0},{3115,57394,0}, {3120,57396,0},{3122,57393,0},{3118,57389,0},{3112,57391,0},{3113,57386,0}, {3107,57393,0},{3110,57393,0},{3112,57396,0},{3108,57396,0},{3102,57393,0}, {3108,57388,0},{3108,57384,0},{3102,57391,0},{3098,57389,0},{3098,57384,0}, {3097,57386,0},{3097,57391,0},{3088,57386,0},{3085,57388,0},{3085,57383,0}, {3083,57384,0},{3080,57384,0},{3077,57388,0},{3072,57386,0},{3068,57388,0}, {3070,57391,0},{3068,57393,0},{3057,57391,0},{3052,57393,0},{3055,57389,0}, {3062,57388,0},{3062,57386,0},{3055,57386,0},{3047,57394,0},{3040,57394,0}, {3038,57398,0},{3027,57398,0},{3012,57403,0},{2990,57408,0},{2987,57409,0}, {2980,57411,0},{2958,57419,0},{2925,57434,0},{2908,57444,0},{2907,57444,0}, {2905,57446,0},{2872,57468,0},{2865,57473,0},{2857,57479,0},{2847,57483,0}, {2845,57483,0},{2840,57476,0},{2820,57478,0},{2808,57479,0},{2792,57489,0}, {2787,57491,0},{2793,57486,0},{2800,57483,0},{2805,57479,0},{2822,57474,0}, {2840,57474,0},{2852,57478,0},{2860,57476,0},{2860,57469,0},{2858,57468,0}, {2862,57459,0},{2865,57458,0},{2868,57458,0},{2870,57461,0},{2873,57461,0}, {2878,57451,0},{2865,57454,0},{2860,57456,0},{2842,57461,0},{2805,57478,0}, {2770,57496,0},{2742,57506,0},{2718,57518,0},{2722,57514,0},{2722,57509,0}, {2723,57508,0},{2723,57504,0},{2718,57509,0},{2720,57514,0},{2715,57519,0}, {2713,57521,0},{2695,57529,0},{2693,57524,0},{2692,57529,0},{2678,57533,0}, {2677,57531,0},{2668,57533,0},{2657,57533,0},{2653,57531,0},{2652,57531,0}, {2628,57528,0},{2612,57526,0},{2610,57524,0},{2607,57526,0},{2595,57524,0}, {2582,57524,0},{2577,57523,0},{2582,57523,0},{2590,57523,0},{2582,57518,0}, {2575,57518,0},{2573,57511,0},{2565,57509,0},{2562,57504,0},{2553,57504,0}, {2548,57501,0},{2543,57503,0},{2540,57503,0},{2538,57504,0},{2533,57501,0}, {2533,57499,0},{2523,57493,0},{2520,57494,0},{2518,57496,0},{2520,57494,0}, {2525,57491,0},{2522,57486,0},{2522,57489,0},{2517,57491,0},{2518,57491,0}, {2522,57488,0},{2520,57484,0},{2522,57484,0},{2523,57486,0},{2525,57483,0}, {2523,57478,0},{2518,57476,0},{2518,57471,0},{2517,57471,0},{2517,57468,0}, {2513,57464,0},{2515,57459,0},{2515,57456,0},{2517,57454,0},{2518,57451,0}, {2513,57444,0},{2512,57428,0},{2517,57421,0},{2523,57418,0},{2533,57423,0}, {2527,57429,0},{2523,57438,0},{2522,57436,0},{2520,57438,0},{2522,57444,0}, {2525,57444,0},{2532,57438,0},{2533,57433,0},{2538,57421,0},{2547,57419,0}, {2550,57416,0},{2555,57418,0},{2557,57413,0},{2563,57411,0},{2565,57409,0}, {2570,57408,0},{2570,57404,0},{2572,57403,0},{2577,57401,0},{2578,57404,0}, {2582,57401,0},{2585,57396,0},{2587,57389,0},{2588,57389,0},{2588,57384,0}, {2592,57381,0},{2590,57378,0},{2592,57378,0},{2595,57374,0},{2592,57371,0}, {2590,57363,0},{2595,57363,0},{2593,57366,0},{2595,57369,0},{2598,57369,0}, {2597,57364,0},{2600,57363,0},{2602,57363,0},{2607,57359,0},{2613,57358,0}, {2610,57356,0},{2627,57353,0},{2628,57354,0},{2635,57351,0},{2635,57353,0}, {2643,57351,0},{2648,57348,0},{2645,57349,0},{2643,57348,0},{2647,57341,0}, {2648,57334,0},{2652,57336,0},{2650,57338,0},{2653,57343,0},{2663,57348,0}, {2668,57354,0},{2668,57356,0},{2672,57358,0},{2667,57346,0},{2655,57341,0}, {2653,57338,0},{2653,57336,0},{2652,57333,0},{2655,57329,0},{2660,57331,0}, {2670,57328,0},{2678,57331,0},{2687,57331,0},{2690,57326,0},{2693,57331,0}, {2695,57336,0},{2700,57338,0},{2697,57334,0},{2697,57331,0},{2695,57329,0}, {2697,57324,0},{2692,57321,0},{2697,57318,0},{2695,57316,0},{2697,57313,0}, {2700,57313,0},{2702,57309,0},{2700,57309,0},{2700,57311,0},{2695,57313,0}, {2693,57318,0},{2687,57319,0},{2678,57321,0},{2678,57319,0},{2682,57319,0}, {2680,57316,0},{2683,57306,0},{2687,57304,0},{2688,57304,0},{2693,57301,0}, {2695,57299,0},{2690,57301,0},{2705,57293,0},{2718,57286,0},{2720,57286,0}, {2718,57288,0},{2722,57286,0},{2722,57284,0},{2727,57279,0},{2730,57281,0}, {2728,57281,0},{2728,57283,0},{2740,57278,0},{2745,57269,0},{2745,57268,0}, {2752,57263,0},{2748,57266,0},{2747,57271,0},{2748,57273,0},{2748,57269,0}, {2752,57269,0},{2750,57276,0},{2752,57273,0},{2752,57276,0},{2755,57279,0}, {2755,57274,0},{2755,57278,0},{2763,57281,0},{2767,57284,0},{2773,57289,0}, {2778,57296,0},{2782,57298,0},{2792,57294,0},{2793,57291,0},{2790,57288,0}, {2782,57288,0},{2783,57283,0},{2785,57281,0},{2787,57283,0},{2793,57283,0}, {2795,57279,0},{2797,57274,0},{2798,57276,0},{2802,57271,0},{2800,57271,0}, {2803,57268,0},{2800,57268,0},{2797,57268,0},{2795,57273,0},{2795,57266,0}, {2793,57264,0},{2790,57271,0},{2788,57273,0},{2788,57279,0},{2785,57276,0}, {2782,57276,0},{2778,57274,0},{2770,57273,0},{2768,57269,0},{2770,57268,0}, {2773,57268,0},{2773,57264,0},{2778,57261,0},{2783,57254,0},{2782,57254,0}, {2772,57263,0},{2765,57264,0},{2770,57261,0},{2773,57261,0},{2780,57253,0}, {2787,57251,0},{2793,57253,0},{2795,57254,0},{2788,57253,0},{2793,57254,0}, {2807,57259,0},{2810,57259,0},{2815,57256,0},{2818,57256,0},{2820,57259,0}, {2828,57263,0},{2830,57264,0},{2830,57263,0},{2832,57263,0},{2843,57269,0}, {2850,57269,0},{2853,57273,0},{2863,57271,0},{2865,57273,0},{2867,57271,0}, {2870,57273,0},{2875,57273,0},{2875,57271,0},{2880,57268,0},{2882,57269,0}, {2880,57271,0},{2878,57273,0},{2880,57273,0},{2888,57273,0},{2892,57268,0}, {2897,57263,0},{2900,57263,0},{2900,57261,0},{2907,57261,0},{2910,57256,0}, {2912,57258,0},{2913,57256,0},{2917,57256,0},{2917,57253,0},{2918,57251,0}, {2917,57249,0},{2917,57246,0},{2918,57239,0},{2917,57236,0},{2918,57231,0}, {2920,57231,0},{2922,57229,0},{2923,57229,0},{2927,57228,0},{2930,57221,0}, {2933,57221,0},{2942,57214,0},{2943,57208,0},{2950,57201,0},{2952,57196,0}, {2958,57196,0},{2960,57198,0},{2965,57196,0},{2968,57189,0},{2975,57178,0}, {2982,57178,0},{2992,57168,0},{2997,57159,0},{2998,57158,0},{2997,57156,0}, {2998,57153,0},{3002,57148,0},{3010,57134,0},{3010,57123,0},{3007,57119,0}, {3010,57116,0},{3008,57113,0},{3010,57111,0},{3010,57109,0},{3007,57108,0}, {3007,57103,0},{3005,57099,0},{3002,57099,0},{3002,57098,0},{2998,57098,0}, {2998,57101,0},{2997,57101,0},{2998,57094,0},{3002,57091,0},{2998,57089,0}, {2998,57091,0},{2997,57093,0},{2993,57103,0},{2988,57101,0},{2988,57098,0}, {2990,57099,0},{2992,57098,0},{2992,57091,0},{2990,57088,0},{2992,57084,0}, {2988,57079,0},{2978,57061,0},{2973,57048,0},{2973,57046,0},{2978,57049,0}, {2980,57049,0},{2978,57044,0},{2975,57041,0},{2975,57039,0},{2970,57034,0}, {2972,57028,0},{2970,57018,0},{2968,57003,0},{2968,56999,0},{2972,56998,0}, {2978,56994,0},{2985,56994,0},{2987,56996,0},{2985,56996,0},{2975,56998,0}, {2968,57001,0},{2970,57006,0},{2982,57006,0},{2992,56998,0},{2995,56993,0}, {2997,56984,0},{3003,56979,0},{3000,56984,0},{2998,56988,0},{3012,56968,0}, {3013,56969,0},{3012,56974,0},{3010,56974,0},{3008,56983,0},{3007,56984,0}, {3002,56991,0},{3003,56996,0},{3005,56996,0},{3005,56994,0},{3007,56993,0}, {3003,56991,0},{3005,56988,0},{3010,56988,0},{3010,56984,0},{3013,56986,0}, {3012,56983,0},{3013,56979,0},{3012,56979,0},{3015,56973,0},{3013,56973,0}, {3018,56964,0},{3020,56966,0},{3025,56969,0},{3025,56976,0},{3028,56978,0}, {3028,56981,0},{3032,56979,0},{3027,56974,0},{3028,56971,0},{3027,56968,0}, {3023,56964,0},{3028,56964,0},{3028,56961,0},{3032,56961,0},{3028,56959,0}, {3028,56953,0},{3025,56951,0},{3023,56953,0},{3025,56956,0},{3023,56959,0}, {3023,56961,0},{3022,56963,0},{3017,56961,0},{3015,56966,0},{3013,56964,0}, {3015,56963,0},{3013,56963,0},{3022,56949,0},{3030,56928,0},{3037,56904,0}, {3040,56884,0},{3042,56888,0},{3040,56896,0},{3040,56903,0},{3043,56904,0}, {3040,56908,0},{3040,56913,0},{3042,56909,0},{3043,56911,0},{3037,56926,0}, {3040,56924,0},{3043,56924,0},{3045,56921,0},{3047,56923,0},{3048,56923,0}, {3047,56919,0},{3047,56916,0},{3050,56916,0},{3048,56913,0},{3050,56909,0}, {3048,56901,0},{3045,56894,0},{3048,56893,0},{3052,56894,0},{3052,56891,0}, {3050,56889,0},{3052,56888,0},{3050,56888,0},{3047,56886,0},{3043,56881,0}, {3045,56876,0},{3042,56878,0},{3042,56858,0},{3035,56818,0},{3038,56818,0}, {3042,56836,0},{3045,56843,0},{3043,56848,0},{3047,56846,0},{3050,56834,0}, {3055,56836,0},{3057,56839,0},{3057,56836,0},{3058,56836,0},{3060,56834,0}, {3057,56834,0},{3055,56833,0},{3045,56828,0},{3045,56826,0},{3053,56826,0}, {3053,56823,0},{3055,56824,0},{3058,56819,0},{3058,56818,0},{3053,56818,0}, {3050,56821,0},{3047,56821,0},{3042,56816,0},{3040,56811,0},{3035,56809,0}, {3035,56806,0},{3032,56806,0},{3028,56784,0},{3028,56786,128},{3028,56783,0}, {3030,56786,0},{3032,56791,0},{3033,56788,0},{3033,56793,0},{3035,56794,0}, {3037,56794,0},{3040,56794,0},{3043,56803,0},{3045,56801,0},{3048,56794,0}, {3043,56796,0},{3040,56793,0},{3035,56789,0},{3035,56784,0},{3033,56784,0}, {3032,56783,0},{3032,56778,0},{3033,56778,0},{3035,56774,0},{3030,56776,0}, {3030,56779,0},{3028,56779,0},{3023,56763,0},{3023,56741,0},{3022,56736,0}, {3023,56734,0},{3023,56739,0},{3027,56743,0},{3023,56749,0},{3027,56758,0}, {3028,56761,0},{3035,56753,0},{3040,56754,0},{3042,56754,0},{3040,56753,0}, {3038,56751,0},{3042,56744,0},{3047,56744,0},{3048,56741,0},{3055,56746,0}, {3060,56744,0},{3067,56741,0},{3068,56736,0},{3073,56734,0},{3070,56734,0}, {3065,56731,0},{3060,56731,0},{3058,56728,0},{3052,56726,0},{3037,56724,0}, {3032,56723,0},{3033,56721,0},{3033,56716,0},{3037,56716,0},{3040,56706,0}, {3038,56706,0},{3040,56701,0},{3038,56696,0},{3035,56696,0},{3035,56693,0}, {3032,56689,0},{3035,56686,0},{3035,56679,0},{3040,56676,0},{3037,56674,0}, {3035,56668,0},{3035,56663,0},{3038,56658,0},{3043,56651,0},{3043,56644,0}, {3042,56638,0},{3040,56649,0},{3037,56631,0},{3035,56628,0},{3032,56611,0}, {3032,56609,0},{3035,56611,0},{3037,56606,0},{3037,56603,0},{3035,56601,0}, {3035,56604,0},{3030,56604,0},{3025,56594,0},{3018,56591,0},{3020,56589,0}, {3018,56584,0},{3015,56578,0},{3015,56574,0},{3017,56578,0},{3018,56576,0}, {3017,56573,0},{3018,56561,0},{3023,56561,0},{3022,56556,0},{3023,56551,0}, {3025,56549,0},{3027,56538,0},{3032,56536,0},{3035,56531,0},{3038,56516,0}, {3037,56513,0},{3025,56501,0},{3020,56494,0},{3015,56493,0},{3010,56494,0}, {3007,56501,0},{3007,56506,0},{3002,56523,0},{3003,56534,0},{3007,56539,0}, {3012,56546,0},{3015,56548,0},{3015,56551,0},{3012,56553,0},{3008,56558,0}, {3017,56561,0},{3017,56563,0},{3012,56561,0},{3010,56563,0},{3012,56564,0}, {3013,56568,0},{3015,56568,0},{3015,56566,0},{3017,56569,0},{3015,56569,0}, {3013,56571,0},{3012,56569,0},{3007,56568,0},{3005,56564,0},{3003,56564,0}, {3005,56558,0},{3003,56553,0},{3002,56551,0},{2995,56554,0},{2995,56561,0}, {2995,56564,0},{2992,56563,0},{2988,56568,0},{2987,56571,0},{2988,56576,0}, {2997,56579,0},{3000,56579,0},{3003,56586,0},{3008,56588,0},{3005,56593,0}, {3003,56593,0},{3005,56599,0},{3003,56599,0},{3002,56593,0},{3000,56591,0}, {3000,56593,0},{2997,56591,0},{2997,56593,0},{2997,56599,0},{2993,56599,0}, {2993,56596,0},{2995,56594,0},{2993,56593,0},{2990,56594,0},{2992,56599,0}, {2987,56598,0},{2988,56599,0},{2988,56603,0},{2983,56598,0},{2978,56601,0}, {2978,56598,0},{2977,56596,0},{2978,56596,0},{2978,56593,0},{2980,56593,0}, {2983,56589,0},{2980,56588,0},{2978,56586,0},{2975,56584,0},{2975,56579,0}, {2973,56576,0},{2968,56576,0},{2968,56581,0},{2968,56583,0},{2968,56584,0}, {2967,56586,0},{2967,56583,0},{2963,56588,0},{2967,56581,0},{2967,56574,0}, {2968,56573,0},{2970,56566,0},{2968,56571,0},{2967,56569,0},{2962,56574,0}, {2963,56561,0},{2962,56564,0},{2960,56563,0},{2958,56566,0},{2952,56568,0}, {2950,56574,0},{2950,56578,0},{2948,56578,0},{2947,56584,0},{2943,56583,0}, {2942,56583,0},{2943,56584,0},{2942,56584,0},{2940,56581,0},{2940,56594,0}, {2938,56594,0},{2938,56603,0},{2938,56599,0},{2937,56598,0},{2935,56601,0}, {2935,56609,0},{2932,56611,0},{2935,56616,0},{2932,56618,0},{2928,56623,0}, {2927,56623,0},{2925,56624,0},{2923,56621,0},{2920,56629,0},{2922,56629,0}, {2922,56633,0},{2920,56636,0},{2918,56633,0},{2918,56636,0},{2918,56633,0}, {2917,56631,0},{2918,56631,0},{2918,56629,0},{2917,56626,0},{2913,56626,0}, {2915,56629,0},{2913,56634,0},{2908,56631,0},{2912,56628,0},{2912,56626,0}, {2908,56628,0},{2910,56626,0},{2907,56623,0},{2903,56621,0},{2898,56623,0}, {2902,56618,0},{2910,56613,0},{2907,56611,0},{2905,56606,0},{2895,56599,0}, {2893,56594,0},{2897,56596,0},{2903,56601,0},{2907,56601,0},{2908,56606,0}, {2915,56609,0},{2915,56608,0},{2912,56606,0},{2918,56604,0},{2915,56603,0}, {2912,56604,0},{2908,56599,0},{2910,56596,0},{2915,56596,0},{2915,56593,0}, {2923,56588,0},{2923,56589,0},{2925,56589,0},{2925,56586,0},{2922,56586,0}, {2923,56583,0},{2925,56574,0},{2928,56574,0},{2930,56573,0},{2932,56574,0}, {2933,56574,0},{2933,56571,0},{2930,56566,0},{2932,56563,0},{2932,56554,0}, {2933,56559,0},{2937,56561,0},{2938,56559,0},{2938,56558,0},{2942,56559,0}, {2940,56554,0},{2943,56553,0},{2945,56556,0},{2947,56554,0},{2948,56551,0}, {2947,56551,0},{2945,56551,0},{2943,56549,0},{2947,56546,0},{2947,56541,0}, {2947,56539,0},{2948,56538,0},{2952,56529,0},{2953,56529,0},{2953,56523,0}, {2957,56518,0},{2953,56516,0},{2953,56518,0},{2952,56514,0},{2952,56518,0}, {2948,56519,0},{2948,56521,0},{2947,56523,0},{2947,56531,0},{2943,56533,0}, {2940,56531,0},{2938,56533,0},{2933,56533,0},{2935,56531,0},{2930,56534,0}, {2930,56531,0},{2932,56531,0},{2930,56528,0},{2928,56529,0},{2927,56526,0}, {2922,56528,0},{2922,56531,0},{2918,56529,0},{2913,56523,0},{2908,56513,0}, {2908,56511,0},{2910,56513,0},{2912,56513,0},{2917,56509,0},{2918,56511,0}, {2920,56509,0},{2922,56511,0},{2925,56511,0},{2927,56509,0},{2923,56508,0}, {2925,56506,0},{2928,56503,0},{2932,56501,0},{2925,56498,0},{2925,56496,0}, {2932,56498,0},{2933,56494,0},{2935,56493,0},{2932,56491,0},{2928,56488,0}, {2930,56486,0},{2928,56484,0},{2930,56481,0},{2932,56479,0},{2930,56476,0}, {2928,56476,0},{2928,56479,0},{2923,56476,0},{2922,56478,0},{2923,56474,0}, {2922,56473,0},{2913,56473,0},{2917,56471,0},{2917,56469,0},{2913,56468,0}, {2912,56466,0},{2913,56464,0},{2912,56461,0},{2913,56456,0},{2913,56459,0}, {2917,56459,0},{2917,56454,0},{2918,56451,0},{2915,56453,0},{2913,56448,0}, {2918,56441,0},{2918,56434,0},{2922,56438,0},{2922,56436,0},{2922,56433,0}, {2918,56431,0},{2922,56423,0},{2923,56416,0},{2925,56409,0},{2927,56406,0}, {2933,56403,0},{2932,56404,0},{2933,56408,0},{2937,56409,0},{2938,56413,0}, {2932,56416,0},{2933,56419,0},{2928,56419,0},{2925,56421,0},{2927,56424,0}, {2935,56424,0},{2940,56414,0},{2943,56413,0},{2947,56409,0},{2953,56409,0}, {2957,56414,0},{2960,56414,0},{2962,56411,0},{2960,56411,0},{2957,56411,0}, {2955,56408,0},{2952,56408,0},{2948,56406,0},{2952,56393,0},{2955,56394,0}, {2953,56381,0},{2955,56383,0},{2963,56381,0},{2963,56371,0},{2973,56374,0}, {2975,56373,0},{2973,56356,0},{2972,56351,0},{2972,56349,0},{2975,56349,0}, {2977,56348,0},{2980,56349,0},{2978,56354,0},{2983,56353,0},{2983,56344,0}, {2982,56343,0},{2983,56339,0},{2983,56338,0},{2980,56338,0},{2977,56328,0}, {2973,56323,0},{2977,56323,0},{2977,56319,0},{2975,56319,0},{2977,56316,0}, {2970,56318,0},{2972,56326,0},{2968,56323,0},{2962,56326,0},{2963,56333,0}, {2962,56334,0},{2962,56329,0},{2960,56331,0},{2958,56331,0},{2958,56318,0}, {2953,56308,0},{2960,56268,0},{2973,56233,0},{2978,56213,0},{2977,56164,0}, {2970,56153,0},{2975,56148,0},{2980,56146,0},{2983,56149,0},{2983,56156,0}, {2990,56159,0},{2997,56159,0},{3000,56156,0},{2998,56158,128},{2998,56151,0}, {2993,56148,0},{2983,56141,0},{2980,56141,0},{2973,56148,0},{2968,56151,0}, {2968,56131,0},{2965,56123,0},{2945,56071,0},{2937,56059,0},{2937,56058,0}, {2940,56058,0},{2943,56064,0},{2947,56066,0},{2948,56073,0},{2953,56079,0}, {2952,56086,0},{2957,56088,0},{2955,56084,0},{2957,56079,0},{2957,56073,0}, {2953,56058,0},{2953,56056,0},{2955,56056,0},{2955,56059,0},{2965,56064,0}, {2975,56066,0},{2978,56061,0},{2977,56053,0},{2968,56048,0},{2967,56046,0}, {2967,56043,0},{2970,56041,0},{2972,56036,0},{2972,56029,0},{2968,56033,0}, {2968,56036,0},{2963,56033,0},{2960,56038,0},{2957,56034,0},{2953,56034,0}, {2952,56036,0},{2950,56044,0},{2948,56043,0},{2947,56039,0},{2942,56041,0}, {2942,56044,0},{2943,56044,0},{2942,56046,0},{2940,56048,0},{2937,56054,0}, {2937,56046,0},{2932,56046,0},{2930,56043,0},{2932,56041,0},{2928,56036,0}, {2927,56036,0},{2922,56033,0},{2918,56026,0},{2918,56024,0},{2920,56024,0}, {2920,56019,0},{2917,56021,0},{2907,56021,0},{2905,56023,0},{2888,55999,0}, {2887,55994,0},{2873,55968,0},{2873,55961,0},{2873,55954,0},{2870,55943,0}, {2868,55941,0},{2862,55941,0},{2872,55964,0},{2865,55953,0},{2860,55938,0}, {2848,55914,0},{2853,55921,0},{2860,55936,0},{2863,55938,0},{2865,55938,0}, {2858,55914,0},{2860,55914,0},{2860,55918,0},{2863,55923,0},{2863,55914,0}, {2867,55918,0},{2870,55918,0},{2867,55909,0},{2868,55909,0},{2865,55906,0}, {2863,55901,0},{2865,55901,0},{2867,55898,0},{2872,55898,0},{2873,55896,0}, {2873,55894,0},{2877,55893,0},{2870,55893,0},{2872,55896,0},{2868,55894,0}, {2863,55894,0},{2862,55899,0},{2857,55888,0},{2860,55888,0},{2860,55893,0}, {2863,55891,0},{2862,55888,0},{2862,55886,0},{2865,55886,0},{2865,55881,0}, {2870,55879,0},{2872,55878,0},{2872,55871,0},{2868,55871,0},{2863,55876,0}, {2857,55876,0},{2855,55884,0},{2852,55888,0},{2848,55881,0},{2847,55881,0}, {2848,55886,0},{2850,55888,0},{2847,55893,0},{2845,55896,0},{2843,55896,0}, {2832,55871,0},{2833,55866,0},{2840,55866,0},{2842,55863,0},{2843,55861,0}, {2848,55858,0},{2845,55854,0},{2842,55859,0},{2840,55859,0},{2842,55853,0}, {2840,55853,0},{2835,55858,0},{2828,55856,0},{2823,55858,0},{2817,55849,0}, {2813,55848,0},{2813,55843,0},{2820,55844,0},{2822,55843,0},{2825,55846,0}, {2827,55844,0},{2822,55841,0},{2818,55843,0},{2812,55839,0},{2813,55834,0}, {2818,55836,0},{2820,55834,0},{2818,55833,0},{2815,55824,0},{2817,55821,0}, {2815,55818,0},{2812,55821,0},{2807,55814,0},{2803,55821,0},{2800,55821,0}, {2807,55826,0},{2808,55831,0},{2812,55833,0},{2810,55834,0},{2807,55833,0}, {2803,55834,0},{2797,55826,0},{2782,55816,0},{2782,55813,0},{2783,55814,0}, {2787,55811,0},{2788,55809,0},{2785,55801,0},{2787,55801,0},{2787,55791,0}, {2785,55789,0},{2788,55786,0},{2787,55784,0},{2782,55788,0},{2783,55798,0}, {2778,55796,0},{2775,55799,0},{2772,55804,0},{2770,55811,0},{2757,55804,0}, {2733,55796,0},{2730,55788,0},{2728,55784,0},{2728,55783,0},{2730,55786,0}, {2733,55786,0},{2733,55791,0},{2735,55788,0},{2740,55788,0},{2738,55784,0}, {2733,55779,0},{2733,55778,0},{2730,55776,0},{2730,55773,0},{2733,55771,0}, {2738,55768,0},{2747,55759,0},{2745,55759,0},{2740,55764,0},{2738,55763,0}, {2737,55766,0},{2735,55766,0},{2733,55768,0},{2732,55764,0},{2732,55769,0}, {2730,55769,0},{2728,55766,0},{2728,55759,0},{2727,55763,0},{2727,55771,0}, {2725,55773,0},{2723,55783,0},{2727,55794,0},{2717,55791,0},{2712,55791,0}, {2710,55786,0},{2707,55788,0},{2705,55788,0},{2702,55789,0},{2700,55786,0}, {2702,55781,0},{2700,55779,0},{2692,55781,0},{2690,55784,0},{2688,55788,0}, {2687,55788,0},{2685,55786,0},{2687,55784,0},{2690,55781,0},{2687,55781,0}, {2683,55779,0},{2682,55781,0},{2680,55786,0},{2655,55794,0},{2650,55794,0}, {2652,55793,0},{2650,55793,0},{2648,55789,0},{2648,55793,0},{2642,55791,0}, {2642,55794,0},{2637,55796,0},{2637,55799,0},{2633,55799,0},{2635,55801,0}, {2628,55799,0},{2627,55801,0},{2628,55804,0},{2625,55804,0},{2623,55803,0}, {2620,55804,0},{2617,55804,0},{2612,55806,0},{2610,55808,0},{2608,55814,0}, {2607,55814,0},{2607,55811,0},{2603,55809,0},{2598,55811,0},{2602,55818,0}, {2608,55819,0},{2597,55823,0},{2570,55819,0},{2543,55808,0},{2513,55788,0}, {2503,55784,0},{2478,55778,0},{2432,55768,0},{2407,55764,0},{2378,55763,0}, {2378,55761,0},{2378,55754,0},{2377,55761,0},{2365,55761,0},{2375,55763,0}, {2375,55764,0},{2330,55759,0},{2290,55763,0},{2285,55761,0},{2292,55761,0}, {2290,55759,0},{2277,55756,0},{2277,55753,0},{2273,55753,0},{2273,55749,0}, {2270,55751,0},{2260,55748,0},{2258,55749,0},{2260,55751,0},{2262,55751,0}, {2267,55753,0},{2265,55753,0},{2260,55753,0},{2252,55751,0},{2233,55756,0}, {2227,55758,0},{2215,55758,0},{2197,55766,0},{2177,55781,0},{2168,55791,0}, {2160,55803,0},{2157,55804,0},{2148,55804,0},{2133,55796,0},{2127,55794,0}, {2137,55793,0},{2138,55789,0},{2142,55791,0},{2143,55788,0},{2148,55796,0}, {2147,55798,0},{2150,55799,0},{2153,55799,0},{2163,55788,0},{2178,55774,0}, {2190,55771,0},{2192,55768,0},{2208,55758,0},{2193,55764,0},{2182,55764,0}, {2167,55769,0},{2148,55779,0},{2147,55783,0},{2148,55788,0},{2143,55786,0}, {2137,55788,0},{2128,55793,0},{2125,55793,0},{2125,55796,0},{2113,55798,0}, {2097,55806,0},{2080,55816,0},{2075,55818,0},{2073,55816,0},{2068,55819,0}, {2053,55831,0},{2047,55841,0},{2030,55853,0},{2015,55868,0},{2008,55871,0}, {1987,55891,0},{1973,55896,0},{1967,55896,0},{1953,55899,0},{1947,55906,0}, {1943,55904,0},{1938,55906,0},{1933,55906,0},{1923,55919,0},{1922,55924,0}, {1912,55926,0},{1907,55931,0},{1905,55939,0},{1895,55941,0},{1887,55946,0}, {1883,55953,0},{1880,55961,0},{1877,55961,0},{1880,55954,0},{1882,55948,0}, {1887,55943,0},{1887,55941,0},{1885,55941,0},{1883,55943,0},{1882,55949,0}, {1880,55949,0},{1875,55954,0},{1875,55948,0},{1872,55949,0},{1872,55954,0}, {1875,55958,0},{1872,55968,0},{1870,55974,0},{1867,55978,0},{1868,55979,0}, {1870,55978,0},{1875,55963,0},{1880,55963,0},{1873,55971,0},{1872,55979,0}, {1870,55996,0},{1872,56008,0},{1870,56018,0},{1862,56031,0},{1855,56034,0}, {1853,56041,0},{1853,56054,0},{1852,56058,0},{1840,56063,0},{1828,56074,0}, {1818,56078,0},{1815,56083,0},{1815,56089,0},{1820,56119,0},{1830,56149,0}, {1825,56148,0},{1827,56156,0},{1828,56159,0},{1832,56159,0},{1833,56163,0}, {1835,56168,0},{1833,56168,0},{1833,56171,0},{1835,56178,0},{1837,56179,0}, {1840,56179,0},{1840,56174,0},{1837,56166,0},{1835,56164,0},{1835,56159,0}, {1830,56156,0},{1832,56151,0},{1835,56158,0},{1842,56178,0},{1843,56193,0}, {1843,56221,0},{1842,56219,0},{1840,56218,0},{1837,56219,0},{1837,56223,0}, {1838,56224,0},{1837,56224,0},{1835,56223,0},{1833,56223,0},{1837,56224,0}, {1838,56228,0},{1840,56228,0},{1842,56223,0},{1843,56223,0},{1845,56226,0}, {1843,56239,0},{1845,56244,0},{1850,56256,0},{1858,56264,0},{1858,56266,0}, {1853,56268,0},{1843,56269,0},{1855,56269,0},{1862,56268,0},{1862,56278,0}, {1868,56296,0},{1868,56314,0},{1873,56338,0},{1872,56341,0},{1868,56343,0}, {1862,56351,0},{1858,56349,0},{1860,56348,0},{1858,56343,0},{1863,56341,0}, {1860,56339,0},{1862,56334,0},{1858,56338,0},{1858,56333,0},{1855,56331,0}, {1853,56336,0},{1855,56341,0},{1850,56346,0},{1855,56343,0},{1857,56339,0}, {1860,56339,0},{1857,56341,0},{1857,56346,0},{1855,56344,0},{1855,56348,0}, {1852,56349,0},{1852,56348,0},{1850,56353,0},{1843,56351,0},{1838,56356,0}, {1840,56358,0},{1845,56354,0},{1843,56358,0},{1843,56359,0},{1847,56356,0}, {1848,56356,0},{1843,56374,0},{1845,56383,0},{1847,56386,0},{1843,56386,0}, {1843,56389,0},{1848,56388,0},{1848,56386,0},{1845,56383,0},{1848,56383,0}, {1852,56388,0},{1857,56403,0},{1862,56406,0},{1862,56411,0},{1865,56418,0}, {1867,56418,0},{1863,56406,0},{1867,56408,0},{1870,56409,0},{1873,56409,0}, {1878,56404,0},{1877,56401,0},{1878,56398,0},{1882,56396,0},{1887,56399,128}, {1890,56406,0},{1895,56413,0},{1890,56404,0},{1888,56399,0},{1883,56394,0}, {1882,56394,0},{1880,56388,0},{1882,56384,0},{1890,56393,0},{1900,56419,0}, {1908,56429,0},{1912,56436,0},{1917,56444,0},{1925,56451,0},{1932,56459,0}, {1935,56463,0},{1963,56466,0},{1968,56464,0},{1977,56468,0},{1982,56473,0}, {1988,56483,0},{1997,56491,0},{2008,56486,0},{2012,56488,0},{2018,56486,0}, {2023,56488,0},{2030,56488,0},{2040,56489,0},{2052,56488,0},{2063,56489,0}, {2073,56491,0},{2082,56498,0},{2097,56503,0},{2083,56498,0},{2078,56494,0}, {2078,56493,0},{2103,56503,0},{2108,56513,0},{2113,56523,0},{2117,56526,0}, {2118,56536,0},{2123,56543,0},{2127,56554,0},{2130,56566,0},{2130,56578,0}, {2133,56594,0},{2137,56626,0},{2142,56651,0},{2143,56654,0},{2145,56666,0}, {2153,56676,0},{2155,56684,0},{2157,56691,0},{2155,56709,0},{2157,56716,0}, {2158,56728,0},{2160,56723,0},{2158,56716,0},{2157,56711,0},{2162,56724,0}, {2160,56731,0},{2160,56736,0},{2157,56748,0},{2153,56766,0},{2152,56763,0}, {2155,56751,0},{2150,56761,0},{2150,56774,0},{2152,56768,0},{2153,56768,0}, {2150,56779,0},{2150,56786,0},{2148,56788,0},{2148,56786,0},{2147,56788,0}, {2147,56796,0},{2145,56801,0},{2143,56811,0},{2148,56821,0},{2152,56823,0}, {2153,56823,0},{2155,56823,0},{2157,56821,0},{2157,56816,0},{2153,56811,0}, {2153,56803,0},{2155,56803,0},{2152,56796,0},{2150,56796,0},{2153,56794,0}, {2158,56799,0},{2157,56808,0},{2158,56814,0},{2162,56824,0},{2158,56836,0}, {2143,56846,0},{2145,56849,0},{2143,56853,0},{2137,56854,0},{2130,56853,0}, {2118,56854,0},{2115,56859,0},{2115,56863,0},{2112,56859,0},{2103,56858,0}, {2102,56854,0},{2083,56848,0},{2073,56838,0},{2062,56829,0},{2057,56819,0}, {2050,56813,0},{2030,56799,0},{2028,56799,0},{2028,56798,0},{2027,56798,0}, {2022,56793,0},{2010,56789,0},{1998,56789,0},{1990,56793,0},{1985,56793,0}, {1983,56789,0},{1978,56789,0},{1983,56788,0},{1985,56791,0},{1992,56793,0}, {1993,56789,0},{1997,56788,0},{1995,56788,0},{1987,56789,0},{1988,56791,0}, {1988,56789,0},{1980,56784,0},{1980,56783,0},{1982,56783,0},{1980,56781,0}, {1980,56778,0},{1963,56769,0},{1963,56768,0},{1968,56771,0},{1967,56763,0}, {1960,56763,0},{1958,56766,0},{1957,56768,0},{1957,56769,0},{1950,56769,0}, {1952,56771,0},{1955,56776,0},{1957,56779,0},{1955,56784,0},{1953,56786,0}, {1957,56788,0},{1957,56789,0},{1955,56789,0},{1955,56791,0},{1958,56794,0}, {1960,56793,0},{1960,56791,0},{1957,56793,0},{1958,56783,0},{1958,56791,0}, {1963,56793,0},{1958,56794,0},{1950,56793,0},{1945,56789,0},{1940,56783,0}, {1940,56779,0},{1940,56783,0},{1943,56781,0},{1940,56773,0},{1935,56769,0}, {1933,56769,0},{1935,56771,0},{1932,56771,0},{1932,56768,0},{1930,56769,0}, {1925,56768,0},{1922,56773,0},{1925,56776,0},{1928,56778,0},{1932,56779,0}, {1933,56786,0},{1932,56786,0},{1928,56784,0},{1932,56788,0},{1932,56789,0}, {1922,56783,0},{1910,56781,0},{1905,56776,0},{1905,56778,0},{1895,56774,0}, {1877,56771,0},{1867,56763,0},{1855,56763,0},{1852,56761,0},{1842,56759,0}, {1832,56753,0},{1818,56751,0},{1823,56751,0},{1822,56748,0},{1823,56748,0}, {1825,56749,0},{1832,56751,0},{1828,56748,0},{1830,56748,0},{1833,56748,0}, {1835,56746,0},{1837,56746,0},{1840,56743,0},{1843,56744,0},{1850,56729,0}, {1853,56728,0},{1855,56731,0},{1860,56731,0},{1868,56736,0},{1870,56734,0}, {1878,56736,0},{1882,56733,0},{1887,56733,0},{1885,56729,0},{1878,56726,0}, {1872,56724,0},{1873,56721,0},{1878,56723,0},{1873,56721,0},{1873,56716,0}, {1868,56711,0},{1867,56711,0},{1870,56716,0},{1873,56718,0},{1872,56718,0}, {1867,56716,0},{1870,56719,0},{1870,56721,0},{1867,56718,0},{1848,56708,0}, {1848,56706,0},{1848,56708,128},{1848,56706,0},{1845,56708,0},{1843,56706,0}, {1838,56698,0},{1835,56698,0},{1837,56704,0},{1830,56699,0},{1835,56709,0}, {1837,56714,0},{1835,56714,0},{1835,56716,0},{1833,56718,0},{1835,56721,0}, {1837,56726,0},{1835,56726,0},{1832,56721,0},{1833,56726,0},{1832,56728,0}, {1830,56728,0},{1822,56728,0},{1812,56728,0},{1797,56721,0},{1788,56716,0}, {1772,56713,0},{1762,56708,0},{1757,56709,0},{1755,56713,0},{1753,56714,0}, {1750,56719,0},{1748,56718,0},{1748,56713,0},{1748,56711,0},{1723,56706,0}, {1712,56708,0},{1708,56709,0},{1707,56713,0},{1697,56716,0},{1693,56711,0}, {1690,56708,0},{1687,56708,0},{1682,56711,0},{1680,56708,0},{1677,56706,0}, {1665,56706,0},{1660,56703,0},{1650,56701,0},{1650,56699,0},{1660,56701,0}, {1667,56704,0},{1662,56701,0},{1658,56699,0},{1655,56698,0},{1655,56699,0}, {1655,56696,0},{1653,56699,0},{1647,56694,0},{1643,56694,0},{1642,56691,0}, {1640,56693,0},{1638,56689,0},{1627,56683,0},{1627,56679,0},{1625,56678,0}, {1628,56678,0},{1625,56676,0},{1628,56673,0},{1627,56671,0},{1625,56671,0}, {1623,56663,0},{1622,56661,0},{1617,56663,0},{1613,56661,0},{1612,56658,0}, {1608,56654,0},{1607,56651,0},{1603,56651,0},{1598,56644,0},{1595,56643,0}, {1592,56646,0},{1590,56644,0},{1587,56649,0},{1587,56654,0},{1587,56656,0}, {1583,56661,0},{1582,56661,0},{1575,56674,0},{1572,56673,0},{1570,56673,0}, {1572,56676,0},{1573,56676,0},{1575,56678,0},{1577,56679,0},{1578,56681,0}, {1585,56681,0},{1583,56681,0},{1585,56688,0},{1593,56676,0},{1595,56674,0}, {1597,56676,0},{1595,56681,0},{1585,56693,0},{1580,56703,0},{1573,56711,0}, {1572,56714,0},{1568,56721,0},{1568,56724,0},{1573,56728,0},{1577,56733,0}, {1578,56733,0},{1578,56738,0},{1582,56743,0},{1583,56744,0},{1585,56741,0}, {1587,56741,0},{1587,56746,0},{1588,56749,0},{1590,56754,0},{1590,56761,0}, {1592,56764,0},{1588,56773,0},{1590,56773,0},{1593,56778,0},{1590,56774,0}, {1587,56776,0},{1580,56783,0},{1578,56789,0},{1578,56791,0},{1582,56794,0}, {1582,56798,0},{1585,56801,0},{1575,56841,0},{1577,56853,0},{1580,56859,0}, {1578,56868,0},{1580,56888,0},{1577,56894,0},{1577,56901,0},{1582,56909,0}, {1585,56913,0},{1588,56918,0},{1590,56924,0},{1590,56936,0},{1592,56941,0}, {1597,56946,0},{1600,56946,0},{1600,56939,0},{1602,56934,0},{1603,56936,0}, {1602,56946,0},{1602,56949,0},{1600,56959,0},{1597,56968,0},{1593,56968,0}, {1595,56969,0},{1592,56976,0},{1588,56986,0},{1590,57018,0},{1593,57026,0}, {1598,57033,0},{1598,57039,0},{1588,57068,0},{1587,57074,0},{1582,57073,0}, {1577,57076,0},{1578,57079,0},{1582,57079,0},{1582,57081,0},{1578,57081,0}, {1578,57084,0},{1578,57088,0},{1582,57089,0},{1582,57096,0},{1585,57079,0}, {1587,57078,0},{1583,57096,0},{1583,57109,0},{1572,57121,0},{1568,57126,0}, {1545,57151,0},{1540,57164,0},{1538,57163,0},{1543,57151,0},{1545,57146,0}, {1547,57146,0},{1552,57143,0},{1553,57136,0},{1553,57133,0},{1552,57131,0}, {1552,57128,0},{1553,57128,0},{1553,57129,0},{1555,57129,0},{1553,57126,0}, {1548,57128,0},{1555,57123,0},{1555,57114,0},{1552,57116,0},{1552,57118,0}, {1548,57118,0},{1550,57119,0},{1550,57121,0},{1553,57121,0},{1553,57123,0}, {1545,57128,0},{1543,57124,0},{1540,57124,0},{1535,57128,0},{1533,57133,0}, {1535,57134,0},{1537,57133,0},{1535,57136,0},{1532,57134,0},{1530,57136,0}, {1530,57143,0},{1528,57141,0},{1523,57144,0},{1525,57153,0},{1527,57153,0}, {1532,57146,0},{1535,57138,0},{1540,57133,0},{1542,57136,0},{1540,57141,0}, {1533,57149,0},{1532,57154,0},{1530,57156,0},{1527,57154,0},{1528,57158,0}, {1527,57159,0},{1520,57161,0},{1522,57161,0},{1520,57164,0},{1522,57164,0}, {1523,57166,0},{1525,57173,0},{1528,57174,0},{1528,57183,0},{1525,57184,0}, {1520,57181,0},{1523,57178,0},{1520,57174,0},{1517,57174,0},{1520,57176,0}, {1517,57176,0},{1515,57179,0},{1520,57184,0},{1522,57188,0},{1523,57186,0}, {1528,57186,0},{1530,57183,0},{1532,57178,0},{1530,57174,0},{1532,57174,0}, {1537,57164,0},{1540,57166,0},{1535,57174,0},{1525,57198,0},{1522,57201,0}, {1510,57204,0},{1507,57208,0},{1503,57213,0},{1500,57223,0},{1497,57219,0}, {1498,57216,0},{1480,57206,0},{1480,57203,0},{1482,57206,0},{1482,57204,0}, {1483,57204,0},{1483,57208,0},{1490,57206,0},{1492,57204,0},{1488,57199,0}, {1480,57194,0},{1480,57198,0},{1475,57198,0},{1473,57201,0},{1473,57203,0}, {1475,57204,0},{1477,57201,0},{1477,57203,0},{1475,57204,0},{1478,57204,0}, {1477,57206,0},{1463,57208,0},{1445,57216,0},{1433,57218,0},{1427,57216,0}, {1417,57209,0},{1405,57203,0},{1400,57196,0},{1395,57193,0},{1363,57184,0}, {1353,57184,0},{1345,57181,0},{1322,57179,0},{1290,57186,0},{1282,57184,0}, {1262,57183,0},{1253,57184,0},{1247,57188,0},{1240,57188,0},{1238,57186,0}, {1238,57178,0},{1237,57174,0},{1238,57173,0},{1242,57176,0},{1248,57173,0}, {1257,57173,0},{1257,57179,0},{1258,57179,0},{1267,57179,0},{1272,57181,0}, {1275,57179,0},{1277,57183,0},{1280,57181,0},{1282,57176,0},{1280,57173,0}, {1280,57171,0},{1277,57173,0},{1275,57171,0},{1273,57174,0},{1272,57174,0}, {1268,57176,0},{1262,57178,0},{1255,57166,0},{1255,57161,0},{1252,57159,0}, {1247,57158,0},{1248,57163,0},{1247,57163,0},{1233,57164,0},{1233,57166,0}, {1235,57168,0},{1233,57169,0},{1228,57169,0},{1235,57171,0},{1235,57173,0}, {1233,57174,0},{1223,57169,0},{1215,57168,0},{1198,57169,0},{1207,57164,0}, {1208,57164,0},{1210,57168,0},{1217,57164,0},{1217,57158,0},{1215,57159,0}, {1215,57163,0},{1212,57166,0},{1205,57163,0},{1205,57156,0},{1202,57161,0}, {1193,57159,0},{1187,57153,0},{1180,57159,0},{1180,57163,0},{1183,57161,0}, {1187,57163,0},{1185,57166,0},{1162,57171,0},{1160,57171,0},{1160,57168,0}, {1157,57164,0},{1155,57159,0},{1145,57158,0},{1143,57154,0},{1142,57153,0}, {1132,57149,0},{1117,57151,0},{1107,57156,0},{1092,57164,0},{1092,57166,0}, {1093,57166,0},{1092,57171,0},{1087,57176,0},{1078,57178,0},{1078,57176,0}, {1085,57174,0},{1078,57174,0},{1075,57176,0},{1072,57173,0},{1075,57176,0}, {1072,57178,0},{1077,57179,0},{1072,57179,0},{1048,57189,0},{1013,57214,0}, {1000,57226,0},{998,57229,0},{1000,57229,0},{1000,57234,0},{995,57234,0}, {975,57251,0},{973,57253,0},{973,57256,0},{970,57256,0},{967,57259,0},{963,57266,0}, {963,57273,0},{957,57279,0},{942,57299,0},{942,57303,0},{938,57301,0},{933,57298,0}, {930,57301,0},{928,57299,0},{928,57298,0},{927,57296,0},{925,57299,0},{922,57299,0}, {920,57301,0},{918,57306,0},{920,57306,0},{920,57308,0},{922,57308,0},{920,57309,0}, {918,57309,0},{918,57311,0},{922,57311,0},{918,57313,0},{922,57316,0},{918,57318,0}, {920,57319,0},{915,57319,0},{917,57316,0},{917,57311,0},{915,57309,0},{910,57311,0}, {910,57309,0},{908,57313,0},{902,57311,0},{900,57311,0},{898,57316,0},{898,57323,0}, {893,57326,0},{892,57329,0},{895,57336,0},{893,57339,0},{893,57341,0},{897,57346,0}, {895,57349,0},{895,57354,0},{893,57358,0},{897,57359,0},{900,57358,0},{902,57354,0}, {910,57348,0},{913,57343,0},{913,57349,0},{915,57346,0},{917,57346,0},{912,57354,0}, {910,57354,0},{910,57351,0},{905,57354,0},{907,57356,0},{905,57361,0},{900,57366,0}, {888,57374,0},{878,57386,0},{878,57398,0},{877,57403,0},{878,57423,0},{883,57439,0}, {888,57448,0},{888,57453,0},{898,57461,0},{907,57476,0},{913,57496,0},{915,57506,0}, {920,57523,0},{922,57526,0},{928,57533,0},{888,57576,128},{888,57571,0}, {885,57569,0},{887,57566,0},{885,57566,0},{883,57563,0},{880,57561,0},{877,57559,0}, {870,57563,0},{868,57561,0},{863,57553,0},{860,57558,0},{860,57561,0},{858,57561,0}, {853,57549,0},{852,57549,0},{848,57543,0},{845,57541,0},{840,57534,0},{830,57513,0}, {830,57498,0},{832,57498,0},{828,57498,0},{822,57489,0},{808,57488,0},{802,57491,0}, {798,57501,0},{795,57504,0},{790,57504,0},{773,57523,0},{770,57524,0},{763,57531,0}, {752,57538,0},{747,57536,0},{745,57534,0},{742,57519,0},{743,57518,0},{743,57509,0}, {742,57506,0},{742,57509,0},{738,57501,0},{737,57499,0},{732,57503,0},{730,57498,0}, {725,57493,0},{725,57486,0},{723,57484,0},{725,57479,0},{722,57464,0},{720,57449,0}, {725,57446,0},{725,57443,0},{732,57444,0},{733,57448,0},{735,57448,0},{740,57444,0}, {745,57444,0},{750,57439,0},{755,57441,0},{762,57438,0},{767,57431,0},{768,57433,0}, {768,57436,0},{770,57436,0},{772,57431,0},{772,57433,0},{775,57433,0},{777,57428,0}, {780,57429,0},{782,57434,0},{783,57434,0},{783,57431,0},{790,57431,0},{785,57428,0}, {787,57424,0},{785,57428,0},{783,57426,0},{785,57418,0},{787,57416,0},{788,57416,0}, {790,57414,0},{788,57416,0},{788,57414,0},{787,57414,0},{785,57418,0},{777,57419,0}, {775,57418,0},{773,57414,0},{775,57414,0},{775,57411,0},{772,57414,0},{772,57413,0}, {770,57413,0},{770,57416,0},{767,57416,0},{763,57418,0},{760,57414,0},{765,57406,0}, {765,57401,0},{768,57398,0},{767,57394,0},{770,57391,0},{770,57383,0},{775,57388,0}, {775,57379,0},{777,57379,0},{780,57378,0},{785,57379,0},{785,57376,0},{788,57376,0}, {788,57374,0},{792,57374,0},{793,57376,0},{795,57374,0},{798,57376,0},{798,57373,0}, {793,57374,0},{795,57373,0},{805,57368,0},{802,57366,0},{803,57364,0},{805,57366,0}, {807,57363,0},{807,57369,0},{818,57361,0},{817,57359,0},{815,57361,0},{812,57359,0}, {813,57356,0},{818,57341,0},{820,57341,0},{823,57343,0},{818,57339,0},{822,57336,0}, {820,57334,0},{823,57324,0},{815,57323,0},{817,57319,0},{818,57321,0},{822,57321,0}, {820,57318,0},{822,57314,0},{823,57316,0},{827,57314,0},{830,57314,0},{830,57316,0}, {833,57314,0},{833,57318,0},{833,57314,0},{830,57311,0},{832,57308,0},{833,57308,0}, {833,57301,0},{830,57301,0},{828,57296,0},{830,57293,0},{832,57294,0},{835,57293,0}, {835,57291,0},{832,57293,0},{832,57291,0},{832,57289,0},{828,57291,0},{827,57286,0}, {832,57269,0},{828,57254,0},{827,57251,0},{823,57249,0},{812,57249,0},{807,57251,0}, {802,57249,0},{803,57246,0},{805,57244,0},{810,57246,0},{823,57239,0},{835,57221,0}, {838,57223,0},{840,57224,0},{845,57226,0},{853,57221,0},{855,57226,0},{855,57221,0}, {857,57219,0},{860,57218,0},{862,57219,0},{860,57221,0},{857,57221,0},{858,57224,0}, {863,57219,0},{862,57218,0},{863,57213,0},{862,57213,0},{865,57211,0},{865,57206,0}, {867,57203,0},{872,57203,0},{873,57198,0},{870,57194,0},{872,57188,0},{868,57188,0}, {865,57193,0},{862,57193,0},{858,57196,0},{853,57208,0},{850,57208,0},{847,57209,0}, {843,57208,0},{842,57209,0},{838,57208,0},{837,57208,0},{840,57198,0},{842,57196,0}, {842,57199,0},{843,57196,0},{842,57196,0},{845,57188,0},{843,57179,0},{858,57166,0}, {858,57163,0},{862,57163,0},{868,57166,0},{868,57171,0},{873,57173,0},{875,57173,0}, {878,57179,0},{878,57174,0},{877,57173,0},{878,57171,0},{883,57178,0},{888,57174,0}, {888,57179,0},{890,57176,0},{890,57173,0},{892,57174,0},{893,57173,0},{897,57176,0}, {903,57173,0},{907,57169,0},{913,57163,0},{915,57159,0},{918,57159,0},{922,57153,0}, {930,57143,0},{940,57119,0},{943,57119,0},{947,57116,0},{947,57113,0},{945,57116,0}, {948,57109,0},{953,57088,0},{952,57083,0},{955,57081,0},{953,57081,0},{957,57074,0}, {960,57073,0},{962,57069,0},{965,57071,0},{965,57068,0},{968,57069,0},{975,57073,0}, {977,57073,0},{987,57066,0},{988,57064,0},{992,57066,0},{995,57063,0},{997,57063,0}, {997,57051,0},{998,57058,0},{1000,57048,0},{1005,57041,0},{1007,57039,0}, {1010,57036,0},{1012,57034,0},{1013,57029,0},{1015,57029,0},{1017,57028,0}, {1015,57023,0},{1017,57016,0},{1020,57013,0},{1023,57013,0},{1028,57008,0}, {1027,57008,0},{1023,57011,0},{1010,57013,0},{1008,57016,0},{1005,57019,0}, {1005,57021,0},{1003,57021,0},{1003,57018,0},{998,57026,0},{997,57031,0}, {993,57036,0},{993,57044,0},{990,57044,0},{988,57043,0},{985,57046,0},{983,57043,0}, {982,57049,0},{978,57044,0},{977,57043,0},{975,57041,0},{973,57041,0},{973,57036,0}, {972,57034,0},{970,57036,0},{967,57029,0},{957,57026,0},{955,57024,0},{973,57013,0}, {975,57009,0},{978,57009,0},{983,57001,0},{985,56993,0},{985,56989,0},{987,56984,0}, {987,56979,0},{990,56973,0},{990,56969,0},{992,56969,0},{997,56968,0},{1002,56963,0}, {1010,56956,0},{1025,56951,0},{1028,56951,0},{1032,56953,0},{1035,56949,0}, {1040,56953,0},{1042,56956,0},{1043,56956,0},{1045,56958,0},{1052,56956,0}, {1053,56958,0},{1055,56966,0},{1057,56966,0},{1057,56968,0},{1058,56968,0}, {1058,56971,0},{1062,56973,0},{1063,56971,0},{1060,56968,0},{1062,56966,0}, {1063,56969,0},{1063,56968,0},{1067,56968,0},{1067,56971,0},{1077,56969,0}, {1080,56968,0},{1082,56963,0},{1080,56959,0},{1082,56958,0},{1082,56956,0}, {1085,56958,0},{1085,56951,0},{1088,56946,0},{1088,56941,0},{1092,56949,0}, {1095,56949,0},{1095,56954,0},{1092,56954,0},{1090,56956,0},{1092,56958,0}, {1093,56958,0},{1093,56963,0},{1092,56964,0},{1095,56964,0},{1097,56968,0}, {1102,56961,0},{1105,56964,0},{1103,56968,0},{1103,56969,0},{1105,56969,0}, {1107,56968,0},{1112,56958,0},{1118,56954,0},{1130,56944,0},{1135,56936,0}, {1145,56926,0},{1147,56921,0},{1152,56918,0},{1162,56901,0},{1168,56898,0}, {1177,56886,0},{1185,56881,0},{1190,56876,0},{1195,56873,0},{1205,56866,0}, {1220,56858,0},{1245,56819,0},{1247,56818,0},{1243,56826,0},{1248,56821,0}, {1252,56818,0},{1248,56819,0},{1248,56818,0},{1253,56813,0},{1260,56803,0}, {1263,56803,0},{1262,56803,0},{1263,56801,0},{1275,56789,0},{1275,56791,0}, {1278,56791,0},{1282,56784,0},{1280,56784,0},{1278,56788,0},{1278,56786,0}, {1290,56768,0},{1298,56769,0},{1302,56774,0},{1308,56778,0},{1305,56778,0}, {1305,56781,0},{1302,56786,0},{1298,56789,0},{1293,56789,0},{1292,56794,0}, {1290,56799,0},{1292,56806,0},{1293,56799,0},{1295,56799,0},{1297,56803,0}, {1298,56806,128},{1303,56809,0},{1303,56804,0},{1307,56801,0},{1310,56806,0}, {1312,56796,0},{1310,56794,0},{1313,56794,0},{1323,56789,0},{1327,56788,0}, {1327,56784,0},{1335,56791,0},{1337,56798,0},{1340,56798,0},{1342,56796,0}, {1340,56793,0},{1342,56791,0},{1340,56788,0},{1335,56789,0},{1335,56783,0}, {1335,56781,0},{1337,56781,0},{1338,56778,0},{1337,56774,0},{1340,56776,0}, {1342,56774,0},{1343,56774,0},{1347,56773,0},{1343,56771,0},{1338,56769,0}, {1335,56764,0},{1335,56761,0},{1340,56758,0},{1340,56753,0},{1343,56753,0}, {1338,56749,0},{1337,56749,0},{1328,56758,0},{1323,56753,0},{1320,56744,0}, {1317,56746,0},{1315,56746,0},{1317,56731,0},{1315,56714,0},{1317,56703,0}, {1317,56701,0},{1318,56704,0},{1320,56703,0},{1323,56701,0},{1320,56703,0}, {1318,56696,0},{1317,56699,0},{1317,56693,0},{1320,56693,0},{1320,56694,0}, {1322,56694,0},{1325,56691,0},{1325,56689,0},{1322,56691,0},{1322,56686,0}, {1325,56683,0},{1327,56681,0},{1328,56676,0},{1327,56671,0},{1327,56664,0}, {1325,56671,0},{1327,56678,0},{1322,56683,0},{1323,56676,0},{1320,56688,0}, {1317,56691,0},{1318,56684,0},{1323,56659,0},{1325,56653,0},{1328,56648,0}, {1337,56631,0},{1343,56619,0},{1348,56606,0},{1350,56586,0},{1350,56584,0}, {1353,56568,0},{1353,56554,0},{1362,56551,0},{1375,56526,0},{1388,56491,0}, {1393,56476,0},{1392,56433,0},{1393,56418,0},{1398,56398,0},{1410,56374,0}, {1422,56354,0},{1455,56311,0},{1508,56258,128},{1455,56311,0},{1510,56258,0}, {1517,56251,0},{1515,56259,0},{1508,56261,0},{1513,56261,0},{1517,56259,0}, {1518,56254,0},{1518,56253,0},{1522,56251,0},{1520,56249,0},{1518,56251,0}, {1527,56238,0},{1530,56234,0},{1535,56228,0},{1548,56216,0},{1553,56209,0}, {1577,56181,0},{1592,56158,0},{1600,56143,0},{1602,56143,0},{1600,56148,0}, {1602,56151,0},{1608,56146,0},{1612,56134,0},{1613,56129,0},{1617,56126,0}, {1623,56123,0},{1620,56116,0},{1622,56106,0},{1630,56099,0},{1630,56096,0}, {1628,56094,0},{1625,56094,0},{1623,56093,0},{1623,56094,0},{1622,56093,0}, {1620,56094,0},{1615,56103,0},{1613,56109,0},{1615,56109,0},{1618,56103,0}, {1617,56114,0},{1613,56119,0},{1612,56118,0},{1608,56129,0},{1603,56133,0}, {1600,56139,0},{1617,56096,0},{1618,56088,0},{1620,56064,0},{1620,56063,0}, {1622,56063,0},{1625,56073,0},{1628,56078,0},{1632,56078,0},{1637,56069,0}, {1632,56064,0},{1630,56064,0},{1630,56061,0},{1625,56058,0},{1628,56056,0}, {1632,56059,0},{1633,56059,0},{1637,56056,0},{1638,56056,0},{1643,56049,0}, {1640,56044,0},{1632,56039,0},{1632,56033,0},{1630,56033,0},{1628,56029,0}, {1627,56029,0},{1625,56039,0},{1625,56049,0},{1628,56053,0},{1627,56054,0}, {1625,56051,0},{1623,56043,0},{1622,56058,0},{1620,56061,0},{1622,56051,0}, {1618,56028,0},{1620,56023,0},{1618,56021,0},{1617,56021,0},{1615,56014,0}, {1613,56011,0},{1610,56009,0},{1605,55999,0},{1602,55999,0},{1598,55994,0}, {1590,55963,0},{1587,55959,0},{1582,55941,0},{1575,55931,0},{1575,55928,0}, {1568,55918,0},{1567,55908,0},{1568,55893,0},{1565,55888,0},{1565,55879,0}, {1572,55863,0},{1573,55853,0},{1582,55834,0},{1590,55823,0},{1592,55816,0}, {1597,55773,0},{1595,55769,0},{1597,55758,0},{1602,55749,0},{1603,55751,0}, {1607,55749,0},{1605,55748,0},{1615,55729,0},{1620,55719,0},{1622,55719,0}, {1618,55729,0},{1620,55729,0},{1622,55726,0},{1622,55721,0},{1623,55719,0}, {1622,55718,0},{1625,55704,0},{1627,55696,0},{1632,55681,0},{1635,55679,0}, {1642,55669,0},{1653,55663,0},{1655,55659,0},{1655,55651,0},{1652,55651,0}, {1655,55644,0},{1658,55636,0},{1660,55626,0},{1663,55616,0},{1663,55606,0}, {1667,55601,0},{1670,55566,0},{1678,55551,0},{1682,55553,0},{1687,55548,0}, {1687,55546,0},{1683,55548,0},{1682,55546,0},{1688,55543,0},{1693,55528,0}, {1695,55518,0},{1700,55508,0},{1710,55483,0},{1722,55448,0},{1727,55434,0}, {1727,55431,0},{1730,55431,0},{1737,55426,0},{1747,55409,0},{1752,55394,0}, {1753,55391,0},{1758,55391,0},{1762,55386,0},{1763,55379,0},{1767,55373,0}, {1772,55371,0},{1780,55361,0},{1788,55358,0},{1798,55341,0},{1798,55333,0}, {1798,55328,0},{1792,55321,0},{1798,55301,0},{1805,55279,0},{1807,55264,0}, {1818,55233,0},{1820,55224,0},{1827,55201,0},{1833,55188,0},{1850,55178,0}, {1858,55166,0},{1862,55168,0},{1867,55164,0},{1888,55139,0},{1900,55104,0}, {1903,55103,0},{1907,55104,0},{1910,55103,0},{1912,55099,0},{1908,55096,0}, {1910,55094,0},{1910,55091,0},{1913,55086,0},{1917,55069,0},{1920,55066,0}, {1922,55064,0},{1923,55063,0},{1922,55054,0},{1928,55056,0},{1930,55054,0}, {1928,55048,0},{1928,55046,0},{1935,55036,0},{1937,55034,0},{1942,55033,0}, {1945,55029,0},{1948,55029,0},{1957,55026,0},{1962,55014,0},{1972,55006,0}, {1978,55003,0},{1992,54991,0},{2008,54981,0},{2022,54979,0},{2025,54976,0}, {2040,54968,0},{2042,54968,0},{2048,54978,0},{2052,55001,0},{2055,55006,0}, {2057,55011,0},{2065,55013,0},{2077,55004,0},{2075,54994,0},{2077,54989,0}, {2078,54986,0},{2078,54981,0},{2082,54986,0},{2082,54989,0},{2088,54993,0}, {2090,54994,0},{2093,54996,0},{2098,55003,0},{2102,55004,0},{2103,55006,0}, {2103,55011,0},{2107,55013,0},{2123,55014,0},{2135,55013,0},{2140,55014,0}, {2145,55018,0},{2150,55016,0},{2152,55014,0},{2152,55008,0},{2160,54993,0}, {2167,54991,0},{2177,54986,0},{2188,54979,0},{2198,54971,0},{2228,54973,0}, {2237,54971,0},{2250,54963,0},{2252,54963,0},{2252,54964,0},{2253,54964,0}, {2255,54963,0},{2253,54961,0},{2257,54959,0},{2267,54954,0},{2270,54949,0}, {2278,54941,0},{2282,54936,0},{2285,54938,0},{2285,54934,0},{2283,54933,0}, {2285,54931,0},{2305,54914,0},{2308,54908,0},{2318,54898,0},{2318,54894,0}, {2323,54893,0},{2330,54888,0},{2333,54888,0},{2340,54884,0},{2347,54874,0}, {2360,54864,0},{2365,54856,0},{2370,54854,0},{2373,54851,0},{2387,54844,0}, {2398,54831,0},{2413,54811,0},{2420,54799,0},{2425,54796,0},{2428,54788,0}, {2435,54779,0},{2448,54756,0},{2452,54756,0},{2452,54759,0},{2448,54759,0}, {2438,54776,0},{2437,54784,0},{2433,54786,0},{2438,54781,0},{2438,54784,0}, {2435,54786,0},{2437,54788,0},{2437,54786,0},{2438,54788,0},{2452,54784,0}, {2452,54778,0},{2450,54776,0},{2452,54779,0},{2450,54781,0},{2447,54778,0}, {2445,54773,0},{2450,54769,0},{2448,54766,0},{2450,54763,0},{2452,54761,0}, {2458,54756,0},{2458,54751,0},{2462,54749,0},{2463,54743,0},{2457,54749,0}, {2453,54756,0},{2452,54754,0},{2463,54738,0},{2473,54734,0},{2478,54729,0}, {2478,54733,0},{2475,54738,0},{2478,54739,0},{2483,54734,0},{2485,54736,0}, {2490,54736,0},{2497,54738,0},{2500,54731,0},{2497,54731,0},{2492,54733,0}, {2482,54731,0},{2483,54724,0},{2503,54713,0},{2510,54703,0},{2510,54708,0}, {2505,54713,0},{2498,54718,0},{2497,54723,0},{2502,54723,0},{2502,54719,0}, {2503,54719,0},{2503,54721,0},{2505,54721,0},{2502,54726,0},{2500,54736,0}, {2503,54734,0},{2508,54731,0},{2512,54723,0},{2510,54723,0},{2510,54719,0}, {2517,54714,0},{2515,54708,0},{2517,54701,0},{2520,54701,0},{2518,54704,0}, {2523,54704,0},{2527,54699,0},{2520,54699,0},{2515,54696,0},{2520,54696,0}, {2527,54693,0},{2533,54674,0},{2535,54663,0},{2537,54664,0},{2535,54678,0}, {2540,54671,0},{2538,54659,0},{2540,54659,0},{2540,54663,0},{2545,54661,0}, {2543,54658,0},{2555,54659,0},{2553,54656,0},{2555,54654,0},{2557,54653,0}, {2557,54648,0},{2555,54646,0},{2552,54648,0},{2550,54648,0},{2545,54644,0}, {2547,54641,0},{2550,54643,0},{2550,54641,0},{2550,54634,0},{2547,54636,0}, {2547,54633,0},{2553,54624,0},{2558,54631,0},{2557,54636,0},{2553,54638,0}, {2558,54639,0},{2563,54644,0},{2568,54646,0},{2567,54648,0},{2572,54648,0}, {2577,54653,0},{2580,54653,0},{2580,54651,0},{2577,54651,0},{2570,54646,0}, {2565,54636,0},{2560,54633,0},{2558,54629,0},{2558,54624,0},{2558,54621,0}, {2565,54619,0},{2568,54611,0},{2565,54613,0},{2558,54621,0},{2555,54621,0}, {2563,54611,0},{2563,54596,0},{2567,54599,0},{2567,54606,0},{2572,54608,0}, {2573,54606,0},{2577,54599,0},{2575,54596,0},{2568,54598,0},{2568,54596,0}, {2570,54596,0},{2577,54596,0},{2578,54593,0},{2585,54594,0},{2585,54596,0}, {2585,54594,0},{2592,54594,0},{2593,54591,0},{2603,54594,0},{2612,54601,0}, {2630,54611,0},{2627,54611,0},{2627,54609,0},{2623,54608,0},{2617,54608,0}, {2615,54608,0},{2627,54614,0},{2632,54613,0},{2633,54614,0},{2632,54619,0}, {2628,54621,0},{2627,54619,0},{2625,54621,0},{2622,54626,0},{2625,54626,0}, {2628,54628,0},{2628,54624,0},{2630,54623,0},{2638,54621,0},{2638,54618,0}, {2635,54619,0},{2635,54614,0},{2633,54611,0},{2643,54613,0},{2653,54608,0}, {2658,54603,0},{2667,54594,0},{2668,54589,0},{2670,54589,0},{2670,54593,0}, {2673,54588,0},{2673,54586,0},{2677,54584,0},{2673,54579,0},{2672,54584,0}, {2670,54583,0},{2670,54586,0},{2668,54584,0},{2670,54573,0},{2667,54569,0}, {2668,54564,0},{2673,54556,0},{2682,54549,0},{2692,54548,0},{2698,54541,0}, {2700,54541,0},{2693,54548,0},{2705,54544,0},{2710,54539,0},{2712,54534,0}, {2710,54531,0},{2710,54528,0},{2713,54514,0},{2717,54508,0},{2715,54504,0}, {2727,54494,0},{2730,54484,0},{2732,54491,0},{2738,54488,0},{2737,54481,0}, {2743,54481,0},{2747,54478,0},{2753,54478,0},{2760,54474,0},{2765,54473,0}, {2767,54473,0},{2765,54476,0},{2768,54479,0},{2770,54478,0},{2768,54476,0}, {2772,54478,0},{2773,54481,0},{2775,54476,0},{2778,54478,0},{2778,54476,0}, {2782,54474,0},{2782,54476,0},{2783,54478,0},{2783,54484,0},{2787,54484,0}, {2788,54476,0},{2788,54474,0},{2787,54476,0},{2787,54474,0},{2790,54468,0}, {2792,54458,0},{2790,54451,0},{2792,54454,0},{2795,54453,0},{2798,54454,0}, {2798,54451,0},{2793,54451,0},{2790,54448,0},{2790,54449,0},{2783,54448,0}, {2785,54446,0},{2787,54444,0},{2788,54443,0},{2790,54439,0},{2792,54443,0}, {2797,54436,0},{2793,54426,0},{2797,54426,0},{2797,54423,0},{2805,54413,0}, {2820,54403,0},{2822,54399,0},{2827,54398,0},{2833,54389,0},{2838,54393,0}, {2838,54388,0},{2847,54366,0},{2858,54359,0},{2877,54341,0},{2878,54344,0}, {2875,54349,0},{2877,54351,0},{2880,54351,0},{2880,54344,0},{2883,54339,0}, {2888,54333,0},{2890,54333,0},{2897,54324,0},{2897,54319,0},{2900,54321,0}, {2905,54318,0},{2913,54319,0},{2917,54318,0},{2918,54314,0},{2925,54316,0}, {2930,54316,0},{2933,54311,0},{2933,54303,0},{2930,54303,0},{2933,54298,0}, {2938,54294,0},{2945,54298,0},{2950,54298,0},{2952,54294,0},{2955,54293,0}, {2962,54286,0},{2968,54283,0},{2972,54278,0},{2977,54276,0},{2983,54271,0}, {2990,54269,0},{2992,54266,0},{2992,54263,0},{2992,54261,0},{3000,54263,0}, {3005,54261,0},{3022,54261,0},{3028,54254,0},{3028,54249,0},{3035,54251,0}, {3043,54249,0},{3058,54236,0},{3070,54228,0},{3082,54224,0},{3095,54228,0}, {3107,54224,0},{3108,54224,0},{3107,54226,0},{3100,54229,0},{3107,54231,0}, {3115,54233,0},{3123,54228,0},{3123,54221,0},{3120,54226,0},{3120,54224,0}, {3123,54218,0},{3128,54211,0},{3127,54209,0},{3125,54214,0},{3123,54213,0}, {3128,54193,0},{3128,54188,0},{3133,54174,0},{3135,54173,0},{3135,54174,0}, {3150,54173,0},{3158,54153,0},{3158,54149,0},{3162,54148,0},{3160,54141,0}, {3167,54139,0},{3165,54138,0},{3157,54138,0},{3157,54141,0},{3152,54138,0}, {3152,54134,0},{3150,54134,0},{3150,54121,0},{3152,54116,0},{3157,54104,0}, {3160,54103,0},{3165,54093,0},{3177,54078,0},{3177,54066,0},{3180,54063,0}, {3182,54056,0},{3190,54044,0},{3192,54036,0},{3197,54034,0},{3195,54033,0}, {3190,54034,0},{3190,54041,0},{3180,54049,0},{3180,54054,0},{3172,54054,0}, {3165,54058,0},{3158,54053,0},{3153,54051,0},{3115,54048,0},{3110,54049,0}, {3107,54054,0},{3100,54053,0},{3095,54063,0},{3092,54066,0},{3080,54068,0}, {3065,54066,0},{3057,54071,0},{3048,54074,0},{3028,54071,0},{3027,54073,0}, {3020,54069,0},{3013,54073,0},{3012,54076,0},{3000,54081,0},{2998,54088,0}, {2992,54091,0},{2992,54094,0},{2987,54096,0},{2983,54096,0},{2980,54099,0}, {2978,54103,0},{2977,54106,0},{2978,54109,0},{2977,54111,0},{2975,54116,0}, {2960,54131,0},{2947,54151,0},{2943,54154,0},{2935,54163,0},{2927,54171,0}, {2922,54171,0},{2918,54173,0},{2917,54176,0},{2912,54181,0},{2905,54183,0}, {2903,54181,0},{2897,54183,0},{2895,54181,0},{2888,54186,0},{2890,54191,0}, {2893,54189,0},{2897,54194,0},{2893,54196,0},{2895,54199,0},{2893,54199,0}, {2892,54201,0},{2888,54201,0},{2888,54203,0},{2885,54201,0},{2880,54201,0}, {2880,54206,0},{2883,54213,0},{2882,54216,0},{2878,54218,0},{2873,54218,0}, {2870,54221,0},{2865,54219,0},{2862,54223,0},{2848,54224,0},{2843,54234,0}, {2845,54244,0},{2843,54246,0},{2843,54248,0},{2843,54249,0},{2828,54249,0}, {2820,54258,0},{2813,54256,0},{2807,54259,0},{2803,54258,0},{2800,54264,0}, {2783,54261,0},{2780,54266,0},{2772,54269,0},{2772,54273,0},{2763,54279,0}, {2763,54286,0},{2757,54294,0},{2753,54301,0},{2750,54304,0},{2733,54306,0}, {2723,54316,0},{2722,54316,0},{2723,54314,0},{2723,54313,0},{2720,54314,0}, {2713,54326,0},{2710,54341,0},{2708,54341,0},{2705,54336,0},{2700,54333,0}, {2692,54339,0},{2690,54339,0},{2688,54343,0},{2683,54346,0},{2677,54346,0}, {2673,54344,0},{2672,54348,0},{2667,54351,0},{2663,54354,0},{2655,54361,0}, {2657,54364,0},{2660,54368,0},{2665,54364,0},{2670,54356,0},{2687,54349,0}, {2690,54351,0},{2690,54354,0},{2682,54364,0},{2680,54368,0},{2675,54373,0}, {2672,54379,0},{2657,54381,0},{2652,54391,0},{2647,54389,0},{2642,54388,0}, {2638,54393,0},{2637,54393,0},{2635,54396,0},{2630,54398,0},{2628,54394,0}, {2623,54396,0},{2613,54401,0},{2610,54404,0},{2603,54401,0},{2600,54403,0}, {2595,54399,0},{2585,54404,0},{2583,54406,0},{2578,54406,0},{2572,54413,0}, {2558,54419,0},{2555,54424,0},{2555,54431,0},{2553,54431,0},{2553,54434,0}, {2542,54434,0},{2532,54441,0},{2525,54441,0},{2520,54444,0},{2517,54444,0}, {2508,54451,0},{2502,54461,0},{2498,54461,0},{2490,54468,0},{2480,54469,0}, {2467,54463,0},{2458,54463,0},{2447,54466,0},{2438,54468,0},{2428,54474,0}, {2428,54478,0},{2422,54484,0},{2418,54506,0},{2417,54503,0},{2418,54499,0}, {2418,54496,0},{2413,54498,0},{2412,54499,0},{2413,54504,0},{2415,54504,0}, {2418,54509,0},{2425,54508,0},{2428,54506,0},{2433,54506,0},{2435,54514,0}, {2425,54523,0},{2417,54536,0},{2405,54539,0},{2402,54544,0},{2405,54554,0}, {2402,54556,0},{2392,54554,0},{2390,54554,0},{2380,54566,0},{2373,54566,0}, {2367,54568,0},{2358,54588,0},{2355,54589,0},{2345,54596,0},{2342,54594,0}, {2340,54596,0},{2337,54594,0},{2323,54593,0},{2313,54584,0},{2307,54573,0}, {2303,54566,0},{2298,54566,0},{2292,54553,0},{2288,54546,0},{2287,54544,0}, {2287,54541,0},{2290,54534,0},{2298,54529,0},{2313,54524,0},{2333,54519,0}, {2342,54511,0},{2357,54504,0},{2363,54496,0},{2368,54479,0},{2373,54473,0}, {2387,54459,0},{2392,54453,0},{2395,54446,0},{2402,54443,0},{2412,54433,0}, {2417,54421,0},{2418,54421,0},{2420,54414,0},{2433,54389,0},{2435,54389,0}, {2430,54399,0},{2433,54393,0},{2443,54383,0},{2443,54379,0},{2447,54376,0}, {2453,54371,0},{2458,54371,0},{2460,54368,0},{2458,54366,0},{2457,54368,0}, {2455,54366,0},{2457,54356,0},{2452,54359,0},{2452,54356,0},{2465,54353,0}, {2470,54349,0},{2475,54343,0},{2477,54343,0},{2475,54344,0},{2480,54339,0}, {2488,54336,0},{2488,54334,0},{2487,54336,0},{2483,54334,0},{2478,54339,0}, {2478,54336,0},{2475,54339,0},{2477,54336,0},{2475,54334,0},{2477,54333,0}, {2485,54333,0},{2483,54329,0},{2477,54331,0},{2473,54326,0},{2477,54329,0}, {2480,54326,0},{2487,54326,0},{2488,54323,0},{2492,54328,0},{2492,54324,0}, {2493,54324,0},{2495,54328,0},{2497,54326,0},{2503,54326,0},{2502,54324,0}, {2490,54321,0},{2490,54318,0},{2493,54319,0},{2497,54319,0},{2497,54321,0}, {2505,54324,0},{2517,54323,0},{2522,54326,0},{2523,54328,0},{2527,54329,0}, {2537,54329,0},{2542,54328,0},{2543,54329,0},{2545,54328,0},{2548,54331,0}, {2557,54329,0},{2572,54329,0},{2568,54328,0},{2557,54328,0},{2552,54326,0}, {2552,54324,0},{2572,54326,0},{2577,54324,0},{2595,54316,0},{2603,54311,0}, {2607,54306,0},{2610,54304,0},{2608,54303,0},{2622,54299,0},{2627,54296,0}, {2628,54293,0},{2627,54289,0},{2627,54286,0},{2630,54283,0},{2633,54283,0}, {2633,54273,0},{2633,54269,0},{2642,54258,0},{2643,54259,0},{2643,54254,0}, {2652,54246,0},{2655,54238,0},{2665,54226,0},{2668,54228,0},{2667,54224,0}, {2668,54219,0},{2672,54213,0},{2678,54213,0},{2688,54223,0},{2697,54223,0}, {2697,54219,0},{2695,54218,0},{2688,54218,0},{2683,54216,0},{2682,54213,0}, {2682,54216,0},{2680,54211,0},{2673,54211,0},{2680,54199,0},{2682,54191,0}, {2682,54196,0},{2685,54193,0},{2683,54189,0},{2682,54189,0},{2677,54183,0}, {2675,54183,0},{2675,54176,0},{2680,54168,0},{2682,54164,0},{2690,54161,0}, {2698,54151,0},{2700,54144,0},{2698,54136,0},{2702,54131,0},{2710,54128,0}, {2715,54119,0},{2717,54111,0},{2715,54106,0},{2718,54098,0},{2718,54094,0}, {2723,54093,0},{2725,54088,0},{2735,54088,0},{2742,54084,0},{2745,54079,0}, {2748,54076,0},{2753,54063,0},{2762,54056,0},{2765,54049,0},{2765,54051,0}, {2770,54049,0},{2770,54048,0},{2767,54046,0},{2772,54041,0},{2773,54034,0}, {2780,54033,0},{2783,54029,0},{2787,54031,0},{2783,54036,0},{2783,54046,0}, {2783,54051,0},{2782,54056,0},{2782,54061,0},{2778,54066,0},{2777,54074,0}, {2777,54088,0},{2788,54101,0},{2787,54103,0},{2778,54103,0},{2773,54108,0}, {2770,54119,0},{2772,54126,0},{2772,54133,0},{2768,54134,0},{2772,54139,0}, {2777,54133,0},{2775,54133,0},{2775,54129,0},{2772,54121,0},{2773,54119,0}, {2777,54113,0},{2780,54114,0},{2783,54113,0},{2785,54106,0},{2787,54104,0}, {2788,54108,0},{2795,54108,0},{2797,54113,0},{2805,54121,0},{2803,54121,0}, {2797,54119,0},{2800,54121,0},{2802,54123,0},{2807,54123,0},{2818,54124,0}, {2822,54123,0},{2823,54119,0},{2827,54118,0},{2840,54126,0},{2852,54129,0}, {2858,54126,0},{2860,54121,0},{2867,54119,0},{2868,54109,0},{2872,54109,0}, {2875,54103,0},{2882,54101,0},{2883,54096,0},{2888,54094,0},{2888,54093,0}, {2892,54091,0},{2893,54088,0},{2893,54083,0},{2893,54081,0},{2898,54079,0}, {2898,54078,0},{2902,54074,0},{2905,54076,0},{2912,54071,0},{2913,54064,0}, {2920,54061,0},{2928,54049,0},{2938,54041,0},{2942,54026,0},{2943,54018,0}, {2948,54013,0},{2957,53996,0},{2963,53989,0},{2963,53983,0},{2970,53979,0}, {2972,53973,0},{2977,53966,0},{2987,53966,0},{2993,53963,0},{2995,53961,0}, {2995,53954,0},{3005,53958,0},{3010,53958,0},{3015,53956,0},{3023,53956,0}, {3033,53953,0},{3038,53949,0},{3040,53939,0},{3045,53943,0},{3050,53938,0}, {3045,53941,0},{3043,53934,0},{3037,53938,0},{3038,53934,0},{3045,53933,0}, {3062,53933,0},{3080,53931,0},{3090,53916,0},{3095,53911,0},{3097,53903,0}, {3108,53906,0},{3117,53904,0},{3122,53903,0},{3135,53891,0},{3142,53886,0}, {3145,53883,0},{3147,53876,0},{3152,53874,0},{3155,53868,0},{3158,53869,0}, {3158,53873,0},{3162,53871,0},{3167,53873,0},{3172,53869,0},{3175,53864,0}, {3173,53869,0},{3175,53874,0},{3183,53876,0},{3192,53861,0},{3198,53858,0}, {3200,53851,0},{3205,53849,0},{3213,53848,0},{3223,53844,0},{3228,53834,0}, {3230,53833,0},{3245,53824,0},{3253,53824,0},{3255,53823,0},{3232,59061,128}, {3230,59058,0},{3228,59058,0},{3227,59051,0},{3227,59056,0},{3228,59059,0}, {3233,59066,0},{3235,59066,0},{3238,59069,0},{3238,59068,0},{3232,59061,0}, {1838,58809,128},{1840,58818,0},{1843,58819,0},{1848,58818,0},{1850,58821,0}, {1852,58829,0},{1848,58839,0},{1848,58858,0},{1848,58863,0},{1850,58873,0}, {1847,58889,0},{1848,58896,0},{1848,58903,0},{1847,58906,0},{1847,58918,0}, {1845,58919,0},{1848,58923,0},{1842,58926,0},{1843,58931,0},{1845,58924,0}, {1847,58924,0},{1845,58933,0},{1847,58936,0},{1845,58946,0},{1842,58954,0}, {1843,58956,0},{1842,58956,0},{1840,58959,0},{1837,58969,0},{1838,58973,0}, {1837,58974,0},{1828,58973,0},{1823,58976,0},{1818,58966,0},{1818,58963,0}, {1813,58958,0},{1807,58956,0},{1805,58953,0},{1802,58953,0},{1798,58948,0}, {1797,58941,0},{1798,58934,0},{1795,58931,0},{1795,58926,0},{1792,58916,0}, {1793,58916,0},{1795,58916,0},{1793,58913,0},{1795,58908,0},{1798,58903,0}, {1793,58896,0},{1798,58889,0},{1797,58878,0},{1797,58874,0},{1798,58873,0}, {1797,58869,0},{1798,58864,0},{1798,58859,0},{1798,58861,0},{1800,58858,0}, {1798,58856,0},{1797,58858,0},{1795,58854,0},{1795,58844,0},{1793,58843,0}, {1793,58841,0},{1797,58836,0},{1798,58831,0},{1797,58829,0},{1795,58826,0}, {1795,58819,0},{1793,58818,0},{1795,58816,0},{1798,58816,0},{1802,58819,0}, {1803,58816,0},{1807,58818,0},{1808,58818,0},{1810,58819,0},{1817,58818,0}, {1820,58821,0},{1828,58818,0},{1832,58811,0},{1837,58809,0},{1838,58809,0}, {1970,58359,128},{1970,58364,0},{1977,58363,0},{1977,58359,0},{1978,58358,0}, {1982,58361,0},{1983,58368,0},{1985,58369,0},{1990,58369,0},{1990,58383,0}, {1990,58389,0},{1985,58401,0},{1985,58406,0},{1982,58409,0},{1983,58414,0}, {1987,58416,0},{1983,58419,0},{1985,58421,0},{1985,58419,0},{1987,58419,0}, {1987,58426,0},{1992,58429,0},{1993,58436,0},{1992,58439,0},{1988,58441,0}, {1988,58443,0},{1990,58443,0},{1990,58453,0},{1987,58456,0},{1983,58458,0}, {1983,58463,0},{1975,58473,0},{1977,58484,0},{1978,58491,0},{1965,58508,0}, {1962,58524,0},{1963,58526,0},{1965,58528,0},{1968,58533,0},{1968,58541,0}, {1962,58548,0},{1953,58546,0},{1952,58549,0},{1943,58549,0},{1935,58554,0}, {1928,58561,0},{1930,58578,0},{1933,58583,0},{1932,58586,0},{1933,58591,0}, {1932,58593,0},{1930,58603,0},{1937,58613,0},{1935,58614,0},{1928,58613,0}, {1930,58621,0},{1918,58613,0},{1920,58604,0},{1918,58594,0},{1920,58589,0}, {1922,58574,0},{1922,58573,0},{1917,58574,0},{1912,58573,0},{1908,58574,0}, {1910,58583,0},{1908,58588,0},{1908,58591,0},{1910,58589,0},{1910,58591,0}, {1908,58598,0},{1907,58599,0},{1905,58601,0},{1905,58604,0},{1902,58611,0}, {1902,58618,0},{1902,58623,0},{1903,58621,0},{1905,58623,0},{1900,58626,0}, {1898,58631,0},{1898,58634,0},{1902,58634,0},{1903,58638,0},{1903,58644,0}, {1898,58649,0},{1898,58658,0},{1892,58668,0},{1878,58683,0},{1875,58689,0}, {1867,58696,0},{1865,58701,0},{1860,58704,0},{1850,58699,0},{1842,58691,0}, {1835,58691,0},{1835,58683,0},{1838,58678,0},{1837,58676,0},{1833,58676,0}, {1828,58674,0},{1820,58671,0},{1820,58661,0},{1827,58659,0},{1835,58653,0}, {1838,58649,0},{1842,58639,0},{1840,58639,0},{1838,58629,0},{1840,58619,0}, {1845,58614,0},{1843,58608,0},{1845,58604,0},{1843,58603,0},{1843,58593,0}, {1840,58584,0},{1842,58581,0},{1845,58574,0},{1840,58573,0},{1842,58569,0}, {1845,58568,0},{1847,58548,0},{1842,58539,0},{1842,58534,0},{1833,58529,0}, {1823,58521,0},{1822,58513,0},{1823,58508,0},{1823,58496,0},{1820,58484,0}, {1822,58479,0},{1823,58481,0},{1828,58476,0},{1832,58479,0},{1837,58479,0}, {1840,58478,0},{1842,58474,0},{1843,58468,0},{1842,58464,0},{1838,58466,0}, {1835,58463,0},{1835,58461,0},{1835,58456,0},{1833,58453,0},{1835,58451,0}, {1830,58449,0},{1825,58443,0},{1825,58439,0},{1830,58438,0},{1832,58431,0}, {1830,58428,0},{1825,58426,0},{1815,58431,0},{1792,58416,0},{1782,58406,0}, {1767,58399,0},{1762,58396,0},{1760,58394,0},{1775,58384,0},{1777,58378,0}, {1777,58368,0},{1783,58373,0},{1790,58369,0},{1792,58371,0},{1797,58369,0}, {1802,58363,0},{1805,58358,0},{1803,58359,128},{1805,58356,0},{1812,58353,0}, {1817,58346,0},{1820,58334,0},{1823,58329,0},{1822,58313,0},{1823,58301,0}, {1822,58284,0},{1822,58281,0},{1817,58281,0},{1818,58273,0},{1817,58261,0}, {1815,58261,0},{1813,58254,0},{1813,58248,0},{1818,58236,0},{1818,58224,0}, {1822,58218,0},{1823,58208,0},{1822,58201,0},{1823,58201,0},{1825,58204,0}, {1827,58198,0},{1825,58188,0},{1823,58183,0},{1825,58181,0},{1825,58179,0}, {1823,58179,0},{1822,58178,0},{1822,58176,0},{1822,58174,0},{1825,58174,0}, {1825,58173,0},{1822,58171,0},{1825,58171,0},{1823,58169,0},{1823,58168,0}, {1820,58164,0},{1817,58158,0},{1813,58153,0},{1810,58153,0},{1803,58158,0}, {1803,58148,0},{1813,58141,0},{1825,58126,0},{1827,58121,0},{1830,58118,0}, {1830,58113,0},{1830,58108,0},{1828,58104,0},{1830,58099,0},{1833,58091,0}, {1838,58091,0},{1843,58088,0},{1857,58094,0},{1862,58094,0},{1863,58098,0}, {1865,58104,0},{1865,58108,0},{1867,58109,0},{1867,58119,0},{1860,58133,0}, {1860,58139,0},{1857,58144,0},{1857,58151,0},{1853,58158,0},{1855,58158,0}, {1855,58163,0},{1857,58166,0},{1858,58178,0},{1857,58178,0},{1855,58176,0}, {1855,58164,0},{1853,58169,0},{1850,58171,0},{1850,58176,0},{1853,58186,0}, {1850,58199,0},{1847,58211,0},{1848,58216,0},{1848,58223,0},{1845,58226,0}, {1847,58238,0},{1845,58246,0},{1843,58248,0},{1845,58251,0},{1843,58263,0}, {1847,58268,0},{1855,58273,0},{1857,58276,0},{1855,58283,0},{1853,58293,0}, {1855,58294,0},{1853,58299,0},{1853,58301,0},{1863,58301,0},{1867,58304,0}, {1868,58303,0},{1872,58293,0},{1877,58288,0},{1878,58281,0},{1890,58273,0}, {1895,58264,0},{1900,58261,0},{1905,58254,0},{1908,58254,0},{1910,58263,0}, {1912,58264,0},{1913,58264,0},{1915,58261,0},{1922,58256,0},{1928,58259,0}, {1930,58264,0},{1932,58263,0},{1933,58259,0},{1937,58259,0},{1938,58259,0}, {1937,58263,0},{1938,58264,0},{1942,58263,0},{1940,58266,0},{1940,58268,0}, {1945,58266,0},{1945,58259,0},{1950,58256,0},{1957,58239,0},{1960,58236,0}, {1963,58226,0},{1962,58221,0},{1965,58214,0},{1962,58213,0},{1963,58196,0}, {1968,58189,0},{1975,58191,0},{1978,58194,0},{1980,58198,0},{1982,58199,0}, {1982,58194,0},{1983,58196,0},{1983,58201,0},{1985,58208,0},{1990,58218,0}, {1993,58219,0},{1992,58221,0},{1990,58231,0},{1992,58238,0},{1990,58239,0}, {1992,58243,0},{1995,58256,0},{1988,58278,0},{1982,58286,0},{1980,58296,0}, {1982,58298,0},{1975,58303,0},{1975,58301,0},{1972,58304,0},{1973,58306,0}, {1977,58304,0},{1975,58309,0},{1977,58311,0},{1978,58311,0},{1978,58316,0}, {1975,58316,0},{1975,58323,0},{1973,58324,0},{1972,58331,0},{1970,58334,0}, {1973,58339,0},{1972,58349,0},{1968,58349,0},{1968,58346,0},{1967,58348,0}, {1967,58351,0},{1965,58354,0},{1967,58356,0},{1968,58351,0},{1972,58353,0}, {1970,58361,0},{1827,57699,128},{1828,57701,0},{1837,57703,0},{1837,57704,0}, {1838,57708,0},{1838,57709,0},{1840,57709,0},{1845,57714,0},{1845,57718,0}, {1843,57719,0},{1845,57721,0},{1843,57724,0},{1845,57734,0},{1843,57739,0}, {1845,57741,0},{1852,57744,0},{1852,57749,0},{1848,57771,0},{1848,57779,0}, {1848,57788,0},{1845,57796,0},{1845,57811,0},{1843,57814,0},{1843,57819,0}, {1840,57824,0},{1842,57831,0},{1840,57841,0},{1840,57844,0},{1837,57846,0}, {1832,57854,0},{1827,57858,0},{1827,57866,0},{1825,57868,0},{1822,57873,0}, {1822,57878,0},{1820,57883,0},{1820,57888,0},{1818,57891,0},{1815,57903,0}, {1813,57903,0},{1805,57908,0},{1793,57913,0},{1792,57918,0},{1790,57916,0}, {1790,57913,0},{1787,57906,0},{1787,57904,0},{1788,57906,0},{1788,57904,0}, {1785,57901,0},{1787,57894,0},{1785,57884,0},{1787,57878,0},{1793,57871,0}, {1793,57864,0},{1792,57858,0},{1793,57853,0},{1795,57863,0},{1797,57858,0}, {1798,57853,0},{1797,57849,0},{1792,57848,0},{1785,57844,0},{1783,57841,0}, {1785,57838,0},{1785,57833,0},{1787,57834,0},{1788,57833,0},{1790,57828,0}, {1787,57823,0},{1780,57821,0},{1780,57818,0},{1778,57819,0},{1777,57814,0}, {1775,57819,0},{1775,57823,0},{1772,57823,0},{1770,57819,0},{1772,57813,0}, {1780,57804,0},{1787,57794,0},{1783,57786,0},{1787,57779,0},{1785,57764,0}, {1785,57761,0},{1788,57756,0},{1790,57756,0},{1795,57753,0},{1800,57751,0}, {1802,57749,0},{1803,57741,0},{1808,57738,0},{1813,57733,0},{1817,57733,0}, {1820,57731,0},{1820,57711,0},{1822,57703,0},{1823,57699,0},{1827,57699,0}, {2192,57044,128},{2188,57048,0},{2192,57051,0},{2193,57049,0},{2193,57054,0}, {2190,57054,0},{2192,57056,0},{2195,57061,0},{2200,57078,0},{2205,57084,0}, {2205,57088,0},{2203,57088,0},{2202,57091,0},{2205,57098,0},{2203,57099,0}, {2200,57104,0},{2202,57106,0},{2202,57108,0},{2207,57109,0},{2203,57104,0}, {2207,57104,0},{2210,57101,0},{2212,57103,0},{2215,57094,0},{2220,57094,0}, {2220,57091,0},{2225,57094,0},{2235,57098,0},{2247,57108,0},{2248,57106,0}, {2252,57114,0},{2257,57116,0},{2258,57114,0},{2258,57123,0},{2262,57123,0}, {2262,57128,0},{2265,57126,0},{2267,57128,0},{2265,57131,0},{2268,57133,0}, {2270,57129,0},{2272,57131,0},{2272,57134,0},{2268,57136,0},{2273,57144,0}, {2272,57146,0},{2275,57149,0},{2275,57156,0},{2280,57166,0},{2278,57169,0}, {2280,57173,0},{2282,57171,0},{2283,57174,0},{2282,57178,0},{2283,57181,0}, {2287,57181,0},{2288,57184,0},{2287,57188,0},{2285,57186,0},{2287,57189,0}, {2290,57191,0},{2290,57194,0},{2287,57198,0},{2295,57204,0},{2300,57213,0}, {2298,57218,0},{2295,57218,0},{2293,57219,0},{2295,57221,0},{2298,57219,0}, {2302,57231,0},{2300,57238,0},{2298,57236,0},{2297,57238,0},{2298,57243,0}, {2302,57243,0},{2303,57246,0},{2303,57264,0},{2305,57278,0},{2308,57284,0}, {2315,57296,0},{2317,57303,0},{2318,57313,0},{2320,57333,0},{2317,57339,0}, {2315,57349,0},{2315,57378,0},{2312,57383,0},{2305,57381,0},{2305,57384,0}, {2310,57388,0},{2310,57394,0},{2313,57406,0},{2322,57423,0},{2318,57423,0}, {2317,57413,0},{2312,57408,0},{2310,57414,0},{2303,57419,0},{2303,57424,0}, {2310,57428,0},{2310,57433,0},{2310,57436,0},{2310,57438,0},{2307,57438,0}, {2305,57441,0},{2310,57461,0},{2308,57469,0},{2310,57474,0},{2313,57474,0}, {2315,57473,0},{2315,57474,0},{2315,57478,0},{2308,57474,0},{2298,57481,0}, {2298,57488,0},{2295,57493,0},{2293,57496,0},{2293,57503,0},{2290,57511,0}, {2293,57521,0},{2297,57521,0},{2295,57524,0},{2293,57528,0},{2293,57531,0}, {2295,57533,0},{2293,57534,0},{2288,57538,0},{2285,57546,0},{2288,57549,0}, {2290,57556,0},{2288,57558,0},{2287,57554,0},{2287,57551,0},{2280,57551,0}, {2280,57558,0},{2277,57564,0},{2275,57566,0},{2277,57571,0},{2265,57574,0}, {2262,57581,0},{2257,57581,0},{2253,57584,0},{2253,57589,0},{2247,57594,0}, {2240,57603,0},{2240,57608,0},{2237,57611,0},{2238,57614,0},{2237,57621,0}, {2240,57623,0},{2238,57628,0},{2240,57636,0},{2238,57643,0},{2240,57648,0}, {2238,57654,0},{2240,57658,0},{2237,57659,0},{2233,57659,0},{2232,57663,0}, {2235,57664,0},{2238,57663,0},{2238,57666,0},{2235,57668,0},{2232,57679,0}, {2227,57686,0},{2225,57698,0},{2222,57698,0},{2222,57701,0},{2218,57701,0}, {2217,57704,0},{2215,57709,0},{2213,57714,0},{2213,57719,0},{2210,57721,0}, {2210,57724,0},{2208,57731,0},{2203,57734,0},{2198,57736,0},{2190,57744,0}, {2187,57748,0},{2188,57749,0},{2197,57751,0},{2197,57756,0},{2195,57751,0}, {2192,57751,0},{2187,57754,0},{2187,57758,0},{2180,57761,0},{2178,57769,0}, {2178,57778,0},{2175,57783,0},{2177,57784,0},{2178,57791,0},{2173,57794,0}, {2175,57791,0},{2173,57791,0},{2165,57793,0},{2163,57801,0},{2163,57803,0}, {2167,57803,0},{2170,57798,0},{2175,57796,0},{2177,57793,0},{2180,57791,0}, {2180,57784,0},{2185,57779,0},{2188,57778,0},{2188,57774,0},{2193,57779,0}, {2190,57784,0},{2188,57784,0},{2185,57786,0},{2183,57789,0},{2175,57806,0}, {2165,57819,0},{2167,57823,0},{2163,57823,0},{2160,57824,0},{2155,57821,0}, {2158,57818,0},{2162,57809,0},{2160,57806,0},{2162,57801,0},{2160,57799,0}, {2157,57806,0},{2157,57811,0},{2153,57811,0},{2152,57808,0},{2148,57809,0}, {2147,57811,0},{2148,57814,0},{2145,57814,0},{2148,57821,0},{2155,57823,0}, {2160,57826,0},{2160,57828,0},{2145,57841,0},{2142,57848,0},{2142,57853,0}, {2138,57853,0},{2140,57854,0},{2137,57854,0},{2135,57853,0},{2137,57851,0}, {2135,57848,0},{2133,57846,0},{2130,57846,0},{2130,57849,0},{2133,57853,0}, {2130,57853,0},{2138,57856,0},{2135,57871,0},{2132,57873,0},{2130,57871,0}, {2128,57864,0},{2130,57864,0},{2130,57863,0},{2128,57863,0},{2125,57869,0}, {2125,57874,0},{2125,57871,0},{2130,57871,0},{2130,57876,0},{2127,57881,0}, {2128,57881,0},{2123,57881,0},{2122,57874,0},{2122,57878,0},{2122,57876,0}, {2120,57876,0},{2120,57879,0},{2118,57883,0},{2122,57891,0},{2123,57883,0}, {2127,57883,0},{2128,57884,0},{2127,57899,0},{2122,57909,0},{2118,57919,0}, {2115,57923,0},{2110,57924,0},{2110,57926,0},{2112,57928,0},{2108,57933,0}, {2107,57933,0},{2108,57934,0},{2107,57934,0},{2107,57936,0},{2108,57936,0}, {2110,57941,0},{2112,57944,0},{2110,57948,0},{2108,57948,0},{2108,57949,0}, {2110,57949,0},{2113,57954,0},{2112,57958,0},{2112,57966,0},{2107,57969,0}, {2107,57974,0},{2100,57978,0},{2095,57974,0},{2092,57974,0},{2088,57969,0}, {2088,57968,0},{2092,57966,0},{2092,57963,0},{2090,57964,0},{2090,57963,0}, {2088,57961,0},{2087,57963,0},{2085,57964,0},{2087,57964,0},{2087,57968,0}, {2087,57974,0},{2082,57981,0},{2078,57979,0},{2082,57974,0},{2083,57974,0}, {2085,57973,0},{2083,57971,0},{2082,57966,0},{2083,57959,0},{2082,57959,0}, {2075,57958,0},{2072,57959,0},{2070,57963,0},{2070,57966,0},{2077,57973,0}, {2075,57976,0},{2072,57974,0},{2072,57978,0},{2070,57978,0},{2068,57981,0}, {2070,57981,0},{2068,57986,0},{2070,57988,0},{2068,57991,0},{2072,57991,0}, {2072,57989,0},{2073,57993,0},{2072,58001,0},{2070,57999,0},{2067,58003,0}, {2067,58011,0},{2072,58003,0},{2072,58011,0},{2070,58018,0},{2068,58018,0}, {2068,58019,0},{2067,58021,0},{2068,58024,0},{2067,58026,0},{2068,58026,0}, {2067,58028,0},{2068,58029,0},{2070,58033,0},{2068,58041,0},{2067,58043,0}, {2067,58046,0},{2063,58049,0},{2062,58061,0},{2060,58063,0},{2060,58061,0}, {2055,58063,0},{2053,58068,0},{2052,58069,0},{2052,58073,0},{2050,58073,0}, {2048,58076,0},{2042,58079,0},{2042,58081,0},{2035,58086,0},{2033,58093,0}, {2030,58096,0},{2028,58098,0},{2030,58099,0},{2030,58106,0},{2032,58108,0}, {2032,58114,0},{2025,58123,0},{2022,58123,0},{2018,58123,0},{2013,58114,0}, {2008,58113,0},{2005,58108,0},{2008,58104,0},{2005,58078,0},{2005,58059,0}, {2003,58053,0},{1998,58048,0},{1997,58039,0},{1993,58039,0},{1990,58034,0}, {1988,58024,0},{1988,58021,0},{1990,58019,0},{1993,58023,0},{1993,58026,0}, {1997,58023,0},{2002,58028,0},{2005,58026,0},{2003,58024,0},{2000,58023,0}, {2002,58021,0},{2000,58018,0},{2000,58021,0},{1998,58021,0},{1997,58021,0}, {1993,58019,0},{1992,58016,0},{1990,58014,0},{1988,58001,0},{1988,57994,0}, {1990,57993,0},{1988,57989,0},{1988,57976,0},{1995,57964,0},{1997,57946,0}, {1995,57939,0},{1995,57934,0},{1997,57926,0},{1998,57923,0},{1998,57919,0}, {1998,57911,0},{1995,57901,0},{1997,57894,0},{1995,57889,0},{1993,57879,0}, {1995,57871,0},{1993,57863,0},{1993,57849,0},{1990,57843,0},{1988,57836,0}, {1988,57833,0},{1988,57823,0},{1992,57818,0},{1990,57816,0},{1990,57813,0}, {1990,57806,0},{1988,57803,0},{1987,57804,0},{1985,57801,0},{1985,57789,0}, {1983,57783,0},{1985,57776,0},{1982,57768,0},{1983,57764,0},{1987,57761,0}, {1992,57766,0},{1992,57768,0},{2005,57776,0},{2005,57779,0},{2008,57778,0}, {2008,57783,0},{2015,57789,0},{2022,57798,0},{2025,57809,0},{2030,57811,0}, {2030,57814,0},{2028,57814,0},{2030,57819,0},{2033,57821,0},{2037,57824,0}, {2042,57826,0},{2047,57828,0},{2048,57824,0},{2052,57824,0},{2055,57819,0}, {2055,57816,0},{2053,57816,0},{2055,57813,0},{2058,57813,0},{2060,57816,0}, {2063,57816,0},{2067,57813,0},{2065,57809,0},{2072,57803,0},{2072,57799,0}, {2067,57788,0},{2068,57779,0},{2068,57776,0},{2067,57776,0},{2068,57773,0}, {2068,57763,0},{2073,57749,0},{2073,57746,0},{2068,57743,0},{2070,57739,0}, {2070,57731,0},{2072,57731,0},{2072,57729,0},{2075,57726,0},{2077,57721,0}, {2080,57719,0},{2083,57714,0},{2083,57713,0},{2090,57709,0},{2092,57706,0}, {2095,57703,0},{2095,57696,0},{2100,57694,0},{2105,57688,0},{2103,57686,0}, {2112,57686,0},{2120,57683,0},{2125,57683,0},{2125,57686,0},{2127,57686,0}, {2128,57684,0},{2130,57683,0},{2138,57679,0},{2152,57674,0},{2155,57668,0}, {2157,57661,0},{2158,57663,0},{2158,57668,0},{2160,57666,0},{2163,57663,0}, {2162,57651,0},{2160,57646,0},{2158,57629,0},{2155,57623,0},{2153,57614,0}, {2155,57606,0},{2160,57599,0},{2158,57594,0},{2160,57589,0},{2165,57584,0}, {2162,57583,0},{2163,57579,0},{2163,57576,0},{2167,57573,0},{2170,57569,0}, {2168,57564,0},{2170,57559,0},{2170,57553,0},{2167,57551,0},{2168,57549,0}, {2170,57546,0},{2172,57548,0},{2175,57546,0},{2173,57543,0},{2175,57536,0}, {2173,57534,0},{2172,57538,0},{2172,57536,0},{2175,57531,0},{2180,57531,0}, {2185,57516,0},{2190,57506,0},{2200,57496,0},{2203,57494,0},{2205,57491,0}, {2207,57491,0},{2207,57496,0},{2208,57496,0},{2208,57494,0},{2210,57496,0}, {2212,57491,0},{2215,57491,0},{2217,57488,0},{2218,57488,0},{2217,57486,0}, {2218,57483,0},{2217,57483,0},{2208,57489,0},{2203,57489,0},{2207,57481,0}, {2205,57476,0},{2205,57456,0},{2203,57448,0},{2205,57434,0},{2210,57426,0}, {2217,57423,0},{2222,57423,0},{2228,57418,0},{2227,57414,0},{2220,57416,0}, {2210,57416,0},{2205,57414,0},{2208,57416,0},{2215,57411,0},{2213,57411,0}, {2213,57409,0},{2210,57409,0},{2210,57404,0},{2208,57404,0},{2208,57401,0}, {2212,57398,0},{2215,57398,0},{2218,57396,0},{2218,57388,0},{2220,57383,0}, {2218,57379,0},{2222,57371,0},{2220,57369,0},{2220,57368,0},{2218,57366,0}, {2220,57363,0},{2218,57363,0},{2220,57361,0},{2217,57361,0},{2218,57354,0}, {2220,57351,0},{2225,57348,0},{2235,57326,0},{2237,57326,0},{2237,57323,0}, {2240,57319,0},{2242,57321,0},{2243,57324,0},{2243,57356,0},{2245,57361,0}, {2245,57366,0},{2248,57371,0},{2258,57371,0},{2265,57358,0},{2268,57348,0}, {2267,57328,0},{2268,57309,0},{2268,57303,0},{2268,57296,0},{2268,57284,0}, {2267,57279,0},{2268,57278,0},{2268,57271,0},{2270,57261,0},{2268,57258,0}, {2262,57256,0},{2258,57249,0},{2255,57244,0},{2255,57241,0},{2248,57229,0}, {2237,57223,0},{2233,57219,0},{2235,57211,0},{2232,57209,0},{2232,57208,0}, {2230,57206,0},{2227,57201,0},{2223,57201,0},{2222,57199,0},{2223,57199,0}, {2220,57199,0},{2222,57196,0},{2218,57196,0},{2217,57188,0},{2220,57179,0}, {2222,57181,0},{2225,57179,0},{2220,57176,0},{2217,57169,0},{2218,57169,0}, {2217,57158,0},{2218,57156,0},{2217,57154,0},{2217,57144,0},{2213,57139,0}, {2207,57139,0},{2205,57136,0},{2202,57138,0},{2203,57139,0},{2202,57141,0}, {2197,57136,0},{2195,57138,0},{2192,57133,0},{2193,57126,0},{2192,57113,0}, {2188,57106,0},{2177,57091,0},{2177,57083,0},{2187,57089,0},{2192,57089,0}, {2193,57086,0},{2192,57071,0},{2187,57063,0},{2182,57054,0},{2185,57043,0}, {2187,57041,0},{2192,57044,0},{6613,61954,128},{6612,61964,0},{6613,61966,0}, {6617,61966,0},{6618,61959,0},{6620,61961,0},{6618,61968,0},{6610,61974,0}, {6613,61978,0},{6620,61974,0},{6620,61966,0},{6625,61981,0},{6627,61969,0}, {6627,61961,0},{6630,61968,0},{6633,61969,0},{6642,61948,0},{6643,61951,0}, {6643,61963,0},{6640,61958,0},{6638,61963,0},{6628,61976,0},{6628,61986,0}, {6630,61986,0},{6633,61991,0},{6628,61991,0},{6628,61998,0},{6623,62016,0}, {6623,62029,0},{6625,62033,0},{6627,62031,0},{6632,62013,0},{6637,62013,0}, {6642,62024,0},{6633,62024,0},{6628,62039,0},{6632,62046,0},{6633,62043,0}, {6635,62051,0},{6633,62054,0},{6632,62051,0},{6632,62054,0},{6632,62058,0}, {6633,62059,0},{6633,62064,0},{6640,62063,0},{6637,62068,0},{6637,62073,0}, {6642,62073,0},{6642,62066,0},{6643,62069,0},{6645,62079,0},{6650,62083,0}, {6650,62089,0},{6653,62096,0},{6658,62084,0},{6662,62089,0},{6663,62088,0}, {6663,62083,0},{6667,62093,0},{6673,62093,0},{6673,62096,0},{6662,62096,0}, {6660,62099,0},{6663,62106,0},{6668,62106,0},{6668,62109,0},{6657,62106,0}, {6658,62109,0},{6665,62116,0},{6667,62121,0},{6672,62119,0},{6670,62126,0}, {6672,62128,0},{6675,62126,0},{6673,62131,0},{6680,62128,0},{6677,62138,0}, {6673,62138,0},{6675,62139,0},{6677,62143,0},{6678,62136,0},{6685,62134,0}, {6692,62141,0},{6695,62136,0},{6695,62149,0},{6698,62139,0},{6698,62163,0}, {6702,62159,0},{6700,62151,0},{6702,62149,0},{6705,62166,0},{6708,62169,0}, {6708,62183,0},{6712,62181,0},{6715,62184,0},{6715,62181,0},{6720,62184,0}, {6722,62178,0},{6722,62169,0},{6725,62176,0},{6723,62181,0},{6723,62194,0}, {6725,62199,0},{6727,62193,0},{6732,62193,0},{6732,62188,0},{6733,62193,0}, {6735,62186,0},{6733,62179,0},{6737,62176,0},{6737,62186,0},{6738,62186,0}, {6737,62191,0},{6738,62191,0},{6737,62196,0},{6735,62198,0},{6737,62204,0}, {6740,62208,0},{6743,62201,0},{6748,62209,0},{6748,62206,0},{6748,62201,0}, {6750,62204,0},{6755,62199,0},{6757,62203,0},{6753,62209,0},{6755,62216,0}, {6763,62231,0},{6765,62218,0},{6768,62216,0},{6768,62234,0},{6768,62244,0}, {6772,62258,0},{6777,62269,0},{6780,62268,0},{6782,62283,0},{6787,62284,0}, {6788,62301,0},{6787,62306,0},{6785,62316,0},{6785,62323,0},{6788,62318,0}, {6792,62318,0},{6790,62324,0},{6793,62324,0},{6793,62333,0},{6795,62326,0}, {6800,62329,0},{6800,62323,0},{6802,62328,0},{6803,62321,0},{6807,62328,0}, {6805,62336,0},{6810,62336,0},{6815,62331,0},{6815,62316,0},{6817,62318,0}, {6820,62301,0},{6820,62293,0},{6820,62291,0},{6823,62291,0},{6822,62314,0}, {6820,62316,0},{6818,62326,0},{6820,62329,0},{6835,62316,0},{6835,62304,0}, {6838,62293,0},{6845,62284,0},{6850,62279,0},{6850,62286,0},{6850,62294,0}, {6853,62296,0},{6855,62291,0},{6858,62286,0},{6862,62288,0},{6862,62294,0}, {6857,62299,0},{6850,62306,0},{6843,62304,0},{6842,62309,0},{6843,62316,0}, {6848,62318,0},{6848,62323,0},{6840,62319,0},{6837,62329,0},{6832,62328,0}, {6827,62336,0},{6825,62373,0},{6823,62383,0},{6822,62378,0},{6823,62366,0}, {6822,62364,0},{6822,62361,0},{6818,62368,0},{6815,62364,0},{6810,62366,0}, {6810,62373,0},{6810,62374,0},{6807,62379,0},{6808,62391,0},{6810,62394,0}, {6812,62386,0},{6815,62391,0},{6815,62403,0},{6813,62391,0},{6812,62393,0}, {6805,62424,0},{6807,62428,0},{6803,62434,0},{6805,62438,0},{6803,62444,0}, {6807,62444,0},{6808,62461,0},{6807,62468,0},{6808,62481,0},{6805,62484,0}, {6807,62494,0},{6808,62491,0},{6817,62489,0},{6825,62454,0},{6827,62463,0}, {6822,62496,0},{6815,62494,0},{6810,62501,0},{6810,62509,0},{6812,62514,0}, {6810,62521,0},{6812,62526,0},{6812,62533,0},{6813,62534,0},{6818,62524,0}, {6822,62524,0},{6825,62516,0},{6825,62506,0},{6827,62509,0},{6827,62521,0}, {6823,62529,0},{6825,62538,0},{6832,62529,0},{6833,62534,0},{6837,62536,0}, {6840,62548,0},{6842,62549,0},{6837,62558,0},{6830,62559,0},{6828,62568,0}, {6830,62574,0},{6823,62574,0},{6820,62598,0},{6822,62598,0},{6825,62589,0}, {6825,62601,0},{6830,62603,0},{6830,62613,0},{6827,62616,0},{6828,62624,0}, {6832,62626,0},{6835,62618,0},{6838,62614,0},{6838,62618,0},{6840,62623,0}, {6837,62626,0},{6833,62638,0},{6837,62638,0},{6835,62643,0},{6832,62651,0}, {6837,62653,0},{6835,62673,0},{6837,62674,0},{6838,62673,0},{6840,62676,0}, {6840,62686,0},{6845,62686,0},{6842,62708,0},{6845,62709,0},{6850,62699,0}, {6850,62706,0},{6850,62711,0},{6843,62726,0},{6847,62731,0},{6845,62734,0}, {6855,62733,0},{6857,62739,0},{6852,62744,0},{6847,62758,0},{6848,62776,0}, {6850,62774,0},{6853,62759,0},{6853,62773,0},{6858,62779,0},{6857,62788,0}, {6855,62784,0},{6853,62786,0},{6853,62803,0},{6853,62814,0},{6858,62803,0}, {6860,62804,0},{6860,62819,0},{6858,62831,0},{6860,62836,0},{6863,62836,0}, {6865,62844,0},{6863,62853,0},{6870,62864,0},{6867,62864,0},{6865,62866,0}, {6865,62878,0},{6868,62886,0},{6865,62889,0},{6867,62896,0},{6870,62909,0}, {6878,62909,0},{6878,62941,0},{6883,62951,0},{6885,62951,0},{6885,62958,0}, {6888,62954,0},{6887,62973,0},{6892,62978,0},{6893,62966,0},{6895,62966,0}, {6897,62976,0},{6895,62989,0},{6898,62993,0},{6900,62988,0},{6900,62971,0}, {6903,62983,0},{6908,62971,0},{6910,62976,0},{6908,62978,0},{6905,62989,0}, {6907,63001,0},{6903,62999,0},{6902,63006,0},{6903,63008,0},{6903,63013,0}, {6907,63014,0},{6913,63004,0},{6915,63011,0},{6913,63011,0},{6910,63018,0}, {6912,63033,0},{6915,63024,0},{6917,63036,0},{6920,63038,0},{6923,63029,0}, {6923,63008,0},{6925,63009,0},{6925,63016,0},{6927,63014,0},{6930,63026,0}, {6927,63041,0},{6925,63058,0},{6923,63056,0},{6925,63074,0},{6928,63073,0}, {6928,63059,0},{6930,63061,0},{6932,63074,0},{6937,63071,0},{6940,63061,0}, {6943,63063,0},{6940,63071,0},{6938,63089,0},{6937,63084,0},{6935,63091,0}, {6942,63101,0},{6945,63099,0},{6945,63109,0},{6942,63126,0},{6947,63121,0}, {6947,63128,0},{6953,63126,0},{6958,63104,0},{6960,63101,0},{6955,63131,0}, {6958,63133,0},{6958,63138,0},{6953,63143,0},{6950,63154,0},{6955,63169,0}, {6958,63174,0},{6960,63164,0},{6962,63178,0},{6972,63168,0},{6973,63144,0}, {6975,63143,0},{6972,63171,0},{6975,63188,0},{6975,63211,0},{6983,63204,0}, {6985,63196,0},{6985,63199,0},{6983,63211,0},{6978,63216,0},{6975,63236,0}, {6980,63244,0},{6982,63243,0},{6985,63229,0},{6985,63208,0},{6988,63214,0}, {6987,63233,0},{6992,63226,0},{6993,63229,0},{6993,63236,0},{6990,63243,0}, {6988,63256,0},{6990,63258,0},{6992,63244,0},{6995,63244,0},{6995,63258,0}, {6993,63258,0},{6995,63261,0},{6993,63278,0},{6997,63279,0},{6998,63288,0}, {7002,63289,0},{6997,63296,0},{7000,63306,0},{7010,63326,0},{7015,63326,0}, {7015,63314,0},{7010,63286,0},{7008,63258,0},{7010,63179,0},{7013,63161,0}, {7013,63153,0},{7013,63149,0},{7013,63146,0},{7015,63138,0},{7018,63133,0}, {7020,63114,0},{7022,63099,0},{7022,63089,0},{7023,63088,0},{7032,63054,0}, {7030,63048,0},{7033,63044,0},{7037,63033,0},{7033,63024,0},{7027,63013,0}, {7027,63003,0},{7032,63001,0},{7035,63009,0},{7037,62996,0},{7038,63013,0}, {7040,63016,0},{7042,63013,0},{7035,62973,0},{7020,62906,0},{7022,62884,0}, {7025,62866,0},{7025,62846,0},{7020,62836,0},{7020,62826,0},{7017,62819,0}, {7010,62818,0},{6998,62808,0},{6995,62793,0},{6997,62783,0},{7005,62781,0}, {7000,62739,0},{7007,62723,0},{7005,62699,0},{7005,62681,0},{7010,62678,0}, {7008,62689,0},{7010,62694,0},{7013,62709,0},{7015,62719,0},{7013,62728,0}, {7010,62743,0},{7010,62754,0},{7012,62764,0},{7017,62793,0},{7025,62806,0}, {7027,62823,0},{7030,62828,0},{7032,62841,0},{7028,62864,0},{7032,62891,0}, {7035,62891,0},{7037,62904,0},{7047,62886,0},{7048,62864,0},{7047,62853,0}, {7043,62834,0},{7045,62814,0},{7037,62714,0},{7042,62701,0},{7050,62706,0}, {7050,62688,0},{7047,62679,0},{7047,62659,0},{7038,62624,0},{7040,62616,0}, {7042,62619,0},{7043,62613,0},{7047,62616,0},{7047,62631,0},{7052,62661,0}, {7052,62673,0},{7053,62683,0},{7053,62693,0},{7057,62706,0},{7058,62713,0}, {7060,62704,0},{7062,62704,0},{7063,62721,0},{7072,62734,0},{7087,62744,0}, {7090,62738,0},{7088,62731,0},{7092,62729,0},{7093,62723,0},{7097,62698,0}, {7097,62694,0},{7100,62706,0},{7097,62716,0},{7100,62733,0},{7098,62738,0}, {7097,62751,0},{7093,62769,0},{7095,62774,0},{7097,62773,0},{7103,62756,0}, {7113,62744,0},{7115,62756,0},{7113,62759,0},{7093,62786,0},{7093,62818,0}, {7095,62828,0},{7093,62861,0},{7097,62888,0},{7100,62906,0},{7103,62909,0}, {7105,62934,0},{7110,62943,0},{7117,62978,0},{7125,62959,0},{7122,62984,0}, {7127,62994,0},{7137,62993,0},{7138,62983,0},{7147,62964,0},{7150,62948,0}, {7148,62924,0},{7150,62911,0},{7150,62888,0},{7148,62869,0},{7150,62863,0}, {7153,62834,0},{7150,62819,0},{7147,62814,0},{7150,62809,0},{7152,62804,0}, {7152,62811,0},{7157,62824,0},{7157,62811,0},{7160,62799,0},{7162,62776,0}, {7155,62733,0},{7153,62696,0},{7155,62689,0},{7158,62688,0},{7157,62701,0}, {7158,62739,0},{7160,62743,0},{7162,62736,0},{7163,62738,0},{7160,62749,0}, {7165,62773,0},{7163,62796,0},{7172,62804,0},{7187,62733,0},{7190,62734,0}, {7187,62756,0},{7190,62751,0},{7193,62689,0},{7198,62688,0},{7200,62699,0}, {7202,62701,0},{7208,62681,0},{7208,62666,0},{7213,62676,0},{7208,62689,0}, {7205,62704,0},{7200,62714,0},{7197,62729,0},{7198,62739,0},{7200,62741,0}, {7200,62744,0},{7197,62749,0},{7193,62766,0},{7190,62776,0},{7187,62776,0}, {7173,62814,0},{7168,62818,0},{7160,62836,0},{7155,62854,0},{7155,62884,0}, {7163,62894,0},{7157,62906,0},{7157,62921,0},{7158,62924,0},{7157,62933,0}, {7155,62941,0},{7157,62951,0},{7153,62963,0},{7153,62973,0},{7145,62989,0}, {7145,62998,0},{7137,63011,0},{7130,63028,0},{7132,63043,0},{7130,63049,0}, {7133,63056,0},{7135,63073,0},{7127,63068,0},{7127,63078,0},{7122,63079,0}, {7108,63108,0},{7102,63116,0},{7093,63113,0},{7080,63118,0},{7065,63134,0}, {7057,63153,0},{7055,63164,0},{7043,63201,0},{7042,63224,0},{7043,63264,0}, {7045,63274,0},{7058,63279,0},{7065,63271,0},{7072,63271,0},{7073,63278,0}, {7077,63274,0},{7082,63278,0},{7085,63288,0},{7083,63293,0},{7067,63289,0}, {7060,63294,0},{7050,63294,0},{7043,63298,0},{7045,63314,0},{7050,63329,0}, {7047,63343,0},{7042,63336,0},{7038,63339,0},{7043,63354,0},{7042,63361,0}, {7043,63369,0},{7047,63379,0},{7055,63388,0},{7057,63369,0},{7058,63374,0}, {7060,63368,0},{7057,63363,0},{7058,63358,0},{7062,63363,0},{7063,63361,0}, {7063,63373,0},{7067,63371,0},{7067,63378,0},{7068,63373,0},{7070,63359,0}, {7070,63381,0},{7073,63374,0},{7073,63358,0},{7077,63373,0},{7078,63373,0}, {7077,63358,0},{7078,63348,0},{7080,63343,0},{7080,63353,0},{7080,63364,0}, {7083,63366,0},{7087,63361,0},{7095,63379,0},{7093,63368,0},{7095,63369,0}, {7095,63364,0},{7093,63356,0},{7095,63358,0},{7098,63366,0},{7098,63364,0}, {7097,63348,0},{7097,63338,0},{7102,63369,0},{7107,63368,0},{7108,63359,0}, {7107,63349,0},{7105,63348,0},{7107,63334,0},{7103,63319,0},{7105,63304,0}, {7105,63303,0},{7107,63331,0},{7112,63364,0},{7115,63353,0},{7118,63351,0}, {7118,63358,0},{7113,63363,0},{7115,63368,0},{7118,63369,0},{7123,63361,0}, {7125,63364,0},{7127,63356,0},{7123,63346,0},{7125,63346,0},{7127,63339,0}, {7128,63354,0},{7132,63376,0},{7132,63356,0},{7135,63363,0},{7135,63349,0}, {7137,63351,0},{7140,63369,0},{7142,63366,0},{7142,63354,0},{7145,63363,0}, {7145,63349,0},{7148,63361,0},{7152,63359,0},{7152,63356,0},{7148,63354,0}, {7152,63348,0},{7148,63348,0},{7150,63341,0},{7147,63343,0},{7150,63328,0}, {7143,63308,0},{7135,63299,0},{7132,63303,0},{7127,63301,0},{7125,63293,0}, {7127,63289,0},{7133,63291,0},{7137,63286,0},{7148,63283,0},{7155,63284,0}, {7157,63291,0},{7160,63324,0},{7162,63324,0},{7163,63314,0},{7168,63336,0}, {7170,63334,0},{7170,63341,0},{7173,63346,0},{7173,63338,0},{7170,63323,0}, {7175,63318,0},{7173,63306,0},{7168,63306,0},{7165,63296,0},{7163,63296,0}, {7163,63288,0},{7162,63283,0},{7160,63276,0},{7157,63276,0},{7158,63273,0}, {7165,63269,0},{7175,63293,0},{7178,63296,0},{7170,63253,0},{7163,63238,0}, {7163,63228,0},{7163,63223,0},{7167,63223,0},{7173,63238,0},{7180,63259,0}, {7185,63264,0},{7187,63283,0},{7190,63286,0},{7195,63264,0},{7202,63233,0}, {7200,63223,0},{7202,63216,0},{7203,63226,0},{7207,63224,0},{7215,63179,0}, {7215,63169,0},{7210,63158,0},{7212,63154,0},{7213,63154,0},{7218,63166,0}, {7225,63161,0},{7222,63154,0},{7222,63149,0},{7223,63146,0},{7223,63154,0}, {7225,63154,0},{7228,63126,0},{7233,63113,0},{7232,63111,0},{7235,63094,0}, {7242,63084,0},{7242,63078,0},{7240,63061,0},{7243,63054,0},{7242,63049,0}, {7240,63043,0},{7235,63016,0},{7227,62999,0},{7220,62996,0},{7215,62998,0}, {7213,62993,0},{7212,62983,0},{7215,62989,0},{7223,62988,0},{7238,63008,0}, {7240,63001,0},{7240,62981,0},{7238,62961,0},{7240,62946,0},{7242,62946,0}, {7242,62964,0},{7243,62988,0},{7243,63024,0},{7247,63048,0},{7248,63058,0}, {7250,63066,0},{7253,63071,0},{7252,63074,0},{7255,63076,0},{7253,63068,0}, {7257,63069,0},{7258,63064,0},{7265,63063,0},{7267,63066,0},{7272,63051,0}, {7275,63019,0},{7280,63013,0},{7280,62999,0},{7283,62989,0},{7283,62979,0}, {7273,62946,0},{7272,62928,0},{7272,62918,0},{7262,62904,0},{7257,62889,0}, {7263,62899,0},{7273,62904,0},{7270,62864,0},{7272,62858,0},{7277,62896,0}, {7283,62863,0},{7280,62821,0},{7282,62799,0},{7285,62798,0},{7285,62804,0}, {7282,62826,0},{7287,62866,0},{7278,62909,0},{7278,62933,0},{7290,62964,0}, {7288,63004,0},{7292,63009,0},{7293,63019,0},{7300,63038,0},{7308,63031,0}, {7308,62999,0},{7312,62973,0},{7313,62959,0},{7318,62951,0},{7320,62938,0}, {7320,62891,0},{7310,62869,0},{7312,62841,0},{7315,62821,0},{7312,62809,0}, {7310,62804,0},{7297,62804,0},{7293,62791,0},{7293,62784,0},{7298,62799,0}, {7312,62796,0},{7313,62789,0},{7312,62766,0},{7313,62764,0},{7315,62773,0}, {7315,62796,0},{7318,62808,0},{7318,62824,0},{7313,62864,0},{7322,62878,0}, {7323,62898,0},{7328,62888,0},{7330,62853,0},{7335,62828,0},{7343,62803,0}, {7343,62791,0},{7345,62791,0},{7350,62803,0},{7348,62811,0},{7343,62824,0}, {7333,62854,0},{7332,62879,0},{7333,62891,0},{7330,62909,0},{7325,62918,0}, {7325,62934,0},{7325,62959,0},{7335,62991,0},{7340,62994,0},{7340,62986,0}, {7347,63004,0},{7350,63066,0},{7352,63068,0},{7358,63034,0},{7362,63028,0}, {7368,63028,0},{7375,63001,0},{7380,62981,0},{7387,62978,0},{7392,62963,0}, {7395,62968,0},{7390,62986,0},{7382,62994,0},{7382,63001,0},{7375,63018,0}, {7370,63038,0},{7362,63039,0},{7357,63063,0},{7357,63078,0},{7353,63089,0}, {7355,63098,0},{7367,63089,0},{7372,63094,0},{7375,63104,0},{7377,63103,0}, {7382,63133,0},{7373,63149,0},{7373,63186,0},{7357,63259,0},{7358,63284,0}, {7362,63294,0},{7363,63318,0},{7355,63266,0},{7355,63251,0},{7370,63183,0}, {7372,63138,0},{7370,63133,0},{7360,63138,0},{7352,63159,0},{7348,63181,0}, {7343,63188,0},{7342,63198,0},{7340,63214,0},{7335,63224,0},{7332,63246,0}, {7332,63263,0},{7325,63296,0},{7325,63318,0},{7333,63343,0},{7340,63381,0}, {7345,63374,0},{7348,63384,0},{7348,63393,0},{7345,63406,0},{7345,63486,0}, {7347,63493,0},{7353,63499,0},{7355,63484,0},{7363,63491,0},{7372,63483,0}, {7373,63493,0},{7375,63488,0},{7377,63491,0},{7378,63508,0},{7383,63511,0}, {7388,63508,0},{7390,63494,0},{7388,63473,0},{7388,63463,0},{7397,63414,0}, {7405,63381,0},{7407,63363,0},{7402,63344,0},{7393,63348,0},{7390,63356,0}, {7387,63359,0},{7375,63361,0},{7370,63366,0},{7365,63359,0},{7365,63354,0}, {7377,63351,0},{7385,63354,0},{7390,63349,0},{7393,63338,0},{7400,63338,0}, {7402,63329,0},{7403,63311,0},{7407,63288,0},{7410,63293,0},{7410,63311,0}, {7410,63318,0},{7417,63316,0},{7417,63303,0},{7422,63326,0},{7425,63333,0}, {7430,63326,0},{7428,63304,0},{7432,63288,0},{7430,63304,0},{7432,63316,0}, {7432,63336,0},{7437,63353,0},{7442,63359,0},{7453,63341,0},{7458,63324,0}, {7460,63331,0},{7457,63341,0},{7448,63354,0},{7445,63373,0},{7447,63409,0}, {7445,63456,0},{7447,63471,0},{7445,63489,0},{7443,63491,0},{7445,63499,0}, {7437,63513,0},{7428,63516,0},{7423,63568,0},{7423,63578,0},{7427,63598,0}, {7435,63618,0},{7440,63619,0},{7442,63628,0},{7448,63638,0},{7450,63634,0}, {7452,63611,0},{7455,63606,0},{7455,63598,0},{7457,63606,0},{7465,63609,0}, {7468,63599,0},{7468,63591,0},{7458,63564,0},{7458,63556,0},{7462,63549,0}, {7462,63536,0},{7465,63531,0},{7467,63516,0},{7467,63509,0},{7467,63481,0}, {7463,63451,0},{7465,63426,0},{7468,63424,0},{7465,63438,0},{7467,63458,0}, {7473,63476,0},{7485,63459,0},{7488,63468,0},{7497,63464,0},{7502,63471,0}, {7507,63473,0},{7507,63446,0},{7508,63423,0},{7497,63384,0},{7495,63361,0}, {7502,63334,0},{7503,63341,0},{7505,63341,0},{7517,63293,0},{7513,63321,0}, {7508,63343,0},{7500,63351,0},{7498,63363,0},{7503,63389,0},{7512,63413,0}, {7515,63444,0},{7512,63469,0},{7513,63484,0},{7520,63478,0},{7525,63451,0}, {7532,63436,0},{7537,63404,0},{7542,63394,0},{7547,63353,0},{7547,63328,0}, {7552,63288,0},{7553,63284,0},{7555,63288,0},{7552,63294,0},{7547,63328,0}, {7545,63396,0},{7552,63374,0},{7565,63309,0},{7567,63311,0},{7565,63328,0}, {7555,63386,0},{7547,63413,0},{7540,63419,0},{7530,63468,0},{7530,63488,0}, {7533,63506,0},{7533,63524,0},{7528,63541,0},{7522,63531,0},{7515,63548,0}, {7513,63574,0},{7520,63589,0},{7527,63598,0},{7540,63603,0},{7557,63596,0}, {7562,63584,0},{7563,63584,0},{7567,63574,0},{7573,63581,0},{7572,63599,0}, {7573,63601,0},{7577,63579,0},{7592,63554,0},{7593,63541,0},{7592,63503,0}, {7595,63484,0},{7597,63463,0},{7597,63423,0},{7595,63349,0},{7598,63339,0}, {7605,63343,0},{7600,63353,0},{7597,63368,0},{7600,63444,0},{7598,63503,0}, {7605,63538,0},{7605,63563,0},{7613,63569,0},{7623,63556,0},{7625,63543,0}, {7625,63518,0},{7622,63496,0},{7623,63479,0},{7630,63448,0},{7630,63429,0}, {7630,63428,0},{7625,63436,0},{7627,63446,0},{7622,63449,0},{7613,63494,0}, {7612,63471,0},{7613,63469,0},{7615,63479,0},{7617,63466,0},{7628,63424,0}, {7625,63403,0},{7627,63396,0},{7628,63403,0},{7628,63396,0},{7627,63391,0}, {7625,63394,0},{7623,63389,0},{7622,63386,0},{7623,63368,0},{7633,63371,0}, {7638,63381,0},{7643,63378,0},{7642,63318,0},{7643,63306,0},{7642,63296,0}, {7645,63286,0},{7645,63299,0},{7650,63293,0},{7650,63301,0},{7643,63318,0}, {7643,63346,0},{7643,63361,0},{7648,63369,0},{7650,63364,0},{7647,63346,0}, {7647,63333,0},{7648,63336,0},{7652,63368,0},{7655,63356,0},{7655,63343,0}, {7653,63338,0},{7653,63331,0},{7655,63329,0},{7655,63338,0},{7658,63356,0}, {7662,63343,0},{7662,63328,0},{7663,63329,0},{7663,63324,0},{7663,63316,0}, {7658,63303,0},{7652,63308,0},{7652,63303,0},{7655,63293,0},{7660,63284,0}, {7665,63289,0},{7667,63268,0},{7670,63261,0},{7675,63274,0},{7675,63306,0}, {7682,63298,0},{7683,63289,0},{7687,63309,0},{7685,63319,0},{7680,63326,0}, {7677,63343,0},{7667,63361,0},{7665,63374,0},{7668,63369,0},{7668,63384,0}, {7677,63406,0},{7678,63416,0},{7678,63406,0},{7680,63408,0},{7680,63416,0}, {7678,63429,0},{7682,63439,0},{7683,63458,0},{7685,63443,0},{7687,63433,0}, {7685,63389,0},{7688,63363,0},{7690,63378,0},{7688,63398,0},{7690,63424,0}, {7687,63458,0},{7693,63478,0},{7695,63461,0},{7695,63433,0},{7698,63438,0}, {7697,63449,0},{7698,63466,0},{7693,63521,0},{7697,63549,0},{7692,63571,0}, {7690,63583,0},{7687,63599,0},{7687,63611,0},{7685,63624,0},{7685,63644,0}, {7683,63658,0},{7680,63668,0},{7682,63681,0},{7673,63691,0},{7682,63684,0}, {7682,63691,0},{7680,63696,0},{7680,63706,0},{7685,63701,0},{7688,63718,0}, {7695,63724,0},{7728,63713,0},{7730,63708,0},{7732,63694,0},{7735,63696,0}, {7735,63666,0},{7738,63639,0},{7732,63628,0},{7723,63634,0},{7727,63606,0}, {7723,63594,0},{7725,63589,0},{7732,63594,0},{7738,63566,0},{7740,63549,0}, {7738,63506,0},{7742,63483,0},{7742,63459,0},{7743,63483,0},{7742,63513,0}, {7743,63529,0},{7745,63534,0},{7748,63469,0},{7755,63431,0},{7755,63443,0}, {7750,63493,0},{7752,63501,0},{7755,63494,0},{7755,63471,0},{7757,63491,0}, {7755,63511,0},{7762,63498,0},{7763,63469,0},{7767,63456,0},{7767,63444,0}, {7772,63476,0},{7770,63493,0},{7773,63511,0},{7772,63533,0},{7762,63581,0}, {7758,63606,0},{7762,63619,0},{7763,63641,0},{7777,63609,0},{7782,63543,0}, {7787,63504,0},{7793,63476,0},{7797,63476,0},{7802,63449,0},{7795,63428,0}, {7780,63399,0},{7768,63396,0},{7765,63411,0},{7763,63394,0},{7752,63363,0}, {7755,63364,0},{7765,63393,0},{7768,63393,0},{7768,63354,0},{7768,63348,0}, {7768,63333,0},{7773,63341,0},{7783,63344,0},{7785,63358,0},{7797,63378,0}, {7798,63373,0},{7792,63361,0},{7792,63353,0},{7800,63363,0},{7807,63389,0}, {7812,63396,0},{7812,63379,0},{7813,63373,0},{7813,63361,0},{7815,63369,0}, {7813,63388,0},{7822,63408,0},{7830,63398,0},{7850,63423,0},{7853,63419,0}, {7855,63428,0},{7862,63446,0},{7865,63439,0},{7862,63403,0},{7865,63393,0}, {7867,63409,0},{7867,63426,0},{7868,63443,0},{7872,63433,0},{7870,63416,0}, {7873,63429,0},{7875,63429,0},{7877,63423,0},{7878,63434,0},{7882,63418,0}, {7883,63438,0},{7883,63456,0},{7888,63469,0},{7887,63509,0},{7888,63534,0}, {7893,63546,0},{7907,63528,0},{7913,63544,0},{7912,63554,0},{7913,63566,0}, {7912,63573,0},{7912,63579,0},{7915,63584,0},{7920,63579,0},{7928,63601,0}, {7928,63619,0},{7925,63606,0},{7922,63611,0},{7917,63606,0},{7918,63626,0}, {7920,63628,0},{7922,63624,0},{7920,63618,0},{7925,63616,0},{7930,63633,0}, {7930,63618,0},{7932,63614,0},{7933,63579,0},{7925,63566,0},{7923,63568,0}, {7920,63561,0},{7920,63554,0},{7915,63556,0},{7915,63549,0},{7920,63549,0}, {7935,63571,0},{7943,63571,0},{7943,63563,0},{7945,63556,0},{7953,63564,0}, {7957,63576,0},{7967,63573,0},{7973,63591,0},{7978,63613,0},{7978,63649,0}, {7973,63693,0},{7975,63714,0},{7982,63738,0},{8005,63791,0},{8012,63768,0}, {8013,63743,0},{8013,63696,0},{8008,63639,0},{8010,63608,0},{8005,63583,0}, {8002,63546,0},{7998,63531,0},{7990,63521,0},{7988,63511,0},{7987,63518,0}, {7982,63514,0},{7983,63548,0},{7980,63523,0},{7977,63513,0},{7977,63503,0}, {7980,63506,0},{7987,63493,0},{7985,63484,0},{7987,63461,0},{7998,63489,0}, {8003,63476,0},{8005,63493,0},{8008,63499,0},{8010,63481,0},{8015,63514,0}, {8025,63536,0},{8028,63566,0},{8027,63601,0},{8023,63628,0},{8023,63658,0}, {8022,63694,0},{8023,63739,0},{8023,63793,0},{8023,63824,0},{8027,63849,0}, {8033,63878,0},{8037,63864,0},{8040,63859,0},{8040,63873,0},{8037,63868,0}, {8038,63879,0},{8050,63924,0},{8053,63914,0},{8057,63886,0},{8057,63829,0}, {8058,63828,0},{8063,63793,0},{8057,63749,0},{8055,63719,0},{8055,63681,0}, {8057,63666,0},{8057,63653,0},{8058,63648,0},{8060,63589,0},{8063,63581,0}, {8065,63539,0},{8063,63523,0},{8058,63506,0},{8055,63471,0},{8050,63461,0}, {8050,63453,0},{8055,63454,0},{8055,63418,0},{8057,63411,0},{8058,63418,0}, {8058,63454,0},{8058,63481,0},{8068,63528,0},{8067,63574,0},{8063,63599,0}, {8063,63639,0},{8062,63658,0},{8062,63678,0},{8068,63709,0},{8072,63734,0}, {8078,63726,0},{8080,63738,0},{8082,63743,0},{8075,63769,0},{8075,63823,0}, {8070,63869,0},{8073,63904,0},{8073,63936,0},{8082,63944,0},{8085,63976,0}, {8087,64041,0},{8092,64068,0},{8095,64071,0},{8100,64043,0},{8108,64023,0}, {8113,64041,0},{8113,64109,0},{8113,64133,0},{8123,64171,0},{8128,64171,0}, {8130,64184,0},{8132,64214,0},{8135,64211,0},{8140,64223,0},{8148,64278,0}, {8160,64321,0},{8165,64279,0},{8172,64258,0},{8178,64219,0},{8182,64164,0}, {8182,64144,0},{8192,64059,0},{8193,64034,0},{8190,63969,0},{8192,63938,0}, {8193,63936,0},{8192,63891,0},{8193,63866,0},{8190,63844,0},{8187,63853,0}, {8185,63846,0},{8187,63811,0},{8183,63804,0},{8187,63786,0},{8175,63783,0}, {8170,63809,0},{8168,63791,0},{8172,63776,0},{8173,63751,0},{8163,63748,0}, {8160,63776,0},{8160,63756,0},{8155,63756,0},{8158,63718,0},{8155,63733,0}, {8150,63729,0},{8147,63739,0},{8147,63721,0},{8143,63711,0},{8145,63704,0}, {8147,63688,0},{8153,63666,0},{8147,63648,0},{8155,63636,0},{8155,63613,0}, {8155,63609,0},{8157,63589,0},{8150,63544,0},{8143,63528,0},{8142,63511,0}, {8162,63511,0},{8163,63518,0},{8162,63526,0},{8168,63543,0},{8165,63526,0}, {8158,63459,0},{8147,63419,0},{8142,63391,0},{8133,63388,0},{8130,63361,0}, {8125,63359,0},{8120,63328,0},{8113,63299,0},{8103,63261,0},{8098,63258,0}, {8090,63209,0},{8088,63179,0},{8082,63186,0},{8077,63164,0},{8072,63169,0}, {8063,63141,0},{8053,63089,0},{8055,63083,0},{8057,63084,0},{8060,63104,0}, {8063,63104,0},{8068,63129,0},{8068,63119,0},{8067,63096,0},{8068,63094,0}, {8073,63138,0},{8080,63156,0},{8082,63148,0},{8088,63146,0},{8103,63198,0}, {8110,63204,0},{8118,63241,0},{8120,63236,0},{8127,63259,0},{8130,63239,0}, {8130,63264,0},{8132,63279,0},{8148,63316,0},{8177,63339,0},{8195,63333,0}, {8208,63306,0},{8205,63174,0},{8202,63154,0},{8198,63144,0},{8202,63144,0}, {8202,63136,0},{8195,63124,0},{8177,63126,0},{8170,63114,0},{8172,63078,0}, {8168,63061,0},{8170,63044,0},{8160,62994,0},{8150,62884,0},{8142,62848,0}, {8138,62803,0},{8138,62779,0},{8140,62814,0},{8145,62813,0},{8145,62784,0}, {8147,62774,0},{8150,62776,0},{8157,62853,0},{8173,62986,0},{8178,63004,0}, {8200,63013,0},{8202,62794,0},{8200,62661,0},{8200,62644,0},{8195,62588,0}, {8192,62593,0},{8187,62573,0},{8187,62561,0},{8193,62564,0},{8187,62464,0}, {8183,62373,0},{8175,62301,0},{8168,62281,0},{8168,62271,0},{8167,62233,0}, {8175,62239,0},{8177,62226,0},{8183,62236,0},{8192,62318,0},{8193,62354,0}, {8195,62358,0},{8197,62396,0},{8197,62416,0},{8200,62426,0},{8205,62516,0}, {8210,62546,0},{8213,62533,0},{8218,62491,0},{8218,62393,0},{8220,62374,0}, {8218,62499,0},{8217,62511,0},{8217,62541,0},{8213,62558,0},{8215,62579,0}, {8213,62613,0},{8218,62679,0},{8217,62709,0},{8218,62744,0},{8215,62919,0}, {8215,62988,0},{8215,63033,0},{8220,63086,0},{8228,63159,0},{8228,63231,0}, {8233,63288,0},{8238,63316,0},{8242,63306,0},{8245,63314,0},{8247,63341,0}, {8255,63393,0},{8260,63404,0},{8262,63403,0},{8267,63374,0},{8267,63361,0}, {8270,63356,0},{8272,63329,0},{8280,63271,0},{8277,63269,0},{8275,63253,0}, {8278,63241,0},{8280,63219,0},{8283,63216,0},{8285,63198,0},{8283,63168,0}, {8278,63159,0},{8275,63134,0},{8280,63148,0},{8287,63133,0},{8290,63153,0}, {8292,63136,0},{8288,63116,0},{8290,63078,0},{8283,63036,0},{8278,62988,0}, {8277,62946,0},{8278,62976,0},{8285,63023,0},{8290,63024,0},{8298,63059,0}, {8307,63038,0},{8312,63051,0},{8315,63038,0},{8317,63021,0},{8312,62929,0}, {8307,62869,0},{8307,62809,0},{8308,62743,0},{8305,62718,0},{8308,62709,0}, {8310,62681,0},{8313,62593,0},{8313,62534,0},{8308,62501,0},{8308,62454,0}, {8300,62389,0},{8293,62371,0},{8298,62359,0},{8300,62338,0},{8297,62236,0}, {8295,62183,0},{8292,62163,0},{8283,62168,0},{8278,62148,0},{8285,62156,0}, {8290,62144,0},{8290,62048,0},{8285,62006,0},{8282,62009,0},{8278,61993,0}, {8275,61999,0},{8275,61988,0},{8277,61981,0},{8282,61996,0},{8287,61994,0}, {8288,62006,0},{8290,61976,0},{8293,62123,0},{8298,62179,0},{8300,62234,0}, {8302,62243,0},{8303,62286,0},{8308,62271,0},{8312,62234,0},{8312,62211,0}, {8315,62189,0},{8313,62229,0},{8305,62339,0},{8305,62369,0},{8310,62404,0}, {8312,62453,0},{8315,62489,0},{8317,62531,0},{8317,62654,0},{8313,62766,0}, {8315,62844,0},{8320,62933,0},{8328,62969,0},{8332,62958,0},{8337,62926,0}, {8347,62798,0},{8348,62744,0},{8347,62693,0},{8343,62721,0},{8342,62676,0}, {8347,62644,0},{8348,62679,0},{8350,62679,0},{8350,62634,0},{8348,62631,0}, {8348,62621,0},{8353,62611,0},{8360,62514,0},{8360,62476,0},{8358,62456,0}, {8357,62421,0},{8360,62354,0},{8357,62308,0},{8362,62313,0},{8362,62234,0}, {8360,62168,0},{8358,62133,0},{8353,62133,0},{8348,62161,0},{8345,62148,0}, {8352,62116,0},{8360,62099,0},{8353,62084,0},{8360,62063,0},{8353,62016,0}, {8355,61928,0},{8353,61869,0},{8352,61854,0},{8350,61861,0},{8348,61846,0}, {8343,61886,0},{8342,61866,0},{8337,61893,0},{8338,61864,0},{8343,61853,0}, {8345,61814,0},{8350,61773,0},{8348,61741,0},{8345,61744,0},{8343,61731,0}, {8338,61758,0},{8337,61756,0},{8340,61728,0},{8343,61651,0},{8338,61663,0}, {8333,61654,0},{8332,61666,0},{8325,61651,0},{8320,61668,0},{8320,61738,0}, {8318,61736,0},{8317,61781,0},{8315,61773,0},{8315,61848,0},{8313,61808,0}, {8312,61718,0},{8307,61656,0},{8303,61669,0},{8303,61703,0},{8305,61764,0}, {8300,61809,0},{8303,61764,0},{8302,61723,0},{8302,61644,0},{8300,61624,0}, {8297,61623,0},{8292,61654,0},{8283,61663,0},{8282,61674,0},{8283,61688,0}, {8275,61679,0},{8283,61641,0},{8290,61636,0},{8292,61616,0},{8295,61591,0}, {8295,61529,0},{8297,61476,0},{8310,61404,0},{8313,61373,0},{8308,61343,0}, {8317,61364,0},{8318,61361,0},{8323,61328,0},{8323,61289,0},{8327,61266,0}, {8327,61218,0},{8323,61204,0},{8323,61238,0},{8322,61228,0},{8320,61243,0}, {8322,61178,0},{8320,61136,0},{8317,61178,0},{8317,61206,0},{8310,61248,0}, {8313,61209,0},{8313,61178,0},{8312,61168,0},{8317,61109,0},{8317,61064,0}, {8310,61066,0},{8317,61024,0},{8313,61008,0},{8313,60996,0},{8315,60998,0}, {8313,60984,0},{8303,61023,0},{8300,61049,0},{8292,61138,0},{8293,61193,0}, {8292,61198,0},{8292,61138,0},{8297,61061,0},{8293,61026,0},{8298,61024,0}, {8308,60934,0},{8307,60928,0},{8305,60893,0},{8302,60886,0},{8302,60868,0}, {8300,60873,0},{8297,60916,0},{8292,60938,0},{8297,60889,0},{8297,60848,0}, {8292,60883,0},{8288,60884,0},{8285,60931,0},{8285,60968,0},{8287,60974,0}, {8285,60993,0},{8285,61039,0},{8287,61049,0},{8290,61029,0},{8285,61078,0}, {8283,61156,0},{8285,61323,0},{8277,61434,0},{8272,61476,0},{8272,61523,0}, {8267,61546,0},{8262,61549,0},{8257,61534,0},{8250,61559,0},{8247,61549,0}, {8240,61561,0},{8237,61551,0},{8242,61528,0},{8248,61534,0},{8253,61514,0}, {8257,61516,0},{8258,61471,0},{8265,61438,0},{8267,61418,0},{8270,61413,0}, {8273,61381,0},{8275,61358,0},{8273,61346,0},{8263,61374,0},{8258,61368,0}, {8253,61381,0},{8248,61378,0},{8248,61368,0},{8255,61348,0},{8265,61351,0}, {8270,61319,0},{8275,61328,0},{8278,61268,0},{8278,61188,0},{8277,61114,0}, {8277,61044,0},{8278,61028,0},{8277,60961,0},{8272,60969,0},{8265,61023,0}, {8262,61034,0},{8255,61076,0},{8248,61093,0},{8240,61163,0},{8238,61148,0}, {8233,61153,0},{8228,61206,0},{8227,61261,0},{8222,61306,0},{8222,61268,0}, {8225,61263,0},{8225,61193,0},{8232,61123,0},{8230,61098,0},{8228,61074,0}, {8218,61056,0},{8210,61096,0},{8205,61069,0},{8203,61043,0},{8198,61044,0}, {8197,61089,0},{8193,61086,0},{8193,61066,0},{8193,61064,0},{8192,61081,0}, {8188,61078,0},{8188,61098,0},{8187,61103,0},{8185,61094,0},{8183,61119,0}, {8182,61108,0},{8178,61069,0},{8175,61073,0},{8178,61054,0},{8178,61023,0}, {8190,60979,0},{8193,60961,0},{8195,60933,0},{8197,60941,0},{8202,60938,0}, {8210,60896,0},{8212,60856,0},{8217,60816,0},{8217,60776,0},{8222,60779,0}, {8228,60743,0},{8233,60674,0},{8245,60636,0},{8252,60556,0},{8252,60499,0}, {8250,60428,0},{8248,60424,0},{8237,60451,0},{8218,60466,0},{8203,60524,0}, {8195,60583,0},{8192,60593,0},{8187,60554,0},{8190,60516,0},{8192,60468,0}, {8195,60439,0},{8193,60429,0},{8187,60446,0},{8185,60473,0},{8178,60486,0}, {8173,60534,0},{8167,60548,0},{8165,60574,0},{8162,60549,0},{8163,60518,0}, {8172,60508,0},{8175,60481,0},{8190,60398,0},{8192,60344,0},{8197,60323,0}, {8197,60303,0},{8203,60259,0},{8203,60246,0},{8202,60233,0},{8185,60243,0}, {8178,60223,0},{8168,60183,0},{8155,60189,0},{8153,60171,0},{8150,60189,0}, {8152,60173,0},{8155,60156,0},{8170,60154,0},{8180,60178,0},{8190,60186,0}, {8202,60174,0},{8212,60179,0},{8232,60128,0},{8237,60091,0},{8228,59976,0}, {8228,60008,0},{8215,60024,0},{8220,60004,0},{8225,60009,0},{8223,59978,0}, {8227,59946,0},{8225,59924,0},{8217,59908,0},{8220,59903,0},{8223,59881,0}, {8218,59809,0},{8217,59764,0},{8212,59706,0},{8210,59699,0},{8210,59678,0}, {8202,59608,0},{8198,59589,0},{8192,59659,0},{8188,59686,0},{8183,59689,0}, {8167,59723,0},{8165,59761,0},{8153,59818,0},{8143,59829,0},{8140,59874,0}, {8133,59891,0},{8133,59878,0},{8138,59863,0},{8143,59816,0},{8145,59808,0}, {8147,59818,0},{8153,59784,0},{8158,59771,0},{8158,59744,0},{8168,59671,0}, {8173,59659,0},{8177,59669,0},{8187,59649,0},{8188,59628,0},{8190,59576,0}, {8193,59538,0},{8193,59523,0},{8187,59449,0},{8182,59409,0},{8175,59391,0}, {8155,59433,0},{8150,59459,0},{8147,59454,0},{8135,59404,0},{8132,59419,0}, {8128,59416,0},{8122,59428,0},{8117,59448,0},{8112,59431,0},{8110,59386,0}, {8107,59381,0},{8120,59313,0},{8120,59263,0},{8123,59253,0},{8122,59229,0}, {8115,59199,0},{8098,59213,0},{8088,59238,0},{8080,59249,0},{8078,59263,0}, {8075,59258,0},{8095,59206,0},{8112,59188,0},{8115,59179,0},{8115,59168,0}, {8105,59141,0},{8103,59113,0},{8102,59093,0},{8100,59081,0},{8098,59058,0}, {8092,59063,0},{8088,59033,0},{8083,59038,0},{8078,59029,0},{8070,58964,0}, {8067,58986,0},{8067,58936,0},{8062,58924,0},{8057,58891,0},{8055,58864,0}, {8053,58856,0},{8052,58866,0},{8045,58858,0},{8045,58844,0},{8042,58836,0}, {8033,58788,0},{8027,58784,0},{8023,58793,0},{8020,58786,0},{8017,58799,0}, {8017,58816,0},{8013,58828,0},{8012,58823,0},{8005,58831,0},{8007,58881,0}, {8012,58894,0},{8007,58919,0},{8002,58928,0},{8000,58946,0},{8005,58983,0}, {8010,59008,0},{8008,59018,0},{8007,59046,0},{8008,59063,0},{8008,59083,0}, {8013,59101,0},{8025,59116,0},{8017,59119,0},{8015,59158,0},{8013,59144,0}, {8013,59121,0},{8007,59098,0},{8002,59029,0},{7995,59041,0},{7990,59031,0}, {7987,59036,0},{7985,59023,0},{7982,59036,0},{7980,59031,0},{7978,59041,0}, {7975,59033,0},{7970,59046,0},{7965,59034,0},{7962,59053,0},{7953,59054,0}, {7950,59048,0},{7945,59028,0},{7943,59031,0},{7940,59021,0},{7937,59021,0}, {7933,58994,0},{7928,58981,0},{7925,58983,0},{7925,58968,0},{7922,58969,0}, {7917,58946,0},{7913,58948,0},{7913,58956,0},{7913,58929,0},{7910,58938,0}, {7910,58934,0},{7912,58924,0},{7910,58904,0},{7913,58901,0},{7913,58891,0}, {7912,58884,0},{7915,58873,0},{7912,58858,0},{7913,58858,0},{7910,58844,0}, {7915,58841,0},{7912,58833,0},{7915,58826,0},{7915,58818,0},{7912,58814,0}, {7912,58809,0},{7912,58796,0},{7913,58788,0},{7910,58788,0},{7910,58778,0}, {7908,58763,0},{7907,58763,0},{7905,58769,0},{7903,58764,0},{7907,58733,0}, {7907,58706,0},{7905,58681,0},{7897,58626,0},{7892,58619,0},{7890,58646,0}, {7883,58658,0},{7887,58629,0},{7888,58623,0},{7880,58601,0},{7880,58594,0}, {7880,58548,0},{7878,58534,0},{7875,58539,0},{7868,58461,0},{7867,58456,0}, {7858,58456,0},{7862,58446,0},{7865,58409,0},{7863,58381,0},{7855,58346,0}, {7853,58323,0},{7855,58301,0},{7852,58281,0},{7850,58273,0},{7847,58279,0}, {7843,58269,0},{7840,58278,0},{7835,58256,0},{7832,58251,0},{7828,58291,0}, {7828,58269,0},{7825,58268,0},{7825,58256,0},{7823,58261,0},{7822,58254,0}, {7818,58263,0},{7817,58251,0},{7817,58236,0},{7815,58231,0},{7815,58249,0}, {7810,58258,0},{7805,58278,0},{7805,58306,0},{7802,58301,0},{7797,58311,0}, {7793,58313,0},{7793,58328,0},{7788,58343,0},{7792,58373,0},{7785,58376,0}, {7788,58413,0},{7785,58413,0},{7780,58393,0},{7777,58404,0},{7778,58469,0}, {7783,58484,0},{7785,58498,0},{7783,58538,0},{7782,58534,0},{7782,58513,0}, {7770,58466,0},{7768,58468,0},{7765,58504,0},{7767,58519,0},{7767,58526,0}, {7768,58534,0},{7770,58566,0},{7775,58588,0},{7768,58586,0},{7758,58511,0}, {7757,58508,0},{7755,58511,0},{7753,58529,0},{7755,58543,0},{7753,58546,0}, {7753,58556,0},{7745,58618,0},{7752,58674,0},{7755,58676,0},{7765,58654,0}, {7767,58666,0},{7757,58698,0},{7750,58699,0},{7752,58744,0},{7752,58759,0}, {7755,58798,0},{7758,58814,0},{7767,58821,0},{7768,58853,0},{7772,58869,0}, {7768,58864,0},{7767,58876,0},{7763,58886,0},{7762,58908,0},{7760,58913,0}, {7757,58906,0},{7757,58919,0},{7753,58914,0},{7750,58929,0},{7745,58929,0}, {7742,58919,0},{7743,58884,0},{7742,58869,0},{7730,58888,0},{7728,58896,0}, {7727,58914,0},{7725,58913,0},{7728,58881,0},{7735,58859,0},{7738,58781,0}, {7737,58709,0},{7737,58696,0},{7727,58626,0},{7725,58638,0},{7722,58678,0}, {7720,58719,0},{7722,58738,0},{7722,58761,0},{7715,58846,0},{7715,58871,0}, {7720,58916,0},{7717,58916,0},{7713,58891,0},{7712,58899,0},{7710,58896,0}, {7713,58883,0},{7712,58843,0},{7715,58818,0},{7715,58803,0},{7720,58753,0}, {7717,58716,0},{7717,58683,0},{7723,58584,0},{7722,58571,0},{7723,58563,0}, {7723,58554,0},{7723,58521,0},{7718,58444,0},{7717,58444,0},{7715,58466,0}, {7715,58438,0},{7713,58416,0},{7707,58413,0},{7705,58399,0},{7700,58401,0}, {7693,58424,0},{7695,58423,0},{7697,58429,0},{7693,58456,0},{7693,58468,0}, {7690,58453,0},{7690,58438,0},{7687,58444,0},{7687,58454,0},{7683,58453,0}, {7680,58469,0},{7680,58476,0},{7678,58486,0},{7680,58499,0},{7698,58558,0}, {7702,58561,0},{7702,58569,0},{7700,58581,0},{7698,58581,0},{7697,58561,0}, {7690,58546,0},{7687,58546,0},{7682,58528,0},{7680,58526,0},{7677,58536,0}, {7667,58613,0},{7668,58621,0},{7665,58658,0},{7665,58679,0},{7668,58708,0}, {7670,58726,0},{7668,58738,0},{7665,58726,0},{7662,58738,0},{7658,58733,0}, {7657,58696,0},{7658,58663,0},{7655,58646,0},{7655,58654,0},{7648,58629,0}, {7645,58604,0},{7643,58579,0},{7642,58574,0},{7637,58574,0},{7630,58603,0}, {7625,58644,0},{7622,58644,0},{7618,58661,0},{7617,58656,0},{7617,58683,0}, {7615,58693,0},{7612,58679,0},{7608,58686,0},{7602,58801,0},{7592,58891,0}, {7595,58888,0},{7600,58864,0},{7607,58831,0},{7610,58834,0},{7613,58831,0}, {7617,58806,0},{7620,58809,0},{7620,58826,0},{7623,58821,0},{7627,58833,0}, {7623,58854,0},{7622,58856,0},{7622,58869,0},{7617,58861,0},{7608,58889,0}, {7610,58899,0},{7615,58896,0},{7615,58904,0},{7620,58901,0},{7622,58914,0}, {7628,58916,0},{7625,58934,0},{7628,58959,0},{7627,58968,0},{7623,58981,0}, {7620,58959,0},{7618,58968,0},{7618,58961,0},{7613,58959,0},{7610,58948,0}, {7605,58966,0},{7605,58973,0},{7603,58973,0},{7602,58988,0},{7602,59001,0}, {7607,59006,0},{7613,58999,0},{7615,59004,0},{7617,59001,0},{7618,59014,0}, {7613,59013,0},{7612,59019,0},{7613,59033,0},{7610,59036,0},{7618,59036,0}, {7617,59051,0},{7612,59066,0},{7613,59076,0},{7617,59066,0},{7618,59069,0}, {7617,59074,0},{7617,59079,0},{7622,59069,0},{7627,59068,0},{7627,59074,0}, {7623,59079,0},{7623,59093,0},{7628,59099,0},{7635,59093,0},{7635,59101,0}, {7632,59119,0},{7630,59114,0},{7625,59114,0},{7615,59124,0},{7613,59134,0}, {7615,59158,0},{7632,59188,0},{7637,59186,0},{7637,59198,0},{7635,59209,0}, {7635,59219,0},{7633,59223,0},{7630,59248,0},{7620,59258,0},{7625,59263,0}, {7627,59276,0},{7625,59298,0},{7628,59304,0},{7628,59313,0},{7627,59321,0}, {7622,59319,0},{7623,59341,0},{7620,59351,0},{7620,59361,0},{7618,59369,0}, {7617,59388,0},{7618,59398,0},{7617,59414,0},{7615,59423,0},{7615,59451,0}, {7612,59453,0},{7608,59446,0},{7608,59454,0},{7603,59453,0},{7600,59463,0}, {7607,59486,0},{7603,59491,0},{7603,59498,0},{7602,59528,0},{7598,59523,0}, {7597,59529,0},{7597,59536,0},{7593,59536,0},{7592,59544,0},{7593,59544,0}, {7597,59559,0},{7595,59568,0},{7592,59576,0},{7587,59561,0},{7582,59554,0}, {7580,59558,0},{7580,59564,0},{7582,59569,0},{7582,59574,0},{7587,59584,0}, {7587,59614,0},{7583,59623,0},{7582,59606,0},{7580,59613,0},{7578,59614,0}, {7577,59608,0},{7577,59628,0},{7570,59629,0},{7572,59654,0},{7573,59668,0}, {7572,59696,0},{7570,59693,0},{7570,59679,0},{7567,59676,0},{7565,59686,0}, {7565,59704,0},{7557,59693,0},{7555,59704,0},{7552,59719,0},{7545,59714,0}, {7543,59699,0},{7540,59693,0},{7538,59674,0},{7535,59666,0},{7533,59684,0}, {7540,59694,0},{7540,59711,0},{7537,59699,0},{7533,59706,0},{7532,59701,0}, {7532,59693,0},{7530,59693,0},{7520,59714,0},{7520,59734,0},{7517,59744,0}, {7515,59741,0},{7510,59723,0},{7508,59729,0},{7508,59721,0},{7505,59723,0}, {7507,59731,0},{7505,59746,0},{7502,59753,0},{7502,59771,0},{7498,59781,0}, {7495,59796,0},{7493,59798,0},{7493,59803,0},{7490,59806,0},{7492,59833,0}, {7485,59836,0},{7483,59851,0},{7482,59856,0},{7480,59849,0},{7477,59838,0}, {7480,59826,0},{7477,59818,0},{7475,59823,0},{7473,59821,0},{7473,59833,0}, {7470,59828,0},{7470,59834,0},{7467,59834,0},{7470,59849,0},{7468,59853,0}, {7468,59859,0},{7465,59859,0},{7465,59889,0},{7462,59886,0},{7460,59876,0}, {7455,59894,0},{7455,59916,0},{7452,59909,0},{7450,59913,0},{7448,59921,0}, {7448,59909,0},{7445,59879,0},{7445,59856,0},{7440,59878,0},{7442,59908,0}, {7440,59919,0},{7437,59921,0},{7435,59864,0},{7432,59873,0},{7433,59883,0}, {7428,59879,0},{7430,59898,0},{7430,59906,0},{7428,59904,0},{7425,59879,0}, {7423,59878,0},{7420,59866,0},{7420,59846,0},{7417,59833,0},{7417,59821,0}, {7413,59826,0},{7415,59809,0},{7410,59804,0},{7410,59821,0},{7415,59876,0}, {7423,59909,0},{7427,59918,0},{7428,59923,0},{7420,59919,0},{7417,59911,0}, {7415,59913,0},{7412,59904,0},{7410,59906,0},{7412,59916,0},{7408,59909,0}, {7408,59899,0},{7407,59894,0},{7407,59899,0},{7405,59901,0},{7403,59939,0}, {7400,59938,0},{7402,59924,0},{7397,59926,0},{7395,59939,0},{7392,59943,0}, {7392,59954,0},{7387,59971,0},{7385,59971,0},{7383,59966,0},{7385,59941,0}, {7377,59954,0},{7375,59953,0},{7372,59963,0},{7373,59973,0},{7372,59976,0}, {7370,59973,0},{7370,59961,0},{7377,59941,0},{7372,59944,0},{7370,59934,0}, {7368,59933,0},{7368,59936,0},{7368,59948,0},{7368,59951,0},{7365,59939,0}, {7367,59929,0},{7365,59928,0},{7362,59941,0},{7362,59959,0},{7358,59958,0}, {7357,59964,0},{7358,59966,0},{7357,59973,0},{7350,59984,0},{7347,59983,0}, {7343,60004,0},{7342,60019,0},{7337,60028,0},{7335,60026,0},{7335,60023,0}, {7338,60009,0},{7333,59999,0},{7332,60004,0},{7330,60003,0},{7330,59996,0}, {7325,59989,0},{7323,60004,0},{7323,60014,0},{7322,60014,0},{7322,60023,0}, {7318,60021,0},{7318,59993,0},{7317,59994,0},{7318,60003,0},{7312,59991,0}, {7310,59984,0},{7312,59971,0},{7310,59964,0},{7307,59966,0},{7305,59971,0}, {7307,59991,0},{7303,60003,0},{7305,60009,0},{7302,60019,0},{7307,60033,0}, {7300,60031,0},{7300,60041,0},{7302,60048,0},{7300,60058,0},{7297,60051,0}, {7295,60058,0},{7293,60054,0},{7290,60066,0},{7285,60069,0},{7282,60076,0}, {7280,60066,0},{7280,60054,0},{7278,60043,0},{7275,60061,0},{7277,60073,0}, {7280,60078,0},{7278,60083,0},{7275,60071,0},{7275,60061,0},{7268,60078,0}, {7270,60063,0},{7265,60058,0},{7267,60048,0},{7263,60051,0},{7262,60066,0}, {7263,60069,0},{7262,60073,0},{7260,60063,0},{7260,60046,0},{7258,60044,0}, {7257,60036,0},{7252,60034,0},{7250,60038,0},{7252,60048,0},{7255,60056,0}, {7252,60056,0},{7250,60061,0},{7248,60076,0},{7250,60093,0},{7248,60106,0}, {7247,60104,0},{7248,60101,0},{7250,60093,0},{7247,60079,0},{7248,60058,0}, {7247,60046,0},{7252,59989,0},{7245,59973,0},{7242,59973,0},{7238,59988,0}, {7240,59994,0},{7242,59996,0},{7240,60001,0},{7247,60004,0},{7240,60008,0}, {7238,60011,0},{7237,60008,0},{7237,60013,0},{7240,60024,0},{7240,60033,0}, {7242,60034,0},{7243,60046,0},{7240,60039,0},{7238,60043,0},{7237,60058,0}, {7237,60068,0},{7235,60058,0},{7237,60041,0},{7232,60046,0},{7227,60041,0}, {7225,60048,0},{7220,60031,0},{7215,60016,0},{7210,59996,0},{7208,59996,0}, {7207,60008,0},{7207,59994,0},{7203,59983,0},{7198,59976,0},{7198,59983,0}, {7192,60011,0},{7193,60048,0},{7200,60064,0},{7202,60073,0},{7207,60071,0}, {7213,60083,0},{7218,60083,0},{7222,60094,0},{7222,60098,0},{7210,60084,0}, {7203,60083,0},{7192,60053,0},{7188,60034,0},{7188,60004,0},{7183,59998,0}, {7177,60011,0},{7180,59991,0},{7177,59979,0},{7173,59979,0},{7175,59968,0}, {7173,59959,0},{7168,59946,0},{7165,59979,0},{7162,59976,0},{7162,59968,0}, {7147,59981,0},{7138,60004,0},{7138,60019,0},{7138,60024,0},{7148,60011,0}, {7143,60024,0},{7143,60039,0},{7138,60043,0},{7135,60056,0},{7137,60096,0}, {7145,60144,0},{7155,60151,0},{7163,60126,0},{7168,60133,0},{7170,60126,0}, {7172,60129,0},{7170,60134,0},{7163,60144,0},{7163,60158,0},{7167,60164,0}, {7170,60163,0},{7173,60144,0},{7173,60173,0},{7180,60188,0},{7185,60196,0}, {7190,60188,0},{7205,60178,0},{7215,60153,0},{7225,60153,0},{7232,60141,0}, {7235,60149,0},{7235,60179,0},{7235,60178,0},{7233,60154,0},{7232,60151,0}, {7225,60161,0},{7212,60166,0},{7207,60189,0},{7203,60196,0},{7197,60194,0}, {7183,60204,0},{7177,60199,0},{7177,60203,0},{7182,60216,0},{7185,60238,0}, {7192,60234,0},{7202,60258,0},{7202,60264,0},{7200,60268,0},{7197,60256,0}, {7192,60253,0},{7192,60246,0},{7187,60246,0},{7187,60251,0},{7182,60244,0}, {7175,60219,0},{7170,60211,0},{7168,60246,0},{7168,60278,0},{7163,60279,0}, {7162,60319,0},{7165,60349,0},{7172,60358,0},{7173,60369,0},{7172,60373,0}, {7162,60363,0},{7160,60356,0},{7155,60288,0},{7152,60266,0},{7142,60238,0}, {7138,60269,0},{7138,60291,0},{7138,60306,0},{7145,60333,0},{7150,60364,0}, {7150,60383,0},{7148,60401,0},{7143,60398,0},{7145,60376,0},{7143,60338,0}, {7140,60334,0},{7135,60309,0},{7127,60309,0},{7123,60303,0},{7122,60284,0}, {7118,60281,0},{7115,60283,0},{7115,60293,0},{7118,60303,0},{7118,60311,0}, {7133,60353,0},{7137,60371,0},{7133,60368,0},{7130,60383,0},{7127,60383,0}, {7125,60374,0},{7125,60348,0},{7122,60333,0},{7117,60328,0},{7113,60313,0}, {7112,60311,0},{7110,60329,0},{7113,60351,0},{7113,60363,0},{7112,60366,0}, {7110,60376,0},{7113,60413,0},{7110,60396,0},{7108,60399,0},{7108,60408,0}, {7108,60393,0},{7105,60388,0},{7102,60414,0},{7102,60444,0},{7097,60439,0}, {7095,60413,0},{7107,60353,0},{7105,60346,0},{7102,60341,0},{7097,60369,0}, {7093,60376,0},{7088,60418,0},{7087,60416,0},{7085,60421,0},{7085,60434,0}, {7088,60451,0},{7083,60444,0},{7080,60446,0},{7078,60461,0},{7075,60463,0}, {7073,60473,0},{7072,60471,0},{7072,60458,0},{7078,60434,0},{7082,60413,0}, {7075,60408,0},{7075,60393,0},{7070,60394,0},{7068,60416,0},{7077,60431,0}, {7065,60426,0},{7068,60443,0},{7068,60451,0},{7063,60474,0},{7062,60471,0}, {7065,60458,0},{7065,60443,0},{7062,60438,0},{7060,60444,0},{7062,60453,0}, {7058,60449,0},{7055,60463,0},{7053,60458,0},{7057,60444,0},{7053,60449,0}, {7050,60448,0},{7053,60446,0},{7058,60419,0},{7062,60416,0},{7058,60403,0}, {7055,60403,0},{7052,60414,0},{7050,60414,0},{7052,60428,0},{7048,60441,0}, {7047,60441,0},{7047,60426,0},{7043,60433,0},{7042,60459,0},{7045,60466,0}, {7047,60471,0},{7052,60478,0},{7053,60483,0},{7052,60488,0},{7040,60468,0}, {7038,60469,0},{7040,60474,0},{7038,60479,0},{7035,60481,0},{7032,60476,0}, {7032,60468,0},{7035,60454,0},{7037,60436,0},{7035,60431,0},{7040,60416,0}, {7043,60398,0},{7043,60383,0},{7050,60354,0},{7070,60291,0},{7073,60269,0}, {7078,60231,0},{7075,60189,0},{7080,60168,0},{7078,60156,0},{7082,60136,0}, {7083,60121,0},{7073,60081,0},{7065,60073,0},{7065,60081,0},{7058,60101,0}, {7052,60116,0},{7047,60118,0},{7038,60144,0},{7035,60194,0},{7035,60214,0}, {7028,60248,0},{7020,60276,0},{7005,60304,0},{7005,60308,0},{7003,60319,0}, {7005,60329,0},{7000,60341,0},{7002,60353,0},{7000,60374,0},{7003,60381,0}, {6997,60379,0},{6998,60389,0},{6997,60391,0},{7007,60411,0},{7007,60429,0}, {7005,60436,0},{7003,60436,0},{7003,60444,0},{7002,60449,0},{7000,60438,0}, {7003,60434,0},{7003,60428,0},{7000,60423,0},{6997,60408,0},{6997,60443,0}, {7003,60486,0},{7005,60489,0},{7003,60494,0},{7003,60511,0},{7002,60514,0}, {6997,60504,0},{6997,60478,0},{6992,60478,0},{6990,60484,0},{6990,60498,0}, {6987,60504,0},{6983,60504,0},{6978,60509,0},{6975,60518,0},{6978,60476,0}, {6973,60471,0},{6972,60454,0},{6968,60454,0},{6967,60459,0},{6967,60476,0}, {6963,60484,0},{6965,60493,0},{6963,60489,0},{6960,60496,0},{6963,60471,0}, {6965,60456,0},{6962,60451,0},{6955,60458,0},{6948,60448,0},{6948,60451,0}, {6952,60466,0},{6952,60469,0},{6952,60464,0},{6950,60466,0},{6950,60479,0}, {6955,60493,0},{6955,60498,0},{6952,60503,0},{6952,60516,0},{6948,60508,0}, {6952,60494,0},{6948,60484,0},{6945,60488,0},{6948,60466,0},{6945,60449,0}, {6943,60453,0},{6938,60446,0},{6933,60453,0},{6935,60446,0},{6933,60446,0}, {6933,60439,0},{6932,60436,0},{6930,60439,0},{6928,60449,0},{6927,60443,0}, {6927,60436,0},{6923,60431,0},{6923,60426,0},{6920,60424,0},{6920,60433,0}, {6918,60434,0},{6917,60448,0},{6920,60461,0},{6923,60471,0},{6922,60471,0}, {6922,60476,0},{6925,60483,0},{6927,60478,0},{6932,60486,0},{6933,60496,0}, {6932,60498,0},{6930,60489,0},{6920,60489,0},{6920,60509,0},{6922,60523,0}, {6917,60519,0},{6913,60509,0},{6912,60508,0},{6912,60468,0},{6910,60468,0}, {6905,60493,0},{6908,60511,0},{6907,60514,0},{6902,60518,0},{6902,60514,0}, {6895,60514,0},{6898,60506,0},{6905,60509,0},{6905,60501,0},{6900,60501,0}, {6902,60496,0},{6902,60486,0},{6897,60491,0},{6897,60499,0},{6892,60504,0}, {6890,60501,0},{6895,60484,0},{6902,60483,0},{6905,60478,0},{6905,60473,0}, {6908,60469,0},{6905,60446,0},{6902,60446,0},{6903,60438,0},{6907,60446,0}, {6910,60463,0},{6912,60459,0},{6912,60444,0},{6913,60429,0},{6910,60429,0}, {6910,60424,0},{6905,60428,0},{6903,60423,0},{6895,60428,0},{6892,60418,0}, {6888,60418,0},{6888,60428,0},{6892,60429,0},{6893,60439,0},{6887,60428,0}, {6883,60414,0},{6882,60418,0},{6875,60406,0},{6873,60424,0},{6875,60434,0}, {6883,60458,0},{6883,60469,0},{6882,60469,0},{6880,60459,0},{6877,60458,0}, {6877,60449,0},{6873,60438,0},{6870,60439,0},{6870,60444,0},{6867,60444,0}, {6867,60456,0},{6867,60448,0},{6862,60451,0},{6862,60446,0},{6867,60439,0}, {6870,60429,0},{6865,60436,0},{6858,60433,0},{6857,60428,0},{6858,60429,0}, {6860,60426,0},{6855,60419,0},{6857,60406,0},{6858,60408,0},{6858,60403,0}, {6857,60396,0},{6855,60403,0},{6853,60399,0},{6855,60393,0},{6853,60386,0}, {6855,60389,0},{6857,60386,0},{6853,60381,0},{6852,60374,0},{6853,60358,0}, {6852,60351,0},{6853,60341,0},{6855,60344,0},{6855,60339,0},{6857,60354,0}, {6858,60349,0},{6857,60331,0},{6853,60324,0},{6857,60316,0},{6855,60288,0}, {6852,60273,0},{6850,60278,0},{6852,60296,0},{6848,60288,0},{6845,60293,0}, {6845,60274,0},{6842,60264,0},{6842,60258,0},{6840,60254,0},{6838,60258,0}, {6835,60236,0},{6830,60226,0},{6835,60213,0},{6833,60198,0},{6830,60203,0}, {6828,60199,0},{6827,60201,0},{6830,60216,0},{6828,60228,0},{6835,60276,0}, {6833,60276,0},{6833,60273,0},{6832,60271,0},{6830,60253,0},{6825,60243,0}, {6825,60251,0},{6822,60246,0},{6823,60253,0},{6822,60256,0},{6822,60264,0}, {6823,60273,0},{6825,60273,0},{6827,60254,0},{6828,60261,0},{6827,60271,0}, {6828,60284,0},{6827,60279,0},{6823,60291,0},{6818,60286,0},{6818,60294,0}, {6822,60314,0},{6822,60326,0},{6823,60331,0},{6823,60358,0},{6828,60369,0}, {6828,60413,0},{6833,60413,0},{6835,60406,0},{6837,60403,0},{6835,60398,0}, {6835,60388,0},{6840,60379,0},{6842,60373,0},{6843,60378,0},{6840,60391,0}, {6842,60414,0},{6850,60454,0},{6848,60459,0},{6847,60449,0},{6848,60454,0}, {6848,60448,0},{6845,60443,0},{6843,60426,0},{6840,60418,0},{6838,60418,0}, {6837,60423,0},{6828,60421,0},{6825,60398,0},{6825,60416,0},{6822,60424,0}, {6822,60431,0},{6818,60441,0},{6818,60426,0},{6822,60406,0},{6820,60393,0}, {6817,60399,0},{6813,60424,0},{6810,60428,0},{6812,60443,0},{6808,60431,0}, {6807,60439,0},{6805,60444,0},{6805,60451,0},{6803,60456,0},{6803,60468,0}, {6802,60469,0},{6800,60464,0},{6800,60479,0},{6797,60479,0},{6795,60498,0}, {6793,60504,0},{6793,60521,0},{6790,60514,0},{6793,60493,0},{6790,60476,0}, {6795,60466,0},{6795,60458,0},{6800,60436,0},{6807,60418,0},{6805,60368,0}, {6803,60351,0},{6805,60341,0},{6808,60326,0},{6808,60318,0},{6812,60311,0}, {6813,60301,0},{6818,60278,0},{6820,60261,0},{6817,60256,0},{6817,60266,0}, {6815,60266,0},{6815,60273,0},{6812,60273,0},{6813,60284,0},{6810,60283,0}, {6807,60298,0},{6807,60294,0},{6812,60273,0},{6812,60263,0},{6815,60248,0}, {6815,60241,0},{6820,60221,0},{6818,60204,0},{6815,60191,0},{6815,60201,0}, {6817,60209,0},{6813,60208,0},{6815,60214,0},{6815,60221,0},{6817,60221,0}, {6817,60226,0},{6815,60228,0},{6813,60221,0},{6812,60221,0},{6800,60254,0}, {6797,60268,0},{6795,60316,0},{6797,60329,0},{6795,60326,0},{6792,60318,0}, {6793,60311,0},{6795,60286,0},{6793,60278,0},{6795,60273,0},{6798,60256,0}, {6805,60234,0},{6807,60226,0},{6805,60218,0},{6802,60211,0},{6798,60209,0}, {6800,60228,0},{6798,60231,0},{6800,60238,0},{6798,60248,0},{6797,60234,0}, {6797,60211,0},{6795,60211,0},{6793,60218,0},{6792,60204,0},{6788,60211,0}, {6792,60223,0},{6790,60228,0},{6788,60231,0},{6788,60223,0},{6785,60209,0}, {6785,60208,0},{6783,60216,0},{6783,60206,0},{6788,60206,0},{6788,60201,0}, {6790,60198,0},{6788,60189,0},{6787,60189,0},{6787,60198,0},{6783,60194,0}, {6782,60211,0},{6780,60209,0},{6780,60193,0},{6782,60194,0},{6780,60188,0}, {6782,60186,0},{6782,60191,0},{6785,60188,0},{6783,60186,0},{6785,60181,0}, {6780,60166,0},{6777,60181,0},{6772,60183,0},{6768,60181,0},{6765,60166,0}, {6765,60179,0},{6760,60161,0},{6755,60164,0},{6753,60163,0},{6752,60168,0}, {6750,60168,0},{6752,60178,0},{6758,60204,0},{6777,60238,0},{6777,60244,0}, {6778,60253,0},{6778,60273,0},{6782,60289,0},{6787,60296,0},{6790,60314,0}, {6790,60343,0},{6793,60354,0},{6797,60374,0},{6797,60378,0},{6793,60376,0}, {6792,60358,0},{6788,60344,0},{6787,60323,0},{6788,60319,0},{6782,60301,0}, {6777,60311,0},{6777,60331,0},{6775,60343,0},{6775,60351,0},{6778,60354,0}, {6780,60368,0},{6777,60373,0},{6775,60356,0},{6773,60351,0},{6772,60356,0}, {6770,60354,0},{6770,60364,0},{6775,60378,0},{6775,60389,0},{6772,60384,0}, {6775,60398,0},{6778,60396,0},{6782,60404,0},{6785,60401,0},{6787,60389,0}, {6793,60379,0},{6795,60384,0},{6792,60401,0},{6797,60413,0},{6798,60433,0}, {6793,60431,0},{6792,60439,0},{6790,60439,0},{6788,60434,0},{6790,60428,0}, {6790,60416,0},{6788,60399,0},{6785,60409,0},{6782,60411,0},{6780,60418,0}, {6778,60413,0},{6777,60418,0},{6777,60431,0},{6777,60436,0},{6780,60439,0}, {6780,60451,0},{6780,60454,0},{6782,60449,0},{6782,60464,0},{6785,60471,0}, {6787,60461,0},{6785,60453,0},{6785,60448,0},{6788,60454,0},{6790,60453,0}, {6790,60458,0},{6787,60483,0},{6787,60488,0},{6788,60484,0},{6788,60488,0}, {6785,60493,0},{6783,60509,0},{6782,60508,0},{6780,60501,0},{6782,60496,0}, {6782,60473,0},{6777,60458,0},{6773,60438,0},{6772,60436,0},{6772,60413,0}, {6773,60408,0},{6772,60404,0},{6765,60429,0},{6767,60444,0},{6763,60434,0}, {6762,60441,0},{6765,60471,0},{6775,60508,0},{6773,60529,0},{6770,60541,0}, {6768,60541,0},{6768,60528,0},{6772,60528,0},{6773,60509,0},{6765,60476,0}, {6760,60448,0},{6753,60464,0},{6750,60479,0},{6752,60498,0},{6748,60511,0}, {6752,60529,0},{6748,60516,0},{6747,60516,0},{6750,60491,0},{6748,60481,0}, {6750,60471,0},{6748,60466,0},{6758,60441,0},{6763,60413,0},{6768,60403,0}, {6767,60394,0},{6767,60398,0},{6765,60396,0},{6767,60383,0},{6763,60364,0}, {6763,60348,0},{6767,60348,0},{6772,60331,0},{6770,60324,0},{6773,60303,0}, {6777,60294,0},{6777,60286,0},{6775,60273,0},{6773,60253,0},{6772,60264,0}, {6773,60283,0},{6772,60274,0},{6770,60264,0},{6772,60251,0},{6770,60233,0}, {6765,60228,0},{6768,60244,0},{6758,60213,0},{6760,60224,0},{6760,60226,0}, {6755,60203,0},{6752,60196,0},{6745,60164,0},{6740,60154,0},{6738,60156,0}, {6735,60149,0},{6733,60153,0},{6732,60149,0},{6728,60151,0},{6725,60148,0}, {6725,60153,0},{6723,60149,0},{6723,60158,0},{6720,60156,0},{6725,60178,0}, {6727,60193,0},{6727,60199,0},{6735,60218,0},{6730,60213,0},{6728,60223,0}, {6735,60279,0},{6735,60286,0},{6738,60293,0},{6737,60298,0},{6740,60321,0}, {6735,60341,0},{6737,60353,0},{6735,60374,0},{6742,60421,0},{6742,60424,0}, {6740,60421,0},{6737,60388,0},{6735,60383,0},{6732,60393,0},{6725,60398,0}, {6713,60419,0},{6715,60428,0},{6720,60456,0},{6722,60483,0},{6722,60488,0}, {6718,60491,0},{6720,60499,0},{6717,60499,0},{6717,60489,0},{6718,60476,0}, {6718,60459,0},{6713,60429,0},{6712,60418,0},{6717,60406,0},{6730,60391,0}, {6732,60384,0},{6735,60363,0},{6733,60333,0},{6737,60321,0},{6733,60294,0}, {6730,60288,0},{6732,60276,0},{6730,60254,0},{6727,60244,0},{6727,60234,0}, {6725,60228,0},{6725,60214,0},{6723,60194,0},{6723,60184,0},{6722,60178,0}, {6720,60198,0},{6718,60154,0},{6715,60149,0},{6713,60144,0},{6713,60148,0}, {6712,60143,0},{6712,60146,0},{6710,60139,0},{6708,60143,0},{6707,60139,0}, {6708,60161,0},{6708,60183,0},{6712,60196,0},{6707,60181,0},{6707,60153,0}, {6702,60156,0},{6702,60168,0},{6700,60173,0},{6702,60189,0},{6700,60201,0}, {6700,60214,0},{6698,60206,0},{6700,60193,0},{6698,60174,0},{6700,60154,0}, {6697,60154,0},{6693,60171,0},{6692,60168,0},{6692,60171,0},{6693,60228,0}, {6690,60231,0},{6690,60248,0},{6690,60251,0},{6688,60261,0},{6692,60279,0}, {6697,60284,0},{6698,60289,0},{6697,60291,0},{6695,60286,0},{6690,60288,0}, {6692,60308,0},{6688,60306,0},{6690,60301,0},{6687,60289,0},{6687,60298,0}, {6683,60301,0},{6683,60313,0},{6682,60311,0},{6682,60303,0},{6687,60279,0}, {6685,60249,0},{6683,60248,0},{6685,60238,0},{6682,60228,0},{6680,60231,0}, {6678,60226,0},{6677,60226,0},{6682,60246,0},{6680,60254,0},{6682,60263,0}, {6683,60268,0},{6682,60271,0},{6678,60269,0},{6675,60251,0},{6675,60239,0}, {6673,60224,0},{6675,60216,0},{6672,60223,0},{6670,60239,0},{6675,60259,0}, {6673,60266,0},{6673,60276,0},{6670,60278,0},{6670,60273,0},{6668,60273,0}, {6670,60259,0},{6668,60253,0},{6667,60236,0},{6670,60209,0},{6663,60191,0}, {6662,60193,0},{6660,60189,0},{6662,60203,0},{6660,60203,0},{6660,60198,0}, {6657,60193,0},{6655,60214,0},{6655,60228,0},{6658,60241,0},{6655,60278,0}, {6655,60294,0},{6652,60291,0},{6652,60288,0},{6652,60264,0},{6655,60244,0}, {6648,60219,0},{6652,60203,0},{6652,60201,0},{6652,60214,0},{6653,60199,0}, {6652,60188,0},{6653,60184,0},{6650,60179,0},{6650,60174,0},{6647,60178,0}, {6645,60171,0},{6643,60171,0},{6643,60174,0},{6648,60183,0},{6647,60186,0}, {6645,60179,0},{6640,60174,0},{6640,60169,0},{6637,60168,0},{6633,60166,0}, {6632,60173,0},{6628,60171,0},{6625,60174,0},{6627,60199,0},{6628,60206,0}, {6628,60213,0},{6628,60224,0},{6625,60201,0},{6623,60186,0},{6622,60178,0}, {6618,60179,0},{6613,60169,0},{6615,60188,0},{6612,60171,0},{6610,60188,0}, {6612,60206,0},{6620,60236,0},{6627,60251,0},{6635,60264,0},{6643,60289,0}, {6652,60323,0},{6665,60338,0},{6672,60363,0},{6682,60384,0},{6692,60418,0}, {6692,60428,0},{6698,60441,0},{6707,60504,0},{6707,60508,0},{6703,60493,0}, {6703,60481,0},{6702,60473,0},{6700,60488,0},{6702,60504,0},{6698,60514,0}, {6700,60528,0},{6698,60529,0},{6698,60536,0},{6697,60533,0},{6697,60516,0}, {6700,60503,0},{6698,60489,0},{6700,60469,0},{6693,60441,0},{6690,60436,0}, {6685,60453,0},{6685,60461,0},{6687,60469,0},{6685,60484,0},{6685,60494,0}, {6683,60503,0},{6683,60483,0},{6685,60469,0},{6682,60456,0},{6683,60443,0}, {6688,60424,0},{6687,60421,0},{6683,60426,0},{6685,60416,0},{6685,60409,0}, {6678,60399,0},{6675,60384,0},{6673,60384,0},{6672,60393,0},{6670,60391,0}, {6670,60378,0},{6663,60346,0},{6652,60333,0},{6648,60339,0},{6643,60299,0}, {6632,60266,0},{6627,60263,0},{6623,60256,0},{6605,60194,0},{6603,60189,0}, {6602,60193,0},{6603,60204,0},{6602,60208,0},{6600,60206,0},{6602,60219,0}, {6602,60226,0},{6600,60206,0},{6600,60198,0},{6598,60189,0},{6595,60189,0}, {6593,60198,0},{6593,60203,0},{6595,60206,0},{6595,60211,0},{6593,60209,0}, {6602,60239,0},{6602,60248,0},{6592,60209,0},{6588,60221,0},{6588,60214,0}, {6587,60213,0},{6585,60219,0},{6595,60258,0},{6598,60256,0},{6595,60266,0}, {6598,60274,0},{6602,60279,0},{6600,60284,0},{6595,60276,0},{6590,60284,0}, {6590,60304,0},{6600,60319,0},{6600,60324,0},{6607,60358,0},{6607,60363,0}, {6602,60349,0},{6597,60361,0},{6593,60364,0},{6592,60363,0},{6600,60348,0}, {6600,60339,0},{6593,60313,0},{6590,60309,0},{6588,60314,0},{6583,60306,0}, {6587,60303,0},{6588,60286,0},{6593,60268,0},{6590,60253,0},{6588,60254,0}, {6588,60248,0},{6585,60233,0},{6582,60228,0},{6582,60234,0},{6578,60221,0}, {6575,60214,0},{6575,60209,0},{6573,60214,0},{6575,60224,0},{6580,60244,0}, {6580,60249,0},{6575,60236,0},{6572,60219,0},{6568,60213,0},{6565,60229,0}, {6567,60243,0},{6568,60248,0},{6567,60254,0},{6580,60268,0},{6572,60268,0}, {6570,60271,0},{6570,60264,0},{6563,60259,0},{6568,60279,0},{6567,60281,0}, {6560,60256,0},{6562,60269,0},{6558,60263,0},{6557,60261,0},{6557,60256,0}, {6553,60256,0},{6552,60263,0},{6550,60264,0},{6550,60268,0},{6567,60289,0}, {6558,60284,0},{6553,60276,0},{6550,60279,0},{6548,60274,0},{6547,60278,0}, {6552,60291,0},{6543,60281,0},{6538,60286,0},{6545,60298,0},{6545,60309,0}, {6550,60318,0},{6550,60328,0},{6555,60343,0},{6557,60344,0},{6567,60338,0}, {6565,60344,0},{6577,60391,0},{6580,60413,0},{6577,60429,0},{6578,60441,0}, {6573,60453,0},{6575,60453,0},{6575,60468,0},{6572,60469,0},{6572,60458,0}, {6568,60461,0},{6572,60481,0},{6568,60483,0},{6568,60464,0},{6575,60441,0}, {6577,60411,0},{6575,60398,0},{6570,60368,0},{6562,60346,0},{6560,60348,0}, {6560,60359,0},{6558,60364,0},{6558,60353,0},{6555,60351,0},{6548,60338,0}, {6547,60321,0},{6542,60313,0},{6540,60296,0},{6532,60279,0},{6528,60286,0}, {6530,60288,0},{6530,60291,0},{6527,60291,0},{6520,60283,0},{6518,60284,0}, {6522,60293,0},{6533,60303,0},{6528,60304,0},{6533,60314,0},{6532,60318,0}, {6530,60314,0},{6528,60318,0},{6520,60304,0},{6520,60306,0},{6522,60318,0}, {6532,60336,0},{6517,60314,0},{6512,60319,0},{6512,60326,0},{6510,60319,0}, {6510,60313,0},{6508,60308,0},{6505,60314,0},{6505,60319,0},{6503,60318,0}, {6500,60319,0},{6502,60328,0},{6498,60326,0},{6498,60334,0},{6497,60334,0}, {6492,60314,0},{6488,60314,0},{6487,60321,0},{6483,60318,0},{6483,60314,0}, {6480,60314,0},{6480,60318,0},{6485,60331,0},{6492,60331,0},{6488,60334,0}, {6488,60341,0},{6483,60338,0},{6482,60328,0},{6478,60328,0},{6480,60334,0}, {6480,60338,0},{6483,60348,0},{6488,60351,0},{6487,60358,0},{6485,60356,0}, {6487,60361,0},{6490,60356,0},{6490,60353,0},{6493,60354,0},{6495,60363,0}, {6502,60366,0},{6502,60373,0},{6500,60374,0},{6498,60381,0},{6497,60378,0}, {6497,60371,0},{6492,60368,0},{6490,60369,0},{6488,60366,0},{6488,60368,0}, {6498,60398,0},{6500,60393,0},{6500,60404,0},{6503,60409,0},{6502,60411,0}, {6495,60394,0},{6485,60383,0},{6488,60374,0},{6485,60371,0},{6485,60361,0}, {6482,60348,0},{6480,60344,0},{6478,60348,0},{6478,60343,0},{6473,60339,0}, {6475,60331,0},{6472,60324,0},{6468,60321,0},{6465,60323,0},{6463,60331,0}, {6460,60331,0},{6460,60334,0},{6455,60326,0},{6452,60326,0},{6452,60331,0}, {6450,60333,0},{6448,60328,0},{6445,60324,0},{6443,60328,0},{6438,60326,0}, {6440,60333,0},{6435,60333,0},{6432,60329,0},{6430,60334,0},{6427,60336,0}, {6423,60333,0},{6420,60336,0},{6420,60343,0},{6422,60343,0},{6422,60346,0}, {6422,60354,0},{6425,60361,0},{6430,60364,0},{6430,60369,0},{6432,60368,0}, {6435,60369,0},{6437,60364,0},{6440,60376,0},{6445,60381,0},{6452,60391,0}, {6462,60394,0},{6465,60398,0},{6465,60403,0},{6473,60406,0},{6477,60414,0}, {6478,60421,0},{6478,60429,0},{6475,60434,0},{6475,60426,0},{6473,60426,0}, {6472,60421,0},{6463,60414,0},{6462,60421,0},{6462,60433,0},{6463,60436,0}, {6463,60429,0},{6467,60429,0},{6468,60446,0},{6477,60464,0},{6473,60466,0}, {6475,60473,0},{6478,60471,0},{6478,60464,0},{6483,60471,0},{6487,60459,0}, {6488,60464,0},{6490,60466,0},{6493,60463,0},{6500,60463,0},{6500,60458,0}, {6497,60451,0},{6498,60448,0},{6505,60449,0},{6507,60448,0},{6508,60441,0}, {6510,60448,0},{6513,60441,0},{6522,60438,0},{6515,60448,0},{6520,60468,0}, {6512,60453,0},{6510,60456,0},{6503,60458,0},{6502,60468,0},{6497,60464,0}, {6490,60468,0},{6487,60476,0},{6477,60479,0},{6475,60498,0},{6477,60501,0}, {6475,60506,0},{6483,60518,0},{6487,60536,0},{6480,60523,0},{6478,60523,0}, {6477,60518,0},{6473,60514,0},{6470,60521,0},{6472,60528,0},{6470,60538,0}, {6467,60531,0},{6467,60526,0},{6463,60524,0},{6453,60529,0},{6445,60551,0}, {6443,60554,0},{6443,60568,0},{6438,60568,0},{6433,60578,0},{6433,60571,0}, {6433,60566,0},{6438,60556,0},{6440,60546,0},{6447,60523,0},{6453,60514,0}, {6467,60508,0},{6472,60486,0},{6468,60469,0},{6465,60476,0},{6468,60486,0}, {6467,60491,0},{6465,60489,0},{6467,60484,0},{6463,60479,0},{6463,60474,0}, {6465,60456,0},{6463,60448,0},{6460,60444,0},{6458,60451,0},{6460,60458,0}, {6458,60464,0},{6458,60474,0},{6455,60468,0},{6452,60473,0},{6455,60493,0}, {6447,60471,0},{6442,60496,0},{6448,60516,0},{6445,60519,0},{6443,60513,0}, {6440,60511,0},{6440,60506,0},{6440,60503,0},{6438,60499,0},{6443,60473,0}, {6445,60466,0},{6440,60468,0},{6438,60476,0},{6438,60478,0},{6438,60469,0}, {6443,60458,0},{6440,60446,0},{6435,60439,0},{6433,60441,0},{6428,60433,0}, {6425,60438,0},{6427,60449,0},{6425,60451,0},{6422,60441,0},{6425,60433,0}, {6420,60423,0},{6417,60409,0},{6418,60403,0},{6422,60391,0},{6422,60374,0}, {6418,60359,0},{6418,60361,0},{6418,60366,0},{6413,60368,0},{6420,60384,0}, {6417,60396,0},{6413,60401,0},{6417,60383,0},{6412,60371,0},{6408,60381,0}, {6408,60389,0},{6408,60391,0},{6412,60429,0},{6417,60453,0},{6422,60461,0}, {6423,60476,0},{6427,60479,0},{6430,60489,0},{6433,60493,0},{6435,60499,0}, {6435,60503,0},{6425,60488,0},{6418,60481,0},{6423,60521,0},{6423,60524,0}, {6422,60523,0},{6420,60531,0},{6415,60528,0},{6410,60531,0},{6408,60529,0}, {6418,60526,0},{6420,60516,0},{6417,60503,0},{6417,60496,0},{6413,60491,0}, {6415,60486,0},{6417,60469,0},{6410,60449,0},{6410,60438,0},{6407,60433,0}, {6408,60424,0},{6405,60398,0},{6402,60406,0},{6400,60404,0},{6403,60393,0}, {6405,60379,0},{6402,60371,0},{6397,60386,0},{6398,60394,0},{6397,60399,0}, {6395,60391,0},{6390,60399,0},{6388,60396,0},{6383,60396,0},{6385,60391,0}, {6385,60388,0},{6380,60393,0},{6382,60406,0},{6390,60421,0},{6393,60438,0}, {6393,60444,0},{6383,60414,0},{6380,60414,0},{6378,60396,0},{6377,60383,0}, {6370,60381,0},{6373,60391,0},{6372,60401,0},{6368,60383,0},{6362,60398,0}, {6362,60406,0},{6358,60398,0},{6353,60394,0},{6353,60398,0},{6355,60398,0}, {6355,60408,0},{6350,60419,0},{6352,60423,0},{6362,60418,0},{6367,60428,0}, {6363,60448,0},{6365,60464,0},{6367,60486,0},{6360,60481,0},{6363,60479,0}, {6365,60478,0},{6360,60446,0},{6365,60431,0},{6362,60426,0},{6362,60423,0}, {6358,60421,0},{6352,60426,0},{6355,60456,0},{6355,60461,0},{6353,60459,0}, {6348,60421,0},{6343,60414,0},{6342,60416,0},{6343,60418,0},{6343,60423,0}, {6338,60419,0},{6337,60423,0},{6338,60426,0},{6348,60433,0},{6347,60436,0}, {6337,60428,0},{6338,60441,0},{6337,60449,0},{6340,60456,0},{6338,60458,0}, {6338,60478,0},{6342,60498,0},{6340,60508,0},{6340,60498,0},{6338,60489,0}, {6337,60478,0},{6337,60469,0},{6335,60453,0},{6335,60431,0},{6333,60426,0}, {6330,60426,0},{6328,60428,0},{6328,60436,0},{6327,60429,0},{6323,60429,0}, {6327,60436,0},{6325,60441,0},{6323,60439,0},{6323,60436,0},{6322,60431,0}, {6318,60429,0},{6315,60436,0},{6323,60453,0},{6325,60458,0},{6317,60443,0}, {6313,60446,0},{6320,60458,0},{6320,60463,0},{6322,60468,0},{6320,60474,0}, {6323,60481,0},{6320,60486,0},{6318,60484,0},{6318,60489,0},{6322,60499,0}, {6323,60499,0},{6322,60508,0},{6323,60513,0},{6322,60531,0},{6318,60498,0}, {6317,60491,0},{6315,60494,0},{6313,60493,0},{6312,60483,0},{6310,60483,0}, {6310,60479,0},{6310,60476,0},{6307,60478,0},{6303,60474,0},{6302,60481,0}, {6305,60481,0},{6305,60484,0},{6302,60486,0},{6297,60474,0},{6297,60481,0}, {6295,60483,0},{6298,60486,0},{6295,60489,0},{6293,60494,0},{6297,60508,0}, {6305,60511,0},{6302,60521,0},{6300,60519,0},{6298,60513,0},{6295,60509,0}, {6293,60504,0},{6285,60496,0},{6282,60501,0},{6278,60498,0},{6278,60501,0}, {6283,60504,0},{6285,60508,0},{6287,60509,0},{6295,60519,0},{6298,60539,0}, {6307,60556,0},{6305,60566,0},{6300,60553,0},{6293,60523,0},{6287,60516,0}, {6285,60511,0},{6275,60504,0},{6270,60509,0},{6277,60519,0},{6280,60518,0}, {6280,60521,0},{6278,60521,0},{6288,60544,0},{6288,60548,0},{6287,60544,0}, {6285,60546,0},{6278,60531,0},{6275,60529,0},{6270,60524,0},{6270,60519,0}, {6267,60514,0},{6263,60514,0},{6258,60509,0},{6248,60504,0},{6245,60513,0}, {6240,60516,0},{6235,60533,0},{6230,60536,0},{6230,60539,0},{6237,60544,0}, {6228,60548,0},{6228,60554,0},{6230,60556,0},{6227,60556,0},{6227,60549,0}, {6225,60551,0},{6225,60548,0},{6223,60553,0},{6225,60556,0},{6227,60564,0}, {6225,60574,0},{6230,60581,0},{6225,60579,0},{6227,60591,0},{6225,60601,0}, {6227,60608,0},{6223,60601,0},{6225,60589,0},{6223,60584,0},{6223,60579,0}, {6218,60576,0},{6215,60568,0},{6215,60589,0},{6220,60596,0},{6222,60599,0}, {6220,60601,0},{6217,60599,0},{6218,60606,0},{6213,60608,0},{6212,60593,0}, {6208,60603,0},{6212,60578,0},{6212,60566,0},{6208,60568,0},{6210,60573,0}, {6207,60576,0},{6208,60584,0},{6208,60589,0},{6205,60574,0},{6202,60583,0}, {6203,60569,0},{6202,60566,0},{6200,60569,0},{6198,60576,0},{6198,60581,0}, {6202,60589,0},{6207,60596,0},{6205,60598,0},{6202,60594,0},{6202,60601,0}, {6200,60593,0},{6198,60594,0},{6198,60603,0},{6202,60611,0},{6202,60619,0}, {6210,60621,0},{6217,60626,0},{6222,60633,0},{6220,60634,0},{6208,60626,0}, {6208,60629,0},{6213,60639,0},{6212,60639,0},{6208,60634,0},{6207,60643,0}, {6207,60653,0},{6205,60646,0},{6205,60638,0},{6197,60621,0},{6197,60609,0}, {6193,60596,0},{6193,60603,0},{6192,60598,0},{6188,60596,0},{6187,60598,0}, {6185,60593,0},{6183,60594,0},{6182,60593,0},{6180,60598,0},{6182,60603,0}, {6188,60608,0},{6190,60614,0},{6190,60618,0},{6188,60614,0},{6177,60601,0}, {6172,60611,0},{6172,60613,0},{6175,60618,0},{6183,60618,0},{6195,60636,0}, {6198,60648,0},{6198,60656,0},{6198,60661,0},{6195,60661,0},{6193,60646,0}, {6188,60641,0},{6187,60634,0},{6185,60636,0},{6183,60626,0},{6180,60624,0}, {6177,60626,0},{6172,60621,0},{6173,60634,0},{6178,60648,0},{6175,60644,0}, {6172,60648,0},{6173,60643,0},{6168,60629,0},{6162,60631,0},{6165,60643,0}, {6160,60638,0},{6160,60641,0},{6163,60663,0},{6165,60669,0},{6163,60678,0}, {6160,60668,0},{6158,60644,0},{6160,60628,0},{6160,60611,0},{6158,60609,0}, {6158,60614,0},{6155,60606,0},{6153,60613,0},{6155,60624,0},{6153,60631,0}, {6152,60626,0},{6150,60624,0},{6148,60626,0},{6148,60636,0},{6148,60638,0}, {6145,60634,0},{6155,60683,0},{6160,60701,0},{6158,60704,0},{6157,60703,0}, {6153,60688,0},{6155,60708,0},{6155,60713,0},{6153,60713,0},{6150,60679,0}, {6145,60663,0},{6147,60653,0},{6140,60629,0},{6140,60643,0},{6135,60638,0}, {6140,60646,0},{6140,60651,0},{6137,60649,0},{6138,60656,0},{6143,60671,0}, {6140,60669,0},{6138,60676,0},{6140,60679,0},{6138,60681,0},{6137,60698,0}, {6137,60703,0},{6135,60701,0},{6135,60688,0},{6130,60686,0},{6132,60693,0}, {6130,60698,0},{6128,60686,0},{6128,60678,0},{6123,60673,0},{6120,60673,0}, {6125,60679,0},{6127,60686,0},{6125,60681,0},{6122,60679,0},{6123,60684,0}, {6118,60683,0},{6118,60688,0},{6117,60689,0},{6120,60699,0},{6118,60699,0}, {6122,60706,0},{6117,60704,0},{6115,60693,0},{6113,60694,0},{6112,60704,0}, {6113,60714,0},{6117,60708,0},{6123,60711,0},{6125,60718,0},{6132,60721,0}, {6130,60724,0},{6133,60736,0},{6132,60744,0},{6130,60728,0},{6127,60724,0}, {6127,60726,0},{6123,60724,0},{6120,60714,0},{6113,60721,0},{6118,60731,0}, {6115,60731,0},{6112,60724,0},{6108,60728,0},{6110,60734,0},{6110,60739,0}, {6113,60748,0},{6118,60754,0},{6118,60759,0},{6108,60743,0},{6105,60744,0}, {6108,60751,0},{6105,60753,0},{6103,60751,0},{6105,60734,0},{6100,60721,0}, {6102,60713,0},{6100,60696,0},{6098,60699,0},{6100,60709,0},{6098,60719,0}, {6097,60721,0},{6098,60726,0},{6097,60729,0},{6098,60733,0},{6098,60739,0}, {6102,60744,0},{6100,60751,0},{6100,60768,0},{6098,60763,0},{6097,60763,0}, {6095,60748,0},{6090,60738,0},{6092,60734,0},{6087,60719,0},{6083,60713,0}, {6082,60713,0},{6082,60716,0},{6082,60729,0},{6088,60743,0},{6087,60744,0}, {6085,60741,0},{6083,60743,0},{6083,60749,0},{6082,60756,0},{6083,60759,0}, {6082,60771,0},{6083,60783,0},{6082,60791,0},{6087,60803,0},{6088,60801,0}, {6088,60788,0},{6087,60783,0},{6088,60774,0},{6085,60761,0},{6088,60763,0}, {6087,60751,0},{6092,60761,0},{6090,60763,0},{6090,60771,0},{6088,60783,0}, {6090,60786,0},{6090,60781,0},{6093,60789,0},{6093,60799,0},{6095,60806,0}, {6090,60809,0},{6090,60811,0},{6093,60819,0},{6098,60834,0},{6097,60836,0}, {6093,60828,0},{6095,60841,0},{6093,60844,0},{6087,60831,0},{6083,60833,0}, {6083,60836,0},{6087,60839,0},{6088,60851,0},{6082,60838,0},{6082,60839,0}, {6083,60846,0},{6082,60848,0},{6080,60843,0},{6080,60851,0},{6085,60864,0}, {6088,60866,0},{6093,60848,0},{6093,60858,0},{6090,60866,0},{6095,60861,0}, {6090,60871,0},{6093,60873,0},{6090,60878,0},{6098,60871,0},{6098,60876,0}, {6095,60881,0},{6098,60881,0},{6100,60878,0},{6103,60881,0},{6100,60889,0}, {6100,60894,0},{6105,60889,0},{6103,60894,0},{6103,60898,0},{6108,60896,0}, {6107,60901,0},{6105,60904,0},{6105,60909,0},{6098,60911,0},{6097,60913,0}, {6100,60923,0},{6102,60924,0},{6105,60918,0},{6108,60906,0},{6108,60918,0}, {6105,60921,0},{6105,60929,0},{6108,60944,0},{6113,60941,0},{6113,60951,0}, {6117,60951,0},{6120,60944,0},{6118,60941,0},{6122,60938,0},{6125,60924,0}, {6127,60931,0},{6123,60936,0},{6123,60943,0},{6130,60949,0},{6133,60956,0}, {6132,60964,0},{6127,60954,0},{6122,60949,0},{6118,60958,0},{6113,60959,0}, {6117,60964,0},{6115,60973,0},{6113,60974,0},{6113,60963,0},{6112,60968,0}, {6108,60958,0},{6108,60968,0},{6107,60966,0},{6105,60948,0},{6097,60926,0}, {6095,60928,0},{6093,60933,0},{6092,60929,0},{6092,60933,0},{6097,60953,0}, {6095,60956,0},{6102,60976,0},{6110,60988,0},{6117,60984,0},{6120,60986,0}, {6125,60984,0},{6120,60993,0},{6117,60991,0},{6108,60999,0},{6120,61014,0}, {6118,61016,0},{6115,61011,0},{6110,61011,0},{6105,60993,0},{6098,60988,0}, {6093,60964,0},{6093,60949,0},{6090,60938,0},{6082,60916,0},{6080,60919,0}, {6083,60931,0},{6088,60936,0},{6087,60941,0},{6090,60949,0},{6087,60949,0}, {6083,60938,0},{6080,60931,0},{6078,60916,0},{6077,60914,0},{6072,60921,0}, {6072,60931,0},{6073,60936,0},{6078,60936,0},{6083,60939,0},{6083,60943,0}, {6083,60944,0},{6085,60948,0},{6083,60961,0},{6077,60948,0},{6075,60948,0}, {6075,60954,0},{6077,60959,0},{6077,60966,0},{6088,60988,0},{6092,60988,0}, {6095,60998,0},{6100,60994,0},{6100,60998,0},{6098,61003,0},{6092,60999,0}, {6093,61008,0},{6090,61011,0},{6088,60996,0},{6080,60983,0},{6078,60974,0}, {6077,60974,0},{6077,60978,0},{6073,60966,0},{6070,60956,0},{6070,60951,0}, {6067,60963,0},{6070,60976,0},{6070,60978,0},{6058,60938,0},{6057,60946,0}, {6052,60949,0},{6057,60951,0},{6055,60954,0},{6055,60956,0},{6060,60956,0}, {6062,60958,0},{6065,60974,0},{6058,60963,0},{6057,60968,0},{6058,60974,0}, {6060,60973,0},{6060,60974,0},{6057,60978,0},{6053,60968,0},{6052,60969,0}, {6053,60976,0},{6052,60974,0},{6047,60979,0},{6053,60984,0},{6058,60984,0}, {6057,60989,0},{6062,60989,0},{6065,60999,0},{6072,60999,0},{6072,61004,0}, {6067,61006,0},{6068,61016,0},{6072,61024,0},{6067,61019,0},{6060,60999,0}, {6055,60996,0},{6050,60986,0},{6055,61008,0},{6060,61009,0},{6058,61014,0}, {6060,61016,0},{6063,61013,0},{6062,61019,0},{6065,61029,0},{6055,61014,0}, {6050,61009,0},{6048,61011,0},{6045,61008,0},{6043,61014,0},{6047,61021,0}, {6048,61034,0},{6060,61053,0},{6067,61054,0},{6070,61063,0},{6072,61064,0}, {6073,61073,0},{6072,61073,0},{6070,61066,0},{6067,61059,0},{6058,61059,0}, {6047,61041,0},{6045,61044,0},{6047,61051,0},{6037,61043,0},{6033,61041,0}, {6033,61044,0},{6025,61024,0},{6018,61016,0},{6017,61016,0},{6018,61019,0}, {6013,61016,0},{6013,61019,0},{6020,61028,0},{6018,61041,0},{6022,61048,0}, {6027,61051,0},{6028,61056,0},{6035,61061,0},{6038,61071,0},{6047,61076,0}, {6050,61084,0},{6055,61088,0},{6057,61089,0},{6052,61089,0},{6048,61086,0}, {6047,61083,0},{6045,61083,0},{6042,61076,0},{6038,61074,0},{6032,61063,0}, {6027,61063,0},{6023,61054,0},{6020,61053,0},{6022,61059,0},{6020,61059,0}, {6017,61028,0},{6013,61029,0},{6008,61019,0},{6007,61024,0},{6007,61026,0}, {6010,61024,0},{6008,61029,0},{6010,61031,0},{6010,61034,0},{6008,61041,0}, {6007,61039,0},{6005,61041,0},{6003,61039,0},{6003,61049,0},{6002,61053,0}, {6010,61043,0},{6015,61046,0},{6015,61049,0},{6015,61051,0},{6012,61048,0}, {6002,61056,0},{6000,61059,0},{6000,61064,0},{6008,61066,0},{6010,61069,0}, {6000,61069,0},{5998,61076,0},{6003,61084,0},{6015,61091,0},{6015,61104,0}, {6018,61109,0},{6020,61109,0},{6023,61104,0},{6022,61111,0},{6023,61114,0}, {6033,61109,0},{6032,61113,0},{6025,61119,0},{6028,61128,0},{6038,61126,0}, {6037,61129,0},{6032,61131,0},{6030,61136,0},{6023,61121,0},{6017,61119,0}, {6018,61123,0},{6018,61129,0},{6017,61153,0},{6017,61163,0},{6015,61169,0}, {6018,61173,0},{6013,61178,0},{6008,61209,0},{6008,61223,0},{6010,61226,0}, {6012,61228,0},{6013,61224,0},{6012,61221,0},{6013,61214,0},{6017,61216,0}, {6015,61224,0},{6017,61223,0},{6018,61224,0},{6018,61219,0},{6020,61224,0}, {6020,61223,0},{6022,61203,0},{6025,61213,0},{6023,61224,0},{6025,61228,0}, {6027,61218,0},{6028,61224,0},{6032,61226,0},{6033,61223,0},{6032,61218,0}, {6035,61208,0},{6035,61204,0},{6037,61201,0},{6035,61219,0},{6037,61221,0}, {6038,61214,0},{6040,61219,0},{6040,61213,0},{6038,61199,0},{6037,61196,0}, {6033,61201,0},{6035,61193,0},{6030,61176,0},{6037,61189,0},{6038,61188,0}, {6042,61203,0},{6043,61204,0},{6045,61203,0},{6048,61186,0},{6052,61159,0}, {6050,61156,0},{6045,61159,0},{6045,61154,0},{6047,61156,0},{6053,61151,0}, {6058,61118,0},{6060,61116,0},{6060,61121,0},{6063,61116,0},{6063,61123,0}, {6060,61124,0},{6058,61131,0},{6058,61143,0},{6055,61173,0},{6057,61174,0}, {6068,61166,0},{6072,61166,0},{6063,61171,0},{6053,61181,0},{6047,61216,0}, {6048,61221,0},{6052,61208,0},{6055,61204,0},{6053,61213,0},{6055,61216,0}, {6053,61219,0},{6050,61228,0},{6052,61233,0},{6053,61223,0},{6053,61238,0}, {6057,61244,0},{6057,61253,0},{6058,61251,0},{6058,61226,0},{6060,61221,0}, {6060,61253,0},{6063,61254,0},{6068,61261,0},{6068,61254,0},{6063,61244,0}, {6062,61246,0},{6062,61244,0},{6065,61213,0},{6067,61209,0},{6065,61241,0}, {6072,61259,0},{6075,61258,0},{6075,61244,0},{6078,61239,0},{6080,61224,0}, {6078,61216,0},{6078,61209,0},{6080,61209,0},{6082,61186,0},{6083,61183,0}, {6085,61186,0},{6082,61224,0},{6078,61244,0},{6080,61258,0},{6082,61258,0}, {6082,61251,0},{6083,61248,0},{6085,61231,0},{6085,61224,0},{6087,61226,0}, {6090,61208,0},{6090,61188,0},{6093,61188,0},{6095,61189,0},{6088,61238,0}, {6090,61239,0},{6093,61263,0},{6095,61256,0},{6100,61254,0},{6102,61258,0}, {6098,61266,0},{6098,61269,0},{6100,61269,0},{6100,61268,0},{6103,61269,0}, {6103,61259,0},{6105,61266,0},{6107,61258,0},{6105,61254,0},{6107,61251,0}, {6107,61243,0},{6105,61236,0},{6107,61238,0},{6108,61233,0},{6108,61223,0}, {6110,61219,0},{6110,61201,0},{6113,61174,0},{6113,61183,0},{6112,61206,0}, {6113,61221,0},{6110,61243,0},{6112,61248,0},{6110,61254,0},{6110,61273,0}, {6115,61266,0},{6115,61259,0},{6117,61248,0},{6122,61218,0},{6120,61239,0}, {6122,61243,0},{6120,61251,0},{6118,61254,0},{6118,61259,0},{6120,61271,0}, {6120,61278,0},{6122,61278,0},{6122,61273,0},{6125,61269,0},{6127,61264,0}, {6125,61258,0},{6125,61246,0},{6127,61248,0},{6127,61258,0},{6128,61258,0}, {6130,61246,0},{6133,61214,0},{6133,61211,0},{6135,61221,0},{6133,61239,0}, {6135,61248,0},{6130,61261,0},{6128,61269,0},{6128,61273,0},{6132,61268,0}, {6132,61278,0},{6135,61276,0},{6135,61284,0},{6140,61289,0},{6142,61296,0}, {6143,61293,0},{6143,61289,0},{6143,61283,0},{6148,61281,0},{6153,61284,0}, {6153,61249,0},{6152,61243,0},{6155,61241,0},{6160,61228,0},{6155,61273,0}, {6157,61286,0},{6155,61291,0},{6157,61293,0},{6162,61289,0},{6160,61299,0}, {6163,61291,0},{6162,61303,0},{6163,61304,0},{6165,61296,0},{6168,61296,0}, {6172,61311,0},{6172,61304,0},{6168,61294,0},{6170,61288,0},{6170,61276,0}, {6178,61258,0},{6177,61251,0},{6177,61249,0},{6182,61259,0},{6173,61278,0}, {6173,61289,0},{6175,61301,0},{6177,61306,0},{6187,61318,0},{6187,61311,0}, {6188,61313,0},{6188,61303,0},{6192,61294,0},{6192,61316,0},{6200,61324,0}, {6202,61321,0},{6202,61303,0},{6195,61288,0},{6195,61281,0},{6202,61294,0}, {6203,61284,0},{6205,61288,0},{6205,61294,0},{6207,61298,0},{6208,61296,0}, {6210,61306,0},{6215,61303,0},{6222,61311,0},{6225,61309,0},{6227,61303,0}, {6230,61309,0},{6232,61301,0},{6233,61294,0},{6233,61273,0},{6237,61273,0}, {6242,61263,0},{6247,61244,0},{6247,61239,0},{6252,61238,0},{6250,61253,0}, {6248,61258,0},{6250,61261,0},{6250,61264,0},{6247,61268,0},{6245,61276,0}, {6242,61283,0},{6242,61288,0},{6240,61289,0},{6237,61304,0},{6237,61308,0}, {6237,61311,0},{6238,61319,0},{6238,61308,0},{6240,61313,0},{6243,61311,0}, {6243,61301,0},{6242,61298,0},{6247,61281,0},{6248,61281,0},{6248,61288,0}, {6253,61281,0},{6247,61294,0},{6247,61299,0},{6248,61303,0},{6257,61299,0}, {6257,61293,0},{6263,61276,0},{6262,61268,0},{6258,61268,0},{6262,61263,0}, {6263,61263,0},{6265,61258,0},{6268,61238,0},{6268,61224,0},{6272,61224,0}, {6275,61221,0},{6277,61224,0},{6272,61233,0},{6270,61248,0},{6270,61256,0}, {6268,61266,0},{6278,61266,0},{6272,61271,0},{6268,61271,0},{6270,61279,0}, {6273,61274,0},{6277,61276,0},{6270,61288,0},{6282,61278,0},{6282,61283,0}, {6277,61288,0},{6282,61294,0},{6283,61294,0},{6283,61278,0},{6287,61276,0}, {6287,61291,0},{6292,61293,0},{6292,61296,0},{6293,61306,0},{6293,61308,0}, {6288,61299,0},{6288,61301,0},{6288,61311,0},{6285,61301,0},{6280,61304,0}, {6282,61314,0},{6278,61333,0},{6287,61334,0},{6285,61338,0},{6283,61348,0}, {6282,61351,0},{6283,61361,0},{6287,61361,0},{6287,61354,0},{6288,61359,0}, {6293,61358,0},{6292,61363,0},{6292,61371,0},{6293,61374,0},{6298,61374,0}, {6298,61368,0},{6302,61359,0},{6302,61336,0},{6305,61336,0},{6308,61328,0}, {6310,61316,0},{6313,61323,0},{6320,61319,0},{6320,61323,0},{6318,61328,0}, {6310,61333,0},{6307,61339,0},{6307,61343,0},{6310,61339,0},{6310,61346,0}, {6305,61353,0},{6303,61363,0},{6303,61366,0},{6305,61359,0},{6307,61361,0}, {6303,61369,0},{6303,61381,0},{6305,61381,0},{6312,61371,0},{6325,61334,0}, {6320,61356,0},{6313,61374,0},{6308,61381,0},{6313,61393,0},{6315,61388,0}, {6322,61389,0},{6325,61379,0},{6328,61376,0},{6332,61371,0},{6330,61359,0}, {6332,61361,0},{6333,61356,0},{6335,61356,0},{6333,61366,0},{6335,61368,0}, {6338,61361,0},{6340,61351,0},{6347,61346,0},{6352,61361,0},{6355,61361,0}, {6355,61364,0},{6343,61379,0},{6342,61394,0},{6337,61399,0},{6337,61408,0}, {6330,61424,0},{6335,61419,0},{6337,61409,0},{6343,61398,0},{6348,61378,0}, {6348,61386,0},{6353,61386,0},{6347,61393,0},{6340,61413,0},{6357,61394,0}, {6345,61416,0},{6338,61418,0},{6338,61424,0},{6340,61436,0},{6342,61434,0}, {6343,61424,0},{6345,61419,0},{6350,61414,0},{6353,61408,0},{6357,61408,0}, {6353,61416,0},{6347,61424,0},{6345,61429,0},{6345,61436,0},{6350,61431,0}, {6352,61423,0},{6350,61431,0},{6352,61436,0},{6355,61434,0},{6352,61441,0}, {6353,61443,0},{6350,61449,0},{6353,61451,0},{6350,61454,0},{6352,61461,0}, {6358,61463,0},{6358,61458,0},{6357,61454,0},{6358,61448,0},{6360,61451,0}, {6365,61446,0},{6368,61426,0},{6370,61413,0},{6377,61393,0},{6377,61384,0}, {6375,61379,0},{6377,61374,0},{6378,61373,0},{6382,61384,0},{6387,61388,0}, {6385,61393,0},{6378,61401,0},{6370,61441,0},{6367,61464,0},{6370,61468,0}, {6370,61473,0},{6368,61473,0},{6368,61481,0},{6370,61484,0},{6375,61483,0}, {6375,61478,0},{6378,61478,0},{6380,61474,0},{6383,61479,0},{6387,61476,0}, {6392,61474,0},{6393,61469,0},{6393,61456,0},{6395,61453,0},{6397,61463,0}, {6398,61464,0},{6397,61469,0},{6397,61476,0},{6400,61471,0},{6407,61483,0}, {6412,61479,0},{6413,61469,0},{6415,61466,0},{6417,61448,0},{6415,61439,0}, {6410,61443,0},{6408,61438,0},{6413,61431,0},{6417,61398,0},{6422,61391,0}, {6425,61391,0},{6425,61388,0},{6425,61383,0},{6427,61379,0},{6432,61384,0}, {6435,61403,0},{6432,61403,0},{6433,61411,0},{6430,61428,0},{6433,61443,0}, {6438,61456,0},{6437,61459,0},{6438,61464,0},{6437,61469,0},{6438,61471,0}, {6438,61474,0},{6437,61474,0},{6435,61483,0},{6432,61483,0},{6435,61489,0}, {6433,61494,0},{6435,61499,0},{6440,61498,0},{6447,61473,0},{6450,61479,0}, {6468,61476,0},{6468,61468,0},{6473,61466,0},{6477,61453,0},{6482,61446,0}, {6482,61438,0},{6483,61438,0},{6483,61444,0},{6485,61448,0},{6485,61438,0}, {6488,61429,0},{6495,61421,0},{6498,61423,0},{6495,61436,0},{6497,61438,0}, {6505,61431,0},{6508,61423,0},{6512,61424,0},{6513,61428,0},{6508,61434,0}, {6508,61444,0},{6505,61451,0},{6510,61449,0},{6508,61458,0},{6502,61466,0}, {6513,61469,0},{6515,61474,0},{6512,61476,0},{6503,61494,0},{6503,61499,0}, {6508,61494,0},{6508,61498,0},{6500,61509,0},{6503,61513,0},{6502,61521,0}, {6507,61519,0},{6508,61521,0},{6508,61541,0},{6510,61539,0},{6510,61531,0}, {6513,61529,0},{6513,61524,0},{6517,61524,0},{6517,61528,0},{6515,61534,0}, {6515,61541,0},{6517,61544,0},{6518,61533,0},{6518,61543,0},{6525,61544,0}, {6523,61549,0},{6525,61561,0},{6530,61553,0},{6527,61553,0},{6527,61548,0}, {6532,61549,0},{6535,61541,0},{6537,61548,0},{6542,61548,0},{6540,61554,0}, {6540,61558,0},{6542,61556,0},{6542,61551,0},{6545,61546,0},{6543,61538,0}, {6545,61524,0},{6548,61516,0},{6550,61514,0},{6552,61523,0},{6548,61531,0}, {6555,61524,0},{6557,61528,0},{6558,61533,0},{6555,61538,0},{6550,61554,0}, {6555,61554,0},{6553,61563,0},{6553,61566,0},{6557,61563,0},{6558,61553,0}, {6558,61561,0},{6562,61558,0},{6563,61563,0},{6562,61573,0},{6565,61564,0}, {6568,61569,0},{6565,61578,0},{6567,61584,0},{6562,61581,0},{6560,61586,0}, {6555,61589,0},{6553,61594,0},{6555,61599,0},{6558,61598,0},{6563,61601,0}, {6553,61603,0},{6562,61606,0},{6558,61611,0},{6557,61614,0},{6560,61616,0}, {6568,61608,0},{6570,61599,0},{6575,61601,0},{6570,61604,0},{6570,61613,0}, {6565,61623,0},{6555,61629,0},{6558,61641,0},{6557,61639,0},{6557,61646,0}, {6562,61653,0},{6558,61659,0},{6558,61671,0},{6557,61674,0},{6563,61673,0}, {6563,61664,0},{6567,61658,0},{6568,61658,0},{6570,61661,0},{6565,61669,0}, {6567,61673,0},{6568,61671,0},{6568,61676,0},{6563,61676,0},{6563,61679,0}, {6570,61683,0},{6567,61686,0},{6568,61691,0},{6567,61691,0},{6565,61686,0}, {6558,61686,0},{6562,61693,0},{6567,61694,0},{6565,61696,0},{6565,61703,0}, {6563,61713,0},{6567,61716,0},{6570,61711,0},{6568,61718,0},{6573,61721,0}, {6577,61718,0},{6577,61724,0},{6580,61726,0},{6583,61719,0},{6583,61708,0}, {6585,61708,0},{6592,61691,0},{6602,61688,0},{6602,61691,0},{6602,61696,0}, {6597,61703,0},{6593,61701,0},{6590,61708,0},{6590,61721,0},{6593,61721,0}, {6595,61716,0},{6597,61718,0},{6597,61723,0},{6595,61724,0},{6597,61729,0}, {6592,61729,0},{6593,61736,0},{6597,61739,0},{6603,61736,0},{6605,61741,0}, {6608,61741,0},{6608,61728,0},{6610,61724,0},{6612,61726,0},{6610,61729,0}, {6612,61738,0},{6615,61743,0},{6617,61749,0},{6620,61751,0},{6620,61746,0}, {6623,61736,0},{6625,61741,0},{6623,61744,0},{6625,61756,0},{6622,61754,0}, {6622,61758,0},{6627,61766,0},{6630,61758,0},{6633,61723,0},{6635,61721,0}, {6638,61726,0},{6638,61739,0},{6637,61743,0},{6637,61749,0},{6645,61751,0}, {6638,61754,0},{6632,61776,0},{6632,61781,0},{6635,61788,0},{6632,61796,0}, {6633,61818,0},{6632,61818,0},{6628,61806,0},{6617,61781,0},{6612,61781,0}, {6610,61773,0},{6607,61771,0},{6607,61763,0},{6605,61756,0},{6600,61756,0}, {6597,61763,0},{6588,61751,0},{6588,61754,0},{6592,61759,0},{6592,61764,0}, {6593,61768,0},{6583,61796,0},{6577,61816,0},{6578,61819,0},{6582,61809,0}, {6583,61811,0},{6580,61821,0},{6582,61824,0},{6585,61828,0},{6590,61813,0}, {6590,61824,0},{6595,61819,0},{6597,61823,0},{6600,61819,0},{6602,61821,0}, {6598,61826,0},{6602,61826,0},{6607,61828,0},{6605,61833,0},{6593,61826,0}, {6588,61834,0},{6585,61833,0},{6583,61838,0},{6588,61851,0},{6592,61853,0}, {6592,61849,0},{6592,61846,0},{6593,61846,0},{6593,61861,0},{6598,61884,0}, {6605,61888,0},{6605,61879,0},{6607,61879,0},{6608,61883,0},{6607,61893,0}, {6608,61898,0},{6608,61901,0},{6602,61896,0},{6592,61899,0},{6592,61903,0}, {6597,61904,0},{6598,61901,0},{6598,61906,0},{6600,61909,0},{6595,61909,0}, {6597,61916,0},{6593,61914,0},{6593,61918,0},{6595,61923,0},{6593,61924,0}, {6593,61929,0},{6597,61933,0},{6602,61946,0},{6603,61944,0},{6605,61949,0}, {6607,61943,0},{6607,61948,0},{6608,61944,0},{6607,61954,0},{6608,61964,0}, {6612,61951,0},{6610,61943,0},{6612,61943,0},{6615,61949,0},{6613,61954,0}, {6385,63399,128},{6382,63373,0},{6387,63363,0},{6387,63356,0},{6385,63351,0}, {6383,63336,0},{6383,63318,0},{6387,63303,0},{6383,63296,0},{6385,63293,0}, {6382,63284,0},{6382,63271,0},{6380,63268,0},{6383,63264,0},{6387,63266,0}, {6388,63263,0},{6393,63268,0},{6395,63273,0},{6395,63266,0},{6398,63263,0}, {6408,63266,0},{6408,63269,0},{6405,63278,0},{6398,63281,0},{6397,63296,0}, {6402,63299,0},{6403,63311,0},{6402,63316,0},{6405,63326,0},{6405,63334,0}, {6408,63339,0},{6410,63331,0},{6412,63336,0},{6412,63339,0},{6410,63338,0}, {6410,63344,0},{6412,63343,0},{6412,63344,0},{6415,63333,0},{6415,63349,0}, {6413,63354,0},{6413,63358,0},{6413,63354,0},{6415,63356,0},{6417,63354,0}, {6418,63366,0},{6418,63359,0},{6422,63364,0},{6422,63354,0},{6423,63354,0}, {6423,63343,0},{6435,63361,0},{6435,63371,0},{6435,63368,0},{6438,63378,0}, {6437,63379,0},{6435,63389,0},{6438,63399,0},{6437,63391,0},{6437,63388,0}, {6440,63391,0},{6440,63373,0},{6438,63363,0},{6433,63356,0},{6430,63341,0}, {6432,63326,0},{6435,63336,0},{6437,63338,0},{6437,63348,0},{6438,63349,0}, {6440,63333,0},{6450,63338,0},{6453,63348,0},{6453,63358,0},{6455,63354,0}, {6460,63366,0},{6460,63371,0},{6458,63371,0},{6458,63376,0},{6457,63378,0}, {6457,63386,0},{6460,63374,0},{6462,63378,0},{6462,63368,0},{6465,63374,0}, {6465,63386,0},{6465,63376,0},{6465,63373,0},{6463,63366,0},{6465,63369,0}, {6465,63366,0},{6458,63359,0},{6458,63353,0},{6457,63351,0},{6455,63341,0}, {6452,63336,0},{6453,63333,0},{6457,63333,0},{6447,63328,0},{6445,63319,0}, {6450,63314,0},{6448,63311,0},{6452,63314,0},{6455,63314,0},{6455,63309,0}, {6457,63311,0},{6455,63303,0},{6457,63301,0},{6462,63301,0},{6467,63293,0}, {6463,63299,0},{6465,63303,0},{6467,63301,0},{6468,63303,0},{6473,63318,0}, {6467,63296,0},{6468,63294,0},{6472,63301,0},{6475,63304,0},{6477,63293,0}, {6482,63294,0},{6480,63293,0},{6480,63289,0},{6480,63283,0},{6478,63278,0}, {6477,63279,0},{6477,63271,0},{6477,63268,0},{6478,63273,0},{6480,63268,0}, {6480,63258,0},{6477,63264,0},{6480,63249,0},{6480,63219,0},{6483,63208,0}, {6482,63198,0},{6478,63191,0},{6480,63179,0},{6482,63183,0},{6482,63179,0}, {6478,63173,0},{6475,63173,0},{6473,63169,0},{6473,63153,0},{6473,63148,0}, {6475,63141,0},{6487,63131,0},{6488,63129,0},{6488,63136,0},{6492,63139,0}, {6492,63154,0},{6488,63169,0},{6492,63181,0},{6495,63186,0},{6495,63198,0}, {6497,63196,0},{6497,63201,0},{6493,63203,0},{6492,63211,0},{6495,63214,0}, {6498,63213,0},{6502,63218,0},{6500,63228,0},{6495,63219,0},{6492,63224,0}, {6497,63224,0},{6497,63229,0},{6500,63233,0},{6500,63239,0},{6498,63241,0}, {6502,63253,0},{6503,63258,0},{6503,63249,0},{6508,63264,0},{6505,63266,0}, {6502,63261,0},{6502,63268,0},{6500,63269,0},{6497,63278,0},{6500,63274,0}, {6502,63274,0},{6505,63283,0},{6507,63301,0},{6505,63308,0},{6503,63321,0}, {6503,63324,0},{6503,63341,0},{6503,63356,0},{6505,63358,0},{6507,63351,0}, {6515,63363,0},{6520,63361,0},{6520,63354,0},{6515,63349,0},{6510,63329,0}, {6512,63311,0},{6517,63296,0},{6515,63289,0},{6515,63281,0},{6517,63279,0}, {6518,63291,0},{6518,63281,0},{6523,63286,0},{6523,63294,0},{6527,63294,0}, {6527,63299,0},{6530,63303,0},{6533,63319,0},{6540,63338,0},{6538,63343,0}, {6540,63341,0},{6542,63344,0},{6543,63358,0},{6545,63366,0},{6543,63354,0}, {6545,63349,0},{6543,63339,0},{6545,63341,0},{6547,63343,0},{6550,63336,0}, {6550,63333,0},{6548,63331,0},{6550,63328,0},{6552,63326,0},{6548,63324,0}, {6543,63316,0},{6545,63306,0},{6548,63298,0},{6550,63298,0},{6552,63316,0}, {6560,63326,0},{6553,63311,0},{6553,63301,0},{6557,63306,0},{6553,63299,0}, {6555,63294,0},{6552,63296,0},{6550,63289,0},{6552,63286,0},{6557,63286,0}, {6563,63281,0},{6557,63283,0},{6555,63281,0},{6553,63278,0},{6555,63276,0}, {6557,63274,0},{6555,63273,0},{6552,63271,0},{6553,63268,0},{6557,63264,0}, {6563,63268,0},{6562,63264,0},{6563,63259,0},{6550,63263,0},{6550,63258,0}, {6553,63256,0},{6553,63248,0},{6560,63256,0},{6562,63251,0},{6558,63249,0}, {6557,63244,0},{6560,63241,0},{6555,63239,0},{6553,63234,0},{6555,63221,0}, {6558,63221,0},{6558,63218,0},{6553,63216,0},{6552,63218,0},{6548,63213,0}, {6550,63199,0},{6552,63196,0},{6550,63196,0},{6547,63186,0},{6547,63171,0}, {6542,63164,0},{6540,63149,0},{6542,63138,0},{6545,63136,0},{6545,63139,0}, {6547,63139,0},{6547,63133,0},{6550,63116,0},{6548,63089,0},{6550,63083,0}, {6553,63089,0},{6557,63098,0},{6560,63099,0},{6563,63104,0},{6560,63121,0}, {6552,63146,0},{6553,63156,0},{6553,63148,0},{6563,63129,0},{6565,63129,0}, {6565,63139,0},{6560,63156,0},{6570,63129,0},{6578,63123,0},{6580,63126,0}, {6570,63174,0},{6567,63181,0},{6560,63179,0},{6563,63186,0},{6563,63196,0}, {6565,63196,0},{6567,63208,0},{6567,63191,0},{6570,63184,0},{6572,63183,0}, {6573,63189,0},{6573,63201,0},{6575,63203,0},{6573,63213,0},{6575,63211,0}, {6578,63216,0},{6575,63184,0},{6577,63163,0},{6587,63149,0},{6592,63154,0}, {6590,63173,0},{6587,63176,0},{6588,63186,0},{6587,63189,0},{6583,63214,0}, {6590,63178,0},{6602,63154,0},{6605,63156,0},{6607,63159,0},{6602,63193,0}, {6598,63198,0},{6600,63196,0},{6603,63193,0},{6605,63183,0},{6612,63169,0}, {6613,63181,0},{6612,63191,0},{6610,63196,0},{6613,63189,0},{6615,63176,0}, {6618,63183,0},{6618,63188,0},{6620,63189,0},{6618,63201,0},{6615,63219,0}, {6612,63224,0},{6608,63226,0},{6610,63233,0},{6608,63238,0},{6603,63238,0}, {6597,63229,0},{6605,63243,0},{6600,63246,0},{6602,63249,0},{6602,63251,0}, {6593,63243,0},{6595,63249,0},{6600,63253,0},{6597,63256,0},{6592,63254,0}, {6605,63259,0},{6605,63268,0},{6603,63269,0},{6597,63279,0},{6583,63271,0}, {6597,63284,0},{6593,63288,0},{6593,63291,0},{6590,63291,0},{6592,63294,0}, {6583,63289,0},{6583,63293,0},{6590,63296,0},{6590,63301,0},{6598,63294,0}, {6603,63288,0},{6607,63289,0},{6608,63298,0},{6608,63288,0},{6608,63279,0}, {6612,63276,0},{6615,63253,0},{6623,63238,0},{6627,63256,0},{6625,63268,0}, {6625,63276,0},{6622,63278,0},{6623,63281,0},{6625,63281,0},{6627,63296,0}, {6627,63299,0},{6627,63286,0},{6627,63279,0},{6632,63289,0},{6633,63286,0}, {6632,63286,0},{6628,63276,0},{6630,63266,0},{6635,63269,0},{6637,63274,0}, {6637,63268,0},{6632,63254,0},{6633,63253,0},{6637,63256,0},{6630,63243,0}, {6632,63229,0},{6635,63218,0},{6637,63233,0},{6638,63234,0},{6642,63224,0}, {6643,63224,0},{6642,63234,0},{6643,63234,0},{6643,63246,0},{6642,63249,0}, {6643,63249,0},{6647,63241,0},{6647,63244,0},{6643,63263,0},{6642,63268,0}, {6647,63276,0},{6647,63281,0},{6642,63289,0},{6643,63294,0},{6647,63291,0}, {6643,63298,0},{6640,63301,0},{6638,63309,0},{6633,63311,0},{6633,63316,0}, {6632,63313,0},{6630,63314,0},{6627,63313,0},{6627,63324,0},{6628,63326,0}, {6627,63328,0},{6627,63339,0},{6623,63344,0},{6620,63338,0},{6622,63343,0}, {6618,63349,0},{6618,63361,0},{6607,63364,0},{6607,63371,0},{6605,63373,0}, {6602,63369,0},{6605,63374,0},{6608,63373,0},{6610,63381,0},{6605,63384,0}, {6605,63381,0},{6602,63383,0},{6602,63403,0},{6598,63404,0},{6595,63376,0}, {6593,63378,0},{6597,63389,0},{6595,63398,0},{6593,63393,0},{6592,63408,0}, {6588,63408,0},{6587,63404,0},{6587,63408,0},{6583,63406,0},{6578,63401,0}, {6577,63388,0},{6577,63396,0},{6573,63403,0},{6568,63391,0},{6568,63378,0}, {6577,63369,0},{6577,63364,0},{6577,63358,0},{6575,63366,0},{6572,63369,0}, {6568,63368,0},{6565,63371,0},{6563,63378,0},{6563,63396,0},{6555,63388,0}, {6558,63398,0},{6560,63404,0},{6552,63406,0},{6543,63388,0},{6548,63406,0}, {6543,63416,0},{6530,63416,0},{6517,63428,0},{6518,63429,0},{6527,63424,0}, {6533,63429,0},{6545,63426,0},{6545,63431,0},{6535,63439,0},{6533,63444,0}, {6545,63438,0},{6552,63438,0},{6558,63443,0},{6567,63463,0},{6568,63468,0}, {6567,63474,0},{6555,63471,0},{6555,63474,0},{6558,63474,0},{6558,63479,0}, {6553,63478,0},{6548,63486,0},{6550,63491,0},{6555,63493,0},{6557,63484,0}, {6560,63494,0},{6557,63496,0},{6552,63496,0},{6557,63498,0},{6565,63504,0}, {6567,63509,0},{6568,63504,0},{6572,63509,0},{6577,63509,0},{6582,63503,0}, {6585,63506,0},{6593,63496,0},{6602,63494,0},{6602,63491,0},{6608,63494,0}, {6610,63511,0},{6613,63518,0},{6612,63524,0},{6612,63526,0},{6608,63529,0}, {6608,63533,0},{6590,63549,0},{6588,63561,0},{6587,63566,0},{6575,63573,0}, {6573,63579,0},{6575,63581,0},{6577,63583,0},{6575,63586,0},{6575,63593,0}, {6573,63589,0},{6573,63594,0},{6583,63598,0},{6592,63591,0},{6595,63584,0}, {6598,63588,0},{6600,63594,0},{6607,63591,0},{6608,63598,0},{6608,63613,0}, {6607,63619,0},{6610,63623,0},{6607,63631,0},{6610,63626,0},{6617,63629,0}, {6618,63643,0},{6618,63644,0},{6615,63644,0},{6617,63648,0},{6620,63651,0}, {6618,63658,0},{6613,63656,0},{6617,63666,0},{6613,63673,0},{6612,63674,0}, {6608,63669,0},{6610,63676,0},{6608,63681,0},{6607,63681,0},{6602,63684,0}, {6597,63683,0},{6595,63703,0},{6587,63709,0},{6587,63716,0},{6573,63718,0}, {6570,63726,0},{6565,63729,0},{6567,63731,0},{6573,63724,0},{6585,63729,0}, {6592,63721,0},{6592,63719,0},{6593,63714,0},{6597,63714,0},{6602,63706,0}, {6615,63703,0},{6617,63706,0},{6617,63726,0},{6615,63728,0},{6615,63746,0}, {6612,63748,0},{6612,63754,0},{6603,63768,0},{6602,63768,0},{6592,63781,0}, {6597,63779,0},{6598,63786,0},{6598,63774,0},{6600,63793,0},{6598,63793,0}, {6595,63794,0},{6598,63794,0},{6605,63801,0},{6610,63801,0},{6613,63809,0}, {6617,63809,0},{6618,63813,0},{6620,63821,0},{6622,63821,0},{6620,63833,0}, {6618,63839,0},{6612,63843,0},{6612,63846,0},{6613,63846,0},{6615,63864,0}, {6613,63858,0},{6612,63861,0},{6613,63864,0},{6608,63876,0},{6617,63868,0}, {6620,63886,0},{6617,63873,0},{6618,63884,0},{6617,63888,0},{6613,63893,0}, {6617,63891,0},{6618,63888,0},{6627,63894,0},{6637,63884,0},{6642,63886,0}, {6647,63878,0},{6650,63879,0},{6650,63883,0},{6648,63884,0},{6650,63886,0}, {6652,63888,0},{6652,63893,0},{6648,63894,0},{6652,63898,0},{6648,63906,0}, {6648,63904,0},{6648,63911,0},{6652,63913,0},{6650,63914,0},{6653,63919,0}, {6652,63928,0},{6653,63934,0},{6648,63946,0},{6648,63943,0},{6642,63943,0}, {6642,63953,0},{6640,63953,0},{6640,63964,0},{6633,63968,0},{6628,63959,0}, {6627,63959,0},{6627,63968,0},{6622,63968,0},{6622,63983,0},{6615,63998,0}, {6618,64003,0},{6625,64003,0},{6628,64026,0},{6630,64026,0},{6633,64034,0}, {6638,64041,0},{6638,64048,0},{6637,64063,0},{6638,64081,0},{6627,64036,0}, {6622,64043,0},{6618,64041,0},{6615,64034,0},{6613,64021,0},{6612,64018,0}, {6610,64021,0},{6610,64029,0},{6607,64031,0},{6605,64028,0},{6605,64043,0}, {6603,64048,0},{6607,64058,0},{6607,64064,0},{6605,64069,0},{6600,64071,0}, {6600,64074,0},{6595,64076,0},{6588,64071,0},{6583,64056,0},{6580,64054,0}, {6575,64048,0},{6578,64058,0},{6575,64054,0},{6573,64051,0},{6572,64054,0}, {6578,64101,0},{6575,64101,0},{6572,64096,0},{6567,64109,0},{6565,64101,0}, {6553,64083,0},{6550,64079,0},{6565,64106,0},{6563,64118,0},{6565,64111,0}, {6560,64136,0},{6562,64149,0},{6558,64151,0},{6557,64149,0},{6557,64154,0}, {6552,64154,0},{6555,64166,0},{6552,64173,0},{6550,64176,0},{6547,64173,0}, {6537,64168,0},{6537,64153,0},{6533,64163,0},{6532,64163,0},{6532,64151,0}, {6527,64136,0},{6530,64166,0},{6530,64173,0},{6527,64179,0},{6522,64173,0}, {6522,64166,0},{6520,64133,0},{6520,64174,0},{6515,64173,0},{6513,64161,0}, {6513,64171,0},{6512,64168,0},{6512,64173,0},{6510,64174,0},{6517,64183,0}, {6517,64184,0},{6513,64184,0},{6507,64186,0},{6503,64181,0},{6503,64176,0}, {6500,64178,0},{6498,64169,0},{6498,64156,0},{6503,64151,0},{6508,64133,0}, {6503,64136,0},{6503,64113,0},{6502,64116,0},{6502,64144,0},{6497,64149,0}, {6495,64156,0},{6493,64166,0},{6492,64166,0},{6493,64131,0},{6492,64133,0}, {6490,64151,0},{6487,64159,0},{6482,64153,0},{6483,64139,0},{6480,64153,0}, {6478,64133,0},{6473,64138,0},{6472,64128,0},{6468,64111,0},{6470,64103,0}, {6478,64094,0},{6480,64084,0},{6478,64091,0},{6475,64089,0},{6473,64098,0}, {6468,64103,0},{6467,64109,0},{6465,64106,0},{6467,64098,0},{6467,64088,0}, {6463,64089,0},{6463,64096,0},{6460,64094,0},{6458,64078,0},{6457,64079,0}, {6455,64086,0},{6460,64101,0},{6460,64103,0},{6453,64089,0},{6440,64081,0}, {6438,64061,0},{6442,64079,0},{6443,64071,0},{6443,64064,0},{6440,64064,0}, {6432,64046,0},{6435,64046,0},{6430,64041,0},{6430,64048,0},{6428,64048,0}, {6425,64039,0},{6427,64034,0},{6430,64026,0},{6427,64014,0},{6430,64016,0}, {6428,64013,0},{6430,64011,0},{6433,64008,0},{6430,64008,0},{6430,64004,0}, {6435,64001,0},{6438,63996,0},{6440,63989,0},{6438,63996,0},{6435,63998,0}, {6433,63999,0},{6433,63996,0},{6432,63999,0},{6428,63998,0},{6427,63993,0}, {6427,63986,0},{6425,63993,0},{6423,63986,0},{6422,63968,0},{6418,63956,0}, {6420,63964,0},{6418,63964,0},{6413,63934,0},{6413,63933,0},{6412,63938,0}, {6405,63921,0},{6407,63919,0},{6405,63916,0},{6403,63918,0},{6402,63911,0}, {6403,63909,0},{6400,63901,0},{6398,63901,0},{6400,63906,0},{6390,63888,0}, {6390,63886,0},{6392,63889,0},{6387,63874,0},{6385,63864,0},{6387,63858,0}, {6385,63861,0},{6383,63858,0},{6380,63856,0},{6383,63856,0},{6387,63848,0}, {6380,63846,0},{6387,63843,0},{6378,63843,0},{6378,63839,0},{6380,63839,0}, {6388,63843,0},{6392,63839,0},{6387,63839,0},{6385,63833,0},{6378,63836,0}, {6378,63823,0},{6380,63819,0},{6380,63816,0},{6382,63816,0},{6378,63808,0}, {6375,63781,0},{6378,63781,0},{6375,63779,0},{6375,63776,0},{6373,63778,0}, {6370,63764,0},{6372,63764,0},{6375,63774,0},{6377,63764,0},{6375,63764,0}, {6375,63754,0},{6373,63756,0},{6373,63749,0},{6368,63746,0},{6367,63739,0}, {6365,63741,0},{6367,63748,0},{6365,63751,0},{6367,63756,0},{6363,63753,0}, {6362,63739,0},{6360,63741,0},{6360,63751,0},{6353,63743,0},{6347,63716,0}, {6347,63714,0},{6350,63714,0},{6353,63724,0},{6352,63716,0},{6353,63708,0}, {6355,63704,0},{6345,63709,0},{6347,63719,0},{6343,63693,0},{6338,63663,0}, {6342,63638,0},{6342,63629,0},{6343,63624,0},{6342,63621,0},{6343,63611,0}, {6347,63598,0},{6353,63563,0},{6355,63564,0},{6353,63559,0},{6355,63549,0}, {6353,63559,0},{6353,63531,0},{6355,63528,0},{6353,63529,0},{6353,63519,0}, {6360,63501,0},{6360,63506,0},{6362,63503,0},{6363,63503,0},{6362,63499,0}, {6362,63496,0},{6363,63499,0},{6367,63491,0},{6370,63489,0},{6370,63486,0}, {6363,63493,0},{6370,63481,0},{6375,63481,0},{6377,63488,0},{6373,63504,0}, {6378,63491,0},{6382,63496,0},{6383,63494,0},{6380,63491,0},{6375,63479,0}, {6370,63479,0},{6377,63459,0},{6375,63471,0},{6377,63476,0},{6377,63473,0}, {6378,63473,0},{6377,63468,0},{6378,63464,0},{6382,63469,0},{6387,63466,0}, {6387,63464,0},{6383,63468,0},{6380,63461,0},{6380,63453,0},{6378,63454,0}, {6382,63446,0},{6383,63429,0},{6387,63419,0},{6393,63418,0},{6395,63431,0}, {6395,63418,0},{6393,63409,0},{6392,63406,0},{6388,63416,0},{6388,63403,0}, {6387,63399,0},{6385,63399,0},{5305,55693,130},{5300,55683,2},{5297,55663,2}, {5293,55649,2},{5290,55644,2},{5287,55646,2},{5278,55654,2},{5275,55653,2}, {5268,55658,2},{5267,55663,2},{5263,55664,2},{5262,55671,2},{5257,55674,2}, {5250,55689,2},{5242,55689,2},{5237,55694,2},{5232,55703,2},{5230,55714,2}, {5228,55718,2},{5218,55723,2},{5213,55723,2},{5210,55731,2},{5197,55731,2}, {5193,55738,2},{5193,55744,2},{5190,55743,2},{5188,55746,2},{5185,55759,2}, {5188,55759,2},{5192,55754,2},{5197,55758,2},{5208,55764,2},{5208,55759,2}, {5212,55759,2},{5215,55768,2},{5210,55769,2},{5210,55771,2},{5213,55781,2}, {5213,55788,2},{5207,55784,2},{5200,55774,2},{5197,55779,2},{5192,55778,2}, {5192,55783,2},{5200,55784,2},{5203,55794,2},{5203,55803,2},{5195,55806,2}, {5185,55813,2},{5180,55814,2},{5162,55806,2},{5153,55809,2},{5147,55808,2}, {5143,55811,2},{5145,55816,2},{5152,55824,2},{5158,55823,2},{5163,55828,2}, {5167,55828,2},{5167,55836,2},{5172,55846,2},{5173,55851,2},{5173,55854,2}, {5168,55853,2},{5167,55859,2},{5160,55856,2},{5160,55864,2},{5155,55863,2}, {5145,55854,2},{5143,55854,2},{5142,55849,2},{5135,55844,2},{5132,55846,2}, {5127,55838,2},{5118,55838,2},{5118,55841,2},{5122,55848,2},{5132,55859,2}, {5135,55859,2},{5137,55864,2},{5133,55866,2},{5135,55871,2},{5133,55876,2}, {5125,55868,2},{5123,55861,2},{5117,55853,2},{5110,55853,2},{5108,55844,2}, {5105,55841,2},{5098,55846,2},{5088,55838,2},{5082,55843,2},{5078,55839,2}, {5070,55838,2},{5063,55839,2},{5060,55843,2},{5057,55839,2},{5042,55844,2}, {5038,55859,2},{5042,55874,2},{5047,55881,2},{5055,55874,2},{5058,55878,2}, {5065,55876,2},{5067,55881,2},{5070,55879,2},{5073,55883,2},{5072,55884,2}, {5067,55886,2},{5063,55894,2},{5062,55906,2},{5067,55901,2},{5072,55898,2}, {5075,55901,2},{5102,55898,2},{5108,55894,2},{5112,55896,2},{5112,55904,2}, {5117,55901,2},{5120,55903,2},{5120,55909,2},{5122,55911,2},{5133,55899,2}, {5133,55894,2},{5138,55891,2},{5138,55888,2},{5150,55878,2},{5155,55881,2}, {5175,55858,2},{5178,55868,2},{5182,55866,2},{5185,55858,2},{5187,55851,2}, {5187,55849,2},{5193,55854,2},{5197,55853,2},{5202,55849,2},{5207,55839,2}, {5210,55839,2},{5215,55834,2},{5218,55833,2},{5223,55828,2},{5223,55834,2}, {5227,55836,2},{5232,55833,2},{5233,55829,2},{5235,55834,2},{5238,55831,2}, {5242,55833,2},{5243,55829,2},{5243,55826,2},{5248,55826,2},{5263,55816,2}, {5268,55816,2},{5277,55804,2},{5287,55796,2},{5290,55798,2},{5295,55793,2}, {5297,55793,2},{5295,55798,2},{5298,55798,2},{5302,55803,2},{5305,55794,2}, {5312,55794,2},{5315,55791,2},{5317,55794,2},{5327,55779,2},{5330,55778,2}, {5337,55776,2},{5342,55768,2},{5347,55769,2},{5355,55763,2},{5362,55753,2}, {5365,55754,2},{5372,55754,2},{5377,55748,2},{5383,55746,2},{5385,55741,2}, {5390,55743,2},{5392,55739,2},{5397,55738,2},{5398,55743,2},{5400,55758,2}, {5403,55763,2},{5408,55763,2},{5402,55753,2},{5403,55746,2},{5402,55741,2}, {5398,55733,2},{5397,55731,2},{5393,55733,2},{5392,55728,2},{5392,55726,2}, {5397,55723,2},{5400,55713,2},{5403,55716,2},{5405,55721,2},{5408,55718,2}, {5418,55721,2},{5420,55729,2},{5420,55736,2},{5423,55741,2},{5425,55749,2}, {5432,55756,2},{5432,55751,2},{5430,55744,2},{5432,55738,2},{5435,55746,2}, {5440,55739,2},{5442,55734,2},{5440,55733,2},{5435,55733,2},{5430,55726,2}, {5425,55721,2},{5422,55721,2},{5418,55714,2},{5408,55713,2},{5405,55708,2}, {5398,55704,2},{5397,55709,2},{5390,55711,2},{5387,55719,2},{5385,55726,2}, {5378,55733,2},{5373,55748,2},{5370,55746,2},{5368,55739,2},{5370,55734,2}, {5377,55729,2},{5383,55711,2},{5387,55693,2},{5383,55668,2},{5388,55664,2}, {5390,55658,2},{5388,55651,2},{5387,55641,2},{5385,55639,2},{5382,55641,2}, {5377,55636,2},{5370,55639,2},{5360,55631,2},{5358,55634,2},{5348,55628,2}, {5347,55629,2},{5343,55628,2},{5338,55618,2},{5328,55614,2},{5327,55616,2}, {5323,55613,2},{5318,55611,2},{5318,55616,2},{5313,55623,2},{5312,55628,2}, {5310,55629,2},{5307,55629,2},{5303,55634,2},{5307,55643,2},{5303,55651,2}, {5303,55654,2},{5308,55656,2},{5308,55658,2},{5307,55668,2},{5305,55683,2}, {5305,55689,2},{5305,55693,2},{5303,55691,2},{5425,55523,130},{5422,55526,2}, {5420,55536,2},{5417,55536,2},{5417,55541,2},{5418,55541,2},{5420,55544,2}, {5420,55553,2},{5418,55556,2},{5412,55538,2},{5410,55526,2},{5405,55519,2}, {5407,55516,2},{5405,55514,2},{5403,55511,2},{5400,55511,2},{5398,55516,2}, {5400,55523,2},{5398,55524,2},{5397,55523,2},{5395,55531,2},{5395,55533,2}, {5392,55529,2},{5390,55524,2},{5387,55518,2},{5380,55524,2},{5380,55528,2}, {5383,55528,2},{5387,55533,2},{5387,55541,2},{5392,55549,2},{5392,55556,2}, {5402,55563,2},{5405,55571,2},{5405,55576,2},{5402,55574,2},{5400,55578,2}, {5395,55573,2},{5393,55566,2},{5387,55564,2},{5385,55566,2},{5378,55563,2}, {5378,55556,2},{5385,55549,2},{5382,55543,2},{5378,55543,2},{5377,55546,2}, {5373,55543,2},{5375,55538,2},{5373,55534,2},{5370,55534,2},{5367,55523,2}, {5368,55516,2},{5365,55518,2},{5363,55511,2},{5362,55509,2},{5358,55516,2}, {5358,55518,2},{5362,55518,2},{5362,55519,2},{5357,55529,2},{5355,55531,2}, {5355,55534,2},{5350,55539,2},{5343,55539,2},{5342,55548,2},{5335,55544,2}, {5335,55538,2},{5333,55538,2},{5332,55544,2},{5327,55543,2},{5322,55551,2}, {5325,55559,2},{5330,55559,2},{5332,55561,2},{5330,55568,2},{5330,55583,2}, {5332,55586,2},{5337,55593,2},{5335,55599,2},{5320,55594,2},{5318,55599,2}, {5315,55603,2},{5315,55594,2},{5313,55591,2},{5310,55594,2},{5305,55598,2}, {5303,55583,2},{5305,55581,2},{5308,55579,2},{5308,55584,2},{5310,55586,2}, {5310,55578,2},{5313,55579,2},{5318,55576,2},{5320,55573,2},{5320,55571,2}, {5317,55569,2},{5315,55574,2},{5313,55573,2},{5313,55568,2},{5312,55563,2}, {5313,55563,2},{5317,55561,2},{5313,55558,2},{5312,55556,2},{5308,55544,2}, {5310,55533,2},{5313,55528,2},{5315,55506,2},{5323,55498,2},{5327,55498,2}, {5330,55494,2},{5330,55493,2},{5327,55488,2},{5330,55481,2},{5333,55474,2}, {5335,55474,2},{5335,55466,2},{5340,55456,2},{5340,55451,2},{5343,55448,2}, {5345,55443,2},{5348,55444,2},{5350,55451,2},{5353,55454,2},{5352,55458,2}, {5353,55463,2},{5348,55468,2},{5350,55471,2},{5347,55474,2},{5347,55476,2}, {5353,55479,2},{5353,55473,2},{5355,55469,2},{5357,55469,2},{5358,55471,2}, {5360,55478,2},{5358,55478,2},{5355,55486,2},{5357,55489,2},{5360,55491,2}, {5362,55496,2},{5360,55498,2},{5362,55503,2},{5358,55504,2},{5360,55508,2}, {5365,55508,2},{5372,55503,2},{5377,55498,2},{5378,55491,2},{5382,55489,2}, {5388,55514,2},{5393,55519,2},{5390,55513,2},{5390,55508,2},{5388,55504,2}, {5390,55499,2},{5387,55493,2},{5390,55489,2},{5390,55484,2},{5393,55484,2}, {5397,55488,2},{5397,55493,2},{5393,55501,2},{5392,55503,2},{5395,55511,2}, {5397,55511,2},{5397,55508,2},{5398,55504,2},{5402,55503,2},{5408,55509,2}, {5420,55498,2},{5423,55503,2},{5420,55509,2},{5418,55513,2},{5420,55513,2}, {5425,55518,2},{5425,55523,2},{6088,54033,130},{6093,54056,2},{6092,54061,2}, {6090,54064,2},{6092,54078,2},{6093,54081,2},{6095,54096,2},{6102,54114,2}, {6100,54119,2},{6098,54129,2},{6097,54133,2},{6098,54153,2},{6100,54163,2}, {6110,54174,2},{6115,54171,2},{6117,54168,2},{6117,54161,2},{6120,54169,2}, {6127,54164,2},{6132,54169,2},{6135,54178,2},{6133,54183,2},{6137,54184,2}, {6140,54196,2},{6142,54194,2},{6145,54204,2},{6147,54213,2},{6145,54226,2}, {6148,54223,2},{6148,54224,2},{6147,54234,2},{6145,54234,2},{6143,54238,2}, {6140,54234,2},{6138,54243,2},{6142,54249,2},{6143,54248,2},{6145,54268,2}, {6145,54271,2},{6147,54268,2},{6147,54269,2},{6148,54279,2},{6162,54316,2}, {6165,54314,2},{6167,54321,2},{6170,54321,2},{6187,54354,2},{6188,54354,2}, {6188,54353,2},{6195,54376,2},{6197,54376,2},{6205,54388,2},{6207,54389,2}, {6208,54388,2},{6203,54364,2},{6205,54364,2},{6212,54386,2},{6213,54386,2}, {6212,54378,2},{6213,54378,2},{6217,54393,2},{6223,54409,2},{6227,54414,2}, {6225,54403,2},{6227,54404,2},{6228,54409,2},{6232,54426,2},{6233,54426,2}, {6233,54423,2},{6238,54429,2},{6240,54446,2},{6238,54448,2},{6237,54458,2}, {6240,54466,2},{6240,54473,2},{6238,54473,2},{6235,54471,2},{6235,54473,2}, {6237,54483,2},{6237,54504,2},{6238,54514,2},{6240,54513,2},{6238,54488,2}, {6238,54489,2},{6243,54504,2},{6243,54501,2},{6245,54504,2},{6245,54519,2}, {6257,54551,2},{6257,54544,2},{6248,54519,2},{6250,54513,2},{6252,54514,2}, {6252,54513,2},{6250,54501,2},{6243,54471,2},{6243,54468,2},{6247,54471,2}, {6253,54504,2},{6253,54494,2},{6250,54484,2},{6248,54473,2},{6252,54468,2}, {6253,54458,2},{6255,54464,2},{6253,54489,2},{6257,54499,2},{6257,54514,2}, {6253,54518,2},{6257,54524,2},{6255,54534,2},{6260,54554,2},{6265,54559,2}, {6265,54566,2},{6267,54566,2},{6268,54493,2},{6275,54499,2},{6275,54508,2}, {6273,54511,2},{6273,54518,2},{6273,54528,2},{6275,54536,2},{6272,54561,2}, {6275,54553,2},{6277,54548,2},{6278,54524,2},{6277,54496,2},{6280,54489,2}, {6277,54486,2},{6275,54493,2},{6268,54484,2},{6267,54488,2},{6265,54486,2}, {6267,54471,2},{6267,54463,2},{6267,54456,2},{6265,54453,2},{6265,54441,2}, {6262,54424,2},{6262,54408,2},{6260,54406,2},{6257,54408,2},{6248,54383,2}, {6238,54374,2},{6237,54369,2},{6238,54369,2},{6248,54378,2},{6255,54388,2}, {6260,54389,2},{6263,54398,2},{6275,54441,2},{6277,54476,2},{6277,54479,2}, {6280,54474,2},{6280,54461,2},{6282,54464,2},{6283,54473,2},{6282,54484,2}, {6283,54489,2},{6282,54509,2},{6282,54541,2},{6280,54549,2},{6280,54559,2}, {6275,54574,2},{6273,54604,2},{6268,54608,2},{6270,54616,2},{6263,54608,2}, {6265,54619,2},{6262,54608,2},{6258,54604,2},{6258,54608,2},{6270,54638,2}, {6273,54636,2},{6277,54646,2},{6280,54646,2},{6272,54626,2},{6272,54619,2}, {6280,54639,2},{6283,54628,2},{6283,54614,2},{6287,54609,2},{6285,54599,2}, {6287,54586,2},{6288,54573,2},{6290,54574,2},{6292,54566,2},{6292,54541,2}, {6295,54544,2},{6295,54541,2},{6293,54526,2},{6295,54491,2},{6292,54466,2}, {6285,54433,2},{6275,54403,2},{6272,54399,2},{6270,54393,2},{6267,54389,2}, {6257,54384,2},{6252,54374,2},{6238,54364,2},{6232,54343,2},{6228,54339,2}, {6222,54324,2},{6217,54316,2},{6215,54309,2},{6207,54294,2},{6205,54276,2}, {6207,54263,2},{6203,54246,2},{6203,54244,2},{6207,54246,2},{6207,54243,2}, {6203,54234,2},{6202,54234,2},{6203,54224,2},{6203,54219,2},{6200,54216,2}, {6198,54204,2},{6203,54194,2},{6203,54191,2},{6202,54188,2},{6200,54181,2}, {6203,54176,2},{6203,54181,2},{6205,54181,2},{6208,54163,2},{6210,54161,2}, {6213,54156,2},{6215,54161,2},{6217,54151,2},{6220,54148,2},{6228,54129,2}, {6227,54124,2},{6228,54121,2},{6228,54123,2},{6232,54116,2},{6232,54111,2}, {6235,54113,2},{6237,54111,2},{6237,54114,2},{6242,54109,2},{6242,54103,2}, {6238,54099,2},{6237,54093,2},{6237,54079,2},{6235,54074,2},{6237,54071,2}, {6237,54064,2},{6238,54064,2},{6242,54059,2},{6243,54056,2},{6243,54049,2}, {6247,54048,2},{6248,54031,2},{6252,54021,2},{6253,54016,2},{6255,54018,2}, {6258,54013,2},{6262,54006,2},{6263,53991,2},{6263,53976,2},{6267,53968,2}, {6265,53959,2},{6267,53959,2},{6268,53966,2},{6270,53968,2},{6270,53961,2}, {6272,53959,2},{6278,53943,2},{6277,53936,2},{6270,53931,2},{6267,53941,2}, {6263,53943,2},{6262,53954,2},{6255,53954,2},{6257,53961,2},{6255,53966,2}, {6253,53966,2},{6253,53959,2},{6247,53968,2},{6248,53976,2},{6247,53984,2}, {6248,53999,2},{6248,54011,2},{6242,54004,2},{6233,54006,2},{6232,54013,2}, {6225,54003,2},{6223,54003,2},{6225,54019,2},{6222,54019,2},{6218,54029,2}, {6217,54033,2},{6215,54029,2},{6215,54033,2},{6212,54029,2},{6208,54031,2}, {6200,54058,2},{6193,54061,2},{6193,54071,2},{6188,54068,2},{6187,54073,2}, {6185,54074,2},{6183,54063,2},{6183,54064,2},{6183,54068,2},{6180,54061,2}, {6178,54056,2},{6177,54054,2},{6178,54051,2},{6175,54043,2},{6175,54031,2}, {6173,54029,2},{6173,54014,2},{6177,54016,2},{6178,54003,2},{6175,53981,2}, {6172,53978,2},{6170,53984,2},{6167,53981,2},{6167,53976,2},{6165,53969,2}, {6160,53971,2},{6160,53966,2},{6155,53966,2},{6152,53959,2},{6150,53963,2}, {6147,53961,2},{6145,53964,2},{6143,53964,2},{6140,53949,2},{6140,53946,2}, {6143,53943,2},{6140,53941,2},{6140,53934,2},{6137,53929,2},{6137,53934,2}, {6135,53936,2},{6135,53944,2},{6132,53946,2},{6132,53951,2},{6127,53948,2}, {6127,53941,2},{6123,53934,2},{6122,53939,2},{6118,53943,2},{6117,53939,2}, {6123,53926,2},{6125,53918,2},{6127,53916,2},{6127,53893,2},{6132,53883,2}, {6133,53876,2},{6132,53861,2},{6130,53856,2},{6122,53866,2},{6122,53858,2}, {6118,53844,2},{6115,53828,2},{6122,53801,2},{6128,53784,2},{6130,53774,2}, {6130,53768,2},{6125,53788,2},{6120,53791,2},{6117,53799,2},{6107,53813,2}, {6105,53829,2},{6103,53861,2},{6102,53866,2},{6102,53873,2},{6103,53883,2}, {6100,53888,2},{6098,53886,2},{6097,53893,2},{6093,53898,2},{6088,53919,2}, {6088,53926,2},{6083,53941,2},{6087,53963,2},{6083,53983,2},{6083,54008,2}, {6087,54019,2},{6088,54034,2},{5870,54408,130},{5873,54408,2},{5875,54403,2}, {5878,54409,2},{5880,54418,2},{5880,54419,2},{5877,54423,2},{5872,54418,2}, {5870,54421,2},{5873,54431,2},{5878,54438,2},{5880,54444,2},{5883,54453,2}, {5888,54454,2},{5895,54466,2},{5902,54469,2},{5910,54481,2},{5912,54498,2}, {5922,54519,2},{5925,54523,2},{5928,54531,2},{5933,54539,2},{5935,54553,2}, {5940,54549,2},{5942,54561,2},{5942,54554,2},{5943,54553,2},{5950,54563,2}, {5953,54574,2},{5960,54586,2},{5960,54621,2},{5955,54623,2},{5952,54629,2}, {5948,54629,2},{5947,54633,2},{5948,54636,2},{5952,54643,2},{5952,54654,2}, {5948,54661,2},{5943,54649,2},{5940,54648,2},{5938,54641,2},{5937,54643,2}, {5938,54664,2},{5942,54678,2},{5943,54678,2},{5947,54691,2},{5943,54698,2}, {5943,54701,2},{5948,54708,2},{5945,54713,2},{5947,54723,2},{5945,54724,2}, {5943,54741,2},{5940,54753,2},{5942,54781,2},{5935,54798,2},{5932,54814,2}, {5933,54841,2},{5935,54846,2},{5932,54846,2},{5932,54848,2},{5932,54854,2}, {5932,54873,2},{5930,54869,2},{5928,54873,2},{5927,54901,2},{5930,54928,2}, {5927,54934,2},{5925,54891,2},{5925,54856,2},{5927,54856,2},{5927,54846,2}, {5928,54844,2},{5928,54824,2},{5930,54821,2},{5928,54791,2},{5932,54788,2}, {5930,54783,2},{5928,54783,2},{5928,54779,2},{5930,54773,2},{5932,54776,2}, {5933,54773,2},{5933,54761,2},{5925,54758,2},{5923,54753,2},{5920,54754,2}, {5922,54744,2},{5920,54733,2},{5915,54718,2},{5913,54676,2},{5912,54673,2}, {5912,54661,2},{5910,54654,2},{5910,54648,2},{5913,54644,2},{5908,54634,2}, {5908,54626,2},{5908,54618,2},{5913,54613,2},{5913,54608,2},{5908,54598,2}, {5905,54574,2},{5905,54561,2},{5902,54548,2},{5895,54531,2},{5890,54514,2}, {5885,54506,2},{5883,54504,2},{5880,54496,2},{5873,54491,2},{5868,54488,2}, {5867,54489,2},{5870,54494,2},{5868,54503,2},{5865,54498,2},{5862,54499,2}, {5860,54494,2},{5865,54478,2},{5860,54473,2},{5863,54459,2},{5862,54458,2}, {5855,54461,2},{5847,54453,2},{5863,54453,2},{5863,54446,2},{5865,54444,2}, {5863,54441,2},{5860,54439,2},{5858,54434,2},{5850,54429,2},{5855,54424,2}, {5857,54426,2},{5860,54424,2},{5862,54428,2},{5862,54421,2},{5865,54419,2}, {5867,54421,2},{5870,54408,2},{4327,57631,130},{4327,57621,2},{4318,57601,2}, {4320,57594,2},{4320,57579,2},{4325,57566,2},{4327,57561,2},{4332,57558,2}, {4335,57559,2},{4348,57574,2},{4357,57578,2},{4360,57584,2},{4365,57589,2}, {4365,57599,2},{4367,57603,2},{4378,57623,2},{4383,57626,2},{4383,57633,2}, {4387,57641,2},{4387,57663,2},{4392,57676,2},{4390,57688,2},{4395,57709,2}, {4398,57744,2},{4402,57756,2},{4400,57768,2},{4402,57768,2},{4402,57763,2}, {4403,57766,2},{4403,57769,2},{4403,57776,2},{4402,57783,2},{4400,57783,2}, {4400,57778,2},{4395,57788,2},{4397,57803,2},{4395,57808,2},{4397,57811,2}, {4395,57809,2},{4395,57803,2},{4392,57808,2},{4395,57819,2},{4388,57813,2}, {4385,57823,2},{4393,57844,2},{4395,57851,2},{4395,57849,2},{4395,57843,2}, {4395,57836,2},{4393,57833,2},{4395,57831,2},{4398,57836,2},{4400,57834,2}, {4403,57844,2},{4412,57851,2},{4405,57838,2},{4405,57826,2},{4403,57823,2}, {4412,57828,2},{4418,57829,2},{4415,57818,2},{4415,57811,2},{4412,57806,2}, {4410,57809,2},{4408,57804,2},{4410,57803,2},{4413,57804,2},{4413,57803,2}, {4415,57806,2},{4415,57804,2},{4415,57794,2},{4408,57779,2},{4408,57778,2}, {4412,57781,2},{4413,57788,2},{4418,57803,2},{4417,57804,2},{4418,57813,2}, {4417,57818,2},{4418,57823,2},{4422,57834,2},{4420,57836,2},{4417,57831,2}, {4413,57831,2},{4420,57843,2},{4418,57848,2},{4413,57836,2},{4410,57829,2}, {4408,57833,2},{4407,57831,2},{4408,57839,2},{4412,57846,2},{4422,57868,2}, {4423,57873,2},{4422,57874,2},{4423,57886,2},{4425,57888,2},{4423,57889,2}, {4425,57894,2},{4432,57906,2},{4433,57918,2},{4437,57928,2},{4437,57933,2}, {4440,57941,2},{4450,57954,2},{4257,57273,130},{4255,57271,2},{4252,57276,2}, {4250,57288,2},{4248,57289,2},{4250,57294,2},{4245,57293,2},{4238,57296,2}, {4233,57293,2},{4232,57288,2},{4230,57273,2},{4232,57258,2},{4235,57241,2}, {4232,57236,2},{4232,57231,2},{4225,57226,2},{4207,57224,2},{4205,57228,2}, {4198,57246,2},{4198,57253,2},{4203,57266,2},{4203,57273,2},{4198,57281,2}, {4192,57286,2},{4203,57288,2},{4210,57294,2},{4225,57329,2},{4227,57344,2}, {4228,57344,2},{4232,57351,2},{4230,57349,2},{4225,57346,2},{4227,57351,2}, {4235,57354,2},{4240,57358,2},{4257,57383,2},{4265,57403,2},{4267,57423,2}, {4267,57444,2},{4265,57453,2},{4257,57484,2},{4257,57501,2},{4253,57524,2}, {4255,57531,2},{4257,57523,2},{4258,57506,2},{4260,57501,2},{4260,57493,2}, {4262,57491,2},{4265,57493,2},{4268,57499,2},{4267,57503,2},{4272,57504,2}, {4278,57516,2},{4282,57553,2},{4287,57564,2},{4285,57573,2},{4287,57578,2}, {4285,57588,2},{4288,57591,2},{4287,57601,2},{4288,57608,2},{4288,57619,2}, {4287,57624,2},{4283,57626,2},{4287,57628,2},{4288,57641,2},{4292,57644,2}, {4295,57643,2},{4297,57638,2},{4300,57633,2},{4305,57633,2},{4308,57628,2}, {4310,57629,2},{4308,57631,2},{4310,57629,2},{4307,57644,2},{4305,57648,2}, {4303,57648,2},{4300,57643,2},{4298,57643,2},{4295,57646,2},{4283,57649,2}, {4278,57649,2},{4272,57633,2},{4257,57621,2},{4257,57616,2},{4248,57599,2}, {4237,57583,2},{4227,57559,2},{4213,57524,2},{4212,57523,2},{4215,57524,2}, {4215,57529,2},{4217,57526,2},{4208,57514,2},{4197,57483,2},{4198,57484,2}, {4183,57433,2},{4173,57403,2},{4158,57379,2},{4150,57364,2},{4150,57353,2}, {4148,57351,2},{4150,57341,2},{4152,57334,2},{4150,57324,2},{4145,57311,2}, {4143,57299,2},{4138,57289,2},{4143,57278,2},{4150,57268,2},{4147,57269,2}, {4143,57274,2},{4147,57266,2},{4145,57259,2},{4147,57258,2},{4148,57256,2}, {4143,57244,2},{4145,57239,2},{4143,57238,2},{4145,57236,2},{4147,57231,2}, {4147,57239,2},{4148,57241,2},{4152,57266,2},{4155,57266,2},{4155,57256,2}, {4158,57253,2},{4155,57251,2},{4153,57248,2},{4153,57239,2},{4155,57236,2}, {4160,57229,2},{4165,57213,2},{4172,57204,2},{4170,57203,2},{4172,57191,2}, {4175,57189,2},{4173,57189,2},{4177,57191,2},{4177,57194,2},{4182,57194,2}, {4188,57201,2},{4188,57203,2},{4193,57204,2},{4195,57206,2},{4193,57211,2}, {4198,57209,2},{4198,57214,2},{4203,57216,2},{4202,57218,2},{4208,57216,2}, {4223,57221,2},{4228,57224,2},{4235,57234,2},{4237,57243,2},{4240,57248,2}, {4245,57249,2},{4250,57248,2},{4253,57249,2},{4257,57253,2},{4257,57258,2}, {4260,57258,2},{4262,57254,2},{4265,57254,2},{4265,57259,2},{4270,57266,2}, {4268,57273,2},{4265,57273,2},{4262,57274,2},{4260,57273,2},{4257,57274,2}, {4255,57271,2},{4802,56578,130},{4803,56584,2},{4805,56586,2},{4807,56594,2}, {4808,56594,2},{4808,56591,2},{4810,56593,2},{4812,56603,2},{4813,56603,2}, {4815,56604,2},{4818,56608,2},{4820,56606,2},{4820,56609,2},{4825,56609,2}, {4830,56613,2},{4832,56616,2},{4838,56611,2},{4845,56616,2},{4848,56623,2}, {4858,56659,2},{4855,56661,2},{4848,56653,2},{4838,56649,2},{4838,56646,2}, {4832,56643,2},{4833,56646,2},{4837,56663,2},{4850,56666,2},{4852,56673,2}, {4862,56674,2},{4865,56683,2},{4870,56681,2},{4872,56684,2},{4873,56681,2}, {4877,56681,2},{4885,56688,2},{4883,56699,2},{4877,56704,2},{4868,56701,2}, {4855,56684,2},{4855,56681,2},{4848,56678,2},{4848,56679,2},{4843,56679,2}, {4843,56684,2},{4847,56684,2},{4847,56688,2},{4852,56688,2},{4853,56689,2}, {4857,56693,2},{4853,56696,2},{4857,56701,2},{4858,56704,2},{4865,56703,2}, {4860,56708,2},{4863,56713,2},{4860,56711,2},{4860,56716,2},{4872,56726,2}, {4877,56724,2},{4880,56726,2},{4883,56719,2},{4887,56711,2},{4888,56711,2}, {4893,56713,2},{4898,56709,2},{4900,56711,2},{4897,56713,2},{4897,56718,2}, {4900,56724,2},{4900,56729,2},{4902,56733,2},{4898,56733,2},{4895,56741,2}, {4892,56751,2},{4893,56758,2},{4890,56758,2},{4890,56768,2},{4887,56771,2}, {4888,56778,2},{4883,56781,2},{4885,56791,2},{4883,56794,2},{4880,56798,2}, {4880,56806,2},{4877,56808,2},{4877,56816,2},{4878,56818,2},{4877,56824,2}, {4878,56831,2},{4877,56836,2},{4880,56836,2},{4882,56838,2},{4875,56851,2}, {4882,56866,2},{4880,56868,2},{4878,56874,2},{4875,56873,2},{4873,56881,2}, {4875,56883,2},{4878,56893,2},{4875,56893,2},{4873,56898,2},{4872,56896,2}, {4867,56901,2},{4865,56904,2},{4862,56903,2},{4858,56909,2},{4843,56914,2}, {4840,56918,2},{4833,56918,2},{4817,56928,2},{4808,56936,2},{4807,56943,2}, {4803,56943,2},{4803,56946,2},{4800,56949,2},{4797,56954,2},{4793,56969,2}, {4792,56993,2},{4797,57009,2},{4797,57036,2},{4795,57044,2},{4795,57046,2}, {4797,57049,2},{4793,57053,2},{4792,57051,2},{4785,57043,2},{4783,57043,2}, {4780,57048,2},{4773,57043,2},{4772,57038,2},{4768,57039,2},{4765,57036,2}, {4762,57036,2},{4762,57033,2},{4757,57041,2},{4753,57041,2},{4752,57044,2}, {4748,57054,2},{4743,57064,2},{4738,57066,2},{4737,57069,2},{4737,57073,2}, {4730,57078,2},{4725,57073,2},{4718,57066,2},{4717,57068,2},{4715,57064,2}, {4710,57066,2},{4705,57059,2},{4698,57058,2},{4695,57064,2},{4697,57069,2}, {4690,57074,2},{4690,57078,2},{4693,57078,2},{4695,57079,2},{4693,57084,2}, {4693,57093,2},{4688,57101,2},{4683,57096,2},{4685,57091,2},{4682,57081,2}, {4675,57081,2},{4673,57079,2},{4670,57081,2},{4670,57083,2},{4670,57084,2}, {4675,57089,2},{4675,57091,2},{4670,57094,2},{4667,57089,2},{4657,57078,2}, {4655,57078,2},{4652,57083,2},{4648,57084,2},{4648,57089,2},{4650,57089,2}, {4653,57094,2},{4652,57106,2},{4653,57111,2},{4655,57118,2},{4653,57126,2}, {4650,57129,2},{4648,57128,2},{4637,57124,2},{4633,57131,2},{4632,57148,2}, {4630,57149,2},{4630,57159,2},{4627,57166,2},{4628,57176,2},{4625,57181,2}, {4625,57189,2},{4620,57216,2},{4620,57219,2},{4618,57223,2},{4617,57238,2}, {4618,57241,2},{4618,57248,2},{4618,57254,2},{4620,57266,2},{4622,57273,2}, {4618,57268,2},{4617,57269,2},{4618,57284,2},{4620,57291,2},{4618,57293,2}, {4618,57296,2},{4618,57304,2},{4618,57298,2},{4617,57299,2},{4615,57306,2}, {4615,57308,2},{4615,57314,2},{4612,57323,2},{4613,57326,2},{4610,57339,2}, {4610,57364,2},{4607,57358,2},{4602,57359,2},{4607,57361,2},{4608,57369,2}, {4612,57371,2},{4612,57374,2},{4610,57376,2},{4608,57383,2},{4607,57381,2}, {4602,57366,2},{4603,57378,2},{4603,57386,2},{4602,57371,2},{4600,57379,2}, {4595,57369,2},{4602,57388,2},{4598,57386,2},{4600,57391,2},{4595,57409,2}, {4597,57416,2},{4600,57419,2},{4600,57418,2},{4598,57411,2},{4602,57414,2}, {4602,57419,2},{4598,57421,2},{4593,57418,2},{4593,57421,2},{4595,57424,2}, {4595,57431,2},{4593,57443,2},{4595,57446,2},{4593,57449,2},{4595,57456,2}, {4590,57456,2},{4593,57459,2},{4590,57461,2},{4587,57463,2},{4585,57469,2}, {4583,57464,2},{4582,57464,2},{4582,57469,2},{4578,57473,2},{4573,57473,2}, {4570,57478,2},{4568,57476,2},{4568,57478,2},{4565,57478,2},{4563,57484,2}, {4560,57484,2},{4557,57486,2},{4558,57494,2},{4563,57493,2},{4560,57496,2}, {4557,57498,2},{4547,57496,2},{4543,57501,2},{4540,57499,2},{4538,57501,2}, {4540,57503,2},{4543,57503,2},{4543,57506,2},{4538,57504,2},{4537,57508,2}, {4537,57513,2},{4533,57513,2},{4535,57519,2},{4537,57516,2},{4540,57519,2}, {4540,57528,2},{4532,57533,2},{4523,57523,2},{4518,57524,2},{4522,57529,2}, {4518,57534,2},{4515,57538,2},{4512,57534,2},{4512,57526,2},{4508,57531,2}, {4507,57536,2},{4503,57536,2},{4502,57543,2},{4498,57543,2},{4495,57544,2}, {4495,57548,2},{4493,57553,2},{4490,57553,2},{4490,57556,2},{4487,57554,2}, {4485,57559,2},{4482,57558,2},{4480,57561,2},{4482,57563,2},{4483,57566,2}, {4487,57563,2},{4488,57568,2},{4483,57568,2},{4478,57564,2},{4477,57569,2}, {4475,57569,2},{4477,57548,2},{4480,57548,2},{4482,57546,2},{4482,57543,2}, {4485,57544,2},{4487,57539,2},{4485,57534,2},{4482,57529,2},{4482,57526,2}, {4475,57524,2},{4473,57531,2},{4468,57538,2},{4463,57536,2},{4455,57536,2}, {4447,57528,2},{4452,57513,2},{4455,57493,2},{4460,57488,2},{4462,57478,2}, {4473,57471,2},{4472,57461,2},{4470,57456,2},{4460,57441,2},{4475,57448,2}, {4478,57446,2},{4482,57438,2},{4478,57431,2},{4475,57424,2},{4475,57423,2}, {4480,57424,2},{4483,57434,2},{4487,57436,2},{4492,57436,2},{4497,57441,2}, {4497,57433,2},{4495,57431,2},{4493,57433,2},{4490,57429,2},{4493,57426,2}, {4492,57421,2},{4497,57424,2},{4497,57416,2},{4500,57418,2},{4502,57416,2}, {4502,57414,2},{4500,57413,2},{4500,57411,2},{4510,57409,2},{4513,57404,2}, {4517,57403,2},{4522,57408,2},{4525,57408,2},{4523,57393,2},{4525,57374,2}, {4527,57373,2},{4527,57366,2},{4525,57366,2},{4522,57364,2},{4520,57366,2}, {4520,57371,2},{4518,57376,2},{4520,57378,2},{4515,57378,2},{4515,57379,2}, {4505,57389,2},{4498,57393,2},{4500,57394,2},{4498,57396,2},{4500,57399,2}, {4498,57399,2},{4497,57401,2},{4492,57399,2},{4488,57401,2},{4487,57403,2}, {4483,57404,2},{4482,57408,2},{4478,57406,2},{4478,57408,2},{4472,57409,2}, {4470,57406,2},{4465,57409,2},{4462,57409,2},{4452,57398,2},{4443,57396,2}, {4442,57388,2},{4435,57381,2},{4435,57378,2},{4422,57374,2},{4415,57369,2}, {4408,57361,2},{4393,57364,2},{4368,57363,2},{4350,57366,2},{4335,57361,2}, {4325,57348,2},{4322,57336,2},{4313,57329,2},{4307,57318,2},{4302,57294,2}, {4312,57288,2},{4327,57283,2},{4347,57281,2},{4358,57276,2},{4380,57273,2}, {4393,57266,2},{4402,57256,2},{4407,57241,2},{4405,57234,2},{4402,57231,2}, {4400,57229,2},{4398,57211,2},{4393,57206,2},{4392,57196,2},{4392,57201,2}, {4390,57203,2},{4385,57198,2},{4372,57189,2},{4370,57186,2},{4373,57184,2}, {4372,57181,2},{4367,57178,2},{4360,57169,2},{4365,57151,2},{4370,57144,2}, {4375,57141,2},{4383,57143,2},{4385,57146,2},{4388,57144,2},{4392,57144,2}, {4395,57148,2},{4400,57153,2},{4398,57159,2},{4402,57161,2},{4400,57168,2}, {4405,57169,2},{4405,57176,2},{4425,57183,2},{4428,57184,2},{4428,57189,2}, {4428,57191,2},{4427,57189,2},{4425,57191,2},{4432,57196,2},{4433,57203,2}, {4458,57204,2},{4468,57208,2},{4482,57206,2},{4488,57203,2},{4493,57193,2}, {4500,57189,2},{4502,57191,2},{4505,57191,2},{4507,57194,2},{4508,57199,2}, {4503,57204,2},{4503,57209,2},{4505,57208,2},{4507,57204,2},{4508,57204,2}, {4510,57206,2},{4515,57204,2},{4517,57201,2},{4523,57196,2},{4527,57194,2}, {4528,57198,2},{4535,57188,2},{4535,57178,2},{4538,57169,2},{4542,57166,2}, {4543,57153,2},{4550,57144,2},{4550,57126,2},{4552,57123,2},{4560,57119,2}, {4563,57114,2},{4567,57103,2},{4567,57088,2},{4573,57079,2},{4577,57068,2}, {4580,57061,2},{4577,57054,2},{4577,57038,2},{4572,57043,2},{4563,57029,2}, {4560,57026,2},{4553,57026,2},{4547,57029,2},{4543,57036,2},{4542,57044,2}, {4540,57044,2},{4537,57031,2},{4538,57023,2},{4532,57004,2},{4527,56998,2}, {4520,56996,2},{4510,56998,2},{4500,56996,2},{4492,56994,2},{4477,56983,2}, {4477,56979,2},{4483,56981,2},{4488,56986,2},{4497,56988,2},{4500,56986,2}, {4498,56983,2},{4493,56983,2},{4490,56979,2},{4490,56981,2},{4487,56978,2}, {4478,56976,2},{4482,56971,2},{4485,56971,2},{4497,56976,2},{4498,56976,2}, {4498,56971,2},{4503,56976,2},{4505,56979,2},{4515,56974,2},{4515,56979,2}, {4520,56983,2},{4522,56981,2},{4518,56971,2},{4510,56966,2},{4507,56959,2}, {4495,56953,2},{4495,56948,2},{4498,56943,2},{4495,56939,2},{4492,56936,2}, {4492,56929,2},{4475,56928,2},{4475,56919,2},{4470,56909,2},{4458,56913,2}, {4448,56909,2},{4437,56909,2},{4417,56896,2},{4407,56884,2},{4400,56886,2}, {4395,56891,2},{4392,56889,2},{4380,56893,2},{4377,56891,2},{4368,56883,2}, {4363,56881,2},{4360,56883,2},{4323,56901,2},{4327,56909,2},{4327,56911,2}, {4322,56903,2},{4300,56913,2},{4275,56914,2},{4257,56913,2},{4245,56908,2}, {4228,56901,2},{4213,56886,2},{4193,56876,2},{4185,56868,2},{4175,56851,2}, {4177,56853,2},{4168,56833,2},{4163,56818,2},{4162,56809,2},{4163,56796,2}, {4165,56793,2},{4168,56794,2},{4167,56791,2},{4168,56789,2},{4172,56784,2}, {4183,56776,2},{4195,56771,2},{4207,56769,2},{4212,56761,2},{4223,56754,2}, {4235,56753,2},{4240,56756,2},{4250,56756,2},{4248,56756,2},{4263,56754,2}, {4272,56759,2},{4278,56759,2},{4287,56753,2},{4298,56751,2},{4302,56746,2}, {4308,56749,2},{4312,56746,2},{4317,56748,2},{4325,56746,2},{4335,56749,2}, {4348,56756,2},{4357,56756,2},{4368,56766,2},{4377,56766,2},{4383,56763,2}, {4392,56763,2},{4410,56773,2},{4415,56781,2},{4418,56786,2},{4423,56786,2}, {4428,56783,2},{4433,56781,2},{4437,56784,2},{4453,56788,2},{4468,56799,2}, {4480,56803,2},{4488,56803,2},{4492,56803,2},{4493,56803,2},{4495,56816,2}, {4498,56818,2},{4507,56824,2},{4507,56828,2},{4510,56826,2},{4510,56831,2}, {4515,56826,2},{4515,56833,2},{4523,56831,2},{4522,56836,2},{4528,56838,2}, {4530,56838,2},{4528,56833,2},{4530,56829,2},{4527,56828,2},{4525,56824,2}, {4520,56823,2},{4517,56818,2},{4517,56811,2},{4505,56808,2},{4503,56803,2}, {4492,56794,2},{4483,56794,2},{4488,56791,2},{4485,56786,2},{4487,56783,2}, {4483,56781,2},{4485,56779,2},{4485,56776,2},{4480,56769,2},{4465,56759,2}, {4462,56749,2},{4458,56746,2},{4455,56743,2},{4455,56736,2},{4458,56731,2}, {4465,56734,2},{4467,56738,2},{4472,56738,2},{4488,56753,2},{4493,56753,2}, {4498,56771,2},{4507,56773,2},{4512,56776,2},{4510,56776,2},{4517,56776,2}, {4523,56784,2},{4542,56803,2},{4553,56808,2},{4567,56819,2},{4570,56826,2}, {4582,56831,2},{4592,56838,2},{4590,56839,2},{4583,56836,2},{4568,56839,2}, {4572,56841,2},{4573,56851,2},{4582,56858,2},{4587,56859,2},{4583,56868,2}, {4590,56878,2},{4588,56881,2},{4585,56883,2},{4580,56878,2},{4578,56879,2}, {4578,56873,2},{4570,56869,2},{4568,56864,2},{4563,56868,2},{4560,56874,2}, {4562,56876,2},{4567,56874,2},{4567,56876,2},{4572,56878,2},{4572,56883,2}, {4575,56884,2},{4582,56901,2},{4590,56904,2},{4593,56908,2},{4597,56914,2}, {4597,56926,2},{4597,56934,2},{4593,56944,2},{4595,56943,2},{4597,56946,2}, {4598,56956,2},{4597,56969,2},{4610,56983,2},{4610,57004,2},{4607,57009,2}, {4607,57018,2},{4602,57034,2},{4593,57044,2},{4592,57051,2},{4588,57053,2}, {4585,57061,2},{4587,57066,2},{4588,57063,2},{4592,57063,2},{4593,57064,2}, {4597,57063,2},{4598,57068,2},{4603,57068,2},{4605,57071,2},{4603,57081,2}, {4598,57083,2},{4600,57086,2},{4598,57089,2},{4602,57091,2},{4600,57098,2}, {4598,57099,2},{4600,57101,2},{4598,57119,2},{4598,57121,2},{4595,57136,2}, {4597,57146,2},{4602,57146,2},{4603,57141,2},{4603,57138,2},{4610,57131,2}, {4615,57133,2},{4618,57121,2},{4618,57113,2},{4620,57109,2},{4625,57118,2}, {4628,57114,2},{4635,57114,2},{4643,57109,2},{4650,57104,2},{4650,57099,2}, {4650,57094,2},{4645,57089,2},{4642,57079,2},{4643,57076,2},{4645,57078,2}, {4648,57074,2},{4650,57071,2},{4645,57054,2},{4648,57044,2},{4650,57043,2}, {4648,57036,2},{4650,57033,2},{4653,57031,2},{4657,57034,2},{4672,57034,2}, {4678,57041,2},{4677,57031,2},{4678,57021,2},{4677,57009,2},{4668,56986,2}, {4670,56946,2},{4667,56926,2},{4668,56921,2},{4655,56893,2},{4657,56889,2}, {4643,56871,2},{4645,56869,2},{4645,56866,2},{4650,56859,2},{4648,56858,2}, {4645,56853,2},{4645,56849,2},{4650,56843,2},{4653,56839,2},{4655,56834,2}, {4653,56828,2},{4650,56823,2},{4652,56801,2},{4653,56798,2},{4660,56798,2}, {4663,56789,2},{4665,56789,2},{4675,56778,2},{4680,56776,2},{4682,56773,2}, {4682,56769,2},{4685,56768,2},{4683,56764,2},{4688,56761,2},{4688,56759,2}, {4690,56754,2},{4693,56729,2},{4690,56716,2},{4683,56708,2},{4690,56711,2}, {4697,56723,2},{4697,56718,2},{4690,56706,2},{4687,56701,2},{4687,56696,2}, {4683,56696,2},{4677,56688,2},{4680,56691,2},{4685,56688,2},{4698,56691,2}, {4698,56694,2},{4702,56698,2},{4708,56701,2},{4712,56706,2},{4715,56709,2}, {4715,56713,2},{4717,56711,2},{4720,56714,2},{4722,56719,2},{4730,56731,2}, {4733,56739,2},{4737,56741,2},{4738,56733,2},{4742,56749,2},{4740,56758,2}, {4742,56764,2},{4745,56761,2},{4748,56754,2},{4747,56748,2},{4748,56733,2}, {4747,56731,2},{4747,56716,2},{4743,56713,2},{4743,56708,2},{4740,56699,2}, {4737,56691,2},{4730,56686,2},{4723,56676,2},{4717,56673,2},{4723,56671,2}, {4712,56648,2},{4702,56641,2},{4700,56629,2},{4700,56623,2},{4693,56614,2}, {4688,56604,2},{4685,56594,2},{4685,56581,2},{4683,56574,2},{4683,56556,2}, {4668,56533,2},{4662,56506,2},{4662,56501,2},{4658,56494,2},{4657,56491,2}, {4660,56486,2},{4660,56479,2},{4663,56469,2},{4670,56461,2},{4668,56463,2}, {4667,56459,2},{4667,56463,2},{4663,56458,2},{4660,56444,2},{4660,56441,2}, {4662,56441,2},{4667,56444,2},{4670,56451,2},{4675,56448,2},{4678,56449,2}, {4682,56454,2},{4688,56458,2},{4690,56459,2},{4695,56456,2},{4695,56453,2}, {4697,56449,2},{4693,56443,2},{4695,56438,2},{4692,56433,2},{4688,56431,2}, {4688,56426,2},{4687,56424,2},{4687,56423,2},{4688,56421,2},{4685,56418,2}, {4687,56416,2},{4688,56416,2},{4687,56411,2},{4678,56398,2},{4675,56376,2}, {4670,56359,2},{4668,56341,2},{4670,56333,2},{4677,56326,2},{4678,56326,2}, {4682,56329,2},{4693,56354,2},{4700,56364,2},{4702,56369,2},{4710,56379,2}, {4720,56399,2},{4743,56426,2},{4762,56458,2},{4772,56484,2},{4778,56516,2}, {4788,56553,2},{4795,56566,2},{4797,56568,2},{4797,56569,2},{4800,56573,2}, {4798,56578,2},{4802,56578,2},{4450,57954,130},{4448,57958,2},{4445,57959,2}, {4442,57956,2},{4442,57953,2},{4438,57951,2},{4435,57943,2},{4427,57931,2}, {4422,57918,2},{4412,57899,2},{4408,57901,2},{4407,57906,2},{4403,57906,2}, {4407,57909,2},{4408,57914,2},{4407,57916,2},{4407,57921,2},{4405,57919,2}, {4405,57924,2},{4400,57914,2},{4398,57914,2},{4397,57919,2},{4398,57923,2}, {4400,57928,2},{4400,57931,2},{4398,57929,2},{4395,57923,2},{4390,57921,2}, {4387,57914,2},{4387,57913,2},{4390,57913,2},{4387,57906,2},{4382,57913,2}, {4373,57916,2},{4365,57914,2},{4367,57916,2},{4367,57919,2},{4363,57914,2}, {4360,57914,2},{4358,57918,2},{4353,57909,2},{4352,57906,2},{4353,57894,2}, {4348,57886,2},{4347,57879,2},{4342,57873,2},{4338,57868,2},{4333,57864,2}, {4335,57863,2},{4333,57859,2},{4330,57843,2},{4327,57843,2},{4325,57841,2}, {4328,57838,2},{4330,57821,2},{4328,57798,2},{4325,57783,2},{4325,57778,2}, {4333,57761,2},{4338,57726,2},{4338,57681,2},{4333,57661,2},{4332,57648,2}, {4327,57631,2},{6517,53188,130},{6518,53186,2},{6520,53193,2},{6523,53218,2}, {6522,53238,2},{6527,53249,2},{6535,53263,2},{6543,53256,2},{6548,53243,2}, {6548,53254,2},{6555,53258,2},{6557,53278,2},{6560,53281,2},{6563,53301,2}, {6578,53323,2},{6585,53318,2},{6590,53286,2},{6592,53281,2},{6595,53283,2}, {6597,53274,2},{6597,53258,2},{6598,53288,2},{6602,53298,2},{6600,53313,2}, {6598,53319,2},{6598,53331,2},{6593,53349,2},{6592,53356,2},{6593,53389,2}, {6597,53401,2},{6600,53411,2},{6608,53413,2},{6612,53399,2},{6610,53379,2}, {6615,53376,2},{6620,53364,2},{6625,53343,2},{6627,53268,2},{6625,53231,2}, {6618,53243,2},{6610,53231,2},{6610,53224,2},{6607,53228,2},{6603,53226,2}, {6605,53219,2},{6615,53213,2},{6617,53209,2},{6613,53159,2},{6610,53149,2}, {6612,53129,2},{6618,53116,2},{6615,53076,2},{6613,53074,2},{6610,53081,2}, {6607,53078,2},{6600,53081,2},{6598,53076,2},{6602,53068,2},{6603,53066,2}, {6603,53073,2},{6605,53066,2},{6602,53056,2},{6592,53058,2},{6593,53049,2}, {6597,53048,2},{6603,53034,2},{6612,53026,2},{6617,53024,2},{6625,53028,2}, {6630,53038,2},{6630,53041,2},{6628,53043,2},{6627,53048,2},{6630,53064,2}, {6628,53069,2},{6625,53088,2},{6630,53093,2},{6630,53096,2},{6635,53101,2}, {6637,53108,2},{6632,53128,2},{6632,53136,2},{6638,53156,2},{6638,53166,2}, {6640,53169,2},{6647,53211,2},{6653,53221,2},{6653,53224,2},{6652,53219,2}, {6650,53223,2},{6648,53221,2},{6647,53226,2},{6648,53233,2},{6647,53236,2}, {6648,53239,2},{6655,53246,2},{6655,53288,2},{6657,53289,2},{6657,53279,2}, {6660,53286,2},{6657,53289,2},{6662,53299,2},{6660,53303,2},{6657,53304,2}, {6657,53298,2},{6655,53301,2},{6660,53313,2},{6662,53336,2},{6668,53361,2}, {6673,53391,2},{6677,53388,2},{6678,53401,2},{6680,53406,2},{6680,53409,2}, {6682,53409,2},{6687,53419,2},{6685,53436,2},{6687,53448,2},{6688,53451,2}, {6690,53471,2},{6695,53481,2},{6695,53508,2},{6698,53519,2},{6700,53531,2}, {6703,53544,2},{6703,53551,2},{6705,53556,2},{6702,53563,2},{6700,53554,2}, {6698,53558,2},{6700,53574,2},{6697,53573,2},{6700,53591,2},{6697,53586,2}, {6695,53584,2},{6693,53594,2},{6695,53616,2},{6690,53614,2},{6690,53623,2}, {6690,53636,2},{6687,53641,2},{6683,53604,2},{6680,53601,2},{6678,53591,2}, {6675,53589,2},{6677,53579,2},{6675,53578,2},{6675,53584,2},{6673,53583,2}, {6673,53579,2},{6673,53573,2},{6672,53571,2},{6673,53566,2},{6668,53558,2}, {6668,53548,2},{6665,53533,2},{6667,53526,2},{6667,53523,2},{6663,53531,2}, {6660,53526,2},{6660,53521,2},{6655,53518,2},{6655,53504,2},{6652,53503,2}, {6652,53498,2},{6648,53504,2},{6648,53499,2},{6647,53501,2},{6647,53513,2}, {6645,53501,2},{6647,53494,2},{6647,53491,2},{6642,53486,2},{6638,53491,2}, {6640,53499,2},{6637,53508,2},{6638,53514,2},{6640,53521,2},{6638,53539,2}, {6635,53538,2},{6632,53549,2},{6637,53559,2},{6637,53571,2},{6635,53576,2}, {6633,53574,2},{6633,53556,2},{6632,53556,2},{6630,53574,2},{6630,53584,2}, {6632,53586,2},{6633,53583,2},{6635,53596,2},{6632,53613,2},{6632,53651,2}, {6630,53654,2},{6635,53668,2},{6635,53674,2},{6633,53676,2},{6635,53683,2}, {6637,53689,2},{6635,53689,2},{6637,53696,2},{6647,53724,2},{6650,53723,2}, {6647,53719,2},{6643,53708,2},{6650,53714,2},{6658,53729,2},{6662,53754,2}, {6667,53763,2},{6668,53774,2},{6663,53771,2},{6663,53763,2},{6660,53764,2}, {6663,53776,2},{6662,53776,2},{6657,53763,2},{6655,53764,2},{6652,53761,2}, {6648,53751,2},{6647,53748,2},{6643,53753,2},{6642,53746,2},{6642,53753,2}, {6643,53758,2},{6642,53761,2},{6648,53781,2},{6648,53784,2},{6645,53781,2}, {6647,53789,2},{6645,53789,2},{6642,53786,2},{6643,53778,2},{6637,53771,2}, {6635,53779,2},{6635,53771,2},{6632,53764,2},{6628,53766,2},{6628,53769,2}, {6630,53768,2},{6627,53774,2},{6627,53771,2},{6623,53771,2},{6622,53763,2}, {6623,53764,2},{6623,53763,2},{6620,53756,2},{6617,53754,2},{6618,53766,2}, {6618,53768,2},{6615,53761,2},{6617,53754,2},{6613,53754,2},{6615,53749,2}, {6615,53744,2},{6610,53733,2},{6608,53738,2},{6607,53738,2},{6607,53758,2}, {6603,53758,2},{6605,53748,2},{6603,53741,2},{6605,53743,2},{6602,53723,2}, {6600,53726,2},{6595,53719,2},{6592,53721,2},{6592,53714,2},{6587,53709,2}, {6583,53711,2},{6585,53716,2},{6583,53716,2},{6582,53718,2},{6580,53728,2}, {6583,53744,2},{6587,53751,2},{6585,53758,2},{6578,53736,2},{6575,53741,2}, {6577,53756,2},{6573,53753,2},{6572,53756,2},{6573,53748,2},{6572,53744,2}, {6573,53736,2},{6572,53736,2},{6568,53733,2},{6567,53726,2},{6568,53718,2}, {6567,53708,2},{6565,53698,2},{6568,53699,2},{6568,53683,2},{6565,53678,2}, {6563,53686,2},{6562,53684,2},{6565,53676,2},{6563,53671,2},{6567,53666,2}, {6568,53666,2},{6570,53671,2},{6572,53666,2},{6573,53649,2},{6575,53658,2}, {6578,53646,2},{6580,53616,2},{6578,53606,2},{6580,53568,2},{6573,53559,2}, {6573,53566,2},{6572,53566,2},{6572,53576,2},{6570,53576,2},{6568,53566,2}, {6567,53551,2},{6565,53551,2},{6565,53548,2},{6562,53543,2},{6562,53544,2}, {6563,53526,2},{6557,53534,2},{6550,53553,2},{6548,53554,2},{6547,53561,2}, {6547,53571,2},{6543,53581,2},{6532,53589,2},{6535,53561,2},{6533,53558,2}, {6535,53553,2},{6533,53551,2},{6533,53548,2},{6532,53548,2},{6525,53534,2}, {6518,53531,2},{6518,53521,2},{6515,53509,2},{6505,53491,2},{6498,53468,2}, {6497,53454,2},{6493,53444,2},{6493,53434,2},{6492,53431,2},{6490,53433,2}, {6488,53426,2},{6485,53426,2},{6485,53418,2},{6482,53418,2},{6482,53406,2}, {6482,53399,2},{6485,53398,2},{6488,53386,2},{6493,53386,2},{6500,53398,2}, {6498,53398,2},{6495,53408,2},{6498,53404,2},{6500,53413,2},{6498,53419,2}, {6498,53428,2},{6503,53441,2},{6507,53434,2},{6512,53438,2},{6518,53464,2}, {6527,53481,2},{6543,53501,2},{6550,53503,2},{6553,53496,2},{6555,53499,2}, {6558,53496,2},{6562,53468,2},{6560,53456,2},{6557,53443,2},{6553,53433,2}, {6552,53423,2},{6548,53419,2},{6538,53383,2},{6535,53379,2},{6535,53384,2}, {6532,53384,2},{6527,53374,2},{6523,53374,2},{6522,53378,2},{6515,53376,2}, {6512,53369,2},{6507,53378,2},{6507,53369,2},{6507,53364,2},{6505,53364,2}, {6503,53356,2},{6502,53354,2},{6500,53343,2},{6498,53336,2},{6498,53329,2}, {6495,53334,2},{6493,53333,2},{6497,53321,2},{6498,53318,2},{6502,53304,2}, {6502,53279,2},{6508,53213,2},{6512,53203,2},{6517,53188,2},{6043,52216,130}, {6030,52239,2},{6022,52249,2},{6015,52268,2},{6012,52274,2},{6010,52286,2}, {6008,52283,2},{6003,52296,2},{5993,52303,2},{5985,52314,2},{5983,52311,2}, {5970,52321,2},{5963,52323,2},{5960,52328,2},{5960,52321,2},{5958,52318,2}, {5960,52319,2},{5963,52319,2},{5973,52311,2},{5977,52313,2},{5988,52299,2}, {6000,52291,2},{6008,52276,2},{6020,52243,2},{6037,52221,2},{6037,52218,2}, {6045,52211,2},{6043,52216,2},{5672,53059,130},{5667,53068,2},{5660,53074,2}, {5653,53088,2},{5650,53088,2},{5643,53094,2},{5638,53094,2},{5638,53099,2}, {5633,53098,2},{5633,53103,2},{5632,53103,2},{5623,53114,2},{5622,53121,2}, {5623,53126,2},{5628,53133,2},{5630,53136,2},{5615,53126,2},{5612,53129,2}, {5603,53141,2},{5605,53169,2},{5603,53183,2},{5598,53214,2},{5600,53221,2}, {5603,53226,2},{5610,53224,2},{5608,53228,2},{5610,53254,2},{5612,53258,2}, {5610,53263,2},{5615,53273,2},{5617,53281,2},{5613,53289,2},{5613,53301,2}, {5612,53303,2},{5610,53311,2},{5603,53319,2},{5600,53318,2},{5608,53301,2}, {5610,53286,2},{5612,53279,2},{5607,53263,2},{5603,53263,2},{5607,53256,2}, {5607,53234,2},{5598,53226,2},{5597,53218,2},{5598,53208,2},{5602,53186,2}, {5603,53166,2},{5602,53159,2},{5597,53154,2},{5592,53158,2},{5588,53158,2}, {5587,53161,2},{5585,53159,2},{5583,53161,2},{5585,53164,2},{5582,53168,2}, {5580,53166,2},{5573,53171,2},{5572,53178,2},{5570,53178,2},{5562,53191,2}, {5560,53193,2},{5560,53196,2},{5555,53196,2},{5553,53201,2},{5548,53203,2}, {5542,53214,2},{5540,53213,2},{5535,53214,2},{5540,53218,2},{5542,53219,2}, {5538,53218,2},{5533,53221,2},{5533,53218,2},{5525,53221,2},{5522,53219,2}, {5517,53224,2},{5518,53218,2},{5538,53209,2},{5548,53198,2},{5558,53191,2}, {5568,53173,2},{5568,53166,2},{5587,53148,2},{5587,53144,2},{5575,53153,2}, {5572,53153,2},{5582,53146,2},{5583,53143,2},{5585,53143,2},{5587,53138,2}, {5590,53138,2},{5590,53131,2},{5592,53133,2},{5592,53129,2},{5597,53134,2}, {5602,53133,2},{5602,53131,2},{5600,53118,2},{5600,53114,2},{5598,53111,2}, {5602,53108,2},{5607,53094,2},{5612,53089,2},{5610,53084,2},{5613,53089,2}, {5610,53093,2},{5602,53113,2},{5603,53119,2},{5607,53123,2},{5610,53114,2}, {5613,53114,2},{5622,53103,2},{5622,53098,2},{5625,53098,2},{5632,53089,2}, {5643,53084,2},{5655,53074,2},{5663,53064,2},{5667,53061,2},{5670,53056,2}, {5675,53053,2},{5672,53056,2},{5672,53059,2},{6135,53768,130},{6142,53744,2}, {6140,53736,2},{6137,53738,2},{6137,53736,2},{6142,53729,2},{6140,53709,2}, {6140,53704,2},{6135,53703,2},{6132,53691,2},{6128,53681,2},{6128,53669,2}, {6123,53649,2},{6122,53621,2},{6120,53588,2},{6125,53578,2},{6127,53564,2}, {6130,53554,2},{6132,53543,2},{6135,53536,2},{6132,53558,2},{6123,53588,2}, {6123,53594,2},{6125,53633,2},{6133,53686,2},{6137,53696,2},{6150,53698,2}, {6153,53701,2},{6157,53711,2},{6157,53724,2},{6153,53724,2},{6150,53731,2}, {6148,53738,2},{6145,53743,2},{6145,53749,2},{6140,53759,2},{6140,53766,2}, {6135,53771,2},{6135,53768,2},{4450,57954,130},{4448,57958,2},{4445,57959,2}, {4442,57956,2},{4442,57953,2},{4438,57951,2},{4435,57943,2},{4427,57931,2}, {4422,57918,2},{4412,57899,2},{4408,57901,2},{4407,57906,2},{4403,57906,2}, {4407,57909,2},{4408,57914,2},{4407,57916,2},{4407,57921,2},{4405,57919,2}, {4405,57924,2},{4400,57914,2},{4398,57914,2},{4397,57919,2},{4398,57923,2}, {4400,57928,2},{4400,57931,2},{4398,57929,2},{4395,57923,2},{4390,57921,2}, {4387,57914,2},{4387,57913,2},{4390,57913,2},{4387,57906,2},{4382,57913,2}, {4373,57916,2},{4365,57914,2},{4367,57916,2},{4367,57919,2},{4363,57914,2}, {4360,57914,2},{4358,57918,2},{4353,57909,2},{4352,57906,2},{4353,57894,2}, {4348,57886,2},{4347,57879,2},{4342,57873,2},{4338,57868,2},{4333,57864,2}, {4335,57863,2},{4333,57859,2},{4330,57843,2},{4327,57843,2},{4325,57841,2}, {4328,57838,2},{4330,57821,2},{4328,57798,2},{4325,57783,2},{4325,57778,2}, {4333,57761,2},{4338,57726,2},{4338,57681,2},{4333,57661,2},{4332,57648,2}, {4327,57631,2},{4167,54259,130},{4162,54258,2},{4153,54261,2},{4147,54266,2}, {4143,54273,2},{4143,54279,2},{4140,54281,2},{4133,54286,2},{4128,54286,2}, {4122,54288,2},{4122,54294,2},{4122,54296,2},{4123,54301,2},{4122,54308,2}, {4115,54311,2},{4113,54316,2},{4110,54318,2},{4107,54323,2},{4103,54326,2}, {4100,54326,2},{4098,54329,2},{4093,54331,2},{4093,54336,2},{4092,54331,2}, {4093,54328,2},{4105,54319,2},{4108,54313,2},{4105,54309,2},{4093,54314,2}, {4088,54316,2},{4085,54319,2},{4080,54319,2},{4075,54316,2},{4068,54301,2}, {4070,54299,2},{4078,54298,2},{4083,54293,2},{4088,54291,2},{4095,54288,2}, {4095,54283,2},{4102,54283,2},{4108,54279,2},{4108,54274,2},{4097,54268,2}, {4105,54261,2},{4118,54258,2},{4130,54249,2},{4133,54244,2},{4137,54246,2}, {4143,54241,2},{4147,54243,2},{4150,54241,2},{4157,54241,2},{4158,54244,2}, {4163,54244,2},{4167,54248,2},{4168,54258,2},{4167,54259,2},{2718,57461,130}, {2712,57469,2},{2695,57474,2},{2687,57473,2},{2680,57466,2},{2675,57466,2}, {2673,57464,2},{2677,57464,2},{2675,57461,2},{2675,57463,2},{2668,57463,2}, {2670,57454,2},{2675,57446,2},{2685,57439,2},{2685,57438,2},{2688,57438,2}, {2688,57431,2},{2688,57429,2},{2695,57429,2},{2695,57426,2},{2697,57426,2}, {2702,57438,2},{2705,57441,2},{2707,57439,2},{2707,57444,2},{2710,57444,2}, {2718,57453,2},{2720,57456,2},{2718,57461,2},{4760,54721,130},{4762,54733,2}, {4760,54739,2},{4758,54744,2},{4747,54749,2},{4748,54751,2},{4755,54751,2}, {4758,54763,2},{4765,54771,2},{4767,54764,2},{4768,54763,2},{4767,54779,2}, {4763,54791,2},{4765,54793,2},{4768,54794,2},{4775,54803,2},{4772,54801,2}, {4768,54814,2},{4770,54826,2},{4768,54829,2},{4770,54844,2},{4770,54846,2}, {4773,54846,2},{4775,54838,2},{4777,54838,2},{4778,54841,2},{4775,54846,2}, {4777,54848,2},{4778,54848,2},{4777,54853,2},{4778,54856,2},{4777,54859,2}, {4780,54858,2},{4782,54866,2},{4783,54864,2},{4782,54869,2},{4783,54871,2}, {4785,54874,2},{4787,54879,2},{4788,54878,2},{4788,54879,2},{4793,54881,2}, {4793,54873,2},{4795,54873,2},{4797,54879,2},{4798,54884,2},{4798,54888,2}, {4803,54901,2},{4802,54903,2},{4800,54901,2},{4795,54908,2},{4797,54901,2}, {4795,54899,2},{4787,54901,2},{4785,54904,2},{4782,54906,2},{4783,54914,2}, {4780,54909,2},{4777,54909,2},{4775,54913,2},{4773,54913,2},{4773,54911,2}, {4765,54916,2},{4762,54914,2},{4758,54916,2},{4750,54906,2},{4755,54908,2}, {4758,54913,2},{4762,54911,2},{4765,54913,2},{4768,54906,2},{4770,54908,2}, {4773,54906,2},{4775,54903,2},{4777,54906,2},{4778,54904,2},{4778,54899,2}, {4782,54899,2},{4787,54893,2},{4788,54894,2},{4790,54893,2},{4792,54889,2}, {4785,54888,2},{4783,54888,2},{4782,54884,2},{4782,54881,2},{4777,54879,2}, {4772,54881,2},{4778,54874,2},{4773,54866,2},{4770,54866,2},{4768,54861,2}, {4773,54859,2},{4773,54853,2},{4772,54851,2},{4765,54853,2},{4760,54849,2}, {4767,54851,2},{4768,54849,2},{4767,54841,2},{4763,54839,2},{4762,54833,2}, {4765,54836,2},{4767,54834,2},{4767,54813,2},{4770,54798,2},{4762,54794,2}, {4765,54783,2},{4763,54771,2},{4757,54764,2},{4752,54754,2},{4747,54753,2}, {4745,54748,2},{4740,54748,2},{4735,54741,2},{4750,54746,2},{4757,54744,2}, {4758,54741,2},{4760,54731,2},{4758,54721,2},{4760,54716,2},{4760,54721,2}, {4818,55238,130},{4813,55266,2},{4803,55279,2},{4803,55284,2},{4793,55276,2}, {4790,55276,2},{4787,55273,2},{4783,55274,2},{4782,55278,2},{4778,55293,2}, {4782,55299,2},{4787,55294,2},{4797,55293,2},{4797,55299,2},{4793,55304,2}, {4798,55308,2},{4798,55313,2},{4795,55308,2},{4793,55309,2},{4792,55306,2}, {4782,55311,2},{4775,55311,2},{4775,55316,2},{4773,55318,2},{4773,55326,2}, {4772,55324,2},{4772,55314,2},{4767,55316,2},{4765,55313,2},{4762,55314,2}, {4762,55321,2},{4755,55341,2},{4757,55344,2},{4755,55349,2},{4757,55356,2}, {4755,55371,2},{4757,55378,2},{4760,55376,2},{4760,55379,2},{4760,55398,2}, {4762,55401,2},{4762,55409,2},{4765,55416,2},{4765,55421,2},{4763,55419,2}, {4758,55426,2},{4757,55424,2},{4758,55413,2},{4757,55411,2},{4755,55411,2}, {4753,55408,2},{4753,55401,2},{4750,55398,2},{4753,55386,2},{4748,55368,2}, {4750,55361,2},{4747,55354,2},{4748,55348,2},{4745,55346,2},{4747,55341,2}, {4750,55341,2},{4753,55329,2},{4753,55326,2},{4755,55328,2},{4757,55321,2}, {4760,55311,2},{4760,55304,2},{4758,55303,2},{4758,55299,2},{4758,55296,2}, {4753,55293,2},{4762,55294,2},{4762,55306,2},{4772,55308,2},{4777,55303,2}, {4775,55296,2},{4777,55288,2},{4778,55276,2},{4782,55271,2},{4787,55269,2}, {4795,55271,2},{4798,55279,2},{4800,55279,2},{4800,55274,2},{4807,55266,2}, {4812,55256,2},{4813,55236,2},{4815,55231,2},{4812,55218,2},{4805,55213,2}, {4803,55199,2},{4800,55189,2},{4800,55186,2},{4807,55179,2},{4812,55179,2}, {4812,55174,2},{4802,55159,2},{4805,55159,2},{4808,55154,2},{4810,55164,2}, {4815,55173,2},{4815,55178,2},{4817,55179,2},{4815,55183,2},{4807,55184,2}, {4803,55189,2},{4808,55201,2},{4808,55211,2},{4817,55218,2},{4818,55224,2}, {4818,55236,2},{4668,55468,130},{4667,55473,2},{4662,55476,2},{4662,55481,2}, {4658,55481,2},{4648,55481,2},{4645,55479,2},{4633,55483,2},{4627,55479,2}, {4623,55481,2},{4615,55476,2},{4612,55481,2},{4608,55478,2},{4600,55483,2}, {4588,55496,2},{4592,55503,2},{4590,55504,2},{4583,55499,2},{4573,55506,2}, {4570,55506,2},{4563,55494,2},{4555,55491,2},{4552,55494,2},{4548,55504,2}, {4543,55506,2},{4538,55511,2},{4532,55506,2},{4528,55509,2},{4523,55511,2}, {4517,55509,2},{4508,55504,2},{4507,55506,2},{4507,55511,2},{4500,55508,2}, {4502,55501,2},{4500,55496,2},{4495,55496,2},{4488,55498,2},{4477,55486,2}, {4473,55479,2},{4477,55474,2},{4480,55469,2},{4478,55468,2},{4470,55476,2}, {4462,55474,2},{4458,55476,2},{4457,55481,2},{4458,55484,2},{4462,55489,2}, {4457,55488,2},{4455,55489,2},{4448,55481,2},{4448,55491,2},{4450,55494,2}, {4448,55496,2},{4447,55498,2},{4443,55496,2},{4445,55491,2},{4443,55479,2}, {4447,55474,2},{4452,55471,2},{4452,55474,2},{4455,55479,2},{4455,55473,2}, {4458,55468,2},{4467,55469,2},{4467,55468,2},{4470,55469,2},{4473,55466,2}, {4473,55461,2},{4473,55459,2},{4475,55458,2},{4477,55451,2},{4475,55443,2}, {4475,55441,2},{4472,55434,2},{4473,55423,2},{4470,55416,2},{4470,55414,2}, {4477,55421,2},{4477,55436,2},{4478,55439,2},{4482,55438,2},{4483,55444,2}, {4480,55446,2},{4480,55451,2},{4485,55449,2},{4480,55456,2},{4482,55459,2}, {4483,55461,2},{4488,55458,2},{4488,55459,2},{4488,55466,2},{4485,55469,2}, {4485,55473,2},{4478,55478,2},{4478,55481,2},{4482,55483,2},{4490,55481,2}, {4485,55489,2},{4488,55493,2},{4505,55488,2},{4503,55493,2},{4505,55498,2}, {4505,55503,2},{4512,55501,2},{4518,55504,2},{4520,55503,2},{4522,55506,2}, {4525,55506,2},{4530,55503,2},{4532,55499,2},{4535,55498,2},{4537,55486,2}, {4533,55474,2},{4533,55464,2},{4540,55491,2},{4535,55501,2},{4538,55506,2}, {4548,55498,2},{4550,55488,2},{4565,55474,2},{4565,55469,2},{4568,55474,2}, {4565,55479,2},{4560,55488,2},{4562,55491,2},{4568,55494,2},{4568,55503,2}, {4587,55494,2},{4587,55493,2},{4588,55488,2},{4592,55481,2},{4600,55478,2}, {4603,55474,2},{4607,55474,2},{4610,55469,2},{4613,55471,2},{4617,55468,2}, {4622,55478,2},{4628,55478,2},{4633,55479,2},{4640,55478,2},{4642,55474,2}, {4645,55476,2},{4657,55476,2},{4662,55473,2},{4667,55458,2},{4672,55454,2}, {4668,55463,2},{4668,55468,2},{4395,55601,130},{4392,55601,2},{4385,55606,2}, {4380,55599,2},{4377,55594,2},{4372,55596,2},{4368,55591,2},{4367,55598,2}, {4365,55601,2},{4358,55603,2},{4352,55609,2},{4348,55606,2},{4348,55608,2}, {4345,55613,2},{4343,55621,2},{4332,55631,2},{4328,55638,2},{4325,55648,2}, {4318,55651,2},{4317,55659,2},{4317,55663,2},{4310,55666,2},{4308,55679,2}, {4305,55681,2},{4307,55664,2},{4310,55661,2},{4313,55658,2},{4315,55648,2}, {4318,55644,2},{4322,55646,2},{4323,55646,2},{4328,55634,2},{4342,55618,2}, {4343,55609,2},{4347,55604,2},{4350,55603,2},{4353,55606,2},{4357,55601,2}, {4363,55599,2},{4365,55596,2},{4365,55589,2},{4368,55588,2},{4370,55589,2}, {4372,55594,2},{4378,55593,2},{4380,55599,2},{4385,55604,2},{4392,55598,2}, {4398,55599,2},{4398,55603,2},{4395,55601,2},{3657,54104,130},{3647,54103,2}, {3642,54104,2},{3633,54099,2},{3620,54098,2},{3617,54099,2},{3612,54106,2}, {3607,54108,2},{3607,54111,2},{3605,54111,2},{3603,54114,2},{3603,54121,2}, {3607,54121,2},{3617,54126,2},{3620,54131,2},{3622,54134,2},{3627,54136,2}, {3615,54141,2},{3613,54144,2},{3610,54146,2},{3607,54151,2},{3607,54156,2}, {3603,54161,2},{3598,54161,2},{3595,54166,2},{3590,54168,2},{3585,54173,2}, {3583,54173,2},{3585,54169,2},{3587,54169,2},{3588,54164,2},{3593,54164,2}, {3597,54159,2},{3603,54158,2},{3605,54149,2},{3613,54143,2},{3612,54141,2}, {3612,54138,2},{3620,54136,2},{3618,54131,2},{3602,54124,2},{3600,54113,2}, {3602,54111,2},{3605,54103,2},{3610,54104,2},{3613,54101,2},{3610,54099,2}, {3612,54096,2},{3608,54096,2},{3605,54091,2},{3608,54089,2},{3610,54088,2}, {3615,54081,2},{3613,54079,2},{3613,54074,2},{3610,54069,2},{3608,54066,2}, {3607,54064,2},{3603,54066,2},{3602,54063,2},{3603,54063,2},{3603,54061,2}, {3605,54054,2},{3608,54056,2},{3613,54051,2},{3613,54064,2},{3615,54064,2}, {3615,54068,2},{3617,54079,2},{3617,54091,2},{3627,54094,2},{3633,54093,2}, {3643,54099,2},{3647,54099,2},{3647,54096,2},{3650,54094,2},{3648,54101,2}, {3652,54101,2},{3658,54103,2},{3657,54104,2},{3788,54498,130},{3785,54496,2}, {3780,54498,2},{3780,54494,2},{3780,54493,2},{3778,54494,2},{3772,54494,2}, {3770,54491,2},{3765,54491,2},{3762,54481,2},{3757,54478,2},{3752,54473,2}, {3748,54473,2},{3747,54466,2},{3745,54466,2},{3743,54471,2},{3738,54466,2}, {3735,54466,2},{3732,54463,2},{3728,54454,2},{3723,54453,2},{3720,54449,2}, {3718,54456,2},{3718,54468,2},{3722,54471,2},{3720,54473,2},{3718,54469,2}, {3717,54463,2},{3718,54448,2},{3712,54439,2},{3710,54429,2},{3708,54426,2}, {3710,54424,2},{3708,54423,2},{3708,54419,2},{3705,54419,2},{3703,54423,2}, {3700,54423,2},{3703,54416,2},{3702,54414,2},{3698,54414,2},{3703,54409,2}, {3700,54408,2},{3700,54398,2},{3697,54399,2},{3695,54398,2},{3693,54389,2}, {3700,54386,2},{3705,54381,2},{3703,54393,2},{3705,54394,2},{3710,54391,2}, {3703,54399,2},{3703,54404,2},{3705,54404,2},{3707,54403,2},{3710,54403,2}, {3712,54409,2},{3717,54406,2},{3715,54411,2},{3708,54416,2},{3713,54419,2}, {3718,54418,2},{3715,54424,2},{3712,54424,2},{3713,54441,2},{3727,54449,2}, {3732,54446,2},{3730,54453,2},{3732,54453,2},{3733,54451,2},{3735,54449,2}, {3733,54458,2},{3737,54463,2},{3740,54463,2},{3743,54466,2},{3752,54459,2}, {3750,54463,2},{3757,54459,2},{3757,54461,2},{3750,54468,2},{3750,54471,2}, {3757,54473,2},{3765,54481,2},{3767,54486,2},{3770,54488,2},{3777,54491,2}, {3778,54489,2},{3782,54489,2},{3785,54493,2},{3788,54494,2},{3790,54494,2}, {3790,54499,2},{3788,54498,2},{3697,56714,130},{3687,56723,2},{3662,56733,2}, {3652,56736,2},{3643,56733,2},{3632,56741,2},{3618,56743,2},{3617,56746,2}, {3610,56744,2},{3603,56738,2},{3600,56736,2},{3595,56736,2},{3593,56739,2}, {3593,56734,2},{3597,56733,2},{3600,56736,2},{3605,56733,2},{3607,56738,2}, {3613,56743,2},{3632,56738,2},{3640,56731,2},{3635,56728,2},{3625,56728,2}, {3625,56726,2},{3630,56726,2},{3630,56721,2},{3633,56723,2},{3638,56726,2}, {3640,56724,2},{3643,56728,2},{3653,56731,2},{3660,56729,2},{3662,56726,2}, {3665,56728,2},{3668,56728,2},{3672,56724,2},{3693,56714,2},{3698,56708,2}, {3702,56708,2},{3697,56714,2},{3485,56784,130},{3482,56793,2},{3482,56804,2}, {3477,56808,2},{3477,56816,2},{3470,56826,2},{3468,56836,2},{3463,56839,2}, {3462,56843,2},{3457,56846,2},{3468,56821,2},{3472,56821,2},{3473,56819,2}, {3475,56813,2},{3473,56809,2},{3480,56798,2},{3480,56791,2},{3482,56781,2}, {3480,56778,2},{3477,56766,2},{3478,56768,2},{3485,56784,2},{1212,56959,130}, {1208,56964,2},{1203,56973,2},{1205,56976,2},{1205,56978,2},{1187,56993,2}, {1188,56994,2},{1187,57001,2},{1183,57006,2},{1180,57009,2},{1175,57018,2}, {1157,57031,2},{1143,57043,2},{1143,57046,2},{1137,57048,2},{1133,57051,2}, {1132,57049,2},{1130,57054,2},{1127,57058,2},{1122,57058,2},{1113,57058,2}, {1110,57059,2},{1105,57054,2},{1102,57048,2},{1103,57044,2},{1105,57043,2}, {1105,57038,2},{1107,57038,2},{1108,57024,2},{1110,57019,2},{1108,57016,2}, {1110,57011,2},{1115,57003,2},{1117,56993,2},{1120,56984,2},{1123,56981,2}, {1125,56974,2},{1135,56963,2},{1145,56958,2},{1150,56958,2},{1158,56951,2}, {1160,56949,2},{1162,56949,2},{1160,56951,2},{1168,56949,2},{1165,56949,2}, {1172,56944,2},{1173,56944,2},{1175,56948,2},{1180,56948,2},{1188,56943,2}, {1190,56944,2},{1188,56946,2},{1190,56946,2},{1192,56943,2},{1198,56943,2}, {1208,56949,2},{1208,56954,2},{1212,56958,2},{1212,56959,2},{888,57576,131}, {893,57573,3},{900,57564,3},{903,57563,3},{903,57558,3},{905,57554,3},{903,57554,3}, {903,57553,3},{905,57549,3},{907,57549,3},{907,57553,3},{910,57549,3},{910,57546,3}, {910,57544,3},{908,57546,3},{907,57544,3},{908,57543,3},{907,57543,3},{908,57541,3}, {902,57541,3},{900,57541,3},{903,57539,3},{902,57538,3},{907,57536,3},{905,57533,3}, {902,57536,3},{903,57533,3},{902,57534,3},{900,57533,3},{903,57531,3},{902,57528,3}, {905,57531,3},{907,57531,3},{910,57534,3},{910,57536,3},{912,57538,3},{912,57539,3}, {913,57541,3},{917,57538,3},{927,57538,3},{927,57533,3},{935,57539,3},{935,57543,3}, {930,57543,3},{930,57544,3},{935,57546,3},{935,57549,3},{937,57548,3},{937,57549,3}, {938,57549,3},{937,57553,3},{932,57553,3},{933,57554,3},{932,57556,3},{928,57554,3}, {925,57554,3},{925,57559,3},{923,57554,3},{922,57559,3},{918,57563,3},{918,57568,3}, {918,57571,3},{922,57571,3},{922,57578,3},{925,57578,3},{923,57576,3},{925,57578,3}, {932,57578,3},{933,57581,3},{928,57579,3},{925,57579,3},{922,57583,3},{922,57581,3}, {918,57579,3},{918,57574,3},{915,57573,3},{912,57574,3},{902,57584,3},{900,57583,3}, {893,57583,3},{890,57584,3},{895,57579,3},{890,57581,3},{888,57578,3},{888,57576,3}, {803,57246,131},{805,57244,3},{810,57246,3},{823,57239,3},{835,57221,3}, {838,57223,3},{840,57224,3},{845,57226,3},{853,57221,3},{855,57226,3},{855,57221,3}, {857,57219,3},{860,57218,3},{862,57219,3},{860,57221,3},{857,57221,3},{858,57224,3}, {863,57219,3},{862,57218,3},{863,57213,3},{862,57213,3},{865,57211,3},{865,57206,3}, {867,57203,3},{872,57203,3},{873,57198,3},{870,57194,3},{872,57188,3},{868,57188,3}, {865,57193,3},{862,57193,3},{858,57196,3},{853,57208,3},{850,57208,3},{847,57209,3}, {843,57208,3},{842,57209,3},{838,57208,3},{837,57208,3},{840,57198,3},{842,57196,3}, {842,57199,3},{843,57196,3},{842,57196,3},{845,57188,3},{843,57179,3},{858,57166,3}, {858,57163,3},{862,57163,3},{868,57166,3},{868,57171,3},{873,57173,3},{875,57173,3}, {878,57179,3},{878,57174,3},{877,57173,3},{878,57171,3},{883,57178,3},{888,57174,3}, {888,57179,3},{890,57176,3},{890,57173,3},{892,57174,3},{893,57173,3},{897,57176,3}, {903,57173,3},{907,57169,3},{913,57163,3},{915,57159,3},{918,57159,3},{922,57153,3}, {930,57143,3},{940,57119,3},{943,57119,3},{947,57116,3},{947,57113,3},{945,57116,3}, {948,57109,3},{953,57088,3},{952,57083,3},{955,57081,3},{953,57081,3},{957,57074,3}, {960,57073,3},{962,57069,3},{965,57071,3},{965,57068,3},{968,57069,3},{975,57073,3}, {977,57073,3},{987,57066,3},{988,57064,3},{992,57066,3},{995,57063,3},{997,57063,3}, {997,57051,3},{998,57058,3},{1000,57048,3},{1005,57041,3},{1007,57039,3}, {1010,57036,3},{1012,57034,3},{1013,57029,3},{1015,57029,3},{1017,57028,3}, {1015,57023,3},{1017,57016,3},{1020,57013,3},{1023,57013,3},{1028,57008,3}, {1027,57008,3},{1023,57011,3},{1010,57013,3},{1008,57016,3},{1005,57019,3}, {1005,57021,3},{1003,57021,3},{1003,57018,3},{998,57026,3},{997,57031,3}, {993,57036,3},{993,57044,3},{990,57044,3},{988,57043,3},{985,57046,3},{983,57043,3}, {982,57049,3},{978,57044,3},{977,57043,3},{975,57041,3},{973,57041,3},{973,57036,3}, {972,57034,3},{970,57036,3},{967,57029,3},{957,57026,3},{955,57024,3},{973,57013,3}, {975,57009,3},{978,57009,3},{983,57001,3},{985,56993,3},{985,56989,3},{987,56984,3}, {987,56979,3},{990,56973,3},{990,56969,3},{992,56969,3},{997,56968,3},{1002,56963,3}, {1010,56956,3},{1025,56951,3},{1028,56951,3},{1032,56953,3},{1035,56949,3}, {1040,56953,3},{1042,56956,3},{1043,56956,3},{1045,56958,3},{1052,56956,3}, {1053,56958,3},{1055,56966,3},{1057,56966,3},{1057,56968,3},{1058,56968,3}, {1058,56971,3},{1062,56973,3},{1063,56971,3},{1060,56968,3},{1062,56966,3}, {1063,56969,3},{1063,56968,3},{1067,56968,3},{1067,56971,3},{1077,56969,3}, {1080,56968,3},{1082,56963,3},{1080,56959,3},{1082,56958,3},{1082,56956,3}, {1085,56958,3},{1085,56951,3},{1088,56946,3},{1088,56941,3},{1092,56949,3}, {1095,56949,3},{1095,56954,3},{1092,56954,3},{1090,56956,3},{1092,56958,3}, {1093,56958,3},{1093,56963,3},{1092,56964,3},{1095,56964,3},{1097,56968,3}, {1102,56961,3},{1105,56964,3},{1103,56968,3},{1103,56969,3},{1105,56969,3}, {1107,56968,3},{1122,56974,3},{1122,56979,3},{1117,56983,3},{1113,56994,3}, {1112,57001,3},{1093,57046,3},{1107,57069,3},{1103,57076,3},{1105,57079,3}, {1103,57081,3},{1100,57088,3},{1097,57091,3},{1097,57098,3},{1100,57101,3}, {1098,57103,3},{1095,57101,3},{1092,57104,3},{1087,57114,3},{1083,57116,3}, {1082,57113,3},{1078,57116,3},{1078,57123,3},{1077,57124,3},{1077,57129,3}, {1078,57131,3},{1078,57136,3},{1077,57136,3},{1070,57144,3},{1072,57148,3}, {1072,57151,3},{1077,57158,3},{1080,57169,3},{1082,57171,3},{1092,57169,3}, {1092,57171,3},{1087,57176,3},{1078,57178,3},{1078,57176,3},{1085,57174,3}, {1078,57174,3},{1075,57176,3},{1072,57173,3},{1075,57176,3},{1072,57178,3}, {1077,57179,3},{1072,57179,3},{1048,57189,3},{1013,57214,3},{1000,57226,3}, {998,57229,3},{1000,57229,3},{1000,57234,3},{995,57234,3},{975,57251,3}, {973,57253,3},{973,57256,3},{970,57256,3},{967,57259,3},{963,57266,3},{963,57273,3}, {957,57279,3},{953,57281,3},{955,57278,3},{953,57276,3},{948,57276,3},{948,57273,3}, {952,57268,3},{955,57266,3},{957,57263,3},{958,57261,3},{960,57254,3},{960,57251,3}, {957,57249,3},{955,57249,3},{955,57251,3},{952,57249,3},{950,57253,3},{947,57243,3}, {907,57243,3},{908,57246,3},{907,57248,3},{900,57256,3},{898,57261,3},{893,57264,3}, {888,57261,3},{883,57249,3},{882,57248,3},{882,57249,3},{880,57249,3},{877,57244,3}, {873,57244,3},{863,57253,3},{847,57253,3},{843,57249,3},{842,57243,3},{837,57239,3}, {832,57231,3},{827,57238,3},{827,57241,3},{825,57243,3},{820,57243,3},{810,57248,3}, {803,57246,3},{1107,56968,131},{1112,56958,3},{1118,56954,3},{1130,56944,3}, {1135,56936,3},{1145,56926,3},{1147,56921,3},{1152,56918,3},{1162,56901,3}, {1168,56898,3},{1177,56886,3},{1185,56881,3},{1190,56876,3},{1195,56873,3}, {1205,56866,3},{1220,56858,3},{1245,56819,3},{1247,56818,3},{1243,56826,3}, {1248,56821,3},{1252,56818,3},{1248,56819,3},{1248,56818,3},{1253,56813,3}, {1260,56803,3},{1263,56803,3},{1262,56803,3},{1263,56801,3},{1275,56789,3}, {1275,56791,3},{1278,56791,3},{1282,56784,3},{1280,56784,3},{1278,56788,3}, {1278,56786,3},{1290,56768,3},{1298,56769,3},{1302,56774,3},{1308,56778,3}, {1305,56778,3},{1305,56781,3},{1302,56786,3},{1298,56789,3},{1293,56789,3}, {1292,56794,3},{1290,56799,3},{1292,56806,3},{1293,56799,3},{1295,56799,3}, {1297,56806,3},{1300,56829,3},{1298,56831,3},{1298,56834,3},{1300,56834,3}, {1303,56841,3},{1307,56841,3},{1310,56846,3},{1313,56843,3},{1315,56844,3}, {1318,56843,3},{1325,56846,3},{1330,56854,3},{1327,56861,3},{1330,56866,3}, {1335,56866,3},{1338,56863,3},{1343,56864,3},{1358,56861,3},{1363,56861,3}, {1367,56859,3},{1375,56859,3},{1378,56866,3},{1377,56871,3},{1378,56879,3}, {1380,56883,3},{1377,56888,3},{1378,56891,3},{1375,56896,3},{1377,56903,3}, {1380,56908,3},{1383,56908,3},{1390,56914,3},{1397,56919,3},{1398,56923,3}, {1403,56924,3},{1407,56934,3},{1405,56936,3},{1402,56934,3},{1400,56934,3}, {1392,56944,3},{1392,56951,3},{1387,56953,3},{1383,56956,3},{1383,56963,3}, {1387,56964,3},{1388,56961,3},{1397,56963,3},{1397,56969,3},{1398,56969,3}, {1398,56971,3},{1400,56971,3},{1405,56983,3},{1410,56984,3},{1410,56988,3}, {1413,56994,3},{1423,56998,3},{1425,57003,3},{1427,57003,3},{1428,57004,3}, {1430,57009,3},{1430,57014,3},{1433,57019,3},{1435,57021,3},{1440,57016,3}, {1448,57021,3},{1453,57023,3},{1457,57021,3},{1457,57024,3},{1455,57028,3}, {1457,57033,3},{1460,57034,3},{1460,57031,3},{1463,57034,3},{1467,57031,3}, {1467,57033,3},{1470,57034,3},{1473,57038,3},{1477,57043,3},{1480,57046,3}, {1483,57053,3},{1480,57056,3},{1477,57061,3},{1475,57059,3},{1475,57061,3}, {1472,57061,3},{1468,57066,3},{1468,57068,3},{1465,57078,3},{1465,57083,3}, {1463,57083,3},{1462,57088,3},{1463,57094,3},{1472,57099,3},{1467,57103,3}, {1467,57109,3},{1468,57109,3},{1473,57109,3},{1477,57113,3},{1472,57118,3}, {1473,57126,3},{1478,57124,3},{1478,57126,3},{1478,57128,3},{1477,57128,3}, {1477,57131,3},{1475,57133,3},{1477,57141,3},{1475,57143,3},{1477,57143,3}, {1480,57144,3},{1477,57146,3},{1478,57148,3},{1478,57149,3},{1480,57153,3}, {1480,57156,3},{1482,57154,3},{1483,57161,3},{1485,57161,3},{1483,57166,3}, {1487,57164,3},{1488,57168,3},{1488,57173,3},{1487,57174,3},{1490,57176,3}, {1492,57179,3},{1493,57181,3},{1493,57183,3},{1495,57181,3},{1495,57183,3}, {1497,57183,3},{1497,57184,3},{1502,57186,3},{1498,57191,3},{1500,57194,3}, {1502,57198,3},{1500,57201,3},{1500,57208,3},{1498,57208,3},{1500,57223,3}, {1497,57219,3},{1498,57216,3},{1480,57206,3},{1480,57203,3},{1482,57206,3}, {1482,57204,3},{1483,57204,3},{1483,57208,3},{1490,57206,3},{1492,57204,3}, {1488,57199,3},{1480,57194,3},{1480,57198,3},{1475,57198,3},{1473,57201,3}, {1473,57203,3},{1475,57204,3},{1477,57201,3},{1477,57203,3},{1475,57204,3}, {1478,57204,3},{1477,57206,3},{1463,57208,3},{1445,57216,3},{1433,57218,3}, {1427,57216,3},{1417,57209,3},{1405,57203,3},{1400,57196,3},{1395,57193,3}, {1363,57184,3},{1353,57184,3},{1345,57181,3},{1322,57179,3},{1290,57186,3}, {1282,57184,3},{1262,57183,3},{1253,57184,3},{1247,57188,3},{1240,57188,3}, {1238,57186,3},{1238,57178,3},{1237,57174,3},{1238,57173,3},{1242,57176,3}, {1248,57173,3},{1257,57173,3},{1257,57179,3},{1258,57179,3},{1267,57179,3}, {1272,57181,3},{1275,57179,3},{1277,57183,3},{1280,57181,3},{1282,57176,3}, {1280,57173,3},{1280,57171,3},{1277,57173,3},{1275,57171,3},{1273,57174,3}, {1272,57174,3},{1268,57176,3},{1262,57178,3},{1255,57166,3},{1255,57161,3}, {1252,57159,3},{1247,57158,3},{1248,57163,3},{1247,57163,3},{1233,57164,3}, {1233,57166,3},{1235,57168,3},{1233,57169,3},{1228,57169,3},{1235,57171,3}, {1235,57173,3},{1233,57174,3},{1223,57169,3},{1215,57168,3},{1198,57169,3}, {1207,57164,3},{1208,57164,3},{1210,57168,3},{1217,57164,3},{1217,57158,3}, {1215,57159,3},{1215,57163,3},{1212,57166,3},{1205,57163,3},{1205,57156,3}, {1202,57161,3},{1193,57159,3},{1187,57153,3},{1180,57159,3},{1180,57163,3}, {1183,57161,3},{1187,57163,3},{1185,57166,3},{1162,57171,3},{1160,57171,3}, {1160,57168,3},{1157,57164,3},{1155,57159,3},{1145,57158,3},{1143,57154,3}, {1142,57153,3},{1132,57149,3},{1117,57151,3},{1107,57156,3},{1092,57164,3}, {1092,57166,3},{1093,57166,3},{1092,57171,3},{1092,57169,3},{1082,57171,3}, {1080,57169,3},{1077,57158,3},{1072,57151,3},{1072,57148,3},{1070,57144,3}, {1077,57136,3},{1078,57136,3},{1078,57131,3},{1077,57129,3},{1077,57124,3}, {1078,57123,3},{1078,57116,3},{1082,57113,3},{1083,57116,3},{1087,57114,3}, {1092,57104,3},{1095,57101,3},{1098,57103,3},{1100,57101,3},{1097,57098,3}, {1097,57091,3},{1100,57088,3},{1103,57081,3},{1105,57079,3},{1103,57076,3}, {1107,57069,3},{1093,57046,3},{1112,57001,3},{1113,56994,3},{1117,56983,3}, {1122,56979,3},{1122,56974,3},{1107,56968,3},{1297,56806,131},{1303,56809,3}, {1303,56804,3},{1307,56801,3},{1310,56806,3},{1312,56796,3},{1310,56794,3}, {1313,56794,3},{1323,56789,3},{1327,56788,3},{1327,56784,3},{1335,56791,3}, {1337,56798,3},{1340,56798,3},{1342,56796,3},{1340,56793,3},{1342,56791,3}, {1340,56788,3},{1335,56789,3},{1335,56783,3},{1335,56781,3},{1337,56781,3}, {1338,56778,3},{1337,56774,3},{1340,56776,3},{1342,56774,3},{1343,56774,3}, {1347,56773,3},{1343,56771,3},{1338,56769,3},{1335,56764,3},{1335,56761,3}, {1340,56758,3},{1340,56753,3},{1343,56753,3},{1345,56756,3},{1345,56759,3}, {1343,56761,3},{1345,56764,3},{1350,56764,3},{1352,56761,3},{1350,56759,3}, {1353,56758,3},{1362,56761,3},{1368,56761,3},{1372,56764,3},{1375,56763,3}, {1382,56766,3},{1390,56758,3},{1390,56749,3},{1390,56746,3},{1388,56744,3}, {1390,56741,3},{1387,56736,3},{1393,56733,3},{1393,56731,3},{1397,56729,3}, {1398,56724,3},{1398,56719,3},{1398,56716,3},{1393,56713,3},{1393,56711,3}, {1390,56709,3},{1388,56704,3},{1390,56703,3},{1387,56701,3},{1388,56698,3}, {1388,56694,3},{1385,56689,3},{1387,56688,3},{1398,56686,3},{1398,56679,3}, {1403,56666,3},{1410,56663,3},{1412,56656,3},{1418,56649,3},{1420,56641,3}, {1425,56638,3},{1428,56634,3},{1433,56634,3},{1443,56601,3},{1448,56601,3}, {1450,56606,3},{1458,56611,3},{1458,56616,3},{1457,56619,3},{1460,56621,3}, {1467,56621,3},{1472,56623,3},{1473,56619,3},{1478,56619,3},{1485,56614,3}, {1488,56614,3},{1492,56618,3},{1498,56621,3},{1500,56618,3},{1507,56621,3}, {1513,56638,3},{1525,56653,3},{1535,56669,3},{1542,56676,3},{1543,56681,3}, {1563,56703,3},{1567,56704,3},{1568,56713,3},{1572,56713,3},{1572,56714,3}, {1568,56721,3},{1568,56724,3},{1573,56728,3},{1577,56733,3},{1578,56733,3}, {1578,56738,3},{1582,56743,3},{1583,56744,3},{1585,56741,3},{1587,56741,3}, {1587,56746,3},{1588,56749,3},{1590,56754,3},{1590,56761,3},{1592,56764,3}, {1588,56773,3},{1590,56773,3},{1593,56778,3},{1590,56774,3},{1587,56776,3}, {1580,56783,3},{1578,56789,3},{1578,56791,3},{1582,56794,3},{1582,56798,3}, {1585,56801,3},{1575,56841,3},{1577,56853,3},{1580,56859,3},{1578,56868,3}, {1580,56888,3},{1577,56894,3},{1577,56901,3},{1582,56909,3},{1585,56913,3}, {1588,56918,3},{1590,56924,3},{1590,56936,3},{1592,56941,3},{1597,56946,3}, {1600,56946,3},{1600,56939,3},{1602,56934,3},{1603,56936,3},{1602,56946,3}, {1602,56949,3},{1600,56959,3},{1597,56968,3},{1593,56968,3},{1595,56969,3}, {1592,56976,3},{1588,56986,3},{1590,57018,3},{1593,57026,3},{1598,57033,3}, {1598,57039,3},{1588,57068,3},{1587,57074,3},{1582,57073,3},{1577,57076,3}, {1578,57079,3},{1582,57079,3},{1582,57081,3},{1578,57081,3},{1578,57084,3}, {1578,57088,3},{1582,57089,3},{1582,57096,3},{1585,57079,3},{1587,57078,3}, {1583,57096,3},{1583,57109,3},{1572,57121,3},{1568,57126,3},{1545,57151,3}, {1540,57164,3},{1538,57163,3},{1543,57151,3},{1545,57146,3},{1547,57146,3}, {1552,57143,3},{1553,57136,3},{1553,57133,3},{1552,57131,3},{1552,57128,3}, {1553,57128,3},{1553,57129,3},{1555,57129,3},{1553,57126,3},{1548,57128,3}, {1555,57123,3},{1555,57114,3},{1552,57116,3},{1552,57118,3},{1548,57118,3}, {1550,57119,3},{1550,57121,3},{1553,57121,3},{1553,57123,3},{1545,57128,3}, {1543,57124,3},{1540,57124,3},{1535,57128,3},{1533,57133,3},{1535,57134,3}, {1537,57133,3},{1535,57136,3},{1532,57134,3},{1530,57136,3},{1530,57143,3}, {1528,57141,3},{1523,57144,3},{1525,57153,3},{1527,57153,3},{1532,57146,3}, {1535,57138,3},{1540,57133,3},{1542,57136,3},{1540,57141,3},{1533,57149,3}, {1532,57154,3},{1530,57156,3},{1527,57154,3},{1528,57158,3},{1527,57159,3}, {1520,57161,3},{1522,57161,3},{1520,57164,3},{1522,57164,3},{1523,57166,3}, {1525,57173,3},{1528,57174,3},{1528,57183,3},{1525,57184,3},{1520,57181,3}, {1523,57178,3},{1520,57174,3},{1517,57174,3},{1520,57176,3},{1517,57176,3}, {1515,57179,3},{1520,57184,3},{1522,57188,3},{1523,57186,3},{1528,57186,3}, {1530,57183,3},{1532,57178,3},{1530,57174,3},{1532,57174,3},{1537,57164,3}, {1540,57166,3},{1535,57174,3},{1525,57198,3},{1522,57201,3},{1510,57204,3}, {1507,57208,3},{1503,57213,3},{1500,57223,3},{1498,57208,3},{1500,57208,3}, {1500,57201,3},{1502,57198,3},{1500,57194,3},{1498,57191,3},{1502,57186,3}, {1497,57184,3},{1497,57183,3},{1495,57183,3},{1495,57181,3},{1493,57183,3}, {1493,57181,3},{1492,57179,3},{1490,57176,3},{1487,57174,3},{1488,57173,3}, {1488,57168,3},{1487,57164,3},{1483,57166,3},{1485,57161,3},{1483,57161,3}, {1482,57154,3},{1480,57156,3},{1480,57153,3},{1478,57149,3},{1478,57148,3}, {1477,57146,3},{1480,57144,3},{1477,57143,3},{1475,57143,3},{1477,57141,3}, {1475,57133,3},{1477,57131,3},{1477,57128,3},{1478,57128,3},{1478,57126,3}, {1478,57124,3},{1473,57126,3},{1472,57118,3},{1477,57113,3},{1473,57109,3}, {1468,57109,3},{1467,57109,3},{1467,57103,3},{1472,57099,3},{1463,57094,3}, {1462,57088,3},{1463,57083,3},{1465,57083,3},{1465,57078,3},{1468,57068,3}, {1468,57066,3},{1472,57061,3},{1475,57061,3},{1475,57059,3},{1477,57061,3}, {1480,57056,3},{1483,57053,3},{1480,57046,3},{1477,57043,3},{1473,57038,3}, {1470,57034,3},{1467,57033,3},{1467,57031,3},{1463,57034,3},{1460,57031,3}, {1460,57034,3},{1457,57033,3},{1455,57028,3},{1457,57024,3},{1457,57021,3}, {1453,57023,3},{1448,57021,3},{1440,57016,3},{1435,57021,3},{1433,57019,3}, {1430,57014,3},{1430,57009,3},{1428,57004,3},{1427,57003,3},{1425,57003,3}, {1423,56998,3},{1413,56994,3},{1410,56988,3},{1410,56984,3},{1405,56983,3}, {1400,56971,3},{1398,56971,3},{1398,56969,3},{1397,56969,3},{1397,56963,3}, {1388,56961,3},{1387,56964,3},{1383,56963,3},{1383,56956,3},{1387,56953,3}, {1392,56951,3},{1392,56944,3},{1400,56934,3},{1402,56934,3},{1405,56936,3}, {1407,56934,3},{1403,56924,3},{1398,56923,3},{1397,56919,3},{1390,56914,3}, {1383,56908,3},{1380,56908,3},{1377,56903,3},{1375,56896,3},{1378,56891,3}, {1377,56888,3},{1380,56883,3},{1378,56879,3},{1377,56871,3},{1378,56866,3}, {1375,56859,3},{1367,56859,3},{1363,56861,3},{1358,56861,3},{1343,56864,3}, {1338,56863,3},{1335,56866,3},{1330,56866,3},{1327,56861,3},{1330,56854,3}, {1325,56846,3},{1318,56843,3},{1315,56844,3},{1313,56843,3},{1310,56846,3}, {1307,56841,3},{1303,56841,3},{1300,56834,3},{1298,56834,3},{1298,56831,3}, {1300,56829,3},{1297,56806,3},{1343,56753,131},{1338,56749,3},{1337,56749,3}, {1328,56758,3},{1323,56753,3},{1320,56744,3},{1317,56746,3},{1315,56746,3}, {1317,56731,3},{1315,56714,3},{1317,56703,3},{1317,56701,3},{1318,56704,3}, {1320,56703,3},{1323,56701,3},{1320,56703,3},{1318,56696,3},{1317,56699,3}, {1317,56693,3},{1320,56693,3},{1320,56694,3},{1322,56694,3},{1325,56691,3}, {1325,56689,3},{1322,56691,3},{1322,56686,3},{1325,56683,3},{1327,56681,3}, {1328,56676,3},{1327,56671,3},{1327,56664,3},{1325,56671,3},{1327,56678,3}, {1322,56683,3},{1323,56676,3},{1320,56688,3},{1317,56691,3},{1318,56684,3}, {1323,56659,3},{1325,56653,3},{1328,56648,3},{1337,56631,3},{1343,56619,3}, {1348,56606,3},{1350,56586,3},{1350,56584,3},{1353,56568,3},{1353,56554,3}, {1362,56551,3},{1375,56526,3},{1383,56526,3},{1388,56528,3},{1390,56533,3}, {1393,56534,3},{1398,56543,3},{1403,56546,3},{1407,56554,3},{1403,56559,3}, {1403,56563,3},{1408,56561,3},{1417,56568,3},{1422,56574,3},{1420,56578,3}, {1423,56584,3},{1425,56584,3},{1427,56583,3},{1430,56581,3},{1432,56578,3}, {1435,56579,3},{1438,56578,3},{1442,56579,3},{1442,56583,3},{1438,56583,3}, {1443,56588,3},{1443,56589,3},{1442,56593,3},{1445,56596,3},{1443,56601,3}, {1433,56634,3},{1428,56634,3},{1425,56638,3},{1420,56641,3},{1418,56649,3}, {1412,56656,3},{1410,56663,3},{1403,56666,3},{1398,56679,3},{1398,56686,3}, {1387,56688,3},{1385,56689,3},{1388,56694,3},{1388,56698,3},{1387,56701,3}, {1390,56703,3},{1388,56704,3},{1390,56709,3},{1393,56711,3},{1393,56713,3}, {1398,56716,3},{1398,56719,3},{1398,56724,3},{1397,56729,3},{1393,56731,3}, {1393,56733,3},{1387,56736,3},{1390,56741,3},{1388,56744,3},{1390,56746,3}, {1390,56749,3},{1390,56758,3},{1382,56766,3},{1375,56763,3},{1372,56764,3}, {1368,56761,3},{1362,56761,3},{1353,56758,3},{1350,56759,3},{1352,56761,3}, {1350,56764,3},{1345,56764,3},{1343,56761,3},{1345,56759,3},{1345,56756,3}, {1343,56753,3},{1590,56644,131},{1590,56636,3},{1592,56631,3},{1590,56624,3}, {1592,56619,3},{1590,56618,3},{1590,56614,3},{1702,56621,3},{1782,56621,3}, {1795,56621,3},{1800,56633,3},{1800,56634,3},{1797,56638,3},{1797,56643,3}, {1788,56651,3},{1793,56653,3},{1798,56659,3},{1803,56661,3},{1807,56664,3}, {1812,56666,3},{1817,56668,3},{1818,56668,3},{1823,56676,3},{1830,56678,3}, {1833,56681,3},{1840,56683,3},{1848,56688,3},{1848,56689,3},{1848,56693,3}, {1848,56696,3},{1848,56708,3},{1848,56706,3},{1845,56708,3},{1843,56706,3}, {1838,56698,3},{1835,56698,3},{1837,56704,3},{1830,56699,3},{1835,56709,3}, {1837,56714,3},{1835,56714,3},{1835,56716,3},{1833,56718,3},{1835,56721,3}, {1837,56726,3},{1835,56726,3},{1832,56721,3},{1833,56726,3},{1832,56728,3}, {1830,56728,3},{1822,56728,3},{1812,56728,3},{1797,56721,3},{1788,56716,3}, {1772,56713,3},{1762,56708,3},{1757,56709,3},{1755,56713,3},{1753,56714,3}, {1750,56719,3},{1748,56718,3},{1748,56713,3},{1748,56711,3},{1723,56706,3}, {1712,56708,3},{1708,56709,3},{1707,56713,3},{1697,56716,3},{1693,56711,3}, {1690,56708,3},{1687,56708,3},{1682,56711,3},{1680,56708,3},{1677,56706,3}, {1665,56706,3},{1660,56703,3},{1650,56701,3},{1650,56699,3},{1660,56701,3}, {1667,56704,3},{1662,56701,3},{1658,56699,3},{1655,56698,3},{1655,56699,3}, {1655,56696,3},{1653,56699,3},{1647,56694,3},{1643,56694,3},{1642,56691,3}, {1640,56693,3},{1638,56689,3},{1627,56683,3},{1627,56679,3},{1625,56678,3}, {1628,56678,3},{1625,56676,3},{1628,56673,3},{1627,56671,3},{1625,56671,3}, {1623,56663,3},{1622,56661,3},{1617,56663,3},{1613,56661,3},{1612,56658,3}, {1608,56654,3},{1607,56651,3},{1603,56651,3},{1598,56644,3},{1595,56643,3}, {1592,56646,3},{1590,56644,3},{1455,56311,131},{1455,56314,3},{1458,56318,3}, {1468,56321,3},{1485,56318,3},{1490,56323,3},{1500,56321,3},{1502,56323,3}, {1503,56328,3},{1508,56329,3},{1512,56326,3},{1515,56323,3},{1520,56319,3}, {1523,56316,3},{1527,56314,3},{1530,56318,3},{1535,56321,3},{1540,56323,3}, {1545,56326,3},{1548,56328,3},{1553,56331,3},{1558,56334,3},{1563,56336,3}, {1567,56339,3},{1572,56341,3},{1577,56344,3},{1580,56348,3},{1585,56349,3}, {1590,56353,3},{1595,56356,3},{1598,56358,3},{1603,56361,3},{1608,56363,3}, {1608,56369,3},{1608,56374,3},{1608,56379,3},{1608,56386,3},{1608,56391,3}, {1608,56396,3},{1608,56401,3},{1608,56406,3},{1608,56413,3},{1608,56418,3}, {1608,56423,3},{1608,56428,3},{1608,56433,3},{1608,56439,3},{1608,56444,3}, {1608,56449,3},{1608,56454,3},{1608,56461,3},{1608,56466,3},{1608,56471,3}, {1608,56476,3},{1608,56481,3},{1608,56488,3},{1608,56491,3},{1610,56493,3}, {1610,56491,3},{1612,56489,3},{1613,56493,3},{1615,56491,3},{1617,56493,3}, {1618,56489,3},{1622,56489,3},{1623,56493,3},{1625,56489,3},{1627,56491,3}, {1627,56493,3},{1628,56493,3},{1628,56494,3},{1630,56491,3},{1633,56498,3}, {1637,56494,3},{1637,56498,3},{1638,56496,3},{1642,56496,3},{1643,56488,3}, {1645,56488,3},{1647,56486,3},{1647,56483,3},{1648,56481,3},{1648,56478,3}, {1648,56474,3},{1648,56473,3},{1652,56474,3},{1652,56471,3},{1655,56471,3}, {1658,56473,3},{1660,56473,3},{1658,56469,3},{1660,56471,3},{1665,56471,3}, {1673,56464,3},{1678,56456,3},{1680,56456,3},{1680,56451,3},{1682,56448,3}, {1683,56444,3},{1685,56443,3},{1687,56439,3},{1688,56441,3},{1690,56441,3}, {1690,56438,3},{1687,56438,3},{1690,56434,3},{1690,56429,3},{1693,56429,3}, {1698,56424,3},{1702,56424,3},{1703,56418,3},{1712,56413,3},{1713,56409,3}, {1718,56408,3},{1718,56401,3},{1722,56398,3},{1722,56394,3},{1723,56393,3}, {1725,56393,3},{1725,56398,3},{1725,56403,3},{1725,56409,3},{1725,56414,3}, {1725,56419,3},{1725,56424,3},{1725,56431,3},{1725,56436,3},{1725,56438,3}, {1730,56438,3},{1737,56438,3},{1742,56438,3},{1747,56438,3},{1752,56438,3}, {1757,56438,3},{1762,56438,3},{1767,56438,3},{1772,56438,3},{1777,56438,3}, {1782,56438,3},{1782,56443,3},{1782,56449,3},{1782,56454,3},{1782,56459,3}, {1782,56464,3},{1782,56469,3},{1782,56476,3},{1782,56481,3},{1782,56486,3}, {1782,56491,3},{1782,56498,3},{1782,56503,3},{1782,56508,3},{1782,56513,3}, {1782,56519,3},{1782,56524,3},{1782,56529,3},{1782,56534,3},{1782,56541,3}, {1782,56546,3},{1782,56551,3},{1782,56556,3},{1782,56561,3},{1782,56568,3}, {1782,56573,3},{1782,56578,3},{1782,56583,3},{1782,56589,3},{1782,56594,3}, {1782,56599,3},{1782,56604,3},{1782,56611,3},{1782,56616,3},{1782,56621,3}, {1702,56621,3},{1590,56614,3},{1590,56618,3},{1592,56619,3},{1590,56624,3}, {1592,56631,3},{1590,56636,3},{1590,56644,3},{1587,56649,3},{1587,56654,3}, {1587,56656,3},{1583,56661,3},{1582,56661,3},{1575,56674,3},{1572,56673,3}, {1570,56673,3},{1572,56676,3},{1573,56676,3},{1575,56678,3},{1577,56679,3}, {1578,56681,3},{1585,56681,3},{1583,56681,3},{1585,56688,3},{1593,56676,3}, {1595,56674,3},{1597,56676,3},{1595,56681,3},{1585,56693,3},{1580,56703,3}, {1573,56711,3},{1572,56714,3},{1572,56713,3},{1568,56713,3},{1567,56704,3}, {1563,56703,3},{1543,56681,3},{1542,56676,3},{1535,56669,3},{1525,56653,3}, {1513,56638,3},{1507,56621,3},{1500,56618,3},{1498,56621,3},{1492,56618,3}, {1488,56614,3},{1485,56614,3},{1478,56619,3},{1473,56619,3},{1472,56623,3}, {1467,56621,3},{1460,56621,3},{1457,56619,3},{1458,56616,3},{1458,56611,3}, {1450,56606,3},{1448,56601,3},{1443,56601,3},{1445,56596,3},{1442,56593,3}, {1443,56589,3},{1443,56588,3},{1438,56583,3},{1442,56583,3},{1442,56579,3}, {1438,56578,3},{1435,56579,3},{1432,56578,3},{1430,56581,3},{1427,56583,3}, {1425,56584,3},{1423,56584,3},{1420,56578,3},{1422,56574,3},{1417,56568,3}, {1408,56561,3},{1403,56563,3},{1403,56559,3},{1407,56554,3},{1403,56546,3}, {1398,56543,3},{1393,56534,3},{1390,56533,3},{1388,56528,3},{1383,56526,3}, {1375,56526,3},{1377,56521,3},{1378,56516,3},{1380,56511,3},{1382,56506,3}, {1385,56503,3},{1387,56498,3},{1388,56491,3},{1390,56488,3},{1392,56483,3}, {1393,56476,3},{1393,56471,3},{1393,56466,3},{1393,56461,3},{1393,56456,3}, {1392,56449,3},{1392,56444,3},{1392,56439,3},{1392,56433,3},{1392,56428,3}, {1392,56423,3},{1393,56418,3},{1393,56413,3},{1395,56408,3},{1397,56403,3}, {1398,56398,3},{1402,56393,3},{1403,56388,3},{1405,56383,3},{1407,56378,3}, {1410,56374,3},{1413,56369,3},{1415,56364,3},{1418,56361,3},{1422,56354,3}, {1423,56351,3},{1427,56348,3},{1430,56343,3},{1433,56339,3},{1437,56336,3}, {1440,56331,3},{1443,56328,3},{1447,56323,3},{1448,56318,3},{1452,56314,3}, {1455,56311,3},{1803,58359,131},{1807,58361,3},{1813,58361,3},{1820,58359,3}, {1832,58366,3},{1837,58356,3},{1842,58351,3},{1843,58346,3},{1848,58348,3}, {1860,58336,3},{1862,58339,3},{1863,58343,3},{1860,58346,3},{1862,58353,3}, {1870,58359,3},{1872,58363,3},{1877,58364,3},{1888,58364,3},{1892,58361,3}, {1895,58359,3},{1897,58354,3},{1895,58351,3},{1897,58351,3},{1898,58353,3}, {1900,58358,3},{1902,58361,3},{1910,58366,3},{1913,58371,3},{1915,58373,3}, {1922,58373,3},{1923,58366,3},{1928,58361,3},{1933,58359,3},{1935,58363,3}, {1940,58366,3},{1948,58368,3},{1962,58363,3},{1968,58363,3},{1970,58361,3}, {1970,58364,3},{1977,58363,3},{1977,58359,3},{1978,58358,3},{1982,58361,3}, {1983,58368,3},{1985,58369,3},{1990,58369,3},{1990,58383,3},{1990,58389,3}, {1985,58401,3},{1985,58406,3},{1982,58409,3},{1983,58414,3},{1987,58416,3}, {1983,58419,3},{1985,58421,3},{1985,58419,3},{1987,58419,3},{1987,58426,3}, {1992,58429,3},{1993,58436,3},{1992,58439,3},{1988,58441,3},{1988,58443,3}, {1990,58443,3},{1990,58453,3},{1987,58456,3},{1983,58458,3},{1983,58463,3}, {1975,58473,3},{1977,58484,3},{1978,58491,3},{1965,58508,3},{1962,58524,3}, {1963,58526,3},{1965,58528,3},{1968,58533,3},{1968,58541,3},{1962,58548,3}, {1953,58546,3},{1952,58549,3},{1943,58549,3},{1935,58554,3},{1928,58561,3}, {1930,58578,3},{1933,58583,3},{1932,58586,3},{1933,58591,3},{1932,58593,3}, {1930,58603,3},{1937,58613,3},{1935,58614,3},{1928,58613,3},{1930,58621,3}, {1918,58613,3},{1920,58604,3},{1918,58594,3},{1920,58589,3},{1922,58574,3}, {1922,58573,3},{1917,58574,3},{1912,58573,3},{1908,58574,3},{1910,58583,3}, {1908,58588,3},{1908,58591,3},{1910,58589,3},{1910,58591,3},{1908,58598,3}, {1907,58599,3},{1905,58601,3},{1905,58604,3},{1902,58611,3},{1902,58618,3}, {1902,58623,3},{1903,58621,3},{1905,58623,3},{1900,58626,3},{1898,58631,3}, {1898,58634,3},{1902,58634,3},{1903,58638,3},{1903,58644,3},{1898,58649,3}, {1898,58658,3},{1892,58668,3},{1878,58683,3},{1875,58689,3},{1867,58696,3}, {1865,58701,3},{1860,58704,3},{1850,58699,3},{1842,58691,3},{1835,58691,3}, {1835,58683,3},{1838,58678,3},{1837,58676,3},{1833,58676,3},{1828,58674,3}, {1820,58671,3},{1820,58661,3},{1827,58659,3},{1835,58653,3},{1838,58649,3}, {1842,58639,3},{1840,58639,3},{1838,58629,3},{1840,58619,3},{1845,58614,3}, {1843,58608,3},{1845,58604,3},{1843,58603,3},{1843,58593,3},{1840,58584,3}, {1842,58581,3},{1845,58574,3},{1840,58573,3},{1842,58569,3},{1845,58568,3}, {1847,58548,3},{1842,58539,3},{1842,58534,3},{1833,58529,3},{1823,58521,3}, {1822,58513,3},{1823,58508,3},{1823,58496,3},{1820,58484,3},{1822,58479,3}, {1823,58481,3},{1828,58476,3},{1832,58479,3},{1837,58479,3},{1840,58478,3}, {1842,58474,3},{1843,58468,3},{1842,58464,3},{1838,58466,3},{1835,58463,3}, {1835,58461,3},{1835,58456,3},{1833,58453,3},{1835,58451,3},{1830,58449,3}, {1825,58443,3},{1825,58439,3},{1830,58438,3},{1832,58431,3},{1830,58428,3}, {1825,58426,3},{1815,58431,3},{1792,58416,3},{1782,58406,3},{1767,58399,3}, {1762,58396,3},{1760,58394,3},{1775,58384,3},{1777,58378,3},{1777,58368,3}, {1783,58373,3},{1790,58369,3},{1792,58371,3},{1797,58369,3},{1802,58363,3}, {1803,58359,3},{1805,58356,3},{1812,58353,3},{1817,58346,3},{1820,58334,3}, {1823,58329,3},{1822,58313,3},{1823,58301,3},{1822,58284,3},{1822,58281,3}, {1817,58281,3},{1818,58273,3},{1817,58261,3},{1815,58261,3},{1813,58254,3}, {1813,58248,3},{1818,58236,3},{1818,58224,3},{1822,58218,3},{1823,58208,3}, {1822,58201,3},{1823,58201,3},{1825,58204,3},{1827,58198,3},{1825,58188,3}, {1823,58183,3},{1825,58181,3},{1825,58179,3},{1823,58179,3},{1822,58178,3}, {1822,58176,3},{1822,58174,3},{1825,58174,3},{1825,58173,3},{1822,58171,3}, {1825,58171,3},{1823,58169,3},{1823,58168,3},{1820,58164,3},{1817,58158,3}, {1813,58153,3},{1810,58153,3},{1803,58158,3},{1803,58148,3},{1813,58141,3}, {1825,58126,3},{1827,58121,3},{1830,58118,3},{1830,58113,3},{1830,58108,3}, {1828,58104,3},{1830,58099,3},{1833,58091,3},{1838,58091,3},{1843,58088,3}, {1857,58094,3},{1862,58094,3},{1863,58098,3},{1865,58104,3},{1865,58108,3}, {1867,58109,3},{1867,58119,3},{1860,58133,3},{1860,58139,3},{1857,58144,3}, {1857,58151,3},{1853,58158,3},{1855,58158,3},{1855,58163,3},{1857,58166,3}, {1858,58178,3},{1857,58178,3},{1855,58176,3},{1855,58164,3},{1853,58169,3}, {1850,58171,3},{1850,58176,3},{1853,58186,3},{1850,58199,3},{1847,58211,3}, {1848,58216,3},{1848,58223,3},{1845,58226,3},{1847,58238,3},{1845,58246,3}, {1843,58248,3},{1845,58251,3},{1843,58263,3},{1847,58268,3},{1855,58273,3}, {1857,58276,3},{1855,58283,3},{1853,58293,3},{1855,58294,3},{1853,58299,3}, {1853,58301,3},{1863,58301,3},{1867,58304,3},{1868,58303,3},{1872,58293,3}, {1877,58288,3},{1878,58281,3},{1890,58273,3},{1895,58264,3},{1900,58261,3}, {1905,58254,3},{1908,58254,3},{1910,58263,3},{1912,58264,3},{1913,58264,3}, {1915,58261,3},{1922,58256,3},{1928,58259,3},{1930,58264,3},{1932,58263,3}, {1933,58259,3},{1937,58259,3},{1938,58259,3},{1937,58263,3},{1938,58264,3}, {1942,58263,3},{1940,58266,3},{1940,58268,3},{1945,58266,3},{1945,58259,3}, {1950,58256,3},{1957,58239,3},{1960,58236,3},{1963,58226,3},{1962,58221,3}, {1965,58214,3},{1962,58213,3},{1963,58196,3},{1968,58189,3},{1975,58191,3}, {1978,58194,3},{1980,58198,3},{1982,58199,3},{1982,58194,3},{1983,58196,3}, {1983,58201,3},{1985,58208,3},{1990,58218,3},{1993,58219,3},{1992,58221,3}, {1990,58231,3},{1992,58238,3},{1990,58239,3},{1992,58243,3},{1995,58256,3}, {1988,58278,3},{1982,58286,3},{1980,58296,3},{1982,58298,3},{1975,58303,3}, {1975,58301,3},{1972,58304,3},{1973,58306,3},{1977,58304,3},{1975,58309,3}, {1977,58311,3},{1978,58311,3},{1978,58316,3},{1975,58316,3},{1975,58323,3}, {1973,58324,3},{1972,58331,3},{1970,58334,3},{1973,58339,3},{1972,58349,3}, {1968,58349,3},{1968,58346,3},{1967,58348,3},{1967,58351,3},{1965,58354,3}, {1967,58356,3},{1968,58351,3},{1972,58353,3},{1970,58361,3},{1968,58363,3}, {1962,58363,3},{1948,58368,3},{1940,58366,3},{1935,58363,3},{1933,58359,3}, {1928,58361,3},{1923,58366,3},{1922,58373,3},{1915,58373,3},{1913,58371,3}, {1910,58366,3},{1902,58361,3},{1900,58358,3},{1898,58353,3},{1897,58351,3}, {1895,58351,3},{1897,58354,3},{1895,58359,3},{1892,58361,3},{1888,58364,3}, {1877,58364,3},{1872,58363,3},{1870,58359,3},{1862,58353,3},{1860,58346,3}, {1863,58343,3},{1862,58339,3},{1860,58336,3},{1848,58348,3},{1843,58346,3}, {1842,58351,3},{1837,58356,3},{1832,58366,3},{1820,58359,3},{1813,58361,3}, {1807,58361,3},{1803,58359,3},{1455,56311,131},{1458,56308,3},{1462,56304,3}, {1465,56301,3},{1470,56296,3},{1473,56293,3},{1477,56289,3},{1480,56286,3}, {1485,56281,3},{1488,56278,3},{1492,56274,3},{1495,56271,3},{1498,56268,3}, {1503,56263,3},{1507,56259,3},{1510,56258,3},{1517,56251,3},{1515,56259,3}, {1508,56261,3},{1513,56261,3},{1517,56259,3},{1518,56254,3},{1518,56253,3}, {1522,56251,3},{1520,56249,3},{1518,56251,3},{1527,56238,3},{1530,56234,3}, {1535,56228,3},{1548,56216,3},{1553,56209,3},{1577,56181,3},{1592,56158,3}, {1600,56143,3},{1602,56143,3},{1600,56148,3},{1602,56151,3},{1608,56146,3}, {1612,56134,3},{1613,56131,3},{1613,56129,3},{1617,56126,3},{1623,56123,3}, {1620,56116,3},{1622,56106,3},{1630,56099,3},{1630,56096,3},{1628,56094,3}, {1625,56094,3},{1623,56093,3},{1623,56094,3},{1622,56093,3},{1620,56094,3}, {1615,56103,3},{1613,56109,3},{1615,56109,3},{1618,56103,3},{1617,56114,3}, {1613,56119,3},{1612,56118,3},{1608,56129,3},{1603,56133,3},{1600,56139,3}, {1603,56129,3},{1617,56096,3},{1618,56088,3},{1620,56064,3},{1620,56063,3}, {1622,56063,3},{1625,56073,3},{1628,56078,3},{1632,56078,3},{1637,56069,3}, {1632,56064,3},{1630,56064,3},{1630,56061,3},{1625,56058,3},{1628,56056,3}, {1632,56059,3},{1633,56059,3},{1637,56056,3},{1638,56056,3},{1643,56049,3}, {1640,56044,3},{1632,56039,3},{1632,56033,3},{1630,56033,3},{1628,56029,3}, {1627,56029,3},{1625,56039,3},{1625,56049,3},{1628,56053,3},{1627,56054,3}, {1625,56051,3},{1623,56043,3},{1622,56058,3},{1620,56061,3},{1622,56051,3}, {1618,56028,3},{1620,56023,3},{1618,56021,3},{1617,56021,3},{1615,56014,3}, {1613,56011,3},{1610,56009,3},{1605,55999,3},{1602,55999,3},{1598,55994,3}, {1590,55963,3},{1587,55959,3},{1582,55941,3},{1575,55931,3},{1575,55928,3}, {1568,55918,3},{1567,55908,3},{1568,55893,3},{1565,55888,3},{1565,55879,3}, {1572,55863,3},{1573,55853,3},{1582,55834,3},{1590,55823,3},{1592,55816,3}, {1597,55773,3},{1595,55769,3},{1597,55758,3},{1602,55749,3},{1603,55751,3}, {1607,55749,3},{1605,55748,3},{1615,55729,3},{1620,55719,3},{1622,55719,3}, {1618,55729,3},{1620,55729,3},{1622,55726,3},{1622,55721,3},{1623,55719,3}, {1622,55718,3},{1625,55704,3},{1627,55696,3},{1632,55681,3},{1635,55679,3}, {1642,55669,3},{1653,55663,3},{1655,55659,3},{1655,55651,3},{1652,55651,3}, {1655,55644,3},{1658,55636,3},{1660,55626,3},{1663,55616,3},{1663,55606,3}, {1667,55601,3},{1670,55566,3},{1678,55551,3},{1682,55553,3},{1687,55548,3}, {1687,55546,3},{1683,55548,3},{1682,55546,3},{1688,55543,3},{1693,55528,3}, {1695,55518,3},{1700,55508,3},{1710,55483,3},{1722,55448,3},{1727,55434,3}, {1727,55431,3},{1730,55431,3},{1737,55426,3},{1747,55409,3},{1752,55394,3}, {1753,55391,3},{1758,55391,3},{1762,55386,3},{1763,55379,3},{1767,55373,3}, {1772,55371,3},{1780,55361,3},{1788,55358,3},{1798,55341,3},{1798,55333,3}, {1798,55328,3},{1792,55321,3},{1798,55301,3},{1805,55279,3},{1807,55264,3}, {1818,55233,3},{1820,55224,3},{1827,55201,3},{1833,55188,3},{1850,55178,3}, {1858,55166,3},{1862,55168,3},{1867,55164,3},{1888,55139,3},{1900,55104,3}, {1903,55103,3},{1907,55104,3},{1910,55103,3},{1912,55099,3},{1908,55096,3}, {1910,55094,3},{1910,55091,3},{1913,55086,3},{1917,55069,3},{1920,55066,3}, {1922,55064,3},{1923,55063,3},{1922,55054,3},{1928,55056,3},{1930,55054,3}, {1928,55048,3},{1928,55046,3},{1935,55036,3},{1937,55034,3},{1942,55033,3}, {1945,55029,3},{1948,55029,3},{1957,55026,3},{1962,55014,3},{1972,55006,3}, {1978,55003,3},{1992,54991,3},{2008,54981,3},{2022,54979,3},{2025,54976,3}, {2040,54968,3},{2042,54968,3},{2048,54978,3},{2052,55001,3},{2055,55006,3}, {2057,55011,3},{2065,55013,3},{2077,55004,3},{2075,54994,3},{2077,54989,3}, {2078,54986,3},{2078,54981,3},{2082,54986,3},{2082,54989,3},{2088,54993,3}, {2090,54994,3},{2093,54996,3},{2098,55003,3},{2102,55004,3},{2103,55006,3}, {2103,55011,3},{2107,55013,3},{2123,55014,3},{2135,55013,3},{2140,55014,3}, {2145,55018,3},{2150,55016,3},{2152,55014,3},{2152,55008,3},{2160,54993,3}, {2167,54991,3},{2177,54986,3},{2188,54979,3},{2198,54971,3},{2228,54973,3}, {2237,54971,3},{2250,54963,3},{2252,54963,3},{2252,54964,3},{2253,54964,3}, {2255,54963,3},{2253,54961,3},{2257,54959,3},{2267,54954,3},{2270,54949,3}, {2278,54941,3},{2282,54936,3},{2285,54938,3},{2285,54934,3},{2283,54933,3}, {2285,54931,3},{2305,54914,3},{2308,54908,3},{2318,54898,3},{2318,54894,3}, {2323,54893,3},{2330,54888,3},{2333,54888,3},{2340,54884,3},{2347,54874,3}, {2360,54864,3},{2365,54856,3},{2370,54854,3},{2373,54851,3},{2387,54844,3}, {2398,54831,3},{2413,54811,3},{2420,54799,3},{2425,54796,3},{2428,54788,3}, {2435,54779,3},{2448,54756,3},{2452,54756,3},{2452,54759,3},{2448,54759,3}, {2438,54776,3},{2437,54784,3},{2433,54786,3},{2438,54781,3},{2438,54784,3}, {2435,54786,3},{2437,54788,3},{2437,54786,3},{2438,54788,3},{2452,54784,3}, {2452,54778,3},{2450,54776,3},{2452,54779,3},{2450,54781,3},{2447,54778,3}, {2445,54773,3},{2450,54769,3},{2448,54766,3},{2450,54763,3},{2452,54761,3}, {2458,54756,3},{2458,54751,3},{2462,54749,3},{2463,54743,3},{2457,54749,3}, {2453,54756,3},{2452,54754,3},{2463,54738,3},{2473,54734,3},{2478,54729,3}, {2478,54733,3},{2475,54738,3},{2478,54739,3},{2483,54734,3},{2485,54736,3}, {2490,54736,3},{2497,54738,3},{2500,54731,3},{2497,54731,3},{2492,54733,3}, {2482,54731,3},{2483,54724,3},{2503,54713,3},{2510,54703,3},{2510,54708,3}, {2505,54713,3},{2498,54718,3},{2497,54723,3},{2502,54723,3},{2502,54719,3}, {2503,54719,3},{2503,54721,3},{2505,54721,3},{2502,54726,3},{2500,54736,3}, {2503,54734,3},{2508,54731,3},{2512,54723,3},{2510,54723,3},{2510,54719,3}, {2517,54714,3},{2515,54708,3},{2517,54701,3},{2520,54701,3},{2518,54704,3}, {2523,54704,3},{2527,54699,3},{2520,54699,3},{2515,54696,3},{2520,54696,3}, {2527,54693,3},{2533,54674,3},{2535,54663,3},{2537,54664,3},{2535,54678,3}, {2540,54671,3},{2538,54659,3},{2540,54659,3},{2540,54663,3},{2545,54661,3}, {2543,54658,3},{2555,54659,3},{2553,54656,3},{2555,54654,3},{2557,54653,3}, {2557,54648,3},{2555,54646,3},{2552,54648,3},{2550,54648,3},{2545,54644,3}, {2547,54641,3},{2550,54643,3},{2550,54641,3},{2550,54634,3},{2547,54636,3}, {2547,54633,3},{2553,54624,3},{2558,54631,3},{2557,54636,3},{2553,54638,3}, {2558,54639,3},{2563,54644,3},{2568,54646,3},{2567,54648,3},{2572,54648,3}, {2577,54653,3},{2580,54653,3},{2580,54651,3},{2577,54651,3},{2570,54646,3}, {2565,54636,3},{2560,54633,3},{2558,54629,3},{2558,54624,3},{2558,54621,3}, {2565,54619,3},{2568,54611,3},{2565,54613,3},{2558,54621,3},{2555,54621,3}, {2563,54611,3},{2563,54596,3},{2567,54599,3},{2567,54606,3},{2572,54608,3}, {2573,54606,3},{2577,54599,3},{2575,54596,3},{2568,54598,3},{2568,54596,3}, {2570,54596,3},{2577,54596,3},{2578,54593,3},{2585,54594,3},{2585,54596,3}, {2585,54594,3},{2592,54594,3},{2593,54591,3},{2603,54594,3},{2612,54601,3}, {2630,54611,3},{2627,54611,3},{2627,54609,3},{2623,54608,3},{2617,54608,3}, {2615,54608,3},{2627,54614,3},{2632,54613,3},{2633,54614,3},{2632,54619,3}, {2628,54621,3},{2627,54619,3},{2625,54621,3},{2622,54626,3},{2625,54626,3}, {2628,54628,3},{2628,54624,3},{2630,54623,3},{2633,54623,3},{2638,54621,3}, {2638,54618,3},{2635,54619,3},{2635,54614,3},{2633,54611,3},{2643,54613,3}, {2653,54608,3},{2658,54603,3},{2667,54594,3},{2668,54589,3},{2670,54589,3}, {2670,54593,3},{2673,54588,3},{2673,54586,3},{2677,54584,3},{2673,54579,3}, {2672,54584,3},{2670,54583,3},{2670,54586,3},{2668,54584,3},{2670,54573,3}, {2667,54569,3},{2668,54564,3},{2673,54556,3},{2682,54549,3},{2692,54548,3}, {2698,54541,3},{2700,54541,3},{2693,54548,3},{2705,54544,3},{2710,54539,3}, {2712,54534,3},{2710,54531,3},{2710,54528,3},{2713,54514,3},{2717,54508,3}, {2715,54504,3},{2727,54494,3},{2730,54484,3},{2732,54491,3},{2738,54488,3}, {2737,54481,3},{2743,54481,3},{2747,54478,3},{2753,54478,3},{2760,54474,3}, {2765,54473,3},{2767,54473,3},{2765,54476,3},{2768,54479,3},{2770,54478,3}, {2768,54476,3},{2772,54478,3},{2773,54481,3},{2775,54476,3},{2778,54478,3}, {2778,54476,3},{2782,54474,3},{2782,54476,3},{2783,54478,3},{2783,54484,3}, {2787,54484,3},{2788,54476,3},{2788,54474,3},{2787,54476,3},{2787,54474,3}, {2790,54468,3},{2792,54458,3},{2790,54451,3},{2792,54454,3},{2795,54453,3}, {2798,54454,3},{2798,54451,3},{2793,54451,3},{2790,54448,3},{2790,54449,3}, {2783,54448,3},{2785,54446,3},{2787,54444,3},{2788,54443,3},{2790,54439,3}, {2792,54443,3},{2797,54436,3},{2793,54426,3},{2797,54426,3},{2797,54423,3}, {2805,54413,3},{2820,54403,3},{2822,54399,3},{2827,54398,3},{2833,54389,3}, {2838,54393,3},{2838,54388,3},{2847,54366,3},{2858,54359,3},{2877,54341,3}, {2878,54344,3},{2875,54349,3},{2877,54351,3},{2880,54351,3},{2880,54344,3}, {2883,54339,3},{2888,54333,3},{2890,54333,3},{2897,54324,3},{2897,54319,3}, {2900,54321,3},{2905,54318,3},{2913,54319,3},{2917,54318,3},{2918,54314,3}, {2925,54316,3},{2930,54316,3},{2933,54311,3},{2933,54303,3},{2930,54303,3}, {2933,54298,3},{2938,54294,3},{2945,54298,3},{2950,54298,3},{2952,54294,3}, {2955,54293,3},{2962,54286,3},{2968,54283,3},{2972,54278,3},{2977,54276,3}, {2983,54271,3},{2990,54269,3},{2992,54266,3},{2992,54263,3},{2992,54261,3}, {3000,54263,3},{3005,54261,3},{3022,54261,3},{3028,54254,3},{3028,54249,3}, {3035,54251,3},{3043,54249,3},{3058,54236,3},{3070,54228,3},{3082,54224,3}, {3095,54228,3},{3107,54224,3},{3108,54224,3},{3107,54226,3},{3100,54229,3}, {3107,54231,3},{3115,54233,3},{3123,54228,3},{3123,54221,3},{3120,54226,3}, {3120,54224,3},{3123,54218,3},{3128,54211,3},{3127,54209,3},{3125,54214,3}, {3123,54213,3},{3128,54193,3},{3128,54188,3},{3133,54174,3},{3135,54173,3}, {3135,54174,3},{3150,54173,3},{3158,54153,3},{3158,54149,3},{3162,54148,3}, {3160,54141,3},{3167,54139,3},{3165,54138,3},{3157,54138,3},{3157,54141,3}, {3152,54138,3},{3152,54134,3},{3150,54134,3},{3150,54121,3},{3152,54116,3}, {3157,54104,3},{3160,54103,3},{3165,54093,3},{3177,54078,3},{3177,54066,3}, {3180,54063,3},{3182,54056,3},{3190,54044,3},{3192,54036,3},{3197,54034,3}, {3195,54033,3},{3190,54034,3},{3190,54041,3},{3180,54049,3},{3180,54054,3}, {3172,54054,3},{3165,54058,3},{3158,54053,3},{3153,54051,3},{3115,54048,3}, {3110,54049,3},{3107,54054,3},{3100,54053,3},{3095,54063,3},{3092,54066,3}, {3080,54068,3},{3065,54066,3},{3057,54071,3},{3048,54074,3},{3028,54071,3}, {3027,54073,3},{3020,54069,3},{3013,54073,3},{3012,54076,3},{3000,54081,3}, {2998,54088,3},{2992,54091,3},{2992,54094,3},{2987,54096,3},{2983,54096,3}, {2980,54099,3},{2978,54103,3},{2977,54106,3},{2978,54109,3},{2977,54111,3}, {2975,54116,3},{2960,54131,3},{2947,54151,3},{2943,54154,3},{2935,54163,3}, {2927,54171,3},{2922,54171,3},{2918,54173,3},{2917,54176,3},{2912,54181,3}, {2905,54183,3},{2903,54181,3},{2897,54183,3},{2895,54181,3},{2888,54186,3}, {2890,54191,3},{2893,54189,3},{2897,54194,3},{2893,54196,3},{2895,54199,3}, {2893,54199,3},{2892,54201,3},{2888,54201,3},{2888,54203,3},{2885,54201,3}, {2880,54201,3},{2880,54206,3},{2883,54213,3},{2882,54216,3},{2878,54218,3}, {2873,54218,3},{2870,54221,3},{2865,54219,3},{2862,54223,3},{2848,54224,3}, {2843,54234,3},{2845,54244,3},{2843,54246,3},{2843,54248,3},{2843,54249,3}, {2828,54249,3},{2820,54258,3},{2813,54256,3},{2807,54259,3},{2803,54258,3}, {2800,54264,3},{2783,54261,3},{2780,54266,3},{2772,54269,3},{2772,54273,3}, {2763,54279,3},{2763,54286,3},{2757,54294,3},{2753,54301,3},{2750,54304,3}, {2733,54306,3},{2723,54316,3},{2722,54316,3},{2723,54314,3},{2723,54313,3}, {2720,54314,3},{2713,54326,3},{2710,54341,3},{2708,54341,3},{2705,54336,3}, {2700,54333,3},{2692,54339,3},{2690,54339,3},{2688,54343,3},{2683,54346,3}, {2677,54346,3},{2673,54344,3},{2672,54348,3},{2667,54351,3},{2663,54354,3}, {2655,54361,3},{2657,54364,3},{2660,54368,3},{2665,54364,3},{2670,54356,3}, {2687,54349,3},{2690,54351,3},{2690,54354,3},{2682,54364,3},{2680,54368,3}, {2675,54373,3},{2672,54379,3},{2657,54381,3},{2652,54391,3},{2647,54389,3}, {2642,54388,3},{2638,54393,3},{2637,54393,3},{2635,54396,3},{2630,54398,3}, {2628,54394,3},{2623,54396,3},{2613,54401,3},{2610,54404,3},{2603,54401,3}, {2600,54403,3},{2595,54399,3},{2585,54404,3},{2583,54406,3},{2578,54406,3}, {2572,54413,3},{2558,54419,3},{2555,54424,3},{2555,54431,3},{2553,54431,3}, {2553,54434,3},{2542,54434,3},{2532,54441,3},{2525,54441,3},{2520,54444,3}, {2517,54444,3},{2508,54451,3},{2502,54461,3},{2498,54461,3},{2490,54468,3}, {2480,54469,3},{2467,54463,3},{2458,54463,3},{2447,54466,3},{2438,54468,3}, {2428,54474,3},{2428,54478,3},{2422,54484,3},{2418,54506,3},{2417,54503,3}, {2418,54499,3},{2418,54496,3},{2413,54498,3},{2412,54499,3},{2413,54504,3}, {2415,54504,3},{2418,54509,3},{2425,54508,3},{2428,54506,3},{2433,54506,3}, {2435,54514,3},{2425,54523,3},{2417,54536,3},{2405,54539,3},{2402,54544,3}, {2405,54554,3},{2402,54556,3},{2392,54554,3},{2390,54554,3},{2380,54566,3}, {2373,54566,3},{2367,54568,3},{2358,54588,3},{2355,54589,3},{2345,54596,3}, {2342,54594,3},{2340,54596,3},{2337,54594,3},{2323,54593,3},{2313,54584,3}, {2307,54573,3},{2303,54566,3},{2298,54566,3},{2292,54553,3},{2288,54546,3}, {2287,54544,3},{2287,54541,3},{2290,54534,3},{2298,54529,3},{2313,54524,3}, {2333,54519,3},{2342,54511,3},{2357,54504,3},{2363,54496,3},{2368,54479,3}, {2373,54473,3},{2387,54459,3},{2392,54453,3},{2395,54446,3},{2402,54443,3}, {2412,54433,3},{2417,54421,3},{2418,54421,3},{2420,54414,3},{2433,54389,3}, {2435,54389,3},{2430,54399,3},{2433,54393,3},{2443,54383,3},{2443,54379,3}, {2447,54376,3},{2453,54371,3},{2458,54371,3},{2460,54368,3},{2458,54366,3}, {2457,54368,3},{2455,54366,3},{2457,54356,3},{2452,54359,3},{2452,54356,3}, {2465,54353,3},{2470,54349,3},{2475,54343,3},{2477,54343,3},{2475,54344,3}, {2480,54339,3},{2488,54336,3},{2488,54334,3},{2487,54336,3},{2483,54334,3}, {2478,54339,3},{2478,54336,3},{2475,54339,3},{2477,54336,3},{2475,54334,3}, {2477,54333,3},{2485,54333,3},{2483,54329,3},{2477,54331,3},{2473,54326,3}, {2477,54329,3},{2480,54326,3},{2487,54326,3},{2488,54323,3},{2492,54328,3}, {2492,54324,3},{2493,54324,3},{2495,54328,3},{2497,54326,3},{2503,54326,3}, {2502,54324,3},{2490,54321,3},{2490,54318,3},{2493,54319,3},{2497,54319,3}, {2497,54321,3},{2505,54324,3},{2517,54323,3},{2522,54326,3},{2523,54328,3}, {2527,54329,3},{2537,54329,3},{2542,54328,3},{2543,54329,3},{2545,54328,3}, {2548,54331,3},{2557,54329,3},{2572,54329,3},{2568,54328,3},{2557,54328,3}, {2552,54326,3},{2552,54324,3},{2572,54326,3},{2577,54324,3},{2595,54316,3}, {2603,54311,3},{2607,54306,3},{2610,54304,3},{2608,54303,3},{2622,54299,3}, {2627,54296,3},{2628,54293,3},{2627,54289,3},{2627,54286,3},{2630,54283,3}, {2633,54283,3},{2633,54273,3},{2633,54269,3},{2642,54258,3},{2643,54259,3}, {2643,54254,3},{2652,54246,3},{2655,54238,3},{2665,54226,3},{2668,54228,3}, {2667,54224,3},{2668,54219,3},{2672,54213,3},{2678,54213,3},{2688,54223,3}, {2697,54223,3},{2697,54219,3},{2695,54218,3},{2688,54218,3},{2683,54216,3}, {2682,54213,3},{2682,54216,3},{2680,54211,3},{2673,54211,3},{2680,54199,3}, {2682,54191,3},{2682,54196,3},{2685,54193,3},{2683,54189,3},{2682,54189,3}, {2677,54183,3},{2675,54183,3},{2675,54176,3},{2680,54168,3},{2682,54164,3}, {2690,54161,3},{2698,54151,3},{2700,54144,3},{2698,54136,3},{2702,54131,3}, {2710,54128,3},{2715,54119,3},{2717,54111,3},{2715,54106,3},{2718,54098,3}, {2718,54094,3},{2723,54093,3},{2725,54088,3},{2735,54088,3},{2742,54084,3}, {2745,54079,3},{2748,54076,3},{2753,54063,3},{2762,54056,3},{2765,54049,3}, {2765,54051,3},{2770,54049,3},{2770,54048,3},{2767,54046,3},{2772,54041,3}, {2773,54034,3},{2780,54033,3},{2783,54029,3},{2787,54031,3},{2783,54036,3}, {2783,54046,3},{2783,54051,3},{2782,54056,3},{2782,54061,3},{2778,54066,3}, {2777,54074,3},{2777,54088,3},{2788,54101,3},{2787,54103,3},{2778,54103,3}, {2773,54108,3},{2770,54119,3},{2772,54126,3},{2772,54133,3},{2768,54134,3}, {2772,54139,3},{2777,54133,3},{2775,54133,3},{2775,54129,3},{2772,54121,3}, {2773,54119,3},{2777,54113,3},{2780,54114,3},{2783,54113,3},{2785,54106,3}, {2787,54104,3},{2788,54108,3},{2795,54108,3},{2797,54113,3},{2805,54121,3}, {2803,54121,3},{2800,54119,3},{2797,54119,3},{2800,54121,3},{2802,54123,3}, {2807,54123,3},{2818,54124,3},{2822,54123,3},{2823,54119,3},{2827,54118,3}, {2840,54126,3},{2852,54129,3},{2858,54126,3},{2860,54121,3},{2867,54119,3}, {2868,54109,3},{2872,54109,3},{2875,54103,3},{2882,54101,3},{2883,54096,3}, {2888,54094,3},{2888,54093,3},{2892,54091,3},{2893,54088,3},{2893,54083,3}, {2893,54081,3},{2898,54079,3},{2898,54078,3},{2902,54074,3},{2905,54076,3}, {2912,54071,3},{2913,54064,3},{2920,54061,3},{2928,54049,3},{2938,54041,3}, {2942,54026,3},{2943,54018,3},{2948,54013,3},{2957,53996,3},{2963,53989,3}, {2963,53983,3},{2970,53979,3},{2972,53973,3},{2977,53966,3},{2987,53966,3}, {2993,53963,3},{2995,53961,3},{2995,53954,3},{3005,53958,3},{3010,53958,3}, {3015,53956,3},{3023,53956,3},{3033,53953,3},{3038,53949,3},{3040,53939,3}, {3045,53943,3},{3050,53938,3},{3045,53941,3},{3043,53934,3},{3037,53938,3}, {3038,53934,3},{3045,53933,3},{3062,53933,3},{3080,53931,3},{3090,53916,3}, {3095,53911,3},{3097,53903,3},{3108,53906,3},{3117,53904,3},{3122,53903,3}, {3135,53891,3},{3142,53886,3},{3145,53883,3},{3147,53876,3},{3152,53874,3}, {3155,53868,3},{3158,53869,3},{3158,53873,3},{3162,53871,3},{3167,53873,3}, {3172,53869,3},{3175,53864,3},{3173,53869,3},{3175,53874,3},{3183,53876,3}, {3192,53861,3},{3198,53858,3},{3200,53851,3},{3205,53849,3},{3213,53848,3}, {3223,53844,3},{3228,53834,3},{3230,53833,3},{3245,53824,3},{3253,53824,3}, {3253,53831,3},{3255,53836,3},{3255,53843,3},{3255,53849,3},{3257,53854,3}, {3257,53861,3},{3257,53866,3},{3258,53873,3},{3258,53879,3},{3258,53884,3}, {3258,53891,3},{3260,53898,3},{3260,53903,3},{3260,53909,3},{3262,53914,3}, {3262,53921,3},{3262,53928,3},{3262,53933,3},{3263,53939,3},{3263,53946,3}, {3263,53951,3},{3263,53958,3},{3265,53963,3},{3265,53969,3},{3265,53976,3}, {3267,53981,3},{3267,53988,3},{3267,53994,3},{3267,53999,3},{3268,54006,3}, {3268,54011,3},{3268,54018,3},{3268,54024,3},{3270,54029,3},{3270,54036,3}, {3270,54043,3},{3270,54048,3},{3272,54054,3},{3272,54059,3},{3272,54064,3}, {3265,54061,3},{3262,54056,3},{3255,54058,3},{3250,54054,3},{3248,54061,3}, {3247,54068,3},{3245,54073,3},{3243,54079,3},{3242,54084,3},{3240,54091,3}, {3238,54096,3},{3237,54103,3},{3235,54109,3},{3233,54114,3},{3230,54121,3}, {3228,54126,3},{3227,54133,3},{3225,54138,3},{3223,54144,3},{3222,54151,3}, {3220,54156,3},{3218,54163,3},{3217,54168,3},{3215,54174,3},{3213,54179,3}, {3212,54186,3},{3208,54191,3},{3207,54198,3},{3205,54204,3},{3203,54209,3}, {3202,54216,3},{3200,54221,3},{3198,54228,3},{3197,54233,3},{3195,54239,3}, {3193,54244,3},{3190,54251,3},{3188,54258,3},{3187,54263,3},{3185,54269,3}, {3183,54274,3},{3182,54281,3},{3180,54286,3},{3178,54293,3},{3177,54298,3}, {3175,54304,3},{3172,54309,3},{3170,54316,3},{3168,54321,3},{3167,54328,3}, {3165,54334,3},{3163,54339,3},{3162,54346,3},{3160,54351,3},{3157,54358,3}, {3155,54363,3},{3153,54369,3},{3152,54374,3},{3150,54381,3},{3148,54386,3}, {3147,54393,3},{3143,54398,3},{3142,54404,3},{3140,54409,3},{3138,54416,3}, {3137,54421,3},{3135,54428,3},{3133,54431,3},{3133,54438,3},{3133,54444,3}, {3133,54451,3},{3133,54458,3},{3133,54464,3},{3133,54471,3},{3133,54478,3}, {3133,54484,3},{3133,54491,3},{3133,54498,3},{3133,54504,3},{3133,54511,3}, {3133,54518,3},{3133,54524,3},{3133,54531,3},{3133,54538,3},{3133,54544,3}, {3133,54551,3},{3133,54558,3},{3133,54564,3},{3133,54571,3},{3133,54578,3}, {3133,54584,3},{3133,54591,3},{3133,54598,3},{3133,54604,3},{3133,54611,3}, {3133,54618,3},{3133,54624,3},{3133,54631,3},{3133,54638,3},{3133,54644,3}, {3133,54651,3},{3133,54653,3},{3133,54658,3},{3133,54664,3},{3133,54671,3}, {3133,54678,3},{3133,54684,3},{3133,54691,3},{3133,54698,3},{3133,54704,3}, {3133,54711,3},{3133,54716,3},{3138,54716,3},{3143,54716,3},{3150,54716,3}, {3157,54716,3},{3163,54716,3},{3170,54716,3},{3177,54716,3},{3178,54716,3}, {3178,54723,3},{3178,54729,3},{3178,54736,3},{3178,54741,3},{3178,54749,3}, {3178,54756,3},{3178,54761,3},{3178,54768,3},{3178,54776,3},{3178,54783,3}, {3178,54789,3},{3178,54794,3},{3178,54803,3},{3178,54809,3},{3178,54816,3}, {3178,54821,3},{3178,54828,3},{3178,54836,3},{3178,54843,3},{3178,54849,3}, {3178,54854,3},{3178,54861,3},{3178,54869,3},{3178,54876,3},{3178,54881,3}, {3178,54884,3},{3175,54888,3},{3175,54898,3},{3168,54903,3},{3148,54914,3}, {3143,54921,3},{3140,54936,3},{3137,54941,3},{3133,54943,3},{3125,54953,3}, {3118,54959,3},{3108,54976,3},{3102,54979,3},{3097,54986,3},{3095,54988,3}, {3090,54996,3},{3087,54998,3},{3082,55008,3},{3080,55009,3},{3080,55016,3}, {3070,55029,3},{3068,55036,3},{3062,55038,3},{3062,55043,3},{3057,55046,3}, {3050,55049,3},{3040,55051,3},{3038,55054,3},{3035,55054,3},{3032,55059,3}, {3028,55059,3},{3023,55066,3},{3018,55068,3},{3012,55068,3},{3005,55066,3}, {2997,55069,3},{2995,55068,3},{2982,55074,3},{2980,55079,3},{2972,55081,3}, {2963,55086,3},{2957,55094,3},{2953,55103,3},{2952,55108,3},{2948,55116,3}, {2947,55116,3},{2942,55119,3},{2933,55131,3},{2928,55148,3},{2927,55158,3}, {2925,55159,3},{2923,55158,3},{2920,55163,3},{2915,55173,3},{2915,55181,3}, {2907,55188,3},{2907,55191,3},{2902,55199,3},{2903,55201,3},{2902,55203,3}, {2902,55204,3},{2900,55204,3},{2900,55206,3},{2898,55221,3},{2900,55226,3}, {2907,55226,3},{2905,55228,3},{2908,55228,3},{2910,55233,3},{2918,55238,3}, {2920,55243,3},{2922,55246,3},{2922,55249,3},{2925,55246,3},{2932,55248,3}, {2935,55248,3},{2935,55251,3},{2940,55254,3},{2945,55254,3},{2952,55256,3}, {2955,55259,3},{2960,55259,3},{2960,55263,3},{2963,55263,3},{2967,55268,3}, {2975,55269,3},{2975,55278,3},{2977,55279,3},{2975,55283,3},{2978,55286,3}, {2977,55298,3},{2980,55299,3},{2985,55301,3},{2988,55306,3},{2987,55311,3}, {2985,55313,3},{2985,55318,3},{2982,55321,3},{2980,55328,3},{2980,55338,3}, {2982,55339,3},{2980,55344,3},{2980,55348,3},{2980,55353,3},{2982,55354,3}, {2978,55356,3},{2980,55359,3},{2977,55373,3},{2977,55379,3},{2982,55383,3}, {2980,55383,3},{2977,55383,3},{2978,55389,3},{2977,55393,3},{2977,55396,3}, {2975,55394,3},{2967,55401,3},{2965,55406,3},{2962,55404,3},{2958,55406,3}, {2962,55413,3},{2962,55414,3},{2958,55414,3},{2953,55414,3},{2953,55418,3}, {2950,55423,3},{2947,55431,3},{2938,55436,3},{2935,55443,3},{2928,55449,3}, {2928,55453,3},{2923,55459,3},{2917,55459,3},{2912,55469,3},{2900,55473,3}, {2892,55474,3},{2887,55479,3},{2883,55479,3},{2883,55483,3},{2868,55488,3}, {2863,55493,3},{2862,55493,3},{2860,55496,3},{2857,55496,3},{2853,55498,3}, {2850,55504,3},{2848,55501,3},{2843,55503,3},{2840,55503,3},{2832,55508,3}, {2828,55508,3},{2825,55513,3},{2823,55516,3},{2820,55518,3},{2815,55529,3}, {2808,55531,3},{2807,55534,3},{2800,55536,3},{2798,55543,3},{2793,55543,3}, {2790,55548,3},{2787,55548,3},{2785,55549,3},{2780,55549,3},{2778,55553,3}, {2777,55556,3},{2773,55558,3},{2772,55561,3},{2767,55566,3},{2765,55571,3}, {2763,55573,3},{2763,55578,3},{2757,55586,3},{2750,55584,3},{2748,55589,3}, {2740,55589,3},{2730,55584,3},{2730,55588,3},{2727,55588,3},{2727,55591,3}, {2722,55593,3},{2713,55591,3},{2710,55593,3},{2705,55589,3},{2700,55598,3}, {2693,55598,3},{2692,55601,3},{2688,55601,3},{2685,55609,3},{2662,55619,3}, {2655,55619,3},{2650,55628,3},{2642,55626,3},{2640,55628,3},{2640,55634,3}, {2638,55636,3},{2640,55638,3},{2640,55639,3},{2638,55641,3},{2640,55643,3}, {2637,55648,3},{2637,55656,3},{2632,55663,3},{2630,55661,3},{2630,55666,3}, {2627,55666,3},{2623,55671,3},{2625,55678,3},{2623,55681,3},{2625,55683,3}, {2620,55689,3},{2623,55691,3},{2620,55696,3},{2620,55699,3},{2615,55698,3}, {2615,55701,3},{2612,55706,3},{2608,55716,3},{2605,55716,3},{2607,55719,3}, {2607,55723,3},{2607,55724,3},{2607,55728,3},{2605,55728,3},{2603,55729,3}, {2607,55734,3},{2605,55736,3},{2605,55756,3},{2605,55758,3},{2603,55759,3}, {2603,55771,3},{2600,55774,3},{2597,55778,3},{2595,55779,3},{2590,55784,3}, {2588,55791,3},{2585,55793,3},{2585,55794,3},{2587,55796,3},{2583,55799,3}, {2585,55801,3},{2592,55801,3},{2593,55803,3},{2593,55808,3},{2597,55809,3}, {2595,55814,3},{2597,55823,3},{2570,55819,3},{2543,55808,3},{2513,55788,3}, {2503,55784,3},{2478,55778,3},{2432,55768,3},{2407,55764,3},{2378,55763,3}, {2378,55761,3},{2378,55754,3},{2377,55761,3},{2365,55761,3},{2375,55763,3}, {2375,55764,3},{2330,55759,3},{2290,55763,3},{2285,55761,3},{2292,55761,3}, {2290,55759,3},{2277,55756,3},{2277,55753,3},{2273,55753,3},{2273,55749,3}, {2270,55751,3},{2260,55748,3},{2258,55749,3},{2260,55751,3},{2262,55751,3}, {2267,55753,3},{2265,55753,3},{2260,55753,3},{2252,55751,3},{2233,55756,3}, {2227,55758,3},{2215,55758,3},{2197,55766,3},{2177,55781,3},{2168,55791,3}, {2160,55803,3},{2157,55804,3},{2148,55804,3},{2133,55796,3},{2127,55794,3}, {2137,55793,3},{2138,55789,3},{2142,55791,3},{2143,55788,3},{2148,55796,3}, {2147,55798,3},{2150,55799,3},{2153,55799,3},{2163,55788,3},{2178,55774,3}, {2190,55771,3},{2192,55768,3},{2208,55758,3},{2193,55764,3},{2182,55764,3}, {2167,55769,3},{2148,55779,3},{2147,55783,3},{2148,55788,3},{2143,55786,3}, {2137,55788,3},{2128,55793,3},{2125,55793,3},{2125,55796,3},{2113,55798,3}, {2097,55806,3},{2080,55816,3},{2075,55818,3},{2073,55816,3},{2068,55819,3}, {2053,55831,3},{2047,55841,3},{2030,55853,3},{2015,55868,3},{2008,55871,3}, {1987,55891,3},{1973,55896,3},{1967,55896,3},{1953,55899,3},{1947,55906,3}, {1943,55904,3},{1938,55906,3},{1933,55906,3},{1923,55919,3},{1922,55924,3}, {1912,55926,3},{1907,55931,3},{1905,55939,3},{1895,55941,3},{1887,55946,3}, {1883,55953,3},{1880,55961,3},{1877,55961,3},{1880,55954,3},{1882,55948,3}, {1887,55943,3},{1887,55941,3},{1885,55941,3},{1883,55943,3},{1882,55949,3}, {1880,55949,3},{1875,55954,3},{1875,55948,3},{1872,55949,3},{1872,55954,3}, {1875,55958,3},{1872,55968,3},{1870,55974,3},{1867,55978,3},{1868,55979,3}, {1870,55978,3},{1875,55963,3},{1880,55963,3},{1873,55971,3},{1872,55979,3}, {1870,55996,3},{1872,56008,3},{1870,56018,3},{1862,56031,3},{1855,56034,3}, {1853,56041,3},{1853,56054,3},{1852,56058,3},{1840,56063,3},{1828,56074,3}, {1818,56078,3},{1815,56083,3},{1815,56089,3},{1820,56119,3},{1830,56149,3}, {1825,56148,3},{1827,56156,3},{1828,56159,3},{1832,56159,3},{1833,56163,3}, {1835,56168,3},{1833,56168,3},{1833,56171,3},{1835,56178,3},{1837,56179,3}, {1840,56179,3},{1840,56174,3},{1837,56166,3},{1835,56164,3},{1835,56159,3}, {1830,56156,3},{1832,56151,3},{1835,56158,3},{1842,56178,3},{1843,56193,3}, {1843,56221,3},{1842,56219,3},{1840,56218,3},{1837,56219,3},{1837,56223,3}, {1838,56224,3},{1837,56224,3},{1835,56223,3},{1833,56223,3},{1837,56224,3}, {1838,56228,3},{1840,56228,3},{1842,56223,3},{1843,56223,3},{1845,56226,3}, {1843,56239,3},{1845,56244,3},{1850,56256,3},{1858,56264,3},{1858,56266,3}, {1853,56268,3},{1843,56269,3},{1855,56269,3},{1862,56268,3},{1862,56278,3}, {1868,56296,3},{1868,56314,3},{1873,56338,3},{1872,56341,3},{1868,56343,3}, {1862,56351,3},{1858,56349,3},{1860,56348,3},{1858,56343,3},{1863,56341,3}, {1860,56339,3},{1862,56334,3},{1858,56338,3},{1858,56333,3},{1855,56331,3}, {1853,56336,3},{1855,56341,3},{1850,56346,3},{1855,56343,3},{1857,56339,3}, {1860,56339,3},{1857,56341,3},{1857,56346,3},{1855,56344,3},{1855,56348,3}, {1852,56349,3},{1852,56348,3},{1850,56353,3},{1843,56351,3},{1838,56356,3}, {1840,56358,3},{1845,56354,3},{1843,56358,3},{1843,56359,3},{1847,56356,3}, {1848,56356,3},{1843,56374,3},{1845,56383,3},{1847,56386,3},{1843,56386,3}, {1843,56389,3},{1848,56388,3},{1848,56386,3},{1845,56383,3},{1848,56383,3}, {1852,56388,3},{1857,56403,3},{1862,56406,3},{1862,56411,3},{1865,56418,3}, {1867,56418,3},{1863,56406,3},{1867,56408,3},{1870,56409,3},{1873,56409,3}, {1878,56404,3},{1877,56401,3},{1878,56398,3},{1883,56398,3},{1890,56406,3}, {1895,56413,3},{1890,56404,3},{1888,56399,3},{1883,56394,3},{1882,56394,3}, {1880,56388,3},{1882,56384,3},{1890,56393,3},{1900,56419,3},{1908,56429,3}, {1912,56436,3},{1917,56444,3},{1925,56451,3},{1932,56459,3},{1935,56463,3}, {1963,56466,3},{1968,56464,3},{1977,56468,3},{1982,56473,3},{1988,56483,3}, {1997,56491,3},{2008,56486,3},{2012,56488,3},{2018,56486,3},{2023,56488,3}, {2030,56488,3},{2040,56489,3},{2052,56488,3},{2063,56489,3},{2073,56491,3}, {2082,56498,3},{2087,56499,3},{2097,56503,3},{2087,56499,3},{2083,56498,3}, {2078,56494,3},{2078,56493,3},{2103,56503,3},{2108,56513,3},{2113,56523,3}, {2117,56526,3},{2118,56536,3},{2123,56543,3},{2127,56554,3},{2130,56566,3}, {2130,56578,3},{2133,56594,3},{2137,56626,3},{2142,56651,3},{2143,56654,3}, {2145,56666,3},{2153,56676,3},{2155,56684,3},{2157,56691,3},{2155,56709,3}, {2157,56716,3},{2158,56728,3},{2160,56723,3},{2158,56716,3},{2157,56711,3}, {2162,56724,3},{2160,56731,3},{2160,56736,3},{2157,56748,3},{2153,56766,3}, {2152,56763,3},{2155,56751,3},{2150,56761,3},{2150,56774,3},{2152,56768,3}, {2153,56768,3},{2150,56779,3},{2150,56786,3},{2148,56788,3},{2148,56786,3}, {2147,56788,3},{2147,56796,3},{2145,56801,3},{2143,56811,3},{2148,56821,3}, {2152,56823,3},{2153,56823,3},{2155,56823,3},{2157,56821,3},{2157,56816,3}, {2153,56811,3},{2153,56803,3},{2155,56803,3},{2152,56796,3},{2150,56796,3}, {2153,56794,3},{2158,56799,3},{2157,56808,3},{2158,56814,3},{2162,56824,3}, {2158,56836,3},{2143,56846,3},{2145,56849,3},{2143,56853,3},{2137,56854,3}, {2130,56853,3},{2118,56854,3},{2115,56859,3},{2115,56863,3},{2112,56859,3}, {2103,56858,3},{2102,56854,3},{2083,56848,3},{2073,56838,3},{2062,56829,3}, {2057,56819,3},{2050,56813,3},{2030,56799,3},{2028,56799,3},{2028,56798,3}, {2027,56798,3},{2022,56793,3},{2010,56789,3},{1998,56789,3},{1990,56793,3}, {1985,56793,3},{1983,56789,3},{1978,56789,3},{1983,56788,3},{1985,56791,3}, {1992,56793,3},{1993,56789,3},{1997,56788,3},{1995,56788,3},{1987,56789,3}, {1988,56791,3},{1988,56789,3},{1980,56784,3},{1980,56783,3},{1982,56783,3}, {1980,56781,3},{1980,56778,3},{1963,56769,3},{1963,56768,3},{1968,56771,3}, {1967,56763,3},{1960,56763,3},{1958,56766,3},{1957,56768,3},{1957,56769,3}, {1950,56769,3},{1952,56771,3},{1955,56776,3},{1957,56779,3},{1955,56784,3}, {1953,56786,3},{1957,56788,3},{1957,56789,3},{1955,56789,3},{1955,56791,3}, {1958,56794,3},{1960,56793,3},{1960,56791,3},{1957,56793,3},{1958,56783,3}, {1958,56791,3},{1963,56793,3},{1958,56794,3},{1950,56793,3},{1945,56789,3}, {1940,56783,3},{1940,56779,3},{1940,56783,3},{1943,56781,3},{1940,56773,3}, {1935,56769,3},{1933,56769,3},{1935,56771,3},{1932,56771,3},{1932,56768,3}, {1930,56769,3},{1925,56768,3},{1922,56773,3},{1925,56776,3},{1928,56778,3}, {1932,56779,3},{1933,56786,3},{1932,56786,3},{1928,56784,3},{1932,56788,3}, {1932,56789,3},{1922,56783,3},{1910,56781,3},{1905,56776,3},{1905,56778,3}, {1895,56774,3},{1877,56771,3},{1867,56763,3},{1855,56763,3},{1852,56761,3}, {1842,56759,3},{1832,56753,3},{1818,56751,3},{1823,56751,3},{1822,56748,3}, {1823,56748,3},{1825,56749,3},{1832,56751,3},{1828,56748,3},{1830,56748,3}, {1833,56748,3},{1835,56746,3},{1837,56746,3},{1840,56743,3},{1843,56744,3}, {1850,56729,3},{1853,56728,3},{1855,56731,3},{1860,56731,3},{1868,56736,3}, {1870,56734,3},{1878,56736,3},{1882,56733,3},{1887,56733,3},{1885,56729,3}, {1878,56726,3},{1872,56724,3},{1873,56721,3},{1878,56723,3},{1873,56721,3}, {1873,56716,3},{1868,56711,3},{1867,56711,3},{1870,56716,3},{1873,56718,3}, {1872,56718,3},{1867,56716,3},{1870,56719,3},{1870,56721,3},{1867,56718,3}, {1848,56708,3},{1848,56696,3},{1848,56693,3},{1848,56689,3},{1848,56688,3}, {1840,56683,3},{1833,56681,3},{1830,56678,3},{1823,56676,3},{1818,56668,3}, {1817,56668,3},{1812,56666,3},{1807,56664,3},{1803,56661,3},{1798,56659,3}, {1793,56653,3},{1788,56651,3},{1797,56643,3},{1797,56638,3},{1800,56634,3}, {1800,56633,3},{1795,56621,3},{1782,56621,3},{1782,56616,3},{1782,56611,3}, {1782,56604,3},{1782,56599,3},{1782,56594,3},{1782,56589,3},{1782,56583,3}, {1782,56578,3},{1782,56573,3},{1782,56568,3},{1782,56561,3},{1782,56556,3}, {1782,56551,3},{1782,56546,3},{1782,56541,3},{1782,56534,3},{1782,56529,3}, {1782,56524,3},{1782,56519,3},{1782,56513,3},{1782,56508,3},{1782,56503,3}, {1782,56498,3},{1782,56491,3},{1782,56486,3},{1782,56481,3},{1782,56476,3}, {1782,56469,3},{1782,56464,3},{1782,56459,3},{1782,56454,3},{1782,56449,3}, {1782,56443,3},{1782,56438,3},{1777,56438,3},{1772,56438,3},{1767,56438,3}, {1762,56438,3},{1757,56438,3},{1752,56438,3},{1747,56438,3},{1742,56438,3}, {1737,56438,3},{1730,56438,3},{1725,56438,3},{1725,56436,3},{1725,56431,3}, {1725,56424,3},{1725,56419,3},{1725,56414,3},{1725,56409,3},{1725,56403,3}, {1725,56398,3},{1725,56393,3},{1723,56393,3},{1722,56394,3},{1722,56398,3}, {1718,56401,3},{1718,56408,3},{1713,56409,3},{1712,56413,3},{1703,56418,3}, {1702,56424,3},{1698,56424,3},{1693,56429,3},{1690,56429,3},{1690,56434,3}, {1687,56438,3},{1690,56438,3},{1690,56441,3},{1688,56441,3},{1687,56439,3}, {1685,56443,3},{1683,56444,3},{1682,56448,3},{1680,56451,3},{1680,56456,3}, {1678,56456,3},{1673,56464,3},{1665,56471,3},{1660,56471,3},{1658,56469,3}, {1660,56473,3},{1658,56473,3},{1655,56471,3},{1652,56471,3},{1652,56474,3}, {1648,56473,3},{1648,56474,3},{1648,56478,3},{1648,56481,3},{1647,56483,3}, {1647,56486,3},{1645,56488,3},{1643,56488,3},{1642,56496,3},{1638,56496,3}, {1637,56498,3},{1637,56494,3},{1633,56498,3},{1630,56491,3},{1628,56494,3}, {1628,56493,3},{1627,56493,3},{1627,56491,3},{1625,56489,3},{1623,56493,3}, {1622,56489,3},{1618,56489,3},{1617,56493,3},{1615,56491,3},{1613,56493,3}, {1612,56489,3},{1610,56491,3},{1610,56493,3},{1608,56491,3},{1608,56488,3}, {1608,56481,3},{1608,56476,3},{1608,56471,3},{1608,56466,3},{1608,56461,3}, {1608,56454,3},{1608,56449,3},{1608,56444,3},{1608,56439,3},{1608,56433,3}, {1608,56428,3},{1608,56423,3},{1608,56418,3},{1608,56413,3},{1608,56406,3}, {1608,56401,3},{1608,56396,3},{1608,56391,3},{1608,56386,3},{1608,56379,3}, {1608,56374,3},{1608,56369,3},{1608,56363,3},{1603,56361,3},{1598,56358,3}, {1595,56356,3},{1590,56353,3},{1585,56349,3},{1580,56348,3},{1577,56344,3}, {1572,56341,3},{1567,56339,3},{1563,56336,3},{1558,56334,3},{1553,56331,3}, {1548,56328,3},{1545,56326,3},{1540,56323,3},{1535,56321,3},{1530,56318,3}, {1527,56314,3},{1523,56316,3},{1520,56319,3},{1515,56323,3},{1512,56326,3}, {1508,56329,3},{1503,56328,3},{1502,56323,3},{1500,56321,3},{1490,56323,3}, {1485,56318,3},{1468,56321,3},{1458,56318,3},{1455,56314,3},{1455,56311,3}, {3253,53824,131},{3265,53819,3},{3268,53814,3},{3270,53816,3},{3268,53818,3}, {3262,53821,3},{3262,53824,3},{3265,53824,3},{3268,53821,3},{3273,53814,3}, {3270,53813,3},{3267,53811,3},{3268,53809,3},{3277,53811,3},{3283,53808,3}, {3288,53811,3},{3300,53808,3},{3312,53803,3},{3325,53794,3},{3335,53786,3}, {3345,53771,3},{3348,53764,3},{3355,53758,3},{3360,53751,3},{3363,53741,3}, {3377,53724,3},{3377,53716,3},{3378,53714,3},{3377,53709,3},{3373,53709,3}, {3372,53708,3},{3375,53701,3},{3375,53696,3},{3378,53694,3},{3383,53698,3}, {3385,53698,3},{3393,53693,3},{3405,53683,3},{3403,53661,3},{3403,53658,3}, {3402,53656,3},{3405,53644,3},{3408,53634,3},{3412,53624,3},{3412,53623,3}, {3412,53626,3},{3412,53624,3},{3417,53614,3},{3428,53609,3},{3428,53604,3}, {3435,53594,3},{3442,53583,3},{3442,53574,3},{3442,53568,3},{3440,53564,3}, {3442,53558,3},{3442,53549,3},{3447,53536,3},{3448,53524,3},{3447,53506,3}, {3445,53491,3},{3453,53486,3},{3457,53481,3},{3457,53474,3},{3462,53473,3}, {3470,53478,3},{3477,53474,3},{3485,53476,3},{3493,53471,3},{3505,53476,3}, {3510,53476,3},{3513,53474,3},{3518,53466,3},{3517,53461,3},{3522,53451,3}, {3525,53449,3},{3530,53449,3},{3537,53453,3},{3533,53453,3},{3535,53456,3}, {3537,53453,3},{3543,53451,3},{3547,53436,3},{3565,53421,3},{3567,53409,3}, {3573,53406,3},{3577,53406,3},{3588,53393,3},{3600,53389,3},{3603,53381,3}, {3618,53371,3},{3625,53356,3},{3628,53354,3},{3630,53349,3},{3640,53349,3}, {3652,53344,3},{3653,53346,3},{3657,53344,3},{3658,53341,3},{3660,53341,3}, {3665,53346,3},{3662,53351,3},{3663,53354,3},{3675,53358,3},{3673,53363,3}, {3675,53361,3},{3677,53359,3},{3682,53361,3},{3697,53349,3},{3698,53346,3}, {3695,53341,3},{3697,53338,3},{3695,53333,3},{3697,53328,3},{3702,53318,3}, {3712,53308,3},{3712,53306,3},{3722,53298,3},{3733,53299,3},{3748,53294,3}, {3750,53293,3},{3752,53288,3},{3758,53286,3},{3765,53289,3},{3778,53288,3}, {3782,53291,3},{3782,53298,3},{3778,53301,3},{3775,53299,3},{3773,53303,3}, {3772,53299,3},{3765,53299,3},{3762,53301,3},{3760,53306,3},{3758,53308,3}, {3758,53313,3},{3755,53313,3},{3753,53318,3},{3752,53318,3},{3750,53324,3}, {3747,53328,3},{3747,53336,3},{3748,53333,3},{3750,53333,3},{3752,53328,3}, {3770,53321,3},{3772,53319,3},{3772,53314,3},{3773,53313,3},{3775,53316,3}, {3778,53306,3},{3783,53306,3},{3783,53308,3},{3790,53306,3},{3792,53301,3}, {3797,53296,3},{3797,53299,3},{3802,53301,3},{3802,53308,3},{3807,53314,3}, {3803,53323,3},{3807,53334,3},{3802,53368,3},{3802,53369,3},{3803,53366,3}, {3805,53369,3},{3808,53371,3},{3810,53376,3},{3805,53384,3},{3805,53388,3}, {3800,53393,3},{3802,53394,3},{3812,53378,3},{3810,53371,3},{3807,53368,3}, {3805,53364,3},{3805,53361,3},{3807,53359,3},{3810,53366,3},{3815,53369,3}, {3808,53361,3},{3808,53351,3},{3807,53346,3},{3808,53348,3},{3810,53338,3}, {3815,53339,3},{3815,53336,3},{3813,53333,3},{3810,53331,3},{3805,53323,3}, {3807,53319,3},{3808,53313,3},{3812,53308,3},{3817,53298,3},{3813,53296,3}, {3812,53288,3},{3808,53289,3},{3802,53288,3},{3800,53293,3},{3798,53293,3}, {3797,53289,3},{3795,53289,3},{3793,53288,3},{3788,53294,3},{3788,53291,3}, {3790,53289,3},{3788,53289,3},{3783,53291,3},{3783,53288,3},{3792,53273,3}, {3793,53271,3},{3792,53271,3},{3790,53268,3},{3797,53261,3},{3800,53258,3}, {3805,53246,3},{3808,53244,3},{3807,53243,3},{3805,53244,3},{3802,53241,3}, {3800,53241,3},{3800,53236,3},{3805,53241,3},{3815,53243,3},{3820,53243,3}, {3823,53239,3},{3818,53246,3},{3810,53253,3},{3808,53256,3},{3812,53253,3}, {3825,53243,3},{3830,53239,3},{3833,53233,3},{3832,53233,3},{3832,53231,3}, {3837,53231,3},{3847,53226,3},{3857,53204,3},{3865,53196,3},{3873,53191,3}, {3875,53186,3},{3893,53166,3},{3897,53164,3},{3902,53169,3},{3912,53168,3}, {3918,53164,3},{3922,53161,3},{3937,53156,3},{3948,53158,3},{3957,53163,3}, {3962,53159,3},{3970,53159,3},{3977,53154,3},{3983,53154,3},{3998,53141,3}, {4002,53134,3},{4003,53131,3},{4010,53129,3},{4025,53104,3},{4033,53104,3}, {4045,53098,3},{4058,53103,3},{4065,53108,3},{4072,53109,3},{4077,53114,3}, {4072,53111,3},{4070,53114,3},{4072,53118,3},{4075,53116,3},{4080,53119,3}, {4082,53128,3},{4085,53129,3},{4085,53123,3},{4078,53118,3},{4078,53116,3}, {4087,53121,3},{4098,53126,3},{4103,53126,3},{4108,53123,3},{4115,53123,3}, {4122,53126,3},{4142,53133,3},{4153,53129,3},{4155,53131,3},{4157,53128,3}, {4170,53124,3},{4175,53121,3},{4178,53111,3},{4187,53118,3},{4195,53119,3}, {4200,53118,3},{4212,53103,3},{4222,53099,3},{4227,53096,3},{4230,53096,3}, {4233,53093,3},{4238,53096,3},{4248,53094,3},{4255,53098,3},{4267,53098,3}, {4270,53093,3},{4275,53089,3},{4275,53086,3},{4282,53086,3},{4285,53081,3}, {4303,53093,3},{4335,53099,3},{4335,53104,3},{4332,53104,3},{4330,53106,3}, {4333,53106,3},{4335,53109,3},{4337,53106,3},{4342,53111,3},{4343,53114,3}, {4338,53116,3},{4337,53123,3},{4345,53116,3},{4348,53118,3},{4338,53104,3}, {4357,53114,3},{4367,53118,3},{4370,53121,3},{4373,53124,3},{4372,53126,3}, {4372,53129,3},{4375,53124,3},{4375,53121,3},{4370,53121,3},{4370,53118,3}, {4400,53124,3},{4400,53126,3},{4407,53124,3},{4418,53126,3},{4433,53126,3}, {4443,53129,3},{4442,53136,3},{4445,53134,3},{4447,53129,3},{4462,53131,3}, {4462,53136,3},{4465,53136,3},{4465,53133,3},{4468,53131,3},{4473,53133,3}, {4483,53131,3},{4492,53134,3},{4492,53136,3},{4507,53136,3},{4518,53141,3}, {4522,53141,3},{4528,53143,3},{4533,53141,3},{4535,53138,3},{4537,53141,3}, {4543,53143,3},{4540,53143,3},{4542,53146,3},{4547,53141,3},{4550,53141,3}, {4552,53143,3},{4552,53146,3},{4548,53149,3},{4552,53153,3},{4553,53149,3}, {4558,53148,3},{4558,53144,3},{4560,53143,3},{4568,53146,3},{4572,53151,3}, {4572,53146,3},{4568,53144,3},{4572,53144,3},{4577,53141,3},{4578,53139,3}, {4582,53141,3},{4588,53143,3},{4595,53139,3},{4598,53144,3},{4603,53144,3}, {4613,53143,3},{4623,53138,3},{4617,53151,3},{4617,53156,3},{4613,53156,3}, {4612,53158,3},{4615,53159,3},{4620,53153,3},{4622,53159,3},{4618,53164,3}, {4620,53178,3},{4622,53176,3},{4622,53181,3},{4625,53186,3},{4625,53189,3}, {4622,53193,3},{4617,53196,3},{4615,53209,3},{4617,53216,3},{4620,53219,3}, {4617,53209,3},{4620,53204,3},{4623,53198,3},{4628,53193,3},{4627,53179,3}, {4628,53171,3},{4632,53168,3},{4630,53166,3},{4628,53161,3},{4630,53158,3}, {4627,53151,3},{4627,53146,3},{4633,53138,3},{4632,53134,3},{4628,53134,3}, {4628,53129,3},{4635,53133,3},{4665,53131,3},{4665,53134,3},{4663,53133,3}, {4658,53136,3},{4650,53134,3},{4640,53138,3},{4640,53143,3},{4645,53144,3}, {4642,53153,3},{4643,53153,3},{4645,53148,3},{4650,53144,3},{4653,53148,3}, {4657,53148,3},{4663,53143,3},{4662,53148,3},{4665,53144,3},{4668,53146,3}, {4672,53153,3},{4667,53158,3},{4670,53161,3},{4670,53158,3},{4675,53149,3}, {4673,53144,3},{4675,53141,3},{4672,53141,3},{4675,53129,3},{4692,53124,3}, {4693,53126,3},{4692,53128,3},{4687,53129,3},{4685,53134,3},{4685,53136,3}, {4688,53134,3},{4688,53133,3},{4690,53133,3},{4698,53156,3},{4698,53144,3}, {4700,53144,3},{4698,53139,3},{4705,53134,3},{4707,53129,3},{4707,53126,3}, {4703,53123,3},{4697,53124,3},{4693,53121,3},{4698,53121,3},{4707,53121,3}, {4722,53118,3},{4732,53113,3},{4733,53109,3},{4737,53111,3},{4737,53106,3}, {4767,53101,3},{4775,53096,3},{4777,53093,3},{4783,53089,3},{4785,53086,3}, {4788,53081,3},{4788,53078,3},{4800,53071,3},{4812,53068,3},{4817,53064,3}, {4822,53069,3},{4825,53068,3},{4833,53071,3},{4837,53066,3},{4840,53064,3}, {4838,53079,3},{4830,53096,3},{4825,53121,3},{4820,53133,3},{4818,53143,3}, {4817,53158,3},{4817,53166,3},{4815,53174,3},{4815,53188,3},{4815,53194,3}, {4813,53194,3},{4813,53201,3},{4813,53213,3},{4820,53226,3},{4817,53221,3}, {4815,53228,3},{4812,53233,3},{4807,53234,3},{4805,53236,3},{4807,53238,3}, {4810,53236,3},{4812,53241,3},{4810,53244,3},{4808,53246,3},{4807,53249,3}, {4803,53253,3},{4802,53249,3},{4800,53251,3},{4805,53254,3},{4810,53249,3}, {4812,53249,3},{4815,53253,3},{4817,53261,3},{4813,53263,3},{4812,53258,3}, {4808,53258,3},{4798,53269,3},{4795,53269,3},{4790,53276,3},{4788,53269,3}, {4785,53269,3},{4782,53264,3},{4770,53258,3},{4772,53254,3},{4782,53258,3}, {4787,53256,3},{4780,53254,3},{4783,53251,3},{4777,53253,3},{4773,53249,3}, {4767,53246,3},{4762,53239,3},{4752,53231,3},{4747,53226,3},{4737,53221,3}, {4735,53226,3},{4737,53236,3},{4745,53253,3},{4745,53249,3},{4738,53234,3}, {4740,53226,3},{4752,53234,3},{4762,53243,3},{4763,53246,3},{4768,53261,3}, {4775,53264,3},{4787,53274,3},{4785,53278,3},{4783,53279,3},{4783,53281,3}, {4793,53279,3},{4795,53276,3},{4792,53284,3},{4782,53288,3},{4780,53288,3}, {4777,53291,3},{4775,53288,3},{4777,53283,3},{4772,53278,3},{4775,53271,3}, {4770,53276,3},{4758,53278,3},{4767,53269,3},{4765,53268,3},{4760,53269,3}, {4758,53274,3},{4755,53269,3},{4757,53276,3},{4760,53283,3},{4755,53283,3}, {4753,53288,3},{4743,53281,3},{4737,53283,3},{4735,53279,3},{4730,53283,3}, {4728,53279,3},{4732,53269,3},{4733,53269,3},{4738,53274,3},{4742,53274,3}, {4740,53273,3},{4735,53264,3},{4730,53261,3},{4725,53264,3},{4723,53263,3}, {4722,53263,3},{4718,53261,3},{4722,53258,3},{4727,53254,3},{4732,53259,3}, {4742,53256,3},{4733,53253,3},{4730,53244,3},{4720,53243,3},{4718,53239,3}, {4715,53229,3},{4715,53236,3},{4712,53229,3},{4713,53234,3},{4720,53244,3}, {4718,53244,3},{4712,53241,3},{4710,53238,3},{4712,53241,3},{4715,53244,3}, {4707,53246,3},{4707,53248,3},{4710,53248,3},{4715,53248,3},{4718,53253,3}, {4715,53251,3},{4715,53256,3},{4718,53256,3},{4710,53264,3},{4712,53268,3}, {4720,53279,3},{4728,53284,3},{4733,53284,3},{4728,53294,3},{4730,53298,3}, {4733,53294,3},{4737,53304,3},{4740,53304,3},{4747,53301,3},{4750,53301,3}, {4760,53296,3},{4762,53299,3},{4758,53303,3},{4762,53303,3},{4767,53294,3}, {4773,53301,3},{4778,53298,3},{4783,53299,3},{4788,53304,3},{4797,53308,3}, {4798,53314,3},{4802,53318,3},{4803,53316,3},{4803,53313,3},{4803,53309,3}, {4808,53303,3},{4822,53298,3},{4823,53293,3},{4822,53291,3},{4817,53289,3}, {4813,53291,3},{4810,53298,3},{4805,53301,3},{4805,53298,3},{4812,53291,3}, {4812,53286,3},{4818,53283,3},{4823,53284,3},{4825,53286,3},{4825,53293,3}, {4823,53298,3},{4830,53298,3},{4837,53286,3},{4837,53283,3},{4840,53279,3}, {4843,53279,3},{4840,53273,3},{4842,53268,3},{4847,53269,3},{4850,53266,3}, {4852,53274,3},{4845,53278,3},{4848,53279,3},{4845,53283,3},{4845,53288,3}, {4853,53288,3},{4858,53279,3},{4858,53284,3},{4855,53289,3},{4855,53291,3}, {4860,53293,3},{4870,53284,3},{4873,53286,3},{4875,53284,3},{4878,53278,3}, {4875,53276,3},{4872,53273,3},{4872,53269,3},{4877,53271,3},{4880,53268,3}, {4878,53266,3},{4882,53266,3},{4887,53259,3},{4892,53261,3},{4893,53259,3}, {4893,53254,3},{4895,53254,3},{4897,53259,3},{4895,53263,3},{4898,53261,3}, {4900,53259,3},{4900,53266,3},{4900,53276,3},{4900,53286,3},{4900,53296,3}, {4900,53306,3},{4900,53316,3},{4900,53326,3},{4900,53336,3},{4900,53346,3}, {4900,53356,3},{4900,53366,3},{4900,53376,3},{4900,53386,3},{4900,53399,3}, {4900,53406,3},{4900,53416,3},{4900,53426,3},{4900,53436,3},{4900,53446,3}, {4900,53456,3},{4900,53466,3},{4900,53476,3},{4900,53486,3},{4900,53496,3}, {4900,53506,3},{4900,53516,3},{4900,53526,3},{4900,53536,3},{4900,53543,3}, {4900,53556,3},{4900,53566,3},{4900,53576,3},{4900,53586,3},{4900,53596,3}, {4900,53606,3},{4900,53616,3},{4900,53626,3},{4900,53636,3},{4900,53646,3}, {4900,53656,3},{4900,53666,3},{4900,53676,3},{4900,53686,3},{4900,53696,3}, {4900,53706,3},{4900,53716,3},{4900,53726,3},{4900,53736,3},{4900,53746,3}, {4900,53756,3},{4900,53766,3},{4900,53776,3},{4900,53786,3},{4900,53796,3}, {4900,53806,3},{4900,53816,3},{4900,53826,3},{4900,53833,3},{4900,53843,3}, {4900,53853,3},{4900,53863,3},{4900,53873,3},{4900,53883,3},{4900,53893,3}, {4900,53903,3},{4900,53913,3},{4900,53923,3},{4900,53931,3},{4900,53936,3}, {4900,53946,3},{4900,53956,3},{4900,53966,3},{4900,53976,3},{4900,53986,3}, {4900,53996,3},{4900,54006,3},{4900,54016,3},{4900,54026,3},{4900,54036,3}, {4900,54046,3},{4900,54056,3},{4900,54066,3},{4900,54076,3},{4900,54086,3}, {4900,54096,3},{4900,54106,3},{4900,54116,3},{4900,54129,3},{4900,54136,3}, {4900,54146,3},{4900,54156,3},{4900,54166,3},{4900,54176,3},{4900,54186,3}, {4900,54196,3},{4900,54206,3},{4900,54216,3},{4900,54223,3},{4900,54236,3}, {4900,54246,3},{4900,54256,3},{4900,54266,3},{4900,54276,3},{4900,54286,3}, {4900,54296,3},{4900,54306,3},{4900,54316,3},{4900,54326,3},{4900,54336,3}, {4900,54346,3},{4900,54356,3},{4900,54366,3},{4900,54376,3},{4900,54386,3}, {4900,54396,3},{4900,54406,3},{4900,54416,3},{4900,54426,3},{4900,54436,3}, {4900,54446,3},{4900,54456,3},{4900,54466,3},{4900,54476,3},{4900,54486,3}, {4900,54496,3},{4900,54506,3},{4900,54516,3},{4900,54526,3},{4900,54536,3}, {4900,54546,3},{4900,54556,3},{4900,54566,3},{4900,54576,3},{4900,54586,3}, {4900,54596,3},{4900,54606,3},{4900,54616,3},{4900,54626,3},{4900,54636,3}, {4900,54646,3},{4900,54656,3},{4900,54666,3},{4900,54676,3},{4900,54683,3}, {4900,54696,3},{4900,54706,3},{4900,54716,3},{4900,54726,3},{4900,54736,3}, {4900,54746,3},{4900,54756,3},{4900,54766,3},{4900,54776,3},{4900,54786,3}, {4900,54796,3},{4900,54806,3},{4900,54816,3},{4900,54826,3},{4900,54836,3}, {4900,54843,3},{4900,54856,3},{4900,54866,3},{4900,54876,3},{4900,54886,3}, {4900,54896,3},{4900,54906,3},{4900,54916,3},{4900,54926,3},{4900,54936,3}, {4900,54946,3},{4900,54956,3},{4900,54966,3},{4900,54979,3},{4900,54986,3}, {4900,54996,3},{4900,55006,3},{4900,55016,3},{4900,55026,3},{4900,55036,3}, {4900,55046,3},{4900,55056,3},{4900,55066,3},{4900,55076,3},{4900,55086,3}, {4900,55096,3},{4900,55106,3},{4900,55116,3},{4900,55124,3},{4900,55133,3}, {4900,55144,3},{4900,55156,3},{4900,55166,3},{4900,55176,3},{4900,55186,3}, {4900,55196,3},{4900,55206,3},{4900,55216,3},{4900,55226,3},{4900,55236,3}, {4900,55246,3},{4900,55256,3},{4900,55266,3},{4900,55276,3},{4900,55286,3}, {4900,55296,3},{4900,55306,3},{4900,55316,3},{4900,55326,3},{4900,55336,3}, {4900,55346,3},{4900,55356,3},{4900,55366,3},{4900,55376,3},{4900,55386,3}, {4900,55399,3},{4900,55406,3},{4900,55416,3},{4900,55426,3},{4900,55436,3}, {4900,55446,3},{4900,55456,3},{4900,55466,3},{4900,55476,3},{4900,55486,3}, {4900,55496,3},{4900,55506,3},{4900,55516,3},{4900,55526,3},{4900,55536,3}, {4900,55546,3},{4900,55556,3},{4900,55566,3},{4900,55576,3},{4900,55586,3}, {4900,55596,3},{4900,55606,3},{4900,55616,3},{4900,55626,3},{4900,55636,3}, {4900,55646,3},{4900,55656,3},{4900,55666,3},{4900,55676,3},{4900,55686,3}, {4900,55696,3},{4900,55706,3},{4900,55716,3},{4900,55726,3},{4900,55736,3}, {4900,55746,3},{4900,55756,3},{4900,55766,3},{4900,55776,3},{4900,55786,3}, {4900,55796,3},{4900,55806,3},{4900,55816,3},{4900,55826,3},{4900,55836,3}, {4900,55846,3},{4900,55856,3},{4900,55866,3},{4900,55876,3},{4900,55886,3}, {4900,55896,3},{4900,55906,3},{4900,55916,3},{4900,55926,3},{4900,55936,3}, {4900,55946,3},{4900,55956,3},{4900,55966,3},{4900,55976,3},{4900,55986,3}, {4900,55996,3},{4900,56006,3},{4900,56016,3},{4900,56021,3},{4907,56021,3}, {4913,56021,3},{4920,56021,3},{4927,56021,3},{4933,56021,3},{4938,56021,3}, {4937,56028,3},{4937,56043,3},{4932,56054,3},{4917,56056,3},{4897,56064,3}, {4888,56066,3},{4878,56066,3},{4875,56071,3},{4872,56078,3},{4870,56088,3}, {4872,56096,3},{4870,56106,3},{4870,56109,3},{4865,56113,3},{4863,56151,3}, {4862,56153,3},{4852,56156,3},{4852,56158,3},{4852,56171,3},{4853,56188,3}, {4857,56191,3},{4860,56191,3},{4863,56211,3},{4862,56224,3},{4862,56241,3}, {4858,56249,3},{4853,56264,3},{4853,56273,3},{4850,56274,3},{4848,56266,3}, {4845,56266,3},{4843,56271,3},{4845,56286,3},{4840,56291,3},{4832,56291,3}, {4823,56301,3},{4825,56308,3},{4830,56306,3},{4833,56309,3},{4835,56323,3}, {4835,56331,3},{4825,56338,3},{4823,56343,3},{4823,56348,3},{4820,56351,3}, {4820,56363,3},{4815,56368,3},{4812,56366,3},{4810,56366,3},{4810,56378,3}, {4805,56378,3},{4805,56379,3},{4805,56391,3},{4803,56394,3},{4805,56396,3}, {4808,56411,3},{4815,56423,3},{4823,56443,3},{4823,56449,3},{4823,56453,3}, {4818,56453,3},{4817,56458,3},{4812,56458,3},{4808,56461,3},{4812,56478,3}, {4808,56481,3},{4810,56488,3},{4810,56489,3},{4810,56496,3},{4812,56521,3}, {4810,56529,3},{4808,56531,3},{4802,56536,3},{4798,56546,3},{4803,56559,3}, {4802,56566,3},{4800,56578,3},{4798,56578,3},{4800,56573,3},{4797,56569,3}, {4797,56568,3},{4795,56566,3},{4788,56553,3},{4778,56516,3},{4772,56484,3}, {4762,56458,3},{4743,56426,3},{4720,56399,3},{4710,56379,3},{4702,56369,3}, {4700,56364,3},{4693,56354,3},{4682,56329,3},{4678,56326,3},{4677,56326,3}, {4670,56333,3},{4668,56341,3},{4670,56359,3},{4675,56376,3},{4678,56398,3}, {4687,56411,3},{4688,56416,3},{4687,56416,3},{4685,56418,3},{4688,56421,3}, {4687,56423,3},{4687,56424,3},{4688,56426,3},{4688,56431,3},{4692,56433,3}, {4695,56438,3},{4693,56443,3},{4697,56449,3},{4695,56453,3},{4695,56456,3}, {4690,56459,3},{4688,56458,3},{4682,56454,3},{4678,56449,3},{4675,56448,3}, {4670,56451,3},{4667,56444,3},{4662,56441,3},{4660,56441,3},{4660,56444,3}, {4663,56458,3},{4667,56463,3},{4667,56459,3},{4668,56463,3},{4670,56461,3}, {4663,56469,3},{4660,56479,3},{4660,56486,3},{4657,56491,3},{4658,56494,3}, {4662,56501,3},{4662,56506,3},{4668,56533,3},{4683,56556,3},{4683,56574,3}, {4685,56581,3},{4685,56594,3},{4688,56604,3},{4693,56614,3},{4700,56623,3}, {4700,56629,3},{4702,56641,3},{4712,56648,3},{4723,56671,3},{4722,56674,3}, {4713,56673,3},{4712,56684,3},{4708,56686,3},{4703,56684,3},{4705,56686,3}, {4698,56691,3},{4685,56688,3},{4680,56691,3},{4677,56688,3},{4683,56696,3}, {4687,56696,3},{4687,56701,3},{4690,56706,3},{4697,56718,3},{4697,56723,3}, {4690,56711,3},{4683,56708,3},{4690,56716,3},{4693,56729,3},{4690,56754,3}, {4688,56759,3},{4688,56761,3},{4683,56764,3},{4685,56768,3},{4682,56769,3}, {4682,56773,3},{4680,56776,3},{4675,56778,3},{4665,56789,3},{4663,56789,3}, {4660,56798,3},{4653,56798,3},{4652,56801,3},{4650,56823,3},{4653,56828,3}, {4655,56834,3},{4653,56839,3},{4650,56843,3},{4645,56849,3},{4645,56853,3}, {4648,56858,3},{4650,56859,3},{4645,56866,3},{4645,56869,3},{4643,56871,3}, {4657,56889,3},{4655,56893,3},{4668,56921,3},{4667,56926,3},{4670,56946,3}, {4668,56986,3},{4677,57009,3},{4678,57021,3},{4677,57031,3},{4678,57041,3}, {4672,57034,3},{4657,57034,3},{4653,57031,3},{4650,57033,3},{4648,57036,3}, {4650,57043,3},{4648,57044,3},{4645,57054,3},{4650,57071,3},{4648,57074,3}, {4645,57078,3},{4643,57076,3},{4642,57079,3},{4645,57089,3},{4650,57094,3}, {4650,57099,3},{4650,57104,3},{4643,57109,3},{4635,57114,3},{4628,57114,3}, {4625,57118,3},{4620,57109,3},{4618,57113,3},{4618,57121,3},{4615,57133,3}, {4610,57131,3},{4603,57138,3},{4603,57141,3},{4602,57146,3},{4597,57146,3}, {4595,57136,3},{4598,57121,3},{4598,57119,3},{4600,57101,3},{4598,57099,3}, {4600,57098,3},{4602,57091,3},{4598,57089,3},{4600,57086,3},{4598,57083,3}, {4603,57081,3},{4605,57071,3},{4603,57068,3},{4598,57068,3},{4597,57063,3}, {4593,57064,3},{4592,57063,3},{4588,57063,3},{4587,57066,3},{4585,57061,3}, {4588,57053,3},{4592,57051,3},{4593,57044,3},{4602,57034,3},{4607,57018,3}, {4607,57009,3},{4610,57004,3},{4610,56983,3},{4597,56969,3},{4598,56956,3}, {4597,56946,3},{4595,56943,3},{4593,56944,3},{4597,56934,3},{4597,56926,3}, {4597,56914,3},{4593,56908,3},{4590,56904,3},{4582,56901,3},{4575,56884,3}, {4572,56883,3},{4572,56878,3},{4567,56876,3},{4567,56874,3},{4562,56876,3}, {4560,56874,3},{4563,56868,3},{4568,56864,3},{4570,56869,3},{4578,56873,3}, {4578,56879,3},{4580,56878,3},{4585,56883,3},{4588,56881,3},{4590,56878,3}, {4583,56868,3},{4587,56859,3},{4582,56858,3},{4573,56851,3},{4572,56841,3}, {4568,56839,3},{4583,56836,3},{4590,56839,3},{4592,56838,3},{4582,56831,3}, {4570,56826,3},{4567,56819,3},{4553,56808,3},{4542,56803,3},{4523,56784,3}, {4517,56776,3},{4510,56776,3},{4507,56773,3},{4498,56771,3},{4493,56753,3}, {4488,56753,3},{4472,56738,3},{4467,56738,3},{4465,56734,3},{4458,56731,3}, {4455,56736,3},{4455,56743,3},{4458,56746,3},{4462,56749,3},{4465,56759,3}, {4480,56769,3},{4485,56776,3},{4485,56779,3},{4483,56781,3},{4487,56783,3}, {4485,56786,3},{4488,56791,3},{4483,56794,3},{4480,56803,3},{4468,56799,3}, {4453,56788,3},{4437,56784,3},{4433,56781,3},{4428,56783,3},{4423,56786,3}, {4418,56786,3},{4415,56781,3},{4410,56773,3},{4392,56763,3},{4383,56763,3}, {4377,56766,3},{4368,56766,3},{4357,56756,3},{4348,56756,3},{4335,56749,3}, {4325,56746,3},{4317,56748,3},{4312,56746,3},{4308,56749,3},{4302,56746,3}, {4298,56751,3},{4287,56753,3},{4278,56759,3},{4272,56759,3},{4263,56754,3}, {4250,56756,3},{4240,56756,3},{4235,56753,3},{4223,56754,3},{4212,56761,3}, {4207,56769,3},{4195,56771,3},{4183,56776,3},{4172,56784,3},{4168,56789,3}, {4167,56791,3},{4168,56794,3},{4165,56793,3},{4163,56796,3},{4162,56809,3}, {4163,56818,3},{4168,56833,3},{4177,56853,3},{4185,56868,3},{4193,56876,3}, {4213,56886,3},{4228,56901,3},{4245,56908,3},{4257,56913,3},{4275,56914,3}, {4300,56913,3},{4322,56903,3},{4327,56911,3},{4327,56909,3},{4323,56901,3}, {4360,56883,3},{4363,56881,3},{4368,56883,3},{4377,56891,3},{4380,56893,3}, {4392,56889,3},{4395,56891,3},{4400,56886,3},{4407,56884,3},{4417,56896,3}, {4437,56909,3},{4448,56909,3},{4458,56913,3},{4470,56909,3},{4475,56919,3}, {4475,56928,3},{4492,56929,3},{4492,56936,3},{4495,56939,3},{4498,56943,3}, {4495,56948,3},{4495,56953,3},{4507,56959,3},{4510,56966,3},{4518,56971,3}, {4522,56981,3},{4520,56983,3},{4515,56979,3},{4515,56974,3},{4505,56979,3}, {4503,56976,3},{4498,56971,3},{4498,56976,3},{4497,56976,3},{4485,56971,3}, {4482,56971,3},{4478,56976,3},{4487,56978,3},{4490,56981,3},{4490,56979,3}, {4493,56983,3},{4498,56983,3},{4500,56986,3},{4497,56988,3},{4488,56986,3}, {4483,56981,3},{4477,56979,3},{4477,56983,3},{4492,56994,3},{4500,56996,3}, {4510,56998,3},{4520,56996,3},{4527,56998,3},{4532,57004,3},{4538,57023,3}, {4537,57031,3},{4540,57044,3},{4542,57044,3},{4543,57036,3},{4547,57029,3}, {4553,57026,3},{4560,57026,3},{4563,57029,3},{4572,57043,3},{4577,57038,3}, {4577,57054,3},{4580,57061,3},{4577,57068,3},{4573,57079,3},{4567,57088,3}, {4567,57103,3},{4563,57114,3},{4560,57119,3},{4552,57123,3},{4550,57126,3}, {4550,57144,3},{4543,57153,3},{4542,57166,3},{4538,57169,3},{4535,57178,3}, {4535,57188,3},{4528,57198,3},{4527,57194,3},{4523,57196,3},{4517,57201,3}, {4515,57204,3},{4510,57206,3},{4508,57204,3},{4507,57204,3},{4505,57208,3}, {4503,57209,3},{4503,57204,3},{4508,57199,3},{4507,57194,3},{4505,57191,3}, {4502,57191,3},{4500,57189,3},{4493,57193,3},{4488,57203,3},{4482,57206,3}, {4468,57208,3},{4458,57204,3},{4433,57203,3},{4432,57196,3},{4425,57191,3}, {4427,57189,3},{4428,57191,3},{4428,57189,3},{4428,57184,3},{4425,57183,3}, {4405,57176,3},{4405,57169,3},{4400,57168,3},{4402,57161,3},{4398,57159,3}, {4400,57153,3},{4395,57148,3},{4392,57144,3},{4388,57144,3},{4385,57146,3}, {4383,57143,3},{4375,57141,3},{4370,57144,3},{4365,57151,3},{4360,57169,3}, {4367,57178,3},{4372,57181,3},{4373,57184,3},{4370,57186,3},{4372,57189,3}, {4385,57198,3},{4390,57203,3},{4392,57201,3},{4392,57196,3},{4393,57206,3}, {4398,57211,3},{4400,57229,3},{4402,57231,3},{4405,57234,3},{4407,57241,3}, {4402,57256,3},{4393,57266,3},{4380,57273,3},{4358,57276,3},{4347,57281,3}, {4327,57283,3},{4312,57288,3},{4302,57294,3},{4297,57294,3},{4290,57289,3}, {4282,57288,3},{4277,57289,3},{4262,57284,3},{4257,57278,3},{4255,57273,3}, {4257,57274,3},{4260,57273,3},{4262,57274,3},{4265,57273,3},{4268,57273,3}, {4270,57266,3},{4265,57259,3},{4265,57254,3},{4262,57254,3},{4260,57258,3}, {4257,57258,3},{4257,57253,3},{4253,57249,3},{4250,57248,3},{4245,57249,3}, {4240,57248,3},{4237,57243,3},{4235,57234,3},{4228,57224,3},{4223,57221,3}, {4208,57216,3},{4202,57218,3},{4203,57216,3},{4198,57214,3},{4198,57209,3}, {4193,57211,3},{4195,57206,3},{4193,57204,3},{4188,57203,3},{4188,57201,3}, {4182,57194,3},{4177,57194,3},{4177,57191,3},{4173,57189,3},{4172,57191,3}, {4170,57203,3},{4172,57204,3},{4165,57213,3},{4160,57229,3},{4155,57236,3}, {4153,57239,3},{4153,57248,3},{4155,57251,3},{4158,57253,3},{4155,57256,3}, {4155,57266,3},{4152,57266,3},{4148,57241,3},{4147,57239,3},{4147,57231,3}, {4145,57236,3},{4143,57238,3},{4145,57239,3},{4143,57244,3},{4148,57256,3}, {4147,57258,3},{4145,57259,3},{4147,57266,3},{4143,57274,3},{4147,57269,3}, {4150,57268,3},{4143,57278,3},{4138,57289,3},{4143,57299,3},{4145,57311,3}, {4150,57324,3},{4152,57334,3},{4150,57341,3},{4148,57351,3},{4150,57353,3}, {4150,57364,3},{4158,57379,3},{4173,57403,3},{4183,57433,3},{4197,57484,3}, {4208,57514,3},{4217,57526,3},{4215,57529,3},{4215,57524,3},{4212,57523,3}, {4213,57524,3},{4227,57559,3},{4237,57583,3},{4248,57599,3},{4257,57616,3}, {4257,57621,3},{4272,57633,3},{4278,57649,3},{4283,57649,3},{4295,57646,3}, {4298,57643,3},{4300,57643,3},{4303,57648,3},{4305,57648,3},{4307,57644,3}, {4308,57631,3},{4317,57631,3},{4327,57631,3},{4332,57648,3},{4333,57661,3}, {4338,57681,3},{4338,57726,3},{4333,57761,3},{4325,57778,3},{4325,57783,3}, {4328,57798,3},{4330,57821,3},{4328,57838,3},{4325,57841,3},{4327,57843,3}, {4330,57843,3},{4333,57859,3},{4335,57863,3},{4333,57864,3},{4338,57868,3}, {4342,57873,3},{4347,57879,3},{4348,57886,3},{4353,57894,3},{4352,57906,3}, {4353,57909,3},{4358,57918,3},{4360,57914,3},{4363,57914,3},{4367,57919,3}, {4367,57916,3},{4365,57914,3},{4373,57916,3},{4382,57913,3},{4387,57906,3}, {4390,57913,3},{4387,57913,3},{4387,57914,3},{4390,57921,3},{4395,57923,3}, {4398,57929,3},{4400,57931,3},{4400,57928,3},{4398,57923,3},{4397,57919,3}, {4398,57914,3},{4400,57914,3},{4405,57924,3},{4405,57919,3},{4407,57921,3}, {4407,57916,3},{4408,57914,3},{4407,57909,3},{4403,57906,3},{4407,57906,3}, {4408,57901,3},{4412,57899,3},{4422,57918,3},{4427,57931,3},{4435,57943,3}, {4438,57951,3},{4442,57953,3},{4442,57956,3},{4445,57959,3},{4448,57958,3}, {4448,57956,3},{4462,57973,3},{4483,58004,3},{4493,58029,3},{4498,58038,3}, {4498,58044,3},{4502,58053,3},{4500,58061,3},{4500,58068,3},{4500,58111,3}, {4502,58201,3},{4502,58209,3},{4502,58216,3},{4502,58223,3},{4502,58229,3}, {4502,58238,3},{4502,58244,3},{4502,58251,3},{4502,58259,3},{4502,58266,3}, {4502,58273,3},{4502,58281,3},{4502,58288,3},{4502,58296,3},{4502,58303,3}, {4502,58309,3},{4502,58316,3},{4502,58324,3},{4502,58331,3},{4502,58339,3}, {4502,58346,3},{4502,58353,3},{4502,58359,3},{4502,58368,3},{4502,58374,3}, {4502,58381,3},{4502,58386,3},{4508,58386,3},{4512,58393,3},{4520,58396,3}, {4525,58393,3},{4525,58398,3},{4528,58401,3},{4530,58408,3},{4525,58418,3}, {4525,58423,3},{4528,58424,3},{4530,58428,3},{4532,58433,3},{4535,58434,3}, {4535,58439,3},{4530,58444,3},{4523,58448,3},{4530,58453,3},{4532,58454,3}, {4542,58454,3},{4543,58456,3},{4543,58463,3},{4540,58468,3},{4540,58471,3}, {4543,58473,3},{4550,58464,3},{4557,58466,3},{4567,58479,3},{4572,58489,3}, {4572,58494,3},{4575,58498,3},{4582,58496,3},{4592,58511,3},{4595,58513,3}, {4598,58504,3},{4603,58506,3},{4607,58508,3},{4608,58506,3},{4610,58511,3}, {4615,58513,3},{4620,58508,3},{4628,58513,3},{4632,58516,3},{4635,58516,3}, {4637,58521,3},{4643,58531,3},{4670,58534,3},{4747,58613,3},{4743,58631,3}, {4730,58631,3},{4727,58631,3},{4718,58646,3},{4723,58661,3},{4725,58671,3}, {4728,58679,3},{4730,58686,3},{4728,58693,3},{4730,58698,3},{4733,58698,3}, {4737,58704,3},{4733,58718,3},{4730,58721,3},{4720,58739,3},{4712,58748,3}, {4707,58756,3},{4595,58759,3},{4593,58761,3},{4588,58758,3},{4583,58761,3}, {4578,58756,3},{4570,58756,3},{4567,58763,3},{4568,58764,3},{4563,58771,3}, {4560,58784,3},{4562,58789,3},{4558,58794,3},{4553,58794,3},{4550,58788,3}, {4543,58789,3},{4540,58794,3},{4527,58789,3},{4520,58796,3},{4515,58803,3}, {4517,58806,3},{4520,58809,3},{4518,58816,3},{4517,58816,3},{4517,58819,3}, {4508,58826,3},{4507,58826,3},{4498,58833,3},{4493,58829,3},{4497,58826,3}, {4495,58824,3},{4492,58826,3},{4490,58824,3},{4493,58818,3},{4492,58816,3}, {4488,58821,3},{4483,58823,3},{4488,58823,3},{4487,58826,3},{4490,58826,3}, {4487,58831,3},{4483,58829,3},{4485,58833,3},{4492,58831,3},{4487,58836,3}, {4487,58838,3},{4483,58839,3},{4478,58833,3},{4478,58829,3},{4477,58829,3}, {4475,58826,3},{4472,58826,3},{4467,58816,3},{4467,58818,3},{4467,58813,3}, {4468,58811,3},{4467,58809,3},{4465,58811,3},{4465,58809,3},{4467,58804,3}, {4472,58806,3},{4472,58801,3},{4470,58801,3},{4472,58798,3},{4470,58798,3}, {4468,58799,3},{4465,58799,3},{4463,58801,3},{4463,58798,3},{4462,58796,3}, {4468,58793,3},{4468,58791,3},{4462,58793,3},{4462,58786,3},{4465,58786,3}, {4463,58784,3},{4467,58783,3},{4467,58781,3},{4465,58781,3},{4463,58778,3}, {4463,58781,3},{4455,58779,3},{4455,58773,3},{4457,58773,3},{4458,58771,3}, {4455,58768,3},{4452,58766,3},{4452,58763,3},{4462,58763,3},{4455,58759,3}, {4455,58756,3},{4460,58759,3},{4462,58758,3},{4458,58756,3},{4460,58753,3}, {4455,58751,3},{4457,58749,3},{4450,58753,3},{4450,58748,3},{4442,58746,3}, {4443,58744,3},{4450,58746,3},{4450,58744,3},{4443,58743,3},{4443,58741,3}, {4452,58739,3},{4448,58738,3},{4448,58734,3},{4447,58734,3},{4445,58738,3}, {4442,58739,3},{4440,58738,3},{4442,58734,3},{4440,58734,3},{4435,58731,3}, {4437,58729,3},{4438,58729,3},{4440,58728,3},{4442,58726,3},{4447,58726,3}, {4448,58726,3},{4452,58721,3},{4447,58721,3},{4448,58718,3},{4453,58718,3}, {4453,58716,3},{4448,58714,3},{4450,58711,3},{4453,58711,3},{4453,58706,3}, {4452,58706,3},{4452,58709,3},{4447,58709,3},{4447,58701,3},{4443,58698,3}, {4442,58698,3},{4442,58694,3},{4450,58694,3},{4450,58689,3},{4448,58691,3}, {4440,58691,3},{4440,58689,3},{4445,58689,3},{4442,58684,3},{4443,58679,3}, {4438,58683,3},{4432,58681,3},{4432,58684,3},{4428,58684,3},{4428,58683,3}, {4427,58684,3},{4425,58684,3},{4430,58674,3},{4432,58668,3},{4437,58663,3}, {4433,58658,3},{4433,58654,3},{4438,58658,3},{4438,58661,3},{4440,58661,3}, {4442,58661,3},{4442,58668,3},{4445,58664,3},{4445,58661,3},{4440,58656,3}, {4443,58656,3},{4457,58663,3},{4458,58656,3},{4448,58654,3},{4447,58653,3}, {4447,58651,3},{4450,58651,3},{4448,58648,3},{4445,58644,3},{4443,58638,3}, {4435,58643,3},{4430,58636,3},{4422,58631,3},{4410,58628,3},{4410,58631,3}, {4407,58629,3},{4405,58624,3},{4402,58624,3},{4400,58618,3},{4398,58616,3}, {4397,58618,3},{4393,58611,3},{4397,58609,3},{4402,58614,3},{4402,58613,3}, {4395,58606,3},{4400,58606,3},{4398,58599,3},{4402,58603,3},{4403,58599,3}, {4407,58601,3},{4407,58599,3},{4405,58599,3},{4405,58596,3},{4402,58598,3}, {4400,58596,3},{4400,58594,3},{4385,58586,3},{4392,58583,3},{4385,58581,3}, {4390,58579,3},{4393,58581,3},{4397,58579,3},{4402,58584,3},{4403,58583,3}, {4402,58581,3},{4397,58578,3},{4390,58578,3},{4385,58579,3},{4383,58578,3}, {4387,58578,3},{4385,58576,3},{4388,58569,3},{4393,58571,3},{4393,58574,3}, {4395,58571,3},{4400,58573,3},{4403,58576,3},{4403,58573,3},{4402,58569,3}, {4392,58561,3},{4388,58561,3},{4388,58564,3},{4383,58563,3},{4387,58566,3}, {4385,58566,3},{4378,58564,3},{4377,58561,3},{4398,58556,3},{4403,58558,3}, {4407,58559,3},{4408,58559,3},{4407,58558,3},{4400,58549,3},{4397,58549,3}, {4398,58554,3},{4375,58559,3},{4372,58554,3},{4375,58553,3},{4377,58551,3}, {4380,58551,3},{4385,58553,3},{4385,58551,3},{4388,58551,3},{4388,58549,3}, {4387,58546,3},{4385,58549,3},{4380,58548,3},{4380,58546,3},{4382,58546,3}, {4380,58544,3},{4373,58538,3},{4385,58544,3},{4387,58543,3},{4385,58543,3}, {4375,58536,3},{4377,58534,3},{4387,58541,3},{4385,58538,3},{4383,58536,3}, {4387,58538,3},{4388,58538,3},{4383,58533,3},{4383,58528,3},{4378,58519,3}, {4375,58518,3},{4372,58513,3},{4367,58513,3},{4367,58508,3},{4365,58509,3}, {4365,58516,3},{4358,58518,3},{4357,58511,3},{4358,58511,3},{4357,58509,3}, {4353,58506,3},{4357,58506,3},{4357,58503,3},{4350,58499,3},{4347,58501,3}, {4348,58504,3},{4347,58504,3},{4337,58491,3},{4335,58484,3},{4327,58478,3}, {4322,58479,3},{4320,58476,3},{4318,58478,3},{4317,58474,3},{4308,58469,3}, {4312,58463,3},{4307,58463,3},{4305,58461,3},{4305,58466,3},{4293,58458,3}, {4288,58454,3},{4287,58454,3},{4285,58454,3},{4272,58458,3},{4267,58464,3}, {4267,58468,3},{4268,58471,3},{4268,58474,3},{4267,58474,3},{4263,58476,3}, {4262,58483,3},{4262,58484,3},{4258,58484,3},{4258,58471,3},{4257,58461,3}, {4252,58458,3},{4248,58458,3},{4245,58451,3},{4242,58444,3},{4237,58444,3}, {4233,58448,3},{4230,58448,3},{4227,58449,3},{4223,58459,3},{4222,58469,3}, {4217,58474,3},{4212,58476,3},{4203,58476,3},{4198,58473,3},{4197,58473,3}, {4193,58479,3},{4192,58488,3},{4183,58484,3},{4177,58488,3},{4173,58501,3}, {4173,58516,3},{4177,58528,3},{4182,58538,3},{4190,58534,3},{4193,58533,3}, {4190,58529,3},{4195,58529,3},{4200,58528,3},{4205,58524,3},{4205,58519,3}, {4202,58518,3},{4208,58513,3},{4208,58521,3},{4207,58528,3},{4203,58533,3}, {4197,58538,3},{4190,58541,3},{4183,58543,3},{4173,58543,3},{4167,58543,3}, {4155,58534,3},{4167,58539,3},{4167,58524,3},{4162,58509,3},{4163,58494,3}, {4157,58488,3},{4153,58468,3},{4173,58473,3},{4175,58466,3},{4158,58451,3}, {4163,58446,3},{4155,58443,3},{4153,58439,3},{4150,58431,3},{4152,58429,3}, {4153,58433,3},{4157,58431,3},{4153,58429,3},{4155,58426,3},{4153,58426,3}, {4152,58426,3},{4150,58424,3},{4147,58418,3},{4150,58416,3},{4163,58416,3}, {4180,58424,3},{4172,58418,3},{4172,58414,3},{4170,58413,3},{4167,58413,3}, {4165,58409,3},{4167,58404,3},{4175,58408,3},{4172,58406,3},{4175,58401,3}, {4182,58398,3},{4180,58396,3},{4173,58398,3},{4170,58399,3},{4167,58398,3}, {4170,58396,3},{4168,58391,3},{4165,58394,3},{4160,58394,3},{4157,58391,3}, {4153,58394,3},{4148,58394,3},{4137,58388,3},{4138,58381,3},{4135,58371,3}, {4133,58364,3},{4132,58353,3},{4132,58348,3},{4133,58349,3},{4133,58348,3}, {4135,58339,3},{4132,58336,3},{4132,58333,3},{4135,58328,3},{4130,58324,3}, {4132,58316,3},{4130,58316,3},{4132,58314,3},{4128,58311,3},{4128,58306,3}, {4130,58301,3},{4132,58301,3},{4135,58303,3},{4137,58298,3},{4135,58298,3}, {4132,58301,3},{4128,58301,3},{4128,58289,3},{4125,58284,3},{4127,58283,3}, {4125,58283,3},{4127,58279,3},{4128,58274,3},{4125,58268,3},{4127,58259,3}, {4125,58256,3},{4125,58248,3},{4130,58244,3},{4122,58236,3},{4122,58231,3}, {4117,58226,3},{4115,58221,3},{4117,58221,3},{4118,58219,3},{4117,58218,3}, {4117,58214,3},{4113,58211,3},{4112,58199,3},{4105,58189,3},{4105,58186,3}, {4103,58184,3},{4102,58178,3},{4102,58176,3},{4100,58173,3},{4095,58169,3}, {4095,58164,3},{4087,58158,3},{4087,58154,3},{4082,58156,3},{4080,58144,3}, {4072,58138,3},{4072,58136,3},{4075,58136,3},{4087,58144,3},{4102,58148,3}, {4107,58149,3},{4118,58148,3},{4125,58141,3},{4130,58143,3},{4132,58141,3}, {4127,58138,3},{4120,58139,3},{4117,58144,3},{4102,58146,3},{4097,58146,3}, {4087,58141,3},{4078,58136,3},{4072,58134,3},{4067,58124,3},{4067,58123,3}, {4072,58126,3},{4070,58123,3},{4065,58116,3},{4058,58114,3},{4055,58111,3}, {4050,58111,3},{4047,58109,3},{4045,58111,3},{4043,58116,3},{4045,58126,3}, {4040,58138,3},{4047,58136,3},{4045,58138,3},{4040,58141,3},{4028,58141,3}, {4008,58133,3},{4008,58134,3},{4005,58134,3},{3978,58128,3},{3988,58128,3}, {3997,58131,3},{4005,58131,3},{4005,58128,3},{4003,58131,3},{4002,58129,3}, {4000,58124,3},{3997,58126,3},{3993,58123,3},{3992,58128,3},{3988,58123,3}, {3985,58124,3},{3982,58121,3},{3977,58118,3},{3970,58121,3},{3957,58104,3}, {3952,58108,3},{3952,58104,3},{3953,58103,3},{3953,58098,3},{3955,58096,3}, {3952,58096,3},{3948,58098,3},{3943,58096,3},{3947,58094,3},{3943,58091,3}, {3940,58089,3},{3940,58093,3},{3935,58094,3},{3930,58083,3},{3937,58088,3}, {3935,58084,3},{3933,58081,3},{3930,58081,3},{3930,58071,3},{3928,58071,3}, {3927,58074,3},{3928,58081,3},{3922,58071,3},{3912,58066,3},{3912,58063,3}, {3912,58066,3},{3908,58064,3},{3903,58059,3},{3903,58058,3},{3900,58058,3}, {3895,58051,3},{3892,58043,3},{3893,58039,3},{3895,58039,3},{3902,58041,3}, {3913,58048,3},{3918,58046,3},{3920,58041,3},{3918,58034,3},{3922,58033,3}, {3918,58021,3},{3920,58019,3},{3923,58019,3},{3927,58013,3},{3928,58011,3}, {3930,58006,3},{3935,58003,3},{3933,57999,3},{3943,57989,3},{3947,57984,3}, {3950,57981,3},{3948,57983,3},{3950,57984,3},{3957,57984,3},{3962,57981,3}, {3965,57984,3},{3968,57986,3},{3972,57989,3},{3973,57989,3},{3975,57991,3}, {3983,58003,3},{3988,58023,3},{3990,58026,3},{3992,58024,3},{3995,58024,3}, {3997,58029,3},{4000,58033,3},{3997,58024,3},{3990,58021,3},{3990,58018,3}, {3987,58011,3},{3985,57999,3},{3980,57994,3},{3978,57989,3},{3972,57988,3}, {3967,57981,3},{3965,57978,3},{3962,57976,3},{3955,57981,3},{3947,57978,3}, {3942,57984,3},{3935,57986,3},{3932,57993,3},{3925,57996,3},{3917,57996,3}, {3908,57998,3},{3897,58006,3},{3892,58006,3},{3880,58019,3},{3878,58024,3}, {3880,58028,3},{3863,58029,3},{3870,58028,3},{3870,58023,3},{3865,58024,3}, {3865,58021,3},{3863,58026,3},{3860,58016,3},{3858,58016,3},{3858,58018,3}, {3857,58016,3},{3858,58023,3},{3857,58028,3},{3858,58029,3},{3862,58029,3}, {3860,58031,3},{3857,58031,3},{3845,58033,3},{3833,58029,3},{3845,58029,3}, {3845,58028,3},{3843,58028,3},{3843,58024,3},{3840,58026,3},{3842,58021,3}, {3842,58018,3},{3840,58023,3},{3835,58023,3},{3835,58026,3},{3833,58026,3}, {3823,58019,3},{3823,58016,3},{3827,58018,3},{3823,58013,3},{3812,58008,3}, {3812,58004,3},{3808,58001,3},{3802,57999,3},{3797,57993,3},{3793,57993,3}, {3792,57994,3},{3790,57993,3},{3787,57993,3},{3780,57986,3},{3768,57979,3}, {3758,57974,3},{3757,57978,3},{3750,57971,3},{3755,57964,3},{3752,57963,3}, {3750,57966,3},{3748,57958,3},{3745,57956,3},{3740,57956,3},{3737,57953,3}, {3723,57949,3},{3718,57949,3},{3718,57946,3},{3722,57948,3},{3715,57944,3}, {3713,57941,3},{3727,57934,3},{3732,57938,3},{3732,57936,3},{3738,57938,3}, {3738,57939,3},{3742,57941,3},{3742,57938,3},{3743,57939,3},{3747,57941,3}, {3748,57944,3},{3750,57943,3},{3748,57941,3},{3750,57941,3},{3755,57944,3}, {3755,57946,3},{3757,57943,3},{3758,57946,3},{3760,57944,3},{3762,57946,3}, {3762,57949,3},{3765,57948,3},{3767,57954,3},{3770,57953,3},{3772,57958,3}, {3773,57954,3},{3777,57959,3},{3780,57956,3},{3778,57961,3},{3780,57966,3}, {3782,57964,3},{3783,57966,3},{3783,57969,3},{3790,57968,3},{3790,57963,3}, {3795,57973,3},{3797,57971,3},{3798,57961,3},{3797,57956,3},{3793,57951,3}, {3795,57948,3},{3797,57951,3},{3798,57951,3},{3798,57948,3},{3803,57951,3}, {3803,57954,3},{3810,57961,3},{3808,57956,3},{3808,57951,3},{3810,57953,3}, {3813,57954,3},{3813,57958,3},{3815,57958,3},{3815,57946,3},{3812,57944,3}, {3813,57943,3},{3820,57943,3},{3823,57954,3},{3825,57948,3},{3828,57946,3}, {3840,57953,3},{3840,57951,3},{3832,57944,3},{3825,57941,3},{3832,57936,3}, {3833,57939,3},{3837,57939,3},{3837,57938,3},{3832,57933,3},{3828,57934,3}, {3823,57933,3},{3828,57928,3},{3830,57924,3},{3833,57921,3},{3838,57914,3}, {3833,57916,3},{3832,57914,3},{3848,57903,3},{3850,57908,3},{3848,57908,3}, {3848,57911,3},{3853,57918,3},{3855,57918,3},{3857,57919,3},{3858,57916,3}, {3855,57913,3},{3857,57908,3},{3860,57911,3},{3862,57909,3},{3862,57914,3}, {3863,57919,3},{3860,57919,3},{3860,57923,3},{3857,57931,3},{3858,57936,3}, {3860,57939,3},{3865,57939,3},{3860,57934,3},{3862,57928,3},{3863,57926,3}, {3865,57926,3},{3865,57921,3},{3868,57926,3},{3868,57919,3},{3872,57919,3}, {3868,57916,3},{3872,57913,3},{3875,57916,3},{3877,57914,3},{3877,57913,3}, {3872,57909,3},{3872,57908,3},{3878,57909,3},{3875,57906,3},{3868,57904,3}, {3868,57903,3},{3877,57903,3},{3883,57909,3},{3882,57914,3},{3880,57914,3}, {3877,57919,3},{3880,57926,3},{3878,57921,3},{3880,57918,3},{3885,57919,3}, {3887,57926,3},{3888,57921,3},{3892,57921,3},{3888,57918,3},{3893,57918,3}, {3897,57914,3},{3893,57909,3},{3892,57909,3},{3892,57906,3},{3892,57903,3}, {3888,57904,3},{3885,57901,3},{3890,57901,3},{3903,57906,3},{3898,57913,3}, {3900,57919,3},{3902,57921,3},{3903,57921,3},{3907,57919,3},{3907,57923,3}, {3908,57923,3},{3913,57929,3},{3912,57923,3},{3912,57921,3},{3913,57921,3}, {3912,57919,3},{3912,57918,3},{3908,57918,3},{3903,57916,3},{3903,57913,3}, {3912,57913,3},{3915,57909,3},{3932,57919,3},{3933,57924,3},{3937,57924,3}, {3937,57926,3},{3937,57953,3},{3940,57934,3},{3947,57944,3},{3947,57953,3}, {3950,57946,3},{3953,57951,3},{3958,57953,3},{3957,57951,3},{3947,57936,3}, {3948,57936,3},{3955,57941,3},{3960,57943,3},{3955,57938,3},{3957,57934,3}, {3957,57929,3},{3948,57924,3},{3945,57929,3},{3937,57916,3},{3938,57913,3}, {3947,57914,3},{3947,57913,3},{3945,57911,3},{3938,57909,3},{3933,57911,3}, {3932,57908,3},{3940,57904,3},{3938,57896,3},{3937,57898,3},{3937,57901,3}, {3935,57903,3},{3933,57903,3},{3933,57899,3},{3930,57899,3},{3933,57894,3}, {3932,57893,3},{3927,57898,3},{3927,57894,3},{3930,57891,3},{3930,57888,3}, {3925,57893,3},{3923,57898,3},{3922,57894,3},{3922,57888,3},{3923,57888,3}, {3927,57879,3},{3925,57874,3},{3923,57878,3},{3922,57879,3},{3922,57884,3}, {3918,57884,3},{3917,57888,3},{3917,57891,3},{3910,57894,3},{3907,57894,3}, {3908,57891,3},{3910,57884,3},{3908,57884,3},{3905,57894,3},{3902,57896,3}, {3900,57896,3},{3900,57893,3},{3898,57891,3},{3902,57886,3},{3907,57881,3}, {3907,57879,3},{3893,57891,3},{3892,57891,3},{3897,57884,3},{3895,57883,3}, {3893,57883,3},{3890,57888,3},{3888,57886,3},{3888,57883,3},{3887,57884,3}, {3883,57883,3},{3885,57888,3},{3883,57888,3},{3877,57881,3},{3873,57881,3}, {3872,57884,3},{3853,57886,3},{3842,57896,3},{3837,57899,3},{3833,57894,3}, {3835,57891,3},{3837,57889,3},{3838,57888,3},{3842,57879,3},{3848,57873,3}, {3868,57868,3},{3848,57869,3},{3840,57878,3},{3837,57886,3},{3832,57888,3}, {3830,57891,3},{3830,57899,3},{3823,57898,3},{3817,57904,3},{3813,57904,3}, {3810,57903,3},{3805,57904,3},{3812,57894,3},{3818,57893,3},{3820,57893,3}, {3820,57891,3},{3817,57891,3},{3813,57889,3},{3817,57886,3},{3813,57886,3}, {3813,57884,3},{3820,57879,3},{3823,57874,3},{3823,57861,3},{3825,57858,3}, {3837,57854,3},{3840,57849,3},{3828,57853,3},{3827,57853,3},{3827,57849,3}, {3835,57839,3},{3848,57834,3},{3843,57833,3},{3842,57828,3},{3843,57826,3}, {3845,57826,3},{3845,57823,3},{3840,57824,3},{3837,57818,3},{3837,57816,3}, {3840,57811,3},{3848,57809,3},{3855,57813,3},{3857,57819,3},{3858,57816,3}, {3860,57818,3},{3862,57824,3},{3868,57826,3},{3870,57834,3},{3875,57836,3}, {3878,57834,3},{3887,57834,3},{3890,57831,3},{3890,57829,3},{3885,57833,3}, {3873,57833,3},{3870,57824,3},{3868,57823,3},{3870,57823,3},{3870,57821,3}, {3868,57819,3},{3865,57823,3},{3863,57819,3},{3863,57816,3},{3865,57816,3}, {3865,57813,3},{3858,57809,3},{3857,57811,3},{3855,57808,3},{3853,57808,3}, {3850,57806,3},{3840,57806,3},{3843,57803,3},{3843,57801,3},{3837,57808,3}, {3835,57803,3},{3833,57811,3},{3835,57821,3},{3840,57833,3},{3838,57836,3}, {3835,57836,3},{3833,57836,3},{3832,57831,3},{3825,57841,3},{3820,57841,3}, {3817,57851,3},{3817,57859,3},{3813,57863,3},{3815,57868,3},{3813,57873,3}, {3815,57876,3},{3812,57878,3},{3807,57884,3},{3803,57883,3},{3802,57883,3}, {3802,57889,3},{3800,57891,3},{3798,57889,3},{3798,57894,3},{3790,57913,3}, {3788,57913,3},{3782,57911,3},{3785,57906,3},{3785,57904,3},{3778,57908,3}, {3775,57906,3},{3773,57904,3},{3770,57908,3},{3770,57904,3},{3767,57904,3}, {3767,57903,3},{3763,57904,3},{3763,57906,3},{3762,57904,3},{3762,57899,3}, {3765,57894,3},{3767,57894,3},{3765,57893,3},{3770,57889,3},{3765,57888,3}, {3767,57884,3},{3770,57884,3},{3775,57879,3},{3778,57878,3},{3778,57874,3}, {3782,57874,3},{3782,57871,3},{3783,57869,3},{3783,57864,3},{3792,57859,3}, {3795,57853,3},{3798,57853,3},{3800,57848,3},{3808,57843,3},{3812,57833,3}, {3817,57831,3},{3817,57823,3},{3813,57826,3},{3815,57831,3},{3810,57833,3}, {3807,57843,3},{3805,57844,3},{3798,57846,3},{3797,57849,3},{3792,57853,3}, {3790,57858,3},{3780,57864,3},{3778,57868,3},{3777,57869,3},{3775,57874,3}, {3763,57883,3},{3762,57893,3},{3758,57896,3},{3757,57908,3},{3755,57904,3}, {3755,57898,3},{3753,57896,3},{3748,57906,3},{3750,57908,3},{3752,57908,3}, {3750,57911,3},{3748,57911,3},{3747,57908,3},{3743,57913,3},{3738,57913,3}, {3732,57909,3},{3735,57906,3},{3738,57904,3},{3737,57901,3},{3738,57899,3}, {3743,57896,3},{3742,57893,3},{3738,57896,3},{3738,57891,3},{3737,57891,3}, {3733,57896,3},{3732,57893,3},{3732,57898,3},{3728,57899,3},{3727,57891,3}, {3732,57878,3},{3740,57871,3},{3743,57868,3},{3753,57859,3},{3753,57858,3}, {3750,57856,3},{3748,57861,3},{3730,57876,3},{3723,57891,3},{3723,57899,3}, {3717,57898,3},{3717,57904,3},{3713,57908,3},{3710,57903,3},{3710,57909,3}, {3708,57909,3},{3700,57908,3},{3700,57899,3},{3697,57896,3},{3705,57889,3}, {3707,57884,3},{3710,57883,3},{3708,57881,3},{3713,57874,3},{3718,57874,3}, {3722,57873,3},{3722,57863,3},{3720,57861,3},{3722,57859,3},{3725,57853,3}, {3727,57851,3},{3732,57849,3},{3727,57849,3},{3723,57844,3},{3732,57836,3}, {3728,57831,3},{3733,57828,3},{3732,57823,3},{3733,57813,3},{3735,57811,3}, {3732,57809,3},{3732,57808,3},{3728,57818,3},{3728,57826,3},{3727,57829,3}, {3728,57836,3},{3723,57839,3},{3720,57846,3},{3720,57856,3},{3715,57863,3}, {3718,57869,3},{3705,57871,3},{3703,57878,3},{3702,57879,3},{3700,57878,3}, {3697,57888,3},{3693,57886,3},{3690,57888,3},{3687,57884,3},{3685,57884,3}, {3690,57894,3},{3688,57901,3},{3687,57904,3},{3685,57906,3},{3688,57904,3}, {3692,57906,3},{3693,57904,3},{3697,57909,3},{3692,57919,3},{3692,57926,3}, {3690,57929,3},{3692,57936,3},{3655,57953,3},{3627,57958,3},{3612,57964,3}, {3590,57979,3},{3578,57984,3},{3585,57978,3},{3590,57976,3},{3600,57969,3}, {3600,57964,3},{3602,57964,3},{3600,57966,3},{3602,57968,3},{3603,57968,3}, {3605,57968,3},{3607,57963,3},{3618,57961,3},{3628,57954,3},{3640,57953,3}, {3653,57948,3},{3660,57948,3},{3672,57943,3},{3670,57939,3},{3658,57938,3}, {3653,57941,3},{3657,57941,3},{3657,57944,3},{3648,57946,3},{3650,57939,3}, {3652,57939,3},{3658,57931,3},{3653,57934,3},{3650,57933,3},{3643,57939,3}, {3643,57938,3},{3642,57938,3},{3635,57943,3},{3640,57941,3},{3640,57943,3}, {3642,57943,3},{3643,57944,3},{3635,57944,3},{3627,57949,3},{3607,57958,3}, {3610,57951,3},{3617,57949,3},{3622,57944,3},{3623,57946,3},{3625,57941,3}, {3628,57943,3},{3632,57939,3},{3632,57936,3},{3627,57941,3},{3623,57939,3}, {3622,57941,3},{3620,57939,3},{3617,57946,3},{3618,57934,3},{3622,57931,3}, {3625,57926,3},{3628,57923,3},{3630,57916,3},{3632,57918,3},{3632,57916,3}, {3628,57914,3},{3625,57921,3},{3622,57924,3},{3617,57931,3},{3615,57929,3}, {3612,57919,3},{3615,57914,3},{3622,57908,3},{3620,57908,3},{3615,57911,3}, {3613,57913,3},{3610,57916,3},{3610,57914,3},{3615,57899,3},{3618,57896,3}, {3618,57894,3},{3620,57889,3},{3617,57893,3},{3612,57898,3},{3610,57904,3}, {3608,57899,3},{3608,57894,3},{3607,57893,3},{3605,57894,3},{3600,57884,3}, {3602,57878,3},{3605,57874,3},{3603,57871,3},{3605,57868,3},{3610,57866,3}, {3612,57864,3},{3617,57863,3},{3623,57864,3},{3628,57869,3},{3632,57864,3}, {3628,57866,3},{3622,57861,3},{3613,57859,3},{3600,57866,3},{3600,57868,3}, {3595,57863,3},{3593,57871,3},{3595,57883,3},{3598,57896,3},{3597,57898,3}, {3593,57898,3},{3595,57901,3},{3592,57908,3},{3593,57909,3},{3593,57906,3}, {3597,57908,3},{3600,57919,3},{3598,57931,3},{3595,57934,3},{3595,57929,3}, {3592,57929,3},{3593,57934,3},{3587,57931,3},{3587,57928,3},{3585,57931,3}, {3578,57931,3},{3580,57924,3},{3578,57924,3},{3575,57931,3},{3572,57931,3}, {3568,57933,3},{3568,57926,3},{3570,57923,3},{3568,57923,3},{3567,57926,3}, {3565,57933,3},{3572,57936,3},{3588,57938,3},{3592,57943,3},{3588,57946,3}, {3587,57949,3},{3588,57951,3},{3593,57946,3},{3592,57951,3},{3593,57954,3}, {3595,57949,3},{3597,57951,3},{3597,57954,3},{3593,57954,3},{3588,57961,3}, {3582,57964,3},{3577,57963,3},{3573,57964,3},{3568,57964,3},{3570,57959,3}, {3568,57959,3},{3563,57963,3},{3562,57961,3},{3560,57958,3},{3557,57958,3}, {3557,57954,3},{3557,57953,3},{3558,57954,3},{3558,57949,3},{3563,57948,3}, {3562,57946,3},{3558,57946,3},{3555,57944,3},{3552,57938,3},{3550,57939,3}, {3548,57936,3},{3547,57936,3},{3542,57933,3},{3543,57931,3},{3542,57929,3}, {3538,57929,3},{3537,57923,3},{3533,57921,3},{3535,57919,3},{3535,57913,3}, {3537,57911,3},{3535,57909,3},{3535,57908,3},{3542,57901,3},{3538,57899,3}, {3535,57901,3},{3533,57899,3},{3535,57898,3},{3537,57894,3},{3537,57898,3}, {3538,57896,3},{3542,57898,3},{3547,57896,3},{3545,57893,3},{3540,57893,3}, {3540,57888,3},{3537,57891,3},{3538,57886,3},{3542,57884,3},{3543,57886,3}, {3543,57881,3},{3547,57881,3},{3550,57878,3},{3550,57888,3},{3553,57889,3}, {3555,57878,3},{3553,57874,3},{3552,57871,3},{3550,57874,3},{3547,57874,3}, {3540,57878,3},{3538,57878,3},{3540,57871,3},{3543,57871,3},{3542,57861,3}, {3543,57856,3},{3545,57854,3},{3547,57844,3},{3553,57831,3},{3548,57834,3}, {3547,57838,3},{3543,57838,3},{3542,57851,3},{3540,57853,3},{3537,57864,3}, {3535,57866,3},{3530,57883,3},{3530,57886,3},{3527,57889,3},{3522,57888,3}, {3523,57879,3},{3522,57884,3},{3520,57883,3},{3522,57878,3},{3520,57876,3}, {3517,57869,3},{3515,57878,3},{3515,57879,3},{3517,57878,3},{3517,57879,3}, {3515,57881,3},{3513,57881,3},{3510,57878,3},{3508,57874,3},{3508,57876,3}, {3507,57876,3},{3498,57858,3},{3500,57851,3},{3507,57841,3},{3507,57838,3}, {3515,57828,3},{3498,57841,3},{3495,57846,3},{3493,57856,3},{3490,57861,3}, {3498,57873,3},{3498,57876,3},{3495,57876,3},{3493,57881,3},{3493,57883,3}, {3497,57879,3},{3498,57879,3},{3500,57883,3},{3497,57886,3},{3498,57888,3}, {3502,57888,3},{3507,57891,3},{3505,57893,3},{3502,57893,3},{3498,57894,3}, {3497,57889,3},{3493,57891,3},{3495,57894,3},{3493,57898,3},{3497,57898,3}, {3497,57904,3},{3502,57901,3},{3502,57904,3},{3498,57908,3},{3497,57909,3}, {3493,57906,3},{3493,57901,3},{3488,57903,3},{3487,57898,3},{3488,57896,3}, {3483,57894,3},{3477,57886,3},{3473,57886,3},{3473,57878,3},{3477,57878,3}, {3478,57879,3},{3482,57874,3},{3472,57874,3},{3472,57869,3},{3475,57869,3}, {3480,57868,3},{3475,57859,3},{3475,57864,3},{3472,57866,3},{3473,57849,3}, {3472,57844,3},{3468,57826,3},{3472,57828,3},{3473,57824,3},{3475,57824,3}, {3475,57823,3},{3472,57824,3},{3468,57823,3},{3468,57819,3},{3465,57819,3}, {3455,57803,3},{3458,57796,3},{3465,57803,3},{3470,57798,3},{3473,57799,3}, {3473,57794,3},{3475,57793,3},{3468,57793,3},{3468,57796,3},{3463,57799,3}, {3462,57798,3},{3460,57791,3},{3458,57794,3},{3455,57799,3},{3453,57798,3}, {3452,57799,3},{3450,57789,3},{3438,57769,3},{3433,57764,3},{3422,57754,3}, {3415,57749,3},{3405,57748,3},{3393,57744,3},{3393,57743,3},{3398,57744,3}, {3410,57744,3},{3418,57741,3},{3402,57741,3},{3388,57734,3},{3392,57713,3}, {3390,57701,3},{3395,57699,3},{3390,57696,3},{3385,57681,3},{3387,57681,3}, {3388,57681,3},{3387,57676,3},{3385,57679,3},{3383,57671,3},{3378,57661,3}, {3370,57649,3},{3363,57643,3},{3342,57623,3},{3322,57618,3},{3330,57616,3}, {3332,57609,3},{3337,57611,3},{3343,57618,3},{3337,57609,3},{3328,57606,3}, {3323,57614,3},{3318,57614,3},{3318,57618,3},{3313,57613,3},{3317,57611,3}, {3317,57609,3},{3313,57611,3},{3312,57609,3},{3313,57608,3},{3315,57603,3}, {3313,57606,3},{3312,57608,3},{3305,57598,3},{3302,57598,3},{3298,57586,3}, {3302,57586,3},{3303,57583,3},{3300,57578,3},{3295,57573,3},{3292,57574,3}, {3293,57578,3},{3292,57578,3},{3285,57566,3},{3280,57563,3},{3277,57553,3}, {3277,57549,3},{3278,57548,3},{3278,57546,3},{3285,57548,3},{3285,57546,3}, {3283,57546,3},{3285,57541,3},{3278,57543,3},{3280,57539,3},{3278,57539,3}, {3277,57541,3},{3275,57546,3},{3273,57548,3},{3273,57549,3},{3272,57549,3}, {3268,57548,3},{3265,57541,3},{3265,57534,3},{3263,57534,3},{3262,57538,3}, {3260,57536,3},{3260,57528,3},{3255,57519,3},{3262,57513,3},{3262,57509,3}, {3260,57511,3},{3257,57516,3},{3248,57503,3},{3253,57499,3},{3250,57499,3}, {3247,57496,3},{3250,57493,3},{3250,57488,3},{3255,57481,3},{3252,57483,3}, {3252,57469,3},{3250,57468,3},{3248,57481,3},{3250,57483,3},{3247,57488,3}, {3245,57478,3},{3245,57488,3},{3242,57491,3},{3240,57489,3},{3238,57486,3}, {3237,57481,3},{3235,57481,3},{3237,57489,3},{3240,57493,3},{3235,57491,3}, {3235,57489,3},{3233,57491,3},{3232,57489,3},{3225,57473,3},{3227,57471,3}, {3232,57473,3},{3238,57473,3},{3235,57471,3},{3237,57469,3},{3245,57471,3}, {3247,57471,3},{3245,57468,3},{3245,57469,3},{3237,57468,3},{3230,57469,3}, {3232,57466,3},{3238,57459,3},{3247,57456,3},{3250,57458,3},{3250,57456,3}, {3253,57453,3},{3253,57451,3},{3248,57454,3},{3240,57456,3},{3238,57458,3}, {3232,57456,3},{3225,57461,3},{3225,57466,3},{3222,57469,3},{3215,57464,3}, {3210,57454,3},{3218,57458,3},{3225,57458,3},{3222,57458,3},{3220,57458,3}, {3215,57453,3},{3212,57453,3},{3205,57446,3},{3202,57448,3},{3202,57451,3}, {3200,57453,3},{3197,57449,3},{3195,57446,3},{3198,57443,3},{3192,57439,3}, {3190,57443,3},{3187,57438,3},{3188,57431,3},{3192,57426,3},{3188,57424,3}, {3188,57428,3},{3187,57428,3},{3187,57423,3},{3185,57423,3},{3182,57433,3}, {3177,57428,3},{3173,57424,3},{3177,57409,3},{3175,57409,3},{3173,57414,3}, {3170,57418,3},{3167,57413,3},{3167,57421,3},{3168,57419,3},{3170,57423,3}, {3160,57423,3},{3157,57419,3},{3157,57418,3},{3162,57416,3},{3163,57413,3}, {3160,57416,3},{3157,57414,3},{3155,57411,3},{3157,57406,3},{3155,57403,3}, {3153,57406,3},{3153,57409,3},{3148,57408,3},{3153,57413,3},{3153,57419,3}, {3143,57411,3},{3138,57409,3},{3140,57408,3},{3143,57406,3},{3143,57403,3}, {3135,57408,3},{3133,57408,3},{3135,57393,3},{3137,57389,3},{3137,57388,3}, {3133,57394,3},{3132,57403,3},{3128,57408,3},{3127,57409,3},{3122,57408,3}, {3122,57406,3},{3122,57404,3},{3113,57398,3},{3115,57394,3},{3120,57396,3}, {3122,57393,3},{3118,57389,3},{3112,57391,3},{3113,57386,3},{3107,57393,3}, {3110,57393,3},{3112,57396,3},{3108,57396,3},{3102,57393,3},{3108,57388,3}, {3108,57384,3},{3102,57391,3},{3098,57389,3},{3098,57384,3},{3097,57386,3}, {3097,57391,3},{3088,57386,3},{3085,57388,3},{3085,57383,3},{3083,57384,3}, {3080,57384,3},{3077,57388,3},{3072,57386,3},{3068,57388,3},{3070,57391,3}, {3068,57393,3},{3057,57391,3},{3052,57393,3},{3055,57389,3},{3062,57388,3}, {3062,57386,3},{3055,57386,3},{3047,57394,3},{3040,57394,3},{3038,57398,3}, {3027,57398,3},{3012,57403,3},{2990,57408,3},{2987,57409,3},{2980,57411,3}, {2958,57419,3},{2925,57434,3},{2908,57444,3},{2907,57444,3},{2905,57446,3}, {2872,57468,3},{2865,57473,3},{2857,57479,3},{2847,57483,3},{2845,57483,3}, {2840,57476,3},{2820,57478,3},{2808,57479,3},{2792,57489,3},{2787,57491,3}, {2793,57486,3},{2800,57483,3},{2805,57479,3},{2822,57474,3},{2840,57474,3}, {2852,57478,3},{2860,57476,3},{2860,57469,3},{2858,57468,3},{2862,57459,3}, {2865,57458,3},{2868,57458,3},{2870,57461,3},{2873,57461,3},{2878,57451,3}, {2865,57454,3},{2860,57456,3},{2842,57461,3},{2805,57478,3},{2770,57496,3}, {2742,57506,3},{2718,57518,3},{2722,57514,3},{2722,57509,3},{2723,57508,3}, {2723,57504,3},{2718,57509,3},{2720,57514,3},{2715,57519,3},{2713,57521,3}, {2695,57529,3},{2693,57524,3},{2692,57529,3},{2678,57533,3},{2677,57531,3}, {2668,57533,3},{2657,57533,3},{2653,57531,3},{2652,57531,3},{2628,57528,3}, {2612,57526,3},{2610,57524,3},{2607,57526,3},{2595,57524,3},{2582,57524,3}, {2577,57523,3},{2582,57523,3},{2590,57523,3},{2582,57518,3},{2575,57518,3}, {2573,57511,3},{2565,57509,3},{2562,57504,3},{2553,57504,3},{2548,57501,3}, {2543,57503,3},{2540,57503,3},{2538,57504,3},{2533,57501,3},{2533,57499,3}, {2523,57493,3},{2520,57494,3},{2518,57496,3},{2520,57494,3},{2525,57491,3}, {2522,57486,3},{2522,57489,3},{2517,57491,3},{2518,57491,3},{2522,57488,3}, {2520,57484,3},{2522,57484,3},{2523,57486,3},{2525,57483,3},{2523,57478,3}, {2518,57476,3},{2518,57471,3},{2517,57471,3},{2517,57468,3},{2513,57464,3}, {2515,57459,3},{2515,57456,3},{2517,57454,3},{2518,57451,3},{2513,57444,3}, {2512,57428,3},{2517,57421,3},{2523,57418,3},{2533,57423,3},{2527,57429,3}, {2523,57438,3},{2522,57436,3},{2520,57438,3},{2522,57444,3},{2525,57444,3}, {2532,57438,3},{2533,57433,3},{2538,57421,3},{2547,57419,3},{2550,57416,3}, {2555,57418,3},{2557,57413,3},{2563,57411,3},{2565,57409,3},{2570,57408,3}, {2570,57404,3},{2572,57403,3},{2577,57401,3},{2578,57404,3},{2582,57401,3}, {2585,57396,3},{2587,57389,3},{2588,57389,3},{2588,57384,3},{2592,57381,3}, {2590,57378,3},{2592,57378,3},{2595,57374,3},{2592,57371,3},{2590,57363,3}, {2595,57363,3},{2593,57366,3},{2595,57369,3},{2598,57369,3},{2597,57364,3}, {2600,57363,3},{2602,57363,3},{2607,57359,3},{2613,57358,3},{2610,57356,3}, {2627,57353,3},{2628,57354,3},{2635,57351,3},{2635,57353,3},{2643,57351,3}, {2648,57348,3},{2645,57349,3},{2643,57348,3},{2647,57341,3},{2648,57334,3}, {2652,57336,3},{2650,57338,3},{2653,57343,3},{2663,57348,3},{2668,57354,3}, {2668,57356,3},{2672,57358,3},{2667,57346,3},{2655,57341,3},{2653,57338,3}, {2653,57336,3},{2652,57333,3},{2655,57329,3},{2660,57331,3},{2670,57328,3}, {2678,57331,3},{2687,57331,3},{2690,57326,3},{2693,57331,3},{2695,57336,3}, {2700,57338,3},{2697,57334,3},{2697,57331,3},{2695,57329,3},{2697,57324,3}, {2692,57321,3},{2697,57318,3},{2695,57316,3},{2697,57313,3},{2700,57313,3}, {2702,57309,3},{2700,57309,3},{2700,57311,3},{2695,57313,3},{2693,57318,3}, {2687,57319,3},{2678,57321,3},{2678,57319,3},{2682,57319,3},{2680,57316,3}, {2683,57306,3},{2687,57304,3},{2688,57304,3},{2693,57301,3},{2695,57299,3}, {2690,57301,3},{2705,57293,3},{2718,57286,3},{2720,57286,3},{2718,57288,3}, {2722,57286,3},{2722,57284,3},{2727,57279,3},{2730,57281,3},{2728,57281,3}, {2728,57283,3},{2740,57278,3},{2745,57269,3},{2745,57268,3},{2752,57263,3}, {2748,57266,3},{2747,57271,3},{2748,57273,3},{2748,57269,3},{2752,57269,3}, {2750,57276,3},{2752,57273,3},{2752,57276,3},{2755,57279,3},{2755,57274,3}, {2755,57278,3},{2763,57281,3},{2767,57284,3},{2773,57289,3},{2778,57296,3}, {2782,57298,3},{2792,57294,3},{2793,57291,3},{2790,57288,3},{2782,57288,3}, {2783,57283,3},{2785,57281,3},{2787,57283,3},{2793,57283,3},{2795,57279,3}, {2797,57274,3},{2798,57276,3},{2802,57271,3},{2800,57271,3},{2803,57268,3}, {2800,57268,3},{2797,57268,3},{2795,57273,3},{2795,57266,3},{2793,57264,3}, {2790,57271,3},{2788,57273,3},{2788,57279,3},{2785,57276,3},{2782,57276,3}, {2778,57274,3},{2770,57273,3},{2768,57269,3},{2770,57268,3},{2773,57268,3}, {2773,57264,3},{2778,57261,3},{2783,57254,3},{2782,57254,3},{2772,57263,3}, {2765,57264,3},{2770,57261,3},{2773,57261,3},{2780,57253,3},{2787,57251,3}, {2793,57253,3},{2795,57254,3},{2788,57253,3},{2793,57254,3},{2807,57259,3}, {2810,57259,3},{2815,57256,3},{2818,57256,3},{2820,57259,3},{2828,57263,3}, {2830,57264,3},{2830,57263,3},{2832,57263,3},{2843,57269,3},{2850,57269,3}, {2853,57273,3},{2863,57271,3},{2865,57273,3},{2867,57271,3},{2870,57273,3}, {2875,57273,3},{2875,57271,3},{2880,57268,3},{2882,57269,3},{2880,57271,3}, {2878,57273,3},{2880,57273,3},{2888,57273,3},{2892,57268,3},{2897,57263,3}, {2900,57263,3},{2900,57261,3},{2907,57261,3},{2910,57256,3},{2912,57258,3}, {2913,57256,3},{2917,57256,3},{2917,57253,3},{2918,57251,3},{2917,57249,3}, {2917,57246,3},{2918,57239,3},{2917,57236,3},{2918,57231,3},{2920,57231,3}, {2922,57229,3},{2923,57229,3},{2927,57228,3},{2930,57221,3},{2933,57221,3}, {2942,57214,3},{2943,57208,3},{2950,57201,3},{2952,57196,3},{2958,57196,3}, {2960,57198,3},{2965,57196,3},{2968,57189,3},{2975,57178,3},{2982,57178,3}, {2992,57168,3},{2997,57159,3},{2998,57158,3},{2997,57156,3},{2998,57153,3}, {3002,57148,3},{3010,57134,3},{3010,57123,3},{3007,57119,3},{3010,57116,3}, {3008,57113,3},{3010,57111,3},{3010,57109,3},{3007,57108,3},{3007,57103,3}, {3005,57099,3},{3002,57099,3},{3002,57098,3},{2998,57098,3},{2998,57101,3}, {2997,57101,3},{2998,57094,3},{3002,57091,3},{2998,57089,3},{2998,57091,3}, {2997,57093,3},{2993,57103,3},{2988,57101,3},{2988,57098,3},{2990,57099,3}, {2992,57098,3},{2992,57091,3},{2990,57088,3},{2992,57084,3},{2988,57079,3}, {2978,57061,3},{2973,57048,3},{2973,57046,3},{2978,57049,3},{2980,57049,3}, {2978,57044,3},{2975,57041,3},{2975,57039,3},{2970,57034,3},{2972,57028,3}, {2970,57018,3},{2968,57003,3},{2968,56999,3},{2972,56998,3},{2978,56994,3}, {2985,56994,3},{2987,56996,3},{2985,56996,3},{2975,56998,3},{2968,57001,3}, {2970,57006,3},{2982,57006,3},{2992,56998,3},{2995,56993,3},{2997,56984,3}, {3003,56979,3},{3000,56984,3},{2998,56988,3},{3012,56968,3},{3013,56969,3}, {3012,56974,3},{3010,56974,3},{3008,56983,3},{3007,56984,3},{3002,56991,3}, {3003,56996,3},{3005,56996,3},{3005,56994,3},{3007,56993,3},{3003,56991,3}, {3005,56988,3},{3010,56988,3},{3010,56984,3},{3013,56986,3},{3012,56983,3}, {3013,56979,3},{3012,56979,3},{3015,56973,3},{3013,56973,3},{3018,56964,3}, {3020,56966,3},{3025,56969,3},{3025,56976,3},{3028,56978,3},{3028,56981,3}, {3032,56979,3},{3027,56974,3},{3028,56971,3},{3027,56968,3},{3023,56964,3}, {3028,56964,3},{3028,56961,3},{3032,56961,3},{3028,56959,3},{3028,56953,3}, {3025,56951,3},{3023,56953,3},{3025,56956,3},{3023,56959,3},{3023,56961,3}, {3022,56963,3},{3017,56961,3},{3015,56966,3},{3013,56964,3},{3015,56963,3}, {3013,56963,3},{3022,56949,3},{3030,56928,3},{3037,56904,3},{3040,56884,3}, {3042,56888,3},{3040,56896,3},{3040,56903,3},{3043,56904,3},{3040,56908,3}, {3040,56913,3},{3042,56909,3},{3043,56911,3},{3037,56926,3},{3040,56924,3}, {3043,56924,3},{3045,56921,3},{3047,56923,3},{3048,56923,3},{3047,56919,3}, {3047,56916,3},{3050,56916,3},{3048,56913,3},{3050,56909,3},{3048,56901,3}, {3045,56894,3},{3048,56893,3},{3052,56894,3},{3052,56891,3},{3050,56889,3}, {3052,56888,3},{3050,56888,3},{3047,56886,3},{3043,56881,3},{3045,56876,3}, {3042,56878,3},{3042,56858,3},{3035,56818,3},{3038,56818,3},{3042,56836,3}, {3045,56843,3},{3043,56848,3},{3047,56846,3},{3050,56834,3},{3055,56836,3}, {3057,56839,3},{3057,56836,3},{3058,56836,3},{3060,56834,3},{3057,56834,3}, {3055,56833,3},{3045,56828,3},{3045,56826,3},{3053,56826,3},{3053,56823,3}, {3055,56824,3},{3058,56819,3},{3058,56818,3},{3053,56818,3},{3050,56821,3}, {3047,56821,3},{3042,56816,3},{3040,56811,3},{3035,56809,3},{3035,56806,3}, {3032,56806,3},{3027,56786,3},{3028,56783,3},{3030,56786,3},{3032,56791,3}, {3033,56788,3},{3033,56793,3},{3035,56794,3},{3037,56794,3},{3040,56794,3}, {3043,56803,3},{3045,56801,3},{3048,56794,3},{3043,56796,3},{3040,56793,3}, {3035,56789,3},{3035,56784,3},{3033,56784,3},{3032,56783,3},{3032,56778,3}, {3033,56778,3},{3035,56774,3},{3030,56776,3},{3030,56779,3},{3028,56779,3}, {3023,56763,3},{3023,56741,3},{3022,56736,3},{3023,56734,3},{3023,56739,3}, {3027,56743,3},{3023,56749,3},{3027,56758,3},{3028,56761,3},{3035,56753,3}, {3040,56754,3},{3042,56754,3},{3040,56753,3},{3038,56751,3},{3042,56744,3}, {3047,56744,3},{3048,56741,3},{3055,56746,3},{3060,56744,3},{3067,56741,3}, {3068,56736,3},{3073,56734,3},{3070,56734,3},{3065,56731,3},{3060,56731,3}, {3058,56728,3},{3052,56726,3},{3037,56724,3},{3032,56723,3},{3033,56721,3}, {3033,56716,3},{3037,56716,3},{3040,56706,3},{3038,56706,3},{3040,56701,3}, {3038,56696,3},{3035,56696,3},{3035,56693,3},{3032,56689,3},{3035,56686,3}, {3035,56679,3},{3040,56676,3},{3037,56674,3},{3035,56668,3},{3035,56663,3}, {3038,56658,3},{3043,56651,3},{3043,56644,3},{3042,56638,3},{3040,56649,3}, {3037,56631,3},{3035,56628,3},{3032,56611,3},{3032,56609,3},{3035,56611,3}, {3037,56606,3},{3037,56603,3},{3035,56601,3},{3035,56604,3},{3030,56604,3}, {3025,56594,3},{3018,56591,3},{3020,56589,3},{3018,56584,3},{3015,56578,3}, {3015,56574,3},{3017,56578,3},{3018,56576,3},{3017,56573,3},{3018,56561,3}, {3023,56561,3},{3022,56556,3},{3023,56551,3},{3025,56549,3},{3027,56538,3}, {3032,56536,3},{3035,56531,3},{3038,56516,3},{3037,56513,3},{3025,56501,3}, {3020,56494,3},{3015,56493,3},{3010,56494,3},{3007,56501,3},{3007,56506,3}, {3002,56523,3},{3003,56534,3},{3007,56539,3},{3012,56546,3},{3015,56548,3}, {3015,56551,3},{3012,56553,3},{3008,56558,3},{3017,56561,3},{3017,56563,3}, {3012,56561,3},{3010,56563,3},{3012,56564,3},{3013,56568,3},{3015,56568,3}, {3015,56566,3},{3017,56569,3},{3015,56569,3},{3013,56571,3},{3012,56569,3}, {3007,56568,3},{3005,56564,3},{3003,56564,3},{3005,56558,3},{3003,56553,3}, {3002,56551,3},{2995,56554,3},{2995,56561,3},{2995,56564,3},{2992,56563,3}, {2988,56568,3},{2987,56571,3},{2988,56576,3},{2997,56579,3},{3000,56579,3}, {3003,56586,3},{3008,56588,3},{3005,56593,3},{3003,56593,3},{3005,56599,3}, {3003,56599,3},{3002,56593,3},{3000,56591,3},{3000,56593,3},{2997,56591,3}, {2997,56593,3},{2997,56599,3},{2993,56599,3},{2993,56596,3},{2995,56594,3}, {2993,56593,3},{2990,56594,3},{2992,56599,3},{2987,56598,3},{2988,56599,3}, {2988,56603,3},{2983,56598,3},{2978,56601,3},{2978,56598,3},{2977,56596,3}, {2978,56596,3},{2978,56593,3},{2980,56593,3},{2983,56589,3},{2980,56588,3}, {2978,56586,3},{2975,56584,3},{2975,56579,3},{2973,56576,3},{2968,56576,3}, {2968,56581,3},{2968,56583,3},{2968,56584,3},{2967,56586,3},{2967,56583,3}, {2963,56588,3},{2967,56581,3},{2967,56574,3},{2968,56573,3},{2970,56566,3}, {2968,56571,3},{2967,56569,3},{2962,56574,3},{2963,56561,3},{2962,56564,3}, {2960,56563,3},{2958,56566,3},{2952,56568,3},{2950,56574,3},{2950,56578,3}, {2948,56578,3},{2947,56584,3},{2943,56583,3},{2942,56583,3},{2943,56584,3}, {2942,56584,3},{2940,56581,3},{2940,56594,3},{2938,56594,3},{2938,56603,3}, {2938,56599,3},{2937,56598,3},{2935,56601,3},{2935,56609,3},{2932,56611,3}, {2935,56616,3},{2932,56618,3},{2928,56623,3},{2927,56623,3},{2925,56624,3}, {2923,56621,3},{2920,56629,3},{2922,56629,3},{2922,56633,3},{2920,56636,3}, {2918,56633,3},{2918,56636,3},{2918,56633,3},{2917,56631,3},{2918,56631,3}, {2918,56629,3},{2917,56626,3},{2913,56626,3},{2915,56629,3},{2913,56634,3}, {2908,56631,3},{2912,56628,3},{2912,56626,3},{2908,56628,3},{2910,56626,3}, {2907,56623,3},{2903,56621,3},{2898,56623,3},{2902,56618,3},{2910,56613,3}, {2907,56611,3},{2905,56606,3},{2895,56599,3},{2893,56594,3},{2897,56596,3}, {2903,56601,3},{2907,56601,3},{2908,56606,3},{2915,56609,3},{2915,56608,3}, {2912,56606,3},{2918,56604,3},{2915,56603,3},{2912,56604,3},{2908,56599,3}, {2910,56596,3},{2915,56596,3},{2915,56593,3},{2923,56588,3},{2923,56589,3}, {2925,56589,3},{2925,56586,3},{2922,56586,3},{2923,56583,3},{2925,56574,3}, {2928,56574,3},{2930,56573,3},{2932,56574,3},{2933,56574,3},{2933,56571,3}, {2930,56566,3},{2932,56563,3},{2932,56554,3},{2933,56559,3},{2937,56561,3}, {2938,56559,3},{2938,56558,3},{2942,56559,3},{2940,56554,3},{2943,56553,3}, {2945,56556,3},{2947,56554,3},{2948,56551,3},{2947,56551,3},{2945,56551,3}, {2943,56549,3},{2947,56546,3},{2947,56541,3},{2947,56539,3},{2948,56538,3}, {2952,56529,3},{2953,56529,3},{2953,56523,3},{2957,56518,3},{2953,56516,3}, {2953,56518,3},{2952,56514,3},{2952,56518,3},{2948,56519,3},{2948,56521,3}, {2947,56523,3},{2947,56531,3},{2943,56533,3},{2940,56531,3},{2938,56533,3}, {2933,56533,3},{2935,56531,3},{2930,56534,3},{2930,56531,3},{2932,56531,3}, {2930,56528,3},{2928,56529,3},{2927,56526,3},{2922,56528,3},{2922,56531,3}, {2918,56529,3},{2913,56523,3},{2908,56513,3},{2908,56511,3},{2910,56513,3}, {2912,56513,3},{2917,56509,3},{2918,56511,3},{2920,56509,3},{2922,56511,3}, {2925,56511,3},{2927,56509,3},{2923,56508,3},{2925,56506,3},{2928,56503,3}, {2932,56501,3},{2925,56498,3},{2925,56496,3},{2932,56498,3},{2933,56494,3}, {2935,56493,3},{2932,56491,3},{2928,56488,3},{2930,56486,3},{2928,56484,3}, {2930,56481,3},{2932,56479,3},{2930,56476,3},{2928,56476,3},{2928,56479,3}, {2923,56476,3},{2922,56478,3},{2923,56474,3},{2922,56473,3},{2913,56473,3}, {2917,56471,3},{2917,56469,3},{2913,56468,3},{2912,56466,3},{2913,56464,3}, {2912,56461,3},{2913,56456,3},{2913,56459,3},{2917,56459,3},{2917,56454,3}, {2918,56451,3},{2915,56453,3},{2913,56448,3},{2918,56441,3},{2918,56434,3}, {2922,56438,3},{2922,56436,3},{2922,56433,3},{2918,56431,3},{2922,56423,3}, {2923,56416,3},{2925,56409,3},{2927,56406,3},{2933,56403,3},{2932,56404,3}, {2933,56408,3},{2937,56409,3},{2938,56413,3},{2932,56416,3},{2933,56419,3}, {2928,56419,3},{2925,56421,3},{2927,56424,3},{2935,56424,3},{2940,56414,3}, {2943,56413,3},{2947,56409,3},{2953,56409,3},{2957,56414,3},{2960,56414,3}, {2962,56411,3},{2960,56411,3},{2957,56411,3},{2955,56408,3},{2952,56408,3}, {2948,56406,3},{2952,56393,3},{2955,56394,3},{2953,56381,3},{2955,56383,3}, {2963,56381,3},{2963,56371,3},{2973,56374,3},{2975,56373,3},{2973,56356,3}, {2972,56351,3},{2972,56349,3},{2975,56349,3},{2977,56348,3},{2980,56349,3}, {2978,56354,3},{2983,56353,3},{2983,56344,3},{2982,56343,3},{2983,56339,3}, {2983,56338,3},{2980,56338,3},{2977,56328,3},{2973,56323,3},{2977,56323,3}, {2977,56319,3},{2975,56319,3},{2977,56316,3},{2970,56318,3},{2972,56326,3}, {2968,56323,3},{2962,56326,3},{2963,56333,3},{2962,56334,3},{2962,56329,3}, {2960,56331,3},{2958,56331,3},{2958,56318,3},{2953,56308,3},{2960,56268,3}, {2973,56233,3},{2978,56213,3},{2977,56164,3},{2970,56153,3},{2975,56148,3}, {2980,56146,3},{2983,56149,3},{2983,56156,3},{2990,56159,3},{2997,56159,3}, {2998,56158,3},{2998,56151,3},{2993,56148,3},{2983,56141,3},{2980,56141,3}, {2973,56148,3},{2968,56151,3},{2968,56131,3},{2965,56123,3},{2945,56071,3}, {2937,56059,3},{2937,56058,3},{2940,56058,3},{2943,56064,3},{2947,56066,3}, {2948,56073,3},{2953,56079,3},{2952,56086,3},{2957,56088,3},{2955,56084,3}, {2957,56079,3},{2957,56073,3},{2953,56058,3},{2953,56056,3},{2955,56056,3}, {2955,56059,3},{2965,56064,3},{2975,56066,3},{2978,56061,3},{2977,56053,3}, {2968,56048,3},{2967,56046,3},{2967,56043,3},{2970,56041,3},{2972,56036,3}, {2972,56029,3},{2968,56033,3},{2968,56036,3},{2963,56033,3},{2960,56038,3}, {2957,56034,3},{2953,56034,3},{2952,56036,3},{2950,56044,3},{2948,56043,3}, {2947,56039,3},{2942,56041,3},{2942,56044,3},{2943,56044,3},{2942,56046,3}, {2940,56048,3},{2937,56054,3},{2937,56046,3},{2932,56046,3},{2930,56043,3}, {2932,56041,3},{2928,56036,3},{2927,56036,3},{2922,56033,3},{2918,56026,3}, {2918,56024,3},{2920,56024,3},{2920,56019,3},{2917,56021,3},{2907,56021,3}, {2905,56023,3},{2888,55999,3},{2887,55994,3},{2873,55968,3},{2873,55961,3}, {2873,55954,3},{2870,55943,3},{2868,55941,3},{2862,55941,3},{2872,55964,3}, {2865,55953,3},{2860,55938,3},{2848,55914,3},{2853,55921,3},{2860,55936,3}, {2863,55938,3},{2865,55938,3},{2858,55914,3},{2860,55914,3},{2860,55918,3}, {2863,55923,3},{2863,55914,3},{2867,55918,3},{2870,55918,3},{2867,55909,3}, {2868,55909,3},{2865,55906,3},{2863,55901,3},{2865,55901,3},{2867,55898,3}, {2872,55898,3},{2873,55896,3},{2873,55894,3},{2877,55893,3},{2870,55893,3}, {2872,55896,3},{2868,55894,3},{2863,55894,3},{2862,55899,3},{2857,55888,3}, {2860,55888,3},{2860,55893,3},{2863,55891,3},{2862,55888,3},{2862,55886,3}, {2865,55886,3},{2865,55881,3},{2870,55879,3},{2872,55878,3},{2872,55871,3}, {2868,55871,3},{2863,55876,3},{2857,55876,3},{2855,55884,3},{2852,55888,3}, {2848,55881,3},{2847,55881,3},{2848,55886,3},{2850,55888,3},{2847,55893,3}, {2845,55896,3},{2843,55896,3},{2832,55871,3},{2833,55866,3},{2840,55866,3}, {2842,55863,3},{2843,55861,3},{2848,55858,3},{2845,55854,3},{2842,55859,3}, {2840,55859,3},{2842,55853,3},{2840,55853,3},{2835,55858,3},{2828,55856,3}, {2823,55858,3},{2817,55849,3},{2813,55848,3},{2813,55843,3},{2820,55844,3}, {2822,55843,3},{2825,55846,3},{2827,55844,3},{2822,55841,3},{2818,55843,3}, {2812,55839,3},{2813,55834,3},{2818,55836,3},{2820,55834,3},{2818,55833,3}, {2815,55824,3},{2817,55821,3},{2815,55818,3},{2812,55821,3},{2807,55814,3}, {2803,55821,3},{2800,55821,3},{2807,55826,3},{2808,55831,3},{2812,55833,3}, {2810,55834,3},{2807,55833,3},{2803,55834,3},{2797,55826,3},{2782,55816,3}, {2782,55813,3},{2783,55814,3},{2787,55811,3},{2788,55809,3},{2785,55801,3}, {2787,55801,3},{2787,55791,3},{2785,55789,3},{2788,55786,3},{2787,55784,3}, {2782,55788,3},{2783,55798,3},{2778,55796,3},{2775,55799,3},{2772,55804,3}, {2770,55811,3},{2757,55804,3},{2733,55796,3},{2730,55788,3},{2728,55784,3}, {2728,55783,3},{2730,55786,3},{2733,55786,3},{2733,55791,3},{2735,55788,3}, {2740,55788,3},{2738,55784,3},{2733,55779,3},{2733,55778,3},{2730,55776,3}, {2730,55773,3},{2733,55771,3},{2738,55768,3},{2747,55759,3},{2745,55759,3}, {2740,55764,3},{2738,55763,3},{2737,55766,3},{2735,55766,3},{2733,55768,3}, {2732,55764,3},{2732,55769,3},{2730,55769,3},{2728,55766,3},{2728,55759,3}, {2727,55763,3},{2727,55771,3},{2725,55773,3},{2723,55783,3},{2727,55794,3}, {2717,55791,3},{2712,55791,3},{2710,55786,3},{2707,55788,3},{2705,55788,3}, {2702,55789,3},{2700,55786,3},{2702,55781,3},{2700,55779,3},{2692,55781,3}, {2690,55784,3},{2688,55788,3},{2687,55788,3},{2685,55786,3},{2687,55784,3}, {2690,55781,3},{2687,55781,3},{2683,55779,3},{2682,55781,3},{2680,55786,3}, {2655,55794,3},{2650,55794,3},{2652,55793,3},{2650,55793,3},{2648,55789,3}, {2648,55793,3},{2642,55791,3},{2642,55794,3},{2637,55796,3},{2637,55799,3}, {2633,55799,3},{2635,55801,3},{2628,55799,3},{2627,55801,3},{2628,55804,3}, {2625,55804,3},{2623,55803,3},{2620,55804,3},{2617,55804,3},{2612,55806,3}, {2610,55808,3},{2608,55814,3},{2607,55814,3},{2607,55811,3},{2603,55809,3}, {2598,55811,3},{2602,55818,3},{2608,55819,3},{2597,55823,3},{2595,55814,3}, {2597,55809,3},{2593,55808,3},{2593,55803,3},{2592,55801,3},{2585,55801,3}, {2583,55799,3},{2587,55796,3},{2585,55794,3},{2585,55793,3},{2588,55791,3}, {2590,55784,3},{2595,55779,3},{2597,55778,3},{2600,55774,3},{2603,55771,3}, {2603,55759,3},{2605,55758,3},{2605,55756,3},{2605,55736,3},{2607,55734,3}, {2603,55729,3},{2605,55728,3},{2607,55728,3},{2607,55724,3},{2607,55723,3}, {2607,55719,3},{2605,55716,3},{2608,55716,3},{2612,55706,3},{2615,55701,3}, {2615,55698,3},{2620,55699,3},{2620,55696,3},{2623,55691,3},{2620,55689,3}, {2625,55683,3},{2623,55681,3},{2625,55678,3},{2623,55671,3},{2627,55666,3}, {2630,55666,3},{2630,55661,3},{2632,55663,3},{2637,55656,3},{2637,55648,3}, {2640,55643,3},{2638,55641,3},{2640,55639,3},{2640,55638,3},{2638,55636,3}, {2640,55634,3},{2640,55628,3},{2642,55626,3},{2650,55628,3},{2655,55619,3}, {2662,55619,3},{2685,55609,3},{2688,55601,3},{2692,55601,3},{2693,55598,3}, {2700,55598,3},{2705,55589,3},{2710,55593,3},{2713,55591,3},{2722,55593,3}, {2727,55591,3},{2727,55588,3},{2730,55588,3},{2730,55584,3},{2740,55589,3}, {2748,55589,3},{2750,55584,3},{2757,55586,3},{2763,55578,3},{2763,55573,3}, {2765,55571,3},{2767,55566,3},{2772,55561,3},{2773,55558,3},{2777,55556,3}, {2778,55553,3},{2780,55549,3},{2785,55549,3},{2787,55548,3},{2790,55548,3}, {2793,55543,3},{2798,55543,3},{2800,55536,3},{2807,55534,3},{2808,55531,3}, {2815,55529,3},{2820,55518,3},{2823,55516,3},{2825,55513,3},{2828,55508,3}, {2832,55508,3},{2840,55503,3},{2843,55503,3},{2848,55501,3},{2850,55504,3}, {2853,55498,3},{2857,55496,3},{2860,55496,3},{2862,55493,3},{2863,55493,3}, {2868,55488,3},{2883,55483,3},{2883,55479,3},{2887,55479,3},{2892,55474,3}, {2900,55473,3},{2912,55469,3},{2917,55459,3},{2923,55459,3},{2928,55453,3}, {2928,55449,3},{2935,55443,3},{2938,55436,3},{2947,55431,3},{2950,55423,3}, {2953,55418,3},{2953,55414,3},{2958,55414,3},{2962,55414,3},{2962,55413,3}, {2958,55406,3},{2962,55404,3},{2965,55406,3},{2967,55401,3},{2975,55394,3}, {2977,55396,3},{2977,55393,3},{2978,55389,3},{2977,55383,3},{2980,55383,3}, {2982,55383,3},{2977,55379,3},{2977,55373,3},{2980,55359,3},{2978,55356,3}, {2982,55354,3},{2980,55353,3},{2980,55348,3},{2980,55344,3},{2982,55339,3}, {2980,55338,3},{2980,55328,3},{2982,55321,3},{2985,55318,3},{2985,55313,3}, {2987,55311,3},{2988,55306,3},{2985,55301,3},{2980,55299,3},{2977,55298,3}, {2978,55286,3},{2975,55283,3},{2977,55279,3},{2975,55278,3},{2975,55269,3}, {2967,55268,3},{2963,55263,3},{2960,55263,3},{2960,55259,3},{2955,55259,3}, {2952,55256,3},{2945,55254,3},{2940,55254,3},{2935,55251,3},{2935,55248,3}, {2932,55248,3},{2925,55246,3},{2922,55249,3},{2922,55246,3},{2920,55243,3}, {2918,55238,3},{2910,55233,3},{2908,55228,3},{2905,55228,3},{2907,55226,3}, {2900,55226,3},{2898,55221,3},{2900,55206,3},{2900,55204,3},{2902,55204,3}, {2902,55203,3},{2903,55201,3},{2902,55199,3},{2907,55191,3},{2907,55188,3}, {2915,55181,3},{2915,55173,3},{2920,55163,3},{2923,55158,3},{2925,55159,3}, {2927,55158,3},{2928,55148,3},{2933,55131,3},{2942,55119,3},{2947,55116,3}, {2948,55116,3},{2952,55108,3},{2953,55103,3},{2957,55094,3},{2963,55086,3}, {2972,55081,3},{2980,55079,3},{2982,55074,3},{2995,55068,3},{2997,55069,3}, {3005,55066,3},{3012,55068,3},{3018,55068,3},{3023,55066,3},{3028,55059,3}, {3032,55059,3},{3035,55054,3},{3038,55054,3},{3040,55051,3},{3050,55049,3}, {3057,55046,3},{3062,55043,3},{3062,55038,3},{3068,55036,3},{3070,55029,3}, {3080,55016,3},{3080,55009,3},{3082,55008,3},{3087,54998,3},{3090,54996,3}, {3095,54988,3},{3097,54986,3},{3102,54979,3},{3108,54976,3},{3118,54959,3}, {3125,54953,3},{3133,54943,3},{3137,54941,3},{3140,54936,3},{3143,54921,3}, {3148,54914,3},{3168,54903,3},{3175,54898,3},{3175,54888,3},{3178,54884,3}, {3178,54881,3},{3178,54876,3},{3178,54869,3},{3178,54861,3},{3178,54854,3}, {3178,54849,3},{3178,54843,3},{3178,54836,3},{3178,54828,3},{3178,54821,3}, {3178,54816,3},{3178,54809,3},{3178,54803,3},{3178,54794,3},{3178,54789,3}, {3178,54783,3},{3178,54776,3},{3178,54768,3},{3178,54761,3},{3178,54756,3}, {3178,54749,3},{3178,54741,3},{3178,54736,3},{3178,54729,3},{3178,54723,3}, {3178,54716,3},{3177,54716,3},{3170,54716,3},{3163,54716,3},{3157,54716,3}, {3150,54716,3},{3143,54716,3},{3138,54716,3},{3133,54716,3},{3133,54711,3}, {3133,54704,3},{3133,54698,3},{3133,54691,3},{3133,54684,3},{3133,54678,3}, {3133,54671,3},{3133,54664,3},{3133,54658,3},{3133,54653,3},{3133,54651,3}, {3133,54644,3},{3133,54638,3},{3133,54631,3},{3133,54624,3},{3133,54618,3}, {3133,54611,3},{3133,54604,3},{3133,54598,3},{3133,54591,3},{3133,54584,3}, {3133,54578,3},{3133,54571,3},{3133,54564,3},{3133,54558,3},{3133,54551,3}, {3133,54544,3},{3133,54538,3},{3133,54531,3},{3133,54524,3},{3133,54518,3}, {3133,54511,3},{3133,54504,3},{3133,54498,3},{3133,54491,3},{3133,54484,3}, {3133,54478,3},{3133,54471,3},{3133,54464,3},{3133,54458,3},{3133,54451,3}, {3133,54444,3},{3133,54438,3},{3133,54431,3},{3135,54428,3},{3137,54421,3}, {3138,54416,3},{3140,54409,3},{3142,54404,3},{3143,54398,3},{3147,54393,3}, {3148,54386,3},{3150,54381,3},{3152,54374,3},{3153,54369,3},{3155,54363,3}, {3157,54358,3},{3160,54351,3},{3162,54346,3},{3163,54339,3},{3165,54334,3}, {3167,54328,3},{3168,54321,3},{3170,54316,3},{3172,54309,3},{3175,54304,3}, {3177,54298,3},{3178,54293,3},{3180,54286,3},{3182,54281,3},{3183,54274,3}, {3185,54269,3},{3187,54263,3},{3188,54258,3},{3190,54251,3},{3193,54244,3}, {3195,54239,3},{3197,54233,3},{3198,54228,3},{3200,54221,3},{3202,54216,3}, {3203,54209,3},{3205,54204,3},{3207,54198,3},{3208,54191,3},{3212,54186,3}, {3213,54179,3},{3215,54174,3},{3217,54168,3},{3218,54163,3},{3220,54156,3}, {3222,54151,3},{3223,54144,3},{3225,54138,3},{3227,54133,3},{3228,54126,3}, {3230,54121,3},{3233,54114,3},{3235,54109,3},{3237,54103,3},{3238,54096,3}, {3240,54091,3},{3242,54084,3},{3243,54079,3},{3245,54073,3},{3247,54068,3}, {3248,54061,3},{3250,54054,3},{3255,54058,3},{3262,54056,3},{3265,54061,3}, {3272,54064,3},{3272,54059,3},{3272,54054,3},{3270,54048,3},{3270,54043,3}, {3270,54036,3},{3270,54029,3},{3268,54024,3},{3268,54018,3},{3268,54011,3}, {3268,54006,3},{3267,53999,3},{3267,53994,3},{3267,53988,3},{3267,53981,3}, {3265,53976,3},{3265,53969,3},{3265,53963,3},{3263,53958,3},{3263,53951,3}, {3263,53946,3},{3263,53939,3},{3262,53933,3},{3262,53928,3},{3262,53921,3}, {3262,53914,3},{3260,53909,3},{3260,53903,3},{3260,53898,3},{3258,53891,3}, {3258,53884,3},{3258,53879,3},{3258,53873,3},{3257,53866,3},{3257,53861,3}, {3257,53854,3},{3255,53849,3},{3255,53843,3},{3255,53836,3},{3253,53831,3}, {3253,53824,3},{4900,53226,131},{4903,53224,3},{4907,53221,3},{4908,53226,3}, {4915,53233,3},{4910,53224,3},{4913,53214,3},{4920,53216,3},{4920,53223,3}, {4918,53223,3},{4920,53223,3},{4925,53213,3},{4928,53211,3},{4928,53221,3}, {4930,53219,3},{4930,53221,3},{4928,53224,3},{4928,53244,3},{4933,53248,3}, {4943,53251,3},{4945,53249,3},{4943,53248,3},{4937,53246,3},{4932,53243,3}, {4930,53234,3},{4933,53213,3},{4933,53209,3},{4937,53208,3},{4938,53211,3}, {4943,53213,3},{4952,53211,3},{4962,53216,3},{4965,53216,3},{4968,53221,3}, {4970,53219,3},{4967,53213,3},{4958,53211,3},{4958,53204,3},{4955,53201,3}, {4955,53198,3},{4952,53186,3},{4942,53188,3},{4938,53184,3},{4943,53164,3}, {4947,53161,3},{4947,53151,3},{4947,53148,3},{4950,53144,3},{4952,53139,3}, {4963,53129,3},{4972,53133,3},{4973,53136,3},{4973,53143,3},{4968,53148,3}, {4963,53153,3},{4950,53158,3},{4953,53161,3},{4958,53159,3},{4960,53159,3}, {4963,53168,3},{4963,53174,3},{4970,53183,3},{4965,53169,3},{4963,53158,3}, {4965,53154,3},{4970,53153,3},{4977,53143,3},{4983,53148,3},{4988,53149,3}, {4992,53148,3},{4993,53141,3},{4998,53139,3},{5003,53149,3},{5005,53156,3}, {5008,53161,3},{5015,53153,3},{5022,53138,3},{5017,53141,3},{5015,53149,3}, {5010,53154,3},{5005,53151,3},{5000,53136,3},{4992,53138,3},{4987,53144,3}, {4983,53143,3},{4983,53139,3},{4980,53138,3},{4982,53136,3},{4992,53133,3}, {4987,53129,3},{4983,53131,3},{4982,53128,3},{4980,53128,3},{4977,53119,3}, {4978,53111,3},{4975,53109,3},{4977,53101,3},{4977,53096,3},{4977,53091,3}, {4980,53084,3},{4983,53083,3},{4987,53079,3},{4993,53066,3},{4998,53059,3}, {5007,53053,3},{4998,53066,3},{5003,53066,3},{5007,53069,3},{5010,53066,3}, {5012,53069,3},{5013,53069,3},{5017,53074,3},{5023,53076,3},{5028,53073,3}, {5033,53064,3},{5035,53068,3},{5038,53071,3},{5040,53076,3},{5040,53083,3}, {5045,53094,3},{5050,53101,3},{5050,53098,3},{5047,53093,3},{5042,53079,3}, {5043,53069,3},{5035,53063,3},{5032,53053,3},{5033,53039,3},{5037,53041,3}, {5043,53036,3},{5035,53036,3},{5035,53033,3},{5032,53031,3},{5032,53028,3}, {5035,53028,3},{5037,53029,3},{5048,53031,3},{5050,53039,3},{5055,53043,3}, {5055,53048,3},{5058,53049,3},{5060,53048,3},{5068,53049,3},{5072,53054,3}, {5080,53044,3},{5088,53058,3},{5092,53054,3},{5093,53051,3},{5092,53049,3}, {5088,53049,3},{5083,53044,3},{5080,53038,3},{5080,53041,3},{5075,53041,3}, {5075,53046,3},{5073,53046,3},{5067,53044,3},{5062,53046,3},{5060,53043,3}, {5060,53041,3},{5057,53038,3},{5055,53034,3},{5053,53033,3},{5050,53026,3}, {5043,53024,3},{5042,53018,3},{5047,53011,3},{5050,53011,3},{5045,53006,3}, {5048,53003,3},{5050,53001,3},{5053,53003,3},{5053,52999,3},{5048,52996,3}, {5047,52994,3},{5047,52979,3},{5053,52983,3},{5058,52981,3},{5063,52983,3}, {5067,52986,3},{5068,52991,3},{5072,52993,3},{5072,52989,3},{5067,52981,3}, {5055,52979,3},{5050,52974,3},{5047,52974,3},{5043,52966,3},{5043,52964,3}, {5050,52956,3},{5052,52963,3},{5053,52954,3},{5050,52949,3},{5047,52939,3}, {5048,52936,3},{5047,52929,3},{5050,52928,3},{5048,52923,3},{5050,52914,3}, {5052,52908,3},{5053,52913,3},{5052,52918,3},{5057,52918,3},{5057,52919,3}, {5062,52939,3},{5063,52943,3},{5065,52938,3},{5063,52929,3},{5058,52916,3}, {5060,52911,3},{5063,52909,3},{5065,52926,3},{5067,52933,3},{5065,52944,3}, {5067,52953,3},{5068,52961,3},{5067,52964,3},{5068,52966,3},{5073,52968,3}, {5075,52974,3},{5078,52976,3},{5085,52971,3},{5087,52976,3},{5085,52979,3}, {5087,52981,3},{5093,52986,3},{5105,52981,3},{5110,52973,3},{5107,52973,3}, {5095,52978,3},{5093,52981,3},{5090,52979,3},{5090,52974,3},{5087,52968,3}, {5082,52968,3},{5080,52973,3},{5078,52971,3},{5077,52966,3},{5070,52961,3}, {5070,52951,3},{5068,52943,3},{5070,52939,3},{5070,52936,3},{5068,52931,3}, {5067,52916,3},{5067,52914,3},{5070,52914,3},{5072,52919,3},{5080,52934,3}, {5077,52921,3},{5080,52916,3},{5087,52918,3},{5085,52914,3},{5085,52913,3}, {5087,52913,3},{5085,52898,3},{5082,52893,3},{5082,52886,3},{5083,52881,3}, {5088,52881,3},{5092,52886,3},{5090,52913,3},{5092,52918,3},{5093,52919,3}, {5095,52918,3},{5092,52911,3},{5095,52889,3},{5098,52886,3},{5107,52884,3}, {5102,52881,3},{5093,52884,3},{5090,52879,3},{5088,52871,3},{5087,52869,3}, {5088,52864,3},{5093,52851,3},{5090,52846,3},{5090,52833,3},{5093,52824,3}, {5093,52818,3},{5092,52819,3},{5088,52829,3},{5088,52844,3},{5082,52834,3}, {5087,52823,3},{5088,52814,3},{5092,52811,3},{5093,52796,3},{5095,52793,3}, {5097,52794,3},{5098,52794,3},{5098,52788,3},{5100,52783,3},{5110,52786,3}, {5110,52788,3},{5112,52786,3},{5108,52773,3},{5110,52768,3},{5112,52769,3}, {5113,52766,3},{5113,52761,3},{5117,52758,3},{5123,52758,3},{5125,52761,3}, {5130,52779,3},{5128,52793,3},{5127,52799,3},{5128,52813,3},{5133,52823,3}, {5138,52824,3},{5132,52818,3},{5130,52808,3},{5132,52784,3},{5135,52791,3}, {5135,52789,3},{5133,52779,3},{5133,52758,3},{5137,52758,3},{5138,52763,3}, {5138,52769,3},{5147,52776,3},{5147,52781,3},{5150,52781,3},{5152,52784,3}, {5158,52784,3},{5162,52786,3},{5165,52798,3},{5167,52826,3},{5165,52844,3}, {5163,52866,3},{5165,52871,3},{5167,52871,3},{5168,52874,3},{5172,52876,3}, {5180,52869,3},{5172,52873,3},{5167,52866,3},{5168,52836,3},{5170,52831,3}, {5168,52816,3},{5168,52809,3},{5172,52803,3},{5168,52799,3},{5167,52794,3}, {5167,52793,3},{5175,52793,3},{5177,52799,3},{5187,52801,3},{5178,52796,3}, {5177,52791,3},{5170,52789,3},{5170,52771,3},{5168,52778,3},{5167,52789,3}, {5165,52786,3},{5163,52783,3},{5157,52778,3},{5153,52779,3},{5147,52773,3}, {5145,52766,3},{5150,52759,3},{5152,52771,3},{5153,52768,3},{5153,52756,3}, {5160,52756,3},{5160,52753,3},{5163,52753,3},{5167,52748,3},{5173,52749,3}, {5180,52748,3},{5190,52749,3},{5193,52758,3},{5195,52769,3},{5205,52771,3}, {5213,52778,3},{5215,52786,3},{5215,52789,3},{5213,52789,3},{5212,52789,3}, {5210,52786,3},{5210,52778,3},{5203,52774,3},{5203,52778,3},{5208,52781,3}, {5208,52794,3},{5218,52791,3},{5218,52796,3},{5222,52799,3},{5223,52808,3}, {5225,52811,3},{5232,52819,3},{5230,52836,3},{5225,52843,3},{5220,52843,3}, {5208,52861,3},{5198,52869,3},{5203,52869,3},{5212,52861,3},{5220,52846,3}, {5225,52846,3},{5230,52843,3},{5233,52843,3},{5235,52849,3},{5237,52863,3}, {5240,52856,3},{5237,52844,3},{5233,52838,3},{5235,52823,3},{5238,52818,3}, {5242,52818,3},{5245,52813,3},{5252,52813,3},{5262,52829,3},{5263,52838,3}, {5272,52844,3},{5283,52839,3},{5288,52829,3},{5282,52836,3},{5270,52838,3}, {5265,52831,3},{5263,52828,3},{5255,52811,3},{5250,52808,3},{5247,52809,3}, {5240,52791,3},{5233,52783,3},{5232,52776,3},{5230,52774,3},{5230,52768,3}, {5227,52763,3},{5228,52761,3},{5230,52761,3},{5235,52764,3},{5230,52758,3}, {5225,52756,3},{5220,52751,3},{5227,52748,3},{5230,52743,3},{5235,52744,3}, {5237,52753,3},{5245,52744,3},{5250,52749,3},{5252,52748,3},{5248,52744,3}, {5243,52743,3},{5238,52748,3},{5232,52739,3},{5233,52734,3},{5240,52731,3}, {5247,52729,3},{5252,52739,3},{5250,52743,3},{5253,52743,3},{5255,52748,3}, {5258,52748,3},{5255,52743,3},{5253,52733,3},{5250,52726,3},{5243,52721,3}, {5242,52721,3},{5238,52716,3},{5227,52708,3},{5228,52696,3},{5233,52703,3}, {5237,52703,3},{5240,52706,3},{5240,52711,3},{5247,52714,3},{5257,52713,3}, {5267,52718,3},{5275,52724,3},{5288,52723,3},{5292,52733,3},{5292,52723,3}, {5285,52719,3},{5283,52714,3},{5282,52713,3},{5280,52709,3},{5282,52699,3}, {5283,52698,3},{5282,52693,3},{5287,52688,3},{5292,52686,3},{5307,52683,3}, {5310,52686,3},{5310,52683,3},{5312,52681,3},{5313,52688,3},{5315,52679,3}, {5323,52669,3},{5318,52669,3},{5328,52649,3},{5333,52648,3},{5337,52651,3}, {5337,52648,3},{5340,52649,3},{5343,52648,3},{5348,52653,3},{5348,52651,3}, {5348,52648,3},{5345,52644,3},{5348,52643,3},{5355,52639,3},{5353,52649,3}, {5357,52654,3},{5355,52658,3},{5350,52661,3},{5348,52664,3},{5345,52669,3}, {5348,52666,3},{5347,52671,3},{5338,52686,3},{5335,52686,3},{5333,52688,3}, {5338,52689,3},{5340,52686,3},{5343,52688,3},{5345,52699,3},{5348,52701,3}, {5345,52713,3},{5347,52718,3},{5345,52721,3},{5343,52726,3},{5340,52729,3}, {5333,52726,3},{5337,52731,3},{5333,52741,3},{5325,52741,3},{5322,52749,3}, {5323,52749,3},{5328,52743,3},{5333,52744,3},{5340,52731,3},{5347,52724,3}, {5348,52724,3},{5347,52711,3},{5350,52699,3},{5348,52698,3},{5347,52698,3}, {5343,52684,3},{5347,52678,3},{5348,52676,3},{5350,52673,3},{5352,52668,3}, {5355,52666,3},{5357,52661,3},{5362,52654,3},{5365,52654,3},{5372,52659,3}, {5377,52656,3},{5380,52659,3},{5382,52664,3},{5382,52668,3},{5385,52668,3}, {5387,52671,3},{5383,52676,3},{5383,52689,3},{5385,52688,3},{5387,52674,3}, {5388,52668,3},{5403,52676,3},{5400,52668,3},{5393,52664,3},{5392,52661,3}, {5392,52658,3},{5388,52656,3},{5387,52653,3},{5383,52651,3},{5377,52643,3}, {5385,52646,3},{5382,52643,3},{5388,52641,3},{5390,52636,3},{5387,52639,3}, {5378,52639,3},{5377,52636,3},{5378,52633,3},{5382,52631,3},{5378,52629,3}, {5377,52633,3},{5375,52633,3},{5372,52624,3},{5367,52621,3},{5363,52613,3}, {5353,52613,3},{5352,52609,3},{5350,52613,3},{5343,52613,3},{5340,52609,3}, {5338,52609,3},{5340,52601,3},{5357,52576,3},{5368,52563,3},{5368,52566,3}, {5370,52564,3},{5372,52558,3},{5375,52554,3},{5375,52551,3},{5385,52538,3}, {5388,52539,3},{5387,52536,3},{5388,52531,3},{5395,52526,3},{5402,52528,3}, {5407,52528,3},{5415,52531,3},{5415,52541,3},{5403,52553,3},{5400,52561,3}, {5395,52564,3},{5400,52563,3},{5402,52558,3},{5405,52553,3},{5415,52544,3}, {5418,52543,3},{5422,52553,3},{5418,52573,3},{5418,52576,3},{5422,52581,3}, {5423,52589,3},{5423,52583,3},{5420,52574,3},{5422,52568,3},{5423,52549,3}, {5418,52534,3},{5418,52528,3},{5415,52524,3},{5420,52518,3},{5420,52509,3}, {5423,52508,3},{5427,52516,3},{5428,52513,3},{5433,52509,3},{5440,52511,3}, {5435,52508,3},{5433,52501,3},{5433,52489,3},{5437,52488,3},{5443,52489,3}, {5445,52498,3},{5450,52493,3},{5457,52493,3},{5457,52498,3},{5462,52493,3}, {5463,52493,3},{5460,52501,3},{5433,52531,3},{5432,52538,3},{5433,52539,3}, {5435,52533,3},{5440,52528,3},{5448,52529,3},{5448,52536,3},{5452,52538,3}, {5450,52529,3},{5443,52528,3},{5443,52524,3},{5452,52513,3},{5458,52508,3}, {5463,52499,3},{5467,52499,3},{5468,52503,3},{5472,52513,3},{5470,52519,3}, {5467,52524,3},{5467,52528,3},{5463,52531,3},{5462,52538,3},{5462,52548,3}, {5463,52549,3},{5463,52536,3},{5470,52528,3},{5473,52516,3},{5482,52521,3}, {5483,52526,3},{5488,52531,3},{5488,52528,3},{5485,52523,3},{5485,52519,3}, {5497,52533,3},{5497,52541,3},{5492,52538,3},{5498,52554,3},{5497,52559,3}, {5498,52571,3},{5500,52574,3},{5500,52558,3},{5500,52539,3},{5502,52536,3}, {5510,52539,3},{5517,52549,3},{5525,52554,3},{5528,52561,3},{5532,52563,3}, {5537,52568,3},{5543,52571,3},{5545,52576,3},{5543,52584,3},{5547,52589,3}, {5548,52588,3},{5545,52583,3},{5545,52573,3},{5540,52566,3},{5547,52564,3}, {5563,52554,3},{5553,52556,3},{5548,52559,3},{5542,52558,3},{5538,52553,3}, {5537,52553,3},{5540,52556,3},{5537,52554,3},{5537,52558,3},{5532,52553,3}, {5528,52554,3},{5523,52548,3},{5517,52544,3},{5508,52534,3},{5505,52534,3}, {5500,52529,3},{5500,52524,3},{5507,52519,3},{5518,52528,3},{5528,52541,3}, {5535,52536,3},{5547,52534,3},{5555,52526,3},{5567,52529,3},{5572,52523,3}, {5578,52526,3},{5592,52539,3},{5593,52539,3},{5592,52536,3},{5603,52534,3}, {5612,52528,3},{5608,52513,3},{5612,52508,3},{5613,52494,3},{5623,52489,3}, {5625,52473,3},{5637,52459,3},{5640,52431,3},{5660,52381,3},{5660,52354,3}, {5668,52353,3},{5675,52348,3},{5680,52349,3},{5687,52326,3},{5703,52333,3}, {5708,52303,3},{5720,52313,3},{5738,52298,3},{5752,52279,3},{5787,52248,3}, {5800,52231,3},{5813,52223,3},{5828,52199,3},{5838,52191,3},{5842,52199,3}, {5860,52168,3},{5873,52153,3},{5885,52111,3},{5893,52103,3},{5897,52104,3}, {5898,52096,3},{5905,52098,3},{5913,52089,3},{5913,52079,3},{5920,52069,3}, {5925,52068,3},{5928,52041,3},{5935,52034,3},{5938,52038,3},{5943,52028,3}, {5945,52029,3},{5947,52034,3},{5957,52034,3},{5962,52026,3},{5963,52018,3}, {5970,52013,3},{5973,52003,3},{5980,51989,3},{5967,51941,3},{5963,51916,3}, {5960,51901,3},{5957,51913,3},{5953,51913,3},{5947,51906,3},{5945,51899,3}, {5947,51889,3},{5928,51889,3},{5917,51878,3},{5915,51853,3},{5898,51806,3}, {5890,51791,3},{5893,51786,3},{5900,51788,3},{5923,51778,3},{5977,51674,3}, {5990,51668,3},{6000,51631,3},{6008,51618,3},{6032,51629,3},{6035,51629,3}, {6033,51568,3},{6018,51538,3},{6032,51491,3},{6022,51484,3},{6030,51436,3}, {6037,51436,3},{6043,51436,3},{6050,51436,3},{6055,51436,3},{6062,51436,3}, {6067,51436,3},{6073,51436,3},{6080,51436,3},{6087,51436,3},{6093,51436,3}, {6098,51436,3},{6103,51436,3},{6110,51436,3},{6117,51436,3},{6123,51436,3}, {6128,51436,3},{6137,51436,3},{6143,51436,3},{6148,51436,3},{6153,51436,3}, {6160,51436,3},{6165,51436,3},{6172,51436,3},{6177,51436,3},{6183,51436,3}, {6190,51436,3},{6197,51436,3},{6203,51436,3},{6210,51436,3},{6217,51436,3}, {6223,51436,3},{6228,51436,3},{6233,51436,3},{6240,51436,3},{6247,51436,3}, {6253,51436,3},{6260,51436,3},{6267,51436,3},{6273,51436,3},{6280,51436,3}, {6287,51436,3},{6293,51436,3},{6298,51436,3},{6305,51436,3},{6310,51436,3}, {6317,51436,3},{6323,51436,3},{6330,51436,3},{6337,51436,3},{6343,51436,3}, {6348,51436,3},{6355,51436,3},{6362,51436,3},{6367,51436,3},{6373,51436,3}, {6380,51436,3},{6387,51436,3},{6393,51436,3},{6400,51436,3},{6407,51436,3}, {6412,51436,3},{6417,51436,3},{6423,51436,3},{6430,51436,3},{6437,51436,3}, {6443,51436,3},{6448,51436,3},{6455,51436,3},{6460,51436,3},{6467,51436,3}, {6473,51436,3},{6480,51436,3},{6487,51436,3},{6493,51436,3},{6500,51436,3}, {6507,51436,3},{6513,51436,3},{6520,51436,3},{6527,51436,3},{6533,51436,3}, {6540,51436,3},{6547,51436,3},{6553,51436,3},{6558,51436,3},{6565,51436,3}, {6570,51436,3},{6577,51436,3},{6583,51436,3},{6590,51436,3},{6595,51436,3}, {6603,51436,3},{6610,51436,3},{6617,51436,3},{6623,51436,3},{6630,51436,3}, {6637,51436,3},{6642,51436,3},{6647,51436,3},{6653,51436,3},{6660,51436,3}, {6667,51436,3},{6673,51436,3},{6680,51436,3},{6687,51436,3},{6693,51436,3}, {6700,51436,3},{6705,51436,3},{6710,51436,3},{6717,51436,3},{6723,51436,3}, {6730,51436,3},{6737,51436,3},{6742,51436,3},{6747,51436,3},{6753,51436,3}, {6760,51436,3},{6767,51436,3},{6772,51436,3},{6780,51436,3},{6787,51436,3}, {6793,51436,3},{6800,51436,3},{6807,51436,3},{6813,51436,3},{6820,51436,3}, {6827,51436,3},{6833,51436,3},{6840,51436,3},{6847,51436,3},{6853,51436,3}, {6860,51436,3},{6867,51436,3},{6873,51436,3},{6880,51436,3},{6887,51436,3}, {6892,51436,3},{6900,51436,3},{6907,51436,3},{6913,51436,3},{6920,51436,3}, {6925,51436,3},{6930,51436,3},{6937,51436,3},{6943,51436,3},{6950,51436,3}, {6957,51436,3},{6962,51436,3},{6965,51436,3},{6963,51446,3},{6962,51446,3}, {6962,51453,3},{6963,51453,3},{6962,51461,3},{6960,51496,3},{6960,51509,3}, {6962,51526,3},{6962,51548,3},{6957,51578,3},{6960,51559,3},{6958,51561,3}, {6957,51576,3},{6955,51594,3},{6950,51609,3},{6950,51623,3},{6942,51639,3}, {6935,51659,3},{6928,51671,3},{6923,51676,3},{6925,51684,3},{6923,51684,3}, {6923,51691,3},{6925,51696,3},{6930,51696,3},{6928,51691,3},{6930,51696,3}, {6930,51701,3},{6923,51703,3},{6917,51714,3},{6913,51729,3},{6903,51773,3}, {6900,51798,3},{6900,51793,3},{6898,51794,3},{6897,51808,3},{6895,51811,3}, {6895,51834,3},{6892,51839,3},{6892,51848,3},{6887,51861,3},{6887,51869,3}, {6890,51876,3},{6888,51883,3},{6890,51883,3},{6892,51888,3},{6890,51894,3}, {6888,51916,3},{6888,51924,3},{6883,51954,3},{6877,51964,3},{6875,51983,3}, {6870,51994,3},{6867,51996,3},{6867,52004,3},{6868,52006,3},{6865,52019,3}, {6868,52014,3},{6868,52018,3},{6873,52003,3},{6877,52001,3},{6880,51989,3}, {6883,51986,3},{6883,52003,3},{6887,51979,3},{6888,51974,3},{6893,52013,3}, {6888,52019,3},{6890,52026,3},{6888,52038,3},{6888,52041,3},{6893,52051,3}, {6888,52068,3},{6885,52073,3},{6880,52073,3},{6875,52086,3},{6872,52089,3}, {6868,52104,3},{6870,52114,3},{6877,52106,3},{6880,52096,3},{6888,52088,3}, {6902,52074,3},{6910,52083,3},{6910,52103,3},{6915,52104,3},{6917,52113,3}, {6922,52114,3},{6927,52121,3},{6928,52146,3},{6933,52149,3},{6935,52161,3}, {6933,52161,3},{6933,52166,3},{6935,52169,3},{6937,52168,3},{6938,52168,3}, {6940,52181,3},{6940,52214,3},{6942,52218,3},{6945,52228,3},{6943,52231,3}, {6947,52231,3},{6952,52239,3},{6957,52241,3},{6960,52238,3},{6965,52246,3}, {6965,52258,3},{6963,52258,3},{6965,52273,3},{6963,52283,3},{6963,52294,3}, {6965,52301,3},{6968,52303,3},{6968,52299,3},{6965,52291,3},{6968,52294,3}, {6970,52291,3},{6967,52279,3},{6968,52274,3},{6973,52283,3},{6977,52309,3}, {6973,52288,3},{6972,52294,3},{6973,52308,3},{6972,52304,3},{6968,52323,3}, {6972,52326,3},{6973,52338,3},{6977,52344,3},{6977,52353,3},{6980,52359,3}, {6983,52359,3},{6987,52373,3},{6990,52394,3},{6992,52391,3},{6995,52394,3}, {6993,52413,3},{6988,52416,3},{6985,52414,3},{6982,52418,3},{6985,52421,3}, {6987,52418,3},{6988,52419,3},{6990,52423,3},{6988,52428,3},{7000,52436,3}, {7002,52443,3},{7003,52443,3},{7003,52434,3},{7010,52446,3},{7007,52446,3}, {7010,52456,3},{7010,52459,3},{7013,52461,3},{7012,52466,3},{7008,52463,3}, {7010,52471,3},{7013,52471,3},{7013,52478,3},{7017,52481,3},{7017,52489,3}, {7017,52484,3},{7010,52483,3},{7012,52488,3},{7013,52486,3},{7013,52494,3}, {7017,52496,3},{7013,52499,3},{7013,52504,3},{7010,52503,3},{7010,52508,3}, {7008,52503,3},{7008,52514,3},{7010,52519,3},{7005,52518,3},{7012,52526,3}, {7010,52529,3},{7007,52528,3},{7010,52543,3},{7007,52538,3},{7008,52546,3}, {7010,52551,3},{7015,52551,3},{7018,52558,3},{7020,52553,3},{7022,52558,3}, {7022,52563,3},{7025,52563,3},{7027,52569,3},{7018,52578,3},{7017,52573,3}, {7015,52589,3},{7012,52586,3},{7010,52589,3},{7013,52593,3},{7012,52596,3}, {7005,52589,3},{7005,52581,3},{7002,52586,3},{6990,52536,3},{6985,52516,3}, {6983,52511,3},{6985,52506,3},{6977,52488,3},{6978,52484,3},{6970,52478,3}, {6968,52458,3},{6960,52451,3},{6960,52448,3},{6957,52443,3},{6960,52433,3}, {6963,52433,3},{6963,52418,3},{6960,52411,3},{6960,52403,3},{6957,52403,3}, {6958,52394,3},{6957,52384,3},{6958,52371,3},{6953,52371,3},{6957,52363,3}, {6953,52348,3},{6953,52336,3},{6948,52328,3},{6945,52331,3},{6945,52326,3}, {6942,52326,3},{6942,52323,3},{6938,52328,3},{6937,52326,3},{6932,52303,3}, {6925,52304,3},{6930,52298,3},{6930,52291,3},{6925,52293,3},{6923,52288,3}, {6917,52288,3},{6928,52281,3},{6928,52274,3},{6925,52269,3},{6927,52264,3}, {6923,52258,3},{6922,52253,3},{6918,52253,3},{6912,52246,3},{6910,52248,3}, {6910,52253,3},{6907,52246,3},{6898,52248,3},{6900,52243,3},{6908,52243,3}, {6905,52236,3},{6907,52228,3},{6905,52224,3},{6903,52216,3},{6898,52216,3}, {6897,52211,3},{6895,52214,3},{6892,52213,3},{6887,52204,3},{6888,52196,3}, {6892,52199,3},{6888,52189,3},{6885,52193,3},{6885,52188,3},{6880,52189,3}, {6875,52204,3},{6873,52213,3},{6872,52216,3},{6868,52233,3},{6868,52244,3}, {6872,52243,3},{6872,52221,3},{6873,52219,3},{6875,52211,3},{6878,52209,3}, {6875,52219,3},{6877,52223,3},{6880,52211,3},{6878,52203,3},{6885,52198,3}, {6887,52213,3},{6885,52218,3},{6880,52226,3},{6880,52229,3},{6882,52231,3}, {6880,52243,3},{6885,52239,3},{6885,52251,3},{6878,52264,3},{6880,52266,3}, {6883,52263,3},{6880,52288,3},{6883,52289,3},{6883,52294,3},{6887,52296,3}, {6892,52281,3},{6890,52279,3},{6888,52286,3},{6890,52276,3},{6887,52271,3}, {6885,52273,3},{6883,52268,3},{6885,52258,3},{6887,52258,3},{6888,52266,3}, {6890,52256,3},{6892,52253,3},{6893,52258,3},{6893,52268,3},{6898,52251,3}, {6903,52249,3},{6903,52253,3},{6907,52249,3},{6908,52256,3},{6908,52269,3}, {6913,52279,3},{6913,52286,3},{6923,52294,3},{6915,52294,3},{6910,52289,3}, {6913,52298,3},{6923,52304,3},{6922,52308,3},{6918,52301,3},{6918,52304,3}, {6922,52316,3},{6913,52314,3},{6923,52319,3},{6923,52328,3},{6925,52339,3}, {6932,52344,3},{6932,52348,3},{6928,52344,3},{6928,52349,3},{6940,52364,3}, {6938,52356,3},{6937,52351,3},{6940,52348,3},{6940,52341,3},{6940,52339,3}, {6943,52349,3},{6942,52353,3},{6943,52359,3},{6942,52371,3},{6945,52368,3}, {6947,52371,3},{6943,52394,3},{6940,52388,3},{6935,52388,3},{6933,52383,3}, {6937,52394,3},{6942,52396,3},{6942,52401,3},{6945,52399,3},{6945,52403,3}, {6950,52404,3},{6940,52411,3},{6950,52409,3},{6950,52413,3},{6947,52413,3}, {6938,52414,3},{6937,52404,3},{6930,52394,3},{6932,52404,3},{6937,52411,3}, {6937,52416,3},{6938,52419,3},{6950,52419,3},{6958,52411,3},{6952,52421,3}, {6952,52424,3},{6937,52423,3},{6948,52429,3},{6952,52429,3},{6958,52416,3}, {6962,52423,3},{6960,52428,3},{6957,52426,3},{6947,52433,3},{6932,52424,3}, {6937,52433,3},{6947,52439,3},{6955,52438,3},{6953,52441,3},{6942,52443,3}, {6935,52431,3},{6932,52433,3},{6940,52443,3},{6938,52446,3},{6932,52444,3}, {6927,52436,3},{6913,52434,3},{6913,52444,3},{6917,52441,3},{6927,52441,3}, {6935,52456,3},{6937,52454,3},{6940,52459,3},{6940,52468,3},{6945,52471,3}, {6945,52461,3},{6958,52491,3},{6962,52491,3},{6968,52503,3},{6970,52499,3}, {6972,52521,3},{6975,52541,3},{6978,52568,3},{6982,52576,3},{6987,52626,3}, {6988,52633,3},{6995,52639,3},{6997,52644,3},{6995,52651,3},{6995,52646,3}, {6992,52646,3},{6988,52641,3},{6985,52643,3},{6985,52623,3},{6982,52619,3}, {6975,52623,3},{6970,52621,3},{6967,52638,3},{6968,52644,3},{6972,52639,3}, {6973,52639,3},{6975,52656,3},{6987,52676,3},{6993,52696,3},{6995,52704,3}, {7000,52706,3},{7010,52699,3},{7012,52701,3},{7018,52724,3},{7018,52739,3}, {7020,52749,3},{7022,52764,3},{7023,52774,3},{7022,52784,3},{7025,52776,3}, {7028,52733,3},{7037,52724,3},{7035,52739,3},{7037,52743,3},{7040,52744,3}, {7037,52733,3},{7037,52719,3},{7038,52716,3},{7052,52723,3},{7058,52736,3}, {7042,52789,3},{7027,52819,3},{7007,52844,3},{7002,52846,3},{6997,52859,3}, {6995,52856,3},{6993,52859,3},{6990,52854,3},{6977,52866,3},{6953,52911,3}, {6940,52946,3},{6938,52959,3},{6938,52969,3},{6935,52978,3},{6932,52993,3}, {6935,52999,3},{6937,52998,3},{6938,52991,3},{6942,52991,3},{6940,52991,3}, {6938,53016,3},{6938,53023,3},{6942,53024,3},{6943,53023,3},{6945,53028,3}, {6945,53021,3},{6947,53024,3},{6947,53013,3},{6945,53009,3},{6945,53006,3}, {6947,53006,3},{6945,53001,3},{6947,52993,3},{6942,52974,3},{6947,52978,3}, {6948,52981,3},{6947,52986,3},{6950,52984,3},{6952,52989,3},{6950,53003,3}, {6952,53003,3},{6952,53008,3},{6948,53024,3},{6953,53009,3},{6955,53006,3}, {6958,53014,3},{6962,52993,3},{6962,52999,3},{6963,52994,3},{6968,52999,3}, {6970,53014,3},{6975,53029,3},{6973,53039,3},{6965,53043,3},{6968,53049,3}, {6972,53049,3},{6972,53054,3},{6975,53046,3},{6975,53034,3},{6978,53021,3}, {6977,53013,3},{6980,53008,3},{6985,53018,3},{6980,53019,3},{6980,53031,3}, {6987,53034,3},{6993,53046,3},{6997,53064,3},{6998,53066,3},{6997,53069,3}, {6998,53073,3},{7002,53068,3},{6997,53061,3},{6998,53051,3},{7002,53056,3}, {7002,53053,3},{7002,53044,3},{7000,53044,3},{7000,53038,3},{6998,53031,3}, {6997,53031,3},{6997,53024,3},{6993,53024,3},{6993,53018,3},{6993,53014,3}, {6997,53018,3},{7000,53016,3},{7008,53036,3},{7007,53039,3},{7003,53036,3}, {7003,53031,3},{7002,53034,3},{7003,53049,3},{7003,53041,3},{7007,53053,3}, {7005,53056,3},{7007,53073,3},{7002,53078,3},{7002,53083,3},{7003,53081,3}, {7005,53083,3},{7003,53093,3},{7008,53091,3},{7008,53079,3},{7010,53086,3}, {7012,53081,3},{7008,53063,3},{7010,53068,3},{7012,53061,3},{7015,53066,3}, {7015,53081,3},{7015,53084,3},{7015,53096,3},{7012,53091,3},{7007,53101,3}, {7002,53098,3},{7000,53086,3},{7000,53094,3},{6998,53093,3},{6997,53083,3}, {6995,53093,3},{6992,53093,3},{6992,53086,3},{6990,53086,3},{6988,53091,3}, {6987,53091,3},{6985,53096,3},{6978,53086,3},{6973,53086,3},{6970,53106,3}, {6973,53116,3},{6972,53126,3},{6972,53129,3},{6970,53133,3},{6967,53131,3}, {6962,53116,3},{6955,53113,3},{6947,53094,3},{6942,53094,3},{6940,53084,3}, {6937,53089,3},{6935,53103,3},{6935,53126,3},{6938,53131,3},{6935,53133,3}, {6935,53138,3},{6938,53134,3},{6940,53138,3},{6937,53148,3},{6938,53153,3}, {6937,53156,3},{6938,53161,3},{6937,53166,3},{6935,53168,3},{6938,53188,3}, {6942,53198,3},{6945,53191,3},{6948,53196,3},{6950,53209,3},{6950,53211,3}, {6950,53219,3},{6957,53223,3},{6962,53219,3},{6967,53226,3},{6975,53224,3}, {6977,53221,3},{6983,53239,3},{6980,53256,3},{6980,53261,3},{6983,53261,3}, {6982,53266,3},{6980,53291,3},{6982,53303,3},{6980,53318,3},{6982,53329,3}, {6982,53343,3},{6980,53368,3},{6977,53378,3},{6977,53391,3},{6967,53428,3}, {6962,53453,3},{6952,53474,3},{6938,53513,3},{6935,53539,3},{6933,53558,3}, {6932,53573,3},{6930,53613,3},{6927,53629,3},{6925,53653,3},{6922,53671,3}, {6912,53691,3},{6908,53709,3},{6902,53733,3},{6898,53749,3},{6895,53798,3}, {6888,53821,3},{6890,53831,3},{6890,53839,3},{6893,53836,3},{6893,53838,3}, {6893,53843,3},{6888,53853,3},{6885,53886,3},{6887,53894,3},{6888,53898,3}, {6883,53914,3},{6880,53939,3},{6882,53941,3},{6887,53924,3},{6888,53928,3}, {6893,53908,3},{6897,53903,3},{6898,53913,3},{6897,53929,3},{6892,53949,3}, {6893,53953,3},{6893,53959,3},{6897,53951,3},{6900,53943,3},{6897,53966,3}, {6897,53976,3},{6890,54004,3},{6890,54013,3},{6885,54028,3},{6887,54029,3}, {6887,54038,3},{6880,54056,3},{6875,54063,3},{6873,54078,3},{6868,54091,3}, {6867,54089,3},{6862,54096,3},{6857,54118,3},{6853,54119,3},{6852,54126,3}, {6847,54129,3},{6843,54131,3},{6842,54123,3},{6840,54126,3},{6838,54131,3}, {6840,54136,3},{6843,54139,3},{6840,54146,3},{6838,54141,3},{6832,54131,3}, {6823,54134,3},{6825,54116,3},{6823,54109,3},{6823,54099,3},{6827,54091,3}, {6825,54066,3},{6825,54054,3},{6828,54039,3},{6823,54049,3},{6818,54061,3}, {6818,54053,3},{6815,54046,3},{6818,54013,3},{6813,54019,3},{6808,54013,3}, {6803,54013,3},{6802,54024,3},{6798,54016,3},{6793,53983,3},{6790,53983,3}, {6788,53984,3},{6788,53996,3},{6788,54011,3},{6787,54008,3},{6782,54018,3}, {6782,54024,3},{6780,54026,3},{6778,54034,3},{6780,54044,3},{6782,54061,3}, {6780,54069,3},{6777,54078,3},{6778,54083,3},{6775,54091,3},{6772,54108,3}, {6773,54118,3},{6772,54139,3},{6768,54151,3},{6770,54214,3},{6767,54231,3}, {6768,54251,3},{6767,54264,3},{6768,54298,3},{6770,54303,3},{6773,54299,3}, {6773,54303,3},{6773,54316,3},{6773,54336,3},{6770,54338,3},{6768,54346,3}, {6770,54349,3},{6772,54343,3},{6773,54346,3},{6775,54344,3},{6775,54356,3}, {6772,54383,3},{6775,54379,3},{6777,54383,3},{6777,54389,3},{6773,54389,3}, {6775,54396,3},{6780,54404,3},{6783,54418,3},{6783,54421,3},{6780,54416,3}, {6778,54419,3},{6775,54416,3},{6778,54428,3},{6777,54433,3},{6780,54453,3}, {6787,54463,3},{6788,54471,3},{6788,54479,3},{6795,54496,3},{6795,54503,3}, {6797,54503,3},{6795,54513,3},{6792,54518,3},{6792,54523,3},{6797,54516,3}, {6800,54519,3},{6800,54528,3},{6795,54539,3},{6787,54536,3},{6783,54538,3}, {6783,54544,3},{6788,54543,3},{6787,54554,3},{6780,54566,3},{6778,54561,3}, {6773,54574,3},{6773,54561,3},{6772,54563,3},{6768,54583,3},{6770,54588,3}, {6772,54586,3},{6773,54586,3},{6777,54596,3},{6773,54596,3},{6773,54601,3}, {6772,54629,3},{6767,54636,3},{6757,54639,3},{6753,54644,3},{6750,54634,3}, {6747,54634,3},{6743,54638,3},{6743,54643,3},{6740,54643,3},{6742,54649,3}, {6735,54654,3},{6737,54658,3},{6745,54661,3},{6760,54663,3},{6763,54668,3}, {6762,54674,3},{6760,54678,3},{6758,54678,3},{6748,54684,3},{6735,54688,3}, {6735,54693,3},{6743,54693,3},{6745,54696,3},{6743,54701,3},{6740,54706,3}, {6730,54734,3},{6713,54749,3},{6713,54744,3},{6705,54748,3},{6708,54733,3}, {6707,54728,3},{6708,54721,3},{6702,54714,3},{6705,54703,3},{6708,54689,3}, {6715,54676,3},{6705,54683,3},{6703,54686,3},{6703,54688,3},{6707,54689,3}, {6703,54694,3},{6698,54703,3},{6695,54721,3},{6692,54724,3},{6687,54724,3}, {6685,54713,3},{6683,54719,3},{6685,54729,3},{6683,54738,3},{6678,54743,3}, {6672,54741,3},{6667,54748,3},{6673,54751,3},{6677,54748,3},{6675,54753,3}, {6665,54768,3},{6663,54764,3},{6657,54771,3},{6653,54781,3},{6655,54783,3}, {6655,54784,3},{6647,54791,3},{6643,54801,3},{6635,54811,3},{6637,54816,3}, {6640,54813,3},{6650,54794,3},{6655,54791,3},{6658,54779,3},{6670,54771,3}, {6677,54756,3},{6675,54764,3},{6677,54768,3},{6695,54759,3},{6702,54761,3}, {6697,54773,3},{6697,54776,3},{6708,54771,3},{6702,54784,3},{6692,54788,3}, {6693,54776,3},{6695,54769,3},{6693,54766,3},{6688,54773,3},{6687,54776,3}, {6690,54778,3},{6687,54783,3},{6683,54779,3},{6682,54784,3},{6685,54788,3}, {6683,54789,3},{6680,54793,3},{6682,54794,3},{6688,54788,3},{6688,54796,3}, {6697,54791,3},{6697,54794,3},{6688,54814,3},{6682,54823,3},{6682,54828,3}, {6697,54813,3},{6703,54796,3},{6707,54801,3},{6707,54811,3},{6710,54811,3}, {6712,54816,3},{6712,54806,3},{6715,54798,3},{6720,54786,3},{6732,54776,3}, {6742,54764,3},{6743,54764,3},{6740,54771,3},{6742,54773,3},{6750,54778,3}, {6770,54736,3},{6777,54734,3},{6785,54743,3},{6790,54766,3},{6793,54771,3}, {6797,54759,3},{6795,54756,3},{6798,54753,3},{6798,54744,3},{6808,54748,3}, {6810,54751,3},{6808,54756,3},{6807,54766,3},{6805,54763,3},{6805,54754,3}, {6803,54756,3},{6803,54763,3},{6802,54753,3},{6798,54758,3},{6798,54763,3}, {6802,54763,3},{6805,54768,3},{6807,54778,3},{6805,54801,3},{6813,54821,3}, {6813,54824,3},{6808,54824,3},{6810,54834,3},{6808,54839,3},{6812,54841,3}, {6810,54859,3},{6815,54861,3},{6822,54856,3},{6822,54858,3},{6822,54861,3}, {6822,54868,3},{6820,54866,3},{6817,54871,3},{6822,54873,3},{6825,54874,3}, {6818,54889,3},{6815,54893,3},{6818,54896,3},{6818,54901,3},{6823,54886,3}, {6830,54894,3},{6833,54889,3},{6835,54893,3},{6835,54903,3},{6840,54914,3}, {6837,54924,3},{6840,54931,3},{6840,54938,3},{6842,54939,3},{6840,54944,3}, {6842,54951,3},{6845,54954,3},{6842,54958,3},{6842,54963,3},{6848,54966,3}, {6855,54959,3},{6863,54971,3},{6863,54963,3},{6862,54958,3},{6863,54948,3}, {6862,54933,3},{6860,54929,3},{6852,54881,3},{6852,54894,3},{6850,54881,3}, {6847,54886,3},{6845,54883,3},{6847,54878,3},{6847,54873,3},{6842,54876,3}, {6842,54886,3},{6840,54888,3},{6835,54879,3},{6830,54883,3},{6828,54881,3}, {6830,54876,3},{6835,54871,3},{6835,54864,3},{6837,54864,3},{6842,54856,3}, {6837,54856,3},{6838,54843,3},{6837,54834,3},{6833,54833,3},{6830,54823,3}, {6827,54823,3},{6827,54809,3},{6832,54803,3},{6832,54788,3},{6835,54779,3}, {6833,54763,3},{6833,54753,3},{6827,54748,3},{6823,54761,3},{6820,54763,3}, {6818,54774,3},{6817,54776,3},{6818,54758,3},{6817,54749,3},{6815,54746,3}, {6815,54734,3},{6817,54738,3},{6817,54736,3},{6817,54716,3},{6812,54699,3}, {6813,54693,3},{6817,54696,3},{6817,54699,3},{6813,54699,3},{6817,54703,3}, {6823,54701,3},{6822,54696,3},{6818,54696,3},{6818,54691,3},{6828,54696,3}, {6830,54691,3},{6830,54686,3},{6825,54678,3},{6825,54666,3},{6823,54664,3}, {6827,54654,3},{6830,54663,3},{6835,54663,3},{6840,54678,3},{6860,54701,3}, {6862,54708,3},{6865,54761,3},{6868,54783,3},{6870,54806,3},{6873,54818,3}, {6882,54854,3},{6882,54871,3},{6885,54878,3},{6890,54909,3},{6893,54914,3}, {6888,54941,3},{6888,54956,3},{6872,54989,3},{6865,54981,3},{6852,54996,3}, {6852,55003,3},{6847,55004,3},{6850,54994,3},{6847,54989,3},{6845,54983,3}, {6842,54983,3},{6842,55003,3},{6837,55001,3},{6833,55006,3},{6825,55031,3}, {6827,55036,3},{6830,55028,3},{6832,55036,3},{6832,55043,3},{6835,55046,3}, {6830,55053,3},{6827,55049,3},{6825,55041,3},{6823,55043,3},{6822,55046,3}, {6823,55051,3},{6827,55054,3},{6825,55056,3},{6823,55076,3},{6813,55069,3}, {6813,55076,3},{6808,55076,3},{6807,55086,3},{6803,55086,3},{6803,55099,3}, {6805,55106,3},{6802,55119,3},{6805,55136,3},{6802,55149,3},{6803,55161,3}, {6807,55166,3},{6805,55176,3},{6807,55181,3},{6812,55181,3},{6817,55194,3}, {6812,55203,3},{6808,55198,3},{6803,55199,3},{6800,55199,3},{6800,55206,3}, {6797,55211,3},{6795,55223,3},{6792,55226,3},{6793,55239,3},{6782,55256,3}, {6778,55289,3},{6773,55303,3},{6772,55304,3},{6773,55311,3},{6768,55313,3}, {6770,55316,3},{6773,55314,3},{6777,55321,3},{6775,55331,3},{6777,55338,3}, {6778,55338,3},{6778,55343,3},{6775,55344,3},{6775,55351,3},{6770,55354,3}, {6773,55361,3},{6768,55369,3},{6768,55381,3},{6770,55388,3},{6770,55396,3}, {6772,55391,3},{6773,55391,3},{6772,55398,3},{6773,55403,3},{6772,55411,3}, {6777,55413,3},{6775,55418,3},{6778,55426,3},{6778,55428,3},{6773,55426,3}, {6775,55446,3},{6777,55446,3},{6782,55444,3},{6782,55449,3},{6778,55453,3}, {6782,55458,3},{6782,55464,3},{6785,55466,3},{6783,55473,3},{6783,55478,3}, {6780,55478,3},{6785,55496,3},{6785,55518,3},{6782,55528,3},{6782,55544,3}, {6780,55554,3},{6782,55558,3},{6782,55568,3},{6778,55573,3},{6780,55578,3}, {6780,55586,3},{6777,55588,3},{6780,55591,3},{6777,55598,3},{6777,55606,3}, {6770,55614,3},{6773,55624,3},{6772,55638,3},{6770,55643,3},{6775,55646,3}, {6775,55663,3},{6780,55666,3},{6778,55676,3},{6780,55701,3},{6787,55691,3}, {6787,55683,3},{6795,55664,3},{6807,55663,3},{6807,55673,3},{6810,55678,3}, {6790,55713,3},{6775,55728,3},{6775,55738,3},{6770,55743,3},{6768,55756,3}, {6765,55763,3},{6763,55771,3},{6760,55779,3},{6762,55796,3},{6767,55808,3}, {6762,55816,3},{6767,55818,3},{6767,55829,3},{6772,55821,3},{6772,55814,3}, {6778,55824,3},{6793,55813,3},{6788,55808,3},{6787,55799,3},{6788,55794,3}, {6793,55789,3},{6802,55768,3},{6797,55764,3},{6798,55759,3},{6797,55751,3}, {6795,55744,3},{6792,55741,3},{6795,55734,3},{6792,55731,3},{6783,55729,3}, {6787,55718,3},{6792,55714,3},{6800,55696,3},{6807,55691,3},{6813,55678,3}, {6815,55678,3},{6813,55683,3},{6818,55689,3},{6813,55693,3},{6810,55693,3}, {6808,55696,3},{6810,55703,3},{6817,55704,3},{6818,55698,3},{6820,55686,3}, {6823,55681,3},{6823,55688,3},{6825,55688,3},{6830,55676,3},{6837,55664,3}, {6837,55676,3},{6833,55684,3},{6837,55683,3},{6835,55688,3},{6837,55689,3}, {6840,55683,3},{6842,55683,3},{6837,55694,3},{6837,55699,3},{6830,55716,3}, {6833,55721,3},{6832,55729,3},{6837,55726,3},{6833,55744,3},{6838,55746,3}, {6837,55759,3},{6837,55761,3},{6840,55758,3},{6842,55746,3},{6845,55746,3}, {6850,55734,3},{6853,55736,3},{6853,55746,3},{6855,55751,3},{6852,55766,3}, {6845,55773,3},{6842,55783,3},{6842,55786,3},{6845,55784,3},{6845,55774,3}, {6850,55779,3},{6850,55798,3},{6847,55808,3},{6843,55814,3},{6838,55826,3}, {6838,55819,3},{6837,55819,3},{6835,55836,3},{6828,55836,3},{6830,55831,3}, {6828,55828,3},{6827,55828,3},{6827,55834,3},{6823,55844,3},{6827,55856,3}, {6828,55856,3},{6828,55869,3},{6827,55869,3},{6825,55874,3},{6822,55866,3}, {6818,55873,3},{6825,55874,3},{6832,55894,3},{6827,55889,3},{6820,55884,3}, {6813,55873,3},{6812,55874,3},{6810,55868,3},{6808,55868,3},{6807,55856,3}, {6803,55854,3},{6802,55859,3},{6802,55868,3},{6805,55871,3},{6807,55874,3}, {6803,55883,3},{6803,55891,3},{6808,55888,3},{6808,55881,3},{6815,55889,3}, {6820,55906,3},{6825,55936,3},{6830,55946,3},{6815,55928,3},{6810,55934,3}, {6782,55914,3},{6773,55918,3},{6770,55914,3},{6768,55916,3},{6770,55919,3}, {6762,55918,3},{6763,55909,3},{6770,55904,3},{6760,55903,3},{6757,55898,3}, {6755,55889,3},{6753,55893,3},{6747,55889,3},{6750,55894,3},{6747,55899,3}, {6745,55898,3},{6743,55903,3},{6745,55906,3},{6742,55916,3},{6743,55919,3}, {6747,55926,3},{6743,55929,3},{6733,55919,3},{6732,55913,3},{6725,55911,3}, {6725,55921,3},{6725,55923,3},{6722,55924,3},{6725,55934,3},{6728,55943,3}, {6728,55946,3},{6738,55963,3},{6733,55968,3},{6733,55973,3},{6738,55976,3}, {6735,55984,3},{6730,55979,3},{6717,55953,3},{6718,55961,3},{6723,55971,3}, {6720,55971,3},{6722,55981,3},{6720,55988,3},{6713,55989,3},{6715,55993,3}, {6720,55993,3},{6715,55998,3},{6712,55999,3},{6707,55994,3},{6703,56003,3}, {6697,56001,3},{6693,55983,3},{6695,55973,3},{6698,55976,3},{6698,55974,3}, {6695,55953,3},{6695,55943,3},{6700,55941,3},{6702,55936,3},{6707,55941,3}, {6702,55931,3},{6697,55934,3},{6695,55924,3},{6697,55921,3},{6698,55924,3}, {6698,55923,3},{6698,55918,3},{6700,55908,3},{6705,55909,3},{6707,55906,3}, {6707,55899,3},{6708,55898,3},{6707,55891,3},{6703,55894,3},{6700,55896,3}, {6697,55908,3},{6692,55913,3},{6690,55921,3},{6683,55926,3},{6675,55951,3}, {6665,55958,3},{6658,55954,3},{6665,55964,3},{6668,55973,3},{6673,55971,3}, {6673,55968,3},{6670,55969,3},{6667,55964,3},{6668,55959,3},{6673,55958,3}, {6682,55946,3},{6685,55936,3},{6690,55928,3},{6693,55928,3},{6695,55934,3}, {6692,55948,3},{6693,55953,3},{6693,55959,3},{6690,55964,3},{6692,55976,3}, {6690,55984,3},{6693,55993,3},{6693,55994,3},{6688,56004,3},{6693,56011,3}, {6697,56014,3},{6698,56013,3},{6700,56006,3},{6703,56008,3},{6707,56001,3}, {6710,56004,3},{6715,56001,3},{6722,56009,3},{6727,56011,3},{6727,56018,3}, {6728,56019,3},{6735,56003,3},{6743,55998,3},{6745,55994,3},{6750,56003,3}, {6753,56004,3},{6763,55989,3},{6765,55981,3},{6768,55978,3},{6770,55966,3}, {6773,55964,3},{6778,55973,3},{6778,55978,3},{6782,55983,3},{6787,55983,3}, {6790,55978,3},{6802,55994,3},{6805,55993,3},{6807,55989,3},{6807,56001,3}, {6807,56008,3},{6808,56011,3},{6808,56014,3},{6805,56013,3},{6803,56009,3}, {6807,56018,3},{6808,56026,3},{6805,56034,3},{6803,56049,3},{6807,56064,3}, {6810,56066,3},{6815,56078,3},{6827,56116,3},{6837,56114,3},{6842,56124,3}, {6847,56139,3},{6852,56169,3},{6855,56176,3},{6855,56181,3},{6860,56183,3}, {6863,56199,3},{6862,56179,3},{6863,56171,3},{6862,56161,3},{6872,56169,3}, {6875,56166,3},{6877,56173,3},{6880,56173,3},{6885,56179,3},{6890,56171,3}, {6897,56171,3},{6897,56163,3},{6897,56149,3},{6900,56153,3},{6900,56146,3}, {6907,56156,3},{6903,56143,3},{6903,56146,3},{6900,56141,3},{6897,56143,3}, {6890,56129,3},{6887,56129,3},{6887,56133,3},{6885,56128,3},{6883,56133,3}, {6885,56138,3},{6888,56143,3},{6885,56143,3},{6888,56154,3},{6877,56128,3}, {6875,56114,3},{6875,56111,3},{6872,56094,3},{6873,56089,3},{6872,56084,3}, {6875,56079,3},{6875,56073,3},{6888,56081,3},{6890,56078,3},{6892,56079,3}, {6897,56076,3},{6897,56083,3},{6897,56088,3},{6893,56089,3},{6897,56096,3}, {6902,56101,3},{6903,56106,3},{6903,56114,3},{6905,56121,3},{6908,56118,3}, {6910,56119,3},{6915,56136,3},{6912,56113,3},{6915,56103,3},{6925,56106,3}, {6927,56109,3},{6930,56104,3},{6932,56108,3},{6937,56134,3},{6935,56146,3}, {6935,56148,3},{6935,56156,3},{6940,56161,3},{6945,56179,3},{6943,56183,3}, {6932,56161,3},{6932,56156,3},{6925,56148,3},{6927,56154,3},{6922,56148,3}, {6922,56149,3},{6922,56154,3},{6918,56151,3},{6917,56153,3},{6925,56173,3}, {6928,56176,3},{6932,56189,3},{6935,56193,3},{6938,56199,3},{6935,56186,3}, {6937,56183,3},{6937,56178,3},{6948,56193,3},{6953,56178,3},{6952,56164,3}, {6948,56158,3},{6948,56154,3},{6948,56151,3},{6943,56146,3},{6943,56121,3}, {6945,56106,3},{6948,56099,3},{6955,56086,3},{6965,56079,3},{6963,56073,3}, {6968,56073,3},{6967,56061,3},{6962,56063,3},{6957,56053,3},{6958,56041,3}, {6960,56039,3},{6960,56036,3},{6962,56034,3},{6962,56026,3},{6962,56021,3}, {6968,56001,3},{6968,55996,3},{6973,55978,3},{6978,55971,3},{6978,55963,3}, {6973,55958,3},{6977,55953,3},{6978,55954,3},{6978,55958,3},{6980,55956,3}, {6980,55951,3},{6977,55949,3},{6980,55943,3},{6978,55939,3},{6980,55936,3}, {6983,55929,3},{6987,55916,3},{6988,55921,3},{6987,55924,3},{6987,55928,3}, {6990,55924,3},{6992,55928,3},{6992,55924,3},{6995,55926,3},{6997,55918,3}, {6997,55911,3},{7013,55883,3},{7023,55879,3},{7032,55881,3},{7042,55893,3}, {7042,55903,3},{7048,55904,3},{7057,55911,3},{7053,55918,3},{7053,55921,3}, {7057,55923,3},{7058,55929,3},{7055,55944,3},{7053,55956,3},{7053,55958,3}, {7055,55956,3},{7058,55938,3},{7062,55929,3},{7065,55931,3},{7072,55954,3}, {7070,55946,3},{7065,55924,3},{7062,55919,3},{7068,55898,3},{7072,55894,3}, {7073,55893,3},{7080,55874,3},{7095,55884,3},{7103,55886,3},{7105,55894,3}, {7108,55899,3},{7112,55894,3},{7108,55894,3},{7108,55888,3},{7113,55879,3}, {7117,55891,3},{7115,55898,3},{7120,55889,3},{7125,55893,3},{7128,55886,3}, {7130,55893,3},{7130,55906,3},{7138,55916,3},{7142,55931,3},{7138,55946,3}, {7135,55949,3},{7128,55969,3},{7128,55983,3},{7132,55984,3},{7135,55978,3}, {7135,55988,3},{7137,55993,3},{7143,55981,3},{7152,55998,3},{7148,55986,3}, {7152,55954,3},{7155,55941,3},{7158,55948,3},{7162,55946,3},{7163,55964,3}, {7167,55969,3},{7167,55974,3},{7172,55986,3},{7172,56009,3},{7177,56008,3}, {7183,56013,3},{7185,56048,3},{7183,56064,3},{7187,56074,3},{7183,56061,3}, {7185,56049,3},{7183,56016,3},{7187,56011,3},{7195,56014,3},{7198,56041,3}, {7200,56079,3},{7198,56088,3},{7195,56088,3},{7195,56096,3},{7192,56098,3}, {7190,56086,3},{7188,56091,3},{7185,56089,3},{7185,56079,3},{7182,56071,3}, {7178,56076,3},{7175,56074,3},{7175,56083,3},{7182,56088,3},{7178,56091,3}, {7182,56096,3},{7180,56101,3},{7175,56096,3},{7167,56094,3},{7178,56116,3}, {7175,56121,3},{7178,56133,3},{7175,56139,3},{7175,56148,3},{7178,56156,3}, {7177,56163,3},{7175,56166,3},{7172,56166,3},{7165,56154,3},{7157,56174,3}, {7153,56194,3},{7150,56199,3},{7147,56213,3},{7137,56221,3},{7137,56231,3}, {7133,56239,3},{7132,56236,3},{7128,56243,3},{7122,56243,3},{7115,56251,3}, {7107,56248,3},{7103,56251,3},{7090,56246,3},{7085,56251,3},{7083,56241,3}, {7085,56239,3},{7088,56233,3},{7087,56233,3},{7082,56241,3},{7080,56254,3}, {7077,56268,3},{7075,56268,3},{7073,56271,3},{7072,56264,3},{7072,56273,3}, {7067,56268,3},{7067,56293,3},{7063,56303,3},{7062,56306,3},{7058,56303,3}, {7057,56306,3},{7062,56311,3},{7058,56319,3},{7057,56319,3},{7057,56311,3}, {7055,56309,3},{7050,56318,3},{7048,56308,3},{7047,56321,3},{7047,56324,3}, {7043,56323,3},{7043,56329,3},{7040,56333,3},{7038,56336,3},{7032,56336,3}, {7030,56328,3},{7030,56336,3},{7028,56336,3},{7025,56341,3},{7030,56344,3}, {7030,56349,3},{7035,56346,3},{7037,56351,3},{7033,56358,3},{7037,56363,3}, {7035,56366,3},{7032,56368,3},{7030,56363,3},{7020,56366,3},{7023,56373,3}, {7017,56384,3},{7015,56384,3},{7013,56376,3},{7013,56354,3},{7012,56341,3}, {7013,56333,3},{7017,56323,3},{7018,56313,3},{7025,56308,3},{7023,56306,3}, {7023,56299,3},{7022,56309,3},{7018,56308,3},{7017,56288,3},{7017,56294,3}, {7015,56298,3},{7013,56293,3},{7008,56288,3},{7008,56278,3},{7007,56284,3}, {7005,56288,3},{7008,56293,3},{7008,56309,3},{7008,56328,3},{7005,56336,3}, {7002,56343,3},{6998,56333,3},{6998,56329,3},{6990,56314,3},{6990,56309,3}, {6988,56311,3},{6983,56293,3},{6982,56289,3},{6980,56281,3},{6977,56279,3}, {6977,56274,3},{6978,56271,3},{6977,56271,3},{6970,56249,3},{6970,56283,3}, {6970,56269,3},{6967,56263,3},{6968,56251,3},{6968,56244,3},{6967,56244,3}, {6965,56269,3},{6967,56273,3},{6970,56286,3},{6968,56296,3},{6970,56299,3}, {6970,56303,3},{6967,56299,3},{6967,56308,3},{6963,56318,3},{6962,56328,3}, {6963,56306,3},{6955,56324,3},{6953,56336,3},{6948,56356,3},{6952,56356,3}, {6953,56364,3},{6955,56363,3},{6955,56371,3},{6958,56378,3},{6962,56376,3}, {6965,56386,3},{6967,56388,3},{6967,56399,3},{6965,56403,3},{6965,56408,3}, {6963,56411,3},{6965,56416,3},{6965,56419,3},{6963,56419,3},{6963,56426,3}, {6962,56426,3},{6962,56414,3},{6955,56403,3},{6953,56384,3},{6952,56379,3}, {6950,56381,3},{6953,56389,3},{6952,56403,3},{6953,56404,3},{6957,56416,3}, {6952,56426,3},{6953,56436,3},{6952,56439,3},{6953,56448,3},{6948,56448,3}, {6948,56461,3},{6953,56464,3},{6950,56488,3},{6945,56499,3},{6945,56506,3}, {6943,56496,3},{6945,56489,3},{6942,56481,3},{6943,56474,3},{6945,56474,3}, {6945,56466,3},{6942,56473,3},{6942,56478,3},{6938,56466,3},{6940,56463,3}, {6937,56456,3},{6925,56454,3},{6925,56443,3},{6927,56446,3},{6927,56439,3}, {6930,56444,3},{6927,56429,3},{6928,56426,3},{6930,56436,3},{6935,56441,3}, {6930,56428,3},{6928,56416,3},{6935,56391,3},{6923,56426,3},{6922,56434,3}, {6915,56446,3},{6908,56469,3},{6900,56464,3},{6898,56476,3},{6893,56478,3}, {6892,56473,3},{6892,56483,3},{6887,56493,3},{6885,56488,3},{6885,56494,3}, {6883,56493,3},{6883,56483,3},{6880,56476,3},{6882,56493,3},{6880,56489,3}, {6878,56491,3},{6878,56484,3},{6875,56483,3},{6870,56488,3},{6867,56486,3}, {6862,56479,3},{6860,56486,3},{6857,56483,3},{6853,56489,3},{6845,56476,3}, {6842,56481,3},{6837,56504,3},{6833,56488,3},{6835,56501,3},{6833,56504,3}, {6830,56504,3},{6823,56511,3},{6823,56516,3},{6825,56524,3},{6832,56519,3}, {6835,56533,3},{6840,56538,3},{6843,56536,3},{6845,56546,3},{6847,56544,3}, {6848,56549,3},{6853,56553,3},{6853,56556,3},{6855,56544,3},{6860,56541,3}, {6867,56546,3},{6867,56553,3},{6872,56556,3},{6867,56561,3},{6862,56559,3}, {6865,56564,3},{6870,56563,3},{6882,56568,3},{6883,56563,3},{6885,56564,3}, {6895,56561,3},{6902,56566,3},{6912,56588,3},{6918,56596,3},{6922,56598,3}, {6925,56604,3},{6928,56623,3},{6923,56641,3},{6915,56649,3},{6910,56658,3}, {6892,56716,3},{6877,56739,3},{6865,56744,3},{6860,56741,3},{6848,56748,3}, {6847,56753,3},{6843,56753,3},{6840,56758,3},{6833,56758,3},{6825,56751,3}, {6820,56743,3},{6823,56736,3},{6823,56719,3},{6837,56716,3},{6832,56706,3}, {6828,56696,3},{6812,56708,3},{6807,56703,3},{6805,56703,3},{6803,56698,3}, {6780,56709,3},{6773,56719,3},{6768,56719,3},{6765,56724,3},{6762,56739,3}, {6740,56776,3},{6737,56788,3},{6727,56791,3},{6727,56801,3},{6725,56799,3}, {6718,56786,3},{6712,56784,3},{6717,56793,3},{6718,56799,3},{6717,56804,3}, {6710,56806,3},{6712,56808,3},{6722,56813,3},{6722,56818,3},{6723,56819,3}, {6722,56824,3},{6718,56824,3},{6722,56829,3},{6725,56831,3},{6723,56836,3}, {6725,56839,3},{6728,56836,3},{6730,56836,3},{6732,56831,3},{6735,56828,3}, {6735,56834,3},{6732,56839,3},{6735,56839,3},{6740,56849,3},{6742,56856,3}, {6742,56859,3},{6735,56871,3},{6740,56874,3},{6740,56876,3},{6735,56876,3}, {6735,56884,3},{6743,56883,3},{6747,56889,3},{6750,56886,3},{6760,56891,3}, {6768,56884,3},{6783,56899,3},{6795,56923,3},{6802,56923,3},{6802,56926,3}, {6798,56926,3},{6805,56946,3},{6810,56944,3},{6813,56951,3},{6818,56948,3}, {6818,56953,3},{6822,56958,3},{6823,56951,3},{6830,56956,3},{6832,56951,3}, {6833,56958,3},{6840,56964,3},{6843,56961,3},{6845,56969,3},{6847,56961,3}, {6850,56964,3},{6862,56961,3},{6873,56969,3},{6875,56973,3},{6873,56981,3}, {6873,56988,3},{6877,56989,3},{6878,56979,3},{6878,56984,3},{6877,56999,3}, {6873,56998,3},{6872,57013,3},{6872,57014,3},{6875,57009,3},{6875,57013,3}, {6875,57023,3},{6875,57041,3},{6873,57058,3},{6877,57061,3},{6882,57053,3}, {6880,57036,3},{6882,57028,3},{6883,57019,3},{6887,57018,3},{6888,57036,3}, {6890,57029,3},{6893,57036,3},{6893,57024,3},{6895,57023,3},{6895,57039,3}, {6893,57054,3},{6895,57056,3},{6898,57043,3},{6900,57038,3},{6902,57041,3}, {6900,57051,3},{6902,57051,3},{6903,57054,3},{6902,57059,3},{6900,57078,3}, {6902,57083,3},{6903,57063,3},{6908,57059,3},{6907,57048,3},{6908,57041,3}, {6912,57039,3},{6912,57034,3},{6913,57039,3},{6915,57036,3},{6912,57024,3}, {6915,57026,3},{6917,57036,3},{6917,57019,3},{6915,57018,3},{6913,57014,3}, {6915,57006,3},{6917,57006,3},{6918,57016,3},{6920,56998,3},{6922,56998,3}, {6927,56989,3},{6932,56986,3},{6930,56996,3},{6932,57003,3},{6933,56991,3}, {6937,56993,3},{6940,56986,3},{6942,56989,3},{6942,56998,3},{6945,56994,3}, {6943,57003,3},{6947,56996,3},{6947,56993,3},{6943,56988,3},{6945,56983,3}, {6952,56983,3},{6955,56989,3},{6957,56988,3},{6957,56998,3},{6963,56983,3}, {6965,56981,3},{6970,56993,3},{6973,56993,3},{6977,56984,3},{6978,56994,3}, {6978,56998,3},{6975,56996,3},{6978,57003,3},{6982,56999,3},{6983,56978,3}, {6987,56979,3},{6985,56999,3},{6977,57029,3},{6980,57031,3},{6982,57049,3}, {6985,57048,3},{6983,57061,3},{6987,57081,3},{6985,57101,3},{6983,57108,3}, {6982,57123,3},{6978,57126,3},{6975,57139,3},{6970,57163,3},{6968,57201,3}, {6970,57211,3},{6968,57236,3},{6968,57243,3},{6968,57269,3},{6970,57268,3}, {6968,57278,3},{6965,57286,3},{6963,57309,3},{6962,57296,3},{6963,57289,3}, {6965,57278,3},{6963,57274,3},{6962,57276,3},{6962,57271,3},{6958,57281,3}, {6958,57261,3},{6957,57274,3},{6950,57288,3},{6952,57273,3},{6952,57238,3}, {6955,57213,3},{6953,57206,3},{6950,57258,3},{6940,57313,3},{6938,57313,3}, {6938,57306,3},{6940,57298,3},{6930,57321,3},{6928,57321,3},{6928,57311,3}, {6927,57313,3},{6925,57308,3},{6923,57311,3},{6925,57333,3},{6927,57331,3}, {6927,57336,3},{6927,57366,3},{6923,57376,3},{6920,57386,3},{6920,57394,3}, {6920,57399,3},{6918,57403,3},{6908,57409,3},{6907,57389,3},{6900,57379,3}, {6898,57374,3},{6898,57368,3},{6895,57364,3},{6890,57338,3},{6887,57331,3}, {6892,57354,3},{6890,57358,3},{6890,57369,3},{6887,57376,3},{6883,57379,3}, {6887,57388,3},{6888,57394,3},{6887,57398,3},{6877,57413,3},{6875,57409,3}, {6863,57409,3},{6850,57373,3},{6852,57354,3},{6847,57353,3},{6845,57344,3}, {6842,57339,3},{6843,57334,3},{6850,57328,3},{6853,57311,3},{6852,57311,3}, {6848,57318,3},{6845,57314,3},{6848,57291,3},{6853,57281,3},{6852,57274,3}, {6850,57273,3},{6848,57278,3},{6845,57288,3},{6843,57281,3},{6843,57271,3}, {6840,57273,3},{6840,57286,3},{6835,57301,3},{6832,57301,3},{6832,57288,3}, {6830,57288,3},{6827,57298,3},{6828,57309,3},{6823,57309,3},{6817,57301,3}, {6815,57304,3},{6812,57318,3},{6815,57326,3},{6822,57331,3},{6820,57338,3}, {6812,57333,3},{6810,57324,3},{6808,57328,3},{6800,57319,3},{6790,57326,3}, {6785,57339,3},{6782,57343,3},{6780,57356,3},{6778,57353,3},{6777,57353,3}, {6773,57366,3},{6767,57376,3},{6762,57393,3},{6747,57411,3},{6743,57413,3}, {6738,57406,3},{6730,57401,3},{6708,57394,3},{6707,57393,3},{6705,57386,3}, {6700,57386,3},{6698,57383,3},{6700,57374,3},{6700,57371,3},{6697,57364,3}, {6700,57353,3},{6697,57338,3},{6692,57331,3},{6690,57334,3},{6685,57328,3}, {6683,57328,3},{6677,57318,3},{6672,57321,3},{6673,57301,3},{6672,57298,3}, {6670,57298,3},{6667,57289,3},{6665,57288,3},{6662,57281,3},{6657,57276,3}, {6655,57234,3},{6650,57234,3},{6647,57231,3},{6647,57224,3},{6640,57213,3}, {6635,57196,3},{6635,57186,3},{6635,57178,3},{6637,57179,3},{6640,57171,3}, {6643,57173,3},{6643,57176,3},{6638,57181,3},{6640,57183,3},{6648,57171,3}, {6652,57169,3},{6655,57151,3},{6660,57146,3},{6657,57141,3},{6658,57138,3}, {6670,57134,3},{6670,57138,3},{6670,57144,3},{6665,57146,3},{6668,57151,3}, {6672,57141,3},{6677,57141,3},{6677,57144,3},{6682,57148,3},{6688,57144,3}, {6682,57141,3},{6678,57131,3},{6677,57133,3},{6675,57126,3},{6672,57126,3}, {6670,57123,3},{6673,57106,3},{6675,57104,3},{6678,57109,3},{6680,57096,3}, {6682,57093,3},{6683,57113,3},{6687,57098,3},{6690,57094,3},{6692,57098,3}, {6693,57088,3},{6698,57078,3},{6697,57094,3},{6697,57099,3},{6703,57053,3}, {6707,57044,3},{6705,57043,3},{6703,57046,3},{6703,57043,3},{6700,57053,3}, {6698,57049,3},{6700,57058,3},{6698,57073,3},{6697,57031,3},{6692,57014,3}, {6690,57021,3},{6687,57013,3},{6683,57024,3},{6685,57029,3},{6685,57041,3}, {6690,57046,3},{6692,57036,3},{6692,57048,3},{6695,57051,3},{6695,57063,3}, {6693,57063,3},{6693,57074,3},{6692,57074,3},{6690,57079,3},{6690,57061,3}, {6687,57078,3},{6682,57086,3},{6685,57069,3},{6683,57068,3},{6682,57074,3}, {6682,57084,3},{6678,57091,3},{6677,57104,3},{6672,57091,3},{6670,57101,3}, {6668,57104,3},{6670,57111,3},{6668,57121,3},{6665,57121,3},{6658,57114,3}, {6643,57146,3},{6632,57149,3},{6630,57158,3},{6627,57159,3},{6622,57168,3}, {6618,57166,3},{6615,57151,3},{6620,57158,3},{6622,57156,3},{6620,57139,3}, {6622,57138,3},{6627,57123,3},{6630,57121,3},{6632,57116,3},{6630,57104,3}, {6628,57104,3},{6628,57099,3},{6637,57093,3},{6638,57089,3},{6638,57084,3}, {6640,57084,3},{6633,57073,3},{6622,57096,3},{6615,57099,3},{6617,57089,3}, {6620,57081,3},{6622,57073,3},{6620,57063,3},{6627,57049,3},{6625,57038,3}, {6627,57033,3},{6628,57028,3},{6632,57024,3},{6627,57018,3},{6627,57013,3}, {6632,57006,3},{6648,57001,3},{6658,56988,3},{6657,56978,3},{6650,56951,3}, {6652,56948,3},{6650,56923,3},{6652,56914,3},{6652,56908,3},{6655,56903,3}, {6652,56898,3},{6655,56879,3},{6655,56876,3},{6652,56878,3},{6650,56874,3}, {6653,56859,3},{6652,56858,3},{6643,56873,3},{6645,56856,3},{6643,56854,3}, {6632,56873,3},{6628,56903,3},{6618,56944,3},{6615,56946,3},{6610,56934,3}, {6608,56938,3},{6603,56939,3},{6598,56924,3},{6598,56916,3},{6593,56913,3}, {6590,56903,3},{6590,56894,3},{6580,56886,3},{6578,56891,3},{6575,56891,3}, {6567,56881,3},{6567,56873,3},{6565,56868,3},{6555,56853,3},{6553,56838,3}, {6552,56838,3},{6548,56834,3},{6548,56828,3},{6545,56824,3},{6543,56824,3}, {6542,56829,3},{6540,56828,3},{6540,56819,3},{6537,56814,3},{6532,56796,3}, {6533,56766,3},{6532,56749,3},{6535,56731,3},{6540,56714,3},{6550,56703,3}, {6558,56679,3},{6560,56671,3},{6563,56653,3},{6563,56678,3},{6562,56691,3}, {6563,56694,3},{6568,56658,3},{6570,56651,3},{6570,56646,3},{6568,56643,3}, {6568,56638,3},{6573,56624,3},{6578,56619,3},{6582,56604,3},{6583,56603,3}, {6587,56593,3},{6587,56589,3},{6585,56588,3},{6585,56584,3},{6588,56584,3}, {6593,56569,3},{6595,56536,3},{6592,56548,3},{6587,56563,3},{6583,56563,3}, {6582,56559,3},{6588,56529,3},{6587,56509,3},{6587,56494,3},{6588,56493,3}, {6590,56496,3},{6590,56513,3},{6592,56513,3},{6590,56479,3},{6592,56448,3}, {6595,56424,3},{6595,56418,3},{6597,56404,3},{6595,56386,3},{6588,56403,3}, {6588,56409,3},{6580,56434,3},{6582,56436,3},{6590,56424,3},{6592,56428,3}, {6588,56463,3},{6588,56481,3},{6578,56539,3},{6572,56561,3},{6563,56578,3}, {6560,56589,3},{6550,56596,3},{6543,56619,3},{6533,56631,3},{6530,56663,3}, {6532,56671,3},{6530,56679,3},{6527,56699,3},{6528,56724,3},{6527,56729,3}, {6528,56741,3},{6527,56759,3},{6527,56763,3},{6528,56763,3},{6528,56776,3}, {6527,56779,3},{6527,56801,3},{6523,56833,3},{6520,56831,3},{6515,56843,3}, {6510,56836,3},{6505,56839,3},{6500,56824,3},{6497,56828,3},{6488,56813,3}, {6480,56806,3},{6477,56806,3},{6475,56799,3},{6470,56791,3},{6475,56788,3}, {6472,56784,3},{6463,56784,3},{6457,56778,3},{6452,56766,3},{6452,56756,3}, {6445,56751,3},{6435,56748,3},{6425,56731,3},{6423,56731,3},{6422,56736,3}, {6418,56738,3},{6417,56731,3},{6413,56724,3},{6413,56713,3},{6405,56689,3}, {6405,56681,3},{6402,56681,3},{6400,56668,3},{6398,56669,3},{6397,56663,3}, {6398,56653,3},{6398,56651,3},{6402,56646,3},{6398,56644,3},{6398,56636,3}, {6400,56636,3},{6407,56621,3},{6417,56609,3},{6413,56608,3},{6397,56626,3}, {6397,56633,3},{6395,56633,3},{6395,56621,3},{6397,56623,3},{6397,56618,3}, {6402,56609,3},{6397,56611,3},{6403,56599,3},{6402,56593,3},{6403,56589,3}, {6407,56586,3},{6408,56581,3},{6402,56579,3},{6395,56588,3},{6408,56566,3}, {6403,56564,3},{6410,56554,3},{6413,56554,3},{6415,56563,3},{6423,56561,3}, {6425,56558,3},{6420,56554,3},{6420,56548,3},{6417,56554,3},{6415,56554,3}, {6415,56548,3},{6417,56544,3},{6415,56536,3},{6413,56524,3},{6410,56533,3}, {6412,56534,3},{6412,56538,3},{6410,56544,3},{6408,56541,3},{6405,56541,3}, {6405,56546,3},{6402,56551,3},{6402,56544,3},{6400,56544,3},{6398,56553,3}, {6393,56554,3},{6392,56553,3},{6393,56548,3},{6392,56543,3},{6393,56536,3}, {6393,56541,3},{6397,56541,3},{6398,56534,3},{6398,56533,3},{6397,56534,3}, {6395,56526,3},{6400,56519,3},{6400,56509,3},{6398,56514,3},{6392,56528,3}, {6392,56524,3},{6388,56526,3},{6382,56539,3},{6377,56538,3},{6378,56524,3}, {6375,56531,3},{6372,56526,3},{6370,56526,3},{6370,56523,3},{6365,56519,3}, {6363,56521,3},{6360,56511,3},{6362,56508,3},{6363,56514,3},{6365,56508,3}, {6362,56501,3},{6362,56491,3},{6363,56488,3},{6365,56491,3},{6367,56481,3}, {6367,56488,3},{6370,56474,3},{6368,56473,3},{6365,56466,3},{6365,56474,3}, {6368,56476,3},{6365,56481,3},{6363,56481,3},{6360,56479,3},{6362,56476,3}, {6360,56469,3},{6358,56464,3},{6357,56451,3},{6358,56438,3},{6362,56429,3}, {6362,56428,3},{6363,56421,3},{6363,56413,3},{6365,56406,3},{6367,56398,3}, {6368,56396,3},{6368,56403,3},{6368,56401,3},{6373,56383,3},{6372,56378,3}, {6372,56369,3},{6373,56368,3},{6375,56371,3},{6377,56368,3},{6377,56364,3}, {6373,56361,3},{6375,56344,3},{6378,56338,3},{6380,56348,3},{6382,56339,3}, {6382,56336,3},{6378,56336,3},{6377,56331,3},{6375,56331,3},{6375,56323,3}, {6377,56313,3},{6378,56298,3},{6383,56286,3},{6385,56266,3},{6387,56261,3}, {6388,56259,3},{6390,56244,3},{6393,56239,3},{6393,56228,3},{6398,56214,3}, {6398,56208,3},{6402,56193,3},{6407,56184,3},{6410,56174,3},{6412,56173,3}, {6415,56174,3},{6417,56166,3},{6418,56158,3},{6413,56169,3},{6408,56169,3}, {6402,56181,3},{6400,56176,3},{6400,56181,3},{6398,56178,3},{6398,56159,3}, {6395,56159,3},{6395,56166,3},{6388,56171,3},{6383,56184,3},{6383,56193,3}, {6380,56203,3},{6385,56198,3},{6383,56206,3},{6383,56214,3},{6385,56214,3}, {6387,56203,3},{6393,56191,3},{6393,56194,3},{6397,56191,3},{6397,56194,3}, {6388,56226,3},{6387,56236,3},{6383,56244,3},{6383,56261,3},{6377,56274,3}, {6382,56283,3},{6380,56293,3},{6373,56296,3},{6373,56313,3},{6372,56321,3}, {6370,56326,3},{6368,56316,3},{6365,56316,3},{6365,56319,3},{6362,56309,3}, {6363,56306,3},{6365,56303,3},{6358,56296,3},{6355,56283,3},{6352,56289,3}, {6355,56293,3},{6355,56301,3},{6357,56304,3},{6353,56313,3},{6362,56316,3}, {6362,56324,3},{6365,56329,3},{6363,56333,3},{6368,56339,3},{6372,56353,3}, {6372,56359,3},{6365,56374,3},{6358,56376,3},{6358,56384,3},{6355,56388,3}, {6352,56398,3},{6348,56398,3},{6348,56406,3},{6350,56409,3},{6348,56421,3}, {6345,56429,3},{6347,56434,3},{6340,56458,3},{6340,56448,3},{6342,56441,3}, {6342,56439,3},{6338,56443,3},{6335,56458,3},{6335,56468,3},{6333,56468,3}, {6332,56461,3},{6328,56463,3},{6328,56466,3},{6325,56464,3},{6322,56468,3}, {6318,56466,3},{6318,56463,3},{6315,56469,3},{6312,56468,3},{6308,56471,3}, {6308,56468,3},{6307,56473,3},{6303,56471,3},{6303,56466,3},{6302,56464,3}, {6300,56468,3},{6300,56461,3},{6297,56464,3},{6297,56458,3},{6293,56458,3}, {6293,56429,3},{6292,56419,3},{6285,56414,3},{6283,56404,3},{6282,56394,3}, {6280,56401,3},{6278,56401,3},{6278,56386,3},{6282,56364,3},{6283,56349,3}, {6287,56324,3},{6285,56323,3},{6282,56328,3},{6280,56326,3},{6285,56303,3}, {6282,56291,3},{6278,56291,3},{6272,56303,3},{6268,56314,3},{6268,56308,3}, {6265,56318,3},{6265,56341,3},{6262,56348,3},{6258,56346,3},{6255,56339,3}, {6253,56341,3},{6253,56331,3},{6255,56328,3},{6255,56319,3},{6257,56318,3}, {6258,56321,3},{6260,56319,3},{6260,56309,3},{6257,56311,3},{6257,56303,3}, {6253,56303,3},{6253,56298,3},{6255,56288,3},{6258,56291,3},{6260,56288,3}, {6257,56286,3},{6262,56278,3},{6262,56274,3},{6253,56283,3},{6250,56279,3}, {6250,56286,3},{6248,56286,3},{6248,56283,3},{6245,56283,3},{6247,56274,3}, {6247,56264,3},{6245,56263,3},{6238,56264,3},{6237,56268,3},{6235,56254,3}, {6235,56264,3},{6232,56276,3},{6227,56276,3},{6225,56273,3},{6222,56278,3}, {6218,56279,3},{6215,56288,3},{6217,56279,3},{6215,56276,3},{6222,56274,3}, {6223,56268,3},{6227,56266,3},{6228,56261,3},{6235,56218,3},{6237,56211,3}, {6235,56218,3},{6233,56229,3},{6228,56239,3},{6228,56244,3},{6227,56246,3}, {6225,56253,3},{6222,56259,3},{6218,56258,3},{6218,56249,3},{6220,56246,3}, {6218,56243,3},{6220,56236,3},{6217,56238,3},{6217,56229,3},{6215,56224,3}, {6213,56224,3},{6210,56228,3},{6213,56234,3},{6210,56243,3},{6207,56238,3}, {6208,56229,3},{6203,56228,3},{6205,56221,3},{6202,56223,3},{6198,56219,3}, {6203,56211,3},{6205,56206,3},{6205,56203,3},{6202,56206,3},{6203,56194,3}, {6195,56214,3},{6195,56198,3},{6192,56206,3},{6190,56208,3},{6188,56206,3}, {6193,56184,3},{6195,56174,3},{6188,56188,3},{6188,56176,3},{6185,56174,3}, {6185,56186,3},{6183,56188,3},{6182,56201,3},{6180,56193,3},{6178,56198,3}, {6178,56211,3},{6175,56211,3},{6175,56199,3},{6177,56191,3},{6175,56191,3}, {6172,56194,3},{6172,56204,3},{6168,56191,3},{6168,56184,3},{6163,56171,3}, {6155,56158,3},{6157,56153,3},{6152,56149,3},{6145,56138,3},{6142,56143,3}, {6140,56139,3},{6138,56149,3},{6135,56154,3},{6132,56151,3},{6130,56143,3}, {6132,56124,3},{6127,56134,3},{6122,56136,3},{6122,56134,3},{6120,56134,3}, {6117,56126,3},{6115,56133,3},{6112,56129,3},{6112,56136,3},{6110,56138,3}, {6107,56123,3},{6090,56113,3},{6087,56101,3},{6077,56094,3},{6072,56096,3}, {6063,56086,3},{6055,56084,3},{6052,56078,3},{6053,56069,3},{6053,56063,3}, {6052,56071,3},{6050,56071,3},{6050,56056,3},{6047,56068,3},{6038,56074,3}, {6027,56066,3},{6018,56069,3},{6013,56064,3},{6008,56066,3},{6007,56059,3}, {6002,56061,3},{6002,56056,3},{6000,56056,3},{5998,56058,3},{5995,56054,3}, {5993,56056,3},{5978,56059,3},{5963,56054,3},{5957,56058,3},{5957,56059,3}, {5955,56056,3},{5952,56058,3},{5950,56061,3},{5945,56063,3},{5940,56063,3}, {5937,56064,3},{5933,56063,3},{5935,56068,3},{5935,56071,3},{5930,56059,3}, {5908,56056,3},{5908,56043,3},{5905,56036,3},{5907,56053,3},{5905,56056,3}, {5902,56056,3},{5900,56064,3},{5898,56068,3},{5893,56068,3},{5888,56063,3}, {5883,56061,3},{5888,56071,3},{5887,56078,3},{5883,56084,3},{5880,56088,3}, {5872,56094,3},{5872,56103,3},{5875,56108,3},{5878,56108,3},{5880,56116,3}, {5873,56113,3},{5868,56116,3},{5860,56108,3},{5848,56106,3},{5843,56108,3}, {5840,56103,3},{5832,56103,3},{5822,56099,3},{5840,56113,3},{5858,56111,3}, {5867,56119,3},{5872,56119,3},{5873,56123,3},{5877,56119,3},{5877,56124,3}, {5877,56144,3},{5875,56149,3},{5877,56153,3},{5877,56161,3},{5878,56164,3}, {5877,56179,3},{5877,56186,3},{5875,56189,3},{5872,56189,3},{5870,56196,3}, {5875,56203,3},{5877,56213,3},{5875,56216,3},{5873,56221,3},{5872,56219,3}, {5868,56223,3},{5853,56223,3},{5842,56231,3},{5822,56243,3},{5817,56251,3}, {5815,56249,3},{5805,56256,3},{5800,56256,3},{5787,56261,3},{5783,56258,3}, {5782,56263,3},{5772,56269,3},{5763,56276,3},{5755,56281,3},{5752,56286,3}, {5745,56291,3},{5733,56294,3},{5723,56293,3},{5705,56278,3},{5695,56264,3}, {5690,56248,3},{5693,56268,3},{5703,56289,3},{5707,56311,3},{5705,56314,3}, {5698,56301,3},{5693,56289,3},{5695,56294,3},{5697,56306,3},{5702,56313,3}, {5703,56321,3},{5707,56341,3},{5722,56413,3},{5727,56436,3},{5725,56454,3}, {5723,56464,3},{5723,56476,3},{5718,56486,3},{5720,56491,3},{5718,56498,3}, {5717,56496,3},{5705,56529,3},{5700,56541,3},{5692,56586,3},{5692,56599,3}, {5687,56616,3},{5687,56628,3},{5683,56631,3},{5685,56641,3},{5687,56648,3}, {5683,56649,3},{5683,56653,3},{5683,56654,3},{5680,56653,3},{5675,56664,3}, {5670,56671,3},{5665,56688,3},{5655,56701,3},{5643,56738,3},{5638,56741,3}, {5632,56751,3},{5620,56764,3},{5615,56766,3},{5608,56778,3},{5603,56774,3}, {5600,56774,3},{5605,56781,3},{5603,56788,3},{5602,56788,3},{5600,56791,3}, {5600,56801,3},{5595,56799,3},{5597,56804,3},{5593,56828,3},{5593,56838,3}, {5592,56841,3},{5590,56839,3},{5590,56849,3},{5585,56868,3},{5582,56888,3}, {5573,56908,3},{5570,56928,3},{5570,56941,3},{5563,56954,3},{5563,56964,3}, {5560,56968,3},{5557,56979,3},{5547,56986,3},{5542,56996,3},{5535,57023,3}, {5530,57024,3},{5527,57014,3},{5525,57014,3},{5522,57009,3},{5515,57003,3}, {5510,56996,3},{5507,56998,3},{5498,56994,3},{5502,56999,3},{5513,57004,3}, {5525,57016,3},{5528,57024,3},{5530,57036,3},{5528,57051,3},{5525,57064,3}, {5523,57076,3},{5528,57104,3},{5528,57118,3},{5527,57126,3},{5532,57143,3}, {5528,57153,3},{5525,57164,3},{5522,57163,3},{5525,57168,3},{5523,57171,3}, {5522,57176,3},{5518,57179,3},{5515,57178,3},{5513,57179,3},{5515,57178,3}, {5518,57181,3},{5523,57178,3},{5525,57168,3},{5528,57166,3},{5527,57181,3}, {5523,57188,3},{5522,57201,3},{5522,57213,3},{5520,57218,3},{5523,57233,3}, {5523,57239,3},{5522,57243,3},{5517,57246,3},{5510,57241,3},{5515,57248,3}, {5513,57258,3},{5515,57264,3},{5517,57269,3},{5513,57281,3},{5517,57283,3}, {5515,57291,3},{5512,57294,3},{5508,57296,3},{5507,57304,3},{5510,57303,3}, {5513,57304,3},{5517,57301,3},{5515,57306,3},{5510,57311,3},{5503,57308,3}, {5497,57311,3},{5493,57309,3},{5488,57311,3},{5488,57314,3},{5485,57316,3}, {5437,57293,3},{5422,57293,3},{5415,57299,3},{5412,57298,3},{5412,57304,3}, {5407,57311,3},{5382,57323,3},{5375,57323,3},{5360,57314,3},{5358,57316,3}, {5352,57314,3},{5342,57321,3},{5328,57324,3},{5323,57316,3},{5322,57311,3}, {5307,57306,3},{5298,57308,3},{5297,57306,3},{5295,57309,3},{5293,57311,3}, {5288,57326,3},{5278,57339,3},{5277,57338,3},{5275,57339,3},{5268,57344,3}, {5263,57354,3},{5252,57366,3},{5245,57381,3},{5242,57379,3},{5235,57381,3}, {5230,57388,3},{5232,57381,3},{5230,57373,3},{5227,57363,3},{5225,57363,3}, {5227,57358,3},{5225,57354,3},{5223,57349,3},{5223,57354,3},{5218,57348,3}, {5223,57363,3},{5223,57386,3},{5218,57393,3},{5215,57394,3},{5210,57401,3}, {5208,57409,3},{5203,57421,3},{5205,57426,3},{5203,57429,3},{5200,57438,3}, {5190,57444,3},{5188,57448,3},{5188,57454,3},{5185,57454,3},{5180,57466,3}, {5170,57478,3},{5152,57484,3},{5147,57493,3},{5137,57493,3},{5128,57471,3}, {5118,57461,3},{5115,57451,3},{5108,57446,3},{5107,57439,3},{5103,57434,3}, {5105,57443,3},{5103,57443,3},{5100,57441,3},{5103,57444,3},{5112,57449,3}, {5115,57466,3},{5128,57483,3},{5133,57496,3},{5130,57514,3},{5130,57524,3}, {5127,57528,3},{5125,57536,3},{5118,57548,3},{5112,57563,3},{5105,57568,3}, {5102,57573,3},{5087,57593,3},{5077,57601,3},{5072,57603,3},{5078,57603,3}, {5088,57594,3},{5098,57583,3},{5105,57568,3},{5112,57564,3},{5118,57561,3}, {5130,57568,3},{5140,57566,3},{5142,57574,3},{5145,57578,3},{5147,57581,3}, {5147,57584,3},{5155,57581,3},{5157,57588,3},{5167,57603,3},{5163,57613,3}, {5157,57608,3},{5152,57609,3},{5152,57619,3},{5153,57623,3},{5152,57626,3}, {5147,57634,3},{5128,57643,3},{5123,57639,3},{5118,57646,3},{5117,57651,3}, {5123,57644,3},{5130,57646,3},{5135,57651,3},{5135,57654,3},{5137,57648,3}, {5140,57648,3},{5148,57659,3},{5148,57668,3},{5150,57664,3},{5152,57654,3}, {5160,57654,3},{5160,57658,3},{5162,57653,3},{5165,57648,3},{5167,57641,3}, {5170,57643,3},{5177,57633,3},{5180,57636,3},{5180,57644,3},{5183,57653,3}, {5193,57646,3},{5197,57661,3},{5202,57664,3},{5200,57666,3},{5205,57666,3}, {5205,57673,3},{5208,57671,3},{5208,57674,3},{5212,57678,3},{5215,57679,3}, {5218,57683,3},{5223,57681,3},{5225,57686,3},{5223,57696,3},{5227,57689,3}, {5227,57681,3},{5230,57681,3},{5235,57686,3},{5237,57686,3},{5238,57683,3}, {5242,57684,3},{5243,57681,3},{5247,57686,3},{5248,57683,3},{5248,57679,3}, {5250,57683,3},{5253,57678,3},{5252,57671,3},{5253,57671,3},{5255,57668,3}, {5253,57666,3},{5255,57664,3},{5257,57659,3},{5260,57668,3},{5262,57663,3}, {5262,57664,3},{5265,57664,3},{5265,57658,3},{5270,57661,3},{5270,57654,3}, {5272,57659,3},{5273,57658,3},{5275,57651,3},{5278,57653,3},{5278,57664,3}, {5282,57663,3},{5282,57659,3},{5282,57658,3},{5288,57668,3},{5287,57656,3}, {5288,57649,3},{5292,57646,3},{5293,57649,3},{5297,57649,3},{5297,57656,3}, {5298,57658,3},{5298,57653,3},{5302,57651,3},{5300,57649,3},{5302,57638,3}, {5305,57644,3},{5307,57644,3},{5307,57639,3},{5317,57644,3},{5318,57641,3}, {5320,57646,3},{5322,57643,3},{5322,57648,3},{5325,57646,3},{5325,57644,3}, {5327,57646,3},{5328,57641,3},{5332,57643,3},{5335,57639,3},{5338,57643,3}, {5345,57638,3},{5345,57634,3},{5345,57629,3},{5345,57631,3},{5347,57628,3}, {5350,57624,3},{5353,57633,3},{5353,57634,3},{5352,57631,3},{5348,57634,3}, {5352,57639,3},{5357,57633,3},{5355,57641,3},{5357,57644,3},{5362,57638,3}, {5360,57629,3},{5363,57631,3},{5363,57636,3},{5367,57631,3},{5367,57634,3}, {5368,57634,3},{5372,57621,3},{5372,57631,3},{5373,57633,3},{5375,57629,3}, {5378,57631,3},{5380,57629,3},{5382,57634,3},{5383,57631,3},{5383,57639,3}, {5382,57643,3},{5382,57646,3},{5385,57638,3},{5385,57629,3},{5388,57629,3}, {5392,57626,3},{5392,57636,3},{5393,57633,3},{5395,57623,3},{5395,57633,3}, {5397,57626,3},{5397,57633,3},{5397,57631,3},{5398,57626,3},{5398,57629,3}, {5400,57629,3},{5400,57633,3},{5400,57639,3},{5402,57638,3},{5405,57633,3}, {5403,57628,3},{5407,57626,3},{5408,57623,3},{5408,57608,3},{5408,57619,3}, {5412,57619,3},{5410,57624,3},{5412,57626,3},{5412,57623,3},{5413,57626,3}, {5415,57623,3},{5417,57629,3},{5418,57631,3},{5417,57618,3},{5415,57616,3}, {5417,57611,3},{5418,57613,3},{5420,57601,3},{5420,57598,3},{5422,57603,3}, {5425,57603,3},{5425,57608,3},{5427,57596,3},{5428,57593,3},{5430,57594,3}, {5430,57589,3},{5437,57589,3},{5437,57586,3},{5440,57586,3},{5442,57591,3}, {5442,57586,3},{5445,57588,3},{5450,57584,3},{5450,57581,3},{5452,57584,3}, {5455,57576,3},{5457,57583,3},{5458,57584,3},{5462,57579,3},{5457,57574,3}, {5458,57573,3},{5463,57578,3},{5463,57576,3},{5462,57574,3},{5463,57568,3}, {5465,57571,3},{5467,57569,3},{5467,57568,3},{5465,57568,3},{5465,57559,3}, {5470,57573,3},{5473,57573,3},{5472,57573,3},{5473,57586,3},{5477,57589,3}, {5475,57591,3},{5477,57603,3},{5482,57613,3},{5485,57638,3},{5492,57649,3}, {5492,57659,3},{5498,57679,3},{5500,57683,3},{5503,57703,3},{5515,57723,3}, {5525,57751,3},{5527,57758,3},{5537,57769,3},{5540,57781,3},{5558,57813,3}, {5565,57823,3},{5570,57828,3},{5567,57818,3},{5568,57818,3},{5575,57829,3}, {5585,57839,3},{5593,57853,3},{5598,57856,3},{5600,57864,3},{5603,57868,3}, {5612,57873,3},{5625,57878,3},{5630,57883,3},{5680,57886,3},{5700,57881,3}, {5710,57883,3},{5717,57879,3},{5723,57878,3},{5740,57871,3},{5762,57854,3}, {5767,57856,3},{5787,57834,3},{5795,57829,3},{5797,57824,3},{5802,57821,3}, {5807,57811,3},{5810,57801,3},{5813,57798,3},{5817,57788,3},{5817,57791,3}, {5820,57791,3},{5827,57774,3},{5838,57734,3},{5842,57734,3},{5845,57729,3}, {5845,57723,3},{5850,57716,3},{5852,57709,3},{5862,57698,3},{5862,57693,3}, {5860,57693,3},{5855,57704,3},{5853,57701,3},{5857,57691,3},{5862,57689,3}, {5862,57679,3},{5867,57681,3},{5867,57679,3},{5868,57684,3},{5870,57686,3}, {5870,57689,3},{5877,57681,3},{5878,57683,3},{5878,57686,3},{5882,57688,3}, {5892,57681,3},{5893,57683,3},{5893,57679,3},{5897,57679,3},{5895,57684,3}, {5892,57691,3},{5895,57693,3},{5897,57694,3},{5895,57701,3},{5892,57701,3}, {5893,57706,3},{5895,57704,3},{5897,57708,3},{5900,57711,3},{5898,57704,3}, {5902,57709,3},{5905,57708,3},{5907,57711,3},{5905,57716,3},{5910,57714,3}, {5908,57718,3},{5910,57723,3},{5915,57721,3},{5915,57728,3},{5922,57726,3}, {5923,57736,3},{5927,57741,3},{5928,57753,3},{5930,57753,3},{5932,57748,3}, {5932,57758,3},{5935,57759,3},{5937,57756,3},{5940,57768,3},{5942,57764,3}, {5940,57761,3},{5943,57758,3},{5940,57748,3},{5940,57744,3},{5943,57746,3}, {5945,57751,3},{5947,57748,3},{5950,57749,3},{5953,57764,3},{5962,57764,3}, {5963,57759,3},{5967,57756,3},{5968,57763,3},{5972,57759,3},{5970,57766,3}, {5967,57769,3},{5968,57776,3},{5970,57779,3},{5967,57779,3},{5963,57789,3}, {5958,57791,3},{5957,57804,3},{5960,57793,3},{5967,57791,3},{5968,57783,3}, {5972,57788,3},{5975,57783,3},{5975,57791,3},{5977,57791,3},{5978,57794,3}, {5980,57806,3},{5988,57799,3},{5992,57793,3},{5992,57799,3},{5995,57798,3}, {5997,57806,3},{5998,57804,3},{6000,57813,3},{6002,57806,3},{6005,57818,3}, {6003,57804,3},{6007,57801,3},{6005,57796,3},{6003,57793,3},{6005,57789,3}, {6005,57788,3},{6007,57773,3},{6008,57778,3},{6012,57776,3},{6013,57781,3}, {6013,57796,3},{6015,57786,3},{6020,57781,3},{6022,57789,3},{6025,57784,3}, {6027,57779,3},{6028,57781,3},{6027,57774,3},{6033,57776,3},{6033,57773,3}, {6037,57773,3},{6040,57761,3},{6042,57761,3},{6047,57768,3},{6050,57779,3}, {6055,57781,3},{6055,57794,3},{6057,57781,3},{6055,57769,3},{6060,57758,3}, {6063,57753,3},{6075,57776,3},{6077,57771,3},{6077,57761,3},{6083,57784,3}, {6078,57758,3},{6075,57748,3},{6080,57751,3},{6078,57739,3},{6082,57748,3}, {6083,57746,3},{6078,57716,3},{6085,57719,3},{6088,57726,3},{6092,57726,3}, {6103,57748,3},{6105,57754,3},{6115,57758,3},{6120,57766,3},{6122,57766,3}, {6123,57761,3},{6127,57764,3},{6145,57756,3},{6145,57763,3},{6143,57766,3}, {6147,57768,3},{6147,57779,3},{6148,57781,3},{6152,57769,3},{6157,57774,3}, {6153,57789,3},{6157,57783,3},{6158,57773,3},{6158,57778,3},{6160,57778,3}, {6160,57764,3},{6170,57758,3},{6168,57754,3},{6168,57746,3},{6172,57736,3}, {6178,57736,3},{6187,57728,3},{6195,57728,3},{6203,57721,3},{6227,57719,3}, {6233,57726,3},{6240,57734,3},{6240,57741,3},{6247,57759,3},{6247,57766,3}, {6252,57771,3},{6253,57781,3},{6260,57789,3},{6258,57796,3},{6255,57799,3}, {6255,57818,3},{6252,57823,3},{6253,57826,3},{6252,57831,3},{6253,57841,3}, {6252,57846,3},{6250,57861,3},{6248,57869,3},{6245,57874,3},{6245,57883,3}, {6238,57921,3},{6233,57926,3},{6235,57933,3},{6233,57934,3},{6235,57939,3}, {6233,57944,3},{6232,57954,3},{6228,57973,3},{6227,57976,3},{6223,57966,3}, {6215,57946,3},{6217,57953,3},{6218,57958,3},{6223,57976,3},{6230,57988,3}, {6232,58004,3},{6228,58021,3},{6223,58021,3},{6227,58029,3},{6225,58043,3}, {6223,58049,3},{6220,58051,3},{6217,58059,3},{6215,58059,3},{6210,58076,3}, {6212,58081,3},{6215,58068,3},{6220,58059,3},{6225,58063,3},{6225,58094,3}, {6230,58108,3},{6232,58108,3},{6233,58113,3},{6232,58121,3},{6235,58128,3}, {6235,58136,3},{6245,58149,3},{6248,58168,3},{6247,58171,3},{6238,58179,3}, {6238,58184,3},{6238,58189,3},{6237,58191,3},{6237,58198,3},{6233,58204,3}, {6232,58214,3},{6225,58218,3},{6220,58229,3},{6218,58229,3},{6215,58244,3}, {6213,58246,3},{6212,58241,3},{6212,58244,3},{6212,58251,3},{6212,58258,3}, {6213,58254,3},{6215,58263,3},{6212,58274,3},{6205,58269,3},{6205,58276,3}, {6203,58274,3},{6202,58276,3},{6197,58276,3},{6195,58268,3},{6190,58268,3}, {6183,58256,3},{6183,58263,3},{6188,58269,3},{6185,58269,3},{6180,58274,3}, {6183,58276,3},{6190,58273,3},{6195,58276,3},{6188,58296,3},{6187,58316,3}, {6183,58318,3},{6180,58323,3},{6178,58316,3},{6178,58318,3},{6177,58314,3}, {6173,58314,3},{6175,58323,3},{6173,58328,3},{6168,58338,3},{6162,58333,3}, {6160,58324,3},{6162,58313,3},{6162,58309,3},{6157,58306,3},{6160,58314,3}, {6158,58326,3},{6160,58338,3},{6167,58343,3},{6170,58339,3},{6170,58341,3}, {6167,58369,3},{6160,58379,3},{6160,58378,3},{6157,58381,3},{6153,58351,3}, {6152,58351,3},{6152,58358,3},{6150,58359,3},{6148,58356,3},{6147,58361,3}, {6143,58348,3},{6142,58351,3},{6142,58356,3},{6140,58366,3},{6140,58378,3}, {6137,58366,3},{6137,58354,3},{6135,58356,3},{6135,58354,3},{6135,58364,3}, {6133,58369,3},{6128,58363,3},{6125,58376,3},{6120,58373,3},{6122,58378,3}, {6120,58379,3},{6115,58378,3},{6117,58386,3},{6120,58383,3},{6122,58384,3}, {6122,58391,3},{6118,58391,3},{6115,58396,3},{6112,58399,3},{6115,58399,3}, {6117,58414,3},{6112,58416,3},{6113,58419,3},{6112,58424,3},{6112,58438,3}, {6110,58444,3},{6107,58443,3},{6107,58451,3},{6105,58459,3},{6108,58458,3}, {6107,58464,3},{6105,58471,3},{6102,58468,3},{6103,58474,3},{6102,58478,3}, {6100,58481,3},{6103,58479,3},{6105,58483,3},{6107,58483,3},{6102,58493,3}, {6105,58491,3},{6105,58494,3},{6108,58494,3},{6107,58501,3},{6110,58503,3}, {6108,58509,3},{6107,58511,3},{6108,58521,3},{6107,58521,3},{6107,58526,3}, {6102,58519,3},{6102,58526,3},{6098,58524,3},{6095,58528,3},{6090,58528,3}, {6088,58521,3},{6087,58529,3},{6085,58529,3},{6085,58536,3},{6080,58543,3}, {6085,58551,3},{6083,58544,3},{6085,58543,3},{6092,58561,3},{6088,58563,3}, {6087,58568,3},{6088,58571,3},{6090,58571,3},{6095,58568,3},{6102,58568,3}, {6108,58576,3},{6107,58584,3},{6093,58594,3},{6092,58593,3},{6090,58599,3}, {6087,58598,3},{6080,58598,3},{6073,58578,3},{6070,58571,3},{6068,58564,3}, {6065,58568,3},{6060,58566,3},{6060,58571,3},{6057,58571,3},{6055,58566,3}, {6053,58553,3},{6047,58561,3},{6042,58558,3},{6040,58563,3},{6037,58564,3}, {6032,58559,3},{6028,58566,3},{6023,58571,3},{6023,58576,3},{6020,58574,3}, {6018,58571,3},{6018,58576,3},{6007,58574,3},{6007,58566,3},{6003,58564,3}, {6007,58558,3},{6007,58553,3},{6002,58553,3},{6000,58559,3},{5998,58556,3}, {6002,58541,3},{6000,58514,3},{6003,58503,3},{6000,58504,3},{6000,58481,3}, {6007,58438,3},{6007,58433,3},{5997,58479,3},{5998,58513,3},{5997,58518,3}, {5995,58529,3},{5997,58563,3},{5992,58564,3},{5990,58559,3},{5987,58579,3}, {5983,58576,3},{5978,58574,3},{5977,58581,3},{5968,58571,3},{5970,58576,3}, {5967,58584,3},{5960,58581,3},{5957,58568,3},{5950,58561,3},{5948,58561,3}, {5948,58566,3},{5945,58569,3},{5942,58571,3},{5938,58569,3},{5937,58573,3}, {5937,58571,3},{5935,58561,3},{5932,58561,3},{5930,58563,3},{5930,58571,3}, {5932,58576,3},{5935,58594,3},{5933,58599,3},{5930,58599,3},{5933,58606,3}, {5932,58611,3},{5928,58609,3},{5927,58613,3},{5922,58611,3},{5920,58608,3}, {5923,58603,3},{5925,58601,3},{5922,58599,3},{5918,58599,3},{5920,58594,3}, {5922,58594,3},{5922,58593,3},{5917,58583,3},{5910,58583,3},{5913,58589,3}, {5910,58593,3},{5912,58599,3},{5908,58601,3},{5907,58594,3},{5902,58593,3}, {5907,58588,3},{5907,58586,3},{5890,58591,3},{5887,58589,3},{5888,58584,3}, {5880,58581,3},{5878,58571,3},{5880,58568,3},{5887,58564,3},{5888,58569,3}, {5893,58569,3},{5892,58566,3},{5892,58564,3},{5897,58564,3},{5898,58561,3}, {5897,58558,3},{5905,58549,3},{5898,58549,3},{5895,58546,3},{5895,58553,3}, {5893,58556,3},{5882,58556,3},{5887,58548,3},{5887,58546,3},{5883,58546,3}, {5880,58539,3},{5882,58533,3},{5878,58526,3},{5877,58511,3},{5875,58529,3}, {5873,58533,3},{5877,58544,3},{5870,58544,3},{5870,58548,3},{5872,58551,3}, {5870,58556,3},{5868,58554,3},{5865,58548,3},{5858,58554,3},{5870,58566,3}, {5870,58571,3},{5875,58576,3},{5877,58586,3},{5885,58596,3},{5888,58608,3}, {5890,58611,3},{5888,58616,3},{5890,58621,3},{5890,58638,3},{5888,58636,3}, {5887,58639,3},{5888,58649,3},{5892,58659,3},{5890,58663,3},{5890,58673,3}, {5883,58686,3},{5882,58696,3},{5878,58696,3},{5878,58701,3},{5875,58699,3}, {5870,58698,3},{5867,58703,3},{5860,58701,3},{5858,58703,3},{5860,58708,3}, {5858,58709,3},{5853,58706,3},{5855,58716,3},{5848,58714,3},{5843,58716,3}, {5833,58711,3},{5823,58704,3},{5813,58701,3},{5805,58691,3},{5803,58686,3}, {5802,58666,3},{5797,58649,3},{5797,58639,3},{5792,58634,3},{5790,58623,3}, {5787,58614,3},{5777,58599,3},{5783,58614,3},{5788,58623,3},{5793,58641,3}, {5800,58668,3},{5800,58681,3},{5803,58696,3},{5807,58698,3},{5810,58704,3}, {5820,58706,3},{5825,58713,3},{5830,58713,3},{5842,58719,3},{5848,58719,3}, {5853,58723,3},{5852,58733,3},{5858,58736,3},{5855,58739,3},{5852,58739,3}, {5850,58746,3},{5840,58744,3},{5835,58746,3},{5832,58751,3},{5825,58746,3}, {5813,58726,3},{5807,58723,3},{5813,58736,3},{5820,58739,3},{5823,58749,3}, {5827,58749,3},{5830,58756,3},{5835,58753,3},{5847,58759,3},{5843,58769,3}, {5838,58766,3},{5835,58766,3},{5832,58763,3},{5830,58764,3},{5828,58763,3}, {5828,58768,3},{5825,58771,3},{5817,58766,3},{5807,58769,3},{5797,58763,3}, {5792,58764,3},{5798,58766,3},{5805,58773,3},{5812,58771,3},{5822,58778,3}, {5823,58784,3},{5827,58788,3},{5828,58794,3},{5828,58798,3},{5832,58803,3}, {5833,58809,3},{5833,58814,3},{5838,58819,3},{5835,58828,3},{5838,58831,3}, {5842,58828,3},{5842,58834,3},{5850,58841,3},{5848,58848,3},{5845,58846,3}, {5843,58851,3},{5845,58853,3},{5847,58856,3},{5850,58856,3},{5848,58874,3}, {5853,58869,3},{5855,58874,3},{5860,58874,3},{5863,58878,3},{5867,58876,3}, {5867,58879,3},{5872,58881,3},{5872,58889,3},{5873,58891,3},{5875,58888,3}, {5880,58891,3},{5882,58889,3},{5885,58898,3},{5872,58924,3},{5865,58929,3}, {5867,58934,3},{5865,58936,3},{5863,58936,3},{5862,58943,3},{5850,58934,3}, {5840,58938,3},{5837,58928,3},{5832,58929,3},{5837,58933,3},{5838,58939,3}, {5843,58941,3},{5845,58944,3},{5848,58938,3},{5853,58946,3},{5858,58948,3}, {5857,58953,3},{5862,58949,3},{5865,58943,3},{5868,58941,3},{5868,58933,3}, {5875,58931,3},{5877,58926,3},{5887,58934,3},{5883,58938,3},{5883,58941,3}, {5883,58951,3},{5885,58956,3},{5887,58956,3},{5888,58941,3},{5890,58938,3}, {5895,58951,3},{5902,58948,3},{5893,58968,3},{5897,58968,3},{5900,58956,3}, {5902,58963,3},{5903,58958,3},{5905,58969,3},{5903,58974,3},{5900,58979,3}, {5898,58986,3},{5900,58984,3},{5902,58979,3},{5905,58978,3},{5907,58984,3}, {5903,58991,3},{5903,59004,3},{5907,59001,3},{5907,58993,3},{5910,58981,3}, {5908,58979,3},{5907,58973,3},{5915,58964,3},{5918,58964,3},{5920,58968,3}, {5922,58963,3},{5927,58961,3},{5927,58968,3},{5918,58978,3},{5925,58974,3}, {5923,58979,3},{5927,58981,3},{5925,58984,3},{5925,58986,3},{5930,58979,3}, {5938,58978,3},{5935,58988,3},{5932,58991,3},{5928,59001,3},{5933,58996,3}, {5935,58991,3},{5940,58993,3},{5940,58998,3},{5943,58986,3},{5945,58989,3}, {5945,58988,3},{5948,58979,3},{5947,58993,3},{5948,58999,3},{5947,59018,3}, {5940,59023,3},{5937,59034,3},{5938,59038,3},{5942,59024,3},{5947,59019,3}, {5948,59014,3},{5948,59009,3},{5952,59006,3},{5952,58994,3},{5973,58981,3}, {5977,58989,3},{5980,58988,3},{5978,58993,3},{5982,58994,3},{5980,58999,3}, {5982,58998,3},{5985,59003,3},{5982,59016,3},{5978,59021,3},{5977,59038,3}, {5980,59023,3},{5983,59014,3},{5985,59016,3},{5988,59013,3},{5987,59021,3}, {5988,59023,3},{5992,59014,3},{5992,59021,3},{5995,59023,3},{5993,59029,3}, {5997,59024,3},{5998,59029,3},{6002,59023,3},{6005,59024,3},{6005,59031,3}, {6007,59033,3},{6010,59029,3},{6012,59038,3},{6015,59036,3},{6015,59039,3}, {6018,59041,3},{6020,59048,3},{6025,59041,3},{6027,59046,3},{6030,59051,3}, {6033,59053,3},{6037,59051,3},{6037,59053,3},{6033,59066,3},{6033,59069,3}, {6035,59066,3},{6035,59073,3},{6030,59079,3},{6025,59098,3},{6028,59074,3}, {6027,59064,3},{6023,59059,3},{6027,59073,3},{6027,59081,3},{6023,59089,3}, {6017,59079,3},{6017,59086,3},{6022,59096,3},{6020,59093,3},{6020,59096,3}, {6017,59098,3},{6012,59088,3},{6008,59088,3},{6007,59073,3},{6000,59054,3}, {5998,59054,3},{6005,59076,3},{6007,59091,3},{6013,59098,3},{6012,59099,3}, {6007,59099,3},{6007,59094,3},{6005,59099,3},{6002,59098,3},{6000,59093,3}, {6000,59078,3},{6000,59088,3},{5997,59096,3},{5993,59096,3},{5990,59084,3}, {5992,59099,3},{5995,59099,3},{5998,59103,3},{6000,59114,3},{6002,59104,3}, {6005,59104,3},{6005,59106,3},{6003,59114,3},{6002,59116,3},{6002,59119,3}, {5998,59121,3},{5995,59106,3},{5995,59114,3},{5992,59118,3},{5990,59116,3}, {5987,59109,3},{5988,59119,3},{5992,59121,3},{5990,59123,3},{5983,59119,3}, {5978,59118,3},{5977,59114,3},{5978,59109,3},{5977,59109,3},{5968,59119,3}, {5968,59141,3},{5967,59139,3},{5965,59144,3},{5963,59141,3},{5963,59131,3}, {5952,59124,3},{5955,59133,3},{5963,59136,3},{5960,59143,3},{5962,59148,3}, {5960,59149,3},{5958,59149,3},{5957,59143,3},{5950,59138,3},{5957,59149,3}, {5952,59163,3},{5942,59156,3},{5942,59138,3},{5940,59131,3},{5938,59129,3}, {5938,59153,3},{5937,59156,3},{5938,59159,3},{5938,59161,3},{5935,59161,3}, {5937,59164,3},{5927,59159,3},{5925,59154,3},{5923,59156,3},{5925,59163,3}, {5933,59166,3},{5937,59171,3},{5935,59174,3},{5935,59181,3},{5932,59184,3}, {5927,59183,3},{5923,59178,3},{5922,59173,3},{5922,59176,3},{5923,59184,3}, {5928,59191,3},{5928,59198,3},{5925,59194,3},{5923,59191,3},{5922,59193,3}, {5920,59189,3},{5922,59198,3},{5920,59201,3},{5913,59194,3},{5910,59188,3}, {5910,59183,3},{5907,59178,3},{5905,59159,3},{5908,59143,3},{5907,59138,3}, {5902,59131,3},{5903,59138,3},{5907,59143,3},{5905,59146,3},{5902,59144,3}, {5895,59149,3},{5903,59149,3},{5903,59158,3},{5902,59161,3},{5903,59171,3}, {5903,59183,3},{5907,59189,3},{5907,59194,3},{5910,59199,3},{5908,59206,3}, {5907,59208,3},{5905,59224,3},{5903,59223,3},{5903,59219,3},{5902,59203,3}, {5900,59214,3},{5895,59206,3},{5898,59216,3},{5898,59219,3},{5895,59219,3}, {5893,59213,3},{5893,59219,3},{5888,59213,3},{5885,59204,3},{5885,59218,3}, {5887,59219,3},{5885,59219,3},{5882,59219,3},{5885,59224,3},{5888,59224,3}, {5890,59229,3},{5888,59238,3},{5887,59231,3},{5885,59234,3},{5880,59246,3}, {5875,59244,3},{5870,59233,3},{5870,59239,3},{5872,59246,3},{5870,59249,3}, {5867,59251,3},{5863,59244,3},{5860,59244,3},{5855,59226,3},{5850,59219,3}, {5850,59206,3},{5850,59204,3},{5850,59194,3},{5852,59193,3},{5850,59191,3}, {5847,59184,3},{5848,59194,3},{5847,59203,3},{5845,59201,3},{5840,59194,3}, {5835,59183,3},{5830,59178,3},{5837,59194,3},{5847,59209,3},{5845,59228,3}, {5837,59219,3},{5845,59231,3},{5843,59234,3},{5847,59243,3},{5847,59254,3}, {5850,59258,3},{5845,59259,3},{5848,59261,3},{5850,59274,3},{5848,59281,3}, {5842,59271,3},{5838,59274,3},{5830,59274,3},{5828,59266,3},{5827,59264,3}, {5827,59251,3},{5822,59246,3},{5820,59248,3},{5822,59249,3},{5825,59253,3}, {5825,59268,3},{5827,59271,3},{5825,59276,3},{5822,59278,3},{5822,59274,3}, {5818,59273,3},{5817,59269,3},{5815,59229,3},{5813,59234,3},{5812,59234,3}, {5807,59214,3},{5805,59218,3},{5807,59223,3},{5803,59221,3},{5798,59203,3}, {5800,59223,3},{5802,59226,3},{5807,59228,3},{5808,59239,3},{5813,59243,3}, {5815,59253,3},{5812,59251,3},{5813,59258,3},{5812,59261,3},{5815,59264,3}, {5812,59269,3},{5813,59273,3},{5817,59279,3},{5812,59279,3},{5813,59283,3}, {5817,59283,3},{5818,59289,3},{5817,59291,3},{5810,59283,3},{5805,59284,3}, {5807,59288,3},{5810,59288,3},{5810,59291,3},{5810,59299,3},{5808,59293,3}, {5807,59298,3},{5805,59298,3},{5807,59303,3},{5803,59306,3},{5800,59298,3}, {5800,59283,3},{5797,59278,3},{5795,59271,3},{5793,59269,3},{5797,59284,3}, {5795,59294,3},{5793,59293,3},{5787,59294,3},{5795,59298,3},{5798,59301,3}, {5790,59303,3},{5795,59308,3},{5790,59316,3},{5793,59316,3},{5797,59321,3}, {5797,59323,3},{5795,59328,3},{5790,59329,3},{5783,59323,3},{5780,59324,3}, {5778,59328,3},{5777,59336,3},{5772,59341,3},{5768,59339,3},{5767,59343,3}, {5767,59346,3},{5762,59348,3},{5758,59331,3},{5757,59328,3},{5755,59329,3}, {5753,59323,3},{5753,59309,3},{5745,59303,3},{5750,59283,3},{5750,59281,3}, {5742,59299,3},{5747,59319,3},{5745,59331,3},{5742,59348,3},{5737,59356,3}, {5737,59344,3},{5733,59349,3},{5728,59349,3},{5725,59341,3},{5725,59333,3}, {5723,59334,3},{5722,59346,3},{5717,59351,3},{5720,59359,3},{5715,59358,3}, {5723,59373,3},{5722,59374,3},{5720,59369,3},{5715,59366,3},{5715,59371,3}, {5717,59388,3},{5715,59391,3},{5710,59399,3},{5705,59398,3},{5702,59401,3}, {5700,59399,3},{5698,59401,3},{5695,59401,3},{5698,59398,3},{5697,59393,3}, {5698,59388,3},{5695,59381,3},{5692,59379,3},{5688,59371,3},{5682,59371,3}, {5680,59368,3},{5678,59354,3},{5680,59346,3},{5670,59348,3},{5675,59351,3}, {5675,59359,3},{5673,59366,3},{5672,59366,3},{5670,59363,3},{5670,59354,3}, {5668,59356,3},{5665,59369,3},{5662,59369,3},{5665,59344,3},{5668,59346,3}, {5667,59336,3},{5668,59329,3},{5672,59316,3},{5677,59288,3},{5678,59286,3}, {5683,59308,3},{5682,59323,3},{5682,59329,3},{5683,59331,3},{5685,59306,3}, {5683,59293,3},{5685,59286,3},{5683,59281,3},{5680,59278,3},{5677,59284,3}, {5677,59286,3},{5675,59296,3},{5670,59303,3},{5667,59321,3},{5663,59331,3}, {5662,59344,3},{5662,59343,3},{5662,59313,3},{5662,59314,3},{5660,59333,3}, {5658,59336,3},{5658,59349,3},{5657,59358,3},{5657,59364,3},{5653,59371,3}, {5652,59371,3},{5650,59368,3},{5650,59343,3},{5650,59329,3},{5648,59328,3}, {5648,59341,3},{5647,59341,3},{5645,59336,3},{5645,59323,3},{5642,59329,3}, {5642,59339,3},{5643,59343,3},{5642,59346,3},{5640,59358,3},{5638,59351,3}, {5637,59358,3},{5633,59359,3},{5633,59364,3},{5633,59363,3},{5632,59364,3}, {5632,59371,3},{5628,59378,3},{5630,59359,3},{5630,59354,3},{5630,59356,3}, {5627,59369,3},{5625,59358,3},{5627,59353,3},{5627,59359,3},{5628,59361,3}, {5630,59348,3},{5628,59341,3},{5630,59334,3},{5628,59328,3},{5625,59336,3}, {5623,59334,3},{5622,59344,3},{5623,59349,3},{5622,59353,3},{5622,59359,3}, {5620,59359,3},{5622,59371,3},{5622,59379,3},{5620,59379,3},{5622,59401,3}, {5618,59403,3},{5617,59398,3},{5612,59394,3},{5615,59401,3},{5613,59401,3}, {5610,59403,3},{5608,59396,3},{5605,59391,3},{5603,59394,3},{5607,59404,3}, {5605,59413,3},{5603,59404,3},{5602,59409,3},{5602,59388,3},{5600,59386,3}, {5600,59398,3},{5598,59398,3},{5597,59396,3},{5600,59394,3},{5600,59389,3}, {5597,59396,3},{5597,59424,3},{5593,59429,3},{5590,59428,3},{5588,59416,3}, {5587,59416,3},{5585,59426,3},{5587,59443,3},{5585,59463,3},{5580,59463,3}, {5577,59459,3},{5575,59456,3},{5577,59454,3},{5575,59448,3},{5575,59439,3}, {5573,59441,3},{5573,59449,3},{5573,59461,3},{5582,59471,3},{5582,59476,3}, {5578,59474,3},{5570,59476,3},{5567,59471,3},{5563,59473,3},{5557,59468,3}, {5563,59476,3},{5580,59486,3},{5580,59491,3},{5577,59493,3},{5578,59496,3}, {5577,59499,3},{5578,59501,3},{5578,59503,3},{5575,59503,3},{5572,59498,3}, {5568,59499,3},{5567,59488,3},{5560,59483,3},{5563,59489,3},{5560,59498,3}, {5550,59491,3},{5558,59503,3},{5557,59504,3},{5553,59503,3},{5552,59506,3}, {5552,59504,3},{5552,59503,3},{5545,59494,3},{5545,59491,3},{5540,59493,3}, {5535,59488,3},{5538,59494,3},{5543,59494,3},{5548,59504,3},{5548,59506,3}, {5543,59499,3},{5545,59504,3},{5543,59504,3},{5543,59508,3},{5548,59508,3}, {5550,59509,3},{5548,59516,3},{5543,59514,3},{5543,59516,3},{5540,59501,3}, {5532,59494,3},{5528,59496,3},{5528,59493,3},{5528,59489,3},{5520,59483,3}, {5517,59474,3},{5518,59481,3},{5523,59488,3},{5522,59493,3},{5523,59494,3}, {5527,59499,3},{5525,59501,3},{5518,59489,3},{5512,59484,3},{5505,59469,3}, {5503,59469,3},{5500,59468,3},{5503,59474,3},{5507,59478,3},{5510,59488,3}, {5515,59491,3},{5517,59496,3},{5515,59496,3},{5517,59499,3},{5523,59509,3}, {5525,59516,3},{5528,59519,3},{5528,59523,3},{5520,59516,3},{5523,59523,3}, {5527,59531,3},{5527,59534,3},{5510,59518,3},{5510,59514,3},{5510,59513,3}, {5505,59508,3},{5502,59506,3},{5513,59526,3},{5523,59534,3},{5523,59544,3}, {5527,59544,3},{5533,59558,3},{5528,59561,3},{5527,59564,3},{5522,59561,3}, {5520,59563,3},{5520,59559,3},{5515,59549,3},{5517,59539,3},{5512,59539,3}, {5513,59544,3},{5513,59549,3},{5512,59549,3},{5510,59556,3},{5513,59559,3}, {5515,59563,3},{5513,59573,3},{5517,59583,3},{5520,59583,3},{5522,59586,3}, {5518,59588,3},{5513,59586,3},{5513,59593,3},{5510,59588,3},{5505,59584,3}, {5505,59579,3},{5500,59573,3},{5500,59568,3},{5498,59568,3},{5497,59563,3}, {5495,59564,3},{5488,59553,3},{5485,59549,3},{5485,59554,3},{5482,59553,3}, {5478,59548,3},{5475,59541,3},{5475,59543,3},{5475,59548,3},{5478,59558,3}, {5483,59556,3},{5490,59561,3},{5495,59576,3},{5507,59593,3},{5503,59596,3}, {5518,59608,3},{5522,59614,3},{5517,59614,3},{5518,59618,3},{5523,59619,3}, {5520,59623,3},{5515,59623,3},{5510,59611,3},{5505,59608,3},{5500,59599,3}, {5497,59598,3},{5502,59603,3},{5502,59606,3},{5503,59611,3},{5508,59613,3}, {5510,59618,3},{5507,59621,3},{5512,59623,3},{5512,59626,3},{5508,59624,3}, {5508,59628,3},{5515,59629,3},{5515,59633,3},{5515,59634,3},{5512,59636,3}, {5513,59639,3},{5510,59641,3},{5500,59631,3},{5502,59638,3},{5500,59639,3}, {5495,59646,3},{5490,59634,3},{5490,59643,3},{5492,59643,3},{5492,59646,3}, {5492,59648,3},{5490,59648,3},{5485,59644,3},{5485,59646,3},{5483,59653,3}, {5485,59654,3},{5485,59659,3},{5480,59661,3},{5485,59663,3},{5485,59668,3}, {5482,59668,3},{5480,59676,3},{5480,59684,3},{5477,59679,3},{5478,59686,3}, {5477,59693,3},{5473,59694,3},{5475,59698,3},{5478,59698,3},{5480,59711,3}, {5480,59718,3},{5477,59716,3},{5475,59719,3},{5473,59734,3},{5472,59736,3}, {5473,59741,3},{5473,59751,3},{5470,59756,3},{5468,59758,3},{5468,59763,3}, {5465,59764,3},{5463,59766,3},{5463,59778,3},{5467,59783,3},{5465,59791,3}, {5463,59793,3},{5462,59794,3},{5458,59794,3},{5458,59801,3},{5457,59801,3}, {5455,59793,3},{5455,59798,3},{5450,59798,3},{5448,59794,3},{5447,59766,3}, {5447,59789,3},{5445,59794,3},{5445,59791,3},{5447,59789,3},{5445,59783,3}, {5442,59784,3},{5438,59774,3},{5437,59753,3},{5438,59749,3},{5438,59743,3}, {5437,59721,3},{5435,59718,3},{5433,59718,3},{5432,59709,3},{5433,59726,3}, {5428,59711,3},{5425,59713,3},{5423,59691,3},{5415,59666,3},{5413,59644,3}, {5405,59598,3},{5407,59584,3},{5405,59579,3},{5403,59578,3},{5402,59584,3}, {5400,59584,3},{5402,59593,3},{5402,59604,3},{5407,59634,3},{5410,59654,3}, {5413,59661,3},{5412,59668,3},{5418,59679,3},{5420,59689,3},{5423,59694,3}, {5423,59699,3},{5415,59691,3},{5412,59683,3},{5410,59683,3},{5403,59673,3}, {5403,59633,3},{5402,59644,3},{5397,59638,3},{5393,59616,3},{5383,59589,3}, {5382,59576,3},{5383,59568,3},{5385,59556,3},{5383,59548,3},{5382,59549,3}, {5380,59556,3},{5378,59554,3},{5378,59544,3},{5377,59531,3},{5378,59523,3}, {5370,59534,3},{5370,59529,3},{5368,59526,3},{5362,59524,3},{5357,59529,3}, {5353,59523,3},{5355,59521,3},{5357,59516,3},{5363,59501,3},{5367,59498,3}, {5370,59484,3},{5373,59468,3},{5377,59456,3},{5383,59449,3},{5380,59451,3}, {5375,59448,3},{5373,59443,3},{5372,59444,3},{5372,59454,3},{5372,59461,3}, {5368,59483,3},{5355,59509,3},{5355,59518,3},{5350,59526,3},{5350,59531,3}, {5343,59533,3},{5347,59528,3},{5343,59518,3},{5338,59506,3},{5338,59503,3}, {5335,59499,3},{5337,59496,3},{5335,59494,3},{5333,59498,3},{5335,59518,3}, {5332,59516,3},{5327,59494,3},{5327,59511,3},{5332,59519,3},{5327,59524,3}, {5330,59528,3},{5332,59523,3},{5333,59521,3},{5335,59533,3},{5347,59546,3}, {5345,59549,3},{5348,59549,3},{5347,59554,3},{5348,59558,3},{5352,59546,3}, {5353,59548,3},{5352,59561,3},{5353,59578,3},{5358,59589,3},{5362,59598,3}, {5365,59599,3},{5365,59603,3},{5368,59606,3},{5367,59608,3},{5368,59614,3}, {5367,59619,3},{5368,59628,3},{5372,59629,3},{5372,59634,3},{5375,59634,3}, {5375,59631,3},{5380,59629,3},{5388,59648,3},{5395,59653,3},{5397,59666,3}, {5398,59676,3},{5402,59681,3},{5403,59694,3},{5405,59704,3},{5407,59714,3}, {5410,59723,3},{5407,59741,3},{5407,59758,3},{5410,59751,3},{5410,59739,3}, {5413,59733,3},{5413,59719,3},{5408,59704,3},{5413,59694,3},{5420,59701,3}, {5420,59713,3},{5423,59713,3},{5423,59718,3},{5423,59733,3},{5420,59744,3}, {5422,59748,3},{5420,59751,3},{5422,59758,3},{5418,59758,3},{5420,59771,3}, {5418,59776,3},{5417,59774,3},{5418,59779,3},{5417,59783,3},{5420,59789,3}, {5418,59793,3},{5415,59798,3},{5413,59796,3},{5413,59799,3},{5410,59799,3}, {5400,59806,3},{5397,59813,3},{5393,59821,3},{5393,59814,3},{5388,59814,3}, {5385,59821,3},{5382,59828,3},{5382,59823,3},{5380,59826,3},{5378,59821,3}, {5377,59819,3},{5373,59824,3},{5363,59788,3},{5358,59781,3},{5362,59791,3}, {5360,59791,3},{5358,59804,3},{5355,59801,3},{5353,59806,3},{5350,59806,3}, {5343,59799,3},{5343,59808,3},{5348,59808,3},{5353,59821,3},{5357,59823,3}, {5357,59819,3},{5358,59823,3},{5362,59823,3},{5363,59828,3},{5367,59829,3}, {5372,59834,3},{5373,59839,3},{5372,59848,3},{5373,59853,3},{5372,59856,3}, {5373,59858,3},{5373,59861,3},{5375,59861,3},{5375,59866,3},{5372,59869,3}, {5373,59874,3},{5375,59873,3},{5377,59874,3},{5378,59888,3},{5377,59893,3}, {5373,59893,3},{5373,59894,3},{5372,59893,3},{5370,59881,3},{5367,59876,3}, {5368,59866,3},{5367,59863,3},{5362,59888,3},{5363,59903,3},{5360,59909,3}, {5360,59903,3},{5358,59901,3},{5358,59904,3},{5357,59933,3},{5355,59938,3}, {5350,59936,3},{5352,59929,3},{5353,59931,3},{5353,59929,3},{5357,59911,3}, {5355,59909,3},{5353,59909,3},{5347,59933,3},{5343,59933,3},{5342,59939,3}, {5337,59933,3},{5337,59938,3},{5340,59944,3},{5337,59949,3},{5335,59948,3}, {5333,59956,3},{5332,59953,3},{5330,59944,3},{5328,59954,3},{5327,59954,3}, {5325,59949,3},{5323,59953,3},{5323,59958,3},{5327,59959,3},{5325,59961,3}, {5320,59958,3},{5320,59953,3},{5318,59956,3},{5318,59959,3},{5317,59959,3}, {5313,59961,3},{5310,59953,3},{5312,59941,3},{5308,59948,3},{5303,59944,3}, {5303,59931,3},{5303,59919,3},{5302,59928,3},{5298,59923,3},{5297,59924,3}, {5300,59933,3},{5300,59941,3},{5297,59948,3},{5295,59944,3},{5292,59953,3}, {5290,59953,3},{5288,59956,3},{5283,59956,3},{5282,59948,3},{5282,59946,3}, {5282,59939,3},{5280,59936,3},{5278,59944,3},{5277,59936,3},{5280,59931,3}, {5282,59919,3},{5278,59921,3},{5277,59931,3},{5272,59934,3},{5272,59936,3}, {5268,59939,3},{5268,59958,3},{5265,59963,3},{5263,59958,3},{5262,59961,3}, {5260,59956,3},{5262,59953,3},{5262,59946,3},{5263,59943,3},{5265,59931,3}, {5265,59926,3},{5265,59924,3},{5265,59931,3},{5262,59939,3},{5258,59931,3}, {5257,59938,3},{5255,59936,3},{5257,59928,3},{5253,59914,3},{5258,59903,3}, {5260,59886,3},{5257,59891,3},{5257,59901,3},{5253,59911,3},{5253,59919,3}, {5255,59924,3},{5253,59933,3},{5250,59939,3},{5252,59953,3},{5248,59951,3}, {5250,59961,3},{5247,59963,3},{5245,59959,3},{5243,59971,3},{5240,59969,3}, {5237,59973,3},{5235,59971,3},{5238,59963,3},{5238,59956,3},{5237,59954,3}, {5237,59958,3},{5235,59959,3},{5233,59958,3},{5243,59916,3},{5240,59923,3}, {5237,59939,3},{5235,59941,3},{5232,59954,3},{5230,59951,3},{5230,59958,3}, {5228,59959,3},{5230,59966,3},{5227,59964,3},{5225,59958,3},{5223,59958,3}, {5225,59963,3},{5223,59969,3},{5222,59974,3},{5222,59958,3},{5218,59961,3}, {5218,59968,3},{5213,59964,3},{5210,59968,3},{5208,59966,3},{5208,59956,3}, {5205,59959,3},{5200,59951,3},{5202,59939,3},{5197,59946,3},{5193,59944,3}, {5187,59924,3},{5182,59916,3},{5178,59914,3},{5178,59901,3},{5175,59901,3}, {5173,59896,3},{5175,59893,3},{5168,59888,3},{5165,59878,3},{5165,59868,3}, {5160,59868,3},{5157,59861,3},{5153,59859,3},{5153,59856,3},{5148,59854,3}, {5147,59851,3},{5148,59843,3},{5142,59841,3},{5142,59828,3},{5142,59826,3}, {5142,59821,3},{5142,59819,3},{5142,59814,3},{5150,59811,3},{5148,59798,3}, {5147,59796,3},{5148,59793,3},{5147,59791,3},{5145,59791,3},{5145,59789,3}, {5147,59788,3},{5143,59784,3},{5143,59776,3},{5147,59778,3},{5143,59774,3}, {5143,59768,3},{5148,59768,3},{5147,59761,3},{5140,59759,3},{5142,59756,3}, {5143,59756,3},{5142,59754,3},{5132,59734,3},{5128,59723,3},{5130,59721,3}, {5127,59714,3},{5128,59709,3},{5133,59711,3},{5133,59708,3},{5132,59709,3}, {5130,59708,3},{5128,59706,3},{5127,59706,3},{5130,59694,3},{5130,59688,3}, {5125,59678,3},{5127,59676,3},{5128,59673,3},{5123,59673,3},{5123,59671,3}, {5125,59669,3},{5122,59669,3},{5118,59676,3},{5115,59674,3},{5113,59669,3}, {5110,59663,3},{5108,59658,3},{5107,59654,3},{5108,59653,3},{5105,59651,3}, {5103,59653,3},{5100,59648,3},{5100,59644,3},{5103,59648,3},{5105,59646,3}, {5102,59639,3},{5102,59636,3},{5100,59636,3},{5100,59641,3},{5095,59639,3}, {5093,59641,3},{5090,59639,3},{5088,59643,3},{5087,59638,3},{5083,59641,3}, {5078,59633,3},{5075,59634,3},{5077,59629,3},{5078,59626,3},{5082,59626,3}, {5087,59631,3},{5088,59629,3},{5088,59626,3},{5080,59624,3},{5075,59616,3}, {5073,59616,3},{5073,59614,3},{5075,59613,3},{5075,59609,3},{5072,59609,3}, {5070,59604,3},{5067,59601,3},{5067,59594,3},{5063,59594,3},{5062,59589,3}, {5057,59588,3},{5057,59584,3},{5053,59584,3},{5052,59581,3},{5048,59578,3}, {5047,59564,3},{5043,59561,3},{5043,59554,3},{5037,59548,3},{5037,59551,3}, {5033,59551,3},{5035,59554,3},{5032,59553,3},{5028,59544,3},{5025,59541,3}, {5023,59533,3},{5025,59529,3},{5023,59524,3},{5020,59523,3},{5023,59523,3}, {5023,59519,3},{5025,59521,3},{5028,59521,3},{5028,59518,3},{5023,59511,3}, {5023,59509,3},{5027,59513,3},{5027,59509,3},{5028,59508,3},{5025,59508,3}, {5025,59499,3},{5022,59499,3},{5025,59496,3},{5023,59493,3},{5027,59491,3}, {5020,59478,3},{5022,59474,3},{5025,59474,3},{5022,59469,3},{5023,59469,3}, {5023,59461,3},{5020,59458,3},{5022,59454,3},{5022,59453,3},{5027,59458,3}, {5022,59444,3},{5020,59443,3},{5022,59441,3},{5023,59433,3},{5020,59431,3}, {5022,59426,3},{5018,59424,3},{5020,59421,3},{5018,59419,3},{5020,59416,3}, {5020,59406,3},{5008,59364,3},{5010,59358,3},{5015,59376,3},{5018,59378,3}, {5013,59361,3},{5013,59356,3},{5018,59354,3},{5020,59351,3},{5023,59349,3}, {5023,59314,3},{5027,59308,3},{5027,59306,3},{5028,59304,3},{5027,59298,3}, {5030,59296,3},{5025,59291,3},{5028,59283,3},{5027,59279,3},{5028,59263,3}, {5028,59261,3},{5032,59264,3},{5030,59258,3},{5028,59256,3},{5028,59239,3}, {5032,59236,3},{5028,59229,3},{5030,59221,3},{5028,59218,3},{5025,59219,3}, {5023,59213,3},{5023,59198,3},{5022,59196,3},{5022,59193,3},{5027,59188,3}, {5025,59174,3},{5027,59173,3},{5027,59169,3},{5030,59166,3},{5030,59158,3}, {5032,59154,3},{5028,59128,3},{5027,59119,3},{5027,59109,3},{5032,59089,3}, {5028,59083,3},{5028,59073,3},{5027,59049,3},{5027,59046,3},{5030,59044,3}, {5028,59038,3},{5030,59024,3},{5028,59018,3},{5032,59011,3},{5030,59009,3}, {5030,58989,3},{5025,58964,3},{5027,58951,3},{5028,58946,3},{5028,58941,3}, {5027,58936,3},{5022,58931,3},{5022,58928,3},{5025,58926,3},{5022,58926,3}, {5018,58928,3},{5022,58913,3},{5020,58899,3},{5022,58896,3},{5027,58894,3}, {5027,58889,3},{5022,58883,3},{5018,58881,3},{5017,58884,3},{5017,58893,3}, {5013,58889,3},{5015,58881,3},{5015,58878,3},{5018,58873,3},{5015,58874,3}, {5013,58869,3},{5005,58863,3},{5002,58848,3},{4997,58839,3},{4995,58838,3}, {4992,58839,3},{4982,58833,3},{4985,58829,3},{4982,58821,3},{4975,58818,3}, {4968,58819,3},{4958,58813,3},{4948,58813,3},{4933,58799,3},{4933,58778,3}, {4930,58769,3},{4932,58764,3},{4930,58759,3},{4927,58754,3},{4930,58741,3}, {4928,58736,3},{4928,58731,3},{4925,58728,3},{4927,58724,3},{4920,58721,3}, {4918,58713,3},{4920,58706,3},{4917,58711,3},{4917,58716,3},{4912,58718,3}, {4910,58711,3},{4910,58703,3},{4905,58696,3},{4907,58691,3},{4910,58698,3}, {4913,58699,3},{4915,58696,3},{4918,58694,3},{4918,58691,3},{4918,58694,3}, {4912,58696,3},{4908,58691,3},{4905,58676,3},{4900,58673,3},{4895,58671,3}, {4893,58666,3},{4892,58671,3},{4890,58658,3},{4888,58654,3},{4882,58641,3}, {4878,58639,3},{4877,58629,3},{4860,58621,3},{4858,58619,3},{4858,58613,3}, {4845,58606,3},{4835,58596,3},{4830,58593,3},{4825,58583,3},{4823,58578,3}, {4813,58568,3},{4815,58554,3},{4822,58548,3},{4825,58541,3},{4827,58539,3}, {4827,58523,3},{4837,58499,3},{4837,58493,3},{4838,58476,3},{4838,58468,3}, {4843,58459,3},{4843,58453,3},{4847,58438,3},{4843,58429,3},{4845,58438,3}, {4843,58441,3},{4840,58458,3},{4837,58456,3},{4835,58448,3},{4832,58449,3}, {4835,58459,3},{4835,58481,3},{4832,58503,3},{4830,58504,3},{4830,58509,3}, {4827,58514,3},{4823,58518,3},{4823,58526,3},{4825,58533,3},{4823,58536,3}, {4822,58544,3},{4815,58549,3},{4812,58563,3},{4807,58558,3},{4800,58558,3}, {4797,58554,3},{4792,58553,3},{4785,58546,3},{4777,58543,3},{4775,58539,3}, {4770,58534,3},{4767,58523,3},{4763,58523,3},{4758,58516,3},{4750,58513,3}, {4743,58491,3},{4743,58486,3},{4738,58486,3},{4727,58479,3},{4710,58464,3}, {4707,58454,3},{4705,58446,3},{4700,58439,3},{4687,58418,3},{4682,58414,3}, {4675,58406,3},{4678,58414,3},{4685,58421,3},{4685,58436,3},{4690,58444,3}, {4690,58451,3},{4692,58454,3},{4692,58459,3},{4695,58463,3},{4702,58486,3}, {4718,58504,3},{4732,58516,3},{4733,58524,3},{4738,58531,3},{4745,58533,3}, {4748,58534,3},{4753,58546,3},{4782,58576,3},{4783,58581,3},{4787,58581,3}, {4800,58593,3},{4802,58603,3},{4810,58613,3},{4815,58623,3},{4825,58633,3}, {4833,58651,3},{4837,58654,3},{4837,58663,3},{4843,58674,3},{4845,58683,3}, {4853,58691,3},{4855,58701,3},{4863,58713,3},{4865,58724,3},{4868,58731,3}, {4870,58739,3},{4885,58781,3},{4887,58793,3},{4892,58803,3},{4897,58828,3}, {4912,58873,3},{4913,58888,3},{4917,58894,3},{4922,58928,3},{4922,58946,3}, {4923,58959,3},{4923,58963,3},{4927,58976,3},{4927,58991,3},{4923,59013,3}, {4922,59039,3},{4918,59056,3},{4915,59063,3},{4912,59078,3},{4897,59106,3}, {4888,59114,3},{4882,59114,3},{4875,59121,3},{4882,59106,3},{4888,59081,3}, {4883,59089,3},{4882,59083,3},{4882,59096,3},{4878,59099,3},{4878,59094,3}, {4877,59093,3},{4877,59098,3},{4875,59103,3},{4863,59119,3},{4862,59111,3}, {4860,59109,3},{4855,59108,3},{4852,59118,3},{4850,59114,3},{4847,59104,3}, {4842,59104,3},{4840,59086,3},{4835,59071,3},{4833,59064,3},{4832,59066,3}, {4820,59059,3},{4817,59043,3},{4818,59039,3},{4815,59041,3},{4803,59016,3}, {4800,59006,3},{4800,58989,3},{4805,58986,3},{4812,58954,3},{4817,58948,3}, {4822,58946,3},{4818,58944,3},{4818,58941,3},{4817,58936,3},{4812,58933,3}, {4810,58928,3},{4812,58913,3},{4812,58906,3},{4810,58909,3},{4807,58908,3}, {4810,58901,3},{4812,58894,3},{4812,58888,3},{4810,58884,3},{4805,58883,3}, {4805,58873,3},{4803,58869,3},{4800,58851,3},{4798,58861,3},{4802,58869,3}, {4802,58874,3},{4807,58893,3},{4807,58901,3},{4802,58901,3},{4800,58911,3}, {4797,58921,3},{4793,58928,3},{4792,58953,3},{4787,58961,3},{4782,58964,3}, {4772,58968,3},{4767,58973,3},{4765,58969,3},{4762,58973,3},{4767,58976,3}, {4768,58988,3},{4775,59001,3},{4780,59013,3},{4785,59031,3},{4783,59038,3}, {4780,59031,3},{4778,59029,3},{4782,59053,3},{4780,59056,3},{4778,59058,3}, {4775,59056,3},{4775,59049,3},{4773,59053,3},{4775,59058,3},{4770,59059,3}, {4772,59061,3},{4775,59059,3},{4777,59063,3},{4773,59068,3},{4772,59069,3}, {4770,59061,3},{4768,59059,3},{4767,59054,3},{4762,59054,3},{4755,59046,3}, {4752,59046,3},{4752,59049,3},{4748,59046,3},{4747,59044,3},{4745,59043,3}, {4748,59046,3},{4748,59049,3},{4745,59048,3},{4743,59048,3},{4735,59044,3}, {4740,59046,3},{4737,59043,3},{4728,59039,3},{4727,59033,3},{4713,59013,3}, {4708,58999,3},{4707,59008,3},{4708,59009,3},{4708,59016,3},{4705,59014,3}, {4705,59019,3},{4708,59026,3},{4708,59034,3},{4705,59038,3},{4708,59043,3}, {4708,59056,3},{4705,59053,3},{4698,59056,3},{4692,59046,3},{4683,59046,3}, {4678,59049,3},{4672,59058,3},{4670,59051,3},{4667,59051,3},{4670,59054,3}, {4667,59061,3},{4670,59061,3},{4668,59064,3},{4658,59064,3},{4650,59069,3}, {4648,59064,3},{4645,59068,3},{4647,59071,3},{4642,59074,3},{4633,59073,3}, {4632,59066,3},{4633,59076,3},{4633,59078,3},{4637,59079,3},{4632,59084,3}, {4628,59079,3},{4622,59079,3},{4623,59084,3},{4625,59084,3},{4622,59099,3}, {4623,59111,3},{4622,59114,3},{4620,59121,3},{4618,59119,3},{4615,59121,3}, {4618,59124,3},{4615,59128,3},{4618,59131,3},{4618,59141,3},{4612,59158,3}, {4610,59159,3},{4608,59156,3},{4608,59151,3},{4605,59144,3},{4607,59129,3}, {4602,59126,3},{4598,59131,3},{4598,59133,3},{4600,59134,3},{4598,59143,3}, {4597,59149,3},{4593,59149,3},{4592,59154,3},{4588,59156,3},{4587,59164,3}, {4587,59163,3},{4583,59161,3},{4585,59168,3},{4583,59169,3},{4582,59169,3}, {4583,59171,3},{4587,59171,3},{4587,59173,3},{4587,59178,3},{4588,59188,3}, {4587,59194,3},{4585,59194,3},{4585,59188,3},{4582,59193,3},{4582,59184,3}, {4580,59186,3},{4580,59213,3},{4577,59204,3},{4577,59198,3},{4575,59199,3}, {4572,59208,3},{4575,59211,3},{4573,59211,3},{4577,59218,3},{4573,59218,3}, {4577,59224,3},{4575,59229,3},{4578,59228,3},{4580,59224,3},{4582,59226,3}, {4577,59258,3},{4577,59269,3},{4575,59264,3},{4575,59261,3},{4573,59263,3}, {4573,59269,3},{4572,59273,3},{4567,59259,3},{4563,59258,3},{4565,59261,3}, {4563,59263,3},{4562,59261,3},{4565,59266,3},{4563,59271,3},{4567,59269,3}, {4568,59274,3},{4567,59281,3},{4565,59283,3},{4565,59289,3},{4562,59284,3}, {4560,59288,3},{4562,59289,3},{4567,59301,3},{4565,59293,3},{4567,59294,3}, {4570,59311,3},{4578,59328,3},{4587,59339,3},{4588,59344,3},{4587,59346,3}, {4583,59344,3},{4568,59348,3},{4567,59354,3},{4563,59356,3},{4562,59364,3}, {4562,59369,3},{4563,59373,3},{4562,59371,3},{4562,59374,3},{4567,59379,3}, {4568,59389,3},{4560,59399,3},{4558,59399,3},{4553,59403,3},{4550,59413,3}, {4545,59413,3},{4540,59399,3},{4542,59399,3},{4538,59389,3},{4537,59388,3}, {4535,59389,3},{4533,59411,3},{4535,59424,3},{4533,59433,3},{4532,59439,3}, {4527,59439,3},{4530,59433,3},{4527,59434,3},{4523,59431,3},{4520,59424,3}, {4523,59421,3},{4527,59424,3},{4525,59419,3},{4520,59419,3},{4525,59416,3}, {4525,59409,3},{4522,59399,3},{4518,59399,3},{4518,59403,3},{4517,59401,3}, {4515,59396,3},{4517,59393,3},{4515,59391,3},{4515,59384,3},{4513,59381,3}, {4515,59374,3},{4517,59373,3},{4515,59371,3},{4518,59366,3},{4512,59373,3}, {4512,59369,3},{4508,59371,3},{4508,59366,3},{4510,59366,3},{4508,59364,3}, {4510,59361,3},{4508,59361,3},{4510,59354,3},{4507,59354,3},{4508,59351,3}, {4505,59353,3},{4505,59348,3},{4502,59348,3},{4505,59343,3},{4502,59341,3}, {4502,59336,3},{4502,59334,3},{4500,59331,3},{4498,59338,3},{4498,59329,3}, {4497,59329,3},{4498,59321,3},{4495,59318,3},{4495,59313,3},{4493,59309,3}, {4492,59304,3},{4492,59303,3},{4488,59303,3},{4492,59299,3},{4490,59296,3}, {4488,59296,3},{4485,59291,3},{4483,59291,3},{4490,59288,3},{4485,59284,3}, {4487,59281,3},{4483,59279,3},{4480,59283,3},{4480,59279,3},{4483,59278,3}, {4483,59274,3},{4482,59274,3},{4480,59269,3},{4478,59271,3},{4480,59268,3}, {4478,59261,3},{4478,59256,3},{4475,59253,3},{4472,59256,3},{4472,59253,3}, {4473,59249,3},{4472,59249,3},{4473,59243,3},{4470,59238,3},{4472,59236,3}, {4477,59236,3},{4477,59234,3},{4477,59233,3},{4477,59229,3},{4470,59234,3}, {4467,59231,3},{4472,59231,3},{4473,59226,3},{4478,59224,3},{4473,59224,3}, {4468,59221,3},{4470,59219,3},{4473,59221,3},{4467,59216,3},{4473,59213,3}, {4472,59211,3},{4468,59213,3},{4465,59208,3},{4463,59208,3},{4463,59196,3}, {4465,59194,3},{4467,59198,3},{4468,59196,3},{4467,59191,3},{4463,59194,3}, {4458,59193,3},{4468,59176,3},{4470,59174,3},{4472,59171,3},{4467,59173,3}, {4467,59178,3},{4463,59179,3},{4458,59183,3},{4455,59181,3},{4452,59184,3}, {4448,59183,3},{4447,59179,3},{4447,59178,3},{4448,59178,3},{4448,59176,3}, {4443,59173,3},{4447,59173,3},{4447,59166,3},{4445,59166,3},{4447,59161,3}, {4450,59159,3},{4447,59158,3},{4447,59156,3},{4448,59154,3},{4453,59158,3}, {4450,59156,3},{4452,59153,3},{4450,59151,3},{4448,59149,3},{4452,59143,3}, {4453,59141,3},{4458,59144,3},{4462,59143,3},{4463,59144,3},{4465,59143,3}, {4468,59148,3},{4465,59138,3},{4463,59129,3},{4458,59129,3},{4452,59134,3}, {4452,59131,3},{4447,59128,3},{4448,59124,3},{4455,59124,3},{4458,59119,3}, {4457,59116,3},{4453,59114,3},{4457,59106,3},{4450,59106,3},{4447,59104,3}, {4447,59106,3},{4445,59101,3},{4442,59103,3},{4440,59111,3},{4440,59106,3}, {4438,59106,3},{4437,59114,3},{4435,59101,3},{4433,59103,3},{4432,59106,3}, {4435,59106,3},{4432,59109,3},{4430,59108,3},{4428,59108,3},{4430,59113,3}, {4427,59111,3},{4425,59108,3},{4427,59103,3},{4430,59103,3},{4433,59094,3}, {4428,59101,3},{4425,59099,3},{4425,59096,3},{4413,59086,3},{4415,59083,3}, {4415,59079,3},{4415,59076,3},{4413,59074,3},{4412,59078,3},{4413,59079,3}, {4412,59081,3},{4408,59081,3},{4407,59078,3},{4407,59074,3},{4405,59071,3}, {4405,59064,3},{4403,59069,3},{4398,59069,3},{4398,59066,3},{4395,59063,3}, {4395,59054,3},{4392,59051,3},{4388,59056,3},{4387,59058,3},{4387,59054,3}, {4382,59053,3},{4382,59051,3},{4387,59049,3},{4388,59046,3},{4383,59048,3}, {4380,59048,3},{4380,59044,3},{4387,59039,3},{4385,59039,3},{4382,59041,3}, {4380,59043,3},{4375,59039,3},{4383,59033,3},{4375,59036,3},{4370,59033,3}, {4372,59031,3},{4370,59029,3},{4370,59028,3},{4375,59028,3},{4367,59024,3}, {4368,59021,3},{4375,59023,3},{4372,59019,3},{4370,59018,3},{4380,59013,3}, {4378,59013,3},{4378,59011,3},{4372,59014,3},{4368,59011,3},{4367,59009,3}, {4368,59006,3},{4370,59003,3},{4375,59004,3},{4377,59003,3},{4373,59003,3}, {4373,58999,3},{4367,59003,3},{4362,59001,3},{4360,58999,3},{4355,59003,3}, {4357,58999,3},{4357,58996,3},{4360,58991,3},{4357,58991,3},{4353,58996,3}, {4350,58994,3},{4355,58993,3},{4355,58991,3},{4352,58989,3},{4352,58988,3}, {4347,58989,3},{4353,58981,3},{4355,58981,3},{4357,58979,3},{4348,58971,3}, {4350,58969,3},{4350,58963,3},{4357,58963,3},{4357,58961,3},{4355,58961,3}, {4357,58958,3},{4368,58958,3},{4365,58956,3},{4362,58956,3},{4363,58954,3}, {4370,58954,3},{4373,58951,3},{4380,58949,3},{4377,58949,3},{4383,58944,3}, {4382,58943,3},{4380,58943,3},{4378,58941,3},{4378,58938,3},{4385,58938,3}, {4383,58936,3},{4380,58936,3},{4373,58939,3},{4370,58938,3},{4373,58936,3}, {4368,58934,3},{4375,58931,3},{4372,58931,3},{4373,58929,3},{4377,58928,3}, {4373,58924,3},{4380,58923,3},{4383,58926,3},{4383,58923,3},{4382,58923,3}, {4383,58921,3},{4385,58919,3},{4402,58921,3},{4408,58918,3},{4410,58914,3}, {4417,58918,3},{4423,58923,3},{4433,58924,3},{4448,58938,3},{4453,58949,3}, {4458,58951,3},{4458,58941,3},{4445,58924,3},{4438,58918,3},{4442,58918,3}, {4460,58941,3},{4462,58946,3},{4468,58958,3},{4467,58959,3},{4460,58961,3}, {4462,58968,3},{4468,58976,3},{4478,58993,3},{4468,58971,3},{4470,58968,3}, {4467,58964,3},{4468,58961,3},{4470,58961,3},{4490,58998,3},{4492,59006,3}, {4500,59019,3},{4505,59033,3},{4515,59054,3},{4522,59079,3},{4525,59093,3}, {4528,59096,3},{4530,59096,3},{4533,59088,3},{4530,59103,3},{4527,59104,3}, {4523,59101,3},{4520,59099,3},{4517,59101,3},{4515,59098,3},{4513,59098,3}, {4510,59099,3},{4513,59104,3},{4510,59114,3},{4505,59121,3},{4498,59121,3}, {4500,59121,3},{4500,59126,3},{4502,59124,3},{4505,59126,3},{4505,59124,3}, {4512,59116,3},{4515,59116,3},{4517,59119,3},{4520,59121,3},{4528,59148,3}, {4527,59151,3},{4528,59156,3},{4532,59158,3},{4530,59163,3},{4532,59164,3}, {4532,59178,3},{4533,59183,3},{4532,59188,3},{4528,59189,3},{4533,59189,3}, {4537,59199,3},{4537,59184,3},{4540,59176,3},{4538,59173,3},{4540,59161,3}, {4538,59151,3},{4535,59148,3},{4537,59144,3},{4538,59144,3},{4540,59139,3}, {4538,59136,3},{4538,59131,3},{4540,59133,3},{4542,59129,3},{4540,59114,3}, {4538,59111,3},{4540,59104,3},{4537,59104,3},{4537,59098,3},{4540,59091,3}, {4542,59079,3},{4538,59069,3},{4535,59064,3},{4533,59066,3},{4532,59061,3}, {4528,59059,3},{4532,59059,3},{4533,59059,3},{4535,59054,3},{4535,59049,3}, {4532,59043,3},{4535,59043,3},{4542,59044,3},{4545,59051,3},{4547,59056,3}, {4548,59053,3},{4553,59068,3},{4558,59073,3},{4560,59079,3},{4567,59088,3}, {4568,59091,3},{4572,59093,3},{4573,59093,3},{4575,59096,3},{4580,59099,3}, {4582,59106,3},{4580,59106,3},{4577,59103,3},{4573,59103,3},{4577,59109,3}, {4577,59106,3},{4580,59108,3},{4583,59109,3},{4588,59103,3},{4588,59099,3}, {4587,59103,3},{4577,59089,3},{4572,59088,3},{4573,59081,3},{4577,59084,3}, {4582,59088,3},{4585,59083,3},{4590,59083,3},{4587,59081,3},{4590,59078,3}, {4595,59074,3},{4600,59068,3},{4605,59068,3},{4608,59061,3},{4608,59059,3}, {4603,59066,3},{4600,59066,3},{4593,59074,3},{4585,59079,3},{4580,59076,3}, {4575,59069,3},{4572,59071,3},{4572,59066,3},{4562,59061,3},{4560,59058,3}, {4563,59054,3},{4562,59044,3},{4555,59034,3},{4545,59003,3},{4537,58984,3}, {4532,58981,3},{4532,58974,3},{4527,58964,3},{4525,58963,3},{4527,58958,3}, {4525,58954,3},{4520,58946,3},{4522,58938,3},{4528,58933,3},{4528,58926,3}, {4530,58923,3},{4532,58923,3},{4538,58934,3},{4542,58936,3},{4547,58936,3}, {4542,58931,3},{4535,58928,3},{4535,58923,3},{4533,58916,3},{4528,58921,3}, {4528,58928,3},{4525,58931,3},{4522,58923,3},{4520,58921,3},{4517,58914,3}, {4522,58911,3},{4520,58904,3},{4518,58906,3},{4518,58911,3},{4517,58911,3}, {4513,58904,3},{4515,58901,3},{4512,58901,3},{4510,58896,3},{4507,58893,3}, {4508,58889,3},{4512,58889,3},{4515,58888,3},{4513,58884,3},{4515,58883,3}, {4508,58871,3},{4507,58866,3},{4508,58864,3},{4505,58861,3},{4507,58856,3}, {4508,58858,3},{4510,58858,3},{4508,58856,3},{4508,58851,3},{4505,58848,3}, {4507,58846,3},{4512,58846,3},{4513,58851,3},{4515,58843,3},{4518,58841,3}, {4515,58838,3},{4517,58833,3},{4512,58831,3},{4508,58833,3},{4515,58824,3}, {4522,58823,3},{4522,58821,3},{4525,58818,3},{4522,58818,3},{4518,58819,3}, {4518,58816,3},{4520,58809,3},{4517,58806,3},{4515,58803,3},{4520,58796,3}, {4527,58789,3},{4540,58794,3},{4543,58789,3},{4550,58788,3},{4553,58794,3}, {4558,58794,3},{4562,58789,3},{4560,58784,3},{4563,58771,3},{4568,58764,3}, {4567,58763,3},{4570,58756,3},{4578,58756,3},{4583,58761,3},{4588,58758,3}, {4593,58761,3},{4595,58759,3},{4707,58756,3},{4712,58748,3},{4720,58739,3}, {4730,58721,3},{4733,58718,3},{4737,58704,3},{4733,58698,3},{4730,58698,3}, {4728,58693,3},{4730,58686,3},{4728,58679,3},{4725,58671,3},{4723,58661,3}, {4718,58646,3},{4727,58631,3},{4730,58631,3},{4743,58631,3},{4747,58613,3}, {4670,58534,3},{4643,58531,3},{4637,58521,3},{4635,58516,3},{4632,58516,3}, {4628,58513,3},{4620,58508,3},{4615,58513,3},{4610,58511,3},{4608,58506,3}, {4607,58508,3},{4603,58506,3},{4598,58504,3},{4595,58513,3},{4592,58511,3}, {4582,58496,3},{4575,58498,3},{4572,58494,3},{4572,58489,3},{4567,58479,3}, {4557,58466,3},{4550,58464,3},{4543,58473,3},{4540,58471,3},{4540,58468,3}, {4543,58463,3},{4543,58456,3},{4542,58454,3},{4532,58454,3},{4530,58453,3}, {4523,58448,3},{4530,58444,3},{4535,58439,3},{4535,58434,3},{4532,58433,3}, {4530,58428,3},{4528,58424,3},{4525,58423,3},{4525,58418,3},{4530,58408,3}, {4528,58401,3},{4525,58398,3},{4525,58393,3},{4520,58396,3},{4512,58393,3}, {4508,58386,3},{4502,58386,3},{4502,58381,3},{4502,58374,3},{4502,58368,3}, {4502,58359,3},{4502,58353,3},{4502,58346,3},{4502,58339,3},{4502,58331,3}, {4502,58324,3},{4502,58316,3},{4502,58309,3},{4502,58303,3},{4502,58296,3}, {4502,58288,3},{4502,58281,3},{4502,58273,3},{4502,58266,3},{4502,58259,3}, {4502,58251,3},{4502,58244,3},{4502,58238,3},{4502,58229,3},{4502,58223,3}, {4502,58216,3},{4502,58209,3},{4502,58201,3},{4500,58111,3},{4500,58068,3}, {4500,58061,3},{4502,58053,3},{4498,58044,3},{4498,58038,3},{4493,58029,3}, {4483,58004,3},{4462,57973,3},{4448,57956,3},{4440,57941,3},{4437,57933,3}, {4437,57928,3},{4433,57918,3},{4432,57906,3},{4425,57894,3},{4423,57889,3}, {4425,57888,3},{4423,57886,3},{4422,57874,3},{4423,57873,3},{4422,57868,3}, {4412,57846,3},{4408,57839,3},{4407,57831,3},{4408,57833,3},{4410,57829,3}, {4413,57836,3},{4418,57848,3},{4420,57843,3},{4413,57831,3},{4417,57831,3}, {4420,57836,3},{4422,57834,3},{4418,57823,3},{4417,57818,3},{4418,57813,3}, {4417,57804,3},{4418,57803,3},{4413,57788,3},{4412,57781,3},{4408,57778,3}, {4408,57779,3},{4415,57794,3},{4415,57804,3},{4415,57806,3},{4413,57803,3}, {4413,57804,3},{4410,57803,3},{4408,57804,3},{4410,57809,3},{4412,57806,3}, {4415,57811,3},{4415,57818,3},{4418,57829,3},{4412,57828,3},{4403,57823,3}, {4405,57826,3},{4405,57838,3},{4412,57851,3},{4403,57844,3},{4400,57834,3}, {4398,57836,3},{4395,57831,3},{4393,57833,3},{4395,57836,3},{4395,57843,3}, {4395,57849,3},{4395,57851,3},{4393,57844,3},{4385,57823,3},{4388,57813,3}, {4395,57819,3},{4392,57808,3},{4395,57803,3},{4395,57809,3},{4397,57811,3}, {4395,57808,3},{4397,57803,3},{4395,57788,3},{4400,57778,3},{4400,57783,3}, {4402,57783,3},{4403,57776,3},{4403,57769,3},{4403,57766,3},{4402,57763,3}, {4402,57768,3},{4400,57768,3},{4402,57756,3},{4398,57744,3},{4395,57709,3}, {4390,57688,3},{4392,57676,3},{4387,57663,3},{4387,57641,3},{4383,57633,3}, {4383,57626,3},{4378,57623,3},{4367,57603,3},{4365,57599,3},{4365,57589,3}, {4360,57584,3},{4357,57578,3},{4348,57574,3},{4335,57559,3},{4332,57558,3}, {4327,57561,3},{4325,57566,3},{4320,57579,3},{4320,57594,3},{4318,57601,3}, {4327,57621,3},{4327,57631,3},{4317,57631,3},{4308,57631,3},{4310,57629,3}, {4308,57628,3},{4305,57633,3},{4300,57633,3},{4297,57638,3},{4295,57643,3}, {4292,57644,3},{4288,57641,3},{4287,57628,3},{4283,57626,3},{4287,57624,3}, {4288,57619,3},{4288,57608,3},{4287,57601,3},{4288,57591,3},{4285,57588,3}, {4287,57578,3},{4285,57573,3},{4287,57564,3},{4282,57553,3},{4278,57516,3}, {4272,57504,3},{4267,57503,3},{4268,57499,3},{4265,57493,3},{4262,57491,3}, {4260,57493,3},{4260,57501,3},{4258,57506,3},{4257,57523,3},{4255,57531,3}, {4253,57524,3},{4257,57501,3},{4257,57484,3},{4265,57453,3},{4267,57444,3}, {4267,57423,3},{4265,57403,3},{4257,57383,3},{4240,57358,3},{4235,57354,3}, {4227,57351,3},{4225,57346,3},{4230,57349,3},{4232,57351,3},{4228,57344,3}, {4227,57344,3},{4225,57329,3},{4210,57294,3},{4203,57288,3},{4192,57286,3}, {4198,57281,3},{4203,57273,3},{4203,57266,3},{4198,57253,3},{4198,57246,3}, {4205,57228,3},{4207,57224,3},{4225,57226,3},{4232,57231,3},{4232,57236,3}, {4235,57241,3},{4232,57258,3},{4230,57273,3},{4232,57288,3},{4233,57293,3}, {4238,57296,3},{4245,57293,3},{4250,57294,3},{4248,57289,3},{4250,57288,3}, {4252,57276,3},{4255,57271,3},{4255,57273,3},{4257,57278,3},{4262,57284,3}, {4277,57289,3},{4282,57288,3},{4290,57289,3},{4297,57294,3},{4302,57294,3}, {4307,57318,3},{4313,57329,3},{4322,57336,3},{4325,57348,3},{4335,57361,3}, {4350,57366,3},{4368,57363,3},{4393,57364,3},{4408,57361,3},{4415,57369,3}, {4422,57374,3},{4435,57378,3},{4435,57381,3},{4442,57388,3},{4443,57396,3}, {4452,57398,3},{4462,57409,3},{4465,57409,3},{4470,57406,3},{4472,57409,3}, {4478,57408,3},{4478,57406,3},{4482,57408,3},{4483,57404,3},{4487,57403,3}, {4488,57401,3},{4492,57399,3},{4497,57401,3},{4498,57399,3},{4500,57399,3}, {4498,57396,3},{4500,57394,3},{4498,57393,3},{4505,57389,3},{4515,57379,3}, {4515,57378,3},{4520,57378,3},{4518,57376,3},{4520,57371,3},{4520,57366,3}, {4522,57364,3},{4525,57366,3},{4527,57366,3},{4527,57373,3},{4525,57374,3}, {4523,57393,3},{4525,57408,3},{4522,57408,3},{4517,57403,3},{4513,57404,3}, {4510,57409,3},{4500,57411,3},{4500,57413,3},{4502,57414,3},{4502,57416,3}, {4500,57418,3},{4497,57416,3},{4497,57424,3},{4492,57421,3},{4493,57426,3}, {4490,57429,3},{4493,57433,3},{4495,57431,3},{4497,57433,3},{4497,57441,3}, {4492,57436,3},{4487,57436,3},{4483,57434,3},{4480,57424,3},{4475,57423,3}, {4475,57424,3},{4478,57431,3},{4482,57438,3},{4478,57446,3},{4475,57448,3}, {4460,57441,3},{4470,57456,3},{4472,57461,3},{4473,57471,3},{4462,57478,3}, {4460,57488,3},{4455,57493,3},{4452,57513,3},{4447,57528,3},{4455,57536,3}, {4463,57536,3},{4468,57538,3},{4473,57531,3},{4475,57524,3},{4482,57526,3}, {4482,57529,3},{4485,57534,3},{4487,57539,3},{4485,57544,3},{4482,57543,3}, {4482,57546,3},{4480,57548,3},{4477,57548,3},{4475,57569,3},{4477,57569,3}, {4478,57564,3},{4483,57568,3},{4488,57568,3},{4487,57563,3},{4483,57566,3}, {4482,57563,3},{4480,57561,3},{4482,57558,3},{4485,57559,3},{4487,57554,3}, {4490,57556,3},{4490,57553,3},{4493,57553,3},{4495,57548,3},{4495,57544,3}, {4498,57543,3},{4502,57543,3},{4503,57536,3},{4507,57536,3},{4508,57531,3}, {4512,57526,3},{4512,57534,3},{4515,57538,3},{4518,57534,3},{4522,57529,3}, {4518,57524,3},{4523,57523,3},{4532,57533,3},{4540,57528,3},{4540,57519,3}, {4537,57516,3},{4535,57519,3},{4533,57513,3},{4537,57513,3},{4537,57508,3}, {4538,57504,3},{4543,57506,3},{4543,57503,3},{4540,57503,3},{4538,57501,3}, {4540,57499,3},{4543,57501,3},{4547,57496,3},{4557,57498,3},{4560,57496,3}, {4563,57493,3},{4558,57494,3},{4557,57486,3},{4560,57484,3},{4563,57484,3}, {4565,57478,3},{4568,57478,3},{4568,57476,3},{4570,57478,3},{4573,57473,3}, {4578,57473,3},{4582,57469,3},{4582,57464,3},{4583,57464,3},{4585,57469,3}, {4587,57463,3},{4590,57461,3},{4593,57459,3},{4590,57456,3},{4595,57456,3}, {4593,57449,3},{4595,57446,3},{4593,57443,3},{4595,57431,3},{4595,57424,3}, {4593,57421,3},{4593,57418,3},{4598,57421,3},{4602,57419,3},{4602,57414,3}, {4598,57411,3},{4600,57418,3},{4600,57419,3},{4597,57416,3},{4595,57409,3}, {4600,57391,3},{4598,57386,3},{4602,57388,3},{4595,57369,3},{4600,57379,3}, {4602,57371,3},{4603,57386,3},{4603,57378,3},{4602,57366,3},{4607,57381,3}, {4608,57383,3},{4610,57376,3},{4612,57374,3},{4612,57371,3},{4608,57369,3}, {4607,57361,3},{4602,57359,3},{4607,57358,3},{4610,57364,3},{4610,57339,3}, {4613,57326,3},{4612,57323,3},{4615,57314,3},{4615,57308,3},{4615,57306,3}, {4617,57299,3},{4618,57298,3},{4618,57304,3},{4618,57296,3},{4618,57293,3}, {4620,57291,3},{4618,57284,3},{4617,57269,3},{4618,57268,3},{4622,57273,3}, {4620,57266,3},{4618,57254,3},{4618,57248,3},{4618,57241,3},{4617,57238,3}, {4618,57223,3},{4620,57219,3},{4620,57216,3},{4625,57189,3},{4625,57181,3}, {4628,57176,3},{4627,57166,3},{4630,57159,3},{4630,57149,3},{4632,57148,3}, {4633,57131,3},{4637,57124,3},{4648,57128,3},{4650,57129,3},{4653,57126,3}, {4655,57118,3},{4653,57111,3},{4652,57106,3},{4653,57094,3},{4650,57089,3}, {4648,57089,3},{4648,57084,3},{4652,57083,3},{4655,57078,3},{4657,57078,3}, {4667,57089,3},{4670,57094,3},{4675,57091,3},{4675,57089,3},{4670,57084,3}, {4670,57083,3},{4670,57081,3},{4673,57079,3},{4675,57081,3},{4682,57081,3}, {4685,57091,3},{4683,57096,3},{4688,57101,3},{4693,57093,3},{4693,57084,3}, {4695,57079,3},{4693,57078,3},{4690,57078,3},{4690,57074,3},{4697,57069,3}, {4695,57064,3},{4698,57058,3},{4705,57059,3},{4710,57066,3},{4715,57064,3}, {4717,57068,3},{4718,57066,3},{4725,57073,3},{4730,57078,3},{4737,57073,3}, {4737,57069,3},{4738,57066,3},{4743,57064,3},{4748,57054,3},{4752,57044,3}, {4753,57041,3},{4757,57041,3},{4762,57033,3},{4762,57036,3},{4765,57036,3}, {4768,57039,3},{4772,57038,3},{4773,57043,3},{4780,57048,3},{4783,57043,3}, {4785,57043,3},{4792,57051,3},{4793,57053,3},{4797,57049,3},{4795,57046,3}, {4795,57044,3},{4797,57036,3},{4797,57009,3},{4792,56993,3},{4793,56969,3}, {4797,56954,3},{4800,56949,3},{4803,56946,3},{4803,56943,3},{4807,56943,3}, {4808,56936,3},{4817,56928,3},{4833,56918,3},{4840,56918,3},{4843,56914,3}, {4858,56909,3},{4862,56903,3},{4865,56904,3},{4867,56901,3},{4872,56896,3}, {4873,56898,3},{4875,56893,3},{4878,56893,3},{4875,56883,3},{4873,56881,3}, {4875,56873,3},{4878,56874,3},{4880,56868,3},{4882,56866,3},{4875,56851,3}, {4882,56838,3},{4880,56836,3},{4877,56836,3},{4878,56831,3},{4877,56824,3}, {4878,56818,3},{4877,56816,3},{4877,56808,3},{4880,56806,3},{4880,56798,3}, {4883,56794,3},{4885,56791,3},{4883,56781,3},{4888,56778,3},{4887,56771,3}, {4890,56768,3},{4890,56758,3},{4893,56758,3},{4892,56751,3},{4895,56741,3}, {4898,56733,3},{4902,56733,3},{4900,56729,3},{4900,56724,3},{4897,56718,3}, {4897,56713,3},{4900,56711,3},{4898,56709,3},{4893,56713,3},{4888,56711,3}, {4887,56711,3},{4883,56719,3},{4880,56726,3},{4877,56724,3},{4872,56726,3}, {4860,56716,3},{4860,56711,3},{4863,56713,3},{4860,56708,3},{4865,56703,3}, {4858,56704,3},{4857,56701,3},{4853,56696,3},{4857,56693,3},{4853,56689,3}, {4852,56688,3},{4847,56688,3},{4847,56684,3},{4843,56684,3},{4843,56679,3}, {4848,56679,3},{4848,56678,3},{4855,56681,3},{4855,56684,3},{4868,56701,3}, {4877,56704,3},{4883,56699,3},{4885,56688,3},{4877,56681,3},{4873,56681,3}, {4872,56684,3},{4870,56681,3},{4865,56683,3},{4862,56674,3},{4852,56673,3}, {4850,56666,3},{4837,56663,3},{4833,56646,3},{4832,56643,3},{4838,56646,3}, {4838,56649,3},{4848,56653,3},{4855,56661,3},{4858,56659,3},{4848,56623,3}, {4845,56616,3},{4838,56611,3},{4832,56616,3},{4830,56613,3},{4825,56609,3}, {4820,56609,3},{4820,56606,3},{4818,56608,3},{4815,56604,3},{4813,56603,3}, {4812,56603,3},{4810,56593,3},{4808,56591,3},{4808,56594,3},{4807,56594,3}, {4805,56586,3},{4803,56584,3},{4800,56578,3},{4802,56566,3},{4803,56559,3}, {4798,56546,3},{4802,56536,3},{4808,56531,3},{4810,56529,3},{4812,56521,3}, {4810,56496,3},{4810,56489,3},{4810,56488,3},{4808,56481,3},{4812,56478,3}, {4808,56461,3},{4812,56458,3},{4817,56458,3},{4818,56453,3},{4823,56453,3}, {4823,56449,3},{4823,56443,3},{4815,56423,3},{4808,56411,3},{4805,56396,3}, {4803,56394,3},{4805,56391,3},{4805,56379,3},{4805,56378,3},{4810,56378,3}, {4810,56366,3},{4812,56366,3},{4815,56368,3},{4820,56363,3},{4820,56351,3}, {4823,56348,3},{4823,56343,3},{4825,56338,3},{4835,56331,3},{4835,56323,3}, {4833,56309,3},{4830,56306,3},{4825,56308,3},{4823,56301,3},{4832,56291,3}, {4840,56291,3},{4845,56286,3},{4843,56271,3},{4845,56266,3},{4848,56266,3}, {4850,56274,3},{4853,56273,3},{4853,56264,3},{4858,56249,3},{4862,56241,3}, {4862,56224,3},{4863,56211,3},{4860,56191,3},{4857,56191,3},{4853,56188,3}, {4852,56171,3},{4852,56158,3},{4852,56156,3},{4862,56153,3},{4863,56151,3}, {4865,56113,3},{4870,56109,3},{4870,56106,3},{4872,56096,3},{4870,56088,3}, {4872,56078,3},{4875,56071,3},{4878,56066,3},{4888,56066,3},{4897,56064,3}, {4917,56056,3},{4932,56054,3},{4937,56043,3},{4937,56028,3},{4938,56021,3}, {4933,56021,3},{4927,56021,3},{4920,56021,3},{4913,56021,3},{4907,56021,3}, {4900,56021,3},{4900,56016,3},{4900,56006,3},{4900,55996,3},{4900,55986,3}, {4900,55976,3},{4900,55966,3},{4900,55956,3},{4900,55946,3},{4900,55936,3}, {4900,55926,3},{4900,55916,3},{4900,55906,3},{4900,55896,3},{4900,55886,3}, {4900,55876,3},{4900,55866,3},{4900,55856,3},{4900,55846,3},{4900,55836,3}, {4900,55826,3},{4900,55816,3},{4900,55806,3},{4900,55796,3},{4900,55786,3}, {4900,55776,3},{4900,55766,3},{4900,55756,3},{4900,55746,3},{4900,55736,3}, {4900,55726,3},{4900,55716,3},{4900,55706,3},{4900,55696,3},{4900,55686,3}, {4900,55676,3},{4900,55666,3},{4900,55656,3},{4900,55646,3},{4900,55636,3}, {4900,55626,3},{4900,55616,3},{4900,55606,3},{4900,55596,3},{4900,55586,3}, {4900,55576,3},{4900,55566,3},{4900,55556,3},{4900,55546,3},{4900,55536,3}, {4900,55526,3},{4900,55516,3},{4900,55506,3},{4900,55496,3},{4900,55486,3}, {4900,55476,3},{4900,55466,3},{4900,55456,3},{4900,55446,3},{4900,55436,3}, {4900,55426,3},{4900,55416,3},{4900,55406,3},{4900,55399,3},{4900,55386,3}, {4900,55376,3},{4900,55366,3},{4900,55356,3},{4900,55346,3},{4900,55336,3}, {4900,55326,3},{4900,55316,3},{4900,55306,3},{4900,55296,3},{4900,55286,3}, {4900,55276,3},{4900,55266,3},{4900,55256,3},{4900,55246,3},{4900,55236,3}, {4900,55226,3},{4900,55216,3},{4900,55206,3},{4900,55196,3},{4900,55186,3}, {4900,55176,3},{4900,55166,3},{4900,55156,3},{4900,55144,3},{4900,55133,3}, {4900,55124,3},{4900,55116,3},{4900,55106,3},{4900,55096,3},{4900,55086,3}, {4900,55076,3},{4900,55066,3},{4900,55056,3},{4900,55046,3},{4900,55036,3}, {4900,55026,3},{4900,55016,3},{4900,55006,3},{4900,54996,3},{4900,54986,3}, {4900,54979,3},{4900,54966,3},{4900,54956,3},{4900,54946,3},{4900,54936,3}, {4900,54926,3},{4900,54916,3},{4900,54906,3},{4900,54896,3},{4900,54886,3}, {4900,54876,3},{4900,54866,3},{4900,54856,3},{4900,54843,3},{4900,54836,3}, {4900,54826,3},{4900,54816,3},{4900,54806,3},{4900,54796,3},{4900,54786,3}, {4900,54776,3},{4900,54766,3},{4900,54756,3},{4900,54746,3},{4900,54736,3}, {4900,54726,3},{4900,54716,3},{4900,54706,3},{4900,54696,3},{4900,54683,3}, {4900,54676,3},{4900,54666,3},{4900,54656,3},{4900,54646,3},{4900,54636,3}, {4900,54626,3},{4900,54616,3},{4900,54606,3},{4900,54596,3},{4900,54586,3}, {4900,54576,3},{4900,54566,3},{4900,54556,3},{4900,54546,3},{4900,54536,3}, {4900,54526,3},{4900,54516,3},{4900,54506,3},{4900,54496,3},{4900,54486,3}, {4900,54476,3},{4900,54466,3},{4900,54456,3},{4900,54446,3},{4900,54436,3}, {4900,54426,3},{4900,54416,3},{4900,54406,3},{4900,54396,3},{4900,54386,3}, {4900,54376,3},{4900,54366,3},{4900,54356,3},{4900,54346,3},{4900,54336,3}, {4900,54326,3},{4900,54316,3},{4900,54306,3},{4900,54296,3},{4900,54286,3}, {4900,54276,3},{4900,54266,3},{4900,54256,3},{4900,54246,3},{4900,54236,3}, {4900,54223,3},{4900,54216,3},{4900,54206,3},{4900,54196,3},{4900,54186,3}, {4900,54176,3},{4900,54166,3},{4900,54156,3},{4900,54146,3},{4900,54136,3}, {4900,54129,3},{4900,54116,3},{4900,54106,3},{4900,54096,3},{4900,54086,3}, {4900,54076,3},{4900,54066,3},{4900,54056,3},{4900,54046,3},{4900,54036,3}, {4900,54026,3},{4900,54016,3},{4900,54006,3},{4900,53996,3},{4900,53986,3}, {4900,53976,3},{4900,53966,3},{4900,53956,3},{4900,53946,3},{4900,53936,3}, {4900,53931,3},{4900,53923,3},{4900,53913,3},{4900,53903,3},{4900,53893,3}, {4900,53883,3},{4900,53873,3},{4900,53863,3},{4900,53853,3},{4900,53843,3}, {4900,53833,3},{4900,53826,3},{4900,53816,3},{4900,53806,3},{4900,53796,3}, {4900,53786,3},{4900,53776,3},{4900,53766,3},{4900,53756,3},{4900,53746,3}, {4900,53736,3},{4900,53726,3},{4900,53716,3},{4900,53706,3},{4900,53696,3}, {4900,53686,3},{4900,53676,3},{4900,53666,3},{4900,53656,3},{4900,53646,3}, {4900,53636,3},{4900,53626,3},{4900,53616,3},{4900,53606,3},{4900,53596,3}, {4900,53586,3},{4900,53576,3},{4900,53566,3},{4900,53556,3},{4900,53543,3}, {4900,53536,3},{4900,53526,3},{4900,53516,3},{4900,53506,3},{4900,53496,3}, {4900,53486,3},{4900,53476,3},{4900,53466,3},{4900,53456,3},{4900,53446,3}, {4900,53436,3},{4900,53426,3},{4900,53416,3},{4900,53406,3},{4900,53399,3}, {4900,53386,3},{4900,53376,3},{4900,53366,3},{4900,53356,3},{4900,53346,3}, {4900,53336,3},{4900,53326,3},{4900,53316,3},{4900,53306,3},{4900,53296,3}, {4900,53286,3},{4900,53276,3},{4900,53266,3},{4900,53259,3},{4902,53251,3}, {4903,53248,3},{4908,53249,3},{4908,53243,3},{4903,53231,3},{4900,53233,3}, {4900,53226,3},{5592,52536,131},{5575,52519,3},{5565,52524,3},{5553,52521,3}, {5543,52529,3},{5535,52531,3},{5528,52538,3},{5523,52529,3},{5523,52526,3}, {5520,52526,3},{5517,52521,3},{5503,52513,3},{5490,52499,3},{5480,52478,3}, {5480,52476,3},{5485,52479,3},{5485,52478,3},{5477,52468,3},{5478,52463,3}, {5482,52468,3},{5490,52463,3},{5497,52463,3},{5495,52461,3},{5488,52461,3}, {5483,52463,3},{5482,52461,3},{5482,52458,3},{5478,52458,3},{5477,52454,3}, {5478,52446,3},{5480,52444,3},{5488,52443,3},{5492,52439,3},{5493,52443,3}, {5497,52443,3},{5497,52439,3},{5500,52436,3},{5507,52439,3},{5510,52453,3}, {5510,52454,3},{5507,52456,3},{5508,52464,3},{5513,52468,3},{5522,52481,3}, {5533,52489,3},{5533,52488,3},{5528,52481,3},{5522,52476,3},{5510,52461,3}, {5510,52458,3},{5515,52454,3},{5508,52444,3},{5510,52434,3},{5513,52429,3}, {5518,52429,3},{5528,52444,3},{5530,52474,3},{5532,52469,3},{5535,52471,3}, {5535,52468,3},{5530,52464,3},{5530,52449,3},{5547,52448,3},{5558,52449,3}, {5568,52446,3},{5570,52448,3},{5578,52441,3},{5582,52444,3},{5580,52438,3}, {5582,52434,3},{5587,52431,3},{5590,52424,3},{5593,52423,3},{5593,52421,3}, {5597,52419,3},{5597,52416,3},{5600,52419,3},{5605,52431,3},{5605,52428,3}, {5610,52434,3},{5610,52429,3},{5600,52414,3},{5597,52404,3},{5597,52398,3}, {5600,52394,3},{5597,52388,3},{5598,52386,3},{5597,52384,3},{5593,52374,3}, {5588,52361,3},{5585,52344,3},{5580,52361,3},{5572,52354,3},{5572,52349,3}, {5567,52354,3},{5563,52353,3},{5562,52348,3},{5560,52348,3},{5567,52336,3}, {5558,52343,3},{5558,52341,3},{5553,52344,3},{5550,52339,3},{5558,52318,3}, {5568,52316,3},{5575,52309,3},{5575,52313,3},{5572,52319,3},{5577,52319,3}, {5580,52319,3},{5580,52331,3},{5585,52328,3},{5588,52333,3},{5593,52329,3}, {5595,52333,3},{5597,52341,3},{5617,52339,3},{5618,52349,3},{5620,52349,3}, {5620,52359,3},{5617,52376,3},{5622,52388,3},{5620,52373,3},{5623,52346,3}, {5630,52339,3},{5635,52339,3},{5638,52329,3},{5637,52326,3},{5638,52321,3}, {5647,52318,3},{5648,52311,3},{5648,52308,3},{5653,52301,3},{5660,52303,3}, {5663,52304,3},{5660,52293,3},{5663,52281,3},{5667,52284,3},{5667,52291,3}, {5672,52284,3},{5675,52289,3},{5677,52289,3},{5677,52294,3},{5680,52296,3}, {5682,52299,3},{5682,52296,3},{5678,52293,3},{5678,52288,3},{5675,52286,3}, {5678,52271,3},{5685,52259,3},{5688,52258,3},{5690,52249,3},{5693,52251,3}, {5698,52244,3},{5695,52258,3},{5698,52259,3},{5705,52254,3},{5708,52258,3}, {5707,52251,3},{5702,52248,3},{5705,52241,3},{5703,52239,3},{5707,52229,3}, {5708,52221,3},{5713,52221,3},{5715,52224,3},{5717,52221,3},{5715,52218,3}, {5713,52218,3},{5713,52214,3},{5717,52214,3},{5717,52211,3},{5712,52211,3}, {5710,52206,3},{5718,52181,3},{5722,52188,3},{5725,52186,3},{5728,52189,3}, {5728,52213,3},{5732,52219,3},{5732,52228,3},{5735,52233,3},{5737,52231,3}, {5733,52224,3},{5732,52214,3},{5733,52206,3},{5733,52198,3},{5735,52193,3}, {5738,52191,3},{5740,52201,3},{5743,52203,3},{5742,52193,3},{5743,52189,3}, {5750,52184,3},{5753,52186,3},{5757,52193,3},{5757,52203,3},{5758,52204,3}, {5758,52193,3},{5757,52183,3},{5757,52178,3},{5758,52174,3},{5763,52169,3}, {5770,52173,3},{5770,52181,3},{5767,52186,3},{5758,52218,3},{5750,52231,3}, {5752,52236,3},{5753,52228,3},{5760,52219,3},{5762,52221,3},{5762,52214,3}, {5765,52209,3},{5767,52203,3},{5772,52196,3},{5772,52189,3},{5775,52183,3}, {5790,52181,3},{5792,52183,3},{5790,52196,3},{5788,52203,3},{5785,52224,3}, {5790,52218,3},{5790,52208,3},{5790,52203,3},{5792,52196,3},{5792,52181,3}, {5790,52176,3},{5787,52178,3},{5788,52173,3},{5785,52173,3},{5782,52174,3}, {5778,52171,3},{5778,52166,3},{5785,52161,3},{5795,52151,3},{5798,52158,3}, {5793,52166,3},{5795,52168,3},{5798,52166,3},{5802,52169,3},{5802,52163,3}, {5805,52159,3},{5810,52166,3},{5813,52164,3},{5815,52169,3},{5813,52161,3}, {5810,52163,3},{5805,52156,3},{5802,52156,3},{5798,52148,3},{5802,52138,3}, {5807,52134,3},{5807,52131,3},{5810,52129,3},{5812,52133,3},{5818,52128,3}, {5825,52131,3},{5828,52129,3},{5828,52134,3},{5832,52138,3},{5840,52134,3}, {5843,52141,3},{5850,52144,3},{5852,52148,3},{5850,52156,3},{5852,52159,3}, {5852,52146,3},{5850,52138,3},{5843,52138,3},{5842,52129,3},{5840,52131,3}, {5833,52129,3},{5830,52121,3},{5825,52126,3},{5820,52121,3},{5822,52111,3}, {5835,52084,3},{5835,52073,3},{5838,52071,3},{5838,52059,3},{5848,52058,3}, {5857,52048,3},{5867,52038,3},{5865,52044,3},{5867,52044,3},{5870,52043,3}, {5882,52041,3},{5882,52036,3},{5878,52036,3},{5878,52033,3},{5873,52034,3}, {5883,52021,3},{5888,52023,3},{5893,52019,3},{5900,52019,3},{5902,52016,3}, {5920,52008,3},{5927,51999,3},{5943,52004,3},{5947,52003,3},{5945,51999,3}, {5930,51996,3},{5932,51981,3},{5928,51991,3},{5923,51993,3},{5920,52001,3}, {5908,52006,3},{5912,51998,3},{5920,51994,3},{5922,51988,3},{5923,51981,3}, {5918,51989,3},{5913,51991,3},{5908,51998,3},{5897,51998,3},{5892,52001,3}, {5892,52004,3},{5887,52003,3},{5878,52013,3},{5872,52011,3},{5863,52019,3}, {5862,52014,3},{5860,52014,3},{5853,52019,3},{5833,52031,3},{5830,52031,3}, {5830,52028,3},{5823,52028,3},{5820,52021,3},{5825,52003,3},{5848,51988,3}, {5847,51984,3},{5842,51989,3},{5837,51989,3},{5842,51973,3},{5840,51966,3}, {5838,51944,3},{5847,51949,3},{5845,51941,3},{5847,51944,3},{5847,51951,3}, {5848,51949,3},{5855,51953,3},{5858,51948,3},{5860,51954,3},{5860,51949,3}, {5862,51946,3},{5870,51943,3},{5870,51938,3},{5872,51939,3},{5882,51929,3}, {5887,51943,3},{5885,51944,3},{5888,51961,3},{5890,51956,3},{5892,51939,3}, {5890,51943,3},{5888,51941,3},{5885,51933,3},{5888,51931,3},{5892,51933,3}, {5895,51926,3},{5902,51926,3},{5903,51921,3},{5895,51923,3},{5892,51914,3}, {5893,51926,3},{5890,51924,3},{5887,51926,3},{5877,51923,3},{5875,51919,3}, {5875,51911,3},{5880,51898,3},{5882,51909,3},{5883,51889,3},{5890,51886,3}, {5897,51888,3},{5897,51883,3},{5892,51879,3},{5897,51873,3},{5902,51866,3}, {5897,51869,3},{5890,51876,3},{5890,51874,3},{5888,51871,3},{5892,51866,3}, {5897,51851,3},{5907,51831,3},{5905,51829,3},{5897,51844,3},{5893,51846,3}, {5892,51844,3},{5892,51833,3},{5882,51823,3},{5890,51838,3},{5888,51851,3}, {5883,51856,3},{5887,51858,3},{5887,51863,3},{5883,51871,3},{5883,51879,3}, {5882,51883,3},{5880,51888,3},{5877,51884,3},{5878,51883,3},{5877,51883,3}, {5880,51878,3},{5882,51873,3},{5882,51871,3},{5878,51878,3},{5877,51876,3}, {5873,51884,3},{5870,51884,3},{5867,51893,3},{5872,51886,3},{5875,51888,3}, {5873,51889,3},{5872,51898,3},{5868,51903,3},{5862,51889,3},{5862,51884,3}, {5858,51888,3},{5862,51896,3},{5860,51903,3},{5862,51903,3},{5865,51903,3}, {5862,51908,3},{5867,51906,3},{5862,51918,3},{5860,51916,3},{5858,51918,3}, {5855,51924,3},{5855,51921,3},{5852,51919,3},{5852,51914,3},{5850,51919,3}, {5852,51923,3},{5852,51928,3},{5838,51933,3},{5833,51928,3},{5830,51911,3}, {5832,51908,3},{5833,51908,3},{5835,51909,3},{5840,51904,3},{5837,51901,3}, {5840,51891,3},{5843,51886,3},{5838,51888,3},{5837,51884,3},{5837,51881,3}, {5833,51888,3},{5838,51889,3},{5837,51898,3},{5833,51901,3},{5830,51899,3}, {5832,51893,3},{5830,51888,3},{5837,51876,3},{5833,51871,3},{5827,51881,3}, {5823,51878,3},{5822,51871,3},{5825,51864,3},{5827,51866,3},{5828,51869,3}, {5830,51868,3},{5830,51863,3},{5830,51861,3},{5830,51858,3},{5833,51859,3}, {5832,51854,3},{5832,51851,3},{5835,51853,3},{5838,51849,3},{5833,51846,3}, {5838,51843,3},{5840,51836,3},{5838,51828,3},{5840,51824,3},{5858,51781,3}, {5860,51774,3},{5862,51774,3},{5862,51779,3},{5867,51793,3},{5868,51788,3}, {5865,51778,3},{5862,51771,3},{5867,51768,3},{5880,51743,3},{5885,51744,3}, {5890,51739,3},{5903,51716,3},{5907,51706,3},{5907,51708,3},{5908,51694,3}, {5910,51694,3},{5908,51698,3},{5910,51696,3},{5912,51676,3},{5913,51676,3}, {5912,51686,3},{5915,51686,3},{5918,51693,3},{5918,51691,3},{5917,51671,3}, {5913,51673,3},{5920,51661,3},{5927,51641,3},{5932,51616,3},{5930,51624,3}, {5933,51619,3},{5933,51613,3},{5938,51614,3},{5937,51608,3},{5935,51608,3}, {5938,51593,3},{5942,51586,3},{5938,51598,3},{5940,51604,3},{5942,51598,3}, {5940,51591,3},{5943,51584,3},{5943,51579,3},{5953,51551,3},{5955,51553,3}, {5955,51563,3},{5958,51568,3},{5957,51573,3},{5962,51579,3},{5962,51578,3}, {5965,51578,3},{5970,51589,3},{5980,51578,3},{5988,51574,3},{5998,51588,3}, {5993,51599,3},{5985,51606,3},{5982,51603,3},{5972,51603,3},{5962,51609,3}, {5960,51604,3},{5960,51603,3},{5957,51608,3},{5957,51611,3},{5962,51614,3}, {5967,51609,3},{5973,51609,3},{5973,51606,3},{5978,51611,3},{5983,51608,3}, {5985,51623,3},{5983,51636,3},{5980,51639,3},{5980,51646,3},{5982,51641,3}, {5985,51634,3},{5987,51613,3},{6000,51596,3},{6002,51588,3},{6005,51586,3}, {6005,51583,3},{6000,51578,3},{5995,51578,3},{5993,51568,3},{5982,51553,3}, {5972,51513,3},{5970,51498,3},{5975,51449,3},{5988,51391,3},{5992,51391,3}, {5992,51396,3},{5992,51393,3},{5988,51393,3},{5993,51408,3},{5998,51409,3}, {6002,51409,3},{6007,51406,3},{6007,51408,3},{6010,51399,3},{6013,51398,3}, {6012,51388,3},{6008,51391,3},{6003,51398,3},{5997,51374,3},{5995,51364,3}, {6002,51343,3},{6012,51264,3},{6007,51219,3},{6003,51169,3},{5998,51148,3}, {6003,51134,3},{6003,51111,3},{6003,51136,3},{6005,51136,3},{6015,51116,3}, {6015,51111,3},{6020,51118,3},{6018,51111,3},{6020,51099,3},{6018,51099,3}, {6017,51093,3},{6018,51088,3},{6020,51089,3},{6022,51086,3},{6018,51081,3}, {6020,51073,3},{6022,51068,3},{6022,51073,3},{6028,51066,3},{6030,51058,3}, {6028,51056,3},{6030,51053,3},{6030,51048,3},{6028,51046,3},{6030,51043,3}, {6035,51048,3},{6038,51044,3},{6040,51046,3},{6040,51053,3},{6043,51051,3}, {6045,51056,3},{6050,51058,3},{6047,51051,3},{6047,51048,3},{6048,51048,3}, {6052,51053,3},{6060,51056,3},{6063,51061,3},{6067,51059,3},{6067,51073,3}, {6072,51074,3},{6068,51061,3},{6065,51058,3},{6062,51051,3},{6055,51046,3}, {6052,51034,3},{6043,51026,3},{6037,51013,3},{6035,51006,3},{6035,50998,3}, {6040,50988,3},{6042,50986,3},{6047,50971,3},{6045,50948,3},{6047,50943,3}, {6048,50946,3},{6048,50949,3},{6055,50963,3},{6065,50974,3},{6067,50973,3}, {6062,50951,3},{6062,50948,3},{6065,50956,3},{6067,50948,3},{6070,50951,3}, {6063,50941,3},{6063,50936,3},{6070,50944,3},{6065,50928,3},{6063,50916,3}, {6063,50911,3},{6065,50909,3},{6072,50928,3},{6075,50931,3},{6075,50934,3}, {6080,50933,3},{6075,50924,3},{6075,50918,3},{6077,50919,3},{6075,50913,3}, {6072,50909,3},{6073,50904,3},{6077,50908,3},{6077,50906,3},{6070,50894,3}, {6068,50888,3},{6070,50886,3},{6070,50871,3},{6075,50868,3},{6073,50873,3}, {6077,50876,3},{6075,50879,3},{6075,50888,3},{6077,50883,3},{6077,50893,3}, {6082,50916,3},{6083,50911,3},{6085,50916,3},{6083,50928,3},{6090,50913,3}, {6083,50906,3},{6082,50896,3},{6085,50896,3},{6082,50888,3},{6082,50881,3}, {6085,50879,3},{6082,50874,3},{6087,50874,3},{6088,50873,3},{6087,50869,3}, {6088,50866,3},{6097,50861,3},{6095,50864,3},{6093,50868,3},{6095,50878,3}, {6097,50866,3},{6103,50869,3},{6103,50879,3},{6105,50873,3},{6107,50873,3}, {6108,50876,3},{6108,50913,3},{6113,50906,3},{6113,50894,3},{6113,50876,3}, {6093,50839,3},{6095,50833,3},{6098,50838,3},{6100,50838,3},{6100,50834,3}, {6098,50834,3},{6097,50831,3},{6100,50833,3},{6100,50824,3},{6098,50821,3}, {6095,50821,3},{6097,50816,3},{6102,50816,3},{6098,50811,3},{6100,50809,3}, {6098,50808,3},{6093,50811,3},{6093,50804,3},{6092,50806,3},{6088,50799,3}, {6092,50798,3},{6090,50791,3},{6098,50798,3},{6095,50791,3},{6098,50791,3}, {6102,50793,3},{6098,50788,3},{6092,50786,3},{6090,50783,3},{6092,50781,3}, {6105,50783,3},{6107,50788,3},{6113,50783,3},{6115,50784,3},{6115,50779,3}, {6113,50778,3},{6110,50781,3},{6102,50776,3},{6102,50769,3},{6100,50774,3}, {6097,50773,3},{6095,50776,3},{6087,50776,3},{6085,50771,3},{6087,50768,3}, {6090,50769,3},{6088,50763,3},{6095,50766,3},{6092,50758,3},{6088,50759,3}, {6087,50754,3},{6087,50759,3},{6083,50761,3},{6082,50758,3},{6083,50751,3}, {6085,50746,3},{6090,50743,3},{6095,50731,3},{6102,50741,3},{6107,50744,3}, {6108,50743,3},{6117,50758,3},{6120,50766,3},{6123,50766,3},{6122,50759,3}, {6128,50764,3},{6112,50741,3},{6105,50736,3},{6102,50731,3},{6105,50724,3}, {6112,50721,3},{6108,50716,3},{6108,50709,3},{6107,50706,3},{6105,50696,3}, {6105,50701,3},{6102,50698,3},{6100,50691,3},{6098,50693,3},{6098,50696,3}, {6107,50711,3},{6107,50721,3},{6095,50711,3},{6097,50703,3},{6092,50709,3}, {6083,50704,3},{6085,50696,3},{6083,50703,3},{6082,50703,3},{6082,50696,3}, {6083,50691,3},{6083,50676,3},{6078,50666,3},{6080,50679,3},{6080,50681,3}, {6080,50691,3},{6075,50673,3},{6068,50666,3},{6067,50669,3},{6070,50676,3}, {6073,50678,3},{6077,50684,3},{6077,50699,3},{6077,50698,3},{6075,50701,3}, {6073,50696,3},{6068,50696,3},{6067,50691,3},{6063,50694,3},{6067,50701,3}, {6070,50701,3},{6075,50708,3},{6077,50713,3},{6072,50711,3},{6063,50716,3}, {6053,50703,3},{6055,50701,3},{6057,50701,3},{6057,50694,3},{6058,50693,3}, {6058,50688,3},{6050,50671,3},{6045,50668,3},{6053,50691,3},{6052,50699,3}, {6050,50698,3},{6050,50703,3},{6048,50701,3},{6048,50709,3},{6045,50709,3}, {6045,50713,3},{6048,50714,3},{6052,50713,3},{6055,50718,3},{6050,50718,3}, {6052,50721,3},{6058,50723,3},{6060,50728,3},{6057,50733,3},{6053,50729,3}, {6055,50734,3},{6053,50736,3},{6052,50739,3},{6047,50736,3},{6045,50738,3}, {6047,50743,3},{6043,50741,3},{6043,50736,3},{6042,50738,3},{6040,50731,3}, {6042,50728,3},{6038,50728,3},{6042,50718,3},{6037,50724,3},{6035,50723,3}, {6035,50716,3},{6037,50714,3},{6038,50713,3},{6035,50709,3},{6035,50714,3}, {6032,50714,3},{6025,50704,3},{6028,50699,3},{6028,50698,3},{6023,50701,3}, {6018,50693,3},{6020,50703,3},{6025,50714,3},{6023,50718,3},{6022,50709,3}, {6020,50718,3},{6015,50716,3},{6023,50723,3},{6022,50726,3},{6015,50721,3}, {6012,50709,3},{6013,50706,3},{6017,50708,3},{6017,50704,3},{6015,50703,3}, {6013,50699,3},{6007,50698,3},{6003,50693,3},{6002,50696,3},{5995,50693,3}, {5995,50689,3},{6003,50683,3},{5998,50683,3},{5998,50679,3},{5995,50681,3}, {5992,50671,3},{5995,50669,3},{5995,50656,3},{5993,50649,3},{5997,50643,3}, {5995,50634,3},{5998,50634,3},{5997,50629,3},{5998,50624,3},{6005,50633,3}, {6005,50623,3},{6000,50616,3},{5995,50614,3},{5992,50611,3},{5990,50613,3}, {5987,50609,3},{5997,50606,3},{5998,50603,3},{6002,50606,3},{6002,50601,3}, {6012,50599,3},{6012,50594,3},{6003,50593,3},{6000,50598,3},{5998,50593,3}, {5993,50589,3},{5993,50583,3},{5992,50581,3},{5982,50573,3},{5978,50578,3}, {5978,50583,3},{5975,50581,3},{5973,50584,3},{5972,50583,3},{5975,50573,3}, {5977,50576,3},{5978,50571,3},{5980,50573,3},{5982,50569,3},{5985,50571,3}, {5990,50571,3},{5997,50564,3},{5995,50563,3},{5988,50563,3},{5983,50559,3}, {5985,50553,3},{5985,50549,3},{5978,50559,3},{5965,50561,3},{5968,50556,3}, {5972,50554,3},{5973,50549,3},{5977,50544,3},{5980,50533,3},{5977,50533,3}, {5973,50539,3},{5972,50544,3},{5970,50543,3},{5963,50534,3},{5967,50531,3}, {5970,50523,3},{5967,50526,3},{5962,50526,3},{5958,50528,3},{5957,50521,3}, {5958,50518,3},{5953,50518,3},{5953,50511,3},{5950,50511,3},{5950,50508,3}, {5948,50506,3},{5947,50498,3},{5948,50501,3},{5950,50498,3},{5950,50503,3}, {5955,50501,3},{5958,50508,3},{5960,50506,3},{5972,50514,3},{5957,50496,3}, {5947,50489,3},{5947,50486,3},{5950,50486,3},{5952,50481,3},{5960,50486,3}, {5955,50471,3},{5948,50479,3},{5947,50473,3},{5943,50476,3},{5942,50471,3}, {5942,50464,3},{5937,50458,3},{5932,50444,3},{5925,50448,3},{5923,50439,3}, {5920,50441,3},{5923,50436,3},{5927,50436,3},{5930,50431,3},{5928,50429,3}, {5932,50411,3},{5932,50409,3},{5930,50409,3},{5928,50418,3},{5925,50426,3}, {5922,50424,3},{5922,50406,3},{5927,50396,3},{5923,50384,3},{5922,50389,3}, {5920,50388,3},{5920,50376,3},{5918,50374,3},{5918,50379,3},{5917,50378,3}, {5917,50364,3},{5917,50361,3},{5922,50361,3},{5922,50351,3},{5922,50346,3}, {5925,50348,3},{5928,50338,3},{5932,50338,3},{5935,50343,3},{5935,50354,3}, {5940,50346,3},{5945,50359,3},{5945,50364,3},{5948,50368,3},{5947,50389,3}, {5943,50396,3},{5943,50399,3},{5947,50398,3},{5950,50391,3},{5953,50391,3}, {5957,50401,3},{5957,50409,3},{5960,50411,3},{5960,50419,3},{5965,50416,3}, {5967,50423,3},{5972,50426,3},{5978,50436,3},{5980,50433,3},{5977,50424,3}, {5965,50391,3},{5963,50389,3},{5960,50394,3},{5963,50388,3},{5968,50361,3}, {5973,50351,3},{5977,50348,3},{6002,50364,3},{6020,50393,3},{6027,50398,3}, {6037,50398,3},{6038,50406,3},{6053,50409,3},{6058,50403,3},{6072,50394,3}, {6075,50406,3},{6077,50411,3},{6078,50431,3},{6097,50469,3},{6103,50496,3}, {6103,50503,3},{6098,50506,3},{6093,50513,3},{6090,50531,3},{6097,50553,3}, {6097,50564,3},{6093,50573,3},{6093,50584,3},{6090,50594,3},{6088,50619,3}, {6085,50633,3},{6088,50631,3},{6095,50619,3},{6093,50603,3},{6095,50598,3}, {6098,50586,3},{6098,50574,3},{6115,50529,3},{6120,50533,3},{6120,50541,3}, {6123,50546,3},{6132,50553,3},{6133,50558,3},{6133,50563,3},{6140,50568,3}, {6148,50609,3},{6150,50611,3},{6150,50594,3},{6152,50594,3},{6150,50583,3}, {6147,50566,3},{6138,50548,3},{6127,50543,3},{6123,50536,3},{6125,50519,3}, {6125,50509,3},{6128,50506,3},{6125,50503,3},{6125,50488,3},{6128,50481,3}, {6137,50483,3},{6137,50479,3},{6128,50478,3},{6128,50473,3},{6130,50471,3}, {6128,50469,3},{6125,50464,3},{6120,50448,3},{6122,50441,3},{6117,50429,3}, {6105,50419,3},{6103,50408,3},{6102,50401,3},{6102,50386,3},{6093,50369,3}, {6092,50361,3},{6083,50356,3},{6072,50364,3},{6072,50358,3},{6075,50351,3}, {6073,50349,3},{6072,50344,3},{6067,50331,3},{6060,50326,3},{6055,50313,3}, {6050,50304,3},{6043,50303,3},{6040,50311,3},{6035,50298,3},{6028,50294,3}, {6028,50286,3},{6023,50279,3},{6022,50274,3},{6025,50268,3},{6023,50261,3}, {6023,50251,3},{6025,50253,3},{6025,50258,3},{6027,50253,3},{6025,50248,3}, {6030,50248,3},{6030,50244,3},{6030,50233,3},{6028,50226,3},{6027,50226,3}, {6028,50231,3},{6028,50241,3},{6023,50244,3},{6017,50268,3},{6013,50268,3}, {6008,50278,3},{6005,50278,3},{5997,50268,3},{5992,50266,3},{5988,50253,3}, {5988,50229,3},{5987,50213,3},{5982,50208,3},{5983,50216,3},{5982,50223,3}, {5983,50231,3},{5983,50236,3},{5982,50236,3},{5980,50236,3},{5970,50231,3}, {5968,50223,3},{5965,50216,3},{5965,50211,3},{5968,50208,3},{5967,50204,3}, {5963,50204,3},{5965,50193,3},{5967,50198,3},{5972,50199,3},{5972,50204,3}, {5975,50194,3},{5978,50191,3},{5972,50193,3},{5965,50188,3},{5963,50181,3}, {5965,50179,3},{5968,50176,3},{5970,50178,3},{5968,50173,3},{5965,50173,3}, {5963,50166,3},{5963,50173,3},{5960,50179,3},{5955,50178,3},{5955,50164,3}, {5953,50158,3},{5955,50154,3},{5955,50149,3},{5952,50159,3},{5947,50164,3}, {5943,50163,3},{5942,50156,3},{5943,50148,3},{5938,50141,3},{5940,50138,3}, {5938,50134,3},{5938,50121,3},{5935,50128,3},{5937,50138,3},{5937,50141,3}, {5930,50124,3},{5925,50121,3},{5920,50123,3},{5920,50118,3},{5917,50118,3}, {5917,50113,3},{5915,50114,3},{5915,50109,3},{5912,50111,3},{5912,50119,3}, {5907,50116,3},{5903,50118,3},{5903,50123,3},{5908,50133,3},{5905,50149,3}, {5907,50154,3},{5907,50159,3},{5907,50164,3},{5900,50178,3},{5898,50181,3}, {5900,50189,3},{5898,50189,3},{5898,50194,3},{5893,50199,3},{5893,50203,3}, {5890,50203,3},{5888,50208,3},{5887,50199,3},{5887,50211,3},{5883,50208,3}, {5885,50203,3},{5885,50199,3},{5872,50191,3},{5868,50179,3},{5863,50176,3}, {5862,50159,3},{5862,50146,3},{5860,50144,3},{5858,50148,3},{5853,50143,3}, {5853,50139,3},{5852,50144,3},{5850,50143,3},{5848,50139,3},{5848,50126,3}, {5840,50129,3},{5840,50136,3},{5838,50136,3},{5835,50129,3},{5835,50116,3}, {5833,50118,3},{5832,50108,3},{5828,50099,3},{5825,50101,3},{5827,50109,3}, {5830,50109,3},{5830,50114,3},{5832,50118,3},{5828,50124,3},{5827,50121,3}, {5825,50111,3},{5825,50118,3},{5822,50121,3},{5818,50116,3},{5818,50106,3}, {5813,50114,3},{5813,50109,3},{5813,50106,3},{5815,50103,3},{5813,50101,3}, {5808,50103,3},{5808,50099,3},{5815,50091,3},{5818,50091,3},{5820,50088,3}, {5808,50089,3},{5812,50078,3},{5810,50076,3},{5808,50081,3},{5807,50083,3}, {5802,50078,3},{5803,50073,3},{5807,50069,3},{5805,50064,3},{5802,50063,3}, {5800,50058,3},{5803,50048,3},{5802,50033,3},{5795,50031,3},{5795,50024,3}, {5788,50029,3},{5787,50018,3},{5787,50016,3},{5788,50011,3},{5783,50014,3}, {5783,50009,3},{5783,50003,3},{5780,50006,3},{5780,50001,3},{5775,50006,3}, {5773,50006,3},{5772,49998,3},{5773,49994,3},{5780,49978,3},{5778,49974,3}, {5773,49973,3},{5772,49973,3},{5768,49978,3},{5767,49978,3},{5763,49964,3}, {5765,49959,3},{5762,49963,3},{5755,49963,3},{5755,49956,3},{5758,49954,3}, {5755,49949,3},{5755,49946,3},{5753,49944,3},{5757,49934,3},{5757,49933,3}, {5753,49934,3},{5753,49926,3},{5752,49926,3},{5752,49933,3},{5743,49933,3}, {5743,49924,3},{5748,49918,3},{5743,49913,3},{5743,49909,3},{5740,49901,3}, {5733,49889,3},{5732,49881,3},{5727,49881,3},{5732,49899,3},{5728,49903,3}, {5725,49901,3},{5722,49891,3},{5722,49894,3},{5718,49901,3},{5715,49899,3}, {5712,49889,3},{5710,49888,3},{5708,49891,3},{5710,49888,3},{5708,49886,3}, {5705,49886,3},{5705,49878,3},{5707,49873,3},{5705,49874,3},{5705,49871,3}, {5698,49881,3},{5700,49868,3},{5703,49864,3},{5705,49859,3},{5703,49856,3}, {5700,49859,3},{5697,49858,3},{5692,49856,3},{5690,49853,3},{5695,49848,3}, {5697,49839,3},{5690,49841,3},{5690,49834,3},{5682,49828,3},{5685,49818,3}, {5682,49821,3},{5678,49821,3},{5677,49816,3},{5680,49806,3},{5685,49799,3}, {5685,49793,3},{5682,49789,3},{5680,49794,3},{5677,49796,3},{5677,49791,3}, {5675,49789,3},{5677,49786,3},{5672,49779,3},{5672,49776,3},{5668,49781,3}, {5667,49788,3},{5663,49791,3},{5662,49789,3},{5660,49769,3},{5662,49766,3}, {5667,49761,3},{5668,49758,3},{5665,49751,3},{5665,49744,3},{5662,49741,3}, {5660,49738,3},{5660,49734,3},{5657,49731,3},{5657,49724,3},{5653,49724,3}, {5657,49744,3},{5655,49751,3},{5652,49753,3},{5647,49748,3},{5652,49723,3}, {5650,49719,3},{5648,49721,3},{5648,49724,3},{5647,49723,3},{5647,49709,3}, {5648,49703,3},{5647,49699,3},{5645,49694,3},{5640,49689,3},{5637,49684,3}, {5635,49686,3},{5632,49676,3},{5628,49671,3},{5627,49671,3},{5625,49681,3}, {5627,49681,3},{5630,49679,3},{5633,49691,3},{5630,49693,3},{5632,49696,3}, {5630,49696,3},{5632,49703,3},{5630,49706,3},{5630,49713,3},{5628,49716,3}, {5627,49714,3},{5623,49701,3},{5623,49696,3},{5620,49694,3},{5622,49699,3}, {5620,49704,3},{5617,49703,3},{5623,49718,3},{5623,49724,3},{5622,49719,3}, {5618,49716,3},{5618,49709,3},{5617,49709,3},{5615,49701,3},{5612,49701,3}, {5613,49698,3},{5617,49698,3},{5617,49694,3},{5613,49694,3},{5613,49693,3}, {5608,49696,3},{5607,49694,3},{5610,49691,3},{5610,49686,3},{5607,49689,3}, {5605,49688,3},{5603,49689,3},{5605,49689,3},{5603,49694,3},{5600,49693,3}, {5603,49686,3},{5603,49684,3},{5598,49686,3},{5602,49679,3},{5605,49684,3}, {5603,49678,3},{5605,49676,3},{5607,49679,3},{5610,49676,3},{5612,49681,3}, {5613,49681,3},{5615,49684,3},{5617,49686,3},{5617,49689,3},{5620,49686,3}, {5618,49673,3},{5617,49679,3},{5612,49671,3},{5612,49669,3},{5615,49669,3}, {5615,49666,3},{5610,49666,3},{5610,49669,3},{5607,49669,3},{5603,49663,3}, {5602,49671,3},{5598,49671,3},{5598,49668,3},{5597,49669,3},{5595,49668,3}, {5595,49661,3},{5597,49663,3},{5600,49663,3},{5602,49659,3},{5598,49656,3}, {5602,49653,3},{5600,49649,3},{5592,49643,3},{5593,49639,3},{5592,49634,3}, {5588,49634,3},{5592,49628,3},{5590,49619,3},{5588,49618,3},{5588,49611,3}, {5585,49604,3},{5588,49601,3},{5585,49596,3},{5580,49594,3},{5578,49593,3}, {5583,49588,3},{5590,49589,3},{5588,49581,3},{5587,49581,3},{5585,49583,3}, {5577,49586,3},{5572,49581,3},{5565,49581,3},{5562,49574,3},{5557,49574,3}, {5557,49563,3},{5560,49566,3},{5560,49561,3},{5562,49568,3},{5560,49571,3}, {5563,49574,3},{5567,49566,3},{5570,49573,3},{5573,49568,3},{5582,49574,3}, {5585,49563,3},{5585,49551,3},{5578,49551,3},{5578,49549,3},{5578,49544,3}, {5582,49539,3},{5578,49539,3},{5578,49533,3},{5577,49531,3},{5572,49534,3}, {5572,49526,3},{5570,49529,3},{5570,49524,3},{5573,49521,3},{5567,49523,3}, {5567,49521,3},{5565,49511,3},{5563,49508,3},{5565,49493,3},{5563,49493,3}, {5560,49499,3},{5557,49491,3},{5550,49489,3},{5548,49484,3},{5548,49481,3}, {5555,49478,3},{5560,49476,3},{5555,49469,3},{5553,49459,3},{5552,49461,3}, {5552,49469,3},{5545,49468,3},{5545,49458,3},{5545,49454,3},{5547,49451,3}, {5552,49453,3},{5552,49448,3},{5550,49441,3},{5547,49438,3},{5543,49433,3}, {5535,49411,3},{5535,49404,3},{5538,49401,3},{5537,49386,3},{5548,49388,3}, {5558,49399,3},{5553,49408,3},{5553,49423,3},{5555,49411,3},{5558,49406,3}, {5563,49394,3},{5562,49379,3},{5560,49374,3},{5558,49374,3},{5552,49364,3}, {5548,49368,3},{5543,49364,3},{5540,49366,3},{5527,49349,3},{5522,49346,3}, {5522,49341,3},{5522,49344,3},{5523,49343,3},{5523,49331,3},{5518,49334,3}, {5517,49333,3},{5515,49338,3},{5512,49341,3},{5510,49339,3},{5507,49329,3}, {5510,49323,3},{5517,49326,3},{5515,49319,3},{5510,49314,3},{5505,49316,3}, {5502,49309,3},{5507,49304,3},{5503,49301,3},{5503,49291,3},{5510,49283,3}, {5512,49288,3},{5508,49294,3},{5510,49299,3},{5517,49288,3},{5525,49283,3}, {5527,49276,3},{5528,49281,3},{5530,49279,3},{5530,49274,3},{5528,49268,3}, {5522,49264,3},{5517,49276,3},{5513,49276,3},{5513,49273,3},{5507,49271,3}, {5508,49274,3},{5507,49274,3},{5495,49279,3},{5500,49271,3},{5502,49274,3}, {5505,49271,3},{5493,49261,3},{5493,49249,3},{5495,49246,3},{5495,49244,3}, {5500,49238,3},{5500,49244,3},{5502,49244,3},{5503,49239,3},{5508,49234,3}, {5510,49226,3},{5510,49219,3},{5512,49224,3},{5513,49219,3},{5512,49216,3}, {5508,49218,3},{5510,49213,3},{5507,49213,3},{5507,49216,3},{5503,49214,3}, {5502,49216,3},{5497,49229,3},{5495,49231,3},{5490,49223,3},{5483,49213,3}, {5483,49208,3},{5480,49203,3},{5482,49199,3},{5485,49198,3},{5488,49203,3}, {5490,49204,3},{5492,49209,3},{5492,49206,3},{5492,49201,3},{5495,49203,3}, {5495,49211,3},{5495,49213,3},{5500,49208,3},{5512,49204,3},{5518,49224,3}, {5525,49234,3},{5523,49236,3},{5520,49231,3},{5517,49229,3},{5518,49248,3}, {5523,49253,3},{5525,49249,3},{5523,49248,3},{5527,49248,3},{5527,49253,3}, {5530,49258,3},{5532,49264,3},{5538,49273,3},{5535,49273,3},{5535,49281,3}, {5537,49288,3},{5545,49286,3},{5543,49276,3},{5540,49274,3},{5543,49276,3}, {5547,49283,3},{5568,49311,3},{5572,49323,3},{5577,49328,3},{5580,49339,3}, {5588,49356,3},{5590,49368,3},{5602,49421,3},{5595,49399,3},{5595,49413,3}, {5595,49424,3},{5593,49429,3},{5595,49434,3},{5600,49448,3},{5597,49449,3}, {5595,49449,3},{5593,49449,3},{5593,49443,3},{5593,49438,3},{5590,49434,3}, {5587,49436,3},{5588,49443,3},{5582,49441,3},{5572,49456,3},{5575,49458,3}, {5573,49464,3},{5570,49468,3},{5573,49469,3},{5578,49461,3},{5588,49456,3}, {5585,49469,3},{5587,49486,3},{5583,49489,3},{5580,49489,3},{5582,49494,3}, {5578,49499,3},{5577,49511,3},{5582,49504,3},{5583,49513,3},{5585,49513,3}, {5590,49491,3},{5593,49484,3},{5593,49479,3},{5598,49483,3},{5598,49481,3}, {5598,49479,3},{5600,49479,3},{5610,49489,3},{5617,49491,3},{5628,49501,3}, {5633,49511,3},{5640,49521,3},{5647,49539,3},{5653,49553,3},{5665,49588,3}, {5660,49581,3},{5663,49594,3},{5668,49606,3},{5668,49614,3},{5670,49609,3}, {5673,49613,3},{5680,49633,3},{5690,49649,3},{5682,49634,3},{5680,49633,3}, {5678,49638,3},{5680,49638,3},{5683,49641,3},{5678,49649,3},{5678,49659,3}, {5678,49668,3},{5677,49673,3},{5683,49671,3},{5688,49666,3},{5700,49668,3}, {5708,49674,3},{5732,49708,3},{5737,49719,3},{5737,49731,3},{5738,49726,3}, {5748,49741,3},{5757,49763,3},{5757,49768,3},{5755,49766,3},{5752,49771,3}, {5747,49771,3},{5748,49773,3},{5748,49784,3},{5747,49784,3},{5747,49788,3}, {5750,49796,3},{5753,49794,3},{5757,49796,3},{5755,49791,3},{5750,49794,3}, {5750,49784,3},{5748,49779,3},{5750,49776,3},{5762,49776,3},{5763,49773,3}, {5762,49773,3},{5762,49766,3},{5765,49766,3},{5773,49764,3},{5787,49773,3}, {5808,49774,3},{5817,49783,3},{5817,49794,3},{5820,49796,3},{5820,49816,3}, {5817,49823,3},{5820,49819,3},{5822,49806,3},{5823,49803,3},{5822,49789,3}, {5827,49783,3},{5828,49783,3},{5830,49779,3},{5838,49781,3},{5850,49789,3}, {5855,49801,3},{5863,49814,3},{5870,49826,3},{5872,49834,3},{5873,49843,3}, {5872,49831,3},{5873,49829,3},{5877,49829,3},{5883,49836,3},{5887,49833,3}, {5890,49838,3},{5893,49838,3},{5900,49851,3},{5908,49851,3},{5915,49858,3}, {5910,49849,3},{5902,49848,3},{5898,49844,3},{5897,49833,3},{5890,49831,3}, {5887,49824,3},{5883,49801,3},{5863,49731,3},{5860,49718,3},{5865,49704,3}, {5872,49701,3},{5875,49698,3},{5880,49679,3},{5883,49679,3},{5885,49684,3}, {5887,49684,3},{5895,49686,3},{5897,49694,3},{5900,49691,3},{5898,49689,3}, {5900,49686,3},{5903,49699,3},{5900,49723,3},{5895,49729,3},{5892,49728,3}, {5887,49733,3},{5890,49736,3},{5892,49731,3},{5895,49733,3},{5903,49723,3}, {5908,49694,3},{5917,49683,3},{5913,49681,3},{5907,49691,3},{5903,49683,3}, {5892,49674,3},{5887,49663,3},{5888,49661,3},{5893,49663,3},{5893,49659,3}, {5897,49658,3},{5897,49663,3},{5900,49661,3},{5897,49654,3},{5892,49659,3}, {5882,49656,3},{5877,49658,3},{5873,49651,3},{5873,49648,3},{5877,49648,3}, {5878,49654,3},{5880,49654,3},{5880,49648,3},{5878,49651,3},{5877,49644,3}, {5872,49646,3},{5857,49656,3},{5857,49658,3},{5850,49659,3},{5850,49666,3}, {5843,49659,3},{5842,49654,3},{5842,49656,3},{5840,49648,3},{5843,49629,3}, {5845,49633,3},{5845,49628,3},{5848,49628,3},{5848,49624,3},{5872,49601,3}, {5880,49591,3},{5885,49581,3},{5883,49571,3},{5890,49576,3},{5895,49573,3}, {5893,49559,3},{5892,49561,3},{5888,49558,3},{5885,49559,3},{5885,49554,3}, {5880,49554,3},{5877,49544,3},{5888,49534,3},{5888,49528,3},{5887,49526,3}, {5887,49521,3},{5888,49521,3},{5892,49519,3},{5890,49511,3},{5892,49511,3}, {5895,49509,3},{5893,49508,3},{5895,49504,3},{5898,49506,3},{5898,49511,3}, {5907,49503,3},{5905,49496,3},{5892,49463,3},{5882,49453,3},{5887,49453,3}, {5888,49448,3},{5887,49439,3},{5880,49418,3},{5880,49409,3},{5882,49409,3}, {5882,49406,3},{5880,49404,3},{5878,49408,3},{5878,49414,3},{5877,49408,3}, {5872,49399,3},{5867,49398,3},{5868,49404,3},{5863,49383,3},{5860,49378,3}, {5860,49374,3},{5857,49366,3},{5855,49359,3},{5860,49364,3},{5862,49364,3}, {5865,49361,3},{5862,49359,3},{5858,49361,3},{5862,49358,3},{5863,49354,3}, {5863,49326,3},{5865,49319,3},{5867,49329,3},{5868,49331,3},{5868,49336,3}, {5867,49341,3},{5865,49343,3},{5865,49348,3},{5868,49353,3},{5872,49351,3}, {5875,49356,3},{5877,49366,3},{5880,49371,3},{5882,49366,3},{5880,49361,3}, {5878,49359,3},{5880,49359,3},{5887,49356,3},{5897,49358,3},{5903,49351,3}, {5905,49354,3},{5902,49354,3},{5903,49364,3},{5910,49379,3},{5912,49374,3}, {5913,49374,3},{5912,49366,3},{5910,49348,3},{5908,49348,3},{5907,49351,3}, {5907,49348,3},{5910,49341,3},{5915,49336,3},{5927,49331,3},{5930,49336,3}, {5927,49331,3},{5923,49334,3},{5925,49338,3},{5928,49339,3},{5938,49341,3}, {5938,49346,3},{5942,49349,3},{5942,49351,3},{5947,49356,3},{5947,49363,3}, {5950,49366,3},{5962,49349,3},{5970,49348,3},{5982,49336,3},{5988,49328,3}, {5995,49326,3},{6000,49318,3},{6007,49313,3},{6015,49316,3},{6020,49311,3}, {6020,49319,3},{6025,49321,3},{6023,49316,3},{6022,49318,3},{6022,49314,3}, {6022,49309,3},{6023,49308,3},{6022,49306,3},{6020,49308,3},{6018,49306,3}, {6017,49309,3},{6013,49304,3},{6018,49299,3},{6022,49303,3},{6030,49289,3}, {6033,49298,3},{6047,49306,3},{6052,49314,3},{6058,49314,3},{6063,49328,3}, {6065,49339,3},{6065,49343,3},{6068,49339,3},{6070,49348,3},{6070,49341,3}, {6065,49328,3},{6070,49326,3},{6073,49319,3},{6073,49318,3},{6072,49319,3}, {6068,49324,3},{6065,49324,3},{6062,49309,3},{6053,49306,3},{6047,49299,3}, {6043,49298,3},{6043,49293,3},{6038,49294,3},{6037,49291,3},{6038,49291,3}, {6038,49286,3},{6035,49286,3},{6033,49276,3},{6032,49279,3},{6030,49276,3}, {6028,49281,3},{6025,49281,3},{6027,49266,3},{6022,49286,3},{6018,49291,3}, {6012,49286,3},{6005,49289,3},{6000,49284,3},{5998,49274,3},{6000,49261,3}, {5997,49263,3},{5995,49258,3},{5985,49223,3},{5982,49199,3},{5980,49169,3}, {5982,49136,3},{5985,49121,3},{5995,49114,3},{5997,49116,3},{5997,49126,3}, {5998,49126,3},{5998,49123,3},{6000,49124,3},{6000,49121,3},{6008,49094,3}, {6015,49088,3},{6018,49088,3},{6027,49069,3},{6028,49071,3},{6030,49068,3}, {6033,49071,3},{6028,49061,3},{6033,49041,3},{6037,49033,3},{6043,49021,3}, {6047,49033,3},{6050,49036,3},{6052,49039,3},{6055,49038,3},{6055,49029,3}, {6050,49016,3},{6052,48998,3},{6055,48993,3},{6058,48998,3},{6058,49008,3}, {6062,49011,3},{6063,49018,3},{6065,49021,3},{6072,49038,3},{6078,49033,3}, {6083,49048,3},{6087,49048,3},{6090,49041,3},{6092,49041,3},{6093,49043,3}, {6087,49053,3},{6090,49063,3},{6092,49071,3},{6090,49073,3},{6085,49066,3}, {6082,49071,3},{6082,49089,3},{6080,49094,3},{6078,49109,3},{6073,49109,3}, {6073,49114,3},{6068,49114,3},{6065,49104,3},{6062,49103,3},{6062,49098,3}, {6057,49093,3},{6055,49093,3},{6057,49098,3},{6065,49109,3},{6067,49123,3}, {6072,49126,3},{6077,49133,3},{6078,49141,3},{6077,49149,3},{6075,49156,3}, {6068,49153,3},{6067,49156,3},{6063,49153,3},{6058,49156,3},{6058,49169,3}, {6063,49183,3},{6068,49193,3},{6072,49193,3},{6075,49189,3},{6075,49194,3}, {6077,49194,3},{6080,49183,3},{6085,49163,3},{6085,49143,3},{6088,49158,3}, {6087,49163,3},{6087,49169,3},{6088,49181,3},{6090,49181,3},{6093,49161,3}, {6095,49161,3},{6097,49168,3},{6100,49168,3},{6098,49161,3},{6097,49156,3}, {6095,49156,3},{6092,49148,3},{6085,49141,3},{6087,49118,3},{6085,49108,3}, {6087,49096,3},{6085,49079,3},{6087,49076,3},{6090,49078,3},{6092,49074,3}, {6093,49064,3},{6092,49061,3},{6090,49056,3},{6092,49053,3},{6095,49051,3}, {6095,49046,3},{6095,49039,3},{6090,49029,3},{6093,49021,3},{6097,49016,3}, {6100,49021,3},{6102,49039,3},{6102,49041,3},{6108,49043,3},{6107,49049,3}, {6108,49051,3},{6112,49059,3},{6112,49036,3},{6107,49036,3},{6105,49033,3}, {6108,49024,3},{6110,49024,3},{6112,49019,3},{6113,49018,3},{6115,49024,3}, {6118,49024,3},{6122,49029,3},{6125,49023,3},{6123,49024,3},{6122,49028,3}, {6120,49021,3},{6115,49021,3},{6115,49011,3},{6120,48999,3},{6125,49006,3}, {6127,49016,3},{6132,49016,3},{6133,49011,3},{6137,49021,3},{6140,49018,3}, {6142,49021,3},{6143,49033,3},{6148,49038,3},{6150,49051,3},{6152,49053,3}, {6155,49061,3},{6158,49061,3},{6160,49066,3},{6163,49064,3},{6162,49059,3}, {6160,49061,3},{6158,49056,3},{6152,49048,3},{6150,49034,3},{6147,49034,3}, {6147,49028,3},{6143,49028,3},{6143,49019,3},{6140,49016,3},{6137,49016,3}, {6133,49008,3},{6132,49009,3},{6132,49014,3},{6128,49013,3},{6127,49014,3}, {6127,49006,3},{6120,48996,3},{6115,49003,3},{6113,48999,3},{6108,49001,3}, {6107,48998,3},{6108,48984,3},{6112,48976,3},{6123,48971,3},{6125,48976,3}, {6127,48973,3},{6128,48974,3},{6130,48963,3},{6130,48953,3},{6133,48949,3}, {6140,48944,3},{6143,48948,3},{6145,48958,3},{6148,48959,3},{6153,48954,3}, {6155,48946,3},{6153,48928,3},{6152,48928,3},{6150,48931,3},{6148,48926,3}, {6153,48921,3},{6158,48916,3},{6172,48921,3},{6163,48923,3},{6168,48959,3}, {6168,48951,3},{6173,48936,3},{6182,48926,3},{6183,48938,3},{6182,48943,3}, {6183,48954,3},{6182,48956,3},{6185,48961,3},{6185,48978,3},{6192,48966,3}, {6200,48961,3},{6212,48966,3},{6218,48979,3},{6235,48999,3},{6237,49003,3}, {6243,49009,3},{6252,49023,3},{6253,49033,3},{6253,49049,3},{6252,49049,3}, {6247,49051,3},{6247,49061,3},{6243,49068,3},{6243,49076,3},{6243,49071,3}, {6237,49061,3},{6238,49066,3},{6242,49073,3},{6243,49079,3},{6245,49078,3}, {6247,49068,3},{6252,49073,3},{6250,49069,3},{6248,49066,3},{6250,49061,3}, {6248,49053,3},{6253,49058,3},{6257,49051,3},{6263,49071,3},{6275,49088,3}, {6275,49084,3},{6263,49063,3},{6262,49056,3},{6275,49049,3},{6278,49049,3}, {6280,49059,3},{6282,49051,3},{6283,49048,3},{6293,49054,3},{6302,49068,3}, {6303,49079,3},{6302,49086,3},{6302,49089,3},{6303,49091,3},{6302,49098,3}, {6300,49104,3},{6305,49103,3},{6307,49099,3},{6308,49084,3},{6313,49078,3}, {6322,49094,3},{6327,49121,3},{6325,49138,3},{6322,49153,3},{6322,49164,3}, {6315,49173,3},{6312,49169,3},{6312,49174,3},{6313,49178,3},{6312,49183,3}, {6310,49174,3},{6305,49169,3},{6302,49156,3},{6298,49156,3},{6302,49161,3}, {6305,49174,3},{6310,49183,3},{6310,49193,3},{6302,49203,3},{6303,49206,3}, {6307,49229,3},{6315,49251,3},{6320,49254,3},{6323,49268,3},{6333,49286,3}, {6342,49294,3},{6348,49309,3},{6353,49304,3},{6352,49328,3},{6348,49334,3}, {6343,49319,3},{6343,49321,3},{6345,49333,3},{6343,49338,3},{6345,49339,3}, {6345,49354,3},{6347,49369,3},{6345,49379,3},{6347,49388,3},{6345,49391,3}, {6348,49409,3},{6352,49421,3},{6362,49434,3},{6363,49439,3},{6373,49456,3}, {6378,49459,3},{6387,49458,3},{6407,49443,3},{6422,49441,3},{6437,49416,3}, {6438,49418,3},{6440,49411,3},{6442,49418,3},{6442,49401,3},{6443,49394,3}, {6442,49386,3},{6438,49383,3},{6442,49383,3},{6445,49389,3},{6450,49389,3}, {6453,49396,3},{6450,49424,3},{6452,49434,3},{6452,49436,3},{6453,49433,3}, {6453,49428,3},{6455,49428,3},{6455,49439,3},{6462,49454,3},{6472,49458,3}, {6482,49448,3},{6487,49431,3},{6492,49421,3},{6492,49429,3},{6492,49433,3}, {6493,49438,3},{6493,49431,3},{6492,49428,3},{6493,49416,3},{6490,49414,3}, {6487,49404,3},{6478,49399,3},{6475,49381,3},{6477,49379,3},{6478,49369,3}, {6482,49364,3},{6482,49356,3},{6478,49364,3},{6477,49353,3},{6473,49343,3}, {6472,49343,3},{6475,49356,3},{6472,49348,3},{6470,49334,3},{6472,49324,3}, {6470,49329,3},{6468,49318,3},{6462,49311,3},{6452,49278,3},{6448,49274,3}, {6438,49273,3},{6437,49264,3},{6433,49258,3},{6442,49254,3},{6445,49249,3}, {6448,49249,3},{6450,49253,3},{6455,49241,3},{6455,49231,3},{6458,49233,3}, {6462,49223,3},{6465,49221,3},{6465,49214,3},{6460,49198,3},{6455,49208,3}, {6455,49216,3},{6452,49221,3},{6452,49233,3},{6448,49231,3},{6447,49224,3}, {6442,49223,3},{6440,49218,3},{6448,49208,3},{6450,49201,3},{6455,49188,3}, {6458,49154,3},{6457,49136,3},{6458,49113,3},{6457,49098,3},{6458,49109,3}, {6458,49101,3},{6448,49063,3},{6452,49069,3},{6452,49054,3},{6448,49048,3}, {6453,49043,3},{6452,49043,3},{6450,49039,3},{6447,49046,3},{6445,49044,3}, {6447,49059,3},{6445,49049,3},{6445,49034,3},{6452,48988,3},{6457,48924,3}, {6463,48901,3},{6470,48891,3},{6473,48888,3},{6478,48888,3},{6482,48891,3}, {6482,48898,3},{6483,48898,3},{6483,48894,3},{6488,48898,3},{6492,48894,3}, {6495,48884,3},{6493,48884,3},{6490,48893,3},{6495,48883,3},{6500,48866,3}, {6505,48864,3},{6508,48853,3},{6513,48844,3},{6518,48839,3},{6523,48841,3}, {6528,48848,3},{6527,48851,3},{6520,48843,3},{6515,48844,3},{6512,48861,3}, {6513,48881,3},{6518,48889,3},{6523,48888,3},{6527,48899,3},{6523,48924,3}, {6523,48931,3},{6525,48929,3},{6530,48916,3},{6532,48904,3},{6530,48899,3}, {6530,48898,3},{6537,48873,3},{6538,48843,3},{6535,48853,3},{6533,48871,3}, {6535,48853,3},{6538,48829,3},{6542,48791,3},{6545,48776,3},{6552,48766,3}, {6557,48744,3},{6558,48729,3},{6565,48723,3},{6570,48728,3},{6575,48746,3}, {6577,48751,3},{6573,48749,3},{6568,48733,3},{6565,48729,3},{6563,48733,3}, {6568,48751,3},{6572,48754,3},{6572,48776,3},{6573,48784,3},{6577,48786,3}, {6577,48781,3},{6580,48779,3},{6580,48791,3},{6583,48784,3},{6590,48808,3}, {6585,48818,3},{6588,48831,3},{6593,48849,3},{6597,48839,3},{6602,48853,3}, {6598,48849,3},{6598,48856,3},{6600,48854,3},{6607,48866,3},{6618,48909,3}, {6617,48923,3},{6615,48928,3},{6613,48921,3},{6612,48928,3},{6612,48948,3}, {6610,48956,3},{6610,48964,3},{6615,48981,3},{6615,48986,3},{6617,48984,3}, {6622,48964,3},{6622,48948,3},{6625,48949,3},{6632,48959,3},{6640,48991,3}, {6645,49019,3},{6643,49028,3},{6640,49033,3},{6647,49041,3},{6652,49063,3}, {6655,49064,3},{6660,49108,3},{6660,49143,3},{6660,49161,3},{6657,49174,3}, {6658,49151,3},{6657,49143,3},{6657,49158,3},{6652,49161,3},{6648,49159,3}, {6643,49151,3},{6640,49146,3},{6628,49151,3},{6623,49141,3},{6622,49128,3}, {6620,49126,3},{6620,49118,3},{6618,49118,3},{6620,49138,3},{6618,49138,3}, {6618,49141,3},{6622,49143,3},{6618,49146,3},{6612,49153,3},{6607,49171,3}, {6608,49186,3},{6608,49199,3},{6607,49211,3},{6607,49226,3},{6610,49241,3}, {6610,49261,3},{6607,49268,3},{6600,49269,3},{6603,49271,3},{6607,49288,3}, {6603,49299,3},{6608,49319,3},{6607,49333,3},{6603,49344,3},{6602,49339,3}, {6602,49346,3},{6598,49344,3},{6598,49356,3},{6598,49358,3},{6600,49353,3}, {6602,49353,3},{6605,49358,3},{6607,49363,3},{6608,49363,3},{6608,49358,3}, {6615,49369,3},{6625,49379,3},{6627,49388,3},{6627,49401,3},{6625,49399,3}, {6623,49403,3},{6622,49409,3},{6623,49428,3},{6613,49426,3},{6613,49418,3}, {6612,49421,3},{6613,49431,3},{6620,49436,3},{6625,49436,3},{6633,49423,3}, {6640,49381,3},{6640,49363,3},{6638,49356,3},{6637,49344,3},{6632,49344,3}, {6632,49348,3},{6628,49351,3},{6627,49344,3},{6633,49339,3},{6643,49349,3}, {6650,49349,3},{6653,49346,3},{6662,49328,3},{6672,49314,3},{6673,49286,3}, {6680,49283,3},{6687,49273,3},{6690,49273,3},{6692,49284,3},{6695,49288,3}, {6692,49294,3},{6695,49303,3},{6695,49304,3},{6682,49323,3},{6678,49334,3}, {6670,49329,3},{6665,49328,3},{6653,49348,3},{6645,49376,3},{6648,49401,3}, {6653,49416,3},{6650,49421,3},{6648,49428,3},{6643,49438,3},{6637,49458,3}, {6637,49481,3},{6638,49486,3},{6640,49513,3},{6652,49514,3},{6660,49504,3}, {6663,49504,3},{6665,49511,3},{6665,49501,3},{6662,49499,3},{6663,49488,3}, {6658,49481,3},{6660,49466,3},{6665,49458,3},{6667,49451,3},{6665,49419,3}, {6655,49409,3},{6653,49386,3},{6657,49379,3},{6658,49381,3},{6662,49366,3}, {6673,49346,3},{6677,49349,3},{6680,49348,3},{6683,49356,3},{6690,49356,3}, {6692,49364,3},{6695,49363,3},{6697,49371,3},{6695,49386,3},{6698,49386,3}, {6702,49368,3},{6700,49364,3},{6705,49351,3},{6703,49326,3},{6700,49313,3}, {6705,49311,3},{6707,49306,3},{6700,49306,3},{6698,49291,3},{6702,49289,3}, {6715,49303,3},{6717,49301,3},{6715,49293,3},{6713,49299,3},{6702,49281,3}, {6702,49271,3},{6705,49261,3},{6703,49253,3},{6705,49241,3},{6703,49241,3}, {6700,49251,3},{6700,49248,3},{6705,49221,3},{6712,49163,3},{6713,49159,3}, {6737,49153,3},{6752,49138,3},{6762,49124,3},{6772,49088,3},{6775,49086,3}, {6777,49076,3},{6783,49066,3},{6783,49059,3},{6780,49064,3},{6803,48999,3}, {6808,48978,3},{6810,48954,3},{6813,48944,3},{6822,48929,3},{6830,48908,3}, {6832,48893,3},{6835,48853,3},{6842,48891,3},{6837,48861,3},{6835,48874,3}, {6837,48883,3},{6840,48891,3},{6838,48898,3},{6842,48894,3},{6840,48904,3}, {6843,48899,3},{6847,48904,3},{6852,48906,3},{6857,48913,3},{6875,48918,3}, {6887,48913,3},{6888,48914,3},{6885,48963,3},{6888,49028,3},{6892,49073,3}, {6893,49104,3},{6900,49143,3},{6908,49166,3},{6913,49178,3},{6932,49209,3}, {6942,49218,3},{6942,49221,3},{6930,49209,3},{6935,49221,3},{6938,49224,3}, {6948,49224,3},{6952,49229,3},{6957,49229,3},{6960,49221,3},{6962,49233,3}, {6965,49229,3},{6965,49233,3},{6967,49229,3},{6968,49231,3},{6967,49238,3}, {6968,49241,3},{6970,49243,3},{6972,49241,3},{6973,49233,3},{6978,49241,3}, {6997,49284,3},{7005,49288,3},{7005,49299,3},{7010,49301,3},{7015,49314,3}, {7030,49338,3},{7032,49348,3},{7030,49353,3},{7028,49353,3},{7027,49364,3}, {7025,49366,3},{7025,49346,3},{7025,49348,3},{7023,49361,3},{7022,49351,3}, {7018,49351,3},{7017,49346,3},{7020,49336,3},{7018,49331,3},{7015,49324,3}, {7017,49351,3},{7018,49356,3},{7020,49363,3},{7020,49366,3},{7022,49363,3}, {7025,49374,3},{7025,49406,3},{7032,49433,3},{7030,49433,3},{7028,49441,3}, {7032,49438,3},{7038,49461,3},{7043,49476,3},{7038,49454,3},{7048,49489,3}, {7060,49521,3},{7058,49519,3},{7057,49524,3},{7060,49543,3},{7055,49541,3}, {7053,49544,3},{7052,49541,3},{7052,49533,3},{7048,49529,3},{7047,49516,3}, {7048,49544,3},{7032,49523,3},{7037,49539,3},{7033,49544,3},{7032,49544,3}, {7020,49559,3},{7038,49548,3},{7050,49554,3},{7047,49566,3},{7052,49586,3}, {7050,49594,3},{7053,49608,3},{7052,49593,3},{7052,49579,3},{7050,49564,3}, {7053,49556,3},{7063,49543,3},{7063,49533,3},{7060,49524,3},{7063,49526,3}, {7070,49544,3},{7070,49554,3},{7072,49551,3},{7080,49569,3},{7088,49618,3}, {7085,49599,3},{7083,49621,3},{7082,49621,3},{7080,49604,3},{7078,49591,3}, {7075,49599,3},{7077,49606,3},{7073,49604,3},{7068,49614,3},{7075,49608,3}, {7077,49611,3},{7075,49621,3},{7077,49636,3},{7078,49636,3},{7082,49628,3}, {7078,49666,3},{7082,49698,3},{7082,49703,3},{7083,49686,3},{7085,49686,3}, {7082,49713,3},{7083,49731,3},{7085,49749,3},{7095,49784,3},{7105,49809,3}, {7130,49854,3},{7140,49889,3},{7137,49898,3},{7140,49889,3},{7137,49884,3}, {7135,49876,3},{7130,49883,3},{7128,49893,3},{7127,49891,3},{7127,49913,3}, {7125,49924,3},{7122,49926,3},{7122,49931,3},{7117,49924,3},{7118,49936,3}, {7122,49941,3},{7120,49944,3},{7118,49971,3},{7117,49976,3},{7112,49981,3}, {7108,49981,3},{7103,49964,3},{7100,49963,3},{7097,49948,3},{7097,49926,3}, {7095,49934,3},{7093,49934,3},{7092,49918,3},{7092,49931,3},{7090,49928,3}, {7090,49929,3},{7090,49938,3},{7085,49943,3},{7082,49938,3},{7075,49939,3}, {7077,49946,3},{7082,49944,3},{7083,49946,3},{7083,49964,3},{7083,49971,3}, {7087,49971,3},{7083,49978,3},{7087,49983,3},{7093,49983,3},{7100,49998,3}, {7103,50008,3},{7100,50011,3},{7098,50016,3},{7103,50018,3},{7108,50008,3}, {7112,50019,3},{7108,50026,3},{7113,50024,3},{7115,50028,3},{7113,50033,3}, {7105,50033,3},{7102,50028,3},{7102,50034,3},{7112,50034,3},{7112,50039,3}, {7108,50046,3},{7110,50054,3},{7102,50076,3},{7092,50071,3},{7088,50056,3}, {7088,50068,3},{7088,50069,3},{7083,50074,3},{7082,50104,3},{7080,50111,3}, {7078,50111,3},{7078,50116,3},{7083,50133,3},{7088,50144,3},{7090,50198,3}, {7093,50216,3},{7090,50228,3},{7092,50233,3},{7090,50241,3},{7087,50244,3}, {7085,50249,3},{7088,50254,3},{7082,50266,3},{7085,50269,3},{7088,50261,3}, {7088,50271,3},{7087,50296,3},{7083,50311,3},{7082,50314,3},{7073,50293,3}, {7072,50294,3},{7070,50286,3},{7065,50286,3},{7060,50298,3},{7060,50326,3}, {7057,50328,3},{7058,50286,3},{7057,50279,3},{7057,50273,3},{7055,50274,3}, {7055,50284,3},{7055,50293,3},{7055,50311,3},{7055,50326,3},{7057,50334,3}, {7055,50363,3},{7052,50356,3},{7052,50349,3},{7050,50359,3},{7047,50339,3}, {7045,50339,3},{7043,50388,3},{7042,50403,3},{7037,50414,3},{7038,50419,3}, {7042,50414,3},{7045,50418,3},{7045,50438,3},{7047,50443,3},{7047,50449,3}, {7048,50453,3},{7047,50463,3},{7050,50458,3},{7050,50484,3},{7047,50488,3}, {7048,50494,3},{7048,50499,3},{7042,50496,3},{7045,50511,3},{7043,50524,3}, {7052,50548,3},{7048,50556,3},{7052,50566,3},{7052,50586,3},{7050,50589,3}, {7050,50588,3},{7048,50598,3},{7048,50601,3},{7050,50601,3},{7048,50619,3}, {7047,50631,3},{7042,50639,3},{7043,50644,3},{7042,50654,3},{7040,50676,3}, {7037,50684,3},{7032,50686,3},{7032,50699,3},{7037,50714,3},{7035,50726,3}, {7030,50731,3},{7032,50736,3},{7030,50738,3},{7032,50749,3},{7030,50756,3}, {7023,50756,3},{7018,50796,3},{7020,50809,3},{7017,50819,3},{7017,50838,3}, {7018,50843,3},{7017,50846,3},{7018,50848,3},{7020,50883,3},{7018,50908,3}, {7015,50928,3},{7015,50941,3},{7017,50943,3},{7013,50948,3},{7017,50948,3}, {7017,50953,3},{7008,50976,3},{7007,50976,3},{7010,50981,3},{7005,50989,3}, {7003,51003,3},{7003,51014,3},{7000,51006,3},{6998,51033,3},{6997,51039,3}, {6998,51048,3},{7000,51048,3},{6997,51059,3},{6997,51073,3},{7003,51096,3}, {7003,51119,3},{7007,51124,3},{7005,51129,3},{6998,51129,3},{7005,51134,3}, {7008,51131,3},{7007,51143,3},{7008,51148,3},{7008,51153,3},{7010,51161,3}, {7008,51168,3},{7008,51174,3},{7010,51179,3},{7012,51179,3},{7010,51184,3}, {7012,51201,3},{7005,51208,3},{7012,51208,3},{7008,51223,3},{7008,51234,3}, {7007,51238,3},{7008,51246,3},{7002,51273,3},{7000,51278,3},{6997,51276,3}, {6998,51281,3},{6997,51288,3},{6997,51284,3},{6995,51284,3},{6993,51294,3}, {6992,51294,3},{6992,51299,3},{6988,51299,3},{6988,51304,3},{6985,51309,3}, {6985,51326,3},{6980,51334,3},{6978,51339,3},{6980,51341,3},{6982,51344,3}, {6980,51348,3},{6978,51363,3},{6972,51383,3},{6963,51398,3},{6963,51411,3}, {6967,51414,3},{6968,51406,3},{6965,51436,3},{6962,51436,3},{6957,51436,3}, {6950,51436,3},{6943,51436,3},{6937,51436,3},{6930,51436,3},{6925,51436,3}, {6920,51436,3},{6913,51436,3},{6907,51436,3},{6900,51436,3},{6892,51436,3}, {6887,51436,3},{6880,51436,3},{6873,51436,3},{6867,51436,3},{6860,51436,3}, {6853,51436,3},{6847,51436,3},{6840,51436,3},{6833,51436,3},{6827,51436,3}, {6820,51436,3},{6813,51436,3},{6807,51436,3},{6800,51436,3},{6793,51436,3}, {6787,51436,3},{6780,51436,3},{6772,51436,3},{6767,51436,3},{6760,51436,3}, {6753,51436,3},{6747,51436,3},{6742,51436,3},{6737,51436,3},{6730,51436,3}, {6723,51436,3},{6717,51436,3},{6710,51436,3},{6705,51436,3},{6700,51436,3}, {6693,51436,3},{6687,51436,3},{6680,51436,3},{6673,51436,3},{6667,51436,3}, {6660,51436,3},{6653,51436,3},{6647,51436,3},{6642,51436,3},{6637,51436,3}, {6630,51436,3},{6623,51436,3},{6617,51436,3},{6610,51436,3},{6603,51436,3}, {6595,51436,3},{6590,51436,3},{6583,51436,3},{6577,51436,3},{6570,51436,3}, {6565,51436,3},{6558,51436,3},{6553,51436,3},{6547,51436,3},{6540,51436,3}, {6533,51436,3},{6527,51436,3},{6520,51436,3},{6513,51436,3},{6507,51436,3}, {6500,51436,3},{6493,51436,3},{6487,51436,3},{6480,51436,3},{6473,51436,3}, {6467,51436,3},{6460,51436,3},{6455,51436,3},{6448,51436,3},{6443,51436,3}, {6437,51436,3},{6430,51436,3},{6423,51436,3},{6417,51436,3},{6412,51436,3}, {6407,51436,3},{6400,51436,3},{6393,51436,3},{6387,51436,3},{6380,51436,3}, {6373,51436,3},{6367,51436,3},{6362,51436,3},{6355,51436,3},{6348,51436,3}, {6343,51436,3},{6337,51436,3},{6330,51436,3},{6323,51436,3},{6317,51436,3}, {6310,51436,3},{6305,51436,3},{6298,51436,3},{6293,51436,3},{6287,51436,3}, {6280,51436,3},{6273,51436,3},{6267,51436,3},{6260,51436,3},{6253,51436,3}, {6247,51436,3},{6240,51436,3},{6233,51436,3},{6228,51436,3},{6223,51436,3}, {6217,51436,3},{6210,51436,3},{6203,51436,3},{6197,51436,3},{6190,51436,3}, {6183,51436,3},{6177,51436,3},{6172,51436,3},{6165,51436,3},{6160,51436,3}, {6153,51436,3},{6148,51436,3},{6143,51436,3},{6137,51436,3},{6128,51436,3}, {6123,51436,3},{6117,51436,3},{6110,51436,3},{6103,51436,3},{6098,51436,3}, {6093,51436,3},{6087,51436,3},{6080,51436,3},{6073,51436,3},{6067,51436,3}, {6062,51436,3},{6055,51436,3},{6050,51436,3},{6043,51436,3},{6037,51436,3}, {6030,51436,3},{6022,51484,3},{6032,51491,3},{6018,51538,3},{6033,51568,3}, {6035,51629,3},{6032,51629,3},{6008,51618,3},{6000,51631,3},{5990,51668,3}, {5977,51674,3},{5923,51778,3},{5900,51788,3},{5893,51786,3},{5890,51791,3}, {5898,51806,3},{5915,51853,3},{5917,51878,3},{5928,51889,3},{5947,51889,3}, {5945,51899,3},{5947,51906,3},{5953,51913,3},{5957,51913,3},{5960,51901,3}, {5963,51916,3},{5967,51941,3},{5980,51989,3},{5973,52003,3},{5970,52013,3}, {5963,52018,3},{5962,52026,3},{5957,52034,3},{5947,52034,3},{5945,52029,3}, {5943,52028,3},{5938,52038,3},{5935,52034,3},{5928,52041,3},{5925,52068,3}, {5920,52069,3},{5913,52079,3},{5913,52089,3},{5905,52098,3},{5898,52096,3}, {5897,52104,3},{5893,52103,3},{5885,52111,3},{5873,52153,3},{5860,52168,3}, {5842,52199,3},{5838,52191,3},{5828,52199,3},{5813,52223,3},{5800,52231,3}, {5787,52248,3},{5752,52279,3},{5738,52298,3},{5720,52313,3},{5708,52303,3}, {5703,52333,3},{5687,52326,3},{5680,52349,3},{5675,52348,3},{5668,52353,3}, {5660,52354,3},{5660,52381,3},{5640,52431,3},{5637,52459,3},{5625,52473,3}, {5623,52489,3},{5613,52494,3},{5612,52508,3},{5608,52513,3},{5612,52528,3}, {5603,52534,3},{5592,52536,3},{5895,65268,129},{5892,65266,1},{5892,65259,1}, {5888,65253,1},{5890,65249,1},{5888,65244,1},{5897,65239,1},{5893,65228,1}, {5893,65229,1},{5893,65224,1},{5892,65224,1},{5892,65216,1},{5897,65213,1}, {5900,65216,1},{5903,65214,1},{5902,65211,1},{5900,65213,1},{5902,65208,1}, {5898,65211,1},{5895,65206,1},{5897,65201,1},{5902,65199,1},{5905,65203,1}, {5912,65201,1},{5913,65204,1},{5915,65214,1},{5912,65226,1},{5912,65228,1}, {5910,65231,1},{5910,65229,1},{5907,65236,1},{5903,65234,1},{5905,65229,1}, {5900,65223,1},{5898,65229,1},{5900,65231,1},{5902,65234,1},{7097,64689,129}, {7097,64674,1},{7082,64638,1},{7082,64628,1},{7087,64624,1},{7087,64631,1}, {7092,64643,1},{7093,64654,1},{7097,64663,1},{7102,64684,1},{7113,64703,1}, {3700,63016,129},{3698,63016,1},{3695,63019,1},{3693,63034,1},{3697,63034,1}, {3700,63033,1},{3702,63028,1},{3700,63016,1},{3790,62951,129},{3785,62949,1}, {3783,62951,1},{3775,62963,1},{3773,62968,1},{3775,62974,1},{3770,62986,1}, {3772,62999,1},{3773,63008,1},{3775,63019,1},{3782,63023,1},{3785,63021,1}, {3787,63018,1},{3787,63003,1},{3785,62999,1},{3783,62991,1},{3785,62986,1}, {3783,62981,1},{3785,62966,1},{3788,62966,1},{3790,62963,1},{3792,62958,1}, {3790,62951,1},{3872,62798,129},{3868,62801,1},{3863,62813,1},{3865,62831,1}, {3867,62831,1},{3870,62834,1},{3872,62833,1},{3873,62833,1},{3877,62829,1}, {3878,62823,1},{3880,62808,1},{3878,62799,1},{3877,62798,1},{3872,62798,1}, {3853,62681,129},{3845,62683,1},{3840,62689,1},{3840,62708,1},{3837,62711,1}, {3840,62716,1},{3838,62726,1},{3840,62733,1},{3843,62731,1},{3845,62729,1}, {3847,62716,1},{3850,62711,1},{3855,62696,1},{3855,62686,1},{3853,62681,1}, {3863,62664,129},{3860,62659,1},{3860,62651,1},{3857,62653,1},{3857,62658,1}, {3852,62661,1},{3852,62674,1},{3853,62673,1},{3855,62673,1},{3855,62676,1}, {3860,62674,1},{3863,62664,1},{2367,58006,129},{2368,58003,1},{2367,58003,1}, {2362,58001,1},{2365,58004,1},{2362,58003,1},{2362,58006,1},{2357,58004,1}, {2358,58008,1},{2348,58011,1},{2347,58014,1},{2343,58013,1},{2343,58016,1}, {2340,58016,1},{2337,58021,1},{2335,58019,1},{2335,58023,1},{2327,58026,1}, {2323,58023,1},{2320,58023,1},{2312,58029,1},{2312,58026,1},{2313,58021,1}, {2317,58018,1},{2317,58021,1},{2318,58019,1},{2320,58016,1},{2317,58013,1}, {2310,58026,1},{2307,58039,1},{2300,58043,1},{2288,58048,1},{2288,58049,1}, {2285,58051,1},{2287,58053,1},{2300,58051,1},{2303,58046,1},{2308,58044,1}, {2310,58039,1},{2310,58034,1},{2315,58029,1},{2333,58026,1},{2345,58018,1}, {2353,58016,1},{2358,58009,1},{2363,58009,1},{2367,58006,1},{2465,57973,129}, {2470,57964,1},{2470,57963,1},{2467,57961,1},{2458,57971,1},{2452,57971,1}, {2452,57978,1},{2437,57984,1},{2428,57989,1},{2428,57994,1},{2425,57996,1}, {2420,57994,1},{2417,57984,1},{2415,57984,1},{2413,57986,1},{2412,57989,1}, {2415,57993,1},{2417,58001,1},{2415,58008,1},{2422,58004,1},{2427,57999,1}, {2432,57996,1},{2437,57988,1},{2455,57976,1},{2465,57973,1},{2428,57766,129}, {2430,57768,1},{2428,57769,1},{2427,57771,1},{2425,57773,1},{2423,57773,1}, {2418,57766,1},{2417,57761,1},{2415,57763,1},{2413,57761,1},{2412,57766,1}, {2405,57764,1},{2403,57763,1},{2403,57766,1},{2410,57768,1},{2413,57771,1}, {2420,57773,1},{2422,57774,1},{2413,57781,1},{2403,57783,1},{2400,57781,1}, {2398,57783,1},{2395,57783,1},{2392,57776,1},{2390,57776,1},{2393,57781,1}, {2392,57784,1},{2382,57783,1},{2382,57779,1},{2380,57781,1},{2375,57781,1}, {2373,57776,1},{2375,57771,1},{2375,57769,1},{2373,57771,1},{2372,57769,1}, {2373,57768,1},{2375,57759,1},{2375,57761,1},{2378,57761,1},{2377,57768,1}, {2378,57769,1},{2382,57776,1},{2385,57779,1},{2383,57774,1},{2378,57766,1}, {2378,57763,1},{2382,57763,1},{2382,57759,1},{2385,57769,1},{2388,57771,1}, {2387,57768,1},{2385,57756,1},{2393,57753,1},{2398,57754,1},{2398,57753,1}, {2402,57753,1},{2405,57749,1},{2407,57749,1},{2410,57743,1},{2410,57746,1}, {2415,57744,1},{2415,57749,1},{2417,57751,1},{2420,57753,1},{2422,57758,1}, {2425,57759,1},{2428,57766,1},{2520,57716,129},{2518,57723,1},{2515,57726,1}, {2518,57731,1},{2515,57738,1},{2510,57736,1},{2507,57739,1},{2500,57738,1}, {2500,57741,1},{2497,57743,1},{2485,57748,1},{2478,57753,1},{2472,57763,1}, {2463,57763,1},{2460,57761,1},{2452,57764,1},{2447,57764,1},{2445,57761,1}, {2445,57756,1},{2442,57753,1},{2442,57751,1},{2437,57749,1},{2433,57743,1}, {2435,57739,1},{2430,57734,1},{2428,57736,1},{2427,57733,1},{2428,57731,1}, {2437,57728,1},{2440,57723,1},{2450,57723,1},{2445,57716,1},{2450,57706,1}, {2453,57699,1},{2462,57693,1},{2465,57698,1},{2467,57698,1},{2467,57703,1}, {2472,57704,1},{2470,57706,1},{2465,57708,1},{2460,57703,1},{2458,57703,1}, {2460,57709,1},{2463,57709,1},{2462,57711,1},{2457,57709,1},{2457,57711,1}, {2457,57714,1},{2460,57713,1},{2460,57716,1},{2462,57716,1},{2463,57714,1}, {2473,57709,1},{2467,57709,1},{2472,57706,1},{2478,57708,1},{2482,57713,1}, {2485,57713,1},{2487,57716,1},{2492,57718,1},{2495,57718,1},{2498,57719,1}, {2503,57721,1},{2517,57714,1},{2520,57716,1},{2557,57863,129},{2555,57868,1}, {2548,57868,1},{2550,57869,1},{2548,57871,1},{2547,57873,1},{2537,57888,1}, {2533,57896,1},{2535,57901,1},{2530,57904,1},{2522,57913,1},{2513,57924,1}, {2505,57924,1},{2500,57923,1},{2497,57921,1},{2490,57923,1},{2485,57923,1}, {2475,57918,1},{2465,57919,1},{2465,57918,1},{2468,57914,1},{2475,57913,1}, {2478,57904,1},{2482,57903,1},{2480,57914,1},{2482,57914,1},{2485,57918,1}, {2488,57919,1},{2488,57918,1},{2487,57916,1},{2488,57914,1},{2497,57916,1}, {2502,57921,1},{2508,57921,1},{2513,57919,1},{2515,57918,1},{2518,57911,1}, {2532,57901,1},{2535,57884,1},{2543,57874,1},{2543,57864,1},{2543,57861,1}, {2542,57858,1},{2547,57861,1},{2557,57863,1},{2690,57741,129},{2692,57746,1}, {2693,57753,1},{2690,57769,1},{2692,57776,1},{2690,57783,1},{2668,57806,1}, {2668,57811,1},{2667,57806,1},{2662,57809,1},{2660,57818,1},{2652,57831,1}, {2648,57833,1},{2647,57829,1},{2642,57831,1},{2638,57834,1},{2633,57833,1}, {2630,57836,1},{2628,57831,1},{2632,57831,1},{2630,57828,1},{2623,57819,1}, {2613,57818,1},{2593,57818,1},{2588,57816,1},{2588,57811,1},{2598,57806,1}, {2600,57799,1},{2602,57796,1},{2603,57798,1},{2607,57803,1},{2608,57806,1}, {2613,57811,1},{2615,57814,1},{2620,57811,1},{2625,57813,1},{2628,57813,1}, {2632,57811,1},{2635,57814,1},{2642,57813,1},{2643,57813,1},{2645,57816,1}, {2650,57818,1},{2652,57821,1},{2655,57821,1},{2658,57814,1},{2660,57801,1}, {2668,57799,1},{2668,57793,1},{2675,57793,1},{2687,57783,1},{2687,57769,1}, {2688,57764,1},{2688,57759,1},{2690,57758,1},{2692,57753,1},{2688,57741,1}, {2690,57739,1},{2690,57741,1},{2668,57639,129},{2665,57648,1},{2662,57649,1}, {2662,57653,1},{2658,57656,1},{2658,57666,1},{2662,57671,1},{2668,57676,1}, {2670,57676,1},{2672,57673,1},{2675,57676,1},{2680,57678,1},{2678,57681,1}, {2673,57683,1},{2673,57686,1},{2668,57701,1},{2670,57704,1},{2672,57708,1}, {2672,57721,1},{2670,57724,1},{2673,57733,1},{2672,57738,1},{2677,57744,1}, {2672,57744,1},{2667,57746,1},{2663,57744,1},{2667,57734,1},{2663,57721,1}, {2662,57706,1},{2657,57686,1},{2648,57666,1},{2650,57661,1},{2655,57653,1}, {2668,57638,1},{2670,57638,1},{2668,57639,1},{2103,58166,129},{2103,58169,1}, {2105,58171,1},{2108,58171,1},{2110,58168,1},{2112,58173,1},{2113,58179,1}, {2118,58183,1},{2120,58194,1},{2123,58196,1},{2117,58203,1},{2113,58209,1}, {2118,58221,1},{2127,58228,1},{2132,58229,1},{2133,58234,1},{2132,58236,1}, {2117,58234,1},{2097,58221,1},{2097,58208,1},{2093,58204,1},{2095,58206,1}, {2092,58191,1},{2095,58176,1},{2092,58169,1},{2093,58168,1},{2097,58168,1}, {2102,58164,1},{2103,58166,1},{1777,59049,129},{1777,59053,1},{1777,59054,1}, {1780,59058,1},{1775,59066,1},{1777,59071,1},{1777,59078,1},{1775,59079,1}, {1775,59076,1},{1772,59069,1},{1770,59063,1},{1768,59053,1},{1768,59049,1}, {1768,59046,1},{1772,59048,1},{1775,59048,1},{1777,59049,1},{1640,59384,129}, {1645,59383,1},{1652,59389,1},{1647,59396,1},{1642,59398,1},{1638,59396,1}, {1635,59399,1},{1632,59409,1},{1627,59416,1},{1625,59419,1},{1623,59418,1}, {1625,59413,1},{1623,59401,1},{1620,59391,1},{1622,59384,1},{1625,59381,1}, {1627,59381,1},{1633,59384,1},{1635,59386,1},{1638,59386,1},{1640,59384,1}, {1605,59361,129},{1627,59356,1},{1633,59358,1},{1637,59361,1},{1630,59376,1}, {1627,59376,1},{1628,59381,1},{1623,59383,1},{1623,59379,1},{1620,59378,1}, {1605,59381,1},{1598,59374,1},{1595,59368,1},{1598,59366,1},{1605,59361,1}, {1563,59389,129},{1563,59394,1},{1558,59398,1},{1558,59404,1},{1555,59406,1}, {1552,59409,1},{1545,59411,1},{1543,59409,1},{1532,59411,1},{1525,59409,1}, {1523,59408,1},{1525,59404,1},{1520,59399,1},{1520,59398,1},{1525,59398,1}, {1527,59399,1},{1530,59396,1},{1535,59396,1},{1548,59389,1},{1553,59388,1}, {1557,59389,1},{1558,59388,1},{1563,59389,1},{1487,59416,129},{1488,59419,1}, {1487,59426,1},{1480,59436,1},{1475,59441,1},{1477,59443,1},{1477,59448,1}, {1477,59446,1},{1473,59446,1},{1475,59444,1},{1473,59443,1},{1472,59443,1}, {1470,59444,1},{1468,59443,1},{1467,59443,1},{1467,59448,1},{1465,59446,1}, {1463,59446,1},{1462,59449,1},{1460,59449,1},{1457,59453,1},{1455,59453,1}, {1453,59453,1},{1452,59453,1},{1447,59454,1},{1440,59449,1},{1440,59448,1}, {1443,59448,1},{1443,59449,1},{1447,59449,1},{1445,59446,1},{1447,59444,1}, {1447,59433,1},{1445,59431,1},{1447,59428,1},{1450,59428,1},{1452,59426,1}, {1453,59428,1},{1457,59431,1},{1453,59434,1},{1455,59436,1},{1460,59434,1}, {1460,59431,1},{1460,59426,1},{1467,59421,1},{1470,59418,1},{1475,59418,1}, {1482,59413,1},{1487,59416,1},{2183,57229,129},{2190,57234,1},{2192,57239,1}, {2193,57236,1},{2195,57238,1},{2190,57261,1},{2188,57268,1},{2183,57266,1}, {2180,57268,1},{2180,57269,1},{2177,57273,1},{2177,57276,1},{2175,57276,1}, {2172,57278,1},{2167,57274,1},{2165,57279,1},{2160,57279,1},{2160,57281,1}, {2157,57281,1},{2148,57266,1},{2143,57246,1},{2145,57243,1},{2147,57229,1}, {2150,57226,1},{2153,57221,1},{2157,57219,1},{2163,57218,1},{2157,57226,1}, {2153,57229,1},{2155,57234,1},{2157,57236,1},{2157,57238,1},{2160,57239,1}, {2158,57241,1},{2157,57239,1},{2158,57243,1},{2160,57241,1},{2162,57238,1}, {2167,57234,1},{2178,57228,1},{2183,57229,1},{2253,57686,129},{2253,57689,1}, {2255,57693,1},{2257,57696,1},{2253,57703,1},{2253,57701,1},{2252,57701,1}, {2245,57708,1},{2243,57708,1},{2243,57706,1},{2245,57706,1},{2243,57701,1}, {2243,57696,1},{2242,57694,1},{2243,57694,1},{2243,57696,1},{2247,57696,1}, {2245,57689,1},{2245,57686,1},{2245,57683,1},{2247,57681,1},{2248,57679,1}, {2248,57671,1},{2250,57671,1},{2252,57671,1},{2253,57671,1},{2250,57668,1}, {2250,57666,1},{2253,57666,1},{2255,57669,1},{2255,57676,1},{2253,57679,1}, {2253,57686,1},{2240,57704,129},{2243,57709,1},{2243,57716,1},{2242,57718,1}, {2243,57719,1},{2240,57726,1},{2230,57729,1},{2228,57731,1},{2228,57734,1}, {2227,57734,1},{2227,57731,1},{2230,57726,1},{2230,57719,1},{2232,57718,1}, {2232,57716,1},{2233,57719,1},{2237,57716,1},{2237,57714,1},{2233,57714,1}, {2233,57713,1},{2237,57711,1},{2237,57714,1},{2238,57713,1},{2240,57709,1}, {2240,57708,1},{2240,57704,1},{2232,57734,129},{2230,57738,1},{2228,57739,1}, {2227,57739,1},{2227,57738,1},{2223,57738,1},{2223,57741,1},{2223,57743,1}, {2220,57744,1},{2222,57744,1},{2223,57746,1},{2222,57748,1},{2222,57749,1}, {2220,57749,1},{2218,57746,1},{2217,57749,1},{2217,57753,1},{2215,57753,1}, {2212,57751,1},{2210,57749,1},{2210,57748,1},{2210,57746,1},{2215,57744,1}, {2215,57741,1},{2212,57741,1},{2218,57733,1},{2220,57731,1},{2223,57736,1}, {2228,57736,1},{2232,57734,1},{2210,57741,129},{2210,57744,1},{2207,57749,1}, {2210,57756,1},{2207,57759,1},{2208,57763,1},{2207,57764,1},{2205,57768,1}, {2207,57769,1},{2203,57774,1},{2197,57771,1},{2193,57773,1},{2192,57768,1}, {2195,57768,1},{2195,57766,1},{2192,57766,1},{2190,57766,1},{2195,57763,1}, {2198,57754,1},{2203,57754,1},{2203,57751,1},{2200,57751,1},{2202,57751,1}, {2200,57748,1},{2205,57743,1},{2210,57741,1},{1082,59428,129},{1083,59434,1}, {1083,59438,1},{1083,59443,1},{1082,59446,1},{1075,59441,1},{1070,59436,1}, {1070,59434,1},{1067,59433,1},{1053,59434,1},{1052,59433,1},{1048,59431,1}, {1038,59434,1},{1035,59436,1},{1033,59439,1},{1030,59436,1},{1013,59436,1}, {1013,59433,1},{1008,59424,1},{1007,59416,1},{1008,59409,1},{1007,59403,1}, {1007,59381,1},{1005,59373,1},{1008,59368,1},{1007,59353,1},{1003,59344,1}, {1005,59344,1},{1007,59344,1},{1010,59353,1},{1013,59354,1},{1017,59366,1}, {1020,59373,1},{1025,59373,1},{1023,59383,1},{1025,59386,1},{1028,59391,1}, {1033,59389,1},{1042,59388,1},{1053,59391,1},{1060,59389,1},{1063,59388,1}, {1067,59381,1},{1068,59376,1},{1068,59371,1},{1072,59369,1},{1073,59376,1}, {1075,59388,1},{1077,59389,1},{1075,59391,1},{1077,59393,1},{1075,59393,1}, {1077,59394,1},{1077,59396,1},{1080,59399,1},{1080,59401,1},{1078,59416,1}, {1080,59419,1},{1082,59428,1},{1135,59483,129},{1127,59483,1},{1125,59478,1}, {1120,59473,1},{1120,59468,1},{1118,59464,1},{1118,59463,1},{1113,59456,1}, {1115,59451,1},{1118,59451,1},{1118,59454,1},{1130,59468,1},{1133,59478,1}, {1132,59479,1},{1133,59481,1},{1135,59483,1},{10,56386,129},{5,56386,1}, {0,56376,1},{65534,56376,1},{65531,56379,1},{65534,56388,1},{65533,56394,1}, {65521,56396,1},{65518,56398,1},{65516,56396,1},{65513,56394,1},{65511,56398,1}, {65506,56399,1},{65503,56403,1},{65498,56413,1},{65491,56413,1},{65481,56421,1}, {65481,56424,1},{65478,56428,1},{65474,56428,1},{65474,56424,1},{65473,56423,1}, {65471,56423,1},{65468,56421,1},{65469,56413,1},{65468,56404,1},{65466,56404,1}, {65458,56394,1},{65453,56388,1},{65449,56386,1},{65444,56388,1},{65441,56391,1}, {65436,56393,1},{65434,56394,1},{65433,56398,1},{65434,56404,1},{65433,56416,1}, {65434,56421,1},{65434,56428,1},{65439,56436,1},{65439,56443,1},{65444,56448,1}, {65444,56451,1},{65449,56449,1},{65458,56453,1},{65459,56456,1},{65461,56458,1}, {65466,56451,1},{65469,56451,1},{65471,56448,1},{65474,56444,1},{65474,56439,1}, {65479,56441,1},{65478,56438,1},{65484,56441,1},{65489,56439,1},{65493,56441,1}, {65501,56431,1},{65506,56423,1},{65508,56424,1},{65513,56419,1},{65521,56416,1}, {65534,56416,1},{2,56408,1},{5,56408,1},{8,56404,1},{13,56404,1},{15,56399,1}, {13,56398,1},{10,56393,1},{10,56386,1},{65508,56369,129},{65498,56371,1}, {65489,56374,1},{65489,56379,1},{65486,56386,1},{65489,56396,1},{65491,56396,1}, {65496,56396,1},{65503,56396,1},{65508,56394,1},{65511,56389,1},{65508,56379,1}, {65508,56369,1},{5192,47744,129},{5188,47748,1},{5185,47746,1},{5185,47753,1}, {5183,47753,1},{5185,47758,1},{5183,47764,1},{5185,47774,1},{5183,47774,1}, {5182,47771,1},{5182,47764,1},{5178,47756,1},{5177,47759,1},{5173,47754,1}, {5170,47756,1},{5167,47751,1},{5168,47748,1},{5167,47744,1},{5160,47746,1}, {5160,47741,1},{5163,47739,1},{5165,47733,1},{5167,47733,1},{5167,47726,1}, {5170,47728,1},{5170,47734,1},{5172,47741,1},{5177,47739,1},{5178,47734,1}, {5178,47731,1},{5182,47729,1},{5187,47714,1},{5192,47721,1},{5192,47744,1}, {5197,47881,129},{5192,47881,1},{5190,47876,1},{5185,47871,1},{5185,47878,1}, {5183,47876,1},{5183,47883,1},{5182,47886,1},{5183,47886,1},{5183,47893,1}, {5173,47893,1},{5172,47889,1},{5173,47889,1},{5175,47886,1},{5173,47883,1}, {5168,47879,1},{5170,47874,1},{5167,47869,1},{5168,47866,1},{5167,47864,1}, {5162,47864,1},{5163,47861,1},{5160,47856,1},{5163,47854,1},{5163,47856,1}, {5167,47853,1},{5172,47853,1},{5158,47844,1},{5160,47838,1},{5165,47839,1}, {5170,47846,1},{5175,47848,1},{5177,47854,1},{5177,47846,1},{5180,47846,1}, {5182,47849,1},{5180,47851,1},{5178,47853,1},{5178,47856,1},{5178,47866,1}, {5180,47861,1},{5182,47858,1},{5185,47859,1},{5185,47866,1},{5190,47859,1}, {5193,47858,1},{5195,47864,1},{5195,47873,1},{5198,47876,1},{5198,47881,1}, {5197,47881,1},{5242,48119,129},{5240,48124,1},{5238,48128,1},{5237,48129,1}, {5235,48136,1},{5232,48138,1},{5230,48138,1},{5227,48131,1},{5222,48129,1}, {5222,48116,1},{5220,48116,1},{5213,48128,1},{5210,48126,1},{5212,48121,1}, {5212,48119,1},{5212,48114,1},{5208,48114,1},{5210,48109,1},{5212,48104,1}, {5210,48093,1},{5210,48099,1},{5210,48096,1},{5207,48096,1},{5203,48094,1}, {5203,48091,1},{5208,48091,1},{5207,48089,1},{5207,48086,1},{5208,48084,1}, {5203,48088,1},{5205,48081,1},{5203,48081,1},{5203,48079,1},{5203,48069,1}, {5205,48066,1},{5203,48066,1},{5200,48064,1},{5202,48059,1},{5203,48046,1}, {5203,48039,1},{5200,48034,1},{5200,48028,1},{5202,48008,1},{5200,48004,1}, {5202,48003,1},{5205,48024,1},{5203,48026,1},{5202,48024,1},{5203,48031,1}, {5202,48034,1},{5207,48034,1},{5205,48038,1},{5208,48041,1},{5207,48044,1}, {5212,48046,1},{5208,48046,1},{5210,48049,1},{5208,48053,1},{5210,48056,1}, {5208,48058,1},{5212,48064,1},{5210,48064,1},{5210,48078,1},{5213,48076,1}, {5213,48086,1},{5215,48081,1},{5218,48081,1},{5217,48094,1},{5217,48096,1}, {5220,48091,1},{5222,48093,1},{5222,48098,1},{5218,48103,1},{5220,48103,1}, {5222,48106,1},{5222,48108,1},{5223,48109,1},{5225,48113,1},{5227,48113,1}, {5228,48106,1},{5232,48103,1},{5230,48101,1},{5228,48103,1},{5228,48099,1}, {5230,48093,1},{5232,48091,1},{5232,48099,1},{5233,48103,1},{5237,48103,1}, {5237,48108,1},{5238,48108,1},{5242,48119,1},{5212,48134,129},{5213,48148,1}, {5212,48148,1},{5212,48146,1},{5210,48149,1},{5212,48151,1},{5208,48156,1}, {5212,48161,1},{5213,48168,1},{5215,48173,1},{5215,48178,1},{5213,48178,1}, {5215,48183,1},{5212,48183,1},{5210,48186,1},{5212,48189,1},{5210,48193,1}, {5212,48194,1},{5210,48196,1},{5210,48199,1},{5208,48201,1},{5208,48206,1}, {5210,48206,1},{5210,48214,1},{5210,48223,1},{5208,48241,1},{5205,48221,1}, {5207,48213,1},{5207,48211,1},{5207,48208,1},{5203,48198,1},{5203,48188,1}, {5202,48186,1},{5203,48184,1},{5203,48179,1},{5205,48179,1},{5205,48168,1}, {5207,48168,1},{5205,48163,1},{5203,48153,1},{5205,48144,1},{5208,48144,1}, {5210,48134,1},{5212,48131,1},{5213,48131,1},{5212,48134,1},{5350,48756,129}, {5343,48749,1},{5338,48751,1},{5327,48724,1},{5323,48708,1},{5320,48703,1}, {5315,48701,1},{5317,48699,1},{5313,48699,1},{5312,48694,1},{5305,48689,1}, {5302,48678,1},{5297,48668,1},{5295,48668,1},{5297,48659,1},{5295,48658,1}, {5292,48661,1},{5290,48659,1},{5293,48656,1},{5290,48649,1},{5288,48648,1}, {5285,48633,1},{5283,48633,1},{5282,48626,1},{5283,48631,1},{5287,48631,1}, {5288,48639,1},{5293,48639,1},{5293,48648,1},{5300,48649,1},{5302,48654,1}, {5307,48659,1},{5308,48659,1},{5310,48656,1},{5315,48656,1},{5318,48659,1}, {5325,48673,1},{5327,48674,1},{5325,48683,1},{5327,48689,1},{5325,48693,1}, {5327,48699,1},{5330,48701,1},{5333,48693,1},{5338,48698,1},{5342,48694,1}, {5348,48701,1},{5348,48706,1},{5353,48713,1},{5357,48736,1},{5352,48743,1}, {5352,48756,1},{5350,48756,1},{5397,48911,129},{5393,48911,1},{5392,48909,1}, {5393,48914,1},{5392,48914,1},{5388,48911,1},{5387,48908,1},{5388,48901,1}, {5385,48901,1},{5383,48893,1},{5380,48894,1},{5378,48883,1},{5377,48888,1}, {5375,48881,1},{5372,48879,1},{5370,48881,1},{5368,48881,1},{5372,48884,1}, {5368,48888,1},{5372,48889,1},{5373,48889,1},{5375,48894,1},{5372,48899,1}, {5375,48899,1},{5378,48901,1},{5377,48904,1},{5372,48904,1},{5372,48909,1}, {5368,48908,1},{5367,48899,1},{5367,48894,1},{5365,48894,1},{5362,48881,1}, {5358,48884,1},{5360,48879,1},{5358,48878,1},{5353,48878,1},{5360,48869,1}, {5352,48873,1},{5353,48864,1},{5350,48871,1},{5348,48869,1},{5352,48863,1}, {5357,48858,1},{5355,48856,1},{5347,48861,1},{5345,48861,1},{5347,48856,1}, {5343,48854,1},{5345,48853,1},{5348,48848,1},{5343,48844,1},{5347,48841,1}, {5342,48839,1},{5345,48836,1},{5342,48828,1},{5342,48823,1},{5340,48818,1}, {5337,48808,1},{5333,48804,1},{5333,48796,1},{5333,48794,1},{5332,48791,1}, {5325,48786,1},{5328,48776,1},{5325,48774,1},{5323,48769,1},{5327,48769,1}, {5327,48759,1},{5330,48751,1},{5338,48768,1},{5338,48771,1},{5337,48773,1}, {5338,48774,1},{5337,48776,1},{5340,48778,1},{5337,48788,1},{5340,48784,1}, {5343,48788,1},{5342,48796,1},{5343,48796,1},{5343,48798,1},{5340,48804,1}, {5345,48803,1},{5345,48808,1},{5347,48806,1},{5345,48814,1},{5347,48819,1}, {5352,48818,1},{5350,48828,1},{5353,48839,1},{5355,48838,1},{5353,48828,1}, {5355,48821,1},{5357,48823,1},{5360,48819,1},{5362,48819,1},{5363,48824,1}, {5362,48829,1},{5360,48831,1},{5363,48831,1},{5362,48836,1},{5363,48836,1}, {5367,48829,1},{5368,48829,1},{5370,48833,1},{5372,48844,1},{5370,48848,1}, {5363,48849,1},{5365,48853,1},{5363,48856,1},{5370,48853,1},{5368,48859,1}, {5370,48861,1},{5372,48858,1},{5372,48866,1},{5373,48849,1},{5375,48848,1}, {5377,48839,1},{5375,48833,1},{5380,48826,1},{5382,48826,1},{5383,48821,1}, {5385,48819,1},{5387,48824,1},{5392,48826,1},{5395,48834,1},{5395,48839,1}, {5398,48848,1},{5397,48851,1},{5402,48861,1},{5398,48861,1},{5397,48863,1}, {5402,48868,1},{5398,48874,1},{5395,48876,1},{5395,48874,1},{5392,48873,1}, {5387,48873,1},{5388,48878,1},{5383,48876,1},{5390,48888,1},{5388,48891,1}, {5393,48891,1},{5393,48894,1},{5400,48899,1},{5400,48901,1},{5395,48899,1}, {5395,48903,1},{5397,48909,1},{5397,48911,1},{6042,48924,129},{6033,48929,1}, {6032,48943,1},{6033,48944,1},{6035,48951,1},{6033,48959,1},{6030,48968,1}, {6027,48968,1},{6023,48964,1},{6020,48968,1},{6017,48963,1},{6015,48968,1}, {6010,48969,1},{6007,48963,1},{6007,48969,1},{6003,48969,1},{6002,48974,1}, {6000,48973,1},{5997,48974,1},{5998,48983,1},{5995,48978,1},{5995,48981,1}, {5992,48979,1},{5990,48974,1},{5990,48964,1},{5992,48961,1},{5990,48961,1}, {5990,48958,1},{5987,48948,1},{5990,48938,1},{5990,48936,1},{5987,48939,1}, {5983,48924,1},{5985,48924,1},{5987,48918,1},{5985,48909,1},{5982,48914,1}, {5982,48924,1},{5978,48928,1},{5975,48926,1},{5975,48916,1},{5978,48914,1}, {5982,48908,1},{5985,48894,1},{5985,48888,1},{5987,48884,1},{5985,48876,1}, {5988,48869,1},{5990,48861,1},{5995,48848,1},{5998,48834,1},{6000,48836,1}, {6000,48831,1},{6002,48829,1},{5998,48828,1},{6000,48823,1},{6008,48811,1}, {6007,48809,1},{6007,48804,1},{6013,48803,1},{6020,48791,1},{6020,48796,1}, {6023,48806,1},{6022,48811,1},{6023,48826,1},{6022,48833,1},{6020,48853,1}, {6023,48856,1},{6028,48856,1},{6033,48869,1},{6032,48878,1},{6035,48879,1}, {6038,48886,1},{6038,48894,1},{6037,48898,1},{6033,48896,1},{6038,48909,1}, {6038,48921,1},{6043,48921,1},{6042,48924,1},{6295,48569,129},{6297,48561,1}, {6302,48561,1},{6302,48564,1},{6305,48566,1},{6307,48561,1},{6312,48556,1}, {6315,48546,1},{6315,48539,1},{6303,48558,1},{6312,48546,1},{6320,48528,1}, {6318,48521,1},{6320,48509,1},{6322,48514,1},{6328,48513,1},{6330,48503,1}, {6338,48483,1},{6340,48471,1},{6342,48468,1},{6342,48458,1},{6347,48451,1}, {6343,48428,1},{6342,48453,1},{6337,48481,1},{6332,48494,1},{6323,48506,1}, {6330,48496,1},{6335,48483,1},{6342,48448,1},{6343,48433,1},{6343,48426,1}, {6342,48423,1},{6338,48409,1},{6333,48403,1},{6332,48391,1},{6333,48381,1}, {6335,48379,1},{6337,48363,1},{6342,48356,1},{6352,48351,1},{6358,48353,1}, {6360,48356,1},{6363,48356,1},{6367,48363,1},{6380,48363,1},{6380,48369,1}, {6377,48373,1},{6370,48373,1},{6365,48396,1},{6363,48384,1},{6362,48381,1}, {6362,48386,1},{6360,48388,1},{6360,48401,1},{6362,48406,1},{6363,48398,1}, {6363,48404,1},{6360,48429,1},{6360,48419,1},{6358,48426,1},{6358,48428,1}, {6358,48434,1},{6358,48439,1},{6357,48439,1},{6358,48446,1},{6360,48453,1}, {6368,48471,1},{6367,48474,1},{6368,48481,1},{6370,48491,1},{6368,48499,1}, {6370,48506,1},{6363,48516,1},{6362,48526,1},{6358,48529,1},{6353,48533,1}, {6348,48528,1},{6348,48544,1},{6345,48551,1},{6345,48561,1},{6345,48553,1}, {6343,48558,1},{6343,48571,1},{6342,48579,1},{6337,48579,1},{6335,48584,1}, {6335,48594,1},{6338,48583,1},{6335,48609,1},{6330,48616,1},{6330,48619,1}, {6330,48626,1},{6332,48629,1},{6335,48614,1},{6335,48636,1},{6330,48668,1}, {6328,48663,1},{6323,48664,1},{6315,48651,1},{6318,48626,1},{6318,48609,1}, {6317,48603,1},{6318,48608,1},{6318,48621,1},{6320,48616,1},{6318,48604,1}, {6315,48596,1},{6313,48596,1},{6312,48593,1},{6310,48584,1},{6303,48578,1}, {6298,48581,1},{6298,48576,1},{6295,48569,1},{2027,49954,129},{2023,49963,1}, {2020,49964,1},{2013,49978,1},{2013,49984,1},{2010,49993,1},{1998,50018,1}, {1988,50028,1},{1973,50029,1},{1975,50036,1},{1973,50038,1},{1965,50039,1}, {1963,50043,1},{1962,50043,1},{1953,50056,1},{1945,50053,1},{1942,50044,1}, {1933,50036,1},{1932,50029,1},{1928,50019,1},{1927,50006,1},{1915,49991,1}, {1913,49986,1},{1910,49983,1},{1905,49981,1},{1898,49978,1},{1892,49969,1}, {1897,49968,1},{1903,49958,1},{1903,49949,1},{1908,49946,1},{1918,49946,1}, {1937,49948,1},{1942,49946,1},{1948,49944,1},{1950,49943,1},{1953,49941,1}, {1963,49938,1},{1967,49934,1},{1973,49931,1},{1980,49933,1},{1982,49938,1}, {1985,49939,1},{1987,49944,1},{1995,49948,1},{2000,49954,1},{2005,49954,1}, {2010,49949,1},{2018,49946,1},{2027,49949,1},{2028,49951,1},{2027,49954,1}, {2093,49909,129},{2093,49913,1},{2088,49918,1},{2087,49923,1},{2085,49924,1}, {2083,49928,1},{2080,49936,1},{2077,49938,1},{2072,49936,1},{2067,49929,1}, {2063,49923,1},{2063,49914,1},{2058,49906,1},{2058,49899,1},{2058,49894,1}, {2062,49891,1},{2070,49891,1},{2080,49888,1},{2078,49883,1},{2080,49879,1}, {2083,49873,1},{2088,49868,1},{2093,49866,1},{2102,49869,1},{2102,49871,1}, {2103,49873,1},{2105,49876,1},{2098,49884,1},{2090,49889,1},{2092,49894,1}, {2092,49898,1},{2095,49903,1},{2093,49909,1},{2120,49819,129},{2118,49838,1}, {2122,49839,1},{2120,49841,1},{2117,49843,1},{2117,49846,1},{2117,49854,1}, {2118,49858,1},{2117,49861,1},{2115,49866,1},{2108,49859,1},{2105,49849,1}, {2112,49829,1},{2108,49806,1},{2110,49806,1},{2115,49806,1},{2118,49811,1}, {2122,49809,1},{2122,49816,1},{2120,49819,1},{2170,49739,129},{2167,49744,1}, {2162,49744,1},{2157,49749,1},{2155,49751,1},{2152,49753,1},{2150,49751,1}, {2147,49751,1},{2143,49758,1},{2143,49761,1},{2145,49758,1},{2147,49759,1}, {2145,49763,1},{2147,49764,1},{2143,49763,1},{2142,49763,1},{2140,49766,1}, {2137,49766,1},{2132,49773,1},{2128,49769,1},{2128,49766,1},{2127,49766,1}, {2128,49763,1},{2127,49754,1},{2128,49751,1},{2130,49749,1},{2132,49749,1}, {2133,49746,1},{2132,49743,1},{2132,49741,1},{2135,49739,1},{2137,49743,1}, {2138,49743,1},{2140,49738,1},{2135,49739,1},{2137,49733,1},{2135,49738,1}, {2130,49738,1},{2132,49734,1},{2130,49726,1},{2138,49723,1},{2138,49719,1}, {2145,49718,1},{2148,49713,1},{2153,49713,1},{2158,49709,1},{2160,49716,1}, {2158,49724,1},{2168,49733,1},{2170,49738,1},{2170,49739,1},{2218,49604,129}, {2213,49608,1},{2205,49603,1},{2197,49603,1},{2197,49601,1},{2195,49601,1}, {2190,49598,1},{2187,49591,1},{2190,49586,1},{2190,49576,1},{2195,49571,1}, {2195,49566,1},{2198,49561,1},{2203,49558,1},{2215,49564,1},{2223,49581,1}, {2222,49586,1},{2222,49588,1},{2223,49596,1},{2222,49601,1},{2218,49604,1}, {5525,52226,129},{5522,52226,1},{5520,52229,1},{5517,52231,1},{5515,52229,1}, {5513,52236,1},{5507,52241,1},{5510,52231,1},{5510,52229,1},{5508,52228,1}, {5505,52236,1},{5505,52231,1},{5502,52243,1},{5495,52241,1},{5495,52246,1}, {5492,52246,1},{5488,52253,1},{5487,52253,1},{5487,52254,1},{5483,52254,1}, {5482,52261,1},{5480,52259,1},{5477,52264,1},{5473,52261,1},{5472,52268,1}, {5470,52266,1},{5468,52269,1},{5467,52269,1},{5467,52261,1},{5468,52261,1}, {5470,52256,1},{5468,52253,1},{5473,52249,1},{5473,52253,1},{5480,52241,1}, {5483,52246,1},{5483,52239,1},{5483,52238,1},{5487,52236,1},{5490,52229,1}, {5492,52231,1},{5492,52226,1},{5493,52231,1},{5495,52221,1},{5502,52221,1}, {5505,52216,1},{5510,52214,1},{5510,52224,1},{5512,52221,1},{5512,52216,1}, {5513,52218,1},{5515,52214,1},{5515,52219,1},{5517,52218,1},{5517,52214,1}, {5520,52221,1},{5520,52216,1},{5523,52216,1},{5525,52226,1},{5635,52178,129}, {5632,52194,1},{5633,52204,1},{5627,52204,1},{5627,52208,1},{5630,52206,1}, {5633,52209,1},{5632,52219,1},{5628,52223,1},{5627,52223,1},{5623,52229,1}, {5620,52231,1},{5618,52234,1},{5610,52228,1},{5612,52223,1},{5605,52228,1}, {5605,52241,1},{5607,52243,1},{5605,52246,1},{5602,52246,1},{5603,52253,1}, {5602,52254,1},{5598,52263,1},{5582,52286,1},{5572,52293,1},{5567,52291,1}, {5562,52293,1},{5567,52298,1},{5563,52301,1},{5560,52301,1},{5553,52308,1}, {5553,52313,1},{5548,52321,1},{5545,52321,1},{5550,52309,1},{5555,52293,1}, {5560,52288,1},{5562,52283,1},{5560,52283,1},{5557,52279,1},{5557,52284,1}, {5555,52284,1},{5548,52278,1},{5547,52271,1},{5545,52268,1},{5543,52271,1}, {5542,52271,1},{5545,52274,1},{5547,52281,1},{5552,52286,1},{5550,52289,1}, {5550,52298,1},{5547,52299,1},{5545,52309,1},{5543,52309,1},{5545,52303,1}, {5542,52299,1},{5542,52291,1},{5540,52288,1},{5538,52291,1},{5540,52293,1}, {5540,52298,1},{5538,52299,1},{5540,52303,1},{5540,52313,1},{5537,52316,1}, {5537,52321,1},{5532,52321,1},{5527,52328,1},{5523,52323,1},{5525,52313,1}, {5522,52311,1},{5518,52313,1},{5522,52316,1},{5520,52324,1},{5520,52328,1}, {5527,52334,1},{5527,52338,1},{5518,52339,1},{5512,52333,1},{5512,52336,1}, {5510,52336,1},{5508,52331,1},{5510,52326,1},{5507,52328,1},{5507,52324,1}, {5503,52329,1},{5500,52314,1},{5498,52321,1},{5497,52323,1},{5498,52326,1}, {5500,52329,1},{5502,52334,1},{5503,52338,1},{5503,52339,1},{5498,52339,1}, {5497,52334,1},{5495,52341,1},{5490,52339,1},{5488,52331,1},{5485,52339,1}, {5483,52341,1},{5483,52339,1},{5482,52341,1},{5478,52341,1},{5478,52336,1}, {5473,52338,1},{5468,52336,1},{5470,52328,1},{5472,52326,1},{5468,52326,1}, {5468,52321,1},{5473,52313,1},{5472,52308,1},{5477,52306,1},{5480,52314,1}, {5482,52313,1},{5482,52309,1},{5478,52306,1},{5480,52301,1},{5482,52303,1}, {5483,52309,1},{5485,52309,1},{5487,52304,1},{5487,52308,1},{5488,52303,1}, {5492,52301,1},{5492,52298,1},{5493,52299,1},{5497,52298,1},{5502,52298,1}, {5500,52294,1},{5492,52294,1},{5490,52289,1},{5492,52286,1},{5495,52291,1}, {5498,52291,1},{5500,52288,1},{5498,52288,1},{5493,52283,1},{5497,52276,1}, {5498,52276,1},{5497,52279,1},{5498,52281,1},{5502,52283,1},{5502,52279,1}, {5503,52279,1},{5505,52289,1},{5507,52281,1},{5510,52284,1},{5512,52281,1}, {5507,52274,1},{5513,52276,1},{5517,52279,1},{5525,52273,1},{5522,52271,1}, {5517,52274,1},{5513,52271,1},{5518,52259,1},{5522,52256,1},{5527,52256,1}, {5527,52251,1},{5522,52249,1},{5520,52236,1},{5520,52233,1},{5522,52233,1}, {5523,52238,1},{5528,52246,1},{5527,52228,1},{5528,52223,1},{5527,52218,1}, {5528,52214,1},{5530,52214,1},{5533,52209,1},{5538,52216,1},{5537,52221,1}, {5538,52224,1},{5535,52234,1},{5535,52251,1},{5538,52236,1},{5540,52233,1}, {5542,52234,1},{5543,52229,1},{5545,52238,1},{5545,52228,1},{5550,52223,1}, {5553,52228,1},{5557,52229,1},{5562,52238,1},{5563,52246,1},{5563,52239,1}, {5562,52234,1},{5562,52231,1},{5558,52218,1},{5557,52211,1},{5563,52198,1}, {5567,52198,1},{5568,52203,1},{5570,52198,1},{5573,52199,1},{5570,52203,1}, {5573,52204,1},{5577,52206,1},{5575,52209,1},{5575,52213,1},{5580,52218,1}, {5582,52221,1},{5588,52223,1},{5588,52221,1},{5588,52219,1},{5587,52221,1}, {5587,52218,1},{5588,52214,1},{5590,52213,1},{5595,52211,1},{5595,52213,1}, {5603,52211,1},{5608,52208,1},{5615,52211,1},{5617,52199,1},{5617,52191,1}, {5618,52186,1},{5618,52179,1},{5620,52174,1},{5623,52176,1},{5628,52173,1}, {5628,52179,1},{5630,52179,1},{5635,52174,1},{5635,52178,1},{5595,52413,129}, {5582,52429,1},{5577,52431,1},{5570,52439,1},{5563,52443,1},{5558,52439,1}, {5558,52443,1},{5557,52443,1},{5557,52438,1},{5553,52438,1},{5538,52439,1}, {5542,52434,1},{5538,52434,1},{5535,52436,1},{5532,52433,1},{5525,52431,1}, {5523,52423,1},{5520,52421,1},{5518,52416,1},{5523,52406,1},{5530,52414,1}, {5537,52418,1},{5540,52413,1},{5538,52414,1},{5538,52409,1},{5532,52411,1}, {5527,52406,1},{5525,52401,1},{5527,52394,1},{5528,52389,1},{5530,52391,1}, {5533,52399,1},{5537,52399,1},{5537,52404,1},{5543,52409,1},{5565,52401,1}, {5562,52399,1},{5545,52404,1},{5538,52398,1},{5535,52396,1},{5533,52391,1}, {5538,52394,1},{5543,52389,1},{5548,52389,1},{5552,52394,1},{5550,52386,1}, {5547,52384,1},{5545,52386,1},{5537,52389,1},{5530,52384,1},{5530,52381,1}, {5537,52366,1},{5540,52364,1},{5545,52354,1},{5555,52368,1},{5555,52371,1}, {5560,52374,1},{5562,52366,1},{5568,52368,1},{5568,52373,1},{5572,52374,1}, {5573,52384,1},{5573,52371,1},{5570,52366,1},{5573,52364,1},{5577,52369,1}, {5577,52383,1},{5578,52388,1},{5582,52383,1},{5580,52381,1},{5578,52374,1}, {5578,52368,1},{5583,52368,1},{5582,52391,1},{5583,52391,1},{5585,52393,1}, {5585,52381,1},{5590,52379,1},{5590,52386,1},{5593,52391,1},{5592,52398,1}, {5597,52408,1},{5595,52413,1},{5698,52231,129},{5693,52238,1},{5685,52244,1}, {5682,52238,1},{5667,52244,1},{5662,52241,1},{5660,52234,1},{5662,52233,1}, {5667,52224,1},{5672,52218,1},{5677,52216,1},{5680,52213,1},{5680,52211,1}, {5680,52208,1},{5683,52201,1},{5673,52206,1},{5673,52211,1},{5673,52214,1}, {5672,52214,1},{5663,52213,1},{5665,52214,1},{5662,52226,1},{5660,52226,1}, {5660,52219,1},{5658,52226,1},{5653,52228,1},{5652,52223,1},{5648,52224,1}, {5645,52221,1},{5647,52213,1},{5648,52211,1},{5648,52206,1},{5647,52203,1}, {5650,52199,1},{5650,52193,1},{5647,52196,1},{5647,52193,1},{5645,52194,1}, {5643,52184,1},{5643,52173,1},{5645,52171,1},{5657,52171,1},{5657,52168,1}, {5660,52173,1},{5668,52166,1},{5677,52169,1},{5678,52166,1},{5680,52169,1}, {5687,52169,1},{5680,52161,1},{5682,52161,1},{5683,52156,1},{5687,52154,1}, {5687,52149,1},{5690,52148,1},{5687,52156,1},{5687,52161,1},{5690,52163,1}, {5690,52154,1},{5702,52134,1},{5705,52136,1},{5707,52143,1},{5708,52148,1}, {5705,52176,1},{5700,52198,1},{5700,52204,1},{5692,52209,1},{5693,52213,1}, {5700,52206,1},{5700,52228,1},{5698,52231,1},{5690,52128,129},{5687,52138,1}, {5683,52138,1},{5683,52141,1},{5680,52141,1},{5680,52143,1},{5675,52146,1}, {5665,52139,1},{5665,52134,1},{5663,52139,1},{5665,52141,1},{5667,52144,1}, {5670,52144,1},{5670,52149,1},{5675,52151,1},{5680,52149,1},{5678,52156,1}, {5677,52164,1},{5668,52158,1},{5665,52163,1},{5662,52164,1},{5660,52168,1}, {5655,52161,1},{5655,52159,1},{5660,52154,1},{5660,52144,1},{5657,52151,1}, {5652,52148,1},{5650,52144,1},{5648,52149,1},{5643,52153,1},{5643,52144,1}, {5640,52149,1},{5640,52146,1},{5637,52144,1},{5635,52151,1},{5628,52151,1}, {5628,52149,1},{5630,52148,1},{5637,52139,1},{5628,52138,1},{5627,52138,1}, {5628,52141,1},{5627,52144,1},{5622,52148,1},{5620,52141,1},{5615,52144,1}, {5608,52141,1},{5610,52133,1},{5618,52136,1},{5623,52131,1},{5628,52133,1}, {5632,52131,1},{5630,52129,1},{5623,52129,1},{5623,52126,1},{5622,52128,1}, {5617,52126,1},{5618,52118,1},{5613,52121,1},{5615,52123,1},{5613,52126,1}, {5608,52128,1},{5607,52124,1},{5602,52126,1},{5600,52124,1},{5602,52119,1}, {5605,52123,1},{5607,52114,1},{5610,52116,1},{5612,52113,1},{5615,52116,1}, {5617,52111,1},{5625,52109,1},{5627,52111,1},{5625,52114,1},{5628,52114,1}, {5630,52116,1},{5630,52119,1},{5632,52119,1},{5628,52109,1},{5630,52108,1}, {5632,52111,1},{5635,52108,1},{5637,52109,1},{5637,52113,1},{5642,52113,1}, {5640,52118,1},{5642,52119,1},{5643,52118,1},{5640,52121,1},{5637,52119,1}, {5638,52124,1},{5640,52126,1},{5637,52131,1},{5642,52133,1},{5648,52129,1}, {5648,52133,1},{5655,52129,1},{5648,52124,1},{5655,52118,1},{5657,52111,1}, {5657,52106,1},{5662,52114,1},{5663,52121,1},{5663,52126,1},{5665,52128,1}, {5663,52119,1},{5662,52111,1},{5665,52108,1},{5665,52113,1},{5667,52114,1}, {5670,52114,1},{5667,52111,1},{5667,52103,1},{5672,52098,1},{5683,52094,1}, {5685,52096,1},{5687,52099,1},{5683,52103,1},{5678,52108,1},{5683,52108,1}, {5687,52103,1},{5690,52106,1},{5685,52126,1},{5688,52123,1},{5690,52114,1}, {5692,52114,1},{5693,52109,1},{5690,52128,1},{5743,52026,129},{5740,52036,1}, {5733,52044,1},{5733,52046,1},{5733,52036,1},{5732,52041,1},{5730,52038,1}, {5730,52043,1},{5725,52044,1},{5725,52053,1},{5722,52053,1},{5722,52051,1}, {5717,52056,1},{5713,52053,1},{5712,52058,1},{5708,52058,1},{5707,52061,1}, {5703,52061,1},{5702,52063,1},{5692,52064,1},{5690,52068,1},{5683,52068,1}, {5673,52074,1},{5657,52074,1},{5653,52074,1},{5658,52071,1},{5657,52069,1}, {5653,52069,1},{5647,52074,1},{5638,52074,1},{5633,52071,1},{5633,52074,1}, {5625,52069,1},{5627,52074,1},{5625,52074,1},{5617,52071,1},{5618,52068,1}, {5620,52069,1},{5623,52068,1},{5622,52064,1},{5622,52061,1},{5623,52061,1}, {5623,52058,1},{5632,52053,1},{5632,52048,1},{5642,52043,1},{5653,52031,1}, {5655,52034,1},{5657,52033,1},{5658,52043,1},{5660,52043,1},{5668,52051,1}, {5668,52048,1},{5662,52041,1},{5665,52038,1},{5670,52039,1},{5672,52043,1}, {5672,52038,1},{5668,52036,1},{5662,52033,1},{5660,52026,1},{5667,52024,1}, {5675,52036,1},{5677,52033,1},{5675,52031,1},{5668,52019,1},{5668,52016,1}, {5672,52019,1},{5673,52018,1},{5675,52021,1},{5680,52021,1},{5683,52024,1}, {5678,52009,1},{5680,52004,1},{5682,52006,1},{5683,51999,1},{5688,51999,1}, {5688,52008,1},{5693,51998,1},{5697,52001,1},{5700,52011,1},{5702,52018,1}, {5700,52019,1},{5703,52019,1},{5703,52006,1},{5708,51999,1},{5713,51999,1}, {5717,52009,1},{5718,52003,1},{5715,51999,1},{5717,51994,1},{5720,51999,1}, {5725,52003,1},{5725,51988,1},{5723,51984,1},{5725,51981,1},{5728,51979,1}, {5735,51969,1},{5737,51973,1},{5735,51989,1},{5740,51979,1},{5738,51976,1}, {5742,51981,1},{5743,51983,1},{5745,51986,1},{5750,51984,1},{5755,51996,1}, {5755,52001,1},{5752,52008,1},{5747,51998,1},{5743,51996,1},{5748,52006,1}, {5747,52009,1},{5748,52016,1},{5745,52021,1},{5742,52016,1},{5743,52026,1}, {5825,51963,129},{5822,51966,1},{5822,51974,1},{5815,51988,1},{5810,51984,1}, {5808,51979,1},{5805,51976,1},{5805,51966,1},{5805,51958,1},{5802,51963,1}, {5803,51964,1},{5803,51969,1},{5800,51974,1},{5800,51961,1},{5797,51958,1}, {5797,51969,1},{5795,51971,1},{5795,51974,1},{5798,51973,1},{5798,51978,1}, {5807,51986,1},{5808,51994,1},{5812,51991,1},{5813,51996,1},{5812,52004,1}, {5810,52003,1},{5810,52006,1},{5810,52026,1},{5808,52028,1},{5807,52026,1}, {5805,52039,1},{5803,52043,1},{5793,52046,1},{5788,52039,1},{5783,52044,1}, {5788,52034,1},{5795,52016,1},{5788,52023,1},{5787,52031,1},{5783,52034,1}, {5783,52038,1},{5782,52039,1},{5782,52043,1},{5778,52034,1},{5778,52013,1}, {5790,51984,1},{5795,51959,1},{5798,51951,1},{5798,51948,1},{5795,51956,1}, {5793,51956,1},{5792,51969,1},{5787,51983,1},{5783,51984,1},{5780,51999,1}, {5775,52004,1},{5773,51999,1},{5772,52001,1},{5773,52009,1},{5772,52013,1}, {5770,52016,1},{5773,52019,1},{5773,52024,1},{5775,52028,1},{5775,52044,1}, {5748,52054,1},{5750,52049,1},{5748,52049,1},{5747,52051,1},{5745,52051,1}, {5745,52038,1},{5747,52029,1},{5748,52028,1},{5758,52003,1},{5765,51983,1}, {5773,51966,1},{5777,51956,1},{5773,51958,1},{5772,51964,1},{5770,51963,1}, {5767,51966,1},{5767,51959,1},{5763,51956,1},{5763,51968,1},{5762,51969,1}, {5758,51979,1},{5757,51979,1},{5757,51973,1},{5755,51971,1},{5753,51981,1}, {5752,51978,1},{5750,51981,1},{5747,51981,1},{5745,51974,1},{5742,51978,1}, {5740,51969,1},{5738,51971,1},{5737,51968,1},{5738,51953,1},{5742,51951,1}, {5745,51941,1},{5748,51939,1},{5752,51934,1},{5752,51936,1},{5750,51946,1}, {5743,51958,1},{5747,51956,1},{5760,51929,1},{5762,51929,1},{5762,51934,1}, {5758,51936,1},{5760,51936,1},{5762,51941,1},{5763,51938,1},{5763,51931,1}, {5765,51929,1},{5762,51924,1},{5765,51923,1},{5768,51928,1},{5775,51914,1}, {5778,51913,1},{5777,51908,1},{5778,51906,1},{5783,51899,1},{5782,51894,1}, {5788,51896,1},{5792,51901,1},{5797,51901,1},{5798,51903,1},{5785,51931,1}, {5785,51933,1},{5808,51894,1},{5812,51893,1},{5813,51899,1},{5810,51909,1}, {5818,51901,1},{5822,51901,1},{5820,51904,1},{5822,51909,1},{5815,51913,1}, {5813,51918,1},{5808,51916,1},{5805,51924,1},{5810,51919,1},{5813,51921,1}, {5817,51918,1},{5820,51923,1},{5822,51923,1},{5817,51939,1},{5820,51941,1}, {5827,51954,1},{5827,51959,1},{5825,51963,1},{5837,52049,129},{5833,52056,1}, {5830,52056,1},{5822,52066,1},{5817,52068,1},{5817,52081,1},{5818,52081,1}, {5817,52086,1},{5818,52091,1},{5815,52101,1},{5817,52119,1},{5812,52119,1}, {5812,52116,1},{5808,52118,1},{5802,52128,1},{5798,52128,1},{5793,52136,1}, {5787,52138,1},{5780,52148,1},{5767,52148,1},{5760,52156,1},{5758,52156,1}, {5758,52153,1},{5763,52151,1},{5768,52139,1},{5780,52136,1},{5785,52126,1}, {5795,52123,1},{5803,52113,1},{5798,52121,1},{5807,52113,1},{5807,52108,1}, {5810,52106,1},{5808,52106,1},{5802,52109,1},{5803,52104,1},{5797,52114,1}, {5800,52104,1},{5798,52104,1},{5790,52109,1},{5783,52108,1},{5785,52111,1}, {5782,52118,1},{5767,52133,1},{5765,52129,1},{5765,52138,1},{5762,52143,1}, {5753,52143,1},{5745,52151,1},{5750,52146,1},{5747,52144,1},{5750,52129,1}, {5748,52128,1},{5748,52133,1},{5747,52126,1},{5745,52138,1},{5740,52136,1}, {5743,52146,1},{5735,52149,1},{5733,52143,1},{5730,52143,1},{5730,52141,1}, {5732,52133,1},{5737,52129,1},{5732,52128,1},{5735,52124,1},{5738,52119,1}, {5735,52123,1},{5730,52121,1},{5730,52126,1},{5727,52129,1},{5725,52126,1}, {5725,52123,1},{5720,52121,1},{5717,52116,1},{5717,52109,1},{5713,52108,1}, {5712,52104,1},{5713,52101,1},{5710,52098,1},{5708,52101,1},{5703,52088,1}, {5703,52078,1},{5700,52076,1},{5703,52076,1},{5712,52074,1},{5715,52078,1}, {5717,52074,1},{5722,52073,1},{5722,52074,1},{5722,52081,1},{5722,52084,1}, {5723,52084,1},{5723,52081,1},{5727,52078,1},{5730,52081,1},{5732,52091,1}, {5733,52086,1},{5735,52081,1},{5740,52083,1},{5740,52084,1},{5737,52089,1}, {5737,52096,1},{5733,52101,1},{5733,52104,1},{5737,52099,1},{5740,52106,1}, {5738,52098,1},{5740,52089,1},{5748,52079,1},{5748,52086,1},{5752,52091,1}, {5755,52101,1},{5753,52091,1},{5750,52079,1},{5755,52076,1},{5760,52069,1}, {5773,52064,1},{5778,52066,1},{5788,52064,1},{5797,52059,1},{5800,52061,1}, {5805,52056,1},{5810,52061,1},{5815,52061,1},{5818,52063,1},{5817,52059,1}, {5810,52058,1},{5818,52051,1},{5818,52048,1},{5822,52044,1},{5825,52048,1}, {5825,52043,1},{5830,52041,1},{5837,52039,1},{5840,52041,1},{5837,52046,1}, {5837,52049,1},{5837,50328,129},{5830,50323,1},{5823,50321,1},{5830,50326,1}, {5830,50329,1},{5828,50329,1},{5832,50333,1},{5835,50336,1},{5833,50339,1}, {5828,50338,1},{5828,50339,1},{5825,50338,1},{5823,50339,1},{5822,50336,1}, {5820,50333,1},{5815,50328,1},{5817,50323,1},{5818,50319,1},{5817,50318,1}, {5827,50311,1},{5823,50304,1},{5818,50306,1},{5820,50299,1},{5818,50303,1}, {5815,50303,1},{5815,50308,1},{5813,50309,1},{5813,50304,1},{5810,50303,1}, {5812,50301,1},{5812,50294,1},{5813,50291,1},{5808,50281,1},{5810,50279,1}, {5820,50279,1},{5818,50276,1},{5815,50276,1},{5808,50273,1},{5805,50264,1}, {5805,50261,1},{5807,50259,1},{5800,50259,1},{5798,50251,1},{5805,50233,1}, {5808,50229,1},{5812,50231,1},{5810,50221,1},{5817,50213,1},{5822,50218,1}, {5820,50233,1},{5817,50236,1},{5818,50238,1},{5817,50246,1},{5827,50226,1}, {5830,50231,1},{5828,50246,1},{5828,50249,1},{5828,50256,1},{5825,50259,1}, {5833,50259,1},{5835,50256,1},{5837,50259,1},{5840,50248,1},{5842,50258,1}, {5845,50263,1},{5842,50268,1},{5847,50269,1},{5848,50273,1},{5847,50276,1}, {5845,50276,1},{5847,50286,1},{5842,50283,1},{5840,50289,1},{5835,50289,1}, {5838,50293,1},{5835,50296,1},{5832,50296,1},{5842,50301,1},{5842,50309,1}, {5838,50311,1},{5838,50309,1},{5835,50316,1},{5840,50324,1},{5837,50328,1}, {5800,50209,129},{5792,50236,1},{5795,50236,1},{5792,50254,1},{5790,50253,1}, {5788,50248,1},{5787,50248,1},{5787,50251,1},{5783,50244,1},{5778,50246,1}, {5777,50244,1},{5773,50248,1},{5773,50251,1},{5783,50251,1},{5787,50256,1}, {5782,50263,1},{5783,50264,1},{5788,50268,1},{5785,50274,1},{5793,50274,1}, {5793,50278,1},{5790,50279,1},{5792,50284,1},{5790,50289,1},{5787,50291,1}, {5785,50294,1},{5783,50293,1},{5782,50294,1},{5783,50299,1},{5782,50303,1}, {5780,50303,1},{5777,50291,1},{5770,50281,1},{5772,50291,1},{5770,50289,1}, {5768,50289,1},{5765,50288,1},{5768,50296,1},{5765,50293,1},{5760,50293,1}, {5763,50303,1},{5763,50319,1},{5762,50321,1},{5755,50314,1},{5750,50304,1}, {5743,50303,1},{5742,50288,1},{5745,50291,1},{5747,50289,1},{5743,50284,1}, {5745,50278,1},{5748,50274,1},{5747,50269,1},{5748,50264,1},{5752,50261,1}, {5752,50244,1},{5752,50241,1},{5750,50239,1},{5750,50244,1},{5748,50244,1}, {5747,50234,1},{5743,50233,1},{5747,50239,1},{5747,50251,1},{5747,50256,1}, {5742,50264,1},{5740,50273,1},{5737,50276,1},{5728,50268,1},{5728,50264,1}, {5730,50264,1},{5730,50261,1},{5727,50254,1},{5727,50251,1},{5728,50249,1}, {5730,50251,1},{5732,50246,1},{5735,50248,1},{5733,50243,1},{5733,50231,1}, {5732,50224,1},{5732,50221,1},{5735,50219,1},{5730,50219,1},{5728,50228,1}, {5730,50234,1},{5725,50241,1},{5722,50226,1},{5723,50211,1},{5722,50208,1}, {5718,50203,1},{5720,50198,1},{5717,50199,1},{5712,50189,1},{5717,50188,1}, {5717,50183,1},{5715,50181,1},{5717,50186,1},{5712,50184,1},{5707,50186,1}, {5708,50176,1},{5707,50164,1},{5705,50159,1},{5705,50178,1},{5702,50176,1}, {5702,50169,1},{5700,50179,1},{5698,50181,1},{5693,50174,1},{5693,50168,1}, {5697,50168,1},{5690,50164,1},{5688,50159,1},{5687,50159,1},{5688,50166,1}, {5687,50166,1},{5683,50158,1},{5685,50154,1},{5677,50144,1},{5673,50136,1}, {5677,50131,1},{5673,50126,1},{5675,50121,1},{5685,50129,1},{5687,50136,1}, {5690,50141,1},{5693,50151,1},{5698,50159,1},{5697,50151,1},{5698,50153,1}, {5702,50153,1},{5702,50151,1},{5697,50148,1},{5697,50139,1},{5707,50146,1}, {5713,50163,1},{5715,50158,1},{5712,50148,1},{5705,50136,1},{5698,50131,1}, {5697,50126,1},{5700,50123,1},{5705,50124,1},{5712,50139,1},{5712,50128,1}, {5713,50124,1},{5715,50113,1},{5713,50109,1},{5715,50101,1},{5712,50096,1}, {5712,50089,1},{5707,50089,1},{5705,50098,1},{5712,50109,1},{5712,50126,1}, {5703,50123,1},{5702,50121,1},{5695,50119,1},{5693,50118,1},{5693,50111,1}, {5692,50114,1},{5690,50109,1},{5688,50108,1},{5690,50108,1},{5690,50106,1}, {5687,50108,1},{5688,50113,1},{5685,50106,1},{5690,50106,1},{5693,50103,1}, {5697,50096,1},{5698,50083,1},{5715,50083,1},{5727,50076,1},{5727,50068,1}, {5728,50066,1},{5727,50058,1},{5728,50056,1},{5728,50059,1},{5730,50061,1}, {5735,50056,1},{5737,50058,1},{5733,50064,1},{5735,50066,1},{5735,50063,1}, {5738,50066,1},{5742,50063,1},{5745,50073,1},{5748,50071,1},{5753,50076,1}, {5755,50081,1},{5752,50084,1},{5752,50086,1},{5758,50084,1},{5757,50094,1}, {5758,50091,1},{5763,50101,1},{5765,50101,1},{5765,50108,1},{5767,50114,1}, {5763,50136,1},{5757,50138,1},{5753,50126,1},{5753,50141,1},{5742,50148,1}, {5730,50161,1},{5727,50173,1},{5732,50163,1},{5735,50159,1},{5737,50159,1}, {5740,50156,1},{5752,50156,1},{5758,50151,1},{5755,50159,1},{5753,50168,1}, {5758,50156,1},{5765,50148,1},{5763,50169,1},{5760,50173,1},{5760,50178,1}, {5763,50174,1},{5768,50166,1},{5770,50146,1},{5773,50143,1},{5782,50143,1}, {5785,50149,1},{5787,50151,1},{5788,50158,1},{5790,50163,1},{5788,50166,1}, {5788,50173,1},{5785,50173,1},{5783,50178,1},{5780,50181,1},{5773,50179,1}, {5763,50186,1},{5772,50183,1},{5768,50189,1},{5770,50193,1},{5775,50184,1}, {5777,50186,1},{5777,50194,1},{5770,50199,1},{5773,50204,1},{5780,50194,1}, {5780,50189,1},{5783,50188,1},{5778,50214,1},{5773,50214,1},{5770,50218,1}, {5773,50216,1},{5785,50216,1},{5790,50213,1},{5788,50219,1},{5787,50221,1}, {5783,50231,1},{5793,50216,1},{5795,50209,1},{5800,50206,1},{5800,50209,1}, {5498,49186,129},{5492,49194,1},{5487,49194,1},{5478,49199,1},{5475,49206,1}, {5477,49214,1},{5478,49216,1},{5477,49221,1},{5468,49226,1},{5467,49231,1}, {5467,49219,1},{5468,49224,1},{5470,49223,1},{5470,49216,1},{5468,49214,1}, {5470,49209,1},{5470,49206,1},{5475,49201,1},{5473,49193,1},{5465,49193,1}, {5465,49186,1},{5463,49184,1},{5462,49176,1},{5463,49154,1},{5462,49124,1}, {5460,49114,1},{5455,49106,1},{5452,49103,1},{5448,49103,1},{5445,49098,1}, {5442,49089,1},{5438,49071,1},{5440,49058,1},{5442,49051,1},{5447,49048,1}, {5447,49046,1},{5450,49046,1},{5453,49043,1},{5458,49041,1},{5463,49061,1}, {5467,49066,1},{5483,49081,1},{5488,49081,1},{5492,49088,1},{5493,49093,1}, {5492,49099,1},{5488,49104,1},{5488,49114,1},{5492,49114,1},{5497,49123,1}, {5497,49131,1},{5498,49136,1},{5503,49143,1},{5503,49153,1},{5505,49158,1}, {5503,49168,1},{5505,49183,1},{5503,49184,1},{5503,49181,1},{5498,49186,1}, {2468,57381,129},{2465,57384,1},{2462,57384,1},{2458,57378,1},{2458,57373,1}, {2462,57381,1},{2465,57378,1},{2462,57383,1},{2465,57384,1},{2465,57381,1}, {2467,57381,1},{2467,57379,1},{2468,57381,1},{4105,58344,129},{4085,58291,1}, {4087,58289,1},{4088,58293,1},{4088,58286,1},{4085,58288,1},{4083,58286,1}, {4078,58264,1},{4078,58263,1},{4078,58264,1},{4080,58271,1},{4082,58269,1}, {4082,58264,1},{4080,58261,1},{4080,58254,1},{4078,58254,1},{4075,58249,1}, {4077,58246,1},{4075,58243,1},{4075,58234,1},{4073,58233,1},{4073,58223,1}, {4070,58221,1},{4072,58213,1},{4070,58211,1},{4067,58198,1},{4065,58181,1}, {4062,58171,1},{4063,58168,1},{4062,58166,1},{4060,58166,1},{4060,58176,1}, {4060,58178,1},{4060,58159,1},{4057,58144,1},{4057,58143,1},{4060,58153,1}, {4062,58159,1},{4063,58159,1},{4067,58151,1},{4063,58146,1},{4062,58149,1}, {4060,58148,1},{4058,58136,1},{4060,58136,1},{4063,58133,1},{4065,58133,1}, {4078,58144,1},{4080,58151,1},{4080,58153,1},{4078,58159,1},{4083,58161,1}, {4082,58164,1},{4083,58168,1},{4085,58163,1},{4087,58164,1},{4087,58168,1}, {4082,58171,1},{4090,58173,1},{4092,58179,1},{4090,58189,1},{4093,58188,1}, {4095,58188,1},{4093,58193,1},{4092,58193,1},{4090,58194,1},{4092,58201,1}, {4093,58199,1},{4093,58196,1},{4095,58196,1},{4092,58213,1},{4093,58221,1}, {4097,58221,1},{4098,58226,1},{4095,58226,1},{4097,58229,1},{4098,58271,1}, {4105,58288,1},{4108,58291,1},{4110,58298,1},{4113,58301,1},{4117,58308,1}, {4117,58313,1},{4113,58311,1},{4112,58308,1},{4113,58308,1},{4113,58304,1}, {4110,58298,1},{4107,58294,1},{4103,58298,1},{4103,58293,1},{4098,58293,1}, {4102,58291,1},{4100,58288,1},{4098,58284,1},{4095,58281,1},{4092,58274,1}, {4092,58293,1},{4095,58293,1},{4097,58296,1},{4100,58299,1},{4100,58303,1}, {4103,58303,1},{4103,58306,1},{4102,58306,1},{4102,58311,1},{4105,58311,1}, {4102,58316,1},{4105,58318,1},{4105,58319,1},{4103,58323,1},{4100,58326,1}, {4103,58334,1},{4105,58336,1},{4105,58339,1},{4107,58341,1},{4107,58344,1}, {4108,58344,1},{4107,58351,1},{4105,58344,1},{4817,56689,129},{4810,56676,1}, {4805,56676,1},{4802,56669,1},{4795,56646,1},{4790,56636,1},{4790,56644,1}, {4783,56621,1},{4785,56614,1},{4788,56616,1},{4790,56621,1},{4792,56614,1}, {4797,56624,1},{4807,56656,1},{4815,56673,1},{4815,56679,1},{4818,56688,1}, {4817,56684,1},{4818,56691,1},{4817,56689,1},{3348,53684,129},{3345,53688,1}, {3342,53701,1},{3338,53701,1},{3335,53706,1},{3332,53706,1},{3333,53699,1}, {3333,53691,1},{3337,53689,1},{3343,53688,1},{3345,53681,1},{3348,53678,1}, {3348,53684,1},{3408,53549,129},{3407,53556,1},{3407,53561,1},{3403,53571,1}, {3403,53574,1},{3405,53576,1},{3407,53579,1},{3405,53584,1},{3402,53583,1}, {3400,53578,1},{3400,53571,1},{3397,53566,1},{3397,53558,1},{3398,53549,1}, {3402,53548,1},{3403,53549,1},{3408,53544,1},{3408,53549,1},{3403,53524,129}, {3403,53531,1},{3405,53533,1},{3403,53533,1},{3402,53533,1},{3400,53536,1}, {3400,53539,1},{3397,53539,1},{3392,53533,1},{3392,53528,1},{3390,53526,1}, {3393,53519,1},{3402,53511,1},{3402,53521,1},{3403,53524,1},{5323,52358,129}, {5318,52359,1},{5317,52358,1},{5315,52366,1},{5312,52368,1},{5312,52373,1}, {5303,52376,1},{5307,52356,1},{5305,52343,1},{5307,52336,1},{5305,52336,1}, {5303,52341,1},{5298,52344,1},{5302,52346,1},{5305,52351,1},{5300,52371,1}, {5297,52376,1},{5295,52373,1},{5293,52374,1},{5287,52368,1},{5287,52354,1}, {5293,52346,1},{5293,52341,1},{5292,52348,1},{5288,52338,1},{5290,52346,1}, {5288,52349,1},{5287,52351,1},{5283,52348,1},{5283,52351,1},{5280,52354,1}, {5280,52371,1},{5278,52368,1},{5278,52359,1},{5277,52356,1},{5277,52351,1}, {5275,52356,1},{5272,52353,1},{5272,52359,1},{5270,52363,1},{5263,52368,1}, {5262,52368,1},{5262,52366,1},{5258,52369,1},{5257,52374,1},{5253,52369,1}, {5253,52374,1},{5252,52376,1},{5253,52379,1},{5252,52383,1},{5250,52383,1}, {5252,52386,1},{5250,52389,1},{5248,52388,1},{5245,52394,1},{5238,52391,1}, {5238,52398,1},{5235,52396,1},{5237,52401,1},{5242,52401,1},{5243,52413,1}, {5237,52406,1},{5235,52406,1},{5237,52411,1},{5235,52409,1},{5233,52406,1}, {5233,52404,1},{5235,52403,1},{5235,52399,1},{5228,52404,1},{5230,52406,1}, {5228,52408,1},{5225,52413,1},{5227,52414,1},{5228,52411,1},{5230,52411,1}, {5232,52419,1},{5232,52423,1},{5228,52423,1},{5228,52428,1},{5225,52428,1}, {5225,52421,1},{5223,52418,1},{5223,52434,1},{5218,52434,1},{5217,52429,1}, {5217,52424,1},{5218,52424,1},{5222,52423,1},{5218,52423,1},{5213,52421,1}, {5212,52418,1},{5213,52416,1},{5218,52414,1},{5223,52409,1},{5217,52413,1}, {5213,52413,1},{5213,52409,1},{5215,52406,1},{5223,52401,1},{5218,52399,1}, {5220,52398,1},{5232,52386,1},{5232,52381,1},{5235,52383,1},{5235,52379,1}, {5240,52378,1},{5240,52386,1},{5242,52384,1},{5243,52381,1},{5242,52374,1}, {5248,52369,1},{5252,52358,1},{5253,52358,1},{5258,52346,1},{5265,52343,1}, {5265,52339,1},{5268,52334,1},{5273,52328,1},{5277,52333,1},{5273,52339,1}, {5277,52334,1},{5278,52336,1},{5273,52344,1},{5278,52341,1},{5280,52334,1}, {5285,52328,1},{5280,52331,1},{5278,52328,1},{5275,52326,1},{5278,52319,1}, {5282,52313,1},{5287,52313,1},{5287,52308,1},{5290,52304,1},{5295,52301,1}, {5295,52311,1},{5295,52314,1},{5292,52318,1},{5293,52319,1},{5297,52316,1}, {5293,52323,1},{5297,52321,1},{5300,52324,1},{5300,52316,1},{5303,52309,1}, {5303,52301,1},{5303,52303,1},{5303,52288,1},{5305,52284,1},{5307,52286,1}, {5308,52281,1},{5310,52283,1},{5313,52279,1},{5315,52281,1},{5313,52288,1}, {5313,52294,1},{5315,52308,1},{5313,52314,1},{5315,52323,1},{5315,52329,1}, {5322,52338,1},{5322,52341,1},{5323,52344,1},{5323,52353,1},{5325,52354,1}, {5323,52358,1},{5412,52369,129},{5397,52366,1},{5378,52349,1},{5372,52349,1}, {5362,52343,1},{5357,52344,1},{5352,52343,1},{5343,52346,1},{5335,52346,1}, {5325,52338,1},{5325,52328,1},{5323,52314,1},{5320,52313,1},{5320,52309,1}, {5318,52313,1},{5320,52316,1},{5320,52324,1},{5317,52319,1},{5315,52313,1}, {5317,52306,1},{5318,52304,1},{5317,52304,1},{5315,52296,1},{5315,52289,1}, {5318,52289,1},{5317,52286,1},{5318,52283,1},{5320,52284,1},{5320,52278,1}, {5323,52281,1},{5325,52274,1},{5325,52266,1},{5328,52266,1},{5328,52273,1}, {5332,52274,1},{5332,52283,1},{5333,52279,1},{5332,52261,1},{5338,52266,1}, {5335,52284,1},{5330,52294,1},{5333,52296,1},{5337,52288,1},{5342,52284,1}, {5343,52269,1},{5348,52269,1},{5345,52266,1},{5345,52261,1},{5348,52264,1}, {5352,52261,1},{5348,52258,1},{5347,52251,1},{5347,52249,1},{5348,52249,1}, {5352,52254,1},{5352,52244,1},{5357,52246,1},{5355,52239,1},{5358,52238,1}, {5360,52241,1},{5358,52246,1},{5360,52248,1},{5365,52243,1},{5367,52238,1}, {5368,52236,1},{5368,52239,1},{5368,52243,1},{5370,52243,1},{5372,52238,1}, {5377,52239,1},{5375,52234,1},{5377,52229,1},{5378,52226,1},{5382,52229,1}, {5388,52223,1},{5392,52223,1},{5395,52228,1},{5400,52226,1},{5400,52229,1}, {5403,52233,1},{5408,52231,1},{5410,52228,1},{5417,52233,1},{5417,52229,1}, {5417,52243,1},{5413,52246,1},{5412,52256,1},{5415,52271,1},{5412,52279,1}, {5408,52281,1},{5403,52279,1},{5398,52269,1},{5395,52268,1},{5393,52269,1}, {5400,52281,1},{5403,52283,1},{5407,52291,1},{5410,52296,1},{5412,52306,1}, {5410,52308,1},{5407,52313,1},{5402,52313,1},{5400,52319,1},{5397,52323,1}, {5393,52321,1},{5388,52324,1},{5385,52323,1},{5382,52316,1},{5378,52314,1}, {5377,52306,1},{5375,52299,1},{5370,52288,1},{5370,52274,1},{5368,52269,1}, {5367,52276,1},{5363,52276,1},{5367,52283,1},{5365,52283,1},{5365,52286,1}, {5367,52301,1},{5362,52289,1},{5357,52289,1},{5360,52294,1},{5362,52308,1}, {5363,52308,1},{5365,52303,1},{5367,52304,1},{5365,52314,1},{5367,52316,1}, {5370,52321,1},{5375,52318,1},{5378,52316,1},{5385,52326,1},{5388,52328,1}, {5393,52324,1},{5402,52323,1},{5403,52318,1},{5402,52334,1},{5403,52344,1}, {5410,52363,1},{5417,52371,1},{5412,52369,1},{6910,51943,129},{6922,51939,1}, {6925,51944,1},{6915,51971,1},{6910,51994,1},{6912,51993,1},{6915,51973,1}, {6927,51953,1},{6928,51951,1},{6933,51964,1},{6930,51973,1},{6922,51979,1}, {6923,51981,1},{6932,51974,1},{6933,51978,1},{6933,51991,1},{6930,51999,1}, {6927,52018,1},{6928,52019,1},{6930,52013,1},{6942,52008,1},{6948,52021,1}, {6945,52026,1},{6948,52031,1},{6947,52041,1},{6948,52046,1},{6948,52053,1}, {6950,52058,1},{6948,52059,1},{6947,52073,1},{6945,52083,1},{6945,52093,1}, {6948,52096,1},{6950,52093,1},{6950,52083,1},{6947,52083,1},{6952,52076,1}, {6955,52078,1},{6953,52084,1},{6955,52089,1},{6957,52086,1},{6963,52096,1}, {6972,52088,1},{6972,52096,1},{6972,52098,1},{6972,52104,1},{6967,52101,1}, {6968,52109,1},{6967,52116,1},{6963,52121,1},{6962,52116,1},{6957,52111,1}, {6958,52118,1},{6957,52119,1},{6953,52124,1},{6957,52134,1},{6955,52136,1}, {6953,52131,1},{6952,52139,1},{6950,52141,1},{6952,52149,1},{6953,52149,1}, {6953,52156,1},{6957,52153,1},{6958,52158,1},{6955,52161,1},{6953,52158,1}, {6948,52158,1},{6943,52151,1},{6938,52133,1},{6933,52126,1},{6930,52126,1}, {6928,52119,1},{6928,52114,1},{6923,52108,1},{6918,52108,1},{6912,52098,1}, {6910,52079,1},{6905,52076,1},{6902,52069,1},{6895,52069,1},{6888,52086,1}, {6878,52094,1},{6875,52108,1},{6870,52114,1},{6872,52091,1},{6877,52089,1}, {6880,52079,1},{6887,52076,1},{6895,52061,1},{6897,52061,1},{6897,52054,1}, {6898,52053,1},{6897,52044,1},{6892,52044,1},{6888,52039,1},{6890,52021,1}, {6893,52016,1},{6893,51994,1},{6895,51989,1},{6898,51991,1},{6895,51983,1}, {6890,51984,1},{6890,51963,1},{6890,51956,1},{6890,51948,1},{6895,51936,1}, {6897,51938,1},{6895,51944,1},{6902,51938,1},{6905,51939,1},{6898,51958,1}, {6900,51973,1},{6902,51984,1},{6902,51969,1},{6902,51964,1},{6907,51961,1}, {6910,51943,1},{5070,52789,129},{5077,52786,1},{5087,52744,1},{5085,52734,1}, {5087,52729,1},{5083,52723,1},{5083,52718,1},{5080,52709,1},{5080,52701,1}, {5077,52694,1},{5072,52698,1},{5068,52699,1},{5067,52701,1},{5067,52709,1}, {5063,52703,1},{5060,52704,1},{5058,52713,1},{5053,52714,1},{5052,52719,1}, {5047,52723,1},{5045,52731,1},{5045,52733,1},{5048,52729,1},{5048,52731,1}, {5047,52736,1},{5048,52748,1},{5050,52751,1},{5048,52753,1},{5048,52756,1}, {5053,52769,1},{5053,52776,1},{5055,52778,1},{5058,52773,1},{5058,52758,1}, {5062,52749,1},{5060,52776,1},{5057,52781,1},{5058,52786,1},{5060,52793,1}, {5058,52794,1},{5057,52794,1},{5057,52786,1},{5052,52779,1},{5043,52788,1}, {5037,52791,1},{5040,52786,1},{5048,52778,1},{5048,52761,1},{5047,52756,1}, {5047,52744,1},{5042,52744,1},{5040,52741,1},{5035,52738,1},{5032,52743,1}, {5033,52749,1},{5032,52751,1},{5032,52756,1},{5030,52756,1},{5028,52751,1}, {5025,52756,1},{5023,52761,1},{5013,52746,1},{5012,52746,1},{5008,52756,1}, {5012,52761,1},{5018,52771,1},{5018,52774,1},{5013,52773,1},{5012,52776,1}, {5018,52789,1},{5018,52793,1},{5013,52788,1},{5012,52794,1},{5012,52789,1}, {5008,52789,1},{5005,52794,1},{5003,52798,1},{5005,52808,1},{5010,52809,1}, {5015,52806,1},{5010,52814,1},{5008,52819,1},{5012,52824,1},{5015,52826,1}, {5010,52828,1},{5007,52819,1},{5002,52818,1},{4997,52813,1},{4985,52823,1}, {4987,52843,1},{4997,52844,1},{4988,52848,1},{4988,52851,1},{4992,52856,1}, {4997,52851,1},{4995,52856,1},{4988,52863,1},{4988,52868,1},{4990,52871,1}, {4985,52873,1},{4982,52873,1},{4970,52878,1},{4972,52886,1},{4973,52889,1}, {4978,52889,1},{4977,52894,1},{4970,52888,1},{4967,52893,1},{4967,52899,1}, {4965,52903,1},{4968,52926,1},{4965,52928,1},{4965,52923,1},{4963,52903,1}, {4963,52889,1},{4962,52888,1},{4958,52879,1},{4943,52881,1},{4940,52878,1}, {4937,52883,1},{4938,52889,1},{4940,52889,1},{4945,52888,1},{4947,52894,1}, {4945,52894,1},{4943,52896,1},{4942,52896,1},{4935,52906,1},{4940,52909,1}, {4945,52911,1},{4945,52913,1},{4942,52913,1},{4940,52918,1},{4945,52931,1}, {4940,52929,1},{4935,52929,1},{4932,52934,1},{4935,52939,1},{4938,52939,1}, {4943,52946,1},{4940,52946,1},{4932,52941,1},{4928,52934,1},{4922,52939,1}, {4927,52946,1},{4927,52951,1},{4937,52958,1},{4925,52956,1},{4923,52958,1}, {4925,52963,1},{4915,52961,1},{4922,52974,1},{4920,52974,1},{4910,52963,1}, {4912,52954,1},{4910,52949,1},{4908,52948,1},{4905,52954,1},{4905,52963,1}, {4900,52973,1},{4897,52974,1},{4897,52979,1},{4892,52986,1},{4892,52991,1}, {4898,52999,1},{4903,53003,1},{4902,53011,1},{4897,53003,1},{4895,53013,1}, {4895,53014,1},{4900,53021,1},{4897,53026,1},{4900,53033,1},{4898,53041,1}, {4900,53046,1},{4912,53053,1},{4922,53054,1},{4923,53054,1},{4913,53058,1}, {4902,53051,1},{4897,53046,1},{4895,53038,1},{4893,53034,1},{4888,53034,1}, {4888,53029,1},{4883,53024,1},{4880,53018,1},{4877,53023,1},{4873,53024,1}, {4865,53054,1},{4860,53059,1},{4858,53068,1},{4853,53084,1},{4855,53089,1}, {4857,53091,1},{4857,53096,1},{4853,53093,1},{4852,53094,1},{4850,53106,1}, {4847,53109,1},{4837,53144,1},{4835,53154,1},{4837,53159,1},{4830,53171,1}, {4832,53176,1},{4830,53178,1},{4830,53181,1},{4833,53181,1},{4835,53184,1}, {4837,53184,1},{4840,53189,1},{4845,53191,1},{4840,53199,1},{4840,53204,1}, {4842,53208,1},{4845,53208,1},{4848,53206,1},{4852,53203,1},{4858,53199,1}, {4860,53198,1},{4868,53196,1},{4868,53189,1},{4865,53193,1},{4863,53188,1}, {4857,53189,1},{4853,53183,1},{4855,53183,1},{4858,53184,1},{4865,53181,1}, {4867,53183,1},{4868,53183,1},{4875,53171,1},{4877,53173,1},{4875,53179,1}, {4878,53179,1},{4880,53176,1},{4883,53178,1},{4900,53153,1},{4898,53159,1}, {4900,53161,1},{4902,53159,1},{4903,53161,1},{4907,53158,1},{4912,53154,1}, {4913,53148,1},{4912,53146,1},{4913,53144,1},{4920,53139,1},{4922,53141,1}, {4923,53141,1},{4925,53124,1},{4925,53119,1},{4927,53121,1},{4927,53124,1}, {4932,53119,1},{4930,53116,1},{4932,53114,1},{4932,53111,1},{4935,53101,1}, {4937,53083,1},{4942,53073,1},{4947,53064,1},{4945,53061,1},{4947,53058,1}, {4950,53056,1},{4950,53053,1},{4953,53051,1},{4963,53044,1},{4967,53038,1}, {4968,53039,1},{4967,53048,1},{4972,53049,1},{4992,53019,1},{5007,53009,1}, {5010,53006,1},{5012,52999,1},{5015,53001,1},{5032,52993,1},{5037,52979,1}, {5035,52963,1},{5037,52959,1},{5038,52949,1},{5038,52941,1},{5043,52933,1}, {5047,52921,1},{5047,52909,1},{5048,52901,1},{5048,52891,1},{5050,52881,1}, {5048,52876,1},{5050,52873,1},{5055,52858,1},{5055,52853,1},{5052,52851,1}, {5055,52851,1},{5057,52839,1},{5058,52836,1},{5058,52828,1},{5062,52824,1}, {5062,52816,1},{5063,52813,1},{5070,52796,1},{5075,52794,1},{5075,52793,1}, {5070,52788,1},{6158,59069,129},{6155,59063,1},{6153,59068,1},{6152,59064,1}, {6150,59069,1},{6147,59068,1},{6143,59064,1},{6142,59056,1},{6138,59058,1}, {6132,59049,1},{6135,59044,1},{6135,59038,1},{6138,59038,1},{6140,59043,1}, {6140,59029,1},{6143,59024,1},{6145,59028,1},{6145,59019,1},{6150,59016,1}, {6153,58999,1},{6158,58989,1},{6163,58989,1},{6167,58999,1},{6170,59033,1}, {6167,59054,1},{6165,59064,1},{6163,59061,1},{6162,59058,1},{6163,59063,1}, {6162,59063,1},{6162,59069,1},{6158,59069,1},{6815,58034,129},{6803,58031,1}, {6795,58019,1},{6785,58026,1},{6782,58031,1},{6770,58029,1},{6762,58034,1}, {6755,58029,1},{6747,58019,1},{6743,58014,1},{6742,58004,1},{6735,57998,1}, {6735,57983,1},{6730,57976,1},{6730,57966,1},{6725,57946,1},{6727,57911,1}, {6725,57903,1},{6723,57894,1},{6725,57883,1},{6722,57869,1},{6725,57836,1}, {6730,57828,1},{6742,57819,1},{6745,57811,1},{6752,57811,1},{6755,57813,1}, {6770,57804,1},{6787,57814,1},{6815,57849,1},{6823,57863,1},{6828,57876,1}, {6830,57894,1},{6833,57908,1},{6830,57913,1},{6830,57929,1},{6833,57939,1}, {6833,57948,1},{6832,57969,1},{6828,57988,1},{6823,58023,1},{6815,58034,1}, {6298,57318,129},{6295,57329,1},{6295,57344,1},{6292,57349,1},{6288,57344,1}, {6285,57346,1},{6283,57341,1},{6272,57343,1},{6260,57323,1},{6258,57308,1}, {6255,57299,1},{6245,57291,1},{6238,57273,1},{6228,57259,1},{6217,57224,1}, {6222,57219,1},{6225,57206,1},{6222,57189,1},{6213,57169,1},{6215,57164,1}, {6217,57164,1},{6230,57163,1},{6233,57156,1},{6240,57143,1},{6247,57143,1}, {6257,57166,1},{6263,57171,1},{6268,57179,1},{6282,57183,1},{6292,57203,1}, {6292,57214,1},{6287,57221,1},{6283,57229,1},{6285,57236,1},{6293,57266,1}, {6292,57293,1},{6293,57298,1},{6295,57298,1},{6298,57309,1},{6298,57318,1}, {6242,57583,129},{6238,57591,1},{6230,57599,1},{6225,57609,1},{6217,57609,1}, {6205,57603,1},{6198,57604,1},{6200,57599,1},{6198,57598,1},{6188,57589,1}, {6185,57584,1},{6180,57583,1},{6177,57576,1},{6167,57573,1},{6158,57559,1}, {6157,57553,1},{6158,57551,1},{6168,57539,1},{6170,57534,1},{6172,57529,1}, {6175,57529,1},{6175,57518,1},{6178,57516,1},{6180,57508,1},{6187,57506,1}, {6188,57511,1},{6198,57506,1},{6207,57511,1},{6210,57509,1},{6222,57518,1}, {6228,57529,1},{6237,57534,1},{6240,57553,1},{6240,57556,1},{6240,57564,1}, {6237,57566,1},{6242,57576,1},{6242,57583,1},{5652,57623,129},{5647,57624,1}, {5643,57631,1},{5643,57643,1},{5635,57643,1},{5635,57646,1},{5633,57641,1}, {5632,57641,1},{5632,57648,1},{5627,57639,1},{5585,57616,1},{5587,57614,1}, {5595,57618,1},{5627,57638,1},{5633,57639,1},{5635,57636,1},{5637,57639,1}, {5638,57638,1},{5635,57631,1},{5622,57626,1},{5622,57631,1},{5618,57629,1}, {5587,57608,1},{5613,57623,1},{5623,57621,1},{5615,57611,1},{5597,57599,1}, {5587,57588,1},{5587,57579,1},{5590,57573,1},{5587,57569,1},{5578,57558,1}, {5610,57589,1},{5612,57589,1},{5613,57586,1},{5613,57583,1},{5608,57576,1}, {5597,57563,1},{5590,57553,1},{5583,57548,1},{5583,57546,1},{5588,57541,1}, {5590,57534,1},{5593,57536,1},{5610,57558,1},{5615,57561,1},{5623,57578,1}, {5628,57583,1},{5638,57588,1},{5655,57589,1},{5655,57593,1},{5645,57594,1}, {5635,57588,1},{5627,57588,1},{5620,57583,1},{5617,57576,1},{5612,57576,1}, {5618,57583,1},{5622,57594,1},{5645,57606,1},{5662,57609,1},{5655,57611,1}, {5655,57618,1},{5653,57619,1},{5655,57623,1},{5652,57623,1},{6057,58741,129}, {6050,58748,1},{6045,58756,1},{6042,58756,1},{6037,58751,1},{6032,58741,1}, {6028,58726,1},{6025,58718,1},{6022,58704,1},{6023,58699,1},{6025,58696,1}, {6030,58698,1},{6038,58704,1},{6047,58714,1},{6052,58718,1},{6057,58723,1}, {6058,58728,1},{6057,58741,1},{7403,53563,129},{7408,53561,1},{7413,53574,1}, {7422,53588,1},{7422,53618,1},{7420,53624,1},{7415,53628,1},{7413,53623,1}, {7410,53629,1},{7407,53628,1},{7407,53621,1},{7398,53618,1},{7402,53629,1}, {7400,53639,1},{7408,53656,1},{7413,53656,1},{7415,53649,1},{7418,53649,1}, {7423,53676,1},{7428,53728,1},{7423,53784,1},{7422,53798,1},{7407,53853,1}, {7400,53871,1},{7387,53903,1},{7385,53913,1},{7380,53931,1},{7372,53946,1}, {7367,53974,1},{7363,53978,1},{7357,53998,1},{7348,54004,1},{7345,53994,1}, {7342,53989,1},{7342,53978,1},{7333,53951,1},{7327,53908,1},{7325,53891,1}, {7323,53884,1},{7322,53869,1},{7312,53838,1},{7310,53823,1},{7305,53811,1}, {7305,53793,1},{7290,53739,1},{7282,53699,1},{7277,53686,1},{7273,53661,1}, {7263,53623,1},{7260,53618,1},{7255,53619,1},{7243,53604,1},{7235,53606,1}, {7228,53573,1},{7223,53559,1},{7222,53553,1},{7223,53519,1},{7225,53518,1}, {7225,53523,1},{7227,53523,1},{7227,53511,1},{7223,53511,1},{7220,53518,1}, {7215,53521,1},{7208,53516,1},{7195,53491,1},{7192,53491,1},{7188,53498,1}, {7175,53493,1},{7168,53498,1},{7155,53486,1},{7150,53476,1},{7143,53448,1}, {7138,53393,1},{7140,53376,1},{7142,53383,1},{7145,53378,1},{7145,53361,1}, {7127,53324,1},{7117,53276,1},{7108,53256,1},{7108,53223,1},{7112,53214,1}, {7122,53194,1},{7150,53169,1},{7153,53156,1},{7165,53141,1},{7170,53129,1}, {7180,53068,1},{7190,53038,1},{7195,53013,1},{7195,53011,1},{7195,53033,1}, {7193,53041,1},{7197,53041,1},{7198,53011,1},{7195,52959,1},{7197,52941,1}, {7197,52936,1},{7197,52946,1},{7198,52954,1},{7200,52959,1},{7208,52964,1}, {7212,52963,1},{7212,52956,1},{7217,52966,1},{7217,52979,1},{7218,52971,1}, {7222,52968,1},{7225,52971,1},{7225,52981,1},{7228,52988,1},{7230,52988,1}, {7230,52983,1},{7238,52996,1},{7242,52993,1},{7242,53001,1},{7245,53001,1}, {7248,53006,1},{7252,53019,1},{7255,53028,1},{7257,53041,1},{7260,53039,1}, {7260,53031,1},{7263,53026,1},{7265,53033,1},{7267,53031,1},{7267,53038,1}, {7270,53043,1},{7270,53034,1},{7275,53039,1},{7282,53033,1},{7285,53024,1}, {7287,53026,1},{7285,53041,1},{7288,53056,1},{7288,53069,1},{7293,53088,1}, {7295,53084,1},{7298,53086,1},{7298,53081,1},{7302,53073,1},{7302,53066,1}, {7300,53063,1},{7308,53049,1},{7313,53058,1},{7315,53071,1},{7320,53069,1}, {7335,53088,1},{7337,53096,1},{7342,53093,1},{7345,53099,1},{7345,53106,1}, {7348,53106,1},{7348,53119,1},{7352,53119,1},{7353,53129,1},{7365,53129,1}, {7370,53144,1},{7370,53151,1},{7375,53153,1},{7377,53159,1},{7382,53151,1}, {7383,53143,1},{7383,53128,1},{7387,53114,1},{7392,53116,1},{7397,53108,1}, {7398,53101,1},{7403,53098,1},{7407,53089,1},{7410,53089,1},{7412,53093,1}, {7420,53083,1},{7425,53084,1},{7427,53079,1},{7427,53066,1},{7432,53076,1}, {7432,53069,1},{7432,53059,1},{7433,53058,1},{7438,53116,1},{7437,53124,1}, {7440,53128,1},{7440,53151,1},{7445,53211,1},{7447,53298,1},{7453,53359,1}, {7455,53379,1},{7452,53393,1},{7453,53411,1},{7452,53413,1},{7452,53421,1}, {7447,53436,1},{7442,53439,1},{7428,53511,1},{7427,53524,1},{7427,53539,1}, {7423,53551,1},{7423,53584,1},{7422,53581,1},{7422,53569,1},{7418,53571,1}, {7410,53554,1},{7407,53553,1},{7403,53561,1},{7260,54076,129},{7258,54081,1}, {7257,54081,1},{7257,54103,1},{7258,54104,1},{7260,54113,1},{7263,54129,1}, {7267,54146,1},{7263,54148,1},{7263,54158,1},{7270,54184,1},{7262,54163,1}, {7260,54164,1},{7262,54171,1},{7265,54178,1},{7267,54191,1},{7273,54194,1}, {7275,54191,1},{7275,54176,1},{7278,54176,1},{7295,54206,1},{7300,54221,1}, {7302,54233,1},{7300,54254,1},{7297,54259,1},{7295,54281,1},{7290,54301,1}, {7290,54328,1},{7280,54383,1},{7275,54391,1},{7272,54413,1},{7267,54416,1}, {7257,54408,1},{7250,54388,1},{7248,54393,1},{7243,54379,1},{7238,54354,1}, {7235,54346,1},{7232,54354,1},{7233,54361,1},{7235,54368,1},{7235,54371,1}, {7223,54358,1},{7220,54359,1},{7230,54371,1},{7230,54376,1},{7233,54394,1}, {7235,54393,1},{7233,54378,1},{7237,54374,1},{7242,54394,1},{7247,54404,1}, {7247,54416,1},{7243,54413,1},{7240,54399,1},{7240,54408,1},{7237,54399,1}, {7235,54399,1},{7237,54408,1},{7237,54414,1},{7233,54416,1},{7233,54424,1}, {7228,54433,1},{7240,54428,1},{7243,54438,1},{7248,54436,1},{7247,54456,1}, {7252,54453,1},{7257,54464,1},{7255,54483,1},{7255,54488,1},{7250,54476,1}, {7243,54503,1},{7243,54504,1},{7250,54483,1},{7252,54493,1},{7255,54498,1}, {7255,54504,1},{7243,54531,1},{7247,54539,1},{7243,54558,1},{7255,54511,1}, {7257,54511,1},{7255,54528,1},{7248,54548,1},{7250,54558,1},{7255,54548,1}, {7262,54539,1},{7265,54526,1},{7265,54514,1},{7265,54509,1},{7267,54508,1}, {7268,54518,1},{7273,54518,1},{7273,54528,1},{7267,54551,1},{7267,54554,1}, {7270,54551,1},{7272,54559,1},{7273,54546,1},{7275,54529,1},{7273,54509,1}, {7277,54519,1},{7282,54514,1},{7285,54483,1},{7295,54461,1},{7300,54466,1}, {7302,54493,1},{7297,54546,1},{7292,54551,1},{7293,54563,1},{7292,54571,1}, {7290,54574,1},{7288,54561,1},{7277,54598,1},{7275,54596,1},{7277,54616,1}, {7275,54621,1},{7273,54624,1},{7272,54619,1},{7270,54626,1},{7267,54643,1}, {7265,54633,1},{7257,54631,1},{7258,54643,1},{7257,54651,1},{7260,54649,1}, {7257,54671,1},{7252,54676,1},{7235,54669,1},{7220,54684,1},{7215,54683,1}, {7213,54691,1},{7217,54691,1},{7213,54696,1},{7213,54693,1},{7212,54696,1}, {7198,54694,1},{7198,54706,1},{7193,54703,1},{7197,54711,1},{7195,54718,1}, {7192,54716,1},{7188,54706,1},{7183,54713,1},{7178,54708,1},{7175,54719,1}, {7173,54718,1},{7172,54711,1},{7170,54716,1},{7172,54729,1},{7167,54739,1}, {7163,54738,1},{7160,54751,1},{7162,54764,1},{7168,54753,1},{7172,54754,1}, {7172,54763,1},{7170,54766,1},{7173,54773,1},{7178,54783,1},{7180,54809,1}, {7187,54789,1},{7188,54793,1},{7187,54806,1},{7190,54811,1},{7193,54794,1}, {7197,54794,1},{7202,54774,1},{7207,54771,1},{7208,54774,1},{7212,54769,1}, {7212,54773,1},{7213,54766,1},{7213,54758,1},{7225,54756,1},{7230,54749,1}, {7228,54759,1},{7230,54764,1},{7235,54751,1},{7238,54756,1},{7242,54748,1}, {7245,54758,1},{7247,54746,1},{7252,54738,1},{7252,54748,1},{7258,54748,1}, {7262,54734,1},{7263,54741,1},{7267,54734,1},{7270,54736,1},{7275,54728,1}, {7278,54731,1},{7288,54721,1},{7292,54726,1},{7297,54719,1},{7298,54723,1}, {7303,54713,1},{7305,54721,1},{7308,54709,1},{7313,54706,1},{7317,54709,1}, {7320,54719,1},{7318,54749,1},{7327,54724,1},{7330,54721,1},{7332,54734,1}, {7335,54728,1},{7335,54741,1},{7332,54754,1},{7332,54773,1},{7328,54794,1}, {7320,54818,1},{7317,54829,1},{7318,54834,1},{7323,54824,1},{7328,54828,1}, {7332,54849,1},{7328,54861,1},{7322,54871,1},{7322,54888,1},{7318,54889,1}, {7312,54908,1},{7308,54913,1},{7307,54923,1},{7305,54931,1},{7307,54943,1}, {7305,54951,1},{7300,54953,1},{7297,54963,1},{7295,54976,1},{7293,54973,1}, {7292,54979,1},{7287,54984,1},{7287,54981,1},{7285,54991,1},{7278,54999,1}, {7277,54996,1},{7275,55003,1},{7273,55003,1},{7278,54989,1},{7278,54984,1}, {7273,54993,1},{7270,54991,1},{7265,55008,1},{7262,55001,1},{7255,55004,1}, {7255,55013,1},{7248,55011,1},{7248,55016,1},{7245,55014,1},{7247,55008,1}, {7245,55006,1},{7238,55016,1},{7218,55041,1},{7212,55033,1},{7207,55034,1}, {7205,55041,1},{7198,55049,1},{7183,55058,1},{7182,55069,1},{7157,55101,1}, {7150,55096,1},{7147,55104,1},{7142,55101,1},{7135,55108,1},{7137,55096,1}, {7135,55088,1},{7122,55091,1},{7112,55071,1},{7102,55088,1},{7097,55104,1}, {7097,55114,1},{7092,55124,1},{7075,55136,1},{7075,55153,1},{7060,55183,1}, {7060,55204,1},{7050,55226,1},{7050,55244,1},{7057,55223,1},{7067,55221,1}, {7067,55233,1},{7060,55251,1},{7050,55251,1},{7048,55268,1},{7042,55298,1}, {7038,55309,1},{7032,55316,1},{7035,55323,1},{7032,55331,1},{7027,55343,1}, {7027,55353,1},{7030,55356,1},{7030,55368,1},{7027,55378,1},{7022,55371,1}, {7012,55381,1},{7013,55388,1},{7012,55394,1},{7018,55398,1},{7013,55413,1}, {7017,55423,1},{7020,55424,1},{7015,55439,1},{7008,55436,1},{7002,55443,1}, {6997,55444,1},{6993,55439,1},{6992,55441,1},{6992,55446,1},{6982,55449,1}, {6977,55448,1},{6973,55441,1},{6970,55444,1},{6967,55439,1},{6967,55434,1}, {6965,55429,1},{6967,55426,1},{6968,55421,1},{6967,55414,1},{6967,55403,1}, {6983,55389,1},{6988,55394,1},{6992,55391,1},{6965,55369,1},{6972,55359,1}, {6975,55351,1},{6973,55344,1},{6973,55341,1},{6980,55333,1},{6985,55331,1}, {6982,55323,1},{6985,55318,1},{6990,55318,1},{6992,55314,1},{6990,55311,1}, {6985,55313,1},{6983,55303,1},{6980,55306,1},{6975,55301,1},{6977,55298,1}, {6982,55298,1},{6977,55296,1},{6978,55291,1},{6977,55286,1},{6973,55278,1}, {6977,55268,1},{6970,55276,1},{6970,55288,1},{6968,55288,1},{6957,55286,1}, {6953,55276,1},{6955,55266,1},{6953,55256,1},{6953,55253,1},{6955,55249,1}, {6957,55239,1},{6965,55214,1},{6970,55206,1},{6968,55199,1},{6970,55194,1}, {6968,55188,1},{6962,55186,1},{6955,55214,1},{6943,55223,1},{6945,55226,1}, {6952,55228,1},{6952,55231,1},{6950,55234,1},{6942,55238,1},{6937,55233,1}, {6927,55234,1},{6923,55229,1},{6920,55216,1},{6912,55216,1},{6912,55219,1}, {6915,55223,1},{6922,55234,1},{6938,55253,1},{6937,55259,1},{6938,55264,1}, {6942,55274,1},{6942,55283,1},{6948,55289,1},{6948,55301,1},{6950,55304,1}, {6948,55331,1},{6942,55343,1},{6935,55334,1},{6935,55319,1},{6932,55319,1}, {6933,55326,1},{6932,55326,1},{6928,55333,1},{6923,55328,1},{6927,55321,1}, {6928,55314,1},{6922,55314,1},{6918,55326,1},{6923,55333,1},{6927,55341,1}, {6922,55351,1},{6918,55361,1},{6912,55359,1},{6905,55349,1},{6900,55354,1}, {6897,55338,1},{6900,55333,1},{6898,55328,1},{6895,55321,1},{6895,55296,1}, {6892,55296,1},{6887,55283,1},{6887,55273,1},{6888,55266,1},{6890,55261,1}, {6888,55259,1},{6883,55266,1},{6883,55261,1},{6883,55253,1},{6880,55246,1}, {6880,55233,1},{6885,55216,1},{6883,55203,1},{6878,55199,1},{6880,55186,1}, {6883,55181,1},{6882,55173,1},{6883,55161,1},{6887,55141,1},{6885,55126,1}, {6890,55113,1},{6895,55109,1},{6893,55106,1},{6890,55109,1},{6893,55091,1}, {6888,55086,1},{6887,55078,1},{6887,55051,1},{6890,55021,1},{6895,55009,1}, {6897,55016,1},{6900,55019,1},{6898,55033,1},{6902,55033,1},{6902,55039,1}, {6903,55043,1},{6907,55044,1},{6910,55028,1},{6908,55024,1},{6905,55033,1}, {6908,55008,1},{6910,54991,1},{6915,54981,1},{6917,54971,1},{6917,54943,1}, {6915,54939,1},{6915,54933,1},{6915,54916,1},{6918,54896,1},{6923,54896,1}, {6927,54908,1},{6930,54909,1},{6933,54904,1},{6940,54904,1},{6950,54878,1}, {6943,54863,1},{6938,54861,1},{6935,54838,1},{6922,54843,1},{6918,54833,1}, {6915,54833,1},{6915,54823,1},{6902,54801,1},{6898,54781,1},{6895,54751,1}, {6893,54739,1},{6895,54683,1},{6893,54679,1},{6888,54683,1},{6883,54669,1}, {6878,54649,1},{6873,54643,1},{6870,54618,1},{6870,54596,1},{6863,54568,1}, {6862,54533,1},{6863,54514,1},{6857,54498,1},{6860,54493,1},{6862,54479,1}, {6858,54468,1},{6855,54441,1},{6855,54433,1},{6857,54433,1},{6858,54449,1}, {6860,54449,1},{6858,54423,1},{6858,54398,1},{6857,54396,1},{6855,54414,1}, {6852,54413,1},{6855,54379,1},{6852,54336,1},{6853,54324,1},{6852,54313,1}, {6852,54308,1},{6850,54296,1},{6850,54274,1},{6847,54271,1},{6847,54263,1}, {6847,54204,1},{6850,54211,1},{6850,54233,1},{6855,54224,1},{6860,54199,1}, {6865,54191,1},{6870,54191,1},{6882,54168,1},{6885,54174,1},{6890,54168,1}, {6895,54179,1},{6902,54179,1},{6903,54173,1},{6905,54181,1},{6908,54171,1}, {6912,54168,1},{6913,54173,1},{6915,54166,1},{6918,54166,1},{6917,54184,1}, {6918,54184,1},{6922,54166,1},{6922,54149,1},{6925,54143,1},{6925,54121,1}, {6928,54104,1},{6925,54059,1},{6925,54048,1},{6928,54044,1},{6928,54038,1}, {6925,54028,1},{6923,54019,1},{6927,54003,1},{6925,53986,1},{6930,53941,1}, {6933,53933,1},{6940,53883,1},{6947,53873,1},{6948,53879,1},{6952,53874,1}, {6957,53878,1},{6958,53863,1},{6957,53859,1},{6957,53863,1},{6953,53864,1}, {6957,53858,1},{6958,53844,1},{6960,53844,1},{6962,53851,1},{6965,53851,1}, {6970,53828,1},{6975,53811,1},{7000,53793,1},{7005,53803,1},{7012,53828,1}, {7022,53941,1},{7028,54016,1},{7028,54053,1},{7032,54081,1},{7032,54108,1}, {7032,54119,1},{7028,54129,1},{7027,54148,1},{7027,54209,1},{7025,54231,1}, {7023,54236,1},{7023,54239,1},{7025,54238,1},{7022,54258,1},{7020,54279,1}, {7020,54284,1},{7022,54278,1},{7023,54281,1},{7023,54298,1},{7023,54303,1}, {7025,54298,1},{7027,54323,1},{7028,54306,1},{7030,54308,1},{7025,54343,1}, {7027,54348,1},{7028,54391,1},{7030,54391,1},{7030,54378,1},{7032,54384,1}, {7033,54388,1},{7035,54373,1},{7037,54338,1},{7040,54329,1},{7047,54324,1}, {7050,54316,1},{7050,54306,1},{7052,54301,1},{7050,54296,1},{7053,54291,1}, {7052,54283,1},{7057,54264,1},{7057,54251,1},{7055,54249,1},{7053,54246,1}, {7057,54243,1},{7062,54228,1},{7060,54218,1},{7065,54216,1},{7065,54196,1}, {7068,54184,1},{7065,54183,1},{7065,54178,1},{7068,54163,1},{7072,54143,1}, {7072,54136,1},{7067,54121,1},{7068,54099,1},{7067,54093,1},{7062,54073,1}, {7062,54049,1},{7060,54024,1},{7060,53996,1},{7057,53978,1},{7060,53966,1}, {7060,53944,1},{7057,53931,1},{7060,53914,1},{7063,53919,1},{7063,53899,1}, {7063,53879,1},{7060,53864,1},{7062,53813,1},{7060,53801,1},{7063,53798,1}, {7062,53786,1},{7060,53784,1},{7060,53779,1},{7063,53764,1},{7072,53763,1}, {7080,53726,1},{7087,53709,1},{7097,53696,1},{7100,53696,1},{7117,53756,1}, {7118,53794,1},{7123,53826,1},{7125,53851,1},{7128,53856,1},{7137,53914,1}, {7137,53928,1},{7135,53919,1},{7133,53921,1},{7135,53931,1},{7137,53959,1}, {7138,53963,1},{7140,53958,1},{7138,53944,1},{7140,53941,1},{7142,53914,1}, {7143,53931,1},{7150,53963,1},{7148,53961,1},{7150,53974,1},{7148,53976,1}, {7145,53994,1},{7147,54004,1},{7148,54016,1},{7153,54029,1},{7148,53991,1}, {7150,53979,1},{7153,53991,1},{7155,53973,1},{7152,53941,1},{7145,53864,1}, {7142,53849,1},{7143,53826,1},{7140,53814,1},{7138,53798,1},{7138,53794,1}, {7145,53798,1},{7145,53789,1},{7147,53791,1},{7150,53779,1},{7148,53781,1}, {7145,53773,1},{7143,53788,1},{7138,53784,1},{7138,53768,1},{7140,53764,1}, {7137,53756,1},{7138,53746,1},{7137,53733,1},{7140,53711,1},{7143,53704,1}, {7150,53711,1},{7155,53731,1},{7153,53751,1},{7152,53759,1},{7155,53753,1}, {7155,53769,1},{7157,53771,1},{7158,53759,1},{7162,53748,1},{7160,53741,1}, {7162,53739,1},{7163,53741,1},{7167,53766,1},{7167,53733,1},{7163,53719,1}, {7160,53718,1},{7158,53706,1},{7158,53699,1},{7158,53694,1},{7162,53698,1}, {7163,53691,1},{7165,53691,1},{7167,53653,1},{7162,53646,1},{7158,53649,1}, {7158,53646,1},{7163,53631,1},{7168,53626,1},{7178,53623,1},{7188,53626,1}, {7198,53641,1},{7205,53663,1},{7212,53664,1},{7218,53678,1},{7218,53698,1}, {7222,53723,1},{7223,53726,1},{7233,53719,1},{7235,53691,1},{7238,53679,1}, {7243,53678,1},{7250,53683,1},{7260,53713,1},{7263,53719,1},{7270,53748,1}, {7283,53784,1},{7292,53801,1},{7292,53819,1},{7295,53829,1},{7295,53843,1}, {7305,53879,1},{7307,53893,1},{7312,53916,1},{7313,53939,1},{7318,53954,1}, {7320,53974,1},{7323,53996,1},{7327,54004,1},{7327,54016,1},{7328,54021,1}, {7332,54048,1},{7337,54066,1},{7338,54079,1},{7332,54113,1},{7323,54131,1}, {7315,54139,1},{7288,54131,1},{7280,54138,1},{7278,54113,1},{7273,54101,1}, {7268,54103,1},{7268,54111,1},{7265,54096,1},{7262,54091,1},{7260,54076,1}, {6492,57234,129},{6488,57241,1},{6487,57251,1},{6482,57256,1},{6478,57264,1}, {6477,57276,1},{6473,57281,1},{6477,57298,1},{6472,57316,1},{6468,57314,1}, {6468,57326,1},{6463,57333,1},{6450,57359,1},{6443,57358,1},{6435,57361,1}, {6432,57358,1},{6425,57363,1},{6420,57376,1},{6413,57376,1},{6408,57361,1}, {6408,57348,1},{6405,57343,1},{6407,57341,1},{6400,57338,1},{6400,57351,1}, {6403,57389,1},{6405,57393,1},{6408,57391,1},{6410,57398,1},{6407,57396,1}, {6407,57409,1},{6405,57411,1},{6398,57443,1},{6402,57444,1},{6405,57438,1}, {6410,57443,1},{6413,57441,1},{6408,57458,1},{6402,57466,1},{6398,57481,1}, {6397,57484,1},{6393,57481,1},{6390,57486,1},{6388,57479,1},{6390,57466,1}, {6388,57469,1},{6385,57496,1},{6380,57509,1},{6380,57516,1},{6375,57518,1}, {6373,57501,1},{6373,57491,1},{6363,57478,1},{6362,57469,1},{6353,57453,1}, {6352,57444,1},{6348,57443,1},{6345,57439,1},{6345,57426,1},{6348,57416,1}, {6353,57398,1},{6358,57383,1},{6357,57371,1},{6363,57359,1},{6363,57344,1}, {6368,57331,1},{6368,57314,1},{6367,57309,1},{6367,57311,1},{6368,57308,1}, {6365,57303,1},{6368,57289,1},{6372,57286,1},{6373,57281,1},{6377,57281,1}, {6380,57289,1},{6382,57298,1},{6390,57299,1},{6397,57281,1},{6398,57249,1}, {6395,57229,1},{6397,57226,1},{6400,57221,1},{6413,57239,1},{6418,57234,1}, {6418,57223,1},{6412,57218,1},{6413,57206,1},{6413,57201,1},{6410,57196,1}, {6412,57189,1},{6410,57183,1},{6405,57176,1},{6400,57168,1},{6393,57176,1}, {6387,57171,1},{6383,57176,1},{6377,57173,1},{6378,57163,1},{6377,57159,1}, {6375,57154,1},{6368,57144,1},{6367,57136,1},{6360,57126,1},{6363,57108,1}, {6360,57106,1},{6355,57096,1},{6338,57088,1},{6330,57078,1},{6330,57069,1}, {6320,57048,1},{6312,57013,1},{6312,56986,1},{6318,56976,1},{6325,56973,1}, {6342,56971,1},{6350,56976,1},{6355,56973,1},{6363,56976,1},{6367,56974,1}, {6370,56964,1},{6377,56964,1},{6370,56954,1},{6370,56939,1},{6363,56911,1}, {6367,56876,1},{6365,56868,1},{6358,56858,1},{6355,56848,1},{6355,56824,1}, {6358,56818,1},{6363,56813,1},{6370,56816,1},{6390,56843,1},{6397,56859,1}, {6402,56889,1},{6407,56899,1},{6408,56913,1},{6410,56918,1},{6413,56918,1}, {6418,56914,1},{6423,56904,1},{6425,56908,1},{6428,56901,1},{6437,56898,1}, {6440,56901,1},{6443,56896,1},{6455,56898,1},{6460,56894,1},{6480,56913,1}, {6482,56919,1},{6483,56916,1},{6487,56918,1},{6488,56914,1},{6492,56921,1}, {6497,56914,1},{6500,56913,1},{6507,56918,1},{6510,56923,1},{6520,56923,1}, {6528,56919,1},{6537,56926,1},{6538,56921,1},{6553,56926,1},{6562,56934,1}, {6572,56934,1},{6585,56954,1},{6592,56974,1},{6593,56986,1},{6592,56989,1}, {6585,56984,1},{6580,56986,1},{6580,56993,1},{6583,56998,1},{6582,57009,1}, {6578,57021,1},{6573,57021,1},{6572,57018,1},{6562,57031,1},{6557,57024,1}, {6555,57013,1},{6555,57008,1},{6553,57004,1},{6542,57034,1},{6532,57034,1}, {6525,57043,1},{6522,57044,1},{6522,57054,1},{6523,57056,1},{6530,57061,1}, {6533,57061,1},{6548,57078,1},{6545,57093,1},{6542,57091,1},{6538,57098,1}, {6533,57121,1},{6527,57113,1},{6522,57123,1},{6520,57128,1},{6518,57148,1}, {6517,57144,1},{6517,57148,1},{6517,57159,1},{6517,57183,1},{6513,57196,1}, {6507,57203,1},{6502,57203,1},{6495,57216,1},{6492,57234,1},{7353,55088,129}, {7345,55078,1},{7333,55079,1},{7320,55059,1},{7318,55063,1},{7315,55053,1}, {7308,55038,1},{7302,55038,1},{7298,55023,1},{7293,55016,1},{7295,55001,1}, {7292,55006,1},{7292,55003,1},{7287,55016,1},{7285,55008,1},{7287,55004,1}, {7287,54998,1},{7293,54989,1},{7303,54966,1},{7313,54946,1},{7317,54946,1}, {7318,54926,1},{7322,54931,1},{7327,54918,1},{7328,54916,1},{7328,54924,1}, {7330,54923,1},{7333,54904,1},{7340,54889,1},{7342,54873,1},{7347,54856,1}, {7347,54838,1},{7348,54833,1},{7370,54874,1},{7373,54916,1},{7373,54963,1}, {7377,54983,1},{7375,55021,1},{7367,55049,1},{7363,55054,1},{7363,55068,1}, {7360,55079,1},{7357,55086,1},{7353,55088,1},{6988,55749,129},{6985,55766,1}, {6982,55768,1},{6978,55774,1},{6977,55789,1},{6973,55794,1},{6970,55803,1}, {6968,55801,1},{6967,55788,1},{6960,55798,1},{6970,55806,1},{6967,55816,1}, {6962,55826,1},{6958,55828,1},{6948,55848,1},{6948,55858,1},{6945,55866,1}, {6943,55881,1},{6930,55914,1},{6927,55919,1},{6915,55911,1},{6912,55914,1}, {6905,55914,1},{6902,55923,1},{6905,55924,1},{6908,55921,1},{6917,55921,1}, {6923,55929,1},{6923,55931,1},{6908,55944,1},{6905,55938,1},{6900,55943,1}, {6897,55951,1},{6887,55953,1},{6888,55961,1},{6887,55969,1},{6883,55971,1}, {6883,55981,1},{6890,55999,1},{6885,56014,1},{6880,56009,1},{6875,55993,1}, {6867,55983,1},{6867,55979,1},{6873,55981,1},{6875,55976,1},{6872,55963,1}, {6873,55956,1},{6870,55956,1},{6867,55951,1},{6860,55951,1},{6862,55939,1}, {6860,55934,1},{6847,55908,1},{6845,55883,1},{6852,55844,1},{6855,55834,1}, {6858,55826,1},{6858,55821,1},{6853,55826,1},{6852,55821,1},{6853,55803,1}, {6855,55798,1},{6853,55788,1},{6865,55759,1},{6865,55751,1},{6870,55733,1}, {6867,55726,1},{6875,55708,1},{6882,55711,1},{6885,55699,1},{6883,55694,1}, {6877,55696,1},{6875,55688,1},{6875,55681,1},{6878,55678,1},{6880,55671,1}, {6878,55664,1},{6883,55649,1},{6885,55648,1},{6892,55654,1},{6893,55651,1}, {6895,55638,1},{6893,55636,1},{6890,55633,1},{6892,55624,1},{6887,55631,1}, {6885,55623,1},{6882,55618,1},{6887,55609,1},{6888,55593,1},{6895,55589,1}, {6902,55576,1},{6913,55589,1},{6912,55603,1},{6913,55603,1},{6917,55604,1}, {6913,55618,1},{6913,55636,1},{6917,55643,1},{6917,55658,1},{6920,55664,1}, {6927,55666,1},{6930,55671,1},{6927,55679,1},{6930,55684,1},{6930,55696,1}, {6933,55696,1},{6940,55681,1},{6945,55674,1},{6948,55678,1},{6947,55686,1}, {6947,55694,1},{6952,55676,1},{6958,55681,1},{6958,55689,1},{6957,55701,1}, {6947,55714,1},{6947,55726,1},{6942,55726,1},{6943,55736,1},{6945,55736,1}, {6950,55719,1},{6958,55709,1},{6960,55699,1},{6972,55704,1},{6978,55713,1}, {6982,55726,1},{6988,55734,1},{6988,55749,1},{5162,59974,129},{5158,59971,1}, {5157,59974,1},{5157,59979,1},{5157,59978,1},{5160,59984,1},{5160,59988,1}, {5157,59988,1},{5160,59991,1},{5157,59996,1},{5155,59994,1},{5157,59989,1}, {5153,59993,1},{5150,59991,1},{5152,59988,1},{5150,59983,1},{5147,59988,1}, {5148,59991,1},{5145,59991,1},{5137,59986,1},{5138,59981,1},{5137,59978,1}, {5135,59979,1},{5135,59974,1},{5130,59976,1},{5135,59959,1},{5133,59948,1}, {5135,59946,1},{5137,59941,1},{5135,59943,1},{5135,59938,1},{5138,59933,1}, {5135,59933,1},{5137,59928,1},{5132,59926,1},{5132,59934,1},{5127,59934,1}, {5127,59931,1},{5125,59934,1},{5123,59929,1},{5122,59934,1},{5120,59934,1}, {5115,59941,1},{5117,59943,1},{5120,59939,1},{5120,59944,1},{5123,59953,1}, {5122,59954,1},{5122,59959,1},{5117,59964,1},{5115,59961,1},{5112,59964,1}, {5108,59963,1},{5105,59961,1},{5107,59956,1},{5103,59958,1},{5097,59953,1}, {5092,59954,1},{5093,59953,1},{5095,59951,1},{5095,59949,1},{5090,59949,1}, {5090,59951,1},{5087,59948,1},{5090,59946,1},{5085,59941,1},{5072,59929,1}, {5072,59926,1},{5077,59928,1},{5075,59926,1},{5077,59923,1},{5090,59926,1}, {5088,59921,1},{5085,59919,1},{5085,59921,1},{5078,59921,1},{5078,59919,1}, {5068,59921,1},{5068,59926,1},{5067,59926,1},{5057,59913,1},{5052,59913,1}, {5052,59904,1},{5050,59911,1},{5042,59898,1},{5037,59896,1},{5037,59893,1}, {5038,59891,1},{5038,59886,1},{5035,59894,1},{5027,59889,1},{5015,59879,1}, {5013,59876,1},{5013,59869,1},{5010,59873,1},{5002,59861,1},{4993,59858,1}, {4992,59858,1},{4995,59863,1},{4995,59864,1},{4987,59863,1},{4985,59859,1}, {4983,59859,1},{4975,59846,1},{4975,59853,1},{4973,59858,1},{4960,59854,1}, {4955,59851,1},{4985,59879,1},{4990,59889,1},{4985,59893,1},{4985,59894,1}, {4988,59893,1},{4992,59896,1},{4990,59899,1},{4995,59898,1},{5002,59903,1}, {5005,59909,1},{5012,59914,1},{5015,59924,1},{5013,59924,1},{5013,59928,1}, {5012,59926,1},{5010,59929,1},{5007,59929,1},{5007,59928,1},{4997,59923,1}, {4992,59918,1},{4993,59921,1},{5000,59929,1},{5003,59936,1},{5000,59936,1}, {4997,59933,1},{4997,59936,1},{5003,59941,1},{5002,59948,1},{4997,59953,1}, {4995,59959,1},{4992,59961,1},{4995,59966,1},{4997,59969,1},{4997,59976,1}, {4997,59979,1},{5000,59988,1},{4995,59989,1},{4992,59988,1},{4990,59981,1}, {4985,59971,1},{4985,59968,1},{4983,59968,1},{4980,59953,1},{4977,59948,1}, {4973,59941,1},{4975,59936,1},{4972,59936,1},{4970,59929,1},{4968,59931,1}, {4962,59919,1},{4957,59919,1},{4967,59931,1},{4970,59939,1},{4972,59948,1}, {4967,59941,1},{4970,59946,1},{4968,59946,1},{4968,59953,1},{4963,59948,1}, {4960,59943,1},{4958,59948,1},{4955,59944,1},{4948,59928,1},{4942,59924,1}, {4943,59929,1},{4950,59938,1},{4952,59953,1},{4950,59959,1},{4948,59958,1}, {4948,59964,1},{4947,59959,1},{4945,59958,1},{4947,59969,1},{4943,59966,1}, {4942,59969,1},{4938,59969,1},{4940,59973,1},{4942,59973,1},{4948,59981,1}, {4948,59984,1},{4942,59979,1},{4937,59979,1},{4947,59988,1},{4945,59989,1}, {4947,59991,1},{4950,59993,1},{4950,60001,1},{4943,59993,1},{4943,59996,1}, {4945,60003,1},{4945,60004,1},{4942,60001,1},{4935,59991,1},{4937,59998,1}, {4935,59999,1},{4933,59998,1},{4935,59999,1},{4940,60004,1},{4938,60004,1}, {4940,60008,1},{4935,60006,1},{4935,60003,1},{4932,60004,1},{4935,60006,1}, {4935,60009,1},{4938,60013,1},{4942,60009,1},{4948,60009,1},{4953,60004,1}, {4953,60009,1},{4953,60014,1},{4952,60013,1},{4950,60016,1},{4953,60016,1}, {4953,60023,1},{4953,60021,1},{4947,60024,1},{4943,60019,1},{4942,60021,1}, {4938,60018,1},{4940,60016,1},{4935,60013,1},{4927,60014,1},{4922,60004,1}, {4917,59999,1},{4915,59999,1},{4915,60004,1},{4912,60003,1},{4912,60004,1}, {4910,60006,1},{4903,59998,1},{4908,60009,1},{4912,60018,1},{4912,60014,1}, {4910,60009,1},{4912,60008,1},{4917,60008,1},{4918,60011,1},{4918,60008,1}, {4925,60019,1},{4928,60031,1},{4935,60028,1},{4932,60033,1},{4933,60036,1}, {4928,60038,1},{4922,60033,1},{4925,60038,1},{4930,60039,1},{4930,60044,1}, {4928,60044,1},{4928,60048,1},{4933,60049,1},{4935,60048,1},{4942,60051,1}, {4940,60054,1},{4927,60053,1},{4928,60058,1},{4935,60059,1},{4932,60061,1}, {4933,60063,1},{4937,60064,1},{4938,60068,1},{4942,60073,1},{4943,60071,1}, {4953,60083,1},{4953,60093,1},{4950,60086,1},{4945,60083,1},{4947,60091,1}, {4947,60093,1},{4945,60089,1},{4942,60091,1},{4937,60088,1},{4933,60091,1}, {4927,60088,1},{4930,60091,1},{4932,60096,1},{4937,60096,1},{4943,60101,1}, {4943,60106,1},{4940,60106,1},{4942,60109,1},{4940,60111,1},{4942,60114,1}, {4937,60113,1},{4940,60116,1},{4940,60118,1},{4937,60118,1},{4938,60119,1}, {4945,60123,1},{4947,60128,1},{4945,60129,1},{4948,60133,1},{4947,60133,1}, {4947,60138,1},{4943,60133,1},{4945,60141,1},{4943,60149,1},{4940,60151,1}, {4938,60163,1},{4937,60164,1},{4937,60169,1},{4933,60169,1},{4932,60174,1}, {4933,60178,1},{4930,60178,1},{4928,60181,1},{4928,60188,1},{4925,60191,1}, {4923,60191,1},{4918,60183,1},{4915,60183,1},{4912,60179,1},{4912,60174,1}, {4910,60178,1},{4903,60176,1},{4902,60159,1},{4903,60153,1},{4902,60153,1}, {4902,60154,1},{4902,60164,1},{4898,60156,1},{4898,60148,1},{4897,60148,1}, {4895,60153,1},{4892,60154,1},{4890,60139,1},{4888,60139,1},{4890,60146,1}, {4888,60148,1},{4885,60139,1},{4883,60139,1},{4883,60131,1},{4882,60126,1}, {4882,60123,1},{4880,60118,1},{4878,60119,1},{4877,60116,1},{4877,60121,1}, {4878,60124,1},{4882,60136,1},{4880,60138,1},{4877,60136,1},{4877,60139,1}, {4878,60138,1},{4882,60141,1},{4883,60146,1},{4883,60153,1},{4882,60156,1}, {4878,60149,1},{4880,60144,1},{4877,60146,1},{4878,60151,1},{4877,60151,1}, {4873,60146,1},{4875,60139,1},{4873,60134,1},{4872,60143,1},{4870,60143,1}, {4867,60141,1},{4865,60146,1},{4862,60143,1},{4863,60148,1},{4868,60158,1}, {4867,60146,1},{4868,60143,1},{4875,60153,1},{4870,60151,1},{4872,60159,1}, {4870,60163,1},{4870,60161,1},{4868,60166,1},{4865,60163,1},{4867,60166,1}, {4870,60174,1},{4868,60176,1},{4867,60176,1},{4863,60171,1},{4862,60158,1}, {4858,60154,1},{4857,60143,1},{4853,60141,1},{4857,60146,1},{4857,60164,1}, {4855,60158,1},{4853,60158,1},{4853,60161,1},{4850,60161,1},{4848,60146,1}, {4842,60136,1},{4843,60128,1},{4838,60119,1},{4835,60123,1},{4840,60128,1}, {4840,60136,1},{4847,60148,1},{4847,60153,1},{4847,60154,1},{4838,60148,1}, {4837,60149,1},{4837,60153,1},{4838,60151,1},{4845,60158,1},{4848,60159,1}, {4853,60168,1},{4853,60173,1},{4853,60174,1},{4852,60169,1},{4850,60174,1}, {4843,60164,1},{4845,60171,1},{4843,60173,1},{4852,60178,1},{4850,60179,1}, {4848,60178,1},{4848,60181,1},{4840,60174,1},{4847,60181,1},{4845,60184,1}, {4850,60186,1},{4850,60189,1},{4858,60189,1},{4862,60193,1},{4862,60203,1}, {4858,60206,1},{4855,60204,1},{4855,60208,1},{4852,60211,1},{4857,60214,1}, {4858,60219,1},{4863,60221,1},{4865,60226,1},{4870,60229,1},{4868,60229,1}, {4867,60234,1},{4863,60234,1},{4860,60238,1},{4857,60236,1},{4855,60238,1}, {4853,60233,1},{4843,60229,1},{4840,60226,1},{4837,60219,1},{4835,60218,1}, {4835,60213,1},{4838,60208,1},{4838,60204,1},{4837,60203,1},{4838,60201,1}, {4835,60201,1},{4830,60198,1},{4828,60198,1},{4827,60191,1},{4817,60173,1}, {4817,60166,1},{4820,60161,1},{4818,60153,1},{4822,60148,1},{4823,60143,1}, {4817,60141,1},{4812,60144,1},{4808,60144,1},{4808,60168,1},{4807,60169,1}, {4805,60168,1},{4802,60158,1},{4803,60144,1},{4802,60144,1},{4800,60158,1}, {4802,60168,1},{4805,60176,1},{4800,60174,1},{4790,60166,1},{4790,60158,1}, {4788,60164,1},{4785,60164,1},{4777,60156,1},{4785,60148,1},{4785,60143,1}, {4783,60148,1},{4780,60151,1},{4772,60153,1},{4772,60151,1},{4765,60158,1}, {4762,60159,1},{4762,60163,1},{4768,60166,1},{4767,60169,1},{4760,60164,1}, {4758,60166,1},{4760,60169,1},{4757,60169,1},{4757,60173,1},{4752,60169,1}, {4755,60174,1},{4753,60176,1},{4753,60181,1},{4758,60179,1},{4758,60183,1}, {4762,60179,1},{4763,60183,1},{4762,60184,1},{4767,60184,1},{4768,60188,1}, {4773,60186,1},{4777,60191,1},{4780,60189,1},{4782,60193,1},{4787,60196,1}, {4787,60201,1},{4790,60199,1},{4802,60209,1},{4803,60218,1},{4807,60221,1}, {4803,60226,1},{4805,60231,1},{4808,60236,1},{4815,60241,1},{4817,60244,1}, {4810,60253,1},{4808,60243,1},{4805,60241,1},{4800,60241,1},{4792,60231,1}, {4787,60231,1},{4780,60223,1},{4775,60219,1},{4773,60216,1},{4772,60219,1}, {4768,60218,1},{4768,60221,1},{4765,60218,1},{4760,60209,1},{4762,60216,1}, {4758,60211,1},{4757,60213,1},{4760,60219,1},{4755,60209,1},{4755,60218,1}, {4747,60216,1},{4750,60219,1},{4747,60221,1},{4743,60216,1},{4743,60223,1}, {4742,60223,1},{4747,60229,1},{4755,60246,1},{4763,60251,1},{4768,60253,1}, {4780,60258,1},{4777,60261,1},{4775,60266,1},{4770,60266,1},{4767,60264,1}, {4765,60271,1},{4760,60271,1},{4755,60268,1},{4752,60274,1},{4748,60273,1}, {4747,60268,1},{4743,60271,1},{4740,60266,1},{4732,60261,1},{4730,60256,1}, {4730,60259,1},{4727,60254,1},{4725,60256,1},{4725,60254,1},{4710,60249,1}, {4708,60243,1},{4707,60251,1},{4705,60251,1},{4705,60249,1},{4702,60251,1}, {4700,60246,1},{4698,60248,1},{4697,60246,1},{4693,60248,1},{4692,60244,1}, {4678,60243,1},{4673,60234,1},{4665,60228,1},{4662,60219,1},{4665,60213,1}, {4672,60209,1},{4673,60209,1},{4668,60204,1},{4672,60201,1},{4668,60198,1}, {4673,60199,1},{4662,60183,1},{4662,60179,1},{4665,60174,1},{4672,60171,1}, {4675,60176,1},{4678,60176,1},{4687,60181,1},{4690,60188,1},{4688,60181,1}, {4680,60173,1},{4680,60171,1},{4682,60171,1},{4690,60176,1},{4692,60181,1}, {4695,60184,1},{4693,60181,1},{4695,60179,1},{4698,60179,1},{4693,60176,1}, {4695,60174,1},{4698,60176,1},{4698,60173,1},{4707,60179,1},{4708,60178,1}, {4713,60186,1},{4713,60184,1},{4717,60184,1},{4715,60179,1},{4720,60179,1}, {4713,60176,1},{4710,60173,1},{4715,60173,1},{4713,60171,1},{4708,60168,1}, {4708,60166,1},{4705,60166,1},{4703,60159,1},{4695,60154,1},{4693,60149,1}, {4692,60148,1},{4687,60143,1},{4685,60141,1},{4683,60134,1},{4680,60131,1}, {4682,60118,1},{4688,60116,1},{4695,60118,1},{4708,60128,1},{4723,60134,1}, {4722,60143,1},{4727,60136,1},{4732,60136,1},{4732,60138,1},{4732,60139,1}, {4730,60139,1},{4732,60144,1},{4735,60148,1},{4735,60144,1},{4737,60144,1}, {4743,60156,1},{4743,60151,1},{4745,60151,1},{4743,60144,1},{4745,60144,1}, {4752,60148,1},{4753,60146,1},{4758,60148,1},{4762,60146,1},{4760,60143,1}, {4775,60139,1},{4777,60136,1},{4782,60136,1},{4780,60131,1},{4780,60129,1}, {4782,60129,1},{4787,60128,1},{4782,60126,1},{4783,60124,1},{4788,60118,1}, {4790,60111,1},{4788,60111,1},{4785,60116,1},{4778,60114,1},{4770,60108,1}, {4770,60103,1},{4763,60104,1},{4752,60094,1},{4750,60089,1},{4748,60091,1}, {4748,60093,1},{4745,60096,1},{4742,60093,1},{4745,60093,1},{4745,60089,1}, {4740,60086,1},{4740,60089,1},{4737,60084,1},{4738,60083,1},{4737,60079,1}, {4735,60076,1},{4737,60074,1},{4748,60088,1},{4758,60094,1},{4760,60094,1}, {4738,60074,1},{4738,60071,1},{4737,60069,1},{4740,60068,1},{4738,60066,1}, {4737,60064,1},{4737,60066,1},{4735,60063,1},{4737,60063,1},{4737,60061,1}, {4738,60059,1},{4737,60054,1},{4742,60058,1},{4737,60053,1},{4738,60051,1}, {4742,60053,1},{4735,60048,1},{4733,60044,1},{4730,60043,1},{4728,60039,1}, {4728,60038,1},{4722,60031,1},{4717,60034,1},{4715,60029,1},{4717,60029,1}, {4720,60028,1},{4717,60023,1},{4717,60028,1},{4708,60029,1},{4708,60026,1}, {4707,60026,1},{4705,60023,1},{4700,60021,1},{4702,60018,1},{4707,60019,1}, {4707,60016,1},{4700,60018,1},{4695,60013,1},{4693,60013,1},{4690,60008,1}, {4690,59999,1},{4688,60001,1},{4687,59998,1},{4688,59989,1},{4693,59989,1}, {4692,59984,1},{4693,59984,1},{4693,59983,1},{4690,59981,1},{4692,59979,1}, {4688,59976,1},{4687,59973,1},{4687,59963,1},{4685,59963,1},{4687,59961,1}, {4687,59953,1},{4692,59939,1},{4693,59938,1},{4698,59939,1},{4707,59949,1}, {4708,59954,1},{4710,59959,1},{4708,59969,1},{4710,59973,1},{4713,59986,1}, {4718,59991,1},{4727,60006,1},{4740,60009,1},{4745,60016,1},{4748,60026,1}, {4750,60041,1},{4753,60041,1},{4753,60046,1},{4755,60051,1},{4758,60053,1}, {4757,60048,1},{4760,60051,1},{4767,60066,1},{4767,60059,1},{4768,60059,1}, {4767,60058,1},{4760,60041,1},{4758,60029,1},{4760,60028,1},{4767,60033,1}, {4778,60043,1},{4772,60034,1},{4768,60033,1},{4762,60026,1},{4758,60024,1}, {4760,60021,1},{4767,60023,1},{4763,60018,1},{4767,60004,1},{4765,59999,1}, {4768,59998,1},{4770,60001,1},{4773,60001,1},{4772,59998,1},{4768,59996,1}, {4772,59993,1},{4767,59993,1},{4765,59989,1},{4762,59989,1},{4763,59994,1}, {4762,59996,1},{4758,59993,1},{4758,59998,1},{4753,59994,1},{4752,59996,1}, {4748,59994,1},{4747,59993,1},{4747,59984,1},{4740,59978,1},{4740,59976,1}, {4745,59978,1},{4743,59969,1},{4752,59978,1},{4753,59973,1},{4752,59971,1}, {4752,59973,1},{4750,59971,1},{4750,59964,1},{4747,59966,1},{4745,59959,1}, {4753,59959,1},{4747,59956,1},{4747,59953,1},{4747,59951,1},{4747,59948,1}, {4743,59943,1},{4758,59961,1},{4755,59954,1},{4757,59954,1},{4753,59949,1}, {4750,59934,1},{4747,59926,1},{4750,59919,1},{4752,59919,1},{4757,59944,1}, {4767,59973,1},{4767,59968,1},{4762,59953,1},{4765,59944,1},{4768,59944,1}, {4773,59953,1},{4775,59953,1},{4780,59956,1},{4783,59954,1},{4787,59959,1}, {4788,59956,1},{4792,59963,1},{4795,59959,1},{4793,59959,1},{4790,59954,1}, {4788,59954,1},{4787,59953,1},{4780,59951,1},{4777,59946,1},{4775,59938,1}, {4770,59931,1},{4770,59926,1},{4772,59924,1},{4777,59931,1},{4775,59926,1}, {4777,59924,1},{4782,59923,1},{4783,59921,1},{4775,59924,1},{4772,59919,1}, {4772,59921,1},{4768,59923,1},{4768,59918,1},{4763,59919,1},{4763,59916,1}, {4765,59914,1},{4763,59913,1},{4763,59906,1},{4770,59908,1},{4775,59904,1}, {4770,59903,1},{4768,59904,1},{4763,59904,1},{4760,59901,1},{4762,59868,1}, {4762,59866,1},{4760,59869,1},{4758,59873,1},{4757,59869,1},{4760,59863,1}, {4763,59861,1},{4758,59861,1},{4757,59866,1},{4753,59858,1},{4753,59856,1}, {4752,59853,1},{4753,59851,1},{4755,59851,1},{4753,59849,1},{4755,59846,1}, {4758,59836,1},{4757,59823,1},{4758,59819,1},{4760,59823,1},{4763,59819,1}, {4760,59818,1},{4760,59811,1},{4758,59806,1},{4760,59803,1},{4763,59803,1}, {4762,59796,1},{4763,59794,1},{4763,59784,1},{4765,59783,1},{4763,59781,1}, {4760,59771,1},{4763,59769,1},{4765,59763,1},{4762,59759,1},{4765,59751,1}, {4765,59744,1},{4770,59748,1},{4770,59744,1},{4767,59741,1},{4770,59733,1}, {4767,59729,1},{4770,59729,1},{4767,59716,1},{4765,59714,1},{4767,59708,1}, {4765,59701,1},{4772,59703,1},{4775,59709,1},{4775,59703,1},{4772,59699,1}, {4767,59698,1},{4763,59693,1},{4765,59689,1},{4765,59686,1},{4767,59683,1}, {4763,59683,1},{4763,59678,1},{4762,59676,1},{4762,59673,1},{4763,59673,1}, {4760,59668,1},{4760,59646,1},{4757,59639,1},{4758,59638,1},{4757,59624,1}, {4755,59624,1},{4758,59616,1},{4757,59613,1},{4760,59611,1},{4762,59606,1}, {4772,59606,1},{4775,59608,1},{4777,59604,1},{4782,59603,1},{4792,59596,129}, {4793,59604,1},{4797,59606,1},{4803,59614,1},{4810,59631,1},{4812,59638,1}, {4818,59644,1},{4832,59666,1},{4837,59669,1},{4840,59673,1},{4843,59678,1}, {4845,59686,1},{4840,59676,1},{4843,59689,1},{4848,59694,1},{4852,59709,1}, {4853,59706,1},{4852,59698,1},{4850,59693,1},{4852,59689,1},{4850,59684,1}, {4852,59681,1},{4853,59679,1},{4855,59668,1},{4852,59653,1},{4852,59633,1}, {4847,59611,1},{4848,59609,1},{4852,59613,1},{4855,59614,1},{4860,59623,1}, {4870,59646,1},{4878,59659,1},{4865,59643,1},{4862,59641,1},{4858,59646,1}, {4855,59646,1},{4858,59651,1},{4863,59651,1},{4857,59654,1},{4857,59661,1}, {4857,59664,1},{4863,59669,1},{4868,59668,1},{4875,59671,1},{4877,59674,1}, {4882,59676,1},{4887,59681,1},{4893,59686,1},{4900,59686,1},{4903,59691,1}, {4912,59694,1},{4915,59701,1},{4912,59701,1},{4910,59699,1},{4910,59701,1}, {4908,59699,1},{4905,59699,1},{4907,59708,1},{4905,59721,1},{4900,59724,1}, {4898,59729,1},{4895,59739,1},{4897,59748,1},{4898,59746,1},{4898,59739,1}, {4898,59733,1},{4900,59731,1},{4903,59726,1},{4912,59721,1},{4913,59724,1}, {4912,59731,1},{4913,59738,1},{4912,59743,1},{4918,59751,1},{4915,59743,1}, {4917,59739,1},{4918,59744,1},{4915,59731,1},{4915,59726,1},{4918,59726,1}, {4918,59738,1},{4923,59743,1},{4922,59733,1},{4923,59716,1},{4930,59713,1}, {4940,59714,1},{4947,59721,1},{4955,59734,1},{4955,59739,1},{4953,59743,1}, {4950,59744,1},{4947,59744,1},{4943,59748,1},{4945,59748,1},{4948,59746,1}, {4950,59749,1},{4945,59761,1},{4947,59766,1},{4950,59758,1},{4957,59754,1}, {4953,59751,1},{4952,59749,1},{4960,59744,1},{4960,59741,1},{4972,59743,1}, {4983,59753,1},{5017,59776,1},{5022,59776,1},{5033,59784,1},{5037,59783,1}, {5048,59791,1},{5053,59798,1},{5058,59799,1},{5062,59804,1},{5060,59813,1}, {5062,59821,1},{5063,59819,1},{5062,59809,1},{5063,59808,1},{5063,59813,1}, {5063,59806,1},{5068,59803,1},{5070,59796,1},{5072,59801,1},{5072,59804,1}, {5073,59813,1},{5075,59816,1},{5075,59821,1},{5078,59828,1},{5087,59838,1}, {5092,59839,1},{5092,59843,1},{5093,59841,1},{5093,59838,1},{5095,59838,1}, {5095,59839,1},{5097,59839,1},{5097,59833,1},{5100,59831,1},{5102,59828,1}, {5102,59836,1},{5100,59836,1},{5098,59838,1},{5102,59846,1},{5105,59838,1}, {5107,59846,1},{5112,59849,1},{5113,59858,1},{5118,59856,1},{5120,59861,1}, {5123,59856,1},{5127,59861,1},{5132,59864,1},{5137,59874,1},{5142,59889,1}, {5142,59894,1},{5152,59919,1},{5152,59924,1},{5163,59946,1},{5162,59949,1}, {5162,59954,1},{5157,59948,1},{5155,59948,1},{5155,59953,1},{5150,59948,1}, {5150,59963,1},{5147,59974,1},{5148,59976,1},{5150,59968,1},{5153,59968,1}, {5153,59964,1},{5155,59963,1},{5158,59964,1},{5155,59964,1},{5158,59968,1}, {5160,59974,1},{5318,57428,129},{5312,57439,1},{5307,57441,1},{5302,57451,1}, {5293,57459,1},{5277,57469,1},{5270,57466,1},{5275,57434,1},{5283,57409,1}, {5287,57398,1},{5287,57386,1},{5293,57359,1},{5297,57343,1},{5302,57329,1}, {5312,57339,1},{5318,57351,1},{5318,57361,1},{5320,57369,1},{5322,57399,1}, {5320,57411,1},{5320,57426,1},{5318,57428,1},{4983,59186,129},{4978,59223,1}, {4973,59241,1},{4970,59246,1},{4970,59251,1},{4967,59261,1},{4967,59266,1}, {4963,59273,1},{4958,59284,1},{4950,59296,1},{4945,59311,1},{4942,59316,1}, {4938,59328,1},{4938,59334,1},{4935,59343,1},{4935,59348,1},{4932,59354,1}, {4928,59354,1},{4928,59358,1},{4925,59358,1},{4915,59369,1},{4912,59366,1}, {4908,59366,1},{4908,59359,1},{4907,59354,1},{4908,59346,1},{4907,59341,1}, {4908,59323,1},{4907,59313,1},{4907,59309,1},{4913,59291,1},{4915,59264,1}, {4923,59228,1},{4928,59213,1},{4932,59208,1},{4938,59178,1},{4940,59179,1}, {4945,59174,1},{4950,59174,1},{4955,59168,1},{4963,59153,1},{4972,59133,1}, {4975,59113,1},{4978,59104,1},{4982,59099,1},{4982,59098,1},{4980,59098,1}, {4978,59098,1},{4987,59084,1},{4990,59091,1},{4993,59111,1},{4995,59116,1}, {4992,59133,1},{4988,59143,1},{4983,59186,1},{4685,59504,129},{4672,59503,1}, {4668,59501,1},{4667,59496,1},{4665,59501,1},{4663,59498,1},{4660,59501,1}, {4655,59496,1},{4640,59489,1},{4637,59484,1},{4628,59481,1},{4625,59478,1}, {4620,59474,1},{4620,59478,1},{4627,59481,1},{4632,59489,1},{4633,59494,1}, {4632,59494,1},{4628,59494,1},{4610,59471,1},{4608,59466,1},{4610,59464,1}, {4608,59461,1},{4605,59449,1},{4608,59451,1},{4608,59448,1},{4598,59439,1}, {4595,59428,1},{4595,59424,1},{4592,59424,1},{4593,59436,1},{4597,59438,1}, {4602,59446,1},{4603,59449,1},{4603,59454,1},{4607,59461,1},{4605,59463,1}, {4598,59456,1},{4593,59456,1},{4590,59448,1},{4590,59429,1},{4588,59431,1}, {4587,59428,1},{4585,59428,1},{4588,59439,1},{4585,59444,1},{4585,59439,1}, {4582,59443,1},{4582,59436,1},{4582,59434,1},{4577,59424,1},{4575,59423,1}, {4573,59424,1},{4570,59421,1},{4568,59428,1},{4570,59431,1},{4575,59444,1}, {4572,59454,1},{4570,59456,1},{4565,59451,1},{4563,59453,1},{4565,59453,1}, {4567,59459,1},{4568,59459,1},{4567,59463,1},{4570,59463,1},{4572,59463,1}, {4575,59461,1},{4578,59464,1},{4580,59469,1},{4587,59476,1},{4592,59484,1}, {4593,59489,1},{4600,59496,1},{4595,59484,1},{4595,59481,1},{4593,59479,1}, {4592,59474,1},{4588,59468,1},{4590,59464,1},{4592,59461,1},{4593,59458,1}, {4595,59458,1},{4610,59488,1},{4618,59498,1},{4622,59506,1},{4623,59506,1}, {4622,59503,1},{4622,59496,1},{4610,59481,1},{4607,59473,1},{4607,59471,1}, {4623,59489,1},{4632,59501,1},{4632,59508,1},{4627,59511,1},{4623,59516,1}, {4615,59508,1},{4617,59513,1},{4613,59514,1},{4615,59516,1},{4620,59516,1}, {4625,59523,1},{4623,59533,1},{4620,59528,1},{4620,59541,1},{4615,59543,1}, {4618,59548,1},{4617,59554,1},{4615,59551,1},{4610,59548,1},{4608,59548,1}, {4610,59554,1},{4603,59546,1},{4603,59541,1},{4602,59539,1},{4600,59544,1}, {4600,59554,1},{4598,59553,1},{4595,59556,1},{4593,59556,1},{4593,59548,1}, {4590,59543,1},{4590,59539,1},{4587,59536,1},{4587,59523,1},{4583,59519,1}, {4582,59529,1},{4580,59529,1},{4577,59519,1},{4570,59513,1},{4568,59504,1}, {4563,59496,1},{4563,59489,1},{4563,59488,1},{4562,59486,1},{4560,59476,1}, {4557,59469,1},{4557,59463,1},{4558,59461,1},{4560,59451,1},{4562,59451,1}, {4563,59449,1},{4562,59446,1},{4562,59441,1},{4560,59439,1},{4562,59434,1}, {4558,59434,1},{4555,59419,1},{4558,59421,1},{4558,59416,1},{4560,59414,1}, {4558,59414,1},{4557,59409,1},{4553,59408,1},{4555,59404,1},{4567,59393,1}, {4583,59386,1},{4588,59388,1},{4593,59384,1},{4603,59381,1},{4607,59388,1}, {4615,59391,1},{4620,59399,1},{4623,59408,1},{4642,59421,1},{4645,59426,1}, {4652,59429,1},{4657,59433,1},{4660,59431,1},{4663,59433,1},{4663,59434,1}, {4658,59434,1},{4665,59439,1},{4680,59449,1},{4682,59456,1},{4688,59466,1}, {4702,59474,1},{4703,59478,1},{4702,59483,1},{4700,59488,1},{4702,59494,1}, {4702,59498,1},{4700,59498,1},{4690,59486,1},{4690,59491,1},{4687,59491,1}, {4687,59504,1},{4685,59504,1},{4763,59396,129},{4763,59398,1},{4762,59398,1}, {4760,59393,1},{4755,59386,1},{4755,59381,1},{4762,59389,1},{4762,59381,1}, {4742,59351,1},{4743,59358,1},{4747,59361,1},{4748,59364,1},{4753,59369,1}, {4755,59376,1},{4748,59366,1},{4740,59359,1},{4740,59353,1},{4735,59349,1}, {4733,59343,1},{4727,59341,1},{4727,59344,1},{4727,59346,1},{4723,59354,1}, {4727,59358,1},{4723,59356,1},{4722,59351,1},{4723,59348,1},{4722,59341,1}, {4723,59334,1},{4732,59341,1},{4740,59343,1},{4743,59351,1},{4763,59383,1}, {4763,59396,1},{4703,59138,129},{4695,59136,1},{4688,59139,1},{4685,59134,1}, {4682,59133,1},{4680,59131,1},{4682,59129,1},{4678,59128,1},{4675,59129,1}, {4675,59139,1},{4672,59138,1},{4665,59148,1},{4662,59148,1},{4662,59144,1}, {4660,59146,1},{4660,59149,1},{4663,59149,1},{4662,59153,1},{4658,59153,1}, {4657,59151,1},{4652,59148,1},{4650,59143,1},{4648,59143,1},{4650,59148,1}, {4650,59151,1},{4652,59153,1},{4650,59154,1},{4647,59153,1},{4645,59153,1}, {4643,59164,1},{4645,59166,1},{4648,59164,1},{4650,59163,1},{4652,59166,1}, {4653,59163,1},{4655,59164,1},{4657,59171,1},{4652,59188,1},{4648,59186,1}, {4647,59191,1},{4650,59194,1},{4652,59191,1},{4650,59204,1},{4645,59206,1}, {4642,59213,1},{4640,59213,1},{4643,59214,1},{4642,59229,1},{4643,59251,1}, {4642,59253,1},{4643,59254,1},{4645,59261,1},{4643,59278,1},{4645,59266,1}, {4648,59289,1},{4648,59326,1},{4645,59339,1},{4635,59319,1},{4635,59313,1}, {4638,59308,1},{4633,59309,1},{4635,59301,1},{4632,59303,1},{4630,59296,1}, {4628,59299,1},{4627,59299,1},{4627,59286,1},{4625,59293,1},{4622,59294,1}, {4622,59284,1},{4623,59278,1},{4620,59284,1},{4618,59286,1},{4620,59278,1}, {4618,59279,1},{4618,59276,1},{4617,59283,1},{4612,59281,1},{4612,59288,1}, {4613,59288,1},{4615,59284,1},{4615,59289,1},{4608,59291,1},{4605,59289,1}, {4605,59283,1},{4603,59279,1},{4602,59286,1},{4602,59289,1},{4600,59289,1}, {4597,59283,1},{4597,59263,1},{4595,59261,1},{4597,59253,1},{4600,59248,1}, {4600,59249,1},{4605,59243,1},{4605,59248,1},{4607,59246,1},{4607,59233,1}, {4610,59244,1},{4613,59249,1},{4615,59248,1},{4613,59241,1},{4615,59241,1}, {4618,59243,1},{4620,59241,1},{4618,59238,1},{4617,59238,1},{4622,59224,1}, {4625,59229,1},{4627,59229,1},{4627,59231,1},{4628,59233,1},{4630,59236,1}, {4632,59239,1},{4630,59231,1},{4623,59224,1},{4627,59216,1},{4622,59219,1}, {4620,59209,1},{4618,59213,1},{4620,59218,1},{4622,59219,1},{4620,59223,1}, {4617,59214,1},{4613,59213,1},{4618,59194,1},{4622,59188,1},{4620,59184,1}, {4622,59174,1},{4625,59166,1},{4628,59166,1},{4633,59154,1},{4635,59156,1}, {4633,59158,1},{4637,59156,1},{4635,59164,1},{4638,59159,1},{4638,59163,1}, {4640,59161,1},{4640,59148,1},{4642,59143,1},{4640,59138,1},{4640,59124,1}, {4643,59123,1},{4645,59124,1},{4645,59126,1},{4653,59124,1},{4655,59129,1}, {4657,59128,1},{4657,59131,1},{4658,59128,1},{4663,59129,1},{4658,59123,1}, {4663,59114,1},{4663,59096,1},{4670,59094,1},{4675,59098,1},{4682,59109,1}, {4690,59113,1},{4695,59118,1},{4702,59131,1},{4707,59136,1},{4703,59138,1}, {4588,57371,129},{4587,57371,1},{4580,57366,1},{4580,57376,1},{4580,57378,1}, {4577,57376,1},{4572,57371,1},{4570,57371,1},{4565,57366,1},{4560,57364,1}, {4560,57361,1},{4555,57356,1},{4552,57351,1},{4553,57344,1},{4557,57343,1}, {4555,57341,1},{4557,57336,1},{4560,57344,1},{4558,57344,1},{4558,57346,1}, {4562,57349,1},{4568,57361,1},{4570,57359,1},{4568,57351,1},{4562,57343,1}, {4560,57338,1},{4557,57334,1},{4558,57326,1},{4560,57326,1},{4562,57318,1}, {4565,57309,1},{4567,57308,1},{4567,57304,1},{4570,57299,1},{4570,57289,1}, {4575,57283,1},{4577,57273,1},{4580,57268,1},{4578,57264,1},{4580,57261,1}, {4578,57259,1},{4580,57254,1},{4580,57253,1},{4580,57249,1},{4582,57241,1}, {4583,57241,1},{4583,57234,1},{4585,57233,1},{4585,57231,1},{4587,57226,1}, {4587,57216,1},{4588,57213,1},{4593,57214,1},{4597,57218,1},{4595,57224,1}, {4592,57228,1},{4597,57231,1},{4595,57234,1},{4593,57238,1},{4595,57241,1}, {4597,57241,1},{4597,57249,1},{4600,57251,1},{4598,57256,1},{4597,57254,1}, {4592,57251,1},{4590,57254,1},{4588,57258,1},{4585,57261,1},{4587,57269,1}, {4583,57273,1},{4585,57274,1},{4585,57278,1},{4578,57283,1},{4585,57284,1}, {4587,57283,1},{4585,57279,1},{4587,57281,1},{4588,57276,1},{4590,57278,1}, {4592,57283,1},{4595,57286,1},{4593,57289,1},{4592,57289,1},{4597,57293,1}, {4598,57306,1},{4593,57308,1},{4595,57314,1},{4583,57319,1},{4585,57323,1}, {4593,57326,1},{4597,57333,1},{4598,57338,1},{4598,57343,1},{4595,57348,1}, {4590,57346,1},{4588,57353,1},{4587,57354,1},{4578,57351,1},{4573,57358,1}, {4582,57358,1},{4590,57366,1},{4590,57369,1},{4588,57371,1},{6828,58813,129}, {6825,58803,1},{6818,58803,1},{6815,58798,1},{6817,58779,1},{6817,58776,1}, {6812,58796,1},{6817,58806,1},{6825,58809,1},{6828,58823,1},{6830,58834,1}, {6827,58841,1},{6823,58859,1},{6817,58851,1},{6813,58854,1},{6807,58839,1}, {6802,58841,1},{6810,58853,1},{6813,58864,1},{6813,58869,1},{6805,58868,1}, {6798,58863,1},{6802,58871,1},{6815,58876,1},{6813,58904,1},{6808,58899,1}, {6808,58888,1},{6808,58909,1},{6808,58911,1},{6803,58914,1},{6802,58918,1}, {6798,58904,1},{6790,58896,1},{6787,58896,1},{6785,58889,1},{6788,58869,1}, {6787,58861,1},{6782,58886,1},{6783,58896,1},{6777,58898,1},{6790,58903,1}, {6795,58908,1},{6798,58918,1},{6798,58923,1},{6803,58941,1},{6815,58939,1}, {6817,58944,1},{6810,58951,1},{6808,58946,1},{6807,58951,1},{6795,58933,1}, {6788,58943,1},{6780,58934,1},{6763,58936,1},{6777,58943,1},{6782,58941,1}, {6787,58956,1},{6792,58959,1},{6795,58954,1},{6797,58956,1},{6797,58959,1}, {6797,58963,1},{6800,58969,1},{6800,58989,1},{6797,58991,1},{6785,58984,1}, {6778,58974,1},{6775,58979,1},{6770,58993,1},{6760,59001,1},{6760,59004,1}, {6770,58999,1},{6778,58981,1},{6782,58988,1},{6792,58994,1},{6795,59018,1}, {6798,59023,1},{6803,59019,1},{6802,59024,1},{6803,59028,1},{6805,59034,1}, {6798,59064,1},{6797,59063,1},{6793,59051,1},{6793,59029,1},{6792,59041,1}, {6783,59031,1},{6785,59024,1},{6778,59023,1},{6783,59031,1},{6782,59034,1}, {6778,59036,1},{6775,59031,1},{6775,59023,1},{6772,59019,1},{6765,59016,1}, {6763,59018,1},{6765,59019,1},{6772,59023,1},{6773,59034,1},{6777,59034,1}, {6778,59044,1},{6778,59054,1},{6772,59054,1},{6768,59049,1},{6770,59058,1}, {6782,59061,1},{6783,59071,1},{6780,59088,1},{6775,59091,1},{6777,59098,1}, {6777,59099,1},{6770,59096,1},{6770,59078,1},{6767,59073,1},{6770,59099,1}, {6773,59104,1},{6767,59116,1},{6763,59114,1},{6762,59108,1},{6760,59114,1}, {6762,59128,1},{6760,59129,1},{6755,59126,1},{6753,59133,1},{6752,59131,1}, {6752,59126,1},{6748,59123,1},{6747,59113,1},{6747,59093,1},{6745,59106,1}, {6747,59124,1},{6747,59134,1},{6742,59141,1},{6737,59143,1},{6733,59141,1}, {6733,59136,1},{6730,59146,1},{6732,59099,1},{6737,59059,1},{6735,59056,1}, {6733,59064,1},{6730,59094,1},{6730,59113,1},{6725,59101,1},{6725,59076,1}, {6722,59058,1},{6720,59054,1},{6718,59058,1},{6723,59078,1},{6723,59108,1}, {6727,59119,1},{6727,59139,1},{6722,59134,1},{6720,59118,1},{6713,59074,1}, {6708,59068,1},{6700,59068,1},{6702,59073,1},{6708,59074,1},{6712,59081,1}, {6715,59104,1},{6718,59121,1},{6718,59139,1},{6720,59146,1},{6723,59148,1}, {6723,59156,1},{6722,59161,1},{6723,59168,1},{6723,59178,1},{6722,59191,1}, {6717,59191,1},{6710,59183,1},{6703,59161,1},{6700,59156,1},{6697,59159,1}, {6700,59159,1},{6705,59168,1},{6708,59186,1},{6715,59196,1},{6720,59194,1}, {6728,59203,1},{6732,59209,1},{6730,59214,1},{6728,59214,1},{6725,59208,1}, {6728,59219,1},{6732,59216,1},{6733,59223,1},{6730,59234,1},{6722,59239,1}, {6717,59231,1},{6713,59214,1},{6710,59208,1},{6702,59214,1},{6697,59213,1}, {6690,59181,1},{6685,59181,1},{6683,59176,1},{6683,59156,1},{6682,59154,1}, {6680,59174,1},{6682,59183,1},{6683,59188,1},{6688,59186,1},{6692,59191,1}, {6690,59193,1},{6682,59196,1},{6672,59191,1},{6670,59194,1},{6682,59204,1}, {6687,59201,1},{6690,59203,1},{6690,59214,1},{6693,59223,1},{6693,59234,1}, {6697,59241,1},{6697,59251,1},{6682,59254,1},{6663,59246,1},{6667,59253,1}, {6672,59253,1},{6678,59263,1},{6683,59259,1},{6693,59259,1},{6695,59263,1}, {6695,59279,1},{6690,59286,1},{6685,59286,1},{6682,59294,1},{6678,59296,1}, {6673,59304,1},{6677,59306,1},{6685,59294,1},{6688,59291,1},{6693,59294,1}, {6695,59309,1},{6703,59308,1},{6705,59324,1},{6703,59336,1},{6692,59326,1}, {6690,59329,1},{6690,59334,1},{6697,59341,1},{6697,59351,1},{6693,59351,1}, {6695,59358,1},{6693,59363,1},{6690,59361,1},{6690,59356,1},{6690,59339,1}, {6687,59336,1},{6688,59354,1},{6687,59359,1},{6688,59364,1},{6687,59376,1}, {6683,59371,1},{6682,59363,1},{6682,59381,1},{6678,59388,1},{6675,59389,1}, {6673,59398,1},{6663,59409,1},{6660,59408,1},{6657,59401,1},{6658,59396,1}, {6653,59391,1},{6655,59376,1},{6665,59363,1},{6665,59348,1},{6670,59336,1}, {6665,59334,1},{6663,59324,1},{6663,59318,1},{6660,59324,1},{6665,59338,1}, {6660,59358,1},{6648,59378,1},{6645,59364,1},{6643,59358,1},{6645,59349,1}, {6642,59338,1},{6640,59343,1},{6642,59353,1},{6640,59364,1},{6642,59381,1}, {6638,59384,1},{6637,59389,1},{6637,59384,1},{6633,59381,1},{6635,59376,1}, {6632,59368,1},{6633,59358,1},{6630,59354,1},{6628,59346,1},{6633,59328,1}, {6632,59324,1},{6632,59316,1},{6633,59314,1},{6640,59313,1},{6642,59281,1}, {6645,59276,1},{6643,59273,1},{6640,59276,1},{6642,59266,1},{6640,59264,1}, {6638,59273,1},{6640,59288,1},{6637,59288,1},{6633,59296,1},{6630,59304,1}, {6622,59269,1},{6623,59268,1},{6625,59261,1},{6630,59258,1},{6633,59249,1}, {6633,59246,1},{6628,59254,1},{6623,59254,1},{6620,59264,1},{6620,59274,1}, {6622,59283,1},{6620,59288,1},{6618,59299,1},{6617,59299,1},{6615,59306,1}, {6615,59324,1},{6613,59324,1},{6613,59319,1},{6610,59319,1},{6610,59331,1}, {6608,59328,1},{6607,59334,1},{6607,59328,1},{6605,59326,1},{6605,59338,1}, {6602,59341,1},{6602,59338,1},{6602,59331,1},{6600,59328,1},{6602,59316,1}, {6597,59306,1},{6602,59298,1},{6602,59289,1},{6603,59284,1},{6602,59276,1}, {6605,59266,1},{6603,59258,1},{6607,59251,1},{6613,59246,1},{6613,59234,1}, {6612,59229,1},{6612,59241,1},{6612,59244,1},{6605,59248,1},{6602,59256,1}, {6602,59278,1},{6600,59284,1},{6598,59288,1},{6597,59294,1},{6593,59298,1}, {6592,59291,1},{6590,59293,1},{6590,59299,1},{6587,59298,1},{6582,59308,1}, {6578,59288,1},{6580,59283,1},{6582,59283,1},{6580,59278,1},{6582,59269,1}, {6587,59256,1},{6592,59251,1},{6588,59249,1},{6585,59254,1},{6583,59254,1}, {6582,59261,1},{6582,59266,1},{6575,59279,1},{6572,59278,1},{6577,59251,1}, {6572,59256,1},{6570,59268,1},{6568,59271,1},{6567,59276,1},{6558,59271,1}, {6560,59269,1},{6563,59269,1},{6563,59264,1},{6558,59263,1},{6560,59256,1}, {6563,59249,1},{6573,59248,1},{6575,59243,1},{6575,59239,1},{6572,59244,1}, {6563,59248,1},{6558,59239,1},{6558,59236,1},{6563,59233,1},{6565,59219,1}, {6563,59219,1},{6563,59216,1},{6585,59193,1},{6593,59189,1},{6593,59186,1}, {6588,59183,1},{6573,59199,1},{6572,59198,1},{6567,59201,1},{6568,59189,1}, {6567,59176,1},{6568,59166,1},{6567,59163,1},{6565,59169,1},{6563,59199,1}, {6560,59204,1},{6553,59201,1},{6552,59189,1},{6553,59186,1},{6560,59178,1}, {6558,59174,1},{6555,59179,1},{6553,59174,1},{6552,59183,1},{6548,59183,1}, {6548,59191,1},{6548,59194,1},{6543,59208,1},{6543,59193,1},{6547,59179,1}, {6547,59171,1},{6540,59189,1},{6540,59198,1},{6538,59184,1},{6538,59189,1}, {6537,59188,1},{6532,59199,1},{6530,59198,1},{6530,59203,1},{6528,59198,1}, {6530,59191,1},{6527,59191,1},{6527,59201,1},{6525,59203,1},{6523,59191,1}, {6522,59204,1},{6518,59203,1},{6520,59199,1},{6518,59184,1},{6517,59193,1}, {6515,59188,1},{6513,59203,1},{6512,59199,1},{6510,59193,1},{6507,59199,1}, {6505,59189,1},{6505,59198,1},{6503,59196,1},{6503,59189,1},{6500,59191,1}, {6497,59183,1},{6495,59186,1},{6488,59181,1},{6492,59171,1},{6493,59173,1}, {6495,59171,1},{6497,59176,1},{6500,59174,1},{6497,59163,1},{6498,59154,1}, {6502,59154,1},{6502,59159,1},{6503,59161,1},{6503,59171,1},{6505,59166,1}, {6503,59154,1},{6503,59149,1},{6510,59148,1},{6517,59156,1},{6518,59156,1}, {6518,59149,1},{6510,59141,1},{6510,59134,1},{6512,59129,1},{6507,59128,1}, {6505,59124,1},{6510,59116,1},{6510,59108,1},{6515,59114,1},{6520,59128,1}, {6520,59113,1},{6515,59104,1},{6520,59096,1},{6525,59098,1},{6528,59103,1}, {6530,59101,1},{6528,59098,1},{6527,59096,1},{6528,59096,1},{6538,59111,1}, {6543,59113,1},{6542,59108,1},{6535,59101,1},{6533,59094,1},{6530,59089,1}, {6518,59089,1},{6510,59081,1},{6513,59078,1},{6512,59073,1},{6515,59074,1}, {6515,59071,1},{6520,59074,1},{6517,59071,1},{6515,59063,1},{6520,59068,1}, {6523,59064,1},{6525,59071,1},{6525,59064,1},{6527,59063,1},{6523,59056,1}, {6525,59051,1},{6528,59046,1},{6528,59051,1},{6530,59044,1},{6532,59054,1}, {6532,59059,1},{6533,59068,1},{6533,59044,1},{6538,59059,1},{6540,59069,1}, {6543,59078,1},{6542,59091,1},{6548,59094,1},{6545,59089,1},{6545,59084,1}, {6547,59084,1},{6545,59074,1},{6547,59071,1},{6545,59069,1},{6543,59066,1}, {6542,59054,1},{6542,59049,1},{6540,59039,1},{6537,59036,1},{6538,59029,1}, {6542,59023,1},{6547,59023,1},{6548,59019,1},{6552,59043,1},{6558,59049,1}, {6558,59058,1},{6560,59053,1},{6563,59054,1},{6565,59064,1},{6567,59056,1}, {6565,59049,1},{6555,59039,1},{6553,59021,1},{6555,59014,1},{6560,59016,1}, {6555,59004,1},{6558,59003,1},{6560,59006,1},{6563,59006,1},{6563,59023,1}, {6567,59026,1},{6570,59039,1},{6572,59056,1},{6573,59056,1},{6572,59034,1}, {6565,59019,1},{6567,58999,1},{6567,58991,1},{6578,58998,1},{6573,58989,1}, {6575,58986,1},{6583,58991,1},{6592,59001,1},{6600,59043,1},{6597,59056,1}, {6597,59063,1},{6603,59051,1},{6610,59058,1},{6622,59064,1},{6628,59081,1}, {6632,59096,1},{6635,59101,1},{6633,59096,1},{6635,59089,1},{6632,59083,1}, {6630,59078,1},{6627,59064,1},{6620,59053,1},{6612,59051,1},{6608,59043,1}, {6607,59033,1},{6602,59013,1},{6603,59008,1},{6602,59006,1},{6598,58998,1}, {6597,58959,1},{6595,58948,1},{6597,58943,1},{6605,58939,1},{6610,58946,1}, {6610,58953,1},{6617,58973,1},{6630,58984,1},{6632,58989,1},{6632,58983,1}, {6635,58989,1},{6638,58988,1},{6633,58981,1},{6627,58979,1},{6618,58966,1}, {6617,58958,1},{6613,58951,1},{6610,58939,1},{6613,58921,1},{6617,58916,1}, {6620,58916,1},{6622,58909,1},{6625,58913,1},{6623,58918,1},{6628,58921,1}, {6623,58909,1},{6625,58904,1},{6627,58904,1},{6625,58901,1},{6627,58893,1}, {6620,58899,1},{6622,58886,1},{6628,58881,1},{6627,58889,1},{6632,58884,1}, {6635,58889,1},{6635,58879,1},{6637,58878,1},{6642,58893,1},{6638,58876,1}, {6637,58873,1},{6638,58859,1},{6638,58864,1},{6642,58866,1},{6645,58868,1}, {6645,58864,1},{6643,58863,1},{6645,58854,1},{6650,58858,1},{6653,58856,1}, {6653,58851,1},{6658,58864,1},{6660,58861,1},{6658,58849,1},{6665,58834,1}, {6665,58829,1},{6663,58831,1},{6657,58848,1},{6653,58836,1},{6653,58833,1}, {6652,58831,1},{6653,58821,1},{6652,58821,1},{6652,58828,1},{6648,58826,1}, {6650,58816,1},{6653,58818,1},{6657,58803,1},{6660,58803,1},{6657,58793,1}, {6660,58786,1},{6662,58784,1},{6662,58781,1},{6660,58784,1},{6657,58784,1}, {6660,58773,1},{6658,58773,1},{6657,58761,1},{6655,58766,1},{6655,58799,1}, {6652,58808,1},{6647,58809,1},{6645,58821,1},{6638,58823,1},{6637,58819,1}, {6640,58813,1},{6640,58801,1},{6643,58801,1},{6642,58794,1},{6638,58804,1}, {6635,58816,1},{6630,58824,1},{6630,58811,1},{6628,58809,1},{6628,58803,1}, {6632,58799,1},{6630,58796,1},{6630,58794,1},{6632,58791,1},{6635,58791,1}, {6635,58786,1},{6638,58786,1},{6642,58773,1},{6645,58773,1},{6643,58768,1}, {6645,58763,1},{6647,58754,1},{6652,58751,1},{6648,58748,1},{6652,58744,1}, {6650,58736,1},{6645,58749,1},{6642,58751,1},{6635,58759,1},{6632,58763,1}, {6628,58766,1},{6625,58763,1},{6623,58769,1},{6618,58781,1},{6618,58788,1}, {6615,58789,1},{6612,58806,1},{6605,58811,1},{6603,58819,1},{6600,58814,1}, {6600,58804,1},{6598,58811,1},{6595,58813,1},{6593,58819,1},{6592,58816,1}, {6593,58808,1},{6592,58801,1},{6595,58794,1},{6592,58794,1},{6590,58789,1}, {6590,58776,1},{6593,58768,1},{6597,58761,1},{6593,58763,1},{6588,58766,1}, {6588,58756,1},{6590,58743,1},{6598,58738,1},{6600,58733,1},{6607,58733,1}, {6608,58739,1},{6615,58713,1},{6622,58708,1},{6622,58701,1},{6617,58703,1}, {6618,58698,1},{6627,58691,1},{6630,58686,1},{6630,58683,1},{6622,58688,1}, {6620,58683,1},{6618,58651,1},{6617,58678,1},{6618,58683,1},{6618,58691,1}, {6613,58698,1},{6607,58711,1},{6608,58714,1},{6612,58709,1},{6612,58714,1}, {6613,58714,1},{6612,58723,1},{6608,58726,1},{6608,58733,1},{6598,58729,1}, {6598,58726,1},{6602,58726,1},{6602,58723,1},{6602,58716,1},{6598,58724,1}, {6597,58724,1},{6597,58716,1},{6603,58701,1},{6600,58704,1},{6595,58718,1}, {6597,58706,1},{6595,58704,1},{6592,58703,1},{6590,58708,1},{6592,58716,1}, {6590,58718,1},{6592,58719,1},{6593,58721,1},{6592,58723,1},{6587,58721,1}, {6585,58718,1},{6583,58728,1},{6580,58716,1},{6578,58726,1},{6578,58734,1}, {6580,58741,1},{6578,58748,1},{6582,58749,1},{6582,58754,1},{6577,58754,1}, {6575,58741,1},{6570,58738,1},{6570,58749,1},{6563,58749,1},{6562,58744,1}, {6563,58738,1},{6562,58738,1},{6560,58744,1},{6558,58741,1},{6560,58738,1}, {6557,58729,1},{6555,58734,1},{6557,58739,1},{6557,58741,1},{6548,58733,1}, {6558,58749,1},{6558,58756,1},{6563,58763,1},{6567,58779,1},{6565,58788,1}, {6567,58789,1},{6567,58803,1},{6562,58811,1},{6558,58803,1},{6557,58808,1}, {6553,58809,1},{6555,58801,1},{6553,58798,1},{6553,58794,1},{6552,58796,1}, {6552,58803,1},{6550,58803,1},{6550,58789,1},{6547,58799,1},{6545,58801,1}, {6547,58808,1},{6545,58813,1},{6547,58821,1},{6547,58828,1},{6545,58831,1}, {6543,58824,1},{6543,58831,1},{6537,58824,1},{6537,58804,1},{6535,58803,1}, {6535,58794,1},{6533,58794,1},{6532,58803,1},{6533,58806,1},{6535,58809,1}, {6533,58816,1},{6532,58824,1},{6527,58819,1},{6525,58828,1},{6523,58821,1}, {6522,58819,1},{6522,58824,1},{6520,58824,1},{6522,58833,1},{6520,58838,1}, {6523,58843,1},{6510,58839,1},{6510,58831,1},{6507,58826,1},{6508,58838,1}, {6508,58841,1},{6505,58839,1},{6507,58846,1},{6510,58848,1},{6515,58853,1}, {6518,58863,1},{6512,58861,1},{6510,58853,1},{6508,58856,1},{6505,58856,1}, {6505,58844,1},{6503,58851,1},{6507,58859,1},{6505,58859,1},{6500,58858,1}, {6500,58863,1},{6497,58861,1},{6493,58853,1},{6493,58859,1},{6492,58863,1}, {6487,58859,1},{6485,58863,1},{6477,58866,1},{6478,58873,1},{6482,58868,1}, {6495,58871,1},{6503,58868,1},{6502,58883,1},{6495,58883,1},{6498,58888,1}, {6493,58888,1},{6492,58898,1},{6493,58899,1},{6493,58903,1},{6487,58904,1}, {6490,58909,1},{6487,58921,1},{6477,58916,1},{6477,58903,1},{6475,58916,1}, {6468,58914,1},{6468,58921,1},{6478,58924,1},{6485,58934,1},{6478,58934,1}, {6475,58933,1},{6470,58933,1},{6472,58936,1},{6477,58936,1},{6475,58941,1}, {6467,58946,1},{6463,58954,1},{6465,58956,1},{6473,58946,1},{6475,58951,1}, {6480,58943,1},{6483,58948,1},{6483,58944,1},{6488,58941,1},{6488,58946,1}, {6487,58949,1},{6488,58951,1},{6487,58958,1},{6480,58958,1},{6485,58963,1}, {6482,58969,1},{6480,58969,1},{6473,58961,1},{6468,58966,1},{6473,58964,1}, {6477,58971,1},{6472,58981,1},{6470,58978,1},{6463,58978,1},{6460,58969,1}, {6458,58961,1},{6457,58964,1},{6450,58963,1},{6448,58966,1},{6450,58981,1}, {6448,58986,1},{6447,58986,1},{6448,58989,1},{6453,58999,1},{6450,59003,1}, {6448,58999,1},{6447,58994,1},{6443,58996,1},{6448,59003,1},{6447,59008,1}, {6448,59008,1},{6452,59009,1},{6453,59014,1},{6448,59013,1},{6452,59023,1}, {6450,59024,1},{6448,59018,1},{6448,59028,1},{6442,59028,1},{6438,59018,1}, {6440,59011,1},{6438,59009,1},{6437,59016,1},{6435,59018,1},{6430,59014,1}, {6428,59006,1},{6430,58998,1},{6432,58984,1},{6430,58969,1},{6430,58974,1}, {6430,58993,1},{6428,58994,1},{6428,58989,1},{6427,58993,1},{6427,58983,1}, {6425,58981,1},{6425,59003,1},{6422,58999,1},{6420,59011,1},{6420,59004,1}, {6415,58998,1},{6415,59003,1},{6418,59009,1},{6415,59016,1},{6413,59016,1}, {6413,59019,1},{6412,59018,1},{6410,59024,1},{6407,59016,1},{6407,59031,1}, {6403,59023,1},{6403,59014,1},{6402,59024,1},{6402,59026,1},{6402,59033,1}, {6402,59041,1},{6400,59044,1},{6397,59041,1},{6398,59048,1},{6402,59054,1}, {6402,59059,1},{6400,59061,1},{6403,59066,1},{6403,59069,1},{6397,59073,1}, {6397,59066,1},{6390,59048,1},{6387,59048,1},{6385,59043,1},{6385,59039,1}, {6382,59038,1},{6377,59041,1},{6375,59061,1},{6375,59066,1},{6367,59084,1}, {6362,59084,1},{6360,59078,1},{6358,59083,1},{6357,59081,1},{6350,59084,1}, {6347,59081,1},{6345,59086,1},{6342,59086,1},{6340,59081,1},{6342,59076,1}, {6342,59073,1},{6338,59078,1},{6337,59084,1},{6330,59084,1},{6332,59074,1}, {6330,59079,1},{6328,59088,1},{6325,59083,1},{6327,59078,1},{6325,59074,1}, {6323,59073,1},{6325,59071,1},{6328,59064,1},{6330,59064,1},{6332,59059,1}, {6337,59058,1},{6338,59061,1},{6340,59056,1},{6350,59053,1},{6357,59043,1}, {6363,59041,1},{6367,59029,1},{6373,59024,1},{6377,59016,1},{6378,59016,1}, {6377,59021,1},{6380,59016,1},{6380,59006,1},{6373,59018,1},{6372,59023,1}, {6365,59028,1},{6360,59038,1},{6355,59026,1},{6345,59031,1},{6343,59021,1}, {6343,59031,1},{6340,59024,1},{6340,59033,1},{6335,59041,1},{6323,59046,1}, {6325,59041,1},{6332,59031,1},{6330,59029,1},{6327,59036,1},{6325,59034,1}, {6325,59029,1},{6328,59024,1},{6328,59021,1},{6323,59028,1},{6323,59036,1}, {6322,59039,1},{6320,59036,1},{6322,59031,1},{6322,59028,1},{6317,59031,1}, {6318,59044,1},{6317,59044,1},{6317,59049,1},{6313,59046,1},{6313,59054,1}, {6312,59058,1},{6308,59059,1},{6308,59049,1},{6307,59059,1},{6303,59059,1}, {6303,59054,1},{6302,59058,1},{6298,59059,1},{6297,59051,1},{6295,59059,1}, {6292,59063,1},{6295,59066,1},{6290,59073,1},{6290,59064,1},{6287,59059,1}, {6287,59048,1},{6290,59039,1},{6293,59028,1},{6300,59023,1},{6297,59021,1}, {6292,59024,1},{6295,59018,1},{6297,59011,1},{6300,59009,1},{6297,59008,1}, {6292,59018,1},{6290,59016,1},{6272,59038,1},{6263,59043,1},{6265,59038,1}, {6263,59038,1},{6262,59038,1},{6258,59029,1},{6257,59018,1},{6267,59006,1}, {6270,59009,1},{6268,59003,1},{6267,59003,1},{6268,59001,1},{6275,59004,1}, {6278,59011,1},{6277,59003,1},{6278,58999,1},{6282,58999,1},{6283,59011,1}, {6283,59003,1},{6293,59003,1},{6282,58996,1},{6282,58993,1},{6283,58991,1}, {6282,58989,1},{6282,58979,1},{6283,58973,1},{6290,58969,1},{6288,58966,1}, {6290,58963,1},{6293,58961,1},{6298,58968,1},{6305,58963,1},{6297,58961,1}, {6295,58954,1},{6293,58954,1},{6287,58958,1},{6292,58948,1},{6292,58941,1}, {6293,58939,1},{6303,58953,1},{6300,58943,1},{6297,58939,1},{6300,58931,1}, {6302,58929,1},{6305,58931,1},{6303,58923,1},{6308,58919,1},{6313,58908,1}, {6312,58908,1},{6308,58914,1},{6303,58916,1},{6298,58928,1},{6295,58926,1}, {6293,58919,1},{6297,58914,1},{6297,58909,1},{6300,58906,1},{6300,58896,1}, {6303,58889,1},{6307,58889,1},{6307,58884,1},{6308,58883,1},{6308,58886,1}, {6315,58879,1},{6320,58881,1},{6328,58868,1},{6333,58873,1},{6337,58871,1}, {6328,58863,1},{6320,58876,1},{6317,58874,1},{6307,58879,1},{6307,58876,1}, {6307,58873,1},{6310,58868,1},{6305,58873,1},{6300,58881,1},{6298,58881,1}, {6303,58871,1},{6302,58871,1},{6303,58868,1},{6308,58859,1},{6318,58861,1}, {6327,58856,1},{6325,58851,1},{6317,58856,1},{6315,58851,1},{6315,58848,1}, {6325,58834,1},{6328,58841,1},{6333,58834,1},{6340,58838,1},{6340,58834,1}, {6333,58833,1},{6328,58834,1},{6327,58831,1},{6328,58824,1},{6332,58819,1}, {6328,58821,1},{6328,58816,1},{6337,58801,1},{6347,58794,1},{6342,58794,1}, {6343,58788,1},{6353,58781,1},{6355,58774,1},{6358,58773,1},{6362,58768,1}, {6365,58769,1},{6363,58759,1},{6365,58758,1},{6368,58756,1},{6368,58753,1}, {6373,58753,1},{6377,58744,1},{6373,58744,1},{6372,58749,1},{6368,58751,1}, {6363,58756,1},{6358,58754,1},{6355,58756,1},{6340,58769,1},{6337,58768,1}, {6337,58764,1},{6340,58754,1},{6345,58751,1},{6350,58741,1},{6355,58733,1}, {6355,58728,1},{6360,58723,1},{6358,58723,1},{6360,58718,1},{6360,58711,1}, {6363,58714,1},{6368,58709,1},{6368,58704,1},{6363,58709,1},{6363,58708,1}, {6365,58699,1},{6372,58693,1},{6375,58683,1},{6373,58681,1},{6377,58661,1}, {6373,58664,1},{6373,58656,1},{6377,58644,1},{6375,58636,1},{6363,58654,1}, {6362,58654,1},{6362,58651,1},{6360,58651,1},{6358,58656,1},{6355,58661,1}, {6345,58681,1},{6343,58691,1},{6342,58686,1},{6337,58698,1},{6328,58709,1}, {6327,58708,1},{6325,58713,1},{6322,58716,1},{6320,58713,1},{6318,58718,1}, {6315,58721,1},{6317,58728,1},{6313,58744,1},{6307,58738,1},{6307,58744,1}, {6312,58746,1},{6312,58751,1},{6308,58758,1},{6310,58774,1},{6307,58774,1}, {6305,58764,1},{6302,58758,1},{6298,58763,1},{6295,58759,1},{6297,58764,1}, {6300,58763,1},{6303,58768,1},{6303,58776,1},{6305,58779,1},{6300,58786,1}, {6297,58771,1},{6292,58769,1},{6297,58779,1},{6297,58784,1},{6298,58789,1}, {6295,58796,1},{6293,58794,1},{6295,58799,1},{6293,58801,1},{6288,58808,1}, {6288,58811,1},{6285,58799,1},{6285,58808,1},{6287,58814,1},{6285,58818,1}, {6283,58818,1},{6282,58813,1},{6282,58818,1},{6282,58819,1},{6282,58824,1}, {6282,58826,1},{6280,58828,1},{6275,58824,1},{6277,58831,1},{6275,58831,1}, {6273,58834,1},{6268,58831,1},{6270,58844,1},{6265,58836,1},{6268,58854,1}, {6267,58863,1},{6263,58859,1},{6265,58868,1},{6262,58864,1},{6262,58874,1}, {6258,58874,1},{6257,58879,1},{6252,58883,1},{6250,58888,1},{6242,58884,1}, {6245,58893,1},{6245,58901,1},{6242,58896,1},{6238,58903,1},{6237,58896,1}, {6235,58893,1},{6235,58889,1},{6233,58889,1},{6227,58904,1},{6232,58899,1}, {6233,58901,1},{6235,58904,1},{6233,58909,1},{6232,58911,1},{6233,58913,1}, {6235,58913,1},{6233,58916,1},{6230,58921,1},{6225,58921,1},{6227,58911,1}, {6222,58931,1},{6225,58934,1},{6222,58943,1},{6220,58943,1},{6213,58931,1}, {6207,58933,1},{6208,58923,1},{6213,58919,1},{6212,58916,1},{6210,58916,1}, {6212,58919,1},{6203,58926,1},{6200,58923,1},{6200,58929,1},{6195,58933,1}, {6197,58936,1},{6192,58941,1},{6188,58939,1},{6188,58931,1},{6187,58929,1}, {6185,58908,1},{6187,58896,1},{6190,58888,1},{6190,58881,1},{6193,58878,1}, {6192,58874,1},{6193,58869,1},{6197,58874,1},{6197,58866,1},{6202,58861,1}, {6202,58853,1},{6205,58843,1},{6202,58844,1},{6202,58839,1},{6205,58834,1}, {6203,58826,1},{6210,58813,1},{6207,58809,1},{6207,58804,1},{6212,58801,1}, {6213,58803,1},{6215,58798,1},{6213,58788,1},{6215,58783,1},{6217,58778,1}, {6215,58771,1},{6217,58761,1},{6217,58753,1},{6220,58756,1},{6222,58753,1}, {6218,58749,1},{6222,58738,1},{6220,58734,1},{6222,58728,1},{6222,58724,1}, {6222,58711,1},{6227,58674,1},{6230,58664,1},{6233,58664,1},{6233,58654,1}, {6237,58654,1},{6238,58651,1},{6237,58648,1},{6238,58639,1},{6237,58636,1}, {6238,58633,1},{6245,58613,1},{6252,58604,1},{6262,58608,1},{6262,58606,1}, {6253,58598,1},{6260,58596,1},{6262,58591,1},{6255,58593,1},{6255,58591,1}, {6267,58576,1},{6268,58583,1},{6267,58588,1},{6270,58588,1},{6270,58593,1}, {6272,58589,1},{6270,58581,1},{6273,58581,1},{6275,58596,1},{6277,58598,1}, {6277,58589,1},{6277,58586,1},{6277,58579,1},{6278,58574,1},{6275,58569,1}, {6275,58566,1},{6277,58568,1},{6278,58563,1},{6282,58553,1},{6278,58553,1}, {6277,58559,1},{6273,58559,1},{6277,58554,1},{6275,58546,1},{6280,58543,1}, {6277,58539,1},{6275,58533,1},{6275,58511,1},{6278,58499,1},{6287,58486,1}, {6290,58448,1},{6292,58449,1},{6293,58459,1},{6295,58451,1},{6295,58433,1}, {6297,58433,1},{6297,58443,1},{6300,58439,1},{6303,58443,1},{6302,58436,1}, {6298,58434,1},{6298,58429,1},{6298,58421,1},{6303,58423,1},{6303,58434,1}, {6310,58443,1},{6313,58454,1},{6313,58453,1},{6312,58444,1},{6313,58443,1}, {6317,58444,1},{6315,58438,1},{6310,58438,1},{6307,58433,1},{6307,58423,1}, {6310,58421,1},{6300,58413,1},{6302,58408,1},{6303,58411,1},{6303,58409,1}, {6305,58396,1},{6307,58394,1},{6312,58396,1},{6310,58391,1},{6313,58376,1}, {6318,58364,1},{6320,58369,1},{6323,58361,1},{6325,58371,1},{6327,58371,1}, {6327,58369,1},{6325,58361,1},{6327,58359,1},{6327,58363,1},{6328,58359,1}, {6332,58361,1},{6335,58354,1},{6335,58363,1},{6342,58359,1},{6338,58356,1}, {6338,58343,1},{6343,58338,1},{6340,58336,1},{6340,58328,1},{6342,58328,1}, {6342,58329,1},{6345,58321,1},{6343,58331,1},{6345,58333,1},{6342,58368,1}, {6342,58374,1},{6345,58379,1},{6347,58379,1},{6348,58394,1},{6352,58396,1}, {6353,58406,1},{6357,58409,1},{6358,58408,1},{6360,58413,1},{6360,58404,1}, {6357,58403,1},{6357,58394,1},{6360,58399,1},{6363,58398,1},{6363,58394,1}, {6362,58396,1},{6360,58391,1},{6358,58391,1},{6358,58378,1},{6360,58378,1}, {6362,58381,1},{6363,58388,1},{6365,58378,1},{6372,58383,1},{6370,58378,1}, {6372,58378,1},{6372,58374,1},{6370,58369,1},{6365,58376,1},{6365,58373,1}, {6368,58364,1},{6370,58368,1},{6375,58368,1},{6375,58364,1},{6368,58361,1}, {6372,58359,1},{6375,58359,1},{6378,58353,1},{6378,58346,1},{6382,58346,1}, {6380,58339,1},{6375,58336,1},{6377,58343,1},{6375,58343,1},{6375,58351,1}, {6365,58344,1},{6365,58339,1},{6368,58343,1},{6372,58341,1},{6372,58339,1}, {6367,58333,1},{6373,58329,1},{6372,58326,1},{6373,58321,1},{6377,58316,1}, {6368,58314,1},{6368,58304,1},{6373,58304,1},{6377,58299,1},{6378,58304,1}, {6377,58311,1},{6380,58309,1},{6387,58314,1},{6388,58318,1},{6388,58323,1}, {6390,58326,1},{6390,58318,1},{6390,58313,1},{6395,58313,1},{6392,58308,1}, {6388,58311,1},{6390,58304,1},{6387,58303,1},{6383,58296,1},{6380,58299,1}, {6378,58299,1},{6378,58283,1},{6380,58283,1},{6382,58291,1},{6385,58278,1}, {6387,58276,1},{6385,58269,1},{6390,58271,1},{6392,58269,1},{6395,58276,1}, {6402,58276,1},{6402,58268,1},{6408,58269,1},{6402,58266,1},{6398,58271,1}, {6397,58266,1},{6397,58263,1},{6400,58261,1},{6403,58248,1},{6403,58249,1}, {6405,58248,1},{6407,58243,1},{6408,58244,1},{6410,58249,1},{6415,58246,1}, {6418,58239,1},{6418,58228,1},{6422,58231,1},{6427,58223,1},{6428,58226,1}, {6430,58214,1},{6433,58213,1},{6430,58209,1},{6432,58204,1},{6428,58209,1}, {6427,58208,1},{6427,58198,1},{6433,58198,1},{6435,58201,1},{6438,58203,1}, {6435,58208,1},{6437,58209,1},{6440,58201,1},{6437,58198,1},{6437,58194,1}, {6442,58189,1},{6445,58193,1},{6445,58201,1},{6447,58206,1},{6445,58196,1}, {6447,58194,1},{6448,58194,1},{6452,58206,1},{6455,58211,1},{6458,58219,1}, {6462,58219,1},{6458,58214,1},{6460,58209,1},{6467,58206,1},{6463,58201,1}, {6458,58206,1},{6453,58206,1},{6450,58189,1},{6457,58188,1},{6455,58194,1}, {6457,58196,1},{6458,58191,1},{6460,58193,1},{6458,58179,1},{6460,58178,1}, {6467,58171,1},{6465,58169,1},{6462,58171,1},{6458,58168,1},{6457,58171,1}, {6457,58164,1},{6453,58161,1},{6460,58148,1},{6460,58143,1},{6450,58151,1}, {6448,58158,1},{6447,58154,1},{6448,58151,1},{6448,58148,1},{6447,58149,1}, {6445,58146,1},{6448,58139,1},{6443,58139,1},{6440,58143,1},{6438,58138,1}, {6433,58136,1},{6433,58126,1},{6435,58124,1},{6437,58119,1},{6437,58126,1}, {6440,58126,1},{6442,58128,1},{6447,58119,1},{6447,58126,1},{6443,58131,1}, {6445,58131,1},{6453,58123,1},{6452,58141,1},{6455,58134,1},{6457,58119,1}, {6458,58124,1},{6458,58136,1},{6463,58128,1},{6473,58131,1},{6475,58126,1}, {6473,58123,1},{6470,58126,1},{6468,58124,1},{6467,58118,1},{6467,58114,1}, {6462,58114,1},{6458,58113,1},{6463,58106,1},{6465,58109,1},{6468,58106,1}, {6468,58103,1},{6463,58103,1},{6467,58094,1},{6458,58101,1},{6457,58098,1}, {6460,58093,1},{6462,58094,1},{6463,58083,1},{6467,58081,1},{6473,58068,1}, {6475,58068,1},{6485,58079,1},{6483,58088,1},{6487,58084,1},{6487,58079,1}, {6490,58081,1},{6490,58074,1},{6490,58069,1},{6487,58073,1},{6487,58064,1}, {6485,58063,1},{6480,58066,1},{6477,58064,1},{6480,58054,1},{6478,58053,1}, {6480,58041,1},{6478,58038,1},{6477,58041,1},{6475,58051,1},{6470,58054,1}, {6467,58069,1},{6455,58089,1},{6453,58084,1},{6455,58076,1},{6453,58071,1}, {6452,58083,1},{6450,58079,1},{6452,58078,1},{6452,58074,1},{6448,58076,1}, {6447,58086,1},{6445,58081,1},{6442,58081,1},{6442,58074,1},{6440,58074,1}, {6440,58069,1},{6437,58068,1},{6440,58061,1},{6438,58056,1},{6443,58043,1}, {6442,58039,1},{6442,58036,1},{6450,58019,1},{6447,58018,1},{6445,58021,1}, {6445,58016,1},{6443,58016,1},{6447,58011,1},{6447,58006,1},{6452,57994,1}, {6453,57983,1},{6457,57979,1},{6457,57966,1},{6462,57956,1},{6460,57951,1}, {6457,57958,1},{6457,57953,1},{6453,57954,1},{6447,57971,1},{6445,57973,1}, {6447,57963,1},{6443,57966,1},{6445,57963,1},{6448,57949,1},{6448,57944,1}, {6447,57949,1},{6443,57956,1},{6443,57954,1},{6438,57963,1},{6437,57963,1}, {6438,57954,1},{6437,57953,1},{6438,57944,1},{6438,57941,1},{6440,57939,1}, {6437,57929,1},{6438,57924,1},{6437,57919,1},{6437,57923,1},{6435,57919,1}, {6435,57899,1},{6432,57904,1},{6430,57918,1},{6428,57904,1},{6432,57893,1}, {6432,57888,1},{6430,57888,1},{6430,57893,1},{6428,57898,1},{6427,57888,1}, {6430,57886,1},{6430,57883,1},{6430,57876,1},{6428,57871,1},{6428,57868,1}, {6430,57866,1},{6428,57863,1},{6423,57864,1},{6422,57869,1},{6418,57869,1}, {6420,57859,1},{6420,57853,1},{6423,57853,1},{6427,57839,1},{6425,57838,1}, {6430,57824,1},{6428,57821,1},{6425,57798,1},{6428,57799,1},{6430,57791,1}, {6430,57798,1},{6432,57796,1},{6430,57791,1},{6432,57781,1},{6435,57788,1}, {6435,57781,1},{6438,57771,1},{6432,57771,1},{6435,57759,1},{6437,57758,1}, {6438,57748,1},{6440,57746,1},{6440,57753,1},{6443,57751,1},{6440,57741,1}, {6442,57736,1},{6445,57734,1},{6447,57739,1},{6450,57729,1},{6453,57729,1}, {6457,57718,1},{6458,57719,1},{6458,57723,1},{6462,57719,1},{6465,57719,1}, {6465,57716,1},{6470,57719,1},{6470,57706,1},{6472,57718,1},{6475,57718,1}, {6478,57724,1},{6480,57724,1},{6482,57729,1},{6485,57729,1},{6490,57723,1}, {6497,57723,1},{6502,57738,1},{6505,57739,1},{6510,57761,1},{6515,57773,1}, {6515,57789,1},{6518,57804,1},{6520,57804,1},{6525,57798,1},{6532,57784,1}, {6538,57789,1},{6535,57803,1},{6537,57808,1},{6547,57793,1},{6547,57803,1}, {6547,57813,1},{6545,57809,1},{6545,57816,1},{6543,57824,1},{6540,57828,1}, {6540,57839,1},{6542,57841,1},{6543,57846,1},{6542,57854,1},{6540,57859,1}, {6542,57869,1},{6528,57926,1},{6528,57933,1},{6527,57934,1},{6522,57958,1}, {6515,57963,1},{6512,57981,1},{6505,57994,1},{6497,57993,1},{6493,57984,1}, {6493,57969,1},{6492,57976,1},{6485,57978,1},{6483,57991,1},{6482,57989,1}, {6480,57984,1},{6478,57983,1},{6477,57991,1},{6472,57998,1},{6472,58006,1}, {6473,58008,1},{6477,58001,1},{6483,57999,1},{6492,58001,1},{6492,57996,1}, {6487,57989,1},{6488,57988,1},{6488,57979,1},{6490,57988,1},{6493,57989,1}, {6495,57998,1},{6498,57998,1},{6498,58001,1},{6495,58009,1},{6498,58006,1}, {6500,58011,1},{6505,58013,1},{6507,58016,1},{6510,58018,1},{6510,58009,1}, {6505,58009,1},{6500,58001,1},{6510,57989,1},{6518,57976,1},{6518,57964,1}, {6523,57963,1},{6525,57953,1},{6525,57946,1},{6527,57948,1},{6530,57941,1}, {6532,57941,1},{6530,57964,1},{6532,57969,1},{6535,57973,1},{6532,57976,1}, {6530,57976,1},{6527,57979,1},{6525,58014,1},{6527,58026,1},{6532,58028,1}, {6540,58026,1},{6537,58039,1},{6540,58049,1},{6538,58054,1},{6538,58061,1}, {6543,58063,1},{6542,58069,1},{6540,58066,1},{6538,58069,1},{6537,58068,1}, {6535,58069,1},{6533,58084,1},{6540,58101,1},{6547,58106,1},{6548,58119,1}, {6552,58118,1},{6553,58126,1},{6553,58133,1},{6550,58136,1},{6553,58151,1}, {6552,58163,1},{6548,58163,1},{6545,58169,1},{6547,58178,1},{6545,58188,1}, {6558,58179,1},{6560,58173,1},{6565,58174,1},{6567,58168,1},{6568,58166,1}, {6572,58166,1},{6572,58171,1},{6577,58164,1},{6582,58154,1},{6583,58141,1}, {6588,58131,1},{6598,58114,1},{6610,58091,1},{6613,58089,1},{6622,58101,1}, {6630,58128,1},{6635,58139,1},{6635,58146,1},{6638,58146,1},{6652,58183,1}, {6655,58193,1},{6665,58201,1},{6672,58226,1},{6668,58273,1},{6668,58326,1}, {6660,58366,1},{6655,58401,1},{6662,58401,129},{6670,58331,1},{6670,58318,1}, {6672,58306,1},{6672,58263,1},{6675,58238,1},{6682,58236,1},{6693,58248,1}, {6703,58254,1},{6708,58269,1},{6708,58289,1},{6712,58299,1},{6717,58308,1}, {6725,58311,1},{6727,58316,1},{6733,58299,1},{6737,58301,1},{6747,58293,1}, {6750,58286,1},{6753,58294,1},{6757,58289,1},{6762,58288,1},{6763,58286,1}, {6763,58276,1},{6770,58268,1},{6775,58278,1},{6778,58274,1},{6782,58268,1}, {6788,58259,1},{6785,58251,1},{6790,58246,1},{6793,58248,1},{6792,58241,1}, {6802,58246,1},{6813,58238,1},{6823,58236,1},{6823,58233,1},{6820,58231,1}, {6822,58226,1},{6822,58221,1},{6823,58219,1},{6823,58214,1},{6825,58218,1}, {6827,58214,1},{6828,58208,1},{6827,58203,1},{6825,58204,1},{6825,58199,1}, {6827,58194,1},{6828,58186,1},{6832,58198,1},{6832,58206,1},{6835,58208,1}, {6837,58204,1},{6838,58214,1},{6840,58208,1},{6837,58201,1},{6833,58201,1}, {6833,58188,1},{6832,58189,1},{6828,58183,1},{6827,58174,1},{6827,58178,1}, {6825,58174,1},{6827,58171,1},{6827,58168,1},{6830,58171,1},{6828,58176,1}, {6830,58176,1},{6832,58163,1},{6835,58151,1},{6838,58148,1},{6842,58141,1}, {6845,58148,1},{6850,58149,1},{6853,58163,1},{6857,58154,1},{6858,58161,1}, {6862,58164,1},{6862,58159,1},{6862,58154,1},{6865,58166,1},{6867,58156,1}, {6868,58159,1},{6872,58148,1},{6870,58138,1},{6872,58136,1},{6873,58124,1}, {6872,58118,1},{6868,58119,1},{6868,58126,1},{6867,58131,1},{6863,58134,1}, {6855,58148,1},{6852,58144,1},{6850,58138,1},{6850,58133,1},{6853,58136,1}, {6852,58119,1},{6852,58118,1},{6853,58113,1},{6853,58101,1},{6858,58094,1}, {6860,58086,1},{6867,58083,1},{6873,58063,1},{6877,58064,1},{6880,58078,1}, {6883,58081,1},{6885,58071,1},{6883,58068,1},{6882,58063,1},{6882,58069,1}, {6880,58073,1},{6877,58058,1},{6880,58051,1},{6882,58038,1},{6882,58051,1}, {6883,58053,1},{6887,58068,1},{6890,58066,1},{6892,58069,1},{6893,58066,1}, {6890,58033,1},{6893,58053,1},{6893,58033,1},{6897,58049,1},{6895,58036,1}, {6897,58036,1},{6900,58043,1},{6902,58061,1},{6900,58056,1},{6902,58071,1}, {6905,58069,1},{6908,58054,1},{6900,58031,1},{6892,58029,1},{6888,58023,1}, {6893,58008,1},{6902,57991,1},{6898,57978,1},{6893,57986,1},{6888,57976,1}, {6882,57943,1},{6878,57936,1},{6868,57894,1},{6868,57876,1},{6870,57871,1}, {6875,57868,1},{6882,57879,1},{6887,57884,1},{6888,57881,1},{6888,57876,1}, {6892,57871,1},{6902,57873,1},{6905,57899,1},{6903,57923,1},{6900,57929,1}, {6900,57936,1},{6902,57939,1},{6905,57954,1},{6908,57954,1},{6908,57959,1}, {6908,57974,1},{6915,57979,1},{6923,57976,1},{6937,57941,1},{6942,57919,1}, {6940,57898,1},{6945,57894,1},{6955,57873,1},{6958,57874,1},{6965,57888,1}, {6962,57914,1},{6963,57913,1},{6967,57918,1},{6967,57898,1},{6970,57896,1}, {6968,57889,1},{6970,57881,1},{6968,57873,1},{6967,57873,1},{6967,57884,1}, {6965,57884,1},{6962,57879,1},{6962,57871,1},{6957,57866,1},{6958,57848,1}, {6960,57848,1},{6963,57854,1},{6958,57839,1},{6960,57833,1},{6963,57831,1}, {6963,57818,1},{6968,57821,1},{6968,57831,1},{6970,57834,1},{6972,57846,1}, {6968,57843,1},{6968,57848,1},{6972,57856,1},{6975,57858,1},{6977,57853,1}, {6975,57848,1},{6978,57844,1},{6982,57859,1},{6983,57858,1},{6982,57853,1}, {6982,57843,1},{6982,57829,1},{6985,57836,1},{6985,57828,1},{6982,57823,1}, {6983,57813,1},{6983,57804,1},{6988,57811,1},{6993,57838,1},{6993,57824,1}, {6985,57794,1},{6987,57788,1},{6985,57786,1},{6982,57773,1},{6982,57786,1}, {6978,57791,1},{6978,57784,1},{6975,57779,1},{6975,57773,1},{6982,57768,1}, {7018,57768,1},{7025,57756,1},{7023,57751,1},{7027,57748,1},{7022,57731,1}, {7025,57723,1},{7025,57716,1},{7022,57723,1},{7018,57719,1},{7020,57713,1}, {7023,57711,1},{7020,57703,1},{7022,57696,1},{7027,57693,1},{7030,57683,1}, {7033,57689,1},{7033,57696,1},{7035,57693,1},{7035,57686,1},{7035,57679,1}, {7032,57678,1},{7035,57669,1},{7037,57673,1},{7037,57666,1},{7045,57661,1}, {7043,57654,1},{7045,57651,1},{7048,57648,1},{7045,57646,1},{7040,57649,1}, {7045,57641,1},{7047,57629,1},{7048,57631,1},{7050,57626,1},{7052,57633,1}, {7053,57628,1},{7055,57648,1},{7055,57636,1},{7060,57648,1},{7060,57653,1}, {7055,57658,1},{7055,57664,1},{7063,57653,1},{7062,57648,1},{7063,57638,1}, {7068,57634,1},{7062,57621,1},{7062,57623,1},{7063,57634,1},{7062,57636,1}, {7052,57623,1},{7052,57619,1},{7050,57623,1},{7043,57619,1},{7045,57601,1}, {7045,57608,1},{7048,57606,1},{7052,57613,1},{7055,57613,1},{7053,57604,1}, {7052,57608,1},{7047,57604,1},{7050,57598,1},{7048,57594,1},{7047,57598,1}, {7043,57596,1},{7045,57586,1},{7043,57579,1},{7040,57578,1},{7035,57591,1}, {7037,57598,1},{7037,57603,1},{7032,57614,1},{7032,57628,1},{7033,57631,1}, {7030,57644,1},{7018,57659,1},{7007,57661,1},{7005,57668,1},{7000,57669,1}, {6993,57668,1},{6990,57658,1},{6988,57656,1},{6988,57648,1},{6988,57626,1}, {6988,57598,1},{6987,57586,1},{6985,57573,1},{6985,57566,1},{6987,57561,1}, {6997,57548,1},{6995,57533,1},{7000,57531,1},{7000,57516,1},{7000,57508,1}, {6998,57504,1},{7000,57498,1},{7005,57479,1},{7005,57454,1},{7007,57448,1}, {7005,57438,1},{7007,57431,1},{7010,57429,1},{7008,57423,1},{7010,57413,1}, {7010,57388,1},{7013,57363,1},{7012,57359,1},{7007,57366,1},{7005,57383,1}, {7000,57393,1},{7003,57404,1},{6998,57419,1},{6993,57423,1},{6987,57443,1}, {6977,57459,1},{6973,57453,1},{6972,57441,1},{6973,57441,1},{6977,57426,1}, {6982,57419,1},{6985,57406,1},{6993,57388,1},{6993,57381,1},{6995,57376,1}, {6997,57378,1},{6997,57361,1},{7015,57313,1},{7015,57304,1},{7018,57279,1}, {7030,57236,1},{7030,57231,1},{7020,57254,1},{7020,57263,1},{7012,57311,1}, {7007,57328,1},{6997,57346,1},{6993,57364,1},{6990,57359,1},{6987,57363,1}, {6988,57356,1},{6988,57351,1},{6987,57351,1},{6985,57351,1},{6985,57339,1}, {6987,57334,1},{6983,57328,1},{6982,57321,1},{6982,57324,1},{6978,57321,1}, {6980,57311,1},{6980,57306,1},{6982,57309,1},{6983,57304,1},{6983,57316,1}, {6985,57306,1},{6985,57294,1},{6983,57291,1},{6985,57284,1},{6988,57273,1}, {6993,57263,1},{6992,57261,1},{6995,57246,1},{7002,57229,1},{7000,57213,1}, {7002,57208,1},{6998,57201,1},{6995,57171,1},{6998,57128,1},{6998,57101,1}, {7000,57084,1},{7000,57069,1},{7003,57053,1},{7007,57049,1},{7008,57056,1}, {7010,57056,1},{7007,57044,1},{7007,57038,1},{7010,57018,1},{7010,56969,1}, {7008,56949,1},{7003,56951,1},{7007,56961,1},{7007,56973,1},{7003,56996,1}, {6998,57013,1},{7002,56978,1},{6998,56964,1},{7000,56954,1},{7010,56911,1}, {7023,56881,1},{7035,56881,1},{7035,56878,1},{7042,56884,1},{7047,56906,1}, {7050,56906,1},{7052,56899,1},{7048,56903,1},{7042,56878,1},{7038,56873,1}, {7037,56868,1},{7032,56871,1},{7033,56864,1},{7033,56848,1},{7035,56848,1}, {7038,56863,1},{7040,56858,1},{7038,56849,1},{7038,56843,1},{7042,56849,1}, {7042,56838,1},{7043,56838,1},{7045,56844,1},{7047,56839,1},{7045,56828,1}, {7043,56823,1},{7040,56821,1},{7038,56811,1},{7037,56834,1},{7035,56839,1}, {7028,56838,1},{7032,56808,1},{7033,56784,1},{7032,56769,1},{7033,56761,1}, {7030,56758,1},{7030,56771,1},{7028,56774,1},{7023,56756,1},{7023,56744,1}, {7030,56736,1},{7030,56723,1},{7033,56709,1},{7035,56716,1},{7033,56718,1}, {7033,56729,1},{7030,56736,1},{7030,56748,1},{7033,56744,1},{7035,56734,1}, {7038,56724,1},{7042,56701,1},{7045,56696,1},{7043,56691,1},{7045,56666,1}, {7053,56648,1},{7062,56636,1},{7065,56636,1},{7080,56603,1},{7090,56591,1}, {7093,56599,1},{7093,56614,1},{7097,56616,1},{7100,56601,1},{7108,56579,1}, {7107,56613,1},{7103,56616,1},{7103,56623,1},{7105,56646,1},{7103,56654,1}, {7105,56673,1},{7102,56698,1},{7095,56704,1},{7093,56734,1},{7095,56766,1}, {7095,56801,1},{7100,56806,1},{7102,56811,1},{7098,56833,1},{7100,56836,1}, {7103,56804,1},{7105,56803,1},{7105,56796,1},{7107,56796,1},{7113,56764,1}, {7118,56751,1},{7125,56754,1},{7127,56751,1},{7125,56741,1},{7120,56728,1}, {7123,56719,1},{7123,56693,1},{7123,56684,1},{7123,56674,1},{7128,56623,1}, {7128,56596,1},{7132,56554,1},{7135,56546,1},{7138,56544,1},{7142,56539,1}, {7152,56534,1},{7152,56541,1},{7160,56531,1},{7162,56538,1},{7163,56536,1}, {7168,56548,1},{7177,56556,1},{7178,56544,1},{7182,56548,1},{7182,56541,1}, {7188,56534,1},{7193,56524,1},{7198,56536,1},{7203,56539,1},{7207,56536,1}, {7212,56563,1},{7212,56569,1},{7217,56579,1},{7218,56574,1},{7215,56559,1}, {7217,56556,1},{7218,56546,1},{7225,56539,1},{7227,56543,1},{7232,56541,1}, {7240,56553,1},{7242,56546,1},{7243,56546,1},{7243,56558,1},{7243,56546,1}, {7247,56556,1},{7257,56558,1},{7262,56563,1},{7263,56571,1},{7262,56579,1}, {7267,56581,1},{7267,56589,1},{7270,56579,1},{7278,56579,1},{7278,56591,1}, {7275,56596,1},{7275,56608,1},{7277,56608,1},{7278,56611,1},{7280,56598,1}, {7283,56594,1},{7288,56604,1},{7292,56606,1},{7298,56599,1},{7302,56609,1}, {7300,56613,1},{7302,56616,1},{7305,56604,1},{7313,56613,1},{7315,56623,1}, {7315,56618,1},{7318,56621,1},{7322,56629,1},{7322,56648,1},{7323,56634,1}, {7325,56631,1},{7328,56636,1},{7330,56648,1},{7328,56674,1},{7332,56656,1}, {7333,56651,1},{7345,56676,1},{7347,56688,1},{7352,56693,1},{7357,56708,1}, {7370,56759,1},{7382,56836,1},{7385,56881,1},{7385,56916,1},{7387,56921,1}, {7382,56981,1},{7382,57013,1},{7380,57029,1},{7373,57053,1},{7367,57041,1}, {7353,56993,1},{7350,56979,1},{7337,56944,1},{7325,56924,1},{7303,56903,1}, {7287,56871,1},{7273,56863,1},{7268,56868,1},{7265,56866,1},{7253,56896,1}, {7242,56913,1},{7227,56893,1},{7220,56889,1},{7202,56894,1},{7198,56903,1}, {7195,56903,1},{7178,56924,1},{7177,56934,1},{7167,56951,1},{7165,56961,1}, {7160,56966,1},{7153,56984,1},{7152,56986,1},{7152,56994,1},{7148,56999,1}, {7148,57004,1},{7147,57006,1},{7147,57013,1},{7145,57016,1},{7143,57031,1}, {7142,57043,1},{7133,57041,1},{7133,57049,1},{7127,57053,1},{7127,57038,1}, {7130,57023,1},{7128,57011,1},{7127,57009,1},{7127,57011,1},{7127,57019,1}, {7125,57011,1},{7123,56989,1},{7122,56989,1},{7122,56996,1},{7120,56998,1}, {7122,56989,1},{7120,56988,1},{7118,56986,1},{7120,56963,1},{7118,56959,1}, {7118,56943,1},{7115,56934,1},{7110,56914,1},{7107,56911,1},{7105,56896,1}, {7103,56894,1},{7100,56861,1},{7098,56856,1},{7097,56874,1},{7098,56888,1}, {7100,56909,1},{7113,56956,1},{7115,56983,1},{7117,56988,1},{7117,56998,1}, {7113,57019,1},{7115,57021,1},{7115,57028,1},{7118,57024,1},{7117,57036,1}, {7118,57031,1},{7118,57039,1},{7115,57051,1},{7107,57048,1},{7110,57038,1}, {7108,57021,1},{7107,57039,1},{7103,57036,1},{7100,57043,1},{7092,57041,1}, {7092,57056,1},{7098,57061,1},{7103,57059,1},{7107,57053,1},{7118,57056,1}, {7122,57069,1},{7128,57056,1},{7138,57063,1},{7140,57059,1},{7143,57066,1}, {7145,57081,1},{7147,57083,1},{7155,57079,1},{7158,57071,1},{7165,57076,1}, {7167,57074,1},{7168,57058,1},{7167,57049,1},{7163,57053,1},{7163,57048,1}, {7167,57008,1},{7175,56991,1},{7178,56978,1},{7180,56993,1},{7190,56979,1}, {7197,56951,1},{7198,56934,1},{7202,56931,1},{7198,56939,1},{7203,56938,1}, {7202,56964,1},{7202,56958,1},{7205,56959,1},{7207,56966,1},{7207,56984,1}, {7212,56983,1},{7213,56996,1},{7218,56984,1},{7222,56986,1},{7223,56983,1}, {7222,56993,1},{7222,56994,1},{7225,56986,1},{7227,56989,1},{7225,57004,1}, {7227,57008,1},{7225,57013,1},{7223,57014,1},{7225,57018,1},{7225,57026,1}, {7222,57026,1},{7225,57033,1},{7222,57049,1},{7218,57054,1},{7215,57066,1}, {7213,57076,1},{7210,57089,1},{7207,57094,1},{7202,57109,1},{7193,57116,1}, {7202,57119,1},{7207,57101,1},{7212,57094,1},{7213,57098,1},{7218,57071,1}, {7222,57061,1},{7223,57069,1},{7223,57059,1},{7228,57043,1},{7235,57054,1}, {7235,57086,1},{7238,57093,1},{7237,57081,1},{7237,57069,1},{7237,57049,1}, {7238,57049,1},{7240,57051,1},{7242,57058,1},{7245,57058,1},{7240,57034,1}, {7237,57036,1},{7237,57026,1},{7235,57024,1},{7235,57021,1},{7238,57024,1}, {7238,57013,1},{7242,57001,1},{7247,56984,1},{7255,56974,1},{7257,56988,1}, {7258,56974,1},{7263,56966,1},{7275,56966,1},{7287,56971,1},{7290,56968,1}, {7297,56978,1},{7297,56986,1},{7297,57008,1},{7288,57049,1},{7285,57086,1}, {7278,57111,1},{7277,57129,1},{7275,57138,1},{7275,57141,1},{7278,57133,1}, {7280,57111,1},{7285,57098,1},{7290,57078,1},{7292,57059,1},{7297,57041,1}, {7298,57028,1},{7300,57029,1},{7303,57023,1},{7300,57018,1},{7302,56999,1}, {7302,56983,1},{7313,56996,1},{7307,57009,1},{7305,57023,1},{7312,57013,1}, {7313,57018,1},{7313,57028,1},{7308,57053,1},{7303,57123,1},{7303,57149,1}, {7298,57164,1},{7298,57173,1},{7303,57158,1},{7307,57143,1},{7305,57126,1}, {7312,57089,1},{7312,57079,1},{7320,57034,1},{7322,57019,1},{7330,57023,1}, {7335,57034,1},{7338,57056,1},{7338,57063,1},{7330,57071,1},{7328,57083,1}, {7323,57094,1},{7323,57103,1},{7330,57088,1},{7332,57078,1},{7340,57071,1}, {7347,57119,1},{7342,57161,1},{7332,57168,1},{7330,57171,1},{7330,57176,1}, {7337,57171,1},{7345,57171,1},{7350,57138,1},{7352,57136,1},{7358,57171,1}, {7363,57209,1},{7367,57216,1},{7367,57226,1},{7365,57231,1},{7373,57253,1}, {7372,57294,1},{7373,57339,1},{7372,57379,1},{7368,57391,1},{7365,57391,1}, {7360,57404,1},{7352,57414,1},{7342,57418,1},{7327,57416,1},{7315,57476,1}, {7308,57481,1},{7302,57478,1},{7298,57471,1},{7292,57473,1},{7283,57488,1}, {7280,57504,1},{7273,57511,1},{7270,57499,1},{7263,57483,1},{7257,57483,1}, {7255,57468,1},{7245,57441,1},{7235,57426,1},{7233,57418,1},{7228,57416,1}, {7223,57398,1},{7225,57413,1},{7243,57448,1},{7245,57459,1},{7252,57478,1}, {7250,57486,1},{7238,57484,1},{7235,57471,1},{7228,57456,1},{7222,57449,1}, {7220,57453,1},{7220,57439,1},{7210,57478,1},{7208,57479,1},{7207,57473,1}, {7208,57466,1},{7210,57459,1},{7208,57443,1},{7208,57433,1},{7208,57436,1}, {7207,57436,1},{7205,57428,1},{7203,57438,1},{7205,57453,1},{7203,57456,1}, {7195,57453,1},{7190,57439,1},{7188,57439,1},{7190,57449,1},{7193,57461,1}, {7198,57461,1},{7200,57473,1},{7200,57481,1},{7205,57498,1},{7208,57501,1}, {7218,57488,1},{7218,57496,1},{7217,57498,1},{7218,57504,1},{7220,57506,1}, {7220,57513,1},{7225,57506,1},{7230,57509,1},{7227,57521,1},{7218,57538,1}, {7213,57569,1},{7220,57543,1},{7232,57519,1},{7238,57529,1},{7243,57549,1}, {7248,57549,1},{7250,57554,1},{7250,57559,1},{7248,57558,1},{7247,57566,1}, {7242,57559,1},{7233,57576,1},{7228,57573,1},{7225,57559,1},{7222,57561,1}, {7222,57566,1},{7223,57566,1},{7228,57578,1},{7225,57584,1},{7220,57588,1}, {7222,57591,1},{7227,57588,1},{7228,57581,1},{7237,57599,1},{7240,57601,1}, {7235,57621,1},{7228,57633,1},{7228,57641,1},{7223,57638,1},{7220,57641,1}, {7207,57633,1},{7200,57621,1},{7198,57613,1},{7197,57616,1},{7197,57629,1}, {7197,57638,1},{7192,57664,1},{7187,57681,1},{7187,57686,1},{7190,57676,1}, {7193,57676,1},{7198,57651,1},{7202,57644,1},{7217,57651,1},{7208,57688,1}, {7193,57698,1},{7182,57718,1},{7177,57746,1},{7183,57723,1},{7192,57704,1}, {7195,57706,1},{7197,57721,1},{7193,57723,1},{7187,57738,1},{7183,57739,1}, {7180,57756,1},{7175,57759,1},{7182,57766,1},{7185,57746,1},{7195,57726,1}, {7198,57724,1},{7198,57704,1},{7212,57694,1},{7217,57666,1},{7222,57651,1}, {7223,57649,1},{7228,57661,1},{7232,57654,1},{7233,57656,1},{7233,57664,1}, {7237,57676,1},{7232,57684,1},{7223,57683,1},{7222,57689,1},{7217,57696,1}, {7222,57694,1},{7225,57689,1},{7233,57693,1},{7228,57718,1},{7228,57733,1}, {7225,57734,1},{7227,57741,1},{7225,57756,1},{7220,57769,1},{7213,57774,1}, {7210,57771,1},{7213,57778,1},{7217,57774,1},{7218,57778,1},{7218,57809,1}, {7213,57836,1},{7215,57829,1},{7220,57808,1},{7220,57781,1},{7228,57749,1}, {7238,57696,1},{7245,57679,1},{7250,57681,1},{7255,57691,1},{7258,57691,1}, {7265,57721,1},{7267,57733,1},{7270,57738,1},{7270,57758,1},{7275,57778,1}, {7275,57829,1},{7272,57861,1},{7267,57871,1},{7265,57868,1},{7258,57919,1}, {7247,57926,1},{7248,57933,1},{7255,57929,1},{7258,57936,1},{7258,57943,1}, {7255,57979,1},{7253,57989,1},{7250,58016,1},{7240,58023,1},{7227,58041,1}, {7218,58031,1},{7212,58013,1},{7215,57984,1},{7212,57951,1},{7207,57931,1}, {7200,57921,1},{7187,57896,1},{7185,57899,1},{7193,57913,1},{7198,57928,1}, {7205,57934,1},{7210,57956,1},{7212,57978,1},{7210,57998,1},{7208,58004,1}, {7208,58013,1},{7207,58014,1},{7203,58008,1},{7202,57986,1},{7200,57978,1}, {7183,57968,1},{7175,57956,1},{7172,57946,1},{7170,57929,1},{7170,57926,1}, {7170,57948,1},{7173,57956,1},{7183,57971,1},{7198,57981,1},{7200,57986,1}, {7200,58003,1},{7202,58016,1},{7210,58024,1},{7213,58033,1},{7210,58059,1}, {7208,58109,1},{7198,58123,1},{7195,58124,1},{7192,58114,1},{7187,58119,1}, {7182,58111,1},{7180,58093,1},{7183,58084,1},{7182,58079,1},{7180,58081,1}, {7177,58071,1},{7173,58064,1},{7172,58051,1},{7170,58044,1},{7172,58028,1}, {7170,58004,1},{7168,57998,1},{7170,58028,1},{7168,58039,1},{7167,58043,1}, {7163,58034,1},{7158,58016,1},{7157,58013,1},{7152,57996,1},{7153,58004,1}, {7155,58016,1},{7158,58023,1},{7162,58046,1},{7168,58058,1},{7170,58066,1}, {7168,58069,1},{7167,58073,1},{7158,58063,1},{7155,58054,1},{7153,58033,1}, {7147,58021,1},{7152,58033,1},{7152,58048,1},{7150,58054,1},{7147,58049,1}, {7145,58043,1},{7143,58063,1},{7138,58066,1},{7127,58044,1},{7120,58028,1}, {7118,58028,1},{7125,58049,1},{7138,58073,1},{7143,58073,1},{7147,58063,1}, {7153,58064,1},{7155,58074,1},{7167,58084,1},{7168,58098,1},{7173,58109,1}, {7173,58126,1},{7167,58123,1},{7163,58113,1},{7162,58111,1},{7157,58111,1}, {7153,58121,1},{7162,58114,1},{7165,58126,1},{7177,58138,1},{7178,58163,1}, {7177,58168,1},{7172,58168,1},{7177,58173,1},{7175,58178,1},{7170,58173,1}, {7167,58158,1},{7163,58156,1},{7162,58148,1},{7158,58148,1},{7153,58138,1}, {7147,58138,1},{7147,58126,1},{7142,58104,1},{7143,58124,1},{7143,58133,1}, {7133,58129,1},{7130,58118,1},{7130,58126,1},{7128,58128,1},{7120,58113,1}, {7125,58124,1},{7132,58136,1},{7137,58136,1},{7142,58139,1},{7145,58146,1}, {7153,58149,1},{7158,58161,1},{7158,58174,1},{7155,58179,1},{7143,58171,1}, {7138,58178,1},{7137,58173,1},{7138,58184,1},{7142,58186,1},{7143,58191,1}, {7138,58198,1},{7137,58188,1},{7133,58184,1},{7130,58174,1},{7125,58168,1}, {7110,58163,1},{7107,58149,1},{7105,58146,1},{7107,58163,1},{7108,58169,1}, {7117,58169,1},{7123,58174,1},{7128,58183,1},{7130,58193,1},{7133,58193,1}, {7133,58204,1},{7130,58219,1},{7128,58219,1},{7128,58226,1},{7127,58231,1}, {7122,58209,1},{7117,58213,1},{7110,58206,1},{7103,58191,1},{7098,58198,1}, {7103,58196,1},{7108,58209,1},{7113,58216,1},{7122,58218,1},{7123,58226,1}, {7123,58233,1},{7125,58236,1},{7132,58241,1},{7140,58238,1},{7143,58259,1}, {7150,58253,1},{7153,58271,1},{7165,58279,1},{7160,58319,1},{7157,58344,1}, {7153,58356,1},{7150,58379,1},{7148,58384,1},{7147,58391,1},{7143,58393,1}, {7138,58406,1},{7125,58424,1},{7117,58403,1},{7107,58389,1},{7107,58376,1}, {7112,58348,1},{7105,58326,1},{7102,58326,1},{7097,58318,1},{7095,58308,1}, {7088,58303,1},{7082,58259,1},{7083,58284,1},{7087,58306,1},{7087,58311,1}, {7083,58319,1},{7075,58303,1},{7072,58304,1},{7068,58298,1},{7063,58274,1}, {7063,58281,1},{7060,58281,1},{7063,58286,1},{7067,58301,1},{7077,58319,1}, {7078,58339,1},{7087,58373,1},{7087,58394,1},{7088,58403,1},{7085,58418,1}, {7087,58418,1},{7092,58408,1},{7100,58416,1},{7112,58454,1},{7112,58461,1}, {7107,58474,1},{7093,58484,1},{7088,58478,1},{7083,58463,1},{7075,58461,1}, {7065,58426,1},{7058,58421,1},{7062,58381,1},{7060,58376,1},{7058,58376,1}, {7055,58378,1},{7048,58363,1},{7045,58361,1},{7042,58339,1},{7042,58363,1}, {7033,58361,1},{7028,58353,1},{7032,58363,1},{7042,58371,1},{7047,58371,1}, {7052,58384,1},{7057,58384,1},{7058,58388,1},{7057,58396,1},{7055,58394,1}, {7057,58399,1},{7053,58419,1},{7042,58413,1},{7033,58409,1},{7032,58404,1}, {7025,58408,1},{7002,58383,1},{7013,58403,1},{7020,58406,1},{7027,58414,1}, {7030,58413,1},{7052,58429,1},{7052,58438,1},{7055,58431,1},{7063,58436,1}, {7063,58451,1},{7073,58476,1},{7075,58488,1},{7078,58496,1},{7080,58513,1}, {7088,58549,1},{7085,58559,1},{7075,58544,1},{7063,58513,1},{7063,58496,1}, {7062,58489,1},{7052,58496,1},{7048,58488,1},{7050,58506,1},{7062,58496,1}, {7062,58528,1},{7063,58531,1},{7062,58531,1},{7058,58533,1},{7062,58534,1}, {7065,58538,1},{7068,58549,1},{7068,58558,1},{7070,58556,1},{7072,58558,1}, {7068,58569,1},{7075,58574,1},{7078,58591,1},{7077,58596,1},{7078,58613,1}, {7072,58624,1},{7057,58704,1},{7053,58708,1},{7050,58708,1},{7042,58691,1}, {7037,58691,1},{7040,58678,1},{7047,58679,1},{7043,58669,1},{7035,58671,1}, {7033,58668,1},{7030,58646,1},{7030,58633,1},{7025,58594,1},{7022,58586,1}, {7020,58573,1},{7015,58553,1},{7012,58551,1},{7008,58544,1},{7007,58528,1}, {7003,58518,1},{7002,58519,1},{7003,58526,1},{7007,58533,1},{7005,58546,1}, {7002,58551,1},{6998,58554,1},{6998,58531,1},{6997,58519,1},{6993,58514,1}, {6992,58513,1},{6985,58489,1},{6985,58501,1},{6995,58528,1},{6995,58556,1}, {6997,58561,1},{7000,58563,1},{7005,58556,1},{7008,58558,1},{7013,58568,1}, {7018,58611,1},{7017,58633,1},{7018,58634,1},{7022,58623,1},{7020,58643,1}, {7020,58668,1},{7015,58671,1},{7010,58661,1},{7007,58663,1},{7005,58658,1}, {7000,58636,1},{6997,58626,1},{6982,58593,1},{6983,58566,1},{6982,58556,1}, {6978,58549,1},{6973,58548,1},{6967,58536,1},{6962,58538,1},{6967,58543,1}, {6973,58554,1},{6977,58554,1},{6980,58563,1},{6980,58579,1},{6978,58591,1}, {6978,58596,1},{6980,58601,1},{6988,58616,1},{6995,58641,1},{6995,58659,1}, {6993,58666,1},{6995,58668,1},{6993,58673,1},{6998,58669,1},{6998,58674,1}, {7002,58683,1},{7005,58679,1},{7005,58691,1},{7007,58693,1},{7007,58703,1}, {7012,58716,1},{7013,58713,1},{7013,58703,1},{7017,58708,1},{7017,58701,1}, {7018,58701,1},{7018,58708,1},{7022,58704,1},{7028,58719,1},{7032,58721,1}, {7032,58731,1},{7030,58734,1},{7027,58756,1},{7022,58763,1},{7013,58783,1}, {7005,58798,1},{7000,58803,1},{6995,58814,1},{6987,58814,1},{6982,58821,1}, {6978,58819,1},{6973,58824,1},{6972,58798,1},{6973,58788,1},{6978,58758,1}, {6977,58736,1},{6972,58719,1},{6972,58716,1},{6963,58704,1},{6963,58683,1}, {6965,58668,1},{6963,58658,1},{6953,58614,1},{6953,58601,1},{6957,58568,1}, {6957,58553,1},{6953,58541,1},{6953,58533,1},{6952,58536,1},{6950,58546,1}, {6953,58558,1},{6955,58568,1},{6950,58604,1},{6953,58634,1},{6957,58643,1}, {6958,58669,1},{6958,58683,1},{6945,58738,1},{6945,58749,1},{6948,58756,1}, {6947,58788,1},{6947,58811,1},{6933,58859,1},{6922,58871,1},{6918,58869,1}, {6913,58861,1},{6918,58836,1},{6918,58818,1},{6915,58816,1},{6918,58801,1}, {6915,58786,1},{6917,58768,1},{6932,58714,1},{6930,58701,1},{6932,58681,1}, {6935,58638,1},{6932,58619,1},{6927,58611,1},{6927,58613,1},{6930,58621,1}, {6933,58643,1},{6927,58691,1},{6927,58719,1},{6922,58728,1},{6920,58723,1}, {6923,58671,1},{6922,58663,1},{6922,58643,1},{6922,58636,1},{6920,58686,1}, {6913,58666,1},{6910,58628,1},{6908,58629,1},{6910,58634,1},{6910,58643,1}, {6900,58639,1},{6897,58633,1},{6897,58639,1},{6900,58643,1},{6908,58649,1}, {6912,58668,1},{6918,58694,1},{6915,58718,1},{6903,58764,1},{6902,58766,1}, {6900,58761,1},{6900,58739,1},{6897,58739,1},{6902,58704,1},{6898,58688,1}, {6898,58681,1},{6897,58681,1},{6898,58703,1},{6895,58718,1},{6895,58731,1}, {6892,58731,1},{6890,58728,1},{6888,58734,1},{6885,58738,1},{6887,58726,1}, {6890,58708,1},{6888,58688,1},{6887,58706,1},{6883,58723,1},{6880,58749,1}, {6878,58751,1},{6878,58759,1},{6877,58751,1},{6878,58739,1},{6882,58716,1}, {6885,58679,1},{6883,58674,1},{6882,58686,1},{6880,58688,1},{6878,58676,1}, {6880,58664,1},{6882,58639,1},{6885,58631,1},{6887,58609,1},{6887,58599,1}, {6887,58596,1},{6885,58611,1},{6883,58621,1},{6883,58599,1},{6882,58599,1}, {6878,58641,1},{6875,58639,1},{6875,58636,1},{6873,58639,1},{6877,58649,1}, {6875,58664,1},{6873,58669,1},{6873,58699,1},{6868,58731,1},{6867,58728,1}, {6867,58719,1},{6865,58728,1},{6863,58726,1},{6865,58714,1},{6863,58699,1}, {6865,58679,1},{6865,58666,1},{6863,58658,1},{6862,58656,1},{6860,58646,1}, {6858,58653,1},{6860,58663,1},{6863,58668,1},{6863,58673,1},{6860,58689,1}, {6858,58681,1},{6858,58663,1},{6857,58661,1},{6857,58664,1},{6857,58691,1}, {6860,58696,1},{6858,58714,1},{6857,58718,1},{6857,58723,1},{6853,58723,1}, {6855,58729,1},{6853,58734,1},{6853,58739,1},{6855,58739,1},{6855,58744,1}, {6845,58746,1},{6840,58741,1},{6842,58746,1},{6855,58749,1},{6853,58756,1}, {6857,58769,1},{6855,58776,1},{6855,58783,1},{6853,58786,1},{6852,58784,1}, {6850,58773,1},{6838,58774,1},{6842,58781,1},{6848,58781,1},{6848,58796,1}, {6847,58798,1},{6850,58799,1},{6848,58806,1},{6845,58809,1},{6848,58813,1}, {6843,58818,1},{6842,58803,1},{6840,58804,1},{6842,58826,1},{6848,58824,1}, {6843,58839,1},{6847,58856,1},{6845,58868,1},{6843,58868,1},{6842,58856,1}, {6840,58856,1},{6842,58846,1},{6837,58843,1},{6835,58834,1},{6840,58811,1}, {6840,58796,1},{6838,58794,1},{6837,58786,1},{6833,58754,1},{6830,58749,1}, {6825,58749,1},{6832,58761,1},{6832,58774,1},{6833,58783,1},{6830,58778,1}, {6827,58778,1},{6825,58768,1},{6823,58768,1},{6825,58781,1},{6830,58783,1}, {6835,58796,1},{6835,58803,1},{6832,58804,1},{6835,58811,1},{6832,58834,1}, {6830,58813,1},{6828,58813,1},{7375,57459,129},{7377,57479,1},{7375,57506,1}, {7370,57526,1},{7373,57534,1},{7370,57546,1},{7367,57573,1},{7363,57591,1}, {7363,57639,1},{7365,57649,1},{7367,57719,1},{7360,57754,1},{7355,57794,1}, {7352,57803,1},{7350,57816,1},{7345,57821,1},{7340,57833,1},{7337,57831,1}, {7332,57846,1},{7332,57866,1},{7328,57861,1},{7322,57878,1},{7317,57873,1}, {7315,57878,1},{7312,57886,1},{7310,57913,1},{7307,57904,1},{7305,57908,1}, {7302,57904,1},{7300,57909,1},{7297,57903,1},{7295,57909,1},{7293,57924,1}, {7290,57929,1},{7285,57924,1},{7282,57903,1},{7282,57876,1},{7283,57864,1}, {7285,57816,1},{7288,57791,1},{7290,57764,1},{7288,57709,1},{7285,57674,1}, {7275,57619,1},{7273,57599,1},{7275,57576,1},{7278,57564,1},{7283,57556,1}, {7287,57536,1},{7298,57524,1},{7305,57518,1},{7312,57524,1},{7315,57518,1}, {7318,57524,1},{7322,57521,1},{7325,57514,1},{7325,57479,1},{7327,57469,1}, {7328,57456,1},{7333,57448,1},{7348,57451,1},{7348,57454,1},{7348,57466,1}, {7355,57449,1},{7360,57446,1},{7367,57456,1},{7372,57456,1},{7375,57449,1}, {7375,57459,1},{7402,56028,129},{7407,56056,1},{7410,56063,1},{7410,56093,1}, {7412,56096,1},{7413,56118,1},{7413,56146,1},{7408,56154,1},{7408,56159,1}, {7408,56164,1},{7410,56161,1},{7415,56161,1},{7417,56169,1},{7417,56184,1}, {7417,56208,1},{7412,56256,1},{7412,56261,1},{7408,56261,1},{7410,56273,1}, {7402,56306,1},{7393,56304,1},{7395,56323,1},{7398,56326,1},{7402,56343,1}, {7403,56379,1},{7400,56429,1},{7397,56456,1},{7397,56466,1},{7392,56496,1}, {7393,56503,1},{7392,56511,1},{7390,56516,1},{7383,56509,1},{7387,56504,1}, {7385,56498,1},{7378,56499,1},{7357,56459,1},{7353,56451,1},{7355,56438,1}, {7348,56443,1},{7335,56418,1},{7327,56409,1},{7323,56373,1},{7322,56394,1}, {7320,56399,1},{7310,56388,1},{7302,56371,1},{7298,56371,1},{7290,56356,1}, {7287,56354,1},{7280,56334,1},{7275,56326,1},{7270,56303,1},{7273,56253,1}, {7277,56229,1},{7278,56221,1},{7278,56214,1},{7282,56204,1},{7280,56194,1}, {7280,56186,1},{7277,56176,1},{7277,56126,1},{7277,56109,1},{7277,56104,1}, {7273,56103,1},{7272,56106,1},{7273,56113,1},{7273,56123,1},{7270,56136,1}, {7272,56149,1},{7273,56158,1},{7265,56154,1},{7262,56169,1},{7257,56179,1}, {7247,56189,1},{7243,56188,1},{7242,56179,1},{7235,56173,1},{7233,56159,1}, {7230,56154,1},{7217,56134,1},{7207,56128,1},{7203,56113,1},{7202,56114,1}, {7202,56123,1},{7207,56133,1},{7203,56131,1},{7200,56133,1},{7198,56129,1}, {7200,56114,1},{7202,56094,1},{7202,56061,1},{7197,56024,1},{7197,56018,1}, {7200,56026,1},{7198,56016,1},{7205,56016,1},{7210,56028,1},{7210,56016,1}, {7213,56038,1},{7215,56061,1},{7215,56039,1},{7213,56023,1},{7215,56019,1}, {7218,56016,1},{7235,56019,1},{7243,56013,1},{7243,56021,1},{7245,56016,1}, {7247,56023,1},{7252,56016,1},{7253,56004,1},{7258,56001,1},{7260,56004,1}, {7265,55999,1},{7267,55991,1},{7268,55991,1},{7268,55981,1},{7270,55976,1}, {7273,55976,1},{7273,55984,1},{7277,55979,1},{7278,55981,1},{7278,55971,1}, {7282,55969,1},{7293,55974,1},{7300,55964,1},{7305,55971,1},{7308,55968,1}, {7312,55973,1},{7313,55986,1},{7317,55978,1},{7330,55978,1},{7332,55971,1}, {7338,55976,1},{7345,55968,1},{7353,55973,1},{7355,55966,1},{7357,55973,1}, {7358,55969,1},{7357,55979,1},{7358,55981,1},{7363,55973,1},{7363,55964,1}, {7367,55968,1},{7368,55964,1},{7370,55971,1},{7373,55969,1},{7373,55978,1}, {7377,55993,1},{7375,56001,1},{7377,56008,1},{7370,56023,1},{7365,56048,1}, {7365,56074,1},{7368,56068,1},{7368,56049,1},{7377,56028,1},{7380,56024,1}, {7383,56033,1},{7383,56041,1},{7385,56036,1},{7385,56026,1},{7382,56023,1}, {7385,56013,1},{7388,56004,1},{7398,56008,1},{7402,56013,1},{7402,56028,1}, {7563,56053,129},{7560,56089,1},{7558,56101,1},{7543,56138,1},{7535,56168,1}, {7532,56171,1},{7530,56156,1},{7530,56171,1},{7525,56188,1},{7520,56178,1}, {7512,56191,1},{7508,56184,1},{7507,56188,1},{7503,56171,1},{7503,56184,1}, {7497,56193,1},{7488,56196,1},{7475,56193,1},{7475,56189,1},{7475,56179,1}, {7473,56189,1},{7468,56186,1},{7463,56164,1},{7463,56113,1},{7465,56108,1}, {7462,56081,1},{7463,56064,1},{7468,56051,1},{7467,56044,1},{7468,56028,1}, {7473,56029,1},{7475,56021,1},{7480,56008,1},{7480,56001,1},{7477,55991,1}, {7480,55998,1},{7480,55989,1},{7473,55989,1},{7475,55981,1},{7482,55984,1}, {7482,55973,1},{7485,55964,1},{7482,55963,1},{7482,55944,1},{7485,55949,1}, {7487,55939,1},{7492,55923,1},{7493,55923,1},{7495,55933,1},{7497,55931,1}, {7495,55926,1},{7495,55923,1},{7502,55929,1},{7502,55921,1},{7492,55914,1}, {7490,55909,1},{7490,55901,1},{7493,55896,1},{7498,55896,1},{7498,55904,1}, {7500,55903,1},{7500,55886,1},{7498,55874,1},{7507,55876,1},{7520,55891,1}, {7517,55898,1},{7520,55899,1},{7522,55898,1},{7523,55911,1},{7525,55936,1}, {7525,55928,1},{7527,55928,1},{7530,55944,1},{7530,55919,1},{7532,55931,1}, {7538,55941,1},{7537,55948,1},{7535,55944,1},{7537,55958,1},{7540,55946,1}, {7540,55933,1},{7537,55921,1},{7540,55923,1},{7542,55929,1},{7542,55934,1}, {7543,55941,1},{7542,55949,1},{7538,55953,1},{7540,55968,1},{7543,55968,1}, {7543,55958,1},{7545,55953,1},{7552,55961,1},{7557,55989,1},{7555,55999,1}, {7560,56009,1},{7558,56014,1},{7562,56031,1},{7563,56044,1},{7563,56053,1}, {7737,53671,129},{7735,53723,1},{7738,53726,1},{7738,53749,1},{7737,53741,1}, {7735,53759,1},{7733,53764,1},{7733,53774,1},{7733,53788,1},{7732,53791,1}, {7730,53803,1},{7728,53811,1},{7730,53821,1},{7730,53836,1},{7733,53826,1}, {7733,53818,1},{7737,53821,1},{7732,53851,1},{7732,53858,1},{7733,53854,1}, {7735,53861,1},{7737,53869,1},{7738,53869,1},{7738,53854,1},{7740,53849,1}, {7740,53836,1},{7745,53821,1},{7748,53829,1},{7745,53831,1},{7747,53846,1}, {7750,53858,1},{7752,53859,1},{7752,53846,1},{7753,53846,1},{7755,53894,1}, {7753,53901,1},{7752,53916,1},{7748,53929,1},{7747,53926,1},{7742,53961,1}, {7735,53991,1},{7730,53998,1},{7730,53988,1},{7727,53981,1},{7725,53959,1}, {7722,53946,1},{7718,53909,1},{7715,53908,1},{7713,53896,1},{7712,53906,1}, {7705,53911,1},{7695,53963,1},{7692,53961,1},{7690,53946,1},{7693,53908,1}, {7693,53899,1},{7690,53901,1},{7685,53918,1},{7682,53936,1},{7668,53946,1}, {7668,53934,1},{7662,53926,1},{7658,53904,1},{7657,53883,1},{7657,53863,1}, {7653,53853,1},{7655,53841,1},{7653,53831,1},{7650,53829,1},{7645,53838,1}, {7635,53843,1},{7630,53826,1},{7625,53801,1},{7627,53776,1},{7632,53769,1}, {7632,53754,1},{7637,53746,1},{7642,53729,1},{7647,53738,1},{7650,53734,1}, {7653,53746,1},{7657,53741,1},{7658,53746,1},{7660,53739,1},{7663,53746,1}, {7668,53744,1},{7673,53756,1},{7678,53763,1},{7682,53756,1},{7682,53746,1}, {7677,53739,1},{7675,53733,1},{7677,53704,1},{7670,53704,1},{7672,53691,1}, {7670,53688,1},{7668,53689,1},{7665,53703,1},{7655,53706,1},{7655,53693,1}, {7650,53679,1},{7652,53668,1},{7655,53663,1},{7655,53651,1},{7653,53659,1}, {7652,53643,1},{7650,53638,1},{7648,53641,1},{7648,53653,1},{7645,53654,1}, {7645,53668,1},{7635,53679,1},{7628,53673,1},{7628,53651,1},{7627,53644,1}, {7622,53641,1},{7617,53648,1},{7617,53639,1},{7613,53639,1},{7612,53629,1}, {7608,53628,1},{7613,53608,1},{7618,53606,1},{7625,53591,1},{7637,53586,1}, {7632,53579,1},{7633,53564,1},{7630,53571,1},{7627,53571,1},{7627,53566,1}, {7617,53579,1},{7617,53578,1},{7615,53566,1},{7612,53581,1},{7610,53576,1}, {7612,53556,1},{7603,53588,1},{7597,53588,1},{7600,53574,1},{7597,53569,1}, {7595,53566,1},{7592,53576,1},{7592,53568,1},{7592,53564,1},{7588,53559,1}, {7585,53538,1},{7585,53528,1},{7590,53521,1},{7580,53503,1},{7582,53491,1}, {7585,53488,1},{7592,53489,1},{7597,53498,1},{7598,53491,1},{7602,53489,1}, {7600,53478,1},{7598,53476,1},{7602,53466,1},{7605,53463,1},{7610,53471,1}, {7610,53461,1},{7615,53469,1},{7620,53451,1},{7618,53441,1},{7613,53434,1}, {7607,53434,1},{7595,53443,1},{7593,53436,1},{7595,53434,1},{7598,53438,1}, {7600,53434,1},{7598,53424,1},{7595,53409,1},{7590,53406,1},{7593,53394,1}, {7598,53386,1},{7605,53349,1},{7603,53331,1},{7603,53323,1},{7597,53323,1}, {7597,53314,1},{7593,53294,1},{7593,53279,1},{7595,53266,1},{7597,53263,1}, {7598,53271,1},{7602,53279,1},{7602,53273,1},{7602,53266,1},{7605,53281,1}, {7612,53289,1},{7612,53279,1},{7612,53266,1},{7613,53288,1},{7615,53279,1}, {7617,53274,1},{7615,53258,1},{7615,53251,1},{7610,53246,1},{7608,53233,1}, {7615,53246,1},{7618,53241,1},{7618,53251,1},{7623,53253,1},{7623,53266,1}, {7627,53273,1},{7635,53274,1},{7640,53294,1},{7642,53326,1},{7645,53338,1}, {7642,53358,1},{7643,53383,1},{7650,53394,1},{7655,53394,1},{7657,53404,1}, {7660,53404,1},{7662,53414,1},{7668,53418,1},{7667,53426,1},{7670,53446,1}, {7673,53454,1},{7675,53478,1},{7680,53496,1},{7683,53499,1},{7687,53494,1}, {7692,53518,1},{7695,53518,1},{7697,53528,1},{7700,53528,1},{7702,53541,1}, {7710,53554,1},{7712,53571,1},{7715,53574,1},{7718,53598,1},{7728,53606,1}, {7732,53616,1},{7733,53624,1},{7732,53643,1},{7735,53654,1},{7737,53671,1}, {7935,55166,129},{7930,55196,1},{7928,55226,1},{7923,55236,1},{7923,55248,1}, {7922,55243,1},{7917,55248,1},{7910,55274,1},{7898,55269,1},{7895,55259,1}, {7893,55279,1},{7890,55273,1},{7887,55279,1},{7893,55298,1},{7902,55294,1}, {7905,55326,1},{7908,55343,1},{7908,55371,1},{7897,55413,1},{7897,55421,1}, {7897,55423,1},{7897,55428,1},{7893,55438,1},{7880,55418,1},{7880,55436,1}, {7877,55443,1},{7878,55453,1},{7880,55478,1},{7882,55484,1},{7883,55501,1}, {7882,55501,1},{7880,55504,1},{7877,55508,1},{7873,55538,1},{7870,55546,1}, {7863,55529,1},{7862,55534,1},{7863,55551,1},{7862,55558,1},{7860,55561,1}, {7858,55581,1},{7857,55581,1},{7855,55571,1},{7853,55576,1},{7848,55569,1}, {7843,55549,1},{7838,55561,1},{7830,55556,1},{7828,55561,1},{7828,55583,1}, {7820,55594,1},{7807,55641,1},{7800,55639,1},{7797,55626,1},{7788,55634,1}, {7783,55618,1},{7782,55581,1},{7782,55554,1},{7778,55546,1},{7782,55524,1}, {7782,55509,1},{7787,55476,1},{7788,55476,1},{7802,55453,1},{7808,55461,1}, {7813,55436,1},{7820,55433,1},{7818,55408,1},{7820,55401,1},{7823,55389,1}, {7828,55323,1},{7823,55274,1},{7828,55254,1},{7832,55256,1},{7835,55269,1}, {7838,55258,1},{7837,55243,1},{7837,55223,1},{7833,55198,1},{7832,55168,1}, {7827,55146,1},{7825,55146,1},{7823,55138,1},{7827,55089,1},{7835,55054,1}, {7848,55031,1},{7852,55034,1},{7857,55051,1},{7858,55069,1},{7857,55101,1}, {7852,55128,1},{7852,55164,1},{7850,55184,1},{7853,55191,1},{7857,55186,1}, {7858,55198,1},{7862,55194,1},{7862,55133,1},{7863,55131,1},{7867,55153,1}, {7867,55188,1},{7872,55184,1},{7872,55201,1},{7873,55204,1},{7878,55189,1}, {7875,55178,1},{7877,55176,1},{7873,55154,1},{7880,55163,1},{7878,55158,1}, {7880,55149,1},{7880,55146,1},{7877,55146,1},{7877,55138,1},{7877,55128,1}, {7878,55126,1},{7877,55116,1},{7882,55119,1},{7890,55154,1},{7893,55133,1}, {7897,55131,1},{7898,55116,1},{7898,55109,1},{7895,55106,1},{7895,55091,1}, {7887,55079,1},{7880,55058,1},{7880,55044,1},{7880,55034,1},{7885,55034,1}, {7888,55049,1},{7902,55068,1},{7905,55043,1},{7902,55021,1},{7902,54981,1}, {7903,54978,1},{7917,54973,1},{7928,54994,1},{7930,54988,1},{7933,54993,1}, {7930,55019,1},{7933,55074,1},{7937,55138,1},{7935,55166,1},{7882,55741,129}, {7880,55784,1},{7873,55834,1},{7870,55848,1},{7868,55883,1},{7862,55906,1}, {7863,55918,1},{7862,55921,1},{7853,55909,1},{7848,55943,1},{7852,55964,1}, {7852,55988,1},{7845,56023,1},{7837,56053,1},{7832,56043,1},{7823,55996,1}, {7820,56023,1},{7815,56028,1},{7812,56048,1},{7808,56043,1},{7807,56048,1}, {7795,56026,1},{7797,56004,1},{7795,55994,1},{7788,55943,1},{7787,55908,1}, {7787,55898,1},{7790,55893,1},{7790,55883,1},{7787,55873,1},{7787,55863,1}, {7785,55869,1},{7787,55886,1},{7785,55879,1},{7785,55884,1},{7783,55864,1}, {7778,55848,1},{7780,55826,1},{7787,55824,1},{7792,55836,1},{7795,55804,1}, {7800,55786,1},{7803,55758,1},{7805,55771,1},{7808,55771,1},{7808,55806,1}, {7808,55844,1},{7813,55849,1},{7817,55819,1},{7820,55804,1},{7822,55743,1}, {7825,55744,1},{7823,55754,1},{7825,55759,1},{7828,55748,1},{7830,55729,1}, {7833,55734,1},{7837,55728,1},{7840,55733,1},{7842,55716,1},{7847,55698,1}, {7850,55694,1},{7852,55704,1},{7853,55701,1},{7855,55734,1},{7860,55724,1}, {7860,55711,1},{7865,55703,1},{7877,55699,1},{7882,55721,1},{7882,55741,1}, {7663,55498,129},{7665,55514,1},{7663,55533,1},{7660,55553,1},{7663,55563,1}, {7662,55578,1},{7660,55581,1},{7660,55568,1},{7658,55568,1},{7658,55584,1}, {7650,55608,1},{7652,55613,1},{7650,55621,1},{7647,55609,1},{7642,55618,1}, {7640,55626,1},{7640,55629,1},{7647,55624,1},{7645,55633,1},{7647,55634,1}, {7647,55641,1},{7643,55641,1},{7643,55651,1},{7645,55648,1},{7647,55649,1}, {7653,55631,1},{7660,55633,1},{7662,55649,1},{7660,55658,1},{7658,55661,1}, {7660,55663,1},{7662,55664,1},{7662,55684,1},{7663,55683,1},{7665,55688,1}, {7665,55681,1},{7665,55669,1},{7665,55653,1},{7667,55651,1},{7668,55661,1}, {7667,55693,1},{7662,55694,1},{7658,55721,1},{7657,55711,1},{7658,55696,1}, {7657,55701,1},{7655,55716,1},{7655,55721,1},{7653,55728,1},{7652,55759,1}, {7648,55769,1},{7642,55769,1},{7632,55758,1},{7618,55784,1},{7613,55786,1}, {7608,55778,1},{7597,55771,1},{7587,55781,1},{7580,55769,1},{7573,55743,1}, {7568,55798,1},{7550,55794,1},{7543,55798,1},{7540,55808,1},{7542,55789,1}, {7550,55788,1},{7557,55763,1},{7553,55761,1},{7555,55751,1},{7550,55759,1}, {7547,55761,1},{7547,55753,1},{7550,55751,1},{7552,55746,1},{7548,55741,1}, {7548,55731,1},{7547,55741,1},{7545,55731,1},{7545,55744,1},{7542,55759,1}, {7542,55756,1},{7540,55731,1},{7540,55733,1},{7538,55746,1},{7537,55748,1}, {7535,55738,1},{7537,55734,1},{7535,55729,1},{7537,55729,1},{7537,55723,1}, {7533,55719,1},{7532,55723,1},{7533,55723,1},{7533,55728,1},{7530,55723,1}, {7528,55731,1},{7532,55736,1},{7533,55746,1},{7528,55736,1},{7527,55743,1}, {7528,55744,1},{7530,55746,1},{7528,55748,1},{7522,55761,1},{7520,55763,1}, {7520,55756,1},{7520,55766,1},{7517,55768,1},{7515,55776,1},{7517,55774,1}, {7517,55778,1},{7512,55774,1},{7512,55748,1},{7517,55734,1},{7522,55733,1}, {7522,55726,1},{7520,55729,1},{7518,55721,1},{7517,55721,1},{7512,55731,1}, {7512,55738,1},{7507,55743,1},{7502,55738,1},{7502,55729,1},{7500,55681,1}, {7498,55664,1},{7500,55658,1},{7502,55661,1},{7502,55651,1},{7507,55649,1}, {7505,55639,1},{7500,55641,1},{7500,55609,1},{7498,55601,1},{7500,55596,1}, {7503,55598,1},{7512,55609,1},{7512,55603,1},{7503,55586,1},{7498,55593,1}, {7497,55576,1},{7498,55521,1},{7502,55501,1},{7503,55496,1},{7510,55498,1}, {7515,55493,1},{7517,55496,1},{7518,55483,1},{7520,55483,1},{7523,55493,1}, {7523,55538,1},{7527,55496,1},{7528,55508,1},{7532,55511,1},{7530,55486,1}, {7532,55473,1},{7533,55469,1},{7535,55459,1},{7538,55468,1},{7537,55476,1}, {7535,55466,1},{7535,55473,1},{7535,55479,1},{7537,55478,1},{7537,55489,1}, {7538,55493,1},{7538,55484,1},{7543,55478,1},{7543,55464,1},{7545,55533,1}, {7547,55534,1},{7547,55506,1},{7548,55534,1},{7550,55539,1},{7552,55508,1}, {7555,55553,1},{7555,55533,1},{7558,55564,1},{7560,55569,1},{7562,55549,1}, {7565,55554,1},{7568,55608,1},{7568,55633,1},{7570,55648,1},{7572,55641,1}, {7567,55578,1},{7567,55569,1},{7568,55581,1},{7570,55574,1},{7565,55508,1}, {7565,55496,1},{7563,55489,1},{7565,55479,1},{7562,55453,1},{7562,55429,1}, {7560,55426,1},{7558,55413,1},{7560,55408,1},{7557,55399,1},{7560,55398,1}, {7560,55386,1},{7558,55378,1},{7555,55339,1},{7555,55301,1},{7550,55276,1}, {7550,55269,1},{7553,55269,1},{7555,55258,1},{7557,55263,1},{7560,55251,1}, {7562,55248,1},{7562,55264,1},{7562,55273,1},{7563,55266,1},{7567,55268,1}, {7568,55283,1},{7572,55279,1},{7573,55298,1},{7572,55314,1},{7568,55326,1}, {7570,55334,1},{7570,55326,1},{7573,55326,1},{7575,55313,1},{7578,55326,1}, {7580,55299,1},{7585,55306,1},{7588,55319,1},{7590,55349,1},{7588,55358,1}, {7585,55363,1},{7582,55391,1},{7577,55389,1},{7575,55394,1},{7575,55413,1}, {7577,55413,1},{7580,55444,1},{7577,55403,1},{7580,55404,1},{7585,55398,1}, {7587,55383,1},{7592,55376,1},{7597,55396,1},{7602,55404,1},{7600,55396,1}, {7598,55369,1},{7602,55351,1},{7608,55346,1},{7612,55348,1},{7617,55359,1}, {7622,55386,1},{7625,55398,1},{7622,55364,1},{7623,55351,1},{7622,55331,1}, {7622,55323,1},{7625,55319,1},{7627,55331,1},{7628,55328,1},{7628,55316,1}, {7632,55333,1},{7635,55326,1},{7637,55331,1},{7635,55341,1},{7640,55331,1}, {7645,55349,1},{7643,55391,1},{7642,55404,1},{7637,55413,1},{7633,55431,1}, {7623,55423,1},{7623,55438,1},{7618,55461,1},{7613,55473,1},{7608,55463,1}, {7612,55494,1},{7608,55474,1},{7605,55504,1},{7597,55519,1},{7595,55529,1}, {7590,55521,1},{7592,55536,1},{7590,55539,1},{7588,55538,1},{7587,55543,1}, {7590,55548,1},{7590,55561,1},{7595,55578,1},{7597,55591,1},{7597,55571,1}, {7593,55549,1},{7597,55546,1},{7598,55549,1},{7600,55533,1},{7603,55536,1}, {7603,55528,1},{7610,55524,1},{7613,55514,1},{7613,55523,1},{7615,55529,1}, {7613,55554,1},{7612,55564,1},{7613,55573,1},{7615,55594,1},{7613,55566,1}, {7617,55553,1},{7620,55536,1},{7622,55493,1},{7625,55484,1},{7627,55489,1}, {7627,55529,1},{7630,55516,1},{7632,55518,1},{7628,55533,1},{7628,55551,1}, {7630,55534,1},{7632,55544,1},{7632,55533,1},{7635,55521,1},{7638,55521,1}, {7637,55511,1},{7638,55504,1},{7637,55478,1},{7637,55466,1},{7648,55439,1}, {7652,55439,1},{7653,55464,1},{7657,55464,1},{7663,55498,1},{7107,62968,129}, {7100,62968,1},{7098,62964,1},{7097,62984,1},{7092,62996,1},{7087,62998,1}, {7085,62994,1},{7080,63003,1},{7078,62989,1},{7077,62988,1},{7077,63004,1}, {7068,63008,1},{7065,63004,1},{7063,62978,1},{7060,62964,1},{7060,62954,1}, {7052,62933,1},{7053,62923,1},{7057,62921,1},{7058,62914,1},{7055,62889,1}, {7052,62879,1},{7053,62839,1},{7052,62838,1},{7050,62833,1},{7050,62821,1}, {7047,62809,1},{7047,62783,1},{7043,62753,1},{7043,62729,1},{7045,62723,1}, {7052,62738,1},{7057,62729,1},{7060,62733,1},{7063,62748,1},{7065,62769,1}, {7077,62794,1},{7080,62809,1},{7088,62823,1},{7088,62833,1},{7088,62873,1}, {7090,62889,1},{7093,62906,1},{7097,62911,1},{7102,62941,1},{7108,62963,1}, {7108,62968,1},{7107,62968,1},{7282,63224,129},{7275,63233,1},{7272,63239,1}, {7270,63251,1},{7268,63251,1},{7267,63266,1},{7263,63264,1},{7260,63278,1}, {7262,63288,1},{7260,63291,1},{7253,63319,1},{7248,63316,1},{7250,63329,1}, {7250,63338,1},{7247,63343,1},{7240,63343,1},{7238,63338,1},{7243,63309,1}, {7245,63309,1},{7243,63301,1},{7247,63271,1},{7243,63259,1},{7238,63263,1}, {7237,63268,1},{7230,63304,1},{7225,63304,1},{7225,63309,1},{7228,63314,1}, {7227,63331,1},{7220,63316,1},{7217,63323,1},{7213,63321,1},{7212,63304,1}, {7213,63279,1},{7217,63276,1},{7218,63284,1},{7220,63286,1},{7220,63279,1}, {7217,63269,1},{7220,63256,1},{7223,63239,1},{7230,63229,1},{7235,63209,1}, {7243,63153,1},{7247,63141,1},{7247,63134,1},{7243,63129,1},{7247,63128,1}, {7250,63136,1},{7253,63129,1},{7255,63121,1},{7255,63119,1},{7253,63121,1}, {7255,63113,1},{7257,63111,1},{7260,63099,1},{7272,63096,1},{7283,63088,1}, {7285,63098,1},{7287,63136,1},{7285,63164,1},{7283,63179,1},{7285,63199,1}, {7283,63209,1},{7283,63221,1},{7282,63224,1},{7292,63346,129},{7288,63346,1}, {7287,63336,1},{7283,63338,1},{7282,63321,1},{7280,63318,1},{7280,63323,1}, {7280,63326,1},{7278,63328,1},{7277,63339,1},{7275,63333,1},{7275,63341,1}, {7272,63349,1},{7268,63344,1},{7268,63336,1},{7270,63333,1},{7268,63328,1}, {7272,63329,1},{7268,63319,1},{7270,63311,1},{7270,63286,1},{7268,63276,1}, {7272,63264,1},{7272,63276,1},{7275,63261,1},{7280,63258,1},{7287,63224,1}, {7287,63174,1},{7290,63153,1},{7292,63129,1},{7290,63083,1},{7295,63078,1}, {7298,63083,1},{7302,63156,1},{7307,63216,1},{7303,63238,1},{7303,63256,1}, {7302,63264,1},{7298,63303,1},{7297,63314,1},{7293,63326,1},{7293,63328,1}, {7292,63334,1},{7293,63339,1},{7292,63346,1},{7342,63094,129},{7333,63168,1}, {7325,63209,1},{7323,63214,1},{7322,63213,1},{7322,63163,1},{7330,63111,1}, {7330,63091,1},{7332,63049,1},{7332,63036,1},{7330,63038,1},{7332,63044,1}, {7327,63073,1},{7325,63113,1},{7322,63138,1},{7318,63173,1},{7320,63193,1}, {7318,63223,1},{7315,63239,1},{7315,63249,1},{7310,63234,1},{7308,63203,1}, {7305,63158,1},{7305,63119,1},{7302,63098,1},{7308,63046,1},{7312,63031,1}, {7312,62991,1},{7318,62964,1},{7323,62979,1},{7330,62991,1},{7333,63008,1}, {7338,63006,1},{7340,63011,1},{7343,63064,1},{7342,63094,1},{7032,60106,129}, {7028,60146,1},{7025,60168,1},{7023,60184,1},{7020,60209,1},{7012,60233,1}, {7003,60244,1},{6992,60266,1},{6988,60284,1},{6982,60329,1},{6978,60339,1}, {6973,60346,1},{6968,60339,1},{6967,60333,1},{6963,60353,1},{6952,60334,1}, {6945,60311,1},{6935,60258,1},{6932,60218,1},{6923,60179,1},{6925,60171,1}, {6927,60153,1},{6930,60148,1},{6932,60143,1},{6933,60121,1},{6938,60109,1}, {6942,60109,1},{6945,60114,1},{6943,60121,1},{6943,60134,1},{6943,60149,1}, {6942,60156,1},{6945,60171,1},{6943,60198,1},{6945,60181,1},{6947,60178,1}, {6955,60186,1},{6958,60201,1},{6957,60181,1},{6955,60176,1},{6948,60173,1}, {6945,60158,1},{6947,60151,1},{6952,60163,1},{6952,60161,1},{6948,60141,1}, {6948,60138,1},{6952,60138,1},{6957,60149,1},{6960,60141,1},{6960,60138,1}, {6957,60138,1},{6955,60129,1},{6957,60109,1},{6958,60066,1},{6962,60054,1}, {6963,60054,1},{6970,60036,1},{6973,60039,1},{6975,60049,1},{6975,60071,1}, {6972,60076,1},{6967,60094,1},{6968,60098,1},{6977,60073,1},{6980,60051,1}, {6985,60043,1},{6987,60046,1},{6987,60056,1},{6993,60049,1},{6997,60059,1}, {6997,60073,1},{6992,60113,1},{6993,60108,1},{6997,60086,1},{7002,60063,1}, {7008,60053,1},{7018,60051,1},{7025,60061,1},{7032,60096,1},{7032,60106,1}, {7395,55536,129},{7393,55556,1},{7390,55553,1},{7387,55558,1},{7380,55596,1}, {7373,55616,1},{7370,55611,1},{7368,55618,1},{7375,55624,1},{7375,55654,1}, {7373,55658,1},{7375,55659,1},{7378,55673,1},{7382,55723,1},{7385,55739,1}, {7390,55746,1},{7392,55758,1},{7390,55763,1},{7387,55754,1},{7390,55776,1}, {7385,55789,1},{7385,55814,1},{7377,55831,1},{7373,55839,1},{7370,55843,1}, {7362,55838,1},{7358,55818,1},{7357,55819,1},{7355,55814,1},{7358,55791,1}, {7352,55791,1},{7353,55774,1},{7352,55773,1},{7348,55769,1},{7345,55776,1}, {7350,55794,1},{7347,55799,1},{7347,55816,1},{7345,55819,1},{7343,55811,1}, {7342,55819,1},{7335,55819,1},{7337,55809,1},{7335,55801,1},{7332,55771,1}, {7330,55771,1},{7330,55764,1},{7327,55753,1},{7323,55749,1},{7312,55716,1}, {7307,55713,1},{7300,55684,1},{7298,55691,1},{7295,55689,1},{7295,55693,1}, {7285,55693,1},{7290,55696,1},{7298,55711,1},{7303,55738,1},{7303,55768,1}, {7297,55806,1},{7293,55814,1},{7288,55811,1},{7287,55794,1},{7285,55813,1}, {7278,55819,1},{7278,55828,1},{7273,55834,1},{7267,55818,1},{7260,55818,1}, {7260,55828,1},{7268,55844,1},{7272,55871,1},{7275,55876,1},{7275,55883,1}, {7272,55884,1},{7270,55878,1},{7263,55891,1},{7257,55896,1},{7253,55893,1}, {7253,55899,1},{7242,55906,1},{7240,55896,1},{7237,55891,1},{7232,55869,1}, {7232,55849,1},{7230,55866,1},{7227,55871,1},{7228,55879,1},{7225,55881,1}, {7225,55874,1},{7223,55878,1},{7223,55883,1},{7208,55886,1},{7207,55881,1}, {7203,55849,1},{7202,55869,1},{7203,55888,1},{7197,55884,1},{7195,55879,1}, {7195,55873,1},{7192,55859,1},{7190,55863,1},{7193,55884,1},{7192,55886,1}, {7182,55878,1},{7180,55861,1},{7182,55861,1},{7183,55868,1},{7185,55864,1}, {7185,55859,1},{7180,55849,1},{7180,55843,1},{7170,55828,1},{7162,55788,1}, {7162,55771,1},{7165,55759,1},{7165,55744,1},{7167,55738,1},{7163,55724,1}, {7165,55714,1},{7173,55699,1},{7180,55704,1},{7188,55714,1},{7190,55711,1}, {7190,55708,1},{7187,55709,1},{7185,55703,1},{7180,55693,1},{7172,55686,1}, {7170,55698,1},{7165,55698,1},{7163,55704,1},{7160,55708,1},{7158,55718,1}, {7153,55721,1},{7153,55733,1},{7142,55716,1},{7132,55689,1},{7128,55681,1}, {7128,55666,1},{7127,55664,1},{7130,55653,1},{7138,55639,1},{7138,55633,1}, {7135,55628,1},{7135,55613,1},{7147,55604,1},{7153,55594,1},{7158,55599,1}, {7162,55579,1},{7177,55568,1},{7178,55558,1},{7185,55549,1},{7187,55529,1}, {7193,55519,1},{7198,55504,1},{7202,55501,1},{7205,55491,1},{7210,55494,1}, {7208,55488,1},{7210,55486,1},{7213,55488,1},{7213,55479,1},{7218,55471,1}, {7220,55454,1},{7220,55449,1},{7220,55448,1},{7217,55441,1},{7218,55434,1}, {7223,55431,1},{7225,55434,1},{7227,55428,1},{7228,55433,1},{7228,55421,1}, {7233,55413,1},{7228,55396,1},{7225,55396,1},{7225,55386,1},{7227,55389,1}, {7230,55378,1},{7230,55369,1},{7228,55368,1},{7232,55364,1},{7230,55358,1}, {7237,55348,1},{7240,55348,1},{7238,55358,1},{7242,55353,1},{7240,55344,1}, {7247,55339,1},{7247,55344,1},{7253,55321,1},{7252,55321,1},{7258,55296,1}, {7260,55294,1},{7265,55276,1},{7272,55263,1},{7282,55261,1},{7287,55271,1}, {7298,55279,1},{7303,55286,1},{7305,55301,1},{7307,55296,1},{7307,55299,1}, {7307,55308,1},{7308,55308,1},{7308,55341,1},{7305,55339,1},{7305,55346,1}, {7302,55353,1},{7302,55359,1},{7298,55358,1},{7297,55363,1},{7297,55354,1}, {7292,55363,1},{7288,55374,1},{7292,55374,1},{7292,55383,1},{7290,55376,1}, {7287,55384,1},{7280,55389,1},{7278,55398,1},{7278,55404,1},{7280,55401,1}, {7278,55406,1},{7275,55406,1},{7275,55394,1},{7273,55399,1},{7272,55406,1}, {7270,55423,1},{7268,55431,1},{7270,55436,1},{7268,55448,1},{7270,55453,1}, {7272,55454,1},{7273,55449,1},{7277,55451,1},{7275,55456,1},{7275,55463,1}, {7275,55471,1},{7275,55483,1},{7273,55491,1},{7277,55501,1},{7283,55504,1}, {7287,55494,1},{7290,55498,1},{7292,55491,1},{7295,55498,1},{7295,55486,1}, {7302,55489,1},{7303,55494,1},{7302,55498,1},{7305,55501,1},{7303,55504,1}, {7302,55496,1},{7300,55498,1},{7297,55494,1},{7295,55499,1},{7297,55508,1}, {7295,55511,1},{7292,55509,1},{7292,55504,1},{7288,55503,1},{7288,55529,1}, {7292,55528,1},{7293,55533,1},{7295,55531,1},{7298,55518,1},{7300,55519,1}, {7300,55524,1},{7303,55524,1},{7305,55523,1},{7305,55514,1},{7308,55519,1}, {7310,55514,1},{7310,55504,1},{7313,55513,1},{7312,55498,1},{7308,55491,1}, {7308,55484,1},{7312,55484,1},{7313,55478,1},{7317,55478,1},{7320,55489,1}, {7322,55481,1},{7323,55491,1},{7328,55498,1},{7327,55501,1},{7328,55508,1}, {7323,55516,1},{7323,55526,1},{7322,55523,1},{7318,55533,1},{7318,55553,1}, {7320,55559,1},{7322,55539,1},{7325,55526,1},{7333,55516,1},{7340,55499,1}, {7337,55496,1},{7332,55501,1},{7332,55486,1},{7328,55478,1},{7327,55448,1}, {7330,55433,1},{7332,55433,1},{7333,55423,1},{7337,55406,1},{7340,55404,1}, {7345,55378,1},{7347,55381,1},{7348,55374,1},{7348,55384,1},{7355,55393,1}, {7355,55408,1},{7360,55416,1},{7358,55436,1},{7360,55448,1},{7347,55469,1}, {7343,55483,1},{7342,55486,1},{7342,55494,1},{7343,55493,1},{7348,55476,1}, {7360,55481,1},{7360,55471,1},{7362,55466,1},{7360,55459,1},{7362,55444,1}, {7367,55451,1},{7367,55431,1},{7372,55434,1},{7373,55424,1},{7377,55438,1}, {7377,55433,1},{7380,55436,1},{7382,55448,1},{7383,55449,1},{7382,55461,1}, {7385,55471,1},{7385,55481,1},{7385,55494,1},{7380,55511,1},{7380,55521,1}, {7373,55533,1},{7382,55541,1},{7385,55551,1},{7390,55549,1},{7387,55549,1}, {7388,55543,1},{7387,55539,1},{7383,55531,1},{7383,55511,1},{7387,55506,1}, {7390,55511,1},{7395,55536,1},{7617,54293,129},{7610,54283,1},{7605,54294,1}, {7600,54329,1},{7595,54348,1},{7595,54359,1},{7592,54363,1},{7590,54358,1}, {7587,54329,1},{7585,54318,1},{7582,54321,1},{7582,54313,1},{7582,54324,1}, {7583,54333,1},{7583,54338,1},{7582,54333,1},{7580,54341,1},{7583,54353,1}, {7583,54386,1},{7583,54391,1},{7582,54391,1},{7580,54376,1},{7578,54393,1}, {7575,54391,1},{7572,54401,1},{7562,54396,1},{7557,54401,1},{7557,54406,1}, {7555,54404,1},{7552,54411,1},{7553,54436,1},{7557,54456,1},{7557,54486,1}, {7553,54498,1},{7553,54569,1},{7552,54586,1},{7552,54611,1},{7548,54644,1}, {7550,54644,1},{7553,54643,1},{7555,54633,1},{7557,54651,1},{7558,54646,1}, {7562,54653,1},{7567,54643,1},{7568,54653,1},{7570,54641,1},{7572,54639,1}, {7572,54631,1},{7573,54629,1},{7577,54613,1},{7577,54598,1},{7578,54589,1}, {7580,54594,1},{7580,54568,1},{7583,54573,1},{7583,54566,1},{7587,54569,1}, {7587,54551,1},{7585,54548,1},{7587,54536,1},{7588,54531,1},{7593,54543,1}, {7595,54569,1},{7598,54576,1},{7602,54596,1},{7603,54596,1},{7603,54608,1}, {7605,54609,1},{7607,54598,1},{7612,54604,1},{7615,54586,1},{7618,54584,1}, {7620,54564,1},{7622,54566,1},{7623,54553,1},{7622,54546,1},{7620,54546,1}, {7622,54539,1},{7628,54516,1},{7630,54499,1},{7633,54503,1},{7638,54496,1}, {7643,54498,1},{7645,54521,1},{7648,54536,1},{7648,54554,1},{7652,54564,1}, {7653,54564,1},{7653,54551,1},{7657,54559,1},{7660,54558,1},{7658,54568,1}, {7660,54571,1},{7662,54571,1},{7663,54581,1},{7672,54586,1},{7675,54601,1}, {7680,54606,1},{7680,54613,1},{7682,54619,1},{7682,54644,1},{7685,54659,1}, {7682,54671,1},{7677,54668,1},{7675,54686,1},{7670,54693,1},{7665,54681,1}, {7663,54663,1},{7660,54668,1},{7655,54683,1},{7652,54673,1},{7652,54683,1}, {7648,54678,1},{7645,54688,1},{7643,54676,1},{7642,54676,1},{7640,54704,1}, {7635,54713,1},{7635,54718,1},{7633,54714,1},{7628,54728,1},{7625,54723,1}, {7625,54713,1},{7623,54716,1},{7623,54726,1},{7622,54726,1},{7617,54698,1}, {7610,54691,1},{7608,54698,1},{7603,54686,1},{7605,54706,1},{7605,54719,1}, {7607,54741,1},{7607,54753,1},{7603,54763,1},{7598,54773,1},{7593,54758,1}, {7590,54761,1},{7588,54743,1},{7582,54733,1},{7578,54734,1},{7580,54749,1}, {7588,54763,1},{7592,54799,1},{7588,54831,1},{7582,54826,1},{7580,54841,1}, {7577,54833,1},{7575,54841,1},{7570,54839,1},{7565,54848,1},{7577,54848,1}, {7578,54856,1},{7580,54874,1},{7583,54848,1},{7593,54846,1},{7597,54849,1}, {7605,54876,1},{7605,54903,1},{7602,54943,1},{7593,54976,1},{7583,54991,1}, {7575,54994,1},{7573,54989,1},{7563,54998,1},{7562,54989,1},{7555,54986,1}, {7553,54973,1},{7552,54968,1},{7550,54969,1},{7548,54961,1},{7547,54976,1}, {7543,54973,1},{7542,54964,1},{7537,54971,1},{7532,54963,1},{7528,54949,1}, {7522,54943,1},{7520,54943,1},{7518,54951,1},{7513,54948,1},{7513,54934,1}, {7510,54929,1},{7505,54934,1},{7502,54909,1},{7500,54859,1},{7493,54843,1}, {7492,54819,1},{7493,54806,1},{7493,54789,1},{7497,54769,1},{7502,54764,1}, {7505,54768,1},{7510,54763,1},{7510,54758,1},{7503,54761,1},{7500,54746,1}, {7502,54743,1},{7500,54736,1},{7495,54741,1},{7495,54734,1},{7493,54743,1}, {7493,54741,1},{7492,54699,1},{7493,54683,1},{7497,54679,1},{7498,54656,1}, {7498,54684,1},{7505,54671,1},{7507,54656,1},{7505,54643,1},{7503,54641,1}, {7500,54643,1},{7500,54633,1},{7498,54636,1},{7498,54626,1},{7495,54601,1}, {7490,54598,1},{7487,54584,1},{7487,54544,1},{7482,54529,1},{7483,54528,1}, {7485,54501,1},{7483,54501,1},{7482,54494,1},{7480,54504,1},{7478,54478,1}, {7480,54473,1},{7478,54469,1},{7470,54476,1},{7468,54461,1},{7465,54448,1}, {7465,54439,1},{7462,54436,1},{7458,54423,1},{7458,54413,1},{7457,54404,1}, {7457,54393,1},{7450,54368,1},{7445,54314,1},{7442,54299,1},{7440,54244,1}, {7442,54191,1},{7443,54173,1},{7453,54131,1},{7462,54103,1},{7467,54091,1}, {7468,54093,1},{7475,54113,1},{7480,54141,1},{7485,54178,1},{7485,54203,1}, {7485,54216,1},{7487,54213,1},{7488,54204,1},{7490,54219,1},{7492,54221,1}, {7497,54248,1},{7500,54284,1},{7500,54334,1},{7498,54361,1},{7502,54381,1}, {7505,54388,1},{7505,54379,1},{7507,54379,1},{7507,54396,1},{7508,54406,1}, {7508,54408,1},{7512,54401,1},{7510,54408,1},{7512,54409,1},{7513,54421,1}, {7517,54433,1},{7518,54429,1},{7522,54434,1},{7522,54444,1},{7523,54444,1}, {7527,54431,1},{7527,54413,1},{7522,54408,1},{7518,54398,1},{7517,54388,1}, {7517,54376,1},{7515,54378,1},{7515,54366,1},{7518,54359,1},{7513,54346,1}, {7515,54331,1},{7512,54298,1},{7515,54289,1},{7520,54306,1},{7522,54298,1}, {7522,54303,1},{7523,54296,1},{7522,54289,1},{7518,54291,1},{7518,54274,1}, {7520,54273,1},{7523,54278,1},{7528,54271,1},{7527,54268,1},{7520,54263,1}, {7513,54266,1},{7512,54256,1},{7510,54234,1},{7512,54228,1},{7515,54223,1}, {7512,54221,1},{7508,54211,1},{7507,54183,1},{7505,54166,1},{7505,54144,1}, {7507,54139,1},{7513,54143,1},{7518,54171,1},{7517,54149,1},{7518,54143,1}, {7525,54149,1},{7533,54158,1},{7542,54204,1},{7542,54188,1},{7543,54189,1}, {7542,54181,1},{7537,54146,1},{7542,54139,1},{7547,54129,1},{7542,54126,1}, {7537,54133,1},{7525,54123,1},{7522,54116,1},{7525,54104,1},{7528,54099,1}, {7530,54086,1},{7532,54084,1},{7527,54074,1},{7527,54086,1},{7525,54094,1}, {7517,54106,1},{7507,54093,1},{7498,54051,1},{7497,54031,1},{7498,54016,1}, {7505,54013,1},{7510,54019,1},{7518,54011,1},{7513,54008,1},{7510,53996,1}, {7513,53974,1},{7513,53969,1},{7512,53976,1},{7503,53983,1},{7502,53981,1}, {7497,53969,1},{7505,53911,1},{7510,53926,1},{7512,53933,1},{7510,53906,1}, {7512,53903,1},{7517,53911,1},{7520,53911,1},{7518,53879,1},{7512,53866,1}, {7513,53848,1},{7515,53841,1},{7515,53834,1},{7515,53821,1},{7518,53794,1}, {7525,53768,1},{7530,53769,1},{7532,53781,1},{7537,53783,1},{7547,53813,1}, {7548,53936,1},{7558,53974,1},{7560,53996,1},{7560,54009,1},{7563,54009,1}, {7568,54026,1},{7568,54036,1},{7570,54031,1},{7568,54019,1},{7565,53996,1}, {7565,53969,1},{7560,53933,1},{7557,53926,1},{7555,53899,1},{7557,53816,1}, {7560,53811,1},{7573,53834,1},{7580,53851,1},{7582,53933,1},{7583,53956,1}, {7585,53959,1},{7583,53976,1},{7583,53998,1},{7585,54004,1},{7585,54038,1}, {7588,54054,1},{7590,54054,1},{7590,54048,1},{7588,54006,1},{7588,53961,1}, {7588,53943,1},{7587,53928,1},{7587,53886,1},{7588,53871,1},{7590,53864,1}, {7595,53864,1},{7597,53889,1},{7600,53883,1},{7603,53886,1},{7603,53869,1}, {7603,53866,1},{7612,53873,1},{7615,53884,1},{7618,53901,1},{7620,53928,1}, {7618,54011,1},{7615,54048,1},{7617,54069,1},{7618,54041,1},{7623,54006,1}, {7623,53958,1},{7625,53949,1},{7628,53944,1},{7632,53951,1},{7635,53946,1}, {7645,53986,1},{7647,54034,1},{7652,54044,1},{7652,54064,1},{7648,54059,1}, {7650,54089,1},{7648,54096,1},{7645,54121,1},{7638,54128,1},{7635,54126,1}, {7635,54118,1},{7633,54124,1},{7632,54123,1},{7627,54138,1},{7622,54129,1}, {7618,54138,1},{7620,54168,1},{7627,54201,1},{7627,54236,1},{7625,54246,1}, {7622,54253,1},{7620,54278,1},{7617,54293,1},{7665,56336,129},{7668,56364,1}, {7668,56383,1},{7668,56398,1},{7665,56438,1},{7660,56454,1},{7657,56479,1}, {7647,56489,1},{7645,56473,1},{7647,56446,1},{7652,56438,1},{7648,56433,1}, {7648,56428,1},{7652,56394,1},{7650,56379,1},{7645,56396,1},{7645,56438,1}, {7643,56443,1},{7642,56463,1},{7638,56479,1},{7640,56499,1},{7633,56558,1}, {7630,56606,1},{7627,56613,1},{7622,56616,1},{7618,56598,1},{7617,56553,1}, {7617,56538,1},{7618,56494,1},{7617,56493,1},{7613,56529,1},{7612,56528,1}, {7613,56501,1},{7617,56481,1},{7617,56448,1},{7620,56421,1},{7625,56394,1}, {7627,56374,1},{7620,56411,1},{7618,56411,1},{7615,56396,1},{7615,56398,1}, {7617,56414,1},{7615,56443,1},{7612,56468,1},{7608,56461,1},{7607,56451,1}, {7607,56468,1},{7608,56481,1},{7607,56518,1},{7603,56506,1},{7602,56419,1}, {7600,56443,1},{7598,56429,1},{7595,56443,1},{7593,56439,1},{7590,56423,1}, {7583,56423,1},{7585,56428,1},{7590,56431,1},{7593,56446,1},{7600,56456,1}, {7598,56468,1},{7595,56464,1},{7598,56479,1},{7597,56493,1},{7593,56483,1}, {7590,56484,1},{7597,56503,1},{7597,56513,1},{7593,56524,1},{7600,56529,1}, {7602,56534,1},{7600,56543,1},{7597,56541,1},{7597,56553,1},{7593,56556,1}, {7590,56568,1},{7583,56558,1},{7578,56559,1},{7580,56566,1},{7583,56571,1}, {7585,56581,1},{7585,56574,1},{7583,56594,1},{7577,56619,1},{7563,56611,1}, {7560,56583,1},{7562,56571,1},{7560,56569,1},{7558,56559,1},{7558,56576,1}, {7558,56581,1},{7557,56579,1},{7555,56566,1},{7555,56573,1},{7555,56583,1}, {7558,56596,1},{7558,56613,1},{7557,56619,1},{7548,56626,1},{7547,56638,1}, {7545,56638,1},{7543,56643,1},{7543,56659,1},{7547,56661,1},{7560,56646,1}, {7563,56659,1},{7568,56663,1},{7567,56674,1},{7558,56696,1},{7553,56716,1}, {7552,56716,1},{7550,56706,1},{7547,56713,1},{7552,56729,1},{7558,56761,1}, {7557,56769,1},{7552,56774,1},{7548,56786,1},{7545,56776,1},{7545,56784,1}, {7547,56793,1},{7557,56784,1},{7557,56793,1},{7562,56798,1},{7562,56809,1}, {7558,56826,1},{7555,56831,1},{7548,56856,1},{7547,56878,1},{7543,56898,1}, {7540,56896,1},{7538,56878,1},{7537,56876,1},{7538,56898,1},{7542,56919,1}, {7540,56984,1},{7543,56954,1},{7547,56946,1},{7548,56924,1},{7550,56921,1}, {7555,56944,1},{7555,56959,1},{7560,56983,1},{7557,56983,1},{7555,57013,1}, {7557,57004,1},{7560,57006,1},{7560,57016,1},{7562,57018,1},{7563,57033,1}, {7565,57034,1},{7565,57029,1},{7565,57033,1},{7565,57056,1},{7563,57076,1}, {7563,57086,1},{7565,57071,1},{7568,57069,1},{7570,57106,1},{7577,57116,1}, {7577,57136,1},{7580,57144,1},{7582,57136,1},{7582,57139,1},{7582,57153,1}, {7582,57164,1},{7580,57163,1},{7578,57184,1},{7575,57193,1},{7573,57206,1}, {7575,57218,1},{7573,57226,1},{7582,57269,1},{7583,57303,1},{7582,57344,1}, {7582,57383,1},{7578,57406,1},{7577,57426,1},{7565,57409,1},{7563,57434,1}, {7565,57489,1},{7563,57494,1},{7562,57511,1},{7558,57529,1},{7555,57528,1}, {7553,57541,1},{7547,57499,1},{7548,57543,1},{7545,57578,1},{7543,57568,1}, {7540,57576,1},{7538,57588,1},{7537,57588,1},{7535,57583,1},{7532,57583,1}, {7532,57576,1},{7530,57574,1},{7528,57579,1},{7528,57591,1},{7517,57573,1}, {7517,57553,1},{7515,57551,1},{7513,57541,1},{7508,57539,1},{7507,57521,1}, {7507,57508,1},{7503,57503,1},{7503,57493,1},{7500,57503,1},{7498,57518,1}, {7497,57509,1},{7495,57509,1},{7497,57524,1},{7495,57533,1},{7500,57539,1}, {7503,57556,1},{7502,57574,1},{7500,57586,1},{7498,57581,1},{7492,57591,1}, {7490,57603,1},{7487,57598,1},{7487,57573,1},{7482,57548,1},{7487,57519,1}, {7490,57521,1},{7493,57518,1},{7487,57514,1},{7488,57509,1},{7493,57506,1}, {7490,57494,1},{7487,57501,1},{7482,57526,1},{7478,57526,1},{7475,57511,1}, {7472,57523,1},{7468,57514,1},{7463,57516,1},{7463,57521,1},{7458,57513,1}, {7458,57489,1},{7457,57481,1},{7457,57453,1},{7458,57429,1},{7457,57414,1}, {7445,57354,1},{7448,57328,1},{7452,57313,1},{7452,57291,1},{7453,57298,1}, {7457,57293,1},{7453,57288,1},{7452,57276,1},{7452,57258,1},{7457,57243,1}, {7463,57228,1},{7468,57223,1},{7475,57226,1},{7478,57234,1},{7478,57228,1}, {7483,57226,1},{7483,57209,1},{7490,57184,1},{7488,57179,1},{7483,57184,1}, {7477,57204,1},{7458,57189,1},{7453,57174,1},{7455,57154,1},{7453,57138,1}, {7450,57108,1},{7452,57091,1},{7450,57073,1},{7452,57066,1},{7450,57046,1}, {7457,57038,1},{7465,57036,1},{7467,57041,1},{7470,57038,1},{7463,57029,1}, {7452,57031,1},{7450,57026,1},{7448,57014,1},{7450,56999,1},{7455,56999,1}, {7468,56983,1},{7467,56981,1},{7453,56988,1},{7450,56976,1},{7448,56929,1}, {7448,56924,1},{7450,56924,1},{7455,56928,1},{7458,56919,1},{7462,56918,1}, {7460,56913,1},{7452,56911,1},{7448,56894,1},{7455,56868,1},{7462,56861,1}, {7462,56856,1},{7453,56856,1},{7447,56874,1},{7447,56841,1},{7450,56836,1}, {7447,56833,1},{7447,56806,1},{7452,56799,1},{7455,56804,1},{7453,56794,1}, {7448,56789,1},{7447,56779,1},{7447,56764,1},{7452,56759,1},{7447,56746,1}, {7448,56726,1},{7450,56723,1},{7448,56714,1},{7450,56686,1},{7455,56679,1}, {7460,56679,1},{7470,56693,1},{7477,56693,1},{7477,56706,1},{7478,56688,1}, {7483,56691,1},{7490,56681,1},{7485,56681,1},{7482,56674,1},{7485,56674,1}, {7483,56669,1},{7467,56654,1},{7467,56648,1},{7478,56644,1},{7483,56628,1}, {7478,56634,1},{7472,56631,1},{7472,56624,1},{7475,56609,1},{7472,56618,1}, {7468,56626,1},{7460,56623,1},{7457,56611,1},{7458,56598,1},{7455,56593,1}, {7455,56588,1},{7453,56543,1},{7455,56539,1},{7458,56536,1},{7455,56526,1}, {7460,56499,1},{7463,56504,1},{7460,56491,1},{7462,56478,1},{7467,56463,1}, {7472,56459,1},{7473,56464,1},{7472,56451,1},{7468,56446,1},{7470,56434,1}, {7475,56439,1},{7477,56448,1},{7483,56461,1},{7488,56459,1},{7488,56451,1}, {7483,56448,1},{7475,56426,1},{7475,56418,1},{7473,56413,1},{7463,56426,1}, {7463,56408,1},{7472,56404,1},{7470,56399,1},{7467,56403,1},{7465,56399,1}, {7465,56381,1},{7468,56368,1},{7470,56374,1},{7472,56371,1},{7472,56354,1}, {7470,56354,1},{7472,56349,1},{7473,56354,1},{7480,56331,1},{7492,56334,1}, {7493,56328,1},{7495,56331,1},{7503,56314,1},{7507,56313,1},{7508,56334,1}, {7510,56334,1},{7513,56324,1},{7515,56331,1},{7513,56309,1},{7515,56303,1}, {7517,56304,1},{7517,56298,1},{7518,56298,1},{7522,56286,1},{7532,56291,1}, {7537,56303,1},{7537,56291,1},{7543,56296,1},{7555,56314,1},{7558,56334,1}, {7562,56328,1},{7567,56336,1},{7575,56319,1},{7580,56326,1},{7588,56323,1}, {7592,56301,1},{7597,56283,1},{7600,56279,1},{7602,56273,1},{7612,56273,1}, {7617,56259,1},{7620,56256,1},{7623,56243,1},{7630,56229,1},{7635,56228,1}, {7637,56218,1},{7635,56201,1},{7630,56178,1},{7630,56171,1},{7632,56174,1}, {7633,56173,1},{7632,56168,1},{7628,56159,1},{7627,56173,1},{7625,56168,1}, {7627,56126,1},{7628,56114,1},{7628,56073,1},{7632,56069,1},{7632,56061,1}, {7628,56056,1},{7625,56036,1},{7622,56031,1},{7623,56018,1},{7623,55998,1}, {7630,55999,1},{7628,56008,1},{7630,56024,1},{7633,56038,1},{7632,56051,1}, {7630,56051,1},{7633,56054,1},{7637,56023,1},{7635,56018,1},{7637,56009,1}, {7635,55998,1},{7637,55991,1},{7638,55999,1},{7640,55996,1},{7638,55984,1}, {7640,55953,1},{7643,55936,1},{7650,55926,1},{7652,55931,1},{7652,55958,1}, {7660,55978,1},{7660,55969,1},{7655,55958,1},{7657,55956,1},{7655,55936,1}, {7658,55936,1},{7658,55921,1},{7660,55918,1},{7663,55913,1},{7663,55896,1}, {7668,55889,1},{7670,55873,1},{7670,55853,1},{7673,55839,1},{7677,55853,1}, {7678,55846,1},{7682,55851,1},{7677,55868,1},{7675,55869,1},{7677,55881,1}, {7675,55893,1},{7675,55906,1},{7678,55889,1},{7677,55878,1},{7678,55886,1}, {7680,55884,1},{7678,55893,1},{7680,55904,1},{7682,55881,1},{7687,55869,1}, {7687,55854,1},{7692,55851,1},{7693,55856,1},{7693,55866,1},{7695,55869,1}, {7697,55854,1},{7698,55854,1},{7697,55888,1},{7695,55889,1},{7700,55901,1}, {7698,55908,1},{7700,55911,1},{7700,55906,1},{7703,55898,1},{7707,55961,1}, {7705,55978,1},{7705,55994,1},{7700,56018,1},{7700,56034,1},{7698,56041,1}, {7697,56083,1},{7692,56091,1},{7692,56106,1},{7688,56113,1},{7688,56128,1}, {7693,56141,1},{7690,56171,1},{7685,56178,1},{7678,56206,1},{7675,56209,1}, {7675,56218,1},{7668,56219,1},{7655,56206,1},{7648,56188,1},{7643,56171,1}, {7638,56181,1},{7642,56189,1},{7642,56181,1},{7643,56178,1},{7647,56201,1}, {7658,56224,1},{7662,56224,1},{7662,56253,1},{7660,56268,1},{7662,56283,1}, {7660,56298,1},{7662,56318,1},{7665,56334,1},{8247,57911,129},{8245,57913,1}, {8247,57926,1},{8258,57971,1},{8262,57996,1},{8268,57939,1},{8268,57928,1}, {8272,57913,1},{8275,57904,1},{8278,57938,1},{8278,57908,1},{8280,57886,1}, {8290,57861,1},{8298,57798,1},{8303,57814,1},{8302,57823,1},{8300,57876,1}, {8303,57909,1},{8305,57933,1},{8302,58011,1},{8305,58041,1},{8302,58099,1}, {8295,58134,1},{8285,58154,1},{8277,58211,1},{8273,58253,1},{8270,58273,1}, {8272,58286,1},{8280,58221,1},{8285,58198,1},{8290,58193,1},{8293,58171,1}, {8302,58218,1},{8305,58246,1},{8307,58236,1},{8310,58271,1},{8308,58288,1}, {8310,58319,1},{8310,58374,1},{8305,58366,1},{8300,58356,1},{8293,58379,1}, {8288,58449,1},{8290,58451,1},{8300,58389,1},{8302,58389,1},{8307,58426,1}, {8310,58424,1},{8312,58499,1},{8312,58554,1},{8310,58569,1},{8305,58559,1}, {8303,58591,1},{8300,58571,1},{8302,58613,1},{8303,58634,1},{8298,58638,1}, {8298,58673,1},{8300,58689,1},{8298,58721,1},{8293,58721,1},{8297,58769,1}, {8293,58816,1},{8297,58833,1},{8295,58843,1},{8293,58841,1},{8293,58853,1}, {8295,58858,1},{8293,58871,1},{8293,58906,1},{8288,58899,1},{8282,58853,1}, {8270,58733,1},{8268,58701,1},{8265,58673,1},{8263,58671,1},{8265,58743,1}, {8265,58789,1},{8272,58846,1},{8272,58869,1},{8275,58873,1},{8285,58959,1}, {8283,58989,1},{8278,58984,1},{8277,59019,1},{8280,59001,1},{8285,59016,1}, {8285,59026,1},{8287,59006,1},{8290,59048,1},{8290,59071,1},{8288,59064,1}, {8287,59043,1},{8285,59064,1},{8282,59063,1},{8277,59091,1},{8283,59126,1}, {8283,59178,1},{8280,59198,1},{8277,59198,1},{8273,59184,1},{8272,59151,1}, {8272,59171,1},{8267,59181,1},{8265,59211,1},{8260,59201,1},{8260,59233,1}, {8258,59243,1},{8255,59231,1},{8247,59228,1},{8243,59199,1},{8247,59234,1}, {8252,59246,1},{8248,59259,1},{8252,59263,1},{8253,59311,1},{8252,59319,1}, {8252,59304,1},{8248,59301,1},{8250,59313,1},{8250,59328,1},{8250,59341,1}, {8248,59383,1},{8243,59406,1},{8232,59428,1},{8222,59416,1},{8217,59389,1}, {8213,59334,1},{8210,59349,1},{8202,59311,1},{8202,59286,1},{8198,59286,1}, {8188,59206,1},{8185,59174,1},{8180,59151,1},{8178,59134,1},{8180,59121,1}, {8182,59104,1},{8177,59124,1},{8172,59099,1},{8173,59059,1},{8175,59044,1}, {8177,59003,1},{8173,59001,1},{8172,58984,1},{8170,58973,1},{8170,58933,1}, {8167,58968,1},{8168,59003,1},{8163,58949,1},{8165,58938,1},{8162,58919,1}, {8160,58779,1},{8157,58721,1},{8157,58704,1},{8170,58628,1},{8172,58606,1}, {8155,58699,1},{8153,58701,1},{8153,58691,1},{8155,58651,1},{8152,58678,1}, {8157,58821,1},{8153,58858,1},{8152,58876,1},{8128,58671,1},{8127,58633,1}, {8127,58593,1},{8125,58589,1},{8123,58604,1},{8122,58583,1},{8118,58544,1}, {8118,58516,1},{8117,58539,1},{8118,58573,1},{8112,58538,1},{8110,58536,1}, {8113,58573,1},{8118,58593,1},{8128,58728,1},{8137,58801,1},{8145,58919,1}, {8150,58964,1},{8155,59074,1},{8153,59084,1},{8147,59091,1},{8137,59058,1}, {8125,58989,1},{8122,58934,1},{8102,58861,1},{8093,58816,1},{8093,58778,1}, {8090,58783,1},{8085,58771,1},{8085,58753,1},{8082,58753,1},{8075,58708,1}, {8063,58658,1},{8062,58639,1},{8058,58646,1},{8053,58621,1},{8042,58606,1}, {8038,58593,1},{8035,58571,1},{8035,58529,1},{8035,58508,1},{8038,58511,1}, {8042,58514,1},{8047,58504,1},{8057,58454,1},{8042,58499,1},{8038,58489,1}, {8033,58491,1},{8025,58539,1},{8020,58521,1},{8020,58461,1},{8020,58451,1}, {8017,58418,1},{8012,58389,1},{8012,58371,1},{8012,58358,1},{8018,58336,1}, {8018,58319,1},{8022,58306,1},{8022,58298,1},{8020,58294,1},{8012,58346,1}, {8008,58328,1},{8008,58298,1},{8008,58304,1},{8007,58303,1},{8007,58388,1}, {8013,58459,1},{8013,58473,1},{8010,58486,1},{8005,58486,1},{8003,58471,1}, {7998,58464,1},{7997,58413,1},{7993,58394,1},{7988,58394,1},{7992,58424,1}, {7988,58444,1},{7982,58436,1},{7982,58426,1},{7978,58423,1},{7977,58398,1}, {7973,58388,1},{7967,58311,1},{7968,58296,1},{7968,58261,1},{7970,58243,1}, {7980,58229,1},{7980,58244,1},{7982,58243,1},{7983,58193,1},{7983,58151,1}, {7985,58161,1},{7988,58134,1},{7988,58111,1},{7987,58094,1},{7985,58053,1}, {7978,58068,1},{7980,58104,1},{7978,58139,1},{7975,58181,1},{7977,58199,1}, {7972,58199,1},{7965,58219,1},{7955,58223,1},{7950,58201,1},{7950,58171,1}, {7950,58158,1},{7955,58148,1},{7955,58138,1},{7947,58139,1},{7943,58119,1}, {7943,58071,1},{7950,58041,1},{7952,58039,1},{7948,58029,1},{7940,58048,1}, {7937,58034,1},{7940,57983,1},{7943,57971,1},{7940,57966,1},{7942,57956,1}, {7945,57954,1},{7942,57943,1},{7950,57916,1},{7952,57869,1},{7952,57846,1}, {7952,57831,1},{7955,57821,1},{7952,57818,1},{7948,57823,1},{7948,57849,1}, {7948,57868,1},{7947,57878,1},{7947,57918,1},{7938,57921,1},{7935,57948,1}, {7933,57924,1},{7935,57911,1},{7935,57849,1},{7940,57828,1},{7947,57823,1}, {7945,57811,1},{7945,57799,1},{7945,57796,1},{7932,57819,1},{7935,57789,1}, {7935,57763,1},{7937,57744,1},{7935,57731,1},{7932,57748,1},{7930,57786,1}, {7927,57804,1},{7925,57788,1},{7928,57861,1},{7927,57923,1},{7923,57943,1}, {7923,58056,1},{7922,58086,1},{7920,58084,1},{7917,58053,1},{7915,58074,1}, {7913,58069,1},{7912,58081,1},{7907,58091,1},{7903,58091,1},{7903,58081,1}, {7903,58039,1},{7907,57971,1},{7908,57959,1},{7910,57958,1},{7910,57948,1}, {7915,57951,1},{7920,57923,1},{7918,57839,1},{7922,57758,1},{7918,57739,1}, {7918,57724,1},{7917,57711,1},{7917,57718,1},{7918,57744,1},{7915,57839,1}, {7915,57873,1},{7912,57923,1},{7910,57928,1},{7908,57919,1},{7908,57873,1}, {7907,57836,1},{7905,57803,1},{7902,57786,1},{7903,57764,1},{7907,57756,1}, {7907,57723,1},{7908,57701,1},{7907,57648,1},{7905,57753,1},{7902,57766,1}, {7897,57741,1},{7880,57708,1},{7877,57711,1},{7878,57719,1},{7887,57731,1}, {7897,57764,1},{7898,57818,1},{7903,57864,1},{7902,57899,1},{7897,57964,1}, {7893,57953,1},{7890,57904,1},{7887,57891,1},{7883,57893,1},{7888,57913,1}, {7888,57949,1},{7890,57968,1},{7888,58008,1},{7885,58044,1},{7882,58048,1}, {7883,58059,1},{7880,58059,1},{7878,58046,1},{7877,58059,1},{7875,58053,1}, {7870,58064,1},{7870,58051,1},{7863,58049,1},{7862,58064,1},{7858,58073,1}, {7858,58054,1},{7853,58031,1},{7852,57988,1},{7852,57939,1},{7853,57924,1}, {7855,57893,1},{7852,57868,1},{7850,57871,1},{7852,57908,1},{7850,57924,1}, {7847,57928,1},{7843,57991,1},{7837,58028,1},{7833,58033,1},{7830,58028,1}, {7830,58001,1},{7822,57988,1},{7820,57974,1},{7823,57921,1},{7825,57879,1}, {7822,57848,1},{7820,57846,1},{7817,57869,1},{7815,57898,1},{7813,57919,1}, {7813,57931,1},{7812,57976,1},{7808,57976,1},{7797,57944,1},{7798,57924,1}, {7802,57921,1},{7802,57911,1},{7798,57889,1},{7795,57883,1},{7793,57861,1}, {7790,57849,1},{7792,57831,1},{7795,57814,1},{7793,57746,1},{7800,57713,1}, {7798,57709,1},{7797,57718,1},{7793,57699,1},{7790,57694,1},{7787,57704,1}, {7785,57723,1},{7783,57723,1},{7780,57741,1},{7775,57741,1},{7773,57731,1}, {7770,57738,1},{7767,57728,1},{7767,57744,1},{7760,57764,1},{7755,57738,1}, {7750,57741,1},{7745,57728,1},{7743,57711,1},{7738,57711,1},{7735,57681,1}, {7730,57658,1},{7732,57653,1},{7737,57663,1},{7738,57659,1},{7737,57648,1}, {7732,57636,1},{7728,57616,1},{7732,57568,1},{7730,57553,1},{7727,57538,1}, {7728,57513,1},{7730,57491,1},{7733,57461,1},{7738,57436,1},{7742,57428,1}, {7742,57408,1},{7747,57401,1},{7752,57379,1},{7755,57379,1},{7757,57369,1}, {7758,57374,1},{7763,57353,1},{7767,57351,1},{7768,57343,1},{7762,57344,1}, {7758,57356,1},{7753,57369,1},{7743,57363,1},{7737,57388,1},{7737,57416,1}, {7733,57419,1},{7732,57419,1},{7728,57353,1},{7732,57328,1},{7730,57316,1}, {7725,57346,1},{7717,57349,1},{7715,57356,1},{7717,57363,1},{7728,57428,1}, {7720,57524,1},{7708,57496,1},{7707,57499,1},{7712,57519,1},{7718,57534,1}, {7725,57569,1},{7722,57611,1},{7715,57633,1},{7713,57629,1},{7708,57634,1}, {7707,57624,1},{7693,57596,1},{7692,57601,1},{7692,57629,1},{7693,57636,1}, {7693,57648,1},{7683,57639,1},{7682,57661,1},{7683,57666,1},{7688,57664,1}, {7688,57679,1},{7693,57681,1},{7697,57696,1},{7700,57698,1},{7702,57711,1}, {7702,57729,1},{7695,57748,1},{7692,57746,1},{7688,57753,1},{7687,57748,1}, {7682,57764,1},{7678,57758,1},{7673,57759,1},{7668,57754,1},{7665,57759,1}, {7663,57749,1},{7663,57734,1},{7662,57728,1},{7657,57718,1},{7653,57723,1}, {7650,57701,1},{7647,57699,1},{7645,57689,1},{7648,57674,1},{7655,57674,1}, {7657,57679,1},{7657,57656,1},{7652,57649,1},{7642,57636,1},{7640,57618,1}, {7638,57618,1},{7635,57609,1},{7630,57606,1},{7632,57584,1},{7630,57573,1}, {7622,57528,1},{7623,57516,1},{7622,57501,1},{7620,57493,1},{7618,57476,1}, {7615,57469,1},{7617,57449,1},{7617,57446,1},{7613,57431,1},{7615,57428,1}, {7618,57441,1},{7622,57426,1},{7637,57458,1},{7642,57459,1},{7648,57438,1}, {7650,57414,1},{7655,57416,1},{7648,57401,1},{7647,57386,1},{7647,57358,1}, {7652,57333,1},{7652,57328,1},{7658,57338,1},{7662,57331,1},{7665,57354,1}, {7668,57358,1},{7663,57321,1},{7663,57303,1},{7668,57291,1},{7678,57278,1}, {7682,57264,1},{7682,57259,1},{7672,57281,1},{7668,57279,1},{7663,57289,1}, {7657,57328,1},{7653,57314,1},{7643,57323,1},{7642,57318,1},{7640,57306,1}, {7638,57259,1},{7642,57246,1},{7643,57236,1},{7647,57226,1},{7650,57229,1}, {7658,57224,1},{7667,57198,1},{7675,57201,1},{7677,57196,1},{7670,57184,1}, {7658,57211,1},{7652,57213,1},{7650,57218,1},{7645,57211,1},{7642,57216,1}, {7642,57188,1},{7643,57164,1},{7647,57161,1},{7648,57146,1},{7653,57133,1}, {7662,57128,1},{7665,57108,1},{7665,57103,1},{7662,57116,1},{7653,57111,1}, {7648,57118,1},{7645,57113,1},{7643,57084,1},{7645,57069,1},{7647,57058,1}, {7650,57056,1},{7658,57041,1},{7657,57033,1},{7652,57031,1},{7642,57039,1}, {7640,57059,1},{7632,57098,1},{7630,57093,1},{7630,57058,1},{7628,57043,1}, {7628,57013,1},{7632,57009,1},{7632,56989,1},{7635,56963,1},{7638,56899,1}, {7647,56894,1},{7652,56914,1},{7653,56914,1},{7663,56874,1},{7652,56906,1}, {7647,56871,1},{7635,56864,1},{7638,56823,1},{7643,56823,1},{7645,56794,1}, {7650,56796,1},{7653,56786,1},{7658,56789,1},{7662,56783,1},{7662,56778,1}, {7653,56776,1},{7650,56786,1},{7645,56781,1},{7642,56793,1},{7638,56786,1}, {7635,56794,1},{7637,56781,1},{7633,56778,1},{7635,56759,1},{7642,56754,1}, {7640,56749,1},{7637,56746,1},{7635,56741,1},{7638,56699,1},{7640,56693,1}, {7643,56699,1},{7647,56693,1},{7648,56701,1},{7652,56701,1},{7662,56684,1}, {7665,56688,1},{7673,56679,1},{7678,56688,1},{7682,56686,1},{7680,56681,1}, {7672,56666,1},{7663,56678,1},{7660,56669,1},{7658,56681,1},{7655,56686,1}, {7650,56688,1},{7645,56674,1},{7640,56676,1},{7642,56666,1},{7648,56671,1}, {7648,56674,1},{7653,56668,1},{7657,56671,1},{7660,56664,1},{7650,56653,1}, {7647,56658,1},{7640,56644,1},{7642,56633,1},{7645,56631,1},{7642,56624,1}, {7643,56613,1},{7647,56609,1},{7650,56593,1},{7657,56593,1},{7653,56584,1}, {7657,56568,1},{7662,56576,1},{7668,56594,1},{7672,56591,1},{7673,56598,1}, {7675,56589,1},{7685,56583,1},{7688,56594,1},{7695,56638,1},{7698,56636,1}, {7700,56663,1},{7707,56681,1},{7707,56689,1},{7710,56696,1},{7710,56681,1}, {7713,56706,1},{7713,56723,1},{7710,56721,1},{7713,56743,1},{7712,56759,1}, {7713,56768,1},{7710,56774,1},{7710,56791,1},{7712,56803,1},{7713,56789,1}, {7718,56803,1},{7718,56833,1},{7713,56841,1},{7713,56856,1},{7717,56848,1}, {7718,56876,1},{7718,56861,1},{7718,56849,1},{7720,56841,1},{7720,56823,1}, {7720,56819,1},{7720,56814,1},{7723,56819,1},{7727,56844,1},{7727,56838,1}, {7727,56816,1},{7730,56811,1},{7733,56826,1},{7735,56846,1},{7737,56851,1}, {7737,56818,1},{7733,56798,1},{7737,56764,1},{7738,56766,1},{7743,56758,1}, {7748,56771,1},{7753,56766,1},{7755,56754,1},{7758,56754,1},{7763,56719,1}, {7765,56714,1},{7773,56721,1},{7775,56719,1},{7777,56713,1},{7782,56726,1}, {7785,56714,1},{7785,56723,1},{7782,56729,1},{7790,56809,1},{7788,56851,1}, {7782,56898,1},{7780,56914,1},{7770,56939,1},{7750,56956,1},{7747,56964,1}, {7742,56956,1},{7747,56983,1},{7747,56988,1},{7743,56983,1},{7740,56996,1}, {7738,57039,1},{7732,57064,1},{7730,57086,1},{7732,57088,1},{7733,57081,1}, {7738,57074,1},{7740,57081,1},{7738,57101,1},{7740,57136,1},{7737,57156,1}, {7735,57189,1},{7738,57186,1},{7738,57191,1},{7740,57164,1},{7745,57153,1}, {7750,57193,1},{7758,57216,1},{7772,57246,1},{7778,57258,1},{7780,57256,1}, {7782,57266,1},{7790,57273,1},{7792,57281,1},{7795,57278,1},{7795,57284,1}, {7802,57278,1},{7803,57298,1},{7808,57304,1},{7807,57281,1},{7802,57258,1}, {7792,57263,1},{7787,57241,1},{7782,57238,1},{7778,57224,1},{7772,57216,1}, {7762,57198,1},{7753,57169,1},{7748,57146,1},{7752,57144,1},{7750,57138,1}, {7753,57098,1},{7752,57078,1},{7752,57059,1},{7755,57049,1},{7757,57049,1}, {7763,57073,1},{7770,57093,1},{7775,57088,1},{7768,57084,1},{7760,57044,1}, {7767,57004,1},{7770,57009,1},{7773,57001,1},{7775,57016,1},{7780,57018,1}, {7780,57031,1},{7782,57041,1},{7783,57038,1},{7780,57006,1},{7782,56996,1}, {7787,57004,1},{7788,57016,1},{7790,57046,1},{7788,57053,1},{7787,57049,1}, {7783,57046,1},{7790,57069,1},{7788,57101,1},{7790,57104,1},{7793,57073,1}, {7790,57043,1},{7790,57009,1},{7787,56989,1},{7790,56984,1},{7792,56988,1}, {7792,56976,1},{7793,56968,1},{7798,56991,1},{7805,57029,1},{7802,57059,1}, {7807,57081,1},{7808,57108,1},{7808,57093,1},{7807,57076,1},{7805,57056,1}, {7807,57036,1},{7810,57026,1},{7813,57036,1},{7817,57033,1},{7817,57056,1}, {7820,57073,1},{7818,57098,1},{7815,57116,1},{7818,57133,1},{7818,57116,1}, {7822,57086,1},{7822,57064,1},{7818,57044,1},{7820,57039,1},{7832,57054,1}, {7835,57078,1},{7837,57076,1},{7833,57063,1},{7837,57049,1},{7850,57058,1}, {7860,57073,1},{7852,57053,1},{7847,57049,1},{7842,57038,1},{7835,57039,1}, {7832,57031,1},{7828,57034,1},{7827,57024,1},{7818,57011,1},{7810,56986,1}, {7812,56986,1},{7805,56921,1},{7807,56909,1},{7810,56908,1},{7815,56911,1}, {7817,56924,1},{7823,56943,1},{7838,56953,1},{7830,56931,1},{7825,56929,1}, {7820,56908,1},{7822,56886,1},{7812,56863,1},{7810,56828,1},{7813,56786,1}, {7815,56783,1},{7818,56796,1},{7820,56828,1},{7823,56809,1},{7822,56791,1}, {7822,56784,1},{7843,56784,1},{7855,56823,1},{7855,56851,1},{7857,56848,1}, {7857,56824,1},{7858,56824,1},{7865,56838,1},{7872,56843,1},{7880,56873,1}, {7882,56929,1},{7885,56971,1},{7892,57011,1},{7892,57029,1},{7887,57064,1}, {7883,57161,1},{7878,57183,1},{7878,57196,1},{7872,57228,1},{7870,57254,1}, {7867,57268,1},{7862,57274,1},{7857,57303,1},{7860,57313,1},{7870,57276,1}, {7873,57291,1},{7872,57313,1},{7873,57313,1},{7875,57303,1},{7875,57288,1}, {7873,57273,1},{7873,57258,1},{7875,57251,1},{7880,57228,1},{7880,57214,1}, {7883,57211,1},{7885,57234,1},{7883,57289,1},{7883,57308,1},{7887,57344,1}, {7887,57359,1},{7885,57353,1},{7883,57364,1},{7888,57371,1},{7892,57361,1}, {7898,57368,1},{7903,57388,1},{7907,57386,1},{7900,57344,1},{7892,57324,1}, {7888,57286,1},{7893,57244,1},{7893,57166,1},{7895,57144,1},{7897,57109,1}, {7903,57059,1},{7907,57058,1},{7915,57086,1},{7912,57123,1},{7903,57144,1}, {7902,57186,1},{7903,57198,1},{7905,57201,1},{7903,57184,1},{7905,57178,1}, {7913,57136,1},{7915,57133,1},{7918,57143,1},{7922,57141,1},{7918,57124,1}, {7918,57103,1},{7940,57088,1},{7948,57048,1},{7963,57029,1},{7970,56986,1}, {7972,56968,1},{7970,56946,1},{7977,56888,1},{7982,56888,1},{7982,56898,1}, {7988,56889,1},{7997,56899,1},{7993,56978,1},{7990,56999,1},{7992,57011,1}, {7997,56983,1},{8000,56888,1},{8012,56871,1},{8030,56884,1},{8033,56924,1}, {8033,56946,1},{8027,57008,1},{8027,57134,1},{8025,57158,1},{8007,57226,1}, {7987,57321,1},{7975,57339,1},{7972,57338,1},{7968,57356,1},{7968,57369,1}, {7965,57368,1},{7962,57374,1},{7960,57368,1},{7962,57358,1},{7958,57366,1}, {7960,57378,1},{7963,57391,1},{7957,57473,1},{7958,57474,1},{7960,57474,1}, {7962,57486,1},{7965,57526,1},{7965,57546,1},{7970,57561,1},{7968,57501,1}, {7965,57456,1},{7965,57443,1},{7967,57438,1},{7972,57413,1},{7972,57384,1}, {7975,57384,1},{7977,57373,1},{7982,57379,1},{7990,57369,1},{7993,57396,1}, {8002,57319,1},{8032,57216,1},{8040,57333,1},{8042,57403,1},{8047,57476,1}, {8047,57499,1},{8048,57506,1},{8050,57501,1},{8053,57521,1},{8057,57729,1}, {8060,57733,1},{8060,57694,1},{8060,57573,1},{8060,57546,1},{8062,57539,1}, {8070,57608,1},{8077,57678,1},{8083,57773,1},{8083,57868,1},{8085,57884,1}, {8087,57888,1},{8090,57874,1},{8088,57856,1},{8088,57816,1},{8092,57781,1}, {8090,57748,1},{8085,57649,1},{8088,57643,1},{8092,57651,1},{8098,57643,1}, {8108,57686,1},{8115,57696,1},{8117,57689,1},{8118,57714,1},{8132,57774,1}, {8135,57816,1},{8143,57861,1},{8143,57833,1},{8128,57713,1},{8123,57698,1}, {8120,57669,1},{8113,57661,1},{8112,57668,1},{8110,57654,1},{8110,57639,1}, {8113,57611,1},{8120,57586,1},{8108,57629,1},{8107,57611,1},{8100,57603,1}, {8098,57618,1},{8097,57619,1},{8092,57609,1},{8092,57594,1},{8088,57593,1}, {8082,57574,1},{8065,57444,1},{8055,57301,1},{8053,57248,1},{8053,57226,1}, {8055,57219,1},{8060,57221,1},{8065,57228,1},{8065,57246,1},{8068,57259,1}, {8072,57314,1},{8077,57341,1},{8082,57361,1},{8083,57341,1},{8077,57288,1}, {8073,57279,1},{8068,57201,1},{8070,57183,1},{8073,57179,1},{8078,57209,1}, {8082,57224,1},{8083,57221,1},{8083,57204,1},{8075,57166,1},{8077,57149,1}, {8073,57159,1},{8072,57153,1},{8063,57164,1},{8057,57156,1},{8053,57143,1}, {8052,57104,1},{8053,57059,1},{8050,57029,1},{8052,57006,1},{8053,56949,1}, {8062,56976,1},{8060,56961,1},{8053,56928,1},{8055,56898,1},{8060,56861,1}, {8073,56884,1},{8097,56973,1},{8102,57031,1},{8103,57038,1},{8103,57048,1}, {8105,57096,1},{8110,57209,1},{8112,57224,1},{8113,57258,1},{8115,57268,1}, {8115,57289,1},{8118,57299,1},{8117,57284,1},{8117,57253,1},{8113,57201,1}, {8108,57118,1},{8108,57078,1},{8105,57011,1},{8105,56979,1},{8103,56961,1}, {8093,56901,1},{8083,56873,1},{8073,56829,1},{8063,56809,1},{8063,56773,1}, {8068,56733,1},{8068,56714,1},{8085,56604,1},{8092,56591,1},{8100,56678,1}, {8100,56761,1},{8098,56788,1},{8100,56828,1},{8100,56869,1},{8108,56929,1}, {8108,56953,1},{8112,56948,1},{8122,57006,1},{8127,57056,1},{8128,57061,1}, {8130,57043,1},{8128,57004,1},{8122,56931,1},{8113,56893,1},{8107,56798,1}, {8105,56768,1},{8107,56703,1},{8102,56573,1},{8102,56549,1},{8107,56514,1}, {8117,56501,1},{8123,56531,1},{8123,56561,1},{8120,56583,1},{8125,56641,1}, {8125,56638,1},{8125,56601,1},{8128,56579,1},{8130,56549,1},{8133,56541,1}, {8135,56573,1},{8147,56633,1},{8145,56654,1},{8148,56643,1},{8152,56664,1}, {8153,56738,1},{8152,56744,1},{8152,56788,1},{8148,56808,1},{8150,56806,1}, {8157,56733,1},{8155,56718,1},{8158,56706,1},{8155,56671,1},{8153,56636,1}, {8150,56604,1},{8137,56491,1},{8138,56481,1},{8140,56488,1},{8143,56451,1}, {8150,56474,1},{8157,56523,1},{8157,56541,1},{8160,56549,1},{8160,56573,1}, {8163,56578,1},{8162,56528,1},{8165,56533,1},{8170,56506,1},{8168,56499,1}, {8163,56506,1},{8167,56473,1},{8162,56439,1},{8157,56439,1},{8153,56429,1}, {8155,56421,1},{8152,56391,1},{8158,56391,1},{8162,56346,1},{8163,56341,1}, {8165,56349,1},{8165,56341,1},{8167,56359,1},{8173,56363,1},{8177,56388,1}, {8177,56411,1},{8177,56433,1},{8180,56421,1},{8183,56431,1},{8183,56463,1}, {8187,56474,1},{8190,56503,1},{8188,56543,1},{8190,56533,1},{8192,56563,1}, {8188,56564,1},{8178,56604,1},{8182,56601,1},{8188,56621,1},{8192,56596,1}, {8193,56596,1},{8195,56608,1},{8193,56621,1},{8192,56629,1},{8193,56636,1}, {8200,56634,1},{8207,56673,1},{8208,56721,1},{8210,56728,1},{8207,56756,1}, {8208,56773,1},{8207,56801,1},{8202,56819,1},{8197,56804,1},{8188,56859,1}, {8193,56853,1},{8197,56823,1},{8198,56834,1},{8198,56851,1},{8203,56834,1}, {8205,56858,1},{8203,56919,1},{8198,56949,1},{8185,56994,1},{8188,56996,1}, {8198,56963,1},{8200,56976,1},{8200,57018,1},{8192,57034,1},{8188,57056,1}, {8198,57029,1},{8198,57048,1},{8192,57058,1},{8188,57074,1},{8198,57063,1}, {8202,57046,1},{8207,56961,1},{8210,56929,1},{8212,56873,1},{8220,56849,1}, {8223,56869,1},{8223,56969,1},{8227,56981,1},{8228,56999,1},{8232,56988,1}, {8235,56994,1},{8235,56983,1},{8240,56984,1},{8243,56944,1},{8247,56956,1}, {8248,57031,1},{8247,57073,1},{8243,57073,1},{8243,57041,1},{8238,57091,1}, {8235,57101,1},{8237,57131,1},{8235,57159,1},{8232,57184,1},{8228,57199,1}, {8223,57201,1},{8213,57238,1},{8210,57239,1},{8207,57224,1},{8208,57256,1}, {8207,57316,1},{8203,57348,1},{8208,57334,1},{8210,57271,1},{8215,57263,1}, {8222,57234,1},{8230,57238,1},{8228,57271,1},{8215,57344,1},{8203,57438,1}, {8202,57473,1},{8198,57479,1},{8197,57528,1},{8182,57579,1},{8182,57613,1}, {8190,57588,1},{8193,57569,1},{8197,57564,1},{8198,57544,1},{8202,57551,1}, {8203,57503,1},{8208,57454,1},{8212,57438,1},{8215,57449,1},{8217,57411,1}, {8220,57374,1},{8233,57284,1},{8240,57263,1},{8250,57286,1},{8250,57388,1}, {8252,57344,1},{8258,57304,1},{8263,57298,1},{8267,57314,1},{8267,57339,1}, {8263,57393,1},{8253,57448,1},{8255,57478,1},{8270,57423,1},{8277,57386,1}, {8280,57378,1},{8282,57389,1},{8282,57434,1},{8278,57498,1},{8272,57523,1}, {8268,57519,1},{8265,57549,1},{8265,57554,1},{8268,57538,1},{8272,57548,1}, {8267,57616,1},{8268,57684,1},{8270,57608,1},{8273,57574,1},{8277,57548,1}, {8280,57536,1},{8282,57569,1},{8283,57521,1},{8288,57496,1},{8290,57493,1}, {8293,57521,1},{8297,57591,1},{8295,57618,1},{8293,57614,1},{8287,57631,1}, {8295,57661,1},{8293,57673,1},{8292,57686,1},{8285,57683,1},{8287,57696,1}, {8282,57721,1},{8287,57713,1},{8285,57733,1},{8287,57734,1},{8290,57726,1}, {8292,57754,1},{8287,57823,1},{8277,57839,1},{8275,57859,1},{8267,57879,1}, {8258,57946,1},{8247,57909,1},{8112,56103,129},{8110,56123,1},{8110,56161,1}, {8107,56184,1},{8108,56184,1},{8108,56213,1},{8112,56224,1},{8113,56218,1}, {8117,56226,1},{8118,56224,1},{8118,56211,1},{8122,56214,1},{8122,56194,1}, {8120,56151,1},{8122,56129,1},{8125,56098,1},{8135,56113,1},{8137,56129,1}, {8135,56158,1},{8130,56179,1},{8132,56188,1},{8135,56183,1},{8138,56184,1}, {8123,56324,1},{8115,56356,1},{8110,56356,1},{8108,56358,1},{8107,56346,1}, {8105,56364,1},{8098,56383,1},{8093,56384,1},{8082,56421,1},{8075,56424,1}, {8072,56461,1},{8065,56476,1},{8057,56459,1},{8053,56531,1},{8047,56561,1}, {8053,56558,1},{8053,56574,1},{8055,56581,1},{8052,56609,1},{8047,56629,1}, {8040,56611,1},{8040,56628,1},{8033,56626,1},{8030,56611,1},{8028,56611,1}, {8020,56629,1},{8010,56683,1},{8010,56694,1},{8015,56691,1},{8010,56721,1}, {8018,56694,1},{8020,56709,1},{8022,56686,1},{8028,56666,1},{8038,56669,1}, {8045,56698,1},{8042,56768,1},{8018,56779,1},{8015,56768,1},{8015,56743,1}, {8012,56729,1},{8005,56748,1},{8008,56768,1},{8007,56808,1},{8000,56819,1}, {7995,56834,1},{7993,56833,1},{7992,56813,1},{7987,56804,1},{7985,56789,1}, {7983,56788,1},{7983,56803,1},{7987,56818,1},{7992,56834,1},{7990,56841,1}, {7965,56823,1},{7957,56793,1},{7953,56791,1},{7950,56804,1},{7953,56814,1}, {7957,56819,1},{7960,56839,1},{7958,56854,1},{7955,56851,1},{7953,56858,1}, {7957,56859,1},{7957,56866,1},{7962,56856,1},{7965,56879,1},{7963,56908,1}, {7957,56931,1},{7955,56933,1},{7952,56923,1},{7947,56933,1},{7945,56919,1}, {7943,56926,1},{7945,56939,1},{7962,56958,1},{7960,56974,1},{7952,56986,1}, {7945,56998,1},{7940,57011,1},{7935,57033,1},{7930,57044,1},{7927,57044,1}, {7922,57014,1},{7918,57006,1},{7918,56996,1},{7913,56958,1},{7910,56909,1}, {7907,56889,1},{7905,56879,1},{7898,56876,1},{7895,56866,1},{7895,56858,1}, {7905,56838,1},{7890,56841,1},{7880,56803,1},{7865,56774,1},{7865,56768,1}, {7870,56749,1},{7880,56736,1},{7892,56741,1},{7895,56738,1},{7900,56754,1}, {7903,56753,1},{7908,56764,1},{7905,56751,1},{7902,56746,1},{7898,56719,1}, {7880,56713,1},{7868,56723,1},{7865,56701,1},{7865,56734,1},{7858,56746,1}, {7855,56746,1},{7848,56734,1},{7845,56716,1},{7860,56679,1},{7862,56656,1}, {7855,56661,1},{7840,56683,1},{7815,56654,1},{7817,56633,1},{7825,56613,1}, {7833,56601,1},{7837,56586,1},{7850,56554,1},{7862,56538,1},{7860,56528,1}, {7855,56526,1},{7843,56538,1},{7838,56561,1},{7815,56588,1},{7817,56574,1}, {7822,56569,1},{7822,56543,1},{7830,56534,1},{7833,56511,1},{7832,56461,1}, {7828,56476,1},{7827,56504,1},{7823,56499,1},{7818,56509,1},{7815,56503,1}, {7813,56493,1},{7815,56439,1},{7817,56418,1},{7818,56388,1},{7823,56351,1}, {7822,56336,1},{7822,56328,1},{7828,56318,1},{7828,56304,1},{7830,56318,1}, {7832,56318,1},{7830,56296,1},{7832,56278,1},{7835,56274,1},{7842,56244,1}, {7848,56238,1},{7848,56249,1},{7850,56251,1},{7848,56276,1},{7850,56288,1}, {7852,56279,1},{7853,56334,1},{7855,56351,1},{7853,56369,1},{7857,56371,1}, {7860,56278,1},{7863,56256,1},{7860,56238,1},{7858,56209,1},{7865,56189,1}, {7868,56201,1},{7868,56181,1},{7877,56154,1},{7878,56171,1},{7877,56196,1}, {7873,56219,1},{7873,56231,1},{7877,56233,1},{7882,56194,1},{7883,56149,1}, {7887,56143,1},{7897,56109,1},{7898,56108,1},{7903,56136,1},{7905,56176,1}, {7915,56189,1},{7917,56203,1},{7915,56239,1},{7913,56249,1},{7917,56261,1}, {7915,56304,1},{7917,56353,1},{7922,56486,1},{7923,56498,1},{7925,56496,1}, {7923,56469,1},{7925,56423,1},{7922,56398,1},{7920,56321,1},{7925,56268,1}, {7930,56278,1},{7930,56323,1},{7932,56319,1},{7930,56334,1},{7930,56349,1}, {7933,56363,1},{7935,56421,1},{7938,56423,1},{7933,56346,1},{7937,56279,1}, {7938,56283,1},{7943,56311,1},{7945,56313,1},{7945,56294,1},{7943,56269,1}, {7940,56251,1},{7942,56241,1},{7945,56236,1},{7948,56228,1},{7947,56221,1}, {7938,56234,1},{7933,56199,1},{7938,56208,1},{7943,56213,1},{7945,56204,1}, {7938,56191,1},{7935,56188,1},{7937,56169,1},{7932,56173,1},{7925,56139,1}, {7928,56114,1},{7935,56124,1},{7940,56151,1},{7938,56133,1},{7940,56116,1}, {7942,56098,1},{7942,56094,1},{7942,56086,1},{7940,56088,1},{7938,56086,1}, {7937,56098,1},{7933,56086,1},{7933,56069,1},{7927,56034,1},{7928,56013,1}, {7932,56018,1},{7933,56004,1},{7935,56019,1},{7935,56008,1},{7940,56008,1}, {7940,55998,1},{7937,55994,1},{7938,55973,1},{7942,55959,1},{7943,55958,1}, {7943,55969,1},{7947,55958,1},{7950,55966,1},{7953,55963,1},{7955,55973,1}, {7957,56026,1},{7960,56038,1},{7962,56066,1},{7968,56103,1},{7973,56101,1}, {7977,56108,1},{7978,56103,1},{7975,56096,1},{7973,56081,1},{7967,56058,1}, {7963,55994,1},{7965,55951,1},{7973,55921,1},{7973,55913,1},{7975,55911,1}, {7980,55908,1},{7983,55888,1},{7987,55898,1},{7985,55881,1},{7987,55878,1}, {7988,55874,1},{7992,55891,1},{7992,55898,1},{7988,55898,1},{7990,55908,1}, {7990,55923,1},{7993,55909,1},{7995,55876,1},{8002,55868,1},{8005,55898,1}, {8005,55884,1},{8003,55873,1},{8005,55866,1},{8008,55856,1},{8013,55861,1}, {8015,55868,1},{8013,55901,1},{8008,55928,1},{8005,55951,1},{8003,56028,1}, {8005,56051,1},{7998,56094,1},{8002,56091,1},{8010,56056,1},{8017,56088,1}, {8018,56128,1},{8020,56091,1},{8022,56079,1},{8017,56064,1},{8012,56009,1}, {8012,55994,1},{8017,55968,1},{8020,55978,1},{8022,56006,1},{8025,56011,1}, {8022,55986,1},{8023,55971,1},{8020,55944,1},{8025,55909,1},{8027,55889,1}, {8027,55879,1},{8032,55889,1},{8035,55868,1},{8037,55876,1},{8035,55888,1}, {8035,55893,1},{8033,55911,1},{8035,55914,1},{8037,55909,1},{8038,55931,1}, {8033,55993,1},{8038,55989,1},{8038,55974,1},{8045,55956,1},{8048,55926,1}, {8052,55943,1},{8053,55946,1},{8057,55933,1},{8058,55938,1},{8058,56019,1}, {8060,56033,1},{8058,56049,1},{8055,56066,1},{8055,56138,1},{8053,56141,1}, {8053,56158,1},{8058,56136,1},{8062,56099,1},{8060,56081,1},{8065,56069,1}, {8068,56076,1},{8070,56116,1},{8070,56128,1},{8072,56126,1},{8072,56106,1}, {8075,56101,1},{8073,56091,1},{8072,56074,1},{8075,56046,1},{8077,56033,1}, {8080,56051,1},{8082,56048,1},{8078,56008,1},{8082,55983,1},{8083,55986,1}, {8088,56021,1},{8088,55994,1},{8090,55988,1},{8095,56008,1},{8100,56013,1}, {8105,56046,1},{8103,56079,1},{8102,56091,1},{8098,56086,1},{8097,56093,1}, {8097,56101,1},{8100,56106,1},{8100,56123,1},{8102,56129,1},{8102,56143,1}, {8103,56129,1},{8103,56146,1},{8105,56121,1},{8110,56101,1},{8112,56103,1}, {6000,51631,131},{6000,51743,3},{6000,51851,3},{6000,51896,3},{6000,51963,3}, {6000,52071,3},{6000,52159,3},{6000,52179,3},{6000,52293,3},{6000,52403,3}, {6000,52424,3},{6000,52511,3},{6000,52623,3},{6000,52688,3},{6000,52731,3}, {6000,52839,3},{6000,52953,3},{6000,53073,3},{6000,53153,3},{6002,53154,3}, {6048,53096,3},{6078,53003,3},{6088,52953,3},{6082,52884,3},{6132,52829,3}, {6170,52738,3},{6185,52716,3},{6213,52616,3},{6267,52584,3},{6295,52566,3}, {6318,52546,3},{6370,52504,3},{6415,52443,3},{6420,52449,3},{6453,52366,3}, {6497,52286,3},{6552,52308,3},{6580,52293,3},{6602,52246,3},{6645,52163,3}, {6695,52128,3},{6698,52136,3},{6700,51994,3},{6700,51919,3},{6757,51918,3}, {6772,51891,3},{6828,51891,3},{6883,51891,3},{6890,51894,3},{5380,53536,131}, {5337,53593,3},{5305,53664,3},{5287,53689,3},{5257,53708,3},{5215,53773,3}, {5188,53833,3},{5178,53839,3},{5142,53906,3},{5102,53968,3},{5093,53976,3}, {5058,54021,3},{5008,54068,3},{4978,54074,3},{4955,54074,3},{4907,54124,3}, {4900,54129,3},{4938,56021,131},{4998,56021,3},{5058,56021,3},{5072,56021,3}, {5115,56021,3},{5172,56021,3},{5202,56021,3},{5232,56021,3},{5283,56021,3}, {5322,56086,3},{5362,56153,3},{5377,56178,3},{5403,56213,3},{5447,56273,3}, {5480,56323,3},{5488,56334,3},{5532,56398,3},{5573,56463,3},{5578,56469,3}, {5615,56528,3},{5657,56596,3},{5677,56629,3},{5685,56641,3},{5582,55336,131}, {5642,55336,3},{5698,55336,3},{5715,55336,3},{5755,55336,3},{5812,55336,3}, {5845,55336,3},{5868,55336,3},{5927,55336,3},{5975,55336,3},{5987,55336,3}, {6000,55336,3},{5547,55339,3},{5582,55336,3},{5512,55343,3},{5547,55339,3}, {5477,55348,3},{5512,55343,3},{5477,55348,3},{5442,55351,3},{5407,55354,3}, {5442,55351,3},{5375,55359,3},{5407,55354,3},{5337,55361,3},{5375,55359,3}, {5302,55366,3},{5337,55361,3},{5267,55369,3},{5302,55366,3},{5232,55373,3}, {5267,55369,3},{5197,55374,3},{5232,55373,3},{5130,55379,3},{5187,55379,3}, {5197,55374,3},{5095,55381,3},{5130,55379,3},{5060,55384,3},{5095,55381,3}, {5025,55388,3},{5060,55384,3},{4988,55391,3},{5025,55388,3},{4953,55393,3}, {4988,55391,3},{4918,55396,3},{4953,55393,3},{4900,55399,3},{4918,55396,3}, {6000,53153,131},{6000,53266,3},{6000,53386,3},{6000,53423,3},{6000,53499,3}, {6000,53609,3},{6000,53684,3},{6000,53728,3},{6000,53839,3},{6000,53946,3}, {6000,53959,3},{6000,54073,3},{6000,54189,3},{6000,54213,3},{6000,54299,3}, {6000,54411,3},{6000,54476,3},{6000,54519,3},{6000,54636,3},{6000,54736,3}, {6000,54748,3},{6000,54858,3},{6000,54966,3},{6000,54999,3},{6000,55076,3}, {6000,55196,3},{6000,55263,3},{6000,55308,3},{6000,55416,3},{6000,55526,3}, {6000,55641,3},{6000,55751,3},{6000,55786,3},{6000,55866,3},{6000,55978,3}, {6000,56053,3},{6000,56056,3},{5380,53536,131},{5437,53536,3},{5493,53536,3}, {5510,53536,3},{5550,53536,3},{5607,53536,3},{5640,53536,3},{5663,53536,3}, {5723,53536,3},{5773,53536,3},{5780,53536,3},{5840,53536,3},{5897,53536,3}, {5903,53536,3},{5955,53536,3},{6000,53536,3},{4900,54536,131},{4955,54536,3}, {5010,54536,3},{5033,54536,3},{5068,54536,3},{5127,54536,3},{5167,54536,3}, {5187,54536,3},{5247,54536,3},{5300,54536,3},{5307,54536,3},{5365,54536,3}, {5425,54536,3},{5430,54536,3},{5483,54536,3},{5538,54536,3},{5563,54536,3}, {5597,54536,3},{5653,54536,3},{5697,54536,3},{5710,54536,3},{5767,54536,3}, {5825,54536,3},{5830,54536,3},{5883,54536,3},{5943,54536,3},{5962,54536,3}, {6000,54536,3},{5147,57581,131},{5120,57583,3},{5118,57583,3},{5063,57583,3}, {5007,57583,3},{4987,57583,3},{4952,57583,3},{4897,57584,3},{4857,57584,3}, {4842,57584,3},{4787,57584,3},{4757,57584,3},{4703,57599,3},{4682,57621,3}, {4618,57768,3},{4582,57828,3},{4552,57891,3},{4552,57924,3},{4547,57974,3}, {4563,58051,3},{4517,58098,3},{4500,58068,3},{4730,58631,131},{4762,58698,3}, {4800,58754,3},{4790,58803,3},{4790,58838,3},{4800,58851,3},{4682,57621,131}, {4635,57664,3},{4623,57741,3},{4618,57768,3},{5378,58793,131},{5432,58786,3}, {5485,58806,3},{5508,58794,3},{5532,58853,3},{5495,58924,3},{5472,59009,3}, {5473,59106,3},{5497,59193,3},{5530,59219,3},{5553,59221,3},{5602,59191,3}, {5642,59119,3},{5697,59146,3},{5732,59151,3},{5750,59159,3},{5802,59114,3}, {5852,59151,3},{5860,59126,3},{5892,59071,3},{5945,59091,3},{5988,59059,3}, {5997,59051,3},{6030,59079,3},{5378,58793,131},{5332,58846,3},{5278,58829,3}, {5263,58893,3},{5243,58898,3},{5213,58903,3},{5222,58994,3},{5185,59068,3}, {5170,59103,3},{5230,59123,3},{5285,59118,3},{5297,59143,3},{5290,59181,3}, {5277,59176,3},{5237,59136,3},{5203,59173,3},{5200,59161,3},{5237,59136,3}, {5203,59173,3},{5200,59161,3},{5200,59253,3},{5200,59344,3},{5200,59378,3}, {5200,59436,3},{5200,59528,3},{5200,59594,3},{5200,59619,3},{5200,59711,3}, {5200,59803,3},{5200,59811,3},{5200,59826,3},{5142,59826,3},{5197,59826,3}, {5200,59826,3},{4598,59131,131},{4583,59109,3},{4200,53118,131},{4200,53329,3}, {4200,53536,3},{4600,53848,131},{4603,53846,3},{4610,53839,3},{4617,53844,3}, {4622,53841,3},{4627,53841,3},{4637,53831,3},{4643,53834,3},{4660,53833,3}, {4900,53833,3},{4200,53834,131},{4382,53833,3},{4388,53839,3},{4402,53843,3}, {4405,53843,3},{4410,53839,3},{4412,53846,3},{4417,53848,3},{4422,53839,3}, {4425,53839,3},{4427,53838,3},{4425,53831,3},{4427,53829,3},{4428,53826,3}, {4427,53823,3},{4427,53821,3},{4428,53818,3},{4440,53814,3},{4445,53816,3}, {4448,53814,3},{4455,53823,3},{4475,53833,3},{4478,53843,3},{4483,53846,3}, {4492,53853,3},{4503,53853,3},{4517,53864,3},{4535,53871,3},{4560,53891,3}, {4577,53881,3},{4578,53874,3},{4583,53866,3},{4583,53861,3},{4592,53853,3}, {4602,53846,3},{4200,53536,131},{4200,53686,3},{4200,53834,3},{3500,54074,131}, {3900,53536,3},{4200,53536,3},{4450,54431,131},{4450,54426,3},{4457,54419,3}, {4458,54416,3},{4465,54414,3},{4465,54411,3},{4473,54406,3},{4475,54399,3}, {4473,54396,3},{4473,54393,3},{4472,54389,3},{4467,54391,3},{4465,54386,3}, {4460,54384,3},{4457,54386,3},{4455,54391,3},{4455,54389,3},{4455,54386,3}, {4457,54381,3},{4457,54369,3},{4453,54356,3},{4457,54349,3},{4455,54339,3}, {4455,54336,3},{4453,54334,3},{4455,54326,3},{4455,54316,3},{4457,54313,3}, {4455,54304,3},{4447,54299,3},{4445,54296,3},{4448,54291,3},{4450,54268,3}, {4448,54261,3},{4443,54254,3},{4442,54253,3},{4438,54256,3},{4437,54253,3}, {4440,54249,3},{4442,54244,3},{4445,54239,3},{4447,54236,3},{4448,54236,3}, {4450,54234,3},{4453,54236,3},{4455,54233,3},{4458,54233,3},{4460,54229,3}, {4465,54231,3},{4478,54223,3},{4482,54218,3},{4482,54211,3},{4478,54203,3}, {4483,54201,3},{4485,54194,3},{4487,54193,3},{4493,54188,3},{4495,54191,3}, {4502,54193,3},{4512,54186,3},{4512,54181,3},{4522,54176,3},{4525,54169,3}, {4528,54169,3},{4532,54164,3},{4538,54164,3},{4542,54159,3},{4543,54159,3}, {4550,54161,3},{4553,54154,3},{4558,54158,3},{4560,54156,3},{4563,54148,3}, {4568,54144,3},{4570,54138,3},{4565,54136,3},{4563,54131,3},{4560,54129,3}, {4557,54126,3},{4555,54118,3},{4555,54114,3},{4550,54111,3},{4548,54104,3}, {4552,54096,3},{4555,54094,3},{4557,54091,3},{4557,54081,3},{4560,54083,3}, {4563,54081,3},{4567,54086,3},{4572,54088,3},{4578,54081,3},{4585,54086,3}, {4585,54094,3},{4590,54098,3},{4593,54094,3},{4598,54096,3},{4600,54089,3}, {4603,54089,3},{4605,54088,3},{4612,54091,3},{4617,54086,3},{4618,54093,3}, {4627,54091,3},{4635,54096,3},{4640,54096,3},{4645,54099,3},{4650,54096,3}, {4653,54103,3},{4655,54101,3},{4667,54104,3},{4668,54101,3},{4667,54094,3}, {4665,54088,3},{4665,54079,3},{4667,54073,3},{4668,54073,3},{4672,54074,3}, {4675,54068,3},{4672,54061,3},{4672,54059,3},{4678,54059,3},{4678,54053,3}, {4683,54046,3},{4688,54044,3},{4692,54044,3},{4698,54036,3},{4698,54031,3}, {4703,54029,3},{4708,54021,3},{4713,54018,3},{4720,54008,3},{4725,54004,3}, {4728,53994,3},{4730,53986,3},{4738,53979,3},{4742,53969,3},{4743,53964,3}, {4747,53964,3},{4747,53971,3},{4748,53973,3},{4750,53969,3},{4753,53968,3}, {4755,53963,3},{4762,53969,3},{4765,53964,3},{4770,53964,3},{4773,53959,3}, {4775,53958,3},{4777,53954,3},{4785,53951,3},{4788,53943,3},{4797,53936,3}, {4800,53931,3},{4900,53931,3},{4450,54431,131},{4500,54431,3},{4500,54618,3}, {4500,54783,3},{4500,54954,3},{4500,55136,3},{4200,54431,131},{4450,54431,3}, {4200,53834,131},{4200,53988,3},{4200,54133,3},{4200,54284,3},{4200,54431,3}, {3702,54133,131},{4200,54133,3},{4100,54631,131},{4100,54431,3},{4200,54431,3}, {4100,54631,131},{4100,54889,3},{4100,55134,3},{3700,54631,131},{4100,54631,3}, {3700,54131,131},{3700,54388,3},{3700,54633,3},{3700,54781,3},{3700,54934,3}, {3700,55088,3},{3700,55236,3},{3498,54074,131},{3505,54073,3},{3508,54076,3}, {3512,54073,3},{3513,54074,3},{3515,54078,3},{3522,54079,3},{3533,54078,3}, {3550,54069,3},{3562,54071,3},{3572,54068,3},{3582,54068,3},{3588,54069,3}, {3590,54066,3},{3598,54063,3},{3603,54064,3},{3608,54063,3},{3612,54068,3}, {3617,54081,3},{3613,54091,3},{3615,54101,3},{3612,54104,3},{3607,54106,3}, {3602,54114,3},{3603,54123,3},{3608,54124,3},{3613,54126,3},{3620,54133,3}, {3702,54133,3},{3272,54064,131},{3275,54068,3},{3273,54083,3},{3275,54084,3}, {3280,54083,3},{3287,54091,3},{3293,54089,3},{3297,54089,3},{3302,54084,3}, {3303,54069,3},{3308,54066,3},{3322,54069,3},{3323,54068,3},{3327,54068,3}, {3330,54063,3},{3337,54066,3},{3340,54063,3},{3342,54073,3},{3352,54078,3}, {3357,54083,3},{3360,54083,3},{3363,54084,3},{3368,54084,3},{3372,54088,3}, {3382,54084,3},{3387,54084,3},{3390,54088,3},{3395,54084,3},{3403,54094,3}, {3412,54098,3},{3418,54113,3},{3428,54124,3},{3435,54119,3},{3447,54103,3}, {3447,54099,3},{3453,54099,3},{3458,54094,3},{3463,54094,3},{3470,54091,3}, {3475,54086,3},{3480,54079,3},{3483,54079,3},{3488,54074,3},{3500,54074,3}, {3133,54631,131},{3700,54631,3},{4593,55134,131},{4900,55133,3},{4500,55136,131}, {4595,55134,3},{4593,55134,131},{4593,55318,3},{4593,55508,3},{4593,55694,3}, {4593,55881,3},{4300,55133,131},{4500,55133,3},{4100,55134,131},{4302,55133,3}, {4300,55133,131},{4300,55276,3},{4300,55424,3},{4300,55579,3},{4300,55688,3}, {4297,55691,3},{4292,55699,3},{4283,55723,3},{4280,55728,3},{4278,55736,3}, {4278,55743,3},{4285,55748,3},{4287,55751,3},{4285,55759,3},{4287,55764,3}, {4285,55769,3},{4287,55774,3},{4285,55783,3},{4288,55804,3},{4287,55811,3}, {4282,55816,3},{4280,55821,3},{4278,55824,3},{4277,55838,3},{4273,55841,3}, {4272,55854,3},{4268,55856,3},{4267,55866,3},{4263,55866,3},{4258,55873,3}, {4253,55874,3},{4252,55889,3},{4000,55334,131},{4100,55333,3},{4100,55134,3}, {4002,55334,131},{3700,55334,3},{3650,55236,131},{3700,55236,3},{3178,54884,131}, {3183,54876,3},{3200,54869,3},{3200,55038,3},{3200,55229,3},{3300,55229,3}, {3400,55233,3},{3650,55233,3},{3650,55236,3},{4000,55334,131},{4000,55498,3}, {4000,55669,3},{4000,55841,3},{4000,56006,3},{3700,55236,131},{3700,55336,3}, {3700,55536,3},{3700,55708,3},{3700,55896,3},{3700,56074,3},{3650,55236,131}, {3650,55369,3},{3650,55536,3},{3647,55536,3},{3458,55536,3},{3457,55548,3}, {3440,55568,3},{3438,55573,3},{3438,55578,3},{3442,55583,3},{3437,55593,3}, {3438,55596,3},{3445,55598,3},{3447,55601,3},{3442,55603,3},{3440,55609,3}, {3437,55611,3},{3433,55616,3},{3425,55616,3},{3422,55618,3},{3420,55634,3}, {3422,55639,3},{3417,55649,3},{3413,55663,3},{3415,55676,3},{3408,55684,3}, {3407,55689,3},{3408,55696,3},{3412,55698,3},{3413,55701,3},{3415,55726,3}, {3413,55728,3},{3407,55726,3},{3402,55728,3},{3398,55741,3},{3390,55739,3}, {3388,55741,3},{3387,55749,3},{3388,55756,3},{3397,55766,3},{3398,55771,3}, {3397,55778,3},{3390,55778,3},{3390,55789,3},{3383,55791,3},{3382,55793,3}, {3383,55801,3},{3388,55804,3},{3385,55809,3},{3390,55814,3},{3390,55816,3}, {3387,55818,3},{3382,55816,3},{3380,55816,3},{3375,55818,3},{3372,55823,3}, {3375,55828,3},{3380,55828,3},{3382,55831,3},{3385,55828,3},{3385,55833,3}, {3385,55834,3},{3390,55838,3},{3395,55838,3},{3397,55844,3},{3395,55848,3}, {3387,55851,3},{3387,55858,3},{3385,55863,3},{3385,55868,3},{3392,55871,3}, {3392,55876,3},{3385,55876,3},{3382,55884,3},{3378,55886,3},{3378,55896,3}, {3372,55901,3},{3370,55904,3},{3372,55906,3},{3377,55908,3},{3377,55916,3}, {3383,55921,3},{3385,55934,3},{3387,55939,3},{3390,55943,3},{3385,55951,3}, {3387,55954,3},{3385,55958,3},{3390,55959,3},{3390,55964,3},{3393,55973,3}, {3392,55973,3},{3395,55976,3},{3392,55981,3},{3388,55983,3},{3388,55984,3}, {3387,55986,3},{3387,56001,3},{3388,56003,3},{3390,56008,3},{3392,56008,3}, {3390,56009,3},{3393,56009,3},{3397,56013,3},{3395,56021,3},{3392,56023,3}, {3392,56028,3},{3387,56033,3},{3385,56036,3},{3387,56038,3},{3382,56041,3}, {3382,56044,3},{3375,56049,3},{3373,56061,3},{3370,56064,3},{3368,56069,3}, {3367,56074,3},{3368,56078,3},{3367,56078,3},{3365,56088,3},{4593,55879,131}, {4603,55878,3},{4610,55881,3},{4617,55879,3},{4622,55876,3},{4632,55876,3}, {4643,55864,3},{4647,55864,3},{4650,55863,3},{4658,55861,3},{4665,55856,3}, {4673,55858,3},{4680,55856,3},{4692,55859,3},{4693,55856,3},{4700,55853,3}, {4738,55853,3},{4742,55849,3},{4748,55851,3},{4752,55849,3},{4760,55851,3}, {4777,55843,3},{4780,55838,3},{4783,55838,3},{4788,55834,3},{4792,55836,3}, {4795,55831,3},{4803,55829,3},{4815,55823,3},{4828,55824,3},{4838,55821,3}, {4843,55824,3},{4855,55821,3},{4865,55826,3},{4897,55813,3},{4900,55814,3}, {4350,55891,131},{4530,55891,3},{4537,55883,3},{4542,55866,3},{4560,55849,3}, {4565,55853,3},{4577,55873,3},{4585,55879,3},{4592,55879,3},{4595,55881,3}, {4350,55893,131},{4350,56149,3},{4350,56284,3},{4350,56414,3},{4252,55888,131}, {4257,55888,3},{4257,55886,3},{4262,55884,3},{4263,55881,3},{4265,55884,3}, {4272,55873,3},{4273,55873,3},{4283,55876,3},{4285,55881,3},{4287,55879,3}, {4290,55883,3},{4293,55883,3},{4295,55886,3},{4302,55886,3},{4303,55884,3}, {4308,55889,3},{4312,55891,3},{4322,55888,3},{4323,55879,3},{4325,55881,3}, {4327,55878,3},{4328,55878,3},{4330,55883,3},{4338,55883,3},{4343,55876,3}, {4350,55876,3},{4350,55891,3},{4060,55959,131},{4067,55958,3},{4068,55953,3}, {4073,55949,3},{4078,55953,3},{4083,55953,3},{4088,55954,3},{4093,55953,3}, {4098,55953,3},{4100,55949,3},{4105,55949,3},{4107,55948,3},{4110,55949,3}, {4117,55949,3},{4118,55951,3},{4118,55948,3},{4118,55944,3},{4120,55943,3}, {4127,55944,3},{4128,55948,3},{4130,55949,3},{4133,55941,3},{4145,55944,3}, {4148,55936,3},{4153,55938,3},{4155,55936,3},{4153,55931,3},{4153,55928,3}, {4158,55929,3},{4162,55926,3},{4168,55926,3},{4172,55929,3},{4175,55928,3}, {4180,55929,3},{4190,55921,3},{4198,55921,3},{4205,55911,3},{4212,55909,3}, {4218,55901,3},{4222,55901,3},{4228,55903,3},{4237,55894,3},{4247,55898,3}, {4248,55898,3},{4252,55888,3},{4062,55959,131},{4053,55959,3},{4052,55966,3}, {4048,55966,3},{4045,55969,3},{4042,55969,3},{4033,55973,3},{4032,55971,3}, {4030,55978,3},{4025,55983,3},{4023,55989,3},{4020,55988,3},{4012,55996,3}, {4003,55994,3},{4003,56001,3},{3998,56006,3},{4060,55959,131},{4058,56043,3}, {4058,56161,3},{4060,56299,3},{4063,56363,3},{4058,56366,3},{4055,56368,3}, {4053,56373,3},{4050,56374,3},{4045,56383,3},{4042,56384,3},{4038,56393,3}, {3700,56074,131},{3913,56073,3},{3915,56076,3},{3915,56073,3},{3917,56069,3}, {3917,56064,3},{3920,56054,3},{3927,56053,3},{3930,56046,3},{3935,56044,3}, {3938,56046,3},{3940,56041,3},{3945,56036,3},{3947,56033,3},{3955,56026,3}, {3957,56026,3},{3958,56029,3},{3962,56031,3},{3967,56033,3},{3968,56038,3}, {3973,56039,3},{3972,56046,3},{3973,56049,3},{3982,56048,3},{3985,56041,3}, {3990,56041,3},{3990,56034,3},{3987,56033,3},{3987,56028,3},{3990,56021,3}, {3990,56016,3},{3993,56014,3},{4000,56004,3},{3650,56074,131},{3700,56074,3}, {3365,56088,131},{3538,56093,3},{3555,56091,3},{3650,56074,3},{3365,56086,131}, {3363,56089,3},{3360,56091,3},{3358,56094,3},{3358,56098,3},{3357,56096,3}, {3355,56098,3},{3355,56104,3},{3358,56106,3},{3358,56111,3},{3357,56113,3}, {3358,56118,3},{3357,56121,3},{3357,56128,3},{3355,56131,3},{3302,56131,3}, {3000,56156,131},{3007,56164,3},{3010,56164,3},{3015,56166,3},{3022,56164,3}, {3028,56164,3},{3035,56161,3},{3040,56161,3},{3045,56166,3},{3052,56164,3}, {3055,56163,3},{3058,56164,3},{3060,56168,3},{3065,56168,3},{3070,56174,3}, {3077,56176,3},{3082,56179,3},{3090,56179,3},{3095,56183,3},{3097,56179,3}, {3102,56179,3},{3103,56184,3},{3110,56179,3},{3118,56183,3},{3120,56176,3}, {3127,56174,3},{3132,56168,3},{3137,56171,3},{3142,56166,3},{3145,56164,3}, {3148,56161,3},{3152,56164,3},{3155,56158,3},{3160,56153,3},{3170,56154,3}, {3173,56153,3},{3178,56153,3},{3188,56146,3},{3193,56139,3},{3197,56136,3}, {3200,56131,3},{3302,56131,3},{3302,56279,3},{3302,56418,3},{4350,56414,131}, {4357,56411,3},{4380,56409,3},{4392,56401,3},{4397,56396,3},{4403,56384,3}, {4403,56376,3},{4415,56356,3},{4418,56351,3},{4433,56343,3},{4435,56338,3}, {4442,56326,3},{4447,56311,3},{4455,56299,3},{4460,56279,3},{4475,56254,3}, {4480,56258,3},{4490,56258,3},{4493,56261,3},{4503,56259,3},{4507,56256,3}, {4512,56261,3},{4518,56259,3},{4528,56259,3},{4533,56266,3},{4543,56269,3}, {4555,56261,3},{4557,56249,3},{4558,56246,3},{4572,56248,3},{4577,56258,3}, {4583,56259,3},{4592,56266,3},{4595,56279,3},{4598,56283,3},{4598,56289,3}, {4602,56293,3},{4603,56299,3},{4608,56306,3},{4667,56306,3},{4667,56314,3}, {4672,56316,3},{4672,56319,3},{4677,56324,3},{4250,56471,131},{4255,56473,3}, {4265,56466,3},{4270,56441,3},{4272,56433,3},{4275,56429,3},{4287,56428,3}, {4292,56423,3},{4312,56418,3},{4317,56419,3},{4325,56426,3},{4328,56428,3}, {4333,56424,3},{4337,56416,3},{4345,56413,3},{4337,56416,3},{4345,56413,3}, {4352,56414,3},{4038,56393,131},{4038,56398,3},{4040,56399,3},{4045,56398,3}, {4050,56399,3},{4055,56394,3},{4057,56394,3},{4062,56404,3},{4067,56421,3}, {4075,56426,3},{4083,56428,3},{4097,56441,3},{4110,56439,3},{4118,56429,3}, {4123,56426,3},{4142,56433,3},{4143,56436,3},{4143,56449,3},{4145,56454,3}, {4145,56468,3},{4152,56479,3},{4153,56491,3},{4157,56496,3},{4158,56501,3}, {4167,56503,3},{4175,56506,3},{4182,56516,3},{4200,56523,3},{4212,56519,3}, {4225,56496,3},{4235,56493,3},{4247,56473,3},{4248,56471,3},{4252,56473,3}, {4658,56494,131},{4655,56496,3},{4657,56503,3},{4655,56503,3},{4653,56504,3}, {4650,56514,3},{4633,56524,3},{4615,56624,3},{4603,56653,3},{4602,56658,3}, {4603,56664,3},{4600,56671,3},{4602,56676,3},{4602,56684,3},{4600,56686,3}, {4600,56699,3},{4597,56703,3},{4597,56718,3},{4593,56724,3},{4588,56728,3}, {4583,56724,3},{4580,56724,3},{4578,56731,3},{4578,56736,3},{4577,56746,131}, {4568,56756,3},{4565,56753,3},{4560,56758,3},{4557,56753,3},{4550,56756,3}, {4545,56749,3},{4537,56748,3},{4535,56749,3},{4537,56761,3},{4538,56768,3}, {4537,56771,3},{4535,56771,3},{4525,56764,3},{4518,56763,3},{4515,56768,3}, {4512,56769,3},{4510,56776,3},{4248,56756,131},{4250,56613,3},{4252,56473,3}, {3697,56624,131},{3698,56623,3},{3698,56616,3},{3702,56614,3},{3703,56611,3}, {3708,56609,3},{3708,56606,3},{3707,56604,3},{3702,56609,3},{3700,56608,3}, {3705,56598,3},{3710,56598,3},{3720,56589,3},{3725,56589,3},{3727,56584,3}, {3732,56584,3},{3735,56591,3},{3742,56593,3},{3755,56583,3},{3768,56583,3}, {3773,56569,3},{3783,56563,3},{3787,56554,3},{3790,56551,3},{3787,56544,3}, {3788,56541,3},{3790,56539,3},{3795,56541,3},{3797,56534,3},{3802,56524,3}, {3807,56521,3},{3810,56513,3},{3823,56499,3},{3828,56498,3},{3835,56498,3}, {3843,56504,3},{3855,56511,3},{3863,56518,3},{3872,56516,3},{3880,56523,3}, {3883,56523,3},{3892,56509,3},{3893,56503,3},{3897,56493,3},{3895,56488,3}, {3888,56481,3},{3888,56474,3},{3897,56466,3},{3907,56464,3},{3910,56466,3}, {3913,56463,3},{3925,56461,3},{3930,56458,3},{3937,56448,3},{3945,56433,3}, {3953,56426,3},{3955,56421,3},{3972,56398,3},{3980,56396,3},{3987,56391,3}, {3993,56393,3},{4000,56388,3},{4012,56384,3},{4028,56386,3},{4037,56389,3}, {4038,56393,3},{4172,56784,131},{3935,56783,3},{3933,56778,3},{3930,56773,3}, {3920,56778,3},{3915,56769,3},{3912,56769,3},{3905,56776,3},{3900,56778,3}, {3895,56783,3},{3887,56781,3},{3880,56784,3},{3875,56784,3},{3868,56783,3}, {3865,56774,3},{3860,56774,3},{3857,56769,3},{3850,56771,3},{3850,56768,3}, {3845,56761,3},{3843,56761,3},{3838,56759,3},{3837,56754,3},{3828,56751,3}, {3832,56748,3},{3828,56746,3},{3830,56743,3},{3828,56741,3},{3825,56739,3}, {3823,56738,3},{3820,56738,3},{3817,56743,3},{3815,56743,3},{3810,56733,3}, {3808,56738,3},{3808,56739,3},{3805,56731,3},{3803,56733,3},{3795,56731,3}, {3790,56733,3},{3788,56724,3},{3783,56733,3},{3782,56726,3},{3780,56731,3}, {3782,56733,131},{3775,56729,3},{3768,56723,3},{3763,56719,3},{3760,56721,3}, {3753,56728,3},{3748,56728,3},{3747,56724,3},{3745,56709,3},{3743,56703,3}, {3740,56699,3},{3740,56689,3},{3738,56688,3},{3733,56684,3},{3728,56684,3}, {3715,56694,3},{3707,56688,3},{3707,56684,3},{3707,56679,3},{3712,56671,3}, {3722,56646,3},{3722,56639,3},{3722,56634,3},{3718,56629,3},{3712,56624,3}, {3707,56619,3},{3702,56619,3},{3698,56623,3},{3695,56624,3},{3688,56624,3}, {3683,56618,3},{3680,56619,3},{3680,56623,3},{3677,56623,3},{3677,56618,3}, {3673,56616,3},{3667,56619,3},{3658,56614,3},{3657,56611,3},{3658,56606,3}, {3663,56599,3},{3662,56598,3},{3658,56598,3},{3648,56593,3},{3650,56593,131}, {3645,56588,3},{3647,56586,3},{3650,56586,3},{3655,56586,3},{3657,56583,3}, {3655,56579,3},{3652,56579,3},{3648,56581,3},{3645,56581,3},{3637,56583,3}, {3635,56581,3},{3635,56574,3},{3632,56573,3},{3627,56581,3},{3625,56578,3}, {3623,56568,3},{3613,56576,3},{3610,56569,3},{3598,56563,3},{3600,56563,131}, {3592,56569,3},{3590,56569,3},{3592,56563,3},{3590,56559,3},{3587,56558,3}, {3585,56563,3},{3582,56563,3},{3582,56561,3},{3582,56556,3},{3577,56554,3}, {3577,56553,3},{3573,56539,3},{3572,56539,3},{3567,56544,3},{3565,56551,3}, {3563,56549,3},{3560,56541,3},{3558,56541,3},{3557,56543,3},{3553,56543,3}, {3557,56534,3},{3555,56531,3},{3552,56531,3},{3543,56536,3},{3542,56531,3}, {3543,56529,3},{3547,56528,3},{3548,56526,3},{3542,56518,3},{3538,56518,3}, {3542,56523,3},{3538,56526,3},{3535,56524,3},{3532,56526,3},{3528,56518,3}, {3527,56519,3},{3525,56526,3},{3523,56528,3},{3520,56528,3},{3517,56528,3}, {3513,56526,3},{3512,56526,3},{3513,56519,3},{3505,56514,3},{3505,56506,3}, {3500,56506,3},{3502,56504,131},{3493,56509,3},{3487,56506,3},{3485,56504,3}, {3487,56501,3},{3483,56493,3},{3488,56493,3},{3488,56489,3},{3487,56489,3}, {3483,56489,3},{3480,56489,3},{3477,56491,3},{3473,56488,3},{3473,56483,3}, {3477,56486,3},{3480,56484,3},{3480,56481,3},{3472,56481,3},{3470,56488,3}, {3468,56489,3},{3467,56488,3},{3463,56483,3},{3463,56481,3},{3468,56481,3}, {3470,56479,3},{3467,56478,3},{3462,56476,3},{3458,56483,3},{3455,56483,3}, {3452,56478,3},{3445,56478,3},{3442,56478,3},{3438,56471,3},{3432,56468,3}, {3433,56466,3},{3437,56468,3},{3437,56459,3},{3433,56461,3},{3430,56459,3}, {3428,56458,3},{3428,56454,3},{3422,56449,3},{3423,56443,3},{3420,56443,3}, {3418,56453,3},{3417,56454,3},{3415,56453,3},{3417,56444,3},{3415,56439,3}, {3412,56441,3},{3410,56448,3},{3410,56449,3},{3405,56448,3},{3403,56444,3}, {3402,56438,3},{3397,56438,3},{3402,56428,3},{3402,56426,3},{3393,56433,3}, {3385,56429,3},{3380,56436,3},{3378,56433,3},{3380,56421,3},{3377,56421,3}, {3372,56423,3},{3372,56429,3},{3368,56431,3},{3367,56426,3},{3368,56421,3}, {3373,56418,3},{3372,56413,3},{3362,56419,3},{3358,56418,3},{3358,56411,3}, {3352,56416,3},{3345,56411,3},{3345,56414,3},{3345,56416,3},{3352,56419,3}, {3348,56423,3},{3347,56423,3},{3342,56414,3},{3340,56414,3},{3340,56418,3}, {3340,56423,3},{3347,56426,3},{3345,56429,3},{3343,56429,3},{3335,56421,3}, {3327,56424,3},{3330,56429,3},{3328,56431,3},{3327,56429,3},{3323,56426,3}, {3315,56426,3},{3315,56416,3},{3312,56416,3},{3307,56423,3},{3300,56418,3}, {3302,56418,131},{3295,56413,3},{3292,56414,3},{3292,56421,3},{3297,56421,3}, {3298,56423,3},{3298,56426,3},{3297,56426,3},{3288,56426,3},{3285,56421,3}, {3278,56418,3},{3275,56428,3},{3273,56429,3},{3268,56424,3},{3267,56419,3}, {3262,56419,3},{3260,56423,3},{3265,56431,3},{3263,56434,3},{3260,56433,3}, {3257,56428,3},{3252,56434,3},{3250,56434,3},{3250,56431,3},{3252,56428,3}, {3252,56426,3},{3250,56424,3},{3247,56424,3},{3245,56429,3},{3245,56438,3}, {3243,56438,3},{3242,56436,3},{3237,56436,3},{3233,56444,3},{3232,56446,3}, {3230,56438,3},{3225,56438,3},{3223,56438,3},{3225,56431,3},{3223,56428,3}, {3222,56421,3},{3217,56419,3},{3215,56421,3},{3215,56429,3},{3218,56431,3}, {3217,56434,3},{3213,56434,3},{3210,56429,3},{3207,56428,3},{3208,56419,3}, {3207,56421,3},{3203,56428,3},{3202,56428,3},{3197,56418,3},{3193,56416,3}, {3187,56409,3},{3182,56409,3},{3187,56404,3},{3183,56401,3},{3178,56399,3}, {3177,56408,3},{3173,56398,3},{3163,56394,3},{3165,56386,3},{3163,56384,3}, {3160,56386,3},{3160,56393,3},{3158,56394,3},{3153,56384,3},{3148,56384,3}, {3142,56388,3},{3140,56386,3},{3140,56383,3},{3143,56381,3},{3142,56379,3}, {3137,56379,3},{3132,56384,3},{3130,56384,3},{3128,56383,3},{3127,56371,3}, {3125,56371,3},{3120,56376,3},{3113,56373,3},{3107,56379,3},{3105,56378,3}, {3102,56373,3},{3100,56371,3},{3100,56563,3},{3098,56564,3},{3082,56558,3}, {3078,56554,3},{3067,56551,3},{3063,56554,3},{3062,56554,3},{3057,56556,3}, {3053,56561,3},{3047,56568,3},{3042,56569,3},{3033,56574,3},{3030,56573,3}, {3020,56578,3},{3018,56579,3},{3020,56583,3},{3018,56584,3},{4177,56853,131}, {4177,57056,3},{4173,57056,3},{4168,57056,3},{4173,57189,131},{4170,57056,3}, {3910,57054,3},{3905,57048,3},{3897,57054,3},{3892,57049,3},{3890,57049,3}, {3890,57056,3},{3888,57058,3},{3883,57054,3},{3878,57056,3},{3880,57051,3}, {3878,57038,3},{3868,57018,3},{3875,57009,3},{3873,56993,3},{3870,56991,3}, {3865,56993,3},{3853,56994,3},{3852,56989,3},{3847,56984,3},{3845,56976,3}, {3833,56971,3},{3830,56968,3},{3827,56961,3},{3828,56956,3},{3828,56953,3}, {3818,56946,3},{3803,56944,3},{3800,56941,3},{3800,56934,3},{3797,56931,3}, {3802,56924,3},{3802,56918,3},{3807,56909,3},{3808,56908,3},{3813,56908,3}, {3820,56899,3},{3818,56898,3},{3815,56903,3},{3813,56903,3},{3810,56896,3}, {3813,56889,3},{3807,56893,3},{3803,56884,3},{3793,56884,3},{3792,56878,3}, {3787,56876,3},{3785,56873,3},{3785,56869,3},{3790,56871,3},{3790,56864,3}, {3790,56861,3},{3797,56856,3},{3798,56853,3},{3793,56844,3},{3792,56834,3}, {3782,56829,3},{3778,56824,3},{3780,56821,3},{3783,56819,3},{3785,56816,3}, {3793,56796,3},{3793,56789,3},{3792,56784,3},{3792,56779,3},{3797,56776,3}, {3793,56774,3},{3787,56778,3},{3783,56773,3},{3783,56768,3},{3788,56769,3}, {3790,56768,3},{3787,56758,3},{3788,56753,3},{3793,56746,3},{3792,56743,3}, {3782,56746,3},{3778,56741,3},{3782,56733,3},{3780,56731,3},{3842,57276,131}, {3847,57274,3},{3850,57269,3},{3853,57266,3},{3858,57253,3},{3875,57248,3}, {3872,57233,3},{3868,57231,3},{3867,57224,3},{3862,57221,3},{3862,57209,3}, {3860,57206,3},{3865,57199,3},{3867,57189,3},{3870,57186,3},{3868,57176,3}, {3863,57171,3},{3865,57159,3},{3868,57158,3},{3872,57153,3},{3877,57149,3}, {3878,57141,3},{3878,57128,3},{3882,57116,3},{3890,57113,3},{3895,57108,3}, {3900,57106,3},{3905,57096,3},{3912,57091,3},{3907,57076,3},{3908,57071,3}, {3913,57063,3},{3908,57053,3},{3753,57339,131},{3755,57338,3},{3753,57333,3}, {3757,57323,3},{3760,57323,3},{3763,57318,3},{3768,57308,3},{3777,57304,3}, {3782,57296,3},{3790,57294,3},{3793,57288,3},{3798,57289,3},{3803,57283,3}, {3817,57273,3},{3820,57276,3},{3823,57276,3},{3825,57279,3},{3833,57279,3}, {3837,57276,3},{3842,57278,3},{3753,57339,131},{3727,57299,3},{3713,57266,3}, {3712,57264,3},{3705,57264,3},{3698,57251,3},{3690,57249,3},{3687,57239,3}, {3685,57229,3},{3678,57224,3},{3675,57223,3},{3673,57213,3},{3670,57201,3}, {3668,57196,3},{3667,57184,3},{3663,57174,3},{3660,57169,3},{3650,56594,131}, {3650,56731,3},{3657,56733,3},{3668,56729,3},{3667,56751,3},{3663,56753,3}, {3665,56816,3},{3665,56878,3},{3663,56879,3},{3667,56884,3},{3662,56984,3}, {3663,57021,3},{3662,57059,3},{3660,57126,3},{3658,57164,3},{3660,57168,3}, {3660,57339,3},{3660,57341,3},{3662,57344,3},{3660,57371,3},{3662,57371,131}, {3653,57364,3},{3648,57366,3},{3640,57361,3},{3635,57364,3},{3637,57354,3}, {3635,57353,3},{3630,57346,3},{3613,57333,3},{3613,57331,3},{3610,57329,3}, {3610,57326,3},{3613,57323,3},{3615,57321,3},{3617,57316,3},{3613,57309,3}, {3612,57301,3},{3607,57293,3},{3600,57288,3},{3597,57279,3},{3598,57276,3}, {3603,57278,3},{3607,57273,3},{3600,57259,3},{3593,57256,3},{3595,57249,3}, {3595,57246,3},{3592,57244,3},{3588,57246,3},{3578,57238,3},{3580,57229,3}, {3578,57228,3},{3577,57219,3},{3573,57216,3},{3572,57211,3},{3567,57206,3}, {3567,57201,3},{3563,57199,3},{3562,57191,3},{3557,57186,3},{3555,57179,3}, {3558,57176,3},{3557,57173,3},{3557,57163,3},{3553,57154,3},{3552,57148,3}, {3547,57144,3},{3545,57139,3},{3542,57134,3},{3528,57131,3},{3527,57128,3}, {3525,57118,3},{3527,57114,3},{3527,57111,3},{3523,57108,3},{3498,57104,3}, {3500,56506,131},{3500,56718,3},{3500,56974,131},{3500,56853,3},{3502,56718,3}, {3500,56718,3},{3500,56974,131},{3498,57104,3},{3500,56718,131},{3493,56723,3}, {3490,56728,3},{3190,56688,3},{3038,56696,3},{3027,56786,131},{3030,56786,3}, {3030,56789,3},{3032,56786,3},{3033,56786,3},{3035,56789,3},{3040,56793,3}, {3043,56799,3},{3047,56794,3},{3053,56791,3},{3065,56796,3},{3068,56794,3}, {3073,56784,3},{3078,56781,3},{3087,56773,3},{3095,56776,3},{3100,56776,3}, {3100,57036,3},{3098,57036,131},{3102,57036,3},{3107,57036,3},{3117,57029,3}, {3118,57026,3},{3127,57024,3},{3145,57031,3},{3148,57029,3},{3153,57033,3}, {3163,57029,3},{3168,57024,3},{3183,57023,3},{3190,57024,3},{3200,57029,3}, {3213,57031,3},{3218,57034,3},{3220,57039,3},{3222,57038,3},{3223,57044,3}, {3225,57044,3},{3227,57046,3},{3233,57036,3},{3235,57036,3},{3238,57039,3}, {3238,57038,3},{3242,57039,3},{3247,57038,3},{3252,57036,3},{3258,57029,3}, {3263,57028,3},{3265,57026,3},{3273,57024,3},{3275,57023,3},{3278,57023,3}, {3282,57019,3},{3285,57019,3},{3292,57016,3},{3400,56996,3},{3500,56974,3}, {3072,57384,131},{3070,57381,3},{3072,57374,3},{3073,57373,3},{3073,57371,3}, {3073,57368,3},{3075,57364,3},{3077,57363,3},{3077,57358,3},{3078,57356,3}, {3080,57348,3},{3082,57344,3},{3082,57339,3},{3078,57338,3},{3078,57334,3}, {3072,57333,3},{3065,57331,3},{3057,57334,3},{3042,57331,3},{3037,57331,3}, {3037,57328,3},{3037,57316,3},{3043,57314,3},{3048,57316,3},{3053,57311,3}, {3057,57313,3},{3072,57049,3},{3073,57049,3},{3075,57044,3},{3088,57043,3}, {3100,57034,3},{4063,57484,131},{4198,57484,3},{4065,57484,131},{4062,57479,3}, {4062,57473,3},{4058,57469,3},{4047,57476,3},{4040,57473,3},{4037,57476,3}, {4032,57476,3},{4028,57474,3},{4025,57471,3},{4012,57464,3},{4008,57463,3}, {4000,57463,3},{3995,57459,3},{3992,57461,3},{3992,57456,3},{3987,57456,3}, {3978,57453,3},{3977,57449,3},{3972,57453,3},{3962,57448,3},{3960,57443,3}, {3955,57434,3},{3945,57424,3},{3940,57413,3},{3938,57408,3},{3935,57399,3}, {3937,57396,3},{3940,57393,3},{3940,57389,3},{3938,57388,3},{3933,57381,3}, {3928,57379,3},{3927,57368,3},{3923,57366,3},{3922,57363,3},{3917,57361,3}, {3910,57361,3},{3907,57354,3},{3902,57359,3},{3897,57358,3},{3893,57359,3}, {3895,57354,3},{3893,57353,3},{3890,57349,3},{3887,57346,3},{3888,57343,3}, {3893,57346,3},{3898,57343,3},{3902,57334,3},{3893,57324,3},{3883,57321,3}, {3877,57314,3},{3872,57318,3},{3862,57318,3},{3858,57316,3},{3858,57309,3}, {3845,57304,3},{3840,57281,3},{3842,57276,3},{3500,57226,131},{3493,57223,3}, {3493,57221,3},{3487,57213,3},{3480,57209,3},{3480,57206,3},{3470,57201,3}, {3463,57211,3},{3460,57218,3},{3462,57219,3},{3458,57219,3},{3453,57228,3}, {3448,57233,3},{3448,57248,3},{3435,57254,3},{3427,57261,3},{3417,57263,3}, {3412,57271,3},{3403,57276,3},{3395,57279,3},{3395,57284,3},{3388,57291,3}, {3382,57306,3},{3375,57311,3},{3362,57318,3},{3357,57329,3},{3350,57338,3}, {3347,57343,3},{3342,57344,3},{3342,57343,3},{3338,57344,3},{3337,57343,3}, {3332,57348,3},{3332,57351,3},{3330,57351,3},{3327,57353,3},{3325,57353,3}, {3322,57356,3},{3322,57359,3},{3315,57359,3},{3312,57366,3},{3310,57374,3}, {3305,57381,3},{3305,57383,3},{3302,57388,3},{3295,57386,3},{3275,57396,3}, {3270,57394,3},{3267,57396,3},{3262,57396,3},{3258,57401,3},{3257,57408,3}, {3253,57409,3},{3253,57413,3},{3250,57413,3},{3247,57418,3},{3243,57416,3}, {3235,57419,3},{3232,57423,3},{3228,57423,3},{3225,57421,3},{3223,57423,3}, {3220,57421,3},{3213,57423,3},{3208,57429,3},{3207,57439,3},{3203,57443,3}, {3203,57446,3},{3498,57103,131},{3500,57226,3},{3508,57258,3},{3507,57261,3}, {3510,57266,3},{3513,57268,3},{3517,57284,3},{3518,57288,3},{3517,57293,3}, {3520,57294,3},{3522,57298,3},{3520,57299,3},{3520,57303,3},{3520,57308,3}, {3520,57339,3},{3515,57431,3},{3513,57433,3},{3508,57431,3},{3505,57433,3}, {3512,57443,3},{3505,57448,3},{3497,57458,3},{3483,57456,3},{3480,57569,3}, {3385,57681,3},{3662,57369,131},{3660,57371,3},{3657,57421,3},{3655,57511,3}, {3655,57754,3},{3655,57953,3},{3933,57763,131},{3915,57753,3},{3945,57703,3}, {3942,57701,3},{3933,57699,3},{3927,57694,3},{3917,57694,3},{3907,57684,3}, {3902,57681,3},{3897,57676,3},{3897,57673,3},{3893,57669,3},{3892,57666,3}, {3893,57661,3},{3878,57649,3},{3885,57636,3},{3873,57628,3},{3867,57626,3}, {3863,57621,3},{3852,57616,3},{3842,57608,3},{3848,57584,3},{3850,57586,3}, {3857,57581,3},{3858,57571,3},{3852,57569,3},{3850,57568,3},{3843,57566,3}, {3840,57564,3},{3837,57563,3},{3837,57559,3},{3832,57556,3},{3827,57556,3}, {3817,57544,3},{3810,57543,3},{3802,57538,3},{3783,57516,3},{3772,57511,3}, {3768,57508,3},{3767,57508,3},{3763,57514,3},{3757,57506,3},{3755,57506,3}, {3753,57509,3},{3743,57491,3},{3743,57488,3},{3747,57488,3},{3747,57486,3}, {3745,57479,3},{3738,57461,3},{3740,57458,3},{3742,57456,3},{3743,57451,3}, {3738,57448,3},{3735,57449,3},{3732,57446,3},{3728,57441,3},{3732,57436,3}, {3728,57434,3},{3728,57421,3},{3725,57414,3},{3733,57399,3},{3727,57394,3}, {3727,57388,3},{3720,57379,3},{3722,57371,3},{3723,57364,3},{3728,57361,3}, {3728,57353,3},{3733,57349,3},{3737,57343,3},{3743,57343,3},{3747,57338,3}, {3752,57341,3},{3753,57339,3},{3972,57588,131},{3920,57588,3},{3930,57601,3}, {3930,57608,3},{3935,57611,3},{3942,57623,3},{3947,57626,3},{3948,57631,3}, {3945,57638,3},{3945,57641,3},{3955,57651,3},{3957,57656,3},{3958,57654,3}, {3963,57658,3},{3962,57663,3},{3960,57661,3},{3957,57661,3},{3953,57669,3}, {3952,57678,3},{3953,57689,3},{3955,57694,3},{3958,57691,3},{3960,57696,3}, {3962,57693,3},{3965,57701,3},{3963,57708,3},{3968,57714,3},{3970,57718,3}, {3970,57723,3},{3965,57731,3},{3960,57736,3},{3960,57741,3},{3960,57744,3}, {3960,57748,3},{3962,57749,3},{3960,57753,3},{3957,57753,3},{3955,57748,3}, {3952,57751,3},{3953,57753,3},{3953,57754,3},{3950,57753,3},{3950,57759,3}, {3945,57756,3},{3942,57763,3},{3935,57761,3},{3933,57763,3},{3972,57588,131}, {3972,57484,3},{4063,57484,3},{4227,57559,131},{4200,57559,3},{4200,57781,3}, {4200,58003,3},{4198,58003,3},{4195,58009,3},{4187,58011,3},{4187,58019,3}, {4183,58028,3},{4180,58026,3},{4178,58031,3},{4173,58031,3},{4172,58029,3}, {4165,58031,3},{4162,58029,3},{4148,58038,3},{4148,58044,3},{4145,58048,3}, {4143,58061,3},{4138,58066,3},{4135,58066,3},{4098,58146,3},{4070,58134,3}, {4067,58128,3},{4063,58118,3},{4058,58116,3},{4055,58113,3},{4050,58111,3}, {4205,58188,131},{4130,58181,3},{4122,58188,3},{4110,58164,3},{4102,58171,3}, {4275,58211,131},{4208,58184,3},{4205,58188,3},{4203,58254,3},{4200,58256,3}, {4200,58258,3},{4200,58256,131},{4200,58259,3},{4203,58261,3},{4203,58274,3}, {4202,58278,3},{4203,58279,3},{4203,58356,3},{4200,58356,3},{4142,58358,3}, {4140,58353,3},{4132,58351,3},{4202,58356,131},{4202,58398,3},{4190,58398,3}, {4188,58403,3},{4178,58403,3},{4175,58409,3},{4168,58416,3},{4165,58423,3}, {4152,58423,3},{4502,58201,131},{4493,58203,3},{4485,58198,3},{4478,58203,3}, {4462,58198,3},{4445,58208,3},{4437,58203,3},{4425,58204,3},{4420,58198,3}, {4405,58193,3},{4402,58196,3},{4393,58196,3},{4387,58199,3},{4383,58198,3}, {4377,58199,3},{4365,58194,3},{4360,58193,3},{4357,58196,3},{4360,58199,3}, {4362,58201,3},{4363,58203,3},{4362,58206,3},{4360,58208,3},{4353,58213,3}, {4285,58209,3},{4282,58208,3},{4275,58211,3},{4273,58291,131},{4275,58211,3}, {4288,58454,131},{4288,58446,3},{4288,58441,3},{4285,58434,3},{4282,58428,3}, {4282,58423,3},{4280,58419,3},{4275,58418,3},{4275,58413,3},{4270,58406,3}, {4273,58289,3},{4530,58428,131},{4357,58441,3},{4340,58438,3},{4330,58446,3}, {4325,58454,3},{4315,58453,3},{4308,58463,3},{4502,58386,131},{4502,58384,3}, {4498,58383,3},{4490,58386,3},{4475,58373,3},{4458,58381,3},{4457,58376,3}, {4452,58378,3},{4443,58368,3},{4440,58356,3},{4435,58351,3},{4435,58339,3}, {4430,58333,3},{4425,58331,3},{4410,58331,3},{4400,58324,3},{4397,58326,3}, {4388,58318,3},{4378,58314,3},{4372,58306,3},{4360,58303,3},{4358,58298,3}, {4355,58296,3},{4330,58296,3},{4325,58293,3},{4300,58289,3},{4297,58283,3}, {4287,58281,3},{4283,58281,3},{4278,58284,3},{4277,58288,3},{4273,58289,3}, {3972,57588,131},{3972,57766,3},{3972,57958,3},{3802,57999,131},{3800,57974,3}, {3797,57971,3},{3797,57969,3},{3972,57958,131},{3980,57964,3},{3985,57973,3}, {3985,57988,3},{3982,57994,3},{3845,58033,131},{3845,57964,3},{3903,57963,3}, {3972,57958,3},{3933,57763,131},{3932,57769,3},{3930,57774,3},{3930,57781,3}, {3927,57783,3},{3923,57791,3},{3920,57789,3},{3917,57786,3},{3913,57784,3}, {3907,57791,3},{3907,57803,3},{3905,57809,3},{3898,57814,3},{3897,57823,3}, {3893,57824,3},{4135,58066,131},{4132,58058,3},{4125,58049,3},{4117,58048,3}, {4110,58038,3},{4108,58038,3},{4103,58033,3},{4100,58024,3},{4098,58023,3}, {4088,58031,3},{4085,58029,3},{4085,58026,3},{4078,58024,3},{4078,58023,3}, {4078,58019,3},{4075,58018,3},{4073,58018,3},{4070,58016,3},{4067,58018,3}, {4065,58016,3},{4058,58018,3},{4057,58019,3},{4055,58028,3},{4045,58029,3}, {4042,58031,3},{4040,58034,3},{4040,58039,3},{4033,58043,3},{4017,58064,3}, {4013,58061,3},{4012,58054,3},{4008,58048,3},{4007,58043,3},{4002,58038,3}, {4002,58033,3},{3878,57833,131},{3890,57846,3},{3900,57833,3},{3895,57824,3}, {3890,57829,3},{61703,14463,128},{61706,14462,0},{61699,14480,0},{61704,14493,0}, {61706,14495,0},{61711,14497,0},{61714,14502,0},{61723,14508,0},{61734,14503,0}, {61736,14498,0},{61743,14495,0},{61748,14492,0},{61749,14488,0},{61748,14485,0}, {61749,14482,0},{61749,14478,0},{61746,14475,0},{61743,14475,0},{61741,14470,0}, {61736,14462,0},{61736,14455,0},{61729,14447,0},{61726,14445,0},{61726,14435,0}, {61723,14432,0},{61721,14433,0},{61723,14438,0},{61719,14442,0},{61719,14445,0}, {61723,14458,0},{61723,14465,0},{61718,14467,0},{61714,14467,0},{61714,14463,0}, {61716,14465,0},{61714,14462,0},{61709,14457,0},{61708,14462,0},{61706,14457,0}, {61708,14443,0},{61704,14433,0},{61694,14422,0},{61684,14402,0},{61666,14387,0}, {61664,14372,0},{61658,14368,0},{61649,14355,0},{61651,14352,0},{61656,14347,0}, {61659,14338,0},{61659,14322,0},{61668,14312,0},{61676,14280,0},{61696,14250,0}, {61696,14242,0},{61698,14233,0},{61698,14228,0},{61694,14222,0},{61696,14210,0}, {61698,14203,0},{61706,14188,0},{61706,14180,0},{61708,14172,0},{61706,14167,0}, {61704,14162,0},{61694,14162,0},{61693,14155,0},{61691,14152,0},{61694,14147,0}, {61698,14142,0},{61696,14135,0},{61699,14133,0},{61704,14137,0},{61711,14130,0}, {61724,14108,0},{61726,14103,0},{61729,14095,0},{61731,14057,0},{61733,14048,0}, {61739,14043,0},{61741,14037,0},{61764,14020,0},{61776,14010,0},{61783,14005,0}, {61786,13995,0},{61789,13990,0},{61801,13980,0},{61806,13973,0},{61816,13968,0}, {61819,13972,0},{61824,13973,0},{61828,13970,0},{61831,13970,0},{61834,13965,0}, {61838,13963,0},{61841,13965,0},{61849,13980,0},{61859,13980,0},{61891,13970,0}, {61899,13968,0},{61918,13960,0},{61934,13948,0},{61953,13928,0},{61978,13890,0}, {61981,13890,0},{61978,13897,0},{61968,13912,0},{61944,13943,0},{61921,13960,0}, {61911,13965,0},{61898,13975,0},{61899,13975,0},{61921,13963,0},{61944,13948,0}, {61946,13942,0},{61951,13938,0},{61959,13928,0},{61976,13903,0},{61979,13903,0}, {61986,13890,0},{61983,13888,0},{61983,13883,0},{61979,13887,0},{61983,13875,0}, {61979,13860,0},{61971,13852,0},{61971,13828,0},{61968,13815,0},{61971,13810,0}, {61976,13810,0},{61983,13813,0},{61988,13828,0},{61996,13835,0},{62003,13843,0}, {62024,13845,0},{62029,13847,0},{62038,13848,0},{62051,13847,0},{62058,13850,0}, {62054,13852,0},{62058,13855,0},{62061,13853,0},{62088,13828,0},{62089,13823,0}, {62106,13820,0},{62109,13813,0},{62114,13813,0},{62121,13808,0},{62119,13805,0}, {62109,13800,0},{62099,13798,0},{62084,13787,0},{62078,13785,0},{62068,13787,0}, {62029,13773,0},{62026,13775,0},{62023,13773,0},{62018,13767,0},{62018,13762,0}, {62024,13745,0},{62023,13735,0},{62018,13728,0},{62018,13720,0},{62009,13715,0}, {62013,13703,0},{62009,13695,0},{62006,13687,0},{62006,13683,0},{62014,13680,0}, {62018,13687,0},{62024,13693,0},{62028,13695,0},{62033,13693,0},{62039,13695,0}, {62044,13698,0},{62043,13707,0},{62044,13713,0},{62048,13718,0},{62044,13722,0}, {62043,13735,0},{62043,13740,0},{62046,13743,0},{62076,13748,0},{62083,13747,0}, {62093,13748,0},{62093,13745,0},{62089,13742,0},{62091,13740,0},{62094,13742,0}, {62099,13747,0},{62108,13748,0},{62114,13748,0},{62119,13745,0},{62123,13743,0}, {62123,13745,0},{62124,13752,0},{62131,13753,0},{62138,13753,0},{62143,13758,0}, {62149,13760,0},{62158,13770,0},{62166,13775,0},{62168,13780,0},{62174,13783,0}, {62173,13790,0},{62179,13790,0},{62181,13795,0},{62196,13787,0},{62203,13785,0}, {62206,13782,0},{62213,13780,0},{62218,13783,0},{62221,13793,0},{62226,13800,0}, {62229,13802,0},{62239,13793,0},{62258,13788,0},{62263,13790,0},{62266,13785,0}, {62274,13783,0},{62276,13780,0},{62281,13782,0},{62284,13777,0},{62284,13773,0}, {62278,13775,0},{62269,13773,0},{62268,13773,0},{62264,13778,0},{62249,13778,0}, {62243,13773,0},{62238,13777,0},{62236,13773,0},{62238,13770,0},{62241,13765,0}, {62238,13760,0},{62228,13753,0},{62223,13745,0},{62221,13742,0},{62213,13742,0}, {62203,13735,0},{62193,13735,0},{62188,13730,0},{62173,13720,0},{62166,13710,0}, {62164,13697,0},{62166,13697,0},{62168,13695,0},{62169,13692,0},{62163,13687,0}, {62163,13693,0},{62159,13690,0},{62156,13680,0},{62153,13675,0},{62151,13670,0}, {62144,13657,0},{62139,13652,0},{62134,13642,0},{62126,13633,0},{62111,13625,0}, {62103,13617,0},{62101,13610,0},{62091,13610,0},{62084,13607,0},{62083,13605,0}, {62086,13605,0},{62088,13603,0},{62083,13597,0},{62083,13593,0},{62078,13592,0}, {62071,13590,0},{62071,13585,0},{62061,13587,0},{62056,13580,0},{62054,13580,0}, {62054,13585,0},{62058,13595,0},{62063,13597,0},{62059,13600,0},{62049,13595,0}, {62039,13597,0},{62038,13595,0},{62038,13592,0},{62043,13587,0},{62043,13583,0}, {62048,13582,0},{62049,13577,0},{62048,13570,0},{62046,13567,0},{62039,13567,0}, {62039,13560,0},{62051,13553,0},{62066,13538,0},{62066,13530,0},{62069,13532,0}, {62073,13530,0},{62078,13523,0},{62079,13518,0},{62078,13515,0},{62076,13513,0}, {62076,13510,0},{62084,13512,0},{62086,13515,0},{62091,13518,0},{62086,13520,0}, {62084,13522,0},{62084,13528,0},{62079,13528,0},{62078,13533,0},{62073,13537,0}, {62073,13548,0},{62074,13550,0},{62076,13543,0},{62081,13542,0},{62083,13542,0}, {62076,13540,0},{62076,13538,0},{62083,13537,0},{62086,13537,0},{62093,13533,0}, {62096,13535,0},{62116,13528,0},{62119,13522,0},{62124,13525,0},{62126,13525,0}, {62143,13520,0},{62149,13513,0},{62153,13512,0},{62156,13505,0},{62161,13500,0}, {62173,13480,0},{62179,13483,0},{62186,13483,0},{62203,13478,0},{62213,13463,0}, {62213,13468,0},{62216,13468,0},{62221,13457,0},{62219,13455,0},{62214,13460,0}, {62213,13460,0},{62214,13455,0},{62221,13447,0},{62221,13435,0},{62226,13432,0}, {62228,13430,0},{62233,13428,0},{62228,13425,0},{62221,13432,0},{62218,13432,0}, {62218,13428,0},{62223,13423,0},{62231,13420,0},{62231,13417,0},{62233,13413,0}, {62236,13413,0},{62238,13415,0},{62243,13415,0},{62243,13410,0},{62244,13408,0}, {62244,13405,0},{62251,13410,0},{62254,13410,0},{62258,13408,0},{62261,13402,0}, {62264,13400,0},{62264,13412,0},{62259,13418,0},{62264,13422,0},{62271,13425,0}, {62274,13420,0},{62279,13420,0},{62283,13418,0},{62291,13407,0},{62289,13398,0}, {62286,13395,0},{62288,13390,0},{62284,13387,0},{62284,13382,0},{62291,13380,0}, {62298,13383,0},{62298,13385,0},{62298,13387,0},{62296,13388,0},{62298,13390,0}, {62308,13387,0},{62314,13378,0},{62313,13373,0},{62314,13372,0},{62318,13372,0}, {62319,13363,0},{62323,13363,0},{62324,13362,0},{62329,13358,0},{62328,13355,0}, {62324,13355,0},{62323,13353,0},{62323,13348,0},{62328,13343,0},{62324,13338,0}, {62319,13345,0},{62318,13345,0},{62319,13340,0},{62318,13337,0},{62321,13328,0}, {62318,13323,0},{62321,13313,0},{62318,13310,0},{62324,13308,0},{62329,13302,0}, {62329,13297,0},{62333,13295,0},{62343,13278,0},{62344,13273,0},{62344,13265,0}, {62346,13260,0},{62344,13245,0},{62341,13243,0},{62336,13245,0},{62338,13233,0}, {62336,13223,0},{62336,13215,0},{62339,13213,0},{62346,13208,0},{62351,13195,0}, {62361,13183,0},{62379,13148,0},{62381,13137,0},{62386,13128,0},{62388,13120,0}, {62388,13115,0},{62381,13105,0},{62373,13083,0},{62374,13077,0},{62376,13060,0}, {62374,13052,0},{62376,13040,0},{62379,13025,0},{62378,12997,0},{62374,12980,0}, {62374,12970,0},{62371,12957,0},{62371,12943,0},{62369,12937,0},{62368,12923,0}, {62369,12912,0},{62354,12870,0},{62348,12865,0},{62336,12827,0},{62331,12818,0}, {62323,12785,0},{62318,12770,0},{62316,12762,0},{62311,12750,0},{62311,12742,0}, {62306,12727,0},{62306,12715,0},{62304,12710,0},{62303,12698,0},{62304,12680,0}, {62301,12672,0},{62301,12660,0},{62301,12655,0},{62304,12648,0},{62304,12638,0}, {62306,12633,0},{62308,12623,0},{62309,12618,0},{62308,12612,0},{62304,12605,0}, {62304,12598,0},{62294,12573,0},{62291,12568,0},{62284,12553,0},{62281,12550,0}, {62278,12543,0},{62273,12538,0},{62269,12525,0},{62264,12512,0},{62258,12493,0}, {62251,12483,0},{62248,12475,0},{62243,12467,0},{62241,12435,0},{62231,12415,0}, {62223,12408,0},{62208,12405,0},{62198,12398,0},{62176,12393,0},{62173,12385,0}, {62168,12383,0},{62163,12375,0},{62156,12372,0},{62153,12372,0},{62153,12368,0}, {62146,12363,0},{62143,12357,0},{62138,12350,0},{62138,12348,0},{62139,12347,0}, {62143,12345,0},{62144,12337,0},{62143,12333,0},{62138,12330,0},{62133,12320,0}, {62133,12317,0},{62134,12315,0},{62136,12312,0},{62138,12312,0},{62141,12313,0}, {62143,12312,0},{62146,12307,0},{62148,12302,0},{62144,12295,0},{62143,12282,0}, {62143,12277,0},{62146,12273,0},{62144,12272,0},{62144,12260,0},{62143,12258,0}, {62138,12258,0},{62138,12257,0},{62141,12243,0},{62141,12235,0},{62138,12225,0}, {62133,12225,0},{62133,12223,0},{62133,12220,0},{62131,12217,0},{62133,12213,0}, {62134,12210,0},{62138,12208,0},{62149,12198,0},{62149,12192,0},{62146,12187,0}, {62144,12178,0},{62148,12168,0},{62146,12165,0},{62151,12153,0},{62151,12135,0}, {62153,12130,0},{62151,12127,0},{62149,12117,0},{62148,12113,0},{62148,12112,0}, {62153,12112,0},{62148,12102,0},{62149,12090,0},{62148,12085,0},{62146,12083,0}, {62144,12067,0},{62146,12063,0},{62146,12057,0},{62136,12038,0},{62141,12025,0}, {62141,12020,0},{62138,12012,0},{62141,12008,0},{62144,12008,0},{62146,12007,0}, {62143,12002,0},{62138,11993,0},{62138,11987,0},{62136,11983,0},{62128,11973,0}, {62124,11965,0},{62119,11960,0},{62116,11958,0},{62106,11950,0},{62099,11950,0}, {62098,11955,0},{62096,11955,0},{62093,11950,0},{62093,11947,0},{62096,11947,0}, {62096,11945,0},{62096,11940,0},{62094,11938,0},{62091,11940,0},{62088,11940,0}, {62086,11937,0},{62088,11933,0},{62088,11930,0},{62086,11928,0},{62083,11930,0}, {62079,11925,0},{62081,11923,0},{62084,11920,0},{62088,11900,0},{62086,11890,0}, {62083,11890,0},{62083,11883,0},{62079,11875,0},{62076,11875,0},{62073,11877,0}, {62069,11873,0},{62068,11872,0},{62066,11867,0},{62064,11865,0},{62063,11853,0}, {62056,11843,0},{62049,11838,0},{62044,11842,0},{62043,11840,0},{62043,11835,0}, {62039,11818,0},{62038,11817,0},{62034,11820,0},{62031,11818,0},{62034,11810,0}, {62031,11803,0},{62031,11800,0},{62033,11797,0},{62038,11797,0},{62038,11793,0}, {62033,11792,0},{62029,11785,0},{62026,11788,0},{62026,11793,0},{62024,11797,0}, {62023,11797,0},{62021,11795,0},{62021,11790,0},{62026,11780,0},{62029,11767,0}, {62029,11765,0},{62021,11760,0},{62021,11758,0},{62026,11753,0},{62024,11747,0}, {62024,11745,0},{62028,11742,0},{62029,11735,0},{62033,11737,0},{62031,11742,0}, {62033,11743,0},{62034,11743,0},{62036,11740,0},{62034,11733,0},{62029,11730,0}, {62029,11717,0},{62026,11712,0},{62029,11708,0},{62029,11695,0},{62033,11698,0}, {62034,11697,0},{62034,11692,0},{62029,11690,0},{62028,11687,0},{62031,11677,0}, {62034,11675,0},{62033,11670,0},{62029,11670,0},{62028,11662,0},{62033,11653,0}, {62033,11647,0},{62034,11643,0},{62038,11638,0},{62039,11648,0},{62041,11648,0}, {62043,11647,0},{62044,11642,0},{62046,11638,0},{62046,11637,0},{62041,11637,0}, {62039,11633,0},{62046,11615,0},{62049,11600,0},{62056,11598,0},{62058,11593,0}, {62063,11593,0},{62069,11583,0},{62076,11578,0},{62083,11568,0},{62088,11565,0}, {62093,11555,0},{62094,11545,0},{62099,11538,0},{62103,11527,0},{62103,11517,0}, {62103,11515,0},{62098,11512,0},{62103,11507,0},{62108,11498,0},{62119,11500,0}, {62126,11495,0},{62149,11495,0},{62156,11498,0},{62159,11495,0},{62164,11495,0}, {62171,11498,0},{62183,11500,0},{62179,11505,0},{62173,11510,0},{62173,11513,0}, {62171,11523,0},{62173,11538,0},{62176,11543,0},{62183,11547,0},{62184,11548,0}, {62194,11558,0},{62203,11560,0},{62203,11567,0},{62206,11570,0},{62209,11568,0}, {62206,11565,0},{62208,11563,0},{62216,11565,0},{62223,11567,0},{62246,11560,0}, {62264,11560,0},{62269,11558,0},{62274,11558,0},{62281,11565,0},{62281,11568,0}, {62279,11568,0},{62273,11563,0},{62266,11565,0},{62259,11570,0},{62259,11572,0}, {62261,11572,0},{62273,11568,0},{62274,11570,0},{62273,11573,0},{62274,11575,0}, {62278,11575,0},{62284,11570,0},{62296,11572,0},{62301,11570,0},{62304,11572,0}, {62309,11568,0},{62313,11572,0},{62319,11575,0},{62331,11572,0},{62346,11573,0}, {62364,11567,0},{62381,11558,0},{62404,11540,0},{62416,11538,0},{62443,11525,0}, {62456,11515,0},{62469,11512,0},{62481,11505,0},{62484,11503,0},{62496,11500,0}, {62508,11500,0},{62514,11495,0},{62521,11497,0},{62531,11492,0},{62553,11493,0}, {62564,11492,0},{62586,11497,0},{62594,11492,0},{62601,11492,0},{62604,11488,0}, {62609,11490,0},{62616,11487,0},{62633,11475,0},{62641,11465,0},{62648,11460,0}, {62658,11457,0},{62663,11458,0},{62674,11457,0},{62684,11450,0},{62711,11430,0}, {62716,11422,0},{62728,11413,0},{62736,11413,0},{62753,11407,0},{62756,11408,0}, {62761,11413,0},{62768,11412,0},{62786,11408,0},{62806,11400,0},{62821,11387,0}, {62836,11382,0},{62858,11365,0},{62869,11357,0},{62893,11332,0},{62896,11328,0}, {62906,11327,0},{62921,11315,0},{62923,11315,0},{62921,11322,0},{62916,11325,0}, {62918,11327,0},{62923,11325,0},{62924,11327,0},{62934,11327,0},{62936,11328,0}, {62933,11332,0},{62921,11330,0},{62911,11332,0},{62906,11333,0},{62916,11335,0}, {62919,11337,0},{62929,11337,0},{62936,11335,0},{62936,11337,0},{62934,11338,0}, {62923,11342,0},{62921,11343,0},{62894,11348,0},{62903,11352,0},{62911,11350,0}, {62909,11352,0},{62903,11355,0},{62899,11353,0},{62894,11355,0},{62889,11353,0}, {62879,11355,0},{62878,11357,0},{62879,11358,0},{62888,11360,0},{62889,11362,0}, {62888,11363,0},{62878,11363,0},{62878,11365,0},{62873,11367,0},{62874,11370,0}, {62878,11372,0},{62876,11375,0},{62879,11377,0},{62881,11382,0},{62884,11380,0}, {62888,11385,0},{62896,11383,0},{62903,11385,0},{62908,11383,0},{62913,11378,0}, {62918,11367,0},{62931,11355,0},{62941,11355,0},{62946,11350,0},{62953,11350,0}, {62958,11347,0},{62961,11348,0},{62969,11347,0},{62971,11345,0},{62969,11343,0}, {62961,11343,0},{62964,11340,0},{62969,11340,0},{62978,11342,0},{62986,11348,0}, {62984,11350,0},{62976,11352,0},{62971,11358,0},{62964,11362,0},{62958,11372,0}, {62953,11372,0},{62948,11375,0},{62944,11372,0},{62939,11372,0},{62931,11368,0}, {62923,11370,0},{62919,11372,0},{62919,11378,0},{62929,11385,0},{62933,11387,0}, {62943,11385,0},{62941,11388,0},{62928,11390,0},{62924,11393,0},{62919,11392,0}, {62916,11395,0},{62904,11397,0},{62894,11405,0},{62893,11407,0},{62898,11413,0}, {62901,11418,0},{62906,11420,0},{62921,11417,0},{62923,11418,0},{62921,11423,0}, {62923,11423,0},{62928,11422,0},{62934,11422,0},{62939,11418,0},{62941,11420,0}, {62941,11422,0},{62949,11423,0},{62958,11413,0},{62964,11408,0},{62978,11397,0}, {62996,11392,0},{63013,11382,0},{63021,11380,0},{63033,11367,0},{63043,11365,0}, {63048,11367,0},{63056,11360,0},{63058,11363,0},{63063,11357,0},{63074,11348,0}, {63088,11337,0},{63101,11337,0},{63109,11335,0},{63119,11340,0},{63131,11338,0}, {63136,11343,0},{63148,11343,0},{63151,11348,0},{63158,11350,0},{63166,11357,0}, {63173,11358,0},{63183,11373,0},{63189,11377,0},{63196,11377,0},{63206,11377,0}, {63224,11375,0},{63231,11380,0},{63236,11382,0},{63259,11375,0},{63266,11368,0}, {63281,11365,0},{63284,11370,0},{63288,11370,0},{63291,11373,0},{63298,11375,0}, {63304,11380,0},{63309,11380,0},{63316,11383,0},{63338,11390,0},{63354,11403,0}, {63356,11407,0},{63358,11408,0},{63358,11413,0},{63359,11415,0},{63358,11417,0}, {63356,11418,0},{63351,11415,0},{63319,11408,0},{63313,11412,0},{63306,11413,0}, {63308,11417,0},{63308,11418,0},{63301,11418,0},{63298,11413,0},{63296,11413,0}, {63289,11413,0},{63288,11415,0},{63288,11418,0},{63293,11423,0},{63294,11428,0}, {63293,11432,0},{63289,11435,0},{63291,11438,0},{63306,11442,0},{63316,11443,0}, {63319,11448,0},{63323,11447,0},{63324,11450,0},{63326,11452,0},{63338,11448,0}, {63339,11450,0},{63338,11453,0},{63336,11455,0},{63338,11457,0},{63341,11458,0}, {63343,11462,0},{63353,11463,0},{63358,11468,0},{63359,11477,0},{63364,11480,0}, {63364,11483,0},{63368,11487,0},{63368,11490,0},{63371,11495,0},{63371,11502,0}, {63374,11508,0},{63374,11513,0},{63378,11517,0},{63379,11522,0},{63381,11522,0}, {63379,11527,0},{63381,11530,0},{63384,11537,0},{63389,11543,0},{63389,11548,0}, {63393,11548,0},{63399,11558,0},{63406,11562,0},{63408,11567,0},{63413,11573,0}, {63411,11577,0},{63414,11580,0},{63421,11582,0},{63431,11588,0},{63443,11615,0}, {63449,11617,0},{63451,11622,0},{63451,11628,0},{63456,11633,0},{63456,11643,0}, {63466,11653,0},{63466,11663,0},{63471,11665,0},{63474,11672,0},{63478,11673,0}, {63486,11682,0},{63486,11685,0},{63484,11687,0},{63473,11678,0},{63468,11682,0}, {63468,11685,0},{63468,11688,0},{63473,11695,0},{63474,11708,0},{63479,11712,0}, {63481,11715,0},{63479,11717,0},{63469,11718,0},{63469,11723,0},{63464,11732,0}, {63468,11742,0},{63469,11753,0},{63474,11758,0},{63473,11762,0},{63471,11760,0}, {63469,11762,0},{63471,11768,0},{63474,11778,0},{63483,11785,0},{63484,11793,0}, {63486,11793,0},{63489,11792,0},{63491,11793,0},{63504,11817,0},{63503,11822,0}, {63506,11830,0},{63506,11833,0},{63503,11837,0},{63506,11843,0},{63506,11847,0}, {63508,11850,0},{63508,11855,0},{63509,11860,0},{63508,11868,0},{63509,11875,0}, {63511,11878,0},{63511,11883,0},{63511,11885,0},{63516,11883,0},{63518,11887,0}, {63523,11890,0},{63524,11893,0},{63534,11897,0},{63538,11907,0},{63543,11913,0}, {63539,11918,0},{63544,11920,0},{63543,11927,0},{63538,11942,0},{63539,11947,0}, {63534,11952,0},{63531,11957,0},{63533,11962,0},{63539,11968,0},{63538,11973,0}, {63543,11977,0},{63543,11987,0},{63546,12002,0},{63549,12008,0},{63548,12015,0}, {63554,12040,0},{63568,12070,0},{63571,12082,0},{63583,12103,0},{63601,12127,0}, {63623,12143,0},{63629,12148,0},{63638,12150,0},{63643,12153,0},{63646,12155,0}, {63649,12157,0},{63654,12158,0},{63659,12162,0},{63663,12162,0},{63666,12160,0}, {63669,12158,0},{63669,12162,0},{63669,12163,0},{63668,12165,0},{63669,12168,0}, {63671,12170,0},{63669,12173,0},{63674,12177,0},{63679,12177,0},{63684,12173,0}, {63688,12177,0},{63686,12178,0},{63688,12180,0},{63693,12180,0},{63696,12180,0}, {63696,12183,0},{63694,12187,0},{63693,12188,0},{63696,12192,0},{63719,12222,0}, {63728,12237,0},{63733,12237,0},{63739,12237,0},{63744,12233,0},{63743,12225,0}, {63739,12220,0},{63741,12217,0},{63748,12220,0},{63759,12218,0},{63763,12220,0}, {63784,12212,0},{63814,12217,0},{63823,12223,0},{63826,12228,0},{63829,12225,0}, {63831,12225,0},{63838,12233,0},{63841,12235,0},{63844,12242,0},{63844,12243,0}, {63841,12243,0},{63843,12247,0},{63849,12248,0},{63848,12250,0},{63844,12250,0}, {63846,12257,0},{63854,12255,0},{63858,12255,0},{63858,12257,0},{63861,12257,0}, {63863,12258,0},{63863,12262,0},{63859,12263,0},{63864,12270,0},{63863,12272,0}, {63861,12273,0},{63863,12278,0},{63861,12283,0},{63864,12283,0},{63866,12280,0}, {63869,12278,0},{63871,12273,0},{63874,12277,0},{63881,12278,0},{63888,12290,0}, {63894,12290,0},{63899,12293,0},{63901,12303,0},{63899,12305,0},{63899,12303,0}, {63896,12303,0},{63896,12307,0},{63893,12303,0},{63893,12298,0},{63889,12300,0}, {63888,12297,0},{63884,12298,0},{63881,12295,0},{63879,12298,0},{63876,12298,0}, {63878,12303,0},{63878,12305,0},{63871,12305,0},{63868,12307,0},{63869,12308,0}, {63873,12310,0},{63868,12313,0},{63869,12318,0},{63866,12317,0},{63863,12313,0}, {63859,12313,0},{63861,12317,0},{63859,12320,0},{63856,12320,0},{63848,12317,0}, {63844,12325,0},{63839,12327,0},{63838,12330,0},{63834,12332,0},{63828,12330,0}, {63819,12340,0},{63809,12340,0},{63804,12347,0},{63801,12348,0},{63799,12352,0}, {63793,12353,0},{63789,12357,0},{63783,12358,0},{63768,12358,0},{63763,12360,0}, {63748,12377,0},{63756,12373,0},{63776,12360,0},{63786,12360,0},{63796,12358,0}, {63809,12360,0},{63819,12363,0},{63816,12367,0},{63818,12367,0},{63818,12370,0}, {63828,12360,0},{63838,12360,0},{63839,12363,0},{63839,12368,0},{63836,12368,0}, {63831,12368,0},{63828,12372,0},{63828,12373,0},{63834,12373,0},{63831,12378,0}, {63823,12382,0},{63826,12383,0},{63838,12382,0},{63839,12383,0},{63838,12388,0}, {63844,12385,0},{63856,12395,0},{63856,12390,0},{63849,12382,0},{63853,12378,0}, {63856,12377,0},{63864,12372,0},{63866,12367,0},{63874,12357,0},{63878,12357,0}, {63879,12360,0},{63883,12360,0},{63883,12365,0},{63886,12363,0},{63886,12360,0}, {63884,12358,0},{63881,12353,0},{63888,12345,0},{63889,12350,0},{63893,12348,0}, {63888,12360,0},{63891,12365,0},{63894,12362,0},{63896,12353,0},{63898,12353,0}, {63898,12355,0},{63899,12355,0},{63896,12365,0},{63898,12368,0},{63901,12365,0}, {63901,12372,0},{63908,12368,0},{63909,12365,0},{63909,12360,0},{63909,12358,0}, {63914,12362,0},{63919,12360,0},{63918,12365,0},{63923,12362,0},{63921,12367,0}, {63923,12368,0},{63923,12375,0},{63919,12380,0},{63913,12380,0},{63913,12377,0}, {63909,12382,0},{63906,12385,0},{63896,12387,0},{63896,12390,0},{63901,12392,0}, {63908,12392,0},{63899,12398,0},{63901,12400,0},{63903,12403,0},{63904,12402,0}, {63904,12398,0},{63906,12397,0},{63909,12397,0},{63911,12397,0},{63916,12397,0}, {63913,12400,0},{63911,12410,0},{63904,12417,0},{63901,12417,0},{63896,12420,0}, {63896,12428,0},{63893,12430,0},{63893,12435,0},{63884,12438,0},{63889,12442,0}, {63889,12445,0},{63893,12440,0},{63898,12438,0},{63899,12433,0},{63903,12437,0}, {63898,12442,0},{63898,12445,0},{63899,12472,0},{63899,12475,0},{63896,12478,0}, {63898,12485,0},{63899,12488,0},{63899,12482,0},{63903,12475,0},{63906,12458,0}, {63904,12447,0},{63904,12440,0},{63904,12438,0},{63908,12437,0},{63918,12437,0}, {63924,12440,0},{63931,12442,0},{63931,12445,0},{63918,12448,0},{63916,12452,0}, {63918,12453,0},{63923,12452,0},{63926,12457,0},{63928,12458,0},{63929,12453,0}, {63939,12455,0},{63941,12458,0},{63949,12458,0},{63951,12460,0},{63949,12463,0}, {63953,12465,0},{63954,12467,0},{63956,12467,0},{63956,12470,0},{63959,12472,0}, {63964,12472,0},{63969,12475,0},{63969,12470,0},{63959,12467,0},{63961,12465,0}, {63959,12462,0},{63953,12453,0},{63939,12447,0},{63951,12447,0},{63958,12443,0}, {63959,12442,0},{63958,12440,0},{63951,12438,0},{63954,12437,0},{63958,12437,0}, {63964,12435,0},{63968,12437,0},{63971,12435,0},{63973,12440,0},{63976,12440,0}, {63978,12442,0},{63981,12440,0},{63984,12440,0},{63986,12445,0},{63991,12448,0}, {63991,12452,0},{63988,12458,0},{63988,12460,0},{63991,12460,0},{63991,12467,0}, {63999,12467,0},{64003,12470,0},{64004,12465,0},{64011,12467,0},{64011,12470,0}, {64006,12473,0},{64008,12475,0},{64006,12482,0},{64003,12480,0},{64001,12487,0}, {63999,12490,0},{63994,12492,0},{63996,12495,0},{63991,12497,0},{63991,12507,0}, {63981,12517,0},{63978,12525,0},{63979,12525,0},{63984,12520,0},{63986,12520,0}, {63994,12505,0},{64003,12507,0},{64008,12507,0},{64008,12502,0},{64009,12500,0}, {64008,12497,0},{64004,12492,0},{64004,12488,0},{64011,12487,0},{64011,12488,0}, {64011,12490,0},{64016,12490,0},{64016,12497,0},{64018,12502,0},{64021,12503,0}, {64023,12502,0},{64023,12498,0},{64021,12497,0},{64023,12493,0},{64019,12490,0}, {64016,12485,0},{64021,12485,0},{64023,12482,0},{64028,12488,0},{64026,12493,0}, {64028,12498,0},{64031,12500,0},{64039,12500,0},{64039,12505,0},{64038,12507,0}, {64034,12505,0},{64033,12507,0},{64034,12510,0},{64033,12512,0},{64028,12510,0}, {64023,12513,0},{64026,12523,0},{64026,12525,0},{64021,12528,0},{64021,12535,0}, {64023,12537,0},{64024,12543,0},{64026,12542,0},{64028,12532,0},{64029,12532,0}, {64033,12535,0},{64034,12538,0},{64036,12535,0},{64038,12533,0},{64036,12527,0}, {64043,12522,0},{64043,12520,0},{64046,12522,0},{64044,12527,0},{64046,12528,0}, {64048,12530,0},{64051,12530,0},{64053,12528,0},{64053,12520,0},{64054,12517,0}, {64059,12517,0},{64063,12512,0},{64064,12518,0},{64071,12520,0},{64069,12523,0}, {64071,12525,0},{64073,12528,0},{64076,12523,0},{64079,12530,0},{64084,12532,0}, {64084,12533,0},{64079,12535,0},{64081,12537,0},{64081,12540,0},{64076,12538,0}, {64074,12540,0},{64083,12547,0},{64086,12547,0},{64086,12552,0},{64081,12552,0}, {64081,12557,0},{64084,12555,0},{64086,12558,0},{64096,12560,0},{64099,12557,0}, {64103,12558,0},{64106,12557,0},{64111,12558,0},{64113,12560,0},{64113,12563,0}, {64108,12567,0},{64108,12570,0},{64106,12572,0},{64103,12570,0},{64103,12565,0}, {64101,12565,0},{64093,12563,0},{64091,12565,0},{64084,12565,0},{64081,12563,0}, {64076,12563,0},{64078,12567,0},{64086,12570,0},{64093,12577,0},{64091,12580,0}, {64093,12582,0},{64091,12583,0},{64088,12582,0},{64083,12582,0},{64078,12580,0}, {64076,12583,0},{64076,12587,0},{64074,12588,0},{64074,12590,0},{64084,12590,0}, {64084,12592,0},{64083,12597,0},{64086,12597,0},{64088,12602,0},{64098,12598,0}, {64104,12605,0},{64113,12605,0},{64114,12612,0},{64123,12613,0},{64124,12612,0}, {64129,12607,0},{64129,12597,0},{64131,12595,0},{64134,12597,0},{64136,12600,0}, {64139,12602,0},{64138,12603,0},{64133,12605,0},{64133,12607,0},{64139,12607,0}, {64143,12602,0},{64146,12602,0},{64144,12613,0},{64138,12612,0},{64139,12617,0}, {64139,12620,0},{64136,12615,0},{64136,12618,0},{64134,12620,0},{64133,12620,0}, {64129,12617,0},{64126,12620,0},{64121,12618,0},{64118,12622,0},{64114,12620,0}, {64113,12620,0},{64116,12625,0},{64114,12627,0},{64118,12632,0},{64119,12632,0}, {64123,12628,0},{64128,12630,0},{64133,12632,0},{64133,12637,0},{64138,12640,0}, {64138,12645,0},{64143,12652,0},{64143,12653,0},{64143,12655,0},{64141,12655,0}, {64138,12648,0},{64129,12643,0},{64129,12645,0},{64131,12648,0},{64129,12650,0}, {64124,12647,0},{64121,12650,0},{64123,12655,0},{64114,12655,0},{64113,12657,0}, {64113,12658,0},{64118,12660,0},{64119,12663,0},{64129,12665,0},{64128,12667,0}, {64123,12668,0},{64124,12670,0},{64129,12672,0},{64133,12673,0},{64134,12673,0}, {64136,12670,0},{64138,12670,0},{64139,12677,0},{64138,12678,0},{64136,12680,0}, {64138,12682,0},{64138,12688,0},{64138,12692,0},{64139,12692,0},{64143,12688,0}, {64144,12680,0},{64151,12675,0},{64154,12675,0},{64156,12677,0},{64161,12685,0}, {64159,12690,0},{64163,12692,0},{64163,12695,0},{64159,12697,0},{64158,12700,0}, {64156,12700,0},{64154,12702,0},{64151,12703,0},{64151,12707,0},{64148,12707,0}, {64146,12710,0},{64141,12712,0},{64141,12713,0},{64144,12717,0},{64141,12720,0}, {64146,12725,0},{64143,12730,0},{64146,12732,0},{64141,12738,0},{64141,12742,0}, {64138,12745,0},{64131,12743,0},{64129,12752,0},{64119,12763,0},{64111,12767,0}, {64108,12775,0},{64101,12777,0},{64099,12778,0},{64098,12778,0},{64094,12782,0}, {64093,12782,0},{64091,12785,0},{64088,12785,0},{64084,12793,0},{64081,12792,0}, {64078,12793,0},{64079,12798,0},{64078,12803,0},{64073,12807,0},{64071,12810,0}, {64066,12815,0},{64066,12820,0},{64064,12820,0},{64063,12820,0},{64061,12817,0}, {64053,12815,0},{64053,12810,0},{64051,12808,0},{64046,12810,0},{64033,12808,0}, {64028,12807,0},{64009,12808,0},{64011,12797,0},{64018,12790,0},{64018,12788,0}, {64013,12792,0},{64006,12803,0},{63998,12805,0},{63994,12805,0},{63991,12802,0}, {63988,12795,0},{63979,12782,0},{63978,12782,0},{63976,12783,0},{63986,12803,0}, {63991,12807,0},{64003,12812,0},{64008,12812,0},{64014,12810,0},{64018,12812,0}, {64016,12815,0},{64008,12823,0},{64004,12827,0},{63991,12828,0},{63988,12830,0}, {63988,12833,0},{63989,12835,0},{63994,12830,0},{64003,12830,0},{64009,12827,0}, {64016,12827,0},{64024,12820,0},{64029,12818,0},{64034,12820,0},{64039,12825,0}, {64038,12827,0},{64033,12830,0},{64028,12835,0},{64029,12837,0},{64034,12835,0}, {64038,12835,0},{64033,12842,0},{64033,12843,0},{64034,12845,0},{64046,12840,0}, {64046,12843,0},{64041,12847,0},{64046,12847,0},{64054,12842,0},{64056,12837,0}, {64058,12838,0},{64059,12848,0},{64059,12855,0},{64058,12858,0},{64059,12862,0}, {64059,12867,0},{64058,12870,0},{64053,12873,0},{64053,12885,0},{64049,12898,0}, {64046,12903,0},{64048,12907,0},{64041,12908,0},{64041,12912,0},{64041,12913,0}, {64036,12917,0},{64029,12915,0},{64024,12917,0},{64016,12913,0},{64016,12915,0}, {64018,12917,0},{64016,12918,0},{64014,12920,0},{64023,12922,0},{64028,12923,0}, {64044,12922,0},{64046,12925,0},{64051,12927,0},{64051,12930,0},{64048,12935,0}, {64041,12937,0},{64039,12942,0},{64039,12943,0},{64044,12938,0},{64046,12940,0}, {64041,12948,0},{64033,12950,0},{64033,12952,0},{64033,12953,0},{64028,12958,0}, {64018,12957,0},{64018,12958,0},{64021,12962,0},{64023,12965,0},{64018,12965,0}, {64016,12967,0},{64018,12975,0},{64018,12977,0},{64004,12983,0},{63994,12982,0}, {63994,12988,0},{63991,12993,0},{63996,13002,0},{63993,13010,0},{63994,13015,0}, {63998,13020,0},{63998,13012,0},{63998,13008,0},{63999,13002,0},{63996,12995,0}, {63999,12988,0},{63999,12987,0},{64009,12985,0},{64013,12982,0},{64019,12980,0}, {64026,12967,0},{64029,12963,0},{64034,12963,0},{64038,12962,0},{64044,12963,0}, {64046,12965,0},{64046,12967,0},{64049,12963,0},{64053,12965,0},{64053,12980,0}, {64051,12982,0},{64044,12983,0},{64049,12987,0},{64054,12985,0},{64054,12988,0}, {64056,12987,0},{64058,12993,0},{64059,12997,0},{64064,12998,0},{64064,12997,0}, {64059,12992,0},{64059,12985,0},{64054,12977,0},{64056,12975,0},{64061,12978,0}, {64061,12968,0},{64061,12967,0},{64064,12968,0},{64066,12967,0},{64068,12963,0}, {64069,12963,0},{64076,12975,0},{64079,12973,0},{64083,12975,0},{64079,12965,0}, {64083,12957,0},{64081,12952,0},{64083,12950,0},{64088,12948,0},{64086,12943,0}, {64089,12943,0},{64094,12938,0},{64096,12935,0},{64101,12933,0},{64106,12938,0}, {64113,12940,0},{64116,12945,0},{64121,12950,0},{64121,12955,0},{64126,12955,0}, {64126,12958,0},{64133,12958,0},{64133,12965,0},{64133,12970,0},{64136,12972,0}, {64141,12973,0},{64148,12970,0},{64151,12972,0},{64158,12980,0},{64159,12980,0}, {64163,12977,0},{64169,12978,0},{64179,12982,0},{64186,12982,0},{64186,12985,0}, {64189,12988,0},{64186,12990,0},{64183,12992,0},{64183,12995,0},{64186,13005,0}, {64189,13008,0},{64193,13013,0},{64199,13018,0},{64203,13023,0},{64201,13027,0}, {64198,13030,0},{64198,13032,0},{64201,13032,0},{64204,13030,0},{64208,13023,0}, {64214,13018,0},{64221,13012,0},{64233,13012,0},{64241,13015,0},{64243,13017,0}, {64241,13020,0},{64241,13025,0},{64246,13032,0},{64253,13035,0},{64266,13033,0}, {64266,13035,0},{64266,13037,0},{64263,13040,0},{64266,13040,0},{64268,13040,0}, {64271,13043,0},{64268,13048,0},{64263,13050,0},{64263,13058,0},{64261,13063,0}, {64264,13065,0},{64266,13063,0},{64266,13060,0},{64271,13055,0},{64273,13057,0}, {64274,13060,0},{64276,13057,0},{64289,13058,0},{64291,13062,0},{64294,13060,0}, {64294,13063,0},{64289,13077,0},{64276,13078,0},{64276,13080,0},{64279,13082,0}, {64276,13085,0},{64271,13087,0},{64273,13090,0},{64274,13093,0},{64281,13087,0}, {64283,13092,0},{64288,13083,0},{64293,13083,0},{64298,13085,0},{64299,13088,0}, {64299,13098,0},{64298,13100,0},{64298,13103,0},{64304,13102,0},{64311,13102,0}, {64318,13098,0},{64319,13100,0},{64318,13110,0},{64314,13112,0},{64316,13117,0}, {64308,13125,0},{64314,13125,0},{64326,13132,0},{64321,13133,0},{64313,13133,0}, {64306,13140,0},{64304,13165,0},{64308,13180,0},{64311,13187,0},{64306,13192,0}, {64304,13200,0},{64306,13205,0},{64311,13215,0},{64314,13222,0},{64309,13225,0}, {64311,13232,0},{64309,13235,0},{64301,13237,0},{64296,13233,0},{64296,13235,0}, {64298,13238,0},{64301,13240,0},{64311,13238,0},{64318,13242,0},{64319,13248,0}, {64323,13252,0},{64319,13257,0},{64319,13262,0},{64318,13267,0},{64318,13268,0}, {64319,13268,0},{64323,13262,0},{64329,13260,0},{64334,13260,0},{64341,13263,0}, {64343,13268,0},{64346,13270,0},{64346,13263,0},{64349,13262,0},{64353,13257,0}, {64363,13265,0},{64363,13272,0},{64366,13270,0},{64366,13265,0},{64373,13268,0}, {64373,13267,0},{64369,13263,0},{64368,13260,0},{64373,13253,0},{64374,13255,0}, {64376,13255,0},{64376,13257,0},{64378,13252,0},{64379,13253,0},{64381,13250,0}, {64384,13252,0},{64386,13252,0},{64384,13247,0},{64386,13240,0},{64384,13238,0}, {64384,13222,0},{64381,13215,0},{64378,13212,0},{64378,13203,0},{64383,13202,0}, {64388,13203,0},{64388,13198,0},{64393,13192,0},{64396,13195,0},{64396,13190,0}, {64399,13190,0},{64399,13188,0},{64403,13185,0},{64399,13180,0},{64399,13175,0}, {64404,13178,0},{64404,13183,0},{64409,13182,0},{64411,13188,0},{64409,13190,0}, {64408,13193,0},{64409,13197,0},{64413,13195,0},{64416,13198,0},{64413,13203,0}, {64411,13207,0},{64408,13208,0},{64408,13210,0},{64396,13208,0},{64399,13212,0}, {64396,13213,0},{64391,13213,0},{64389,13215,0},{64391,13218,0},{64394,13218,0}, {64394,13222,0},{64398,13223,0},{64399,13217,0},{64409,13218,0},{64413,13215,0}, {64418,13215,0},{64409,13223,0},{64403,13227,0},{64403,13228,0},{64411,13227,0}, {64414,13233,0},{64413,13235,0},{64406,13237,0},{64401,13235,0},{64403,13238,0}, {64408,13242,0},{64408,13243,0},{64403,13250,0},{64399,13248,0},{64394,13248,0}, {64394,13253,0},{64388,13262,0},{64383,13263,0},{64381,13265,0},{64381,13272,0}, {64386,13275,0},{64389,13282,0},{64388,13288,0},{64391,13288,0},{64396,13287,0}, {64396,13290,0},{64393,13293,0},{64389,13293,0},{64388,13300,0},{64381,13302,0}, {64379,13305,0},{64376,13307,0},{64368,13310,0},{64361,13315,0},{64358,13322,0}, {64361,13332,0},{64359,13332,0},{64358,13328,0},{64356,13328,0},{64354,13332,0}, {64356,13335,0},{64358,13337,0},{64356,13338,0},{64353,13338,0},{64353,13352,0}, {64344,13350,0},{64346,13353,0},{64351,13357,0},{64348,13360,0},{64348,13362,0}, {64351,13367,0},{64353,13367,0},{64354,13375,0},{64358,13377,0},{64358,13382,0}, {64356,13385,0},{64358,13390,0},{64354,13392,0},{64353,13390,0},{64351,13388,0}, {64349,13383,0},{64348,13382,0},{64344,13383,0},{64339,13390,0},{64339,13395,0}, {64344,13400,0},{64344,13403,0},{64339,13407,0},{64341,13410,0},{64334,13415,0}, {64333,13413,0},{64331,13417,0},{64326,13417,0},{64321,13413,0},{64318,13417,0}, {64319,13418,0},{64326,13420,0},{64331,13422,0},{64333,13425,0},{64331,13430,0}, {64326,13433,0},{64324,13455,0},{64321,13458,0},{64328,13460,0},{64334,13467,0}, {64336,13470,0},{64334,13475,0},{64333,13475,0},{64328,13477,0},{64324,13482,0}, {64321,13482,0},{64319,13483,0},{64316,13488,0},{64316,13495,0},{64311,13500,0}, {64306,13505,0},{64306,13517,0},{64308,13517,0},{64309,13517,0},{64306,13532,0}, {64313,13538,0},{64318,13555,0},{64326,13562,0},{64331,13575,0},{64334,13587,0}, {64333,13588,0},{64333,13583,0},{64329,13578,0},{64323,13573,0},{64316,13565,0}, {64313,13563,0},{64309,13565,0},{64303,13570,0},{64306,13572,0},{64308,13575,0}, {64309,13577,0},{64311,13580,0},{64313,13582,0},{64313,13583,0},{64316,13585,0}, {64314,13587,0},{64316,13592,0},{64324,13602,0},{64323,13602,0},{64318,13598,0}, {64313,13597,0},{64311,13593,0},{64309,13592,0},{64306,13597,0},{64308,13605,0}, {64306,13605,0},{64303,13600,0},{64291,13597,0},{64291,13600,0},{64288,13600,0}, {64286,13602,0},{64289,13607,0},{64286,13622,0},{64289,13628,0},{64293,13628,0}, {64298,13632,0},{64304,13633,0},{64309,13632,0},{64309,13622,0},{64313,13618,0}, {64314,13618,0},{64324,13627,0},{64326,13633,0},{64334,13640,0},{64339,13655,0}, {64339,13657,0},{64338,13657,0},{64334,13647,0},{64331,13645,0},{64329,13647,0}, {64331,13652,0},{64326,13653,0},{64321,13657,0},{64314,13657,0},{64304,13665,0}, {64304,13673,0},{64306,13673,0},{64311,13668,0},{64314,13675,0},{64314,13678,0}, {64311,13682,0},{64309,13685,0},{64301,13692,0},{64296,13690,0},{64296,13698,0}, {64293,13695,0},{64291,13688,0},{64283,13682,0},{64278,13677,0},{64278,13675,0}, {64283,13677,0},{64283,13673,0},{64276,13673,0},{64273,13675,0},{64273,13672,0}, {64266,13668,0},{64261,13667,0},{64258,13658,0},{64254,13660,0},{64251,13660,0}, {64253,13657,0},{64256,13653,0},{64256,13652,0},{64253,13652,0},{64253,13647,0}, {64248,13647,0},{64246,13648,0},{64244,13650,0},{64243,13653,0},{64241,13653,0}, {64239,13660,0},{64233,13665,0},{64231,13662,0},{64234,13660,0},{64233,13657,0}, {64231,13655,0},{64231,13653,0},{64233,13653,0},{64234,13652,0},{64233,13645,0}, {64231,13647,0},{64229,13650,0},{64228,13652,0},{64226,13655,0},{64218,13653,0}, {64218,13647,0},{64216,13647,0},{64209,13645,0},{64211,13642,0},{64208,13638,0}, {64206,13638,0},{64201,13632,0},{64208,13633,0},{64209,13635,0},{64223,13637,0}, {64226,13635,0},{64228,13632,0},{64224,13630,0},{64221,13630,0},{64218,13630,0}, {64219,13622,0},{64218,13622,0},{64213,13625,0},{64209,13618,0},{64206,13617,0}, {64206,13615,0},{64209,13613,0},{64218,13613,0},{64219,13612,0},{64216,13610,0}, {64209,13607,0},{64209,13603,0},{64206,13603,0},{64203,13602,0},{64209,13600,0}, {64211,13598,0},{64209,13597,0},{64204,13593,0},{64208,13593,0},{64208,13592,0}, {64196,13588,0},{64191,13592,0},{64189,13595,0},{64186,13590,0},{64189,13588,0}, {64189,13585,0},{64176,13585,0},{64176,13583,0},{64173,13585,0},{64169,13587,0}, {64166,13590,0},{64163,13588,0},{64159,13592,0},{64161,13597,0},{64168,13603,0}, {64168,13605,0},{64166,13605,0},{64159,13602,0},{64154,13598,0},{64151,13600,0}, {64149,13597,0},{64146,13598,0},{64143,13597,0},{64136,13592,0},{64119,13587,0}, {64116,13588,0},{64104,13572,0},{64093,13567,0},{64093,13563,0},{64089,13560,0}, {64083,13555,0},{64074,13552,0},{64069,13552,0},{64068,13545,0},{64063,13540,0}, {64061,13537,0},{64054,13538,0},{64038,13545,0},{64031,13557,0},{64029,13563,0}, {64024,13565,0},{64023,13577,0},{64019,13580,0},{64016,13587,0},{64008,13595,0}, {63999,13607,0},{63994,13620,0},{63993,13622,0},{63978,13627,0},{63976,13630,0}, {63971,13642,0},{63963,13652,0},{63963,13658,0},{63958,13662,0},{63951,13670,0}, {63944,13668,0},{63943,13670,0},{63946,13678,0},{63944,13690,0},{63948,13692,0}, {63949,13697,0},{63943,13707,0},{63938,13717,0},{63921,13738,0},{63919,13742,0}, {63918,13745,0},{63918,13752,0},{63914,13755,0},{63916,13757,0},{63914,13760,0}, {63909,13770,0},{63908,13772,0},{63901,13770,0},{63904,13777,0},{63901,13778,0}, {63889,13787,0},{63878,13798,0},{63876,13805,0},{63868,13812,0},{63863,13830,0}, {63863,13837,0},{63859,13840,0},{63859,13858,0},{63859,13865,0},{63854,13872,0}, {63853,13880,0},{63849,13883,0},{63848,13888,0},{63849,13893,0},{63848,13897,0}, {63846,13903,0},{63839,13905,0},{63836,13910,0},{63833,13917,0},{63823,13915,0}, {63809,13920,0},{63798,13930,0},{63796,13937,0},{63798,13945,0},{63781,13970,0}, {63781,13975,0},{63774,13993,0},{63768,13998,0},{63764,14010,0},{63768,14023,0}, {63769,14037,0},{63774,14045,0},{63778,14060,0},{63779,14063,0},{63786,14068,0}, {63786,14073,0},{63791,14078,0},{63791,14080,0},{63798,14085,0},{63818,14092,0}, {63839,14095,0},{63848,14103,0},{63858,14107,0},{63859,14112,0},{63868,14118,0}, {63879,14122,0},{63883,14125,0},{63888,14127,0},{63901,14128,0},{63913,14132,0}, {63926,14140,0},{63948,14138,0},{63964,14140,0},{63983,14143,0},{63986,14148,0}, {63991,14145,0},{63996,14152,0},{64014,14157,0},{64014,14160,0},{64009,14168,0}, {64013,14172,0},{64014,14167,0},{64018,14167,0},{64021,14165,0},{64026,14167,0}, {64029,14165,0},{64034,14165,0},{64063,14153,0},{64078,14153,0},{64089,14152,0}, {64103,14155,0},{64119,14158,0},{64126,14157,0},{64133,14153,0},{64143,14147,0}, {64151,14145,0},{64178,14152,0},{64181,14153,0},{64178,14153,0},{64179,14155,0}, {64186,14155,0},{64189,14158,0},{64196,14162,0},{64196,14167,0},{64179,14167,0}, {64174,14167,0},{64173,14170,0},{64181,14168,0},{64196,14173,0},{64201,14170,0}, {64204,14173,0},{64201,14167,0},{64204,14167,0},{64211,14168,0},{64219,14162,0}, {64226,14160,0},{64231,14162,0},{64236,14158,0},{64253,14177,0},{64264,14180,0}, {64264,14183,0},{64259,14187,0},{64249,14188,0},{64246,14192,0},{64246,14193,0}, {64258,14192,0},{64261,14198,0},{64261,14195,0},{64261,14192,0},{64264,14185,0}, {64268,14183,0},{64271,14188,0},{64273,14200,0},{64278,14203,0},{64276,14197,0}, {64274,14180,0},{64278,14172,0},{64281,14168,0},{64286,14172,0},{64286,14170,0}, {64284,14168,0},{64286,14167,0},{64284,14165,0},{64281,14165,0},{64278,14167,0}, {64274,14162,0},{64274,14160,0},{64278,14160,0},{64291,14165,0},{64308,14170,0}, {64309,14178,0},{64313,14172,0},{64328,14178,0},{64334,14187,0},{64334,14188,0}, {64328,14190,0},{64321,14190,0},{64318,14192,0},{64321,14193,0},{64326,14193,0}, {64323,14200,0},{64326,14203,0},{64329,14205,0},{64331,14205,0},{64331,14200,0}, {64336,14195,0},{64339,14195,0},{64351,14197,0},{64356,14200,0},{64359,14200,0}, {64364,14203,0},{64374,14203,0},{64383,14207,0},{64386,14212,0},{64388,14212,0}, {64388,14208,0},{64411,14212,0},{64411,14215,0},{64419,14215,0},{64426,14213,0}, {64433,14213,0},{64436,14217,0},{64439,14232,0},{64444,14238,0},{64458,14243,0}, {64459,14253,0},{64451,14260,0},{64433,14250,0},{64434,14257,0},{64439,14258,0}, {64439,14262,0},{64436,14262,0},{64433,14267,0},{64428,14267,0},{64431,14270,0}, {64431,14273,0},{64414,14280,0},{64404,14280,0},{64401,14282,0},{64401,14283,0}, {64393,14287,0},{64384,14283,0},{64379,14285,0},{64373,14283,0},{64366,14287,0}, {64349,14285,0},{64344,14288,0},{64338,14300,0},{64338,14303,0},{64339,14307,0}, {64339,14313,0},{64333,14317,0},{64336,14322,0},{64334,14325,0},{64328,14317,0}, {64316,14310,0},{64316,14307,0},{64314,14307,0},{64309,14308,0},{64298,14310,0}, {64298,14317,0},{64296,14320,0},{64294,14323,0},{64294,14325,0},{64289,14327,0}, {64281,14327,0},{64278,14330,0},{64276,14337,0},{64271,14342,0},{64264,14342,0}, {64258,14337,0},{64246,14335,0},{64243,14337,0},{64239,14340,0},{64241,14343,0}, {64244,14342,0},{64246,14343,0},{64246,14350,0},{64249,14353,0},{64248,14355,0}, {64239,14352,0},{64203,14353,0},{64196,14360,0},{64188,14360,0},{64181,14360,0}, {64171,14357,0},{64163,14355,0},{64156,14355,0},{64133,14368,0},{64129,14368,0}, {64126,14367,0},{64124,14370,0},{64114,14370,0},{64098,14378,0},{64088,14387,0}, {64086,14390,0},{64088,14392,0},{64086,14393,0},{64088,14395,0},{64089,14405,0}, {64093,14408,0},{64094,14410,0},{64096,14413,0},{64098,14415,0},{64103,14418,0}, {64109,14420,0},{64109,14423,0},{64106,14427,0},{64106,14430,0},{64106,14437,0}, {64109,14442,0},{64113,14445,0},{64119,14448,0},{64119,14452,0},{64118,14453,0}, {64114,14455,0},{64109,14458,0},{64099,14460,0},{64099,14465,0},{64098,14465,0}, {64091,14462,0},{64086,14463,0},{64083,14467,0},{64079,14470,0},{64081,14477,0}, {64076,14480,0},{64074,14490,0},{64059,14497,0},{64054,14507,0},{64054,14512,0}, {64051,14517,0},{64051,14522,0},{64048,14522,0},{64039,14528,0},{64039,14532,0}, {64041,14533,0},{64039,14537,0},{64036,14535,0},{64026,14527,0},{64018,14525,0}, {64011,14525,0},{64009,14530,0},{64011,14535,0},{64008,14535,0},{64004,14528,0}, {63998,14528,0},{63994,14525,0},{63989,14523,0},{63984,14528,0},{63981,14528,0}, {63979,14532,0},{63974,14533,0},{63971,14532,0},{63961,14537,0},{63944,14537,0}, {63939,14542,0},{63928,14547,0},{63918,14545,0},{63908,14548,0},{63908,14543,0}, {63891,14540,0},{63886,14547,0},{63881,14550,0},{63876,14555,0},{63869,14557,0}, {63859,14570,0},{63846,14578,0},{63846,14582,0},{63849,14583,0},{63846,14587,0}, {63846,14590,0},{63849,14592,0},{63848,14593,0},{63841,14593,0},{63836,14590,0}, {63829,14588,0},{63818,14595,0},{63804,14600,0},{63799,14602,0},{63796,14605,0}, {63783,14607,0},{63769,14613,0},{63761,14610,0},{63758,14610,0},{63754,14608,0}, {63751,14610,0},{63739,14610,0},{63728,14602,0},{63716,14603,0},{63713,14607,0}, {63714,14605,0},{63713,14603,0},{63696,14613,0},{63686,14620,0},{63684,14627,0}, {63683,14628,0},{63684,14632,0},{63683,14633,0},{63674,14633,0},{63666,14630,0}, {63658,14628,0},{63649,14627,0},{63648,14628,0},{63633,14642,0},{63624,14653,0}, {63619,14667,0},{63619,14677,0},{63611,14683,0},{63608,14688,0},{63606,14693,0}, {63608,14698,0},{63616,14705,0},{63613,14707,0},{63604,14707,0},{63599,14712,0}, {63594,14713,0},{63596,14717,0},{63594,14722,0},{63593,14725,0},{63596,14732,0}, {63594,14743,0},{63603,14743,0},{63604,14745,0},{63599,14748,0},{63591,14750,0}, {63584,14755,0},{63583,14755,0},{63581,14757,0},{63576,14745,0},{63574,14743,0}, {63573,14748,0},{63571,14752,0},{63561,14760,0},{63554,14773,0},{63558,14775,0}, {63561,14773,0},{63566,14778,0},{63564,14782,0},{63561,14787,0},{63551,14787,0}, {63548,14790,0},{63546,14797,0},{63546,14800,0},{63548,14802,0},{63551,14802,0}, {63551,14803,0},{63551,14807,0},{63548,14808,0},{63546,14810,0},{63543,14823,0}, {63539,14827,0},{63534,14823,0},{63529,14827,0},{63528,14830,0},{63526,14832,0}, {63521,14842,0},{63521,14847,0},{63523,14843,0},{63526,14845,0},{63528,14842,0}, {63531,14843,0},{63533,14853,0},{63529,14857,0},{63524,14855,0},{63519,14858,0}, {63519,14860,0},{63516,14862,0},{63519,14862,0},{63519,14867,0},{63518,14868,0}, {63514,14867,0},{63511,14868,0},{63511,14878,0},{63509,14878,0},{63506,14877,0}, {63504,14880,0},{63493,14885,0},{63491,14888,0},{63484,14890,0},{63483,14887,0}, {63484,14883,0},{63493,14877,0},{63489,14873,0},{63489,14868,0},{63496,14863,0}, {63493,14862,0},{63484,14867,0},{63481,14865,0},{63473,14870,0},{63469,14868,0}, {63468,14872,0},{63464,14870,0},{63464,14873,0},{63458,14880,0},{63449,14883,0}, {63449,14888,0},{63446,14898,0},{63448,14902,0},{63446,14903,0},{63444,14903,0}, {63441,14900,0},{63438,14902,0},{63439,14907,0},{63438,14913,0},{63431,14920,0}, {63426,14922,0},{63418,14918,0},{63413,14920,0},{63409,14917,0},{63411,14923,0}, {63409,14927,0},{63408,14928,0},{63401,14928,0},{63398,14932,0},{63394,14928,0}, {63393,14932,0},{63389,14928,0},{63386,14928,0},{63386,14932,0},{63384,14937,0}, {63379,14942,0},{63383,14947,0},{63383,14950,0},{63378,14948,0},{63373,14945,0}, {63364,14945,0},{63364,14947,0},{63361,14943,0},{63353,14943,0},{63349,14947,0}, {63344,14947,0},{63319,14957,0},{63316,14953,0},{63308,14958,0},{63304,14957,0}, {63303,14962,0},{63301,14963,0},{63298,14958,0},{63296,14957,0},{63298,14968,0}, {63288,14968,0},{63281,14963,0},{63291,14977,0},{63296,14980,0},{63289,14988,0}, {63278,14997,0},{63271,15002,0},{63273,15003,0},{63281,15002,0},{63299,14990,0}, {63303,14993,0},{63306,14990,0},{63318,14997,0},{63321,15003,0},{63321,15008,0}, {63313,15010,0},{63309,15015,0},{63299,15020,0},{63294,15030,0},{63283,15045,0}, {63281,15053,0},{63276,15055,0},{63276,15058,0},{63269,15063,0},{63269,15065,0}, {63281,15058,0},{63283,15062,0},{63284,15062,0},{63288,15055,0},{63294,15055,0}, {63301,15055,0},{63304,15057,0},{63303,15063,0},{63298,15062,0},{63293,15065,0}, {63294,15067,0},{63298,15067,0},{63299,15067,0},{63293,15070,0},{63289,15073,0}, {63284,15073,0},{63289,15067,0},{63288,15065,0},{63283,15068,0},{63276,15067,0}, {63273,15070,0},{63273,15073,0},{63281,15077,0},{63283,15080,0},{63279,15080,0}, {63274,15078,0},{63266,15083,0},{63264,15083,0},{63244,15078,0},{63243,15075,0}, {63241,15075,0},{63238,15077,0},{63236,15078,0},{63223,15078,0},{63214,15083,0}, {63206,15083,0},{63204,15080,0},{63203,15080,0},{63186,15087,0},{63184,15085,0}, {63186,15073,0},{63186,15070,0},{63186,15065,0},{63184,15065,0},{63181,15070,0}, {63183,15077,0},{63181,15085,0},{63178,15088,0},{63169,15092,0},{63168,15093,0}, {63176,15100,0},{63163,15112,0},{63153,15118,0},{63149,15130,0},{63148,15132,0}, {63138,15133,0},{63136,15140,0},{63129,15145,0},{63126,15155,0},{63129,15158,0}, {63129,15162,0},{63124,15167,0},{63123,15172,0},{63119,15175,0},{63119,15180,0}, {63118,15180,0},{63116,15183,0},{63116,15188,0},{63093,15200,0},{63086,15207,0}, {63071,15217,0},{63069,15223,0},{63066,15227,0},{63063,15235,0},{63059,15237,0}, {63059,15242,0},{63056,15245,0},{63049,15248,0},{63041,15248,0},{63036,15253,0}, {63029,15255,0},{63023,15262,0},{63019,15255,0},{63016,15265,0},{63013,15270,0}, {63011,15283,0},{63006,15292,0},{62993,15292,0},{62991,15293,0},{62988,15288,0}, {62983,15290,0},{62966,15290,0},{62959,15297,0},{62956,15293,0},{62954,15300,0}, {62951,15302,0},{62948,15303,0},{62939,15302,0},{62941,15305,0},{62948,15308,0}, {62941,15312,0},{62941,15317,0},{62939,15318,0},{62924,15310,0},{62903,15305,0}, {62898,15305,0},{62893,15310,0},{62871,15310,0},{62861,15313,0},{62848,15308,0}, {62839,15305,0},{62824,15310,0},{62819,15305,0},{62814,15303,0},{62813,15305,0}, {62813,15312,0},{62811,15312,0},{62808,15308,0},{62808,15305,0},{62804,15302,0}, {62796,15313,0},{62791,15318,0},{62781,15320,0},{62783,15323,0},{62784,15325,0}, {62781,15328,0},{62768,15333,0},{62763,15330,0},{62754,15337,0},{62748,15337,0}, {62749,15340,0},{62756,15343,0},{62741,15343,0},{62736,15343,0},{62728,15348,0}, {62719,15357,0},{62711,15360,0},{62689,15357,0},{62681,15358,0},{62673,15362,0}, {62658,15362,0},{62653,15358,0},{62644,15355,0},{62638,15348,0},{62633,15345,0}, {62623,15345,0},{62609,15335,0},{62594,15337,0},{62574,15333,0},{62564,15330,0}, {62559,15330,0},{62533,15322,0},{62521,15322,0},{62511,15315,0},{62493,15310,0}, {62486,15305,0},{62466,15302,0},{62456,15302,0},{62444,15300,0},{62448,15305,0}, {62444,15308,0},{62436,15305,0},{62429,15307,0},{62419,15300,0},{62403,15297,0}, {62396,15295,0},{62394,15290,0},{62384,15293,0},{62381,15290,0},{62386,15287,0}, {62384,15285,0},{62371,15285,0},{62366,15282,0},{62361,15280,0},{62356,15278,0}, {62349,15273,0},{62344,15267,0},{62339,15260,0},{62336,15260,0},{62331,15255,0}, {62328,15255,0},{62319,15252,0},{62309,15255,0},{62306,15253,0},{62299,15255,0}, {62293,15253,0},{62289,15253,0},{62288,15252,0},{62286,15243,0},{62279,15233,0}, {62274,15230,0},{62269,15220,0},{62264,15218,0},{62268,15215,0},{62266,15208,0}, {62268,15203,0},{62266,15200,0},{62269,15198,0},{62268,15195,0},{62263,15195,0}, {62261,15192,0},{62259,15192,0},{62261,15198,0},{62259,15203,0},{62261,15207,0}, {62261,15210,0},{62261,15215,0},{62259,15217,0},{62256,15210,0},{62253,15208,0}, {62251,15192,0},{62243,15175,0},{62236,15175,0},{62231,15168,0},{62219,15165,0}, {62214,15160,0},{62209,15158,0},{62206,15153,0},{62193,15145,0},{62188,15145,0}, {62186,15138,0},{62183,15137,0},{62184,15133,0},{62183,15128,0},{62184,15125,0}, {62181,15123,0},{62176,15120,0},{62174,15118,0},{62174,15122,0},{62179,15128,0}, {62174,15130,0},{62179,15133,0},{62179,15137,0},{62156,15130,0},{62158,15123,0}, {62153,15123,0},{62153,15118,0},{62156,15115,0},{62154,15113,0},{62154,15107,0}, {62154,15105,0},{62153,15108,0},{62151,15112,0},{62149,15125,0},{62148,15128,0}, {62143,15128,0},{62139,15125,0},{62143,15118,0},{62138,15117,0},{62138,15112,0}, {62136,15113,0},{62136,15123,0},{62134,15123,0},{62133,15118,0},{62124,15115,0}, {62114,15102,0},{62108,15097,0},{62098,15092,0},{62088,15093,0},{62084,15088,0}, {62088,15085,0},{62084,15082,0},{62083,15082,0},{62083,15085,0},{62078,15088,0}, {62061,15085,0},{62058,15080,0},{62051,15077,0},{62049,15065,0},{62048,15072,0}, {62044,15073,0},{62044,15077,0},{62044,15078,0},{62041,15077,0},{62034,15085,0}, {62031,15083,0},{62028,15078,0},{62028,15077,0},{62031,15077,0},{62034,15078,0}, {62036,15075,0},{62034,15070,0},{62031,15068,0},{62023,15070,0},{62021,15075,0}, {62019,15073,0},{62018,15070,0},{62021,15063,0},{62026,15065,0},{62026,15057,0}, {62023,15060,0},{62018,15060,0},{62006,15048,0},{61999,15050,0},{61989,15042,0}, {61983,15040,0},{61973,15032,0},{61966,15030,0},{61963,15022,0},{61958,15023,0}, {61953,15022,0},{61949,15018,0},{61946,15015,0},{61934,15013,0},{61929,15008,0}, {61926,15012,0},{61904,15013,0},{61899,15005,0},{61893,15007,0},{61888,15003,0}, {61879,15003,0},{61868,14998,0},{61859,14997,0},{61856,14993,0},{61848,14993,0}, {61843,14990,0},{61841,14990,0},{61839,14992,0},{61831,14993,0},{61826,14988,0}, {61821,15000,0},{61811,15003,0},{61809,15002,0},{61809,14997,0},{61806,14995,0}, {61803,14997,0},{61796,14993,0},{61788,14997,0},{61786,14995,0},{61783,14992,0}, {61781,14980,0},{61783,14978,0},{61786,14978,0},{61786,14970,0},{61779,14975,0}, {61769,14967,0},{61764,14962,0},{61761,14952,0},{61759,14948,0},{61758,14928,0}, {61754,14925,0},{61758,14912,0},{61756,14902,0},{61759,14895,0},{61756,14888,0}, {61758,14880,0},{61756,14873,0},{61754,14872,0},{61756,14852,0},{61754,14830,0}, {61753,14818,0},{61746,14798,0},{61748,14790,0},{61748,14780,0},{61751,14773,0}, {61751,14770,0},{61746,14770,0},{61744,14773,0},{61741,14768,0},{61739,14773,0}, {61741,14775,0},{61744,14782,0},{61746,14790,0},{61744,14792,0},{61739,14775,0}, {61728,14758,0},{61686,14705,0},{61681,14695,0},{61671,14687,0},{61669,14683,0}, {61671,14683,0},{61674,14685,0},{61674,14678,0},{61669,14677,0},{61669,14668,0}, {61668,14667,0},{61671,14663,0},{61669,14662,0},{61666,14652,0},{61668,14648,0}, {61666,14642,0},{61664,14638,0},{61666,14633,0},{61666,14622,0},{61661,14618,0}, {61656,14622,0},{61653,14625,0},{61646,14630,0},{61651,14638,0},{61656,14642,0}, {61654,14645,0},{61644,14647,0},{61636,14642,0},{61634,14643,0},{61633,14647,0}, {61631,14647,0},{61628,14642,0},{61624,14642,0},{61621,14637,0},{61623,14633,0}, {61624,14630,0},{61631,14630,0},{61638,14622,0},{61641,14623,0},{61648,14615,0}, {61656,14613,0},{61656,14608,0},{61653,14612,0},{61653,14603,0},{61653,14600,0}, {61648,14597,0},{61644,14590,0},{61656,14583,0},{61668,14573,0},{61666,14580,0}, {61668,14582,0},{61671,14580,0},{61671,14573,0},{61669,14567,0},{61668,14557,0}, {61671,14552,0},{61679,14545,0},{61679,14538,0},{61683,14533,0},{61684,14533,0}, {61686,14538,0},{61694,14540,0},{61696,14547,0},{61701,14550,0},{61711,14543,0}, {61713,14522,0},{61711,14520,0},{61706,14517,0},{61698,14518,0},{61696,14517,0}, {61696,14508,0},{61696,14505,0},{61686,14498,0},{61684,14490,0},{61686,14485,0}, {61696,14477,0},{61703,14463,0},{172,49818,128},{170,49813,0},{172,49811,0}, {175,49806,0},{178,49793,0},{185,49784,0},{185,49779,0},{190,49778,0},{193,49783,0}, {193,49784,0},{192,49784,0},{190,49781,0},{187,49781,0},{183,49793,0},{188,49789,0}, {187,49791,0},{190,49791,0},{187,49794,0},{187,49796,0},{188,49796,0},{193,49793,0}, {192,49796,0},{193,49796,0},{193,49798,0},{190,49798,0},{193,49801,0},{195,49799,0}, {195,49796,0},{202,49789,0},{200,49786,0},{202,49784,0},{203,49786,0},{203,49793,0}, {197,49799,0},{197,49806,0},{192,49801,0},{185,49801,0},{180,49809,0},{177,49813,0}, {177,49818,0},{173,49819,0},{172,49818,0},{61368,17402,129},{61369,17410,1}, {61376,17418,1},{61378,17418,1},{61386,17410,1},{61381,17412,1},{61379,17408,1}, {61383,17408,1},{61384,17405,1},{61394,17405,1},{61396,17410,1},{61403,17412,1}, {61404,17415,1},{61403,17415,1},{61404,17420,1},{61401,17418,1},{61403,17422,1}, {61404,17425,1},{61414,17433,1},{61411,17428,1},{61411,17422,1},{61409,17420,1}, {61411,17415,1},{61411,17405,1},{61408,17403,1},{61409,17393,1},{61411,17398,1}, {61411,17400,1},{61413,17400,1},{61413,17417,1},{61416,17418,1},{61416,17422,1}, {61419,17420,1},{61421,17418,1},{61424,17417,1},{61424,17418,1},{61426,17418,1}, {61424,17420,1},{61421,17420,1},{61421,17422,1},{61423,17423,1},{61424,17425,1}, {61426,17425,1},{61436,17432,1},{61436,17430,1},{61429,17422,1},{61431,17418,1}, {61433,17418,1},{61431,17422,1},{61434,17422,1},{61439,17418,1},{61434,17415,1}, {61434,17410,1},{61436,17403,1},{61439,17400,1},{61438,17400,1},{61436,17397,1}, {61434,17398,1},{61434,17395,1},{61431,17398,1},{61434,17402,1},{61433,17403,1}, {61429,17402,1},{61426,17405,1},{61426,17400,1},{61421,17398,1},{61424,17397,1}, {61428,17398,1},{61426,17393,1},{61421,17388,1},{61416,17390,1},{61418,17395,1}, {61418,17397,1},{61416,17397,1},{61416,17400,1},{61418,17402,1},{61418,17408,1}, {61418,17413,1},{61416,17407,1},{61416,17403,1},{61414,17403,1},{61414,17390,1}, {61413,17388,1},{61413,17393,1},{61408,17378,1},{61409,17377,1},{61411,17385,1}, {61416,17387,1},{61419,17385,1},{61421,17382,1},{61423,17385,1},{61424,17387,1}, {61424,17388,1},{61428,17388,1},{61428,17392,1},{61429,17395,1},{61431,17393,1}, {61429,17382,1},{61428,17382,1},{61428,17380,1},{61426,17380,1},{61424,17378,1}, {61429,17378,1},{61431,17378,1},{61433,17380,1},{61434,17378,1},{61436,17382,1}, {61434,17385,1},{61436,17393,1},{61438,17392,1},{61439,17395,1},{61443,17397,1}, {61441,17402,1},{61441,17403,1},{61443,17403,1},{61446,17400,1},{61444,17395,1}, {61444,17392,1},{61441,17392,1},{61438,17385,1},{61443,17385,1},{61443,17383,1}, {61439,17380,1},{61436,17370,1},{61434,17367,1},{61433,17368,1},{61434,17373,1}, {61433,17375,1},{61429,17372,1},{61429,17367,1},{61426,17368,1},{61426,17365,1}, {61429,17363,1},{61431,17360,1},{61428,17355,1},{61426,17357,1},{61426,17353,1}, {61421,17350,1},{61423,17343,1},{61416,17335,1},{61409,17327,1},{61404,17317,1}, {61404,17310,1},{61408,17308,1},{61409,17310,1},{61418,17308,1},{61418,17305,1}, {61421,17303,1},{61424,17303,1},{61423,17307,1},{61433,17303,1},{61434,17300,1}, {61436,17302,1},{61439,17307,1},{61443,17305,1},{61448,17307,1},{61449,17305,1}, {61449,17302,1},{61451,17303,1},{61458,17300,1},{61456,17295,1},{61456,17293,1}, {61453,17293,1},{61451,17285,1},{61458,17277,1},{61463,17272,1},{61461,17268,1}, {61466,17270,1},{61468,17267,1},{61471,17265,1},{61471,17270,1},{61473,17268,1}, {61484,17273,1},{61483,17298,1},{61486,17272,1},{61484,17263,1},{61481,17257,1}, {61478,17257,1},{61479,17263,1},{61478,17262,1},{61478,17260,1},{61476,17260,1}, {61474,17257,1},{61474,17255,1},{61473,17253,1},{61478,17253,1},{61476,17250,1}, {61464,17235,1},{61456,17218,1},{61448,17213,1},{61448,17212,1},{61411,17210,1}, {61406,17213,1},{61404,17208,1},{61394,17207,1},{61389,17198,1},{61381,17195,1}, {61369,17185,1},{61369,17182,1},{61366,17178,1},{61359,17165,1},{61361,17163,1}, {61359,17162,1},{61359,17155,1},{61361,17147,1},{61354,17147,1},{61353,17150,1}, {61349,17147,1},{61334,17142,1},{61329,17137,1},{61308,17132,1},{61296,17123,1}, {61293,17123,1},{61293,17137,1},{61301,17148,1},{61308,17162,1},{61308,17170,1}, {61299,17147,1},{61291,17138,1},{61289,17120,1},{61279,17115,1},{61264,17100,1}, {61261,17105,1},{61253,17105,1},{61248,17110,1},{61253,17103,1},{61253,17100,1}, {61248,17102,1},{61243,17103,1},{61238,17102,1},{61244,17102,1},{61253,17098,1}, {61254,17103,1},{61258,17103,1},{61261,17102,1},{61264,17098,1},{61263,17095,1}, {61246,17080,1},{61241,17070,1},{61229,17075,1},{61236,17070,1},{61238,17070,1}, {61241,17067,1},{61233,17047,1},{61228,17060,1},{61224,17062,1},{61231,17053,1}, {61233,17045,1},{61231,17045,1},{61231,17042,1},{61228,17038,1},{61226,17042,1}, {61224,17040,1},{61226,17028,1},{61223,17037,1},{61218,17042,1},{61213,17043,1}, {61209,17042,1},{61219,17038,1},{61223,17033,1},{61223,17027,1},{61214,17020,1}, {61219,17027,1},{61219,17030,1},{61211,17023,1},{61213,17018,1},{61211,17013,1}, {61209,17010,1},{61208,17008,1},{61203,17013,1},{61199,17013,1},{61206,17007,1}, {61201,17002,1},{61196,16988,1},{61191,16985,1},{61189,16988,1},{61189,16998,1}, {61188,16993,1},{61189,16983,1},{61188,16980,1},{61186,16978,1},{61183,16985,1}, {61178,16985,1},{61184,16980,1},{61184,16977,1},{61179,16973,1},{61174,16965,1}, {61176,16958,1},{61171,16948,1},{61164,16952,1},{61164,16950,1},{61166,16948,1}, {61171,16947,1},{61171,16942,1},{61166,16937,1},{61161,16922,1},{61154,16908,1}, {61144,16915,1},{61141,16925,1},{61139,16925,1},{61144,16912,1},{61151,16907,1}, {61144,16893,1},{61139,16887,1},{61134,16877,1},{61136,16868,1},{61139,16865,1}, {61138,16862,1},{61138,16858,1},{61136,16855,1},{61133,16850,1},{61133,16838,1}, {61131,16840,1},{61128,16833,1},{61124,16833,1},{61119,16828,1},{61114,16820,1}, {61111,16817,1},{61109,16810,1},{61108,16813,1},{61106,16815,1},{61104,16812,1}, {61104,16803,1},{61101,16803,1},{61098,16802,1},{61096,16795,1},{61086,16783,1}, {61076,16785,1},{61074,16790,1},{61073,16790,1},{61073,16793,1},{61066,16793,1}, {61078,16780,1},{61073,16770,1},{61069,16767,1},{61069,16763,1},{61066,16758,1}, {61061,16763,1},{61059,16767,1},{61059,16763,1},{61064,16758,1},{61061,16755,1}, {61056,16760,1},{61048,16757,1},{61051,16753,1},{61056,16757,1},{61058,16753,1}, {61058,16747,1},{61051,16745,1},{61036,16750,1},{61036,16747,1},{61039,16747,1}, {61043,16743,1},{61048,16745,1},{61053,16742,1},{61049,16732,1},{61046,16732,1}, {61046,16727,1},{61041,16720,1},{61039,16720,1},{61033,16735,1},{61038,16718,1}, {61036,16715,1},{61033,16715,1},{61029,16718,1},{61026,16727,1},{61026,16720,1}, {61023,16718,1},{61026,16718,1},{61033,16712,1},{61026,16707,1},{61018,16718,1}, {61018,16713,1},{61023,16708,1},{61024,16705,1},{61021,16700,1},{61016,16700,1}, {61014,16703,1},{61008,16705,1},{61008,16713,1},{61011,16725,1},{61008,16722,1}, {61004,16725,1},{61004,16730,1},{61003,16727,1},{61004,16722,1},{61008,16718,1}, {61004,16707,1},{61003,16705,1},{60996,16715,1},{60988,16722,1},{60989,16717,1}, {60996,16713,1},{60998,16708,1},{60993,16707,1},{60993,16702,1},{60994,16702,1}, {60996,16705,1},{60999,16705,1},{61003,16700,1},{60999,16693,1},{61001,16693,1}, {61003,16697,1},{61006,16690,1},{61008,16688,1},{61004,16682,1},{60999,16680,1}, {60996,16690,1},{60998,16692,1},{60993,16695,1},{60996,16682,1},{60994,16677,1}, {60993,16675,1},{60989,16673,1},{60981,16670,1},{60978,16673,1},{60981,16690,1}, {60986,16705,1},{60984,16705,1},{60981,16695,1},{60979,16702,1},{60978,16700,1}, {60979,16690,1},{60978,16685,1},{60976,16677,1},{60969,16678,1},{60971,16688,1}, {60968,16680,1},{60963,16678,1},{60966,16685,1},{60966,16702,1},{60964,16700,1}, {60958,16688,1},{60956,16667,1},{60954,16662,1},{60956,16662,1},{60956,16653,1}, {60954,16648,1},{60954,16647,1},{60944,16645,1},{60934,16648,1},{60938,16652,1}, {60938,16657,1},{60939,16663,1},{60948,16670,1},{60949,16673,1},{60948,16675,1}, {60943,16668,1},{60941,16673,1},{60943,16682,1},{60939,16678,1},{60939,16673,1}, {60936,16667,1},{60928,16662,1},{60928,16668,1},{60933,16673,1},{60928,16675,1}, {60931,16677,1},{60931,16678,1},{60936,16678,1},{60941,16695,1},{60938,16688,1}, {60936,16683,1},{60924,16675,1},{60921,16667,1},{60914,16673,1},{60913,16682,1}, {60914,16697,1},{60911,16710,1},{60909,16717,1},{60909,16728,1},{60911,16733,1}, {60911,16740,1},{60914,16742,1},{60919,16745,1},{60921,16748,1},{60918,16770,1}, {60914,16770,1},{60908,16778,1},{60904,16778,1},{60903,16775,1},{60901,16778,1}, {60896,16783,1},{60898,16788,1},{60896,16792,1},{60899,16795,1},{60898,16807,1}, {60901,16807,1},{60903,16818,1},{60901,16822,1},{60896,16825,1},{60888,16832,1}, {60891,16835,1},{60894,16835,1},{60894,16837,1},{60886,16840,1},{60884,16835,1}, {60883,16833,1},{60883,16832,1},{60884,16832,1},{60883,16827,1},{60881,16828,1}, {60879,16832,1},{60878,16832,1},{60874,16837,1},{60874,16840,1},{60881,16835,1}, {60883,16838,1},{60879,16842,1},{60879,16855,1},{60878,16857,1},{60876,16855,1}, {60878,16850,1},{60879,16850,1},{60878,16843,1},{60876,16842,1},{60874,16850,1}, {60876,16863,1},{60881,16862,1},{60879,16872,1},{60878,16867,1},{60878,16868,1}, {60879,16883,1},{60869,16888,1},{60871,16893,1},{60869,16897,1},{60868,16900,1}, {60868,16907,1},{60873,16907,1},{60869,16910,1},{60869,16913,1},{60871,16917,1}, {60874,16917,1},{60873,16920,1},{60869,16920,1},{60871,16927,1},{60873,16933,1}, {60871,16938,1},{60874,16942,1},{60873,16948,1},{60874,16950,1},{60876,16948,1}, {60878,16952,1},{60879,16958,1},{60878,16963,1},{60881,16970,1},{60886,16975,1}, {60886,16965,1},{60888,16970,1},{60886,16978,1},{60889,16985,1},{60898,16985,1}, {60909,17005,1},{60914,17010,1},{60919,17023,1},{60931,17027,1},{60939,17035,1}, {60943,17045,1},{60944,17070,1},{60948,17072,1},{60948,17078,1},{60956,17078,1}, {60958,17077,1},{60951,17070,1},{60946,17058,1},{60948,17055,1},{60954,17067,1}, {60956,17068,1},{60959,17077,1},{60963,17070,1},{60963,17063,1},{60964,17062,1}, {60968,17070,1},{60971,17072,1},{60973,17068,1},{60973,17075,1},{60976,17077,1}, {60979,17075,1},{60978,17078,1},{60979,17080,1},{60983,17082,1},{60986,17085,1}, {60991,17085,1},{60996,17092,1},{60999,17090,1},{60999,17088,1},{61001,17087,1}, {61019,17097,1},{61039,17117,1},{61046,17092,1},{61048,17073,1},{61051,17067,1}, {61053,17060,1},{61056,17053,1},{61061,17048,1},{61054,17058,1},{61053,17068,1}, {61048,17080,1},{61043,17118,1},{61044,17120,1},{61056,17122,1},{61058,17117,1}, {61059,17120,1},{61063,17122,1},{61069,17120,1},{61079,17120,1},{61081,17117,1}, {61083,17122,1},{61088,17125,1},{61093,17128,1},{61098,17127,1},{61106,17135,1}, {61109,17127,1},{61109,17120,1},{61113,17113,1},{61109,17105,1},{61111,17107,1}, {61113,17112,1},{61116,17107,1},{61118,17098,1},{61121,17102,1},{61124,17102,1}, {61118,17105,1},{61111,17122,1},{61111,17128,1},{61108,17135,1},{61109,17140,1}, {61116,17152,1},{61119,17147,1},{61128,17142,1},{61133,17135,1},{61134,17135,1}, {61128,17148,1},{61119,17155,1},{61126,17170,1},{61129,17180,1},{61141,17178,1}, {61134,17180,1},{61129,17185,1},{61129,17188,1},{61136,17195,1},{61146,17220,1}, {61159,17208,1},{61164,17195,1},{61179,17175,1},{61183,17167,1},{61194,17158,1}, {61198,17153,1},{61198,17148,1},{61201,17145,1},{61204,17135,1},{61204,17118,1}, {61203,17115,1},{61206,17105,1},{61206,17095,1},{61208,17098,1},{61206,17108,1}, {61206,17113,1},{61208,17120,1},{61214,17115,1},{61208,17125,1},{61208,17135,1}, {61208,17138,1},{61203,17145,1},{61206,17143,1},{61209,17140,1},{61216,17143,1}, {61218,17137,1},{61233,17132,1},{61231,17135,1},{61221,17140,1},{61219,17143,1}, {61214,17145,1},{61218,17152,1},{61221,17148,1},{61223,17150,1},{61218,17155,1}, {61213,17152,1},{61211,17142,1},{61206,17145,1},{61201,17148,1},{61198,17155,1}, {61193,17163,1},{61184,17167,1},{61181,17175,1},{61168,17193,1},{61158,17217,1}, {61148,17227,1},{61149,17240,1},{61159,17238,1},{61163,17243,1},{61164,17248,1}, {61163,17252,1},{61159,17255,1},{61159,17262,1},{61158,17265,1},{61154,17248,1}, {61153,17242,1},{61151,17242,1},{61154,17270,1},{61156,17275,1},{61153,17273,1}, {61151,17277,1},{61146,17287,1},{61144,17297,1},{61153,17292,1},{61158,17293,1}, {61159,17292,1},{61161,17295,1},{61159,17297,1},{61148,17300,1},{61148,17302,1}, {61148,17303,1},{61149,17303,1},{61149,17307,1},{61153,17308,1},{61151,17310,1}, {61153,17312,1},{61166,17310,1},{61171,17307,1},{61168,17303,1},{61171,17298,1}, {61171,17297,1},{61166,17293,1},{61173,17293,1},{61174,17290,1},{61169,17287,1}, {61169,17285,1},{61173,17283,1},{61173,17277,1},{61169,17270,1},{61171,17268,1}, {61173,17268,1},{61174,17273,1},{61176,17283,1},{61178,17273,1},{61179,17275,1}, {61179,17278,1},{61193,17273,1},{61189,17262,1},{61188,17243,1},{61188,17225,1}, {61194,17212,1},{61206,17197,1},{61206,17200,1},{61199,17207,1},{61198,17212,1}, {61191,17222,1},{61191,17238,1},{61191,17262,1},{61196,17270,1},{61196,17273,1}, {61206,17275,1},{61206,17268,1},{61206,17253,1},{61209,17245,1},{61208,17240,1}, {61211,17230,1},{61209,17240,1},{61211,17247,1},{61216,17247,1},{61216,17248,1}, {61211,17248,1},{61209,17250,1},{61208,17263,1},{61209,17275,1},{61218,17280,1}, {61221,17283,1},{61226,17293,1},{61229,17310,1},{61236,17317,1},{61238,17323,1}, {61241,17328,1},{61243,17330,1},{61244,17333,1},{61249,17332,1},{61254,17337,1}, {61271,17347,1},{61273,17345,1},{61279,17353,1},{61284,17353,1},{61288,17357,1}, {61294,17365,1},{61293,17372,1},{61296,17370,1},{61299,17372,1},{61303,17373,1}, {61303,17378,1},{61306,17380,1},{61316,17393,1},{61321,17387,1},{61326,17387,1}, {61326,17388,1},{61321,17388,1},{61319,17395,1},{61326,17397,1},{61333,17402,1}, {61353,17423,1},{61363,17428,1},{61363,17425,1},{61364,17422,1},{61368,17420,1}, {61373,17418,1},{61368,17410,1},{61368,17402,1},{60864,16800,129},{60856,16805,1}, {60853,16813,1},{60849,16815,1},{60849,16818,1},{60846,16817,1},{60846,16820,1}, {60846,16807,1},{60846,16808,1},{60848,16802,1},{60846,16802,1},{60843,16802,1}, {60839,16797,1},{60839,16800,1},{60843,16805,1},{60839,16815,1},{60836,16813,1}, {60839,16823,1},{60836,16827,1},{60831,16823,1},{60831,16820,1},{60828,16825,1}, {60829,16822,1},{60828,16818,1},{60824,16818,1},{60826,16815,1},{60824,16815,1}, {60824,16800,1},{60818,16788,1},{60819,16785,1},{60819,16778,1},{60823,16777,1}, {60819,16772,1},{60818,16772,1},{60819,16770,1},{60818,16768,1},{60814,16762,1}, {60816,16772,1},{60814,16772,1},{60811,16770,1},{60809,16768,1},{60811,16767,1}, {60813,16767,1},{60811,16763,1},{60809,16760,1},{60809,16752,1},{60816,16753,1}, {60821,16763,1},{60821,16762,1},{60829,16763,1},{60833,16768,1},{60831,16773,1}, {60839,16773,1},{60841,16778,1},{60844,16782,1},{60849,16780,1},{60854,16775,1}, {60858,16777,1},{60861,16775,1},{60866,16777,1},{60868,16780,1},{60866,16787,1}, {60868,16792,1},{60866,16797,1},{60863,16802,1},{61568,17693,129},{61574,17697,1}, {61569,17703,1},{61569,17712,1},{61563,17707,1},{61559,17702,1},{61554,17700,1}, {61551,17702,1},{61548,17697,1},{61533,17690,1},{61528,17690,1},{61526,17687,1}, {61523,17687,1},{61513,17680,1},{61509,17675,1},{61511,17672,1},{61509,17668,1}, {61506,17667,1},{61508,17668,1},{61506,17670,1},{61496,17663,1},{61488,17662,1}, {61486,17660,1},{61488,17653,1},{61486,17653,1},{61476,17645,1},{61476,17642,1}, {61469,17638,1},{61466,17635,1},{61456,17628,1},{61444,17623,1},{61438,17613,1}, {61421,17607,1},{61411,17595,1},{61396,17575,1},{61391,17562,1},{61389,17560,1}, {61379,17543,1},{61379,17537,1},{61374,17532,1},{61374,17523,1},{61383,17518,1}, {61393,17518,1},{61398,17505,1},{61396,17500,1},{61391,17492,1},{61394,17487,1}, {61398,17488,1},{61401,17487,1},{61408,17490,1},{61413,17490,1},{61413,17482,1}, {61411,17478,1},{61408,17477,1},{61408,17482,1},{61404,17483,1},{61403,17482,1}, {61403,17477,1},{61401,17475,1},{61403,17465,1},{61409,17460,1},{61413,17462,1}, {61413,17467,1},{61416,17472,1},{61428,17482,1},{61428,17485,1},{61424,17485,1}, {61426,17487,1},{61433,17485,1},{61438,17493,1},{61446,17497,1},{61464,17513,1}, {61474,17517,1},{61489,17520,1},{61489,17522,1},{61493,17522,1},{61506,17523,1}, {61506,17528,1},{61508,17532,1},{61511,17535,1},{61516,17535,1},{61509,17532,1}, {61508,17527,1},{61509,17522,1},{61516,17520,1},{61526,17515,1},{61534,17507,1}, {61536,17507,1},{61534,17508,1},{61538,17505,1},{61544,17495,1},{61549,17483,1}, {61551,17478,1},{61549,17475,1},{61549,17472,1},{61553,17468,1},{61554,17455,1}, {61563,17442,1},{61573,17435,1},{61574,17432,1},{61578,17422,1},{61579,17408,1}, {61581,17397,1},{61594,17380,1},{61601,17377,1},{61609,17375,1},{61618,17378,1}, {61621,17383,1},{61626,17395,1},{61638,17422,1},{61639,17440,1},{61643,17445,1}, {61653,17458,1},{61664,17462,1},{61666,17463,1},{61694,17465,1},{61698,17468,1}, {61706,17472,1},{61718,17472,1},{61724,17470,1},{61724,17477,1},{61721,17483,1}, {61721,17487,1},{61723,17483,1},{61724,17485,1},{61724,17492,1},{61726,17493,1}, {61726,17490,1},{61728,17490,1},{61729,17487,1},{61729,17483,1},{61726,17480,1}, {61729,17478,1},{61733,17480,1},{61733,17485,1},{61739,17490,1},{61743,17487,1}, {61739,17483,1},{61736,17482,1},{61736,17478,1},{61739,17478,1},{61751,17478,1}, {61756,17487,1},{61756,17498,1},{61758,17495,1},{61759,17497,1},{61763,17497,1}, {61761,17493,1},{61758,17492,1},{61759,17485,1},{61774,17480,1},{61793,17472,1}, {61796,17472,1},{61798,17477,1},{61803,17480,1},{61808,17483,1},{61804,17477,1}, {61799,17472,1},{61808,17467,1},{61829,17455,1},{61829,17457,1},{61829,17467,1}, {61826,17465,1},{61819,17470,1},{61813,17472,1},{61811,17473,1},{61813,17475,1}, {61818,17473,1},{61819,17480,1},{61821,17472,1},{61823,17475,1},{61824,17478,1}, {61823,17478,1},{61824,17482,1},{61829,17487,1},{61824,17493,1},{61829,17495,1}, {61833,17485,1},{61836,17482,1},{61834,17478,1},{61838,17478,1},{61841,17483,1}, {61843,17477,1},{61841,17467,1},{61838,17462,1},{61833,17462,1},{61836,17458,1}, {61831,17452,1},{61833,17450,1},{61859,17440,1},{61873,17430,1},{61883,17422,1}, {61889,17418,1},{61893,17420,1},{61888,17420,1},{61891,17422,1},{61893,17425,1}, {61889,17427,1},{61884,17430,1},{61881,17435,1},{61879,17433,1},{61878,17438,1}, {61876,17438,1},{61876,17435,1},{61874,17437,1},{61873,17435,1},{61871,17440,1}, {61874,17440,1},{61873,17442,1},{61871,17442,1},{61869,17443,1},{61871,17445,1}, {61876,17447,1},{61878,17448,1},{61878,17447,1},{61884,17447,1},{61884,17445,1}, {61886,17443,1},{61889,17445,1},{61893,17447,1},{61896,17443,1},{61898,17447,1}, {61901,17443,1},{61896,17438,1},{61898,17430,1},{61901,17427,1},{61903,17428,1}, {61904,17430,1},{61903,17433,1},{61903,17438,1},{61908,17443,1},{61911,17452,1}, {61913,17450,1},{61908,17442,1},{61909,17442,1},{61906,17433,1},{61908,17430,1}, {61909,17430,1},{61909,17433,1},{61908,17435,1},{61909,17437,1},{61911,17437,1}, {61916,17442,1},{61921,17442,1},{61919,17445,1},{61921,17445,1},{61923,17440,1}, {61919,17440,1},{61914,17437,1},{61913,17433,1},{61916,17435,1},{61916,17432,1}, {61918,17430,1},{61918,17427,1},{61924,17428,1},{61924,17427,1},{61921,17423,1}, {61924,17423,1},{61924,17422,1},{61921,17418,1},{61921,17420,1},{61918,17418,1}, {61918,17425,1},{61913,17425,1},{61914,17428,1},{61913,17432,1},{61909,17427,1}, {61913,17418,1},{61918,17415,1},{61919,17412,1},{61919,17407,1},{61919,17405,1}, {61924,17400,1},{61931,17398,1},{61939,17390,1},{61944,17395,1},{61949,17392,1}, {61948,17390,1},{61944,17393,1},{61941,17388,1},{61939,17387,1},{61929,17397,1}, {61923,17400,1},{61916,17408,1},{61909,17413,1},{61908,17418,1},{61906,17415,1}, {61904,17418,1},{61901,17420,1},{61898,17418,1},{61894,17408,1},{61896,17407,1}, {61901,17405,1},{61909,17402,1},{61921,17392,1},{61931,17383,1},{61964,17355,1}, {61979,17340,1},{61988,17345,1},{61993,17345,1},{61994,17350,1},{61989,17353,1}, {61993,17353,1},{61996,17355,1},{61993,17357,1},{61996,17357,1},{61999,17360,1}, {61998,17362,1},{62004,17365,1},{62003,17362,1},{62006,17360,1},{62004,17358,1}, {62003,17358,1},{62004,17357,1},{62008,17357,1},{62004,17355,1},{62001,17357,1}, {61999,17357,1},{62001,17348,1},{61999,17350,1},{61998,17350,1},{61996,17347,1}, {61998,17343,1},{61998,17342,1},{61994,17342,1},{61993,17338,1},{61991,17340,1}, {61983,17338,1},{61998,17327,1},{62001,17332,1},{62001,17328,1},{62006,17332,1}, {62003,17327,1},{61999,17325,1},{62003,17320,1},{62006,17325,1},{62008,17325,1}, {62006,17320,1},{62008,17315,1},{62014,17308,1},{62018,17310,1},{62018,17315,1}, {62021,17318,1},{62031,17320,1},{62038,17318,1},{62051,17307,1},{62056,17303,1}, {62078,17283,1},{62084,17273,1},{62086,17272,1},{62088,17267,1},{62089,17270,1}, {62094,17268,1},{62094,17270,1},{62093,17273,1},{62091,17283,1},{62094,17290,1}, {62094,17302,1},{62096,17305,1},{62094,17307,1},{62091,17303,1},{62084,17303,1}, {62084,17300,1},{62086,17300,1},{62086,17298,1},{62089,17298,1},{62089,17297,1}, {62084,17295,1},{62084,17293,1},{62081,17292,1},{62079,17295,1},{62081,17295,1}, {62081,17297,1},{62078,17297,1},{62079,17300,1},{62071,17300,1},{62071,17302,1}, {62078,17303,1},{62083,17302,1},{62081,17303,1},{62066,17307,1},{62059,17315,1}, {62054,17318,1},{62053,17318,1},{62058,17312,1},{62054,17313,1},{62044,17330,1}, {62039,17327,1},{62034,17327,1},{62034,17328,1},{62034,17333,1},{62038,17333,1}, {62038,17337,1},{62049,17335,1},{62051,17342,1},{62053,17343,1},{62054,17342,1}, {62056,17343,1},{62054,17345,1},{62051,17345,1},{62053,17348,1},{62049,17350,1}, {62046,17340,1},{62041,17343,1},{62038,17347,1},{62038,17355,1},{62034,17358,1}, {62038,17360,1},{62039,17357,1},{62043,17358,1},{62041,17362,1},{62041,17365,1}, {62038,17367,1},{62039,17373,1},{62038,17373,1},{62034,17378,1},{62034,17377,1}, {62031,17375,1},{62029,17372,1},{62026,17375,1},{62026,17378,1},{62029,17378,1}, {62031,17380,1},{62034,17380,1},{62036,17388,1},{62034,17390,1},{62033,17388,1}, {62029,17395,1},{62024,17398,1},{62023,17403,1},{62024,17410,1},{62019,17415,1}, {62018,17415,1},{62016,17410,1},{62021,17408,1},{62019,17408,1},{62021,17405,1}, {62019,17402,1},{62016,17405,1},{62014,17400,1},{62013,17402,1},{62013,17410,1}, {62008,17408,1},{62004,17413,1},{61999,17413,1},{61999,17415,1},{62003,17417,1}, {62001,17420,1},{62004,17420,1},{62003,17423,1},{62003,17425,1},{62006,17423,1}, {62006,17417,1},{62008,17415,1},{62009,17418,1},{62008,17425,1},{62009,17425,1}, {62009,17428,1},{62013,17430,1},{62016,17437,1},{62006,17433,1},{62003,17435,1}, {62003,17440,1},{62001,17438,1},{61999,17442,1},{61998,17440,1},{61999,17438,1}, {62001,17437,1},{62003,17433,1},{61993,17440,1},{61993,17447,1},{61986,17450,1}, {61986,17447,1},{61984,17447,1},{61983,17450,1},{61976,17458,1},{61971,17457,1}, {61971,17447,1},{61969,17450,1},{61969,17452,1},{61968,17452,1},{61968,17455,1}, {61964,17455,1},{61964,17452,1},{61961,17455,1},{61961,17458,1},{61956,17458,1}, {61951,17460,1},{61951,17455,1},{61954,17455,1},{61954,17452,1},{61958,17452,1}, {61958,17448,1},{61959,17448,1},{61958,17445,1},{61959,17442,1},{61956,17438,1}, {61961,17438,1},{61964,17435,1},{61953,17435,1},{61951,17437,1},{61951,17438,1}, {61954,17440,1},{61954,17448,1},{61951,17453,1},{61946,17448,1},{61936,17450,1}, {61933,17457,1},{61931,17462,1},{61929,17463,1},{61926,17462,1},{61923,17463,1}, {61924,17465,1},{61923,17465,1},{61911,17475,1},{61908,17482,1},{61904,17482,1}, {61906,17480,1},{61903,17480,1},{61901,17488,1},{61899,17485,1},{61901,17477,1}, {61901,17475,1},{61893,17478,1},{61888,17478,1},{61893,17475,1},{61894,17472,1}, {61889,17473,1},{61888,17472,1},{61886,17473,1},{61883,17472,1},{61879,17472,1}, {61876,17472,1},{61874,17478,1},{61874,17487,1},{61871,17477,1},{61873,17472,1}, {61868,17477,1},{61854,17482,1},{61856,17478,1},{61854,17473,1},{61856,17473,1}, {61858,17472,1},{61859,17470,1},{61858,17462,1},{61854,17462,1},{61856,17465,1}, {61856,17468,1},{61853,17465,1},{61851,17468,1},{61846,17468,1},{61846,17470,1}, {61848,17470,1},{61851,17477,1},{61851,17482,1},{61851,17485,1},{61849,17490,1}, {61846,17488,1},{61844,17487,1},{61839,17488,1},{61853,17493,1},{61846,17497,1}, {61843,17497,1},{61843,17502,1},{61848,17500,1},{61849,17502,1},{61846,17508,1}, {61839,17508,1},{61839,17510,1},{61841,17517,1},{61841,17520,1},{61843,17523,1}, {61839,17528,1},{61834,17532,1},{61821,17532,1},{61814,17537,1},{61813,17540,1}, {61814,17548,1},{61818,17555,1},{61818,17557,1},{61814,17557,1},{61811,17558,1}, {61811,17560,1},{61811,17562,1},{61813,17560,1},{61821,17558,1},{61824,17555,1}, {61836,17555,1},{61843,17550,1},{61844,17547,1},{61849,17543,1},{61849,17552,1}, {61851,17552,1},{61853,17545,1},{61853,17550,1},{61854,17547,1},{61858,17553,1}, {61859,17553,1},{61859,17550,1},{61863,17550,1},{61864,17547,1},{61873,17550,1}, {61873,17547,1},{61876,17543,1},{61879,17537,1},{61888,17537,1},{61888,17543,1}, {61884,17547,1},{61883,17550,1},{61884,17552,1},{61884,17553,1},{61879,17557,1}, {61876,17555,1},{61874,17560,1},{61869,17562,1},{61869,17557,1},{61866,17558,1}, {61866,17562,1},{61859,17562,1},{61861,17568,1},{61863,17567,1},{61863,17575,1}, {61866,17580,1},{61863,17582,1},{61864,17585,1},{61861,17585,1},{61861,17580,1}, {61858,17578,1},{61856,17573,1},{61851,17570,1},{61849,17572,1},{61848,17572,1}, {61846,17575,1},{61849,17577,1},{61853,17575,1},{61853,17580,1},{61854,17580,1}, {61853,17583,1},{61851,17585,1},{61846,17587,1},{61836,17590,1},{61829,17587,1}, {61833,17590,1},{61829,17592,1},{61823,17588,1},{61821,17592,1},{61816,17592,1}, {61819,17588,1},{61814,17588,1},{61813,17590,1},{61811,17588,1},{61809,17593,1}, {61794,17597,1},{61791,17600,1},{61789,17600,1},{61791,17598,1},{61789,17597,1}, {61788,17603,1},{61784,17607,1},{61774,17617,1},{61776,17607,1},{61778,17607,1}, {61778,17610,1},{61784,17602,1},{61783,17593,1},{61781,17595,1},{61778,17595,1}, {61778,17600,1},{61773,17600,1},{61773,17607,1},{61769,17608,1},{61768,17612,1}, {61766,17613,1},{61769,17615,1},{61769,17618,1},{61764,17620,1},{61764,17625,1}, {61773,17620,1},{61773,17623,1},{61766,17630,1},{61763,17640,1},{61761,17645,1}, {61759,17652,1},{61749,17668,1},{61739,17712,1},{61738,17713,1},{61736,17707,1}, {61734,17713,1},{61734,17717,1},{61738,17715,1},{61736,17720,1},{61736,17725,1}, {61734,17728,1},{61738,17730,1},{61738,17742,1},{61739,17747,1},{61748,17760,1}, {61754,17762,1},{61756,17765,1},{61759,17768,1},{61763,17768,1},{61768,17773,1}, {61771,17787,1},{61774,17790,1},{61776,17800,1},{61778,17802,1},{61781,17798,1}, {61781,17815,1},{61781,17818,1},{61779,17828,1},{61779,17830,1},{61776,17830,1}, {61773,17835,1},{61771,17850,1},{61766,17855,1},{61764,17857,1},{61758,17852,1}, {61758,17848,1},{61753,17848,1},{61748,17842,1},{61741,17840,1},{61734,17835,1}, {61726,17838,1},{61723,17833,1},{61716,17835,1},{61709,17832,1},{61704,17837,1}, {61696,17832,1},{61694,17835,1},{61693,17835,1},{61689,17830,1},{61683,17830,1}, {61678,17822,1},{61674,17820,1},{61664,17807,1},{61664,17805,1},{61668,17803,1}, {61668,17798,1},{61666,17793,1},{61659,17797,1},{61653,17793,1},{61631,17792,1}, {61629,17788,1},{61628,17788,1},{61626,17797,1},{61623,17800,1},{61619,17795,1}, {61611,17792,1},{61608,17787,1},{61611,17785,1},{61616,17782,1},{61624,17787,1}, {61628,17785,1},{61626,17782,1},{61628,17777,1},{61629,17763,1},{61628,17743,1}, {61629,17742,1},{61616,17705,1},{61611,17703,1},{61601,17693,1},{61594,17690,1}, {61591,17690,1},{61586,17695,1},{61576,17695,1},{61571,17693,1},{61568,17695,1}, {61556,14800,129},{61549,14805,1},{61544,14813,1},{61538,14817,1},{61534,14822,1}, {61534,14827,1},{61533,14830,1},{61524,14830,1},{61521,14823,1},{61519,14822,1}, {61521,14830,1},{61519,14830,1},{61516,14830,1},{61518,14827,1},{61516,14827,1}, {61511,14832,1},{61509,14830,1},{61509,14820,1},{61508,14818,1},{61506,14812,1}, {61506,14805,1},{61509,14802,1},{61511,14802,1},{61514,14803,1},{61519,14800,1}, {61523,14795,1},{61528,14792,1},{61528,14788,1},{61528,14787,1},{61536,14790,1}, {61541,14790,1},{61543,14782,1},{61546,14775,1},{61553,14783,1},{61558,14787,1}, {61558,14790,1},{61559,14793,1},{61556,14800,1},{61219,14577,129},{61229,14567,1}, {61234,14567,1},{61241,14558,1},{61239,14548,1},{61243,14548,1},{61246,14545,1}, {61253,14545,1},{61254,14542,1},{61259,14542,1},{61271,14535,1},{61271,14533,1}, {61274,14532,1},{61274,14525,1},{61276,14525,1},{61279,14528,1},{61283,14525,1}, {61288,14525,1},{61289,14522,1},{61298,14523,1},{61316,14518,1},{61309,14527,1}, {61308,14532,1},{61303,14533,1},{61298,14545,1},{61289,14545,1},{61286,14547,1}, {61288,14548,1},{61293,14550,1},{61293,14555,1},{61298,14553,1},{61299,14557,1}, {61299,14553,1},{61304,14552,1},{61304,14548,1},{61301,14547,1},{61304,14542,1}, {61319,14535,1},{61319,14532,1},{61314,14527,1},{61316,14523,1},{61323,14527,1}, {61331,14525,1},{61341,14517,1},{61359,14498,1},{61363,14493,1},{61363,14490,1}, {61369,14492,1},{61383,14485,1},{61391,14475,1},{61394,14475,1},{61396,14477,1}, {61399,14477,1},{61406,14470,1},{61413,14467,1},{61429,14465,1},{61433,14460,1}, {61441,14460,1},{61443,14463,1},{61444,14467,1},{61446,14468,1},{61458,14468,1}, {61459,14465,1},{61468,14470,1},{61468,14473,1},{61461,14473,1},{61461,14478,1}, {61461,14482,1},{61458,14483,1},{61458,14497,1},{61453,14510,1},{61456,14512,1}, {61454,14517,1},{61454,14522,1},{61456,14525,1},{61461,14525,1},{61463,14527,1}, {61458,14530,1},{61453,14528,1},{61451,14532,1},{61449,14542,1},{61448,14545,1}, {61449,14552,1},{61443,14557,1},{61439,14570,1},{61433,14580,1},{61431,14590,1}, {61431,14598,1},{61424,14607,1},{61419,14623,1},{61418,14637,1},{61421,14655,1}, {61419,14655,1},{61414,14658,1},{61411,14662,1},{61419,14660,1},{61421,14663,1}, {61424,14665,1},{61424,14672,1},{61426,14673,1},{61423,14680,1},{61419,14680,1}, {61416,14682,1},{61418,14687,1},{61418,14690,1},{61413,14690,1},{61409,14695,1}, {61406,14697,1},{61401,14702,1},{61399,14707,1},{61396,14710,1},{61394,14712,1}, {61396,14713,1},{61398,14712,1},{61401,14710,1},{61406,14700,1},{61409,14700,1}, {61413,14695,1},{61418,14695,1},{61421,14690,1},{61421,14683,1},{61429,14680,1}, {61433,14693,1},{61436,14702,1},{61433,14717,1},{61439,14730,1},{61439,14735,1}, {61434,14742,1},{61434,14745,1},{61438,14752,1},{61446,14757,1},{61451,14767,1}, {61449,14772,1},{61449,14775,1},{61446,14782,1},{61446,14790,1},{61454,14795,1}, {61459,14793,1},{61461,14802,1},{61456,14812,1},{61454,14813,1},{61451,14813,1}, {61449,14818,1},{61451,14823,1},{61446,14825,1},{61439,14835,1},{61438,14837,1}, {61434,14835,1},{61429,14828,1},{61428,14830,1},{61416,14830,1},{61408,14833,1}, {61406,14830,1},{61403,14830,1},{61404,14838,1},{61389,14830,1},{61383,14832,1}, {61376,14837,1},{61371,14833,1},{61363,14833,1},{61353,14830,1},{61346,14835,1}, {61333,14832,1},{61328,14837,1},{61319,14835,1},{61318,14838,1},{61311,14833,1}, {61309,14832,1},{61309,14828,1},{61318,14828,1},{61319,14827,1},{61324,14827,1}, {61331,14822,1},{61336,14823,1},{61334,14818,1},{61331,14817,1},{61328,14815,1}, {61326,14820,1},{61324,14812,1},{61318,14810,1},{61306,14802,1},{61303,14805,1}, {61298,14802,1},{61293,14802,1},{61286,14802,1},{61283,14795,1},{61283,14792,1}, {61283,14790,1},{61281,14790,1},{61276,14795,1},{61268,14797,1},{61263,14795,1}, {61259,14788,1},{61249,14783,1},{61249,14790,1},{61253,14788,1},{61254,14792,1}, {61253,14795,1},{61253,14798,1},{61249,14800,1},{61243,14800,1},{61238,14797,1}, {61228,14800,1},{61228,14798,1},{61226,14800,1},{61223,14798,1},{61218,14798,1}, {61219,14792,1},{61226,14788,1},{61221,14787,1},{61216,14780,1},{61218,14775,1}, {61223,14770,1},{61228,14775,1},{61229,14763,1},{61238,14765,1},{61241,14768,1}, {61243,14767,1},{61244,14768,1},{61241,14777,1},{61239,14773,1},{61234,14778,1}, {61236,14788,1},{61241,14782,1},{61246,14782,1},{61248,14780,1},{61249,14775,1}, {61248,14767,1},{61251,14768,1},{61251,14762,1},{61253,14760,1},{61251,14755,1}, {61248,14753,1},{61246,14755,1},{61243,14753,1},{61241,14757,1},{61238,14752,1}, {61234,14745,1},{61236,14742,1},{61241,14740,1},{61241,14742,1},{61241,14743,1}, {61236,14745,1},{61239,14748,1},{61243,14747,1},{61246,14748,1},{61248,14740,1}, {61256,14735,1},{61258,14730,1},{61256,14730,1},{61253,14735,1},{61244,14738,1}, {61243,14735,1},{61236,14735,1},{61231,14728,1},{61228,14730,1},{61223,14727,1}, {61214,14727,1},{61211,14722,1},{61214,14713,1},{61209,14710,1},{61206,14703,1}, {61204,14708,1},{61201,14708,1},{61196,14703,1},{61196,14698,1},{61194,14698,1}, {61193,14700,1},{61188,14697,1},{61186,14690,1},{61184,14690,1},{61181,14693,1}, {61176,14685,1},{61179,14683,1},{61179,14678,1},{61176,14672,1},{61184,14662,1}, {61191,14658,1},{61186,14657,1},{61184,14652,1},{61184,14642,1},{61188,14637,1}, {61184,14630,1},{61189,14628,1},{61189,14625,1},{61189,14623,1},{61184,14622,1}, {61188,14617,1},{61184,14613,1},{61183,14605,1},{61193,14603,1},{61203,14592,1}, {61203,14598,1},{61204,14597,1},{61204,14598,1},{61204,14605,1},{61203,14607,1}, {61203,14613,1},{61201,14612,1},{61201,14613,1},{61203,14618,1},{61201,14622,1}, {61203,14623,1},{61208,14623,1},{61208,14615,1},{61206,14612,1},{61208,14608,1}, {61206,14603,1},{61208,14597,1},{61221,14592,1},{61221,14588,1},{61214,14588,1}, {61213,14585,1},{61211,14590,1},{61209,14590,1},{61208,14587,1},{61208,14583,1}, {61221,14577,1},{61569,14398,129},{61568,14405,1},{61563,14410,1},{61551,14413,1}, {61543,14412,1},{61536,14413,1},{61528,14408,1},{61526,14405,1},{61523,14402,1}, {61519,14393,1},{61518,14390,1},{61523,14385,1},{61531,14387,1},{61541,14382,1}, {61548,14383,1},{61559,14383,1},{61564,14388,1},{61573,14392,1},{61569,14398,1}, {61976,13738,129},{61974,13745,1},{61976,13750,1},{61978,13758,1},{61976,13760,1}, {61971,13757,1},{61971,13762,1},{61969,13762,1},{61963,13757,1},{61961,13765,1}, {61961,13777,1},{61959,13778,1},{61954,13773,1},{61951,13775,1},{61951,13778,1}, {61954,13777,1},{61958,13783,1},{61963,13790,1},{61961,13803,1},{61958,13807,1}, {61956,13812,1},{61954,13812,1},{61946,13805,1},{61946,13802,1},{61946,13798,1}, {61949,13790,1},{61948,13785,1},{61948,13777,1},{61946,13770,1},{61943,13760,1}, {61933,13758,1},{61928,13745,1},{61928,13740,1},{61934,13732,1},{61934,13723,1}, {61936,13717,1},{61931,13710,1},{61931,13695,1},{61929,13687,1},{61931,13683,1}, {61929,13682,1},{61929,13670,1},{61938,13667,1},{61938,13657,1},{61946,13652,1}, {61954,13655,1},{61959,13655,1},{61961,13675,1},{61966,13688,1},{61966,13697,1}, {61976,13732,1},{61976,13738,1},{65276,14100,129},{65278,14103,1},{65274,14117,1}, {65274,14122,1},{65271,14127,1},{65269,14128,1},{65269,14132,1},{65266,14132,1}, {65266,14135,1},{65263,14143,1},{65253,14163,1},{65246,14183,1},{65243,14183,1}, {65239,14190,1},{65241,14200,1},{65234,14208,1},{65231,14207,1},{65229,14207,1}, {65231,14213,1},{65229,14215,1},{65226,14220,1},{65226,14223,1},{65224,14228,1}, {65224,14233,1},{65216,14250,1},{65213,14263,1},{65209,14272,1},{65208,14282,1}, {65199,14303,1},{65201,14310,1},{65199,14320,1},{65198,14325,1},{65196,14340,1}, {65193,14352,1},{65189,14357,1},{65181,14362,1},{65178,14368,1},{65181,14372,1}, {65176,14373,1},{65174,14380,1},{65171,14385,1},{65168,14385,1},{65163,14395,1}, {65158,14398,1},{65154,14402,1},{65156,14415,1},{65156,14417,1},{65154,14415,1}, {65154,14413,1},{65153,14413,1},{65151,14418,1},{65153,14420,1},{65151,14422,1}, {65149,14422,1},{65149,14425,1},{65156,14428,1},{65154,14452,1},{65148,14455,1}, {65141,14455,1},{65136,14457,1},{65134,14460,1},{65134,14467,1},{65133,14473,1}, {65126,14487,1},{65124,14488,1},{65121,14485,1},{65118,14488,1},{65118,14492,1}, {65114,14497,1},{65114,14498,1},{65111,14500,1},{65108,14500,1},{65108,14502,1}, {65103,14503,1},{65099,14508,1},{65096,14520,1},{65098,14530,1},{65096,14533,1}, {65093,14538,1},{65086,14545,1},{65078,14552,1},{65078,14555,1},{65066,14562,1}, {65059,14568,1},{65053,14580,1},{65049,14582,1},{65043,14578,1},{65034,14578,1}, {65029,14582,1},{65028,14580,1},{65026,14580,1},{65016,14578,1},{65014,14580,1}, {65006,14573,1},{65001,14575,1},{64994,14572,1},{64988,14577,1},{64988,14587,1}, {64984,14588,1},{64988,14593,1},{64988,14598,1},{64986,14598,1},{64983,14615,1}, {64981,14618,1},{64979,14625,1},{64978,14628,1},{64979,14633,1},{64976,14638,1}, {64976,14647,1},{64973,14648,1},{64969,14655,1},{64961,14665,1},{64956,14678,1}, {64953,14680,1},{64951,14682,1},{64953,14688,1},{64953,14692,1},{64946,14697,1}, {64941,14705,1},{64943,14708,1},{64939,14710,1},{64939,14725,1},{64943,14727,1}, {64941,14732,1},{64943,14733,1},{64939,14740,1},{64938,14748,1},{64933,14753,1}, {64929,14758,1},{64918,14768,1},{64909,14772,1},{64906,14778,1},{64903,14783,1}, {64898,14783,1},{64896,14785,1},{64889,14787,1},{64883,14785,1},{64878,14785,1}, {64876,14783,1},{64874,14785,1},{64874,14787,1},{64869,14787,1},{64864,14782,1}, {64863,14760,1},{64861,14757,1},{64863,14742,1},{64861,14733,1},{64863,14725,1}, {64861,14720,1},{64864,14715,1},{64864,14708,1},{64863,14705,1},{64861,14697,1}, {64853,14695,1},{64839,14695,1},{64831,14703,1},{64834,14707,1},{64829,14705,1}, {64828,14707,1},{64821,14707,1},{64818,14712,1},{64813,14715,1},{64806,14713,1}, {64806,14715,1},{64803,14713,1},{64803,14715,1},{64798,14715,1},{64794,14717,1}, {64793,14720,1},{64789,14718,1},{64789,14722,1},{64786,14722,1},{64789,14725,1}, {64788,14727,1},{64786,14727,1},{64786,14733,1},{64779,14738,1},{64779,14742,1}, {64776,14743,1},{64776,14747,1},{64773,14750,1},{64768,14750,1},{64766,14758,1}, {64764,14760,1},{64759,14758,1},{64756,14762,1},{64754,14760,1},{64754,14765,1}, {64759,14763,1},{64756,14767,1},{64753,14770,1},{64744,14770,1},{64743,14773,1}, {64741,14775,1},{64743,14778,1},{64741,14782,1},{64743,14785,1},{64743,14788,1}, {64736,14797,1},{64731,14798,1},{64729,14800,1},{64731,14813,1},{64721,14815,1}, {64711,14820,1},{64698,14820,1},{64691,14823,1},{64684,14822,1},{64679,14823,1}, {64674,14830,1},{64674,14835,1},{64671,14840,1},{64669,14845,1},{64663,14848,1}, {64646,14848,1},{64646,14852,1},{64644,14853,1},{64643,14852,1},{64636,14853,1}, {64628,14860,1},{64626,14872,1},{64628,14887,1},{64629,14888,1},{64631,14888,1}, {64633,14890,1},{64629,14902,1},{64631,14903,1},{64633,14907,1},{64634,14908,1}, {64638,14913,1},{64636,14913,1},{64636,14927,1},{64634,14927,1},{64633,14930,1}, {64634,14932,1},{64629,14932,1},{64628,14932,1},{64626,14930,1},{64626,14932,1}, {64624,14928,1},{64624,14933,1},{64621,14933,1},{64618,14928,1},{64618,14927,1}, {64614,14925,1},{64604,14922,1},{64601,14918,1},{64598,14918,1},{64586,14923,1}, {64584,14927,1},{64584,14935,1},{64581,14938,1},{64581,14942,1},{64578,14942,1}, {64579,14945,1},{64576,14943,1},{64576,14945,1},{64576,14952,1},{64578,14953,1}, {64576,14957,1},{64573,14962,1},{64576,14965,1},{64576,14975,1},{64574,14978,1}, {64574,14985,1},{64571,14988,1},{64573,15002,1},{64569,15002,1},{64568,15005,1}, {64564,15005,1},{64563,15002,1},{64561,14998,1},{64559,14992,1},{64558,14977,1}, {64553,14972,1},{64546,14977,1},{64544,14980,1},{64539,14983,1},{64536,14987,1}, {64534,14985,1},{64534,14990,1},{64531,14992,1},{64528,14998,1},{64529,15002,1}, {64528,15010,1},{64524,15013,1},{64526,15018,1},{64516,15030,1},{64514,15043,1}, {64516,15047,1},{64513,15052,1},{64516,15055,1},{64514,15060,1},{64513,15058,1}, {64508,15063,1},{64509,15072,1},{64509,15078,1},{64514,15085,1},{64513,15088,1}, {64501,15063,1},{64506,15042,1},{64504,15037,1},{64496,15035,1},{64494,15050,1}, {64488,15062,1},{64488,15065,1},{64479,15068,1},{64478,15068,1},{64478,15062,1}, {64474,15057,1},{64474,15048,1},{64471,15047,1},{64469,15043,1},{64468,15042,1}, {64468,15037,1},{64471,15033,1},{64466,15025,1},{64469,15025,1},{64466,15023,1}, {64466,15022,1},{64468,15018,1},{64471,15018,1},{64471,15013,1},{64469,15012,1}, {64473,15008,1},{64471,15008,1},{64474,15005,1},{64474,15002,1},{64476,15003,1}, {64479,15002,1},{64479,15000,1},{64476,14998,1},{64478,14997,1},{64479,14997,1}, {64479,14995,1},{64479,14992,1},{64481,14990,1},{64479,14990,1},{64481,14985,1}, {64483,14990,1},{64484,14990,1},{64484,14987,1},{64486,14988,1},{64486,14997,1}, {64484,14998,1},{64486,15003,1},{64489,15005,1},{64489,15008,1},{64491,15002,1}, {64493,14995,1},{64493,14993,1},{64488,14993,1},{64488,14992,1},{64489,14990,1}, {64496,14988,1},{64501,14975,1},{64501,14958,1},{64501,14953,1},{64499,14953,1}, {64499,14952,1},{64499,14950,1},{64503,14950,1},{64501,14947,1},{64501,14945,1}, {64503,14945,1},{64503,14942,1},{64506,14940,1},{64508,14937,1},{64504,14933,1}, {64513,14910,1},{64509,14900,1},{64508,14897,1},{64513,14887,1},{64513,14873,1}, {64516,14873,1},{64518,14872,1},{64519,14877,1},{64521,14877,1},{64523,14875,1}, {64519,14873,1},{64521,14870,1},{64526,14868,1},{64523,14868,1},{64521,14868,1}, {64518,14865,1},{64518,14855,1},{64518,14852,1},{64516,14847,1},{64516,14840,1}, {64518,14833,1},{64523,14830,1},{64523,14827,1},{64523,14825,1},{64526,14823,1}, {64526,14820,1},{64526,14817,1},{64528,14817,1},{64526,14815,1},{64523,14810,1}, {64521,14805,1},{64523,14802,1},{64519,14798,1},{64519,14797,1},{64519,14795,1}, {64526,14792,1},{64526,14785,1},{64528,14788,1},{64531,14787,1},{64528,14785,1}, {64531,14780,1},{64531,14777,1},{64526,14772,1},{64534,14770,1},{64538,14762,1}, {64548,14752,1},{64559,14748,1},{64576,14735,1},{64578,14735,1},{64579,14732,1}, {64583,14730,1},{64586,14725,1},{64584,14723,1},{64583,14725,1},{64581,14723,1}, {64584,14717,1},{64586,14715,1},{64588,14715,1},{64593,14712,1},{64593,14708,1}, {64591,14710,1},{64588,14710,1},{64586,14708,1},{64589,14705,1},{64596,14700,1}, {64606,14698,1},{64609,14695,1},{64608,14692,1},{64608,14690,1},{64611,14692,1}, {64613,14690,1},{64618,14688,1},{64619,14690,1},{64623,14688,1},{64623,14692,1}, {64628,14697,1},{64631,14698,1},{64633,14697,1},{64631,14695,1},{64628,14695,1}, {64626,14692,1},{64624,14688,1},{64631,14677,1},{64633,14663,1},{64636,14658,1}, {64641,14657,1},{64644,14657,1},{64646,14655,1},{64649,14655,1},{64651,14658,1}, {64654,14660,1},{64653,14658,1},{64654,14657,1},{64659,14653,1},{64659,14652,1}, {64664,14652,1},{64674,14643,1},{64678,14638,1},{64683,14633,1},{64693,14627,1}, {64699,14627,1},{64703,14623,1},{64706,14625,1},{64708,14623,1},{64714,14615,1}, {64714,14612,1},{64719,14610,1},{64719,14612,1},{64723,14612,1},{64724,14608,1}, {64728,14610,1},{64731,14598,1},{64731,14588,1},{64736,14580,1},{64739,14577,1}, {64739,14578,1},{64741,14578,1},{64744,14578,1},{64743,14577,1},{64744,14575,1}, {64743,14573,1},{64741,14573,1},{64739,14572,1},{64739,14565,1},{64743,14562,1}, {64741,14543,1},{64744,14538,1},{64749,14532,1},{64749,14523,1},{64754,14518,1}, {64754,14517,1},{64751,14517,1},{64751,14515,1},{64754,14510,1},{64758,14508,1}, {64758,14507,1},{64754,14507,1},{64754,14505,1},{64754,14500,1},{64758,14495,1}, {64756,14493,1},{64758,14490,1},{64758,14488,1},{64761,14483,1},{64766,14487,1}, {64778,14485,1},{64768,14483,1},{64768,14482,1},{64768,14478,1},{64769,14475,1}, {64779,14465,1},{64771,14465,1},{64771,14458,1},{64776,14455,1},{64784,14453,1}, {64786,14452,1},{64784,14452,1},{64779,14452,1},{64774,14450,1},{64769,14453,1}, {64769,14452,1},{64773,14447,1},{64783,14442,1},{64784,14440,1},{64768,14443,1}, {64761,14447,1},{64758,14452,1},{64756,14448,1},{64764,14442,1},{64761,14440,1}, {64761,14437,1},{64768,14437,1},{64774,14432,1},{64773,14430,1},{64768,14433,1}, {64766,14433,1},{64766,14430,1},{64773,14427,1},{64769,14423,1},{64768,14427,1}, {64763,14423,1},{64763,14427,1},{64759,14427,1},{64756,14422,1},{64759,14418,1}, {64759,14412,1},{64764,14402,1},{64766,14392,1},{64773,14382,1},{64786,14377,1}, {64786,14372,1},{64791,14365,1},{64789,14365,1},{64786,14368,1},{64783,14375,1}, {64779,14375,1},{64764,14383,1},{64754,14385,1},{64741,14395,1},{64738,14395,1}, {64736,14393,1},{64738,14390,1},{64743,14387,1},{64743,14382,1},{64739,14383,1}, {64739,14388,1},{64736,14390,1},{64733,14390,1},{64731,14385,1},{64733,14375,1}, {64734,14372,1},{64738,14363,1},{64736,14357,1},{64736,14350,1},{64738,14347,1}, {64744,14343,1},{64744,14337,1},{64743,14343,1},{64736,14347,1},{64733,14355,1}, {64723,14358,1},{64716,14363,1},{64711,14362,1},{64711,14333,1},{64708,14328,1}, {64708,14322,1},{64704,14307,1},{64701,14298,1},{64708,14283,1},{64709,14270,1}, {64706,14258,1},{64703,14250,1},{64703,14243,1},{64706,14240,1},{64716,14238,1}, {64719,14233,1},{64719,14222,1},{64713,14213,1},{64713,14215,1},{64716,14223,1}, {64718,14232,1},{64716,14235,1},{64713,14237,1},{64704,14238,1},{64699,14245,1}, {64699,14252,1},{64704,14263,1},{64703,14277,1},{64699,14283,1},{64694,14290,1}, {64689,14312,1},{64678,14325,1},{64659,14340,1},{64639,14340,1},{64634,14337,1}, {64633,14333,1},{64634,14328,1},{64633,14323,1},{64628,14313,1},{64628,14305,1}, {64618,14293,1},{64603,14263,1},{64603,14257,1},{64609,14250,1},{64613,14243,1}, {64616,14230,1},{64619,14222,1},{64616,14208,1},{64618,14198,1},{64614,14190,1}, {64616,14177,1},{64613,14162,1},{64614,14158,1},{64614,14152,1},{64619,14145,1}, {64621,14138,1},{64621,14130,1},{64614,14122,1},{64613,14117,1},{64613,14112,1}, {64623,14100,1},{64404,15320,129},{64401,15325,1},{64401,15330,1},{64396,15335,1}, {64394,15340,1},{64393,15343,1},{64391,15348,1},{64389,15350,1},{64383,15370,1}, {64381,15372,1},{64379,15375,1},{64376,15378,1},{64374,15377,1},{64374,15368,1}, {64373,15368,1},{64374,15360,1},{64371,15357,1},{64373,15355,1},{64374,15357,1}, {64376,15357,1},{64376,15348,1},{64381,15347,1},{64378,15343,1},{64379,15342,1}, {64379,15338,1},{64381,15337,1},{64386,15338,1},{64386,15337,1},{64386,15335,1}, {64386,15333,1},{64384,15328,1},{64386,15328,1},{64388,15333,1},{64389,15327,1}, {64394,15325,1},{64393,15323,1},{64396,15323,1},{64399,15318,1},{64404,15320,1}, {64603,15050,129},{64598,15060,1},{64593,15067,1},{64594,15075,1},{64596,15075,1}, {64593,15080,1},{64591,15083,1},{64586,15083,1},{64583,15088,1},{64579,15088,1}, {64578,15087,1},{64576,15090,1},{64573,15090,1},{64571,15093,1},{64568,15090,1}, {64569,15088,1},{64568,15087,1},{64564,15085,1},{64566,15083,1},{64569,15085,1}, {64571,15083,1},{64571,15080,1},{64569,15080,1},{64569,15078,1},{64571,15075,1}, {64571,15063,1},{64573,15058,1},{64574,15053,1},{64571,15047,1},{64573,15043,1}, {64574,15043,1},{64579,15052,1},{64581,15052,1},{64584,15050,1},{64588,15047,1}, {64586,15045,1},{64589,15045,1},{64593,15042,1},{64598,15042,1},{64601,15043,1}, {64603,15048,1},{64603,15050,1},{64638,15257,129},{64639,15263,1},{64638,15275,1}, {64639,15280,1},{64638,15282,1},{64633,15285,1},{64631,15290,1},{64631,15293,1}, {64629,15295,1},{64626,15297,1},{64626,15300,1},{64623,15302,1},{64618,15300,1}, {64621,15295,1},{64619,15292,1},{64618,15295,1},{64614,15297,1},{64616,15293,1}, {64614,15290,1},{64613,15283,1},{64619,15275,1},{64619,15273,1},{64616,15275,1}, {64614,15273,1},{64616,15272,1},{64618,15268,1},{64621,15272,1},{64623,15270,1}, {64629,15263,1},{64633,15262,1},{64633,15260,1},{64634,15257,1},{64633,15250,1}, {64638,15253,1},{64638,15257,1},{65121,15218,129},{65119,15222,1},{65113,15225,1}, {65111,15223,1},{65113,15220,1},{65114,15218,1},{65113,15217,1},{65106,15217,1}, {65104,15218,1},{65104,15223,1},{65103,15225,1},{65103,15228,1},{65103,15242,1}, {65094,15240,1},{65091,15237,1},{65084,15235,1},{65074,15240,1},{65068,15240,1}, {65056,15238,1},{65048,15233,1},{65038,15223,1},{65036,15217,1},{65038,15205,1}, {65038,15202,1},{65039,15198,1},{65036,15197,1},{65021,15197,1},{65013,15205,1}, {65013,15207,1},{65006,15213,1},{64999,15215,1},{64994,15212,1},{64991,15210,1}, {64989,15205,1},{64983,15197,1},{64979,15188,1},{64976,15183,1},{64978,15177,1}, {64983,15175,1},{64983,15170,1},{64983,15165,1},{64978,15162,1},{64983,15158,1}, {64983,15147,1},{64976,15145,1},{64974,15147,1},{64973,15152,1},{64968,15152,1}, {64964,15143,1},{64961,15140,1},{64958,15140,1},{64953,15135,1},{64949,15128,1}, {64944,15122,1},{64939,15118,1},{64939,15115,1},{64938,15108,1},{64931,15103,1}, {64934,15098,1},{64933,15092,1},{64929,15088,1},{64933,15085,1},{64934,15082,1}, {64931,15082,1},{64928,15082,1},{64921,15077,1},{64919,15067,1},{64921,15065,1}, {64921,15063,1},{64913,15052,1},{64909,15047,1},{64906,15040,1},{64906,15022,1}, {64908,15022,1},{64911,15018,1},{64906,15010,1},{64908,15008,1},{64909,15005,1}, {64906,15003,1},{64904,15002,1},{64906,15002,1},{64909,14998,1},{64904,14992,1}, {64906,14990,1},{64908,14978,1},{64908,14973,1},{64904,14970,1},{64906,14963,1}, {64909,14957,1},{64914,14957,1},{64914,14955,1},{64924,14948,1},{64929,14933,1}, {64929,14928,1},{64926,14925,1},{64928,14917,1},{64926,14917,1},{64921,14913,1}, {64919,14905,1},{64923,14905,1},{64923,14908,1},{64924,14908,1},{64928,14907,1}, {64929,14903,1},{64931,14905,1},{64934,14905,1},{64933,14903,1},{64934,14902,1}, {64934,14898,1},{64938,14888,1},{64936,14887,1},{64938,14885,1},{64941,14888,1}, {64944,14882,1},{64943,14877,1},{64946,14878,1},{64949,14877,1},{64951,14865,1}, {64954,14863,1},{64954,14860,1},{64951,14858,1},{64953,14855,1},{64956,14852,1}, {64958,14838,1},{64964,14833,1},{64973,14832,1},{64988,14837,1},{64991,14843,1}, {64988,14852,1},{64983,14853,1},{64981,14857,1},{64988,14865,1},{64986,14870,1}, {64986,14873,1},{64983,14878,1},{64981,14885,1},{64983,14885,1},{64986,14888,1}, {64986,14892,1},{64989,14897,1},{64988,14902,1},{64981,14918,1},{64979,14922,1}, {64976,14922,1},{64978,14937,1},{64978,14940,1},{64979,14943,1},{64978,14945,1}, {64979,14947,1},{64978,14950,1},{64981,14952,1},{64983,14957,1},{64984,14967,1}, {64986,14968,1},{64988,14967,1},{64986,14968,1},{64979,14968,1},{64979,14973,1}, {64981,14973,1},{64983,14978,1},{64984,14980,1},{64983,14987,1},{64984,14992,1}, {64988,14995,1},{64994,14998,1},{64996,14995,1},{65001,14992,1},{65006,14993,1}, {65009,14997,1},{65009,15000,1},{65014,15003,1},{65019,15000,1},{65023,15002,1}, {65026,15002,1},{65031,15002,1},{65033,15003,1},{65036,15008,1},{65034,15015,1}, {65031,15020,1},{65029,15020,1},{65024,15017,1},{65021,15007,1},{65019,15007,1}, {65014,15008,1},{65009,15008,1},{65006,15003,1},{65004,15005,1},{64993,15010,1}, {64984,15012,1},{64981,15017,1},{64981,15025,1},{64979,15028,1},{64981,15032,1}, {64989,15042,1},{64991,15048,1},{64988,15058,1},{64981,15062,1},{64983,15073,1}, {64986,15075,1},{64989,15075,1},{64991,15077,1},{64991,15085,1},{64986,15088,1}, {64988,15093,1},{64994,15102,1},{65009,15103,1},{65021,15108,1},{65026,15117,1}, {65038,15127,1},{65041,15135,1},{65046,15137,1},{65041,15148,1},{65044,15153,1}, {65043,15155,1},{65043,15158,1},{65039,15162,1},{65041,15165,1},{65046,15168,1}, {65053,15170,1},{65059,15167,1},{65074,15167,1},{65079,15162,1},{65086,15163,1}, {65089,15162,1},{65093,15160,1},{65096,15155,1},{65099,15155,1},{65104,15152,1}, {65108,15152,1},{65113,15150,1},{65116,15152,1},{65118,15153,1},{65116,15158,1}, {65116,15172,1},{65114,15172,1},{65116,15178,1},{65113,15185,1},{65104,15188,1}, {65103,15197,1},{65103,15200,1},{65109,15203,1},{65111,15203,1},{65114,15200,1}, {65116,15200,1},{65114,15207,1},{65116,15210,1},{65114,15213,1},{65116,15215,1}, {65121,15215,1},{65121,15218,1},{65279,15082,129},{65274,15087,1},{65271,15095,1}, {65268,15097,1},{65266,15103,1},{65261,15107,1},{65261,15108,1},{65256,15118,1}, {65251,15120,1},{65249,15122,1},{65248,15127,1},{65249,15128,1},{65249,15132,1}, {65246,15137,1},{65246,15142,1},{65238,15150,1},{65238,15153,1},{65233,15160,1}, {65231,15167,1},{65223,15173,1},{65221,15175,1},{65223,15178,1},{65219,15178,1}, {65216,15182,1},{65218,15185,1},{65216,15190,1},{65216,15192,1},{65214,15195,1}, {65213,15197,1},{65211,15205,1},{65208,15205,1},{65203,15212,1},{65191,15220,1}, {65181,15237,1},{65178,15237,1},{65176,15240,1},{65169,15243,1},{65169,15247,1}, {65171,15250,1},{65161,15255,1},{65156,15255,1},{65154,15257,1},{65153,15265,1}, {65148,15270,1},{65146,15273,1},{65146,15278,1},{65149,15280,1},{65149,15283,1}, {65139,15285,1},{65138,15287,1},{65136,15290,1},{65136,15295,1},{65131,15297,1}, {65119,15305,1},{65116,15307,1},{65113,15312,1},{65109,15313,1},{65101,15312,1}, {65098,15313,1},{65091,15307,1},{65088,15303,1},{65084,15305,1},{65081,15308,1}, {65076,15308,1},{65073,15303,1},{65068,15303,1},{65064,15300,1},{65059,15298,1}, {65056,15293,1},{65056,15292,1},{65051,15290,1},{65056,15287,1},{65059,15283,1}, {65061,15282,1},{65063,15282,1},{65066,15280,1},{65068,15275,1},{65069,15273,1}, {65078,15272,1},{65079,15270,1},{65091,15267,1},{65093,15268,1},{65099,15270,1}, {65111,15270,1},{65114,15268,1},{65118,15270,1},{65126,15263,1},{65131,15263,1}, {65149,15252,1},{65151,15248,1},{65163,15238,1},{65166,15237,1},{65171,15235,1}, {65173,15232,1},{65179,15228,1},{65179,15225,1},{65188,15215,1},{65189,15195,1}, {65206,15173,1},{65219,15162,1},{65224,15147,1},{65229,15143,1},{65241,15127,1}, {65241,15122,1},{65246,15118,1},{65246,15115,1},{65251,15112,1},{65254,15103,1}, {65258,15100,1},{65259,15093,1},{65258,15083,1},{65259,15075,1},{65263,15073,1}, {65264,15075,1},{65263,15080,1},{65266,15083,1},{65266,15090,1},{65268,15090,1}, {65269,15087,1},{65271,15088,1},{65273,15088,1},{65273,15082,1},{65274,15080,1}, {65278,15082,1},{65279,15080,1},{65279,15082,1},{65289,14995,129},{65288,14998,1}, {65289,15000,1},{65294,15007,1},{65294,15015,1},{65296,15015,1},{65299,15020,1}, {65296,15025,1},{65294,15028,1},{65293,15033,1},{65289,15037,1},{65289,15042,1}, {65288,15045,1},{65281,15045,1},{65281,15047,1},{65276,15045,1},{65271,15047,1}, {65269,15045,1},{65269,15040,1},{65268,15037,1},{65269,15033,1},{65268,15032,1}, {65269,15027,1},{65268,15018,1},{65269,15017,1},{65273,15012,1},{65279,15008,1}, {65284,15005,1},{65286,14997,1},{65288,14995,1},{65289,14995,1},{64993,15470,129}, {64994,15472,1},{64993,15475,1},{64988,15480,1},{64986,15482,1},{64984,15482,1}, {64984,15485,1},{64981,15488,1},{64981,15490,1},{64981,15492,1},{64983,15492,1}, {64981,15502,1},{64979,15503,1},{64981,15505,1},{64981,15507,1},{64978,15507,1}, {64976,15508,1},{64973,15510,1},{64971,15512,1},{64964,15515,1},{64961,15518,1}, {64954,15518,1},{64949,15520,1},{64948,15528,1},{64941,15533,1},{64941,15537,1}, {64936,15540,1},{64924,15543,1},{64918,15550,1},{64918,15555,1},{64914,15557,1}, {64914,15558,1},{64914,15562,1},{64916,15562,1},{64918,15563,1},{64914,15563,1}, {64911,15567,1},{64909,15567,1},{64908,15572,1},{64901,15577,1},{64899,15582,1}, {64888,15588,1},{64884,15592,1},{64873,15592,1},{64864,15597,1},{64858,15595,1}, {64856,15592,1},{64863,15593,1},{64863,15592,1},{64856,15588,1},{64859,15585,1}, {64858,15582,1},{64856,15580,1},{64854,15577,1},{64848,15570,1},{64853,15548,1}, {64854,15545,1},{64861,15538,1},{64863,15533,1},{64869,15530,1},{64883,15517,1}, {64883,15518,1},{64883,15522,1},{64891,15523,1},{64899,15523,1},{64904,15522,1}, {64908,15518,1},{64908,15510,1},{64914,15498,1},{64923,15495,1},{64933,15482,1}, {64936,15482,1},{64941,15475,1},{64948,15475,1},{64951,15475,1},{64959,15470,1}, {64976,15475,1},{64979,15473,1},{64978,15475,1},{64979,15477,1},{64981,15477,1}, {64986,15475,1},{64991,15468,1},{64993,15470,1},{65339,14740,129},{65334,14745,1}, {65329,14743,1},{65329,14733,1},{65331,14735,1},{65331,14732,1},{65328,14730,1}, {65329,14728,1},{65328,14727,1},{65324,14728,1},{65318,14720,1},{65319,14712,1}, {65316,14707,1},{65316,14705,1},{65318,14705,1},{65316,14698,1},{65318,14683,1}, {65319,14682,1},{65319,14680,1},{65324,14675,1},{65324,14672,1},{65323,14668,1}, {65319,14673,1},{65318,14672,1},{65318,14660,1},{65313,14657,1},{65316,14653,1}, {65321,14652,1},{65324,14653,1},{65324,14662,1},{65326,14662,1},{65334,14658,1}, {65336,14658,1},{65334,14662,1},{65339,14665,1},{65338,14668,1},{65339,14672,1}, {65338,14677,1},{65341,14685,1},{65339,14692,1},{65339,14705,1},{65338,14707,1}, {65339,14710,1},{65339,14712,1},{65334,14715,1},{65338,14717,1},{65336,14720,1}, {65333,14740,1},{65331,14742,1},{65336,14742,1},{65339,14738,1},{65339,14740,1}, {1840,12228,129},{1837,12232,1},{1827,12232,1},{1817,12225,1},{1812,12218,1}, {1808,12217,1},{1800,12218,1},{1790,12217,1},{1780,12213,1},{1773,12213,1}, {1770,12215,1},{1760,12217,1},{1735,12225,1},{1735,12228,1},{1733,12232,1}, {1735,12237,1},{1733,12238,1},{1730,12240,1},{1733,12240,1},{1727,12245,1}, {1728,12242,1},{1727,12242,1},{1722,12242,1},{1713,12242,1},{1712,12245,1}, {1713,12252,1},{1710,12253,1},{1698,12247,1},{1688,12245,1},{1680,12243,1}, {1653,12228,1},{1650,12223,1},{1645,12223,1},{1643,12220,1},{1640,12222,1}, {1642,12223,1},{1640,12223,1},{1630,12218,1},{1632,12223,1},{1627,12220,1}, {1623,12220,1},{1613,12208,1},{1608,12207,1},{1603,12200,1},{1610,12202,1}, {1615,12208,1},{1620,12210,1},{1622,12212,1},{1627,12215,1},{1625,12208,1}, {1618,12205,1},{1613,12193,1},{1613,12188,1},{1607,12178,1},{1608,12175,1}, {1602,12168,1},{1597,12165,1},{1593,12158,1},{1587,12155,1},{1582,12155,1}, {1577,12158,1},{1575,12165,1},{1567,12160,1},{1565,12162,1},{1563,12158,1}, {1555,12153,1},{1552,12148,1},{1542,12147,1},{1537,12143,1},{1538,12140,1}, {1538,12138,1},{1533,12138,1},{1528,12138,1},{1522,12142,1},{1518,12148,1}, {1507,12150,1},{1498,12157,1},{1490,12158,1},{1487,12162,1},{1485,12160,1}, {1482,12162,1},{1475,12172,1},{1472,12173,1},{1470,12162,1},{1465,12160,1}, {1440,12167,1},{1433,12173,1},{1428,12173,1},{1423,12175,1},{1418,12173,1}, {1412,12178,1},{1398,12195,1},{1393,12208,1},{1390,12222,1},{1392,12223,1}, {1395,12223,1},{1397,12220,1},{1400,12218,1},{1397,12228,1},{1398,12230,1}, {1400,12230,1},{1402,12232,1},{1402,12230,1},{1403,12228,1},{1410,12220,1}, {1417,12217,1},{1415,12218,1},{1417,12218,1},{1418,12220,1},{1418,12225,1}, {1425,12225,1},{1413,12227,1},{1413,12230,1},{1408,12230,1},{1413,12235,1}, {1417,12233,1},{1420,12233,1},{1420,12235,1},{1422,12235,1},{1422,12237,1}, {1425,12237,1},{1430,12238,1},{1430,12240,1},{1432,12242,1},{1433,12245,1}, {1433,12247,1},{1432,12252,1},{1435,12252,1},{1432,12260,1},{1430,12260,1}, {1432,12262,1},{1430,12262,1},{1428,12265,1},{1430,12267,1},{1428,12268,1}, {1433,12267,1},{1435,12268,1},{1433,12270,1},{1432,12272,1},{1433,12275,1}, {1432,12278,1},{1427,12280,1},{1428,12283,1},{1427,12287,1},{1423,12290,1}, {1420,12290,1},{1420,12293,1},{1410,12302,1},{1410,12303,1},{1407,12305,1}, {1403,12303,1},{1400,12305,1},{1398,12308,1},{1390,12308,1},{1388,12308,1}, {1387,12305,1},{1378,12303,1},{1375,12307,1},{1372,12312,1},{1373,12315,1}, {1372,12322,1},{1375,12327,1},{1380,12330,1},{1385,12330,1},{1390,12328,1}, {1393,12332,1},{1397,12333,1},{1392,12330,1},{1397,12322,1},{1400,12322,1}, {1400,12325,1},{1402,12323,1},{1403,12327,1},{1407,12325,1},{1405,12332,1}, {1407,12330,1},{1407,12333,1},{1410,12333,1},{1408,12335,1},{1405,12337,1}, {1403,12333,1},{1400,12335,1},{1403,12338,1},{1402,12338,1},{1402,12340,1}, {1398,12338,1},{1397,12340,1},{1390,12342,1},{1392,12345,1},{1395,12345,1}, {1395,12348,1},{1392,12348,1},{1392,12355,1},{1388,12363,1},{1388,12370,1}, {1393,12370,1},{1390,12373,1},{1385,12377,1},{1383,12378,1},{1383,12382,1}, {1382,12382,1},{1382,12387,1},{1380,12388,1},{1378,12393,1},{1377,12393,1}, {1375,12397,1},{1372,12397,1},{1373,12393,1},{1373,12392,1},{1373,12387,1}, {1372,12383,1},{1368,12382,1},{1368,12380,1},{1370,12375,1},{1372,12367,1}, {1370,12365,1},{1370,12363,1},{1372,12357,1},{1368,12355,1},{1360,12353,1}, {1357,12353,1},{1357,12357,1},{1350,12362,1},{1348,12367,1},{1338,12373,1}, {1337,12372,1},{1333,12375,1},{1328,12380,1},{1323,12382,1},{1327,12382,1}, {1323,12385,1},{1322,12377,1},{1315,12375,1},{1310,12377,1},{1308,12375,1}, {1307,12375,1},{1305,12378,1},{1307,12380,1},{1315,12388,1},{1310,12395,1}, {1310,12398,1},{1300,12408,1},{1307,12412,1},{1307,12415,1},{1305,12418,1}, {1302,12418,1},{1302,12415,1},{1298,12413,1},{1295,12413,1},{1290,12412,1}, {1288,12413,1},{1282,12415,1},{1267,12413,1},{1263,12408,1},{1260,12410,1}, {1258,12408,1},{1255,12408,1},{1253,12405,1},{1255,12402,1},{1253,12402,1}, {1255,12397,1},{1262,12393,1},{1262,12392,1},{1263,12390,1},{1265,12387,1}, {1272,12383,1},{1278,12385,1},{1282,12383,1},{1283,12380,1},{1283,12383,1}, {1287,12387,1},{1283,12392,1},{1285,12393,1},{1287,12395,1},{1287,12400,1}, {1292,12403,1},{1297,12402,1},{1295,12393,1},{1297,12390,1},{1297,12388,1}, {1292,12387,1},{1290,12385,1},{1290,12383,1},{1288,12383,1},{1287,12378,1}, {1287,12375,1},{1285,12373,1},{1287,12372,1},{1288,12373,1},{1288,12368,1}, {1287,12370,1},{1290,12367,1},{1293,12372,1},{1292,12367,1},{1288,12365,1}, {1290,12360,1},{1293,12355,1},{1295,12352,1},{1303,12343,1},{1305,12340,1}, {1303,12337,1},{1302,12330,1},{1305,12328,1},{1308,12328,1},{1313,12328,1}, {1320,12332,1},{1325,12330,1},{1328,12323,1},{1332,12323,1},{1333,12320,1}, {1342,12318,1},{1345,12315,1},{1345,12313,1},{1350,12305,1},{1352,12297,1}, {1358,12288,1},{1365,12282,1},{1368,12287,1},{1373,12283,1},{1378,12275,1}, {1378,12277,1},{1382,12273,1},{1383,12268,1},{1382,12267,1},{1383,12265,1}, {1387,12265,1},{1390,12258,1},{1393,12257,1},{1392,12255,1},{1393,12257,1}, {1397,12253,1},{1393,12252,1},{1393,12250,1},{1395,12243,1},{1397,12242,1}, {1395,12242,1},{1383,12250,1},{1382,12252,1},{1373,12252,1},{1373,12248,1}, {1372,12248,1},{1365,12250,1},{1358,12255,1},{1353,12263,1},{1352,12263,1}, {1355,12257,1},{1343,12265,1},{1323,12268,1},{1322,12267,1},{1317,12260,1}, {1323,12250,1},{1332,12252,1},{1335,12252,1},{1342,12247,1},{1348,12240,1}, {1353,12238,1},{1355,12233,1},{1358,12232,1},{1360,12228,1},{1358,12227,1}, {1358,12225,1},{1362,12225,1},{1362,12220,1},{1375,12212,1},{1380,12207,1}, {1378,12205,1},{1380,12202,1},{1380,12198,1},{1383,12197,1},{1385,12190,1}, {1388,12187,1},{1390,12183,1},{1393,12180,1},{1395,12175,1},{1395,12172,1}, {1392,12170,1},{1390,12163,1},{1388,12162,1},{1385,12148,1},{1380,12143,1}, {1372,12145,1},{1370,12143,1},{1370,12145,1},{1368,12145,1},{1365,12142,1}, {1367,12138,1},{1365,12137,1},{1360,12128,1},{1363,12115,1},{1362,12108,1}, {1363,12103,1},{1372,12105,1},{1375,12105,1},{1378,12100,1},{1377,12097,1}, {1368,12088,1},{1372,12088,1},{1377,12093,1},{1382,12090,1},{1388,12092,1}, {1390,12088,1},{1393,12073,1},{1392,12070,1},{1390,12070,1},{1385,12072,1}, {1385,12065,1},{1380,12067,1},{1377,12067,1},{1380,12063,1},{1385,12062,1}, {1392,12062,1},{1397,12060,1},{1398,12063,1},{1402,12062,1},{1410,12062,1}, {1413,12058,1},{1415,12060,1},{1417,12058,1},{1418,12060,1},{1420,12058,1}, {1422,12058,1},{1423,12062,1},{1425,12062,1},{1428,12065,1},{1428,12070,1}, {1445,12088,1},{1447,12092,1},{1448,12095,1},{1452,12098,1},{1455,12098,1}, {1460,12095,1},{1463,12095,1},{1472,12090,1},{1473,12085,1},{1477,12083,1}, {1478,12065,1},{1480,12063,1},{1487,12062,1},{1482,12062,1},{1482,12058,1}, {1490,12060,1},{1488,12058,1},{1483,12057,1},{1483,12055,1},{1472,12053,1}, {1467,12058,1},{1453,12060,1},{1448,12060,1},{1443,12055,1},{1443,12048,1}, {1442,12048,1},{1447,12038,1},{1452,12037,1},{1455,12038,1},{1462,12037,1}, {1463,12033,1},{1465,12030,1},{1470,12025,1},{1473,12025,1},{1475,12027,1}, {1477,12025,1},{1480,12028,1},{1483,12028,1},{1483,12027,1},{1485,12025,1}, {1485,12023,1},{1488,12020,1},{1482,12020,1},{1477,12018,1},{1475,12017,1}, {1480,12008,1},{1482,12010,1},{1482,12008,1},{1492,12005,1},{1505,12005,1}, {1518,12002,1},{1523,12000,1},{1527,12002,1},{1542,11988,1},{1545,11990,1}, {1548,11990,1},{1547,11992,1},{1548,11995,1},{1552,11997,1},{1557,11993,1}, {1557,11992,1},{1560,11990,1},{1568,11993,1},{1573,11987,1},{1575,11990,1}, {1580,11988,1},{1583,11990,1},{1585,11990,1},{1595,11983,1},{1595,11982,1}, {1592,11980,1},{1592,11977,1},{1595,11975,1},{1602,11977,1},{1608,11977,1}, {1613,11978,1},{1618,11975,1},{1632,11978,1},{1637,11982,1},{1638,11987,1}, {1638,11992,1},{1633,11992,1},{1623,11990,1},{1622,11997,1},{1618,12002,1}, {1618,12003,1},{1618,12005,1},{1615,12010,1},{1607,12010,1},{1603,12013,1}, {1603,12018,1},{1605,12028,1},{1603,12030,1},{1602,12030,1},{1603,12032,1}, {1605,12032,1},{1607,12037,1},{1607,12032,1},{1615,12040,1},{1623,12038,1}, {1628,12037,1},{1627,12035,1},{1628,12033,1},{1633,12033,1},{1638,12032,1}, {1643,12032,1},{1650,12030,1},{1655,12030,1},{1662,12027,1},{1662,12030,1}, {1665,12030,1},{1672,12032,1},{1678,12032,1},{1683,12032,1},{1685,12037,1}, {1697,12043,1},{1715,12042,1},{1722,12040,1},{1723,12042,1},{1733,12042,1}, {1737,12045,1},{1742,12043,1},{1750,12040,1},{1752,12040,1},{1753,12035,1}, {1757,12033,1},{1768,12035,1},{1770,12040,1},{1773,12042,1},{1778,12038,1}, {1782,12043,1},{1792,12042,1},{1795,12045,1},{1800,12048,1},{1808,12047,1}, {1820,12053,1},{1822,12052,1},{1832,12058,1},{1842,12058,1},{1848,12055,1}, {1853,12060,1},{1855,12062,1},{1853,12067,1},{1855,12073,1},{1857,12077,1}, {1863,12078,1},{1865,12083,1},{1857,12090,1},{1857,12095,1},{1862,12102,1}, {1862,12108,1},{1863,12110,1},{1862,12117,1},{1853,12130,1},{1838,12158,1}, {1832,12165,1},{1835,12163,1},{1837,12163,1},{1828,12185,1},{1827,12193,1}, {1828,12197,1},{1832,12203,1},{1838,12210,1},{1840,12212,1},{1850,12213,1}, {1852,12217,1},{1852,12223,1},{1845,12225,1},{1840,12230,1},{1405,12423,129}, {1403,12425,1},{1395,12427,1},{1393,12430,1},{1390,12430,1},{1393,12433,1}, {1390,12438,1},{1387,12442,1},{1385,12438,1},{1380,12442,1},{1378,12438,1}, {1377,12440,1},{1372,12438,1},{1367,12442,1},{1365,12435,1},{1360,12435,1}, {1355,12433,1},{1360,12428,1},{1358,12422,1},{1353,12420,1},{1352,12418,1}, {1360,12408,1},{1360,12405,1},{1365,12405,1},{1367,12402,1},{1370,12405,1}, {1370,12408,1},{1377,12412,1},{1392,12413,1},{1398,12412,1},{1402,12413,1}, {1407,12413,1},{1407,12418,1},{1410,12420,1},{1405,12423,1},{1258,12327,129}, {1255,12337,1},{1253,12333,1},{1250,12335,1},{1247,12332,1},{1243,12332,1}, {1243,12333,1},{1247,12335,1},{1247,12337,1},{1250,12337,1},{1252,12342,1}, {1245,12350,1},{1245,12355,1},{1243,12357,1},{1238,12360,1},{1237,12358,1}, {1235,12358,1},{1235,12362,1},{1237,12362,1},{1235,12365,1},{1233,12370,1}, {1218,12378,1},{1218,12380,1},{1222,12378,1},{1223,12378,1},{1223,12382,1}, {1220,12385,1},{1220,12387,1},{1220,12388,1},{1197,12405,1},{1195,12405,1}, {1197,12403,1},{1200,12400,1},{1197,12402,1},{1195,12400,1},{1193,12403,1}, {1185,12407,1},{1180,12405,1},{1173,12407,1},{1172,12407,1},{1173,12405,1}, {1180,12400,1},{1187,12392,1},{1187,12388,1},{1192,12385,1},{1190,12383,1}, {1192,12380,1},{1192,12373,1},{1195,12372,1},{1198,12375,1},{1200,12373,1}, {1200,12372,1},{1200,12370,1},{1205,12365,1},{1208,12367,1},{1207,12360,1}, {1210,12360,1},{1215,12358,1},{1220,12353,1},{1220,12350,1},{1220,12343,1}, {1210,12337,1},{1208,12333,1},{1203,12330,1},{1197,12323,1},{1197,12320,1}, {1192,12318,1},{1192,12315,1},{1195,12315,1},{1198,12317,1},{1202,12318,1}, {1213,12322,1},{1212,12323,1},{1213,12323,1},{1215,12325,1},{1217,12327,1}, {1220,12327,1},{1222,12330,1},{1223,12328,1},{1223,12327,1},{1223,12322,1}, {1227,12322,1},{1232,12325,1},{1238,12327,1},{1240,12328,1},{1243,12328,1}, {1245,12323,1},{1258,12323,1},{1258,12327,1},{1352,12037,129},{1352,12045,1}, {1350,12047,1},{1352,12057,1},{1348,12062,1},{1348,12072,1},{1347,12075,1}, {1352,12092,1},{1350,12093,1},{1352,12095,1},{1352,12097,1},{1353,12095,1}, {1352,12098,1},{1350,12095,1},{1343,12102,1},{1340,12105,1},{1342,12112,1}, {1340,12113,1},{1337,12112,1},{1342,12113,1},{1343,12120,1},{1332,12133,1}, {1325,12138,1},{1322,12143,1},{1313,12143,1},{1313,12152,1},{1312,12155,1}, {1308,12155,1},{1303,12148,1},{1293,12150,1},{1287,12148,1},{1280,12148,1}, {1275,12148,1},{1270,12152,1},{1262,12155,1},{1258,12152,1},{1253,12148,1}, {1252,12143,1},{1248,12143,1},{1247,12143,1},{1243,12142,1},{1235,12143,1}, {1237,12140,1},{1235,12138,1},{1228,12140,1},{1232,12135,1},{1228,12128,1}, {1225,12125,1},{1222,12123,1},{1225,12118,1},{1223,12112,1},{1227,12110,1}, {1233,12110,1},{1230,12112,1},{1230,12113,1},{1232,12113,1},{1232,12112,1}, {1235,12110,1},{1232,12108,1},{1242,12098,1},{1252,12092,1},{1258,12093,1}, {1262,12092,1},{1272,12085,1},{1272,12078,1},{1282,12078,1},{1283,12077,1}, {1290,12078,1},{1298,12075,1},{1313,12067,1},{1318,12063,1},{1320,12060,1}, {1322,12058,1},{1323,12055,1},{1322,12052,1},{1325,12052,1},{1328,12048,1}, {1340,12047,1},{1342,12043,1},{1342,12038,1},{1338,12038,1},{1338,12037,1}, {1338,12033,1},{1343,12030,1},{1348,12032,1},{1352,12038,1},{1258,12430,129}, {1253,12437,1},{1255,12440,1},{1253,12445,1},{1253,12457,1},{1250,12465,1}, {1252,12475,1},{1253,12482,1},{1253,12487,1},{1255,12490,1},{1258,12488,1}, {1255,12493,1},{1258,12497,1},{1255,12498,1},{1255,12502,1},{1252,12503,1}, {1255,12508,1},{1258,12510,1},{1257,12513,1},{1257,12517,1},{1250,12527,1}, {1247,12528,1},{1245,12532,1},{1242,12532,1},{1240,12535,1},{1237,12530,1}, {1233,12530,1},{1232,12532,1},{1230,12532,1},{1232,12535,1},{1228,12535,1}, {1230,12538,1},{1228,12538,1},{1228,12543,1},{1225,12548,1},{1223,12548,1}, {1223,12550,1},{1218,12553,1},{1217,12553,1},{1217,12548,1},{1215,12548,1}, {1215,12550,1},{1213,12547,1},{1212,12545,1},{1210,12547,1},{1210,12550,1}, {1208,12550,1},{1205,12552,1},{1195,12545,1},{1190,12543,1},{1183,12547,1}, {1178,12548,1},{1175,12543,1},{1175,12548,1},{1168,12550,1},{1165,12547,1}, {1165,12548,1},{1160,12547,1},{1158,12550,1},{1153,12550,1},{1148,12553,1}, {1145,12552,1},{1145,12555,1},{1142,12555,1},{1140,12560,1},{1135,12563,1}, {1130,12562,1},{1125,12555,1},{1120,12555,1},{1118,12558,1},{1120,12562,1}, {1123,12562,1},{1120,12570,1},{1115,12572,1},{1105,12578,1},{1103,12577,1}, {1103,12572,1},{1107,12572,1},{1108,12570,1},{1112,12572,1},{1113,12567,1}, {1112,12560,1},{1113,12558,1},{1115,12557,1},{1113,12553,1},{1108,12553,1}, {1113,12547,1},{1108,12542,1},{1112,12542,1},{1110,12540,1},{1112,12537,1}, {1113,12535,1},{1115,12532,1},{1112,12527,1},{1110,12525,1},{1108,12523,1}, {1112,12522,1},{1122,12520,1},{1127,12517,1},{1128,12507,1},{1128,12500,1}, {1132,12498,1},{1135,12500,1},{1142,12500,1},{1145,12497,1},{1147,12493,1}, {1150,12492,1},{1147,12488,1},{1147,12485,1},{1150,12483,1},{1153,12487,1}, {1153,12490,1},{1157,12490,1},{1157,12495,1},{1158,12497,1},{1162,12500,1}, {1167,12500,1},{1172,12503,1},{1172,12505,1},{1175,12505,1},{1177,12500,1}, {1173,12493,1},{1175,12490,1},{1183,12485,1},{1185,12478,1},{1187,12480,1}, {1188,12480,1},{1190,12480,1},{1188,12482,1},{1192,12482,1},{1190,12475,1}, {1192,12477,1},{1193,12473,1},{1197,12473,1},{1203,12467,1},{1205,12460,1}, {1205,12455,1},{1210,12448,1},{1215,12445,1},{1217,12443,1},{1218,12440,1}, {1230,12435,1},{1237,12435,1},{1237,12433,1},{1243,12432,1},{1247,12430,1}, {1250,12430,1},{1253,12428,1},{1255,12428,1},{1258,12430,1},{1153,12435,129}, {1147,12442,1},{1138,12448,1},{1145,12448,1},{1142,12453,1},{1133,12457,1}, {1130,12460,1},{1132,12473,1},{1137,12480,1},{1143,12483,1},{1142,12488,1}, {1143,12490,1},{1142,12492,1},{1142,12495,1},{1138,12498,1},{1130,12497,1}, {1125,12498,1},{1125,12502,1},{1122,12502,1},{1125,12503,1},{1117,12503,1}, {1103,12505,1},{1097,12505,1},{1087,12502,1},{1075,12502,1},{1072,12505,1}, {1070,12512,1},{1065,12513,1},{1058,12520,1},{1053,12518,1},{1048,12520,1}, {1043,12520,1},{1038,12523,1},{1037,12527,1},{1028,12528,1},{1025,12523,1}, {1028,12513,1},{1018,12513,1},{1023,12508,1},{1037,12502,1},{1037,12498,1}, {1028,12498,1},{1022,12500,1},{1010,12503,1},{1002,12503,1},{1008,12495,1}, {1010,12492,1},{1013,12488,1},{1013,12482,1},{1017,12477,1},{1020,12477,1}, {1028,12480,1},{1035,12478,1},{1042,12473,1},{1048,12473,1},{1053,12477,1}, {1060,12477,1},{1067,12480,1},{1080,12478,1},{1087,12472,1},{1093,12470,1}, {1100,12462,1},{1100,12455,1},{1097,12455,1},{1092,12455,1},{1087,12452,1}, {1087,12450,1},{1090,12447,1},{1090,12445,1},{1093,12443,1},{1092,12440,1}, {1098,12442,1},{1102,12442,1},{1103,12440,1},{1107,12438,1},{1113,12442,1}, {1122,12440,1},{1125,12440,1},{1127,12440,1},{1130,12440,1},{1132,12435,1}, {1135,12435,1},{1137,12437,1},{1138,12433,1},{1140,12435,1},{1142,12433,1}, {1150,12430,1},{1153,12430,1},{1155,12432,1},{1153,12435,1},{980,12545,129}, {975,12558,1},{963,12562,1},{960,12565,1},{958,12570,1},{957,12572,1},{957,12575,1}, {955,12578,1},{952,12588,1},{948,12590,1},{950,12593,1},{945,12595,1},{948,12597,1}, {943,12597,1},{942,12592,1},{940,12590,1},{937,12595,1},{940,12600,1},{937,12598,1}, {930,12600,1},{923,12607,1},{925,12610,1},{930,12620,1},{930,12622,1},{920,12618,1}, {908,12618,1},{907,12622,1},{903,12623,1},{895,12632,1},{883,12635,1},{877,12632,1}, {875,12627,1},{873,12625,1},{873,12623,1},{872,12623,1},{868,12627,1},{868,12620,1}, {865,12613,1},{860,12610,1},{852,12617,1},{852,12623,1},{855,12622,1},{855,12627,1}, {852,12635,1},{853,12637,1},{850,12640,1},{847,12640,1},{845,12637,1},{842,12637,1}, {842,12638,1},{837,12637,1},{835,12633,1},{832,12635,1},{828,12640,1},{820,12633,1}, {818,12637,1},{820,12642,1},{823,12645,1},{820,12647,1},{812,12645,1},{810,12647,1}, {808,12645,1},{803,12643,1},{800,12643,1},{797,12645,1},{792,12638,1},{788,12638,1}, {783,12640,1},{780,12643,1},{780,12645,1},{773,12650,1},{772,12658,1},{762,12657,1}, {758,12658,1},{747,12662,1},{745,12660,1},{742,12657,1},{738,12658,1},{730,12657,1}, {727,12662,1},{720,12658,1},{718,12655,1},{712,12653,1},{708,12648,1},{703,12647,1}, {698,12647,1},{700,12635,1},{698,12633,1},{693,12632,1},{692,12630,1},{688,12632,1}, {683,12635,1},{678,12633,1},{680,12630,1},{685,12628,1},{693,12623,1},{693,12620,1}, {692,12618,1},{688,12618,1},{690,12617,1},{683,12618,1},{675,12625,1},{667,12623,1}, {650,12622,1},{645,12622,1},{640,12620,1},{627,12620,1},{628,12618,1},{637,12617,1}, {638,12613,1},{643,12613,1},{652,12610,1},{665,12608,1},{673,12610,1},{683,12608,1}, {688,12600,1},{693,12598,1},{702,12598,1},{712,12588,1},{715,12590,1},{722,12585,1}, {735,12585,1},{735,12582,1},{735,12580,1},{728,12568,1},{725,12567,1},{720,12565,1}, {712,12565,1},{705,12560,1},{703,12557,1},{703,12555,1},{698,12548,1},{692,12548,1}, {678,12540,1},{668,12538,1},{660,12540,1},{658,12543,1},{660,12543,1},{662,12543,1}, {660,12547,1},{652,12552,1},{652,12557,1},{650,12558,1},{643,12558,1},{635,12563,1}, {630,12565,1},{623,12567,1},{610,12572,1},{593,12567,1},{573,12550,1},{558,12540,1}, {557,12538,1},{557,12530,1},{563,12530,1},{572,12528,1},{573,12523,1},{577,12522,1}, {578,12518,1},{582,12518,1},{583,12520,1},{588,12522,1},{592,12525,1},{598,12528,1}, {607,12527,1},{610,12525,1},{610,12520,1},{610,12517,1},{610,12515,1},{588,12508,1}, {585,12507,1},{587,12502,1},{587,12495,1},{593,12478,1},{593,12473,1},{598,12465,1}, {598,12460,1},{602,12458,1},{608,12445,1},{620,12422,1},{623,12418,1},{628,12418,1}, {633,12412,1},{640,12408,1},{640,12407,1},{645,12403,1},{653,12403,1},{655,12405,1}, {658,12405,1},{665,12405,1},{673,12403,1},{678,12403,1},{680,12403,1},{678,12400,1}, {682,12397,1},{687,12397,1},{695,12397,1},{712,12403,1},{718,12415,1},{728,12422,1}, {735,12422,1},{740,12423,1},{742,12422,1},{740,12418,1},{745,12415,1},{755,12410,1}, {762,12405,1},{763,12398,1},{768,12395,1},{770,12378,1},{773,12375,1},{778,12375,1}, {782,12368,1},{782,12363,1},{785,12358,1},{780,12345,1},{777,12345,1},{772,12350,1}, {768,12350,1},{763,12345,1},{762,12340,1},{757,12340,1},{758,12337,1},{757,12335,1}, {752,12338,1},{748,12340,1},{747,12343,1},{745,12345,1},{738,12345,1},{737,12343,1}, {740,12338,1},{742,12333,1},{748,12328,1},{752,12328,1},{752,12323,1},{747,12318,1}, {753,12312,1},{757,12312,1},{758,12317,1},{762,12318,1},{767,12313,1},{775,12312,1}, {765,12305,1},{762,12305,1},{760,12303,1},{757,12303,1},{752,12302,1},{747,12302,1}, {748,12295,1},{755,12292,1},{750,12287,1},{747,12288,1},{745,12285,1},{745,12282,1}, {748,12282,1},{748,12278,1},{753,12280,1},{752,12282,1},{753,12283,1},{762,12280,1}, {775,12282,1},{775,12273,1},{778,12270,1},{778,12265,1},{773,12257,1},{770,12253,1}, {768,12248,1},{758,12243,1},{757,12243,1},{758,12248,1},{755,12248,1},{750,12245,1}, {753,12245,1},{747,12235,1},{743,12235,1},{738,12238,1},{732,12233,1},{732,12230,1}, {730,12228,1},{718,12225,1},{710,12225,1},{705,12220,1},{697,12217,1},{690,12213,1}, {688,12210,1},{690,12207,1},{697,12195,1},{703,12190,1},{710,12188,1},{717,12190,1}, {723,12195,1},{730,12205,1},{735,12203,1},{753,12207,1},{755,12212,1},{758,12215,1}, {760,12212,1},{768,12212,1},{775,12210,1},{797,12223,1},{805,12237,1},{807,12247,1}, {807,12248,1},{807,12250,1},{808,12257,1},{810,12263,1},{817,12268,1},{812,12270,1}, {812,12272,1},{812,12283,1},{815,12293,1},{822,12302,1},{825,12300,1},{827,12297,1}, {830,12295,1},{833,12300,1},{840,12298,1},{848,12303,1},{852,12307,1},{853,12320,1}, {852,12323,1},{853,12332,1},{857,12335,1},{862,12335,1},{863,12342,1},{865,12343,1}, {870,12340,1},{872,12340,1},{872,12347,1},{868,12347,1},{870,12352,1},{865,12350,1}, {862,12352,1},{862,12357,1},{858,12358,1},{865,12362,1},{867,12360,1},{867,12362,1}, {867,12363,1},{865,12363,1},{863,12367,1},{863,12372,1},{860,12373,1},{860,12377,1}, {857,12377,1},{853,12380,1},{850,12380,1},{847,12383,1},{843,12385,1},{817,12388,1}, {807,12378,1},{803,12368,1},{798,12367,1},{797,12368,1},{800,12375,1},{810,12387,1}, {812,12392,1},{817,12397,1},{818,12405,1},{818,12417,1},{820,12423,1},{827,12427,1}, {832,12425,1},{837,12427,1},{838,12428,1},{853,12432,1},{862,12443,1},{862,12448,1}, {858,12447,1},{857,12452,1},{852,12458,1},{852,12465,1},{845,12463,1},{843,12463,1}, {848,12467,1},{848,12472,1},{850,12475,1},{855,12475,1},{860,12477,1},{867,12475,1}, {870,12475,1},{873,12478,1},{877,12478,1},{880,12478,1},{897,12478,1},{898,12478,1}, {902,12482,1},{900,12490,1},{895,12495,1},{892,12503,1},{882,12510,1},{885,12517,1}, {887,12518,1},{893,12520,1},{902,12517,1},{907,12520,1},{908,12522,1},{902,12527,1}, {900,12530,1},{897,12543,1},{900,12548,1},{900,12552,1},{907,12553,1},{920,12553,1}, {923,12552,1},{928,12552,1},{942,12547,1},{945,12547,1},{965,12540,1},{972,12540,1}, {982,12545,1},{672,12208,129},{672,12210,1},{672,12215,1},{667,12217,1}, {667,12223,1},{663,12227,1},{662,12233,1},{658,12230,1},{657,12223,1},{652,12220,1}, {647,12220,1},{645,12218,1},{640,12202,1},{640,12197,1},{645,12193,1},{650,12188,1}, {657,12188,1},{658,12183,1},{660,12180,1},{665,12182,1},{667,12183,1},{667,12188,1}, {667,12193,1},{673,12202,1},{673,12208,1},{672,12208,1},{1010,12443,129}, {1005,12450,1},{1007,12452,1},{1005,12453,1},{1002,12458,1},{997,12458,1}, {997,12457,1},{993,12457,1},{993,12455,1},{988,12458,1},{985,12455,1},{980,12462,1}, {977,12462,1},{973,12458,1},{973,12453,1},{977,12450,1},{972,12443,1},{965,12442,1}, {963,12437,1},{960,12427,1},{962,12420,1},{960,12405,1},{962,12390,1},{967,12387,1}, {972,12388,1},{973,12387,1},{973,12382,1},{975,12380,1},{978,12380,1},{983,12382,1}, {992,12388,1},{992,12392,1},{993,12393,1},{998,12405,1},{1007,12408,1}, {1007,12412,1},{1008,12412,1},{1013,12417,1},{1015,12423,1},{1015,12430,1}, {1017,12430,1},{1015,12435,1},{1013,12435,1},{1010,12437,1},{1015,12438,1}, {1013,12440,1},{1010,12442,1},{1010,12445,1},{1122,12407,129},{1113,12403,1}, {1108,12400,1},{1105,12402,1},{1105,12405,1},{1097,12407,1},{1093,12405,1}, {1088,12407,1},{1075,12402,1},{1060,12405,1},{1057,12403,1},{1055,12405,1}, {1048,12405,1},{1040,12400,1},{1038,12402,1},{1035,12398,1},{1037,12398,1}, {1033,12397,1},{1028,12390,1},{1023,12387,1},{1022,12378,1},{1018,12377,1}, {1013,12372,1},{1008,12370,1},{1008,12367,1},{1002,12363,1},{988,12363,1}, {985,12360,1},{980,12355,1},{957,12348,1},{940,12335,1},{942,12332,1},{950,12332,1}, {978,12337,1},{988,12342,1},{992,12340,1},{995,12338,1},{998,12338,1},{997,12342,1}, {998,12342,1},{1007,12343,1},{1013,12352,1},{1018,12353,1},{1027,12360,1}, {1032,12360,1},{1048,12372,1},{1055,12372,1},{1060,12375,1},{1063,12377,1}, {1072,12382,1},{1073,12385,1},{1098,12393,1},{1102,12392,1},{1105,12393,1}, {1110,12395,1},{1108,12397,1},{1115,12395,1},{1118,12397,1},{1123,12400,1}, {1127,12402,1},{1127,12407,1},{1125,12408,1},{1122,12407,1},{1088,12353,129}, {1083,12355,1},{1083,12358,1},{1078,12357,1},{1070,12352,1},{1052,12348,1}, {1043,12338,1},{1033,12335,1},{1025,12333,1},{1018,12330,1},{1010,12330,1}, {997,12322,1},{993,12320,1},{992,12317,1},{985,12315,1},{963,12317,1},{963,12313,1}, {958,12318,1},{955,12317,1},{958,12317,1},{958,12315,1},{955,12313,1},{953,12320,1}, {948,12320,1},{945,12323,1},{932,12333,1},{920,12330,1},{910,12322,1},{907,12317,1}, {905,12315,1},{907,12310,1},{905,12305,1},{903,12303,1},{907,12297,1},{910,12295,1}, {920,12290,1},{930,12288,1},{933,12285,1},{937,12280,1},{937,12272,1},{943,12260,1}, {955,12252,1},{957,12248,1},{962,12248,1},{963,12247,1},{965,12247,1},{967,12245,1}, {967,12242,1},{970,12243,1},{970,12240,1},{982,12242,1},{983,12240,1},{997,12247,1}, {998,12255,1},{997,12262,1},{997,12268,1},{1000,12273,1},{1007,12280,1}, {1007,12287,1},{1012,12287,1},{1022,12285,1},{1037,12287,1},{1052,12282,1}, {1053,12283,1},{1055,12288,1},{1062,12293,1},{1072,12297,1},{1078,12298,1}, {1083,12295,1},{1088,12298,1},{1092,12300,1},{1092,12308,1},{1098,12320,1}, {1100,12323,1},{1095,12333,1},{1095,12340,1},{1092,12340,1},{1093,12343,1}, {1093,12347,1},{1092,12350,1},{1093,12352,1},{1088,12353,1},{1190,12203,129}, {1182,12210,1},{1180,12222,1},{1173,12233,1},{1173,12238,1},{1168,12242,1}, {1158,12252,1},{1157,12258,1},{1152,12260,1},{1150,12262,1},{1153,12265,1}, {1155,12265,1},{1157,12265,1},{1153,12270,1},{1157,12268,1},{1157,12272,1}, {1160,12273,1},{1162,12273,1},{1160,12283,1},{1158,12287,1},{1155,12287,1}, {1152,12293,1},{1147,12287,1},{1143,12290,1},{1143,12292,1},{1147,12295,1}, {1148,12300,1},{1153,12310,1},{1160,12317,1},{1152,12317,1},{1152,12313,1}, {1150,12312,1},{1148,12315,1},{1147,12315,1},{1147,12317,1},{1143,12315,1}, {1138,12317,1},{1135,12315,1},{1133,12312,1},{1132,12313,1},{1123,12312,1}, {1120,12313,1},{1118,12313,1},{1117,12312,1},{1115,12310,1},{1117,12308,1}, {1117,12305,1},{1108,12302,1},{1107,12298,1},{1105,12298,1},{1103,12295,1}, {1107,12293,1},{1102,12292,1},{1103,12290,1},{1102,12287,1},{1102,12285,1}, {1098,12280,1},{1095,12278,1},{1087,12280,1},{1080,12273,1},{1078,12263,1}, {1075,12260,1},{1072,12260,1},{1072,12258,1},{1070,12260,1},{1068,12253,1}, {1067,12237,1},{1063,12222,1},{1058,12217,1},{1058,12212,1},{1048,12205,1}, {1045,12202,1},{1042,12198,1},{1043,12193,1},{1050,12193,1},{1057,12197,1}, {1067,12198,1},{1072,12197,1},{1075,12193,1},{1077,12193,1},{1092,12198,1}, {1103,12205,1},{1118,12205,1},{1125,12205,1},{1130,12203,1},{1135,12207,1}, {1147,12207,1},{1148,12208,1},{1165,12210,1},{1170,12210,1},{1173,12208,1}, {1173,12202,1},{1177,12195,1},{1175,12187,1},{1177,12185,1},{1182,12188,1}, {1190,12190,1},{1193,12197,1},{1190,12203,1},{1232,11990,129},{1232,11992,1}, {1227,11993,1},{1225,12002,1},{1220,12008,1},{1220,12010,1},{1220,12012,1}, {1217,12008,1},{1217,12012,1},{1212,12018,1},{1212,12022,1},{1222,12022,1}, {1220,12025,1},{1213,12025,1},{1213,12028,1},{1208,12033,1},{1205,12035,1}, {1203,12032,1},{1202,12032,1},{1203,12033,1},{1202,12035,1},{1200,12035,1}, {1198,12030,1},{1200,12028,1},{1198,12025,1},{1200,12018,1},{1202,12018,1}, {1202,12013,1},{1200,12013,1},{1197,12013,1},{1197,12010,1},{1200,12008,1}, {1200,12003,1},{1200,12002,1},{1202,11998,1},{1205,11997,1},{1205,11995,1}, {1210,11993,1},{1213,11993,1},{1220,11990,1},{1220,11988,1},{1217,11985,1}, {1222,11987,1},{1225,11987,1},{1227,11992,1},{1227,11987,1},{1230,11987,1}, {1232,11988,1},{1232,11992,1},{1142,11952,129},{1133,11952,1},{1132,11953,1}, {1133,11955,1},{1130,11957,1},{1118,11955,1},{1113,11952,1},{1110,11952,1}, {1107,11953,1},{1108,11955,1},{1102,11957,1},{1100,11957,1},{1100,11950,1}, {1087,11950,1},{1082,11953,1},{1083,11960,1},{1072,11960,1},{1067,11958,1}, {1067,11963,1},{1068,11965,1},{1065,11967,1},{1065,11963,1},{1062,11965,1}, {1055,11967,1},{1053,11972,1},{1050,11972,1},{1048,11968,1},{1040,11960,1}, {1037,11957,1},{1037,11952,1},{1037,11945,1},{1033,11938,1},{1030,11932,1}, {1020,11925,1},{1008,11922,1},{1003,11918,1},{1000,11903,1},{998,11900,1}, {997,11893,1},{998,11890,1},{993,11882,1},{995,11878,1},{992,11878,1},{992,11875,1}, {985,11875,1},{978,11878,1},{973,11878,1},{973,11873,1},{978,11873,1},{978,11870,1}, {977,11870,1},{972,11870,1},{970,11872,1},{968,11877,1},{967,11877,1},{967,11873,1}, {965,11873,1},{958,11870,1},{957,11867,1},{952,11865,1},{940,11855,1},{937,11855,1}, {930,11850,1},{928,11843,1},{918,11835,1},{918,11830,1},{915,11825,1},{913,11813,1}, {905,11812,1},{903,11810,1},{902,11808,1},{888,11802,1},{882,11788,1},{878,11785,1}, {877,11783,1},{868,11775,1},{868,11770,1},{865,11765,1},{867,11758,1},{863,11755,1}, {857,11755,1},{853,11752,1},{850,11750,1},{852,11747,1},{848,11740,1},{850,11738,1}, {848,11737,1},{842,11727,1},{837,11722,1},{833,11720,1},{833,11718,1},{838,11718,1}, {843,11722,1},{850,11722,1},{858,11727,1},{860,11727,1},{860,11728,1},{865,11730,1}, {867,11733,1},{870,11735,1},{870,11733,1},{873,11737,1},{877,11743,1},{892,11753,1}, {898,11763,1},{905,11765,1},{908,11770,1},{907,11772,1},{907,11777,1},{913,11778,1}, {915,11778,1},{920,11788,1},{925,11790,1},{925,11798,1},{923,11800,1},{923,11802,1}, {927,11803,1},{933,11813,1},{938,11813,1},{942,11818,1},{948,11822,1},{953,11828,1}, {958,11833,1},{965,11835,1},{967,11842,1},{973,11847,1},{975,11850,1},{978,11853,1}, {988,11862,1},{992,11862,1},{993,11865,1},{997,11867,1},{1000,11865,1}, {1003,11870,1},{1003,11872,1},{1012,11877,1},{1008,11878,1},{1007,11877,1}, {1005,11880,1},{1010,11883,1},{1012,11882,1},{1018,11882,1},{1018,11885,1}, {1022,11888,1},{1020,11893,1},{1023,11895,1},{1028,11895,1},{1032,11902,1}, {1033,11903,1},{1035,11903,1},{1033,11898,1},{1035,11897,1},{1040,11900,1}, {1040,11908,1},{1042,11908,1},{1042,11910,1},{1045,11908,1},{1047,11908,1}, {1048,11912,1},{1040,11912,1},{1038,11913,1},{1040,11917,1},{1048,11923,1}, {1050,11927,1},{1052,11927,1},{1055,11923,1},{1057,11930,1},{1063,11933,1}, {1073,11935,1},{1077,11932,1},{1075,11928,1},{1077,11927,1},{1082,11927,1}, {1085,11923,1},{1090,11927,1},{1090,11923,1},{1095,11922,1},{1095,11925,1}, {1092,11925,1},{1093,11927,1},{1092,11927,1},{1093,11928,1},{1090,11928,1}, {1088,11928,1},{1087,11927,1},{1087,11932,1},{1085,11930,1},{1082,11933,1}, {1082,11935,1},{1080,11935,1},{1078,11938,1},{1077,11940,1},{1077,11943,1}, {1073,11943,1},{1073,11947,1},{1080,11943,1},{1083,11945,1},{1087,11942,1}, {1087,11937,1},{1090,11935,1},{1093,11937,1},{1093,11932,1},{1098,11932,1}, {1102,11933,1},{1100,11937,1},{1107,11933,1},{1110,11933,1},{1105,11937,1}, {1105,11942,1},{1113,11943,1},{1113,11940,1},{1118,11938,1},{1118,11940,1}, {1123,11943,1},{1130,11942,1},{1133,11943,1},{1133,11947,1},{1142,11948,1}, {1140,11952,1},{63863,13927,129},{63863,13923,1},{63866,13923,1},{63866,13920,1}, {63871,13915,1},{63874,13917,1},{63878,13920,1},{63883,13922,1},{63888,13925,1}, {63889,13932,1},{63891,13938,1},{63891,13943,1},{63894,13948,1},{63896,13957,1}, {63889,13965,1},{63886,13967,1},{63883,13957,1},{63888,13955,1},{63886,13948,1}, {63884,13947,1},{63883,13950,1},{63881,13947,1},{63878,13947,1},{63871,13943,1}, {63871,13942,1},{63874,13940,1},{63871,13938,1},{63868,13937,1},{63863,13930,1}, {63863,13925,1},{62959,15303,129},{62963,15298,1},{62971,15297,1},{62973,15293,1}, {62978,15293,1},{62999,15305,1},{63006,15303,1},{63014,15307,1},{63016,15302,1}, {63018,15300,1},{63019,15302,1},{63024,15308,1},{63036,15323,1},{63046,15325,1}, {63048,15322,1},{63054,15320,1},{63056,15315,1},{63058,15313,1},{63066,15322,1}, {63066,15327,1},{63063,15327,1},{63048,15328,1},{63043,15330,1},{63041,15335,1}, {63036,15335,1},{63023,15332,1},{62976,15308,1},{62959,15308,1},{62959,15303,1}, {64343,13093,129},{64346,13090,1},{64354,13070,1},{64361,13067,1},{64371,13048,1}, {64378,13048,1},{64381,13045,1},{64391,13042,1},{64403,13040,1},{64406,13037,1}, {64416,13038,1},{64414,13043,1},{64406,13048,1},{64403,13060,1},{64401,13060,1}, {64396,13058,1},{64394,13058,1},{64394,13065,1},{64399,13065,1},{64399,13067,1}, {64384,13072,1},{64384,13075,1},{64383,13080,1},{64389,13077,1},{64394,13072,1}, {64398,13087,1},{64401,13090,1},{64401,13095,1},{64396,13098,1},{64396,13105,1}, {64399,13107,1},{64401,13110,1},{64406,13113,1},{64406,13117,1},{64399,13118,1}, {64399,13122,1},{64401,13122,1},{64409,13122,1},{64413,13127,1},{64409,13132,1}, {64406,13130,1},{64408,13135,1},{64406,13137,1},{64403,13140,1},{64406,13142,1}, {64406,13143,1},{64401,13143,1},{64401,13147,1},{64398,13147,1},{64394,13148,1}, {64394,13153,1},{64391,13157,1},{64386,13155,1},{64386,13150,1},{64383,13148,1}, {64379,13147,1},{64373,13147,1},{64374,13140,1},{64373,13138,1},{64359,13128,1}, {64359,13125,1},{64356,13122,1},{64351,13110,1},{64339,13098,1},{64341,13095,1}, {64343,13093,1},{64351,13060,129},{64349,13050,1},{64351,13045,1},{64354,13042,1}, {64356,13033,1},{64349,13008,1},{64351,13005,1},{64354,13003,1},{64359,13007,1}, {64366,13008,1},{64366,13010,1},{64363,13013,1},{64366,13018,1},{64366,13023,1}, {64368,13023,1},{64369,13020,1},{64383,13020,1},{64386,13015,1},{64391,13018,1}, {64393,13022,1},{64399,13027,1},{64399,13033,1},{64389,13038,1},{64381,13038,1}, {64379,13040,1},{64376,13043,1},{64366,13047,1},{64364,13055,1},{64358,13065,1}, {64353,13063,1},{64351,13060,1},{64106,13685,129},{64108,13675,1},{64108,13670,1}, {64104,13667,1},{64104,13663,1},{64106,13662,1},{64114,13640,1},{64111,13632,1}, {64113,13632,1},{64119,13640,1},{64123,13642,1},{64133,13638,1},{64151,13640,1}, {64151,13647,1},{64151,13648,1},{64154,13653,1},{64153,13658,1},{64156,13663,1}, {64158,13660,1},{64159,13660,1},{64163,13658,1},{64164,13658,1},{64164,13667,1}, {64168,13670,1},{64168,13672,1},{64164,13672,1},{64159,13668,1},{64156,13672,1}, {64154,13670,1},{64149,13672,1},{64148,13682,1},{64149,13682,1},{64153,13683,1}, {64153,13680,1},{64158,13685,1},{64156,13690,1},{64153,13692,1},{64149,13688,1}, {64143,13685,1},{64143,13678,1},{64139,13675,1},{64139,13672,1},{64138,13672,1}, {64136,13672,1},{64136,13675,1},{64129,13678,1},{64126,13675,1},{64126,13673,1}, {64123,13670,1},{64116,13672,1},{64113,13675,1},{64116,13678,1},{64118,13677,1}, {64119,13678,1},{64113,13685,1},{64113,13687,1},{64118,13692,1},{64118,13695,1}, {64113,13693,1},{64104,13693,1},{64106,13690,1},{64103,13687,1},{64106,13685,1}, {64876,15648,129},{64874,15653,1},{64871,15658,1},{64871,15665,1},{64866,15670,1}, {64863,15670,1},{64859,15675,1},{64851,15690,1},{64849,15698,1},{64846,15702,1}, {64846,15705,1},{64838,15712,1},{64824,15715,1},{64818,15718,1},{64819,15722,1}, {64818,15722,1},{64814,15725,1},{64816,15728,1},{64809,15730,1},{64808,15732,1}, {64806,15737,1},{64803,15738,1},{64806,15738,1},{64806,15740,1},{64803,15743,1}, {64806,15750,1},{64804,15753,1},{64801,15753,1},{64798,15752,1},{64798,15748,1}, {64793,15745,1},{64794,15745,1},{64794,15742,1},{64796,15732,1},{64803,15732,1}, {64799,15730,1},{64801,15727,1},{64799,15727,1},{64801,15725,1},{64803,15715,1}, {64801,15710,1},{64806,15710,1},{64809,15707,1},{64808,15702,1},{64811,15702,1}, {64814,15693,1},{64818,15688,1},{64846,15668,1},{64853,15657,1},{64863,15645,1}, {64868,15645,1},{64871,15643,1},{64876,15648,1},{64739,15752,129},{64734,15760,1}, {64719,15762,1},{64716,15763,1},{64713,15763,1},{64714,15772,1},{64711,15777,1}, {64711,15778,1},{64708,15778,1},{64703,15783,1},{64698,15783,1},{64696,15787,1}, {64689,15788,1},{64688,15790,1},{64683,15787,1},{64678,15788,1},{64681,15780,1}, {64679,15780,1},{64678,15782,1},{64674,15782,1},{64676,15780,1},{64678,15778,1}, {64684,15773,1},{64684,15768,1},{64688,15762,1},{64696,15757,1},{64703,15757,1}, {64696,15758,1},{64696,15760,1},{64694,15762,1},{64698,15763,1},{64699,15760,1}, {64706,15758,1},{64711,15753,1},{64709,15750,1},{64711,15748,1},{64709,15748,1}, {64708,15737,1},{64709,15735,1},{64704,15733,1},{64703,15730,1},{64703,15727,1}, {64704,15725,1},{64704,15723,1},{64713,15722,1},{64716,15723,1},{64718,15728,1}, {64716,15732,1},{64723,15732,1},{64724,15733,1},{64733,15738,1},{64738,15743,1}, {64739,15748,1},{64739,15752,1},{64783,15847,129},{64781,15848,1},{64778,15860,1}, {64779,15863,1},{64774,15872,1},{64776,15875,1},{64773,15877,1},{64763,15887,1}, {64761,15892,1},{64756,15898,1},{64753,15897,1},{64751,15900,1},{64749,15907,1}, {64746,15908,1},{64744,15913,1},{64744,15920,1},{64743,15920,1},{64743,15923,1}, {64739,15925,1},{64741,15928,1},{64736,15930,1},{64738,15935,1},{64736,15942,1}, {64734,15942,1},{64733,15943,1},{64728,15950,1},{64723,15955,1},{64713,15973,1}, {64703,15985,1},{64698,15982,1},{64698,15977,1},{64696,15975,1},{64693,15978,1}, {64694,15982,1},{64688,15987,1},{64684,15987,1},{64681,15990,1},{64679,15990,1}, {64681,15982,1},{64686,15978,1},{64686,15977,1},{64688,15975,1},{64691,15972,1}, {64694,15970,1},{64699,15962,1},{64701,15957,1},{64708,15943,1},{64709,15933,1}, {64713,15932,1},{64714,15928,1},{64716,15928,1},{64716,15923,1},{64721,15918,1}, {64724,15912,1},{64724,15908,1},{64726,15908,1},{64728,15902,1},{64733,15897,1}, {64731,15895,1},{64734,15893,1},{64738,15885,1},{64743,15883,1},{64744,15877,1}, {64748,15877,1},{64748,15873,1},{64751,15872,1},{64756,15868,1},{64756,15865,1}, {64758,15865,1},{64759,15858,1},{64761,15857,1},{64769,15858,1},{64773,15853,1}, {64776,15852,1},{64779,15845,1},{64781,15843,1},{64783,15845,1},{64783,15847,1}, {64611,15970,129},{64608,15978,1},{64599,15987,1},{64594,15992,1},{64593,15993,1}, {64593,16002,1},{64594,16003,1},{64593,16013,1},{64594,16017,1},{64593,16022,1}, {64594,16028,1},{64593,16038,1},{64589,16042,1},{64588,16047,1},{64583,16050,1}, {64581,16057,1},{64576,16063,1},{64566,16067,1},{64566,16072,1},{64563,16078,1}, {64561,16078,1},{64559,16080,1},{64554,16080,1},{64551,16083,1},{64546,16078,1}, {64544,16068,1},{64543,16063,1},{64548,16048,1},{64546,16043,1},{64549,16042,1}, {64554,16032,1},{64554,16000,1},{64556,15998,1},{64556,15992,1},{64558,15988,1}, {64556,15983,1},{64561,15978,1},{64564,15972,1},{64571,15970,1},{64571,15967,1}, {64576,15967,1},{64579,15965,1},{64583,15960,1},{64584,15960,1},{64586,15962,1}, {64593,15960,1},{64596,15962,1},{64599,15960,1},{64604,15960,1},{64611,15970,1}, {64704,16072,129},{64704,16075,1},{64699,16082,1},{64694,16082,1},{64689,16087,1}, {64686,16090,1},{64681,16093,1},{64678,16098,1},{64673,16102,1},{64669,16100,1}, {64668,16095,1},{64663,16095,1},{64659,16093,1},{64654,16093,1},{64651,16098,1}, {64653,16102,1},{64648,16107,1},{64646,16105,1},{64644,16107,1},{64644,16110,1}, {64639,16117,1},{64638,16117,1},{64636,16113,1},{64633,16118,1},{64628,16120,1}, {64626,16122,1},{64624,16123,1},{64621,16120,1},{64621,16125,1},{64618,16127,1}, {64616,16128,1},{64614,16125,1},{64611,16127,1},{64606,16127,1},{64608,16123,1}, {64601,16128,1},{64589,16135,1},{64588,16137,1},{64581,16138,1},{64573,16138,1}, {64578,16130,1},{64593,16122,1},{64596,16118,1},{64601,16112,1},{64604,16108,1}, {64604,16103,1},{64606,16103,1},{64609,16102,1},{64611,16097,1},{64614,16097,1}, {64618,16093,1},{64618,16088,1},{64624,16085,1},{64629,16082,1},{64641,16077,1}, {64646,16077,1},{64648,16075,1},{64656,16072,1},{64661,16068,1},{64668,16070,1}, {64674,16065,1},{64676,16065,1},{64679,16072,1},{64684,16072,1},{64693,16065,1}, {64694,16062,1},{64701,16057,1},{64703,16058,1},{64704,16062,1},{64699,16070,1}, {64699,16072,1},{64701,16072,1},{64704,16070,1},{64704,16072,1},{64516,16132,129}, {64514,16145,1},{64506,16158,1},{64499,16167,1},{64499,16168,1},{64496,16173,1}, {64494,16180,1},{64491,16183,1},{64493,16188,1},{64491,16193,1},{64491,16197,1}, {64488,16202,1},{64488,16207,1},{64491,16208,1},{64491,16212,1},{64481,16218,1}, {64479,16218,1},{64476,16222,1},{64469,16223,1},{64468,16228,1},{64459,16230,1}, {64458,16227,1},{64454,16225,1},{64453,16230,1},{64453,16238,1},{64451,16238,1}, {64451,16230,1},{64456,16220,1},{64453,16217,1},{64453,16210,1},{64459,16202,1}, {64458,16197,1},{64459,16192,1},{64459,16190,1},{64461,16187,1},{64463,16185,1}, {64461,16183,1},{64463,16182,1},{64464,16177,1},{64468,16175,1},{64468,16170,1}, {64471,16170,1},{64471,16167,1},{64474,16165,1},{64473,16162,1},{64476,16162,1}, {64476,16158,1},{64479,16158,1},{64479,16155,1},{64479,16152,1},{64486,16153,1}, {64489,16152,1},{64489,16148,1},{64493,16152,1},{64494,16148,1},{64499,16152,1}, {64501,16147,1},{64501,16142,1},{64503,16137,1},{64501,16135,1},{64503,16128,1}, {64514,16128,1},{64516,16132,1},{63466,16500,129},{63468,16497,1},{63468,16495,1}, {63471,16492,1},{63474,16485,1},{63479,16482,1},{63488,16473,1},{63496,16458,1}, {63499,16457,1},{63506,16450,1},{63513,16432,1},{63513,16430,1},{63511,16430,1}, {63503,16433,1},{63504,16430,1},{63508,16430,1},{63506,16425,1},{63511,16417,1}, {63519,16412,1},{63521,16408,1},{63528,16402,1},{63528,16400,1},{63524,16398,1}, {63524,16400,1},{63521,16400,1},{63523,16402,1},{63519,16405,1},{63516,16403,1}, {63513,16405,1},{63511,16405,1},{63513,16400,1},{63511,16398,1},{63506,16402,1}, {63508,16407,1},{63509,16407,1},{63509,16408,1},{63506,16408,1},{63504,16415,1}, {63501,16417,1},{63498,16417,1},{63496,16415,1},{63498,16412,1},{63496,16412,1}, {63493,16415,1},{63486,16417,1},{63479,16423,1},{63479,16427,1},{63478,16427,1}, {63478,16428,1},{63464,16435,1},{63463,16440,1},{63459,16440,1},{63459,16437,1}, {63451,16447,1},{63449,16450,1},{63446,16452,1},{63446,16457,1},{63444,16457,1}, {63443,16460,1},{63444,16462,1},{63443,16462,1},{63441,16465,1},{63439,16467,1}, {63438,16463,1},{63436,16468,1},{63434,16467,1},{63431,16470,1},{63428,16470,1}, {63428,16472,1},{63429,16472,1},{63431,16473,1},{63428,16475,1},{63429,16480,1}, {63428,16478,1},{63428,16480,1},{63424,16480,1},{63424,16482,1},{63423,16483,1}, {63416,16483,1},{63414,16485,1},{63413,16487,1},{63408,16492,1},{63406,16495,1}, {63401,16493,1},{63401,16498,1},{63406,16498,1},{63404,16502,1},{63401,16500,1}, {63401,16505,1},{63396,16503,1},{63398,16505,1},{63396,16507,1},{63399,16510,1}, {63398,16512,1},{63394,16512,1},{63391,16513,1},{63384,16523,1},{63384,16527,1}, {63381,16527,1},{63374,16542,1},{63374,16547,1},{63373,16545,1},{63373,16548,1}, {63371,16547,1},{63366,16552,1},{63364,16562,1},{63361,16565,1},{63363,16565,1}, {63363,16568,1},{63359,16568,1},{63361,16570,1},{63364,16573,1},{63361,16573,1}, {63358,16575,1},{63354,16577,1},{63356,16578,1},{63356,16580,1},{63354,16578,1}, {63351,16583,1},{63351,16580,1},{63349,16582,1},{63349,16588,1},{63346,16592,1}, {63343,16593,1},{63343,16597,1},{63339,16598,1},{63339,16602,1},{63343,16600,1}, {63341,16603,1},{63344,16603,1},{63346,16607,1},{63344,16608,1},{63341,16607,1}, {63339,16613,1},{63336,16613,1},{63333,16617,1},{63333,16612,1},{63331,16615,1}, {63328,16615,1},{63329,16612,1},{63326,16612,1},{63328,16615,1},{63326,16617,1}, {63323,16622,1},{63321,16622,1},{63319,16627,1},{63319,16628,1},{63321,16628,1}, {63321,16633,1},{63319,16632,1},{63316,16635,1},{63313,16633,1},{63316,16638,1}, {63318,16638,1},{63318,16643,1},{63316,16643,1},{63313,16645,1},{63313,16640,1}, {63311,16642,1},{63311,16645,1},{63304,16643,1},{63304,16647,1},{63308,16645,1}, {63308,16648,1},{63311,16650,1},{63313,16653,1},{63311,16657,1},{63309,16657,1}, {63306,16660,1},{63308,16663,1},{63303,16668,1},{63304,16670,1},{63301,16672,1}, {63301,16677,1},{63299,16673,1},{63298,16673,1},{63296,16678,1},{63298,16680,1}, {63298,16683,1},{63301,16682,1},{63306,16683,1},{63304,16685,1},{63303,16683,1}, {63301,16685,1},{63301,16687,1},{63303,16687,1},{63299,16690,1},{63298,16688,1}, {63299,16692,1},{63298,16692,1},{63296,16688,1},{63296,16692,1},{63299,16697,1}, {63301,16697,1},{63303,16698,1},{63303,16700,1},{63304,16702,1},{63308,16702,1}, {63311,16702,1},{63311,16703,1},{63313,16703,1},{63318,16697,1},{63319,16693,1}, {63321,16695,1},{63326,16695,1},{63333,16685,1},{63334,16677,1},{63336,16677,1}, {63338,16673,1},{63338,16668,1},{63341,16672,1},{63343,16667,1},{63341,16667,1}, {63343,16665,1},{63346,16662,1},{63348,16657,1},{63356,16650,1},{63358,16648,1}, {63359,16648,1},{63364,16642,1},{63366,16635,1},{63369,16633,1},{63369,16637,1}, {63374,16623,1},{63384,16612,1},{63383,16608,1},{63386,16607,1},{63388,16605,1}, {63389,16607,1},{63391,16602,1},{63394,16598,1},{63394,16595,1},{63386,16600,1}, {63386,16597,1},{63389,16592,1},{63389,16595,1},{63391,16595,1},{63399,16588,1}, {63396,16588,1},{63398,16587,1},{63398,16583,1},{63394,16585,1},{63396,16582,1}, {63399,16583,1},{63399,16580,1},{63406,16577,1},{63406,16572,1},{63408,16563,1}, {63413,16560,1},{63416,16555,1},{63414,16560,1},{63416,16560,1},{63418,16560,1}, {63418,16558,1},{63421,16557,1},{63421,16553,1},{63423,16555,1},{63423,16550,1}, {63431,16540,1},{63434,16540,1},{63441,16542,1},{63443,16533,1},{63448,16528,1}, {63449,16527,1},{63454,16527,1},{63458,16523,1},{63459,16522,1},{63463,16507,1}, {63466,16500,1},{63769,16853,129},{63771,16850,1},{63776,16850,1},{63783,16843,1}, {63781,16835,1},{63783,16832,1},{63781,16828,1},{63779,16828,1},{63778,16823,1}, {63774,16822,1},{63771,16818,1},{63764,16815,1},{63764,16817,1},{63761,16817,1}, {63766,16823,1},{63764,16828,1},{63763,16828,1},{63763,16830,1},{63761,16830,1}, {63759,16825,1},{63756,16825,1},{63759,16832,1},{63756,16830,1},{63758,16833,1}, {63754,16835,1},{63756,16837,1},{63753,16837,1},{63753,16838,1},{63754,16845,1}, {63754,16848,1},{63756,16853,1},{63763,16855,1},{63766,16858,1},{63768,16853,1}, {63769,16853,1},{64036,16677,129},{64046,16677,1},{64053,16673,1},{64054,16673,1}, {64054,16672,1},{64059,16668,1},{64063,16667,1},{64064,16663,1},{64074,16660,1}, {64069,16655,1},{64054,16652,1},{64046,16653,1},{64039,16657,1},{64034,16658,1}, {64033,16660,1},{64031,16660,1},{64023,16662,1},{64013,16665,1},{63998,16662,1}, {63983,16670,1},{63979,16677,1},{63971,16677,1},{63969,16682,1},{63971,16683,1}, {63974,16685,1},{63973,16688,1},{63976,16688,1},{63978,16692,1},{63978,16702,1}, {63976,16708,1},{63984,16715,1},{63984,16723,1},{63988,16723,1},{63989,16720,1}, {64001,16717,1},{64003,16717,1},{64001,16718,1},{64006,16718,1},{64009,16717,1}, {64011,16713,1},{64013,16715,1},{64014,16715,1},{64023,16713,1},{64024,16712,1}, {64021,16710,1},{64023,16708,1},{64031,16707,1},{64033,16705,1},{64033,16703,1}, {64036,16707,1},{64039,16705,1},{64043,16708,1},{64044,16700,1},{64043,16698,1}, {64041,16697,1},{64028,16697,1},{64019,16692,1},{64021,16680,1},{64031,16678,1}, {64036,16677,1},{63891,16742,129},{63893,16740,1},{63898,16740,1},{63899,16738,1}, {63901,16737,1},{63908,16738,1},{63918,16738,1},{63918,16737,1},{63924,16732,1}, {63919,16722,1},{63921,16718,1},{63928,16715,1},{63931,16715,1},{63938,16718,1}, {63946,16718,1},{63949,16722,1},{63944,16733,1},{63943,16732,1},{63934,16738,1}, {63931,16738,1},{63929,16740,1},{63928,16740,1},{63924,16742,1},{63923,16747,1}, {63926,16747,1},{63924,16748,1},{63923,16750,1},{63919,16748,1},{63918,16752,1}, {63919,16753,1},{63914,16757,1},{63913,16760,1},{63909,16763,1},{63909,16768,1}, {63908,16768,1},{63903,16775,1},{63903,16777,1},{63896,16778,1},{63891,16777,1}, {63889,16778,1},{63893,16780,1},{63893,16783,1},{63889,16783,1},{63888,16780,1}, {63881,16777,1},{63881,16773,1},{63884,16772,1},{63886,16760,1},{63883,16757,1}, {63881,16758,1},{63881,16755,1},{63878,16752,1},{63876,16750,1},{63883,16742,1}, {63886,16742,1},{63884,16745,1},{63891,16742,1},{1363,14488,129},{1360,14490,1}, {1360,14495,1},{1358,14495,1},{1350,14490,1},{1342,14478,1},{1328,14475,1}, {1325,14473,1},{1323,14472,1},{1325,14468,1},{1328,14465,1},{1333,14463,1}, {1340,14465,1},{1343,14462,1},{1343,14463,1},{1343,14467,1},{1347,14470,1}, {1350,14478,1},{1355,14482,1},{1363,14483,1},{1365,14488,1},{1363,14488,1}, {63648,49556,129},{63651,49556,1},{63653,49558,1},{63648,49558,1},{63646,49556,1}, {63648,49556,1},{63846,50391,129},{63846,50388,1},{63858,50386,1},{63861,50388,1}, {63863,50389,1},{63861,50393,1},{63854,50396,1},{63851,50401,1},{63848,50396,1}, {63846,50391,1},{63749,50611,129},{63751,50608,1},{63758,50606,1},{63761,50601,1}, {63759,50591,1},{63763,50578,1},{63769,50576,1},{63773,50573,1},{63776,50574,1}, {63779,50573,1},{63783,50578,1},{63784,50584,1},{63784,50593,1},{63783,50599,1}, {63778,50604,1},{63773,50604,1},{63766,50606,1},{63763,50614,1},{63764,50618,1}, {63763,50621,1},{63758,50623,1},{63751,50623,1},{63749,50618,1},{63749,50611,1}, {545,10030,129},{543,10032,1},{542,10035,1},{525,10028,1},{527,10025,1}, {527,10018,1},{530,10020,1},{547,10018,1},{543,10022,1},{547,10025,1},{545,10032,1}, {417,11758,129},{418,11762,1},{422,11760,1},{422,11762,1},{423,11762,1}, {425,11765,1},{428,11765,1},{430,11763,1},{435,11763,1},{438,11760,1},{442,11765,1}, {442,11767,1},{438,11768,1},{435,11772,1},{433,11780,1},{430,11782,1},{428,11787,1}, {425,11790,1},{422,11798,1},{430,11815,1},{430,11822,1},{433,11833,1},{435,11835,1}, {435,11838,1},{435,11855,1},{437,11855,1},{440,11860,1},{443,11860,1},{442,11862,1}, {443,11865,1},{445,11865,1},{450,11858,1},{452,11860,1},{452,11853,1},{450,11850,1}, {452,11848,1},{453,11847,1},{457,11848,1},{460,11848,1},{462,11843,1},{460,11842,1}, {463,11837,1},{468,11828,1},{478,11820,1},{483,11818,1},{485,11813,1},{488,11813,1}, {492,11817,1},{497,11822,1},{498,11825,1},{498,11828,1},{500,11830,1},{500,11832,1}, {503,11835,1},{502,11842,1},{495,11848,1},{493,11850,1},{497,11858,1},{493,11870,1}, {503,11892,1},{507,11907,1},{512,11918,1},{515,11922,1},{522,11927,1},{527,11927,1}, {535,11928,1},{540,11923,1},{545,11918,1},{543,11913,1},{540,11907,1},{543,11897,1}, {538,11897,1},{538,11893,1},{542,11893,1},{545,11892,1},{550,11883,1},{548,11882,1}, {552,11880,1},{555,11872,1},{563,11863,1},{562,11860,1},{557,11860,1},{552,11857,1}, {563,11857,1},{567,11860,1},{568,11858,1},{570,11855,1},{575,11847,1},{582,11837,1}, {578,11833,1},{583,11825,1},{580,11817,1},{578,11815,1},{575,11817,1},{573,11815,1}, {568,11813,1},{572,11810,1},{570,11807,1},{572,11805,1},{568,11797,1},{573,11795,1}, {575,11792,1},{580,11792,1},{582,11793,1},{580,11797,1},{582,11808,1},{587,11812,1}, {592,11808,1},{597,11807,1},{600,11805,1},{603,11805,1},{607,11802,1},{607,11798,1}, {595,11788,1},{595,11777,1},{592,11778,1},{590,11777,1},{592,11770,1},{590,11763,1}, {590,11755,1},{587,11747,1},{590,11750,1},{593,11763,1},{598,11768,1},{602,11767,1}, {602,11763,1},{605,11763,1},{607,11767,1},{608,11767,1},{618,11760,1},{622,11762,1}, {625,11765,1},{625,11772,1},{633,11773,1},{635,11772,1},{638,11773,1},{642,11773,1}, {645,11773,1},{647,11772,1},{645,11770,1},{648,11768,1},{652,11765,1},{652,11760,1}, {653,11757,1},{657,11757,1},{657,11753,1},{663,11753,1},{653,11747,1},{658,11740,1}, {662,11737,1},{663,11730,1},{667,11728,1},{673,11728,1},{682,11722,1},{687,11725,1}, {693,11725,1},{700,11715,1},{698,11713,1},{698,11708,1},{697,11707,1},{695,11708,1}, {693,11703,1},{692,11703,1},{683,11705,1},{675,11698,1},{672,11698,1},{663,11688,1}, {660,11687,1},{658,11680,1},{658,11678,1},{665,11678,1},{675,11685,1},{680,11687,1}, {685,11685,1},{685,11682,1},{690,11682,1},{690,11685,1},{697,11683,1},{702,11677,1}, {700,11673,1},{697,11672,1},{692,11672,1},{685,11665,1},{682,11667,1},{677,11665,1}, {670,11665,1},{655,11650,1},{648,11650,1},{637,11633,1},{630,11632,1},{630,11628,1}, {627,11623,1},{627,11627,1},{628,11628,1},{627,11628,1},{623,11628,1},{625,11625,1}, {623,11622,1},{613,11615,1},{612,11610,1},{610,11608,1},{610,11613,1},{607,11613,1}, {600,11612,1},{592,11605,1},{583,11605,1},{575,11592,1},{565,11590,1},{557,11585,1}, {553,11582,1},{552,11575,1},{553,11565,1},{557,11562,1},{552,11560,1},{553,11558,1}, {557,11558,1},{560,11562,1},{562,11562,1},{563,11560,1},{557,11557,1},{543,11543,1}, {540,11538,1},{530,11537,1},{533,11540,1},{532,11540,1},{528,11540,1},{520,11553,1}, {522,11560,1},{517,11557,1},{507,11555,1},{502,11548,1},{490,11535,1},{490,11532,1}, {493,11527,1},{493,11523,1},{497,11522,1},{492,11518,1},{490,11515,1},{482,11503,129}, {488,11502,1},{458,11408,129},{458,11397,1},{457,11397,1},{450,11398,1}, {443,11400,1},{437,11397,1},{432,11397,1},{425,11393,1},{417,11385,1},{398,11373,1}, {375,11343,1},{365,11340,1},{355,11330,1},{352,11330,1},{338,11318,1},{333,11315,1}, {328,11307,1},{327,11308,1},{323,11308,1},{317,11302,1},{310,11285,1},{297,11232,1}, {290,11210,1},{285,11167,1},{268,11145,1},{253,11142,1},{250,11147,1},{248,11152,1}, {247,11147,1},{248,11140,1},{242,11143,1},{235,11150,1},{237,11145,1},{233,11137,1}, {235,11135,1},{238,11132,1},{242,11125,1},{243,11125,1},{242,11122,1},{235,11120,1}, {225,11118,1},{223,11123,1},{222,11123,1},{222,11120,1},{215,11117,1},{215,11130,1}, {212,11133,1},{215,11133,1},{217,11135,1},{215,11137,1},{210,11133,1},{212,11125,1}, {212,11123,1},{208,11123,1},{207,11127,1},{207,11120,1},{195,11117,1},{183,11112,1}, {180,11112,1},{178,11113,1},{177,11110,1},{170,11112,1},{168,11115,1},{165,11118,1}, {165,11122,1},{162,11127,1},{162,11123,1},{163,11120,1},{162,11118,1},{168,11113,1}, {168,11110,1},{167,11103,1},{162,11102,1},{158,11100,1},{153,11102,1},{145,11107,1}, {140,11117,1},{142,11123,1},{142,11128,1},{140,11132,1},{137,11133,1},{135,11138,1}, {133,11133,1},{135,11130,1},{138,11125,1},{137,11115,1},{140,11107,1},{150,11097,1}, {157,11082,1},{157,11077,1},{150,11077,1},{147,11075,1},{145,11067,1},{150,11073,1}, {153,11073,1},{160,11058,1},{158,11053,1},{163,11052,1},{162,11047,1},{173,11052,1}, {172,11045,1},{168,11040,1},{170,11038,1},{173,11037,1},{175,11037,1},{180,11033,1}, {177,11030,1},{170,11030,1},{167,11028,1},{170,11025,1},{168,11022,1},{170,11018,1}, {170,11002,1},{168,10998,1},{168,10993,1},{175,10988,1},{178,10985,1},{187,10970,1}, {193,10965,1},{198,10967,1},{207,10965,1},{490,11515,129},{490,11512,1}, {487,11513,1},{483,11508,1},{480,11507,1},{480,11503,1},{482,11503,1},{488,11502,129}, {492,11502,1},{490,11498,1},{495,11503,1},{500,11505,1},{503,11510,1},{505,11510,1}, {505,11503,1},{500,11492,1},{485,11468,1},{470,11455,1},{468,11450,1},{465,11440,1}, {460,11428,1},{458,11420,1},{460,11417,1},{458,11408,1},{557,9523,129}, {557,9528,1},{560,9532,1},{562,9537,1},{565,9543,1},{565,9545,1},{560,9550,1}, {563,9560,1},{560,9567,1},{557,9577,1},{550,9588,1},{545,9590,1},{530,9607,1}, {527,9620,1},{527,9627,1},{523,9633,1},{522,9640,1},{522,9643,1},{523,9647,1}, {522,9652,1},{522,9665,1},{528,9682,1},{527,9690,1},{527,9698,1},{527,9705,1}, {522,9713,1},{517,9717,1},{515,9720,1},{522,9740,1},{525,9748,1},{525,9752,1}, {505,9768,1},{498,9778,1},{493,9783,1},{490,9790,1},{487,9792,1},{478,9797,1}, {468,9798,1},{462,9802,1},{453,9800,1},{455,9802,1},{453,9805,1},{455,9807,1}, {453,9808,1},{453,9813,1},{452,9817,1},{448,9818,1},{448,9822,1},{445,9823,1}, {442,9828,1},{435,9828,1},{430,9827,1},{420,9827,1},{417,9818,1},{410,9818,1}, {417,9827,1},{408,9830,1},{408,9838,1},{408,9840,1},{405,9847,1},{400,9850,1}, {400,9855,1},{393,9860,1},{392,9868,1},{378,9872,1},{372,9883,1},{363,9907,1}, {358,9913,1},{355,9920,1},{340,9937,1},{338,9943,1},{335,9948,1},{325,9955,1}, {318,9973,1},{310,9980,1},{307,9983,1},{300,9985,1},{302,9987,1},{300,9990,1}, {293,9998,1},{278,10000,1},{270,9995,1},{267,9998,1},{260,10000,1},{260,10002,1}, {262,10003,1},{263,10002,1},{268,10002,1},{270,9997,1},{273,10003,1},{273,10005,1}, {270,10007,1},{260,10008,1},{252,10012,1},{253,10013,1},{265,10012,1},{268,10013,1}, {270,10017,1},{270,10022,1},{267,10022,1},{265,10025,1},{258,10027,1},{257,10030,1}, {230,10042,1},{222,10048,1},{213,10060,1},{212,10063,1},{213,10067,1},{203,10082,1}, {195,10087,1},{188,10090,1},{183,10093,1},{183,10095,1},{187,10095,1},{195,10092,1}, {202,10090,1},{210,10082,1},{217,10080,1},{223,10080,1},{228,10083,1},{230,10093,1}, {228,10107,1},{225,10105,1},{220,10107,1},{207,10127,1},{202,10132,1},{192,10133,1}, {178,10137,1},{173,10140,1},{170,10143,1},{165,10157,1},{167,10168,1},{165,10175,1}, {145,10200,1},{138,10213,1},{133,10215,1},{125,10215,1},{120,10220,1},{110,10218,1}, {102,10222,1},{97,10225,1},{90,10235,1},{78,10243,1},{73,10255,1},{75,10267,1}, {73,10278,1},{73,10288,1},{70,10293,1},{52,10308,1},{47,10308,1},{45,10308,1}, {27,10275,1},{23,10262,1},{18,10258,1},{20,10253,1},{25,10248,1},{25,10243,1}, {23,10248,1},{18,10252,1},{15,10258,1},{15,10260,1},{22,10267,1},{22,10273,1}, {25,10280,1},{25,10288,1},{33,10302,1},{38,10307,1},{42,10318,1},{48,10322,1}, {50,10328,1},{53,10335,1},{50,10345,1},{42,10355,1},{37,10360,1},{32,10360,1}, {33,10363,1},{28,10373,1},{25,10375,1},{0,10382,1},{65534,10367,1},{65531,10367,1}, {65531,10363,1},{65534,10358,1},{65533,10357,1},{65531,10358,1},{65526,10358,1}, {65524,10355,1},{65524,10348,1},{65519,10348,1},{65514,10342,1},{65509,10327,1}, {65511,10337,1},{65514,10348,1},{65513,10350,1},{65511,10348,1},{65501,10342,1}, {65499,10333,1},{65498,10338,1},{65498,10350,1},{65494,10357,1},{65493,10360,1}, {65486,10352,1},{65484,10342,1},{65484,10340,1},{65491,10337,1},{65484,10338,1}, {65479,10342,1},{65473,10340,1},{65471,10337,1},{65468,10338,1},{65466,10333,1}, {65463,10338,1},{65459,10347,1},{65458,10347,1},{65454,10343,1},{65456,10348,1}, {65454,10352,1},{65449,10355,1},{65448,10358,1},{65441,10365,1},{65441,10368,1}, {65438,10373,1},{65434,10380,1},{65428,10382,1},{65433,10383,1},{65434,10387,1}, {65438,10395,1},{65434,10405,1},{65433,10412,1},{65428,10420,1},{65433,10435,1}, {65433,10438,1},{65423,10442,1},{65414,10440,1},{65401,10445,1},{65389,10445,1}, {65379,10447,1},{65359,10453,1},{65356,10453,1},{65353,10450,1},{65349,10448,1}, {65343,10448,1},{65343,10450,1},{65344,10452,1},{65351,10455,1},{65343,10463,1}, {65338,10462,1},{65334,10458,1},{65334,10462,1},{65338,10465,1},{65338,10467,1}, {65333,10467,1},{65331,10468,1},{65336,10475,1},{65336,10482,1},{65329,10487,1}, {65323,10488,1},{65316,10487,1},{65301,10475,1},{65301,10467,1},{65296,10460,1}, {65299,10470,1},{65298,10472,1},{65296,10473,1},{65279,10472,1},{65271,10458,1}, {65266,10455,1},{65259,10453,1},{65261,10455,1},{65269,10460,1},{65276,10473,1}, {65288,10477,1},{65294,10477,1},{65299,10482,1},{65308,10487,1},{65306,10490,1}, {65301,10490,1},{65298,10492,1},{65303,10493,1},{65303,10497,1},{65303,10500,1}, {65299,10503,1},{65298,10512,1},{65301,10523,1},{65298,10535,1},{65296,10555,1}, {65294,10553,1},{65296,10562,1},{65293,10563,1},{65283,10560,1},{65276,10562,1}, {65269,10568,1},{65266,10578,1},{65251,10578,1},{65246,10582,1},{65243,10583,1}, {65239,10590,1},{65241,10598,1},{65236,10603,1},{65231,10605,1},{65221,10605,1}, {65213,10608,1},{65209,10607,1},{65204,10598,1},{65194,10590,1},{65168,10582,1}, {65163,10582,1},{65156,10593,1},{65151,10595,1},{65131,10585,1},{65111,10582,1}, {65103,10582,1},{65098,10585,1},{65096,10585,1},{65089,10590,1},{65079,10590,1}, {65074,10588,1},{65069,10590,1},{65068,10588,1},{65056,10587,1},{65049,10588,1}, {65043,10592,1},{65029,10587,1},{65011,10587,1},{65003,10583,1},{64988,10583,1}, {64983,10582,1},{64976,10583,1},{64964,10580,1},{64953,10578,1},{64946,10573,1}, {64953,10572,1},{64956,10560,1},{64959,10558,1},{64966,10558,1},{64969,10555,1}, {64969,10553,1},{64968,10552,1},{64969,10548,1},{64974,10543,1},{64991,10528,1}, {64991,10527,1},{64989,10525,1},{64984,10525,1},{64979,10523,1},{64978,10517,1}, {64973,10520,1},{64968,10520,1},{64966,10522,1},{64964,10517,1},{64963,10515,1}, {64961,10522,1},{64959,10522,1},{64956,10513,1},{64959,10510,1},{64961,10508,1}, {64961,10505,1},{64966,10497,1},{64968,10492,1},{64976,10478,1},{64984,10468,1}, {64988,10462,1},{64986,10462,1},{64986,10455,1},{64981,10453,1},{64976,10455,1}, {64966,10463,1},{64953,10470,1},{64944,10472,1},{64943,10467,1},{64944,10455,1}, {64948,10455,1},{64953,10453,1},{64958,10447,1},{64968,10437,1},{64971,10428,1}, {64974,10428,1},{64974,10430,1},{64976,10432,1},{64981,10427,1},{64983,10420,1}, {64986,10418,1},{64991,10410,1},{65004,10398,1},{65008,10400,1},{65011,10400,1}, {65014,10390,1},{65019,10392,1},{65024,10390,1},{65033,10378,1},{65034,10373,1}, {65038,10373,1},{65039,10372,1},{65039,10367,1},{65038,10365,1},{65039,10365,1}, {65044,10362,1},{65044,10355,1},{65049,10348,1},{65049,10342,1},{65056,10338,1}, {65056,10337,1},{65056,10333,1},{65061,10330,1},{65069,10323,1},{65081,10305,1}, {65088,10290,1},{65093,10288,1},{65099,10282,1},{65111,10267,1},{65136,10233,1}, {65139,10228,1},{65144,10228,1},{65148,10232,1},{65149,10232,1},{65156,10227,1}, {65161,10227,1},{65163,10223,1},{65166,10225,1},{65171,10222,1},{65189,10193,1}, {65211,10163,1},{65214,10160,1},{65233,10147,1},{65264,10132,1},{65271,10118,1}, {65278,10110,1},{65304,10090,1},{65319,10083,1},{65329,10088,1},{65343,10087,1}, {65374,10065,1},{65386,10063,1},{65386,10060,1},{65391,10057,1},{65394,10058,1}, {65396,10057,1},{65398,10058,1},{65404,10057,1},{65406,10050,1},{65409,10047,1}, {65409,10042,1},{65411,10042,1},{65413,10043,1},{65416,10043,1},{65416,10042,1}, {65419,10042,1},{65421,10037,1},{65424,10038,1},{65428,10037,1},{65429,10042,1}, {65431,10042,1},{65433,10040,1},{65433,10038,1},{65434,10038,1},{65436,10037,1}, {65449,10033,1},{65453,10032,1},{65471,10013,1},{65479,10008,1},{65489,10002,1}, {65496,9992,1},{65499,9990,1},{65504,9982,1},{65513,9980,1},{65521,9975,1}, {65526,9977,1},{65529,9977,1},{8,9963,1},{15,9952,1},{17,9940,1},{22,9937,1}, {23,9933,1},{23,9930,1},{22,9925,1},{22,9922,1},{25,9918,1},{23,9917,1}, {27,9913,1},{32,9915,1},{35,9912,1},{42,9913,1},{52,9912,1},{52,9908,1}, {58,9910,1},{63,9908,1},{63,9903,1},{77,9903,1},{85,9897,1},{90,9898,1}, {110,9892,1},{128,9885,1},{135,9885,1},{143,9878,1},{148,9877,1},{152,9873,1}, {157,9870,1},{157,9873,1},{153,9877,1},{157,9878,1},{160,9880,1},{162,9882,1}, {167,9882,1},{168,9878,1},{175,9877,1},{178,9873,1},{178,9870,1},{175,9872,1}, {172,9872,1},{175,9867,1},{190,9857,1},{195,9852,1},{200,9842,1},{200,9835,1}, {203,9833,1},{203,9827,1},{208,9823,1},{218,9812,1},{227,9795,1},{227,9792,1}, {223,9787,1},{225,9783,1},{225,9782,1},{228,9780,1},{227,9775,1},{242,9765,1}, {265,9765,1},{277,9763,1},{287,9760,1},{288,9758,1},{288,9753,1},{290,9750,1}, {292,9743,1},{297,9738,1},{307,9732,1},{318,9728,1},{322,9727,1},{325,9717,1}, {352,9702,1},{360,9692,1},{368,9688,1},{375,9678,1},{375,9670,1},{375,9653,1}, {377,9648,1},{387,9638,1},{402,9628,1},{412,9618,1},{413,9615,1},{413,9612,1}, {422,9605,1},{422,9602,1},{428,9595,1},{440,9585,1},{455,9570,1},{458,9565,1}, {463,9560,1},{463,9557,1},{467,9557,1},{468,9553,1},{475,9550,1},{482,9542,1}, {485,9542,1},{502,9535,1},{503,9535,1},{508,9532,1},{512,9530,1},{512,9528,1}, {515,9530,1},{517,9530,1},{523,9525,1},{528,9523,1},{528,9520,1},{533,9523,1}, {537,9523,1},{540,9525,1},{545,9523,1},{547,9525,1},{548,9522,1},{553,9520,1}, {558,9522,1},{557,9523,1},{557,9528,1},{560,9532,1},{562,9537,1},{565,9543,1}, {565,9545,1},{560,9550,1},{563,9560,1},{560,9567,1},{557,9577,1},{550,9588,1}, {545,9590,1},{530,9607,1},{527,9620,1},{527,9627,1},{523,9633,1},{522,9640,1}, {522,9643,1},{523,9647,1},{522,9652,1},{522,9665,1},{528,9682,1},{527,9690,1}, {527,9698,1},{527,9705,1},{522,9713,1},{517,9717,1},{515,9720,1},{522,9740,1}, {525,9748,1},{525,9752,1},{505,9768,1},{498,9778,1},{493,9783,1},{490,9790,1}, {487,9792,1},{478,9797,1},{468,9798,1},{462,9802,1},{453,9800,1},{455,9802,1}, {453,9805,1},{455,9807,1},{453,9808,1},{453,9813,1},{452,9817,1},{448,9818,1}, {448,9822,1},{445,9823,1},{442,9828,1},{435,9828,1},{430,9827,1},{420,9827,1}, {417,9818,1},{410,9818,1},{417,9827,1},{408,9830,1},{408,9838,1},{408,9840,1}, {405,9847,1},{400,9850,1},{400,9855,1},{393,9860,1},{392,9868,1},{378,9872,1}, {372,9883,1},{363,9907,1},{358,9913,1},{355,9920,1},{340,9937,1},{338,9943,1}, {335,9948,1},{325,9955,1},{318,9973,1},{310,9980,1},{307,9983,1},{300,9985,1}, {302,9987,1},{300,9990,1},{293,9998,1},{278,10000,1},{270,9995,1},{267,9998,1}, {260,10000,1},{260,10002,1},{262,10003,1},{263,10002,1},{268,10002,1},{270,9997,1}, {273,10003,1},{273,10005,1},{270,10007,1},{260,10008,1},{252,10012,1},{253,10013,1}, {265,10012,1},{268,10013,1},{270,10017,1},{270,10022,1},{267,10022,1},{265,10025,1}, {258,10027,1},{257,10030,1},{230,10042,1},{222,10048,1},{213,10060,1},{212,10063,1}, {213,10067,1},{203,10082,1},{195,10087,1},{188,10090,1},{183,10093,1},{183,10095,1}, {187,10095,1},{195,10092,1},{202,10090,1},{210,10082,1},{217,10080,1},{223,10080,1}, {228,10083,1},{230,10093,1},{228,10107,1},{225,10105,1},{220,10107,1},{207,10127,1}, {202,10132,1},{192,10133,1},{178,10137,1},{173,10140,1},{170,10143,1},{165,10157,1}, {167,10168,1},{165,10175,1},{145,10200,1},{138,10213,1},{133,10215,1},{125,10215,1}, {120,10220,1},{110,10218,1},{102,10222,1},{97,10225,1},{90,10235,1},{78,10243,1}, {73,10255,1},{75,10267,1},{73,10278,1},{73,10288,1},{70,10293,1},{52,10308,1}, {47,10308,1},{45,10308,1},{27,10275,1},{23,10262,1},{18,10258,1},{20,10253,1}, {25,10248,1},{25,10243,1},{23,10248,1},{18,10252,1},{15,10258,1},{15,10260,1}, {22,10267,1},{22,10273,1},{25,10280,1},{25,10288,1},{33,10302,1},{38,10307,1}, {42,10318,1},{48,10322,1},{50,10328,1},{53,10335,1},{50,10345,1},{42,10355,1}, {37,10360,1},{32,10360,1},{33,10363,1},{28,10373,1},{25,10375,1},{0,10382,1}, {65534,10367,1},{65531,10367,1},{65531,10363,1},{65534,10358,1},{65533,10357,1}, {65531,10358,1},{65526,10358,1},{65524,10355,1},{65524,10348,1},{65519,10348,1}, {65514,10342,1},{65509,10327,1},{65511,10337,1},{65514,10348,1},{65513,10350,1}, {65511,10348,1},{65501,10342,1},{65499,10333,1},{65498,10338,1},{65498,10350,1}, {65494,10357,1},{65493,10360,1},{65486,10352,1},{65484,10342,1},{65484,10340,1}, {65491,10337,1},{65484,10338,1},{65479,10342,1},{65473,10340,1},{65471,10337,1}, {65468,10338,1},{65466,10333,1},{65463,10338,1},{65459,10347,1},{65458,10347,1}, {65454,10343,1},{65456,10348,1},{65454,10352,1},{65449,10355,1},{65448,10358,1}, {65441,10365,1},{65441,10368,1},{65438,10373,1},{65434,10380,1},{65428,10382,1}, {65433,10383,1},{65434,10387,1},{65438,10395,1},{65434,10405,1},{65433,10412,1}, {65428,10420,1},{65433,10435,1},{65433,10438,1},{65423,10442,1},{65414,10440,1}, {65401,10445,1},{65389,10445,1},{65379,10447,1},{65359,10453,1},{65356,10453,1}, {65353,10450,1},{65349,10448,1},{65343,10448,1},{65343,10450,1},{65344,10452,1}, {65351,10455,1},{65343,10463,1},{65338,10462,1},{65334,10458,1},{65334,10462,1}, {65338,10465,1},{65338,10467,1},{65333,10467,1},{65331,10468,1},{65336,10475,1}, {65336,10482,1},{65329,10487,1},{65323,10488,1},{65316,10487,1},{65301,10475,1}, {65301,10467,1},{65296,10460,1},{65299,10470,1},{65298,10472,1},{65296,10473,1}, {65279,10472,1},{65271,10458,1},{65266,10455,1},{65259,10453,1},{65261,10455,1}, {65269,10460,1},{65276,10473,1},{65288,10477,1},{65294,10477,1},{65299,10482,1}, {65308,10487,1},{65306,10490,1},{65301,10490,1},{65298,10492,1},{65303,10493,1}, {65303,10497,1},{65303,10500,1},{65299,10503,1},{65298,10512,1},{65301,10523,1}, {65298,10535,1},{65296,10555,1},{65294,10553,1},{65296,10562,1},{65293,10563,1}, {65283,10560,1},{65276,10562,1},{65269,10568,1},{65266,10578,1},{65251,10578,1}, {65246,10582,1},{65243,10583,1},{65239,10590,1},{65241,10598,1},{65236,10603,1}, {65231,10605,1},{65221,10605,1},{65213,10608,1},{65209,10607,1},{65204,10598,1}, {65194,10590,1},{65168,10582,1},{65163,10582,1},{65156,10593,1},{65151,10595,1}, {65131,10585,1},{65111,10582,1},{65103,10582,1},{65098,10585,1},{65096,10585,1}, {65089,10590,1},{65079,10590,1},{65074,10588,1},{65069,10590,1},{65068,10588,1}, {65056,10587,1},{65049,10588,1},{65043,10592,1},{65029,10587,1},{65011,10587,1}, {65003,10583,1},{64988,10583,1},{64983,10582,1},{64976,10583,1},{64964,10580,1}, {64953,10578,1},{64946,10573,1},{64953,10572,1},{64956,10560,1},{64959,10558,1}, {64966,10558,1},{64969,10555,1},{64969,10553,1},{64968,10552,1},{64969,10548,1}, {64974,10543,1},{64991,10528,1},{64991,10527,1},{64989,10525,1},{64984,10525,1}, {64979,10523,1},{64978,10517,1},{64973,10520,1},{64968,10520,1},{64966,10522,1}, {64964,10517,1},{64963,10515,1},{64961,10522,1},{64959,10522,1},{64956,10513,1}, {64959,10510,1},{64961,10508,1},{64961,10505,1},{64966,10497,1},{64968,10492,1}, {64976,10478,1},{64984,10468,1},{64988,10462,1},{64986,10462,1},{64986,10455,1}, {64981,10453,1},{64976,10455,1},{64966,10463,1},{64953,10470,1},{64944,10472,1}, {64943,10467,1},{64944,10455,1},{64948,10455,1},{64953,10453,1},{64958,10447,1}, {64968,10437,1},{64971,10428,1},{64974,10428,1},{64974,10430,1},{64976,10432,1}, {64981,10427,1},{64983,10420,1},{64986,10418,1},{64991,10410,1},{65004,10398,1}, {65008,10400,1},{65011,10400,1},{65014,10390,1},{65019,10392,1},{65024,10390,1}, {65033,10378,1},{65034,10373,1},{65038,10373,1},{65039,10372,1},{65039,10367,1}, {65038,10365,1},{65039,10365,1},{65044,10362,1},{65044,10355,1},{65049,10348,1}, {65049,10342,1},{65056,10338,1},{65056,10337,1},{65056,10333,1},{65061,10330,1}, {65069,10323,1},{65081,10305,1},{65088,10290,1},{65093,10288,1},{65099,10282,1}, {65111,10267,1},{65136,10233,1},{65139,10228,1},{65144,10228,1},{65148,10232,1}, {65149,10232,1},{65156,10227,1},{65161,10227,1},{65163,10223,1},{65166,10225,1}, {65171,10222,1},{65189,10193,1},{65211,10163,1},{65214,10160,1},{65233,10147,1}, {65264,10132,1},{65271,10118,1},{65278,10110,1},{65304,10090,1},{65319,10083,1}, {65329,10088,1},{65343,10087,1},{65374,10065,1},{65386,10063,1},{65386,10060,1}, {65391,10057,1},{65394,10058,1},{65396,10057,1},{65398,10058,1},{65404,10057,1}, {65406,10050,1},{65409,10047,1},{65409,10042,1},{65411,10042,1},{65413,10043,1}, {65416,10043,1},{65416,10042,1},{65419,10042,1},{65421,10037,1},{65424,10038,1}, {65428,10037,1},{65429,10042,1},{65431,10042,1},{65433,10040,1},{65433,10038,1}, {65434,10038,1},{65436,10037,1},{65449,10033,1},{65453,10032,1},{65471,10013,1}, {65479,10008,1},{65489,10002,1},{65496,9992,1},{65499,9990,1},{65504,9982,1}, {65513,9980,1},{65521,9975,1},{65526,9977,1},{65529,9977,1},{8,9963,1}, {15,9952,1},{17,9940,1},{22,9937,1},{23,9933,1},{23,9930,1},{22,9925,1}, {22,9922,1},{25,9918,1},{23,9917,1},{27,9913,1},{32,9915,1},{35,9912,1}, {42,9913,1},{52,9912,1},{52,9908,1},{58,9910,1},{63,9908,1},{63,9903,1}, {77,9903,1},{85,9897,1},{90,9898,1},{110,9892,1},{128,9885,1},{135,9885,1}, {143,9878,1},{148,9877,1},{152,9873,1},{157,9870,1},{157,9873,1},{153,9877,1}, {157,9878,1},{160,9880,1},{162,9882,1},{167,9882,1},{168,9878,1},{175,9877,1}, {178,9873,1},{178,9870,1},{175,9872,1},{172,9872,1},{175,9867,1},{190,9857,1}, {195,9852,1},{200,9842,1},{200,9835,1},{203,9833,1},{203,9827,1},{208,9823,1}, {218,9812,1},{227,9795,1},{227,9792,1},{223,9787,1},{225,9783,1},{225,9782,1}, {228,9780,1},{227,9775,1},{242,9765,1},{265,9765,1},{277,9763,1},{287,9760,1}, {288,9758,1},{288,9753,1},{290,9750,1},{292,9743,1},{297,9738,1},{307,9732,1}, {318,9728,1},{322,9727,1},{325,9717,1},{352,9702,1},{360,9692,1},{368,9688,1}, {375,9678,1},{375,9670,1},{375,9653,1},{377,9648,1},{387,9638,1},{402,9628,1}, {412,9618,1},{413,9615,1},{413,9612,1},{422,9605,1},{422,9602,1},{428,9595,1}, {440,9585,1},{455,9570,1},{458,9565,1},{463,9560,1},{463,9557,1},{467,9557,1}, {468,9553,1},{475,9550,1},{482,9542,1},{485,9542,1},{502,9535,1},{503,9535,1}, {508,9532,1},{512,9530,1},{512,9528,1},{515,9530,1},{517,9530,1},{523,9525,1}, {528,9523,1},{528,9520,1},{533,9523,1},{537,9523,1},{540,9525,1},{545,9523,1}, {547,9525,1},{548,9522,1},{553,9520,1},{558,9522,1},{557,9523,1},{237,9647,129}, {233,9642,1},{237,9637,1},{235,9633,1},{237,9632,1},{238,9633,1},{240,9628,1}, {242,9630,1},{247,9622,1},{258,9607,1},{260,9602,1},{258,9600,1},{260,9597,1}, {258,9593,1},{262,9590,1},{262,9588,1},{263,9588,1},{265,9587,1},{265,9578,1}, {270,9578,1},{275,9573,1},{278,9573,1},{277,9570,1},{282,9570,1},{285,9572,1}, {285,9578,1},{288,9577,1},{293,9580,1},{292,9582,1},{292,9588,1},{288,9592,1}, {288,9587,1},{285,9588,1},{283,9595,1},{277,9602,1},{277,9608,1},{273,9612,1}, {272,9613,1},{265,9610,1},{265,9615,1},{265,9617,1},{268,9615,1},{265,9618,1}, {260,9623,1},{255,9633,1},{247,9638,1},{248,9640,1},{252,9640,1},{250,9642,1}, {250,9643,1},{247,9647,1},{238,9648,1},{237,9648,1},{235,9645,1},{65359,9920,129}, {65356,9912,1},{65359,9903,1},{65366,9893,1},{65368,9887,1},{65373,9885,1}, {65374,9883,1},{65378,9883,1},{65384,9880,1},{65406,9863,1},{65409,9863,1}, {65414,9860,1},{65418,9860,1},{65428,9865,1},{65439,9867,1},{65441,9870,1}, {65439,9878,1},{65444,9888,1},{65443,9888,1},{65441,9892,1},{65439,9893,1}, {65436,9893,1},{65436,9890,1},{65429,9893,1},{65426,9898,1},{65421,9900,1}, {65418,9903,1},{65414,9903,1},{65413,9907,1},{65408,9905,1},{65408,9908,1}, {65399,9912,1},{65394,9917,1},{65391,9917,1},{65393,9913,1},{65391,9913,1}, {65384,9920,1},{65381,9920,1},{65378,9922,1},{65378,9925,1},{65374,9928,1}, {65369,9928,1},{65366,9930,1},{65363,9928,1},{65374,9923,1},{65373,9920,1}, {65371,9922,1},{65359,9925,1},{65358,9923,1},{65359,9920,1},{93,9792,129}, {88,9790,1},{82,9790,1},{78,9788,1},{63,9788,1},{55,9782,1},{58,9778,1}, {57,9775,1},{57,9773,1},{58,9773,1},{57,9772,1},{58,9768,1},{60,9768,1}, {63,9768,1},{67,9765,1},{72,9765,1},{82,9762,1},{88,9753,1},{90,9748,1}, {93,9750,1},{93,9748,1},{95,9742,1},{93,9738,1},{100,9740,1},{117,9730,1}, {123,9725,1},{127,9725,1},{128,9720,1},{140,9710,1},{140,9707,1},{142,9707,1}, {143,9712,1},{143,9713,1},{140,9717,1},{142,9718,1},{140,9722,1},{142,9725,1}, {148,9733,1},{153,9733,1},{153,9735,1},{150,9738,1},{152,9742,1},{150,9743,1}, {147,9745,1},{147,9748,1},{140,9753,1},{133,9760,1},{118,9768,1},{115,9775,1}, {115,9778,1},{107,9783,1},{105,9788,1},{103,9792,1},{97,9793,1},{93,9792,1}, {65388,10588,129},{65386,10592,1},{65383,10593,1},{65381,10598,1},{65378,10603,1}, {65376,10605,1},{65373,10603,1},{65368,10603,1},{65361,10608,1},{65358,10610,1}, {65356,10613,1},{65351,10613,1},{65348,10618,1},{65336,10617,1},{65323,10618,1}, {65301,10625,1},{65293,10632,1},{65288,10638,1},{65288,10647,1},{65284,10657,1}, {65279,10682,1},{65278,10683,1},{65274,10675,1},{65268,10668,1},{65248,10660,1}, {65241,10662,1},{65239,10665,1},{65239,10668,1},{65236,10670,1},{65236,10675,1}, {65229,10673,1},{65228,10675,1},{65226,10672,1},{65226,10667,1},{65228,10665,1}, {65228,10658,1},{65226,10657,1},{65226,10652,1},{65233,10650,1},{65234,10647,1}, {65238,10643,1},{65239,10635,1},{65244,10628,1},{65249,10615,1},{65251,10610,1}, {65253,10598,1},{65254,10597,1},{65264,10592,1},{65271,10590,1},{65276,10590,1}, {65284,10593,1},{65288,10593,1},{65291,10592,1},{65293,10585,1},{65298,10582,1}, {65306,10583,1},{65313,10580,1},{65319,10580,1},{65321,10578,1},{65323,10575,1}, {65324,10560,1},{65329,10557,1},{65326,10548,1},{65323,10545,1},{65323,10532,1}, {65323,10528,1},{65329,10525,1},{65329,10513,1},{65334,10512,1},{65341,10513,1}, {65344,10518,1},{65348,10528,1},{65356,10540,1},{65361,10540,1},{65366,10533,1}, {65368,10535,1},{65371,10535,1},{65373,10538,1},{65376,10540,1},{65376,10543,1}, {65379,10547,1},{65379,10555,1},{65383,10558,1},{65383,10560,1},{65376,10562,1}, {65373,10565,1},{65369,10570,1},{65364,10565,1},{65359,10568,1},{65358,10572,1}, {65359,10575,1},{65356,10578,1},{65358,10582,1},{65364,10575,1},{65368,10575,1}, {65371,10575,1},{65373,10573,1},{65383,10570,1},{65383,10583,1},{65386,10587,1}, {65386,10590,1},{65281,10772,129},{65281,10778,1},{65283,10782,1},{65281,10783,1}, {65278,10790,1},{65279,10793,1},{65278,10800,1},{65271,10803,1},{65276,10805,1}, {65274,10810,1},{65268,10817,1},{65269,10818,1},{65268,10820,1},{65263,10823,1}, {65261,10827,1},{65251,10830,1},{65248,10828,1},{65236,10820,1},{65231,10822,1}, {65226,10818,1},{65223,10820,1},{65219,10808,1},{65218,10807,1},{65213,10808,1}, {65213,10803,1},{65211,10798,1},{65213,10797,1},{65221,10797,1},{65224,10792,1}, {65226,10788,1},{65228,10790,1},{65231,10787,1},{65228,10782,1},{65224,10785,1}, {65219,10783,1},{65213,10765,1},{65214,10762,1},{65218,10762,1},{65223,10763,1}, {65226,10760,1},{65236,10758,1},{65244,10762,1},{65244,10758,1},{65243,10757,1}, {65244,10755,1},{65246,10755,1},{65249,10760,1},{65251,10762,1},{65254,10762,1}, {65258,10760,1},{65261,10763,1},{65268,10763,1},{65273,10765,1},{65278,10765,1}, {65279,10767,1},{65281,10772,1},{102,10467,129},{98,10465,1},{92,10467,1}, {90,10462,1},{83,10460,1},{82,10458,1},{85,10448,1},{88,10448,1},{92,10445,1}, {92,10448,1},{93,10448,1},{95,10442,1},{97,10442,1},{98,10447,1},{100,10445,1}, {102,10448,1},{105,10445,1},{105,10442,1},{102,10438,1},{102,10433,1},{100,10432,1}, {100,10425,1},{103,10423,1},{108,10423,1},{113,10433,1},{117,10433,1},{117,10438,1}, {120,10440,1},{117,10448,1},{117,10452,1},{120,10457,1},{122,10457,1},{123,10458,1}, {122,10460,1},{118,10458,1},{113,10458,1},{110,10465,1},{102,10467,1},{113,10415,129}, {105,10413,1},{107,10410,1},{105,10410,1},{100,10410,1},{98,10408,1},{98,10402,1}, {100,10400,1},{100,10395,1},{103,10392,1},{108,10390,1},{108,10395,1},{113,10395,1}, {113,10402,1},{118,10403,1},{113,10408,1},{115,10410,1},{118,10408,1},{118,10412,1}, {117,10415,1},{113,10415,1},{87,10317,129},{83,10315,1},{83,10312,1},{87,10305,1}, {90,10297,1},{97,10290,1},{98,10283,1},{103,10278,1},{103,10272,1},{100,10265,1}, {102,10262,1},{108,10268,1},{115,10272,1},{117,10275,1},{117,10280,1},{113,10288,1}, {108,10297,1},{102,10305,1},{88,10317,1},{85,10317,1},{80,10305,129},{72,10305,1}, {70,10302,1},{70,10300,1},{77,10293,1},{80,10287,1},{80,10265,1},{77,10255,1}, {80,10248,1},{88,10240,1},{92,10243,1},{95,10250,1},{108,10247,1},{112,10248,1}, {113,10250,1},{113,10253,1},{108,10260,1},{105,10262,1},{102,10260,1},{100,10262,1}, {102,10272,1},{100,10278,1},{93,10288,1},{83,10303,1},{78,10305,1},{122,10248,129}, {110,10245,1},{97,10247,1},{95,10243,1},{92,10238,1},{92,10237,1},{102,10228,1}, {105,10225,1},{110,10223,1},{120,10225,1},{128,10220,1},{135,10222,1},{140,10220,1}, {140,10222,1},{140,10228,1},{135,10235,1},{125,10247,1},{120,10248,1},{145,10250,129}, {128,10250,1},{127,10250,1},{128,10247,1},{142,10232,1},{145,10215,1},{147,10210,1}, {152,10205,1},{160,10200,1},{162,10203,1},{160,10210,1},{157,10218,1},{155,10233,1}, {153,10243,1},{150,10248,1},{143,10250,1},{195,10177,129},{187,10173,1}, {180,10173,1},{178,10172,1},{172,10165,1},{172,10160,1},{172,10155,1},{173,10147,1}, {178,10145,1},{187,10142,1},{192,10140,1},{200,10140,1},{205,10142,1},{207,10147,1}, {205,10155,1},{210,10160,1},{212,10163,1},{208,10170,1},{200,10177,1},{193,10177,1}, {207,10965,129},{208,10963,1},{207,10963,1},{198,10957,1},{193,10933,1}, {183,10933,1},{178,10928,1},{178,10930,1},{182,10933,1},{182,10935,1},{177,10932,1}, {170,10928,1},{165,10923,1},{157,10912,1},{153,10907,1},{137,10907,1},{122,10898,1}, {122,10905,1},{127,10913,1},{140,10923,1},{140,10927,1},{135,10923,1},{127,10917,1}, {122,10910,1},{117,10892,1},{112,10893,1},{100,10898,1},{95,10898,1},{88,10893,1}, {87,10892,1},{87,10888,1},{82,10885,1},{75,10888,1},{70,10887,1},{67,10892,1}, {62,10893,1},{50,10890,1},{42,10895,1},{35,10892,1},{32,10892,1},{30,10893,1}, {28,10905,1},{22,10912,1},{10,10917,1},{0,10930,1},{3,10917,1},{2,10915,1}, {0,10915,1},{65529,10918,1},{65518,10918,1},{65513,10922,1},{65514,10918,1}, {65516,10912,1},{65514,10907,1},{65513,10905,1},{65508,10907,1},{65511,10907,1}, {65509,10910,1},{65508,10908,1},{65503,10910,1},{65499,10913,1},{65499,10910,1}, {65486,10912,1},{65479,10917,1},{65481,10920,1},{65479,10922,1},{65476,10927,1}, {65478,10937,1},{65474,10942,1},{65474,10937,1},{65474,10935,1},{65473,10937,1}, {65471,10935,1},{65469,10940,1},{65464,10945,1},{65463,10952,1},{65461,10947,1}, {65463,10943,1},{65466,10938,1},{65466,10930,1},{65469,10927,1},{65463,10925,1}, {65451,10927,1},{65448,10928,1},{65444,10938,1},{65446,10942,1},{65449,10942,1}, {65451,10943,1},{65448,10957,1},{65444,10958,1},{65441,10960,1},{65441,10963,1}, {65438,10967,1},{65441,10972,1},{65446,10972,1},{65449,10975,1},{65448,10977,1}, {65444,10973,1},{65441,10973,1},{65433,10978,1},{65431,10980,1},{65428,10983,1}, {65424,10995,1},{65416,10992,1},{65413,10995,1},{65409,10995,1},{65408,11000,1}, {65403,11005,1},{65398,11007,1},{65389,11007,1},{65386,11005,1},{65371,11003,1}, {65363,11000,1},{65358,10992,1},{65356,10990,1},{65354,10992,1},{65353,10990,1}, {65349,10995,1},{65341,11008,1},{65329,11013,1},{65319,11010,1},{65313,11010,1}, {65306,11013,1},{65291,11017,1},{65281,11023,1},{65283,11028,1},{65279,11025,1}, {65281,11020,1},{65273,11015,1},{65269,11022,1},{65261,11022,1},{65256,11025,1}, {65246,11020,1},{65238,11023,1},{65234,11028,1},{65238,11032,1},{65248,11048,1}, {65249,11053,1},{65248,11058,1},{65246,11060,1},{65234,11065,1},{65231,11062,1}, {65228,11067,1},{65231,11072,1},{65241,11078,1},{65244,11088,1},{65248,11092,1}, {65248,11097,1},{65246,11097,1},{65238,11078,1},{65233,11075,1},{65233,11083,1}, {65228,11090,1},{65226,11095,1},{65229,11107,1},{65238,11118,1},{65244,11133,1}, {65241,11148,1},{65234,11155,1},{65238,11163,1},{65243,11170,1},{65246,11167,1}, {65249,11172,1},{65258,11170,1},{65261,11175,1},{65256,11173,1},{65253,11175,1}, {65246,11175,1},{65238,11180,1},{65231,11183,1},{65216,11182,1},{65196,11185,1}, {65183,11180,1},{65179,11187,1},{65179,11192,1},{65181,11195,1},{65201,11217,1}, {65204,11225,1},{65204,11230,1},{65201,11242,1},{65191,11255,1},{65194,11258,1}, {65194,11265,1},{65204,11277,1},{65219,11302,1},{65221,11302,1},{65221,11297,1}, {65226,11295,1},{65231,11298,1},{65231,11302,1},{65233,11302,1},{65243,11303,1}, {65234,11308,1},{65229,11313,1},{65226,11320,1},{65219,11323,1},{65214,11330,1}, {65209,11335,1},{65219,11332,1},{65209,11337,1},{65211,11343,1},{65216,11345,1}, {65218,11348,1},{65219,11362,1},{65211,11365,1},{65201,11363,1},{65193,11362,1}, {65188,11367,1},{65191,11383,1},{65199,11403,1},{65208,11410,1},{65216,11412,1}, {65201,11410,1},{65199,11412,1},{65198,11422,1},{65203,11428,1},{65211,11433,1}, {65214,11437,1},{65211,11435,1},{65206,11432,1},{65201,11430,1},{65199,11427,1}, {65196,11427,1},{65186,11443,1},{65186,11448,1},{65198,11450,1},{65201,11455,1}, {65193,11453,1},{65183,11452,1},{65174,11458,1},{65168,11460,1},{65149,11460,1}, {65134,11463,1},{65123,11462,1},{65119,11462,1},{65118,11463,1},{65119,11472,1}, {65131,11492,1},{65144,11522,1},{65156,11555,1},{65163,11567,1},{65164,11573,1}, {65173,11583,1},{65174,11597,1},{65181,11600,1},{65193,11600,1},{65209,11610,1}, {65213,11612,1},{65213,11615,1},{65213,11617,1},{65211,11617,1},{65209,11615,1}, {65211,11613,1},{65208,11612,1},{65211,11618,1},{65214,11618,1},{65218,11617,1}, {65219,11617,1},{65223,11627,1},{65226,11625,1},{65231,11618,1},{65236,11617,1}, {65236,11610,1},{65239,11612,1},{65244,11612,1},{65248,11613,1},{65254,11613,1}, {65253,11615,1},{65246,11617,1},{65244,11620,1},{65236,11622,1},{65234,11625,1}, {65236,11627,1},{65244,11635,1},{65253,11637,1},{65268,11637,1},{65279,11640,1}, {65281,11635,1},{65279,11633,1},{65274,11630,1},{65276,11630,1},{65279,11632,1}, {65281,11632,1},{65284,11630,1},{65284,11635,1},{65284,11640,1},{65286,11642,1}, {65283,11647,1},{65279,11647,1},{65279,11648,1},{65281,11652,1},{65284,11653,1}, {65314,11660,1},{65318,11660,1},{65314,11655,1},{65318,11653,1},{65319,11653,1}, {65319,11652,1},{65314,11642,1},{65321,11638,1},{65321,11633,1},{65319,11628,1}, {65326,11635,1},{65328,11643,1},{65331,11645,1},{65344,11647,1},{65351,11642,1}, {65358,11645,1},{65359,11640,1},{65358,11637,1},{65358,11633,1},{65354,11627,1}, {65356,11623,1},{65358,11622,1},{65359,11627,1},{65366,11633,1},{65374,11653,1}, {65379,11657,1},{65383,11653,1},{65388,11653,1},{65394,11662,1},{65399,11675,1}, {65406,11677,1},{65411,11678,1},{65414,11673,1},{65418,11677,1},{65423,11672,1}, {65434,11675,1},{65433,11677,1},{65426,11673,1},{65421,11678,1},{65414,11678,1}, {65416,11682,1},{65416,11683,1},{65408,11682,1},{65411,11692,1},{65416,11702,1}, {65421,11703,1},{65428,11710,1},{65439,11718,1},{65446,11725,1},{65453,11727,1}, {65456,11728,1},{65451,11733,1},{65446,11735,1},{65451,11738,1},{65448,11742,1}, {65449,11745,1},{65454,11745,1},{65454,11748,1},{65453,11748,1},{65454,11748,1}, {65456,11748,1},{65454,11755,1},{65456,11757,1},{65458,11762,1},{65459,11762,1}, {65463,11762,1},{65464,11752,1},{65466,11748,1},{65468,11748,1},{65466,11753,1}, {65469,11753,1},{65471,11757,1},{65473,11757,1},{65474,11753,1},{65476,11758,1}, {65483,11760,1},{65486,11755,1},{65489,11762,1},{65491,11763,1},{65494,11763,1}, {65493,11760,1},{65484,11743,1},{65488,11747,1},{65493,11745,1},{65501,11750,1}, {65503,11750,1},{65503,11747,1},{65511,11743,1},{65516,11747,1},{65521,11747,1}, {65526,11748,1},{65533,11753,1},{2,11752,1},{3,11748,1},{5,11750,1},{5,11747,1}, {12,11747,1},{13,11752,1},{17,11748,1},{23,11753,1},{28,11752,1},{33,11755,1}, {40,11757,1},{43,11762,1},{48,11762,1},{57,11767,1},{62,11770,1},{63,11772,1}, {70,11772,1},{73,11775,1},{82,11782,1},{82,11788,1},{83,11790,1},{83,11793,1}, {78,11798,1},{78,11802,1},{80,11803,1},{85,11803,1},{90,11800,1},{98,11797,1}, {108,11790,1},{112,11790,1},{110,11795,1},{107,11800,1},{97,11803,1},{92,11807,1}, {88,11817,1},{85,11833,1},{82,11835,1},{80,11838,1},{83,11843,1},{83,11850,1}, {80,11855,1},{85,11867,1},{80,11877,1},{80,11880,1},{87,11887,1},{90,11895,1}, {98,11902,1},{100,11900,1},{103,11900,1},{105,11900,1},{107,11892,1},{105,11887,1}, {105,11885,1},{115,11880,1},{117,11877,1},{118,11878,1},{120,11878,1},{130,11865,1}, {135,11860,1},{137,11853,1},{140,11848,1},{140,11845,1},{143,11843,1},{145,11840,1}, {148,11842,1},{165,11813,1},{173,11805,1},{178,11805,1},{182,11792,1},{188,11788,1}, {188,11787,1},{190,11785,1},{192,11787,1},{198,11787,1},{198,11785,1},{202,11783,1}, {203,11775,1},{205,11775,1},{203,11780,1},{205,11790,1},{207,11790,1},{208,11783,1}, {210,11783,1},{208,11790,1},{212,11792,1},{212,11793,1},{217,11793,1},{222,11807,1}, {228,11810,1},{232,11810,1},{238,11805,1},{237,11803,1},{237,11802,1},{245,11798,1}, {262,11782,1},{277,11778,1},{278,11773,1},{282,11762,1},{283,11762,1},{285,11765,1}, {287,11767,1},{288,11772,1},{290,11773,1},{292,11753,1},{297,11768,1},{300,11765,1}, {298,11757,1},{305,11763,1},{308,11762,1},{310,11755,1},{310,11748,1},{313,11745,1}, {317,11745,1},{318,11735,1},{322,11732,1},{322,11727,1},{325,11727,1},{327,11727,1}, {323,11733,1},{323,11735,1},{330,11737,1},{333,11740,1},{335,11740,1},{337,11743,1}, {343,11745,1},{345,11733,1},{343,11732,1},{347,11730,1},{348,11723,1},{353,11720,1}, {360,11722,1},{362,11720,1},{362,11710,1},{360,11703,1},{363,11707,1},{365,11718,1}, {363,11730,1},{363,11743,1},{360,11750,1},{365,11752,1},{370,11748,1},{375,11748,1}, {378,11747,1},{377,11750,1},{367,11753,1},{363,11762,1},{363,11775,1},{368,11778,1}, {370,11783,1},{372,11783,1},{377,11770,1},{378,11772,1},{377,11777,1},{378,11778,1}, {387,11770,1},{388,11762,1},{392,11757,1},{393,11752,1},{393,11753,1},{393,11758,1}, {390,11765,1},{390,11768,1},{392,11770,1},{395,11762,1},{405,11752,1},{403,11747,1}, {408,11747,1},{410,11740,1},{413,11740,1},{417,11737,1},{412,11752,1},{417,11758,1}, {64753,10990,129},{64746,11005,1},{64734,11028,1},{64733,11033,1},{64729,11038,1}, {64719,11068,1},{64716,11072,1},{64716,11083,1},{64711,11102,1},{64711,11108,1}, {64714,11110,1},{64711,11112,1},{64711,11115,1},{64708,11117,1},{64711,11127,1}, {64709,11130,1},{64711,11132,1},{64709,11133,1},{64709,11137,1},{64708,11138,1}, {64709,11143,1},{64704,11145,1},{64703,11152,1},{64704,11155,1},{64704,11157,1}, {64703,11158,1},{64703,11162,1},{64699,11163,1},{64699,11170,1},{64699,11172,1}, {64703,11170,1},{64706,11172,1},{64706,11173,1},{64703,11175,1},{64704,11177,1}, {64706,11177,1},{64709,11178,1},{64708,11183,1},{64709,11185,1},{64704,11192,1}, {64706,11193,1},{64708,11195,1},{64704,11203,1},{64704,11218,1},{64701,11225,1}, {64703,11228,1},{64703,11235,1},{64701,11238,1},{64698,11238,1},{64696,11245,1}, {64696,11257,1},{64691,11267,1},{64693,11270,1},{64694,11277,1},{64698,11278,1}, {64696,11282,1},{64699,11283,1},{64696,11285,1},{64696,11292,1},{64703,11297,1}, {64706,11303,1},{64708,11318,1},{64708,11323,1},{64703,11335,1},{64696,11340,1}, {64698,11345,1},{64696,11348,1},{64694,11348,1},{64693,11353,1},{64689,11363,1}, {64686,11367,1},{64686,11372,1},{64683,11372,1},{64683,11375,1},{64686,11380,1}, {64683,11382,1},{64681,11382,1},{64679,11387,1},{64678,11392,1},{64679,11397,1}, {64674,11397,1},{64676,11403,1},{64674,11405,1},{64673,11407,1},{64673,11412,1}, {64674,11413,1},{64671,11422,1},{64673,11423,1},{64674,11425,1},{64674,11428,1}, {64671,11437,1},{64669,11438,1},{64664,11438,1},{64663,11437,1},{64661,11438,1}, {64661,11447,1},{64658,11457,1},{64659,11462,1},{64666,11462,1},{64669,11458,1}, {64669,11455,1},{64674,11450,1},{64673,11447,1},{64681,11442,1},{64684,11443,1}, {64691,11442,1},{64691,11440,1},{64684,11440,1},{64683,11438,1},{64684,11437,1}, {64689,11437,1},{64693,11435,1},{64721,11440,1},{64733,11445,1},{64744,11443,1}, {64749,11447,1},{64753,11447,1},{64756,11443,1},{64759,11438,1},{64761,11432,1}, {64766,11425,1},{64764,11422,1},{64766,11415,1},{64774,11403,1},{64768,11393,1}, {64768,11383,1},{64763,11378,1},{64764,11372,1},{64764,11368,1},{64766,11350,1}, {64763,11342,1},{64756,11330,1},{64758,11328,1},{64761,11325,1},{64761,11318,1}, {64766,11310,1},{64769,11305,1},{64771,11298,1},{64776,11285,1},{64781,11278,1}, {64783,11275,1},{64791,11275,1},{64796,11282,1},{64801,11282,1},{64808,11283,1}, {64813,11280,1},{64816,11277,1},{64814,11273,1},{64811,11272,1},{64811,11270,1}, {64816,11260,1},{64816,11262,1},{64816,11267,1},{64819,11268,1},{64828,11260,1}, {64829,11262,1},{64831,11267,1},{64833,11265,1},{64831,11262,1},{64833,11260,1}, {64838,11258,1},{64844,11260,1},{64849,11257,1},{64849,11255,1},{64844,11257,1}, {64844,11253,1},{64848,11245,1},{64849,11235,1},{64848,11228,1},{64844,11210,1}, {64846,11207,1},{64849,11205,1},{64858,11198,1},{64858,11193,1},{64854,11188,1}, {64858,11173,1},{64861,11168,1},{64871,11158,1},{64873,11148,1},{64873,11147,1}, {64866,11143,1},{64864,11138,1},{64866,11120,1},{64866,11118,1},{64866,11115,1}, {64876,11108,1},{64889,11107,1},{64893,11102,1},{64893,11095,1},{64894,11092,1}, {64893,11078,1},{64891,11073,1},{64886,11070,1},{64886,11067,1},{64883,11068,1}, {64881,11067,1},{64869,11065,1},{64851,11057,1},{64841,11048,1},{64838,11038,1}, {64839,11033,1},{64841,11030,1},{64846,11020,1},{64849,11018,1},{64846,11013,1}, {64843,10998,1},{64844,10987,1},{64849,10972,1},{64851,10958,1},{64853,10952,1}, {64856,10948,1},{64849,10945,1},{64848,10930,1},{64851,10913,1},{64858,10902,1}, {64856,10898,1},{64851,10898,1},{64851,10897,1},{64851,10892,1},{64856,10888,1}, {64856,10883,1},{64854,10878,1},{64854,10872,1},{64858,10867,1},{64858,10863,1}, {64861,10860,1},{64869,10857,1},{64886,10855,1},{64896,10842,1},{64909,10832,1}, {64909,10822,1},{64906,10818,1},{64903,10818,1},{64901,10813,1},{64903,10807,1}, {64908,10798,1},{64913,10788,1},{64918,10783,1},{64918,10782,1},{64914,10782,1}, {64914,10777,1},{64911,10773,1},{64911,10765,1},{64918,10758,1},{64921,10748,1}, {64934,10738,1},{64939,10733,1},{64939,10725,1},{64938,10718,1},{64939,10712,1}, {64943,10710,1},{64944,10703,1},{64944,10702,1},{64939,10702,1},{64936,10700,1}, {64933,10702,1},{64928,10700,1},{64926,10683,1},{64926,10675,1},{64934,10670,1}, {64934,10653,1},{64931,10650,1},{64934,10643,1},{64936,10637,1},{64943,10627,1}, {64941,10623,1},{64934,10620,1},{64934,10617,1},{64938,10612,1},{64944,10610,1}, {64948,10608,1},{64948,10603,1},{64944,10600,1},{64938,10597,1},{64928,10588,1}, {64913,10583,1},{64894,10582,1},{64889,10580,1},{64886,10577,1},{64884,10572,1}, {64886,10568,1},{64891,10567,1},{64889,10563,1},{64886,10563,1},{64874,10563,1}, {64863,10552,1},{64854,10548,1},{64854,10547,1},{64854,10545,1},{64861,10540,1}, {64866,10540,1},{64869,10537,1},{64868,10533,1},{64864,10532,1},{64859,10527,1}, {64859,10522,1},{64851,10527,1},{64851,10528,1},{64854,10530,1},{64854,10538,1}, {64849,10542,1},{64851,10545,1},{64849,10548,1},{64849,10555,1},{64853,10570,1}, {64849,10578,1},{64851,10585,1},{64851,10587,1},{64853,10592,1},{64853,10600,1}, {64851,10607,1},{64844,10617,1},{64841,10625,1},{64839,10625,1},{64836,10632,1}, {64836,10638,1},{64839,10643,1},{64838,10652,1},{64836,10653,1},{64829,10655,1}, {64821,10647,1},{64818,10647,1},{64818,10642,1},{64813,10638,1},{64806,10638,1}, {64798,10642,1},{64801,10645,1},{64798,10650,1},{64794,10658,1},{64791,10712,1}, {64788,10725,1},{64786,10740,1},{64784,10742,1},{64786,10747,1},{64783,10748,1}, {64781,10755,1},{64778,10762,1},{64773,10768,1},{64771,10770,1},{64768,10782,1}, {64763,10787,1},{64764,10793,1},{64763,10798,1},{64758,10817,1},{64756,10845,1}, {64758,10850,1},{64764,10850,1},{64766,10853,1},{64768,10860,1},{64766,10865,1}, {64764,10867,1},{64764,10868,1},{64766,10868,1},{64769,10870,1},{64768,10875,1}, {64769,10880,1},{64774,10883,1},{64774,10887,1},{64766,10890,1},{64766,10897,1}, {64763,10902,1},{64766,10905,1},{64768,10913,1},{64766,10928,1},{64764,10940,1}, {64761,10940,1},{64758,10942,1},{64759,10948,1},{64758,10963,1},{64758,10965,1}, {64751,10988,1},{64753,10990,1},{64846,11293,129},{64848,11307,1},{64846,11320,1}, {64848,11345,1},{64846,11350,1},{64848,11372,1},{64848,11382,1},{64849,11393,1}, {64846,11402,1},{64844,11405,1},{64843,11410,1},{64841,11413,1},{64838,11413,1}, {64836,11407,1},{64834,11400,1},{64831,11395,1},{64831,11387,1},{64828,11385,1}, {64828,11388,1},{64824,11390,1},{64823,11388,1},{64826,11368,1},{64826,11367,1}, {64824,11368,1},{64824,11367,1},{64823,11362,1},{64821,11360,1},{64818,11358,1}, {64819,11357,1},{64818,11355,1},{64814,11355,1},{64811,11353,1},{64814,11348,1}, {64814,11330,1},{64814,11325,1},{64814,11318,1},{64819,11315,1},{64821,11315,1}, {64823,11312,1},{64818,11310,1},{64814,11315,1},{64813,11310,1},{64819,11285,1}, {64819,11275,1},{64821,11272,1},{64828,11272,1},{64828,11270,1},{64833,11268,1}, {64834,11277,1},{64843,11283,1},{64846,11283,1},{64846,11295,1},{64726,11448,129}, {64726,11452,1},{64723,11455,1},{64724,11460,1},{64723,11470,1},{64719,11477,1}, {64716,11487,1},{64718,11502,1},{64731,11517,1},{64726,11532,1},{64721,11547,1}, {64714,11555,1},{64706,11563,1},{64701,11570,1},{64696,11572,1},{64686,11560,1}, {64684,11552,1},{64681,11550,1},{64676,11538,1},{64673,11530,1},{64664,11527,1}, {64663,11520,1},{64658,11520,1},{64658,11522,1},{64661,11523,1},{64658,11525,1}, {64654,11523,1},{64651,11522,1},{64653,11510,1},{64654,11510,1},{64658,11517,1}, {64666,11517,1},{64669,11515,1},{64671,11512,1},{64676,11508,1},{64681,11502,1}, {64686,11497,1},{64691,11490,1},{64694,11480,1},{64696,11470,1},{64696,11462,1}, {64699,11457,1},{64709,11450,1},{64718,11447,1},{64726,11445,1},{64728,11448,1}, {64714,11633,129},{64716,11638,1},{64714,11645,1},{64708,11658,1},{64708,11665,1}, {64699,11673,1},{64696,11673,1},{64688,11668,1},{64679,11667,1},{64673,11662,1}, {64659,11657,1},{64654,11652,1},{64649,11652,1},{64653,11655,1},{64651,11657,1}, {64648,11660,1},{64646,11657,1},{64644,11647,1},{64646,11647,1},{64648,11648,1}, {64653,11648,1},{64653,11645,1},{64649,11642,1},{64648,11642,1},{64639,11640,1}, {64644,11638,1},{64646,11633,1},{64644,11627,1},{64646,11623,1},{64644,11620,1}, {64646,11618,1},{64648,11618,1},{64649,11612,1},{64646,11608,1},{64648,11607,1}, {64649,11608,1},{64649,11603,1},{64646,11603,1},{64644,11602,1},{64651,11597,1}, {64649,11593,1},{64651,11590,1},{64654,11585,1},{64661,11585,1},{64663,11588,1}, {64661,11588,1},{64658,11595,1},{64659,11598,1},{64661,11600,1},{64663,11605,1}, {64659,11607,1},{64661,11608,1},{64663,11608,1},{64664,11607,1},{64676,11608,1}, {64689,11605,1},{64694,11607,1},{64696,11610,1},{64698,11612,1},{64699,11615,1}, {64713,11628,1},{64714,11635,1},{64698,11722,129},{64696,11727,1},{64688,11743,1}, {64689,11743,1},{64694,11745,1},{64694,11748,1},{64694,11757,1},{64689,11757,1}, {64684,11758,1},{64686,11760,1},{64693,11760,1},{64689,11763,1},{64684,11763,1}, {64679,11765,1},{64678,11770,1},{64679,11773,1},{64678,11773,1},{64676,11777,1}, {64674,11777,1},{64673,11778,1},{64671,11775,1},{64664,11778,1},{64666,11790,1}, {64664,11790,1},{64663,11790,1},{64663,11795,1},{64661,11797,1},{64671,11807,1}, {64671,11813,1},{64669,11820,1},{64669,11827,1},{64673,11828,1},{64676,11828,1}, {64681,11823,1},{64679,11820,1},{64683,11818,1},{64688,11813,1},{64686,11812,1}, {64689,11808,1},{64688,11798,1},{64689,11797,1},{64699,11783,1},{64706,11778,1}, {64713,11770,1},{64721,11773,1},{64721,11777,1},{64724,11780,1},{64724,11785,1}, {64728,11793,1},{64728,11797,1},{64724,11798,1},{64726,11800,1},{64724,11810,1}, {64724,11812,1},{64721,11817,1},{64714,11817,1},{64701,11825,1},{64701,11828,1}, {64699,11832,1},{64701,11837,1},{64706,11840,1},{64711,11848,1},{64706,11865,1}, {64699,11868,1},{64691,11868,1},{64683,11865,1},{64681,11867,1},{64689,11872,1}, {64698,11872,1},{64701,11873,1},{64706,11878,1},{64708,11888,1},{64704,11900,1}, {64698,11900,1},{64689,11905,1},{64678,11902,1},{64676,11903,1},{64673,11903,1}, {64671,11907,1},{64673,11913,1},{64676,11913,1},{64676,11915,1},{64681,11917,1}, {64678,11920,1},{64673,11920,1},{64671,11918,1},{64666,11918,1},{64664,11918,1}, {64661,11915,1},{64663,11912,1},{64659,11910,1},{64661,11908,1},{64659,11897,1}, {64668,11890,1},{64663,11887,1},{64664,11882,1},{64664,11878,1},{64664,11875,1}, {64661,11870,1},{64658,11873,1},{64658,11890,1},{64654,11893,1},{64653,11895,1}, {64651,11893,1},{64651,11882,1},{64654,11878,1},{64656,11875,1},{64654,11865,1}, {64649,11848,1},{64649,11843,1},{64651,11842,1},{64658,11838,1},{64663,11843,1}, {64669,11843,1},{64678,11840,1},{64669,11840,1},{64668,11835,1},{64664,11833,1}, {64663,11830,1},{64658,11828,1},{64658,11827,1},{64649,11815,1},{64649,11812,1}, {64651,11810,1},{64649,11805,1},{64651,11803,1},{64649,11800,1},{64646,11798,1}, {64644,11792,1},{64641,11790,1},{64643,11785,1},{64646,11783,1},{64643,11778,1}, {64644,11772,1},{64643,11765,1},{64639,11763,1},{64634,11755,1},{64631,11740,1}, {64631,11735,1},{64633,11730,1},{64634,11728,1},{64634,11723,1},{64633,11720,1}, {64626,11715,1},{64624,11705,1},{64629,11697,1},{64631,11680,1},{64634,11677,1}, {64634,11675,1},{64638,11675,1},{64643,11677,1},{64644,11675,1},{64648,11675,1}, {64653,11680,1},{64653,11682,1},{64658,11682,1},{64663,11678,1},{64664,11680,1}, {64668,11680,1},{64669,11677,1},{64678,11680,1},{64679,11683,1},{64684,11683,1}, {64683,11687,1},{64684,11695,1},{64694,11712,1},{64698,11712,1},{64699,11715,1}, {64699,11720,1},{64698,11722,1},{64593,11903,129},{64594,11910,1},{64598,11917,1}, {64598,11922,1},{64599,11928,1},{64598,11938,1},{64599,11947,1},{64598,11953,1}, {64601,11960,1},{64601,11965,1},{64599,11967,1},{64598,11973,1},{64598,11982,1}, {64608,11995,1},{64591,12008,1},{64588,12013,1},{64589,12018,1},{64586,12023,1}, {64571,12027,1},{64571,12032,1},{64568,12033,1},{64573,12038,1},{64571,12048,1}, {64566,12050,1},{64564,12057,1},{64561,12060,1},{64553,12063,1},{64546,12067,1}, {64543,12077,1},{64538,12082,1},{64531,12083,1},{64528,12083,1},{64521,12077,1}, {64516,12072,1},{64513,12062,1},{64513,12055,1},{64509,12050,1},{64504,12047,1}, {64511,12037,1},{64511,12022,1},{64513,12017,1},{64518,12012,1},{64519,12008,1}, {64524,12005,1},{64524,12003,1},{64531,12002,1},{64538,11997,1},{64538,11992,1}, {64541,11992,1},{64541,11988,1},{64543,11987,1},{64544,11980,1},{64546,11978,1}, {64549,11970,1},{64556,11968,1},{64556,11963,1},{64559,11963,1},{64559,11953,1}, {64561,11947,1},{64559,11942,1},{64556,11940,1},{64559,11937,1},{64561,11928,1}, {64561,11920,1},{64566,11907,1},{64571,11902,1},{64574,11900,1},{64579,11893,1}, {64588,11898,1},{64593,11903,1},{64709,12027,129},{64708,12037,1},{64709,12040,1}, {64713,12043,1},{64708,12047,1},{64711,12052,1},{64708,12055,1},{64708,12060,1}, {64713,12060,1},{64711,12063,1},{64709,12065,1},{64703,12075,1},{64701,12092,1}, {64703,12097,1},{64696,12103,1},{64689,12127,1},{64678,12140,1},{64679,12145,1}, {64678,12148,1},{64676,12152,1},{64679,12157,1},{64683,12157,1},{64681,12160,1}, {64686,12160,1},{64689,12162,1},{64684,12168,1},{64688,12177,1},{64686,12180,1}, {64688,12183,1},{64686,12190,1},{64688,12193,1},{64691,12195,1},{64693,12203,1}, {64691,12203,1},{64688,12202,1},{64684,12203,1},{64684,12208,1},{64681,12215,1}, {64673,12223,1},{64671,12228,1},{64674,12235,1},{64676,12248,1},{64681,12252,1}, {64684,12248,1},{64686,12248,1},{64689,12250,1},{64689,12255,1},{64696,12260,1}, {64698,12268,1},{64701,12277,1},{64704,12280,1},{64708,12290,1},{64713,12292,1}, {64714,12295,1},{64718,12290,1},{64716,12283,1},{64713,12278,1},{64713,12273,1}, {64721,12278,1},{64724,12278,1},{64729,12285,1},{64728,12288,1},{64726,12290,1}, {64721,12298,1},{64716,12298,1},{64711,12300,1},{64706,12303,1},{64704,12303,1}, {64701,12298,1},{64703,12295,1},{64701,12292,1},{64698,12290,1},{64693,12290,1}, {64689,12290,1},{64693,12280,1},{64688,12280,1},{64681,12285,1},{64676,12285,1}, {64674,12278,1},{64674,12275,1},{64673,12273,1},{64669,12257,1},{64664,12252,1}, {64661,12238,1},{64663,12232,1},{64661,12223,1},{64663,12217,1},{64663,12212,1}, {64659,12207,1},{64656,12202,1},{64653,12187,1},{64648,12178,1},{64648,12175,1}, {64651,12168,1},{64646,12165,1},{64646,12163,1},{64651,12163,1},{64654,12157,1}, {64653,12150,1},{64654,12147,1},{64656,12138,1},{64653,12137,1},{64648,12137,1}, {64644,12132,1},{64646,12120,1},{64644,12110,1},{64641,12102,1},{64644,12092,1}, {64648,12087,1},{64653,12085,1},{64654,12083,1},{64654,12078,1},{64649,12077,1}, {64648,12075,1},{64651,12068,1},{64651,12065,1},{64656,12057,1},{64656,12048,1}, {64656,12045,1},{64656,12040,1},{64656,12038,1},{64653,12032,1},{64653,12025,1}, {64659,12015,1},{64656,12010,1},{64654,12002,1},{64654,11997,1},{64653,11993,1}, {64649,11993,1},{64649,11990,1},{64654,11988,1},{64656,11983,1},{64658,11982,1}, {64664,11980,1},{64668,11980,1},{64678,11980,1},{64686,11988,1},{64694,11987,1}, {64694,11988,1},{64691,11988,1},{64689,11992,1},{64693,11997,1},{64691,12000,1}, {64693,12002,1},{64694,12000,1},{64698,12003,1},{64698,12008,1},{64696,12008,1}, {64696,12012,1},{64701,12012,1},{64699,12013,1},{64701,12015,1},{64706,12020,1}, {64709,12028,1},{64709,12340,129},{64708,12345,1},{64709,12348,1},{64711,12353,1}, {64711,12357,1},{64709,12357,1},{64701,12352,1},{64698,12358,1},{64699,12360,1}, {64701,12360,1},{64706,12358,1},{64706,12363,1},{64709,12365,1},{64713,12362,1}, {64714,12365,1},{64713,12367,1},{64709,12368,1},{64711,12372,1},{64713,12370,1}, {64714,12375,1},{64718,12380,1},{64713,12387,1},{64713,12393,1},{64711,12395,1}, {64709,12393,1},{64708,12390,1},{64706,12378,1},{64693,12370,1},{64693,12367,1}, {64694,12365,1},{64693,12363,1},{64689,12357,1},{64688,12357,1},{64683,12360,1}, {64679,12358,1},{64679,12353,1},{64683,12350,1},{64683,12348,1},{64678,12345,1}, {64676,12340,1},{64683,12333,1},{64681,12328,1},{64681,12323,1},{64683,12322,1}, {64689,12332,1},{64694,12335,1},{64701,12348,1},{64703,12348,1},{64704,12347,1}, {64704,12337,1},{64709,12342,1},{64723,12447,129},{64723,12458,1},{64716,12458,1}, {64716,12460,1},{64718,12465,1},{64721,12477,1},{64718,12485,1},{64719,12492,1}, {64721,12495,1},{64719,12498,1},{64721,12508,1},{64713,12513,1},{64703,12513,1}, {64701,12513,1},{64699,12503,1},{64699,12493,1},{64694,12475,1},{64696,12465,1}, {64691,12455,1},{64693,12450,1},{64689,12442,1},{64691,12440,1},{64691,12435,1}, {64694,12433,1},{64698,12437,1},{64704,12440,1},{64713,12455,1},{64713,12453,1}, {64713,12448,1},{64708,12440,1},{64713,12440,1},{64723,12447,1},{64589,12510,129}, {64593,12513,1},{64594,12522,1},{64599,12527,1},{64606,12535,1},{64613,12555,1}, {64618,12560,1},{64616,12565,1},{64618,12570,1},{64621,12577,1},{64621,12582,1}, {64623,12585,1},{64623,12595,1},{64638,12615,1},{64638,12628,1},{64641,12647,1}, {64646,12652,1},{64651,12653,1},{64656,12658,1},{64656,12663,1},{64659,12667,1}, {64661,12678,1},{64659,12685,1},{64668,12695,1},{64668,12702,1},{64688,12723,1}, {64689,12727,1},{64693,12730,1},{64696,12730,1},{64699,12723,1},{64703,12720,1}, {64699,12710,1},{64699,12708,1},{64704,12698,1},{64704,12695,1},{64698,12687,1}, {64694,12678,1},{64694,12673,1},{64694,12670,1},{64688,12657,1},{64688,12653,1}, {64691,12650,1},{64693,12642,1},{64693,12635,1},{64686,12623,1},{64686,12617,1}, {64684,12608,1},{64684,12602,1},{64688,12593,1},{64688,12585,1},{64683,12572,1}, {64683,12562,1},{64681,12558,1},{64681,12553,1},{64678,12547,1},{64678,12538,1}, {64673,12515,1},{64668,12510,1},{64656,12510,1},{64653,12502,1},{64641,12497,1}, {64636,12487,1},{64634,12480,1},{64631,12475,1},{64629,12470,1},{64624,12467,1}, {64619,12460,1},{64618,12455,1},{64618,12442,1},{64616,12438,1},{64614,12428,1}, {64609,12418,1},{64606,12415,1},{64601,12398,1},{64588,12387,1},{64584,12378,1}, {64579,12377,1},{64573,12367,1},{64571,12367,1},{64563,12367,1},{64556,12363,1}, {64551,12367,1},{64546,12365,1},{64543,12358,1},{64533,12358,1},{64529,12360,1}, {64533,12363,1},{64533,12370,1},{64531,12375,1},{64528,12377,1},{64526,12375,1}, {64521,12367,1},{64519,12360,1},{64518,12357,1},{64518,12353,1},{64513,12352,1}, {64513,12348,1},{64508,12350,1},{64499,12347,1},{64503,12355,1},{64499,12362,1}, {64501,12365,1},{64498,12370,1},{64499,12375,1},{64498,12382,1},{64499,12383,1}, {64506,12393,1},{64508,12403,1},{64511,12405,1},{64513,12408,1},{64518,12412,1}, {64518,12438,1},{64519,12443,1},{64528,12452,1},{64534,12457,1},{64546,12473,1}, {64553,12477,1},{64563,12485,1},{64571,12498,1},{64581,12500,1},{64589,12510,1}, {64769,12597,129},{64766,12608,1},{64764,12618,1},{64768,12625,1},{64766,12633,1}, {64769,12638,1},{64773,12642,1},{64773,12645,1},{64776,12648,1},{64779,12662,1}, {64778,12663,1},{64774,12663,1},{64771,12670,1},{64769,12672,1},{64769,12680,1}, {64763,12683,1},{64759,12683,1},{64761,12678,1},{64759,12668,1},{64758,12662,1}, {64749,12652,1},{64739,12647,1},{64743,12640,1},{64744,12628,1},{64744,12618,1}, {64748,12612,1},{64744,12593,1},{64743,12592,1},{64734,12578,1},{64736,12577,1}, {64743,12582,1},{64751,12582,1},{64756,12588,1},{64759,12587,1},{64763,12592,1}, {64768,12595,1},{64771,12597,1},{64824,13165,129},{64823,13167,1},{64819,13165,1}, {64819,13168,1},{64823,13170,1},{64819,13172,1},{64816,13175,1},{64813,13170,1}, {64814,13167,1},{64811,13163,1},{64806,13163,1},{64799,13168,1},{64798,13167,1}, {64794,13167,1},{64794,13170,1},{64791,13168,1},{64788,13168,1},{64788,13167,1}, {64784,13167,1},{64773,13163,1},{64771,13160,1},{64766,13157,1},{64764,13150,1}, {64759,13148,1},{64759,13147,1},{64756,13147,1},{64753,13140,1},{64748,13137,1}, {64746,13138,1},{64744,13135,1},{64743,13133,1},{64741,13137,1},{64734,13132,1}, {64734,13130,1},{64739,13130,1},{64743,13128,1},{64741,13127,1},{64736,13125,1}, {64734,13113,1},{64736,13110,1},{64744,13112,1},{64749,13108,1},{64754,13112,1}, {64754,13115,1},{64758,13113,1},{64759,13117,1},{64761,13115,1},{64763,13112,1}, {64766,13112,1},{64768,13113,1},{64764,13120,1},{64766,13125,1},{64768,13120,1}, {64771,13118,1},{64773,13118,1},{64776,13120,1},{64788,13123,1},{64794,13132,1}, {64794,13133,1},{64793,13133,1},{64793,13135,1},{64796,13137,1},{64798,13140,1}, {64799,13138,1},{64801,13140,1},{64803,13145,1},{64806,13145,1},{64813,13148,1}, {64814,13155,1},{64818,13152,1},{64821,13153,1},{64823,13157,1},{64824,13158,1}, {64823,13160,1},{64824,13165,1},{64978,12007,129},{64979,11993,1},{64976,11990,1}, {64973,11985,1},{64969,11983,1},{64964,11977,1},{64966,11967,1},{64969,11963,1}, {64973,11965,1},{64974,11958,1},{64971,11957,1},{64971,11955,1},{64976,11955,1}, {64981,11952,1},{64979,11945,1},{64976,11947,1},{64978,11942,1},{64984,11943,1}, {64996,11935,1},{65003,11935,1},{65008,11937,1},{65018,11938,1},{65024,11940,1}, {65029,11947,1},{65033,11947,1},{65044,11952,1},{65049,11952,1},{65063,11950,1}, {65066,11952,1},{65079,11960,1},{65106,11962,1},{65113,11960,1},{65118,11963,1}, {65126,11960,1},{65128,11962,1},{65131,11962,1},{65138,11965,1},{65138,11960,1}, {65133,11960,1},{65138,11958,1},{65161,11948,1},{65164,11945,1},{65174,11948,1}, {65179,11952,1},{65188,11948,1},{65188,11943,1},{65193,11935,1},{65193,11930,1}, {65191,11928,1},{65186,11922,1},{65188,11913,1},{65184,11912,1},{65184,11902,1}, {65183,11900,1},{65179,11900,1},{65181,11897,1},{65178,11893,1},{65179,11892,1}, {65188,11888,1},{65198,11885,1},{65203,11883,1},{65206,11885,1},{65211,11883,1}, {65216,11883,1},{65226,11877,1},{65229,11878,1},{65228,11882,1},{65229,11885,1}, {65238,11885,1},{65246,11888,1},{65249,11888,1},{65251,11887,1},{65249,11877,1}, {65259,11877,1},{65271,11878,1},{65274,11882,1},{65269,11887,1},{65271,11892,1}, {65278,11902,1},{65286,11905,1},{65289,11913,1},{65296,11915,1},{65303,11912,1}, {65306,11913,1},{65309,11912,1},{65313,11913,1},{65316,11913,1},{65326,11918,1}, {65334,11922,1},{65338,11923,1},{65341,11930,1},{65339,11933,1},{65343,11935,1}, {65353,11937,1},{65356,11933,1},{65368,11930,1},{65378,11933,1},{65388,11930,1}, {65396,11928,1},{65401,11933,1},{65408,11932,1},{65413,11932,1},{65418,11935,1}, {65424,11945,1},{65438,11947,1},{65449,11952,1},{65456,11960,1},{65461,11968,1}, {65466,11965,1},{65468,11970,1},{65473,11973,1},{65449,11982,1},{65448,11985,1}, {65451,11987,1},{65466,11985,1},{65473,11980,1},{65488,11975,1},{65501,11975,1}, {65511,11978,1},{65518,11982,1},{65521,11980,1},{65524,11980,1},{65524,11970,1}, {65529,11965,1},{0,11962,1},{0,11967,1},{2,11967,1},{2,11968,1},{0,11972,1}, {65528,11978,1},{65526,11982,1},{0,11987,1},{7,11988,1},{10,11988,1},{20,11978,1}, {22,11978,1},{25,11980,1},{25,11983,1},{28,11987,1},{30,11987,1},{35,11985,1}, {40,11988,1},{47,11992,1},{48,11995,1},{50,12000,1},{52,12003,1},{57,12003,1}, {67,12002,1},{72,12003,1},{75,12007,1},{75,12012,1},{80,12022,1},{83,12023,1}, {97,12025,1},{98,12030,1},{98,12032,1},{97,12035,1},{87,12033,1},{85,12037,1}, {80,12042,1},{80,12053,1},{77,12057,1},{80,12058,1},{83,12062,1},{83,12060,1}, {88,12062,1},{98,12068,1},{97,12073,1},{98,12073,1},{102,12075,1},{105,12080,1}, {115,12080,1},{122,12083,1},{132,12082,1},{133,12083,1},{132,12087,1},{135,12090,1}, {132,12090,1},{132,12092,1},{135,12095,1},{132,12112,1},{123,12125,1},{123,12127,1}, {125,12133,1},{125,12138,1},{128,12143,1},{128,12145,1},{125,12147,1},{123,12143,1}, {120,12145,1},{118,12143,1},{108,12152,1},{105,12157,1},{107,12170,1},{107,12172,1}, {110,12193,1},{105,12195,1},{102,12198,1},{107,12207,1},{103,12215,1},{105,12217,1}, {100,12223,1},{102,12230,1},{103,12232,1},{100,12240,1},{102,12245,1},{98,12248,1}, {95,12265,1},{92,12268,1},{87,12275,1},{87,12277,1},{85,12278,1},{82,12285,1}, {85,12292,1},{92,12297,1},{95,12295,1},{97,12298,1},{92,12310,1},{93,12313,1}, {92,12317,1},{92,12318,1},{95,12317,1},{97,12318,1},{95,12322,1},{97,12327,1}, {92,12328,1},{92,12330,1},{92,12337,1},{92,12343,1},{87,12357,1},{88,12360,1}, {85,12370,1},{83,12383,1},{83,12395,1},{87,12395,1},{93,12415,1},{98,12420,1}, {102,12430,1},{117,12437,1},{120,12442,1},{120,12452,1},{122,12453,1},{118,12457,1}, {118,12458,1},{123,12462,1},{125,12462,1},{128,12458,1},{128,12453,1},{133,12453,1}, {137,12455,1},{142,12462,1},{140,12468,1},{142,12473,1},{145,12478,1},{147,12483,1}, {150,12485,1},{157,12482,1},{168,12495,1},{167,12497,1},{172,12498,1},{173,12500,1}, {173,12503,1},{167,12505,1},{168,12518,1},{158,12517,1},{150,12525,1},{145,12523,1}, {143,12515,1},{135,12510,1},{120,12505,1},{110,12498,1},{102,12492,1},{97,12490,1}, {93,12482,1},{90,12480,1},{87,12473,1},{80,12467,1},{75,12463,1},{72,12463,1}, {68,12460,1},{65,12457,1},{60,12458,1},{58,12457,1},{58,12455,1},{53,12450,1}, {50,12452,1},{48,12448,1},{45,12447,1},{45,12442,1},{43,12435,1},{40,12432,1}, {37,12425,1},{37,12415,1},{38,12410,1},{37,12408,1},{35,12407,1},{35,12402,1}, {33,12400,1},{33,12395,1},{32,12385,1},{32,12382,1},{30,12378,1},{32,12373,1}, {28,12365,1},{27,12363,1},{32,12357,1},{30,12337,1},{32,12327,1},{33,12323,1}, {37,12320,1},{40,12315,1},{45,12313,1},{52,12307,1},{48,12303,1},{48,12297,1}, {48,12280,1},{48,12270,1},{52,12267,1},{52,12265,1},{48,12265,1},{47,12265,1}, {48,12260,1},{50,12258,1},{48,12253,1},{50,12237,1},{48,12227,1},{48,12218,1}, {47,12215,1},{48,12212,1},{48,12205,1},{45,12198,1},{42,12188,1},{42,12180,1}, {52,12170,1},{52,12162,1},{55,12160,1},{53,12158,1},{53,12153,1},{48,12150,1}, {48,12142,1},{48,12140,1},{45,12133,1},{48,12128,1},{48,12123,1},{45,12120,1}, {45,12115,1},{40,12110,1},{42,12105,1},{45,12100,1},{43,12097,1},{42,12088,1}, {45,12085,1},{47,12082,1},{48,12080,1},{48,12075,1},{53,12068,1},{53,12055,1}, {48,12038,1},{35,12025,1},{17,12012,1},{10,12010,1},{65533,12007,1},{65528,12002,1}, {65524,12003,1},{65516,12000,1},{65509,12000,1},{65498,12002,1},{65493,12005,1}, {65488,12005,1},{65474,12007,1},{65461,12013,1},{65444,12027,1},{65443,12032,1}, {65446,12038,1},{65444,12042,1},{65439,12045,1},{65438,12050,1},{65436,12052,1}, {65423,12058,1},{65421,12057,1},{65413,12057,1},{65408,12062,1},{65396,12067,1}, {65401,12080,1},{65401,12083,1},{65399,12083,1},{65396,12085,1},{65396,12100,1}, {65393,12105,1},{65394,12108,1},{65396,12112,1},{65403,12117,1},{65416,12120,1}, {65421,12127,1},{65431,12133,1},{65434,12138,1},{65446,12147,1},{65451,12152,1}, {65451,12158,1},{65454,12158,1},{65456,12162,1},{65454,12167,1},{65448,12165,1}, {65443,12172,1},{65441,12175,1},{65443,12182,1},{65439,12192,1},{65444,12202,1}, {65443,12210,1},{65448,12215,1},{65456,12217,1},{65459,12222,1},{65459,12242,1}, {65461,12247,1},{65458,12257,1},{65461,12262,1},{65459,12265,1},{65458,12267,1}, {65456,12273,1},{65459,12278,1},{65459,12292,1},{65461,12297,1},{65463,12295,1}, {65464,12290,1},{65466,12287,1},{65468,12275,1},{65469,12273,1},{65471,12273,1}, {65471,12278,1},{65474,12282,1},{65476,12303,1},{65479,12307,1},{65479,12322,1}, {65476,12330,1},{65471,12342,1},{65468,12340,1},{65464,12342,1},{65464,12343,1}, {65463,12343,1},{65459,12345,1},{65458,12343,1},{65453,12345,1},{65446,12340,1}, {65434,12338,1},{65431,12333,1},{65433,12325,1},{65441,12317,1},{65441,12315,1}, {65448,12315,1},{65453,12310,1},{65451,12308,1},{65448,12305,1},{65444,12282,1}, {65424,12272,1},{65423,12268,1},{65419,12265,1},{65414,12263,1},{65411,12257,1}, {65406,12255,1},{65403,12250,1},{65398,12248,1},{65394,12242,1},{65388,12238,1}, {65384,12232,1},{65374,12218,1},{65376,12215,1},{65374,12207,1},{65374,12202,1}, {65369,12195,1},{65369,12192,1},{65368,12190,1},{65369,12187,1},{65366,12187,1}, {65368,12183,1},{65364,12180,1},{65351,12175,1},{65344,12167,1},{65343,12160,1}, {65343,12155,1},{65344,12153,1},{65348,12150,1},{65351,12143,1},{65354,12143,1}, {65356,12137,1},{65359,12133,1},{65356,12130,1},{65351,12130,1},{65351,12135,1}, {65344,12132,1},{65341,12133,1},{65336,12133,1},{65339,12137,1},{65344,12140,1}, {65336,12145,1},{65333,12148,1},{65331,12153,1},{65323,12155,1},{65319,12157,1}, {65318,12162,1},{65318,12172,1},{65313,12175,1},{65304,12183,1},{65296,12188,1}, {65278,12200,1},{65271,12202,1},{65266,12202,1},{65264,12203,1},{65259,12208,1}, {65258,12215,1},{65254,12218,1},{65251,12218,1},{65248,12222,1},{65248,12227,1}, {65246,12232,1},{65243,12232,1},{65234,12227,1},{65233,12227,1},{65229,12232,1}, {65223,12238,1},{65224,12242,1},{65223,12243,1},{65221,12245,1},{65221,12248,1}, {65218,12247,1},{65218,12243,1},{65211,12243,1},{65213,12240,1},{65213,12238,1}, {65214,12237,1},{65211,12233,1},{65208,12230,1},{65201,12230,1},{65198,12238,1}, {65193,12238,1},{65191,12237,1},{65193,12237,1},{65194,12235,1},{65196,12233,1}, {65199,12232,1},{65199,12228,1},{65198,12227,1},{65198,12225,1},{65193,12227,1}, {65191,12230,1},{65183,12227,1},{65179,12220,1},{65178,12220,1},{65171,12225,1}, {65168,12230,1},{65163,12233,1},{65163,12242,1},{65161,12245,1},{65158,12247,1}, {65148,12253,1},{65146,12267,1},{65144,12267,1},{65141,12262,1},{65139,12255,1}, {65138,12255,1},{65138,12262,1},{65134,12267,1},{65128,12267,1},{65121,12268,1}, {65123,12270,1},{65124,12272,1},{65123,12277,1},{65123,12283,1},{65124,12283,1}, {65128,12278,1},{65131,12277,1},{65131,12282,1},{65128,12285,1},{65121,12290,1}, {65113,12290,1},{65108,12288,1},{65104,12290,1},{65096,12290,1},{65096,12287,1}, {65093,12285,1},{65096,12278,1},{65104,12268,1},{65103,12268,1},{65099,12272,1}, {65096,12273,1},{65094,12277,1},{65089,12278,1},{65088,12275,1},{65088,12273,1}, {65091,12270,1},{65088,12270,1},{65088,12268,1},{65093,12267,1},{65096,12260,1}, {65091,12252,1},{65094,12243,1},{65089,12232,1},{65089,12223,1},{65088,12220,1}, {65083,12210,1},{65076,12207,1},{65068,12203,1},{65059,12207,1},{65054,12213,1}, {65054,12210,1},{65053,12208,1},{65051,12197,1},{65051,12187,1},{65054,12182,1}, {65054,12177,1},{65054,12175,1},{65053,12170,1},{65056,12167,1},{65061,12155,1}, {65069,12150,1},{65069,12148,1},{65073,12148,1},{65086,12150,1},{65091,12152,1}, {65096,12153,1},{65108,12152,1},{65111,12153,1},{65113,12155,1},{65113,12157,1}, {65111,12157,1},{65109,12157,1},{65113,12158,1},{65121,12162,1},{65128,12162,1}, {65131,12160,1},{65136,12148,1},{65136,12143,1},{65138,12142,1},{65138,12137,1}, {65148,12130,1},{65146,12125,1},{65154,12125,1},{65156,12122,1},{65154,12117,1}, {65166,12108,1},{65183,12088,1},{65191,12087,1},{65196,12088,1},{65203,12095,1}, {65209,12098,1},{65216,12107,1},{65226,12107,1},{65229,12105,1},{65238,12108,1}, {65249,12108,1},{65251,12107,1},{65249,12105,1},{65254,12103,1},{65251,12102,1}, {65251,12100,1},{65254,12098,1},{65254,12102,1},{65258,12102,1},{65258,12105,1}, {65259,12107,1},{65259,12108,1},{65269,12103,1},{65271,12090,1},{65271,12085,1}, {65274,12082,1},{65274,12077,1},{65268,12063,1},{65268,12058,1},{65263,12055,1}, {65256,12047,1},{65239,12020,1},{65236,12023,1},{65233,12023,1},{65229,12027,1}, {65224,12028,1},{65221,12027,1},{65219,12027,1},{65214,12038,1},{65211,12040,1}, {65209,12043,1},{65206,12040,1},{65198,12040,1},{65194,12042,1},{65184,12040,1}, {65178,12043,1},{65169,12042,1},{65164,12045,1},{65151,12037,1},{65143,12035,1}, {65133,12037,1},{65124,12035,1},{65119,12038,1},{65109,12037,1},{65104,12040,1}, {65098,12035,1},{65088,12040,1},{65083,12040,1},{65078,12040,1},{65071,12045,1}, {65066,12042,1},{65053,12038,1},{65053,12033,1},{65051,12032,1},{65038,12030,1}, {65021,12027,1},{65011,12032,1},{65006,12033,1},{65001,12038,1},{64986,12043,1}, {64981,12043,1},{64974,12047,1},{64973,12045,1},{64974,12043,1},{64974,12040,1}, {64984,12035,1},{64984,12033,1},{64983,12027,1},{64981,12022,1},{64978,12012,1}, {64978,12007,1},{448,12688,129},{443,12688,1},{440,12687,1},{430,12693,1}, {417,12683,1},{405,12683,1},{402,12682,1},{400,12678,1},{400,12670,1},{402,12668,1}, {405,12670,1},{415,12677,1},{425,12682,1},{427,12675,1},{435,12670,1},{445,12673,1}, {447,12675,1},{453,12673,1},{455,12677,1},{455,12682,1},{453,12683,1},{450,12685,1}, {450,12687,1},{447,12688,1},{65406,12355,129},{65399,12353,1},{65393,12353,1}, {65386,12345,1},{65384,12340,1},{65386,12338,1},{65384,12337,1},{65389,12335,1}, {65391,12333,1},{65394,12332,1},{65394,12330,1},{65393,12327,1},{65384,12325,1}, {65379,12325,1},{65374,12325,1},{65373,12325,1},{65376,12322,1},{65373,12318,1}, {65378,12312,1},{65381,12312,1},{65386,12318,1},{65406,12317,1},{65401,12310,1}, {65388,12302,1},{65376,12290,1},{65378,12287,1},{65384,12285,1},{65391,12280,1}, {65399,12280,1},{65408,12283,1},{65418,12290,1},{65418,12292,1},{65416,12298,1}, {65419,12303,1},{65419,12310,1},{65418,12313,1},{65418,12317,1},{65421,12318,1}, {65418,12322,1},{65414,12323,1},{65409,12320,1},{65396,12323,1},{65398,12327,1}, {65404,12328,1},{65406,12332,1},{65413,12337,1},{65413,12342,1},{65411,12342,1}, {65409,12343,1},{65413,12343,1},{65413,12345,1},{65409,12348,1},{65408,12355,1}, {65404,12355,1},{65371,12442,129},{65371,12450,1},{65374,12452,1},{65371,12453,1}, {65373,12455,1},{65373,12460,1},{65369,12477,1},{65366,12490,1},{65364,12500,1}, {65363,12502,1},{65361,12502,1},{65359,12505,1},{65359,12510,1},{65361,12510,1}, {65366,12512,1},{65368,12513,1},{65366,12515,1},{65366,12518,1},{65364,12520,1}, {65359,12518,1},{65358,12520,1},{65358,12522,1},{65363,12525,1},{65363,12528,1}, {65361,12530,1},{65358,12528,1},{65358,12532,1},{65348,12532,1},{65348,12530,1}, {65348,12513,1},{65346,12510,1},{65346,12505,1},{65346,12502,1},{65343,12502,1}, {65341,12500,1},{65344,12493,1},{65344,12488,1},{65346,12487,1},{65346,12483,1}, {65339,12468,1},{65334,12457,1},{65334,12442,1},{65343,12437,1},{65348,12433,1}, {65354,12433,1},{65359,12437,1},{65368,12437,1},{65369,12440,1},{65371,12442,1}, {65358,12542,129},{65356,12543,1},{65358,12548,1},{65354,12550,1},{65356,12555,1}, {65354,12563,1},{65354,12565,1},{65354,12572,1},{65356,12575,1},{65356,12583,1}, {65358,12598,1},{65356,12610,1},{65354,12635,1},{65351,12633,1},{65348,12627,1}, {65348,12620,1},{65348,12617,1},{65348,12608,1},{65344,12597,1},{65343,12592,1}, {65346,12585,1},{65344,12582,1},{65344,12560,1},{65341,12543,1},{65346,12543,1}, {65349,12538,1},{65348,12535,1},{65351,12533,1},{65354,12535,1},{65356,12538,1}, {65358,12537,1},{65358,12542,1},{65074,12272,129},{65071,12273,1},{65051,12275,1}, {65046,12278,1},{65041,12278,1},{65039,12273,1},{65034,12272,1},{65029,12265,1}, {65019,12260,1},{65016,12260,1},{65016,12263,1},{65011,12260,1},{65011,12265,1}, {65008,12265,1},{65001,12265,1},{65001,12263,1},{65001,12262,1},{64994,12260,1}, {64993,12255,1},{64996,12253,1},{65003,12255,1},{65008,12252,1},{65004,12250,1}, {65001,12250,1},{64996,12247,1},{64996,12243,1},{64999,12242,1},{65001,12240,1}, {65004,12245,1},{65004,12243,1},{65003,12238,1},{64998,12237,1},{64998,12228,1}, {65004,12227,1},{65011,12232,1},{65021,12232,1},{65024,12233,1},{65028,12238,1}, {65029,12240,1},{65038,12238,1},{65053,12233,1},{65061,12238,1},{65063,12252,1}, {65071,12262,1},{65074,12270,1},{65074,12272,1},{65096,12308,129},{65093,12307,1}, {65089,12308,1},{65086,12315,1},{65078,12320,1},{65069,12318,1},{65068,12322,1}, {65053,12322,1},{65051,12320,1},{65054,12318,1},{65059,12318,1},{65066,12313,1}, {65064,12312,1},{65059,12312,1},{65059,12310,1},{65061,12308,1},{65061,12305,1}, {65056,12305,1},{65053,12302,1},{65044,12302,1},{65036,12297,1},{65033,12298,1}, {65028,12298,1},{65018,12295,1},{65016,12297,1},{65018,12298,1},{65023,12303,1}, {65021,12307,1},{65018,12307,1},{65018,12310,1},{65014,12310,1},{65014,12313,1}, {65011,12318,1},{65009,12322,1},{65006,12322,1},{64998,12313,1},{64993,12305,1}, {64998,12298,1},{64989,12288,1},{64984,12287,1},{64984,12292,1},{64983,12292,1}, {64968,12282,1},{64968,12278,1},{64969,12278,1},{64973,12277,1},{64968,12273,1}, {64973,12273,1},{64969,12268,1},{64968,12265,1},{64986,12257,1},{64988,12258,1}, {64993,12265,1},{64994,12265,1},{64996,12263,1},{65011,12273,1},{65014,12282,1}, {65018,12280,1},{65014,12275,1},{65019,12275,1},{65024,12278,1},{65026,12278,1}, {65033,12280,1},{65034,12280,1},{65033,12275,1},{65039,12282,1},{65046,12283,1}, {65051,12282,1},{65054,12285,1},{65073,12285,1},{65086,12290,1},{65089,12292,1}, {65096,12302,1},{65098,12307,1},{65098,12308,1},{65096,12307,1},{65224,12613,129}, {65219,12617,1},{65218,12620,1},{65219,12622,1},{65223,12625,1},{65226,12628,1}, {65229,12642,1},{65229,12673,1},{65228,12683,1},{65223,12688,1},{65224,12692,1}, {65223,12693,1},{65221,12700,1},{65214,12710,1},{65208,12712,1},{65209,12707,1}, {65208,12705,1},{65203,12705,1},{65203,12707,1},{65199,12708,1},{65199,12712,1}, {65203,12715,1},{65199,12725,1},{65198,12727,1},{65186,12723,1},{65176,12723,1}, {65171,12722,1},{65169,12710,1},{65166,12702,1},{65159,12695,1},{65156,12680,1}, {65153,12670,1},{65159,12648,1},{65166,12637,1},{65174,12625,1},{65176,12618,1}, {65186,12613,1},{65194,12603,1},{65201,12602,1},{65219,12602,1},{65226,12610,1}, {65224,12613,1},{65249,12818,129},{65249,12840,1},{65253,12852,1},{65251,12857,1}, {65249,12890,1},{65256,12905,1},{65254,12907,1},{65249,12907,1},{65246,12907,1}, {65241,12910,1},{65239,12913,1},{65239,12918,1},{65244,12918,1},{65241,12922,1}, {65244,12923,1},{65251,12937,1},{65256,12937,1},{65258,12942,1},{65258,12953,1}, {65249,12973,1},{65248,12977,1},{65244,12980,1},{65246,12987,1},{65244,12987,1}, {65243,12988,1},{65243,12990,1},{65239,12995,1},{65236,13002,1},{65236,13020,1}, {65238,13025,1},{65238,13037,1},{65226,13048,1},{65223,13058,1},{65211,13063,1}, {65204,13063,1},{65198,13065,1},{65194,13067,1},{65194,13080,1},{65191,13083,1}, {65189,13082,1},{65186,13082,1},{65179,13087,1},{65173,13087,1},{65168,13083,1}, {65158,13083,1},{65153,13082,1},{65149,13085,1},{65149,13083,1},{65153,13075,1}, {65153,13072,1},{65158,13062,1},{65164,13055,1},{65166,13048,1},{65173,13042,1}, {65181,13013,1},{65184,13010,1},{65188,13000,1},{65193,12997,1},{65198,12997,1}, {65203,12988,1},{65203,12970,1},{65206,12952,1},{65204,12950,1},{65203,12950,1}, {65194,12957,1},{65189,12955,1},{65189,12952,1},{65194,12938,1},{65194,12923,1}, {65201,12910,1},{65201,12895,1},{65204,12893,1},{65211,12898,1},{65213,12897,1}, {65214,12890,1},{65214,12887,1},{65213,12885,1},{65209,12878,1},{65203,12872,1}, {65198,12867,1},{65194,12868,1},{65193,12868,1},{65193,12857,1},{65189,12848,1}, {65194,12840,1},{65214,12828,1},{65216,12818,1},{65224,12820,1},{65228,12818,1}, {65229,12817,1},{65228,12813,1},{65223,12810,1},{65214,12807,1},{65203,12805,1}, {65198,12802,1},{65198,12798,1},{65188,12793,1},{65184,12795,1},{65179,12792,1}, {65188,12790,1},{65194,12793,1},{65201,12793,1},{65209,12788,1},{65216,12787,1}, {65219,12783,1},{65221,12790,1},{65228,12800,1},{65229,12810,1},{65233,12808,1}, {65238,12812,1},{65238,12807,1},{65239,12807,1},{65241,12813,1},{65243,12813,1}, {65246,12813,1},{65246,12815,1},{65251,12817,1},{65249,12818,1},{64919,13412,129}, {64914,13417,1},{64913,13422,1},{64906,13430,1},{64901,13428,1},{64898,13432,1}, {64891,13445,1},{64884,13448,1},{64883,13447,1},{64878,13448,1},{64878,13452,1}, {64871,13450,1},{64869,13447,1},{64871,13442,1},{64869,13440,1},{64868,13443,1}, {64864,13438,1},{64861,13438,1},{64856,13435,1},{64854,13437,1},{64851,13432,1}, {64848,13425,1},{64844,13420,1},{64844,13418,1},{64851,13415,1},{64853,13407,1}, {64859,13405,1},{64871,13408,1},{64889,13410,1},{64888,13413,1},{64888,13417,1}, {64886,13418,1},{64886,13422,1},{64891,13418,1},{64889,13415,1},{64891,13413,1}, {64894,13412,1},{64908,13412,1},{64916,13408,1},{64919,13410,1},{64919,13412,1}, {64993,13452,129},{64991,13453,1},{64993,13457,1},{64993,13458,1},{64991,13463,1}, {64986,13465,1},{64983,13470,1},{64981,13467,1},{64978,13468,1},{64978,13463,1}, {64976,13468,1},{64973,13475,1},{64969,13475,1},{64968,13473,1},{64963,13473,1}, {64961,13470,1},{64961,13473,1},{64956,13473,1},{64953,13470,1},{64949,13475,1}, {64948,13477,1},{64944,13473,1},{64946,13472,1},{64944,13470,1},{64943,13470,1}, {64941,13473,1},{64941,13472,1},{64938,13473,1},{64939,13468,1},{64943,13465,1}, {64941,13460,1},{64941,13465,1},{64936,13467,1},{64933,13473,1},{64928,13477,1}, {64924,13477,1},{64921,13475,1},{64919,13470,1},{64916,13468,1},{64919,13475,1}, {64918,13475,1},{64913,13475,1},{64904,13470,1},{64899,13460,1},{64901,13458,1}, {64901,13455,1},{64909,13445,1},{64909,13440,1},{64914,13437,1},{64913,13433,1}, {64924,13427,1},{64931,13430,1},{64931,13435,1},{64933,13438,1},{64933,13430,1}, {64939,13432,1},{64943,13428,1},{64948,13432,1},{64949,13432,1},{64951,13437,1}, {64953,13435,1},{64956,13438,1},{64958,13437,1},{64954,13433,1},{64956,13433,1}, {64958,13432,1},{64959,13425,1},{64963,13420,1},{64964,13420,1},{64968,13423,1}, {64964,13433,1},{64964,13437,1},{64968,13435,1},{64973,13440,1},{64981,13445,1}, {64979,13447,1},{64981,13448,1},{64981,13450,1},{64984,13450,1},{64986,13448,1}, {64993,13450,1},{64993,13452,1},{65393,12747,129},{65391,12748,1},{65393,12750,1}, {65398,12755,1},{65403,12765,1},{65401,12767,1},{65401,12772,1},{65393,12783,1}, {65393,12788,1},{65393,12792,1},{65379,12805,1},{65379,12810,1},{65379,12812,1}, {65374,12815,1},{65368,12815,1},{65364,12808,1},{65364,12800,1},{65368,12792,1}, {65366,12783,1},{65368,12770,1},{65363,12765,1},{65361,12755,1},{65368,12743,1}, {65373,12738,1},{65378,12740,1},{65383,12738,1},{65384,12740,1},{65388,12740,1}, {65391,12743,1},{65394,12742,1},{65393,12747,1},{65504,12753,129},{65504,12758,1}, {65494,12763,1},{65494,12765,1},{65489,12768,1},{65484,12767,1},{65479,12763,1}, {65474,12760,1},{65473,12760,1},{65471,12765,1},{65464,12765,1},{65464,12768,1}, {65466,12772,1},{65468,12778,1},{65464,12783,1},{65458,12790,1},{65458,12788,1}, {65456,12790,1},{65449,12783,1},{65448,12775,1},{65449,12773,1},{65451,12768,1}, {65453,12768,1},{65453,12765,1},{65458,12765,1},{65461,12763,1},{65454,12748,1}, {65454,12747,1},{65461,12743,1},{65471,12747,1},{65474,12740,1},{65484,12730,1}, {65489,12728,1},{65494,12732,1},{65501,12732,1},{65503,12737,1},{65501,12738,1}, {65494,12745,1},{65501,12748,1},{65504,12752,1},{65504,12753,1},{202,12828,129}, {205,12828,1},{208,12825,1},{223,12823,1},{227,12820,1},{235,12827,1},{243,12830,1}, {250,12835,1},{252,12840,1},{257,12843,1},{258,12847,1},{257,12850,1},{257,12852,1}, {262,12853,1},{263,12857,1},{263,12858,1},{257,12862,1},{248,12868,1},{242,12870,1}, {233,12865,1},{228,12865,1},{212,12857,1},{205,12850,1},{203,12833,1},{198,12828,1}, {200,12827,1},{202,12828,1},{20,12890,129},{25,12883,1},{32,12855,1},{40,12847,1}, {38,12840,1},{40,12837,1},{38,12828,1},{40,12825,1},{42,12818,1},{45,12817,1}, {48,12795,1},{45,12792,1},{38,12790,1},{32,12788,1},{30,12788,1},{27,12792,1}, {20,12792,1},{13,12792,1},{8,12788,1},{0,12788,1},{65521,12795,1},{65509,12798,1}, {65503,12802,1},{65493,12805,1},{65466,12822,1},{65458,12828,1},{65444,12843,1}, {65448,12832,1},{65449,12825,1},{65453,12823,1},{65453,12827,1},{65456,12823,1}, {65464,12803,1},{65498,12787,1},{65506,12772,1},{65509,12770,1},{65514,12767,1}, {65526,12768,1},{65534,12768,1},{7,12770,1},{12,12768,1},{30,12772,1},{33,12770,1}, {33,12765,1},{37,12762,1},{38,12762,1},{42,12757,1},{50,12757,1},{55,12753,1}, {60,12752,1},{72,12755,1},{77,12760,1},{85,12762,1},{90,12750,1},{97,12752,1}, {100,12748,1},{105,12748,1},{103,12740,1},{108,12740,1},{113,12743,1},{118,12740,1}, {122,12740,1},{143,12752,1},{150,12753,1},{153,12752,1},{158,12755,1},{165,12755,1}, {167,12758,1},{170,12755,1},{172,12757,1},{173,12757,1},{182,12762,1},{188,12765,1}, {210,12785,1},{213,12788,1},{217,12790,1},{217,12792,1},{220,12795,1},{218,12798,1}, {220,12805,1},{218,12807,1},{213,12803,1},{203,12795,1},{198,12795,1},{190,12785,1}, {182,12785,1},{180,12790,1},{180,12793,1},{175,12800,1},{170,12802,1},{162,12800,1}, {158,12803,1},{153,12803,1},{143,12802,1},{140,12802,1},{135,12798,1},{130,12802,1}, {130,12798,1},{122,12792,1},{115,12788,1},{113,12782,1},{108,12777,1},{102,12765,1}, {98,12763,1},{92,12763,1},{88,12767,1},{85,12772,1},{82,12773,1},{82,12777,1}, {80,12780,1},{80,12785,1},{85,12792,1},{92,12792,1},{97,12793,1},{100,12793,1}, {107,12798,1},{112,12803,1},{112,12815,1},{113,12817,1},{118,12820,1},{122,12818,1}, {123,12817,1},{123,12810,1},{127,12810,1},{128,12813,1},{138,12818,1},{143,12827,1}, {145,12833,1},{150,12837,1},{152,12840,1},{155,12847,1},{153,12850,1},{157,12855,1}, {158,12863,1},{157,12870,1},{155,12873,1},{153,12872,1},{152,12870,1},{147,12868,1}, {143,12868,1},{140,12875,1},{135,12875,1},{132,12873,1},{128,12872,1},{120,12870,1}, {107,12870,1},{107,12865,1},{98,12853,1},{97,12848,1},{93,12843,1},{90,12830,1}, {87,12828,1},{82,12830,1},{82,12823,1},{80,12822,1},{77,12822,1},{73,12823,1}, {65,12835,1},{63,12843,1},{60,12848,1},{58,12853,1},{57,12858,1},{55,12867,1}, {52,12868,1},{48,12867,1},{47,12868,1},{40,12870,1},{33,12868,1},{30,12883,1}, {27,12887,1},{20,12890,1},{65534,13082,129},{65533,13095,1},{65529,13097,1}, {65533,13105,1},{65531,13105,1},{65529,13105,1},{65528,13112,1},{65528,13113,1}, {65523,13120,1},{65521,13127,1},{65519,13130,1},{65516,13132,1},{65511,13130,1}, {65506,13135,1},{65506,13132,1},{65501,13128,1},{65501,13127,1},{65498,13125,1}, {65498,13122,1},{65503,13117,1},{65503,13112,1},{65504,13110,1},{65499,13103,1}, {65501,13100,1},{65499,13098,1},{65499,13097,1},{65506,13090,1},{65511,13087,1}, {65513,13080,1},{65516,13080,1},{65519,13078,1},{65521,13075,1},{65526,13072,1}, {65526,13068,1},{65528,13070,1},{65528,13068,1},{65528,13062,1},{65526,13062,1}, {65524,13065,1},{65524,13063,1},{65523,13063,1},{65521,13062,1},{65521,13065,1}, {65516,13070,1},{65513,13073,1},{65508,13073,1},{65506,13078,1},{65503,13082,1}, {65508,13082,1},{65506,13088,1},{65504,13090,1},{65504,13092,1},{65499,13095,1}, {65499,13093,1},{65498,13093,1},{65494,13092,1},{65491,13082,1},{65493,13072,1}, {65501,13068,1},{65503,13070,1},{65506,13068,1},{65504,13065,1},{65506,13062,1}, {65503,13058,1},{65501,13057,1},{65499,13057,1},{65498,13058,1},{65493,13055,1}, {65496,13055,1},{65498,13053,1},{65503,13053,1},{65506,13052,1},{65511,13052,1}, {65509,13047,1},{65508,13043,1},{65509,13042,1},{65508,13037,1},{65509,13035,1}, {65509,13032,1},{65511,13032,1},{65513,13028,1},{65514,13022,1},{65516,13022,1}, {65514,13033,1},{65516,13035,1},{65514,13038,1},{65516,13043,1},{65518,13043,1}, {65518,13038,1},{65519,13042,1},{65523,13040,1},{65519,13038,1},{65523,13037,1}, {65521,13037,1},{65521,13033,1},{65516,13035,1},{65518,13030,1},{65524,13027,1}, {65526,13030,1},{65526,13033,1},{65528,13033,1},{65523,13035,1},{65524,13037,1}, {65528,13037,1},{65529,13038,1},{65528,13038,1},{65526,13040,1},{65526,13042,1}, {65528,13042,1},{65528,13045,1},{65531,13052,1},{65529,13053,1},{65529,13057,1}, {65531,13057,1},{65529,13058,1},{65531,13060,1},{65531,13065,1},{65533,13072,1}, {65531,13072,1},{65531,13077,1},{65533,13078,1},{65533,13075,1},{65534,13082,1}, {65368,13035,129},{65363,13035,1},{65358,13040,1},{65351,13043,1},{65349,13042,1}, {65348,13042,1},{65344,13033,1},{65341,13037,1},{65339,13043,1},{65338,13043,1}, {65338,13040,1},{65334,13038,1},{65336,13033,1},{65341,13033,1},{65334,13030,1}, {65334,13027,1},{65331,13027,1},{65329,13020,1},{65329,13012,1},{65331,13010,1}, {65333,13012,1},{65334,13008,1},{65336,12992,1},{65339,12983,1},{65343,12980,1}, {65344,12973,1},{65348,12972,1},{65351,12975,1},{65353,12987,1},{65356,12988,1}, {65358,12995,1},{65363,13003,1},{65363,13013,1},{65363,13023,1},{65366,13027,1}, {65368,13033,1},{65368,13035,1},{64798,13855,129},{64799,13870,1},{64798,13880,1}, {64781,13893,1},{64778,13907,1},{64774,13903,1},{64768,13902,1},{64763,13898,1}, {64751,13898,1},{64746,13888,1},{64733,13888,1},{64728,13890,1},{64728,13883,1}, {64723,13878,1},{64719,13867,1},{64711,13860,1},{64704,13852,1},{64699,13847,1}, {64696,13840,1},{64693,13832,1},{64693,13828,1},{64696,13822,1},{64699,13787,1}, {64696,13772,1},{64693,13765,1},{64694,13763,1},{64698,13763,1},{64723,13773,1}, {64729,13777,1},{64731,13780,1},{64738,13782,1},{64753,13788,1},{64759,13793,1}, {64763,13797,1},{64764,13797,1},{64774,13803,1},{64781,13810,1},{64789,13823,1}, {64794,13837,1},{64798,13857,1},{64623,14100,129},{64631,14085,1},{64643,14075,1}, {64656,14062,1},{64673,14050,1},{64683,14038,1},{64686,14037,1},{64688,14032,1}, {64696,14023,1},{64709,14005,1},{64716,13998,1},{64723,13997,1},{64726,14000,1}, {64728,14005,1},{64731,14007,1},{64738,14005,1},{64741,14007,1},{64743,14008,1}, {64741,14013,1},{64748,14015,1},{64746,14012,1},{64744,14012,1},{64744,14005,1}, {64736,14003,1},{64731,14003,1},{64726,13997,1},{64724,13992,1},{64723,13962,1}, {64718,13953,1},{64716,13938,1},{64716,13933,1},{64723,13925,1},{64724,13923,1}, {64728,13925,1},{64734,13925,1},{64738,13922,1},{64736,13927,1},{64738,13928,1}, {64741,13922,1},{64738,13920,1},{64734,13923,1},{64728,13923,1},{64723,13908,1}, {64714,13897,1},{64706,13893,1},{64706,13892,1},{64719,13885,1},{64723,13883,1}, {64726,13885,1},{64726,13890,1},{64728,13892,1},{64733,13890,1},{64744,13892,1}, {64749,13900,1},{64761,13900,1},{64773,13905,1},{64776,13910,1},{64779,13910,1}, {64783,13907,1},{64784,13902,1},{64784,13895,1},{64796,13892,1},{64803,13887,1}, {64811,13873,1},{64813,13868,1},{64816,13867,1},{64816,13868,1},{64816,13893,1}, {64811,13903,1},{64813,13918,1},{64816,13920,1},{64821,13923,1},{64821,13920,1}, {64814,13915,1},{64814,13905,1},{64819,13893,1},{64821,13885,1},{64824,13875,1}, {64836,13863,1},{64841,13857,1},{64844,13857,1},{64848,13860,1},{64846,13873,1}, {64848,13877,1},{64851,13882,1},{64851,13890,1},{64849,13898,1},{64846,13902,1}, {64838,13912,1},{64839,13918,1},{64843,13910,1},{64849,13902,1},{64853,13897,1}, {64854,13883,1},{64861,13877,1},{64864,13868,1},{64871,13867,1},{64871,13870,1}, {64866,13883,1},{64874,13868,1},{64878,13867,1},{64896,13847,1},{64909,13840,1}, {64918,13840,1},{64926,13837,1},{64943,13827,1},{64946,13827,1},{64948,13828,1}, {64951,13840,1},{64953,13822,1},{64956,13818,1},{64958,13817,1},{64966,13828,1}, {64968,13837,1},{64969,13833,1},{64968,13822,1},{64964,13817,1},{64963,13808,1}, {64963,13807,1},{64968,13807,1},{64978,13805,1},{64981,13810,1},{64986,13807,1}, {64993,13807,1},{64996,13807,1},{64993,13805,1},{64993,13802,1},{64989,13803,1}, {64988,13802,1},{64988,13798,1},{64998,13790,1},{65003,13792,1},{65003,13790,1}, {64999,13785,1},{64999,13782,1},{65004,13778,1},{65011,13780,1},{65008,13775,1}, {65011,13772,1},{65014,13770,1},{65014,13767,1},{65016,13760,1},{65018,13757,1}, {65021,13760,1},{65021,13757,1},{65024,13757,1},{65021,13752,1},{65023,13750,1}, {65024,13747,1},{65026,13747,1},{65026,13740,1},{65029,13735,1},{65033,13737,1}, {65033,13733,1},{65036,13732,1},{65033,13730,1},{65034,13727,1},{65041,13728,1}, {65043,13727,1},{65039,13723,1},{65036,13723,1},{65034,13722,1},{65038,13715,1}, {65041,13715,1},{65038,13712,1},{65039,13708,1},{65041,13708,1},{65046,13710,1}, {65043,13707,1},{65041,13702,1},{65044,13695,1},{65048,13698,1},{65049,13697,1}, {65048,13692,1},{65044,13688,1},{65043,13682,1},{65044,13680,1},{65048,13680,1}, {65048,13675,1},{65046,13675,1},{65048,13673,1},{65051,13670,1},{65051,13667,1}, {65056,13658,1},{65061,13650,1},{65061,13647,1},{65064,13643,1},{65064,13642,1}, {65068,13635,1},{65069,13622,1},{65071,13615,1},{65073,13615,1},{65074,13612,1}, {65076,13607,1},{65076,13603,1},{65084,13597,1},{65086,13593,1},{65086,13567,1}, {65093,13543,1},{65091,13528,1},{65089,13525,1},{65091,13518,1},{65104,13497,1}, {65109,13488,1},{65111,13480,1},{65114,13473,1},{65123,13472,1},{65123,13467,1}, {65124,13465,1},{65126,13465,1},{65131,13470,1},{65133,13467,1},{65136,13467,1}, {65143,13470,1},{65141,13485,1},{65138,13493,1},{65141,13497,1},{65143,13497,1}, {65141,13492,1},{65144,13492,1},{65143,13485,1},{65144,13478,1},{65144,13468,1}, {65143,13465,1},{65141,13462,1},{65134,13460,1},{65133,13452,1},{65138,13447,1}, {65139,13448,1},{65144,13443,1},{65146,13438,1},{65149,13433,1},{65143,13437,1}, {65141,13435,1},{65141,13430,1},{65136,13433,1},{65134,13432,1},{65134,13430,1}, {65139,13427,1},{65139,13422,1},{65143,13418,1},{65146,13417,1},{65146,13413,1}, {65153,13420,1},{65158,13417,1},{65161,13413,1},{65159,13412,1},{65156,13413,1}, {65154,13412,1},{65153,13408,1},{65156,13405,1},{65154,13402,1},{65151,13398,1}, {65151,13397,1},{65161,13392,1},{65169,13385,1},{65178,13383,1},{65174,13380,1}, {65163,13383,1},{65164,13382,1},{65169,13375,1},{65168,13372,1},{65169,13370,1}, {65174,13370,1},{65188,13363,1},{65189,13363,1},{65194,13370,1},{65203,13368,1}, {65213,13368,1},{65213,13372,1},{65218,13372,1},{65216,13377,1},{65223,13378,1}, {65224,13382,1},{65228,13385,1},{65228,13387,1},{65223,13392,1},{65224,13392,1}, {65228,13390,1},{65231,13385,1},{65239,13388,1},{65243,13387,1},{65243,13382,1}, {65239,13383,1},{65234,13380,1},{65231,13373,1},{65223,13367,1},{65199,13367,1}, {65194,13365,1},{65193,13357,1},{65194,13353,1},{65198,13352,1},{65193,13352,1}, {65191,13348,1},{65189,13357,1},{65181,13358,1},{65178,13357,1},{65173,13350,1}, {65161,13340,1},{65156,13340,1},{65153,13345,1},{65149,13345,1},{65148,13340,1}, {65134,13332,1},{65128,13323,1},{65129,13312,1},{65129,13307,1},{65128,13302,1}, {65124,13298,1},{65128,13290,1},{65133,13288,1},{65136,13283,1},{65139,13282,1}, {65141,13280,1},{65144,13280,1},{65143,13282,1},{65144,13283,1},{65151,13278,1}, {65158,13278,1},{65169,13273,1},{65173,13273,1},{65173,13275,1},{65171,13287,1}, {65173,13288,1},{65178,13288,1},{65181,13293,1},{65183,13290,1},{65189,13288,1}, {65189,13283,1},{65191,13282,1},{65199,13280,1},{65203,13282,1},{65206,13282,1}, {65208,13280,1},{65209,13277,1},{65208,13273,1},{65206,13273,1},{65203,13273,1}, {65201,13272,1},{65204,13267,1},{65206,13265,1},{65209,13263,1},{65213,13260,1}, {65214,13263,1},{65216,13263,1},{65218,13258,1},{65224,13255,1},{65233,13245,1}, {65238,13233,1},{65241,13233,1},{65243,13222,1},{65244,13218,1},{65241,13218,1}, {65241,13215,1},{65243,13210,1},{65241,13210,1},{65239,13208,1},{65244,13205,1}, {65243,13203,1},{65244,13202,1},{65244,13198,1},{65243,13198,1},{65244,13197,1}, {65248,13202,1},{65249,13202,1},{65251,13198,1},{65254,13203,1},{65256,13205,1}, {65256,13198,1},{65258,13195,1},{65261,13202,1},{65259,13205,1},{65261,13207,1}, {65259,13208,1},{65263,13208,1},{65261,13210,1},{65263,13217,1},{65264,13217,1}, {65263,13212,1},{65264,13210,1},{65266,13213,1},{65268,13220,1},{65268,13232,1}, {65266,13238,1},{65266,13242,1},{65263,13243,1},{65261,13242,1},{65261,13245,1}, {65263,13245,1},{65263,13247,1},{65264,13247,1},{65266,13248,1},{65264,13257,1}, {65254,13272,1},{65254,13273,1},{65258,13277,1},{65263,13285,1},{65286,13302,1}, {65291,13310,1},{65293,13317,1},{65293,13320,1},{65294,13323,1},{65291,13332,1}, {65284,13332,1},{65286,13333,1},{65284,13338,1},{65271,13338,1},{65268,13338,1}, {65268,13340,1},{65279,13340,1},{65286,13345,1},{65284,13345,1},{65271,13345,1}, {65273,13347,1},{65284,13348,1},{65283,13350,1},{65276,13352,1},{65276,13353,1}, {65279,13353,1},{65279,13358,1},{65283,13360,1},{65281,13365,1},{65278,13368,1}, {65268,13367,1},{65264,13368,1},{65271,13368,1},{65274,13370,1},{65284,13370,1}, {65284,13375,1},{65269,13382,1},{65281,13382,1},{65286,13380,1},{65288,13382,1}, {65288,13377,1},{65291,13373,1},{65293,13375,1},{65294,13383,1},{65293,13387,1}, {65288,13390,1},{65289,13390,1},{65294,13387,1},{65296,13387,1},{65296,13400,1}, {65298,13400,1},{65298,13392,1},{65298,13390,1},{65299,13388,1},{65301,13393,1}, {65301,13395,1},{65303,13395,1},{65303,13387,1},{65306,13395,1},{65313,13395,1}, {65316,13395,1},{65309,13393,1},{65309,13390,1},{65309,13388,1},{65306,13383,1}, {65309,13378,1},{65311,13380,1},{65314,13387,1},{65316,13388,1},{65316,13392,1}, {65319,13395,1},{65318,13388,1},{65321,13393,1},{65326,13393,1},{65324,13385,1}, {65321,13382,1},{65319,13377,1},{65319,13372,1},{65316,13370,1},{65316,13367,1}, {65313,13365,1},{65313,13362,1},{65313,13360,1},{65318,13360,1},{65313,13357,1}, {65311,13355,1},{65311,13353,1},{65316,13352,1},{65313,13350,1},{65313,13345,1}, {65314,13340,1},{65313,13332,1},{65316,13330,1},{65313,13325,1},{65314,13322,1}, {65311,13310,1},{65311,13302,1},{65308,13297,1},{65308,13290,1},{65311,13282,1}, {65304,13268,1},{65309,13263,1},{65313,13262,1},{65318,13258,1},{65314,13245,1}, {65309,13240,1},{65309,13230,1},{65321,13218,1},{65323,13212,1},{65326,13207,1}, {65329,13203,1},{65334,13210,1},{65336,13212,1},{65334,13203,1},{65336,13202,1}, {65339,13197,1},{65344,13197,1},{65344,13195,1},{65349,13193,1},{65353,13195,1}, {65354,13193,1},{65363,13202,1},{65368,13202,1},{65368,13200,1},{65366,13195,1}, {65364,13192,1},{65368,13190,1},{65371,13188,1},{65376,13190,1},{65379,13197,1}, {65383,13198,1},{65378,13188,1},{65381,13188,1},{65376,13180,1},{65378,13178,1}, {65383,13182,1},{65386,13180,1},{65381,13178,1},{65378,13173,1},{65379,13170,1}, {65384,13172,1},{65383,13163,1},{65384,13162,1},{65388,13158,1},{65388,13152,1}, {65389,13150,1},{65388,13147,1},{65386,13147,1},{65386,13143,1},{65389,13138,1}, {65393,13140,1},{65396,13138,1},{65396,13132,1},{65398,13128,1},{65396,13127,1}, {65393,13133,1},{65389,13133,1},{65386,13128,1},{65386,13123,1},{65383,13120,1}, {65388,13118,1},{65391,13112,1},{65391,13097,1},{65393,13095,1},{65394,13095,1}, {65398,13100,1},{65408,13103,1},{65411,13105,1},{65414,13118,1},{65426,13125,1}, {65433,13125,1},{65439,13127,1},{65443,13127,1},{65444,13128,1},{65448,13125,1}, {65454,13123,1},{65458,13137,1},{65459,13142,1},{65463,13152,1},{65461,13153,1}, {65458,13152,1},{65459,13158,1},{65466,13187,1},{65468,13188,1},{65474,13192,1}, {65481,13200,1},{65483,13207,1},{65488,13208,1},{65493,13215,1},{65496,13225,1}, {65498,13227,1},{65498,13232,1},{65501,13243,1},{65499,13268,1},{65499,13272,1}, {65491,13290,1},{65489,13293,1},{65491,13298,1},{65488,13300,1},{65488,13302,1}, {65484,13305,1},{65484,13308,1},{65483,13312,1},{65481,13317,1},{65466,13335,1}, {65463,13343,1},{65461,13358,1},{65463,13360,1},{65463,13362,1},{65461,13375,1}, {65464,13377,1},{65463,13382,1},{65461,13383,1},{65463,13390,1},{65463,13400,1}, {65456,13405,1},{65454,13410,1},{65451,13413,1},{65449,13418,1},{65448,13408,1}, {65441,13407,1},{65439,13403,1},{65434,13407,1},{65421,13413,1},{65414,13420,1}, {65401,13428,1},{65393,13423,1},{65381,13422,1},{65371,13413,1},{65368,13408,1}, {65348,13412,1},{65343,13415,1},{65331,13415,1},{65329,13413,1},{65323,13412,1}, {65318,13415,1},{65314,13415,1},{65309,13417,1},{65304,13417,1},{65294,13422,1}, {65293,13425,1},{65286,13430,1},{65286,13432,1},{65261,13440,1},{65249,13447,1}, {65249,13450,1},{65253,13453,1},{65273,13447,1},{65279,13447,1},{65283,13448,1}, {65284,13450,1},{65286,13455,1},{65288,13453,1},{65289,13455,1},{65284,13463,1}, {65279,13465,1},{65251,13467,1},{65239,13470,1},{65236,13473,1},{65239,13480,1}, {65244,13482,1},{65246,13485,1},{65243,13487,1},{65239,13485,1},{65234,13485,1}, {65233,13482,1},{65224,13482,1},{65219,13487,1},{65211,13488,1},{65208,13492,1}, {65209,13493,1},{65213,13495,1},{65211,13497,1},{65208,13495,1},{65203,13498,1}, {65201,13508,1},{65199,13512,1},{65199,13528,1},{65196,13533,1},{65199,13540,1}, {65199,13547,1},{65203,13553,1},{65208,13557,1},{65211,13557,1},{65216,13562,1}, {65219,13572,1},{65224,13577,1},{65226,13577,1},{65228,13573,1},{65231,13577,1}, {65231,13582,1},{65234,13583,1},{65234,13588,1},{65238,13592,1},{65243,13593,1}, {65248,13592,1},{65253,13597,1},{65258,13595,1},{65261,13602,1},{65266,13602,1}, {65266,13605,1},{65269,13608,1},{65273,13618,1},{65278,13625,1},{65284,13628,1}, {65293,13628,1},{65299,13635,1},{65308,13633,1},{65314,13640,1},{65316,13653,1}, {65314,13653,1},{65313,13655,1},{65309,13668,1},{65311,13672,1},{65311,13675,1}, {65313,13680,1},{65314,13683,1},{65316,13683,1},{65318,13693,1},{65323,13697,1}, {65323,13700,1},{65324,13707,1},{65326,13718,1},{65328,13723,1},{65329,13723,1}, {65334,13718,1},{65338,13722,1},{65341,13720,1},{65346,13710,1},{65354,13712,1}, {65356,13713,1},{65358,13717,1},{65359,13718,1},{65359,13725,1},{65364,13735,1}, {65373,13748,1},{65376,13752,1},{65379,13758,1},{65389,13785,1},{65388,13793,1}, {65374,13807,1},{65373,13820,1},{65363,13842,1},{65358,13865,1},{65351,13875,1}, {65346,13877,1},{65341,13885,1},{65339,13893,1},{65336,13903,1},{65329,13918,1}, {65323,13928,1},{65321,13935,1},{65311,13953,1},{65306,13968,1},{65301,13977,1}, {65298,13987,1},{65301,14007,1},{65304,14012,1},{65301,14015,1},{65304,14017,1}, {65301,14017,1},{65296,14022,1},{65294,14025,1},{65289,14033,1},{65291,14038,1}, {65293,14038,1},{65296,14037,1},{65293,14050,1},{65291,14062,1},{65286,14075,1}, {65281,14075,1},{65276,14070,1},{65273,14073,1},{65276,14075,1},{65274,14078,1}, {65274,14082,1},{65276,14100,1},{65376,13550,129},{65374,13555,1},{65373,13578,1}, {65371,13585,1},{65371,13620,1},{65368,13625,1},{65368,13630,1},{65364,13637,1}, {65363,13657,1},{65361,13680,1},{65358,13690,1},{65356,13690,1},{65354,13687,1}, {65353,13673,1},{65351,13670,1},{65348,13663,1},{65349,13653,1},{65346,13653,1}, {65348,13650,1},{65346,13645,1},{65349,13633,1},{65348,13628,1},{65344,13627,1}, {65346,13625,1},{65346,13623,1},{65349,13622,1},{65349,13620,1},{65351,13607,1}, {65354,13602,1},{65354,13598,1},{65358,13595,1},{65361,13587,1},{65361,13583,1}, {65363,13578,1},{65364,13573,1},{65366,13572,1},{65366,13567,1},{65366,13560,1}, {65368,13555,1},{65368,13548,1},{65371,13547,1},{65371,13545,1},{65374,13542,1}, {65376,13548,1},{65376,13550,1},{65469,13545,129},{65468,13548,1},{65469,13558,1}, {65466,13560,1},{65468,13567,1},{65463,13570,1},{65463,13575,1},{65461,13577,1}, {65466,13582,1},{65466,13585,1},{65463,13590,1},{65456,13595,1},{65448,13607,1}, {65446,13607,1},{65444,13608,1},{65439,13612,1},{65434,13617,1},{65429,13618,1}, {65431,13627,1},{65429,13628,1},{65428,13632,1},{65426,13637,1},{65424,13638,1}, {65421,13633,1},{65416,13627,1},{65413,13613,1},{65414,13610,1},{65419,13603,1}, {65418,13590,1},{65423,13583,1},{65424,13583,1},{65431,13583,1},{65441,13578,1}, {65446,13578,1},{65453,13575,1},{65453,13572,1},{65446,13565,1},{65459,13550,1}, {65458,13548,1},{65456,13548,1},{65456,13547,1},{65461,13540,1},{65469,13537,1}, {65473,13538,1},{65471,13542,1},{65469,13547,1},{63836,17870,129},{63839,17868,1}, {63846,17867,1},{63851,17862,1},{63856,17863,1},{63858,17860,1},{63854,17855,1}, {63856,17848,1},{63859,17848,1},{63859,17850,1},{63861,17850,1},{63866,17853,1}, {63863,17853,1},{63864,17855,1},{63866,17855,1},{63866,17857,1},{63869,17858,1}, {63869,17855,1},{63873,17853,1},{63874,17858,1},{63871,17860,1},{63871,17863,1}, {63868,17870,1},{63876,17878,1},{63876,17880,1},{63873,17880,1},{63873,17882,1}, {63876,17882,1},{63879,17883,1},{63881,17885,1},{63879,17887,1},{63881,17887,1}, {63881,17888,1},{63881,17890,1},{63884,17893,1},{63888,17892,1},{63889,17893,1}, {63889,17895,1},{63888,17897,1},{63889,17900,1},{63889,17905,1},{63893,17915,1}, {63893,17917,1},{63896,17922,1},{63894,17930,1},{63896,17932,1},{63894,17933,1}, {63896,17935,1},{63896,17937,1},{63894,17938,1},{63894,17940,1},{63899,17938,1}, {63901,17940,1},{63899,17942,1},{63904,17943,1},{63904,17947,1},{63909,17947,1}, {63909,17952,1},{63909,17953,1},{63911,17952,1},{63911,17953,1},{63909,17955,1}, {63909,17957,1},{63913,17957,1},{63911,17958,1},{63911,17962,1},{63909,17962,1}, {63914,17967,1},{63913,17968,1},{63914,17972,1},{63918,17977,1},{63913,17977,1}, {63916,17983,1},{63916,17985,1},{63913,17983,1},{63921,17997,1},{63921,18000,1}, {63923,47538,1},{63924,47543,1},{63919,47539,1},{63918,17998,1},{63909,17987,1}, {63901,17982,1},{63898,17978,1},{63896,17978,1},{63891,17975,1},{63883,17960,1}, {63879,17958,1},{63878,17958,1},{63876,17957,1},{63874,17958,1},{63873,17957,1}, {63873,17955,1},{63868,17950,1},{63866,17948,1},{63864,17948,1},{63859,17948,1}, {63861,17953,1},{63859,17953,1},{63859,17957,1},{63863,17957,1},{63866,17963,1}, {63868,17965,1},{63868,17967,1},{63873,17972,1},{63876,17972,1},{63876,17975,1}, {63879,17975,1},{63879,17978,1},{63884,17985,1},{63886,17990,1},{63889,17993,1}, {63884,17995,1},{63878,17990,1},{63873,17988,1},{63869,17985,1},{63869,17988,1}, {63864,17990,1},{63863,17995,1},{63861,17993,1},{63861,17990,1},{63859,17990,1}, {63859,17987,1},{63861,17985,1},{63863,17987,1},{63863,17982,1},{63864,17980,1}, {63864,17972,1},{63863,17970,1},{63863,17967,1},{63861,17965,1},{63856,17958,1}, {63858,17955,1},{63854,17943,1},{63856,17937,1},{63854,17930,1},{63856,17930,1}, {63861,17935,1},{63863,17935,1},{63863,17930,1},{63868,17927,1},{63866,17920,1}, {63863,17917,1},{63861,17913,1},{63856,17912,1},{63856,17905,1},{63846,17902,1}, {63849,17903,1},{63848,17907,1},{63843,17902,1},{63846,17898,1},{63846,17897,1}, {63848,17895,1},{63849,17892,1},{63851,17892,1},{63849,17890,1},{63849,17887,1}, {63848,17885,1},{63846,17882,1},{63843,17882,1},{63841,17880,1},{63839,17878,1}, {63838,17880,1},{63838,17877,1},{63834,17875,1},{63836,17870,1},{63709,17800,129}, {63708,17790,1},{63711,17788,1},{63709,17785,1},{63713,17783,1},{63714,17770,1}, {63718,17762,1},{63721,17752,1},{63719,17752,1},{63719,17747,1},{63723,17742,1}, {63724,17733,1},{63728,17732,1},{63728,17730,1},{63734,17728,1},{63736,17727,1}, {63738,17727,1},{63739,17725,1},{63744,17727,1},{63749,17727,1},{63751,17730,1}, {63753,17737,1},{63761,17737,1},{63761,17743,1},{63768,17742,1},{63769,17738,1}, {63773,17738,1},{63773,17742,1},{63778,17747,1},{63781,17747,1},{63779,17750,1}, {63784,17752,1},{63786,17757,1},{63793,17765,1},{63788,17765,1},{63786,17767,1}, {63791,17767,1},{63794,17770,1},{63793,17775,1},{63796,17777,1},{63799,17783,1}, {63798,17783,1},{63793,17783,1},{63796,17787,1},{63796,17790,1},{63794,17797,1}, {63798,17802,1},{63801,17803,1},{63801,17817,1},{63806,17820,1},{63801,17827,1}, {63799,17827,1},{63796,17828,1},{63793,17825,1},{63791,17825,1},{63788,17825,1}, {63793,17830,1},{63793,17835,1},{63788,17837,1},{63786,17837,1},{63786,17838,1}, {63783,17840,1},{63781,17845,1},{63779,17848,1},{63778,17852,1},{63776,17852,1}, {63774,17855,1},{63771,17860,1},{63766,17860,1},{63759,17857,1},{63758,17860,1}, {63754,17860,1},{63753,17863,1},{63751,17862,1},{63751,17863,1},{63749,17863,1}, {63749,17862,1},{63746,17862,1},{63746,17858,1},{63739,17862,1},{63738,17865,1}, {63734,17867,1},{63736,17870,1},{63728,17868,1},{63726,17863,1},{63723,17858,1}, {63724,17858,1},{63723,17855,1},{63726,17855,1},{63726,17853,1},{63724,17848,1}, {63721,17847,1},{63721,17843,1},{63724,17845,1},{63726,17840,1},{63723,17837,1}, {63724,17837,1},{63724,17833,1},{63721,17832,1},{63721,17828,1},{63718,17825,1}, {63716,17822,1},{63711,17817,1},{63709,17800,1},{207,10965,131},{197,10962,3}, {190,10955,3},{187,10957,3},{185,10955,3},{180,10958,3},{178,10967,3},{162,10967,3}, {150,10980,3},{147,10980,3},{147,10985,3},{143,10983,3},{142,10985,3},{140,10995,3}, {130,10998,3},{127,11007,3},{122,11007,3},{120,11012,3},{118,11020,3},{103,11028,3}, {98,11030,3},{100,11033,3},{98,11040,3},{90,11047,3},{85,11057,3},{87,11062,3}, {90,11063,3},{87,11068,3},{88,11070,3},{90,11073,3},{90,11077,3},{92,11078,3}, {90,11080,3},{95,11082,3},{102,11090,3},{102,11102,3},{107,11120,3},{108,11123,3}, {107,11127,3},{102,11140,3},{102,11150,3},{97,11153,3},{97,11155,3},{100,11157,3}, {103,11167,3},{102,11172,3},{100,11173,3},{100,11183,3},{102,11187,3},{107,11188,3}, {113,11195,3},{115,11213,3},{130,11217,3},{138,11222,3},{140,11222,3},{142,11218,3}, {145,11220,3},{152,11235,3},{153,11243,3},{155,11245,3},{157,11248,3},{155,11283,3}, {158,11288,3},{157,11302,3},{155,11305,3},{153,11307,3},{148,11303,3},{143,11298,3}, {142,11298,3},{143,11308,3},{142,11315,3},{138,11318,3},{137,11333,3},{128,11343,3}, {132,11353,3},{132,11357,3},{123,11363,3},{122,11365,3},{130,11380,3},{145,11393,3}, {147,11408,3},{147,11413,3},{142,11420,3},{145,11425,3},{152,11440,3},{148,11445,3}, {143,11453,3},{143,11457,3},{147,11460,3},{155,11460,3},{158,11465,3},{168,11468,3}, {178,11472,3},{183,11470,3},{187,11473,3},{187,11478,3},{190,11487,3},{197,11485,3}, {200,11487,3},{205,11487,3},{207,11488,3},{208,11490,3},{212,11488,3},{212,11485,3}, {213,11482,3},{215,11478,3},{225,11482,3},{228,11493,3},{230,11495,3},{233,11495,3}, {237,11495,3},{237,11502,3},{242,11508,3},{247,11512,3},{248,11515,3},{248,11522,3}, {252,11523,3},{260,11518,3},{258,11512,3},{260,11510,3},{263,11505,3},{267,11508,3}, {275,11512,3},{282,11512,3},{285,11515,3},{290,11515,3},{297,11523,3},{303,11528,3}, {302,11530,3},{298,11532,3},{297,11535,3},{298,11540,3},{302,11543,3},{302,11548,3}, {305,11550,3},{312,11550,3},{317,11555,3},{318,11552,3},{320,11552,3},{332,11553,3}, {343,11558,3},{343,11563,3},{345,11563,3},{350,11560,3},{355,11560,3},{362,11557,3}, {372,11558,3},{387,11562,3},{390,11557,3},{392,11557,3},{397,11563,3},{418,11568,3}, {420,11573,3},{425,11577,3},{423,11582,3},{427,11582,3},{428,11585,3},{432,11585,3}, {437,11587,3},{433,11598,3},{428,11605,3},{433,11613,3},{438,11618,3},{435,11630,3}, {437,11637,3},{430,11643,3},{430,11647,3},{433,11648,3},{432,11653,3},{433,11653,3}, {437,11652,3},{438,11657,3},{433,11663,3},{433,11668,3},{437,11675,3},{435,11678,3}, {433,11683,3},{435,11692,3},{433,11700,3},{433,11718,3},{437,11723,3},{432,11728,3}, {425,11740,3},{420,11745,3},{418,11753,3},{418,11757,3},{417,11760,3},{458,11408,131}, {457,11417,3},{452,11425,3},{442,11430,3},{432,11433,3},{427,11433,3},{425,11438,3}, {425,11445,3},{415,11450,3},{405,11460,3},{402,11462,3},{402,11467,3},{403,11470,3}, {412,11480,3},{420,11482,3},{427,11485,3},{427,11480,3},{433,11485,3},{438,11488,3}, {442,11487,3},{443,11483,3},{467,11482,3},{470,11478,3},{473,11478,3},{475,11482,3}, {480,11487,3},{482,11497,3},{488,11500,3},{487,11502,3},{482,11503,131}, {473,11502,3},{467,11503,3},{455,11507,3},{438,11510,3},{435,11518,3},{435,11523,3}, {432,11532,3},{432,11535,3},{433,11537,3},{443,11528,3},{455,11527,3},{462,11528,3}, {477,11523,3},{480,11522,3},{485,11518,3},{488,11515,3},{490,11515,3},{65276,14100,131}, {64903,14100,3},{64903,14097,3},{64899,14097,3},{64898,14095,3},{64896,14097,3}, {64894,14095,3},{64893,14095,3},{64893,14092,3},{64889,14095,3},{64886,14095,3}, {64884,14092,3},{64881,14092,3},{64879,14090,3},{64876,14090,3},{64874,14085,3}, {64871,14087,3},{64864,14085,3},{64861,14088,3},{64858,14087,3},{64854,14090,3}, {64851,14090,3},{64849,14093,3},{64846,14095,3},{64846,14102,3},{64623,14100,3}, {62366,12898,131},{62423,12900,3},{62479,12900,3},{62498,12900,3},{62534,12900,3}, {62593,12900,3},{62631,12900,3},{62649,12900,3},{62706,12900,3},{62763,12900,3}, {62821,12900,3},{62878,12900,3},{62896,12900,3},{62936,12900,3},{62993,12900,3}, {63049,12900,3},{63069,12900,3},{63106,12900,3},{63161,12900,3},{63203,12900,3}, {63219,12900,3},{63278,12900,3},{63336,12900,3},{63398,12900,3},{63453,12900,3}, {63469,12900,3},{63511,12900,3},{63569,12900,3},{63603,12900,3},{63626,12900,3}, {63684,12900,3},{63734,12900,3},{63743,12900,3},{63804,12900,3},{63859,12900,3}, {63866,12900,3},{63921,12900,3},{63983,12900,3},{63998,12900,3},{64043,12900,3}, {64049,12900,3},{62936,12900,131},{62936,12963,3},{62936,13025,3},{62936,13047,3}, {62936,13088,3},{62936,13152,3},{62936,13193,3},{62936,13215,3},{62936,13277,3}, {62936,13340,3},{62936,13403,3},{62936,13467,3},{62936,13487,3},{62936,13528,3}, {62936,13592,3},{62936,13637,3},{62936,13655,3},{62936,13715,3},{62936,13775,3}, {62936,13783,3},{62936,13800,3},{62936,13863,3},{62936,13927,3},{62936,13945,3}, {62936,13992,3},{62936,14055,3},{62936,14092,3},{62936,14100,3},{62879,14100,3}, {62823,14100,3},{62806,14100,3},{62764,14100,3},{62708,14100,3},{62676,14100,3}, {62651,14100,3},{62636,14100,3},{62578,14100,3},{62519,14100,3},{62504,14100,3}, {62464,14100,3},{62408,14100,3},{62368,14100,3},{62353,14100,3},{62296,14100,3}, {62236,14100,3},{62176,14100,3},{62133,14100,3},{62078,14097,3},{62021,14097,3}, {62001,14097,3},{61963,14097,3},{61908,14097,3},{61869,14097,3},{61851,14097,3}, {61793,14097,3},{61738,14097,3},{61729,14097,3},{63881,13800,131},{63826,13800,3}, {63771,13800,3},{63743,13800,3},{63714,13800,3},{63653,13800,3},{63613,13800,3}, {63598,13800,3},{63536,13800,3},{63479,13800,3},{63424,13800,3},{63368,13800,3}, {63349,13800,3},{63309,13800,3},{63254,13800,3},{63219,13800,3},{63199,13800,3}, {63144,13800,3},{63089,13800,3},{63028,13800,3},{62966,13800,3},{62959,13800,3}, {62936,13800,3},{62636,14100,131},{62636,14162,3},{62636,14225,3},{62636,14253,3}, {62636,14290,3},{62636,14358,3},{62636,14402,3},{62636,14420,3},{62636,14482,3}, {62636,14545,3},{62636,14553,3},{62636,14608,3},{62636,14675,3},{62636,14708,3}, {62636,14743,3},{62636,14807,3},{62636,14857,3},{62636,14872,3},{62661,14928,3}, {62674,14988,3},{62676,15000,3},{62669,15055,3},{62649,15115,3},{62631,15128,3}, {62619,15132,3},{62618,15137,3},{62644,15192,3},{62679,15195,3},{62708,15245,3}, {62711,15252,3},{62701,15312,3},{62719,15355,3},{62133,14100,131},{62124,14167,3}, {62106,14230,3},{62078,14243,3},{62056,14263,3},{62073,14270,3},{62056,14332,3}, {62003,14357,3},{61998,14370,3},{61971,14413,3},{61938,14452,3},{61931,14462,3}, {61951,14527,3},{61939,14592,3},{61933,14615,3},{61938,14658,3},{61931,14727,3}, {61939,14777,3},{61931,14793,3},{61879,14813,3},{61856,14812,3},{61834,14872,3}, {61831,14883,3},{61806,14943,3},{61786,14998,3},{62003,14940,131},{61998,14918,3}, {61944,14903,3},{61971,14877,3},{61998,14882,3},{62023,14912,3},{62003,14940,3}, {927,57533,128},{935,57539,0},{935,57543,0},{930,57543,0},{930,57544,0}, {935,57546,0},{935,57549,0},{937,57548,0},{937,57549,0},{938,57549,0},{937,57553,0}, {935,57558,0},{937,57556,0},{940,57556,0},{943,57559,0},{943,57563,0},{947,57564,0}, {948,57568,0},{953,57569,0},{955,57571,0},{955,57569,0},{958,57571,0},{960,57576,0}, {960,57578,0},{962,57583,0},{960,57584,0},{958,57583,0},{957,57584,0},{958,57586,0}, {957,57589,0},{958,57591,0},{957,57598,0},{957,57603,0},{953,57614,0},{953,57618,0}, {955,57621,0},{953,57621,0},{955,57623,0},{955,57639,0},{952,57638,0},{952,57633,0}, {950,57629,0},{943,57631,0},{943,57636,0},{945,57638,0},{945,57641,0},{943,57646,0}, {942,57646,0},{940,57649,0},{943,57653,0},{942,57654,0},{943,57658,0},{943,57659,0}, {943,57661,0},{943,57664,0},{943,57666,0},{942,57671,0},{942,57673,0},{940,57676,0}, {943,57681,0},{940,57684,0},{940,57688,0},{938,57689,0},{937,57694,0},{927,57716,0}, {923,57733,0},{918,57738,0},{915,57743,0},{912,57743,0},{905,57749,0},{910,57749,0}, {905,57756,0},{902,57756,0},{895,57763,0},{893,57761,0},{888,57766,0},{888,57768,0}, {880,57774,0},{883,57773,0},{883,57774,0},{878,57779,0},{877,57779,0},{877,57783,0}, {873,57783,0},{872,57783,0},{870,57783,0},{865,57793,0},{867,57796,0},{867,57799,0}, {868,57799,0},{723,57748,128},{723,57744,0},{733,57736,0},{738,57734,0}, {738,57733,0},{742,57733,0},{742,57729,0},{745,57724,0},{753,57721,0},{752,57719,0}, {757,57719,0},{757,57718,0},{755,57716,0},{757,57716,0},{760,57716,0},{768,57708,0}, {773,57708,0},{787,57701,0},{790,57698,0},{797,57694,0},{802,57694,0},{805,57693,0}, {808,57693,0},{810,57696,0},{807,57696,0},{805,57703,0},{810,57711,0},{815,57713,0}, {818,57713,0},{825,57706,0},{825,57709,0},{827,57709,0},{828,57709,0},{830,57711,0}, {827,57713,0},{827,57716,0},{830,57718,0},{833,57718,0},{840,57723,0},{838,57724,0}, {835,57724,0},{832,57731,0},{825,57734,0},{820,57744,0},{822,57744,0},{825,57739,0}, {823,57748,0},{820,57753,0},{817,57753,0},{815,57758,0},{812,57758,0},{810,57761,0}, {812,57763,0},{813,57763,0},{812,57761,0},{813,57759,0},{815,57758,0},{817,57756,0}, {817,57753,0},{820,57753,0},{823,57749,0},{827,57734,0},{840,57729,0},{842,57731,0}, {847,57726,0},{848,57726,0},{850,57728,0},{853,57724,0},{855,57724,0},{853,57723,0}, {852,57724,0},{850,57726,0},{847,57724,0},{842,57728,0},{847,57721,0},{843,57718,0}, {840,57718,0},{838,57713,0},{840,57711,0},{842,57716,0},{843,57716,0},{847,57714,0}, {850,57716,0},{853,57714,0},{852,57713,0},{848,57714,0},{843,57713,0},{845,57709,0}, {847,57713,0},{850,57711,0},{848,57711,0},{843,57708,0},{843,57706,0},{848,57704,0}, {845,57703,0},{842,57699,0},{853,57698,0},{855,57696,0},{852,57694,0},{847,57698,0}, {843,57698,0},{840,57699,0},{833,57698,0},{835,57694,0},{838,57691,0},{845,57691,0}, {842,57689,0},{845,57686,0},{850,57688,0},{855,57684,0},{857,57683,0},{857,57688,0}, {860,57684,0},{863,57686,0},{865,57679,0},{867,57679,0},{867,57676,0},{870,57674,0}, {873,57676,0},{877,57674,0},{875,57674,0},{872,57674,0},{872,57673,0},{870,57671,0}, {873,57669,0},{877,57663,0},{880,57661,0},{885,57658,0},{883,57658,0},{880,57653,0}, {890,57646,0},{898,57628,0},{905,57628,0},{908,57626,0},{908,57628,0},{912,57631,0}, {912,57633,0},{912,57634,0},{915,57638,0},{912,57633,0},{913,57631,0},{908,57628,0}, {908,57624,0},{905,57628,0},{902,57628,0},{898,57624,0},{900,57621,0},{902,57619,0}, {900,57618,0},{902,57608,0},{902,57598,0},{900,57588,0},{897,57586,0},{897,57584,0}, {893,57583,0},{890,57584,0},{895,57579,0},{890,57581,0},{888,57578,0},{888,57576,0}, {723,57748,128},{715,57754,0},{715,57758,0},{705,57766,0},{707,57766,0}, {705,57768,0},{697,57771,0},{693,57766,0},{688,57766,0},{685,57768,0},{688,57768,0}, {682,57778,0},{672,57783,0},{667,57783,0},{667,57784,0},{670,57786,0},{672,57789,0}, {668,57796,0},{663,57794,0},{657,57803,0},{647,57801,0},{643,57798,0},{642,57801,0}, {638,57801,0},{638,57796,0},{635,57799,0},{625,57796,0},{623,57794,0},{625,57794,0}, {630,57788,0},{623,57788,0},{618,57788,0},{605,57798,0},{600,57799,0},{602,57801,0}, {590,57806,0},{578,57811,0},{573,57811,0},{568,57809,0},{565,57806,0},{565,57804,0}, {562,57803,0},{560,57799,0},{562,57796,0},{562,57793,0},{560,57791,0},{558,57786,0}, {552,57783,0},{550,57781,0},{548,57781,0},{548,57784,0},{550,57788,0},{550,57789,0}, {547,57793,0},{545,57796,0},{543,57796,0},{540,57798,0},{540,57796,0},{538,57796,0}, {537,57796,0},{537,57798,0},{530,57799,0},{525,57799,0},{523,57801,0},{517,57799,0}, {508,57799,0},{487,57801,0},{482,57803,0},{482,57804,0},{480,57804,0},{472,57811,0}, {475,57804,0},{472,57804,0},{467,57808,0},{465,57806,0},{467,57804,0},{455,57804,0}, {447,57803,0},{447,57804,0},{445,57801,0},{440,57801,0},{433,57798,0},{427,57803,0}, {427,57809,0},{425,57813,0},{420,57806,0},{420,57804,0},{422,57803,0},{418,57798,0}, {418,57793,0},{413,57793,0},{407,57793,0},{405,57794,0},{403,57793,0},{402,57793,0}, {398,57794,0},{397,57799,0},{395,57798,0},{392,57799,0},{393,57801,0},{398,57804,0}, {405,57804,0},{407,57809,0},{410,57809,0},{407,57813,0},{407,57818,0},{403,57816,0}, {398,57813,0},{397,57814,0},{397,57809,0},{398,57809,0},{397,57806,0},{395,57806,0}, {390,57804,0},{388,57809,0},{387,57808,0},{383,57811,0},{385,57818,0},{388,57823,0}, {390,57824,0},{392,57824,0},{392,57828,0},{390,57828,0},{392,57833,0},{385,57829,0}, {383,57824,0},{382,57826,0},{380,57826,0},{382,57823,0},{380,57821,0},{377,57824,0}, {375,57819,0},{373,57821,0},{373,57823,0},{373,57819,0},{375,57816,0},{370,57818,0}, {372,57819,0},{372,57823,0},{370,57823,0},{370,57819,0},{367,57819,0},{367,57824,0}, {367,57821,0},{365,57819,0},{365,57818,0},{362,57816,0},{358,57813,0},{357,57814,0}, {357,57808,0},{355,57806,0},{355,57808,0},{355,57804,0},{353,57804,0},{353,57809,0}, {352,57806,0},{350,57809,0},{350,57808,0},{348,57809,0},{348,57808,0},{348,57804,0}, {352,57804,0},{347,57803,0},{345,57801,0},{340,57803,0},{342,57801,0},{340,57799,0}, {335,57801,0},{333,57804,0},{332,57804,0},{333,57801,0},{338,57798,0},{335,57794,0}, {337,57791,0},{333,57789,0},{332,57794,0},{330,57796,0},{325,57794,0},{325,57789,0}, {322,57789,0},{322,57786,0},{318,57784,0},{317,57783,0},{313,57784,0},{305,57781,0}, {303,57771,0},{305,57766,0},{297,57764,0},{300,57768,0},{298,57768,0},{298,57769,0}, {300,57771,0},{298,57774,0},{297,57773,0},{295,57773,0},{293,57774,0},{288,57771,0}, {293,57768,0},{292,57766,0},{288,57764,0},{287,57766,0},{287,57768,0},{288,57769,0}, {287,57773,0},{285,57773,0},{287,57771,0},{283,57768,0},{285,57764,0},{282,57763,0}, {282,57766,0},{278,57768,0},{280,57764,0},{282,57761,0},{280,57758,0},{278,57758,0}, {278,57763,0},{277,57759,0},{275,57758,0},{277,57754,0},{273,57756,0},{268,57756,0}, {268,57759,0},{267,57756,0},{267,57758,0},{260,57761,0},{257,57756,0},{255,57751,0}, {258,57746,0},{260,57746,0},{263,57748,0},{263,57744,0},{265,57743,0},{265,57741,0}, {262,57743,0},{260,57739,0},{258,57739,0},{257,57741,0},{252,57738,0},{253,57734,0}, {255,57731,0},{255,57728,0},{252,57728,0},{248,57724,0},{252,57718,0},{253,57716,0}, {253,57714,0},{252,57714,0},{255,57713,0},{255,57711,0},{243,57701,0},{250,57694,0}, {250,57691,0},{243,57689,0},{243,57683,0},{238,57681,0},{245,57679,0},{235,57676,0}, {235,57674,0},{228,57671,0},{227,57671,0},{225,57673,0},{220,57668,0},{217,57668,0}, {217,57669,0},{215,57668,0},{213,57669,0},{215,57671,0},{213,57669,0},{208,57669,0}, {207,57671,0},{200,57669,0},{200,57673,0},{203,57674,0},{202,57676,0},{200,57678,0}, {198,57678,0},{195,57676,0},{192,57681,0},{177,57678,0},{177,57674,0},{182,57673,0}, {180,57666,0},{182,57661,0},{183,57651,0},{182,57648,0},{178,57644,0},{177,57641,0}, {163,57631,0},{160,57633,0},{158,57643,0},{155,57648,0},{155,57651,0},{148,57649,0}, {143,57654,0},{1185,58404,128},{1192,58406,0},{1198,58419,0},{1202,58424,0}, {1210,58424,0},{1227,58414,0},{1230,58414,0},{1233,58411,0},{1238,58398,0}, {1238,58393,0},{1243,58388,0},{1245,58379,0},{1243,58378,0},{1247,58371,0}, {1245,58364,0},{1242,58363,0},{1245,58368,0},{1243,58366,0},{1243,58371,0}, {1242,58368,0},{1242,58373,0},{1240,58366,0},{1237,58368,0},{1237,58366,0}, {1238,58364,0},{1240,58364,0},{1242,58363,0},{1238,58361,0},{1238,58363,0}, {1235,58361,0},{1233,58356,0},{1232,58354,0},{1235,58353,0},{1237,58354,0}, {1237,58349,0},{1228,58339,0},{1227,58341,0},{1228,58343,0},{1228,58348,0}, {1220,58349,0},{1218,58344,0},{1217,58343,0},{1215,58341,0},{1215,58336,0}, {1218,58336,0},{1218,58334,0},{1225,58339,0},{1227,58339,0},{1225,58328,0}, {1225,58323,0},{1223,58319,0},{1222,58319,0},{1220,58321,0},{1210,58323,0}, {1192,58313,0},{1188,58311,0},{1183,58298,0},{1180,58294,0},{1178,58289,0}, {1178,58284,0},{1175,58279,0},{1175,58276,0},{1173,58273,0},{1170,58259,0}, {1163,58253,0},{1157,58246,0},{1152,58234,0},{1145,58226,0},{1142,58221,0}, {1138,58216,0},{1135,58214,0},{1130,58208,0},{1127,58198,0},{1127,58169,0}, {1127,58159,0},{1127,58156,0},{1130,58148,0},{1135,58134,0},{1135,58131,0}, {1133,58131,0},{1135,58129,0},{1133,58128,0},{1135,58126,0},{1132,58123,0}, {1135,58121,0},{1132,58121,0},{1132,58118,0},{1128,58116,0},{1123,58113,0}, {1112,58113,0},{1108,58114,0},{1097,58108,0},{1093,58108,0},{1085,58103,0}, {1083,58103,0},{1075,58098,0},{1075,58091,0},{1082,58089,0},{1083,58086,0}, {1080,58084,0},{1077,58084,0},{1078,58086,0},{1075,58086,0},{1075,58083,0}, {1080,58081,0},{1083,58079,0},{1078,58078,0},{1078,58076,0},{1083,58076,0}, {1088,58076,0},{1088,58078,0},{1087,58083,0},{1088,58084,0},{1085,58088,0}, {1088,58088,0},{1090,58084,0},{1097,58086,0},{1097,58103,0},{1100,58108,0}, {1098,58098,0},{1098,58089,0},{1100,58084,0},{1108,58061,0},{1110,58053,0}, {1113,58049,0},{1110,58049,0},{1108,58046,0},{1097,58034,0},{1090,58033,0}, {1087,58023,0},{1080,58013,0},{1080,58009,0},{1075,58009,0},{1075,58011,0}, {1077,58013,0},{1075,58013,0},{1072,58013,0},{1070,58011,0},{1072,58009,0}, {1073,58011,0},{1073,58008,0},{1072,58008,0},{1068,57996,0},{1063,57994,0}, {1063,57991,0},{1060,57991,0},{1057,57983,0},{1053,57986,0},{1050,57984,0}, {1050,57988,0},{1043,57988,0},{1043,57984,0},{1048,57986,0},{1043,57979,0}, {1040,57979,0},{1042,57981,0},{1038,57983,0},{1038,57984,0},{1030,57984,0}, {1028,57978,0},{1030,57976,0},{1027,57976,0},{1025,57974,0},{1022,57973,0}, {1015,57964,0},{1013,57966,0},{1015,57969,0},{1025,57981,0},{1023,57983,0}, {1018,57983,0},{1013,57979,0},{1013,57978,0},{1003,57978,0},{995,57976,0}, {988,57973,0},{980,57973,0},{975,57969,0},{970,57964,0},{970,57973,0},{967,57976,0}, {958,57978,0},{945,57973,0},{942,57968,0},{942,57961,0},{942,57959,0},{938,57956,0}, {940,57954,0},{940,57951,0},{942,57953,0},{942,57956,0},{943,57956,0},{942,57944,0}, {943,57943,0},{937,57934,0},{933,57928,0},{930,57924,0},{927,57924,0},{923,57919,0}, {912,57916,0},{907,57911,0},{905,57909,0},{900,57909,0},{893,57904,0},{890,57893,0}, {887,57893,0},{883,57886,0},{878,57883,0},{875,57871,0},{868,57869,0},{862,57848,0}, {855,57841,0},{853,57843,0},{855,57843,0},{848,57854,0},{843,57856,0},{840,57859,0}, {833,57859,0},{828,57858,0},{818,57861,0},{808,57861,0},{810,57861,0},{808,57863,0}, {798,57863,0},{797,57861,0},{792,57861,0},{790,57854,0},{792,57849,0},{793,57844,0}, {798,57843,0},{803,57844,0},{803,57853,0},{805,57849,0},{805,57853,0},{808,57851,0}, {810,57853,0},{810,57851,0},{813,57853,0},{813,57846,0},{812,57848,0},{810,57846,0}, {813,57841,0},{817,57841,0},{817,57843,0},{818,57844,0},{818,57843,0},{820,57841,0}, {818,57841,0},{820,57839,0},{823,57839,0},{823,57841,0},{827,57841,0},{825,57838,0}, {827,57833,0},{837,57824,0},{842,57823,0},{847,57811,0},{852,57808,0},{858,57806,0}, {863,57801,0},{867,57801,0},{867,57799,0},{143,57654,128},{143,57653,0}, {138,57653,0},{135,57649,0},{132,57648,0},{130,57649,0},{128,57654,0},{128,57649,0}, {123,57648,0},{123,57644,0},{123,57643,0},{122,57641,0},{115,57641,0},{112,57638,0}, {118,57634,0},{122,57631,0},{113,57624,0},{108,57618,0},{107,57598,0},{107,57591,0}, {100,57581,0},{98,57573,0},{90,57571,0},{87,57574,0},{83,57574,0},{88,57573,0}, {90,57569,0},{100,57571,0},{95,57561,0},{87,57549,0},{87,57543,0},{83,57539,0}, {83,57529,0},{77,57526,0},{68,57524,0},{65,57528,0},{63,57531,0},{58,57534,0}, {53,57534,0},{48,57531,0},{43,57533,0},{37,57536,0},{32,57536,0},{35,57534,0}, {35,57533,0},{17,57533,0},{7,57529,0},{3,57526,0},{0,57526,0},{65533,57521,0}, {65529,57516,0},{65521,57511,0},{65519,57506,0},{65519,57503,0},{65513,57498,0}, {65508,57496,0},{65499,57486,0},{65494,57488,0},{65493,57489,0},{65474,57498,0}, {65473,57509,0},{65473,57503,0},{65473,57496,0},{65478,57494,0},{65479,57493,0}, {65473,57489,0},{65463,57484,0},{65453,57483,0},{65446,57478,0},{65443,57474,0}, {65444,57469,0},{65443,57466,0},{65444,57459,0},{65443,57456,0},{65443,57453,0}, {65436,57448,0},{65433,57444,0},{65431,57444,0},{65423,57448,0},{65403,57461,0}, {65398,57458,0},{65389,57458,0},{65388,57454,0},{65383,57454,0},{65381,57451,0}, {65376,57451,0},{65359,57459,0},{65343,57463,0},{65341,57463,0},{65339,57459,0}, {65329,57461,0},{65323,57458,0},{65316,57444,0},{65319,57434,0},{65316,57436,0}, {65311,57441,0},{65304,57444,0},{65304,57448,0},{65298,57458,0},{65298,57463,0}, {65296,57468,0},{65291,57474,0},{65273,57489,0},{65271,57496,0},{65264,57504,0}, {65263,57511,0},{65266,57511,0},{65271,57509,0},{65271,57508,0},{65276,57508,0}, {65273,57513,0},{65276,57516,0},{65278,57519,0},{65284,57526,0},{65301,57533,0}, {65303,57534,0},{65303,57538,0},{65304,57541,0},{65301,57538,0},{65299,57534,0}, {65288,57533,0},{65291,57536,0},{65288,57541,0},{65289,57543,0},{65288,57543,0}, {65286,57541,0},{65288,57538,0},{65288,57534,0},{65283,57533,0},{65281,57529,0}, {65278,57529,0},{65276,57531,0},{65278,57534,0},{65274,57536,0},{65279,57546,0}, {65294,57549,0},{65304,57549,0},{65309,57549,0},{65314,57546,0},{65326,57548,0}, {65328,57549,0},{65328,57553,0},{65333,57553,0},{65334,57559,0},{65333,57558,0}, {65331,57554,0},{65328,57554,0},{65326,57551,0},{65323,57551,0},{65319,57549,0}, {65314,57553,0},{65309,57551,0},{65304,57553,0},{65298,57551,0},{65294,57554,0}, {65288,57558,0},{65288,57561,0},{65281,57564,0},{65276,57563,0},{65269,57558,0}, {65261,57556,0},{65258,57553,0},{65244,57549,0},{65239,57548,0},{65233,57548,0}, {65228,57544,0},{65216,57541,0},{65211,57534,0},{65208,57533,0},{65213,57533,0}, {65214,57531,0},{65216,57531,0},{65206,57526,0},{65203,57521,0},{65201,57509,0}, {65203,57508,0},{65203,57506,0},{65198,57506,0},{65199,57504,0},{65203,57504,0}, {65199,57503,0},{65194,57501,0},{65188,57498,0},{65186,57483,0},{65174,57476,0}, {65161,57454,0},{65158,57451,0},{65148,57449,0},{65141,57438,0},{65126,57429,0}, {65124,57424,0},{65114,57416,0},{65111,57411,0},{65106,57408,0},{65098,57408,0}, {65091,57406,0},{65088,57403,0},{65081,57406,0},{65071,57403,0},{65068,57401,0}, {65051,57414,0},{65046,57418,0},{65041,57424,0},{65034,57428,0},{65029,57426,0}, {65029,57418,0},{65019,57418,0},{65016,57416,0},{65008,57423,0},{65004,57428,0}, {64993,57441,0},{64971,57449,0},{64959,57448,0},{64951,57444,0},{64949,57438,0}, {64951,57431,0},{64956,57426,0},{64953,57424,0},{64951,57421,0},{64946,57418,0}, {64936,57418,0},{64928,57423,0},{64924,57426,0},{64916,57443,0},{64904,57458,0}, {64893,57484,0},{64881,57504,0},{64873,57523,0},{64859,57538,0},{64848,57543,0}, {64841,57549,0},{64838,57554,0},{64828,57563,0},{64824,57564,0},{64818,57564,0}, {64809,57573,0},{64796,57578,0},{64793,57576,0},{64789,57578,0},{64778,57586,0}, {64769,57591,0},{64766,57591,0},{64764,57589,0},{64761,57593,0},{64744,57604,0}, {64733,57619,0},{64728,57623,0},{64714,57636,0},{64708,57638,0},{64699,57644,0}, {64694,57644,0},{64693,57641,0},{64686,57651,0},{64678,57659,0},{64668,57661,0}, {64661,57659,0},{64658,57659,0},{64644,57669,0},{64639,57669,0},{64638,57668,0}, {64636,57671,0},{64629,57671,0},{64628,57676,0},{64624,57679,0},{64621,57678,0}, {64619,57674,0},{64616,57676,0},{64613,57676,0},{64613,57678,0},{64618,57679,0}, {64618,57684,0},{64613,57684,0},{64609,57683,0},{64603,57686,0},{64603,57691,0}, {64594,57693,0},{64593,57696,0},{64589,57694,0},{64574,57698,0},{64568,57703,0}, {64556,57711,0},{64549,57709,0},{64546,57713,0},{64541,57711,0},{64538,57714,0}, {64529,57718,0},{64524,57716,0},{64513,57724,0},{64509,57726,0},{64508,57729,0}, {64503,57729,0},{64499,57734,0},{64488,57739,0},{64481,57744,0},{64471,57749,0}, {64461,57758,0},{64454,57759,0},{64451,57764,0},{64448,57764,0},{64443,57768,0}, {64441,57768,0},{64438,57769,0},{64434,57768,0},{64431,57771,0},{64426,57771,0}, {64426,57773,0},{64423,57773,0},{64418,57774,0},{64414,57774,0},{64414,57771,0}, {64413,57769,0},{64406,57771,0},{64391,57799,0},{64384,57806,0},{64381,57808,0}, {64378,57808,0},{64369,57816,0},{64363,57819,0},{64359,57816,0},{64353,57818,0}, {64348,57821,0},{64339,57821,0},{64333,57821,0},{64329,57818,0},{64328,57824,0}, {64324,57829,0},{64321,57833,0},{64318,57831,0},{64314,57833,0},{64309,57844,0}, {64298,57856,0},{64293,57858,0},{64288,57856,0},{64284,57856,0},{64283,57861,0}, {64276,57864,0},{64274,57868,0},{64269,57868,0},{64259,57874,0},{64251,57883,0}, {64231,57886,0},{64208,57908,0},{64193,57916,0},{64189,57918,0},{64173,57916,0}, {64151,57909,0},{64153,57906,0},{64156,57906,0},{64156,57904,0},{64154,57899,0}, {64148,57896,0},{64146,57896,0},{64144,57899,0},{64144,57904,0},{64146,57906,0}, {64133,57908,0},{64129,57908,0},{64126,57906,0},{64119,57908,0},{64118,57909,0}, {64121,57909,0},{64119,57916,0},{64114,57918,0},{64113,57923,0},{64104,57924,0}, {64103,57921,0},{64099,57924,0},{64098,57928,0},{64093,57931,0},{64089,57938,0}, {64083,57936,0},{64079,57941,0},{64069,57943,0},{64068,57949,0},{64064,57951,0}, {64059,57958,0},{64046,57983,0},{64043,57986,0},{64039,57986,0},{64034,57993,0}, {64023,57998,0},{64021,57999,0},{64021,58006,0},{64018,58009,0},{64013,58014,0}, {64009,58009,0},{64008,58013,0},{64006,58018,0},{64004,58021,0},{64003,58019,0}, {64001,58016,0},{63999,58016,0},{63996,58021,0},{63994,58026,0},{63989,58031,0}, {63991,58034,0},{63989,58036,0},{63986,58038,0},{63986,58044,0},{63979,58051,0}, {63976,58063,0},{63971,58069,0},{63964,58088,0},{63956,58093,0},{63951,58101,0}, {63951,58108,0},{63948,58111,0},{63946,58119,0},{63941,58131,0},{63934,58133,0}, {63933,58138,0},{63919,58153,0},{63918,58161,0},{63913,58166,0},{63913,58174,0}, {63908,58193,0},{63903,58204,0},{63896,58206,0},{63894,58213,0},{63896,58216,0}, {63894,58218,0},{63891,58223,0},{63883,58239,0},{63881,58246,0},{63873,58258,0}, {63871,58263,0},{63869,58276,0},{63868,58286,0},{63861,58294,0},{63859,58299,0}, {63853,58306,0},{63848,58306,0},{63846,58313,0},{63841,58319,0},{63838,58323,0}, {63834,58324,0},{63833,58331,0},{63831,58338,0},{63826,58344,0},{63821,58348,0}, {63818,58353,0},{63814,58369,0},{63808,58378,0},{63808,58383,0},{63806,58386,0}, {63803,58388,0},{63796,58396,0},{63773,58401,0},{63766,58398,0},{63764,58406,0}, {63759,58416,0},{63756,58419,0},{63751,58426,0},{63749,58428,0},{63748,58434,0}, {63744,58441,0},{63741,58444,0},{63733,58449,0},{63733,58454,0},{63726,58463,0}, {63716,58471,0},{63711,58484,0},{63701,58496,0},{63693,58504,0},{63691,58503,0}, {63686,58504,0},{63673,58501,0},{63669,58503,0},{63666,58501,0},{63663,58503,0}, {63658,58501,0},{63648,58504,0},{63634,58504,0},{63623,58509,0},{63606,58508,0}, {63604,58509,0},{63601,58509,0},{63596,58514,0},{63586,58516,0},{63583,58516,0}, {63578,58516,0},{63578,58513,0},{63573,58518,0},{63569,58519,0},{63568,58519,0}, {63564,58521,0},{63559,58521,0},{63556,58519,0},{63549,58523,0},{63548,58521,0}, {63541,58523,0},{63538,58524,0},{63531,58523,0},{63528,58523,0},{63521,58521,0}, {63518,58521,0},{63516,58519,0},{63509,58523,0},{63504,58521,0},{63499,58518,0}, {63496,58519,0},{63491,58519,0},{63488,58519,0},{63483,58516,0},{63471,58518,0}, {63466,58516,0},{63458,58516,0},{63456,58514,0},{63448,58523,0},{63443,58523,0}, {63434,58519,0},{63428,58524,0},{63424,58523,0},{63414,58528,0},{63406,58529,0}, {63403,58526,0},{63393,58531,0},{63388,58528,0},{63384,58529,0},{63383,58528,0}, {63378,58528,0},{63374,58521,0},{63369,58521,0},{63351,58521,0},{63348,58519,0}, {63348,58516,0},{63341,58519,0},{63336,58516,0},{63329,58518,0},{63328,58516,0}, {63321,58514,0},{63308,58513,0},{63303,58511,0},{63298,58513,0},{63291,58509,0}, {63288,58511,0},{63279,58508,0},{63274,58509,0},{63273,58508,0},{63266,58508,0}, {63261,58506,0},{63256,58504,0},{63246,58508,0},{63241,58503,0},{63234,58503,0}, {63229,58498,0},{63228,58489,0},{63229,58486,0},{63234,58486,0},{63234,58484,0}, {63229,58478,0},{63219,58481,0},{63214,58476,0},{63209,58476,0},{63206,58478,0}, {63198,58476,0},{63194,58478,0},{63191,58474,0},{63186,58474,0},{63188,58476,0}, {63186,58478,0},{63184,58481,0},{63186,58483,0},{63191,58484,0},{63191,58488,0}, {63186,58494,0},{63176,58498,0},{63166,58493,0},{63158,58486,0},{63153,58488,0}, {63149,58484,0},{63146,58486,0},{63136,58484,0},{63131,58486,0},{63119,58486,0}, {63104,58481,0},{63101,58483,0},{63098,58481,0},{63088,58481,0},{63083,58478,0}, {63074,58481,0},{63064,58478,0},{63059,58481,0},{63046,58483,0},{63036,58489,0}, {63026,58486,0},{63023,58489,0},{63016,58493,0},{63001,58491,0},{62998,58488,0}, {62998,58484,0},{62988,58481,0},{62986,58478,0},{62986,58474,0},{62983,58471,0}, {62979,58473,0},{62973,58471,0},{62969,58468,0},{62964,58466,0},{62961,58466,0}, {62956,58463,0},{62951,58466,0},{62948,58466,0},{62943,58471,0},{62936,58473,0}, {62933,58473,0},{62929,58469,0},{62919,58469,0},{62916,58469,0},{62911,58471,0}, {62908,58469,0},{62906,58473,0},{62904,58473,0},{62898,58466,0},{62893,58468,0}, {62886,58466,0},{62883,58468,0},{62878,58466,0},{62868,58463,0},{62864,58461,0}, {62861,58461,0},{62849,58454,0},{62836,58458,0},{62834,58454,0},{62831,58454,0}, {62831,58451,0},{62823,58448,0},{62823,58446,0},{62826,58443,0},{62823,58441,0}, {62818,58439,0},{62814,58441,0},{62811,58441,0},{62806,58443,0},{62803,58443,0}, {62799,58441,0},{62788,58448,0},{62781,58444,0},{62774,58444,0},{62769,58441,0}, {62768,58436,0},{62771,58433,0},{62769,58433,0},{62764,58431,0},{62758,58428,0}, {62754,58428,0},{62751,58426,0},{62749,58426,0},{62746,58424,0},{62741,58423,0}, {62729,58421,0},{62726,58419,0},{62714,58421,0},{62706,58418,0},{62701,58419,0}, {62689,58414,0},{62689,58409,0},{62683,58409,0},{62679,58404,0},{62674,58408,0}, {62668,58406,0},{62663,58399,0},{62656,58398,0},{62649,58386,0},{62639,58384,0}, {62638,58386,0},{62634,58386,0},{62631,58388,0},{62629,58386,0},{62626,58389,0}, {62621,58386,0},{62614,58388,0},{62606,58401,0},{62598,58403,0},{62594,58406,0}, {62581,58403,0},{62574,58408,0},{62571,58404,0},{62563,58403,0},{62556,58404,0}, {62553,58408,0},{62546,58408,0},{62543,58406,0},{62543,58401,0},{62539,58401,0}, {62536,58394,0},{62528,58399,0},{62523,58398,0},{62518,58394,0},{62518,58393,0}, {62519,58393,0},{62516,58389,0},{62513,58388,0},{62513,58384,0},{62509,58386,0}, {62506,58381,0},{62508,58376,0},{62511,58374,0},{62511,58373,0},{62501,58368,0}, {62474,58364,0},{62458,58366,0},{62443,58368,0},{62438,58371,0},{62421,58369,0}, {62384,58379,0},{62376,58379,0},{62358,58384,0},{62351,58381,0},{62348,58386,0}, {62344,58383,0},{62338,58386,0},{62316,58383,0},{62308,58388,0},{62303,58389,0}, {62301,58393,0},{62298,58396,0},{62294,58393,0},{62288,58393,0},{62284,58389,0}, {62271,58391,0},{62266,58389,0},{62264,58384,0},{62259,58386,0},{62258,58381,0}, {62248,58384,0},{62243,58381,0},{62234,58379,0},{62233,58376,0},{62234,58371,0}, {62228,58368,0},{62226,58361,0},{62219,58364,0},{62209,58366,0},{62206,58369,0}, {62201,58369,0},{62198,58366,0},{62193,58364,0},{62183,58374,0},{62179,58371,0}, {62168,58369,0},{62163,58366,0},{62158,58354,0},{62143,58349,0},{62139,58346,0}, {62134,58346,0},{62133,58343,0},{62121,58334,0},{62118,58334,0},{62114,58338,0}, {62099,58338,0},{62096,58333,0},{62094,58331,0},{62084,58333,0},{62083,58331,0}, {62071,58331,0},{62061,58326,0},{62058,58323,0},{62048,58318,0},{62026,58314,0}, {62019,58308,0},{62013,58298,0},{62001,58293,0},{61999,58288,0},{61988,58286,0}, {61978,58271,0},{61976,58271,0},{61963,58278,0},{61956,58278,0},{61954,58276,0}, {61951,58269,0},{61946,58266,0},{61938,58256,0},{61933,58258,0},{61926,58254,0}, {61921,58256,0},{61918,58253,0},{61904,58253,0},{61898,58248,0},{61893,58248,0}, {61889,58244,0},{61883,58243,0},{61884,58239,0},{61883,58238,0},{61879,58236,0}, {61874,58239,0},{61866,58238,0},{61864,58233,0},{61866,58228,0},{61874,58228,0}, {61876,58226,0},{61876,58224,0},{61868,58223,0},{61866,58221,0},{61864,58224,0}, {61863,58223,0},{61861,58221,0},{61863,58219,0},{61859,58216,0},{61854,58221,0}, {61849,58221,0},{61841,58221,0},{61836,58218,0},{61831,58219,0},{61821,58216,0}, {61816,58209,0},{61811,58191,0},{61814,58189,0},{61816,58183,0},{61821,58178,0}, {61818,58173,0},{61808,58171,0},{61803,58168,0},{61799,58169,0},{61794,58176,0}, {61789,58176,0},{61784,58176,0},{61776,58168,0},{61768,58171,0},{61763,58169,0}, {61759,58174,0},{61749,58183,0},{61731,58191,0},{61716,58189,0},{61709,58184,0}, {61704,58186,0},{61703,58184,0},{61698,58183,0},{61683,58184,0},{61658,58193,0}, {61666,58193,0},{61646,58199,0},{61621,58211,0},{61614,58211,0},{61614,58214,0}, {61618,58213,0},{61614,58216,0},{61611,58213,0},{61601,58214,0},{61598,58211,0}, {61594,58214,0},{61591,58211,0},{61588,58211,0},{61571,58201,0},{61569,58201,0}, {61569,58198,0},{61566,58196,0},{61563,58198,0},{61556,58196,0},{61549,58199,0}, {61544,58198,0},{61544,58196,0},{61553,58194,0},{61553,58193,0},{61553,58189,0}, {61548,58184,0},{61544,58176,0},{61543,58176,0},{61543,58169,0},{61538,58164,0}, {61533,58169,0},{61524,58171,0},{61524,58169,0},{61523,58166,0},{61518,58163,0}, {61514,58164,0},{61511,58161,0},{61494,58159,0},{61494,58158,0},{61484,58161,0}, {61478,58158,0},{61474,58153,0},{61473,58151,0},{61468,58151,0},{61461,58146,0}, {61454,58144,0},{61449,58141,0},{61448,58146,0},{61446,58146,0},{61443,58141,0}, {61439,58136,0},{61424,58138,0},{61406,58149,0},{61396,58151,0},{61389,58149,0}, {61384,58154,0},{61379,58154,0},{61379,58159,0},{61376,58164,0},{61376,58176,0}, {61378,58181,0},{61379,58181,0},{61384,58186,0},{61374,58179,0},{61374,58168,0}, {61371,58168,0},{61368,58163,0},{61361,58161,0},{61359,58178,0},{61356,58184,0}, {61358,58191,0},{61356,58194,0},{61358,58194,0},{61359,58196,0},{61356,58216,0}, {61361,58219,0},{61361,58223,0},{61366,58226,0},{61366,58231,0},{61378,58226,0}, {61379,58231,0},{61384,58231,0},{61388,58241,0},{61384,58248,0},{61386,58253,0}, {61381,58261,0},{61376,58264,0},{61374,58268,0},{61369,58268,0},{61366,58273,0}, {61366,58279,0},{61368,58283,0},{61368,58288,0},{61369,58294,0},{61374,58298,0}, {61391,58301,0},{61394,58304,0},{61398,58301,0},{61399,58303,0},{61398,58306,0}, {61388,58303,0},{61384,58306,0},{61381,58304,0},{61374,58303,0},{61371,58306,0}, {61371,58299,0},{61368,58296,0},{61364,58288,0},{61363,58278,0},{61363,58269,0}, {61344,58248,0},{61341,58253,0},{61338,58254,0},{61334,58264,0},{61336,58268,0}, {61334,58269,0},{61334,58274,0},{61333,58276,0},{61333,58279,0},{61339,58283,0}, {61339,58289,0},{61324,58288,0},{61321,58288,0},{61321,58294,0},{61319,58289,0}, {61314,58288,0},{61311,58289,0},{61311,58294,0},{61309,58289,0},{61306,58288,0}, {61299,58293,0},{61291,58294,0},{61289,58293,0},{61291,58291,0},{61309,58281,0}, {61313,58281,0},{61318,58276,0},{61314,58266,0},{61314,58261,0},{61306,58251,0}, {61306,58253,0},{61306,58256,0},{61298,58259,0},{61296,58264,0},{61293,58264,0}, {61288,58268,0},{61284,58279,0},{61279,58283,0},{61281,58278,0},{61286,58268,0}, {61286,58258,0},{61286,58254,0},{61279,58251,0},{61274,58249,0},{61268,58254,0}, {61266,58249,0},{61259,58249,0},{61251,58253,0},{61244,58263,0},{61234,58259,0}, {61228,58263,0},{61229,58258,0},{61234,58256,0},{61236,58253,0},{61233,58249,0}, {61228,58244,0},{61223,58243,0},{61213,58246,0},{61206,58228,0},{61196,58228,0}, {61193,58224,0},{61178,58233,0},{61176,58239,0},{61178,58244,0},{61174,58246,0}, {61174,58239,0},{61168,58236,0},{61166,58231,0},{61163,58231,0},{61163,58236,0}, {61159,58239,0},{61161,58243,0},{61161,58248,0},{61163,58249,0},{61168,58251,0}, {61163,58251,0},{61158,58251,0},{61154,58254,0},{61154,58251,0},{61158,58248,0}, {61154,58239,0},{61154,58238,0},{61159,58236,0},{61154,58234,0},{61148,58229,0}, {61144,58229,0},{61143,58226,0},{61138,58223,0},{61133,58223,0},{61126,58224,0}, {61128,58221,0},{61129,58218,0},{61129,58214,0},{61126,58214,0},{61123,58214,0}, {61126,58209,0},{61123,58208,0},{61118,58208,0},{61116,58214,0},{61118,58219,0}, {61121,58224,0},{61119,58226,0},{61114,58223,0},{61114,58219,0},{61111,58218,0}, {61104,58243,0},{61099,58243,0},{61096,58251,0},{61093,58254,0},{61091,58261,0}, {61086,58264,0},{61086,58266,0},{61094,58269,0},{61096,58273,0},{61101,58278,0}, {61091,58274,0},{61086,58276,0},{61081,58268,0},{61073,58266,0},{61069,58263,0}, {61063,58266,0},{61059,58263,0},{61059,58258,0},{61049,58243,0},{61049,58236,0}, {61041,58224,0},{61039,58213,0},{61041,58203,0},{61038,58198,0},{61033,58196,0}, {61028,58199,0},{61028,58203,0},{61024,58203,0},{61021,58206,0},{61016,58201,0}, {61016,58191,0},{61011,58189,0},{61008,58191,0},{61006,58201,0},{61008,58204,0}, {61011,58209,0},{61008,58218,0},{60998,58231,0},{60994,58241,0},{60998,58248,0}, {60996,58251,0},{60994,58253,0},{60993,58251,0},{60989,58251,0},{60989,58249,0}, {60991,58234,0},{60994,58233,0},{60994,58228,0},{61001,58218,0},{61004,58218,0}, {61006,58214,0},{61003,58204,0},{60996,58204,0},{60999,58201,0},{60998,58196,0}, {60991,58194,0},{60994,58193,0},{60991,58184,0},{60958,58178,0},{60964,58189,0}, {60969,58193,0},{60974,58203,0},{60971,58206,0},{60969,58218,0},{60968,58213,0}, {60968,58198,0},{60966,58194,0},{60953,58179,0},{60949,58181,0},{60948,58184,0}, {60948,58178,0},{60943,58174,0},{60941,58176,0},{60939,58169,0},{60934,58171,0}, {60931,58171,0},{60928,58174,0},{60916,58171,0},{60914,58173,0},{60914,58171,0}, {60911,58168,0},{60904,58168,0},{60908,58173,0},{60911,58176,0},{60914,58174,0}, {60928,58191,0},{60933,58193,0},{60934,58198,0},{60933,58201,0},{60929,58194,0}, {60921,58188,0},{60918,58183,0},{60908,58179,0},{60906,58181,0},{60906,58188,0}, {60903,58174,0},{60894,58161,0},{60889,58159,0},{60883,58163,0},{60886,58158,0}, {60883,58156,0},{60878,58153,0},{60876,58148,0},{60876,58144,0},{60881,58136,0}, {60898,58154,0},{60906,58159,0},{60913,58159,0},{60916,58151,0},{60923,58148,0}, {60921,58139,0},{60914,58134,0},{60914,58139,0},{60909,58141,0},{60904,58149,0}, {60901,58151,0},{60908,58134,0},{60904,58129,0},{60909,58133,0},{60911,58133,0}, {60913,58129,0},{60916,58131,0},{60911,58118,0},{60909,58103,0},{60918,58086,0}, {60919,58088,0},{60914,58094,0},{60911,58103,0},{60913,58116,0},{60918,58128,0}, {60924,58136,0},{60931,58139,0},{60938,58131,0},{60936,58129,0},{60926,58129,0}, {60923,58123,0},{60923,58119,0},{60926,58124,0},{60933,58128,0},{60934,58126,0}, {60934,58119,0},{60938,58128,0},{60941,58131,0},{60944,58129,0},{60943,58121,0}, {60946,58124,0},{60948,58116,0},{60951,58126,0},{60956,58119,0},{60954,58109,0}, {60953,58104,0},{60956,58101,0},{60954,58094,0},{60956,58091,0},{60951,58093,0}, {60951,58089,0},{60943,58096,0},{60933,58089,0},{60934,58088,0},{60943,58091,0}, {60944,58089,0},{60943,58084,0},{60946,58084,0},{60946,58081,0},{60951,58083,0}, {60954,58079,0},{60951,58076,0},{60953,58073,0},{60954,58069,0},{60944,58064,0}, {60936,58064,0},{60934,58063,0},{60933,58066,0},{60933,58059,0},{60924,58054,0}, {60921,58054,0},{60918,58061,0},{60918,58058,0},{60914,58058,0},{60921,58049,0}, {60921,58046,0},{60913,58039,0},{60908,58043,0},{60914,58033,0},{60914,58026,0}, {60911,58024,0},{60909,58026,0},{60908,58024,0},{60906,58021,0},{60903,58024,0}, {60901,58033,0},{60901,58026,0},{60906,58016,0},{60894,58014,0},{60899,58011,0}, {60899,58009,0},{60893,57996,0},{60888,57998,0},{60888,57993,0},{60884,57989,0}, {60884,57983,0},{60883,57981,0},{60881,57984,0},{60879,57979,0},{60879,57973,0}, {60876,57971,0},{60873,57966,0},{60858,57964,0},{60854,57969,0},{60849,57971,0}, {60844,57978,0},{60843,57978,0},{60841,57986,0},{60846,58001,0},{60849,58001,0}, {60851,57999,0},{60849,57993,0},{60853,57996,0},{60858,57998,0},{60858,57996,0}, {60858,57993,0},{60858,57989,0},{60861,57991,0},{60863,57991,0},{60863,57994,0}, {60866,57993,0},{60866,57981,0},{60861,57978,0},{60858,57973,0},{60858,57971,0}, {60859,57971,0},{60863,57976,0},{60866,57976,0},{60871,57991,0},{60873,57994,0}, {60871,57996,0},{60869,58001,0},{60873,58003,0},{60873,58011,0},{60876,58014,0}, {60873,58016,0},{60873,58018,0},{60879,58028,0},{60884,58031,0},{60886,58038,0}, {60893,58043,0},{60884,58043,0},{60881,58036,0},{60878,58034,0},{60876,58029,0}, {60873,58028,0},{60861,58034,0},{60858,58046,0},{60854,58051,0},{60859,58053,0}, {60859,58054,0},{60856,58056,0},{60851,58064,0},{60848,58068,0},{60848,58076,0}, {60846,58079,0},{60846,58089,0},{60849,58093,0},{60849,58086,0},{60853,58081,0}, {60851,58069,0},{60853,58071,0},{60856,58071,0},{60856,58084,0},{60858,58088,0}, {60863,58078,0},{60859,58093,0},{60858,58109,0},{60856,58109,0},{60854,58108,0}, {60853,58111,0},{60849,58111,0},{60853,58123,0},{60849,58121,0},{60848,58116,0}, {60846,58114,0},{60838,58123,0},{60839,58131,0},{60838,58134,0},{60833,58143,0}, {60819,58131,0},{60819,58138,0},{60811,58139,0},{60811,58138,0},{60818,58133,0}, {60816,58131,0},{60818,58128,0},{60816,58124,0},{60811,58123,0},{60801,58126,0}, {60808,58119,0},{60814,58119,0},{60814,58113,0},{60811,58113,0},{60814,58108,0}, {60811,58108,0},{60814,58104,0},{60811,58103,0},{60806,58099,0},{60804,58094,0}, {60801,58094,0},{60799,58089,0},{60793,58083,0},{60789,58086,0},{60791,58089,0}, {60794,58089,0},{60791,58091,0},{60791,58098,0},{60789,58096,0},{60789,58091,0}, {60788,58091,0},{60781,58098,0},{60783,58103,0},{60781,58101,0},{60776,58104,0}, {60778,58113,0},{60776,58119,0},{60783,58131,0},{60776,58123,0},{60774,58133,0}, {60773,58126,0},{60774,58119,0},{60773,58109,0},{60771,58111,0},{60769,58123,0}, {60769,58119,0},{60769,58108,0},{60768,58106,0},{60764,58108,0},{60761,58114,0}, {60761,58119,0},{60761,58118,0},{60761,58111,0},{60763,58106,0},{60769,58103,0}, {60766,58088,0},{60769,58091,0},{60771,58101,0},{60776,58099,0},{60776,58098,0}, {60774,58096,0},{60778,58094,0},{60779,58094,0},{60781,58089,0},{60781,58088,0}, {60774,58086,0},{60781,58083,0},{60779,58076,0},{60774,58073,0},{60769,58081,0}, {60766,58078,0},{60769,58078,0},{60771,58073,0},{60771,58068,0},{60764,58063,0}, {60761,58064,0},{60759,58073,0},{60759,58083,0},{60758,58083,0},{60761,58098,0}, {60761,58103,0},{60759,58103,0},{60759,58096,0},{60758,58099,0},{60758,58104,0}, {60759,58106,0},{60756,58114,0},{60759,58129,0},{60756,58133,0},{60753,58133,0}, {60751,58143,0},{60758,58158,0},{60764,58158,0},{60771,58163,0},{60774,58163,0}, {60776,58159,0},{60783,58164,0},{60781,58164,0},{60779,58169,0},{60778,58166,0}, {60773,58166,0},{60773,58171,0},{60764,58163,0},{60758,58166,0},{60756,58181,0}, {60749,58174,0},{60748,58179,0},{60749,58183,0},{60748,58186,0},{60743,58183,0}, {60741,58184,0},{60739,58189,0},{60739,58203,0},{60736,58214,0},{60738,58201,0}, {60736,58193,0},{60738,58186,0},{60741,58181,0},{60744,58179,0},{60746,58173,0}, {60744,58171,0},{60739,58173,0},{60738,58171,0},{60736,58178,0},{60731,58178,0}, {60724,58188,0},{60719,58198,0},{60723,58206,0},{60729,58208,0},{60728,58209,0}, {60721,58208,0},{60718,58201,0},{60714,58201,0},{60718,58194,0},{60718,58189,0}, {60718,58186,0},{60716,58183,0},{60711,58181,0},{60714,58178,0},{60714,58176,0}, {60721,58178,0},{60724,58174,0},{60728,58159,0},{60724,58156,0},{60731,58161,0}, {60733,58159,0},{60726,58149,0},{60731,58151,0},{60733,58148,0},{60731,58141,0}, {60734,58134,0},{60733,58134,0},{60733,58133,0},{60736,58129,0},{60736,58104,0}, {60734,58103,0},{60733,58104,0},{60724,58111,0},{60721,58114,0},{60719,58113,0}, {60716,58116,0},{60714,58118,0},{60714,58121,0},{60713,58114,0},{60718,58111,0}, {60716,58109,0},{60731,58103,0},{60738,58094,0},{60738,58089,0},{60741,58084,0}, {60738,58079,0},{60736,58073,0},{60734,58071,0},{60729,58071,0},{60728,58076,0}, {60728,58081,0},{60733,58089,0},{60731,58089,0},{60728,58084,0},{60723,58088,0}, {60716,58094,0},{60714,58104,0},{60713,58104,0},{60708,58109,0},{60703,58109,0}, {60706,58119,0},{60704,58128,0},{60703,58116,0},{60701,58113,0},{60699,58121,0}, {60696,58124,0},{60696,58131,0},{60694,58134,0},{60696,58146,0},{60694,58146,0}, {60691,58133,0},{60683,58133,0},{60679,58139,0},{60676,58138,0},{60676,58134,0}, {60681,58131,0},{60688,58116,0},{60684,58109,0},{60683,58109,0},{60681,58104,0}, {60674,58096,0},{60673,58099,0},{60668,58099,0},{60668,58103,0},{60669,58104,0}, {60668,58108,0},{60666,58103,0},{60663,58104,0},{60666,58118,0},{60664,58128,0}, {60663,58131,0},{60664,58114,0},{60661,58106,0},{60661,58103,0},{60659,58103,0}, {60663,58099,0},{60663,58098,0},{60659,58096,0},{60656,58093,0},{60651,58091,0}, {60649,58094,0},{60648,58093,0},{60646,58093,0},{60643,58099,0},{60643,58094,0}, {60638,58096,0},{60633,58089,0},{60628,58091,0},{60628,58096,0},{60623,58094,0}, {60618,58099,0},{60616,58094,0},{60604,58098,0},{60598,58094,0},{60594,58096,0}, {60594,58101,0},{60584,58109,0},{60583,58113,0},{60586,58118,0},{60594,58118,0}, {60598,58119,0},{60609,58121,0},{60614,58118,0},{60614,58121,0},{60613,58124,0}, {60614,58128,0},{60621,58133,0},{60624,58131,0},{60628,58131,0},{60633,58129,0}, {60634,58131,0},{60636,58144,0},{60633,58153,0},{60631,58153,0},{60634,58144,0}, {60633,58141,0},{60629,58136,0},{60628,58133,0},{60619,58139,0},{60613,58136,0}, {60609,58136,0},{60604,58143,0},{60601,58151,0},{60601,58146,0},{60603,58139,0}, {60608,58136,0},{60609,58131,0},{60608,58128,0},{60601,58126,0},{60594,58124,0}, {60588,58124,0},{60584,58136,0},{60584,58148,0},{60571,58151,0},{60569,58159,0}, {60566,58161,0},{60563,58168,0},{60558,58164,0},{60563,58161,0},{60568,58154,0}, {60569,58148,0},{60581,58141,0},{60579,58136,0},{60574,58133,0},{60579,58134,0}, {60583,58128,0},{60579,58119,0},{60579,58111,0},{60574,58104,0},{60571,58103,0}, {60561,58106,0},{60564,58129,0},{60561,58129,0},{60561,58116,0},{60559,58111,0}, {60556,58108,0},{60556,58101,0},{60548,58106,0},{60546,58109,0},{60546,58118,0}, {60544,58123,0},{60541,58124,0},{60539,58129,0},{60541,58136,0},{60544,58138,0}, {60546,58143,0},{60549,58146,0},{60544,58144,0},{60544,58148,0},{60543,58139,0}, {60536,58136,0},{60534,58138,0},{60534,58146,0},{60528,58148,0},{60529,58146,0}, {60533,58143,0},{60533,58129,0},{60536,58126,0},{60534,58121,0},{60539,58118,0}, {60543,58109,0},{60541,58106,0},{60543,58103,0},{60543,58101,0},{60538,58099,0}, {60528,58108,0},{60528,58111,0},{60524,58114,0},{60519,58114,0},{60516,58118,0}, {60514,58121,0},{60516,58126,0},{60514,58131,0},{60516,58136,0},{60514,58136,0}, {60514,58133,0},{60513,58134,0},{60508,58149,0},{60506,58149,0},{60508,58139,0}, {60513,58126,0},{60513,58121,0},{60509,58118,0},{60511,58116,0},{60514,58116,0}, {60516,58113,0},{60519,58109,0},{60519,58103,0},{60523,58106,0},{60528,58101,0}, {60526,58091,0},{60528,58089,0},{60528,58086,0},{60524,58086,0},{60521,58084,0}, {60526,58083,0},{60526,58078,0},{60519,58068,0},{60516,58066,0},{60514,58069,0}, {60516,58076,0},{60513,58074,0},{60511,58076,0},{60514,58084,0},{60509,58081,0}, {60511,58088,0},{60506,58083,0},{60504,58086,0},{60503,58091,0},{60501,58089,0}, {60499,58096,0},{60499,58101,0},{60509,58104,0},{60509,58108,0},{60504,58109,0}, {60496,58104,0},{60493,58108,0},{60493,58113,0},{60496,58114,0},{60496,58126,0}, {60499,58128,0},{60499,58134,0},{60498,58129,0},{60493,58124,0},{60488,58129,0}, {60491,58134,0},{60486,58136,0},{60483,58148,0},{60481,58148,0},{60483,58133,0}, {60488,58123,0},{60486,58119,0},{60484,58123,0},{60483,58121,0},{60478,58126,0}, {60478,58123,0},{60481,58121,0},{60489,58114,0},{60488,58106,0},{60483,58111,0}, {60481,58116,0},{60474,58113,0},{60463,58121,0},{60464,58124,0},{60468,58124,0}, {60464,58129,0},{60463,58129,0},{60461,58126,0},{60459,58124,0},{60453,58131,0}, {60453,58143,0},{60456,58146,0},{60459,58154,0},{60468,58153,0},{60471,58156,0}, {60483,58159,0},{60486,58163,0},{60488,58171,0},{60496,58178,0},{60496,58179,0}, {60488,58176,0},{60483,58164,0},{60479,58164,0},{60474,58171,0},{60473,58179,0}, {60471,58183,0},{60469,58189,0},{60469,58183,0},{60464,58183,0},{60466,58179,0}, {60469,58178,0},{60471,58173,0},{60469,58161,0},{60468,58158,0},{60463,58159,0}, {60456,58158,0},{60453,58163,0},{60454,58158,0},{60456,58154,0},{60453,58148,0}, {60449,58153,0},{60444,58158,0},{60439,58156,0},{60443,58151,0},{60444,58151,0}, {60449,58144,0},{60446,58141,0},{60449,58121,0},{60446,58114,0},{60443,58111,0}, {60441,58114,0},{60433,58113,0},{60431,58116,0},{60431,58118,0},{60439,58124,0}, {60441,58129,0},{60436,58128,0},{60429,58121,0},{60426,58124,0},{60418,58123,0}, {60416,58128,0},{60416,58134,0},{60426,58134,0},{60418,58138,0},{60411,58146,0}, {60419,58161,0},{60424,58159,0},{60421,58163,0},{60423,58166,0},{60418,58164,0}, {60416,58166,0},{60418,58169,0},{60414,58166,0},{60409,58168,0},{60416,58163,0}, {60414,58158,0},{60413,58158,0},{60408,58164,0},{60403,58163,0},{60394,58168,0}, {60391,58171,0},{60393,58178,0},{60391,58176,0},{60389,58171,0},{60388,58169,0}, {60384,58171,0},{60384,58176,0},{60383,58173,0},{60374,58176,0},{60373,58174,0}, {60374,58173,0},{60389,58164,0},{60391,58159,0},{60396,58154,0},{60396,58151,0}, {60399,58146,0},{60396,58143,0},{60388,58146,0},{60384,58144,0},{60383,58148,0}, {60383,58154,0},{60378,58146,0},{60374,58146,0},{60371,58159,0},{60373,58164,0}, {60368,58154,0},{60366,58156,0},{60364,58159,0},{60358,58166,0},{60368,58171,0}, {60364,58176,0},{60368,58181,0},{60364,58181,0},{60368,58189,0},{60363,58184,0}, {60361,58176,0},{60358,58179,0},{60356,58184,0},{60353,58183,0},{60351,58188,0}, {60348,58186,0},{60346,58191,0},{60344,58188,0},{60334,58196,0},{60334,58193,0}, {60339,58189,0},{60341,58186,0},{60346,58183,0},{60351,58178,0},{60354,58176,0}, {60354,58173,0},{60353,58171,0},{60343,58178,0},{60341,58174,0},{60339,58179,0}, {60334,58178,0},{60331,58181,0},{60326,58194,0},{60323,58198,0},{60319,58204,0}, {60319,58208,0},{60323,58208,0},{60331,58206,0},{60361,58203,0},{60371,58198,0}, {60364,58204,0},{60346,58206,0},{60338,58209,0},{60333,58209,0},{60328,58213,0}, {60328,58219,0},{60339,58221,0},{60343,58223,0},{60349,58244,0},{60354,58239,0}, {60349,58229,0},{60346,58218,0},{60349,58216,0},{60351,58228,0},{60353,58231,0}, {60359,58229,0},{60359,58223,0},{60361,58224,0},{60361,58231,0},{60358,58234,0}, {60358,58236,0},{60364,58228,0},{60363,58223,0},{60364,58214,0},{60371,58213,0}, {60374,58206,0},{60374,58208,0},{60374,58213,0},{60373,58213,0},{60373,58218,0}, {60368,58218,0},{60366,58219,0},{60366,58231,0},{60363,58238,0},{60359,58238,0}, {60359,58239,0},{60361,58244,0},{60358,58248,0},{60359,58253,0},{60354,58258,0}, {60354,58263,0},{60353,58264,0},{60353,58273,0},{60358,58279,0},{60363,58281,0}, {60366,58264,0},{60374,58261,0},{60376,58256,0},{60376,58249,0},{60383,58238,0}, {60376,58228,0},{60376,58224,0},{60383,58233,0},{60384,58231,0},{60388,58221,0}, {60384,58214,0},{60386,58209,0},{60388,58209,0},{60389,58211,0},{60391,58223,0}, {60394,58228,0},{60391,58228,0},{60388,58231,0},{60386,58241,0},{60381,58244,0}, {60379,58253,0},{60378,58263,0},{60374,58269,0},{60369,58274,0},{60363,58286,0}, {60358,58289,0},{60351,58284,0},{60344,58291,0},{60343,58289,0},{60341,58284,0}, {60341,58278,0},{60338,58276,0},{60341,58273,0},{60339,58269,0},{60331,58271,0}, {60316,58289,0},{60304,58286,0},{60296,58273,0},{60294,58276,0},{60293,58286,0}, {60291,58286,0},{60289,58281,0},{60293,58276,0},{60296,58264,0},{60289,58246,0}, {60291,58243,0},{60294,58254,0},{60298,58254,0},{60296,58258,0},{60299,58258,0}, {60298,58263,0},{60303,58268,0},{60301,58273,0},{60301,58276,0},{60304,58279,0}, {60308,58279,0},{60314,58283,0},{60326,58276,0},{60324,58271,0},{60329,58264,0}, {60338,58266,0},{60341,58258,0},{60339,58249,0},{60329,58246,0},{60331,58243,0}, {60329,58241,0},{60318,58243,0},{60316,58248,0},{60328,58254,0},{60331,58259,0}, {60329,58261,0},{60328,58261,0},{60323,58256,0},{60313,58253,0},{60309,58249,0}, {60311,58244,0},{60314,58244,0},{60318,58238,0},{60316,58233,0},{60313,58229,0}, {60313,58228,0},{60321,58233,0},{60321,58238,0},{60329,58238,0},{60328,58226,0}, {60323,58223,0},{60324,58219,0},{60324,58214,0},{60316,58213,0},{60314,58204,0}, {60323,58186,0},{60321,58184,0},{60319,58189,0},{60316,58183,0},{60321,58179,0}, {60321,58174,0},{60326,58173,0},{60333,58168,0},{60333,58163,0},{60326,58164,0}, {60319,58173,0},{60316,58173,0},{60316,58178,0},{60314,58179,0},{60308,58174,0}, {60303,58179,0},{60298,58176,0},{60299,58173,0},{60298,58171,0},{60294,58169,0}, {60291,58178,0},{60294,58183,0},{60294,58184,0},{60289,58183,0},{60288,58186,0}, {60288,58179,0},{60286,58179,0},{60284,58174,0},{60283,58181,0},{60279,58181,0}, {60281,58178,0},{60279,58174,0},{60279,58173,0},{60278,58173,0},{60276,58168,0}, {60271,58169,0},{60273,58179,0},{60269,58176,0},{60268,58169,0},{60263,58168,0}, {60263,58171,0},{60261,58174,0},{60263,58174,0},{60263,58176,0},{60268,58181,0}, {60268,58186,0},{60271,58186,0},{60269,58189,0},{60273,58191,0},{60273,58196,0}, {60281,58196,0},{60276,58201,0},{60278,58206,0},{60271,58203,0},{60269,58204,0}, {60269,58209,0},{60273,58213,0},{60279,58219,0},{60286,58218,0},{60288,58213,0}, {60289,58216,0},{60293,58216,0},{60286,58223,0},{60288,58229,0},{60286,58244,0}, {60284,58248,0},{60283,58246,0},{60284,58243,0},{60286,58231,0},{60284,58226,0}, {60283,58224,0},{60279,58236,0},{60279,58223,0},{60271,58221,0},{60271,58214,0}, {60264,58211,0},{60264,58209,0},{60264,58206,0},{60259,58206,0},{60259,58211,0}, {60258,58213,0},{60256,58201,0},{60254,58198,0},{60258,58198,0},{60258,58194,0}, {60254,58189,0},{60258,58189,0},{60256,58179,0},{60254,58181,0},{60253,58188,0}, {60251,58198,0},{60248,58201,0},{60249,58206,0},{60244,58208,0},{60248,58214,0}, {60246,58218,0},{60244,58213,0},{60243,58213,0},{60243,58211,0},{60239,58213,0}, {60243,58204,0},{60239,58203,0},{60239,58199,0},{60236,58201,0},{60238,58196,0}, {60236,58191,0},{60234,58198,0},{60231,58199,0},{60228,58204,0},{60228,58211,0}, {60226,58216,0},{60226,58218,0},{60229,58214,0},{60234,58216,0},{60233,58221,0}, {60229,58218,0},{60226,58223,0},{60229,58233,0},{60231,58234,0},{60229,58238,0}, {60236,58241,0},{60243,58239,0},{60246,58241,0},{60253,58234,0},{60253,58239,0}, {60256,58241,0},{60256,58248,0},{60259,58253,0},{60261,58259,0},{60271,58269,0}, {60273,58266,0},{60274,58256,0},{60278,58254,0},{60274,58249,0},{60264,58239,0}, {60264,58238,0},{60266,58238,0},{60273,58246,0},{60286,58251,0},{60284,58254,0}, {60281,58258,0},{60284,58268,0},{60283,58273,0},{60281,58273,0},{60279,58279,0}, {60284,58284,0},{60286,58298,0},{60283,58296,0},{60283,58288,0},{60278,58281,0}, {60271,58294,0},{60274,58296,0},{60274,58293,0},{60278,58299,0},{60283,58303,0}, {60284,58324,0},{60281,58336,0},{60283,58344,0},{60279,58373,0},{60279,58383,0}, {60273,58389,0},{60273,58381,0},{60268,58371,0},{60268,58358,0},{60268,58346,0}, {60273,58339,0},{60273,58336,0},{60269,58334,0},{60269,58333,0},{60271,58329,0}, {60273,58319,0},{60268,58318,0},{60266,58311,0},{60261,58306,0},{60258,58298,0}, {60254,58294,0},{60249,58293,0},{60251,58291,0},{60256,58288,0},{60253,58276,0}, {60256,58279,0},{60249,58264,0},{60253,58264,0},{60256,58273,0},{60259,58276,0}, {60266,58266,0},{60261,58263,0},{60251,58238,0},{60248,58244,0},{60244,58241,0}, {60238,58244,0},{60233,58244,0},{60234,58249,0},{60226,58243,0},{60221,58251,0}, {60224,58258,0},{60223,58263,0},{60226,58264,0},{60223,58266,0},{60221,58271,0}, {60221,58259,0},{60218,58263,0},{60218,58256,0},{60211,58268,0},{60209,58264,0}, {60206,58266,0},{60208,58259,0},{60213,58261,0},{60216,58249,0},{60216,58244,0}, {60219,58241,0},{60219,58226,0},{60216,58223,0},{60221,58206,0},{60219,58206,0}, {60216,58213,0},{60213,58214,0},{60209,58223,0},{60208,58229,0},{60199,58243,0}, {60199,58248,0},{60198,58249,0},{60198,58256,0},{60191,58258,0},{60196,58259,0}, {60196,58261,0},{60191,58263,0},{60189,58271,0},{60186,58273,0},{60183,58283,0}, {60181,58283,0},{60183,58299,0},{60194,58288,0},{60194,58283,0},{60194,58281,0}, {60196,58278,0},{60199,58273,0},{60204,58271,0},{60199,58276,0},{60199,58281,0}, {60199,58286,0},{60203,58286,0},{60209,58283,0},{60208,58291,0},{60209,58294,0}, {60211,58293,0},{60214,58283,0},{60216,58283,0},{60213,58293,0},{60214,58293,0}, {60218,58288,0},{60213,58301,0},{60214,58304,0},{60216,58304,0},{60218,58299,0}, {60218,58306,0},{60214,58313,0},{60218,58318,0},{60221,58314,0},{60221,58304,0}, {60229,58299,0},{60228,58294,0},{60228,58288,0},{60228,58281,0},{60229,58281,0}, {60231,58298,0},{60229,58309,0},{60233,58306,0},{60231,58314,0},{60229,58318,0}, {60224,58323,0},{60223,58328,0},{60224,58334,0},{60229,58339,0},{60236,58346,0}, {60238,58351,0},{60241,58354,0},{60253,58388,0},{60254,58393,0},{60258,58396,0}, {60263,58396,0},{60258,58401,0},{60256,58418,0},{60251,58424,0},{60248,58423,0}, {60239,58413,0},{60233,58409,0},{60226,58403,0},{60223,58398,0},{60223,58388,0}, {60221,58383,0},{60219,58376,0},{60216,58374,0},{60214,58361,0},{60203,58359,0}, {60191,58361,0},{60184,58356,0},{60181,58343,0},{60179,58338,0},{60179,58336,0}, {60183,58336,0},{60188,58351,0},{60191,58358,0},{60211,58353,0},{60214,58351,0}, {60213,58344,0},{60214,58338,0},{60213,58336,0},{60208,58334,0},{60198,58336,0}, {60196,58331,0},{60194,58328,0},{60191,58318,0},{60193,58313,0},{60194,58321,0}, {60198,58323,0},{60196,58324,0},{60198,58328,0},{60203,58328,0},{60211,58324,0}, {60209,58319,0},{60211,58309,0},{60211,58306,0},{60204,58294,0},{60199,58296,0}, {60196,58291,0},{60183,58301,0},{60183,58306,0},{60178,58308,0},{60174,58316,0}, {60168,58324,0},{60164,58333,0},{60169,58334,0},{60168,58338,0},{60163,58343,0}, {60168,58349,0},{60163,58349,0},{60156,58366,0},{60153,58391,0},{60148,58408,0}, {60153,58431,0},{60159,58438,0},{60168,58438,0},{60171,58441,0},{60176,58443,0}, {60193,58438,0},{60199,58438,0},{60206,58441,0},{60216,58441,0},{60223,58448,0}, {60239,58456,0},{60244,58454,0},{60246,58448,0},{60249,58453,0},{60254,58454,0}, {60258,58463,0},{60258,58456,0},{60261,58456,0},{60263,58451,0},{60264,58451,0}, {60263,58456,0},{60264,58459,0},{60266,58464,0},{60264,58464,0},{60264,58468,0}, {60268,58474,0},{60266,58478,0},{60269,58478,0},{60271,58483,0},{60271,58486,0}, {60266,58481,0},{60266,58484,0},{60273,58503,0},{60271,58514,0},{60278,58519,0}, {60283,58541,0},{60288,58551,0},{60288,58554,0},{60284,58558,0},{60283,58569,0}, {60291,58581,0},{60294,58581,0},{60298,58586,0},{60308,58588,0},{60311,58593,0}, {60316,58609,0},{60316,58614,0},{60314,58624,0},{60311,58633,0},{60308,58643,0}, {60306,58654,0},{60306,58661,0},{60303,58678,0},{60303,58686,0},{60303,58689,0}, {60298,58691,0},{60298,58693,0},{60303,58698,0},{60308,58696,0},{60319,58684,0}, {60334,58668,0},{60348,58656,0},{60363,58648,0},{60374,58638,0},{60373,58631,0}, {60368,58614,0},{60371,58619,0},{60376,58611,0},{60376,58598,0},{60376,58584,0}, {60373,58574,0},{60378,58588,0},{60381,58599,0},{60381,58608,0},{60374,58623,0}, {60379,58631,0},{60379,58639,0},{60386,58639,0},{60419,58623,0},{60431,58621,0}, {60439,58618,0},{60436,58606,0},{60428,58594,0},{60448,58623,0},{60461,58621,0}, {60478,58626,0},{60484,58629,0},{60498,58643,0},{60506,58654,0},{60516,58694,0}, {60521,58699,0},{60523,58699,0},{60529,58684,0},{60536,58681,0},{60538,58678,0}, {60536,58669,0},{60538,58651,0},{60536,58644,0},{60534,58634,0},{60538,58639,0}, {60539,58651,0},{60539,58669,0},{60541,58676,0},{60546,58678,0},{60554,58671,0}, {60559,58671,0},{60563,58663,0},{60559,58671,0},{60554,58673,0},{60544,58683,0}, {60539,58684,0},{60529,58694,0},{60524,58703,0},{60524,58716,0},{60529,58729,0}, {60544,58756,0},{60554,58761,0},{60578,58764,0},{60609,58776,0},{60611,58773,0}, {60609,58771,0},{60598,58764,0},{60596,58754,0},{60598,58753,0},{60599,58756,0}, {60604,58758,0},{60604,58766,0},{60608,58763,0},{60618,58774,0},{60624,58773,0}, {60631,58778,0},{60643,58793,0},{60648,58796,0},{60651,58804,0},{60654,58813,0}, {60668,58823,0},{60673,58828,0},{60678,58843,0},{60679,58853,0},{60691,58869,0}, {60696,58881,0},{60696,58889,0},{60701,58891,0},{60701,58903,0},{60708,58903,0}, {60711,58908,0},{60718,58923,0},{60721,58924,0},{60726,58929,0},{60726,58946,0}, {60731,58941,0},{60734,58943,0},{60739,58939,0},{60741,58944,0},{60739,58953,0}, {60739,58958,0},{60741,58956,0},{60743,58958,0},{60746,58949,0},{60754,58948,0}, {60756,58944,0},{60758,58939,0},{60756,58933,0},{60748,58904,0},{60749,58898,0}, {60749,58903,0},{60749,58908,0},{60753,58918,0},{60754,58924,0},{60759,58934,0}, {60759,58946,0},{60759,58948,0},{60781,58961,0},{60798,58963,0},{60803,58963,0}, {60808,58959,0},{60816,58959,0},{60821,58951,0},{60826,58946,0},{60829,58936,0}, {60826,58926,0},{60828,58919,0},{60826,58914,0},{60828,58903,0},{60829,58899,0}, {60831,58886,0},{60833,58864,0},{60838,58854,0},{60843,58849,0},{60853,58836,0}, {60854,58831,0},{60863,58824,0},{60866,58814,0},{60871,58811,0},{60874,58801,0}, {60893,58783,0},{60903,58779,0},{60919,58774,0},{60928,58774,0},{60936,58778,0}, {60941,58783,0},{60943,58783,0},{60954,58794,0},{60958,58803,0},{60963,58801,0}, {60963,58803,0},{60974,58804,0},{60983,58818,0},{60988,58819,0},{61008,58836,0}, {61011,58841,0},{61014,58851,0},{61016,58868,0},{61016,58883,0},{61018,58884,0}, {61023,58878,0},{61021,58889,0},{61024,58883,0},{61028,58883,0},{61033,58901,0}, {61033,58908,0},{61039,58916,0},{61039,58934,0},{61034,58941,0},{61034,58949,0}, {61036,58948,0},{61038,58951,0},{61034,58954,0},{61034,58961,0},{61031,58968,0}, {61034,58968,0},{61033,58971,0},{61034,58976,0},{61038,58974,0},{61038,58978,0}, {61039,58976,0},{61044,58978,0},{61044,58981,0},{61046,58983,0},{61053,58964,0}, {61058,58964,0},{61061,58966,0},{61066,58968,0},{61073,58974,0},{61078,58984,0}, {61079,58989,0},{61083,58991,0},{61081,58998,0},{61081,58999,0},{61084,58998,0}, {61088,58999,0},{61086,59006,0},{61088,59008,0},{61089,59008,0},{61089,59003,0}, {61093,59003,0},{61103,59013,0},{61104,59013,0},{61104,59011,0},{61108,59009,0}, {61111,59009,0},{61114,59006,0},{61118,59004,0},{61123,59006,0},{61126,59014,0}, {61129,59013,0},{61134,59014,0},{61136,59013,0},{61141,59014,0},{61139,59011,0}, {61141,59009,0},{61146,59009,0},{61154,59004,0},{61159,59004,0},{61161,59003,0}, {61171,59004,0},{61178,59009,0},{61183,59016,0},{61191,59023,0},{61196,59031,0}, {61204,59033,0},{61213,59044,0},{61221,59058,0},{61228,59088,0},{61236,59106,0}, {61241,59104,0},{61238,59094,0},{61239,59089,0},{61243,59086,0},{61243,59076,0}, {61253,59056,0},{61256,59036,0},{61261,59034,0},{61264,59038,0},{61269,59039,0}, {61271,59044,0},{61273,59054,0},{61281,59063,0},{61284,59074,0},{61286,59091,0}, {61281,59103,0},{61276,59106,0},{61276,59111,0},{61274,59113,0},{61273,59116,0}, {61269,59114,0},{61258,59111,0},{61254,59116,0},{61249,59123,0},{61248,59128,0}, {61249,59134,0},{61249,59143,0},{61254,59166,0},{61259,59173,0},{61264,59173,0}, {61274,59178,0},{61304,59178,0},{61328,59161,0},{61326,59149,0},{61321,59138,0}, {61314,59116,0},{61313,59103,0},{61309,59106,0},{61309,59124,0},{61308,59129,0}, {61304,59133,0},{61301,59129,0},{61299,59131,0},{61293,59124,0},{61293,59111,0}, {61294,59106,0},{61293,59099,0},{61291,59091,0},{61293,59088,0},{61293,59078,0}, {61293,59076,0},{61304,59083,0},{61309,59089,0},{61311,59083,0},{61311,59076,0}, {61313,59069,0},{61313,59063,0},{61316,59056,0},{61316,59049,0},{61326,59034,0}, {61339,59028,0},{61358,59038,0},{61368,59033,0},{61384,59038,0},{61393,59029,0}, {61418,59021,0},{61436,59018,0},{61451,59023,0},{61458,59034,0},{61459,59046,0}, {61461,59043,0},{61463,59043,0},{61463,59038,0},{61464,59043,0},{61463,59058,0}, {61459,59056,0},{61458,59063,0},{61456,59061,0},{61454,59053,0},{61456,59051,0}, {61456,59046,0},{61454,59044,0},{61453,59048,0},{61453,59058,0},{61453,59068,0}, {61444,59094,0},{61434,59121,0},{61436,59131,0},{61431,59131,0},{61429,59139,0}, {61423,59149,0},{61419,59156,0},{61419,59196,0},{61421,59204,0},{61419,59213,0}, {61421,59233,0},{61428,59251,0},{61431,59256,0},{61431,59264,0},{61433,59264,0}, {61436,59274,0},{61439,59279,0},{61446,59296,0},{61449,59304,0},{61454,59306,0}, {61463,59311,0},{61469,59313,0},{61473,59318,0},{61471,59311,0},{61468,59303,0}, {61469,59303,0},{61471,59304,0},{61473,59303,0},{61476,59301,0},{61476,59303,0}, {61473,59306,0},{61473,59311,0},{61479,59309,0},{61481,59306,0},{61486,59303,0}, {61489,59294,0},{61506,59288,0},{61513,59293,0},{61514,59299,0},{61518,59301,0}, {61524,59303,0},{61531,59299,0},{61546,59306,0},{61549,59304,0},{61551,59308,0}, {61554,59306,0},{61551,59309,0},{61549,59318,0},{61553,59324,0},{61574,59328,0}, {61589,59331,0},{61593,59321,0},{61601,59313,0},{61601,59309,0},{61604,59308,0}, {61604,59318,0},{61601,59321,0},{61594,59329,0},{61598,59334,0},{61604,59328,0}, {61608,59319,0},{61609,59303,0},{61611,59306,0},{61609,59309,0},{61616,59303,0}, {61619,59301,0},{61624,59303,0},{61626,59301,0},{61631,59304,0},{61634,59303,0}, {61636,59308,0},{61638,59308,0},{61639,59309,0},{61641,59308,0},{61639,59304,0}, {61641,59303,0},{61644,59303,0},{61648,59301,0},{61646,59299,0},{61653,59298,0}, {61654,59296,0},{61656,59298,0},{61654,59319,0},{61651,59324,0},{61644,59328,0}, {61641,59334,0},{61638,59354,0},{61639,59363,0},{61636,59371,0},{61634,59381,0}, {61638,59398,0},{61636,59419,0},{61636,59428,0},{61639,59434,0},{61639,59453,0}, {61649,59526,0},{61653,59558,0},{61658,59574,0},{61666,59633,0},{61678,59664,0}, {61679,59676,0},{61684,59693,0},{61688,59704,0},{61693,59721,0},{61704,59743,0}, {61706,59751,0},{61709,59754,0},{61716,59769,0},{61723,59778,0},{61728,59783,0}, {61733,59783,0},{61738,59783,0},{61753,59788,0},{61771,59804,0},{61779,59818,0}, {61789,59826,0},{61796,59833,0},{61803,59834,0},{61834,59859,0},{61846,59869,0}, {61878,59869,0},{61884,59866,0},{61894,59866,0},{61904,59863,0},{61906,59859,0}, {61904,59858,0},{61901,59859,0},{61901,59849,0},{61898,59843,0},{61901,59843,0}, {61904,59831,0},{61918,59813,0},{61923,59809,0},{61928,59804,0},{61934,59803,0}, {61939,59798,0},{61953,59798,0},{61958,59798,0},{61971,59808,0},{61989,59823,0}, {61994,59824,0},{62004,59818,0},{62021,59803,0},{62031,59786,0},{62036,59778,0}, {62049,59754,0},{62053,59743,0},{62056,59736,0},{62061,59718,0},{62069,59704,0}, {62078,59699,0},{62079,59693,0},{62081,59689,0},{62088,59688,0},{62091,59684,0}, {62101,59688,0},{62108,59679,0},{62109,59683,0},{62109,59693,0},{62118,59698,0}, {62121,59698,0},{62131,59698,0},{62134,59691,0},{62139,59693,0},{62141,59691,0}, {62151,59689,0},{62163,59681,0},{62184,59683,0},{62196,59686,0},{62206,59694,0}, {62211,59693,0},{62223,59694,0},{62226,59693,0},{62228,59696,0},{62226,59716,0}, {62231,59721,0},{62238,59721,0},{62246,59723,0},{62254,59718,0},{62279,59714,0}, {62286,59714,0},{62291,59716,0},{62276,59721,0},{62256,59723,0},{62249,59729,0}, {62243,59731,0},{62233,59728,0},{62226,59721,0},{62224,59714,0},{62224,59703,0}, {62223,59699,0},{62208,59701,0},{62203,59699,0},{62201,59696,0},{62196,59694,0}, {62191,59698,0},{62181,59693,0},{62173,59694,0},{62168,59693,0},{62153,59693,0}, {62143,59696,0},{62136,59706,0},{62124,59714,0},{62119,59716,0},{62118,59728,0}, {62113,59729,0},{62109,59734,0},{62099,59746,0},{62086,59753,0},{62093,59779,0}, {62089,59784,0},{62091,59791,0},{62091,59794,0},{62091,59818,0},{62089,59826,0}, {62086,59828,0},{62081,59833,0},{62073,59844,0},{62069,59848,0},{62064,59861,0}, {62063,59874,0},{62059,59879,0},{62059,59891,0},{62056,59899,0},{62051,59893,0}, {62044,59904,0},{62044,59909,0},{62048,59914,0},{62046,59916,0},{62044,59916,0}, {62043,59918,0},{62044,59926,0},{62048,59934,0},{62053,59944,0},{62058,59958,0}, {62059,59966,0},{62058,59976,0},{62056,59983,0},{62054,59999,0},{62051,60006,0}, {62046,60008,0},{62046,60011,0},{62048,60029,0},{62046,60033,0},{62044,60033,0}, {62043,60041,0},{62038,60041,0},{62041,60046,0},{62044,60056,0},{62049,60068,0}, {62051,60073,0},{62054,60078,0},{62066,60108,0},{62068,60108,0},{62071,60106,0}, {62071,60101,0},{62076,60108,0},{62079,60104,0},{62078,60111,0},{62074,60111,0}, {62069,60113,0},{62068,60111,0},{62069,60121,0},{62073,60121,0},{62076,60126,0}, {62086,60138,0},{62093,60149,0},{62098,60159,0},{62103,60158,0},{62111,60161,0}, {62118,60166,0},{62129,60183,0},{62151,60188,0},{62158,60194,0},{62161,60199,0}, {62163,60199,128},{62171,60213,0},{62183,60226,0},{62203,60253,0},{62211,60263,0}, {62223,60273,0},{62248,60286,0},{62286,60299,0},{62311,60313,0},{62319,60328,0}, {62324,60326,0},{62329,60328,0},{62323,60321,0},{62324,60319,0},{62329,60323,0}, {62331,60328,0},{62333,60328,0},{62333,60324,0},{62329,60321,0},{62326,60314,0}, {62328,60313,0},{62331,60316,0},{62331,60311,0},{62339,60313,0},{62343,60323,0}, {62348,60316,0},{62348,60313,0},{62351,60311,0},{62353,60314,0},{62354,60314,0}, {62356,60316,0},{62359,60314,0},{62363,60314,0},{62368,60328,0},{62373,60333,0}, {62376,60331,0},{62374,60329,0},{62376,60326,0},{62379,60328,0},{62379,60333,0}, {62373,60334,0},{62373,60336,0},{62378,60338,0},{62381,60336,0},{62394,60336,0}, {62398,60338,0},{62399,60343,0},{62403,60339,0},{62404,60343,0},{62404,60344,0}, {62404,60349,0},{62409,60356,0},{62409,60373,0},{62414,60371,0},{62423,60374,0}, {62428,60391,0},{62431,60388,0},{62441,60388,0},{62448,60391,0},{62448,60401,0}, {62461,60398,0},{62469,60398,0},{62471,60399,0},{62473,60403,0},{62471,60404,0}, {62459,60408,0},{62458,60404,0},{62456,60408,0},{62456,60409,0},{62461,60409,0}, {62474,60406,0},{62486,60409,0},{62496,60416,0},{62496,60418,0},{62496,60421,0}, {62494,60423,0},{62496,60424,0},{62499,60428,0},{62501,60426,0},{62499,60419,0}, {62499,60418,0},{62506,60416,0},{62504,60413,0},{62506,60411,0},{62506,60408,0}, {62508,60408,0},{62511,60409,0},{62513,60408,0},{62514,60403,0},{62518,60406,0}, {62521,60404,0},{62526,60408,0},{62528,60406,0},{62534,60408,0},{62534,60409,0}, {62531,60409,0},{62531,60413,0},{62526,60411,0},{62521,60414,0},{62518,60413,0}, {62516,60418,0},{62513,60419,0},{62513,60421,0},{62509,60423,0},{62513,60429,0}, {62509,60431,0},{62509,60434,0},{62506,60434,0},{62501,60431,0},{62498,60433,0}, {62496,60438,0},{62493,60443,0},{62493,60444,0},{62496,60443,0},{62504,60444,0}, {62503,60456,0},{62504,60458,0},{62508,60459,0},{62506,60469,0},{62511,60471,0}, {62513,60468,0},{62514,60468,0},{62514,60469,0},{62518,60473,0},{62518,60474,0}, {62509,60483,0},{62499,60481,0},{62496,60479,0},{62491,60479,0},{62488,60476,0}, {62491,60473,0},{62493,60471,0},{62496,60473,0},{62501,60468,0},{62498,60463,0}, {62489,60468,0},{62481,60468,0},{62476,60469,0},{62463,60466,0},{62458,60463,0}, {62446,60446,0},{62446,60438,0},{62443,60441,0},{62431,60438,0},{62429,60438,0}, {62428,60443,0},{62426,60439,0},{62423,60438,0},{62423,60436,0},{62429,60434,0}, {62428,60428,0},{62429,60423,0},{62428,60419,0},{62421,60419,0},{62408,60421,0}, {62396,60418,0},{62389,60411,0},{62384,60404,0},{62383,60401,0},{62384,60394,0}, {62386,60393,0},{62379,60389,0},{62374,60391,0},{62378,60388,0},{62374,60384,0}, {62366,60378,0},{62356,60366,0},{62356,60353,0},{62353,60354,0},{62349,60351,0}, {62348,60346,0},{62349,60343,0},{62353,60339,0},{62354,60333,0},{62353,60328,0}, {62351,60328,0},{62341,60334,0},{62338,60331,0},{62333,60333,0},{62323,60328,0}, {62319,60329,0},{62323,60331,0},{62328,60338,0},{62341,60348,0},{62364,60389,0}, {62394,60429,0},{62413,60448,0},{62436,60468,0},{62489,60504,0},{62553,60531,0}, {62559,60536,0},{62579,60548,0},{62599,60561,0},{62603,60566,0},{62624,60581,0}, {62639,60598,0},{62653,60614,0},{62669,60639,0},{62674,60654,0},{62678,60656,0}, {62679,60659,0},{62683,60661,0},{62684,60661,0},{62683,60658,0},{62684,60656,0}, {62688,60651,0},{62693,60653,0},{62694,60649,0},{62696,60649,0},{62701,60649,0}, {62704,60649,0},{62698,60656,0},{62693,60654,0},{62686,60658,0},{62688,60661,0}, {62698,60663,0},{62701,60668,0},{62708,60668,0},{62713,60673,0},{62713,60671,0}, {62718,60671,0},{62728,60673,0},{62733,60676,0},{62738,60674,0},{62749,60679,0}, {62751,60678,0},{62753,60679,0},{62759,60673,0},{62761,60676,0},{62764,60673,0}, {62771,60671,0},{62776,60676,0},{62774,60678,0},{62778,60679,0},{62779,60676,0}, {62789,60671,0},{62793,60674,0},{62794,60678,0},{62799,60679,0},{62798,60681,0}, {62804,60679,0},{62804,60676,0},{62811,60674,0},{62818,60683,0},{62816,60684,0}, {62814,60683,0},{62814,60688,0},{62818,60686,0},{62819,60688,0},{62824,60684,0}, {62821,60683,0},{62819,60679,0},{62824,60674,0},{62826,60674,0},{62828,60678,0}, {62834,60679,0},{62836,60674,0},{62844,60674,0},{62848,60673,0},{62853,60674,0}, {62854,60676,0},{62858,60678,0},{62859,60678,0},{62859,60673,0},{62863,60669,0}, {62866,60668,0},{62878,60668,0},{62893,60676,0},{62894,60673,0},{62898,60671,0}, {62899,60669,0},{62901,60664,0},{62904,60661,0},{62904,60656,0},{62906,60658,0}, {62908,60661,0},{62908,60658,0},{62911,60661,0},{62916,60661,0},{62923,60656,0}, {62924,60658,0},{62929,60656,0},{62929,60658,0},{62926,60659,0},{62914,60663,0}, {62911,60668,0},{62914,60671,0},{62916,60673,0},{62918,60676,0},{62919,60678,0}, {62929,60676,0},{62931,60674,0},{62944,60679,0},{62949,60679,0},{62948,60673,0}, {62949,60664,0},{62948,60659,0},{62949,60659,0},{62951,60663,0},{62951,60668,0}, {62953,60671,0},{62949,60678,0},{62953,60676,0},{62954,60674,0},{62956,60676,0}, {62956,60678,0},{62951,60679,0},{62951,60683,0},{62954,60684,0},{62958,60684,0}, {62971,60691,0},{62978,60699,0},{62981,60698,0},{62979,60694,0},{62981,60691,0}, {62978,60689,0},{62978,60686,0},{62981,60689,0},{62983,60686,0},{62984,60684,0}, {62983,60676,0},{62981,60676,0},{62983,60674,0},{62984,60671,0},{62984,60674,0}, {62986,60674,0},{62986,60666,0},{62989,60663,0},{62989,60668,0},{62994,60664,0}, {63001,60661,0},{62991,60673,0},{62989,60686,0},{62988,60688,0},{62989,60691,0}, {62991,60691,0},{62993,60694,0},{62998,60693,0},{62998,60691,0},{62999,60693,0}, {63001,60693,0},{63003,60686,0},{63004,60693,0},{63011,60691,0},{63011,60693,0}, {63006,60696,0},{63006,60699,0},{63006,60701,0},{63008,60699,0},{63011,60701,0}, {63013,60703,0},{63011,60704,0},{63009,60703,0},{63003,60703,0},{63003,60704,0}, {63001,60703,0},{62999,60704,0},{63003,60708,0},{63006,60708,0},{63004,60711,0}, {63006,60714,0},{63008,60721,0},{63009,60723,0},{63006,60723,0},{63006,60718,0}, {63003,60713,0},{62999,60714,0},{62993,60711,0},{62991,60711,0},{62989,60713,0}, {62991,60716,0},{62998,60719,0},{63001,60724,0},{63013,60734,0},{63014,60738,0}, {63016,60741,0},{63026,60746,0},{63031,60746,0},{63028,60739,0},{63029,60731,0}, {63031,60731,0},{63033,60734,0},{63034,60733,0},{63034,60739,0},{63033,60736,0}, {63031,60736,0},{63029,60741,0},{63034,60744,0},{63039,60748,0},{63043,60751,0}, {63046,60753,0},{63048,60756,0},{63049,60756,0},{63056,60768,0},{63061,60774,0}, {63066,60783,0},{63068,60794,0},{63071,60796,0},{63079,60814,0},{63091,60829,0}, {63094,60831,0},{63093,60831,0},{63094,60836,0},{63098,60836,0},{63104,60838,0}, {63111,60846,0},{63124,60873,0},{63133,60888,0},{63134,60896,0},{63133,60898,0}, {63138,60899,0},{63138,60894,0},{63139,60894,0},{63143,60891,0},{63143,60896,0}, {63144,60894,0},{63144,60898,0},{63149,60898,0},{63148,60899,0},{63146,60899,0}, {63144,60906,0},{63138,60909,0},{63134,60904,0},{63133,60906,0},{63133,60909,0}, {63138,60914,0},{63136,60919,0},{63143,60919,0},{63149,60924,0},{63149,60923,0}, {63144,60916,0},{63144,60913,0},{63148,60919,0},{63151,60921,0},{63154,60931,0}, {63153,60933,0},{63158,60938,0},{63159,60948,0},{63158,60969,0},{63158,60973,0}, {63156,60974,0},{63156,60981,0},{63151,60986,0},{63153,60989,0},{63153,60994,0}, {63158,60998,0},{63163,60996,0},{63166,60993,0},{63171,60993,0},{63174,60994,0}, {63174,61001,0},{63179,61006,0},{63176,61011,0},{63178,61016,0},{63183,61014,0}, {63183,61021,0},{63188,61021,0},{63184,61026,0},{63188,61028,0},{63184,61029,0}, {63189,61031,0},{63191,61036,0},{63193,61031,0},{63194,61031,0},{63196,61038,0}, {63203,61046,0},{63201,61048,0},{63199,61046,0},{63199,61051,0},{63198,61053,0}, {63199,61056,0},{63199,61063,0},{63201,61064,0},{63203,61071,0},{63201,61078,0}, {63204,61081,0},{63206,61084,0},{63206,61086,0},{63209,61083,0},{63209,61079,0}, {63211,61079,0},{63213,61081,0},{63213,61079,0},{63211,61074,0},{63206,61071,0}, {63213,61073,0},{63213,61068,0},{63216,61074,0},{63218,61071,0},{63216,61069,0}, {63214,61066,0},{63216,61064,0},{63223,61066,0},{63224,61066,0},{63229,61068,0}, {63231,61069,0},{63231,61076,0},{63229,61076,0},{63231,61078,0},{63236,61089,0}, {63234,61093,0},{63243,61094,0},{63239,61099,0},{63241,61101,0},{63244,61101,0}, {63244,61104,0},{63243,61103,0},{63239,61106,0},{63238,61104,0},{63238,61101,0}, {63234,61101,0},{63236,61106,0},{63234,61106,0},{63234,61108,0},{63236,61109,0}, {63234,61113,0},{63231,61113,0},{63231,61118,0},{63233,61119,0},{63233,61123,0}, {63234,61126,0},{63243,61131,0},{63241,61133,0},{63238,61131,0},{63238,61133,0}, {63243,61138,0},{63244,61144,0},{63246,61149,0},{63244,61149,0},{63244,61156,0}, {63243,61156,0},{63243,61158,0},{63243,61161,0},{63238,61166,0},{63238,61169,0}, {63234,61176,0},{63231,61156,0},{63233,61146,0},{63231,61146,0},{63233,61139,0}, {63229,61136,0},{63226,61136,0},{63229,61144,0},{63231,61173,0},{63231,61178,0}, {63229,61179,0},{63231,61184,0},{63234,61194,0},{63236,61214,0},{63239,61221,0}, {63243,61221,0},{63243,61219,0},{63248,61219,0},{63249,61213,0},{63251,61216,0}, {63253,61214,0},{63251,61213,0},{63256,61209,0},{63261,61209,0},{63263,61213,0}, {63263,61214,0},{63266,61221,0},{63266,61226,0},{63269,61228,0},{63268,61234,0}, {63264,61234,0},{63261,61233,0},{63259,61229,0},{63258,61229,0},{63258,61233,0}, {63254,61228,0},{63248,61223,0},{63246,61226,0},{63244,61228,0},{63243,61223,0}, {63241,61228,0},{63241,61231,0},{63238,61233,0},{63239,61268,0},{63241,61269,0}, {63243,61279,0},{63241,61331,0},{63238,61334,0},{63239,61334,0},{63241,61336,0}, {63243,61336,0},{63241,61333,0},{63244,61333,0},{63248,61334,0},{63249,61336,0}, {63253,61338,0},{63254,61343,0},{63258,61344,0},{63259,61349,0},{63263,61349,0}, {63261,61344,0},{63259,61344,0},{63259,61341,0},{63263,61338,0},{63268,61336,0}, {63279,61338,0},{63283,61339,0},{63283,61343,0},{63294,61354,0},{63298,61358,0}, {63301,61359,0},{63311,61376,0},{63323,61416,0},{63334,61436,0},{63338,61439,0}, {63341,61439,0},{63359,61434,0},{63374,61434,0},{63379,61431,0},{63384,61429,0}, {63388,61431,0},{63401,61439,0},{63413,61439,0},{63426,61451,0},{63434,61454,0}, {63443,61454,0},{63451,61459,0},{63454,61471,0},{63453,61474,0},{63461,61479,0}, {63463,61483,0},{63473,61489,0},{63474,61491,0},{63473,61493,0},{63476,61496,0}, {63498,61506,0},{63504,61509,0},{63504,61506,0},{63503,61503,0},{63504,61503,0}, {63504,61499,0},{63509,61498,0},{63511,61501,0},{63513,61499,0},{63513,61506,0}, {63509,61506,0},{63508,61508,0},{63509,61509,0},{63508,61513,0},{63513,61514,0}, {63524,61519,0},{63531,61518,0},{63533,61521,0},{63539,61523,0},{63541,61521,0}, {63544,61528,0},{63561,61534,0},{63568,61544,0},{63571,61554,0},{63573,61556,0}, {63596,61566,0},{63606,61566,0},{63644,61563,0},{63666,61561,0},{63676,61564,0}, {63684,61563,0},{63713,61571,0},{63718,61574,0},{63741,61591,0},{63744,61594,0}, {63749,61608,0},{63753,61609,0},{63768,61623,0},{63774,61619,0},{63778,61618,0}, {63791,61618,0},{63798,61614,0},{63808,61614,0},{63821,61616,0},{63826,61619,0}, {63836,61619,0},{63846,61624,0},{63851,61623,0},{63859,61623,0},{63868,61626,0}, {63894,61631,0},{63899,61636,0},{63908,61634,0},{63921,61641,0},{63924,61641,0}, {63938,61644,0},{63951,61649,0},{63966,61643,0},{63981,61641,0},{63983,61639,0}, {63984,61641,0},{64018,61636,0},{64038,61636,0},{64046,61633,0},{64054,61634,0}, {64056,61631,0},{64058,61633,0},{64059,61631,0},{64071,61629,0},{64094,61636,0}, {64101,61636,0},{64106,61638,0},{64111,61636,0},{64116,61638,0},{64119,61639,0}, {64123,61639,0},{64133,61644,0},{64144,61644,0},{64148,61643,0},{64144,61638,0}, {64143,61638,0},{64143,61639,0},{64141,61638,0},{64139,61641,0},{64138,61639,0}, {64136,61639,0},{64134,61639,0},{64131,61641,0},{64129,61641,0},{64124,61629,0}, {64121,61631,0},{64119,61633,0},{64118,61633,0},{64121,61628,0},{64126,61629,0}, {64128,61629,0},{64129,61631,0},{64128,61634,0},{64129,61638,0},{64134,61636,0}, {64138,61638,0},{64143,61631,0},{64141,61629,0},{64149,61629,0},{64146,61634,0}, {64151,61638,0},{64153,61633,0},{64158,61629,0},{64159,61624,0},{64163,61624,0}, {64161,61623,0},{64161,61621,0},{64164,61623,0},{64164,61626,0},{64161,61628,0}, {64161,61629,0},{64153,61636,0},{64153,61638,0},{64156,61636,0},{64164,61638,128}, {64166,61639,0},{64169,61639,0},{64176,61636,0},{64179,61636,0},{64183,61636,0}, {64184,61634,0},{64184,61636,0},{64188,61633,0},{64188,61629,0},{64183,61628,0}, {64179,61629,0},{64176,61628,0},{64176,61624,0},{64178,61628,0},{64183,61628,0}, {64189,61629,0},{64203,61631,0},{64199,61633,0},{64199,61634,0},{64198,61641,0}, {64203,61639,0},{64206,61639,0},{64213,61643,0},{64216,61649,0},{64219,61651,0}, {64221,61654,0},{64224,61646,0},{64228,61646,0},{64234,61658,0},{64238,61659,0}, {64246,61661,0},{64249,61664,0},{64249,61659,0},{64249,61658,0},{64251,61656,0}, {64249,61653,0},{64251,61651,0},{64256,61649,0},{64258,61646,0},{64263,61644,0}, {64263,61646,0},{64266,61646,0},{64268,61649,0},{64271,61649,0},{64268,61651,0}, {64266,61648,0},{64263,61648,0},{64253,61651,0},{64251,61654,0},{64254,61658,0}, {64263,61663,0},{64264,61661,0},{64268,61664,0},{64274,61664,0},{64278,61666,0}, {64274,61666,0},{64273,61671,0},{64268,61673,0},{64264,61673,0},{64264,61674,0}, {64264,61679,0},{64263,61683,0},{64264,61686,0},{64263,61686,0},{64256,61686,0}, {64251,61688,0},{64246,61688,0},{64243,61688,0},{64244,61688,0},{64243,61684,0}, {64239,61684,0},{64234,61683,0},{64234,61688,0},{64243,61704,0},{64263,61721,0}, {64278,61736,0},{64293,61743,0},{64298,61748,0},{64323,61766,0},{64338,61774,0}, {64376,61791,0},{64389,61799,0},{64389,61798,0},{64386,61796,0},{64384,61788,0}, {64388,61794,0},{64391,61798,0},{64396,61791,0},{64399,61789,0},{64398,61791,0}, {64399,61793,0},{64396,61793,0},{64394,61794,0},{64399,61796,0},{64403,61796,0}, {64406,61799,0},{64408,61803,0},{64411,61801,0},{64409,61804,0},{64411,61804,0}, {64413,61803,0},{64418,61801,0},{64418,61803,0},{64411,61806,0},{64416,61806,0}, {64411,61809,0},{64411,61806,0},{64406,61803,0},{64404,61799,0},{64401,61799,0}, {64396,61796,0},{64396,61798,0},{64394,61798,0},{64393,61799,0},{64393,61803,0}, {64408,61809,0},{64414,61816,0},{64416,61821,0},{64418,61819,0},{64424,61819,0}, {64426,61814,0},{64428,61814,0},{64426,61816,0},{64429,61813,0},{64429,61809,0}, {64434,61808,0},{64433,61816,0},{64428,61818,0},{64426,61823,0},{64424,61821,0}, {64423,61823,0},{64434,61829,0},{64439,61833,0},{64441,61831,0},{64444,61836,0}, {64458,61844,0},{64463,61851,0},{64481,61879,0},{64484,61894,0},{64488,61898,0}, {64493,61901,0},{64501,61908,0},{64508,61908,0},{64514,61914,0},{64521,61923,0}, {64526,61928,0},{64529,61933,0},{64543,61941,0},{64548,61946,0},{64559,61953,0}, {64563,61956,0},{64561,61951,0},{64559,61949,0},{64563,61948,0},{64569,61946,0}, {64573,61941,0},{64576,61941,0},{64574,61946,0},{64571,61946,0},{64569,61948,0}, {64563,61949,0},{64568,61958,0},{64576,61956,0},{64576,61958,0},{64571,61963,0}, {64566,61958,0},{64569,61963,0},{64569,61966,0},{64573,61968,0},{64576,61969,0}, {64578,61971,0},{64583,61978,0},{64601,61989,0},{64603,61993,0},{64604,61996,0}, {64618,62006,0},{64633,62013,0},{64638,62018,0},{64646,62023,0},{64653,62023,0}, {64661,62028,0},{64664,62028,0},{64673,62029,0},{64681,62036,0},{64686,62036,0}, {64693,62039,0},{64699,62041,0},{64701,62043,0},{64709,62043,0},{64726,62048,0}, {64728,62046,0},{64731,62046,0},{64733,62043,0},{64731,62046,0},{64729,62048,0}, {64729,62051,0},{64733,62051,0},{64734,62053,0},{64743,62054,0},{64751,62053,0}, {64748,62051,0},{64753,62053,0},{64754,62046,0},{64763,62048,0},{64763,62051,0}, {64763,62046,0},{64766,62051,0},{64771,62048,0},{64774,62049,0},{64768,62051,0}, {64771,62053,0},{64768,62053,0},{64773,62056,0},{64778,62054,0},{64778,62051,0}, {64781,62053,0},{64779,62043,0},{64783,62048,0},{64781,62054,0},{64783,62054,0}, {64801,62056,0},{64813,62056,0},{64819,62058,0},{64821,62054,0},{64826,62053,0}, {64829,62053,0},{64834,62054,0},{64838,62053,0},{64828,62051,0},{64823,62044,0}, {64824,62046,0},{64828,62044,0},{64826,62046,0},{64828,62046,0},{64829,62046,0}, {64833,62049,0},{64836,62048,0},{64838,62051,0},{64843,62049,0},{64844,62051,0}, {64848,62044,0},{64856,62043,0},{64858,62041,0},{64866,62043,0},{64873,62039,0}, {64883,62039,0},{64896,62038,0},{64898,62038,0},{64899,62034,0},{64913,62033,0}, {64913,62029,0},{64916,62028,0},{64913,62023,0},{64914,62021,0},{64918,62024,0}, {64919,62024,0},{64918,62026,0},{64931,62024,0},{64938,62026,0},{64943,62021,0}, {64948,62021,0},{64949,62019,0},{64953,62019,0},{64956,62019,0},{64961,62016,0}, {64966,62016,0},{64968,62016,0},{64978,62013,0},{64988,62009,0},{64989,62008,0}, {64998,62004,0},{65001,62001,0},{65008,61999,0},{65014,61994,0},{65016,61991,0}, {65019,61988,0},{65024,61976,0},{65029,61948,0},{65031,61939,0},{65026,61923,0}, {65026,61908,0},{65026,61911,0},{65024,61908,0},{65028,61894,0},{65028,61878,0}, {65024,61883,0},{65023,61881,0},{65026,61874,0},{65026,61868,0},{65028,61866,0}, {65029,61859,0},{65041,61848,0},{65043,61841,0},{65041,61833,0},{65044,61828,0}, {65043,61819,0},{65049,61814,0},{65058,61809,0},{65061,61809,0},{65063,61808,0}, {65066,61803,0},{65071,61789,0},{65073,61788,0},{65073,61781,0},{65073,61778,0}, {65078,61771,0},{65083,61764,0},{65096,61759,0},{65098,61751,0},{65101,61748,0}, {65104,61744,0},{65114,61731,0},{65126,61719,0},{65131,61718,0},{65133,61716,0}, {65141,61711,0},{65143,61704,0},{65151,61698,0},{65166,61689,0},{65166,61688,0}, {65164,61688,0},{65168,61671,0},{65171,61666,0},{65176,61661,0},{65181,61656,0}, {65181,61651,0},{65186,61648,0},{65186,61644,0},{65194,61641,0},{65198,61636,0}, {65198,61628,0},{65203,61624,0},{65203,61619,0},{65208,61614,0},{65213,61609,0}, {65213,61606,0},{65218,61601,0},{65221,61588,0},{65228,61578,0},{65231,61574,0}, {65234,61568,0},{65234,61566,0},{65231,61566,0},{65233,61563,0},{65233,61564,0}, {65234,61564,0},{65239,61554,0},{65244,61549,0},{65251,61536,0},{65251,61533,0}, {65251,61529,0},{65253,61524,0},{65251,61523,0},{65251,61521,0},{65254,61518,0}, {65256,61504,0},{65254,61494,0},{65258,61488,0},{65256,61484,0},{65253,61476,0}, {65253,61463,0},{65249,61454,0},{65248,61453,0},{65251,61451,0},{65248,61446,0}, {65248,61426,0},{65244,61428,0},{65248,61421,0},{65248,61409,0},{65246,61404,0}, {65246,61408,0},{65243,61409,0},{65238,61413,0},{65234,61413,0},{65234,61409,0}, {65239,61408,0},{65241,61403,0},{65243,61403,0},{65246,61394,0},{65244,61393,0}, {65241,61393,0},{65243,61391,0},{65246,61391,0},{65246,61389,0},{65244,61384,0}, {65246,61376,0},{65249,61371,0},{65248,61369,0},{65249,61366,0},{65249,61368,0}, {65251,61368,0},{65249,61369,0},{65251,61369,0},{65256,61361,0},{65261,61354,0}, {65259,61353,0},{65263,61353,0},{65261,61341,0},{65263,61334,0},{65258,61341,0}, {65258,61343,0},{65251,61341,0},{65254,61336,0},{65253,61333,0},{65254,61329,0}, {65253,61328,0},{65256,61326,0},{65254,61324,0},{65256,61316,0},{65253,61313,0}, {65256,61313,0},{65254,61309,0},{65258,61311,0},{65261,61309,0},{65259,61301,0}, {65261,61294,0},{65263,61294,0},{65261,61291,0},{65263,61288,0},{65266,61284,0}, {65266,61288,0},{65269,61288,0},{65266,61283,0},{65269,61278,0},{65273,61271,0}, {65279,61266,0},{65279,61256,0},{65284,61251,0},{65286,61246,0},{65289,61243,0}, {65291,61233,0},{65296,61219,0},{65299,61201,0},{65298,61199,0},{65298,61193,0}, {65299,61193,0},{65299,61189,0},{65298,61188,0},{65294,61189,0},{65291,61194,0}, {65291,61189,0},{65286,61194,0},{65286,61191,0},{65283,61191,0},{65281,61193,0}, {65281,61191,0},{65284,61189,0},{65281,61188,0},{65281,61186,0},{65283,61188,0}, {65288,61184,0},{65293,61184,0},{65293,61183,0},{65289,61181,0},{65289,61183,0}, {65288,61183,0},{65286,61181,0},{65288,61181,0},{65286,61179,0},{65284,61179,0}, {65283,61181,0},{65284,61176,0},{65283,61174,0},{65286,61173,0},{65284,61169,0}, {65288,61171,0},{65284,61168,0},{65283,61168,0},{65281,61171,0},{65279,61164,0}, {65281,61166,0},{65288,61164,0},{65286,61163,0},{65281,61161,0},{65284,61161,0}, {65281,61156,0},{65281,61154,0},{65279,61148,0},{65273,61149,0},{65279,61144,0}, {65281,61143,0},{65276,61139,0},{65273,61141,0},{65274,61139,0},{65273,61136,0}, {65266,61131,0},{65263,61129,0},{65256,61129,0},{65256,61128,0},{65256,61129,0}, {65258,61129,0},{65258,61128,0},{65261,61128,0},{65259,61126,0},{65261,61126,0}, {65256,61123,0},{65253,61121,0},{65249,61116,0},{65251,61114,0},{65254,61119,0}, {65258,61116,0},{65259,61118,0},{65259,61113,0},{65256,61113,0},{65259,61111,0}, {65254,61109,0},{65254,61108,0},{65253,61106,0},{65254,61106,0},{65256,61106,0}, {65258,61104,0},{65253,61103,0},{65258,61103,0},{65264,61111,0},{65264,61114,0}, {65266,61116,0},{65269,61114,0},{65266,61118,0},{65269,61123,0},{65274,61126,0}, {65276,61124,0},{65281,61129,0},{65281,61131,0},{65284,61133,0},{65289,61131,0}, {65286,61131,0},{65289,61129,0},{65291,61126,0},{65291,61133,0},{65294,61133,0}, {65296,61133,0},{65296,61129,0},{65294,61128,0},{65294,61124,0},{65289,61114,0}, {65288,61108,0},{65283,61106,0},{65281,61108,0},{65278,61108,0},{65283,61104,0}, {65283,61101,0},{65281,61099,0},{65269,61101,0},{65273,61099,0},{65268,61098,0}, {65263,61098,0},{65258,61096,0},{65258,61098,0},{65256,61096,0},{65253,61096,0}, {65243,61094,0},{65238,61091,0},{65233,61083,0},{65226,61079,0},{65224,61074,0}, {65218,61071,0},{65216,61063,0},{65213,61059,0},{65206,61061,0},{65204,61059,0}, {65206,61058,0},{65208,61059,0},{65209,61058,0},{65216,61058,0},{65218,61064,0}, {65221,61066,0},{65231,61074,0},{65234,61073,0},{65234,61069,0},{65236,61068,0}, {65244,61068,0},{65251,61071,0},{65258,61071,0},{65264,61073,0},{65268,61073,0}, {65281,61083,0},{65283,61081,0},{65281,61079,0},{65278,61078,0},{65276,61071,0}, {65274,61071,0},{65276,61069,0},{65279,61076,0},{65284,61079,0},{65284,61083,0}, {65288,61084,0},{65296,61086,0},{65298,61084,0},{65294,61079,0},{65296,61079,0}, {65298,61081,0},{65299,61084,0},{65298,61088,0},{65294,61093,0},{65296,61098,0}, {65298,61099,0},{65303,61099,0},{65308,61099,0},{65308,61098,0},{65311,61098,0}, {65316,61096,0},{65318,61094,0},{65319,61094,0},{65321,61091,0},{65321,61084,0}, {65316,61081,0},{65314,61081,0},{65309,61074,0},{65304,61071,0},{65293,61071,0}, {65294,61069,0},{65299,61069,0},{65298,61066,0},{65296,61064,0},{65299,61066,0}, {65301,61068,0},{65308,61069,0},{65308,61068,0},{65306,61066,0},{65309,61066,0}, {65309,61063,0},{65306,61058,0},{65306,61054,0},{65308,61054,0},{65308,61058,0}, {65311,61061,0},{65309,61068,0},{65313,61066,0},{65313,61071,0},{65319,61078,0}, {65321,61071,0},{65321,61074,0},{65323,61078,0},{65328,61081,0},{65331,61086,0}, {65333,61084,0},{65333,61074,0},{65333,61078,0},{65334,61079,0},{65334,61086,0}, {65336,61088,0},{65346,61084,0},{65346,61076,0},{65348,61081,0},{65349,61083,0}, {65353,61083,0},{65349,61079,0},{65354,61079,0},{65353,61078,0},{65351,61076,0}, {65353,61074,0},{65353,61069,0},{65353,61073,0},{65358,61073,0},{65361,61076,0}, {65364,61071,0},{65361,61071,0},{65356,61069,0},{65354,61066,0},{65358,61063,0}, {65354,61054,0},{65359,61064,0},{65364,61066,0},{65364,61059,0},{65363,61059,0}, {65359,61056,0},{65361,61054,0},{65363,61059,0},{65366,61056,0},{65368,61058,0}, {65371,61056,0},{65373,61058,0},{65374,61056,0},{65373,61054,0},{65374,61056,0}, {65378,61054,0},{65379,61053,0},{65373,61051,0},{65373,61053,0},{65373,61051,0}, {65376,61048,0},{65374,61044,0},{65371,61046,0},{65371,61043,0},{65371,61044,0}, {65376,61041,0},{65376,61044,0},{65381,61044,0},{65383,61046,0},{65384,61046,0}, {65388,61051,0},{65391,61051,0},{65394,61049,0},{65391,61048,0},{65388,61043,0}, {65388,61044,0},{65386,61041,0},{65381,61041,0},{65376,61039,0},{65378,61036,0}, {65376,61034,0},{65378,61034,0},{65381,61039,0},{65383,61038,0},{65384,61034,0}, {65384,61038,0},{65388,61036,0},{65388,61031,0},{65393,61029,0},{65388,61029,0}, {65388,61026,0},{65388,61028,0},{65389,61029,0},{65389,61026,0},{65388,61023,0}, {65384,61023,0},{65388,61021,0},{65388,61019,0},{65383,61018,0},{65381,61014,0}, {65378,61011,0},{65374,61011,0},{65368,61014,0},{65366,61009,0},{65363,61008,0}, {65363,61001,0},{65364,60999,0},{65369,60999,0},{65373,61001,0},{65379,61003,0}, {65381,60998,0},{65379,60998,0},{65378,60998,0},{65379,60996,0},{65381,60996,0}, {65383,60999,0},{65388,61001,0},{65388,60999,0},{65386,60998,0},{65388,60998,0}, {65391,61004,0},{65394,61006,0},{65399,61006,0},{65404,61003,0},{65404,60999,0}, {65401,61001,0},{65398,60999,0},{65393,60998,0},{65389,60994,0},{65393,60994,0}, {65393,60993,0},{65389,60991,0},{65388,60989,0},{65383,60991,0},{65381,60991,0}, {65383,60989,0},{65384,60989,0},{65386,60989,0},{65384,60984,0},{65388,60988,0}, {65389,60986,0},{65386,60983,0},{65389,60984,0},{65389,60988,0},{65399,60989,0}, {65401,60994,0},{65406,60996,0},{65406,60991,0},{65406,60994,0},{65404,60989,0}, {65401,60989,0},{65394,60983,0},{65396,60983,0},{65399,60986,0},{65403,60984,0}, {65401,60981,0},{65403,60981,0},{65404,60983,0},{65406,60983,0},{65404,60981,0}, {65408,60981,0},{65408,60983,0},{65409,60983,0},{65408,60979,0},{65403,60978,0}, {65406,60976,0},{65408,60978,0},{65408,60974,0},{65403,60974,0},{65399,60973,0}, {65399,60966,0},{65403,60968,0},{65404,60966,0},{65404,60964,0},{65406,60966,0}, {65409,60966,0},{65411,60963,0},{65419,60966,0},{65421,60966,0},{65423,60964,0}, {65414,60961,0},{65414,60959,0},{65413,60959,0},{65409,60959,0},{65409,60956,0}, {65408,60954,0},{65403,60954,0},{65406,60953,0},{65411,60954,0},{65416,60953,0}, {65408,60951,0},{65408,60948,0},{65413,60949,0},{65409,60946,0},{65416,60949,0}, {65419,60948,0},{65414,60946,0},{65418,60944,0},{65419,60948,0},{65423,60946,0}, {65416,60943,0},{65411,60943,0},{65411,60941,0},{65416,60939,0},{65416,60936,0}, {65419,60936,0},{65421,60936,0},{65421,60941,0},{65423,60941,0},{65423,60938,0}, {65424,60938,0},{65424,60939,0},{65426,60938,0},{65428,60939,0},{65424,60936,0}, {65426,60934,0},{65423,60934,0},{65421,60933,0},{65416,60933,0},{65414,60931,0}, {65418,60933,0},{65419,60931,0},{65414,60928,0},{65416,60926,0},{65418,60926,0}, {65423,60929,0},{65429,60926,0},{65426,60923,0},{65418,60923,0},{65424,60921,0}, {65421,60919,0},{65421,60913,0},{65418,60909,0},{65426,60914,0},{65428,60916,0}, {65429,60916,0},{65429,60914,0},{65434,60916,0},{65434,60914,0},{65436,60916,0}, {65439,60916,0},{65441,60919,0},{65444,60919,0},{65444,60911,0},{65441,60911,0}, {65441,60914,0},{65438,60909,0},{65434,60909,0},{65433,60908,0},{65426,60911,0}, {65433,60908,0},{65424,60904,0},{65431,60904,0},{65434,60903,0},{65431,60901,0}, {65428,60901,0},{65429,60899,0},{65434,60899,0},{65438,60901,0},{65436,60899,0}, {65433,60896,0},{65431,60889,0},{65433,60889,0},{65434,60889,0},{65433,60886,0}, {65433,60883,0},{65434,60881,0},{65436,60879,0},{65434,60879,0},{65434,60876,0}, {65433,60874,0},{65438,60879,0},{65441,60878,0},{65438,60874,0},{65438,60873,0}, {65439,60866,0},{65434,60861,0},{65436,60861,0},{65441,60866,0},{65441,60868,0}, {65443,60869,0},{65441,60871,0},{65443,60874,0},{65444,60876,0},{65446,60874,0}, {65446,60876,0},{65449,60876,0},{65454,60873,0},{65453,60871,0},{65449,60873,0}, {65449,60871,0},{65453,60868,0},{65453,60866,0},{65449,60866,0},{65448,60866,0}, {65441,60863,0},{65443,60861,0},{65448,60864,0},{65453,60861,0},{65449,60859,0}, {65451,60859,0},{65449,60858,0},{65446,60858,0},{65449,60856,0},{65454,60856,0}, {65453,60854,0},{65454,60854,0},{65456,60853,0},{65456,60854,0},{65458,60854,0}, {65459,60856,0},{65461,60854,0},{65463,60856,0},{65464,60854,0},{65464,60853,0}, {65463,60854,0},{65458,60849,0},{65456,60851,0},{65454,60849,0},{65456,60848,0}, {65456,60846,0},{65451,60848,0},{65451,60846,0},{65449,60846,0},{65449,60841,0}, {65446,60841,0},{65446,60839,0},{65449,60839,0},{65451,60843,0},{65453,60844,0}, {65453,60843,0},{65456,60843,0},{65456,60841,0},{65458,60841,0},{65458,60839,0}, {65466,60841,0},{65466,60839,0},{65461,60838,0},{65459,60834,0},{65458,60834,0}, {65456,60833,0},{65453,60831,0},{65449,60831,0},{65451,60828,0},{65454,60828,0}, {65456,60831,0},{65456,60829,0},{65461,60829,0},{65461,60828,0},{65464,60828,0}, {65466,60829,0},{65469,60828,0},{65468,60826,0},{65464,60826,128},{65464,60824,0}, {65461,60824,0},{65463,60823,0},{65456,60823,0},{65459,60821,0},{65459,60816,0}, {65463,60821,0},{65468,60819,0},{65464,60819,0},{65466,60814,0},{65464,60813,0}, {65466,60811,0},{65469,60814,0},{65468,60816,0},{65469,60816,0},{65473,60816,0}, {65473,60811,0},{65471,60813,0},{65468,60811,0},{65471,60811,0},{65471,60808,0}, {65473,60808,0},{65476,60808,0},{65474,60801,0},{65471,60804,0},{65473,60801,0}, {65471,60798,0},{65469,60798,0},{65468,60799,0},{65471,60796,0},{65468,60794,0}, {65471,60794,0},{65478,60796,0},{65476,60789,0},{65476,60791,0},{65474,60789,0}, {65463,60789,0},{65466,60791,0},{65466,60793,0},{65461,60794,0},{65461,60798,0}, {65458,60798,0},{65454,60796,0},{65459,60794,0},{65459,60786,0},{65463,60788,0}, {65471,60783,0},{65473,60781,0},{65471,60778,0},{65473,60778,0},{65466,60774,0}, {65463,60769,0},{65459,60763,0},{65461,60763,0},{65464,60764,0},{65466,60764,0}, {65469,60764,0},{65473,60761,0},{65471,60758,0},{65468,60756,0},{65468,60753,0}, {65468,60751,0},{65469,60749,0},{65466,60749,0},{65461,60741,0},{65458,60739,0}, {65463,60734,0},{65466,60734,0},{65469,60733,0},{65469,60731,0},{65464,60726,0}, {65456,60719,0},{65451,60723,0},{65446,60721,0},{65433,60718,0},{65431,60713,0}, {65431,60706,0},{65424,60709,0},{65424,60714,0},{65423,60709,0},{65421,60708,0}, {65418,60711,0},{65419,60708,0},{65418,60706,0},{65404,60703,0},{65404,60696,0}, {65408,60691,0},{65404,60688,0},{65389,60686,0},{65389,60703,0},{65384,60698,0}, {65383,60689,0},{65384,60688,0},{65376,60693,0},{65369,60694,0},{65373,60691,0}, {65373,60686,0},{65378,60684,0},{65378,60683,0},{65389,60676,0},{65386,60673,0}, {65389,60666,0},{65388,60666,0},{65386,60663,0},{65378,60659,0},{65374,60654,0}, {65373,60654,0},{65371,60651,0},{65368,60648,0},{65364,60648,0},{65361,60644,0}, {65358,60643,0},{65351,60638,0},{65351,60626,0},{65348,60624,0},{65348,60619,0}, {65346,60618,0},{65336,60609,0},{65318,60604,0},{65298,60593,0},{65286,60593,0}, {65279,60588,0},{65278,60584,0},{65274,60584,0},{65271,60583,0},{65269,60574,0}, {65268,60568,0},{65269,60568,0},{65273,60569,0},{65274,60574,0},{65283,60581,0}, {65288,60583,0},{65294,60581,0},{65304,60586,0},{65309,60586,0},{65318,60591,0}, {65324,60594,0},{65326,60593,0},{65333,60594,0},{65336,60598,0},{65338,60598,0}, {65346,60599,0},{65348,60593,0},{65351,60589,0},{65354,60593,0},{65358,60594,0}, {65354,60589,0},{65359,60589,0},{65358,60586,0},{65349,60583,0},{65351,60579,0}, {65351,60576,0},{65349,60573,0},{65344,60571,0},{65344,60573,0},{65338,60578,0}, {65336,60579,0},{65334,60578,0},{65341,60573,0},{65344,60569,0},{65343,60566,0}, {65346,60564,0},{65344,60563,0},{65343,60563,0},{65346,60559,0},{65346,60554,0}, {65344,60554,0},{65341,60553,0},{65344,60553,0},{65346,60551,0},{65329,60553,0}, {65326,60554,0},{65331,60551,0},{65328,60548,0},{65334,60551,0},{65343,60551,0}, {65339,60546,0},{65344,60549,0},{65348,60549,0},{65353,60541,0},{65354,60538,0}, {65351,60526,0},{65349,60521,0},{65344,60519,0},{65346,60511,0},{65341,60504,0}, {65334,60503,0},{65334,60498,0},{65328,60494,0},{65338,60491,0},{65343,60491,0}, {65338,60488,0},{65343,60489,0},{65343,60484,0},{65353,60474,0},{65356,60468,0}, {65358,60464,0},{65361,60463,0},{65358,60469,0},{65363,60471,0},{65373,60468,0}, {65381,60459,0},{65393,60454,0},{65396,60456,0},{65399,60453,0},{65403,60453,0}, {65413,60454,0},{65418,60451,0},{65423,60441,0},{65423,60446,0},{65428,60448,0}, {65428,60451,0},{65431,60454,0},{65439,60453,0},{65443,60454,0},{65444,60451,0}, {65444,60441,0},{65443,60441,0},{65441,60443,0},{65439,60441,0},{65444,60439,0}, {65443,60436,0},{65441,60436,0},{65436,60436,0},{65433,60433,0},{65424,60418,0}, {65423,60418,0},{65423,60416,0},{65414,60409,0},{65409,60403,0},{65411,60401,0}, {65413,60403,0},{65411,60396,0},{65403,60391,0},{65398,60379,0},{65396,60369,0}, {65381,60348,0},{65378,60343,0},{65374,60334,0},{65373,60321,0},{65371,60318,0}, {65368,60316,0},{65366,60311,0},{65368,60309,0},{65374,60313,0},{65384,60309,0}, {65379,60298,0},{65379,60283,0},{65376,60264,0},{65379,60266,0},{65383,60274,0}, {65383,60279,0},{65386,60288,0},{65393,60293,0},{65398,60308,0},{65401,60313,0}, {65401,60316,0},{65398,60323,0},{65394,60333,0},{65396,60336,0},{65403,60343,0}, {65406,60344,0},{65416,60343,0},{65419,60344,0},{65423,60353,0},{65431,60361,0}, {65433,60364,0},{65449,60364,0},{65458,60364,0},{65461,60366,0},{65479,60383,0}, {65481,60381,0},{65479,60378,0},{65481,60381,0},{65483,60378,0},{65481,60383,0}, {65483,60386,0},{65488,60391,0},{65489,60393,0},{65493,60391,0},{65496,60396,0}, {65508,60401,0},{65523,60411,0},{65526,60408,0},{65528,60403,0},{65528,60413,0}, {65531,60416,0},{65533,60428,0},{5,60433,0},{15,60441,0},{17,60449,0},{17,60456,0}, {18,60459,0},{42,60479,0},{67,60491,0},{73,60501,0},{80,60504,0},{85,60508,0}, {95,60523,0},{98,60526,0},{103,60531,0},{110,60533,0},{107,60534,0},{110,60543,0}, {117,60548,0},{125,60544,0},{143,60548,0},{167,60539,0},{173,60529,0},{173,60526,0}, {178,60518,0},{178,60511,0},{182,60504,0},{180,60498,0},{182,60489,0},{185,60484,0}, {193,60483,0},{200,60478,0},{208,60476,0},{213,60471,0},{212,60463,0},{205,60461,0}, {205,60459,0},{208,60458,0},{212,60459,0},{215,60456,0},{213,60463,0},{213,60466,0}, {215,60468,0},{223,60468,0},{228,60464,0},{237,60461,0},{243,60463,0},{250,60458,0}, {248,60453,0},{257,60454,0},{265,60453,0},{268,60451,0},{273,60451,0},{278,60448,0}, {280,60444,0},{287,60444,0},{313,60434,0},{320,60434,0},{327,60431,0},{335,60429,0}, {390,60428,0},{392,60426,0},{390,60424,0},{387,60423,0},{365,60418,0},{368,60418,0}, {378,60419,0},{400,60419,0},{407,60416,0},{423,60403,0},{435,60386,0},{440,60383,0}, {437,60379,0},{428,60381,0},{407,60388,0},{398,60393,0},{393,60393,0},{407,60386,0}, {423,60379,0},{423,60378,0},{407,60373,0},{403,60368,0},{408,60369,0},{420,60371,0}, {430,60364,0},{435,60364,0},{437,60368,0},{438,60368,0},{440,60363,0},{442,60363,0}, {445,60363,0},{445,60361,0},{455,60359,0},{458,60356,0},{460,60356,0},{465,60351,0}, {467,60348,0},{465,60344,0},{460,60343,0},{440,60343,0},{437,60339,0},{433,60333,0}, {435,60333,0},{440,60339,0},{442,60341,0},{460,60338,0},{468,60334,0},{477,60326,0}, {478,60321,0},{487,60316,0},{487,60314,0},{483,60308,0},{477,60304,0},{472,60303,0}, {475,60301,0},{483,60306,0},{487,60309,0},{493,60308,0},{495,60303,0},{493,60301,0}, {488,60298,0},{493,60298,0},{498,60294,0},{500,60294,0},{500,60291,0},{505,60288,0}, {505,60283,0},{507,60283,0},{513,60274,0},{518,60269,0},{527,60259,0},{542,60248,0}, {545,60243,0},{547,60236,0},{545,60234,0},{545,60231,0},{552,60218,0},{552,60216,0}, {550,60214,0},{552,60211,0},{553,60209,0},{553,60198,0},{557,60188,0},{562,60179,0}, {570,60163,0},{575,60156,0},{577,60154,0},{578,60148,0},{572,60138,0},{562,60134,0}, {555,60136,0},{543,60131,0},{540,60128,0},{535,60119,0},{552,60131,0},{565,60131,0}, {575,60138,0},{578,60134,0},{582,60134,0},{583,60126,0},{588,60116,0},{588,60109,0}, {590,60101,0},{592,60081,0},{598,60059,0},{598,60036,0},{600,60031,0},{597,60021,0}, {595,60019,0},{593,60023,0},{590,60026,0},{590,60031,0},{587,60036,0},{587,60043,0}, {588,60046,0},{585,60049,0},{587,60046,0},{585,60043,0},{587,60038,0},{585,60034,0}, {588,60028,0},{585,60026,0},{582,60024,0},{582,60023,0},{587,60026,0},{588,60024,0}, {590,60018,0},{590,60014,0},{592,60009,0},{597,59998,0},{598,59969,0},{595,59951,0}, {588,59943,0},{585,59946,0},{580,59946,0},{572,59948,0},{567,59946,0},{577,59946,0}, {582,59934,0},{582,59929,0},{595,59888,0},{595,59874,0},{597,59869,0},{600,59839,0}, {595,59829,0},{588,59828,0},{577,59823,0},{555,59819,0},{552,59818,0},{548,59811,0}, {560,59818,0},{568,59819,0},{577,59818,0},{583,59821,0},{595,59823,0},{600,59819,0}, {610,59818,0},{615,59816,0},{627,59803,0},{633,59789,0},{633,59786,0},{628,59786,0}, {627,59784,0},{643,59778,0},{648,59773,0},{653,59764,0},{663,59753,0},{668,59746,0}, {678,59738,0},{682,59731,0},{683,59721,0},{682,59719,0},{687,59711,0},{690,59704,0}, {687,59694,0},{682,59689,0},{673,59686,0},{667,59681,0},{660,59679,0},{652,59679,0}, {642,59676,0},{642,59673,0},{638,59668,0},{650,59674,0},{655,59674,0},{670,59674,0}, {672,59676,0},{678,59676,0},{693,59681,0},{702,59688,0},{713,59689,0},{718,59688,0}, {733,59689,0},{737,59688,0},{748,59678,0},{762,59669,0},{763,59664,0},{760,59664,0}, {762,59663,0},{773,59656,0},{798,59628,0},{803,59624,0},{842,59561,0},{840,59558,0}, {835,59559,0},{825,59576,0},{823,59583,0},{817,59589,0},{813,59593,0},{822,59583,0}, {823,59576,0},{827,59574,0},{828,59568,0},{832,59564,0},{837,59553,0},{840,59549,0}, {852,59541,0},{853,59536,0},{853,59538,128},{862,59516,0},{863,59499,0}, {863,59496,0},{858,59494,0},{855,59491,0},{853,59489,0},{855,59483,0},{855,59473,0}, {860,59468,0},{860,59464,0},{858,59459,0},{857,59438,0},{853,59438,0},{847,59434,0}, {845,59429,0},{840,59429,0},{842,59428,0},{845,59428,0},{847,59433,0},{850,59433,0}, {850,59419,0},{840,59408,0},{843,59403,0},{848,59401,0},{848,59393,0},{850,59388,0}, {853,59386,0},{857,59374,0},{858,59369,0},{863,59371,0},{863,59376,0},{858,59383,0}, {862,59398,0},{858,59409,0},{860,59414,0},{862,59416,0},{873,59418,0},{883,59424,0}, {888,59424,0},{897,59426,0},{900,59428,0},{905,59436,0},{912,59438,0},{917,59441,0}, {917,59438,0},{908,59429,0},{903,59426,0},{905,59424,0},{910,59428,0},{918,59438,0}, {923,59444,0},{927,59454,0},{932,59454,0},{930,59456,0},{930,59458,0},{938,59456,0}, {943,59451,0},{948,59446,0},{948,59439,0},{953,59439,0},{952,59441,0},{953,59441,0}, {958,59431,0},{958,59421,0},{960,59416,0},{958,59416,0},{958,59414,0},{963,59403,0}, {967,59401,0},{968,59398,0},{972,59394,0},{978,59391,0},{982,59388,0},{990,59374,0}, {988,59371,0},{987,59374,0},{985,59374,0},{980,59379,0},{978,59376,0},{983,59359,0}, {983,59354,0},{977,59356,0},{977,59359,0},{970,59363,0},{960,59363,0},{970,59361,0}, {975,59359,0},{975,59356,0},{972,59356,0},{965,59353,0},{973,59354,0},{980,59353,0}, {995,59334,0},{998,59328,0},{1002,59319,0},{1000,59314,0},{995,59313,0}, {993,59316,0},{993,59324,0},{990,59328,0},{988,59331,0},{987,59334,0},{988,59326,0}, {992,59324,0},{993,59318,0},{992,59318,0},{987,59319,0},{970,59321,0},{965,59318,0}, {963,59314,0},{972,59319,0},{977,59318,0},{985,59318,0},{992,59314,0},{997,59311,0}, {992,59311,0},{985,59313,0},{975,59308,0},{970,59304,0},{973,59303,0},{977,59304,0}, {987,59299,0},{993,59294,0},{993,59291,0},{997,59294,0},{1007,59289,0}, {1017,59286,0},{1023,59278,0},{1022,59274,0},{1020,59274,0},{1013,59276,0}, {1008,59274,0},{1005,59266,0},{1005,59263,0},{1007,59259,0},{1005,59258,0}, {1002,59258,0},{998,59256,0},{1000,59254,0},{1003,59256,0},{1003,59253,0}, {1005,59251,0},{1005,59244,0},{1008,59244,0},{1005,59243,0},{1000,59244,0}, {1000,59243,0},{1008,59241,0},{1007,59238,0},{1010,59234,0},{1008,59238,0}, {1010,59239,0},{1008,59243,0},{1010,59244,0},{1010,59246,0},{1007,59248,0}, {1008,59251,0},{1003,59254,0},{1008,59259,0},{1007,59264,0},{1008,59271,0}, {1012,59274,0},{1020,59269,0},{1028,59269,0},{1035,59263,0},{1037,59263,0}, {1040,59258,0},{1037,59248,0},{1040,59243,0},{1040,59241,0},{1033,59241,0}, {1030,59243,0},{1028,59243,0},{1027,59236,0},{1030,59239,0},{1032,59236,0}, {1035,59241,0},{1040,59238,0},{1040,59236,0},{1042,59243,0},{1038,59249,0}, {1040,59253,0},{1050,59253,0},{1052,59251,0},{1052,59244,0},{1048,59243,0}, {1045,59236,0},{1053,59244,0},{1057,59269,0},{1053,59284,0},{1053,59303,0}, {1063,59311,0},{1063,59328,0},{1065,59329,0},{1063,59333,0},{1065,59334,0}, {1065,59341,0},{1067,59344,0},{1068,59346,0},{1068,59348,0},{1072,59348,0}, {1073,59351,0},{1075,59351,0},{1072,59343,0},{1073,59341,0},{1072,59339,0}, {1073,59338,0},{1072,59336,0},{1072,59333,0},{1070,59328,0},{1072,59326,0}, {1068,59319,0},{1070,59314,0},{1075,59268,0},{1077,59266,0},{1073,59261,0}, {1070,59246,0},{1072,59236,0},{1070,59223,0},{1073,59219,0},{1072,59219,0}, {1068,59211,0},{1067,59208,0},{1068,59204,0},{1068,59201,0},{1070,59198,0}, {1067,59196,0},{1067,59193,0},{1065,59191,0},{1067,59189,0},{1065,59186,0}, {1063,59186,0},{1063,59183,0},{1067,59159,0},{1072,59154,0},{1065,59151,0}, {1063,59144,0},{1063,59133,0},{1065,59131,0},{1062,59123,0},{1063,59118,0}, {1063,59113,0},{1067,59109,0},{1062,59106,0},{1052,59113,0},{1057,59119,0}, {1057,59126,0},{1058,59133,0},{1057,59133,0},{1055,59151,0},{1050,59163,0}, {1048,59166,0},{1050,59171,0},{1048,59169,0},{1043,59154,0},{1043,59148,0}, {1045,59143,0},{1043,59131,0},{1048,59124,0},{1047,59116,0},{1042,59113,0}, {1038,59103,0},{1033,59101,0},{1033,59099,0},{1037,59099,0},{1038,59099,0}, {1037,59096,0},{1037,59098,0},{1033,59098,0},{1032,59094,0},{1033,59089,0}, {1032,59091,0},{1032,59098,0},{1030,59099,0},{1028,59096,0},{1027,59091,0}, {1023,59088,0},{1025,59083,0},{1023,59081,0},{1025,59081,0},{1023,59078,0}, {1027,59078,0},{1023,59073,0},{1020,59069,0},{1018,59071,0},{1018,59069,0}, {1018,59066,0},{1020,59068,0},{1022,59064,0},{1020,59066,0},{1010,59063,0}, {1008,59053,0},{1010,59041,0},{1003,59028,0},{1007,59019,0},{1008,59019,0}, {1005,59028,0},{1010,59016,0},{1013,58994,0},{1018,58978,0},{1030,58949,0}, {1028,58949,0},{1022,58964,0},{1023,58954,0},{1025,58949,0},{1028,58948,0}, {1028,58943,0},{1032,58943,0},{1032,58948,0},{1043,58929,0},{1050,58924,0}, {1053,58924,0},{1055,58929,0},{1058,58931,0},{1058,58926,0},{1065,58913,0}, {1065,58906,0},{1060,58901,0},{1063,58889,0},{1062,58851,0},{1060,58843,0}, {1062,58834,0},{1055,58818,0},{1053,58781,0},{1052,58778,0},{1050,58769,0}, {1050,58756,0},{1048,58753,0},{1045,58749,0},{1047,58749,0},{1045,58743,0}, {1048,58736,0},{1048,58724,0},{1050,58719,0},{1058,58711,0},{1068,58706,0}, {1077,58703,0},{1083,58703,0},{1085,58706,0},{1087,58711,0},{1088,58713,0}, {1092,58704,0},{1092,58699,0},{1093,58699,0},{1093,58703,0},{1093,58706,0}, {1090,58708,0},{1092,58709,0},{1105,58703,0},{1112,58698,0},{1115,58696,0}, {1118,58698,0},{1120,58696,0},{1118,58694,0},{1120,58688,0},{1125,58684,0}, {1130,58674,0},{1135,58669,0},{1137,58663,0},{1145,58651,0},{1145,58631,0}, {1148,58624,0},{1153,58608,0},{1148,58599,0},{1150,58584,0},{1148,58581,0}, {1145,58578,0},{1147,58573,0},{1155,58564,0},{1167,58561,0},{1185,58554,0}, {1193,58554,0},{1198,58554,0},{1207,58549,0},{1217,58543,0},{1218,58538,0}, {1220,58534,0},{1217,58528,0},{1212,58521,0},{1212,58516,0},{1207,58516,0}, {1198,58511,0},{1185,58506,0},{1185,58508,0},{1177,58513,0},{1178,58513,0}, {1177,58516,0},{1173,58516,0},{1175,58513,0},{1168,58514,0},{1163,58513,0}, {1160,58514,0},{1160,58519,0},{1167,58541,0},{1165,58541,0},{1165,58543,0}, {1167,58548,0},{1168,58549,0},{1167,58553,0},{1168,58554,0},{1150,58563,0}, {1143,58556,0},{1143,58548,0},{1148,58539,0},{1152,58538,0},{1152,58533,0}, {1157,58523,0},{1153,58526,0},{1153,58524,0},{1152,58524,0},{1152,58531,0}, {1148,58533,0},{1148,58534,0},{1148,58531,0},{1147,58533,0},{1143,58533,0}, {1145,58529,0},{1143,58526,0},{1147,58524,0},{1148,58521,0},{1147,58519,0}, {1147,58523,0},{1143,58523,0},{1142,58521,0},{1142,58519,0},{1137,58518,0}, {1135,58513,0},{1137,58508,0},{1130,58494,0},{1130,58486,0},{1127,58484,0}, {1128,58488,0},{1125,58484,0},{1123,58466,0},{1120,58451,0},{1100,58411,0}, {1097,58403,0},{1098,58394,0},{1097,58386,0},{1092,58391,0},{1092,58394,0}, {1088,58391,0},{1080,58393,0},{1080,58378,0},{1077,58381,0},{1077,58383,0}, {1073,58383,0},{1065,58383,0},{1063,58386,0},{1060,58383,0},{1057,58381,0}, {1053,58384,0},{1050,58389,0},{1047,58391,0},{1042,58388,0},{1037,58393,0}, {1023,58399,0},{1015,58409,0},{998,58416,0},{997,58419,0},{990,58426,0}, {985,58429,0},{982,58428,0},{972,58433,0},{970,58431,0},{960,58429,0},{953,58428,0}, {948,58429,0},{940,58429,0},{935,58431,0},{932,58429,0},{928,58421,0},{922,58414,0}, {917,58413,0},{912,58406,0},{905,58386,0},{905,58373,0},{907,58366,0},{908,58364,0}, {910,58364,0},{912,58359,0},{917,58363,0},{920,58361,0},{920,58363,0},{922,58361,0}, {923,58361,0},{923,58359,0},{923,58356,0},{922,58354,0},{925,58356,0},{927,58359,0}, {928,58359,0},{928,58363,0},{932,58363,0},{933,58361,0},{935,58364,0},{937,58363,0}, {938,58363,0},{937,58361,0},{938,58358,0},{942,58354,0},{942,58348,0},{938,58346,0}, {943,58346,0},{943,58353,0},{945,58351,0},{947,58346,0},{950,58344,0},{947,58344,0}, {950,58343,0},{947,58338,0},{948,58334,0},{952,58334,0},{948,58338,0},{950,58339,0}, {957,58338,0},{957,58334,0},{958,58338,0},{960,58338,0},{957,58339,0},{953,58341,0}, {955,58341,0},{957,58339,0},{962,58338,0},{973,58328,0},{982,58323,0},{990,58329,0}, {1000,58334,0},{1008,58338,0},{1012,58341,0},{1013,58346,0},{1022,58353,0}, {1035,58358,0},{1043,58371,0},{1045,58374,0},{1052,58373,0},{1058,58376,0}, {1063,58376,0},{1067,58378,0},{1072,58378,0},{1078,58369,0},{1090,58364,0}, {1097,58364,0},{1102,58359,0},{1103,58363,0},{1102,58368,0},{1098,58369,0}, {1100,58373,0},{1102,58374,0},{1105,58369,0},{1108,58361,0},{1120,58351,0}, {1140,58341,0},{1155,58339,0},{1158,58339,0},{1160,58341,0},{1167,58364,0}, {1172,58388,0},{1175,58394,0},{1175,58398,0},{1177,58399,0},{1178,58403,0}, {1182,58403,0},{1185,58404,0},{2367,58006,129},{2368,58003,1},{2367,58003,1}, {2362,58001,1},{2365,58004,1},{2362,58003,1},{2362,58006,1},{2357,58004,1}, {2358,58008,1},{2348,58011,1},{2347,58014,1},{2343,58013,1},{2343,58016,1}, {2340,58016,1},{2337,58021,1},{2335,58019,1},{2335,58023,1},{2327,58026,1}, {2323,58023,1},{2320,58023,1},{2312,58029,1},{2312,58026,1},{2313,58021,1}, {2317,58018,1},{2317,58021,1},{2318,58019,1},{2320,58016,1},{2317,58013,1}, {2310,58026,1},{2307,58039,1},{2300,58043,1},{2288,58048,1},{2288,58049,1}, {2285,58051,1},{2287,58053,1},{2300,58051,1},{2303,58046,1},{2308,58044,1}, {2310,58039,1},{2310,58034,1},{2315,58029,1},{2333,58026,1},{2345,58018,1}, {2353,58016,1},{2358,58009,1},{2363,58009,1},{2367,58006,1},{2465,57973,129}, {2470,57964,1},{2470,57963,1},{2467,57961,1},{2458,57971,1},{2452,57971,1}, {2452,57978,1},{2437,57984,1},{2428,57989,1},{2428,57994,1},{2425,57996,1}, {2420,57994,1},{2417,57984,1},{2415,57984,1},{2413,57986,1},{2412,57989,1}, {2415,57993,1},{2417,58001,1},{2415,58008,1},{2422,58004,1},{2427,57999,1}, {2432,57996,1},{2437,57988,1},{2455,57976,1},{2465,57973,1},{2428,57766,129}, {2430,57768,1},{2428,57769,1},{2427,57771,1},{2425,57773,1},{2423,57773,1}, {2418,57766,1},{2417,57761,1},{2415,57763,1},{2413,57761,1},{2412,57766,1}, {2405,57764,1},{2403,57763,1},{2403,57766,1},{2410,57768,1},{2413,57771,1}, {2420,57773,1},{2422,57774,1},{2413,57781,1},{2403,57783,1},{2400,57781,1}, {2398,57783,1},{2395,57783,1},{2392,57776,1},{2390,57776,1},{2393,57781,1}, {2392,57784,1},{2382,57783,1},{2382,57779,1},{2380,57781,1},{2375,57781,1}, {2373,57776,1},{2375,57771,1},{2375,57769,1},{2373,57771,1},{2372,57769,1}, {2373,57768,1},{2375,57759,1},{2375,57761,1},{2378,57761,1},{2377,57768,1}, {2378,57769,1},{2382,57776,1},{2385,57779,1},{2383,57774,1},{2378,57766,1}, {2378,57763,1},{2382,57763,1},{2382,57759,1},{2385,57769,1},{2388,57771,1}, {2387,57768,1},{2385,57756,1},{2393,57753,1},{2398,57754,1},{2398,57753,1}, {2402,57753,1},{2405,57749,1},{2407,57749,1},{2410,57743,1},{2410,57746,1}, {2415,57744,1},{2415,57749,1},{2417,57751,1},{2420,57753,1},{2422,57758,1}, {2425,57759,1},{2428,57766,1},{2520,57716,129},{2518,57723,1},{2515,57726,1}, {2518,57731,1},{2515,57738,1},{2510,57736,1},{2507,57739,1},{2500,57738,1}, {2500,57741,1},{2497,57743,1},{2485,57748,1},{2478,57753,1},{2472,57763,1}, {2463,57763,1},{2460,57761,1},{2452,57764,1},{2447,57764,1},{2445,57761,1}, {2445,57756,1},{2442,57753,1},{2442,57751,1},{2437,57749,1},{2433,57743,1}, {2435,57739,1},{2430,57734,1},{2428,57736,1},{2427,57733,1},{2428,57731,1}, {2437,57728,1},{2440,57723,1},{2450,57723,1},{2445,57716,1},{2450,57706,1}, {2453,57699,1},{2462,57693,1},{2465,57698,1},{2467,57698,1},{2467,57703,1}, {2472,57704,1},{2470,57706,1},{2465,57708,1},{2460,57703,1},{2458,57703,1}, {2460,57709,1},{2463,57709,1},{2462,57711,1},{2457,57709,1},{2457,57711,1}, {2457,57714,1},{2460,57713,1},{2460,57716,1},{2462,57716,1},{2463,57714,1}, {2473,57709,1},{2467,57709,1},{2472,57706,1},{2478,57708,1},{2482,57713,1}, {2485,57713,1},{2487,57716,1},{2492,57718,1},{2495,57718,1},{2498,57719,1}, {2503,57721,1},{2517,57714,1},{2520,57716,1},{2557,57863,129},{2555,57868,1}, {2548,57868,1},{2550,57869,1},{2548,57871,1},{2547,57873,1},{2537,57888,1}, {2533,57896,1},{2535,57901,1},{2530,57904,1},{2522,57913,1},{2513,57924,1}, {2505,57924,1},{2500,57923,1},{2497,57921,1},{2490,57923,1},{2485,57923,1}, {2475,57918,1},{2465,57919,1},{2465,57918,1},{2468,57914,1},{2475,57913,1}, {2478,57904,1},{2482,57903,1},{2480,57914,1},{2482,57914,1},{2485,57918,1}, {2488,57919,1},{2488,57918,1},{2487,57916,1},{2488,57914,1},{2497,57916,1}, {2502,57921,1},{2508,57921,1},{2513,57919,1},{2515,57918,1},{2518,57911,1}, {2532,57901,1},{2535,57884,1},{2543,57874,1},{2543,57864,1},{2543,57861,1}, {2542,57858,1},{2547,57861,1},{2557,57863,1},{2690,57741,129},{2692,57746,1}, {2693,57753,1},{2690,57769,1},{2692,57776,1},{2690,57783,1},{2668,57806,1}, {2668,57811,1},{2667,57806,1},{2662,57809,1},{2660,57818,1},{2652,57831,1}, {2648,57833,1},{2647,57829,1},{2642,57831,1},{2638,57834,1},{2633,57833,1}, {2630,57836,1},{2628,57831,1},{2632,57831,1},{2630,57828,1},{2623,57819,1}, {2613,57818,1},{2593,57818,1},{2588,57816,1},{2588,57811,1},{2598,57806,1}, {2600,57799,1},{2602,57796,1},{2603,57798,1},{2607,57803,1},{2608,57806,1}, {2613,57811,1},{2615,57814,1},{2620,57811,1},{2625,57813,1},{2628,57813,1}, {2632,57811,1},{2635,57814,1},{2642,57813,1},{2643,57813,1},{2645,57816,1}, {2650,57818,1},{2652,57821,1},{2655,57821,1},{2658,57814,1},{2660,57801,1}, {2668,57799,1},{2668,57793,1},{2675,57793,1},{2687,57783,1},{2687,57769,1}, {2688,57764,1},{2688,57759,1},{2690,57758,1},{2692,57753,1},{2688,57741,1}, {2690,57739,1},{2690,57741,1},{2668,57639,129},{2665,57648,1},{2662,57649,1}, {2662,57653,1},{2658,57656,1},{2658,57666,1},{2662,57671,1},{2668,57676,1}, {2670,57676,1},{2672,57673,1},{2675,57676,1},{2680,57678,1},{2678,57681,1}, {2673,57683,1},{2673,57686,1},{2668,57701,1},{2670,57704,1},{2672,57708,1}, {2672,57721,1},{2670,57724,1},{2673,57733,1},{2672,57738,1},{2677,57744,1}, {2672,57744,1},{2667,57746,1},{2663,57744,1},{2667,57734,1},{2663,57721,1}, {2662,57706,1},{2657,57686,1},{2648,57666,1},{2650,57661,1},{2655,57653,1}, {2668,57638,1},{2670,57638,1},{2668,57639,1},{2103,58166,129},{2103,58169,1}, {2105,58171,1},{2108,58171,1},{2110,58168,1},{2112,58173,1},{2113,58179,1}, {2118,58183,1},{2120,58194,1},{2123,58196,1},{2117,58203,1},{2113,58209,1}, {2118,58221,1},{2127,58228,1},{2132,58229,1},{2133,58234,1},{2132,58236,1}, {2117,58234,1},{2097,58221,1},{2097,58208,1},{2093,58204,1},{2095,58206,1}, {2092,58191,1},{2095,58176,1},{2092,58169,1},{2093,58168,1},{2097,58168,1}, {2102,58164,1},{2103,58166,1},{1777,59049,129},{1777,59053,1},{1777,59054,1}, {1780,59058,1},{1775,59066,1},{1777,59071,1},{1777,59078,1},{1775,59079,1}, {1775,59076,1},{1772,59069,1},{1770,59063,1},{1768,59053,1},{1768,59049,1}, {1768,59046,1},{1772,59048,1},{1775,59048,1},{1777,59049,1},{1640,59384,129}, {1645,59383,1},{1652,59389,1},{1647,59396,1},{1642,59398,1},{1638,59396,1}, {1635,59399,1},{1632,59409,1},{1627,59416,1},{1625,59419,1},{1623,59418,1}, {1625,59413,1},{1623,59401,1},{1620,59391,1},{1622,59384,1},{1625,59381,1}, {1627,59381,1},{1633,59384,1},{1635,59386,1},{1638,59386,1},{1640,59384,1}, {1605,59361,129},{1627,59356,1},{1633,59358,1},{1637,59361,1},{1630,59376,1}, {1627,59376,1},{1628,59381,1},{1623,59383,1},{1623,59379,1},{1620,59378,1}, {1605,59381,1},{1598,59374,1},{1595,59368,1},{1598,59366,1},{1605,59361,1}, {1563,59389,129},{1563,59394,1},{1558,59398,1},{1558,59404,1},{1555,59406,1}, {1552,59409,1},{1545,59411,1},{1543,59409,1},{1532,59411,1},{1525,59409,1}, {1523,59408,1},{1525,59404,1},{1520,59399,1},{1520,59398,1},{1525,59398,1}, {1527,59399,1},{1530,59396,1},{1535,59396,1},{1548,59389,1},{1553,59388,1}, {1557,59389,1},{1558,59388,1},{1563,59389,1},{1487,59416,129},{1488,59419,1}, {1487,59426,1},{1480,59436,1},{1475,59441,1},{1477,59443,1},{1477,59448,1}, {1477,59446,1},{1473,59446,1},{1475,59444,1},{1473,59443,1},{1472,59443,1}, {1470,59444,1},{1468,59443,1},{1467,59443,1},{1467,59448,1},{1465,59446,1}, {1463,59446,1},{1462,59449,1},{1460,59449,1},{1457,59453,1},{1455,59453,1}, {1453,59453,1},{1452,59453,1},{1447,59454,1},{1440,59449,1},{1440,59448,1}, {1443,59448,1},{1443,59449,1},{1447,59449,1},{1445,59446,1},{1447,59444,1}, {1447,59433,1},{1445,59431,1},{1447,59428,1},{1450,59428,1},{1452,59426,1}, {1453,59428,1},{1457,59431,1},{1453,59434,1},{1455,59436,1},{1460,59434,1}, {1460,59431,1},{1460,59426,1},{1467,59421,1},{1470,59418,1},{1475,59418,1}, {1482,59413,1},{1487,59416,1},{2183,57229,129},{2190,57234,1},{2192,57239,1}, {2193,57236,1},{2195,57238,1},{2190,57261,1},{2188,57268,1},{2183,57266,1}, {2180,57268,1},{2180,57269,1},{2177,57273,1},{2177,57276,1},{2175,57276,1}, {2172,57278,1},{2167,57274,1},{2165,57279,1},{2160,57279,1},{2160,57281,1}, {2157,57281,1},{2148,57266,1},{2143,57246,1},{2145,57243,1},{2147,57229,1}, {2150,57226,1},{2153,57221,1},{2157,57219,1},{2163,57218,1},{2157,57226,1}, {2153,57229,1},{2155,57234,1},{2157,57236,1},{2157,57238,1},{2160,57239,1}, {2158,57241,1},{2157,57239,1},{2158,57243,1},{2160,57241,1},{2162,57238,1}, {2167,57234,1},{2178,57228,1},{2183,57229,1},{2253,57686,129},{2253,57689,1}, {2255,57693,1},{2257,57696,1},{2253,57703,1},{2253,57701,1},{2252,57701,1}, {2245,57708,1},{2243,57708,1},{2243,57706,1},{2245,57706,1},{2243,57701,1}, {2243,57696,1},{2242,57694,1},{2243,57694,1},{2243,57696,1},{2247,57696,1}, {2245,57689,1},{2245,57686,1},{2245,57683,1},{2247,57681,1},{2248,57679,1}, {2248,57671,1},{2250,57671,1},{2252,57671,1},{2253,57671,1},{2250,57668,1}, {2250,57666,1},{2253,57666,1},{2255,57669,1},{2255,57676,1},{2253,57679,1}, {2253,57686,1},{2240,57704,1},{2243,57709,1},{2243,57716,1},{2242,57718,1}, {2243,57719,1},{2240,57726,1},{2230,57729,1},{2228,57731,1},{2228,57734,1}, {2227,57734,1},{2227,57731,1},{2230,57726,1},{2230,57719,1},{2232,57718,1}, {2232,57716,1},{2233,57719,1},{2237,57716,1},{2237,57714,1},{2233,57714,1}, {2233,57713,1},{2237,57711,1},{2237,57714,1},{2238,57713,1},{2240,57709,1}, {2240,57708,1},{2240,57704,1},{2232,57734,1},{2230,57738,1},{2228,57739,1}, {2227,57739,1},{2227,57738,1},{2223,57738,1},{2223,57741,1},{2223,57743,1}, {2220,57744,1},{2222,57744,1},{2223,57746,1},{2222,57748,1},{2222,57749,1}, {2220,57749,1},{2218,57746,1},{2217,57749,1},{2217,57753,1},{2215,57753,1}, {2212,57751,1},{2210,57749,1},{2210,57748,1},{2210,57746,1},{2215,57744,1}, {2215,57741,1},{2212,57741,1},{2218,57733,1},{2220,57731,1},{2223,57736,1}, {2228,57736,1},{2232,57734,1},{2210,57741,1},{2210,57744,1},{2207,57749,1}, {2210,57756,1},{2207,57759,1},{2208,57763,1},{2207,57764,1},{2205,57768,1}, {2207,57769,1},{2203,57774,1},{2197,57771,1},{2193,57773,1},{2192,57768,1}, {2195,57768,1},{2195,57766,1},{2192,57766,1},{2190,57766,1},{2195,57763,1}, {2198,57754,1},{2203,57754,1},{2203,57751,1},{2200,57751,1},{2202,57751,1}, {2200,57748,1},{2205,57743,1},{2210,57741,1},{60026,58831,129},{60023,58831,1}, {60016,58826,1},{60004,58811,1},{60004,58804,1},{60008,58793,1},{60011,58789,1}, {60016,58794,1},{60018,58789,1},{60019,58783,1},{60018,58774,1},{60009,58771,1}, {60011,58763,1},{60009,58754,1},{60011,58748,1},{60013,58749,1},{60011,58756,1}, {60013,58763,1},{60014,58751,1},{60019,58746,1},{60016,58744,1},{60018,58743,1}, {60016,58741,1},{60013,58738,1},{60013,58724,1},{60016,58721,1},{60018,58724,1}, {60019,58721,1},{60026,58718,1},{60031,58719,1},{60038,58718,1},{60036,58704,1}, {60038,58703,1},{60041,58699,1},{60044,58703,1},{60046,58729,1},{60044,58756,1}, {60041,58763,1},{60044,58769,1},{60044,58779,1},{60044,58796,1},{60043,58809,1}, {60039,58819,1},{60029,58828,1},{60029,58831,1},{60026,58831,1},{60039,58696,129}, {60036,58703,1},{60029,58703,1},{60029,58696,1},{60033,58693,1},{60029,58693,1}, {60028,58693,1},{60024,58684,1},{60028,58679,1},{60028,58674,1},{60026,58678,1}, {60024,58679,1},{60021,58676,1},{60023,58658,1},{60029,58644,1},{60031,58636,1}, {60034,58633,1},{60033,58631,1},{60031,58629,1},{60029,58638,1},{60024,58639,1}, {60021,58651,1},{60018,58658,1},{60018,58674,1},{60016,58681,1},{60018,58698,1}, {60014,58701,1},{60013,58708,1},{60013,58704,1},{60009,58714,1},{60006,58714,1}, {60006,58696,1},{60006,58689,1},{60004,58684,1},{60006,58674,1},{60011,58669,1}, {60009,58661,1},{60009,58669,1},{60006,58668,1},{60006,58671,1},{60003,58671,1}, {60003,58679,1},{59999,58676,1},{60003,58688,1},{60001,58701,1},{59996,58703,1}, {59998,58708,1},{59996,58713,1},{59996,58719,1},{59994,58721,1},{59989,58719,1}, {59989,58729,1},{59988,58731,1},{59983,58726,1},{59979,58731,1},{59978,58731,1}, {59976,58739,1},{59971,58733,1},{59969,58738,1},{59964,58728,1},{59968,58723,1}, {59976,58721,1},{59974,58711,1},{59974,58708,1},{59981,58711,1},{59984,58711,1}, {59988,58698,1},{59986,58694,1},{59986,58688,1},{59989,58681,1},{59994,58679,1}, {59993,58678,1},{59994,58676,1},{59994,58674,1},{59989,58676,1},{59991,58671,1}, {59989,58663,1},{59993,58659,1},{59993,58656,1},{59991,58659,1},{59989,58656,1}, {59986,58659,1},{59984,58653,1},{59988,58646,1},{59989,58646,1},{59989,58643,1}, {59994,58639,1},{59996,58643,1},{59998,58661,1},{59999,58656,1},{60003,58659,1}, {59998,58638,1},{60003,58646,1},{60008,58646,1},{60011,58651,1},{60013,58649,1}, {60018,58656,1},{60013,58639,1},{60009,58638,1},{60011,58629,1},{60016,58624,1}, {60021,58624,1},{60019,58621,1},{60016,58621,1},{60011,58624,1},{60013,58618,1}, {60021,58611,1},{60023,58613,1},{60021,58609,1},{60019,58593,1},{60019,58608,1}, {60013,58609,1},{60013,58603,1},{60011,58599,1},{60011,58593,1},{60013,58591,1}, {60013,58588,1},{60008,58591,1},{60006,58591,1},{60008,58594,1},{60006,58601,1}, {60004,58601,1},{60004,58608,1},{60003,58604,1},{59999,58606,1},{59999,58611,1}, {59998,58613,1},{59993,58606,1},{59993,58611,1},{59991,58613,1},{59993,58616,1}, {59991,58623,1},{59989,58619,1},{59988,58621,1},{59984,58619,1},{59989,58613,1}, {59988,58606,1},{59988,58603,1},{59998,58599,1},{59988,58596,1},{59986,58593,1}, {59994,58593,1},{59994,58584,1},{59996,58584,1},{59999,58594,1},{60001,58596,1}, {60001,58588,1},{60003,58589,1},{60003,58588,1},{59999,58584,1},{59998,58579,1}, {60001,58574,1},{60001,58576,1},{60003,58574,1},{60006,58558,1},{60006,58566,1}, {60008,58563,1},{60008,58566,1},{60009,58578,1},{60009,58576,1},{60009,58569,1}, {60011,58569,1},{60018,58586,1},{60018,58581,1},{60014,58574,1},{60016,58569,1}, {60013,58568,1},{60009,58551,1},{60013,58549,1},{60013,58544,1},{60014,58553,1}, {60016,58544,1},{60019,58551,1},{60019,58546,1},{60019,58533,1},{60023,58534,1}, {60024,58538,1},{60023,58541,1},{60028,58541,1},{60029,58544,1},{60029,58554,1}, {60031,58559,1},{60029,58568,1},{60031,58571,1},{60033,58578,1},{60023,58579,1}, {60021,58578,1},{60021,58581,1},{60021,58583,1},{60033,58581,1},{60034,58593,1}, {60031,58593,1},{60031,58598,1},{60031,58603,1},{60033,58603,1},{60034,58598,1}, {60038,58606,1},{60036,58611,1},{60034,58618,1},{60036,58618,1},{60036,58614,1}, {60038,58616,1},{60038,58626,1},{60036,58631,1},{60038,58639,1},{60038,58653,1}, {60041,58663,1},{60043,58684,1},{60041,58694,1},{60039,58698,1},{60048,58673,129}, {60048,58669,1},{60053,58661,1},{60058,58643,1},{60058,58639,1},{60056,58639,1}, {60056,58646,1},{60049,58654,1},{60046,58663,1},{60043,58656,1},{60041,58629,1}, {60043,58618,1},{60049,58588,1},{60054,58569,1},{60058,58569,1},{60059,58574,1}, {60066,58573,1},{60059,58569,1},{60066,58564,1},{60056,58564,1},{60056,58559,1}, {60063,58561,1},{60064,58558,1},{60054,58556,1},{60054,58544,1},{60061,58539,1}, {60068,58539,1},{60063,58536,1},{60054,58539,1},{60053,58538,1},{60051,58528,1}, {60053,58526,1},{60058,58526,1},{60054,58524,1},{60058,58521,1},{60053,58523,1}, {60051,58518,1},{60051,58508,1},{60053,58504,1},{60058,58504,1},{60061,58511,1}, {60068,58513,1},{60061,58503,1},{60053,58499,1},{60059,58476,1},{60056,58474,1}, {60054,58464,1},{60053,58463,1},{60053,58459,1},{60054,58453,1},{60058,58454,1}, {60061,58471,1},{60066,58483,1},{60071,58489,1},{60073,58489,1},{60073,58481,1}, {60069,58473,1},{60068,58478,1},{60066,58476,1},{60063,58464,1},{60064,58461,1}, {60061,58454,1},{60061,58444,1},{60064,58444,1},{60068,58459,1},{60069,58443,1}, {60068,58441,1},{60064,58443,1},{60058,58433,1},{60059,58431,1},{60066,58436,1}, {60069,58436,1},{60074,58441,1},{60074,58436,1},{60076,58431,1},{60076,58429,1}, {60074,58431,1},{60071,58433,1},{60069,58428,1},{60073,58426,1},{60068,58423,1}, {60066,58418,1},{60068,58414,1},{60069,58406,1},{60071,58406,1},{60073,58416,1}, {60074,58411,1},{60079,58409,1},{60083,58413,1},{60079,58406,1},{60084,58403,1}, {60083,58399,1},{60079,58403,1},{60081,58396,1},{60078,58396,1},{60074,58403,1}, {60076,58398,1},{60074,58396,1},{60071,58394,1},{60073,58391,1},{60071,58391,1}, {60071,58388,1},{60068,58388,1},{60069,58384,1},{60076,58388,1},{60076,58384,1}, {60071,58381,1},{60071,58378,1},{60078,58379,1},{60078,58376,1},{60069,58371,1}, {60073,58368,1},{60076,58371,1},{60076,58361,1},{60074,58361,1},{60073,58354,1}, {60071,58356,1},{60071,58349,1},{60071,58346,1},{60071,58341,1},{60074,58339,1}, {60076,58346,1},{60078,58348,1},{60078,58343,1},{60078,58341,1},{60081,58343,1}, {60079,58336,1},{60083,58338,1},{60084,58334,1},{60084,58343,1},{60088,58336,1}, {60091,58336,1},{60089,58344,1},{60088,58344,1},{60086,58349,1},{60081,58353,1}, {60078,58369,1},{60084,58361,1},{60081,58373,1},{60081,58378,1},{60084,58371,1}, {60086,58368,1},{60088,58368,1},{60089,58364,1},{60088,58359,1},{60089,58353,1}, {60091,58351,1},{60091,58353,1},{60094,58351,1},{60094,58356,1},{60096,58356,1}, {60096,58359,1},{60096,58364,1},{60093,58363,1},{60086,58374,1},{60086,58386,1}, {60088,58386,1},{60089,58376,1},{60094,58374,1},{60094,58378,1},{60091,58384,1}, {60094,58383,1},{60094,58386,1},{60093,58391,1},{60093,58396,1},{60089,58398,1}, {60093,58403,1},{60094,58403,1},{60094,58398,1},{60096,58393,1},{60099,58401,1}, {60093,58419,1},{60086,58423,1},{60086,58428,1},{60093,58423,1},{60091,58434,1}, {60089,58439,1},{60093,58439,1},{60094,58443,1},{60101,58441,1},{60104,58454,1}, {60103,58459,1},{60101,58463,1},{60101,58468,1},{60103,58469,1},{60101,58474,1}, {60093,58464,1},{60088,58464,1},{60079,58458,1},{60076,58459,1},{60081,58463,1}, {60076,58468,1},{60076,58473,1},{60084,58466,1},{60091,58469,1},{60098,58478,1}, {60088,58491,1},{60084,58501,1},{60079,58508,1},{60081,58513,1},{60083,58508,1}, {60086,58506,1},{60081,58523,1},{60086,58513,1},{60094,58491,1},{60098,58489,1}, {60099,58484,1},{60103,58486,1},{60108,58479,1},{60109,58466,1},{60109,58454,1}, {60111,58449,1},{60118,58446,1},{60116,58454,1},{60121,58446,1},{60124,58443,1}, {60111,58476,1},{60103,58503,1},{60101,58508,1},{60099,58513,1},{60096,58514,1}, {60093,58521,1},{60098,58521,1},{60098,58528,1},{60099,58529,1},{60101,58519,1}, {60104,58516,1},{60106,58523,1},{60108,58523,1},{60111,58531,1},{60106,58539,1}, {60103,58538,1},{60099,58541,1},{60098,58539,1},{60098,58544,1},{60094,58546,1}, {60093,58549,1},{60086,58548,1},{60089,58554,1},{60086,58558,1},{60083,58556,1}, {60081,58559,1},{60088,58563,1},{60094,58554,1},{60098,58556,1},{60099,58551,1}, {60103,58551,1},{60104,58548,1},{60108,58549,1},{60108,58556,1},{60104,58568,1}, {60091,58581,1},{60093,58584,1},{60099,58579,1},{60103,58581,1},{60099,58591,1}, {60091,58613,1},{60089,58613,1},{60083,58606,1},{60081,58599,1},{60074,58594,1}, {60068,58598,1},{60074,58598,1},{60076,58604,1},{60081,58608,1},{60083,58613,1}, {60081,58616,1},{60078,58618,1},{60081,58621,1},{60086,58618,1},{60091,58621,1}, {60091,58629,1},{60088,58634,1},{60089,58636,1},{60093,58638,1},{60094,58636,1}, {60098,58628,1},{60098,58618,1},{60106,58603,1},{60109,58584,1},{60114,58578,1}, {60119,58548,1},{60123,58543,1},{60128,58529,1},{60138,58526,1},{60143,58521,1}, {60148,58521,1},{60153,58518,1},{60158,58518,1},{60161,58519,1},{60164,58533,1}, {60171,58544,1},{60171,58559,1},{60186,58601,1},{60189,58603,1},{60199,58601,1}, {60203,58598,1},{60204,58579,1},{60199,58543,1},{60196,58534,1},{60193,58531,1}, {60191,58523,1},{60189,58514,1},{60193,58506,1},{60196,58503,1},{60199,58493,1}, {60201,58491,1},{60213,58488,1},{60221,58491,1},{60234,58491,1},{60241,58501,1}, {60236,58501,1},{60231,58503,1},{60234,58518,1},{60238,58523,1},{60246,58526,1}, {60248,58526,1},{60249,58514,1},{60246,58506,1},{60253,58509,1},{60256,58509,1}, {60258,58504,1},{60259,58494,1},{60263,58499,1},{60264,58519,1},{60263,58524,1}, {60259,58528,1},{60253,58536,1},{60253,58539,1},{60254,58544,1},{60258,58551,1}, {60259,58559,1},{60263,58564,1},{60273,58574,1},{60283,58574,1},{60286,58579,1}, {60286,58584,1},{60291,58594,1},{60271,58613,1},{60268,58621,1},{60268,58628,1}, {60271,58633,1},{60271,58641,1},{60278,58654,1},{60281,58658,1},{60271,58674,1}, {60158,58318,129},{60156,58323,1},{60153,58313,1},{60149,58314,1},{60148,58311,1}, {60149,58306,1},{60153,58301,1},{60151,58298,1},{60149,58301,1},{60143,58301,1}, {60146,58298,1},{60146,58294,1},{60141,58299,1},{60139,58294,1},{60136,58304,1}, {60131,58304,1},{60133,58291,1},{60136,58291,1},{60138,58284,1},{60134,58283,1}, {60133,58284,1},{60126,58283,1},{60126,58278,1},{60129,58274,1},{60134,58273,1}, {60131,58271,1},{60128,58266,1},{60126,58264,1},{60126,58259,1},{60126,58256,1}, {60123,58253,1},{60124,58244,1},{60126,58248,1},{60128,58248,1},{60126,58244,1}, {60128,58243,1},{60126,58236,1},{60128,58233,1},{60129,58236,1},{60129,58256,1}, {60133,58248,1},{60133,58259,1},{60136,58254,1},{60138,58258,1},{60141,58251,1}, {60143,58258,1},{60148,58261,1},{60148,58268,1},{60149,58271,1},{60148,58261,1}, {60149,58259,1},{60149,58263,1},{60153,58263,1},{60149,58258,1},{60151,58256,1}, {60153,58258,1},{60154,58256,1},{60149,58244,1},{60149,58241,1},{60151,58241,1}, {60149,58236,1},{60149,58234,1},{60154,58234,1},{60154,58231,1},{60151,58229,1}, {60143,58226,1},{60136,58233,1},{60133,58226,1},{60134,58223,1},{60138,58214,1}, {60138,58208,1},{60139,58203,1},{60143,58211,1},{60144,58209,1},{60146,58213,1}, {60148,58208,1},{60151,58208,1},{60153,58204,1},{60156,58211,1},{60159,58209,1}, {60161,58204,1},{60163,58211,1},{60166,58211,1},{60164,58199,1},{60161,58191,1}, {60159,58178,1},{60161,58178,1},{60164,58186,1},{60166,58188,1},{60169,58186,1}, {60169,58176,1},{60171,58174,1},{60176,58176,1},{60178,58179,1},{60176,58186,1}, {60178,58189,1},{60179,58193,1},{60178,58201,1},{60171,58208,1},{60168,58219,1}, {60169,58241,1},{60173,58239,1},{60171,58234,1},{60171,58228,1},{60178,58233,1}, {60176,58228,1},{60171,58224,1},{60173,58209,1},{60176,58206,1},{60179,58209,1}, {60181,58201,1},{60188,58193,1},{60189,58194,1},{60188,58203,1},{60184,58209,1}, {60186,58213,1},{60186,58221,1},{60183,58228,1},{60189,58223,1},{60191,58223,1}, {60193,58219,1},{60194,58219,1},{60196,58229,1},{60198,58233,1},{60196,58233,1}, {60193,58231,1},{60186,58236,1},{60191,58238,1},{60194,58234,1},{60194,58239,1}, {60191,58243,1},{60193,58244,1},{60183,58243,1},{60184,58246,1},{60183,58249,1}, {60173,58244,1},{60168,58248,1},{60183,58256,1},{60189,58249,1},{60191,58251,1}, {60184,58263,1},{60181,58263,1},{60176,58269,1},{60168,58268,1},{60168,58273,1}, {60169,58273,1},{60178,58273,1},{60183,58269,1},{60176,58281,1},{60179,58288,1}, {60178,58293,1},{60174,58291,1},{60173,58296,1},{60171,58296,1},{60169,58291,1}, {60168,58288,1},{60164,58293,1},{60161,58293,1},{60166,58298,1},{60164,58304,1}, {60163,58313,1},{60159,58308,1},{60158,58318,1},{61198,58146,129},{61199,58144,1}, {61201,58139,1},{61199,58124,1},{61203,58119,1},{61204,58114,1},{61204,58108,1}, {61208,58104,1},{61208,58099,1},{61211,58096,1},{61219,58099,1},{61223,58104,1}, {61224,58103,1},{61228,58103,1},{61233,58113,1},{61236,58111,1},{61239,58114,1}, {61244,58113,1},{61246,58116,1},{61248,58118,1},{61258,58116,1},{61264,58118,1}, {61269,58121,1},{61278,58121,1},{61284,58119,1},{61286,58114,1},{61301,58119,1}, {61313,58119,1},{61321,58128,1},{61329,58131,1},{61339,58129,1},{61343,58131,1}, {61344,58134,1},{61348,58136,1},{61349,58133,1},{61351,58129,1},{61354,58129,1}, {61359,58133,1},{61354,58141,1},{61358,58144,1},{61358,58146,1},{61354,58148,1}, {61351,58146,1},{61354,58138,1},{61353,58134,1},{61349,58138,1},{61346,58149,1}, {61349,58154,1},{61346,58159,1},{61351,58158,1},{61354,58168,1},{61353,58171,1}, {61356,58174,1},{61354,58179,1},{61353,58183,1},{61351,58186,1},{61349,58181,1}, {61343,58183,1},{61343,58179,1},{61341,58178,1},{61339,58183,1},{61331,58191,1}, {61328,58191,1},{61324,58186,1},{61323,58186,1},{61316,58198,1},{61314,58196,1}, {61311,58199,1},{61306,58198,1},{61304,58196,1},{61306,58193,1},{61304,58189,1}, {61303,58188,1},{61304,58179,1},{61299,58169,1},{61289,58166,1},{61284,58174,1}, {61281,58164,1},{61284,58158,1},{61289,58159,1},{61288,58156,1},{61284,58154,1}, {61281,58156,1},{61276,58154,1},{61274,58156,1},{61271,58161,1},{61269,58166,1}, {61268,58166,1},{61266,58171,1},{61263,58173,1},{61256,58186,1},{61248,58186,1}, {61249,58166,1},{61246,58171,1},{61243,58171,1},{61239,58174,1},{61239,58179,1}, {61234,58179,1},{61231,58184,1},{61233,58176,1},{61231,58176,1},{61228,58186,1}, {61224,58188,1},{61223,58184,1},{61224,58179,1},{61224,58174,1},{61223,58171,1}, {61221,58163,1},{61224,58163,1},{61224,58159,1},{61223,58158,1},{61216,58159,1}, {61211,58164,1},{61208,58166,1},{61206,58166,1},{61206,58163,1},{61203,58166,1}, {61199,58164,1},{61199,58158,1},{61201,58156,1},{61199,58154,1},{61198,58154,1}, {61196,58149,1},{61198,58146,1},{60271,58674,129},{60253,58693,1},{60243,58706,1}, {60224,58714,1},{60224,58711,1},{60234,58708,1},{60236,58704,1},{60234,58696,1}, {60228,58689,1},{60224,58683,1},{60219,58679,1},{60213,58681,1},{60209,58686,1}, {60206,58694,1},{60206,58719,1},{60198,58726,1},{60184,58731,1},{60176,58738,1}, {60161,58763,1},{60158,58764,1},{60158,58769,1},{60153,58778,1},{60144,58779,1}, {60133,58799,1},{60121,58831,1},{60114,58844,1},{60113,58851,1},{60108,58863,1}, {60094,58881,1},{60089,58893,1},{60089,58898,1},{60083,58913,1},{60073,58948,1}, {60071,58953,1},{60071,58961,1},{60069,58966,1},{60073,59004,1},{60073,59014,1}, {60071,59023,1},{60068,59016,1},{60059,59014,1},{60056,59011,1},{60054,59013,1}, {60049,59004,1},{60046,59004,1},{60043,59001,1},{60043,58996,1},{60046,58996,1}, {60048,58989,1},{60043,58988,1},{60043,58974,1},{60039,58971,1},{60039,58966,1}, {60044,58964,1},{60046,58959,1},{60046,58939,1},{60044,58941,1},{60043,58939,1}, {60041,58934,1},{60038,58924,1},{60038,58899,1},{60033,58896,1},{60031,58891,1}, {60033,58871,1},{60041,58856,1},{60043,58844,1},{60046,58834,1},{60048,58791,1}, {60049,58783,1},{60048,58768,1},{60048,58751,1},{60054,58713,1},{60056,58706,1}, {60051,58704,1},{60051,58684,1},{60051,58679,1},{60058,58673,1},{65509,60696,129}, {65506,60699,1},{65499,60699,1},{65498,60698,1},{65493,60694,1},{65483,60689,1}, {65476,60689,1},{65471,60688,1},{65463,60686,1},{65463,60684,1},{65468,60679,1}, {65459,60684,1},{65456,60683,1},{65453,60684,1},{65448,60683,1},{65444,60681,1}, {65441,60674,1},{65438,60673,1},{65436,60669,1},{65434,60669,1},{65434,60673,1}, {65431,60671,1},{65429,60674,1},{65424,60668,1},{65423,60663,1},{65416,60654,1}, {65416,60651,1},{65423,60644,1},{65418,60646,1},{65414,60653,1},{65411,60653,1}, {65411,60649,1},{65409,60656,1},{65401,60656,1},{65394,60653,1},{65396,60649,1}, {65406,60643,1},{65406,60638,1},{65406,60641,1},{65404,60643,1},{65403,60638,1}, {65401,60639,1},{65398,60638,1},{65401,60641,1},{65398,60644,1},{65391,60653,1}, {65389,60646,1},{65386,60644,1},{65384,60634,1},{65383,60631,1},{65386,60624,1}, {65396,60621,1},{65398,60616,1},{65396,60616,1},{65394,60618,1},{65391,60618,1}, {65383,60614,1},{65379,60618,1},{65378,60613,1},{65378,60616,1},{65376,60618,1}, {65378,60619,1},{65376,60619,1},{65374,60618,1},{65374,60613,1},{65374,60609,1}, {65379,60606,1},{65381,60603,1},{65381,60601,1},{65379,60601,1},{65379,60599,1}, {65383,60596,1},{65388,60598,1},{65383,60594,1},{65379,60588,1},{65386,60586,1}, {65386,60583,1},{65383,60586,1},{65378,60586,1},{65378,60584,1},{65374,60584,1}, {65371,60581,1},{65369,60581,1},{65368,60579,1},{65368,60581,1},{65364,60581,1}, {65363,60574,1},{65358,60568,1},{65361,60564,1},{65363,60564,1},{65371,60561,1}, {65378,60563,1},{65371,60559,1},{65363,60563,1},{65359,60563,1},{65356,60559,1}, {65354,60554,1},{65361,60539,1},{65361,60534,1},{65364,60533,1},{65369,60533,1}, {65371,60531,1},{65369,60529,1},{65364,60531,1},{65359,60526,1},{65358,60521,1}, {65361,60518,1},{65363,60513,1},{65373,60513,1},{65374,60509,1},{65376,60508,1}, {65379,60513,1},{65384,60509,1},{65388,60509,1},{65384,60508,1},{65379,60511,1}, {65378,60508,1},{65376,60508,1},{65373,60511,1},{65363,60509,1},{65371,60506,1}, {65359,60508,1},{65358,60503,1},{65359,60499,1},{65356,60506,1},{65354,60506,1}, {65353,60498,1},{65353,60491,1},{65356,60478,1},{65361,60476,1},{65363,60478,1}, {65363,60479,1},{65373,60473,1},{65381,60463,1},{65393,60456,1},{65398,60458,1}, {65399,60456,1},{65403,60454,1},{65416,60459,1},{65421,60458,1},{65424,60456,1}, {65426,60456,1},{65424,60463,1},{65418,60479,1},{65419,60479,1},{65423,60474,1}, {65426,60479,1},{65426,60484,1},{65429,60481,1},{65433,60483,1},{65433,60488,1}, {65434,60484,1},{65431,60481,1},{65429,60479,1},{65429,60474,1},{65426,60471,1}, {65426,60464,1},{65428,60461,1},{65431,60458,1},{65438,60456,1},{65451,60458,1}, {65451,60459,1},{65456,60459,1},{65454,60463,1},{65456,60461,1},{65458,60458,1}, {65459,60458,1},{65464,60459,1},{65466,60458,1},{65469,60458,1},{65479,60463,1}, {65479,60464,1},{65471,60468,1},{65471,60473,1},{65468,60476,1},{65468,60483,1}, {65471,60476,1},{65473,60468,1},{65486,60463,1},{65498,60466,1},{65508,60469,1}, {65516,60478,1},{65516,60483,1},{65519,60488,1},{65519,60496,1},{65526,60499,1}, {65526,60501,1},{65523,60513,1},{65523,60523,1},{65516,60553,1},{65516,60559,1}, {65511,60571,1},{65513,60578,1},{65511,60584,1},{65514,60593,1},{65509,60596,1}, {65511,60598,1},{65514,60596,1},{65516,60596,1},{65519,60603,1},{65521,60611,1}, {65523,60616,1},{65521,60619,1},{65521,60621,1},{65519,60624,1},{65519,60634,1}, {65521,60636,1},{65514,60646,1},{65516,60654,1},{65514,60661,1},{65511,60668,1}, {65513,60674,1},{65509,60696,1},{1082,59428,129},{1083,59434,1},{1083,59438,1}, {1083,59443,1},{1082,59446,1},{1075,59441,1},{1070,59436,1},{1070,59434,1}, {1067,59433,1},{1053,59434,1},{1052,59433,1},{1048,59431,1},{1038,59434,1}, {1035,59436,1},{1033,59439,1},{1030,59436,1},{1013,59436,1},{1013,59433,1}, {1008,59424,1},{1007,59416,1},{1008,59409,1},{1007,59403,1},{1007,59381,1}, {1005,59373,1},{1008,59368,1},{1007,59353,1},{1003,59344,1},{1005,59344,1}, {1007,59344,1},{1010,59353,1},{1013,59354,1},{1017,59366,1},{1020,59373,1}, {1025,59373,1},{1023,59383,1},{1025,59386,1},{1028,59391,1},{1033,59389,1}, {1042,59388,1},{1053,59391,1},{1060,59389,1},{1063,59388,1},{1067,59381,1}, {1068,59376,1},{1068,59371,1},{1072,59369,1},{1073,59376,1},{1075,59388,1}, {1077,59389,1},{1075,59391,1},{1077,59393,1},{1075,59393,1},{1077,59394,1}, {1077,59396,1},{1080,59399,1},{1080,59401,1},{1078,59416,1},{1080,59419,1}, {1082,59428,1},{1135,59483,129},{1127,59483,1},{1125,59478,1},{1120,59473,1}, {1120,59468,1},{1118,59464,1},{1118,59463,1},{1113,59456,1},{1115,59451,1}, {1118,59451,1},{1118,59454,1},{1130,59468,1},{1133,59478,1},{1132,59479,1}, {1133,59481,1},{1135,59483,1},{60334,59433,129},{60336,59434,1},{60333,59439,1}, {60333,59448,1},{60329,59448,1},{60329,59449,1},{60333,59449,1},{60334,59461,1}, {60336,59461,1},{60336,59454,1},{60341,59453,1},{60339,59466,1},{60338,59468,1}, {60339,59469,1},{60338,59471,1},{60339,59473,1},{60338,59479,1},{60336,59481,1}, {60336,59483,1},{60338,59483,1},{60339,59491,1},{60344,59496,1},{60341,59484,1}, {60343,59476,1},{60343,59484,1},{60344,59489,1},{60348,59491,1},{60354,59491,1}, {60358,59493,1},{60359,59498,1},{60358,59498,1},{60356,59496,1},{60356,59499,1}, {60353,59498,1},{60349,59501,1},{60353,59503,1},{60354,59506,1},{60356,59504,1}, {60361,59506,1},{60361,59509,1},{60358,59511,1},{60358,59514,1},{60359,59518,1}, {60364,59518,1},{60366,59513,1},{60364,59508,1},{60364,59501,1},{60361,59499,1}, {60361,59488,1},{60359,59484,1},{60356,59481,1},{60359,59479,1},{60364,59471,1}, {60369,59473,1},{60366,59488,1},{60369,59501,1},{60368,59508,1},{60371,59513,1}, {60366,59523,1},{60366,59529,1},{60369,59526,1},{60369,59519,1},{60376,59508,1}, {60379,59504,1},{60383,59486,1},{60386,59484,1},{60388,59486,1},{60386,59498,1}, {60388,59498,1},{60391,59491,1},{60393,59481,1},{60394,59474,1},{60401,59471,1}, {60401,59478,1},{60398,59489,1},{60388,59511,1},{60386,59523,1},{60389,59538,1}, {60391,59526,1},{60398,59534,1},{60394,59538,1},{60399,59546,1},{60398,59549,1}, {60396,59548,1},{60394,59559,1},{60393,59553,1},{60391,59561,1},{60393,59578,1}, {60396,59586,1},{60393,59583,1},{60391,59578,1},{60389,59584,1},{60391,59591,1}, {60393,59598,1},{60396,59591,1},{60401,59591,1},{60401,59594,1},{60403,59594,1}, {60396,59614,1},{60394,59608,1},{60391,59608,1},{60391,59613,1},{60386,59604,1}, {60386,59599,1},{60383,59598,1},{60383,59601,1},{60376,59596,1},{60374,59591,1}, {60374,59589,1},{60376,59591,1},{60376,59589,1},{60371,59579,1},{60369,59581,1}, {60363,59574,1},{60356,59563,1},{60341,59549,1},{60336,59538,1},{60339,59536,1}, {60339,59531,1},{60343,59529,1},{60341,59528,1},{60336,59528,1},{60336,59514,1}, {60339,59518,1},{60336,59509,1},{60334,59508,1},{60328,59509,1},{60319,59499,1}, {60319,59496,1},{60323,59494,1},{60323,59493,1},{60319,59491,1},{60319,59489,1}, {60324,59483,1},{60324,59481,1},{60316,59486,1},{60313,59478,1},{60313,59473,1}, {60314,59469,1},{60316,59468,1},{60316,59473,1},{60321,59466,1},{60324,59468,1}, {60324,59466,1},{60324,59453,1},{60323,59459,1},{60318,59463,1},{60319,59456,1}, {60324,59449,1},{60324,59444,1},{60329,59438,1},{60329,59434,1},{60334,59433,1}, {60324,59564,129},{60326,59564,1},{60324,59571,1},{60324,59574,1},{60328,59573,1}, {60329,59579,1},{60334,59573,1},{60334,59578,1},{60334,59579,1},{60338,59578,1}, {60339,59584,1},{60341,59578,1},{60343,59576,1},{60343,59588,1},{60343,59589,1}, {60348,59584,1},{60349,59589,1},{60353,59588,1},{60353,59593,1},{60354,59596,1}, {60353,59599,1},{60358,59601,1},{60356,59604,1},{60358,59608,1},{60361,59606,1}, {60364,59613,1},{60368,59629,1},{60364,59631,1},{60361,59633,1},{60354,59631,1}, {60356,59638,1},{60364,59636,1},{60366,59633,1},{60368,59634,1},{60371,59638,1}, {60373,59628,1},{60378,59619,1},{60383,59624,1},{60386,59626,1},{60378,59631,1}, {60379,59634,1},{60384,59631,1},{60386,59638,1},{60389,59629,1},{60389,59624,1}, {60394,59626,1},{60394,59633,1},{60394,59636,1},{60398,59638,1},{60398,59649,1}, {60411,59641,1},{60408,59648,1},{60403,59666,1},{60401,59674,1},{60403,59674,1}, {60404,59676,1},{60406,59681,1},{60406,59689,1},{60403,59696,1},{60399,59701,1}, {60394,59704,1},{60391,59699,1},{60391,59693,1},{60396,59688,1},{60394,59683,1}, {60393,59681,1},{60391,59686,1},{60386,59684,1},{60388,59693,1},{60386,59694,1}, {60381,59694,1},{60383,59696,1},{60379,59699,1},{60381,59704,1},{60379,59708,1}, {60376,59708,1},{60371,59713,1},{60371,59714,1},{60376,59711,1},{60376,59719,1}, {60379,59713,1},{60383,59714,1},{60383,59708,1},{60388,59708,1},{60384,59703,1}, {60386,59701,1},{60394,59708,1},{60396,59714,1},{60398,59744,1},{60396,59749,1}, {60393,59749,1},{60389,59753,1},{60386,59759,1},{60384,59756,1},{60381,59759,1}, {60383,59743,1},{60386,59733,1},{60383,59733,1},{60384,59728,1},{60383,59724,1}, {60381,59721,1},{60376,59734,1},{60374,59758,1},{60373,59759,1},{60371,59759,1}, {60369,59748,1},{60368,59746,1},{60366,59751,1},{60368,59759,1},{60366,59763,1}, {60364,59753,1},{60363,59739,1},{60363,59741,1},{60361,59733,1},{60361,59709,1}, {60358,59714,1},{60358,59721,1},{60356,59711,1},{60353,59701,1},{60353,59708,1}, {60354,59713,1},{60354,59718,1},{60346,59694,1},{60348,59686,1},{60346,59676,1}, {60348,59673,1},{60348,59658,1},{60349,59656,1},{60353,59644,1},{60356,59643,1}, {60351,59639,1},{60344,59656,1},{60343,59656,1},{60343,59654,1},{60341,59656,1}, {60339,59673,1},{60336,59673,1},{60336,59676,1},{60333,59669,1},{60324,59673,1}, {60324,59668,1},{60326,59668,1},{60331,59663,1},{60333,59658,1},{60331,59654,1}, {60331,59651,1},{60329,59651,1},{60326,59643,1},{60329,59641,1},{60329,59639,1}, {60329,59638,1},{60333,59636,1},{60334,59634,1},{60333,59631,1},{60334,59629,1}, {60334,59626,1},{60338,59621,1},{60334,59616,1},{60338,59611,1},{60336,59606,1}, {60334,59606,1},{60333,59616,1},{60329,59618,1},{60329,59624,1},{60328,59621,1}, {60326,59628,1},{60321,59621,1},{60321,59623,1},{60321,59633,1},{60318,59626,1}, {60316,59628,1},{60316,59631,1},{60313,59629,1},{60316,59619,1},{60314,59613,1}, {60319,59611,1},{60324,59598,1},{60321,59596,1},{60323,59593,1},{60321,59591,1}, {60319,59591,1},{60318,59594,1},{60314,59593,1},{60311,59601,1},{60306,59599,1}, {60303,59603,1},{60301,59603,1},{60303,59599,1},{60306,59594,1},{60306,59588,1}, {60311,59584,1},{60313,59578,1},{60316,59579,1},{60316,59574,1},{60319,59573,1}, {60323,59564,1},{60326,59564,1},{10,56386,129},{5,56386,1},{0,56376,1}, {65534,56376,1},{65531,56379,1},{65534,56388,1},{65533,56394,1},{65521,56396,1}, {65518,56398,1},{65516,56396,1},{65513,56394,1},{65511,56398,1},{65506,56399,1}, {65503,56403,1},{65498,56413,1},{65491,56413,1},{65481,56421,1},{65481,56424,1}, {65478,56428,1},{65474,56428,1},{65474,56424,1},{65473,56423,1},{65471,56423,1}, {65468,56421,1},{65469,56413,1},{65468,56404,1},{65466,56404,1},{65458,56394,1}, {65453,56388,1},{65449,56386,1},{65444,56388,1},{65441,56391,1},{65436,56393,1}, {65434,56394,1},{65433,56398,1},{65434,56404,1},{65433,56416,1},{65434,56421,1}, {65434,56428,1},{65439,56436,1},{65439,56443,1},{65444,56448,1},{65444,56451,1}, {65449,56449,1},{65458,56453,1},{65459,56456,1},{65461,56458,1},{65466,56451,1}, {65469,56451,1},{65471,56448,1},{65474,56444,1},{65474,56439,1},{65479,56441,1}, {65478,56438,1},{65484,56441,1},{65489,56439,1},{65493,56441,1},{65501,56431,1}, {65506,56423,1},{65508,56424,1},{65513,56419,1},{65521,56416,1},{65534,56416,1}, {2,56408,1},{5,56408,1},{8,56404,1},{13,56404,1},{15,56399,1},{13,56398,1}, {10,56393,1},{10,56386,1},{65508,56369,129},{65498,56371,1},{65489,56374,1}, {65489,56379,1},{65486,56386,1},{65489,56396,1},{65491,56396,1},{65496,56396,1}, {65503,56396,1},{65508,56394,1},{65511,56389,1},{65508,56379,1},{65508,56369,1}, {63476,60876,130},{63478,60876,2},{63486,60866,2},{63486,60856,2},{63489,60854,2}, {63488,60851,2},{63484,60853,2},{63484,60851,2},{63483,60856,2},{63481,60856,2}, {63479,60856,2},{63481,60854,2},{63481,60849,2},{63484,60849,2},{63484,60851,2}, {63488,60849,2},{63486,60848,2},{63488,60849,2},{63489,60848,2},{63491,60853,2}, {63493,60853,2},{63494,60849,2},{63493,60849,2},{63493,60844,2},{63496,60843,2}, {63494,60841,2},{63499,60843,2},{63498,60841,2},{63498,60839,2},{63494,60839,2}, {63494,60838,2},{63501,60836,2},{63499,60834,2},{63504,60834,2},{63504,60831,2}, {63509,60829,2},{63511,60829,2},{63509,60831,2},{63506,60831,2},{63504,60834,2}, {63508,60839,2},{63509,60839,2},{63509,60841,2},{63508,60841,2},{63504,60838,2}, {63504,60839,2},{63504,60843,2},{63508,60846,2},{63504,60846,2},{63503,60839,2}, {63499,60839,2},{63503,60843,2},{63501,60843,2},{63503,60844,2},{63499,60844,2}, {63499,60848,2},{63503,60849,2},{63499,60849,2},{63498,60846,2},{63496,60846,2}, {63496,60853,2},{63499,60854,2},{63496,60854,2},{63496,60858,2},{63494,60856,2}, {63494,60854,2},{63489,60856,2},{63488,60863,2},{63489,60868,2},{63486,60868,2}, {63486,60871,2},{63483,60871,2},{63481,60876,2},{63481,60881,2},{63479,60878,2}, {63478,60878,2},{63474,60876,2},{63476,60876,2},{63381,60981,130},{63383,60983,2}, {63383,60984,2},{63389,60976,2},{63391,60971,2},{63389,60969,2},{63384,60968,2}, {63389,60969,2},{63391,60968,2},{63391,60963,2},{63393,60963,2},{63393,60961,2}, {63389,60958,2},{63394,60958,2},{63394,60954,2},{63383,60949,2},{63388,60949,2}, {63394,60954,2},{63398,60948,2},{63398,60951,2},{63399,60951,2},{63401,60953,2}, {63401,60951,2},{63403,60953,2},{63406,60951,2},{63408,60946,2},{63406,60944,2}, {63408,60944,2},{63409,60943,2},{63408,60941,2},{63411,60941,2},{63409,60939,2}, {63408,60939,2},{63408,60938,2},{63401,60939,2},{63403,60938,2},{63399,60936,2}, {63396,60938,2},{63396,60934,2},{63393,60936,2},{63393,60934,2},{63394,60933,2}, {63391,60928,2},{63394,60929,2},{63394,60928,2},{63394,60924,2},{63391,60916,2}, {63396,60923,2},{63398,60929,2},{63396,60931,2},{63398,60931,2},{63398,60934,2}, {63401,60933,2},{63403,60936,2},{63404,60929,2},{63403,60929,2},{63404,60928,2}, {63404,60924,2},{63406,60919,2},{63409,60919,2},{63408,60923,2},{63404,60926,2}, {63406,60929,2},{63404,60933,2},{63406,60934,2},{63404,60936,2},{63408,60936,2}, {63409,60936,2},{63411,60929,2},{63413,60939,2},{63419,60939,2},{63421,60939,2}, {63418,60934,2},{63419,60934,2},{63421,60938,2},{63424,60939,2},{63428,60938,2}, {63429,60933,2},{63428,60929,2},{63426,60929,2},{63426,60926,2},{63428,60928,2}, {63429,60929,2},{63434,60918,2},{63436,60919,2},{63433,60926,2},{63434,60929,2}, {63433,60929,2},{63433,60931,2},{63436,60934,2},{63436,60931,2},{63438,60933,2}, {63439,60928,2},{63443,60926,2},{63441,60923,2},{63441,60919,2},{63441,60923,2}, {63444,60924,2},{63444,60928,2},{63448,60928,2},{63449,60931,2},{63453,60929,2}, {63453,60926,2},{63451,60928,2},{63451,60926,2},{63453,60924,2},{63451,60923,2}, {63449,60921,2},{63449,60918,2},{63453,60918,2},{63454,60918,2},{63453,60916,2}, {63459,60921,2},{63459,60919,2},{63461,60919,2},{63463,60923,2},{63464,60921,2}, {63466,60913,2},{63464,60913,2},{63464,60911,2},{63469,60911,2},{63469,60904,2}, {63471,60911,2},{63469,60913,2},{63471,60914,2},{63469,60916,2},{63468,60918,2}, {63469,60921,2},{63466,60924,2},{63468,60926,2},{63469,60926,2},{63471,60928,2}, {63471,60926,2},{63473,60929,2},{63468,60928,2},{63469,60929,2},{63468,60933,2}, {63471,60936,2},{63473,60938,2},{63471,60939,2},{63469,60936,2},{63469,60938,2}, {63468,60941,2},{63466,60939,2},{63464,60939,2},{63464,60941,2},{63464,60946,2}, {63466,60944,2},{63466,60948,2},{63469,60951,2},{63474,60954,2},{63478,60956,2}, {63481,60954,2},{63483,60956,2},{63486,60956,2},{63484,60958,2},{63478,60958,2}, {63479,60961,2},{63478,60961,2},{63478,60958,2},{63474,60958,2},{63476,60961,2}, {63474,60961,2},{63473,60961,2},{63473,60964,2},{63471,60964,2},{63473,60958,2}, {63471,60954,2},{63469,60956,2},{63469,60959,2},{63469,60961,2},{63466,60961,2}, {63466,60963,2},{63464,60964,2},{63464,60966,2},{63466,60966,2},{63464,60969,2}, {63468,60969,2},{63466,60969,2},{63469,60971,2},{63473,60973,2},{63479,60971,2}, {63481,60973,2},{63483,60976,2},{63481,60974,2},{63473,60974,2},{63479,60979,2}, {63476,60979,2},{63478,60983,2},{63469,60974,2},{63468,60973,2},{63469,60979,2}, {63468,60988,2},{63466,60986,2},{63466,60973,2},{63463,60971,2},{63461,60964,2}, {63458,60966,2},{63459,60968,2},{63459,60973,2},{63458,60969,2},{63456,60969,2}, {63454,60971,2},{63454,60969,2},{63451,60968,2},{63449,60969,2},{63449,60971,2}, {63453,60971,2},{63454,60976,2},{63456,60979,2},{63454,60978,2},{63454,60974,2}, {63451,60973,2},{63451,60976,2},{63443,60978,2},{63443,60988,2},{63444,60989,2}, {63441,60986,2},{63441,60984,2},{63439,60984,2},{63436,60988,2},{63434,60996,2}, {63429,60998,2},{63433,61009,2},{63436,61009,2},{63434,61011,2},{63434,61014,2}, {63433,61011,2},{63431,61009,2},{63428,61011,2},{63424,61009,2},{63423,61014,2}, {63424,61014,2},{63428,61013,2},{63429,61014,2},{63424,61016,2},{63421,61011,2}, {63424,61008,2},{63428,61009,2},{63431,61008,2},{63429,60998,2},{63426,60996,2}, {63428,60996,2},{63429,60996,2},{63431,60994,2},{63433,60991,2},{63433,60989,2}, {63434,60986,2},{63434,60988,2},{63436,60984,2},{63436,60983,2},{63433,60984,2}, {63434,60983,2},{63433,60983,2},{63429,60981,2},{63426,60984,2},{63428,60979,2}, {63434,60981,2},{63434,60978,2},{63436,60983,2},{63438,60983,2},{63441,60983,2}, {63441,60976,2},{63446,60974,2},{63448,60971,2},{63448,60968,2},{63446,60966,2}, {63454,60968,2},{63454,60964,2},{63459,60963,2},{63459,60961,2},{63463,60959,2}, {63463,60956,2},{63469,60953,2},{63468,60951,2},{63464,60949,2},{63464,60951,2}, {63463,60946,2},{63461,60953,2},{63458,60949,2},{63461,60949,2},{63461,60948,2}, {63459,60946,2},{63461,60943,2},{63456,60944,2},{63458,60943,2},{63463,60941,2}, {63461,60939,2},{63458,60939,2},{63461,60938,2},{63459,60936,2},{63461,60936,2}, {63461,60934,2},{63466,60938,2},{63469,60936,2},{63466,60933,2},{63466,60928,2}, {63464,60931,2},{63464,60926,2},{63463,60928,2},{63463,60924,2},{63459,60928,2}, {63459,60924,2},{63458,60926,2},{63458,60924,2},{63453,60919,2},{63456,60926,2}, {63453,60931,2},{63448,60931,2},{63446,60934,2},{63444,60934,2},{63444,60938,2}, {63444,60934,2},{63446,60931,2},{63444,60928,2},{63441,60931,2},{63443,60933,2}, {63439,60934,2},{63441,60936,2},{63436,60938,2},{63438,60939,2},{63434,60936,2}, {63434,60938,2},{63433,60934,2},{63431,60934,2},{63431,60939,2},{63431,60941,2}, {63436,60946,2},{63431,60959,2},{63429,60959,2},{63429,60958,2},{63429,60961,2}, {63428,60961,2},{63429,60963,2},{63428,60963,2},{63428,60961,2},{63429,60958,2}, {63429,60953,2},{63428,60954,2},{63426,60953,2},{63429,60951,2},{63429,60949,2}, {63431,60949,2},{63431,60943,2},{63429,60943,2},{63429,60944,2},{63428,60946,2}, {63428,60941,2},{63423,60939,2},{63421,60941,2},{63421,60946,2},{63418,60946,2}, {63418,60948,2},{63419,60943,2},{63418,60943,2},{63414,60941,2},{63413,60946,2}, {63413,60944,2},{63408,60953,2},{63404,60954,2},{63406,60956,2},{63404,60958,2}, {63408,60959,2},{63406,60961,2},{63404,60959,2},{63403,60954,2},{63398,60953,2}, {63398,60956,2},{63396,60956,2},{63394,60961,2},{63394,60963,2},{63393,60964,2}, {63394,60968,2},{63391,60969,2},{63393,60971,2},{63393,60974,2},{63391,60976,2}, {63393,60981,2},{63389,60978,2},{63386,60983,2},{63383,60986,2},{63383,60983,2}, {63379,60983,2},{63381,60981,2},{63631,61024,130},{63636,61024,2},{63638,61023,2}, {63639,61024,2},{63643,61023,2},{63644,61024,2},{63646,61018,2},{63641,61019,2}, {63639,61019,2},{63643,61018,2},{63638,61014,2},{63639,61014,2},{63643,61014,2}, {63641,61013,2},{63644,61011,2},{63639,61006,2},{63636,61003,2},{63636,61001,2}, {63636,60999,2},{63633,60994,2},{63634,60993,2},{63634,60994,2},{63639,60999,2}, {63639,61004,2},{63641,60999,2},{63641,60994,2},{63643,60993,2},{63641,60996,2}, {63643,60998,2},{63644,60998,2},{63643,61001,2},{63646,60999,2},{63643,61003,2}, {63641,61004,2},{63641,61006,2},{63644,61008,2},{63643,61009,2},{63646,61009,2}, {63646,61011,2},{63643,61016,2},{63646,61014,2},{63649,61016,2},{63649,61018,2}, {63654,61018,2},{63658,61014,2},{63663,61016,2},{63666,61014,2},{63664,61011,2}, {63661,61013,2},{63661,61011,2},{63659,61011,2},{63656,61008,2},{63656,61009,2}, {63654,61009,2},{63651,61014,2},{63651,61011,2},{63649,61008,2},{63653,61009,2}, {63651,61006,2},{63649,61004,2},{63651,61004,2},{63653,61008,2},{63654,61008,2}, {63653,61003,2},{63651,60999,2},{63654,60998,2},{63654,61001,2},{63658,61001,2}, {63654,61003,2},{63654,61006,2},{63659,61008,2},{63659,61009,2},{63661,61008,2}, {63664,61009,2},{63668,61013,2},{63671,61011,2},{63674,61011,2},{63674,61009,2}, {63678,61013,2},{63676,61008,2},{63673,61006,2},{63674,61006,2},{63664,61001,2}, {63671,61003,2},{63671,60998,2},{63673,60996,2},{63674,60998,2},{63673,60999,2}, {63673,61003,2},{63676,61006,2},{63674,61003,2},{63676,61003,2},{63678,61003,2}, {63676,61004,2},{63679,61006,2},{63681,61006,2},{63679,61009,2},{63683,61014,2}, {63683,61011,2},{63683,61008,2},{63686,61008,2},{63684,61004,2},{63686,61006,2}, {63688,61001,2},{63684,60999,2},{63686,60996,2},{63688,60999,2},{63689,60999,2}, {63686,60994,2},{63684,60996,2},{63681,60998,2},{63681,60996,2},{63678,60996,2}, {63678,60994,2},{63678,60993,2},{63681,60994,2},{63683,60993,2},{63679,60991,2}, {63683,60991,2},{63671,60983,2},{63674,60983,2},{63679,60983,2},{63683,60988,2}, {63683,60986,2},{63684,60984,2},{63684,60988,2},{63684,60989,2},{63686,60989,2}, {63688,60993,2},{63689,60991,2},{63688,60988,2},{63691,60989,2},{63691,60991,2}, {63693,60989,2},{63696,60991,2},{63693,60993,2},{63693,60994,2},{63691,60996,2}, {63693,60998,2},{63694,60996,2},{63693,60999,2},{63694,61001,2},{63696,61004,2}, {63699,61004,2},{63701,61008,2},{63703,61004,2},{63696,61001,2},{63699,61001,2}, {63698,60998,2},{63699,60998,2},{63701,60999,2},{63701,61001,2},{63704,61001,2}, {63704,61003,2},{63708,61003,2},{63711,61008,2},{63711,61006,2},{63713,61008,2}, {63713,61006,2},{63704,60994,2},{63706,60994,2},{63711,61001,2},{63713,60999,2}, {63713,61003,2},{63716,61008,2},{63714,61011,2},{63713,61013,2},{63711,61014,2}, {63711,61013,2},{63709,61013,2},{63708,61009,2},{63706,61011,2},{63706,61018,2}, {63704,61009,2},{63701,61009,2},{63699,61009,2},{63699,61011,2},{63698,61008,2}, {63696,61008,2},{63694,61006,2},{63693,61009,2},{63694,61013,2},{63693,61014,2}, {63691,61009,2},{63693,61003,2},{63693,61001,2},{63689,61003,2},{63689,61008,2}, {63686,61009,2},{63688,61013,2},{63689,61013,2},{63689,61016,2},{63689,61014,2}, {63686,61013,2},{63686,61011,2},{63686,61018,2},{63681,61016,2},{63683,61019,2}, {63681,61019,2},{63679,61018,2},{63678,61014,2},{63676,61018,2},{63676,61016,2}, {63673,61016,2},{63671,61019,2},{63673,61021,2},{63676,61021,2},{63679,61024,2}, {63676,61021,2},{63674,61021,2},{63676,61023,2},{63674,61023,2},{63668,61023,2}, {63671,61014,2},{63669,61016,2},{63666,61021,2},{63668,61018,2},{63664,61019,2}, {63661,61024,2},{63659,61018,2},{63656,61019,2},{63656,61023,2},{63654,61023,2}, {63658,61026,2},{63656,61026,2},{63653,61028,2},{63656,61029,2},{63658,61033,2}, {63663,61034,2},{63668,61034,2},{63664,61036,2},{63658,61036,2},{63658,61038,2}, {63656,61033,2},{63656,61039,2},{63658,61044,2},{63656,61041,2},{63653,61039,2}, {63653,61043,2},{63649,61044,2},{63653,61049,2},{63649,61046,2},{63646,61046,2}, {63653,61036,2},{63654,61033,2},{63653,61031,2},{63651,61031,2},{63651,61034,2}, {63649,61029,2},{63651,61026,2},{63654,61024,2},{63651,61024,2},{63654,61021,2}, {63653,61021,2},{63649,61021,2},{63648,61024,2},{63644,61026,2},{63643,61029,2}, {63644,61026,2},{63641,61026,2},{63639,61028,2},{63638,61026,2},{63633,61026,2}, {63631,61028,2},{63631,61024,2},{63881,58634,130},{63881,58631,2},{63888,58626,2}, {63889,58628,2},{63894,58633,2},{63898,58633,2},{63904,58633,2},{63909,58628,2}, {63909,58633,2},{63909,58636,2},{63909,58638,2},{63914,58639,2},{63914,58641,2}, {63913,58646,2},{63909,58646,2},{63909,58651,2},{63911,58651,2},{63916,58646,2}, {63919,58639,2},{63926,58634,2},{63928,58624,2},{63931,58624,2},{63929,58623,2}, {63928,58623,2},{63924,58628,2},{63921,58628,2},{63919,58626,2},{63918,58623,2}, {63916,58626,2},{63914,58626,2},{63911,58624,2},{63911,58621,2},{63909,58613,2}, {63908,58609,2},{63911,58606,2},{63911,58599,2},{63914,58598,2},{63916,58598,2}, {63918,58598,2},{63916,58596,2},{63918,58594,2},{63914,58588,2},{63916,58586,2}, {63918,58584,2},{63921,58588,2},{63928,58594,2},{63934,58593,2},{63934,58586,2}, {63938,58579,2},{63938,58569,2},{63943,58566,2},{63943,58568,2},{63944,58568,2}, {63946,58566,2},{63944,58564,2},{63946,58559,2},{63958,58556,2},{63958,58553,2}, {63954,58551,2},{63949,58549,2},{63946,58556,2},{63944,58556,2},{63944,58548,2}, {63948,58546,2},{63948,58543,2},{63951,58538,2},{63949,58536,2},{63951,58534,2}, {63956,58536,2},{63958,58533,2},{63964,58533,2},{63966,58534,2},{63966,58539,2}, {63969,58539,2},{63974,58544,2},{63976,58544,2},{63979,58541,2},{63978,58544,2}, {63973,58549,2},{63966,58551,2},{63963,58556,2},{63963,58561,2},{63968,58556,2}, {63968,58558,2},{63969,58558,2},{63971,58554,2},{63976,58553,2},{63979,58549,2}, {63994,58541,2},{63998,58541,2},{63998,58546,2},{64001,58549,2},{63999,58554,2}, {64001,58556,2},{64004,58548,2},{64006,58548,2},{64006,58551,2},{64004,58558,2}, {64006,58561,2},{64006,58564,2},{64008,58564,2},{64011,58561,2},{64011,58563,2}, {64011,58568,2},{64006,58571,2},{64001,58573,2},{64001,58579,2},{63993,58588,2}, {63989,58591,2},{63986,58593,2},{63989,58598,2},{63988,58599,2},{63986,58599,2}, {63986,58598,2},{63979,58604,2},{63979,58608,2},{63974,58606,2},{63968,58609,2}, {63969,58618,2},{63968,58621,2},{63966,58618,2},{63963,58626,2},{63959,58629,2}, {63956,58633,2},{63949,58636,2},{63943,58634,2},{63941,58643,2},{63943,58648,2}, {63939,58658,2},{63936,58659,2},{63934,58653,2},{63929,58651,2},{63929,58644,2}, {63919,58651,2},{63914,58651,2},{63914,58653,2},{63918,58656,2},{63913,58668,2}, {63914,58673,2},{63914,58676,2},{63911,58676,2},{63911,58678,2},{63909,58678,2}, {63908,58676,2},{63903,58678,2},{63901,58673,2},{63903,58673,2},{63906,58668,2}, {63903,58663,2},{63901,58668,2},{63898,58663,2},{63894,58659,2},{63894,58654,2}, {63894,58646,2},{63893,58641,2},{63889,58641,2},{63889,58651,2},{63876,58649,2}, {63876,58643,2},{63881,58634,2},{63879,58633,2},{62211,59506,130},{62216,59501,2}, {62218,59491,2},{62223,59484,2},{62251,59466,2},{62269,59463,2},{62278,59458,2}, {62283,59456,2},{62286,59456,2},{62288,59461,2},{62296,59459,2},{62306,59461,2}, {62311,59464,2},{62319,59463,2},{62321,59463,2},{62323,59466,2},{62326,59468,2}, {62336,59463,2},{62348,59461,2},{62351,59461,2},{62358,59468,2},{62368,59469,2}, {62369,59474,2},{62366,59484,2},{62368,59491,2},{62373,59494,2},{62376,59503,2}, {62379,59501,2},{62383,59503,2},{62384,59506,2},{62388,59509,2},{62389,59516,2}, {62396,59519,2},{62399,59524,2},{62403,59524,2},{62414,59529,2},{62418,59536,2}, {62429,59543,2},{62433,59548,2},{62438,59549,2},{62443,59556,2},{62449,59558,2}, {62459,59568,2},{62466,59569,2},{62473,59566,2},{62483,59569,2},{62494,59564,2}, {62501,59568,2},{62506,59564,2},{62513,59571,2},{62524,59571,2},{62531,59574,2}, {62536,59569,2},{62541,59568,2},{62543,59569,2},{62543,59566,2},{62548,59564,2}, {62571,59573,2},{62576,59573,2},{62583,59573,2},{62593,59576,2},{62611,59576,2}, {62616,59579,2},{62626,59591,2},{62629,59606,2},{62634,59614,2},{62646,59616,2}, {62649,59619,2},{62654,59618,2},{62663,59619,2},{62666,59624,2},{62671,59626,2}, {62683,59623,2},{62696,59628,2},{62694,59626,2},{62696,59624,2},{62719,59626,2}, {62726,59629,2},{62726,59633,2},{62724,59639,2},{62726,59639,2},{62733,59646,2}, {62738,59648,2},{62741,59649,2},{62748,59649,2},{62751,59653,2},{62756,59651,2}, {62766,59653,2},{62771,59651,2},{62776,59646,2},{62789,59646,2},{62791,59651,2}, {62798,59658,2},{62799,59664,2},{62806,59673,2},{62811,59693,2},{62811,59698,2}, {62813,59701,2},{62811,59709,2},{62813,59729,2},{62809,59738,2},{62808,59756,2}, {62806,59761,2},{62806,59766,2},{62799,59776,2},{62798,59791,2},{62799,59794,2}, {62799,59799,2},{62794,59806,2},{62789,59823,2},{62793,59833,2},{62793,59836,2}, {62796,59843,2},{62796,59851,2},{62799,59863,2},{62799,59881,2},{62803,59891,2}, {62803,59901,2},{62811,59918,2},{62808,59929,2},{62804,59936,2},{62806,59944,2}, {62804,59948,2},{62803,59951,2},{62798,59951,2},{62793,59958,2},{62793,59951,2}, {62796,59949,2},{62801,59948,2},{62801,59938,2},{62804,59929,2},{62803,59921,2}, {62798,59918,2},{62796,59909,2},{62793,59911,2},{62788,59913,2},{62784,59906,2}, {62783,59904,2},{62779,59904,2},{62774,59899,2},{62778,59889,2},{62789,59883,2}, {62788,59866,2},{62786,59866,2},{62783,59869,2},{62779,59869,2},{62774,59864,2}, {62776,59856,2},{62774,59849,2},{62784,59833,2},{62786,59828,2},{62784,59818,2}, {62789,59806,2},{62793,59804,2},{62793,59794,2},{62789,59788,2},{62789,59784,2}, {62798,59771,2},{62799,59758,2},{62808,59736,2},{62808,59729,2},{62808,59711,2}, {62808,59704,2},{62806,59701,2},{62806,59691,2},{62804,59688,2},{62806,59683,2}, {62798,59666,2},{62793,59661,2},{62789,59653,2},{62784,59653,2},{62774,59656,2}, {62768,59654,2},{62763,59656,2},{62739,59654,2},{62724,59646,2},{62721,59641,2}, {62723,59639,2},{62723,59638,2},{62716,59633,2},{62689,59634,2},{62683,59631,2}, {62671,59631,2},{62664,59626,2},{62656,59626,2},{62646,59619,2},{62636,59619,2}, {62628,59616,2},{62628,59613,2},{62619,59603,2},{62616,59603,2},{62614,59591,2}, {62611,59589,2},{62599,59583,2},{62601,59586,2},{62606,59588,2},{62603,59589,2}, {62598,59586,2},{62596,59583,2},{62593,59583,2},{62591,59579,2},{62586,59583,2}, {62579,59581,2},{62568,59583,2},{62569,59579,2},{62568,59578,2},{62561,59578,2}, {62553,59571,2},{62536,59581,2},{62521,59574,2},{62504,59573,2},{62501,59573,2}, {62494,59579,2},{62486,59579,2},{62479,59581,2},{62476,59579,2},{62471,59579,2}, {62469,59576,2},{62448,59564,2},{62431,59549,2},{62424,59548,2},{62409,59534,2}, {62406,59529,2},{62393,59524,2},{62384,59514,2},{62381,59509,2},{62368,59496,2}, {62364,59479,2},{62361,59476,2},{62354,59476,2},{62349,59471,2},{62343,59471,2}, {62341,59468,2},{62331,59473,2},{62328,59471,2},{62323,59469,2},{62321,59466,2}, {62318,59468,2},{62314,59468,2},{62313,59469,2},{62309,59469,2},{62304,59469,2}, {62303,59469,2},{62301,59464,2},{62296,59466,2},{62283,59461,2},{62271,59464,2}, {62266,59469,2},{62263,59468,2},{62253,59468,2},{62239,59481,2},{62228,59483,2}, {62226,59489,2},{62223,59494,2},{62223,59501,2},{62216,59506,2},{62163,60199,131}, {62163,60194,3},{62168,60193,3},{62168,60186,3},{62169,60183,3},{62194,60186,3}, {62216,60183,3},{62221,60184,3},{62229,60189,3},{62239,60206,3},{62248,60208,3}, {62254,60218,3},{62264,60226,3},{62273,60218,3},{62276,60209,3},{62276,60206,3}, {62279,60196,3},{62286,60189,3},{62293,60179,3},{62299,60173,3},{62306,60171,3}, {62309,60173,3},{62316,60169,3},{62318,60166,3},{62326,60163,3},{62331,60161,3}, {62331,60156,3},{62334,60149,3},{62339,60148,3},{62343,60143,3},{62343,60136,3}, {62346,60134,3},{62349,60129,3},{62344,60124,3},{62344,60121,3},{62358,60104,3}, {62364,60098,3},{62369,60089,3},{62378,60089,3},{62386,60079,3},{62389,60078,3}, {62394,60053,3},{62398,60048,3},{62399,60043,3},{62409,60034,3},{62408,60031,3}, {62404,60031,3},{62403,60028,3},{62409,60021,3},{62411,60014,3},{62413,60011,3}, {62421,60008,3},{62423,60003,3},{62428,60003,3},{62433,60001,3},{62436,59996,3}, {62439,59994,3},{62441,59989,3},{62451,59978,3},{62451,59974,3},{62449,59973,3}, {62441,59973,3},{62441,59964,3},{62434,59961,3},{62431,59954,3},{62429,59953,3}, {62428,59936,3},{62443,59936,3},{62449,59938,3},{62456,59936,3},{62463,59928,3}, {62468,59924,3},{62471,59919,3},{62476,59918,3},{62478,59914,3},{62479,59914,3}, {62488,59899,3},{62494,59894,3},{62498,59888,3},{62506,59879,3},{62506,59874,3}, {62511,59874,3},{62513,59873,3},{62519,59859,3},{62524,59856,3},{62526,59849,3}, {62524,59846,3},{62526,59843,3},{62524,59828,3},{62518,59821,3},{62513,59821,3}, {62506,59814,3},{62506,59813,3},{62508,59811,3},{62506,59808,3},{62509,59803,3}, {62508,59799,3},{62506,59796,3},{62509,59793,3},{62509,59789,3},{62508,59786,3}, {62513,59779,3},{62513,59773,3},{62518,59773,3},{62519,59781,3},{62523,59786,3}, {62533,59794,3},{62538,59803,3},{62549,59804,3},{62554,59808,3},{62558,59813,3}, {62558,59823,3},{62559,59826,3},{62573,59839,3},{62576,59839,3},{62588,59853,3}, {62594,59858,3},{62598,59859,3},{62601,59866,3},{62609,59871,3},{62616,59871,3}, {62619,59874,3},{62626,59884,3},{62629,59893,3},{62639,59896,3},{62644,59903,3}, {62646,59906,3},{62658,59908,3},{62659,59916,3},{62669,59924,3},{62676,59934,3}, {62678,59934,3},{62683,59933,3},{62686,59934,3},{62688,59941,3},{62689,59946,3}, {62694,59946,3},{62699,59948,3},{62701,59953,3},{62699,59963,3},{62696,59964,3}, {62694,59966,3},{62701,59969,3},{62704,59969,3},{62706,59968,3},{62709,59959,3}, {62713,59959,3},{62716,59968,3},{62719,59973,3},{62724,59974,3},{62724,59978,3}, {62721,59978,3},{62721,59979,3},{62728,59986,3},{62729,59988,3},{62728,59988,3}, {62728,59991,3},{62733,59998,3},{62738,59998,3},{62739,60003,3},{62744,60004,3}, {62744,60011,3},{62751,60018,3},{62751,60019,3},{62748,60023,3},{62751,60026,3}, {62751,60034,3},{62758,60028,3},{62759,60029,3},{62756,60036,3},{62763,60044,3}, {62774,60046,3},{62774,60051,3},{62783,60054,3},{62783,60058,3},{62781,60058,3}, {62779,60058,3},{62781,60068,3},{62783,60069,3},{62786,60069,3},{62783,60071,3}, {62783,60074,3},{62791,60078,3},{62788,60083,3},{62789,60091,3},{62791,60091,3}, {62793,60089,3},{62794,60089,3},{62796,60096,3},{62791,60101,3},{62796,60103,3}, {62793,60104,3},{62793,60108,3},{62796,60109,3},{62798,60113,3},{62801,60113,3}, {62811,60118,3},{62811,60119,3},{62808,60121,3},{62808,60124,3},{62811,60131,3}, {62816,60136,3},{62816,60139,3},{62821,60141,3},{62819,60144,3},{62824,60148,3}, {62819,60153,3},{62823,60156,3},{62824,60154,3},{62826,60156,3},{62831,60158,3}, {62834,60161,3},{62848,60166,3},{62858,60164,3},{62859,60161,3},{62861,60163,3}, {62863,60161,3},{62864,60159,3},{62868,60163,3},{62874,60163,3},{62879,60164,3}, {62881,60163,3},{62886,60166,3},{62899,60164,3},{62904,60169,3},{62911,60171,3}, {62916,60169,3},{62924,60163,3},{62933,60161,3},{62941,60153,3},{62944,60154,3}, {62948,60153,3},{62956,60154,3},{62964,60148,3},{62968,60149,3},{62971,60148,3}, {62973,60146,3},{62971,60144,3},{62971,60141,3},{62976,60139,3},{62981,60134,3}, {62979,60131,3},{62981,60129,3},{62978,60129,3},{62976,60128,3},{62979,60124,3}, {62984,60126,3},{62986,60126,3},{62983,60121,3},{62983,60116,3},{62978,60118,3}, {62979,60113,3},{62976,60111,3},{62981,60108,3},{62981,60104,3},{62978,60103,3}, {62978,60098,3},{62973,60096,3},{62971,60094,3},{62968,60094,3},{62968,60093,3}, {62973,60089,3},{62976,60086,3},{62976,60083,3},{62979,60083,3},{62979,60076,3}, {62984,60076,3},{62993,60074,3},{62999,60078,3},{63009,60086,3},{63016,60089,3}, {63021,60094,3},{63028,60091,3},{63034,60091,3},{63043,60094,3},{63056,60096,3}, {63061,60099,3},{63074,60104,3},{63086,60103,3},{63099,60111,3},{63108,60109,3}, {63113,60104,3},{63123,60103,3},{63128,60108,3},{63131,60111,3},{63138,60101,3}, {63146,60094,3},{63156,60073,3},{63153,60069,3},{63149,60059,3},{63144,60048,3}, {63139,60044,3},{63138,60034,3},{63138,60026,3},{63134,60018,3},{63138,60001,3}, {63139,59996,3},{63143,59994,3},{63166,59993,3},{63169,59989,3},{63176,59984,3}, {63183,59984,3},{63189,59983,3},{63198,59986,3},{63204,59981,3},{63211,59984,3}, {63216,59983,3},{63221,59983,3},{63224,59978,3},{63231,59978,3},{63236,59973,3}, {63243,59974,3},{63254,59971,3},{63263,59976,3},{63273,59974,3},{63279,59964,3}, {63283,59963,3},{63296,59961,3},{63308,59951,3},{63306,59943,3},{63309,59938,3}, {63308,59934,3},{63308,59931,3},{63306,59928,3},{63309,59924,3},{63308,59919,3}, {63309,59916,3},{63319,59901,3},{63328,59898,3},{63329,59896,3},{63326,59886,3}, {63319,59879,3},{63318,59879,3},{63316,59878,3},{63313,59874,3},{63313,59871,3}, {63309,59873,3},{63314,59866,3},{63311,59864,3},{63311,59863,3},{63311,59856,3}, {63308,59856,3},{63306,59853,3},{63308,59848,3},{63313,59848,3},{63311,59846,3}, {63309,59846,3},{63311,59841,3},{63313,59841,3},{63313,59833,3},{63313,59831,3}, {63313,59826,3},{63313,59824,3},{63314,59826,3},{63316,59821,3},{63314,59818,3}, {63318,59816,3},{63314,59811,3},{63314,59808,3},{63316,59806,3},{63314,59803,3}, {63316,59799,3},{63314,59799,3},{63318,59794,3},{63318,59791,3},{63318,59786,3}, {63319,59781,3},{63318,59781,3},{63318,59776,3},{63319,59774,3},{63326,59771,3}, {63324,59768,3},{63326,59763,3},{63326,59759,3},{63323,59759,3},{63324,59756,3}, {63321,59753,3},{63324,59751,3},{63323,59746,3},{63324,59743,3},{63328,59741,3}, {63328,59738,3},{63334,59738,3},{63346,59744,3},{63351,59741,3},{63356,59743,3}, {63361,59743,3},{63368,59748,3},{63371,59743,3},{63374,59743,3},{63378,59744,3}, {63383,59741,3},{63384,59741,3},{63393,59744,3},{63403,59751,3},{63404,59751,3}, {63404,59748,3},{63408,59746,3},{63414,59753,3},{63428,59753,3},{63431,59751,3}, {63439,59754,3},{63441,59753,3},{63439,59751,3},{63444,59748,3},{63446,59744,3}, {63453,59751,3},{63454,59748,3},{63456,59741,3},{63463,59751,3},{63468,59746,3}, {63469,59743,3},{63464,59739,3},{63464,59738,3},{63471,59739,3},{63474,59736,3}, {63484,59734,3},{63493,59738,3},{63499,59728,3},{63509,59726,3},{63509,59724,3}, {63508,59721,3},{63509,59721,3},{63513,59719,3},{63516,59724,3},{63518,59721,3}, {63519,59719,3},{63521,59726,3},{63526,59731,3},{63529,59733,3},{63531,59738,3}, {63533,59739,3},{63533,59746,3},{63538,59751,3},{63563,59724,3},{63564,59724,3}, {63568,59728,3},{63573,59729,3},{63578,59733,3},{63583,59734,3},{63588,59736,3}, {63593,59739,3},{63598,59741,3},{63603,59744,3},{63608,59746,3},{63613,59749,3}, {63616,59751,3},{63621,59754,3},{63626,59756,3},{63631,59758,3},{63631,59766,3}, {63644,59764,3},{63644,59759,3},{63649,59761,3},{63654,59761,3},{63659,59763,3}, {63664,59764,3},{63669,59766,3},{63673,59768,3},{63678,59769,3},{63683,59771,3}, {63688,59773,3},{63693,59774,3},{63698,59776,3},{63703,59778,3},{63708,59779,3}, {63713,59781,3},{63713,59791,3},{63716,59791,3},{63716,59784,3},{63723,59779,3}, {63731,59776,3},{63751,59764,3},{63753,59768,3},{63754,59768,3},{63759,59764,3}, {63763,59764,3},{63768,59759,3},{63771,59758,3},{63774,59759,3},{63776,59763,3}, {63791,59744,3},{63798,59731,3},{63801,59716,3},{63806,59706,3},{63808,59699,3}, {63811,59696,3},{63836,59693,3},{63844,59689,3},{63853,59691,3},{63866,59688,3}, {63873,59689,3},{63878,59694,3},{63886,59701,3},{63893,59701,3},{63896,59704,3}, {63908,59703,3},{63908,59698,3},{63904,59694,3},{63903,59691,3},{63903,59686,3}, {63903,59681,3},{63904,59674,3},{63904,59669,3},{63904,59663,3},{63904,59658,3}, {63904,59651,3},{63904,59646,3},{63904,59639,3},{63904,59634,3},{63906,59629,3}, {63906,59623,3},{63906,59618,3},{63906,59611,3},{63906,59606,3},{63906,59599,3}, {63906,59594,3},{63908,59588,3},{63908,59583,3},{63908,59578,3},{63908,59571,3}, {63908,59566,3},{63908,59559,3},{63908,59554,3},{63908,59548,3},{63909,59543,3}, {63909,59538,3},{63909,59531,3},{63909,59526,3},{63909,59519,3},{63916,59519,3}, {63921,59519,3},{63926,59519,3},{63931,59518,3},{63938,59518,3},{63943,59518,3}, {63948,59516,3},{63954,59516,3},{63959,59516,3},{63964,59516,3},{63971,59514,3}, {63976,59514,3},{63981,59514,3},{63988,59513,3},{63993,59509,3},{63996,59506,3}, {64001,59503,3},{64004,59498,3},{64009,59494,3},{64013,59491,3},{64018,59488,3}, {64021,59483,3},{64026,59479,3},{64026,59498,3},{64054,59493,3},{64068,59496,3}, {64074,59501,3},{64078,59501,3},{64081,59499,3},{64081,59501,3},{64084,59503,3}, {64088,59501,3},{64094,59498,3},{64099,59496,3},{64106,59491,3},{64114,59491,3}, {64118,59488,3},{64126,59489,3},{64129,59494,3},{64138,59498,3},{64139,59494,3}, {64141,59496,3},{64149,59489,3},{64156,59489,3},{64158,59479,3},{64161,59476,3}, {64163,59468,3},{64166,59463,3},{64168,59463,3},{64168,59456,3},{64171,59454,3}, {64178,59441,3},{64181,59438,3},{64181,59433,3},{64188,59433,3},{64189,59429,3}, {64188,59428,3},{64188,59424,3},{64183,59419,3},{64184,59416,3},{64183,59411,3}, {64188,59403,3},{64181,59391,3},{64181,59383,3},{64186,59376,3},{64184,59369,3}, {64183,59363,3},{64181,59353,3},{64184,59351,3},{64191,59349,3},{64201,59334,3}, {64206,59331,3},{64209,59324,3},{64221,59324,3},{64221,59323,3},{64224,59319,3}, {64223,59318,3},{64224,59314,3},{64221,59308,3},{64221,59298,3},{64223,59294,3}, {64229,59288,3},{64229,59281,3},{64233,59271,3},{64236,59271,3},{64239,59266,3}, {64238,59259,3},{64234,59258,3},{64238,59254,3},{64241,59253,3},{64241,59249,3}, {64251,59243,3},{64249,59241,3},{64253,59236,3},{64258,59234,3},{64261,59231,3}, {64264,59231,3},{64266,59229,3},{64271,59229,3},{64273,59223,3},{64266,59213,3}, {64266,59203,3},{64269,59199,3},{64271,59194,3},{64276,59189,3},{64279,59188,3}, {64281,59181,3},{64284,59179,3},{64286,59173,3},{64289,59168,3},{64289,59156,3}, {64289,59149,3},{64283,59146,3},{64281,59143,3},{64283,59139,3},{64283,59134,3}, {64284,59133,3},{64286,59128,3},{64284,59126,3},{64286,59124,3},{64284,59123,3}, {64283,59121,3},{64288,59118,3},{64288,59114,3},{64288,59113,3},{64286,59109,3}, {64286,59108,3},{64289,59106,3},{64289,59096,3},{64296,59091,3},{64299,59086,3}, {64308,59089,3},{64313,59088,3},{64311,59084,3},{64314,59081,3},{64316,59073,3}, {64319,59068,3},{64324,59068,3},{64326,59066,3},{64321,59064,3},{64321,59063,3}, {64324,59061,3},{64333,59056,3},{64336,59038,3},{64339,59034,3},{64344,59036,3}, {64348,59033,3},{64354,59033,3},{64361,59029,3},{64363,59024,3},{64366,59024,3}, {64363,59023,3},{64359,59021,3},{64358,59021,3},{64363,59016,3},{64364,59014,3}, {64371,59018,3},{64373,59016,3},{64374,59019,3},{64378,59014,3},{64383,59014,3}, {64384,59013,3},{64386,59006,3},{64388,59004,3},{64398,59001,3},{64403,59003,3}, {64404,58999,3},{64409,58996,3},{64411,58998,3},{64414,58999,3},{64416,58996,3}, {64419,58996,3},{64423,58998,3},{64426,59003,3},{64433,59003,3},{64438,59006,3}, {64444,59004,3},{64451,59003,3},{64456,58994,3},{64468,58998,3},{64471,58998,3}, {64474,58993,3},{64479,58993,3},{64488,58991,3},{64491,58996,3},{64499,58998,3}, {64506,59004,3},{64514,59008,3},{64526,59006,3},{64533,59003,3},{64541,59003,3}, {64551,59006,3},{64556,59003,3},{64559,59003,3},{64564,58999,3},{64568,58993,3}, {64564,58986,3},{64563,58984,3},{64558,58984,3},{64556,58981,3},{64553,58979,3}, {64553,58974,3},{64556,58971,3},{64556,58966,3},{64559,58966,3},{64561,58964,3}, {64559,58959,3},{64563,58958,3},{64558,58956,3},{64561,58954,3},{64558,58949,3}, {64559,58946,3},{64556,58933,3},{64558,58928,3},{64556,58926,3},{64556,58919,3}, {64553,58913,3},{64553,58901,3},{64548,58893,3},{64548,58888,3},{64546,58873,3}, {64541,58871,3},{64538,58859,3},{64528,58846,3},{64509,58828,3},{64508,58823,3}, {64504,58819,3},{64504,58813,3},{64504,58804,3},{64499,58804,3},{64498,58794,3}, {64494,58794,3},{64491,58789,3},{64486,58778,3},{64483,58776,3},{64478,58773,3}, {64474,58769,3},{64468,58766,3},{64464,58763,3},{64468,58756,3},{64471,58749,3}, {64471,58734,3},{64468,58729,3},{64464,58724,3},{64459,58723,3},{64451,58714,3}, {64446,58714,3},{64441,58709,3},{64438,58708,3},{64436,58703,3},{64436,58698,3}, {64431,58694,3},{64431,58684,3},{64426,58678,3},{64423,58661,3},{64424,58658,3}, {64431,58658,3},{64436,58661,3},{64436,58658,3},{64436,58654,3},{64434,58651,3}, {64434,58646,3},{64436,58638,3},{64439,58629,3},{64439,58626,3},{64441,58614,3}, {64441,58606,3},{64443,58596,3},{64441,58591,3},{64441,58579,3},{64439,58563,3}, {64444,58558,3},{64443,58548,3},{64444,58543,3},{64433,58519,3},{64429,58503,3}, {64433,58493,3},{64438,58489,3},{64443,58483,3},{64434,58473,3},{64553,58473,3}, {64558,58476,3},{64558,58479,3},{64563,58483,3},{64568,58481,3},{64573,58478,3}, {64578,58476,3},{64579,58474,3},{64579,58479,3},{64583,58478,3},{64584,58481,3}, {64586,58479,3},{64586,58483,3},{64593,58484,3},{64591,58476,3},{64584,58469,3}, {64579,58461,3},{64573,58456,3},{64569,58448,3},{64564,58446,3},{64559,58439,3}, {64554,58436,3},{64554,58431,3},{64551,58428,3},{64549,58423,3},{64543,58418,3}, {64539,58411,3},{64536,58406,3},{64539,58403,3},{64536,58399,3},{64536,58321,3}, {64536,58318,3},{64539,58319,3},{64543,58319,3},{64548,58321,3},{64553,58319,3}, {64556,58318,3},{64561,58309,3},{64569,58311,3},{64576,58306,3},{64583,58306,3}, {64583,58303,3},{64586,58299,3},{64588,58283,3},{64591,58276,3},{64591,58269,3}, {64594,58263,3},{64596,58216,3},{64599,58218,3},{64603,58223,3},{64611,58228,3}, {64614,58234,3},{64619,58234,3},{64619,58238,3},{64621,58239,3},{64628,58241,3}, {64638,58239,3},{64643,58236,3},{64646,58229,3},{64664,58219,3},{64668,58214,3}, {64668,58209,3},{64674,58204,3},{64676,58201,3},{64688,58201,3},{64691,58196,3}, {64694,58193,3},{64696,58189,3},{64699,58183,3},{64709,58181,3},{64716,58176,3}, {64723,58176,3},{64731,58173,3},{64734,58171,3},{64739,58161,3},{64741,58159,3}, {64748,58158,3},{64748,58163,3},{64749,58164,3},{64753,58166,3},{64758,58166,3}, {64763,58153,3},{64769,58149,3},{64783,58134,3},{64783,58136,3},{64784,58141,3}, {64788,58141,3},{64791,58143,3},{64801,58139,3},{64798,58146,3},{64803,58153,3}, {64803,58161,3},{64806,58166,3},{64814,58164,3},{64816,58161,3},{64821,58159,3}, {64826,58156,3},{64833,58159,3},{64848,58161,3},{64851,58166,3},{64856,58168,3}, {64858,58174,3},{64863,58178,3},{64866,58184,3},{64878,58201,3},{64884,58216,3}, {64891,58221,3},{64896,58223,3},{64916,58219,3},{64919,58218,3},{64931,58218,3}, {64938,58223,3},{64949,58223,3},{64951,58226,3},{64958,58231,3},{64971,58239,3}, {64976,58239,3},{64983,58243,3},{64989,58239,3},{65001,58244,3},{65004,58244,3}, {65011,58248,3},{65013,58246,3},{65018,58246,3},{65021,58244,3},{65023,58246,3}, {65024,58251,3},{65028,58251,3},{65028,58259,3},{65031,58261,3},{65029,58268,3}, {65031,58274,3},{65036,58276,3},{65036,58279,3},{65041,58283,3},{65041,58288,3}, {65046,58289,3},{65048,58296,3},{65058,58299,3},{65058,58303,3},{65059,58303,3}, {65061,58304,3},{65061,58313,3},{65066,58319,3},{65066,58323,3},{65071,58329,3}, {65076,58329,3},{65074,58333,3},{65078,58336,3},{65078,58339,3},{65084,58346,3}, {65086,58358,3},{65088,58358,3},{65086,58364,3},{65089,58368,3},{65084,58371,3}, {65089,58374,3},{65086,58376,3},{65089,58383,3},{65088,58384,3},{65091,58386,3}, {65093,58388,3},{65093,58398,3},{65091,58401,3},{65093,58404,3},{65093,58408,3}, {65098,58408,3},{65098,58413,3},{65094,58416,3},{65099,58418,3},{65101,58419,3}, {65098,58421,3},{65096,58424,3},{65098,58426,3},{65099,58429,3},{65098,58434,3}, {65103,58436,3},{65099,58438,3},{65098,58441,3},{65108,58449,3},{65111,58449,3}, {65113,58453,3},{65114,58453,3},{65118,58453,3},{65121,58459,3},{65119,58468,3}, {65124,58469,3},{65124,58474,3},{65119,58473,3},{65119,58476,3},{65116,58478,3}, {65123,58481,3},{65121,58484,3},{65118,58486,3},{65123,58491,3},{65123,58496,3}, {65119,58501,3},{65123,58503,3},{65118,58506,3},{65113,58504,3},{65106,58511,3}, {65106,58514,3},{65103,58516,3},{65104,58519,3},{65109,58521,3},{65111,58526,3}, {65108,58529,3},{65104,58528,3},{65103,58533,3},{65101,58533,3},{65103,58533,3}, {65103,58536,3},{65106,58539,3},{65111,58541,3},{65114,58541,3},{65119,58543,3}, {65124,58544,3},{65131,58544,3},{65136,58546,3},{65141,58548,3},{65146,58548,3}, {65153,58549,3},{65158,58551,3},{65163,58551,3},{65169,58553,3},{65174,58553,3}, {65179,58554,3},{65186,58554,3},{65191,58556,3},{65196,58558,3},{65201,58558,3}, {65208,58559,3},{65213,58559,3},{65218,58561,3},{65224,58563,3},{65229,58563,3}, {65234,58564,3},{65239,58564,3},{65246,58566,3},{65251,58568,3},{65256,58568,3}, {65263,58569,3},{65268,58569,3},{65273,58571,3},{65278,58571,3},{65284,58573,3}, {65289,58574,3},{65294,58574,3},{65299,58576,3},{65306,58576,3},{65311,58578,3}, {65316,58579,3},{65323,58579,3},{65328,58581,3},{65333,58581,3},{65338,58583,3}, {65344,58584,3},{65349,58584,3},{65354,58586,3},{65361,58586,3},{65366,58588,3}, {65371,58589,3},{65376,58589,3},{65383,58591,3},{65386,58589,3},{65394,58593,3}, {65396,58596,3},{65401,58598,3},{65411,58598,3},{65418,58598,3},{65428,58593,3}, {65436,58593,3},{65438,58589,3},{65439,58589,3},{65444,58583,3},{65449,58583,3}, {65449,58579,3},{65453,58579,3},{65456,58579,3},{65461,58574,3},{65463,58574,3}, {65473,58579,3},{65476,58576,3},{65484,58576,3},{65486,58573,3},{65491,58561,3}, {65496,58558,3},{65499,58553,3},{65503,58551,3},{65504,58543,3},{65511,58539,3}, {65513,58536,3},{65521,58531,3},{65528,58531,3},{65533,58531,3},{3,58531,3}, {8,58531,3},{13,58531,3},{18,58531,3},{25,58531,3},{30,58531,3},{35,58531,3}, {42,58531,3},{47,58531,3},{52,58531,3},{57,58531,3},{58,58531,3},{57,58534,3}, {60,58538,3},{58,58543,3},{60,58544,3},{60,58556,3},{63,58561,3},{63,58563,3}, {67,58564,3},{68,58568,3},{65,58576,3},{70,58579,3},{70,58581,3},{72,58583,3}, {73,58589,3},{63,58601,3},{67,58606,3},{62,58608,3},{62,58616,3},{65,58618,3}, {63,58623,3},{65,58624,3},{70,58621,3},{72,58618,3},{77,58621,3},{85,58619,3}, {87,58623,3},{90,58616,3},{95,58616,3},{95,58614,3},{100,58614,3},{103,58609,3}, {107,58601,3},{103,58594,3},{103,58593,3},{107,58591,3},{107,58579,3},{108,58576,3}, {107,58564,3},{108,58564,3},{110,58559,3},{107,58554,3},{107,58551,3},{172,58551,3}, {170,58556,3},{172,58559,3},{175,58564,3},{173,58573,3},{178,58581,3},{175,58596,3}, {173,58598,3},{172,58721,3},{173,58718,3},{177,58718,3},{178,58713,3},{182,58713,3}, {182,58709,3},{183,58708,3},{187,58711,3},{192,58713,3},{197,58716,3},{202,58718,3}, {197,58719,3},{197,58724,3},{193,58728,3},{187,58729,3},{177,58736,3},{175,58739,3}, {175,58744,3},{175,58749,3},{180,58758,3},{192,58768,3},{200,58771,3},{210,58784,3}, {212,58789,3},{215,58794,3},{212,58803,3},{195,58809,3},{182,58819,3},{172,58826,3}, {162,58829,3},{152,58831,3},{128,58828,3},{117,58828,3},{122,58849,3},{75,58904,3}, {77,58916,3},{75,58919,3},{73,58923,3},{75,58926,3},{78,58929,3},{80,58939,3}, {90,58949,3},{98,58963,3},{98,58978,3},{95,58983,3},{90,58984,3},{83,58984,3}, {73,58978,3},{67,58979,3},{65,58984,3},{70,58993,3},{75,58996,3},{83,58998,3}, {92,59004,3},{93,59018,3},{97,59019,3},{110,59021,3},{113,59023,3},{115,59026,3}, {113,59034,3},{117,59036,3},{120,59041,3},{122,59048,3},{128,59054,3},{125,59059,3}, {125,59063,3},{133,59078,3},{143,59083,3},{152,59098,3},{150,59101,3},{147,59101,3}, {143,59098,3},{140,59098,3},{137,59099,3},{137,59101,3},{147,59108,3},{150,59114,3}, {155,59118,3},{158,59124,3},{168,59129,3},{175,59129,3},{180,59131,3},{188,59131,3}, {195,59136,3},{198,59143,3},{197,59158,3},{207,59173,3},{210,59176,3},{213,59183,3}, {215,59196,3},{220,59196,3},{227,59201,3},{237,59199,3},{240,59201,3},{242,59199,3}, {245,59169,3},{242,59154,3},{247,59139,3},{247,59133,3},{252,59131,3},{262,59136,3}, {272,59138,3},{275,59136,3},{280,59134,3},{287,59131,3},{292,59128,3},{300,59123,3}, {307,59119,3},{312,59114,3},{325,59116,3},{343,59113,3},{347,59114,3},{352,59118,3}, {360,59118,3},{373,59104,3},{378,59091,3},{387,59083,3},{392,59079,3},{400,59071,3}, {415,59064,3},{420,59056,3},{428,59056,3},{428,59064,3},{425,59071,3},{413,59076,3}, {412,59078,3},{415,59099,3},{415,59111,3},{412,59123,3},{403,59128,3},{390,59131,3}, {388,59134,3},{390,59141,3},{393,59144,3},{397,59153,3},{393,59158,3},{395,59171,3}, {395,59176,3},{387,59183,3},{385,59186,3},{387,59189,3},{388,59191,3},{397,59194,3}, {397,59201,3},{390,59211,3},{383,59214,3},{377,59223,3},{360,59238,3},{357,59244,3}, {357,59248,3},{357,59251,3},{360,59254,3},{360,59259,3},{368,59263,3},{378,59263,3}, {390,59258,3},{397,59261,3},{402,59259,3},{403,59261,3},{405,59269,3},{403,59279,3}, {403,59281,3},{407,59283,3},{412,59283,3},{415,59291,3},{418,59291,3},{418,59293,3}, {418,59298,3},{410,59321,3},{410,59326,3},{415,59331,3},{417,59336,3},{415,59344,3}, {417,59351,3},{418,59354,3},{425,59361,3},{427,59366,3},{425,59371,3},{423,59374,3}, {425,59378,3},{425,59381,3},{427,59384,3},{432,59384,3},{437,59384,3},{440,59386,3}, {443,59393,3},{442,59401,3},{445,59408,3},{447,59408,3},{452,59404,3},{453,59406,3}, {452,59414,3},{450,59421,3},{452,59438,3},{458,59443,3},{465,59444,3},{472,59448,3}, {472,59453,3},{477,59463,3},{483,59471,3},{495,59478,3},{498,59478,3},{518,59471,3}, {520,59463,3},{522,59468,3},{522,59476,3},{518,59481,3},{520,59486,3},{520,59491,3}, {518,59491,3},{522,59496,3},{520,59499,3},{520,59506,3},{525,59511,3},{527,59516,3}, {527,59518,3},{523,59519,3},{525,59524,3},{520,59526,3},{517,59528,3},{513,59531,3}, {510,59539,3},{505,59539,3},{490,59536,3},{483,59536,3},{480,59534,3},{470,59533,3}, {467,59529,3},{460,59528,3},{460,59524,3},{458,59523,3},{457,59521,3},{452,59521,3}, {450,59526,3},{452,59526,3},{453,59528,3},{452,59529,3},{450,59531,3},{450,59539,3}, {452,59539,3},{450,59543,3},{447,59546,3},{448,59549,3},{448,59551,3},{447,59551,3}, {445,59554,3},{447,59556,3},{440,59566,3},{438,59569,3},{435,59568,3},{430,59563,3}, {427,59564,3},{423,59563,3},{422,59563,3},{417,59566,3},{415,59573,3},{408,59571,3}, {400,59578,3},{397,59578,3},{395,59584,3},{393,59584,3},{390,59578,3},{385,59578,3}, {382,59578,3},{378,59576,3},{378,59573,3},{377,59569,3},{370,59569,3},{363,59559,3}, {360,59551,3},{357,59551,3},{348,59554,3},{343,59553,3},{343,59554,3},{340,59554,3}, {337,59554,3},{335,59553,3},{333,59553,3},{325,59548,3},{323,59548,3},{320,59546,3}, {317,59546,3},{315,59544,3},{313,59546,3},{310,59543,3},{303,59539,3},{298,59541,3}, {282,59538,3},{268,59538,3},{262,59541,3},{260,59539,3},{257,59543,3},{255,59543,3}, {245,59546,3},{240,59548,3},{238,59546,3},{237,59546,3},{230,59556,3},{228,59563,3}, {218,59563,3},{212,59564,3},{207,59561,3},{203,59563,3},{197,59563,3},{192,59561,3}, {190,59561,3},{187,59561,3},{185,59563,3},{187,59566,3},{185,59573,3},{177,59569,3}, {173,59573,3},{173,59581,3},{172,59584,3},{165,59588,3},{162,59593,3},{157,59594,3}, {155,59598,3},{152,59601,3},{153,59603,3},{152,59604,3},{148,59604,3},{147,59608,3}, {142,59608,3},{138,59611,3},{133,59628,3},{133,59636,3},{130,59643,3},{127,59646,3}, {123,59646,3},{120,59649,3},{118,59654,3},{122,59663,3},{128,59666,3},{127,59679,3}, {128,59681,3},{127,59684,3},{127,59686,3},{135,59689,3},{145,59686,3},{148,59698,3}, {153,59698,3},{155,59701,3},{160,59704,3},{160,59706,3},{158,59706,3},{157,59713,3}, {157,59719,3},{152,59723,3},{152,59736,3},{160,59739,3},{167,59738,3},{163,59744,3}, {167,59748,3},{172,59761,3},{170,59773,3},{170,59781,3},{173,59786,3},{178,59788,3}, {182,59791,3},{192,59794,3},{193,59799,3},{197,59803,3},{198,59806,3},{198,59809,3}, {195,59813,3},{202,59826,3},{202,59829,3},{195,59831,3},{193,59834,3},{192,59839,3}, {193,59846,3},{190,59848,3},{187,59858,3},{192,59864,3},{192,59871,3},{193,59873,3}, {190,59881,3},{192,59883,3},{195,59889,3},{192,59896,3},{193,59901,3},{188,59909,3}, {188,59918,3},{183,59934,3},{187,59943,3},{190,59946,3},{195,59944,3},{205,59946,3}, {215,59936,3},{218,59933,3},{222,59933,3},{223,59931,3},{225,59928,3},{225,59923,3}, {227,59923,3},{235,59928,3},{235,59931,3},{235,59933,3},{240,59936,3},{245,59936,3}, {248,59938,3},{252,59938,3},{253,59939,3},{252,59944,3},{247,59949,3},{245,59959,3}, {242,59963,3},{240,59964,3},{243,59978,3},{243,59998,3},{245,60001,3},{248,60001,3}, {252,60004,3},{252,60008,3},{250,60011,3},{252,60016,3},{255,60018,3},{257,60023,3}, {253,60024,3},{258,60034,3},{262,60041,3},{260,60043,3},{257,60039,3},{253,60041,3}, {243,60049,3},{243,60056,3},{247,60061,3},{245,60066,3},{240,60068,3},{238,60064,3}, {233,60066,3},{232,60071,3},{233,60076,3},{232,60083,3},{228,60084,3},{228,60083,3}, {227,60083,3},{222,60089,3},{220,60096,3},{222,60099,3},{217,60103,3},{215,60111,3}, {217,60118,3},{212,60121,3},{212,60124,3},{213,60128,3},{218,60129,3},{218,60134,3}, {218,60136,3},{222,60143,3},{223,60143,3},{227,60143,3},{227,60148,3},{230,60149,3}, {232,60154,3},{235,60156,3},{237,60161,3},{235,60164,3},{232,60163,3},{227,60181,3}, {225,60183,3},{225,60191,3},{232,60201,3},{235,60201,3},{235,60203,3},{225,60214,3}, {220,60209,3},{220,60213,3},{222,60224,3},{222,60228,3},{218,60231,3},{217,60239,3}, {220,60246,3},{228,60251,3},{230,60256,3},{233,60263,3},{238,60269,3},{243,60271,3}, {247,60276,3},{257,60281,3},{258,60283,3},{263,60279,3},{265,60283,3},{288,60293,3}, {290,60296,3},{293,60294,3},{307,60303,3},{312,60301,3},{315,60301,3},{317,60304,3}, {323,60308,3},{325,60311,3},{323,60313,3},{328,60316,3},{348,60328,3},{352,60328,3}, {352,60329,3},{362,60336,3},{370,60338,3},{372,60339,3},{373,60343,3},{377,60343,3}, {380,60348,3},{387,60354,3},{398,60359,3},{403,60368,3},{407,60373,3},{423,60378,3}, {423,60379,3},{407,60386,3},{393,60393,3},{398,60393,3},{407,60388,3},{428,60381,3}, {437,60379,3},{440,60383,3},{435,60386,3},{423,60403,3},{407,60416,3},{400,60419,3}, {378,60419,3},{368,60418,3},{365,60418,3},{387,60423,3},{390,60424,3},{392,60426,3}, {390,60428,3},{388,60428,3},{383,60428,3},{378,60428,3},{373,60429,3},{368,60429,3}, {362,60428,3},{357,60428,3},{352,60429,3},{347,60429,3},{342,60429,3},{335,60429,3}, {327,60431,3},{320,60434,3},{313,60434,3},{287,60444,3},{280,60444,3},{278,60448,3}, {273,60451,3},{268,60451,3},{265,60453,3},{257,60454,3},{248,60453,3},{250,60458,3}, {243,60463,3},{237,60461,3},{228,60464,3},{223,60468,3},{215,60468,3},{213,60466,3}, {213,60463,3},{215,60456,3},{212,60459,3},{208,60458,3},{205,60459,3},{205,60461,3}, {212,60463,3},{213,60471,3},{208,60476,3},{200,60478,3},{193,60483,3},{185,60484,3}, {182,60489,3},{180,60498,3},{182,60504,3},{178,60511,3},{178,60518,3},{173,60526,3}, {173,60529,3},{167,60539,3},{143,60548,3},{125,60544,3},{117,60548,3},{110,60543,3}, {107,60534,3},{110,60533,3},{103,60531,3},{98,60526,3},{95,60523,3},{85,60508,3}, {80,60504,3},{73,60501,3},{67,60491,3},{42,60479,3},{18,60459,3},{17,60456,3}, {17,60449,3},{15,60441,3},{5,60433,3},{65533,60428,3},{65531,60416,3},{65528,60413,3}, {65528,60403,3},{65526,60408,3},{65523,60411,3},{65508,60401,3},{65496,60396,3}, {65493,60391,3},{65489,60393,3},{65488,60391,3},{65483,60386,3},{65481,60383,3}, {65483,60378,3},{65481,60381,3},{65479,60378,3},{65481,60381,3},{65479,60383,3}, {65461,60366,3},{65458,60364,3},{65449,60364,3},{65433,60364,3},{65431,60361,3}, {65423,60353,3},{65419,60344,3},{65416,60343,3},{65406,60344,3},{65403,60343,3}, {65396,60336,3},{65394,60333,3},{65398,60323,3},{65401,60316,3},{65401,60313,3}, {65398,60308,3},{65393,60293,3},{65386,60288,3},{65383,60279,3},{65383,60274,3}, {65379,60266,3},{65376,60264,3},{65379,60283,3},{65379,60298,3},{65384,60309,3}, {65374,60313,3},{65368,60309,3},{65366,60311,3},{65368,60316,3},{65371,60318,3}, {65373,60321,3},{65374,60334,3},{65378,60343,3},{65381,60348,3},{65396,60369,3}, {65398,60379,3},{65403,60391,3},{65411,60396,3},{65413,60403,3},{65411,60401,3}, {65409,60403,3},{65414,60409,3},{65423,60416,3},{65423,60418,3},{65424,60418,3}, {65433,60433,3},{65436,60436,3},{65441,60436,3},{65443,60436,3},{65444,60439,3}, {65439,60441,3},{65441,60443,3},{65443,60441,3},{65444,60441,3},{65444,60451,3}, {65443,60454,3},{65439,60453,3},{65431,60454,3},{65428,60451,3},{65428,60448,3}, {65423,60446,3},{65423,60441,3},{65418,60451,3},{65413,60454,3},{65403,60453,3}, {65399,60453,3},{65396,60456,3},{65393,60454,3},{65381,60459,3},{65373,60468,3}, {65363,60471,3},{65358,60469,3},{65361,60463,3},{65358,60464,3},{65356,60468,3}, {65353,60474,3},{65343,60484,3},{65343,60489,3},{65338,60488,3},{65343,60491,3}, {65338,60491,3},{65328,60494,3},{65334,60498,3},{65334,60503,3},{65341,60504,3}, {65346,60511,3},{65344,60519,3},{65349,60521,3},{65351,60526,3},{65354,60538,3}, {65353,60541,3},{65348,60549,3},{65344,60549,3},{65339,60546,3},{65343,60551,3}, {65334,60551,3},{65328,60548,3},{65331,60551,3},{65326,60554,3},{65329,60553,3}, {65346,60551,3},{65344,60553,3},{65341,60553,3},{65344,60554,3},{65346,60554,3}, {65346,60559,3},{65343,60563,3},{65344,60563,3},{65346,60564,3},{65343,60566,3}, {65344,60569,3},{65341,60573,3},{65334,60578,3},{65336,60579,3},{65338,60578,3}, {65344,60573,3},{65344,60571,3},{65349,60573,3},{65351,60576,3},{65351,60579,3}, {65349,60583,3},{65358,60586,3},{65359,60589,3},{65354,60589,3},{65358,60594,3}, {65354,60593,3},{65351,60589,3},{65348,60593,3},{65346,60599,3},{65338,60598,3}, {65336,60598,3},{65333,60594,3},{65326,60593,3},{65324,60594,3},{65318,60591,3}, {65309,60586,3},{65304,60586,3},{65294,60581,3},{65288,60583,3},{65283,60581,3}, {65274,60574,3},{65273,60569,3},{65269,60568,3},{65268,60568,3},{65269,60574,3}, {65271,60583,3},{65274,60584,3},{65278,60584,3},{65279,60588,3},{65286,60593,3}, {65298,60593,3},{65318,60604,3},{65336,60609,3},{65346,60618,3},{65348,60619,3}, {65348,60624,3},{65351,60626,3},{65351,60638,3},{65358,60643,3},{65361,60644,3}, {65364,60648,3},{65368,60648,3},{65371,60651,3},{65373,60654,3},{65374,60654,3}, {65378,60659,3},{65386,60663,3},{65388,60666,3},{65389,60666,3},{65386,60673,3}, {65389,60676,3},{65378,60683,3},{65378,60684,3},{65373,60686,3},{65373,60691,3}, {65369,60694,3},{65376,60693,3},{65384,60688,3},{65383,60689,3},{65384,60698,3}, {65389,60703,3},{65389,60686,3},{65404,60688,3},{65408,60691,3},{65404,60696,3}, {65404,60703,3},{65418,60706,3},{65419,60708,3},{65418,60711,3},{65421,60708,3}, {65423,60709,3},{65424,60714,3},{65424,60709,3},{65431,60706,3},{65431,60713,3}, {65433,60718,3},{65446,60721,3},{65451,60723,3},{65456,60719,3},{65464,60726,3}, {65469,60731,3},{65469,60733,3},{65466,60734,3},{65463,60734,3},{65458,60739,3}, {65461,60741,3},{65466,60749,3},{65469,60749,3},{65468,60751,3},{65468,60753,3}, {65468,60756,3},{65471,60758,3},{65473,60761,3},{65469,60764,3},{65466,60764,3}, {65464,60764,3},{65461,60763,3},{65459,60763,3},{65463,60769,3},{65466,60774,3}, {65473,60778,3},{65471,60778,3},{65473,60781,3},{65471,60783,3},{65463,60788,3}, {65459,60786,3},{65459,60794,3},{65454,60796,3},{65458,60798,3},{65461,60798,3}, {65461,60794,3},{65466,60793,3},{65466,60791,3},{65463,60789,3},{65474,60789,3}, {65476,60791,3},{65476,60789,3},{65478,60796,3},{65471,60794,3},{65468,60794,3}, {65471,60796,3},{65468,60799,3},{65469,60798,3},{65471,60798,3},{65473,60801,3}, {65471,60804,3},{65474,60801,3},{65476,60808,3},{65473,60808,3},{65471,60808,3}, {65471,60811,3},{65468,60811,3},{65471,60813,3},{65473,60811,3},{65473,60816,3}, {65469,60816,3},{65468,60816,3},{65469,60814,3},{65466,60811,3},{65464,60813,3}, {65466,60814,3},{65464,60819,3},{65468,60819,3},{65463,60821,3},{65459,60816,3}, {65459,60821,3},{65456,60823,3},{65463,60823,3},{65461,60824,3},{65464,60824,3}, {65464,60826,3},{65468,60826,3},{65469,60828,3},{65466,60829,3},{65464,60828,3}, {65461,60828,3},{65461,60829,3},{65456,60829,3},{65456,60831,3},{65454,60828,3}, {65451,60828,3},{65449,60831,3},{65453,60831,3},{65456,60833,3},{65458,60834,3}, {65459,60834,3},{65461,60838,3},{65466,60839,3},{65466,60841,3},{65458,60839,3}, {65458,60841,3},{65456,60841,3},{65456,60843,3},{65453,60843,3},{65453,60844,3}, {65451,60843,3},{65449,60839,3},{65446,60839,3},{65446,60841,3},{65449,60841,3}, {65449,60846,3},{65451,60846,3},{65451,60848,3},{65456,60846,3},{65456,60848,3}, {65454,60849,3},{65456,60851,3},{65458,60849,3},{65463,60854,3},{65464,60853,3}, {65464,60854,3},{65463,60856,3},{65461,60854,3},{65459,60856,3},{65458,60854,3}, {65456,60854,3},{65456,60853,3},{65454,60854,3},{65453,60854,3},{65454,60856,3}, {65449,60856,3},{65446,60858,3},{65449,60858,3},{65451,60859,3},{65449,60859,3}, {65453,60861,3},{65448,60864,3},{65443,60861,3},{65441,60863,3},{65448,60866,3}, {65449,60866,3},{65453,60866,3},{65453,60868,3},{65449,60871,3},{65449,60873,3}, {65453,60871,3},{65454,60873,3},{65449,60876,3},{65446,60876,3},{65446,60874,3}, {65444,60876,3},{65443,60874,3},{65441,60871,3},{65443,60869,3},{65441,60868,3}, {65441,60866,3},{65436,60861,3},{65434,60861,3},{65439,60866,3},{65438,60873,3}, {65438,60874,3},{65441,60878,3},{65438,60879,3},{65433,60874,3},{65434,60876,3}, {65434,60879,3},{65436,60879,3},{65434,60881,3},{65433,60883,3},{65433,60886,3}, {65434,60889,3},{65433,60889,3},{65431,60889,3},{65433,60896,3},{65436,60899,3}, {65438,60901,3},{65434,60899,3},{65429,60899,3},{65428,60901,3},{65431,60901,3}, {65434,60903,3},{65431,60904,3},{65424,60904,3},{65433,60908,3},{65426,60911,3}, {65433,60908,3},{65434,60909,3},{65438,60909,3},{65441,60914,3},{65441,60911,3}, {65444,60911,3},{65444,60919,3},{65441,60919,3},{65439,60916,3},{65436,60916,3}, {65434,60914,3},{65434,60916,3},{65429,60914,3},{65429,60916,3},{65428,60916,3}, {65426,60914,3},{65418,60909,3},{65421,60913,3},{65421,60919,3},{65424,60921,3}, {65418,60923,3},{65426,60923,3},{65429,60926,3},{65423,60929,3},{65418,60926,3}, {65416,60926,3},{65414,60928,3},{65419,60931,3},{65418,60933,3},{65414,60931,3}, {65416,60933,3},{65421,60933,3},{65423,60934,3},{65426,60934,3},{65424,60936,3}, {65428,60939,3},{65426,60938,3},{65424,60939,3},{65424,60938,3},{65423,60938,3}, {65423,60941,3},{65421,60941,3},{65421,60936,3},{65419,60936,3},{65416,60936,3}, {65416,60939,3},{65411,60941,3},{65411,60943,3},{65416,60943,3},{65423,60946,3}, {65419,60948,3},{65418,60944,3},{65414,60946,3},{65419,60948,3},{65416,60949,3}, {65409,60946,3},{65413,60949,3},{65408,60948,3},{65408,60951,3},{65416,60953,3}, {65411,60954,3},{65406,60953,3},{65403,60954,3},{65408,60954,3},{65409,60956,3}, {65409,60959,3},{65413,60959,3},{65414,60959,3},{65414,60961,3},{65423,60964,3}, {65421,60966,3},{65419,60966,3},{65411,60963,3},{65409,60966,3},{65406,60966,3}, {65404,60964,3},{65404,60966,3},{65403,60968,3},{65399,60966,3},{65399,60973,3}, {65403,60974,3},{65408,60974,3},{65408,60978,3},{65406,60976,3},{65403,60978,3}, {65408,60979,3},{65409,60983,3},{65408,60983,3},{65408,60981,3},{65404,60981,3}, {65406,60983,3},{65404,60983,3},{65403,60981,3},{65401,60981,3},{65403,60984,3}, {65399,60986,3},{65396,60983,3},{65394,60983,3},{65401,60989,3},{65404,60989,3}, {65406,60994,3},{65406,60991,3},{65406,60996,3},{65401,60994,3},{65399,60989,3}, {65389,60988,3},{65389,60984,3},{65386,60983,3},{65389,60986,3},{65388,60988,3}, {65384,60984,3},{65386,60989,3},{65384,60989,3},{65383,60989,3},{65381,60991,3}, {65383,60991,3},{65388,60989,3},{65389,60991,3},{65393,60993,3},{65393,60994,3}, {65389,60994,3},{65393,60998,3},{65398,60999,3},{65401,61001,3},{65404,60999,3}, {65404,61003,3},{65399,61006,3},{65394,61006,3},{65391,61004,3},{65388,60998,3}, {65386,60998,3},{65388,60999,3},{65388,61001,3},{65383,60999,3},{65381,60996,3}, {65379,60996,3},{65378,60998,3},{65379,60998,3},{65381,60998,3},{65379,61003,3}, {65373,61001,3},{65369,60999,3},{65364,60999,3},{65363,61001,3},{65363,61008,3}, {65366,61009,3},{65368,61014,3},{65374,61011,3},{65378,61011,3},{65381,61014,3}, {65383,61018,3},{65388,61019,3},{65388,61021,3},{65384,61023,3},{65388,61023,3}, {65389,61026,3},{65389,61029,3},{65388,61028,3},{65388,61026,3},{65388,61029,3}, {65393,61029,3},{65388,61031,3},{65388,61036,3},{65384,61038,3},{65384,61034,3}, {65383,61038,3},{65381,61039,3},{65378,61034,3},{65376,61034,3},{65378,61036,3}, {65376,61039,3},{65381,61041,3},{65386,61041,3},{65388,61044,3},{65388,61043,3}, {65391,61048,3},{65394,61049,3},{65391,61051,3},{65388,61051,3},{65384,61046,3}, {65383,61046,3},{65381,61044,3},{65376,61044,3},{65376,61041,3},{65371,61044,3}, {65371,61043,3},{65371,61046,3},{65374,61044,3},{65376,61048,3},{65373,61051,3}, {65373,61053,3},{65373,61051,3},{65379,61053,3},{65378,61054,3},{65374,61056,3}, {65373,61054,3},{65374,61056,3},{65373,61058,3},{65371,61056,3},{65368,61058,3}, {65366,61056,3},{65363,61059,3},{65361,61054,3},{65359,61056,3},{65363,61059,3}, {65364,61059,3},{65364,61066,3},{65359,61064,3},{65354,61054,3},{65358,61063,3}, {65354,61066,3},{65356,61069,3},{65361,61071,3},{65364,61071,3},{65361,61076,3}, {65358,61073,3},{65353,61073,3},{65353,61069,3},{65353,61074,3},{65351,61076,3}, {65353,61078,3},{65354,61079,3},{65349,61079,3},{65353,61083,3},{65349,61083,3}, {65348,61081,3},{65346,61076,3},{65346,61084,3},{65336,61088,3},{65334,61086,3}, {65334,61079,3},{65333,61078,3},{65333,61074,3},{65333,61084,3},{65331,61086,3}, {65328,61081,3},{65323,61078,3},{65321,61074,3},{65321,61071,3},{65319,61078,3}, {65313,61071,3},{65313,61066,3},{65309,61068,3},{65311,61061,3},{65308,61058,3}, {65308,61054,3},{65306,61054,3},{65306,61058,3},{65309,61063,3},{65309,61066,3}, {65306,61066,3},{65308,61068,3},{65308,61069,3},{65301,61068,3},{65299,61066,3}, {65296,61064,3},{65298,61066,3},{65299,61069,3},{65294,61069,3},{65293,61071,3}, {65304,61071,3},{65309,61074,3},{65314,61081,3},{65316,61081,3},{65321,61084,3}, {65321,61091,3},{65319,61094,3},{65318,61094,3},{65316,61096,3},{65311,61098,3}, {65308,61098,3},{65308,61099,3},{65303,61099,3},{65298,61099,3},{65296,61098,3}, {65294,61093,3},{65298,61088,3},{65299,61084,3},{65298,61081,3},{65296,61079,3}, {65294,61079,3},{65298,61084,3},{65296,61086,3},{65288,61084,3},{65284,61083,3}, {65284,61079,3},{65279,61076,3},{65276,61069,3},{65274,61071,3},{65276,61071,3}, {65278,61078,3},{65281,61079,3},{65283,61081,3},{65281,61083,3},{65268,61073,3}, {65264,61073,3},{65258,61071,3},{65251,61071,3},{65244,61068,3},{65236,61068,3}, {65234,61069,3},{65234,61073,3},{65231,61074,3},{65221,61066,3},{65218,61064,3}, {65216,61058,3},{65209,61058,3},{65208,61059,3},{65206,61058,3},{65204,61059,3}, {65206,61061,3},{65213,61059,3},{65216,61063,3},{65218,61071,3},{65224,61074,3}, {65226,61079,3},{65233,61083,3},{65238,61091,3},{65243,61094,3},{65253,61096,3}, {65256,61096,3},{65258,61098,3},{65258,61096,3},{65263,61098,3},{65268,61098,3}, {65273,61099,3},{65269,61101,3},{65281,61099,3},{65283,61101,3},{65283,61104,3}, {65278,61108,3},{65281,61108,3},{65283,61106,3},{65288,61108,3},{65289,61114,3}, {65294,61124,3},{65294,61128,3},{65296,61129,3},{65296,61133,3},{65294,61133,3}, {65291,61133,3},{65291,61126,3},{65289,61129,3},{65286,61131,3},{65289,61131,3}, {65284,61133,3},{65281,61131,3},{65281,61129,3},{65276,61124,3},{65274,61126,3}, {65269,61123,3},{65266,61118,3},{65269,61114,3},{65266,61116,3},{65264,61114,3}, {65264,61111,3},{65258,61103,3},{65253,61103,3},{65258,61104,3},{65256,61106,3}, {65254,61106,3},{65253,61106,3},{65254,61108,3},{65254,61109,3},{65259,61111,3}, {65256,61113,3},{65259,61113,3},{65259,61118,3},{65258,61116,3},{65254,61119,3}, {65251,61114,3},{65249,61116,3},{65253,61121,3},{65256,61123,3},{65261,61126,3}, {65259,61126,3},{65261,61128,3},{65258,61128,3},{65258,61129,3},{65256,61129,3}, {65256,61128,3},{65256,61129,3},{65263,61129,3},{65266,61131,3},{65273,61136,3}, {65274,61139,3},{65273,61141,3},{65276,61139,3},{65281,61143,3},{65279,61144,3}, {65273,61149,3},{65279,61148,3},{65281,61154,3},{65281,61156,3},{65284,61161,3}, {65281,61161,3},{65286,61163,3},{65288,61164,3},{65281,61166,3},{65279,61164,3}, {65281,61171,3},{65283,61168,3},{65284,61168,3},{65288,61171,3},{65284,61169,3}, {65286,61173,3},{65283,61174,3},{65284,61176,3},{65283,61181,3},{65284,61179,3}, {65286,61179,3},{65288,61181,3},{65286,61181,3},{65288,61183,3},{65289,61183,3}, {65289,61181,3},{65293,61183,3},{65293,61184,3},{65288,61184,3},{65283,61188,3}, {65281,61186,3},{65281,61188,3},{65284,61189,3},{65281,61191,3},{65281,61193,3}, {65283,61191,3},{65286,61191,3},{65286,61194,3},{65291,61189,3},{65291,61194,3}, {65294,61189,3},{65298,61188,3},{65299,61189,3},{65299,61193,3},{65298,61193,3}, {65298,61199,3},{65299,61201,3},{65296,61219,3},{65291,61233,3},{65289,61243,3}, {65286,61246,3},{65284,61251,3},{65279,61256,3},{65279,61266,3},{65273,61271,3}, {65269,61278,3},{65266,61283,3},{65269,61288,3},{65266,61288,3},{65266,61284,3}, {65263,61288,3},{65261,61291,3},{65263,61294,3},{65261,61294,3},{65259,61301,3}, {65261,61309,3},{65258,61311,3},{65254,61309,3},{65256,61313,3},{65253,61313,3}, {65256,61316,3},{65254,61324,3},{65256,61326,3},{65253,61328,3},{65254,61329,3}, {65253,61333,3},{65254,61336,3},{65251,61341,3},{65258,61343,3},{65258,61341,3}, {65263,61334,3},{65261,61341,3},{65263,61353,3},{65259,61353,3},{65261,61354,3}, {65256,61361,3},{65251,61369,3},{65249,61369,3},{65251,61368,3},{65249,61368,3}, {65249,61366,3},{65248,61369,3},{65249,61371,3},{65246,61376,3},{65244,61384,3}, {65246,61389,3},{65246,61391,3},{65243,61391,3},{65241,61393,3},{65244,61393,3}, {65246,61394,3},{65243,61403,3},{65241,61403,3},{65239,61408,3},{65234,61409,3}, {65234,61413,3},{65238,61413,3},{65243,61409,3},{65246,61408,3},{65246,61404,3}, {65248,61409,3},{65248,61421,3},{65244,61428,3},{65248,61426,3},{65248,61446,3}, {65251,61451,3},{65248,61453,3},{65249,61454,3},{65253,61463,3},{65253,61476,3}, {65256,61484,3},{65258,61488,3},{65254,61494,3},{65256,61504,3},{65254,61518,3}, {65251,61521,3},{65251,61523,3},{65253,61524,3},{65251,61529,3},{65251,61533,3}, {65251,61536,3},{65244,61549,3},{65239,61554,3},{65234,61564,3},{65233,61564,3}, {65233,61563,3},{65231,61566,3},{65234,61566,3},{65234,61568,3},{65231,61574,3}, {65228,61578,3},{65221,61588,3},{65218,61601,3},{65213,61606,3},{65213,61609,3}, {65208,61614,3},{65203,61619,3},{65203,61624,3},{65198,61628,3},{65198,61636,3}, {65194,61641,3},{65186,61644,3},{65186,61648,3},{65181,61651,3},{65181,61656,3}, {65176,61661,3},{65171,61666,3},{65168,61671,3},{65164,61688,3},{65166,61688,3}, {65166,61689,3},{65151,61698,3},{65143,61704,3},{65141,61711,3},{65133,61716,3}, {65131,61718,3},{65126,61719,3},{65114,61731,3},{65104,61744,3},{65101,61748,3}, {65098,61751,3},{65096,61759,3},{65083,61764,3},{65078,61771,3},{65073,61778,3}, {65073,61781,3},{65073,61788,3},{65071,61789,3},{65066,61803,3},{65063,61808,3}, {65061,61809,3},{65058,61809,3},{65049,61814,3},{65043,61819,3},{65044,61828,3}, {65041,61833,3},{65043,61841,3},{65041,61848,3},{65029,61859,3},{65028,61866,3}, {65026,61868,3},{65026,61874,3},{65023,61881,3},{65024,61883,3},{65028,61878,3}, {65028,61894,3},{65024,61908,3},{65026,61911,3},{65026,61908,3},{65026,61923,3}, {65031,61939,3},{65029,61948,3},{65024,61976,3},{65019,61988,3},{65016,61991,3}, {65014,61994,3},{65008,61999,3},{65001,62001,3},{64998,62004,3},{64989,62008,3}, {64988,62009,3},{64978,62013,3},{64968,62016,3},{64966,62016,3},{64961,62016,3}, {64956,62019,3},{64953,62019,3},{64949,62019,3},{64948,62021,3},{64943,62021,3}, {64938,62026,3},{64931,62024,3},{64918,62026,3},{64919,62024,3},{64918,62024,3}, {64914,62021,3},{64913,62023,3},{64916,62028,3},{64913,62029,3},{64913,62033,3}, {64899,62034,3},{64898,62038,3},{64896,62038,3},{64883,62039,3},{64873,62039,3}, {64866,62043,3},{64858,62041,3},{64856,62043,3},{64848,62044,3},{64844,62051,3}, {64843,62049,3},{64838,62051,3},{64836,62048,3},{64833,62049,3},{64829,62046,3}, {64828,62046,3},{64826,62046,3},{64828,62044,3},{64824,62046,3},{64823,62044,3}, {64828,62051,3},{64838,62053,3},{64834,62054,3},{64829,62053,3},{64826,62053,3}, {64821,62054,3},{64819,62058,3},{64813,62056,3},{64801,62056,3},{64783,62054,3}, {64781,62054,3},{64783,62048,3},{64779,62043,3},{64781,62053,3},{64778,62051,3}, {64778,62054,3},{64773,62056,3},{64768,62053,3},{64771,62053,3},{64768,62051,3}, {64774,62049,3},{64771,62048,3},{64766,62051,3},{64763,62046,3},{64763,62051,3}, {64763,62048,3},{64754,62046,3},{64753,62053,3},{64748,62051,3},{64751,62053,3}, {64743,62054,3},{64734,62053,3},{64733,62051,3},{64729,62051,3},{64729,62048,3}, {64731,62046,3},{64733,62043,3},{64731,62046,3},{64728,62046,3},{64726,62048,3}, {64709,62043,3},{64701,62043,3},{64699,62041,3},{64693,62039,3},{64686,62036,3}, {64681,62036,3},{64673,62029,3},{64664,62028,3},{64661,62028,3},{64653,62023,3}, {64646,62023,3},{64638,62018,3},{64633,62013,3},{64618,62006,3},{64604,61996,3}, {64603,61993,3},{64601,61989,3},{64583,61978,3},{64578,61971,3},{64576,61969,3}, {64573,61968,3},{64569,61966,3},{64569,61963,3},{64566,61958,3},{64571,61963,3}, {64576,61958,3},{64576,61956,3},{64568,61958,3},{64563,61949,3},{64569,61948,3}, {64571,61946,3},{64574,61946,3},{64576,61941,3},{64573,61941,3},{64569,61946,3}, {64563,61948,3},{64559,61949,3},{64561,61951,3},{64563,61956,3},{64559,61953,3}, {64548,61946,3},{64543,61941,3},{64529,61933,3},{64526,61928,3},{64521,61923,3}, {64514,61914,3},{64508,61908,3},{64501,61908,3},{64493,61901,3},{64488,61898,3}, {64484,61894,3},{64481,61879,3},{64463,61851,3},{64458,61844,3},{64444,61836,3}, {64441,61831,3},{64439,61833,3},{64434,61829,3},{64423,61823,3},{64424,61821,3}, {64426,61823,3},{64428,61818,3},{64433,61816,3},{64434,61808,3},{64429,61809,3}, {64429,61813,3},{64426,61816,3},{64428,61814,3},{64426,61814,3},{64424,61819,3}, {64418,61819,3},{64416,61821,3},{64414,61816,3},{64408,61809,3},{64393,61803,3}, {64393,61799,3},{64394,61798,3},{64396,61798,3},{64396,61796,3},{64401,61799,3}, {64404,61799,3},{64406,61803,3},{64411,61806,3},{64411,61809,3},{64416,61806,3}, {64411,61806,3},{64418,61803,3},{64418,61801,3},{64413,61803,3},{64411,61804,3}, {64409,61804,3},{64411,61801,3},{64408,61803,3},{64406,61799,3},{64403,61796,3}, {64399,61796,3},{64394,61794,3},{64396,61793,3},{64399,61793,3},{64398,61791,3}, {64399,61789,3},{64396,61791,3},{64391,61798,3},{64388,61794,3},{64384,61788,3}, {64386,61796,3},{64389,61798,3},{64389,61799,3},{64376,61791,3},{64338,61774,3}, {64323,61766,3},{64298,61748,3},{64293,61743,3},{64278,61736,3},{64263,61721,3}, {64243,61704,3},{64234,61688,3},{64234,61683,3},{64239,61684,3},{64243,61684,3}, {64244,61688,3},{64243,61688,3},{64246,61688,3},{64251,61688,3},{64256,61686,3}, {64263,61686,3},{64264,61686,3},{64263,61683,3},{64264,61679,3},{64264,61674,3}, {64264,61673,3},{64268,61673,3},{64273,61671,3},{64274,61666,3},{64278,61666,3}, {64274,61664,3},{64268,61664,3},{64264,61661,3},{64263,61663,3},{64254,61658,3}, {64251,61654,3},{64253,61651,3},{64263,61648,3},{64266,61648,3},{64268,61651,3}, {64271,61649,3},{64268,61649,3},{64266,61646,3},{64263,61646,3},{64263,61644,3}, {64258,61646,3},{64256,61649,3},{64251,61651,3},{64249,61653,3},{64251,61656,3}, {64249,61658,3},{64249,61659,3},{64249,61664,3},{64246,61661,3},{64238,61659,3}, {64234,61658,3},{64228,61646,3},{64224,61646,3},{64221,61654,3},{64219,61651,3}, {64216,61649,3},{64213,61643,3},{64206,61639,3},{64203,61639,3},{64198,61641,3}, {64199,61634,3},{64199,61633,3},{64203,61631,3},{64189,61629,3},{64183,61628,3}, {64178,61628,3},{64176,61624,3},{64176,61628,3},{64179,61629,3},{64183,61628,3}, {64188,61629,3},{64188,61633,3},{64184,61636,3},{64184,61634,3},{64183,61636,3}, {64179,61636,3},{64176,61636,3},{64169,61639,3},{64166,61639,3},{64161,61638,3}, {64153,61638,3},{64153,61636,3},{64161,61629,3},{64161,61628,3},{64164,61626,3}, {64164,61623,3},{64161,61621,3},{64161,61623,3},{64163,61624,3},{64159,61624,3}, {64158,61629,3},{64153,61633,3},{64151,61638,3},{64146,61634,3},{64149,61629,3}, {64141,61629,3},{64143,61631,3},{64138,61638,3},{64134,61636,3},{64129,61638,3}, {64128,61634,3},{64129,61631,3},{64128,61629,3},{64126,61629,3},{64121,61628,3}, {64118,61633,3},{64119,61633,3},{64121,61631,3},{64124,61629,3},{64129,61641,3}, {64131,61641,3},{64134,61639,3},{64136,61639,3},{64138,61639,3},{64139,61641,3}, {64141,61638,3},{64143,61639,3},{64143,61638,3},{64144,61638,3},{64148,61643,3}, {64144,61644,3},{64133,61644,3},{64123,61639,3},{64119,61639,3},{64116,61638,3}, {64111,61636,3},{64106,61638,3},{64101,61636,3},{64094,61636,3},{64071,61629,3}, {64059,61631,3},{64058,61633,3},{64056,61631,3},{64054,61634,3},{64046,61633,3}, {64038,61636,3},{64018,61636,3},{63984,61641,3},{63983,61639,3},{63981,61641,3}, {63966,61643,3},{63951,61649,3},{63938,61644,3},{63924,61641,3},{63921,61641,3}, {63908,61634,3},{63899,61636,3},{63894,61631,3},{63868,61626,3},{63859,61623,3}, {63851,61623,3},{63846,61624,3},{63836,61619,3},{63826,61619,3},{63821,61616,3}, {63808,61614,3},{63798,61614,3},{63791,61618,3},{63778,61618,3},{63774,61619,3}, {63768,61623,3},{63753,61609,3},{63749,61608,3},{63744,61594,3},{63741,61591,3}, {63718,61574,3},{63713,61571,3},{63684,61563,3},{63676,61564,3},{63666,61561,3}, {63644,61563,3},{63606,61566,3},{63596,61566,3},{63573,61556,3},{63571,61554,3}, {63568,61544,3},{63561,61534,3},{63544,61528,3},{63541,61521,3},{63539,61523,3}, {63533,61521,3},{63531,61518,3},{63524,61519,3},{63513,61514,3},{63508,61513,3}, {63509,61509,3},{63508,61508,3},{63509,61506,3},{63513,61506,3},{63513,61499,3}, {63511,61501,3},{63509,61498,3},{63504,61499,3},{63504,61503,3},{63503,61503,3}, {63504,61506,3},{63504,61509,3},{63498,61506,3},{63476,61496,3},{63473,61493,3}, {63474,61491,3},{63473,61489,3},{63463,61483,3},{63461,61479,3},{63453,61474,3}, {63454,61471,3},{63451,61459,3},{63443,61454,3},{63434,61454,3},{63426,61451,3}, {63413,61439,3},{63401,61439,3},{63388,61431,3},{63384,61429,3},{63379,61431,3}, {63374,61434,3},{63359,61434,3},{63341,61439,3},{63338,61439,3},{63334,61436,3}, {63323,61416,3},{63311,61376,3},{63301,61359,3},{63298,61358,3},{63294,61354,3}, {63283,61343,3},{63283,61339,3},{63279,61338,3},{63268,61336,3},{63263,61338,3}, {63259,61341,3},{63259,61344,3},{63261,61344,3},{63263,61349,3},{63259,61349,3}, {63258,61344,3},{63254,61343,3},{63253,61338,3},{63249,61336,3},{63248,61334,3}, {63244,61333,3},{63241,61333,3},{63243,61336,3},{63241,61336,3},{63239,61334,3}, {63238,61334,3},{63241,61331,3},{63243,61279,3},{63241,61269,3},{63239,61268,3}, {63238,61233,3},{63241,61231,3},{63241,61228,3},{63243,61223,3},{63244,61228,3}, {63246,61226,3},{63248,61223,3},{63254,61228,3},{63258,61233,3},{63258,61229,3}, {63259,61229,3},{63261,61233,3},{63264,61234,3},{63268,61234,3},{63269,61228,3}, {63266,61226,3},{63266,61221,3},{63263,61214,3},{63263,61213,3},{63261,61209,3}, {63256,61209,3},{63251,61213,3},{63253,61214,3},{63251,61216,3},{63249,61213,3}, {63248,61219,3},{63243,61219,3},{63243,61221,3},{63239,61221,3},{63236,61214,3}, {63234,61194,3},{63231,61184,3},{63229,61179,3},{63231,61178,3},{63231,61173,3}, {63229,61144,3},{63226,61136,3},{63229,61136,3},{63233,61139,3},{63231,61146,3}, {63233,61146,3},{63231,61156,3},{63234,61176,3},{63238,61169,3},{63238,61166,3}, {63243,61161,3},{63243,61158,3},{63243,61156,3},{63244,61156,3},{63244,61149,3}, {63246,61149,3},{63244,61144,3},{63243,61138,3},{63238,61133,3},{63238,61131,3}, {63241,61133,3},{63243,61131,3},{63234,61126,3},{63233,61123,3},{63233,61119,3}, {63231,61118,3},{63231,61113,3},{63234,61113,3},{63236,61109,3},{63234,61108,3}, {63234,61106,3},{63236,61106,3},{63234,61101,3},{63238,61101,3},{63238,61104,3}, {63239,61106,3},{63243,61103,3},{63244,61104,3},{63244,61101,3},{63241,61101,3}, {63239,61099,3},{63243,61094,3},{63234,61093,3},{63236,61089,3},{63231,61078,3}, {63229,61076,3},{63231,61076,3},{63231,61069,3},{63229,61068,3},{63224,61066,3}, {63223,61066,3},{63216,61064,3},{63214,61066,3},{63216,61069,3},{63218,61071,3}, {63216,61074,3},{63213,61068,3},{63213,61073,3},{63206,61071,3},{63211,61074,3}, {63213,61079,3},{63213,61081,3},{63211,61079,3},{63209,61079,3},{63209,61083,3}, {63206,61086,3},{63206,61084,3},{63204,61081,3},{63201,61078,3},{63203,61071,3}, {63201,61064,3},{63199,61063,3},{63199,61056,3},{63198,61053,3},{63199,61051,3}, {63199,61046,3},{63201,61048,3},{63203,61046,3},{63196,61038,3},{63194,61031,3}, {63193,61031,3},{63191,61036,3},{63189,61031,3},{63184,61029,3},{63188,61028,3}, {63184,61026,3},{63188,61021,3},{63183,61021,3},{63183,61014,3},{63178,61016,3}, {63176,61011,3},{63179,61006,3},{63174,61001,3},{63174,60994,3},{63171,60993,3}, {63166,60993,3},{63163,60996,3},{63158,60998,3},{63153,60994,3},{63153,60989,3}, {63151,60986,3},{63156,60981,3},{63156,60974,3},{63158,60973,3},{63158,60969,3}, {63159,60948,3},{63158,60938,3},{63153,60933,3},{63154,60931,3},{63151,60921,3}, {63148,60919,3},{63144,60913,3},{63144,60916,3},{63149,60923,3},{63149,60924,3}, {63143,60919,3},{63136,60919,3},{63138,60914,3},{63133,60909,3},{63133,60906,3}, {63134,60904,3},{63138,60909,3},{63144,60906,3},{63146,60899,3},{63148,60899,3}, {63149,60898,3},{63144,60898,3},{63144,60894,3},{63143,60896,3},{63143,60891,3}, {63139,60894,3},{63138,60894,3},{63138,60899,3},{63133,60898,3},{63134,60896,3}, {63133,60888,3},{63124,60873,3},{63111,60846,3},{63104,60838,3},{63098,60836,3}, {63094,60836,3},{63093,60831,3},{63094,60831,3},{63091,60829,3},{63079,60814,3}, {63071,60796,3},{63068,60794,3},{63066,60783,3},{63061,60774,3},{63056,60768,3}, {63049,60756,3},{63048,60756,3},{63046,60753,3},{63043,60751,3},{63039,60748,3}, {63034,60744,3},{63029,60741,3},{63031,60736,3},{63033,60736,3},{63034,60739,3}, {63034,60733,3},{63033,60734,3},{63031,60731,3},{63029,60731,3},{63028,60739,3}, {63031,60746,3},{63026,60746,3},{63016,60741,3},{63014,60738,3},{63013,60734,3}, {63001,60724,3},{62998,60719,3},{62991,60716,3},{62989,60713,3},{62991,60711,3}, {62993,60711,3},{62999,60714,3},{63003,60713,3},{63006,60718,3},{63006,60723,3}, {63009,60723,3},{63008,60721,3},{63006,60714,3},{63004,60711,3},{63006,60708,3}, {63003,60708,3},{62999,60704,3},{63001,60703,3},{63003,60704,3},{63003,60703,3}, {63009,60703,3},{63011,60704,3},{63013,60703,3},{63011,60701,3},{63008,60699,3}, {63006,60701,3},{63006,60699,3},{63006,60696,3},{63011,60693,3},{63011,60691,3}, {63004,60693,3},{63003,60686,3},{63001,60693,3},{62999,60693,3},{62998,60691,3}, {62998,60693,3},{62993,60694,3},{62991,60691,3},{62989,60691,3},{62988,60688,3}, {62989,60686,3},{62991,60673,3},{63001,60661,3},{62994,60664,3},{62989,60668,3}, {62989,60663,3},{62986,60666,3},{62986,60674,3},{62984,60674,3},{62984,60671,3}, {62983,60674,3},{62981,60676,3},{62983,60676,3},{62984,60684,3},{62983,60686,3}, {62981,60689,3},{62978,60686,3},{62978,60689,3},{62981,60691,3},{62979,60694,3}, {62981,60698,3},{62978,60699,3},{62971,60691,3},{62958,60684,3},{62954,60684,3}, {62951,60683,3},{62951,60679,3},{62956,60678,3},{62956,60676,3},{62954,60674,3}, {62953,60676,3},{62949,60678,3},{62953,60671,3},{62951,60668,3},{62951,60663,3}, {62949,60659,3},{62948,60659,3},{62949,60664,3},{62948,60673,3},{62949,60679,3}, {62944,60679,3},{62931,60674,3},{62929,60676,3},{62919,60678,3},{62918,60676,3}, {62916,60673,3},{62914,60671,3},{62911,60668,3},{62914,60663,3},{62926,60659,3}, {62929,60658,3},{62929,60656,3},{62924,60658,3},{62923,60656,3},{62916,60661,3}, {62911,60661,3},{62908,60658,3},{62908,60661,3},{62906,60658,3},{62904,60656,3}, {62904,60661,3},{62901,60664,3},{62899,60669,3},{62898,60671,3},{62894,60673,3}, {62893,60676,3},{62878,60668,3},{62866,60668,3},{62863,60669,3},{62859,60673,3}, {62859,60678,3},{62858,60678,3},{62854,60676,3},{62853,60674,3},{62848,60673,3}, {62844,60674,3},{62836,60674,3},{62834,60679,3},{62828,60678,3},{62826,60674,3}, {62824,60674,3},{62819,60679,3},{62821,60683,3},{62824,60684,3},{62819,60688,3}, {62818,60686,3},{62814,60688,3},{62814,60683,3},{62816,60684,3},{62818,60683,3}, {62811,60674,3},{62804,60676,3},{62804,60679,3},{62798,60681,3},{62799,60679,3}, {62794,60678,3},{62793,60674,3},{62789,60671,3},{62779,60676,3},{62778,60679,3}, {62774,60678,3},{62776,60676,3},{62771,60671,3},{62764,60673,3},{62761,60676,3}, {62759,60673,3},{62753,60679,3},{62751,60678,3},{62749,60679,3},{62738,60674,3}, {62733,60676,3},{62728,60673,3},{62718,60671,3},{62713,60671,3},{62713,60673,3}, {62708,60668,3},{62701,60668,3},{62698,60663,3},{62688,60661,3},{62686,60658,3}, {62693,60654,3},{62698,60656,3},{62704,60649,3},{62701,60649,3},{62696,60649,3}, {62694,60649,3},{62693,60653,3},{62688,60651,3},{62684,60656,3},{62683,60658,3}, {62684,60661,3},{62683,60661,3},{62679,60659,3},{62678,60656,3},{62674,60654,3}, {62669,60639,3},{62653,60614,3},{62639,60598,3},{62624,60581,3},{62603,60566,3}, {62599,60561,3},{62579,60548,3},{62559,60536,3},{62553,60531,3},{62544,60528,3}, {62539,60526,3},{62534,60524,3},{62529,60521,3},{62524,60519,3},{62519,60518,3}, {62514,60514,3},{62509,60514,3},{62504,60513,3},{62499,60509,3},{62496,60508,3}, {62489,60504,3},{62486,60503,3},{62481,60499,3},{62478,60496,3},{62473,60493,3}, {62468,60489,3},{62463,60486,3},{62459,60483,3},{62454,60479,3},{62449,60478,3}, {62446,60474,3},{62441,60471,3},{62436,60468,3},{62413,60448,3},{62394,60429,3}, {62364,60389,3},{62341,60348,3},{62328,60338,3},{62323,60331,3},{62319,60329,3}, {62323,60328,3},{62333,60333,3},{62338,60331,3},{62341,60334,3},{62351,60328,3}, {62353,60328,3},{62354,60333,3},{62353,60339,3},{62349,60343,3},{62348,60346,3}, {62349,60351,3},{62353,60354,3},{62356,60353,3},{62356,60366,3},{62366,60378,3}, {62374,60384,3},{62378,60388,3},{62374,60391,3},{62379,60389,3},{62386,60393,3}, {62384,60394,3},{62383,60401,3},{62384,60404,3},{62389,60411,3},{62396,60418,3}, {62408,60421,3},{62421,60419,3},{62428,60419,3},{62429,60423,3},{62428,60428,3}, {62429,60434,3},{62423,60436,3},{62423,60438,3},{62426,60439,3},{62428,60443,3}, {62429,60438,3},{62431,60438,3},{62443,60441,3},{62446,60438,3},{62446,60446,3}, {62458,60463,3},{62463,60466,3},{62476,60469,3},{62481,60468,3},{62489,60468,3}, {62498,60463,3},{62501,60468,3},{62496,60473,3},{62493,60471,3},{62491,60473,3}, {62488,60476,3},{62491,60479,3},{62496,60479,3},{62499,60481,3},{62509,60483,3}, {62518,60474,3},{62518,60473,3},{62514,60469,3},{62514,60468,3},{62513,60468,3}, {62511,60471,3},{62506,60469,3},{62508,60459,3},{62504,60458,3},{62503,60456,3}, {62504,60444,3},{62496,60443,3},{62493,60444,3},{62493,60443,3},{62496,60438,3}, {62498,60433,3},{62501,60431,3},{62506,60434,3},{62509,60434,3},{62509,60431,3}, {62513,60429,3},{62509,60423,3},{62513,60421,3},{62513,60419,3},{62516,60418,3}, {62518,60413,3},{62521,60414,3},{62526,60411,3},{62531,60413,3},{62531,60409,3}, {62534,60409,3},{62534,60408,3},{62528,60406,3},{62526,60408,3},{62521,60404,3}, {62518,60406,3},{62514,60403,3},{62513,60408,3},{62511,60409,3},{62508,60408,3}, {62506,60408,3},{62506,60411,3},{62504,60413,3},{62506,60416,3},{62499,60418,3}, {62499,60419,3},{62501,60426,3},{62499,60428,3},{62496,60424,3},{62494,60423,3}, {62496,60421,3},{62496,60418,3},{62496,60416,3},{62486,60409,3},{62474,60406,3}, {62461,60409,3},{62456,60409,3},{62456,60408,3},{62458,60404,3},{62459,60408,3}, {62471,60404,3},{62473,60403,3},{62471,60399,3},{62469,60398,3},{62461,60398,3}, {62448,60401,3},{62448,60391,3},{62441,60388,3},{62431,60388,3},{62428,60391,3}, {62423,60374,3},{62414,60371,3},{62409,60373,3},{62409,60356,3},{62404,60349,3}, {62404,60344,3},{62404,60343,3},{62403,60339,3},{62399,60343,3},{62398,60338,3}, {62394,60336,3},{62381,60336,3},{62378,60338,3},{62373,60336,3},{62373,60334,3}, {62379,60333,3},{62379,60328,3},{62376,60326,3},{62374,60329,3},{62376,60331,3}, {62373,60333,3},{62368,60328,3},{62363,60314,3},{62359,60314,3},{62356,60316,3}, {62354,60314,3},{62353,60314,3},{62351,60311,3},{62348,60313,3},{62348,60316,3}, {62343,60323,3},{62339,60313,3},{62331,60311,3},{62331,60316,3},{62328,60313,3}, {62326,60314,3},{62329,60321,3},{62333,60324,3},{62333,60328,3},{62331,60328,3}, {62329,60323,3},{62324,60319,3},{62323,60321,3},{62329,60328,3},{62324,60326,3}, {62319,60328,3},{62311,60313,3},{62286,60299,3},{62248,60286,3},{62223,60273,3}, {62211,60263,3},{62203,60253,3},{62183,60226,3},{62171,60213,3},{62163,60199,3}, {62291,59716,131},{62304,59726,3},{62311,59726,3},{62319,59718,3},{62326,59721,3}, {62336,59721,3},{62341,59719,3},{62348,59716,3},{62353,59719,3},{62354,59729,3}, {62358,59733,3},{62378,59738,3},{62383,59736,3},{62388,59729,3},{62389,59728,3}, {62396,59738,3},{62403,59738,3},{62408,59743,3},{62413,59746,3},{62421,59744,3}, {62429,59751,3},{62434,59749,3},{62443,59744,3},{62444,59749,3},{62444,59754,3}, {62448,59756,3},{62464,59754,3},{62473,59751,3},{62476,59748,3},{62483,59748,3}, {62486,59749,3},{62501,59769,3},{62508,59773,3},{62513,59773,3},{62513,59779,3}, {62508,59786,3},{62509,59789,3},{62509,59793,3},{62506,59796,3},{62508,59799,3}, {62509,59803,3},{62506,59808,3},{62508,59811,3},{62506,59813,3},{62506,59814,3}, {62513,59821,3},{62518,59821,3},{62524,59828,3},{62526,59843,3},{62524,59846,3}, {62526,59849,3},{62524,59856,3},{62519,59859,3},{62513,59873,3},{62511,59874,3}, {62506,59874,3},{62506,59879,3},{62498,59888,3},{62494,59894,3},{62488,59899,3}, {62479,59914,3},{62478,59914,3},{62476,59918,3},{62471,59919,3},{62468,59924,3}, {62463,59928,3},{62456,59936,3},{62449,59938,3},{62443,59936,3},{62428,59936,3}, {62429,59953,3},{62431,59954,3},{62434,59961,3},{62441,59964,3},{62441,59973,3}, {62449,59973,3},{62451,59974,3},{62451,59978,3},{62441,59989,3},{62439,59994,3}, {62436,59996,3},{62433,60001,3},{62428,60003,3},{62423,60003,3},{62421,60008,3}, {62413,60011,3},{62411,60014,3},{62409,60021,3},{62403,60028,3},{62404,60031,3}, {62408,60031,3},{62409,60034,3},{62399,60043,3},{62398,60048,3},{62394,60053,3}, {62389,60078,3},{62386,60079,3},{62378,60089,3},{62369,60089,3},{62364,60098,3}, {62358,60104,3},{62344,60121,3},{62344,60124,3},{62349,60129,3},{62346,60134,3}, {62343,60136,3},{62343,60143,3},{62339,60148,3},{62334,60149,3},{62331,60156,3}, {62331,60161,3},{62326,60163,3},{62318,60166,3},{62316,60169,3},{62309,60173,3}, {62306,60171,3},{62299,60173,3},{62293,60179,3},{62286,60189,3},{62279,60196,3}, {62276,60206,3},{62276,60209,3},{62273,60218,3},{62264,60226,3},{62254,60218,3}, {62248,60208,3},{62239,60206,3},{62229,60189,3},{62221,60184,3},{62216,60183,3}, {62194,60186,3},{62169,60183,3},{62168,60186,3},{62168,60193,3},{62163,60194,3}, {62163,60199,3},{62158,60194,3},{62151,60188,3},{62129,60183,3},{62118,60166,3}, {62111,60161,3},{62103,60158,3},{62098,60159,3},{62093,60149,3},{62086,60138,3}, {62076,60126,3},{62073,60121,3},{62069,60121,3},{62068,60111,3},{62069,60113,3}, {62074,60111,3},{62078,60111,3},{62079,60104,3},{62076,60108,3},{62071,60101,3}, {62071,60106,3},{62068,60108,3},{62066,60108,3},{62054,60078,3},{62051,60073,3}, {62049,60068,3},{62044,60056,3},{62041,60046,3},{62038,60041,3},{62043,60041,3}, {62044,60033,3},{62046,60033,3},{62048,60029,3},{62046,60011,3},{62046,60008,3}, {62051,60006,3},{62054,59999,3},{62056,59983,3},{62058,59976,3},{62059,59966,3}, {62058,59958,3},{62053,59944,3},{62048,59934,3},{62044,59926,3},{62043,59918,3}, {62044,59916,3},{62046,59916,3},{62048,59914,3},{62044,59909,3},{62044,59904,3}, {62051,59893,3},{62056,59899,3},{62059,59891,3},{62059,59879,3},{62063,59874,3}, {62064,59861,3},{62069,59848,3},{62073,59844,3},{62081,59833,3},{62086,59828,3}, {62089,59826,3},{62091,59818,3},{62091,59794,3},{62091,59791,3},{62089,59784,3}, {62093,59779,3},{62086,59753,3},{62099,59746,3},{62109,59734,3},{62113,59729,3}, {62118,59728,3},{62119,59716,3},{62124,59714,3},{62136,59706,3},{62143,59696,3}, {62153,59693,3},{62168,59693,3},{62173,59694,3},{62181,59693,3},{62191,59698,3}, {62196,59694,3},{62201,59696,3},{62203,59699,3},{62208,59701,3},{62223,59699,3}, {62224,59703,3},{62224,59714,3},{62226,59721,3},{62233,59728,3},{62243,59731,3}, {62249,59729,3},{62256,59723,3},{62276,59721,3},{62291,59716,3},{63313,59273,131}, {63431,59311,3},{63479,59309,3},{63528,59344,3},{63571,59361,3},{63589,59474,3}, {63606,59538,3},{63601,59626,3},{63574,59681,3},{63553,59721,3},{63544,59721,3}, {63536,59723,3},{63526,59723,3},{63519,59719,3},{63518,59721,3},{63516,59724,3}, {63513,59719,3},{63509,59721,3},{63508,59721,3},{63509,59724,3},{63509,59726,3}, {63499,59728,3},{63493,59738,3},{63484,59734,3},{63474,59736,3},{63471,59739,3}, {63464,59738,3},{63464,59739,3},{63469,59743,3},{63468,59746,3},{63463,59751,3}, {63456,59741,3},{63454,59748,3},{63453,59751,3},{63446,59744,3},{63444,59748,3}, {63439,59751,3},{63441,59753,3},{63439,59754,3},{63431,59751,3},{63428,59753,3}, {63414,59753,3},{63408,59746,3},{63404,59748,3},{63404,59751,3},{63403,59751,3}, {63393,59744,3},{63384,59741,3},{63383,59741,3},{63378,59744,3},{63374,59743,3}, {63371,59743,3},{63368,59748,3},{63361,59743,3},{63356,59743,3},{63351,59741,3}, {63346,59744,3},{63334,59738,3},{63328,59738,3},{63328,59741,3},{63324,59743,3}, {63323,59746,3},{63324,59751,3},{63321,59753,3},{63324,59756,3},{63323,59759,3}, {63326,59759,3},{63326,59763,3},{63324,59768,3},{63326,59771,3},{63319,59774,3}, {63318,59776,3},{63318,59781,3},{63319,59781,3},{63318,59786,3},{63318,59791,3}, {63318,59794,3},{63314,59799,3},{63316,59799,3},{63314,59803,3},{63316,59806,3}, {63314,59808,3},{63314,59811,3},{63318,59816,3},{63314,59818,3},{63316,59821,3}, {63314,59826,3},{63313,59824,3},{63313,59826,3},{63313,59831,3},{63313,59833,3}, {63313,59841,3},{63311,59841,3},{63309,59846,3},{63311,59846,3},{63313,59848,3}, {63308,59848,3},{63306,59853,3},{63308,59856,3},{63311,59856,3},{63311,59863,3}, {63311,59864,3},{63314,59866,3},{63309,59873,3},{63313,59871,3},{63313,59874,3}, {63316,59878,3},{63318,59879,3},{63319,59879,3},{63326,59886,3},{63329,59896,3}, {63328,59898,3},{63319,59901,3},{63309,59916,3},{63308,59919,3},{63309,59924,3}, {63306,59928,3},{63308,59931,3},{63308,59934,3},{63309,59938,3},{63306,59943,3}, {63308,59951,3},{63296,59961,3},{63283,59963,3},{63279,59964,3},{63273,59974,3}, {63263,59976,3},{63254,59971,3},{63243,59974,3},{63236,59973,3},{63231,59978,3}, {63224,59978,3},{63221,59983,3},{63216,59983,3},{63211,59984,3},{63204,59981,3}, {63198,59986,3},{63189,59983,3},{63183,59984,3},{63176,59984,3},{63169,59989,3}, {63166,59993,3},{63143,59994,3},{63139,59996,3},{63138,60001,3},{63134,60018,3}, {63138,60026,3},{63138,60034,3},{63139,60044,3},{63144,60048,3},{63149,60059,3}, {63153,60069,3},{63156,60073,3},{63146,60094,3},{63138,60101,3},{63131,60111,3}, {63128,60108,3},{63123,60103,3},{63113,60104,3},{63108,60109,3},{63099,60111,3}, {63086,60103,3},{63074,60104,3},{63061,60099,3},{63056,60096,3},{63043,60094,3}, {63034,60091,3},{63028,60091,3},{63021,60094,3},{63016,60089,3},{63009,60086,3}, {62999,60078,3},{62993,60074,3},{62984,60076,3},{62979,60076,3},{62978,60076,3}, {62973,60078,3},{62971,60073,3},{62969,60071,3},{62959,60074,3},{62954,60078,3}, {62946,60074,3},{62941,60076,3},{62938,60069,3},{62929,60073,3},{62919,60069,3}, {62916,60073,3},{62911,60069,3},{62908,60071,3},{62893,60066,3},{62884,60056,3}, {62876,60058,3},{62871,60056,3},{62869,60054,3},{62871,60048,3},{62868,60044,3}, {62858,60041,3},{62856,60031,3},{62849,60023,3},{62841,60023,3},{62839,60016,3}, {62843,60009,3},{62838,59994,3},{62833,59991,3},{62826,59991,3},{62826,59983,3}, {62819,59981,3},{62819,59976,3},{62811,59979,3},{62808,59978,3},{62804,59978,3}, {62801,59976,3},{62799,59969,3},{62793,59963,3},{62791,59959,3},{62796,59951,3}, {62801,59949,3},{62803,59946,3},{62803,59939,3},{62804,59934,3},{62806,59931,3}, {62804,59921,3},{62799,59916,3},{62798,59909,3},{62789,59909,3},{62778,59899,3}, {62781,59891,3},{62789,59884,3},{62791,59879,3},{62789,59869,3},{62786,59861,3}, {62786,59858,3},{62794,59849,3},{62794,59846,3},{62793,59839,3},{62788,59829,3}, {62788,59824,3},{62789,59816,3},{62793,59806,3},{62793,59796,3},{62798,59784,3}, {62799,59774,3},{62804,59764,3},{62806,59758,3},{62809,59738,3},{62808,59729,3}, {62809,59713,3},{62808,59703,3},{62808,59686,3},{62804,59676,3},{62811,59676,3}, {62818,59671,3},{62821,59671,3},{62823,59674,3},{62824,59679,3},{62829,59681,3}, {62831,59683,3},{62829,59684,3},{62834,59686,3},{62838,59689,3},{62839,59688,3}, {62843,59688,3},{62844,59694,3},{62848,59699,3},{62848,59704,3},{62849,59704,3}, {62851,59701,3},{62854,59701,3},{62854,59703,3},{62854,59708,3},{62859,59708,3}, {62859,59711,3},{62871,59713,3},{62871,59718,3},{62874,59716,3},{62876,59719,3}, {62883,59714,3},{62888,59716,3},{62891,59718,3},{62893,59714,3},{62904,59719,3}, {62909,59719,3},{62913,59726,3},{62918,59721,3},{62916,59724,3},{62921,59726,3}, {62924,59728,3},{62926,59734,3},{62929,59739,3},{62936,59749,3},{62938,59751,3}, {62939,59746,3},{62941,59746,3},{62944,59751,3},{62948,59749,3},{62953,59756,3}, {62958,59754,3},{62963,59763,3},{62966,59759,3},{62968,59759,3},{62969,59763,3}, {62971,59768,3},{62974,59769,3},{62976,59771,3},{62974,59774,3},{62978,59776,3}, {62979,59779,3},{62993,59781,3},{62998,59773,3},{63003,59771,3},{63008,59768,3}, {63013,59763,3},{63018,59761,3},{63023,59753,3},{63028,59749,3},{63028,59738,3}, {63031,59736,3},{63031,59731,3},{63034,59728,3},{63034,59724,3},{63043,59714,3}, {63041,59711,3},{63038,59706,3},{63036,59703,3},{63039,59701,3},{63051,59691,3}, {63053,59683,3},{63054,59669,3},{63058,59664,3},{63058,59656,3},{63068,59643,3}, {63073,59633,3},{63076,59629,3},{63076,59624,3},{63084,59611,3},{63088,59603,3}, {63101,59589,3},{63134,59533,3},{63133,59523,3},{63133,59508,3},{63138,59499,3}, {63138,59491,3},{63141,59483,3},{63141,59479,3},{63146,59474,3},{63148,59471,3}, {63146,59468,3},{63148,59464,3},{63149,59451,3},{63154,59444,3},{63154,59436,3}, {63161,59433,3},{63169,59424,3},{63171,59426,3},{63176,59424,3},{63181,59418,3}, {63181,59414,3},{63184,59408,3},{63188,59406,3},{63191,59399,3},{63191,59396,3}, {63194,59391,3},{63194,59386,3},{63199,59383,3},{63201,59384,3},{63201,59381,3}, {63206,59376,3},{63208,59369,3},{63211,59363,3},{63218,59361,3},{63219,59358,3}, {63221,59358,3},{63221,59356,3},{63228,59351,3},{63229,59344,3},{63234,59338,3}, {63246,59333,3},{63264,59318,3},{63268,59318,3},{63269,59316,3},{63273,59318,3}, {63273,59314,3},{63276,59309,3},{63279,59313,3},{63283,59311,3},{63284,59308,3}, {63288,59308,3},{63291,59296,3},{63296,59289,3},{63298,59289,3},{63298,59284,3}, {63301,59283,3},{63304,59279,3},{63306,59274,3},{63311,59274,3},{63313,59273,3}, {63254,58818,131},{63246,58778,3},{63248,58756,3},{63253,58754,3},{63251,58753,3}, {63253,58748,3},{63264,58748,3},{63281,58751,3},{63286,58748,3},{63293,58748,3}, {63303,58741,3},{63309,58744,3},{63314,58743,3},{63319,58739,3},{63326,58741,3}, {63329,58739,3},{63339,58728,3},{63361,58726,3},{63368,58723,3},{63376,58718,3}, {63406,58718,3},{63443,58694,3},{63443,58686,3},{63446,58681,3},{63463,58679,3}, {63468,58684,3},{63471,58689,3},{63473,58689,3},{63479,58681,3},{63486,58666,3}, {63491,58661,3},{63496,58661,3},{63499,58661,3},{63503,58669,3},{63513,58663,3}, {63521,58664,3},{63523,58659,3},{63526,58658,3},{63528,58659,3},{63529,58669,3}, {63531,58679,3},{63539,58681,3},{63544,58684,3},{63548,58681,3},{63553,58681,3}, {63554,58676,3},{63563,58666,3},{63566,58668,3},{63571,58673,3},{63591,58688,3}, {63593,58693,3},{63594,58693,3},{63604,58681,3},{63608,58671,3},{63616,58668,3}, {63619,58661,3},{63626,58654,3},{63629,58646,3},{63638,58641,3},{63641,58638,3}, {63648,58643,3},{63661,58636,3},{63666,58636,3},{63671,58633,3},{63688,58634,3}, {63698,58629,3},{63704,58629,3},{63708,58628,3},{63713,58628,3},{63721,58621,3}, {63724,58623,3},{63728,58629,3},{63734,58629,3},{63733,58623,3},{63738,58613,3}, {63739,58611,3},{63741,58609,3},{63739,58609,3},{63738,58608,3},{63739,58606,3}, {63746,58604,3},{63756,58604,3},{63761,58601,3},{63773,58588,3},{63786,58586,3}, {63798,58586,3},{63806,58578,3},{63808,58571,3},{63813,58574,3},{63818,58574,3}, {63818,58578,3},{63826,58588,3},{63826,58591,3},{63831,58598,3},{63833,58598,3}, {63834,58594,3},{63838,58601,3},{63844,58604,3},{63854,58616,3},{63864,58619,3}, {63866,58626,3},{63871,58636,3},{63876,58633,3},{63881,58633,3},{63881,58634,3}, {63876,58643,3},{63876,58649,3},{63889,58651,3},{63889,58641,3},{63893,58641,3}, {63894,58646,3},{63894,58654,3},{63894,58659,3},{63898,58663,3},{63901,58668,3}, {63903,58663,3},{63906,58668,3},{63903,58673,3},{63901,58673,3},{63903,58678,3}, {63908,58676,3},{63909,58678,3},{63911,58678,3},{63911,58676,3},{63914,58676,3}, {63914,58673,3},{63913,58668,3},{63918,58656,3},{63914,58653,3},{63914,58651,3}, {63919,58651,3},{63929,58644,3},{63929,58651,3},{63934,58653,3},{63936,58659,3}, {63939,58658,3},{63943,58648,3},{63941,58643,3},{63943,58634,3},{63949,58636,3}, {63956,58633,3},{63959,58629,3},{63963,58626,3},{63966,58618,3},{63968,58621,3}, {63969,58618,3},{63968,58609,3},{63974,58606,3},{63979,58608,3},{63979,58604,3}, {63983,58599,3},{63988,58603,3},{63993,58603,3},{63996,58608,3},{63999,58608,3}, {64003,58609,3},{64006,58614,3},{64009,58616,3},{64009,58621,3},{64011,58623,3}, {64013,58623,3},{64019,58616,3},{64024,58608,3},{64034,58603,3},{64039,58598,3}, {64043,58598,3},{64046,58601,3},{64049,58599,3},{64056,58599,3},{64058,58603,3}, {64061,58609,3},{64063,58613,3},{64071,58611,3},{64078,58613,3},{64079,58621,3}, {64086,58621,3},{64098,58638,3},{64101,58638,3},{64103,58636,3},{64111,58636,3}, {64116,58651,3},{64124,58649,3},{64133,58646,3},{64138,58641,3},{64139,58638,3}, {64149,58638,3},{64156,58634,3},{64161,58636,3},{64166,58629,3},{64171,58628,3}, {64173,58629,3},{64173,58634,3},{64176,58634,3},{64179,58638,3},{64184,58639,3}, {64211,58641,3},{64218,58639,3},{64229,58641,3},{64236,58639,3},{64249,58639,3}, {64251,58641,3},{64256,58644,3},{64256,58646,3},{64259,58648,3},{64261,58651,3}, {64263,58651,3},{64264,58661,3},{64269,58663,3},{64271,58658,3},{64274,58658,3}, {64276,58659,3},{64279,58664,3},{64283,58666,3},{64283,58668,3},{64286,58668,3}, {64286,58669,3},{64336,58644,3},{64441,58579,3},{64441,58591,3},{64443,58596,3}, {64441,58606,3},{64441,58614,3},{64439,58626,3},{64439,58629,3},{64436,58638,3}, {64434,58646,3},{64434,58651,3},{64436,58654,3},{64436,58658,3},{64436,58661,3}, {64431,58658,3},{64424,58658,3},{64423,58661,3},{64426,58678,3},{64431,58684,3}, {64431,58694,3},{64436,58698,3},{64436,58703,3},{64438,58708,3},{64441,58709,3}, {64446,58714,3},{64451,58714,3},{64459,58723,3},{64464,58724,3},{64468,58729,3}, {64471,58734,3},{64471,58749,3},{64468,58756,3},{64464,58763,3},{64468,58766,3}, {64474,58769,3},{64478,58773,3},{64483,58776,3},{64486,58778,3},{64491,58789,3}, {64494,58794,3},{64498,58794,3},{64499,58804,3},{64504,58804,3},{64504,58813,3}, {64504,58819,3},{64508,58823,3},{64509,58828,3},{64528,58846,3},{64538,58859,3}, {64541,58871,3},{64546,58873,3},{64548,58888,3},{64548,58893,3},{64553,58901,3}, {64553,58913,3},{64556,58919,3},{64556,58926,3},{64558,58928,3},{64556,58933,3}, {64559,58946,3},{64558,58949,3},{64561,58954,3},{64558,58956,3},{64563,58958,3}, {64559,58959,3},{64561,58964,3},{64559,58966,3},{64556,58966,3},{64556,58971,3}, {64553,58974,3},{64553,58979,3},{64556,58981,3},{64558,58984,3},{64563,58984,3}, {64564,58986,3},{64568,58993,3},{64564,58999,3},{64559,59003,3},{64556,59003,3}, {64551,59006,3},{64541,59003,3},{64533,59003,3},{64526,59006,3},{64514,59008,3}, {64506,59004,3},{64499,58998,3},{64491,58996,3},{64488,58991,3},{64479,58993,3}, {64474,58993,3},{64471,58998,3},{64468,58998,3},{64456,58994,3},{64451,59003,3}, {64444,59004,3},{64438,59006,3},{64433,59003,3},{64426,59003,3},{64423,58998,3}, {64419,58996,3},{64416,58996,3},{64414,58999,3},{64411,58998,3},{64409,58996,3}, {64404,58999,3},{64403,59003,3},{64398,59001,3},{64388,59004,3},{64386,59006,3}, {64384,59013,3},{64383,59014,3},{64378,59014,3},{64374,59019,3},{64373,59016,3}, {64371,59018,3},{64364,59014,3},{64363,59016,3},{64358,59021,3},{64359,59021,3}, {64363,59023,3},{64366,59024,3},{64363,59024,3},{64361,59029,3},{64354,59033,3}, {64348,59033,3},{64344,59036,3},{64339,59034,3},{64336,59038,3},{64333,59056,3}, {64324,59061,3},{64321,59063,3},{64321,59064,3},{64326,59066,3},{64324,59068,3}, {64319,59068,3},{64316,59073,3},{64314,59081,3},{64311,59084,3},{64313,59088,3}, {64308,59089,3},{64299,59086,3},{64296,59091,3},{64289,59096,3},{64289,59106,3}, {64286,59108,3},{64286,59109,3},{64288,59113,3},{64288,59114,3},{64288,59118,3}, {64283,59121,3},{64284,59123,3},{64286,59124,3},{64284,59126,3},{64286,59128,3}, {64284,59133,3},{64283,59134,3},{64283,59139,3},{64281,59143,3},{64283,59146,3}, {64289,59149,3},{64289,59156,3},{64289,59168,3},{64286,59173,3},{64284,59179,3}, {64281,59181,3},{64279,59188,3},{64276,59189,3},{64271,59194,3},{64269,59199,3}, {64266,59203,3},{64266,59213,3},{64273,59223,3},{64271,59229,3},{64266,59229,3}, {64264,59231,3},{64261,59231,3},{64258,59234,3},{64253,59236,3},{64249,59241,3}, {64251,59243,3},{64241,59249,3},{64241,59253,3},{64238,59254,3},{64234,59258,3}, {64238,59259,3},{64239,59266,3},{64236,59271,3},{64233,59271,3},{64229,59281,3}, {64229,59288,3},{64223,59294,3},{64221,59298,3},{64221,59308,3},{64224,59314,3}, {64223,59318,3},{64224,59319,3},{64221,59323,3},{64221,59324,3},{64209,59324,3}, {64206,59331,3},{64201,59334,3},{64191,59349,3},{64184,59351,3},{64181,59353,3}, {64183,59363,3},{64184,59369,3},{64186,59376,3},{64181,59383,3},{64181,59391,3}, {64188,59403,3},{64183,59411,3},{64184,59416,3},{64183,59419,3},{64188,59424,3}, {64188,59428,3},{64189,59429,3},{64188,59433,3},{64181,59433,3},{64181,59438,3}, {64178,59441,3},{64171,59454,3},{64168,59456,3},{64168,59463,3},{64166,59463,3}, {64163,59468,3},{64161,59476,3},{64158,59479,3},{64156,59489,3},{64149,59489,3}, {64141,59496,3},{64139,59494,3},{64138,59498,3},{64129,59494,3},{64126,59489,3}, {64118,59488,3},{64114,59491,3},{64106,59491,3},{64099,59496,3},{64094,59498,3}, {64088,59501,3},{64084,59503,3},{64081,59501,3},{64081,59499,3},{64078,59501,3}, {64074,59501,3},{64068,59496,3},{64054,59493,3},{64026,59498,3},{64026,59479,3}, {64021,59483,3},{64018,59488,3},{64013,59491,3},{64009,59494,3},{64004,59498,3}, {64001,59503,3},{63996,59506,3},{63993,59509,3},{63988,59513,3},{63981,59514,3}, {63976,59514,3},{63971,59514,3},{63964,59516,3},{63959,59516,3},{63954,59516,3}, {63948,59516,3},{63943,59518,3},{63938,59518,3},{63931,59518,3},{63926,59519,3}, {63921,59519,3},{63916,59519,3},{63909,59519,3},{63909,59526,3},{63909,59531,3}, {63909,59538,3},{63909,59543,3},{63908,59548,3},{63908,59554,3},{63908,59559,3}, {63908,59566,3},{63908,59571,3},{63908,59578,3},{63908,59583,3},{63908,59588,3}, {63906,59594,3},{63906,59599,3},{63906,59606,3},{63906,59611,3},{63906,59618,3}, {63906,59623,3},{63906,59629,3},{63904,59634,3},{63904,59639,3},{63904,59646,3}, {63904,59651,3},{63904,59658,3},{63904,59663,3},{63904,59669,3},{63904,59674,3}, {63903,59681,3},{63903,59686,3},{63903,59691,3},{63904,59694,3},{63908,59698,3}, {63908,59703,3},{63896,59704,3},{63893,59701,3},{63886,59701,3},{63878,59694,3}, {63873,59689,3},{63866,59688,3},{63853,59691,3},{63844,59689,3},{63836,59693,3}, {63811,59696,3},{63808,59699,3},{63806,59706,3},{63801,59716,3},{63798,59731,3}, {63791,59744,3},{63776,59763,3},{63774,59759,3},{63771,59758,3},{63768,59759,3}, {63763,59764,3},{63759,59764,3},{63754,59768,3},{63753,59768,3},{63751,59764,3}, {63731,59776,3},{63723,59779,3},{63716,59784,3},{63716,59791,3},{63713,59791,3}, {63713,59781,3},{63708,59779,3},{63703,59778,3},{63698,59776,3},{63693,59774,3}, {63688,59773,3},{63683,59771,3},{63678,59769,3},{63673,59768,3},{63669,59766,3}, {63664,59764,3},{63659,59763,3},{63654,59761,3},{63649,59761,3},{63644,59759,3}, {63644,59764,3},{63631,59766,3},{63631,59758,3},{63626,59756,3},{63621,59754,3}, {63616,59751,3},{63613,59749,3},{63608,59746,3},{63603,59744,3},{63598,59741,3}, {63593,59739,3},{63588,59736,3},{63583,59734,3},{63578,59733,3},{63573,59729,3}, {63568,59728,3},{63564,59724,3},{63563,59724,3},{63538,59751,3},{63533,59746,3}, {63533,59739,3},{63531,59738,3},{63529,59733,3},{63526,59731,3},{63521,59726,3}, {63519,59719,3},{63526,59723,3},{63536,59723,3},{63544,59721,3},{63553,59721,3}, {63574,59681,3},{63601,59626,3},{63606,59538,3},{63589,59474,3},{63571,59361,3}, {63528,59344,3},{63479,59309,3},{63431,59311,3},{63313,59273,3},{63313,59269,3}, {63318,59268,3},{63321,59259,3},{63323,59258,3},{63336,59254,3},{63336,59168,3}, {63333,59166,3},{63336,59163,3},{63336,59143,3},{63329,59141,3},{63326,59136,3}, {63321,59136,3},{63319,59134,3},{63313,59133,3},{63311,59129,3},{63301,59124,3}, {63294,59123,3},{63284,59114,3},{63279,59111,3},{63274,59111,3},{63271,59108,3}, {63261,59106,3},{63259,59108,3},{63249,59104,3},{63249,59101,3},{63263,59099,3}, {63264,59096,3},{63271,59091,3},{63281,59093,3},{63293,59083,3},{63298,59083,3}, {63299,59079,3},{63308,59083,3},{63314,59076,3},{63319,59069,3},{63318,59064,3}, {63323,59053,3},{63324,59041,3},{63328,59038,3},{63326,58989,3},{63328,58978,3}, {63326,58976,3},{63324,58961,3},{63329,58954,3},{63343,58943,3},{63344,58933,3}, {63349,58933,3},{63353,58928,3},{63358,58916,3},{63358,58913,3},{63338,58908,3}, {63328,58906,3},{63328,58904,3},{63324,58899,3},{63316,58874,3},{63314,58873,3}, {63316,58868,3},{63313,58863,3},{63301,58859,3},{63298,58858,3},{63293,58859,3}, {63288,58843,3},{63284,58839,3},{63284,58834,3},{63271,58834,3},{63264,58824,3}, {63254,58818,3},{63914,58626,131},{63916,58626,3},{63918,58623,3},{63919,58626,3}, {63921,58628,3},{63924,58628,3},{63928,58623,3},{63929,58623,3},{63931,58624,3}, {63928,58624,3},{63926,58634,3},{63919,58639,3},{63916,58646,3},{63911,58651,3}, {63909,58651,3},{63909,58646,3},{63913,58646,3},{63914,58639,3},{63914,58634,3}, {63916,58633,3},{63914,58629,3},{63914,58626,3},{60298,58693,131},{60303,58693,3}, {60308,58653,3},{60316,58638,3},{60321,58613,3},{60321,58589,3},{60336,58536,3}, {60336,58344,3},{60338,58343,3},{60339,58339,3},{60346,58343,3},{60351,58339,3}, {60363,58323,3},{60366,58308,3},{60378,58303,3},{60378,58294,3},{60379,58293,3}, {60384,58294,3},{60388,58303,3},{60393,58303,3},{60396,58304,3},{60406,58304,3}, {60411,58311,3},{60414,58309,3},{60419,58299,3},{60424,58296,3},{60433,58303,3}, {60433,58308,3},{60434,58309,3},{60451,58311,3},{60461,58303,3},{60471,58306,3}, {60473,58301,3},{60474,58299,3},{60474,58294,3},{60476,58286,3},{60474,58283,3}, {60469,58278,3},{60469,58273,3},{60474,58261,3},{60469,58246,3},{60461,58234,3}, {60459,58224,3},{60461,58219,3},{60471,58219,3},{60479,58211,3},{60504,58208,3}, {60511,58203,3},{60523,58183,3},{60526,58183,3},{60536,58189,3},{60544,58179,3}, {60546,58183,3},{60551,58183,3},{60558,58191,3},{60568,58183,3},{60574,58184,3}, {60583,58178,3},{60586,58183,3},{60593,58183,3},{60598,58191,3},{60604,58189,3}, {60606,58223,3},{60608,58223,3},{60609,58228,3},{60611,58219,3},{60614,58218,3}, {60623,58228,3},{60629,58228,3},{60638,58236,3},{60641,58244,3},{60643,58261,3}, {60656,58279,3},{60664,58281,3},{60688,58276,3},{60691,58279,3},{60696,58296,3}, {60701,58299,3},{60701,58308,3},{60708,58304,3},{60716,58306,3},{60728,58304,3}, {60731,58298,3},{60734,58296,3},{60736,58289,3},{60743,58283,3},{60761,58291,3}, {60776,58303,3},{60786,58306,3},{60788,58301,3},{60789,58299,3},{60793,58303,3}, {60794,58306,3},{60794,58319,3},{60798,58323,3},{60801,58328,3},{60809,58334,3}, {60814,58333,3},{60816,58333,3},{60816,58334,3},{60814,58341,3},{60813,58344,3}, {60814,58349,3},{60821,58349,3},{60829,58336,3},{60831,58336,3},{60836,58346,3}, {60841,58339,3},{60851,58344,3},{60854,58343,3},{60856,58344,3},{60858,58354,3}, {60863,58359,3},{60864,58366,3},{60868,58369,3},{60878,58368,3},{60883,58369,3}, {60898,58361,3},{60911,58361,3},{60914,58359,3},{60916,58353,3},{60919,58349,3}, {60921,58346,3},{60923,58348,3},{60924,58359,3},{60934,58369,3},{60939,58376,3}, {60946,58373,3},{60951,58359,3},{60958,58363,3},{60963,58358,3},{60966,58359,3}, {60971,58358,3},{60976,58363,3},{60979,58361,3},{60981,58363,3},{60983,58368,3}, {60983,58383,3},{60986,58388,3},{60988,58389,3},{60994,58386,3},{60999,58399,3}, {61004,58406,3},{61006,58406,3},{61014,58403,3},{61018,58396,3},{61019,58391,3}, {61038,58379,3},{61038,58368,3},{61043,58361,3},{61043,58356,3},{61041,58349,3}, {61044,58339,3},{61046,58329,3},{61059,58328,3},{61061,58331,3},{61058,58341,3}, {61058,58346,3},{61056,58353,3},{61061,58358,3},{61058,58371,3},{61061,58386,3}, {61056,58399,3},{61056,58408,3},{61061,58414,3},{61071,58413,3},{61076,58416,3}, {61078,58423,3},{61083,58426,3},{61086,58421,3},{61091,58421,3},{61093,58416,3}, {61094,58399,3},{61096,58394,3},{61094,58373,3},{61098,58364,3},{61096,58359,3}, {61096,58356,3},{61099,58351,3},{61104,58356,3},{61109,58354,3},{61116,58356,3}, {61123,58351,3},{61126,58351,3},{61129,58361,3},{61139,58371,3},{61144,58371,3}, {61153,58361,3},{61159,58363,3},{61158,58358,3},{61159,58354,3},{61163,58356,3}, {61168,58368,3},{61176,58366,3},{61178,58359,3},{61181,58358,3},{61183,58349,3}, {61186,58351,3},{61189,58351,3},{61191,58341,3},{61194,58344,3},{61198,58343,3}, {61199,58346,3},{61204,58346,3},{61206,58354,3},{61206,58361,3},{61218,58363,3}, {61219,58361,3},{61223,58353,3},{61224,58338,3},{61226,58331,3},{61234,58323,3}, {61251,58326,3},{61264,58324,3},{61269,58323,3},{61274,58324,3},{61278,58323,3}, {61283,58324,3},{61288,58333,3},{61293,58329,3},{61301,58331,3},{61308,58323,3}, {61314,58329,3},{61319,58331,3},{61323,58334,3},{61323,58339,3},{61318,58343,3}, {61318,58344,3},{61323,58349,3},{61323,58358,3},{61326,58363,3},{61333,58363,3}, {61338,58359,3},{61341,58359,3},{61349,58358,3},{61358,58351,3},{61364,58351,3}, {61371,58344,3},{61374,58346,3},{61378,58353,3},{61384,58348,3},{61393,58349,3}, {61399,58346,3},{61411,58349,3},{61418,58348,3},{61421,58351,3},{61429,58353,3}, {61434,58349,3},{61441,58353,3},{61446,58351,3},{61451,58346,3},{61463,58341,3}, {61473,58351,3},{61478,58353,3},{61481,58351,3},{61494,58358,3},{61496,58359,3}, {61493,58364,3},{61503,58369,3},{61506,58369,3},{61508,58366,3},{61506,58364,3}, {61506,58363,3},{61516,58354,3},{61518,58356,3},{61524,58358,3},{61526,58356,3}, {61528,58358,3},{61528,58361,3},{61526,58369,3},{61534,58369,3},{61544,58376,3}, {61548,58374,3},{61551,58369,3},{61564,58366,3},{61568,58368,3},{61573,58364,3}, {61578,58366,3},{61579,58369,3},{61574,58374,3},{61574,58381,3},{61574,58384,3}, {61576,58388,3},{61581,58388,3},{61583,58383,3},{61588,58388,3},{61593,58391,3}, {61598,58389,3},{61603,58396,3},{61613,58398,3},{61633,58394,3},{61644,58396,3}, {61653,58413,3},{61656,58413,3},{61656,58423,3},{61659,58426,3},{61661,58431,3}, {61661,58443,3},{61666,58446,3},{61668,58449,3},{61673,58448,3},{61674,58451,3}, {61679,58454,3},{61684,58453,3},{61688,58444,3},{61694,58439,3},{61713,58434,3}, {61719,58436,3},{61724,58434,3},{61729,58436,3},{61733,58433,3},{61766,58418,3}, {61774,58419,3},{61778,58424,3},{61781,58423,3},{61789,58426,3},{61793,58424,3}, {61798,58419,3},{61806,58416,3},{61814,58423,3},{61821,58423,3},{61824,58424,3}, {61826,58428,3},{61828,58424,3},{61836,58421,3},{61838,58416,3},{61838,58421,3}, {61841,58424,3},{61844,58421,3},{61848,58423,3},{61849,58418,3},{61851,58418,3}, {61861,58423,3},{61868,58423,3},{61868,58426,3},{61866,58429,3},{61868,58431,3}, {61876,58429,3},{61888,58433,3},{61888,58443,3},{61889,58444,3},{61894,58446,3}, {61896,58449,3},{61893,58456,3},{61894,58466,3},{61898,58466,3},{61903,58464,3}, {61909,58466,3},{61911,58471,3},{61914,58473,3},{61916,58478,3},{61921,58478,3}, {61923,58481,3},{61921,58484,3},{61919,58488,3},{61921,58493,3},{61931,58499,3}, {61939,58494,3},{61944,58499,3},{61946,58494,3},{61953,58498,3},{61954,58503,3}, {61971,58494,3},{61976,58496,3},{61986,58496,3},{61989,58493,3},{61998,58489,3}, {61999,58493,3},{62001,58494,3},{62004,58491,3},{62006,58483,3},{62008,58479,3}, {62011,58479,3},{62016,58483,3},{62016,58491,3},{62021,58499,3},{62038,58501,3}, {62056,58509,3},{62058,58509,3},{62061,58504,3},{62064,58511,3},{62078,58514,3}, {62083,58521,3},{62091,58526,3},{62094,58531,3},{62108,58531,3},{62109,58539,3}, {62108,58546,3},{62109,58548,3},{62111,58553,3},{62113,58554,3},{62123,58549,3}, {62126,58551,3},{62139,58551,3},{62141,58551,3},{62139,58548,3},{62141,58546,3}, {62148,58548,3},{62158,58546,3},{62159,58546,3},{62164,58551,3},{62169,58548,3}, {62178,58549,3},{62181,58549,3},{62183,58553,3},{62191,58554,3},{62196,58559,3}, {62201,58556,3},{62208,58556,3},{62213,58544,3},{62211,58541,3},{62206,58538,3}, {62206,58536,3},{62213,58533,3},{62219,58526,3},{62228,58528,3},{62233,58526,3}, {62236,58528,3},{62236,58533,3},{62248,58538,3},{62251,58531,3},{62261,58521,3}, {62274,58519,3},{62278,58519,3},{62279,58523,3},{62281,58521,3},{62288,58521,3}, {62289,58519,3},{62294,58513,3},{62301,58513,3},{62304,58511,3},{62308,58504,3}, {62314,58504,3},{62318,58503,3},{62323,58504,3},{62324,58501,3},{62328,58501,3}, {62331,58498,3},{62333,58499,3},{62331,58509,3},{62341,58513,3},{62348,58506,3}, {62348,58496,3},{62349,58493,3},{62356,58489,3},{62363,58488,3},{62369,58483,3}, {62379,58478,3},{62394,58479,3},{62399,58481,3},{62404,58479,3},{62413,58483,3}, {62419,58483,3},{62426,58489,3},{62426,58491,3},{62421,58494,3},{62424,58499,3}, {62433,58503,3},{62433,58511,3},{62439,58503,3},{62448,58503,3},{62458,58506,3}, {62464,58509,3},{62471,58509,3},{62476,58514,3},{62486,58516,3},{62489,58521,3}, {62493,58523,3},{62499,58519,3},{62501,58524,3},{62498,58529,3},{62496,58534,3}, {62498,58541,3},{62504,58546,3},{62514,58549,3},{62518,58553,3},{62521,58553,3}, {62524,58551,3},{62528,58546,3},{62528,58539,3},{62539,58544,3},{62558,58546,3}, {62561,58544,3},{62564,58544,3},{62566,58541,3},{62569,58539,3},{62581,58539,3}, {62599,58533,3},{62606,58533,3},{62609,58534,3},{62611,58539,3},{62616,58538,3}, {62619,58544,3},{62623,58546,3},{62623,58553,3},{62626,58556,3},{62641,58556,3}, {62656,58564,3},{62664,58561,3},{62669,58561,3},{62673,58564,3},{62676,58566,3}, {62679,58569,3},{62696,58571,3},{62704,58583,3},{62711,58588,3},{62716,58588,3}, {62718,58589,3},{62714,58596,3},{62719,58598,3},{62724,58601,3},{62729,58603,3}, {62733,58606,3},{62736,58606,3},{62739,58618,3},{62746,58621,3},{62763,58624,3}, {62766,58629,3},{62771,58628,3},{62776,58631,3},{62783,58634,3},{62789,58636,3}, {62794,58641,3},{62799,58646,3},{62808,58649,3},{62813,58648,3},{62824,58654,3}, {62826,58658,3},{62826,58666,3},{62821,58673,3},{62819,58678,3},{62826,58681,3}, {62829,58686,3},{62829,58693,3},{62831,58699,3},{62831,58704,3},{62838,58704,3}, {62844,58708,3},{62848,58706,3},{62866,58693,3},{62878,58683,3},{62886,58678,3}, {62906,58679,3},{62918,58694,3},{62921,58696,3},{62963,58686,3},{62969,58681,3}, {62979,58681,3},{62984,58676,3},{62991,58676,3},{63003,58679,3},{63018,58686,3}, {63023,58689,3},{63021,58694,3},{63023,58701,3},{63024,58701,3},{63033,58694,3}, {63039,58693,3},{63043,58689,3},{63046,58691,3},{63046,58686,3},{63049,58681,3}, {63054,58679,3},{63059,58679,3},{63069,58686,3},{63076,58688,3},{63076,58689,3}, {63074,58689,3},{63074,58693,3},{63079,58693,3},{63086,58698,3},{63086,58706,3}, {63096,58711,3},{63134,58803,3},{63196,58821,3},{63236,58836,3},{63254,58818,3}, {63264,58824,3},{63271,58834,3},{63284,58834,3},{63284,58839,3},{63288,58843,3}, {63293,58859,3},{63298,58858,3},{63301,58859,3},{63313,58863,3},{63316,58868,3}, {63314,58873,3},{63316,58874,3},{63324,58899,3},{63328,58904,3},{63328,58906,3}, {63338,58908,3},{63358,58913,3},{63358,58916,3},{63353,58928,3},{63349,58933,3}, {63344,58933,3},{63343,58943,3},{63329,58954,3},{63324,58961,3},{63326,58976,3}, {63328,58978,3},{63326,58989,3},{63328,59038,3},{63324,59041,3},{63323,59053,3}, {63318,59064,3},{63319,59069,3},{63314,59076,3},{63308,59083,3},{63299,59079,3}, {63298,59083,3},{63293,59083,3},{63281,59093,3},{63271,59091,3},{63264,59096,3}, {63263,59099,3},{63249,59101,3},{63249,59104,3},{63259,59108,3},{63261,59106,3}, {63271,59108,3},{63274,59111,3},{63279,59111,3},{63284,59114,3},{63294,59123,3}, {63301,59124,3},{63311,59129,3},{63313,59133,3},{63319,59134,3},{63321,59136,3}, {63326,59136,3},{63329,59141,3},{63336,59143,3},{63336,59163,3},{63333,59166,3}, {63336,59168,3},{63336,59254,3},{63323,59258,3},{63321,59259,3},{63318,59268,3}, {63313,59269,3},{63313,59273,3},{63311,59274,3},{63306,59274,3},{63304,59279,3}, {63301,59283,3},{63298,59284,3},{63298,59289,3},{63296,59289,3},{63291,59296,3}, {63288,59308,3},{63284,59308,3},{63283,59311,3},{63279,59313,3},{63276,59309,3}, {63273,59314,3},{63273,59318,3},{63269,59316,3},{63268,59318,3},{63264,59318,3}, {63246,59333,3},{63234,59338,3},{63229,59344,3},{63228,59351,3},{63221,59356,3}, {63221,59358,3},{63219,59358,3},{63218,59361,3},{63211,59363,3},{63208,59369,3}, {63206,59376,3},{63201,59381,3},{63201,59384,3},{63199,59383,3},{63194,59386,3}, {63194,59391,3},{63191,59396,3},{63191,59399,3},{63188,59406,3},{63184,59408,3}, {63181,59414,3},{63181,59418,3},{63176,59424,3},{63171,59426,3},{63169,59424,3}, {63161,59433,3},{63154,59436,3},{63154,59444,3},{63149,59451,3},{63148,59464,3}, {63146,59468,3},{63148,59471,3},{63146,59474,3},{63141,59479,3},{63141,59483,3}, {63138,59491,3},{63138,59499,3},{63133,59508,3},{63133,59523,3},{63134,59533,3}, {63101,59589,3},{63088,59603,3},{63084,59611,3},{63076,59624,3},{63076,59629,3}, {63073,59633,3},{63068,59643,3},{63058,59656,3},{63058,59664,3},{63054,59669,3}, {63053,59683,3},{63051,59691,3},{63039,59701,3},{63036,59703,3},{63038,59706,3}, {63041,59711,3},{63043,59714,3},{63034,59724,3},{63034,59728,3},{63031,59731,3}, {63031,59736,3},{63028,59738,3},{63028,59749,3},{63023,59753,3},{63018,59761,3}, {63013,59763,3},{63008,59768,3},{63003,59771,3},{62998,59773,3},{62993,59781,3}, {62979,59779,3},{62978,59776,3},{62974,59774,3},{62976,59771,3},{62974,59769,3}, {62971,59768,3},{62969,59763,3},{62968,59759,3},{62966,59759,3},{62963,59763,3}, {62958,59754,3},{62953,59756,3},{62948,59749,3},{62944,59751,3},{62941,59746,3}, {62939,59746,3},{62938,59751,3},{62936,59749,3},{62929,59739,3},{62926,59734,3}, {62924,59728,3},{62921,59726,3},{62916,59724,3},{62918,59721,3},{62913,59726,3}, {62909,59719,3},{62904,59719,3},{62893,59714,3},{62891,59718,3},{62888,59716,3}, {62883,59714,3},{62876,59719,3},{62874,59716,3},{62871,59718,3},{62871,59713,3}, {62859,59711,3},{62859,59708,3},{62854,59708,3},{62854,59703,3},{62854,59701,3}, {62851,59701,3},{62849,59704,3},{62848,59704,3},{62848,59699,3},{62844,59694,3}, {62843,59688,3},{62839,59688,3},{62838,59689,3},{62834,59686,3},{62829,59684,3}, {62831,59683,3},{62829,59681,3},{62824,59679,3},{62823,59674,3},{62821,59671,3}, {62818,59671,3},{62811,59676,3},{62804,59676,3},{62808,59686,3},{62808,59703,3}, {62809,59713,3},{62808,59729,3},{62809,59738,3},{62806,59758,3},{62804,59764,3}, {62799,59774,3},{62798,59784,3},{62793,59796,3},{62793,59806,3},{62789,59816,3}, {62788,59824,3},{62788,59829,3},{62793,59839,3},{62794,59846,3},{62794,59849,3}, {62786,59858,3},{62786,59861,3},{62789,59869,3},{62791,59879,3},{62789,59884,3}, {62781,59891,3},{62778,59899,3},{62789,59909,3},{62798,59909,3},{62799,59916,3}, {62804,59921,3},{62806,59931,3},{62804,59934,3},{62803,59939,3},{62803,59946,3}, {62801,59949,3},{62796,59951,3},{62791,59959,3},{62793,59963,3},{62799,59969,3}, {62801,59976,3},{62804,59978,3},{62808,59978,3},{62811,59979,3},{62819,59976,3}, {62819,59981,3},{62826,59983,3},{62826,59991,3},{62833,59991,3},{62838,59994,3}, {62843,60009,3},{62839,60016,3},{62841,60023,3},{62849,60023,3},{62856,60031,3}, {62858,60041,3},{62868,60044,3},{62871,60048,3},{62869,60054,3},{62871,60056,3}, {62876,60058,3},{62884,60056,3},{62893,60066,3},{62908,60071,3},{62911,60069,3}, {62916,60073,3},{62919,60069,3},{62929,60073,3},{62938,60069,3},{62941,60076,3}, {62946,60074,3},{62954,60078,3},{62959,60074,3},{62969,60071,3},{62971,60073,3}, {62973,60078,3},{62978,60076,3},{62979,60076,3},{62979,60083,3},{62976,60083,3}, {62976,60086,3},{62973,60089,3},{62968,60093,3},{62968,60094,3},{62971,60094,3}, {62973,60096,3},{62978,60098,3},{62978,60103,3},{62981,60104,3},{62981,60108,3}, {62976,60111,3},{62979,60113,3},{62978,60118,3},{62983,60116,3},{62983,60121,3}, {62986,60126,3},{62984,60126,3},{62979,60124,3},{62976,60128,3},{62978,60129,3}, {62981,60129,3},{62979,60131,3},{62981,60134,3},{62976,60139,3},{62971,60141,3}, {62971,60144,3},{62973,60146,3},{62971,60148,3},{62968,60149,3},{62964,60148,3}, {62956,60154,3},{62948,60153,3},{62944,60154,3},{62941,60153,3},{62933,60161,3}, {62924,60163,3},{62916,60169,3},{62911,60171,3},{62904,60169,3},{62899,60164,3}, {62886,60166,3},{62881,60163,3},{62879,60164,3},{62874,60163,3},{62868,60163,3}, {62864,60159,3},{62863,60161,3},{62861,60163,3},{62859,60161,3},{62858,60164,3}, {62848,60166,3},{62834,60161,3},{62831,60158,3},{62826,60156,3},{62824,60154,3}, {62823,60156,3},{62819,60153,3},{62824,60148,3},{62819,60144,3},{62821,60141,3}, {62816,60139,3},{62816,60136,3},{62811,60131,3},{62808,60124,3},{62808,60121,3}, {62811,60119,3},{62811,60118,3},{62801,60113,3},{62798,60113,3},{62796,60109,3}, {62793,60108,3},{62793,60104,3},{62796,60103,3},{62791,60101,3},{62796,60096,3}, {62794,60089,3},{62793,60089,3},{62791,60091,3},{62789,60091,3},{62788,60083,3}, {62791,60078,3},{62783,60074,3},{62783,60071,3},{62786,60069,3},{62783,60069,3}, {62781,60068,3},{62779,60058,3},{62781,60058,3},{62783,60058,3},{62783,60054,3}, {62774,60051,3},{62774,60046,3},{62763,60044,3},{62756,60036,3},{62759,60029,3}, {62758,60028,3},{62751,60034,3},{62751,60026,3},{62748,60023,3},{62751,60019,3}, {62751,60018,3},{62744,60011,3},{62744,60004,3},{62739,60003,3},{62738,59998,3}, {62733,59998,3},{62728,59991,3},{62728,59988,3},{62729,59988,3},{62728,59986,3}, {62721,59979,3},{62721,59978,3},{62724,59978,3},{62724,59974,3},{62719,59973,3}, {62716,59968,3},{62713,59959,3},{62709,59959,3},{62706,59968,3},{62704,59969,3}, {62701,59969,3},{62694,59966,3},{62696,59964,3},{62699,59963,3},{62701,59953,3}, {62699,59948,3},{62694,59946,3},{62689,59946,3},{62688,59941,3},{62686,59934,3}, {62683,59933,3},{62678,59934,3},{62676,59934,3},{62669,59924,3},{62659,59916,3}, {62658,59908,3},{62646,59906,3},{62644,59903,3},{62639,59896,3},{62629,59893,3}, {62626,59884,3},{62619,59874,3},{62616,59871,3},{62609,59871,3},{62601,59866,3}, {62598,59859,3},{62594,59858,3},{62588,59853,3},{62576,59839,3},{62573,59839,3}, {62559,59826,3},{62558,59823,3},{62558,59813,3},{62554,59808,3},{62549,59804,3}, {62538,59803,3},{62533,59794,3},{62523,59786,3},{62519,59781,3},{62518,59773,3}, {62513,59773,3},{62508,59773,3},{62501,59769,3},{62486,59749,3},{62483,59748,3}, {62476,59748,3},{62473,59751,3},{62464,59754,3},{62448,59756,3},{62444,59754,3}, {62444,59749,3},{62443,59744,3},{62434,59749,3},{62429,59751,3},{62421,59744,3}, {62413,59746,3},{62408,59743,3},{62403,59738,3},{62396,59738,3},{62389,59728,3}, {62388,59729,3},{62383,59736,3},{62378,59738,3},{62358,59733,3},{62354,59729,3}, {62353,59719,3},{62348,59716,3},{62341,59719,3},{62336,59721,3},{62326,59721,3}, {62319,59718,3},{62311,59726,3},{62304,59726,3},{62291,59716,3},{62286,59714,3}, {62279,59714,3},{62254,59718,3},{62246,59723,3},{62238,59721,3},{62231,59721,3}, {62226,59716,3},{62228,59696,3},{62226,59693,3},{62223,59694,3},{62211,59693,3}, {62206,59694,3},{62196,59686,3},{62184,59683,3},{62163,59681,3},{62151,59689,3}, {62141,59691,3},{62139,59693,3},{62134,59691,3},{62131,59698,3},{62121,59698,3}, {62118,59698,3},{62109,59693,3},{62109,59683,3},{62108,59679,3},{62101,59688,3}, {62091,59684,3},{62088,59688,3},{62081,59689,3},{62079,59693,3},{62078,59699,3}, {62069,59704,3},{62061,59718,3},{62056,59736,3},{62053,59743,3},{62049,59754,3}, {62036,59778,3},{62031,59786,3},{62021,59803,3},{62004,59818,3},{61994,59824,3}, {61989,59823,3},{61971,59808,3},{61958,59798,3},{61953,59798,3},{61939,59798,3}, {61934,59803,3},{61928,59804,3},{61923,59809,3},{61918,59813,3},{61904,59831,3}, {61901,59843,3},{61898,59843,3},{61901,59849,3},{61901,59859,3},{61904,59858,3}, {61906,59859,3},{61904,59863,3},{61894,59866,3},{61884,59866,3},{61878,59869,3}, {61846,59869,3},{61834,59859,3},{61803,59834,3},{61796,59833,3},{61789,59826,3}, {61779,59818,3},{61771,59804,3},{61753,59788,3},{61738,59783,3},{61733,59783,3}, {61728,59783,3},{61723,59778,3},{61716,59769,3},{61709,59754,3},{61706,59751,3}, {61704,59743,3},{61693,59721,3},{61688,59704,3},{61684,59693,3},{61679,59676,3}, {61678,59664,3},{61676,59658,3},{61674,59653,3},{61673,59646,3},{61669,59639,3}, {61666,59633,3},{61666,59626,3},{61666,59621,3},{61664,59613,3},{61663,59606,3}, {61661,59599,3},{61661,59593,3},{61659,59586,3},{61659,59579,3},{61658,59574,3}, {61656,59568,3},{61654,59561,3},{61653,59558,3},{61651,59548,3},{61651,59541,3}, {61649,59534,3},{61649,59526,3},{61648,59521,3},{61648,59514,3},{61646,59508,3}, {61644,59501,3},{61644,59496,3},{61643,59488,3},{61643,59481,3},{61643,59474,3}, {61641,59468,3},{61639,59461,3},{61639,59453,3},{61639,59434,3},{61636,59428,3}, {61636,59419,3},{61638,59398,3},{61634,59381,3},{61636,59371,3},{61639,59363,3}, {61638,59354,3},{61641,59334,3},{61644,59328,3},{61651,59324,3},{61654,59319,3}, {61656,59298,3},{61654,59296,3},{61653,59298,3},{61646,59299,3},{61648,59301,3}, {61644,59303,3},{61641,59303,3},{61639,59304,3},{61641,59308,3},{61639,59309,3}, {61638,59308,3},{61636,59308,3},{61634,59303,3},{61631,59304,3},{61626,59301,3}, {61624,59303,3},{61619,59301,3},{61616,59303,3},{61609,59309,3},{61611,59306,3}, {61609,59303,3},{61608,59319,3},{61604,59328,3},{61598,59334,3},{61594,59329,3}, {61601,59321,3},{61604,59318,3},{61604,59308,3},{61601,59309,3},{61601,59313,3}, {61593,59321,3},{61589,59331,3},{61574,59328,3},{61553,59324,3},{61549,59318,3}, {61551,59309,3},{61554,59306,3},{61551,59308,3},{61549,59304,3},{61546,59306,3}, {61531,59299,3},{61524,59303,3},{61518,59301,3},{61514,59299,3},{61513,59293,3}, {61506,59288,3},{61489,59294,3},{61486,59303,3},{61481,59306,3},{61479,59309,3}, {61473,59311,3},{61473,59306,3},{61476,59303,3},{61476,59301,3},{61473,59303,3}, {61471,59304,3},{61469,59303,3},{61468,59303,3},{61471,59311,3},{61473,59318,3}, {61469,59313,3},{61463,59311,3},{61454,59306,3},{61449,59304,3},{61446,59296,3}, {61439,59279,3},{61436,59274,3},{61433,59264,3},{61431,59264,3},{61431,59256,3}, {61428,59251,3},{61421,59233,3},{61419,59213,3},{61421,59204,3},{61419,59196,3}, {61419,59156,3},{61423,59149,3},{61429,59139,3},{61431,59131,3},{61436,59131,3}, {61434,59121,3},{61444,59094,3},{61453,59068,3},{61453,59058,3},{61453,59048,3}, {61454,59044,3},{61456,59046,3},{61456,59051,3},{61454,59053,3},{61456,59061,3}, {61458,59063,3},{61459,59056,3},{61463,59058,3},{61464,59043,3},{61463,59038,3}, {61463,59043,3},{61461,59043,3},{61459,59046,3},{61458,59034,3},{61451,59023,3}, {61436,59018,3},{61418,59021,3},{61393,59029,3},{61384,59038,3},{61368,59033,3}, {61358,59038,3},{61339,59028,3},{61326,59034,3},{61316,59049,3},{61316,59056,3}, {61313,59063,3},{61313,59069,3},{61311,59076,3},{61311,59083,3},{61309,59089,3}, {61304,59083,3},{61293,59076,3},{61293,59078,3},{61293,59088,3},{61291,59091,3}, {61293,59099,3},{61294,59106,3},{61293,59111,3},{61293,59124,3},{61299,59131,3}, {61301,59129,3},{61304,59133,3},{61308,59129,3},{61309,59124,3},{61309,59106,3}, {61313,59103,3},{61314,59116,3},{61321,59138,3},{61326,59149,3},{61328,59161,3}, {61304,59178,3},{61274,59178,3},{61264,59173,3},{61259,59173,3},{61254,59166,3}, {61249,59143,3},{61249,59134,3},{61248,59128,3},{61249,59123,3},{61254,59116,3}, {61258,59111,3},{61269,59114,3},{61273,59116,3},{61274,59113,3},{61276,59111,3}, {61276,59106,3},{61281,59103,3},{61286,59091,3},{61284,59074,3},{61281,59063,3}, {61273,59054,3},{61271,59044,3},{61269,59039,3},{61264,59038,3},{61261,59034,3}, {61256,59036,3},{61253,59056,3},{61243,59076,3},{61243,59086,3},{61239,59089,3}, {61238,59094,3},{61241,59104,3},{61236,59106,3},{61228,59088,3},{61221,59058,3}, {61213,59044,3},{61204,59033,3},{61196,59031,3},{61191,59023,3},{61183,59016,3}, {61178,59009,3},{61171,59004,3},{61161,59003,3},{61159,59004,3},{61154,59004,3}, {61146,59009,3},{61141,59009,3},{61139,59011,3},{61141,59014,3},{61136,59013,3}, {61134,59014,3},{61129,59013,3},{61126,59014,3},{61123,59006,3},{61118,59004,3}, {61114,59006,3},{61111,59009,3},{61108,59009,3},{61104,59011,3},{61104,59013,3}, {61103,59013,3},{61093,59003,3},{61089,59003,3},{61089,59008,3},{61088,59008,3}, {61086,59006,3},{61088,58999,3},{61084,58998,3},{61081,58999,3},{61081,58998,3}, {61083,58991,3},{61079,58989,3},{61078,58984,3},{61073,58974,3},{61066,58968,3}, {61061,58966,3},{61058,58964,3},{61053,58964,3},{61046,58983,3},{61044,58981,3}, {61044,58978,3},{61039,58976,3},{61038,58978,3},{61038,58974,3},{61034,58976,3}, {61033,58971,3},{61034,58968,3},{61031,58968,3},{61034,58961,3},{61034,58954,3}, {61038,58951,3},{61036,58948,3},{61034,58949,3},{61034,58941,3},{61039,58934,3}, {61039,58916,3},{61033,58908,3},{61033,58901,3},{61028,58883,3},{61024,58883,3}, {61021,58889,3},{61023,58878,3},{61018,58884,3},{61016,58883,3},{61016,58868,3}, {61014,58851,3},{61011,58841,3},{61008,58836,3},{60988,58819,3},{60983,58818,3}, {60974,58804,3},{60963,58803,3},{60963,58801,3},{60958,58803,3},{60954,58794,3}, {60943,58783,3},{60941,58783,3},{60936,58778,3},{60928,58774,3},{60919,58774,3}, {60903,58779,3},{60893,58783,3},{60874,58801,3},{60871,58811,3},{60866,58814,3}, {60863,58824,3},{60854,58831,3},{60853,58836,3},{60843,58849,3},{60838,58854,3}, {60833,58864,3},{60831,58886,3},{60829,58899,3},{60828,58903,3},{60826,58914,3}, {60828,58919,3},{60826,58926,3},{60829,58936,3},{60826,58946,3},{60821,58951,3}, {60816,58959,3},{60808,58959,3},{60803,58963,3},{60798,58963,3},{60781,58961,3}, {60759,58948,3},{60759,58946,3},{60759,58934,3},{60754,58924,3},{60753,58918,3}, {60749,58908,3},{60749,58903,3},{60749,58898,3},{60748,58904,3},{60756,58933,3}, {60758,58939,3},{60756,58944,3},{60754,58948,3},{60746,58949,3},{60743,58958,3}, {60741,58956,3},{60739,58958,3},{60739,58953,3},{60741,58944,3},{60739,58939,3}, {60734,58943,3},{60731,58941,3},{60726,58946,3},{60726,58929,3},{60721,58924,3}, {60718,58923,3},{60711,58908,3},{60708,58903,3},{60701,58903,3},{60701,58891,3}, {60696,58889,3},{60696,58881,3},{60691,58869,3},{60679,58853,3},{60678,58843,3}, {60673,58828,3},{60668,58823,3},{60654,58813,3},{60651,58804,3},{60648,58796,3}, {60643,58793,3},{60631,58778,3},{60624,58773,3},{60618,58774,3},{60608,58763,3}, {60604,58766,3},{60604,58758,3},{60599,58756,3},{60598,58753,3},{60596,58754,3}, {60598,58764,3},{60609,58771,3},{60611,58773,3},{60609,58776,3},{60578,58764,3}, {60554,58761,3},{60544,58756,3},{60529,58729,3},{60524,58716,3},{60524,58703,3}, {60529,58694,3},{60539,58684,3},{60544,58683,3},{60554,58673,3},{60559,58671,3}, {60563,58663,3},{60559,58671,3},{60554,58671,3},{60546,58678,3},{60541,58676,3}, {60539,58669,3},{60539,58651,3},{60538,58639,3},{60534,58634,3},{60536,58644,3}, {60538,58651,3},{60536,58669,3},{60538,58678,3},{60536,58681,3},{60529,58684,3}, {60523,58699,3},{60521,58699,3},{60516,58694,3},{60506,58654,3},{60498,58643,3}, {60484,58629,3},{60478,58626,3},{60461,58621,3},{60448,58623,3},{60428,58594,3}, {60436,58606,3},{60439,58618,3},{60431,58621,3},{60419,58623,3},{60386,58639,3}, {60379,58639,3},{60379,58631,3},{60374,58623,3},{60381,58608,3},{60381,58599,3}, {60378,58588,3},{60373,58574,3},{60376,58584,3},{60376,58598,3},{60376,58611,3}, {60371,58619,3},{60368,58614,3},{60373,58631,3},{60374,58638,3},{60363,58648,3}, {60348,58656,3},{60334,58668,3},{60319,58684,3},{60308,58696,3},{60303,58698,3}, {60298,58693,3},{60048,58673,131},{60051,58673,3},{60058,58673,3},{60063,58673,3}, {60068,58673,3},{60074,58673,3},{60079,58673,3},{60084,58673,3},{60091,58673,3}, {60096,58673,3},{60101,58673,3},{60106,58673,3},{60113,58673,3},{60118,58673,3}, {60123,58673,3},{60129,58673,3},{60134,58673,3},{60139,58673,3},{60144,58673,3}, {60151,58673,3},{60156,58673,3},{60161,58673,3},{60168,58673,3},{60173,58673,3}, {60178,58673,3},{60184,58674,3},{60189,58673,3},{60194,58674,3},{60199,58674,3}, {60206,58674,3},{60211,58674,3},{60216,58674,3},{60223,58674,3},{60228,58674,3}, {60233,58674,3},{60239,58674,3},{60244,58674,3},{60249,58674,3},{60254,58674,3}, {60261,58674,3},{60266,58674,3},{60271,58674,3},{60253,58693,3},{60243,58706,3}, {60224,58714,3},{60224,58711,3},{60234,58708,3},{60236,58704,3},{60234,58696,3}, {60228,58689,3},{60224,58683,3},{60219,58679,3},{60213,58681,3},{60209,58686,3}, {60206,58694,3},{60206,58719,3},{60198,58726,3},{60184,58731,3},{60176,58738,3}, {60161,58763,3},{60158,58764,3},{60158,58769,3},{60153,58778,3},{60144,58779,3}, {60133,58799,3},{60121,58831,3},{60114,58844,3},{60113,58851,3},{60108,58863,3}, {60094,58881,3},{60089,58893,3},{60089,58898,3},{60083,58913,3},{60073,58948,3}, {60071,58953,3},{60071,58961,3},{60069,58966,3},{60073,59004,3},{60073,59014,3}, {60071,59023,3},{60068,59016,3},{60059,59014,3},{60056,59011,3},{60054,59013,3}, {60049,59004,3},{60046,59004,3},{60043,59001,3},{60043,58996,3},{60046,58996,3}, {60048,58989,3},{60043,58988,3},{60043,58974,3},{60039,58971,3},{60039,58966,3}, {60044,58964,3},{60046,58959,3},{60046,58939,3},{60044,58941,3},{60043,58939,3}, {60041,58934,3},{60038,58924,3},{60038,58899,3},{60033,58896,3},{60031,58891,3}, {60033,58871,3},{60041,58856,3},{60043,58844,3},{60046,58834,3},{60048,58791,3}, {60049,58783,3},{60048,58768,3},{60048,58751,3},{60054,58713,3},{60056,58706,3}, {60051,58704,3},{60051,58684,3},{60051,58679,3},{60048,58673,3},{60048,58669,3}, {60053,58661,3},{60058,58643,3},{60058,58639,3},{60056,58639,3},{60056,58646,3}, {60049,58654,3},{60046,58663,3},{60043,58656,3},{60041,58629,3},{60043,58618,3}, {60049,58588,3},{60054,58569,3},{60058,58569,3},{60059,58574,3},{60066,58573,3}, {60059,58569,3},{60066,58564,3},{60056,58564,3},{60056,58559,3},{60063,58561,3}, {60064,58558,3},{60054,58556,3},{60054,58544,3},{60061,58539,3},{60068,58539,3}, {60063,58536,3},{60054,58539,3},{60053,58538,3},{60051,58528,3},{60053,58526,3}, {60058,58526,3},{60054,58524,3},{60058,58521,3},{60053,58523,3},{60051,58518,3}, {60051,58508,3},{60053,58504,3},{60058,58504,3},{60061,58511,3},{60068,58513,3}, {60061,58503,3},{60053,58499,3},{60059,58476,3},{60056,58474,3},{60054,58464,3}, {60053,58463,3},{60053,58459,3},{60054,58453,3},{60058,58454,3},{60061,58471,3}, {60066,58483,3},{60071,58489,3},{60073,58489,3},{60073,58481,3},{60069,58473,3}, {60068,58478,3},{60066,58476,3},{60063,58464,3},{60064,58461,3},{60061,58454,3}, {60061,58444,3},{60064,58444,3},{60068,58459,3},{60069,58443,3},{60068,58441,3}, {60064,58443,3},{60058,58433,3},{60059,58431,3},{60066,58436,3},{60069,58436,3}, {60074,58441,3},{60074,58436,3},{60076,58431,3},{60076,58429,3},{60074,58431,3}, {60071,58433,3},{60069,58428,3},{60073,58426,3},{60068,58423,3},{60066,58418,3}, {60068,58414,3},{60069,58406,3},{60071,58406,3},{60073,58416,3},{60074,58411,3}, {60079,58409,3},{60083,58413,3},{60079,58406,3},{60084,58403,3},{60083,58399,3}, {60079,58403,3},{60081,58396,3},{60078,58396,3},{60074,58403,3},{60076,58398,3}, {60074,58396,3},{60071,58394,3},{60073,58391,3},{60071,58391,3},{60071,58388,3}, {60068,58388,3},{60069,58384,3},{60076,58388,3},{60076,58384,3},{60071,58381,3}, {60071,58378,3},{60078,58379,3},{60078,58376,3},{60069,58371,3},{60073,58368,3}, {60076,58371,3},{60076,58361,3},{60074,58361,3},{60073,58354,3},{60071,58356,3}, {60071,58349,3},{60071,58346,3},{60071,58341,3},{60074,58339,3},{60076,58346,3}, {60078,58348,3},{60078,58343,3},{60078,58341,3},{60081,58343,3},{60079,58336,3}, {60083,58338,3},{60084,58334,3},{60084,58343,3},{60088,58336,3},{60091,58336,3}, {60089,58344,3},{60088,58344,3},{60086,58349,3},{60081,58353,3},{60078,58369,3}, {60084,58361,3},{60081,58373,3},{60081,58378,3},{60084,58371,3},{60086,58368,3}, {60088,58368,3},{60089,58364,3},{60088,58359,3},{60089,58353,3},{60091,58351,3}, {60091,58353,3},{60094,58351,3},{60094,58356,3},{60096,58356,3},{60096,58359,3}, {60096,58364,3},{60093,58363,3},{60086,58374,3},{60086,58386,3},{60088,58386,3}, {60089,58376,3},{60094,58374,3},{60094,58378,3},{60091,58384,3},{60094,58383,3}, {60094,58386,3},{60093,58391,3},{60093,58396,3},{60089,58398,3},{60093,58403,3}, {60094,58403,3},{60094,58398,3},{60096,58393,3},{60099,58401,3},{60093,58419,3}, {60086,58423,3},{60086,58428,3},{60093,58423,3},{60091,58434,3},{60089,58439,3}, {60093,58439,3},{60094,58443,3},{60101,58441,3},{60104,58454,3},{60103,58459,3}, {60101,58463,3},{60101,58468,3},{60103,58469,3},{60101,58474,3},{60093,58464,3}, {60088,58464,3},{60079,58458,3},{60076,58459,3},{60081,58463,3},{60076,58468,3}, {60076,58473,3},{60084,58466,3},{60091,58469,3},{60098,58478,3},{60088,58491,3}, {60084,58501,3},{60079,58508,3},{60081,58513,3},{60083,58508,3},{60086,58506,3}, {60081,58523,3},{60086,58513,3},{60094,58491,3},{60098,58489,3},{60099,58484,3}, {60103,58486,3},{60108,58479,3},{60109,58466,3},{60109,58454,3},{60111,58449,3}, {60118,58446,3},{60116,58454,3},{60121,58446,3},{60124,58443,3},{60111,58476,3}, {60103,58503,3},{60101,58508,3},{60099,58513,3},{60096,58514,3},{60093,58521,3}, {60098,58521,3},{60098,58528,3},{60099,58529,3},{60101,58519,3},{60104,58516,3}, {60106,58523,3},{60108,58523,3},{60111,58531,3},{60106,58539,3},{60103,58538,3}, {60099,58541,3},{60098,58539,3},{60098,58544,3},{60094,58546,3},{60093,58549,3}, {60086,58548,3},{60089,58554,3},{60086,58558,3},{60083,58556,3},{60081,58559,3}, {60088,58563,3},{60094,58554,3},{60098,58556,3},{60099,58551,3},{60103,58551,3}, {60104,58548,3},{60108,58549,3},{60108,58556,3},{60104,58568,3},{60091,58581,3}, {60093,58584,3},{60099,58579,3},{60103,58581,3},{60099,58591,3},{60091,58613,3}, {60089,58613,3},{60083,58606,3},{60081,58599,3},{60074,58594,3},{60068,58598,3}, {60074,58598,3},{60076,58604,3},{60081,58608,3},{60083,58613,3},{60081,58616,3}, {60078,58618,3},{60081,58621,3},{60086,58618,3},{60091,58621,3},{60091,58629,3}, {60088,58634,3},{60089,58636,3},{60093,58638,3},{60094,58636,3},{60098,58628,3}, {60098,58618,3},{60106,58603,3},{60109,58584,3},{60114,58578,3},{60119,58548,3}, {60123,58543,3},{60128,58529,3},{60138,58526,3},{60143,58521,3},{60148,58521,3}, {60153,58518,3},{60158,58518,3},{60161,58519,3},{60164,58533,3},{60171,58544,3}, {60171,58559,3},{60186,58601,3},{60189,58603,3},{60199,58601,3},{60203,58598,3}, {60204,58579,3},{60199,58543,3},{60196,58534,3},{60193,58531,3},{60191,58523,3}, {60189,58514,3},{60193,58506,3},{60196,58503,3},{60199,58493,3},{60201,58491,3}, {60213,58488,3},{60221,58491,3},{60234,58491,3},{60241,58501,3},{60236,58501,3}, {60231,58503,3},{60234,58518,3},{60238,58523,3},{60246,58526,3},{60248,58526,3}, {60249,58514,3},{60246,58506,3},{60253,58509,3},{60256,58509,3},{60258,58504,3}, {60259,58494,3},{60263,58499,3},{60264,58519,3},{60263,58524,3},{60259,58528,3}, {60253,58536,3},{60253,58539,3},{60254,58544,3},{60258,58551,3},{60259,58559,3}, {60263,58564,3},{60273,58574,3},{60283,58574,3},{60286,58579,3},{60286,58584,3}, {60291,58594,3},{60271,58613,3},{60268,58621,3},{60268,58628,3},{60271,58633,3}, {60271,58641,3},{60278,58654,3},{60281,58658,3},{60271,58674,3},{60266,58674,3}, {60261,58674,3},{60254,58674,3},{60249,58674,3},{60244,58674,3},{60239,58674,3}, {60233,58674,3},{60228,58674,3},{60223,58674,3},{60216,58674,3},{60211,58674,3}, {60206,58674,3},{60199,58674,3},{60194,58674,3},{60189,58673,3},{60184,58674,3}, {60178,58673,3},{60173,58673,3},{60168,58673,3},{60161,58673,3},{60156,58673,3}, {60151,58673,3},{60144,58673,3},{60139,58673,3},{60134,58673,3},{60129,58673,3}, {60123,58673,3},{60118,58673,3},{60113,58673,3},{60106,58673,3},{60101,58673,3}, {60096,58673,3},{60091,58673,3},{60084,58673,3},{60079,58673,3},{60074,58673,3}, {60068,58673,3},{60063,58673,3},{60058,58673,3},{60051,58673,3},{60048,58673,3}, {60298,58693,131},{60298,58691,3},{60303,58689,3},{60303,58686,3},{60303,58678,3}, {60306,58661,3},{60306,58654,3},{60308,58643,3},{60311,58633,3},{60314,58624,3}, {60316,58614,3},{60316,58609,3},{60311,58593,3},{60308,58588,3},{60298,58586,3}, {60294,58581,3},{60291,58581,3},{60283,58569,3},{60284,58558,3},{60288,58554,3}, {60288,58551,3},{60283,58541,3},{60278,58519,3},{60271,58514,3},{60273,58503,3}, {60266,58484,3},{60266,58481,3},{60271,58486,3},{60271,58483,3},{60269,58478,3}, {60266,58478,3},{60268,58474,3},{60264,58468,3},{60264,58464,3},{60266,58464,3}, {60264,58459,3},{60263,58456,3},{60264,58451,3},{60263,58451,3},{60261,58456,3}, {60258,58456,3},{60258,58463,3},{60254,58454,3},{60249,58453,3},{60246,58448,3}, {60244,58454,3},{60239,58456,3},{60223,58448,3},{60216,58441,3},{60206,58441,3}, {60199,58438,3},{60193,58438,3},{60176,58443,3},{60171,58441,3},{60168,58438,3}, {60159,58438,3},{60153,58431,3},{60148,58408,3},{60153,58391,3},{60156,58366,3}, {60163,58349,3},{60168,58349,3},{60163,58343,3},{60168,58338,3},{60169,58334,3}, {60164,58333,3},{60168,58324,3},{60174,58316,3},{60178,58308,3},{60183,58306,3}, {60183,58301,3},{60196,58291,3},{60199,58296,3},{60204,58294,3},{60211,58306,3}, {60211,58309,3},{60209,58319,3},{60211,58324,3},{60203,58328,3},{60198,58328,3}, {60196,58324,3},{60198,58323,3},{60194,58321,3},{60193,58313,3},{60191,58318,3}, {60194,58328,3},{60196,58331,3},{60198,58336,3},{60208,58334,3},{60213,58336,3}, {60214,58338,3},{60213,58344,3},{60214,58351,3},{60211,58353,3},{60191,58358,3}, {60188,58351,3},{60183,58336,3},{60179,58336,3},{60179,58338,3},{60181,58343,3}, {60184,58356,3},{60191,58361,3},{60203,58359,3},{60214,58361,3},{60216,58374,3}, {60219,58376,3},{60221,58383,3},{60223,58388,3},{60223,58398,3},{60226,58403,3}, {60233,58409,3},{60239,58413,3},{60248,58423,3},{60251,58424,3},{60256,58418,3}, {60258,58401,3},{60263,58396,3},{60258,58396,3},{60254,58393,3},{60253,58388,3}, {60241,58354,3},{60238,58351,3},{60236,58346,3},{60229,58339,3},{60224,58334,3}, {60223,58328,3},{60224,58323,3},{60229,58318,3},{60231,58314,3},{60233,58306,3}, {60229,58309,3},{60231,58298,3},{60229,58281,3},{60228,58281,3},{60228,58288,3}, {60228,58294,3},{60229,58299,3},{60221,58304,3},{60221,58314,3},{60218,58318,3}, {60214,58313,3},{60218,58306,3},{60218,58299,3},{60216,58304,3},{60214,58304,3}, {60213,58301,3},{60218,58288,3},{60214,58293,3},{60213,58293,3},{60216,58283,3}, {60214,58283,3},{60211,58293,3},{60209,58294,3},{60208,58291,3},{60209,58283,3}, {60203,58286,3},{60199,58286,3},{60199,58281,3},{60199,58276,3},{60204,58271,3}, {60199,58273,3},{60196,58278,3},{60194,58281,3},{60194,58283,3},{60194,58288,3}, {60183,58299,3},{60181,58283,3},{60183,58283,3},{60186,58273,3},{60189,58271,3}, {60191,58263,3},{60196,58261,3},{60196,58259,3},{60191,58258,3},{60198,58256,3}, {60198,58249,3},{60199,58248,3},{60199,58243,3},{60208,58229,3},{60209,58223,3}, {60213,58214,3},{60216,58213,3},{60219,58206,3},{60221,58206,3},{60216,58223,3}, {60219,58226,3},{60219,58241,3},{60216,58244,3},{60216,58249,3},{60213,58261,3}, {60208,58259,3},{60206,58266,3},{60209,58264,3},{60211,58268,3},{60218,58256,3}, {60218,58263,3},{60221,58259,3},{60221,58271,3},{60223,58266,3},{60226,58264,3}, {60223,58263,3},{60224,58258,3},{60221,58251,3},{60226,58243,3},{60234,58249,3}, {60233,58244,3},{60238,58244,3},{60244,58241,3},{60248,58244,3},{60251,58238,3}, {60261,58263,3},{60266,58266,3},{60259,58276,3},{60256,58273,3},{60253,58264,3}, {60249,58264,3},{60256,58279,3},{60253,58276,3},{60256,58288,3},{60251,58291,3}, {60249,58293,3},{60254,58294,3},{60258,58298,3},{60261,58306,3},{60266,58311,3}, {60268,58318,3},{60273,58319,3},{60271,58329,3},{60269,58333,3},{60269,58334,3}, {60273,58336,3},{60273,58339,3},{60268,58346,3},{60268,58358,3},{60268,58371,3}, {60273,58381,3},{60273,58389,3},{60279,58383,3},{60279,58373,3},{60283,58344,3}, {60281,58336,3},{60284,58324,3},{60283,58303,3},{60278,58299,3},{60274,58293,3}, {60274,58296,3},{60271,58294,3},{60278,58281,3},{60283,58288,3},{60283,58296,3}, {60286,58298,3},{60284,58284,3},{60279,58279,3},{60281,58273,3},{60283,58273,3}, {60284,58268,3},{60281,58258,3},{60284,58254,3},{60286,58251,3},{60273,58246,3}, {60266,58238,3},{60264,58238,3},{60264,58239,3},{60274,58249,3},{60278,58254,3}, {60274,58256,3},{60273,58266,3},{60271,58269,3},{60261,58259,3},{60259,58253,3}, {60256,58248,3},{60256,58241,3},{60253,58239,3},{60253,58234,3},{60246,58241,3}, {60243,58239,3},{60236,58241,3},{60229,58238,3},{60231,58234,3},{60229,58233,3}, {60226,58223,3},{60229,58218,3},{60233,58221,3},{60234,58216,3},{60229,58214,3}, {60226,58218,3},{60226,58216,3},{60228,58211,3},{60228,58204,3},{60231,58199,3}, {60234,58198,3},{60236,58191,3},{60238,58196,3},{60236,58201,3},{60239,58199,3}, {60239,58203,3},{60243,58204,3},{60239,58213,3},{60243,58211,3},{60243,58213,3}, {60244,58213,3},{60246,58218,3},{60248,58214,3},{60244,58208,3},{60249,58206,3}, {60248,58201,3},{60251,58198,3},{60253,58188,3},{60254,58181,3},{60256,58179,3}, {60258,58189,3},{60254,58189,3},{60258,58194,3},{60258,58198,3},{60254,58198,3}, {60256,58201,3},{60258,58213,3},{60259,58211,3},{60259,58206,3},{60264,58206,3}, {60264,58209,3},{60264,58211,3},{60271,58214,3},{60271,58221,3},{60279,58223,3}, {60279,58236,3},{60283,58224,3},{60284,58226,3},{60286,58231,3},{60284,58243,3}, {60283,58246,3},{60284,58248,3},{60286,58244,3},{60288,58229,3},{60286,58223,3}, {60293,58216,3},{60289,58216,3},{60288,58213,3},{60286,58218,3},{60279,58219,3}, {60273,58213,3},{60269,58209,3},{60269,58204,3},{60271,58203,3},{60278,58206,3}, {60276,58201,3},{60281,58196,3},{60273,58196,3},{60273,58191,3},{60269,58189,3}, {60271,58186,3},{60268,58186,3},{60268,58181,3},{60263,58176,3},{60263,58174,3}, {60261,58174,3},{60263,58171,3},{60263,58168,3},{60268,58169,3},{60269,58176,3}, {60273,58179,3},{60271,58169,3},{60276,58168,3},{60278,58173,3},{60279,58173,3}, {60279,58174,3},{60281,58178,3},{60279,58181,3},{60283,58181,3},{60284,58174,3}, {60286,58179,3},{60288,58179,3},{60288,58186,3},{60289,58183,3},{60294,58184,3}, {60294,58183,3},{60291,58178,3},{60294,58169,3},{60298,58171,3},{60299,58173,3}, {60298,58176,3},{60303,58179,3},{60308,58174,3},{60314,58179,3},{60316,58178,3}, {60316,58173,3},{60319,58173,3},{60326,58164,3},{60333,58163,3},{60333,58168,3}, {60326,58173,3},{60321,58174,3},{60321,58179,3},{60316,58183,3},{60319,58189,3}, {60321,58184,3},{60323,58186,3},{60314,58204,3},{60316,58213,3},{60324,58214,3}, {60324,58219,3},{60323,58223,3},{60328,58226,3},{60329,58238,3},{60321,58238,3}, {60321,58233,3},{60313,58228,3},{60313,58229,3},{60316,58233,3},{60318,58238,3}, {60314,58244,3},{60311,58244,3},{60309,58249,3},{60313,58253,3},{60323,58256,3}, {60328,58261,3},{60329,58261,3},{60331,58259,3},{60328,58254,3},{60316,58248,3}, {60318,58243,3},{60329,58241,3},{60331,58243,3},{60329,58246,3},{60339,58249,3}, {60341,58258,3},{60338,58266,3},{60329,58264,3},{60324,58271,3},{60326,58276,3}, {60314,58283,3},{60308,58279,3},{60304,58279,3},{60301,58276,3},{60301,58273,3}, {60303,58268,3},{60298,58263,3},{60299,58258,3},{60296,58258,3},{60298,58254,3}, {60294,58254,3},{60291,58243,3},{60289,58246,3},{60296,58264,3},{60293,58276,3}, {60289,58281,3},{60291,58286,3},{60293,58286,3},{60294,58276,3},{60296,58273,3}, {60304,58286,3},{60316,58289,3},{60331,58271,3},{60339,58269,3},{60341,58273,3}, {60338,58276,3},{60341,58278,3},{60341,58284,3},{60343,58289,3},{60344,58291,3}, {60351,58284,3},{60358,58289,3},{60363,58286,3},{60369,58274,3},{60374,58269,3}, {60378,58263,3},{60379,58253,3},{60381,58244,3},{60386,58241,3},{60388,58231,3}, {60391,58228,3},{60394,58228,3},{60391,58223,3},{60389,58211,3},{60388,58209,3}, {60386,58209,3},{60384,58214,3},{60388,58221,3},{60384,58231,3},{60383,58233,3}, {60376,58224,3},{60376,58228,3},{60383,58238,3},{60376,58249,3},{60376,58256,3}, {60374,58261,3},{60366,58264,3},{60363,58281,3},{60358,58279,3},{60353,58273,3}, {60353,58264,3},{60354,58263,3},{60354,58258,3},{60359,58253,3},{60358,58248,3}, {60361,58244,3},{60359,58239,3},{60359,58238,3},{60363,58238,3},{60366,58231,3}, {60366,58219,3},{60368,58218,3},{60373,58218,3},{60373,58213,3},{60374,58213,3}, {60374,58208,3},{60374,58206,3},{60371,58213,3},{60364,58214,3},{60363,58223,3}, {60364,58228,3},{60358,58236,3},{60358,58234,3},{60361,58231,3},{60361,58224,3}, {60359,58223,3},{60359,58229,3},{60353,58231,3},{60351,58228,3},{60349,58216,3}, {60346,58218,3},{60349,58229,3},{60354,58239,3},{60349,58244,3},{60343,58223,3}, {60339,58221,3},{60328,58219,3},{60328,58213,3},{60333,58209,3},{60338,58209,3}, {60346,58206,3},{60364,58204,3},{60371,58198,3},{60361,58203,3},{60331,58206,3}, {60323,58208,3},{60319,58208,3},{60319,58204,3},{60323,58198,3},{60326,58194,3}, {60331,58181,3},{60334,58178,3},{60339,58179,3},{60341,58174,3},{60343,58178,3}, {60353,58171,3},{60354,58173,3},{60354,58176,3},{60351,58178,3},{60346,58183,3}, {60341,58186,3},{60339,58189,3},{60334,58193,3},{60334,58196,3},{60344,58188,3}, {60346,58191,3},{60348,58186,3},{60351,58188,3},{60353,58183,3},{60356,58184,3}, {60358,58179,3},{60361,58176,3},{60363,58184,3},{60368,58189,3},{60364,58181,3}, {60368,58181,3},{60364,58176,3},{60368,58171,3},{60358,58166,3},{60364,58159,3}, {60366,58156,3},{60368,58154,3},{60373,58164,3},{60371,58159,3},{60374,58146,3}, {60378,58146,3},{60383,58154,3},{60383,58148,3},{60384,58144,3},{60388,58146,3}, {60396,58143,3},{60399,58146,3},{60396,58151,3},{60396,58154,3},{60391,58159,3}, {60389,58164,3},{60374,58173,3},{60373,58174,3},{60374,58176,3},{60383,58173,3}, {60384,58176,3},{60384,58171,3},{60388,58169,3},{60389,58171,3},{60391,58176,3}, {60393,58178,3},{60391,58171,3},{60394,58168,3},{60403,58163,3},{60408,58164,3}, {60413,58158,3},{60414,58158,3},{60416,58163,3},{60409,58168,3},{60414,58166,3}, {60418,58169,3},{60416,58166,3},{60418,58164,3},{60423,58166,3},{60421,58163,3}, {60424,58159,3},{60419,58161,3},{60411,58146,3},{60418,58138,3},{60426,58134,3}, {60416,58134,3},{60416,58128,3},{60418,58123,3},{60426,58124,3},{60429,58121,3}, {60436,58128,3},{60441,58129,3},{60439,58124,3},{60431,58118,3},{60431,58116,3}, {60433,58113,3},{60441,58114,3},{60443,58111,3},{60446,58114,3},{60449,58121,3}, {60446,58141,3},{60449,58144,3},{60444,58151,3},{60443,58151,3},{60439,58156,3}, {60444,58158,3},{60449,58153,3},{60453,58148,3},{60456,58154,3},{60454,58158,3}, {60453,58163,3},{60456,58158,3},{60463,58159,3},{60468,58158,3},{60469,58161,3}, {60471,58173,3},{60469,58178,3},{60466,58179,3},{60464,58183,3},{60469,58183,3}, {60469,58189,3},{60471,58183,3},{60473,58179,3},{60474,58171,3},{60479,58164,3}, {60483,58164,3},{60488,58176,3},{60496,58179,3},{60496,58178,3},{60488,58171,3}, {60486,58163,3},{60483,58159,3},{60471,58156,3},{60468,58153,3},{60459,58154,3}, {60456,58146,3},{60453,58143,3},{60453,58131,3},{60459,58124,3},{60461,58126,3}, {60463,58129,3},{60464,58129,3},{60468,58124,3},{60464,58124,3},{60463,58121,3}, {60474,58113,3},{60481,58116,3},{60483,58111,3},{60488,58106,3},{60489,58114,3}, {60481,58121,3},{60478,58123,3},{60478,58126,3},{60483,58121,3},{60484,58123,3}, {60486,58119,3},{60488,58123,3},{60483,58133,3},{60481,58148,3},{60483,58148,3}, {60486,58136,3},{60491,58134,3},{60488,58129,3},{60493,58124,3},{60498,58129,3}, {60499,58134,3},{60499,58128,3},{60496,58126,3},{60496,58114,3},{60493,58113,3}, {60493,58108,3},{60496,58104,3},{60504,58109,3},{60509,58108,3},{60509,58104,3}, {60499,58101,3},{60499,58096,3},{60501,58089,3},{60503,58091,3},{60504,58086,3}, {60506,58083,3},{60511,58088,3},{60509,58081,3},{60514,58084,3},{60511,58076,3}, {60513,58074,3},{60516,58076,3},{60514,58069,3},{60516,58066,3},{60519,58068,3}, {60526,58078,3},{60526,58083,3},{60521,58084,3},{60524,58086,3},{60528,58086,3}, {60528,58089,3},{60526,58091,3},{60528,58101,3},{60523,58106,3},{60519,58103,3}, {60519,58109,3},{60516,58113,3},{60514,58116,3},{60511,58116,3},{60509,58118,3}, {60513,58121,3},{60513,58126,3},{60508,58139,3},{60506,58149,3},{60508,58149,3}, {60513,58134,3},{60514,58133,3},{60514,58136,3},{60516,58136,3},{60514,58131,3}, {60516,58126,3},{60514,58121,3},{60516,58118,3},{60519,58114,3},{60524,58114,3}, {60528,58111,3},{60528,58108,3},{60538,58099,3},{60543,58101,3},{60543,58103,3}, {60541,58106,3},{60543,58109,3},{60539,58118,3},{60534,58121,3},{60536,58126,3}, {60533,58129,3},{60533,58143,3},{60529,58146,3},{60528,58148,3},{60534,58146,3}, {60534,58138,3},{60536,58136,3},{60543,58139,3},{60544,58148,3},{60544,58144,3}, {60549,58146,3},{60546,58143,3},{60544,58138,3},{60541,58136,3},{60539,58129,3}, {60541,58124,3},{60544,58123,3},{60546,58118,3},{60546,58109,3},{60548,58106,3}, {60556,58101,3},{60556,58108,3},{60559,58111,3},{60561,58116,3},{60561,58129,3}, {60564,58129,3},{60561,58106,3},{60571,58103,3},{60574,58104,3},{60579,58111,3}, {60579,58119,3},{60583,58128,3},{60579,58134,3},{60574,58133,3},{60579,58136,3}, {60581,58141,3},{60569,58148,3},{60568,58154,3},{60563,58161,3},{60558,58164,3}, {60563,58168,3},{60566,58161,3},{60569,58159,3},{60571,58151,3},{60584,58148,3}, {60584,58136,3},{60588,58124,3},{60594,58124,3},{60601,58126,3},{60608,58128,3}, {60609,58131,3},{60608,58136,3},{60603,58139,3},{60601,58146,3},{60601,58151,3}, {60604,58143,3},{60609,58136,3},{60613,58136,3},{60619,58139,3},{60628,58133,3}, {60629,58136,3},{60633,58141,3},{60634,58144,3},{60631,58153,3},{60633,58153,3}, {60636,58144,3},{60634,58131,3},{60633,58129,3},{60628,58131,3},{60624,58131,3}, {60621,58133,3},{60614,58128,3},{60613,58124,3},{60614,58121,3},{60614,58118,3}, {60609,58121,3},{60598,58119,3},{60594,58118,3},{60586,58118,3},{60583,58113,3}, {60584,58109,3},{60594,58101,3},{60594,58096,3},{60598,58094,3},{60604,58098,3}, {60616,58094,3},{60618,58099,3},{60623,58094,3},{60628,58096,3},{60628,58091,3}, {60633,58089,3},{60638,58096,3},{60643,58094,3},{60643,58099,3},{60646,58093,3}, {60648,58093,3},{60649,58094,3},{60651,58091,3},{60656,58093,3},{60659,58096,3}, {60663,58098,3},{60663,58099,3},{60659,58103,3},{60661,58103,3},{60661,58106,3}, {60664,58114,3},{60663,58131,3},{60664,58128,3},{60666,58118,3},{60663,58104,3}, {60666,58103,3},{60668,58108,3},{60669,58104,3},{60668,58103,3},{60668,58099,3}, {60673,58099,3},{60674,58096,3},{60681,58104,3},{60683,58109,3},{60684,58109,3}, {60688,58116,3},{60681,58131,3},{60676,58134,3},{60676,58138,3},{60679,58139,3}, {60683,58133,3},{60691,58133,3},{60694,58146,3},{60696,58146,3},{60694,58134,3}, {60696,58131,3},{60696,58124,3},{60699,58121,3},{60701,58113,3},{60703,58116,3}, {60704,58128,3},{60706,58119,3},{60703,58109,3},{60708,58109,3},{60713,58104,3}, {60714,58104,3},{60716,58094,3},{60723,58088,3},{60728,58084,3},{60731,58089,3}, {60733,58089,3},{60728,58081,3},{60728,58076,3},{60729,58071,3},{60734,58071,3}, {60736,58073,3},{60738,58079,3},{60741,58084,3},{60738,58089,3},{60738,58094,3}, {60731,58103,3},{60716,58109,3},{60718,58111,3},{60713,58114,3},{60714,58121,3}, {60714,58118,3},{60716,58116,3},{60719,58113,3},{60721,58114,3},{60724,58111,3}, {60733,58104,3},{60734,58103,3},{60736,58104,3},{60736,58129,3},{60733,58133,3}, {60733,58134,3},{60734,58134,3},{60731,58141,3},{60733,58148,3},{60731,58151,3}, {60726,58149,3},{60733,58159,3},{60731,58161,3},{60724,58156,3},{60728,58159,3}, {60724,58174,3},{60721,58178,3},{60714,58176,3},{60714,58178,3},{60711,58181,3}, {60716,58183,3},{60718,58186,3},{60718,58189,3},{60718,58194,3},{60714,58201,3}, {60718,58201,3},{60721,58208,3},{60728,58209,3},{60729,58208,3},{60723,58206,3}, {60719,58198,3},{60724,58188,3},{60731,58178,3},{60736,58178,3},{60738,58171,3}, {60739,58173,3},{60744,58171,3},{60746,58173,3},{60744,58179,3},{60741,58181,3}, {60738,58186,3},{60736,58193,3},{60738,58201,3},{60736,58214,3},{60739,58203,3}, {60739,58189,3},{60741,58184,3},{60743,58183,3},{60748,58186,3},{60749,58183,3}, {60748,58179,3},{60749,58174,3},{60756,58181,3},{60758,58166,3},{60764,58163,3}, {60773,58171,3},{60773,58166,3},{60778,58166,3},{60779,58169,3},{60781,58164,3}, {60783,58164,3},{60776,58159,3},{60774,58163,3},{60771,58163,3},{60764,58158,3}, {60758,58158,3},{60751,58143,3},{60753,58133,3},{60756,58133,3},{60759,58129,3}, {60756,58114,3},{60759,58106,3},{60758,58104,3},{60758,58099,3},{60759,58096,3}, {60759,58103,3},{60761,58103,3},{60761,58098,3},{60758,58083,3},{60759,58083,3}, {60759,58073,3},{60761,58064,3},{60764,58063,3},{60771,58068,3},{60771,58073,3}, {60769,58078,3},{60766,58078,3},{60769,58081,3},{60774,58073,3},{60779,58076,3}, {60781,58083,3},{60774,58086,3},{60781,58088,3},{60781,58089,3},{60779,58094,3}, {60778,58094,3},{60774,58096,3},{60776,58098,3},{60776,58099,3},{60771,58101,3}, {60769,58091,3},{60766,58088,3},{60769,58103,3},{60763,58106,3},{60761,58111,3}, {60761,58118,3},{60761,58119,3},{60761,58114,3},{60764,58108,3},{60768,58106,3}, {60769,58108,3},{60769,58119,3},{60769,58123,3},{60771,58111,3},{60773,58109,3}, {60774,58119,3},{60773,58126,3},{60774,58133,3},{60776,58123,3},{60783,58131,3}, {60776,58119,3},{60778,58113,3},{60776,58104,3},{60781,58101,3},{60783,58103,3}, {60781,58098,3},{60788,58091,3},{60789,58091,3},{60789,58096,3},{60791,58098,3}, {60791,58091,3},{60794,58089,3},{60791,58089,3},{60789,58086,3},{60793,58083,3}, {60799,58089,3},{60801,58094,3},{60804,58094,3},{60806,58099,3},{60811,58103,3}, {60814,58104,3},{60811,58108,3},{60814,58108,3},{60811,58113,3},{60814,58113,3}, {60814,58119,3},{60808,58119,3},{60801,58126,3},{60811,58123,3},{60816,58124,3}, {60818,58128,3},{60816,58131,3},{60818,58133,3},{60811,58138,3},{60811,58139,3}, {60819,58138,3},{60819,58131,3},{60833,58143,3},{60838,58134,3},{60839,58131,3}, {60838,58123,3},{60846,58114,3},{60848,58116,3},{60849,58121,3},{60853,58123,3}, {60849,58111,3},{60853,58111,3},{60854,58108,3},{60856,58109,3},{60858,58109,3}, {60859,58093,3},{60863,58078,3},{60858,58088,3},{60856,58084,3},{60856,58071,3}, {60853,58071,3},{60851,58069,3},{60853,58081,3},{60849,58086,3},{60849,58093,3}, {60846,58089,3},{60846,58079,3},{60848,58076,3},{60848,58068,3},{60851,58064,3}, {60856,58056,3},{60859,58054,3},{60859,58053,3},{60854,58051,3},{60858,58046,3}, {60861,58034,3},{60873,58028,3},{60876,58029,3},{60878,58034,3},{60881,58036,3}, {60884,58043,3},{60893,58043,3},{60886,58038,3},{60884,58031,3},{60879,58028,3}, {60873,58018,3},{60873,58016,3},{60876,58014,3},{60873,58011,3},{60873,58003,3}, {60869,58001,3},{60871,57996,3},{60873,57994,3},{60871,57991,3},{60866,57976,3}, {60863,57976,3},{60859,57971,3},{60858,57971,3},{60858,57973,3},{60861,57978,3}, {60866,57981,3},{60866,57993,3},{60863,57994,3},{60863,57991,3},{60861,57991,3}, {60858,57989,3},{60858,57993,3},{60858,57996,3},{60858,57998,3},{60853,57996,3}, {60849,57993,3},{60851,57999,3},{60849,58001,3},{60846,58001,3},{60841,57986,3}, {60843,57978,3},{60844,57978,3},{60849,57971,3},{60854,57969,3},{60858,57964,3}, {60873,57966,3},{60876,57971,3},{60879,57973,3},{60879,57979,3},{60881,57984,3}, {60883,57981,3},{60884,57983,3},{60884,57989,3},{60888,57993,3},{60888,57998,3}, {60893,57996,3},{60899,58009,3},{60899,58011,3},{60894,58014,3},{60906,58016,3}, {60901,58026,3},{60901,58033,3},{60903,58024,3},{60906,58021,3},{60908,58024,3}, {60909,58026,3},{60911,58024,3},{60914,58026,3},{60914,58033,3},{60908,58043,3}, {60913,58039,3},{60921,58046,3},{60921,58049,3},{60914,58058,3},{60918,58058,3}, {60918,58061,3},{60921,58054,3},{60924,58054,3},{60933,58059,3},{60933,58066,3}, {60934,58063,3},{60936,58064,3},{60944,58064,3},{60954,58069,3},{60953,58073,3}, {60951,58076,3},{60954,58079,3},{60951,58083,3},{60946,58081,3},{60946,58084,3}, {60943,58084,3},{60944,58089,3},{60943,58091,3},{60934,58088,3},{60933,58089,3}, {60943,58096,3},{60951,58089,3},{60951,58093,3},{60956,58091,3},{60954,58094,3}, {60956,58101,3},{60953,58104,3},{60954,58109,3},{60956,58119,3},{60951,58126,3}, {60948,58116,3},{60946,58124,3},{60943,58121,3},{60944,58129,3},{60941,58131,3}, {60938,58128,3},{60934,58119,3},{60934,58126,3},{60933,58128,3},{60926,58124,3}, {60923,58119,3},{60923,58123,3},{60926,58129,3},{60936,58129,3},{60938,58131,3}, {60931,58139,3},{60924,58136,3},{60918,58128,3},{60913,58116,3},{60911,58103,3}, {60914,58094,3},{60919,58088,3},{60918,58086,3},{60909,58103,3},{60911,58118,3}, {60916,58131,3},{60913,58129,3},{60911,58133,3},{60909,58133,3},{60904,58129,3}, {60908,58134,3},{60901,58151,3},{60904,58149,3},{60909,58141,3},{60914,58139,3}, {60914,58134,3},{60921,58139,3},{60923,58148,3},{60916,58151,3},{60913,58159,3}, {60906,58159,3},{60898,58154,3},{60881,58136,3},{60876,58144,3},{60876,58148,3}, {60878,58153,3},{60883,58156,3},{60886,58158,3},{60883,58163,3},{60889,58159,3}, {60894,58161,3},{60903,58174,3},{60906,58188,3},{60906,58181,3},{60908,58179,3}, {60918,58183,3},{60921,58188,3},{60929,58194,3},{60933,58201,3},{60934,58198,3}, {60933,58193,3},{60928,58191,3},{60914,58174,3},{60911,58176,3},{60908,58173,3}, {60904,58168,3},{60911,58168,3},{60914,58171,3},{60914,58173,3},{60916,58171,3}, {60928,58174,3},{60931,58171,3},{60934,58171,3},{60939,58169,3},{60941,58176,3}, {60943,58174,3},{60948,58178,3},{60948,58184,3},{60949,58181,3},{60953,58179,3}, {60966,58194,3},{60968,58198,3},{60968,58213,3},{60969,58218,3},{60971,58206,3}, {60974,58203,3},{60969,58193,3},{60964,58189,3},{60958,58178,3},{60991,58184,3}, {60994,58193,3},{60991,58194,3},{60998,58196,3},{60999,58201,3},{60996,58204,3}, {61003,58204,3},{61006,58214,3},{61004,58218,3},{61001,58218,3},{60994,58228,3}, {60994,58233,3},{60991,58234,3},{60989,58249,3},{60989,58251,3},{60993,58251,3}, {60994,58253,3},{60996,58251,3},{60998,58248,3},{60994,58241,3},{60998,58231,3}, {61008,58218,3},{61011,58209,3},{61008,58204,3},{61006,58201,3},{61008,58191,3}, {61011,58189,3},{61016,58191,3},{61016,58201,3},{61021,58206,3},{61024,58203,3}, {61028,58203,3},{61028,58199,3},{61033,58196,3},{61038,58198,3},{61041,58203,3}, {61039,58213,3},{61041,58224,3},{61049,58236,3},{61049,58243,3},{61059,58258,3}, {61059,58263,3},{61063,58266,3},{61069,58263,3},{61073,58266,3},{61081,58268,3}, {61086,58276,3},{61091,58274,3},{61101,58278,3},{61096,58273,3},{61094,58269,3}, {61086,58266,3},{61086,58264,3},{61091,58261,3},{61093,58254,3},{61096,58251,3}, {61099,58243,3},{61104,58243,3},{61111,58218,3},{61114,58219,3},{61114,58223,3}, {61119,58226,3},{61121,58224,3},{61118,58219,3},{61116,58214,3},{61118,58208,3}, {61123,58208,3},{61126,58209,3},{61123,58214,3},{61126,58214,3},{61129,58214,3}, {61129,58218,3},{61128,58221,3},{61126,58224,3},{61133,58223,3},{61138,58223,3}, {61143,58226,3},{61144,58229,3},{61148,58229,3},{61154,58234,3},{61159,58236,3}, {61154,58238,3},{61154,58239,3},{61158,58248,3},{61154,58251,3},{61154,58254,3}, {61158,58251,3},{61163,58251,3},{61168,58251,3},{61163,58249,3},{61161,58248,3}, {61161,58243,3},{61159,58239,3},{61163,58236,3},{61163,58231,3},{61166,58231,3}, {61168,58236,3},{61174,58239,3},{61174,58246,3},{61178,58244,3},{61176,58239,3}, {61178,58233,3},{61193,58224,3},{61196,58228,3},{61206,58228,3},{61213,58246,3}, {61223,58243,3},{61228,58244,3},{61233,58249,3},{61236,58253,3},{61234,58256,3}, {61229,58258,3},{61228,58263,3},{61234,58259,3},{61244,58263,3},{61251,58253,3}, {61259,58249,3},{61266,58249,3},{61268,58254,3},{61274,58249,3},{61279,58251,3}, {61286,58254,3},{61286,58258,3},{61286,58268,3},{61281,58278,3},{61279,58283,3}, {61284,58279,3},{61288,58268,3},{61293,58264,3},{61296,58264,3},{61298,58259,3}, {61306,58256,3},{61306,58253,3},{61306,58251,3},{61314,58261,3},{61314,58266,3}, {61318,58276,3},{61313,58281,3},{61309,58281,3},{61291,58291,3},{61289,58293,3}, {61291,58294,3},{61299,58293,3},{61306,58288,3},{61309,58289,3},{61311,58294,3}, {61311,58289,3},{61314,58288,3},{61319,58289,3},{61321,58294,3},{61321,58288,3}, {61324,58288,3},{61339,58289,3},{61339,58283,3},{61333,58279,3},{61333,58276,3}, {61334,58274,3},{61334,58269,3},{61336,58268,3},{61334,58264,3},{61338,58254,3}, {61341,58253,3},{61344,58248,3},{61363,58269,3},{61363,58278,3},{61364,58288,3}, {61368,58296,3},{61371,58299,3},{61371,58306,3},{61374,58303,3},{61381,58304,3}, {61384,58306,3},{61388,58303,3},{61398,58306,3},{61399,58303,3},{61398,58301,3}, {61394,58304,3},{61391,58301,3},{61374,58298,3},{61369,58294,3},{61368,58288,3}, {61368,58283,3},{61366,58279,3},{61366,58273,3},{61369,58268,3},{61374,58268,3}, {61376,58264,3},{61381,58261,3},{61386,58253,3},{61384,58248,3},{61388,58241,3}, {61384,58231,3},{61379,58231,3},{61378,58226,3},{61366,58231,3},{61366,58226,3}, {61361,58223,3},{61361,58219,3},{61356,58216,3},{61359,58196,3},{61358,58194,3}, {61356,58194,3},{61358,58191,3},{61356,58184,3},{61359,58178,3},{61361,58161,3}, {61368,58163,3},{61371,58168,3},{61374,58168,3},{61374,58179,3},{61384,58186,3}, {61379,58181,3},{61378,58181,3},{61376,58176,3},{61376,58164,3},{61379,58159,3}, {61379,58154,3},{61384,58154,3},{61389,58149,3},{61396,58151,3},{61406,58149,3}, {61424,58138,3},{61439,58136,3},{61443,58141,3},{61446,58146,3},{61448,58146,3}, {61449,58141,3},{61454,58144,3},{61461,58146,3},{61468,58151,3},{61473,58151,3}, {61474,58153,3},{61478,58158,3},{61484,58161,3},{61494,58158,3},{61494,58159,3}, {61511,58161,3},{61514,58164,3},{61518,58163,3},{61523,58166,3},{61524,58169,3}, {61524,58171,3},{61533,58169,3},{61538,58164,3},{61543,58169,3},{61543,58176,3}, {61544,58176,3},{61548,58184,3},{61553,58189,3},{61553,58193,3},{61553,58194,3}, {61544,58196,3},{61544,58198,3},{61549,58199,3},{61556,58196,3},{61563,58198,3}, {61566,58196,3},{61569,58198,3},{61569,58201,3},{61571,58201,3},{61588,58211,3}, {61591,58211,3},{61594,58214,3},{61598,58211,3},{61601,58214,3},{61611,58213,3}, {61614,58216,3},{61618,58213,3},{61614,58214,3},{61614,58211,3},{61621,58211,3}, {61646,58199,3},{61666,58193,3},{61658,58193,3},{61683,58184,3},{61698,58183,3}, {61703,58184,3},{61704,58186,3},{61709,58184,3},{61716,58189,3},{61731,58191,3}, {61749,58183,3},{61759,58174,3},{61763,58169,3},{61768,58171,3},{61776,58168,3}, {61784,58176,3},{61789,58176,3},{61794,58176,3},{61799,58169,3},{61803,58168,3}, {61808,58171,3},{61818,58173,3},{61821,58178,3},{61816,58183,3},{61814,58189,3}, {61811,58191,3},{61816,58209,3},{61821,58216,3},{61831,58219,3},{61836,58218,3}, {61841,58221,3},{61849,58221,3},{61854,58221,3},{61859,58216,3},{61863,58219,3}, {61861,58221,3},{61863,58223,3},{61864,58224,3},{61866,58221,3},{61868,58223,3}, {61876,58224,3},{61876,58226,3},{61874,58228,3},{61866,58228,3},{61864,58233,3}, {61866,58238,3},{61874,58239,3},{61879,58236,3},{61883,58238,3},{61884,58239,3}, {61883,58243,3},{61889,58244,3},{61893,58248,3},{61898,58248,3},{61904,58253,3}, {61918,58253,3},{61921,58256,3},{61926,58254,3},{61933,58258,3},{61938,58256,3}, {61946,58266,3},{61951,58269,3},{61954,58276,3},{61956,58278,3},{61963,58278,3}, {61976,58271,3},{61978,58271,3},{61988,58286,3},{61999,58288,3},{62001,58293,3}, {62013,58298,3},{62019,58308,3},{62026,58314,3},{62048,58318,3},{62058,58323,3}, {62061,58326,3},{62071,58331,3},{62083,58331,3},{62084,58333,3},{62094,58331,3}, {62096,58333,3},{62099,58338,3},{62114,58338,3},{62118,58334,3},{62121,58334,3}, {62133,58343,3},{62134,58346,3},{62139,58346,3},{62143,58349,3},{62158,58354,3}, {62163,58366,3},{62168,58369,3},{62179,58371,3},{62183,58374,3},{62193,58364,3}, {62198,58366,3},{62201,58369,3},{62206,58369,3},{62209,58366,3},{62219,58364,3}, {62226,58361,3},{62228,58368,3},{62234,58371,3},{62233,58376,3},{62234,58379,3}, {62243,58381,3},{62248,58384,3},{62258,58381,3},{62259,58386,3},{62264,58384,3}, {62266,58389,3},{62271,58391,3},{62284,58389,3},{62288,58393,3},{62294,58393,3}, {62298,58396,3},{62301,58393,3},{62303,58389,3},{62308,58388,3},{62316,58383,3}, {62338,58386,3},{62344,58383,3},{62348,58386,3},{62351,58381,3},{62358,58384,3}, {62376,58379,3},{62384,58379,3},{62421,58369,3},{62438,58371,3},{62443,58368,3}, {62458,58366,3},{62474,58364,3},{62501,58368,3},{62511,58373,3},{62511,58374,3}, {62508,58376,3},{62506,58381,3},{62509,58386,3},{62513,58384,3},{62513,58388,3}, {62516,58389,3},{62519,58393,3},{62518,58393,3},{62518,58394,3},{62523,58398,3}, {62528,58399,3},{62536,58394,3},{62539,58401,3},{62543,58401,3},{62543,58406,3}, {62546,58408,3},{62553,58408,3},{62556,58404,3},{62563,58403,3},{62571,58404,3}, {62574,58408,3},{62581,58403,3},{62594,58406,3},{62598,58403,3},{62606,58401,3}, {62614,58388,3},{62621,58386,3},{62626,58389,3},{62629,58386,3},{62631,58388,3}, {62634,58386,3},{62638,58386,3},{62639,58384,3},{62649,58386,3},{62656,58398,3}, {62663,58399,3},{62668,58406,3},{62674,58408,3},{62679,58404,3},{62683,58409,3}, {62689,58409,3},{62689,58414,3},{62701,58419,3},{62706,58418,3},{62714,58421,3}, {62726,58419,3},{62729,58421,3},{62741,58423,3},{62746,58424,3},{62749,58426,3}, {62751,58426,3},{62754,58428,3},{62758,58428,3},{62764,58431,3},{62769,58433,3}, {62771,58433,3},{62768,58436,3},{62769,58441,3},{62774,58444,3},{62781,58444,3}, {62788,58448,3},{62799,58441,3},{62803,58443,3},{62806,58443,3},{62811,58441,3}, {62814,58441,3},{62818,58439,3},{62823,58441,3},{62826,58443,3},{62823,58446,3}, {62823,58448,3},{62831,58451,3},{62831,58454,3},{62834,58454,3},{62836,58458,3}, {62849,58454,3},{62861,58461,3},{62864,58461,3},{62868,58463,3},{62878,58466,3}, {62883,58468,3},{62886,58466,3},{62893,58468,3},{62898,58466,3},{62904,58473,3}, {62906,58473,3},{62908,58469,3},{62911,58471,3},{62916,58469,3},{62919,58469,3}, {62929,58469,3},{62933,58473,3},{62936,58473,3},{62943,58471,3},{62948,58466,3}, {62951,58466,3},{62956,58463,3},{62961,58466,3},{62964,58466,3},{62969,58468,3}, {62973,58471,3},{62979,58473,3},{62983,58471,3},{62986,58474,3},{62986,58478,3}, {62988,58481,3},{62998,58484,3},{62998,58488,3},{63001,58491,3},{63016,58493,3}, {63023,58489,3},{63026,58486,3},{63036,58489,3},{63046,58483,3},{63059,58481,3}, {63064,58478,3},{63074,58481,3},{63083,58478,3},{63088,58481,3},{63098,58481,3}, {63101,58483,3},{63104,58481,3},{63119,58486,3},{63131,58486,3},{63136,58484,3}, {63146,58486,3},{63149,58484,3},{63153,58488,3},{63158,58486,3},{63166,58493,3}, {63176,58498,3},{63186,58494,3},{63191,58488,3},{63191,58484,3},{63186,58483,3}, {63184,58481,3},{63186,58478,3},{63188,58476,3},{63186,58474,3},{63191,58474,3}, {63194,58478,3},{63198,58476,3},{63206,58478,3},{63209,58476,3},{63214,58476,3}, {63219,58481,3},{63229,58478,3},{63234,58484,3},{63234,58486,3},{63229,58486,3}, {63228,58489,3},{63229,58498,3},{63234,58503,3},{63241,58503,3},{63246,58508,3}, {63256,58504,3},{63261,58506,3},{63266,58508,3},{63273,58508,3},{63274,58509,3}, {63279,58508,3},{63288,58511,3},{63291,58509,3},{63298,58513,3},{63303,58511,3}, {63308,58513,3},{63321,58514,3},{63328,58516,3},{63329,58518,3},{63336,58516,3}, {63341,58519,3},{63348,58516,3},{63348,58519,3},{63351,58521,3},{63369,58521,3}, {63374,58521,3},{63378,58528,3},{63383,58528,3},{63384,58529,3},{63388,58528,3}, {63393,58531,3},{63403,58526,3},{63406,58529,3},{63414,58528,3},{63424,58523,3}, {63428,58524,3},{63434,58519,3},{63443,58523,3},{63448,58523,3},{63456,58514,3}, {63458,58516,3},{63466,58516,3},{63471,58518,3},{63483,58516,3},{63488,58519,3}, {63491,58519,3},{63496,58519,3},{63499,58518,3},{63504,58521,3},{63509,58523,3}, {63516,58519,3},{63518,58521,3},{63521,58521,3},{63528,58523,3},{63531,58523,3}, {63538,58524,3},{63541,58523,3},{63548,58521,3},{63549,58523,3},{63556,58519,3}, {63559,58521,3},{63564,58521,3},{63568,58519,3},{63569,58519,3},{63573,58518,3}, {63578,58513,3},{63578,58516,3},{63583,58516,3},{63586,58516,3},{63596,58514,3}, {63601,58509,3},{63604,58509,3},{63606,58508,3},{63623,58509,3},{63634,58504,3}, {63648,58504,3},{63658,58501,3},{63663,58503,3},{63666,58501,3},{63669,58503,3}, {63673,58501,3},{63686,58504,3},{63691,58503,3},{63693,58504,3},{63701,58496,3}, {63704,58499,3},{63703,58516,3},{63704,58523,3},{63708,58531,3},{63709,58536,3}, {63711,58541,3},{63716,58544,3},{63723,58553,3},{63739,58559,3},{63743,58559,3}, {63746,58556,3},{63756,58554,3},{63761,58551,3},{63768,58553,3},{63769,58554,3}, {63771,58554,3},{63769,58568,3},{63786,58586,3},{63773,58588,3},{63761,58601,3}, {63756,58604,3},{63746,58604,3},{63739,58606,3},{63738,58608,3},{63739,58609,3}, {63741,58609,3},{63739,58611,3},{63738,58613,3},{63733,58623,3},{63734,58629,3}, {63728,58629,3},{63724,58623,3},{63721,58621,3},{63713,58628,3},{63708,58628,3}, {63704,58629,3},{63698,58629,3},{63688,58634,3},{63671,58633,3},{63666,58636,3}, {63661,58636,3},{63648,58643,3},{63641,58638,3},{63638,58641,3},{63629,58646,3}, {63626,58654,3},{63619,58661,3},{63616,58668,3},{63608,58671,3},{63604,58681,3}, {63594,58693,3},{63593,58693,3},{63591,58688,3},{63571,58673,3},{63566,58668,3}, {63563,58666,3},{63554,58676,3},{63553,58681,3},{63548,58681,3},{63544,58684,3}, {63539,58681,3},{63531,58679,3},{63529,58669,3},{63528,58659,3},{63526,58658,3}, {63523,58659,3},{63521,58664,3},{63513,58663,3},{63503,58669,3},{63499,58661,3}, {63496,58661,3},{63491,58661,3},{63486,58666,3},{63479,58681,3},{63473,58689,3}, {63471,58689,3},{63468,58684,3},{63463,58679,3},{63446,58681,3},{63443,58686,3}, {63443,58694,3},{63406,58718,3},{63376,58718,3},{63368,58723,3},{63361,58726,3}, {63339,58728,3},{63329,58739,3},{63326,58741,3},{63319,58739,3},{63314,58743,3}, {63309,58744,3},{63303,58741,3},{63293,58748,3},{63286,58748,3},{63281,58751,3}, {63264,58748,3},{63253,58748,3},{63251,58753,3},{63253,58754,3},{63248,58756,3}, {63246,58778,3},{63254,58818,3},{63236,58836,3},{63196,58821,3},{63134,58803,3}, {63096,58711,3},{63086,58706,3},{63086,58698,3},{63079,58693,3},{63074,58693,3}, {63074,58689,3},{63076,58689,3},{63076,58688,3},{63069,58686,3},{63059,58679,3}, {63054,58679,3},{63049,58681,3},{63046,58686,3},{63046,58691,3},{63043,58689,3}, {63039,58693,3},{63033,58694,3},{63024,58701,3},{63023,58701,3},{63021,58694,3}, {63023,58689,3},{63018,58686,3},{63003,58679,3},{62991,58676,3},{62984,58676,3}, {62979,58681,3},{62969,58681,3},{62963,58686,3},{62921,58696,3},{62918,58694,3}, {62906,58679,3},{62886,58678,3},{62878,58683,3},{62866,58693,3},{62848,58706,3}, {62844,58708,3},{62838,58704,3},{62831,58704,3},{62831,58699,3},{62829,58693,3}, {62829,58686,3},{62826,58681,3},{62819,58678,3},{62821,58673,3},{62826,58666,3}, {62826,58658,3},{62824,58654,3},{62813,58648,3},{62808,58649,3},{62799,58646,3}, {62794,58641,3},{62789,58636,3},{62783,58634,3},{62776,58631,3},{62771,58628,3}, {62766,58629,3},{62763,58624,3},{62746,58621,3},{62739,58618,3},{62736,58606,3}, {62733,58606,3},{62729,58603,3},{62724,58601,3},{62719,58598,3},{62714,58596,3}, {62718,58589,3},{62716,58588,3},{62711,58588,3},{62704,58583,3},{62696,58571,3}, {62679,58569,3},{62676,58566,3},{62673,58564,3},{62669,58561,3},{62664,58561,3}, {62656,58564,3},{62641,58556,3},{62626,58556,3},{62623,58553,3},{62623,58546,3}, {62619,58544,3},{62616,58538,3},{62611,58539,3},{62609,58534,3},{62606,58533,3}, {62599,58533,3},{62581,58539,3},{62569,58539,3},{62566,58541,3},{62564,58544,3}, {62561,58544,3},{62558,58546,3},{62539,58544,3},{62528,58539,3},{62528,58546,3}, {62524,58551,3},{62521,58553,3},{62518,58553,3},{62514,58549,3},{62504,58546,3}, {62498,58541,3},{62496,58534,3},{62498,58529,3},{62501,58524,3},{62499,58519,3}, {62493,58523,3},{62489,58521,3},{62486,58516,3},{62476,58514,3},{62471,58509,3}, {62464,58509,3},{62458,58506,3},{62448,58503,3},{62439,58503,3},{62433,58511,3}, {62433,58503,3},{62424,58499,3},{62421,58494,3},{62426,58491,3},{62426,58489,3}, {62419,58483,3},{62413,58483,3},{62404,58479,3},{62399,58481,3},{62394,58479,3}, {62379,58478,3},{62369,58483,3},{62363,58488,3},{62356,58489,3},{62349,58493,3}, {62348,58496,3},{62348,58506,3},{62341,58513,3},{62331,58509,3},{62333,58499,3}, {62331,58498,3},{62328,58501,3},{62324,58501,3},{62323,58504,3},{62318,58503,3}, {62314,58504,3},{62308,58504,3},{62304,58511,3},{62301,58513,3},{62294,58513,3}, {62289,58519,3},{62288,58521,3},{62281,58521,3},{62279,58523,3},{62278,58519,3}, {62274,58519,3},{62261,58521,3},{62251,58531,3},{62248,58538,3},{62236,58533,3}, {62236,58528,3},{62233,58526,3},{62228,58528,3},{62219,58526,3},{62213,58533,3}, {62206,58536,3},{62206,58538,3},{62211,58541,3},{62213,58544,3},{62208,58556,3}, {62201,58556,3},{62196,58559,3},{62191,58554,3},{62183,58553,3},{62181,58549,3}, {62178,58549,3},{62169,58548,3},{62164,58551,3},{62159,58546,3},{62158,58546,3}, {62148,58548,3},{62141,58546,3},{62139,58548,3},{62141,58551,3},{62139,58551,3}, {62126,58551,3},{62123,58549,3},{62113,58554,3},{62111,58553,3},{62109,58548,3}, {62108,58546,3},{62109,58539,3},{62108,58531,3},{62094,58531,3},{62091,58526,3}, {62083,58521,3},{62078,58514,3},{62064,58511,3},{62061,58504,3},{62058,58509,3}, {62056,58509,3},{62038,58501,3},{62021,58499,3},{62016,58491,3},{62016,58483,3}, {62011,58479,3},{62008,58479,3},{62006,58483,3},{62004,58491,3},{62001,58494,3}, {61999,58493,3},{61998,58489,3},{61989,58493,3},{61986,58496,3},{61976,58496,3}, {61971,58494,3},{61954,58503,3},{61953,58498,3},{61946,58494,3},{61944,58499,3}, {61939,58494,3},{61931,58499,3},{61921,58493,3},{61919,58488,3},{61921,58484,3}, {61923,58481,3},{61921,58478,3},{61916,58478,3},{61914,58473,3},{61911,58471,3}, {61909,58466,3},{61903,58464,3},{61898,58466,3},{61894,58466,3},{61893,58456,3}, {61896,58449,3},{61894,58446,3},{61889,58444,3},{61888,58443,3},{61888,58433,3}, {61876,58429,3},{61868,58431,3},{61866,58429,3},{61868,58426,3},{61868,58423,3}, {61861,58423,3},{61851,58418,3},{61849,58418,3},{61848,58423,3},{61844,58421,3}, {61841,58424,3},{61838,58421,3},{61838,58416,3},{61836,58421,3},{61828,58424,3}, {61826,58428,3},{61824,58424,3},{61821,58423,3},{61814,58423,3},{61806,58416,3}, {61798,58419,3},{61793,58424,3},{61789,58426,3},{61781,58423,3},{61778,58424,3}, {61774,58419,3},{61766,58418,3},{61733,58433,3},{61729,58436,3},{61724,58434,3}, {61719,58436,3},{61713,58434,3},{61694,58439,3},{61688,58444,3},{61684,58453,3}, {61679,58454,3},{61674,58451,3},{61673,58448,3},{61668,58449,3},{61666,58446,3}, {61661,58443,3},{61661,58431,3},{61659,58426,3},{61656,58423,3},{61656,58413,3}, {61653,58413,3},{61644,58396,3},{61633,58394,3},{61613,58398,3},{61603,58396,3}, {61598,58389,3},{61593,58391,3},{61588,58388,3},{61583,58383,3},{61581,58388,3}, {61576,58388,3},{61574,58384,3},{61574,58381,3},{61574,58374,3},{61579,58369,3}, {61578,58366,3},{61573,58364,3},{61568,58368,3},{61564,58366,3},{61551,58369,3}, {61548,58374,3},{61544,58376,3},{61534,58369,3},{61526,58369,3},{61528,58361,3}, {61528,58358,3},{61526,58356,3},{61524,58358,3},{61518,58356,3},{61516,58354,3}, {61506,58363,3},{61506,58364,3},{61508,58366,3},{61506,58369,3},{61503,58369,3}, {61493,58364,3},{61496,58359,3},{61494,58358,3},{61481,58351,3},{61478,58353,3}, {61473,58351,3},{61463,58341,3},{61451,58346,3},{61446,58351,3},{61441,58353,3}, {61434,58349,3},{61429,58353,3},{61421,58351,3},{61418,58348,3},{61411,58349,3}, {61399,58346,3},{61393,58349,3},{61384,58348,3},{61378,58353,3},{61374,58346,3}, {61371,58344,3},{61364,58351,3},{61358,58351,3},{61349,58358,3},{61341,58359,3}, {61338,58359,3},{61333,58363,3},{61326,58363,3},{61323,58358,3},{61323,58349,3}, {61318,58344,3},{61318,58343,3},{61323,58339,3},{61323,58334,3},{61319,58331,3}, {61314,58329,3},{61308,58323,3},{61301,58331,3},{61293,58329,3},{61288,58333,3}, {61283,58324,3},{61278,58323,3},{61274,58324,3},{61269,58323,3},{61264,58324,3}, {61251,58326,3},{61234,58323,3},{61226,58331,3},{61224,58338,3},{61223,58353,3}, {61219,58361,3},{61218,58363,3},{61206,58361,3},{61206,58354,3},{61204,58346,3}, {61199,58346,3},{61198,58343,3},{61194,58344,3},{61191,58341,3},{61189,58351,3}, {61186,58351,3},{61183,58349,3},{61181,58358,3},{61178,58359,3},{61176,58366,3}, {61168,58368,3},{61163,58356,3},{61159,58354,3},{61158,58358,3},{61159,58363,3}, {61153,58361,3},{61144,58371,3},{61139,58371,3},{61129,58361,3},{61126,58351,3}, {61123,58351,3},{61116,58356,3},{61109,58354,3},{61104,58356,3},{61099,58351,3}, {61096,58356,3},{61096,58359,3},{61098,58364,3},{61094,58373,3},{61096,58394,3}, {61094,58399,3},{61093,58416,3},{61091,58421,3},{61086,58421,3},{61083,58426,3}, {61078,58423,3},{61076,58416,3},{61071,58413,3},{61061,58414,3},{61056,58408,3}, {61056,58399,3},{61061,58386,3},{61058,58371,3},{61061,58358,3},{61056,58353,3}, {61058,58346,3},{61058,58341,3},{61061,58331,3},{61059,58328,3},{61046,58329,3}, {61044,58339,3},{61041,58349,3},{61043,58356,3},{61043,58361,3},{61038,58368,3}, {61038,58379,3},{61019,58391,3},{61018,58396,3},{61014,58403,3},{61006,58406,3}, {61004,58406,3},{60999,58399,3},{60994,58386,3},{60988,58389,3},{60986,58388,3}, {60983,58383,3},{60983,58368,3},{60981,58363,3},{60979,58361,3},{60976,58363,3}, {60971,58358,3},{60966,58359,3},{60963,58358,3},{60958,58363,3},{60951,58359,3}, {60946,58373,3},{60939,58376,3},{60934,58369,3},{60924,58359,3},{60923,58348,3}, {60921,58346,3},{60919,58349,3},{60916,58353,3},{60914,58359,3},{60911,58361,3}, {60898,58361,3},{60883,58369,3},{60878,58368,3},{60868,58369,3},{60864,58366,3}, {60863,58359,3},{60858,58354,3},{60856,58344,3},{60854,58343,3},{60851,58344,3}, {60841,58339,3},{60836,58346,3},{60831,58336,3},{60829,58336,3},{60821,58349,3}, {60814,58349,3},{60813,58344,3},{60814,58341,3},{60816,58334,3},{60816,58333,3}, {60814,58333,3},{60809,58334,3},{60801,58328,3},{60798,58323,3},{60794,58319,3}, {60794,58306,3},{60793,58303,3},{60789,58299,3},{60788,58301,3},{60786,58306,3}, {60776,58303,3},{60761,58291,3},{60743,58283,3},{60736,58289,3},{60734,58296,3}, {60731,58298,3},{60728,58304,3},{60716,58306,3},{60708,58304,3},{60701,58308,3}, {60701,58299,3},{60696,58296,3},{60691,58279,3},{60688,58276,3},{60664,58281,3}, {60656,58279,3},{60643,58261,3},{60641,58244,3},{60638,58236,3},{60629,58228,3}, {60623,58228,3},{60614,58218,3},{60611,58219,3},{60609,58228,3},{60608,58223,3}, {60606,58223,3},{60604,58189,3},{60598,58191,3},{60593,58183,3},{60586,58183,3}, {60583,58178,3},{60574,58184,3},{60568,58183,3},{60558,58191,3},{60551,58183,3}, {60546,58183,3},{60544,58179,3},{60536,58189,3},{60526,58183,3},{60523,58183,3}, {60511,58203,3},{60504,58208,3},{60479,58211,3},{60471,58219,3},{60461,58219,3}, {60459,58224,3},{60461,58234,3},{60469,58246,3},{60474,58261,3},{60469,58273,3}, {60469,58278,3},{60474,58283,3},{60476,58286,3},{60474,58294,3},{60474,58299,3}, {60473,58301,3},{60471,58306,3},{60461,58303,3},{60451,58311,3},{60434,58309,3}, {60433,58308,3},{60433,58303,3},{60424,58296,3},{60419,58299,3},{60414,58309,3}, {60411,58311,3},{60406,58304,3},{60396,58304,3},{60393,58303,3},{60388,58303,3}, {60384,58294,3},{60379,58293,3},{60378,58294,3},{60378,58303,3},{60366,58308,3}, {60363,58323,3},{60351,58339,3},{60346,58343,3},{60339,58339,3},{60338,58343,3}, {60336,58344,3},{60336,58536,3},{60321,58589,3},{60321,58613,3},{60316,58638,3}, {60308,58653,3},{60303,58693,3},{60298,58693,3},{233,60076,131},{235,60079,3}, {233,60084,3},{243,60088,3},{243,60093,3},{248,60099,3},{263,60104,3},{278,60116,3}, {282,60116,3},{285,60119,3},{288,60116,3},{295,60119,3},{297,60118,3},{302,60119,3}, {305,60118,3},{308,60119,3},{312,60119,3},{313,60118,3},{312,60114,3},{315,60116,3}, {320,60118,3},{328,60124,3},{330,60129,3},{337,60129,3},{345,60136,3},{353,60134,3}, {360,60138,3},{362,60136,3},{363,60134,3},{363,60131,3},{378,60124,3},{382,60116,3}, {385,60116,3},{393,60108,3},{400,60104,3},{403,60099,3},{415,60103,3},{418,60096,3}, {425,60096,3},{430,60096,3},{438,60093,3},{452,60091,3},{458,60094,3},{465,60093,3}, {470,60093,3},{473,60089,3},{475,60088,3},{485,60089,3},{490,60088,3},{495,60091,3}, {502,60091,3},{513,60098,3},{515,60101,3},{525,60108,3},{530,60116,3},{535,60119,3}, {540,60128,3},{543,60131,3},{555,60136,3},{562,60134,3},{572,60138,3},{578,60148,3}, {577,60154,3},{575,60156,3},{570,60163,3},{562,60179,3},{557,60188,3},{553,60198,3}, {553,60209,3},{552,60211,3},{550,60214,3},{552,60216,3},{552,60218,3},{545,60231,3}, {545,60234,3},{547,60236,3},{545,60243,3},{542,60248,3},{527,60259,3},{518,60269,3}, {513,60274,3},{507,60283,3},{505,60283,3},{505,60288,3},{500,60291,3},{500,60294,3}, {498,60294,3},{493,60298,3},{488,60298,3},{493,60301,3},{495,60303,3},{493,60308,3}, {487,60309,3},{483,60306,3},{475,60301,3},{472,60303,3},{477,60304,3},{483,60308,3}, {487,60314,3},{487,60316,3},{478,60321,3},{477,60326,3},{468,60334,3},{460,60338,3}, {442,60341,3},{440,60339,3},{435,60333,3},{433,60333,3},{437,60339,3},{440,60343,3}, {460,60343,3},{465,60344,3},{467,60348,3},{465,60351,3},{460,60356,3},{458,60356,3}, {455,60359,3},{445,60361,3},{445,60363,3},{442,60363,3},{440,60363,3},{438,60368,3}, {437,60368,3},{435,60364,3},{430,60364,3},{420,60371,3},{408,60369,3},{403,60368,3}, {398,60359,3},{387,60354,3},{380,60348,3},{377,60343,3},{373,60343,3},{372,60339,3}, {370,60338,3},{362,60336,3},{352,60329,3},{352,60328,3},{348,60328,3},{328,60316,3}, {323,60313,3},{325,60311,3},{323,60308,3},{317,60304,3},{315,60301,3},{312,60301,3}, {307,60303,3},{293,60294,3},{290,60296,3},{288,60293,3},{265,60283,3},{263,60279,3}, {258,60283,3},{257,60281,3},{247,60276,3},{243,60271,3},{238,60269,3},{233,60263,3}, {230,60256,3},{228,60251,3},{220,60246,3},{217,60239,3},{218,60231,3},{222,60228,3}, {222,60224,3},{220,60213,3},{220,60209,3},{225,60214,3},{235,60203,3},{235,60201,3}, {232,60201,3},{225,60191,3},{225,60183,3},{227,60181,3},{232,60163,3},{235,60164,3}, {237,60161,3},{235,60156,3},{232,60154,3},{230,60149,3},{227,60148,3},{227,60143,3}, {223,60143,3},{222,60143,3},{218,60136,3},{218,60134,3},{218,60129,3},{213,60128,3}, {212,60124,3},{212,60121,3},{217,60118,3},{215,60111,3},{217,60103,3},{222,60099,3}, {220,60096,3},{222,60089,3},{227,60083,3},{228,60083,3},{228,60084,3},{232,60083,3}, {233,60076,3},{195,59889,131},{197,59888,3},{202,59879,3},{203,59868,3}, {220,59854,3},{227,59853,3},{230,59848,3},{235,59848,3},{240,59843,3},{243,59843,3}, {247,59841,3},{252,59841,3},{250,59838,3},{252,59836,3},{255,59836,3},{260,59833,3}, {263,59834,3},{263,59829,3},{268,59829,3},{273,59826,3},{277,59828,3},{277,59823,3}, {283,59823,3},{282,59818,3},{285,59816,3},{290,59814,3},{295,59818,3},{297,59813,3}, {302,59813,3},{303,59816,3},{307,59814,3},{308,59811,3},{313,59813,3},{313,59809,3}, {313,59808,3},{317,59809,3},{318,59808,3},{325,59808,3},{328,59806,3},{332,59808,3}, {338,59806,3},{335,59801,3},{338,59794,3},{335,59793,3},{333,59789,3},{337,59784,3}, {335,59781,3},{335,59776,3},{337,59771,3},{338,59769,3},{347,59773,3},{352,59771,3}, {357,59764,3},{362,59763,3},{367,59753,3},{375,59751,3},{382,59748,3},{390,59741,3}, {397,59734,3},{400,59731,3},{417,59729,3},{422,59733,3},{428,59741,3},{440,59741,3}, {445,59744,3},{465,59753,3},{477,59748,3},{478,59744,3},{483,59744,3},{493,59753,3}, {493,59759,3},{497,59761,3},{502,59768,3},{500,59776,3},{502,59784,3},{498,59788,3}, {498,59794,3},{503,59803,3},{502,59808,3},{503,59808,3},{507,59804,3},{517,59806,3}, {518,59809,3},{517,59811,3},{513,59813,3},{517,59818,3},{527,59813,3},{527,59809,3}, {522,59811,3},{523,59808,3},{532,59808,3},{532,59803,3},{535,59804,3},{538,59809,3}, {548,59811,3},{552,59818,3},{555,59819,3},{577,59823,3},{588,59828,3},{595,59829,3}, {600,59839,3},{597,59869,3},{595,59874,3},{595,59888,3},{582,59929,3},{582,59934,3}, {577,59946,3},{567,59946,3},{572,59948,3},{580,59946,3},{585,59946,3},{588,59943,3}, {595,59951,3},{598,59969,3},{597,59998,3},{592,60009,3},{590,60014,3},{590,60018,3}, {588,60024,3},{587,60026,3},{582,60023,3},{582,60024,3},{585,60026,3},{588,60028,3}, {585,60034,3},{587,60038,3},{585,60043,3},{587,60046,3},{585,60049,3},{588,60046,3}, {587,60043,3},{587,60036,3},{590,60031,3},{590,60026,3},{593,60023,3},{595,60019,3}, {597,60021,3},{600,60031,3},{598,60036,3},{598,60059,3},{592,60081,3},{590,60101,3}, {588,60109,3},{588,60116,3},{583,60126,3},{582,60134,3},{578,60134,3},{575,60138,3}, {565,60131,3},{552,60131,3},{535,60119,3},{530,60116,3},{525,60108,3},{515,60101,3}, {513,60098,3},{502,60091,3},{495,60091,3},{490,60088,3},{485,60089,3},{475,60088,3}, {473,60089,3},{470,60093,3},{465,60093,3},{458,60094,3},{452,60091,3},{438,60093,3}, {430,60096,3},{425,60096,3},{418,60096,3},{415,60103,3},{403,60099,3},{400,60104,3}, {393,60108,3},{385,60116,3},{382,60116,3},{378,60124,3},{363,60131,3},{363,60134,3}, {362,60136,3},{360,60138,3},{353,60134,3},{345,60136,3},{337,60129,3},{330,60129,3}, {328,60124,3},{320,60118,3},{315,60116,3},{312,60114,3},{313,60118,3},{312,60119,3}, {308,60119,3},{305,60118,3},{302,60119,3},{297,60118,3},{295,60119,3},{288,60116,3}, {285,60119,3},{282,60116,3},{278,60116,3},{263,60104,3},{248,60099,3},{243,60093,3}, {243,60088,3},{233,60084,3},{235,60079,3},{233,60076,3},{232,60071,3},{233,60066,3}, {238,60064,3},{240,60068,3},{245,60066,3},{247,60061,3},{243,60056,3},{243,60049,3}, {253,60041,3},{257,60039,3},{260,60043,3},{262,60041,3},{258,60034,3},{253,60024,3}, {257,60023,3},{255,60018,3},{252,60016,3},{250,60011,3},{252,60008,3},{252,60004,3}, {248,60001,3},{245,60001,3},{243,59998,3},{243,59978,3},{240,59964,3},{242,59963,3}, {245,59959,3},{247,59949,3},{252,59944,3},{253,59939,3},{252,59938,3},{248,59938,3}, {245,59936,3},{240,59936,3},{235,59933,3},{235,59931,3},{235,59928,3},{227,59923,3}, {225,59923,3},{225,59928,3},{223,59931,3},{222,59933,3},{218,59933,3},{215,59936,3}, {205,59946,3},{195,59944,3},{190,59946,3},{187,59943,3},{183,59934,3},{188,59918,3}, {188,59909,3},{193,59901,3},{192,59896,3},{195,59889,3},{520,59463,131}, {595,59398,3},{598,59403,3},{612,59409,3},{613,59416,3},{618,59419,3},{618,59424,3}, {623,59424,3},{627,59426,3},{630,59423,3},{633,59421,3},{643,59423,3},{652,59419,3}, {653,59416,3},{655,59418,3},{657,59416,3},{663,59419,3},{667,59419,3},{672,59423,3}, {672,59429,3},{673,59429,3},{672,59434,3},{673,59436,3},{672,59443,3},{677,59446,3}, {680,59444,3},{682,59446,3},{678,59451,3},{678,59458,3},{677,59466,3},{683,59473,3}, {685,59483,3},{693,59493,3},{695,59496,3},{693,59499,3},{700,59501,3},{705,59508,3}, {712,59508,3},{718,59499,3},{717,59496,3},{720,59491,3},{718,59486,3},{712,59483,3}, {720,59474,3},{725,59473,3},{732,59478,3},{733,59478,3},{738,59474,3},{740,59471,3}, {743,59471,3},{745,59468,3},{753,59464,3},{757,59466,3},{757,59471,3},{763,59474,3}, {763,59478,3},{770,59479,3},{773,59478,3},{782,59484,3},{783,59501,3},{787,59503,3}, {793,59511,3},{797,59513,3},{798,59521,3},{802,59523,3},{803,59526,3},{803,59534,3}, {813,59538,3},{817,59538,3},{822,59541,3},{823,59553,3},{827,59556,3},{832,59554,3}, {853,59538,3},{852,59541,3},{840,59549,3},{837,59553,3},{832,59564,3},{828,59568,3}, {827,59574,3},{823,59576,3},{822,59583,3},{813,59593,3},{817,59589,3},{823,59583,3}, {825,59576,3},{835,59559,3},{840,59558,3},{842,59561,3},{837,59568,3},{833,59573,3}, {830,59578,3},{828,59581,3},{825,59586,3},{823,59591,3},{820,59596,3},{818,59599,3}, {815,59604,3},{812,59609,3},{810,59614,3},{807,59618,3},{803,59624,3},{798,59628,3}, {793,59634,3},{788,59638,3},{785,59641,3},{782,59646,3},{778,59649,3},{773,59656,3}, {770,59658,3},{767,59659,3},{762,59663,3},{760,59664,3},{763,59664,3},{762,59669,3}, {748,59678,3},{737,59688,3},{733,59689,3},{718,59688,3},{713,59689,3},{702,59688,3}, {693,59681,3},{678,59676,3},{672,59676,3},{670,59674,3},{655,59674,3},{650,59674,3}, {638,59668,3},{642,59673,3},{642,59676,3},{652,59679,3},{660,59679,3},{667,59681,3}, {673,59686,3},{682,59689,3},{687,59694,3},{690,59704,3},{687,59711,3},{682,59719,3}, {683,59721,3},{682,59731,3},{678,59738,3},{668,59746,3},{663,59753,3},{653,59764,3}, {648,59773,3},{643,59778,3},{627,59784,3},{628,59786,3},{633,59786,3},{633,59789,3}, {627,59803,3},{615,59816,3},{610,59818,3},{600,59819,3},{595,59823,3},{583,59821,3}, {577,59818,3},{568,59819,3},{560,59818,3},{548,59811,3},{538,59809,3},{535,59804,3}, {532,59803,3},{532,59808,3},{523,59808,3},{522,59811,3},{527,59809,3},{527,59813,3}, {517,59818,3},{513,59813,3},{517,59811,3},{518,59809,3},{517,59806,3},{507,59804,3}, {503,59808,3},{502,59808,3},{503,59803,3},{498,59794,3},{498,59788,3},{502,59784,3}, {500,59776,3},{502,59768,3},{497,59761,3},{493,59759,3},{493,59753,3},{483,59744,3}, {478,59744,3},{477,59748,3},{465,59753,3},{445,59744,3},{440,59741,3},{428,59741,3}, {422,59733,3},{417,59729,3},{400,59731,3},{397,59734,3},{390,59741,3},{382,59748,3}, {375,59751,3},{367,59753,3},{362,59763,3},{357,59764,3},{352,59771,3},{347,59773,3}, {338,59769,3},{337,59771,3},{335,59776,3},{335,59781,3},{337,59784,3},{333,59789,3}, {335,59793,3},{338,59794,3},{335,59801,3},{338,59806,3},{332,59808,3},{328,59806,3}, {325,59808,3},{318,59808,3},{317,59809,3},{313,59808,3},{313,59809,3},{313,59813,3}, {308,59811,3},{307,59814,3},{303,59816,3},{302,59813,3},{297,59813,3},{295,59818,3}, {290,59814,3},{285,59816,3},{282,59818,3},{283,59823,3},{277,59823,3},{277,59828,3}, {273,59826,3},{268,59829,3},{263,59829,3},{263,59834,3},{260,59833,3},{255,59836,3}, {252,59836,3},{250,59838,3},{252,59841,3},{247,59841,3},{243,59843,3},{240,59843,3}, {235,59848,3},{230,59848,3},{227,59853,3},{220,59854,3},{203,59868,3},{202,59879,3}, {197,59888,3},{195,59889,3},{192,59883,3},{190,59881,3},{193,59873,3},{192,59871,3}, {192,59864,3},{187,59858,3},{190,59848,3},{193,59846,3},{192,59839,3},{193,59834,3}, {195,59831,3},{202,59829,3},{202,59826,3},{195,59813,3},{198,59809,3},{198,59806,3}, {197,59803,3},{193,59799,3},{192,59794,3},{182,59791,3},{178,59788,3},{173,59786,3}, {170,59781,3},{170,59773,3},{172,59761,3},{167,59748,3},{163,59744,3},{167,59738,3}, {160,59739,3},{152,59736,3},{152,59723,3},{157,59719,3},{157,59713,3},{158,59706,3}, {160,59706,3},{160,59704,3},{155,59701,3},{153,59698,3},{148,59698,3},{145,59686,3}, {135,59689,3},{127,59686,3},{127,59684,3},{128,59681,3},{127,59679,3},{128,59666,3}, {122,59663,3},{118,59654,3},{120,59649,3},{123,59646,3},{127,59646,3},{130,59643,3}, {133,59636,3},{133,59628,3},{138,59611,3},{142,59608,3},{147,59608,3},{148,59604,3}, {152,59604,3},{153,59603,3},{152,59601,3},{155,59598,3},{157,59594,3},{162,59593,3}, {165,59588,3},{172,59584,3},{173,59581,3},{173,59573,3},{177,59569,3},{185,59573,3}, {187,59566,3},{185,59563,3},{187,59561,3},{190,59561,3},{192,59561,3},{197,59563,3}, {203,59563,3},{207,59561,3},{212,59564,3},{218,59563,3},{228,59563,3},{230,59556,3}, {237,59546,3},{238,59546,3},{240,59548,3},{245,59546,3},{255,59543,3},{257,59543,3}, {260,59539,3},{262,59541,3},{268,59538,3},{282,59538,3},{298,59541,3},{303,59539,3}, {310,59543,3},{313,59546,3},{315,59544,3},{317,59546,3},{320,59546,3},{323,59548,3}, {325,59548,3},{333,59553,3},{335,59553,3},{337,59554,3},{340,59554,3},{343,59554,3}, {343,59553,3},{348,59554,3},{357,59551,3},{360,59551,3},{363,59559,3},{370,59569,3}, {377,59569,3},{378,59573,3},{378,59576,3},{382,59578,3},{385,59578,3},{390,59578,3}, {393,59584,3},{395,59584,3},{397,59578,3},{400,59578,3},{408,59571,3},{415,59573,3}, {417,59566,3},{422,59563,3},{423,59563,3},{427,59564,3},{430,59563,3},{435,59568,3}, {438,59569,3},{440,59566,3},{447,59556,3},{445,59554,3},{447,59551,3},{448,59551,3}, {448,59549,3},{447,59546,3},{450,59543,3},{452,59539,3},{450,59539,3},{450,59531,3}, {452,59529,3},{453,59528,3},{452,59526,3},{450,59526,3},{452,59521,3},{457,59521,3}, {458,59523,3},{460,59524,3},{460,59528,3},{467,59529,3},{470,59533,3},{480,59534,3}, {483,59536,3},{490,59536,3},{505,59539,3},{510,59539,3},{513,59531,3},{517,59528,3}, {520,59526,3},{525,59524,3},{523,59519,3},{527,59518,3},{527,59516,3},{525,59511,3}, {520,59506,3},{520,59499,3},{522,59496,3},{518,59491,3},{520,59491,3},{520,59486,3}, {518,59481,3},{522,59476,3},{522,59468,3},{520,59463,3},{122,58849,131}, {128,58846,3},{133,58848,3},{135,58848,3},{143,58843,3},{148,58843,3},{158,58838,3}, {170,58838,3},{193,58828,3},{198,58823,3},{203,58824,3},{210,58824,3},{212,58824,3}, {213,58819,3},{223,58814,3},{228,58814,3},{233,58819,3},{240,58816,3},{247,58804,3}, {252,58803,3},{263,58788,3},{268,58786,3},{268,58779,3},{278,58776,3},{280,58773,3}, {280,58766,3},{283,58761,3},{282,58753,3},{278,58751,3},{280,58751,3},{287,58751,3}, {325,58793,3},{327,58798,3},{330,58799,3},{332,58803,3},{340,58808,3},{345,58806,3}, {350,58798,3},{365,58793,3},{372,58788,3},{373,58786,3},{373,58778,3},{377,58774,3}, {380,58773,3},{383,58773,3},{393,58768,3},{402,58768,3},{413,58761,3},{417,58758,3}, {423,58756,3},{430,58756,3},{435,58758,3},{440,58756,3},{443,58758,3},{445,58754,3}, {448,58754,3},{452,58749,3},{455,58748,3},{455,58749,3},{467,58751,3},{473,58754,3}, {483,58754,3},{488,58753,3},{493,58754,3},{497,58756,3},{503,58756,3},{505,58758,3}, {512,58753,3},{522,58754,3},{530,58751,3},{538,58756,3},{548,58771,3},{552,58773,3}, {553,58774,3},{558,58773,3},{568,58771,3},{578,58774,3},{588,58783,3},{600,58794,3}, {603,58793,3},{608,58788,3},{612,58788,3},{615,58788,3},{620,58791,3},{620,58788,3}, {627,58779,3},{628,58773,3},{632,58754,3},{627,58746,3},{623,58744,3},{622,58739,3}, {620,58733,3},{622,58721,3},{618,58711,3},{617,58704,3},{618,58691,3},{617,58683,3}, {617,58678,3},{613,58673,3},{618,58653,3},{618,58648,3},{622,58631,3},{620,58626,3}, {610,58618,3},{608,58611,3},{612,58606,3},{615,58604,3},{612,58593,3},{698,58524,3}, {697,58514,3},{695,58509,3},{695,58504,3},{702,58493,3},{702,58484,3},{705,58481,3}, {708,58479,3},{707,58474,3},{708,58468,3},{710,58466,3},{710,58461,3},{710,58459,3}, {708,58458,3},{708,58448,3},{707,58446,3},{705,58446,3},{702,58441,3},{700,58436,3}, {698,58433,3},{700,58423,3},{697,58418,3},{698,58416,3},{698,58409,3},{702,58409,3}, {703,58408,3},{702,58403,3},{703,58396,3},{702,58391,3},{703,58389,3},{703,58388,3}, {703,58386,3},{702,58383,3},{705,58381,3},{703,58378,3},{705,58376,3},{707,58371,3}, {705,58369,3},{703,58369,3},{705,58366,3},{703,58359,3},{700,58359,3},{702,58356,3}, {698,58354,3},{698,58349,3},{702,58343,3},{702,58336,3},{705,58333,3},{707,58329,3}, {718,58323,3},{727,58319,3},{733,58321,3},{737,58318,3},{738,58318,3},{740,58314,3}, {738,58309,3},{740,58296,3},{748,58289,3},{752,58289,3},{757,58291,3},{765,58289,3}, {775,58289,3},{783,58291,3},{790,58291,3},{795,58288,3},{798,58293,3},{803,58296,3}, {805,58303,3},{810,58303,3},{825,58298,3},{832,58299,3},{837,58298,3},{840,58293,3}, {863,58269,3},{907,58258,3},{908,58256,3},{912,58259,3},{915,58254,3},{913,58248,3}, {912,58248,3},{910,58241,3},{915,58239,3},{920,58241,3},{923,58238,3},{927,58238,3}, {930,58236,3},{918,58216,3},{917,58199,3},{918,58198,3},{922,58199,3},{923,58203,3}, {928,58206,3},{935,58208,3},{940,58211,3},{943,58214,3},{953,58219,3},{958,58226,3}, {967,58229,3},{973,58234,3},{978,58236,3},{983,58239,3},{992,58238,3},{995,58239,3}, {1000,58238,3},{1012,58243,3},{1022,58244,3},{1045,58246,3},{1050,58251,3}, {1055,58253,3},{1065,58259,3},{1087,58269,3},{1090,58274,3},{1095,58279,3}, {1103,58283,3},{1108,58286,3},{1112,58286,3},{1115,58298,3},{1117,58304,3}, {1115,58309,3},{1167,58338,3},{1170,58359,3},{1175,58369,3},{1182,58396,3}, {1185,58399,3},{1185,58404,3},{1182,58403,3},{1178,58403,3},{1177,58399,3}, {1175,58398,3},{1175,58394,3},{1172,58388,3},{1167,58364,3},{1160,58341,3}, {1158,58339,3},{1155,58339,3},{1140,58341,3},{1120,58351,3},{1108,58361,3}, {1105,58369,3},{1102,58374,3},{1100,58373,3},{1098,58369,3},{1102,58368,3}, {1103,58363,3},{1102,58359,3},{1097,58364,3},{1090,58364,3},{1078,58369,3}, {1072,58378,3},{1067,58378,3},{1063,58376,3},{1058,58376,3},{1052,58373,3}, {1045,58374,3},{1043,58371,3},{1035,58358,3},{1022,58353,3},{1013,58346,3}, {1012,58341,3},{1008,58338,3},{1000,58334,3},{990,58329,3},{982,58323,3}, {973,58328,3},{962,58338,3},{957,58339,3},{955,58341,3},{953,58341,3},{957,58339,3}, {960,58338,3},{958,58338,3},{957,58334,3},{957,58338,3},{950,58339,3},{948,58338,3}, {952,58334,3},{948,58334,3},{947,58338,3},{950,58343,3},{947,58344,3},{950,58344,3}, {947,58346,3},{945,58351,3},{943,58353,3},{943,58346,3},{938,58346,3},{942,58348,3}, {942,58354,3},{938,58358,3},{937,58361,3},{938,58363,3},{937,58363,3},{935,58364,3}, {933,58361,3},{932,58363,3},{928,58363,3},{928,58359,3},{927,58359,3},{925,58356,3}, {922,58354,3},{923,58356,3},{923,58359,3},{923,58361,3},{922,58361,3},{920,58363,3}, {920,58361,3},{917,58363,3},{912,58359,3},{910,58364,3},{908,58364,3},{907,58366,3}, {905,58373,3},{905,58386,3},{912,58406,3},{917,58413,3},{922,58414,3},{928,58421,3}, {932,58429,3},{935,58431,3},{940,58429,3},{948,58429,3},{953,58428,3},{960,58429,3}, {970,58431,3},{972,58433,3},{982,58428,3},{985,58429,3},{990,58426,3},{997,58419,3}, {998,58416,3},{1015,58409,3},{1023,58399,3},{1037,58393,3},{1042,58388,3}, {1047,58391,3},{1050,58389,3},{1053,58384,3},{1057,58381,3},{1060,58383,3}, {1063,58386,3},{1065,58383,3},{1073,58383,3},{1077,58383,3},{1077,58381,3}, {1080,58378,3},{1080,58393,3},{1088,58391,3},{1092,58394,3},{1092,58391,3}, {1097,58386,3},{1098,58394,3},{1097,58403,3},{1100,58411,3},{1120,58451,3}, {1123,58466,3},{1125,58484,3},{1128,58488,3},{1127,58484,3},{1130,58486,3}, {1130,58494,3},{1137,58508,3},{1135,58513,3},{1137,58518,3},{1142,58519,3}, {1142,58521,3},{1143,58523,3},{1147,58523,3},{1147,58519,3},{1148,58521,3}, {1147,58524,3},{1143,58526,3},{1145,58529,3},{1143,58533,3},{1147,58533,3}, {1148,58531,3},{1148,58534,3},{1148,58533,3},{1152,58531,3},{1152,58524,3}, {1153,58524,3},{1153,58526,3},{1157,58523,3},{1152,58533,3},{1152,58538,3}, {1148,58539,3},{1143,58548,3},{1143,58556,3},{1150,58563,3},{1168,58554,3}, {1167,58553,3},{1168,58549,3},{1167,58548,3},{1165,58543,3},{1165,58541,3}, {1167,58541,3},{1160,58519,3},{1160,58514,3},{1163,58513,3},{1168,58514,3}, {1175,58513,3},{1173,58516,3},{1177,58516,3},{1178,58513,3},{1177,58513,3}, {1185,58508,3},{1185,58506,3},{1198,58511,3},{1207,58516,3},{1212,58516,3}, {1212,58521,3},{1217,58528,3},{1220,58534,3},{1218,58538,3},{1217,58543,3}, {1207,58549,3},{1198,58554,3},{1193,58554,3},{1185,58554,3},{1167,58561,3}, {1155,58564,3},{1147,58573,3},{1145,58578,3},{1148,58581,3},{1150,58584,3}, {1148,58599,3},{1153,58608,3},{1148,58624,3},{1145,58631,3},{1145,58651,3}, {1137,58663,3},{1135,58669,3},{1130,58674,3},{1125,58684,3},{1120,58688,3}, {1118,58694,3},{1120,58696,3},{1118,58698,3},{1115,58696,3},{1112,58698,3}, {1105,58703,3},{1092,58709,3},{1090,58708,3},{1093,58706,3},{1093,58703,3}, {1093,58699,3},{1092,58699,3},{1092,58704,3},{1088,58713,3},{1087,58711,3}, {1085,58706,3},{1083,58703,3},{1077,58703,3},{1068,58706,3},{1058,58711,3}, {1050,58719,3},{1048,58724,3},{1048,58736,3},{1045,58743,3},{1047,58749,3}, {1045,58749,3},{1048,58753,3},{1050,58756,3},{1050,58769,3},{1052,58778,3}, {1053,58781,3},{1055,58818,3},{1062,58834,3},{1060,58843,3},{1062,58851,3}, {1063,58889,3},{1060,58901,3},{1065,58906,3},{1065,58913,3},{1058,58926,3}, {1058,58931,3},{1055,58929,3},{1053,58924,3},{1050,58924,3},{1043,58929,3}, {1032,58948,3},{1032,58943,3},{1028,58943,3},{1028,58948,3},{1025,58949,3}, {1023,58954,3},{1022,58964,3},{1028,58949,3},{1030,58949,3},{1018,58978,3}, {1013,58994,3},{1010,59016,3},{1005,59028,3},{1008,59019,3},{1007,59019,3}, {1003,59028,3},{1010,59041,3},{1008,59053,3},{1010,59063,3},{1020,59066,3}, {1022,59064,3},{1020,59068,3},{1018,59066,3},{1018,59069,3},{1018,59071,3}, {1020,59069,3},{1023,59073,3},{1027,59078,3},{1023,59078,3},{1025,59081,3}, {1023,59081,3},{1025,59083,3},{1023,59088,3},{1027,59091,3},{1028,59096,3}, {1030,59099,3},{1032,59098,3},{1032,59091,3},{1033,59089,3},{1032,59094,3}, {1033,59098,3},{1037,59098,3},{1037,59096,3},{1038,59099,3},{1037,59099,3}, {1033,59099,3},{1033,59101,3},{1038,59103,3},{1042,59113,3},{1047,59116,3}, {1048,59124,3},{1043,59131,3},{1045,59143,3},{1043,59148,3},{1043,59154,3}, {1048,59169,3},{1050,59171,3},{1048,59166,3},{1050,59163,3},{1055,59151,3}, {1057,59133,3},{1058,59133,3},{1057,59126,3},{1057,59119,3},{1052,59113,3}, {1062,59106,3},{1067,59109,3},{1063,59113,3},{1063,59118,3},{1062,59123,3}, {1065,59131,3},{1063,59133,3},{1063,59144,3},{1065,59151,3},{1072,59154,3}, {1067,59159,3},{1063,59183,3},{1063,59186,3},{1065,59186,3},{1067,59189,3}, {1065,59191,3},{1067,59193,3},{1067,59196,3},{1070,59198,3},{1068,59201,3}, {1068,59204,3},{1067,59208,3},{1068,59211,3},{1072,59219,3},{1073,59219,3}, {1070,59223,3},{1072,59236,3},{1070,59246,3},{1073,59261,3},{1077,59266,3}, {1075,59268,3},{1070,59314,3},{1068,59319,3},{1072,59326,3},{1070,59328,3}, {1072,59333,3},{1072,59336,3},{1073,59338,3},{1072,59339,3},{1073,59341,3}, {1072,59343,3},{1075,59351,3},{1073,59351,3},{1072,59348,3},{1068,59348,3}, {1068,59346,3},{1067,59344,3},{1065,59341,3},{1065,59334,3},{1063,59333,3}, {1065,59329,3},{1063,59328,3},{1063,59311,3},{1053,59303,3},{1053,59284,3}, {1057,59269,3},{1053,59244,3},{1045,59236,3},{1048,59243,3},{1052,59244,3}, {1052,59251,3},{1050,59253,3},{1040,59253,3},{1038,59249,3},{1042,59243,3}, {1040,59236,3},{1040,59238,3},{1035,59241,3},{1032,59236,3},{1030,59239,3}, {1027,59236,3},{1028,59243,3},{1030,59243,3},{1033,59241,3},{1040,59241,3}, {1040,59243,3},{1037,59248,3},{1040,59258,3},{1037,59263,3},{1035,59263,3}, {1028,59269,3},{1020,59269,3},{1012,59274,3},{1008,59271,3},{1007,59264,3}, {1008,59259,3},{1003,59254,3},{1008,59251,3},{1007,59248,3},{1010,59246,3}, {1010,59244,3},{1008,59243,3},{1010,59239,3},{1008,59238,3},{1010,59234,3}, {1007,59238,3},{1008,59241,3},{1000,59243,3},{1000,59244,3},{1005,59243,3}, {1008,59244,3},{1005,59244,3},{1005,59251,3},{1003,59253,3},{1003,59256,3}, {1000,59254,3},{998,59256,3},{1002,59258,3},{1005,59258,3},{1007,59259,3}, {1005,59263,3},{1005,59266,3},{1008,59274,3},{1013,59276,3},{1020,59274,3}, {1022,59274,3},{1023,59278,3},{1017,59286,3},{1007,59289,3},{997,59294,3}, {993,59291,3},{993,59294,3},{987,59299,3},{977,59304,3},{973,59303,3},{970,59304,3}, {975,59308,3},{985,59313,3},{992,59311,3},{997,59311,3},{992,59314,3},{985,59318,3}, {977,59318,3},{972,59319,3},{963,59314,3},{965,59318,3},{970,59321,3},{987,59319,3}, {992,59318,3},{993,59318,3},{992,59324,3},{988,59326,3},{987,59334,3},{988,59331,3}, {990,59328,3},{993,59324,3},{993,59316,3},{995,59313,3},{1000,59314,3}, {1002,59319,3},{998,59328,3},{995,59334,3},{980,59353,3},{973,59354,3}, {965,59353,3},{972,59356,3},{975,59356,3},{975,59359,3},{970,59361,3},{960,59363,3}, {970,59363,3},{977,59359,3},{977,59356,3},{983,59354,3},{983,59359,3},{978,59376,3}, {980,59379,3},{985,59374,3},{987,59374,3},{988,59371,3},{990,59374,3},{982,59388,3}, {978,59391,3},{972,59394,3},{968,59398,3},{967,59401,3},{963,59403,3},{958,59414,3}, {958,59416,3},{960,59416,3},{958,59421,3},{958,59431,3},{953,59441,3},{952,59441,3}, {953,59439,3},{948,59439,3},{948,59446,3},{943,59451,3},{938,59456,3},{930,59458,3}, {930,59456,3},{932,59454,3},{927,59454,3},{923,59444,3},{918,59438,3},{910,59428,3}, {905,59424,3},{903,59426,3},{908,59429,3},{917,59438,3},{917,59441,3},{912,59438,3}, {905,59436,3},{900,59428,3},{897,59426,3},{888,59424,3},{883,59424,3},{873,59418,3}, {862,59416,3},{860,59414,3},{858,59409,3},{862,59398,3},{858,59383,3},{863,59376,3}, {863,59371,3},{858,59369,3},{857,59374,3},{853,59386,3},{850,59388,3},{848,59393,3}, {848,59401,3},{843,59403,3},{840,59408,3},{850,59419,3},{850,59433,3},{847,59433,3}, {845,59428,3},{842,59428,3},{840,59429,3},{845,59429,3},{847,59434,3},{853,59438,3}, {857,59438,3},{858,59459,3},{860,59464,3},{860,59468,3},{855,59473,3},{855,59483,3}, {853,59489,3},{855,59491,3},{858,59494,3},{863,59496,3},{863,59499,3},{862,59516,3}, {853,59538,3},{832,59554,3},{827,59556,3},{823,59553,3},{822,59541,3},{817,59538,3}, {813,59538,3},{803,59534,3},{803,59526,3},{802,59523,3},{798,59521,3},{797,59513,3}, {793,59511,3},{787,59503,3},{783,59501,3},{782,59484,3},{773,59478,3},{770,59479,3}, {763,59478,3},{763,59474,3},{757,59471,3},{757,59466,3},{753,59464,3},{745,59468,3}, {743,59471,3},{740,59471,3},{738,59474,3},{733,59478,3},{732,59478,3},{725,59473,3}, {720,59474,3},{712,59483,3},{718,59486,3},{720,59491,3},{717,59496,3},{718,59499,3}, {712,59508,3},{705,59508,3},{700,59501,3},{693,59499,3},{695,59496,3},{693,59493,3}, {685,59483,3},{683,59473,3},{677,59466,3},{678,59458,3},{678,59451,3},{682,59446,3}, {680,59444,3},{677,59446,3},{672,59443,3},{673,59436,3},{672,59434,3},{673,59429,3}, {672,59429,3},{672,59423,3},{667,59419,3},{663,59419,3},{657,59416,3},{655,59418,3}, {653,59416,3},{652,59419,3},{643,59423,3},{633,59421,3},{630,59423,3},{627,59426,3}, {623,59424,3},{618,59424,3},{618,59419,3},{613,59416,3},{612,59409,3},{598,59403,3}, {595,59398,3},{520,59463,3},{518,59471,3},{498,59478,3},{495,59478,3},{483,59471,3}, {477,59463,3},{472,59453,3},{472,59448,3},{465,59444,3},{458,59443,3},{452,59438,3}, {450,59421,3},{452,59414,3},{453,59406,3},{452,59404,3},{447,59408,3},{445,59408,3}, {442,59401,3},{443,59393,3},{440,59386,3},{437,59384,3},{432,59384,3},{427,59384,3}, {425,59381,3},{425,59378,3},{423,59374,3},{425,59371,3},{427,59366,3},{425,59361,3}, {418,59354,3},{417,59351,3},{415,59344,3},{417,59336,3},{415,59331,3},{410,59326,3}, {410,59321,3},{418,59298,3},{418,59293,3},{418,59291,3},{415,59291,3},{412,59283,3}, {407,59283,3},{403,59281,3},{403,59279,3},{405,59269,3},{403,59261,3},{402,59259,3}, {397,59261,3},{390,59258,3},{378,59263,3},{368,59263,3},{360,59259,3},{360,59254,3}, {357,59251,3},{357,59248,3},{357,59244,3},{360,59238,3},{377,59223,3},{383,59214,3}, {390,59211,3},{397,59201,3},{397,59194,3},{388,59191,3},{387,59189,3},{385,59186,3}, {387,59183,3},{395,59176,3},{395,59171,3},{393,59158,3},{397,59153,3},{393,59144,3}, {390,59141,3},{388,59134,3},{390,59131,3},{403,59128,3},{412,59123,3},{415,59111,3}, {415,59099,3},{412,59078,3},{413,59076,3},{425,59071,3},{428,59064,3},{428,59056,3}, {420,59056,3},{415,59064,3},{400,59071,3},{392,59079,3},{387,59083,3},{378,59091,3}, {373,59104,3},{360,59118,3},{352,59118,3},{347,59114,3},{343,59113,3},{325,59116,3}, {312,59114,3},{307,59119,3},{300,59123,3},{292,59128,3},{287,59131,3},{280,59134,3}, {275,59136,3},{272,59138,3},{262,59136,3},{252,59131,3},{247,59133,3},{247,59139,3}, {242,59154,3},{245,59169,3},{242,59199,3},{240,59201,3},{237,59199,3},{227,59201,3}, {220,59196,3},{215,59196,3},{213,59183,3},{210,59176,3},{207,59173,3},{197,59158,3}, {198,59143,3},{195,59136,3},{188,59131,3},{180,59131,3},{175,59129,3},{168,59129,3}, {158,59124,3},{155,59118,3},{150,59114,3},{147,59108,3},{137,59101,3},{137,59099,3}, {140,59098,3},{143,59098,3},{147,59101,3},{150,59101,3},{152,59098,3},{143,59083,3}, {133,59078,3},{125,59063,3},{125,59059,3},{128,59054,3},{122,59048,3},{120,59041,3}, {117,59036,3},{113,59034,3},{115,59026,3},{113,59023,3},{110,59021,3},{97,59019,3}, {93,59018,3},{92,59004,3},{83,58998,3},{75,58996,3},{70,58993,3},{65,58984,3}, {67,58979,3},{73,58978,3},{83,58984,3},{90,58984,3},{95,58983,3},{98,58978,3}, {98,58963,3},{90,58949,3},{80,58939,3},{78,58929,3},{75,58926,3},{73,58923,3}, {75,58919,3},{77,58916,3},{75,58904,3},{122,58849,3},{143,57654,131},{148,57649,3}, {155,57651,3},{155,57648,3},{158,57643,3},{160,57633,3},{163,57631,3},{177,57641,3}, {178,57644,3},{182,57648,3},{183,57651,3},{182,57661,3},{180,57666,3},{182,57673,3}, {177,57674,3},{177,57678,3},{192,57681,3},{195,57676,3},{198,57678,3},{200,57678,3}, {202,57676,3},{203,57674,3},{200,57673,3},{200,57669,3},{207,57671,3},{208,57669,3}, {213,57669,3},{215,57671,3},{213,57669,3},{215,57668,3},{217,57669,3},{217,57668,3}, {220,57668,3},{225,57673,3},{227,57671,3},{228,57671,3},{235,57674,3},{235,57676,3}, {245,57679,3},{238,57681,3},{243,57683,3},{243,57689,3},{250,57691,3},{250,57694,3}, {243,57701,3},{255,57711,3},{255,57713,3},{252,57714,3},{253,57714,3},{253,57716,3}, {252,57718,3},{248,57724,3},{252,57728,3},{255,57728,3},{255,57731,3},{253,57734,3}, {252,57738,3},{257,57741,3},{258,57739,3},{260,57739,3},{262,57743,3},{265,57741,3}, {265,57743,3},{263,57744,3},{263,57748,3},{260,57746,3},{258,57746,3},{255,57751,3}, {257,57756,3},{260,57761,3},{267,57758,3},{267,57756,3},{268,57759,3},{268,57756,3}, {273,57756,3},{277,57754,3},{275,57758,3},{277,57759,3},{278,57763,3},{278,57758,3}, {280,57758,3},{282,57761,3},{280,57764,3},{278,57768,3},{282,57766,3},{282,57763,3}, {285,57764,3},{283,57768,3},{287,57771,3},{285,57773,3},{287,57773,3},{288,57769,3}, {287,57768,3},{287,57766,3},{288,57764,3},{292,57766,3},{293,57768,3},{288,57771,3}, {293,57774,3},{295,57773,3},{297,57773,3},{298,57774,3},{300,57771,3},{298,57769,3}, {298,57768,3},{300,57768,3},{297,57764,3},{305,57766,3},{303,57771,3},{305,57781,3}, {313,57784,3},{317,57783,3},{318,57784,3},{322,57786,3},{322,57789,3},{325,57789,3}, {325,57794,3},{330,57796,3},{332,57794,3},{333,57789,3},{337,57791,3},{335,57794,3}, {338,57798,3},{333,57801,3},{332,57804,3},{333,57804,3},{335,57801,3},{340,57799,3}, {342,57801,3},{340,57803,3},{345,57801,3},{347,57803,3},{352,57804,3},{348,57804,3}, {348,57808,3},{348,57809,3},{350,57808,3},{350,57809,3},{352,57806,3},{353,57809,3}, {353,57804,3},{355,57804,3},{355,57808,3},{355,57806,3},{357,57808,3},{357,57814,3}, {358,57813,3},{362,57816,3},{365,57818,3},{365,57819,3},{367,57821,3},{367,57824,3}, {367,57819,3},{370,57819,3},{370,57823,3},{372,57823,3},{372,57819,3},{370,57818,3}, {375,57816,3},{373,57819,3},{373,57823,3},{373,57821,3},{375,57819,3},{377,57824,3}, {380,57821,3},{382,57823,3},{380,57826,3},{382,57826,3},{383,57824,3},{385,57829,3}, {392,57833,3},{390,57828,3},{392,57828,3},{392,57824,3},{390,57824,3},{388,57823,3}, {385,57818,3},{383,57811,3},{387,57808,3},{388,57809,3},{390,57804,3},{395,57806,3}, {397,57806,3},{398,57809,3},{397,57809,3},{397,57814,3},{398,57813,3},{403,57816,3}, {407,57818,3},{407,57813,3},{410,57809,3},{407,57809,3},{405,57804,3},{398,57804,3}, {393,57801,3},{392,57799,3},{395,57798,3},{397,57799,3},{398,57794,3},{402,57793,3}, {403,57793,3},{405,57794,3},{407,57793,3},{413,57793,3},{418,57793,3},{418,57798,3}, {422,57803,3},{420,57804,3},{420,57806,3},{425,57813,3},{427,57809,3},{427,57803,3}, {433,57798,3},{440,57801,3},{445,57801,3},{447,57804,3},{447,57803,3},{455,57804,3}, {467,57804,3},{465,57806,3},{467,57808,3},{472,57804,3},{475,57804,3},{472,57811,3}, {480,57804,3},{482,57804,3},{482,57803,3},{487,57801,3},{508,57799,3},{517,57799,3}, {523,57801,3},{525,57799,3},{530,57799,3},{537,57798,3},{537,57796,3},{538,57796,3}, {540,57796,3},{540,57798,3},{543,57796,3},{545,57796,3},{547,57793,3},{550,57789,3}, {550,57788,3},{548,57784,3},{548,57781,3},{550,57781,3},{552,57783,3},{558,57786,3}, {560,57791,3},{562,57793,3},{562,57796,3},{560,57799,3},{562,57803,3},{565,57804,3}, {565,57806,3},{568,57809,3},{573,57811,3},{578,57811,3},{590,57806,3},{602,57801,3}, {600,57799,3},{605,57798,3},{618,57788,3},{623,57788,3},{630,57788,3},{625,57794,3}, {623,57794,3},{625,57796,3},{635,57799,3},{638,57796,3},{638,57801,3},{642,57801,3}, {643,57798,3},{647,57801,3},{657,57803,3},{663,57794,3},{668,57796,3},{672,57789,3}, {670,57786,3},{667,57784,3},{667,57783,3},{672,57783,3},{682,57778,3},{688,57768,3}, {685,57768,3},{688,57766,3},{693,57766,3},{697,57771,3},{705,57768,3},{707,57766,3}, {705,57766,3},{715,57758,3},{715,57754,3},{723,57748,3},{748,57754,3},{748,57761,3}, {752,57764,3},{755,57764,3},{763,57759,3},{772,57761,3},{768,57769,3},{765,57769,3}, {758,57774,3},{753,57776,3},{753,57779,3},{760,57786,3},{762,57793,3},{767,57798,3}, {770,57803,3},{773,57803,3},{778,57799,3},{785,57803,3},{790,57806,3},{793,57814,3}, {795,57821,3},{798,57818,3},{810,57814,3},{820,57809,3},{822,57806,3},{827,57806,3}, {827,57801,3},{828,57799,3},{840,57799,3},{845,57796,3},{847,57794,3},{847,57789,3}, {848,57788,3},{853,57789,3},{860,57794,3},{863,57793,3},{865,57799,3},{867,57799,3}, {867,57801,3},{863,57801,3},{858,57806,3},{852,57808,3},{847,57811,3},{842,57823,3}, {837,57824,3},{827,57833,3},{825,57838,3},{827,57841,3},{823,57841,3},{823,57839,3}, {820,57839,3},{818,57841,3},{820,57841,3},{818,57843,3},{818,57844,3},{817,57843,3}, {817,57841,3},{813,57841,3},{810,57846,3},{812,57848,3},{813,57846,3},{813,57853,3}, {810,57851,3},{810,57853,3},{808,57851,3},{805,57853,3},{805,57849,3},{803,57853,3}, {803,57844,3},{798,57843,3},{793,57844,3},{792,57849,3},{790,57854,3},{792,57861,3}, {797,57861,3},{798,57863,3},{808,57863,3},{810,57861,3},{808,57861,3},{818,57861,3}, {828,57858,3},{833,57859,3},{840,57859,3},{843,57856,3},{848,57854,3},{855,57843,3}, {853,57843,3},{855,57841,3},{862,57848,3},{868,57869,3},{875,57871,3},{878,57883,3}, {883,57886,3},{887,57893,3},{890,57893,3},{893,57904,3},{900,57909,3},{905,57909,3}, {907,57911,3},{912,57916,3},{923,57919,3},{927,57924,3},{930,57924,3},{933,57928,3}, {937,57934,3},{943,57943,3},{942,57944,3},{943,57956,3},{942,57956,3},{942,57953,3}, {940,57951,3},{940,57954,3},{938,57956,3},{942,57959,3},{942,57961,3},{942,57968,3}, {945,57973,3},{958,57978,3},{967,57976,3},{970,57973,3},{970,57964,3},{975,57969,3}, {980,57973,3},{988,57973,3},{995,57976,3},{1003,57978,3},{1013,57978,3}, {1013,57979,3},{1018,57983,3},{1023,57983,3},{1025,57981,3},{1015,57969,3}, {1013,57966,3},{1015,57964,3},{1022,57973,3},{1025,57974,3},{1027,57976,3}, {1030,57976,3},{1028,57978,3},{1030,57984,3},{1038,57984,3},{1038,57983,3}, {1042,57981,3},{1040,57979,3},{1043,57979,3},{1048,57986,3},{1043,57984,3}, {1043,57988,3},{1050,57988,3},{1050,57984,3},{1053,57986,3},{1057,57983,3}, {1060,57991,3},{1063,57991,3},{1063,57994,3},{1068,57996,3},{1072,58008,3}, {1073,58008,3},{1073,58011,3},{1072,58009,3},{1070,58011,3},{1072,58013,3}, {1075,58013,3},{1077,58013,3},{1075,58011,3},{1075,58009,3},{1080,58009,3}, {1080,58013,3},{1087,58023,3},{1090,58033,3},{1097,58034,3},{1108,58046,3}, {1110,58049,3},{1113,58049,3},{1110,58053,3},{1108,58061,3},{1100,58084,3}, {1098,58089,3},{1098,58098,3},{1100,58108,3},{1097,58103,3},{1097,58086,3}, {1090,58084,3},{1088,58088,3},{1085,58088,3},{1088,58084,3},{1087,58083,3}, {1088,58078,3},{1088,58076,3},{1083,58076,3},{1078,58076,3},{1078,58078,3}, {1083,58079,3},{1080,58081,3},{1075,58083,3},{1075,58086,3},{1078,58086,3}, {1077,58084,3},{1080,58084,3},{1083,58086,3},{1082,58089,3},{1075,58091,3}, {1075,58098,3},{1083,58103,3},{1085,58103,3},{1093,58108,3},{1097,58108,3}, {1108,58114,3},{1112,58113,3},{1123,58113,3},{1128,58116,3},{1132,58118,3}, {1132,58121,3},{1135,58121,3},{1132,58123,3},{1135,58126,3},{1133,58128,3}, {1135,58129,3},{1133,58131,3},{1135,58131,3},{1135,58134,3},{1130,58148,3}, {1127,58156,3},{1127,58159,3},{1127,58169,3},{1127,58198,3},{1130,58208,3}, {1135,58214,3},{1138,58216,3},{1142,58221,3},{1145,58226,3},{1152,58234,3}, {1157,58246,3},{1163,58253,3},{1170,58259,3},{1173,58273,3},{1175,58276,3}, {1175,58279,3},{1178,58284,3},{1178,58289,3},{1180,58294,3},{1183,58298,3}, {1188,58311,3},{1192,58313,3},{1210,58323,3},{1220,58321,3},{1222,58319,3}, {1223,58319,3},{1225,58323,3},{1225,58328,3},{1227,58339,3},{1225,58339,3}, {1218,58334,3},{1218,58336,3},{1215,58336,3},{1215,58341,3},{1217,58343,3}, {1218,58344,3},{1220,58349,3},{1228,58348,3},{1228,58343,3},{1227,58341,3}, {1228,58339,3},{1237,58349,3},{1237,58354,3},{1235,58353,3},{1232,58354,3}, {1233,58356,3},{1235,58361,3},{1238,58363,3},{1238,58361,3},{1242,58363,3}, {1240,58364,3},{1238,58364,3},{1237,58366,3},{1237,58368,3},{1240,58366,3}, {1242,58373,3},{1242,58368,3},{1243,58371,3},{1243,58366,3},{1245,58368,3}, {1242,58363,3},{1245,58364,3},{1247,58371,3},{1243,58378,3},{1245,58379,3}, {1243,58388,3},{1238,58393,3},{1238,58398,3},{1233,58411,3},{1230,58414,3}, {1227,58414,3},{1210,58424,3},{1202,58424,3},{1198,58419,3},{1192,58406,3}, {1185,58404,3},{1185,58399,3},{1182,58396,3},{1175,58369,3},{1170,58359,3}, {1167,58338,3},{1115,58309,3},{1117,58304,3},{1115,58298,3},{1112,58286,3}, {1108,58286,3},{1103,58283,3},{1095,58279,3},{1090,58274,3},{1087,58269,3}, {1065,58259,3},{1055,58253,3},{1050,58251,3},{1045,58246,3},{1022,58244,3}, {1012,58243,3},{1000,58238,3},{995,58239,3},{992,58238,3},{983,58239,3}, {978,58236,3},{973,58234,3},{967,58229,3},{958,58226,3},{953,58219,3},{943,58214,3}, {940,58211,3},{935,58208,3},{928,58206,3},{923,58203,3},{922,58199,3},{918,58198,3}, {917,58199,3},{918,58216,3},{930,58236,3},{927,58238,3},{923,58238,3},{920,58241,3}, {915,58239,3},{910,58241,3},{912,58248,3},{913,58248,3},{915,58254,3},{912,58259,3}, {908,58256,3},{907,58258,3},{863,58269,3},{840,58293,3},{837,58298,3},{832,58299,3}, {825,58298,3},{810,58303,3},{805,58303,3},{803,58296,3},{798,58293,3},{795,58288,3}, {790,58291,3},{783,58291,3},{775,58289,3},{765,58289,3},{757,58291,3},{752,58289,3}, {748,58289,3},{740,58296,3},{738,58309,3},{740,58314,3},{738,58318,3},{737,58318,3}, {733,58321,3},{727,58319,3},{718,58323,3},{707,58329,3},{705,58333,3},{702,58336,3}, {702,58343,3},{698,58349,3},{698,58354,3},{702,58356,3},{700,58359,3},{703,58359,3}, {705,58366,3},{703,58369,3},{705,58369,3},{707,58371,3},{705,58376,3},{703,58378,3}, {705,58381,3},{702,58383,3},{703,58386,3},{703,58388,3},{703,58389,3},{702,58391,3}, {703,58396,3},{702,58403,3},{703,58408,3},{702,58409,3},{698,58409,3},{698,58416,3}, {697,58418,3},{700,58423,3},{698,58433,3},{700,58436,3},{702,58441,3},{705,58446,3}, {707,58446,3},{708,58448,3},{708,58458,3},{710,58459,3},{710,58461,3},{710,58466,3}, {708,58468,3},{707,58474,3},{708,58479,3},{705,58481,3},{702,58484,3},{702,58493,3}, {695,58504,3},{695,58509,3},{697,58514,3},{698,58524,3},{612,58593,3},{615,58604,3}, {612,58606,3},{608,58611,3},{610,58618,3},{620,58626,3},{622,58631,3},{618,58648,3}, {618,58653,3},{613,58673,3},{617,58678,3},{617,58683,3},{618,58691,3},{617,58704,3}, {618,58711,3},{622,58721,3},{620,58733,3},{622,58739,3},{623,58744,3},{627,58746,3}, {632,58754,3},{628,58773,3},{627,58779,3},{620,58788,3},{620,58791,3},{615,58788,3}, {612,58788,3},{608,58788,3},{603,58793,3},{600,58794,3},{588,58783,3},{578,58774,3}, {568,58771,3},{558,58773,3},{553,58774,3},{552,58773,3},{548,58771,3},{538,58756,3}, {530,58751,3},{522,58754,3},{512,58753,3},{505,58758,3},{503,58756,3},{497,58756,3}, {493,58754,3},{488,58753,3},{483,58754,3},{473,58754,3},{467,58751,3},{455,58749,3}, {455,58748,3},{452,58749,3},{448,58754,3},{445,58754,3},{443,58758,3},{440,58756,3}, {435,58758,3},{430,58756,3},{423,58756,3},{417,58758,3},{413,58761,3},{402,58768,3}, {393,58768,3},{383,58773,3},{380,58773,3},{377,58774,3},{373,58778,3},{373,58786,3}, {372,58788,3},{365,58793,3},{350,58798,3},{345,58806,3},{340,58808,3},{332,58803,3}, {330,58799,3},{327,58798,3},{325,58793,3},{287,58751,3},{280,58751,3},{278,58751,3}, {282,58753,3},{283,58761,3},{280,58766,3},{280,58773,3},{278,58776,3},{268,58779,3}, {268,58786,3},{263,58788,3},{252,58803,3},{247,58804,3},{240,58816,3},{233,58819,3}, {228,58814,3},{223,58814,3},{213,58819,3},{212,58824,3},{210,58824,3},{203,58824,3}, {198,58823,3},{193,58828,3},{170,58838,3},{158,58838,3},{148,58843,3},{143,58843,3}, {135,58848,3},{133,58848,3},{128,58846,3},{122,58849,3},{117,58828,3},{128,58828,3}, {152,58831,3},{162,58829,3},{172,58826,3},{182,58819,3},{195,58809,3},{212,58803,3}, {215,58794,3},{212,58789,3},{210,58784,3},{200,58771,3},{192,58768,3},{180,58758,3}, {175,58749,3},{175,58744,3},{175,58739,3},{177,58736,3},{187,58729,3},{193,58728,3}, {197,58724,3},{197,58719,3},{202,58718,3},{197,58716,3},{192,58713,3},{187,58711,3}, {183,58708,3},{182,58709,3},{182,58713,3},{178,58713,3},{177,58718,3},{173,58718,3}, {172,58721,3},{173,58598,3},{175,58596,3},{178,58581,3},{173,58573,3},{175,58564,3}, {172,58559,3},{170,58556,3},{172,58551,3},{107,58551,3},{107,58554,3},{110,58559,3}, {108,58564,3},{107,58564,3},{108,58576,3},{107,58579,3},{107,58591,3},{103,58593,3}, {103,58594,3},{107,58601,3},{103,58609,3},{100,58614,3},{95,58614,3},{95,58616,3}, {90,58616,3},{87,58623,3},{85,58619,3},{77,58621,3},{72,58618,3},{70,58621,3}, {65,58624,3},{63,58623,3},{65,58618,3},{62,58616,3},{62,58608,3},{67,58606,3}, {63,58601,3},{73,58589,3},{72,58583,3},{70,58581,3},{70,58579,3},{65,58576,3}, {68,58568,3},{67,58564,3},{63,58563,3},{63,58561,3},{60,58556,3},{60,58544,3}, {58,58543,3},{60,58538,3},{57,58534,3},{58,58531,3},{57,58531,3},{52,58531,3}, {47,58531,3},{42,58531,3},{35,58531,3},{30,58531,3},{25,58531,3},{18,58531,3}, {13,58531,3},{8,58531,3},{3,58531,3},{65533,58531,3},{65528,58531,3},{65521,58531,3}, {65513,58536,3},{65511,58539,3},{65504,58543,3},{65503,58551,3},{65499,58553,3}, {65496,58558,3},{65491,58561,3},{65486,58573,3},{65484,58576,3},{65476,58576,3}, {65473,58579,3},{65463,58574,3},{65461,58574,3},{65456,58579,3},{65453,58579,3}, {65449,58579,3},{65449,58583,3},{65444,58583,3},{65439,58589,3},{65438,58589,3}, {65436,58593,3},{65428,58593,3},{65418,58598,3},{65411,58598,3},{65401,58598,3}, {65396,58596,3},{65394,58593,3},{65386,58589,3},{65383,58591,3},{65376,58589,3}, {65371,58589,3},{65366,58588,3},{65361,58586,3},{65354,58586,3},{65349,58584,3}, {65344,58584,3},{65338,58583,3},{65333,58581,3},{65328,58581,3},{65323,58579,3}, {65316,58579,3},{65311,58578,3},{65306,58576,3},{65299,58576,3},{65294,58574,3}, {65289,58574,3},{65284,58573,3},{65278,58571,3},{65273,58571,3},{65268,58569,3}, {65263,58569,3},{65256,58568,3},{65251,58568,3},{65246,58566,3},{65239,58564,3}, {65234,58564,3},{65229,58563,3},{65224,58563,3},{65218,58561,3},{65213,58559,3}, {65208,58559,3},{65201,58558,3},{65196,58558,3},{65191,58556,3},{65186,58554,3}, {65179,58554,3},{65174,58553,3},{65169,58553,3},{65163,58551,3},{65158,58551,3}, {65153,58549,3},{65146,58548,3},{65141,58548,3},{65136,58546,3},{65131,58544,3}, {65124,58544,3},{65119,58543,3},{65114,58541,3},{65126,58528,3},{65129,58523,3}, {65143,58518,3},{65149,58513,3},{65156,58504,3},{65158,58499,3},{65149,58484,3}, {65153,58478,3},{65153,58474,3},{65158,58468,3},{65158,58464,3},{65264,58531,3}, {65266,58528,3},{65273,58526,3},{65273,58524,3},{65269,58521,3},{65274,58519,3}, {65274,58511,3},{65281,58509,3},{65283,58506,3},{65281,58503,3},{65279,58499,3}, {65283,58499,3},{65286,58501,3},{65288,58501,3},{65288,58498,3},{65286,58491,3}, {65291,58488,3},{65291,58483,3},{65296,58478,3},{65291,58476,3},{65291,58471,3}, {65296,58469,3},{65298,58466,3},{65303,58466,3},{65308,58453,3},{65314,58446,3}, {65314,58441,3},{65316,58434,3},{65314,58433,3},{65309,58434,3},{65309,58433,3}, {65311,58429,3},{65311,58423,3},{65309,58421,3},{65304,58419,3},{65301,58416,3}, {65303,58411,3},{65301,58406,3},{65303,58404,3},{65298,58394,3},{65299,58393,3}, {65303,58394,3},{65309,58391,3},{65311,58388,3},{65304,58388,3},{65304,58386,3}, {65306,58384,3},{65313,58383,3},{65314,58376,3},{65318,58373,3},{65319,58368,3}, {65318,58363,3},{65323,58363,3},{65318,58353,3},{65311,58348,3},{65308,58343,3}, {65303,58341,3},{65304,58329,3},{65301,58326,3},{65294,58319,3},{65296,58309,3}, {65294,58308,3},{65293,58308,3},{65291,58298,3},{65291,58294,3},{65294,58293,3}, {65298,58281,3},{65303,58271,3},{65293,58264,3},{65299,58263,3},{65296,58259,3}, {65298,58256,3},{65294,58246,3},{65293,58243,3},{65303,58238,3},{65303,58234,3}, {65306,58231,3},{65303,58229,3},{65301,58228,3},{65304,58226,3},{65304,58221,3}, {65309,58219,3},{65314,58216,3},{65318,58216,3},{65323,58221,3},{65328,58224,3}, {65339,58219,3},{65346,58219,3},{65353,58218,3},{65358,58216,3},{65361,58211,3}, {65358,58209,3},{65359,58204,3},{65356,58201,3},{65359,58196,3},{65359,58193,3}, {65363,58189,3},{65368,58183,3},{65374,58183,3},{65379,58188,3},{65388,58186,3}, {65394,58178,3},{65398,58179,3},{65401,58178,3},{65404,58178,3},{65406,58174,3}, {65409,58173,3},{65414,58163,3},{65418,58159,3},{65414,58158,3},{65413,58156,3}, {65414,58151,3},{65418,58146,3},{65424,58143,3},{65424,58139,3},{65426,58138,3}, {65428,58139,3},{65429,58138,3},{65426,58134,3},{65428,58133,3},{65436,58129,3}, {65433,58126,3},{65436,58118,3},{65436,58113,3},{65439,58109,3},{65446,58106,3}, {65449,58101,3},{65451,58101,3},{65451,58106,3},{65453,58108,3},{65454,58106,3}, {65458,58104,3},{65459,58101,3},{65463,58098,3},{65466,58098,3},{65468,58099,3}, {65471,58098,3},{65474,58098,3},{65481,58094,3},{65483,58091,3},{65486,58089,3}, {65489,58083,3},{65501,58073,3},{65499,58068,3},{65503,58064,3},{65504,58058,3}, {65509,58061,3},{65519,58054,3},{65519,58053,3},{65516,58051,3},{65513,58048,3}, {65516,58041,3},{65521,58036,3},{65523,58031,3},{65529,58024,3},{65533,58014,3}, {65526,58011,3},{65526,58008,3},{65529,57993,3},{8,57973,3},{7,57961,3}, {8,57956,3},{13,57951,3},{18,57943,3},{35,57931,3},{37,57929,3},{35,57924,3}, {38,57924,3},{40,57921,3},{40,57914,3},{45,57906,3},{45,57904,3},{42,57901,3}, {40,57896,3},{25,57896,3},{23,57884,3},{25,57879,3},{23,57874,3},{27,57868,3}, {28,57859,3},{25,57858,3},{27,57853,3},{23,57848,3},{27,57838,3},{27,57831,3}, {28,57826,3},{32,57826,3},{38,57821,3},{35,57809,3},{38,57799,3},{42,57793,3}, {47,57793,3},{53,57791,3},{62,57793,3},{65,57791,3},{65,57789,3},{67,57788,3}, {65,57783,3},{72,57771,3},{75,57769,3},{82,57771,3},{85,57768,3},{85,57764,3}, {82,57756,3},{82,57751,3},{83,57746,3},{88,57744,3},{87,57741,3},{90,57736,3}, {92,57726,3},{100,57714,3},{103,57713,3},{107,57701,3},{120,57689,3},{122,57683,3}, {120,57679,3},{123,57679,3},{123,57676,3},{127,57676,3},{127,57673,3},{128,57668,3}, {133,57666,3},{143,57654,3},{63701,58496,131},{63711,58484,3},{63716,58471,3}, {63726,58463,3},{63733,58454,3},{63733,58449,3},{63741,58444,3},{63744,58441,3}, {63748,58434,3},{63749,58428,3},{63751,58426,3},{63756,58419,3},{63759,58416,3}, {63764,58406,3},{63766,58398,3},{63773,58401,3},{63796,58396,3},{63803,58388,3}, {63806,58386,3},{63808,58383,3},{63808,58378,3},{63814,58369,3},{63818,58353,3}, {63821,58348,3},{63826,58344,3},{63831,58338,3},{63833,58331,3},{63834,58324,3}, {63838,58323,3},{63841,58319,3},{63846,58313,3},{63848,58306,3},{63853,58306,3}, {63859,58299,3},{63861,58294,3},{63868,58286,3},{63869,58276,3},{63871,58263,3}, {63873,58258,3},{63881,58246,3},{63883,58239,3},{63891,58223,3},{63894,58218,3}, {63896,58216,3},{63894,58213,3},{63896,58206,3},{63903,58204,3},{63908,58193,3}, {63913,58174,3},{63913,58166,3},{63918,58161,3},{63919,58153,3},{63933,58138,3}, {63934,58133,3},{63941,58131,3},{63946,58119,3},{63948,58111,3},{63951,58108,3}, {63951,58101,3},{63956,58093,3},{63964,58088,3},{63971,58069,3},{63976,58063,3}, {63979,58051,3},{63986,58044,3},{63986,58038,3},{63989,58036,3},{63991,58034,3}, {63989,58031,3},{63994,58026,3},{63996,58021,3},{63999,58016,3},{64001,58016,3}, {64003,58019,3},{64004,58021,3},{64006,58018,3},{64008,58013,3},{64009,58009,3}, {64013,58014,3},{64018,58009,3},{64021,58006,3},{64021,57999,3},{64023,57998,3}, {64034,57993,3},{64039,57986,3},{64043,57986,3},{64046,57983,3},{64059,57958,3}, {64064,57951,3},{64068,57949,3},{64069,57943,3},{64079,57941,3},{64083,57936,3}, {64089,57938,3},{64093,57931,3},{64098,57928,3},{64099,57924,3},{64103,57921,3}, {64104,57924,3},{64113,57923,3},{64114,57918,3},{64119,57916,3},{64121,57909,3}, {64118,57909,3},{64119,57908,3},{64126,57906,3},{64129,57908,3},{64133,57908,3}, {64146,57906,3},{64144,57904,3},{64144,57899,3},{64146,57896,3},{64148,57896,3}, {64154,57899,3},{64156,57904,3},{64156,57906,3},{64153,57906,3},{64151,57909,3}, {64173,57916,3},{64189,57918,3},{64193,57916,3},{64208,57908,3},{64231,57886,3}, {64251,57883,3},{64259,57874,3},{64269,57868,3},{64274,57868,3},{64276,57864,3}, {64283,57861,3},{64284,57856,3},{64288,57856,3},{64293,57858,3},{64298,57856,3}, {64309,57844,3},{64314,57833,3},{64318,57831,3},{64321,57833,3},{64324,57829,3}, {64328,57824,3},{64329,57818,3},{64333,57821,3},{64339,57821,3},{64348,57821,3}, {64353,57818,3},{64359,57816,3},{64363,57819,3},{64369,57816,3},{64378,57808,3}, {64381,57808,3},{64384,57806,3},{64391,57799,3},{64406,57771,3},{64413,57769,3}, {64414,57771,3},{64414,57774,3},{64418,57774,3},{64423,57773,3},{64426,57773,3}, {64426,57771,3},{64431,57771,3},{64434,57768,3},{64438,57769,3},{64441,57768,3}, {64443,57768,3},{64448,57764,3},{64451,57764,3},{64454,57759,3},{64461,57758,3}, {64471,57749,3},{64481,57744,3},{64488,57739,3},{64499,57734,3},{64503,57729,3}, {64508,57729,3},{64509,57726,3},{64513,57724,3},{64524,57716,3},{64529,57718,3}, {64538,57714,3},{64541,57711,3},{64546,57713,3},{64549,57709,3},{64556,57711,3}, {64568,57703,3},{64574,57698,3},{64589,57694,3},{64593,57696,3},{64594,57693,3}, {64603,57691,3},{64603,57686,3},{64609,57683,3},{64613,57684,3},{64618,57684,3}, {64618,57679,3},{64613,57678,3},{64613,57676,3},{64616,57676,3},{64619,57674,3}, {64621,57678,3},{64624,57679,3},{64628,57676,3},{64629,57671,3},{64636,57671,3}, {64638,57668,3},{64639,57669,3},{64644,57669,3},{64658,57659,3},{64661,57659,3}, {64668,57661,3},{64678,57659,3},{64686,57651,3},{64693,57641,3},{64694,57644,3}, {64699,57644,3},{64708,57638,3},{64714,57636,3},{64728,57623,3},{64733,57619,3}, {64744,57604,3},{64761,57593,3},{64764,57589,3},{64766,57591,3},{64769,57591,3}, {64778,57586,3},{64789,57578,3},{64793,57576,3},{64796,57578,3},{64809,57573,3}, {64818,57564,3},{64824,57564,3},{64828,57563,3},{64838,57554,3},{64841,57549,3}, {64848,57543,3},{64859,57538,3},{64873,57523,3},{64881,57504,3},{64893,57484,3}, {64904,57458,3},{64916,57443,3},{64924,57426,3},{64928,57423,3},{64936,57418,3}, {64946,57418,3},{64951,57421,3},{64953,57424,3},{64956,57426,3},{64951,57431,3}, {64949,57438,3},{64951,57444,3},{64959,57448,3},{64971,57449,3},{64993,57441,3}, {65004,57428,3},{65008,57423,3},{65016,57416,3},{65019,57418,3},{65029,57418,3}, {65029,57426,3},{65034,57428,3},{65041,57424,3},{65046,57418,3},{65051,57414,3}, {65068,57401,3},{65071,57403,3},{65081,57406,3},{65088,57403,3},{65091,57406,3}, {65098,57408,3},{65106,57408,3},{65111,57411,3},{65114,57416,3},{65124,57424,3}, {65126,57429,3},{65141,57438,3},{65148,57449,3},{65158,57451,3},{65161,57454,3}, {65174,57476,3},{65186,57483,3},{65188,57498,3},{65194,57501,3},{65199,57503,3}, {65196,57504,3},{65194,57511,3},{65189,57509,3},{65186,57513,3},{65178,57513,3}, {65178,57514,3},{65173,57516,3},{65168,57514,3},{65163,57516,3},{65159,57514,3}, {65156,57518,3},{65151,57518,3},{65148,57521,3},{65143,57514,3},{65141,57509,3}, {65138,57508,3},{65134,57504,3},{65138,57501,3},{65138,57489,3},{65131,57486,3}, {65128,57486,3},{65123,57488,3},{65116,57489,3},{65114,57493,3},{65116,57496,3}, {65116,57503,3},{65098,57488,3},{65093,57488,3},{65089,57494,3},{65088,57498,3}, {65089,57499,3},{65091,57503,3},{65096,57508,3},{65096,57509,3},{65106,57519,3}, {65108,57523,3},{65106,57524,3},{65106,57528,3},{65098,57538,3},{65096,57539,3}, {65096,57546,3},{65093,57549,3},{65088,57554,3},{65088,57558,3},{65089,57564,3}, {65093,57569,3},{65093,57573,3},{65084,57583,3},{65084,57586,3},{65081,57586,3}, {65076,57584,3},{65056,57591,3},{65053,57598,3},{65048,57599,3},{65046,57603,3}, {65039,57608,3},{65039,57618,3},{65038,57623,3},{65039,57626,3},{65036,57629,3}, {65036,57631,3},{65036,57633,3},{65041,57636,3},{65048,57638,3},{65051,57646,3}, {65058,57644,3},{65061,57644,3},{65068,57648,3},{65074,57658,3},{65078,57668,3}, {65081,57669,3},{65088,57669,3},{65093,57674,3},{65094,57669,3},{65104,57669,3}, {65109,57673,3},{65123,57676,3},{65126,57679,3},{65138,57681,3},{65144,57683,3}, {65158,57694,3},{65163,57696,3},{65173,57699,3},{65184,57699,3},{65194,57703,3}, {65194,57709,3},{65191,57711,3},{65184,57711,3},{65184,57713,3},{65191,57719,3}, {65194,57718,3},{65198,57714,3},{65201,57714,3},{65209,57724,3},{65214,57726,3}, {65214,57729,3},{65221,57733,3},{65238,57751,3},{65279,57869,3},{65323,57929,3}, {65381,57978,3},{65381,57979,3},{65439,57994,3},{65444,57996,3},{65439,57999,3}, {65438,58004,3},{65438,58014,3},{65439,58014,3},{65443,58011,3},{65448,58011,3}, {65453,58009,3},{65456,58009,3},{65463,58006,3},{65466,58009,3},{65471,58008,3}, {65473,58011,3},{65481,58011,3},{65484,58009,3},{65483,58008,3},{65486,58004,3}, {65489,58003,3},{65489,57999,3},{65493,57994,3},{65501,57991,3},{65513,57988,3}, {65518,57979,3},{65518,57974,3},{65524,57973,3},{65524,57983,3},{65519,57994,3}, {65523,57998,3},{65521,57999,3},{65523,58006,3},{65526,58008,3},{65526,58011,3}, {65533,58014,3},{65529,58024,3},{65523,58031,3},{65521,58036,3},{65516,58041,3}, {65513,58048,3},{65516,58051,3},{65519,58053,3},{65519,58054,3},{65509,58061,3}, {65504,58058,3},{65503,58064,3},{65499,58068,3},{65501,58073,3},{65489,58083,3}, {65486,58089,3},{65483,58091,3},{65481,58094,3},{65474,58098,3},{65471,58098,3}, {65468,58099,3},{65466,58098,3},{65463,58098,3},{65459,58101,3},{65458,58104,3}, {65454,58106,3},{65453,58108,3},{65451,58106,3},{65451,58101,3},{65449,58101,3}, {65446,58106,3},{65439,58109,3},{65436,58113,3},{65436,58118,3},{65433,58126,3}, {65436,58129,3},{65428,58133,3},{65426,58134,3},{65429,58138,3},{65428,58139,3}, {65426,58138,3},{65424,58139,3},{65424,58143,3},{65418,58146,3},{65414,58151,3}, {65413,58156,3},{65414,58158,3},{65418,58159,3},{65414,58163,3},{65409,58173,3}, {65406,58174,3},{65404,58178,3},{65401,58178,3},{65398,58179,3},{65394,58178,3}, {65388,58186,3},{65379,58188,3},{65374,58183,3},{65368,58183,3},{65363,58189,3}, {65359,58193,3},{65359,58196,3},{65356,58201,3},{65359,58204,3},{65358,58209,3}, {65361,58211,3},{65358,58216,3},{65353,58218,3},{65346,58219,3},{65339,58219,3}, {65328,58224,3},{65323,58221,3},{65318,58216,3},{65314,58216,3},{65309,58219,3}, {65304,58221,3},{65304,58226,3},{65301,58228,3},{65303,58229,3},{65306,58231,3}, {65303,58234,3},{65303,58238,3},{65293,58243,3},{65294,58246,3},{65298,58256,3}, {65296,58259,3},{65299,58263,3},{65293,58264,3},{65303,58271,3},{65298,58281,3}, {65294,58293,3},{65291,58294,3},{65291,58298,3},{65293,58308,3},{65294,58308,3}, {65296,58309,3},{65294,58319,3},{65301,58326,3},{65304,58329,3},{65303,58341,3}, {65308,58343,3},{65311,58348,3},{65318,58353,3},{65323,58363,3},{65318,58363,3}, {65319,58368,3},{65318,58373,3},{65314,58376,3},{65313,58383,3},{65306,58384,3}, {65304,58386,3},{65304,58388,3},{65311,58388,3},{65309,58391,3},{65303,58394,3}, {65299,58393,3},{65298,58394,3},{65303,58404,3},{65301,58406,3},{65303,58411,3}, {65301,58416,3},{65304,58419,3},{65309,58421,3},{65311,58423,3},{65311,58429,3}, {65309,58433,3},{65309,58434,3},{65314,58433,3},{65316,58434,3},{65314,58441,3}, {65314,58446,3},{65308,58453,3},{65303,58466,3},{65298,58466,3},{65296,58469,3}, {65291,58471,3},{65291,58476,3},{65296,58478,3},{65291,58483,3},{65291,58488,3}, {65286,58491,3},{65288,58498,3},{65288,58501,3},{65286,58501,3},{65283,58499,3}, {65279,58499,3},{65281,58503,3},{65283,58506,3},{65281,58509,3},{65274,58511,3}, {65274,58519,3},{65269,58521,3},{65273,58524,3},{65273,58526,3},{65266,58528,3}, {65264,58531,3},{65158,58464,3},{65158,58468,3},{65153,58474,3},{65153,58478,3}, {65149,58484,3},{65158,58499,3},{65156,58504,3},{65149,58513,3},{65143,58518,3}, {65129,58523,3},{65126,58528,3},{65114,58541,3},{65111,58541,3},{65106,58539,3}, {65103,58536,3},{65103,58533,3},{65101,58533,3},{65103,58533,3},{65104,58528,3}, {65108,58529,3},{65111,58526,3},{65109,58521,3},{65104,58519,3},{65103,58516,3}, {65106,58514,3},{65106,58511,3},{65113,58504,3},{65118,58506,3},{65123,58503,3}, {65119,58501,3},{65123,58496,3},{65123,58491,3},{65118,58486,3},{65121,58484,3}, {65123,58481,3},{65116,58478,3},{65119,58476,3},{65119,58473,3},{65124,58474,3}, {65124,58469,3},{65119,58468,3},{65121,58459,3},{65118,58453,3},{65114,58453,3}, {65113,58453,3},{65111,58449,3},{65108,58449,3},{65098,58441,3},{65099,58438,3}, {65103,58436,3},{65098,58434,3},{65099,58429,3},{65098,58426,3},{65096,58424,3}, {65098,58421,3},{65101,58419,3},{65099,58418,3},{65094,58416,3},{65098,58413,3}, {65098,58408,3},{65093,58408,3},{65093,58404,3},{65091,58401,3},{65093,58398,3}, {65093,58388,3},{65091,58386,3},{65088,58384,3},{65089,58383,3},{65086,58376,3}, {65089,58374,3},{65084,58371,3},{65089,58368,3},{65086,58364,3},{65088,58358,3}, {65086,58358,3},{65084,58346,3},{65078,58339,3},{65078,58336,3},{65074,58333,3}, {65076,58329,3},{65071,58329,3},{65066,58323,3},{65066,58319,3},{65061,58313,3}, {65061,58304,3},{65059,58303,3},{65058,58303,3},{65058,58299,3},{65048,58296,3}, {65046,58289,3},{65041,58288,3},{65041,58283,3},{65036,58279,3},{65036,58276,3}, {65031,58274,3},{65029,58268,3},{65031,58261,3},{65028,58259,3},{65028,58251,3}, {65024,58251,3},{65023,58246,3},{65021,58244,3},{65018,58246,3},{65013,58246,3}, {65011,58248,3},{65004,58244,3},{65001,58244,3},{64989,58239,3},{64983,58243,3}, {64976,58239,3},{64971,58239,3},{64958,58231,3},{64951,58226,3},{64949,58223,3}, {64938,58223,3},{64931,58218,3},{64919,58218,3},{64916,58219,3},{64896,58223,3}, {64891,58221,3},{64884,58216,3},{64878,58201,3},{64866,58184,3},{64863,58178,3}, {64858,58174,3},{64856,58168,3},{64851,58166,3},{64848,58161,3},{64833,58159,3}, {64826,58156,3},{64821,58159,3},{64816,58161,3},{64814,58164,3},{64806,58166,3}, {64803,58161,3},{64803,58153,3},{64798,58146,3},{64801,58139,3},{64791,58143,3}, {64788,58141,3},{64784,58141,3},{64783,58136,3},{64783,58134,3},{64769,58149,3}, {64763,58153,3},{64758,58166,3},{64753,58166,3},{64749,58164,3},{64748,58163,3}, {64748,58158,3},{64741,58159,3},{64739,58161,3},{64734,58171,3},{64731,58173,3}, {64723,58176,3},{64716,58176,3},{64709,58181,3},{64699,58183,3},{64696,58189,3}, {64694,58193,3},{64691,58196,3},{64688,58201,3},{64676,58201,3},{64674,58204,3}, {64668,58209,3},{64668,58214,3},{64664,58219,3},{64646,58229,3},{64643,58236,3}, {64638,58239,3},{64628,58241,3},{64621,58239,3},{64619,58238,3},{64619,58234,3}, {64614,58234,3},{64611,58228,3},{64603,58223,3},{64599,58218,3},{64596,58216,3}, {64594,58263,3},{64591,58269,3},{64591,58276,3},{64588,58283,3},{64586,58299,3}, {64583,58303,3},{64583,58306,3},{64576,58306,3},{64569,58311,3},{64561,58309,3}, {64556,58318,3},{64553,58319,3},{64548,58321,3},{64543,58319,3},{64539,58319,3}, {64536,58318,3},{64536,58321,3},{64536,58399,3},{64539,58403,3},{64536,58406,3}, {64539,58411,3},{64543,58418,3},{64549,58423,3},{64551,58428,3},{64554,58431,3}, {64554,58436,3},{64559,58439,3},{64564,58446,3},{64569,58448,3},{64573,58456,3}, {64579,58461,3},{64584,58469,3},{64591,58476,3},{64593,58484,3},{64586,58483,3}, {64586,58479,3},{64584,58481,3},{64583,58478,3},{64579,58479,3},{64579,58474,3}, {64578,58476,3},{64573,58478,3},{64568,58481,3},{64563,58483,3},{64558,58479,3}, {64558,58476,3},{64553,58473,3},{64434,58473,3},{64443,58483,3},{64438,58489,3}, {64433,58493,3},{64429,58503,3},{64433,58519,3},{64444,58543,3},{64443,58548,3}, {64444,58558,3},{64439,58563,3},{64441,58579,3},{64336,58644,3},{64286,58669,3}, {64286,58668,3},{64283,58668,3},{64283,58666,3},{64279,58664,3},{64276,58659,3}, {64274,58658,3},{64271,58658,3},{64269,58663,3},{64264,58661,3},{64263,58651,3}, {64261,58651,3},{64259,58648,3},{64256,58646,3},{64256,58644,3},{64251,58641,3}, {64249,58639,3},{64236,58639,3},{64229,58641,3},{64218,58639,3},{64211,58641,3}, {64184,58639,3},{64179,58638,3},{64176,58634,3},{64173,58634,3},{64173,58629,3}, {64171,58628,3},{64166,58629,3},{64161,58636,3},{64156,58634,3},{64149,58638,3}, {64139,58638,3},{64138,58641,3},{64133,58646,3},{64124,58649,3},{64116,58651,3}, {64111,58636,3},{64103,58636,3},{64101,58638,3},{64098,58638,3},{64086,58621,3}, {64079,58621,3},{64078,58613,3},{64071,58611,3},{64063,58613,3},{64061,58609,3}, {64058,58603,3},{64056,58599,3},{64049,58599,3},{64046,58601,3},{64043,58598,3}, {64039,58598,3},{64034,58603,3},{64024,58608,3},{64019,58616,3},{64013,58623,3}, {64011,58623,3},{64009,58621,3},{64009,58616,3},{64006,58614,3},{64003,58609,3}, {63999,58608,3},{63996,58608,3},{63993,58603,3},{63988,58603,3},{63983,58599,3}, {63986,58598,3},{63986,58599,3},{63988,58599,3},{63989,58598,3},{63986,58593,3}, {63989,58591,3},{63993,58588,3},{64001,58579,3},{64001,58573,3},{64006,58571,3}, {64011,58568,3},{64011,58563,3},{64011,58561,3},{64008,58564,3},{64006,58564,3}, {64006,58561,3},{64004,58558,3},{64006,58551,3},{64006,58548,3},{64004,58548,3}, {64001,58556,3},{63999,58554,3},{64001,58549,3},{63998,58546,3},{63998,58541,3}, {63994,58541,3},{63979,58549,3},{63976,58553,3},{63971,58554,3},{63969,58558,3}, {63968,58558,3},{63968,58556,3},{63963,58561,3},{63963,58556,3},{63966,58551,3}, {63973,58549,3},{63978,58544,3},{63979,58541,3},{63976,58544,3},{63974,58544,3}, {63969,58539,3},{63966,58539,3},{63966,58534,3},{63964,58533,3},{63958,58533,3}, {63956,58536,3},{63951,58534,3},{63949,58536,3},{63951,58538,3},{63948,58543,3}, {63948,58546,3},{63944,58548,3},{63944,58556,3},{63946,58556,3},{63949,58549,3}, {63954,58551,3},{63958,58553,3},{63958,58556,3},{63946,58559,3},{63944,58564,3}, {63946,58566,3},{63944,58568,3},{63943,58568,3},{63943,58566,3},{63938,58569,3}, {63938,58579,3},{63934,58586,3},{63934,58593,3},{63928,58594,3},{63921,58588,3}, {63918,58584,3},{63916,58586,3},{63914,58588,3},{63918,58594,3},{63916,58596,3}, {63918,58598,3},{63916,58598,3},{63914,58598,3},{63911,58599,3},{63911,58606,3}, {63908,58609,3},{63909,58613,3},{63911,58621,3},{63911,58624,3},{63914,58626,3}, {63914,58629,3},{63916,58633,3},{63914,58634,3},{63914,58639,3},{63909,58638,3}, {63909,58636,3},{63909,58633,3},{63909,58628,3},{63904,58633,3},{63898,58633,3}, {63894,58633,3},{63889,58628,3},{63888,58626,3},{63881,58631,3},{63881,58633,3}, {63876,58633,3},{63871,58636,3},{63866,58626,3},{63864,58619,3},{63854,58616,3}, {63844,58604,3},{63838,58601,3},{63834,58594,3},{63833,58598,3},{63831,58598,3}, {63826,58591,3},{63826,58588,3},{63818,58578,3},{63818,58574,3},{63813,58574,3}, {63808,58571,3},{63806,58578,3},{63798,58586,3},{63786,58586,3},{63769,58568,3}, {63771,58554,3},{63769,58554,3},{63768,58553,3},{63761,58551,3},{63756,58554,3}, {63746,58556,3},{63743,58559,3},{63739,58559,3},{63723,58553,3},{63716,58544,3}, {63711,58541,3},{63709,58536,3},{63708,58531,3},{63704,58523,3},{63703,58516,3}, {63704,58499,3},{63701,58496,3},{65199,57503,131},{65203,57504,3},{65199,57504,3}, {65198,57506,3},{65203,57506,3},{65203,57508,3},{65201,57509,3},{65203,57521,3}, {65206,57526,3},{65216,57531,3},{65214,57531,3},{65213,57533,3},{65208,57533,3}, {65211,57534,3},{65216,57541,3},{65228,57544,3},{65233,57548,3},{65239,57548,3}, {65244,57549,3},{65258,57553,3},{65261,57556,3},{65269,57558,3},{65276,57563,3}, {65281,57564,3},{65288,57561,3},{65288,57558,3},{65294,57554,3},{65298,57551,3}, {65304,57553,3},{65309,57551,3},{65314,57553,3},{65319,57549,3},{65323,57551,3}, {65326,57551,3},{65328,57554,3},{65331,57554,3},{65333,57558,3},{65334,57559,3}, {65333,57553,3},{65328,57553,3},{65328,57549,3},{65326,57548,3},{65314,57546,3}, {65309,57549,3},{65304,57549,3},{65294,57549,3},{65279,57546,3},{65274,57536,3}, {65278,57534,3},{65276,57531,3},{65278,57529,3},{65281,57529,3},{65283,57533,3}, {65288,57534,3},{65288,57538,3},{65286,57541,3},{65288,57543,3},{65289,57543,3}, {65288,57541,3},{65291,57536,3},{65288,57533,3},{65299,57534,3},{65301,57538,3}, {65304,57541,3},{65303,57538,3},{65303,57534,3},{65301,57533,3},{65284,57526,3}, {65278,57519,3},{65276,57516,3},{65273,57513,3},{65276,57508,3},{65271,57508,3}, {65271,57509,3},{65266,57511,3},{65263,57511,3},{65264,57504,3},{65271,57496,3}, {65273,57489,3},{65291,57474,3},{65296,57468,3},{65298,57463,3},{65298,57458,3}, {65304,57448,3},{65304,57444,3},{65311,57441,3},{65316,57436,3},{65319,57434,3}, {65316,57444,3},{65323,57458,3},{65329,57461,3},{65339,57459,3},{65341,57463,3}, {65343,57463,3},{65359,57459,3},{65376,57451,3},{65381,57451,3},{65383,57454,3}, {65388,57454,3},{65389,57458,3},{65398,57458,3},{65403,57461,3},{65423,57448,3}, {65431,57444,3},{65433,57444,3},{65436,57448,3},{65443,57453,3},{65443,57456,3}, {65444,57459,3},{65443,57466,3},{65444,57469,3},{65443,57474,3},{65446,57478,3}, {65453,57483,3},{65463,57484,3},{65473,57489,3},{65479,57493,3},{65478,57494,3}, {65473,57496,3},{65473,57503,3},{65473,57509,3},{65474,57498,3},{65493,57489,3}, {65494,57488,3},{65499,57486,3},{65508,57496,3},{65513,57498,3},{65519,57503,3}, {65519,57506,3},{65521,57511,3},{65529,57516,3},{65533,57521,3},{0,57526,3}, {3,57526,3},{7,57529,3},{17,57533,3},{35,57533,3},{35,57534,3},{32,57536,3}, {37,57536,3},{43,57533,3},{48,57531,3},{53,57534,3},{58,57534,3},{63,57531,3}, {65,57528,3},{68,57524,3},{77,57526,3},{83,57529,3},{83,57539,3},{87,57543,3}, {87,57549,3},{95,57561,3},{100,57571,3},{90,57569,3},{88,57573,3},{83,57574,3}, {87,57574,3},{90,57571,3},{98,57573,3},{100,57581,3},{107,57591,3},{107,57598,3}, {108,57618,3},{113,57624,3},{122,57631,3},{118,57634,3},{112,57638,3},{115,57641,3}, {122,57641,3},{123,57643,3},{123,57644,3},{123,57648,3},{128,57649,3},{128,57654,3}, {130,57649,3},{132,57648,3},{135,57649,3},{138,57653,3},{143,57653,3},{143,57654,3}, {133,57666,3},{128,57668,3},{127,57673,3},{127,57676,3},{123,57676,3},{123,57679,3}, {120,57679,3},{122,57683,3},{120,57689,3},{107,57701,3},{103,57713,3},{100,57714,3}, {92,57726,3},{90,57736,3},{87,57741,3},{88,57744,3},{83,57746,3},{82,57751,3}, {82,57756,3},{85,57764,3},{85,57768,3},{82,57771,3},{75,57769,3},{72,57771,3}, {65,57783,3},{67,57788,3},{65,57789,3},{65,57791,3},{62,57793,3},{53,57791,3}, {47,57793,3},{42,57793,3},{38,57799,3},{35,57809,3},{38,57821,3},{32,57826,3}, {28,57826,3},{27,57831,3},{27,57838,3},{23,57848,3},{27,57853,3},{25,57858,3}, {28,57859,3},{27,57868,3},{23,57874,3},{25,57879,3},{23,57884,3},{25,57896,3}, {40,57896,3},{42,57901,3},{45,57904,3},{45,57906,3},{40,57914,3},{40,57921,3}, {38,57924,3},{35,57924,3},{37,57929,3},{35,57931,3},{18,57943,3},{13,57951,3}, {8,57956,3},{7,57961,3},{8,57973,3},{65529,57993,3},{65526,58008,3},{65523,58006,3}, {65521,57999,3},{65523,57998,3},{65519,57994,3},{65524,57983,3},{65524,57973,3}, {65518,57974,3},{65518,57979,3},{65513,57988,3},{65501,57991,3},{65493,57994,3}, {65489,57999,3},{65489,58003,3},{65486,58004,3},{65483,58008,3},{65484,58009,3}, {65481,58011,3},{65473,58011,3},{65471,58008,3},{65466,58009,3},{65463,58006,3}, {65456,58009,3},{65453,58009,3},{65448,58011,3},{65443,58011,3},{65439,58014,3}, {65438,58014,3},{65438,58004,3},{65439,57999,3},{65444,57996,3},{65439,57994,3}, {65381,57979,3},{65381,57978,3},{65323,57929,3},{65279,57869,3},{65238,57751,3}, {65221,57733,3},{65214,57729,3},{65214,57726,3},{65209,57724,3},{65201,57714,3}, {65198,57714,3},{65194,57718,3},{65191,57719,3},{65184,57713,3},{65184,57711,3}, {65191,57711,3},{65194,57709,3},{65194,57703,3},{65184,57699,3},{65173,57699,3}, {65163,57696,3},{65158,57694,3},{65144,57683,3},{65138,57681,3},{65126,57679,3}, {65123,57676,3},{65109,57673,3},{65104,57669,3},{65094,57669,3},{65093,57674,3}, {65088,57669,3},{65081,57669,3},{65078,57668,3},{65074,57658,3},{65068,57648,3}, {65061,57644,3},{65058,57644,3},{65051,57646,3},{65048,57638,3},{65041,57636,3}, {65036,57633,3},{65036,57631,3},{65036,57629,3},{65039,57626,3},{65038,57623,3}, {65039,57618,3},{65039,57608,3},{65046,57603,3},{65048,57599,3},{65053,57598,3}, {65056,57591,3},{65076,57584,3},{65081,57586,3},{65084,57586,3},{65084,57583,3}, {65093,57573,3},{65093,57569,3},{65089,57564,3},{65088,57558,3},{65088,57554,3}, {65093,57549,3},{65096,57546,3},{65096,57539,3},{65098,57538,3},{65106,57528,3}, {65106,57524,3},{65108,57523,3},{65106,57519,3},{65096,57509,3},{65096,57508,3}, {65091,57503,3},{65089,57499,3},{65088,57498,3},{65089,57494,3},{65093,57488,3}, {65098,57488,3},{65116,57503,3},{65116,57496,3},{65114,57493,3},{65116,57489,3}, {65123,57488,3},{65128,57486,3},{65131,57486,3},{65138,57489,3},{65138,57501,3}, {65134,57504,3},{65138,57508,3},{65141,57509,3},{65143,57514,3},{65148,57521,3}, {65151,57518,3},{65156,57518,3},{65159,57514,3},{65163,57516,3},{65168,57514,3}, {65173,57516,3},{65178,57514,3},{65178,57513,3},{65186,57513,3},{65189,57509,3}, {65194,57511,3},{65196,57504,3},{65199,57503,3},{803,57246,131},{810,57248,3}, {820,57243,3},{825,57243,3},{827,57241,3},{827,57238,3},{832,57231,3},{837,57239,3}, {842,57243,3},{843,57249,3},{847,57253,3},{863,57253,3},{873,57244,3},{877,57244,3}, {880,57249,3},{882,57249,3},{882,57248,3},{883,57249,3},{888,57261,3},{893,57264,3}, {898,57261,3},{900,57256,3},{907,57248,3},{908,57246,3},{907,57243,3},{947,57243,3}, {950,57253,3},{952,57249,3},{955,57251,3},{955,57249,3},{957,57249,3},{960,57251,3}, {960,57254,3},{958,57261,3},{957,57263,3},{955,57266,3},{952,57268,3},{948,57273,3}, {948,57276,3},{953,57276,3},{955,57278,3},{953,57281,3},{957,57279,3},{942,57299,3}, {942,57303,3},{938,57301,3},{933,57298,3},{930,57301,3},{928,57299,3},{928,57298,3}, {927,57296,3},{925,57299,3},{922,57299,3},{920,57301,3},{918,57306,3},{920,57306,3}, {920,57308,3},{922,57308,3},{920,57309,3},{918,57309,3},{918,57311,3},{922,57311,3}, {918,57313,3},{922,57316,3},{918,57318,3},{920,57319,3},{915,57319,3},{917,57316,3}, {917,57311,3},{915,57309,3},{910,57311,3},{910,57309,3},{908,57313,3},{902,57311,3}, {900,57311,3},{898,57316,3},{898,57323,3},{893,57326,3},{892,57329,3},{895,57336,3}, {893,57339,3},{893,57341,3},{897,57346,3},{895,57349,3},{895,57354,3},{893,57358,3}, {897,57359,3},{900,57358,3},{902,57354,3},{910,57348,3},{913,57343,3},{913,57349,3}, {915,57346,3},{917,57346,3},{912,57354,3},{910,57354,3},{910,57351,3},{905,57354,3}, {907,57356,3},{905,57361,3},{900,57366,3},{888,57374,3},{878,57386,3},{878,57398,3}, {877,57403,3},{878,57423,3},{883,57439,3},{888,57448,3},{888,57453,3},{898,57461,3}, {907,57476,3},{913,57496,3},{915,57506,3},{920,57523,3},{922,57526,3},{927,57533,3}, {935,57539,3},{935,57543,3},{930,57543,3},{930,57544,3},{935,57546,3},{935,57549,3}, {937,57548,3},{937,57549,3},{938,57549,3},{937,57553,3},{935,57558,3},{937,57556,3}, {940,57556,3},{943,57559,3},{943,57563,3},{947,57564,3},{948,57568,3},{953,57569,3}, {955,57571,3},{955,57569,3},{958,57571,3},{960,57576,3},{960,57578,3},{962,57583,3}, {960,57584,3},{958,57583,3},{957,57584,3},{958,57586,3},{957,57589,3},{958,57591,3}, {957,57598,3},{957,57603,3},{953,57614,3},{953,57618,3},{955,57621,3},{953,57621,3}, {955,57623,3},{955,57639,3},{952,57638,3},{952,57633,3},{950,57629,3},{943,57631,3}, {943,57636,3},{945,57638,3},{945,57641,3},{943,57646,3},{942,57646,3},{940,57649,3}, {943,57653,3},{942,57654,3},{943,57658,3},{943,57659,3},{943,57661,3},{943,57664,3}, {943,57666,3},{942,57671,3},{942,57673,3},{940,57676,3},{943,57681,3},{940,57684,3}, {940,57688,3},{938,57689,3},{937,57694,3},{927,57716,3},{923,57733,3},{918,57738,3}, {915,57743,3},{912,57743,3},{905,57749,3},{910,57749,3},{905,57756,3},{902,57756,3}, {895,57763,3},{893,57761,3},{888,57766,3},{888,57768,3},{880,57774,3},{883,57773,3}, {883,57774,3},{878,57779,3},{877,57779,3},{877,57783,3},{873,57783,3},{872,57783,3}, {870,57783,3},{865,57793,3},{867,57796,3},{867,57799,3},{865,57799,3},{863,57793,3}, {860,57794,3},{853,57789,3},{848,57788,3},{847,57789,3},{847,57794,3},{845,57796,3}, {840,57799,3},{828,57799,3},{827,57801,3},{827,57806,3},{822,57806,3},{820,57809,3}, {810,57814,3},{798,57818,3},{795,57821,3},{793,57814,3},{790,57806,3},{785,57803,3}, {778,57799,3},{773,57803,3},{770,57803,3},{767,57798,3},{762,57793,3},{760,57786,3}, {753,57779,3},{753,57776,3},{758,57774,3},{765,57769,3},{768,57769,3},{772,57761,3}, {763,57759,3},{755,57764,3},{752,57764,3},{748,57761,3},{748,57754,3},{723,57748,3}, {723,57744,3},{733,57736,3},{738,57734,3},{738,57733,3},{742,57733,3},{742,57729,3}, {745,57724,3},{753,57721,3},{752,57719,3},{757,57719,3},{757,57718,3},{755,57716,3}, {757,57716,3},{760,57716,3},{768,57708,3},{773,57708,3},{787,57701,3},{790,57698,3}, {797,57694,3},{802,57694,3},{805,57693,3},{808,57693,3},{810,57696,3},{807,57696,3}, {805,57703,3},{810,57711,3},{815,57713,3},{818,57713,3},{825,57706,3},{825,57709,3}, {827,57709,3},{828,57709,3},{830,57711,3},{827,57713,3},{827,57716,3},{830,57718,3}, {833,57718,3},{840,57723,3},{838,57724,3},{835,57724,3},{832,57731,3},{825,57734,3}, {820,57744,3},{822,57744,3},{825,57739,3},{823,57748,3},{820,57753,3},{817,57753,3}, {815,57758,3},{812,57758,3},{810,57761,3},{812,57763,3},{813,57763,3},{812,57761,3}, {813,57759,3},{815,57758,3},{817,57756,3},{817,57753,3},{820,57753,3},{823,57749,3}, {827,57734,3},{840,57729,3},{842,57731,3},{847,57726,3},{848,57726,3},{850,57728,3}, {853,57724,3},{855,57724,3},{853,57723,3},{852,57724,3},{850,57726,3},{847,57724,3}, {842,57728,3},{847,57721,3},{843,57718,3},{840,57718,3},{838,57713,3},{840,57711,3}, {842,57716,3},{843,57716,3},{847,57714,3},{850,57716,3},{853,57714,3},{852,57713,3}, {848,57714,3},{843,57713,3},{845,57709,3},{847,57713,3},{850,57711,3},{848,57711,3}, {843,57708,3},{843,57706,3},{848,57704,3},{845,57703,3},{842,57699,3},{853,57698,3}, {855,57696,3},{852,57694,3},{847,57698,3},{843,57698,3},{840,57699,3},{833,57698,3}, {835,57694,3},{838,57691,3},{845,57691,3},{842,57689,3},{845,57686,3},{850,57688,3}, {855,57684,3},{857,57683,3},{857,57688,3},{860,57684,3},{863,57686,3},{865,57679,3}, {867,57679,3},{867,57676,3},{870,57674,3},{873,57676,3},{877,57674,3},{875,57674,3}, {872,57674,3},{872,57673,3},{870,57671,3},{873,57669,3},{877,57663,3},{880,57661,3}, {885,57658,3},{883,57658,3},{880,57653,3},{890,57646,3},{898,57628,3},{905,57628,3}, {908,57626,3},{908,57628,3},{912,57631,3},{912,57633,3},{912,57634,3},{915,57638,3}, {912,57633,3},{913,57631,3},{908,57628,3},{908,57624,3},{905,57628,3},{902,57628,3}, {898,57624,3},{900,57621,3},{902,57619,3},{900,57618,3},{902,57608,3},{902,57598,3}, {900,57588,3},{897,57586,3},{897,57584,3},{893,57583,3},{890,57584,3},{895,57579,3}, {890,57581,3},{888,57578,3},{888,57576,3},{888,57571,3},{885,57569,3},{887,57566,3}, {885,57566,3},{883,57563,3},{880,57561,3},{877,57559,3},{870,57563,3},{868,57561,3}, {863,57553,3},{860,57558,3},{860,57561,3},{858,57561,3},{853,57549,3},{852,57549,3}, {848,57543,3},{845,57541,3},{840,57534,3},{830,57513,3},{830,57498,3},{832,57498,3}, {828,57498,3},{822,57489,3},{808,57488,3},{802,57491,3},{798,57501,3},{795,57504,3}, {790,57504,3},{773,57523,3},{770,57524,3},{763,57531,3},{752,57538,3},{747,57536,3}, {745,57534,3},{742,57519,3},{743,57518,3},{743,57509,3},{742,57506,3},{742,57509,3}, {738,57501,3},{737,57499,3},{732,57503,3},{730,57498,3},{725,57493,3},{725,57486,3}, {723,57484,3},{725,57479,3},{722,57464,3},{720,57449,3},{725,57446,3},{725,57443,3}, {732,57444,3},{733,57448,3},{735,57448,3},{740,57444,3},{745,57444,3},{750,57439,3}, {755,57441,3},{762,57438,3},{767,57431,3},{768,57433,3},{768,57436,3},{770,57436,3}, {772,57431,3},{772,57433,3},{775,57433,3},{777,57428,3},{780,57429,3},{782,57434,3}, {783,57434,3},{783,57431,3},{790,57431,3},{785,57428,3},{787,57424,3},{785,57428,3}, {783,57426,3},{785,57418,3},{787,57416,3},{788,57416,3},{790,57414,3},{788,57416,3}, {788,57414,3},{787,57414,3},{785,57418,3},{777,57419,3},{775,57418,3},{773,57414,3}, {775,57414,3},{775,57411,3},{772,57414,3},{772,57413,3},{770,57413,3},{770,57416,3}, {767,57416,3},{763,57418,3},{760,57414,3},{765,57406,3},{765,57401,3},{768,57398,3}, {767,57394,3},{770,57391,3},{770,57383,3},{775,57388,3},{775,57379,3},{777,57379,3}, {780,57378,3},{785,57379,3},{785,57376,3},{788,57376,3},{788,57374,3},{792,57374,3}, {793,57376,3},{795,57374,3},{798,57376,3},{798,57373,3},{793,57374,3},{795,57373,3}, {805,57368,3},{802,57366,3},{803,57364,3},{805,57366,3},{807,57363,3},{807,57369,3}, {818,57361,3},{817,57359,3},{815,57361,3},{812,57359,3},{813,57356,3},{818,57341,3}, {820,57341,3},{823,57343,3},{818,57339,3},{822,57336,3},{820,57334,3},{823,57324,3}, {815,57323,3},{817,57319,3},{818,57321,3},{822,57321,3},{820,57318,3},{822,57314,3}, {823,57316,3},{827,57314,3},{830,57314,3},{830,57316,3},{833,57314,3},{833,57318,3}, {833,57314,3},{830,57311,3},{832,57308,3},{833,57308,3},{833,57301,3},{830,57301,3}, {828,57296,3},{830,57293,3},{832,57294,3},{835,57293,3},{835,57291,3},{832,57293,3}, {832,57291,3},{832,57289,3},{828,57291,3},{827,57286,3},{832,57269,3},{828,57254,3}, {827,57251,3},{823,57249,3},{812,57249,3},{807,57251,3},{802,57249,3},{803,57246,3}, {4351,1922,128},{4346,1923,0},{4343,1931,0},{4341,1932,0},{4338,1945,0}, {4337,1948,0},{4330,1955,0},{4325,1956,0},{4322,1961,0},{4322,1962,0},{4318,1966,0}, {4318,1969,0},{4318,1971,0},{4317,1973,0},{4318,1974,0},{4318,1976,0},{4315,1978,0}, {4314,1977,0},{4310,1982,0},{4311,1983,0},{4310,1984,0},{4309,1985,0},{4310,1989,0}, {4311,1995,0},{4312,1997,0},{4311,1998,0},{4308,1999,0},{4301,2014,0},{4299,2016,0}, {4295,2032,0},{4293,2033,0},{4293,2037,0},{4290,2037,0},{4284,2035,0},{4282,2031,0}, {4281,2030,0},{4279,2030,0},{4275,2025,0},{4278,2009,0},{4277,2005,0},{4275,2004,0}, {4271,2005,0},{4271,2007,0},{4269,2011,0},{4267,2013,0},{4261,2007,0},{4259,2008,0}, {4258,2009,0},{4255,2008,0},{4190,1246,128},{4191,1247,0},{4191,1244,0}, {4190,1246,0} }; tucnak2-2.48/src/edi.c0000644000175000017500000011150211567373656011456 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" static int edi_serid_used; #define dumpvar(var) { int dvi; dbg("%s=",#var); for (dvi=0; dvidate_str && strlen(q->date_str)>2){ safe_strncpy0(s, q->date_str+2, 7); g_string_append(gs, s); } g_string_append_c(gs, ';'); g_string_append(gs, safe_strncpy0(s, q->time_str, 5)); g_string_append_c(gs, ';'); if (q->error) g_string_append(gs, "ERROR"); else g_string_append(gs, uc(safe_strncpy0(s, q->callsign, 20))); g_string_append_c(gs, ';'); g_string_sprintfa(gs, "%d", q->mode); g_string_append_c(gs, ';'); g_string_append(gs, uc(safe_strncpy0(s, q->rsts, 6))); g_string_append_c(gs, ';'); g_string_append(gs, uc(safe_strncpy0(s, q->qsonrs, 5))); g_string_append_c(gs, ';'); g_string_append(gs, uc(safe_strncpy0(s, q->rstr, 6))); g_string_append_c(gs, ';'); g_string_append(gs, uc(safe_strncpy0(s, q->qsonrr, 5))); g_string_append_c(gs, ';'); g_string_append(gs, uc(safe_strncpy0(s, q->exc, 7))); g_string_append_c(gs, ';'); g_string_append(gs, uc(safe_strncpy0(s, q->locator, 7))); g_string_append_c(gs, ';'); } void add_qso_str2(GString *gs, struct qso *q, struct band *b){ if (!q->dupe && !q->error && strcasecmp(q->callsign, "ERROR")!=0) g_string_sprintfa(gs, "%d;", q->qsop/* * b->bandmulti*/); else{ g_string_append(gs, "0;"); dump_qso(q, "write_edi_qsos"); } if (q->new_ & NEW_EXC) g_string_append_c(gs, 'N'); g_string_append_c(gs, ';'); if (q->new_ & NEW_WWL) g_string_append_c(gs, 'N'); g_string_append_c(gs, ';'); if (q->new_ & NEW_DXC) g_string_append_c(gs, 'N'); g_string_append_c(gs, ';'); if (q->dupe) g_string_append_c(gs, 'D'); } void add_qso_str3(GString *gs, struct qso *q, struct band *b){ char s[1024]; g_string_append(gs, q->source); g_string_append_c(gs, ';'); g_string_append(gs, fixsemi(q->operator_)); g_string_append_c(gs, ';'); g_string_sprintfa(gs, "%d;", (int)q->stamp); if (q->error) g_string_append(gs, q->callsign); g_string_append_c(gs, ';'); safe_strncpy0(s, q->date_str, 3); g_string_append(gs, s); g_string_append_c(gs, ';'); safe_strncpy0(s, q->remark, MAX_STR_LEN); g_string_append(gs, fixsemi(s)); g_string_sprintfa(gs, ";%d", q->ser_id); g_string_sprintfa(gs, ";%1.0f", q->qrg); } static int write_edi_header(struct band *b, struct config_band *confb, FILE *f){ char s[1024]; GString *gs; int ret; int qsomult; gs = g_string_sized_new(1024); g_string_sprintfa(gs, "[REG1TEST;1]\r\n"); g_string_sprintfa(gs, "TName=%s\r\n", safe_strncpy0(s, ctest->tname, 69)); if (!b->qsos->len) g_string_sprintfa(gs, "TDate=%s;%s\r\n", ctest->cdate, ctest->cdate); else g_string_sprintfa(gs, "TDate=%d;%d\r\n", b->stats->first_date, b->stats->last_date); g_string_sprintfa(gs, "PCall=%s\r\n", uc(safe_strncpy0(s, ctest->pcall, 69))); g_string_sprintfa(gs, "PWWLo=%s\r\n", uc(safe_strncpy0(s, ctest->pwwlo, 69))); g_string_sprintfa(gs, "PExch=%s\r\n", uc(safe_strncpy0(s, ctest->pexch, 69))); g_string_sprintfa(gs, "PAdr1=%s\r\n", safe_strncpy0(s, ctest->padr1, 69)); g_string_sprintfa(gs, "PAdr2=%s\r\n", safe_strncpy0(s, ctest->padr2, 69)); g_string_sprintfa(gs, "PSect=%s\r\n", b->psect?"Single":"Multi"); g_string_sprintfa(gs, "PBand=%s\r\n", b->pband); g_string_sprintfa(gs, "PClub=%s\r\n", uc(safe_strncpy0(s, ctest->pclub, 69))); g_string_sprintfa(gs, "RName=%s\r\n", safe_strncpy0(s, ctest->rname, 69)); g_string_sprintfa(gs, "RCall=%s\r\n", uc(safe_strncpy0(s, ctest->rcall, 69))); g_string_sprintfa(gs, "RAdr1=%s\r\n", safe_strncpy0(s, ctest->radr1, 69)); g_string_sprintfa(gs, "RAdr2=%s\r\n", safe_strncpy0(s, ctest->radr2, 69)); g_string_sprintfa(gs, "RPoCo=%s\r\n", safe_strncpy0(s, ctest->rpoco, 69)); g_string_sprintfa(gs, "RCity=%s\r\n", safe_strncpy0(s, ctest->rcity, 69)); g_string_sprintfa(gs, "RCoun=%s\r\n", safe_strncpy0(s, ctest->rcoun, 69)); g_string_sprintfa(gs, "RPhon=%s\r\n", safe_strncpy0(s, ctest->rphon, 69)); g_string_sprintfa(gs, "RHBBS=%s\r\n", safe_strncpy0(s, ctest->rhbbs, 69)); g_string_sprintfa(gs, "MOpe1=%s\r\n", uc(safe_strncpy0(s, b->mope1, 69))); g_string_sprintfa(gs, "MOpe2=%s\r\n", uc(safe_strncpy0(s, b->mope2, 69))); g_string_sprintfa(gs, "STXEq=%s\r\n", safe_strncpy0(s, b->stxeq, 69)); g_string_sprintfa(gs, "SPowe=%s\r\n", safe_strncpy0(s, b->spowe, 69)); g_string_sprintfa(gs, "SRXEq=%s\r\n", safe_strncpy0(s, b->srxeq, 69)); g_string_sprintfa(gs, "SAnte=%s\r\n", safe_strncpy0(s, b->sante, 69)); g_string_sprintfa(gs, "SAntH=%s\r\n", safe_strncpy0(s, b->santh, 69)); qsomult = ctest->qsomult; if (ctest->qsop_method==16) qsomult = qsomult16(b); g_string_sprintfa(gs, "CQSOs=%d;%d\r\n", b->stats->nqsos, qsomult); g_string_sprintfa(gs, "CQSOP=%d\r\n", b->stats->nqsop); g_string_sprintfa(gs, "CWWLs=%d;%d;%d\r\n", g_hash_table_size(b->stats->wwls), ctest->wwlbonu, ctest->wwlmult==0 ? 1 : ctest->wwlmult); g_string_sprintfa(gs, "CWWLB=%d\r\n", g_hash_table_size(b->stats->wwls) * ctest->wwlbonu); g_string_sprintfa(gs, "CExcs=%d;%d;%d\r\n", b->stats->nexcp, ctest->excbonu, ctest->excmult==0 ? 1 : ctest->excmult); g_string_sprintfa(gs, "CExcB=%d\r\n", g_hash_table_size(b->stats->excs) * ctest->excbonu); g_string_sprintfa(gs, "CDXCs=%d;%d;%d\r\n", g_hash_table_size(b->stats->dxcs), ctest->dxcbonu, ctest->dxcmult==0 ? 1 : ctest->dxcmult); g_string_sprintfa(gs, "CDXCB=%d\r\n", g_hash_table_size(b->stats->dxcs) * ctest->dxcbonu); g_string_sprintfa(gs, "CToSc=%d\r\n", b->stats->ntotal); g_string_sprintfa(gs, "CODXC=%s;", uc(safe_strncpy0(s, b->stats->odxcall, 20))); g_string_sprintfa(gs, "%s;%d\r\n", uc(safe_strncpy0(s, b->stats->odxwwl, 20)), b->stats->odxqrb_int); ret=fprintf(f, "%s", gs->str) != gs->len; g_string_free(gs, TRUE); return ret; } static int write_edi_empty_remarks(struct band *b, struct config_band *confb, FILE *f){ char s[1024]; int ret; GString *gs; gs = g_string_sized_new(100); g_string_sprintfa(gs, "[Remarks]\r\n"); if (b->remarks && b->remarks[0]=='[') g_string_sprintfa(gs, " "); g_string_sprintfa(gs, "%s", safe_strncpy0(s, b->remarks, 1024)); g_string_sprintfa(gs, "\r\n"); ret=fprintf(f, "%s", gs->str) != gs->len; g_string_free(gs, TRUE); return ret; } static int write_edi_remarks(struct band *b, struct config_band *confb, FILE *f){ char s[1024]; struct qso *q; GString *gs; int ret; int i; gs = g_string_sized_new(1024); g_string_sprintfa(gs, "[Remarks]\r\n"); if (b->remarks && b->remarks[0]=='[') g_string_sprintfa(gs, " "); g_string_sprintfa(gs, "%s", safe_strncpy0(s, b->remarks, 1024)); g_string_sprintfa(gs, "\r\n"); g_string_sprintfa(gs, "[TUCNAK extension]\r\n"); g_string_sprintfa(gs, "default_rs=%s\r\n", ctest->default_rs); g_string_sprintfa(gs, "default_rst=%s\r\n", ctest->default_rst); g_string_sprintfa(gs, "prefmult=%d\r\n", ctest->prefmult); g_string_sprintfa(gs, "prefglob=%d\r\n", ctest->prefglob); g_string_sprintfa(gs, "dxcbonu=%d\r\n", ctest->dxcbonu); g_string_sprintfa(gs, "dxcmult=%d\r\n", ctest->dxcmult); g_string_sprintfa(gs, "excused=%d\r\n", ctest->excused); g_string_sprintfa(gs, "exctype=%d\r\n", ctest->exctype); g_string_sprintfa(gs, "excname=%s\r\n", ctest->excname); g_string_sprintfa(gs, "excbonu=%d\r\n", ctest->excbonu); g_string_sprintfa(gs, "excmult=%d\r\n", ctest->excmult); g_string_sprintfa(gs, "exccfm=%d\r\n", ctest->exccfm); g_string_sprintfa(gs, "qsoused=%d\r\n", ctest->qsoused); g_string_sprintfa(gs, "qsomult=%d\r\n", ctest->qsomult); g_string_sprintfa(gs, "qsoglob=%d\r\n", ctest->qsoglob); g_string_sprintfa(gs, "qsop_method=%d\r\n", ctest->qsop_method); g_string_sprintfa(gs, "rstused=%d\r\n", ctest->rstused); g_string_sprintfa(gs, "defrstr=%d\r\n", ctest->defrstr); g_string_sprintfa(gs, "total_method=%d\r\n", ctest->total_method); g_string_sprintfa(gs, "wwltype=%d\r\n", ctest->wwltype); g_string_sprintfa(gs, "wwlused=%d\r\n", ctest->wwlused); g_string_sprintfa(gs, "wwlbonu=%d\r\n", ctest->wwlbonu); g_string_sprintfa(gs, "wwlmult=%d\r\n", ctest->wwlmult); g_string_sprintfa(gs, "wwlcfm=%d\r\n", ctest->wwlcfm); g_string_sprintfa(gs, "tttype=%d\r\n", ctest->tttype); g_string_sprintfa(gs, "expmode=%d\r\n", ctest->expmode); g_string_sprintfa(gs, "bandchar=%c\r\n", b->bandchar); // g_string_sprintfa(gs, "bandmulti=%d\r\n", b->bandmulti); g_string_sprintfa(gs, "mode=%d\r\n", gses->mode); g_string_sprintfa(gs, "operator=%s\r\n", b->operator_); g_string_sprintfa(gs, "psect=%d\r\n", b->psect); g_string_sprintfa(gs, "readonly=%d\r\n", b->readonly); g_string_sprintfa(gs, "saveid=%d\r\n", b->saveid); g_string_sprintfa(gs, "skedqrg=%s\r\n", b->skedqrg); for (i=0; i< b->qsos->len; i++){ q = get_qso(b, i); g_string_sprintfa(gs, "qso%d=", i); add_qso_str3(gs, q, b); /*g_string_sprintfa(gs, "%s\r\n",gs->str);*/ g_string_sprintfa(gs, "\r\n"); } ret=fprintf(f, "%s", gs->str) != gs->len; g_string_free(gs, TRUE); return ret; } static int write_edi_qsos(struct band *b, struct config_band *confb, FILE *f){ struct qso *q; GString *gs; int i; int ret; gs = g_string_new(""); g_string_sprintfa(gs, "[QSORecords;%d]\r\n", b->qsos->len); for (i=0; iqsos->len; i++){ q = get_qso(b, i); add_qso_str1(gs, q, b); add_qso_str2(gs, q, b); g_string_sprintfa(gs, "\r\n"); /*g_string_sprintfa(gs, "%s\r\n", gs->str);*/ } g_string_sprintfa(gs, "[END;TUCNAK ver. "VERSION_STRING"]\r\n"); ret=fprintf(f, "%s", gs->str) != gs->len; g_string_free(gs, TRUE); return ret; } static int write_edi_unfi(struct band *b, struct config_band *confb, FILE *f){ int i; gchar *c; GString *gs; int ret; gs = g_string_new(""); for (i=0; iunfi->items->len; i++){ c = (gchar *) g_ptr_array_index(b->unfi->items, i); g_string_sprintfa(gs, "unfinished%d=%s\r\n", i, c); } ret=fprintf(f, "%s", gs->str) != gs->len; g_string_free(gs, TRUE); return ret; } static int write_edi_sked(struct band *b, struct config_band *confb, FILE *f){ int i; GString *gs; int ret; struct sked *sked; struct zstring *zs; gs = g_string_new(""); for (i=0; iskeds->len; i++){ sked = (struct sked *) g_ptr_array_index(b->skeds, i); zs = sked_format(sked); g_string_sprintfa(gs, "sked%d=%s\r\n", i, zs->str); zfree(zs); } ret=fprintf(f, "%s", gs->str) != gs->len; g_string_free(gs, TRUE); return ret; } int export_all_bands_edi(void){ struct band *band; struct config_band *confb; int i, err; gchar *filename; FILE *f; char callbuf[20]; int ignoreerror=0; if (!ctest) return -1; /*dbg("export_all_bands_edi()\n");*/ for (i=0; ibands->len; i++){ char *section; band = g_ptr_array_index(ctest->bands, i); confb = get_config_band_by_bandchar(band->bandchar); stats_thread_join(band); if (band->stats->nqsos <=0) continue; section = band->psect ? confb->ok_section_single : confb->ok_section_multi; if (section && *section) filename = g_strdup_printf("%s/%s%s.edi", ctest->directory, section, uc(get_raw_call(callbuf,ctest->pcall))); else filename = g_strdup_printf("%s/%s_%c.edi", ctest->directory, uc(get_raw_call(callbuf,ctest->pcall)), toupper(band->bandchar)); f=fopen(filename,"wb"); /* must be b for windoze */ if (!f) { if (!ignoreerror) { errbox(VTEXT(T_CANT_WRITE), errno); ignoreerror=1;} g_free(filename); return -1; } err = 0; err|=write_edi_header (band,confb,f); err|=write_edi_empty_remarks (band,confb,f); err|=write_edi_qsos (band,confb,f); err|=fclose(f); if (err) { if (!ignoreerror) { errbox(VTEXT(T_CANT_WRITE), 0); ignoreerror=1; } g_free(filename); return -1; } log_addf("Saved '%s'", filename); g_free(filename); fprintf(band->swap, "SE %d\n", ++band->saveid); fflush(band->swap); } return 0; } static gchar *get_ctest_directory(int floppy){ gchar *dir; if (floppy==0){ dir = g_strdup(ctest->directory); }else{ char *c1, *c2; if (!cfg->as_floppy_path || strlen(cfg->as_floppy_path)==0) return NULL; if (!cfg->as_floppy_aq) return NULL; c1=c2=NULL; if (regmatch(ctest->directory, ".*\\/(.*)", &c1, &c2, NULL)==0){ dir = g_strdup_printf("%s/%s", cfg->as_floppy_path, c2); }else{ dir = g_strdup_printf("%s/%s", cfg->as_floppy_path, ctest->directory); } if (c1) mem_free(c1); if (c2) mem_free(c2); } return dir; } int save_all_bands_txt(int autosave){ struct band *band; struct config_band *confb; int j, i, err; gchar *filename, *dir; FILE *f; int ignoreerror=0; int floppy_mounted,nm_showed; dbg("save_all_bands_txt(%d)\n", autosave); if (!ctest) return -1; floppy_mounted = is_in_mtab(cfg->as_floppy_path); nm_showed=0; for (i=0; ibands->len; i++){ for (j=0; j<2; j++){ band = g_ptr_array_index(ctest->bands, i); confb = get_config_band_by_bandchar(band->bandchar); /* dbg(" %c dirty=%d\n", band->bandchar, band->dirty_save); */ if (autosave && !band->dirty_save) continue; if (j==0){ if (autosave && autosave!=1) continue; }else{ /* floppy */ if (autosave && autosave!=2) continue; if (nm_showed) continue; if (!floppy_mounted && !nm_showed) { log_addf(VTEXT(T_NOT_MOUNTED_S), cfg->as_floppy_path); nm_showed=1; continue; } } stats_thread_join(band); dir=get_ctest_directory(j); if (!dir) continue; mkdir_p(dir, 0775); filename = g_strdup_printf("%s/%c.txt", dir, band->bandchar); g_free(dir); dbg(" saving filename '%s'\n", filename); f=fopen(filename,"wb"); /* must be b for windoze */ if (!f) { gchar *c; c = g_strdup_printf(VTEXT(T_CANT_WRITE_S), filename); log_addf(c); g_free(c); if (j==0){ c = g_strdup_printf(VTEXT(T_CANT_WRITE_S), filename); }else{ c = g_strdup_printf("Can't open file '%s' for writing\nTry to mount floppy or disable\nMenu->Setup->Autosave->Path To Floppy", filename); } if (!ignoreerror) { errbox(c, errno); ignoreerror=1;} g_free(c); g_free(filename); continue; } err = 0; err|=write_edi_header (band,confb,f); err|=write_edi_remarks (band,confb,f); err|=write_edi_unfi (band,confb,f); err|=write_edi_sked (band,confb,f); err|=write_edi_qsos (band,confb,f); err|=fclose(f); if (err) { log_addf(VTEXT(T_CANT_WRITE_S), filename); if (!ignoreerror) { errbox(VTEXT(T_CANT_WRITE), 0); ignoreerror=1;} g_free(filename); continue; } band->dirty_save = 0; fprintf(band->swap, "ST %d\n", band->saveid); fflush(band->swap); if (!autosave) log_addf(VTEXT(T_SAVED_S), filename); g_free(filename); } band->saveid++; } if (!autosave){ ctest->as_disk_qsonr = cfg->as_disk_aq; ctest->as_floppy_qsonr = cfg->as_floppy_aq; } for (j=0; j<2; j++){ gchar *dir; if (j==0){ if (autosave && autosave!=1) continue; }else{ /* floppy */ if (autosave && autosave!=2) continue; } dir = get_ctest_directory(j); if (!dir) continue; if (j==1){ /* floppy */ if (nm_showed) continue; filename = g_strdup_printf("%s/desc",dir); save_desc_to_file(filename); g_free(filename); } if (i==1){ /* save only contents of fifo to ctest/log on floppy */ filename = g_strdup_printf("%s/log",dir); save_fifo_to_file(glog, filename); g_free(filename); } filename = g_strdup_printf("%s/talk",dir); save_fifo_to_file(gtalk, filename); g_free(filename); /* filename = g_strdup_printf("%s/sked",dir); save_fifo_to_file(gsked, filename); g_free(filename);*/ filename = g_strdup_printf("%s/spy", dir); save_spypeers_to_file(filename); /* called also in control.c */ g_free(filename); filename = g_strdup_printf("%s/hicalls", dir); save_hicalls_to_file(filename); g_free(filename); filename = g_strdup_printf("%s/qrv", dir); save_qrv_to_file(filename); g_free(filename); filename = g_strdup_printf("%s/chart", dir); save_chart_to_file(filename); g_free(filename); g_free(dir); } return 0; } static GHashTable *load_edi_until(FILE *f, GHashTable *hash, gchar *until){ GString *gs; gchar *c; gchar **a; gchar *k, *v; gpointer orig_key, orig_value; gs=g_string_new(""); if (!hash) hash=g_hash_table_new(g_str_hash, g_str_equal); while( (c = safe_fgets(gs, f, 0)) != NULL){ /* dbg("load_edi_until read '%s'\n", c);*/ if (regcmpi(c, until)==0) break; a = g_strsplit(c, "=", 2); if (!a) continue; if (!a[0] || !a[1]) { g_strfreev(a); continue; } g_strstrip(a[0]); g_strstrip(a[1]); k=lc(g_strdup(a[0])); v=g_strdup(a[1]); if (g_hash_table_lookup_extended(hash, (gpointer)k, &orig_key, &orig_value)){ g_hash_table_remove(hash, orig_key); g_free(orig_key); g_free(orig_value); } g_hash_table_insert(hash, k, v); /* dbg("load_edi_until load key=%p '%s' value=%p '%s'\n", k,k, v, v);*/ g_strfreev(a); } /* dbg("load_edi_until END %s\n",c);*/ g_string_free(gs, 1); return hash; } static gchar *load_edi_remarks_until(FILE *f, gchar *until){ GString *gs; gchar *c; gchar *ret,*tmp; gs=g_string_new(""); ret=NULL; while( (c = safe_fgets(gs, f, 0)) != NULL){ /* dbg("load_edi_remarks_until read '%s'\n", c);*/ if (regcmpi(c, until)==0) break; if (ret) { tmp=ret; g_free(ret); ret=g_strconcat(tmp," ",c, NULL); }else{ ret=g_strdup(c); } } /* dbg("load_edi_remarks_untilEND %s\n",c);*/ g_string_free(gs, 1); return ret; } static GPtrArray *load_edi_qsos_until(FILE *f, gchar *until){ GString *gs; GPtrArray *array; gchar *c; gchar **a; int i; gs=g_string_new(""); array=g_ptr_array_new(); while( (c = safe_fgets(gs, f, 0)) != NULL){ /* dbg("load_edi_qsos_unti: '%s'\n", c);*/ if (regcmpi(c, until)==0) break; a = g_strsplit(c, ";", 11); /* 11th is "N;N;N" */ if (!a) continue; for (i=0;i<11;i++){ if (!a[i]) goto x; g_strstrip(a[i]); } /* dbg("load_edi_qsos_until: add '%s'\n", c);*/ g_ptr_array_add(array, (gpointer)a); x:; } /* dbg("load_edi_qsos_until: END '%s' \n", c);*/ g_string_free(gs, 1); return array; } #if 0 static void skip_edi_until(FILE *f, gchar *until){ GString *gs; gchar *c; gs=g_string_new(""); while( (c = safe_fgets(gs, f, 0)) != NULL){ /* dbg("skip_edi_until: read '%s'\n", c);*/ if (regcmpi(c, until)==0) break; } /* dbg("skip_edi_until: END '%s' \n", c);*/ g_string_free(gs, 1); } #endif static gboolean free_item(gpointer key, gpointer value, gpointer x){ g_free(key); g_free(value); return TRUE; } static void destroy_string_hash(GHashTable *hash){ g_hash_table_foreach_remove(hash, free_item, NULL); g_hash_table_destroy(hash); } static void add_qsos_from_mem(struct band *b, GHashTable *hash, GPtrArray *qsos, gchar *date){ gchar **items; int i, j; gchar *c, *add; struct qso *q; char s[10]; time_t now; now = time(NULL); for (i=0; ilen; i++){ items = (gchar **) g_ptr_array_index(qsos, i); q = g_new0(struct qso, 1); if (strlen(items[0])>6) q->date_str = g_strdup(items[0]); else q->date_str = g_strdup_printf("%s%s", safe_strncpy(s, date, 3), items[0]); q->time_str = g_strdup(items[1]); q->callsign = g_strdup(items[2]); if (strcasecmp(q->callsign, "ERROR")==0) q->error=1; q->mode = atoi(items[3]); q->rsts = g_strdup(items[4]); q->qsonrs = g_strdup(items[5]); q->rstr = g_strdup(items[6]); q->qsonrr = g_strdup(items[7]); q->exc = g_strdup(items[8]); q->locator = g_strdup(items[9]); g_strfreev(items); c = g_strdup_printf("qso%d", i); add = g_hash_table_lookup(hash, c); g_free(c); if (!add){ char century[3]; safe_strncpy0(century, q->date_str, 3); add=g_strdup_printf("%s;%s;%d;%s;" "%s;%s;%d;", net->myid, fixsemi(b->operator_), (int)now, "", century, "", -1); items = g_strsplit(add, ";", 0); g_free(add); }else{ items = g_strsplit(add, ";", 0); } for (j=0;j<=4;j++) if (!items[j]) goto x; q->source = g_strdup(items[0]); q->operator_ = g_strdup(items[1]); fixsemi(q->operator_); q->stamp = atoi(items[2]); if (!items[5]){ q->remark = g_strdup(""); }else{ q->remark = g_strdup(items[5]); if (!items[6]){ q->qrg = 0.0; }else{ q->qrg = atof(items[6]); } } if (q->error && *items[3]){ g_free(q->callsign); q->callsign = g_strdup(items[3]); } c = q->date_str; if (strlen(c)>2 && items[4]) { q->date_str = g_strdup_printf("%s%s", items[4], c+2); g_free(c); } if (items[6]){ q->ser_id=atoi(items[6]); edi_serid_used=1; }else{ q->ser_id=-1; /* filled in add_qso_to_index and rewritten after loop. only for compatibility */ } if (items[6] && items[7]){ q->qrg = atof(items[7]); }else{ q->qrg = 0.0; } g_strfreev(items); compute_qrbqtf(q); add_qso(b, q); update_stats(b, b->stats, q); x:; } recalc_allb_stats(); minute_stats(b); /* g_hash_table_foreach(ctest->bystamp, foreach_source_print, NULL);*/ } static void add_unfi_from_mem(struct band *b, GHashTable *hash){ int i; gchar *add, *c; b->unfi->withouttime=1; for (i=0;;i++){ c = g_strdup_printf("unfinished%d", i); add = g_hash_table_lookup(hash, c); g_free(c); if (!add) break; /* dbg("unfinished=''\n", add);*/ fifo_adds(b->unfi, add); } b->unfi->withouttime=0; } static void add_sked_from_mem(struct band *b, GHashTable *hash){ int i; gchar *add, *c; struct zstring *zs; struct sked *sked; for (i=0;;i++){ c = g_strdup_printf("sked%d", i); add = g_hash_table_lookup(hash, c); g_free(c); if (!add) break; // dbg("sked=''\n", add); zs = zstrdup(add); sked = sked_parse(zs); zfree(zs); if (!sked) { dbg("bad format of sked '%s'\n", add); continue; } g_ptr_array_add(b->skeds, sked); sked->worked = get_qso_by_callsign(b, sked->callsign) != NULL; } } static int select_enable_all(const struct dirent *de){ return 1; } #define REPLACE(from,to) \ c = g_hash_table_lookup(hash, from);\ if (c && !g_hash_table_lookup(hash, to)){\ g_hash_table_insert(hash, g_strdup(to), g_strdup(c));\ dbg("replacing %s to %s with %s\n", from, to, c); \ } static int convert_bo_s_hash(GHashTable *hash, char *dir){ struct config_band *tmpcb; gchar *c, *date; c = g_hash_table_lookup(hash, "band"); if (c){ tmpcb = get_config_band_by_bandchar(lowcase(c[0])); if (tmpcb){ if (tmpcb->pband && !g_hash_table_lookup(hash, "pband")) g_hash_table_insert(hash, g_strdup("pband"), g_strdup(tmpcb->pband)); } } date = g_strdup(dir); c = strchr(date,'.'); if (c) *c='\0'; if (!g_hash_table_lookup(hash, "tdate")) g_hash_table_insert(hash, g_strdup("tdate"), g_strdup(date)); g_free(date); REPLACE("comment", "tname"); REPLACE("owncall", "pcall"); REPLACE("ownwwl", "pwwlo"); REPLACE("ownoptionalexchange", "pexch"); REPLACE("band", "bandchar"); REPLACE("qsopointsmultiplier", "qsomult"); REPLACE("qsocalcmethod", "qsop_method"); REPLACE("wwlbonus", "wwlbonu"); REPLACE("wwlmultiplier", "wwlmult"); REPLACE("dxccbonus", "dxcbonu"); REPLACE("dxccmultiplier", "dxcmult"); REPLACE("optionalexchangebonus", "excbonu"); REPLACE("optionalexchangemultiplier", "excmult"); REPLACE("totalcalcmethod", "total_method"); REPLACE("operator0", "operator"); return 0; } //int *pnn = NULL; /* loads edi and txt */ void load_contest_edi(gchar *date, int edi){ struct dirent **namelist=NULL; int nn=0; // probably buggy register optimisation in gcc 4.3.2 amd64 int i; gchar *datedir, *file, *pband; struct stat st; char *ext, *c; FILE *f, *descfile,*logfile; GHashTable *hash; GPtrArray *qsos; struct band *b; static char ss[1024]; gint saveid=-1; gchar *remarks; time_t now; struct tm tm; int nowdate_int, ctestdate_int; file = NULL; datedir = NULL; c=g_strdup_printf("%s/tucnak/%s/desc", getenv("HOME"), date); descfile = fopen(c, "rt+"); if (!descfile){ g_snprintf(ss,1000, VTEXT(T_CANT_OPEN_S),c); g_free(c); msg_box(NULL, VTEXT(T_ERROR), AL_CENTER, ss, NULL, 1, VTEXT(T_OK), NULL, B_ENTER | B_ESC); goto x; } if (lockf(fileno(descfile), F_TLOCK, 0)){ fclose(descfile); descfile=NULL; g_snprintf(ss,1000, VTEXT(T_CANT_LOCK_S),c); g_free(c); msg_box(NULL, VTEXT(T_ERROR), AL_CENTER, ss, NULL, 1, VTEXT(T_OK), NULL, B_ENTER | B_ESC); goto x; } g_free(c); datedir = g_strdup_printf("%s/tucnak/%s", getenv("HOME"), date); file = g_strdup_printf("%s/log", datedir); load_fifo_from_file(glog, file,0); fifo_addfq(glog, VTEXT(T_LOADING_CTEST_S), date); CONDGFREE(file); c=g_strdup_printf("%s/tucnak/%s/log", getenv("HOME"), date); logfile = fopen(c, "at"); if (!logfile){ g_snprintf(ss,1000, VTEXT(T_CANT_OPEN_S),c); g_free(c); msg_box(NULL, VTEXT(T_ERROR), AL_CENTER, ss, NULL, 1, VTEXT(T_OK), NULL, B_ENTER | B_ESC); goto x; } g_free(c); setvbuf(logfile, NULL, _IONBF, 0); fprintf(logfile, VTEXT(T_LOADING_CTEST_S), date); fprintf(logfile, "\n"); file = g_strdup_printf("%s/talk", datedir); load_fifo_from_file(gtalk, file,1); fifo_addfq(gtalk, VTEXT(T_LOADING_CTEST_S), date); CONDGFREE(file); nn = tucnak_scandir(datedir, &namelist, select_enable_all, tucnak_alphasort); //printf("%lx\n", &nn); if (nn<=0) { errbox(VTEXT(T_NO_FILES), 0); fclose(descfile); fclose(logfile); goto x; } edi_serid_used=0; for (i=0; id_name, ext)) continue; CONDGFREE(file); file = g_strconcat(datedir, "/", namelist[i]->d_name, NULL); /*dbg("file='%s'\n", file);*/ if (stat(file, &st)) continue; if (!S_ISREG(st.st_mode)) continue; f = fopen(file, "rt"); if (!f) continue; if (!edi){ hash = load_edi_until(f, NULL, "^\\[remarks\\]"); remarks = load_edi_remarks_until(f, "^\\[tucnak extension\\]"); /* skip_edi_until(f, "^\\[tucnak extension\\]");*/ load_edi_until(f, hash, "^\\[qsorecords"); }else{ hash = load_edi_until(f, NULL, "^\\[remarks\\]"); remarks = load_edi_remarks_until(f, "^\\[qsorecords"); } qsos = load_edi_qsos_until(f, "^\\[end;"); fclose(f); convert_bo_s_hash(hash, date); pband = g_hash_table_lookup(hash, "pband"); /*dbg("pband='%s'\n", pband);*/ if (!pband) { struct config_band *tmpcb; gchar *c; c = g_hash_table_lookup(hash, "band"); if (!c) goto destroy; tmpcb = get_config_band_by_bandchar(lowcase(c[0])); if (!tmpcb) goto destroy; pband = tmpcb->pband; if (!pband){ destroy:; CONDGFREE(remarks); destroy_string_hash(hash); continue; } } if (find_band_by_pband(pband)){ log_addf(VTEXT(T_BAND_EXIST_SS), pband, file); goto destroy; } if (!ctest) { init_ctest(); load_ctest_from_mem(ctest, datedir, hash); maps_reload(); chart_reload(); } b = init_band(NULL, hash, NULL); if (!b) { /* dbg("load_contest_edi: b=NULL!\n");*/ goto destroy; } /* edi_serid_used=0; must be assigned but before band loop */ add_qsos_from_mem(b, hash, qsos, date); add_unfi_from_mem(b, hash); add_sked_from_mem(b, hash); clear_tmpqsos(b, 1); destroy_string_hash(hash); if (remarks){ CONDGFREE(b->remarks); b->remarks=remarks; } CONDGFREE(file); file = g_strconcat(datedir, "/", namelist[i]->d_name, NULL); c = strstr(file,"txt"); if (!c) continue; strcpy(c, "swp"); /*dbg("swap='%s' saveid=%d\n", file, b->saveid-1);*/ f = fopen(file, "rt"); if (!f) continue; gs = g_string_sized_new(100); while(safe_fgets(gs, f, 0)!=NULL){ /* dbg("read '%s'\n", gs->str);*/ if (strncmp(gs->str,"ST ",3)!=0) continue; saveid=atoi(gs->str+3); /* dbg("sid=%d\n", saveid);*/ if (saveid == b->saveid-1) break; } if (saveid == b->saveid-1){ b->ignoreswap = 1; /* dbg("begin is %d\n", saveid);*/ while(safe_fgets(gs, f, 0)!=NULL){ /* dbg("read '%s'\n", gs->str);*/ if (strncmp(gs->str,"# ",2)==0){ process_input(b, gs->str+2, 0); continue; } if (strncmp(gs->str,"CLR",3)==0){ clear_tmpqsos(b, 1); continue; } if (strncmp(gs->str,"Q ",2)==0){ process_input(b, "", 0); continue; } if (strncmp(gs->str,"O ",2)==0){ if (b->operator_) g_free(b->operator_); b->operator_ = fixsemi(g_strdup(gs->str+2)); continue; } } b->ignoreswap = 0; } fclose(f); g_string_free(gs, 1); } if (!ctest) { errbox(VTEXT(T_NO_BANDS), 0); fclose(descfile); fclose(logfile); goto x; } if (ctest->bands->len==0){ errbox(VTEXT(T_NO_BANDS), 0); free_ctest(); goto x; } CONDGFREE(file); file = g_strdup_printf("%s/spy", datedir); load_spypeers_from_file(file); CONDGFREE(file); file = g_strdup_printf("%s/hicalls", datedir); load_hicalls_from_file(file); CONDGFREE(file); file = g_strdup_printf("%s/qrv", datedir); load_qrv_from_file(qrvdb, file); CONDGFREE(file); file = g_strdup_printf("%s/chart", datedir); load_chart_from_file(file); CONDGFREE(file); check_autosave(); ctest->descfile = descfile; ctest->logfile = logfile; ctest->cdate = g_strdup(date); c = strchr(ctest->cdate, '.'); if (c) *c='\0'; now = time(NULL); gmtime_r(&now, &tm); nowdate_int = (tm.tm_year+1900)*10000 + (tm.tm_mon+1)*100 + tm.tm_mday; ctestdate_int = atoi(ctest->cdate); if (/* nowdate_int >= ctestdate_int &&*/ nowdate_int <= ctestdate_int + 2) ctest->oldcontest = 0; else ctest->oldcontest = 1; // dbg("ctestdate=%d nowdate=%d oldcontest=%d\n", ctestdate_int, nowdate_int, ctest->oldcontest); if (!edi_serid_used){ /* only for backward compatibility with version without ser_id in edi file */ g_hash_table_foreach(ctest->bystamp, foreach_source_recalc_ser_id, NULL); } g_hash_table_foreach(ctest->bystamp, foreach_source_qsort_by_stamp, NULL); g_index_array_qsort(ctest->allqsos, compare_date_time_qsonrs); set_ctest_title(); clear_exc(excdb); read_exc_files(excdb, ctest->exctype, ctest->excname); recalc_allb_stats(); for (i=0; ibands->len; i++){ struct band *b = (struct band *)g_ptr_array_index(ctest->bands, i); b->dirty_statsf = 1; recalc_statsfifo(b); } dump_all_sources(ctest); net_send_ac(); if (cfg->startband){ struct band *b; b=find_band_by_pband(cfg->startband); // pnn = &nn; activate_band(b); /* b==NULL is handled by function */ } /*#ifdef HAVE_SDL maps_reload(); dela se pri activate_band #endif*/ qrv_recalc_wkd(qrvdb); qrv_recalc_qrbqtf(qrvdb); qrv_recalc_gst(qrvdb); net_send_operator(); net_send_read_write_bands(); x: dbg("nnx=%d\n", nn); // dumpvar(nn); // dumpvar(i); if (namelist){ for (i=0; icdate); destroy:; destroy_string_hash(hash); redraw_later(); } void import_swap(void *xxx, char *filename){ } tucnak2-2.48/src/sdev.c0000644000175000017500000004000411645046462011641 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #define STARTB 4 #define STOPB 1 struct sconn sconns; MUTEX_DEFINE(sconns); void init_sconns(void){ MUTEX_INIT(sconns); init_list(sconns); } struct sdev *sd_open_ttys(char saddr, char *filename, int timeout_ms){ struct sconn *sc; struct sdev *sd; /* dbg("sd_open_ttys(%s)\n", filename);*/ MUTEX_LOCK(sconns); foreach(sc, sconns){ if (sc->type!=CT_TTYS) continue; if (strcmp(sc->ttys_filename, filename)!=0) continue; /*dbg("found sc=%p\n", sc);*/ sc->refcnt++; MUTEX_UNLOCK(sconns); goto found; } MUTEX_UNLOCK(sconns); /* sconn not found */ sc=g_new0(struct sconn,1); dbg("new sc %p\n",sc); sc->refcnt++; MUTEX_LOCK(sconns); add_to_list(sconns, sc); MUTEX_UNLOCK(sconns); sc->type=CT_TTYS; sc->ttys_filename=g_strdup(filename); sc->sprotocol = SPROT_NONE; sc->open = sconn_file_open; sc->close2 = sconn_file_close; sc->read = sconn_file_read; sc->write = sconn_file_write; sc_open_common(sc); found: sd=g_new0(struct sdev,1); sc->give_me_chance = 1; MUTEX_LOCK(sc->sdevs); sc->give_me_chance = 0; add_to_list(sc->sdevs, sd); MUTEX_UNLOCK(sc->sdevs); sd->sconn=sc; sd->saddr=saddr; sd->timeout_ms = timeout_ms; /*dbg("sd=%p refcnt=%d\n",sd,sc->refcnt);*/ return sd; } #ifdef HAVE_LIBFTDI struct sdev *sd_open_ftdi(char saddr, int vid, int pid, char *serial, int timeout_ms){ struct sconn *sc; struct sdev *sd; /* dbg("sd_open_ttys(%s)\n", filename);*/ MUTEX_LOCK(sconns); foreach(sc, sconns){ if (sc->type!=CT_FTDI) continue; if (serial && *serial) if (strcmp(sc->ftdi_serial, serial)!=0) continue; /*dbg("found sc=%p\n", sc);*/ sc->refcnt++; MUTEX_UNLOCK(sconns); goto found; } MUTEX_UNLOCK(sconns); /* sconn not found */ sc=g_new0(struct sconn,1); dbg("new sc %p\n",sc); sc->refcnt++; MUTEX_LOCK(sconns); add_to_list(sconns, sc); MUTEX_UNLOCK(sconns); sc->type=CT_FTDI; sc->ftdi_vid = vid; sc->ftdi_pid = pid; sc->ftdi_serial = g_strdup(serial?serial:""); sc->sprotocol = SPROT_ROTAR; sc->open = sconn_ftdi_open; sc->close2 = sconn_ftdi_close; sc->read = sconn_ftdi_read; sc->write = sconn_ftdi_write; sc_open_common(sc); found: sd=g_new0(struct sdev,1); sc->give_me_chance = 1; MUTEX_LOCK(sc->sdevs); sc->give_me_chance = 0; add_to_list(sc->sdevs, sd); MUTEX_UNLOCK(sc->sdevs); sd->sconn=sc; sd->saddr=saddr; sd->timeout_ms = timeout_ms; /*dbg("sd=%p refcnt=%d\n",sd,sc->refcnt);*/ return sd; } #endif // HAVE_LIBFTDI void sc_open_common(struct sconn *sc){ MUTEX_INIT(sc->sdevs); init_list(sc->sdevs); MUTEX_INIT(sc->jobs); init_list(sc->jobs); sc->thread = g_thread_create(sc_main, (gpointer)sc, TRUE, NULL); dbg("sc created thread %p\n", sc->thread); } struct sdev *sd_open_udp(char *hostname, int udpport){ return NULL; } struct sdev *sd_open_tcp(char *hostname, int tcpport){ return NULL; } int free_sd(struct sdev *sd){ struct sconn *sc; /* dbg(" ------\n");*/ dbg("free_sd(%p)\n", sd); if (!sd) return -1; sc=sd->sconn; /* dbg(" refcnt=%d\n", sc->refcnt);*/ sc->give_me_chance = 1; MUTEX_LOCK(sc->sdevs); sc->give_me_chance = 0; del_from_list(sd); MUTEX_UNLOCK(sc->sdevs); sc->refcnt--; if (!sc->refcnt){ /*dbg(" freeing sc %p\n", sc);*/ sc->freeing = 1; if (sc->thread){ sc->thread_break = 1; dbg("join sconn...\n"); g_thread_join(sc->thread); dbg("done\n"); sc->thread = NULL; } sc->give_me_chance = 1; MUTEX_LOCK(sc->sdevs); sc->give_me_chance = 0; del_from_list(sd); MUTEX_UNLOCK(sc->sdevs); CONDGFREE(sc->ttys_filename); CONDGFREE(sc->ip_hostname); #ifdef HAVE_LIBFTDI CONDGFREE(sc->ftdi_serial); #endif MUTEX_LOCK(sconns); del_from_list(sc); MUTEX_UNLOCK(sconns); g_free(sc); }else{ /*dbg(" sc %p already active\n", sc);*/ } g_free(sd); return (0); } static char sd_chk(unsigned char *s, int len){ unsigned char chk, *c; chk=0; for (c=s;len;c++,len--){ chk^=*c; } return chk; } int sd_prot(struct sconn *sconn, char saddr, char fce, char *data, int *len, int timeout){ unsigned char rawdata[550]; int rawlen,written,rawi; int ret, i; ret = sconn->open(sconn, 0); if (ret) return ret; /* clearing queue, filedescriptor is non-blocking */ /* for (i=0; i<10; i++){ if (sconn->read(sconn, rawdata, sizeof(rawdata)-1, 100)<=0) break;}*/ rawlen=0; memset(rawdata, 0xff, STARTB); rawlen+=STARTB; rawdata[rawlen++]=0xc5; rawdata[rawlen++]=fce&0x7f; rawdata[rawlen++]=saddr; rawdata[rawlen++]=(unsigned char)*len; memcpy(rawdata+rawlen, data, *len); rawlen+=*len; rawdata[rawlen]=sd_chk(rawdata+STARTB, rawlen-STARTB); rawlen++; memset(rawdata+rawlen, 0xff, STOPB); rawlen+=STOPB; if (cfg->trace_sdev){ dbg("\nsconn->write("); for (i=0; iwrite(sconn, rawdata, rawlen); trace(cfg->trace_sdev, "sd_send: written=%d\n", written); if (written<0) return written; rawi=0; while(1){ if (rawi>=sizeof(rawdata)-1) return 20; ret = sconn->read(sconn, rawdata+rawi, sizeof(rawdata)-rawi, timeout); // dbg("read=%d\n", ret); if (ret<0) return -3; if (ret==0) return -4; rawi += ret; if (cfg->trace_sdev) { int j; dbg("read="); for (j=0; jrawi %d+5>%d=%d\n", i, rawi, i+5>rawi); if (i+5>rawi) goto nextloop; // dbg("i+5+rawdata[i+3]>rawi %d+5+%d>%d\n", i, (unsigned char)rawdata[i+3], rawi); if (i+5+(unsigned char)rawdata[i+3]>rawi) goto nextloop; // dbg("b\n"); if (sd_chk(rawdata+i, 5+rawdata[i+3]) != 0) return 11; if (rawdata[i+1]==0) return 17; if (rawdata[i+1]==0x80) return 14; if ((rawdata[i+1] & 0x80)==0) continue; // dbg("c\n"); if (rawdata[i+2]!=(unsigned char)saddr) return 16; // dbg("d\n"); if (rawdata[i+1]!=(fce|0x80)) return 16; *len = rawdata[i+3]; memcpy(data, rawdata+i+4, *len); /* { int j; dbg("OK data=\n"); for (j=0; j<*len; j++) dbg("%02x ", (unsigned char)data[j]); dbg("\n"); }*/ return 0; } //dbg("neni C5 0..%d\n", rawi); nextloop:; } return 0; } char *sd_err(int err){ switch(err){ case 0: return "OK"; case 11: return "Bad checksum"; case 13: return "Timeout"; case 14: return "Error"; case 16: return "Bad response"; case 17: return "Unknown function"; default: return "Unknown error code"; } } int sconn_file_open(struct sconn *sconn, int verbose){ struct termios tio; char s[256], errbuf[256]; int i, ret; if (sconn->freeing) return -1; if (sconn->opened) return 0; ret = fhs_lock(sconn->ttys_filename, 1); if (ret){ fhs_error(s, sizeof(s), ret, sconn->ttys_filename); zwrite(tpipe->threadpipe_write, zconcatesc("SC", "!", s, NULL)); return ret; } sconn->fd = open(sconn->ttys_filename, O_RDWR | O_SYNC | O_NONBLOCK | O_NOCTTY); if (sconn->fd<0){ g_snprintf(s, sizeof(s), "Can't open device %s", sconn->ttys_filename); zwrite(tpipe->threadpipe_write, zconcatesc("SC", "!", s, NULL)); fhs_unlock(sconn->ttys_filename); return -3; } if (fcntl(sconn->fd,F_SETFL,O_NONBLOCK)) { g_snprintf(s, sizeof(s), "Can't set O_NONBLOCK on %s: %s",sconn->ttys_filename, strerror_r(errno, errbuf, sizeof(errbuf)) ); zwrite(tpipe->threadpipe_write, zconcatesc("SC", "!", s, NULL)); fhs_unlock(sconn->ttys_filename); sconn->close2(sconn); return -4; } #if 0 // old buggy code tcgetattr(sconn->fd,&tio); tio.c_cflag=B9600|CS8|CLOCAL|CREAD|PARENB;/*|PARODD;*/ tio.c_iflag=INPCK; tio.c_lflag=0; tio.c_oflag=0; tio.c_cc[VMIN]=1; tio.c_cc[VTIME]=5; tcsetattr(sconn->fd,TCSANOW,&tio); #else tcgetattr(sconn->fd,&tio); cfmakeraw(&tio); cfsetispeed(&tio, B9600); cfsetospeed(&tio, B9600); tio.c_cflag |= (CLOCAL | CREAD); tio.c_cflag &= ~CSIZE; tio.c_cflag |= CS8; tio.c_cflag &= ~CSTOPB; tio.c_cflag |= PARENB; tio.c_cflag &= ~PARODD; tio.c_cflag &= ~CRTSCTS; tio.c_iflag &= ~IXON; tio.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); tio.c_oflag &= ~OPOST; tcflush(sconn->fd, TCIFLUSH); tcsetattr(sconn->fd, TCSANOW, &tio); #endif i = TIOCM_RTS; ioctl (sconn->fd, TIOCMBIS, &i); /* set */ i = TIOCM_DTR; ioctl (sconn->fd, TIOCMBIS, &i); /* set */ /* * normally 0 * 1 for debugging with atisp * */ #if 1 i = TIOCM_RTS; /* clear PSEN*/ ioctl (sconn->fd, TIOCMBIC, &i); /* clear = log.1*/ //usleep(100000); i = TIOCM_DTR; /* clear reset*/ ioctl (sconn->fd, TIOCMBIC, &i); /* clear */ #endif sconn->opened = 1; return 0; } int sconn_file_close(struct sconn *sconn){ //dbg("sconn_file_close %s\n",sconn->ttys_filename); close(sconn->fd); fhs_unlock(sconn->ttys_filename); sconn->opened = 0; return -1; } int sconn_file_read(struct sconn *sconn, void *data, size_t len, int timeout_ms){ int ret; fd_set fdr; struct timeval tv; FD_ZERO(&fdr); FD_SET(sconn->fd, &fdr); tv.tv_usec = timeout_ms * 1000; tv.tv_sec = 0; ret = select(sconn->fd+1, &fdr, NULL, NULL, &tv); // dbg("select=%d\n", ret); if (ret<0) return -1; if (ret==0) return -13; if (!FD_ISSET(sconn->fd, &fdr)) return -2; ret = read(sconn->fd, data, len); if (ret < 0) sconn->close2(sconn); return ret; } int sconn_file_write(struct sconn *sconn, void *data, size_t len){ int ret; ret = write(sconn->fd, data, len); if (ret < 0) sconn->close2(sconn); return ret; } #ifdef HAVE_LIBFTDI int sconn_ftdi_open(struct sconn *sconn, int verbose){ int ret; if (sconn->freeing) return -1; if (sconn->opened) return 0; sconn->ftdi = ftdi_new(); if (!sconn->ftdi){ if (verbose) log_addf("Can't init ftdi library for sdev"); return -1; } if (sconn->ftdi_serial && *sconn->ftdi_serial){ ret = ftdi_usb_open_desc(sconn->ftdi, sconn->ftdi_vid, sconn->ftdi_pid, NULL, sconn->ftdi_serial); if (verbose) dbg("ftdi_usb_open(%04x:%04x, '%s')=%d\n", sconn->ftdi_vid, sconn->ftdi_pid, sconn->ftdi_serial, ret); }else{ ret = ftdi_usb_open(sconn->ftdi, sconn->ftdi_vid, sconn->ftdi_pid); if (verbose) dbg("ftdi_usb_open(%04x:%04x)=%d\n", sconn->ftdi_vid, sconn->ftdi_pid, ret); } if (ret){ if (verbose) { log_addf("Can't open sdev device %04x:%04x, error=%d %s", sconn->ftdi_vid, sconn->ftdi_pid, ret, ftdi_get_error_string(sconn->ftdi)); if (ret==-8) log_addf("Maybe try to run as root: \"adduser %s dialout\" and relogin", getenv("USER")); } return -2; } ret = ftdi_set_baudrate(sconn->ftdi, 9600); if (ret){ if (verbose) log_addf("Can't set baudrate for sconn, error=%d %s", ret, ftdi_get_error_string(sconn->ftdi)); sconn->close2(sconn); return -3; } ret = ftdi_set_line_property(sconn->ftdi, BITS_8, STOP_BIT_1, EVEN); if (ret){ if (verbose) log_addf("Can't set line properties for sconn, error=%d %s", ret, ftdi_get_error_string(sconn->ftdi)); sconn->close2(sconn); return -4; } sconn->opened = 1; return 0; } int sconn_ftdi_close(struct sconn *sconn){ if (sconn->ftdi!=NULL){ ftdi_free(sconn->ftdi); sconn->ftdi=NULL; } sconn->opened = 0; return 0; } int sconn_ftdi_read(struct sconn *sconn, void *data, size_t len, int timeout_ms){ int ret; ttime start, stop; if (!sconn->opened) return -1; start = get_time(); while(1){ ret = ftdi_read_data(sconn->ftdi, data, len); if (ret < 0) { sconn->close2(sconn); break; } if (ret) break; stop = get_time(); if (stop < start) break; // time goes back, maybe ntp change if (stop - start > timeout_ms) break; usleep(1000); } // dbg("sconn_ftdi_read(len=%d)=%d\n", len, ret); return ret; } int sconn_ftdi_write(struct sconn *sconn, void *data, size_t len){ int ret; if (!sconn->opened) return -1; ret = ftdi_write_data(sconn->ftdi, data, len); if (ret < 0) sconn->close2(sconn); // dbg("sconn_ftdi_write(len=%d)=%d\n", len, ret); return ret; } #endif // HAVE_LIBFTDI gpointer sc_main(gpointer xxx){ char data[256]; int len; // struct sslave *sptr; struct sconn *sconn = (struct sconn *)xxx; dbg("sc_main\n"); sconn->open(sconn, 1); while(!sconn->thread_break){ struct sconn_job *job; struct sdev *sdev; int i, chrapej = 0; if (sconn->give_me_chance) { usleep(10000); continue; } MUTEX_LOCK(sconn->sdevs); job = sconn_job_get(sconn); //dbg("job=%p\n", job); if (!job){ i = 0; foreach (sdev, sconn->sdevs) i++; // number of sdevs if (i==0) { error("sc_main: sconn->sdevs is empty"); sleep(1); } if (sconn->sdevi >= i) sconn->sdevi = 0; i = sconn->sdevi; sdev = NULL; foreach (sdev, sconn->sdevs) { if (!i--) break; } // dbg("sdevi=%d sdev=%p main=%p\n", sconn->sdevi, sdev, sdev->sdev_main); if (sdev->sdev_main) { if (sdev->sdev_main(sdev)) chrapej++; } sconn->sdevi++; MUTEX_UNLOCK(sconn->sdevs); if (chrapej) goto zzzzz; continue; } switch(job->cmd){ case SCONN_ROT_AZIM: data[0] = job->azim & 0xff; data[1] = (job->azim >> 8) & 0xff; len=2; dbg("sd_prot(%d, %d)\n", job->sdev->saddr, job->azim); sd_prot(sconn, job->sdev->saddr, 65, data, &len, job->sdev->timeout_ms); break; } MUTEX_UNLOCK(sconn->sdevs); continue; zzzzz:; for (i=0; i<20;i++){ if (sconn->thread_break) break; usleep(100000); } } dbg("sc_main exiting\n"); sconn->close2(sconn); return NULL; } void sconn_job_add(struct sconn *sconn, struct sconn_job *job){ MUTEX_LOCK(sconn->jobs); add_to_list(sconn->jobs, job); MUTEX_UNLOCK(sconn->jobs); } struct sconn_job *sconn_job_get(struct sconn *sconn){ struct sconn_job *job; MUTEX_LOCK(sconn->jobs); if (list_empty(sconn->jobs)){ MUTEX_UNLOCK(sconn->jobs); return NULL; } job = sconn->jobs.prev; del_from_list(job); MUTEX_UNLOCK(sconn->jobs); return job; } tucnak2-2.48/src/language.h0000644000175000017500000004116411567373656012513 00000000000000/* Automatoticaly generated by gen-intl */ #define N_LANGUAGES 7 #define T__CHAR_SET 1 #define T__LANGUAGE 2 #define T_ABOUT 3 #define T_BAD_NUMBER 4 #define T_BAD_STRING 5 #define T_BASIC_HELP 6 #define T_BLOCK_CURSOR 7 #define T_CANCEL 8 #define T_CHARACTER_SET 9 #define T_COLOR 10 #define T_COPYING 11 #define T_DIFFERENCE 12 #define T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK 13 #define T_EMPTY_STRING_NOT_ALLOWED 14 #define T_ERROR 15 #define T_WARNING 16 #define T_EXIT 17 #define T_EXIT_TUCNAK 18 #define T_FILE 19 #define T_FULL_SCREEN 20 #define T_HELP 21 #define T_HK_ABOUT 22 #define T_HK_BEOS_TERMINAL 23 #define T_HK_CHARACTER_SET 24 #define T_HK_COPYING 25 #define T_HK_EXIT 26 #define T_HK_FILE 27 #define T_HK_FULL_SCREEN 28 #define T_HK_HELP 29 #define T_HK_LANGUAGE 30 #define T_HK_MEMORY_INFO 31 #define T_HK_OS_SHELL 32 #define T_HK_SCREEN 33 #define T_HK_SETUP 34 #define T_HK_TERMINAL_OPTIONS 35 #define T_HK_TWTERM 36 #define T_HK_WINDOW 37 #define T_HK_XTERM 38 #define T_KOI8R_FRAMES 39 #define T_LANGUAGE 40 #define T_LAST 41 #define T_LINUX_OR_OS2_FRAMES 42 #define T_MEMORY_INFO 43 #define T_NO_FRAMES 44 #define T_NO 45 #define T_NUMBER_EXPECTED 46 #define T_NUMBER_OUT_OF_RANGE 47 #define T_OK 48 #define T_OS_SHELL 49 #define T_RESTRICT_FRAMES_IN_CP850_852 50 #define T_UTF_8_IO 51 #define T_SCREEN 52 #define T_SETUP 53 #define T_TERMINAL_OPTIONS 54 #define T_TUCNAK__TACLOG_LIKE 55 #define T_TWTERM 56 #define T_USE_11M 57 #define T_VT_100_FRAMES 58 #define T_WELCOME_TO_TUCNAK 59 #define T_WELCOME 60 #define T_XTERM 61 #define T_YES 62 #define T_CANT_APPEND_S 63 #define T_CANT_WRITE 64 #define T_CANT_WRITE_S 65 #define T_CANT_READ 66 #define T_CANT_READ_S 67 #define T_SAVED_S 68 #define T__CW_ 69 #define T_CWW_KEYS 70 #define T_CANT_OPEN_S 71 #define T_CANT_LOCK 72 #define T_CANT_LOCK_S 73 #define T_LOADING_CTEST_S 74 #define T_NO_FILES 75 #define T_BAND_EXIST_SS 76 #define T_BAND_NOT_OPEN 77 #define T_NO_BANDS 78 #define T_CANT_SET_GR_S 79 #define T_GCALL 80 #define T_GWWL 81 #define T_GQRB 82 #define T_GQTF 83 #define T_GSEN 84 #define T_GRCV 85 #define T_GTIM 86 #define T_GOPE 87 #define T_GREM 88 #define T_GWKD 89 #define T_GINC 90 #define T_GLON 91 #define T_GLAT 92 #define T_GLOC 93 #define T__PLESE_WAIT_ 94 #define T__RO_BAND 95 #define T_COPYING_VER 96 #define T_CTEST_ACTIVE 97 #define T_NO_CTESTS 98 #define T_NO_CCLOSE 99 #define T_REALLY 100 #define T_CLOSE_CTEST 101 #define T_GUI_LD 102 #define T_SBRK 103 #define T_CWI 104 #define T_EXC 105 #define T_VEXC 106 #define T_DWI 107 #define T_NAMES 108 #define T_MASTER 109 #define T_MEMS 110 #define T_NMY 111 #define T_NGLOBAL 112 #define T_NMASTER 113 #define T_NSLAVES 114 #define T_NINFO 115 #define T_NO_BANDS_QRV 116 #define T_NO_BANDS_CONF 117 #define T_NOT_AVAILABLE 118 #define T_ADD_SUBWIN 119 #define T_HK_ADD_SUBWIN 120 #define T_CLOSE_SUBWIN 121 #define T_HK_CLOSE_SUBWIN 122 #define T_HK_NINFO 123 #define T_NEW 124 #define T_HK_NEW 125 #define T_NEW_WIZZ 126 #define T_HK_NEW_WIZZ 127 #define T_NEW_NET 128 #define T_HK_NEW_NET 129 #define T_OPEN 130 #define T_HK_OPEN 131 #define T_SAVE 132 #define T_HK_SAVE 133 #define T_EXPORT_EDI 134 #define T_HK_EXPORT_EDI 135 #define T_EXPORT_REPORT 136 #define T_HK_EXPORT_REPORT 137 #define T_EXPORT_ADIF 138 #define T_HK_EXPORT_ADIF 139 #define T_EXPORT_CBR 140 #define T_HK_EXPORT_CBR 141 #define T_EXPORT_HTML 142 #define T_HK_EXPORT_HTML 143 #define T_EXPORT_WIKI 144 #define T_HK_EXPORT_WIKI 145 #define T_IMPORT_EDI 146 #define T_HK_IMPORT_EDI 147 #define T_IMPORT_ADIF 148 #define T_HK_IMPORT_ADIF 149 #define T_IMPORT_SWAP 150 #define T_HK_IMPORT_SWAP 151 #define T_IMPORT_LIST 152 #define T_HK_IMPORT_LIST 153 #define T_CONTEST_OP 154 #define T_HK_CONTEST_OP 155 #define T_CLOSE_CONTEST 156 #define T_HK_CLOSE_CONTEST 157 #define T_ADD_ERROR 158 #define T_HK_ADD_ERROR 159 #define T_CHOP 160 #define T_HK_CHOP 161 #define T_CW_CTEST 162 #define T_HK_CW_CTEST 163 #define T_CW_BAND 164 #define T_HK_CW_BAND 165 #define T_EXC_CTEST 166 #define T_HK_EXC_CTEST 167 #define T_EXC_BAND 168 #define T_HK_EXC_BAND 169 #define T_IMPORT_EBW 170 #define T_HK_IMPORT_EBW 171 #define T_NO_CTEST 172 #define T_NO_PEERS 173 #define T_NO_MASTER 174 #define T_CTEST_DEF 175 #define T_HK_CTEST_DEF 176 #define T_BAND_DEF 177 #define T_HK_BAND_DEF 178 #define T_HK_RESPOP 179 #define T_CW_DAEMON 180 #define T_HK_CW_DAEMON 181 #define T_CW_CQ 182 #define T_HK_CW_CQ 183 #define T_SSB_CQ 184 #define T_HK_SSB_CQ 185 #define T_AUTOSAVE 186 #define T_HK_AUTOSAVE 187 #define T_LOAD_CFG_NET 188 #define T_HK_LOAD_CFG_NET 189 #define T_LOAD_CW_NET 190 #define T_HK_LOAD_CW_NET 191 #define T_SAVE_CFG 192 #define T_HK_SAVE_CFG 193 #define T_CONTEST 194 #define T_HK_CONTEST 195 #define T_EDIT 196 #define T_HK_EDIT 197 #define T_BANDS 198 #define T_HK_BANDS 199 #define T_SUBWINS 200 #define T_HK_SUBWINS 201 #define T_BAND_SETTINGS_SC 202 #define T_QRV_ON_THIS_BAND 203 #define T_QRV_IN_THIS_CTEST 204 #define T_READ_ONLY 205 #define T_MULTI 206 #define T_SINGLE 207 #define T_CHECK 208 #define T_TXEQUIP 209 #define T_POWER 210 #define T_RXEQUIP 211 #define T_ANTENNA 212 #define T_AGLASL 213 #define T_OPS 214 #define T_SPACES1 215 #define T_REMARKS 216 #define T_OK_SECTION_SINGLE 217 #define T_OK_SECTION_MULTI 218 #define T_QRG_MIN 219 #define T_QRG_MAX 220 #define T_ADIFBAND 221 #define T_SKEDQRG 222 #define T_BAND_LO 223 #define T_BANDSW 224 #define T_RESPOP 225 #define T_NAME 226 #define T_CALLSIGN 227 #define T_ADDRESS 228 #define T_POSTCODE 229 #define T_CITY 230 #define T_COUNTRY 231 #define T_PHONE 232 #define T_BBSEMAIL 233 #define T_QP0 234 #define T_QP1 235 #define T_QP2 236 #define T_QP3 237 #define T_QP4 238 #define T_QP5 239 #define T_QP6 240 #define T_QP7 241 #define T_QP8 242 #define T_QP9 243 #define T_QP10 244 #define T_QP11 245 #define T_QP12 246 #define T_QP13 247 #define T_QP14 248 #define T_QP15 249 #define T_QP16 250 #define T_TP0 251 #define T_TP1 252 #define T_TP2 253 #define T_TP3 254 #define T_TP4 255 #define T_NEW_CTEST 256 #define T_CANT_TRUNC 257 #define T_NAME_OF_CTEST 258 #define T_CALL_OF_CTEST 259 #define T_CLUB_ST 260 #define T_YOURWWL 261 #define T_YOUREXC 262 #define T_DATE_OF_CTEST 263 #define T_QSOUSED 264 #define T_QSOPM 265 #define T_WWLUSED 266 #define T_WWLB 267 #define T_WWLM 268 #define T_EXCUSED 269 #define T_EXCB 270 #define T_EXCM 271 #define T_EXCNAME 272 #define T_PREFM 273 #define T_DXCB 274 #define T_DXCM 275 #define T_RSTUSED 276 #define T_DEFRS 277 #define T_DEFRST 278 #define T_ALSORSTR 279 #define T_QP_CALC 280 #define T_TO_CALC 281 #define T_EDI_PROP 282 #define T_RESPOP2 283 #define T_EDIT_QSO_CD 284 #define T_CALLSIGN2 285 #define T_CLUB 286 #define T_PADR1 287 #define T_PADR2 288 #define T_RS 289 #define T_RST 290 #define T_OPERATOR 291 #define T_DATE 292 #define T_MODE 293 #define T_RSTS 294 #define T_RSTR 295 #define T_QSONRS 296 #define T_QSONRR 297 #define T_OPTEXCH 298 #define T_WWL 299 #define T_REMARK 300 #define T_QRV2 301 #define T_WKD 302 #define T_SEND_SKED 303 #define T_SELECT 304 #define T_QRG 305 #define T_WE_CALL 306 #define T_BAND 307 #define T_TIME 308 #define T_DUPE_QSO 309 #define T_CLEAR_THIS_QSO 310 #define T_EDIT_OLD_QSO 311 #define T_MARK_OLD_QSO 312 #define T_STORE_AS_DUPE 313 #define T_BAD_CALL 314 #define T_N_CALLSIGN 315 #define T_AUTOSAVE_OPTS 316 #define T_SAVE_AQ 317 #define T_SAVE_AM 318 #define T_FSYNC 319 #define T_SAVE_AQF 320 #define T_SAVE_AMF 321 #define T_DO_MOUNT 322 #define T_FLOPPY_PATH 323 #define T_MOUNT_CMD 324 #define T_SW_SHELL 325 #define T_SW_QSOS 326 #define T_SW_LOG 327 #define T_SW_TALK 328 #define T_SW_SKED 329 #define T_SW_UNFI 330 #define T_SW_DXC 331 #define T_SW_STAT 332 #define T_SW_MAP 333 #define T_SW_SCOPE 334 #define T_SW_QRV 335 #define T_SW_HF 336 #define T_SW_PLAYER 337 #define T_SW_CHART 338 #define T_SHELL 339 #define T_QSOS 340 #define T_LOG 341 #define T_TALK 342 #define T_SKEDS 343 #define T_UNFI 344 #define T_DXC 345 #define T_STAT 346 #define T_SWAP 347 #define T_MAP 348 #define T_SCOPE 349 #define T_QRV 350 #define T_HF 351 #define T_CMD 352 #define T_RESPAWN 353 #define T_UNFI_QSO 354 #define T_N_REMARK 355 #define T_NO_CQ 356 #define T_TEXT 357 #define T_SPEED 358 #define T_REPEAT 359 #define T_DELAY 360 #define T_ALLOW_UNDEF 361 #define T_CW_DSCS 362 #define T_FILENAME 363 #define T_SSB_DSCS 364 #define T_UDPPORT 365 #define T_DEVICE 366 #define T_INIT_SPEED 367 #define T_INIT_WEIGHT 368 #define T_WPMFROM 369 #define T_WPMTO 370 #define T_USE_SPK 371 #define T_LEADIN 372 #define T_AUTGIVE 373 #define T_IGN_IFACE_S 374 #define T_IGN_ADDR_S 375 #define T_ADD_IFACE_SSD 376 #define T_FORCED_ADDR 377 #define T_TIMESKEW 378 #define T_DISCONNECTING_SD 379 #define T_ACCEPTED_SD 380 #define T_CONNECTING_SD 381 #define T_CONNECTED_SD 382 #define T_DISCONNECTED_SD 383 #define T_LOADED_CFG_SSSS 384 #define T_LOADED_CW 385 #define T_PEER_NOT_FOUND 386 #define T_CANT_CREATE_HOME_S 387 #define T_CANT_LOAD_CFG 388 #define T_ERR_RC 389 #define T_SES_QTR 390 #define T_SES_QRA 391 #define T_SES_RST 392 #define T_SES_QTH 393 #define T_SES_QRB 394 #define T_SES_FLG 395 #define T_SES_OPE 396 #define T_SES_EXC 397 #define T_SES_REM 398 #define T_SES_WELCOME 399 #define T_SES_PRESS_F10 400 #define T_SES_HAVE_FUN 401 #define T_SES_URL 402 #define T_SES_ODX 403 #define T_SES_ODX_DATA 404 #define T_SES_STAT_TIT 405 #define T_SES_AVG 406 #define T_SES_WPM 407 #define T_SF_WWLS 408 #define T_SF_WWLS_UNDER 409 #define T_SF_EXCS 410 #define T_SF_EXCS_UNDER 411 #define T_SF_MISS_EXCS 412 #define T_SF_MISS_EXCS_UNDER 413 #define T_SF_PREFS 414 #define T_SF_PREFS_UNDER 415 #define T_SF_DXCS 416 #define T_SF_DXCS_UNDER 417 #define T_SF_WKD_WWLS 418 #define T_SF_WKD_WWLS_UNDER 419 #define T_SF_QSO_WWL4 420 #define T_SF_QSO_WWL4_UNDER 421 #define T_SF_STATS_BAND 422 #define T_SF_STATS_BAND_UNDER 423 #define T_SF_CONTEST 424 #define T_SF_ALLBQSOS 425 #define T_SF_ALLBQSOP 426 #define T_SF_ALLBPTS 427 #define T_SF_QSOS 428 #define T_SF_QSOP 429 #define T_SF_PTS 430 #define T_SF_AVG_PTS 431 #define T_SF_AVG_QSOP 432 #define T_BAND_RO 433 #define T_THIS_BAND 434 #define T_OTHER_BANDS 435 #define T_CW_DB 436 #define T_PROC_EXITED 437 #define T_WE_CALL2 438 #define T_WE_LISTEN 439 #define T_QSL 440 #define T_RECORD 441 #define T_MAXMIN 442 #define T_TEMPLATE 443 #define T_PCM8 444 #define T_PCM16 445 #define T_ULAW 446 #define T_ALAW 447 #define T_IMAADPCM 448 #define T_MSADPCM 449 #define T_GSM610 450 #define T_CHANNELS 451 #define T_SAMPLERATE 452 #define T_FILLOP 453 #define T_HK_FILLOP 454 #define T_RECAQRB 455 #define T_HK_RECAQRB 456 #define T_NETWORK 457 #define T_HK_NETWORK 458 #define T_IF_IGNORE 459 #define T_IP_IGNORE 460 #define T_IP_ANNOUNCE 461 #define T_TRACE_BCAST 462 #define T_TRACE_SOCK 463 #define T_TRACE_RECV 464 #define T_TRACE_SEND 465 #define T_TRACE_QSOS 466 #define T_TRACE_SDEV 467 #define T_NOT_MOUNTED_S 468 #define T_RECSRC_NONE 469 #define T_RECSRC_MIC 470 #define T_RECSRC_LINE 471 #define T_NEW_CALL 472 #define T_HK_NEW_CALL 473 #define T_QRV_ON_S 474 #define T_SKED_QRG 475 #define T_HK_SKED_QRG 476 #define T_N_SKED_QRG 477 #define T_GRAB_BAND 478 #define T_HK_GRAB_BAND 479 #define T_FORCE_RUN 480 #define T_HK_FORCE_RUN 481 #define T_EXPORT_STATS 482 #define T_HK_EXPORT_STATS 483 #define T_SF_TOP_DX 484 #define T_SF_TOP_DX_UNDER 485 #define T_ROTAR 486 #define T_HK_ROTAR 487 #define T_AZIMUTH 488 #define T_ELEVATION 489 #define T_CH_SPY 490 #define T_HK_CH_SPY 491 #define T_CH_ENDSPY 492 #define T_HK_CH_ENDSPY 493 #define T_EXPORT_TITLPAGE 494 #define T_HK_EXPORT_TITLPAGE 495 #define T_BREAK_RECORD 496 #define T_HK_BREAK_RECORD 497 #define T_GLOBAL_OPERATOR 498 #define T_GLOBAL_OPERATOR2 499 #define T_MAXFRAG 500 #define T_PLAY_LAST 501 #define T_HK_PLAY_LAST 502 #define T_MISCOPTS 503 #define T_HK_MISCOPTS 504 #define T_LOGLINES 505 #define T_SKEDSHIFT 506 #define T_STARTBAND 507 #define T_GFX_X_CH 508 #define T_GFX_Y_CH 509 #define T_GFX_X_PX 510 #define T_GFX_Y_PX 511 #define T_CALL_INFO 512 #define T_HK_CALL_INFO 513 #define T_SF_QSO_HOUR 514 #define T_SF_QSOP_HOUR 515 #define T_SF_QSOP_50QSO 516 #define T_SF_HOURS 517 #define T_SF_HOURS_UNDER 518 #define T_SF_HOURS_TITLE 519 #define T_QSO_CHECK 520 #define T_HK_QSO_CHECK 521 #define T_AUDIO 522 #define T_HK_AUDIO 523 #define T_ALSA 524 #define T_OSS 525 #define T_SSBD 526 #define T_DISKFREE 527 #define T_FORMAT 528 #define T_PCM_PLAY 529 #define T_PCM_REC 530 #define T_PERIOD 531 #define T_BUFFER 532 #define T_ALSA_MIXER 533 #define T_CAPTURE 534 #define T_DSP 535 #define T_MIXER 536 #define T_RECSRC 537 #define T_SSBD_HOSTNAME 538 #define T_HOSTNAME 539 #define T_SLASHKEY 540 #define T_FIXQRG 541 #define T_HK_FIXQRG 542 #define T_ENTER_QRG 543 #define T_BAD_QRG 544 #define T_CALLSIGN3 545 #define T_CALLSIGN_KST 546 #define T_CANT_INIT_WINKEY_S 547 #define T_WINKEYOPTS 548 #define T_WK_WK2 549 #define T_WK_USEPOT 550 #define T_WK_USEBUT 551 #define T_WK_KM_B 552 #define T_WK_KM_A 553 #define T_WK_KM_U 554 #define T_WK_KM_G 555 #define T_WK_SWAP 556 #define T_RIGOPTS 557 #define T_HK_RIGOPTS 558 #define T_RIG_DEVICE 559 #define T_RIG_MODEL 560 #define T_RIG_SPEED 561 #define T_RIG_CIV 562 #define T_RIG_FREQSHIFT 563 #define T_RIG_CHOOSE 564 #define T_ROTAROPTS 565 #define T_HK_ROTAROPTS 566 #define T_DSSAVER 567 #define T_DESC 568 #define T_ROT_NONE 569 #define T_ROT_OK1ZIA_TTYS 570 #define T_ROT_OK1ZIA_FTDI 571 #define T_ROT_HAMLIB 572 #define T_ROT_REMOTE 573 #define T_ROT_VID 574 #define T_ROT_PID 575 #define T_ROT_SERIAL 576 #define T_ROT_ADD 577 #define T_HK_ROT_ADD 578 #define T_ROT_REMOVE 579 #define T_HK_ROT_REMOVE 580 #define T_TIMEOUT 581 #define T_BEAMWIDTH 582 #define T_SADDR 583 #define T_MODEL 584 #define T_ROT_REM_ROTSTR 585 #define T_QSOGLOB 586 #define T_PREFGLOB 587 #define T_NOT_RECORDING_S 588 #define T_SKEDCOUNT 589 #define T_FONTHEIGHT 590 #define T_RIG_POLL_MS 591 #define T_RIG_QRG_R2T 592 #define T_RIG_QRG_T2R 593 #define T_RIG_MODE_T2R 594 #define T_RUN_MODE 595 #define T_HK_RUN_MODE 596 #define T_SP_MODE 597 #define T_HK_SP_MODE 598 #define T_RIG_CLR_RIT 599 #define T_RIG_DEBUG 600 #define T_HF_RATE 601 #define T_HF_BAND 602 #define T_HF_SUM 603 #define T_HF_LAST 604 #define T_EVEN 605 #define T_HK_EVEN 606 #define T_ODD 607 #define T_HK_ODD 608 #define T_1ST 609 #define T_HK_1ST 610 #define T_2ND 611 #define T_HK_2ND 612 #define T_HF_SCORE 613 #define T_EXPMODE 614 #define T_TTTYPE 615 #define T__N_TEXTS 616 tucnak2-2.48/src/terminal.c0000644000175000017500000007666611567373656012555 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" struct terminal *term; struct window *gseswin; int hard_write(int fd, char *p, int l) { int w, t; if (fd<0) return -1; w = 1; t = 0; while (l > 0 && w) { if ((w = write(fd, p, l)) < 0) { if (errno == EINTR) continue; return -1; } t += w; p += w; l -= w; } return t; } int hard_read(int fd, char *p, int l) { int r = 1; int t = 0; while (l > 0 && r) { if ((r = read(fd, p, l)) < 0) { if (errno == EINTR) continue; return -1; } /*{int ww;for(ww=0;wwscreen, x * y * sizeof(unsigned)))) { if ((t = mem_realloc(term->last_screen, x * y * sizeof(unsigned)))) { memset(t, -1, x * y * sizeof(unsigned)); term->x = x; term->y = y; term->last_screen = t; memset(s, 0, x * y * sizeof(unsigned)); term->screen = s; term->dirty = 1; } } #ifdef FALL int i; if (term->fall != NULL) { term->fall = mem_realloc(term->fall, x * y * sizeof(int)); for (i = 0; i < x * y; i++) term->fall[i] = i; }else{ term->fall = mem_alloc(x * y * sizeof(int)); for (i = 0; i < x * y; i++) term->fall[i] = i; } #endif } void in_term(cba_t); void check_if_no_terminal(void); void clear_terminal(void) { if (!term) return; fill_area(0, 0, term->x, term->y, ' '); set_cursor(0, 0, 0, 0); } void redraw_terminal_ev(struct terminal *term, int e) { struct window *win; struct event ev = {0, 0, 0, 0}; if (!term) return; ev.ev = e; ev.x = term->x; ev.y = term->y; clear_terminal(); term->redrawing = 2; foreachback(win, term->windows) win->handler(win, &ev, 0); term->redrawing = 0; #ifdef FALL if (term->fall){ int i; for (i = term->x * term->y; i >= 0; i--){ if (term->fall[i] < 0) term->screen[i] = ' '; else term->screen[i] = term->screen[term->fall[i]]; } } #endif } #define ISSPACE(idx) ((term->screen[idx] & 0xff) == ' ' || (term->screen[idx] & 0xff) == '\0') #ifdef FALL void fall_func(union cba_t cba){ int s, d, j; // static iii = 0; if (term && term->fall){ for (j = 0; j < 1000; j++){ s = rand() % (term->x * term->y); if (ISSPACE(s)) continue; for (d = s + term->x; ISSPACE(d) && d < (term->x * term->y); d += term->x); d -= term->x; if (!ISSPACE(d)) continue; term->fall[d] = term->fall[s]; term->fall[s] = -1; break; } } gses->fall_id = install_timer(10, fall_func, CBA0); redraw_later(); } #endif void redraw_terminal(cba_t cba) { /*if (!term) return;*/ //dbg("redraw_terminal()\n"); redraw_terminal_ev(term, EV_REDRAW); } void redraw_terminal_all(void) { if (!term) return; redraw_terminal_ev(term, EV_RESIZE); } /*void timer_redraw(cba_t cba){ register_bottom_half(redraw_terminal, CBA0); gses->redraw_timer_id = 0; } */ void redraw_later(void) { if (!term) return; //dbg("redraw_later()\n"); register_bottom_half(redraw_terminal, CBA0); /*if (!gses){ register_bottom_half(redraw_terminal, CBA0); return; } if (!gses->redraw_timer_id) gses->redraw_timer_id = install_timer(100, timer_redraw, CBA0);*/ } void erase_screen(void) { if (!term) return; if (!term->master || !is_blocked()) { if (term->master) want_draw(); hard_write(term->fdout, "\033[2J\033[1;1H", 10); if (term->master) done_draw(); } } void redraw_terminal_cls() { if (!term) return; erase_screen(); alloc_term_screen(term, term->x, term->y); redraw_terminal_all(); } /*void cls_redraw_all_terminals() { struct terminal *term; foreach(term, terminals) redraw_terminal_cls(term); } */ void redraw_from_window(struct window *win) { struct terminal *term = win->term; struct window *end = (void *)&term->windows; struct event ev = {EV_REDRAW, 0, 0, 0}; ev.x = term->x; ev.y = term->y; if (term->redrawing) return; term->redrawing = 1; for (win = win->prev; win != end; win = win->prev) { win->handler(win, &ev, 0); } term->redrawing = 0; } void redraw_below_window(struct window *win) { int tr; struct terminal *term = win->term; struct window *end = win; struct event ev = {EV_REDRAW, 0, 0, 0}; ev.x = term->x; ev.y = term->y; if (term->redrawing >= 2) return; tr = term->redrawing; win->term->redrawing = 2; for (win = term->windows.prev; win != end; win = win->prev) { win->handler(win, &ev, 0); } term->redrawing = tr; } void add_window_at_pos(void (*handler)(struct window *, struct event *, int), void *data, struct window *at) { struct event ev = {EV_INIT, 0, 0, 0}; struct window *win; ev.x = term->x; ev.y = term->y; if (!(win = mem_alloc(sizeof (struct window)))) { mem_free(data); return; } win->handler = handler; win->data = data; win->term = term; win->xp = win->yp = 0; add_at_pos(at, win); win->handler(win, &ev, 0); } void add_window(void (*handler)(struct window *, struct event *, int), void *data) { add_window_at_pos(handler, data, (struct window *)&term->windows); } void delete_window(struct window *win) { struct event ev = {EV_ABORT, 0, 0, 0}; win->handler(win, &ev, 1); del_from_list(win); if (win->data) mem_free(win->data); redraw_terminal(CBA0); mem_free(win); } void delete_window_ev(struct window *win, struct event *ev) { struct window *w = win->next; if ((void *)w == &win->term->windows) w = NULL; delete_window(win); if (ev && w && w->next != w) w->handler(w, ev, 1); } void set_window_ptr(struct window *win, int x, int y) { win->xp = x; win->yp = y; } void get_parent_ptr(struct window *win, int *x, int *y) { if ((void *)win->next != &win->term->windows) { *x = win->next->xp; *y = win->next->yp; } else { *x = *y = 0; } } struct window *get_root_window() { if (list_empty(term->windows)) { internal_("terminal has no windows"); return NULL; } return (struct window *)term->windows.prev; } struct ewd { void (*fn)(void *); void *data; int b; }; void empty_window_handler(struct window *win, struct event *ev, int fwd) { struct window *n; struct ewd *ewd = win->data; int x, y; void (*fn)(void *) = ewd->fn; void *data = ewd->data; if (ewd->b) return; switch (ev->ev) { case EV_INIT: case EV_RESIZE: case EV_REDRAW: get_parent_ptr(win, &x, &y); set_window_ptr(win, x, y); return; case EV_ABORT: fn(data); return; } ewd->b = 1; n = win->next; delete_window(win); fn(data); if (n->next != n) n->handler(n, ev, fwd); } /*void add_empty_window(void (*fn)(void *), void *data) { struct ewd *ewd; if (!(ewd = mem_alloc(sizeof(struct ewd)))) return; ewd->fn = fn; ewd->data = data; ewd->b = 0; add_window(empty_window_handler, ewd); } */ void free_term_specs() { /* free_list(term_specs);*/ while (term_specs.next != &(term_specs)) { struct term_spec *a=term_specs.next; del_from_list(a); mem_free(a); } } struct term_spec term_specs = {&term_specs, &term_specs}; struct term_spec dumb_term = { NULL, NULL, "", 0, 0, 0, 0, 0, 0 }; struct term_spec *get_term_spec(char *term) { struct term_spec *t; foreach(t, term_specs) if (!strcasecmp(t->term, term)) return t; return &dumb_term; } struct term_spec *new_term_spec(char *term) { struct term_spec *t; foreach(t, term_specs) if (!strcasecmp(t->term, term)) return t; if (!(t = mem_alloc(sizeof(struct term_spec)))) return NULL; memcpy(t, &dumb_term, sizeof(struct term_spec)); if (strlen(term) < MAX_TERM_LEN) strcpy(t->term, term); else memcpy(t->term, term, MAX_TERM_LEN - 1), t->term[MAX_TERM_LEN - 1] = 0; add_to_list(term_specs, t); sync_term_specs(); return t; } void sync_term_specs() { if (!term) return; term->spec = get_term_spec(term->term); } struct terminal *init_term(int fdin, int fdout, void (*root_window)(struct window *, struct event *, int)) { struct terminal *term; struct window *win; if (!(term = mem_alloc(sizeof (struct terminal)))) { terminate=1; return NULL; } memset(term, 0, sizeof(struct terminal)); term->fdin = fdin; term->fdout = fdout; term->master = term->fdout == get_output_handle(); /*term->x = 0; term->y = 0; term->cx = 0; term->cy = 0;*/ term->lcx = -1; term->lcy = -1; term->dirty = 1; term->redrawing = 0; term->blocked = -1; term->screen = DUMMY; term->last_screen = DUMMY; term->spec = &dumb_term; term->term[0] = 0; term->cwd[0] = 0; term->input_queue = DUMMY; term->qlen = 0; init_list(term->windows); if (!(win = mem_alloc(sizeof (struct window)))) { mem_free(term); terminate=1; return NULL; } win->handler = root_window; win->data = NULL; win->term = term; add_to_list(term->windows, win); if (fdin!=-1){ set_handlers(fdin, in_term, NULL, destroy_terminal, CBA0); } gseswin = win; return term; } void term_send_event(struct terminal *term, struct event *ev) { struct window *win; /* assert(ev && term && !list_empty(term->windows));*/ /* if_assert_failed return;*/ win = term->windows.next; win->handler(win, ev, 0); } static void term_send_ucs(struct terminal *term, struct event *ev, unicode_val u) { char *recoded; recoded = u2cp(u, term->spec->charset); if (!recoded) recoded = "*"; while (*recoded) { ev->x = *recoded; term_send_event(term, ev); recoded++; } } #define get_bool_opt(s, opt) (s->opt == 1 ? 1 : 0) void in_term(cba_t cba) { struct event *ev; int r, err; char *iq, *c; if (!(iq = (char*)mem_realloc(term->input_queue, term->qlen + ALLOC_GR))) { destroy_terminal(CBA0); return; } term->input_queue = iq; #if defined(_MSC_VER) || defined(__MINGW32__) r = recv(term->fdin, iq + term->qlen, ALLOC_GR, 0); err = sock_errno; #else r = read(term->fdin, iq + term->qlen, ALLOC_GR); err = errno; #endif if (r <= 0) { if (r == -1/* && errno != ECONNRESET*/) internal_("ERROR: error %d on terminal: could not read event", err); destroy_terminal(CBA0); return; } #ifdef HAVE_SDL if (sdl){ MUTEX_LOCK(sdl->eventpipestate); sdl->eventpipestate-=r; /* dbg("r %d\n", sdl->eventpipestate);*/ MUTEX_UNLOCK(sdl->eventpipestate); } #endif term->qlen += r; test_queue: if (term->qlen < sizeof(struct event)) return; ev = (struct event *)iq; // dbg("in_term [%d,%d,%d,%d]\n",ev->ev,ev->x,ev->y,ev->b); /* dbg("in_term qlen=%d\n", term->qlen);*/ if (term->qlen > sizeof(struct event) && /* more than one event */ ev->ev==EV_KBD && ev->x==KBD_TAB){ /* processing TAB keypress */ for (c=iq+sizeof(struct event); cqlen;c+=sizeof(struct event)){ ev = (struct event *)c; /*dbg("in_term c=%d [%d,%d,%d,%d]\n",(c-iq)/sizeof(struct event),ev->ev,ev->x,ev->y,ev->b);*/ if (ev->ev!=EV_KBD || ev->x!=KBD_TAB) continue; ev->ev=EV_SKIP; } } ev = (struct event *)iq; r = sizeof(struct event); if (ev->ev != EV_INIT && ev->ev != EV_RESIZE && ev->ev != EV_REDRAW && ev->ev != EV_KBD && ev->ev != EV_MOUSE && ev->ev != EV_ABORT && ev->ev!=EV_SDLRESIZE && ev->ev!=EV_SKIP) { error("ERROR: error on terminal: bad event %d", ev->ev); goto mm; } if (ev->ev == EV_INIT) { char *ts; int xwin; xwin = is_xterm() * ENV_XWIN + can_twterm() * ENV_TWIN + (!!getenv("STY")) * ENV_SCREEN + get_system_env(); if (!(ts = getenv("TERM"))) ts = ""; // dbg("in_term ts=%s\n", ts); strcpy(term->term, ts); if (!(ts = get_cwd()) && !(ts = stracpy(""))) goto neni_pamet; strcpy(term->cwd, ts); mem_free(ts); neni_pamet:; term->environment=xwin; sync_term_specs(); } if (ev->ev == EV_SDLRESIZE){ // dbg("EV_SDLRESIZE(%d,%d) (%d,%d)\n", ev->x, ev->y, ev->mx, ev->my); #ifdef HAVE_SDL if (sdl) { cfg->gfx_x=ev->mx; cfg->gfx_y=ev->my; sdl_setvideomode(ev->mx, ev->my, 0); } #endif resize_terminal(CBA0); } if (ev->ev == EV_REDRAW || ev->ev == EV_RESIZE || ev->ev == EV_INIT) { struct window *win; send_redraw: if (ev->x < 0 || ev->y < 0) { error("ERROR: bad terminal size: %d, %d", (int)ev->x, (int)ev->y); goto mm; } alloc_term_screen(term, ev->x, ev->y); clear_terminal(); erase_screen(); term->redrawing = 1; foreachback(win, term->windows) win->handler(win, ev, 0); term->redrawing = 0; } if (ev->ev == EV_MOUSE && preferred_func(ev)) term_send_event(term, ev); if (ev->ev == EV_KBD) { if (upcase(ev->x) == (int)'L' && ev->y == KBD_CTRL) { ev->ev = EV_REDRAW; ev->x = term->x; ev->y = term->y; goto send_redraw; } else if (ev->x == KBD_CTRL_C) ((struct window *)&term->windows)->prev->handler(term->windows.prev, ev, 0); else if (preferred_func(ev)) { /* ((struct window *)&term->windows)->next->handler(term->windows.next, ev, 0);*/ int utf8_io = -1; if (term->utf_8.len) { utf8_io = get_bool_opt(term->spec, utf_8_io); if ((ev->x & 0xC0) == 0x80 && utf8_io) { term->utf_8.ucs <<= 6; term->utf_8.ucs |= ev->x & 0x3F; if (! --term->utf_8.len) { unicode_val u = term->utf_8.ucs; if (u < term->utf_8.min) u = UCS_NO_CHAR; term_send_ucs(term, ev, u); } goto mm; } else { term->utf_8.len = 0; term_send_ucs(term, ev, UCS_NO_CHAR); } } if (ev->x < 0x80 || ev->x > 0xFF || (utf8_io == -1 ? !get_bool_opt(term->spec, utf_8_io) : !utf8_io)) { term_send_event(term, ev); goto mm; } else if ((ev->x & 0xC0) == 0xC0 && (ev->x & 0xFE) != 0xFE) { register unsigned int mask, cov = 0x80; int len = 0; for (mask = 0x80; ev->x & mask; mask >>= 1) { len++; term->utf_8.min = cov; cov = 1 << (1 + 5 * len); } term->utf_8.len = len - 1; term->utf_8.ucs = ev->x & (mask - 1); goto mm; } term_send_ucs(term, ev, UCS_NO_CHAR); } } if (ev->ev == EV_ABORT) destroy_terminal(CBA0); /*redraw_screen(term);*/ mm: if (term->qlen == r) term->qlen = 0; else memmove(iq, iq + r, term->qlen -= r); goto test_queue; } inline int getcompcode(int c) { return (c<<1 | (c&4)>>2) & 7; } char frame_dumb[49] = " ||||++||++++++--|-+||++--|-+----++++++++ "; char frame_vt100[49] = "aaaxuuukkuxkjjjkmvwtqnttmlvwtqnvvwwmmllnnjla "; /* For UTF8 I/O */ static char frame_vt100_u[48] = { 177, 177, 177, 179, 180, 180, 180, 191, 191, 180, 179, 191, 217, 217, 217, 191, 192, 193, 194, 195, 196, 197, 195, 195, 192, 218, 193, 194, 195, 196, 197, 193, 193, 194, 194, 192, 192, 218, 218, 197, 197, 217, 218, 177, 32, 32, 32, 32 }; char frame_koi[48] = { 144,145,146,129,135,178,180,167, 166,181,161,168,174,173,172,131, 132,137,136,134,128,138,175,176, 171,165,187,184,177,160,190,185, 186,182,183,170,169,162,164,189, 188,133,130,141,140,142,143,139, }; char frame_restrict[48] = { 0, 0, 0, 0, 0, 179, 186, 186, 205, 0, 0, 0, 0, 186, 205, 0, 0, 0, 0, 0, 0, 0, 179, 186, 0, 0, 0, 0, 0, 0, 0, 205, 196, 205, 196, 186, 205, 205, 186, 186, 179, 0, 0, 0, 0, 0, 0, 0, }; /* characters 128-159 are special for xterm unless * *VT100*allowC1Printable property is not set */ #define PRINT_CHAR(p) \ { \ unsigned ch = term->screen[p]; \ unsigned char c = ch & 0xff; \ unsigned char A = ch >> 8 & 0x7f; \ int charset = s->charset; \ if (s->mode == TERM_LINUX) { \ if (s->m11_hack) { \ if (ch >> 15 != mode) { \ if (!(mode = ch >> 15)) \ add_to_str(&a, &l, "\033[10m"); \ else \ add_to_str(&a, &l, "\033[11m"); \ } \ } \ if ((mode = ch >> 15) && c >= 176 && c < 224) { \ charset = get_cp_index("cp437"); \ if (s->restrict_852 && frame_restrict[c - 176]) \ c = frame_restrict[c - 176]; \ } \ } else if (s->mode == TERM_VT100) { \ if (ch >> 15 != mode) { \ if (!(mode = ch >> 15)) \ add_to_str(&a, &l, "\x0f"); \ else \ add_to_str(&a, &l, "\x0e"); \ } \ if (mode && c >= 176 && c < 224) { \ charset = get_cp_index("cp437"); \ if (get_bool_opt(s, utf_8_io) \ && strcasecmp(term->term, "xterm")) \ c = frame_vt100_u[c - 176]; \ else \ c = frame_vt100[c - 176]; \ } \ } else if (s->mode == TERM_KOI8) { \ if (ch >> 15 != mode && (mode = ch >> 15)) \ charset = get_cp_index("koi8-r"); \ if (mode && c >= 176 && c < 224) \ c = frame_koi[c - 176]; \ } else if (s->mode == TERM_DUMB && (ch >> 15) && c >= 176 && c < 224) \ c = frame_dumb[c - 176]; \ if (!(A & 0100) && (A >> 3) == (A & 7)) \ A = (A & 070) | 7 * !(A & 020); \ if (A != attrib) { \ attrib = A; \ add_to_str(&a, &l, "\033[0"); \ if (s->col) { \ char m[4]; \ m[0] = ';'; m[1] = '3'; m[3] = 0; \ m[2] = (attrib & 7) + '0'; \ add_to_str(&a, &l, m); \ m[1] = '4'; \ m[2] = (attrib >> 3 & 7) + '0'; \ add_to_str(&a, &l, m); \ } else if (getcompcode(attrib & 7) < getcompcode(attrib >> 3 & 7)) \ add_to_str(&a, &l, ";7"); \ if (attrib & 0100) \ add_to_str(&a, &l, ";1"); \ add_to_str(&a, &l, "m"); \ } \ if (c>=' ' && (c<127 || c>159) && c!=255) { \ if (get_bool_opt(s, utf_8_io)) \ add_to_str(&a, &l, cp2utf_8(charset, c)); \ else \ add_chr_to_str(&a, &l, c); \ } \ else if (!c || c == 1) add_chr_to_str(&a, &l, ' '); \ else add_chr_to_str(&a, &l, '.'); \ cx++; \ } \ /*void redraw_all_terminals() { struct terminal *term; foreach(term, terminals) redraw_screen(term); }*/ void term_redraw_screen() { int x, y, p = 0; int cx = -1, cy = -1; /*unsigned*/ char *a; int attrib = -1; int mode = -1; int l = 0; struct term_spec *s; if (!term->dirty || (term->master && is_blocked())) return; if (!(a = init_str())) return; s = term->spec; for (y = 0; y < term->y; y++) for (x = 0; x < term->x; x++, p++) { if (y == term->y - 1 && x == term->x - 1) break; if (term->screen[p] == term->last_screen[p]) continue; if ((term->screen[p] & 0x3800) == (term->last_screen[p] & 0x3800) && ((term->screen[p] & 0xff) == 0 || (term->screen[p] & 0xff) == 1 || (term->screen[p] & 0xff) == ' ') && ((term->last_screen[p] & 0xff) == 0 || (term->last_screen[p] & 0xff) == 1 || (term->last_screen[p] & 0xff) == ' ')) continue; if (cx == x && cy == y) goto pc;/*PRINT_CHAR(p)*/ else if (cy == y && x - cx < 10) { int i; for (i = x - cx; i >= 0; i--) PRINT_CHAR(p - i); } else { add_to_str(&a, &l, "\033["); add_num_to_str(&a, &l, y + 1); add_to_str(&a, &l, ";"); add_num_to_str(&a, &l, x + 1); add_to_str(&a, &l, "H"); cx = x; cy = y; pc: PRINT_CHAR(p); } } if (l) { if (s->col) add_to_str(&a, &l, "\033[37;40m"); add_to_str(&a, &l, "\033[0m"); if (s->mode == TERM_LINUX && s->m11_hack) add_to_str(&a, &l, "\033[10m"); if (s->mode == TERM_VT100) add_to_str(&a, &l, "\x0f"); } if (l || term->cx != term->lcx || term->cy != term->lcy) { term->lcx = term->cx; term->lcy = term->cy; add_to_str(&a, &l, "\033["); add_num_to_str(&a, &l, term->cy + 1); add_to_str(&a, &l, ";"); add_num_to_str(&a, &l, term->cx + 1); add_to_str(&a, &l, "H"); } if (l && term->master) want_draw(); hard_write(term->fdout, a, l); if (l && term->master) done_draw(); mem_free(a); memcpy(term->last_screen, term->screen, term->x * term->y * sizeof(int)); term->dirty = 0; } void destroy_terminal(cba_t cba) { if (!term) return; terminate=1; while ((term->windows.next) != &term->windows) delete_window(term->windows.next); /*if (term->cwd) mem_free(term->cwd);*/ if (term->title) mem_free(term->title); mem_free(term->screen); term->screen=NULL; mem_free(term->last_screen); term->screen=NULL; set_handlers(term->fdin, NULL, NULL, NULL, CBA0); mem_free(term->input_queue); if (term->blocked != -1) { close(term->blocked); set_handlers(term->blocked, NULL, NULL, NULL, CBA0); } close(term->fdin); if (term->fdout != 1) { if (term->fdout != term->fdin) close(term->fdout); } else { unhandle_terminal_signals(); free_all_itrms(); /*#ifndef NO_FORK_ON_EXIT if (!list_empty(terminals)) { if (fork()) exit(0); } #endif */ } mem_free(term); term=NULL; } /*void destroy_all_terminals() { struct terminal *term; while ((void *)(term = terminals.next) != &terminals) destroy_terminal(term); } void check_if_no_terminal(void) { if (!list_empty(terminals)) return; terminate = 1; } */ void set_char(int x, int y, unsigned c) { term->dirty = 1; if (x >= 0 && x < term->x && y >= 0 && y < term->y) term->screen[x + term->x * y] = c; } void set_last_char(int x, int y, unsigned c) { if (x >= 0 && x < term->x && y >= 0 && y < term->y) term->last_screen[x + term->x * y] = c; } unsigned get_char(int x, int y) { if (x >= term->x) x = term->x - 1; if (x < 0) x = 0; if (y >= term->y) y = term->y - 1; if (y < 0) y = 0; return term->screen[x + term->x * y]; } void set_color(int x, int y, unsigned c) { term->dirty = 1; if (x >= 0 && x < term->x && y >= 0 && y < term->y) term->screen[x + term->x * y] = (term->screen[x + term->x * y] & 0x80ff) | (c & ~0x80ff); } void set_only_char(int x, int y, unsigned c) { term->dirty = 1; if (x >= 0 && x < term->x && y >= 0 && y < term->y) term->screen[x + term->x * y] = (term->screen[x + term->x * y] & ~0x80ff) | (c & 0x80ff); } void set_line(int x, int y, int l, chr *line) { int i; term->dirty = 1; for (i = x >= 0 ? 0 : -x; i < (x+l <= term->x ? l : term->x-x); i++) term->screen[x+i + term->x * y] = line[i]; } void set_line_color(int x, int y, int l, unsigned c) { int i; term->dirty = 1; for (i = x >= 0 ? 0 : -x; i < (x+l <= term->x ? l : term->x-x); i++) term->screen[x+i + term->x * y] = (term->screen[x+i + term->x * y] & 0x80ff) | (c & ~0x80ff); } void fill_area(int x, int y, int xw, int yw, unsigned c) { int i,j; term->dirty = 1; for (j = y >= 0 ? 0 : -y; j < yw && y+j < term->y; j++) for (i = x >= 0 ? 0 : -x; i < xw && x+i < term->x; i++) term->screen[x+i + term->x*(y+j)] = c; } void fill_lastarea(int x, int y, int xw, int yw, unsigned c) { int i,j; for (j = y >= 0 ? 0 : -y; j < yw && y+j < term->y; j++) for (i = x >= 0 ? 0 : -x; i < xw && x+i < term->x; i++) term->last_screen[x+i + term->x*(y+j)] = c; } int p1[] = { 218, 191, 192, 217, 179, 196 }; int p2[] = { 201, 187, 200, 188, 186, 205 }; void draw_frame(int x, int y, int xw, int yw, unsigned c, int w) { int *p = w > 1 ? p2 : p1; c |= ATTR_FRAME; set_char(x, y, c+p[0]); set_char(x+xw-1, y, c+p[1]); set_char(x, y+yw-1, c+p[2]); set_char(x+xw-1, y+yw-1, c+p[3]); fill_area(x, y+1, 1, yw-2, c+p[4]); fill_area(x+xw-1, y+1, 1, yw-2, c+p[4]); fill_area(x+1, y, xw-2, 1, c+p[5]); fill_area(x+1, y+yw-1, xw-2, 1, c+p[5]); } void print_text(int x, int y, int l, char *text, unsigned c) { for (; l-- && *text; text++, x++) set_char(x, y,((unsigned char)*text) + c); } void set_cursor(int x, int y, int altx, int alty) { //dbg("set_cursor(%d,%d, %d,%d)\n", x, y, altx, alty); term->dirty = 1; if (term->spec->block_cursor) x = altx, y = alty; if (x >= term->x) x = term->x - 1; if (y >= term->y) y = term->y - 1; if (x < 0) x = 0; if (y < 0) y = 0; term->cx = x; term->cy = y; } void exec_thread(char *path, int p) { #if defined(HAVE_SETPGID) && !defined(BEOS) && !defined(HAVE_BEGINTHREAD) if (path[0] == 2) setpgid(0, 0); #endif exe(path + 1); close(p); if (path[1 + strlen(path + 1) + 1]) unlink(path + 1 + strlen(path + 1) + 1); } void close_handle(cba_t cba) { int h = (int)GETCBA(cba, int_); close(h); set_handlers(h, NULL, NULL, NULL, CBA0); } void unblock_terminal(cba_t cba) { close_handle((cba_t)term->blocked); term->blocked = -1; set_handlers(term->fdin, in_term, NULL, destroy_terminal, CBA0); unblock_itrm(term->fdin); redraw_terminal_cls(); } void exec_on_terminal(char *path, char *delete, int fg) { if (path && !*path) return; if (!path) path=""; #ifdef NO_FG_EXEC fg = 0; #endif if (term->master) { if (!*path) dispatch_special(delete); else { int blockh; char *param; if (is_blocked() && fg) { unlink(delete); return; } if (!(param = mem_alloc(strlen(path) + strlen(delete) + 3))) return; param[0] = fg; strcpy(param + 1, path); strcpy(param + 1 + strlen(path) + 1, delete); if (fg == 1) block_itrm(term->fdin); if ((blockh = start_thread((void (*)(void *, int))exec_thread, param, strlen(path) + strlen(delete) + 3)) == -1) { if (fg == 1) unblock_itrm(term->fdin); mem_free(param); return; } mem_free(param); if (fg == 1) { term->blocked = blockh; set_handlers(blockh, unblock_terminal, NULL, unblock_terminal, CBA0); set_handlers(term->fdin, NULL, NULL, destroy_terminal, CBA0); /*block_itrm(term->fdin);*/ } else { set_handlers(blockh, close_handle, NULL, close_handle, (cba_t)blockh); } } } else { char *data; if ((data = mem_alloc(strlen(path) + strlen(delete) + 4))) { data[0] = 0; data[1] = fg; strcpy(data + 2, path); strcpy(data + 3 + strlen(path), delete); hard_write(term->fdout, data, strlen(path) + strlen(delete) + 4); mem_free(data); } /*char x = 0; hard_write(term->fdout, &x, 1); x = fg; hard_write(term->fdout, &x, 1); hard_write(term->fdout, path, strlen(path) + 1); hard_write(term->fdout, delete, strlen(delete) + 1);*/ } } void do_terminal_function(char code, char *data) { char *x_data; if (!(x_data = (char *)mem_alloc(strlen(data) + 2))) return; x_data[0] = code; strcpy(x_data + 1, data); exec_on_terminal(NULL, x_data, 0); mem_free(x_data); } void set_terminal_title(char *title) { if (term->title && !strcmp(title, term->title)) return; if (term->title) mem_free(term->title); term->title = stracpy(title); #ifdef HAVE_SDL if (!sdl) #endif do_terminal_function(TERM_FN_TITLE, title); } void set_ctest_title(){ gchar *c; if (ctest){ c = g_strdup_printf(" %s %s - %s %s", ctest->pcall, ctest->tname, PACKAGE_NAME, PACKAGE_VERSION); set_terminal_title(c); g_free(c); }else{ c = g_strdup_printf(" %s %s", PACKAGE_NAME, PACKAGE_VERSION); set_terminal_title(c); g_free(c); } } tucnak2-2.48/src/charsets.c0000644000175000017500000002573011567373656012540 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" struct table_entry { char c; unicode_val u; }; struct codepage_desc { char *name; char **aliases; struct table_entry *table; }; #include "codepage.inc" #include "uni_7b.inc" char *strings[256] = { "\000", "\001", "\002", "\003", "\004", "\005", "\006", "\007", "\010", "\011", "\012", "\013", "\014", "\015", "\016", "\017", "\020", "\021", "\022", "\023", "\024", "\025", "\026", "\033", "\030", "\031", "\032", "\033", "\034", "\035", "\036", "\033", "\040", "\041", "\042", "\043", "\044", "\045", "\046", "\047", "\050", "\051", "\052", "\053", "\054", "\055", "\056", "\057", "\060", "\061", "\062", "\063", "\064", "\065", "\066", "\067", "\070", "\071", "\072", "\073", "\074", "\075", "\076", "\077", "\100", "\101", "\102", "\103", "\104", "\105", "\106", "\107", "\110", "\111", "\112", "\113", "\114", "\115", "\116", "\117", "\120", "\121", "\122", "\123", "\124", "\125", "\126", "\127", "\130", "\131", "\132", "\133", "\134", "\135", "\136", "\137", "\140", "\141", "\142", "\143", "\144", "\145", "\146", "\147", "\150", "\151", "\152", "\153", "\154", "\155", "\156", "\157", "\160", "\161", "\162", "\163", "\164", "\165", "\166", "\167", "\170", "\171", "\172", "\173", "\174", "\175", "\176", "\177", "\200", "\201", "\202", "\203", "\204", "\205", "\206", "\207", "\210", "\211", "\212", "\213", "\214", "\215", "\216", "\217", "\220", "\221", "\222", "\223", "\224", "\225", "\226", "\227", "\230", "\231", "\232", "\233", "\234", "\235", "\236", "\237", "\240", "\241", "\242", "\243", "\244", "\245", "\246", "\247", "\250", "\251", "\252", "\253", "\254", "\255", "\256", "\257", "\260", "\261", "\262", "\263", "\264", "\265", "\266", "\267", "\270", "\271", "\272", "\273", "\274", "\275", "\276", "\277", "\300", "\301", "\302", "\303", "\304", "\305", "\306", "\307", "\310", "\311", "\312", "\313", "\314", "\315", "\316", "\317", "\320", "\321", "\322", "\323", "\324", "\325", "\326", "\327", "\330", "\331", "\332", "\333", "\334", "\335", "\336", "\337", "\340", "\341", "\342", "\343", "\344", "\345", "\346", "\347", "\350", "\351", "\352", "\353", "\354", "\355", "\356", "\357", "\360", "\361", "\362", "\363", "\364", "\365", "\366", "\367", "\370", "\371", "\372", "\373", "\374", "\375", "\376", "\377", }; void free_translation_table(struct conv_table *p) { int i; for (i = 0; i < 256; i++) if (p[i].t) free_translation_table(p[i].u.tbl); mem_free(p); } char *no_str = NULL; void new_translation_table(struct conv_table *p) { int i; if (!no_str) no_str = stracpy("*"); for (i = 0; i < 256; i++) if (p[i].t) free_translation_table(p[i].u.tbl); for (i = 0; i < 128; i++) p[i].t = 0, p[i].u.str = strings[i]; for (; i < 256; i++) p[i].t = 0, p[i].u.str = no_str; } #define BIN_SEARCH(table, entry, entries, key, result) \ { \ int _s = 0, _e = (entries) - 1; \ while (_s <= _e || !((result) = -1)) { \ int _m = (_s + _e) / 2; \ if ((table)[_m].entry == (key)) { \ (result) = _m; \ break; \ } \ if ((table)[_m].entry > (key)) _e = _m - 1; \ if ((table)[_m].entry < (key)) _s = _m + 1; \ } \ } \ static const unicode_val strange_chars[32] = { 0x20ac, 0x0000, 0x002a, 0x0000, 0x201e, 0x2026, 0x2020, 0x2021, 0x005e, 0x2030, 0x0160, 0x003c, 0x0152, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x0027, 0x0022, 0x0022, 0x002a, 0x2013, 0x2014, 0x007e, 0x2122, 0x0161, 0x003e, 0x0153, 0x0000, 0x0000, 0x0000, }; char *u2cp(unicode_val u, int to) { int j, s; if (u < 128) return strings[u]; if (u == 0xa0) return "\001"; if (u == 0xad) return ""; if (u < 0xa0) { if (!strange_chars[u - 0x80]) return NULL; return u2cp(strange_chars[u - 0x80], to); } for (j = 0; codepages[to].table[j].c; j++) if (codepages[to].table[j].u == u) return strings[(unsigned int)codepages[to].table[j].c]; BIN_SEARCH(unicode_7b, x, N_UNICODE_7B, u, s); if (s != -1) return unicode_7b[s].s; return NULL; } char utf_buffer[7]; char *encode_utf_8(unicode_val u) { memset(utf_buffer, 0, 7); if (u < 0x80) utf_buffer[0] = u; else if (u < 0x800) utf_buffer[0] = 0xc0 | ((u >> 6) & 0x1f), utf_buffer[1] = 0x80 | (u & 0x3f); else if (u < 0x10000) utf_buffer[0] = 0xe0 | ((u >> 12) & 0x0f), utf_buffer[1] = 0x80 | ((u >> 6) & 0x3f), utf_buffer[2] = 0x80 | (u & 0x3f); else if (u < 0x200000) utf_buffer[0] = 0xf0 | ((u >> 18) & 0x0f), utf_buffer[1] = 0x80 | ((u >> 12) & 0x3f), utf_buffer[2] = 0x80 | ((u >> 6) & 0x3f), utf_buffer[3] = 0x80 | (u & 0x3f); else if (u < 0x4000000) utf_buffer[0] = 0xf8 | ((u >> 24) & 0x0f), utf_buffer[1] = 0x80 | ((u >> 18) & 0x3f), utf_buffer[2] = 0x80 | ((u >> 12) & 0x3f), utf_buffer[3] = 0x80 | ((u >> 6) & 0x3f), utf_buffer[4] = 0x80 | (u & 0x3f); else utf_buffer[0] = 0xfc | ((u >> 30) & 0x01), utf_buffer[1] = 0x80 | ((u >> 24) & 0x3f), utf_buffer[2] = 0x80 | ((u >> 18) & 0x3f), utf_buffer[3] = 0x80 | ((u >> 12) & 0x3f), utf_buffer[4] = 0x80 | ((u >> 6) & 0x3f), utf_buffer[5] = 0x80 | (u & 0x3f); return utf_buffer; } /* This slow and ugly code is used by the terminal utf_8_io */ char *cp2utf_8(int from, int c) { register int j; if (codepages[from].table == table_utf_8 || c < 128) return strings[c]; for (j = 0; codepages[from].table[j].c; j++) if (codepages[from].table[j].c == c) return encode_utf_8(codepages[from].table[j].u); return encode_utf_8(UCS_NO_CHAR); } #if 0 void add_utf_8(struct conv_table *ct, unicode_val u, char *str) { char *p = encode_utf_8(u); while (p[1]) { if (ct[*p].t) ct = ct[*p].u.tbl; else { struct conv_table *nct; if (ct[*p].u.str != no_str) { internal("bad utf encoding #1"); return; } if (!(nct = mem_alloc(sizeof(struct conv_table) * 256))) return; memset(nct, 0, sizeof(struct conv_table) * 256); new_translation_table(nct); ct[*p].t = 1; ct[*p].u.tbl = nct; ct = nct; } p++; } if (ct[*p].t) { internal("bad utf encoding #2"); return; } if (ct[*p].u.str == no_str) ct[*p].u.str = str; } #endif struct conv_table utf_table[256]; int utf_table_init = 1; static void free_utf_table(void) { register int i; for (i = 128; i < 256; i++) mem_free(utf_table[i].u.str); } #if 0 static struct conv_table *get_translation_table_to_utf_8(int from) { register int i; static int lfr = -1; if (from == -1) return NULL; if (from == lfr) return utf_table; if (utf_table_init) memset(utf_table, 0, sizeof(struct conv_table) * 256), utf_table_init = 0; else free_utf_table(); for (i = 0; i < 128; i++) utf_table[i].u.str = strings[i]; if (codepages[from].table == table_utf_8) { for (i = 128; i < 256; i++) utf_table[i].u.str = stracpy(strings[i]); return utf_table; } for (i = 128; i < 256; i++) utf_table[i].u.str = NULL; for (i = 0; codepages[from].table[i].c; i++) { unicode_val u = codepages[from].table[i].u; if (!utf_table[codepages[from].table[i].c].u.str) utf_table[codepages[from].table[i].c].u.str = stracpy(encode_utf_8(u)); } for (i = 128; i < 256; i++) if (!utf_table[i].u.str) utf_table[i].u.str = stracpy(no_str); return utf_table; } #endif static struct conv_table table[256]; static int first = 1; void free_conv_table(void) { if (!utf_table_init) free_utf_table(); if (first) memset(table, 0, sizeof(struct conv_table) * 256), first = 0; new_translation_table(table); mem_free(no_str), no_str = NULL; } #if 0 struct conv_table *get_translation_table(int from, int to) { int i; static int lfr = -1; static int lto = -1; if (first) memset(table, 0, sizeof(struct conv_table) * 256), first = 0; if (/*from == to ||*/ from == -1 || to == -1) return NULL; if (codepages[to].table == table_utf_8) return get_translation_table_to_utf_8(from); if (from == lfr && to == lto) return table; lfr = from; lto = to; new_translation_table(table); if (codepages[from].table == table_utf_8) { int j; for (j = 0; codepages[to].table[j].c; j++) add_utf_8(table, codepages[to].table[j].u, strings[codepages[to].table[j].c]); for (i = 0; unicode_7b[i].x != -1; i++) if (unicode_7b[i].x >= 0x80) add_utf_8(table, unicode_7b[i].x, unicode_7b[i].s); } else for (i = 128; i < 256; i++) { int j; char *u; for (j = 0; codepages[from].table[j].c; j++) { if (codepages[from].table[j].c == i) goto f; } continue; f: u = u2cp(codepages[from].table[j].u, to); if (u) table[i].u.str = u; } return table; } static inline int xxstrcmp(char *s1, char *s2, int l2) { while (l2) { if (*s1 > *s2) return 1; if (!*s1 || *s1 < *s2) return -1; s1++, s2++, l2--; } return !!*s1; } #endif int get_cp_index(char *n) { int i, a, p, q; int ii = -1, ll = 0; for (i = 0; codepages[i].name; i++) { for (a = 0; codepages[i].aliases[a]; a++) { for (p = 0; n[p]; p++) { if (upcase(n[p]) == upcase(codepages[i].aliases[a][0])) { for (q = 1; codepages[i].aliases[a][q]; q++) { if (upcase(n[p+q]) != upcase(codepages[i].aliases[a][q])) goto fail; } if (strlen(codepages[i].aliases[a]) > ll) { ll = strlen(codepages[i].aliases[a]); ii = i; } } fail:; } } } return ii; } char *get_cp_name(int index) { if (index < 0) return "none"; return codepages[index].name; } #if 0 char *get_cp_mime_name(int index) { if (index < 0) return "none"; if (!codepages[index].aliases) return NULL; return codepages[index].aliases[0]; } #endif int is_cp_special(int index) { return codepages[index].table == table_utf_8; } tucnak2-2.48/src/select.c0000644000175000017500000003706611567373656012210 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" struct timeval start; struct thread { void (*read_func)(cba_t); void (*write_func)(cba_t); void (*error_func)(cba_t); cba_t cba; #ifdef LEAK_DEBUG_LIST char *file; int line; char *read_fname; char *write_fname; char *error_fname; #endif }; struct thread threads[FD_SETSIZE]; fd_set w_read; fd_set w_write; fd_set w_error; fd_set x_read; fd_set x_write; fd_set x_error; int w_max; int timer_id = 1; /*int timer_redraw_screen_id = 0; int screen_drawed = 0; */ struct timer { struct timer *next; struct timer *prev; ttime interval; void (*func)(cba_t); cba_t cba; int id; #ifdef LEAK_DEBUG_LIST char *fname; #endif }; /*struct list_head timers = {&timers, &timers};*/ struct timer timers = {&timers, &timers}; ttime get_time(void) { struct timeval tv; gettimeofday(&tv, NULL); return tv.tv_sec * 1000 + tv.tv_usec / 1000; } struct bottom_half { struct bottom_half *next; struct bottom_half *prev; void (*fn)(cba_t); cba_t cba; }; /*struct list_head bottom_halves = { &bottom_halves, &bottom_halves };*/ struct bottom_half bottom_halves = { &bottom_halves, &bottom_halves }; int register_bottom_half(void (*fn)(cba_t), cba_t cba) { struct bottom_half *bh; foreach(bh, bottom_halves) if (bh->fn == fn && GETCBA(bh->cba, void_) == GETCBA(cba, void_)) return 0; if (!(bh = (struct bottom_half *)mem_alloc(sizeof(struct bottom_half)))) return -1; /*dbg("register_bottom_half(0x%x,0x%x)=0x%x\n", fn, data, bh);*/ bh->fn = fn; bh->cba = cba; add_to_list(bottom_halves, bh); return 0; } void check_bottom_halves() { struct bottom_half *bh; void (*fn)(cba_t); cba_t cba; rep: if (list_empty(bottom_halves)) return; bh = bottom_halves.prev; fn = bh->fn; cba = bh->cba; del_from_list(bh); mem_free(bh); fn(cba); goto rep; } #define CHK_BH if (!list_empty(bottom_halves)) check_bottom_halves(); ttime last_time; void check_timers(void) { ttime interval = get_time() - last_time; struct timer *t; foreach(t, timers) t->interval -= interval; ch: foreach(t, timers) if (t->interval <= 0) { struct timer *tt = t; del_from_list(tt); #ifdef LEAK_DEBUG_LIST //dbg("---%s\n", tt->fname); #endif tt->func(tt->cba); mem_free(tt); CHK_BH; goto ch; } else break; last_time += interval; } //void timer_redraw_screen(cba_t cba){ //dbg("timer_redraw_screen\n"); //ST_STOP; //#ifdef HAVE_SDL // if (sdl) { // sdl_redraw_screen(); // } // else //#endif // { // term_redraw_screen(); // } // screen_drawed = 1; // dbg("drawed=1\n"); // timer_redraw_screen_id = 0; //} #ifdef LEAK_DEBUG_LIST int debug_install_timer(char *file, int line, ttime t, void (*func)(cba_t), cba_t cba, char *fname) #else int install_timer(ttime t, void (*func)(cba_t), cba_t cba) #endif { struct timer *tm, *tt; #ifdef LEAK_DEBUG_LIST tm = debug_mem_alloc(file, line, sizeof(struct timer)); tm->fname = fname; #else tm = mem_alloc(sizeof(struct timer)); #endif if (!tm) return -1; tm->interval = t; tm->func = func; tm->cba = cba; tm->id = timer_id++; #if 0 dbg("before:\n"); foreach(tt, timers){ dbg(" id=%d inter=%d fce=%p\n",tt->id, tt->interval, tt->func); } #endif foreach(tt, timers) if (tt->interval >= t) break; add_at_pos(tt->prev, tm); /* dbg("__installed timer %d %p t=%d\n",tm->id, func,t );*/ #if 0 dbg("after:\n"); foreach(tt, timers){ dbg(" id=%d inter=%d fce=%p\n",tt->id, tt->interval, tt->func); } dbg("\n"); #endif return tm->id; } #ifdef LEAK_DEBUG_LIST void debug_kill_timer(char *file, int line, int id) #else void kill_timer(int id) #endif { struct timer *tm; int k = 0; /*dbg("__kill_timer(%d)\n", id);*/ foreach(tm, timers) if (tm->id == id) { struct timer *tt = tm; del_from_list(tm); tm = tm->prev; #ifdef LEAK_DEBUG_LIST debug_mem_free(file, line, tt); #else mem_free(tt); #endif k++; } if (!k) internal_("trying to kill nonexisting timer"); if (k >= 2) internal_("more timers with same id"); } ttime get_timer_time(int id) { struct timer *tm; foreach(tm, timers) if (tm->id == id) { return tm->interval; } return -1; } void *get_handler(int fd, int tp) { if (fd < 0 || fd >= FD_SETSIZE) { internal_("get_handler: handle %d >= FD_SETSIZE %d", fd, FD_SETSIZE); return NULL; } switch (tp) { case H_READ: return threads[fd].read_func; case H_WRITE: return threads[fd].write_func; case H_ERROR: return threads[fd].error_func; case H_DATA: return GETCBA(threads[fd].cba, void_); } internal_("get_handler: bad type %d", tp); return NULL; } #ifdef LEAK_DEBUG_LIST void debug_set_handlers(char *file, int line, int fd, void (*read_func)(cba_t), void (*write_func)(cba_t), void (*error_func)(cba_t), cba_t cba, char *read_fname, char *write_fname, char *error_fname) #else void set_handlers(int fd, void (*read_func)(cba_t), void (*write_func)(cba_t), void (*error_func)(cba_t), cba_t cba) #endif { /*dbg("set_handlers(%d,%p,%p,%p,%p)\n",fd,read_func,write_func,error_func,cba.void_);*/ if (fd!=0) sock_debug(fd, "set_handlers %p,%p,%p %p",read_func,write_func,error_func,cba); #if !defined(_MSC_VER) && !defined(__MINGW32__) if (fd < 0 || fd >= FD_SETSIZE) { internal_("set_handlers: handle %d >= FD_SETSIZE %d", fd, FD_SETSIZE); return; } #endif threads[fd].read_func = read_func; threads[fd].write_func = write_func; threads[fd].error_func = error_func; threads[fd].cba = cba; if (read_func) FD_SET(fd, &w_read); else { FD_CLR(fd, &w_read); FD_CLR(fd, &x_read); } if (write_func) FD_SET(fd, &w_write); else { FD_CLR(fd, &w_write); FD_CLR(fd, &x_write); } if (error_func) FD_SET(fd, &w_error); else { FD_CLR(fd, &w_error); FD_CLR(fd, &x_error); } if (read_func || write_func || error_func) { if (fd >= w_max) w_max = fd + 1; } else if (fd == w_max - 1) { int i; for (i = fd - 1; i >= 0; i--) if (FD_ISSET(i, &w_read) || FD_ISSET(i, &w_write) || FD_ISSET(i, &w_error)) break; w_max = i + 1; } #ifdef LEAK_DEBUG_LIST threads[fd].file=file; threads[fd].line=line; threads[fd].read_fname = read_fname; threads[fd].write_fname = write_fname; threads[fd].error_fname = error_fname; #endif } #define NUM_SIGNALS 32 struct signal_handler { void (*fn)(cba_t); cba_t cba; int critical; }; int signal_mask[NUM_SIGNALS]; struct signal_handler signal_handlers[NUM_SIGNALS]; int critical_section = 0; void check_for_select_race(void); void got_signal(int sig) { if (sig >= NUM_SIGNALS || sig < 0) { error("ERROR: bad signal number: %d", sig); return; } /* for debugging of unknown error */ if (sig == 11) { sig_segv(CBA0); return; } if (!signal_handlers[sig].fn) return; if (signal_handlers[sig].critical) { signal_handlers[sig].fn(signal_handlers[sig].cba); return; } signal_mask[sig] = 1; check_for_select_race(); } void install_signal_handler(int sig, void (*fn)(cba_t), cba_t cba, int critical) { struct sigaction sa; if (sig >= NUM_SIGNALS || sig < 0) { internal_("bad signal number: %d", sig); return; } memset(&sa, 0, sizeof sa); if (!fn) sa.sa_handler = SIG_IGN; else sa.sa_handler = got_signal; sigfillset(&sa.sa_mask); /*sa.sa_flags = SA_RESTART;*/ if (!fn) sigaction(sig, &sa, NULL); signal_handlers[sig].fn = fn; signal_handlers[sig].cba = cba; signal_handlers[sig].critical = critical; if (fn) sigaction(sig, &sa, NULL); } int pending_alarm = 0; void alarm_handler(cba_t cba) { pending_alarm = 0; check_for_select_race(); } void check_for_select_race(void) { if (critical_section) { #ifdef SIGALRM install_signal_handler(SIGALRM, alarm_handler, CBA0, 1); #endif pending_alarm = 1; #ifdef HAVE_ALARM /*alarm(1);*/ #endif } } void uninstall_alarm(void) { pending_alarm = 0; #ifdef HAVE_ALARM alarm(0); #endif } int check_signals(void) { int i, r = 0; for (i = 0; i < NUM_SIGNALS; i++) if (signal_mask[i]) { signal_mask[i] = 0; if (signal_handlers[i].fn) signal_handlers[i].fn(signal_handlers[i].cba); CHK_BH; r = 1; } return r; } void sigchld(cba_t cba) { /*wait(NULL);*/ int pid; pid = waitpid(-1, NULL, WNOHANG); // dbg("sigchld pid=%d\n", pid); if (pid == sound_pid) abort_sound(); } void set_sigcld() { install_signal_handler(SIGCHLD, sigchld, CBA0, 1); } int terminate = 0; void select_loop(void (*init)(void)) { int err; memset(signal_mask, 0, sizeof signal_mask); memset(signal_handlers, 0, sizeof signal_handlers); FD_ZERO(&w_read); FD_ZERO(&w_write); FD_ZERO(&w_error); w_max = 0; last_time = get_time(); signal(SIGPIPE, SIG_IGN); init(); CHK_BH; while (!terminate) { int n, i; struct timeval tv; struct timeval *tm = NULL; /* screen_drawed = 0; printf("drawed=0\n");*/ check_signals(); check_timers(); // printf("drawed==%d\n", screen_drawed); #if 0 if (!timer_redraw_screen_id && !screen_drawed){ ST_START; timer_redraw_screen_id = install_timer(80, timer_redraw_screen, CBA0); // dbg("\ninstall\n"); } screen_drawed = 0; //printf("drawed=0\n"); #endif #ifdef HAVE_SDL if (sdl) { sdl_redraw_screen(); } else #endif { term_redraw_screen(); } if (!list_empty(timers)) { ttime tt = ((struct timer *)&timers)->next->interval + 1; if (tt < 0) tt = 0; tv.tv_sec = tt / 1000; tv.tv_usec = (tt % 1000) * 1000; tm = &tv; } memcpy(&x_read, &w_read, sizeof(fd_set)); memcpy(&x_write, &w_write, sizeof(fd_set)); memcpy(&x_error, &w_error, sizeof(fd_set)); /*rep_sel:*/ if (terminate) break; if (!w_max && list_empty(timers)) break; critical_section = 1; if (check_signals()) { critical_section = 0; continue; } /* { int i; printf("\nR:"); for (i = 0; i < 256; i++) if (FD_ISSET(i, &x_read)) printf("%d,", i); printf("\nW:"); for (i = 0; i < 256; i++) if (FD_ISSET(i, &x_write)) printf("%d,", i); printf("\nE:"); for (i = 0; i < 256; i++) if (FD_ISSET(i, &x_error)) printf("%d,", i); fflush(stdout); }*/ CHK_BH; #if 0 if (tm) dbg("SELECT: tm=%d.%06d\n", tm->tv_sec, tm->tv_usec); else dbg("SELECT: no timers-----------------\n"); #endif #if 0 struct timer *tt; foreach(tt, timers){ dbg(" id=%d inter=%d fce=%p\n",tt->id, tt->interval, tt->func); } dbg("\n"); #endif /* ST_STOP; sound(0); */ n = select(w_max, &x_read, &x_write, &x_error, tm); /* sound(800); ST_START; */ if (n < 0) { err=sock_errno; critical_section = 0; uninstall_alarm(); if (err != EINTR) { error("ERROR: select failed: %d", err); dbg("ERROR: select failed: %d", err); if (err == EBADF){ int i; fd_set x, used; struct timeval tv; FD_ZERO(&used); dbg("\nR:"); for (i = 0; i < 256; i++) if (FD_ISSET(i, &x_read)) {dbg("%d,", i); FD_SET(i, &used);} dbg("\nW:"); for (i = 0; i < 256; i++) if (FD_ISSET(i, &x_write)) {dbg("%d,", i); FD_SET(i, &used);} dbg("\nE:"); for (i = 0; i < 256; i++) if (FD_ISSET(i, &x_error)) {dbg("%d,", i); FD_SET(i, &used);} /* dbg("\n_:");*/ for (i = 0; i < 256; i++) { if (!FD_ISSET(i, &used)) continue; FD_ZERO(&x); FD_SET(i, &x); tv.tv_sec=0; tv.tv_usec=1; if (select(i+1, &x, NULL, NULL, &tv)<0 && errno==EBADF) #ifdef LEAK_DEBUG_LIST dbg("fd %d failed(err=%d) at %s:%d\n", i, errno, threads[i].file, threads[i].line); #else dbg("fd %d failed(err=%d)\n ", i, errno); #endif } internal_("select_loop() select failed"); /*dbg("DIE\n"); sleep(1000000); DIE; */ } } continue; } critical_section = 0; uninstall_alarm(); check_signals(); /* printf("sel: %d\n", n);*/ /* dbg(".\n");*/ check_timers(); /*dbg("R:"); for (i = 0; i < 32; i++) if (FD_ISSET(i, &x_read)) {dbg("%d,", i); } dbg(" W:"); for (i = 0; i < 32; i++) if (FD_ISSET(i, &x_write)) {dbg("%d,", i); } dbg(" E:"); for (i = 0; i < 32; i++) if (FD_ISSET(i, &x_error)) {dbg("%d,", i); } dbg("\n");*/ i = -1; while (n > 0 && ++i < w_max) { int k = 0; /* printf("C %d : %d,%d,%d\n",i,FD_ISSET(i, &w_read),FD_ISSET(i, &w_write),FD_ISSET(i, &w_error)); printf("A %d : %d,%d,%d\n",i,FD_ISSET(i, &x_read),FD_ISSET(i, &x_write),FD_ISSET(i, &x_error));*/ if (FD_ISSET(i, &x_read)) { if (threads[i].read_func) { //dbg("R%d\n", i); #ifdef LEAK_DEBUG_LIST //dbg("---%s\n", threads[i].read_fname); #endif threads[i].read_func(threads[i].cba); //dbg("end R%d\n", i); CHK_BH; } k = 1; } if (FD_ISSET(i, &x_write)) { if (threads[i].write_func) { //dbg("W%d\n", i); #ifdef LEAK_DEBUG_LIST //dbg("---%s\n", threads[i].write_fname); #endif threads[i].write_func(threads[i].cba); //dbg("end W%d\n", i); CHK_BH; } k = 1; } if (FD_ISSET(i, &x_error)) { if (threads[i].error_func) { //dbg("X%d\n", i); #ifdef LEAK_DEBUG_LIST //dbg("---%s\n", threads[i].error_fname); #endif threads[i].error_func(threads[i].cba); //dbg("end X%d\n", i); CHK_BH; } k = 1; } n -= k; } } sound(0); } tucnak2-2.48/src/excdb.c0000644000175000017500000003343311567373656012010 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2008 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include struct excdb *excdb; static gchar *exc_next; static gchar *cxe_next; struct excdb *init_exc(void){ struct excdb *excdb; excdb = g_new0(struct excdb, 1); excdb->exc = g_hash_table_new(g_str_hash, g_str_equal); excdb->cxe = g_hash_table_new(g_str_hash, g_str_equal); excdb->vexc = g_hash_table_new(g_str_hash, g_str_equal); excdb->vexcia = g_index_array_new(); exc_next = NULL; cxe_next = NULL; excdb->latest = 0; excdb->excname = g_strdup(""); return excdb; } gboolean free_exc_item(gpointer key, gpointer value, gpointer user_data){ struct exc_item *exci; g_free(key); exci = (struct exc_item *)value; if (exci->exc0) g_free(exci->exc0); if (exci->exc1) g_free(exci->exc1); g_free(value); return TRUE; } gboolean free_cxe_item(gpointer key, gpointer value, gpointer user_data){ struct cxe_item *wci; g_free(key); wci = (struct cxe_item *)value; if (wci->call0) g_free(wci->call0); if (wci->call1) g_free(wci->call1); g_free(value); return TRUE; } gboolean free_vexc_item(gpointer key, gpointer value, gpointer user_data){ if (key) g_free(key); return TRUE; } void clear_exc(struct excdb *excdb){ // dbg("clear_exc()\n"); g_index_array_free_all(excdb->vexcia); excdb->vexcia = g_index_array_new(); g_hash_table_foreach_remove(excdb->vexc, free_vexc_item, NULL); g_hash_table_foreach_remove(excdb->cxe, free_cxe_item, NULL); g_hash_table_foreach_remove(excdb->exc, free_exc_item, NULL); CONDGFREE(excdb->excname); } void free_exc(struct excdb *excdb){ clear_exc(excdb); g_index_array_free_all(excdb->vexcia); g_hash_table_destroy(excdb->vexc); g_hash_table_destroy(excdb->cxe); g_hash_table_destroy(excdb->exc); g_free(excdb); } gint get_exc_size(struct excdb *excdb){ return g_hash_table_size(excdb->exc); } gint get_cxe_size(struct excdb *excdb){ return g_hash_table_size(excdb->cxe); } gint get_vexc_size(struct excdb *excdb){ return g_hash_table_size(excdb->vexc); } #define EXC_DELIM " \t\r\n" void load_one_exc(struct excdb *excdb, gchar *s){ gchar *call, *exc, *stamp_str; char *token_ptr; uc(s); call = strtok_r(s, EXC_DELIM, &token_ptr); if (!call) return; exc = strtok_r(NULL, EXC_DELIM, &token_ptr); if (!exc) return; stamp_str = strtok_r(NULL, EXC_DELIM, &token_ptr); if (!stamp_str) return; add_exc(excdb, call, exc, atoi(stamp_str)); add_cxe(excdb, exc, call, atoi(stamp_str)); } int load_exc_from_file(struct excdb *excdb, gchar *filename){ FILE *f; GString *gs; f = fopen(filename, "rt"); if (!f) return -1; gs = g_string_sized_new(256); while(1){ if (!safe_fgets(gs, f, 1)) break; g_strstrip(gs->str); load_one_exc(excdb,gs->str); } fclose(f); g_string_free(gs, 1); return 0; } void load_one_vexc(struct excdb *excdb, gchar *s){ gchar *vexc; char *token_ptr; uc(s); for (vexc = strtok_r(s, EXC_DELIM, &token_ptr); vexc != NULL; vexc = strtok_r(NULL, EXC_DELIM, &token_ptr)){ if (!*vexc) continue; if (g_hash_table_lookup(excdb->vexc, vexc) != NULL) continue; uc(vexc); g_hash_table_insert(excdb->vexc, g_strdup(vexc), (void*)1); } } int load_vexc_from_file(struct excdb *excdb, gchar *filename){ FILE *f; GString *gs; f = fopen(filename, "rt"); if (!f) return -1; gs = g_string_sized_new(256); while(1){ if (!safe_fgets(gs, f, 1)) break; g_strstrip(gs->str); load_one_vexc(excdb, gs->str); } fclose(f); g_string_free(gs, 1); return 0; } int load_vexc_from_mem(struct excdb *excdb, const char *file, const long int len){ GString *gs; long int pos; gs = g_string_sized_new(256); pos = 0; while(1){ if (!safe_mgets(gs, file, &pos, len, 0)) break; g_strstrip(gs->str); load_one_vexc(excdb, gs->str); } g_string_free(gs, 1); return 0; } void read_exc_files(struct excdb *excdb, enum exctype exctype, gchar *excname){ gchar *s, *ename; int ret, i; dbg("read_exc_files(%d, %s)\n", exctype, excname); if (!excname || !*excname) return; excdb->exctype = exctype; ename = g_strdup(excname); uc(ename); CONDGFREE(excdb->excname); excdb->excname = g_strdup(ename); lc(ename); s = g_strconcat(getenv("HOME"), "/tucnak/tucnakexc", ename, NULL); ret = load_exc_from_file(excdb, s); dbg(" %s %d\n", s, ret); g_free(s); s = g_strconcat(getenv("HOME"), "/tucnak/tucnakvexc", ename, NULL); ret = load_vexc_from_file(excdb, s); dbg(" %s %d\n", s, ret); g_free(s); if (ret<0){ dbg("disk loading failed, try to load memory defaults '%s'\n", ename); if (strcasecmp(ename, "agcw")==0) { ret = load_vexc_from_mem(excdb, txt_tucnakvexcagcw, sizeof(txt_tucnakvexcagcw)); dbg(" %s %d\n", ename, ret); } if (strcasecmp(ename, "okres")==0) { ret = load_vexc_from_mem(excdb, txt_tucnakvexcokres, sizeof(txt_tucnakvexcokres)); dbg(" %s %d\n", ename, ret); } if (strcasecmp(ename, "rsgbdc")==0) { ret = load_vexc_from_mem(excdb, txt_tucnakvexcrsgbdc, sizeof(txt_tucnakvexcrsgbdc)); dbg(" %s %d\n", ename, ret); } if (strcasecmp(ename, "usaca")==0) { ret = load_vexc_from_mem(excdb, txt_tucnakvexcusaca, sizeof(txt_tucnakvexcusaca)); dbg(" %s %d\n", ename, ret); } } g_free(ename); // set vexcia switch(excdb->exctype){ case EXC_VERIFIED: g_hash_table_foreach(excdb->vexc, exc_ia_verified, (gpointer) excdb->vexcia); break; case EXC_WAZ: // g_hash_table_foreach(dw->dw, exc_ia_waz, (gpointer) excdb->vexcia); for (i=1; i<=40; i++) g_index_array_add(excdb->vexcia, g_strdup_printf("%02d", i)); break; case EXC_ITU: // g_hash_table_foreach(dw->dw, exc_ia_itu, (gpointer) excdb->vexcia); for (i=1; i<=90; i++) g_index_array_add(excdb->vexcia, g_strdup_printf("%02d", i)); break; default: break; } g_index_array_qsort(excdb->vexcia, compare_string); g_index_array_uniq(excdb->vexcia, compare_string, TRUE); } void exc_ia_verified(gpointer key, gpointer value, gpointer user_data){ gchar *exc = (gchar *) key; GIndexArray *vexcia = (GIndexArray *) user_data; char s[10]; if (strcasecmp(ctest->excname, "USACA")==0){ strcpy(s, exc); usaca_multiple_exc(s); if (strcmp(s, exc) != 0) return; // QC, MAN, ALB, ALT, YU } g_index_array_add(vexcia, g_strdup(exc)); } /*void exc_ia_waz(gpointer key, gpointer value, gpointer user_data){ struct dw_item *dwi = (struct dw_item*) value; GIndexArray *vexcia = (GIndexArray *) user_data; g_index_array_add(vexcia, g_strdup_printf("%02d", dwi->waz)); } void exc_ia_itu(gpointer key, gpointer value, gpointer user_data){ struct dw_item *dwi = (struct dw_item*) value; GIndexArray *vexcia = (GIndexArray *) user_data; g_index_array_add(vexcia, g_strdup_printf("%02d", dwi->itu)); } */ void save_one_exc(gpointer key, gpointer value, gpointer user_data){ GString *gs; gchar *call; struct exc_item *exci; gs = (GString *) user_data; call = (gchar *) key; exci = (struct exc_item *) value; if (exci->exc0) g_string_sprintfa(gs, "%-14s %-6s %08d\n", call, exci->exc0, exci->stamp0); if (exci->exc1) g_string_sprintfa(gs, "%-14s %-6s %08d\n", call, exci->exc1, exci->stamp1); } int save_exc_string(struct excdb *excdb, GString *gs){ g_hash_table_foreach(excdb->exc, save_one_exc, (gpointer) gs); return 0; } int save_exc_into_file(struct excdb *excdb, gchar *filename){ FILE *f; GString *gs; int ret; f = fopen(filename, "wt"); /* FIXME swp first */ if (!f) { return errno; } gs=g_string_sized_new(100000); save_exc_string(excdb, gs); ret = fprintf(f,"%s",gs->str) != gs->len ? errno: 0; fclose(f); g_string_free(gs,TRUE); return ret; } void add_exc(struct excdb *excdb, gchar *call, gchar *exc, gint stamp){ struct exc_item *exci; if (stamp<0) return; if (stamp>excdb->latest) excdb->latest=stamp; exci = g_hash_table_lookup(excdb->exc, call); if (!exci){ exci = g_new0(struct exc_item, 1); g_hash_table_insert(excdb->exc, g_strdup(call), exci); } if (stamp < exci->stamp1) return; if (stamp < exci->stamp0){ if (strcasecmp(exci->exc0, exc)==0) return; if (exci->exc1) g_free(exci->exc1); exci->exc1 = g_strdup(exc); exci->stamp1 = stamp; return; } if (exci->exc0 && strcasecmp(exci->exc0, exc)==0) { exci->stamp0 = stamp; return; } if (exci->exc1) g_free(exci->exc1); exci->exc1 = exci->exc0; exci->stamp1 = exci->stamp0; exci->exc0 = g_strdup(exc); exci->stamp0 = stamp; } void add_cxe(struct excdb *excdb, gchar *exc, gchar *call, gint stamp){ struct cxe_item *wci; if (stamp<0) return; if (stamp>excdb->latest) excdb->latest=stamp; wci = g_hash_table_lookup(excdb->cxe, exc); if (!wci){ wci = g_new0(struct cxe_item, 1); g_hash_table_insert(excdb->cxe, g_strdup(exc), wci); } if (stamp < wci->stamp1) return; if (stamp < wci->stamp0){ if (strcasecmp(wci->call0, call)==0) return; if (wci->call1) g_free(wci->call1); wci->call1 = g_strdup(call); wci->stamp1 = stamp; return; } if (wci->call0 && strcasecmp(wci->call0, call)==0) { wci->stamp0 = stamp; return; } if (wci->call1) g_free(wci->call1); wci->call1 = wci->call0; wci->stamp1 = wci->stamp0; wci->call0 = g_strdup(call); wci->stamp0 = stamp; } gchar *find_exc_by_call(struct excdb *excdb, gchar *call){ struct exc_item *exci; struct dw_item *dwi; static char s[20]; if (!call) return exc_next; exc_next = NULL; exci = g_hash_table_lookup(excdb->exc, call); if (exci) { exc_next = exci->exc1; return exci->exc0; } switch(excdb->exctype){ case EXC_WAZ: dwi = get_dw_item_by_call(dw, call); if (!dwi) return NULL; g_snprintf(s, 20, "%02d", dwi->waz); return s; case EXC_ITU: dwi = get_dw_item_by_call(dw, call); if (!dwi) return NULL; g_snprintf(s, 20, "%02d", dwi->itu); return s; default: break; } return NULL; } gchar *find_exc_by_call_newer(struct excdb *excdb, gchar *call, int maxstamp){ struct exc_item *exci; exci = g_hash_table_lookup(excdb->exc, call); if (!exci) return NULL; if (exci->stamp0 > maxstamp) return exci->exc0; if (exci->stamp1 > maxstamp) return exci->exc1; return NULL; } gchar *find_call_by_exc(struct excdb *excdb, gchar *exc){ struct cxe_item *wci; if (!excdb) return cxe_next; cxe_next = NULL; wci = g_hash_table_lookup(excdb->cxe, exc); if (!wci) return NULL; cxe_next = wci->call1; return wci->call0; } int is_valid_vexc(struct excdb *excdb, gchar *vexc){ gchar *s; int ret; switch (ctest->exctype){ case EXC_FREE: return 1; case EXC_VERIFIED: s = g_strdup(vexc); uc(s); ret = g_hash_table_lookup(excdb->vexc, s) != NULL; g_free(s); return ret; case EXC_WAZ: case EXC_ITU: return 1; } return 0; } void update_exc_from_band(struct excdb *excdb, struct band *band){ int i; struct qso *q; stats_thread_join(band); for (i=0; iqsos->len; i++){ q = (struct qso *)g_ptr_array_index(band->qsos, i); if (q->error) continue; if (!q->callsign || !q->exc || !q->date_str) continue; add_exc(excdb, q->callsign, q->exc, atoi(q->date_str)); add_cxe(excdb, q->exc, q->callsign, atoi(q->date_str)); } } void update_exc_from_ctest(struct excdb *excdb, struct contest *ctest){ int i; struct band *band; if (!ctest) return; for (i=0; ibands->len; i++){ band = (struct band *) g_ptr_array_index(ctest->bands, i); update_exc_from_band(excdb, band); } } struct rsgbdc{ char *name; int maxcount; }; static struct rsgbdc rsgbdc[] = { {"AB", 3 }, {"BT", 6 }, {"DD", 3 }, {"DG", 3 }, {"EH", 3 }, {"FK", 3 }, {"GS", 3 }, {"HS", 3 }, {"IV", 3 }, {"KA", 3 }, {"KY", 3 }, {"PA", 3 }, {"PH", 3 }, {"TD", 3 }, {"ZE", 3 }, {NULL, 0 } }; int rsgbdc_maxcount(char *exc){ struct rsgbdc *p; for (p=rsgbdc; p->name != NULL; p++){ if (strcasecmp(p->name, exc) != 0) continue; return p->maxcount; } return 1; } void usaca_multiple_exc(char *s){ if (strcasecmp(s, "QC")==0) { strcpy(s, "PQ"); return; } if (strcasecmp(s, "MAN")==0) { strcpy(s, "MB"); return; } if (strcasecmp(s, "ALB")==0) { strcpy(s, "AB"); return; } if (strcasecmp(s, "ALT")==0) { strcpy(s, "AB"); return; } if (strcasecmp(s, "YU")==0) { strcpy(s, "YT"); return; } } tucnak2-2.48/src/menu1.c0000644000175000017500000017642011567373656011754 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" char tname[MAX_STR_LEN],pcall[MAX_STR_LEN],pclub[MAX_STR_LEN]; char pwwlo[MAX_STR_LEN],pexch[MAX_STR_LEN],tdate[MAX_STR_LEN]; int qsoused; char qsomult_str[MAX_STR_LEN]; int qsoglob; int wwlused; char wwltype_str[MAX_STR_LEN]; char wwlbonu_str[MAX_STR_LEN], wwlmult_str[MAX_STR_LEN]; int wwlcfm; int exctype; char exctype_str[MAX_STR_LEN]; char excbonu_str[MAX_STR_LEN], excmult_str[MAX_STR_LEN]; int exccfm; char excname[MAX_STR_LEN]; int excused; char prefmult_str[MAX_STR_LEN]; char dxcbonu_str[MAX_STR_LEN], dxcmult_str[MAX_STR_LEN]; int prefglob; int rstused, defrstr; char default_rst[MAX_STR_LEN],default_rs[MAX_STR_LEN]; char operator[MAX_STR_LEN]; int tttype; char tttype_str[MAX_STR_LEN]; int expmode; char new_excname[MAX_STR_LEN], old_excname[MAX_STR_LEN]; /*int qsop_method=1, total_method=1;*/ /******************** BAND SETTINGS *******************************/ #define RESP_LEN 50 int qrvnow,psect,isqrv,readonly; char stxeq[RESP_LEN], spowe[RESP_LEN], srxeq[RESP_LEN], sante[RESP_LEN]; char santh[RESP_LEN], mope1[RESP_LEN], mope2[RESP_LEN]; char remarks[RESP_LEN]; char ok_section_single[RESP_LEN], ok_section_multi[RESP_LEN]; char qrg_min_str[RESP_LEN], qrg_max_str[RESP_LEN]; char adifband[RESP_LEN], skedqrg[RESP_LEN], band_lo_str[RESP_LEN]; char band_sw_str[RESP_LEN]; int bandfirstbutt; void refresh_band_confb(void *xxx) { struct config_band *confb; /* dbg("refresh_band_confb\n"); */ confb=(struct config_band *)xxx; confb->qrvnow = qrvnow; confb->psect = psect; confb->qrv = isqrv; confb->readonly = readonly; dbg("refresh_band readonly=%d\n", readonly); STORE_STR(confb,stxeq); /* dbg("refresh_band confb=%p confb->stxeq='%s'\n",confb,confb->stxeq);*/ /*b=confb;*/ STORE_STR(confb,spowe); STORE_STR(confb,srxeq); STORE_STR(confb,sante); STORE_STR(confb,santh); STORE_STR(confb,mope1); STORE_STR(confb,mope2); STORE_STR(confb,remarks); STORE_STR(confb, ok_section_multi); STORE_STR(confb, ok_section_single); STORE_SINT(confb, qrg_min); STORE_SINT(confb, qrg_max); STORE_STR(confb, adifband); STORE_STR(confb, skedqrg); STORE_SDBL(confb, band_lo); STORE_SHEX(confb, band_sw); } void refresh_band(void *xxx) { struct band *band; struct zstring *zs; char psectstr[EQSO_LEN]; gchar *c; /* dbg("refresh_band\n"); */ band=(struct band *)xxx; /* band->qrv = qrvnow;*/ band->psect = psect; /*band->qrv = qrv;*/ band->readonly = readonly; il_readonly(band->il, band->readonly); STORE_STR(band,stxeq); /* dbg("refresh_band band=%p band->stxeq='%s'\n",band,band->stxeq);*/ STORE_STR(band,spowe); STORE_STR(band,srxeq); STORE_STR(band,sante); STORE_STR(band,santh); STORE_STR(band,mope1); STORE_STR(band,mope2); STORE_STR(band,remarks); /* STORE_STR(band, ok_section_multi); STORE_STR(band, ok_section_single); STORE_SINT(band, qrg_min); STORE_SINT(band, qrg_max); STORE_STR(band, adifband); STORE_STR(band, skedqrg); STORE_SDBL(band, band_lo);*/ g_snprintf(psectstr, EQSO_LEN, "%d", band->psect); zs = zconcatesc(band->pband, psectstr, stxeq, spowe, srxeq, sante, santh, mope1, mope2, remarks, NULL); // ok_section_*, qrg_*, adifband, skedqrg a band_lo se neposilaji c = g_strdup_printf("BA %s\n", zs->str); rel_write_all(c); g_free(c); zfree(zs); } char *band_msg[] = { CTEXT(T_QRV_ON_THIS_BAND), /* 0 */ CTEXT(T_QRV_IN_THIS_CTEST), CTEXT(T_READ_ONLY), CTEXT(T_MULTI), CTEXT(T_SINGLE), CTEXT(T_CHECK), /* 5 */ CTEXT(T_TXEQUIP), CTEXT(T_POWER), CTEXT(T_RXEQUIP), CTEXT(T_ANTENNA), CTEXT(T_AGLASL), /* 10 */ CTEXT(T_OPS), CTEXT(T_SPACES1), CTEXT(T_REMARKS), CTEXT(T_OK_SECTION_SINGLE), CTEXT(T_OK_SECTION_MULTI), /* 15 */ CTEXT(T_QRG_MIN), CTEXT(T_QRG_MAX), CTEXT(T_ADIFBAND), CTEXT(T_SKEDQRG), CTEXT(T_BAND_LO), /* 20 */ CTEXT(T_BANDSW), /* 21 */ "", /* OK */ /* 22 */ "", /* Cancel */ }; void band_fn(struct dialog_data *dlg) { struct terminal *term = dlg->win->term; int max = 0, min = 0; int w, rw; int y = -1; max_group_width(term, band_msg + 0, dlg->items + 0, 5, &max); min_group_width(term, band_msg + 0, dlg->items + 0, 5, &min); max_group_width(term, band_msg + 6, dlg->items + 6, 1, &max); min_group_width(term, band_msg + 6, dlg->items + 6, 1, &min); max_group_width(term, band_msg + 7, dlg->items + 7, 1, &max); min_group_width(term, band_msg + 7, dlg->items + 7, 1, &min); max_group_width(term, band_msg + 8, dlg->items + 8, 1, &max); min_group_width(term, band_msg + 8, dlg->items + 8, 1, &min); max_group_width(term, band_msg + 9, dlg->items + 9, 1, &max); min_group_width(term, band_msg + 9, dlg->items + 9, 1, &min); max_group_width(term, band_msg +10, dlg->items +10, 1, &max); min_group_width(term, band_msg +10, dlg->items +10, 1, &min); max_group_width(term, band_msg +11, dlg->items +11, 1, &max); min_group_width(term, band_msg +11, dlg->items +11, 1, &min); max_group_width(term, band_msg +12, dlg->items +12, 1, &max); min_group_width(term, band_msg +12, dlg->items +12, 1, &min); max_group_width(term, band_msg +13, dlg->items +13, 1, &max); min_group_width(term, band_msg +13, dlg->items +13, 1, &min); if (bandfirstbutt > 14){ max_group_width(term, band_msg +14, dlg->items +14, 2, &max); min_group_width(term, band_msg +14, dlg->items +14, 2, &min); max_group_width(term, band_msg +16, dlg->items +16, 2, &max); min_group_width(term, band_msg +16, dlg->items +16, 2, &min); max_group_width(term, band_msg +18, dlg->items +18, 2, &max); min_group_width(term, band_msg +18, dlg->items +18, 2, &min); max_group_width(term, band_msg +20, dlg->items +20, 1, &max); min_group_width(term, band_msg +20, dlg->items +20, 1, &min); max_group_width(term, band_msg +21, dlg->items +21, 1, &max); min_group_width(term, band_msg +21, dlg->items +21, 1, &min); } max_buttons_width(term, dlg->items +bandfirstbutt, 2, &max); min_buttons_width(term, dlg->items +bandfirstbutt, 2, &min); w = dlg->win->term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > dlg->win->term->x - 2 * DIALOG_LB) w = dlg->win->term->x - 2 * DIALOG_LB; if (w < 1) w = 1; rw = 0; y ++; dlg_format_group1(NULL, term, band_msg + 0, dlg->items + 0, 3, 0, &y, w, &rw); dlg_format_group1(NULL, term, band_msg + 3, dlg->items + 3, 3, 0, &y, w, &rw); y++; dlg_format_group(NULL, term, band_msg + 6, dlg->items + 6, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, band_msg + 7, dlg->items + 7, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, band_msg + 8, dlg->items + 8, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, band_msg + 9, dlg->items + 9, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, band_msg +10, dlg->items +10, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, band_msg +11, dlg->items +11, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, band_msg +12, dlg->items +12, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, band_msg +13, dlg->items +13, 1, 0, &y, w, &rw); if (bandfirstbutt > 14){ y++; dlg_format_group1(NULL, term, band_msg +14, dlg->items +14, 2, 0, &y, w, &rw); dlg_format_group1(NULL, term, band_msg +16, dlg->items +16, 2, 0, &y, w, &rw); dlg_format_group1(NULL, term, band_msg +18, dlg->items +18, 2, 0, &y, w, &rw); dlg_format_group1(NULL, term, band_msg +20, dlg->items +20, 1, 0, &y, w, &rw); dlg_format_group1(NULL, term, band_msg +21, dlg->items +21, 1, 0, &y, w, &rw); } y++; dlg_format_buttons(NULL, term, dlg->items +bandfirstbutt, 2, 0, &y, w, &rw, AL_CENTER); w = rw; dlg->xw = w + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB; y++; dlg_format_group1(term, term, band_msg + 0, dlg->items + 0, 3, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group1(term, term, band_msg + 3, dlg->items + 3, 3, dlg->x + DIALOG_LB, &y, w, AL_LEFT); y++; dlg_format_group(term, term, band_msg + 6, dlg->items + 6, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, band_msg + 7, dlg->items + 7, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, band_msg + 8, dlg->items + 8, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, band_msg + 9, dlg->items + 9, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, band_msg +10, dlg->items +10, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, band_msg +11, dlg->items +11, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, band_msg +12, dlg->items +12, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, band_msg +13, dlg->items +13, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); if (bandfirstbutt > 14){ y++; dlg_format_group1(term, term, band_msg +14, dlg->items +14, 2, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group1(term, term, band_msg +16, dlg->items +16, 2, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group1(term, term, band_msg +18, dlg->items +18, 2, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group1(term, term, band_msg +20, dlg->items +20, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group1(term, term, band_msg +21, dlg->items +21, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); } y++; dlg_format_buttons(term, term, dlg->items +bandfirstbutt, 2, dlg->x + DIALOG_LB, &y, w, NULL, AL_CENTER); } /* xxx is char *band */ void band_settings(cba_t cba, int from_ctest) { struct dialog *d; int i,found; char *pband; struct config_band *confb=NULL; struct band *band=NULL; static char ss[1024]; found=0; pband = (char *)GETCBA(cba, charp); if (!from_ctest) for (i=0;ibands->len; i++){ confb = (struct config_band*)g_ptr_array_index(cfg->bands,i); if (!confb) break; if (strcasecmp(pband, confb->pband)==0){ found=1; break; } } else for (i=0;ibands->len; i++){ band = (struct band*)g_ptr_array_index(ctest->bands,i); if (!band) break; if (strcasecmp(pband, band->pband)==0){ found=1; break; } } if (!found){ internal_("band_settings() !found"); } if (confb){ qrvnow=confb->qrvnow; psect=confb->psect; isqrv=confb->qrv; readonly=confb->readonly; dbg("band_settings readonly=%d\n", readonly); safe_strncpy0(stxeq,confb->stxeq,RESP_LEN); safe_strncpy0(spowe,confb->spowe,RESP_LEN); safe_strncpy0(srxeq,confb->srxeq,RESP_LEN); safe_strncpy0(sante,confb->sante,RESP_LEN); safe_strncpy0(santh,confb->santh,RESP_LEN); safe_strncpy0(mope1,confb->mope1,RESP_LEN); uc(mope1); safe_strncpy0(mope2,confb->mope2,RESP_LEN); uc(mope2); safe_strncpy0(remarks,confb->remarks,RESP_LEN); safe_strncpy0(ok_section_single,confb->ok_section_single,RESP_LEN); safe_strncpy0(ok_section_multi,confb->ok_section_multi,RESP_LEN); g_snprintf(qrg_min_str, RESP_LEN, "%d", confb->qrg_min); g_snprintf(qrg_max_str, RESP_LEN, "%d", confb->qrg_max); safe_strncpy0(adifband,confb->adifband,RESP_LEN); safe_strncpy0(skedqrg,confb->skedqrg,RESP_LEN); g_snprintf(band_lo_str, RESP_LEN, "%1.1f", confb->band_lo); g_snprintf(band_sw_str, RESP_LEN, "0x%02x", confb->band_sw); }else{ qrvnow=1; psect=band->psect; isqrv=1; readonly=band->readonly; safe_strncpy0(stxeq,band->stxeq,RESP_LEN); safe_strncpy0(spowe,band->spowe,RESP_LEN); safe_strncpy0(srxeq,band->srxeq,RESP_LEN); safe_strncpy0(sante,band->sante,RESP_LEN); safe_strncpy0(santh,band->santh,RESP_LEN); safe_strncpy0(mope1,band->mope1,RESP_LEN); uc(mope1); safe_strncpy0(mope2,band->mope2,RESP_LEN); uc(mope2); safe_strncpy0(remarks,band->remarks,RESP_LEN); /*safe_strncpy0(ok_section_single,band->ok_section_single,RESP_LEN); safe_strncpy0(ok_section_multi,band->ok_section_multi,RESP_LEN); g_snprintf(qrg_min, RESP_LEN, "%d", band->qrg_min); g_snprintf(qrg_max, RESP_LEN, "%d", band->qrg_max); safe_strncpy0(adifband,band->adifband,RESP_LEN); safe_strncpy0(skedqrg,band->skedqrg,RESP_LEN); g_snprintf(band_lo, RESP_LEN, "%1.1f", band->band_lo);*/ } if (!(d = mem_alloc(sizeof(struct dialog) + 55 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 55 * sizeof(struct dialog_item)); d->title = ss; d->fn = band_fn; if (confb){ g_snprintf(ss,1000,VTEXT(T_BAND_SETTINGS_SC), upcase(confb->bandchar),pband); d->refresh = (void (*)(void *))refresh_band_confb; d->refresh_data = confb; }else{ g_snprintf(ss,1000,VTEXT(T_BAND_SETTINGS_SC), upcase(band->bandchar),pband); d->refresh = (void (*)(void *))refresh_band; d->refresh_data = band; } d->items[i=0].type = D_CHECKBOX; /* 0 */ d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&isqrv; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&qrvnow; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&readonly; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = 0; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&psect; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&psect; d->items[++i].type = D_CHECKBOX; /* 5 */ d->items[i].gid = 1; d->items[i].gnum = 2; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&psect; d->items[++i].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = stxeq; d->items[++i].type = D_FIELD; d->items[i].dlen = 10; d->items[i].data = spowe; d->items[++i].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = srxeq; d->items[++i].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = sante; d->items[++i].type = D_FIELD; /* 10 */ d->items[i].dlen = 10; d->items[i].data = santh; d->items[++i].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = mope1; d->items[++i].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = mope2; d->items[++i].type = D_FIELD; /* 13 */ d->items[i].dlen = RESP_LEN; d->items[i].data = remarks; if (confb){ d->items[++i].type = D_FIELD; d->items[i].dlen = 4; d->items[i].data = ok_section_single; d->items[++i].type = D_FIELD; /* 15 */ d->items[i].dlen = 4; d->items[i].data = ok_section_multi; d->items[++i].type = D_FIELD; d->items[i].dlen = 10; d->items[i].data = qrg_min_str; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 250000000; d->items[++i].type = D_FIELD; d->items[i].dlen = 10; d->items[i].data = qrg_max_str; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 250000000; d->items[++i].type = D_FIELD; d->items[i].dlen = 8; d->items[i].data = adifband; d->items[++i].type = D_FIELD; d->items[i].dlen = 11; d->items[i].data = skedqrg; d->items[++i].type = D_FIELD; /* 20 */ d->items[i].dlen = 16; d->items[i].data = band_lo_str; d->items[i].fn = check_qrg; d->items[++i].type = D_FIELD; /* 20 */ d->items[i].dlen = 6; d->items[i].data = band_sw_str; //d->items[i].fn = check_qrg; } d->items[++i].type = D_BUTTON; /* 14 nebo 21 */ d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); bandfirstbutt = i; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } int dlg_band_settings_confb(struct dialog_data *dlg, struct dialog_item_data *di){ /*dbg("dlg_band_settings %p %p \n",dlg,di);*/ band_settings((cba_t)di->item->text, 0); return 0; } int dlg_band_settings(struct dialog_data *dlg, struct dialog_item_data *di){ /*dbg("dlg_band_settings %p %p \n",dlg,di);*/ band_settings((cba_t)di->item->text, 1); return 0; } /******************** RESPONSIBLE OPERATOR *******************************/ #define RESP_LEN 50 char rname[RESP_LEN], rcall[RESP_LEN], radr1[RESP_LEN], radr2[RESP_LEN]; char rpoco[RESP_LEN], rcity[RESP_LEN], rcoun[RESP_LEN]; char rphon[RESP_LEN], rhbbs[RESP_LEN]; void refresh_responsible_op(void *xxx) { /* dbg("refresh_responsible_op\n");*/ STORE_STR(cfg,rname); STORE_STR(cfg,rcall); STORE_STR(cfg,radr1); STORE_STR(cfg,radr2); STORE_STR(cfg,rpoco); STORE_STR(cfg,rcity); STORE_STR(cfg,rcoun); STORE_STR(cfg,rphon); STORE_STR(cfg,rhbbs); } char *responsible_op_msg[] = { CTEXT(T_NAME), CTEXT(T_CALLSIGN), CTEXT(T_ADDRESS), CTEXT(T_ADDRESS), CTEXT(T_POSTCODE), CTEXT(T_CITY), CTEXT(T_COUNTRY), CTEXT(T_PHONE), CTEXT(T_BBSEMAIL), "", /* OK */ /* 9 */ "", /* Cancel */ }; void responsible_op_fn(struct dialog_data *dlg) { int max = 0, min = 0; int w, rw; int y = -1; max_group_width(term, responsible_op_msg + 0, dlg->items + 0, 1, &max); min_group_width(term, responsible_op_msg + 0, dlg->items + 0, 1, &min); max_group_width(term, responsible_op_msg + 1, dlg->items + 1, 1, &max); min_group_width(term, responsible_op_msg + 1, dlg->items + 1, 1, &min); max_group_width(term, responsible_op_msg + 2, dlg->items + 2, 1, &max); min_group_width(term, responsible_op_msg + 2, dlg->items + 2, 1, &min); max_group_width(term, responsible_op_msg + 3, dlg->items + 3, 1, &max); min_group_width(term, responsible_op_msg + 3, dlg->items + 3, 1, &min); max_group_width(term, responsible_op_msg + 4, dlg->items + 4, 1, &max); min_group_width(term, responsible_op_msg + 4, dlg->items + 4, 1, &min); max_group_width(term, responsible_op_msg + 5, dlg->items + 5, 1, &max); min_group_width(term, responsible_op_msg + 5, dlg->items + 5, 1, &min); max_group_width(term, responsible_op_msg + 6, dlg->items + 6, 1, &max); min_group_width(term, responsible_op_msg + 6, dlg->items + 6, 1, &min); max_group_width(term, responsible_op_msg + 7, dlg->items + 7, 1, &max); min_group_width(term, responsible_op_msg + 7, dlg->items + 7, 1, &min); max_group_width(term, responsible_op_msg + 8, dlg->items + 8, 1, &max); min_group_width(term, responsible_op_msg + 8, dlg->items + 8, 1, &min); max_buttons_width(term, dlg->items + 9, 2, &max); min_buttons_width(term, dlg->items + 9, 2, &min); w = dlg->win->term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > dlg->win->term->x - 2 * DIALOG_LB) w = dlg->win->term->x - 2 * DIALOG_LB; if (w < 1) w = 1; rw = 0; y ++; dlg_format_group(NULL, term, responsible_op_msg + 0, dlg->items + 0, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, responsible_op_msg + 1, dlg->items + 1, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, responsible_op_msg + 2, dlg->items + 2, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, responsible_op_msg + 3, dlg->items + 3, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, responsible_op_msg + 4, dlg->items + 4, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, responsible_op_msg + 5, dlg->items + 5, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, responsible_op_msg + 6, dlg->items + 6, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, responsible_op_msg + 7, dlg->items + 7, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, responsible_op_msg + 8, dlg->items + 8, 1, 0, &y, w, &rw); y++; dlg_format_buttons(NULL, term, dlg->items +9, 2, 0, &y, w, &rw, AL_LEFT); w = rw; dlg->xw = w + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB; y++; dlg_format_group(term, term, responsible_op_msg + 0, dlg->items + 0, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, responsible_op_msg + 1, dlg->items + 1, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, responsible_op_msg + 2, dlg->items + 2, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, responsible_op_msg + 3, dlg->items + 3, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, responsible_op_msg + 4, dlg->items + 4, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, responsible_op_msg + 5, dlg->items + 5, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, responsible_op_msg + 6, dlg->items + 6, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, responsible_op_msg + 7, dlg->items + 7, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, responsible_op_msg + 8, dlg->items + 8, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); y++; dlg_format_buttons(term, term, dlg->items +9, 2, dlg->x + DIALOG_LB, &y, w, NULL, AL_LEFT); } void responsible_op(void) { struct dialog *d; int i; safe_strncpy0(rname,cfg->rname,RESP_LEN); safe_strncpy0(rcall,cfg->rcall,RESP_LEN); uc(rcall); safe_strncpy0(radr1,cfg->radr1,RESP_LEN); safe_strncpy0(radr2,cfg->radr2,RESP_LEN); safe_strncpy0(rpoco,cfg->rpoco,RESP_LEN); safe_strncpy0(rcity,cfg->rcity,RESP_LEN); safe_strncpy0(rcoun,cfg->rcoun,RESP_LEN); safe_strncpy0(rphon,cfg->rphon,RESP_LEN); safe_strncpy0(rhbbs,cfg->rhbbs,RESP_LEN); if (!(d = mem_alloc(sizeof(struct dialog) + 55 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 55 * sizeof(struct dialog_item)); d->title = VTEXT(T_RESPOP); d->fn = responsible_op_fn; d->refresh = (void (*)(void *))refresh_responsible_op; d->items[i=0].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = rname; d->items[i=1].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = rcall; d->items[i=2].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = radr1; d->items[i=3].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = radr2; d->items[i=4].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = rpoco; d->items[i=5].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = rcity; d->items[i=6].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = rcoun; d->items[i=7].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = rphon; d->items[i=8].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = rhbbs; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } int dlg_responsoble_op(struct dialog_data *dlg, struct dialog_item_data *di){ responsible_op(); return 0; } void menu_responsible_op(cba_t cba){ responsible_op(); } /******************** QSOP METHOD, TOTAL METHOD ******************/ #define MAX_QSOP_METHOD 16 #define MAX_TOTAL_METHOD 4 int qsop_method=1, total_method=1; char qsop_method_str[MAX_STR_LEN],total_method_str[MAX_STR_LEN]; char *qsop_method_msg[]={ CTEXT(T_QP0), CTEXT(T_QP1), CTEXT(T_QP2), CTEXT(T_QP3), CTEXT(T_QP4), CTEXT(T_QP5), CTEXT(T_QP6), CTEXT(T_QP7), CTEXT(T_QP8), CTEXT(T_QP9), CTEXT(T_QP10), CTEXT(T_QP11), CTEXT(T_QP12), CTEXT(T_QP13), CTEXT(T_QP14), CTEXT(T_QP15), CTEXT(T_QP16) }; char *total_method_msg[]={ CTEXT(T_TP0), CTEXT(T_TP1), CTEXT(T_TP2), CTEXT(T_TP3), CTEXT(T_TP4) }; void qsop_method_func (cba_t cba){ int active; active=(int)GETCBA(cba, int_); if (active<1 || active>MAX_QSOP_METHOD) return; qsop_method = active; /*safe_strncpy0(qsop_method_str, qsop_method_msg[qsop_method], MAX_STR_LEN);*/ safe_strncpy0(qsop_method_str,_(CTEXT(T_QP0+qsop_method)),MAX_STR_LEN); redraw_later(); } int dlg_qsop_method(struct dialog_data *dlg, struct dialog_item_data *di){ int i, sel; struct menu_item *mi; if (!(mi = new_menu(1))) return 0; for (i = 1; i <= MAX_QSOP_METHOD; i++) { add_to_menu(&mi, qsop_method_msg[i], "", "", MENU_FUNC qsop_method_func, (cba_t)i, 0); } sel = qsop_method-1; if (sel < 0) sel = 0; if (sel>=MAX_QSOP_METHOD) sel=0; do_menu_selected(mi, (cba_t)qsop_method, sel); return 0; } void total_method_func (cba_t cba){ int active; active=(int)GETCBA(cba, int_); if (active<1 || active>MAX_TOTAL_METHOD) return; total_method = active; safe_strncpy0(total_method_str,_(CTEXT(T_TP0+total_method)),MAX_STR_LEN); redraw_later(); return; } int dlg_total_method(struct dialog_data *dlg, struct dialog_item_data *di){ int i, sel; struct menu_item *mi; if (!(mi = new_menu(1))) return 0; for (i = 1; i <= MAX_TOTAL_METHOD; i++) { add_to_menu(&mi, total_method_msg[i], "", "", MENU_FUNC total_method_func, (cba_t)i, 0); } sel = total_method-1; if (sel < 0) sel = 0; if (sel>=MAX_TOTAL_METHOD) sel=0; do_menu_selected(mi, (cba_t)total_method, sel); return 0; } /****************** TTTYPE *******************/ #define MAX_TTTYPE 6 char tttype_str[MAX_STR_LEN]; char *tttype_msg[]={ "None ", "RST-S", "RST-R", "QSONR-R", "EXC" }; void tttype_func(cba_t cba){ int active; active=(int)GETCBA(cba, int_); if (active<0 || active>=MAX_TTTYPE) return; tttype = active; safe_strncpy0(tttype_str, tttype_msg[tttype], MAX_STR_LEN); redraw_later(); } int dlg_tttype(struct dialog_data *dlg, struct dialog_item_data *di){ int i, sel; struct menu_item *mi; if (!(mi = new_menu(1))) return 0; for (i = 0; i < MAX_TTTYPE; i++) { add_to_menu(&mi, tttype_msg[i], "", "", MENU_FUNC tttype_func, (cba_t)i, 0); } sel = tttype; if (sel < 1) sel = 1; if (sel>=MAX_TTTYPE) sel=0; do_menu_selected(mi, (cba_t)tttype, sel); return 0; } /****************** WWLTYPE *******************/ #define MAX_WWLTYPE 5 char wwltype_str[MAX_STR_LEN]; char *wwltype_msg[]={ "Unused ", "Used (6)", "Opt. (6)", "Used (4)", "Opt. (4)" }; void wwltype_func(cba_t cba){ int active; active=(int)GETCBA(cba, int_); if (active<0 || active>=MAX_WWLTYPE) return; wwlused = active; safe_strncpy0(wwltype_str, wwltype_msg[wwlused], MAX_STR_LEN); redraw_later(); } int dlg_wwltype(struct dialog_data *dlg, struct dialog_item_data *di){ int i, sel; struct menu_item *mi; if (!(mi = new_menu(1))) return 0; for (i = 0; i < MAX_WWLTYPE; i++) { add_to_menu(&mi, wwltype_msg[i], "", "", MENU_FUNC wwltype_func, (cba_t)i, 0); } sel = wwlused; if (sel < 1) sel = 1; if (sel>=MAX_WWLTYPE) sel=0; do_menu_selected(mi, (cba_t)wwlused, sel); return 0; } /****************** EXCTYPE *******************/ #define MAX_EXCTYPE 6 char *exctype_msg[]={ "Unused ", "Free ", "Verified", "WAZ ", "ITU ", }; void exctype_func(cba_t cba){ int active; active=(int)GETCBA(cba, int_); if (active<1 || active>=MAX_EXCTYPE) return; exctype = active; switch(exctype){ case EXC_WAZ: strcpy(new_excname, "WAZ"); break; case EXC_ITU: strcpy(new_excname, "ITU"); break; default: strcpy(new_excname, old_excname); break; } /*safe_strncpy0(qsop_method_str, qsop_method_msg[qsop_method], MAX_STR_LEN);*/ safe_strncpy0(exctype_str, exctype_msg[exctype], MAX_STR_LEN); redraw_later(); } int dlg_exctype(struct dialog_data *dlg, struct dialog_item_data *di){ int i, sel; struct menu_item *mi; if (!(mi = new_menu(1))) return 0; for (i = 1; i < MAX_EXCTYPE; i++) { add_to_menu(&mi, exctype_msg[i], "", "", MENU_FUNC exctype_func, (cba_t)i, 0); } sel = exctype; if (sel < 1) sel = 1; if (sel>=MAX_EXCTYPE) sel=0; do_menu_selected(mi, (cba_t)exctype, sel-1); return 0; } /******************** WIZZ *******************************************/ void wizz_func (cba_t cba){ int active,j; struct wizz_item *wi; time_t now; struct tm utc; active=(int)GETCBA(cba, int_); if (active<0 || active>=wizz->items->len) return; wi = get_wizz(wizz, active); time(&now); gmtime_r(&now, &utc); safe_strncpy0(tname, wi->tname,100); safe_strncpy0(pcall, cfg->pcall, 20);uc(pcall); safe_strncpy0(pclub, cfg->pclub, 20);uc(pclub); safe_strncpy0(operator_, cfg->operator_, EQSO_LEN);uc(operator_); safe_strncpy0(pwwlo, cfg->pwwlo, 9); uc(pwwlo); safe_strncpy0(pexch, wi->pexch, 9); uc(pexch); g_snprintf(tdate, MAX_STR_LEN, "%d%02d%02d", 1900+utc.tm_year, 1+utc.tm_mon, utc.tm_mday); qsoused=wi->qsoused; g_snprintf(qsomult_str,10, "%d", wi->qsomult); qsoglob=wi->qsoglob; wwlused=wi->wwlused; safe_strncpy0(wwltype_str, wwltype_msg[wwlused], MAX_STR_LEN); g_snprintf(wwlbonu_str,10, "%d", wi->wwlbonu); g_snprintf(wwlmult_str,10, "%d", wi->wwlmult); wwlcfm=wi->wwlcfm; exctype=wi->exctype; safe_strncpy0(exctype_str,exctype_msg[exctype],MAX_STR_LEN); safe_strncpy0(excname, wi->excname, MAX_STR_LEN); safe_strncpy0(new_excname, wi->excname, MAX_STR_LEN); safe_strncpy0(old_excname, wi->excname, MAX_STR_LEN); g_snprintf(excbonu_str,10, "%d", wi->excbonu); g_snprintf(excmult_str,10, "%d", wi->excmult); exccfm=wi->exccfm; excused=wi->excused; g_snprintf(prefmult_str,10, "%d", wi->prefmult); g_snprintf(dxcbonu_str,10, "%d", wi->dxcbonu); g_snprintf(dxcmult_str,10, "%d", wi->dxcmult); prefglob=wi->prefglob; rstused=wi->rstused; safe_strncpy(default_rs, cfg->default_rs, 5); uc(default_rs); safe_strncpy(default_rst, cfg->default_rst, 5); uc(default_rst); defrstr=wi->defrstr; tttype=wi->tttype; safe_strncpy0(tttype_str,tttype_msg[tttype],MAX_STR_LEN); expmode=0; qsop_method=wi->qsop_method; /*safe_strncpy0(qsop_method_str,qsop_method_msg[qsop_method],MAX_STR_LEN);*/ safe_strncpy0(qsop_method_str,_(CTEXT(T_QP0+qsop_method)),MAX_STR_LEN); total_method=wi->total_method; safe_strncpy0(total_method_str,_(CTEXT(T_TP0+total_method)),MAX_STR_LEN); /*safe_strncpy0(total_method_str,total_method_msg[total_method],MAX_STR_LEN);*/ log_addf("qsop_method=%d total_method=%d", qsop_method, total_method); /* wwltype */ /* minqsop, maxqsop */ if (wi->bands){ dbg("wi->bands='%s'\n", wi->bands); for (j=0; j<26;j++){ char c; struct config_band *confb; confb = (struct config_band*)g_ptr_array_index(cfg->bands,j); if (!confb) break; /* unreached? */ confb->qrvnow = confb->qrv; if (!confb->qrvnow) continue; c = toupper(confb->bandchar); if (strchr(wi->bands, c)==NULL) { dbg("Band %c is not used in contest\n", c); confb->qrvnow=0; } } } contest_options1(VTEXT(T_NEW_CTEST), 0); } struct menu_item no_wizz[] = { {CTEXT(T_NO_CTESTS), "", M_BAR, NULL, {NULL}, 0, 0}, {NULL, NULL, 0, NULL, {NULL}, 0, 0} }; void menu_wizz(cba_t cba){ int i; struct menu_item *mi; struct wizz_item *wi; if (!wizz->items->len){ do_menu(no_wizz, CBA0); return; } if (!(mi = new_menu(1))) return; for (i = 0; i < wizz->items->len; i++) { wi = get_wizz(wizz, i); add_to_menu(&mi, wi->tname, "", "", MENU_FUNC wizz_func, (cba_t)i, 0); } do_menu_selected(mi, CBA0, 0); } /******************** CONTEST OPTIONS 1 *******************************/ /*char qsop_method_str[MAX_STR_LEN],total_method_str[MAX_STR_LEN];*/ int firstbandbutt=-1, excnameidx; int save_desc_to_file(gchar *filename){ gchar *pcall, *s; FILE *f; int ret; if (filename){ f = fopen(filename, "wt"); if (!f) return 1; }else{ /* dialog contest options, desc remains locked */ f=ctest->descfile; fseek(f, 0L, SEEK_SET); if (ftruncate(fileno(f), 0)){ log_addf("Can't ftruncate(desc,0), errno=%d\n", errno); } } pcall=g_strdup(ctest->pcall); s = g_strdup_printf("%s %s %s\n", ctest->cdate, uc(pcall), ctest->tname); ret = fprintf(f, "%s", s) != strlen(s); g_free(pcall); g_free(s); if (filename){ fclose(f); } return ret; } void update_desc(struct contest *ctest){ if (!ctest) return; if (!ctest->pcall) return; if (!ctest->tname) return; if (!ctest->pcall || !ctest->tname || strcasecmp(pcall, ctest->pcall) || strcasecmp(tname, ctest->tname)){ setvbuf(ctest->descfile, NULL, _IONBF, 0); fseek(ctest->descfile, 0, SEEK_SET); if (ftruncate(fileno(ctest->descfile), 0)){ errbox(VTEXT(T_CANT_TRUNC), errno); return; } fprintf(ctest->descfile,"%s %s %s\n", ctest->cdate, uc(pcall), ctest->tname); } } void refresh_contest_options1(void *xxx) { int updloc; /*dbg("refresh_contest_options1\n");*/ update_desc(ctest); updloc=strcmp(cfg->pwwlo, pwwlo); STORE_STR_FS_UC(cfg,pcall); STORE_STR_FS_UC(cfg,pclub); /*STORE_STR_FS_UC(cfg,operator);*/ STORE_STR_FS_UC(cfg,pwwlo); STORE_STR_FS (cfg,default_rst); STORE_STR_FS (cfg,default_rs); init_ctest2(1, updloc, NULL); } void init_ctest2(int from_dlg, int updloc, struct zstring *zs2){ int isnew=0; struct zstring *zs; char *c; if (!ctest) isnew=1; dbg("init_ctest2: isnew=%d\n", isnew); if (init_ctest()) return; if (ctest->pwwlo) updloc=strcasecmp(ctest->pwwlo, pwwlo); if (from_dlg){ STORE_STR_FS (ctest,tname); STORE_STR_FS_UC(ctest,pcall); STORE_STR_FS_UC(ctest,pclub); STORE_STR_FS_UC(ctest,pwwlo); STORE_STR_FS_UC(ctest,pexch); /* tdate is handled by argument */ // STORE_STR_FS (ctest,tdate); STORE_STR_FS (ctest,default_rst); STORE_STR_FS (ctest,default_rs); STORE_STR2 (ctest,cfg,rname); STORE_STR2_UC(ctest,cfg,rcall); STORE_STR2 (ctest,cfg,radr1); STORE_STR2 (ctest,cfg,radr2); STORE_STR2 (ctest,cfg,rpoco); STORE_STR2 (ctest,cfg,rcity); STORE_STR2 (ctest,cfg,rcoun); STORE_STR2 (ctest,cfg,rphon); STORE_STR2 (ctest,cfg,rhbbs); STORE_INT (ctest,qsoused); STORE_SINT(ctest,qsomult); STORE_INT (ctest,qsoglob); STORE_INT (ctest,wwlused); STORE_SINT(ctest,wwlbonu); STORE_SINT(ctest,wwlmult); STORE_INT (ctest,wwlcfm); STORE_INT (ctest,exctype); STORE_STR (ctest,excname); STORE_INT (ctest,excused); STORE_SINT(ctest,excbonu); STORE_SINT(ctest,excmult); STORE_INT (ctest,exccfm); STORE_SINT(ctest,prefmult); STORE_SINT(ctest,dxcbonu); STORE_SINT(ctest,dxcmult); STORE_INT (ctest,prefglob); STORE_INT (ctest,rstused); STORE_INT (ctest,tttype); STORE_INT (ctest,expmode); STORE_INT (ctest,defrstr); STORE_INT (ctest,qsop_method); STORE_INT (ctest,total_method); } if (zs2){ zs = zstrdup(ztokenize(zs2, 1)); dbg("ctest\t%s\n", zs->str); ctest_parse(zs, ctest); zfree(zs); safe_strncpy0(tdate, ctest->cdate, MAX_STR_LEN); } set_ctest_title(); clear_exc(excdb); read_exc_files(excdb, exctype, excname); if (!isnew){ /* contest options from menu */ gchar *descfile; dbg("init_ctest2: from menu\n"); /*save_all_bands_txt(0);*/ descfile=g_strdup_printf("%s/desc", ctest->directory); save_desc_to_file(NULL); g_free(descfile); net_send_ac(); net_send_operator(); net_send_read_write_bands(); recalc_all_stats(ctest); if (updloc){ qrv_recalc_qrbqtf(qrvdb); qrv_recalc_gst(qrvdb); #ifdef HAVE_SDL recalc_all_qrbqtf(ctest); map_recalc_cors(); maps_reload(); #endif chart_reload(); //qrv_recalc_wkd(qrvdb); probably not needed } save_all_bands_txt(0); return; } /* new contest */ dbg("init_ctest2: new contest tdate=%s\n", tdate); if (new_ctest(tdate)) return; if (from_dlg){ if (init_qrv_bands()) return; } if (zs2){ int i; for (i=0; ;i++){ gchar *cc; struct band *b; cc = ztokenize(zs2, 0); if (!cc) break; zs = zstrdup(cc); dbg("band%d\t%s\n", i, zs->str); b = init_band(NULL, NULL, zs); zfree(zs); } } if (ctest->bands->len==0){ errbox(VTEXT(T_NO_BANDS), 0); free_ctest(); return; } c = g_strconcat(getenv("HOME"), "/tucnak/qrv", NULL); load_qrv_from_file(qrvdb, c); g_free(c); save_all_bands_txt(0); net_send_ac(); net_send_operator(); net_send_read_write_bands(); if (cfg->startband){ struct band *b; b=find_band_by_pband(cfg->startband); activate_band(b); /* b==NULL is handled by function */ } } void contest_options1_fn(struct dialog_data *dlgd) { int numofbands; /*dbg("contest_options1_fn()\n");*/ // firstbandbutt=26; for (numofbands=0; numofbands<26; numofbands++ ) { if (! dlgd->items[firstbandbutt+numofbands].item) break; if (dlgd->items[firstbandbutt+numofbands].item->type!= D_BUTTON) break; if (dlgd->items[firstbandbutt+numofbands].item->gid== B_ENTER) break; } /* dbg("first=%d, num=%d\n",firstbandbutt,numofbands);*/ if (strcmp(excname, new_excname)!=0){ strcpy(excname, new_excname); safe_strncpy0(dlgd->items[excnameidx].cdata, excname, EQSO_LEN); dlgd->items[excnameidx].cpos = strlen(dlgd->items[excnameidx].cdata); } #if 0 int ph; for (ph = 0; ph < 3; ph++){ dlg_pf_init(ph, dlgd); dlgd->yy++; dlg_pf_group(ph, dlgd, 1); dlg_pf_group(ph, dlgd, 2); dlg_pf_group(ph, dlgd, 3); dlg_pf_group(ph, dlgd, 1); // tttype dlg_pf_group(ph, dlgd, 3); // qso dlg_pf_group(ph, dlgd, 4); // wwl dlg_pf_group(ph, dlgd, 4); // exc dlg_pf_group(ph, dlgd, 2); // exc dlg_pf_group(ph, dlgd, 2); dlg_pf_group(ph, dlgd, 4); dlg_pf_group(ph, dlgd, 2); dlgd->yy ++; dlg_pf_group(ph, dlgd, numofbands); dlgd->yy ++; //dlg_pf_buttons(ph, dlgd, 4); dlg_pf_group(ph, dlgd, 4); dlgd->yy ++; dlgd->yy ++; } #endif } void contest_options1(char *title, int from_ctest) { struct dialog *d; int i,j; /*dbg("contest_options1\n");*/ if (!(d = mem_alloc(sizeof(struct dialog) + 60 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 60 * sizeof(struct dialog_item)); d->title = title; d->fn = dlg_pf_fn; d->fn2 = contest_options1_fn; d->refresh = (void (*)(void *))refresh_contest_options1; d->y0 = 1; d->items[i=0].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = tname; d->items[i].maxl = 45; d->items[i].msg = CTEXT(T_NAME_OF_CTEST); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = 20; d->items[i].data = pcall; d->items[i].maxl = 15; d->items[i].msg = CTEXT(T_CALL_OF_CTEST); d->items[++i].type = D_FIELD; d->items[i].dlen = 20; d->items[i].data = pclub; d->items[i].maxl = 15; d->items[i].msg = CTEXT(T_CLUB_ST); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = 9; d->items[i].data = pwwlo; d->items[i].msg = CTEXT(T_YOURWWL); d->items[++i].type = D_FIELD; d->items[i].dlen = 9; d->items[i].data = pexch; d->items[i].msg = CTEXT(T_YOUREXC); d->items[++i].type = D_FIELD; /* 5 */ d->items[i].dlen = 9; d->items[i].data = tdate; d->items[i].msg = CTEXT(T_DATE_OF_CTEST); d->items[i].wrap = 1; d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_tttype; d->items[i].text = tttype_str; d->items[i].msg = CTEXT(T_TTTYPE); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&expmode; d->items[i].msg = CTEXT(T_EXPMODE); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX3; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&qsoused; d->items[i].msg = CTEXT(T_QSOUSED); d->items[++i].type = D_FIELD; d->items[i].data = qsomult_str; d->items[i].dlen = 8; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 999999; d->items[i].msg = CTEXT(T_QSOPM); d->items[++i].type = D_CHECKBOX3; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&qsoglob; d->items[i].msg = CTEXT(T_QSOGLOB); d->items[i].wrap = 1; /* d->items[++i].type = D_CHECKBOX3; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&wwlused; d->items[i].msg = CTEXT(T_WWLUSED);*/ d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_wwltype; d->items[i].text = wwltype_str; d->items[i].msg = "WWL:"; d->items[++i].type = D_FIELD; /* 10 */ d->items[i].data = wwlbonu_str; d->items[i].dlen = 8; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 999999; d->items[i].msg = CTEXT(T_WWLB); d->items[++i].type = D_FIELD; d->items[i].data = wwlmult_str; d->items[i].dlen = 8; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 999999; d->items[i].msg = CTEXT(T_WWLM); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&wwlcfm; d->items[i].msg = "Confirm WWL"; d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX3; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&excused; d->items[i].msg = CTEXT(T_EXCUSED); d->items[++i].type = D_FIELD; d->items[i].data = excbonu_str; d->items[i].dlen = 8; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 999999; d->items[i].msg = CTEXT(T_EXCB); d->items[++i].type = D_FIELD; /* 15 */ d->items[i].data = excmult_str; d->items[i].dlen = 8; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 999999; d->items[i].msg = CTEXT(T_EXCM); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&exccfm; d->items[i].msg = "Confirm EXC"; d->items[i].wrap = 1; d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_exctype; d->items[i].text = exctype_str; d->items[i].msg = "EXC"; d->items[++i].type = D_FIELD; d->items[i].dlen = 15; d->items[i].data = excname; d->items[i].maxl = 7; d->items[i].msg = CTEXT(T_EXCNAME); d->items[i].wrap = 1; excnameidx = i; d->items[++i].type = D_FIELD; d->items[i].data = prefmult_str; d->items[i].dlen = 8; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 999999; d->items[i].msg = CTEXT(T_PREFM); d->items[++i].type = D_FIELD; d->items[i].data = dxcbonu_str; d->items[i].dlen = 8; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 999999; d->items[i].msg = CTEXT(T_DXCB); d->items[++i].type = D_FIELD; /* 20 */ d->items[i].data = dxcmult_str; d->items[i].dlen = 8; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 999999; d->items[i].msg = CTEXT(T_DXCM); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(gint); d->items[i].data=(char *)&prefglob; d->items[i].msg = CTEXT(T_PREFGLOB); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX3; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(gint); d->items[i].data=(char *)&rstused; d->items[i].msg = CTEXT(T_RSTUSED); d->items[++i].type = D_FIELD; d->items[i].data = default_rs; d->items[i].dlen = 5; d->items[i].msg = CTEXT(T_DEFRS); d->items[++i].type = D_FIELD; d->items[i].data = default_rst; d->items[i].dlen = 5; d->items[i].msg = CTEXT(T_DEFRST); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(gint); d->items[i].data=(char *)&defrstr; d->items[i].msg = CTEXT(T_ALSORSTR); d->items[i].wrap = 1; d->items[++i].type = D_BUTTON; /* 25 */ d->items[i].gid = 0; d->items[i].fn = dlg_qsop_method; d->items[i].text = qsop_method_str; d->items[i].msg = CTEXT(T_QP_CALC); d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_total_method; d->items[i].text = total_method_str; d->items[i].msg = CTEXT(T_TO_CALC); d->items[i].wrap = 2; firstbandbutt=i+1; /* dbg("firstband=%d\n",i+1);*/ if (!from_ctest){ for (j=0;j<26;j++){ struct config_band *confb; if (j>=cfg->bands->len) break; /* no config file */ confb = (struct config_band*)g_ptr_array_index(cfg->bands,j); if (!confb) break; /* unreached? */ if (!confb->qrvnow) continue; d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_band_settings_confb; d->items[i].text = confb->pband; } }else{ for (j=0;jbands->len;j++){ struct band *band; band = (struct band*)g_ptr_array_index(ctest->bands,j); if (!band) break; /* unreached? */ d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_band_settings; d->items[i].text = band->pband; } } /* dbg("lastband=%d\n",i);*/ d->items[i].wrap = 2; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_edi_prop; d->items[i].text = VTEXT(T_EDI_PROP); d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_responsoble_op; d->items[i].text = VTEXT(T_RESPOP2); d->items[i].align = AL_CENTER | AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; dbg("last item=%d\n", i); do_dialog(d, getml(d, NULL)); } void contest_options1_from_menu(cba_t cba) { time_t now; struct tm utc; time(&now); gmtime_r(&now, &utc); /*dbg("contest_options1\n");*/ safe_strncpy0(tname,"",100); safe_strncpy0(pcall, cfg->pcall, 20);uc(pcall); safe_strncpy0(pclub, cfg->pclub, 20);uc(pclub); safe_strncpy0(pwwlo, cfg->pwwlo, 9); uc(pwwlo); safe_strncpy0(pexch, cfg->pexch, 9); uc(pexch); g_snprintf(tdate, MAX_STR_LEN, "%d%02d%02d", 1900+utc.tm_year, 1+utc.tm_mon, utc.tm_mday); qsoused=1; safe_strncpy(qsomult_str,"1", 10); qsoglob=0; wwlused=1; safe_strncpy0(wwltype_str,wwltype_msg[wwlused],MAX_STR_LEN); safe_strncpy(wwlbonu_str,"0",10); safe_strncpy(wwlmult_str,"0",10); wwlcfm=1; exctype=0; safe_strncpy0(exctype_str,exctype_msg[exctype],MAX_STR_LEN); safe_strncpy(excbonu_str,"0",10); safe_strncpy(excmult_str,"0",10); exccfm=1; safe_strncpy(excname, "", 10); safe_strncpy(new_excname, "", 10); safe_strncpy(old_excname, "", 10); excused=0; safe_strncpy(prefmult_str,"0",10); safe_strncpy(dxcbonu_str,"0",10); safe_strncpy(dxcmult_str,"0",10); rstused=1; safe_strncpy0(default_rs, cfg->default_rs, 5); uc(default_rs); defrstr=0; safe_strncpy0(default_rst, cfg->default_rst, 5); uc(default_rst); qsop_method=cfg->qsop_method % MAX_QSOP_METHOD; safe_strncpy0(qsop_method_str,_(CTEXT(T_QP0+qsop_method)),MAX_STR_LEN); /*safe_strncpy0(qsop_method_str,qsop_method_msg[qsop_method],MAX_STR_LEN);*/ total_method=cfg->total_method % MAX_TOTAL_METHOD; safe_strncpy0(total_method_str,_(CTEXT(T_TP0+total_method)),MAX_STR_LEN); /*safe_strncpy0(total_method_str,total_method_msg[total_method],MAX_STR_LEN);*/ tttype=TT_RSTS; safe_strncpy0(tttype_str,tttype_msg[tttype],MAX_STR_LEN); expmode=0; contest_options1(VTEXT(T_NEW_CTEST), 0); } void contest_options1_from_ctest(cba_t cba) { /*dbg("contest_options1\n");*/ safe_strncpy0(tname, ctest->tname,100); safe_strncpy0(pcall, ctest->pcall, 20);uc(pcall); safe_strncpy0(pclub, ctest->pclub, 20);uc(pclub); safe_strncpy0(pwwlo, ctest->pwwlo, 9); uc(pwwlo); safe_strncpy0(pexch, ctest->pexch, 9); uc(pexch); safe_strncpy0(tdate, "", MAX_STR_LEN); qsoused=ctest->qsoused; g_snprintf(qsomult_str,10, "%d", ctest->qsomult); qsoglob=ctest->qsoglob; wwlused=ctest->wwlused; safe_strncpy0(wwltype_str,wwltype_msg[wwlused],MAX_STR_LEN); g_snprintf(wwlbonu_str,10, "%d", ctest->wwlbonu); g_snprintf(wwlmult_str,10, "%d", ctest->wwlmult); wwlcfm=ctest->wwlcfm; exctype=ctest->exctype; safe_strncpy0(exctype_str,exctype_msg[exctype],MAX_STR_LEN); safe_strncpy0(excname, ctest->excname, MAX_STR_LEN); safe_strncpy0(new_excname, ctest->excname, MAX_STR_LEN); safe_strncpy0(old_excname, ctest->excname, MAX_STR_LEN); g_snprintf(excbonu_str,10, "%d", ctest->excbonu); g_snprintf(excmult_str,10, "%d", ctest->excmult); exccfm=ctest->exccfm; excused=ctest->excused; g_snprintf(prefmult_str,10, "%d", ctest->prefmult); g_snprintf(dxcbonu_str,10, "%d", ctest->dxcbonu); g_snprintf(dxcmult_str,10, "%d", ctest->dxcmult); rstused=ctest->rstused; safe_strncpy0(default_rs, cfg->default_rs, 5); uc(default_rs); safe_strncpy0(default_rst, cfg->default_rst, 5); uc(default_rst); qsop_method=ctest->qsop_method; safe_strncpy0(qsop_method_str,_(CTEXT(T_QP0+qsop_method)),MAX_STR_LEN); total_method=ctest->total_method; safe_strncpy0(total_method_str,_(CTEXT(T_TP0+total_method)),MAX_STR_LEN); defrstr=ctest->defrstr; tttype=ctest->tttype; safe_strncpy0(tttype_str,tttype_msg[tttype],MAX_STR_LEN); expmode=ctest->expmode; contest_options1(VTEXT(T_CONTEST_OP), 1); /*#ifdef HAVE_SDL maps_reload(); #endif */ } /******************** CONTEST DEFAULTS *******************************/ /* char tname[MAX_STR_LEN],pcall[MAX_STR_LEN],pclub[MAX_STR_LEN]; char pwwlo[MAX_STR_LEN],pexch[MAX_STR_LEN]; char default_rst[MAX_STR_LEN],default_rs[MAX_STR_LEN]; */ char padr1[MAX_STR_LEN],padr2[MAX_STR_LEN]; int global_operator; void refresh_contest_def(void *xxx) { int updloc; /* dbg("refresh_contest_def\n");*/ updloc=strcmp(cfg->pwwlo, pwwlo); STORE_STR_UC(cfg,pcall); STORE_STR_UC(cfg,pclub); STORE_STR_UC(cfg,operator_); STORE_INT(cfg, global_operator); STORE_STR_UC(cfg,pwwlo); STORE_STR(cfg,padr1); STORE_STR(cfg,padr2); STORE_STR_UC(cfg,pexch); STORE_STR_UC(cfg,default_rs); STORE_STR_UC(cfg,default_rst); #ifdef HAVE_SDL if (updloc) maps_reload(); #endif if (first_contest_def){ if (strlen(cfg->pcall)==0 || strlen(cfg->pwwlo)==0){ /* register_bottom_half(contest_def, CBA0);*/ register_bottom_half(destroy_terminal, CBA0); }else{ first_contest_def=0; menu_save_rc(CBA0); } } net_send_operator(); net_send_read_write_bands(); } char *contest_def_msg[] = { CTEXT(T_CALLSIGN2), /* 0 */ CTEXT(T_CLUB), CTEXT(T_OPERATOR), CTEXT(T_GLOBAL_OPERATOR2), CTEXT(T_YOURWWL), CTEXT(T_PADR1), /* 5 */ CTEXT(T_PADR2), CTEXT(T_YOUREXC), CTEXT(T_RS), CTEXT(T_RST), /* 9 */ "", /* OK */ "", /* Cancel */ }; void contest_def_fn(struct dialog_data *dlg) { struct terminal *term = dlg->win->term; int max = 0, min = 0; int w, rw; int y = -1; max_group_width(term, contest_def_msg + 0, dlg->items + 0, 1, &max); min_group_width(term, contest_def_msg + 0, dlg->items + 0, 1, &min); max_group_width(term, contest_def_msg + 1, dlg->items + 1, 1, &max); min_group_width(term, contest_def_msg + 1, dlg->items + 1, 1, &min); max_group_width(term, contest_def_msg + 2, dlg->items + 2, 2, &max); min_group_width(term, contest_def_msg + 2, dlg->items + 2, 2, &min); max_group_width(term, contest_def_msg + 4, dlg->items + 4, 1, &max); min_group_width(term, contest_def_msg + 4, dlg->items + 4, 1, &min); max_group_width(term, contest_def_msg + 5, dlg->items + 5, 1, &max); min_group_width(term, contest_def_msg + 5, dlg->items + 5, 1, &min); max_group_width(term, contest_def_msg + 6, dlg->items + 5, 1, &max); min_group_width(term, contest_def_msg + 6, dlg->items + 6, 1, &min); max_group_width(term, contest_def_msg + 7, dlg->items + 7, 1, &max); min_group_width(term, contest_def_msg + 7, dlg->items + 7, 1, &min); max_group_width(term, contest_def_msg + 8, dlg->items + 8, 1, &max); min_group_width(term, contest_def_msg + 8, dlg->items + 8, 1, &min); max_group_width(term, contest_def_msg + 9, dlg->items + 9, 1, &max); min_group_width(term, contest_def_msg + 9, dlg->items + 9, 1, &min); max_buttons_width(term, dlg->items + 10, 2, &max); min_buttons_width(term, dlg->items + 10, 2, &min); w = dlg->win->term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > dlg->win->term->x - 2 * DIALOG_LB) w = dlg->win->term->x - 2 * DIALOG_LB; if (w < 1) w = 1; rw = 0; y ++; dlg_format_group(NULL, term, contest_def_msg + 0, dlg->items + 0, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, contest_def_msg + 1, dlg->items + 1, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, contest_def_msg + 2, dlg->items + 2, 2, 0, &y, w, &rw); dlg_format_group(NULL, term, contest_def_msg + 4, dlg->items + 4, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, contest_def_msg + 5, dlg->items + 5, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, contest_def_msg + 6, dlg->items + 6, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, contest_def_msg + 7, dlg->items + 7, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, contest_def_msg + 8, dlg->items + 8, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, contest_def_msg + 9, dlg->items + 9, 1, 0, &y, w, &rw); y++; dlg_format_buttons(NULL, term, dlg->items +10, 2, 0, &y, w, &rw, AL_LEFT); w = rw; dlg->xw = w + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB; y++; dlg_format_group(term, term, contest_def_msg + 0, dlg->items + 0, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, contest_def_msg + 1, dlg->items + 1, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, contest_def_msg + 2, dlg->items + 2, 2, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, contest_def_msg + 4, dlg->items + 4, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, contest_def_msg + 5, dlg->items + 5, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, contest_def_msg + 6, dlg->items + 6, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, contest_def_msg + 7, dlg->items + 7, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, contest_def_msg + 8, dlg->items + 8, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, contest_def_msg + 9, dlg->items + 9, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); y++; dlg_format_buttons(term, term, dlg->items +10, 2, dlg->x + DIALOG_LB, &y, w, NULL, AL_LEFT); } void contest_def(cba_t cba) { struct dialog *d; int i; safe_strncpy0(pcall,cfg->pcall,MAX_STR_LEN); uc(pcall); safe_strncpy0(pclub,cfg->pclub,MAX_STR_LEN); uc(pclub); safe_strncpy0(operator_,cfg->operator_,EQSO_LEN); uc(operator_); global_operator=cfg->global_operator; safe_strncpy0(pwwlo,cfg->pwwlo,MAX_STR_LEN); uc(pwwlo); safe_strncpy0(padr1,cfg->padr1,MAX_STR_LEN); safe_strncpy0(padr2,cfg->padr2,MAX_STR_LEN); safe_strncpy0(pexch,cfg->pexch,MAX_STR_LEN); safe_strncpy0(default_rs, cfg->default_rs,MAX_STR_LEN); uc(default_rs); safe_strncpy0(default_rst,cfg->default_rst,MAX_STR_LEN); uc(default_rst); if (!(d = mem_alloc(sizeof(struct dialog) + 20 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 20 * sizeof(struct dialog_item)); d->title = VTEXT(T_CTEST_DEF); d->fn = contest_def_fn; d->refresh = (void (*)(void *))refresh_contest_def; d->items[i=0].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = pcall; d->items[i].maxl = 15; d->items[i=1].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = pclub; d->items[i].maxl = 15; d->items[i=2].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = operator; d->items[i].maxl = 15; d->items[i=3].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&global_operator; d->items[i=4].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = pwwlo; d->items[i].maxl = 15; d->items[i=5].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = padr1; d->items[i].maxl = 25; d->items[i=6].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = padr2; d->items[i].maxl = 25; d->items[i=7].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = pexch; d->items[i].maxl = 15; d->items[i=8].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = default_rs; d->items[i].maxl = 5; d->items[i=9].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = default_rst; d->items[i].maxl = 5; d->items[++i].type = D_BUTTON; /* 10 */ d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; if (first_contest_def){ d->items[i].fn = ok_dialog; }else{ d->items[i].fn = cancel_dialog; } d->items[i].text = VTEXT(T_CANCEL); d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } /******************** EDI PROPERTIES *******************************/ /* char padr1[MAX_STR_LEN],padr2[MAX_STR_LEN]; */ void refresh_edi_prop(void *xxx) { /* dbg("refresh_edi_prop\n");*/ STORE_STR(cfg,padr1); STORE_STR(cfg,padr2); } void edi_prop_fn(struct dialog_data *dlgd) { int ph; for (ph = 0; ph < 3; ph++){ dlg_pf_init(ph, dlgd); dlgd->yy++; dlg_pf_group(ph, dlgd, 1); dlgd->yy++; dlg_pf_group(ph, dlgd, 1); dlgd->yy++; dlg_pf_buttons(ph, dlgd, 2); } } void edi_prop(cba_t cba) { struct dialog *d; int i; safe_strncpy0(padr1,cfg->padr1,MAX_STR_LEN); safe_strncpy0(padr2,cfg->padr2,MAX_STR_LEN); if (!(d = mem_alloc(sizeof(struct dialog) + 20 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 20 * sizeof(struct dialog_item)); d->title = VTEXT(T_CTEST_DEF); d->fn = dlg_pf_fn; d->refresh = (void (*)(void *))refresh_edi_prop; d->y0 = 1; d->items[i=0].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = padr1; d->items[i].maxl = 25; d->items[i].msg = CTEXT(T_PADR1); d->items[i].wrap = 1; d->items[i=1].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = padr2; d->items[i].maxl = 25; d->items[i].msg = CTEXT(T_PADR2); d->items[i].wrap = 2; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } int dlg_edi_prop(struct dialog_data *dlg, struct dialog_item_data *di){ edi_prop(CBA0); return 0; } tucnak2-2.48/src/scope.c0000644000175000017500000000752011567373656012032 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2009 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #ifdef HAVE_SDL /* only EV_KBD */ int sw_scope_kbd_func(struct subwin *sw, struct event *ev, int fw){ SDL_Rect area; if (!sdl) return 0; switch (ev->x){ case ' ': sw->scope_mode++; if (sw->scope_mode == 4) sw->scope_mode = 0; area.x = 0; area.y = 0; area.w = sw->screen->w; area.h = sw->screen->h; SDL_FillRect(sw->screen, &area, makecol(0, 0, 0)); break; } return 0; } int sw_scope_mouse_func(struct subwin *sw, struct event *ev, int fw){ if (!sdl) return 0; return 0; } void sw_scope_redraw(struct subwin *sw, int flags){ SDL_Rect area; int i, y, y0, a, c, x; int oy0=0, oy1=0; if (!sdl) return; // dbg("sw_scope_redraw(gdirty=%d)\n", sw->gdirty); fill_area(sw->x, sw->y, sw->w, sw->h, 0); if (!sw->gdirty) return; sw->gdirty=0; if (sw->scope_mode == 3){ sw_fft_redraw(sw, flags); return; } area.x = 0; area.y = 0; area.w = sw->screen->w; area.h = sw->screen->h; SDL_FillRect(sw->screen, &area, makecol(0, 0, 0)); #ifdef HAVE_SNDFILE if (ssbd->channels == 1){ c = ssbd->recording ? sdl->red : sdl->green; y0 = sw->screen->h / 2; a = sw->screen->h / 2 - 1; ssbd_assert(); for (i=0; iscreen->w) break; y = ((int)ssbd->buffer2[i] * (int)a) / 32768; switch(sw->scope_mode){ case 0: line(sw->screen, i, y0+y, i, y0-y, c); break; case 1: fast_putpixel(sw->screen, i, y0-y, c); break; case 2: if (i==0){ oy0 = y0-y; break; } line(sw->screen, i-1, oy0, i, y0-y, c); oy0 = y0-y; break; } } ssbd_assert(); } if (ssbd->channels == 2){ c = ssbd->recording ? sdl->red : sdl->green; y0 = sw->screen->h / 4; a = sw->screen->h / 4 - 1; ssbd_assert(); for (i=0, x=0; iscreen->w) break; y = ((int)ssbd->buffer2[i] * (int)a) / 32768; switch(sw->scope_mode){ case 0: line(sw->screen, x, y0+y, x, y0-y, c); break; case 1: fast_putpixel(sw->screen, x, y0-y, c); break; case 2: if (x==0){ oy0 = y0-y; break; } line(sw->screen, x-1, oy0, x, y0-y, c); oy0 = y0-y; break; } } ssbd_assert(); y0 = (sw->screen->h * 3)/ 4; for (i=1, x=0; iscreen->w) break; y = ((int)ssbd->buffer2[i] * (int)a) / 32768; switch(sw->scope_mode){ case 0: line(sw->screen, x, y0+y, x, y0-y, c); break; case 1: fast_putpixel(sw->screen, x, y0-y, c); break; case 2: if (x==0){ oy1 = y0-y; break; } line(sw->screen, x-1, oy1, x, y0-y, c); oy1 = y0-y; break; } } ssbd_assert(); } #endif } void sw_scope_check_bounds(struct subwin *sw){ if (!sdl) return; if (!aband) return; } void sw_scope_raise(struct subwin *sw){ sw->gdirty=1; } #else int sw_scope_kbd_func(struct subwin *sw, struct event *ev, int fw){ return 0; } int sw_scope_mouse_func(struct subwin *sw, struct event *ev, int fw){ return 0; } void sw_scope_redraw(struct subwin *sw, int flags){ } void sw_scope_check_bounds(struct subwin *sw){ } void sw_scope_raise(struct subwin *sw){ } #endif tucnak2-2.48/src/regex_internal.c0000644000175000017500000013420611567373656013731 00000000000000/* Extended regular expression matching and search library. Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ static void re_string_construct_common (const char *str, int len, re_string_t *pstr, RE_TRANSLATE_TYPE trans, int icase, const re_dfa_t *dfa) internal_function; static re_dfastate_t *create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes, unsigned int hash) internal_function; static re_dfastate_t *create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, unsigned int context, unsigned int hash) internal_function; /* Functions for string operation. */ /* This function allocate the buffers. It is necessary to call re_string_reconstruct before using the object. */ static reg_errcode_t internal_function re_string_allocate (re_string_t *pstr, const char *str, int len, int init_len, RE_TRANSLATE_TYPE trans, int icase, const re_dfa_t *dfa) { reg_errcode_t ret; int init_buf_len; /* Ensure at least one character fits into the buffers. */ if (init_len < dfa->mb_cur_max) init_len = dfa->mb_cur_max; init_buf_len = (len + 1 < init_len) ? len + 1: init_len; re_string_construct_common (str, len, pstr, trans, icase, dfa); ret = re_string_realloc_buffers (pstr, init_buf_len); if (BE (ret != REG_NOERROR, 0)) return ret; pstr->word_char = dfa->word_char; pstr->word_ops_used = dfa->word_ops_used; pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str; pstr->valid_len = (pstr->mbs_allocated || dfa->mb_cur_max > 1) ? 0 : len; pstr->valid_raw_len = pstr->valid_len; return REG_NOERROR; } /* This function allocate the buffers, and initialize them. */ static reg_errcode_t internal_function re_string_construct (re_string_t *pstr, const char *str, int len, RE_TRANSLATE_TYPE trans, int icase, const re_dfa_t *dfa) { reg_errcode_t ret; memset (pstr, '\0', sizeof (re_string_t)); re_string_construct_common (str, len, pstr, trans, icase, dfa); if (len > 0) { ret = re_string_realloc_buffers (pstr, len + 1); if (BE (ret != REG_NOERROR, 0)) return ret; } pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str; if (icase) { #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) { while (1) { ret = build_wcs_upper_buffer (pstr); if (BE (ret != REG_NOERROR, 0)) return ret; if (pstr->valid_raw_len >= len) break; if (pstr->bufs_len > pstr->valid_len + dfa->mb_cur_max) break; ret = re_string_realloc_buffers (pstr, pstr->bufs_len * 2); if (BE (ret != REG_NOERROR, 0)) return ret; } } else #endif /* RE_ENABLE_I18N */ build_upper_buffer (pstr); } else { #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) build_wcs_buffer (pstr); else #endif /* RE_ENABLE_I18N */ { if (trans != NULL) re_string_translate_buffer (pstr); else { pstr->valid_len = pstr->bufs_len; pstr->valid_raw_len = pstr->bufs_len; } } } return REG_NOERROR; } /* Helper functions for re_string_allocate, and re_string_construct. */ static reg_errcode_t internal_function re_string_realloc_buffers (re_string_t *pstr, int new_buf_len) { #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) { wint_t *new_wcs = re_realloc (pstr->wcs, wint_t, new_buf_len); if (BE (new_wcs == NULL, 0)) return REG_ESPACE; pstr->wcs = new_wcs; if (pstr->offsets != NULL) { int *new_offsets = re_realloc (pstr->offsets, int, new_buf_len); if (BE (new_offsets == NULL, 0)) return REG_ESPACE; pstr->offsets = new_offsets; } } #endif /* RE_ENABLE_I18N */ if (pstr->mbs_allocated) { unsigned char *new_mbs = re_realloc (pstr->mbs, unsigned char, new_buf_len); if (BE (new_mbs == NULL, 0)) return REG_ESPACE; pstr->mbs = new_mbs; } pstr->bufs_len = new_buf_len; return REG_NOERROR; } static void internal_function re_string_construct_common (const char *str, int len, re_string_t *pstr, RE_TRANSLATE_TYPE trans, int icase, const re_dfa_t *dfa) { pstr->raw_mbs = (const unsigned char *) str; pstr->len = len; pstr->raw_len = len; pstr->trans = trans; pstr->icase = icase ? 1 : 0; pstr->mbs_allocated = (trans != NULL || icase); pstr->mb_cur_max = dfa->mb_cur_max; pstr->is_utf8 = dfa->is_utf8; pstr->map_notascii = dfa->map_notascii; pstr->stop = pstr->len; pstr->raw_stop = pstr->stop; } #ifdef RE_ENABLE_I18N /* Build wide character buffer PSTR->WCS. If the byte sequence of the string are: (0), (1), (0), (1), Then wide character buffer will be: , WEOF , , WEOF , We use WEOF for padding, they indicate that the position isn't a first byte of a multibyte character. Note that this function assumes PSTR->VALID_LEN elements are already built and starts from PSTR->VALID_LEN. */ static void internal_function build_wcs_buffer (re_string_t *pstr) { #ifdef _LIBC unsigned char buf[MB_LEN_MAX]; assert (MB_LEN_MAX >= pstr->mb_cur_max); #else unsigned char buf[64]; #endif mbstate_t prev_st; int byte_idx, end_idx, remain_len; size_t mbclen; /* Build the buffers from pstr->valid_len to either pstr->len or pstr->bufs_len. */ end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; for (byte_idx = pstr->valid_len; byte_idx < end_idx;) { wchar_t wc; const char *p; remain_len = end_idx - byte_idx; prev_st = pstr->cur_state; /* Apply the translation if we need. */ if (BE (pstr->trans != NULL, 0)) { int i, ch; for (i = 0; i < pstr->mb_cur_max && i < remain_len; ++i) { ch = pstr->raw_mbs [pstr->raw_mbs_idx + byte_idx + i]; buf[i] = pstr->mbs[byte_idx + i] = pstr->trans[ch]; } p = (const char *) buf; } else p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx; mbclen = mbrtowc (&wc, p, remain_len, &pstr->cur_state); if (BE (mbclen == (size_t) -2, 0)) { /* The buffer doesn't have enough space, finish to build. */ pstr->cur_state = prev_st; break; } else if (BE (mbclen == (size_t) -1 || mbclen == 0, 0)) { /* We treat these cases as a singlebyte character. */ mbclen = 1; wc = (wchar_t) pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]; if (BE (pstr->trans != NULL, 0)) wc = pstr->trans[wc]; pstr->cur_state = prev_st; } /* Write wide character and padding. */ pstr->wcs[byte_idx++] = wc; /* Write paddings. */ for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;) pstr->wcs[byte_idx++] = WEOF; } pstr->valid_len = byte_idx; pstr->valid_raw_len = byte_idx; } /* Build wide character buffer PSTR->WCS like build_wcs_buffer, but for REG_ICASE. */ static reg_errcode_t internal_function build_wcs_upper_buffer (re_string_t *pstr) { mbstate_t prev_st; int src_idx, byte_idx, end_idx, remain_len; size_t mbclen; #ifdef _LIBC char buf[MB_LEN_MAX]; assert (MB_LEN_MAX >= pstr->mb_cur_max); #else char buf[64]; #endif byte_idx = pstr->valid_len; end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; /* The following optimization assumes that ASCII characters can be mapped to wide characters with a simple cast. */ if (! pstr->map_notascii && pstr->trans == NULL && !pstr->offsets_needed) { while (byte_idx < end_idx) { wchar_t wc; if (isascii (pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]) && mbsinit (&pstr->cur_state)) { /* In case of a singlebyte character. */ pstr->mbs[byte_idx] = toupper (pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]); /* The next step uses the assumption that wchar_t is encoded ASCII-safe: all ASCII values can be converted like this. */ pstr->wcs[byte_idx] = (wchar_t) pstr->mbs[byte_idx]; ++byte_idx; continue; } remain_len = end_idx - byte_idx; prev_st = pstr->cur_state; mbclen = mbrtowc (&wc, ((const char *) pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx), remain_len, &pstr->cur_state); if (BE (mbclen + 2 > 2, 1)) { wchar_t wcu = wc; if (iswlower (wc)) { size_t mbcdlen; wcu = towupper (wc); mbcdlen = wcrtomb (buf, wcu, &prev_st); if (BE (mbclen == mbcdlen, 1)) memcpy (pstr->mbs + byte_idx, buf, mbclen); else { src_idx = byte_idx; goto offsets_needed; } } else memcpy (pstr->mbs + byte_idx, pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx, mbclen); pstr->wcs[byte_idx++] = wcu; /* Write paddings. */ for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;) pstr->wcs[byte_idx++] = WEOF; } else if (mbclen == (size_t) -1 || mbclen == 0) { /* It is an invalid character or '\0'. Just use the byte. */ int ch = pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]; pstr->mbs[byte_idx] = ch; /* And also cast it to wide char. */ pstr->wcs[byte_idx++] = (wchar_t) ch; if (BE (mbclen == (size_t) -1, 0)) pstr->cur_state = prev_st; } else { /* The buffer doesn't have enough space, finish to build. */ pstr->cur_state = prev_st; break; } } pstr->valid_len = byte_idx; pstr->valid_raw_len = byte_idx; return REG_NOERROR; } else for (src_idx = pstr->valid_raw_len; byte_idx < end_idx;) { wchar_t wc; const char *p; offsets_needed: remain_len = end_idx - byte_idx; prev_st = pstr->cur_state; if (BE (pstr->trans != NULL, 0)) { int i, ch; for (i = 0; i < pstr->mb_cur_max && i < remain_len; ++i) { ch = pstr->raw_mbs [pstr->raw_mbs_idx + src_idx + i]; buf[i] = pstr->trans[ch]; } p = (const char *) buf; } else p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + src_idx; mbclen = mbrtowc (&wc, p, remain_len, &pstr->cur_state); if (BE (mbclen + 2 > 2, 1)) { wchar_t wcu = wc; if (iswlower (wc)) { size_t mbcdlen; wcu = towupper (wc); mbcdlen = wcrtomb ((char *) buf, wcu, &prev_st); if (BE (mbclen == mbcdlen, 1)) memcpy (pstr->mbs + byte_idx, buf, mbclen); else if (mbcdlen != (size_t) -1) { size_t i; if (byte_idx + mbcdlen > pstr->bufs_len) { pstr->cur_state = prev_st; break; } if (pstr->offsets == NULL) { pstr->offsets = re_malloc (int, pstr->bufs_len); if (pstr->offsets == NULL) return REG_ESPACE; } if (!pstr->offsets_needed) { for (i = 0; i < (size_t) byte_idx; ++i) pstr->offsets[i] = i; pstr->offsets_needed = 1; } memcpy (pstr->mbs + byte_idx, buf, mbcdlen); pstr->wcs[byte_idx] = wcu; pstr->offsets[byte_idx] = src_idx; for (i = 1; i < mbcdlen; ++i) { pstr->offsets[byte_idx + i] = src_idx + (i < mbclen ? i : mbclen - 1); pstr->wcs[byte_idx + i] = WEOF; } pstr->len += mbcdlen - mbclen; if (pstr->raw_stop > src_idx) pstr->stop += mbcdlen - mbclen; end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; byte_idx += mbcdlen; src_idx += mbclen; continue; } else memcpy (pstr->mbs + byte_idx, p, mbclen); } else memcpy (pstr->mbs + byte_idx, p, mbclen); if (BE (pstr->offsets_needed != 0, 0)) { size_t i; for (i = 0; i < mbclen; ++i) pstr->offsets[byte_idx + i] = src_idx + i; } src_idx += mbclen; pstr->wcs[byte_idx++] = wcu; /* Write paddings. */ for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;) pstr->wcs[byte_idx++] = WEOF; } else if (mbclen == (size_t) -1 || mbclen == 0) { /* It is an invalid character or '\0'. Just use the byte. */ int ch = pstr->raw_mbs[pstr->raw_mbs_idx + src_idx]; if (BE (pstr->trans != NULL, 0)) ch = pstr->trans [ch]; pstr->mbs[byte_idx] = ch; if (BE (pstr->offsets_needed != 0, 0)) pstr->offsets[byte_idx] = src_idx; ++src_idx; /* And also cast it to wide char. */ pstr->wcs[byte_idx++] = (wchar_t) ch; if (BE (mbclen == (size_t) -1, 0)) pstr->cur_state = prev_st; } else { /* The buffer doesn't have enough space, finish to build. */ pstr->cur_state = prev_st; break; } } pstr->valid_len = byte_idx; pstr->valid_raw_len = src_idx; return REG_NOERROR; } /* Skip characters until the index becomes greater than NEW_RAW_IDX. Return the index. */ static int internal_function re_string_skip_chars (re_string_t *pstr, int new_raw_idx, wint_t *last_wc) { mbstate_t prev_st; int rawbuf_idx; size_t mbclen; wchar_t wc = WEOF; /* Skip the characters which are not necessary to check. */ for (rawbuf_idx = pstr->raw_mbs_idx + pstr->valid_raw_len; rawbuf_idx < new_raw_idx;) { int remain_len; remain_len = pstr->len - rawbuf_idx; prev_st = pstr->cur_state; mbclen = mbrtowc (&wc, (const char *) pstr->raw_mbs + rawbuf_idx, remain_len, &pstr->cur_state); if (BE (mbclen == (size_t) -2 || mbclen == (size_t) -1 || mbclen == 0, 0)) { /* We treat these cases as a single byte character. */ if (mbclen == 0 || remain_len == 0) wc = L'\0'; else wc = *(unsigned char *) (pstr->raw_mbs + rawbuf_idx); mbclen = 1; pstr->cur_state = prev_st; } /* Then proceed the next character. */ rawbuf_idx += mbclen; } *last_wc = (wint_t) wc; return rawbuf_idx; } #endif /* RE_ENABLE_I18N */ /* Build the buffer PSTR->MBS, and apply the translation if we need. This function is used in case of REG_ICASE. */ static void internal_function build_upper_buffer (re_string_t *pstr) { int char_idx, end_idx; end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; for (char_idx = pstr->valid_len; char_idx < end_idx; ++char_idx) { int ch = pstr->raw_mbs[pstr->raw_mbs_idx + char_idx]; if (BE (pstr->trans != NULL, 0)) ch = pstr->trans[ch]; if (islower (ch)) pstr->mbs[char_idx] = toupper (ch); else pstr->mbs[char_idx] = ch; } pstr->valid_len = char_idx; pstr->valid_raw_len = char_idx; } /* Apply TRANS to the buffer in PSTR. */ static void internal_function re_string_translate_buffer (re_string_t *pstr) { int buf_idx, end_idx; end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; for (buf_idx = pstr->valid_len; buf_idx < end_idx; ++buf_idx) { int ch = pstr->raw_mbs[pstr->raw_mbs_idx + buf_idx]; pstr->mbs[buf_idx] = pstr->trans[ch]; } pstr->valid_len = buf_idx; pstr->valid_raw_len = buf_idx; } /* This function re-construct the buffers. Concretely, convert to wide character in case of pstr->mb_cur_max > 1, convert to upper case in case of REG_ICASE, apply translation. */ static reg_errcode_t internal_function re_string_reconstruct (re_string_t *pstr, int idx, int eflags) { int offset = idx - pstr->raw_mbs_idx; if (BE (offset < 0, 0)) { /* Reset buffer. */ #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) memset (&pstr->cur_state, '\0', sizeof (mbstate_t)); #endif /* RE_ENABLE_I18N */ pstr->len = pstr->raw_len; pstr->stop = pstr->raw_stop; pstr->valid_len = 0; pstr->raw_mbs_idx = 0; pstr->valid_raw_len = 0; pstr->offsets_needed = 0; pstr->tip_context = ((eflags & REG_NOTBOL) ? CONTEXT_BEGBUF : CONTEXT_NEWLINE | CONTEXT_BEGBUF); if (!pstr->mbs_allocated) pstr->mbs = (unsigned char *) pstr->raw_mbs; offset = idx; } if (BE (offset != 0, 1)) { /* Should the already checked characters be kept? */ if (BE (offset < pstr->valid_raw_len, 1)) { /* Yes, move them to the front of the buffer. */ #ifdef RE_ENABLE_I18N if (BE (pstr->offsets_needed, 0)) { int low = 0, high = pstr->valid_len, mid; do { mid = (high + low) / 2; if (pstr->offsets[mid] > offset) high = mid; else if (pstr->offsets[mid] < offset) low = mid + 1; else break; } while (low < high); if (pstr->offsets[mid] < offset) ++mid; pstr->tip_context = re_string_context_at (pstr, mid - 1, eflags); /* This can be quite complicated, so handle specially only the common and easy case where the character with different length representation of lower and upper case is present at or after offset. */ if (pstr->valid_len > offset && mid == offset && pstr->offsets[mid] == offset) { memmove (pstr->wcs, pstr->wcs + offset, (pstr->valid_len - offset) * sizeof (wint_t)); memmove (pstr->mbs, pstr->mbs + offset, pstr->valid_len - offset); pstr->valid_len -= offset; pstr->valid_raw_len -= offset; for (low = 0; low < pstr->valid_len; low++) pstr->offsets[low] = pstr->offsets[low + offset] - offset; } else { /* Otherwise, just find out how long the partial multibyte character at offset is and fill it with WEOF/255. */ pstr->len = pstr->raw_len - idx + offset; pstr->stop = pstr->raw_stop - idx + offset; pstr->offsets_needed = 0; while (mid > 0 && pstr->offsets[mid - 1] == offset) --mid; while (mid < pstr->valid_len) if (pstr->wcs[mid] != WEOF) break; else ++mid; if (mid == pstr->valid_len) pstr->valid_len = 0; else { pstr->valid_len = pstr->offsets[mid] - offset; if (pstr->valid_len) { for (low = 0; low < pstr->valid_len; ++low) pstr->wcs[low] = WEOF; memset (pstr->mbs, 255, pstr->valid_len); } } pstr->valid_raw_len = pstr->valid_len; } } else #endif { pstr->tip_context = re_string_context_at (pstr, offset - 1, eflags); #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) memmove (pstr->wcs, pstr->wcs + offset, (pstr->valid_len - offset) * sizeof (wint_t)); #endif /* RE_ENABLE_I18N */ if (BE (pstr->mbs_allocated, 0)) memmove (pstr->mbs, pstr->mbs + offset, pstr->valid_len - offset); pstr->valid_len -= offset; pstr->valid_raw_len -= offset; #if DEBUG assert (pstr->valid_len > 0); #endif } } else { /* No, skip all characters until IDX. */ int prev_valid_len = pstr->valid_len; #ifdef RE_ENABLE_I18N if (BE (pstr->offsets_needed, 0)) { pstr->len = pstr->raw_len - idx + offset; pstr->stop = pstr->raw_stop - idx + offset; pstr->offsets_needed = 0; } #endif pstr->valid_len = 0; #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) { int wcs_idx; wint_t wc = WEOF; if (pstr->is_utf8) { const unsigned char *raw, *p, *q, *end; /* Special case UTF-8. Multi-byte chars start with any byte other than 0x80 - 0xbf. */ raw = pstr->raw_mbs + pstr->raw_mbs_idx; end = raw + (offset - pstr->mb_cur_max); if (end < pstr->raw_mbs) end = pstr->raw_mbs; p = raw + offset - 1; #ifdef _LIBC /* We know the wchar_t encoding is UCS4, so for the simple case, ASCII characters, skip the conversion step. */ if (isascii (*p) && BE (pstr->trans == NULL, 1)) { memset (&pstr->cur_state, '\0', sizeof (mbstate_t)); /* pstr->valid_len = 0; */ wc = (wchar_t) *p; } else #endif for (; p >= end; --p) if ((*p & 0xc0) != 0x80) { mbstate_t cur_state; wchar_t wc2; int mlen = raw + pstr->len - p; unsigned char buf[6]; size_t mbclen; q = p; if (BE (pstr->trans != NULL, 0)) { int i = mlen < 6 ? mlen : 6; while (--i >= 0) buf[i] = pstr->trans[p[i]]; q = buf; } /* XXX Don't use mbrtowc, we know which conversion to use (UTF-8 -> UCS4). */ memset (&cur_state, 0, sizeof (cur_state)); mbclen = mbrtowc (&wc2, (const char *) p, mlen, &cur_state); if (raw + offset - p <= mbclen && mbclen < (size_t) -2) { memset (&pstr->cur_state, '\0', sizeof (mbstate_t)); pstr->valid_len = mbclen - (raw + offset - p); wc = wc2; } break; } } if (wc == WEOF) pstr->valid_len = re_string_skip_chars (pstr, idx, &wc) - idx; if (wc == WEOF) pstr->tip_context = re_string_context_at (pstr, prev_valid_len - 1, eflags); else pstr->tip_context = ((BE (pstr->word_ops_used != 0, 0) && IS_WIDE_WORD_CHAR (wc)) ? CONTEXT_WORD : ((IS_WIDE_NEWLINE (wc) && pstr->newline_anchor) ? CONTEXT_NEWLINE : 0)); if (BE (pstr->valid_len, 0)) { for (wcs_idx = 0; wcs_idx < pstr->valid_len; ++wcs_idx) pstr->wcs[wcs_idx] = WEOF; if (pstr->mbs_allocated) memset (pstr->mbs, 255, pstr->valid_len); } pstr->valid_raw_len = pstr->valid_len; } else #endif /* RE_ENABLE_I18N */ { int c = pstr->raw_mbs[pstr->raw_mbs_idx + offset - 1]; pstr->valid_raw_len = 0; if (pstr->trans) c = pstr->trans[c]; pstr->tip_context = (bitset_contain (pstr->word_char, c) ? CONTEXT_WORD : ((IS_NEWLINE (c) && pstr->newline_anchor) ? CONTEXT_NEWLINE : 0)); } } if (!BE (pstr->mbs_allocated, 0)) pstr->mbs += offset; } pstr->raw_mbs_idx = idx; pstr->len -= offset; pstr->stop -= offset; /* Then build the buffers. */ #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) { if (pstr->icase) { reg_errcode_t ret = build_wcs_upper_buffer (pstr); if (BE (ret != REG_NOERROR, 0)) return ret; } else build_wcs_buffer (pstr); } else #endif /* RE_ENABLE_I18N */ if (BE (pstr->mbs_allocated, 0)) { if (pstr->icase) build_upper_buffer (pstr); else if (pstr->trans != NULL) re_string_translate_buffer (pstr); } else pstr->valid_len = pstr->len; pstr->cur_idx = 0; return REG_NOERROR; } static unsigned char internal_function __attribute ((pure)) re_string_peek_byte_case (const re_string_t *pstr, int idx) { int ch, off; /* Handle the common (easiest) cases first. */ if (BE (!pstr->mbs_allocated, 1)) return re_string_peek_byte (pstr, idx); #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1 && ! re_string_is_single_byte_char (pstr, pstr->cur_idx + idx)) return re_string_peek_byte (pstr, idx); #endif off = pstr->cur_idx + idx; #ifdef RE_ENABLE_I18N if (pstr->offsets_needed) off = pstr->offsets[off]; #endif ch = pstr->raw_mbs[pstr->raw_mbs_idx + off]; #ifdef RE_ENABLE_I18N /* Ensure that e.g. for tr_TR.UTF-8 BACKSLASH DOTLESS SMALL LETTER I this function returns CAPITAL LETTER I instead of first byte of DOTLESS SMALL LETTER I. The latter would confuse the parser, since peek_byte_case doesn't advance cur_idx in any way. */ if (pstr->offsets_needed && !isascii (ch)) return re_string_peek_byte (pstr, idx); #endif return ch; } static unsigned char internal_function __attribute ((pure)) re_string_fetch_byte_case (re_string_t *pstr) { if (BE (!pstr->mbs_allocated, 1)) return re_string_fetch_byte (pstr); #ifdef RE_ENABLE_I18N if (pstr->offsets_needed) { int off, ch; /* For tr_TR.UTF-8 [[:islower:]] there is [[: CAPITAL LETTER I WITH DOT lower:]] in mbs. Skip in that case the whole multi-byte character and return the original letter. On the other side, with [[: DOTLESS SMALL LETTER I return [[:I, as doing anything else would complicate things too much. */ if (!re_string_first_byte (pstr, pstr->cur_idx)) return re_string_fetch_byte (pstr); off = pstr->offsets[pstr->cur_idx]; ch = pstr->raw_mbs[pstr->raw_mbs_idx + off]; if (! isascii (ch)) return re_string_fetch_byte (pstr); re_string_skip_bytes (pstr, re_string_char_size_at (pstr, pstr->cur_idx)); return ch; } #endif return pstr->raw_mbs[pstr->raw_mbs_idx + pstr->cur_idx++]; } static void internal_function re_string_destruct (re_string_t *pstr) { #ifdef RE_ENABLE_I18N re_free (pstr->wcs); re_free (pstr->offsets); #endif /* RE_ENABLE_I18N */ if (pstr->mbs_allocated) re_free (pstr->mbs); } /* Return the context at IDX in INPUT. */ static unsigned int internal_function re_string_context_at (const re_string_t *input, int idx, int eflags) { int c; if (BE (idx < 0, 0)) /* In this case, we use the value stored in input->tip_context, since we can't know the character in input->mbs[-1] here. */ return input->tip_context; if (BE (idx == input->len, 0)) return ((eflags & REG_NOTEOL) ? CONTEXT_ENDBUF : CONTEXT_NEWLINE | CONTEXT_ENDBUF); #ifdef RE_ENABLE_I18N if (input->mb_cur_max > 1) { wint_t wc; int wc_idx = idx; while(input->wcs[wc_idx] == WEOF) { #ifdef DEBUG /* It must not happen. */ assert (wc_idx >= 0); #endif --wc_idx; if (wc_idx < 0) return input->tip_context; } wc = input->wcs[wc_idx]; if (BE (input->word_ops_used != 0, 0) && IS_WIDE_WORD_CHAR (wc)) return CONTEXT_WORD; return (IS_WIDE_NEWLINE (wc) && input->newline_anchor ? CONTEXT_NEWLINE : 0); } else #endif { c = re_string_byte_at (input, idx); if (bitset_contain (input->word_char, c)) return CONTEXT_WORD; return IS_NEWLINE (c) && input->newline_anchor ? CONTEXT_NEWLINE : 0; } } /* Functions for set operation. */ static reg_errcode_t internal_function re_node_set_alloc (re_node_set *set, int size) { set->alloc = size; set->nelem = 0; set->elems = re_malloc (int, size); if (BE (set->elems == NULL, 0)) return REG_ESPACE; return REG_NOERROR; } static reg_errcode_t internal_function re_node_set_init_1 (re_node_set *set, int elem) { set->alloc = 1; set->nelem = 1; set->elems = re_malloc (int, 1); if (BE (set->elems == NULL, 0)) { set->alloc = set->nelem = 0; return REG_ESPACE; } set->elems[0] = elem; return REG_NOERROR; } static reg_errcode_t internal_function re_node_set_init_2 (re_node_set *set, int elem1, int elem2) { set->alloc = 2; set->elems = re_malloc (int, 2); if (BE (set->elems == NULL, 0)) return REG_ESPACE; if (elem1 == elem2) { set->nelem = 1; set->elems[0] = elem1; } else { set->nelem = 2; if (elem1 < elem2) { set->elems[0] = elem1; set->elems[1] = elem2; } else { set->elems[0] = elem2; set->elems[1] = elem1; } } return REG_NOERROR; } static reg_errcode_t internal_function re_node_set_init_copy (re_node_set *dest, const re_node_set *src) { dest->nelem = src->nelem; if (src->nelem > 0) { dest->alloc = dest->nelem; dest->elems = re_malloc (int, dest->alloc); if (BE (dest->elems == NULL, 0)) { dest->alloc = dest->nelem = 0; return REG_ESPACE; } memcpy (dest->elems, src->elems, src->nelem * sizeof (int)); } else re_node_set_init_empty (dest); return REG_NOERROR; } /* Calculate the intersection of the sets SRC1 and SRC2. And merge it to DEST. Return value indicate the error code or REG_NOERROR if succeeded. Note: We assume dest->elems is NULL, when dest->alloc is 0. */ static reg_errcode_t internal_function re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1, const re_node_set *src2) { int i1, i2, is, id, delta, sbase; if (src1->nelem == 0 || src2->nelem == 0) return REG_NOERROR; /* We need dest->nelem + 2 * elems_in_intersection; this is a conservative estimate. */ if (src1->nelem + src2->nelem + dest->nelem > dest->alloc) { int new_alloc = src1->nelem + src2->nelem + dest->alloc; int *new_elems = re_realloc (dest->elems, int, new_alloc); if (BE (new_elems == NULL, 0)) return REG_ESPACE; dest->elems = new_elems; dest->alloc = new_alloc; } /* Find the items in the intersection of SRC1 and SRC2, and copy into the top of DEST those that are not already in DEST itself. */ sbase = dest->nelem + src1->nelem + src2->nelem; i1 = src1->nelem - 1; i2 = src2->nelem - 1; id = dest->nelem - 1; for (;;) { if (src1->elems[i1] == src2->elems[i2]) { /* Try to find the item in DEST. Maybe we could binary search? */ while (id >= 0 && dest->elems[id] > src1->elems[i1]) --id; if (id < 0 || dest->elems[id] != src1->elems[i1]) dest->elems[--sbase] = src1->elems[i1]; if (--i1 < 0 || --i2 < 0) break; } /* Lower the highest of the two items. */ else if (src1->elems[i1] < src2->elems[i2]) { if (--i2 < 0) break; } else { if (--i1 < 0) break; } } id = dest->nelem - 1; is = dest->nelem + src1->nelem + src2->nelem - 1; delta = is - sbase + 1; /* Now copy. When DELTA becomes zero, the remaining DEST elements are already in place; this is more or less the same loop that is in re_node_set_merge. */ dest->nelem += delta; if (delta > 0 && id >= 0) for (;;) { if (dest->elems[is] > dest->elems[id]) { /* Copy from the top. */ dest->elems[id + delta--] = dest->elems[is--]; if (delta == 0) break; } else { /* Slide from the bottom. */ dest->elems[id + delta] = dest->elems[id]; if (--id < 0) break; } } /* Copy remaining SRC elements. */ memcpy (dest->elems, dest->elems + sbase, delta * sizeof (int)); return REG_NOERROR; } /* Calculate the union set of the sets SRC1 and SRC2. And store it to DEST. Return value indicate the error code or REG_NOERROR if succeeded. */ static reg_errcode_t internal_function re_node_set_init_union (re_node_set *dest, const re_node_set *src1, const re_node_set *src2) { int i1, i2, id; if (src1 != NULL && src1->nelem > 0 && src2 != NULL && src2->nelem > 0) { dest->alloc = src1->nelem + src2->nelem; dest->elems = re_malloc (int, dest->alloc); if (BE (dest->elems == NULL, 0)) return REG_ESPACE; } else { if (src1 != NULL && src1->nelem > 0) return re_node_set_init_copy (dest, src1); else if (src2 != NULL && src2->nelem > 0) return re_node_set_init_copy (dest, src2); else re_node_set_init_empty (dest); return REG_NOERROR; } for (i1 = i2 = id = 0 ; i1 < src1->nelem && i2 < src2->nelem ;) { if (src1->elems[i1] > src2->elems[i2]) { dest->elems[id++] = src2->elems[i2++]; continue; } if (src1->elems[i1] == src2->elems[i2]) ++i2; dest->elems[id++] = src1->elems[i1++]; } if (i1 < src1->nelem) { memcpy (dest->elems + id, src1->elems + i1, (src1->nelem - i1) * sizeof (int)); id += src1->nelem - i1; } else if (i2 < src2->nelem) { memcpy (dest->elems + id, src2->elems + i2, (src2->nelem - i2) * sizeof (int)); id += src2->nelem - i2; } dest->nelem = id; return REG_NOERROR; } /* Calculate the union set of the sets DEST and SRC. And store it to DEST. Return value indicate the error code or REG_NOERROR if succeeded. */ static reg_errcode_t internal_function re_node_set_merge (re_node_set *dest, const re_node_set *src) { int is, id, sbase, delta; if (src == NULL || src->nelem == 0) return REG_NOERROR; if (dest->alloc < 2 * src->nelem + dest->nelem) { int new_alloc = 2 * (src->nelem + dest->alloc); int *new_buffer = re_realloc (dest->elems, int, new_alloc); if (BE (new_buffer == NULL, 0)) return REG_ESPACE; dest->elems = new_buffer; dest->alloc = new_alloc; } if (BE (dest->nelem == 0, 0)) { dest->nelem = src->nelem; memcpy (dest->elems, src->elems, src->nelem * sizeof (int)); return REG_NOERROR; } /* Copy into the top of DEST the items of SRC that are not found in DEST. Maybe we could binary search in DEST? */ for (sbase = dest->nelem + 2 * src->nelem, is = src->nelem - 1, id = dest->nelem - 1; is >= 0 && id >= 0; ) { if (dest->elems[id] == src->elems[is]) is--, id--; else if (dest->elems[id] < src->elems[is]) dest->elems[--sbase] = src->elems[is--]; else /* if (dest->elems[id] > src->elems[is]) */ --id; } if (is >= 0) { /* If DEST is exhausted, the remaining items of SRC must be unique. */ sbase -= is + 1; memcpy (dest->elems + sbase, src->elems, (is + 1) * sizeof (int)); } id = dest->nelem - 1; is = dest->nelem + 2 * src->nelem - 1; delta = is - sbase + 1; if (delta == 0) return REG_NOERROR; /* Now copy. When DELTA becomes zero, the remaining DEST elements are already in place. */ dest->nelem += delta; for (;;) { if (dest->elems[is] > dest->elems[id]) { /* Copy from the top. */ dest->elems[id + delta--] = dest->elems[is--]; if (delta == 0) break; } else { /* Slide from the bottom. */ dest->elems[id + delta] = dest->elems[id]; if (--id < 0) { /* Copy remaining SRC elements. */ memcpy (dest->elems, dest->elems + sbase, delta * sizeof (int)); break; } } } return REG_NOERROR; } /* Insert the new element ELEM to the re_node_set* SET. SET should not already have ELEM. return -1 if an error is occured, return 1 otherwise. */ static int internal_function re_node_set_insert (re_node_set *set, int elem) { int idx; /* In case the set is empty. */ if (set->alloc == 0) { if (BE (re_node_set_init_1 (set, elem) == REG_NOERROR, 1)) return 1; else return -1; } if (BE (set->nelem, 0) == 0) { /* We already guaranteed above that set->alloc != 0. */ set->elems[0] = elem; ++set->nelem; return 1; } /* Realloc if we need. */ if (set->alloc == set->nelem) { int *new_elems; set->alloc = set->alloc * 2; new_elems = re_realloc (set->elems, int, set->alloc); if (BE (new_elems == NULL, 0)) return -1; set->elems = new_elems; } /* Move the elements which follows the new element. Test the first element separately to skip a check in the inner loop. */ if (elem < set->elems[0]) { idx = 0; for (idx = set->nelem; idx > 0; idx--) set->elems[idx] = set->elems[idx - 1]; } else { for (idx = set->nelem; set->elems[idx - 1] > elem; idx--) set->elems[idx] = set->elems[idx - 1]; } /* Insert the new element. */ set->elems[idx] = elem; ++set->nelem; return 1; } /* Insert the new element ELEM to the re_node_set* SET. SET should not already have any element greater than or equal to ELEM. Return -1 if an error is occured, return 1 otherwise. */ static int internal_function re_node_set_insert_last (re_node_set *set, int elem) { /* Realloc if we need. */ if (set->alloc == set->nelem) { int *new_elems; set->alloc = (set->alloc + 1) * 2; new_elems = re_realloc (set->elems, int, set->alloc); if (BE (new_elems == NULL, 0)) return -1; set->elems = new_elems; } /* Insert the new element. */ set->elems[set->nelem++] = elem; return 1; } /* Compare two node sets SET1 and SET2. return 1 if SET1 and SET2 are equivalent, return 0 otherwise. */ static int internal_function __attribute ((pure)) re_node_set_compare (const re_node_set *set1, const re_node_set *set2) { int i; if (set1 == NULL || set2 == NULL || set1->nelem != set2->nelem) return 0; for (i = set1->nelem ; --i >= 0 ; ) if (set1->elems[i] != set2->elems[i]) return 0; return 1; } /* Return (idx + 1) if SET contains the element ELEM, return 0 otherwise. */ static int internal_function __attribute ((pure)) re_node_set_contains (const re_node_set *set, int elem) { unsigned int idx, right, mid; if (set->nelem <= 0) return 0; /* Binary search the element. */ idx = 0; right = set->nelem - 1; while (idx < right) { mid = (idx + right) / 2; if (set->elems[mid] < elem) idx = mid + 1; else right = mid; } return set->elems[idx] == elem ? idx + 1 : 0; } static void internal_function re_node_set_remove_at (re_node_set *set, int idx) { if (idx < 0 || idx >= set->nelem) return; --set->nelem; for (; idx < set->nelem; idx++) set->elems[idx] = set->elems[idx + 1]; } /* Add the token TOKEN to dfa->nodes, and return the index of the token. Or return -1, if an error will be occured. */ static int internal_function re_dfa_add_node (re_dfa_t *dfa, re_token_t token) { int type = token.type; if (BE (dfa->nodes_len >= dfa->nodes_alloc, 0)) { size_t new_nodes_alloc = dfa->nodes_alloc * 2; int *new_nexts, *new_indices; re_node_set *new_edests, *new_eclosures; re_token_t *new_nodes; /* Avoid overflows. */ if (BE (new_nodes_alloc < dfa->nodes_alloc, 0)) return -1; new_nodes = re_realloc (dfa->nodes, re_token_t, new_nodes_alloc); if (BE (new_nodes == NULL, 0)) return -1; dfa->nodes = new_nodes; new_nexts = re_realloc (dfa->nexts, int, new_nodes_alloc); new_indices = re_realloc (dfa->org_indices, int, new_nodes_alloc); new_edests = re_realloc (dfa->edests, re_node_set, new_nodes_alloc); new_eclosures = re_realloc (dfa->eclosures, re_node_set, new_nodes_alloc); if (BE (new_nexts == NULL || new_indices == NULL || new_edests == NULL || new_eclosures == NULL, 0)) return -1; dfa->nexts = new_nexts; dfa->org_indices = new_indices; dfa->edests = new_edests; dfa->eclosures = new_eclosures; dfa->nodes_alloc = new_nodes_alloc; } dfa->nodes[dfa->nodes_len] = token; dfa->nodes[dfa->nodes_len].constraint = 0; #ifdef RE_ENABLE_I18N dfa->nodes[dfa->nodes_len].accept_mb = (type == OP_PERIOD && dfa->mb_cur_max > 1) || type == COMPLEX_BRACKET; #endif dfa->nexts[dfa->nodes_len] = -1; re_node_set_init_empty (dfa->edests + dfa->nodes_len); re_node_set_init_empty (dfa->eclosures + dfa->nodes_len); return dfa->nodes_len++; } static inline unsigned int internal_function calc_state_hash (const re_node_set *nodes, unsigned int context) { unsigned int hash = nodes->nelem + context; int i; for (i = 0 ; i < nodes->nelem ; i++) hash += nodes->elems[i]; return hash; } /* Search for the state whose node_set is equivalent to NODES. Return the pointer to the state, if we found it in the DFA. Otherwise create the new one and return it. In case of an error return NULL and set the error code in ERR. Note: - We assume NULL as the invalid state, then it is possible that return value is NULL and ERR is REG_NOERROR. - We never return non-NULL value in case of any errors, it is for optimization. */ static re_dfastate_t * internal_function re_acquire_state (reg_errcode_t *err, const re_dfa_t *dfa, const re_node_set *nodes) { unsigned int hash; re_dfastate_t *new_state; struct re_state_table_entry *spot; int i; if (BE (nodes->nelem == 0, 0)) { *err = REG_NOERROR; return NULL; } hash = calc_state_hash (nodes, 0); spot = dfa->state_table + (hash & dfa->state_hash_mask); for (i = 0 ; i < spot->num ; i++) { re_dfastate_t *state = spot->array[i]; if (hash != state->hash) continue; if (re_node_set_compare (&state->nodes, nodes)) return state; } /* There are no appropriate state in the dfa, create the new one. */ new_state = create_ci_newstate (dfa, nodes, hash); if (BE (new_state == NULL, 0)) *err = REG_ESPACE; return new_state; } /* Search for the state whose node_set is equivalent to NODES and whose context is equivalent to CONTEXT. Return the pointer to the state, if we found it in the DFA. Otherwise create the new one and return it. In case of an error return NULL and set the error code in ERR. Note: - We assume NULL as the invalid state, then it is possible that return value is NULL and ERR is REG_NOERROR. - We never return non-NULL value in case of any errors, it is for optimization. */ static re_dfastate_t * internal_function re_acquire_state_context (reg_errcode_t *err, const re_dfa_t *dfa, const re_node_set *nodes, unsigned int context) { unsigned int hash; re_dfastate_t *new_state; struct re_state_table_entry *spot; int i; if (nodes->nelem == 0) { *err = REG_NOERROR; return NULL; } hash = calc_state_hash (nodes, context); spot = dfa->state_table + (hash & dfa->state_hash_mask); for (i = 0 ; i < spot->num ; i++) { re_dfastate_t *state = spot->array[i]; if (state->hash == hash && state->context == context && re_node_set_compare (state->entrance_nodes, nodes)) return state; } /* There are no appropriate state in `dfa', create the new one. */ new_state = create_cd_newstate (dfa, nodes, context, hash); if (BE (new_state == NULL, 0)) *err = REG_ESPACE; return new_state; } /* Finish initialization of the new state NEWSTATE, and using its hash value HASH put in the appropriate bucket of DFA's state table. Return value indicates the error code if failed. */ static reg_errcode_t register_state (const re_dfa_t *dfa, re_dfastate_t *newstate, unsigned int hash) { struct re_state_table_entry *spot; reg_errcode_t err; int i; newstate->hash = hash; err = re_node_set_alloc (&newstate->non_eps_nodes, newstate->nodes.nelem); if (BE (err != REG_NOERROR, 0)) return REG_ESPACE; for (i = 0; i < newstate->nodes.nelem; i++) { int elem = newstate->nodes.elems[i]; if (!IS_EPSILON_NODE (dfa->nodes[elem].type)) re_node_set_insert_last (&newstate->non_eps_nodes, elem); } spot = dfa->state_table + (hash & dfa->state_hash_mask); if (BE (spot->alloc <= spot->num, 0)) { int new_alloc = 2 * spot->num + 2; re_dfastate_t **new_array = re_realloc (spot->array, re_dfastate_t *, new_alloc); if (BE (new_array == NULL, 0)) return REG_ESPACE; spot->array = new_array; spot->alloc = new_alloc; } spot->array[spot->num++] = newstate; return REG_NOERROR; } static void free_state (re_dfastate_t *state) { re_node_set_free (&state->non_eps_nodes); re_node_set_free (&state->inveclosure); if (state->entrance_nodes != &state->nodes) { re_node_set_free (state->entrance_nodes); re_free (state->entrance_nodes); } re_node_set_free (&state->nodes); re_free (state->word_trtable); re_free (state->trtable); re_free (state); } /* Create the new state which is independ of contexts. Return the new state if succeeded, otherwise return NULL. */ static re_dfastate_t * internal_function create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes, unsigned int hash) { int i; reg_errcode_t err; re_dfastate_t *newstate; newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1); if (BE (newstate == NULL, 0)) return NULL; err = re_node_set_init_copy (&newstate->nodes, nodes); if (BE (err != REG_NOERROR, 0)) { re_free (newstate); return NULL; } newstate->entrance_nodes = &newstate->nodes; for (i = 0 ; i < nodes->nelem ; i++) { re_token_t *node = dfa->nodes + nodes->elems[i]; re_token_type_t type = node->type; if (type == CHARACTER && !node->constraint) continue; #ifdef RE_ENABLE_I18N newstate->accept_mb |= node->accept_mb; #endif /* RE_ENABLE_I18N */ /* If the state has the halt node, the state is a halt state. */ if (type == END_OF_RE) newstate->halt = 1; else if (type == OP_BACK_REF) newstate->has_backref = 1; else if (type == ANCHOR || node->constraint) newstate->has_constraint = 1; } err = register_state (dfa, newstate, hash); if (BE (err != REG_NOERROR, 0)) { free_state (newstate); newstate = NULL; } return newstate; } /* Create the new state which is depend on the context CONTEXT. Return the new state if succeeded, otherwise return NULL. */ static re_dfastate_t * internal_function create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, unsigned int context, unsigned int hash) { int i, nctx_nodes = 0; reg_errcode_t err; re_dfastate_t *newstate; newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1); if (BE (newstate == NULL, 0)) return NULL; err = re_node_set_init_copy (&newstate->nodes, nodes); if (BE (err != REG_NOERROR, 0)) { re_free (newstate); return NULL; } newstate->context = context; newstate->entrance_nodes = &newstate->nodes; for (i = 0 ; i < nodes->nelem ; i++) { unsigned int constraint = 0; re_token_t *node = dfa->nodes + nodes->elems[i]; re_token_type_t type = node->type; if (node->constraint) constraint = node->constraint; if (type == CHARACTER && !constraint) continue; #ifdef RE_ENABLE_I18N newstate->accept_mb |= node->accept_mb; #endif /* RE_ENABLE_I18N */ /* If the state has the halt node, the state is a halt state. */ if (type == END_OF_RE) newstate->halt = 1; else if (type == OP_BACK_REF) newstate->has_backref = 1; else if (type == ANCHOR) constraint = node->opr.ctx_type; if (constraint) { if (newstate->entrance_nodes == &newstate->nodes) { newstate->entrance_nodes = re_malloc (re_node_set, 1); if (BE (newstate->entrance_nodes == NULL, 0)) { free_state (newstate); return NULL; } re_node_set_init_copy (newstate->entrance_nodes, nodes); nctx_nodes = 0; newstate->has_constraint = 1; } if (NOT_SATISFY_PREV_CONSTRAINT (constraint,context)) { re_node_set_remove_at (&newstate->nodes, i - nctx_nodes); ++nctx_nodes; } } } err = register_state (dfa, newstate, hash); if (BE (err != REG_NOERROR, 0)) { free_state (newstate); newstate = NULL; } return newstate; } tucnak2-2.48/src/profile.c0000644000175000017500000000275311567373656012364 00000000000000#include #if defined(__MINGW32__) int dladdr(void *addr, Dl_info *info){ MEMORY_BASIC_INFORMATION mbi; char moduleName[MAX_PATH]; HMODULE hMod; if (!VirtualQuery (addr, &mbi, sizeof (mbi))) return 0; hMod = (HMODULE)mbi.AllocationBase; if (!GetModuleFileNameA (hMod, moduleName, sizeof (moduleName))) return 0; info->file_name = (char *)(malloc (strlen (moduleName) + 1)); strcpy (info->file_name, moduleName); info->base = NULL; info->sym_name = NULL; info->sym_addr = NULL; strcpy (info->dli_fname, module_name); info->dli_fbase = mbi.BaseAddress; // this is *probably* right info->dli_saddr = addr; strcpy (info->dli_sname, module_name); return 1; } #endif void __cyg_profile_func_enter(void *this_fn, void *call_site) __attribute__((no_instrument_function)); void __cyg_profile_func_enter(void *this_fn, void *call_site) { /*Dl_info dl1, dl2; dladdr(this_fn, &dl1); dladdr(__builtin_return_address(1), &dl2); dbg("ENTER: %s, from %s\n", dl1.dli_sname, dl2.dli_sname);*/ dbg("ENTER: %p, from %p\n", this_fn, call_site); } void __cyg_profile_func_exit(void *this_fn, void *call_site) __attribute__((no_instrument_function)); void __cyg_profile_func_exit(void *this_fn, void *call_site) { /*Dl_info dl1, dl2; dladdr(this_fn, &dl1); dladdr(__builtin_return_address(1), &dl2);*/ dbg("EXIT: %p, from %p\n", this_fn, call_site); } tucnak2-2.48/src/list.c0000644000175000017500000000466611567373656011704 00000000000000/* list - Imports list of stations Copyright (C) 2010 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #define LIST_DELIM "\t " void import_list(void *xxx, char *filename){ FILE *f; GString *gs; char *token_ptr; int i; int l = 0; f = fopen(filename, "r"); if (!f) { log_addf(CTEXT(T_CANT_READ_S), filename); return; } gs = g_string_sized_new(120); while(safe_fgets(gs, f, 0)!=NULL ){ struct qso *q; char *c, *w, *r; l++; c = strtok_r(gs->str, LIST_DELIM, &token_ptr); if (!c) { log_addf("Skip line %d '%s'", l, gs->str); continue; } w = strtok_r(NULL, LIST_DELIM, &token_ptr); if (!w){ log_addf("Skip line %d '%s'", l, gs->str); continue; } // r = strtok_r(NULL, LIST_DELIM, &token_ptr); r = token_ptr; q = g_new0(struct qso, 1); q->date_str = g_strdup("19900101"); q->time_str = g_strdup("0000"); q->callsign = g_strdup(c); q->mode = MOD_CW_CW; q->rsts=g_strdup("599"); q->rstr=g_strdup("599"); q->qsonrs=g_strdup_printf("%03d", l); q->qsonrr=g_strdup("001"); q->exc=g_strdup(""); q->locator = g_strdup(w); q->source=g_strdup(net->myid); q->operator_=aband->operator_; q->qrg = 0; q->stamp=time(NULL); q->remark = g_strdup(r?r:""); q->ser_id=-1; /* computed by add_qso_to_index */ compute_qrbqtf(q); add_qso(aband, q); log_addf("'%s' '%s' '%s'", q->callsign, q->locator, q->remark); } g_string_free(gs, TRUE); fclose(f); g_hash_table_foreach(ctest->bystamp, foreach_source_qsort_by_stamp, NULL); g_index_array_qsort(ctest->allqsos, compare_date_time_qsonrs); for (i=0;ibands->len;i++){ struct band *b=(struct band *)g_ptr_array_index(ctest->bands,i); recalc_stats(b); clear_tmpqsos(b, 1); if (ctest->qsoused && b->qsos->len+1 != atoi(b->tmpqsos[0].qsonrs)){ g_free(b->tmpqsos[0].qsonrs); b->tmpqsos[0].qsonrs = g_strdup_printf("%03d", b->qsos->len+1); } } return; } tucnak2-2.48/src/cor.c0000644000175000017500000001677411567373656011517 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #ifdef HAVE_SDL struct cor *cor = NULL; static struct cor *cor2 = NULL; struct kmarray *kmarray_new(void){ struct kmarray *kma; kma = g_new0(struct kmarray, 1); kma->size=100; kma->data=g_new0(struct kmpoint, kma->size); return kma; } void kmarray_add(GHashTable *hash, gpointer key, struct kmpoint *km){ struct kmarray *kma; gpointer orig_key, value; if (g_hash_table_lookup_extended(hash, key, &orig_key, &value)){ kma=(struct kmarray *)value; }else{ kma=kmarray_new(); /* dbg("new kma for %p: %p\n",key, kma);*/ g_hash_table_insert(hash, key, kma); } if (kma->len == kma->size){ kma->size+=100; kma->data = g_renew(struct kmpoint, kma->data, kma->size); } memcpy(&kma->data[kma->len], km, sizeof(struct kmpoint)); kma->len++; } #define TO_READ 1000 struct cor *init_cor(){ struct cor *cor; cor = g_new0(struct cor, 1); cor->km = g_hash_table_new(g_direct_hash, g_direct_equal); cor->wwl4 = g_hash_table_new(g_direct_hash, g_direct_equal); cor->wwl2 = g_hash_table_new(g_direct_hash, g_direct_equal); cor->thread_break = 0; cor->file=cor_tucnakcor; cor->items=COR_ITEMS; return cor; } void free_cor(struct cor *cor){ if (!cor) return; if (cor2 && cor2->thread){ cor2->thread_break = 1; //dbg("join cor...\n"); g_thread_join(cor2->thread); //dbg("done\n"); cor2->thread = NULL; } g_hash_table_foreach_remove(cor->km, free_km_item, NULL); g_hash_table_foreach_remove(cor->wwl4, free_km_item, NULL); g_hash_table_foreach_remove(cor->wwl2, free_km_item, NULL); g_free(cor); } int cor_recalc(struct subwin *sw, gchar *locator){ // dbg("cor_recalc('%s', '%s') %d %d\n", sw->title, locator, sw->myh, sw->myw); if (cor2) { free_cor(cor2); } cor2 = init_cor(); cor2->sw_myw = sw->myw; cor2->sw_myh = sw->myh; cor2->thread = g_thread_create(cor_thread_func, (gpointer)cor2, TRUE, NULL); if (!cor2->thread) internal_("Can't run cor thread"); return 0; } gpointer cor_thread_func(gpointer arg){ int i,j, ret; const struct cpoint *cp; struct kmpoint km, kmfirst, kmlast; double h2, w2; gpointer hash, oldhash; int kx, ky, color; struct cor *cor = (struct cor *)arg; char s[16]; /* dbg("recalc_cor(%s)\n", locator);*/ /* return 0; */ // ST_START; kmfirst.c=0; //dbg("cor_thread_func: items=%d %f %f\n", cor->items, cor->sw_myh, cor->sw_myw); g_hash_table_foreach_remove(cor->km, free_km_item, NULL); oldhash=(gpointer)-1; for (i=0, cp=cor->file; iitems; i++, cp++){ if (cor->thread_break) return NULL; w2=(MY_PI*(double)cp->w)/18000; h2=(MY_PI*(double)cp->h)/18000; hw2km(cor->sw_myh, cor->sw_myw, h2, w2, &kx, &ky); hash=k2key(kx, ky); km.c=cp->c; km.kx=kx; km.ky=ky; if (km.c<0) { memcpy(&kmfirst, &km, sizeof(kmfirst)); } if (oldhash!=(gpointer)-1 && hash!=oldhash) { kmarray_add(cor->km, oldhash, &km); kmlast.c=kmfirst.c; kmarray_add(cor->km, hash, &kmlast); } kmarray_add(cor->km, hash, &km); memcpy(&kmlast, &km, sizeof(kmlast)); oldhash=hash; } /* big wwls (JN69) */ g_hash_table_foreach_remove(cor->wwl4, free_km_item, NULL); for (i=-89;i<90;i++){ if (cor->thread_break) return NULL; if (i%10==0) color=-128; else color=-127; oldhash=(gpointer)-1; km.c=color; for (j=0;j<=360;j++){ w2=(MY_PI*i)/180; h2=(MY_PI*j)/180; hw2km(cor->sw_myh, cor->sw_myw, h2, w2, &kx, &ky); hash=k2key(kx, ky); km.kx=kx; km.ky=ky; if (oldhash!=(gpointer)-1 && hash!=oldhash) { kmarray_add(cor->wwl4, oldhash, &km); kmlast.c=color; kmarray_add(cor->wwl4, hash, &kmlast); km.c=0; } kmarray_add(cor->wwl4, hash, &km); memcpy(&kmlast, &km, sizeof(kmlast)); oldhash=hash; km.c=0; } } for (j=0;j<360;j+=2){ if (cor->thread_break) return NULL; oldhash=(gpointer)-1; if (j%20==0) color=-128; else color=-127; km.c=color; for (i=-89;i<=89;i++){ w2=(MY_PI*i)/180; h2=(MY_PI*j)/180; hw2km(cor->sw_myh, cor->sw_myw, h2, w2, &kx, &ky); hash=k2key(kx, ky); km.kx=kx; km.ky=ky; if (oldhash!=(gpointer)-1 && hash!=oldhash) { kmarray_add(cor->wwl4, oldhash, &km); kmlast.c=color; kmarray_add(cor->wwl4, hash, &kmlast); km.c=0; } kmarray_add(cor->wwl4, hash, &km); memcpy(&kmlast, &km, sizeof(kmlast)); oldhash=hash; km.c=0; } } /* very big wwls (JN) */ g_hash_table_foreach_remove(cor->wwl2, free_km_item, NULL); for (i=-80;i<90;i+=10){ if (cor->thread_break) return NULL; if (i%10==0) color=-128; else color=-127; oldhash=(gpointer)-1; km.c=color; for (j=0;j<=360;j++){ w2=(MY_PI*i)/180; h2=(MY_PI*j)/180; hw2km(cor->sw_myh, cor->sw_myw, h2, w2, &kx, &ky); hash=k2key(kx, ky); km.kx=kx; km.ky=ky; if (oldhash!=(gpointer)-1 && hash!=oldhash) { kmarray_add(cor->wwl2, oldhash, &km); kmlast.c=color; kmarray_add(cor->wwl2, hash, &kmlast); km.c=0; } kmarray_add(cor->wwl2, hash, &km); memcpy(&kmlast, &km, sizeof(kmlast)); oldhash=hash; km.c=0; } } for (j=0;j<360;j+=20){ if (cor->thread_break) return NULL; oldhash=(gpointer)-1; if (j%10==0) color=-128; else color=-127; km.c=color; for (i=-89;i<=89;i++){ w2=(MY_PI*i)/180; h2=(MY_PI*j)/180; hw2km(cor->sw_myh, cor->sw_myw, h2, w2, &kx, &ky); hash=k2key(kx, ky); km.kx=kx; km.ky=ky; if (oldhash!=(gpointer)-1 && hash!=oldhash) { kmarray_add(cor->wwl2, oldhash, &km); kmlast.c=color; kmarray_add(cor->wwl2, hash, &kmlast); km.c=0; } kmarray_add(cor->wwl2, hash, &km); memcpy(&kmlast, &km, sizeof(kmlast)); oldhash=hash; km.c=0; } } // ST_STOP; // sleep(5); sprintf(s, "COR\n"); ret = write(tpipe->threadpipe_write, s, strlen(s)); return NULL; } void cor_read_handler(char *line){ // dbg("cor_read_handler\n"); if (!cor2 || !cor2->thread) return; free_cor(cor); cor = cor2; cor2 = NULL; if (gses->ontop->type!=SWT_MAP) return; gses->ontop->gdirty = 1; sw_map_redraw(gses->ontop, 0); } gboolean free_km_item(gpointer key, gpointer value, gpointer user_data){ struct kmarray *kma; /* key is int, not freeed */ kma=(struct kmarray *) value; if (!kma) return 0; g_free(kma->data); g_free(kma); return 1; } gpointer k2key(int kx, int ky){ return (gpointer)(vint)( (kx & COR_KM_MASK) | ( (ky & COR_KM_MASK) << 16)) ; } #endif tucnak2-2.48/src/cwdb.c0000644000175000017500000004253711602111244011614 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include struct cw *cw; static gchar *cw_next; static gchar *wc_next; struct cw *init_cw(void){ struct cw *cw; time_t now; struct tm tm; cw = g_new0(struct cw, 1); cw->cw = t_hash_table_new(g_str_hash, g_str_equal); cw->wc = g_hash_table_new(g_str_hash, g_str_equal); cw_next = NULL; wc_next = NULL; cw->latest = 0; time(&now); now -= 740 * 86400L; /* 740 days = two years + something */ gmtime_r(&now, &tm); cw->minstamp = (tm.tm_year+1900)*10000 + (tm.tm_mon+1)*100 + tm.tm_mday; return cw; } static gboolean free_cw_item(gpointer key, gpointer value, gpointer user_data){ struct cw_item *cwi; g_free(key); cwi = (struct cw_item *)value; if (cwi->wwl0) g_free(cwi->wwl0); if (cwi->wwl1) g_free(cwi->wwl1); g_free(value); return 0; } static gboolean free_wc_item(gpointer key, gpointer value, gpointer user_data){ struct wc_item *wci; g_free(key); wci = (struct wc_item *)value; if (wci->call0) g_free(wci->call0); if (wci->call1) g_free(wci->call1); g_free(value); return 0; } void free_cw(struct cw *cw){ g_hash_table_foreach_remove(cw->wc, free_wc_item, NULL); g_hash_table_destroy(cw->wc); t_hash_table_foreach_remove(cw->cw, free_cw_item, NULL); t_hash_table_destroy(cw->cw); g_free(cw); } gint get_cw_size(struct cw *cw){ return t_hash_table_size(cw->cw); } gint get_wc_size(struct cw *cw){ return g_hash_table_size(cw->wc); } #define CW_DELIM " \t\r\n" void load_one_cw(struct cw *cw, gchar *s){ gchar *call, *wwl, *stamp_str, *qrv_str; char *token_ptr; uc(s); call = strtok_r(s, CW_DELIM, &token_ptr); if (!call) return; wwl = strtok_r(NULL, CW_DELIM, &token_ptr); if (!wwl) return; stamp_str = strtok_r(NULL, CW_DELIM, &token_ptr); if (!stamp_str) return; qrv_str = strtok_r(NULL, CW_DELIM, &token_ptr); /*dbg("qrv_str(%s)=%s\n", call, qrv_str);*/ add_cw(cw, call, wwl, atoi(stamp_str), qrv_str); /* qrv can be null */ add_wc(cw, wwl, call, atoi(stamp_str)); } int load_cw_from_file(struct cw *cw, gchar *filename){ FILE *f; char s[102]; f = fopen(filename, "rt"); if (!f){ /*dbg("Can't open '%s'\n", filename);*/ return -1; } while((fgets(s, 100, f))!=NULL){ load_one_cw(cw,s); } fclose(f); return 0; } void read_cw_files(struct cw *cw){ gchar *s; #ifdef UNIX load_cw_from_file(cw, "/etc/tucnakcw"); #endif s = g_strconcat(getenv("HOME"), "/tucnak/tucnakcw", NULL); load_cw_from_file(cw, s); g_free(s); } static void save_one_cw(gpointer key, gpointer value, gpointer user_data){ GString *gs; gchar *call; struct cw_item *cwi; gchar qrv_str[33], *c; int i; gs = (GString *) user_data; call = (gchar *) key; cwi = (struct cw_item *) value; for (i=0, c=qrv_str;i<32;i++){ if (!(cwi->qrv & (1<wwl0) g_string_sprintfa(gs, "%-14s %-6s %08d %s\n", call, cwi->wwl0, cwi->stamp0, qrv_str); if (cwi->wwl1) g_string_sprintfa(gs, "%-14s %-6s %08d %s\n", call, cwi->wwl1, cwi->stamp1, qrv_str); } int save_cw_string(struct cw *cw, GString *gs){ t_hash_table_foreach(cw->cw, save_one_cw, (gpointer) gs); return 0; } int save_cw_into_file(struct cw *cw, gchar *filename){ FILE *f; GString *gs; int ret; f = fopen(filename, "wt"); /* FIXME swp first */ if (!f) { return errno; } gs=g_string_sized_new(100000); save_cw_string(cw,gs); ret = fprintf(f,"%s",gs->str) != gs->len ? errno: 0; fclose(f); g_string_free(gs,TRUE); return ret; } void add_cw(struct cw *cw, gchar *call, gchar *wwl, gint stamp, gchar *qrv_str){ struct cw_item *cwi; char *c; if (stamp<0) return; if (stamp>cw->latest) cw->latest=stamp; cwi = t_hash_table_lookup(cw->cw, call); if (!cwi){ cwi = g_new0(struct cw_item, 1); t_hash_table_insert(cw->cw, g_strdup(call), cwi); } if (qrv_str){ /* can be NULL*/ for (c=qrv_str;*c!='\0';c++){ *c=upcase(*c); cwi->qrv|=1<<(*c-'A'); } } if (stamp < cwi->stamp1) return; if (stamp < cwi->stamp0){ if (strcasecmp(cwi->wwl0, wwl)==0) return; if (cwi->wwl1) g_free(cwi->wwl1); cwi->wwl1 = g_strdup(wwl); cwi->stamp1 = stamp; return; } if (cwi->wwl0 && strcasecmp(cwi->wwl0, wwl)==0) { cwi->stamp0 = stamp; return; } if (cwi->wwl1) g_free(cwi->wwl1); cwi->wwl1 = cwi->wwl0; cwi->stamp1 = cwi->stamp0; cwi->wwl0 = g_strdup(wwl); cwi->stamp0 = stamp; } void add_wc(struct cw *cw, gchar *wwl, gchar *call, gint stamp){ struct wc_item *wci; if (stamp<0) return; if (stamp>cw->latest) cw->latest=stamp; wci = g_hash_table_lookup(cw->wc, wwl); if (!wci){ wci = g_new0(struct wc_item, 1); g_hash_table_insert(cw->wc, g_strdup(wwl), wci); } if (stamp < wci->stamp1) return; if (stamp < wci->stamp0){ if (strcasecmp(wci->call0, call)==0) return; if (wci->call1) g_free(wci->call1); wci->call1 = g_strdup(call); wci->stamp1 = stamp; return; } if (wci->call0 && strcasecmp(wci->call0, call)==0) { wci->stamp0 = stamp; return; } if (wci->call1) g_free(wci->call1); wci->call1 = wci->call0; wci->stamp1 = wci->stamp0; wci->call0 = g_strdup(call); wci->stamp0 = stamp; } gchar *find_wwl_by_call(struct cw *cw, gchar *call){ struct cw_item *cwi; if (!call) return cw_next; cw_next = NULL; cwi = t_hash_table_lookup(cw->cw, call); if (!cwi) return NULL; cw_next = cwi->wwl1; return cwi->wwl0; } gchar *find_wwl_by_call_newer(struct cw *cw, gchar *call, int maxstamp){ struct cw_item *cwi; cwi = t_hash_table_lookup(cw->cw, call); if (!cwi) return NULL; if (cwi->stamp0 > maxstamp) return cwi->wwl0; if (cwi->stamp1 > maxstamp) return cwi->wwl1; return NULL; } gchar *find_call_by_wwl(struct cw *cw, gchar *wwl){ struct wc_item *wci; if (!wwl) return wc_next; wc_next = NULL; wci = g_hash_table_lookup(cw->wc, wwl); if (!wci) return NULL; wc_next = wci->call1; return wci->call0; } gchar *find_qrv_str_by_call(struct cw *cw, gchar *call){ int i,j; gchar *c; struct cw_item *cwi; gint qrv; static gchar qrv_str[33]; gchar *ret; char raw[25], raw2[25]; struct qso *q; struct band *band; if (!aband) return NULL; qrv=0; cwi = t_hash_table_lookup(cw->cw, call); if (cwi) qrv|=cwi->qrv; cwi = t_hash_table_lookup(cw->cw, get_raw_call(raw, call)); if (cwi) qrv|=cwi->qrv; c=g_strdup_printf("%s/P", raw); cwi = t_hash_table_lookup(cw->cw, c); if (cwi) qrv|=cwi->qrv; g_free(c); if (!qrv) return NULL; for (i='A',c=qrv_str; i<='Z'; i++){ if (i==toupper(aband->bandchar)) continue; /* same band */ if (!(qrv & ctest->qrv & (1<<(i-'A')))) continue; /* we are not qrv on band */ band = find_band_by_bandchar(i); if (band){ for (j=0; jqsos->len; j++){ q = (struct qso *)g_ptr_array_index(band->qsos, j); if (q->error || q->dupe) continue; get_raw_call(raw2, q->callsign); if (strcmp(raw2, raw)==0) goto next; } } *c=i; c++; next:; } *c='\0'; ret=strlen(qrv_str)?qrv_str:NULL; /*log_addf("find_qrv_str_by_call(%s)='%s'", call, ret);*/ return ret; } /*static int is_string_in_array(GPtrArray *arr, gchar *str){ int i; gchar *c; for (i=0; ilen; i++){ c = (gchar *)g_ptr_array_index(arr, i); if (!c) continue; if (strcmp(c, str)==0) return 1; } return 0; } */ int cmp_cw_qs(gchar *call, struct cw_item *cwi, GPtrArray *result){ gchar *c; int ret=0, i; int qrb_int, qtf_int; char qrv_str[35]; int qrvfilter; char degree[2]; #ifdef HAVE_SDL if (sdl) strcpy(degree, "\xb0"); else #endif strcpy(degree, ""); qrvfilter = ctest ? ctest->qrv : -1; c=qrv_str; for (i=0;i<32;i++){ if ((cwi->qrv & qrvfilter & (1<qs_str)){ if (cwi->wwl0) { qrb_qtf_int(cwi->wwl0, &qrb_int, &qtf_int); c=g_strdup_printf("%-10s %-6s%5d/%3d%s %s", call, cwi->wwl0, qrb_int, qtf_int, degree, qrv_str); g_ptr_array_add(result, c); if (cwi->wwl1){ /* wwl1 is only together with wwl0 */ qrb_qtf_int(cwi->wwl1, &qrb_int, &qtf_int); c=g_strdup_printf("%-10s %-6s%5d/%3d%s %s", call, cwi->wwl1, qrb_int, qtf_int, degree, qrv_str); g_ptr_array_add(result, c); } }else{ c=g_strdup(call); g_ptr_array_add(result, c); } goto x; } if (cwi->wwl0 && my_strstr(cwi->wwl0, gses->qs_str)){ qrb_qtf_int(cwi->wwl0, &qrb_int, &qtf_int); c=g_strdup_printf("%-10s %-6s%5d/%3d%s %s", call, cwi->wwl0, qrb_int, qtf_int, degree, qrv_str); /* dbg(",%s", c);*/ g_ptr_array_add(result, c); goto x; } if (cwi->wwl1 && my_strstr(cwi->wwl1, gses->qs_str)){ qrb_qtf_int(cwi->wwl1, &qrb_int, &qtf_int); c=g_strdup_printf("%-10s %-6s%5d/%3d%s %s", call, cwi->wwl1, qrb_int, qtf_int, degree, qrv_str); /* dbg(",%s", c); */ g_ptr_array_add(result, c); goto x; } x:; return ret; } int compare_gstring(const void *a, const void *b){ gchar **sa, **sb; sa = (gchar **)a; sb = (gchar **)b; return (strcmp(*sa, *sb)); } void get_cw_qs(gchar *str){ qs_thread_kill(); if (strlen(str)<2) { // CONDGFREE(gses->qs_master); g_ptr_array_free_items(gses->qs); return; } if (gses && gses->ontop && gses->ontop->type == SWT_HF){ CONDGFREE(gses->qs_master); // ST_START; gses->qs_master = masterdb_search(masterdb, str, gses->ontop->w); // ST_STOP; //log_adds(gses->qs_master); }else{ CONDGFREE(gses->qs_str); gses->qs_str=g_strdup(str); gses->qs_max_matches = term->y - QSONR_HEIGHT - 4 - cfg->loglines - 1; if (ctest) gses->qs_max_matches -= ctest->spypeers->len; if (ctest && ctest->bands->len==1) gses->qs_max_matches*=2; if (!ctest) gses->qs_max_matches*=3; qs_thread_create(); } } static gpointer qs_thread_func(gpointer data){ char s[256]; GPtrArray *result; THashNode *node; gint i; int count, ret; result=g_ptr_array_new(); count=0; for (i = 0; i < cw->cw->size; i++){ for (node = cw->cw->nodes[i]; node; node = node->next){ cmp_cw_qs(node->key, node->value, result); if (result->len >= gses->qs_max_matches) goto x; if (gses->qs_thread_break){ g_ptr_array_free_all(result); return NULL; } } } x:; g_index_array_qsort((GIndexArray *)result, compare_gstring); MUTEX_LOCK(gses->qs); g_ptr_array_free_all(gses->qs); gses->qs=result; MUTEX_UNLOCK(gses->qs); sprintf(s, "CWQS\n"); ret = write(tpipe->threadpipe_write, s, strlen(s)); return NULL; } void qs_thread_create(void){ if (gses->qs_thread) internal_("qs_thread_create gses->qs_thread"); gses->qs_thread_break=0; gses->qs_thread=g_thread_create(qs_thread_func, (gpointer)NULL, TRUE, NULL); if (!gses->qs_thread) internal_("qs_thread_create !gses->qs_thread"); } void qs_thread_join(void){ if (!gses->qs_thread) return; dbg("join qs...\n"); g_thread_join(gses->qs_thread); dbg("done\n"); gses->qs_thread=NULL; } void qs_thread_kill(){ if (!gses->qs_thread) return; gses->qs_thread_break=1; // dbg("join qs...\n"); g_thread_join(gses->qs_thread); // dbg("done\n"); /* dbg("done\n");*/ gses->qs_thread=NULL; } void update_cw_from_band(struct cw *cw, struct band *band){ int i; struct qso *q; gchar qrv_str[2]; stats_thread_join(band); qrv_str[0]=band->bandchar; qrv_str[1]='\0'; for (i=0; iqsos->len; i++){ q = (struct qso *)g_ptr_array_index(band->qsos, i); if (q->error) continue; if (!q->callsign || !q->locator || !q->date_str) continue; if (strlen(q->locator)!=6) continue; add_cw(cw, q->callsign, q->locator, atoi(q->date_str), qrv_str); add_wc(cw, q->locator, q->callsign, atoi(q->date_str)); } } void update_cw_from_ctest(struct cw *cw, struct contest *ctest){ int i; struct band *band; if (!ctest) return; for (i=0; ibands->len; i++){ band = (struct band *) g_ptr_array_index(ctest->bands, i); update_cw_from_band(cw, band); } } int similar_calls(const char *call1, const char *call2, int factor, int thr, int p){ factor = levenshtein(call1, call2); p=1; #if 0 // this code gives bad results const char *c1, *c2; int f1, f2, f3; if (factor>thr) return 9; c1=call1; c2=call2; while(*c1!='\0' && *c2!='\0'){ if (*c1==*c2){ c1++; c2++; continue; } f1 = similar_calls(c1+1, c2+1, factor+1, thr, 0); f2 = similar_calls(c1, c2+1, factor+2, thr, 0); f3 = similar_calls(c1+1, c2, factor+2, thr, 0); if (f1cw->size; i++){ for (node = cw->cw->nodes[i]; node; node = node->next){ int factor; cwi = (struct cw_item *) node->value; if ((cwi->wwl0 && strcmp(cwi->wwl0, wwl)==0 && cwi->stamp0 > cw->minstamp) || (cwi->wwl1 && strcmp(cwi->wwl1, wwl)==0 && cwi->stamp1 > cw->minstamp)){ /* dbg("hit %s %s\n", node->key, wwl);*/ if (strcmp((gchar*)node->key, call)==0) continue; if (band && get_qso_by_callsign(band, call)) continue; // call is also worked, no warning factor = similar_calls((gchar*)node->key, call, 0, thr, 0); if (factor<=thr){ if (!gs) return 1; g_string_append(gs, node->key); // g_string_append_printf(gs, "(%d<=%d)", factor, thr); g_string_append_c(gs, ' '); } } } } return 0; } int cwdb_call_info(GString *gs, gchar *call, gchar *stroke){ struct cw_item *cwi; char c[40]; int i; strcpy(c, call); strcat(c, stroke); cwi = t_hash_table_lookup(cw->cw, c); if (!cwi) return 0; if (!cwi->wwl0) return 0; /* wwl0 should be always defined */ g_string_sprintfa(gs, "C_W: %-9s %s %d", c, cwi->wwl0, cwi->stamp0); if (cwi->wwl1) g_string_sprintfa(gs, ", %s %d", cwi->wwl1, cwi->stamp1); g_string_append_c(gs, '\n'); if (cwi->qrv>0){ g_string_append(gs, "QRV on: "); for (i=0;i<26;i++){ if ((1<qrv) g_string_append_c(gs, i+'A'); } g_string_append_c(gs, '\n'); } return 1; } tucnak2-2.48/src/fhs.c0000644000175000017500000000624111611035232011447 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2008 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #define FHS_RETURN(code) { ret=(code);goto x; } int fhs_lock(char *device, int ignore_stale); int fhs_unlock(char *device); char *fhs_error(char *buf, int maxlen, int err, char *device); static int fhs_kill_stale(FILE *f, const char *lockfile){ int pid, ret, err; char s[256]; s[sizeof(s)-1]='\0'; if (!fgets(s, sizeof(s)-1, f)) return 0; pid=atoi(s); // dbg("pid=%d\n", pid); if (!pid) return -4; ret = kill(pid, 0); err = errno; dbg("kill returns ret=%d errno=%d EINVAL=%d ESRCH=%d\n", ret, errno, EINVAL, ESRCH); if (!ret) { return -7; // process alive }else{ if (err == EINVAL) return -4; // device is locked, details unknown if (err != ESRCH) return -7; // proces alive } if (unlink(lockfile)) { dbg("failed to unlink lockfile\n"); return -1; } dbg("lockfile unlinked\n"); return 0; } int fhs_lock(char *device, int ignore_stale){ int ret = 0; #ifndef WIN32 //__CYGWIN__ gchar *c, *lockfile = NULL; FILE *f = NULL; c=strrchr(device, '/'); if (!c) FHS_RETURN(-2); lockfile=g_strdup_printf("/var/lock/LCK..%s", c+1); f=fopen(lockfile, "rt"); if (f){ if (!ignore_stale){ FHS_RETURN(-3); }else{ if (fhs_kill_stale(f, lockfile)){ FHS_RETURN(-4); } } fclose(f); /* real unlink is here */ } f=fopen(lockfile, "wt"); if (!f){ FHS_RETURN(-5); }else{ fprintf(f, "%10d tucnak ", getpid()); fprintf(f, "%d\n", (int)getuid()); } x:; if (f) fclose(f); if (lockfile) g_free(lockfile); #endif return ret; } int fhs_unlock(char *device){ int ret = 0; #ifndef WIN32 //__CYGWIN__ char *c, *lockfile = NULL; c=strrchr(device, '/'); if (!c) FHS_RETURN(-2); lockfile=g_strdup_printf("/var/lock/LCK..%s", c+1); //dbg("fhs_unlock: unlink('%s')\n", lockfile); if (unlink(lockfile)) FHS_RETURN(-6); x:; if (lockfile) g_free(lockfile); #endif return 0; } char *fhs_error(char *buf, int maxlen, int err, char *device){ switch (err){ case -1: strerror_r(errno, buf, maxlen); break; case -2: g_snprintf(buf, maxlen, "Bad filename %s", device); break; case -3: case -4: g_snprintf(buf, maxlen, "Device %s is locked", device); break; case -5: g_snprintf(buf, maxlen, "Can't create lock file for %s", device); break; case -6: g_snprintf(buf, maxlen, "Can't delete lock file for %s", device); break; case -7: g_snprintf(buf, maxlen, "Device %s is locked, process alive", device); break; default: g_snprintf(buf, maxlen, "Unknown lock error %d on device %s", err, device); break; } return buf; } tucnak2-2.48/src/codepage.inc0000644000175000017500000014725611567373656013032 00000000000000/* Automatoticaly generated by gen-cp */ struct table_entry table_7bit [] = { {0}, {0} }; char *aliases_7bit [] = {"us-ascii", "ascii", "7bit", "7-bit", "iso-ir-6", "ANSI_X3.4", "646", NULL }; struct table_entry table_8859_1 [] = { {0xA0, 0x00A0}, {0xA1, 0x00A1}, {0xA2, 0x00A2}, {0xA3, 0x00A3}, {0xA4, 0x00A4}, {0xA5, 0x00A5}, {0xA6, 0x00A6}, {0xA7, 0x00A7}, {0xA8, 0x00A8}, {0xA9, 0x00A9}, {0xAA, 0x00AA}, {0xAB, 0x00AB}, {0xAC, 0x00AC}, {0xAD, 0x00AD}, {0xAE, 0x00AE}, {0xAF, 0x00AF}, {0xB0, 0x00B0}, {0xB1, 0x00B1}, {0xB2, 0x00B2}, {0xB3, 0x00B3}, {0xB4, 0x00B4}, {0xB5, 0x00B5}, {0xB6, 0x00B6}, {0xB7, 0x00B7}, {0xB8, 0x00B8}, {0xB9, 0x00B9}, {0xBA, 0x00BA}, {0xBB, 0x00BB}, {0xBC, 0x00BC}, {0xBD, 0x00BD}, {0xBE, 0x00BE}, {0xBF, 0x00BF}, {0xC0, 0x00C0}, {0xC1, 0x00C1}, {0xC2, 0x00C2}, {0xC3, 0x00C3}, {0xC4, 0x00C4}, {0xC5, 0x00C5}, {0xC6, 0x00C6}, {0xC7, 0x00C7}, {0xC8, 0x00C8}, {0xC9, 0x00C9}, {0xCA, 0x00CA}, {0xCB, 0x00CB}, {0xCC, 0x00CC}, {0xCD, 0x00CD}, {0xCE, 0x00CE}, {0xCF, 0x00CF}, {0xD0, 0x00D0}, {0xD1, 0x00D1}, {0xD2, 0x00D2}, {0xD3, 0x00D3}, {0xD4, 0x00D4}, {0xD5, 0x00D5}, {0xD6, 0x00D6}, {0xD7, 0x00D7}, {0xD8, 0x00D8}, {0xD9, 0x00D9}, {0xDA, 0x00DA}, {0xDB, 0x00DB}, {0xDC, 0x00DC}, {0xDD, 0x00DD}, {0xDE, 0x00DE}, {0xDF, 0x00DF}, {0xE0, 0x00E0}, {0xE1, 0x00E1}, {0xE2, 0x00E2}, {0xE3, 0x00E3}, {0xE4, 0x00E4}, {0xE5, 0x00E5}, {0xE6, 0x00E6}, {0xE7, 0x00E7}, {0xE8, 0x00E8}, {0xE9, 0x00E9}, {0xEA, 0x00EA}, {0xEB, 0x00EB}, {0xEC, 0x00EC}, {0xED, 0x00ED}, {0xEE, 0x00EE}, {0xEF, 0x00EF}, {0xF0, 0x00F0}, {0xF1, 0x00F1}, {0xF2, 0x00F2}, {0xF3, 0x00F3}, {0xF4, 0x00F4}, {0xF5, 0x00F5}, {0xF6, 0x00F6}, {0xF7, 0x00F7}, {0xF8, 0x00F8}, {0xF9, 0x00F9}, {0xFA, 0x00FA}, {0xFB, 0x00FB}, {0xFC, 0x00FC}, {0xFD, 0x00FD}, {0xFE, 0x00FE}, {0xFF, 0x00FF}, {0, 0} }; char *aliases_8859_1 [] = {"ISO-8859-1", "8859-1", "iso-ir-100", "latin1", "l1", "819", NULL }; struct table_entry table_8859_2 [] = { {0xA0, 0x00A0}, {0xA1, 0x0104}, {0xA2, 0x02D8}, {0xA3, 0x0141}, {0xA4, 0x00A4}, {0xA5, 0x013D}, {0xA6, 0x015A}, {0xA7, 0x00A7}, {0xA8, 0x00A8}, {0xA9, 0x0160}, {0xAA, 0x015E}, {0xAB, 0x0164}, {0xAC, 0x0179}, {0xAD, 0x00AD}, {0xAE, 0x017D}, {0xAF, 0x017B}, {0xB0, 0x00B0}, {0xB1, 0x0105}, {0xB2, 0x02DB}, {0xB3, 0x0142}, {0xB4, 0x00B4}, {0xB5, 0x013E}, {0xB6, 0x015B}, {0xB7, 0x02C7}, {0xB8, 0x00B8}, {0xB9, 0x0161}, {0xBA, 0x015F}, {0xBB, 0x0165}, {0xBC, 0x017A}, {0xBD, 0x02DD}, {0xBE, 0x017E}, {0xBF, 0x017C}, {0xC0, 0x0154}, {0xC1, 0x00C1}, {0xC2, 0x00C2}, {0xC3, 0x0102}, {0xC4, 0x00C4}, {0xC5, 0x0139}, {0xC6, 0x0106}, {0xC7, 0x00C7}, {0xC8, 0x010C}, {0xC9, 0x00C9}, {0xCA, 0x0118}, {0xCB, 0x00CB}, {0xCC, 0x011A}, {0xCD, 0x00CD}, {0xCE, 0x00CE}, {0xCF, 0x010E}, {0xD0, 0x0110}, {0xD1, 0x0143}, {0xD2, 0x0147}, {0xD3, 0x00D3}, {0xD4, 0x00D4}, {0xD5, 0x0150}, {0xD6, 0x00D6}, {0xD7, 0x00D7}, {0xD8, 0x0158}, {0xD9, 0x016E}, {0xDA, 0x00DA}, {0xDB, 0x0170}, {0xDC, 0x00DC}, {0xDD, 0x00DD}, {0xDE, 0x0162}, {0xDF, 0x00DF}, {0xE0, 0x0155}, {0xE1, 0x00E1}, {0xE2, 0x00E2}, {0xE3, 0x0103}, {0xE4, 0x00E4}, {0xE5, 0x013A}, {0xE6, 0x0107}, {0xE7, 0x00E7}, {0xE8, 0x010D}, {0xE9, 0x00E9}, {0xEA, 0x0119}, {0xEB, 0x00EB}, {0xEC, 0x011B}, {0xED, 0x00ED}, {0xEE, 0x00EE}, {0xEF, 0x010F}, {0xF0, 0x0111}, {0xF1, 0x0144}, {0xF2, 0x0148}, {0xF3, 0x00F3}, {0xF4, 0x00F4}, {0xF5, 0x0151}, {0xF6, 0x00F6}, {0xF7, 0x00F7}, {0xF8, 0x0159}, {0xF9, 0x016F}, {0xFA, 0x00FA}, {0xFB, 0x0171}, {0xFC, 0x00FC}, {0xFD, 0x00FD}, {0xFE, 0x0163}, {0xFF, 0x02D9}, {0, 0} }; char *aliases_8859_2 [] = {"ISO-8859-2", "8859-2", "iso-ir-101", "latin2", "l2", NULL }; struct table_entry table_8859_4 [] = { {0x80, 0x0080}, {0x81, 0x0081}, {0x82, 0x0082}, {0x83, 0x0083}, {0x84, 0x0084}, {0x85, 0x0085}, {0x86, 0x0086}, {0x87, 0x0087}, {0x88, 0x0088}, {0x89, 0x0089}, {0x8A, 0x008A}, {0x8B, 0x008B}, {0x8C, 0x008C}, {0x8D, 0x008D}, {0x8E, 0x008E}, {0x8F, 0x008F}, {0x90, 0x0090}, {0x91, 0x0091}, {0x92, 0x0092}, {0x93, 0x0093}, {0x94, 0x0094}, {0x95, 0x0095}, {0x96, 0x0096}, {0x97, 0x0097}, {0x98, 0x0098}, {0x99, 0x0099}, {0x9A, 0x009A}, {0x9B, 0x009B}, {0x9C, 0x009C}, {0x9D, 0x009D}, {0x9E, 0x009E}, {0x9F, 0x009F}, {0xA0, 0x00A0}, {0xA1, 0x0104}, {0xA2, 0x0138}, {0xA3, 0x0156}, {0xA4, 0x00A4}, {0xA5, 0x0128}, {0xA6, 0x013B}, {0xA7, 0x00A7}, {0xA8, 0x00A8}, {0xA9, 0x0160}, {0xAA, 0x0112}, {0xAB, 0x0122}, {0xAC, 0x0166}, {0xAD, 0x00AD}, {0xAE, 0x017D}, {0xAF, 0x00AF}, {0xB0, 0x00B0}, {0xB1, 0x0105}, {0xB2, 0x02DB}, {0xB3, 0x0157}, {0xB4, 0x00B4}, {0xB5, 0x0129}, {0xB6, 0x013C}, {0xB7, 0x02C7}, {0xB8, 0x00B8}, {0xB9, 0x0161}, {0xBA, 0x0113}, {0xBB, 0x0123}, {0xBC, 0x0167}, {0xBD, 0x014A}, {0xBE, 0x017E}, {0xBF, 0x014B}, {0xC0, 0x0100}, {0xC1, 0x00C1}, {0xC2, 0x00C2}, {0xC3, 0x00C3}, {0xC4, 0x00C4}, {0xC5, 0x00C5}, {0xC6, 0x00C6}, {0xC7, 0x012E}, {0xC8, 0x010C}, {0xC9, 0x00C9}, {0xCA, 0x0118}, {0xCB, 0x00CB}, {0xCC, 0x0116}, {0xCD, 0x00CD}, {0xCE, 0x00CE}, {0xCF, 0x012A}, {0xD0, 0x0110}, {0xD1, 0x0145}, {0xD2, 0x014C}, {0xD3, 0x0136}, {0xD4, 0x00D4}, {0xD5, 0x00D5}, {0xD6, 0x00D6}, {0xD7, 0x00D7}, {0xD8, 0x00D8}, {0xD9, 0x0172}, {0xDA, 0x00DA}, {0xDB, 0x00DB}, {0xDC, 0x00DC}, {0xDD, 0x0168}, {0xDE, 0x016A}, {0xDF, 0x00DF}, {0xE0, 0x0101}, {0xE1, 0x00E1}, {0xE2, 0x00E2}, {0xE3, 0x00E3}, {0xE4, 0x00E4}, {0xE5, 0x00E5}, {0xE6, 0x00E6}, {0xE7, 0x012F}, {0xE8, 0x010D}, {0xE9, 0x00E9}, {0xEA, 0x0119}, {0xEB, 0x00EB}, {0xEC, 0x0117}, {0xED, 0x00ED}, {0xEE, 0x00EE}, {0xEF, 0x012B}, {0xF0, 0x0111}, {0xF1, 0x0146}, {0xF2, 0x014D}, {0xF3, 0x0137}, {0xF4, 0x00F4}, {0xF5, 0x00F5}, {0xF6, 0x00F6}, {0xF7, 0x00F7}, {0xF8, 0x00F8}, {0xF9, 0x0173}, {0xFA, 0x00FA}, {0xFB, 0x00FB}, {0xFC, 0x00FC}, {0xFD, 0x0169}, {0xFE, 0x016B}, {0xFF, 0x02D9}, {0, 0} }; char *aliases_8859_4 [] = {"ISO-8859-4", "8859-4", "iso-ir-110", "latin4", "l4", NULL }; struct table_entry table_8859_5 [] = { {0x80, 0x0080}, {0x81, 0x0081}, {0x82, 0x0082}, {0x83, 0x0083}, {0x84, 0x0084}, {0x85, 0x0085}, {0x86, 0x0086}, {0x87, 0x0087}, {0x88, 0x0088}, {0x89, 0x0089}, {0x8A, 0x008A}, {0x8B, 0x008B}, {0x8C, 0x008C}, {0x8D, 0x008D}, {0x8E, 0x008E}, {0x8F, 0x008F}, {0x90, 0x0090}, {0x91, 0x0091}, {0x92, 0x0092}, {0x93, 0x0093}, {0x94, 0x0094}, {0x95, 0x0095}, {0x96, 0x0096}, {0x97, 0x0097}, {0x98, 0x0098}, {0x99, 0x0099}, {0x9A, 0x009A}, {0x9B, 0x009B}, {0x9C, 0x009C}, {0x9D, 0x009D}, {0x9E, 0x009E}, {0x9F, 0x009F}, {0xA0, 0x00A0}, {0xA1, 0x0401}, {0xA2, 0x0402}, {0xA3, 0x0403}, {0xA4, 0x0404}, {0xA5, 0x0405}, {0xA6, 0x0406}, {0xA7, 0x0407}, {0xA8, 0x0408}, {0xA9, 0x0409}, {0xAA, 0x040A}, {0xAB, 0x040B}, {0xAC, 0x040C}, {0xAD, 0x00AD}, {0xAE, 0x040E}, {0xAF, 0x040F}, {0xB0, 0x0410}, {0xB1, 0x0411}, {0xB2, 0x0412}, {0xB3, 0x0413}, {0xB4, 0x0414}, {0xB5, 0x0415}, {0xB6, 0x0416}, {0xB7, 0x0417}, {0xB8, 0x0418}, {0xB9, 0x0419}, {0xBA, 0x041A}, {0xBB, 0x041B}, {0xBC, 0x041C}, {0xBD, 0x041D}, {0xBE, 0x041E}, {0xBF, 0x041F}, {0xC0, 0x0420}, {0xC1, 0x0421}, {0xC2, 0x0422}, {0xC3, 0x0423}, {0xC4, 0x0424}, {0xC5, 0x0425}, {0xC6, 0x0426}, {0xC7, 0x0427}, {0xC8, 0x0428}, {0xC9, 0x0429}, {0xCA, 0x042A}, {0xCB, 0x042B}, {0xCC, 0x042C}, {0xCD, 0x042D}, {0xCE, 0x042E}, {0xCF, 0x042F}, {0xD0, 0x0430}, {0xD1, 0x0431}, {0xD2, 0x0432}, {0xD3, 0x0433}, {0xD4, 0x0434}, {0xD5, 0x0435}, {0xD6, 0x0436}, {0xD7, 0x0437}, {0xD8, 0x0438}, {0xD9, 0x0439}, {0xDA, 0x043A}, {0xDB, 0x043B}, {0xDC, 0x043C}, {0xDD, 0x043D}, {0xDE, 0x043E}, {0xDF, 0x043F}, {0xE0, 0x0440}, {0xE1, 0x0441}, {0xE2, 0x0442}, {0xE3, 0x0443}, {0xE4, 0x0444}, {0xE5, 0x0445}, {0xE6, 0x0446}, {0xE7, 0x0447}, {0xE8, 0x0448}, {0xE9, 0x0449}, {0xEA, 0x044A}, {0xEB, 0x044B}, {0xEC, 0x044C}, {0xED, 0x044D}, {0xEE, 0x044E}, {0xEF, 0x044F}, {0xF0, 0x2116}, {0xF1, 0x0451}, {0xF2, 0x0452}, {0xF3, 0x0453}, {0xF4, 0x0454}, {0xF5, 0x0455}, {0xF6, 0x0456}, {0xF7, 0x0457}, {0xF8, 0x0458}, {0xF9, 0x0459}, {0xFA, 0x045A}, {0xFB, 0x045B}, {0xFC, 0x045C}, {0xFD, 0x00A7}, {0xFE, 0x045E}, {0xFF, 0x045F}, {0, 0} }; char *aliases_8859_5 [] = {"ISO-8895-5", "8859-5" , NULL }; struct table_entry table_8859_7 [] = { {0x80, 0x0080}, {0x81, 0x0081}, {0x82, 0x0082}, {0x83, 0x0083}, {0x84, 0x0084}, {0x85, 0x0085}, {0x86, 0x0086}, {0x87, 0x0087}, {0x88, 0x0088}, {0x89, 0x0089}, {0x8A, 0x008A}, {0x8B, 0x008B}, {0x8C, 0x008C}, {0x8D, 0x008D}, {0x8E, 0x008E}, {0x8F, 0x008F}, {0x90, 0x0090}, {0x91, 0x0091}, {0x92, 0x0092}, {0x93, 0x0093}, {0x94, 0x0094}, {0x95, 0x0095}, {0x96, 0x0096}, {0x97, 0x0097}, {0x98, 0x0098}, {0x99, 0x0099}, {0x9A, 0x009A}, {0x9B, 0x009B}, {0x9C, 0x009C}, {0x9D, 0x009D}, {0x9E, 0x009E}, {0x9F, 0x009F}, {0xA0, 0x00A0}, {0xA1, 0x2018}, {0xA2, 0x2019}, {0xA3, 0x00A3}, {0xA6, 0x00A6}, {0xA7, 0x00A7}, {0xA8, 0x00A8}, {0xA9, 0x00A9}, {0xAB, 0x00AB}, {0xAC, 0x00AC}, {0xAD, 0x00AD}, {0xAF, 0x2015}, {0xB0, 0x00B0}, {0xB1, 0x00B1}, {0xB2, 0x00B2}, {0xB3, 0x00B3}, {0xB4, 0x0384}, {0xB5, 0x0385}, {0xB6, 0x0386}, {0xB7, 0x00B7}, {0xB8, 0x0388}, {0xB9, 0x0389}, {0xBA, 0x038A}, {0xBB, 0x00BB}, {0xBC, 0x038C}, {0xBD, 0x00BD}, {0xBE, 0x038E}, {0xBF, 0x038F}, {0xC0, 0x0390}, {0xC1, 0x0391}, {0xC2, 0x0392}, {0xC3, 0x0393}, {0xC4, 0x0394}, {0xC5, 0x0395}, {0xC6, 0x0396}, {0xC7, 0x0397}, {0xC8, 0x0398}, {0xC9, 0x0399}, {0xCA, 0x039A}, {0xCB, 0x039B}, {0xCC, 0x039C}, {0xCD, 0x039D}, {0xCE, 0x039E}, {0xCF, 0x039F}, {0xD0, 0x03A0}, {0xD1, 0x03A1}, {0xD3, 0x03A3}, {0xD4, 0x03A4}, {0xD5, 0x03A5}, {0xD6, 0x03A6}, {0xD7, 0x03A7}, {0xD8, 0x03A8}, {0xD9, 0x03A9}, {0xDA, 0x03AA}, {0xDB, 0x03AB}, {0xDC, 0x03AC}, {0xDD, 0x03AD}, {0xDE, 0x03AE}, {0xDF, 0x03AF}, {0xE0, 0x03B0}, {0xE1, 0x03B1}, {0xE2, 0x03B2}, {0xE3, 0x03B3}, {0xE4, 0x03B4}, {0xE5, 0x03B5}, {0xE6, 0x03B6}, {0xE7, 0x03B7}, {0xE8, 0x03B8}, {0xE9, 0x03B9}, {0xEA, 0x03BA}, {0xEB, 0x03BB}, {0xEC, 0x03BC}, {0xED, 0x03BD}, {0xEE, 0x03BE}, {0xEF, 0x03BF}, {0xF0, 0x03C0}, {0xF1, 0x03C1}, {0xF2, 0x03C2}, {0xF3, 0x03C3}, {0xF4, 0x03C4}, {0xF5, 0x03C5}, {0xF6, 0x03C6}, {0xF7, 0x03C7}, {0xF8, 0x03C8}, {0xF9, 0x03C9}, {0xFA, 0x03CA}, {0xFB, 0x03CB}, {0xFC, 0x03CC}, {0xFD, 0x03CD}, {0xFE, 0x03CE}, {0, 0} }; char *aliases_8859_7 [] = {"ISO-8859-7", "8859-7", "iso-ir-126", "elot-928", NULL }; struct table_entry table_8859_9 [] = { {0x80, 0x0080}, {0x81, 0x0081}, {0x82, 0x0082}, {0x83, 0x0083}, {0x84, 0x0084}, {0x85, 0x0085}, {0x86, 0x0086}, {0x87, 0x0087}, {0x88, 0x0088}, {0x89, 0x0089}, {0x8A, 0x008A}, {0x8B, 0x008B}, {0x8C, 0x008C}, {0x8D, 0x008D}, {0x8E, 0x008E}, {0x8F, 0x008F}, {0x90, 0x0090}, {0x91, 0x0091}, {0x92, 0x0092}, {0x93, 0x0093}, {0x94, 0x0094}, {0x95, 0x0095}, {0x96, 0x0096}, {0x97, 0x0097}, {0x98, 0x0098}, {0x99, 0x0099}, {0x9A, 0x009A}, {0x9B, 0x009B}, {0x9C, 0x009C}, {0x9D, 0x009D}, {0x9E, 0x009E}, {0x9F, 0x009F}, {0xA0, 0x00A0}, {0xA1, 0x00A1}, {0xA2, 0x00A2}, {0xA3, 0x00A3}, {0xA4, 0x00A4}, {0xA5, 0x00A5}, {0xA6, 0x00A6}, {0xA7, 0x00A7}, {0xA8, 0x00A8}, {0xA9, 0x00A9}, {0xAA, 0x00AA}, {0xAB, 0x00AB}, {0xAC, 0x00AC}, {0xAD, 0x00AD}, {0xAE, 0x00AE}, {0xAF, 0x00AF}, {0xB0, 0x00B0}, {0xB1, 0x00B1}, {0xB2, 0x00B2}, {0xB3, 0x00B3}, {0xB4, 0x00B4}, {0xB5, 0x00B5}, {0xB6, 0x00B6}, {0xB7, 0x00B7}, {0xB8, 0x00B8}, {0xB9, 0x00B9}, {0xBA, 0x00BA}, {0xBB, 0x00BB}, {0xBC, 0x00BC}, {0xBD, 0x00BD}, {0xBE, 0x00BE}, {0xBF, 0x00BF}, {0xC0, 0x00C0}, {0xC1, 0x00C1}, {0xC2, 0x00C2}, {0xC3, 0x00C3}, {0xC4, 0x00C4}, {0xC5, 0x00C5}, {0xC6, 0x00C6}, {0xC7, 0x00C7}, {0xC8, 0x00C8}, {0xC9, 0x00C9}, {0xCA, 0x00CA}, {0xCB, 0x00CB}, {0xCC, 0x00CC}, {0xCD, 0x00CD}, {0xCE, 0x00CE}, {0xCF, 0x00CF}, {0xD0, 0x011E}, {0xD1, 0x00D1}, {0xD2, 0x00D2}, {0xD3, 0x00D3}, {0xD4, 0x00D4}, {0xD5, 0x00D5}, {0xD6, 0x00D6}, {0xD7, 0x00D7}, {0xD8, 0x00D8}, {0xD9, 0x00D9}, {0xDA, 0x00DA}, {0xDB, 0x00DB}, {0xDC, 0x00DC}, {0xDD, 0x0130}, {0xDE, 0x015E}, {0xDF, 0x00DF}, {0xE0, 0x00E0}, {0xE1, 0x00E1}, {0xE2, 0x00E2}, {0xE3, 0x00E3}, {0xE4, 0x00E4}, {0xE5, 0x00E5}, {0xE6, 0x00E6}, {0xE7, 0x00E7}, {0xE8, 0x00E8}, {0xE9, 0x00E9}, {0xEA, 0x00EA}, {0xEB, 0x00EB}, {0xEC, 0x00EC}, {0xED, 0x00ED}, {0xEE, 0x00EE}, {0xEF, 0x00EF}, {0xF0, 0x011F}, {0xF1, 0x00F1}, {0xF2, 0x00F2}, {0xF3, 0x00F3}, {0xF4, 0x00F4}, {0xF5, 0x00F5}, {0xF6, 0x00F6}, {0xF7, 0x00F7}, {0xF8, 0x00F8}, {0xF9, 0x00F9}, {0xFA, 0x00FA}, {0xFB, 0x00FB}, {0xFC, 0x00FC}, {0xFD, 0x0131}, {0xFE, 0x015F}, {0xFF, 0x00FF}, {0, 0} }; char *aliases_8859_9 [] = {"ISO-8895-9", "8859-9" , NULL }; struct table_entry table_8859_13 [] = { {0x80, 0x0080}, {0x81, 0x0081}, {0x82, 0x0082}, {0x83, 0x0083}, {0x84, 0x0084}, {0x85, 0x0085}, {0x86, 0x0086}, {0x87, 0x0087}, {0x88, 0x0088}, {0x89, 0x0089}, {0x8A, 0x008A}, {0x8B, 0x008B}, {0x8C, 0x008C}, {0x8D, 0x008D}, {0x8E, 0x008E}, {0x8F, 0x008F}, {0x90, 0x0090}, {0x91, 0x0091}, {0x92, 0x0092}, {0x93, 0x0093}, {0x94, 0x0094}, {0x95, 0x0095}, {0x96, 0x0096}, {0x97, 0x0097}, {0x98, 0x0098}, {0x99, 0x0099}, {0x9A, 0x009A}, {0x9B, 0x009B}, {0x9C, 0x009C}, {0x9D, 0x009D}, {0x9E, 0x009E}, {0x9F, 0x009F}, {0xA0, 0x00A0}, {0xA1, 0x201D}, {0xA2, 0x00A2}, {0xA3, 0x00A3}, {0xA4, 0x00A4}, {0xA5, 0x201E}, {0xA6, 0x00A6}, {0xA7, 0x00A7}, {0xA8, 0x00D8}, {0xA9, 0x00A9}, {0xAA, 0x0156}, {0xAB, 0x00AB}, {0xAC, 0x00AC}, {0xAD, 0x00AD}, {0xAE, 0x00AE}, {0xAF, 0x00C6}, {0xB0, 0x00B0}, {0xB1, 0x00B1}, {0xB2, 0x00B2}, {0xB3, 0x00B3}, {0xB4, 0x201C}, {0xB5, 0x00B5}, {0xB6, 0x00B6}, {0xB7, 0x00B7}, {0xB8, 0x00F8}, {0xB9, 0x00B9}, {0xBA, 0x0157}, {0xBB, 0x00BB}, {0xBC, 0x00BC}, {0xBD, 0x00BD}, {0xBE, 0x00BE}, {0xBF, 0x00E6}, {0xC0, 0x0104}, {0xC1, 0x012E}, {0xC2, 0x0100}, {0xC3, 0x0106}, {0xC4, 0x00C4}, {0xC5, 0x00C5}, {0xC6, 0x0118}, {0xC7, 0x0112}, {0xC8, 0x010C}, {0xC9, 0x00C9}, {0xCA, 0x0179}, {0xCB, 0x0116}, {0xCC, 0x0122}, {0xCD, 0x0136}, {0xCE, 0x012A}, {0xCF, 0x013B}, {0xD0, 0x0160}, {0xD1, 0x0143}, {0xD2, 0x0145}, {0xD3, 0x00D3}, {0xD4, 0x014C}, {0xD5, 0x00D5}, {0xD6, 0x00D6}, {0xD7, 0x00D7}, {0xD8, 0x0172}, {0xD9, 0x0141}, {0xDA, 0x015A}, {0xDB, 0x016A}, {0xDC, 0x00DC}, {0xDD, 0x017B}, {0xDE, 0x017D}, {0xDF, 0x00DF}, {0xE0, 0x0105}, {0xE1, 0x012F}, {0xE2, 0x0101}, {0xE3, 0x0107}, {0xE4, 0x00E4}, {0xE5, 0x00E5}, {0xE6, 0x0119}, {0xE7, 0x0113}, {0xE8, 0x010D}, {0xE9, 0x00E9}, {0xEA, 0x017A}, {0xEB, 0x0117}, {0xEC, 0x0123}, {0xED, 0x0137}, {0xEE, 0x012B}, {0xEF, 0x013C}, {0xF0, 0x0161}, {0xF1, 0x0144}, {0xF2, 0x0146}, {0xF3, 0x00F3}, {0xF4, 0x014D}, {0xF5, 0x00F5}, {0xF6, 0x00F6}, {0xF7, 0x00F7}, {0xF8, 0x0173}, {0xF9, 0x0142}, {0xFA, 0x015B}, {0xFB, 0x016B}, {0xFC, 0x00FC}, {0xFD, 0x017C}, {0xFE, 0x017E}, {0xFF, 0x2019}, {0, 0} }; char *aliases_8859_13 [] = {"ISO-8859-13", "8859-13", "iso-ir-179", "latin7", "l7", NULL }; struct table_entry table_cp1250 [] = { {0x80, 0x20AC}, {0x82, 0x201A}, {0x84, 0x201E}, {0x85, 0x2026}, {0x86, 0x2020}, {0x87, 0x2021}, {0x89, 0x2030}, {0x8A, 0x0160}, {0x8B, 0x2039}, {0x8C, 0x015A}, {0x8D, 0x0164}, {0x8E, 0x017D}, {0x8F, 0x0179}, {0x91, 0x2018}, {0x92, 0x2019}, {0x93, 0x201C}, {0x94, 0x201D}, {0x95, 0x2022}, {0x96, 0x2013}, {0x97, 0x2014}, {0x99, 0x2122}, {0x9A, 0x0161}, {0x9B, 0x203A}, {0x9C, 0x015B}, {0x9D, 0x0165}, {0x9E, 0x017E}, {0x9F, 0x017A}, {0xA0, 0x00A0}, {0xA1, 0x02C7}, {0xA2, 0x02D8}, {0xA3, 0x0141}, {0xA4, 0x00A4}, {0xA5, 0x0104}, {0xA6, 0x00A6}, {0xA7, 0x00A7}, {0xA8, 0x00A8}, {0xA9, 0x00A9}, {0xAA, 0x015E}, {0xAB, 0x00AB}, {0xAC, 0x00AC}, {0xAD, 0x00AD}, {0xAE, 0x00AE}, {0xAF, 0x017B}, {0xB0, 0x00B0}, {0xB1, 0x00B1}, {0xB2, 0x02DB}, {0xB3, 0x0142}, {0xB4, 0x00B4}, {0xB5, 0x00B5}, {0xB6, 0x00B6}, {0xB7, 0x00B7}, {0xB8, 0x00B8}, {0xB9, 0x0105}, {0xBA, 0x015F}, {0xBB, 0x00BB}, {0xBC, 0x013D}, {0xBD, 0x02DD}, {0xBE, 0x013E}, {0xBF, 0x017C}, {0xC0, 0x0154}, {0xC1, 0x00C1}, {0xC2, 0x00C2}, {0xC3, 0x0102}, {0xC4, 0x00C4}, {0xC5, 0x0139}, {0xC6, 0x0106}, {0xC7, 0x00C7}, {0xC8, 0x010C}, {0xC9, 0x00C9}, {0xCA, 0x0118}, {0xCB, 0x00CB}, {0xCC, 0x011A}, {0xCD, 0x00CD}, {0xCE, 0x00CE}, {0xCF, 0x010E}, {0xD0, 0x0110}, {0xD1, 0x0143}, {0xD2, 0x0147}, {0xD3, 0x00D3}, {0xD4, 0x00D4}, {0xD5, 0x0150}, {0xD6, 0x00D6}, {0xD7, 0x00D7}, {0xD8, 0x0158}, {0xD9, 0x016E}, {0xDA, 0x00DA}, {0xDB, 0x0170}, {0xDC, 0x00DC}, {0xDD, 0x00DD}, {0xDE, 0x0162}, {0xDF, 0x00DF}, {0xE0, 0x0155}, {0xE1, 0x00E1}, {0xE2, 0x00E2}, {0xE3, 0x0103}, {0xE4, 0x00E4}, {0xE5, 0x013A}, {0xE6, 0x0107}, {0xE7, 0x00E7}, {0xE8, 0x010D}, {0xE9, 0x00E9}, {0xEA, 0x0119}, {0xEB, 0x00EB}, {0xEC, 0x011B}, {0xED, 0x00ED}, {0xEE, 0x00EE}, {0xEF, 0x010F}, {0xF0, 0x0111}, {0xF1, 0x0144}, {0xF2, 0x0148}, {0xF3, 0x00F3}, {0xF4, 0x00F4}, {0xF5, 0x0151}, {0xF6, 0x00F6}, {0xF7, 0x00F7}, {0xF8, 0x0159}, {0xF9, 0x016F}, {0xFA, 0x00FA}, {0xFB, 0x0171}, {0xFC, 0x00FC}, {0xFD, 0x00FD}, {0xFE, 0x0163}, {0xFF, 0x02D9}, {0, 0} }; char *aliases_cp1250 [] = {"windows-1250", "1250", NULL }; struct table_entry table_cp1251 [] = { {0x80, 0x0402}, {0x81, 0x0403}, {0x82, 0x201A}, {0x83, 0x0453}, {0x84, 0x201E}, {0x85, 0x2026}, {0x86, 0x2020}, {0x87, 0x2021}, {0x88, 0x20AC}, {0x89, 0x2030}, {0x8A, 0x0409}, {0x8B, 0x2039}, {0x8C, 0x040A}, {0x8D, 0x040C}, {0x8E, 0x040B}, {0x8F, 0x040F}, {0x90, 0x0452}, {0x91, 0x2018}, {0x92, 0x2019}, {0x93, 0x201C}, {0x94, 0x201D}, {0x95, 0x2022}, {0x96, 0x2013}, {0x97, 0x2014}, {0x99, 0x2122}, {0x9A, 0x0459}, {0x9B, 0x203A}, {0x9C, 0x045A}, {0x9D, 0x045C}, {0x9E, 0x045B}, {0x9F, 0x045F}, {0xA0, 0x00A0}, {0xA1, 0x040E}, {0xA2, 0x045E}, {0xA3, 0x0408}, {0xA4, 0x00A4}, {0xA5, 0x0490}, {0xA6, 0x00A6}, {0xA7, 0x00A7}, {0xA8, 0x0401}, {0xA9, 0x00A9}, {0xAA, 0x0404}, {0xAB, 0x00AB}, {0xAC, 0x00AC}, {0xAD, 0x00AD}, {0xAE, 0x00AE}, {0xAF, 0x0407}, {0xB0, 0x00B0}, {0xB1, 0x00B1}, {0xB2, 0x0406}, {0xB3, 0x0456}, {0xB4, 0x0491}, {0xB5, 0x00B5}, {0xB6, 0x00B6}, {0xB7, 0x00B7}, {0xB8, 0x0451}, {0xB9, 0x2116}, {0xBA, 0x0454}, {0xBB, 0x00BB}, {0xBC, 0x0458}, {0xBD, 0x0405}, {0xBE, 0x0455}, {0xBF, 0x0457}, {0xC0, 0x0410}, {0xC1, 0x0411}, {0xC2, 0x0412}, {0xC3, 0x0413}, {0xC4, 0x0414}, {0xC5, 0x0415}, {0xC6, 0x0416}, {0xC7, 0x0417}, {0xC8, 0x0418}, {0xC9, 0x0419}, {0xCA, 0x041A}, {0xCB, 0x041B}, {0xCC, 0x041C}, {0xCD, 0x041D}, {0xCE, 0x041E}, {0xCF, 0x041F}, {0xD0, 0x0420}, {0xD1, 0x0421}, {0xD2, 0x0422}, {0xD3, 0x0423}, {0xD4, 0x0424}, {0xD5, 0x0425}, {0xD6, 0x0426}, {0xD7, 0x0427}, {0xD8, 0x0428}, {0xD9, 0x0429}, {0xDA, 0x042A}, {0xDB, 0x042B}, {0xDC, 0x042C}, {0xDD, 0x042D}, {0xDE, 0x042E}, {0xDF, 0x042F}, {0xE0, 0x0430}, {0xE1, 0x0431}, {0xE2, 0x0432}, {0xE3, 0x0433}, {0xE4, 0x0434}, {0xE5, 0x0435}, {0xE6, 0x0436}, {0xE7, 0x0437}, {0xE8, 0x0438}, {0xE9, 0x0439}, {0xEA, 0x043A}, {0xEB, 0x043B}, {0xEC, 0x043C}, {0xED, 0x043D}, {0xEE, 0x043E}, {0xEF, 0x043F}, {0xF0, 0x0440}, {0xF1, 0x0441}, {0xF2, 0x0442}, {0xF3, 0x0443}, {0xF4, 0x0444}, {0xF5, 0x0445}, {0xF6, 0x0446}, {0xF7, 0x0447}, {0xF8, 0x0448}, {0xF9, 0x0449}, {0xFA, 0x044A}, {0xFB, 0x044B}, {0xFC, 0x044C}, {0xFD, 0x044D}, {0xFE, 0x044E}, {0xFF, 0x044F}, {0, 0} }; char *aliases_cp1251 [] = {"windows-1251", "1251", NULL }; struct table_entry table_cp1257 [] = { {0x80, 0x20AC}, {0x82, 0x201A}, {0x84, 0x201E}, {0x85, 0x2026}, {0x86, 0x2020}, {0x87, 0x2021}, {0x89, 0x2030}, {0x8B, 0x2039}, {0x8D, 0x00A8}, {0x8E, 0x02C7}, {0x8F, 0x00B8}, {0x91, 0x2018}, {0x92, 0x2019}, {0x93, 0x201C}, {0x94, 0x201D}, {0x95, 0x2022}, {0x96, 0x2013}, {0x97, 0x2014}, {0x99, 0x2122}, {0x9B, 0x203A}, {0x9D, 0x00AF}, {0x9E, 0x02DB}, {0xA0, 0x00A0}, {0xA2, 0x00A2}, {0xA3, 0x00A3}, {0xA4, 0x00A4}, {0xA6, 0x00A6}, {0xA7, 0x00A7}, {0xA8, 0x00D8}, {0xA9, 0x00A9}, {0xAA, 0x0156}, {0xAB, 0x00AB}, {0xAC, 0x00AC}, {0xAD, 0x00AD}, {0xAE, 0x00AE}, {0xAF, 0x00C6}, {0xB0, 0x00B0}, {0xB1, 0x00B1}, {0xB2, 0x00B2}, {0xB3, 0x00B3}, {0xB4, 0x00B4}, {0xB5, 0x00B5}, {0xB6, 0x00B6}, {0xB7, 0x00B7}, {0xB8, 0x00F8}, {0xB9, 0x00B9}, {0xBA, 0x0157}, {0xBB, 0x00BB}, {0xBC, 0x00BC}, {0xBD, 0x00BD}, {0xBE, 0x00BE}, {0xBF, 0x00E6}, {0xC0, 0x0104}, {0xC1, 0x012E}, {0xC2, 0x0100}, {0xC3, 0x0106}, {0xC4, 0x00C4}, {0xC5, 0x00C5}, {0xC6, 0x0118}, {0xC7, 0x0112}, {0xC8, 0x010C}, {0xC9, 0x00C9}, {0xCA, 0x0179}, {0xCB, 0x0116}, {0xCC, 0x0122}, {0xCD, 0x0136}, {0xCE, 0x012A}, {0xCF, 0x013B}, {0xD0, 0x0160}, {0xD1, 0x0143}, {0xD2, 0x0145}, {0xD3, 0x00D3}, {0xD4, 0x014C}, {0xD5, 0x00D5}, {0xD6, 0x00D6}, {0xD7, 0x00D7}, {0xD8, 0x0172}, {0xD9, 0x0141}, {0xDA, 0x015A}, {0xDB, 0x016A}, {0xDC, 0x00DC}, {0xDD, 0x017B}, {0xDE, 0x017D}, {0xDF, 0x00DF}, {0xE0, 0x0105}, {0xE1, 0x012F}, {0xE2, 0x0101}, {0xE3, 0x0107}, {0xE4, 0x00E4}, {0xE5, 0x00E5}, {0xE6, 0x0119}, {0xE7, 0x0113}, {0xE8, 0x010D}, {0xE9, 0x00E9}, {0xEA, 0x017A}, {0xEB, 0x0117}, {0xEC, 0x0123}, {0xED, 0x0137}, {0xEE, 0x012B}, {0xEF, 0x013C}, {0xF0, 0x0161}, {0xF1, 0x0144}, {0xF2, 0x0146}, {0xF3, 0x00F3}, {0xF4, 0x014D}, {0xF5, 0x00F5}, {0xF6, 0x00F6}, {0xF7, 0x00F7}, {0xF8, 0x0173}, {0xF9, 0x0142}, {0xFA, 0x015B}, {0xFB, 0x016B}, {0xFC, 0x00FC}, {0xFD, 0x017C}, {0xFE, 0x017E}, {0xFF, 0x02D9}, {0, 0} }; char *aliases_cp1257 [] = {"windows-1257", "1257", NULL }; struct table_entry table_cp437 [] = { {0x80, 0x00c7}, {0x81, 0x00fc}, {0x82, 0x00e9}, {0x83, 0x00e2}, {0x84, 0x00e4}, {0x85, 0x00e0}, {0x86, 0x00e5}, {0x87, 0x00e7}, {0x88, 0x00ea}, {0x89, 0x00eb}, {0x8a, 0x00e8}, {0x8b, 0x00ef}, {0x8c, 0x00ee}, {0x8d, 0x00ec}, {0x8e, 0x00c4}, {0x8f, 0x00c5}, {0x90, 0x00c9}, {0x91, 0x00e6}, {0x92, 0x00c6}, {0x93, 0x00f4}, {0x94, 0x00f6}, {0x95, 0x00f2}, {0x96, 0x00fb}, {0x97, 0x00f9}, {0x98, 0x00ff}, {0x99, 0x00d6}, {0x9a, 0x00dc}, {0x9b, 0x00a2}, {0x9c, 0x00a3}, {0x9d, 0x00a5}, {0x9e, 0x20a7}, {0x9f, 0x0192}, {0xa0, 0x00e1}, {0xa1, 0x00ed}, {0xa2, 0x00f3}, {0xa3, 0x00fa}, {0xa4, 0x00f1}, {0xa5, 0x00d1}, {0xa6, 0x00aa}, {0xa7, 0x00ba}, {0xa8, 0x00bf}, {0xa9, 0x2310}, {0xaa, 0x00ac}, {0xab, 0x00bd}, {0xac, 0x00bc}, {0xad, 0x00a1}, {0xae, 0x00ab}, {0xaf, 0x00bb}, {0xb0, 0x2591}, {0xb1, 0x2592}, {0xb2, 0x2593}, {0xb3, 0x2502}, {0xb4, 0x2524}, {0xb5, 0x2561}, {0xb6, 0x2562}, {0xb7, 0x2556}, {0xb8, 0x2555}, {0xb9, 0x2563}, {0xba, 0x2551}, {0xbb, 0x2557}, {0xbc, 0x255d}, {0xbd, 0x255c}, {0xbe, 0x255b}, {0xbf, 0x2510}, {0xc0, 0x2514}, {0xc1, 0x2534}, {0xc2, 0x252c}, {0xc3, 0x251c}, {0xc4, 0x2500}, {0xc5, 0x253c}, {0xc6, 0x255e}, {0xc7, 0x255f}, {0xc8, 0x255a}, {0xc9, 0x2554}, {0xca, 0x2569}, {0xcb, 0x2566}, {0xcc, 0x2560}, {0xcd, 0x2550}, {0xce, 0x256c}, {0xcf, 0x2567}, {0xd0, 0x2568}, {0xd1, 0x2564}, {0xd2, 0x2565}, {0xd3, 0x2559}, {0xd4, 0x2558}, {0xd5, 0x2552}, {0xd6, 0x2553}, {0xd7, 0x256b}, {0xd8, 0x256a}, {0xd9, 0x2518}, {0xda, 0x250c}, {0xdb, 0x2588}, {0xdc, 0x2584}, {0xdd, 0x258c}, {0xde, 0x2590}, {0xdf, 0x2580}, {0xe0, 0x03b1}, {0xe1, 0x00df}, {0xe2, 0x0393}, {0xe3, 0x03c0}, {0xe4, 0x03a3}, {0xe5, 0x03c3}, {0xe6, 0x00b5}, {0xe7, 0x03c4}, {0xe8, 0x03a6}, {0xe9, 0x0398}, {0xea, 0x03a9}, {0xeb, 0x03b4}, {0xec, 0x221e}, {0xed, 0x03c6}, {0xee, 0x03b5}, {0xef, 0x2229}, {0xf0, 0x2261}, {0xf1, 0x00b1}, {0xf2, 0x2265}, {0xf3, 0x2264}, {0xf4, 0x2320}, {0xf5, 0x2321}, {0xf6, 0x00f7}, {0xf7, 0x2248}, {0xf8, 0x00b0}, {0xf9, 0x2219}, {0xfa, 0x00b7}, {0xfb, 0x221a}, {0xfc, 0x207f}, {0xfd, 0x00b2}, {0xfe, 0x25a0}, {0xff, 0x00a0}, {0, 0} }; char *aliases_cp437 [] = {"cp437", "437", NULL }; struct table_entry table_cp737 [] = { {0x80, 0x0391}, {0x81, 0x0392}, {0x82, 0x0393}, {0x83, 0x0394}, {0x84, 0x0395}, {0x85, 0x0396}, {0x86, 0x0397}, {0x87, 0x0398}, {0x88, 0x0399}, {0x89, 0x039a}, {0x8a, 0x039b}, {0x8b, 0x039c}, {0x8c, 0x039d}, {0x8d, 0x039e}, {0x8e, 0x039f}, {0x8f, 0x03a0}, {0x90, 0x03a1}, {0x91, 0x03a3}, {0x92, 0x03a4}, {0x93, 0x03a5}, {0x94, 0x03a6}, {0x95, 0x03a7}, {0x96, 0x03a8}, {0x97, 0x03a9}, {0x98, 0x03b1}, {0x99, 0x03b2}, {0x9a, 0x03b3}, {0x9b, 0x03b4}, {0x9c, 0x03b5}, {0x9d, 0x03b6}, {0x9e, 0x03b7}, {0x9f, 0x03b8}, {0xa0, 0x03b9}, {0xa1, 0x03ba}, {0xa2, 0x03bb}, {0xa3, 0x03bc}, {0xa4, 0x03bd}, {0xa5, 0x03be}, {0xa6, 0x03bf}, {0xa7, 0x03c0}, {0xa8, 0x03c1}, {0xa9, 0x03c3}, {0xaa, 0x03c2}, {0xab, 0x03c4}, {0xac, 0x03c5}, {0xad, 0x03c6}, {0xae, 0x03c7}, {0xaf, 0x03c8}, {0xb0, 0x2591}, {0xb1, 0x2592}, {0xb2, 0x2593}, {0xb3, 0x2502}, {0xb4, 0x2524}, {0xb5, 0x2561}, {0xb6, 0x2562}, {0xb7, 0x2556}, {0xb8, 0x2555}, {0xb9, 0x2563}, {0xba, 0x2551}, {0xbb, 0x2557}, {0xbc, 0x255d}, {0xbd, 0x255c}, {0xbe, 0x255b}, {0xbf, 0x2510}, {0xc0, 0x2514}, {0xc1, 0x2534}, {0xc2, 0x252c}, {0xc3, 0x251c}, {0xc4, 0x2500}, {0xc5, 0x253c}, {0xc6, 0x255e}, {0xc7, 0x255f}, {0xc8, 0x255a}, {0xc9, 0x2554}, {0xca, 0x2569}, {0xcb, 0x2566}, {0xcc, 0x2560}, {0xcd, 0x2550}, {0xce, 0x256c}, {0xcf, 0x2567}, {0xd0, 0x2568}, {0xd1, 0x2564}, {0xd2, 0x2565}, {0xd3, 0x2559}, {0xd4, 0x2558}, {0xd5, 0x2552}, {0xd6, 0x2553}, {0xd7, 0x256b}, {0xd8, 0x256a}, {0xd9, 0x2518}, {0xda, 0x250c}, {0xdb, 0x2588}, {0xdc, 0x2584}, {0xdd, 0x258c}, {0xde, 0x2590}, {0xdf, 0x2580}, {0xe0, 0x03c9}, {0xe1, 0x03ac}, {0xe2, 0x03ad}, {0xe3, 0x03ae}, {0xe4, 0x03ca}, {0xe5, 0x03af}, {0xe6, 0x03cc}, {0xe7, 0x03cd}, {0xe8, 0x03cb}, {0xe9, 0x03ce}, {0xea, 0x0386}, {0xeb, 0x0388}, {0xec, 0x0389}, {0xed, 0x038a}, {0xee, 0x038c}, {0xef, 0x038e}, {0xf0, 0x038f}, {0xf1, 0x00b1}, {0xf2, 0x2265}, {0xf3, 0x2264}, {0xf4, 0x03aa}, {0xf5, 0x03ab}, {0xf6, 0x00f7}, {0xf7, 0x2248}, {0xf8, 0x00b0}, {0xf9, 0x2219}, {0xfa, 0x00b7}, {0xfb, 0x221a}, {0xfc, 0x207f}, {0xfd, 0x00b2}, {0xfe, 0x25a0}, {0xff, 0x00a0}, {0, 0} }; char *aliases_cp737 [] = {"cp737", "737", NULL }; struct table_entry table_cp850 [] = { {0x80, 0x00c7}, {0x81, 0x00fc}, {0x82, 0x00e9}, {0x83, 0x00e2}, {0x84, 0x00e4}, {0x85, 0x00e0}, {0x86, 0x00e5}, {0x87, 0x00e7}, {0x88, 0x00ea}, {0x89, 0x00eb}, {0x8a, 0x00e8}, {0x8b, 0x00ef}, {0x8c, 0x00ee}, {0x8d, 0x00ec}, {0x8e, 0x00c4}, {0x8f, 0x00c5}, {0x90, 0x00c9}, {0x91, 0x00e6}, {0x92, 0x00c6}, {0x93, 0x00f4}, {0x94, 0x00f6}, {0x95, 0x00f2}, {0x96, 0x00fb}, {0x97, 0x00f9}, {0x98, 0x00ff}, {0x99, 0x00d6}, {0x9a, 0x00dc}, {0x9b, 0x00f8}, {0x9c, 0x00a3}, {0x9d, 0x00d8}, {0x9e, 0x00d7}, {0x9f, 0x0192}, {0xa0, 0x00e1}, {0xa1, 0x00ed}, {0xa2, 0x00f3}, {0xa3, 0x00fa}, {0xa4, 0x00f1}, {0xa5, 0x00d1}, {0xa6, 0x00aa}, {0xa7, 0x00ba}, {0xa8, 0x00bf}, {0xa9, 0x00ae}, {0xaa, 0x00ac}, {0xab, 0x00bd}, {0xac, 0x00bc}, {0xad, 0x00a1}, {0xae, 0x00ab}, {0xaf, 0x00bb}, {0xb0, 0x2591}, {0xb1, 0x2592}, {0xb2, 0x2593}, {0xb3, 0x2502}, {0xb4, 0x2524}, {0xb5, 0x00c1}, {0xb6, 0x00c2}, {0xb7, 0x00c0}, {0xb8, 0x00a9}, {0xb9, 0x2563}, {0xba, 0x2551}, {0xbb, 0x2557}, {0xbc, 0x255d}, {0xbd, 0x00a2}, {0xbe, 0x00a5}, {0xbf, 0x2510}, {0xc0, 0x2514}, {0xc1, 0x2534}, {0xc2, 0x252c}, {0xc3, 0x251c}, {0xc4, 0x2500}, {0xc5, 0x253c}, {0xc6, 0x00e3}, {0xc7, 0x00c3}, {0xc8, 0x255a}, {0xc9, 0x2554}, {0xca, 0x2569}, {0xcb, 0x2566}, {0xcc, 0x2560}, {0xcd, 0x2550}, {0xce, 0x256c}, {0xcf, 0x00a4}, {0xd0, 0x00f0}, {0xd1, 0x00d0}, {0xd2, 0x00ca}, {0xd3, 0x00cb}, {0xd4, 0x00c8}, {0xd5, 0x0131}, {0xd6, 0x00cd}, {0xd7, 0x00ce}, {0xd8, 0x00cf}, {0xd9, 0x2518}, {0xda, 0x250c}, {0xdb, 0x2588}, {0xdc, 0x2584}, {0xdd, 0x00a6}, {0xde, 0x00cc}, {0xdf, 0x2580}, {0xe0, 0x00d3}, {0xe1, 0x00df}, {0xe2, 0x00d4}, {0xe3, 0x00d2}, {0xe4, 0x00f5}, {0xe5, 0x00d5}, {0xe6, 0x00b5}, {0xe7, 0x00fe}, {0xe8, 0x00de}, {0xe9, 0x00da}, {0xea, 0x00db}, {0xeb, 0x00d9}, {0xec, 0x00fd}, {0xed, 0x00dd}, {0xee, 0x00af}, {0xef, 0x00b4}, {0xf0, 0x00ad}, {0xf1, 0x00b1}, {0xf2, 0x2017}, {0xf3, 0x00be}, {0xf4, 0x00b6}, {0xf5, 0x00a7}, {0xf6, 0x00f7}, {0xf7, 0x00b8}, {0xf8, 0x00b0}, {0xf9, 0x00a8}, {0xfa, 0x00b7}, {0xfb, 0x00b9}, {0xfc, 0x00b3}, {0xfd, 0x00b2}, {0xfe, 0x25a0}, {0xff, 0x00a0}, {0, 0} }; char *aliases_cp850 [] = {"cp850", "850", NULL }; struct table_entry table_cp852 [] = { {0x80, 0x00c7}, {0x81, 0x00fc}, {0x82, 0x00e9}, {0x83, 0x00e2}, {0x84, 0x00e4}, {0x85, 0x016f}, {0x86, 0x0107}, {0x87, 0x00e7}, {0x88, 0x0142}, {0x89, 0x00eb}, {0x8a, 0x0150}, {0x8b, 0x0151}, {0x8c, 0x00ee}, {0x8d, 0x0179}, {0x8e, 0x00c4}, {0x8f, 0x0106}, {0x90, 0x00c9}, {0x91, 0x0139}, {0x92, 0x013a}, {0x93, 0x00f4}, {0x94, 0x00f6}, {0x95, 0x013d}, {0x96, 0x013e}, {0x97, 0x015a}, {0x98, 0x015b}, {0x99, 0x00d6}, {0x9a, 0x00dc}, {0x9b, 0x0164}, {0x9c, 0x0165}, {0x9d, 0x0141}, {0x9e, 0x00d7}, {0x9f, 0x010d}, {0xa0, 0x00e1}, {0xa1, 0x00ed}, {0xa2, 0x00f3}, {0xa3, 0x00fa}, {0xa4, 0x0104}, {0xa5, 0x0105}, {0xa6, 0x017d}, {0xa7, 0x017e}, {0xa8, 0x0118}, {0xa9, 0x0119}, {0xaa, 0x00ac}, {0xab, 0x017a}, {0xac, 0x010c}, {0xad, 0x015f}, {0xae, 0x00ab}, {0xaf, 0x00bb}, {0xb0, 0x2591}, {0xb1, 0x2592}, {0xb2, 0x2593}, {0xb3, 0x2502}, {0xb4, 0x2524}, {0xb5, 0x00c1}, {0xb6, 0x00c2}, {0xb7, 0x011a}, {0xb8, 0x015e}, {0xb9, 0x2563}, {0xba, 0x2551}, {0xbb, 0x2557}, {0xbc, 0x255d}, {0xbd, 0x017b}, {0xbe, 0x017c}, {0xbf, 0x2510}, {0xc0, 0x2514}, {0xc1, 0x2534}, {0xc2, 0x252c}, {0xc3, 0x251c}, {0xc4, 0x2500}, {0xc5, 0x253c}, {0xc6, 0x0102}, {0xc7, 0x0103}, {0xc8, 0x255a}, {0xc9, 0x2554}, {0xca, 0x2569}, {0xcb, 0x2566}, {0xcc, 0x2560}, {0xcd, 0x2550}, {0xce, 0x256c}, {0xcf, 0x00a4}, {0xd0, 0x0111}, {0xd1, 0x0110}, {0xd2, 0x010e}, {0xd3, 0x00cb}, {0xd4, 0x010f}, {0xd5, 0x0147}, {0xd6, 0x00cd}, {0xd7, 0x00ce}, {0xd8, 0x011b}, {0xd9, 0x2518}, {0xda, 0x250c}, {0xdb, 0x2588}, {0xdc, 0x2584}, {0xdd, 0x0162}, {0xde, 0x016e}, {0xdf, 0x2580}, {0xe0, 0x00d3}, {0xe1, 0x00df}, {0xe2, 0x00d4}, {0xe3, 0x0143}, {0xe4, 0x0144}, {0xe5, 0x0148}, {0xe6, 0x0160}, {0xe7, 0x0161}, {0xe8, 0x0154}, {0xe9, 0x00da}, {0xea, 0x0155}, {0xeb, 0x0170}, {0xec, 0x00fd}, {0xed, 0x00dd}, {0xee, 0x0163}, {0xef, 0x00b4}, {0xf0, 0x00ad}, {0xf1, 0x02dd}, {0xf2, 0x02db}, {0xf3, 0x02c7}, {0xf4, 0x02d8}, {0xf5, 0x00a7}, {0xf6, 0x00f7}, {0xf7, 0x00b8}, {0xf8, 0x00b0}, {0xf9, 0x00a8}, {0xfa, 0x02d9}, {0xfb, 0x0171}, {0xfc, 0x0158}, {0xfd, 0x0159}, {0xfe, 0x25a0}, {0xff, 0x00a0}, {0, 0} }; char *aliases_cp852 [] = {"cp852", "852", NULL }; struct table_entry table_cp866 [] = { {0x80, 0x0410}, {0x81, 0x0411}, {0x82, 0x0412}, {0x83, 0x0413}, {0x84, 0x0414}, {0x85, 0x0415}, {0x86, 0x0416}, {0x87, 0x0417}, {0x88, 0x0418}, {0x89, 0x0419}, {0x8a, 0x041a}, {0x8b, 0x041b}, {0x8c, 0x041c}, {0x8d, 0x041d}, {0x8e, 0x041e}, {0x8f, 0x041f}, {0x90, 0x0420}, {0x91, 0x0421}, {0x92, 0x0422}, {0x93, 0x0423}, {0x94, 0x0424}, {0x95, 0x0425}, {0x96, 0x0426}, {0x97, 0x0427}, {0x98, 0x0428}, {0x99, 0x0429}, {0x9a, 0x042a}, {0x9b, 0x042b}, {0x9c, 0x042c}, {0x9d, 0x042d}, {0x9e, 0x042e}, {0x9f, 0x042f}, {0xa0, 0x0430}, {0xa1, 0x0431}, {0xa2, 0x0432}, {0xa3, 0x0433}, {0xa4, 0x0434}, {0xa5, 0x0435}, {0xa6, 0x0436}, {0xa7, 0x0437}, {0xa8, 0x0438}, {0xa9, 0x0439}, {0xaa, 0x043a}, {0xab, 0x043b}, {0xac, 0x043c}, {0xad, 0x043d}, {0xae, 0x043e}, {0xaf, 0x043f}, {0xb0, 0x2591}, {0xb1, 0x2592}, {0xb2, 0x2593}, {0xb3, 0x2502}, {0xb4, 0x2524}, {0xb5, 0x2561}, {0xb6, 0x2562}, {0xb7, 0x2556}, {0xb8, 0x2555}, {0xb9, 0x2563}, {0xba, 0x2551}, {0xbb, 0x2557}, {0xbc, 0x255d}, {0xbd, 0x255c}, {0xbe, 0x255b}, {0xbf, 0x2510}, {0xc0, 0x2514}, {0xc1, 0x2534}, {0xc2, 0x252c}, {0xc3, 0x251c}, {0xc4, 0x2500}, {0xc5, 0x253c}, {0xc6, 0x255e}, {0xc7, 0x255f}, {0xc8, 0x255a}, {0xc9, 0x2554}, {0xca, 0x2569}, {0xcb, 0x2566}, {0xcc, 0x2560}, {0xcd, 0x2550}, {0xce, 0x256c}, {0xcf, 0x2567}, {0xd0, 0x2568}, {0xd1, 0x2564}, {0xd2, 0x2565}, {0xd3, 0x2559}, {0xd4, 0x2558}, {0xd5, 0x2552}, {0xd6, 0x2553}, {0xd7, 0x256b}, {0xd8, 0x256a}, {0xd9, 0x2518}, {0xda, 0x250c}, {0xdb, 0x2588}, {0xdc, 0x2584}, {0xdd, 0x258c}, {0xde, 0x2590}, {0xdf, 0x2580}, {0xe0, 0x0440}, {0xe1, 0x0441}, {0xe2, 0x0442}, {0xe3, 0x0443}, {0xe4, 0x0444}, {0xe5, 0x0445}, {0xe6, 0x0446}, {0xe7, 0x0447}, {0xe8, 0x0448}, {0xe9, 0x0449}, {0xea, 0x044a}, {0xeb, 0x044b}, {0xec, 0x044c}, {0xed, 0x044d}, {0xee, 0x044e}, {0xef, 0x044f}, {0xf0, 0x0401}, {0xf1, 0x0451}, {0xf2, 0x0404}, {0xf3, 0x0454}, {0xf4, 0x0407}, {0xf5, 0x0457}, {0xf6, 0x040e}, {0xf7, 0x045e}, {0xf8, 0x00b0}, {0xf9, 0x2219}, {0xfa, 0x00b7}, {0xfb, 0x221a}, {0xfc, 0x2116}, {0xfd, 0x00a4}, {0xfe, 0x25a0}, {0xff, 0x00a0}, {0, 0} }; char *aliases_cp866 [] = {"cp866", "866", NULL }; struct table_entry table_cp1125 [] = { {0x80, 0x0410}, {0x81, 0x0411}, {0x82, 0x0412}, {0x83, 0x0413}, {0x84, 0x0414}, {0x85, 0x0415}, {0x86, 0x0416}, {0x87, 0x0417}, {0x88, 0x0418}, {0x89, 0x0419}, {0x8a, 0x041a}, {0x8b, 0x041b}, {0x8c, 0x041c}, {0x8d, 0x041d}, {0x8e, 0x041e}, {0x8f, 0x041f}, {0x90, 0x0420}, {0x91, 0x0421}, {0x92, 0x0422}, {0x93, 0x0423}, {0x94, 0x0424}, {0x95, 0x0425}, {0x96, 0x0426}, {0x97, 0x0427}, {0x98, 0x0428}, {0x99, 0x0429}, {0x9a, 0x042a}, {0x9b, 0x042b}, {0x9c, 0x042c}, {0x9d, 0x042d}, {0x9e, 0x042e}, {0x9f, 0x042f}, {0xa0, 0x0430}, {0xa1, 0x0431}, {0xa2, 0x0432}, {0xa3, 0x0433}, {0xa4, 0x0434}, {0xa5, 0x0435}, {0xa6, 0x0436}, {0xa7, 0x0437}, {0xa8, 0x0438}, {0xa9, 0x0439}, {0xaa, 0x043a}, {0xab, 0x043b}, {0xac, 0x043c}, {0xad, 0x043d}, {0xae, 0x043e}, {0xaf, 0x043f}, {0xb0, 0x2591}, {0xb1, 0x2592}, {0xb2, 0x2593}, {0xb3, 0x2502}, {0xb4, 0x2524}, {0xb5, 0x2561}, {0xb6, 0x2562}, {0xb7, 0x2556}, {0xb8, 0x2555}, {0xb9, 0x2563}, {0xba, 0x2551}, {0xbb, 0x2557}, {0xbc, 0x255d}, {0xbd, 0x255c}, {0xbe, 0x255b}, {0xbf, 0x2510}, {0xc0, 0x2514}, {0xc1, 0x2534}, {0xc2, 0x252c}, {0xc3, 0x251c}, {0xc4, 0x2500}, {0xc5, 0x253c}, {0xc6, 0x255e}, {0xc7, 0x255f}, {0xc8, 0x255a}, {0xc9, 0x2554}, {0xca, 0x2569}, {0xcb, 0x2566}, {0xcc, 0x2560}, {0xcd, 0x2550}, {0xce, 0x256c}, {0xcf, 0x2567}, {0xd0, 0x2568}, {0xd1, 0x2564}, {0xd2, 0x2565}, {0xd3, 0x2559}, {0xd4, 0x2558}, {0xd5, 0x2552}, {0xd6, 0x2553}, {0xd7, 0x256b}, {0xd8, 0x256a}, {0xd9, 0x2518}, {0xda, 0x250c}, {0xdb, 0x2588}, {0xdc, 0x2584}, {0xdd, 0x258c}, {0xde, 0x2590}, {0xdf, 0x2580}, {0xe0, 0x0440}, {0xe1, 0x0441}, {0xe2, 0x0442}, {0xe3, 0x0443}, {0xe4, 0x0444}, {0xe5, 0x0445}, {0xe6, 0x0446}, {0xe7, 0x0447}, {0xe8, 0x0448}, {0xe9, 0x0449}, {0xea, 0x044a}, {0xeb, 0x044b}, {0xec, 0x044c}, {0xed, 0x044d}, {0xee, 0x044e}, {0xef, 0x044f}, {0xf0, 0x0401}, {0xf1, 0x0451}, {0xf2, 0x0490}, {0xf3, 0x0491}, {0xf4, 0x0404}, {0xf5, 0x0454}, {0xf6, 0x0406}, {0xf7, 0x0456}, {0xf8, 0x0407}, {0xf9, 0x0457}, {0xfa, 0x00b7}, {0xfb, 0x221a}, {0xfc, 0x2116}, {0xfd, 0x00a4}, {0xfe, 0x25a0}, {0xff, 0x00a0}, {0, 0} }; char *aliases_cp1125 [] = {"x-cp866-u", "ruscii", "1125", NULL }; struct table_entry table_macroman [] = { {0x80, 0x00C4}, {0x81, 0x00C5}, {0x82, 0x00C7}, {0x83, 0x00C9}, {0x84, 0x00D1}, {0x85, 0x00D6}, {0x86, 0x00DC}, {0x87, 0x00E1}, {0x88, 0x00E0}, {0x89, 0x00E2}, {0x8A, 0x00E4}, {0x8B, 0x00E3}, {0x8C, 0x00E5}, {0x8D, 0x00E7}, {0x8E, 0x00E9}, {0x8F, 0x00E8}, {0x90, 0x00EA}, {0x91, 0x00EB}, {0x92, 0x00ED}, {0x93, 0x00EC}, {0x94, 0x00EE}, {0x95, 0x00EF}, {0x96, 0x00F1}, {0x97, 0x00F3}, {0x98, 0x00F2}, {0x99, 0x00F4}, {0x9A, 0x00F6}, {0x9B, 0x00F5}, {0x9C, 0x00FA}, {0x9D, 0x00F9}, {0x9E, 0x00FB}, {0x9F, 0x00FC}, {0xA0, 0x2020}, {0xA1, 0x00B0}, {0xA2, 0x00A2}, {0xA3, 0x00A3}, {0xA4, 0x00A7}, {0xA5, 0x2022}, {0xA6, 0x00B6}, {0xA7, 0x00DF}, {0xA8, 0x00AE}, {0xA9, 0x00A9}, {0xAA, 0x2122}, {0xAB, 0x00B4}, {0xAC, 0x00A8}, {0xAD, 0x2260}, {0xAE, 0x00C6}, {0xAF, 0x00D8}, {0xB0, 0x221E}, {0xB1, 0x00B1}, {0xB2, 0x2264}, {0xB3, 0x2265}, {0xB4, 0x00A5}, {0xB5, 0x00B5}, {0xB6, 0x2202}, {0xB7, 0x2211}, {0xB8, 0x220F}, {0xB9, 0x03C0}, {0xBA, 0x222B}, {0xBB, 0x00AA}, {0xBC, 0x00BA}, {0xBD, 0x03A9}, {0xBE, 0x00E6}, {0xBF, 0x00F8}, {0xC0, 0x00BF}, {0xC1, 0x00A1}, {0xC2, 0x00AC}, {0xC3, 0x221A}, {0xC4, 0x0192}, {0xC5, 0x2248}, {0xC6, 0x0394}, {0xC7, 0x00AB}, {0xC8, 0x00BB}, {0xC9, 0x2026}, {0xCA, 0x00A0}, {0xCB, 0x00C0}, {0xCC, 0x00C3}, {0xCD, 0x00D5}, {0xCE, 0x0152}, {0xCF, 0x0153}, {0xD0, 0x2013}, {0xD1, 0x2014}, {0xD2, 0x201C}, {0xD3, 0x201D}, {0xD4, 0x2018}, {0xD5, 0x2019}, {0xD6, 0x00F7}, {0xD7, 0x25CA}, {0xD8, 0x00FF}, {0xD9, 0x0178}, {0xDA, 0x2044}, {0xDB, 0x20AC}, {0xDC, 0x2039}, {0xDD, 0x203A}, {0xDE, 0xFB01}, {0xDF, 0xFB02}, {0xE0, 0x2021}, {0xE1, 0x00B7}, {0xE2, 0x201A}, {0xE3, 0x201E}, {0xE4, 0x2030}, {0xE5, 0x00C2}, {0xE6, 0x00CA}, {0xE7, 0x00C1}, {0xE8, 0x00CB}, {0xE9, 0x00C8}, {0xEA, 0x00CD}, {0xEB, 0x00CE}, {0xEC, 0x00CF}, {0xED, 0x00CC}, {0xEE, 0x00D3}, {0xEF, 0x00D4}, {0xF0, 0xF8FF}, {0xF1, 0x00D2}, {0xF2, 0x00DA}, {0xF3, 0x00DB}, {0xF4, 0x00D9}, {0xF5, 0x0131}, {0xF6, 0x02C6}, {0xF7, 0x02DC}, {0xF8, 0x00AF}, {0xF9, 0x02D8}, {0xFA, 0x02D9}, {0xFB, 0x02DA}, {0xFC, 0x00B8}, {0xFD, 0x02DD}, {0xFE, 0x02DB}, {0xFF, 0x02C7}, {0, 0} }; char *aliases_macroman [] = {"x-mac", "mac", "macroman", NULL }; struct table_entry table_mac_lat2 [] = { {0x80, 0x00C4}, {0x81, 0x0100}, {0x82, 0x0101}, {0x83, 0x00C9}, {0x84, 0x0104}, {0x85, 0x00D6}, {0x86, 0x00DC}, {0x87, 0x00E1}, {0x88, 0x0105}, {0x89, 0x010C}, {0x8A, 0x00E4}, {0x8B, 0x010D}, {0x8C, 0x0106}, {0x8D, 0x0107}, {0x8E, 0x00E9}, {0x8F, 0x0179}, {0x90, 0x017A}, {0x91, 0x010E}, {0x92, 0x00ED}, {0x93, 0x010F}, {0x94, 0x0112}, {0x95, 0x0113}, {0x96, 0x0116}, {0x97, 0x00F3}, {0x98, 0x0117}, {0x99, 0x00F4}, {0x9A, 0x00F6}, {0x9B, 0x00F5}, {0x9C, 0x00FA}, {0x9D, 0x011A}, {0x9E, 0x011B}, {0x9F, 0x00FC}, {0xA0, 0x2020}, {0xA1, 0x00B0}, {0xA2, 0x0118}, {0xA3, 0x00A3}, {0xA4, 0x00A7}, {0xA5, 0x2022}, {0xA6, 0x00B6}, {0xA7, 0x00DF}, {0xA8, 0x00AE}, {0xA9, 0x00A9}, {0xAA, 0x2122}, {0xAB, 0x0119}, {0xAC, 0x00A8}, {0xAD, 0x2260}, {0xAE, 0x0123}, {0xAF, 0x012E}, {0xB0, 0x012F}, {0xB1, 0x012A}, {0xB2, 0x2264}, {0xB3, 0x2265}, {0xB4, 0x012B}, {0xB5, 0x0136}, {0xB6, 0x2202}, {0xB7, 0x2211}, {0xB8, 0x0142}, {0xB9, 0x013B}, {0xBA, 0x013C}, {0xBB, 0x013D}, {0xBC, 0x013E}, {0xBD, 0x0139}, {0xBE, 0x013A}, {0xBF, 0x0145}, {0xC0, 0x0146}, {0xC1, 0x0143}, {0xC2, 0x00AC}, {0xC3, 0x221A}, {0xC4, 0x0144}, {0xC5, 0x0147}, {0xC6, 0x2206}, {0xC7, 0x00AB}, {0xC8, 0x00BB}, {0xC9, 0x2026}, {0xCA, 0x00A0}, {0xCB, 0x0148}, {0xCC, 0x0150}, {0xCD, 0x00D5}, {0xCE, 0x0151}, {0xCF, 0x014C}, {0xD0, 0x2013}, {0xD1, 0x2014}, {0xD2, 0x201C}, {0xD3, 0x201D}, {0xD4, 0x2018}, {0xD5, 0x2019}, {0xD6, 0x00F7}, {0xD7, 0x25CA}, {0xD8, 0x014D}, {0xD9, 0x0154}, {0xDA, 0x0155}, {0xDB, 0x0158}, {0xDC, 0x2039}, {0xDD, 0x203A}, {0xDE, 0x0159}, {0xDF, 0x0156}, {0xE0, 0x0157}, {0xE1, 0x0160}, {0xE2, 0x201A}, {0xE3, 0x201E}, {0xE4, 0x0161}, {0xE5, 0x015A}, {0xE6, 0x015B}, {0xE7, 0x00C1}, {0xE8, 0x0164}, {0xE9, 0x0165}, {0xEA, 0x00CD}, {0xEB, 0x017D}, {0xEC, 0x017E}, {0xED, 0x016A}, {0xEE, 0x00D3}, {0xEF, 0x00D4}, {0xF0, 0x016B}, {0xF1, 0x016E}, {0xF2, 0x00DA}, {0xF3, 0x016F}, {0xF4, 0x0170}, {0xF5, 0x0171}, {0xF6, 0x0172}, {0xF7, 0x0173}, {0xF8, 0x00DD}, {0xF9, 0x00FD}, {0xFA, 0x0137}, {0xFB, 0x017B}, {0xFC, 0x0141}, {0xFD, 0x017C}, {0xFE, 0x0122}, {0xFF, 0x02C7}, {0, 0} }; char *aliases_mac_lat2 [] = {"x-mac-ce", "mac-ce", "maclatin2", "10029", NULL }; struct table_entry table_kamen [] = { {0x80, 0x010C}, {0x81, 0x00FC}, {0x82, 0x00E9}, {0x83, 0x010F}, {0x84, 0x00E4}, {0x85, 0x010E}, {0x86, 0x0164}, {0x87, 0x010D}, {0x88, 0x011B}, {0x89, 0x011A}, {0x8A, 0x0139}, {0x8B, 0x00CD}, {0x8C, 0x013E}, {0x8D, 0x013A}, {0x8E, 0x00C4}, {0x8F, 0x00C1}, {0x90, 0x00C9}, {0x91, 0x017E}, {0x92, 0x017D}, {0x93, 0x00F4}, {0x94, 0x00F6}, {0x95, 0x00D3}, {0x96, 0x016F}, {0x97, 0x00DA}, {0x98, 0x00FD}, {0x99, 0x00D6}, {0x9A, 0x00DC}, {0x9B, 0x0160}, {0x9C, 0x013D}, {0x9D, 0x00DD}, {0x9E, 0x0158}, {0x9F, 0x0165}, {0xA0, 0x00E1}, {0xA1, 0x00ED}, {0xA2, 0x00F3}, {0xA3, 0x00FA}, {0xA4, 0x0148}, {0xA5, 0x0147}, {0xA6, 0x016E}, {0xA7, 0x00D4}, {0xA8, 0x0161}, {0xA9, 0x0159}, {0xAA, 0x0155}, {0xAB, 0x0154}, {0xAC, 0x00BC}, {0xAD, 0x00A7}, {0xAE, 0x00BB}, {0xAF, 0x00AB}, {0xB0, 0x2591}, {0xB1, 0x2592}, {0xB2, 0x2593}, {0xB3, 0x2502}, {0xB4, 0x2524}, {0xB5, 0x2561}, {0xB6, 0x2562}, {0xB7, 0x2556}, {0xB8, 0x2555}, {0xB9, 0x2563}, {0xBA, 0x2551}, {0xBB, 0x2557}, {0xBC, 0x255D}, {0xBD, 0x255C}, {0xBE, 0x255B}, {0xBF, 0x2510}, {0xC0, 0x2514}, {0xC1, 0x2534}, {0xC2, 0x252C}, {0xC3, 0x251C}, {0xC4, 0x2500}, {0xC5, 0x253C}, {0xC6, 0x255E}, {0xC7, 0x255F}, {0xC8, 0x255A}, {0xC9, 0x2554}, {0xCA, 0x2569}, {0xCB, 0x2566}, {0xCC, 0x2560}, {0xCD, 0x2550}, {0xCE, 0x256C}, {0xCF, 0x2567}, {0xD0, 0x2568}, {0xD1, 0x2564}, {0xD2, 0x2565}, {0xD3, 0x2559}, {0xD4, 0x2558}, {0xD5, 0x2552}, {0xD6, 0x2553}, {0xD7, 0x256B}, {0xD8, 0x256A}, {0xD9, 0x2518}, {0xDA, 0x250C}, {0xDB, 0x2588}, {0xDC, 0x2584}, {0xDD, 0x258C}, {0xDE, 0x2590}, {0xDF, 0x2580}, {0xE0, 0x03B1}, {0xE1, 0x03B2}, {0xE2, 0x0194}, {0xE3, 0x03C0}, {0xE4, 0x03A3}, {0xE5, 0x03C3}, {0xE6, 0x03BC}, {0xE7, 0x03C4}, {0xE8, 0x03A6}, {0xE9, 0x0398}, {0xEA, 0x03A9}, {0xEB, 0x03B4}, {0xEC, 0x221E}, {0xED, 0x03C6}, {0xEE, 0x2208}, {0xEF, 0x2229}, {0xF0, 0x224D}, {0xF1, 0x00B1}, {0xF2, 0x2265}, {0xF3, 0x2264}, {0xF4, 0x2320}, {0xF5, 0x2321}, {0xF6, 0x00F7}, {0xF7, 0x2248}, {0xF8, 0x00B0}, {0xF9, 0x2219}, {0xFA, 0x00B7}, {0xFB, 0x221A}, {0xFC, 0x207F}, {0xFD, 0x00B2}, {0xFE, 0x25A0}, {0xFF, 0x00A0}, {0, 0} }; char *aliases_kamen [] = {"x-kam-cs", "kam", "867", "869", NULL }; struct table_entry table_koi8_r [] = { {0x80, 0x2500}, {0x81, 0x2502}, {0x82, 0x250C}, {0x83, 0x2510}, {0x84, 0x2514}, {0x85, 0x2518}, {0x86, 0x251C}, {0x87, 0x2524}, {0x88, 0x252C}, {0x89, 0x2534}, {0x8A, 0x253C}, {0x8B, 0x2580}, {0x8C, 0x2584}, {0x8D, 0x2588}, {0x8E, 0x258C}, {0x8F, 0x2590}, {0x90, 0x2591}, {0x91, 0x2592}, {0x92, 0x2593}, {0x93, 0x2320}, {0x94, 0x25A0}, {0x95, 0x2022}, {0x96, 0x221A}, {0x97, 0x2248}, {0x98, 0x2264}, {0x99, 0x2265}, {0x9A, 0x00A0}, {0x9B, 0x2321}, {0x9C, 0x00B0}, {0x9D, 0x00B2}, {0x9E, 0x00B7}, {0x9F, 0x00F7}, {0xA0, 0x2550}, {0xA1, 0x2551}, {0xA2, 0x2552}, {0xA3, 0x0451}, {0xA4, 0x2553}, {0xA5, 0x2554}, {0xA6, 0x2555}, {0xA7, 0x2556}, {0xA8, 0x2557}, {0xA9, 0x2558}, {0xAA, 0x2559}, {0xAB, 0x255A}, {0xAC, 0x255B}, {0xAD, 0x255C}, {0xAE, 0x255D}, {0xAF, 0x255E}, {0xB0, 0x255F}, {0xB1, 0x2560}, {0xB2, 0x2561}, {0xB3, 0x0401}, {0xB4, 0x2562}, {0xB5, 0x2563}, {0xB6, 0x2564}, {0xB7, 0x2565}, {0xB8, 0x2566}, {0xB9, 0x2567}, {0xBA, 0x2568}, {0xBB, 0x2569}, {0xBC, 0x256A}, {0xBD, 0x256B}, {0xBE, 0x256C}, {0xBF, 0x00A9}, {0xC0, 0x044E}, {0xC1, 0x0430}, {0xC2, 0x0431}, {0xC3, 0x0446}, {0xC4, 0x0434}, {0xC5, 0x0435}, {0xC6, 0x0444}, {0xC7, 0x0433}, {0xC8, 0x0445}, {0xC9, 0x0438}, {0xCA, 0x0439}, {0xCB, 0x043A}, {0xCC, 0x043B}, {0xCD, 0x043C}, {0xCE, 0x043D}, {0xCF, 0x043E}, {0xD0, 0x043F}, {0xD1, 0x044F}, {0xD2, 0x0440}, {0xD3, 0x0441}, {0xD4, 0x0442}, {0xD5, 0x0443}, {0xD6, 0x0436}, {0xD7, 0x0432}, {0xD8, 0x044C}, {0xD9, 0x044B}, {0xDA, 0x0437}, {0xDB, 0x0448}, {0xDC, 0x044D}, {0xDD, 0x0449}, {0xDE, 0x0447}, {0xDF, 0x044A}, {0xE0, 0x042E}, {0xE1, 0x0410}, {0xE2, 0x0411}, {0xE3, 0x0426}, {0xE4, 0x0414}, {0xE5, 0x0415}, {0xE6, 0x0424}, {0xE7, 0x0413}, {0xE8, 0x0425}, {0xE9, 0x0418}, {0xEA, 0x0419}, {0xEB, 0x041A}, {0xEC, 0x041B}, {0xED, 0x041C}, {0xEE, 0x041D}, {0xEF, 0x041E}, {0xF0, 0x041F}, {0xF1, 0x042F}, {0xF2, 0x0420}, {0xF3, 0x0421}, {0xF4, 0x0422}, {0xF5, 0x0423}, {0xF6, 0x0416}, {0xF7, 0x0412}, {0xF8, 0x042C}, {0xF9, 0x042B}, {0xFA, 0x0417}, {0xFB, 0x0428}, {0xFC, 0x042D}, {0xFD, 0x0429}, {0xFE, 0x0427}, {0xFF, 0x042A}, {0, 0} }; char *aliases_koi8_r [] = {"koi8-r", NULL }; struct table_entry table_koi8_u [] = { {0x80, 0x2500}, {0x81, 0x2502}, {0x82, 0x250C}, {0x83, 0x2510}, {0x84, 0x2514}, {0x85, 0x2518}, {0x86, 0x251C}, {0x87, 0x2524}, {0x88, 0x252C}, {0x89, 0x2534}, {0x8A, 0x253C}, {0x8B, 0x2580}, {0x8C, 0x2584}, {0x8D, 0x2588}, {0x8E, 0x258C}, {0x8F, 0x2590}, {0x90, 0x2591}, {0x91, 0x2592}, {0x92, 0x2593}, {0x93, 0x2320}, {0x94, 0x25A0}, {0x95, 0x2219}, {0x96, 0x221A}, {0x97, 0x2248}, {0x98, 0x2264}, {0x99, 0x2265}, {0x9A, 0x00A0}, {0x9B, 0x2321}, {0x9C, 0x00B0}, {0x9D, 0x00B2}, {0x9E, 0x00B7}, {0x9F, 0x00F7}, {0xA0, 0x2550}, {0xA1, 0x2551}, {0xA2, 0x2552}, {0xA3, 0x0451}, {0xA4, 0x0454}, {0xA5, 0x2554}, {0xA6, 0x0456}, {0xA7, 0x0457}, {0xA8, 0x2557}, {0xA9, 0x2558}, {0xAA, 0x2559}, {0xAB, 0x255A}, {0xAC, 0x255B}, {0xAD, 0x0491}, {0xAE, 0x255D}, {0xAF, 0x255E}, {0xB0, 0x255F}, {0xB1, 0x2560}, {0xB2, 0x2561}, {0xB3, 0x0401}, {0xB4, 0x0404}, {0xB5, 0x2563}, {0xB6, 0x0406}, {0xB7, 0x0407}, {0xB8, 0x2566}, {0xB9, 0x2567}, {0xBA, 0x2568}, {0xBB, 0x2569}, {0xBC, 0x256A}, {0xBD, 0x0490}, {0xBE, 0x256C}, {0xBF, 0x00A9}, {0xC0, 0x044E}, {0xC1, 0x0430}, {0xC2, 0x0431}, {0xC3, 0x0446}, {0xC4, 0x0434}, {0xC5, 0x0435}, {0xC6, 0x0444}, {0xC7, 0x0433}, {0xC8, 0x0445}, {0xC9, 0x0438}, {0xCA, 0x0439}, {0xCB, 0x043A}, {0xCC, 0x043B}, {0xCD, 0x043C}, {0xCE, 0x043D}, {0xCF, 0x043E}, {0xD0, 0x043F}, {0xD1, 0x044F}, {0xD2, 0x0440}, {0xD3, 0x0441}, {0xD4, 0x0442}, {0xD5, 0x0443}, {0xD6, 0x0436}, {0xD7, 0x0432}, {0xD8, 0x044C}, {0xD9, 0x044B}, {0xDA, 0x0437}, {0xDB, 0x0448}, {0xDC, 0x044D}, {0xDD, 0x0449}, {0xDE, 0x0447}, {0xDF, 0x044A}, {0xE0, 0x042E}, {0xE1, 0x0410}, {0xE2, 0x0411}, {0xE3, 0x0426}, {0xE4, 0x0414}, {0xE5, 0x0415}, {0xE6, 0x0424}, {0xE7, 0x0413}, {0xE8, 0x0425}, {0xE9, 0x0418}, {0xEA, 0x0419}, {0xEB, 0x041A}, {0xEC, 0x041B}, {0xED, 0x041C}, {0xEE, 0x041D}, {0xEF, 0x041E}, {0xF0, 0x041F}, {0xF1, 0x042F}, {0xF2, 0x0420}, {0xF3, 0x0421}, {0xF4, 0x0422}, {0xF5, 0x0423}, {0xF6, 0x0416}, {0xF7, 0x0412}, {0xF8, 0x042C}, {0xF9, 0x042B}, {0xFA, 0x0417}, {0xFB, 0x0428}, {0xFC, 0x042D}, {0xFD, 0x0429}, {0xFE, 0x0427}, {0xFF, 0x042A}, {0, 0} }; char *aliases_koi8_u [] = {"koi8-u", NULL }; struct table_entry table_tcvn5712 [] = { {0x80, 0x00C0}, {0x81, 0x1EA2}, {0x82, 0x00C3}, {0x83, 0x00C1}, {0x84, 0x1EA0}, {0x85, 0x1EB6}, {0x86, 0x1EAC}, {0x87, 0x00C8}, {0x88, 0x1EBA}, {0x89, 0x1EBC}, {0x8A, 0x00C9}, {0x8B, 0x1EB8}, {0x8C, 0x1EC6}, {0x8D, 0x00CC}, {0x8E, 0x1EC8}, {0x8F, 0x0128}, {0x90, 0x00CD}, {0x91, 0x1ECA}, {0x92, 0x00D2}, {0x93, 0x1ECE}, {0x94, 0x00D5}, {0x95, 0x00D3}, {0x96, 0x1ECC}, {0x97, 0x1ED8}, {0x98, 0x1EDC}, {0x99, 0x1EDE}, {0x9A, 0x1EE0}, {0x9B, 0x1EDA}, {0x9C, 0x1EE2}, {0x9D, 0x00D9}, {0x9E, 0x1EE6}, {0x9F, 0x0168}, {0xA0, 0x00A0}, {0xA1, 0x0102}, {0xA2, 0x00C2}, {0xA3, 0x00CA}, {0xA4, 0x00D4}, {0xA5, 0x01A0}, {0xA6, 0x01AF}, {0xA7, 0x0110}, {0xA8, 0x0103}, {0xA9, 0x00E2}, {0xAA, 0x00EA}, {0xAB, 0x00F4}, {0xAC, 0x01A1}, {0xAD, 0x01B0}, {0xAE, 0x0111}, {0xAF, 0x1EB0}, {0xB0, 0x0300}, {0xB1, 0x0309}, {0xB2, 0x0303}, {0xB3, 0x0301}, {0xB4, 0x0323}, {0xB5, 0x00E0}, {0xB6, 0x1EA3}, {0xB7, 0x00E3}, {0xB8, 0x00E1}, {0xB9, 0x1EA1}, {0xBA, 0x1EB2}, {0xBB, 0x1EB1}, {0xBC, 0x1EB3}, {0xBD, 0x1EB5}, {0xBE, 0x1EAF}, {0xBF, 0x1EB4}, {0xC0, 0x1EAE}, {0xC1, 0x1EA6}, {0xC2, 0x1EA8}, {0xC3, 0x1EAA}, {0xC4, 0x1EA4}, {0xC5, 0x1EC0}, {0xC6, 0x1EB7}, {0xC7, 0x1EA7}, {0xC8, 0x1EA9}, {0xC9, 0x1EAB}, {0xCA, 0x1EA5}, {0xCB, 0x1EAD}, {0xCC, 0x00E8}, {0xCD, 0x1EC2}, {0xCE, 0x1EBB}, {0xCF, 0x1EBD}, {0xD0, 0x00E9}, {0xD1, 0x1EB9}, {0xD2, 0x1EC1}, {0xD3, 0x1EC3}, {0xD4, 0x1EC5}, {0xD5, 0x1EBF}, {0xD6, 0x1EC7}, {0xD7, 0x00EC}, {0xD8, 0x1EC9}, {0xD9, 0x1EC4}, {0xDA, 0x1EBE}, {0xDB, 0x1ED2}, {0xDC, 0x0129}, {0xDD, 0x00ED}, {0xDE, 0x1ECB}, {0xDF, 0x00F2}, {0xE0, 0x1ED4}, {0xE1, 0x1ECF}, {0xE2, 0x00F5}, {0xE3, 0x00F3}, {0xE4, 0x1ECD}, {0xE5, 0x1ED3}, {0xE6, 0x1ED5}, {0xE7, 0x1ED7}, {0xE8, 0x1ED1}, {0xE9, 0x1ED9}, {0xEA, 0x1EDD}, {0xEB, 0x1EDF}, {0xEC, 0x1EE1}, {0xED, 0x1EDB}, {0xEE, 0x1EE3}, {0xEF, 0x00F9}, {0xF0, 0x1ED6}, {0xF1, 0x1EE7}, {0xF2, 0x0169}, {0xF3, 0x00FA}, {0xF4, 0x1EE5}, {0xF5, 0x1EEB}, {0xF6, 0x1EED}, {0xF7, 0x1EEF}, {0xF8, 0x1EE9}, {0xF9, 0x1EF1}, {0xFA, 0x1EF3}, {0xFB, 0x1EF7}, {0xFC, 0x1EF9}, {0xFD, 0x00FD}, {0xFE, 0x1EF5}, {0xFF, 0x1ED0}, {0xA7, 0x00D0}, {0xAE, 0x00F0}, {0, 0} }; char *aliases_tcvn5712 [] = {"TCVN-5712", "TCVN", "TCVN-0", "TCVN-1", NULL }; struct table_entry table_viscii [] = { {0x80, 0x1EA0}, {0x81, 0x1EAE}, {0x82, 0x1EB0}, {0x83, 0x1EB6}, {0x84, 0x1EA4}, {0x85, 0x1EA6}, {0x86, 0x1EA8}, {0x87, 0x1EAC}, {0x88, 0x1EBC}, {0x89, 0x1EB8}, {0x8A, 0x1EBE}, {0x8B, 0x1EC0}, {0x8C, 0x1EC2}, {0x8D, 0x1EC4}, {0x8E, 0x1EC6}, {0x8F, 0x1ED0}, {0x90, 0x1ED2}, {0x91, 0x1ED4}, {0x92, 0x1ED6}, {0x93, 0x1ED8}, {0x94, 0x1EE2}, {0x95, 0x1EDA}, {0x96, 0x1EDC}, {0x97, 0x1EDE}, {0x98, 0x1ECA}, {0x99, 0x1ECE}, {0x9A, 0x1ECC}, {0x9B, 0x1EC8}, {0x9C, 0x1EE6}, {0x9D, 0x0168}, {0x9E, 0x1EE4}, {0x9F, 0x1EF2}, {0xA0, 0x00D5}, {0xA1, 0x1EAF}, {0xA2, 0x1EB1}, {0xA3, 0x1EB7}, {0xA4, 0x1EA5}, {0xA5, 0x1EA7}, {0xA6, 0x1EA9}, {0xA7, 0x1EAD}, {0xA8, 0x1EBD}, {0xA9, 0x1EB9}, {0xAA, 0x1EBF}, {0xAB, 0x1EC1}, {0xAC, 0x1EC3}, {0xAD, 0x1EC5}, {0xAE, 0x1EC7}, {0xAF, 0x1ED1}, {0xB0, 0x1ED3}, {0xB1, 0x1ED5}, {0xB2, 0x1ED7}, {0xB3, 0x1EE0}, {0xB4, 0x01A0}, {0xB5, 0x1ED9}, {0xB6, 0x1EDD}, {0xB7, 0x1EDF}, {0xB8, 0x1ECB}, {0xB9, 0x1EF0}, {0xBA, 0x1EE8}, {0xBB, 0x1EEA}, {0xBC, 0x1EEC}, {0xBD, 0x01A1}, {0xBE, 0x1EDB}, {0xBF, 0x01AF}, {0xC0, 0x00C0}, {0xC1, 0x00C1}, {0xC2, 0x00C2}, {0xC3, 0x00C3}, {0xC4, 0x1EA2}, {0xC5, 0x0102}, {0xC6, 0x1EB3}, {0xC7, 0x1EB5}, {0xC8, 0x00C8}, {0xC9, 0x00C9}, {0xCA, 0x00CA}, {0xCB, 0x1EBA}, {0xCC, 0x00CC}, {0xCD, 0x00CD}, {0xCE, 0x0128}, {0xCF, 0x1EF3}, {0xD0, 0x0110}, {0xD1, 0x1EE9}, {0xD2, 0x00D2}, {0xD3, 0x00D3}, {0xD4, 0x00D4}, {0xD5, 0x1EA1}, {0xD6, 0x1EF7}, {0xD7, 0x1EEB}, {0xD8, 0x1EED}, {0xD9, 0x00D9}, {0xDA, 0x00DA}, {0xDB, 0x1EF9}, {0xDC, 0x1EF5}, {0xDD, 0x00DD}, {0xDE, 0x1EE1}, {0xDF, 0x01B0}, {0xE0, 0x00E0}, {0xE1, 0x00E1}, {0xE2, 0x00E2}, {0xE3, 0x00E3}, {0xE4, 0x1EA3}, {0xE5, 0x0103}, {0xE6, 0x1EEF}, {0xE7, 0x1EAB}, {0xE8, 0x00E8}, {0xE9, 0x00E9}, {0xEA, 0x00EA}, {0xEB, 0x1EBB}, {0xEC, 0x00EC}, {0xED, 0x00ED}, {0xEE, 0x0129}, {0xEF, 0x1EC9}, {0xF0, 0x0111}, {0xF1, 0x1EF1}, {0xF2, 0x00F2}, {0xF3, 0x00F3}, {0xF4, 0x00F4}, {0xF5, 0x00F5}, {0xF6, 0x1ECF}, {0xF7, 0x1ECD}, {0xF8, 0x1EE5}, {0xF9, 0x00F9}, {0xFA, 0x00FA}, {0xFB, 0x0169}, {0xFC, 0x1EE7}, {0xFD, 0x00FD}, {0xFE, 0x1EE3}, {0xFF, 0x1EEE}, {0xD0, 0x00D0}, {0xF0, 0x00F0}, {0, 0} }; char *aliases_viscii [] = {"VISCII", "VISCII-1", "VISCII 1.1", "VISCII-1.1", "VISCII1.1-1", NULL }; struct table_entry table_utf_8 [] = { {0, 0} }; char *aliases_utf_8 [] = {"utf-8", "utf8", NULL }; struct codepage_desc codepages [] = { {"7-bit ASCII", aliases_7bit, table_7bit}, {"ISO 8859-1", aliases_8859_1, table_8859_1}, {"ISO 8859-2", aliases_8859_2, table_8859_2}, {"ISO 8859-4", aliases_8859_4, table_8859_4}, {"ISO 8859-5", aliases_8859_5, table_8859_5}, {"ISO 8859-7", aliases_8859_7, table_8859_7}, {"ISO 8859-9", aliases_8859_9, table_8859_9}, {"ISO 8859-13", aliases_8859_13, table_8859_13}, {"Window$ 1250", aliases_cp1250, table_cp1250}, {"Window$ 1251", aliases_cp1251, table_cp1251}, {"Window$ 1257", aliases_cp1257, table_cp1257}, {"CP 437", aliases_cp437, table_cp437}, {"CP 737", aliases_cp737, table_cp737}, {"CP 850", aliases_cp850, table_cp850}, {"CP 852", aliases_cp852, table_cp852}, {"CP 866", aliases_cp866, table_cp866}, {"CP 1125 (Ukrainian)", aliases_cp1125, table_cp1125}, {"MacRoman 2000", aliases_macroman, table_macroman}, {"Mac latin 2", aliases_mac_lat2, table_mac_lat2}, {"Kamenicky Brothers", aliases_kamen, table_kamen}, {"KOI8-R", aliases_koi8_r, table_koi8_r}, {"KOI8-U", aliases_koi8_u, table_koi8_u}, {"TCVN-5712", aliases_tcvn5712, table_tcvn5712}, {"VISCII", aliases_viscii, table_viscii}, {"Unicode UTF-8", aliases_utf_8, table_utf_8}, {NULL, NULL, NULL} }; tucnak2-2.48/src/regcomp.c0000644000175000017500000032674511567373656012372 00000000000000/* Extended regular expression matching and search library. Copyright (C) 2002,2003,2004,2005,2006,2007 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ #pragma warning(disable : 4996) #define _CRT_SECURE_NO_WARNINGS static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern, size_t length, reg_syntax_t syntax); static void re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state, char *fastmap); static reg_errcode_t init_dfa (re_dfa_t *dfa, size_t pat_len); #ifdef RE_ENABLE_I18N static void free_charset (re_charset_t *cset); #endif /* RE_ENABLE_I18N */ static void free_workarea_compile (regex_t *preg); static reg_errcode_t create_initial_state (re_dfa_t *dfa); #ifdef RE_ENABLE_I18N static void optimize_utf8 (re_dfa_t *dfa); #endif static reg_errcode_t analyze (regex_t *preg); static reg_errcode_t preorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), void *extra); static reg_errcode_t postorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), void *extra); static reg_errcode_t optimize_subexps (void *extra, bin_tree_t *node); static reg_errcode_t lower_subexps (void *extra, bin_tree_t *node); static bin_tree_t *lower_subexp (reg_errcode_t *err, regex_t *preg, bin_tree_t *node); static reg_errcode_t calc_first (void *extra, bin_tree_t *node); static reg_errcode_t calc_next (void *extra, bin_tree_t *node); static reg_errcode_t link_nfa_nodes (void *extra, bin_tree_t *node); static int duplicate_node (re_dfa_t *dfa, int org_idx, unsigned int constraint); static int search_duplicated_node (const re_dfa_t *dfa, int org_node, unsigned int constraint); static reg_errcode_t calc_eclosure (re_dfa_t *dfa); static reg_errcode_t calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, int node, int root); static reg_errcode_t calc_inveclosure (re_dfa_t *dfa); static int fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax); static int peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax) internal_function; static bin_tree_t *parse (re_string_t *regexp, regex_t *preg, reg_syntax_t syntax, reg_errcode_t *err); static bin_tree_t *parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, int nest, reg_errcode_t *err); static bin_tree_t *parse_branch (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, int nest, reg_errcode_t *err); static bin_tree_t *parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, int nest, reg_errcode_t *err); static bin_tree_t *parse_sub_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, int nest, reg_errcode_t *err); static bin_tree_t *parse_dup_op (bin_tree_t *dup_elem, re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, reg_syntax_t syntax, reg_errcode_t *err); static bin_tree_t *parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, reg_syntax_t syntax, reg_errcode_t *err); static reg_errcode_t parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp, re_token_t *token, int token_len, re_dfa_t *dfa, reg_syntax_t syntax, int accept_hyphen); static reg_errcode_t parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp, re_token_t *token); #ifdef RE_ENABLE_I18N static reg_errcode_t build_equiv_class (bitset_t sbcset, re_charset_t *mbcset, int *equiv_class_alloc, const unsigned char *name); static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, re_charset_t *mbcset, int *char_class_alloc, const unsigned char *class_name, reg_syntax_t syntax); #else /* not RE_ENABLE_I18N */ static reg_errcode_t build_equiv_class (bitset_t sbcset, const unsigned char *name); static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, const unsigned char *class_name, reg_syntax_t syntax); #endif /* not RE_ENABLE_I18N */ static bin_tree_t *build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans, const unsigned char *class_name, const unsigned char *extra, int non_match, reg_errcode_t *err); static bin_tree_t *create_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, re_token_type_t type); static bin_tree_t *create_token_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, const re_token_t *token); static bin_tree_t *duplicate_tree (const bin_tree_t *src, re_dfa_t *dfa); static void free_token (re_token_t *node); static reg_errcode_t free_tree (void *extra, bin_tree_t *node); static reg_errcode_t mark_opt_subexp (void *extra, bin_tree_t *node); /* This table gives an error message for each of the error codes listed in regex.h. Obviously the order here has to be same as there. POSIX doesn't require that we do anything for REG_NOERROR, but why not be nice? */ const char __re_error_msgid[] attribute_hidden = { #define REG_NOERROR_IDX 0 gettext_noop ("Success") /* REG_NOERROR */ "\0" #define REG_NOMATCH_IDX (REG_NOERROR_IDX + sizeof "Success") gettext_noop ("No match") /* REG_NOMATCH */ "\0" #define REG_BADPAT_IDX (REG_NOMATCH_IDX + sizeof "No match") gettext_noop ("Invalid regular expression") /* REG_BADPAT */ "\0" #define REG_ECOLLATE_IDX (REG_BADPAT_IDX + sizeof "Invalid regular expression") gettext_noop ("Invalid collation character") /* REG_ECOLLATE */ "\0" #define REG_ECTYPE_IDX (REG_ECOLLATE_IDX + sizeof "Invalid collation character") gettext_noop ("Invalid character class name") /* REG_ECTYPE */ "\0" #define REG_EESCAPE_IDX (REG_ECTYPE_IDX + sizeof "Invalid character class name") gettext_noop ("Trailing backslash") /* REG_EESCAPE */ "\0" #define REG_ESUBREG_IDX (REG_EESCAPE_IDX + sizeof "Trailing backslash") gettext_noop ("Invalid back reference") /* REG_ESUBREG */ "\0" #define REG_EBRACK_IDX (REG_ESUBREG_IDX + sizeof "Invalid back reference") gettext_noop ("Unmatched [ or [^") /* REG_EBRACK */ "\0" #define REG_EPAREN_IDX (REG_EBRACK_IDX + sizeof "Unmatched [ or [^") gettext_noop ("Unmatched ( or \\(") /* REG_EPAREN */ "\0" #define REG_EBRACE_IDX (REG_EPAREN_IDX + sizeof "Unmatched ( or \\(") gettext_noop ("Unmatched \\{") /* REG_EBRACE */ "\0" #define REG_BADBR_IDX (REG_EBRACE_IDX + sizeof "Unmatched \\{") gettext_noop ("Invalid content of \\{\\}") /* REG_BADBR */ "\0" #define REG_ERANGE_IDX (REG_BADBR_IDX + sizeof "Invalid content of \\{\\}") gettext_noop ("Invalid range end") /* REG_ERANGE */ "\0" #define REG_ESPACE_IDX (REG_ERANGE_IDX + sizeof "Invalid range end") gettext_noop ("Memory exhausted") /* REG_ESPACE */ "\0" #define REG_BADRPT_IDX (REG_ESPACE_IDX + sizeof "Memory exhausted") gettext_noop ("Invalid preceding regular expression") /* REG_BADRPT */ "\0" #define REG_EEND_IDX (REG_BADRPT_IDX + sizeof "Invalid preceding regular expression") gettext_noop ("Premature end of regular expression") /* REG_EEND */ "\0" #define REG_ESIZE_IDX (REG_EEND_IDX + sizeof "Premature end of regular expression") gettext_noop ("Regular expression too big") /* REG_ESIZE */ "\0" #define REG_ERPAREN_IDX (REG_ESIZE_IDX + sizeof "Regular expression too big") gettext_noop ("Unmatched ) or \\)") /* REG_ERPAREN */ }; const size_t __re_error_msgid_idx[] attribute_hidden = { REG_NOERROR_IDX, REG_NOMATCH_IDX, REG_BADPAT_IDX, REG_ECOLLATE_IDX, REG_ECTYPE_IDX, REG_EESCAPE_IDX, REG_ESUBREG_IDX, REG_EBRACK_IDX, REG_EPAREN_IDX, REG_EBRACE_IDX, REG_BADBR_IDX, REG_ERANGE_IDX, REG_ESPACE_IDX, REG_BADRPT_IDX, REG_EEND_IDX, REG_ESIZE_IDX, REG_ERPAREN_IDX }; /* Entry points for GNU code. */ /* re_compile_pattern is the GNU regular expression compiler: it compiles PATTERN (of length LENGTH) and puts the result in BUFP. Returns 0 if the pattern was valid, otherwise an error string. Assumes the `allocated' (and perhaps `buffer') and `translate' fields are set in BUFP on entry. */ const char *re_compile_pattern (const char *pattern, size_t length, struct re_pattern_buffer *bufp) { reg_errcode_t ret; /* And GNU code determines whether or not to get register information by passing null for the REGS argument to re_match, etc., not by setting no_sub, unless RE_NO_SUB is set. */ bufp->no_sub = !!(re_syntax_options & RE_NO_SUB); /* Match anchors at newline. */ bufp->newline_anchor = 1; ret = re_compile_internal (bufp, pattern, length, re_syntax_options); if (!ret) return NULL; return gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]); } #ifdef _LIBC weak_alias (__re_compile_pattern, re_compile_pattern) #endif /* Set by `re_set_syntax' to the current regexp syntax to recognize. Can also be assigned to arbitrarily: each pattern buffer stores its own syntax, so it can be changed between regex compilations. */ /* This has no initializer because initialized variables in Emacs become read-only after dumping. */ reg_syntax_t re_syntax_options; /* Specify the precise syntax of regexps for compilation. This provides for compatibility for various utilities which historically have different, incompatible syntaxes. The argument SYNTAX is a bit mask comprised of the various bits defined in regex.h. We return the old syntax. */ reg_syntax_t re_set_syntax (reg_syntax_t syntax) { reg_syntax_t ret = re_syntax_options; re_syntax_options = syntax; return ret; } #ifdef _LIBC weak_alias (__re_set_syntax, re_set_syntax) #endif int re_compile_fastmap (struct re_pattern_buffer *bufp) { re_dfa_t *dfa = (re_dfa_t *) bufp->buffer; char *fastmap = bufp->fastmap; memset (fastmap, '\0', sizeof (char) * SBC_MAX); re_compile_fastmap_iter (bufp, dfa->init_state, fastmap); if (dfa->init_state != dfa->init_state_word) re_compile_fastmap_iter (bufp, dfa->init_state_word, fastmap); if (dfa->init_state != dfa->init_state_nl) re_compile_fastmap_iter (bufp, dfa->init_state_nl, fastmap); if (dfa->init_state != dfa->init_state_begbuf) re_compile_fastmap_iter (bufp, dfa->init_state_begbuf, fastmap); bufp->fastmap_accurate = 1; return 0; } #ifdef _LIBC weak_alias (__re_compile_fastmap, re_compile_fastmap) #endif static inline void __attribute ((always_inline)) re_set_fastmap (char *fastmap, int icase, int ch) { fastmap[ch] = 1; if (icase) fastmap[tolower (ch)] = 1; } /* Helper function for re_compile_fastmap. Compile fastmap for the initial_state INIT_STATE. */ static void re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state, char *fastmap) { re_dfa_t *dfa = (re_dfa_t *) bufp->buffer; int node_cnt; int icase = (dfa->mb_cur_max == 1 && (bufp->syntax & RE_ICASE)); for (node_cnt = 0; node_cnt < init_state->nodes.nelem; ++node_cnt) { int node = init_state->nodes.elems[node_cnt]; re_token_type_t type = dfa->nodes[node].type; if (type == CHARACTER) { re_set_fastmap (fastmap, icase, dfa->nodes[node].opr.c); #ifdef RE_ENABLE_I18N if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1) { unsigned char *buf = alloca (dfa->mb_cur_max), *p; wchar_t wc; mbstate_t state; p = buf; *p++ = dfa->nodes[node].opr.c; while (++node < dfa->nodes_len && dfa->nodes[node].type == CHARACTER && dfa->nodes[node].mb_partial) *p++ = dfa->nodes[node].opr.c; memset (&state, '\0', sizeof (state)); if (mbrtowc (&wc, (const char *) buf, p - buf, &state) == p - buf && (__wcrtomb ((char *) buf, towlower (wc), &state) != (size_t) -1)) re_set_fastmap (fastmap, 0, buf[0]); } #endif } else if (type == SIMPLE_BRACKET) { int i, ch; for (i = 0, ch = 0; i < BITSET_WORDS; ++i) { int j; bitset_word_t w = dfa->nodes[node].opr.sbcset[i]; for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch) if (w & ((bitset_word_t) 1 << j)) re_set_fastmap (fastmap, icase, ch); } } #ifdef RE_ENABLE_I18N else if (type == COMPLEX_BRACKET) { int i; re_charset_t *cset = dfa->nodes[node].opr.mbcset; if (cset->non_match || cset->ncoll_syms || cset->nequiv_classes || cset->nranges || cset->nchar_classes) { # ifdef _LIBC if (_NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES) != 0) { /* In this case we want to catch the bytes which are the first byte of any collation elements. e.g. In da_DK, we want to catch 'a' since "aa" is a valid collation element, and don't catch 'b' since 'b' is the only collation element which starts from 'b'. */ const int32_t *table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); for (i = 0; i < SBC_MAX; ++i) if (table[i] < 0) re_set_fastmap (fastmap, icase, i); } # else if (dfa->mb_cur_max > 1) for (i = 0; i < SBC_MAX; ++i) if (__btowc (i) == WEOF) re_set_fastmap (fastmap, icase, i); # endif /* not _LIBC */ } for (i = 0; i < cset->nmbchars; ++i) { char buf[256]; mbstate_t state; memset (&state, '\0', sizeof (state)); if (__wcrtomb (buf, cset->mbchars[i], &state) != (size_t) -1) re_set_fastmap (fastmap, icase, *(unsigned char *) buf); if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1) { if (__wcrtomb (buf, towlower (cset->mbchars[i]), &state) != (size_t) -1) re_set_fastmap (fastmap, 0, *(unsigned char *) buf); } } } #endif /* RE_ENABLE_I18N */ else if (type == OP_PERIOD #ifdef RE_ENABLE_I18N || type == OP_UTF8_PERIOD #endif /* RE_ENABLE_I18N */ || type == END_OF_RE) { memset (fastmap, '\1', sizeof (char) * SBC_MAX); if (type == END_OF_RE) bufp->can_be_null = 1; return; } } } /* Entry point for POSIX code. */ /* regcomp takes a regular expression as a string and compiles it. PREG is a regex_t *. We do not expect any fields to be initialized, since POSIX says we shouldn't. Thus, we set `buffer' to the compiled pattern; `used' to the length of the compiled pattern; `syntax' to RE_SYNTAX_POSIX_EXTENDED if the REG_EXTENDED bit in CFLAGS is set; otherwise, to RE_SYNTAX_POSIX_BASIC; `newline_anchor' to REG_NEWLINE being set in CFLAGS; `fastmap' to an allocated space for the fastmap; `fastmap_accurate' to zero; `re_nsub' to the number of subexpressions in PATTERN. PATTERN is the address of the pattern string. CFLAGS is a series of bits which affect compilation. If REG_EXTENDED is set, we use POSIX extended syntax; otherwise, we use POSIX basic syntax. If REG_NEWLINE is set, then . and [^...] don't match newline. Also, regexec will try a match beginning after every newline. If REG_ICASE is set, then we considers upper- and lowercase versions of letters to be equivalent when matching. If REG_NOSUB is set, then when PREG is passed to regexec, that routine will report only success or failure, and nothing about the registers. It returns 0 if it succeeds, nonzero if it doesn't. (See regex.h for the return codes and their meanings.) */ int regcomp (regex_t *__restrict preg, const char *__restrict pattern, int cflags) { reg_errcode_t ret; reg_syntax_t syntax = ((cflags & REG_EXTENDED) ? RE_SYNTAX_POSIX_EXTENDED : RE_SYNTAX_POSIX_BASIC); preg->buffer = NULL; preg->allocated = 0; preg->used = 0; /* Try to allocate space for the fastmap. */ preg->fastmap = re_malloc (char, SBC_MAX); if (BE (preg->fastmap == NULL, 0)) return REG_ESPACE; syntax |= (cflags & REG_ICASE) ? RE_ICASE : 0; /* If REG_NEWLINE is set, newlines are treated differently. */ if (cflags & REG_NEWLINE) { /* REG_NEWLINE implies neither . nor [^...] match newline. */ syntax &= ~RE_DOT_NEWLINE; syntax |= RE_HAT_LISTS_NOT_NEWLINE; /* It also changes the matching behavior. */ preg->newline_anchor = 1; } else preg->newline_anchor = 0; preg->no_sub = !!(cflags & REG_NOSUB); preg->translate = NULL; ret = re_compile_internal (preg, pattern, strlen (pattern), syntax); /* POSIX doesn't distinguish between an unmatched open-group and an unmatched close-group: both are REG_EPAREN. */ if (ret == REG_ERPAREN) ret = REG_EPAREN; /* We have already checked preg->fastmap != NULL. */ if (BE (ret == REG_NOERROR, 1)) /* Compute the fastmap now, since regexec cannot modify the pattern buffer. This function never fails in this implementation. */ (void) re_compile_fastmap (preg); else { /* Some error occurred while compiling the expression. */ re_free (preg->fastmap); preg->fastmap = NULL; } return (int) ret; } #ifdef _LIBC weak_alias (__regcomp, regcomp) #endif /* Returns a message corresponding to an error code, ERRCODE, returned from either regcomp or regexec. We don't use PREG here. */ size_t regerror (int errcode, const regex_t *__restrict preg, char *__restrict errbuf, size_t errbuf_size) { const char *msg; size_t msg_size; if (BE (errcode < 0 || errcode >= (int) (sizeof (__re_error_msgid_idx) / sizeof (__re_error_msgid_idx[0])), 0)) /* Only error codes returned by the rest of the code should be passed to this routine. If we are given anything else, or if other regex code generates an invalid error code, then the program has a bug. Dump core so we can fix it. */ abort (); msg = gettext (__re_error_msgid + __re_error_msgid_idx[errcode]); msg_size = strlen (msg) + 1; /* Includes the null. */ if (BE (errbuf_size != 0, 1)) { if (BE (msg_size > errbuf_size, 0)) { #if defined HAVE_MEMPCPY || defined _LIBC *((char *) __mempcpy (errbuf, msg, errbuf_size - 1)) = '\0'; #else memcpy (errbuf, msg, errbuf_size - 1); errbuf[errbuf_size - 1] = 0; #endif } else memcpy (errbuf, msg, msg_size); } return msg_size; } #ifdef _LIBC weak_alias (__regerror, regerror) #endif #ifdef RE_ENABLE_I18N /* This static array is used for the map to single-byte characters when UTF-8 is used. Otherwise we would allocate memory just to initialize it the same all the time. UTF-8 is the preferred encoding so this is a worthwhile optimization. */ static const bitset_t utf8_sb_map = { /* Set the first 128 bits. */ [0 ... 0x80 / BITSET_WORD_BITS - 1] = BITSET_WORD_MAX }; #endif static void free_dfa_content (re_dfa_t *dfa) { int i, j; if (dfa->nodes) for (i = 0; i < dfa->nodes_len; ++i) free_token (dfa->nodes + i); re_free (dfa->nexts); for (i = 0; i < dfa->nodes_len; ++i) { if (dfa->eclosures != NULL) re_node_set_free (dfa->eclosures + i); if (dfa->inveclosures != NULL) re_node_set_free (dfa->inveclosures + i); if (dfa->edests != NULL) re_node_set_free (dfa->edests + i); } re_free (dfa->edests); re_free (dfa->eclosures); re_free (dfa->inveclosures); re_free (dfa->nodes); if (dfa->state_table) for (i = 0; i <= dfa->state_hash_mask; ++i) { struct re_state_table_entry *entry = dfa->state_table + i; for (j = 0; j < entry->num; ++j) { re_dfastate_t *state = entry->array[j]; free_state (state); } re_free (entry->array); } re_free (dfa->state_table); #ifdef RE_ENABLE_I18N if (dfa->sb_char != utf8_sb_map) re_free (dfa->sb_char); #endif re_free (dfa->subexp_map); #ifdef DEBUG re_free (dfa->re_str); #endif re_free (dfa); } /* Free dynamically allocated space used by PREG. */ void regfree (regex_t *preg) { re_dfa_t *dfa = (re_dfa_t *) preg->buffer; if (BE (dfa != NULL, 1)) free_dfa_content (dfa); preg->buffer = NULL; preg->allocated = 0; re_free (preg->fastmap); preg->fastmap = NULL; re_free (preg->translate); preg->translate = NULL; } #ifdef _LIBC weak_alias (__regfree, regfree) #endif /* Entry points compatible with 4.2 BSD regex library. We don't define them unless specifically requested. */ #if defined _REGEX_RE_COMP || defined _LIBC /* BSD has one and only one pattern buffer. */ static struct re_pattern_buffer re_comp_buf; char * # ifdef _LIBC /* Make these definitions weak in libc, so POSIX programs can redefine these names if they don't use our functions, and still use regcomp/regexec above without link errors. */ weak_function # endif re_comp (s) const char *s; { reg_errcode_t ret; char *fastmap; if (!s) { if (!re_comp_buf.buffer) return gettext ("No previous regular expression"); return 0; } if (re_comp_buf.buffer) { fastmap = re_comp_buf.fastmap; re_comp_buf.fastmap = NULL; __regfree (&re_comp_buf); memset (&re_comp_buf, '\0', sizeof (re_comp_buf)); re_comp_buf.fastmap = fastmap; } if (re_comp_buf.fastmap == NULL) { re_comp_buf.fastmap = (char *) malloc (SBC_MAX); if (re_comp_buf.fastmap == NULL) return (char *) gettext (__re_error_msgid + __re_error_msgid_idx[(int) REG_ESPACE]); } /* Since `re_exec' always passes NULL for the `regs' argument, we don't need to initialize the pattern buffer fields which affect it. */ /* Match anchors at newlines. */ re_comp_buf.newline_anchor = 1; ret = re_compile_internal (&re_comp_buf, s, strlen (s), re_syntax_options); if (!ret) return NULL; /* Yes, we're discarding `const' here if !HAVE_LIBINTL. */ return (char *) gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]); } #ifdef _LIBC libc_freeres_fn (free_mem) { __regfree (&re_comp_buf); } #endif #endif /* _REGEX_RE_COMP */ /* Internal entry point. Compile the regular expression PATTERN, whose length is LENGTH. SYNTAX indicate regular expression's syntax. */ static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern, size_t length, reg_syntax_t syntax) { reg_errcode_t err = REG_NOERROR; re_dfa_t *dfa; re_string_t regexp; /* Initialize the pattern buffer. */ preg->fastmap_accurate = 0; preg->syntax = syntax; preg->not_bol = preg->not_eol = 0; preg->used = 0; preg->re_nsub = 0; preg->can_be_null = 0; preg->regs_allocated = REGS_UNALLOCATED; /* Initialize the dfa. */ dfa = (re_dfa_t *) preg->buffer; if (BE (preg->allocated < sizeof (re_dfa_t), 0)) { /* If zero allocated, but buffer is non-null, try to realloc enough space. This loses if buffer's address is bogus, but that is the user's responsibility. If ->buffer is NULL this is a simple allocation. */ dfa = re_realloc (preg->buffer, re_dfa_t, 1); if (dfa == NULL) return REG_ESPACE; preg->allocated = sizeof (re_dfa_t); preg->buffer = (unsigned char *) dfa; } preg->used = sizeof (re_dfa_t); err = init_dfa (dfa, length); if (BE (err != REG_NOERROR, 0)) { free_dfa_content (dfa); preg->buffer = NULL; preg->allocated = 0; return err; } #ifdef DEBUG /* Note: length+1 will not overflow since it is checked in init_dfa. */ dfa->re_str = re_malloc (char, length + 1); strncpy (dfa->re_str, pattern, length + 1); #endif __libc_lock_init (dfa->lock); err = re_string_construct (®exp, pattern, length, preg->translate, syntax & RE_ICASE, dfa); if (BE (err != REG_NOERROR, 0)) { re_compile_internal_free_return: free_workarea_compile (preg); re_string_destruct (®exp); free_dfa_content (dfa); preg->buffer = NULL; preg->allocated = 0; return err; } /* Parse the regular expression, and build a structure tree. */ preg->re_nsub = 0; dfa->str_tree = parse (®exp, preg, syntax, &err); if (BE (dfa->str_tree == NULL, 0)) goto re_compile_internal_free_return; /* Analyze the tree and create the nfa. */ err = analyze (preg); if (BE (err != REG_NOERROR, 0)) goto re_compile_internal_free_return; #ifdef RE_ENABLE_I18N /* If possible, do searching in single byte encoding to speed things up. */ if (dfa->is_utf8 && !(syntax & RE_ICASE) && preg->translate == NULL) optimize_utf8 (dfa); #endif /* Then create the initial state of the dfa. */ err = create_initial_state (dfa); /* Release work areas. */ free_workarea_compile (preg); re_string_destruct (®exp); if (BE (err != REG_NOERROR, 0)) { free_dfa_content (dfa); preg->buffer = NULL; preg->allocated = 0; } return err; } /* Initialize DFA. We use the length of the regular expression PAT_LEN as the initial length of some arrays. */ static reg_errcode_t init_dfa (re_dfa_t *dfa, size_t pat_len) { unsigned int table_size; #ifndef _LIBC char *codeset_name; #endif memset (dfa, '\0', sizeof (re_dfa_t)); /* Force allocation of str_tree_storage the first time. */ dfa->str_tree_storage_idx = BIN_TREE_STORAGE_SIZE; /* Avoid overflows. */ if (pat_len == SIZE_MAX) return REG_ESPACE; dfa->nodes_alloc = pat_len + 1; dfa->nodes = re_malloc (re_token_t, dfa->nodes_alloc); /* table_size = 2 ^ ceil(log pat_len) */ for (table_size = 1; ; table_size <<= 1) if (table_size > pat_len) break; dfa->state_table = calloc (sizeof (struct re_state_table_entry), table_size); dfa->state_hash_mask = table_size - 1; dfa->mb_cur_max = MB_CUR_MAX; #ifdef _LIBC if (dfa->mb_cur_max == 6 && strcmp (_NL_CURRENT (LC_CTYPE, _NL_CTYPE_CODESET_NAME), "UTF-8") == 0) dfa->is_utf8 = 1; dfa->map_notascii = (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MAP_TO_NONASCII) != 0); #else # ifdef HAVE_LANGINFO_CODESET codeset_name = nl_langinfo (CODESET); # else codeset_name = getenv ("LC_ALL"); if (codeset_name == NULL || codeset_name[0] == '\0') codeset_name = getenv ("LC_CTYPE"); if (codeset_name == NULL || codeset_name[0] == '\0') codeset_name = getenv ("LANG"); if (codeset_name == NULL) codeset_name = ""; else if (strchr (codeset_name, '.') != NULL) codeset_name = strchr (codeset_name, '.') + 1; # endif if (strcasecmp (codeset_name, "UTF-8") == 0 || strcasecmp (codeset_name, "UTF8") == 0) dfa->is_utf8 = 1; /* We check exhaustively in the loop below if this charset is a superset of ASCII. */ dfa->map_notascii = 0; #endif #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) { if (dfa->is_utf8) dfa->sb_char = (re_bitset_ptr_t) utf8_sb_map; else { int i, j, ch; dfa->sb_char = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); if (BE (dfa->sb_char == NULL, 0)) return REG_ESPACE; /* Set the bits corresponding to single byte chars. */ for (i = 0, ch = 0; i < BITSET_WORDS; ++i) for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch) { wint_t wch = __btowc (ch); if (wch != WEOF) dfa->sb_char[i] |= (bitset_word_t) 1 << j; # ifndef _LIBC if (isascii (ch) && wch != ch) dfa->map_notascii = 1; # endif } } } #endif if (BE (dfa->nodes == NULL || dfa->state_table == NULL, 0)) return REG_ESPACE; return REG_NOERROR; } /* Initialize WORD_CHAR table, which indicate which character is "word". In this case "word" means that it is the word construction character used by some operators like "\<", "\>", etc. */ static void internal_function init_word_char (re_dfa_t *dfa) { int i, j, ch; dfa->word_ops_used = 1; for (i = 0, ch = 0; i < BITSET_WORDS; ++i) for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch) if (isalnum (ch) || ch == '_') dfa->word_char[i] |= (bitset_word_t) 1 << j; } /* Free the work area which are only used while compiling. */ static void free_workarea_compile (regex_t *preg) { re_dfa_t *dfa = (re_dfa_t *) preg->buffer; bin_tree_storage_t *storage, *next; for (storage = dfa->str_tree_storage; storage; storage = next) { next = storage->next; re_free (storage); } dfa->str_tree_storage = NULL; dfa->str_tree_storage_idx = BIN_TREE_STORAGE_SIZE; dfa->str_tree = NULL; re_free (dfa->org_indices); dfa->org_indices = NULL; } /* Create initial states for all contexts. */ static reg_errcode_t create_initial_state (re_dfa_t *dfa) { int first, i; reg_errcode_t err; re_node_set init_nodes; /* Initial states have the epsilon closure of the node which is the first node of the regular expression. */ first = dfa->str_tree->first->node_idx; dfa->init_node = first; err = re_node_set_init_copy (&init_nodes, dfa->eclosures + first); if (BE (err != REG_NOERROR, 0)) return err; /* The back-references which are in initial states can epsilon transit, since in this case all of the subexpressions can be null. Then we add epsilon closures of the nodes which are the next nodes of the back-references. */ if (dfa->nbackref > 0) for (i = 0; i < init_nodes.nelem; ++i) { int node_idx = init_nodes.elems[i]; re_token_type_t type = dfa->nodes[node_idx].type; int clexp_idx; if (type != OP_BACK_REF) continue; for (clexp_idx = 0; clexp_idx < init_nodes.nelem; ++clexp_idx) { re_token_t *clexp_node; clexp_node = dfa->nodes + init_nodes.elems[clexp_idx]; if (clexp_node->type == OP_CLOSE_SUBEXP && clexp_node->opr.idx == dfa->nodes[node_idx].opr.idx) break; } if (clexp_idx == init_nodes.nelem) continue; if (type == OP_BACK_REF) { int dest_idx = dfa->edests[node_idx].elems[0]; if (!re_node_set_contains (&init_nodes, dest_idx)) { re_node_set_merge (&init_nodes, dfa->eclosures + dest_idx); i = 0; } } } /* It must be the first time to invoke acquire_state. */ dfa->init_state = re_acquire_state_context (&err, dfa, &init_nodes, 0); /* We don't check ERR here, since the initial state must not be NULL. */ if (BE (dfa->init_state == NULL, 0)) return err; if (dfa->init_state->has_constraint) { dfa->init_state_word = re_acquire_state_context (&err, dfa, &init_nodes, CONTEXT_WORD); dfa->init_state_nl = re_acquire_state_context (&err, dfa, &init_nodes, CONTEXT_NEWLINE); dfa->init_state_begbuf = re_acquire_state_context (&err, dfa, &init_nodes, CONTEXT_NEWLINE | CONTEXT_BEGBUF); if (BE (dfa->init_state_word == NULL || dfa->init_state_nl == NULL || dfa->init_state_begbuf == NULL, 0)) return err; } else dfa->init_state_word = dfa->init_state_nl = dfa->init_state_begbuf = dfa->init_state; re_node_set_free (&init_nodes); return REG_NOERROR; } #ifdef RE_ENABLE_I18N /* If it is possible to do searching in single byte encoding instead of UTF-8 to speed things up, set dfa->mb_cur_max to 1, clear is_utf8 and change DFA nodes where needed. */ static void optimize_utf8 (re_dfa_t *dfa) { int node, i, mb_chars = 0, has_period = 0; for (node = 0; node < dfa->nodes_len; ++node) switch (dfa->nodes[node].type) { case CHARACTER: if (dfa->nodes[node].opr.c >= 0x80) mb_chars = 1; break; case ANCHOR: switch (dfa->nodes[node].opr.idx) { case LINE_FIRST: case LINE_LAST: case BUF_FIRST: case BUF_LAST: break; default: /* Word anchors etc. cannot be handled. */ return; } break; case OP_PERIOD: has_period = 1; break; case OP_BACK_REF: case OP_ALT: case END_OF_RE: case OP_DUP_ASTERISK: case OP_OPEN_SUBEXP: case OP_CLOSE_SUBEXP: break; case COMPLEX_BRACKET: return; case SIMPLE_BRACKET: /* Just double check. The non-ASCII range starts at 0x80. */ assert (0x80 % BITSET_WORD_BITS == 0); for (i = 0x80 / BITSET_WORD_BITS; i < BITSET_WORDS; ++i) if (dfa->nodes[node].opr.sbcset[i]) return; break; default: abort (); } if (mb_chars || has_period) for (node = 0; node < dfa->nodes_len; ++node) { if (dfa->nodes[node].type == CHARACTER && dfa->nodes[node].opr.c >= 0x80) dfa->nodes[node].mb_partial = 0; else if (dfa->nodes[node].type == OP_PERIOD) dfa->nodes[node].type = OP_UTF8_PERIOD; } /* The search can be in single byte locale. */ dfa->mb_cur_max = 1; dfa->is_utf8 = 0; dfa->has_mb_node = dfa->nbackref > 0 || has_period; } #endif /* Analyze the structure tree, and calculate "first", "next", "edest", "eclosure", and "inveclosure". */ static reg_errcode_t analyze (regex_t *preg) { re_dfa_t *dfa = (re_dfa_t *) preg->buffer; reg_errcode_t ret; /* Allocate arrays. */ dfa->nexts = re_malloc (int, dfa->nodes_alloc); dfa->org_indices = re_malloc (int, dfa->nodes_alloc); dfa->edests = re_malloc (re_node_set, dfa->nodes_alloc); dfa->eclosures = re_malloc (re_node_set, dfa->nodes_alloc); if (BE (dfa->nexts == NULL || dfa->org_indices == NULL || dfa->edests == NULL || dfa->eclosures == NULL, 0)) return REG_ESPACE; dfa->subexp_map = re_malloc (int, preg->re_nsub); if (dfa->subexp_map != NULL) { int i; for (i = 0; i < preg->re_nsub; i++) dfa->subexp_map[i] = i; preorder (dfa->str_tree, optimize_subexps, dfa); for (i = 0; i < preg->re_nsub; i++) if (dfa->subexp_map[i] != i) break; if (i == preg->re_nsub) { free (dfa->subexp_map); dfa->subexp_map = NULL; } } ret = postorder (dfa->str_tree, lower_subexps, preg); if (BE (ret != REG_NOERROR, 0)) return ret; ret = postorder (dfa->str_tree, calc_first, dfa); if (BE (ret != REG_NOERROR, 0)) return ret; preorder (dfa->str_tree, calc_next, dfa); ret = preorder (dfa->str_tree, link_nfa_nodes, dfa); if (BE (ret != REG_NOERROR, 0)) return ret; ret = calc_eclosure (dfa); if (BE (ret != REG_NOERROR, 0)) return ret; /* We only need this during the prune_impossible_nodes pass in regexec.c; skip it if p_i_n will not run, as calc_inveclosure can be quadratic. */ if ((!preg->no_sub && preg->re_nsub > 0 && dfa->has_plural_match) || dfa->nbackref) { dfa->inveclosures = re_malloc (re_node_set, dfa->nodes_len); if (BE (dfa->inveclosures == NULL, 0)) return REG_ESPACE; ret = calc_inveclosure (dfa); } return ret; } /* Our parse trees are very unbalanced, so we cannot use a stack to implement parse tree visits. Instead, we use parent pointers and some hairy code in these two functions. */ static reg_errcode_t postorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), void *extra) { bin_tree_t *node, *prev; for (node = root; ; ) { /* Descend down the tree, preferably to the left (or to the right if that's the only child). */ while (node->left || node->right) if (node->left) node = node->left; else node = node->right; do { reg_errcode_t err = fn (extra, node); if (BE (err != REG_NOERROR, 0)) return err; if (node->parent == NULL) return REG_NOERROR; prev = node; node = node->parent; } /* Go up while we have a node that is reached from the right. */ while (node->right == prev || node->right == NULL); node = node->right; } } static reg_errcode_t preorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), void *extra) { bin_tree_t *node; for (node = root; ; ) { reg_errcode_t err = fn (extra, node); if (BE (err != REG_NOERROR, 0)) return err; /* Go to the left node, or up and to the right. */ if (node->left) node = node->left; else { bin_tree_t *prev = NULL; while (node->right == prev || node->right == NULL) { prev = node; node = node->parent; if (!node) return REG_NOERROR; } node = node->right; } } } /* Optimization pass: if a SUBEXP is entirely contained, strip it and tell re_search_internal to map the inner one's opr.idx to this one's. Adjust backreferences as well. Requires a preorder visit. */ static reg_errcode_t optimize_subexps (void *extra, bin_tree_t *node) { re_dfa_t *dfa = (re_dfa_t *) extra; if (node->token.type == OP_BACK_REF && dfa->subexp_map) { int idx = node->token.opr.idx; node->token.opr.idx = dfa->subexp_map[idx]; dfa->used_bkref_map |= 1 << node->token.opr.idx; } else if (node->token.type == SUBEXP && node->left && node->left->token.type == SUBEXP) { int other_idx = node->left->token.opr.idx; node->left = node->left->left; if (node->left) node->left->parent = node; dfa->subexp_map[other_idx] = dfa->subexp_map[node->token.opr.idx]; if (other_idx < BITSET_WORD_BITS) dfa->used_bkref_map &= ~((bitset_word_t) 1 << other_idx); } return REG_NOERROR; } /* Lowering pass: Turn each SUBEXP node into the appropriate concatenation of OP_OPEN_SUBEXP, the body of the SUBEXP (if any) and OP_CLOSE_SUBEXP. */ static reg_errcode_t lower_subexps (void *extra, bin_tree_t *node) { regex_t *preg = (regex_t *) extra; reg_errcode_t err = REG_NOERROR; if (node->left && node->left->token.type == SUBEXP) { node->left = lower_subexp (&err, preg, node->left); if (node->left) node->left->parent = node; } if (node->right && node->right->token.type == SUBEXP) { node->right = lower_subexp (&err, preg, node->right); if (node->right) node->right->parent = node; } return err; } static bin_tree_t * lower_subexp (reg_errcode_t *err, regex_t *preg, bin_tree_t *node) { re_dfa_t *dfa = (re_dfa_t *) preg->buffer; bin_tree_t *body = node->left; bin_tree_t *op, *cls, *tree1, *tree; if (preg->no_sub /* We do not optimize empty subexpressions, because otherwise we may have bad CONCAT nodes with NULL children. This is obviously not very common, so we do not lose much. An example that triggers this case is the sed "script" /\(\)/x. */ && node->left != NULL && (node->token.opr.idx >= BITSET_WORD_BITS || !(dfa->used_bkref_map & ((bitset_word_t) 1 << node->token.opr.idx)))) return node->left; /* Convert the SUBEXP node to the concatenation of an OP_OPEN_SUBEXP, the contents, and an OP_CLOSE_SUBEXP. */ op = create_tree (dfa, NULL, NULL, OP_OPEN_SUBEXP); cls = create_tree (dfa, NULL, NULL, OP_CLOSE_SUBEXP); tree1 = body ? create_tree (dfa, body, cls, CONCAT) : cls; tree = create_tree (dfa, op, tree1, CONCAT); if (BE (tree == NULL || tree1 == NULL || op == NULL || cls == NULL, 0)) { *err = REG_ESPACE; return NULL; } op->token.opr.idx = cls->token.opr.idx = node->token.opr.idx; op->token.opt_subexp = cls->token.opt_subexp = node->token.opt_subexp; return tree; } /* Pass 1 in building the NFA: compute FIRST and create unlinked automaton nodes. Requires a postorder visit. */ static reg_errcode_t calc_first (void *extra, bin_tree_t *node) { re_dfa_t *dfa = (re_dfa_t *) extra; if (node->token.type == CONCAT) { node->first = node->left->first; node->node_idx = node->left->node_idx; } else { node->first = node; node->node_idx = re_dfa_add_node (dfa, node->token); if (BE (node->node_idx == -1, 0)) return REG_ESPACE; } return REG_NOERROR; } /* Pass 2: compute NEXT on the tree. Preorder visit. */ static reg_errcode_t calc_next (void *extra, bin_tree_t *node) { switch (node->token.type) { case OP_DUP_ASTERISK: node->left->next = node; break; case CONCAT: node->left->next = node->right->first; node->right->next = node->next; break; default: if (node->left) node->left->next = node->next; if (node->right) node->right->next = node->next; break; } return REG_NOERROR; } /* Pass 3: link all DFA nodes to their NEXT node (any order will do). */ static reg_errcode_t link_nfa_nodes (void *extra, bin_tree_t *node) { re_dfa_t *dfa = (re_dfa_t *) extra; int idx = node->node_idx; reg_errcode_t err = REG_NOERROR; switch (node->token.type) { case CONCAT: break; case END_OF_RE: assert (node->next == NULL); break; case OP_DUP_ASTERISK: case OP_ALT: { int left, right; dfa->has_plural_match = 1; if (node->left != NULL) left = node->left->first->node_idx; else left = node->next->node_idx; if (node->right != NULL) right = node->right->first->node_idx; else right = node->next->node_idx; assert (left > -1); assert (right > -1); err = re_node_set_init_2 (dfa->edests + idx, left, right); } break; case ANCHOR: case OP_OPEN_SUBEXP: case OP_CLOSE_SUBEXP: err = re_node_set_init_1 (dfa->edests + idx, node->next->node_idx); break; case OP_BACK_REF: dfa->nexts[idx] = node->next->node_idx; if (node->token.type == OP_BACK_REF) re_node_set_init_1 (dfa->edests + idx, dfa->nexts[idx]); break; default: assert (!IS_EPSILON_NODE (node->token.type)); dfa->nexts[idx] = node->next->node_idx; break; } return err; } /* Duplicate the epsilon closure of the node ROOT_NODE. Note that duplicated nodes have constraint INIT_CONSTRAINT in addition to their own constraint. */ static reg_errcode_t internal_function duplicate_node_closure (re_dfa_t *dfa, int top_org_node, int top_clone_node, int root_node, unsigned int init_constraint) { int org_node, clone_node, ret; unsigned int constraint = init_constraint; for (org_node = top_org_node, clone_node = top_clone_node;;) { int org_dest, clone_dest; if (dfa->nodes[org_node].type == OP_BACK_REF) { /* If the back reference epsilon-transit, its destination must also have the constraint. Then duplicate the epsilon closure of the destination of the back reference, and store it in edests of the back reference. */ org_dest = dfa->nexts[org_node]; re_node_set_empty (dfa->edests + clone_node); clone_dest = duplicate_node (dfa, org_dest, constraint); if (BE (clone_dest == -1, 0)) return REG_ESPACE; dfa->nexts[clone_node] = dfa->nexts[org_node]; ret = re_node_set_insert (dfa->edests + clone_node, clone_dest); if (BE (ret < 0, 0)) return REG_ESPACE; } else if (dfa->edests[org_node].nelem == 0) { /* In case of the node can't epsilon-transit, don't duplicate the destination and store the original destination as the destination of the node. */ dfa->nexts[clone_node] = dfa->nexts[org_node]; break; } else if (dfa->edests[org_node].nelem == 1) { /* In case of the node can epsilon-transit, and it has only one destination. */ org_dest = dfa->edests[org_node].elems[0]; re_node_set_empty (dfa->edests + clone_node); if (dfa->nodes[org_node].type == ANCHOR) { /* In case of the node has another constraint, append it. */ if (org_node == root_node && clone_node != org_node) { /* ...but if the node is root_node itself, it means the epsilon closure have a loop, then tie it to the destination of the root_node. */ ret = re_node_set_insert (dfa->edests + clone_node, org_dest); if (BE (ret < 0, 0)) return REG_ESPACE; break; } constraint |= dfa->nodes[org_node].opr.ctx_type; } clone_dest = duplicate_node (dfa, org_dest, constraint); if (BE (clone_dest == -1, 0)) return REG_ESPACE; ret = re_node_set_insert (dfa->edests + clone_node, clone_dest); if (BE (ret < 0, 0)) return REG_ESPACE; } else /* dfa->edests[org_node].nelem == 2 */ { /* In case of the node can epsilon-transit, and it has two destinations. In the bin_tree_t and DFA, that's '|' and '*'. */ org_dest = dfa->edests[org_node].elems[0]; re_node_set_empty (dfa->edests + clone_node); /* Search for a duplicated node which satisfies the constraint. */ clone_dest = search_duplicated_node (dfa, org_dest, constraint); if (clone_dest == -1) { /* There are no such a duplicated node, create a new one. */ reg_errcode_t err; clone_dest = duplicate_node (dfa, org_dest, constraint); if (BE (clone_dest == -1, 0)) return REG_ESPACE; ret = re_node_set_insert (dfa->edests + clone_node, clone_dest); if (BE (ret < 0, 0)) return REG_ESPACE; err = duplicate_node_closure (dfa, org_dest, clone_dest, root_node, constraint); if (BE (err != REG_NOERROR, 0)) return err; } else { /* There are a duplicated node which satisfy the constraint, use it to avoid infinite loop. */ ret = re_node_set_insert (dfa->edests + clone_node, clone_dest); if (BE (ret < 0, 0)) return REG_ESPACE; } org_dest = dfa->edests[org_node].elems[1]; clone_dest = duplicate_node (dfa, org_dest, constraint); if (BE (clone_dest == -1, 0)) return REG_ESPACE; ret = re_node_set_insert (dfa->edests + clone_node, clone_dest); if (BE (ret < 0, 0)) return REG_ESPACE; } org_node = org_dest; clone_node = clone_dest; } return REG_NOERROR; } /* Search for a node which is duplicated from the node ORG_NODE, and satisfies the constraint CONSTRAINT. */ static int search_duplicated_node (const re_dfa_t *dfa, int org_node, unsigned int constraint) { int idx; for (idx = dfa->nodes_len - 1; dfa->nodes[idx].duplicated && idx > 0; --idx) { if (org_node == dfa->org_indices[idx] && constraint == dfa->nodes[idx].constraint) return idx; /* Found. */ } return -1; /* Not found. */ } /* Duplicate the node whose index is ORG_IDX and set the constraint CONSTRAINT. Return the index of the new node, or -1 if insufficient storage is available. */ static int duplicate_node (re_dfa_t *dfa, int org_idx, unsigned int constraint) { int dup_idx = re_dfa_add_node (dfa, dfa->nodes[org_idx]); if (BE (dup_idx != -1, 1)) { dfa->nodes[dup_idx].constraint = constraint; if (dfa->nodes[org_idx].type == ANCHOR) dfa->nodes[dup_idx].constraint |= dfa->nodes[org_idx].opr.ctx_type; dfa->nodes[dup_idx].duplicated = 1; /* Store the index of the original node. */ dfa->org_indices[dup_idx] = org_idx; } return dup_idx; } static reg_errcode_t calc_inveclosure (re_dfa_t *dfa) { int src, idx, ret; for (idx = 0; idx < dfa->nodes_len; ++idx) re_node_set_init_empty (dfa->inveclosures + idx); for (src = 0; src < dfa->nodes_len; ++src) { int *elems = dfa->eclosures[src].elems; for (idx = 0; idx < dfa->eclosures[src].nelem; ++idx) { ret = re_node_set_insert_last (dfa->inveclosures + elems[idx], src); if (BE (ret == -1, 0)) return REG_ESPACE; } } return REG_NOERROR; } /* Calculate "eclosure" for all the node in DFA. */ static reg_errcode_t calc_eclosure (re_dfa_t *dfa) { int node_idx, incomplete; #ifdef DEBUG assert (dfa->nodes_len > 0); #endif incomplete = 0; /* For each nodes, calculate epsilon closure. */ for (node_idx = 0; ; ++node_idx) { reg_errcode_t err; re_node_set eclosure_elem; if (node_idx == dfa->nodes_len) { if (!incomplete) break; incomplete = 0; node_idx = 0; } #ifdef DEBUG assert (dfa->eclosures[node_idx].nelem != -1); #endif /* If we have already calculated, skip it. */ if (dfa->eclosures[node_idx].nelem != 0) continue; /* Calculate epsilon closure of `node_idx'. */ err = calc_eclosure_iter (&eclosure_elem, dfa, node_idx, 1); if (BE (err != REG_NOERROR, 0)) return err; if (dfa->eclosures[node_idx].nelem == 0) { incomplete = 1; re_node_set_free (&eclosure_elem); } } return REG_NOERROR; } /* Calculate epsilon closure of NODE. */ static reg_errcode_t calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, int node, int root) { reg_errcode_t err; unsigned int constraint; int i, incomplete; re_node_set eclosure; incomplete = 0; err = re_node_set_alloc (&eclosure, dfa->edests[node].nelem + 1); if (BE (err != REG_NOERROR, 0)) return err; /* This indicates that we are calculating this node now. We reference this value to avoid infinite loop. */ dfa->eclosures[node].nelem = -1; constraint = ((dfa->nodes[node].type == ANCHOR) ? dfa->nodes[node].opr.ctx_type : 0); /* If the current node has constraints, duplicate all nodes. Since they must inherit the constraints. */ if (constraint && dfa->edests[node].nelem && !dfa->nodes[dfa->edests[node].elems[0]].duplicated) { err = duplicate_node_closure (dfa, node, node, node, constraint); if (BE (err != REG_NOERROR, 0)) return err; } /* Expand each epsilon destination nodes. */ if (IS_EPSILON_NODE(dfa->nodes[node].type)) for (i = 0; i < dfa->edests[node].nelem; ++i) { re_node_set eclosure_elem; int edest = dfa->edests[node].elems[i]; /* If calculating the epsilon closure of `edest' is in progress, return intermediate result. */ if (dfa->eclosures[edest].nelem == -1) { incomplete = 1; continue; } /* If we haven't calculated the epsilon closure of `edest' yet, calculate now. Otherwise use calculated epsilon closure. */ if (dfa->eclosures[edest].nelem == 0) { err = calc_eclosure_iter (&eclosure_elem, dfa, edest, 0); if (BE (err != REG_NOERROR, 0)) return err; } else eclosure_elem = dfa->eclosures[edest]; /* Merge the epsilon closure of `edest'. */ re_node_set_merge (&eclosure, &eclosure_elem); /* If the epsilon closure of `edest' is incomplete, the epsilon closure of this node is also incomplete. */ if (dfa->eclosures[edest].nelem == 0) { incomplete = 1; re_node_set_free (&eclosure_elem); } } /* Epsilon closures include itself. */ re_node_set_insert (&eclosure, node); if (incomplete && !root) dfa->eclosures[node].nelem = 0; else dfa->eclosures[node] = eclosure; *new_set = eclosure; return REG_NOERROR; } /* Functions for token which are used in the parser. */ /* Fetch a token from INPUT. We must not use this function inside bracket expressions. */ static void internal_function fetch_token (re_token_t *result, re_string_t *input, reg_syntax_t syntax) { re_string_skip_bytes (input, peek_token (result, input, syntax)); } /* Peek a token from INPUT, and return the length of the token. We must not use this function inside bracket expressions. */ static int internal_function peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax) { unsigned char c; if (re_string_eoi (input)) { token->type = END_OF_RE; return 0; } c = re_string_peek_byte (input, 0); token->opr.c = c; token->word_char = 0; #ifdef RE_ENABLE_I18N token->mb_partial = 0; if (input->mb_cur_max > 1 && !re_string_first_byte (input, re_string_cur_idx (input))) { token->type = CHARACTER; token->mb_partial = 1; return 1; } #endif if (c == '\\') { unsigned char c2; if (re_string_cur_idx (input) + 1 >= re_string_length (input)) { token->type = BACK_SLASH; return 1; } c2 = re_string_peek_byte_case (input, 1); token->opr.c = c2; token->type = CHARACTER; #ifdef RE_ENABLE_I18N if (input->mb_cur_max > 1) { wint_t wc = re_string_wchar_at (input, re_string_cur_idx (input) + 1); token->word_char = IS_WIDE_WORD_CHAR (wc) != 0; } else #endif token->word_char = IS_WORD_CHAR (c2) != 0; switch (c2) { case '|': if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_NO_BK_VBAR)) token->type = OP_ALT; break; case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (!(syntax & RE_NO_BK_REFS)) { token->type = OP_BACK_REF; token->opr.idx = c2 - '1'; } break; case '<': if (!(syntax & RE_NO_GNU_OPS)) { token->type = ANCHOR; token->opr.ctx_type = WORD_FIRST; } break; case '>': if (!(syntax & RE_NO_GNU_OPS)) { token->type = ANCHOR; token->opr.ctx_type = WORD_LAST; } break; case 'b': if (!(syntax & RE_NO_GNU_OPS)) { token->type = ANCHOR; token->opr.ctx_type = WORD_DELIM; } break; case 'B': if (!(syntax & RE_NO_GNU_OPS)) { token->type = ANCHOR; token->opr.ctx_type = NOT_WORD_DELIM; } break; case 'w': if (!(syntax & RE_NO_GNU_OPS)) token->type = OP_WORD; break; case 'W': if (!(syntax & RE_NO_GNU_OPS)) token->type = OP_NOTWORD; break; case 's': if (!(syntax & RE_NO_GNU_OPS)) token->type = OP_SPACE; break; case 'S': if (!(syntax & RE_NO_GNU_OPS)) token->type = OP_NOTSPACE; break; case '`': if (!(syntax & RE_NO_GNU_OPS)) { token->type = ANCHOR; token->opr.ctx_type = BUF_FIRST; } break; case '\'': if (!(syntax & RE_NO_GNU_OPS)) { token->type = ANCHOR; token->opr.ctx_type = BUF_LAST; } break; case '(': if (!(syntax & RE_NO_BK_PARENS)) token->type = OP_OPEN_SUBEXP; break; case ')': if (!(syntax & RE_NO_BK_PARENS)) token->type = OP_CLOSE_SUBEXP; break; case '+': if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_BK_PLUS_QM)) token->type = OP_DUP_PLUS; break; case '?': if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_BK_PLUS_QM)) token->type = OP_DUP_QUESTION; break; case '{': if ((syntax & RE_INTERVALS) && (!(syntax & RE_NO_BK_BRACES))) token->type = OP_OPEN_DUP_NUM; break; case '}': if ((syntax & RE_INTERVALS) && (!(syntax & RE_NO_BK_BRACES))) token->type = OP_CLOSE_DUP_NUM; break; default: break; } return 2; } token->type = CHARACTER; #ifdef RE_ENABLE_I18N if (input->mb_cur_max > 1) { wint_t wc = re_string_wchar_at (input, re_string_cur_idx (input)); token->word_char = IS_WIDE_WORD_CHAR (wc) != 0; } else #endif token->word_char = IS_WORD_CHAR (token->opr.c); switch (c) { case '\n': if (syntax & RE_NEWLINE_ALT) token->type = OP_ALT; break; case '|': if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_NO_BK_VBAR)) token->type = OP_ALT; break; case '*': token->type = OP_DUP_ASTERISK; break; case '+': if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_BK_PLUS_QM)) token->type = OP_DUP_PLUS; break; case '?': if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_BK_PLUS_QM)) token->type = OP_DUP_QUESTION; break; case '{': if ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES)) token->type = OP_OPEN_DUP_NUM; break; case '}': if ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES)) token->type = OP_CLOSE_DUP_NUM; break; case '(': if (syntax & RE_NO_BK_PARENS) token->type = OP_OPEN_SUBEXP; break; case ')': if (syntax & RE_NO_BK_PARENS) token->type = OP_CLOSE_SUBEXP; break; case '[': token->type = OP_OPEN_BRACKET; break; case '.': token->type = OP_PERIOD; break; case '^': if (!(syntax & (RE_CONTEXT_INDEP_ANCHORS | RE_CARET_ANCHORS_HERE)) && re_string_cur_idx (input) != 0) { char prev = re_string_peek_byte (input, -1); if (!(syntax & RE_NEWLINE_ALT) || prev != '\n') break; } token->type = ANCHOR; token->opr.ctx_type = LINE_FIRST; break; case '$': if (!(syntax & RE_CONTEXT_INDEP_ANCHORS) && re_string_cur_idx (input) + 1 != re_string_length (input)) { re_token_t next; re_string_skip_bytes (input, 1); peek_token (&next, input, syntax); re_string_skip_bytes (input, -1); if (next.type != OP_ALT && next.type != OP_CLOSE_SUBEXP) break; } token->type = ANCHOR; token->opr.ctx_type = LINE_LAST; break; default: break; } return 1; } /* Peek a token from INPUT, and return the length of the token. We must not use this function out of bracket expressions. */ static int internal_function peek_token_bracket (re_token_t *token, re_string_t *input, reg_syntax_t syntax) { unsigned char c; if (re_string_eoi (input)) { token->type = END_OF_RE; return 0; } c = re_string_peek_byte (input, 0); token->opr.c = c; #ifdef RE_ENABLE_I18N if (input->mb_cur_max > 1 && !re_string_first_byte (input, re_string_cur_idx (input))) { token->type = CHARACTER; return 1; } #endif /* RE_ENABLE_I18N */ if (c == '\\' && (syntax & RE_BACKSLASH_ESCAPE_IN_LISTS) && re_string_cur_idx (input) + 1 < re_string_length (input)) { /* In this case, '\' escape a character. */ unsigned char c2; re_string_skip_bytes (input, 1); c2 = re_string_peek_byte (input, 0); token->opr.c = c2; token->type = CHARACTER; return 1; } if (c == '[') /* '[' is a special char in a bracket exps. */ { unsigned char c2; int token_len; if (re_string_cur_idx (input) + 1 < re_string_length (input)) c2 = re_string_peek_byte (input, 1); else c2 = 0; token->opr.c = c2; token_len = 2; switch (c2) { case '.': token->type = OP_OPEN_COLL_ELEM; break; case '=': token->type = OP_OPEN_EQUIV_CLASS; break; case ':': if (syntax & RE_CHAR_CLASSES) { token->type = OP_OPEN_CHAR_CLASS; break; } /* else fall through. */ default: token->type = CHARACTER; token->opr.c = c; token_len = 1; break; } return token_len; } switch (c) { case '-': token->type = OP_CHARSET_RANGE; break; case ']': token->type = OP_CLOSE_BRACKET; break; case '^': token->type = OP_NON_MATCH_LIST; break; default: token->type = CHARACTER; } return 1; } /* Functions for parser. */ /* Entry point of the parser. Parse the regular expression REGEXP and return the structure tree. If an error is occured, ERR is set by error code, and return NULL. This function build the following tree, from regular expression : CAT / \ / \ EOR CAT means concatenation. EOR means end of regular expression. */ static bin_tree_t * parse (re_string_t *regexp, regex_t *preg, reg_syntax_t syntax, reg_errcode_t *err) { re_dfa_t *dfa = (re_dfa_t *) preg->buffer; bin_tree_t *tree, *eor, *root; re_token_t current_token; dfa->syntax = syntax; fetch_token (¤t_token, regexp, syntax | RE_CARET_ANCHORS_HERE); tree = parse_reg_exp (regexp, preg, ¤t_token, syntax, 0, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; eor = create_tree (dfa, NULL, NULL, END_OF_RE); if (tree != NULL) root = create_tree (dfa, tree, eor, CONCAT); else root = eor; if (BE (eor == NULL || root == NULL, 0)) { *err = REG_ESPACE; return NULL; } return root; } /* This function build the following tree, from regular expression |: ALT / \ / \ ALT means alternative, which represents the operator `|'. */ static bin_tree_t * parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, int nest, reg_errcode_t *err) { re_dfa_t *dfa = (re_dfa_t *) preg->buffer; bin_tree_t *tree, *branch = NULL; tree = parse_branch (regexp, preg, token, syntax, nest, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; while (token->type == OP_ALT) { fetch_token (token, regexp, syntax | RE_CARET_ANCHORS_HERE); if (token->type != OP_ALT && token->type != END_OF_RE && (nest == 0 || token->type != OP_CLOSE_SUBEXP)) { branch = parse_branch (regexp, preg, token, syntax, nest, err); if (BE (*err != REG_NOERROR && branch == NULL, 0)) return NULL; } else branch = NULL; tree = create_tree (dfa, tree, branch, OP_ALT); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } } return tree; } /* This function build the following tree, from regular expression : CAT / \ / \ CAT means concatenation. */ static bin_tree_t * parse_branch (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, int nest, reg_errcode_t *err) { bin_tree_t *tree, *exp; re_dfa_t *dfa = (re_dfa_t *) preg->buffer; tree = parse_expression (regexp, preg, token, syntax, nest, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; while (token->type != OP_ALT && token->type != END_OF_RE && (nest == 0 || token->type != OP_CLOSE_SUBEXP)) { exp = parse_expression (regexp, preg, token, syntax, nest, err); if (BE (*err != REG_NOERROR && exp == NULL, 0)) { return NULL; } if (tree != NULL && exp != NULL) { tree = create_tree (dfa, tree, exp, CONCAT); if (tree == NULL) { *err = REG_ESPACE; return NULL; } } else if (tree == NULL) tree = exp; /* Otherwise exp == NULL, we don't need to create new tree. */ } return tree; } /* This function build the following tree, from regular expression a*: * | a */ static bin_tree_t * parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, int nest, reg_errcode_t *err) { re_dfa_t *dfa = (re_dfa_t *) preg->buffer; bin_tree_t *tree; switch (token->type) { case CHARACTER: tree = create_token_tree (dfa, NULL, NULL, token); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) { while (!re_string_eoi (regexp) && !re_string_first_byte (regexp, re_string_cur_idx (regexp))) { bin_tree_t *mbc_remain; fetch_token (token, regexp, syntax); mbc_remain = create_token_tree (dfa, NULL, NULL, token); tree = create_tree (dfa, tree, mbc_remain, CONCAT); if (BE (mbc_remain == NULL || tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } } } #endif break; case OP_OPEN_SUBEXP: tree = parse_sub_exp (regexp, preg, token, syntax, nest + 1, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; break; case OP_OPEN_BRACKET: tree = parse_bracket_exp (regexp, dfa, token, syntax, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; break; case OP_BACK_REF: if (!BE (dfa->completed_bkref_map & (1 << token->opr.idx), 1)) { *err = REG_ESUBREG; return NULL; } dfa->used_bkref_map |= 1 << token->opr.idx; tree = create_token_tree (dfa, NULL, NULL, token); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } ++dfa->nbackref; dfa->has_mb_node = 1; break; case OP_OPEN_DUP_NUM: if (syntax & RE_CONTEXT_INVALID_DUP) { *err = REG_BADRPT; return NULL; } /* FALLTHROUGH */ case OP_DUP_ASTERISK: case OP_DUP_PLUS: case OP_DUP_QUESTION: if (syntax & RE_CONTEXT_INVALID_OPS) { *err = REG_BADRPT; return NULL; } else if (syntax & RE_CONTEXT_INDEP_OPS) { fetch_token (token, regexp, syntax); return parse_expression (regexp, preg, token, syntax, nest, err); } /* else fall through */ case OP_CLOSE_SUBEXP: if ((token->type == OP_CLOSE_SUBEXP) && !(syntax & RE_UNMATCHED_RIGHT_PAREN_ORD)) { *err = REG_ERPAREN; return NULL; } /* else fall through */ case OP_CLOSE_DUP_NUM: /* We treat it as a normal character. */ /* Then we can these characters as normal characters. */ token->type = CHARACTER; /* mb_partial and word_char bits should be initialized already by peek_token. */ tree = create_token_tree (dfa, NULL, NULL, token); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } break; case ANCHOR: if ((token->opr.ctx_type & (WORD_DELIM | NOT_WORD_DELIM | WORD_FIRST | WORD_LAST)) && dfa->word_ops_used == 0) init_word_char (dfa); if (token->opr.ctx_type == WORD_DELIM || token->opr.ctx_type == NOT_WORD_DELIM) { bin_tree_t *tree_first, *tree_last; if (token->opr.ctx_type == WORD_DELIM) { token->opr.ctx_type = WORD_FIRST; tree_first = create_token_tree (dfa, NULL, NULL, token); token->opr.ctx_type = WORD_LAST; } else { token->opr.ctx_type = INSIDE_WORD; tree_first = create_token_tree (dfa, NULL, NULL, token); token->opr.ctx_type = INSIDE_NOTWORD; } tree_last = create_token_tree (dfa, NULL, NULL, token); tree = create_tree (dfa, tree_first, tree_last, OP_ALT); if (BE (tree_first == NULL || tree_last == NULL || tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } } else { tree = create_token_tree (dfa, NULL, NULL, token); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } } /* We must return here, since ANCHORs can't be followed by repetition operators. eg. RE"^*" is invalid or "", it must not be "". */ fetch_token (token, regexp, syntax); return tree; case OP_PERIOD: tree = create_token_tree (dfa, NULL, NULL, token); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } if (dfa->mb_cur_max > 1) dfa->has_mb_node = 1; break; case OP_WORD: case OP_NOTWORD: tree = build_charclass_op (dfa, regexp->trans, (const unsigned char *) "alnum", (const unsigned char *) "_", token->type == OP_NOTWORD, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; break; case OP_SPACE: case OP_NOTSPACE: tree = build_charclass_op (dfa, regexp->trans, (const unsigned char *) "space", (const unsigned char *) "", token->type == OP_NOTSPACE, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; break; case OP_ALT: case END_OF_RE: return NULL; case BACK_SLASH: *err = REG_EESCAPE; return NULL; default: /* Must not happen? */ #ifdef DEBUG assert (0); #endif return NULL; } fetch_token (token, regexp, syntax); while (token->type == OP_DUP_ASTERISK || token->type == OP_DUP_PLUS || token->type == OP_DUP_QUESTION || token->type == OP_OPEN_DUP_NUM) { tree = parse_dup_op (tree, regexp, dfa, token, syntax, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; /* In BRE consecutive duplications are not allowed. */ if ((syntax & RE_CONTEXT_INVALID_DUP) && (token->type == OP_DUP_ASTERISK || token->type == OP_OPEN_DUP_NUM)) { *err = REG_BADRPT; return NULL; } } return tree; } /* This function build the following tree, from regular expression (): SUBEXP | */ static bin_tree_t * parse_sub_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, int nest, reg_errcode_t *err) { re_dfa_t *dfa = (re_dfa_t *) preg->buffer; bin_tree_t *tree; size_t cur_nsub; cur_nsub = preg->re_nsub++; fetch_token (token, regexp, syntax | RE_CARET_ANCHORS_HERE); /* The subexpression may be a null string. */ if (token->type == OP_CLOSE_SUBEXP) tree = NULL; else { tree = parse_reg_exp (regexp, preg, token, syntax, nest, err); if (BE (*err == REG_NOERROR && token->type != OP_CLOSE_SUBEXP, 0)) *err = REG_EPAREN; if (BE (*err != REG_NOERROR, 0)) return NULL; } if (cur_nsub <= '9' - '1') dfa->completed_bkref_map |= 1 << cur_nsub; tree = create_tree (dfa, tree, NULL, SUBEXP); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } tree->token.opr.idx = cur_nsub; return tree; } /* This function parse repetition operators like "*", "+", "{1,3}" etc. */ static bin_tree_t * parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, reg_syntax_t syntax, reg_errcode_t *err) { bin_tree_t *tree = NULL, *old_tree = NULL; int i, start, end, start_idx = re_string_cur_idx (regexp); re_token_t start_token = *token; if (token->type == OP_OPEN_DUP_NUM) { end = 0; start = fetch_number (regexp, token, syntax); if (start == -1) { if (token->type == CHARACTER && token->opr.c == ',') start = 0; /* We treat "{,m}" as "{0,m}". */ else { *err = REG_BADBR; /* {} is invalid. */ return NULL; } } if (BE (start != -2, 1)) { /* We treat "{n}" as "{n,n}". */ end = ((token->type == OP_CLOSE_DUP_NUM) ? start : ((token->type == CHARACTER && token->opr.c == ',') ? fetch_number (regexp, token, syntax) : -2)); } if (BE (start == -2 || end == -2, 0)) { /* Invalid sequence. */ if (BE (!(syntax & RE_INVALID_INTERVAL_ORD), 0)) { if (token->type == END_OF_RE) *err = REG_EBRACE; else *err = REG_BADBR; return NULL; } /* If the syntax bit is set, rollback. */ re_string_set_index (regexp, start_idx); *token = start_token; token->type = CHARACTER; /* mb_partial and word_char bits should be already initialized by peek_token. */ return elem; } if (BE (end != -1 && start > end, 0)) { /* First number greater than second. */ *err = REG_BADBR; return NULL; } } else { start = (token->type == OP_DUP_PLUS) ? 1 : 0; end = (token->type == OP_DUP_QUESTION) ? 1 : -1; } fetch_token (token, regexp, syntax); if (BE (elem == NULL, 0)) return NULL; if (BE (start == 0 && end == 0, 0)) { postorder (elem, free_tree, NULL); return NULL; } /* Extract "{n,m}" to "...{0,}". */ if (BE (start > 0, 0)) { tree = elem; for (i = 2; i <= start; ++i) { elem = duplicate_tree (elem, dfa); tree = create_tree (dfa, tree, elem, CONCAT); if (BE (elem == NULL || tree == NULL, 0)) goto parse_dup_op_espace; } if (start == end) return tree; /* Duplicate ELEM before it is marked optional. */ elem = duplicate_tree (elem, dfa); old_tree = tree; } else old_tree = NULL; if (elem->token.type == SUBEXP) postorder (elem, mark_opt_subexp, (void *) (long) elem->token.opr.idx); tree = create_tree (dfa, elem, NULL, (end == -1 ? OP_DUP_ASTERISK : OP_ALT)); if (BE (tree == NULL, 0)) goto parse_dup_op_espace; /* This loop is actually executed only when end != -1, to rewrite {0,n} as ((...?)?)?... We have already created the start+1-th copy. */ for (i = start + 2; i <= end; ++i) { elem = duplicate_tree (elem, dfa); tree = create_tree (dfa, tree, elem, CONCAT); if (BE (elem == NULL || tree == NULL, 0)) goto parse_dup_op_espace; tree = create_tree (dfa, tree, NULL, OP_ALT); if (BE (tree == NULL, 0)) goto parse_dup_op_espace; } if (old_tree) tree = create_tree (dfa, old_tree, tree, CONCAT); return tree; parse_dup_op_espace: *err = REG_ESPACE; return NULL; } /* Size of the names for collating symbol/equivalence_class/character_class. I'm not sure, but maybe enough. */ #define BRACKET_NAME_BUF_SIZE 32 #ifndef _LIBC /* Local function for parse_bracket_exp only used in case of NOT _LIBC. Build the range expression which starts from START_ELEM, and ends at END_ELEM. The result are written to MBCSET and SBCSET. RANGE_ALLOC is the allocated size of mbcset->range_starts, and mbcset->range_ends, is a pointer argument sinse we may update it. */ static reg_errcode_t internal_function # ifdef RE_ENABLE_I18N build_range_exp (bitset_t sbcset, re_charset_t *mbcset, int *range_alloc, bracket_elem_t *start_elem, bracket_elem_t *end_elem) # else /* not RE_ENABLE_I18N */ build_range_exp (bitset_t sbcset, bracket_elem_t *start_elem, bracket_elem_t *end_elem) # endif /* not RE_ENABLE_I18N */ { unsigned int start_ch, end_ch; /* Equivalence Classes and Character Classes can't be a range start/end. */ if (BE (start_elem->type == EQUIV_CLASS || start_elem->type == CHAR_CLASS || end_elem->type == EQUIV_CLASS || end_elem->type == CHAR_CLASS, 0)) return REG_ERANGE; /* We can handle no multi character collating elements without libc support. */ if (BE ((start_elem->type == COLL_SYM && strlen ((char *) start_elem->opr.name) > 1) || (end_elem->type == COLL_SYM && strlen ((char *) end_elem->opr.name) > 1), 0)) return REG_ECOLLATE; # ifdef RE_ENABLE_I18N { wchar_t wc; wint_t start_wc; wint_t end_wc; wchar_t cmp_buf[6] = {L'\0', L'\0', L'\0', L'\0', L'\0', L'\0'}; start_ch = ((start_elem->type == SB_CHAR) ? start_elem->opr.ch : ((start_elem->type == COLL_SYM) ? start_elem->opr.name[0] : 0)); end_ch = ((end_elem->type == SB_CHAR) ? end_elem->opr.ch : ((end_elem->type == COLL_SYM) ? end_elem->opr.name[0] : 0)); start_wc = ((start_elem->type == SB_CHAR || start_elem->type == COLL_SYM) ? __btowc (start_ch) : start_elem->opr.wch); end_wc = ((end_elem->type == SB_CHAR || end_elem->type == COLL_SYM) ? __btowc (end_ch) : end_elem->opr.wch); if (start_wc == WEOF || end_wc == WEOF) return REG_ECOLLATE; cmp_buf[0] = start_wc; cmp_buf[4] = end_wc; if (wcscoll (cmp_buf, cmp_buf + 4) > 0) return REG_ERANGE; /* Got valid collation sequence values, add them as a new entry. However, for !_LIBC we have no collation elements: if the character set is single byte, the single byte character set that we build below suffices. parse_bracket_exp passes no MBCSET if dfa->mb_cur_max == 1. */ if (mbcset) { /* Check the space of the arrays. */ if (BE (*range_alloc == mbcset->nranges, 0)) { /* There is not enough space, need realloc. */ wchar_t *new_array_start, *new_array_end; int new_nranges; /* +1 in case of mbcset->nranges is 0. */ new_nranges = 2 * mbcset->nranges + 1; /* Use realloc since mbcset->range_starts and mbcset->range_ends are NULL if *range_alloc == 0. */ new_array_start = re_realloc (mbcset->range_starts, wchar_t, new_nranges); new_array_end = re_realloc (mbcset->range_ends, wchar_t, new_nranges); if (BE (new_array_start == NULL || new_array_end == NULL, 0)) return REG_ESPACE; mbcset->range_starts = new_array_start; mbcset->range_ends = new_array_end; *range_alloc = new_nranges; } mbcset->range_starts[mbcset->nranges] = start_wc; mbcset->range_ends[mbcset->nranges++] = end_wc; } /* Build the table for single byte characters. */ for (wc = 0; wc < SBC_MAX; ++wc) { cmp_buf[2] = wc; if (wcscoll (cmp_buf, cmp_buf + 2) <= 0 && wcscoll (cmp_buf + 2, cmp_buf + 4) <= 0) bitset_set (sbcset, wc); } } # else /* not RE_ENABLE_I18N */ { unsigned int ch; start_ch = ((start_elem->type == SB_CHAR ) ? start_elem->opr.ch : ((start_elem->type == COLL_SYM) ? start_elem->opr.name[0] : 0)); end_ch = ((end_elem->type == SB_CHAR ) ? end_elem->opr.ch : ((end_elem->type == COLL_SYM) ? end_elem->opr.name[0] : 0)); if (start_ch > end_ch) return REG_ERANGE; /* Build the table for single byte characters. */ for (ch = 0; ch < SBC_MAX; ++ch) if (start_ch <= ch && ch <= end_ch) bitset_set (sbcset, ch); } # endif /* not RE_ENABLE_I18N */ return REG_NOERROR; } #endif /* not _LIBC */ #ifndef _LIBC /* Helper function for parse_bracket_exp only used in case of NOT _LIBC.. Build the collating element which is represented by NAME. The result are written to MBCSET and SBCSET. COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a pointer argument since we may update it. */ static reg_errcode_t internal_function # ifdef RE_ENABLE_I18N build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset, int *coll_sym_alloc, const unsigned char *name) # else /* not RE_ENABLE_I18N */ build_collating_symbol (bitset_t sbcset, const unsigned char *name) # endif /* not RE_ENABLE_I18N */ { size_t name_len = strlen ((const char *) name); if (BE (name_len != 1, 0)) return REG_ECOLLATE; else { bitset_set (sbcset, name[0]); return REG_NOERROR; } } #endif /* not _LIBC */ /* This function parse bracket expression like "[abc]", "[a-c]", "[[.a-a.]]" etc. */ static bin_tree_t * parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, reg_syntax_t syntax, reg_errcode_t *err) { #ifdef _LIBC const unsigned char *collseqmb; const char *collseqwc; uint32_t nrules; int32_t table_size; const int32_t *symb_table; const unsigned char *extra; /* Local function for parse_bracket_exp used in _LIBC environement. Seek the collating symbol entry correspondings to NAME. Return the index of the symbol in the SYMB_TABLE. */ auto inline int32_t __attribute ((always_inline)) seek_collating_symbol_entry (name, name_len) const unsigned char *name; size_t name_len; { int32_t hash = elem_hash ((const char *) name, name_len); int32_t elem = hash % table_size; if (symb_table[2 * elem] != 0) { int32_t second = hash % (table_size - 2) + 1; do { /* First compare the hashing value. */ if (symb_table[2 * elem] == hash /* Compare the length of the name. */ && name_len == extra[symb_table[2 * elem + 1]] /* Compare the name. */ && memcmp (name, &extra[symb_table[2 * elem + 1] + 1], name_len) == 0) { /* Yep, this is the entry. */ break; } /* Next entry. */ elem += second; } while (symb_table[2 * elem] != 0); } return elem; } /* Local function for parse_bracket_exp used in _LIBC environment. Look up the collation sequence value of BR_ELEM. Return the value if succeeded, UINT_MAX otherwise. */ auto inline unsigned int __attribute ((always_inline)) lookup_collation_sequence_value (br_elem) bracket_elem_t *br_elem; { if (br_elem->type == SB_CHAR) { /* if (MB_CUR_MAX == 1) */ if (nrules == 0) return collseqmb[br_elem->opr.ch]; else { wint_t wc = __btowc (br_elem->opr.ch); return __collseq_table_lookup (collseqwc, wc); } } else if (br_elem->type == MB_CHAR) { if (nrules != 0) return __collseq_table_lookup (collseqwc, br_elem->opr.wch); } else if (br_elem->type == COLL_SYM) { size_t sym_name_len = strlen ((char *) br_elem->opr.name); if (nrules != 0) { int32_t elem, idx; elem = seek_collating_symbol_entry (br_elem->opr.name, sym_name_len); if (symb_table[2 * elem] != 0) { /* We found the entry. */ idx = symb_table[2 * elem + 1]; /* Skip the name of collating element name. */ idx += 1 + extra[idx]; /* Skip the byte sequence of the collating element. */ idx += 1 + extra[idx]; /* Adjust for the alignment. */ idx = (idx + 3) & ~3; /* Skip the multibyte collation sequence value. */ idx += sizeof (unsigned int); /* Skip the wide char sequence of the collating element. */ idx += sizeof (unsigned int) * (1 + *(unsigned int *) (extra + idx)); /* Return the collation sequence value. */ return *(unsigned int *) (extra + idx); } else if (symb_table[2 * elem] == 0 && sym_name_len == 1) { /* No valid character. Match it as a single byte character. */ return collseqmb[br_elem->opr.name[0]]; } } else if (sym_name_len == 1) return collseqmb[br_elem->opr.name[0]]; } return UINT_MAX; } /* Local function for parse_bracket_exp used in _LIBC environement. Build the range expression which starts from START_ELEM, and ends at END_ELEM. The result are written to MBCSET and SBCSET. RANGE_ALLOC is the allocated size of mbcset->range_starts, and mbcset->range_ends, is a pointer argument sinse we may update it. */ auto inline reg_errcode_t __attribute ((always_inline)) build_range_exp (sbcset, mbcset, range_alloc, start_elem, end_elem) re_charset_t *mbcset; int *range_alloc; bitset_t sbcset; bracket_elem_t *start_elem, *end_elem; { unsigned int ch; uint32_t start_collseq; uint32_t end_collseq; /* Equivalence Classes and Character Classes can't be a range start/end. */ if (BE (start_elem->type == EQUIV_CLASS || start_elem->type == CHAR_CLASS || end_elem->type == EQUIV_CLASS || end_elem->type == CHAR_CLASS, 0)) return REG_ERANGE; start_collseq = lookup_collation_sequence_value (start_elem); end_collseq = lookup_collation_sequence_value (end_elem); /* Check start/end collation sequence values. */ if (BE (start_collseq == UINT_MAX || end_collseq == UINT_MAX, 0)) return REG_ECOLLATE; if (BE ((syntax & RE_NO_EMPTY_RANGES) && start_collseq > end_collseq, 0)) return REG_ERANGE; /* Got valid collation sequence values, add them as a new entry. However, if we have no collation elements, and the character set is single byte, the single byte character set that we build below suffices. */ if (nrules > 0 || dfa->mb_cur_max > 1) { /* Check the space of the arrays. */ if (BE (*range_alloc == mbcset->nranges, 0)) { /* There is not enough space, need realloc. */ uint32_t *new_array_start; uint32_t *new_array_end; int new_nranges; /* +1 in case of mbcset->nranges is 0. */ new_nranges = 2 * mbcset->nranges + 1; new_array_start = re_realloc (mbcset->range_starts, uint32_t, new_nranges); new_array_end = re_realloc (mbcset->range_ends, uint32_t, new_nranges); if (BE (new_array_start == NULL || new_array_end == NULL, 0)) return REG_ESPACE; mbcset->range_starts = new_array_start; mbcset->range_ends = new_array_end; *range_alloc = new_nranges; } mbcset->range_starts[mbcset->nranges] = start_collseq; mbcset->range_ends[mbcset->nranges++] = end_collseq; } /* Build the table for single byte characters. */ for (ch = 0; ch < SBC_MAX; ch++) { uint32_t ch_collseq; /* if (MB_CUR_MAX == 1) */ if (nrules == 0) ch_collseq = collseqmb[ch]; else ch_collseq = __collseq_table_lookup (collseqwc, __btowc (ch)); if (start_collseq <= ch_collseq && ch_collseq <= end_collseq) bitset_set (sbcset, ch); } return REG_NOERROR; } /* Local function for parse_bracket_exp used in _LIBC environement. Build the collating element which is represented by NAME. The result are written to MBCSET and SBCSET. COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a pointer argument sinse we may update it. */ auto inline reg_errcode_t __attribute ((always_inline)) build_collating_symbol (sbcset, mbcset, coll_sym_alloc, name) re_charset_t *mbcset; int *coll_sym_alloc; bitset_t sbcset; const unsigned char *name; { int32_t elem, idx; size_t name_len = strlen ((const char *) name); if (nrules != 0) { elem = seek_collating_symbol_entry (name, name_len); if (symb_table[2 * elem] != 0) { /* We found the entry. */ idx = symb_table[2 * elem + 1]; /* Skip the name of collating element name. */ idx += 1 + extra[idx]; } else if (symb_table[2 * elem] == 0 && name_len == 1) { /* No valid character, treat it as a normal character. */ bitset_set (sbcset, name[0]); return REG_NOERROR; } else return REG_ECOLLATE; /* Got valid collation sequence, add it as a new entry. */ /* Check the space of the arrays. */ if (BE (*coll_sym_alloc == mbcset->ncoll_syms, 0)) { /* Not enough, realloc it. */ /* +1 in case of mbcset->ncoll_syms is 0. */ int new_coll_sym_alloc = 2 * mbcset->ncoll_syms + 1; /* Use realloc since mbcset->coll_syms is NULL if *alloc == 0. */ int32_t *new_coll_syms = re_realloc (mbcset->coll_syms, int32_t, new_coll_sym_alloc); if (BE (new_coll_syms == NULL, 0)) return REG_ESPACE; mbcset->coll_syms = new_coll_syms; *coll_sym_alloc = new_coll_sym_alloc; } mbcset->coll_syms[mbcset->ncoll_syms++] = idx; return REG_NOERROR; } else { if (BE (name_len != 1, 0)) return REG_ECOLLATE; else { bitset_set (sbcset, name[0]); return REG_NOERROR; } } } #endif re_token_t br_token; re_bitset_ptr_t sbcset; #ifdef RE_ENABLE_I18N re_charset_t *mbcset; int coll_sym_alloc = 0, range_alloc = 0, mbchar_alloc = 0; int equiv_class_alloc = 0, char_class_alloc = 0; #endif /* not RE_ENABLE_I18N */ int non_match = 0; bin_tree_t *work_tree; int token_len; int first_round = 1; #ifdef _LIBC collseqmb = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQMB); nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules) { /* if (MB_CUR_MAX > 1) */ collseqwc = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQWC); table_size = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_SYMB_HASH_SIZEMB); symb_table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_TABLEMB); extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB); } #endif sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); #ifdef RE_ENABLE_I18N mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1); #endif /* RE_ENABLE_I18N */ #ifdef RE_ENABLE_I18N if (BE (sbcset == NULL || mbcset == NULL, 0)) #else if (BE (sbcset == NULL, 0)) #endif /* RE_ENABLE_I18N */ { *err = REG_ESPACE; return NULL; } token_len = peek_token_bracket (token, regexp, syntax); if (BE (token->type == END_OF_RE, 0)) { *err = REG_BADPAT; goto parse_bracket_exp_free_return; } if (token->type == OP_NON_MATCH_LIST) { #ifdef RE_ENABLE_I18N mbcset->non_match = 1; #endif /* not RE_ENABLE_I18N */ non_match = 1; if (syntax & RE_HAT_LISTS_NOT_NEWLINE) bitset_set (sbcset, '\n'); re_string_skip_bytes (regexp, token_len); /* Skip a token. */ token_len = peek_token_bracket (token, regexp, syntax); if (BE (token->type == END_OF_RE, 0)) { *err = REG_BADPAT; goto parse_bracket_exp_free_return; } } /* We treat the first ']' as a normal character. */ if (token->type == OP_CLOSE_BRACKET) token->type = CHARACTER; while (1) { bracket_elem_t start_elem, end_elem; unsigned char start_name_buf[BRACKET_NAME_BUF_SIZE]; unsigned char end_name_buf[BRACKET_NAME_BUF_SIZE]; reg_errcode_t ret; int token_len2 = 0, is_range_exp = 0; re_token_t token2; start_elem.opr.name = start_name_buf; ret = parse_bracket_element (&start_elem, regexp, token, token_len, dfa, syntax, first_round); if (BE (ret != REG_NOERROR, 0)) { *err = ret; goto parse_bracket_exp_free_return; } first_round = 0; /* Get information about the next token. We need it in any case. */ token_len = peek_token_bracket (token, regexp, syntax); /* Do not check for ranges if we know they are not allowed. */ if (start_elem.type != CHAR_CLASS && start_elem.type != EQUIV_CLASS) { if (BE (token->type == END_OF_RE, 0)) { *err = REG_EBRACK; goto parse_bracket_exp_free_return; } if (token->type == OP_CHARSET_RANGE) { re_string_skip_bytes (regexp, token_len); /* Skip '-'. */ token_len2 = peek_token_bracket (&token2, regexp, syntax); if (BE (token2.type == END_OF_RE, 0)) { *err = REG_EBRACK; goto parse_bracket_exp_free_return; } if (token2.type == OP_CLOSE_BRACKET) { /* We treat the last '-' as a normal character. */ re_string_skip_bytes (regexp, -token_len); token->type = CHARACTER; } else is_range_exp = 1; } } if (is_range_exp == 1) { end_elem.opr.name = end_name_buf; ret = parse_bracket_element (&end_elem, regexp, &token2, token_len2, dfa, syntax, 1); if (BE (ret != REG_NOERROR, 0)) { *err = ret; goto parse_bracket_exp_free_return; } token_len = peek_token_bracket (token, regexp, syntax); #ifdef _LIBC *err = build_range_exp (sbcset, mbcset, &range_alloc, &start_elem, &end_elem); #else # ifdef RE_ENABLE_I18N *err = build_range_exp (sbcset, dfa->mb_cur_max > 1 ? mbcset : NULL, &range_alloc, &start_elem, &end_elem); # else *err = build_range_exp (sbcset, &start_elem, &end_elem); # endif #endif /* RE_ENABLE_I18N */ if (BE (*err != REG_NOERROR, 0)) goto parse_bracket_exp_free_return; } else { switch (start_elem.type) { case SB_CHAR: bitset_set (sbcset, start_elem.opr.ch); break; #ifdef RE_ENABLE_I18N case MB_CHAR: /* Check whether the array has enough space. */ if (BE (mbchar_alloc == mbcset->nmbchars, 0)) { wchar_t *new_mbchars; /* Not enough, realloc it. */ /* +1 in case of mbcset->nmbchars is 0. */ mbchar_alloc = 2 * mbcset->nmbchars + 1; /* Use realloc since array is NULL if *alloc == 0. */ new_mbchars = re_realloc (mbcset->mbchars, wchar_t, mbchar_alloc); if (BE (new_mbchars == NULL, 0)) goto parse_bracket_exp_espace; mbcset->mbchars = new_mbchars; } mbcset->mbchars[mbcset->nmbchars++] = start_elem.opr.wch; break; #endif /* RE_ENABLE_I18N */ case EQUIV_CLASS: *err = build_equiv_class (sbcset, #ifdef RE_ENABLE_I18N mbcset, &equiv_class_alloc, #endif /* RE_ENABLE_I18N */ start_elem.opr.name); if (BE (*err != REG_NOERROR, 0)) goto parse_bracket_exp_free_return; break; case COLL_SYM: *err = build_collating_symbol (sbcset, #ifdef RE_ENABLE_I18N mbcset, &coll_sym_alloc, #endif /* RE_ENABLE_I18N */ start_elem.opr.name); if (BE (*err != REG_NOERROR, 0)) goto parse_bracket_exp_free_return; break; case CHAR_CLASS: *err = build_charclass (regexp->trans, sbcset, #ifdef RE_ENABLE_I18N mbcset, &char_class_alloc, #endif /* RE_ENABLE_I18N */ start_elem.opr.name, syntax); if (BE (*err != REG_NOERROR, 0)) goto parse_bracket_exp_free_return; break; default: assert (0); break; } } if (BE (token->type == END_OF_RE, 0)) { *err = REG_EBRACK; goto parse_bracket_exp_free_return; } if (token->type == OP_CLOSE_BRACKET) break; } re_string_skip_bytes (regexp, token_len); /* Skip a token. */ /* If it is non-matching list. */ if (non_match) bitset_not (sbcset); #ifdef RE_ENABLE_I18N /* Ensure only single byte characters are set. */ if (dfa->mb_cur_max > 1) bitset_mask (sbcset, dfa->sb_char); if (mbcset->nmbchars || mbcset->ncoll_syms || mbcset->nequiv_classes || mbcset->nranges || (dfa->mb_cur_max > 1 && (mbcset->nchar_classes || mbcset->non_match))) { bin_tree_t *mbc_tree; int sbc_idx; /* Build a tree for complex bracket. */ dfa->has_mb_node = 1; br_token.type = COMPLEX_BRACKET; br_token.opr.mbcset = mbcset; mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token); if (BE (mbc_tree == NULL, 0)) goto parse_bracket_exp_espace; for (sbc_idx = 0; sbc_idx < BITSET_WORDS; ++sbc_idx) if (sbcset[sbc_idx]) break; /* If there are no bits set in sbcset, there is no point of having both SIMPLE_BRACKET and COMPLEX_BRACKET. */ if (sbc_idx < BITSET_WORDS) { /* Build a tree for simple bracket. */ br_token.type = SIMPLE_BRACKET; br_token.opr.sbcset = sbcset; work_tree = create_token_tree (dfa, NULL, NULL, &br_token); if (BE (work_tree == NULL, 0)) goto parse_bracket_exp_espace; /* Then join them by ALT node. */ work_tree = create_tree (dfa, work_tree, mbc_tree, OP_ALT); if (BE (work_tree == NULL, 0)) goto parse_bracket_exp_espace; } else { re_free (sbcset); work_tree = mbc_tree; } } else #endif /* not RE_ENABLE_I18N */ { #ifdef RE_ENABLE_I18N free_charset (mbcset); #endif /* Build a tree for simple bracket. */ br_token.type = SIMPLE_BRACKET; br_token.opr.sbcset = sbcset; work_tree = create_token_tree (dfa, NULL, NULL, &br_token); if (BE (work_tree == NULL, 0)) goto parse_bracket_exp_espace; } return work_tree; parse_bracket_exp_espace: *err = REG_ESPACE; parse_bracket_exp_free_return: re_free (sbcset); #ifdef RE_ENABLE_I18N free_charset (mbcset); #endif /* RE_ENABLE_I18N */ return NULL; } /* Parse an element in the bracket expression. */ static reg_errcode_t parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp, re_token_t *token, int token_len, re_dfa_t *dfa, reg_syntax_t syntax, int accept_hyphen) { #ifdef RE_ENABLE_I18N int cur_char_size; cur_char_size = re_string_char_size_at (regexp, re_string_cur_idx (regexp)); if (cur_char_size > 1) { elem->type = MB_CHAR; elem->opr.wch = re_string_wchar_at (regexp, re_string_cur_idx (regexp)); re_string_skip_bytes (regexp, cur_char_size); return REG_NOERROR; } #endif /* RE_ENABLE_I18N */ re_string_skip_bytes (regexp, token_len); /* Skip a token. */ if (token->type == OP_OPEN_COLL_ELEM || token->type == OP_OPEN_CHAR_CLASS || token->type == OP_OPEN_EQUIV_CLASS) return parse_bracket_symbol (elem, regexp, token); if (BE (token->type == OP_CHARSET_RANGE, 0) && !accept_hyphen) { /* A '-' must only appear as anything but a range indicator before the closing bracket. Everything else is an error. */ re_token_t token2; (void) peek_token_bracket (&token2, regexp, syntax); if (token2.type != OP_CLOSE_BRACKET) /* The actual error value is not standardized since this whole case is undefined. But ERANGE makes good sense. */ return REG_ERANGE; } elem->type = SB_CHAR; elem->opr.ch = token->opr.c; return REG_NOERROR; } /* Parse a bracket symbol in the bracket expression. Bracket symbols are such as [::], [..], and [==]. */ static reg_errcode_t parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp, re_token_t *token) { unsigned char ch, delim = token->opr.c; int i = 0; if (re_string_eoi(regexp)) return REG_EBRACK; for (;; ++i) { if (i >= BRACKET_NAME_BUF_SIZE) return REG_EBRACK; if (token->type == OP_OPEN_CHAR_CLASS) ch = re_string_fetch_byte_case (regexp); else ch = re_string_fetch_byte (regexp); if (re_string_eoi(regexp)) return REG_EBRACK; if (ch == delim && re_string_peek_byte (regexp, 0) == ']') break; elem->opr.name[i] = ch; } re_string_skip_bytes (regexp, 1); elem->opr.name[i] = '\0'; switch (token->type) { case OP_OPEN_COLL_ELEM: elem->type = COLL_SYM; break; case OP_OPEN_EQUIV_CLASS: elem->type = EQUIV_CLASS; break; case OP_OPEN_CHAR_CLASS: elem->type = CHAR_CLASS; break; default: break; } return REG_NOERROR; } /* Helper function for parse_bracket_exp. Build the equivalence class which is represented by NAME. The result are written to MBCSET and SBCSET. EQUIV_CLASS_ALLOC is the allocated size of mbcset->equiv_classes, is a pointer argument sinse we may update it. */ static reg_errcode_t #ifdef RE_ENABLE_I18N build_equiv_class (bitset_t sbcset, re_charset_t *mbcset, int *equiv_class_alloc, const unsigned char *name) #else /* not RE_ENABLE_I18N */ build_equiv_class (bitset_t sbcset, const unsigned char *name) #endif /* not RE_ENABLE_I18N */ { #ifdef _LIBC uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules != 0) { const int32_t *table, *indirect; const unsigned char *weights, *extra, *cp; unsigned char char_buf[2]; int32_t idx1, idx2; unsigned int ch; size_t len; /* This #include defines a local function! */ # include /* Calculate the index for equivalence class. */ cp = name; table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); weights = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_WEIGHTMB); extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB); indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); idx1 = findidx (&cp); if (BE (idx1 == 0 || cp < name + strlen ((const char *) name), 0)) /* This isn't a valid character. */ return REG_ECOLLATE; /* Build single byte matcing table for this equivalence class. */ char_buf[1] = (unsigned char) '\0'; len = weights[idx1 & 0xffffff]; for (ch = 0; ch < SBC_MAX; ++ch) { char_buf[0] = ch; cp = char_buf; idx2 = findidx (&cp); /* idx2 = table[ch]; */ if (idx2 == 0) /* This isn't a valid character. */ continue; /* Compare only if the length matches and the collation rule index is the same. */ if (len == weights[idx2 & 0xffffff] && (idx1 >> 24) == (idx2 >> 24)) { int cnt = 0; while (cnt <= len && weights[(idx1 & 0xffffff) + 1 + cnt] == weights[(idx2 & 0xffffff) + 1 + cnt]) ++cnt; if (cnt > len) bitset_set (sbcset, ch); } } /* Check whether the array has enough space. */ if (BE (*equiv_class_alloc == mbcset->nequiv_classes, 0)) { /* Not enough, realloc it. */ /* +1 in case of mbcset->nequiv_classes is 0. */ int new_equiv_class_alloc = 2 * mbcset->nequiv_classes + 1; /* Use realloc since the array is NULL if *alloc == 0. */ int32_t *new_equiv_classes = re_realloc (mbcset->equiv_classes, int32_t, new_equiv_class_alloc); if (BE (new_equiv_classes == NULL, 0)) return REG_ESPACE; mbcset->equiv_classes = new_equiv_classes; *equiv_class_alloc = new_equiv_class_alloc; } mbcset->equiv_classes[mbcset->nequiv_classes++] = idx1; } else #endif /* _LIBC */ { if (BE (strlen ((const char *) name) != 1, 0)) return REG_ECOLLATE; bitset_set (sbcset, *name); } return REG_NOERROR; } /* Helper function for parse_bracket_exp. Build the character class which is represented by NAME. The result are written to MBCSET and SBCSET. CHAR_CLASS_ALLOC is the allocated size of mbcset->char_classes, is a pointer argument sinse we may update it. */ static reg_errcode_t #ifdef RE_ENABLE_I18N build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, re_charset_t *mbcset, int *char_class_alloc, const unsigned char *class_name, reg_syntax_t syntax) #else /* not RE_ENABLE_I18N */ build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, const unsigned char *class_name, reg_syntax_t syntax) #endif /* not RE_ENABLE_I18N */ { int i; const char *name = (const char *) class_name; /* In case of REG_ICASE "upper" and "lower" match the both of upper and lower cases. */ if ((syntax & RE_ICASE) && (strcmp (name, "upper") == 0 || strcmp (name, "lower") == 0)) name = "alpha"; #ifdef RE_ENABLE_I18N /* Check the space of the arrays. */ if (BE (*char_class_alloc == mbcset->nchar_classes, 0)) { /* Not enough, realloc it. */ /* +1 in case of mbcset->nchar_classes is 0. */ int new_char_class_alloc = 2 * mbcset->nchar_classes + 1; /* Use realloc since array is NULL if *alloc == 0. */ wctype_t *new_char_classes = re_realloc (mbcset->char_classes, wctype_t, new_char_class_alloc); if (BE (new_char_classes == NULL, 0)) return REG_ESPACE; mbcset->char_classes = new_char_classes; *char_class_alloc = new_char_class_alloc; } mbcset->char_classes[mbcset->nchar_classes++] = __wctype (name); #endif /* RE_ENABLE_I18N */ #define BUILD_CHARCLASS_LOOP(ctype_func) \ do { \ if (BE (trans != NULL, 0)) \ { \ for (i = 0; i < SBC_MAX; ++i) \ if (ctype_func (i)) \ bitset_set (sbcset, trans[i]); \ } \ else \ { \ for (i = 0; i < SBC_MAX; ++i) \ if (ctype_func (i)) \ bitset_set (sbcset, i); \ } \ } while (0) if (strcmp (name, "alnum") == 0) BUILD_CHARCLASS_LOOP (isalnum); else if (strcmp (name, "cntrl") == 0) BUILD_CHARCLASS_LOOP (iscntrl); else if (strcmp (name, "lower") == 0) BUILD_CHARCLASS_LOOP (islower); else if (strcmp (name, "space") == 0) BUILD_CHARCLASS_LOOP (isspace); else if (strcmp (name, "alpha") == 0) BUILD_CHARCLASS_LOOP (isalpha); else if (strcmp (name, "digit") == 0) BUILD_CHARCLASS_LOOP (isdigit); else if (strcmp (name, "print") == 0) BUILD_CHARCLASS_LOOP (isprint); else if (strcmp (name, "upper") == 0) BUILD_CHARCLASS_LOOP (isupper); else if (strcmp (name, "blank") == 0) BUILD_CHARCLASS_LOOP (isblank); else if (strcmp (name, "graph") == 0) BUILD_CHARCLASS_LOOP (isgraph); else if (strcmp (name, "punct") == 0) BUILD_CHARCLASS_LOOP (ispunct); else if (strcmp (name, "xdigit") == 0) BUILD_CHARCLASS_LOOP (isxdigit); else return REG_ECTYPE; return REG_NOERROR; } static bin_tree_t * build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans, const unsigned char *class_name, const unsigned char *extra, int non_match, reg_errcode_t *err) { re_bitset_ptr_t sbcset; #ifdef RE_ENABLE_I18N re_charset_t *mbcset; int alloc = 0; #endif /* not RE_ENABLE_I18N */ reg_errcode_t ret; re_token_t br_token; bin_tree_t *tree; sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); #ifdef RE_ENABLE_I18N mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1); #endif /* RE_ENABLE_I18N */ #ifdef RE_ENABLE_I18N if (BE (sbcset == NULL || mbcset == NULL, 0)) #else /* not RE_ENABLE_I18N */ if (BE (sbcset == NULL, 0)) #endif /* not RE_ENABLE_I18N */ { *err = REG_ESPACE; return NULL; } if (non_match) { #ifdef RE_ENABLE_I18N mbcset->non_match = 1; #endif /* not RE_ENABLE_I18N */ } /* We don't care the syntax in this case. */ ret = build_charclass (trans, sbcset, #ifdef RE_ENABLE_I18N mbcset, &alloc, #endif /* RE_ENABLE_I18N */ class_name, 0); if (BE (ret != REG_NOERROR, 0)) { re_free (sbcset); #ifdef RE_ENABLE_I18N free_charset (mbcset); #endif /* RE_ENABLE_I18N */ *err = ret; return NULL; } /* \w match '_' also. */ for (; *extra; extra++) bitset_set (sbcset, *extra); /* If it is non-matching list. */ if (non_match) bitset_not (sbcset); #ifdef RE_ENABLE_I18N /* Ensure only single byte characters are set. */ if (dfa->mb_cur_max > 1) bitset_mask (sbcset, dfa->sb_char); #endif /* Build a tree for simple bracket. */ br_token.type = SIMPLE_BRACKET; br_token.opr.sbcset = sbcset; tree = create_token_tree (dfa, NULL, NULL, &br_token); if (BE (tree == NULL, 0)) goto build_word_op_espace; #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) { bin_tree_t *mbc_tree; /* Build a tree for complex bracket. */ br_token.type = COMPLEX_BRACKET; br_token.opr.mbcset = mbcset; dfa->has_mb_node = 1; mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token); if (BE (mbc_tree == NULL, 0)) goto build_word_op_espace; /* Then join them by ALT node. */ tree = create_tree (dfa, tree, mbc_tree, OP_ALT); if (BE (mbc_tree != NULL, 1)) return tree; } else { free_charset (mbcset); return tree; } #else /* not RE_ENABLE_I18N */ return tree; #endif /* not RE_ENABLE_I18N */ build_word_op_espace: re_free (sbcset); #ifdef RE_ENABLE_I18N free_charset (mbcset); #endif /* RE_ENABLE_I18N */ *err = REG_ESPACE; return NULL; } /* This is intended for the expressions like "a{1,3}". Fetch a number from `input', and return the number. Return -1, if the number field is empty like "{,1}". Return -2, If an error is occured. */ static int fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax) { int num = -1; unsigned char c; while (1) { fetch_token (token, input, syntax); c = token->opr.c; if (BE (token->type == END_OF_RE, 0)) return -2; if (token->type == OP_CLOSE_DUP_NUM || c == ',') break; num = ((token->type != CHARACTER || c < '0' || '9' < c || num == -2) ? -2 : ((num == -1) ? c - '0' : num * 10 + c - '0')); num = (num > RE_DUP_MAX) ? -2 : num; } return num; } #ifdef RE_ENABLE_I18N static void free_charset (re_charset_t *cset) { re_free (cset->mbchars); # ifdef _LIBC re_free (cset->coll_syms); re_free (cset->equiv_classes); re_free (cset->range_starts); re_free (cset->range_ends); # endif re_free (cset->char_classes); re_free (cset); } #endif /* RE_ENABLE_I18N */ /* Functions for binary tree operation. */ /* Create a tree node. */ static bin_tree_t * create_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, re_token_type_t type) { re_token_t t; t.type = type; return create_token_tree (dfa, left, right, &t); } static bin_tree_t * create_token_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, const re_token_t *token) { bin_tree_t *tree; if (BE (dfa->str_tree_storage_idx == BIN_TREE_STORAGE_SIZE, 0)) { bin_tree_storage_t *storage = re_malloc (bin_tree_storage_t, 1); if (storage == NULL) return NULL; storage->next = dfa->str_tree_storage; dfa->str_tree_storage = storage; dfa->str_tree_storage_idx = 0; } tree = &dfa->str_tree_storage->data[dfa->str_tree_storage_idx++]; tree->parent = NULL; tree->left = left; tree->right = right; tree->token = *token; tree->token.duplicated = 0; tree->token.opt_subexp = 0; tree->first = NULL; tree->next = NULL; tree->node_idx = -1; if (left != NULL) left->parent = tree; if (right != NULL) right->parent = tree; return tree; } /* Mark the tree SRC as an optional subexpression. To be called from preorder or postorder. */ static reg_errcode_t mark_opt_subexp (void *extra, bin_tree_t *node) { int idx = (int) (long) extra; if (node->token.type == SUBEXP && node->token.opr.idx == idx) node->token.opt_subexp = 1; return REG_NOERROR; } /* Free the allocated memory inside NODE. */ static void free_token (re_token_t *node) { #ifdef RE_ENABLE_I18N if (node->type == COMPLEX_BRACKET && node->duplicated == 0) free_charset (node->opr.mbcset); else #endif /* RE_ENABLE_I18N */ if (node->type == SIMPLE_BRACKET && node->duplicated == 0) re_free (node->opr.sbcset); } /* Worker function for tree walking. Free the allocated memory inside NODE and its children. */ static reg_errcode_t free_tree (void *extra, bin_tree_t *node) { free_token (&node->token); return REG_NOERROR; } /* Duplicate the node SRC, and return new node. This is a preorder visit similar to the one implemented by the generic visitor, but we need more infrastructure to maintain two parallel trees --- so, it's easier to duplicate. */ static bin_tree_t * duplicate_tree (const bin_tree_t *root, re_dfa_t *dfa) { const bin_tree_t *node; bin_tree_t *dup_root; bin_tree_t **p_new = &dup_root, *dup_node = root->parent; for (node = root; ; ) { /* Create a new tree and link it back to the current parent. */ *p_new = create_token_tree (dfa, NULL, NULL, &node->token); if (*p_new == NULL) return NULL; (*p_new)->parent = dup_node; (*p_new)->token.duplicated = 1; dup_node = *p_new; /* Go to the left node, or up and to the right. */ if (node->left) { node = node->left; p_new = &dup_node->left; } else { const bin_tree_t *prev = NULL; while (node->right == prev || node->right == NULL) { prev = node; node = node->parent; dup_node = dup_node->parent; if (!node) return dup_root; } node = node->right; p_new = &dup_node->right; } } } tucnak2-2.48/src/cordata.h0000644000175000017500000000017311567373656012340 00000000000000/* Automatically generated by corinc.pl */ #define COR_ITEMS 255567 extern const struct cpoint cor_tucnakcor[COR_ITEMS]; tucnak2-2.48/src/adif.c0000644000175000017500000003542111567373656011625 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #define ADIF_STR(iname,item) if (strlen(item)) g_string_sprintfa(gs,"<%s:%d>%s ",iname, (int)strlen(item),safe_strncpy0(s,item,1024)) #define ADIF_STR_UC(iname,item) if (strlen(item)) g_string_sprintfa(gs,"<%s:%d>%s ",iname,(int)strlen(item),uc(safe_strncpy0(s,item,1024))) #define ADIF_DATE(iname,item) if (strlen(item)) g_string_sprintfa(gs,"<%s:%d>%s ",iname, (int)strlen(item),safe_strncpy0(s,item,1024)) #define ADIF_INT(iname,item) sprintf(s,"%d",item); g_string_sprintfa(gs,"<%s:%d>%s ",iname, (int)strlen(s),s) static gchar *convert_lt(gchar *s){ char *c; for (c=s; *c!='\0'; c++) if (*c=='<') *c='('; return s; } static int write_adif_header(struct band *b, struct config_band *confb, FILE *f){ char s[1024],dummy[10], *psect; GString *gs; int ret; switch(b->psect){ case 1: psect="Single"; break; case 2: psect="Check"; break; default: psect="Multi"; break; } gs = g_string_sized_new(1024); g_string_sprintfa(gs, "Created by TUCNAK ver. %s\r\n", VERSION_STRING); g_string_sprintfa(gs, "TName=%s\r\n", safe_strncpy0(s, ctest->tname, 69)); if (!b->qsos->len) g_string_sprintfa(gs, "TDate=%s;%s\r\n", ctest->cdate, ctest->cdate); else g_string_sprintfa(gs, "TDate=%d;%d\r\n", b->stats->first_date, b->stats->last_date); g_string_sprintfa(gs, "PCall=%s\r\n", uc(safe_strncpy0(s, ctest->pcall, 69))); g_string_sprintfa(gs, "PWWLo=%s\r\n", uc(safe_strncpy0(s, ctest->pwwlo, 69))); g_string_sprintfa(gs, "PExch=%s\r\n", uc(safe_strncpy0(s, ctest->pexch, 69))); g_string_sprintfa(gs, "PAdr1=%s\r\n", safe_strncpy0(s, ctest->padr1, 69)); g_string_sprintfa(gs, "PAdr2=%s\r\n", safe_strncpy0(s, ctest->padr2, 69)); g_string_sprintfa(gs, "PSect=%s\r\n", psect); /* g_string_sprintfa(gs, "PBand=%s\r\n", b->pband);*/ g_string_sprintfa(gs, "PClub=%s\r\n", uc(safe_strncpy0(s, ctest->pclub, 69))); g_string_sprintfa(gs, "RName=%s\r\n", safe_strncpy0(s, ctest->rname, 69)); g_string_sprintfa(gs, "RCall=%s\r\n", uc(safe_strncpy0(s, ctest->rcall, 69))); g_string_sprintfa(gs, "RAdr1=%s\r\n", safe_strncpy0(s, ctest->radr1, 69)); g_string_sprintfa(gs, "RAdr2=%s\r\n", safe_strncpy0(s, ctest->radr2, 69)); g_string_sprintfa(gs, "RPoCo=%s\r\n", safe_strncpy0(s, ctest->rpoco, 69)); g_string_sprintfa(gs, "RCity=%s\r\n", safe_strncpy0(s, ctest->rcity, 69)); g_string_sprintfa(gs, "RCoun=%s\r\n", safe_strncpy0(s, ctest->rcoun, 69)); g_string_sprintfa(gs, "RPhon=%s\r\n", safe_strncpy0(s, ctest->rphon, 69)); g_string_sprintfa(gs, "RHBBS=%s\r\n", safe_strncpy0(s, ctest->rhbbs, 69)); /* g_string_sprintfa(gs, "MOpe1=%s\r\n", uc(safe_strncpy0(s, b->mope1, 69))); g_string_sprintfa(gs, "MOpe2=%s\r\n", uc(safe_strncpy0(s, b->mope2, 69))); g_string_sprintfa(gs, "STXEq=%s\r\n", safe_strncpy0(s, b->stxeq, 69)); g_string_sprintfa(gs, "SPowe=%s\r\n", safe_strncpy0(s, b->spowe, 69)); g_string_sprintfa(gs, "SRXEq=%s\r\n", safe_strncpy0(s, b->srxeq, 69)); g_string_sprintfa(gs, "SAnte=%s\r\n", safe_strncpy0(s, b->sante, 69)); g_string_sprintfa(gs, "SAntH=%s\r\n", safe_strncpy0(s, b->santh, 69)); g_string_sprintfa(gs, "CQSOs=%d;%d\r\n", b->stats->nqsos, b->bandmulti); g_string_sprintfa(gs, "CQSOP=%d\r\n", b->stats->nqsop); g_string_sprintfa(gs, "CWWLs=%d;%d;%d\r\n", g_hash_table_size(b->stats->wwls), ctest->wwlbonu, ctest->wwlmult==0 ? 1 : ctest->wwlmult); g_string_sprintfa(gs, "CWWLB=%d\r\n", g_hash_table_size(b->stats->wwls) * ctest->wwlbonu); g_string_sprintfa(gs, "CExcs=%d;%d;%d\r\n", g_hash_table_size(b->stats->excs), ctest->excbonu, ctest->excmult==0 ? 1 : ctest->excmult); g_string_sprintfa(gs, "CExcB=%d\r\n", g_hash_table_size(b->stats->excs) * ctest->excbonu); g_string_sprintfa(gs, "CDXCs=%d;%d;%d\r\n", g_hash_table_size(b->stats->dxcs), ctest->dxcbonu, ctest->dxcmult==0 ? 1 : ctest->dxcmult); g_string_sprintfa(gs, "CDXCB=%d\r\n", g_hash_table_size(b->stats->dxcs) * ctest->dxcbonu); g_string_sprintfa(gs, "CToSc=%d\r\n", b->stats->ntotal); g_string_sprintfa(gs, "CODXC=%s;", uc(safe_strncpy0(s, b->stats->odxcall, 20))); g_string_sprintfa(gs, "%s;%d\r\n", uc(safe_strncpy0(s, b->stats->odxwwl, 20)), b->stats->odxqrb_int); */ convert_lt(gs->str); strcpy(dummy,"1.00"); ADIF_STR("adif_ver",dummy); g_string_sprintfa(gs, "\r\n"); ret=fprintf(f, "%s", gs->str) != gs->len; g_string_free(gs, TRUE); return ret; } static int write_adif_qsos(struct band *b, struct config_band *confb, FILE *f){ struct qso *q; GString *gs; int i; int ret; char s[1024]; char *adif_modes[]={ "", "SSB", "CW", "SSB", "SSB", "AM", /* 5 */ "FM", "RTTY", "SSTV", "ATV" /* 9 */ }; gs = g_string_new(""); for (i=0; iqsos->len; i++){ q = get_qso(b, i); ADIF_STR_UC("BAND",confb->adifband); ADIF_DATE ("QSO_DATE",q->date_str); ADIF_STR ("TIME_ON",q->time_str); if (q->error){ ADIF_STR_UC("CALL","ERROR"); }else{ ADIF_STR_UC("CALL",q->callsign); } ADIF_STR ("MODE",adif_modes[abs(q->mode)%10]); /* TODO sent vs rcvd */ ADIF_STR_UC("RST_SENT",q->rsts); ADIF_STR_UC("NO_SENT",q->qsonrs); if (ctest->excused > 0 && ctest->qsoused == 0){ ADIF_STR_UC("STX",ctest->pexch); }else{ ADIF_STR_UC("STX",q->qsonrs); } ADIF_STR_UC("RST_RCVD",q->rstr); if (ctest->excused > 0 && ctest->qsoused == 0){ ADIF_STR_UC("SRX",q->exc); }else{ ADIF_STR_UC("SRX",q->qsonrr); } ADIF_STR_UC("NO_RCVD",q->qsonrr); ADIF_STR_UC("GRIDSQUARE",q->locator); ADIF_INT ("QRB", (int)q->qrb); ADIF_INT ("QTF", q->qtf); ADIF_INT ("POINTS", q->qsop); ADIF_STR_UC("OPERATOR",q->operator_); ADIF_STR ("COMMENT",q->remark); /* ES,MS,AUR,TR,RS,AUE,BS,EME,FAI,F2,ION,LOS,SAT,TEP,TRS,TRD */ if (q->rsts && strlen(q->rsts)>=3 && q->rsts[2]=='A'){ ADIF_STR ("PROP_MODE","AUR"); }else if (q->rsts && strlen(q->rsts)==3 && q->rsts[2]=='S'){ ADIF_STR ("PROP_MODE","RS"); }else if (q->rsts && strlen(q->rsts)==3 && q->rsts[2]=='F'){ ADIF_STR ("PROP_MODE","FAI"); }else{ ADIF_STR ("PROP_MODE","TR"); } if (q->qrg){ sprintf(s,"%d.%06d",(int)(q->qrg/1000000.0), (int)fmod(q->qrg, 1000000.0)); g_string_sprintfa(gs,"<%s:%d>%s ", "FREQ", (int)strlen(s),s); } g_string_sprintfa(gs, "\r\n"); /*g_string_sprintfa(gs, "%s\r\n", gs->str);*/ } ret=fprintf(f, "%s", gs->str) != gs->len; g_string_free(gs, TRUE); return ret; } int export_all_bands_adif(void){ struct band *band; struct config_band *confb; int i, err; gchar *filename; FILE *f; char callbuf[20]; int ignoreerror=0; int header_saved=0; if (!ctest) return -1; dbg("export_all_bands_adif()\n"); filename = g_strdup_printf("%s/%s_%s.adif", ctest->directory, ctest->cdate, uc(get_raw_call(callbuf,ctest->pcall))); f=fopen(filename,"wb"); /* must be b for windoze */ if (!f) { if (!ignoreerror) { errbox(VTEXT(T_CANT_WRITE), errno); ignoreerror=1;} g_free(filename); return -1; } err = 0; for (i=0; ibands->len; i++){ band = g_ptr_array_index(ctest->bands, i); confb = get_config_band_by_bandchar(band->bandchar); stats_thread_join(band); if (band->stats->nqsos <=0) continue; if (!header_saved){ err|=write_adif_header(band,confb,f); header_saved=1; } err|=write_adif_qsos (band,confb,f); } fclose(f); if (err) { if (!ignoreerror) { errbox(VTEXT(T_CANT_WRITE), 0); ignoreerror=1; } g_free(filename); return -1; } log_addf(VTEXT(T_SAVED_S), filename); g_free(filename); return 0; } static int adif_ignore(FILE *f){ int cc; while ((cc=fgetc(f))!=EOF){ if (cc=='<') return '<'; } return EOF; } static int adif_read_tag(FILE *f, GString *gs, int *taglen){ int cc; gchar **items; g_string_truncate(gs, 0); while ((cc=fgetc(f))!=EOF){ if (cc=='>') { items = g_strsplit(gs->str,":",3); if (items[0]){ if (!items[1]) *taglen=0; else *taglen=atoi(items[1]); gs->str[strlen(items[0])]='\0'; g_strup(gs->str); } g_strfreev(items); return 0; } g_string_append_c(gs, cc); } return EOF; } static gchar *adif_item(GHashTable *hash, gchar *key) { return g_hash_table_lookup(hash,key); } #define ADIF_ITEM(key) adif_item(hash,(key)) static gchar *safe_adif_item(GHashTable *hash, gchar *key) { gchar *tmp; tmp=g_hash_table_lookup(hash,key); return (tmp?tmp:""); } #define SAFE_ADIF_ITEM(key) safe_adif_item(hash,(key)) static int adif_add_qso(struct band *band, GHashTable *hash){ struct qso *q; struct band *b; int i; /* mandatory */ gchar *call, *rsts, *rstr,*qso_date,*time_on; /* optional */ gchar *mode; gchar *band_str; int qrg; /* kHz */ call=ADIF_ITEM("CALL"); rsts=ADIF_ITEM("RST_SENT"); rstr=ADIF_ITEM("RST_RCVD"); qso_date=ADIF_ITEM("QSO_DATE"); time_on=ADIF_ITEM("TIME_ON"); if (!call || strcasecmp(call,"ERROR")!=0){ if (!call || !rsts || !rstr || !qso_date || !time_on){ dbg("Incomplete record (call='%s', rsts='%s', rstr='%s', qso_date='%s', time_on='%s'\n", call, rsts, rstr,qso_date,time_on); return -1; } } b=NULL; band_str=ADIF_ITEM("BAND"); if (band_str){ for (i=0;ibands->len;i++){ struct config_band *cb=(struct config_band *)g_ptr_array_index(cfg->bands, i); if (!cb->adifband) continue; if (strcasecmp(cb->adifband, band_str)) continue; b=find_band_by_bandchar(cb->bandchar); } } qrg=1000*atoi(SAFE_ADIF_ITEM("FREQ")); if (!b && qrg>0){ for (i=0;ibands->len;i++){ struct config_band *cb=(struct config_band *)g_ptr_array_index(cfg->bands, i); if (cb->qrg_min<=0) continue; if (cb->qrg_max<=0) continue; if (qrgqrg_min || qrg>cb->qrg_max) continue; b=find_band_by_bandchar(cb->bandchar); } } if (!b) b=band; /* default is active band */ q=g_new0(struct qso, 1); q->date_str=g_strdup(SAFE_ADIF_ITEM("QSO_DATE")); q->time_str=g_strdup(SAFE_ADIF_ITEM("TIME_ON")); if (strlen(q->time_str)>4) q->time_str[4]='\0'; if (strcasecmp(call,"ERROR")==0) { q->error=1; q->callsign=g_strdup(""); }else{ q->callsign=uc(g_strdup(call)); } mode=SAFE_ADIF_ITEM("MODE"); if (!strcasecmp(mode, "SSB")) q->mode=1; else if (!strcasecmp(mode, "CW")) q->mode=2; else if (!strcasecmp(mode, "RTTY")) q->mode=7; else if (!strcasecmp(mode, "AM")) q->mode=5; else if (!strcasecmp(mode, "FM")) q->mode=6; else if (!strcasecmp(mode, "SSTV")) q->mode=8; else if (!strcasecmp(mode, "ATV")) q->mode=9; q->rsts=g_strdup(SAFE_ADIF_ITEM("RST_SENT")); if (ADIF_ITEM("STX")){ q->qsonrs=g_strdup_printf("%03d", atoi(SAFE_ADIF_ITEM("STX"))); }else{ q->qsonrs=g_strdup_printf("%03d", atoi(SAFE_ADIF_ITEM("NO_SENT"))); } q->rstr=g_strdup(SAFE_ADIF_ITEM("RST_RCVD")); if (ADIF_ITEM("SRX")){ q->qsonrr=g_strdup_printf("%03d", atoi(SAFE_ADIF_ITEM("SRX"))); }else{ q->qsonrr=g_strdup_printf("%03d", atoi(SAFE_ADIF_ITEM("NO_RCVD"))); } q->exc=g_strdup(""); q->locator=g_strdup(SAFE_ADIF_ITEM("GRIDSQUARE")); q->source=g_strdup(net->myid); q->operator_=fixsemi(g_strdup(SAFE_ADIF_ITEM("OPERATOR"))); q->qrg = 0; q->stamp=time(NULL); q->remark=fixsemi(g_strdup(SAFE_ADIF_ITEM("COMMENT"))); q->ser_id=-1; /* computed by add_qso_to_index */ compute_qrbqtf(q); add_qso(b, q); /* update_stats(band->stats, band, q);*/ return 0; } void import_adif(void *xxx, char *filename){ FILE *f; int cc, taglen = 0; GString *gs, *gs2; GHashTable *hash; int gs2size; int i; f = fopen(filename, "r"); if (!f) return; cc = fgetc(f); if (cc==EOF) { fclose(f); return;} if (cc!='<') adif_ignore(f); gs = g_string_sized_new(20); gs2 = g_string_sized_new(gs2size=20); hash = g_hash_table_new(g_str_hash, g_str_equal); while (adif_read_tag(f, gs, &taglen)!=EOF){ if (taglen+1>gs2size){ g_string_free(gs2,1); gs2=g_string_sized_new(gs2size=taglen+1); } /* g_string_set_size(gs2, taglen+1); not present in glib1*/ memset(gs2->str, 0, taglen+1); if (taglen) if (!fread(gs2->str,taglen,1, f)) break; /* dbg(" tag='%s' \tvalue: '%s'\n", gs->str, gs2->str);*/ if (strcasecmp(gs->str, "EOR")==0){ /* dbg("-------------------------\n"); dbg_str_hash(hash);*/ adif_add_qso(aband, hash); g_hash_table_foreach_remove(hash, free_gstr, NULL); }else{ hash_safe_insert(hash, g_strdup(gs->str), g_strdup(gs2->str)); } adif_ignore(f); } g_string_free(gs, TRUE); g_string_free(gs2, TRUE); g_hash_table_foreach_remove(hash, free_gstr, NULL); g_hash_table_foreach(ctest->bystamp, foreach_source_qsort_by_stamp, NULL); g_index_array_qsort(ctest->allqsos, compare_date_time_qsonrs); /* don't needed DIRTY_BAND(); */ for (i=0;ibands->len;i++){ struct band *b=(struct band *)g_ptr_array_index(ctest->bands,i); recalc_stats(b); clear_tmpqsos(b, 1); if (ctest->qsoused && b->qsos->len+1 != atoi(b->tmpqsos[0].qsonrs)){ g_free(b->tmpqsos[0].qsonrs); b->tmpqsos[0].qsonrs = g_strdup_printf("%03d", b->qsos->len+1); } } return; } tucnak2-2.48/src/sked.c0000644000175000017500000004422111567373656011646 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2008 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" char callsign[EQSO_LEN], locator[EQSO_LEN]; char time_str[EQSO_LEN], remark[MAX_STR_LEN]; int sw_sked_kbd_func(struct subwin *sw, struct event *ev, int fw){ if (!aband) return 0; if (sw->il && ( sw->il->wasctrlv || (ev->x!='[' && ev->x!=']') )){ if (inputln_func(sw->il, ev)) return 1; } switch(kbd_action(KM_MAIN,ev)){ case ACT_ESC: return 0; break; case ACT_DOWN: sw->offset--; sw->check_bounds(sw); redraw_later(); return 1; case ACT_UP: sw->offset++; sw->check_bounds(sw); redraw_later(); return 1; case ACT_PAGE_DOWN: sw->offset -= sw->h - 1;; sw->check_bounds(sw); redraw_later(); return 1; case ACT_PAGE_UP: sw->offset += sw->h - 1;; sw->check_bounds(sw); redraw_later(); return 1; case ACT_HOME: sw->offset = aband->skeds->len - sw->h; sw->check_bounds(sw); redraw_later(); return 1; case ACT_END: sw->offset = 0; sw->check_bounds(sw); redraw_later(); return 1; case ACT_SCROLL_LEFT: if (sw->ho>0) sw->ho--; redraw_later(); return 1; case ACT_SCROLL_RIGHT: sw->ho++; redraw_later(); return 1; } return 0; } int sw_sked_mouse_func(struct subwin *sw, struct event *ev, int fw){ if (!aband) return 0; return sw_fifo_mouse_func(sw, ev, fw); } gchar *sw_sked_sprint(struct sked *sked){ double qrb,qtf; int qrb_int,qtf_int; gchar *c, *deg; qrbqtf(ctest->pwwlo, sked->locator, &qrb, &qtf, NULL, 2); qrb_int=(int)qrb; qtf_int=(int)(qtf+0.5); if (qrb_int < 0.1) { qrb_int=0; qtf_int=0; } #ifdef HAVE_SDL if (sdl) deg = ""; else #endif deg = "deg"; c=g_strdup_printf("%6s@%s: %s %-6s " "%-13s in %-6s (%dkm, %d" "%s) at %s %s", sked->operator_, sked->src_shortpband, sked->pband, sked->qrg, sked->callsign, sked->locator, qrb_int, qtf_int, deg, sked->time_str, sked->remark); return c; } void sw_sked_redraw(struct subwin *sw, int flags){ int i, index; gchar *c; struct sked *sked; if (!aband) return; /*dbg("sw_log_redraw log->len=%d sw->h=%d sw->offset=%d \n", fifo_len(sw->fifo), sw->h, sw->offset);*/ for (i=0;ih; i++){ index = aband->skeds->len - sw->offset - sw->h+i; if (index<0 || index>=aband->skeds->len) continue; sked = g_ptr_array_index(aband->skeds, index); c = sw_sked_sprint(sked); print_text(sw->x, sw->y+i, sw->w, c+sw->ho, sked->worked ? COL_DARKYELLOW : COL_NORM); g_free(c); } } void sw_sked_check_bounds(struct subwin *sw){ if (!aband) return; /*if (sw->offset < 0) sw->offset=0;*/ if (sw->offset > aband->skeds->len - sw->h) { sw->offset = aband->skeds->len - sw->h; } if (sw->offset < 0) sw->offset=0; } /* 11.52 OK1ZIA@144: 432 MHz .250 OK1MCS in JN69QR (1234km, 359gr) at 12:00 we call (this is a remark ) */ void sw_sked_read(gchar *str, int from_my){ int i; struct band *b; struct sked *sked; struct zstring *zs; struct subwin *sw; gchar *c; dbg("sw_sked_read('%s', %d)\n", str, from_my); zs = zstrdup(str); sked = sked_parse(zs); if (!sked) { dbg("bad format of sked '%s'\n", str); return; } zfree(zs); b=find_band_by_pband(sked->pband); if (!b){ dbg("band '%s' not found\n", sked->pband); free_sked(sked); return; } g_ptr_array_add(b->skeds, sked); b->dirty_save = 1; if (b->readonly == 0){ for (i=0; isubwins->len; i++){ sw = g_ptr_array_index(gses->subwins, i); // dbg("type=%d ontop=%d\n", sw->type, sw->ontop); if (sw->type != SWT_SKED) continue; if (sw->ontop) continue; sw->unread=1; } c = sw_sked_sprint(sked); log_adds(c); //FIXME g_free(c); skedw_create(b); } check_autosave(); redraw_later(); } char qrg_str[EQSO_LEN]; int we_call; char pband[EQSO_LEN]="Select"; /* TODO VTEXT(T_SELECT) */ char oldpband[EQSO_LEN]=""; /*, time_str[EQSO_LEN], callsign[EQSO_LEN]*/; /*char locator[EQSO_LEN], remark[MAX_STR_LEN]; */ int pband_int=-1; void refresh_sked(struct qso *q) { char s[10], *c; time_t now; struct tm utc; struct zstring *zs; char sked_time_str[32], we_call_str[32]; time(&now); gmtime_r(&now, &utc); dbg("refresh_sked\n"); g_snprintf(sked_time_str, 30, "%d.%02d", utc.tm_hour, utc.tm_min); safe_strncpy0(s, aband->pband, 10); c = strchr(s, ' '); if (c) *c='\0'; g_snprintf(we_call_str, 30, "%d", we_call); uc(callsign); uc(locator); zs = zconcatesc(sked_time_str, aband->operator_, s, qrg_str, we_call_str, pband, time_str, callsign, locator, remark, NULL); sw_sked_read(zs->str,1); c = g_strdup_printf("SK %s\n", zs->str); rel_write_all(c); g_free(c); zfree(zs); } char *sked_msg[] = { CTEXT(T_QRG), /* 0 */ CTEXT(T_WE_CALL), CTEXT(T_BAND), CTEXT(T_TIME), CTEXT(T_CALLSIGN2), CTEXT(T_WWL), /* 5 */ CTEXT(T_REMARK), "", /* OK */ /* 7 */ "", /* Cancel */ }; void sked_fn(struct dialog_data *dlg) { struct terminal *term = dlg->win->term; int max = 0, min = 0; int w, rw; int y = -1; struct band *band; /* dbg("items[0]=%p\n",dlg->items[0]); dbg("items[0].item=%p\n",dlg->items[0].item); dbg("items[0].cdata=%p\n",dlg->items[0].cdata); */ if (strcmp(pband, oldpband)!=0){ strcpy(oldpband, pband); /* dbg("pband=%s\n");*/ band = find_band_by_pband(pband); if (band) { safe_strncpy0(dlg->items[0].cdata, band->skedqrg, EQSO_LEN); dlg->items[0].cpos = strlen(dlg->items[0].cdata); } } max_group_width(term, sked_msg + 0, dlg->items + 0, 1, &max); min_group_width(term, sked_msg + 0, dlg->items + 0, 1, &min); max_group_width(term, sked_msg + 1, dlg->items + 1, 1, &max); min_group_width(term, sked_msg + 1, dlg->items + 1, 1, &min); max_group_width(term, sked_msg + 2, dlg->items + 2, 1, &max); min_group_width(term, sked_msg + 2, dlg->items + 2, 1, &min); max_group_width(term, sked_msg + 3, dlg->items + 3, 1, &max); min_group_width(term, sked_msg + 3, dlg->items + 3, 1, &min); max_group_width(term, sked_msg + 4, dlg->items + 4, 1, &max); min_group_width(term, sked_msg + 4, dlg->items + 4, 1, &min); max_group_width(term, sked_msg + 5, dlg->items + 5, 1, &max); min_group_width(term, sked_msg + 5, dlg->items + 5, 1, &min); max_group_width(term, sked_msg + 6, dlg->items + 6, 1, &max); min_group_width(term, sked_msg + 6, dlg->items + 6, 1, &min); max_buttons_width(term, dlg->items +7, 2, &max); min_buttons_width(term, dlg->items +7, 2, &min); w = dlg->win->term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > dlg->win->term->x - 2 * DIALOG_LB) w = dlg->win->term->x - 2 * DIALOG_LB; if (w < 1) w = 1; rw = 0; y ++; dlg_format_group(NULL, term, sked_msg + 0, dlg->items + 0, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, sked_msg + 1, dlg->items + 1, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, sked_msg + 2, dlg->items + 2, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, sked_msg + 3, dlg->items + 3, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, sked_msg + 4, dlg->items + 4, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, sked_msg + 5, dlg->items + 5, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, sked_msg + 6, dlg->items + 6, 1, 0, &y, w, &rw); y++; dlg_format_buttons(NULL, term, dlg->items +7, 2, 0, &y, w, &rw, AL_LEFT); w = rw; dlg->xw = w + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB; y++; dlg_format_group(term, term, sked_msg + 0, dlg->items + 0, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, sked_msg + 1, dlg->items + 1, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, sked_msg + 2, dlg->items + 2, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, sked_msg + 3, dlg->items + 3, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, sked_msg + 4, dlg->items + 4, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, sked_msg + 5, dlg->items + 5, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, sked_msg + 6, dlg->items + 6, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); y++; dlg_format_buttons(term, term, dlg->items +7, 2, dlg->x + DIALOG_LB, &y, w, NULL, AL_LEFT); } void sked(void){ struct dialog *d; int i; struct band *band; if (pband_int<0){ for (i = 0; i < ctest->bands->len; i++) { band = (struct band *)g_ptr_array_index(ctest->bands, i); if (band==aband) break; } i++; if (ibands->len){ band = (struct band *)g_ptr_array_index(ctest->bands, i); safe_strncpy0(pband, band->pband, EQSO_LEN); pband_int = i; } } if (pband_int<0) pband_int=0; band = (struct band *)g_ptr_array_index(ctest->bands, pband_int); if (band) safe_strncpy0(qrg_str, band->skedqrg, EQSO_LEN); if (!(d = mem_alloc(sizeof(struct dialog) + 15 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 15 * sizeof(struct dialog_item)); d->title = VTEXT(T_SEND_SKED); d->fn = sked_fn; d->refresh = (void (*)(void *))refresh_sked; d->refresh_data = NULL; d->items[i=0].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = qrg_str; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&we_call; d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_pband; d->items[i].text = pband; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = time_str; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = callsign; d->items[++i].type = D_FIELD; /* 5 */ d->items[i].dlen = EQSO_LEN; d->items[i].data = locator; d->items[++i].type = D_FIELD; d->items[i].dlen = 61; d->items[i].data = remark; d->items[i].maxl = EQSO_LEN; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } void sked_from_tmpqso(struct tmpqso *tmpqso) { time_t now; struct tm utc; time(&now); now+=cfg->skedshift*60; gmtime_r(&now, &utc); strcpy(qrg_str,""); we_call=0; /* pband */ g_snprintf(time_str, EQSO_LEN, "%d.%02d", utc.tm_hour, utc.tm_min); safe_strncpy0(callsign, tmpqso->callsign, EQSO_LEN); uc(callsign); safe_strncpy0(locator, tmpqso->locator, EQSO_LEN); uc(locator); strcpy(remark, ""); sked(); } void sked_from_qso(struct qso *qso) { time_t now; struct tm utc; time(&now); now+=cfg->skedshift*60; gmtime_r(&now, &utc); strcpy(qrg_str,""); we_call=0; /* pband */ g_snprintf(time_str, EQSO_LEN, "%d.%02d", utc.tm_hour, utc.tm_min); safe_strncpy0(callsign, qso->callsign, EQSO_LEN); uc(callsign); safe_strncpy0(locator, qso->locator, EQSO_LEN); uc(locator); strcpy(remark, ""); sked(); } void sked_pband_func (cba_t cba){ struct band *band; int active; active=(int)GETCBA(cba, int_); dbg("sked_pband_func(%d)\n", active); if (active<0 || active>=ctest->bands->len) return; pband_int = active; band = g_ptr_array_index(ctest->bands, pband_int); safe_strncpy0(pband, band->pband, EQSO_LEN); safe_strncpy0(qrg_str, band->skedqrg, EQSO_LEN); redraw_later(); } void sked_pband(int apband_int) { int i, sel; struct menu_item *mi; struct band *band; if (!(mi = new_menu(1))) return; for (i = 0; i < ctest->bands->len; i++) { band = (struct band *)g_ptr_array_index(ctest->bands, i); add_to_menu(&mi, band->pband, "", "", MENU_FUNC sked_pband_func, (cba_t)i, 0); } sel = apband_int; if (sel < 0) sel = 0; if (sel>=ctest->bands->len) sel=0; do_menu_selected(mi, CBA0, sel); } int dlg_pband(struct dialog_data *dlg, struct dialog_item_data *di){ sked_pband(pband_int); return 0; } struct zstring *sked_format(struct sked *sked){ struct zstring *zs; char we_call_str[20]; g_snprintf(we_call_str, 16, "%d", sked->we_call); zs = zconcatesc(sked->sked_time, sked->operator_, sked->src_shortpband, sked->qrg, we_call_str, sked->pband, sked->time_str, sked->callsign, sked->locator, sked->remark, NULL); return zs; } struct sked *sked_parse(struct zstring *zstr){ int tokens; struct sked *sked; tokens = ztokens(zstr); if (tokens<10){ dbg("bad format of sked '%s'\n", zstr->str); return NULL; } sked = g_new0(struct sked, 1); sked->sked_time = g_strdup(ztokenize(zstr, 1)); sked->operator_ = g_strdup(ztokenize(zstr, 0)); sked->src_shortpband = g_strdup(ztokenize(zstr, 0)); sked->qrg = g_strdup(ztokenize(zstr, 0)); sked->we_call = atoi(ztokenize(zstr, 0)); sked->pband = g_strdup(ztokenize(zstr, 0)); sked->time_str = g_strdup(ztokenize(zstr, 0)); sked->callsign = g_strdup(ztokenize(zstr, 0)); sked->locator = g_strdup(ztokenize(zstr, 0)); sked->remark = g_strdup(ztokenize(zstr, 0)); return sked; } void free_sked(struct sked *sked){ g_free(sked->sked_time); g_free(sked->operator_); g_free(sked->src_shortpband); g_free(sked->qrg); g_free(sked->pband); g_free(sked->time_str); g_free(sked->callsign); g_free(sked->locator); g_free(sked->remark); g_free(sked); } void recalc_worked_skeds(struct band *band){ int i; for (i=0; iskeds->len; i++){ struct sked *sked; sked = g_ptr_array_index(band->skeds, i); sked->worked = get_qso_by_callsign(band, sked->callsign) != NULL; //dbg("sked %s worked=%d\n", sked->callsign, sked->worked); } } /* ***************** SKED WINDOW ******************* */ void draw_skedwindow(struct skedwin_data *skedwdata){ int y,index; fill_area(skedwdata->x+1, skedwdata->y+1, skedwdata->w-2, skedwdata->h-2, COL_INV); draw_frame(skedwdata->x, skedwdata->y, skedwdata->w, skedwdata->h, COL_INV, 1); print_text(skedwdata->x + 5, skedwdata->y, -1, VTEXT(T_SKEDS), COL_NORM); if (!skedwdata->band) return; for (y=0;yh - 2; y++){ gchar *c; struct sked *sked; index = skedwdata->band->skeds->len - skedwdata->h + 2 + y; if (index<0 || index>=skedwdata->band->skeds->len) continue; sked = g_ptr_array_index(skedwdata->band->skeds, index); c = sw_sked_sprint(sked); print_text(skedwdata->x + 2, skedwdata->y+y+1, skedwdata->w - 4, c, COL_INV); g_free(c); } } void skedwindow_func(struct window *win, struct event *ev, int fwd){ struct terminal *term; struct skedwin_data *skedwdata; term = win->term; skedwdata = (struct skedwin_data *)win->data; // dbg("skedwindow_func [%d,%d,%d,%d]\n",ev->ev,ev->x,ev->y,ev->b); switch (ev->ev) { case EV_INIT: win->data = skedwdata = gses->skedwdata; case EV_RESIZE: skedwdata->x = gses->ontop->x; skedwdata->y = gses->ontop->y; skedwdata->w = gses->ontop->w; skedwdata->h = 2 + cfg->skedcount; case EV_REDRAW: draw_skedwindow(skedwdata); break; case EV_ABORT: if (gses) gses->skedwdata = NULL; /* mem_free(cwwdata); already in terminal.c:196 (delete_window) */ break; case EV_KBD: if (ev->x == KBD_ESC){ skedwdata->esccnt++; if (skedwdata->esccnt==3){ delete_window_ev(win, ev); return; } }else{ skedwdata->esccnt=0; } dbg("esccnt=%d\n", skedwdata->esccnt); win->next->handler(win, ev, 0); break; default: win->next->handler(win, ev, 0); } } void skedw_timer(cba_t cba){ struct window *w; if (!gses) return; gses->skedw_timer_id = 0; if (gses->skedwdata == NULL) return; // duplicate check but... foreach(w,term->windows){ if (w->data != gses->skedwdata) continue; delete_window(w); break; } } void skedw_create(struct band *b){ if (cfg->skedcount <= 0) return; if (gses->skedw_timer_id > 0) kill_timer(gses->skedw_timer_id); gses->skedw_timer_id = install_timer(5000, skedw_timer, CBA0); if (gses->skedwdata) { gses->skedwdata->band = b; return; } gses->skedwdata = mem_alloc(sizeof(struct skedwin_data)); memset(gses->skedwdata, 0, sizeof(struct skedwin_data)); gses->skedwdata->band = b; add_window_at_pos(skedwindow_func, NULL, gseswin->prev); } tucnak2-2.48/src/dwdb.c0000644000175000017500000007057111611033756011627 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" struct dw *dw; static gchar *dw_next; /* wwl1 */ static gchar *wd_next; /* dxc1 */ struct dw *init_dw(void){ struct dw *dw; dw = g_new0(struct dw,1 ); dw->pd = g_hash_table_new(g_str_hash, g_str_equal); dw->dw = g_hash_table_new(g_str_hash, g_str_equal); dw->wd = g_hash_table_new(g_str_hash, g_str_equal); dw_next = NULL; wd_next = NULL; return dw; } gboolean free_gpointer_item(gpointer key, gpointer value, gpointer user_data){ if (key) g_free(key); if (value) g_free(value); return TRUE; } static gboolean free_dw_item(gpointer key, gpointer value, gpointer user_data){ struct dw_item *dwi; g_free(key); dwi = (struct dw_item *)value; if (dwi->wwl0) g_free(dwi->wwl0); if (dwi->wwl1) g_free(dwi->wwl1); if (dwi->continent) g_free(dwi->continent); if (dwi->dxcname) g_free(dwi->dxcname); g_hash_table_foreach_remove(dwi->wwls, free_gpointer_item, NULL); g_hash_table_destroy(dwi->wwls); g_free(value); return FALSE; } static gboolean free_wd_item(gpointer key, gpointer value, gpointer user_data){ struct wd_item *wdi; g_free(key); wdi = (struct wd_item *)value; if (wdi->dxc0) g_free(wdi->dxc0); if (wdi->dxc1) g_free(wdi->dxc1); g_free(value); return FALSE; } void free_dw(struct dw *dw){ g_hash_table_foreach_remove(dw->pd, free_gpointer_item, NULL); g_hash_table_destroy(dw->pd); g_hash_table_foreach_remove(dw->dw, free_dw_item, NULL); g_hash_table_destroy(dw->dw); g_hash_table_foreach_remove(dw->wd, free_wd_item, NULL); g_hash_table_destroy(dw->wd); g_free(dw); } gint get_pd_size(struct dw *dw){ return g_hash_table_size(dw->pd); } gint get_dw_size(struct dw *dw){ return g_hash_table_size(dw->dw); } gint get_wd_size(struct dw *dw){ return g_hash_table_size(dw->wd); } #define DW_DELIM " \t\r\n" gchar *safe_fgets(GString *gs, FILE *f, int stripcomment){ char s[102], *c; int len; g_string_truncate(gs, 0); while (1){ c = fgets(s, 100, f); if (!c) return NULL; len = strlen(s); if (len>0 && s[len-1]=='\n'){ /* MAC ?*/ s[len-1]='\0'; if (len>1 && s[len-2]=='\r') s[len-2]='\0'; g_string_append(gs, s); break; } g_string_append(gs, s); } if (stripcomment){ char *c; c = strchr(gs->str, '#'); if (c) g_string_truncate(gs, c - gs->str); } /*dbg("%3d '%s'\n",gs->len, gs->str);*/ return gs->str; } gchar *safe_mgets(GString *gs, const char *file, long int *pos, const long int len, int stripcomment){ const char *c; /*dbg("safe_mgets(%d,%d,%d)\n", *pos, len, stripcomment);*/ g_string_truncate(gs, 0); if (*pos>=len) return NULL; for (c=file+(*pos); c!=file+len; c++,(*pos)++){ switch(*c){ case '\r': continue; case '\n': c++;(*pos)++; goto brk; } g_string_append_c(gs, *c); } brk:; /* dbg("brk at %d\n", *pos);*/ if (stripcomment){ char *c; c = strchr(gs->str, '#'); if (c) g_string_truncate(gs, c - gs->str); } // dbg("safe_mgets: %3d '%s' *pos=%d len=%d\n",gs->len, gs->str, *pos, len); if (*pos>len) return NULL; return gs->str; } void add_pd(struct dw *dw, gchar *prefix, gchar *dxc){ gpointer orig_prefix, orig_dxc; /* dbg("add_pd(prefix='%s', dxc='%s'\n", prefix, dxc );*/ if (g_hash_table_lookup_extended(dw->pd, (gpointer) prefix, &orig_prefix, &orig_dxc)){ g_hash_table_remove(dw->pd, orig_prefix); g_free(orig_prefix); g_free(orig_dxc); } g_hash_table_insert(dw->pd, g_strdup(prefix), g_strdup(dxc) ); } struct dw_item *add_dxc(struct dw *dw, gchar *dxc, gchar *wwl0, gchar *wwl1, int waz, int itu, gchar *continent, gchar *dxcname, double latitude, double longitude){ struct dw_item *dxci; /*dbg("add_dxc(dxc='%s', wwl='%s' '%s')\n",dxc, wwl0, wwl1);*/ dxci = g_hash_table_lookup(dw->dw, dxc); if (!dxci) { dxci = g_new0(struct dw_item, 1); dxci->wwls = g_hash_table_new(g_str_hash, g_str_equal); g_hash_table_insert(dw->dw, g_strdup(dxc), dxci); } if (dxci->wwl0 && wwl0) { g_free(dxci->wwl0); dxci->wwl0 = NULL; } if (dxci->wwl1 && wwl1) { g_free(dxci->wwl1); dxci->wwl1 = NULL; } dxci->wwl0 = g_strdup(wwl0); dxci->wwl1 = g_strdup(wwl1); if (waz) dxci->waz = waz; if (itu) dxci->itu = itu; if (continent) dxci->continent = g_strdup(continent); if (dxcname) dxci->dxcname = g_strdup(dxcname); if (longitude < 400) dxci->longitude = longitude; if (latitude < 400) dxci->latitude = latitude; return dxci; } void add_dw(struct dw_item *dxci, gchar *dxc, gchar *wwl){ gpointer orig_wwl, orig_dxc; char wwl1[6]; if (!wwl) return; if (g_hash_table_lookup_extended(dxci->wwls, (gpointer) wwl, &orig_wwl, &orig_dxc)){ g_hash_table_remove(dxci->wwls, orig_wwl); g_free(orig_wwl); g_free(orig_dxc); } safe_strncpy(wwl1, wwl, 5); /*dbg("add_dw(dxc='%s', wwl='%s')\n", dxc, wwl1);*/ g_hash_table_insert(dxci->wwls, g_strdup(wwl1), g_strdup(dxc) ); } void add_wd(struct dw *dw, gchar *wwl, gchar *dxc){ struct wd_item *wdi; if (!wwl || !dxc) return; /*dbg("add_wd(wwl='%s', dxc='%s') size=%d \n",wwl, dxc, g_hash_table_size(dw->wd));*/ wdi = g_hash_table_lookup(dw->wd, wwl); if (!wdi){ wdi = g_new0(struct wd_item, 1); g_hash_table_insert(dw->wd, g_strdup(wwl), wdi); /* dbg(" adding wwl '%s' \n", wwl);*/ } if (!wdi->dxc0) { wdi->dxc0 = g_strdup(dxc); /*dbg(" adding dxc0 '%s' \n", wdi->dxc0);*/ return; } if (!wdi->dxc1) { wdi->dxc1 = g_strdup(dxc); /* dbg(" adding dxc1 '%s' \n", wdi->dxc1);*/ return; } return; } int load_dw_from_file(struct dw *dw, gchar *filename){ FILE *f; long int len; gchar *file; int ret; size_t r; /*dbg("load_dw_from_file(%s, rt)\n", filename);*/ f = fopen(filename, "rt"); if (!f) { /* dbg("Can't open '%s'\n",filename);*/ return -1; } if (fseek(f, 0L, SEEK_END)<0){ fclose(f); return -1; } len=ftell(f); if (len<0 || len>0x10000000) { /* g_new can allocate only gsize=unisgned int */ fclose(f); return -1; } if (fseek(f, 0L, SEEK_SET)<0){ fclose(f); return -1; } file=g_new(gchar, len); r=fread(file, 1, len, f); fclose(f); if (r!=len) return -1; ret=load_dw_from_mem(dw, file, len); g_free(file); return ret; } int load_dw_from_mem(struct dw *dw, const char *file, const long int len){ GString *pref, *wwls, *centers; gchar *dxc, *prefix, *wwl, *c0, *c1; struct dw_item *dxci; char *token_ptr; long int pos; pref = g_string_sized_new(100); wwls = g_string_sized_new(100); centers = g_string_sized_new(100); pos=0; while(1){ do { if (!safe_mgets(pref, file, &pos, len, 1)) goto abort; }while (pref->len==0); dxc = strtok_r(pref->str, DW_DELIM, &token_ptr); if (!dxc) continue; add_pd(dw, dxc, dxc); while ((prefix=strtok_r(NULL, DW_DELIM, &token_ptr))!=NULL){ add_pd(dw, prefix, dxc); } if (!safe_mgets(wwls, file, &pos, len, 1)) break; if (!wwls->len) continue; if (!safe_mgets(centers, file, &pos, len, 1)) break; if (centers->len) c0 = strtok_r(centers->str, DW_DELIM, &token_ptr); else c0 = strtok_r(wwls->str, DW_DELIM, &token_ptr); c1 = strtok_r(NULL, DW_DELIM, &token_ptr); dxci = add_dxc(dw, dxc, c0, c1, 0, 0, NULL, NULL, 404, 404); add_dw(dxci, dxc, c0); add_dw(dxci, dxc, c1); add_wd(dw, c0, dxc); add_wd(dw, c1, dxc); if (centers->len){ c0 = strtok_r(wwls->str, DW_DELIM, &token_ptr); add_dw(dxci, dxc, c0); add_wd(dw, c0, dxc); } while((wwl = strtok_r(NULL, DW_DELIM, &token_ptr))!=NULL){ add_dw(dxci, dxc, wwl); add_wd(dw, wwl, dxc); } } abort:; g_string_free(pref, 1); g_string_free(wwls, 1); g_string_free(centers, 1); return 0; } #define CTY_DELIM ":" #define PREF_DELIM "," int load_cty_from_file(struct dw *dw, gchar *filename){ FILE *f; long int len; gchar *file; int ret; size_t r; f = fopen(filename, "rt"); if (!f) { /* dbg("Can't open '%s'\n",filename);*/ return -1; } if (fseek(f, 0L, SEEK_END)<0){ fclose(f); return -1; } len=ftell(f); if (len<0 || len>0x10000000) { /* g_new can allocate only gsize=unisgned int */ fclose(f); return -1; } if (fseek(f, 0L, SEEK_SET)<0){ fclose(f); return -1; } file=g_new(gchar, len); r=fread(file, 1, len, f); fclose(f); if (r!=len) return -1; ret=load_cty_from_mem(dw, file, len); g_free(file); return ret; } int load_cty_from_mem(struct dw *dw, const char *file, const long int len){ GString *gs, *gs_next; gchar **line, **prefs, *continent; int i, waz, itu; gchar *dxc, *dxcname; char wwl4[6]; long int pos; struct dw_item *dxci; double latitude, longitude; gs = g_string_sized_new(100); gs_next = g_string_sized_new(100); pos=0; while(1){ if (gs_next->len>0){ g_string_assign(gs, gs_next->str); }else{ if (!safe_mgets(gs, file, &pos, len, 0)) break; } while(1){ if (!safe_mgets(gs_next, file, &pos, len, 0)){ g_string_truncate(gs_next,0); /* next safe_mgets breaks loop */ break; } if (gs_next->str[0]==' '){ g_string_append(gs, gs_next->str); }else{ break; } } line = g_strsplit(gs->str, CTY_DELIM, 9); for (i=0;i<9;i++) { if (line[i] ==NULL){ break; } } if (i!=9) { g_strfreev(line); continue; } g_strstrip(line[0]); dxcname = line[0]; g_strstrip(line[1]); waz = atoi(line[1]); g_strstrip(line[2]); itu = atoi(line[2]); g_strstrip(line[3]); continent = line[3]; g_strstrip(line[4]); latitude = atof(line[4]); g_strstrip(line[5]); longitude = - atof(line[5]); g_strstrip(line[7]); g_strstrip(line[8]); dxc=line[7]; if (dxc[0]=='*') dxc++; // strip leading star, TNX to DL5YBZ /*slash = strchr(dxc, '/'); if (slash) { *slash = '\0'; slash++;; } */ uc(dxc); //dbg("dxc='%s'\n", dxc); if (!dxc || !*dxc) { g_strfreev(line); continue; } add_pd(dw, dxc, dxc); /* dbg("h=%s, w=%s, d=%s, p=%s\n", line[5], line[6], line[7], line[8]);*/ prefs = g_strsplit(line[8], PREF_DELIM, 0); for (i=0; prefs[i]!=NULL; i++){ char *c; g_strstrip(prefs[i]); if (strchr(prefs[i],'/')) continue; if ((c=strchr(prefs[i],'('))!=NULL) *c='\0'; if ((c=strchr(prefs[i],'['))!=NULL) *c='\0'; if ((c=strchr(prefs[i],';'))!=NULL) *c='\0'; if (strlen(prefs[i])>2 && !isdigit(prefs[i][ strlen(prefs[i])-1])) continue; /*dbg("\t'%s'", prefs[i]); */ add_pd(dw, prefs[i], dxc); } g_strfreev(prefs); /*dbg("\n");*/ compute_wwl4(wwl4, -atof(line[5]), atof(line[4])); /*dbg("h=%s, w=%s, d=%s, wwl4=%s \n", line[4], line[5], line[7], wwl4);*/ dxci = add_dxc(dw, dxc, wwl4, NULL, waz, itu, continent, dxcname, latitude, longitude); g_strfreev(line); } g_string_free(gs, 1); g_string_free(gs_next, 1); return 0; } void read_dw_files(struct dw *dw){ gchar *s; int ret; s = g_strconcat(getenv("HOME"), "/tucnak/cty.dat", NULL); ret=load_cty_from_file(dw, s); g_free(s); if (ret<0){ load_cty_from_mem(dw, txt_cty, sizeof(txt_cty)); } s = g_strconcat(getenv("HOME"), "/tucnak/tucnakdw", NULL); ret=load_dw_from_file(dw, s); g_free(s); if (ret<0){ load_dw_from_mem(dw, txt_tucnakdw, sizeof(txt_tucnakdw)); } } struct dw_item *get_dw_item_by_call(struct dw *dw, gchar *call){ char dxcc[25]; get_dxcc(dw, dxcc, call); return g_hash_table_lookup(dw->dw, dxcc); } int wwl_is_ok_by_call(struct dw *dw, gchar *wwl, gchar *call){ struct dw_item *dxci; char swwl[5]; if (!wwl || !call) return 1; /*dbg("dxcc=%s\n", dxcc);*/ dxci = get_dw_item_by_call(dw, call); if (!dxci) { /* dbg("can't find dxcc (%s) for call %s \n", dxcc, call);*/ return 0; } safe_strncpy(swwl, wwl, 5); if (g_hash_table_lookup(dxci->wwls, swwl)){ /* dbg("is OK\n"); */ return 1; } /* dbg("loc not found\n");*/ return 0; } /* 0=OK 1=WARN, known call from unknown locator 2=ERR, prefix and big wwl dont match 256=WARN, suspicious call 257=ERR, suspicious call */ int get_susp(struct cw *cw, struct dw *dw, gchar *call, gchar *wwl, int ambig){ int susp=0; gchar *wwl0, *wwl1; /*dbg("get_susp('%s', '%s')\n", call, wwl);*/ if (!call || !wwl || !*call || !*wwl) return 0; if (!wwl_is_ok_by_call(dw, wwl, call)) { susp=2; /* bad country */ goto skip; } wwl0=find_wwl_by_call(cw, call); wwl1=find_wwl_by_call(cw, NULL); if (wwl0!=NULL){ /* we don't know this call, cannot be suspicious */ susp = 1; if (wwl0 && strcasecmp(wwl0, wwl)==0) susp = 0; if (wwl1 && strcasecmp(wwl1, wwl)==0) susp = 0; } skip:; if (ambig) if (get_susp_ambiguous_call(cw, NULL, call, wwl, NULL, 1)) susp|=0x100; /* dbg(" ret=%d\n", susp);*/ return susp; } int get_susp_call(struct cw *cw, struct dw *dw, gchar *call, gchar *wwl){ int susp; char s[40]; //dbg("get_susp_call('%s', '%s')\n", call, wwl); if (!call || !*call){ /* pokud je vsechno NULL nebo "", tak get_susp skonci s nulou a test s /P pokracuje */ return 0; } susp=get_susp(cw, dw, call, wwl, 1); if (susp) return 1; /* get_susp muze vratit 0x100 a co bysme s tim delali */ get_raw_call(s, call); if (strcmp(s, call)==0){ /* without /p */ strcat(s, "/P"); //dbg("without %s", s); if (find_wwl_by_call(cw, s)) { //dbg(" SUSP"); susp=1; /* call is without /p and in C_W exists call with /p */ } }else{ /* call is with /p */ //dbg("with %s", s); if (find_wwl_by_call(cw, s)) { //dbg(" SUSP"); susp=1; /* call is with /p and in C_W exists call without /p */ } } if (wwl && *wwl) susp=get_susp_ambiguous_call(cw, NULL, call, wwl, NULL, 1); //dbg(" ret=%d\n", susp); return susp; } int get_susp_loc(struct cw *cw, struct dw *dw, gchar *call, gchar *wwl){ return get_susp(cw, dw, call, wwl, 0); } #define ADDQSO if (!err) { \ if (qso->time_str){ \ g_string_sprintfa(gs, "%s %s %c%c.%c%c\n", qso->callsign?qso->callsign:"?", qso->locator?qso->locator:"?", qso->time_str[0], qso->time_str[1], qso->time_str[2], qso->time_str[3]); \ }else{ \ g_string_sprintfa(gs, "%s %s\n", qso->callsign?qso->callsign:"?", qso->locator?qso->locator:"?"); \ }err=1;} static enum suspcall qso_info(struct qso *qso, GString *gs, GString *gs2){ char s[40],s1[40], raw[40]; int err, susp, k; enum suspcall ret; char *wwl0, *wwl1; struct band *b; struct qso *q; int i,j; ret=SUSP_NONE; if (!qso) return -1; if (qso->error) return -1; if (qso->dupe) return -1; err=0; if (qso->band && qso->band->stats && qso->band->stats->nqsos > 0){ if (qso->qsop > qso->band->stats->nqsop/qso->band->stats->nqsos) if (ret < SUSP_QRB) ret = SUSP_QRB; } if (qso->remark && *qso->remark) { if (ret < SUSP_REM) ret = SUSP_REM; } if (!find_name_by_call(namedb, qso->callsign) && !find_wwl_by_call(cw, qso->callsign)){ ADDQSO; g_string_sprintfa(gs, "Callsign unknown in namedb and C_W\n"); if (ret < SUSP_WARN) ret = SUSP_WARN; } if (qso->mode == MOD_SSB_CW || qso->mode == MOD_CW_SSB){ ADDQSO; g_string_sprintfa(gs, "Crossmode QSO ?\n"); if (ret < SUSP_WARN) ret = SUSP_WARN; } if (!get_dw_item_by_call(dw, qso->callsign)){ ADDQSO; g_string_sprintfa(gs, "Unknown DXCC prefix\n"); if (ret < SUSP_ERR) ret = SUSP_ERR; } if (qso->locator && *qso->locator){ if (!wwl_is_ok_by_call(dw, qso->locator, qso->callsign)){ ADDQSO; g_string_sprintfa(gs, "Prefix and big wwl don't match\n"); if (ret < SUSP_ERR) ret = SUSP_ERR; } } wwl0=find_wwl_by_call(cw, qso->callsign); wwl1=find_wwl_by_call(cw, NULL); susp=0; if (wwl0 != NULL && qso->locator != NULL){ /* we don't know this call, cannot be suspicious */ susp = 1; if (wwl0 && strcasecmp(wwl0, qso->locator)==0) susp = 0; if (wwl1 && strcasecmp(wwl1, qso->locator)==0) susp = 0; } if (qso->locator && *qso->locator){ if (susp){ ADDQSO; g_string_sprintfa(gs, "Known call from unknown locator\n"); if (ret < SUSP_WARN) ret = SUSP_WARN; } } get_raw_call(raw, qso->callsign); strcpy(s, raw); if (strcmp(s, qso->callsign)==0){ /* without /p */ strcpy(s1, s); strcat(s, "/P"); if (find_wwl_by_call_newer(cw, s, cw->minstamp)) { ADDQSO; g_string_sprintfa(gs, "Call is without /P and in C_W exists call with /P\n"); if (ret < SUSP_WARN) ret = SUSP_WARN; } strcat(s1, "/"); for (k=0;k<=9;k++){ strcpy(s, s1); s[strlen(s)+1]='\0'; s[strlen(s)]='0'+k; if (find_wwl_by_call_newer(cw, s, cw->minstamp)) { ADDQSO; g_string_sprintfa(gs, "Call is without /%d and in C_W exists call with /%d\n", k, k); if (ret < SUSP_WARN) ret = SUSP_WARN; } } }else{ /* call is with /p */ if (find_wwl_by_call_newer(cw, s, cw->minstamp)) { ADDQSO; g_string_sprintfa(gs, "Call is with /P and in C_W exists call without /P or CEPT prefix\n"); if (ret < SUSP_WARN) ret = SUSP_WARN; } } if (qso->locator != NULL){ g_string_truncate(gs2, 0); get_susp_ambiguous_call(cw, qso->band, qso->callsign, qso->locator, gs2, 1); if (gs2->len>0){ ADDQSO; g_string_sprintfa(gs, "Other similar call known from this locator. Maybe %s?\n", gs2->str); if (ret < SUSP_WARN) ret = SUSP_WARN; } } if (ctest){ for (i=0; ibands->len; i++){ b = (struct band*)g_ptr_array_index(ctest->bands, i); if (b == qso->band) continue; for (j=0; jqsos->len; j++){ q = (struct qso *)g_ptr_array_index(b->qsos, j); if (q->error || q->dupe) continue; get_raw_call(s, q->callsign); /*if (q->callsign[0]=='D' && q->callsign[1]=='M' && q->callsign[2]=='7'){ dbg("call %s %s %s %d\n", q->callsign, s, raw, strcmp(s, raw)); } */ if (strcmp(s, raw) != 0) continue; /* not same station */ /*dbg("RAW match %s %s\n", s, raw);*/ if (strcmp(q->callsign, qso->callsign) != 0){ ADDQSO; g_string_sprintfa(gs, "Callsign on band %c is %s\n", toupper(b->bandchar), q->callsign); if (ret < SUSP_WARN) ret = SUSP_WARN; } if (qso->locator != NULL && strcmp(q->locator, qso->locator) != 0){ ADDQSO; g_string_sprintfa(gs, "Locator on band %c is %s\n", toupper(b->bandchar), q->locator); if (ret < SUSP_WARN) ret = SUSP_WARN; } } } } return ret; } void menu_qso_check(cba_t cba){ GString *gs, *gs2; struct band *band; struct qso *qso; int i,j,ret; FILE *f; char *filename; if (!ctest) return; gs=g_string_sized_new(10000); gs2=g_string_sized_new(1000); g_string_sprintf(gs, " Tucnak QSO check list\n"); g_string_sprintfa(gs, " *************************\n"); g_string_sprintfa(gs, "\n\n"); g_string_sprintfa(gs, " Call: %s\n", ctest->pcall); g_string_sprintfa(gs, "Contest: %s\n", ctest->tname); g_string_sprintfa(gs, " Date: %s\n", ctest->tdate); g_string_sprintfa(gs, "\n\n"); for (i=0;ibands->len;i++){ band = (struct band *)g_ptr_array_index(ctest->bands, i); g_string_sprintfa(gs, " Band %c %s\n", toupper(band->bandchar), band->pband); g_string_sprintfa(gs, " ********************\n"); for (j=0;jqsos->len;j++){ qso = (struct qso *)g_ptr_array_index(band->qsos, j); ret=qso_info(qso, gs, gs2); if (ret) g_string_sprintfa(gs, "\n"); if (ret>=0) qso->suspcall1=ret; } } g_string_sprintfa(gs, "\n\nEOF\n"); filename = g_strdup_printf("%s/qsocheck.txt", ctest->directory); f=fopen(filename,"wt"); if (!f) { log_addf(VTEXT(T_CANT_WRITE_S), filename); errbox(VTEXT(T_CANT_WRITE), errno); g_free(filename); g_string_free(gs, TRUE); g_string_free(gs2, TRUE); return; } ret=fwrite(gs->str, 1, gs->len, f); fclose(f); if (ret!=gs->len){ log_addf(VTEXT(T_CANT_WRITE_S), filename); errbox(VTEXT(T_CANT_WRITE), 0); g_free(filename); g_string_free(gs, TRUE); g_string_free(gs2, TRUE); return; } log_addf(VTEXT(T_SAVED_S), filename); g_free(filename); g_string_free(gs, TRUE); g_string_free(gs2, TRUE); return; } void call_info(cba_t cba){ struct qso *qso=NULL; GString *gs, *gs2; static char ss[1024]; int err,freeqso,i; char *title, *c; char raw[30]; struct qrv_item *qi; gs=g_string_sized_new(500); gs2=g_string_sized_new(500); err=0; freeqso=0; /* dbg("TMPQ.callsign=%s %p\n", TMPQ.callsign, aband);*/ if (GETCBA(cba,qso) != NULL){ qso = (struct qso *)GETCBA(cba, qso); qso_info(qso, gs, gs2); }else if (strlen(INPUTLN(aband)->cdata) > 0){ qso=g_new0(struct qso, 1); qso->callsign = INPUTLN(aband)->cdata; /* foreign key */ qso->locator = NULL; qso->rsts = ""; qso->qsonrs = ""; qso->rstr = ""; qso->qsonrr = ""; qso_info(qso, gs, gs2); freeqso=1; }else if (aband && (!TMPQ.callsign || !strlen(TMPQ.callsign))){ if (aband->qsos->len<=0) goto x; qso=(struct qso *)g_ptr_array_index(aband->qsos, aband->qsos->len-1); qso_info(qso, gs, gs2); }else if (aband){ /* tmpqso is valid */ qso=g_new0(struct qso, 1); qso->callsign = TMPQ.callsign; /* foreign keys */ qso->locator = TMPQ.locator?TMPQ.locator:""; qso->rsts = TMPQ.rsts?TMPQ.rsts:""; qso->qsonrs = TMPQ.qsonrs?TMPQ.qsonrs:""; qso->rstr = TMPQ.rstr?TMPQ.rstr:""; qso->qsonrr = TMPQ.qsonrr?TMPQ.qsonrr:""; qso_info(qso, gs, gs2); freeqso=1; }else{ goto x; } if (gs->len>0){ title=VTEXT(T_CALL_INFO); }else{ ADDQSO; g_string_sprintfa(gs, "Seems to be O.K.\n"); safe_strncpy(ss, gs->str, sizeof(ss)); title=VTEXT(T_OK); } /* next callsign info */ g_string_append(gs, "\n"); /* C_W */ get_raw_call(raw, qso->callsign); g_string_truncate(gs2, 0); cwdb_call_info(gs2, qso->callsign, ""); cwdb_call_info(gs2, qso->callsign, "/P"); for (i=0;i<=9;i++){ char stroke[10]; sprintf(stroke, "/%d", i); cwdb_call_info(gs2, qso->callsign, stroke); } if (gs2->len>0){ g_string_append(gs, gs2->str); }else{ g_string_sprintfa(gs, "C_W: %s not found\n", qso->callsign); } /* wkd */ if (ctest){ g_string_append(gs, "WKD on: "); for (i = 0; i < ctest->bands->len; i++){ struct band *b = (struct band*) g_ptr_array_index(ctest->bands, i); if (get_qso_by_callsign(b, qso->callsign)) g_string_append_c(gs, toupper(b->bandchar)); } g_string_append_c(gs, '\n'); } /* qrv */ qi = qrv_get(qrvdb, qso->callsign); g_string_sprintfa(gs, "QRV: "); if (qi){ // g_string_sprintfa(gs, " %s", qi->wwl); if (aband){ g_string_sprintfa(gs, " %dx", qi->wkd[aband->bandchar - 'a']); } if (qi->kst_time != 0){ struct tm utc; gmtime_r(&qi->kst_time, &utc); g_string_sprintfa(gs, " %2d:%02d", utc.tm_hour, utc.tm_min); } }else{ g_string_append(gs, " 0x (not in database)"); } g_string_append_c(gs, '\n'); /* namedb */ c=find_name_by_call(namedb, qso->callsign); if (c){ g_string_sprintfa(gs, "Name: %s's name is %s\n", qso->callsign, c); }else{ g_string_sprintfa(gs, "Name: %s's name is unknown\n", qso->callsign); } safe_strncpy(ss, gs->str, sizeof(ss)); msg_box(NULL, title, AL_LEFT, ss, NULL, 1, VTEXT(T_OK), NULL, B_ENTER | B_ESC); x:; g_string_free(gs, TRUE); g_string_free(gs2, TRUE); if (freeqso) g_free(qso); } gchar *find_wwl_by_dxc(struct dw *dw, gchar *dxc){ struct dw_item *dxci; if (!dxc) return dw_next; dw_next = NULL; dxci = g_hash_table_lookup(dw->dw, dxc); if (!dxci) return NULL; dw_next = dxci->wwl1; return dxci->wwl0; } gchar *find_dxc_by_wwl(struct dw *dw, gchar *wwl){ struct wd_item *wdi; char s[10]; if (!wwl) return wd_next; wd_next = NULL; safe_strncpy(s, wwl, 10); if (strlen(s)>4) s[4]='\0'; wdi = g_hash_table_lookup(dw->wd, s); if (!wdi) return NULL; wd_next = wdi->dxc1; return wdi->dxc0; } char *get_dxcc(struct dw *dw, char *buf, char *call){ char *c0, *c1, *c2, *dxc; char s[100], *stroke = NULL; c0=c1=c2=NULL; safe_strncpy0(buf, call, 20); if (regmatch(call, "^(.*[0-9])[A-Z]*(/[A-Z])?", &c0, &c1, &c2, NULL)==0){ // dbg("\n%s '%s' '%s' '%s'\n", call, c0, c1, c2); safe_strncpy0(buf, c1, 20); if (c2 != NULL){ stroke = c2; } while (*buf!='\0'){ safe_strncpy0(s, buf, 20); if (stroke) strcat(s, stroke); // dbg("trying1 '%s'\n", s); dxc = g_hash_table_lookup(dw->pd, s); if (dxc) { // dbg("get_dxcc(%s)='%s'\n", call, s); safe_strncpy0(buf, dxc, 20); goto found; } buf[strlen(buf)-1]='\0'; } safe_strncpy0(buf, c1, 20); while (*buf!='\0'){ safe_strncpy0(s, buf, 20); // dbg("trying2 '%s'\n", s); dxc = g_hash_table_lookup(dw->pd, s); if (dxc) { // dbg("get_dxcc(%s)='%s'\n", call, s); safe_strncpy0(buf, dxc, 20); goto found; } buf[strlen(buf)-1]='\0'; } safe_strncpy0(buf, call, 20); } found:; if (c0) mem_free(c0); if (c1) mem_free(c1); if (c2) mem_free(c2); // dbg("get_dxcc(%s)='%s'\n", call, buf); return buf; } char *get_pref(char *buf, char *call){ char *c0, *c1; c0=c1=NULL; safe_strncpy0(buf, call, 20); if (regmatch(call, "^(.*[0-9])[A-Z]*", &c0, &c1, NULL)==0){ safe_strncpy0(buf, c1, 20); } if (c0) mem_free(c0); if (c1) mem_free(c1); dbg("get_pref(%s)='%s'\n", call, buf); return buf; } tucnak2-2.48/src/uni_7b.inc0000644000175000017500000014564511567373656012446 00000000000000/* Automatically generated by gen-7b (from links) */ /* DO NOT EDIT THIS FILE! */ struct { unicode_val x; char *s; } unicode_7b [2453] = { {0x00000000, "NUL"}, {0x00000001, "SH"}, {0x00000002, "SX"}, {0x00000003, "EX"}, {0x00000004, "ET"}, {0x00000005, "ENQ"}, {0x00000006, "AK"}, {0x00000007, "BL"}, {0x00000008, "BS"}, {0x00000009, "HT"}, {0x0000000a, "LF"}, {0x0000000b, "VT"}, {0x0000000c, "FF"}, {0x0000000d, "CR"}, {0x0000000e, "SO"}, {0x0000000f, "SI"}, {0x00000010, "DL"}, {0x00000011, "DC1"}, {0x00000012, "DC2"}, {0x00000013, "DC3"}, {0x00000014, "DC4"}, {0x00000015, "NAK"}, {0x00000016, "SYN"}, {0x00000017, "EB"}, {0x00000018, "CN"}, {0x00000019, "EM"}, {0x0000001a, "SB"}, {0x0000001b, "ESC"}, {0x0000001c, "FS"}, {0x0000001d, "GS"}, {0x0000001e, "RS"}, {0x0000001f, "US"}, {0x0000007f, "DT"}, {0x00000085, "\\\\012"}, {0x000000a0, "\\001"}, {0x000000a1, "!"}, {0x000000a2, "-c-"}, {0x000000a3, "-L-"}, {0x000000a4, "CUR"}, {0x000000a5, "YEN"}, {0x000000a6, "|"}, {0x000000a7, "S"}, {0x000000a8, "\""}, {0x000000a9, "(c)"}, {0x000000aa, "-a"}, {0x000000ab, "<<"}, {0x000000ac, "NOT"}, {0x000000ad, ""}, {0x000000ad, ""}, {0x000000ae, "(R)"}, {0x000000af, "-"}, {0x000000b0, "DEG"}, {0x000000b1, "+-"}, {0x000000b2, "^2"}, {0x000000b3, "^3"}, {0x000000b4, "'"}, {0x000000b5, "u"}, {0x000000b6, "P"}, {0x000000b7, "."}, {0x000000b8, ","}, {0x000000b9, "^1"}, {0x000000ba, "-o"}, {0x000000bb, ">>"}, {0x000000bc, " 1/4"}, {0x000000bd, " 1/2"}, {0x000000be, " 3/4"}, {0x000000bf, "?"}, {0x000000c0, "A"}, {0x000000c1, "A"}, {0x000000c2, "A"}, {0x000000c3, "A"}, {0x000000c4, "Ae"}, {0x000000c5, "AA"}, {0x000000c6, "AE"}, {0x000000c7, "C,"}, {0x000000c8, "E"}, {0x000000c9, "E"}, {0x000000ca, "E"}, {0x000000cb, "E"}, {0x000000cc, "I"}, {0x000000cd, "I"}, {0x000000ce, "I"}, {0x000000cf, "I"}, {0x000000d0, "D-"}, {0x000000d1, "N"}, {0x000000d2, "O"}, {0x000000d3, "O"}, {0x000000d4, "O"}, {0x000000d5, "O"}, {0x000000d6, "Oe"}, {0x000000d7, " *"}, {0x000000d8, "O/"}, {0x000000d9, "U"}, {0x000000da, "U"}, {0x000000db, "U"}, {0x000000dc, "Ue"}, {0x000000dd, "Y"}, {0x000000de, "TH"}, {0x000000df, "ss"}, {0x000000e0, "`a"}, {0x000000e1, "a"}, {0x000000e2, "a"}, {0x000000e3, "a"}, {0x000000e4, "ae"}, {0x000000e5, "aa"}, {0x000000e6, "ae"}, {0x000000e7, "c,"}, {0x000000e8, "e"}, {0x000000e9, "e"}, {0x000000ea, "e"}, {0x000000eb, "e"}, {0x000000ec, "`i"}, {0x000000ed, "i"}, {0x000000ee, "i"}, {0x000000ef, "i"}, {0x000000f0, "d-"}, {0x000000f1, "n"}, {0x000000f2, "o"}, {0x000000f3, "o"}, {0x000000f4, "o"}, {0x000000f5, "o"}, {0x000000f6, "oe"}, {0x000000f7, "-"}, {0x000000f8, "o/"}, {0x000000f9, "u"}, {0x000000fa, "u"}, {0x000000fb, "u"}, {0x000000fc, "ue"}, {0x000000fd, "y"}, {0x000000fe, "th"}, {0x000000ff, "y"}, {0x00000100, "A"}, {0x00000101, "a"}, {0x00000102, "A"}, {0x00000103, "a"}, {0x00000104, "A"}, {0x00000105, "a"}, {0x00000106, "C"}, {0x00000107, "c"}, {0x00000108, "CH"}, {0x00000109, "ch"}, {0x0000010a, "C"}, {0x0000010b, "c"}, {0x0000010c, "C"}, {0x0000010d, "c"}, {0x0000010e, "D"}, {0x0000010f, "d"}, {0x00000110, "D/"}, {0x00000111, "d/"}, {0x00000112, "E"}, {0x00000113, "e"}, {0x00000114, "E"}, {0x00000115, "e"}, {0x00000116, "E"}, {0x00000117, "e"}, {0x00000118, "E"}, {0x00000119, "e"}, {0x0000011a, "E"}, {0x0000011b, "e"}, {0x0000011c, "GH"}, {0x0000011d, "gh"}, {0x0000011e, "G"}, {0x0000011f, "g"}, {0x00000120, "G"}, {0x00000121, "g"}, {0x00000122, "G"}, {0x00000123, "g"}, {0x00000124, "HH"}, {0x00000125, "hh"}, {0x00000126, "H/"}, {0x00000127, "H"}, {0x00000128, "I"}, {0x00000129, "i"}, {0x0000012a, "I"}, {0x0000012b, "i"}, {0x0000012c, "I"}, {0x0000012d, "i"}, {0x0000012e, "I"}, {0x0000012f, "i"}, {0x00000130, "I"}, {0x00000131, "i"}, {0x00000132, "IJ"}, {0x00000133, "ij"}, {0x00000134, "JH"}, {0x00000135, "jh"}, {0x00000136, "K"}, {0x00000137, "k"}, {0x00000138, "kk"}, {0x00000139, "L"}, {0x0000013a, "l"}, {0x0000013b, "L"}, {0x0000013c, "l"}, {0x0000013d, "L"}, {0x0000013e, "l"}, {0x0000013f, "L."}, {0x00000140, "l."}, {0x00000141, "L/"}, {0x00000142, "l/"}, {0x00000143, "N"}, {0x00000144, "n"}, {0x00000145, "N"}, {0x00000146, "n"}, {0x00000147, "N"}, {0x00000148, "n"}, {0x00000149, "'n"}, {0x0000014a, "NG"}, {0x0000014b, "N"}, {0x0000014c, "O"}, {0x0000014d, "o"}, {0x0000014e, "O"}, {0x0000014f, "o"}, {0x00000150, "O\""}, {0x00000151, "o\""}, {0x00000152, "OE"}, {0x00000153, "oe"}, {0x00000154, "R"}, {0x00000155, "r"}, {0x00000156, "R"}, {0x00000157, "r"}, {0x00000158, "R"}, {0x00000159, "r"}, {0x0000015a, "S"}, {0x0000015b, "s"}, {0x0000015c, "SH"}, {0x0000015d, "sh"}, {0x0000015e, "S"}, {0x0000015f, "s"}, {0x00000160, "S"}, {0x00000161, "s"}, {0x00000162, "T"}, {0x00000163, "t"}, {0x00000164, "T"}, {0x00000165, "t"}, {0x00000166, "T/"}, {0x00000167, "t/"}, {0x00000168, "U"}, {0x00000169, "u"}, {0x0000016a, "U"}, {0x0000016b, "u"}, {0x0000016c, "U"}, {0x0000016d, "u"}, {0x0000016e, "U"}, {0x0000016f, "u"}, {0x00000170, "U\""}, {0x00000171, "u\""}, {0x00000172, "U"}, {0x00000173, "u"}, {0x00000174, "W"}, {0x00000175, "w"}, {0x00000176, "Y"}, {0x00000177, "y"}, {0x00000178, "Y"}, {0x00000179, "Z"}, {0x0000017a, "z"}, {0x0000017b, "Z"}, {0x0000017c, "z"}, {0x0000017d, "Z"}, {0x0000017e, "z"}, {0x0000017f, "s1"}, {0x00000187, "C2"}, {0x00000188, "c2"}, {0x00000191, "F2"}, {0x00000192, " f"}, {0x00000198, "K2"}, {0x00000199, "k2"}, {0x000001a0, "O9"}, {0x000001a1, "o9"}, {0x000001a2, "OI"}, {0x000001a3, "oi"}, {0x000001a6, "yr"}, {0x000001af, "U9"}, {0x000001b0, "u9"}, {0x000001b5, "Z/"}, {0x000001b6, "z/"}, {0x000001b7, "ED"}, {0x000001cd, "A"}, {0x000001ce, "a"}, {0x000001cf, "I"}, {0x000001d0, "i"}, {0x000001d1, "O"}, {0x000001d2, "o"}, {0x000001d3, "U"}, {0x000001d4, "u"}, {0x000001d5, "U"}, {0x000001d6, "u"}, {0x000001d7, "U"}, {0x000001d8, "u"}, {0x000001d9, "U"}, {0x000001da, "u"}, {0x000001db, "U"}, {0x000001dc, "u"}, {0x000001de, "A1"}, {0x000001df, "a1"}, {0x000001e0, "A7"}, {0x000001e1, "a7"}, {0x000001e2, "A3"}, {0x000001e3, "a3"}, {0x000001e4, "G/"}, {0x000001e5, "g/"}, {0x000001e6, "G"}, {0x000001e7, "g"}, {0x000001e8, "K"}, {0x000001e9, "k"}, {0x000001ea, "O"}, {0x000001eb, "o"}, {0x000001ec, "O1"}, {0x000001ed, "o1"}, {0x000001ee, "EZ"}, {0x000001ef, "ez"}, {0x000001f0, "j"}, {0x000001f4, "G"}, {0x000001f5, "g"}, {0x000001fa, "AA'"}, {0x000001fb, "aa'"}, {0x000001fc, "AE'"}, {0x000001fd, "ae'"}, {0x000001fe, "O/'"}, {0x000001ff, "o/'"}, {0x00000200, "A!!"}, {0x00000201, "a!!"}, {0x00000202, "A)"}, {0x00000203, "a)"}, {0x00000204, "E!!"}, {0x00000205, "e!!"}, {0x00000206, "E)"}, {0x00000207, "e)"}, {0x00000208, "I!!"}, {0x00000209, "i!!"}, {0x0000020a, "I)"}, {0x0000020b, "i)"}, {0x0000020c, "O!!"}, {0x0000020d, "o!!"}, {0x0000020e, "O)"}, {0x0000020f, "o)"}, {0x00000210, "R!!"}, {0x00000211, "r!!"}, {0x00000212, "R)"}, {0x00000213, "r)"}, {0x00000214, "U!!"}, {0x00000215, "u!!"}, {0x00000216, "U)"}, {0x00000217, "u)"}, {0x0000021d, "Z"}, {0x00000251, "A"}, {0x00000252, "A."}, {0x00000253, "b`"}, {0x00000254, "O"}, {0x00000256, "d."}, {0x00000257, "d`"}, {0x00000258, "@"}, {0x00000259, "@"}, {0x0000025a, "R"}, {0x0000025b, "E"}, {0x0000025c, "V\""}, {0x0000025d, "R"}, {0x0000025e, "O\""}, {0x0000025f, "J"}, {0x00000260, "g`"}, {0x00000261, "g"}, {0x00000262, "G"}, {0x00000263, "Q"}, {0x00000264, "o-"}, {0x00000265, "j"}, {0x00000266, "h"}, {0x00000268, "i\""}, {0x00000269, "I"}, {0x0000026a, "I"}, {0x0000026b, "L"}, {0x0000026c, "L"}, {0x0000026d, "l."}, {0x0000026e, "z"}, {0x0000026f, "u-"}, {0x00000270, "j"}, {0x00000271, "M"}, {0x00000273, "n."}, {0x00000274, "n\""}, {0x00000275, "@."}, {0x00000276, "&."}, {0x00000277, "U"}, {0x00000279, "r"}, {0x0000027a, "*"}, {0x0000027b, "r."}, {0x0000027d, "*."}, {0x0000027e, "*"}, {0x00000280, "R"}, {0x00000280, "r\""}, {0x00000281, "g\""}, {0x00000282, "s."}, {0x00000283, "S"}, {0x00000284, "J`"}, {0x00000287, "t!"}, {0x00000288, "t."}, {0x00000289, "u\""}, {0x0000028a, "U"}, {0x0000028b, "r"}, {0x0000028c, "V"}, {0x0000028d, "w"}, {0x0000028e, "l^"}, {0x0000028f, "I."}, {0x00000290, "z."}, {0x00000292, "Z"}, {0x00000294, "?"}, {0x00000295, "H"}, {0x00000296, "l!"}, {0x00000297, "c!"}, {0x00000298, "p!"}, {0x00000299, "b"}, {0x0000029b, "G`"}, {0x0000029d, "j"}, {0x0000029e, "k!"}, {0x0000029f, "L"}, {0x000002a0, "q`"}, {0x000002a4, "d3"}, {0x000002a6, "ts"}, {0x000002a7, "tS"}, {0x000002b0, ""}, {0x000002b1, ""}, {0x000002b2, ";"}, {0x000002b3, ""}, {0x000002b7, ""}, {0x000002bb, ";S"}, {0x000002bc, "`"}, {0x000002c6, "^"}, {0x000002c7, "'<"}, {0x000002c8, "|"}, {0x000002c9, "1-"}, {0x000002cb, "1!"}, {0x000002d0, ":"}, {0x000002d1, ""}, {0x000002d6, "+"}, {0x000002d7, "-"}, {0x000002d8, "'("}, {0x000002d9, "'."}, {0x000002da, "'0"}, {0x000002db, "';"}, {0x000002dc, "~"}, {0x000002dd, "'\""}, {0x000002e5, "_T"}, {0x000002e6, "_H"}, {0x000002e7, "_M"}, {0x000002e8, "_L"}, {0x000002e9, "_B"}, {0x000002ec, "_v"}, {0x000002ee, "''"}, {0x00000300, "`"}, {0x00000301, "'"}, {0x00000302, "^"}, {0x00000303, "~"}, {0x0000030b, "''"}, {0x0000030d, "|"}, {0x0000030e, "||"}, {0x0000030f, "``"}, {0x00000321, ";"}, {0x00000322, "."}, {0x00000323, "."}, {0x00000324, ""}, {0x00000325, ""}, {0x00000326, ","}, {0x00000327, ","}, {0x00000329, "-"}, {0x0000032a, "["}, {0x0000032b, ""}, {0x00000334, ""}, {0x00000334, "~"}, {0x00000337, "/"}, {0x00000338, "/"}, {0x00000340, "`"}, {0x00000341, "'"}, {0x00000342, "~"}, {0x00000344, "'%"}, {0x00000345, "j3"}, {0x00000347, "="}, {0x00000360, "~~"}, {0x00000374, "'"}, {0x00000375, ","}, {0x0000037a, "j3"}, {0x0000037e, "?%"}, {0x00000384, "'*"}, {0x00000385, "'%"}, {0x00000386, "A'"}, {0x00000387, ".*"}, {0x00000388, "E'"}, {0x00000389, "Y%"}, {0x0000038a, "I'"}, {0x0000038c, "O'"}, {0x0000038e, "U%"}, {0x0000038f, "W%"}, {0x00000390, "i3"}, {0x00000391, "A"}, {0x00000392, "B"}, {0x00000393, "G"}, {0x00000394, "D"}, {0x00000395, "E"}, {0x00000396, "Z"}, {0x00000397, "Y"}, {0x00000398, "TH"}, {0x00000399, "I"}, {0x0000039a, "K"}, {0x0000039b, "L"}, {0x0000039c, "M"}, {0x0000039d, "N"}, {0x0000039e, "C"}, {0x0000039f, "O"}, {0x000003a0, "P"}, {0x000003a1, "R"}, {0x000003a3, "S"}, {0x000003a4, "T"}, {0x000003a5, "U"}, {0x000003a6, "F"}, {0x000003a7, "X"}, {0x000003a8, "Q"}, {0x000003a9, "W*"}, {0x000003aa, "J"}, {0x000003ab, "V*"}, {0x000003ac, "a'"}, {0x000003ad, "e'"}, {0x000003ae, "y%"}, {0x000003af, "i'"}, {0x000003b0, "u3"}, {0x000003b1, "a"}, {0x000003b2, "b"}, {0x000003b3, "g"}, {0x000003b4, "d"}, {0x000003b5, "e"}, {0x000003b6, "z"}, {0x000003b7, "y"}, {0x000003b8, "th"}, {0x000003b9, "i"}, {0x000003ba, "k"}, {0x000003bb, "l"}, {0x000003bc, "m"}, {0x000003bd, "n"}, {0x000003be, "c"}, {0x000003bf, "o"}, {0x000003c0, "p"}, {0x000003c1, "r"}, {0x000003c2, "*s"}, {0x000003c3, "s"}, {0x000003c4, "t"}, {0x000003c5, "u"}, {0x000003c6, "f"}, {0x000003c7, "x"}, {0x000003c8, "q"}, {0x000003c9, "w"}, {0x000003ca, "j"}, {0x000003cb, "v*"}, {0x000003cc, "o'"}, {0x000003cd, "u%"}, {0x000003ce, "w%"}, {0x000003d0, "beta"}, {0x000003d1, "theta"}, {0x000003d2, "upsi"}, {0x000003d5, "phi"}, {0x000003d6, "pi"}, {0x000003d7, "k."}, {0x000003da, "T3"}, {0x000003db, "t3"}, {0x000003dc, "M3"}, {0x000003dd, "m3"}, {0x000003de, "K3"}, {0x000003df, "k3"}, {0x000003e0, "P3"}, {0x000003e1, "p3"}, {0x000003f0, "kappa"}, {0x000003f1, "rho"}, {0x000003f3, "J"}, {0x000003f4, "'%"}, {0x000003f5, "j3"}, {0x00000401, "IO"}, {0x00000402, "D%"}, {0x00000403, "G%"}, {0x00000404, "IE"}, {0x00000405, "DS"}, {0x00000406, "II"}, {0x00000407, "YI"}, {0x00000408, "J%"}, {0x00000409, "LJ"}, {0x0000040a, "NJ"}, {0x0000040b, "Ts"}, {0x0000040c, "KJ"}, {0x0000040e, "V%"}, {0x0000040f, "DZ"}, {0x00000410, "A"}, {0x00000411, "B"}, {0x00000412, "V"}, {0x00000413, "G"}, {0x00000414, "D"}, {0x00000415, "E"}, {0x00000416, "ZH"}, {0x00000417, "Z"}, {0x00000418, "I"}, {0x00000419, "J"}, {0x0000041a, "K"}, {0x0000041b, "L"}, {0x0000041c, "M"}, {0x0000041d, "N"}, {0x0000041e, "O"}, {0x0000041f, "P"}, {0x00000420, "R"}, {0x00000421, "S"}, {0x00000422, "T"}, {0x00000423, "U"}, {0x00000424, "F"}, {0x00000425, "H"}, {0x00000426, "C"}, {0x00000427, "CH"}, {0x00000428, "SH"}, {0x00000429, "SCH"}, {0x0000042a, "\""}, {0x0000042b, "Y"}, {0x0000042c, "'"}, {0x0000042d, "`E"}, {0x0000042e, "YU"}, {0x0000042f, "YA"}, {0x00000430, "a"}, {0x00000431, "b"}, {0x00000432, "v"}, {0x00000433, "g"}, {0x00000434, "d"}, {0x00000435, "e"}, {0x00000436, "zh"}, {0x00000437, "z"}, {0x00000438, "i"}, {0x00000439, "j"}, {0x0000043a, "k"}, {0x0000043b, "l"}, {0x0000043c, "m"}, {0x0000043d, "n"}, {0x0000043e, "o"}, {0x0000043f, "p"}, {0x00000440, "r"}, {0x00000441, "s"}, {0x00000442, "t"}, {0x00000443, "u"}, {0x00000444, "f"}, {0x00000445, "h"}, {0x00000446, "c"}, {0x00000447, "ch"}, {0x00000448, "sh"}, {0x00000449, "sch"}, {0x0000044a, "\""}, {0x0000044b, "y"}, {0x0000044c, "'"}, {0x0000044d, "`e"}, {0x0000044e, "yu"}, {0x0000044f, "ya"}, {0x00000451, "io"}, {0x00000452, "d%"}, {0x00000453, "g%"}, {0x00000454, "ie"}, {0x00000455, "ds"}, {0x00000456, "ii"}, {0x00000457, "yi"}, {0x00000458, "j%"}, {0x00000459, "lj"}, {0x0000045a, "nj"}, {0x0000045b, "ts"}, {0x0000045c, "kj"}, {0x0000045e, "v%"}, {0x0000045f, "dz"}, {0x00000462, "Y3"}, {0x00000463, "y3"}, {0x0000046a, "O3"}, {0x0000046b, "o3"}, {0x00000472, "F3"}, {0x00000473, "f3"}, {0x00000474, "V3"}, {0x00000475, "v3"}, {0x00000480, "C3"}, {0x00000481, "c3"}, {0x00000490, "G3"}, {0x00000491, "g3"}, {0x000004d4, "AE"}, {0x000004d5, "ae"}, {0x000005b4, "i"}, {0x000005b7, "a"}, {0x000005b8, "o"}, {0x000005bc, "u"}, {0x000005bf, "h"}, {0x000005c2, ":"}, {0x000005d0, "#"}, {0x000005d1, "B+"}, {0x000005d2, "G+"}, {0x000005d3, "D+"}, {0x000005d4, "H+"}, {0x000005d5, "W+"}, {0x000005d6, "Z+"}, {0x000005d7, "X+"}, {0x000005d8, "Tj"}, {0x000005d9, "J+"}, {0x000005da, "K%"}, {0x000005db, "K+"}, {0x000005dc, "L+"}, {0x000005dd, "M%"}, {0x000005de, "M+"}, {0x000005df, "N%"}, {0x000005e0, "N+"}, {0x000005e1, "S+"}, {0x000005e2, "E+"}, {0x000005e3, "P%"}, {0x000005e4, "P+"}, {0x000005e5, "Zj"}, {0x000005e6, "ZJ"}, {0x000005e7, "Q+"}, {0x000005e8, "R+"}, {0x000005e9, "Sh"}, {0x000005ea, "T+"}, {0x000005f0, "v"}, {0x000005f1, "oy"}, {0x000005f2, "ey"}, {0x0000060c, ",+"}, {0x0000061b, ";+"}, {0x0000061f, "?+"}, {0x00000621, "H'"}, {0x00000622, "aM"}, {0x00000623, "aH"}, {0x00000624, "wH"}, {0x00000625, "ah"}, {0x00000626, "yH"}, {0x00000627, "a+"}, {0x00000628, "b+"}, {0x00000629, "tm"}, {0x0000062a, "t+"}, {0x0000062b, "tk"}, {0x0000062c, "g+"}, {0x0000062d, "hk"}, {0x0000062e, "x+"}, {0x0000062f, "d+"}, {0x00000630, "dk"}, {0x00000631, "r+"}, {0x00000632, "z+"}, {0x00000633, "s+"}, {0x00000634, "sn"}, {0x00000635, "c+"}, {0x00000636, "dd"}, {0x00000637, "tj"}, {0x00000638, "zH"}, {0x00000639, "e+"}, {0x0000063a, "i+"}, {0x00000640, "++"}, {0x00000641, "f+"}, {0x00000642, "q+"}, {0x00000643, "k+"}, {0x00000644, "l+"}, {0x00000645, "m+"}, {0x00000646, "n+"}, {0x00000647, "h+"}, {0x00000648, "w+"}, {0x00000649, "j+"}, {0x0000064a, "y+"}, {0x0000064b, ""}, {0x0000064c, "\"+"}, {0x0000064d, "=+"}, {0x0000064e, "/+"}, {0x0000064f, "'+"}, {0x00000650, "1+"}, {0x00000651, "3+"}, {0x00000652, "0+"}, {0x00000660, "0a"}, {0x00000661, "1a"}, {0x00000662, "2a"}, {0x00000663, "3a"}, {0x00000664, "4a"}, {0x00000665, "5a"}, {0x00000666, "6a"}, {0x00000667, "7a"}, {0x00000668, "8a"}, {0x00000669, "9a"}, {0x00000670, "aS"}, {0x0000067e, "p+"}, {0x00000681, "hH"}, {0x00000686, "tc"}, {0x00000698, "zj"}, {0x000006a4, "v+"}, {0x000006af, "gf"}, {0x000006f0, "0a"}, {0x000006f1, "1a"}, {0x000006f2, "2a"}, {0x000006f3, "3a"}, {0x000006f4, "4a"}, {0x000006f5, "5a"}, {0x000006f6, "6a"}, {0x000006f7, "7a"}, {0x000006f8, "8a"}, {0x000006f9, "9a"}, {0x00001200, "he"}, {0x00001201, "hu"}, {0x00001202, "hi"}, {0x00001203, "ha"}, {0x00001204, "hE"}, {0x00001205, "h"}, {0x00001206, "ho"}, {0x00001208, "le"}, {0x00001209, "lu"}, {0x0000120a, "li"}, {0x0000120b, "la"}, {0x0000120c, "lE"}, {0x0000120d, "l"}, {0x0000120e, "lo"}, {0x0000120f, "lWa"}, {0x00001210, "He"}, {0x00001211, "Hu"}, {0x00001212, "Hi"}, {0x00001213, "Ha"}, {0x00001214, "HE"}, {0x00001215, "H"}, {0x00001216, "Ho"}, {0x00001217, "HWa"}, {0x00001218, "me"}, {0x00001219, "mu"}, {0x0000121a, "mi"}, {0x0000121b, "ma"}, {0x0000121c, "mE"}, {0x0000121d, "m"}, {0x0000121e, "mo"}, {0x0000121f, "mWa"}, {0x00001220, "`se"}, {0x00001221, "`su"}, {0x00001222, "`si"}, {0x00001223, "`sa"}, {0x00001224, "`sE"}, {0x00001225, "`s"}, {0x00001226, "`so"}, {0x00001227, "`sWa"}, {0x00001228, "re"}, {0x00001229, "ru"}, {0x0000122a, "ri"}, {0x0000122b, "ra"}, {0x0000122c, "rE"}, {0x0000122d, "r"}, {0x0000122e, "ro"}, {0x0000122f, "rWa"}, {0x00001230, "se"}, {0x00001231, "su"}, {0x00001232, "si"}, {0x00001233, "sa"}, {0x00001234, "sE"}, {0x00001235, "s"}, {0x00001236, "so"}, {0x00001237, "sWa"}, {0x00001238, "xe"}, {0x00001239, "xu"}, {0x0000123a, "xi"}, {0x0000123b, "xa"}, {0x0000123c, "xE"}, {0x0000123d, "xa"}, {0x0000123e, "xo"}, {0x0000123f, "xWa"}, {0x00001240, "qe"}, {0x00001241, "qu"}, {0x00001242, "qi"}, {0x00001243, "qa"}, {0x00001244, "qE"}, {0x00001245, "q"}, {0x00001246, "qo"}, {0x00001248, "qWe"}, {0x0000124a, "qWi"}, {0x0000124b, "qWa"}, {0x0000124c, "qWE"}, {0x0000124d, "qW"}, {0x00001250, "Qe"}, {0x00001251, "Qu"}, {0x00001252, "Qi"}, {0x00001253, "Qa"}, {0x00001254, "QE"}, {0x00001255, "Q"}, {0x00001256, "Qo"}, {0x00001258, "QWe"}, {0x0000125a, "QWi"}, {0x0000125b, "QWa"}, {0x0000125c, "QWE"}, {0x0000125d, "QW"}, {0x00001260, "be"}, {0x00001261, "bu"}, {0x00001262, "bi"}, {0x00001263, "ba"}, {0x00001264, "bE"}, {0x00001265, "b"}, {0x00001266, "bo"}, {0x00001267, "bWa"}, {0x00001268, "ve"}, {0x00001269, "vu"}, {0x0000126a, "vi"}, {0x0000126b, "va"}, {0x0000126c, "vE"}, {0x0000126d, "v"}, {0x0000126e, "vo"}, {0x0000126f, "vWa"}, {0x00001270, "te"}, {0x00001271, "tu"}, {0x00001272, "ti"}, {0x00001273, "ta"}, {0x00001274, "tE"}, {0x00001275, "t"}, {0x00001276, "to"}, {0x00001277, "tWa"}, {0x00001278, "ce"}, {0x00001279, "cu"}, {0x0000127a, "ci"}, {0x0000127b, "ca"}, {0x0000127c, "cE"}, {0x0000127d, "c"}, {0x0000127e, "co"}, {0x0000127f, "cWa"}, {0x00001280, "`he"}, {0x00001281, "`hu"}, {0x00001282, "`hi"}, {0x00001283, "`ha"}, {0x00001284, "`hE"}, {0x00001285, "`h"}, {0x00001286, "`ho"}, {0x00001288, "hWe"}, {0x0000128a, "hWi"}, {0x0000128b, "hWa"}, {0x0000128c, "hWE"}, {0x0000128d, "hW"}, {0x00001290, "na"}, {0x00001291, "nu"}, {0x00001292, "ni"}, {0x00001293, "na"}, {0x00001294, "nE"}, {0x00001295, "n"}, {0x00001296, "no"}, {0x00001297, "nWa"}, {0x00001298, "Ne"}, {0x00001299, "Nu"}, {0x0000129a, "Ni"}, {0x0000129b, "Na"}, {0x0000129c, "NE"}, {0x0000129d, "N"}, {0x0000129e, "No"}, {0x0000129f, "NWa"}, {0x000012a0, "e"}, {0x000012a1, "u"}, {0x000012a2, "i"}, {0x000012a3, "a"}, {0x000012a4, "E"}, {0x000012a5, "I"}, {0x000012a6, "o"}, {0x000012a7, "e3"}, {0x000012a8, "ke"}, {0x000012a9, "ku"}, {0x000012aa, "ki"}, {0x000012ab, "ka"}, {0x000012ac, "kE"}, {0x000012ad, "k"}, {0x000012ae, "ko"}, {0x000012b0, "kWe"}, {0x000012b2, "kWi"}, {0x000012b3, "kWa"}, {0x000012b4, "kWE"}, {0x000012b5, "kW"}, {0x000012b8, "Ke"}, {0x000012b9, "Ku"}, {0x000012ba, "Ki"}, {0x000012bb, "Ka"}, {0x000012bc, "KE"}, {0x000012bd, "K"}, {0x000012be, "Ko"}, {0x000012c0, "KWe"}, {0x000012c2, "KWi"}, {0x000012c3, "KWa"}, {0x000012c4, "KWE"}, {0x000012c5, "KW"}, {0x000012c8, "we"}, {0x000012c9, "wu"}, {0x000012ca, "wi"}, {0x000012cb, "wa"}, {0x000012cc, "wE"}, {0x000012cd, "w"}, {0x000012ce, "wo"}, {0x000012d0, "`e"}, {0x000012d1, "`u"}, {0x000012d2, "`i"}, {0x000012d3, "`a"}, {0x000012d4, "`E"}, {0x000012d5, "`I"}, {0x000012d6, "`o"}, {0x000012d8, "ze"}, {0x000012d9, "zu"}, {0x000012da, "zi"}, {0x000012db, "za"}, {0x000012dc, "zE"}, {0x000012dd, "z"}, {0x000012de, "zo"}, {0x000012df, "zWa"}, {0x000012e0, "Ze"}, {0x000012e1, "Zu"}, {0x000012e2, "Zi"}, {0x000012e3, "Za"}, {0x000012e4, "ZE"}, {0x000012e5, "Z"}, {0x000012e6, "Zo"}, {0x000012e7, "ZWa"}, {0x000012e8, "ye"}, {0x000012e9, "yu"}, {0x000012ea, "yi"}, {0x000012eb, "ya"}, {0x000012ec, "yE"}, {0x000012ed, "y"}, {0x000012ee, "yo"}, {0x000012ef, "yWa"}, {0x000012f0, "de"}, {0x000012f1, "du"}, {0x000012f2, "di"}, {0x000012f3, "da"}, {0x000012f4, "dE"}, {0x000012f5, "d"}, {0x000012f6, "do"}, {0x000012f7, "dWa"}, {0x000012f8, "De"}, {0x000012f9, "Du"}, {0x000012fa, "Di"}, {0x000012fb, "Da"}, {0x000012fc, "DE"}, {0x000012fd, "D"}, {0x000012fe, "Do"}, {0x000012ff, "DWa"}, {0x00001300, "je"}, {0x00001301, "ju"}, {0x00001302, "ji"}, {0x00001303, "ja"}, {0x00001304, "jE"}, {0x00001305, "j"}, {0x00001306, "jo"}, {0x00001307, "jWa"}, {0x00001308, "ga"}, {0x00001309, "gu"}, {0x0000130a, "gi"}, {0x0000130b, "ga"}, {0x0000130c, "gE"}, {0x0000130d, "g"}, {0x0000130e, "go"}, {0x00001310, "gWu"}, {0x00001312, "gWi"}, {0x00001313, "gWa"}, {0x00001314, "gWE"}, {0x00001315, "gW"}, {0x00001318, "Ge"}, {0x00001319, "Gu"}, {0x0000131a, "Gi"}, {0x0000131b, "Ga"}, {0x0000131c, "GE"}, {0x0000131d, "G"}, {0x0000131e, "Go"}, {0x0000131f, "GWa"}, {0x00001320, "Te"}, {0x00001321, "Tu"}, {0x00001322, "Ti"}, {0x00001323, "Ta"}, {0x00001324, "TE"}, {0x00001325, "T"}, {0x00001326, "To"}, {0x00001327, "TWa"}, {0x00001328, "Ce"}, {0x00001329, "Ca"}, {0x0000132a, "Cu"}, {0x0000132b, "Ca"}, {0x0000132c, "CE"}, {0x0000132d, "C"}, {0x0000132e, "Co"}, {0x0000132f, "CWa"}, {0x00001330, "Pe"}, {0x00001331, "Pu"}, {0x00001332, "Pi"}, {0x00001333, "Pa"}, {0x00001334, "PE"}, {0x00001335, "P"}, {0x00001336, "Po"}, {0x00001337, "PWa"}, {0x00001338, "SWe"}, {0x00001339, "SWu"}, {0x0000133a, "SWi"}, {0x0000133b, "SWa"}, {0x0000133c, "SWE"}, {0x0000133d, "SW"}, {0x0000133e, "SWo"}, {0x0000133f, "SWa"}, {0x00001340, "`Sa"}, {0x00001341, "`Su"}, {0x00001342, "`Si"}, {0x00001343, "`Sa"}, {0x00001344, "`SE"}, {0x00001345, "`S"}, {0x00001346, "`So"}, {0x00001348, "fa"}, {0x00001349, "fu"}, {0x0000134a, "fi"}, {0x0000134b, "fa"}, {0x0000134c, "fE"}, {0x0000134d, "o"}, {0x0000134e, "fo"}, {0x0000134f, "fWa"}, {0x00001350, "pe"}, {0x00001351, "pu"}, {0x00001352, "pi"}, {0x00001353, "pa"}, {0x00001354, "pE"}, {0x00001355, "p"}, {0x00001356, "po"}, {0x00001357, "pWa"}, {0x00001358, "mYa"}, {0x00001359, "rYa"}, {0x0000135a, "fYa"}, {0x00001360, " "}, {0x00001361, ":"}, {0x00001362, ""}, {0x00001363, ","}, {0x00001364, ";"}, {0x00001365, "-"}, {0x00001366, ""}, {0x00001367, "`?"}, {0x00001368, ""}, {0x00001369, "`1"}, {0x0000136a, "`2"}, {0x0000136b, "`3"}, {0x0000136c, "`4"}, {0x0000136d, "`5"}, {0x0000136e, "`6"}, {0x0000136f, "`7"}, {0x00001370, "`8"}, {0x00001371, "`9"}, {0x00001372, "`10"}, {0x00001373, "`20"}, {0x00001374, "`30"}, {0x00001375, "`40"}, {0x00001376, "`50"}, {0x00001377, "`60"}, {0x00001378, "`70"}, {0x00001379, "`80"}, {0x0000137a, "`90"}, {0x0000137b, "`100"}, {0x0000137c, "`10000"}, {0x00001e00, "A-0"}, {0x00001e01, "a-0"}, {0x00001e02, "B."}, {0x00001e03, "b."}, {0x00001e04, "B-."}, {0x00001e05, "b-."}, {0x00001e06, "B_"}, {0x00001e07, "b_"}, {0x00001e08, "C,'"}, {0x00001e09, "c,'"}, {0x00001e0a, "D."}, {0x00001e0b, "d."}, {0x00001e0c, "D-."}, {0x00001e0d, "d-."}, {0x00001e0e, "D_"}, {0x00001e0f, "d_"}, {0x00001e10, "D,"}, {0x00001e11, "d,"}, {0x00001e12, "D->"}, {0x00001e13, "d->"}, {0x00001e14, "E-!"}, {0x00001e15, "e-!"}, {0x00001e16, "E-'"}, {0x00001e17, "e-'"}, {0x00001e18, "E->"}, {0x00001e19, "e->"}, {0x00001e1a, "E-?"}, {0x00001e1b, "e-?"}, {0x00001e1c, "E,("}, {0x00001e1d, "e,("}, {0x00001e1e, "F."}, {0x00001e1f, "f."}, {0x00001e20, "G-"}, {0x00001e21, "g-"}, {0x00001e22, "H."}, {0x00001e23, "h."}, {0x00001e24, "H-."}, {0x00001e25, "h-."}, {0x00001e26, "H"}, {0x00001e27, "h"}, {0x00001e28, "H,"}, {0x00001e29, "h,"}, {0x00001e2a, "H-("}, {0x00001e2b, "h-("}, {0x00001e2c, "I-?"}, {0x00001e2d, "i-?"}, {0x00001e2e, "I"}, {0x00001e2f, "i"}, {0x00001e30, "K'"}, {0x00001e31, "k'"}, {0x00001e32, "K-."}, {0x00001e33, "k-."}, {0x00001e34, "K_"}, {0x00001e35, "k_"}, {0x00001e36, "L-."}, {0x00001e37, "l-."}, {0x00001e38, "L--."}, {0x00001e39, "l--."}, {0x00001e3a, "L_"}, {0x00001e3b, "l_"}, {0x00001e3c, "L->"}, {0x00001e3d, "l->"}, {0x00001e3e, "M'"}, {0x00001e3f, "m'"}, {0x00001e40, "M."}, {0x00001e41, "m."}, {0x00001e42, "M-."}, {0x00001e43, "m-."}, {0x00001e44, "N."}, {0x00001e45, "n."}, {0x00001e46, "N-."}, {0x00001e47, "n-."}, {0x00001e48, "N_"}, {0x00001e49, "n_"}, {0x00001e4a, "N->"}, {0x00001e4b, "n->"}, {0x00001e4c, "O?'"}, {0x00001e4d, "o?'"}, {0x00001e4e, "O?"}, {0x00001e4f, "o?"}, {0x00001e50, "O-!"}, {0x00001e51, "o-!"}, {0x00001e52, "O-'"}, {0x00001e53, "o-'"}, {0x00001e54, "P'"}, {0x00001e55, "p'"}, {0x00001e56, "P."}, {0x00001e57, "p."}, {0x00001e58, "R."}, {0x00001e59, "r."}, {0x00001e5a, "R-."}, {0x00001e5b, "r-."}, {0x00001e5c, "R--."}, {0x00001e5d, "r--."}, {0x00001e5e, "R_"}, {0x00001e5f, "r_"}, {0x00001e60, "S."}, {0x00001e61, "s."}, {0x00001e62, "S-."}, {0x00001e63, "s-."}, {0x00001e64, "S'."}, {0x00001e65, "s'."}, {0x00001e66, "S<."}, {0x00001e67, "s<."}, {0x00001e68, "S.-."}, {0x00001e69, "s.-."}, {0x00001e6a, "T."}, {0x00001e6b, "t."}, {0x00001e6c, "T-."}, {0x00001e6d, "t-."}, {0x00001e6e, "T_"}, {0x00001e6f, "t_"}, {0x00001e70, "T->"}, {0x00001e71, "t->"}, {0x00001e72, "U--"}, {0x00001e73, "u--"}, {0x00001e74, "U-?"}, {0x00001e75, "u-?"}, {0x00001e76, "U->"}, {0x00001e77, "u->"}, {0x00001e78, "U?'"}, {0x00001e79, "u?'"}, {0x00001e7a, "U-"}, {0x00001e7b, "u-"}, {0x00001e7c, "V?"}, {0x00001e7d, "v?"}, {0x00001e7e, "V-."}, {0x00001e7f, "v-."}, {0x00001e80, "W!"}, {0x00001e81, "w!"}, {0x00001e82, "W'"}, {0x00001e83, "w'"}, {0x00001e84, "W"}, {0x00001e85, "w"}, {0x00001e86, "W."}, {0x00001e87, "w."}, {0x00001e88, "W-."}, {0x00001e89, "w-."}, {0x00001e8a, "X."}, {0x00001e8b, "x."}, {0x00001e8c, "X"}, {0x00001e8d, "x"}, {0x00001e8e, "Y."}, {0x00001e8f, "y."}, {0x00001e90, "Z>"}, {0x00001e91, "z>"}, {0x00001e92, "Z-."}, {0x00001e93, "z-."}, {0x00001e94, "Z_"}, {0x00001e95, "z_"}, {0x00001e96, "h_"}, {0x00001e97, "t"}, {0x00001e98, "w0"}, {0x00001e99, "y0"}, {0x00001ea0, "A-."}, {0x00001ea1, "a-."}, {0x00001ea2, "A2"}, {0x00001ea3, "a2"}, {0x00001ea4, "A>'"}, {0x00001ea5, "a>'"}, {0x00001ea6, "A>!"}, {0x00001ea7, "a>!"}, {0x00001ea8, "A>2"}, {0x00001ea9, "a>2"}, {0x00001eaa, "A>?"}, {0x00001eab, "a>?"}, {0x00001eac, "A>-."}, {0x00001ead, "a>-."}, {0x00001eae, "A('"}, {0x00001eaf, "a('"}, {0x00001eb0, "A(!"}, {0x00001eb1, "a(!"}, {0x00001eb2, "A(2"}, {0x00001eb3, "a(2"}, {0x00001eb4, "A(?"}, {0x00001eb5, "a(?"}, {0x00001eb6, "A(-."}, {0x00001eb7, "a(-."}, {0x00001eb8, "E-."}, {0x00001eb9, "e-."}, {0x00001eba, "E2"}, {0x00001ebb, "e2"}, {0x00001ebc, "E?"}, {0x00001ebd, "e?"}, {0x00001ebe, "E>'"}, {0x00001ebf, "e>'"}, {0x00001ec0, "E>!"}, {0x00001ec1, "e>!"}, {0x00001ec2, "E>2"}, {0x00001ec3, "e>2"}, {0x00001ec4, "E>?"}, {0x00001ec5, "e>?"}, {0x00001ec6, "E>-."}, {0x00001ec7, "e>-."}, {0x00001ec8, "I2"}, {0x00001ec9, "i2"}, {0x00001eca, "I-."}, {0x00001ecb, "i-."}, {0x00001ecc, "O-."}, {0x00001ecd, "o-."}, {0x00001ece, "O2"}, {0x00001ecf, "o2"}, {0x00001ed0, "O>'"}, {0x00001ed1, "o>'"}, {0x00001ed2, "O>!"}, {0x00001ed3, "o>!"}, {0x00001ed4, "O>2"}, {0x00001ed5, "o>2"}, {0x00001ed6, "O>?"}, {0x00001ed7, "o>?"}, {0x00001ed8, "O>-."}, {0x00001ed9, "o>-."}, {0x00001eda, "O9'"}, {0x00001edb, "o9'"}, {0x00001edc, "O9!"}, {0x00001edd, "o9!"}, {0x00001ede, "O92"}, {0x00001edf, "o92"}, {0x00001ee0, "O9?"}, {0x00001ee1, "o9?"}, {0x00001ee2, "O9-."}, {0x00001ee3, "o9-."}, {0x00001ee4, "U-."}, {0x00001ee5, "u-."}, {0x00001ee6, "U2"}, {0x00001ee7, "u2"}, {0x00001ee8, "U9'"}, {0x00001ee9, "u9'"}, {0x00001eea, "U9!"}, {0x00001eeb, "u9!"}, {0x00001eec, "U92"}, {0x00001eed, "u92"}, {0x00001eee, "U9?"}, {0x00001eef, "u9?"}, {0x00001ef0, "U9-."}, {0x00001ef1, "u9-."}, {0x00001ef2, "Y!"}, {0x00001ef3, "y!"}, {0x00001ef4, "Y-."}, {0x00001ef5, "y-."}, {0x00001ef6, "Y2"}, {0x00001ef7, "y2"}, {0x00001ef8, "Y?"}, {0x00001ef9, "y?"}, {0x00001f00, "a"}, {0x00001f01, "ha"}, {0x00001f02, "`a"}, {0x00001f03, "h`a"}, {0x00001f04, "a'"}, {0x00001f05, "ha'"}, {0x00001f06, "a~"}, {0x00001f07, "ha~"}, {0x00001f08, "A"}, {0x00001f09, "hA"}, {0x00001f0a, "`A"}, {0x00001f0b, "h`A"}, {0x00001f0c, "A'"}, {0x00001f0d, "hA'"}, {0x00001f0e, "A~"}, {0x00001f0f, "hA~"}, {0x00001f11, "he"}, {0x00001f19, "hE"}, {0x00001f31, "hi"}, {0x00001f39, "hI"}, {0x00001f41, "ho"}, {0x00001f49, "hO"}, {0x00001f51, "hu"}, {0x00001f59, "hU"}, {0x00001fbf, ",,"}, {0x00001fc0, "?*"}, {0x00001fc1, "?"}, {0x00001fcd, ",!"}, {0x00001fce, ",'"}, {0x00001fcf, "?,"}, {0x00001fdd, ";!"}, {0x00001fde, ";'"}, {0x00001fdf, "?;"}, {0x00001fe5, "rh"}, {0x00001fec, "Rh"}, {0x00001fed, "!"}, {0x00001fef, "!*"}, {0x00001ffe, ";;"}, {0x00002000, " "}, {0x00002001, ""}, {0x00002002, " "}, {0x00002003, ""}, {0x00002004, " "}, {0x00002005, " "}, {0x00002006, " "}, {0x00002007, " "}, {0x00002008, " "}, {0x00002009, " "}, {0x0000200a, ""}, {0x0000200e, "(->)"}, {0x0000200f, "(<-)"}, {0x00002010, "-"}, {0x00002011, "-"}, {0x00002013, "-"}, {0x00002014, "--"}, {0x00002015, "-"}, {0x00002016, "||"}, {0x00002017, "=2"}, {0x00002018, "`"}, {0x00002019, "'"}, {0x0000201a, "'"}, {0x0000201b, "'"}, {0x0000201c, "\""}, {0x0000201d, "\""}, {0x0000201e, "\""}, {0x0000201f, "\""}, {0x00002020, "/-"}, {0x00002021, "/="}, {0x00002022, " o"}, {0x00002024, "."}, {0x00002025, ".."}, {0x00002026, "..."}, {0x00002027, "."}, {0x00002028, "\\\\015"}, {0x00002029, "\\\\015\\\\012"}, {0x0000202c, ""}, {0x0000202d, ""}, {0x0000202f, ""}, {0x00002030, " 0/00"}, {0x00002032, "'"}, {0x00002033, "''"}, {0x00002034, "'''"}, {0x00002035, "`"}, {0x00002036, "``"}, {0x00002037, "```"}, {0x00002038, "Ca"}, {0x00002039, "<"}, {0x0000203a, ">"}, {0x0000203b, ""}, {0x0000203c, "!!"}, {0x0000203e, "'-"}, {0x00002043, "-"}, {0x00002044, "/"}, {0x00002048, "?!"}, {0x00002049, "!?"}, {0x00002070, "^0"}, {0x00002074, "^4"}, {0x00002075, "^5"}, {0x00002076, "^6"}, {0x00002077, "^7"}, {0x00002078, "^8"}, {0x00002079, "^9"}, {0x0000207a, "^+"}, {0x0000207b, "^-"}, {0x0000207c, "^="}, {0x0000207d, "^("}, {0x0000207e, "^)"}, {0x0000207f, "^n"}, {0x00002080, "_0"}, {0x00002081, "_1"}, {0x00002082, "_2"}, {0x00002083, "_3"}, {0x00002084, "_4"}, {0x00002085, "_5"}, {0x00002086, "_6"}, {0x00002087, "_7"}, {0x00002088, "_8"}, {0x00002089, "_9"}, {0x0000208a, "_+"}, {0x0000208b, "_-"}, {0x0000208c, "_="}, {0x0000208d, "("}, {0x0000208e, ")"}, {0x000020a3, "Ff"}, {0x000020a4, "Li"}, {0x000020a7, "Pt"}, {0x000020a9, "W="}, {0x000020ac, "EUR"}, {0x00002100, "a/c"}, {0x00002101, "a/s"}, {0x00002103, "oC"}, {0x00002105, "c/o"}, {0x00002106, "c/u"}, {0x00002109, "oF"}, {0x0000210a, "g"}, {0x0000210e, "h"}, {0x0000210f, "\"hbar"}, {0x00002111, "Im"}, {0x00002113, "l"}, {0x00002116, "No."}, {0x00002117, "PO"}, {0x00002118, "P"}, {0x0000211c, "Re"}, {0x0000211e, "Rx"}, {0x00002120, "(SM)"}, {0x00002121, "TEL"}, {0x00002122, "(TM)"}, {0x00002126, "Ohm"}, {0x0000212a, "K"}, {0x0000212b, "Ang."}, {0x0000212e, "est."}, {0x00002134, "o"}, {0x00002135, "Aleph"}, {0x00002136, "Bet"}, {0x00002137, "Gimel"}, {0x00002138, "Dalet"}, {0x00002153, " 1/3"}, {0x00002154, " 2/3"}, {0x00002155, " 1/5"}, {0x00002156, " 2/5"}, {0x00002157, " 3/5"}, {0x00002158, " 4/5"}, {0x00002159, " 1/6"}, {0x0000215a, " 5/6"}, {0x0000215b, " 1/8"}, {0x0000215c, " 3/8"}, {0x0000215d, " 5/8"}, {0x0000215e, " 7/8"}, {0x0000215f, " 1/"}, {0x00002160, "I"}, {0x00002161, "II"}, {0x00002162, "III"}, {0x00002163, "IV"}, {0x00002164, "V"}, {0x00002165, "VI"}, {0x00002166, "VII"}, {0x00002167, "VIII"}, {0x00002168, "IX"}, {0x00002169, "X"}, {0x0000216a, "XI"}, {0x0000216b, "XII"}, {0x0000216c, "L"}, {0x0000216d, "C"}, {0x0000216e, "D"}, {0x0000216f, "M"}, {0x00002170, "i"}, {0x00002171, "ii"}, {0x00002172, "iii"}, {0x00002173, "iv"}, {0x00002174, "v"}, {0x00002175, "vi"}, {0x00002176, "vii"}, {0x00002177, "viii"}, {0x00002178, "ix"}, {0x00002179, "x"}, {0x0000217a, "xi"}, {0x0000217b, "xii"}, {0x0000217c, "l"}, {0x0000217d, "c"}, {0x0000217e, "d"}, {0x0000217f, "m"}, {0x00002180, "1000RCD"}, {0x00002181, "5000R"}, {0x00002182, "10000R"}, {0x00002190, "<-"}, {0x00002191, "-^"}, {0x00002192, "->"}, {0x00002193, "-v"}, {0x00002194, "<->"}, {0x00002195, "UD"}, {0x00002196, ""}, {0x00002198, "!!>"}, {0x00002199, "V"}, {0x000021d0, "<="}, {0x000021d1, "^^"}, {0x000021d2, "=>"}, {0x000021d3, "vv"}, {0x000021d4, "<=>"}, {0x00002200, "FA"}, {0x00002202, "\\\\partial"}, {0x00002203, "TE"}, {0x00002205, "{}"}, {0x00002206, "Delta"}, {0x00002207, "Nabla"}, {0x00002208, "(-"}, {0x00002209, "!(-"}, {0x0000220a, "(-"}, {0x0000220b, "-)"}, {0x0000220c, "!-)"}, {0x0000220d, "-)"}, {0x0000220e, " qed"}, {0x0000220f, "\\\\prod"}, {0x00002211, "\\\\sum"}, {0x00002212, " -"}, {0x00002213, "-/+"}, {0x00002214, ".+"}, {0x00002215, "/"}, {0x00002216, " -"}, {0x00002217, "*"}, {0x00002218, "Ob"}, {0x00002219, "sb"}, {0x0000221a, " SQRT"}, {0x0000221b, " ROOT3"}, {0x0000221c, " ROOT4"}, {0x0000221d, "0("}, {0x0000221e, "infty"}, {0x0000221f, "-L"}, {0x00002220, "-V"}, {0x00002225, "PP"}, {0x00002226, " !PP"}, {0x00002227, "AND"}, {0x00002228, "OR"}, {0x00002229, "(U"}, {0x0000222a, ")U"}, {0x0000222b, "\"int"}, {0x0000222c, "DI"}, {0x0000222e, "Io"}, {0x00002234, "."}, {0x00002235, ""}, {0x00002236, ""}, {0x00002237, ""}, {0x0000223c, "?1"}, {0x0000223e, "CG"}, {0x00002243, "?-"}, {0x00002245, "?="}, {0x00002248, "~="}, {0x00002249, " !~="}, {0x0000224c, "=?"}, {0x00002253, "HI"}, {0x00002254, ""}, {0x00002255, "="}, {0x00002260, "!="}, {0x00002261, "=3"}, {0x00002262, " !=3"}, {0x00002264, "=<"}, {0x00002265, ">="}, {0x00002266, ".LE."}, {0x00002267, ".GE."}, {0x00002268, ".LT.NOT.EQ."}, {0x00002269, ".GT.NOT.EQ."}, {0x0000226a, "<<"}, {0x0000226b, ">>"}, {0x0000226e, "!<"}, {0x0000226f, "!>"}, {0x00002276, " <>"}, {0x00002277, " ><"}, {0x00002282, "(C"}, {0x00002283, ")C"}, {0x00002284, " !(C"}, {0x00002285, " !)C"}, {0x00002286, "(_"}, {0x00002287, ")_"}, {0x00002295, "(+)"}, {0x00002296, "(-)"}, {0x00002297, "(x)"}, {0x00002298, "(/)"}, {0x00002299, "(.)"}, {0x0000229a, "(o)"}, {0x0000229b, "(*)"}, {0x0000229c, "(=)"}, {0x0000229d, "(-)"}, {0x0000229e, "[+]"}, {0x0000229f, "[-]"}, {0x000022a0, "[x]"}, {0x000022a1, "[.]"}, {0x000022a5, "-T"}, {0x000022a7, " MODELS"}, {0x000022a8, " TRUE"}, {0x000022a9, " FORCES"}, {0x000022ac, " !PROVES"}, {0x000022ad, " NOT TRUE"}, {0x000022ae, " !FORCES"}, {0x000022b2, " NORMAL SUBGROUP OF"}, {0x000022b3, " CONTAINS AS NORMAL SUBGROUP"}, {0x000022b4, " NORMAL SUBGROUP OF OR EQUAL TO"}, {0x000022b5, " CONTAINS AS NORMAL SUBGROUP OR EQUAL TO"}, {0x000022b8, " MULTIMAP"}, {0x000022ba, " INTERCALATE"}, {0x000022bb, " XOR"}, {0x000022bc, " NAND"}, {0x000022c5, " DOT"}, {0x000022d6, "<."}, {0x000022d7, ">."}, {0x000022d8, "<<<"}, {0x000022d9, ">>>"}, {0x000022ee, ""}, {0x000022ef, ".3"}, {0x00002302, "Eh"}, {0x00002307, "~~"}, {0x00002308, "<7"}, {0x00002309, ">7"}, {0x0000230a, "7<"}, {0x0000230b, "7>"}, {0x00002310, "NI"}, {0x00002312, "(A"}, {0x00002315, "TR"}, {0x00002318, "88"}, {0x00002320, "Iu"}, {0x00002321, "Il"}, {0x00002322, ""}, {0x00002323, ""}, {0x00002324, "|^|"}, {0x00002327, "[X]"}, {0x00002329, ""}, {0x00002423, "Vs"}, {0x00002440, "1h"}, {0x00002441, "3h"}, {0x00002442, "2h"}, {0x00002443, "4h"}, {0x00002446, "1j"}, {0x00002447, "2j"}, {0x00002448, "3j"}, {0x00002449, "4j"}, {0x00002460, "1-o"}, {0x00002461, "2-o"}, {0x00002462, "3-o"}, {0x00002463, "4-o"}, {0x00002464, "5-o"}, {0x00002465, "6-o"}, {0x00002466, "7-o"}, {0x00002467, "8-o"}, {0x00002468, "9-o"}, {0x00002469, "10-o"}, {0x0000246a, "11-o"}, {0x0000246b, "12-o"}, {0x0000246c, "13-o"}, {0x0000246d, "14-o"}, {0x0000246e, "15-o"}, {0x0000246f, "16-o"}, {0x00002470, "17-o"}, {0x00002471, "18-o"}, {0x00002472, "19-o"}, {0x00002473, "20-o"}, {0x00002474, "(1)"}, {0x00002475, "(2)"}, {0x00002476, "(3)"}, {0x00002477, "(4)"}, {0x00002478, "(5)"}, {0x00002479, "(6)"}, {0x0000247a, "(7)"}, {0x0000247b, "(8)"}, {0x0000247c, "(9)"}, {0x0000247d, "(10)"}, {0x0000247e, "(11)"}, {0x0000247f, "(12)"}, {0x00002480, "(13)"}, {0x00002481, "(14)"}, {0x00002482, "(15)"}, {0x00002483, "(16)"}, {0x00002484, "(17)"}, {0x00002485, "(18)"}, {0x00002486, "(19)"}, {0x00002487, "(20)"}, {0x00002488, "1."}, {0x00002489, "2."}, {0x0000248a, "3."}, {0x0000248b, "4."}, {0x0000248c, "5."}, {0x0000248d, "6."}, {0x0000248e, "7."}, {0x0000248f, "8."}, {0x00002490, "9."}, {0x00002491, "10."}, {0x00002492, "11."}, {0x00002493, "12."}, {0x00002494, "13."}, {0x00002495, "14."}, {0x00002496, "15."}, {0x00002497, "16."}, {0x00002498, "17."}, {0x00002499, "18."}, {0x0000249a, "19."}, {0x0000249b, "20."}, {0x0000249c, "(a)"}, {0x0000249d, "(b)"}, {0x0000249e, "(c)"}, {0x0000249f, "(d)"}, {0x000024a0, "(e)"}, {0x000024a1, "(f)"}, {0x000024a2, "(g)"}, {0x000024a3, "(h)"}, {0x000024a4, "(i)"}, {0x000024a5, "(j)"}, {0x000024a6, "(k)"}, {0x000024a7, "(l)"}, {0x000024a8, "(m)"}, {0x000024a9, "(n)"}, {0x000024aa, "(o)"}, {0x000024ab, "(p)"}, {0x000024ac, "(q)"}, {0x000024ad, "(r)"}, {0x000024ae, "(s)"}, {0x000024af, "(t)"}, {0x000024b0, "(u)"}, {0x000024b1, "(v)"}, {0x000024b2, "(w)"}, {0x000024b3, "(x)"}, {0x000024b4, "(y)"}, {0x000024b5, "(z)"}, {0x000024b6, "A-o"}, {0x000024b7, "B-o"}, {0x000024b8, "C-o"}, {0x000024b9, "D-o"}, {0x000024ba, "E-o"}, {0x000024bb, "F-o"}, {0x000024bc, "G-o"}, {0x000024bd, "H-o"}, {0x000024be, "I-o"}, {0x000024bf, "J-o"}, {0x000024c0, "K-o"}, {0x000024c1, "L-o"}, {0x000024c2, "M-o"}, {0x000024c3, "N-o"}, {0x000024c4, "O-o"}, {0x000024c5, "P-o"}, {0x000024c6, "Q-o"}, {0x000024c7, "R-o"}, {0x000024c8, "S-o"}, {0x000024c9, "T-o"}, {0x000024ca, "U-o"}, {0x000024cb, "V-o"}, {0x000024cc, "W-o"}, {0x000024cd, "X-o"}, {0x000024ce, "Y-o"}, {0x000024cf, "Z-o"}, {0x000024d0, "a-o"}, {0x000024d1, "b-o"}, {0x000024d2, "c-o"}, {0x000024d3, "d-o"}, {0x000024d4, "e-o"}, {0x000024d5, "f-o"}, {0x000024d6, "g-o"}, {0x000024d7, "h-o"}, {0x000024d8, "i-o"}, {0x000024d9, "j-o"}, {0x000024da, "k-o"}, {0x000024db, "l-o"}, {0x000024dc, "m-o"}, {0x000024dd, "n-o"}, {0x000024de, "o-o"}, {0x000024df, "p-o"}, {0x000024e0, "q-o"}, {0x000024e1, "r-o"}, {0x000024e2, "s-o"}, {0x000024e3, "t-o"}, {0x000024e4, "u-o"}, {0x000024e5, "v-o"}, {0x000024e6, "w-o"}, {0x000024e7, "x-o"}, {0x000024e8, "y-o"}, {0x000024e9, "z-o"}, {0x000024ea, "0-o"}, {0x00002500, "-"}, {0x00002501, "="}, {0x00002502, "|"}, {0x00002503, "|"}, {0x00002504, "-"}, {0x00002505, "="}, {0x00002506, "|"}, {0x00002507, "|"}, {0x00002508, "-"}, {0x00002509, "="}, {0x0000250a, "|"}, {0x0000250b, "|"}, {0x0000250c, "+"}, {0x0000250d, "+"}, {0x0000250e, "+"}, {0x0000250f, "+"}, {0x00002510, "+"}, {0x00002511, "+"}, {0x00002512, "+"}, {0x00002513, "+"}, {0x00002514, "+"}, {0x00002515, "+"}, {0x00002516, "+"}, {0x00002517, "+"}, {0x00002518, "+"}, {0x00002519, "+"}, {0x0000251a, "+"}, {0x0000251b, "+"}, {0x0000251c, "+"}, {0x0000251d, "+"}, {0x0000251e, "+"}, {0x0000251f, "+"}, {0x00002520, "+"}, {0x00002521, "+"}, {0x00002522, "+"}, {0x00002523, "+"}, {0x00002524, "+"}, {0x00002525, "+"}, {0x00002526, "+"}, {0x00002527, "+"}, {0x00002528, "+"}, {0x00002529, "+"}, {0x0000252a, "+"}, {0x0000252b, "+"}, {0x0000252c, "+"}, {0x0000252d, "+"}, {0x0000252e, "+"}, {0x0000252f, "+"}, {0x00002530, "+"}, {0x00002531, "+"}, {0x00002532, "+"}, {0x00002533, "+"}, {0x00002534, "+"}, {0x00002535, "+"}, {0x00002536, "+"}, {0x00002537, "+"}, {0x00002538, "+"}, {0x00002539, "+"}, {0x0000253a, "+"}, {0x0000253b, "+"}, {0x0000253c, "+"}, {0x0000253d, "+"}, {0x0000253e, "+"}, {0x0000253f, "+"}, {0x00002540, "+"}, {0x00002541, "+"}, {0x00002542, "+"}, {0x00002543, "+"}, {0x00002544, "+"}, {0x00002545, "+"}, {0x00002546, "+"}, {0x00002547, "+"}, {0x00002548, "+"}, {0x00002549, "+"}, {0x0000254a, "+"}, {0x0000254b, "+"}, {0x0000254c, "+"}, {0x0000254d, "+"}, {0x0000254e, "+"}, {0x0000254f, "+"}, {0x00002550, "+"}, {0x00002551, "+"}, {0x00002552, "+"}, {0x00002553, "+"}, {0x00002554, "+"}, {0x00002555, "+"}, {0x00002556, "+"}, {0x00002557, "+"}, {0x00002558, "+"}, {0x00002559, "+"}, {0x0000255a, "+"}, {0x0000255b, "+"}, {0x0000255c, "+"}, {0x0000255d, "+"}, {0x0000255e, "+"}, {0x0000255f, "+"}, {0x00002560, "+"}, {0x00002561, "+"}, {0x00002562, "+"}, {0x00002563, "+"}, {0x00002564, "+"}, {0x00002565, "+"}, {0x00002566, "+"}, {0x00002567, "+"}, {0x00002568, "+"}, {0x00002569, "+"}, {0x0000256a, "+"}, {0x0000256b, "+"}, {0x0000256c, "+"}, {0x00002571, "/"}, {0x00002572, "\\\\"}, {0x00002580, "TB"}, {0x00002584, "LB"}, {0x00002588, "FB"}, {0x0000258c, "lB"}, {0x00002590, "RB"}, {0x00002591, ".S"}, {0x00002592, ""}, {0x00002593, "?S"}, {0x000025a0, "fS"}, {0x000025a1, "OS"}, {0x000025a2, "RO"}, {0x000025a3, "Rr"}, {0x000025a4, "RF"}, {0x000025a5, "RY"}, {0x000025a6, "RH"}, {0x000025a7, "RZ"}, {0x000025a8, "RK"}, {0x000025a9, "RX"}, {0x000025aa, "sB"}, {0x000025ac, "SR"}, {0x000025ad, "Or"}, {0x000025b2, "^"}, {0x000025b3, "uT"}, {0x000025b6, "|>"}, {0x000025b7, "Tr"}, {0x000025ba, "|>"}, {0x000025bc, "v"}, {0x000025bd, "dT"}, {0x000025c0, "<|"}, {0x000025c1, "Tl"}, {0x000025c4, "<|"}, {0x000025c6, "Db"}, {0x000025c7, "Dw"}, {0x000025ca, "LZ"}, {0x000025cb, "0m"}, {0x000025ce, "0o"}, {0x000025cf, "0M"}, {0x000025d0, "0L"}, {0x000025d1, "0R"}, {0x000025d8, "Sn"}, {0x000025d9, "Ic"}, {0x000025e2, "Fd"}, {0x000025e3, "Bd"}, {0x000025ef, "Ci"}, {0x00002605, "*2"}, {0x00002606, "*1"}, {0x0000260e, "TEL"}, {0x0000260f, "tel"}, {0x0000261c, "<--"}, {0x0000261e, "-->"}, {0x00002621, "CAUTION"}, {0x00002627, "XP"}, {0x00002639, ""}, {0x0000263a, ""}, {0x0000263b, "(-"}, {0x0000263c, "SU"}, {0x00002640, "f."}, {0x00002642, "m."}, {0x00002660, "cS"}, {0x00002661, "cH"}, {0x00002662, "cD"}, {0x00002663, "cC"}, {0x00002664, "cS-"}, {0x00002665, "cH-"}, {0x00002666, "cD-"}, {0x00002667, "cC-"}, {0x00002669, "Md"}, {0x0000266a, "M8"}, {0x0000266b, "M2"}, {0x0000266c, "M16"}, {0x0000266d, "b"}, {0x0000266e, "Mx"}, {0x0000266f, "#"}, {0x00002713, "X"}, {0x00002717, "X"}, {0x00002720, "-X"}, {0x00003000, " "}, {0x00003001, ",_"}, {0x00003002, "._"}, {0x00003003, "+\""}, {0x00003004, "JIS"}, {0x00003005, "*_"}, {0x00003006, ";_"}, {0x00003007, "0_"}, {0x0000300a, "<+"}, {0x0000300b, ">+"}, {0x0000300c, "<'"}, {0x0000300d, ">'"}, {0x0000300e, "<\""}, {0x0000300f, ">\""}, {0x00003010, "(\""}, {0x00003011, ")\""}, {0x00003012, "=T"}, {0x00003013, "=_"}, {0x00003014, "('"}, {0x00003015, ")'"}, {0x00003016, "(I"}, {0x00003017, ")I"}, {0x0000301a, "[["}, {0x0000301b, "]]"}, {0x0000301c, "-?"}, {0x00003020, "=T"}, {0x0000303f, " "}, {0x00003041, "A5"}, {0x00003042, "a5"}, {0x00003043, "I5"}, {0x00003044, "i5"}, {0x00003045, "U5"}, {0x00003046, "u5"}, {0x00003047, "E5"}, {0x00003048, "e5"}, {0x00003049, "O5"}, {0x0000304a, "o5"}, {0x0000304b, "ka"}, {0x0000304c, "ga"}, {0x0000304d, "ki"}, {0x0000304e, "gi"}, {0x0000304f, "ku"}, {0x00003050, "gu"}, {0x00003051, "ke"}, {0x00003052, "ge"}, {0x00003053, "ko"}, {0x00003054, "go"}, {0x00003055, "sa"}, {0x00003056, "za"}, {0x00003057, "si"}, {0x00003058, "zi"}, {0x00003059, "su"}, {0x0000305a, "zu"}, {0x0000305b, "se"}, {0x0000305c, "ze"}, {0x0000305d, "so"}, {0x0000305e, "zo"}, {0x0000305f, "ta"}, {0x00003060, "da"}, {0x00003061, "ti"}, {0x00003062, "di"}, {0x00003063, "tU"}, {0x00003064, "tu"}, {0x00003065, "du"}, {0x00003066, "te"}, {0x00003067, "de"}, {0x00003068, "to"}, {0x00003069, "do"}, {0x0000306a, "na"}, {0x0000306b, "ni"}, {0x0000306c, "nu"}, {0x0000306d, "ne"}, {0x0000306e, "no"}, {0x0000306f, "ha"}, {0x00003070, "ba"}, {0x00003071, "pa"}, {0x00003072, "hi"}, {0x00003073, "bi"}, {0x00003074, "pi"}, {0x00003075, "hu"}, {0x00003076, "bu"}, {0x00003077, "pu"}, {0x00003078, "he"}, {0x00003079, "be"}, {0x0000307a, "pe"}, {0x0000307b, "ho"}, {0x0000307c, "bo"}, {0x0000307d, "po"}, {0x0000307e, "ma"}, {0x0000307f, "mi"}, {0x00003080, "mu"}, {0x00003081, "me"}, {0x00003082, "mo"}, {0x00003083, "yA"}, {0x00003084, "ya"}, {0x00003085, "yU"}, {0x00003086, "yu"}, {0x00003087, "yO"}, {0x00003088, "yo"}, {0x00003089, "ra"}, {0x0000308a, "ri"}, {0x0000308b, "ru"}, {0x0000308c, "re"}, {0x0000308d, "ro"}, {0x0000308e, "wA"}, {0x0000308f, "wa"}, {0x00003090, "wi"}, {0x00003091, "we"}, {0x00003092, "wo"}, {0x00003093, "n5"}, {0x00003094, "vu"}, {0x0000309b, "\"5"}, {0x0000309c, "05"}, {0x0000309d, "*5"}, {0x0000309e, "+5"}, {0x000030a1, "a6"}, {0x000030a2, "A6"}, {0x000030a3, "i6"}, {0x000030a4, "I6"}, {0x000030a5, "u6"}, {0x000030a6, "U6"}, {0x000030a7, "e6"}, {0x000030a8, "E6"}, {0x000030a9, "o6"}, {0x000030aa, "O6"}, {0x000030ab, "Ka"}, {0x000030ac, "Ga"}, {0x000030ad, "Ki"}, {0x000030ae, "Gi"}, {0x000030af, "Ku"}, {0x000030b0, "Gu"}, {0x000030b1, "Ke"}, {0x000030b2, "Ge"}, {0x000030b3, "Ko"}, {0x000030b4, "Go"}, {0x000030b5, "Sa"}, {0x000030b6, "Za"}, {0x000030b7, "Si"}, {0x000030b8, "Zi"}, {0x000030b9, "Su"}, {0x000030ba, "Zu"}, {0x000030bb, "Se"}, {0x000030bc, "Ze"}, {0x000030bd, "So"}, {0x000030be, "Zo"}, {0x000030bf, "Ta"}, {0x000030c0, "Da"}, {0x000030c1, "Ti"}, {0x000030c2, "Di"}, {0x000030c3, "TU"}, {0x000030c4, "Tu"}, {0x000030c5, "Du"}, {0x000030c6, "Te"}, {0x000030c7, "De"}, {0x000030c8, "To"}, {0x000030c9, "Do"}, {0x000030ca, "Na"}, {0x000030cb, "Ni"}, {0x000030cc, "Nu"}, {0x000030cd, "Ne"}, {0x000030ce, "No"}, {0x000030cf, "Ha"}, {0x000030d0, "Ba"}, {0x000030d1, "Pa"}, {0x000030d2, "Hi"}, {0x000030d3, "Bi"}, {0x000030d4, "Pi"}, {0x000030d5, "Hu"}, {0x000030d6, "Bu"}, {0x000030d7, "Pu"}, {0x000030d8, "He"}, {0x000030d9, "Be"}, {0x000030da, "Pe"}, {0x000030db, "Ho"}, {0x000030dc, "Bo"}, {0x000030dd, "Po"}, {0x000030de, "Ma"}, {0x000030df, "Mi"}, {0x000030e0, "Mu"}, {0x000030e1, "Me"}, {0x000030e2, "Mo"}, {0x000030e3, "YA"}, {0x000030e4, "Ya"}, {0x000030e5, "YU"}, {0x000030e6, "Yu"}, {0x000030e7, "YO"}, {0x000030e8, "Yo"}, {0x000030e9, "Ra"}, {0x000030ea, "Ri"}, {0x000030eb, "Ru"}, {0x000030ec, "Re"}, {0x000030ed, "Ro"}, {0x000030ee, "WA"}, {0x000030ef, "Wa"}, {0x000030f0, "Wi"}, {0x000030f1, "We"}, {0x000030f2, "Wo"}, {0x000030f3, "N6"}, {0x000030f4, "Vu"}, {0x000030f5, "KA"}, {0x000030f6, "KE"}, {0x000030f7, "Va"}, {0x000030f8, "Vi"}, {0x000030f9, "Ve"}, {0x000030fa, "Vo"}, {0x000030fb, ".6"}, {0x000030fc, "-6"}, {0x000030fd, "*6"}, {0x000030fe, "+6"}, {0x00003105, "b4"}, {0x00003106, "p4"}, {0x00003107, "m4"}, {0x00003108, "f4"}, {0x00003109, "d4"}, {0x0000310a, "t4"}, {0x0000310b, "n4"}, {0x0000310c, "l4"}, {0x0000310d, "g4"}, {0x0000310e, "k4"}, {0x0000310f, "h4"}, {0x00003110, "j4"}, {0x00003111, "q4"}, {0x00003112, "x4"}, {0x00003113, "zh"}, {0x00003114, "ch"}, {0x00003115, "sh"}, {0x00003116, "r4"}, {0x00003117, "z4"}, {0x00003118, "c4"}, {0x00003119, "s4"}, {0x0000311a, "a4"}, {0x0000311b, "o4"}, {0x0000311c, "e4"}, {0x0000311d, "eh4"}, {0x0000311e, "ai"}, {0x0000311f, "ei"}, {0x00003120, "au"}, {0x00003121, "ou"}, {0x00003122, "an"}, {0x00003123, "en"}, {0x00003124, "aN"}, {0x00003125, "eN"}, {0x00003126, "er"}, {0x00003127, "i4"}, {0x00003128, "u4"}, {0x00003129, "iu"}, {0x0000312a, "v4"}, {0x0000312b, "nG"}, {0x0000312c, "gn"}, {0x0000321c, "(JU)"}, {0x00003220, "1c"}, {0x00003221, "2c"}, {0x00003222, "3c"}, {0x00003223, "4c"}, {0x00003224, "5c"}, {0x00003225, "6c"}, {0x00003226, "7c"}, {0x00003227, "8c"}, {0x00003228, "9c"}, {0x00003229, "10c"}, {0x0000327f, "KSC"}, {0x000033c2, "am"}, {0x000033d8, "pm"}, {0x0000fb00, "ff"}, {0x0000fb01, "fi"}, {0x0000fb02, "fl"}, {0x0000fb03, "ffi"}, {0x0000fb04, "ffl"}, {0x0000fb05, "St"}, {0x0000fb06, "st"}, {0x0000fe7d, "3+;"}, {0x0000fe82, "aM."}, {0x0000fe84, "aH."}, {0x0000fe88, "ah."}, {0x0000fe8d, "a+-"}, {0x0000fe8e, "a+."}, {0x0000fe8f, "b+-"}, {0x0000fe90, "b+."}, {0x0000fe91, "b+,"}, {0x0000fe92, "b+;"}, {0x0000fe93, "tm-"}, {0x0000fe94, "tm."}, {0x0000fe95, "t+-"}, {0x0000fe96, "t+."}, {0x0000fe97, "t+,"}, {0x0000fe98, "t+;"}, {0x0000fe99, "tk-"}, {0x0000fe9a, "tk."}, {0x0000fe9b, "tk,"}, {0x0000fe9c, "tk;"}, {0x0000fe9d, "g+-"}, {0x0000fe9e, "g+."}, {0x0000fe9f, "g+,"}, {0x0000fea0, "g+;"}, {0x0000fea1, "hk-"}, {0x0000fea2, "hk."}, {0x0000fea3, "hk,"}, {0x0000fea4, "hk;"}, {0x0000fea5, "x+-"}, {0x0000fea6, "x+."}, {0x0000fea7, "x+,"}, {0x0000fea8, "x+;"}, {0x0000fea9, "d+-"}, {0x0000feaa, "d+."}, {0x0000feab, "dk-"}, {0x0000feac, "dk."}, {0x0000fead, "r+-"}, {0x0000feae, "r+."}, {0x0000feaf, "z+-"}, {0x0000feb0, "z+."}, {0x0000feb1, "s+-"}, {0x0000feb2, "s+."}, {0x0000feb3, "s+,"}, {0x0000feb4, "s+;"}, {0x0000feb5, "sn-"}, {0x0000feb6, "sn."}, {0x0000feb7, "sn,"}, {0x0000feb8, "sn;"}, {0x0000feb9, "c+-"}, {0x0000feba, "c+."}, {0x0000febb, "c+,"}, {0x0000febc, "c+;"}, {0x0000febd, "dd-"}, {0x0000febe, "dd."}, {0x0000febf, "dd,"}, {0x0000fec0, "dd;"}, {0x0000fec1, "tj-"}, {0x0000fec2, "tj."}, {0x0000fec3, "tj,"}, {0x0000fec4, "tj;"}, {0x0000fec5, "zH-"}, {0x0000fec6, "zH."}, {0x0000fec7, "zH,"}, {0x0000fec8, "zH;"}, {0x0000fec9, "e+-"}, {0x0000feca, "e+."}, {0x0000fecb, "e+,"}, {0x0000fecc, "e+;"}, {0x0000fecd, "i+-"}, {0x0000fece, "i+."}, {0x0000fecf, "i+,"}, {0x0000fed0, "i+;"}, {0x0000fed1, "f+-"}, {0x0000fed2, "f+."}, {0x0000fed3, "f+,"}, {0x0000fed4, "f+;"}, {0x0000fed5, "q+-"}, {0x0000fed6, "q+."}, {0x0000fed7, "q+,"}, {0x0000fed8, "q+;"}, {0x0000fed9, "k+-"}, {0x0000feda, "k+."}, {0x0000fedb, "k+,"}, {0x0000fedc, "k+;"}, {0x0000fedd, "l+-"}, {0x0000fede, "l+."}, {0x0000fedf, "l+,"}, {0x0000fee0, "l+;"}, {0x0000fee1, "m+-"}, {0x0000fee2, "m+."}, {0x0000fee3, "m+,"}, {0x0000fee4, "m+;"}, {0x0000fee5, "n+-"}, {0x0000fee6, "n+."}, {0x0000fee7, "n+,"}, {0x0000fee8, "n+;"}, {0x0000fee9, "h+-"}, {0x0000feea, "h+."}, {0x0000feeb, "h+,"}, {0x0000feec, "h+;"}, {0x0000feed, "w+-"}, {0x0000feee, "w+."}, {0x0000feef, "j+-"}, {0x0000fef0, "j+."}, {0x0000fef1, "y+-"}, {0x0000fef2, "y+."}, {0x0000fef3, "y+,"}, {0x0000fef4, "y+;"}, {0x0000fef5, "lM-"}, {0x0000fef6, "lM."}, {0x0000fef7, "lH-"}, {0x0000fef8, "lH."}, {0x0000fef9, "lh-"}, {0x0000fefa, "lh."}, {0x0000fefb, "la-"}, {0x0000fefc, "la."}, {0x0000feff, ""}, {0x0000ff61, "."}, {0x0000ff62, "\""}, {0x0000ff63, "\""}, {0x0000ff64, ","}, {-1, NULL} }; #define N_UNICODE_7B 2452 tucnak2-2.48/src/font.c0000644000175000017500000001026111614056733011646 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "font.inc" #ifdef HAVE_SDL static char bits[]={1,2,4,8,16,32,64,128}; void fontoutc(SDL_Surface *surface, int x, int y, int color, int bgcolor, int flags, unsigned char c){ int i, j, fi, fj; char *fc; fc=(char*)font_vga+ ((unsigned char)c)*16; if (sdl->font_h == 16){ for (i=0; i<16; i++){ for (j=7; j>=0; j--){ if (*fc & bits[7-j]) fast_putpixel(surface, x+j, y+i, color); else if (!(flags & FONT_TRANSP)) fast_putpixel(surface, x+j, y+i, bgcolor); } if (((c&0xf0)==0x90 || c==134 ) && (*fc & bits[0])){ fast_putpixel(surface, x+8, y+i, color); }else{ if (!(flags & FONT_TRANSP)) fast_putpixel(surface, x+8, y+i, bgcolor); } fc++; } }else{ for (i=0; ifont_h; i++){ fi = i * 16 / sdl->font_h; for (j=0; jfont_w-1; j++){ fj = j * 8 / (sdl->font_w-1); if (fc[fi] & bits[7-fj]){ fast_putpixel(surface, x+j, y+i, color); }else{ if (!(flags & FONT_TRANSP)) { fast_putpixel(surface, x+j, y+i, bgcolor); } } } if (((c&0xf0)==0x90 || c==134 ) && (fc[fi] & bits[0])){ fast_putpixel(surface, x+j, y+i, color); }else{ if (!(flags & FONT_TRANSP)) { fast_putpixel(surface, x+j, y+i, bgcolor); } } } } } void fontout(SDL_Surface *surface, int x, int y, int color, int flags, char *s){ int i, j, xx, fi, fj; char *c, *fc; if (flags & FONT_CENTER){ x-=(strlen(s)*9/2); y-=8; } if (flags & FONT_RIGHT){ x-=strlen(s)*9; } xx=x; /* dbg("xx=%d y=%d\n", xx,y);*/ if (sdl->font_h == 16){ for (c=s; *c!='\0';c++){ fc=(char *)font_vga+ ((unsigned char)*c)*16; for (i=0; i<16; i++){ for (j=7; j>=0; j--){ if (*fc & bits[7-j]) fast_putpixel(surface, x+j, y+i, color); else if (!(flags & FONT_TRANSP)) fast_putpixel(surface, x+j, y+i, 0); } if (!(flags & FONT_TRANSP)) fast_putpixel(surface, x+8, y+i, 0); fc++; } x += sdl->font_w; } }else{ for (c=s; *c!='\0';c++){ fc=(char *)font_vga+ ((unsigned char)*c)*16; for (i=0; ifont_h; i++){ fi = i * 16 / sdl->font_h; for (j=0; jfont_w - 1 ; j++){ fj = j * 8 / (sdl->font_w-1); if (fc[fi] & bits[7-fj]){ fast_putpixel(surface, x+j, y+i, color); }else{ if (!(flags & FONT_TRANSP)) { fast_putpixel(surface, x+j, y+i, 0); } } } if (!(flags & FONT_TRANSP)) { fast_putpixel(surface, x+FONT_W - 1, y+i, 0); } } x += sdl->font_w; } } if (flags&FONT_SYNC){ /* rect(ggfx->scr, xx, y, xx+strlen(s)*9, y+16, 0xff00);*/ SDL_UpdateRect(surface, xx, y, strlen(s)*9, 16); /* SDL_UpdateRect(ggfx->screen, 0,0,0,0);*/ } } void fontoutf(SDL_Surface *surface, int x, int y, int color, int flags, char *m, ...) { va_list l; gchar *c; if (!cfg) return; va_start(l, m); c=g_strdup_vprintf(m, l); va_end(l); fontout(surface, x, y, color, flags, c); g_free(c); } /*static int fontwidth(char *text){ return strlen(text)*9; } static int fontheight(char *text){ return 8; } */ #endif tucnak2-2.48/src/hdkeyb.c0000644000175000017500000005573211727646252012170 00000000000000/* hdkeyb.c - routines for hdkeyb control http://ok1zia.nagano.cz/wiki/Hdkeyb Copyright (C) 2010 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ /* TODO pri chybe na USB ukoncit/znovu spustit */ #include "header.h" #define PIN_HD_E 0x04 #define PIN_HD_RS 0x01 #define PIN_HD_RW 0x10 #define PIN_HD_D4 0x02 #define PIN_HD_D5 0x80 #define PIN_HD_D6 0x20 #define PIN_HD_D7 0x40 #define PIN_HD_BUSY 0x08 #define PIN_KEYB_A0 0x10 #define PIN_KEYB_A1 0x01 #define PIN_KEYB_A2 0x04 #define PIN(pins, value) if (value) hdkeyb->wr |= (pins); else hdkeyb->wr &= ~(pins); struct hdkeyb *hdkeyb; struct hdkeyb *init_hdkeyb(void){ struct hdkeyb *hdkeyb; if (rotars->len == 0) return NULL; hdkeyb = g_new0(struct hdkeyb, 1); #ifdef HAVE_LIBFTDI hdkeyb->thread = g_thread_create(hdkeyb_main, (gpointer)hdkeyb, TRUE, NULL); if (!hdkeyb->thread) { log_addf("Can't create hdkeyb thread"); dbg("Can't create hdkeyb thread\n"); g_free(hdkeyb); return NULL; } dbg("hdkeyb started\n"); hdkeyb_draw_rotars(hdkeyb); #endif // hdkeyb->thread_break = 1; //hdkeyb_dump_vrams(hdkeyb); return hdkeyb; } void free_hdkeyb(struct hdkeyb *hdkeyb){ #ifdef HAVE_LIBFTDI if (!hdkeyb) return; if (hdkeyb->thread){ hdkeyb->thread_break = 1; dbg("join hdkeyb...\n"); g_thread_join(hdkeyb->thread); dbg("done\n"); hdkeyb->thread=NULL; } #endif g_free(hdkeyb); } #ifdef HAVE_LIBFTDI void hdkeyb_dump_vrams(struct hdkeyb *hdkeyb){ int i; char vrc; dbg("oldv='"); for (i=0; i<16; i++) { vrc = hdkeyb->oldvram[0][i]; dbg("%c", isprint(vrc) ? vrc : '.'); } dbg("'\nvram='"); for (i=0; i<16; i++) { vrc = hdkeyb->vram[0][i]; dbg("%c", isprint(vrc) ? vrc : '.'); } dbg("'\n"); } gpointer hdkeyb_main(gpointer xxx){ struct hdkeyb *hdkeyb; int i; int ret, ftdi_vid = 0xa600, ftdi_pid = 0xe114; hdkeyb = (struct hdkeyb*)xxx; hdkeyb->ftdi = ftdi_new(); if (!hdkeyb->ftdi){ tp_printf("HD;!;Can't create hdkeyb ftdi\n"); return NULL; } ret = ftdi_usb_open(hdkeyb->ftdi, ftdi_vid, ftdi_pid); if (ret){ tp_printf("HD;!;Can't open ftdi device %04x:%04x, error=%d %s\n", ftdi_vid, ftdi_pid, ret, ftdi_get_error_string(hdkeyb->ftdi)); dbg("HD;!;Can't open ftdi device %04x:%04x, error=%d %s", ftdi_vid, ftdi_pid, ret, ftdi_get_error_string(hdkeyb->ftdi)); if (ret==-8) tp_printf("HD;!;Maybe run program as root"); return NULL; } int bitmask = (PIN_HD_RS | PIN_HD_RW | PIN_HD_E | PIN_HD_D4 | PIN_HD_D5 | PIN_HD_D6 | PIN_HD_D7); ret=ftdi_set_bitmode(hdkeyb->ftdi, bitmask, BITMODE_SYNCBB); //dbg("ftdi_set_bitmode(0x%02x)=%d", bitmask, ret); if (ret){ tp_printf("HD;!;Can't enable bitbang, error=%d %s\n", ret, ftdi_get_error_string(hdkeyb->ftdi)); return NULL; } ret=ftdi_set_baudrate(hdkeyb->ftdi, 1200); if (ret){ tp_printf("HD;!;Can't set baudrate for ftdi, error=%d %s\n", ret, ftdi_get_error_string(hdkeyb->ftdi)); return NULL; } hdkeyb_reset(hdkeyb); hdkeyb_clear(hdkeyb); #if defined(HAVE_SDL) && defined(HAVE_LIBPNG) SDL_Surface *png = do_png_create(icon_tucnak23, sizeof(icon_tucnak23)); if (png) internal_("Can't create icon_tucnak23, currupted executable?"); hdkeyb_setdir(hdkeyb); hdkeyb_cursor(hdkeyb, 0); for (i = 0; i < 4; i++) hdkeyb_data(hdkeyb, i); hdkeyb_cursor(hdkeyb, 64); for (i = 4; i < 8; i++) hdkeyb_data(hdkeyb, i); hdkeyb_print(hdkeyb, 5, "Tucnak"); hdkeyb_print(hdkeyb, 12, PACKAGE_VERSION); hdkeyb_print(hdkeyb, 64+5, "(C) OK1ZIA"); hdkeyb_flush(hdkeyb); for (i=png->h - 17; i>=0; i--){ int j, x, y, d, k; hdkeyb_cgram(hdkeyb, 0); for (j=0; j<64; j++){ x = ((j % 32) / 8) * 6; y = (j / 32) * 9 + j % 8 + i; d = 0; // dbg("j=%d x=%d y=%d\n", j, x, y); for (k=0; k<5; k++){ if (x + k >= png->w) continue; if (y >= png->h) continue; if (fast_getpixel8(png, 3*(x + k), y) == 0) { d |= 1 << (4 - k); /*fast_putpixel(sdl->screen, x + k, y - i, makecol(255, 255, 255)); }else{ fast_putpixel(sdl->screen, x + k, y - i, makecol(40, 40, 40));*/ } } hdkeyb_data(hdkeyb, d); } hdkeyb_flush(hdkeyb); /*for (x = 0; x < png->w; x++) for (y=0; y < png->h; y++){ if (fast_getpixel8(png, x*3, y) == 0) { fast_putpixel(sdl->screen, x + 30, y, makecol(255, 255, 255)); }else{ fast_putpixel(sdl->screen, x + 30, y, makecol(40, 40, 40)); } fast_putpixel(sdl->screen, x + 60, y, fast_getpixel8(png, 3*x, y)); } SDL_Rect r; r.x = 90; r.y = 0; r.w = 50;; r.h = 50; SDL_BlitSurface(png, NULL, sdl->screen, &r); SDL_UpdateRect(sdl->screen, 0, 0, sdl->screen->w, sdl->screen->h);*/ usleep(150000); } sleep(2); #endif hdkeyb_clear(hdkeyb); hdkeyb_setdir(hdkeyb); hdkeyb_cgram(hdkeyb, 8); hdkeyb_data(hdkeyb, 0x1c); // degree hdkeyb_data(hdkeyb, 0x14); hdkeyb_data(hdkeyb, 0x1c); hdkeyb_data(hdkeyb, 0x00); hdkeyb_data(hdkeyb, 0x00); hdkeyb_data(hdkeyb, 0x00); hdkeyb_data(hdkeyb, 0x00); hdkeyb_data(hdkeyb, 0x00); hdkeyb_data(hdkeyb, 0x08); // right arrow hdkeyb_data(hdkeyb, 0x0c); hdkeyb_data(hdkeyb, 0x0e); hdkeyb_data(hdkeyb, 0x1f); hdkeyb_data(hdkeyb, 0x0e); hdkeyb_data(hdkeyb, 0x0c); hdkeyb_data(hdkeyb, 0x08); hdkeyb_data(hdkeyb, 0x00); hdkeyb_data(hdkeyb, 0x02); // left arrow hdkeyb_data(hdkeyb, 0x06); hdkeyb_data(hdkeyb, 0x0e); hdkeyb_data(hdkeyb, 0x1f); hdkeyb_data(hdkeyb, 0x0e); hdkeyb_data(hdkeyb, 0x06); hdkeyb_data(hdkeyb, 0x02); hdkeyb_data(hdkeyb, 0x00); hdkeyb_flush(hdkeyb); while(!hdkeyb->thread_break){ int li, co; g_thread_yield(); char key = hdkeyb_read_key(hdkeyb); if (key){ tp_printf("HD;k;%c\n", key); } for (li = 0; li < HDKEYB_LINES; li++){ for (co = 0; co < HDKEYB_CHARS; co++){ char vrc = hdkeyb->vram[li][co]; if (vrc == hdkeyb->oldvram[li][co]) continue; // dbg("1 li=%d co=%d old='%c' c='%c'\n", li, co, hdkeyb->oldvram[li][co], vrc); hdkeyb_setdir(hdkeyb); hdkeyb_cursor(hdkeyb, li * 64 + co); hdkeyb_data(hdkeyb, vrc); hdkeyb->oldvram[li][co] = vrc; for (co++; co < HDKEYB_CHARS; co++){ vrc = hdkeyb->vram[li][co]; // dbg("2 li=%d co=%d old='%c' c='%c'\n", li, co, hdkeyb->oldvram[li][co], vrc); if (vrc == hdkeyb->oldvram[li][co]) break; hdkeyb_data(hdkeyb, vrc); hdkeyb->oldvram[li][co] = vrc; } hdkeyb_flush(hdkeyb); } } } ftdi_set_bitmode(hdkeyb->ftdi, 0x00, BITMODE_RESET); ftdi_free(hdkeyb->ftdi); return NULL; } void hdkeyb_read_handler(char *s){ struct zstring *zs; char *cmd, *key; if (!hdkeyb) return; zs = zstrdup(s); cmd = ztokenize(zs, 1); // dbg("hdkeyb_read_handler rcvd: '%s' cmd='%s'\n", s, cmd); if (strcmp(cmd, "!")==0){ /* error */ log_addf("Hdkeyb error: %s", ztokenize(zs, 0)); } if (strcasecmp(cmd, "k")==0){ key=ztokenize(zs, 0); hdkeyb_key(hdkeyb, key[0]); } zfree(zs); redraw_later(); } void hdkeyb_key(struct hdkeyb *hdkeyb, char key){ //dbg("Hdkeyb key='%c'\n", key); int len = strlen(hdkeyb->qtfstr); switch (key){ case 'A': hdkeyb_activate(hdkeyb, 0); return; case 'B': hdkeyb_activate(hdkeyb, 1); return; } if (len == 0){ switch(key){ case 'C': hdkeyb_activate(hdkeyb, 2); return; case 'D': hdkeyb_activate(hdkeyb, 3); return; case '0': case '1': case '2': case '3': hdkeyb->qtfstr[len++] = key; hdkeyb->qtfstr[len] = '\0'; break; case '4': hdkeyb_rel_qtf(hdkeyb, -5); return; case '6': hdkeyb_rel_qtf(hdkeyb, +5); return; case '7': hdkeyb_rel_qtf(hdkeyb, -10); return; case '9': hdkeyb_rel_qtf(hdkeyb, +10); return; case '*': hdkeyb_rel_qtf(hdkeyb, -2); return; case '#': hdkeyb_rel_qtf(hdkeyb, +2); return; } }else{ switch(key){ case 'C': hdkeyb->qtfstr[len - 1] = '\0'; return; case 'D': hdkeyb_set_qtf(hdkeyb); return; } if (key >= '0' && key <= '9'){ hdkeyb->qtfstr[len++] = key; hdkeyb->qtfstr[len] = '\0'; } } len = strlen(hdkeyb->qtfstr); if (len == 3) hdkeyb_set_qtf(hdkeyb); hdkeyb_draw_rotar(hdkeyb, hdkeyb->actnr); } void hdkeyb_activate(struct hdkeyb *hdkeyb, int nr){ int oldnr; dbg("hdkeyb_activate(%d) old=%d\n", nr, hdkeyb->actnr); oldnr = hdkeyb->actnr; hdkeyb->actnr = nr; hdkeyb_draw_rotar(hdkeyb, oldnr); hdkeyb_draw_rotar(hdkeyb, nr); hdkeyb->qtfstr[0] = '\0'; } void hdkeyb_set_qtf(struct hdkeyb *hdkeyb){ struct rotar *rot; int qtf; rot = get_rotar(hdkeyb->actnr); if (rot){ qtf = atoi(hdkeyb->qtfstr); rot_seek(rot, qtf); dbg("******** rot_seek(%c, %d, %03d)\n", rot->rotchar, rot->sdev->saddr, qtf); } strcpy(hdkeyb->qtfstr, ""); } void hdkeyb_rel_qtf(struct hdkeyb *hdkeyb, int rel){ struct rotar *rot; int qtf; rot = get_rotar(hdkeyb->actnr); if (!rot) return; qtf = rot->qtf + rel; rot_seek(rot, qtf); } static long int difftimeval_ms(struct timeval *stop, struct timeval *start){ int sec, usec; usec = stop->tv_usec - start->tv_usec; sec = stop->tv_sec - start->tv_sec; if (usec < 0){ usec += 1000000; sec --; } if (sizeof(long) == 4){ if (sec > 2000000) sec = 2000000; } if (sizeof(long) == 2){ if (sec > 63) sec = 63; } return (long)sec * 1000L + (long)usec / 1000L; } void hdkeyb_send(struct hdkeyb *hdkeyb){ // dbg("hdkeyb_send(%x) slen=%d\n", (unsigned char)hdkeyb->wr, hdkeyb->slen); hdkeyb->sbuf[hdkeyb->slen++] = hdkeyb->wr; if (hdkeyb->slen==HDKEYB_BUFLEN) hdkeyb_flush(hdkeyb); } int hdkeyb_flush(struct hdkeyb *hdkeyb){ int ret; int l; if (!hdkeyb->slen) return 0; l = hdkeyb->slen; hdkeyb->slen = 0; hdkeyb->rlen = 0; // dbg("hdkeyb_flush() slen=%d\n", l); ret = ftdi_write_data(hdkeyb->ftdi, (unsigned char*)hdkeyb->sbuf, l); if (ret != l){ zwrite(tpipe->threadpipe_write, zconcatesc("HD", "!", "ftdi_write_data", ftdi_get_error_string(hdkeyb->ftdi), NULL)); return -1; } #if 0 int i; for (i=0; isbuf[i], "f"); #endif #if 0 { int i; dbg("w "); for (i=0; isbuf[i]); dbg("\n"); } #endif ret = ftdi_read_data(hdkeyb->ftdi, (unsigned char *)hdkeyb->rbuf, l); if (ret < 0){ zwrite(tpipe->threadpipe_write, zconcatesc("HD", "!", "ftdi_read_data", ftdi_get_error_string(hdkeyb->ftdi), NULL)); return -1; } #if 0 for (i=0; isbuf[i], "f"); #endif #if 0 {int i; dbg("r "); for (i=0; isbuf[i]); dbg("\n");} #endif hdkeyb->rlen = ret; return 0; } int hdkeyb_reset(struct hdkeyb *hdkeyb){ int ret; int d = 1; hdkeyb->wr &= ~(PIN_HD_D7|PIN_HD_D6|PIN_HD_D5|PIN_HD_D4|PIN_HD_E|PIN_HD_RW|PIN_HD_RS); hdkeyb->wr |= PIN_HD_BUSY; // dbg("hdkeyb_reset\n"); hdkeyb_send(hdkeyb); hdkeyb_flush(hdkeyb); usleep(16000*d); // more than 15 ms ret = hdkeyb_cmd_nowait(hdkeyb, 0x3); // - - - - 0 0 1 DL if (ret) return ret; hdkeyb_flush(hdkeyb); usleep(5000*d); // more than 4.1 ms ret = hdkeyb_cmd_nowait(hdkeyb, 0x3); if (ret) return ret; hdkeyb_flush(hdkeyb); usleep(1000*d); // more than 100 us ret = hdkeyb_cmd_nowait(hdkeyb, 0x3); if (ret) return ret; hdkeyb_flush(hdkeyb); usleep(6000*d); ret = hdkeyb_cmd_nowait(hdkeyb, 0x2); // - - - - 0 0 1 DL datalen if (ret) return ret; hdkeyb_flush(hdkeyb); usleep(10000*d); ret = hdkeyb_cmd(hdkeyb, 0x28); // 0 0 1 DL N F - - datalen numberlines font if (ret) return ret; ret = hdkeyb_cmd(hdkeyb, 0x0c); // 0 0 0 0 1 D C B displayon cursoron blinkcursor if (ret) return ret; ret = hdkeyb_cmd(hdkeyb, 0x01); // 0 0 0 0 0 0 0 1 clear display, DDRAM addr=0 if (ret) return ret; ret = hdkeyb_cmd(hdkeyb, 0x06); // 0 0 0 0 0 1 I/D S increment shift if (ret) return ret; hdkeyb_flush(hdkeyb); return 0; } int hdkeyb_setdir(struct hdkeyb *hdkeyb){ int ret; int bitmask = (PIN_HD_RS | PIN_HD_RW | PIN_HD_E | PIN_HD_D4 | PIN_HD_D5 | PIN_HD_D6 | PIN_HD_D7); ret = ftdi_set_bitmode(hdkeyb->ftdi, bitmask, BITMODE_SYNCBB); if (ret){ zwrite(tpipe->threadpipe_write, zconcatesc("HD", "!", "ftdi_set_bitmode", ftdi_get_error_string(hdkeyb->ftdi), NULL)); return ret; } return ret; } int hdkeyb_cmd_nowait(struct hdkeyb *hdkeyb, char c){ // int ret; // dbg("hdkeyb_cmd_nowait(%02x)\n", (unsigned char)c); PIN(PIN_HD_RS, 0); PIN(PIN_HD_RW, 0); PIN(PIN_HD_E, 0); hdkeyb_send(hdkeyb); PIN(PIN_HD_D4, c & 0x01); PIN(PIN_HD_D5, c & 0x02); PIN(PIN_HD_D6, c & 0x04); PIN(PIN_HD_D7, c & 0x08); PIN(PIN_HD_E, 1); hdkeyb_send(hdkeyb); PIN(PIN_HD_E, 0); hdkeyb_send(hdkeyb); return 0; } int hdkeyb_write(struct hdkeyb *hdkeyb, char c){ // int ret; // dbg("hdkeyb_write(%02x) slen=%d\n", (unsigned char)c, hdkeyb->slen); PIN(PIN_HD_RW, 0); PIN(PIN_HD_E, 0); hdkeyb_send(hdkeyb); PIN(PIN_HD_D4, c & 0x10); PIN(PIN_HD_D5, c & 0x20); PIN(PIN_HD_D6, c & 0x40); PIN(PIN_HD_D7, c & 0x80); PIN(PIN_HD_E, 1); hdkeyb_send(hdkeyb); PIN(PIN_HD_E, 0); hdkeyb_send(hdkeyb); PIN(PIN_HD_D4, c & 0x01); PIN(PIN_HD_D5, c & 0x02); PIN(PIN_HD_D6, c & 0x04); PIN(PIN_HD_D7, c & 0x08); PIN(PIN_HD_E, 1); hdkeyb_send(hdkeyb); PIN(PIN_HD_E, 0); hdkeyb_send(hdkeyb); return 0; } int hdkeyb_wait(struct hdkeyb *hdkeyb){ int busy = 1; struct timeval start, stop; long int diff; //usleep(2000); return 0; gettimeofday(&start, NULL); while(busy){ PIN(PIN_HD_RS, 0); PIN(PIN_HD_RW, 1); // read PIN(PIN_HD_E, 0); hdkeyb_send(hdkeyb); PIN(PIN_HD_E, 1); hdkeyb_send(hdkeyb); PIN(PIN_HD_E, 0); hdkeyb_send(hdkeyb); PIN(PIN_HD_E, 1); hdkeyb_send(hdkeyb); PIN(PIN_HD_E, 0); hdkeyb_send(hdkeyb); busy = hdkeyb->rd & PIN_HD_BUSY; gettimeofday(&stop, NULL); diff = difftimeval_ms(&stop, &start); if (diff > 5) { error("hdkeyb_wait: no BUSY reply\n"); break; } } return 0; } int hdkeyb_cmd(struct hdkeyb *hdkeyb, char c){ int ret; #if 0 if (c & 0x80) dbg("hdkeyb_cursor(0x%02d)\n", ((unsigned char)c)&0x7f); else if (c & 0x80) dbg("hdkeyb_cgram(0x%02x)\n", ((unsigned char)c)&0x3f); else dbg("hdkeyb_cmd(0x%02x)\n", (unsigned char)c); #endif PIN(PIN_HD_RS, 0); ret = hdkeyb_write(hdkeyb, c); if (ret) return ret; ret = hdkeyb_wait(hdkeyb); if (ret) return ret; return 0; } int hdkeyb_data(struct hdkeyb *hdkeyb, char c){ int ret; // dbg("hdkeyb_data(0x%02x)\n", (unsigned char)c); PIN(PIN_HD_RS, 1); ret = hdkeyb_write(hdkeyb, c); if (ret) return ret; ret = hdkeyb_wait(hdkeyb); if (ret) return ret; return 0; } void hdkeyb_cgram(struct hdkeyb *hdkeyb, char pos) { hdkeyb_cmd(hdkeyb, 0x40|(pos&0x7f)); return; } void hdkeyb_printc(struct hdkeyb *hdkeyb, char *str){ hdkeyb_setdir(hdkeyb); while (*str) { hdkeyb_data(hdkeyb, *str); str++; } hdkeyb_flush(hdkeyb); } void hdkeyb_printf(struct hdkeyb *hdkeyb, char line, char col, char *m, ...){ va_list l; int li, co; char *s, *c; if (line < 0 || col < 0) return; va_start(l, m); s = g_strdup_vprintf(m, l); va_end(l); li = line; co = col; for (c = s; *c != '\0'; c++){ if (*c == '\n'){ li++; co = 0; } if (li < HDKEYB_LINES && co < HDKEYB_CHARS){ hdkeyb->vram[li][co++] = *c; } } g_free(s); } void hdkeyb_print(struct hdkeyb *hdkeyb, char pos, char *str){ hdkeyb_setdir(hdkeyb); hdkeyb_cursor(hdkeyb, pos); while(*str){ hdkeyb_data(hdkeyb, *str); str++; pos++; #ifdef MC1601 if (pos==0+8) hdkeyb_cursor(hdkeyb, pos=64); if (pos==64+8) hdkeyb_cursor(hdkeyb, pos=0); #endif } hdkeyb_flush(hdkeyb); } void hdkeyb_clear(struct hdkeyb *hdkeyb){ unsigned char i; hdkeyb_cursor(hdkeyb, LINE_1); for (i=20;i;i--) { hdkeyb_data(hdkeyb, ' '); } hdkeyb_cursor(hdkeyb, LINE_2); for (i=20;i;i--) { hdkeyb_data(hdkeyb, ' '); } } /* keyboard routines */ char hdkeyb_keyb_state(struct hdkeyb *hdkeyb){ int ret, cnt; char scan; int bitmask = (PIN_HD_RS | PIN_HD_RW | PIN_HD_E ); ret = ftdi_set_bitmode(hdkeyb->ftdi, bitmask, BITMODE_SYNCBB); if (ret){ zwrite(tpipe->threadpipe_write, zconcatesc("HD", "!", "ftdi_set_bitmode", ftdi_get_error_string(hdkeyb->ftdi), NULL)); return 0xff; } hdkeyb_flush(hdkeyb); PIN(PIN_HD_D4,1); PIN(PIN_HD_D5,1); PIN(PIN_HD_D6,1); PIN(PIN_HD_D7,1); PIN(PIN_HD_BUSY,1); PIN(PIN_KEYB_A0,0); PIN(PIN_KEYB_A1,0); PIN(PIN_KEYB_A2,0); PIN(PIN_HD_E,0); // already 0 hdkeyb_send(hdkeyb); PIN(PIN_KEYB_A0,1); PIN(PIN_KEYB_A1,0); hdkeyb_send(hdkeyb); PIN(PIN_KEYB_A0,0); PIN(PIN_KEYB_A1,1); hdkeyb_send(hdkeyb); PIN(PIN_KEYB_A0,1); PIN(PIN_KEYB_A1,1); hdkeyb_send(hdkeyb); hdkeyb_send(hdkeyb); hdkeyb_flush(hdkeyb); cnt = 0; scan = 0xff; if (!(hdkeyb->rbuf[1] & PIN_HD_D4)) { scan = 'A'; cnt++; } if (!(hdkeyb->rbuf[1] & PIN_HD_D5)) { scan = '3'; cnt++; } if (!(hdkeyb->rbuf[1] & PIN_HD_D6)) { scan = '2'; cnt++; } if (!(hdkeyb->rbuf[1] & PIN_HD_D7)) { scan = '1'; cnt++; } if (!(hdkeyb->rbuf[2] & PIN_HD_D4)) { scan = 'B'; cnt++; } if (!(hdkeyb->rbuf[2] & PIN_HD_D5)) { scan = '6'; cnt++; } if (!(hdkeyb->rbuf[2] & PIN_HD_D6)) { scan = '5'; cnt++; } if (!(hdkeyb->rbuf[2] & PIN_HD_D7)) { scan = '4'; cnt++; } if (!(hdkeyb->rbuf[3] & PIN_HD_D4)) { scan = 'C'; cnt++; } if (!(hdkeyb->rbuf[3] & PIN_HD_D5)) { scan = '9'; cnt++; } if (!(hdkeyb->rbuf[3] & PIN_HD_D6)) { scan = '8'; cnt++; } if (!(hdkeyb->rbuf[3] & PIN_HD_D7)) { scan = '7'; cnt++; } if (!(hdkeyb->rbuf[4] & PIN_HD_D4)) { scan = 'D'; cnt++; } if (!(hdkeyb->rbuf[4] & PIN_HD_D5)) { scan = '#'; cnt++; } if (!(hdkeyb->rbuf[4] & PIN_HD_D6)) { scan = '0'; cnt++; } if (!(hdkeyb->rbuf[4] & PIN_HD_D7)) { scan = '*'; cnt++; } // dbg("%d %c\n", scan, scan); if (cnt != 1) return 0xff; return scan; } char hdkeyb_read_key(struct hdkeyb *hdkeyb){ char state; state = hdkeyb_keyb_state(hdkeyb); if (state == hdkeyb->oldkeystate) return '\0'; hdkeyb->oldkeystate = state; return state; } int hdkeyb_debug_pins(char a, char *t){ dbg("%s E=%d RS=%d RW=%d D=%d BUSY=%d\n", t, !!(a & PIN_HD_E), !!(a & PIN_HD_RS), !!(a & PIN_HD_RW), (!!(a & PIN_HD_D4))+ (!!(a & PIN_HD_D5))*2+ (!!(a & PIN_HD_D6))*4+ (!!(a & PIN_HD_D7))*8, !!(a & PIN_HD_BUSY)); return 0; } void hdkeyb_draw_rotar(struct hdkeyb *hdkeyb, int nr){ int li, co; if (!hdkeyb) return; struct rotar *rot = get_rotar(nr); if (!rot) return; li = nr / 2; co = (nr % 2) * HDKEYB_CHARS / 2; // dbg("nr=%d li=%d co=%d\n", nr, li, co); if (nr == hdkeyb->actnr){ if (strlen(hdkeyb->qtfstr) > 0){ hdkeyb_printf(hdkeyb, li, co, "\x02%c%3s\x01\x03", 'A' + nr, hdkeyb->qtfstr); }else{ hdkeyb_printf(hdkeyb, li, co, "\x02%c%03d\x01\x03", 'A' + nr, rot->qtf); } }else{ hdkeyb_printf(hdkeyb, li, co, " %c%03d\x01 ", 'A' + nr, rot->qtf); } } void hdkeyb_draw_rotars(struct hdkeyb *hdkeyb){ int i; // return; for (i=0; i < HDKEYB_LINES * 2; i++) hdkeyb_draw_rotar(hdkeyb, i); //hdkeyb_dump_vrams(hdkeyb); } #if 0 int hdkeyb_test(void){ struct hdkeyb *hdkeyb; int i; dbg("\n\n\n"); hdkeyb = init_hdkeyb(); if (!hdkeyb) { error("init_hdkeyb() failed\n"); return -1; } hdkeyb_setdir(hdkeyb); hdkeyb_reset(hdkeyb); usleep(300000); /*// dbg("1 %x\n", hdkeyb->rd); hdkeyb->wr = 0x55; WRITE; // dbg("2 %x\n", hdkeyb->rd); hdkeyb->wr = 0xaa; WRITE; // dbg("3 %x\n", hdkeyb->rd); READ; // dbg("4 %x\n", hdkeyb->rd); READ; READ; // dbg("5 %x\n", hdkeyb->rd); hdkeyb_free(hdkeyb); */ /* while(1){ int a= hdkeyb_key(hdkeyb); if (a==0) continue; dbg("%c\n", a); } */ // gst_start(); // hdkeyb_print2(hdkeyb, 0, "ABC"); char ss[50]; strcpy(ss, ""); for (i=0; i<100000000; i++){ char s[50]; sprintf(s, "jedeme %d", i); hdkeyb_setdir(hdkeyb); hdkeyb_print(hdkeyb, 80, s); int a= hdkeyb_key(hdkeyb); if (a==0) continue; if (a==-1) continue; dbg("%d\n", a); switch(a){ case 'C': if (strlen(ss)==0) break; ss[strlen(ss)-1]='\0'; break; default: if (strlen(ss)==15) break; ss[strlen(ss)+1]='\0'; ss[strlen(ss)]=a; break; } sprintf(s, "%-16s", ss); hdkeyb_print(hdkeyb, 16, s); } // gst_stop(); return 0; } #endif #endif tucnak2-2.48/src/win32.c0000644000175000017500000001655511567373656011673 00000000000000/* Tucnak - VHF contest log Functions for WIN32 (MSVC, MINGW) Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifdef WIN32 #include "header.h" #include #include void sleep(int sec){ Sleep(sec * 1000); } void usleep(int usec){ Sleep(usec / 1000); // todo better resolution } int settimeofday(const struct timeval *tv, const void *zone){ return 0; } void *sbrk(int increment){ return NULL; } char *wokna(char *file){ char *c; for (c = file; *c != '\0'; c++) if (*c == '/') *c = '\\'; return file; } int pipe(int *fds){ int port, master, ret; struct sockaddr_in sin; master = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (master == INVALID_SOCKET) { internal_("pipe: invalid master socket %d", WSAGetLastError()); return -1; } for (port = 2000; port < 2500; port++){ if (port == 2500 - 1){ shutdown(master, SD_BOTH); internal_("pipe: no free socket"); return -1; } sin.sin_family = AF_INET; sin.sin_addr.S_un.S_addr = inet_addr("127.0.0.1"); sin.sin_port = htons(port); if (bind(master, (struct sockaddr *)&sin, sizeof(sin)) == SOCKET_ERROR){ //if (WSAGetLastError() == WSAEADDRINUSE) continue; continue; } break; } if (listen(master, 5) == SOCKET_ERROR){ shutdown(master, SD_BOTH); internal_("pipe: listen socket error"); return -1; } fds[0] = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (fds[0] == INVALID_SOCKET){ shutdown(master, SD_BOTH); internal_("pipe: invalid socket 0"); return -1; } if (fcntl(fds[0], F_SETFL, O_NONBLOCK)){ shutdown(master, SD_BOTH); shutdown(fds[0], SD_BOTH); internal_("pipe: can't set O_NONBLOCK"); return -1; } if (connect(fds[0], (struct sockaddr*)&sin, sizeof(sin)) == SOCKET_ERROR){ int err = WSAGetLastError(); if (err != WSAEWOULDBLOCK){ shutdown(master, SD_BOTH); shutdown(fds[0], SD_BOTH); internal_("pipe: can't connect"); return -1; } } if (fcntl(fds[0], F_SETFL, 0)){ shutdown(master, SD_BOTH); shutdown(fds[0], SD_BOTH); internal_("pipe: can't clear O_NONBLOCK"); return -1; } fds[1] = accept(master, NULL, NULL); if (fds[1] == INVALID_SOCKET){ shutdown(master, SD_BOTH); shutdown(fds[0], SD_BOTH); internal_("pipe: invalid socket accepted"); return -1; } shutdown(master, SD_BOTH); return 0; } int lockf(int fd, int cmd, off_t len){ HANDLE h; //internal_("lockf neotestovna"); h = (HANDLE)_get_osfhandle(fd); if (h == INVALID_HANDLE_VALUE) { errno = EBADF; return -1; } if (!LockFile(h, 0, 0, 0, 0)) { return -1; } if (cmd == F_TEST){ UnlockFile(h, 0, 0, 0, 0); } return 0;// TODO } int fsync(int fd){ return -1; } int tcgetattr(int fd, struct termios *termios_p){ return -1; } int tcsetattr(int fd, int optional_actions, const struct termios *termios_p){ return -1; } int tcflush(int fd, int queue_selector){ return -1; } int cfsetispeed(struct termios *termios_p, speed_t speed){ return -1; } int cfsetospeed(struct termios *termios_p, speed_t speed){ return -1; } /* process */ pid_t fork(void){ errno = 1; return (pid_t)-1; } int kill(pid_t pid, int sig){ errno = 1; return -1; } pid_t waitpid(pid_t pid, int *status, int options){ errno = 1; return -1; } /* signal */ int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact){ return -1; } int sigfillset(sigset_t *set){ return -1; } /* interfaces */ typedef DWORD (CALLBACK *T_GetAdaptersInfo)(PIP_ADAPTER_INFO pAdapterInfo, PULONG pOutBufLen); int get_interfaces(struct iface_struct *ifaces, int max_interfaces){ PIP_ADAPTER_INFO pAdapterInfo; PIP_ADAPTER_INFO pAdapter; int i, j; T_GetAdaptersInfo p_GetAdaptersInfo = NULL; HMODULE iphlpapi = NULL; ULONG ulOutBufLen = sizeof (IP_ADAPTER_INFO); iphlpapi = LoadLibrary("iphlpapi.dll"); if (!iphlpapi) return 0; p_GetAdaptersInfo = (T_GetAdaptersInfo) GetProcAddress(iphlpapi, "GetAdaptersInfo"); if (!p_GetAdaptersInfo){ FreeLibrary(iphlpapi); return 0; } pAdapterInfo = (IP_ADAPTER_INFO *) mem_alloc(sizeof (IP_ADAPTER_INFO)); if (pAdapterInfo == NULL) { FreeLibrary(iphlpapi); return 0; } if (p_GetAdaptersInfo(pAdapterInfo, &ulOutBufLen) == ERROR_BUFFER_OVERFLOW) { mem_free(pAdapterInfo); pAdapterInfo = (IP_ADAPTER_INFO *) mem_alloc(ulOutBufLen); if (pAdapterInfo == NULL) { FreeLibrary(iphlpapi); return 0; } } if (p_GetAdaptersInfo(pAdapterInfo, &ulOutBufLen) != NO_ERROR) { mem_free(pAdapterInfo); FreeLibrary(iphlpapi); return 0; } FreeLibrary(iphlpapi); for (pAdapter = pAdapterInfo, i = 0; pAdapter != NULL && i < max_interfaces; pAdapter = pAdapter->Next, i++) { ifaces[i].ip.S_un.S_addr = inet_addr(pAdapter->IpAddressList.IpAddress.String); ifaces[i].netmask.S_un.S_addr = inet_addr(pAdapter->IpAddressList.IpMask.String); switch (pAdapter->Type){ case MIB_IF_TYPE_OTHER: sprintf(ifaces[i].name, "oth%d", i); break; case MIB_IF_TYPE_ETHERNET: sprintf(ifaces[i].name, "eth%d", i); break; case MIB_IF_TYPE_TOKENRING: sprintf(ifaces[i].name, "tr%d", i); break; case MIB_IF_TYPE_FDDI: sprintf(ifaces[i].name, "fddi%d", i); break; case MIB_IF_TYPE_PPP: sprintf(ifaces[i].name, "ppp%d", i); break; case MIB_IF_TYPE_LOOPBACK: sprintf(ifaces[i].name, "lo"); break; case MIB_IF_TYPE_SLIP: sprintf(ifaces[i].name, "sl%d", i); break; default: sprintf(ifaces[i].name, "unk%d", i); break; } } return i; } /* fcntl */ int fcntl(int fd, int cmd, long arg){ u_long iMode = 0; // If iMode = 0, blocking is enabled; // If iMode != 0, non-blocking mode is enabled. if (cmd != F_SETFL) return -1; iMode = arg; if (ioctlsocket(fd, FIONBIO, &iMode) != NO_ERROR) return -1; return 0; } /* ioctl */ int ioctl(int d, int request, ...){ return -1; } /* sockets */ int inet_aton(const char *cp, struct in_addr *inp){ unsigned long addr = inet_addr(cp); if (addr == INADDR_NONE) return 0; // invalid inp->S_un.S_addr = addr; return 1; // valid } /* os_dep.h */ static int get_e(char *env) { char *v; if ((v = getenv(env))) return atoi(v); return 0; } void handle_terminal_resize(int fd, void (*fn)(cba_t)) { /*#ifdef HAVE_SDL if (sdl) return; #endif install_signal_handler(SIGWINCH, sigwinch, (cba_t)(void*)fn, 0);*/ } void unhandle_terminal_resize(int fd) { /*#ifdef HAVE_SDL if (sdl) return; #endif //install_signal_handler(SIGWINCH, NULL, CBA0, 0);*/ } int term_get_terminal_size(int fd, int *x, int *y) { struct winsize ws; if (!x || !y) return -1; if (ioctl(1, TIOCGWINSZ, &ws) != -1) { if (!(*x = ws.ws_col) && !(*x = get_e("COLUMNS"))) *x = 80; if (!(*y = ws.ws_row) && !(*y = get_e("LINES"))) *y = 24; return 0; } else { !(*x = get_e("COLUMNS")) && (*x = 80); !(*y = get_e("LINES")) && (*y = 24); } return 0; } void terminate_osdep(void){ } #endif /* win32 */ tucnak2-2.48/src/kbdbind.c0000644000175000017500000001310011567373656012305 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" static void add_default_keybindings(void); struct keybinding { struct keybinding *next; struct keybinding *prev; int act; long x; long y; }; static struct keybinding keymaps[KM_MAX]; static void add_keybinding(int km, int act, long x, long y) { struct keybinding *kb; foreach(kb, keymaps[km]) if (kb->x == x && kb->y == y) { /* want at top of list */ del_from_list(kb); goto add; } if ((kb = mem_alloc(sizeof(struct keybinding)))) { add: kb->act = act; kb->x = x; kb->y = y; add_to_list(keymaps[km], kb); } } void init_keymaps(void) { int i; for (i = 0; i < KM_MAX; i++) init_list(keymaps[i]); add_default_keybindings(); } void free_keymaps(void) { int i; for (i = 0; i < KM_MAX; i++) { while (keymaps[i].next != &(keymaps[i])) { struct keybinding *a=(keymaps[i]).next; del_from_list(a); mem_free(a); } } } int kbd_action(int kmap, struct event *ev) { struct keybinding *kb; if (ev->ev == EV_KBD) foreach(kb, keymaps[kmap]){ if (ev->x == kb->x && ev->y == kb->y) { // dbg("kbd_action=%d\n",kb->act); return kb->act; } if (kb->y & (KBD_CTRL|KBD_ALT)){ if (toupper(ev->x) == toupper(kb->x) && ev->y == kb->y) { return kb->act; } } } return -1; } /* * Default keybindings. */ struct default_kb { int act; long x; long y; }; /* !!!! CTRL needs uppercase, ALT lowercase */ static struct default_kb default_main_keymap[] = { { ACT_BACKSPACE, KBD_BS, 0 }, { ACT_BACKSPACE, KBD_BS, KBD_SHIFT }, { ACT_CALLINFO, 'i', KBD_ALT }, { ACT_CHOP, 'o', KBD_ALT }, { ACT_CLEAR_TMPQSOS, 'y', KBD_ALT }, { ACT_CLEAR_TMPQSOS_INPUTLINE, KBD_F3, 0 }, { ACT_CONFIRM_CALL, 'd', KBD_ALT }, { ACT_CONFIRM_EXC, 'e', KBD_ALT }, { ACT_CONFIRM_WWL, 'x', KBD_ALT }, { ACT_COPY_CLIPBOARD, 'C', KBD_CTRL }, { ACT_COPY_CLIPBOARD, KBD_INS, KBD_CTRL }, { ACT_CQ_0, KBD_F5, 0 }, { ACT_CQ_1, KBD_F6, 0 }, { ACT_CQ_2, KBD_F7, 0 }, { ACT_CQ_3, KBD_F8, 0 }, { ACT_CQ_4, KBD_F11, 0 }, { ACT_CQ_5, KBD_F12, 0 }, { ACT_DELETE, KBD_DEL, 0 }, { ACT_DOWN, KBD_DOWN, 0 }, { ACT_END, KBD_END, 0 }, { ACT_ENTER, KBD_ENTER, 0 }, /*{ ACT_ESC, KBD_ESC, 0 },*/ { ACT_FILE_MENU, KBD_F10 }, { ACT_FIND_NEXT_BACK, 'N', 0 }, { ACT_FIND_NEXT, 'n', 0 }, { ACT_GRAB_BAND, 'g', KBD_ALT }, { ACT_HOME, KBD_HOME, 0 }, { ACT_INSERT, KBD_INS, 0 }, { ACT_LEFT, KBD_LEFT, 0 }, { ACT_MENU, KBD_F9, 0 }, { ACT_MODE, 'm', KBD_ALT }, { ACT_NEXT_SUBWIN, KBD_F4, 0 }, { ACT_NEXT_SUBWIN, KBD_RIGHT, KBD_ALT }, { ACT_PREV_SUBWIN, KBD_LEFT, KBD_ALT }, { ACT_PAGE_DOWN, KBD_PGDN, 0 }, { ACT_PAGE_UP, KBD_PGUP,0 }, { ACT_PLAY_LAST, 'P', KBD_CTRL }, { ACT_REALLYQUIT, 'q', KBD_ALT }, { ACT_RIGHT, KBD_RIGHT, 0 }, { ACT_ROTAR, 'r', KBD_ALT }, { ACT_RX, KBD_ESC, 0 }, { ACT_RXTX, KBD_TAB, 0 }, { ACT_SAVE_ALL, KBD_F2, 0 }, { ACT_SCREENSHOT, KBD_F1, 0 }, { ACT_SCROLL_LEFT, '[', 0 }, { ACT_SCROLL_RIGHT, ']', 0 }, { ACT_SEARCH, '/', 0 }, { ACT_SEARCH_BACK, '?', 0 }, { ACT_SEEK_A, 'A', KBD_CTRL }, { ACT_SEEK_B, 'B', KBD_CTRL }, { ACT_SKED, 's', KBD_ALT }, { ACT_SKED_QRG, 'f', KBD_ALT }, { ACT_SWAP_CALL, 'c', KBD_ALT }, { ACT_SWAP_WWL, 'v', KBD_ALT }, { ACT_TUNE, 't', KBD_ALT }, { ACT_UNFINISHED, 'u', KBD_ALT }, { ACT_UP, KBD_UP, 0 }, { ACT_WINDOWSHOT, KBD_F1, KBD_ALT }, { ACT_AC_CQ, 'j', KBD_ALT }, { 0, 0, 0 } }; static struct default_kb default_edit_keymap[] = { { ACT_LEFT, KBD_LEFT, 0 }, { ACT_RIGHT, KBD_RIGHT, 0 }, { ACT_HOME, KBD_HOME, 0 }, { ACT_END, KBD_END, 0 }, { ACT_COPY_CLIPBOARD, KBD_INS, KBD_CTRL }, { ACT_ENTER, KBD_ENTER, 0 }, { ACT_BACKSPACE, KBD_BS, 0 }, { ACT_BACKSPACE, KBD_BS, KBD_SHIFT }, { ACT_DELETE, KBD_DEL, 0 }, { ACT_KILL_LINE, 'Y', KBD_CTRL }, { ACT_PREV_HISTORY, 'p', KBD_ALT }, { ACT_NEXT_HISTORY, 'n', KBD_ALT }, { ACT_SHOW_HISTORY, 'h', KBD_ALT }, { ACT_LASTCALL_KST, 'k', KBD_ALT }, { ACT_NEWCALL_KST, 'K', KBD_CTRL }, /* ACT_KILL_TO_BOL, 'U', KBD_CTRL }, { ACT_KILL_TO_EOL, 'K', KBD_CTRL },*/ { 0, 0, 0 } }; static struct default_kb default_menu_keymap[] = { { ACT_LEFT, KBD_LEFT, 0 }, { ACT_RIGHT, KBD_RIGHT, 0 }, { ACT_HOME, KBD_HOME, 0 }, { ACT_HOME, 'A', KBD_CTRL }, { ACT_UP, KBD_UP, 0 }, { ACT_DOWN, KBD_DOWN, 0 }, { ACT_END, KBD_END, 0 }, { ACT_END, 'E', KBD_CTRL }, { ACT_ENTER, KBD_ENTER, 0 }, { ACT_PAGE_DOWN, KBD_PGDN, 0 }, { ACT_PAGE_DOWN, 'F', KBD_CTRL }, { ACT_PAGE_UP, KBD_PGUP, 0 }, { ACT_PAGE_UP, 'B', KBD_CTRL }, { 0, 0, 0} }; static void add_default_keybindings(void) { struct default_kb *kb; for (kb = default_main_keymap; kb->x; kb++) add_keybinding(KM_MAIN, kb->act, kb->x, kb->y); for (kb = default_edit_keymap; kb->x; kb++) add_keybinding(KM_EDIT, kb->act, kb->x, kb->y); for (kb = default_menu_keymap; kb->x; kb++) add_keybinding(KM_MENU, kb->act, kb->x, kb->y); } tucnak2-2.48/src/error.c0000644000175000017500000003274511567373656012061 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" static GHashTable *mbs; static GMutex *mbs_mutex; #ifdef LEAK_DEBUG_LIST char *mbs_file; int mbs_line; #endif void do_not_optimize_here(void *p) { /* stop GCC optimization - avoid bugs in it */ } #ifdef LEAK_DEBUG long mem_amount = 0; long last_mem_amount = -1; #ifdef LEAK_DEBUG_LIST /*struct list_head memory_list = { &memory_list, &memory_list };*/ struct alloc_header memory_list = { &memory_list, &memory_list }; GMutex *memory_list_mutex; char *memory_list_file; int memory_list_line; #endif #endif static inline void force_dump(void) { fprintf(stderr, "\n\033[1m%s\033[0m\n", "Forcing core dump"); fflush(stderr); raise(SIGSEGV); exit(1); } void check_memory_leaks(void) { #ifdef LEAK_DEBUG if (mem_amount) { free_all_itrms(); fprintf(stderr, "\n\033[1mMemory leak by %ld bytes\033[0m\n", mem_amount); #ifdef LEAK_DEBUG_LIST fprintf(stderr, "\nList of blocks: "); { int r = 0; struct alloc_header *ah; MUTEX_LOCK(memory_list); foreach (ah, memory_list) { fprintf(stderr, "%s%p:%d @ %s:%d", r ? ", ": "", (char *)ah + L_D_S, ah->size, ah->file, ah->line), r = 1; if (ah->comment) fprintf(stderr, ":\"%s\"", ah->comment); } fprintf(stderr, "\n"); MUTEX_UNLOCK(memory_list); } #endif force_dump(); } #endif } static void er(int b, char *m, va_list l) { if (b) fprintf(stderr, "%c", (char)7); vfprintf(stderr, m, l); fprintf(stderr, "\n"); sleep(1); } void error(char *m, ...) { va_list l; va_start(l, m); er(1, m, l); } int errline; char *errfile; static char errbuf[4096]; #ifdef UNIX void internal_error(char *m, ...) { va_list l; free_all_itrms(); va_start(l, m); sprintf(errbuf, "\033[1mINTERNAL ERROR\033[0m in pid=%d at %s:%d: ", getpid(), errfile, errline); strcat(errbuf, m); er(1, errbuf, l); force_dump(); } #endif #if defined(_MSC_VER) || defined(__MINGW32__) void internal_error(char *m, ...) { char buf[4096]; va_list l; va_start(l, m); sprintf(errbuf, "At %s:%d\r\n", errfile, errline); strcat(errbuf, m); vsnprintf(buf, sizeof(buf)-1, errbuf, l); MessageBox(NULL, buf, "Tucnak internal error", MB_OK | MB_ICONERROR); exit(1); } #endif void debug_msg(char *m, ...) { va_list l; free_all_itrms(); va_start(l, m); sprintf(errbuf, "DEBUG MESSAGE at %s:%d: ", errfile, errline); strcat(errbuf, m); er(0, errbuf, l); } int debug_type=0; char *debug_filename=NULL; static FILE *debug_file=NULL; void init_debug(void){ mbs=g_hash_table_new(g_direct_hash, g_direct_equal); mbs_mutex=g_mutex_new(); #ifdef LEAK_DEBUG_LIST memory_list_mutex=g_mutex_new(); #endif switch (debug_type){ case 1: debug_file=fopen(debug_filename, "wt"); // fixme was at break; case 2: debug_file=stderr; break; } //dbg("init_debug: sizeof(alloc_header)=%d, L_D_S=%d\n", sizeof(struct alloc_header), L_D_S); } void free_debug(void){ if (!debug_file) return; if (debug_file!=stderr) fclose(debug_file); g_hash_table_destroy(mbs); g_mutex_free(mbs_mutex); #ifdef LEAK_DEBUG_LIST g_mutex_free(memory_list_mutex); #endif } void dbg(char *m, ...) { va_list l; if (!debug_file) return; va_start(l, m); vfprintf(debug_file, m, l); #ifdef _MSC_VER { gchar *c = g_strdup_vprintf(m, l); OutputDebugString(c); g_free(c); } #endif va_end(l); fsync(fileno(debug_file)); } void trace(int enable, char *m, ...) { va_list l; if (!debug_file) return; if (!enable) return; va_start(l, m); vfprintf(debug_file, m, l); va_end(l); fsync(fileno(debug_file)); } static void print_str_hash(gpointer key, gpointer value, gpointer data){ dbg("\tkey='%s' \tvalue='%s'\n", key, value); } void dbg_str_hash(GHashTable *hash){ g_hash_table_foreach(hash, print_str_hash, NULL); } #ifdef LEAK_DEBUG void *debug_mem_alloc(char *file, int line, size_t size) { void *p; #ifdef LEAK_DEBUG struct alloc_header *ah; #endif #ifdef LEAK_DEBUG_LIST gpointer orig_key, value; char *c; #endif if (!size) return DUMMY; #ifdef LEAK_DEBUG mem_amount += size; size += L_D_S; #endif if (!(p = xmalloc(size + MCHK_LEAD))) { error("ERROR: out of memory (malloc returned NULL)\n"); return NULL; } #ifdef LEAK_DEBUG ah = p; p = (char *)p + L_D_S; ah->size = size - L_D_S; #ifdef LEAK_DEBUG_LIST // fprintf(stderr, "malloc(%d)=%p p=%p L_D_S=%d\n", size + MCHK_LEAD, ah, p, L_D_S); for (c = (char *)p - MCHK_LEAD; c != p; c++) { *c = MCHK_PATTERN; // fprintf(stderr, "%p=%02x\n", c, (unsigned char)*c); } for (c = (char *)p + ah->size; c != (char *)p + ah->size + MCHK_TRAIL; c++){ *c = MCHK_PATTERN; // fprintf(stderr, "%p=%02x\n", c, (unsigned char)*c); } ah->file = file; ah->line = line; ah->comment = NULL; MUTEX_LOCK(memory_list); add_to_list(memory_list, ah); MUTEX_UNLOCK(memory_list); MUTEX_LOCK(mbs); if (g_hash_table_lookup_extended(mbs, (char*)p, &orig_key, &value)){ int cnt=(vint)value; if (value!=0){ free_all_itrms(); fprintf(stderr, " alloc: already allocated(%d): %p:%d @ %s:%d\n", cnt, p, ah->size, ah->file, ah->line); force_dump(); } } g_hash_table_insert(mbs, p, (gpointer)1); MUTEX_UNLOCK(mbs); #endif #endif /* fprintf(stderr, "debuf_mem_alloc(%s:%d, %d)=%p\n", file, line, size, p);*/ return p; } void debug_mem_free(char *file, int line, void *p) { #ifdef LEAK_DEBUG void *xp; struct alloc_header *ah; #endif #ifdef LEAK_DEBUG_LIST gpointer orig_key, value; char *c; #endif if (p == DUMMY) return; if (!p) { errfile = file, errline = line, internal_error("mem_free(NULL)"); return; } #ifdef LEAK_DEBUG xp = p; p = (char *)p - L_D_S; ah = p; #ifdef LEAK_DEBUG_LIST for (c = (char *)xp - MCHK_LEAD; c != xp; c++) { if (*c == MCHK_PATTERN) continue; fprintf(stderr, " free: corrupted leading block %p:%d @ %s:%d ", xp, ah->size, ah->file, ah->line); for (c = (char *)xp - MCHK_LEAD; c != xp; c++) fprintf(stderr, " %02x", (unsigned char)*c); fprintf(stderr, "\n"); break; } for (c = (char *)xp + ah->size; c != (char *)xp + ah->size + MCHK_TRAIL; c++) { if (*c == MCHK_PATTERN) continue; fprintf(stderr, " free: corrupted trailing block %p:%d @ %s:%d ", xp, ah->size, ah->file, ah->line); for (c = (char *)xp - MCHK_LEAD; c != xp; c++) fprintf(stderr, " %02x", (unsigned char)*c); fprintf(stderr, "\n"); break; } MUTEX_LOCK(mbs); if (g_hash_table_lookup_extended(mbs, xp, &orig_key, &value)){ int cnt=(vint)value; if (cnt!=1){ MUTEX_UNLOCK(mbs); free_all_itrms(); fprintf(stderr, " free: usage count is %d: %p:%d @ %s:%d\n", cnt, xp, ah->size, ah->file, ah->line); force_dump(); } g_hash_table_remove(mbs, xp); g_hash_table_insert(mbs, xp, (gpointer)0); } MUTEX_UNLOCK(mbs); MUTEX_LOCK(memory_list); del_from_list(ah); MUTEX_UNLOCK(memory_list); if (ah->comment) free(ah->comment); #endif mem_amount -= ah->size; #endif /*fprintf(stderr, "debuf_mem_free(%s:%d)=%p\n", file, line, p);*/ xfree(p); } void *debug_mem_realloc(char *file, int line, void *p, size_t size) { #ifdef LEAK_DEBUG struct alloc_header *ah; #endif #ifdef LEAK_DEBUG_LIST gpointer orig_key, value; char *c; #endif if (p == DUMMY) return debug_mem_alloc(file, line, size); if (!p) { errfile = file, errline = line, internal_error("mem_realloc(NULL, %d)", size); return NULL; } if (!size) { debug_mem_free(file, line, p); return DUMMY; } #ifdef LEAK_DEBUG_LIST ah = (struct alloc_header*)((char*)p - L_D_S); for (c = (char *)p - MCHK_LEAD; c != p; c++) { if (*c == MCHK_PATTERN) continue; fprintf(stderr, " free: corrupted leading block %p:%d @ %s:%d ", p, ah->size, ah->file, ah->line); for (c = (char *)p - MCHK_LEAD; c != p; c++) fprintf(stderr, " %02x", (unsigned char)*c); fprintf(stderr, "\n"); break; } for (c = (char *)p + ah->size; c != (char *)p + ah->size + MCHK_TRAIL; c++) { if (*c == MCHK_PATTERN) continue; fprintf(stderr, " free: corrupted trailing block %p:%d @ %s:%d ", p, ah->size, ah->file, ah->line); for (c = (char *)p - MCHK_LEAD; c != p; c++) fprintf(stderr, " %02x", (unsigned char)*c); fprintf(stderr, "\n"); break; } MUTEX_LOCK(mbs); if (g_hash_table_lookup_extended(mbs, p, &orig_key, &value)){ int cnt=(vint)value; if (cnt!=1){ dbg("debug_mem_realloc: cnt=%d\n", cnt); MUTEX_UNLOCK(mbs); free_all_itrms(); fprintf(stderr, " realloc1: usage count is %d: %p @ %s:%d\n", cnt, p, file, line); force_dump(); } g_hash_table_remove(mbs, p); g_hash_table_insert(mbs, p, (gpointer)0); } MUTEX_UNLOCK(mbs); #endif if (!(p = xrealloc((char *)p - L_D_S, size + L_D_S + MCHK_TRAIL))) { error("ERROR: out of memory (realloc returned NULL)\n"); return NULL; } #ifdef LEAK_DEBUG ah = p; mem_amount += size - ah->size; ah->size = size; p = (char *)p + L_D_S; #ifdef LEAK_DEBUG_LIST // fprintf(stderr, "realloc(%d)=%p p=%p L_D_S=%d\n", size + MCHK_LEAD, ah, p, L_D_S); for (c = (char *)p - MCHK_LEAD; c != p; c++) { *c = MCHK_PATTERN; // fprintf(stderr, "%p=%02x\n", c, (unsigned char)*c); } for (c = (char *)p + ah->size; c != (char *)p + ah->size + MCHK_TRAIL; c++){ *c = MCHK_PATTERN; // fprintf(stderr, "%p=%02x\n", c, (unsigned char)*c); } ah->prev->next = ah; ah->next->prev = ah; MUTEX_LOCK(mbs); if (g_hash_table_lookup_extended(mbs, p, &orig_key, &value)){ int cnt=(vint)value; if (value!=0){ free_all_itrms(); fprintf(stderr, " realloc2: already allocated(%d): %p:%d @ %s:%d (allocated %s:%d)\n", cnt, (char *)ah + L_D_S, ah->size, file, line, ah->file, ah->line); force_dump(); } } g_hash_table_insert(mbs, p, (gpointer)1); MUTEX_UNLOCK(mbs); #endif #endif return p; } void set_mem_comment(void *p, char *c, int l) { #ifdef LEAK_DEBUG_LIST struct alloc_header *ah = (struct alloc_header *)((char *)p - L_D_S); if (ah->comment) free(ah->comment); if ((ah->comment = malloc(l + 1))) memcpy(ah->comment, c, l), ah->comment[l] = 0; #endif } void *debug_g_new0(char *file, int line, size_t len){ gchar *c; c=debug_mem_alloc(file, line, len); if (c==DUMMY) return NULL; memset(c, 0, len); return c; } void *debug_g_new(char *file, int line, size_t len){ gchar *c; c=debug_mem_alloc(file, line, len); if (c==DUMMY) return NULL; memset(c, 0, len); return c; } gchar *debug_g_strdup(char *file, int line, const gchar *str){ gchar *c; if (!str) return NULL; c=debug_mem_alloc(file, line, strlen(str)+1); if (c==DUMMY) return NULL; strcpy(c, str); return c; } gchar *debug_g_strndup(char *file, int line, gchar *str, int len){ gchar *c; int l; if (!str) return NULL; l=strlen(str); if (l>len) l=len; c=debug_mem_alloc(file, line, l+1); if (c==DUMMY) return NULL; strncpy(c, str, l); c[l]='\0'; return c; } #undef g_strdup_vprintf #undef g_free gchar *debug_g_strdup_printf(char *file, int line, gchar *fmt, ...){ va_list l; //int len; char *c,*d; va_start(l, fmt); /* len=g_printf_string_upper_bound(fmt, l); c=debug_mem_alloc(file, line, len); if (c==DUMMY) return NULL; g_vsprintf(c, fmt, l);*/ d = g_strdup_vprintf(fmt, l); c = debug_g_strdup(file, line, d); g_free(d); va_end(l); return c; } gchar *debug_g_strdup_vprintf(char *file, int line, gchar *fmt, va_list args){ // int len; char *c,*d; /* len=g_printf_string_upper_bound(fmt, args); c=debug_mem_alloc(file, line, len); if (c==DUMMY) return NULL; g_vsprintf(c, fmt, args);*/ d = g_strdup_vprintf(fmt, args); c = debug_g_strdup(file, line, d); g_free(d); return c; } gchar *debug_g_strconcat(char *file, int line, ...){ va_list l; int len; char *c,*d; char *s; va_start(l, line); len=0; while(1){ c=va_arg(l, char *); if (!c) break; len+=strlen(c); } va_end(l); s=debug_mem_alloc(file, line, len+1); if (s==DUMMY) return NULL; va_start(l, line); len=0; d=s; while(1){ c=va_arg(l, char *); if (!c) break; strcpy(d, c); d+=strlen(c); } va_end(l); return s; } #endif void sock_debug(int sock, char *m, ...){ va_list l; FILE *f; return; f = fopen("tucnak.sockdbg", "at"); if (!f) return; va_start(l, m); fprintf(f, "%5d: socket %3d ", getpid(), sock); vfprintf(f, m, l); fprintf(f,"\n"); va_end(l); fclose(f); } tucnak2-2.48/src/codepage.h0000644000175000017500000000040411567373656012467 00000000000000 /* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. This file is stolen from links */ #define N_CODEPAGES 25 tucnak2-2.48/src/zstring.c0000644000175000017500000001162311567373656012420 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #ifdef LEAK_DEBUG_LIST struct zstring *debug_zconcatesc(char *file, int line, char *s1, ...){ #else struct zstring *zconcatesc(char *s1, ...){ #endif va_list l; size_t len; char *d; char *s, *c; struct zstring *zs; va_start(l, s1); s = s1; len = 0; do { if (s != s1) len++; for (c = s; *c != '\0'; c++){ switch(*c){ case ';': case '\\': case '\r': case '\n': len += 2; break; default: len++; break; } } }while ((s = va_arg(l, char *)) != NULL); va_end(l); len++; #ifdef LEAK_DEBUG_LIST zs = debug_mem_alloc(file, line, sizeof(struct zstring)); zs->str = d = debug_mem_alloc(file, line, len); zs->file = file; zs->line = line; #else zs = mem_alloc(sizeof(struct zstring)); zs->str = d = mem_alloc(len); #endif va_start(l, s1); s = s1; len = 0; do { if (s != s1) *d++ = ';'; for (c = s; *c != '\0'; c++){ switch(*c){ case ';': *d++ = '\\'; *d++ = ';'; break; case '\\': *d++ = '\\'; *d++ = '\\'; break; case '\r': *d++ = '\\'; *d++ = 'r'; break; case '\n': *d++ = '\\'; *d++ = 'n'; break; default: *d++ = *c; break; } } }while ((s = va_arg(l, char *)) != NULL); va_end(l); *d = '\0'; return zs; } #ifdef LEAK_DEBUG_LIST struct zstring *debug_zstrdup(char *file, int line, const char *str){ #else struct zstring *zstrdup(const char *str){ #endif int len; struct zstring *zs; len = strlen(str); #ifdef LEAK_DEBUG_LIST zs = debug_mem_alloc(file, line, sizeof(struct zstring)); zs->str = debug_mem_alloc(file, line, len + 1); zs->file = file; zs->line = line; #else zs = mem_alloc(sizeof(struct zstring)); zs->str = mem_alloc(len + 1); #endif memcpy(zs->str, str, len + 1); return zs; } char *ztokenize(struct zstring *zstr, int first){ int backslash=0; int i; char c, *d, *buf; int len; if (first) zstr->tokenpos = 0; len = strlen(zstr->str + zstr->tokenpos) + zstr->tokenpos; if (zstr->tokenpos > len) return NULL; if (zstr->tokenpos < 0) return NULL; buf = d = zstr->str + zstr->tokenpos; for (i = zstr->tokenpos; i < len; i++){ c = zstr->str[i]; if (backslash){ backslash = 0; switch(c){ case '\\': case ';': break; case 'r': c = '\r'; break; case 'n': c = '\n'; break; default: /* error */ fprintf(stderr, "bad escape \\%c\n", c); break; } }else{ switch (c){ case '\\': backslash = 1; continue; case ';': zstr->tokenpos = i + 1; *d='\0'; return buf; default: break; } } *d++ = c; } zstr->tokenpos = -1; *d='\0'; return buf; } void zfree(struct zstring *zstr){ mem_free(zstr->str); zstr->str = NULL; mem_free(zstr); } int ztokens(struct zstring *zstr){ int backslash=0; int tokens=1; char *c; for (c = zstr->str; *c != '\0'; c++){ if (backslash){ backslash = 0; continue; } switch (*c){ case '\\': backslash = 1; break; case ';': tokens++; break; } } return tokens; } int zwrite(int fd, struct zstring *zs){ int ret; gchar *c; c = g_strconcat(zs->str, "\n", NULL); zfree(zs); ret = write(fd, c, strlen(c)); g_free(c); return ret; } #if 0 int main(){ char *c; zchar *z; int i; c = zconcatesc("aa", ";", "", NULL); printf("c='%s'\n", c); z = zstrdup(c); printf("z='%s'\n", z); i = 0; for (c = ztokenize(z, 1); c != NULL; c = ztokenize(z, 0)){ printf("%d='%s'\n", i, c); i++; } zfree(z); return 0; } #endif tucnak2-2.48/src/menu2.c0000644000175000017500000003471011577630615011740 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" /******************** MODES *********************************/ #define MAX_MODES 9 gint mode; char mode_str[EQSO_LEN]; void mode_func (cba_t cba){ int active; active=(int)GETCBA(cba, int_); if (active<0 || active>MAX_MODES) return; mode = active; safe_strncpy0(mode_str,mode_msg[mode],EQSO_LEN); /*safe_strncpy0(mode_str,_(CTEXT(T_QP0+qsop_method),term),MAX_STR_LEN);*/ redraw_later(); } int dlg_mode(struct dialog_data *dlg, struct dialog_item_data *di){ int i, sel; struct menu_item *mi; if (!(mi = new_menu(1))) return 0; for (i = 1; i <= MAX_MODES; i++) { add_to_menu(&mi, mode_msg[i], "", "", MENU_FUNC mode_func, (cba_t)i, 0); } sel = mode-1; if (sel < 0) sel = 0; if (sel>=MAX_MODES) sel=0; do_menu_selected(mi, (cba_t)mode, sel); return 0; } /******************** EDIT QSO *******************************/ char callsign[EQSO_LEN], rstr[EQSO_LEN], qsonrr[EQSO_LEN], exc[EQSO_LEN], locator[EQSO_LEN]; /*gint mode; char mode_str[EQSO_LEN]*/ char rsts[EQSO_LEN], qsonrs[EQSO_LEN]; char date_str[EQSO_LEN], time_str[EQSO_LEN], operator_[EQSO_LEN], remark[MAX_STR_LEN]; gint qerror,qsl; #define OEQSO_LEN 24 #define QRG_LEN 50 char ocallsign[OEQSO_LEN], orstr[OEQSO_LEN], oqsonrr[OEQSO_LEN], oexc[OEQSO_LEN], olocator[OEQSO_LEN]; char omode_str[OEQSO_LEN], orsts[OEQSO_LEN], oqsonrs[OEQSO_LEN]; char odate_str[OEQSO_LEN], otime_str[OEQSO_LEN], ooperator[OEQSO_LEN], oremark[MAX_STR_LEN], oqrg[QRG_LEN]; char oomode_str[OEQSO_LEN], oorstr[OEQSO_LEN], oorsts[OEQSO_LEN]; int pbandi=0; #define TIME_DELIM ":." void refresh_edit_qso(struct qso *q) { char *token_ptr, *h, *m; /* dbg("refresh_edit_qso\n");*/ dump_qso(q, "refresh_edit_qso before"); if ((strcmp(rstr,oorstr) || strcmp(rsts,oorsts)) && !strcmp(mode_str,oomode_str)){ if (mode == MOD_SSB_SSB || mode == MOD_CW_SSB || mode == MOD_SSB_CW || mode == MOD_CW_CW){ int s,r; /* CHANGE menu2.c refresh_edit_qso */ s=strlen(rsts); r=strlen(rstr); if (s==3 && r==3) mode=MOD_CW_CW; if (s==2 && r==2) mode=MOD_SSB_SSB; if (s==3 && r==2) mode=MOD_CW_SSB; if (s==2 && r==3) mode=MOD_SSB_CW; } } m = NULL; h = strtok_r(time_str, TIME_DELIM, &token_ptr); if (h) m = strtok_r(NULL, TIME_DELIM, &token_ptr); if (m){ sprintf(time_str, "%02d%02d", atoi(h)%24, atoi(m)%60); }else{ sprintf(time_str, "%02d%02d", atoi(time_str)/100, atoi(time_str)%100); } STORE_STR_FS (q,time_str); STORE_STR_FS_UC(q,operator_); STORE_STR_FS (q,date_str); STORE_STR_FS_UC(q,callsign); STORE_INT (q,mode); STORE_STR_FS_UC(q,rsts); STORE_STR_FS_UC(q,rstr); STORE_STR_FS (q,qsonrr); STORE_STR_FS_UC(q,exc); STORE_STR_FS_UC(q,locator); STORE_STR_FS (q,remark); q->error = qerror; q->qsl = qsl; q->stamp = time(NULL); g_hash_table_foreach(ctest->bystamp, foreach_source_qsort_by_stamp, NULL); g_index_array_qsort(ctest->allqsos, compare_date_time_qsonrs); compute_qrbqtf(q); dirty_band(aband); write_qso_to_swap(aband, q); replicate_qso(NULL, q); recalc_stats(aband); recalc_worked_skeds(aband); qrv_recalc_wkd(qrvdb); qrv_recalc_qrbqtf(qrvdb); qrv_recalc_wkd(qrvdb); /*check_autosave();*/ #ifdef HAVE_SDL maps_reload(); #endif chart_reload(); dump_qso(q, "refresh_edit_qso after"); dump_all_sources(ctest); } char *edit_qso_msg[] = { ocallsign, /* 0 */ orstr , oqsonrr , oexc , olocator , omode_str, /* 5 */ orsts , /*oqsonrs ,*/ odate_str, otime_str, ooperator, oremark , /* 10 */ /*oqrg, */ CTEXT(T_ERROR), CTEXT(T_QSL), "", /* OK */ /* 13 */ "", /* Cancel */ }; void edit_qso_fn(struct dialog_data *dlg) { struct terminal *term = dlg->win->term; int max = 0, min = 0; int w, rw; int y = -1; max_group_width(term, edit_qso_msg + 0 , dlg->items + 0, 1, &max); min_group_width(term, edit_qso_msg + 0 , dlg->items + 0, 1, &min); max_group_width(term, edit_qso_msg + 1 , dlg->items + 1, 1, &max); min_group_width(term, edit_qso_msg + 1 , dlg->items + 1, 1, &min); max_group_width(term, edit_qso_msg + 2 , dlg->items + 2, 1, &max); min_group_width(term, edit_qso_msg + 2 , dlg->items + 2, 1, &min); max_group_width(term, edit_qso_msg + 3 , dlg->items + 3, 1, &max); min_group_width(term, edit_qso_msg + 3 , dlg->items + 3, 1, &min); max_group_width(term, edit_qso_msg + 4 , dlg->items + 4, 1, &max); min_group_width(term, edit_qso_msg + 4 , dlg->items + 4, 1, &min); max_group_width(term, edit_qso_msg + 5 , dlg->items + 5, 1, &max); min_group_width(term, edit_qso_msg + 5 , dlg->items + 5, 1, &min); max_group_width(term, edit_qso_msg + 6 , dlg->items + 6, 1, &max); min_group_width(term, edit_qso_msg + 6 , dlg->items + 6, 1, &min); max_group_width(term, edit_qso_msg + 7 , dlg->items + 7, 1, &max); min_group_width(term, edit_qso_msg + 7 , dlg->items + 7, 1, &min); max_group_width(term, edit_qso_msg + 8 , dlg->items + 8, 1, &max); min_group_width(term, edit_qso_msg + 8 , dlg->items + 8, 1, &min); max_group_width(term, edit_qso_msg + 9 , dlg->items + 9, 1, &max); min_group_width(term, edit_qso_msg + 9 , dlg->items + 9, 1, &min); max_group_width(term, edit_qso_msg +10 , dlg->items +10, 1, &max); min_group_width(term, edit_qso_msg +10 , dlg->items +10, 1, &min); max_group_width(term, edit_qso_msg +11 , dlg->items +11, 1, &max); min_group_width(term, edit_qso_msg +11 , dlg->items +11, 1, &min); max_group_width(term, edit_qso_msg +12 , dlg->items +12, 1, &max); min_group_width(term, edit_qso_msg +12 , dlg->items +12, 1, &min); max_buttons_width(term, dlg->items +13, 2, &max); min_buttons_width(term, dlg->items +13, 2, &min); w = dlg->win->term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > dlg->win->term->x - 2 * DIALOG_LB) w = dlg->win->term->x - 2 * DIALOG_LB; if (w < 1) w = 1; rw = 0; y ++; dlg_format_group(NULL, term, edit_qso_msg + 0, dlg->items + 0, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, edit_qso_msg + 1, dlg->items + 1, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, edit_qso_msg + 2, dlg->items + 2, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, edit_qso_msg + 3, dlg->items + 3, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, edit_qso_msg + 4, dlg->items + 4, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, edit_qso_msg + 5, dlg->items + 5, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, edit_qso_msg + 6, dlg->items + 6, 1, 0, &y, w, &rw); dlg_format_text (NULL, term, oqsonrs, dlg->x+6, &y, w, &rw, COLOR_DIALOG_TEXT, 0); dlg_format_group(NULL, term, edit_qso_msg + 7, dlg->items + 7, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, edit_qso_msg + 8, dlg->items + 8, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, edit_qso_msg + 9, dlg->items + 9, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, edit_qso_msg +10, dlg->items +10, 1, 0, &y, w, &rw); dlg_format_text (NULL, term, oqrg, dlg->x +6, &y, w, &rw, COLOR_DIALOG_TEXT, 0); dlg_format_group(NULL, term, edit_qso_msg +11, dlg->items +11, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, edit_qso_msg +12, dlg->items +12, 1, 0, &y, w, &rw); y++; dlg_format_buttons(NULL, term, dlg->items +13, 2, 0, &y, w, &rw, AL_LEFT); w = rw; dlg->xw = w + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB; y++; dlg_format_group(term, term, edit_qso_msg + 0, dlg->items + 0, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, edit_qso_msg + 1, dlg->items + 1, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, edit_qso_msg + 2, dlg->items + 2, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, edit_qso_msg + 3, dlg->items + 3, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, edit_qso_msg + 4, dlg->items + 4, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, edit_qso_msg + 5, dlg->items + 5, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, edit_qso_msg + 6, dlg->items + 6, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_text (term, term, oqsonrs, dlg->x+6, &y, w, &rw, COLOR_DIALOG_TEXT, 0); dlg_format_group(term, term, edit_qso_msg + 7, dlg->items + 7, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, edit_qso_msg + 8, dlg->items + 8, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, edit_qso_msg + 9, dlg->items + 9, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, edit_qso_msg +10, dlg->items +10, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_text (term, term, oqrg, dlg->x +6, &y, w, &rw, COLOR_DIALOG_TEXT, 0); dlg_format_group(term, term, edit_qso_msg +11, dlg->items +11, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, edit_qso_msg +12, dlg->items +12, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); y++; dlg_format_buttons(term, term, dlg->items +13, 2, dlg->x + DIALOG_LB, &y, w, NULL, AL_LEFT); } void edit_qso(struct qso *qso) { struct dialog *d; int i, len; static char ss[102]; char s[100]; /* dbg("edit_qso\n");*/ if (!qso) return; dump_qso(qso, "edit_qso"); dump_all_sources(ctest); safe_strncpy0(callsign, qso->callsign, EQSO_LEN); uc(callsign); safe_strncpy0(rstr, qso->rstr, EQSO_LEN); safe_strncpy0(qsonrr, qso->qsonrr, EQSO_LEN); safe_strncpy0(exc, qso->exc, EQSO_LEN); safe_strncpy0(locator, qso->locator, EQSO_LEN); uc(locator); mode=qso->mode; safe_strncpy0(mode_str, mode_msg[mode], EQSO_LEN); safe_strncpy0(rsts, qso->rsts, EQSO_LEN); safe_strncpy0(qsonrs, qso->qsonrs, EQSO_LEN); safe_strncpy0(date_str, qso->date_str, EQSO_LEN); safe_strncpy0(time_str, qso->time_str, EQSO_LEN); safe_strncpy0(operator_, qso->operator_, EQSO_LEN); safe_strncpy0(remark, qso->remark, MAX_STR_LEN); qerror = qso->error; qsl = qso->qsl; safe_strncpy0(oomode_str, mode_msg[mode],EQSO_LEN); safe_strncpy0(oorstr, qso->rstr, EQSO_LEN); safe_strncpy0(oorsts, qso->rsts, EQSO_LEN); g_snprintf(ocallsign, OEQSO_LEN, "%s %-15s", VTEXT(T_CALLSIGN2), callsign); g_snprintf(orstr , OEQSO_LEN, "%s %-15s", VTEXT(T_RSTR) , rstr ); g_snprintf(oqsonrr , OEQSO_LEN, "%s %-15s", VTEXT(T_QSONRR) , qsonrr ); g_snprintf(oexc , OEQSO_LEN, "%s %-15s", VTEXT(T_OPTEXCH) , exc ); g_snprintf(olocator , OEQSO_LEN, "%s %-15s", VTEXT(T_WWL) , locator ); g_snprintf(omode_str, OEQSO_LEN, "%s %-15s", VTEXT(T_MODE) , mode_str); g_snprintf(orsts , OEQSO_LEN, "%s %-15s", VTEXT(T_RSTS) , rsts ); g_snprintf(oqsonrs , OEQSO_LEN, "%s %-15s", VTEXT(T_QSONRS) , qsonrs ); g_snprintf(odate_str, OEQSO_LEN, "%s %-15s", VTEXT(T_DATE) , date_str); g_snprintf(otime_str, OEQSO_LEN, "%s %-15s", VTEXT(T_TIME) , time_str); g_snprintf(ooperator, OEQSO_LEN, "%s %-15s", VTEXT(T_OPERATOR) , operator_); g_snprintf(oremark , OEQSO_LEN, "%s %-15s", VTEXT(T_REMARK) , remark ); sprintf(s,"%0.0f", qso->qrg); len=strlen(s); if (len>3) { memmove(s+len-2, s+len-3, 4); s[len-3]='.'; if (len>6){ memmove(s+len-5, s+len-6, 8); s[len-6]='.'; } } g_snprintf(oqrg, QRG_LEN, "%s %s Hz", VTEXT(T_QRG), s); if (!(d = (struct dialog*)mem_alloc(sizeof(struct dialog) + 55 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 55 * sizeof(struct dialog_item)); /*d->title = "Edit QSO";*/ g_snprintf(ss,100,VTEXT(T_EDIT_QSO_CD), upcase(aband->bandchar), atoi(qso->qsonrs)); d->title = ss; d->fn = edit_qso_fn; d->refresh = (void (*)(void *))refresh_edit_qso; d->refresh_data = (void *) qso; d->items[i=0].type = D_FIELD; /* 0 */ d->items[i].dlen = EQSO_LEN; d->items[i].data = callsign; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data =rstr; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = qsonrr; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = exc; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = locator; /* 5 */ d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_mode; d->items[i].text = mode_str; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rsts; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = date_str; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = time_str; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = operator_; d->items[++i].type = D_FIELD; /* 10 */ d->items[i].dlen = MAX_STR_LEN; d->items[i].maxl = EQSO_LEN; d->items[i].data = remark; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&qerror; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&qsl; d->items[++i].type = D_BUTTON; /* 13 */ d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; /* 14 */ d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } tucnak2-2.48/src/inpout.c0000644000175000017500000000623511567373656012241 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #ifdef __CYGWIN__ int parport_init(struct cwdaemon *cwda){ cwda->hInpOut = LoadLibrary("inpout32.dll"); if (!cwda->hInpOut) { log_addf("Can't load inpout32.dll, error %d", GetLastError()); return -1; } cwda->inp32 = (void*)GetProcAddress(cwda->hInpOut, "Inp32"); if (!cwda->inp32){ log_addf("Can't get entry point for Inp32, error %d", GetLastError()); FreeLibrary(cwda->hInpOut); cwda->hInpOut = NULL; return -2; } cwda->out32 = (void*)GetProcAddress(cwda->hInpOut, "Out32"); if (!cwda->inp32){ log_addf("Can't get entry point for Out32, error %d", GetLastError()); FreeLibrary(cwda->hInpOut); cwda->hInpOut = NULL; return -3; } cwda->hInpOut_mutex = g_mutex_new(); cwda->baseport = 0x378; cwda->ctrl = cwda->inp32(cwda->baseport+2); parport_reset(cwda); return 0; } int parport_free(struct cwdaemon *cwda){ if (!cwda || !cwda->hInpOut) return 0; MUTEX_LOCK(cwda->hInpOut); cwda->ctrl &= 0xf0; cwda->ctrl |= 0x0c; /* /CW=L=1 PTT=L=0 /SSBW=L=1 /ENABLE=H=0 */ cwda->out32(cwda->baseport+2, cwda->ctrl); MUTEX_UNLOCK(cwda->hInpOut); FreeLibrary(cwda->hInpOut); cwda->hInpOut = NULL; g_mutex_free(cwda->hInpOut_mutex); return 0; } int parport_reset(struct cwdaemon *cwda){ if (!cwda || !cwda->hInpOut) return 0; MUTEX_LOCK(cwda->hInpOut); cwda->ctrl &= 0xf0; cwda->ctrl |= 0x0d; /* /CW=L=1 PTT=L=0 /SSBW=L=1 /ENABLE=L=1 */ cwda->out32(cwda->baseport+2, cwda->ctrl); MUTEX_UNLOCK(cwda->hInpOut); return 0; } int parport_cw(struct cwdaemon *cwda, int onoff){ if (!cwda || !cwda->hInpOut) return 1; MUTEX_LOCK(cwda->hInpOut); if (onoff) cwda->ctrl &= ~0x08; /* /CW=H=0 */ else cwda->ctrl |= 0x08; /* /CW=L=1 */ cwda->out32(cwda->baseport+2, cwda->ctrl); MUTEX_UNLOCK(cwda->hInpOut); return 0; } int parport_ptt(struct cwdaemon *cwda, int onoff){ if (!cwda || !cwda->hInpOut) return 1; MUTEX_LOCK(cwda->hInpOut); if (onoff) cwda->ctrl |= 0x04; /* PTT=H=1 */ else cwda->ctrl &= ~0x04; /* PTT=L=0 */ cwda->out32(cwda->baseport+2, cwda->ctrl); MUTEX_UNLOCK(cwda->hInpOut); return 0; } int parport_ssbway(struct cwdaemon *cwda, int onoff){ if (!cwda || !cwda->hInpOut) return 1; MUTEX_LOCK(cwda->hInpOut); if (onoff) cwda->ctrl &= ~0x02; /* /SSBW=H=0 */ else cwda->ctrl |= 0x02; /* /SSBW=L=1 */ cwda->out32(cwda->baseport+2, cwda->ctrl); MUTEX_UNLOCK(cwda->hInpOut); return 0; } int parport_band(struct cwdaemon *cwda, int bandsw){ if (!cwda || !cwda->hInpOut) return 1; cwda->data &= ~0xe1; if (bandsw & 0x01) cwda->data |= 0x01; if (bandsw & 0x02) cwda->data |= 0x20; if (bandsw & 0x04) cwda->data |= 0x40; if (bandsw & 0x08) cwda->data |= 0x80; cwda->out32(cwda->baseport, cwda->data); return 0; } void parport_info(){ printf("\n parport_info:\n"); printf("Using inpout32.dll\n"); printf("\n"); } #endif tucnak2-2.48/src/dsp.c0000644000175000017500000000644611645050534011475 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #ifdef HAVE_SNDFILE struct dsp *dsp; struct dsp *init_dsp(void){ struct dsp *dsp; dsp = g_new0(struct dsp, 1); dsp->type = cfg->ssbd_type; #ifdef HAVE_OSS dsp->fd = -1; #endif CONDGFREE(dsp->source); dsp->set_format = dummy_dsp_set_format; dsp->open = dummy_dsp_open; dsp->close2 = dummy_dsp_close; dsp->write = dummy_dsp_write; dsp->read = dummy_dsp_read; dsp->reset = dummy_dsp_reset; dsp->sync = dummy_dsp_sync; dsp->set_source = dummy_dsp_set_source; dsp->set_plevel = dummy_dsp_set_plevel; again:; switch(dsp->type){ case DSPT_OSS: #ifdef HAVE_OSS dsp->set_format = oss_set_format; dsp->open = oss_open; dsp->close2 = oss_close; dsp->write = oss_write; dsp->read = oss_read; dsp->reset = oss_reset; dsp->sync = oss_sync; dsp->set_source = oss_set_source; dsp->set_plevel = oss_set_plevel; if (cfg->ssbd_oss_src){ dsp->source=g_strdup(cfg->ssbd_oss_src); }else{ dsp->source=g_strdup(oss_recsrc2source(cfg->ssbd_recsrc)); } #else log_addf("OSS support not compiled in"); dbg("OSS support not compiled in"); #endif break; case DSPT_ALSA: #ifdef HAVE_ALSA dsp->set_format = alsa_set_format; dsp->open = alsa_open; dsp->close2 = alsa_close; dsp->write = alsa_write; dsp->read = alsa_read; dsp->reset = alsa_reset; dsp->sync = alsa_sync; dsp->set_source = alsa_set_source; dsp->set_plevel = alsa_set_plevel; dsp->source = g_strdup(cfg->ssbd_alsa_src); dsp->pcm_opened = 0; #else log_addf("Alsa support not compiled in"); dbg("Alsa support not compiled in"); #endif break; /*case DSPT_SSBD:*/ default: dsp->type = DSPT_ALSA; // for compatibility with tucnak3 goto again; //internal_("bad dsp->type"); break; } return dsp; } void free_dsp(struct dsp *dsp){ if (!dsp) return; dsp->close2(dsp); #ifdef HAVE_OSS CONDGFREE(dsp->filename); #endif #ifdef HAVE_ALSA #endif CONDGFREE(dsp->name); CONDGFREE(dsp->source); g_free(dsp); } int dummy_dsp_set_format(struct dsp *dsp, SF_INFO *sfinfo){ return 0; } int dummy_dsp_open(struct dsp *dsp, int rec){ return 0; } int dummy_dsp_close(struct dsp *dsp){ return 0; } int dummy_dsp_write(struct dsp *dsp, void *data, int len){ return 0; } int dummy_dsp_read(struct dsp *dsp, void *data, int len){ return 0; } int dummy_dsp_reset(struct dsp *dsp){ return 0; } int dummy_dsp_sync(struct dsp *dsp){ return 0; } int dummy_dsp_set_source(struct dsp *dsp){ return 0; } int dummy_dsp_set_plevel(struct dsp *dsp){ return 0; } #endif tucnak2-2.48/src/regex.c0000644000175000017500000000576211567373656012041 00000000000000/* Extended regular expression matching and search library. Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ #if defined(_MSC_VER) || defined(__MINGW32__) #ifdef HAVE_CONFIG_H #include "../config.h" #endif #define strcasecmp _stricmp /* Make sure noone compiles this code with a C++ compiler. */ /*#ifdef __cplusplus # error "This is C code, use a C compiler" #endif*/ #ifdef _LIBC /* We have to keep the namespace clean. */ # define regfree(preg) __regfree (preg) # define regexec(pr, st, nm, pm, ef) __regexec (pr, st, nm, pm, ef) # define regcomp(preg, pattern, cflags) __regcomp (preg, pattern, cflags) # define regerror(errcode, preg, errbuf, errbuf_size) \ __regerror(errcode, preg, errbuf, errbuf_size) # define re_set_registers(bu, re, nu, st, en) \ __re_set_registers (bu, re, nu, st, en) # define re_match_2(bufp, string1, size1, string2, size2, pos, regs, stop) \ __re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop) # define re_match(bufp, string, size, pos, regs) \ __re_match (bufp, string, size, pos, regs) # define re_search(bufp, string, size, startpos, range, regs) \ __re_search (bufp, string, size, startpos, range, regs) # define re_compile_pattern(pattern, length, bufp) \ __re_compile_pattern (pattern, length, bufp) # define re_set_syntax(syntax) __re_set_syntax (syntax) # define re_search_2(bufp, st1, s1, st2, s2, startpos, range, regs, stop) \ __re_search_2 (bufp, st1, s1, st2, s2, startpos, range, regs, stop) # define re_compile_fastmap(bufp) __re_compile_fastmap (bufp) # include "../locale/localeinfo.h" #endif /* On some systems, limits.h sets RE_DUP_MAX to a lower value than GNU regex allows. Include it before , which correctly #undefs RE_DUP_MAX and sets it to the right value. */ #include #include "regex_.h" #include "regex_internal.h" #include "regex_internal.c" #include "regcomp.c" #include "regexec.c" /* Binary backward compatibility. */ #if _LIBC # include # if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3) link_warning (re_max_failures, "the 're_max_failures' variable is obsolete and will go away.") int re_max_failures = 2000; # endif #endif #endif /* unix */ tucnak2-2.48/src/regex_internal.h0000644000175000017500000005216411567373656013740 00000000000000/* Extended regular expression matching and search library. Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ #ifndef _REGEX_INTERNAL_H #define _REGEX_INTERNAL_H 1 #include #include #include #include #include #if defined HAVE_LANGINFO_H || defined HAVE_LANGINFO_CODESET || defined _LIBC # include #endif #if defined HAVE_LOCALE_H || defined _LIBC # include #endif #if defined HAVE_WCHAR_H || defined _LIBC # include #endif /* HAVE_WCHAR_H || _LIBC */ #if defined HAVE_WCTYPE_H || defined _LIBC # include #endif /* HAVE_WCTYPE_H || _LIBC */ #if defined HAVE_STDBOOL_H || defined _LIBC # include #endif /* HAVE_STDBOOL_H || _LIBC */ #if defined HAVE_STDINT_H || defined _LIBC # include #endif /* HAVE_STDINT_H || _LIBC */ #if defined _LIBC # include #else # define __libc_lock_define(CLASS,NAME) # define __libc_lock_init(NAME) do { } while (0) # define __libc_lock_lock(NAME) do { } while (0) # define __libc_lock_unlock(NAME) do { } while (0) #endif /* In case that the system doesn't have isblank(). */ #if !defined _LIBC && !defined HAVE_ISBLANK && !defined isblank # define isblank(ch) ((ch) == ' ' || (ch) == '\t') #endif #ifdef _LIBC # ifndef _RE_DEFINE_LOCALE_FUNCTIONS # define _RE_DEFINE_LOCALE_FUNCTIONS 1 # include # include # include # endif #endif /* This is for other GNU distributions with internationalized messages. */ #if (HAVE_LIBINTL_H && ENABLE_NLS) || defined _LIBC # include # ifdef _LIBC # undef gettext # define gettext(msgid) \ INTUSE(__dcgettext) (_libc_intl_domainname, msgid, LC_MESSAGES) # endif #else # define gettext(msgid) (msgid) #endif #ifndef gettext_noop /* This define is so xgettext can find the internationalizable strings. */ # define gettext_noop(String) String #endif /* For loser systems without the definition. */ #ifndef SIZE_MAX # define SIZE_MAX ((size_t) -1) #endif #if (defined MB_CUR_MAX && HAVE_LOCALE_H && HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_WCRTOMB && HAVE_MBRTOWC && HAVE_WCSCOLL) || _LIBC # define RE_ENABLE_I18N #endif #if __GNUC__ >= 3 # define BE(expr, val) __builtin_expect (expr, val) #else # define BE(expr, val) (expr) # define inline #endif /* Number of single byte character. */ #define SBC_MAX 256 #define COLL_ELEM_LEN_MAX 8 /* The character which represents newline. */ #define NEWLINE_CHAR '\n' #define WIDE_NEWLINE_CHAR L'\n' /* Rename to standard API for using out of glibc. */ #ifndef _LIBC # define __wctype wctype # define __iswctype iswctype # define __btowc btowc # define __mempcpy mempcpy # define __wcrtomb wcrtomb # define __regfree regfree # define attribute_hidden #endif /* not _LIBC */ #ifdef __GNUC__ # define __attribute(arg) __attribute__ (arg) #else # define __attribute(arg) #endif extern const char __re_error_msgid[] attribute_hidden; extern const size_t __re_error_msgid_idx[] attribute_hidden; /* An integer used to represent a set of bits. It must be unsigned, and must be at least as wide as unsigned int. */ typedef unsigned long int bitset_word_t; /* All bits set in a bitset_word_t. */ #define BITSET_WORD_MAX ULONG_MAX /* Number of bits in a bitset_word_t. */ #define BITSET_WORD_BITS (sizeof (bitset_word_t) * CHAR_BIT) /* Number of bitset_word_t in a bit_set. */ #define BITSET_WORDS (SBC_MAX / BITSET_WORD_BITS) typedef bitset_word_t bitset_t[BITSET_WORDS]; typedef bitset_word_t *re_bitset_ptr_t; typedef const bitset_word_t *re_const_bitset_ptr_t; #define bitset_set(set,i) \ (set[i / BITSET_WORD_BITS] |= (bitset_word_t) 1 << i % BITSET_WORD_BITS) #define bitset_clear(set,i) \ (set[i / BITSET_WORD_BITS] &= ~((bitset_word_t) 1 << i % BITSET_WORD_BITS)) #define bitset_contain(set,i) \ (set[i / BITSET_WORD_BITS] & ((bitset_word_t) 1 << i % BITSET_WORD_BITS)) #define bitset_empty(set) memset (set, '\0', sizeof (bitset_t)) #define bitset_set_all(set) memset (set, '\xff', sizeof (bitset_t)) #define bitset_copy(dest,src) memcpy (dest, src, sizeof (bitset_t)) #define PREV_WORD_CONSTRAINT 0x0001 #define PREV_NOTWORD_CONSTRAINT 0x0002 #define NEXT_WORD_CONSTRAINT 0x0004 #define NEXT_NOTWORD_CONSTRAINT 0x0008 #define PREV_NEWLINE_CONSTRAINT 0x0010 #define NEXT_NEWLINE_CONSTRAINT 0x0020 #define PREV_BEGBUF_CONSTRAINT 0x0040 #define NEXT_ENDBUF_CONSTRAINT 0x0080 #define WORD_DELIM_CONSTRAINT 0x0100 #define NOT_WORD_DELIM_CONSTRAINT 0x0200 typedef enum { INSIDE_WORD = PREV_WORD_CONSTRAINT | NEXT_WORD_CONSTRAINT, WORD_FIRST = PREV_NOTWORD_CONSTRAINT | NEXT_WORD_CONSTRAINT, WORD_LAST = PREV_WORD_CONSTRAINT | NEXT_NOTWORD_CONSTRAINT, INSIDE_NOTWORD = PREV_NOTWORD_CONSTRAINT | NEXT_NOTWORD_CONSTRAINT, LINE_FIRST = PREV_NEWLINE_CONSTRAINT, LINE_LAST = NEXT_NEWLINE_CONSTRAINT, BUF_FIRST = PREV_BEGBUF_CONSTRAINT, BUF_LAST = NEXT_ENDBUF_CONSTRAINT, WORD_DELIM = WORD_DELIM_CONSTRAINT, NOT_WORD_DELIM = NOT_WORD_DELIM_CONSTRAINT } re_context_type; typedef struct { int alloc; int nelem; int *elems; } re_node_set; typedef enum { NON_TYPE = 0, /* Node type, These are used by token, node, tree. */ CHARACTER = 1, END_OF_RE = 2, SIMPLE_BRACKET = 3, OP_BACK_REF = 4, OP_PERIOD = 5, #ifdef RE_ENABLE_I18N COMPLEX_BRACKET = 6, OP_UTF8_PERIOD = 7, #endif /* RE_ENABLE_I18N */ /* We define EPSILON_BIT as a macro so that OP_OPEN_SUBEXP is used when the debugger shows values of this enum type. */ #define EPSILON_BIT 8 OP_OPEN_SUBEXP = EPSILON_BIT | 0, OP_CLOSE_SUBEXP = EPSILON_BIT | 1, OP_ALT = EPSILON_BIT | 2, OP_DUP_ASTERISK = EPSILON_BIT | 3, ANCHOR = EPSILON_BIT | 4, /* Tree type, these are used only by tree. */ CONCAT = 16, SUBEXP = 17, /* Token type, these are used only by token. */ OP_DUP_PLUS = 18, OP_DUP_QUESTION, OP_OPEN_BRACKET, OP_CLOSE_BRACKET, OP_CHARSET_RANGE, OP_OPEN_DUP_NUM, OP_CLOSE_DUP_NUM, OP_NON_MATCH_LIST, OP_OPEN_COLL_ELEM, OP_CLOSE_COLL_ELEM, OP_OPEN_EQUIV_CLASS, OP_CLOSE_EQUIV_CLASS, OP_OPEN_CHAR_CLASS, OP_CLOSE_CHAR_CLASS, OP_WORD, OP_NOTWORD, OP_SPACE, OP_NOTSPACE, BACK_SLASH } re_token_type_t; #ifdef RE_ENABLE_I18N typedef struct { /* Multibyte characters. */ wchar_t *mbchars; /* Collating symbols. */ # ifdef _LIBC int32_t *coll_syms; # endif /* Equivalence classes. */ # ifdef _LIBC int32_t *equiv_classes; # endif /* Range expressions. */ # ifdef _LIBC uint32_t *range_starts; uint32_t *range_ends; # else /* not _LIBC */ wchar_t *range_starts; wchar_t *range_ends; # endif /* not _LIBC */ /* Character classes. */ wctype_t *char_classes; /* If this character set is the non-matching list. */ unsigned int non_match : 1; /* # of multibyte characters. */ int nmbchars; /* # of collating symbols. */ int ncoll_syms; /* # of equivalence classes. */ int nequiv_classes; /* # of range expressions. */ int nranges; /* # of character classes. */ int nchar_classes; } re_charset_t; #endif /* RE_ENABLE_I18N */ typedef struct { union { unsigned char c; /* for CHARACTER */ re_bitset_ptr_t sbcset; /* for SIMPLE_BRACKET */ #ifdef RE_ENABLE_I18N re_charset_t *mbcset; /* for COMPLEX_BRACKET */ #endif /* RE_ENABLE_I18N */ int idx; /* for BACK_REF */ re_context_type ctx_type; /* for ANCHOR */ } opr; #if __GNUC__ >= 2 re_token_type_t type : 8; #else re_token_type_t type; #endif unsigned int constraint : 10; /* context constraint */ unsigned int duplicated : 1; unsigned int opt_subexp : 1; #ifdef RE_ENABLE_I18N unsigned int accept_mb : 1; /* These 2 bits can be moved into the union if needed (e.g. if running out of bits; move opr.c to opr.c.c and move the flags to opr.c.flags). */ unsigned int mb_partial : 1; #endif unsigned int word_char : 1; } re_token_t; #define IS_EPSILON_NODE(type) ((type) & EPSILON_BIT) struct re_string_t { /* Indicate the raw buffer which is the original string passed as an argument of regexec(), re_search(), etc.. */ const unsigned char *raw_mbs; /* Store the multibyte string. In case of "case insensitive mode" like REG_ICASE, upper cases of the string are stored, otherwise MBS points the same address that RAW_MBS points. */ unsigned char *mbs; #ifdef RE_ENABLE_I18N /* Store the wide character string which is corresponding to MBS. */ wint_t *wcs; int *offsets; mbstate_t cur_state; #endif /* Index in RAW_MBS. Each character mbs[i] corresponds to raw_mbs[raw_mbs_idx + i]. */ int raw_mbs_idx; /* The length of the valid characters in the buffers. */ int valid_len; /* The corresponding number of bytes in raw_mbs array. */ int valid_raw_len; /* The length of the buffers MBS and WCS. */ int bufs_len; /* The index in MBS, which is updated by re_string_fetch_byte. */ int cur_idx; /* length of RAW_MBS array. */ int raw_len; /* This is RAW_LEN - RAW_MBS_IDX + VALID_LEN - VALID_RAW_LEN. */ int len; /* End of the buffer may be shorter than its length in the cases such as re_match_2, re_search_2. Then, we use STOP for end of the buffer instead of LEN. */ int raw_stop; /* This is RAW_STOP - RAW_MBS_IDX adjusted through OFFSETS. */ int stop; /* The context of mbs[0]. We store the context independently, since the context of mbs[0] may be different from raw_mbs[0], which is the beginning of the input string. */ unsigned int tip_context; /* The translation passed as a part of an argument of re_compile_pattern. */ RE_TRANSLATE_TYPE trans; /* Copy of re_dfa_t's word_char. */ re_const_bitset_ptr_t word_char; /* 1 if REG_ICASE. */ unsigned char icase; unsigned char is_utf8; unsigned char map_notascii; unsigned char mbs_allocated; unsigned char offsets_needed; unsigned char newline_anchor; unsigned char word_ops_used; int mb_cur_max; }; typedef struct re_string_t re_string_t; struct re_dfa_t; typedef struct re_dfa_t re_dfa_t; #ifndef _LIBC # ifdef __i386__ # define internal_function __attribute ((regparm (3), stdcall)) # else # define internal_function # endif #endif #ifndef NOT_IN_libc static reg_errcode_t re_string_realloc_buffers (re_string_t *pstr, int new_buf_len) internal_function; # ifdef RE_ENABLE_I18N static void build_wcs_buffer (re_string_t *pstr) internal_function; static int build_wcs_upper_buffer (re_string_t *pstr) internal_function; # endif /* RE_ENABLE_I18N */ static void build_upper_buffer (re_string_t *pstr) internal_function; static void re_string_translate_buffer (re_string_t *pstr) internal_function; static unsigned int re_string_context_at (const re_string_t *input, int idx, int eflags) internal_function __attribute ((pure)); #endif #define re_string_peek_byte(pstr, offset) \ ((pstr)->mbs[(pstr)->cur_idx + offset]) #define re_string_fetch_byte(pstr) \ ((pstr)->mbs[(pstr)->cur_idx++]) #define re_string_first_byte(pstr, idx) \ ((idx) == (pstr)->valid_len || (pstr)->wcs[idx] != WEOF) #define re_string_is_single_byte_char(pstr, idx) \ ((pstr)->wcs[idx] != WEOF && ((pstr)->valid_len == (idx) + 1 \ || (pstr)->wcs[(idx) + 1] != WEOF)) #define re_string_eoi(pstr) ((pstr)->stop <= (pstr)->cur_idx) #define re_string_cur_idx(pstr) ((pstr)->cur_idx) #define re_string_get_buffer(pstr) ((pstr)->mbs) #define re_string_length(pstr) ((pstr)->len) #define re_string_byte_at(pstr,idx) ((pstr)->mbs[idx]) #define re_string_skip_bytes(pstr,idx) ((pstr)->cur_idx += (idx)) #define re_string_set_index(pstr,idx) ((pstr)->cur_idx = (idx)) //#include #ifndef _LIBC # if HAVE_ALLOCA /* The OS usually guarantees only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely allocate anything larger than 4096 bytes. Also care for the possibility of a few compiler-allocated temporary stack slots. */ # define __libc_use_alloca(n) ((n) < 4032) # else /* alloca is implemented with malloc, so just use malloc. */ # define __libc_use_alloca(n) 0 # endif #endif #define re_malloc(t,n) ((t *) malloc ((n) * sizeof (t))) #define re_realloc(p,t,n) ((t *) realloc (p, (n) * sizeof (t))) #define re_free(p) free (p) struct bin_tree_t { struct bin_tree_t *parent; struct bin_tree_t *left; struct bin_tree_t *right; struct bin_tree_t *first; struct bin_tree_t *next; re_token_t token; /* `node_idx' is the index in dfa->nodes, if `type' == 0. Otherwise `type' indicate the type of this node. */ int node_idx; }; typedef struct bin_tree_t bin_tree_t; #define BIN_TREE_STORAGE_SIZE \ ((1024 - sizeof (void *)) / sizeof (bin_tree_t)) struct bin_tree_storage_t { struct bin_tree_storage_t *next; bin_tree_t data[BIN_TREE_STORAGE_SIZE]; }; typedef struct bin_tree_storage_t bin_tree_storage_t; #define CONTEXT_WORD 1 #define CONTEXT_NEWLINE (CONTEXT_WORD << 1) #define CONTEXT_BEGBUF (CONTEXT_NEWLINE << 1) #define CONTEXT_ENDBUF (CONTEXT_BEGBUF << 1) #define IS_WORD_CONTEXT(c) ((c) & CONTEXT_WORD) #define IS_NEWLINE_CONTEXT(c) ((c) & CONTEXT_NEWLINE) #define IS_BEGBUF_CONTEXT(c) ((c) & CONTEXT_BEGBUF) #define IS_ENDBUF_CONTEXT(c) ((c) & CONTEXT_ENDBUF) #define IS_ORDINARY_CONTEXT(c) ((c) == 0) #define IS_WORD_CHAR(ch) (isalnum (ch) || (ch) == '_') #define IS_NEWLINE(ch) ((ch) == NEWLINE_CHAR) #define IS_WIDE_WORD_CHAR(ch) (iswalnum (ch) || (ch) == L'_') #define IS_WIDE_NEWLINE(ch) ((ch) == WIDE_NEWLINE_CHAR) #define NOT_SATISFY_PREV_CONSTRAINT(constraint,context) \ ((((constraint) & PREV_WORD_CONSTRAINT) && !IS_WORD_CONTEXT (context)) \ || ((constraint & PREV_NOTWORD_CONSTRAINT) && IS_WORD_CONTEXT (context)) \ || ((constraint & PREV_NEWLINE_CONSTRAINT) && !IS_NEWLINE_CONTEXT (context))\ || ((constraint & PREV_BEGBUF_CONSTRAINT) && !IS_BEGBUF_CONTEXT (context))) #define NOT_SATISFY_NEXT_CONSTRAINT(constraint,context) \ ((((constraint) & NEXT_WORD_CONSTRAINT) && !IS_WORD_CONTEXT (context)) \ || (((constraint) & NEXT_NOTWORD_CONSTRAINT) && IS_WORD_CONTEXT (context)) \ || (((constraint) & NEXT_NEWLINE_CONSTRAINT) && !IS_NEWLINE_CONTEXT (context)) \ || (((constraint) & NEXT_ENDBUF_CONSTRAINT) && !IS_ENDBUF_CONTEXT (context))) struct re_dfastate_t { unsigned int hash; re_node_set nodes; re_node_set non_eps_nodes; re_node_set inveclosure; re_node_set *entrance_nodes; struct re_dfastate_t **trtable, **word_trtable; unsigned int context : 4; unsigned int halt : 1; /* If this state can accept `multi byte'. Note that we refer to multibyte characters, and multi character collating elements as `multi byte'. */ unsigned int accept_mb : 1; /* If this state has backreference node(s). */ unsigned int has_backref : 1; unsigned int has_constraint : 1; }; typedef struct re_dfastate_t re_dfastate_t; struct re_state_table_entry { int num; int alloc; re_dfastate_t **array; }; /* Array type used in re_sub_match_last_t and re_sub_match_top_t. */ typedef struct { int next_idx; int alloc; re_dfastate_t **array; } state_array_t; /* Store information about the node NODE whose type is OP_CLOSE_SUBEXP. */ typedef struct { int node; int str_idx; /* The position NODE match at. */ state_array_t path; } re_sub_match_last_t; /* Store information about the node NODE whose type is OP_OPEN_SUBEXP. And information about the node, whose type is OP_CLOSE_SUBEXP, corresponding to NODE is stored in LASTS. */ typedef struct { int str_idx; int node; state_array_t *path; int alasts; /* Allocation size of LASTS. */ int nlasts; /* The number of LASTS. */ re_sub_match_last_t **lasts; } re_sub_match_top_t; struct re_backref_cache_entry { int node; int str_idx; int subexp_from; int subexp_to; char more; char unused; unsigned short int eps_reachable_subexps_map; }; typedef struct { /* The string object corresponding to the input string. */ re_string_t input; #if defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) const re_dfa_t *const dfa; #else const re_dfa_t *dfa; #endif /* EFLAGS of the argument of regexec. */ int eflags; /* Where the matching ends. */ int match_last; int last_node; /* The state log used by the matcher. */ re_dfastate_t **state_log; int state_log_top; /* Back reference cache. */ int nbkref_ents; int abkref_ents; struct re_backref_cache_entry *bkref_ents; int max_mb_elem_len; int nsub_tops; int asub_tops; re_sub_match_top_t **sub_tops; } re_match_context_t; typedef struct { re_dfastate_t **sifted_states; re_dfastate_t **limited_states; int last_node; int last_str_idx; re_node_set limits; } re_sift_context_t; struct re_fail_stack_ent_t { int idx; int node; regmatch_t *regs; re_node_set eps_via_nodes; }; struct re_fail_stack_t { int num; int alloc; struct re_fail_stack_ent_t *stack; }; struct re_dfa_t { re_token_t *nodes; size_t nodes_alloc; size_t nodes_len; int *nexts; int *org_indices; re_node_set *edests; re_node_set *eclosures; re_node_set *inveclosures; struct re_state_table_entry *state_table; re_dfastate_t *init_state; re_dfastate_t *init_state_word; re_dfastate_t *init_state_nl; re_dfastate_t *init_state_begbuf; bin_tree_t *str_tree; bin_tree_storage_t *str_tree_storage; re_bitset_ptr_t sb_char; int str_tree_storage_idx; /* number of subexpressions `re_nsub' is in regex_t. */ unsigned int state_hash_mask; int init_node; int nbackref; /* The number of backreference in this dfa. */ /* Bitmap expressing which backreference is used. */ bitset_word_t used_bkref_map; bitset_word_t completed_bkref_map; unsigned int has_plural_match : 1; /* If this dfa has "multibyte node", which is a backreference or a node which can accept multibyte character or multi character collating element. */ unsigned int has_mb_node : 1; unsigned int is_utf8 : 1; unsigned int map_notascii : 1; unsigned int word_ops_used : 1; int mb_cur_max; bitset_t word_char; reg_syntax_t syntax; int *subexp_map; #ifdef DEBUG char* re_str; #endif __libc_lock_define (, lock) }; #define re_node_set_init_empty(set) memset (set, '\0', sizeof (re_node_set)) #define re_node_set_remove(set,id) \ (re_node_set_remove_at (set, re_node_set_contains (set, id) - 1)) #define re_node_set_empty(p) ((p)->nelem = 0) #define re_node_set_free(set) re_free ((set)->elems) typedef enum { SB_CHAR, MB_CHAR, EQUIV_CLASS, COLL_SYM, CHAR_CLASS } bracket_elem_type; typedef struct { bracket_elem_type type; union { unsigned char ch; unsigned char *name; wchar_t wch; } opr; } bracket_elem_t; /* Inline functions for bitset operation. */ static inline void bitset_not (bitset_t set) { int bitset_i; for (bitset_i = 0; bitset_i < BITSET_WORDS; ++bitset_i) set[bitset_i] = ~set[bitset_i]; } static inline void bitset_merge (bitset_t dest, const bitset_t src) { int bitset_i; for (bitset_i = 0; bitset_i < BITSET_WORDS; ++bitset_i) dest[bitset_i] |= src[bitset_i]; } static inline void bitset_mask (bitset_t dest, const bitset_t src) { int bitset_i; for (bitset_i = 0; bitset_i < BITSET_WORDS; ++bitset_i) dest[bitset_i] &= src[bitset_i]; } #ifdef RE_ENABLE_I18N /* Inline functions for re_string. */ static inline int internal_function __attribute ((pure)) re_string_char_size_at (const re_string_t *pstr, int idx) { int byte_idx; if (pstr->mb_cur_max == 1) return 1; for (byte_idx = 1; idx + byte_idx < pstr->valid_len; ++byte_idx) if (pstr->wcs[idx + byte_idx] != WEOF) break; return byte_idx; } static inline wint_t internal_function __attribute ((pure)) re_string_wchar_at (const re_string_t *pstr, int idx) { if (pstr->mb_cur_max == 1) return (wint_t) pstr->mbs[idx]; return (wint_t) pstr->wcs[idx]; } # ifndef NOT_IN_libc static int internal_function __attribute ((pure)) re_string_elem_size_at (const re_string_t *pstr, int idx) { # ifdef _LIBC const unsigned char *p, *extra; const int32_t *table, *indirect; int32_t tmp; # include uint_fast32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules != 0) { table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB); indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); p = pstr->mbs + idx; tmp = findidx (&p); return p - pstr->mbs - idx; } else # endif /* _LIBC */ return 1; } # endif #endif /* RE_ENABLE_I18N */ #endif /* _REGEX_INTERNAL_H */ tucnak2-2.48/src/ttys.c0000644000175000017500000000443711611035474011707 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" int ttys_init(struct cwdaemon *cwda){ cwda->fd = -1; ttys_open(cwda, 1); return 0; } int ttys_open(struct cwdaemon *cwda, int verbose){ char errbuf[1024]; int ret; if (cwda->fd >= 0) return 0; ret = fhs_lock(cfg->cwda_device, 1); if (ret){ fhs_error(errbuf, sizeof(errbuf), ret, cfg->cwda_device); log_addf("CW keying ttys error: %s", errbuf); return -2; } cwda->ttys_locked = 1; cwda->fd = open(cfg->cwda_device, O_RDWR | O_NOCTTY); if (cwda->fd < 0){ if (verbose) log_addf("Can't open %s %s", cfg->cwda_device, strerror_r(errno, errbuf, sizeof(errbuf))); ttys_reset(cwda); ttys_free(cwda); return -1; } return 0; } int ttys_free(struct cwdaemon *cwda){ if (!cwda) return 0; if (cwda->fd>=0){ close(cwda->fd); cwda->fd=-1; } if (cwda->ttys_locked) fhs_unlock(cfg->cwda_device); return 0; } int ttys_reset(struct cwdaemon *cwda){ ttys_ptt(cwda, 0); ttys_cw(cwda, 0); ttys_ssbway(cwda, 0); return 0; } int ttys_cw(struct cwdaemon *cwda, int onoff){ int pin, op; char errbuf[1024]; pin=TIOCM_DTR; op=onoff?TIOCMBIS:TIOCMBIC; if (ioctl(cwda->fd, op, &pin)<0){ dbg("Can't %s ttys_DTR %s\n", onoff?"set":"clear", strerror_r(errno, errbuf, sizeof(errbuf))); close(cwda->fd); if (cwda->ttys_locked) fhs_unlock(cfg->cwda_device); cwda->fd=-1; return 1; } return 0; } int ttys_ptt(struct cwdaemon *cwda, int onoff){ int pin, op; char errbuf[1024]; dbg("ttys_ptt(%d)\n", onoff); pin=TIOCM_RTS; op=onoff?TIOCMBIS:TIOCMBIC; if (ioctl(cwda->fd, op, &pin)<0){ dbg("Can't %s ttys_RTS %s\n", onoff?"set":"clear", strerror_r(errno, errbuf, sizeof(errbuf))); close(cwda->fd); if (cwda->ttys_locked) fhs_unlock(cfg->cwda_device); cwda->fd=-1; return 1; } return 0; } int ttys_ssbway(struct cwdaemon *cwda, int onoff){ return 0; } tucnak2-2.48/src/html.c0000644000175000017500000002603211611033371011635 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2010 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #define HTML_QSO_STR(item) zg_string_eprintfa("h", gs, "%s ", item); #define HTML_QSO_INT(item) g_string_sprintfa(gs, "%d ", item); #define HTML_HDR(item) g_string_sprintfa(gs, "%s\n", item); static int bandrefi = 0; gchar *qh(GString *gs, gchar *s){ char *c; g_string_truncate(gs,0); if (!s) return gs->str; for (c=s; *c!='\0'; c++) { switch (*c){ case '<': g_string_append(gs, "<"); break; case '>': g_string_append(gs, ">"); break; case '"': g_string_append(gs, """); break; case '&': g_string_append(gs, "&"); break; case '\'': g_string_append(gs, "'"); break; default: g_string_append_c(gs, *c); } } return gs->str; } void html_style(GString *gs){ g_string_sprintfa(gs, "body {\n" " font-size: 12pt;\n" /*" font-family: Tahoma, Helvetica, Arial, sans-serif}\n"*/ " font-family: Courier, Courier-new}\n" "a {\n" " font-weight: bold}\n" "h1, h2, h3, h4 {\n" " font-family: Tahoma, Helvetica, Arial, sans-serif;\n" " color: #f8f8f8};\n" "h2 {\n" " margin-top: 20;\n" " margin-bottom: 5;\n" " margin-left:10 }\n" /* input { padding: 2px; margin: 2px; font-weight: normal; font-size: 12px; color: #000000; font-family: sans-serif} li { margin-bottom: 20px } p.stress{ font-style: italic} */ "table.qsos {\n" " border: black 2px solid;\n" " padding: 5px;\n" " background: #606060}\n" "th {\n" " padding-left: 5px;\n" " padding-right: 5px}\n" "td {\n" " padding-left: 5px;\n" " padding-right: 5px}\n" ); } void html_header(GString *gs, gchar *title, int flags){ g_string_sprintfa(gs, "\n" "\n" "\n" ""); zg_string_eprintfa("h", gs, "%s\n", title); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "

"); if (flags & HTML_ICON) g_string_sprintfa(gs, "\"Happy"); zg_string_eprintfa("h", gs, "%s

\n", title); } void html_ref_header(GString *gs){ zg_string_eprintfa("h", gs, "

Locator: %S

\n", ctest->pwwlo); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, ""); g_string_sprintfa(gs, "\n"); } void html_band_ref(GString *gs, struct band *b, struct config_band *confb){ if (bandrefi++%2) g_string_sprintfa(gs, "\n"); else g_string_sprintfa(gs, "\n"); zg_string_eprintfa("h", gs, "\n", b->bandchar, b->bandname); g_string_sprintfa(gs, "\n", b->stats->nqsos); g_string_sprintfa(gs, "\n", b->stats->ntotal); if (b->stats->nqsos){ // happened always g_string_sprintfa(gs, "\n", (double)b->stats->ntotal/(double)b->stats->nqsos); } g_string_sprintfa(gs, "\n"); } void html_ref_footer(GString *gs, struct band *b, struct config_band *confb){ g_string_sprintfa(gs, "
BandQSOsPointsAVG
%s%d%d%5.1f
\n"); } void html_band_header(GString *gs, struct band *b, struct config_band *confb, int flags, struct subwin *map, struct subwin *chart){ int w, h; zg_string_eprintfa("h", gs, "

Band %s

\n", b->bandchar, b->bandname); g_string_sprintfa(gs, "

QSOs: %d
\n", b->stats->nqsos); g_string_sprintfa(gs, "Points: %d
\n", b->stats->ntotal); g_string_sprintfa(gs, "WWLs: %d
\n", g_hash_table_size(b->stats->wwls)); g_string_sprintfa(gs, "DXCCs: %d
\n", g_hash_table_size(b->stats->dxcs)); if (b->stats->nqsos){ g_string_sprintfa(gs, "AVG: %5.2f pts/qso
\n", (double)b->stats->ntotal/(double)b->stats->nqsos); } g_string_sprintfa(gs, "

\n"); #ifdef HAVE_SDL w = 640; h = 480; if (map && map->screen) { w = map->screen->w; h = map->screen->h; } g_string_sprintfa(gs, "

\"Polar

\n", flags & HTML_IMG_ROOT ? "/" : "", b->bandchar, w, h, b->bandname); w = 640; h = 480; if (chart && chart->screen) { w = chart->screen->w; h = chart->screen->h; } g_string_sprintfa(gs, "

\"Chart

\n", flags & HTML_IMG_ROOT ? "/" : "", b->bandchar, w, h, b->bandname); #endif g_string_sprintfa(gs, "

\n\n\n"); g_string_sprintfa(gs, "\n"); HTML_HDR("DATE"); /*HTML_HDR("BAND");*/ HTML_HDR("MODE"); HTML_HDR("TIME"); HTML_HDR("CALLSIGN"); HTML_HDR("TX"); HTML_HDR("RX"); HTML_HDR("LOCATOR"); HTML_HDR("QRB"); HTML_HDR("OPERATOR"); HTML_HDR("REMARK"); g_string_sprintfa(gs, "\n"); } void html_band_footer(GString *gs){ g_string_sprintfa(gs,"
\n\n"); } void html_footer(GString *gs){ g_string_sprintfa(gs, "

Created by TUCNAK ver. %s

\n", VERSION_STRING); g_string_sprintfa(gs, "

\n" "\n" "\"Valid \n" "\n" "" "\"Viewable " "



\n" "\n"); } void html_qsos(GString *gs, struct band *b, struct config_band *confb){ struct qso *q; GString *gs2; int i,j; char *html_modes[]={ "?", "SSB", "CW", "CWs", "CWr", "AM", "FM", "RTTY", "SSTV", "ATV" }; gs2 = g_string_new(""); j=0; for (i=0; iqsos->len; i++){ char time[10]; gchar *c; q = get_qso(b, i); if (q->error) continue; if (j++%2) g_string_sprintfa(gs, "\n"); else g_string_sprintfa(gs, "\n"); strcpy(time, q->time_str); time[2]='.'; time[3]=q->time_str[2]; time[4]=q->time_str[3]; time[5]='\0'; HTML_QSO_STR(q->date_str); HTML_QSO_STR(html_modes[abs(q->mode)%10]); HTML_QSO_STR(time); HTML_QSO_STR(q->callsign); c = g_strdup_printf("%s %s", q->rsts, q->qsonrs); HTML_QSO_STR(c); g_free(c); c = g_strdup_printf("%s %s", q->rstr, q->qsonrr); HTML_QSO_STR(c); g_free(c); HTML_QSO_STR(q->locator); HTML_QSO_INT((int)q->qrb); HTML_QSO_STR(q->operator_); HTML_QSO_STR(q->remark); g_string_sprintfa(gs, "\n"); } g_string_free(gs2, TRUE); } void html_complete(GString *gs, int flags){ struct band *band; struct config_band *confb; int i; GString *gs2, *title; int header_saved=0; struct subwin *map = NULL; struct subwin *chart = NULL; struct band *oldaband; gs2 = g_string_sized_new(100); title = g_string_sized_new(100); for (i = 0; i < gses->subwins->len; i++){ struct subwin *sw = (struct subwin*)g_ptr_array_index(gses->subwins, i); if (sw->type == SWT_MAP) map = sw; if (sw->type == SWT_CHART) chart = sw; } oldaband = aband; bandrefi = 0; for (i=0; ibands->len; i++){ band = (struct band*)g_ptr_array_index(ctest->bands, i); confb = (struct config_band*)get_config_band_by_bandchar(band->bandchar); stats_thread_join(band); if (band->stats->nqsos <=0) continue; #if defined(HAVE_SDL) && defined(HAVE_LIBPNG) && !defined(_MSC_VER) // pod msvc pad ulozeni do PNG if (sdl && map && (flags & HTML_MAP)){ char *filename; aband = band; map->gdirty = 1; map_for_photo(map); sw_map_redraw(map, HTML_FOR_PHOTO); filename = g_strdup_printf("%s/map%c.png", ctest->directory, tolower(band->bandchar)); do_png_save(map->screen, filename); g_free(filename); } if (sdl && chart && (flags & HTML_CHART)){ char *filename; aband = band; chart->gdirty = 1; sw_chart_recalc_extremes(chart); sw_chart_redraw(chart, HTML_FOR_PHOTO); filename = g_strdup_printf("%s/chart%c.png", ctest->directory, tolower(band->bandchar)); do_png_save(chart->screen, filename); g_free(filename); } #endif if (!header_saved){ g_string_sprintf(title, "%s", ctest->pcall); uc(title->str); g_string_sprintfa(title, " - %s", ctest->tname); html_header(gs, title->str, 0); html_ref_header(gs); header_saved=1; } html_band_ref(gs, band, confb); } html_ref_footer(gs, band, confb); for (i=0; ibands->len; i++){ band = (struct band*)g_ptr_array_index(ctest->bands, i); confb = (struct config_band*)get_config_band_by_bandchar(band->bandchar); if (band->stats->nqsos <=0) continue; html_band_header(gs, band, confb, flags, map, chart); html_qsos (gs, band, confb); html_band_footer(gs); } html_footer(gs); aband = oldaband; g_string_free(gs2, 1); g_string_free(title, 1); } int export_all_bands_html(void){ gchar *filename; FILE *f; char callbuf[20]; GString *gs; if (!ctest) return -1; dbg("export_all_bands_html()\n"); gs = g_string_sized_new(300000); html_complete(gs, HTML_MAP | HTML_CHART); filename = g_strdup_printf("%s/%s_%s.html", ctest->directory, ctest->cdate, uc(get_raw_call(callbuf,ctest->pcall))); f=fopen(filename,"wt"); if (!f) { errbox(VTEXT(T_CANT_WRITE), errno); g_free(filename); g_string_free(gs, 1); return -1; } if (fprintf(f, "%s", gs->str) <= 0){ errbox(VTEXT(T_CANT_WRITE), 0); g_free(filename); g_string_free(gs, 1); return -1; } fclose(f); log_addf(VTEXT(T_SAVED_S), filename); g_free(filename); g_string_free(gs, 1); return 0; } tucnak2-2.48/src/hf.c0000644000175000017500000003237011567373656011317 00000000000000 /* hf.c - functions (mostly statistics) for HF contests Copyright (C) 2010 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #define QSOBOUND 6 #define LASTQSO 10 #define QSOH (LASTQSO-QSOBOUND) #define RATEBOUND 45 #define LASTBOUND 71 #define BANDS 6 #define DXCWIDTH 23 #define DXCBOUND (LASTQSO+1) int sw_hf_kbd_func(struct subwin *sw, struct event *ev, int fw){ cba_t cba; switch(kbd_action(KM_MAIN,ev)){ case ACT_ESC: return 0; break; case ACT_DOWN: sw->cur++; sw_hf_check_bounds(sw); redraw_later(); return 1; case ACT_UP: sw->cur--; sw_hf_check_bounds(sw); redraw_later(); return 1; case ACT_HOME: sw->cur = 1; sw_hf_check_bounds(sw); redraw_later(); return 1; case ACT_END: if (!aband) return 1; sw->cur = ctest->allqsos->len; sw_hf_check_bounds(sw); redraw_later(); return 1; case ACT_ENTER: if (!aband) return 1; sw_hf_check_bounds(sw); if (aband->readonly) { errbox(VTEXT(T_BAND_RO), 0); return 1; } if (sw->cur==0) break; edit_qso(get_gqso(aband, sw->cur-1)); return 1; case ACT_CALLINFO: if (sw->cur==0) break; SETCBA(cba, qso, get_gqso(aband, sw->cur-1)); call_info(cba); return 1; case ACT_INSERT: if (sw->offset2 > 0) sw->offset2--; redraw_later(); return 1; case ACT_DELETE: /*if (sw->offset2 < QSOBOUND - 1)*/ sw->offset2++; // TODO limit ? redraw_later(); return 1; case ACT_PLAY_LAST: #ifdef HAVE_SNDFILE ssbd_play_last_sample(ssbd, get_gqso(aband, sw->cur-1)); #endif break; } return 0; } int sw_hf_mouse_func(struct subwin *sw, struct event *ev, int fw){ return 0; } void clip_char(struct subwin *sw, int xrel, int yrel, short c){ if (xrel < 0) return; if (yrel < 0) return; if (xrel >= sw->w) return; if (yrel >= sw->h) return; set_char(sw->x + xrel, sw->y + yrel, c); } void clip_color(struct subwin *sw, int xrel, int yrel, short c){ if (xrel < 0) return; if (yrel < 0) return; if (xrel >= sw->w) return; if (yrel >= sw->h) return; set_color(sw->x + xrel, sw->y + yrel, c); } void clip_printf(struct subwin *sw, int xrel, int yrel, short color, char *fmt, ...){ va_list l; gchar *c, *s; // dbg("clip_printf('%s')\n", fmt); va_start(l, fmt); s=g_strdup_vprintf(fmt, l); va_end(l); for (c=s; *c!='\0'; c++){ clip_char(sw, xrel++, yrel, *c | color); } g_free(s); } void sw_hf_redraw(struct subwin *sw, int flags){ int i,j,x,y,col,idx, x0, y0; int bi; struct band *bands[BANDS]; char s[256], t[256]; char *c; char *hf_modes[] = {"???", "SSB", " CW", "MIX", "MIX", " AM", "FM", "RTY", "STV", "ATV"}; int nqsos=0, nqsop=0;//, nmult=0; int ntotal = 0; // frames for (i=0; i<=LASTQSO;i++) { clip_char(sw, RATEBOUND, i, 0x8000|COL_NORM|179); clip_char(sw, LASTBOUND, i, 0x8000|COL_NORM|179); } for (i=0; ih) set_char(sw->x-1, sw->y + QSOBOUND, 0x8000|COL_NORM|195); clip_char(sw, RATEBOUND, QSOBOUND, 0x8000|COL_NORM|180); // excs if (aband && excdb){ int l, maxl = 0; // struct miss_struct ms; // miss_compute_ms(&ms, aband); x = 0; y = - sw->offset2; for (i=0; ivexcia->len; i++){ c = (gchar *)g_index_array_index(excdb->vexcia, i); l = strlen(c); if (l > maxl) maxl = l; } for (i=0; ivexcia->len; i++){ c = (gchar *)g_index_array_index(excdb->vexcia, i); if (x + maxl > RATEBOUND) { x = 0; y++; if (y==QSOBOUND) break; } if (g_hash_table_lookup_extended(aband->stats->excs, c, NULL, NULL) == FALSE){ clip_printf(sw, x, y, COL_NORM, c); } x += maxl + 1; } // g_index_array_free_all(ms.ia); } // bands prepare i = 0; memset(bands, 0, sizeof(bands)); if (ctest){ for (bi = ctest->bands->len - 1; bi >= 0; bi--){ struct band *b = (struct band *)g_ptr_array_index(ctest->bands, bi); bands[i++] = b; if (i==BANDS) break; } } // bands stats if (ctest) clip_printf(sw, RATEBOUND+3, 0 , COL_NORM, VTEXT(T_HF_RATE), ctest->qso_per_10 * 6, ctest->qso_per_60); else clip_printf(sw, RATEBOUND+3, 0 , COL_NORM, VTEXT(T_HF_RATE), 0, 0); clip_printf(sw, RATEBOUND+1, 1 , COL_NORM, VTEXT(T_HF_BAND)); for (i=0; i<6;i++){ struct band *b = bands[i]; if (!b) continue; safe_strncpy0(s, b->bandname, sizeof(s)); c = strchr(s, ' '); if (c != NULL) *c='\0'; j = strlen(s); if (j > 0 && toupper(s[j-1]) == 'M') s[j-1] = '\0'; clip_printf(sw, RATEBOUND+4-strlen(s), i+2, COL_NORM, s); nqsos += b->stats->nqsos; nqsop += b->stats->nqsop; clip_printf(sw, RATEBOUND+6, i+2, COL_NORM, "%4d %5d %4d", b->stats->nqsos, b->stats->nqsop, b->stats->nmult); } clip_printf(sw, RATEBOUND+1, i+2, COL_NORM, VTEXT(T_HF_SUM)); clip_printf(sw, RATEBOUND+6, i+2, COL_NORM, "%4d %5d %4d", nqsos, nqsop, ctest?ctest->allb_nmult:0); clip_printf(sw, RATEBOUND+1, i+3, COL_NORM, VTEXT(T_HF_SCORE)); /*t ntotal = st->ntotal; if (ctest->qsoglob)*/ if (ctest) ntotal = ctest->allb_ntotal; if (ntotal >= 1000000) sprintf(s, "%d %03d %03d", ntotal / 1000000, (ntotal % 1000000) / 1000, ntotal % 1000); else if (ntotal >= 1000) sprintf(s, "%d %d", ntotal / 1000, ntotal % 1000); else sprintf(s, "%d", ntotal); clip_printf(sw, LASTBOUND - 1 - strlen(s), i+3, COL_NORM, s); // qsos if (ctest){ // y0 = 0; /* if (ctest->allqsos->len+1 <= QSOH) y0 = LASTQSO - (ctest->allqsos->len+1) + 1; */ for (i=0;iallqsos->len + 0 - QSOH + i - sw->offset; if (idx < 0 || idx >= ctest->allqsos->len){ clip_printf(sw, 1, y, COL_NORM, "~"); continue; } col = /*idx == sw->cur - 1? COL_INV :*/ COL_NORM; //clip_printf(sw, LASTBOUND+2, y, COL_NORM, "i=%d y=%d idx=%d cur=%d", i, y, idx, sw->cur); q = (struct qso *)g_ptr_array_index(ctest->allqsos, idx); if (y<=QSOBOUND) continue; safe_strncpy0(s, q->band->bandname, sizeof(s)); c = strchr(s, ' '); if (c != NULL) *c='\0'; j = strlen(s); if (j > 0 && toupper(s[j-1]) == 'M') s[j-1] = '\0'; clip_printf(sw, 4-strlen(s), y, col, s); clip_printf(sw, 5, y, col, hf_modes[q->mode%10]); s[0]=q->time_str[0]; s[1]=q->time_str[1]; s[2]=':'; s[3]=q->time_str[2]; s[4]=q->time_str[3]; s[5]='\0'; clip_printf(sw, 9, y, col, s); if (q->error) safe_strncpy0(s, "ERROR", 20); else safe_strncpy0(s, q->callsign, 20); clip_printf(sw, 15, y, col, s); strcpy(t, ""); if (ctest->qsoused > 0) { strcat(t, " "); strcat(t, q->qsonrr); } if (*q->exc) { strcat(t, " "); strcat(t, q->exc); } if (*q->locator) { strcat(t, " "); strcat(t, q->locator); } safe_strncpy0(s, t, 11); clip_printf(sw, 33-strlen(s), y, col, s); sprintf(t, "%d", q->qsop); safe_strncpy0(s, t, 2); clip_printf(sw, 39-strlen(s), y, col, s); if (q->new_ & NEW_MULT) clip_printf(sw, 41, y, col, "*"); if (i==ctest->allqsos->len - 1){ // last QSO s[0]=q->time_str[0]; s[1]=q->time_str[1]; s[2]=':'; s[3]=q->time_str[2]; s[4]=q->time_str[3]; s[5]='\0'; strcpy(t, "(n/a)"); if (ctest->lastmultqso){ t[0]=ctest->lastmultqso->time_str[0]; t[1]=ctest->lastmultqso->time_str[1]; t[2]=':'; t[3]=ctest->lastmultqso->time_str[2]; t[4]=ctest->lastmultqso->time_str[3]; t[5]='\0'; } clip_printf(sw, LASTBOUND+2, 0, COL_NORM, VTEXT(T_HF_LAST), s, t); } if (idx == sw->cur -1) { for (j = 0; j < RATEBOUND; j++) clip_color(sw, j, y, COL_INV); } } } //DXCC if (gses->adwi){ clip_printf(sw, LASTBOUND+2, 1, COL_NORM, "%02d %s %s", gses->adwi->waz, gses->adxc, gses->adwi->dxcname); } if (gses->qs_master && *gses->qs_master) clip_printf(sw, 0, LASTQSO+1, COL_NORM, "%s", gses->qs_master); // else clip_printf(sw, 1, LASTQSO+2, COL_NORM, "empty"); // clip_char(sw, LASTBOUND+5, 8, 0x8000|COL_NORM|179); if (gses->asunriseset){ clip_printf(sw, LASTBOUND+2, 8, COL_NORM, "%11s", gses->asunriseset); } clip_char(sw, LASTBOUND+14, 8, 0x8000|COL_NORM|179); if (spotdb && spotdb->sfi > 0){ clip_printf(sw, LASTBOUND+16, 8, COL_NORM, "SFI=%d", spotdb->sfi); } if (gses->adwi){ sprintf(s, "%d km, %d", gses->aqrb, gses->aqtf); clip_printf(sw, LASTBOUND+2, 9, COL_NORM, s); #ifdef HAVE_SDL if (sdl){ int xx = sw->x + LASTBOUND+2+strlen(s); if (xx < sw->x + sw->w) print_text(xx, sw->y + 9, -1, "", COL_NORM); } else #endif { clip_printf(sw, LASTBOUND + 2 + strlen(s), 9, COL_NORM, " deg"); } } // dxc if (aband && sw->h >= DXCBOUND){ int bi; struct spot *spot; x0 = ((sw->w / DXCWIDTH) / 2 ) * DXCWIDTH; y0 = DXCBOUND + (sw->h - DXCBOUND) / 2; bi=lowcase(aband->bandchar)-'a'; x = x0; y = y0; sw_hf_draw_spot(sw, x, y, spotdb->cur[bi], COL_INV); y--; if (spotdb->cur[bi]) spot=spotdb->cur[bi]->prev; else spot=NULL; while (x >= 0){ if (!spot) break; if (y==DXCBOUND){ y = sw->h - 1; x -= DXCWIDTH; } if (get_qso_by_callsign(aband, spot->callsign)==NULL) sw_hf_draw_spot(sw, x, y, spot, COL_NORM); spot=spot->prev; y--; } if (spotdb->cur[bi]) spot=spotdb->cur[bi]->next; else spot=NULL; x = x0; y = y0 + 1; while (x < sw->w){ if (!spot) break; if (y == sw->h){ y = DXCBOUND + 1; x += DXCWIDTH; } if (get_qso_by_callsign(aband, spot->callsign)==NULL) sw_hf_draw_spot(sw, x, y, spot, COL_NORM); spot=spot->next; y++; } } } void sw_hf_draw_spot(struct subwin *sw, int x, int y, struct spot *spot, int color){ char s[20]; char *c; if (!spot) c = g_strdup_printf("%-*s", DXCWIDTH, "~"); else{ safe_strncpy0(s, spot->callsign, 12); c = g_strdup_printf("%9.1f %-12s ", spot->qrg, s); } if (c && strlen(c)>sw->ho){ clip_printf(sw, x, y, color, "%s", c); } g_free(c); } void sw_hf_check_bounds(struct subwin *sw){ int len; if (!aband) return; /*dbg("sw_qsos_check_bounds cur=%d, offset=%d ", sw->cur, sw->offset);*/ len = ctest->allqsos->len; if (sw->cur < 1 ) sw->cur = 1; if (sw->cur > len) sw->cur = len; if (sw->cur > len - sw->offset -1 ){ sw->offset = len - sw->cur; } if (sw->cur < len - QSOH + 1 - sw->offset){ sw->offset = len - QSOH - sw->cur + 1; } if (sw->offset < 0) sw->offset=0; } void sw_hf_raise(struct subwin *sw){ } void get_hf_dxc(char *str){ struct dw_item *dwi; static char dxcc[25]; static char sun[16]; double myh, myw, qrb, qtf; dwi = get_dw_item_by_call(dw, str); if (!dwi) return; gses->adwi = dwi; get_dxcc(dw, dxcc, str); gses->adxc = dxcc; gses->asunriseset = sun; sunrisesetstr(sun, dwi->latitude, dwi->longitude); if (ctest){ myh=qth(ctest->pwwlo, 0); myw=qth(ctest->pwwlo, 1); }else{ myh=qth(cfg->pwwlo, 0); myw=qth(cfg->pwwlo, 1); } hw2qrbqtf(myh, myw, dwi->longitude*MY_PI/180.0, dwi->latitude*MY_PI/180.0, &qrb, &qtf); //g_addf("%s %f %f %f %f %f %f", cfg->pwwlo, myh, myw, dwi->longitude*MY_PI/180.0, dwi->latitude*MY_PI/180.0, &qrb, &qtf); gses->aqrb = (int)qrb; gses->aqtf = (int)((qtf*180.0)/MY_PI); } tucnak2-2.48/src/language.inc0000644000175000017500000045422511571101554013020 00000000000000/* Automatoticaly generated by gen-intl */ struct translation translation_english [] = { {0, NULL}, {T__CHAR_SET, "us-ascii"}, {T__LANGUAGE, "English"}, {T_ABOUT, "About"}, {T_BAD_NUMBER, "Bad number"}, {T_BAD_STRING, "Bad string"}, {T_BASIC_HELP, "Press F10 for menu.\nHave fun."}, {T_BLOCK_CURSOR, "Block cursor"}, {T_CANCEL, "Cancel"}, {T_CHARACTER_SET, "Character set"}, {T_COLOR, "Color"}, {T_COPYING, "Copying"}, {T_DIFFERENCE, "difference"}, {T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Do you really want to exit Tucnak?"}, {T_EMPTY_STRING_NOT_ALLOWED, "Empty string not allowed"}, {T_ERROR, "Error"}, {T_WARNING, "Warning"}, {T_EXIT, "Exit"}, {T_EXIT_TUCNAK, "Exit Tucnak"}, {T_FILE, "File"}, {T_FULL_SCREEN, "Full screen"}, {T_HELP, "Help"}, {T_HK_ABOUT, "A"}, {T_HK_BEOS_TERMINAL, "B"}, {T_HK_CHARACTER_SET, "H"}, {T_HK_COPYING, "C"}, {T_HK_EXIT, "X"}, {T_HK_FILE, "F"}, {T_HK_FULL_SCREEN, "F"}, {T_HK_HELP, "H"}, {T_HK_LANGUAGE, "L"}, {T_HK_MEMORY_INFO, "M"}, {T_HK_OS_SHELL, "O"}, {T_HK_SCREEN, "S"}, {T_HK_SETUP, "S"}, {T_HK_TERMINAL_OPTIONS, "T"}, {T_HK_TWTERM, "T"}, {T_HK_WINDOW, "W"}, {T_HK_XTERM, "X"}, {T_KOI8R_FRAMES, "KOI8-R frames"}, {T_LANGUAGE, "Language"}, {T_LAST, "last"}, {T_LINUX_OR_OS2_FRAMES, "Linux or OS/2 frames"}, {T_MEMORY_INFO, "Memory info"}, {T_NO_FRAMES, "No frames"}, {T_NO, "No"}, {T_NUMBER_EXPECTED, "Number expected in field"}, {T_NUMBER_OUT_OF_RANGE, "Number out of range"}, {T_OK, "OK"}, {T_OS_SHELL, "OS shell"}, {T_RESTRICT_FRAMES_IN_CP850_852, "Restrict frames in cp850/852"}, {T_UTF_8_IO, "UTF-8 Input/Output"}, {T_SCREEN, "Screen"}, {T_SETUP, "Setup"}, {T_TERMINAL_OPTIONS, "Terminal options"}, {T_TUCNAK__TACLOG_LIKE, "Tucnak " VERSION_STRING "\n\nTACLOG-like V/U/SHF contest log"}, {T_TWTERM, "Twterm"}, {T_USE_11M, "Use ^[[11m"}, {T_VT_100_FRAMES, "VT 100 frames"}, {T_WELCOME_TO_TUCNAK, "Welcome to Tucnak!\nPlease fill in your callsign and next fields"}, {T_WELCOME, "Welcome"}, {T_XTERM, "Xterm"}, {T_YES, "Yes"}, {T_CANT_APPEND_S, "Can't append to file %s"}, {T_CANT_WRITE, "Can't write to file"}, {T_CANT_WRITE_S, "Can't write to file %s"}, {T_CANT_READ, "Can't read from file"}, {T_CANT_READ_S, "Can't read from file %s"}, {T_SAVED_S, "Saved %s"}, {T__CW_, " CW "}, {T_CWW_KEYS, " PgUp +, PgDn - cw speed "}, {T_CANT_OPEN_S, "Can't open %s"}, {T_CANT_LOCK, "Can't lock"}, {T_CANT_LOCK_S, "Can't lock %s"}, {T_LOADING_CTEST_S, "*** Loading contest %s"}, {T_NO_FILES,"No files in directory"}, {T_BAND_EXIST_SS, "WARNING! Band %s (%s) already exist"}, {T_BAND_NOT_OPEN, "Band is not active in this contest"}, {T_NO_BANDS, "No bands to load"}, {T_CANT_SET_GR_S, "Can't set any graphics mode-%s"}, {T_GCALL, "Call: %s"}, {T_GWWL, "WWL: %s"}, {T_GQRB, "QRB: %d km"}, {T_GQTF, "QTF: %d"}, {T_GSEN, "Sent: %s %s"}, {T_GRCV, "Rcvd: %s %s"}, {T_GTIM, "Time: %s"}, {T_GOPE, "Op: %s"}, {T_GREM, "Rem: %s"}, {T_GWKD, "Wkd: %d"}, {T_GINC, "income: %d"}, {T_GLON, "Lon:%7.2f %-6s"}, {T_GLAT, "Lat:%7.2f %-6s"}, {T_GLOC, "Loc: %s"}, {T__PLESE_WAIT_, " Please WAIT "}, {T__RO_BAND, " READ-ONLY BAND"}, {T_COPYING_VER, "The ultimate contestlog - necessary as known\n\nVersion " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nThis program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version."}, {T_CTEST_ACTIVE, "Contest is already active "}, {T_NO_CTESTS, "No contests"}, {T_NO_CCLOSE, "No contest to close"}, {T_REALLY, "Really?"}, {T_CLOSE_CTEST, "Do you really want to close this contest?"}, {T_GUI_LD, "GUI: %ld "}, {T_SBRK, "sbrk: %ld"}, {T_CWI, "C_W: %d cw items, %d wc items, latest %d\n"}, {T_EXC, "Exc: %s %d exc items, %d cxe items, latest %d\n"}, {T_VEXC, "Verified EXC: %d items\n"}, {T_DWI, "D_W: %d prefixes, %d DXCCs, %d WWLs\n"}, {T_NAMES, "Names: %d names\n"}, {T_MASTER, "Master: %d calls\n"}, {T_MEMS, "Memory:"}, {T_NMY, " My: %s:%d\n"}, {T_NGLOBAL, "Global: %s:%d\n"}, {T_NMASTER, "Master: %s %s %s:%d %s %s\n"}, {T_NSLAVES, "\nSlaves:\n"}, {T_NINFO, "Network info"}, {T_NO_BANDS_QRV, "No bands QRV"}, {T_NO_BANDS_CONF, "No bands configured"}, {T_NOT_AVAILABLE, "Not available"}, {T_ADD_SUBWIN, "Add subwin"}, {T_HK_ADD_SUBWIN, "A"}, {T_CLOSE_SUBWIN, "Close subwin"}, {T_HK_CLOSE_SUBWIN, "C"}, {T_HK_NINFO, "N"}, {T_NEW, "New"}, {T_HK_NEW, "N"}, {T_NEW_WIZZ, "New from wizard"}, {T_HK_NEW_WIZZ, "W"}, {T_NEW_NET, "New from network"}, {T_HK_NEW_NET, "T"}, {T_OPEN, "Open"}, {T_HK_OPEN, "O"}, {T_SAVE, "Save"}, {T_HK_SAVE, "S"}, {T_EXPORT_EDI, "Export as EDI"}, {T_HK_EXPORT_EDI, "E"}, {T_EXPORT_REPORT, "Export as report"}, {T_HK_EXPORT_REPORT, "R"}, {T_EXPORT_ADIF, "Export as ADIF"}, {T_HK_EXPORT_ADIF, "A"}, {T_EXPORT_CBR, "Export as Cabrillo"}, {T_HK_EXPORT_CBR, "B"}, {T_EXPORT_HTML, "Export as HTML"}, {T_HK_EXPORT_HTML, "H"}, {T_EXPORT_WIKI, "Export as MediaWiki"}, {T_HK_EXPORT_WIKI, "W"}, {T_IMPORT_EDI, "Import EDI"}, {T_HK_IMPORT_EDI, "I"}, {T_IMPORT_ADIF, "Import ADIF"}, {T_HK_IMPORT_ADIF, "M"}, {T_IMPORT_SWAP, "Import swap"}, {T_HK_IMPORT_SWAP, "S"}, {T_IMPORT_LIST, "Import list"}, {T_HK_IMPORT_LIST, "L"}, {T_CONTEST_OP, "Contest options"}, {T_HK_CONTEST_OP, "O"}, {T_CLOSE_CONTEST, "Close contest"}, {T_HK_CLOSE_CONTEST, "C"}, {T_ADD_ERROR, "Add ERROR"}, {T_HK_ADD_ERROR, "E"}, {T_CHOP, "Change operator"}, {T_HK_CHOP, "O"}, {T_CW_CTEST, "Update C_W from contest"}, {T_HK_CW_CTEST, "C"}, {T_CW_BAND, "Update C_W from band"}, {T_HK_CW_BAND, "B"}, {T_EXC_CTEST, "Update EXC DB from contest"}, {T_HK_EXC_CTEST, "A"}, {T_EXC_BAND, "Update EXC DB from band"}, {T_HK_EXC_BAND, "T"}, {T_IMPORT_EBW, "Import DL8EBW database"}, {T_HK_IMPORT_EBW, "W"}, {T_NO_CTEST, "No contest"}, {T_NO_PEERS, "No peers found"}, {T_NO_MASTER, "Master is not available!"}, {T_CTEST_DEF, "Contest defaults"}, {T_HK_CTEST_DEF, "O"}, {T_BAND_DEF, "Band defaults"}, {T_HK_BAND_DEF, "B"}, {T_HK_RESPOP, "R"}, {T_CW_DAEMON, "CW keying"}, {T_HK_CW_DAEMON, "E"}, {T_CW_CQ, "CW CQ"}, {T_HK_CW_CQ, "C"}, {T_SSB_CQ, "SSB CQ"}, {T_HK_SSB_CQ, "S"}, {T_AUTOSAVE, "Autosave"}, {T_HK_AUTOSAVE, "A"}, {T_LOAD_CFG_NET, "Load cfg from net"}, {T_HK_LOAD_CFG_NET, "N"}, {T_LOAD_CW_NET, "Load C_W from net"}, {T_HK_LOAD_CW_NET, "W"}, {T_SAVE_CFG, "Save configuration"}, {T_HK_SAVE_CFG, "F"}, {T_CONTEST, "Contest"}, {T_HK_CONTEST, "C"}, {T_EDIT, "Edit"}, {T_HK_EDIT, "E"}, {T_BANDS, "Bands"}, {T_HK_BANDS, "B"}, {T_SUBWINS, "Subwins"}, {T_HK_SUBWINS, "W"}, {T_BAND_SETTINGS_SC, "Band settings for band %c %s"}, {T_QRV_ON_THIS_BAND, "QRV on this band"}, {T_QRV_IN_THIS_CTEST, "QRV in this contest"}, {T_READ_ONLY, "Read-only"}, {T_MULTI, "Multi"}, {T_SINGLE, "Single"}, {T_CHECK, "Check"}, {T_TXEQUIP, " TX Equip:"}, {T_POWER, " Power:"}, {T_RXEQUIP, " RX Equip:"}, {T_ANTENNA, " Antenna:"}, {T_AGLASL, " AGL;ASL:"}, {T_OPS, "Operators:"}, {T_SPACES1, " "}, {T_REMARKS, " Remarks:"}, {T_OK_SECTION_SINGLE, "Single category in OK"}, {T_OK_SECTION_MULTI, "Multi category in OK"}, {T_QRG_MIN, "Band boundary from"}, {T_QRG_MAX, "to [kHz]"}, {T_ADIFBAND, "ADIF band name"}, {T_SKEDQRG, "QRG for skeds (free form)"}, {T_BAND_LO, "Transverter's LO QRG [Hz]:"}, {T_BANDSW, "Band switch value"}, {T_RESPOP, "Responsible operator"}, {T_NAME, " Name:"}, {T_CALLSIGN, " Callsign:"}, {T_ADDRESS, " Address:"}, {T_POSTCODE, "Postal Code:"}, {T_CITY, " City:"}, {T_COUNTRY, " Country:"}, {T_PHONE, " Phone:"}, {T_BBSEMAIL, " BBS/Email:"}, {T_QP0, " --none -- "}, {T_QP1, " 1 QSOp*QSOp_m (Std. IARU)"}, {T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)"}, {T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)"}, {T_QP4, " 4 WWL_ring*QSOp_m (OK activity)"}, {T_QP5, " 5 St_miles*QSOp_m"}, {T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)"}, {T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)"}, {T_QP8, " 8 WWL_dist*QSOp_m (Baltic)"}, {T_QP9, " 9 WWL_dist*QSOp_m (Baltic & Nordic fieldday)"}, {T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)"}, {T_QP11, "11 QSOp_m *3 if F (F 50MHz)"}, {T_QP12, "12 RSGB DC (district codes)"}, {T_QP13, "13 Continent (CQ WW DX Contest)"}, {T_QP14, "14 Continent+band (CQ WW WPX Contest)"}, {T_QP15, "15 VHF Band (ARRL VHF)"}, {T_QP16, "16 QSOp *4 if F (Champ. de France)"}, {T_TP0, " --none -- "}, {T_TP1, " 1 Multiplicative (Std. IARU)"}, {T_TP2, " 2 Additive (RSGB Backpacker, VRZA, Sicily)"}, {T_TP3, " 3 Mult. all bands (CQ WW DX Contest)"}, {T_TP4, " 4 All bands togeth. (ARRL VHF)"}, {T_NEW_CTEST, "New Contest"}, {T_CANT_TRUNC, "Can't truncate desc file"}, {T_NAME_OF_CTEST, "Name of the contest:"}, {T_CALL_OF_CTEST, "Callsign in contest:"}, {T_CLUB_ST, "Club station:"}, {T_YOURWWL, "Your WWL:"}, {T_YOUREXC, "Your EXC:"}, {T_DATE_OF_CTEST, "Date of contest:"}, {T_QSOUSED, "QSO NR used"}, {T_QSOPM, " QSOp multi:"}, {T_WWLUSED, "WWL used "}, {T_WWLB, "WWL bonus:"}, {T_WWLM, "WWL multi:"}, {T_EXCUSED, "EXC used"}, {T_EXCB, " EXC bonus:"}, {T_EXCM, "EXC multi:"}, {T_EXCNAME, " EXC name: "}, {T_PREFM, "PREF multi:"}, {T_DXCB, " DXC bonus:"}, {T_DXCM, "DXC multi:"}, {T_RSTUSED, "RST Used "}, {T_DEFRS, "Default RS:"}, {T_DEFRST, "Def RST:"}, {T_ALSORSTR, "Also for RST-R"}, {T_QP_CALC, " QSOp calc:"}, {T_TO_CALC, "Total calc:"}, {T_EDI_PROP, "EDI prop"}, {T_RESPOP2, "Responsible op"}, {T_EDIT_QSO_CD, "Edit QSO %c: %03d"}, {T_CALLSIGN2, "Callsign:"}, {T_CLUB, " Club:"}, {T_PADR1, " PAdr1:"}, {T_PADR2, " PAdr2:"}, {T_RS, " RS:"}, {T_RST, " RST:"}, {T_OPERATOR, "Operator:"}, {T_DATE, " Date:"}, {T_MODE, " Mode:"}, {T_RSTS, " RSTs:"}, {T_RSTR, " RSTr:"}, {T_QSONRS, "QSO sent:"}, {T_QSONRR, "QSO rcvd:"}, {T_OPTEXCH, " OptExch:"}, {T_WWL, " WWL:"}, {T_REMARK, " Remark:"}, {T_QRV2, " QRV on:"}, {T_WKD, " WKD:"}, {T_SEND_SKED, "Send sked"}, {T_SELECT, "Select"}, {T_QRG, " QRG:"}, {T_WE_CALL, " We call"}, {T_BAND, " Band:"}, {T_TIME, " Time:"}, {T_DUPE_QSO, "Duplicate QSO!"}, {T_CLEAR_THIS_QSO, "Clear this QSO"}, {T_EDIT_OLD_QSO, "Edit old QSO"}, {T_MARK_OLD_QSO, "Mark old QSO as ERROR"}, {T_STORE_AS_DUPE, "Store as DUPE"}, {T_BAD_CALL, "This does not look like a callsign"}, {T_N_CALLSIGN, "\nCallsign:"}, {T_AUTOSAVE_OPTS, "Autosave options"}, {T_SAVE_AQ, "Save to disk after QSO: "}, {T_SAVE_AM, "Save to disk after minutes:"}, {T_FSYNC, "Fsync"}, {T_SAVE_AQF, "Save to floppy after QSO: "}, {T_SAVE_AMF, "Save to floppy after minutes:"}, {T_DO_MOUNT, "Mount if not in /etc/mtab (unused)"}, {T_FLOPPY_PATH, "Path to floppy:"}, {T_MOUNT_CMD, "Mount command: "}, {T_SW_SHELL, "Shell"}, {T_SW_QSOS, "QSOs"}, {T_SW_LOG, "Log"}, {T_SW_TALK, "Talk"}, {T_SW_SKED, "Sked"}, {T_SW_UNFI, "Unfi"}, {T_SW_DXC, "DXC"}, {T_SW_STAT, "Stat"}, {T_SW_MAP, "Map"}, {T_SW_SCOPE, "Scope"}, {T_SW_QRV, "QRV"}, {T_SW_HF, "HF"}, {T_SW_PLAYER, "Player"}, {T_SW_CHART, "Chart"}, {T_SHELL, "Shell"}, {T_QSOS, "QSOs"}, {T_LOG, "Log"}, {T_TALK, "Talk"}, {T_SKEDS, "Skeds"}, {T_UNFI, "Unfinished QSOs"}, {T_DXC, "DX Cluster (N/A)"}, {T_STAT, "Statistics"}, {T_SWAP, "Swap (N/A)"}, {T_MAP, "Graphics map"}, {T_SCOPE, "Scope"}, {T_QRV, "QRV"}, {T_HF, "HF"}, {T_CMD, "Command"}, {T_RESPAWN, "Respawn [sec]:"}, {T_UNFI_QSO, "Unfinished QSO"}, {T_N_REMARK, "\nRemark:"}, {T_NO_CQ, "No CQ defined"}, {T_TEXT, "Text:"}, {T_SPEED, "Speed [WPM]:"}, {T_REPEAT, "Repeat"}, {T_DELAY, "Delay [0.1s]:"}, {T_ALLOW_UNDEF, "Allow if some item is undefined"}, {T_CW_DSCS, "CW%d (%s) %c %s"}, {T_FILENAME, "Filename:"}, {T_SSB_DSCS, "SSB%d (%s) %c %s"}, {T_UDPPORT, "UDP port:"}, {T_DEVICE, "Keying device:"}, {T_INIT_SPEED, "Initial speed [WPM]:"}, {T_INIT_WEIGHT, "Weight (30-70):"}, {T_WPMFROM, "WPM Range from"}, {T_WPMTO, "to"}, {T_USE_SPK, "Use speaker"}, {T_LEADIN, " PTT lead in [ms]"}, {T_AUTGIVE, "Run mode aut. give after [chars]"}, {T_IGN_IFACE_S, "Ignoring interface %-5s"}, {T_IGN_ADDR_S, "Ignoring address %s"}, {T_ADD_IFACE_SSD, "Added interface=%-5s BCAST=%s:%d"}, {T_FORCED_ADDR, "Forced address %s"}, {T_TIMESKEW, "WARNING! Time skew %d detected against %s:%d !\n"}, {T_DISCONNECTING_SD, "Disconnecting from %s:%d"}, {T_ACCEPTED_SD, "Accepted %s:%d"}, {T_CONNECTING_SD, "Connecting to %s:%d" }, {T_CONNECTED_SD, "Connected to %s:%d"}, {T_DISCONNECTED_SD, "Disconnected from %s:%d"}, {T_LOADED_CFG_SSSS, "Loaded config for %s %s (%s,%s)"}, {T_LOADED_CW, "Loaded C_W data"}, {T_PEER_NOT_FOUND, "ERROR! Peer %s not found"}, {T_CANT_CREATE_HOME_S, "Cannot create directory %s"}, {T_CANT_LOAD_CFG, "Can't load configuration!\nProgram cannot work properly!"}, {T_ERR_RC, "Found some errors parsing config file!\nThis file was probably saved with newer Tucnak!\nDon't save your confuguration unless you can loose data!"}, {T_SES_QTR, " QTR "}, {T_SES_QRA, " CALL "}, {T_SES_RST, " RST-S-No RST-R-No "}, {T_SES_QTH, " QTH "}, {T_SES_QRB, " Pts/QRB QTF "}, {T_SES_FLG, " Flg "}, {T_SES_OPE, " Oper. "}, {T_SES_EXC, " Exch "}, {T_SES_REM, " Remark "}, {T_SES_WELCOME, "Welcome to Tucnak! "}, {T_SES_PRESS_F10, "Press F10 for menu."}, {T_SES_HAVE_FUN, "Have fun."}, {T_SES_URL, "http://tucnak.nagano.cz "}, {T_SES_ODX, "ODX: "}, {T_SES_ODX_DATA, "%s %s %d km (%s)"}, {T_SES_STAT_TIT, "QSOs QSO-p OptX WWLs DXCCs Total-p AVG"}, {T_SES_AVG, " AVG: %5.2f"}, {T_SES_WPM, " WPM: %d %02d%%"}, {T_SF_WWLS, " WWLs: %d"}, {T_SF_WWLS_UNDER, "-------------"}, {T_SF_EXCS, " EXCs: %d"}, {T_SF_EXCS_UNDER, "-------------"}, {T_SF_MISS_EXCS, " Missing EXCs: %d"}, {T_SF_MISS_EXCS_UNDER, "---------------------"}, {T_SF_PREFS, " PREFs: %d"}, {T_SF_PREFS_UNDER, "-------------"}, {T_SF_DXCS, " DXCCs: %d"}, {T_SF_DXCS_UNDER, "-------------"}, {T_SF_WKD_WWLS, " WKD WWLs: %d"}, {T_SF_WKD_WWLS_UNDER, "-----------------"}, {T_SF_QSO_WWL4, " QSOS in WWL4s: %d"}, {T_SF_QSO_WWL4_UNDER, "----------------------"}, {T_SF_STATS_BAND, " Statistics for band %s"}, {T_SF_STATS_BAND_UNDER, "==============================="}, {T_SF_CONTEST, "Contest: %s"}, {T_SF_ALLBQSOS, "All bands QSOs: %d"}, {T_SF_ALLBQSOP, "All bands QSOp: %d"}, {T_SF_ALLBPTS, "All bands pts: %d"}, {T_SF_QSOS, "QSOs: %d"}, {T_SF_QSOP, "QSO points: %d"}, {T_SF_PTS, "Points: %d"}, {T_SF_AVG_PTS, "Average pts/QSO: %5.2f"}, {T_SF_AVG_QSOP, "Average qsop/QSO: %5.2f"}, {T_BAND_RO, "Band is read-only"}, {T_THIS_BAND, "This band"}, {T_OTHER_BANDS, "Other bands"}, {T_CW_DB, "C_W database"}, {T_PROC_EXITED, "*** Process exited\n"}, {T_WE_CALL2, "we call"}, {T_WE_LISTEN, "we listen"}, {T_QSL, "QSL promised"}, {T_RECORD, "Record traffic"}, {T_MAXMIN, " Max. record duration"}, {T_TEMPLATE, "Template for recorded filename"}, {T_PCM8, "8 bit PCM"}, {T_PCM16, "16 bit PCM"}, {T_ULAW, "mu-law"}, {T_ALAW, "A-law"}, {T_IMAADPCM, "IMA ADPCM"}, {T_MSADPCM, "MS ADPCM"}, {T_GSM610, "GSM 6.10"}, {T_CHANNELS, "Channels"}, {T_SAMPLERATE, "Sample rate"}, {T_FILLOP, "Fill operators"}, {T_HK_FILLOP, "L"}, {T_RECAQRB, "Recalc QRB,QTF"}, {T_HK_RECAQRB, "R"}, {T_NETWORK, "Network & trace"}, {T_HK_NETWORK, "K"}, {T_IF_IGNORE, "Ignore interfaces:"}, {T_IP_IGNORE, " Ignore networks:"}, {T_IP_ANNOUNCE, " Announce to nets:"}, {T_TRACE_BCAST, "Trace broadcasts "}, {T_TRACE_SOCK, "Trace sockets"}, {T_TRACE_RECV, "Trace received data"}, {T_TRACE_SEND, "Trace sent data"}, {T_TRACE_QSOS, "Trace QSOs "}, {T_TRACE_SDEV, "Trace rotars"}, {T_NOT_MOUNTED_S, "Not mounted %s"}, {T_RECSRC_NONE, "Don't set"}, {T_RECSRC_MIC, "Microphone"}, {T_RECSRC_LINE, "Line in"}, {T_NEW_CALL, "New!"}, {T_HK_NEW_CALL, "n"}, {T_QRV_ON_S, "QRV on %s"}, {T_SKED_QRG, "QRG for skeds"}, {T_HK_SKED_QRG, "F"}, {T_N_SKED_QRG, "\nQRG for skeds:"}, {T_GRAB_BAND, "Grab band control"}, {T_HK_GRAB_BAND, "G"}, {T_FORCE_RUN, "Force RUN mode"}, {T_HK_FORCE_RUN, "U"}, {T_EXPORT_STATS, "Export Statistics"}, {T_HK_EXPORT_STATS, "T"}, {T_SF_TOP_DX, " TOP %d DX QSOs:"}, {T_SF_TOP_DX_UNDER, "-------------------"}, {T_ROTAR, "Rotator"}, {T_HK_ROTAR, "R"}, {T_AZIMUTH, " Azimuth"}, {T_ELEVATION, "Elevation"}, {T_CH_SPY, "Spy"}, {T_HK_CH_SPY, "S"}, {T_CH_ENDSPY, "Spy end"}, {T_HK_CH_ENDSPY, "P"}, {T_EXPORT_TITLPAGE, "Export title page"}, {T_HK_EXPORT_TITLPAGE, "P"}, {T_BREAK_RECORD, "Break record"}, {T_HK_BREAK_RECORD, "B"}, {T_GLOBAL_OPERATOR, "Change for all bands"}, {T_GLOBAL_OPERATOR2, "Global"}, {T_MAXFRAG, "Max. num of fragments (>=2)"}, {T_PLAY_LAST, "Play last sample"}, {T_HK_PLAY_LAST, "P"}, {T_MISCOPTS, "Miscellaneous options"}, {T_HK_MISCOPTS, "M"}, {T_LOGLINES, "Log lines: "}, {T_SKEDSHIFT, "Sked shift (minutes): "}, {T_STARTBAND, "Starting band: "}, {T_GFX_X_CH, "Screen resolution (chars):"}, {T_GFX_Y_CH, "x"}, {T_GFX_X_PX, "Screen resolution (pixels):"}, {T_GFX_Y_PX, "x"}, {T_CALL_INFO, "Callsign info"}, {T_HK_CALL_INFO, "I"}, {T_SF_QSO_HOUR, "QSOs/hour: %d"}, {T_SF_QSOP_HOUR, "Points/hour: %d"}, {T_SF_QSOP_50QSO, "Points/50 QSOs: %d"}, {T_SF_HOURS, " Hours"}, {T_SF_HOURS_UNDER, "---------"}, {T_SF_HOURS_TITLE, "Hours Points QSOs AVG pts/QSO"}, {T_QSO_CHECK, "QSO check"}, {T_HK_QSO_CHECK, "K"}, {T_AUDIO, "Audio"}, {T_HK_AUDIO, "D"}, {T_ALSA, "Alsa"}, {T_OSS, "OSS"}, {T_SSBD, "SSBD"}, {T_DISKFREE, "Minimal disk free space [MiB]"}, {T_FORMAT, "Record format"}, {T_PCM_PLAY, "Alsa playback device"}, {T_PCM_REC, "Alsa capture device"}, {T_PERIOD, "Period time [ms]"}, {T_BUFFER, "Buffer time [ms]"}, {T_ALSA_MIXER, "Alsa mixer device"}, {T_CAPTURE, "Capture source"}, {T_DSP, "OSS DSP"}, {T_MIXER, "OSS mixer"}, {T_RECSRC, "Record source"}, {T_SSBD_HOSTNAME, "SSBD hostname:"}, {T_HOSTNAME, "Hostname:"}, {T_SLASHKEY, "Slash key"}, {T_FIXQRG, "Fix QRG"}, {T_HK_FIXQRG, "X"}, {T_ENTER_QRG, "Enter accurate QRG [Hz]"}, {T_BAD_QRG, "Bad frequency"}, {T_CALLSIGN3, "Callsign"}, {T_CALLSIGN_KST, "KST station's callsign:"}, {T_CANT_INIT_WINKEY_S, "Can't init winkey on %s"}, {T_WINKEYOPTS, "Winkey options"}, {T_WK_WK2, "Winkey2 fast initialization"}, {T_WK_USEPOT, "Use speed pot"}, {T_WK_USEBUT, "Use buttons"}, {T_WK_KM_B, "Curtis-B"}, {T_WK_KM_A, "Curtis-A"}, {T_WK_KM_U, "Ultimatic"}, {T_WK_KM_G, "Bug"}, {T_WK_SWAP, "Paddle swap (left handled)"}, {T_RIGOPTS, "Rig options"}, {T_HK_RIGOPTS, "G"}, {T_RIG_DEVICE, "Device:"}, {T_RIG_MODEL, "Rig model: "}, {T_RIG_SPEED, "Baudrate: "}, {T_RIG_CIV, "CIV address:"}, {T_RIG_FREQSHIFT, "Freq. shift SSB->CW"}, {T_RIG_CHOOSE, "Choose"}, {T_ROTAROPTS, "Rotar options"}, {T_HK_ROTAROPTS, "I"}, {T_DSSAVER, "Disable screensaver"}, {T_DESC, "Description"}, {T_ROT_NONE, "None"}, {T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys"}, {T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI"}, {T_ROT_HAMLIB, "Hamlib"}, {T_ROT_REMOTE, "Remote"}, {T_ROT_VID, "VID:"}, {T_ROT_PID, "PID:"}, {T_ROT_SERIAL, "Serial #"}, {T_ROT_ADD, "Add new rotator"}, {T_HK_ROT_ADD, "W"}, {T_ROT_REMOVE, "Remove rotator"}, {T_HK_ROT_REMOVE, "R"}, {T_TIMEOUT, "Timeout:"}, {T_BEAMWIDTH, "Beam width:"}, {T_SADDR, "Communication address:"}, {T_MODEL, "Model:"}, {T_ROT_REM_ROTSTR, "Rotator letter for remote"}, {T_QSOGLOB, "Global QSO NR"}, {T_PREFGLOB, "Global PREF"}, {T_NOT_RECORDING_S, "Not recording - %s"}, {T_SKEDCOUNT, "Sked count in popup: "}, {T_FONTHEIGHT, "Font height (16-32): "}, {T_RIG_POLL_MS, "Rig poll interval [ms]: "}, {T_RIG_QRG_R2T, "Set band from radio"}, {T_RIG_QRG_T2R, "Change band on radio"}, {T_RIG_MODE_T2R, "Change mode on radio"}, {T_RUN_MODE, "Run mode"}, {T_HK_RUN_MODE, "U"}, {T_SP_MODE, "S&P mode"}, {T_HK_SP_MODE, "M"}, {T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save"}, {T_RIG_DEBUG, "Debug rig"}, {T_HF_RATE, "Rate: %3d/10 %3d/60"}, {T_HF_BAND, "Band QSO Point Mult"}, {T_HF_SUM, "Sum:"}, {T_HF_LAST, "Last Q-%s P-%s"}, {T_EVEN, "TX eVen"}, {T_HK_EVEN, "V"}, {T_ODD, "TX oDd"}, {T_HK_ODD, "D"}, {T_1ST, "TX 1st"}, {T_HK_1ST, "1"}, {T_2ND, "TX 2nd"}, {T_HK_2ND, "2"}, {T_HF_SCORE, "Score:"}, {T_EXPMODE, "Expedition mode"}, {T_TTTYPE, "Only digits mean"}, {0, NULL} }; struct translation translation_czech [] = { {0, NULL}, {T__CHAR_SET, "iso8859-2"}, {T__LANGUAGE, "Czech"}, {T_ABOUT, "O programu"}, {T_BAD_NUMBER, "Chybn slo"}, {T_BAD_STRING, "Vadn etzec"}, {T_BASIC_HELP, "Stisknu F10 pro vstup do menu."}, {T_BLOCK_CURSOR, "Blokov kurzor"}, {T_CANCEL, "Zruit"}, {T_CHARACTER_SET, "Znakov sada"}, {T_COLOR, "Barviky"}, {T_COPYING, "Koprovn"}, {T_DIFFERENCE, "rozdl"}, {T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Opravdu chce ukonit Tuka?"}, {T_EMPTY_STRING_NOT_ALLOWED, "Przdn etzec nen povolen"}, {T_ERROR, "Chyba"}, {T_WARNING, "Varovn"}, {T_EXIT, "mitec"}, {T_EXIT_TUCNAK, "Ukonen Tuka"}, {T_FILE, "Soubor"}, {T_FULL_SCREEN, "Cel obrazovka"}, {T_HELP, "Pomoc"}, {T_HK_ABOUT, "O"}, {T_HK_BEOS_TERMINAL, "B"}, {T_HK_CHARACTER_SET, "Z"}, {T_HK_COPYING, "P"}, {T_HK_EXIT, "E"}, {T_HK_FILE, "S"}, {T_HK_FULL_SCREEN, "C"}, {T_HK_HELP, "P"}, {T_HK_LANGUAGE, "J"}, {T_HK_MEMORY_INFO, "M"}, {T_HK_OS_SHELL, "O"}, {T_HK_SCREEN, "S"}, {T_HK_SETUP, "S"}, {T_HK_TERMINAL_OPTIONS, "T"}, {T_HK_TWTERM, "T"}, {T_HK_WINDOW, "O"}, {T_HK_XTERM, "X"}, {T_KOI8R_FRAMES, "Rmeky KOI8-R"}, {T_LANGUAGE, "Jazyk"}, {T_LAST, "posledn"}, {T_LINUX_OR_OS2_FRAMES, "Rmeky typu Linux nebo OS/2"}, {T_MEMORY_INFO, "Informace o pamti"}, {T_NO_FRAMES, "Bez rmek"}, {T_NO, "Ne"}, {T_NUMBER_EXPECTED, "Oekvm slo"}, {T_NUMBER_OUT_OF_RANGE, "islo je mimo rozsah"}, {T_OK, "OK"}, {T_OS_SHELL, "Pkazov dka"}, {T_RESTRICT_FRAMES_IN_CP850_852, "Ohranien rmeky v cp850/852"}, {T_UTF_8_IO, "UTF-8 vstup/vstup"}, {T_SCREEN, "Screen"}, {T_SETUP, "Nastaven"}, {T_TERMINAL_OPTIONS, "Nastaven terminlu"}, {T_TUCNAK__TACLOG_LIKE, "Tuk " VERSION_STRING "\n\nTACLOGu podobn denk pro VKV/mikrovlnn zvody"}, {T_TWTERM, "Twterm"}, {T_USE_11M, "Pouvat ^[[11m"}, {T_VT_100_FRAMES, "Rmeky VT 100"}, {T_WELCOME_TO_TUCNAK, "Vt T Tuk!\nProsm nastav svou znaku a ostatn daje"}, {T_WELCOME, "Vtej"}, {T_XTERM, "Xterm"}, {T_YES, "Jo"}, {T_CANT_APPEND_S, "Nelze pidat na konec souboru %s"}, {T_CANT_WRITE, "Nelze zapsat do souboru"}, {T_CANT_WRITE_S, "Nelze zapsat do souboru %s"}, {T_CANT_READ, "Nelze pesto soubor"}, {T_CANT_READ_S, "Nelze pest soubor %s"}, {T_SAVED_S, "Uloeno %s"}, {T__CW_, " CW "}, {T_CWW_KEYS, " PgUp +, PgDn - rychlost CW "}, {T_CANT_OPEN_S, "Nelze otevt %s"}, {T_CANT_LOCK, "Nelze zamknout soubor"}, {T_CANT_LOCK_S, "Nelze zamknout soubor %s"}, {T_LOADING_CTEST_S, "*** Naten zvod %s"}, {T_NO_FILES, "Neexistuj dn soubory"}, {T_BAND_EXIST_SS, "POZOR! Psmo %s (%s) u existuje"}, {T_BAND_NOT_OPEN, "Psmo nen v tomto zvodu aktivni"}, {T_NO_BANDS, "Neexistuji dn psma"}, {T_CANT_SET_GR_S, "Nelze nastavit grafick md-%s"}, {T_GCALL, "Znaka: %s"}, {T_GWWL, "tverec: %s"}, {T_GQRB, "Vzdlen.: %d km"}, {T_GQTF, "hel: %d"}, {T_GSEN, "Odeslno: %s %s"}, {T_GRCV, "Pijato: %s %s"}, {T_GTIM, "as: %s"}, {T_GOPE, "Opertor: %s"}, {T_GREM, "Pozn: %s"}, {T_GWKD, "Wkd: %d"}, {T_GINC, "Zisk azim:%d"}, {T_GLON, "Dl: %7.2f %-6s"}, {T_GLAT, ": %7.2f %-6s"}, {T_GLOC, "Lok: %s"}, {T__PLESE_WAIT_, " Prosm o chvli strpen "}, {T__RO_BAND, " PSMO POUZE KE TEN"}, {T_COPYING_VER, "The ultimate contestlog - necessary as known\n\nVerze " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nTento program je svobodn software; me ho it a/nebo pozmovat podle ustanoven Obecn veejn licence GNU, vydan Free Software Foundation; a to verze 2 a ve tto licence."}, {T_CTEST_ACTIVE, "Ji existuje aktivn zvod "}, {T_NO_CTESTS, "dn zvody"}, {T_NO_CCLOSE, "Nen co zavrat"}, {T_REALLY, "Skuten?"}, {T_CLOSE_CTEST, "Opravdu chce zavt tento zvod?"}, {T_GUI_LD, "Uiv. prosted: %ld "}, {T_SBRK, "sbrk: %ld"}, {T_CWI, "C_W: %d cw poloek, %d wc poloek, posledn %d\n"}, {T_EXC, "Exc: %s %d exc poloek, %d exc poloek, posledn %d\n"}, {T_VEXC, "Kontrolovan EXC: %d poloek\n"}, {T_DWI, "D_W: %d prefix, %d zem DXCC, %d tverc\n"}, {T_NAMES, "Names: %d jmen\n"}, {T_MASTER, "Master: %d calls\n"}, {T_MEMS, "Pam:"}, {T_NMY, " J: %s:%d\n"}, {T_NGLOBAL, "Hl.f: %s:%d\n"}, {T_NMASTER, " f: %s %s %s:%d %s %s\n"}, {T_NSLAVES, "\nPodzen:\n"}, {T_NINFO, "Sov informace"}, {T_NO_BANDS_QRV, "dn aktivn psma"}, {T_NO_BANDS_CONF, "dn psma"}, {T_NOT_AVAILABLE, "Nepstupn"}, {T_ADD_SUBWIN, "Pidat okno"}, {T_HK_ADD_SUBWIN, "P"}, {T_CLOSE_SUBWIN, "Zavt okno"}, {T_HK_CLOSE_SUBWIN, "Z"}, {T_HK_NINFO, "S"}, {T_NEW, "Nov"}, {T_HK_NEW, "N"}, {T_NEW_WIZZ, "Prvodce novm zvodem"}, {T_HK_NEW_WIZZ, "P"}, {T_NEW_NET, "Nov ze st"}, {T_HK_NEW_NET, "S"}, {T_OPEN, "Otevt"}, {T_HK_OPEN, "O"}, {T_SAVE, "Uloit"}, {T_HK_SAVE, "U"}, {T_EXPORT_EDI, "Exportovat do EDI"}, {T_HK_EXPORT_EDI, "E"}, {T_EXPORT_REPORT, "Exportovat do reportu (VKVPA)"}, {T_HK_EXPORT_REPORT, "R"}, {T_EXPORT_ADIF, "Exportovat do ADIFu"}, {T_HK_EXPORT_ADIF, "A"}, {T_EXPORT_CBR, "Export as ADIF"}, {T_HK_EXPORT_CBR, "B"}, {T_EXPORT_HTML, "Exportovat do HTML"}, {T_HK_EXPORT_HTML, "H"}, {T_EXPORT_WIKI, "Export as MediaWiki"}, {T_HK_EXPORT_WIKI, "W"}, {T_IMPORT_EDI, "Importovat EDI"}, {T_HK_IMPORT_EDI, "I"}, {T_IMPORT_ADIF, "Importovat ADIF"}, {T_HK_IMPORT_ADIF, "M"}, {T_IMPORT_SWAP, "Importovat swap"}, {T_HK_IMPORT_SWAP, "S"}, {T_IMPORT_LIST, "Import list"}, {T_HK_IMPORT_LIST, "L"}, {T_CONTEST_OP, "Volby bhem zvodu"}, {T_HK_CONTEST_OP, "O"}, {T_CLOSE_CONTEST, "Zavt zvod"}, {T_HK_CLOSE_CONTEST, "Z"}, {T_ADD_ERROR, "Pidat chybn spojen"}, {T_HK_ADD_ERROR, "E"}, {T_CHOP, "Zmna opertora"}, {T_HK_CHOP, "O"}, {T_CW_CTEST, "Aktualizovat C_W ze zvodu"}, {T_HK_CW_CTEST, "C"}, {T_CW_BAND, "Aktualizovat C_W z psma"}, {T_HK_CW_BAND, "B"}, {T_EXC_CTEST, "Aktualizovat EXC ze zvodu"}, {T_HK_EXC_CTEST, "P"}, {T_EXC_BAND, "Aktualizovat EXC z psma"}, {T_HK_EXC_BAND, "D"}, {T_IMPORT_EBW, "Importovat DL8EBW databze"}, {T_HK_IMPORT_EBW, "W"}, {T_NO_CTEST, "Zvod nen"}, {T_NO_PEERS, "Dal Tuci nenalezeni"}, {T_NO_MASTER, "f je nedostupn!"}, {T_CTEST_DEF, "Nastaven zvodu"}, {T_HK_CTEST_DEF, "Z"}, {T_BAND_DEF, "Nastaven psem"}, {T_HK_BAND_DEF, "P"}, {T_HK_RESPOP, "O"}, {T_CW_DAEMON, "Klovn CW"}, {T_HK_CW_DAEMON, "K"}, {T_CW_CQ, "CW vzvy"}, {T_HK_CW_CQ, "C"}, {T_SSB_CQ, "SSB vzvy"}, {T_HK_SSB_CQ, "S"}, {T_AUTOSAVE, "Automatick ukldn"}, {T_HK_AUTOSAVE, "A"}, {T_LOAD_CFG_NET, "Nast nastaven ze st"}, {T_HK_LOAD_CFG_NET, "N"}, {T_LOAD_CW_NET, "Nast C_W ze st"}, {T_HK_LOAD_CW_NET, "W"}, {T_SAVE_CFG, "Uloit nastaven"}, {T_HK_SAVE_CFG, "U"}, {T_CONTEST, "Zvod"}, {T_HK_CONTEST, "Z"}, {T_EDIT, "Edit"}, {T_HK_EDIT, "E"}, {T_BANDS, "Psma"}, {T_HK_BANDS, "B"}, {T_SUBWINS, "Okna"}, {T_HK_SUBWINS, "K"}, {T_BAND_SETTINGS_SC, "Nastaven pro psmo %c %s"}, {T_QRV_ON_THIS_BAND, "QRV na tomto psmu"}, {T_QRV_IN_THIS_CTEST, "QRV v tomto zvod"}, {T_READ_ONLY, "Pouze ke ten"}, {T_MULTI, "Multi"}, {T_SINGLE, "Single"}, {T_CHECK, "Check"}, {T_TXEQUIP, " Vys. zazen:"}, {T_POWER, " Vkon:"}, {T_RXEQUIP, " Pjm. zaz.:"}, {T_ANTENNA, " Antna:"}, {T_AGLASL, "vka zem;moe:"}, {T_OPS, " Opertoi:"}, {T_SPACES1, " "}, {T_REMARKS, " Poznmky:"}, {T_OK_SECTION_SINGLE, "Kategorie Single v OK"}, {T_OK_SECTION_MULTI, "Kategorie Multi v OK"}, {T_QRG_MIN, "Hranice psma od"}, {T_QRG_MAX, "do [kHz]"}, {T_ADIFBAND, "Nzev psma pro ADIF"}, {T_SKEDQRG, "Frek. pro skedy (lib. formt)"}, {T_BAND_LO, "LO transvertoru [Hz]"}, {T_BANDSW, "Hodnota prepinace pasem"}, {T_RESPOP, "Zodpovdn opertor"}, {T_NAME, "Jmno Pjm:"}, {T_CALLSIGN, " Znaka:"}, {T_ADDRESS, " Adresa:"}, {T_POSTCODE, " PS:"}, {T_CITY, " Msto:"}, {T_COUNTRY, " Zem:"}, {T_PHONE, " Telefon:"}, {T_BBSEMAIL, " BBS/E-mail:"}, {T_QP0, " --nic -- "}, {T_QP1, " 1 QSOp*QSOp_m (Stand. IARU)"}, {T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)"}, {T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)"}, {T_QP4, " 4 WWL_ring*QSOp_m (OK VKVPA)"}, {T_QP5, " 5 St_miles*QSOp_m"}, {T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)"}, {T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)"}, {T_QP8, " 8 WWL_dist*QSOp_m (Baltsk zvody)"}, {T_QP9, " 9 WWL_dist*QSOp_m (Baltsk & seversk poln den)"}, {T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)"}, {T_QP11, "11 QSOp_m *3 if F (F 50MHz)"}, {T_QP12, "12 RSGB DC (distrikty)"}, {T_QP13, "13 kontinent (CQ WW DX Contest)"}, {T_QP14, "14 kontinent+psmo (CQ WW WPX Contest)"}, {T_QP15, "15 VHF Band (ARRL VHF, CQ VHF)"}, {T_QP16, "16 QSOp *4 if F (Champ. de France)"}, {T_TP0, " --none -- "}, {T_TP1, " 1 Nsoben (Std. IARU)"}, {T_TP2, " 2 Stan (RSGB Backpacker, VRZA, Sicily)"}, {T_TP3, " 3 Mult. all bands (CQ WW DX Contest)"}, {T_TP4, " 4 All bands togeth. (ARRL VHF)"}, {T_NEW_CTEST, "Nov zvod"}, {T_CANT_TRUNC, "Nelze zkrtit soubor s popisem zvodu"}, {T_NAME_OF_CTEST, "Nzev zvodu:"}, {T_CALL_OF_CTEST, "Znaka v zvodu:"}, {T_CLUB_ST, "Klubov znaka:"}, {T_YOURWWL, "Tvj WWL:"}, {T_YOUREXC, "Tvj EXC:"}, {T_DATE_OF_CTEST, "Datum zvodu:"}, {T_QSOUSED, "QSO NR pouito"}, {T_QSOPM, " QSOp nsob.:"}, {T_WWLUSED, "WWL pouito"}, {T_WWLB, "WWL bonus:"}, {T_WWLM, "WWL nsob.:"}, {T_EXCUSED, "EXC pouito"}, {T_EXCB, " EXC bonus:"}, {T_EXCM, "EXC nsob.:"}, {T_EXCNAME, " EXC jmno:"}, {T_PREFM, "PREF nsob:"}, {T_DXCB, " DXC bonus:"}, {T_DXCM, "DXC nsob.:"}, {T_RSTUSED, "RST pouito"}, {T_DEFRS, " Pednast.RS:"}, {T_DEFRST, "Pednast.RST:"}, {T_ALSORSTR, "Tak pro RST-R"}, {T_QP_CALC, " Vpoet QSOp:"}, {T_TO_CALC, "Vpoet celku:"}, {T_EDI_PROP, "EDI poloky"}, {T_RESPOP2, "Odpovdn opertor"}, {T_EDIT_QSO_CD, "Editace spojen %c: %03d"}, {T_CALLSIGN2, " Znaka:"}, {T_CLUB, " Klub:"}, {T_PADR1, " PAdr1:"}, {T_PADR2, " PAdr2:"}, {T_RS, " RS:"}, {T_RST, " RST:"}, {T_OPERATOR, "Opertor:"}, {T_DATE, " Datum:"}, {T_MODE, " Md:"}, {T_RSTS, "Odes.RST:"}, {T_RSTR, "Pij.RST:"}, {T_QSONRS, "Ode.spoj:"}, {T_QSONRR, "Pi.spoj:"}, {T_OPTEXCH, " OptExch:"}, {T_WWL, " tverec:"}, {T_REMARK, "Poznmka:"}, {T_QRV2, " QRV on:"}, {T_WKD, " WKD:"}, {T_SEND_SKED, "Poslat sked"}, {T_SELECT, "Vyber "}, {T_QRG, "Frekvence:"}, {T_WE_CALL, "J volm"}, {T_BAND, " Psmo:"}, {T_TIME, " as:"}, {T_DUPE_QSO, "Duplicitn QSO!"}, {T_CLEAR_THIS_QSO, "Smazat toto QSO"}, {T_EDIT_OLD_QSO, "Editovat star QSO"}, {T_MARK_OLD_QSO, "Oznait star QSO jako ERROR"}, {T_STORE_AS_DUPE, "Uloit toto jako DUPE"}, {T_BAD_CALL, "Tohle nevypad jako znaka"}, {T_N_CALLSIGN, "\nZnaka:"}, {T_AUTOSAVE_OPTS, "Automatick ukldn"}, {T_SAVE_AQ, "Uloit na disk po potu spojen: "}, {T_SAVE_AM, "Uloit na disk po potu minut: "}, {T_FSYNC, "Synchronizovat cache s diskem"}, {T_SAVE_AQF, "Uloit na disketu po potu spojen: "}, {T_SAVE_AMF, "Uloit na disketu po poru minut: "}, {T_DO_MOUNT, "Pipojit disketu pokud nen v /etc/mtab (N/A)"}, {T_FLOPPY_PATH, "Cesta k disket:"}, {T_MOUNT_CMD, "Pkaz pro pipojen (N/A): "}, {T_SW_SHELL, "Pk"}, {T_SW_QSOS, "Spoj"}, {T_SW_LOG, "Log"}, {T_SW_TALK, "Kec"}, {T_SW_SKED, "Sked"}, {T_SW_UNFI, "Nedok"}, {T_SW_DXC, "Clust"}, {T_SW_STAT, "Stat"}, {T_SW_MAP, "Mapa"}, {T_SW_SCOPE, "Osc"}, {T_SW_QRV, "QRV"}, {T_SW_HF, "HF"}, {T_SW_PLAYER, "Player"}, {T_SW_CHART, "Chart"}, {T_SHELL, "Pkazov dek"}, {T_QSOS, "QSOs"}, {T_LOG, "Log"}, {T_TALK, "Kec (rozhovor)"}, {T_SKEDS, "Skedy (dumluven spojen)"}, {T_UNFI, "Nedokonen spojen"}, {T_DXC, "DX Cluster (N/A)"}, {T_STAT, "Statistiky"}, {T_SWAP, "Swap (N/A)"}, {T_MAP, "Graphick mapa"}, {T_SCOPE, "Osciloskop"}, {T_QRV, "QRV"}, {T_HF, "HF"}, {T_CMD, "Pkaz"}, {T_RESPAWN, "Znovusputn [sek]:"}, {T_UNFI_QSO, "Nedokonen spojen"}, {T_N_REMARK, "\nPoznmka:"}, {T_NO_CQ, "Neexistuj dn vzvy"}, {T_TEXT, "Text:"}, {T_SPEED, "Rychlost [WPM]:"}, {T_REPEAT, "Opakovn"}, {T_DELAY, "ekn [0.1s]:"}, {T_ALLOW_UNDEF, "Povolit i kdy je nkter poloka neznm"}, {T_CW_DSCS, "CW%d (%s) %c %s"}, {T_FILENAME, "Soubor:"}, {T_SSB_DSCS, "SSB%d (%s) %c %s"}, {T_UDPPORT, "UDP port:"}, {T_DEVICE, "Klovac zazen:"}, {T_INIT_SPEED, "Poten rychlost [WPM]:"}, {T_INIT_WEIGHT, "Vha (30-70):"}, {T_WPMFROM, "Rychlost WPM od"}, {T_WPMTO, "do"}, {T_USE_SPK, "Pout speaker (reprk)"}, {T_LEADIN, " Pedstih PTT [ms]"}, {T_AUTGIVE, "Run mode aut. give after [chars]"}, {T_IGN_IFACE_S, "Ignoruji sov rozhran %-5s"}, {T_IGN_ADDR_S, "Ignoruji adresu %s"}, {T_ADD_IFACE_SSD, "Pidno rozhran=%-5s vesmr=%s:%d"}, {T_FORCED_ADDR, "Adresa navc %s"}, {T_TIMESKEW, "POZOR! Detekovn pli velk rozdl asu %d oproti %s:%d !\n"}, {T_DISCONNECTING_SD, "Odpojuji od %s:%d"}, {T_ACCEPTED_SD, "Akceptovno spojen od %s:%d"}, {T_CONNECTING_SD, "Pipojuji k %s:%d"}, {T_CONNECTED_SD, "Pipojeno k %s:%d"}, {T_DISCONNECTED_SD, "Odpojen od %s:%d"}, {T_LOADED_CFG_SSSS, "Nateno nastaven pro %s %s (%s,%s)"}, {T_LOADED_CW, "Natena C_W databze"}, {T_PEER_NOT_FOUND, "CHYBA! Tuk %s nenalzen"}, {T_CANT_CREATE_HOME_S, "Nelze vytvoit adres %s"}, {T_CANT_LOAD_CFG, "Nelze nast konfiguraci!\nProgram neme pracovat sprvn!"}, {T_ERR_RC, "Dolo k chyb pi ten konfigurku!\nSoubor byl pravdpodobn uloen novjm Tukem !\nRadji neukldej konfiguraci nebo pijde o data v konfigurku!"}, {T_SES_QTR, " as "}, {T_SES_QRA, " Znaka "}, {T_SES_RST, " RST-O- RST-P- "}, {T_SES_QTH, " tverec "}, {T_SES_QRB, "Body/vzd hel"}, {T_SES_FLG, " Pzn"}, {T_SES_OPE, " Oper "}, {T_SES_EXC, " Exch "}, {T_SES_REM, " Poznmka "}, {T_SES_WELCOME, "Vt t Tuk! "}, {T_SES_PRESS_F10, "Stiskni F10 pro vstup do menu. "}, {T_SES_HAVE_FUN, "Uij si."}, {T_SES_URL, "http://tucnak.nagano.cz "}, {T_SES_ODX, "ODX: "}, {T_SES_ODX_DATA, "%s %s %d km (%s)"}, {T_SES_STAT_TIT, "Spoj Spoj-b OptX Locs Zem Celkem-b Prm"}, {T_SES_AVG, "Prm: %5.2f"}, {T_SES_WPM, " QRQ: %d %02d%%"}, {T_SF_WWLS, " tverce: %d"}, {T_SF_WWLS_UNDER, "----------------"}, {T_SF_EXCS, " EXC poloky: %d"}, {T_SF_EXCS_UNDER, "--------------------"}, {T_SF_MISS_EXCS, " Missing EXCs: %d"}, {T_SF_MISS_EXCS_UNDER, "---------------------"}, {T_SF_PREFS, " PREFs: %d"}, {T_SF_PREFS_UNDER, "-------------"}, {T_SF_DXCS, " Zem: %d"}, {T_SF_DXCS_UNDER, "-------------"}, {T_SF_WKD_WWLS, " Dlan tverce: %d"}, {T_SF_WKD_WWLS_UNDER, "----------------------"}, {T_SF_QSO_WWL4, " Spojen do velkch tverc: %d"}, {T_SF_QSO_WWL4_UNDER, "-----------------------------------"}, {T_SF_STATS_BAND, " Statistiky pro psmo %s"}, {T_SF_STATS_BAND_UNDER, "==============================="}, {T_SF_CONTEST, "Contest: %s"}, {T_SF_ALLBQSOS, "All bands QSOs: %d"}, {T_SF_ALLBQSOP, "All bands QSOp: %d"}, {T_SF_ALLBPTS, "All bands pts: %d"}, {T_SF_QSOS, "QSOs: %d"}, {T_SF_QSOP, "QSO points: %d"}, {T_SF_PTS, "Points: %d"}, {T_SF_AVG_PTS, "Prmer bod/spojen: %5.2f"}, {T_SF_AVG_QSOP, "Prmr bod za spojen/spojen: %5.2f"}, {T_BAND_RO, "Psmo je pouze ke ten"}, {T_THIS_BAND, "Toto psmo"}, {T_OTHER_BANDS, "Ostatn psma"}, {T_CW_DB, "C_W databze"}, {T_PROC_EXITED, "*** Proces skonil\n"}, {T_WE_CALL2, "my volme"}, {T_WE_LISTEN, "my poslouchme"}, {T_QSL, "Slben QSL"}, {T_RECORD, " Nahrvn provozu"}, {T_MAXMIN, "Max. doba nahrvn"}, {T_TEMPLATE, "ablona pro nahrvan soubor"}, {T_PCM8, "8 bitov PCM"}, {T_PCM16, "16 bitov PCM"}, {T_ULAW, "u-law"}, {T_ALAW, "A-law"}, {T_IMAADPCM, "IMA ADPCM"}, {T_MSADPCM, "MS ADPCM"}, {T_GSM610, "GSM 6.10"}, {T_CHANNELS, "Poet kanl"}, {T_SAMPLERATE, "Vzorkovac frekvence"}, {T_FILLOP, "Vypl znaky opertor"}, {T_HK_FILLOP, "V"}, {T_RECAQRB, "Pepoti QRB,QTF"}, {T_HK_RECAQRB, "P"}, {T_NETWORK, "S a trasovn"}, {T_HK_NETWORK, "T"}, {T_IF_IGNORE, "Ignorovat interfejsy:"}, {T_IP_IGNORE, " Ignorovat podst:"}, {T_IP_ANNOUNCE, " Annoncovat do st:"}, {T_TRACE_BCAST, "Trasovat broadcasty "}, {T_TRACE_SOCK, "Trasovat sockety"}, {T_TRACE_RECV, "Trasovat pijat data"}, {T_TRACE_SEND, "Trasovat odeslan data"}, {T_TRACE_QSOS, "Trasovat spojen"}, {T_TRACE_SDEV, "Trace rotars"}, {T_NOT_MOUNTED_S, "Svazek nepipojen %s"}, {T_RECSRC_NONE, "Nenastavovat"}, {T_RECSRC_MIC, "Mikrofon"}, {T_RECSRC_LINE, "Linkov vstup"}, {T_NEW_CALL, "Nov!"}, {T_HK_NEW_CALL, "n"}, {T_QRV_ON_S, "QRV na %s"}, {T_SKED_QRG, "QRG pro skedy"}, {T_HK_SKED_QRG, "G"}, {T_N_SKED_QRG, "\nQRG pro skedy:"}, {T_GRAB_BAND, "Pevzt psmo"}, {T_HK_GRAB_BAND, "P"}, {T_FORCE_RUN, "RUN md nsiln"}, {T_HK_FORCE_RUN, "R"}, {T_EXPORT_STATS, "Exportovat statistiky"}, {T_HK_EXPORT_STATS, "T"}, {T_SF_TOP_DX, " TOP %d DX spojen:"}, {T_SF_TOP_DX_UNDER, "----------------------"}, {T_ROTAR, "Rotator"}, {T_HK_ROTAR, "R"}, {T_AZIMUTH, " Azimut"}, {T_ELEVATION, "Elevace"}, {T_CH_SPY, "pehovn"}, {T_HK_CH_SPY, "P"}, {T_CH_ENDSPY, "Konec pehovn"}, {T_HK_CH_ENDSPY, "K"}, {T_EXPORT_TITLPAGE, "Exportovat tituln strnku"}, {T_HK_EXPORT_TITLPAGE, "T"}, {T_BREAK_RECORD, "Peruit nahrvn"}, {T_HK_BREAK_RECORD, "P"}, {T_GLOBAL_OPERATOR, "Zmnit na vech psmech"}, {T_GLOBAL_OPERATOR2, "Globln"}, {T_MAXFRAG, "Max. poet fragment (>=2)"}, {T_PLAY_LAST, "Play last sample"}, {T_HK_PLAY_LAST, "P"}, {T_MISCOPTS, "Rzn nastaven"}, {T_HK_MISCOPTS, "R"}, {T_LOGLINES, "dky logu: "}, {T_SKEDSHIFT, "Posuv skedu (minuty): "}, {T_STARTBAND, "Psmo po startu: "}, {T_GFX_X_CH, "Rozlien (znaky):"}, {T_GFX_Y_CH, "x"}, {T_GFX_X_PX, "Rozlien (body):"}, {T_GFX_Y_PX, "x"}, {T_CALL_INFO, "Informace o znace"}, {T_HK_CALL_INFO, "I"}, {T_SF_QSO_HOUR, "QSO/hod: %d"}, {T_SF_QSOP_HOUR, "Body/hod: %d"}, {T_SF_QSOP_50QSO, "Body/posl. 50 QSO: %d"}, {T_SF_HOURS, " Hodiny"}, {T_SF_HOURS_UNDER, "----------"}, {T_SF_HOURS_TITLE, "Hodiny Body Spojen prmr bod/QSO"}, {T_QSO_CHECK, "Kontrola spojen"}, {T_HK_QSO_CHECK, "K"}, {T_AUDIO, "Audio"}, {T_HK_AUDIO, "D"}, {T_ALSA, "Alsa"}, {T_OSS, "OSS"}, {T_SSBD, "SSB dmon"}, {T_DISKFREE, "Minimln msto na disku [MiB]"}, {T_FORMAT, "Formt nahrvn"}, {T_PCM_PLAY, "Alsa pehrvn"}, {T_PCM_REC, "Alsa zznam"}, {T_PERIOD, "Period time [ms]"}, {T_BUFFER, "Buffer time [ms]"}, {T_ALSA_MIXER, "Alsa mixer"}, {T_CAPTURE, "Zdroj zznamu"}, {T_DSP, "Cesta k /dev/dsp"}, {T_MIXER, "Cesta k /dev/mixer"}, {T_RECSRC, "Record source"}, {T_SSBD_HOSTNAME, "SSBD stroj:"}, {T_HOSTNAME, "Stroj:"}, {T_SLASHKEY, "Klvesa pro lomtko"}, {T_FIXQRG, "Opravit QRG"}, {T_HK_FIXQRG, "v"}, {T_ENTER_QRG, "Zadej pesnou frekvenci QRG [Hz]"}, {T_BAD_QRG, "Chybn zadan frekvence"}, {T_CALLSIGN3, "Znaka"}, {T_CALLSIGN_KST, "Znaka stanice na KST:"}, {T_CANT_INIT_WINKEY_S, "Nelze inicializovat winkey na %s"}, {T_WINKEYOPTS, "Nastaven Winkey"}, {T_WK_WK2, "Rychl inicializace Winkey2"}, {T_WK_USEPOT, "Pout potenciometr"}, {T_WK_USEBUT, "Pout tlatka"}, {T_WK_KM_B, "Curtis-B"}, {T_WK_KM_A, "Curtis-A"}, {T_WK_KM_U, "Ultimatic"}, {T_WK_KM_G, "Run kl"}, {T_WK_SWAP, "Prohodit pastiku (levk)"}, {T_RIGOPTS, "Rdio"}, {T_HK_RIGOPTS, "R"}, {T_RIG_DEVICE, "Device:"}, {T_RIG_MODEL, "Model"}, {T_RIG_SPEED, "Baudrate: "}, {T_RIG_CIV, "CIV address"}, {T_RIG_FREQSHIFT, "Freq. shift SSB->CW"}, {T_RIG_CHOOSE, "Choose"}, {T_ROTAROPTS, "Rottory"}, {T_HK_ROTAROPTS, "I"}, {T_DSSAVER, "Vypnout spoi obrazovky"}, {T_DESC, "Popis"}, {T_ROT_NONE, "None"}, {T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys"}, {T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI"}, {T_ROT_HAMLIB, "Hamlib (N/A)"}, {T_ROT_REMOTE, "Remote (N/A)"}, {T_ROT_VID, "VID:"}, {T_ROT_PID, "PID:"}, {T_ROT_SERIAL, "Serial #"}, {T_ROT_ADD, "Add new rotator"}, {T_HK_ROT_ADD, "W"}, {T_ROT_REMOVE, "Remove rotator"}, {T_HK_ROT_REMOVE, "R"}, {T_TIMEOUT, "Timeout:"}, {T_BEAMWIDTH, "ka laloku"}, {T_SADDR, "Communication address:"}, {T_MODEL, "Model:"}, {T_ROT_REM_ROTSTR, "Rotator letter for remote"}, {T_QSOGLOB, "Global QSO NR"}, {T_PREFGLOB, "Global prefix"}, {T_NOT_RECORDING_S, "Not recording - %s"}, {T_SKEDCOUNT, "Poet sked v popup okn: "}, {T_FONTHEIGHT, "Vka fontu (16-32): "}, {T_RIG_POLL_MS, "Rig poll interval [ms]: "}, {T_RIG_QRG_R2T, "Set band from radio"}, {T_RIG_QRG_T2R, "Change band on radio"}, {T_RIG_MODE_T2R, "Change mode on radio"}, {T_RUN_MODE, "Run mode"}, {T_HK_RUN_MODE, "M"}, {T_SP_MODE, "S&P mode"}, {T_HK_SP_MODE, "M"}, {T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save"}, {T_RIG_DEBUG, "Debug rig"}, {T_HF_RATE, "Rate: %3d/10 %3d/60"}, {T_HF_BAND, "Band QSO Point Mult"}, {T_HF_SUM, "Sum:"}, {T_HF_LAST, "Last Q-%s P-%s"}, {T_EVEN, "TX even"}, {T_HK_EVEN, "v"}, {T_ODD, "TX odd"}, {T_HK_ODD, "d"}, {T_1ST, "TX 1st"}, {T_HK_1ST, "1"}, {T_2ND, "TX 2nd"}, {T_HK_2ND, "2"}, {T_HF_SCORE, "Score:"}, {T_EXPMODE, "Expedition mode"}, {T_TTTYPE, "Only digits mean"}, {0, NULL} }; struct translation translation_slovak [] = { {0, NULL}, {T__CHAR_SET, "iso8859-2"}, {T__LANGUAGE, "Slovak"}, {T_ABOUT, "O programe"}, {T_BAD_NUMBER, "Chybn slo"}, {T_BAD_STRING, "Chybn reazec"}, {T_BASIC_HELP, "Stla F10 pre vstup do menu."}, {T_BLOCK_CURSOR, "Blokov kurzor"}, {T_CANCEL, "Zrui"}, {T_CHARACTER_SET, "Znakov sada"}, {T_COLOR, "Farbiky"}, {T_COPYING, "Koprovanie"}, {T_DIFFERENCE, "rozdiel"}, {T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Urite chce ukonit Tuka?"}, {T_EMPTY_STRING_NOT_ALLOWED, "Przdny reazec nie je povolen"}, {T_ERROR, "Chyba"}, {T_WARNING, "Varovanie"}, {T_EXIT, "Koniec"}, {T_EXIT_TUCNAK, "Ukonenie Tuka"}, {T_FILE, "Sbor"}, {T_FULL_SCREEN, "Cel obrazovka"}, {T_HELP, "Pomoc"}, {T_HK_ABOUT, "O"}, {T_HK_BEOS_TERMINAL, "B"}, {T_HK_CHARACTER_SET, "Z"}, {T_HK_COPYING, "P"}, {T_HK_EXIT, "E"}, {T_HK_FILE, "S"}, {T_HK_FULL_SCREEN, "C"}, {T_HK_HELP, "P"}, {T_HK_LANGUAGE, "J"}, {T_HK_MEMORY_INFO, "M"}, {T_HK_OS_SHELL, "O"}, {T_HK_SCREEN, "S"}, {T_HK_SETUP, "S"}, {T_HK_TERMINAL_OPTIONS, "T"}, {T_HK_TWTERM, "T"}, {T_HK_WINDOW, "O"}, {T_HK_XTERM, "X"}, {T_KOI8R_FRAMES, "Rmeky KOI8-R"}, {T_LANGUAGE, "Jazyk"}, {T_LAST, "posledn"}, {T_LINUX_OR_OS2_FRAMES, "Rmeky typu Linux alebo OS/2"}, {T_MEMORY_INFO, "Informcie o pamti"}, {T_NO_FRAMES, "Bez rmekov"}, {T_NO, "Nie"}, {T_NUMBER_EXPECTED, "Oakvm slo"}, {T_NUMBER_OUT_OF_RANGE, "islo je mimo rozsah"}, {T_OK, "OK"}, {T_OS_SHELL, "Prkazov riadok"}, {T_RESTRICT_FRAMES_IN_CP850_852, "Ohranien rmeky v cp850/852"}, {T_UTF_8_IO, "UTF-8 Vstup/Vstup"}, {T_SCREEN, "Screen"}, {T_SETUP, "Nastavenia"}, {T_TERMINAL_OPTIONS, "Nastavenia terminlu"}, {T_TUCNAK__TACLOG_LIKE, "Tuk " VERSION_STRING "\n\nTACLOGu podobn dennk pre VKV/mikrovlnn preteky"}, {T_TWTERM, "Twterm"}, {T_USE_11M, "Pouva ^[[11m"}, {T_VT_100_FRAMES, "Rmeky VT 100"}, {T_WELCOME_TO_TUCNAK, "Vta a Tuk!"}, {T_WELCOME, "Vitaj"}, {T_XTERM, "Xterm"}, {T_YES, "no"}, {T_CANT_APPEND_S, "Nemono prida na koniec sboru %s"}, {T_CANT_WRITE, "Nemono zapsa do sboru"}, {T_CANT_WRITE_S, "Nemono zapsa do sboru %s"}, {T_CANT_READ, "Nemono preta sbor"}, {T_CANT_READ_S, "Nemono preta sbor %s"}, {T_SAVED_S, "Uloen %s"}, {T__CW_, " CW "}, {T_CWW_KEYS, " PgUp +, PgDn - rchlos CW "}, {T_CANT_OPEN_S, "Nemono otvori %s"}, {T_CANT_LOCK, "Nemono zamkn sbor"}, {T_CANT_LOCK_S, "Nemono zamkn sbor %s"}, {T_LOADING_CTEST_S, "*** Natan pretek %s"}, {T_NO_FILES, "Neexistuj iadn sbory"}, {T_BAND_EXIST_SS, "POZOR! Psmo %s (%s) u existuje"}, {T_BAND_NOT_OPEN, "Psmo nie je v tomto preteku aktvne"}, {T_NO_BANDS, "Neexistuj iadn psma"}, {T_CANT_SET_GR_S, "Nemono nastavi grafick md-%s"}, {T_GCALL, "Znacka: %s"}, {T_GWWL, "Stvorec: %s"}, {T_GQRB, "Vzdial.: %d km"}, {T_GQTF, "Uhol: %d"}, {T_GSEN, "Odoslane: %s %s"}, {T_GRCV, "Prijate: %s %s"}, {T_GTIM, "Cas: %s"}, {T_GOPE, "Operator: %s"}, {T_GREM, "Pozn: %s"}, {T_GWKD, "Wkd: %d"}, {T_GINC, "Zisk azim:%d"}, {T_GLON, "Dlz: %7.2f %-6s"}, {T_GLAT, "Sir: %7.2f %-6s"}, {T_GLOC, "Lok: %s"}, {T__PLESE_WAIT_, " Prosim o chvilu strpenia "}, {T__RO_BAND, " PSMO LEN PRE TANIE"}, {T_COPYING_VER, "The ultimate contestlog - necessary as known\n\nVerzia " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nTento program je slobodn softvr; me ho it a/alebo pozmeova poda ustanoven Obecnej verejnej licencie GNU, vydanej Free Software Foundation; a to verzie 2 a vyej tejto licencie."}, {T_CTEST_ACTIVE, "U existuje aktvny pretek "}, {T_NO_CTESTS, "iadn preteky"}, {T_NO_CCLOSE, "Nie je o zavrie"}, {T_REALLY, "Urite?"}, {T_CLOSE_CTEST, "Naozaj chce zavrie tento pretek?"}, {T_GUI_LD, "Uv. prostredie: %ld "}, {T_SBRK, "sbrk: %ld"}, {T_CWI, "C_W: %d cw poloiek, %d wc poloiek, posledn %d\n"}, {T_EXC, "Exc: %s %d exc poloek, %d exc poloek, posledn %d\n"}, {T_VEXC, "Kontrolovan EXC: %d poloek\n"}, {T_DWI, "D_W: %d prefixov, %d zem DXCC, %d tvorcov\n"}, {T_NAMES, "Names: %d mien\n"}, {T_MASTER, "Master: %d calls\n"}, {T_MEMS, "Pam:"}, {T_NMY, " Ja: %s:%d\n"}, {T_NGLOBAL, "Hl.f: %s:%d\n"}, {T_NMASTER, " f: %s %s %s:%d %s %s\n"}, {T_NSLAVES, "\nPodriaden:\n"}, {T_NINFO, "Sieov informcie"}, {T_NO_BANDS_QRV, "iadn aktvne psma"}, {T_NO_BANDS_CONF, "iadn psma"}, {T_NOT_AVAILABLE, "Nedostupn"}, {T_ADD_SUBWIN, "Prida okno"}, {T_HK_ADD_SUBWIN, "P"}, {T_CLOSE_SUBWIN, "Zavrie okno"}, {T_HK_CLOSE_SUBWIN, "Z"}, {T_HK_NINFO, "S"}, {T_NEW, "Nov"}, {T_HK_NEW, "N"}, {T_NEW_WIZZ, "Sprievodca novm pretekom"}, {T_HK_NEW_WIZZ, "P"}, {T_NEW_NET, "Nov ze st"}, {T_HK_NEW_NET, "S"}, {T_OPEN, "Otvori"}, {T_HK_OPEN, "O"}, {T_SAVE, "Uloi"}, {T_HK_SAVE, "U"}, {T_EXPORT_EDI, "Exportova do EDI"}, {T_HK_EXPORT_EDI, "E"}, {T_EXPORT_REPORT, "Exportova do reportu (VKVPA)"}, {T_HK_EXPORT_REPORT, "R"}, {T_EXPORT_ADIF, "Exportova do ADIFu"}, {T_HK_EXPORT_ADIF, "A"}, {T_EXPORT_CBR, "Export as ADIF"}, {T_HK_EXPORT_CBR, "B"}, {T_EXPORT_HTML, "Exportova do HTML"}, {T_HK_EXPORT_HTML, "H"}, {T_EXPORT_WIKI, "Export as MediaWiki"}, {T_HK_EXPORT_WIKI, "W"}, {T_IMPORT_EDI, "Importova EDI"}, {T_HK_IMPORT_EDI, "I"}, {T_IMPORT_ADIF, "Importovat ADIF"}, {T_HK_IMPORT_ADIF, "M"}, {T_IMPORT_SWAP, "Importovat swap"}, {T_HK_IMPORT_SWAP, "S"}, {T_IMPORT_LIST, "Import list"}, {T_HK_IMPORT_LIST, "L"}, {T_CONTEST_OP, "Voby poas preteku"}, {T_HK_CONTEST_OP, "O"}, {T_CLOSE_CONTEST, "Zavrie pretek"}, {T_HK_CLOSE_CONTEST, "Z"}, {T_ADD_ERROR, "Prida chybn spojenie"}, {T_HK_ADD_ERROR, "E"}, {T_CHOP, "Zmena opertora"}, {T_HK_CHOP, "O"}, {T_CW_CTEST, "Aktualizova C_W z preteku"}, {T_HK_CW_CTEST, "C"}, {T_CW_BAND, "Aktualizova C_W z psma"}, {T_HK_CW_BAND, "B"}, {T_EXC_CTEST, "Aktualizovat EXC ze zvodu"}, {T_HK_EXC_CTEST, "P"}, {T_EXC_BAND, "Aktualizovat EXC z psma"}, {T_HK_EXC_BAND, "D"}, {T_IMPORT_EBW, "Importova DL8EBW db."}, {T_HK_IMPORT_EBW, "W"}, {T_NO_CTEST, "iadn pretek"}, {T_NO_PEERS, "al Tuci nenjden"}, {T_NO_MASTER, "f je nedostupn!"}, {T_CTEST_DEF, "Nastavenie preteku"}, {T_HK_CTEST_DEF, "R"}, {T_BAND_DEF, "Nastavenie psiem"}, {T_HK_BAND_DEF, "P"}, {T_HK_RESPOP, "O"}, {T_CW_DAEMON, "Klovn CW"}, {T_HK_CW_DAEMON, "M"}, {T_CW_CQ, "CW vzvy"}, {T_HK_CW_CQ, "C"}, {T_SSB_CQ, "SSB vzvy"}, {T_HK_SSB_CQ, "S"}, {T_AUTOSAVE, "Automatick ukladanie"}, {T_HK_AUTOSAVE, "A"}, {T_LOAD_CFG_NET, "Nata nastavenie zo siete"}, {T_HK_LOAD_CFG_NET, "N"}, {T_LOAD_CW_NET, "Nata C_W zo siete"}, {T_HK_LOAD_CW_NET, "W"}, {T_SAVE_CFG, "Uloi nastavenia"}, {T_HK_SAVE_CFG, "U"}, {T_CONTEST, "Pretek"}, {T_HK_CONTEST, "R"}, {T_EDIT, "Edit"}, {T_HK_EDIT, "E"}, {T_BANDS, "Psma"}, {T_HK_BANDS, "P"}, {T_SUBWINS, "Okn"}, {T_HK_SUBWINS, "O"}, {T_BAND_SETTINGS_SC, "Nastavenie pre psmo %c %s"}, {T_QRV_ON_THIS_BAND, "QRV na tomto psme"}, {T_QRV_IN_THIS_CTEST, "QRV v tomto preteku"}, {T_READ_ONLY, "Len na tanie"}, {T_MULTI, "Multi"}, {T_SINGLE, "Single"}, {T_CHECK, "Check"}, {T_TXEQUIP, " Vys. zariadenie:"}, {T_POWER, " Vkon:"}, {T_RXEQUIP, " Prm. zariad.:"}, {T_ANTENNA, " Antna:"}, {T_AGLASL, " vka zem;more:"}, {T_OPS, " Opertori:"}, {T_SPACES1, " "}, {T_REMARKS, " Poznmky:"}, {T_OK_SECTION_SINGLE, "Kategorie Single v OK"}, {T_OK_SECTION_MULTI, "Kategorie Multi v OK"}, {T_QRG_MIN, "Hranice psma od"}, {T_QRG_MAX, "do [kHz]"}, {T_ADIFBAND, "Nzev psma pro ADIF"}, {T_SKEDQRG, "Frek. pro skedy (lib. formt)"}, {T_BAND_LO, "LO transvertoru [Hz]"}, {T_BANDSW, "Hodnota prepinace pasem"}, {T_RESPOP, "Zodpovedn opertor"}, {T_NAME, "Meno Priezv:"}, {T_CALLSIGN, " Znaka:"}, {T_ADDRESS, " Adresa:"}, {T_POSTCODE, " PS:"}, {T_CITY, " Mesto:"}, {T_COUNTRY, " Zem:"}, {T_PHONE, " Telefn:"}, {T_BBSEMAIL, " BBS/E-mail:"}, {T_QP0, " --ni -- "}, {T_QP1, " 1 QSOp*QSOp_m (Stand. IARU)"}, {T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)"}, {T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)"}, {T_QP4, " 4 WWL_ring*QSOp_m (OK VKVPA)"}, {T_QP5, " 5 St_miles*QSOp_m"}, {T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)"}, {T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)"}, {T_QP8, " 8 WWL_dist*QSOp_m (Baltsk preteky)"}, {T_QP9, " 9 WWL_dist*QSOp_m (Baltsk & seversk poln de)"}, {T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)"}, {T_QP11, "11 QSOp_m *3 if F (F 50MHz)"}, {T_QP12, "12 RSGB DC (distrikty)"}, {T_QP13, "13 kontinent (CQ WW DX Contest)"}, {T_QP14, "14 kontinent+psmo (CQ WW WPX Contest)"}, {T_QP15, "15 VHF Band (ARRL VHF, CQ VHF)"}, {T_QP16, "16 QSOp *4 if F (Champ. de France)"}, {T_TP0, " --none -- "}, {T_TP1, " 1 Nsoben (Std. IARU)"}, {T_TP2, " 2 Stan (RSGB Backpacker, VRZA, Sicily)"}, {T_TP3, " 3 Mult. all bands (CQ WW DX Contest)"}, {T_TP4, " 4 All bands togeth. (ARRL VHF)"}, {T_NEW_CTEST, "Nov pretek"}, {T_CANT_TRUNC, "Nemono skrti sbor s popisom preteku"}, {T_NAME_OF_CTEST, " Nzov preteku: "}, {T_CALL_OF_CTEST, "Znaka v preteku: "}, {T_CLUB_ST, "Klub. znaka:"}, {T_YOURWWL, "Tvoj WWL:"}, {T_YOUREXC, "Tvoj EXC:"}, {T_DATE_OF_CTEST, "Dtum preteku:"}, {T_QSOUSED, "QSO NR pouit"}, {T_QSOPM, " QSOp ns.:"}, {T_WWLUSED, "WWL pouit"}, {T_WWLB, "WWL bonus:"}, {T_WWLM, " WWL ns.: "}, {T_EXCUSED, "EXC pouit"}, {T_EXCB, " EXC bonus:"}, {T_EXCM, " EXC ns.: "}, {T_EXCNAME, "EXC jmno:"}, {T_PREFM, "PREF nsob:"}, {T_DXCB, " DXC bonus:"}, {T_DXCM, " DXC ns.: "}, {T_RSTUSED, "RST pouit"}, {T_DEFRS, " Ben RS: "}, {T_DEFRST, "Ben RST:"}, {T_ALSORSTR, "Tak pro RST-R"}, {T_QP_CALC, " Vpoet QSOp:"}, {T_TO_CALC, "Vpoet celku:"}, {T_EDI_PROP, "EDI poloky"}, {T_RESPOP2, "Zodpovedn opertor"}, {T_EDIT_QSO_CD, "Editcia spojen %c: %03d"}, {T_CALLSIGN2, " Znaka:"}, {T_CLUB, " Klub:"}, {T_PADR1, " PAdr1:"}, {T_PADR2, " PAdr2:"}, {T_RS, " RS:"}, {T_RST, " RST:"}, {T_OPERATOR, "Opertor:"}, {T_DATE, " Dtum:"}, {T_MODE, " Md:"}, {T_RSTS, "Odos.RST:"}, {T_RSTR, "Prij.RST:"}, {T_QSONRS, "Odos.s:"}, {T_QSONRR, "Prij.s:"}, {T_OPTEXCH, " OptExch:"}, {T_WWL, " tvorec:"}, {T_REMARK, "Poznmka:"}, {T_QRV2, " QRV on:"}, {T_WKD, " WKD:"}, {T_SEND_SKED, "Posla sked"}, {T_SELECT, "Vber "}, {T_QRG, "Frekvencia:"}, {T_WE_CALL, "J volm"}, {T_BAND, " Psmo:"}, {T_TIME, " as:"}, {T_DUPE_QSO, "Duplicitn QSO!"}, {T_CLEAR_THIS_QSO, "Zmaza toto QSO"}, {T_EDIT_OLD_QSO, "Editova star QSO"}, {T_MARK_OLD_QSO, "Oznait star QSO ako ERROR"}, {T_STORE_AS_DUPE, "Uloit toto ako DUPE"}, {T_BAD_CALL, "Toto nevyzer ako znaka"}, {T_N_CALLSIGN, "\nZnaka:"}, {T_AUTOSAVE_OPTS, "Automatick ukladanie"}, {T_SAVE_AQ, "Uloi na disk po pote spojen: "}, {T_SAVE_AM, "Uloi na disk po pote mint: "}, {T_FSYNC, "Synchronizova cache s diskom"}, {T_SAVE_AQF, "Uloi na disketu po pote spojen: "}, {T_SAVE_AMF, "Uloi na disketu po pote mint: "}, {T_DO_MOUNT, "Pripoji disketu pokia nie je v /etc/mtab (N/A)"}, {T_FLOPPY_PATH, "Cesta k diskete:"}, {T_MOUNT_CMD, "Prkaz pre pripojenie (N/A): "}, {T_SW_SHELL, "Prk"}, {T_SW_QSOS, "Spoj"}, {T_SW_LOG, "Log"}, {T_SW_TALK, "Kec"}, {T_SW_SKED, "Sked"}, {T_SW_UNFI, "Nedok"}, {T_SW_DXC, "Clust"}, {T_SW_STAT, "Stat"}, {T_SW_MAP, "Mapa"}, {T_SW_SCOPE, "Osc"}, {T_SW_QRV, "QRV"}, {T_SW_HF, "HF"}, {T_SW_PLAYER, "Player"}, {T_SW_CHART, "Chart"}, {T_SHELL, "Prkazov riadok"}, {T_QSOS, "QSOs"}, {T_LOG, "Log"}, {T_TALK, "Kec (rozhovor)"}, {T_SKEDS, "Skedy (dohovoren spojenia)"}, {T_UNFI, "Nedokonen spojenia"}, {T_DXC, "DX Cluster (N/A)"}, {T_STAT, "tatistiky"}, {T_SWAP, "Swap (N/A)"}, {T_MAP, "Graphick mapa"}, {T_SCOPE, "Osciloskop"}, {T_QRV, "QRV"}, {T_HF, "HF"}, {T_CMD, "Prkaz"}, {T_RESPAWN, "Znovuspustenie [sek]:"}, {T_UNFI_QSO, "Nedokonen spojenie"}, {T_N_REMARK, "\nPoznmka:"}, {T_NO_CQ, "Neexistuj iadn vzvy"}, {T_TEXT, "Text:"}, {T_SPEED, "Rchlos [WPM]:"}, {T_REPEAT, "Opakovanie"}, {T_DELAY, "akanie [0.1s]:"}, {T_ALLOW_UNDEF, "Povoli aj ke je niektor poloka neznma"}, {T_CW_DSCS, "CW%d (%s) %c %s"}, {T_FILENAME, "Sbor:"}, {T_SSB_DSCS, "SSB%d (%s) %c %s"}, {T_UDPPORT, " UDP port:"}, {T_DEVICE, "Kovacie zariadenie:"}, {T_INIT_SPEED, "Poiaton rchlos [WPM]:"}, {T_INIT_WEIGHT, "Vha (30-70)"}, {T_WPMFROM, "Rychlost WPM od"}, {T_WPMTO, "do"}, {T_USE_SPK, "Poui speaker (reprk)"}, {T_LEADIN, " Pedstih PTT [ms]"}, {T_AUTGIVE, "Run mode aut. give after [chars]"}, {T_IGN_IFACE_S, "Ignorujem sieov rozhranie %-5s"}, {T_IGN_ADDR_S, "Ignorujem adresu %s"}, {T_ADD_IFACE_SSD, "Pridan rozhranie=%-5s vesmer=%s:%d"}, {T_FORCED_ADDR, "Adresa naviac %s"}, {T_TIMESKEW, "POZOR! Detegovan prli vek rozdiel asu %d oproti %s:%d !\n"}, {T_DISCONNECTING_SD, "Odpjam od %s:%d"}, {T_ACCEPTED_SD, "Akceptovan spojenie od %s:%d"}, {T_CONNECTING_SD, "Pripjam k %s:%d"}, {T_CONNECTED_SD, "Pripojen k %s:%d"}, {T_DISCONNECTED_SD, "Odpojen od %s:%d"}, {T_LOADED_CFG_SSSS, "Natan nastavenie pre %s %s (%s,%s)"}, {T_LOADED_CW, "Natan C_W databza"}, {T_PEER_NOT_FOUND, "CHYBA! Tuk %s nenjden"}, {T_CANT_CREATE_HOME_S, "Nemono vytvori adresr %s"}, {T_CANT_LOAD_CFG, "Nemono nata konfigurciu!\nProgram neme pracova sprvne!"}, {T_ERR_RC, "Dolo k chybe pri tan konfigurku!\nSbor bol pravdepodobne uloen novm Tukom !\nRadej neukladaj konfigurciu inak prde o dta v konfigurku!"}, {T_SES_QTR, " as "}, {T_SES_QRA, " Znaka "}, {T_SES_RST, " RST-O- RST-P- "}, {T_SES_QTH, " tvorec "}, {T_SES_QRB, "Body/vzd Uhol"}, {T_SES_FLG, " Przn"}, {T_SES_OPE, " Oper "}, {T_SES_EXC, " Exch "}, {T_SES_REM, " Poznmka "}, {T_SES_WELCOME, "Vta a Tuk! "}, {T_SES_PRESS_F10, "Sta F10 pre vstup do menu. "}, {T_SES_HAVE_FUN, "Uvaj si :-)"}, {T_SES_URL, "http://tucnak.nagano.cz "}, {T_SES_ODX, "ODX: "}, {T_SES_ODX_DATA, "%s %s %d km (%s)"}, {T_SES_STAT_TIT, "Spoj Spoj-b OptX Locs Zeme Celkom-b AVG"}, {T_SES_AVG, "Priem: %5.2f"}, {T_SES_WPM, " QRQ: %d %02d%%"}, {T_SF_WWLS, " tvorce: %d"}, {T_SF_WWLS_UNDER, "----------------"}, {T_SF_EXCS, " EXC poloky: %d"}, {T_SF_EXCS_UNDER, "--------------------"}, {T_SF_MISS_EXCS, " Missing EXCs: %d"}, {T_SF_MISS_EXCS_UNDER, "---------------------"}, {T_SF_PREFS, " PREFs: %d"}, {T_SF_PREFS_UNDER, "-------------"}, {T_SF_DXCS, " Zeme: %d"}, {T_SF_DXCS_UNDER, "-------------"}, {T_SF_WKD_WWLS, " Roben tvorce: %d"}, {T_SF_WKD_WWLS_UNDER, "----------------------"}, {T_SF_QSO_WWL4, " Spojenia do vekch tvorcov: %d"}, {T_SF_QSO_WWL4_UNDER, "-----------------------------------"}, {T_SF_STATS_BAND, " tatistiky pre psmo %s"}, {T_SF_STATS_BAND_UNDER, "==============================="}, {T_SF_CONTEST, "Contest: %s"}, {T_SF_ALLBQSOS, "All bands QSOs: %d"}, {T_SF_ALLBQSOP, "All bands QSOp: %d"}, {T_SF_ALLBPTS, "All bands pts: %d"}, {T_SF_QSOS, "QSOs: %d"}, {T_SF_QSOP, "QSO points: %d"}, {T_SF_PTS, "Points: %d"}, {T_SF_AVG_PTS, "Priemer bodov/spojenia: %5.2f"}, {T_SF_AVG_QSOP, "Priemer bodov za spojenie/spojenia: %5.2f"}, {T_BAND_RO, "Psmo je len na tanie"}, {T_THIS_BAND, "Toto psmo"}, {T_OTHER_BANDS, "Ostatn psma"}, {T_CW_DB, "C_W databza"}, {T_PROC_EXITED, "*** Proces skonil\n"}, {T_WE_CALL2, "my volme"}, {T_WE_LISTEN, "my povame"}, {T_QSL, "Sben QSL"}, {T_RECORD, "Nahrvanie prevdzky"}, {T_MAXMIN, " Max. doba nahrvn"}, {T_TEMPLATE, "ablona pre nahrvan sbor"}, {T_PCM8, "8 bitov PCM"}, {T_PCM16, "16 bitov PCM"}, {T_ULAW, "u-law"}, {T_ALAW, "A-law"}, {T_IMAADPCM, "IMA ADPCM"}, {T_MSADPCM, "MS ADPCM"}, {T_GSM610, "GSM 6.10"}, {T_CHANNELS, "Poet kanlov"}, {T_SAMPLERATE, " Vzorkovacia frekvencia"}, {T_FILLOP, "Vypl znaky opertorov"}, {T_HK_FILLOP, "V"}, {T_RECAQRB, "Prepotaj QRB,QTF"}, {T_HK_RECAQRB, "R"}, {T_NETWORK, "Sie a trasovanie"}, {T_HK_NETWORK, "E"}, {T_IF_IGNORE, " Ignorova zariadenia:"}, {T_IP_IGNORE, " Ignorova podsiete:"}, {T_IP_ANNOUNCE, " Annoncova do siet:"}, {T_TRACE_BCAST, "Trasova broadcasty "}, {T_TRACE_SOCK, "Trasova sockety"}, {T_TRACE_RECV, "Trasova prijat dta"}, {T_TRACE_SEND, "Trasova odoslan dta"}, {T_TRACE_QSOS, "Trasova spojenia"}, {T_TRACE_SDEV, "Trace rotars"}, {T_NOT_MOUNTED_S, "Zvzok nepripojen %s"}, {T_RECSRC_NONE, "Nenastavova"}, {T_RECSRC_MIC, "Mikrofn"}, {T_RECSRC_LINE, "Linkov vstup"}, {T_NEW_CALL, "Nov!"}, {T_HK_NEW_CALL, "n"}, {T_QRV_ON_S, "QRV na %s"}, {T_SKED_QRG, "QRG pre skedy"}, {T_HK_SKED_QRG, "G"}, {T_N_SKED_QRG, "\nQRG pre skedy:"}, {T_GRAB_BAND, "Prevzia psmo"}, {T_HK_GRAB_BAND, "P"}, {T_FORCE_RUN, "RUN md nsiln"}, {T_HK_FORCE_RUN, "R"}, {T_EXPORT_STATS, "Exportova statistiky"}, {T_HK_EXPORT_STATS, "T"}, {T_SF_TOP_DX, " TOP %d DX spojenie:"}, {T_SF_TOP_DX_UNDER, "----------------------"}, {T_ROTAR, "Rotator"}, {T_HK_ROTAR, "R"}, {T_AZIMUTH, " Azimut"}, {T_ELEVATION, "Elevace"}, {T_CH_SPY, "pehovn"}, {T_HK_CH_SPY, "P"}, {T_CH_ENDSPY, "Konec pehovn"}, {T_HK_CH_ENDSPY, "K"}, {T_EXPORT_TITLPAGE, "Exportovat tituln strnku"}, {T_HK_EXPORT_TITLPAGE, "L"}, {T_BREAK_RECORD, "Peruit nahrvn"}, {T_HK_BREAK_RECORD, "P"}, {T_GLOBAL_OPERATOR, "Zmnit na vech psmech"}, {T_GLOBAL_OPERATOR2, "Globln"}, {T_MAXFRAG, "Max. poet fragment (>=2)"}, {T_PLAY_LAST, "Play last sample"}, {T_HK_PLAY_LAST, "P"}, {T_MISCOPTS, "Rzn nastaven"}, {T_HK_MISCOPTS, "R"}, {T_LOGLINES, "dky logu: "}, {T_SKEDSHIFT, "Posuv skedu (minuty): "}, {T_STARTBAND, "Psmo po startu: "}, {T_GFX_X_CH, "Rozlien (znaky):"}, {T_GFX_Y_CH, "x"}, {T_GFX_X_PX, "Rozlien (body):"}, {T_GFX_Y_PX, "x"}, {T_CALL_INFO, "Informace o znace"}, {T_HK_CALL_INFO, "I"}, {T_SF_QSO_HOUR, "QSO/hod: %d"}, {T_SF_QSOP_HOUR, "Body/hod: %d"}, {T_SF_QSOP_50QSO, "Body/posl. 50 QSO: %d"}, {T_SF_HOURS, " Hodiny"}, {T_SF_HOURS_UNDER, "----------"}, {T_SF_HOURS_TITLE, "Hodiny Body Spojen prmr box/QSO"}, {T_QSO_CHECK, "Kontrola spojen"}, {T_HK_QSO_CHECK, "K"}, {T_AUDIO, "Audio"}, {T_HK_AUDIO, "D"}, {T_ALSA, "Alsa"}, {T_OSS, "OSS"}, {T_SSBD, "SSB dmon"}, {T_DISKFREE, "Minimln msto na disku [MiB]"}, {T_FORMAT, "Formt nahrvn"}, {T_PCM_PLAY, "Alsa pehrvn"}, {T_PCM_REC, "Alsa zznam"}, {T_PERIOD, "Period time [ms]"}, {T_BUFFER, "Buffer time [ms]"}, {T_ALSA_MIXER, "Alsa mixer"}, {T_CAPTURE, "Zdroj zznamu"}, {T_DSP, "Cesta k /dev/dsp"}, {T_MIXER, "Cesta k /dev/mixer"}, {T_RECSRC, "Record source"}, {T_SSBD_HOSTNAME, "SSBD stroj:"}, {T_HOSTNAME, "Stroj:"}, {T_SLASHKEY, "Klvesa pro lomtko"}, {T_FIXQRG, "Opravit QRG"}, {T_HK_FIXQRG, "v"}, {T_ENTER_QRG, "Zadej pesnou frekvenci QRG [Hz]"}, {T_BAD_QRG, "Chybn zadan frekvence"}, {T_CALLSIGN3, "Znaka"}, {T_CALLSIGN_KST, "Znaka stanice na KST:"}, {T_CANT_INIT_WINKEY_S, "Nelze inicializovat winkey na %s"}, {T_WINKEYOPTS, "Nastaven Winkey"}, {T_WK_WK2, "Rychl inicializace Winkey2"}, {T_WK_USEPOT, "Pout potenciometr"}, {T_WK_USEBUT, "Pout tlatka"}, {T_WK_KM_B, "Curtis-B"}, {T_WK_KM_A, "Curtis-A"}, {T_WK_KM_U, "Ultimatic"}, {T_WK_KM_G, "Run kl"}, {T_WK_SWAP, "Prohodit pastiku (levk)"}, {T_RIGOPTS, "Rdio"}, {T_HK_RIGOPTS, "R"}, {T_RIG_DEVICE, "Device:"}, {T_RIG_MODEL, "Model"}, {T_RIG_SPEED, "Baudrate: "}, {T_RIG_CIV, "CIV address"}, {T_RIG_FREQSHIFT, "Freq. shift SSB->CW"}, {T_RIG_CHOOSE, "Choose"}, {T_ROTAROPTS, "Rottory"}, {T_HK_ROTAROPTS, "I"}, {T_DSSAVER, "Vypnout spoi obrazovky"}, {T_DESC, "Popis"}, {T_ROT_NONE, "None"}, {T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys"}, {T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI"}, {T_ROT_HAMLIB, "Hamlib (N/A)"}, {T_ROT_REMOTE, "Remote (N/A)"}, {T_ROT_VID, "VID:"}, {T_ROT_PID, "PID:"}, {T_ROT_SERIAL, "Serial #"}, {T_ROT_ADD, "Add new rotator"}, {T_HK_ROT_ADD, "W"}, {T_ROT_REMOVE, "Remove rotator"}, {T_HK_ROT_REMOVE, "R"}, {T_TIMEOUT, "Timeout:"}, {T_BEAMWIDTH, "ka laloku"}, {T_SADDR, "Communication address:"}, {T_MODEL, "Model:"}, {T_ROT_REM_ROTSTR, "Rotator letter for remote"}, {T_QSOGLOB, "Global QSO NR"}, {T_PREFGLOB, "Global prefix"}, {T_NOT_RECORDING_S, "Not recording - %s"}, {T_SKEDCOUNT, "Poet sked v popup okn: "}, {T_FONTHEIGHT, "Vka fontu (16-32): "}, {T_RIG_POLL_MS, "Rig poll interval [ms]: "}, {T_RIG_QRG_R2T, "Set band from radio"}, {T_RIG_QRG_T2R, "Change band on radio"}, {T_RIG_MODE_T2R, "Change mode on radio"}, {T_RUN_MODE, "Run mode"}, {T_HK_RUN_MODE, "M"}, {T_SP_MODE, "S&P mode"}, {T_HK_SP_MODE, "M"}, {T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save"}, {T_RIG_DEBUG, "Debug rig"}, {T_HF_RATE, "Rate: %3d/10 %3d/60"}, {T_HF_BAND, "Band QSO Point Mult"}, {T_HF_SUM, "Sum:"}, {T_HF_LAST, "Last Q-%s P-%s"}, {T_EVEN, "TX even"}, {T_HK_EVEN, "v"}, {T_ODD, "TX odd"}, {T_HK_ODD, "d"}, {T_1ST, "TX 1st"}, {T_HK_1ST, "1"}, {T_2ND, "TX 2nd"}, {T_HK_2ND, "2"}, {T_HF_SCORE, "Score:"}, {T_EXPMODE, "Expedition mode"}, {T_TTTYPE, "Only digits mean"}, {0, NULL} }; struct translation translation_german [] = { {0, NULL}, {T__CHAR_SET, "iso8859-2"}, {T__LANGUAGE, "Deutsch"}, {T_ABOUT, "ber..."}, {T_BAD_NUMBER, "Ungltige Zahl"}, {T_BAD_STRING, "Ungltiger Text"}, {T_BASIC_HELP, "Drcke F10 fr Menu.\nViel Spa!"}, {T_BLOCK_CURSOR, "Blockiere Cursor"}, {T_CANCEL, "Abbrechen"}, {T_CHARACTER_SET, "Zeichensatz"}, {T_COLOR, "Farbe"}, {T_COPYING, "Lizenz"}, {T_DIFFERENCE, "Unterschied"}, {T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Mchten sie Tucnak wirklich verlassen?"}, {T_EMPTY_STRING_NOT_ALLOWED, "Leerer Text nicht erlaubt!"}, {T_ERROR, "Fehler"}, {T_WARNING, "Warnung"}, {T_EXIT, "Verlassen"}, {T_EXIT_TUCNAK, "Tucnak verlassen"}, {T_FILE, "Datei"}, {T_FULL_SCREEN, "Vollbild"}, {T_HELP, "Hilfe"}, {T_HK_ABOUT, "."}, {T_HK_BEOS_TERMINAL, "B"}, {T_HK_CHARACTER_SET, "Z"}, {T_HK_COPYING, "K"}, {T_HK_EXIT, "E"}, {T_HK_FILE, "D"}, {T_HK_FULL_SCREEN, "V"}, {T_HK_HELP, "H"}, {T_HK_LANGUAGE, "S"}, {T_HK_MEMORY_INFO, "M"}, {T_HK_OS_SHELL, "O"}, {T_HK_SCREEN, "B"}, {T_HK_SETUP, "E"}, {T_HK_TERMINAL_OPTIONS, "T"}, {T_HK_TWTERM, "T"}, {T_HK_WINDOW, "F"}, {T_HK_XTERM, "X"}, {T_KOI8R_FRAMES, "KOI8-R Rahmen"}, {T_LANGUAGE, "Sprache"}, {T_LAST, "letzte"}, {T_LINUX_OR_OS2_FRAMES, "Linux oder OS/2 Rahmen"}, {T_MEMORY_INFO, "Speicherinfo"}, {T_NO_FRAMES, "Keine Rahmen"}, {T_NO, "Nein"}, {T_NUMBER_EXPECTED, "Zahl im Feld erwartet"}, {T_NUMBER_OUT_OF_RANGE, "Zahl auerhalb des gltigen Bereichs"}, {T_OK, "OK"}, {T_OS_SHELL, "Betriebssystem-Fenster"}, {T_RESTRICT_FRAMES_IN_CP850_852, "Beschrnke Rahmen in cp850/852"}, {T_UTF_8_IO, "UTF-8 Ein-/Ausgabe"}, {T_SCREEN, "Bildschirm"}, {T_SETUP, "Einstellungen"}, {T_TERMINAL_OPTIONS, "Terminal-Optionen"}, {T_TUCNAK__TACLOG_LIKE, "Tucnak " VERSION_STRING "\n\nTACLOG-hnliches V/U/SHF Contest Log"}, {T_TWTERM, "Twterm"}, {T_USE_11M, "Benutze ^[[11m"}, {T_VT_100_FRAMES, "VT 100 Rahmen"}, {T_WELCOME_TO_TUCNAK, "Willkommen bei Tucnak!"}, {T_WELCOME, "Willkommen"}, {T_XTERM, "Xterm"}, {T_YES, "Ja"}, {T_CANT_APPEND_S, "Kann nicht an Datei %s anfgen!"}, {T_CANT_WRITE, "Kann nicht in Datei schreiben!"}, {T_CANT_WRITE_S, "Kann nicht in Datei %s schreiben!"}, {T_CANT_READ, "Kann nicht aus Datei lesen!"}, {T_CANT_READ_S, "Kann nicht aus Datei %s lesen!"}, {T_SAVED_S, "%s gespeichert"}, {T__CW_, " CW "}, {T_CWW_KEYS, " Bildauf +, Bildab - CW Geschwindigkeit "}, {T_CANT_OPEN_S, "Kann %s nicht ffnen!"}, {T_CANT_LOCK, "Kann nicht sperren!"}, {T_CANT_LOCK_S, "Kann %s nicht sperren!"}, {T_LOADING_CTEST_S, "*** Lade Contest %s"}, {T_NO_FILES, "Keine Dateien im Verzeichnis!"}, {T_BAND_EXIST_SS, "WARNUNG! Band %s (%s) existiert bereits"}, {T_BAND_NOT_OPEN, "Band ist in diesem Contest nicht aktiv"}, {T_NO_BANDS, "Keine Bnder zu laden"}, {T_CANT_SET_GR_S, "Kann keinen Grafik-Modus setzen-%s"}, {T_GCALL, "Rufzeichen: %s"}, {T_GWWL, "Locator: %s"}, {T_GQRB, "QRB: %d km"}, {T_GQTF, "QTF: %d"}, {T_GSEN, "Ges.: %s %s"}, {T_GRCV, "Empf.: %s %s"}, {T_GTIM, "Zeit: %s"}, {T_GOPE, "Op: %s"}, {T_GREM, "Bem.: %s"}, {T_GWKD, "Wkd: %d"}, {T_GINC, "income: %d"}, {T_GLON, "Lnge:%7.2f %-6s"}, {T_GLAT, "Breite:%7.2f %-6s"}, {T_GLOC, "Loc: %s"}, {T__PLESE_WAIT_, " Bitte warten "}, {T__RO_BAND, " SWL-Band"}, {T_COPYING_VER, "Das ultimative Contestlog - Unerlsslich wie gewohnt\n\nVersion " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nDieses Programm ist freie Software. Sie knnen es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation verffentlicht, weitergeben und/oder modifizieren, entweder gem Version 2 der Lizenz oder (nach Ihrer Option) jeder spteren Version. Die Verffentlichung dieses Programms erfolgt in der Hoffnung, dass es Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FR EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License. Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem Programm erhalten haben. Falls nicht, siehe . "}, {T_CTEST_ACTIVE, "Contest ist bereits aktiv "}, {T_NO_CTESTS, "Keine Conteste"}, {T_NO_CCLOSE, "Kein Contest zum Schlieen"}, {T_REALLY, "Wirklich?"}, {T_CLOSE_CTEST, "Mchten Sie diesen Contest wirklich schlieen?"}, {T_GUI_LD, "GUI: %ld "}, {T_SBRK, "sbrk: %ld"}, {T_CWI, "C_W: %d cw Elemente, %d wc Elemente, letztes %d\n"}, {T_EXC, "Exc: %s %d exc Elemente, %d cxe Elemente, letztes %d\n"}, {T_VEXC, "Besttigte EXC: %d Elemente\n"}, {T_DWI, "D_W: %d Prfixe, %d Lnder, %d Locator\n"}, {T_NAMES, "Namen: %d Namen\n"}, {T_MASTER, "Master: %d calls\n"}, {T_MEMS, "Speicher:"}, {T_NMY, " Mein: %s:%d\n"}, {T_NGLOBAL, "Global: %s:%d\n"}, {T_NMASTER, "Master: %s %s %s:%d %s %s\n"}, {T_NSLAVES, "\nSlaves:\n"}, {T_NINFO, "Netzwerk Info"}, {T_NO_BANDS_QRV, "Keine Bnder QRV"}, {T_NO_BANDS_CONF, "Keine Bnder konfiguriert"}, {T_NOT_AVAILABLE, "Nicht verfgbar"}, {T_ADD_SUBWIN, "Fge Fenster hinzu"}, {T_HK_ADD_SUBWIN, "F"}, {T_CLOSE_SUBWIN, "Schliee Fenster"}, {T_HK_CLOSE_SUBWIN, "S"}, {T_HK_NINFO, "N"}, {T_NEW, "Neu..."}, {T_HK_NEW, "N"}, {T_NEW_WIZZ, "Neu mit Assistent"}, {T_HK_NEW_WIZZ, "A"}, {T_NEW_NET, "Neu vom Netzwerk..."}, {T_HK_NEW_NET, "T"}, {T_OPEN, "ffnen"}, {T_HK_OPEN, "F"}, {T_SAVE, "Speichern"}, {T_HK_SAVE, "S"}, {T_EXPORT_EDI, "Exportiere als EDI"}, {T_HK_EXPORT_EDI, "E"}, {T_EXPORT_REPORT, "Exportiere als Report"}, {T_HK_EXPORT_REPORT, "R"}, {T_EXPORT_ADIF, "Exportiere als ADIF"}, {T_HK_EXPORT_ADIF, "A"}, {T_EXPORT_CBR, "Export as ADIF"}, {T_HK_EXPORT_CBR, "B"}, {T_EXPORT_HTML, "Exportiere als HTML"}, {T_HK_EXPORT_HTML, "H"}, {T_EXPORT_WIKI, "Export as MediaWiki"}, {T_HK_EXPORT_WIKI, "W"}, {T_IMPORT_EDI, "Importiere EDI"}, {T_HK_IMPORT_EDI, "I"}, {T_IMPORT_ADIF, "Importiere ADIF"}, {T_HK_IMPORT_ADIF, "M"}, {T_IMPORT_SWAP, "Importiere swap"}, {T_HK_IMPORT_SWAP, "S"}, {T_IMPORT_LIST, "Import list"}, {T_HK_IMPORT_LIST, "L"}, {T_CONTEST_OP, "Contestoptionen"}, {T_HK_CONTEST_OP, "O"}, {T_CLOSE_CONTEST, "Schliee Contest"}, {T_HK_CLOSE_CONTEST, "K"}, {T_ADD_ERROR, "Fge FEHLER hinzu"}, {T_HK_ADD_ERROR, "F"}, {T_CHOP, "Wechsle Operator"}, {T_HK_CHOP, "O"}, {T_CW_CTEST, "Aktualisiere C_W von Contest"}, {T_HK_CW_CTEST, "C"}, {T_CW_BAND, "Aktualisiere C_W von Band"}, {T_HK_CW_BAND, "B"}, {T_EXC_CTEST, "Aktualisiere EXC DB vom Contest"}, {T_HK_EXC_CTEST, "P"}, {T_EXC_BAND, "Aktualisiere EXC DB vom Band"}, {T_HK_EXC_BAND, "D"}, {T_IMPORT_EBW, "Importiere DL8EBW Datenbank"}, {T_HK_IMPORT_EBW, "W"}, {T_NO_CTEST, "Kein Contest"}, {T_NO_PEERS, "Keine Peers gefunden"}, {T_NO_MASTER, "Master ist nicht verfgbar!"}, {T_CTEST_DEF, "Contestvorgaben"}, {T_HK_CTEST_DEF, "V"}, {T_BAND_DEF, "Bandvorgaben"}, {T_HK_BAND_DEF, "B"}, {T_HK_RESPOP, "R"}, {T_CW_DAEMON, "CW keying"}, {T_HK_CW_DAEMON, "E"}, {T_CW_CQ, "CW CQ"}, {T_HK_CW_CQ, "C"}, {T_SSB_CQ, "SSB CQ"}, {T_HK_SSB_CQ, "S"}, {T_AUTOSAVE, "Auto. speichern"}, {T_HK_AUTOSAVE, "A"}, {T_LOAD_CFG_NET, "Lade cfg vom Netz"}, {T_HK_LOAD_CFG_NET, "N"}, {T_LOAD_CW_NET, "Lade C_W vom Netz"}, {T_HK_LOAD_CW_NET, "W"}, {T_SAVE_CFG, "Speichere Konfiguration"}, {T_HK_SAVE_CFG, "S"}, {T_CONTEST, "Contest"}, {T_HK_CONTEST, "K"}, {T_EDIT, "Editieren"}, {T_HK_EDIT, "E"}, {T_BANDS, "Bnder"}, {T_HK_BANDS, "B"}, {T_SUBWINS, "Fenster"}, {T_HK_SUBWINS, "F"}, {T_BAND_SETTINGS_SC, "Bandeinstellungen fr Band %c %s"}, {T_QRV_ON_THIS_BAND, "QRV auf diesem Band"}, {T_QRV_IN_THIS_CTEST, "QRV in diesem Contest"}, {T_READ_ONLY, "Nur SWL"}, {T_MULTI, "Mehrmann"}, {T_SINGLE, "Einmann"}, {T_CHECK, "Kontrolllog"}, {T_TXEQUIP, " TX Ausrstung:"}, {T_POWER, " Leistung:"}, {T_RXEQUIP, " RX Ausrstung:"}, {T_ANTENNA, " Antenne:"}, {T_AGLASL, " AGL;ASL:"}, {T_OPS, " Operator:"}, {T_SPACES1, " "}, {T_REMARKS, " Bemerkungen:"}, {T_OK_SECTION_SINGLE, "Klasse fr Einmann-Kategorie:"}, {T_OK_SECTION_MULTI, "Klasse fr Mehrmann-Kategorie:"}, {T_QRG_MIN, "Bandgrenzen von"}, {T_QRG_MAX, "bis [kHz]"}, {T_ADIFBAND, "ADIF Bandname"}, {T_SKEDQRG, "QRG fr skeds (freies Format)"}, {T_BAND_LO, "Transverter LO QRG [Hz]"}, {T_BANDSW, "Wert fr Bandwechsel"}, {T_RESPOP, "Verantwortlicher OP"}, {T_NAME, " Name:"}, {T_CALLSIGN, " Rufzeichen:"}, {T_ADDRESS, " Adresse:"}, {T_POSTCODE, " PLZ:"}, {T_CITY, " Stadt:"}, {T_COUNTRY, " Land:"}, {T_PHONE, " Telefon:"}, {T_BBSEMAIL, " BBS/Email:"}, {T_QP0, " --kein -- "}, {T_QP1, " 1 QSOp*QSOp_m (Std. IARU)"}, {T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)"}, {T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)"}, {T_QP4, " 4 WWL_ring*QSOp_m (OK activity)"}, {T_QP5, " 5 St_miles*QSOp_m"}, {T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)"}, {T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)"}, {T_QP8, " 8 WWL_dist*QSOp_m (Baltic)"}, {T_QP9, " 9 WWL_dist*QSOp_m (Baltic & Nordic fieldday)"}, {T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)"}, {T_QP11, "11 QSOp_m *3 if F (F 50MHz)"}, {T_QP12, "12 RSGB DC (district codes)"}, {T_QP13, "13 Continent (CQ WW DX Contest)"}, {T_QP14, "14 Continent+band (CQ WW WPX Contest)"}, {T_QP15, "15 VHF Band (ARRL VHF, CQ VHF)"}, {T_QP16, "16 QSOp *4 if F (Champ. de France)"}, {T_TP0, " --kein -- "}, {T_TP1, " 1 Multiplikativ (Std. IARU)"}, {T_TP2, " 2 Additiv (RSGB Backpacker, VRZA, Sicily)"}, {T_TP3, " 3 Mult. all bands (CQ WW DX Contest)"}, {T_TP4, " 4 All bands togeth. (ARRL VHF)"}, {T_NEW_CTEST, "Neuer Contest"}, {T_CANT_TRUNC, "Kann desc Datei nicht abschneiden"}, {T_NAME_OF_CTEST, "Name des Contests:"}, {T_CALL_OF_CTEST, "Rufzeichen im Contest:"}, {T_CLUB_ST, "Clubstation:"}, {T_YOURWWL, " Locator:"}, {T_YOUREXC, " Austausch:"}, {T_DATE_OF_CTEST, "Datum des Contests:"}, {T_QSOUSED, "QSO-Nr. benutzt"}, {T_QSOPM, " QSOp Multiplikator:"}, {T_WWLUSED, "Locator benutzt"}, {T_WWLB, "Locator Bonus:"}, {T_WWLM, "Locator Multiplikator:"}, {T_EXCUSED, "Austausch benutzt"}, {T_EXCB, "Austausch Bonus:"}, {T_EXCM, "Austausch Multiplikator:"}, {T_EXCNAME, "EXC Name:"}, {T_PREFM, "PREF Multi:"}, {T_DXCB, "DXCC Bonus:"}, {T_DXCM, "DXCC Multiplikator:"}, {T_RSTUSED, "RST benutzt "}, {T_DEFRS, "Vorgabe RS:"}, {T_DEFRST, "Vorgabe RST:"}, {T_ALSORSTR, "Auch fr RST-R"}, {T_QP_CALC, "Kalkulation QSOp:"}, {T_TO_CALC, "Kalkulation Total:"}, {T_EDI_PROP, "EDI Eigenschaften"}, {T_RESPOP2, "Verantwortlicher OP"}, {T_EDIT_QSO_CD, "Editiere QSO %c: %03d"}, {T_CALLSIGN2, "Rufzeichen:"}, {T_CLUB, " Club:"}, {T_PADR1, " Adresse 1:"}, {T_PADR2, " Adresse 2:"}, {T_RS, " RS:"}, {T_RST, " RST:"}, {T_OPERATOR, " Operator:"}, {T_DATE, " Datum:"}, {T_MODE, " Mode:"}, {T_RSTS, " RSTs:"}, {T_RSTR, " RSTr:"}, {T_QSONRS, "QSO-Nr s:"}, {T_QSONRR, "QSO-Nr r:"}, {T_OPTEXCH, " Austausch:"}, {T_WWL, "Locator:"}, {T_REMARK, "Anmerkung:"}, {T_QRV2, " QRV on:"}, {T_WKD, " WKD:"}, {T_SEND_SKED, "Sende Sked"}, {T_SELECT, "Auswhlen"}, {T_QRG, " Frequenz:"}, {T_WE_CALL, " Wir rufen"}, {T_BAND, " Band:"}, {T_TIME, " Zeit:"}, {T_DUPE_QSO, "Doppel-QSO!"}, {T_CLEAR_THIS_QSO, "Lsche dieses QSO"}, {T_EDIT_OLD_QSO, "Editiere altes QSO"}, {T_MARK_OLD_QSO, "Markiere altes QSO als FEHLER"}, {T_STORE_AS_DUPE, "Speichere als DUPE"}, {T_BAD_CALL, "Dies scheint kein Rufzeichen zu sein"}, {T_N_CALLSIGN, "\nRufzeichen:"}, {T_AUTOSAVE_OPTS, "Optionen autom. speichern"}, {T_SAVE_AQ, "Speichere auf Festplatte nach QSOs:"}, {T_SAVE_AM, "Speichere auf Festplatte nach Minuten:"}, {T_FSYNC, "Fsync"}, {T_SAVE_AQF, "Speichere auf Diskette nach QSOs:"}, {T_SAVE_AMF, "Speichere auf Diskette nach Minuten:"}, {T_DO_MOUNT, "Mount falls nicht in /etc/mtab (unbenutzt)"}, {T_FLOPPY_PATH, "Pfad zur Diskette:"}, {T_MOUNT_CMD, "Mount Befehl: "}, {T_SW_SHELL, "Shell"}, {T_SW_QSOS, "QSOs"}, {T_SW_LOG, "Log"}, {T_SW_TALK, "Talk"}, {T_SW_SKED, "Sked"}, {T_SW_UNFI, "Leer"}, {T_SW_DXC, "DXCl"}, {T_SW_STAT, "Stat"}, {T_SW_MAP, "Karte"}, {T_SW_SCOPE, "Scope"}, {T_SW_QRV, "QRV"}, {T_SW_HF, "HF"}, {T_SW_PLAYER, "Player"}, {T_SW_CHART, "Chart"}, {T_SHELL, "Shell"}, {T_QSOS, "QSOs"}, {T_LOG, "Log"}, {T_TALK, "Talk"}, {T_SKEDS, "Skeds"}, {T_UNFI, "Unvollstndige QSOs"}, {T_DXC, "DX Cluster (N/A)"}, {T_STAT, "Statistik"}, {T_SWAP, "Swap (N/A)"}, {T_MAP, "Grafische Karte"}, {T_SCOPE, "Scope"}, {T_QRV, "QRV"}, {T_HF, "HF"}, {T_CMD, "Kommando"}, {T_RESPAWN, "Neu starten [Sek]:"}, {T_UNFI_QSO, "Unvollstndiges QSO"}, {T_N_REMARK, "\nBemerkung:"}, {T_NO_CQ, "Kein CQ definiert"}, {T_TEXT, "Text:"}, {T_SPEED, "Geschw. [WPM]:"}, {T_REPEAT, "Wiederholen"}, {T_DELAY, "Verzgerung [0.1s]:"}, {T_ALLOW_UNDEF, "Erlauben falls einige Eintrge undefiniert sind"}, {T_CW_DSCS, "CW%d (%s) %c %s"}, {T_FILENAME, "Pfad:"}, {T_SSB_DSCS, "SSB%d (%s) %c %s"}, {T_UDPPORT, "UDP Port:"}, {T_DEVICE, "Keyer:"}, {T_INIT_SPEED, "Startgeschw. [WPM]:"}, {T_INIT_WEIGHT, "Gewichtung (30-70):"}, {T_WPMFROM, "WPM-Bereich von"}, {T_WPMTO, "bis"}, {T_USE_SPK, "Benutze Lautsprecher"}, {T_LEADIN, " PTT-Verzgerung in [ms]"}, {T_AUTGIVE, "Run mode aut. give after [chars]"}, {T_IGN_IFACE_S, "Ignoriere Interface %-5s"}, {T_IGN_ADDR_S, "Ignoriere Adresse %s"}, {T_ADD_IFACE_SSD, "Interface=%-5s BCAST=%s:%d hinzugefgt"}, {T_FORCED_ADDR, "Erzwinge Adresse %s"}, {T_TIMESKEW, "WARNUNG! Zeitabweichung %d entdeckt gegen %s:%d !\n"}, {T_DISCONNECTING_SD, "Trennen von %s:%d"}, {T_ACCEPTED_SD, "Akzeptiere %s:%d"}, {T_CONNECTING_SD, "Verbinden mit %s:%d"}, {T_CONNECTED_SD, "Verbunden mit %s:%d"}, {T_DISCONNECTED_SD, "Getrennt von %s:%d"}, {T_LOADED_CFG_SSSS, "Konfiguration geladen fr %s %s (%s,%s)"}, {T_LOADED_CW, "C_W Data geladen"}, {T_PEER_NOT_FOUND, "FEHLER! Peer %s nicht gefunden"}, {T_CANT_CREATE_HOME_S, "Kann Verzeichnis %s nicht erstellen"}, {T_CANT_LOAD_CFG, "Kann Konfiguration nicht laden!\nProgramm kann nicht richtig arbeiten!"}, {T_ERR_RC, "Einige Fehler beim Einlesen der Konfigurationsdatei gefunden!\nDiese Datei wurde vielleicht mit einer neueren Version gespeichert!\nKonfiguration nicht speichern, sonst knnen Daten verloren gehen!"}, {T_SES_QTR, " QTR "}, {T_SES_QRA, " RUFZ. "}, {T_SES_RST, " RST-S-Nr RST-R-Nr "}, {T_SES_QTH, " LOC "}, {T_SES_QRB, " Pkt/QRB QTF "}, {T_SES_FLG, " Flg "}, {T_SES_OPE, " Oper. "}, {T_SES_EXC, " Exch "}, {T_SES_REM, " Bemerkung "}, {T_SES_WELCOME, "Willkommen bei Tucnak! "}, {T_SES_PRESS_F10, "Drcke F10 fr das Men."}, {T_SES_HAVE_FUN, "Viel Spa."}, {T_SES_URL, "http://tucnak.nagano.cz "}, {T_SES_ODX, "ODX: "}, {T_SES_ODX_DATA, "%s %s %d km (%s)"}, {T_SES_STAT_TIT, "QSOs QSO-P. EXCH LOCs DXCCs Tot.P. AVG"}, {T_SES_AVG, " Sch: %5.2f"}, {T_SES_WPM, " WPM: %d %02d%%"}, {T_SF_WWLS, " LOCs: %d"}, {T_SF_WWLS_UNDER, "-------------"}, {T_SF_EXCS, " EXCs: %d"}, {T_SF_EXCS_UNDER, "-------------"}, {T_SF_MISS_EXCS, " Missing EXCs: %d"}, {T_SF_MISS_EXCS_UNDER, "---------------------"}, {T_SF_PREFS, " PREFs: %d"}, {T_SF_PREFS_UNDER, "-------------"}, {T_SF_DXCS, " DXCCs: %d"}, {T_SF_DXCS_UNDER, "-------------"}, {T_SF_WKD_WWLS, " gearb. LOCs: %d"}, {T_SF_WKD_WWLS_UNDER, "-----------------"}, {T_SF_QSO_WWL4, " QSOs in LOCs: %d"}, {T_SF_QSO_WWL4_UNDER, "----------------------"}, {T_SF_STATS_BAND, " Statistik fr Band %s"}, {T_SF_STATS_BAND_UNDER, "==============================="}, {T_SF_CONTEST, "Contest: %s"}, {T_SF_ALLBQSOS, " QSOs aller Bnder: %d"}, {T_SF_ALLBQSOP, " QSOp aller Bnder: %d"}, {T_SF_ALLBPTS, "Punkte aller Bnder: %d"}, {T_SF_QSOS, "QSOs: %d"}, {T_SF_QSOP, "QSO-Punkte: %d"}, {T_SF_PTS, "Punkte: %d"}, {T_SF_AVG_PTS, "Durchschn. Pkt/QSO: %5.2f"}, {T_SF_AVG_QSOP, "Durchschn. QSO-P/QSO: %5.2f"}, {T_BAND_RO, "Band ist nur SWL"}, {T_THIS_BAND, "Dieses Band"}, {T_OTHER_BANDS, "Andere Bnder"}, {T_CW_DB, "C_W Datenbank"}, {T_PROC_EXITED, "*** Prozess beendet\n"}, {T_WE_CALL2, "Wir rufen"}, {T_WE_LISTEN, "wir hren"}, {T_QSL, "QSL versprochen"}, {T_RECORD, "Audio aufnehmen"}, {T_MAXMIN, " Max. Aufnahmezeit"}, {T_TEMPLATE, "Vorgabe fr Dateiname der Aufnahme:"}, {T_PCM8, "8 Bit PCM"}, {T_PCM16, "16 Bit PCM"}, {T_ULAW, "u-law"}, {T_ALAW, "A-law"}, {T_IMAADPCM, "IMA ADPCM"}, {T_MSADPCM, "MS ADPCM"}, {T_GSM610, "GSM 6.10"}, {T_CHANNELS, "Kanle"}, {T_SAMPLERATE, "Abtastrate"}, {T_FILLOP, "Operator eintragen"}, {T_HK_FILLOP, "O"}, {T_RECAQRB, "QRB,QTF neu berechnen"}, {T_HK_RECAQRB, "Q"}, {T_NETWORK, "Netzwerk & Verfolgung"}, {T_HK_NETWORK, "K"}, {T_IF_IGNORE, " Ignoriere Interfaces:"}, {T_IP_IGNORE, " Ignoriere Netzwerke:"}, {T_IP_ANNOUNCE, " Senden an Netze:"}, {T_TRACE_BCAST, "Verfolge Broadcasts "}, {T_TRACE_SOCK, "Verfolge Sockets"}, {T_TRACE_RECV, "Verfolge empf. Daten"}, {T_TRACE_SEND, "Verfolge ges. Daten"}, {T_TRACE_QSOS, "Verfolge QSOs"}, {T_TRACE_SDEV, "Trace rotars"}, {T_NOT_MOUNTED_S, "Nicht gemountet: %s"}, {T_RECSRC_NONE, "Nicht setzen"}, {T_RECSRC_MIC, "Mikrofon"}, {T_RECSRC_LINE, "Line in"}, {T_NEW_CALL, "Neu!"}, {T_HK_NEW_CALL, "n"}, {T_QRV_ON_S, "QRV auf %s"}, {T_SKED_QRG, "QRG fr skeds"}, {T_HK_SKED_QRG, "F"}, {T_N_SKED_QRG, "\nQRG fur skeds:"}, {T_GRAB_BAND, "Schnapp Bandkontrolle"}, {T_HK_GRAB_BAND, "G"}, {T_FORCE_RUN, "Erzwinge RUN-Mode"}, {T_HK_FORCE_RUN, "R"}, {T_EXPORT_STATS, "Exportiere Statistiken"}, {T_HK_EXPORT_STATS, "T"}, {T_SF_TOP_DX, " TOP %d DX QSOs:"}, {T_SF_TOP_DX_UNDER, "-------------------"}, {T_ROTAR, "Rotor"}, {T_HK_ROTAR, "R"}, {T_AZIMUTH, " Azimut"}, {T_ELEVATION, "Elevation"}, {T_CH_SPY, "Spioniere..."}, {T_HK_CH_SPY, "S"}, {T_CH_ENDSPY, "Spionieren beenden"}, {T_HK_CH_ENDSPY, "P"}, {T_EXPORT_TITLPAGE, "Exportiere Titelseite"}, {T_HK_EXPORT_TITLPAGE, "L"}, {T_BREAK_RECORD, "Stoppe Aufzeichnung"}, {T_HK_BREAK_RECORD, "B"}, {T_GLOBAL_OPERATOR, "Fr alle Bnder ndern"}, {T_GLOBAL_OPERATOR2, "Global"}, {T_MAXFRAG, "Max. Nr. von Teilen (>=2)"}, {T_PLAY_LAST, "Spiele letzte Aufzeichnung"}, {T_HK_PLAY_LAST, "P"}, {T_MISCOPTS, "Verschiedene Optionen"}, {T_HK_MISCOPTS, "P"}, {T_LOGLINES, "Logzeilen: "}, {T_SKEDSHIFT, "Sked-Verzgerung (Minuten): "}, {T_STARTBAND, "Anfangsband: "}, {T_GFX_X_CH, "Bildschirmauflsung (Zeichen):"}, {T_GFX_Y_CH, "x"}, {T_GFX_X_PX, "Bildschirmauflsung (Pixel):"}, {T_GFX_Y_PX, "x"}, {T_CALL_INFO, "Rufzeicheninformationen"}, {T_HK_CALL_INFO, "I"}, {T_SF_QSO_HOUR, "QSOs/Stunde: %d"}, {T_SF_QSOP_HOUR, "Punkte/Stunde: %d"}, {T_SF_QSOP_50QSO, "Punkte/50 QSOs: %d"}, {T_SF_HOURS, " Stunden"}, {T_SF_HOURS_UNDER, "---------"}, {T_SF_HOURS_TITLE, "Stunde Punkte QSOs AVG pts/QSO"}, {T_QSO_CHECK, "QSO-Kontrolle"}, {T_HK_QSO_CHECK, "K"}, {T_AUDIO, "Audio"}, {T_HK_AUDIO, "D"}, {T_ALSA, "Alsa"}, {T_OSS, "OSS"}, {T_SSBD, "SSB daemon"}, {T_DISKFREE, "Minimaler freier Festplattenspeicher [MiB]"}, {T_FORMAT, "Aufzeichnungsformat"}, {T_PCM_PLAY, "Alsa Abspielgert"}, {T_PCM_REC, "Alsa Aufzeichengert"}, {T_PERIOD, "Wiederholzeit [ms]"}, {T_BUFFER, "Bufferzeit [ms]"}, {T_ALSA_MIXER, "Alsa Mixergert"}, {T_CAPTURE, "Ausgabegert"}, {T_DSP, "Pfad zu /dev/dsp"}, {T_MIXER, "Pfad zu /dev/mixer"}, {T_RECSRC, "Aufnahmequelle"}, {T_SSBD_HOSTNAME, "SSBD Hostname:"}, {T_HOSTNAME, "Hostname:"}, {T_SLASHKEY, "Schrgstrich-Taste"}, {T_FIXQRG, "Fix QRG"}, {T_HK_FIXQRG, "X"}, {T_ENTER_QRG, "Genaue Frequenz eingeben [Hz]"}, {T_BAD_QRG, "Falsche Frequenz"}, {T_CALLSIGN3, "Rufzeichen"}, {T_CALLSIGN_KST, "KST-Stationsrufzeichen:"}, {T_CANT_INIT_WINKEY_S, "Kann winkey nicht finden auf %s"}, {T_WINKEYOPTS, "Winkey-Optionen"}, {T_WK_WK2, "Winkey2 Schnellinitialisierung"}, {T_WK_USEPOT, "Benutze Geschwindigkeitspoti"}, {T_WK_USEBUT, "Benutze Knpfe"}, {T_WK_KM_B, "Curtis-B"}, {T_WK_KM_A, "Curtis-A"}, {T_WK_KM_U, "Ultimatic"}, {T_WK_KM_G, "Bug"}, {T_WK_SWAP, "Paddle swap (linkshndig)"}, {T_RIGOPTS, "Funkgertoptionen"}, {T_HK_RIGOPTS, "G"}, {T_RIG_DEVICE, "Gert:"}, {T_RIG_MODEL, "Modell"}, {T_RIG_SPEED, "Baudrate: "}, {T_RIG_CIV, "CIV-Adresse"}, {T_RIG_FREQSHIFT, "Freq.versatz SSB->CW"}, {T_RIG_CHOOSE, "Whlen"}, {T_ROTAROPTS, "Rotoroptionen"}, {T_HK_ROTAROPTS, "I"}, {T_DSSAVER, "Deaktiviere Bildschirmschoner"}, {T_DESC, "Beschreibung"}, {T_ROT_NONE, "Kein"}, {T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys"}, {T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI"}, {T_ROT_HAMLIB, "Hamlib (N/A)"}, {T_ROT_REMOTE, "Remote (N/A)"}, {T_ROT_VID, "VID:"}, {T_ROT_PID, "PID:"}, {T_ROT_SERIAL, "Serien-#"}, {T_ROT_ADD, "Neuer Rotor..."}, {T_HK_ROT_ADD, "W"}, {T_ROT_REMOVE, "Entferne Rotor"}, {T_HK_ROT_REMOVE, "R"}, {T_TIMEOUT, "Timeout:"}, {T_BEAMWIDTH, "Beambreite"}, {T_SADDR, "Kommunikationsadresse:"}, {T_MODEL, "Modell:"}, {T_ROT_REM_ROTSTR, "Rotor-Buchstabe fr Remote"}, {T_QSOGLOB, "Globale QSO NR"}, {T_PREFGLOB, "Globaler Prefix"}, {T_NOT_RECORDING_S, "Nicht am Aufzeichnen - %s"}, {T_SKEDCOUNT, "Sked count in popup: "}, {T_FONTHEIGHT, "Font height (16-32): "}, {T_RIG_POLL_MS, "Rig poll interval [ms]: "}, {T_RIG_QRG_R2T, "Set band from radio"}, {T_RIG_QRG_T2R, "Change band on radio"}, {T_RIG_MODE_T2R, "Change mode on radio"}, {T_RUN_MODE, "Run mode"}, {T_HK_RUN_MODE, "M"}, {T_SP_MODE, "S&P mode"}, {T_HK_SP_MODE, "M"}, {T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save"}, {T_RIG_DEBUG, "Debug rig"}, {T_HF_RATE, "Rate: %3d/10 %3d/60"}, {T_HF_BAND, "Band QSO Point Mult"}, {T_HF_SUM, "Sum:"}, {T_HF_LAST, "Last Q-%s P-%s"}, {T_EVEN, "TX even"}, {T_HK_EVEN, "v"}, {T_ODD, "TX odd"}, {T_HK_ODD, "d"}, {T_1ST, "TX 1st"}, {T_HK_1ST, "1"}, {T_2ND, "TX 2nd"}, {T_HK_2ND, "2"}, {T_HF_SCORE, "Score:"}, {T_EXPMODE, "Expedition mode"}, {T_TTTYPE, "Only digits mean"}, {0, NULL} }; struct translation translation_portuguese [] = { {0, NULL}, {T__CHAR_SET, "iso8859-1"}, {T__LANGUAGE, "Portugus"}, {T_ABOUT, "Acerca"}, {T_BAD_NUMBER, "Nmero errado"}, {T_BAD_STRING, "String errada"}, {T_BASIC_HELP, "Prima F10 para ter o menu.\nDivirta-se."}, {T_BLOCK_CURSOR, "Cursor de bloco"}, {T_CANCEL, "Cancelar"}, {T_CHARACTER_SET, "Definio de caracter"}, {T_COLOR, "Cor"}, {T_COPYING, "Licena"}, {T_DIFFERENCE, "diferena"}, {T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Quer mesmo sair do Tucnak?"}, {T_EMPTY_STRING_NOT_ALLOWED, "String vazia no permitida"}, {T_ERROR, "Erro"}, {T_WARNING, "Aviso"}, {T_EXIT, "Sair"}, {T_EXIT_TUCNAK, "Sair do Tucnak"}, {T_FILE, "Ficheiro"}, {T_FULL_SCREEN, "Monitor completo"}, {T_HELP, "Ajuda"}, {T_HK_ABOUT, "A"}, {T_HK_BEOS_TERMINAL, "B"}, {T_HK_CHARACTER_SET, "H"}, {T_HK_COPYING, "C"}, {T_HK_EXIT, "X"}, {T_HK_FILE, "F"}, {T_HK_FULL_SCREEN, "F"}, {T_HK_HELP, "H"}, {T_HK_LANGUAGE, "L"}, {T_HK_MEMORY_INFO, "M"}, {T_HK_OS_SHELL, "O"}, {T_HK_SCREEN, "S"}, {T_HK_SETUP, "S"}, {T_HK_TERMINAL_OPTIONS, "T"}, {T_HK_TWTERM, "T"}, {T_HK_WINDOW, "W"}, {T_HK_XTERM, "X"}, {T_KOI8R_FRAMES, "KOI8-R frames"}, {T_LANGUAGE, "Linguagem"}, {T_LAST, "ltimo"}, {T_LINUX_OR_OS2_FRAMES, "Linux ou OS/2 frames"}, {T_MEMORY_INFO, "Informao da memria"}, {T_NO_FRAMES, "No h frames"}, {T_NO, "No"}, {T_NUMBER_EXPECTED, "Esperado nmero no campo"}, {T_NUMBER_OUT_OF_RANGE, "Nmero fora de alcance"}, {T_OK, "OK"}, {T_OS_SHELL, "OS shell"}, {T_RESTRICT_FRAMES_IN_CP850_852, "Frames restringidas em cp850/852"}, {T_UTF_8_IO, "UTF-8 Input/Output"}, {T_SCREEN, "Monitor"}, {T_SETUP, "Definies"}, {T_TERMINAL_OPTIONS, "Opes do terminal"}, {T_TUCNAK__TACLOG_LIKE, "Tucnak " VERSION_STRING "\n\nComo o programa de concursos de V/U/SHF TACLOG"}, {T_TWTERM, "Twterm"}, {T_USE_11M, "Usar ^[[11m"}, {T_VT_100_FRAMES, "VT 100 frames"}, {T_WELCOME_TO_TUCNAK, "Bem vindo ao Tucnak!"}, {T_WELCOME, "Bem vindo"}, {T_XTERM, "Xterm"}, {T_YES, "Sim"}, {T_CANT_APPEND_S, "No posso anexar ao ficheiro %s"}, {T_CANT_WRITE, "No posso escrever para o ficheiro"}, {T_CANT_WRITE_S, "No posso escrever para o ficheiro %s"}, {T_CANT_READ, "No posso ler desde o ficheiro"}, {T_CANT_READ_S, "No posso ler desde o ficheiro %s"}, {T_SAVED_S, "Guardado %s"}, {T__CW_, " CW "}, {T_CWW_KEYS, " PgUp +, PgDn - velocidade do cw "}, {T_CANT_OPEN_S, "No posso abrir %s"}, {T_CANT_LOCK, "No posso fechar"}, {T_CANT_LOCK_S, "No posso fechar %s"}, {T_LOADING_CTEST_S, "*** A carregar o concurso %s"}, {T_NO_FILES, "Nenhuns ficheiros na directoria"}, {T_BAND_EXIST_SS, "AVISO! A banda %s (%s) j existe"}, {T_BAND_NOT_OPEN, "A banda no est activa neste concurso"}, {T_NO_BANDS, "Nenhumas bandas para carregar"}, {T_CANT_SET_GR_S, "No posso definir modos grficos-%s"}, {T_GCALL, "Indicativo: %s"}, {T_GWWL, "WWL: %s"}, {T_GQRB, "QRB: %d km"}, {T_GQTF, "QTF: %d"}, {T_GSEN, "Sent: %s %s"}, {T_GRCV, "Rcvd: %s %s"}, {T_GTIM, "Time: %s"}, {T_GOPE, "Op: %s"}, {T_GREM, "Rem: %s"}, {T_GWKD, "Wkd: %d"}, {T_GINC, "income: %d"}, {T_GLON, "Lon:%7.2f %-6s"}, {T_GLAT, "Lat:%7.2f %-6s"}, {T_GLOC, "Loc: %s"}, {T__PLESE_WAIT_, " Por favor ESPERE "}, {T__RO_BAND, " BANDA SO PARA LER"}, {T_COPYING_VER, "O ltimo programa de concurso - to necessrio como conhecido\n\nVerso " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nEste programa software livre; voc pode redistribuir e/ou modific-lo debaixo dos termos da licena GNU General Public License como publicado pelo Free Software Foundation; qualquer verso 2 da Licena, ou (como sua opo) qualquer verso mais recente."}, {T_CTEST_ACTIVE, "O concurso j est activo "}, {T_NO_CTESTS, "Nenhum concurso"}, {T_NO_CCLOSE, "Nenhum concurso para fechar"}, {T_REALLY, "De certeza?"}, {T_CLOSE_CTEST, "Quer mesmo fechar este concurso?"}, {T_GUI_LD, "GUI: %ld "}, {T_SBRK, "sbrk: %ld"}, {T_CWI, "C_W: %d cw items, %d wc items, ltimo %d\n"}, {T_EXC, "Exc: %s %d exc items, %d cxe items, ltimo %d\n"}, {T_VEXC, "Verified EXC: %d items\n"}, {T_DWI, "D_W: %d prefixos, %d DXCCs, %d WWLs\n"}, {T_NAMES, "Nomes: %d nomes\n"}, {T_MASTER, "Master: %d calls\n"}, {T_MEMS, "Memria:"}, {T_NMY, " Meu: %s:%d\n"}, {T_NGLOBAL, "Global: %s:%d\n"}, {T_NMASTER, "Master: %s %s %s:%d %s\n"}, {T_NSLAVES, "\nSlaves:\n"}, {T_NINFO, "Informao da rede"}, {T_NO_BANDS_QRV, "Nenhumas bandas QRV"}, {T_NO_BANDS_CONF, "Nenhumas bandas configuradas"}, {T_NOT_AVAILABLE, "No disponvel"}, {T_ADD_SUBWIN, "Adicionar subwin"}, {T_HK_ADD_SUBWIN, "A"}, {T_CLOSE_SUBWIN, "Fechar subwin"}, {T_HK_CLOSE_SUBWIN, "C"}, {T_HK_NINFO, "N"}, {T_NEW, "Novo"}, {T_HK_NEW, "N"}, {T_NEW_WIZZ, "Novo desde os exemplos"}, {T_HK_NEW_WIZZ, "W"}, {T_NEW_NET, "Novo desde a rede"}, {T_HK_NEW_NET, "T"}, {T_OPEN, "Abrir"}, {T_HK_OPEN, "O"}, {T_SAVE, "Guardar"}, {T_HK_SAVE, "S"}, {T_EXPORT_EDI, "Exportar como EDI"}, {T_HK_EXPORT_EDI, "E"}, {T_EXPORT_REPORT, "Exportar como reporte"}, {T_HK_EXPORT_REPORT, "R"}, {T_EXPORT_ADIF, "Exportar como ADIF"}, {T_HK_EXPORT_ADIF, "A"}, {T_EXPORT_CBR, "Export as ADIF"}, {T_HK_EXPORT_CBR, "B"}, {T_EXPORT_HTML, "Exportar como HTML"}, {T_HK_EXPORT_HTML, "H"}, {T_EXPORT_WIKI, "Export as MediaWiki"}, {T_HK_EXPORT_WIKI, "W"}, {T_IMPORT_EDI, "Importar EDI"}, {T_HK_IMPORT_EDI, "I"}, {T_IMPORT_ADIF, "Importar ADIF"}, {T_HK_IMPORT_ADIF, "M"}, {T_IMPORT_SWAP, "Importar swap"}, {T_HK_IMPORT_SWAP, "S"}, {T_IMPORT_LIST, "Import list"}, {T_HK_IMPORT_LIST, "L"}, {T_CONTEST_OP, "Opes do concurso"}, {T_HK_CONTEST_OP, "O"}, {T_CLOSE_CONTEST, "Fechar concurso"}, {T_HK_CLOSE_CONTEST, "C"}, {T_ADD_ERROR, "Adicionar ERRO"}, {T_HK_ADD_ERROR, "E"}, {T_CHOP, "Mudar de operador"}, {T_HK_CHOP, "O"}, {T_CW_CTEST, "Actualizar o C_W desde um concurso"}, {T_HK_CW_CTEST, "C"}, {T_CW_BAND, "Actualizar o C_W desde a banda"}, {T_HK_CW_BAND, "B"}, {T_EXC_CTEST, "Actualizar o EXC DB desde o concurso"}, {T_HK_EXC_CTEST, "P"}, {T_EXC_BAND, "Actualizar o EXC DB desde a banda"}, {T_HK_EXC_BAND, "D"}, {T_IMPORT_EBW, "Importar a database de DL8EBW"}, {T_HK_IMPORT_EBW, "W"}, {T_NO_CTEST, "Nenhum concurso"}, {T_NO_PEERS, "Nenhuns peers encontrados"}, {T_NO_MASTER, "O master no est disponvel!"}, {T_CTEST_DEF, "Configurao do concurso"}, {T_HK_CTEST_DEF, "O"}, {T_BAND_DEF, "A banda por defeito"}, {T_HK_BAND_DEF, "B"}, {T_HK_RESPOP, "R"}, {T_CW_DAEMON, "Chave de CW"}, {T_HK_CW_DAEMON, "E"}, {T_CW_CQ, "CW CQ"}, {T_HK_CW_CQ, "C"}, {T_SSB_CQ, "SSB CQ"}, {T_HK_SSB_CQ, "S"}, {T_AUTOSAVE, "Auto guardar"}, {T_HK_AUTOSAVE, "A"}, {T_LOAD_CFG_NET, "Carregar a cfg desde a net"}, {T_HK_LOAD_CFG_NET, "N"}, {T_LOAD_CW_NET, "Carregar o C_W desde a net"}, {T_HK_LOAD_CW_NET, "W"}, {T_SAVE_CFG, "Guardar a configurao"}, {T_HK_SAVE_CFG, "F"}, {T_CONTEST, "Concurso"}, {T_HK_CONTEST, "C"}, {T_EDIT, "Editar"}, {T_HK_EDIT, "E"}, {T_BANDS, "Bandas"}, {T_HK_BANDS, "B"}, {T_SUBWINS, "Subwins"}, {T_HK_SUBWINS, "W"}, {T_BAND_SETTINGS_SC, "As definies da banda por banda %c %s"}, {T_QRV_ON_THIS_BAND, "QRV nesta banda"}, {T_QRV_IN_THIS_CTEST, "QRV neste concurso"}, {T_READ_ONLY, "So ler"}, {T_MULTI, "Multi"}, {T_SINGLE, "Szinho"}, {T_CHECK, "Verificar"}, {T_TXEQUIP, " equip de TX:"}, {T_POWER, " potncia:"}, {T_RXEQUIP, " equip de RX:"}, {T_ANTENNA, " antena:"}, {T_AGLASL, " AGL;ASL:"}, {T_OPS, "operadores:"}, {T_SPACES1, " "}, {T_REMARKS, " anotaes:"}, {T_OK_SECTION_SINGLE, "Categoria single em OK"}, {T_OK_SECTION_MULTI, "Categoria multi em OK"}, {T_QRG_MIN, "Limite da banda desde"}, {T_QRG_MAX, "para [kHz]"}, {T_ADIFBAND, "Nome da banda em ADIF"}, {T_SKEDQRG, "QRG para skeds (formato livre)"}, {T_BAND_LO, "Transverter's LO QRG [Hz]"}, {T_BANDSW, "Band switch value"}, {T_RESPOP, "Operador responsvel"}, {T_NAME, " nome:"}, {T_CALLSIGN, " indicativo:"}, {T_ADDRESS, " endereo:"}, {T_POSTCODE, "cdigo postal:"}, {T_CITY, " cidade:"}, {T_COUNTRY, " pas:"}, {T_PHONE, " telefone:"}, {T_BBSEMAIL, " BBS/Email:"}, {T_QP0, " --nenhum -- "}, {T_QP1, " 1 QSOp*QSOp_m (Std. IARU)"}, {T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)"}, {T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)"}, {T_QP4, " 4 WWL_ring*QSOp_m (OK activity)"}, {T_QP5, " 5 St_miles*QSOp_m"}, {T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)"}, {T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)"}, {T_QP8, " 8 WWL_dist*QSOp_m (Baltic)"}, {T_QP9, " 9 WWL_dist*QSOp_m (Baltic & Nordic fieldday)"}, {T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)"}, {T_QP11, "11 QSOp_m *3 if F (F 50MHz)"}, {T_QP12, "12 RSGB DC (district codes)"}, {T_QP13, "13 Continent (CQ WW DX Contest)"}, {T_QP14, "14 Continent+band (CQ WW WPX Contest)"}, {T_QP15, "15 VHF Band (ARRL VHF, CQ VHF)"}, {T_QP16, "16 QSOp *4 if F (Champ. de France)"}, {T_TP0, " --none -- "}, {T_TP1, " 1 Multiplicative (Std. IARU)"}, {T_TP2, " 2 Additive (RSGB Backpacker, VRZA, Sicily)"}, {T_TP3, " 3 Mult. all bands (CQ WW DX Contest)"}, {T_TP4, " 4 All bands togeth. (ARRL VHF)"}, {T_NEW_CTEST, "Novo concurso"}, {T_CANT_TRUNC, "No posso mutilar o ficheiro de desc"}, {T_NAME_OF_CTEST, "Nome do concurso:"}, {T_CALL_OF_CTEST, "Indicativo no concurso:"}, {T_CLUB_ST, "Estao do clube:"}, {T_YOURWWL, "A sua quadrcula:"}, {T_YOUREXC, "O seu EXC:"}, {T_DATE_OF_CTEST, "Data do concurso:"}, {T_QSOUSED, "QSO NR usado"}, {T_QSOPM, " QSOp multi:"}, {T_WWLUSED, "Quadrcula usada "}, {T_WWLB, "Bnus da quadrcula:"}, {T_WWLM, "Multi da quadrcula:"}, {T_EXCUSED, "EXC usada"}, {T_EXCB, " Bnus do EXC:"}, {T_EXCM, "Multi do EXC:"}, {T_EXCNAME, "EXC name:"}, {T_PREFM, "PREF multi:"}, {T_DXCB, "DXC bnus:"}, {T_DXCM, "DXC multi:"}, {T_RSTUSED, "RST usado "}, {T_DEFRS, "RS por defeito:"}, {T_DEFRST, "Def RST:"}, {T_ALSORSTR, "Also for RST-R"}, {T_QP_CALC, " QSOp calc:"}, {T_TO_CALC, "Total calc:"}, {T_EDI_PROP, "EDI prop"}, {T_RESPOP2, "Op responsvel"}, {T_EDIT_QSO_CD, "Editar QSO %c: %03d"}, {T_CALLSIGN2, "Indicativo:"}, {T_CLUB, " Clube:"}, {T_PADR1, " PAdr1:"}, {T_PADR2, " PAdr2:"}, {T_RS, " RS:"}, {T_RST, " RST:"}, {T_OPERATOR, "Operador:"}, {T_DATE, " Data:"}, {T_MODE, " Modo:"}, {T_RSTS, " RSTs:"}, {T_RSTR, " RSTr:"}, {T_QSONRS, "QSO enviado:"}, {T_QSONRR, "QSO recebido:"}, {T_OPTEXCH, " OptExch:"}, {T_WWL, " WWL:"}, {T_REMARK, " Anotao:"}, {T_QRV2, " QRV on:"}, {T_WKD, " WKD:"}, {T_SEND_SKED, "Enviar sked"}, {T_SELECT, "Seleccionado"}, {T_QRG, " QRG:"}, {T_WE_CALL, " Ns chamamos"}, {T_BAND, " Banda:"}, {T_TIME, " Tempo:"}, {T_DUPE_QSO, "QSO duplicado!"}, {T_CLEAR_THIS_QSO, "Limpar este QSO"}, {T_EDIT_OLD_QSO, "Editar QSO antigo"}, {T_MARK_OLD_QSO, "Marcar qso antigo como ERRO"}, {T_STORE_AS_DUPE, "Guardar como DUPE"}, {T_BAD_CALL, "Isto no parece um indicativo"}, {T_N_CALLSIGN, "\nIndicativo:"}, {T_AUTOSAVE_OPTS, "Opes de auto-guardar"}, {T_SAVE_AQ, "Guardar para o disco depois do QSO: "}, {T_SAVE_AM, "Guardar no disco depois dos minutos:"}, {T_FSYNC, "Fsync"}, {T_SAVE_AQF, "Guardar na disquete depois do QSO: "}, {T_SAVE_AMF, "Guardar na disquete depois dos minutos:"}, {T_DO_MOUNT, "Montar se no em /etc/mtab (no usado)"}, {T_FLOPPY_PATH, "Caminho para a disquete:"}, {T_MOUNT_CMD, "Comando de montar: "}, {T_SW_SHELL, "Shell"}, {T_SW_QSOS, "QSOs"}, {T_SW_LOG, "Log"}, {T_SW_TALK, "Falar"}, {T_SW_SKED, "Sked"}, {T_SW_UNFI, "Unfi"}, {T_SW_DXC, "DXC"}, {T_SW_STAT, "Stat"}, {T_SW_MAP, "Mapa"}, {T_SW_SCOPE, "Scope"}, {T_SW_QRV, "QRV"}, {T_SW_HF, "HF"}, {T_SW_PLAYER, "Player"}, {T_SW_CHART, "Chart"}, {T_SHELL, "Shell"}, {T_QSOS, "QSOs"}, {T_LOG, "Log"}, {T_TALK, "Falar"}, {T_SKEDS, "Skeds"}, {T_UNFI, "QSO no concludo QSOs"}, {T_DXC, "DX Cluster (N/A)"}, {T_STAT, "Estatsticas"}, {T_SWAP, "Mudar (N/A)"}, {T_MAP, "Mapa grfico"}, {T_SCOPE, "Scope"}, {T_QRV, "QRV"}, {T_HF, "HF"}, {T_CMD, "Comando"}, {T_RESPAWN, "Respawn [sec]:"}, {T_UNFI_QSO, "QSO no acabado"}, {T_N_REMARK, "\nAnotao:"}, {T_NO_CQ, "Nenhum CQ definido"}, {T_TEXT, "Texto:"}, {T_SPEED, "Velocidade [WPM]:"}, {T_REPEAT, "Repetir"}, {T_DELAY, "Atraso [0.1s]:"}, {T_ALLOW_UNDEF, "Permitir se o mesmo item est indefinido"}, {T_CW_DSCS, "CW%d (%s) %c %s"}, {T_FILENAME, "Ficheiro:"}, {T_SSB_DSCS, "SSB%d (%s) %c %s"}, {T_UDPPORT, "Porta UDP:"}, {T_DEVICE, "Mecanismo de telegrafia:"}, {T_INIT_SPEED, "Velocidade inicial [WPM]:"}, {T_INIT_WEIGHT, "Peso (30-70):"}, {T_WPMFROM, "Alcance WPM de"}, {T_WPMTO, "para"}, {T_USE_SPK, "Usar altifalante"}, {T_LEADIN, " Presena do PTT em [ms]"}, {T_AUTGIVE, "Run mode aut. give after [chars]"}, {T_IGN_IFACE_S, "Ignorar o interface %-5s"}, {T_IGN_ADDR_S, "Ignorar o endereo %s"}, {T_ADD_IFACE_SSD, "Interface adicionado=%-5s BCAST=%s:%d"}, {T_FORCED_ADDR, "Endereo forcado %s"}, {T_TIMESKEW, "AVISO! O tempo de skew %d detectado outra vez %s:%d !\n"}, {T_DISCONNECTING_SD, "A desligar desde %s:%d"}, {T_ACCEPTED_SD, "Aceitado %s:%d"}, {T_CONNECTING_SD, "A ligar a %s:%d"}, {T_CONNECTED_SD, "Ligado a %s:%d"}, {T_DISCONNECTED_SD, "A desligar desde %s:%d"}, {T_LOADED_CFG_SSSS, "A carregar a config para %s %s (%s,%s)"}, {T_LOADED_CW, "C_W data carregada"}, {T_PEER_NOT_FOUND, "ERRO! Peer %s no encontrado"}, {T_CANT_CREATE_HOME_S, "No posso criar a directoria %s"}, {T_CANT_LOAD_CFG, "No posso carregar a configurao!\nO programa no vai trabalhar devidamente!"}, {T_ERR_RC, "Encontrados alguns erros de parsing no ficheiro de config!\nEste ficheiro foi provavelmente guardado no novo Tucnak!\nNo guarde a sua configurao a pois pode perder todos os seus elementos!"}, {T_SES_QTR, " QTR "}, {T_SES_QRA, " CALL "}, {T_SES_RST, " RST-S-No RST-R-No "}, {T_SES_QTH, " QTH "}, {T_SES_QRB, " Pts/QRB QTF "}, {T_SES_FLG, " Flg "}, {T_SES_OPE, " Oper. "}, {T_SES_EXC, " Exch "}, {T_SES_REM, " Aviso "}, {T_SES_WELCOME, "Bem vindo ao Tucnak! "}, {T_SES_PRESS_F10, "Premir F10 para o menu."}, {T_SES_HAVE_FUN, "Divirta-se."}, {T_SES_URL, "http://tucnak.nagano.cz "}, {T_SES_ODX, "ODX: "}, {T_SES_ODX_DATA, "%s %s %d km (%s)"}, {T_SES_STAT_TIT, "QSOs QSO-p OptX WWLs DXCCs Total-p AVG"}, {T_SES_AVG, " AVG: %5.2f"}, {T_SES_WPM, " WPM: %d %02d%%"}, {T_SF_WWLS, " WWLs: %d"}, {T_SF_WWLS_UNDER, "-------------"}, {T_SF_EXCS, " EXCs: %d"}, {T_SF_EXCS_UNDER, "-------------"}, {T_SF_MISS_EXCS, " Missing EXCs: %d"}, {T_SF_MISS_EXCS_UNDER, "---------------------"}, {T_SF_PREFS, " PREFs: %d"}, {T_SF_PREFS_UNDER, "-------------"}, {T_SF_DXCS, " DXCCs: %d"}, {T_SF_DXCS_UNDER, "-------------"}, {T_SF_WKD_WWLS, " WKD WWLs: %d"}, {T_SF_WKD_WWLS_UNDER, "-----------------"}, {T_SF_QSO_WWL4, " QSOS em WWL4s: %d"}, {T_SF_QSO_WWL4_UNDER, "----------------------"}, {T_SF_STATS_BAND, " Estatsticas para a banda %s"}, {T_SF_STATS_BAND_UNDER, "==============================="}, {T_SF_CONTEST, "Contest: %s"}, {T_SF_ALLBQSOS, "All bands QSOs: %d"}, {T_SF_ALLBQSOP, "All bands QSOp: %d"}, {T_SF_ALLBPTS, "All bands pts: %d"}, {T_SF_QSOS, "QSOs: %d"}, {T_SF_QSOP, "QSO points: %d"}, {T_SF_PTS, "Points: %d"}, {T_SF_AVG_PTS, "Mdia pts/QSO: %5.2f"}, {T_SF_AVG_QSOP, "Mdia qsop/QSO: %5.2f"}, {T_BAND_RO, "A banda s para ler"}, {T_THIS_BAND, "Esta banda"}, {T_OTHER_BANDS, "Outras bandas"}, {T_CW_DB, "C_W database"}, {T_PROC_EXITED, "*** Processo sado\n"}, {T_WE_CALL2, "ns chamamos"}, {T_WE_LISTEN, "ns escutamos"}, {T_QSL, "QSL prometido"}, {T_RECORD, "Trfego registado"}, {T_MAXMIN, " Max. durao da gravao"}, {T_TEMPLATE, "Template para o ficheiro registado"}, {T_PCM8, "8 bit PCM"}, {T_PCM16, "16 bit PCM"}, {T_ULAW, "u-law"}, {T_ALAW, "A-law"}, {T_IMAADPCM, "IMA ADPCM"}, {T_MSADPCM, "MS ADPCM"}, {T_GSM610, "GSM 6.10"}, {T_CHANNELS, "Canais"}, {T_SAMPLERATE, "Velocidade de exemplo"}, {T_FILLOP, "Preencher operadores"}, {T_HK_FILLOP, "L"}, {T_RECAQRB, "Recalc QRB,QTF"}, {T_HK_RECAQRB, "R"}, {T_NETWORK, "Rede & registar"}, {T_HK_NETWORK, "K"}, {T_IF_IGNORE, "Interfaces ignorados:"}, {T_IP_IGNORE, " Redes ignoradas:"}, {T_IP_ANNOUNCE, " Anunciar para as nets:"}, {T_TRACE_BCAST, "Registar transmisses "}, {T_TRACE_SOCK, "Registar sockets"}, {T_TRACE_RECV, "Registar data recebida"}, {T_TRACE_SEND, "Registar data enviada"}, {T_TRACE_QSOS, "Registar QSOs"}, {T_TRACE_SDEV, "Trace rotars"}, {T_NOT_MOUNTED_S, "No est montada %s"}, {T_RECSRC_NONE, "No definido"}, {T_RECSRC_MIC, "Microfone"}, {T_RECSRC_LINE, "Line in"}, {T_NEW_CALL, "Novo!"}, {T_HK_NEW_CALL, "n"}, {T_QRV_ON_S, "QRV em %s"}, {T_SKED_QRG, "QRG para skeds"}, {T_HK_SKED_QRG, "F"}, {T_N_SKED_QRG, "\nQRG para skeds:"}, {T_GRAB_BAND, "Gravar controle da banda"}, {T_HK_GRAB_BAND, "G"}, {T_FORCE_RUN, "Forar modo RUN"}, {T_HK_FORCE_RUN, "U"}, {T_EXPORT_STATS, "Exportar estatsticas"}, {T_HK_EXPORT_STATS, "T"}, {T_SF_TOP_DX, " TOP %d DX QSOs:"}, {T_SF_TOP_DX_UNDER, "-------------------"}, {T_ROTAR, "Rotor"}, {T_HK_ROTAR, "R"}, {T_AZIMUTH, " Azimute"}, {T_ELEVATION, "Elevao"}, {T_CH_SPY, "Espiar"}, {T_HK_CH_SPY, "S"}, {T_CH_ENDSPY, "Fim de espiar"}, {T_HK_CH_ENDSPY, "P"}, {T_EXPORT_TITLPAGE, "Exportar a pgina do ttulo"}, {T_HK_EXPORT_TITLPAGE, "P"}, {T_BREAK_RECORD, "Gravao cortada"}, {T_HK_BREAK_RECORD, "B"}, {T_GLOBAL_OPERATOR, "Mudar para todas as bandas"}, {T_GLOBAL_OPERATOR2, "Global"}, {T_MAXFRAG, "Max. nm de fragmentos (>=2)"}, {T_PLAY_LAST, "Repetir ltimo exemplo"}, {T_HK_PLAY_LAST, "P"}, {T_MISCOPTS, "Opes variadas"}, {T_HK_MISCOPTS, "P"}, {T_LOGLINES, "Linhas do registo: "}, {T_SKEDSHIFT, "Intervalo do contacto (minutos): "}, {T_STARTBAND, "Banda para comear: "}, {T_GFX_X_CH, "Resoluo do monitor (cars):"}, {T_GFX_Y_CH, "x"}, {T_GFX_X_PX, "Resoluo do monitor (pixels):"}, {T_GFX_Y_PX, "x"}, {T_CALL_INFO, "Informao do indicativo"}, {T_HK_CALL_INFO, "I"}, {T_SF_QSO_HOUR, "QSOs/hora: %d"}, {T_SF_QSOP_HOUR, "Pontos/hora: %d"}, {T_SF_QSOP_50QSO, "Pontos/50 QSOs: %d"}, {T_SF_HOURS, " Horas"}, {T_SF_HOURS_UNDER, "---------"}, {T_SF_HOURS_TITLE, "Horas Pontos QSOs AVG pts/QSO"}, {T_QSO_CHECK, "QSO check"}, {T_HK_QSO_CHECK, "K"}, {T_AUDIO, "Audio"}, {T_HK_AUDIO, "D"}, {T_ALSA, "Alsa"}, {T_OSS, "OSS"}, {T_SSBD, "O programa de SSB"}, {T_DISKFREE, "O minimo espao de disco disponivel [MiB]"}, {T_FORMAT, "Formato de gravao"}, {T_PCM_PLAY, "Dispositivo de som Alsa"}, {T_PCM_REC, "Dispositivo de captura Alsa"}, {T_PERIOD, "Periodo de tempo [ms]"}, {T_BUFFER, "Tempo de buffer [ms]"}, {T_ALSA_MIXER, "Dispositivo misturador Alsa"}, {T_CAPTURE, "Fonte de captura"}, {T_DSP, "Caminho para o /dev/dsp"}, {T_MIXER, "Caminho para o /dev/mixer"}, {T_RECSRC, "Fonte de leitura"}, {T_SSBD_HOSTNAME, "SSBD hostname:"}, {T_HOSTNAME, "Hostname:"}, {T_SLASHKEY, "Chave slash"}, {T_FIXQRG, "Reparar QRG"}, {T_HK_FIXQRG, "X"}, {T_ENTER_QRG, "Escrever a QRG correcta [Hz]"}, {T_BAD_QRG, "Frequncia errada"}, {T_CALLSIGN3, "Indicativo"}, {T_CALLSIGN_KST, "Indicativo da estao KST:"}, {T_CANT_INIT_WINKEY_S, "No posso iniciar a winkey em %s"}, {T_WINKEYOPTS, "Opes da Winkey"}, {T_WK_WK2, "Inicializao rdida da Winkey2"}, {T_WK_USEPOT, "Use o potnciometro de velocidade"}, {T_WK_USEBUT, "Use os butes"}, {T_WK_KM_B, "Curtis-B"}, {T_WK_KM_A, "Curtis-A"}, {T_WK_KM_U, "Ultimatic"}, {T_WK_KM_G, "Bug"}, {T_WK_SWAP, "Mudana da paddle ( esquerda)"}, {T_RIGOPTS, "Opes do equipamento"}, {T_HK_RIGOPTS, "G"}, {T_RIG_DEVICE, "Device:"}, {T_RIG_MODEL, "Model"}, {T_RIG_SPEED, "Baudrate: "}, {T_RIG_CIV, "CIV address"}, {T_RIG_FREQSHIFT, "Freq. shift SSB->CW"}, {T_RIG_CHOOSE, "Choose"}, {T_ROTAROPTS, "Rotar options"}, {T_HK_ROTAROPTS, "I"}, {T_DSSAVER, "Desactivar o screensaver"}, {T_DESC, "Description"}, {T_ROT_NONE, "None"}, {T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys"}, {T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI"}, {T_ROT_HAMLIB, "Hamlib (N/A)"}, {T_ROT_REMOTE, "Remote (N/A)"}, {T_ROT_VID, "VID:"}, {T_ROT_PID, "PID:"}, {T_ROT_SERIAL, "Serial #"}, {T_ROT_ADD, "Add new rotator"}, {T_HK_ROT_ADD, "W"}, {T_ROT_REMOVE, "Remove rotator"}, {T_HK_ROT_REMOVE, "R"}, {T_TIMEOUT, "Timeout:"}, {T_BEAMWIDTH, "Beam width"}, {T_SADDR, "Communication address:"}, {T_MODEL, "Model:"}, {T_ROT_REM_ROTSTR, "Rotator letter for remote"}, {T_QSOGLOB, "Global QSO NR"}, {T_PREFGLOB, "Global prefix"}, {T_NOT_RECORDING_S, "Not recording - %s"}, {T_SKEDCOUNT, "Sked count in popup: "}, {T_FONTHEIGHT, "Font height (16-32): "}, {T_RIG_POLL_MS, "Rig poll interval [ms]: "}, {T_RIG_QRG_R2T, "Set band from radio"}, {T_RIG_QRG_T2R, "Change band on radio"}, {T_RIG_MODE_T2R, "Change mode on radio"}, {T_RUN_MODE, "Run mode"}, {T_HK_RUN_MODE, "M"}, {T_SP_MODE, "S&P mode"}, {T_HK_SP_MODE, "M"}, {T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save"}, {T_RIG_DEBUG, "Debug rig"}, {T_HF_RATE, "Rate: %3d/10 %3d/60"}, {T_HF_BAND, "Band QSO Point Mult"}, {T_HF_SUM, "Sum:"}, {T_HF_LAST, "Last Q-%s P-%s"}, {T_EVEN, "TX even"}, {T_HK_EVEN, "v"}, {T_ODD, "TX odd"}, {T_HK_ODD, "d"}, {T_1ST, "TX 1st"}, {T_HK_1ST, "1"}, {T_2ND, "TX 2nd"}, {T_HK_2ND, "2"}, {T_HF_SCORE, "Score:"}, {T_EXPMODE, "Expedition mode"}, {T_TTTYPE, "Only digits mean"}, {0, NULL} }; struct translation translation_french [] = { {0, NULL}, {T__CHAR_SET, "iso8859-1"}, {T__LANGUAGE, "Franais"}, {T_ABOUT, "A propos"}, {T_BAD_NUMBER, "Mauvais nombre"}, {T_BAD_STRING, "Mauvaise chane"}, {T_BASIC_HELP, "Presser F10 pour le menu.\nAmusez vous bien."}, {T_BLOCK_CURSOR, "Curseur bloc"}, {T_CANCEL, "Annuler"}, {T_CHARACTER_SET, "Codage de caractres"}, {T_COLOR, "Couleur"}, {T_COPYING, "Copying"}, {T_DIFFERENCE, "diffrence"}, {T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Voulez vous rellement quitter Tucnak?"}, {T_EMPTY_STRING_NOT_ALLOWED, "Chane vide non autorise"}, {T_ERROR, "Erreur"}, {T_WARNING, "Avertissement"}, {T_EXIT, "Quitter"}, {T_EXIT_TUCNAK, "Quitter Tucnak"}, {T_FILE, "Fichier"}, {T_FULL_SCREEN, "Plein cran"}, {T_HELP, "Aide"}, {T_HK_ABOUT, "A"}, {T_HK_BEOS_TERMINAL, "B"}, {T_HK_CHARACTER_SET, "A"}, {T_HK_COPYING, "C"}, {T_HK_EXIT, "Q"}, {T_HK_FILE, "F"}, {T_HK_FULL_SCREEN, "F"}, {T_HK_HELP, "H"}, {T_HK_LANGUAGE, "L"}, {T_HK_MEMORY_INFO, "M"}, {T_HK_OS_SHELL, "O"}, {T_HK_SCREEN, "S"}, {T_HK_SETUP, "S"}, {T_HK_TERMINAL_OPTIONS, "T"}, {T_HK_TWTERM, "T"}, {T_HK_WINDOW, "W"}, {T_HK_XTERM, "X"}, {T_KOI8R_FRAMES, "Cadres KOI8-R"}, {T_LANGUAGE, "Langue"}, {T_LAST, "dernier"}, {T_LINUX_OR_OS2_FRAMES, "Cadres Linux ou OS/2"}, {T_MEMORY_INFO, "Info mmoire"}, {T_NO_FRAMES, "Aucun cadre"}, {T_NO, "Non"}, {T_NUMBER_EXPECTED, "Nombre attendu dans le champ"}, {T_NUMBER_OUT_OF_RANGE, "Nombre hors domaine"}, {T_OK, "OK"}, {T_OS_SHELL, "OS shell"}, {T_RESTRICT_FRAMES_IN_CP850_852, "Restreindre les cadres en cp850/852"}, {T_UTF_8_IO, "UTF-8 Entre/Sortie"}, {T_SCREEN, "Ecran"}, {T_SETUP, "Setup"}, {T_TERMINAL_OPTIONS, "Options terminal"}, {T_TUCNAK__TACLOG_LIKE, "Tucnak " VERSION_STRING "\n\nLog contest V/U/SHF similaire TACLOG"}, {T_TWTERM, "Twterm"}, {T_USE_11M, "Utiliser ^[[11m"}, {T_VT_100_FRAMES, "Cadres VT 100"}, {T_WELCOME_TO_TUCNAK, "Bienvenue dans Tucnak!\nVeuillez saisir votr indicatif et champs suivants s'il vous plait"}, {T_WELCOME, "Bienvenue"}, {T_XTERM, "Xterm"}, {T_YES, "Oui"}, {T_CANT_APPEND_S, "Ne peut concatner le fichier %s"}, {T_CANT_WRITE, "Ne peut crire dans le fichier"}, {T_CANT_WRITE_S, "Ne peut crire dans le fichier %s"}, {T_CANT_READ, "Ne peut lire depuis le fichier"}, {T_CANT_READ_S, "Ne peut lire depuis le fichier %s"}, {T_SAVED_S, "%s enregistr"}, {T__CW_, " CW "}, {T_CWW_KEYS, " PgUp +, PgDn - vitesse cw "}, {T_CANT_OPEN_S, "Ne peut ouvrir %s"}, {T_CANT_LOCK, "Ne peut vrouiller"}, {T_CANT_LOCK_S, "Ne peut vrouiller %s"}, {T_LOADING_CTEST_S, "*** Chargement contest %s"}, {T_NO_FILES, "Aucun fichier dans le rpertoire"}, {T_BAND_EXIST_SS, "ATTENTION! La bande %s (%s) existe dj"}, {T_BAND_NOT_OPEN, "Bande non active dans ce contest"}, {T_NO_BANDS, "Aucune bande charger"}, {T_CANT_SET_GR_S, "Ne peut mettre aucun mode graphique-%s"}, {T_GCALL, "Indicatif: %s"}, {T_GWWL, "WWL: %s"}, {T_GQRB, "QRB: %d km"}, {T_GQTF, "QTF: %d"}, {T_GSEN, "Trns: %s %s"}, {T_GRCV, "Reu: %s %s"}, {T_GTIM, "Time: %s"}, {T_GOPE, "Op: %s"}, {T_GREM, "Rem: %s"}, {T_GWKD, "Wkd: %d"}, {T_GINC, "revenu: %d"}, {T_GLON, "Lon:%7.2f %-6s"}, {T_GLAT, "Lat:%7.2f %-6s"}, {T_GLOC, "Loc: %s"}, {T__PLESE_WAIT_, " ATTENDRE svp "}, {T__RO_BAND, " BANDE LECTURE-SEULE"}, {T_COPYING_VER, "The ultimate contestlog - necessary as known\n\nVersion " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nThis program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version."}, {T_CTEST_ACTIVE, "Contest dj actif "}, {T_NO_CTESTS, "Aucun contest"}, {T_NO_CCLOSE, "Aucun contest fermer"}, {T_REALLY, "Vraiment?"}, {T_CLOSE_CTEST, "Voulez vous vraiment fermer ce contest?"}, {T_GUI_LD, "IHM: %ld "}, {T_SBRK, "sbrk: %ld"}, {T_CWI, "C_W: %d cw lments, %d wc lments, dernier %d\n"}, {T_EXC, "Exc: %s %d exc items, %d cxe items, latest %d\n"}, {T_VEXC, "Verified EXC: %d items\n"}, {T_DWI, "D_W: %d prfixes, %d DXCCs, %d WWLs\n"}, {T_NAMES, "Noms: %d noms\n"}, {T_MASTER, "Master: %d calls\n"}, {T_MEMS, "Mmoire:"}, {T_NMY, " Mien: %s:%d\n"}, {T_NGLOBAL, "Global: %s:%d\n"}, {T_NMASTER, "Matre: %s %s %s:%d %s %s\n"}, {T_NSLAVES, "\nEsclaves:\n"}, {T_NINFO, "Info rseau"}, {T_NO_BANDS_QRV, "QRV aucune bande"}, {T_NO_BANDS_CONF, "Aucune bande configure"}, {T_NOT_AVAILABLE, "Non disponible"}, {T_ADD_SUBWIN, "Ajoute sous-fentre"}, {T_HK_ADD_SUBWIN, "A"}, {T_CLOSE_SUBWIN, "Ferme sous-fentre"}, {T_HK_CLOSE_SUBWIN, "F"}, {T_HK_NINFO, "N"}, {T_NEW, "Nouveau"}, {T_HK_NEW, "N"}, {T_NEW_WIZZ, "Nouveau depuis assistant"}, {T_HK_NEW_WIZZ, "V"}, {T_NEW_NET, "New from network"}, {T_HK_NEW_NET, "T"}, {T_OPEN, "Ouvrir"}, {T_HK_OPEN, "O"}, {T_SAVE, "Enregistrer"}, {T_HK_SAVE, "E"}, {T_EXPORT_EDI, "Exporter en EDI"}, {T_HK_EXPORT_EDI, "E"}, {T_EXPORT_REPORT, "Exporter en rapport"}, {T_HK_EXPORT_REPORT, "R"}, {T_EXPORT_ADIF, "Exporter en ADIF"}, {T_HK_EXPORT_ADIF, "A"}, {T_EXPORT_CBR, "Export as ADIF"}, {T_HK_EXPORT_CBR, "B"}, {T_EXPORT_HTML, "Exporter en HTML"}, {T_HK_EXPORT_HTML, "H"}, {T_EXPORT_WIKI, "Export as MediaWiki"}, {T_HK_EXPORT_WIKI, "W"}, {T_IMPORT_EDI, "Importer EDI"}, {T_HK_IMPORT_EDI, "I"}, {T_IMPORT_ADIF, "Importer ADIF"}, {T_HK_IMPORT_ADIF, "M"}, {T_IMPORT_SWAP, "Importer swap"}, {T_HK_IMPORT_SWAP, "S"}, {T_IMPORT_LIST, "Import list"}, {T_HK_IMPORT_LIST, "L"}, {T_CONTEST_OP, "Options contest"}, {T_HK_CONTEST_OP, "O"}, {T_CLOSE_CONTEST, "Fermer contest"}, {T_HK_CLOSE_CONTEST, "F"}, {T_ADD_ERROR, "Ajouter ERROR"}, {T_HK_ADD_ERROR, "E"}, {T_CHOP, "Changer d'oprateur"}, {T_HK_CHOP, "O"}, {T_CW_CTEST, "Mettre jour C_W depuis contest"}, {T_HK_CW_CTEST, "C"}, {T_CW_BAND, "Mettre jour C_W depuis la bande"}, {T_HK_CW_BAND, "B"}, {T_EXC_CTEST, "Update EXC DB from contest"}, {T_HK_EXC_CTEST, "P"}, {T_EXC_BAND, "Update EXC DB from band"}, {T_HK_EXC_BAND, "D"}, {T_IMPORT_EBW, "Importer base de donne DL8EBW"}, {T_HK_IMPORT_EBW, "W"}, {T_NO_CTEST, "Aucun contest"}, {T_NO_PEERS, "Aucun pairs trouvs"}, {T_NO_MASTER, "Matre undisponible!"}, {T_CTEST_DEF, "Contest par dfaut"}, {T_HK_CTEST_DEF, "O"}, {T_BAND_DEF, "Bande par dfaut"}, {T_HK_BAND_DEF, "B"}, {T_HK_RESPOP, "R"}, {T_CW_DAEMON, "Manip CW"}, {T_HK_CW_DAEMON, "M"}, {T_CW_CQ, "CW CQ"}, {T_HK_CW_CQ, "C"}, {T_SSB_CQ, "SSB CQ"}, {T_HK_SSB_CQ, "S"}, {T_AUTOSAVE, "Auto-enregistrement"}, {T_HK_AUTOSAVE, "A"}, {T_LOAD_CFG_NET, "Chargement cfg depuis rseau"}, {T_HK_LOAD_CFG_NET, "N"}, {T_LOAD_CW_NET, "Chargement C_W depuis rseau"}, {T_HK_LOAD_CW_NET, "W"}, {T_SAVE_CFG, "Enregistrement configuration"}, {T_HK_SAVE_CFG, "F"}, {T_CONTEST, "Contest"}, {T_HK_CONTEST, "C"}, {T_EDIT, "Edition"}, {T_HK_EDIT, "E"}, {T_BANDS, "Bandes"}, {T_HK_BANDS, "B"}, {T_SUBWINS, "Sous-fentres"}, {T_HK_SUBWINS, "W"}, {T_BAND_SETTINGS_SC, "Band settings for band %c %s"}, {T_QRV_ON_THIS_BAND, "QRV sur cette bande"}, {T_QRV_IN_THIS_CTEST, "QRV dans ce contest"}, {T_READ_ONLY, "Lecture-seule"}, {T_MULTI, "Multi"}, {T_SINGLE, "Single"}, {T_CHECK, "Check"}, {T_TXEQUIP, " TX Equip:"}, {T_POWER, "Puissance:"}, {T_RXEQUIP, " RX Equip:"}, {T_ANTENNA, " Antenne:"}, {T_AGLASL, " AGL;ASL:"}, {T_OPS, "Oprateurs:"}, {T_SPACES1, " "}, {T_REMARKS, "Remarques:"}, {T_OK_SECTION_SINGLE, "Single category in OK"}, {T_OK_SECTION_MULTI, "Multi category in OK"}, {T_QRG_MIN, "Band boundary from"}, {T_QRG_MAX, "to [kHz]"}, {T_ADIFBAND, "ADIF band name"}, {T_SKEDQRG, "QRG for skeds (free form)"}, {T_BAND_LO, "Transverter's LO QRG [Hz]"}, {T_BANDSW, "Band switch value"}, {T_RESPOP, "Oprateur responsable"}, {T_NAME, " Nom:"}, {T_CALLSIGN, " Indicatif:"}, {T_ADDRESS, " Adresse:"}, {T_POSTCODE, "Code Postal:"}, {T_CITY, " Ville:"}, {T_COUNTRY, " Pays:"}, {T_PHONE, " Tlphone:"}, {T_BBSEMAIL, " BBS/Email:"}, {T_QP0, " --aucun-- "}, {T_QP1, " 1 QSOp*QSOp_m (Std. IARU)"}, {T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)"}, {T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)"}, {T_QP4, " 4 WWL_ring*QSOp_m (OK activity)"}, {T_QP5, " 5 St_miles*QSOp_m"}, {T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)"}, {T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)"}, {T_QP8, " 8 WWL_dist*QSOp_m (Baltic)"}, {T_QP9, " 9 WWL_dist*QSOp_m (Baltic & Nordic fieldday)"}, {T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)"}, {T_QP11, "11 QSOp_m *3 if F (F 50MHz)"}, {T_QP12, "12 RSGB DC (district codes)"}, {T_QP13, "13 Continent (CQ WW DX Contest)"}, {T_QP14, "14 Continent+band (CQ WW WPX Contest)"}, {T_QP15, "15 VHF Band (ARRL VHF, CQ VHF)"}, {T_QP16, "16 QSOp *4 if F (Champ. de France)"}, {T_TP0, " --aucun-- "}, {T_TP1, " 1 Multiplicatif (Std. IARU)"}, {T_TP2, " 2 Additif (RSGB Backpacker, VRZA, Sicily)"}, {T_TP3, " 3 Mult. all bands (CQ WW DX Contest)"}, {T_TP4, " 4 All bands togeth. (ARRL VHF)"}, {T_NEW_CTEST, "Nouveau Contest"}, {T_CANT_TRUNC, "Ne peut troncaturer le fichier desc"}, {T_NAME_OF_CTEST, "Nom du contest:"}, {T_CALL_OF_CTEST, "Indicatif dans le contest:"}, {T_CLUB_ST, "Station du club:"}, {T_YOURWWL, "Votre WWL:"}, {T_YOUREXC, "Votre EXC:"}, {T_DATE_OF_CTEST, "Date du contest:"}, {T_QSOUSED, "QSO NR utilis"}, {T_QSOPM, " QSOp multi:"}, {T_WWLUSED, "WWL utilis "}, {T_WWLB, "WWL bonus:"}, {T_WWLM, "WWL multi:"}, {T_EXCUSED, "EXC used"}, {T_EXCB, " EXC bonus:"}, {T_EXCM, "EXC multi:"}, {T_EXCNAME, "EXC name:"}, {T_PREFM, "PREF multi:"}, {T_DXCB, "DXC bonus:"}, {T_DXCM, "DXC multi:"}, {T_RSTUSED, "RST Utilis "}, {T_DEFRS, "RS par dfaut:"}, {T_DEFRST, "Def RST:"}, {T_ALSORSTR, "Also for RST-R"}, {T_QP_CALC, " QSOp calc:"}, {T_TO_CALC, "Total calc:"}, {T_EDI_PROP, "EDI prop"}, {T_RESPOP2, "Op responsable"}, {T_EDIT_QSO_CD, "Edite QSO %c: %03d"}, {T_CALLSIGN2, "Indicatif:"}, {T_CLUB, " Club:"}, {T_PADR1, " PAdr1:"}, {T_PADR2, " PAdr2:"}, {T_RS, " RS:"}, {T_RST, " RST:"}, {T_OPERATOR, "Operator:"}, {T_DATE, " Date:"}, {T_MODE, " Mode:"}, {T_RSTS, " RSTs:"}, {T_RSTR, " RSTr:"}, {T_QSONRS, "QSO sent:"}, {T_QSONRR, "QSO rcvd:"}, {T_OPTEXCH, " OptExch:"}, {T_WWL, " WWL:"}, {T_REMARK, "Remarque:"}, {T_QRV2, " QRV on:"}, {T_WKD, " WKD:"}, {T_SEND_SKED, "Envoi sked"}, {T_SELECT, "Slectionne"}, {T_QRG, " QRG:"}, {T_WE_CALL, " On appelle"}, {T_BAND, " Bande:"}, {T_TIME, " Time:"}, {T_DUPE_QSO, "QSO dupliqu!"}, {T_CLEAR_THIS_QSO, "Nettoyer ce QSO"}, {T_EDIT_OLD_QSO, "Edite ancien QSO"}, {T_MARK_OLD_QSO, "Marque ancien QSO comme ERROR"}, {T_STORE_AS_DUPE, "Enregistre comme DUPE"}, {T_BAD_CALL, "Ca ne ressemble pas un indicatif"}, {T_N_CALLSIGN, "\nIndicatif:"}, {T_AUTOSAVE_OPTS, "Options auto-enregistrement"}, {T_SAVE_AQ, "Enregistre sur disque aprs QSO: "}, {T_SAVE_AM, "Enregistre sur disque aprs minutes:"}, {T_FSYNC, "Fsync"}, {T_SAVE_AQF, "Enregistre sur disquette aprs QSO: "}, {T_SAVE_AMF, "Enregistre sur disquette aprs minutes:"}, {T_DO_MOUNT, "Monter si absent de /etc/mtab (inutilis)"}, {T_FLOPPY_PATH, "Chemin de disquette:"}, {T_MOUNT_CMD, "Commande de montage: "}, {T_SW_SHELL, "Shell"}, {T_SW_QSOS, "QSOs"}, {T_SW_LOG, "Log"}, {T_SW_TALK, "Talk"}, {T_SW_SKED, "Sked"}, {T_SW_UNFI, "Part."}, {T_SW_DXC, "DXC"}, {T_SW_STAT, "Stat"}, {T_SW_MAP, "Carte"}, {T_SW_SCOPE, "Scope"}, {T_SW_QRV, "QRV"}, {T_SW_HF, "HF"}, {T_SW_PLAYER, "Player"}, {T_SW_CHART, "Chart"}, {T_SHELL, "Shell"}, {T_QSOS, "QSOs"}, {T_LOG, "Log"}, {T_TALK, "Talk"}, {T_SKEDS, "Skeds"}, {T_UNFI, "QSOs non finis"}, {T_DXC, "DX Cluster (N/A)"}, {T_STAT, "Statistiques"}, {T_SWAP, "Swap (N/A)"}, {T_MAP, "Carte graphique"}, {T_SCOPE, "Scope"}, {T_QRV, "QRV"}, {T_HF, "HF"}, {T_CMD, "Commande"}, {T_RESPAWN, "Relance [sec]:"}, {T_UNFI_QSO, "QSO non fini"}, {T_N_REMARK, "\nRemarque:"}, {T_NO_CQ, "Aucun CQ dfini"}, {T_TEXT, "Texte:"}, {T_SPEED, "Vitesse [WPM]:"}, {T_REPEAT, "Rpte"}, {T_DELAY, "Dlai [0.1s]:"}, {T_ALLOW_UNDEF, "Autorise si qq lments indfinis"}, {T_CW_DSCS, "CW%d (%s) %c %s"}, {T_FILENAME, "Nom de fichier:"}, {T_SSB_DSCS, "SSB%d (%s) %c %s"}, {T_UDPPORT, "Port UDP:"}, {T_DEVICE, "Priphrique manip:"}, {T_INIT_SPEED, "Vitesse initiale [WPM]:"}, {T_INIT_WEIGHT, "Weight (30-70):"}, {T_WPMFROM, "WPM Range from"}, {T_WPMTO, "to"}, {T_USE_SPK, "Utilise le haut-parleur"}, {T_LEADIN, " PTT lead in [ms]"}, {T_AUTGIVE, "Run mode aut. give after [chars]"}, {T_IGN_IFACE_S, "Ignore l'interface %-5s"}, {T_IGN_ADDR_S, "Ignore l'adresse %s"}, {T_ADD_IFACE_SSD, "Ajoute l'interface=%-5s BCAST=%s:%d"}, {T_FORCED_ADDR, "Force l'adresse %s"}, {T_TIMESKEW, "ATTENTION! Variation de temps %d dtecte par rapport %s:%d !\n"}, {T_DISCONNECTING_SD, "Dconnection de %s:%d"}, {T_ACCEPTED_SD, "Accept %s:%d"}, {T_CONNECTING_SD, "Connection %s:%d"}, {T_CONNECTED_SD, "Connect %s:%d"}, {T_DISCONNECTED_SD, "Dconnect de %s:%d"}, {T_LOADED_CFG_SSSS, "Chargement config pour %s %s (%s,%s)"}, {T_LOADED_CW, "Donne C_W charge"}, {T_PEER_NOT_FOUND, "ERREUR! Correspondant %s non trouv"}, {T_CANT_CREATE_HOME_S, "Ne peut crer le rpertoire %s"}, {T_CANT_LOAD_CFG, "Ne peut charger la configuration!\nProgramme ne peut fonctionner correctement!"}, {T_ERR_RC, "Encontr quelques erreurs dans le fichier de config!\nCe fichier a peut-tre t enregistr avec un version plus rcente de Tucnak!\nN'enregistrez pas votre confuguration sinon vous perdriez vos donnes!"}, {T_SES_QTR, " QTR "}, {T_SES_QRA, " CALL "}, {T_SES_RST, " RST-S-No RST-R-No "}, {T_SES_QTH, " QTH "}, {T_SES_QRB, " Pts/QRB QTF "}, {T_SES_FLG, " Flg "}, {T_SES_OPE, " Oper. "}, {T_SES_EXC, " Exch "}, {T_SES_REM, " Remarque "}, {T_SES_WELCOME, "Bienvenue dans Tucnak! "}, {T_SES_PRESS_F10, "Presser F10 pour le menu."}, {T_SES_HAVE_FUN, "Amusez vous bien."}, {T_SES_URL, "http://tucnak.nagano.cz "}, {T_SES_ODX, "ODX: "}, {T_SES_ODX_DATA, "%s %s %d km (%s)"}, {T_SES_STAT_TIT, "QSOs QSO-p OptX WWLs DXCCs Total-p AVG"}, {T_SES_AVG, " MOY: %5.2f"}, {T_SES_WPM, " WPM: %d %02d%%"}, {T_SF_WWLS, " WWLs: %d"}, {T_SF_WWLS_UNDER, "-------------"}, {T_SF_EXCS, " EXCs: %d"}, {T_SF_EXCS_UNDER, "-------------"}, {T_SF_MISS_EXCS, " Missing EXCs: %d"}, {T_SF_MISS_EXCS_UNDER, "---------------------"}, {T_SF_PREFS, " PREFs: %d"}, {T_SF_PREFS_UNDER, "-------------"}, {T_SF_DXCS, " DXCCs: %d"}, {T_SF_DXCS_UNDER, "-------------"}, {T_SF_WKD_WWLS, " WKD WWLs: %d"}, {T_SF_WKD_WWLS_UNDER, "-----------------"}, {T_SF_QSO_WWL4, " QSOS en WWL4s: %d"}, {T_SF_QSO_WWL4_UNDER, "----------------------"}, {T_SF_STATS_BAND, " Statistiques pour la bande %s"}, {T_SF_STATS_BAND_UNDER, "==============================="}, {T_SF_CONTEST, "Contest: %s"}, {T_SF_ALLBQSOS, "All bands QSOs: %d"}, {T_SF_ALLBQSOP, "All bands QSOp: %d"}, {T_SF_ALLBPTS, "All bands pts: %d"}, {T_SF_QSOS, "QSOs: %d"}, {T_SF_QSOP, "QSO points: %d"}, {T_SF_PTS, "Points: %d"}, {T_SF_AVG_PTS, "Moyenne pts/QSO: %5.2f"}, {T_SF_AVG_QSOP, "Moyenne qsop/QSO: %5.2f"}, {T_BAND_RO, "Bande en lecture-seule"}, {T_THIS_BAND, "Cette bande"}, {T_OTHER_BANDS, "Autres bandes"}, {T_CW_DB, "C_W base de donnes"}, {T_PROC_EXITED, "*** Processus s'est termin\n"}, {T_WE_CALL2, "on appelle"}, {T_WE_LISTEN, "on coute"}, {T_QSL, "QSL promise"}, {T_RECORD, "Enregistre trafic"}, {T_MAXMIN, " Dure max d'enregistrement"}, {T_TEMPLATE, "Patron du nom de fichier"}, {T_PCM8, "8 bit PCM"}, {T_PCM16, "16 bit PCM"}, {T_ULAW, "mu-law"}, {T_ALAW, "A-law"}, {T_IMAADPCM, "IMA ADPCM"}, {T_MSADPCM, "MS ADPCM"}, {T_GSM610, "GSM 6.10"}, {T_CHANNELS, "Canaux"}, {T_SAMPLERATE, "Frquence d'chantillonage"}, {T_FILLOP, "Renseigner oprateurs"}, {T_HK_FILLOP, "N"}, {T_RECAQRB, "Recalc QRB,QTF"}, {T_HK_RECAQRB, "R"}, {T_NETWORK, "Rseau & trace"}, {T_HK_NETWORK, "E"}, {T_IF_IGNORE, "Ignore interfaces:"}, {T_IP_IGNORE, " Ignore rseaux:"}, {T_IP_ANNOUNCE, "Annonce au rseau:"}, {T_TRACE_BCAST, "Trace broadcasts "}, {T_TRACE_SOCK, "Trace sockets"}, {T_TRACE_RECV, "Trace donnes reues"}, {T_TRACE_SEND, "Trace donnes envoyes"}, {T_TRACE_QSOS, "Trace QSOs"}, {T_TRACE_SDEV, "Trace rotars"}, {T_NOT_MOUNTED_S, "Non mont %s"}, {T_RECSRC_NONE, "Ne pas dfinir"}, {T_RECSRC_MIC, "Microphone"}, {T_RECSRC_LINE, "Entre ligne"}, {T_NEW_CALL, "Nouveau!"}, {T_HK_NEW_CALL, "n"}, {T_QRV_ON_S, "QRV sur %s"}, {T_SKED_QRG, "QRG pour skeds"}, {T_HK_SKED_QRG, "Q"}, {T_N_SKED_QRG, "\nQRG pour skeds:"}, {T_GRAB_BAND, "Rcupre contrle bande"}, {T_HK_GRAB_BAND, "P"}, {T_FORCE_RUN, "Force mode RUN"}, {T_HK_FORCE_RUN, "U"}, {T_EXPORT_STATS, "Exporter Statistiques"}, {T_HK_EXPORT_STATS, "T"}, {T_SF_TOP_DX, " TOP %d DX QSOs:"}, {T_SF_TOP_DX_UNDER, "-------------------"}, {T_ROTAR, "Rotator"}, {T_HK_ROTAR, "R"}, {T_AZIMUTH, " Azimuth"}, {T_ELEVATION, "Elvation"}, {T_CH_SPY, "Espionne"}, {T_HK_CH_SPY, "S"}, {T_CH_ENDSPY, "Fin espionnage"}, {T_HK_CH_ENDSPY, "F"}, {T_EXPORT_TITLPAGE, "Exporter page de titre"}, {T_HK_EXPORT_TITLPAGE, "P"}, {T_BREAK_RECORD, "Arrte l'enregistrement"}, {T_HK_BREAK_RECORD, "A"}, {T_GLOBAL_OPERATOR, "Changer pour toutes bandes"}, {T_GLOBAL_OPERATOR2, "Global"}, {T_MAXFRAG, "Nombre max de fragments (>=2)"}, {T_PLAY_LAST, "Joue dernier chantillon"}, {T_HK_PLAY_LAST, "J"}, {T_MISCOPTS, "Options diverses"}, {T_HK_MISCOPTS, "P"}, {T_LOGLINES, "Lignes log: "}, {T_SKEDSHIFT, "Dcalage sked (minutes): "}, {T_STARTBAND, "Band de dpart: "}, {T_GFX_X_CH, "Rsolution cran (cars):"}, {T_GFX_Y_CH, "x"}, {T_GFX_X_PX, "Rsolution cran (pixels):"}, {T_GFX_Y_PX, "x"}, {T_CALL_INFO, "Info indicatif"}, {T_HK_CALL_INFO, "I"}, {T_SF_QSO_HOUR, "QSOs/heure: %d"}, {T_SF_QSOP_HOUR, "Points/heure: %d"}, {T_SF_QSOP_50QSO, "Points/50 QSOs: %d"}, {T_SF_HOURS, " Heures"}, {T_SF_HOURS_UNDER, "---------"}, {T_SF_HOURS_TITLE, "Heures Points QSOs MOY pts/QSO"}, {T_QSO_CHECK, "QSO vrification"}, {T_HK_QSO_CHECK, "Q"}, {T_AUDIO, "Audio"}, {T_HK_AUDIO, "D"}, {T_ALSA, "Alsa"}, {T_OSS, "OSS"}, {T_SSBD, "SSBD"}, {T_DISKFREE, "Espace disque minimum [MiB]"}, {T_FORMAT, "Format enregistrement"}, {T_PCM_PLAY, "Priphrique playback Alsa"}, {T_PCM_REC, "Priphrique capture Alsa"}, {T_PERIOD, "Priode [ms]"}, {T_BUFFER, "Temps buffer [ms]"}, {T_ALSA_MIXER, "Priphrique mixeur Alsa"}, {T_CAPTURE, "Source capture"}, {T_DSP, "OSS DSP"}, {T_MIXER, "OSS mixeur"}, {T_RECSRC, "Source enregistrement"}, {T_SSBD_HOSTNAME, "Hte SSBD:"}, {T_HOSTNAME, "Hte:"}, {T_SLASHKEY, "Slash key"}, {T_FIXQRG, "Fix QRG"}, {T_HK_FIXQRG, "X"}, {T_ENTER_QRG, "Enter accurate QRG [Hz]"}, {T_BAD_QRG, "Bad frequency"}, {T_CALLSIGN3, "Callsign"}, {T_CALLSIGN_KST, "KST station's callsign:"}, {T_CANT_INIT_WINKEY_S, "Can't init winkey on %s"}, {T_WINKEYOPTS, "Winkey options"}, {T_WK_WK2, "Winkey2 fast initialization"}, {T_WK_USEPOT, "Use speed pot"}, {T_WK_USEBUT, "Use buttons"}, {T_WK_KM_B, "Curtis-B"}, {T_WK_KM_A, "Curtis-A"}, {T_WK_KM_U, "Ultimatic"}, {T_WK_KM_G, "Bug"}, {T_WK_SWAP, "Paddle swap (left handled)"}, {T_RIGOPTS, "Rig options"}, {T_HK_RIGOPTS, "G"}, {T_RIG_DEVICE, "Device:"}, {T_RIG_MODEL, "Model"}, {T_RIG_SPEED, "Baudrate: "}, {T_RIG_CIV, "CIV address"}, {T_RIG_FREQSHIFT, "Freq. shift SSB->CW"}, {T_RIG_CHOOSE, "Choose"}, {T_ROTAROPTS, "Rotar options"}, {T_HK_ROTAROPTS, "I"}, {T_DSSAVER, "Disable screensaver"}, {T_DESC, "Description"}, {T_ROT_NONE, "None"}, {T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys"}, {T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI"}, {T_ROT_HAMLIB, "Hamlib (N/A)"}, {T_ROT_REMOTE, "Remote (N/A)"}, {T_ROT_VID, "VID:"}, {T_ROT_PID, "PID:"}, {T_ROT_SERIAL, "Serial #"}, {T_ROT_ADD, "Add new rotator"}, {T_HK_ROT_ADD, "W"}, {T_ROT_REMOVE, "Remove rotator"}, {T_HK_ROT_REMOVE, "R"}, {T_TIMEOUT, "Timeout:"}, {T_BEAMWIDTH, "Beam width"}, {T_SADDR, "Communication address:"}, {T_MODEL, "Model:"}, {T_ROT_REM_ROTSTR, "Rotator letter for remote"}, {T_QSOGLOB, "Global QSO NR"}, {T_PREFGLOB, "Global prefix"}, {T_NOT_RECORDING_S, "Not recording - %s"}, {T_SKEDCOUNT, "Sked count in popup: "}, {T_FONTHEIGHT, "Font height (16-32): "}, {T_RIG_POLL_MS, "Rig poll interval [ms]: "}, {T_RIG_QRG_R2T, "Set band from radio"}, {T_RIG_QRG_T2R, "Change band on radio"}, {T_RIG_MODE_T2R, "Change mode on radio"}, {T_RUN_MODE, "Run mode"}, {T_HK_RUN_MODE, "M"}, {T_SP_MODE, "S&P mode"}, {T_HK_SP_MODE, "M"}, {T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save"}, {T_RIG_DEBUG, "Debug rig"}, {T_HF_RATE, "Rate: %3d/10 %3d/60"}, {T_HF_BAND, "Band QSO Point Mult"}, {T_HF_SUM, "Sum:"}, {T_HF_LAST, "Last Q-%s P-%s"}, {T_EVEN, "TX even"}, {T_HK_EVEN, "v"}, {T_ODD, "TX odd"}, {T_HK_ODD, "d"}, {T_1ST, "TX 1st"}, {T_HK_1ST, "1"}, {T_2ND, "TX 2nd"}, {T_HK_2ND, "2"}, {T_HF_SCORE, "Score:"}, {T_EXPMODE, "Expedition mode"}, {T_TTTYPE, "Only digits mean"}, {0, NULL} }; struct translation translation_castellano [] = { {0, NULL}, {T__CHAR_SET, "us-ascii"}, {T__LANGUAGE, "Castellano"}, {T_ABOUT, "Acerca"}, {T_BAD_NUMBER, "Numero incorrecto"}, {T_BAD_STRING, "Texto incorrecto"}, {T_BASIC_HELP, "Presione F10 para menu.\nDiviertase!"}, {T_BLOCK_CURSOR, "Block cursor"}, {T_CANCEL, "Cancelar"}, {T_CHARACTER_SET, "Juego de caracteres"}, {T_COLOR, "Color"}, {T_COPYING, "Copy"}, {T_DIFFERENCE, "diferencia"}, {T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Quieres salir de Tucnak?"}, {T_EMPTY_STRING_NOT_ALLOWED, "No se permiten textos vacios"}, {T_ERROR, "Error"}, {T_WARNING, "Cuidado"}, {T_EXIT, "Salir"}, {T_EXIT_TUCNAK, "Salir de Tucnak"}, {T_FILE, "Archivo"}, {T_FULL_SCREEN, "Pantalla Completa"}, {T_HELP, "Ayuda"}, {T_HK_ABOUT, "A"}, {T_HK_BEOS_TERMINAL, "B"}, {T_HK_CHARACTER_SET, "H"}, {T_HK_COPYING, "C"}, {T_HK_EXIT, "X"}, {T_HK_FILE, "F"}, {T_HK_FULL_SCREEN, "F"}, {T_HK_HELP, "H"}, {T_HK_LANGUAGE, "L"}, {T_HK_MEMORY_INFO, "M"}, {T_HK_OS_SHELL, "O"}, {T_HK_SCREEN, "S"}, {T_HK_SETUP, "S"}, {T_HK_TERMINAL_OPTIONS, "T"}, {T_HK_TWTERM, "T"}, {T_HK_WINDOW, "W"}, {T_HK_XTERM, "X"}, {T_KOI8R_FRAMES, "KOI8-R frames"}, {T_LANGUAGE, "Lenguaje"}, {T_LAST, "ultimo"}, {T_LINUX_OR_OS2_FRAMES, "Entorno OS/2 o Linux"}, {T_MEMORY_INFO, "Info de memoria"}, {T_NO_FRAMES, "No frames"}, {T_NO, "No"}, {T_NUMBER_EXPECTED, "Se esperaba un numero en el campo"}, {T_NUMBER_OUT_OF_RANGE, "Numero fuera de rango"}, {T_OK, "OK"}, {T_OS_SHELL, "OS shell"}, {T_RESTRICT_FRAMES_IN_CP850_852, "Restrict frames in cp850/852"}, {T_UTF_8_IO, "UTF-8 Entrada/Salida"}, {T_SCREEN, "Pantalla"}, {T_SETUP, "Setup"}, {T_TERMINAL_OPTIONS, "Opciones de terminal"}, {T_TUCNAK__TACLOG_LIKE, "Tucnak " VERSION_STRING "\n\nTACLOG-like V/U/SHF contest log"}, {T_TWTERM, "Twterm"}, {T_USE_11M, "Use ^[[11m"}, {T_VT_100_FRAMES, "VT 100 frames"}, {T_WELCOME_TO_TUCNAK, "Bienvenido a Tucnak!\nPor favor, ingrese su licencia y los proximos campos de datos"}, {T_WELCOME, "Bienvenido"}, {T_XTERM, "Xterm"}, {T_YES, "Si"}, {T_CANT_APPEND_S, "No puedo abrir el archivo %s"}, {T_CANT_WRITE, "No puedo escribir el archivo"}, {T_CANT_WRITE_S, "No puedo escribir al archivo %s"}, {T_CANT_READ, "No puedo leer desde el archivo"}, {T_CANT_READ_S, "No puedo leer desde el archivo %s"}, {T_SAVED_S, "Salvado %s"}, {T__CW_, " CW "}, {T_CWW_KEYS, " PgUp +, PgDn - velocidad cw "}, {T_CANT_OPEN_S, "No puedo abrir %s"}, {T_CANT_LOCK, "No se puede lockear"}, {T_CANT_LOCK_S, "No puedo lockear %s"}, {T_LOADING_CTEST_S, "*** Cargando concurso %s"}, {T_NO_FILES, "No hay archivos en el directorio"}, {T_BAND_EXIST_SS, "CUIDADO! Banda %s (%s) ya existe"}, {T_BAND_NOT_OPEN, "Banda no activa en este concurso"}, {T_NO_BANDS, "No bandas a cargar"}, {T_CANT_SET_GR_S, "No puedo setear modo grafico-%s"}, {T_GCALL, "Licencia: %s"}, {T_GWWL, "Locator: %s"}, {T_GQRB, "QRB: %d km"}, {T_GQTF, "QTF: %d"}, {T_GSEN, "Enviado: %s %s"}, {T_GRCV, "Recibido: %s %s"}, {T_GTIM, "Hora: %s"}, {T_GOPE, "Op: %s"}, {T_GREM, "Notas: %s"}, {T_GWKD, "Wkd: %d"}, {T_GINC, "ingreso: %d"}, {T_GLON, "Lon:%7.2f %-6s"}, {T_GLAT, "Lat:%7.2f %-6s"}, {T_GLOC, "Loc: %s"}, {T__PLESE_WAIT_, " Por favor, espere"}, {T__RO_BAND, " BANDA DE SOLO LECTURA"}, {T_COPYING_VER, "The ultimate contestlog - necessary as known\n\nVersion " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nThis program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version."}, {T_CTEST_ACTIVE, "El concurso ya esta activo"}, {T_NO_CTESTS, "No concursos"}, {T_NO_CCLOSE, "No hay concurso para cerrar"}, {T_REALLY, "Realmente?"}, {T_CLOSE_CTEST, "Quieres cerrar realmente este concurso?"}, {T_GUI_LD, "GUI: %ld "}, {T_SBRK, "sbrk: %ld"}, {T_CWI, "C_W: %d cw items, %d wc items, ultimo %d\n"}, {T_EXC, "Exc: %s %d exc items, %d cxe items, ultimo %d\n"}, {T_VEXC, "Verificados EXC: %d items\n"}, {T_DWI, "D_W: %d prefijos, %d DXCCs, %d WWLs\n"}, {T_NAMES, "Nombre: %d nombres\n"}, {T_MASTER, "Master: %d calls\n"}, {T_MEMS, "Memoria:"}, {T_NMY, " Yo: %s:%d\n"}, {T_NGLOBAL, "Global: %s:%d\n"}, {T_NMASTER, "Master: %s %s %s:%d %s %s\n"}, {T_NSLAVES, "\nSlaves:\n"}, {T_NINFO, "Network info"}, {T_NO_BANDS_QRV, "No hay bandas QRV"}, {T_NO_BANDS_CONF, "No hay bandas configuradas"}, {T_NOT_AVAILABLE, "No disponible"}, {T_ADD_SUBWIN, "Add subwin"}, {T_HK_ADD_SUBWIN, "A"}, {T_CLOSE_SUBWIN, "Close subwin"}, {T_HK_CLOSE_SUBWIN, "C"}, {T_HK_NINFO, "N"}, {T_NEW, "Nuevo"}, {T_HK_NEW, "N"}, {T_NEW_WIZZ, "Nuevo desde el ayudante"}, {T_HK_NEW_WIZZ, "W"}, {T_NEW_NET, "Nuevo desde la red"}, {T_HK_NEW_NET, "T"}, {T_OPEN, "Abrir"}, {T_HK_OPEN, "O"}, {T_SAVE, "Salvar"}, {T_HK_SAVE, "S"}, {T_EXPORT_EDI, "Exportar como EDI"}, {T_HK_EXPORT_EDI, "E"}, {T_EXPORT_REPORT, "Exportar como report"}, {T_HK_EXPORT_REPORT, "R"}, {T_EXPORT_ADIF, "Exportar como ADIF"}, {T_HK_EXPORT_ADIF, "A"}, {T_EXPORT_CBR, "Export as ADIF"}, {T_HK_EXPORT_CBR, "B"}, {T_EXPORT_HTML, "Exportar como HTML"}, {T_HK_EXPORT_HTML, "H"}, {T_EXPORT_WIKI, "Export as MediaWiki"}, {T_HK_EXPORT_WIKI, "W"}, {T_IMPORT_EDI, "Importar EDI"}, {T_HK_IMPORT_EDI, "I"}, {T_IMPORT_ADIF, "Importar ADIF"}, {T_HK_IMPORT_ADIF, "M"}, {T_IMPORT_SWAP, "Importar swap"}, {T_HK_IMPORT_SWAP, "S"}, {T_IMPORT_LIST, "Import list"}, {T_HK_IMPORT_LIST, "L"}, {T_CONTEST_OP, "Opciones del concurso"}, {T_HK_CONTEST_OP, "O"}, {T_CLOSE_CONTEST, "Cerrar concurso"}, {T_HK_CLOSE_CONTEST, "C"}, {T_ADD_ERROR, "Add ERROR"}, {T_HK_ADD_ERROR, "E"}, {T_CHOP, "Cambiar concurso"}, {T_HK_CHOP, "O"}, {T_CW_CTEST, "Actualizar C_W desde el concurso"}, {T_HK_CW_CTEST, "C"}, {T_CW_BAND, "Actualizar C_W desde bandas"}, {T_HK_CW_BAND, "B"}, {T_EXC_CTEST, "Actualizar EXC DB desde el concurso"}, {T_HK_EXC_CTEST, "A"}, {T_EXC_BAND, "Actualizar EXC DB desde bandas"}, {T_HK_EXC_BAND, "T"}, {T_IMPORT_EBW, "Importar base de datos DL8EBW"}, {T_HK_IMPORT_EBW, "W"}, {T_NO_CTEST, "No concurso"}, {T_NO_PEERS, "No encontre peers"}, {T_NO_MASTER, "Master no esta disponible!"}, {T_CTEST_DEF, "Defaults de concursos"}, {T_HK_CTEST_DEF, "O"}, {T_BAND_DEF, "Defaults de bandas"}, {T_HK_BAND_DEF, "B"}, {T_HK_RESPOP, "R"}, {T_CW_DAEMON, "CW keying"}, {T_HK_CW_DAEMON, "E"}, {T_CW_CQ, "CW CQ"}, {T_HK_CW_CQ, "C"}, {T_SSB_CQ, "SSB CQ"}, {T_HK_SSB_CQ, "S"}, {T_AUTOSAVE, "Autosalvar"}, {T_HK_AUTOSAVE, "A"}, {T_LOAD_CFG_NET, "Cargar cfg desde net"}, {T_HK_LOAD_CFG_NET, "N"}, {T_LOAD_CW_NET, "Cargar C_W desde net"}, {T_HK_LOAD_CW_NET, "W"}, {T_SAVE_CFG, "Salvar configuracion"}, {T_HK_SAVE_CFG, "F"}, {T_CONTEST, "Concurso"}, {T_HK_CONTEST, "C"}, {T_EDIT, "Editar"}, {T_HK_EDIT, "E"}, {T_BANDS, "Bandas"}, {T_HK_BANDS, "B"}, {T_SUBWINS, "Subwins"}, {T_HK_SUBWINS, "W"}, {T_BAND_SETTINGS_SC, "Seteo de bandas para banda %c %s"}, {T_QRV_ON_THIS_BAND, "QRV sobre esta banda"}, {T_QRV_IN_THIS_CTEST, "QRV en este concurso"}, {T_READ_ONLY, "Solo lectura"}, {T_MULTI, "Multi"}, {T_SINGLE, "Single"}, {T_CHECK, "Check"}, {T_TXEQUIP, " TX Equip:"}, {T_POWER, " Power:"}, {T_RXEQUIP, " RX Equip:"}, {T_ANTENNA, " Antena:"}, {T_AGLASL, " AGL;ASL:"}, {T_OPS, "Operadores:"}, {T_SPACES1, " "}, {T_REMARKS, " Notas:"}, {T_OK_SECTION_SINGLE, "Categoria single es OK"}, {T_OK_SECTION_MULTI, "Multi categoria es OK"}, {T_QRG_MIN, "Extremos de banda desde"}, {T_QRG_MAX, "a [kHz]"}, {T_ADIFBAND, "ADIF nombre de banda"}, {T_SKEDQRG, "QRG para skeds (texto libre)"}, {T_BAND_LO, "Transverter's LO QRG [Hz]"}, {T_BANDSW, "Band switch value"}, {T_RESPOP, "Operador responsable"}, {T_NAME, " Nombre:"}, {T_CALLSIGN, " Licencia:"}, {T_ADDRESS, " Direccion:"}, {T_POSTCODE, " Cod.Postal:"}, {T_CITY, " Ciudad:"}, {T_COUNTRY, " Pais:"}, {T_PHONE, " Telefono:"}, {T_BBSEMAIL, " BBS/Email:"}, {T_QP0, " -- nada -- "}, {T_QP1, " 1 QSOp*QSOp_m (Std. IARU)"}, {T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)"}, {T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)"}, {T_QP4, " 4 WWL_ring*QSOp_m (OK activity)"}, {T_QP5, " 5 St_miles*QSOp_m"}, {T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)"}, {T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)"}, {T_QP8, " 8 WWL_dist*QSOp_m (Baltic)"}, {T_QP9, " 9 WWL_dist*QSOp_m (Baltic & Nordic fieldday)"}, {T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)"}, {T_QP11, "11 QSOp_m *3 if F (F 50MHz)"}, {T_QP12, "12 RSGB DC (district codes)"}, {T_QP13, "13 Continent (CQ WW DX Contest)"}, {T_QP14, "14 Continent+band (CQ WW WPX Contest)"}, {T_QP15, "15 VHF Band (ARRL VHF, CQ VHF)"}, {T_QP16, "16 QSOp *4 if F (Champ. de France)"}, {T_TP0, " -- nada -- "}, {T_TP1, " 1 Multiplicative (Std. IARU)"}, {T_TP2, " 2 Additive (RSGB Backpacker, VRZA, Sicily)"}, {T_TP3, " 3 Mult. all bands (CQ WW DX Contest)"}, {T_TP4, " 4 All bands togeth. (ARRL VHF)"}, {T_NEW_CTEST, "Nuevo concurso"}, {T_CANT_TRUNC, "No puedo truncar la descrip. del archivo"}, {T_NAME_OF_CTEST, "Nombre del concurso:"}, {T_CALL_OF_CTEST, "Licencia en el concurso:"}, {T_CLUB_ST, "Radio Club:"}, {T_YOURWWL, "Su Locator:"}, {T_YOUREXC, "SU EXC:"}, {T_DATE_OF_CTEST, "Fecha del concurso:"}, {T_QSOUSED, "QSO NR usado"}, {T_QSOPM, " QSOp multi:"}, {T_WWLUSED, "Locator used "}, {T_WWLB, "WWL bonus:"}, {T_WWLM, "WWL multi:"}, {T_EXCUSED, "EXC usado"}, {T_EXCB, " EXC bonus:"}, {T_EXCM, "EXC multi:"}, {T_EXCNAME, " EXC nombre: "}, {T_PREFM, "PREF multi:"}, {T_DXCB, " DXC bonus:"}, {T_DXCM, "DXC multi:"}, {T_RSTUSED, "RST Usado "}, {T_DEFRS, "Default RS:"}, {T_DEFRST, "Def RST:"}, {T_ALSORSTR, "Tamb. para RST-R"}, {T_QP_CALC, " QSOp calc:"}, {T_TO_CALC, "Total calc:"}, {T_EDI_PROP, "EDI prop"}, {T_RESPOP2, "Op. responsable"}, {T_EDIT_QSO_CD, "Editar QSO %c: %03d"}, {T_CALLSIGN2, "Licencia:"}, {T_CLUB, " Club:"}, {T_PADR1, " Direc.1:"}, {T_PADR2, " Direc.2:"}, {T_RS, " RS:"}, {T_RST, " RST:"}, {T_OPERATOR, "Operador:"}, {T_DATE, " Fecha:"}, {T_MODE, " Modo:"}, {T_RSTS, " RSTs:"}, {T_RSTR, " RSTr:"}, {T_QSONRS, "QSO env.:"}, {T_QSONRR, "QSO rec.:"}, {T_OPTEXCH, " OptExch:"}, {T_WWL, " Locator:"}, {T_REMARK, " Notas:"}, {T_QRV2, " QRV on:"}, {T_WKD, " WKD:"}, {T_SEND_SKED, "Sked enviado"}, {T_SELECT, "Seleccionar"}, {T_QRG, " QRG:"}, {T_WE_CALL, " Llamamos"}, {T_BAND, " Banda:"}, {T_TIME, " Hora:"}, {T_DUPE_QSO, "QSO duplicado!"}, {T_CLEAR_THIS_QSO, "Limpiar este QSO"}, {T_EDIT_OLD_QSO, "Editar QSO viejo"}, {T_MARK_OLD_QSO, "Marcar QSO viejo como ERROR"}, {T_STORE_AS_DUPE, "Almacenar como DUP"}, {T_BAD_CALL, "Esto no parece ser una licencia!"}, {T_N_CALLSIGN, "\nLicencia:"}, {T_AUTOSAVE_OPTS, "Opciones de Autosalvado"}, {T_SAVE_AQ, "Salvar al disco luego del QSO:"}, {T_SAVE_AM, "Salvar al disco luego de minutos:"}, {T_FSYNC, "Fsync"}, {T_SAVE_AQF, "Salvar al disquette luego del QSO: "}, {T_SAVE_AMF, "Salvar al disquette luego de minutos:"}, {T_DO_MOUNT, "Mount no esta en /etc/mtab (no usado)"}, {T_FLOPPY_PATH, "Path al disquette:"}, {T_MOUNT_CMD, "Comando de montar: "}, {T_SW_SHELL, "Shell"}, {T_SW_QSOS, "QSOs"}, {T_SW_LOG, "Log"}, {T_SW_TALK, "Talk"}, {T_SW_SKED, "Sked"}, {T_SW_UNFI, "Unfi"}, {T_SW_DXC, "DXC"}, {T_SW_STAT, "Stat"}, {T_SW_MAP, "Map"}, {T_SW_SCOPE, "Scope"}, {T_SW_QRV, "QRV"}, {T_SW_HF, "HF"}, {T_SW_PLAYER, "Player"}, {T_SW_CHART, "Chart"}, {T_SHELL, "Shell"}, {T_QSOS, "QSOs"}, {T_LOG, "Log"}, {T_TALK, "Talk"}, {T_SKEDS, "Skeds"}, {T_UNFI, "QSOs no finalizados"}, {T_DXC, "DX Cluster (N/A)"}, {T_STAT, "Stadisticas"}, {T_SWAP, "Swap (N/A)"}, {T_MAP, "Mapa grafico"}, {T_SCOPE, "Scope"}, {T_QRV, "QRV"}, {T_HF, "HF"}, {T_CMD, "Comando"}, {T_RESPAWN, "Respawn [sec]:"}, {T_UNFI_QSO, "QSO no finalizado"}, {T_N_REMARK, "\nNota:"}, {T_NO_CQ, "No hay CQ definido"}, {T_TEXT, "Texto:"}, {T_SPEED, "Velocidad [WPM]:"}, {T_REPEAT, "Repetir"}, {T_DELAY, "Retardo [0.1s]:"}, {T_ALLOW_UNDEF, "Pemitir aunque algun item no este definido"}, {T_CW_DSCS, "CW%d (%s) %c %s"}, {T_FILENAME, "Archivo:"}, {T_SSB_DSCS, "SSB%d (%s) %c %s"}, {T_UDPPORT, "UDP port:"}, {T_DEVICE, "Dispositivo de Keying:"}, {T_INIT_SPEED, "Velocidad inicial [WPM]:"}, {T_INIT_WEIGHT, "Peso:"}, {T_WPMFROM, "WPM Rango desde"}, {T_WPMTO, "a"}, {T_USE_SPK, "Use parlante"}, {T_LEADIN, " PTT retardo in [ms]"}, {T_AUTGIVE, "Run mode aut. give after [chars]"}, {T_IGN_IFACE_S, "Ignorando interface %-5s"}, {T_IGN_ADDR_S, "Ignorando address %s"}, {T_ADD_IFACE_SSD, "Adicionando interface=%-5s BCAST=%s:%d"}, {T_FORCED_ADDR, "Forzando la direccion %s"}, {T_TIMESKEW, "CUIDADO! Desfasaje de tiempo %d detectado con %s:%d !\n"}, {T_DISCONNECTING_SD, "Desconectando de %s:%d"}, {T_ACCEPTED_SD, "Aceptando %s:%d"}, {T_CONNECTING_SD, "Conectando a %s:%d"}, {T_CONNECTED_SD, "Conectado a %s:%d"}, {T_DISCONNECTED_SD, "Desconectado de %s:%d"}, {T_LOADED_CFG_SSSS, "Config cargado para %s %s (%s,%s)"}, {T_LOADED_CW, "Cargado datos C_W data"}, {T_PEER_NOT_FOUND, "ERROR! Peer %s no encontrado"}, {T_CANT_CREATE_HOME_S, "No puedo crear el directorio %s"}, {T_CANT_LOAD_CFG, "No puedo cargar la configuracion!\nEl programa no trabajara correctamente!"}, {T_ERR_RC, "Se encontraron algunos errores mientras se examinaba el archivo de configuracion!\nEste archivo fue probablemente guardado con una nueva version de Tucnak!\nNo salve su configuracion a no ser que quiera perder datos!"}, {T_SES_QTR, " QTR "}, {T_SES_QRA, " CALL "}, {T_SES_RST, " RST-S-No RST-R-No "}, {T_SES_QTH, " QTH "}, {T_SES_QRB, " Pts/QRB QTF "}, {T_SES_FLG, " Flg "}, {T_SES_OPE, " Oper. "}, {T_SES_EXC, " Exch "}, {T_SES_REM, " Notas "}, {T_SES_WELCOME, "Bienvenido a Tucnak! "}, {T_SES_PRESS_F10, "Presione F10 para menu."}, {T_SES_HAVE_FUN, "Tenga suerte."}, {T_SES_URL, "http://tucnak.nagano.cz "}, {T_SES_ODX, "ODX: "}, {T_SES_ODX_DATA, "%s %s %d km (%s)"}, {T_SES_STAT_TIT, "QSOs QSO-p OptX WWLs DXCCs Total-p PROM"}, {T_SES_AVG, " AVG: %5.2f"}, {T_SES_WPM, " WPM: %d"}, {T_SF_WWLS, " WWLs: %d"}, {T_SF_WWLS_UNDER, "-------------"}, {T_SF_EXCS, " EXCs: %d"}, {T_SF_EXCS_UNDER, "-------------"}, {T_SF_MISS_EXCS, " Missing EXCs: %d"}, {T_SF_MISS_EXCS_UNDER, "---------------------"}, {T_SF_PREFS, " PREFs: %d"}, {T_SF_PREFS_UNDER, "-------------"}, {T_SF_DXCS, " DXCCs: %d"}, {T_SF_DXCS_UNDER, "-------------"}, {T_SF_WKD_WWLS, " WKD WWLs: %d"}, {T_SF_WKD_WWLS_UNDER, "-----------------"}, {T_SF_QSO_WWL4, " QSOS en WWL4s: %d"}, {T_SF_QSO_WWL4_UNDER, "----------------------"}, {T_SF_STATS_BAND, " Estadisticas para banda %s"}, {T_SF_STATS_BAND_UNDER, "==============================="}, {T_SF_CONTEST, "Concurso: %s"}, {T_SF_ALLBQSOS, "QSO's en todas las bandas: %d"}, {T_SF_ALLBQSOP, "QSOp en todas las bandas: %d"}, {T_SF_ALLBPTS, "Puntos en todas las bandas: %d"}, {T_SF_QSOS, "QSOs: %d"}, {T_SF_QSOP, "QSO puntos: %d"}, {T_SF_PTS, "Puntos: %d"}, {T_SF_AVG_PTS, "Promedio pts/QSO: %5.2f"}, {T_SF_AVG_QSOP, "Promedio qsop/QSO: %5.2f"}, {T_BAND_RO, "Banda es solo lectura"}, {T_THIS_BAND, "Esta banda"}, {T_OTHER_BANDS, "Otras bandas"}, {T_CW_DB, "C_W base de datos"}, {T_PROC_EXITED, "*** Saliendo del proceso\n"}, {T_WE_CALL2, "Llamando"}, {T_WE_LISTEN, "Escuchando"}, {T_QSL, "QSL prometida"}, {T_RECORD, "Grabando trafico"}, {T_MAXMIN, " Max. duracion de grabacion"}, {T_TEMPLATE, "Mascar para el nombre de archivo grabado"}, {T_PCM8, "8 bit PCM"}, {T_PCM16, "16 bit PCM"}, {T_ULAW, "mu-law"}, {T_ALAW, "A-law"}, {T_IMAADPCM, "IMA ADPCM"}, {T_MSADPCM, "MS ADPCM"}, {T_GSM610, "GSM 6.10"}, {T_CHANNELS, "Canales"}, {T_SAMPLERATE, "Sample rate"}, {T_FILLOP, "Fill operators"}, {T_HK_FILLOP, "L"}, {T_RECAQRB, "Recalcule QRB,QTF"}, {T_HK_RECAQRB, "R"}, {T_NETWORK, "Network & trace"}, {T_HK_NETWORK, "K"}, {T_IF_IGNORE, "Ignore interfaces:"}, {T_IP_IGNORE, " Ignore networks:"}, {T_IP_ANNOUNCE, " Anuncie a nets:"}, {T_TRACE_BCAST, "Trace broadcasts "}, {T_TRACE_SOCK, "Trace sockets"}, {T_TRACE_RECV, "Trace datos recibidos"}, {T_TRACE_SEND, "Trace datos enviados"}, {T_TRACE_QSOS, "Trace QSOs"}, {T_TRACE_SDEV, "Trace rotars"}, {T_NOT_MOUNTED_S, "No montado %s"}, {T_RECSRC_NONE, "No seteado"}, {T_RECSRC_MIC, "Microfono"}, {T_RECSRC_LINE, "Line in"}, {T_NEW_CALL, "Nuevo!"}, {T_HK_NEW_CALL, "n"}, {T_QRV_ON_S, "QRV en %s"}, {T_SKED_QRG, "QRG para skeds"}, {T_HK_SKED_QRG, "F"}, {T_N_SKED_QRG, "\nQRG para skeds:"}, {T_GRAB_BAND, "Grab control de banda"}, {T_HK_GRAB_BAND, "G"}, {T_FORCE_RUN, "Forzar mode RUN"}, {T_HK_FORCE_RUN, "U"}, {T_EXPORT_STATS, "Exportar estadisticas"}, {T_HK_EXPORT_STATS, "T"}, {T_SF_TOP_DX, " TOP %d DX QSOs:"}, {T_SF_TOP_DX_UNDER, "-------------------"}, {T_ROTAR, "Rotor"}, {T_HK_ROTAR, "R"}, {T_AZIMUTH, " Azimuth"}, {T_ELEVATION, "Elevacion"}, {T_CH_SPY, "Espiar"}, {T_HK_CH_SPY, "S"}, {T_CH_ENDSPY, "Finalizar espiar"}, {T_HK_CH_ENDSPY, "P"}, {T_EXPORT_TITLPAGE, "Exportar titulo de la pagina"}, {T_HK_EXPORT_TITLPAGE, "P"}, {T_BREAK_RECORD, "Cortar registro"}, {T_HK_BREAK_RECORD, "B"}, {T_GLOBAL_OPERATOR, "Cambiar para todas las bandas"}, {T_GLOBAL_OPERATOR2, "Global"}, {T_MAXFRAG, "Max. num de fragmentos (>=2)"}, {T_PLAY_LAST, "Escuchar el ultimo ejemplo"}, {T_HK_PLAY_LAST, "P"}, {T_MISCOPTS, "Opciones miscelaneas"}, {T_HK_MISCOPTS, "P"}, {T_LOGLINES, "Log lineas: "}, {T_SKEDSHIFT, "Sked shift (minutes): "}, {T_STARTBAND, "Comenzando en banda: "}, {T_GFX_X_CH, "Resolucion de pantalla (chars):"}, {T_GFX_Y_CH, "x"}, {T_GFX_X_PX, "Resolucion de pantalla (pixels):"}, {T_GFX_Y_PX, "x"}, {T_CALL_INFO, "Info de la licencia"}, {T_HK_CALL_INFO, "I"}, {T_SF_QSO_HOUR, "QSOs/hora: %d"}, {T_SF_QSOP_HOUR, "Puntos/hora: %d"}, {T_SF_QSOP_50QSO, "Puntos/50 QSOs: %d"}, {T_SF_HOURS, " Horas"}, {T_SF_HOURS_UNDER, "---------"}, {T_SF_HOURS_TITLE, "Horas Puntos QSOs PROMpts/QSO"}, {T_QSO_CHECK, "QSO check"}, {T_HK_QSO_CHECK, "K"}, {T_AUDIO, "Audio"}, {T_HK_AUDIO, "D"}, {T_ALSA, "Alsa"}, {T_OSS, "OSS"}, {T_SSBD, "SSBD"}, {T_DISKFREE, "Espacio minimo libre en disco [MiB]"}, {T_FORMAT, "Formato de la grabacion"}, {T_PCM_PLAY, "Dispositivo Alsa de audio"}, {T_PCM_REC, "Dispositivo Alsa de captura"}, {T_PERIOD, "Periodo de tiempo [ms]"}, {T_BUFFER, "Buffer de tiempo [ms]"}, {T_ALSA_MIXER, "Dispositivo Alsa mezclador"}, {T_CAPTURE, "Fuente de captura"}, {T_DSP, "OSS DSP"}, {T_MIXER, "OSS mixer"}, {T_RECSRC, "Fuente de registro"}, {T_SSBD_HOSTNAME, "SSBD hostname:"}, {T_HOSTNAME, "Hostname:"}, {T_SLASHKEY, "Slash key"}, {T_FIXQRG, "Fix QRG"}, {T_HK_FIXQRG, "X"}, {T_ENTER_QRG, "Ingrese QRG exacta [Hz]"}, {T_BAD_QRG, "Frecuencia incorrecta"}, {T_CALLSIGN3, "Licencia"}, {T_CALLSIGN_KST, "KST licencia de la estacion:"}, {T_CANT_INIT_WINKEY_S, "No puedo iniciar winkey en %s"}, {T_WINKEYOPTS, "Opciones Winkey"}, {T_WK_WK2, "Winkey2 inicializacion rapida"}, {T_WK_USEPOT, "Use speed pot"}, {T_WK_USEBUT, "Usar botones"}, {T_WK_KM_B, "Curtis-B"}, {T_WK_KM_A, "Curtis-A"}, {T_WK_KM_U, "Ultimatic"}, {T_WK_KM_G, "Bug"}, {T_WK_SWAP, "Paddle swap (left handled)"}, {T_RIGOPTS, "Opciones del equipo"}, {T_HK_RIGOPTS, "G"}, {T_RIG_DEVICE, "Dispositivo:"}, {T_RIG_MODEL, "Modelo"}, {T_RIG_SPEED, "Baudrate: "}, {T_RIG_CIV, "CIV direccion"}, {T_RIG_FREQSHIFT, "Corrimiento de freq.SSB->CW"}, {T_RIG_CHOOSE, "Elija"}, {T_ROTAROPTS, "Opciones del rotor"}, {T_HK_ROTAROPTS, "I"}, {T_DSSAVER, "Desactivar salva pantalla"}, {T_DESC, "Descripcion"}, {T_ROT_NONE, "Nada"}, {T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys"}, {T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI"}, {T_ROT_HAMLIB, "Hamlib"}, {T_ROT_REMOTE, "Remoto"}, {T_ROT_VID, "VID:"}, {T_ROT_PID, "PID:"}, {T_ROT_SERIAL, "Serial #"}, {T_ROT_ADD, "Adicionar un rotor nuevo"}, {T_HK_ROT_ADD, "W"}, {T_ROT_REMOVE, "Eliminar rotor"}, {T_HK_ROT_REMOVE, "R"}, {T_TIMEOUT, "Timeout:"}, {T_BEAMWIDTH, "Ancho del beam:"}, {T_SADDR, "Comunicacion address:"}, {T_MODEL, "Modelo:"}, {T_ROT_REM_ROTSTR, "Letra del rotor para remoto"}, {T_QSOGLOB, "Global QSO NR"}, {T_PREFGLOB, "Global PREF"}, {T_NOT_RECORDING_S, "No grabando - %s"}, {T_SKEDCOUNT, "Sked count in popup: "}, {T_FONTHEIGHT, "Font height (16-32): "}, {T_RIG_POLL_MS, "Rig poll interval [ms]: "}, {T_RIG_QRG_R2T, "Set band from radio"}, {T_RIG_QRG_T2R, "Change band on radio"}, {T_RIG_MODE_T2R, "Change mode on radio"}, {T_RUN_MODE, "Run mode"}, {T_HK_RUN_MODE, "M"}, {T_SP_MODE, "S&P mode"}, {T_HK_SP_MODE, "M"}, {T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save"}, {T_RIG_DEBUG, "Debug rig"}, {T_HF_RATE, "Rate: %3d/10 %3d/60"}, {T_HF_BAND, "Band QSO Point Mult"}, {T_HF_SUM, "Sum:"}, {T_HF_LAST, "Last Q-%s P-%s"}, {T_EVEN, "TX even"}, {T_HK_EVEN, "v"}, {T_ODD, "TX odd"}, {T_HK_ODD, "d"}, {T_1ST, "TX 1st"}, {T_HK_1ST, "1"}, {T_2ND, "TX 2nd"}, {T_HK_2ND, "2"}, {T_HF_SCORE, "Score:"}, {T_EXPMODE, "Expedition mode"}, {T_TTTYPE, "Only digits mean"}, {0, NULL} }; struct translation_desc translations [] = { {translation_english}, {translation_czech}, {translation_slovak}, {translation_german}, {translation_portuguese}, {translation_french}, {translation_castellano}, {NULL} }; tucnak2-2.48/src/txts.inc0000644000175000017500000201227411567373656012256 00000000000000/* Automatically generated by txt2inc.pl */ const char txt_cty[62178] = "Sov Mil Order of Malta: 15: 28: EU: 41.90: -12.40: -1.0: 1A:\n" " 1A;\n" "Spratly Islands: 26: 50: AS: 8.80: -111.90: -8.0: 1S:\n" " 1S,9M0,BV9S;\n" "Monaco: 14: 27: EU: 43.70: -7.40: -1.0: 3A:\n" " 3A;\n" "Agalega & St. Brandon: 39: 53: AF: -10.40: -56.60: -4.0: 3B6:\n" " 3B6,3B7;\n" "Mauritius: 39: 53: AF: -20.30: -57.50: -4.0: 3B8:\n" " 3B8;\n" "Rodriguez Island: 39: 53: AF: -19.70: -63.40: -4.0: 3B9:\n" " 3B9;\n" "Equatorial Guinea: 36: 47: AF: 1.80: -9.80: -1.0: 3C:\n" " 3C;\n" "Annobon: 36: 52: AF: -1.50: -5.60: -1.0: 3C0:\n" " 3C0;\n" "Fiji: 32: 56: OC: -18.10: -178.40: -12.0: 3D2:\n" " 3D2;\n" "Conway Reef: 32: 56: OC: -21.40: -174.40: -12.0: 3D2/c:\n" " =3D20CR;\n" "Rotuma: 32: 56: OC: -12.30: -177.70: -12.0: 3D2/r:\n" " =3D2AG/P;\n" "Swaziland: 38: 57: AF: -26.30: -31.10: -2.0: 3DA:\n" " 3DA;\n" "Tunisia: 33: 37: AF: 36.80: -10.20: -1.0: 3V:\n" " 3V,TS;\n" "Vietnam: 26: 49: AS: 10.80: -106.70: -7.0: 3W:\n" " 3W,XV;\n" "Guinea: 35: 46: AF: 9.50: 13.70: 0.0: 3X:\n" " 3X;\n" "Bouvet: 38: 67: AF: -54.50: -3.40: -1.0: 3Y/b:\n" " 3Y;\n" "Peter I Island: 12: 72: SA: -68.80: 90.60: 4.0: 3Y/p:\n" " =3Y0X;\n" "Azerbaijan: 21: 29: AS: 40.40: -49.90: -4.0: 4J:\n" " 4J,4K;\n" "Georgia: 21: 29: AS: 41.70: -44.80: -4.0: 4L:\n" " 4L;\n" "Montenegro: 15: 28: EU: 42.50: -19.30: -1.0: 4O:\n" " 4O;\n" "Sri Lanka: 22: 41: AS: 7.00: -79.90: -5.5: 4S:\n" " 4P,4Q,4R,4S;\n" "ITU HQ Geneva: 14: 28: EU: 46.20: -6.20: -1.0: 4U1I:\n" " =4U1ITU,=4U1WRC;\n" "United Nations HQ: 05: 08: NA: 40.80: 74.00: 5.0: 4U1U:\n" " =4U1UN;\n" "Vienna Intl Ctr: 15: 28: EU: 48.20: -16.30: -1.0: *4U1V:\n" " =4U1VIC;\n" "Timor-Leste: 28: 54: OC: -8.60: -125.50: -9.0: 4W:\n" " 4W;\n" "Israel: 20: 39: AS: 31.80: -35.20: -2.0: 4X:\n" " 4X,4Z;\n" "Libya: 34: 38: AF: 32.50: -12.50: -2.0: 5A:\n" " 5A;\n" "Cyprus: 20: 39: AS: 35.20: -33.40: -2.0: 5B:\n" " 5B,C4,H2,P3;\n" "Tanzania: 37: 53: AF: -7.00: -39.50: -3.0: 5H:\n" " 5H,5I;\n" "Nigeria: 35: 46: AF: 6.50: -3.40: -1.0: 5N:\n" " 5N,5O;\n" "Madagascar: 39: 53: AF: -18.90: -47.50: -3.0: 5R:\n" " 5R,5S,6X;\n" "Mauritania: 35: 46: AF: 18.10: 16.00: 0.0: 5T:\n" " 5T;\n" "Niger: 35: 46: AF: 13.50: -2.00: -1.0: 5U:\n" " 5U;\n" "Togo: 35: 46: AF: 6.20: -1.40: 0.0: 5V:\n" " 5V;\n" "Samoa: 32: 62: OC: -13.50: 171.80: 11.0: 5W:\n" " 5W;\n" "Uganda: 37: 48: AF: 0.30: -32.50: -3.0: 5X:\n" " 5X;\n" "Kenya: 37: 48: AF: -1.30: -37.50: -3.0: 5Z:\n" " 5Y,5Z;\n" "Senegal: 35: 46: AF: 14.70: 17.50: 0.0: 6W:\n" " 6V,6W;\n" "Jamaica: 08: 11: NA: 18.00: 76.80: 5.0: 6Y:\n" " 6Y;\n" "Yemen: 21: 39: AS: 12.80: -45.00: -3.0: 7O:\n" " 7O;\n" "Lesotho: 38: 57: AF: -29.30: -27.50: -2.0: 7P:\n" " 7P;\n" "Malawi: 37: 53: AF: -14.90: -34.40: -2.0: 7Q:\n" " 7Q;\n" "Algeria: 33: 37: AF: 36.70: -3.00: -1.0: 7X:\n" " 7R,7T,7U,7V,7W,7X,7Y;\n" "Barbados: 08: 11: NA: 13.10: 59.60: 4.0: 8P:\n" " 8P;\n" "Maldives: 22: 41: AS: 4.40: -73.40: -5.0: 8Q:\n" " 8Q;\n" "Guyana: 09: 12: SA: 6.80: 58.20: 4.0: 8R:\n" " 8R;\n" "Croatia: 15: 28: EU: 45.50: -15.60: -1.0: 9A:\n" " 9A;\n" "Ghana: 35: 46: AF: 5.50: 0.20: 0.0: 9G:\n" " 9G;\n" "Malta: 15: 28: EU: 36.00: -14.40: -1.0: 9H:\n" " 9H,=9H1VC/KHS;\n" "Zambia: 36: 53: AF: -15.40: -28.30: -2.0: 9J:\n" " 9I,9J;\n" "Kuwait: 21: 39: AS: 29.50: -47.80: -3.0: 9K:\n" " 9K;\n" "Sierra Leone: 35: 46: AF: 8.50: 13.20: 0.0: 9L:\n" " 9L;\n" "West Malaysia: 28: 54: AS: 3.20: -101.60: -8.0: 9M2:\n" " 9M1,9M2,9M4,9W2,9W4;\n" "East Malaysia: 28: 54: OC: 5.80: -118.10: -8.0: 9M6:\n" " 9M6,9M8,9W6,9W8,=9M4STA;\n" "Nepal: 22: 42: AS: 27.70: -85.30: -5.75: 9N:\n" " 9N;\n" "Rep. of Congo: 36: 52: AF: -4.30: -15.30: -1.0: 9Q:\n" " 9O,9P,9Q,9R,9S,9T;\n" "Burundi: 36: 52: AF: -3.30: -29.30: -2.0: 9U:\n" " 9U;\n" "Singapore: 28: 54: AS: 1.30: -103.80: -8.0: 9V:\n" " 9V,S6;\n" "Rwanda: 36: 52: AF: -2.00: -30.10: -2.0: 9X:\n" " 9X;\n" "Trinidad & Tobago: 09: 11: SA: 10.50: 61.30: 4.0: 9Y:\n" " 9Y,9Z;\n" "Botswana: 38: 57: AF: -22.00: -24.00: -2.0: A2:\n" " 8O,A2;\n" "Tonga: 32: 62: OC: -21.10: 175.20: -13.0: A3:\n" " A3;\n" "Oman: 21: 39: AS: 23.60: -58.60: -4.0: A4:\n" " A4;\n" "Bhutan: 22: 41: AS: 27.30: -89.40: -6.0: A5:\n" " A5;\n" "United Arab Emirates: 21: 39: AS: 24.50: -54.20: -4.0: A6:\n" " A6;\n" "Qatar: 21: 39: AS: 25.30: -51.50: -3.0: A7:\n" " A7;\n" "Bahrain: 21: 39: AS: 26.20: -50.60: -3.0: A9:\n" " A9;\n" "Pakistan: 21: 41: AS: 30.00: -70.00: -5.0: AP:\n" " 6P,6Q,6R,6S,AP,AQ,AR,AS;\n" "Scarborough Reef: 27: 50: AS: 15.10: -117.50: -8.0: BS7:\n" " BS7;\n" "Taiwan: 24: 44: AS: 23.80: -121.00: -8.0: BV:\n" " BM,BN,BO,BP,BQ,BU,BV,BW,BX;\n" "Pratas Island: 24: 44: AS: 20.40: -116.40: -8.0: BV9P:\n" " BM9P,BN9P,BO9P,BP9P,BQ9P,BU9P,BV9P,BW9P,BX9P;\n" "China: 24: 44: AS: 40.00: -116.40: -8.0: BY:\n" " 3H,3I,3J,3K,3L,3M,3N,3O,3P,3Q,3R,3S,3T,3U,B1,B2,B3,B3G(23)[33],B3H(23)[33],\n" " B3I(23)[33],B3J(23)[33],B3K(23)[33],B3L(23)[33],B4,B5,B6,B7,B8,B9,B9M(24)[33],\n" " B9N(24)[33],B9O(24)[33],B9P(24)[33],B9Q(24)[33],B9R(24)[33],B9S(24)[33],BA,\n" " BA3G(23)[33],BA3H(23)[33],BA3I(23)[33],BA3J(23)[33],BA3K(23)[33],\n" " BA3L(23)[33],BA9M(24)[33],BA9N(24)[33],BA9O(24)[33],BA9P(24)[33],BA9Q(24)[33],\n" " BA9R(24)[33],BA9S(24)[33],BD,BD3G(23)[33],BD3H(23)[33],BD3I(23)[33],\n" " BD3J(23)[33],BD3K(23)[33],BD3L(23)[33],BD9M(24)[33],BD9N(24)[33],\n" " BD9O(24)[33],BD9P(24)[33],BD9Q(24)[33],BD9R(24)[33],BD9S(24)[33],BG,\n" " BG3G(23)[33],BG3H(23)[33],BG3I(23)[33],BG3J(23)[33],BG3K(23)[33],\n" " BG3L(23)[33],BG9M(24)[33],BG9N(24)[33],BG9O(24)[33],BG9P(24)[33],BG9Q(24)[33],\n" " BG9R(24)[33],BG9S(24)[33],BH,BH3G(23)[33],BH3H(23)[33],BH3I(23)[33],\n" " BH3J(23)[33],BH3K(23)[33],BH3L(23)[33],BH9M(24)[33],BH9N(24)[33],\n" " BH9O(24)[33],BH9P(24)[33],BH9Q(24)[33],BH9R(24)[33],BH9S(24)[33],BI,BL,\n" " BL3G(23)[33],BL3H(23)[33],BL3I(23)[33],BL3J(23)[33],BL3K(23)[33],\n" " BL3L(23)[33],BL9M(24)[33],BL9N(24)[33],BL9O(24)[33],BL9P(24)[33],BL9Q(24)[33],\n" " BL9R(24)[33],BL9S(24)[33],BT,BT3G(23)[33],BT3H(23)[33],BT3I(23)[33],\n" " BT3J(23)[33],BT3K(23)[33],BT3L(23)[33],BT9M(24)[33],BT9N(24)[33],\n" " BT9O(24)[33],BT9P(24)[33],BT9Q(24)[33],BT9R(24)[33],BT9S(24)[33],BY,\n" " BY3G(23)[33],BY3H(23)[33],BY3I(23)[33],BY3J(23)[33],BY3K(23)[33],\n" " BY3L(23)[33],BY9M(24)[33],BY9N(24)[33],BY9O(24)[33],BY9P(24)[33],BY9Q(24)[33],\n" " BY9R(24)[33],BY9S(24)[33],BZ,BZ3G(23)[33],BZ3H(23)[33],BZ3I(23)[33],\n" " BZ3J(23)[33],BZ3K(23)[33],BZ3L(23)[33],BZ9M(24)[33],BZ9N(24)[33],\n" " BZ9O(24)[33],BZ9P(24)[33],BZ9Q(24)[33],BZ9R(24)[33],BZ9S(24)[33],XS;\n" "Nauru: 31: 65: OC: -0.50: -166.90: -12.0: C2:\n" " C2;\n" "Andorra: 14: 27: EU: 42.50: -1.50: -1.0: C3:\n" " C3;\n" "Gambia: 35: 46: AF: 13.50: 16.70: 0.0: C5:\n" " C5;\n" "Bahamas: 08: 11: NA: 24.25: 76.00: 5.0: C6:\n" " C6;\n" "Mozambique: 37: 53: AF: -18.25: -35.00: -2.0: C9:\n" " C8,C9;\n" "Chile: 12: 14: SA: -30.00: 71.00: 4.0: CE:\n" " 3G,CA,CB,CC,CD,CE,XQ,XR;\n" "San Felix Island: 12: 14: SA: -26.30: 80.10: 4.0: CE0X:\n" " 3G0X,CA0X,CB0X,CC0X,CD0X,CE0X,XQ0X,XR0X;\n" "Easter Island: 12: 63: SA: -27.10: 109.40: 6.0: CE0Y:\n" " 3G0,CA0,CB0,CC0,CD0,CE0,XQ0,XR0;\n" "Juan Fernandez Islands: 12: 14: SA: -33.60: 78.80: 4.0: CE0Z:\n" " 3G0Z,CA0Z,CB0Z,CC0Z,CD0Z,CE0I,CE0Z,XQ0Z,XR0Z;\n" "Antarctica: 13: 74: SA: -65.00: 64.00: -4.0: CE9:\n" " ANT,AX0,FT0Y(30)[70],FT2Y(30)[70],FT4Y(30)[70],FT5Y(30)[70],FT8Y(30)[70],\n" " LU1Z[73],R1AN,RI1AN,VH0(39)[69],VI0(39)[69],VJ0(39)[69],VK0(39)[69],\n" " VL0(39)[69],VM0(39)[69],VN0(39)[69],VZ0(39)[69],ZL5(30)[71],ZM5(30)[71],\n" " ZS7(38)[67],=8J1RF(39)[67],=8J1RL(39)[67],=AT10BP(38),=DP0GVN(38)[67],\n" " =DP1POL(38)[67],=KC4/WB9YSD(12),=KC4AAA(39),=KC4AAC[73],=KC4USB(12)[72],\n" " =KC4USV(30)[71],=LU4ZS[73],=OP0LE(38)[67],=OR4TN(38)[67],=R1ANB(29)[69],\n" " =R1ANC(29)[70],=R1AND(38)[67],=R1ANH(32)[72],=R1ANL(30)[70],\n" " =R1ANY(38)[67],=SM/OH2FFP(38)[67],=VP8DJB[73],=VP8DKF(30)[71],=VP8DLJ[73],\n" " =VP8DMH[73],=VP8PJ[73],=VP8ROT[73],=VU3BPZ(38),=VU3BPZ/A(38);\n" "Cuba: 08: 11: NA: 21.50: 80.00: 5.0: CM:\n" " CL,CM,CO,T4;\n" "Morocco: 33: 37: AF: 32.00: 5.00: 0.0: CN:\n" " 5C,5D,5E,5F,5G,CN;\n" "Bolivia: 10: 12: SA: -17.00: 65.00: 4.0: CP:\n" " CP;\n" "Portugal: 14: 37: EU: 39.50: 8.00: 0.0: CT:\n" " CQ,CR,CS,CT;\n" "Madeira Islands: 33: 36: AF: 32.60: 16.90: 0.0: CT3:\n" " CQ2,CQ3,CQ9,CR3,CR9,CS3,CS9,CT3,CT9,XX;\n" "Azores: 14: 36: EU: 37.70: 25.70: 1.0: CU:\n" " CQ1,CQ8,CR1,CR2,CR8,CS4,CS8,CT8,CU;\n" "Uruguay: 13: 14: SA: -33.00: 56.00: 3.0: CX:\n" " CV,CW,CX;\n" "Sable Island: 05: 09: NA: 43.80: 60.00: 4.0: CY0:\n" " CY0;\n" "St. Paul Island: 05: 09: NA: 47.20: 60.10: 4.0: CY9:\n" " CY9;\n" "Angola: 36: 52: AF: -12.50: -18.50: -1.0: D2:\n" " D2,D3;\n" "Cape Verde: 35: 46: AF: 16.00: 24.00: 1.0: D4:\n" " D4;\n" "Comoros: 39: 53: AF: -11.80: -43.70: -3.0: D6:\n" " D6;\n" "Germany: 14: 28: EU: 51.00: -10.00: -1.0: DL:\n" " DA,DB,DC,DD,DE,DF,DG,DH,DI,DJ,DK,DL,DM,DN,DO,DP,DQ,DR;\n" "Philippines: 27: 50: OC: 13.00: -122.00: -8.0: DU:\n" " 4D,4E,4F,4G,4H,4I,DU,DV,DW,DX,DY,DZ;\n" "Eritrea: 37: 48: AF: 15.30: -38.90: -3.0: E3:\n" " E3;\n" "Palestine: 20: 39: AS: 31.40: -35.10: -2.0: E4:\n" " E4;\n" "North Cook Islands: 32: 62: OC: -10.40: 161.00: 10.0: E5/n:\n" " =E51WL,=E51WWB;\n" "South Cook Islands: 32: 62: OC: -21.20: 159.80: 10.0: E5/s:\n" " E5;\n" "Bosnia-Herzegovina: 15: 28: EU: 43.50: -18.30: -1.0: E7:\n" " E7;\n" "Spain: 14: 37: EU: 40.40: 3.70: -1.0: EA:\n" " AM,AN,AO,EA,EB,EC,ED,EE,EF,EG,EH;\n" "Balearic Islands: 14: 37: EU: 39.50: -2.60: -1.0: EA6:\n" " AM6,AN6,AO6,EA6,EB6,EC6,ED6,EE6,EF6,EG6,EH6;\n" "Canary Islands: 33: 36: AF: 28.40: 15.30: 0.0: EA8:\n" " AM8,AN8,AO8,EA8,EB8,EC8,ED8,EE8,EF8,EG8,EH8;\n" "Ceuta and Melilla: 33: 37: AF: 35.60: 3.00: -2.0: EA9:\n" " AM9,AN9,AO9,EA9,EB9,EC9,ED9,EE9,EF9,EG9,EH9;\n" "Ireland: 14: 27: EU: 53.30: 6.30: 0.0: EI:\n" " EI,EJ;\n" "Armenia: 21: 29: AS: 40.30: -44.50: -4.0: EK:\n" " EK;\n" "Liberia: 35: 46: AF: 6.50: 9.50: 0.0: EL:\n" " 5L,5M,6Z,A8,D5,EL;\n" "Iran: 21: 40: AS: 32.00: -53.00: -3.5: EP:\n" " 9B,9C,9D,EP,EQ;\n" "Moldova: 16: 29: EU: 47.00: -28.80: -2.0: ER:\n" " ER;\n" "Estonia: 15: 29: EU: 59.40: -24.80: -2.0: ES:\n" " ES;\n" "Ethiopia: 37: 48: AF: 9.00: -38.70: -3.0: ET:\n" " 9E,9F,ET;\n" "Belarus: 16: 29: EU: 53.90: -27.60: -2.0: EU:\n" " EU,EV,EW;\n" "Kyrgyzstan: 17: 31: AS: 42.90: -74.60: -6.0: EX:\n" " EX;\n" "Tajikistan: 17: 30: AS: 39.70: -66.80: -5.0: EY:\n" " EY;\n" "Turkmenistan: 17: 30: AS: 38.00: -58.40: -5.0: EZ:\n" " EZ;\n" "France: 14: 27: EU: 46.00: -2.00: -1.0: F:\n" " F,HW,HX,HY,TH,TM,TP,TQ,TV,TW;\n" "Guadeloupe: 08: 11: NA: 16.00: 61.70: 4.0: FG:\n" " FG,=TO1T,=TO2ANT,=TO2FG,=TO2HI,=TO2T,=TO4D,=TO4T,=TO5C,=TO5G,=TO5S,=TO6T,\n" " =TO7T,=TO8S,=TO9T;\n" "Mayotte: 39: 53: AF: -13.00: -45.30: -3.0: FH:\n" " FH,=TO7RJ;\n" "St. Barthelemy: 08: 11: NA: 17.90: 62.90: 4.0: FJ:\n" " FJ;\n" "New Caledonia: 32: 56: OC: -21.50: -165.50: -11.0: FK:\n" " FK,TX8,=TX1B;\n" "Chesterfield Islands: 30: 56: OC: -19.90: -158.30: -11.0: FK/c:\n" " =FK8C/AA7JV,=TX3A;\n" "Martinique: 08: 11: NA: 14.60: 61.00: 4.0: FM:\n" " FM,=TO0O,=TO1A,=TO1BT,=TO1C,=TO3M,=TO3T,=TO3W,=TO4A,=TO5A,=TO5J,=TO5T,\n" " =TO5X,=TO6M,=TO7A,=TO7X,=TO8B,=TO8Z,=TO9A;\n" "French Polynesia: 32: 63: OC: -17.60: 149.50: 10.0: FO:\n" " FO,=TX4T,=VERSION;\n" "Austral Islands: 32: 63: OC: -22.50: 152.00: 10.0: FO/a:\n" " =TX3D,=TX5SPA;\n" "Clipperton Island: 07: 10: NA: 10.30: 109.20: 8.0: FO/c:\n" " =TX5C;\n" "Marquesas Islands: 31: 63: OC: -9.00: 139.50: 9.5: FO/m:\n" " =TX5SPM;\n" "St. Pierre & Miquelon: 05: 09: NA: 46.70: 56.00: 3.0: FP:\n" " FP;\n" "Reunion: 39: 53: AF: -21.10: -55.60: -4.0: FR:\n" " FR;\n" "Glorioso: 39: 53: AF: -11.50: -47.30: -4.0: FR/g:\n" " FT5G;\n" "Juan de Nova & Europa: 39: 53: AF: -19.60: -41.60: -3.0: FR/j:\n" " FT5E,FT5J;\n" "Tromelin: 39: 53: AF: -15.90: -54.40: -4.0: FR/t:\n" " FT5T;\n" "French St. Martin: 08: 11: NA: 18.10: 63.10: 4.0: FS:\n" " FS,=TO5SM;\n" "Crozet: 39: 68: AF: -46.00: -52.00: -5.0: FT5W:\n" " FT0W,FT2W,FT4W,FT5W,FT8W;\n" "Kerguelen: 39: 68: AF: -49.30: -69.20: -5.0: FT5X:\n" " FT0X,FT2X,FT4X,FT5X,FT8X;\n" "Amsterdam & St. Paul: 39: 68: AF: -37.70: -77.60: -5.0: FT5Z:\n" " FT0Z,FT2Z,FT4Z,FT5Z,FT8Z;\n" "Wallis & Futuna Islands: 32: 62: OC: -13.30: 176.30: -12.0: FW:\n" " FW;\n" "French Guiana: 09: 12: SA: 4.90: 52.30: 3.0: FY:\n" " FY;\n" "England: 14: 27: EU: 51.50: 0.10: 0.0: G:\n" " 2E,G,M;\n" "Isle of Man: 14: 27: EU: 54.30: 4.50: 0.0: GD:\n" " 2D,2T,GD,GT,MD,MT,=GB0AOA,=GB0MST,=GB0WCY,=GB100MER,=GB100TT,=GB125SR,\n" " =GB2IOM,=GB2MAD,=GB2WB,=GB3GD,=GB4IOM,=GB4MNH,=GB4WXM/P,=GB50UN,=GB5LB,\n" " =GB5MOB,=GB5TD,=GB6SPC;\n" "Northern Ireland: 14: 27: EU: 54.60: 5.90: 0.0: GI:\n" " 2I,2N,GI,GN,MI,MN,=GB0BTC,=GB0BVC,=GB0CI,=GB0CSC,=GB0DDF,=GB0GPF,=GB0MAR,\n" " =GB0MFD,=GB0PSM,=GB0REL,=GB0SBG,=GB0SHC,=GB0SIC,=GB0SPD,=GB0TCH,=GB0WOA,\n" " =GB1AFP,=GB1BPM,=GB1HF,=GB1SPD,=GB1SRI,=GB2AD,=GB2IL,=GB2LL,=GB2MAC,\n" " =GB2MGY,=GB2MRI,=GB2NIC,=GB2NTU,=GB2SPD,=GB2STI,=GB2TCA,=GB3MNI,=GB4CSC,\n" " =GB4ES,=GB4SPD,=GB50AAD,=GB5BIG,=GB5BL,=GB5SPD,=GB90SOM;\n" "Jersey: 14: 27: EU: 49.30: 2.20: 0.0: GJ:\n" " 2H,2J,GH,GJ,MH,MJ,=GB0CLR,=GB0GUD,=GB0JSA,=GB0SHL,=GB2BYL,=GB2JSA,=GB4BHF,\n" " =GB50JSA,=GB8LMI;\n" "Scotland: 14: 27: EU: 55.80: 4.30: 0.0: GM:\n" " 2A,2M,2S,GA,GM,GS,MA,MM,MS,=GB0AC,=GB0ATC,=GB0BNC,=GB0BWT,=GB0DGL,=GB0FFS,\n" " =GB0FLA,=GB0GDS,=GB0GEI,=GB0GGR,=GB0GHD,=GB0GKR,=GB0GNE,=GB0HHW,=GB0KGS,\n" " =GB0KKS,=GB0KTC,=GB0LCS,=GB0LTM,=GB0MFG,=GB0MLM,=GB0MOG,=GB0MOL,=GB0NHL,\n" " =GB0OS,=GB0OYT,=GB0PPE,=GB0QWM,=GB0RBS,=GB0SHP,=GB0SI,=GB0SK,=GB0SKY,\n" " =GB0SS,=GB0SSF,=GB0TI,=GB100MAS,=GB10SP,=GB125BRC,=GB150NRL,=GB1EPC,\n" " =GB1FRS,=GB1FS,=GB1FVT,=GB1GEO,=GB1OL,=GB250RB,=GB2AGG,=GB2AST,=GB2AYR,\n" " =GB2CHG,=GB2DHS,=GB2DTM,=GB2FBM,=GB2FIO,=GB2FSM,=GB2GEO,=GB2GNL,=GB2GTM,\n" " =GB2HI,=GB2HLB,=GB2HRH,=GB2HST,=GB2HSW,=GB2IAS,=GB2IGB,=GB2IGS,=GB2IMM,\n" " =GB2IOC,=GB2IOG,=GB2IOT,=GB2JUNO,=GB2KDS,=GB2KHL,=GB2LAY,=GB2LBN,=GB2LCL,\n" " =GB2LCP,=GB2LGB,=GB2LHI,=GB2LMG,=GB2LNM,=GB2LO,=GB2LP,=GB2LS,=GB2LSS,\n" " =GB2LT,=GB2LTH,=GB2LTN,=GB2MAS,=GB2MDG,=GB2MOD,=GB2MOF,=GB2MSL,=GB2MUL,\n" " =GB2NAG,=GB2NBC,=GB2NCL,=GB2NEF,=GB2NL,=GB2NTS,=GB2OWM,=GB2OYC,=GB2PBF,\n" " =GB2PS,=GB2RB,=GB2RRL,=GB2SKG,=GB2SLH,=GB2SSF,=GB2STB,=GB2TDS,=GB2TI,\n" " =GB2WBB,=GB3GM,=GB400CA,=GB4AAS,=GB4CGW,=GB4DAS,=GB4GM,=GB4LNM,=GB4NFE,\n" " =GB4PMS,=GB4RAF,=GB4SLH,=GB4TSR,=GB4ZBS,=GB50ATC,=GB50JS,=GB50SWL,=GB5AST,\n" " =GB5BBS,=GB5CO,=GB5FHC,=GB5JS,=GB5OL,=GB5RO,=GB5SI,=GB5TI,=GB60BBC,\n" " =GB60CRB,=GB60NTS,=GB6MI,=GB6SA,=GB6SM,=GB6TAA,=GB6WW,=GB700BSB,=GB75GD,\n" " =GB75SCP,=GB75STT,=GB8AYR,=GB8CA,=GB8CF,=GB8CI,=GB8CM,=GB8CN,=GB8CO,\n" " =GB8CSL,=GB8CY,=GB8FF,=GB8OO,=GB8RU,=GB8RUM,=GB93AM,=GG100GCC,=GG100GGR;\n" "Shetland and Fair Isle: 14: 27: EU: 60.40: 1.50: 0.0: *GM/s:\n" " GZ,MZ,=2M0BDR,=2M0BDT,=2M0ZET,=GB2ELH,=GM0AVR,=GM0CXQ,=GM0CYJ,=GM0DJI,\n" " =GM0EKM,=GM0ILB,=GM0ULK,=GM1KKI,=GM1ZNR,=GM3KLA,=GM3WHT,=GM3ZET,=GM3ZNM,\n" " =GM4GPP,=GM4GQM,=GM4IPK,=GM4LBE,=GM4LER,=GM4PXG,=GM4SLV,=GM4SSA,=GM4SWU,\n" " =GM4WXQ,=GM4ZHL,=GM6RQW,=GM7AFE,=GM7GWW,=GM7RKD,=GM8IHT,=GM8LNH,=GM8MMA,\n" " =GM8YEC,=MM0LSM,=MM0XAU,=MM0ZAL,=MM0ZCG,=MM1FJM,=MM3CPE,=MM3VQO,=MM3ZET,\n" " =MM5PSL,=MS0ZCG,=MS0ZET;\n" "Guernsey: 14: 27: EU: 49.50: 2.70: 0.0: GU:\n" " 2P,2U,GP,GU,MP,MU,=GB0GUC,=GB0JAG,=GB0ON,=GB0U,=GB2ECG,=GB2FG,=GB2GU,\n" " =GB50LIB;\n" "Wales: 14: 27: EU: 51.50: 3.20: 0.0: GW:\n" " 2C,2W,2X,2Y,GB0CCE,GC,GW,MC,MW,=GB0AD,=GB0CLC,=GB0CVA,=GB0GCR,=GB0GIW,\n" " =GB0GLV,=GB0GMD,=GB0HEL,=GB0HMT,=GB0ML,=GB0MPA,=GB0MWL,=GB0NEW,=GB0NG,\n" " =GB0PSG,=GB0RPO,=GB0RSC,=GB0SDD,=GB0SH,=GB0SOA,=GB0SPS,=GB0SRH,=GB0TD,\n" " =GB0TTT,=GB0VK,=GB0WRC,=GB0YG,=GB100BD,=GB100BP,=GB100FI,=GB100LP,=GB1CCC,\n" " =GB1HAS,=GB1LSG,=GB1SL,=GB1SSL,=GB1TDS,=GB2000SET,=GB200A,=GB200HNT,\n" " =GB2ADU,=GB2ANG,=GB2CAM,=GB2CI,=GB2CPC,=GB2EI,=GB2GGM,=GB2GLS,=GB2GOL,\n" " =GB2GSG,=GB2GSS,=GB2HDG,=GB2IMD,=GB2LNP,=GB2LSA,=GB2MHL,=GB2MIL,=GB2MLM,\n" " =GB2MOP,=GB2RFS,=GB2RSC,=GB2RTB,=GB2SAC,=GB2SDD,=GB2SIP,=GB2TD,=GB2TTA,\n" " =GB2VK,=GB2WDS,=GB2WFF,=GB2WHO,=GB2WSF,=GB4BPL,=GB4CI,=GB4DPS,=GB4HMD,\n" " =GB4HMM,=GB4LRG,=GB4LSG,=GB4MD,=GB4MDI,=GB4MUU,=GB4NDG,=GB4SA,=GB4SDD,\n" " =GB4SMM,=GB4SNF,=GB4TMS,=GB4XXX,=GB50ATG,=GB5BS/J,=GB5FI,=GB5GEO,=GB5ONG,\n" " =GB5SIP,=GB60BTF,=GB60VLY,=GB65BTF,=GB6AR,=GB6GW,=GB6OQA,=GB750CC,=GB8OQE;\n" "Solomon Islands: 28: 51: OC: -9.40: -160.00: -11.0: H4:\n" " H4;\n" "Temotu: 32: 51: OC: -10.70: -165.80: -11.0: H40:\n" " H40;\n" "Hungary: 15: 28: EU: 47.50: -19.10: -1.0: HA:\n" " HA,HG;\n" "Switzerland: 14: 28: EU: 47.00: -7.50: -1.0: HB:\n" " HB,HE;\n" "Liechtenstein: 14: 28: EU: 47.20: -9.60: -1.0: HB0:\n" " HB0,HE0;\n" "Ecuador: 10: 12: SA: -0.20: 78.00: 6.0: HC:\n" " HC,HD;\n" "Galapagos Islands: 10: 12: SA: -0.50: 90.50: 6.0: HC8:\n" " HC8,HD8;\n" "Haiti: 08: 11: NA: 18.50: 72.30: 5.0: HH:\n" " 4V,HH;\n" "Dominican Republic: 08: 11: NA: 18.50: 70.00: 4.0: HI:\n" " HI;\n" "Colombia: 09: 12: SA: 4.60: 74.10: 5.0: HK:\n" " 5J,5K,HJ,HK;\n" "San Andres/Providencia: 07: 11: NA: 12.50: 81.70: 5.0: HK0/a:\n" " 5J0,5K0,HJ0,HK0;\n" "Malpelo Island: 09: 12: SA: 4.00: 81.10: 5.0: HK0/m:\n" " =HK0TU;\n" "South Korea: 25: 44: AS: 37.50: -127.00: -9.0: HL:\n" " 6K,6L,6M,6N,D7,D8,D9,DS,DT,HL;\n" "North Korea: 25: 44: AS: 39.00: -126.00: -9.0: HM:\n" " HM,P5,P6,P7,P8,P9;\n" "Panama: 07: 11: NA: 9.00: 79.50: 5.0: HP:\n" " 3E,3F,H3,H8,H9,HO,HP;\n" "Honduras: 07: 11: NA: 14.10: 87.20: 6.0: HR:\n" " HQ,HR;\n" "Thailand: 26: 49: AS: 13.80: -100.50: -7.0: HS:\n" " E2,HS;\n" "Vatican City: 15: 28: EU: 41.90: -12.50: -1.0: HV:\n" " HV;\n" "Saudi Arabia: 21: 39: AS: 26.30: -50.00: -3.0: HZ:\n" " 7Z,8Z,HZ;\n" "Italy: 15: 28: EU: 41.90: -12.50: -1.0: I:\n" " I;\n" "African Italy: 33: 37: AF: 35.40: -12.50: -1.0: *IG9:\n" " IG9,IH9;\n" "Sardinia: 15: 28: EU: 39.20: -9.10: -1.0: IS:\n" " IM0,IS,IW0U,IW0V,IW0W,IW0X,IW0Y,IW0Z,=II0SB,=IQ0AG,=IQ0AH,=IQ0AI,=IQ0AK,\n" " =IQ0AL,=IQ0AM,=IQ0EH,=IQ0HO,=IQ0QP,=IQ0SS;\n" "Sicily: 15: 28: EU: 37.50: -14.00: -1.0: *IT9:\n" " IB9,ID9,IE9,IF9,II9,IJ9,IO9,IQ9,IR9,IT,IU9,IW9,IZ9;\n" "Djibouti: 37: 48: AF: 11.60: -43.20: -3.0: J2:\n" " J2;\n" "Grenada: 08: 11: NA: 12.00: 61.80: 4.0: J3:\n" " J3;\n" "Guinea-Bissau: 35: 46: AF: 11.90: 15.60: 0.0: J5:\n" " J5;\n" "St. Lucia: 08: 11: NA: 13.90: 61.00: 4.0: J6:\n" " J6;\n" "Dominica: 08: 11: NA: 15.40: 61.30: 4.0: J7:\n" " J7;\n" "St. Vincent: 08: 11: NA: 13.30: 61.30: 4.0: J8:\n" " J8;\n" "Japan: 25: 45: AS: 35.70: -139.80: -9.0: JA:\n" " 7J,7K,7L,7M,7N,8J,8K,8L,8M,8N,JA,JB,JC,JE,JF,JG,JH,JI,JJ,JK,JL,JM,JN,JO,\n" " JP,JQ,JR,JS;\n" "Minami Torishima: 27: 90: OC: 24.30: -154.00: -10.0: JD/m:\n" " =JD1BME,=JD1BMM,=JD1YBJ;\n" "Ogasawara: 27: 45: AS: 27.50: -141.00: -9.0: JD/o:\n" " JD1;\n" "Mongolia: 23: 32: AS: 47.90: -106.90: -8.0: JT:\n" " JT,JU,JV;\n" "Svalbard: 40: 18: EU: 78.80: -16.00: -1.0: JW:\n" " JW;\n" "Bear Island: 40: 18: EU: 74.50: -19.00: -1.0: *JW/b:\n" " =JW2FL,=JW5RIA,=JW7FD;\n" "Jan Mayen: 40: 18: EU: 71.00: 8.30: 1.0: JX:\n" " JX;\n" "Jordan: 20: 39: AS: 32.00: -35.90: -2.0: JY:\n" " JY;\n" "United States: 05: 08: NA: 43.00: 87.90: 5.0: K:\n" " AA,AB,AC,AD,AE,AF,AG,AI,AJ,AK,K,N,W,=4U1WB,=AA4NU(4),=AA4Q(3)[6],=AA4U(4),\n" " =AA6DY(4)[8],=AA7CP(4)[7],=AA7JV(5)[8],=AA9DY(5),=AB1HZ(4)[7],=AB4GG(4),\n" " =AB4IQ(4),=AC2K(3)[6],=AC4CA(4)[7],=AC4TT(4)[7],=AC8Y(5),=AD1C(4)[7],\n" " =AD4EB(4),=AD8J(5),=AG3R(4),=AG3V(4)[7],=AG4W(4),=AH6FC(3)[6],=AI1P(4)[7],\n" " =AI4DB(4),=AI4G(4),=AJ4F(4)[7],=AL4T(5)[8],=AL7QQ(4)[7],=K0COP(5)[8],\n" " =K0DQ(5)[8],=K0IP(3)[6],=K0JJ(3)[6],=K0LUZ(5)[8],=K0MZN(3)[6],=K0PJ(3)[6],\n" " =K0TV(5)[8],=K0ZR(5)[8],=K1GU(4),=K1KD(4)[7],=K1LT(4),=K1NG(4),=K2AAW(4),\n" " =K2BA(4)[7],=K2HT(4)[7],=K2RD(3)[6],=K2RP(3)[6],=K2UR(4),=K2VV(4)[7],\n" " =K3CQ(4),=K3FH(4),=K3GP(4),=K3IE(4),=K3TD(4)[7],=K3WT(4)[7],=K4AB(4),\n" " =K4AMC(4),=K4APG(4),=K4BP(4),=K4BX(4),=K4CX(4),=K4DZR(4),=K4EDI(4),\n" " =K4EJQ(4),=K4FT(4),=K4HAL(4),=K4IE(4),=K4IQJ(4),=K4IU(4)[7],=K4KO(4),\n" " =K4LTA(4),=K4NP(3)[6],=K4NVJ(4),=K4RO(4),=K4SAV(4),=K4SKY(4),=K4SX(4)[7],\n" " =K4TD(4),=K4UY(4),=K4WI(4),=K4WW(4),=K4XG(4),=K4XU(3)[6],=K4YMQ(4),\n" " =K4ZGB(4),=K5AUP(5)[8],=K5EK(5)[8],=K5KG(5)[8],=K5MA(5)[8],=K5ML(3)[6],\n" " =K5MO(5)[8],=K5RQ(5)[8],=K5RR(3)[6],=K5VIP(5)[8],=K5ZD(5)[8],=K6EID(5)[8],\n" " =K6FRC/B2(3)[6],=K6FRC/B3(3)[6],=K6FRC/B4(3)[6],=K6JRY(5)[8],=K6MJ(4)[7],\n" " =K6ND(5)[8],=K6PJ(4)[6],=K6XT(4)[7],=K7ABV(4)[6],=K7BG(4)[6],=K7CMZ(5)[8],\n" " =K7CS(5)[8],=K7IA(4)[7],=K7OM(5)[8],=K7RE(4)[7],=K7SCX(4)[7],=K7SV(5)[8],\n" " =K7TD(4)[7],=K7VU(4)[7],=K8AC(5),=K8BN(3)[6],=K8IA(3)[6],=K8JQ(5),\n" " =K8MN(5),=K8NYG(5),=K8OQL(5),=K8PO(5),=K8WV(5),=K8YC(5),=K9JDV(3)[6],\n" " =K9JF(3)[6],=K9JM(3)[6],=K9OM(5),=K9RS(5),=K9VV(5),=K9WZB(3)[6],\n" " =K9YC(3)[6],=K9ZU(5),=KA2EYH(4),=KA4OTB(4),=KA4U(4),=KA6SGT(4)[8],\n" " =KA8Q(5),=KB4AMA(4),=KB7Q(4)[6],=KB8V(5),=KC4HW(4),=KC4SAW(4),\n" " =KC7UP(4)[6],=KC8GCR(5),=KD4HXT(3)[6],=KD4POJ(4)[7],=KD4SN(4),=KD5M(5)[8],\n" " =KE1B(3)[6],=KE3D(4)[7],=KE4KWE(4),=KE4KY(4),=KE4TG(4),=KE4UNA(4),\n" " =KE4YVD(4),=KE5HDE(5)[8],=KF4MH(4),=KF7CG(4)[8],=KF7NN(5)[8],=KG4CUY(4),\n" " =KG4W,=KG7HF(5)[8],=KH2OP(4)[7],=KH6JIM/7(3)[6],=KH6JJN(3)[6],\n" " =KH7WW(3)[6],=KI4EZC(4),=KJ4BIW(4),=KL1SE(4)[8],=KL5Z(4)[7],=KL7AH(4)[7],\n" " =KL7GLK(5)[8],=KL7OO(3)[6],=KL7WP(3)[6],=KM4JA(4),=KN4Q(4),=KN5H(3)[6],\n" " =KN6X(4)[8],=KO4OL(4),=KO4PU(4),=KO4XJ(4),=KO4Y(4),=KO7X(4)[7],\n" " =KP2F(4)[8],=KP3M(5)[8],=KP4TR(5)[8],=KR4F(4),=KS4X(4),=KS7T(4)[6],\n" " =KT2Z(4)[7],=KT6D(5)[8],=KU1CW(4)[7],=KU4PY(4),=KU8E(5),=KX9X(5),\n" " =KY0W(3)[6],=KY4F(4),=KZ4V(4),=N1CC(4)[7],=N1KEZ(3)[6],=N1QXV(4)[7],\n" " =N1WQ(4)[7],=N2BJ(4),=N2BZP(3)[6],=N2IC(4)[7],=N2NS(4),=N2OPW(4),=N2WN(4),\n" " =N3BB(4)[7],=N3BUO(4)[7],=N3HE(4),=N3KCJ(3)[6],=N3ZZ(3)[6],=N4AAI(4),\n" " =N4ARO(4),=N4AU(4),=N4BCB(4),=N4CB(3)[6],=N4CBK(4),=N4CPA(4),=N4DW(4),\n" " =N4GK(4),=N4GN(4),=N4HID(4),=N4IJ(4)[7],=N4IL(4),=N4IR(4),=N4JF(4),\n" " =N4KC(4),=N4KG(4),=N4KZ(4),=N4LS(3)[6],=N4LW(4),=N4NM(4),=N4NO(4),\n" " =N4OGW(4)[8],=N4QS(4),=N4RR(4),=N4TZ(4),=N4UC(4),=N4VI(4)[7],=N4VN(4),\n" " =N4VV(4),=N4ZI(4),=N4ZZ(4),=N5IE(5)[8],=N5RA(3)[6],=N6AR(5)[8],\n" " =N6CY(5)[8],=N6VX(5)[8],=N7DC(5)[8],=N7FF(4)[7],=N7GVV(4)[8],=N7IV(4)[7],\n" " =N7KA(4)[7],=N7NG(4)[6],=N7US(4)[8],=N8CL(5),=N8GZ(3)[6],=N8II(5),\n" " =N8NA(5),=N8PR(5),=N8RA(5),=N8RR(5),=N8WXQ(5),=N9ADG(3)[6],=N9NC(5),\n" " =NA2U(3)[6],=NA4C(4),=NA4K(4),=NA4M(4)[7],=NB4M(4),=NB7V(4)[6],\n" " =ND2T(3)[6],=ND4X(4),=NE4M(4),=NE8J(5),=NH0Y(3)[6],=NH6CN(4)[8],\n" " =NH7C(5)[8],=NH7FL(4)[7],=NI9K(5),=NJ4I(4),=NK8Q(5),=NL7QC(4)[7],\n" " =NL7XM(5)[8],=NM4K(4),=NN7A(4)[7],=NO9E(5),=NP2CB(5)[8],=NP2F(4)[7],\n" " =NP3D(5)[8],=NQ4U(4),=NR7DX(4)[6],=NS0I(5)[8],=NS2X(4),=NU4B(4),=NV4B(4),\n" " =NW8U(5),=NX2PX(4),=NX9T(5),=NY4N(4),=W0BR(5)[8],=W0JLC(5)[8],\n" " =W0QQG(5)[8],=W0YK(3)[6],=W0YR(5)[8],=W1ESE(3)[6],=W1NN(4),=W1RET(4),\n" " =W1RH(3)[6],=W2OO(4),=W2UP(4)[7],=W2VJN(3)[6],=W2VKT(3)[6],=W3CP(3)[6],\n" " =W3FAF(4)[7],=W3HDH(4),=W3HKK(4),=W3IQ(4),=W3RI(3)[6],=W4BCG(4),=W4BK(4),\n" " =W4CID(4),=W4DAN(4),=W4DDR(4),=W4DVG(4),=W4EEH(4),=W4FIN(4),=W4GHD(4),\n" " =W4GKM(4),=W4HOD(4),=W4HYT(4),=W4HZD(4),=W4JSI(4),=W4KW(4),=W4LC(4),\n" " =W4LSC(3)[6],=W4LWW(4),=W4NBS(4),=W4NI(4),=W4NTI(4),=W4NZ(4),=W4PA(4),\n" " =W4PV(4),=W4RJ(4),=W4RK(4)[7],=W4RYW(4),=W4SK(4),=W4TGB(4),=W4TKI(4),\n" " =W4UAT(3)[6],=W4UHF(4),=W4UR(4),=W4WL(4),=W4YOK(4)[7],=W5JBV(5)[8],\n" " =W5JR(3)[6],=W6AAN(5)[8],=W6HGF(5)[8],=W6IHG(5)[8],=W6KGP(4)[7],\n" " =W6LFB(4)[7],=W6NRJ(5)[8],=W6NWS(5)[8],=W6PU(4)[7],=W6UB(4)[8],\n" " =W6XR(5)[8],=W7DO(5)[8],=W7FB(4)[7],=W7FG(4)[7],=W7HJ(5)[8],=W7IMP(5)[8],\n" " =W7IY(5)[8],=W7JI(4)[7],=W7JW(4)[8],=W7PP(4)[8],=W7QF(5)[8],=W8AEF(3)[6],\n" " =W8AKS(5),=W8FJ(5),=W8HC(5),=W8HGH(5),=W8JA(5),=W8JI(5),=W8OHT(5),\n" " =W8PC(5),=W8QZA(3)[6],=W8RJL(5),=W8WEJ(5),=W8WVM(5),=W8ZA(5),=W9CF(3)[6],\n" " =W9GE(5),=W9NGA(3)[6],=W9PL(3)[6],=W9RUK(5),=WA0KDS(3)[6],=WA0WWW(3)[6],\n" " =WA1FCN(4),=WA1PMA(3)[6],=WA1UJU(4),=WA2MNO(4)[7],=WA3C(4),=WA4JA(4),\n" " =WA4OSD(4),=WA4SM(4),=WA5VGI(3)[6],=WA7NPX(4)[7],=WA8OJR(5),=WA8WV(5),\n" " =WB4JVR(4),=WB4YDL(4),=WB4ZBI(4),=WB8BPU(5),=WB8IMY(5),=WB8YYY(5),\n" " =WC2Z(4),=WC4V(4),=WC7S(4)[7],=WC7V(4)[6],=WC7WB(4)[7],=WD9GMK(5),\n" " =WF7T(4)[8],=WG7Y(4)[7],=WJ9B(5),=WK5X(5)[8],=WL7LZ(4)[7],=WO4O(4),\n" " =WP4JBG(4)[7],=WP4O(5)[8],=WR4F(4),=WR5G(3)[6],=WS1L(4)[7],=WS4Y(4)[7],\n" " =WS9M(5),=WT5L(5)[8],=WU9B(3)[6],=WV8AA(5),=WW2Y(4)[7],=WX4TM(4),\n" " =WX5S(3)[6],=WY5I(5)[8],=WY7I(4)[7],=WY7LL(4)[7],=WZ4F(4);\n" "Guantanamo Bay: 08: 11: NA: 19.90: 75.20: 5.0: KG4:\n" " KG4;\n" "Mariana Islands: 27: 64: OC: 15.20: -145.80: -10.0: KH0:\n" " AH0,KH0,NH0,WH0,=KG6SL;\n" "Baker & Howland Islands: 31: 61: OC: 0.50: 176.00: 12.0: KH1:\n" " AH1,KH1,NH1,WH1;\n" "Guam: 27: 64: OC: 13.50: -144.80: -10.0: KH2:\n" " AH2,KH2,NH2,WH2,=KG6ASO,=KG6DX;\n" "Johnston Island: 31: 61: OC: 16.80: 169.50: 10.0: KH3:\n" " AH3,KH3,NH3,WH3,=KJ6BZ;\n" "Midway Island: 31: 61: OC: 28.20: 177.40: 11.0: KH4:\n" " AH4,KH4,NH4,WH4;\n" "Palmyra & Jarvis Islands: 31: 61: OC: 5.90: 162.10: 11.0: KH5:\n" " AH5,KH5,NH5,WH5;\n" "Kingman Reef: 31: 61: OC: 6.40: 162.40: 11.0: KH5K:\n" " AH5K,KH5K,NH5K,WH5K;\n" "Hawaii: 31: 61: OC: 21.30: 157.90: 10.0: KH6:\n" " AH6,AH7,KH6,KH7,NH6,NH7,WH6,WH7,=N6KB;\n" "Kure Island: 31: 61: OC: 28.40: 178.40: 10.0: KH7K:\n" " AH7K,KH7K,NH7K,WH7K;\n" "American Samoa: 32: 62: OC: -14.30: 170.80: 11.0: KH8:\n" " AH8,KH8,NH8,WH8;\n" "Swains Island: 32: 62: OC: -11.05: 171.25: 11.0: KH8/s:\n" " =KH8SI;\n" "Wake Island: 31: 65: OC: 19.30: -166.60: -12.0: KH9:\n" " AH9,KH9,NH9,WH9;\n" "Alaska: 01: 01: NA: 61.20: 150.00: 9.0: KL:\n" " AL,KL,NL,WL,=AH0AH,=KW1W;\n" "Navassa Island: 08: 11: NA: 18.40: 75.00: 5.0: KP1:\n" " KP1,NP1,WP1;\n" "U.S. Virgin Islands: 08: 11: NA: 18.30: 64.90: 4.0: KP2:\n" " KP2,NP2,WP2,=KV4FZ;\n" "Puerto Rico: 08: 11: NA: 18.50: 66.20: 4.0: KP4:\n" " KP3,KP4,NP3,NP4,WP3,WP4;\n" "Desecheo Island: 08: 11: NA: 18.30: 67.50: 4.0: KP5:\n" " KP5,NP5,WP5;\n" "Norway: 14: 18: EU: 60.00: -10.70: -1.0: LA:\n" " LA,LB,LC,LD,LE,LF,LG,LH,LI,LJ,LK,LL,LM,LN;\n" "Argentina: 13: 14: SA: -34.60: 58.40: 3.0: LU:\n" " AY,AZ,L2,L3,L4,L5,L6,L7,L8,L9,LO,LP,LQ,LR,LS,LT,LU,LV,LW,=AY0N/X,=AY3DR/D,\n" " =AY4EJ/D,=AY5E/D,=AY7DSY/D,=DJ4SN/LU/X,=L20ARC/D,=L21ESC/LH,=L25E/D,\n" " =L30EY/D,=L30EY/V,=L40E/D,=L44D/D,=L80AA/D,=L84VI/D,=L8D/X,=LO0D/D,\n" " =LO7E/D,=LR1A/D,=LU/DH4PB/R,=LU/DH4PB/S,=LU1AEE/D,=LU1AF/D,=LU1ARG/D,\n" " =LU1AS/D,=LU1ASP/D,=LU1BCE/D,=LU1CDP/D,=LU1DDK/D,=LU1DHO/D,=LU1DK/D,\n" " =LU1DMA/E,=LU1DZ/D,=LU1DZ/E,=LU1DZ/L,=LU1DZ/P,=LU1DZ/Q,=LU1DZ/R,=LU1DZ/S,\n" " =LU1DZ/X,=LU1EEZ/D,=LU1EJ/W,=LU1EQ/D,=LU1EUU/D,=LU1EUU/W,=LU1EYW/D,\n" " =LU1HH/H,=LU1LAA/L,=LU1LT/L,=LU1OFN/I,=LU1QA/Q,=LU1UM/U,=LU1VEG/V,\n" " =LU1VOF/D,=LU1VOF/V,=LU1VZ/V,=LU1WCR/W,=LU1WF/W,=LU1WJF/W,=LU1WJY/W,\n" " =LU1WP/W,=LU1XAW/X,=LU1XWC/E,=LU1XY/X,=LU1XZ/H,=LU1YU/D,=LU1YY/D,=LU1YY/Y,\n" " =LU2AGQ/D,=LU2BPM/D,=LU2CRM/XA,=LU2DSV/N,=LU2DT/D,=LU2DT/LH,=LU2DVF/D,\n" " =LU2DVI/H,=LU2EE/D,=LU2EE/E,=LU2EGP/D,=LU2EJB/X,=LU2VC/D,=LU2VC/V,\n" " =LU2VCD/V,=LU2VDV/D,=LU2WA/W,=LU2WV/O,=LU2XBI/XA,=LU2XX/X,=LU2XX/XP,\n" " =LU3AOI/D,=LU3CQ/D,=LU3DAT/D,=LU3DC/D,=LU3DC/V,=LU3DJI/D,=LU3DJI/W,\n" " =LU3DOC/D,=LU3DR/D,=LU3DR/V,=LU3DR/W,=LU3DXG/D,=LU3DXG/W,=LU3DZO/D,\n" " =LU3EOU/D,=LU3ES/D,=LU3ES/V,=LU3ES/W,=LU3HKA/D,=LU3HKA/H,=LU3VAL/V,\n" " =LU4AAO/D,=LU4BR/D,=LU4DA/D,=LU4DBP/D,=LU4DBT/D,=LU4DBT/W,=LU4DCY/D,\n" " =LU4DDL/V,=LU4DQ/D,=LU4DQQ/D,=LU4DRC/Y,=LU4DRH/D,=LU4DRH/E,=LU4EHP/V,\n" " =LU4EJ/D,=LU4ELE/D,=LU4ESP/D,=LU4ETN/D,=LU4ETN/W,=LU4EV/Q,=LU4HMA/W,\n" " =LU4JJ/J,=LU4LAD/L,=LU4LBU/L,=LU4UWZ/D,=LU4UZW/D,=LU4WG/W,=LU5ANL/D,\n" " =LU5BE/D,=LU5BE/XA,=LU5BOJ/O,=LU5DA/D,=LU5DEM/D,=LU5DEM/V,=LU5DEM/W,\n" " =LU5DIT/D,=LU5DIT/V,=LU5DIT/W,=LU5DLH/D,=LU5DRV/D,=LU5DRV/V,=LU5DT/D,\n" " =LU5DV/D,=LU5DWS/D,=LU5DZ/H,=LU5EAO/D,=LU5EFX/Y,=LU5EHC/D,=LU5EJL/D,\n" " =LU5EWO/D,=LU5FHD/F,=LU5FZ/D,=LU5HTA/H,=LU5JU/J,=LU5LBV/L,=LU5VAS/D,\n" " =LU5VAT/D,=LU5XC/X,=LU6AER/D,=LU6CN/D,=LU6DBL/D,=LU6DBL/W,=LU6DDC/D,\n" " =LU6DG/D,=LU6DIO/D,=LU6DKT/D,=LU6DRD/D,=LU6DRD/E,=LU6DRN/D,=LU6DRR/D,\n" " =LU6DSA/D,=LU6DTB/D,=LU6EC/W,=LU6EE/D,=LU6EJJ/D,=LU6EPE/D,=LU6EPR/D,\n" " =LU6EPR/E,=LU6EU/D,=LU6EVD/D,=LU6EYK/X,=LU6HAS/H,=LU6JJ/D,=LU6UAL/D,\n" " =LU6UO/D,=LU6UO/P,=LU6UO/Q,=LU6UO/R,=LU6UO/S,=LU6UO/X,=LU6WAZ/W,=LU6WG/W,\n" " =LU6XAH/X,=LU7AC/D,=LU7ADC/D,=LU7ART/D,=LU7BTO/D,=LU7BTO/E,=LU7DBL/D,\n" " =LU7DCE/D,=LU7DID/V,=LU7DID/Y,=LU7DIR/D,=LU7DIR/E,=LU7DJJ/W,=LU7DP/D,\n" " =LU7DR/D,=LU7DSU/D,=LU7DSY/D,=LU7DSY/V,=LU7DSY/W,=LU7DW/D,=LU7DZ/H,\n" " =LU7DZL/D,=LU7DZL/E,=LU7EGH/V,=LU7EGY/D,=LU7EHL/D,=LU7EO/D,=LU7EPC/D,\n" " =LU7EPC/W,=LU7FJ/F,=LU7HBL/D,=LU7HW/D,=LU7VCH/D,=LU7WFM/W,=LU7WW/W,\n" " =LU8ADX/D,=LU8AE/D,=LU8ARI/D,=LU8DCH/D,=LU8DCH/Q,=LU8DCK/D,=LU8DIP/D,\n" " =LU8DR/D,=LU8DRA/D,=LU8DRA/W,=LU8DRH/D,=LU8DSJ/D,=LU8DTF/D,=LU8DWR/D,\n" " =LU8DWR/V,=LU8DWR/W,=LU8EAJ/D,=LU8EBJ/D,=LU8EBJ/E,=LU8EBK/D,=LU8EBK/E,\n" " =LU8ECF/D,=LU8ECF/E,=LU8EEM/D,=LU8EFF/D,=LU8EGS/D,=LU8EHQ/D,=LU8EHQ/E,\n" " =LU8EHQ/W,=LU8EHS/D,=LU8EHV/D,=LU8EKB/W,=LU8EKC/D,=LU8EOT/X,=LU8EOT/Y,\n" " =LU8ERH/D,=LU8EXJ/D,=LU8EXN/D,=LU8FC/F,=LU8FOZ/V,=LU8HAR/H,=LU8VCC/D,\n" " =LU8VER/V,=LU8WFT/Q,=LU8XC/X,=LU8XW/X,=LU8XW/XD,=LU9AOS/D,=LU9ARB/D,\n" " =LU9AUC/D,=LU9CAF/H,=LU9DA/D,=LU9DBK/X,=LU9DE/D,=LU9DF/D,=LU9DGE/D,\n" " =LU9DKX/X,=LU9DO/D,=LU9DPD/D,=LU9DPD/XA,=LU9EI/D,=LU9EI/F,=LU9EJS/E,\n" " =LU9ESD/D,=LU9ESD/F,=LU9ESD/V,=LU9ESD/W,=LU9ESD/Y,=LU9EV/D,=LU9EV/LH,\n" " =LU9EY/D,=LU9EY/V,=LU9HVR/D,=LU9JMG/J,=LU9LEW/L,=LW1DAL/D,=LW1DE/D,\n" " =LW1DXH/D,=LW1EXU/D,=LW1EXU/Y,=LW1HCM/H,=LW1HDI/H,=LW2DX/E,=LW2DX/P,\n" " =LW2DX/Q,=LW2DX/R,=LW2DX/S,=LW2DX/Y,=LW2ECM/D,=LW2EFS/D,=LW2ENB/D,\n" " =LW3DJC/D,=LW3DKC/D,=LW3DKC/E,=LW3DKO/D,=LW3DKO/E,=LW3HAQ/D,=LW3HBS/H,\n" " =LW4DOR/D,=LW4DRH/D,=LW4DRH/E,=LW4DRV/D,=LW4DTM/D,=LW4DXH/D,=LW4ECV/D,\n" " =LW4EIN/D,=LW4EM/E,=LW4EM/LH,=LW4ESY/D,=LW4ETG/D,=LW5DFR/D,=LW5DLY/D,\n" " =LW5DR/D,=LW5DR/LH,=LW5DUS/D,=LW5DWX/D,=LW5EE/D,=LW5EE/V,=LW5EOL/D,\n" " =LW6DTM/D,=LW6EFR/D,=LW7DAF/D,=LW7DAF/W,=LW7DFD/D,=LW7DLY/D,=LW7DNS/E,\n" " =LW7DWX/D,=LW7EDH/D,=LW7EJV/D,=LW7WFM/W,=LW8DMK/D,=LW8DMK/W,=LW8EAG/D,\n" " =LW8ECQ/D,=LW8EU/D,=LW8EXF/D,=LW9DAE/W,=LW9DCF/Y,=LW9DMM/D,=LW9DX/D,\n" " =LW9EAG/D,=LW9EAG/V,=LW9EAG/W,=LW9EVA/D,=LW9EVA/E;\n" "Luxembourg: 14: 27: EU: 49.60: -6.20: -1.0: LX:\n" " LX;\n" "Lithuania: 15: 29: EU: 54.50: -25.50: -2.0: LY:\n" " LY;\n" "Bulgaria: 20: 28: EU: 42.70: -23.30: -2.0: LZ:\n" " LZ;\n" "Peru: 10: 12: SA: -10.00: 76.00: 5.0: OA:\n" " 4T,OA,OB,OC;\n" "Lebanon: 20: 39: AS: 33.80: -35.80: -2.0: OD:\n" " OD;\n" "Austria: 15: 28: EU: 47.30: -13.30: -1.0: OE:\n" " OE,=4U1VIC,=4U1WED,=4U30VIC,=OE3AGA/AAW,=OE3AIS/AAW,=OE3HM/AAW,\n" " =OE3KKA/AAW,=OE3RPB/AAW,=OE3SGA/AAW,=OE3WWB/AAW;\n" "Finland: 15: 18: EU: 60.20: -25.00: -2.0: OH:\n" " OF,OG,OH,OI,OJ;\n" "Aland Islands: 15: 18: EU: 60.20: -20.00: -2.0: OH0:\n" " OF0,OG0,OH0,OI0;\n" "Market Reef: 15: 18: EU: 60.30: -19.00: -2.0: OJ0:\n" " OJ0;\n" "Czech Republic: 15: 28: EU: 50.10: -15.50: -1.0: OK:\n" " OK,OL;\n" "Slovakia: 15: 28: EU: 48.10: -17.10: -1.0: OM:\n" " OM;\n" "Belgium: 14: 27: EU: 50.90: -4.40: -1.0: ON:\n" " ON,OO,OP,OQ,OR,OS,OT;\n" "Greenland: 40: 05: NA: 62.50: 45.00: 3.0: OX:\n" " OX,XP;\n" "Faroe Islands: 14: 18: EU: 62.00: 6.80: 0.0: OY:\n" " OW,OY;\n" "Denmark: 14: 18: EU: 56.00: -10.00: -1.0: OZ:\n" " 5P,5Q,OU,OV,OZ;\n" "Papua New Guinea: 28: 51: OC: -9.40: -147.10: -10.0: P2:\n" " P2;\n" "Aruba: 09: 11: SA: 12.50: 70.00: 4.0: P4:\n" " P4;\n" "Netherlands: 14: 27: EU: 52.40: -4.90: -1.0: PA:\n" " PA,PB,PC,PD,PE,PF,PG,PH,PI;\n" "Netherlands Antilles: 09: 11: SA: 12.10: 69.00: 4.0: PJ2:\n" " PJ0,PJ1,PJ2,PJ3,PJ4,PJ9;\n" "Sint Maarten: 08: 11: NA: 17.70: 63.20: 4.0: PJ7:\n" " PJ5,PJ6,PJ7,PJ8;\n" "Brazil: 11: 15: SA: -23.00: 43.20: 3.0: PY:\n" " PP,PQ,PR,PS,PT,PU,PV,PW,PX,PY,ZV,ZW,ZX,ZY,ZZ;\n" "Fernando de Noronha: 11: 13: SA: -3.90: 32.40: 2.0: PY0F:\n" " PP0F,PP0R,PP0ZF,PP0ZR,PQ0F,PQ0R,PQ0ZF,PQ0ZR,PR0F,PR0R,PR0ZF,PR0ZR,PS0F,\n" " PS0R,PS0ZF,PS0ZR,PT0F,PT0R,PT0ZF,PT0ZR,PU0F,PU0R,PU0ZF,PU0ZR,PV0F,PV0R,\n" " PV0ZF,PV0ZR,PW0F,PW0R,PW0ZF,PW0ZR,PX0F,PX0R,PX0ZF,PX0ZR,PY0F,PY0R,PY0ZF,\n" " PY0ZR,ZV0F,ZV0R,ZV0ZF,ZV0ZR,ZW0F,ZW0R,ZW0ZF,ZW0ZR,ZX0F,ZX0R,ZX0ZF,ZX0ZR,\n" " ZY0F,ZY0R,ZY0ZF,ZY0ZR,ZZ0F,ZZ0R,ZZ0ZF,ZZ0ZR;\n" "St. Peter & St. Paul: 11: 13: SA: 1.00: 29.40: 2.0: PY0S:\n" " PP0S,PP0ZS,PQ0S,PQ0ZS,PR0S,PR0ZS,PS0S,PS0ZS,PT0S,PT0ZS,PU0S,PU0ZS,PV0S,\n" " PV0ZS,PW0S,PW0ZS,PX0S,PX0ZS,PY0S,PY0ZS,ZV0S,ZV0ZS,ZW0S,ZW0ZS,ZX0S,ZX0ZS,\n" " ZY0S,ZY0ZS,ZZ0S,ZZ0ZS;\n" "Trindade & Martim Vaz: 11: 15: SA: -20.50: 29.30: 2.0: PY0T:\n" " PP0T,PP0ZT,PQ0T,PQ0ZT,PR0T,PR0ZT,PS0T,PS0ZT,PT0T,PT0ZT,PU0T,PU0ZT,PV0T,\n" " PV0ZT,PW0T,PW0ZT,PX0T,PX0ZT,PY0T,PY0ZT,ZV0T,ZV0ZT,ZW0T,ZW0ZT,ZX0T,ZX0ZT,\n" " ZY0T,ZY0ZT,ZZ0T,ZZ0ZT;\n" "Suriname: 09: 12: SA: 4.00: 56.00: 3.0: PZ:\n" " PZ;\n" "Franz Josef Land: 40: 75: EU: 80.00: -53.00: -3.0: R1FJ:\n" " FJL,R1FJ,RI1FJ;\n" "Malyj Vysotskij: 16: 29: EU: 60.40: -28.40: -3.0: R1MV:\n" " MVI,R1MV,RI1MV;\n" "Western Sahara: 33: 46: AF: 22.00: 15.00: 0.0: S0:\n" " S0;\n" "Bangladesh: 22: 41: AS: 23.70: -90.40: -6.0: S2:\n" " S2,S3;\n" "Slovenia: 15: 28: EU: 46.00: -14.50: -1.0: S5:\n" " S5;\n" "Seychelles: 39: 53: AF: -4.60: -55.50: -4.0: S7:\n" " S7;\n" "Sao Tome & Principe: 36: 47: AF: 0.30: -6.70: 0.0: S9:\n" " S9;\n" "Sweden: 14: 18: EU: 59.30: -18.10: -1.0: SM:\n" " 7S,8S,SA,SB,SC,SD,SE,SF,SG,SH,SI,SJ,SK,SL,SM;\n" "Poland: 15: 28: EU: 52.20: -21.00: -1.0: SP:\n" " 3Z,HF,SN,SO,SP,SQ,SR,=SP2FAP/FF;\n" "Sudan: 34: 48: AF: 15.60: -32.50: -3.0: ST:\n" " 6T,6U,ST;\n" "Egypt: 34: 38: AF: 30.00: -31.40: -2.0: SU:\n" " 6A,6B,SS,SU;\n" "Greece: 20: 28: EU: 38.00: -23.70: -2.0: SV:\n" " J4,SV,SW,SX,SY,SZ;\n" "Mount Athos: 20: 28: EU: 40.20: -24.30: -2.0: SV/a:\n" " =SV2ASP/A;\n" "Dodecanese: 20: 28: EU: 36.40: -28.20: -2.0: SV5:\n" " J45,SV5,SW5,SX5,SY5,SZ5;\n" "Crete: 20: 28: EU: 35.40: -25.20: -2.0: SV9:\n" " J49,SV9,SW9,SX9,SY9,SZ9;\n" "Tuvalu: 31: 65: OC: -8.70: -179.20: -12.0: T2:\n" " T2;\n" "Western Kiribati: 31: 65: OC: 1.40: -173.00: -12.0: T30:\n" " T30;\n" "Central Kiribati: 31: 62: OC: -2.80: 171.70: -13.0: T31:\n" " T31;\n" "Eastern Kiribati: 31: 61: OC: 1.90: 157.40: -14.0: T32:\n" " T32;\n" "Banaba: 31: 65: OC: -0.90: -169.50: -12.0: T33:\n" " T33;\n" "Somalia: 37: 48: AF: 2.10: -45.40: -3.0: T5:\n" " 6O,T5;\n" "San Marino: 15: 28: EU: 43.90: -12.30: -1.0: T7:\n" " T7;\n" "Palau: 27: 64: OC: 9.50: -138.20: -9.0: T8:\n" " T8;\n" "Turkey: 20: 39: AS: 40.00: -33.00: -2.0: TA:\n" " TA,TB,TC,YM;\n" "European Turkey: 20: 39: EU: 41.20: -29.00: -2.0: *TA1:\n" " TA1,TB1,TC1,YM1;\n" "Iceland: 40: 17: EU: 64.10: 22.00: 0.0: TF:\n" " TF;\n" "Guatemala: 07: 11: NA: 14.60: 90.50: 6.0: TG:\n" " TD,TG;\n" "Costa Rica: 07: 11: NA: 9.90: 84.00: 6.0: TI:\n" " TE,TI;\n" "Cocos Island: 07: 11: NA: 5.60: 87.00: 6.0: TI9:\n" " TE9,TI9;\n" "Cameroon: 36: 47: AF: 3.90: -11.50: -1.0: TJ:\n" " TJ;\n" "Corsica: 15: 28: EU: 42.00: -9.00: -1.0: TK:\n" " TK;\n" "Central African Rep: 36: 47: AF: 4.40: -18.60: -1.0: TL:\n" " TL;\n" "Congo: 36: 52: AF: -4.30: -15.30: -1.0: TN:\n" " TN;\n" "Gabon: 36: 52: AF: 0.40: -9.50: -1.0: TR:\n" " TR;\n" "Chad: 36: 47: AF: 12.10: -15.00: -1.0: TT:\n" " TT;\n" "Cote d'Ivoire: 35: 46: AF: 5.30: 4.00: 0.0: TU:\n" " TU;\n" "Benin: 35: 46: AF: 6.50: -2.60: -1.0: TY:\n" " TY;\n" "Mali: 35: 46: AF: 12.70: 8.00: 0.0: TZ:\n" " TZ;\n" "European Russia: 16: 29: EU: 55.80: -37.60: -3.0: UA:\n" " R,RA1N[19],RA1O[19],RA1Z[19],RA4W[30],RD1N[19],RD1O[19],RD1Z[19],RD4W[30],\n" " RK1N[19],RK1O[19],RK1Z[19],RK4W[30],RM1N[19],RM1O[19],RM1Z[19],RM4W[30],\n" " RN1N[19],RN1O[19],RN1Z[19],RN4W[30],RU1N[19],RU1O[19],RU1Z[19],RU4W[30],\n" " RV1N[19],RV1O[19],RV1Z[19],RV4W[30],RW1N[19],RW1O[19],RW1Z[19],RW4W[30],U,\n" " UA1N[19],UA1O[19],UA1Z[19],UA4W[30],=R7C,=R7C/1,=R7C/3,=R7C/4;\n" "Kaliningrad: 15: 29: EU: 55.00: -20.50: -2.0: UA2:\n" " R2F,R2K,RA2F,RA2K,RB2F,RB2K,RC2F,RC2K,RD2F,RD2K,RE2F,RE2K,RF2F,RF2K,RG2F,\n" " RG2K,RH2F,RH2K,RI2F,RI2K,RJ2F,RJ2K,RK2F,RK2K,RL2F,RL2K,RM2F,RM2K,RN2F,\n" " RN2K,RO2F,RO2K,RP2F,RP2K,RQ2F,RQ2K,RR2F,RR2K,RS2F,RS2K,RT2F,RT2K,RU2F,\n" " RU2K,RV2F,RV2K,RW2F,RW2K,RX2F,RX2K,RY2F,RY2K,RZ2F,RZ2K,U2F,U2K,UA2F,UA2K,\n" " UB2F,UB2K,UC2F,UC2K,UD2F,UD2K,UE2F,UE2K,UF2F,UF2K,UG2F,UG2K,UH2F,UH2K,\n" " UI2F,UI2K,=UA2AB,=UA2AC,=UA2AJ,=UA2AN,=UA2AO,=UA2AR,=UA2AW,=UA2BA,=UA2BD,\n" " =UA2BG,=UA2CK,=UA2CM,=UA2CN,=UA2CX,=UA2CY,=UA2CZ,=UA2DC,=UA2DF,=UA2DJ,\n" " =UA2DK,=UA2DM,=UA2DU,=UA2DV,=UA2EC,=UA2WJ;\n" "Asiatic Russia: 17: 30: AS: 55.00: -83.00: -7.0: UA9:\n" " R0,R8,R8H(18)[31],R8I(18)[31],R8O(18)[31],R8P(18)[31],R8S(16),R8T(16),\n" " R8U(18)[31],R8V(18)[31],R8Y(18)[31],R8Z(18)[31],R9,R9I(18)[31],R9M(17),R9S(16),\n" " R9T(16),R9U(18)[31],R9W(16),RA0,RA8,RA8H(18)[31],RA8I(18)[31],RA8O(18)[31],\n" " RA8P(18)[31],RA8S(16),RA8T(16),RA8U(18)[31],RA8V(18)[31],RA8Y(18)[31],\n" " RA8Z(18)[31],RA9,RA9I(18)[31],RA9M(17),RA9P(18)[31],RA9S(16),RA9T(16),\n" " RA9U(18)[31],RA9W(16),RB0,RB8,RB8H(18)[31],RB8I(18)[31],RB8O(18)[31],\n" " RB8P(18)[31],RB8S(16),RB8T(16),RB8U(18)[31],RB8V(18)[31],RB8Y(18)[31],\n" " RB8Z(18)[31],RB9,RB9I(18)[31],RB9M(17),RB9P(18)[31],RB9S(16),RB9T(16),\n" " RB9U(18)[31],RB9W(16),RC0,RC8,RC8H(18)[31],RC8I(18)[31],RC8O(18)[31],\n" " RC8P(18)[31],RC8S(16),RC8T(16),RC8U(18)[31],RC8V(18)[31],RC8Y(18)[31],\n" " RC8Z(18)[31],RC9,RC9I(18)[31],RC9M(17),RC9P(18)[31],RC9S(16),RC9T(16),\n" " RC9U(18)[31],RC9W(16),RD0,RD8,RD8H(18)[31],RD8I(18)[31],RD8O(18)[31],\n" " RD8P(18)[31],RD8S(16),RD8T(16),RD8U(18)[31],RD8V(18)[31],RD8Y(18)[31],\n" " RD8Z(18)[31],RD9,RD9I(18)[31],RD9M(17),RD9P(18)[31],RD9S(16),RD9T(16),\n" " RD9U(18)[31],RD9W(16),RE0,RE8,RE8H(18)[31],RE8I(18)[31],RE8O(18)[31],\n" " RE8P(18)[31],RE8S(16),RE8T(16),RE8U(18)[31],RE8V(18)[31],RE8Y(18)[31],\n" " RE8Z(18)[31],RE9,RE9I(18)[31],RE9M(17),RE9P(18)[31],RE9S(16),RE9T(16),\n" " RE9U(18)[31],RE9W(16),RF0,RF8,RF8H(18)[31],RF8I(18)[31],RF8O(18)[31],\n" " RF8P(18)[31],RF8S(16),RF8T(16),RF8U(18)[31],RF8V(18)[31],RF8Y(18)[31],\n" " RF8Z(18)[31],RF9,RF9I(18)[31],RF9M(17),RF9P(18)[31],RF9S(16),RF9T(16),\n" " RF9U(18)[31],RF9W(16),RG0,RG8,RG8H(18)[31],RG8I(18)[31],RG8O(18)[31],\n" " RG8P(18)[31],RG8S(16),RG8T(16),RG8U(18)[31],RG8V(18)[31],RG8Y(18)[31],\n" " RG8Z(18)[31],RG9,RG9I(18)[31],RG9M(17),RG9P(18)[31],RG9S(16),RG9T(16),\n" " RG9U(18)[31],RG9W(16),RH0,RH8,RH8H(18)[31],RH8I(18)[31],RH8O(18)[31],\n" " RH8P(18)[31],RH8S(16),RH8T(16),RH8U(18)[31],RH8V(18)[31],RH8Y(18)[31],\n" " RH8Z(18)[31],RH9,RH9I(18)[31],RH9M(17),RH9P(18)[31],RH9S(16),RH9T(16),\n" " RH9U(18)[31],RH9W(16),RI0,RI8,RI8H(18)[31],RI8I(18)[31],RI8O(18)[31],\n" " RI8P(18)[31],RI8S(16),RI8T(16),RI8U(18)[31],RI8V(18)[31],RI8Y(18)[31],\n" " RI8Z(18)[31],RI9,RI9I(18)[31],RI9M(17),RI9P(18)[31],RI9S(16),RI9T(16),\n" " RI9U(18)[31],RI9W(16),RJ0,RJ8,RJ8H(18)[31],RJ8I(18)[31],RJ8O(18)[31],\n" " RJ8P(18)[31],RJ8S(16),RJ8T(16),RJ8U(18)[31],RJ8V(18)[31],RJ8Y(18)[31],\n" " RJ8Z(18)[31],RJ9,RJ9I(18)[31],RJ9M(17),RJ9P(18)[31],RJ9S(16),RJ9T(16),\n" " RJ9U(18)[31],RJ9W(16),RK0,RK8,RK8H(18)[31],RK8I(18)[31],RK8O(18)[31],\n" " RK8P(18)[31],RK8S(16),RK8T(16),RK8U(18)[31],RK8V(18)[31],RK8Y(18)[31],\n" " RK8Z(18)[31],RK9,RK9I(18)[31],RK9M(17),RK9P(18)[31],RK9S(16),RK9T(16),\n" " RK9U(18)[31],RK9W(16),RL0,RL8,RL8H(18)[31],RL8I(18)[31],RL8O(18)[31],\n" " RL8P(18)[31],RL8S(16),RL8T(16),RL8U(18)[31],RL8V(18)[31],RL8Y(18)[31],\n" " RL8Z(18)[31],RL9,RL9I(18)[31],RL9M(17),RL9P(18)[31],RL9S(16),RL9T(16),\n" " RL9U(18)[31],RL9W(16),RM0,RM8,RM8H(18)[31],RM8I(18)[31],RM8O(18)[31],\n" " RM8P(18)[31],RM8S(16),RM8T(16),RM8U(18)[31],RM8V(18)[31],RM8Y(18)[31],\n" " RM8Z(18)[31],RM9,RM9I(18)[31],RM9M(17),RM9P(18)[31],RM9S(16),RM9T(16),\n" " RM9U(18)[31],RM9W(16),RN0,RN8,RN8H(18)[31],RN8I(18)[31],RN8O(18)[31],\n" " RN8P(18)[31],RN8S(16),RN8T(16),RN8U(18)[31],RN8V(18)[31],RN8Y(18)[31],\n" " RN8Z(18)[31],RN9,RN9I(18)[31],RN9M(17),RN9P(18)[31],RN9S(16),RN9T(16),\n" " RN9U(18)[31],RN9W(16),RO0,RO8,RO8H(18)[31],RO8I(18)[31],RO8O(18)[31],\n" " RO8P(18)[31],RO8S(16),RO8T(16),RO8U(18)[31],RO8V(18)[31],RO8Y(18)[31],\n" " RO8Z(18)[31],RO9,RO9I(18)[31],RO9M(17),RO9P(18)[31],RO9S(16),RO9T(16),\n" " RO9U(18)[31],RO9W(16),RP0,RP8,RP8H(18)[31],RP8I(18)[31],RP8O(18)[31],\n" " RP8P(18)[31],RP8S(16),RP8T(16),RP8U(18)[31],RP8V(18)[31],RP8Y(18)[31],\n" " RP8Z(18)[31],RP9,RP9I(18)[31],RP9M(17),RP9P(18)[31],RP9S(16),RP9T(16),\n" " RP9U(18)[31],RP9W(16),RQ0,RQ8,RQ8H(18)[31],RQ8I(18)[31],RQ8O(18)[31],\n" " RQ8P(18)[31],RQ8S(16),RQ8T(16),RQ8U(18)[31],RQ8V(18)[31],RQ8Y(18)[31],\n" " RQ8Z(18)[31],RQ9,RQ9I(18)[31],RQ9M(17),RQ9P(18)[31],RQ9S(16),RQ9T(16),\n" " RQ9U(18)[31],RQ9W(16),RR0,RR8,RR8H(18)[31],RR8I(18)[31],RR8O(18)[31],\n" " RR8P(18)[31],RR8S(16),RR8T(16),RR8U(18)[31],RR8V(18)[31],RR8Y(18)[31],\n" " RR8Z(18)[31],RR9,RR9I(18)[31],RR9M(17),RR9P(18)[31],RR9S(16),RR9T(16),\n" " RR9U(18)[31],RR9W(16),RS0,RS8,RS8H(18)[31],RS8I(18)[31],RS8O(18)[31],\n" " RS8P(18)[31],RS8S(16),RS8T(16),RS8U(18)[31],RS8V(18)[31],RS8Y(18)[31],\n" " RS8Z(18)[31],RS9,RS9I(18)[31],RS9M(17),RS9P(18)[31],RS9S(16),RS9T(16),\n" " RS9U(18)[31],RS9W(16),RT0,RT8,RT8H(18)[31],RT8I(18)[31],RT8O(18)[31],\n" " RT8P(18)[31],RT8S(16),RT8T(16),RT8U(18)[31],RT8V(18)[31],RT8Y(18)[31],\n" " RT8Z(18)[31],RT9,RT9I(18)[31],RT9M(17),RT9P(18)[31],RT9S(16),RT9T(16),\n" " RT9U(18)[31],RT9W(16),RU0,RU8,RU8H(18)[31],RU8I(18)[31],RU8O(18)[31],\n" " RU8P(18)[31],RU8S(16),RU8T(16),RU8U(18)[31],RU8V(18)[31],RU8Y(18)[31],\n" " RU8Z(18)[31],RU9,RU9I(18)[31],RU9M(17),RU9P(18)[31],RU9S(16),RU9T(16),\n" " RU9U(18)[31],RU9W(16),RV0,RV8,RV8H(18)[31],RV8I(18)[31],RV8O(18)[31],\n" " RV8P(18)[31],RV8S(16),RV8T(16),RV8U(18)[31],RV8V(18)[31],RV8Y(18)[31],\n" " RV8Z(18)[31],RV9,RV9I(18)[31],RV9M(17),RV9P(18)[31],RV9S(16),RV9T(16),\n" " RV9U(18)[31],RV9W(16),RW0,RW8,RW8H(18)[31],RW8I(18)[31],RW8O(18)[31],\n" " RW8P(18)[31],RW8S(16),RW8T(16),RW8U(18)[31],RW8V(18)[31],RW8Y(18)[31],\n" " RW8Z(18)[31],RW9,RW9I(18)[31],RW9M(17),RW9P(18)[31],RW9S(16),RW9T(16),\n" " RW9U(18)[31],RW9W(16),RX0,RX8,RX8H(18)[31],RX8I(18)[31],RX8O(18)[31],\n" " RX8P(18)[31],RX8S(16),RX8T(16),RX8U(18)[31],RX8V(18)[31],RX8Y(18)[31],\n" " RX8Z(18)[31],RX9,RX9I(18)[31],RX9M(17),RX9P(18)[31],RX9S(16),RX9T(16),\n" " RX9U(18)[31],RX9W(16),RY0,RY8,RY8H(18)[31],RY8I(18)[31],RY8O(18)[31],\n" " RY8P(18)[31],RY8S(16),RY8T(16),RY8U(18)[31],RY8V(18)[31],RY8Y(18)[31],\n" " RY8Z(18)[31],RY9,RY9I(18)[31],RY9M(17),RY9P(18)[31],RY9S(16),RY9T(16),\n" " RY9U(18)[31],RY9W(16),RZ0,RZ8,RZ8H(18)[31],RZ8I(18)[31],RZ8O(18)[31],\n" " RZ8P(18)[31],RZ8S(16),RZ8T(16),RZ8U(18)[31],RZ8V(18)[31],RZ8Y(18)[31],\n" " RZ8Z(18)[31],RZ9,RZ9I(18)[31],RZ9M(17),RZ9P(18)[31],RZ9S(16),RZ9T(16),\n" " RZ9U(18)[31],RZ9W(16),U0,U8,U8H(18)[31],U8I(18)[31],U8O(18)[31],U8P(18)[31],\n" " U8S(16),U8T(16),U8U(18)[31],U8V(18)[31],U8Y(18)[31],U8Z(18)[31],U9,U9I(18)[31],\n" " U9M(17),U9P(18)[31],U9S(16),U9T(16),U9U(18)[31],U9W(16),UA0,UA8,UA8H(18)[31],\n" " UA8I(18)[31],UA8O(18)[31],UA8P(18)[31],UA8S(16),UA8T(16),UA8U(18)[31],\n" " UA8V(18)[31],UA8Y(18)[31],UA8Z(18)[31],UA9,UA9I(18)[31],UA9M(17),UA9P(18)[31],\n" " UA9S(16),UA9T(16),UA9U(18)[31],UA9W(16),UB0,UB8,UB8H(18)[31],UB8I(18)[31],\n" " UB8O(18)[31],UB8P(18)[31],UB8S(16),UB8T(16),UB8U(18)[31],UB8V(18)[31],\n" " UB8Y(18)[31],UB8Z(18)[31],UB9,UB9I(18)[31],UB9M(17),UB9P(18)[31],UB9S(16),\n" " UB9T(16),UB9U(18)[31],UB9W(16),UC0,UC8,UC8H(18)[31],UC8I(18)[31],UC8O(18)[31],\n" " UC8P(18)[31],UC8S(16),UC8T(16),UC8U(18)[31],UC8V(18)[31],UC8Y(18)[31],\n" " UC8Z(18)[31],UC9,UC9I(18)[31],UC9M(17),UC9P(18)[31],UC9S(16),UC9T(16),\n" " UC9U(18)[31],UC9W(16),UD0,UD8,UD8H(18)[31],UD8I(18)[31],UD8O(18)[31],\n" " UD8P(18)[31],UD8S(16),UD8T(16),UD8U(18)[31],UD8V(18)[31],UD8Y(18)[31],\n" " UD8Z(18)[31],UD9,UD9I(18)[31],UD9M(17),UD9P(18)[31],UD9S(16),UD9T(16),\n" " UD9U(18)[31],UD9W(16),UE0,UE8,UE8H(18)[31],UE8I(18)[31],UE8O(18)[31],\n" " UE8P(18)[31],UE8S(16),UE8T(16),UE8U(18)[31],UE8V(18)[31],UE8Y(18)[31],\n" " UE8Z(18)[31],UE9,UE9I(18)[31],UE9M(17),UE9P(18)[31],UE9S(16),UE9T(16),\n" " UE9U(18)[31],UE9W(16),UF0,UF8,UF8H(18)[31],UF8I(18)[31],UF8O(18)[31],\n" " UF8P(18)[31],UF8S(16),UF8T(16),UF8U(18)[31],UF8V(18)[31],UF8Y(18)[31],\n" " UF8Z(18)[31],UF9,UF9I(18)[31],UF9M(17),UF9P(18)[31],UF9S(16),UF9T(16),\n" " UF9U(18)[31],UF9W(16),UG0,UG8,UG8H(18)[31],UG8I(18)[31],UG8O(18)[31],\n" " UG8P(18)[31],UG8S(16),UG8T(16),UG8U(18)[31],UG8V(18)[31],UG8Y(18)[31],\n" " UG8Z(18)[31],UG9,UG9I(18)[31],UG9M(17),UG9P(18)[31],UG9S(16),UG9T(16),\n" " UG9U(18)[31],UG9W(16),UH0,UH8,UH8H(18)[31],UH8I(18)[31],UH8O(18)[31],\n" " UH8P(18)[31],UH8S(16),UH8T(16),UH8U(18)[31],UH8V(18)[31],UH8Y(18)[31],\n" " UH8Z(18)[31],UH9,UH9I(18)[31],UH9M(17),UH9P(18)[31],UH9S(16),UH9T(16),\n" " UH9U(18)[31],UH9W(16),UI0,UI8,UI8H(18)[31],UI8I(18)[31],UI8O(18)[31],\n" " UI8P(18)[31],UI8S(16),UI8T(16),UI8U(18)[31],UI8V(18)[31],UI8Y(18)[31],\n" " UI8Z(18)[31],UI9,UI9I(18)[31],UI9M(17),UI9P(18)[31],UI9S(16),UI9T(16),\n" " UI9U(18)[31],UI9W(16),=R35NP,=R3F/9,=R9HQ(17)[30],=RW4AA/9[21],=UE60QA(19)[23];\n" "Uzbekistan: 17: 30: AS: 41.20: -69.30: -5.0: UK:\n" " UJ,UK,UL,UM;\n" "Kazakhstan: 17: 30: AS: 43.30: -76.90: -5.0: UN:\n" " UN,UO,UP,UQ;\n" "Ukraine: 16: 29: EU: 50.40: -30.50: -2.0: UR:\n" " EM,EN,EO,U5,UR,US,UT,UU,UV,UW,UX,UY,UZ,=UR2XO/WAP,=UR5KCC/WAP,=UR5KGG/WAP,\n" " =UR8LV/WAP,=UT1KY/WAP,=UT7UA/WAP;\n" "Antigua & Barbuda: 08: 11: NA: 17.10: 61.80: 4.0: V2:\n" " V2;\n" "Belize: 07: 11: NA: 17.30: 88.80: 6.0: V3:\n" " V3;\n" "St. Kitts & Nevis: 08: 11: NA: 17.30: 62.60: 4.0: V4:\n" " V4;\n" "Namibia: 38: 57: AF: -22.60: -17.10: -1.0: V5:\n" " V5;\n" "Fed. Sts. of Micronesia: 27: 65: OC: 6.90: -158.30: -10.0: V6:\n" " V6;\n" "Marshall Islands: 31: 65: OC: 9.10: -167.30: -12.0: V7:\n" " V7;\n" "Brunei: 28: 54: OC: 4.90: -114.90: -8.0: V8:\n" " V8;\n" "Canada: 05: 09: NA: 45.00: 80.00: 4.0: VE:\n" " CF,CG,CH1(5)[9],CH2(2)[9],CI0(2)[4],CI1(1)[2],CI2(5)[9],CJ,CK,CY1(5)[9],\n" " CY2(2)[9],CZ0(2)[4],CZ1(1)[2],CZ2(5)[9],VA,VB,VC,VD1(5)[9],VD2(2)[9],VE,\n" " VF0(2)[4],VF1(1)[2],VF2(5)[9],VG,VO1(5)[9],VO2(2)[9],VX,VY0(2)[4],\n" " VY1(1)[2],VY2(5)[9],XJ1(5)[9],XJ2(2)[9],XK0(2)[4],XK1(1)[2],XK2(5)[9],XL,\n" " XM,XN1(5)[9],XN2(2)[9],XO0(2)[4],XO1(1)[2],XO2(5)[9],=CY2ZT/2(5),\n" " =K3FMQ/VE2(2),=KD3RF/VE2(2),=KD3TB/VE2(2),=VA2BY(2),=VA2CT(2),=VA2DO(2),\n" " =VA2DXE(2),=VA2KCE(2),=VA2RHJ(2),=VA2UA(2),=VA2VFT(2),=VA2ZM(2),\n" " =VA3NA/2(2),=VB2C(2),=VB2R(2),=VB2V(2),=VC2A(2),=VC2C(2),=VE2/K3FMQ(2),\n" " =VE2AE(2),=VE2AG(2),=VE2AOF(2),=VE2AQS(2),=VE2AS(2),=VE2BQB(2),=VE2CSI(2),\n" " =VE2CVI(2),=VE2DMG(2),=VE2DS(2),=VE2DWU(2),=VE2DXY(2),=VE2DYW(2),\n" " =VE2DYX(2),=VE2EAK(2),=VE2EDL(2),=VE2EDX(2),=VE2ELL(2),=VE2ENB(2),\n" " =VE2END(2),=VE2ENR(2),=VE2ERU(2),=VE2FCV(2),=VE2GSA(2),=VE2GSO(2),\n" " =VE2III(2),=VE2IM(2),=VE2KK(2),=VE2MTA(2),=VE2MTB(2),=VE2NN(2),=VE2NRK(2),\n" " =VE2PR(2),=VE2QRZ(2),=VE2RB(2),=VE2TVU(2),=VE2UA(2),=VE2VH(2),=VE2WDX(2),\n" " =VE2WT(2),=VE2XAA/2(2),=VE2XY(2),=VE2YM(2),=VE2Z(2),=VE2ZC(5),=VE2ZM(5),\n" " =VE2ZV(5),=VE3EY/2(2),=VE3NE/2(2),=VE3RHJ/2(2),=VE8AJ(2),=VE8PW(2),\n" " =VE8RCS(2),=VER20100415,=VY0AA(4)[3],=VY0PW(4)[3],=VY2MGY/3(4)[4],\n" " =XM3NE/2(2);\n" "Australia: 30: 59: OC: -22.00: -135.00: -10.0: VK:\n" " AX,VH,VI,VJ,VK,VL,VM,VN,VZ;\n" "Heard Island: 39: 68: AF: -53.00: -73.40: -5.0: VK0H:\n" " =VK0HI,=VK0IR;\n" "Macquarie Island: 30: 60: OC: -54.70: -158.80: -10.0: VK0M:\n" " AX0M,VH0M,VI0M,VJ0M,VK0M,VL0M,VM0M,VN0M,VZ0M;\n" "Cocos-Keeling: 29: 54: OC: -12.20: -96.80: -6.5: VK9C:\n" " AX9C,AX9Y,VH9C,VH9Y,VI9C,VI9Y,VJ9C,VJ9Y,VK9C,VK9FC,VK9KC,VK9KY,VK9Y,VL9C,\n" " VL9Y,VM9C,VM9Y,VN9C,VN9Y,VZ9C,VZ9Y,=VK9AA;\n" "Lord Howe Island: 30: 60: OC: -31.60: -159.10: -10.5: VK9L:\n" " AX9L,VH9L,VI9L,VJ9L,VK9AL,VK9CL,VK9FL,VK9GL,VK9KL,VK9L,VL9L,VM9L,VN9L,\n" " VZ9L;\n" "Mellish Reef: 30: 56: OC: -17.60: -155.80: -10.0: VK9M:\n" " AX9M,VH9M,VI9M,VJ9M,VK9FM,VK9KM,VK9M,VL9M,VM9M,VN9M,VZ9M;\n" "Norfolk Island: 32: 60: OC: -29.00: -168.00: -11.5: VK9N:\n" " AX9,VH9,VI9,VJ9,VK9,VK9CN,VL9,VM9,VN9,VZ9;\n" "Willis Island: 30: 55: OC: -16.20: -150.00: -10.0: VK9W:\n" " AX9W,VH9W,VI9W,VJ9W,VK9FW,VK9KW,VK9W,VL9W,VM9W,VN9W,VZ9W;\n" "Christmas Island: 29: 54: OC: -10.50: -105.70: -7.0: VK9X:\n" " AX9X,VH9X,VI9X,VJ9X,VK9FX,VK9KX,VK9X,VL9X,VM9X,VN9X,VZ9X;\n" "Anguilla: 08: 11: NA: 18.30: 63.00: 4.0: VP2E:\n" " VP2E;\n" "Montserrat: 08: 11: NA: 16.80: 62.20: 4.0: VP2M:\n" " VP2M;\n" "British Virgin Islands: 08: 11: NA: 18.40: 64.60: 4.0: VP2V:\n" " VP2V;\n" "Turks & Caicos: 08: 11: NA: 21.80: 72.40: 5.0: VP5:\n" " VP5,VQ5;\n" "Pitcairn Island: 32: 63: OC: -25.10: 130.10: 8.0: VP6:\n" " VP6;\n" "Ducie Island: 32: 63: OC: -24.67: 124.79: 8.0: VP6/d:\n" " =VP6DX;\n" "Falkland Islands: 13: 16: SA: -51.70: 57.90: 4.0: VP8:\n" " VP8;\n" "South Georgia: 13: 73: SA: -54.30: 36.80: 2.0: VP8/g:\n" " =VP8DIF;\n" "South Shetland: 13: 73: SA: -62.00: 58.30: 4.0: VP8/h:\n" " CE9,=DT8A,=HF0POL,=HL8KSJ,=LU1ZC,=LZ0A,=R1ANF;\n" "South Orkney: 13: 73: SA: -60.00: 45.50: 3.0: VP8/o:\n" " =AY1ZA,=LU1ZA;\n" "South Sandwich: 13: 73: SA: -57.00: 26.70: 2.0: VP8/s:\n" " =VP8THU;\n" "Bermuda: 05: 11: NA: 32.30: 64.70: 4.0: VP9:\n" " VP9;\n" "Chagos Islands: 39: 41: AF: -7.30: -72.40: -6.0: VQ9:\n" " VQ9;\n" "Hong Kong: 24: 44: AS: 22.30: -114.30: -8.0: VR:\n" " VR;\n" "India: 22: 41: AS: 22.00: -80.00: -5.5: VU:\n" " 8T,8U,8V,8W,8X,8Y,AT,AU,AV,AW,VT,VU,VV,VW;\n" "Andaman/Nicobar Islands: 26: 49: AS: 11.70: -92.80: -5.5: VU4:\n" " VU4;\n" "Lakshadweep: 22: 41: AS: 10.00: -73.00: -5.5: VU7:\n" " VU7;\n" "Mexico: 06: 10: NA: 19.40: 99.10: 6.0: XE:\n" " 4A,4B,4C,6D,6E,6F,6G,6H,6I,6J,XA,XB,XC,XD,XE,XF,XG,XH,XI;\n" "Revilla Gigedo: 06: 10: NA: 19.00: 111.50: 7.0: XF4:\n" " 4A4,4B4,4C4,6D4,6E4,6F4,6G4,6H4,6I4,6J4,XA4,XB4,XC4,XD4,XE4,XF4,XG4,XH4,\n" " XI4;\n" "Burkina Faso: 35: 46: AF: 12.40: 1.60: 0.0: XT:\n" " XT;\n" "Kampuchea: 26: 49: AS: 11.70: -104.80: -7.0: XU:\n" " XU;\n" "Laos: 26: 49: AS: 18.00: -102.60: -7.0: XW:\n" " XW;\n" "Macau: 24: 44: AS: 22.20: -113.60: -8.0: XX9:\n" " XX9;\n" "Myanmar: 26: 49: AS: 16.80: -96.00: -6.5: XZ:\n" " 1Z,XY,XZ;\n" "Afghanistan: 21: 40: AS: 34.40: -69.20: -4.5: YA:\n" " T6,YA;\n" "Indonesia: 28: 54: OC: -6.20: -106.80: -7.0: YB:\n" " 7A,7B,7C,7D,7E,7F,7G,7H,7I,8A,8B,8C,8D,8E,8F,8G,8H,8I,JZ,PK,PL,PM,PN,PO,\n" " YB,YC,YD,YE,YF,YG,YH;\n" "Iraq: 21: 39: AS: 33.00: -44.50: -3.0: YI:\n" " HN,YI;\n" "Vanuatu: 32: 56: OC: -17.70: -168.30: -11.0: YJ:\n" " YJ;\n" "Syria: 20: 39: AS: 33.50: -36.30: -2.0: YK:\n" " 6C,YK;\n" "Latvia: 15: 29: EU: 57.00: -24.10: -2.0: YL:\n" " YL;\n" "Nicaragua: 07: 11: NA: 12.00: 86.00: 6.0: YN:\n" " H6,H7,HT,YN;\n" "Romania: 20: 28: EU: 44.40: -26.10: -2.0: YO:\n" " YO,YP,YQ,YR;\n" "El Salvador: 07: 11: NA: 13.70: 89.20: 6.0: YS:\n" " HU,YS;\n" "Serbia: 15: 28: EU: 44.90: -20.50: -1.0: YU:\n" " 4N,YT,YU;\n" "Kosova: 15: 28: EU: 42.70: -21.20: -1.0: *YU8:\n" " =YU8/HB9BF;\n" "Venezuela: 09: 12: SA: 10.50: 67.00: 4.5: YV:\n" " 4M,YV,YW,YX,YY;\n" "Aves Island: 08: 11: NA: 15.70: 63.70: 4.0: YV0:\n" " 4M0,YV0,YW0,YX0,YY0;\n" "Zimbabwe: 38: 53: AF: -17.80: -31.00: -2.0: Z2:\n" " Z2;\n" "Macedonia: 15: 28: EU: 41.80: -21.40: -1.0: Z3:\n" " Z3;\n" "Albania: 15: 28: EU: 41.30: -19.80: -1.0: ZA:\n" " ZA;\n" "Gibraltar: 14: 37: EU: 36.10: 5.40: -1.0: ZB:\n" " ZB,ZG;\n" "UK Bases on Cyprus: 20: 39: AS: 34.60: -33.00: -2.0: ZC4:\n" " ZC4;\n" "Saint Helena: 36: 66: AF: -16.00: 5.90: 0.0: ZD7:\n" " ZD7;\n" "Ascension Island: 36: 66: AF: -8.00: 14.40: 0.0: ZD8:\n" " ZD8;\n" "Tristan da Cunha: 38: 66: AF: -37.10: 12.30: 0.0: ZD9:\n" " ZD9;\n" "Cayman Islands: 08: 11: NA: 19.50: 81.20: 5.0: ZF:\n" " ZF;\n" "Niue: 32: 62: OC: -19.00: 169.90: 11.0: ZK2:\n" " ZK2;\n" "Tokelau: 31: 62: OC: -8.40: 172.70: 10.0: ZK3:\n" " ZK3;\n" "New Zealand: 32: 60: OC: -36.90: -174.80: -12.0: ZL:\n" " ZK,ZL,ZM;\n" "Chatham Islands: 32: 60: OC: -44.00: 176.50: -12.75: ZL7:\n" " ZL7,ZM7;\n" "Kermadec Islands: 32: 60: OC: -30.00: 177.90: -12.0: ZL8:\n" " ZL8,ZM8;\n" "Auckland & Campbell: 32: 60: OC: -50.70: -166.50: -12.0: ZL9:\n" " ZL9,ZM9;\n" "Paraguay: 11: 14: SA: -25.30: 57.70: 4.0: ZP:\n" " ZP;\n" "South Africa: 38: 57: AF: -26.20: -28.10: -2.0: ZS:\n" " H5,S4,S8,V9,ZR,ZS,ZT,ZU;\n" "Marion Island: 38: 57: AF: -46.80: -37.80: -3.0: ZS8:\n" " ZR8,ZS8,ZT8,ZU8;\n" ; const char txt_master[65525] = "#\n" "# RELEASE 2010.08.09.00\n" "# by Bob Raymond, WA1Z\n" "#\n" "2E0AOZ\n" "2E0BFJ\n" "2E0BMG\n" "2E0BPP\n" "2E0BVP\n" "2E0CNL\n" "2E0CPT\n" "2E0CRD\n" "2E0CTT\n" "2E0CVN\n" "2E0DBD/P\n" "2E0DYM\n" "2E0EMF\n" "2E0FFQ\n" "2E0FPC\n" "2E0FSR\n" "2E0GMW\n" "2E0GVG\n" "2E0HEP\n" "2E0HOQ\n" "2E0HQD\n" "2E0HTS\n" "2E0IIM\n" "2E0IJK\n" "2E0IMS\n" "2E0IMT\n" "2E0IMW\n" "2E0IXC\n" "2E0JKD\n" "2E0JWW\n" "2E0JYK\n" "2E0KGV/P\n" "2E0KIM\n" "2E0KLD\n" "2E0KYI\n" "2E0LIB\n" "2E0LMA\n" "2E0LMG\n" "2E0LPA\n" "2E0LSB\n" "2E0MAS\n" "2E0MCA\n" "2E0MMI\n" "2E0NJC\n" "2E0NKC\n" "2E0NOC\n" "2E0OCC\n" "2E0PLA\n" "2E0PSW\n" "2E0RAK\n" "2E0RCM\n" "2E0RCV\n" "2E0RFS\n" "2E0RJM\n" "2E0RKY\n" "2E0RUS\n" "2E0SFC\n" "2E0SMJ\n" "2E0SPF\n" "2E0SQL\n" "2E0TAD\n" "2E0TAL\n" "2E0TGS\n" "2E0TJU\n" "2E0TQR\n" "2E0UNN\n" "2E0VDS\n" "2E0WAW\n" "2E0WDS\n" "2E0WDX\n" "2E0WHG\n" "2E0WMG/P\n" "2E0WPX\n" "2E0XIK\n" "2E0XIS\n" "2E0YQC\n" "2E0ZIG\n" "2E0ZWW\n" "2E1AXL\n" "2E1DFI\n" "2E1FVS\n" "2E1OKT\n" "2I0BIW\n" "2I0BSA\n" "2I0FLO\n" "2I0MVP\n" "2I0SAI\n" "2J0RZD\n" "2M0BGT\n" "2M0FSF\n" "2M0GOV\n" "2M0IVG\n" "2M0KLL\n" "2M0KPE\n" "2M0WMJ\n" "2M0XAT\n" "2U0ARE\n" "2W0IJL\n" "2W0XTP\n" "2W0ZAE\n" "2W0ZJA\n" "3A2MD\n" "3A2MG\n" "3A2MW\n" "3B8GT\n" "3D2KJ\n" "3D2MJ\n" "3DA0DJ\n" "3DA0WW\n" "3G1C\n" "3G1X\n" "3G3V\n" "3V3S\n" "3V8BB\n" "3V8CB\n" "3V8HQ\n" "3V8SF\n" "3V8SS\n" "3V8ST\n" "3V9A\n" "3W1M\n" "3W3W\n" "3X5A\n" "3XY6D\n" "3Z30C\n" "3Z40KP\n" "3Z50KPN\n" "3Z70RG\n" "3Z80PZK\n" "3Z8Z\n" "3Z90PR\n" "3Z9CESJ\n" "3Z9TA\n" "41N14O\n" "4A1B\n" "4A1DXXE\n" "4A2S\n" "4B1EE\n" "4B1KK\n" "4B2AU\n" "4B2S\n" "4B2WK\n" "4D1N\n" "4F1AL\n" "4H1T\n" "4H9RG\n" "4J3M\n" "4J5A\n" "4J7WMF\n" "4J9M\n" "4K0CW\n" "4K3K\n" "4K4K\n" "4K6FO\n" "4K8M\n" "4K9W\n" "4L0A\n" "4L0HQ\n" "4L1BR\n" "4L1FP\n" "4L1MA\n" "4L1UN\n" "4L2M\n" "4L3A\n" "4L3Y\n" "4L4CC\n" "4L6DL\n" "4L6QC\n" "4L7O\n" "4L8A\n" "4L9QQ\n" "4M1F\n" "4M1M\n" "4M4C\n" "4M4V\n" "4M5DX\n" "4M5IR\n" "4M5RY\n" "4O1OTA\n" "4O3A\n" "4O3RR\n" "4O3TT\n" "4O3Z\n" "4O4A\n" "4O7A\n" "4O8A\n" "4S7EA\n" "4S7NE\n" "4U10NPT\n" "4U1ITU\n" "4U1UN\n" "4U1VIC\n" "4U1WB\n" "4U30VIC\n" "4V4JR\n" "4X0A\n" "4X0B\n" "4X0C\n" "4X0G\n" "4X0T\n" "4X0V\n" "4X1AS\n" "4X1DF\n" "4X1IM\n" "4X1VF\n" "4X2M\n" "4X3HQ\n" "4X4DK\n" "4X4DZ\n" "4X4FC\n" "4X4FR\n" "4X4JU\n" "4X4PG\n" "4X4WN\n" "4X6DK\n" "4X6FK\n" "4X6FR\n" "4X6FU\n" "4X6KA\n" "4X6TF\n" "4X6UU\n" "4X6ZK\n" "4X6ZM\n" "4X6ZQ\n" "4Z1UF\n" "4Z4DX\n" "4Z4KX\n" "4Z4OQ\n" "4Z4TJ\n" "4Z4TL\n" "4Z4UT\n" "4Z4WR\n" "4Z5AD\n" "4Z5AY\n" "4Z5CP\n" "4Z5CX\n" "4Z5FI\n" "4Z5IW\n" "4Z5J\n" "4Z5JU\n" "4Z5KO\n" "4Z5KZ\n" "4Z5LA\n" "4Z5LU\n" "4Z5LX\n" "4Z5LZ\n" "4Z5ML\n" "4Z5MU\n" "4Z5MV\n" "4Z5MY\n" "4Z5OZ\n" "4Z5PJ\n" "4Z5PS\n" "4Z5QQ\n" "4Z5ST\n" "4Z5TA\n" "4Z5TK\n" "4Z5UN\n" "4Z8BB\n" "4Z8DT\n" "5B/AJ2O\n" "5B/G3RXQ\n" "5B/G4IRN\n" "5B/HA5PP\n" "5B/HG3IPA\n" "5B/KC2TIZ\n" "5B/US8ITL\n" "5B/UT0U\n" "5B/W2TAA\n" "5B4AGM\n" "5B4AGN\n" "5B4AHJ\n" "5B4AIA\n" "5B4AIF\n" "5B4AII\n" "5B4AIX\n" "5B4AIZ\n" "5B4KH\n" "5B4XF\n" "5B4ZN\n" "5B8AD\n" "5C2P\n" "5C5T\n" "5C5W\n" "5D0IPY\n" "5D5A\n" "5H1HS\n" "5H2WK\n" "5H3EE\n" "5J1A\n" "5K0CW\n" "5K0T\n" "5N0HQ\n" "5N0OCH\n" "5N3CPR\n" "5N7M\n" "5P0O\n" "5P2A\n" "5P3WW\n" "5P5CW\n" "5P5N\n" "5P5X\n" "5P9X\n" "5Q1A\n" "5Q2J\n" "5Q2T\n" "5Q8A\n" "5R8FU\n" "5R8KD\n" "5R8ZO\n" "5U5U\n" "5W0KH\n" "5W0OU\n" "5W0YA\n" "5X1AB\n" "5X1NH\n" "5X4X\n" "5Z4/DL8NBE\n" "5Z4/RW1AU\n" "5Z4JC\n" "6K2CFI\n" "6K2DFG\n" "6K2DIO\n" "6K2EJJ\n" "6K2FDL\n" "6K2GCW\n" "6K2GDT\n" "6K5AQY\n" "6K5AYC\n" "6K5BHZ\n" "6K5BLW\n" "6K5BUI\n" "6K5BXQ\n" "6K5XQE\n" "6K5YHX\n" "6L0NJ\n" "6M0HZ\n" "6M0HZ/2\n" "6M0MM\n" "6V7E\n" "6V7M\n" "6V7N\n" "6V7Q\n" "6V7V\n" "6W/DL2RMC\n" "6W/PA3EWP\n" "6W1RW\n" "6W1RY\n" "6W1SE\n" "6W1SJ\n" "6W2SC\n" "6W7RV\n" "6Y0FF\n" "6Y1LZ\n" "6Y1V\n" "6Y1X\n" "6Y5CR\n" "6Y5IC\n" "6Y5JH\n" "6Y5WJ\n" "6Y7J\n" "6Y9V\n" "7J1AAI\n" "7J1ABD\n" "7J1AQH\n" "7J1BBC\n" "7J1YAJ\n" "7J2YAF\n" "7J4AAL\n" "7J7ACT\n" "7J9AAD\n" "7K1CPT\n" "7K1DEE\n" "7K1EQG\n" "7K1MAG\n" "7K1PTO\n" "7K1PTT\n" "7K1SGX\n" "7K2GMJ\n" "7K3BKZ\n" "7K3PCI\n" "7K3QPL\n" "7K4DHB\n" "7K4GUR\n" "7K4NBV\n" "7K4PTY\n" "7K4QOK\n" "7K4TSM\n" "7K4XNN\n" "7L1FFH\n" "7L1JHN\n" "7L1QWK\n" "7L1WII\n" "7L2OHM\n" "7L2PDJ\n" "7L2QXT/3\n" "7L3DGP\n" "7L3KJV\n" "7L3LYK\n" "7L4IOU\n" "7M1MCT\n" "7M1MCU\n" "7M2ALP\n" "7M2PSC\n" "7M3IYU\n" "7M3QQP/1\n" "7M4CDX\n" "7M4HXF\n" "7N1PRD/0\n" "7N2CQN\n" "7N2DAB\n" "7N2JNN\n" "7N2JZT\n" "7N2SPK\n" "7N2TCB\n" "7N2TCF\n" "7N2TNI\n" "7N2TRM\n" "7N2UQC\n" "7N4AVW\n" "7N4CLI\n" "7N4CPT\n" "7N4KDU\n" "7N4LHJ\n" "7N4MXU\n" "7N4NGR\n" "7N4NIK\n" "7N4NQR\n" "7N4QCQ\n" "7N4QID\n" "7N4WPY\n" "7N4WZI\n" "7N4XAL\n" "7Q7BP\n" "7S0X\n" "7S2E\n" "7S3A\n" "7S3F\n" "7S4B\n" "7S5C\n" "7S5Q\n" "7S5S\n" "7S7V\n" "7X0RY\n" "7Z1CQ\n" "7Z1HB\n" "7Z1HL\n" "7Z1SJ\n" "7Z1TT\n" "8J1ASAHI/1\n" "8J1AXA/1\n" "8J1ITU\n" "8J1YDXC\n" "8J4P\n" "8J7SK\n" "8N1HQ\n" "8N1Y\n" "8N3HQ\n" "8N4HQ\n" "8N5A\n" "8N8HQ\n" "8P0P\n" "8P3A\n" "8P5A\n" "8P6AW\n" "8P6BX\n" "8P6ER\n" "8P6EX\n" "8P6JD\n" "8P9FW\n" "8P9NX\n" "8P9PB\n" "8P9SS\n" "8Q7DV\n" "8Q7SC\n" "8S0A\n" "8S0C\n" "8S0C/5\n" "8S0W\n" "8S4S\n" "8S5W\n" "8S5X\n" "8S6E\n" "9A/AC6DD\n" "9A/DL1DVP\n" "9A/DL2RBB\n" "9A/DL3VTA\n" "9A/E73T\n" "9A/E75DX\n" "9A/OM2FY\n" "9A/OM8A\n" "9A/S50R\n" "9A/S51DX\n" "9A/S53AU/P\n" "9A/VE3ZIK\n" "9A09P\n" "9A0AA\n" "9A0HQ\n" "9A0M\n" "9A0W\n" "9A1A\n" "9A1AA\n" "9A1ACD\n" "9A1BM\n" "9A1CAL\n" "9A1CCB\n" "9A1CCY\n" "9A1CDO\n" "9A1CFN\n" "9A1CFR\n" "9A1CIG\n" "9A1CKL\n" "9A1CMA\n" "9A1CMS\n" "9A1CVG\n" "9A1DL\n" "9A1HDE\n" "9A1MB\n" "9A1MM\n" "9A1O\n" "9A1P\n" "9A1UN\n" "9A1VZD\n" "9A1ZZ\n" "9A2AA\n" "9A2AJ\n" "9A2BD\n" "9A2BW\n" "9A2CD\n" "9A2CW\n" "9A2CY\n" "9A2D\n" "9A2DI\n" "9A2DQ\n" "9A2DS\n" "9A2EA\n" "9A2EU\n" "9A2EY\n" "9A2F\n" "9A2FW\n" "9A2GA\n" "9A2GF\n" "9A2GW\n" "9A2HQ\n" "9A2JG\n" "9A2JH\n" "9A2JK\n" "9A2KD\n" "9A2L\n" "9A2LM\n" "9A2MF\n" "9A2N\n" "9A2NA\n" "9A2NO\n" "9A2NY\n" "9A2OU\n" "9A2QF\n" "9A2QF/P\n" "9A2R\n" "9A2RD\n" "9A2SY\n" "9A2TD\n" "9A2TN\n" "9A2U\n" "9A2UA\n" "9A2UU\n" "9A2VJ\n" "9A2VQ\n" "9A2VR\n" "9A2WJ\n" "9A2WT\n" "9A2X\n" "9A2Y\n" "9A2YM\n" "9A2Z\n" "9A2ZR\n" "9A3AAX\n" "9A3AG\n" "9A3AGS\n" "9A3ALD\n" "9A3ARN\n" "9A3B\n" "9A3CCB\n" "9A3CNN\n" "9A3DF\n" "9A3FY\n" "9A3GA\n" "9A3GI\n" "9A3GL\n" "9A3GS\n" "9A3IH\n" "9A3IJ\n" "9A3IV\n" "9A3IW\n" "9A3JB\n" "9A3KS\n" "9A3LE\n" "9A3MA\n" "9A3MJ\n" "9A3ML\n" "9A3MN\n" "9A3MR\n" "9A3ND\n" "9A3OS\n" "9A3QB\n" "9A3SM\n" "9A3ST\n" "9A3TA\n" "9A3TN\n" "9A3TR\n" "9A3TU\n" "9A3VM\n" "9A3W/P\n" "9A3WX\n" "9A3XV\n" "9A3Y\n" "9A3ZC\n" "9A3ZI\n" "9A4A\n" "9A4AA\n" "9A4BA\n" "9A4BB\n" "9A4BL\n" "9A4BT\n" "9A4C\n" "9A4D\n" "9A4GM\n" "9A4J\n" "9A4KW\n" "9A4M\n" "9A4MF\n" "9A4QV\n" "9A4SS\n" "9A4TT\n" "9A4U\n" "9A4VM\n" "9A4W\n" "9A4WW\n" "9A4WY\n" "9A4ZZ\n" "9A4ZZ/P\n" "9A50KDE\n" "9A5AMC\n" "9A5AMG\n" "9A5AN\n" "9A5ANB\n" "9A5AX\n" "9A5BB\n" "9A5BDA\n" "9A5BS\n" "9A5BTP\n" "9A5CW\n" "9A5CY\n" "9A5D\n" "9A5DU\n" "9A5E\n" "9A5K\n" "9A5MT\n" "9A5PV\n" "9A5RJ\n" "9A5SM\n" "9A5ST\n" "9A5V\n" "9A5W\n" "9A5X\n" "9A5Y\n" "9A5ZM\n" "9A5ZP\n" "9A6A\n" "9A6AKD\n" "9A6AR\n" "9A6B\n" "9A6C\n" "9A6D\n" "9A6GWQ\n" "9A6ILI\n" "9A6K\n" "9A6KTB\n" "9A6M\n" "9A6NDD\n" "9A6NDH\n" "9A6NNS\n" "9A6R\n" "9A6SJU\n" "9A6Z\n" "9A6ZT\n" "9A7A\n" "9A7B\n" "9A7BDJ\n" "9A7D\n" "9A7IMR\n" "9A7IUP\n" "9A7KDT\n" "9A7KJI\n" "9A7P\n" "9A7R\n" "9A7T\n" "9A7V\n" "9A7W\n" "9A7WA\n" "9A7YY\n" "9A800VZ\n" "9A8A\n" "9A8AW\n" "9A8M\n" "9A8MM\n" "9A8W\n" "9A8WW\n" "9A9A\n" "9A9DR\n" "9A9L\n" "9A9R\n" "9A9SF\n" "9A9XX\n" "9A9YY\n" "9G5XA\n" "9G5ZZ\n" "9H1CG\n" "9H1DE\n" "9H1NB\n" "9H1SP\n" "9H1XT\n" "9H3HH\n" "9H3TX\n" "9J2BO\n" "9J3A\n" "9K/K6PAU\n" "9K2/SP4R\n" "9K2CQ\n" "9K2HN\n" "9K2K\n" "9K2MU\n" "9K2RA\n" "9K2YM\n" "9K9HQ\n" "9L0W\n" "9L1BTB\n" "9L5A\n" "9M2AX\n" "9M2CCO\n" "9M2CNC\n" "9M2CQC\n" "9M2IDJ\n" "9M2JKL\n" "9M2MRS\n" "9M2MT\n" "9M2NNM\n" "9M2TO\n" "9M4DXX\n" "9M6BG\n" "9M6BOB\n" "9M6BRC\n" "9M6LSC\n" "9M6NA\n" "9M6XRO\n" "9M6YBG\n" "9M8YY\n" "9M8Z\n" "9Q1EK\n" "9V1DE\n" "9V1PC\n" "9V1QQ\n" "9V1RH\n" "9V1UV\n" "9V1YC\n" "9W2NTO\n" "9Y/DL2DBE\n" "9Y4/DF8AN\n" "9Y4D\n" "9Y4HQ\n" "9Y4LDK\n" "9Y4VU\n" "9Y4W\n" "9Z4CP\n" "9Z4CT\n" "A25NW\n" "A31A\n" "A31KK\n" "A35A\n" "A35KL\n" "A35RK/P\n" "A41MX\n" "A41OR\n" "A45WG\n" "A45XR\n" "A47RS\n" "A61AB\n" "A61BK\n" "A61C\n" "A61KM\n" "A61M\n" "A61NA\n" "A61OO\n" "A62A\n" "A65BD\n" "A65BM\n" "A65BP\n" "A65CA\n" "A65DLH\n" "A7/M0FGA\n" "A71A\n" "A71BU\n" "A71BX\n" "A71CT\n" "A71CV\n" "A71EM\n" "A71FJ\n" "A73A\n" "A92GE\n" "A92GR\n" "AA0A\n" "AA0AW\n" "AA0BQ\n" "AA0CL\n" "AA0CX\n" "AA0DW\n" "AA0MZ\n" "AA0N\n" "AA0NK\n" "AA0QZ\n" "AA0RS\n" "AA0YY\n" "AA1AR\n" "AA1AR/4\n" "AA1BU\n" "AA1CA\n" "AA1DS\n" "AA1E\n" "AA1JD\n" "AA1JM\n" "AA1K\n" "AA1KS\n" "AA1LL\n" "AA1M\n" "AA1ME\n" "AA1O\n" "AA1ON\n" "AA1QD\n" "AA1QN\n" "AA1SB\n" "AA1SU\n" "AA1TR\n" "AA1V\n" "AA1VA\n" "AA1VT\n" "AA1VX\n" "AA1XV\n" "AA1YD\n" "AA1ZT\n" "AA2AD\n" "AA2DC\n" "AA2DR\n" "AA2DS\n" "AA2F\n" "AA2GS\n" "AA2IZ\n" "AA2JZ\n" "AA2KD\n" "AA2L\n" "AA2MF\n" "AA2MX\n" "AA2NA\n" "AA2NA/P\n" "AA2OI\n" "AA2UP\n" "AA2VK\n" "AA2WC\n" "AA2XB\n" "AA2YV\n" "AA2ZW\n" "AA3B\n" "AA3CS\n" "AA3DF\n" "AA3DW\n" "AA3E\n" "AA3I\n" "AA3II\n" "AA3JK\n" "AA3K\n" "AA3LX\n" "AA3RZ\n" "AA3S\n" "AA3SJ\n" "AA3SL\n" "AA3TH\n" "AA3TL\n" "AA3VA\n" "AA4A\n" "AA4AK\n" "AA4AK/1\n" "AA4CF\n" "AA4D\n" "AA4EA\n" "AA4FU\n" "AA4FX\n" "AA4GT\n" "AA4H\n" "AA4HV\n" "AA4II\n" "AA4KD\n" "AA4LR\n" "AA4MD\n" "AA4MJ\n" "AA4MM\n" "AA4N\n" "AA4NC\n" "AA4NU\n" "AA4Q\n" "AA4R\n" "AA4RP\n" "AA4S\n" "AA4SC\n" "AA4SD\n" "AA4U\n" "AA4UC\n" "AA4V\n" "AA4V/VP9\n" "AA4VV\n" "AA4W\n" "AA4WO\n" "AA4XA\n" "AA4XS\n" "AA4XX\n" "AA4YL\n" "AA4ZU\n" "AA4ZZ\n" "AA5AM\n" "AA5AT\n" "AA5AU\n" "AA5B\n" "AA5BE\n" "AA5BT\n" "AA5C\n" "AA5CH\n" "AA5CK\n" "AA5CO\n" "AA5EY\n" "AA5JG\n" "AA5L\n" "AA5LA\n" "AA5N\n" "AA5R/C6A\n" "AA5SH\n" "AA5TB\n" "AA5VU\n" "AA5VZ\n" "AA5X\n" "AA6AD\n" "AA6AE\n" "AA6CJ\n" "AA6DP\n" "AA6DW\n" "AA6DX\n" "AA6DY\n" "AA6E/1\n" "AA6EE\n" "AA6EV\n" "AA6G\n" "AA6IO\n" "AA6JJ\n" "AA6K\n" "AA6PW\n" "AA6RR\n" "AA6VB\n" "AA6VX\n" "AA6X\n" "AA6XV\n" "AA6XX\n" "AA6YX\n" "AA7A\n" "AA7AX\n" "AA7CP\n" "AA7CQ\n" "AA7DJ\n" "AA7DK\n" "AA7FG\n" "AA7FK\n" "AA7GS\n" "AA7IH\n" "AA7J\n" "AA7JV\n" "AA7ML\n" "AA7MN\n" "AA7MT\n" "AA7PJ\n" "AA7PM\n" "AA7RV\n" "AA7UI\n" "AA7X\n" "AA8BV\n" "AA8CH\n" "AA8DX\n" "AA8EB\n" "AA8EN\n" "AA8HH\n" "AA8HO\n" "AA8IA\n" "AA8IN\n" "AA8JL\n" "AA8L\n" "AA8LL\n" "AA8M\n" "AA8NT\n" "AA8OY\n" "AA8R\n" "AA8TK\n" "AA8UL\n" "AA8YN\n" "AA9CN\n" "AA9D\n" "AA9DA\n" "AA9DY\n" "AA9F\n" "AA9GG\n" "AA9GR\n" "AA9GZ\n" "AA9IK\n" "AA9IX\n" "AA9KH\n" "AA9L\n" "AA9LC\n" "AA9NF\n" "AA9RN\n" "AA9RR\n" "AA9RT\n" "AA9SJ\n" "AA9UF\n" "AA9VI\n" "AA9WJ\n" "AA9WS\n" "AA9ZZ\n" "AB0CD\n" "AB0DI\n" "AB0JM\n" "AB0LL\n" "AB0LR\n" "AB0OX\n" "AB0QN\n" "AB0RE\n" "AB0RX\n" "AB0S\n" "AB0TA\n" "AB0TO\n" "AB0TX\n" "AB0UK\n" "AB0VK\n" "AB0X\n" "AB0YM\n" "AB0YW\n" "AB0Z\n" "AB0ZO\n" "AB1BW\n" "AB1BX\n" "AB1CW\n" "AB1DD\n" "AB1DO\n" "AB1DZ\n" "AB1EP\n" "AB1FY\n" "AB1HD\n" "AB1HL\n" "AB1HO\n" "AB1HZ\n" "AB1J\n" "AB1JB\n" "AB1JM\n" "AB1KE\n" "AB1KW\n" "AB1U\n" "AB2DE\n" "AB2E\n" "AB2G\n" "AB2IO\n" "AB2KX\n" "AB2NI\n" "AB2NT\n" "AB2RC\n" "AB2SR\n" "AB2TC\n" "AB2TS\n" "AB2UV\n" "AB2VI\n" "AB2WW\n" "AB2XW\n" "AB2YS\n" "AB2ZI\n" "AB2ZL\n" "AB2ZT\n" "AB2ZY\n" "AB3AH\n" "AB3AI\n" "AB3AP\n" "AB3CX\n" "AB3EN\n" "AB3FH\n" "AB3FX\n" "AB3GB\n" "AB3GY\n" "AB3HP\n" "AB3IC\n" "AB4AR\n" "AB4BJ\n" "AB4DF\n" "AB4G\n" "AB4GG\n" "AB4H\n" "AB4I\n" "AB4IQ\n" "AB4JK\n" "AB4LE\n" "AB4OM\n" "AB4Q\n" "AB4RJ\n" "AB4SA\n" "AB4SF\n" "AB4SK\n" "AB4U\n" "AB4VF\n" "AB4VV\n" "AB4ZT\n" "AB5C\n" "AB5CC\n" "AB5DK\n" "AB5EU\n" "AB5GG\n" "AB5I\n" "AB5JN\n" "AB5JR\n" "AB5K\n" "AB5MM\n" "AB5NE\n" "AB5NX\n" "AB5RM\n" "AB5TY\n" "AB5WF\n" "AB5WS\n" "AB5X\n" "AB5XP\n" "AB5XZ\n" "AB5YI\n" "AB5ZA\n" "AB5ZA/7\n" "AB6CF\n" "AB6EZ\n" "AB6L\n" "AB6QM\n" "AB6QR\n" "AB6WM\n" "AB6Z\n" "AB7CB\n" "AB7E\n" "AB7FX\n" "AB7GP\n" "AB7LT\n" "AB7Q\n" "AB7R\n" "AB7RW\n" "AB7TJ\n" "AB8AL\n" "AB8BT\n" "AB8CI\n" "AB8CL\n" "AB8DD\n" "AB8DF\n" "AB8EU\n" "AB8FJ\n" "AB8IT\n" "AB8JR\n" "AB8K\n" "AB8OJ\n" "AB8PD\n" "AB8RL\n" "AB8RX\n" "AB8S\n" "AB8SA\n" "AB8SG\n" "AB8TO\n" "AB8UL\n" "AB8WI\n" "AB8XE\n" "AB8XG\n" "AB8YO\n" "AB8YY\n" "AB8YZ\n" "AB8ZX\n" "AB9AX\n" "AB9CA\n" "AB9DR\n" "AB9DU\n" "AB9H\n" "AB9HE\n" "AB9HH\n" "AB9KZ\n" "AB9LA\n" "AB9M\n" "AB9ML\n" "AB9MP\n" "AB9NH\n" "AB9OS\n" "AB9QH\n" "AB9QQ\n" "AB9QT\n" "AB9QX\n" "AB9RC\n" "AB9SJ\n" "AB9SO\n" "AB9TA\n" "AB9TE\n" "AB9TU\n" "AB9V\n" "AC0A\n" "AC0AX\n" "AC0BI\n" "AC0BR\n" "AC0BV\n" "AC0C\n" "AC0DQ\n" "AC0DS\n" "AC0E\n" "AC0GI\n" "AC0GJ\n" "AC0GQ\n" "AC0H\n" "AC0IU\n" "AC0IV\n" "AC0JX\n" "AC0KK\n" "AC0LL\n" "AC0MW\n" "AC0NB\n" "AC0OJ\n" "AC0P\n" "AC0PD\n" "AC0PJ\n" "AC0PR\n" "AC0QG\n" "AC0W\n" "AC0X\n" "AC1AA\n" "AC1J\n" "AC1L\n" "AC1O\n" "AC2AA\n" "AC2AC\n" "AC2CP\n" "AC2FM\n" "AC2K\n" "AC2N\n" "AC2T\n" "AC3C\n" "AC3D\n" "AC4AH\n" "AC4BV\n" "AC4CA\n" "AC4CA/5\n" "AC4GT\n" "AC4IK\n" "AC4M\n" "AC4MO\n" "AC4PQ\n" "AC4PY\n" "AC4S\n" "AC4TO\n" "AC4TT\n" "AC4WC\n" "AC4YD\n" "AC4ZH\n" "AC5BX\n" "AC5K\n" "AC5N\n" "AC5O\n" "AC5P\n" "AC5SW\n" "AC5ZG\n" "AC5ZS\n" "AC6DD\n" "AC6DX\n" "AC6E\n" "AC6EA\n" "AC6FU\n" "AC6HY\n" "AC6JA\n" "AC6LT\n" "AC6MV\n" "AC6N\n" "AC6NN\n" "AC6SL\n" "AC6T\n" "AC6VN\n" "AC6YY\n" "AC7A\n" "AC7AF\n" "AC7AP\n" "AC7CJ\n" "AC7FA\n" "AC7GL\n" "AC7GP\n" "AC7JM\n" "AC7JN\n" "AC7JW\n" "AC7JY\n" "AC7LK\n" "AC7MA\n" "AC7NK\n" "AC7NO\n" "AC7P\n" "AC7PN\n" "AC7T\n" "AC7UH\n" "AC7VA\n" "AC7ZG\n" "AC8AG\n" "AC8AP\n" "AC8AZ\n" "AC8BP\n" "AC8CY\n" "AC8E\n" "AC8EA\n" "AC8G\n" "AC8W\n" "AC8WV\n" "AC8Y\n" "AC9BP\n" "AC9S\n" "AC9X\n" "AD0H\n" "AD0NW\n" "AD0RB\n" "AD1B\n" "AD1C\n" "AD1DX\n" "AD1L\n" "AD1N\n" "AD2AM\n" "AD2H\n" "AD2L\n" "AD2P\n" "AD2TM\n" "AD2Z\n" "AD3J\n" "AD3PA\n" "AD4AA\n" "AD4C\n" "AD4CJ\n" "AD4EB\n" "AD4ES\n" "AD4G\n" "AD4IE\n" "AD4J\n" "AD4L\n" "AD4TJ\n" "AD4YQ\n" "AD4Z\n" "AD5A\n" "AD5C\n" "AD5CQ\n" "AD5EN\n" "AD5HR\n" "AD5HV\n" "AD5IN\n" "AD5IT\n" "AD5LU\n" "AD5MD\n" "AD5MN\n" "AD5Q\n" "AD5QB\n" "AD5ST\n" "AD5TJ\n" "AD5UQ\n" "AD5VC\n" "AD5VJ\n" "AD5WB\n" "AD5WI\n" "AD5XD\n" "AD5XM\n" "AD5YB\n" "AD5YJ\n" "AD5YU\n" "AD5ZA\n" "AD6C\n" "AD6DK\n" "AD6E\n" "AD6FR\n" "AD6GI\n" "AD6HF\n" "AD6HV\n" "AD6KA\n" "AD6KT\n" "AD6MJ\n" "AD6MT\n" "AD6OI\n" "AD6P\n" "AD6PB\n" "AD6RH\n" "AD6WL\n" "AD6Z\n" "AD6ZJ\n" "AD6ZR\n" "AD7AF\n" "AD7AJ\n" "AD7AV\n" "AD7BN\n" "AD7GL\n" "AD7GN\n" "AD7HE\n" "AD7HI\n" "AD7HK\n" "AD7J\n" "AD7JI\n" "AD7JX\n" "AD7KG\n" "AD7KI\n" "AD7L\n" "AD7LI\n" "AD7MD\n" "AD7MQ\n" "AD7OG\n" "AD7OV\n" "AD7PK\n" "AD7QL\n" "AD7RO\n" "AD7SF\n" "AD7SH\n" "AD7SI\n" "AD7T\n" "AD7UP\n" "AD7UZ\n" "AD7VH\n" "AD7XV\n" "AD7XZ\n" "AD7YT\n" "AD8B\n" "AD8C\n" "AD8D\n" "AD8J\n" "AD8L\n" "AD8P\n" "AD9H\n" "AD9P\n" "AD9V\n" "AE0G\n" "AE1C\n" "AE1N\n" "AE1P\n" "AE1T\n" "AE2AA\n" "AE2J\n" "AE2JL\n" "AE2T\n" "AE2X\n" "AE3E\n" "AE3J\n" "AE3T\n" "AE4CJ\n" "AE4CW\n" "AE4EC\n" "AE4MN\n" "AE4NZ\n" "AE4O\n" "AE4PC\n" "AE4RV\n" "AE4T\n" "AE4TE\n" "AE4TX\n" "AE4Y\n" "AE5AA\n" "AE5BR\n" "AE5CX\n" "AE5FT\n" "AE5GT\n" "AE5I\n" "AE5JA\n" "AE5JG\n" "AE5JK\n" "AE5JT\n" "AE5KM\n" "AE5KT\n" "AE5LO\n" "AE5LQ\n" "AE5MM\n" "AE5OV\n" "AE5P\n" "AE5PW\n" "AE5RE\n" "AE5T\n" "AE5TD\n" "AE5X\n" "AE6C\n" "AE6GC\n" "AE6GE\n" "AE6JN\n" "AE6K\n" "AE6OU\n" "AE6PP\n" "AE6QH\n" "AE6RF\n" "AE6RG\n" "AE6RR\n" "AE6RS\n" "AE6SX\n" "AE6XC\n" "AE6Y\n" "AE6YB\n" "AE6ZB\n" "AE6ZF\n" "AE6ZV\n" "AE7AB\n" "AE7AP\n" "AE7AW\n" "AE7CC\n" "AE7CJ\n" "AE7EE\n" "AE7H\n" "AE7K\n" "AE7RW\n" "AE8M\n" "AE9C\n" "AE9F\n" "AE9H\n" "AE9K\n" "AE9Q\n" "AF1E\n" "AF1G\n" "AF1T\n" "AF2C\n" "AF2D\n" "AF2K\n" "AF2S\n" "AF3D\n" "AF3I\n" "AF3K\n" "AF3L\n" "AF3RH\n" "AF3Y\n" "AF4AI\n" "AF4IB\n" "AF4JF\n" "AF4KL\n" "AF4MO\n" "AF4OX\n" "AF4PP\n" "AF4RK\n" "AF4TK\n" "AF4Z\n" "AF5K\n" "AF5M\n" "AF5P\n" "AF5Q\n" "AF5T\n" "AF5U\n" "AF5Z\n" "AF6AV\n" "AF6BJ\n" "AF6DD\n" "AF6EH\n" "AF6EV\n" "AF6GL\n" "AF6JC\n" "AF6JP\n" "AF6JX\n" "AF6ME\n" "AF6MO\n" "AF6NE\n" "AF6NI\n" "AF6P\n" "AF6PA\n" "AF6PK\n" "AF6SA\n" "AF6SY\n" "AF6T\n" "AF6VQ\n" "AF7DX\n" "AF7K\n" "AF7O\n" "AF7Z\n" "AF8A\n" "AF8C\n" "AF8RH\n" "AF8T\n" "AF8V\n" "AF9H\n" "AF9J\n" "AG0A\n" "AG0I\n" "AG0J\n" "AG0L\n" "AG0M\n" "AG1C\n" "AG1H\n" "AG2M\n" "AG2T\n" "AG3G\n" "AG3L\n" "AG3R\n" "AG3V\n" "AG4CZ\n" "AG4ES\n" "AG4GB\n" "AG4K\n" "AG4M\n" "AG4P\n" "AG4PJ\n" "AG4PZ\n" "AG4QX\n" "AG4TO\n" "AG4V\n" "AG4VS\n" "AG4W\n" "AG4WL\n" "AG4WY\n" "AG4XL\n" "AG4XR\n" "AG5T\n" "AG5W\n" "AG5Z\n" "AG6MB\n" "AG7N\n" "AG7T\n" "AG7U\n" "AG8U\n" "AG9A\n" "AG9C\n" "AG9S\n" "AH0/AH2Y\n" "AH0BT\n" "AH0S\n" "AH2DT\n" "AH2L\n" "AH2R\n" "AH2Y\n" "AH6EZ/W9\n" "AH6FC\n" "AH6JD\n" "AH6N\n" "AH6NF\n" "AH6NM\n" "AH6RE\n" "AH6RR\n" "AH6V\n" "AH6WX\n" "AH6XX\n" "AH6ZZ\n" "AH7A\n" "AH7C\n" "AH7G\n" "AH7ZA\n" "AH8/DL2AH\n" "AH8DX/W7\n" "AI0L\n" "AI0M\n" "AI0O\n" "AI0Q\n" "AI1O\n" "AI1P\n" "AI1P/0\n" "AI1V\n" "AI2C\n" "AI2I\n" "AI2IA\n" "AI2N\n" "AI2S\n" "AI2T\n" "AI3G\n" "AI3Q\n" "AI4AW\n" "AI4BJ\n" "AI4CJ\n" "AI4CM\n" "AI4CO\n" "AI4DB\n" "AI4FR\n" "AI4G\n" "AI4GP\n" "AI4GR\n" "AI4HH\n" "AI4IC\n" "AI4IO\n" "AI4JT\n" "AI4KM\n" "AI4LV\n" "AI4ME\n" "AI4MI\n" "AI4NW\n" "AI4OF\n" "AI4OH\n" "AI4OT\n" "AI4PF\n" "AI4PY\n" "AI4QQ\n" "AI4QR\n" "AI4QY\n" "AI4RF\n" "AI4RJ\n" "AI4TE\n" "AI4UN\n" "AI4VE\n" "AI4VQ\n" "AI4W\n" "AI4WL\n" "AI4WU\n" "AI4WW\n" "AI4YO\n" "AI5DX\n" "AI5G\n" "AI5M\n" "AI5P\n" "AI6L\n" "AI6O\n" "AI6V\n" "AI6YL\n" "AI6Z\n" "AI7H\n" "AI8P\n" "AI9F\n" "AI9I\n" "AI9K\n" "AI9L\n" "AI9P\n" "AI9T\n" "AJ0W\n" "AJ1E\n" "AJ1G\n" "AJ1I\n" "AJ1M\n" "AJ1M/8\n" "AJ2T\n" "AJ2Y\n" "AJ3G\n" "AJ3M\n" "AJ3T\n" "AJ4A\n" "AJ4AQ\n" "AJ4BT\n" "AJ4CD\n" "AJ4CG\n" "AJ4CU\n" "AJ4DX\n" "AJ4F\n" "AJ4FM\n" "AJ4FV\n" "AJ4GC\n" "AJ4HO\n" "AJ4HZ\n" "AJ4IM\n" "AJ4JD\n" "AJ4JQ\n" "AJ4JZ\n" "AJ4KF\n" "AJ4LM\n" "AJ4LU\n" "AJ4MW\n" "AJ4NM\n" "AJ4OA\n" "AJ4OV\n" "AJ4RK\n" "AJ4RW\n" "AJ4SQ\n" "AJ5C\n" "AJ5DW\n" "AJ5H\n" "AJ6T\n" "AJ6V\n" "AJ7EF\n" "AJ8B\n" "AJ8MH\n" "AJ8P\n" "AJ9C\n" "AJ9K\n" "AK0A\n" "AK0F\n" "AK0M\n" "AK0MR\n" "AK1N\n" "AK1Q\n" "AK1W\n" "AK2A\n" "AK2B\n" "AK2P\n" "AK2S\n" "AK3Q\n" "AK3V\n" "AK3W\n" "AK4DM\n" "AK4DW\n" "AK4I\n" "AK4IK\n" "AK4JH\n" "AK4K\n" "AK4NC\n" "AK4RS\n" "AK4Z\n" "AK5AA\n" "AK5DX\n" "AK5V\n" "AK5X\n" "AK6DV\n" "AK6M\n" "AK6R\n" "AK6X\n" "AK7A\n" "AK7AT\n" "AK7AZ\n" "AK7DB\n" "AK7FF\n" "AK7G\n" "AK7H\n" "AK7O\n" "AK7S\n" "AK7Y\n" "AK8A\n" "AK9F\n" "AK9I\n" "AK9L\n" "AK9N\n" "AK9N/7\n" "AK9W\n" "AK9Y\n" "AL1G\n" "AL2F\n" "AL2V\n" "AL3K\n" "AL7AF\n" "AL7BA/W8\n" "AL7FD\n" "AL7HW/4\n" "AL7IF\n" "AL7L\n" "AL7PQ\n" "AL7QQ\n" "AL7R\n" "AL7TC\n" "AL9A\n" "AM1A\n" "AM1C\n" "AM1G\n" "AM1Q\n" "AM1S\n" "AM1T\n" "AM1W\n" "AM2T\n" "AM3A\n" "AM3CS\n" "AM3EGB\n" "AM3M\n" "AM3SSB\n" "AM5A\n" "AM5B\n" "AM5BM\n" "AM5KB\n" "AM5M\n" "AM5Q\n" "AM5SP\n" "AM7C\n" "AM7M\n" "AM7W\n" "AM8A\n" "AN1A\n" "AN1C\n" "AN1K\n" "AN1R\n" "AN2A\n" "AN2K\n" "AN3N\n" "AN4A\n" "AN5CNK\n" "AN5E\n" "AN5L\n" "AN5N\n" "AN5P\n" "AN5W\n" "AN7K\n" "AN7LM\n" "AN8A\n" "AN8R\n" "AN8X\n" "AO1ABT\n" "AO1B\n" "AO1ET\n" "AO1J\n" "AO1K\n" "AO1L\n" "AO1T\n" "AO1Y\n" "AO2A\n" "AO2KY\n" "AO2R\n" "AO2V\n" "AO2W\n" "AO3A\n" "AO3DE\n" "AO3K\n" "AO3T\n" "AO4C\n" "AO4M\n" "AO4Y\n" "AO5A\n" "AO5B\n" "AO5GVZ\n" "AO5GX\n" "AO5KB\n" "AO5L\n" "AO5M\n" "AO5R\n" "AO5SP\n" "AO5T\n" "AO5V\n" "AO5W\n" "AO7A\n" "AO7AAW\n" "AO7O\n" "AO7T\n" "AO8A\n" "AO8HQ\n" "AT1HQ\n" "AU2RSB\n" "AU5JCB\n" "AY0DX\n" "AY4D\n" "AY5F\n" "AY7X\n" "AY8A\n" "AY9F\n" "B1C\n" "B1HQ\n" "B1P\n" "B1Z\n" "B3C\n" "B3HQ\n" "B4B\n" "B4HQ\n" "B4R\n" "B4S\n" "B4TB\n" "B4VE\n" "B4X\n" "B5A\n" "B5TT\n" "B7HQ\n" "B7M\n" "B7P\n" "BA1AN\n" "BA1GN\n" "BA1RB\n" "BA1SN\n" "BA2IA\n" "BA3AX\n" "BA3RJ\n" "BA4AA\n" "BA4ALC\n" "BA4CH\n" "BA4DL\n" "BA4II\n" "BA4KA\n" "BA4QO\n" "BA4RC\n" "BA4RF\n" "BA4SD\n" "BA4SI\n" "BA4T\n" "BA4VE\n" "BA4WW\n" "BA5AG\n" "BA5AN\n" "BA5AP\n" "BA5BO\n" "BA5DX\n" "BA5HAM\n" "BA5RR\n" "BA6IT\n" "BA6IV\n" "BA6QD\n" "BA6QH\n" "BA7CK\n" "BA7IA\n" "BA7IN\n" "BA7IO\n" "BA7KM\n" "BA7MG\n" "BA7MY\n" "BA7NQ\n" "BA8AG\n" "BA8BA\n" "BD1AQH\n" "BD1BYV\n" "BD1CAL\n" "BD1DQD\n" "BD1FBV\n" "BD1HW\n" "BD1ISI\n" "BD1ND\n" "BD1RCR\n" "BD1TCC\n" "BD1WC\n" "BD2BT\n" "BD2IMS\n" "BD2RJ\n" "BD2SH/7\n" "BD3EO/1\n" "BD3PCH\n" "BD4AGK\n" "BD4CZX\n" "BD4DVK\n" "BD4IBW/4\n" "BD4JUU\n" "BD4JZY\n" "BD4KUU\n" "BD4KYA\n" "BD4LGF\n" "BD4QH\n" "BD4QO\n" "BD4RQ\n" "BD4SP\n" "BD4SS\n" "BD4SVB\n" "BD4SX\n" "BD4SZW\n" "BD4TD\n" "BD4TR\n" "BD4TU\n" "BD4WZH\n" "BD5BAJ\n" "BD5CFB\n" "BD5CFY\n" "BD5HML\n" "BD5HST\n" "BD5HUI\n" "BD5WW\n" "BD6AHP\n" "BD6IQD\n" "BD6IVX\n" "BD6QDR\n" "BD6QMY\n" "BD7IBN\n" "BD7IN\n" "BD7IXG\n" "BD7JDG\n" "BD7JSQ\n" "BD7KBH\n" "BD7LDM\n" "BD7MSN\n" "BD7MVZ\n" "BD7NL\n" "BD7NWF\n" "BD7RDC\n" "BD8AIB\n" "BD8ATI\n" "BD9AFM\n" "BG1JR\n" "BG1QEX\n" "BG2SHQ\n" "BG3MOU\n" "BG4AHD\n" "BG4AHF\n" "BG4CZX\n" "BG4DVK\n" "BG4ENK\n" "BG4EPV\n" "BG4JZY\n" "BG4MCG\n" "BG4MR\n" "BG4REA\n" "BG4TWS\n" "BG5HJC\n" "BG5HST\n" "BG5HSV\n" "BG6AHU\n" "BG6JEQ\n" "BG6JNB\n" "BG7BAH\n" "BG7IEU\n" "BG7NWF\n" "BG8IK\n" "BG9AFM\n" "BG9TX\n" "BH1IIA\n" "BH1IIJ\n" "BH4SFE\n" "BH7LMD\n" "BT4EXPO\n" "BT4NG\n" "BU2AC\n" "BU2AE\n" "BU2AI\n" "BU2AO\n" "BU2AU\n" "BV0HQ\n" "BV0J\n" "BV0L\n" "BV1EK\n" "BV2A\n" "BV3FG\n" "BV4VQ\n" "BV4VR\n" "BV4VT\n" "BV7FC\n" "BW/DL3OCH\n" "BW2/JP1RIW\n" "BW3/DJ3KR\n" "BX0WPX\n" "BX1AAB\n" "BX2ABD\n" "BX3AA\n" "BX4AD\n" "BX4AF\n" "BX4AQ\n" "BX5AA\n" "BX6AP\n" "BY1CJL\n" "BY1CW\n" "BY1DX\n" "BY1QH\n" "BY1RX\n" "BY1TTY\n" "BY3MM\n" "BY4BZB\n" "BY4DX\n" "BY4HAM\n" "BY4IO\n" "BY4QA\n" "BY4SA\n" "BY5CD\n" "BY5HB\n" "BY6HY\n" "BY6IC\n" "BY7HL\n" "BY7KG\n" "BY7KP\n" "BY8AC\n" "BY8DX\n" "C31CA\n" "C31CT\n" "C37NL\n" "C37RC\n" "C37URE\n" "C49C\n" "C4DX\n" "C4I\n" "C4M\n" "C4N\n" "C4SV\n" "C4W\n" "C4Z\n" "C6AGN\n" "C6AKQ\n" "C6AKX\n" "C6ALT\n" "C6AMM\n" "C6AMS\n" "C6ANM\n" "C6APG\n" "C6APR\n" "C6AQQ\n" "C6ARR\n" "C6ASB\n" "C6ATA\n" "C6AUM\n" "C6AWL\n" "C91LW\n" "C91TX\n" "C98LW\n" "CA3KHZ\n" "CA3OEV\n" "CA6BMF\n" "CD1R\n" "CE0Y/SM6CUK\n" "CE1/K7CA\n" "CE1KR\n" "CE1TT\n" "CE1U\n" "CE1UGE\n" "CE1W\n" "CE1Z\n" "CE2/K0MD\n" "CE2HZ\n" "CE2LS\n" "CE2P\n" "CE2WWF\n" "CE2WZ\n" "CE3AA\n" "CE3BFZ\n" "CE3DNP\n" "CE3FZ\n" "CE3G\n" "CE3HQ\n" "CE3NR\n" "CE3PG\n" "CE3RR\n" "CE4B\n" "CE4CT\n" "CE4ETZ\n" "CE4SES\n" "CE4UJU\n" "CE5JZO\n" "CE6SAX\n" "CE6TBN\n" "CE6VMO\n" "CJ3WPV\n" "CJ7FC\n" "CJ7GEM\n" "CK1BVD\n" "CK1WT\n" "CK2AWR\n" "CK2DWA\n" "CK3AT\n" "CK3CUI\n" "CK3CW\n" "CK6BF\n" "CK7HL\n" "CM2KY\n" "CM2ORO\n" "CM2QM\n" "CM2RVA\n" "CM2ZT\n" "CM3GW\n" "CM3RPN\n" "CM5FZ\n" "CM6CAC\n" "CM6RCR\n" "CM6YAC\n" "CM8CAD\n" "CM8GJ\n" "CN2A\n" "CN2B\n" "CN2BC\n" "CN2IPA\n" "CN2M\n" "CN2R\n" "CN2YF\n" "CN3A\n" "CN3R\n" "CN4P\n" "CN8KD\n" "CN8LI\n" "CN8SG\n" "CN8VO\n" "CN8WW\n" "CN8YE\n" "CN8YR\n" "CN8YZ\n" "CN8ZG\n" "CO2EL\n" "CO2FU\n" "CO2GL\n" "CO2IZ\n" "CO2JD\n" "CO2JG\n" "CO2JW\n" "CO2KY\n" "CO2OT\n" "CO2WF\n" "CO3CJ\n" "CO3JN\n" "CO3LC\n" "CO3TJ\n" "CO4LS\n" "CO6CAC\n" "CO6LC\n" "CO6LP\n" "CO6RD\n" "CO6WD\n" "CO6WYR\n" "CO6YI\n" "CO7EH\n" "CO7PH\n" "CO7RR\n" "CO8AW\n" "CO8CML\n" "CO8CY\n" "CO8LY\n" "CO8TW\n" "CO8WZ\n" "CO8ZZ\n" "CP1FF\n" "CP1WG\n" "CP5RC\n" "CP6AA\n" "CP6XE\n" "CQ3L\n" "CQ3T\n" "CQ3Z\n" "CQ4T\n" "CQ4U\n" "CQ8L\n" "CQ8X\n" "CQ95F\n" "CQ9K\n" "CQ9T\n" "CR1M\n" "CR1Z\n" "CR2A\n" "CR2T\n" "CR2X\n" "CR3A\n" "CR3E\n" "CR3L\n" "CR3T\n" "CR5A\n" "CR5CQK\n" "CR5HQ\n" "CR5M\n" "CR5R\n" "CR5SBK\n" "CR5T\n" "CR5X\n" "CR6A\n" "CR6K\n" "CR6P\n" "CR6T\n" "CS1CRE\n" "CS2C\n" "CS2K\n" "CS2P\n" "CS2T\n" "CS5RBL\n" "CS7A\n" "CS7CQK\n" "CS9A\n" "CS9L\n" "CT1AGF\n" "CT1AHU\n" "CT1ANO\n" "CT1AOZ\n" "CT1APE\n" "CT1BH\n" "CT1BNW\n" "CT1BOH\n" "CT1BOL\n" "CT1BOP\n" "CT1BWU\n" "CT1BWW\n" "CT1BXE\n" "CT1BXT\n" "CT1BYK\n" "CT1BZG\n" "CT1CDP\n" "CT1CJJ\n" "CT1CQK\n" "CT1DIN\n" "CT1DIZ\n" "CT1DJE\n" "CT1DOV\n" "CT1DVV\n" "CT1DZY\n" "CT1EAT\n" "CT1EBM\n" "CT1EEK\n" "CT1EGF\n" "CT1EGW\n" "CT1EHK\n" "CT1ELF\n" "CT1ELP\n" "CT1ELZ\n" "CT1END/P\n" "CT1ENQ\n" "CT1ENV\n" "CT1EOD\n" "CT1EPJ\n" "CT1ESG\n" "CT1ESJ\n" "CT1ESV\n" "CT1ETW\n" "CT1ETX\n" "CT1EWA\n" "CT1FHL\n" "CT1FJK\n" "CT1FJL\n" "CT1FMX\n" "CT1FUH\n" "CT1GC\n" "CT1GFK\n" "CT1GPQ\n" "CT1HBV\n" "CT1HMN\n" "CT1HZU\n" "CT1ILT\n" "CT1IUA\n" "CT1IZW\n" "CT1JEY\n" "CT1JGA\n" "CT1JLZ\n" "CT1JRZ\n" "CT1JSP\n" "CT1YTS\n" "CT2CRP\n" "CT2FPE\n" "CT2GDW\n" "CT2GQN\n" "CT2GSN\n" "CT2HKN\n" "CT2HRB\n" "CT2IOV\n" "CT2IPG\n" "CT2ITR\n" "CT2IVH\n" "CT2JBG\n" "CT2JMR\n" "CT2JRZ\n" "CT2JTR\n" "CT2JVP\n" "CT2JYX\n" "CT2KAL\n" "CT2KCG\n" "CT3AS\n" "CT3BD\n" "CT3CD\n" "CT3DL\n" "CT3DZ\n" "CT3EE\n" "CT3EN\n" "CT3FJ\n" "CT3FN\n" "CT3FQ\n" "CT3FT\n" "CT3HF\n" "CT3IA\n" "CT3KN\n" "CT3KU\n" "CT3KY\n" "CT3MD\n" "CT3NT\n" "CT4HA\n" "CT4IS\n" "CT4NH\n" "CT6P\n" "CT7/CU8AS/P\n" "CT7/DJ5YQ\n" "CT7/LZ3ND\n" "CT7A\n" "CT7D\n" "CT7E\n" "CT7R\n" "CT8K\n" "CT9/DK7TM\n" "CT9/DL1SBF\n" "CT9/DL3KWF\n" "CT9/DL3ZH\n" "CT9K\n" "CT9L\n" "CT9M\n" "CU2A\n" "CU2AF\n" "CU2AO\n" "CU2CR\n" "CU2DX\n" "CU2JT\n" "CU2X\n" "CU30AA\n" "CU3EJ\n" "CU3HQ\n" "CU3TRP\n" "CU5CQ\n" "CU6AY\n" "CU7AJ\n" "CU8A\n" "CU8AS\n" "CV5D\n" "CV5K\n" "CW2T\n" "CW5W\n" "CW7T\n" "CX1AA\n" "CX1AV\n" "CX1AX\n" "CX1CCC\n" "CX1JJ\n" "CX2ABC\n" "CX2ABP\n" "CX2AL\n" "CX2AQ\n" "CX2CC\n" "CX2DDP\n" "CX2FT\n" "CX2TG\n" "CX3CCC\n" "CX3CQ\n" "CX4AAJ\n" "CX4AD\n" "CX4BW\n" "CX4CR\n" "CX4DX\n" "CX5BW\n" "CX5TR\n" "CX6VM\n" "CX7CO\n" "CX7TT\n" "CX8BBH\n" "CX9AU\n" "CX9BP\n" "CX9DX\n" "CY2ZT/2\n" "D2NX\n" "D44AC\n" "D4C\n" "D80Y\n" "DA0A\n" "DA0AD\n" "DA0AMT\n" "DA0BCC\n" "DA0CA\n" "DA0CCC\n" "DA0CW\n" "DA0HEL\n" "DA0HQ\n" "DA0I\n" "DA0R\n" "DA0X\n" "DA0YFD\n" "DA1MC\n" "DA2U\n" "DA2UN\n" "DA3A\n" "DA3T\n" "DA3X\n" "DA6TEC\n" "DA9L\n" "DB1APP\n" "DB1BAN\n" "DB1BMN\n" "DB1CD\n" "DB1DT\n" "DB1LI\n" "DB1MI\n" "DB1MUC\n" "DB1NR\n" "DB1RLE\n" "DB1SKA\n" "DB1SMW\n" "DB1VQ\n" "DB2B\n" "DB2BJT\n" "DB2CTM\n" "DB2HV\n" "DB2KT\n" "DB2NQ\n" "DB2OJ\n" "DB3BE\n" "DB3BX\n" "DB3FS\n" "DB3KE\n" "DB3LO\n" "DB4BU\n" "DB4NNW\n" "DB4SP\n" "DB4VI\n" "DB4VO\n" "DB5FW\n" "DB5SD\n" "DB6NT\n" "DB6SI\n" "DB6VP\n" "DB6YW\n" "DB6ZU\n" "DB7AA\n" "DB7BU\n" "DB7HH\n" "DB7MA\n" "DB7QJ\n" "DB7TF\n" "DB7UQ\n" "DB8AH\n" "DB8NI\n" "DB8VB\n" "DB9EV\n" "DB9EX\n" "DB9UH\n" "DC0ASP\n" "DC0GO\n" "DC0KK\n" "DC0NA\n" "DC0NE\n" "DC0UH\n" "DC0VD\n" "DC1HPS\n" "DC1HR\n" "DC1JAG\n" "DC1NSK\n" "DC1OBB\n" "DC1RJJ\n" "DC1RS\n" "DC1SK\n" "DC1SV\n" "DC1XM\n" "DC1YB\n" "DC2CB\n" "DC2CT\n" "DC2CW\n" "DC2IP\n" "DC2KN\n" "DC2OD\n" "DC2VE\n" "DC2YY\n" "DC3FR\n" "DC3HB\n" "DC3RJ\n" "DC3SW\n" "DC3TS\n" "DC3ZB\n" "DC4A\n" "DC5IMM\n" "DC5JQ\n" "DC6A\n" "DC6CX\n" "DC6CZ\n" "DC6KW\n" "DC6MY\n" "DC6OAF\n" "DC6RN\n" "DC7CCC\n" "DC7HP\n" "DC7IE\n" "DC7KM\n" "DC7NF\n" "DC7OH\n" "DC8KU\n" "DC8QT\n" "DC8RU\n" "DC8SG\n" "DC8TS\n" "DC8WPA\n" "DC9KH\n" "DC9MA\n" "DC9PI\n" "DC9TH\n" "DC9ZB\n" "DC9ZP\n" "DD0ARN\n" "DD0D\n" "DD0DRK\n" "DD0PB\n" "DD0VD\n" "DD0VR\n" "DD0ZL\n" "DD0ZN\n" "DD1D\n" "DD1DD\n" "DD1DZ\n" "DD1IM\n" "DD1JD\n" "DD1JN\n" "DD1LD\n" "DD1LI\n" "DD1MAT\n" "DD1OP\n" "DD1RB\n" "DD1UDW\n" "DD1UN\n" "DD1YGB\n" "DD2D\n" "DD2FJ\n" "DD2JA\n" "DD2ML\n" "DD2NU\n" "DD2TC\n" "DD3D\n" "DD3DZ\n" "DD3NJ\n" "DD3QD\n" "DD3WW\n" "DD4B\n" "DD4BY\n" "DD4DA\n" "DD4DJ\n" "DD5A\n" "DD5AJ\n" "DD5FZ\n" "DD5JK\n" "DD5KG\n" "DD5M\n" "DD5T\n" "DD5XL\n" "DD6PS\n" "DD6ZJ\n" "DD7GK\n" "DD7VA\n" "DD7ZT\n" "DD8IU\n" "DD8JJ\n" "DD8SM\n" "DD8VX\n" "DD9DAG\n" "DD9HK\n" "DD9NT\n" "DD9PS\n" "DD9WG\n" "DF0AT\n" "DF0AW\n" "DF0BAU\n" "DF0BLM\n" "DF0BV\n" "DF0CG\n" "DF0CI\n" "DF0DA\n" "DF0DBP\n" "DF0DG\n" "DF0DJ\n" "DF0DOX\n" "DF0DX\n" "DF0EG\n" "DF0FFH\n" "DF0FY\n" "DF0HO\n" "DF0HQ\n" "DF0II\n" "DF0II/P\n" "DF0IT\n" "DF0PT\n" "DF0RI\n" "DF0RW\n" "DF0SAX\n" "DF0SL\n" "DF0SQ\n" "DF0SX\n" "DF0TX\n" "DF0WLG\n" "DF1AG\n" "DF1AL\n" "DF1ASG\n" "DF1BN\n" "DF1BV\n" "DF1DT\n" "DF1DX\n" "DF1FN\n" "DF1HE\n" "DF1HF\n" "DF1IAQ\n" "DF1JM\n" "DF1KBN\n" "DF1KSP\n" "DF1LON\n" "DF1MA\n" "DF1MDX\n" "DF1NP\n" "DF1OE\n" "DF1OLS\n" "DF1OM\n" "DF1PH\n" "DF1PU\n" "DF1PY\n" "DF1QQ\n" "DF1QR\n" "DF1SD\n" "DF1SZ\n" "DF1TJ\n" "DF1UWE\n" "DF1VB\n" "DF1VU\n" "DF1XC\n" "DF1YQ\n" "DF2AJ\n" "DF2AP\n" "DF2BO\n" "DF2BR\n" "DF2CD\n" "DF2CH\n" "DF2CK\n" "DF2CQ\n" "DF2EQ\n" "DF2FM\n" "DF2FR\n" "DF2FU\n" "DF2GH\n" "DF2GW\n" "DF2HL\n" "DF2IAX\n" "DF2IC\n" "DF2IY\n" "DF2KD\n" "DF2KK\n" "DF2LH\n" "DF2MC\n" "DF2MG\n" "DF2MM\n" "DF2NJ\n" "DF2NS\n" "DF2NU\n" "DF2NV\n" "DF2OK\n" "DF2OU\n" "DF2PH\n" "DF2PI\n" "DF2PN\n" "DF2PY\n" "DF2QC\n" "DF2QZ\n" "DF2RG\n" "DF2TG\n" "DF2TT\n" "DF2UA\n" "DF2UD\n" "DF2UQ\n" "DF2UU\n" "DF3AX\n" "DF3CB\n" "DF3DK\n" "DF3EH\n" "DF3GE\n" "DF3GY\n" "DF3HD\n" "DF3IS\n" "DF3IU\n" "DF3JM\n" "DF3JO\n" "DF3KJ\n" "DF3KT\n" "DF3KV\n" "DF3MC\n" "DF3OL\n" "DF3PN\n" "DF3QG\n" "DF3SM\n" "DF3SP\n" "DF3SS\n" "DF3TE\n" "DF3XP\n" "DF3XZ\n" "DF3ZE\n" "DF4BV\n" "DF4EU\n" "DF4FD\n" "DF4FQ\n" "DF4IE\n" "DF4KC\n" "DF4PA\n" "DF4PD\n" "DF4TD\n" "DF4TS\n" "DF4UM\n" "DF4WC\n" "DF4WG\n" "DF4WQ\n" "DF4XF\n" "DF4ZK\n" "DF4ZL\n" "DF4ZW\n" "DF4ZY\n" "DF5A\n" "DF5AN\n" "DF5AU\n" "DF5BM\n" "DF5BX\n" "DF5FF\n" "DF5FL\n" "DF5HG\n" "DF5HOA\n" "DF5KE\n" "DF5KT\n" "DF5LR\n" "DF5LW\n" "DF5PP\n" "DF5RF\n" "DF5SF\n" "DF5SR\n" "DF5UL\n" "DF5WBA\n" "DF5WN\n" "DF5WW\n" "DF5ZV\n" "DF6AD\n" "DF6DBF\n" "DF6EH\n" "DF6EX\n" "DF6FK\n" "DF6FR\n" "DF6IC\n" "DF6JC\n" "DF6JF\n" "DF6LQ\n" "DF6MU\n" "DF6PW\n" "DF6QB\n" "DF6QC\n" "DF6QN\n" "DF6QP\n" "DF6QV\n" "DF6RI\n" "DF6RK\n" "DF6TC\n" "DF6VL\n" "DF6WE\n" "DF6WM\n" "DF6WR\n" "DF6YC\n" "DF6ZY\n" "DF7AA\n" "DF7BL\n" "DF7DF\n" "DF7EF\n" "DF7EM\n" "DF7FC\n" "DF7GB\n" "DF7GG\n" "DF7IR\n" "DF7IS\n" "DF7JC\n" "DF7LA\n" "DF7LS\n" "DF7NR\n" "DF7OG\n" "DF7OM\n" "DF7PW\n" "DF7PX\n" "DF7RG\n" "DF7TH\n" "DF7TS\n" "DF7TT\n" "DF7TU\n" "DF7TW\n" "DF7TY\n" "DF7WT\n" "DF7XH\n" "DF7ZM\n" "DF7ZS\n" "DF8AA\n" "DF8AE\n" "DF8BB\n" "DF8CS\n" "DF8DHG\n" "DF8DT\n" "DF8DU\n" "DF8FT\n" "DF8HS\n" "DF8JB\n" "DF8JE\n" "DF8JK\n" "DF8KN\n" "DF8PJ\n" "DF8PR\n" "DF8QB\n" "DF8ST\n" "DF8TI\n" "DF8TM\n" "DF8TY\n" "DF8UO\n" "DF8VV\n" "DF8WA\n" "DF8WL\n" "DF8XC\n" "DF8ZH\n" "DF9DD\n" "DF9DH\n" "DF9DM\n" "DF9EY\n" "DF9FR\n" "DF9FS\n" "DF9FT\n" "DF9GH\n" "DF9GR\n" "DF9JL\n" "DF9KF\n" "DF9KQ\n" "DF9LJ\n" "DF9LW\n" "DF9LW/P\n" "DF9OB\n" "DF9OO\n" "DF9QT\n" "DF9RD\n" "DF9SH\n" "DF9TF\n" "DF9TS\n" "DF9VH\n" "DF9VJ\n" "DF9WB\n" "DF9WP\n" "DF9XV\n" "DF9YC\n" "DF9ZP\n" "DF9ZW\n" "DG0AAE\n" "DG0AM\n" "DG0CAW\n" "DG0CC\n" "DG0DG\n" "DG0DRF\n" "DG0DZ\n" "DG0GCS\n" "DG0KS\n" "DG0KT\n" "DG0LHI\n" "DG0OBU\n" "DG0OJO\n" "DG0OM\n" "DG0YS\n" "DG1ATN\n" "DG1BQC\n" "DG1CMZ\n" "DG1DHW\n" "DG1DTL\n" "DG1EA\n" "DG1FKA\n" "DG1FSK\n" "DG1GJH\n" "DG1HUD\n" "DG1IU\n" "DG1KOH\n" "DG1LS\n" "DG1MDQ\n" "DG1MHC\n" "DG1NI\n" "DG1NOE\n" "DG1NPM\n" "DG1PU\n" "DG1RPU\n" "DG1VL\n" "DG1YBN\n" "DG1YFF\n" "DG1YHA\n" "DG2BHB\n" "DG2EBW\n" "DG2GAW\n" "DG2JA\n" "DG2JO\n" "DG2KO\n" "DG2NMH\n" "DG2RSF\n" "DG2SEW\n" "DG2SRL\n" "DG2TOM\n" "DG2UA\n" "DG2US\n" "DG3DAA\n" "DG3DAT\n" "DG3DBO\n" "DG3EK\n" "DG3FAW\n" "DG3FK\n" "DG3LAL\n" "DG3LCH\n" "DG3LSM/P\n" "DG3MDE\n" "DG3NCZ\n" "DG3NEC\n" "DG3OBK\n" "DG3RCE\n" "DG3SBJ\n" "DG3YCC\n" "DG4DB\n" "DG4FCN\n" "DG4FDQ\n" "DG4GP\n" "DG4KAD\n" "DG4MR\n" "DG4NAT\n" "DG4NEC\n" "DG4R\n" "DG4VD\n" "DG4YGW\n" "DG5AA\n" "DG5AAP\n" "DG5BKL\n" "DG5BKR\n" "DG5DBT\n" "DG5EAE\n" "DG5EKE\n" "DG5FFF\n" "DG5HFS\n" "DG5KX\n" "DG5LAC\n" "DG5MEO\n" "DG5MEX\n" "DG5MLA\n" "DG5MLA/P\n" "DG5MMQ\n" "DG5MMW\n" "DG5OBB\n" "DG5PI\n" "DG5PY\n" "DG5SBK\n" "DG5YHE\n" "DG6CA/P\n" "DG6DAF\n" "DG6MIB\n" "DG6NBW\n" "DG6OAG\n" "DG6OBP\n" "DG6PU\n" "DG6PW\n" "DG6PY/P\n" "DG6SFU\n" "DG7DBN\n" "DG7DBR\n" "DG7FF\n" "DG7JB\n" "DG7KR\n" "DG7LAE\n" "DG7MAQ\n" "DG7OBV\n" "DG7RO\n" "DG7UAC\n" "DG7XO\n" "DG8AM\n" "DG8DBW\n" "DG8DP\n" "DG8EV\n" "DG8FAY\n" "DG8FBV\n" "DG8FI\n" "DG8KAJ\n" "DG8MH\n" "DG8NCY\n" "DG8NFB\n" "DG8NGC\n" "DG8OP\n" "DG8RAN\n" "DG8VE\n" "DG8YHO\n" "DG9AK\n" "DG9BBZ\n" "DG9BHU\n" "DG9KB\n" "DG9MA\n" "DG9MDM\n" "DG9MEH\n" "DG9MEX\n" "DG9NAO\n" "DG9NAV\n" "DG9SEH\n" "DG9SQ\n" "DG9VH\n" "DG9YCA\n" "DH0DX\n" "DH0FAB\n" "DH0GDS\n" "DH0GHU\n" "DH0GSU\n" "DH0HUI\n" "DH0JAE\n" "DH0KAA\n" "DH0MWH\n" "DH0PAZ\n" "DH0SP\n" "DH1AC\n" "DH1AKG\n" "DH1DE\n" "DH1DX\n" "DH1GD\n" "DH1JG\n" "DH1NAS\n" "DH1NJS\n" "DH1OAD\n" "DH1OK\n" "DH1PAL\n" "DH1PS\n" "DH1RAT\n" "DH1TS\n" "DH1TST\n" "DH1UZ\n" "DH1YAE\n" "DH2DAM\n" "DH2DAS\n" "DH2FW\n" "DH2KS\n" "DH2MA\n" "DH2MS\n" "DH2PC\n" "DH2PG\n" "DH2PL\n" "DH2URF\n" "DH2WQ\n" "DH2YAZ\n" "DH3FAN\n" "DH3FAW\n" "DH3FEN\n" "DH3FR\n" "DH3MAY\n" "DH3MD\n" "DH3MG\n" "DH3MIT\n" "DH3RB\n" "DH3RM\n" "DH3SW\n" "DH3UN\n" "DH3YC\n" "DH4BM\n" "DH4FAW\n" "DH4GK\n" "DH4JU\n" "DH4PAA\n" "DH4PSG\n" "DH4RJ\n" "DH4SC\n" "DH4SG\n" "DH5AO\n" "DH5FA\n" "DH5HS\n" "DH5JB\n" "DH5JG\n" "DH5MM\n" "DH5NT\n" "DH5PK\n" "DH6AB\n" "DH6AN\n" "DH6BH\n" "DH6DAO\n" "DH6FBP\n" "DH6JL\n" "DH6KS\n" "DH6LAS\n" "DH6UFB\n" "DH7ACI\n" "DH7KU\n" "DH7LF\n" "DH7PR\n" "DH7RD\n" "DH7SA\n" "DH8ACF\n" "DH8BAT\n" "DH8BQA\n" "DH8IJ\n" "DH8KV\n" "DH8MS\n" "DH8SL\n" "DH8VV\n" "DH8WE\n" "DH8WM\n" "DH9FAJ\n" "DH9FAV\n" "DH9FAW\n" "DH9GCD\n" "DH9JK\n" "DH9NBU\n" "DH9RCG\n" "DH9SB\n" "DJ0A\n" "DJ0ACA\n" "DJ0ACY\n" "DJ0AH\n" "DJ0BE\n" "DJ0CC\n" "DJ0DO\n" "DJ0DX\n" "DJ0FX\n" "DJ0GD\n" "DJ0GM\n" "DJ0IF\n" "DJ0JE\n" "DJ0JG\n" "DJ0MCH\n" "DJ0MCZ\n" "DJ0MDR\n" "DJ0MY\n" "DJ0QN\n" "DJ0QS\n" "DJ0RU\n" "DJ0SP\n" "DJ0TP\n" "DJ0VZ\n" "DJ0YI\n" "DJ0ZY\n" "DJ1AA\n" "DJ1AIB\n" "DJ1BV\n" "DJ1BWH\n" "DJ1CT\n" "DJ1CW\n" "DJ1EH\n" "DJ1FZ\n" "DJ1HA\n" "DJ1HF\n" "DJ1JM\n" "DJ1KJ\n" "DJ1MH\n" "DJ1MM\n" "DJ1ND\n" "DJ1OB\n" "DJ1OJ\n" "DJ1PE\n" "DJ1PQ\n" "DJ1QL\n" "DJ1RK\n" "DJ1RKS\n" "DJ1SD\n" "DJ1TO\n" "DJ1TU\n" "DJ1TW\n" "DJ1VT\n" "DJ1WJ\n" "DJ1WQ\n" "DJ1XT\n" "DJ1YF\n" "DJ1YFK\n" "DJ1YJ\n" "DJ1ZU\n" "DJ2AX\n" "DJ2BC\n" "DJ2BW\n" "DJ2C\n" "DJ2CW\n" "DJ2FR\n" "DJ2GM\n" "DJ2GMS\n" "DJ2HD\n" "DJ2HL\n" "DJ2IA\n" "DJ2JI\n" "DJ2JQ\n" "DJ2JS\n" "DJ2KUA\n" "DJ2ML\n" "DJ2MM\n" "DJ2MX\n" "DJ2NR\n" "DJ2PB\n" "DJ2PJ\n" "DJ2PR\n" "DJ2QV\n" "DJ2RG\n" "DJ2SEA\n" "DJ2SL\n" "DJ2ST\n" "DJ2SX\n" "DJ2TH\n" "DJ2TI\n" "DJ2UP\n" "DJ2UU\n" "DJ2VA\n" "DJ2VO\n" "DJ2XC\n" "DJ2XO\n" "DJ2YA\n" "DJ2YE\n" "DJ3AA\n" "DJ3AN\n" "DJ3DQ\n" "DJ3EF\n" "DJ3EZ\n" "DJ3FK\n" "DJ3GE\n" "DJ3GG\n" "DJ3HJ\n" "DJ3HW\n" "DJ3IW\n" "DJ3JB\n" "DJ3JD\n" "DJ3KJ\n" "DJ3KR\n" "DJ3LE\n" "DJ3NK\n" "DJ3OB\n" "DJ3OE\n" "DJ3OS\n" "DJ3PP\n" "DJ3RA\n" "DJ3SH\n" "DJ3ST\n" "DJ3TK\n" "DJ3TU\n" "DJ3WE\n" "DJ3XA\n" "DJ3XD\n" "DJ3XK\n" "DJ3ZF\n" "DJ4AK\n" "DJ4AX\n" "DJ4BG\n" "DJ4DN\n" "DJ4DY\n" "DJ4EN\n" "DJ4EY\n" "DJ4FZ\n" "DJ4GX\n" "DJ4IC\n" "DJ4JF\n" "DJ4KW\n" "DJ4LK\n" "DJ4MH\n" "DJ4MJ\n" "DJ4MM\n" "DJ4MO\n" "DJ4MZ\n" "DJ4OQ\n" "DJ4PI\n" "DJ4PK\n" "DJ4PT\n" "DJ4QG\n" "DJ4QO\n" "DJ4SN\n" "DJ4SO\n" "DJ4TS\n" "DJ4UR\n" "DJ4VP\n" "DJ4WM\n" "DJ4WT\n" "DJ4XD\n" "DJ4XR\n" "DJ4YA\n" "DJ5AA\n" "DJ5AN\n" "DJ5AV\n" "DJ5AZ\n" "DJ5BT\n" "DJ5BV\n" "DJ5CL\n" "DJ5DC\n" "DJ5DN\n" "DJ5DT\n" "DJ5EU\n" "DJ5FZ\n" "DJ5GK\n" "DJ5HD\n" "DJ5IR\n" "DJ5IW\n" "DJ5JH\n" "DJ5JK\n" "DJ5KB\n" "DJ5KW\n" "DJ5KX\n" "DJ5KZ\n" "DJ5LY\n" "DJ5MF\n" "DJ5MN\n" "DJ5MS\n" "DJ5MW\n" "DJ5MY\n" "DJ5OR\n" "DJ5PZ\n" "DJ5QE\n" "DJ5QK\n" "DJ5QV\n" "DJ5RE\n" "DJ5RQ\n" "DJ5TD\n" "DJ5TH\n" "DJ5TT\n" "DJ5UZ\n" "DJ5VB\n" "DJ5VW\n" "DJ5WG\n" "DJ6AL\n" "DJ6APA\n" "DJ6BQ\n" "DJ6CB\n" "DJ6DO\n" "DJ6FO\n" "DJ6GK\n" "DJ6GR\n" "DJ6HB\n" "DJ6HL\n" "DJ6HP\n" "DJ6JH\n" "DJ6KH\n" "DJ6KS\n" "DJ6LW\n" "DJ6MD\n" "DJ6NI\n" "DJ6NT\n" "DJ6OI\n" "DJ6OL\n" "DJ6OV\n" "DJ6OZ\n" "DJ6PE\n" "DJ6QP\n" "DJ6QT\n" "DJ6RA\n" "DJ6RN\n" "DJ6TB\n" "DJ6TK\n" "DJ6UP\n" "DJ6VM\n" "DJ6XB\n" "DJ6XG\n" "DJ6XV\n" "DJ6YD\n" "DJ6YX\n" "DJ6ZC\n" "DJ6ZJ\n" "DJ6ZM\n" "DJ7A\n" "DJ7AT\n" "DJ7BA\n" "DJ7EC\n" "DJ7ER\n" "DJ7FM\n" "DJ7IK\n" "DJ7JB\n" "DJ7JC\n" "DJ7LB\n" "DJ7LH\n" "DJ7OM\n" "DJ7OQ\n" "DJ7PA\n" "DJ7PI\n" "DJ7PR\n" "DJ7PT\n" "DJ7PW\n" "DJ7R\n" "DJ7RD\n" "DJ7RJ\n" "DJ7RL\n" "DJ7SR\n" "DJ7ST\n" "DJ7SW\n" "DJ7TW\n" "DJ7UC\n" "DJ7UD\n" "DJ7UN\n" "DJ7UO\n" "DJ7WG\n" "DJ7XB\n" "DJ7YM\n" "DJ7YP\n" "DJ7YR\n" "DJ7YT\n" "DJ7ZL\n" "DJ8BD\n" "DJ8EE\n" "DJ8EF\n" "DJ8EL\n" "DJ8ES\n" "DJ8EW\n" "DJ8FR\n" "DJ8GE\n" "DJ8MP\n" "DJ8NK\n" "DJ8NU\n" "DJ8OG\n" "DJ8QP\n" "DJ8RI\n" "DJ8RS\n" "DJ8RX\n" "DJ8RZ\n" "DJ8SW\n" "DJ8TK\n" "DJ8UL\n" "DJ8UV\n" "DJ8VC\n" "DJ8VI\n" "DJ8WI\n" "DJ9A\n" "DJ9AO\n" "DJ9BO\n" "DJ9CB\n" "DJ9CN\n" "DJ9CW\n" "DJ9DL\n" "DJ9DZ\n" "DJ9EF\n" "DJ9EG\n" "DJ9EI\n" "DJ9ER\n" "DJ9EU\n" "DJ9FB\n" "DJ9FG\n" "DJ9GS\n" "DJ9HX\n" "DJ9IE\n" "DJ9IO\n" "DJ9JD\n" "DJ9JX\n" "DJ9JY\n" "DJ9KM\n" "DJ9MH\n" "DJ9MT\n" "DJ9OI\n" "DJ9ON\n" "DJ9RB\n" "DJ9RM\n" "DJ9RQ\n" "DJ9RR\n" "DJ9SO\n" "DJ9UJ\n" "DJ9UM\n" "DJ9UP\n" "DJ9VA\n" "DJ9VS\n" "DJ9WJ\n" "DJ9XB\n" "DJ9ZB\n" "DK0A\n" "DK0AE\n" "DK0ALC\n" "DK0ALK\n" "DK0AY\n" "DK0BM\n" "DK0C\n" "DK0CO\n" "DK0CU\n" "DK0DB\n" "DK0ED\n" "DK0EE\n" "DK0FC\n" "DK0FL\n" "DK0GYB\n" "DK0HEL\n" "DK0HF\n" "DK0HUN\n" "DK0IA\n" "DK0IPA\n" "DK0IU\n" "DK0IW\n" "DK0IZ\n" "DK0LD\n" "DK0LE\n" "DK0MBB\n" "DK0MIT\n" "DK0MM\n" "DK0MN\n" "DK0OD\n" "DK0OG\n" "DK0PC\n" "DK0PM\n" "DK0PO\n" "DK0QQ\n" "DK0RX\n" "DK0SU\n" "DK0TZ\n" "DK0V\n" "DK0WL\n" "DK0WW\n" "DK0XB\n" "DK0YA\n" "DK1A\n" "DK1AA\n" "DK1AC\n" "DK1AF\n" "DK1AQ\n" "DK1AUP\n" "DK1AW\n" "DK1AX\n" "DK1BN\n" "DK1BT\n" "DK1BX\n" "DK1CY\n" "DK1DN\n" "DK1EAW\n" "DK1EI\n" "DK1ER\n" "DK1F\n" "DK1FB\n" "DK1FT\n" "DK1FW\n" "DK1GD\n" "DK1GW\n" "DK1HKU\n" "DK1HO\n" "DK1HV\n" "DK1II\n" "DK1IP\n" "DK1IZ\n" "DK1JU\n" "DK1KC\n" "DK1KF\n" "DK1KH\n" "DK1LRS\n" "DK1MA\n" "DK1MF\n" "DK1MM\n" "DK1NKW\n" "DK1NO\n" "DK1ODE\n" "DK1PG\n" "DK1PU\n" "DK1PZ\n" "DK1QC\n" "DK1QH\n" "DK1QO\n" "DK1QV\n" "DK1RS\n" "DK1SI\n" "DK1TR\n" "DK1TS\n" "DK1TX\n" "DK1VFA\n" "DK1WA\n" "DK1WB\n" "DK1WER\n" "DK1WU\n" "DK1WZ\n" "DK1XC\n" "DK1YP\n" "DK1YY\n" "DK2AI\n" "DK2AJ\n" "DK2AR\n" "DK2AT\n" "DK2AY\n" "DK2BH\n" "DK2BJ\n" "DK2CF\n" "DK2CRN\n" "DK2CX\n" "DK2DB\n" "DK2DD\n" "DK2DH\n" "DK2ELF\n" "DK2FG\n" "DK2GZ\n" "DK2HZ\n" "DK2IO\n" "DK2IX\n" "DK2JP\n" "DK2LO\n" "DK2ML\n" "DK2NPM\n" "DK2NZ\n" "DK2OY\n" "DK2PR\n" "DK2PS\n" "DK2PZ\n" "DK2QF\n" "DK2RT\n" "DK2RZ\n" "DK2SF\n" "DK2SG\n" "DK2SZ\n" "DK2TA\n" "DK2TG\n" "DK2TX\n" "DK2VA\n" "DK2VM\n" "DK2WC\n" "DK2WM\n" "DK2YI\n" "DK2YL\n" "DK2ZO\n" "DK3AX\n" "DK3BN\n" "DK3BT\n" "DK3CU\n" "DK3DG\n" "DK3DM\n" "DK3DUA\n" "DK3EG\n" "DK3FW\n" "DK3GG\n" "DK3GI\n" "DK3HA\n" "DK3HL\n" "DK3HV\n" "DK3KD\n" "DK3KN\n" "DK3LT\n" "DK3NU\n" "DK3PM\n" "DK3QZ\n" "DK3RA\n" "DK3RED\n" "DK3RP\n" "DK3SN\n" "DK3T\n" "DK3TL\n" "DK3UA\n" "DK3UO\n" "DK3UZ\n" "DK3W\n" "DK3WG\n" "DK3WI\n" "DK3WJ\n" "DK3WM\n" "DK3WN\n" "DK3WW\n" "DK3YD\n" "DK4A\n" "DK4AN\n" "DK4BY\n" "DK4CR\n" "DK4DJ\n" "DK4DS\n" "DK4EF\n" "DK4FG\n" "DK4GKR\n" "DK4IO\n" "DK4IS\n" "DK4JPC\n" "DK4JT\n" "DK4K\n" "DK4KI\n" "DK4KL\n" "DK4KW\n" "DK4LEH\n" "DK4LI\n" "DK4LX\n" "DK4MO\n" "DK4MX\n" "DK4NJ\n" "DK4QT\n" "DK4RL\n" "DK4RM\n" "DK4RW\n" "DK4SC\n" "DK4SDR\n" "DK4TP\n" "DK4UD\n" "DK4US\n" "DK4UV\n" "DK4VF\n" "DK4VW\n" "DK4VY\n" "DK4WA\n" "DK4WF\n" "DK4WW\n" "DK4XB\n" "DK4YF\n" "DK4YJ\n" "DK4ZZ\n" "DK5AD\n" "DK5AI\n" "DK5AL\n" "DK5AN\n" "DK5CCA\n" "DK5CS\n" "DK5D\n" "DK5DC\n" "DK5DQ\n" "DK5DS\n" "DK5E\n" "DK5EC\n" "DK5EQ\n" "DK5EZ\n" "DK5FF\n" "DK5GT\n" "DK5HB\n" "DK5HZ\n" "DK5IM\n" "DK5IP\n" "DK5IR\n" "DK5JA\n" "DK5JM\n" "DK5JX\n" "DK5KMA\n" "DK5M\n" "DK5MB\n" "DK5MJ\n" "DK5MO\n" "DK5MV\n" "DK5OS\n" "DK5PF\n" "DK5PQ\n" "DK5PR\n" "DK5QN\n" "DK5RO\n" "DK5SF\n" "DK5ST\n" "DK5TX\n" "DK5VA\n" "DK5WB\n" "DK5WL\n" "DK5WMA\n" "DK5WN\n" "DK5WO\n" "DK5XG\n" "DK5XI\n" "DK5ZO\n" "DK5ZX\n" "DK6AH\n" "DK6AJ\n" "DK6AN\n" "DK6AO\n" "DK6AR\n" "DK6AS\n" "DK6AV\n" "DK6AY\n" "DK6BT\n" "DK6CQ\n" "DK6CS\n" "DK6FI\n" "DK6HD\n" "DK6HW\n" "DK6IM\n" "DK6IR\n" "DK6MO\n" "DK6NC\n" "DK6NF\n" "DK6PW\n" "DK6QW\n" "DK6RF\n" "DK6RS\n" "DK6TA\n" "DK6TP\n" "DK6TV\n" "DK6UZ\n" "DK6WA\n" "DK6WH\n" "DK6WL\n" "DK6XR\n" "DK6XZ\n" "DK7AN\n" "DK7AW\n" "DK7BT\n" "DK7CH\n" "DK7CX\n" "DK7DV\n" "DK7DY\n" "DK7FP\n" "DK7FS\n" "DK7FX\n" "DK7FZ\n" "DK7GH\n" "DK7HA\n" "DK7IF\n" "DK7JQ\n" "DK7KR\n" "DK7M\n" "DK7MCX\n" "DK7MD\n" "DK7OM\n" "DK7PE\n" "DK7SP\n" "DK7SS\n" "DK7TM\n" "DK7UM\n" "DK7UU\n" "DK7VW\n" "DK7YY\n" "DK7YY/P\n" "DK7ZB\n" "DK7ZH\n" "DK7ZT\n" "DK8AF\n" "DK8AW\n" "DK8AX\n" "DK8CC\n" "DK8CX\n" "DK8DV\n" "DK8DX\n" "DK8EY\n" "DK8FA\n" "DK8FD\n" "DK8FS\n" "DK8IF\n" "DK8IL\n" "DK8IZ\n" "DK8JB\n" "DK8KF\n" "DK8MCT\n" "DK8MW\n" "DK8MZ\n" "DK8NC\n" "DK8NG\n" "DK8NI\n" "DK8NM\n" "DK8NT\n" "DK8NX\n" "DK8OL\n" "DK8PX\n" "DK8QY\n" "DK8RE\n" "DK8SR\n" "DK8SX\n" "DK8TP\n" "DK8TU\n" "DK8VK\n" "DK8YY\n" "DK8ZB\n" "DK9AP\n" "DK9BW\n" "DK9CG\n" "DK9CL\n" "DK9CR\n" "DK9CS\n" "DK9DA\n" "DK9EA\n" "DK9ETM\n" "DK9FEC\n" "DK9HE\n" "DK9HN\n" "DK9IP\n" "DK9JI\n" "DK9JS\n" "DK9KC\n" "DK9KX\n" "DK9LB\n" "DK9LJ\n" "DK9MH\n" "DK9MS\n" "DK9NCX\n" "DK9NM\n" "DK9OR\n" "DK9OY\n" "DK9PS\n" "DK9PY\n" "DK9PZ\n" "DK9QD\n" "DK9SF\n" "DK9TN\n" "DK9UMA\n" "DK9VA\n" "DK9WB\n" "DK9WI\n" "DL0AA\n" "DL0ABK\n" "DL0AO\n" "DL0AS\n" "DL0ASD\n" "DL0AT\n" "DL0BAS\n" "DL0BI\n" "DL0BL\n" "DL0BMW\n" "DL0BO\n" "DL0BV\n" "DL0C\n" "DL0CB\n" "DL0CS\n" "DL0DAB\n" "DL0DEF\n" "DL0DO\n" "DL0DPM\n" "DL0DSA\n" "DL0DWD\n" "DL0DWE\n" "DL0EH\n" "DL0EKO\n" "DL0ER\n" "DL0ERF\n" "DL0ERP\n" "DL0FC\n" "DL0FOR\n" "DL0FR\n" "DL0FTL\n" "DL0GD\n" "DL0GDP\n" "DL0GER/P\n" "DL0GL\n" "DL0HA\n" "DL0HFC\n" "DL0HN\n" "DL0HNF\n" "DL0HSC\n" "DL0II\n" "DL0IL\n" "DL0IR\n" "DL0IV\n" "DL0KB\n" "DL0KCT\n" "DL0KK\n" "DL0KU\n" "DL0KW\n" "DL0KWH\n" "DL0LC\n" "DL0LN\n" "DL0MB\n" "DL0MET\n" "DL0MFS\n" "DL0MFX\n" "DL0ML\n" "DL0N\n" "DL0NG\n" "DL0NP\n" "DL0NS\n" "DL0NZ\n" "DL0OS\n" "DL0P\n" "DL0PB\n" "DL0PE\n" "DL0QQ\n" "DL0RM/P\n" "DL0SLS/P\n" "DL0SN\n" "DL0SOP\n" "DL0SP\n" "DL0TD\n" "DL0TE\n" "DL0TU\n" "DL0TUM\n" "DL0UM\n" "DL0VLA\n" "DL0VLP\n" "DL0VN\n" "DL0VV\n" "DL0WAE\n" "DL0WB\n" "DL0WH\n" "DL0WW\n" "DL0XA\n" "DL0YE\n" "DL1A\n" "DL1AB\n" "DL1ABJ\n" "DL1AGS\n" "DL1AH\n" "DL1AIW\n" "DL1AKL\n" "DL1AKP\n" "DL1AKU\n" "DL1AKZ\n" "DL1AL\n" "DL1ALA\n" "DL1ALB\n" "DL1ALN\n" "DL1AMH\n" "DL1AMQ\n" "DL1ANA\n" "DL1AO\n" "DL1AOB\n" "DL1AOP\n" "DL1AP\n" "DL1APW\n" "DL1APX\n" "DL1AQU/P\n" "DL1AQY\n" "DL1ARD\n" "DL1ARH\n" "DL1ARJ\n" "DL1ARS\n" "DL1ASA\n" "DL1ASF\n" "DL1ASP\n" "DL1ATR\n" "DL1AUZ\n" "DL1AVA\n" "DL1AVF\n" "DL1AVK\n" "DL1AVU\n" "DL1AWM\n" "DL1AXX\n" "DL1AYU\n" "DL1AZA\n" "DL1AZI\n" "DL1AZK\n" "DL1AZZ\n" "DL1BA\n" "DL1BAM\n" "DL1BBP\n" "DL1BBR\n" "DL1BFR\n" "DL1BI\n" "DL1BKI\n" "DL1BKK\n" "DL1BKT\n" "DL1BRD\n" "DL1BRL\n" "DL1BTE\n" "DL1BUG\n" "DL1BUT\n" "DL1BWU\n" "DL1BYL\n" "DL1BYZ\n" "DL1BZA\n" "DL1CC\n" "DL1CF\n" "DL1CHK\n" "DL1CJ/P\n" "DL1CLM\n" "DL1CW\n" "DL1D\n" "DL1DA\n" "DL1DAW\n" "DL1DBR\n" "DL1DBV\n" "DL1DCT\n" "DL1DF\n" "DL1DF/P\n" "DL1DH\n" "DL1DPN\n" "DL1DQW\n" "DL1DQY\n" "DL1DQZ\n" "DL1DRE\n" "DL1DSN\n" "DL1DSW\n" "DL1DTC\n" "DL1DTF\n" "DL1DTL\n" "DL1DUO\n" "DL1DUS\n" "DL1DVE\n" "DL1DWL\n" "DL1DWR\n" "DL1DXA\n" "DL1DXF\n" "DL1EAL\n" "DL1ECG\n" "DL1ECK\n" "DL1EEC\n" "DL1EEZ\n" "DL1EF\n" "DL1EFD\n" "DL1EHR\n" "DL1EJA\n" "DL1EJD\n" "DL1EK\n" "DL1EKC/P\n" "DL1EKG\n" "DL1EKO\n" "DL1EL\n" "DL1ELY\n" "DL1EMY\n" "DL1EST\n" "DL1ET\n" "DL1EV\n" "DL1EZ\n" "DL1FAA\n" "DL1FCU\n" "DL1FDK\n" "DL1FDL\n" "DL1FKA\n" "DL1FMG\n" "DL1FYV\n" "DL1FZZ\n" "DL1GBQ\n" "DL1GCY\n" "DL1GDS\n" "DL1GHJ\n" "DL1GKC\n" "DL1GPR\n" "DL1GTZ\n" "DL1HAA\n" "DL1HBD\n" "DL1HBL\n" "DL1HCM\n" "DL1HIK\n" "DL1HQE\n" "DL1HRN\n" "DL1HRY\n" "DL1HSI\n" "DL1HSR\n" "DL1HTX\n" "DL1HTY\n" "DL1HUH\n" "DL1HXA\n" "DL1IA\n" "DL1IAO\n" "DL1ICB\n" "DL1II\n" "DL1JB\n" "DL1JCM\n" "DL1JDQ\n" "DL1JDU\n" "DL1JEL\n" "DL1JFM\n" "DL1JGG\n" "DL1JGO\n" "DL1JIU\n" "DL1JKK\n" "DL1JML\n" "DL1JMS\n" "DL1JNA\n" "DL1JPF\n" "DL1JSO\n" "DL1KAS\n" "DL1KCQ\n" "DL1KEW\n" "DL1KLO\n" "DL1KSE\n" "DL1KSE/P\n" "DL1KUN\n" "DL1KUR\n" "DL1KVS\n" "DL1KWK\n" "DL1KZA\n" "DL1LAE\n" "DL1LAF\n" "DL1LH\n" "DL1LOD\n" "DL1LQA\n" "DL1LQR\n" "DL1LRA\n" "DL1LRI\n" "DL1LSH\n" "DL1LTK\n" "DL1MAJ\n" "DL1MDU\n" "DL1MDV\n" "DL1MGB\n" "DL1MHJ\n" "DL1MIM\n" "DL1MUC\n" "DL1NE\n" "DL1NEO\n" "DL1NFC\n" "DL1NFG\n" "DL1NGS\n" "DL1NHW\n" "DL1NKS\n" "DL1NPG\n" "DL1NRC\n" "DL1NUB\n" "DL1NUX\n" "DL1OD\n" "DL1OJ\n" "DL1OLI\n" "DL1PF\n" "DL1PR\n" "DL1PT\n" "DL1QQ\n" "DL1QW\n" "DL1RCD\n" "DL1REM\n" "DL1RG\n" "DL1RH\n" "DL1RLB\n" "DL1RMO\n" "DL1RNT\n" "DL1ROJ\n" "DL1ROT\n" "DL1RPC\n" "DL1RTD\n" "DL1RTL\n" "DL1RTS\n" "DL1RWO\n" "DL1RWS\n" "DL1RYD\n" "DL1SA\n" "DL1SAN\n" "DL1SBF\n" "DL1SCH\n" "DL1SEC\n" "DL1SKK\n" "DL1SMA\n" "DL1SP\n" "DL1SRS\n" "DL1ST\n" "DL1STG\n" "DL1STV\n" "DL1SVA\n" "DL1SWB\n" "DL1SWT\n" "DL1SXB\n" "DL1THB\n" "DL1TKB\n" "DL1TKL\n" "DL1TL\n" "DL1TPY\n" "DL1TRK\n" "DL1TS\n" "DL1TTX\n" "DL1UP\n" "DL1USB\n" "DL1VDL\n" "DL1VF\n" "DL1VFR\n" "DL1VJL\n" "DL1VRL\n" "DL1VTL\n" "DL1WA\n" "DL1WH\n" "DL1XA\n" "DL1XP\n" "DL1XT\n" "DL1XW\n" "DL1XX\n" "DL1YAL\n" "DL1YAW\n" "DL1YCZ\n" "DL1YD\n" "DL1YEF\n" "DL1YEL\n" "DL1YEN\n" "DL1YFF\n" "DL1YGH\n" "DL1YP\n" "DL1Z\n" "DL1ZBO\n" "DL1ZM\n" "DL1ZU\n" "DL2A\n" "DL2AA\n" "DL2ABM\n" "DL2AJB\n" "DL2AK\n" "DL2AL\n" "DL2AMD\n" "DL2ANM\n" "DL2ARD\n" "DL2ARG\n" "DL2ARH\n" "DL2ARN\n" "DL2ASB\n" "DL2AWA\n" "DL2AWB\n" "DL2AXA\n" "DL2AXM\n" "DL2AYJ\n" "DL2AYK\n" "DL2BAQ\n" "DL2BBV\n" "DL2BIS\n" "DL2BM\n" "DL2BQD\n" "DL2BUM\n" "DL2BWG\n" "DL2BWO\n" "DL2CC\n" "DL2CHN\n" "DL2CK\n" "DL2DCD\n" "DL2DCX\n" "DL2DIE\n" "DL2DQL\n" "DL2DRM\n" "DL2DRU\n" "DL2DSL\n" "DL2DTJ\n" "DL2DTL\n" "DL2DUA\n" "DL2DVE\n" "DL2DWP\n" "DL2DX\n" "DL2DXA\n" "DL2DYL\n" "DL2EAB\n" "DL2EAM\n" "DL2F\n" "DL2FAG\n" "DL2FAR\n" "DL2FCA\n" "DL2FCB\n" "DL2FDL\n" "DL2FK\n" "DL2FP\n" "DL2GAR\n" "DL2GBB\n" "DL2GF\n" "DL2GGE\n" "DL2GWZ\n" "DL2HAE\n" "DL2HCB\n" "DL2HJ\n" "DL2HRE\n" "DL2HRF\n" "DL2HRT\n" "DL2HRZ\n" "DL2HUI\n" "DL2HUM\n" "DL2HVM\n" "DL2HWA\n" "DL2HWB\n" "DL2HWH\n" "DL2HWI\n" "DL2HX\n" "DL2HYH\n" "DL2IAN\n" "DL2IH\n" "DL2IPU\n" "DL2JAA\n" "DL2JAW\n" "DL2JIM\n" "DL2JKE\n" "DL2JLB\n" "DL2JRM\n" "DL2JT\n" "DL2JX\n" "DL2KDW\n" "DL2KQ\n" "DL2KUA\n" "DL2KUF\n" "DL2KUZ\n" "DL2LAR\n" "DL2LI\n" "DL2LMS\n" "DL2LRT\n" "DL2LSM\n" "DL2LTM\n" "DL2LZ\n" "DL2MDU\n" "DL2MDZ\n" "DL2MGF\n" "DL2MIH\n" "DL2MIJ\n" "DL2MJ\n" "DL2MKX\n" "DL2MLU\n" "DL2MM\n" "DL2MRK\n" "DL2MSA\n" "DL2MWB\n" "DL2NAI\n" "DL2NBH\n" "DL2NBU\n" "DL2NBY\n" "DL2NC\n" "DL2NEA\n" "DL2NEE\n" "DL2NFC\n" "DL2NO\n" "DL2NY\n" "DL2OBN\n" "DL2OBO\n" "DL2OCE\n" "DL2OE\n" "DL2OM\n" "DL2PAN\n" "DL2QB\n" "DL2QT\n" "DL2RBB\n" "DL2RBT\n" "DL2RMC\n" "DL2RPS\n" "DL2RSH\n" "DL2RTJ\n" "DL2RTL\n" "DL2RU\n" "DL2RUG\n" "DL2SAX\n" "DL2SBF\n" "DL2SER\n" "DL2SUB\n" "DL2SWB\n" "DL2SWI\n" "DL2SWN\n" "DL2SWW\n" "DL2TG\n" "DL2TI\n" "DL2TOS\n" "DL2UH\n" "DL2UR\n" "DL2UX\n" "DL2VA\n" "DL2VB\n" "DL2VBN\n" "DL2VK\n" "DL2VLA\n" "DL2VM\n" "DL2VNL\n" "DL2VPF\n" "DL2VPO\n" "DL2VRL\n" "DL2VSF\n" "DL2VVL\n" "DL2VWR\n" "DL2WB\n" "DL2WJT\n" "DL2XB\n" "DL2YCA\n" "DL2YED\n" "DL2YET\n" "DL2YL\n" "DL2YMR\n" "DL2ZA\n" "DL2ZAE\n" "DL2ZBO\n" "DL2ZN\n" "DL3ABL\n" "DL3AG\n" "DL3ALI\n" "DL3AMB\n" "DL3AMW\n" "DL3ANK\n" "DL3AO\n" "DL3APK\n" "DL3APO\n" "DL3AQJ\n" "DL3ARH\n" "DL3ARK\n" "DL3ARM\n" "DL3AS\n" "DL3AVI\n" "DL3AWB\n" "DL3AWI\n" "DL3AYJ\n" "DL3AZI\n" "DL3BAL\n" "DL3BBY\n" "DL3BCR\n" "DL3BCU\n" "DL3BPC\n" "DL3BQA\n" "DL3BRA\n" "DL3BRE\n" "DL3BUE\n" "DL3BVA\n" "DL3BXX\n" "DL3CA\n" "DL3DBY\n" "DL3DCQ\n" "DL3DQL\n" "DL3DRN\n" "DL3DTH\n" "DL3DXF\n" "DL3DXX\n" "DL3EA\n" "DL3EBX\n" "DL3EEE\n" "DL3EK\n" "DL3EL\n" "DL3FBB\n" "DL3FBJ\n" "DL3FCG\n" "DL3FDT\n" "DL3FF\n" "DL3FSC\n" "DL3G\n" "DL3GA\n" "DL3GCB\n" "DL3GD\n" "DL3GDS\n" "DL3GER\n" "DL3HAA\n" "DL3HRT\n" "DL3HRW\n" "DL3HRZ\n" "DL3HSC\n" "DL3HWD\n" "DL3HXX\n" "DL3IAC\n" "DL3JA\n" "DL3JAN\n" "DL3JFN\n" "DL3JH\n" "DL3JJ\n" "DL3JON\n" "DL3JPN\n" "DL3JRA\n" "DL3KDC\n" "DL3KDS\n" "DL3KF\n" "DL3KO\n" "DL3KP\n" "DL3KUD\n" "DL3KUF\n" "DL3KUM\n" "DL3KVR\n" "DL3KVT\n" "DL3KWF\n" "DL3KWR\n" "DL3KZA\n" "DL3LA\n" "DL3LAB\n" "DL3LBM\n" "DL3LE\n" "DL3MBG\n" "DL3MBJ\n" "DL3MBX\n" "DL3MCO\n" "DL3MDJ\n" "DL3MGK\n" "DL3MGN\n" "DL3MR\n" "DL3NAA\n" "DL3NCR\n" "DL3NCS\n" "DL3NDD\n" "DL3NDP\n" "DL3NGN\n" "DL3NSM\n" "DL3OAU\n" "DL3OBQ\n" "DL3OBW\n" "DL3OCF\n" "DL3OH\n" "DL3OHB\n" "DL3OR\n" "DL3OV\n" "DL3PA\n" "DL3PN\n" "DL3PU\n" "DL3QQ\n" "DL3RAD\n" "DL3RCF\n" "DL3RDM\n" "DL3RSB\n" "DL3SBD\n" "DL3SCN\n" "DL3SDN\n" "DL3SEM\n" "DL3SWS\n" "DL3SZ\n" "DL3TC\n" "DL3TD\n" "DL3TNA\n" "DL3VDL\n" "DL3VL\n" "DL3VTA\n" "DL3VTL\n" "DL3VZL\n" "DL3WKG\n" "DL3XM\n" "DL3XS\n" "DL3YA\n" "DL3YAF\n" "DL3YCF\n" "DL3YCX\n" "DL3YDY\n" "DL3YEE\n" "DL3YHM\n" "DL3YL\n" "DL3YM\n" "DL3ZAI\n" "DL3ZH\n" "DL3ZI\n" "DL3ZM\n" "DL3ZZA\n" "DL4A\n" "DL4AAE\n" "DL4AC\n" "DL4ALI\n" "DL4AO\n" "DL4AWA\n" "DL4BBJ\n" "DL4BCJ\n" "DL4CC\n" "DL4CF\n" "DL4CH\n" "DL4CW\n" "DL4DBG\n" "DL4DBM\n" "DL4DCE\n" "DL4DCL\n" "DL4DG\n" "DL4DKM\n" "DL4DQA\n" "DL4DTL\n" "DL4DZL\n" "DL4EAX\n" "DL4EBA\n" "DL4EBV\n" "DL4EBW\n" "DL4EDB\n" "DL4EDC\n" "DL4EPM\n" "DL4FAP\n" "DL4FCH\n" "DL4FDI\n" "DL4FDM\n" "DL4FF\n" "DL4FN\n" "DL4FO\n" "DL4GBA\n" "DL4GN\n" "DL4HG\n" "DL4HG/P\n" "DL4HRM\n" "DL4HSI\n" "DL4HTK\n" "DL4HWI\n" "DL4IAH\n" "DL4IAL\n" "DL4IAZ\n" "DL4IW\n" "DL4IZ\n" "DL4JLM\n" "DL4JMN\n" "DL4JNB\n" "DL4JU\n" "DL4JWU\n" "DL4JYT\n" "DL4KCA\n" "DL4KG\n" "DL4KUG\n" "DL4KW\n" "DL4LAM\n" "DL4LAX\n" "DL4LBK\n" "DL4LBM\n" "DL4LH\n" "DL4MA\n" "DL4MAQ\n" "DL4MAU\n" "DL4MBY\n" "DL4MCF\n" "DL4MDO\n" "DL4ME\n" "DL4MEV\n" "DL4MFC\n" "DL4MFF\n" "DL4MFP\n" "DL4MHA\n" "DL4MN\n" "DL4MNG\n" "DL4MP\n" "DL4NBE\n" "DL4NEG\n" "DL4NER\n" "DL4NN\n" "DL4NT\n" "DL4NY\n" "DL4OCE\n" "DL4OCH\n" "DL4OL\n" "DL4PU/P\n" "DL4PY\n" "DL4R\n" "DL4RAK\n" "DL4RAT\n" "DL4RBV\n" "DL4RCK\n" "DL4RDJ\n" "DL4RDP\n" "DL4RU\n" "DL4RX\n" "DL4SDW\n" "DL4SL\n" "DL4SUN\n" "DL4SVA\n" "DL4SZB\n" "DL4TJ\n" "DL4TL\n" "DL4TZ\n" "DL4UCS\n" "DL4UL\n" "DL4UNY\n" "DL4VAI\n" "DL4VAQ\n" "DL4VBU\n" "DL4VCG\n" "DL4VCR\n" "DL4VM\n" "DL4VQ\n" "DL4WA\n" "DL4WD\n" "DL4WDK\n" "DL4WG\n" "DL4XU\n" "DL4YAO\n" "DL4YAR\n" "DL4YBP\n" "DL4YIH\n" "DL4YR\n" "DL4YY\n" "DL4ZA\n" "DL4ZB\n" "DL4ZBP\n" "DL4ZBU\n" "DL4ZBY\n" "DL4ZM\n" "DL5AI\n" "DL5ALW\n" "DL5AMF\n" "DL5AN\n" "DL5ANE\n" "DL5ANS\n" "DL5ANT\n" "DL5AOJ\n" "DL5ARM\n" "DL5ARZ\n" "DL5ASE\n" "DL5ASK\n" "DL5AWI\n" "DL5AX\n" "DL5AXJ\n" "DL5AXX\n" "DL5AYI\n" "DL5AZA\n" "DL5BAW\n" "DL5BCF\n" "DL5CD\n" "DL5CF\n" "DL5CK\n" "DL5CL\n" "DL5CO\n" "DL5CR\n" "DL5CT\n" "DL5CW\n" "DL5CX\n" "DL5DBH\n" "DL5DCL\n" "DL5DD\n" "DL5DF\n" "DL5DRM\n" "DL5DSM\n" "DL5DWF\n" "DL5DXS\n" "DL5DZ\n" "DL5EBF\n" "DL5FAC\n" "DL5FAM\n" "DL5FBB\n" "DL5FCV\n" "DL5FCZ\n" "DL5FR\n" "DL5FU\n" "DL5GAC\n" "DL5GBG\n" "DL5GBN\n" "DL5GCH\n" "DL5HAB\n" "DL5HN\n" "DL5HP\n" "DL5IAH\n" "DL5IC\n" "DL5IO\n" "DL5JAB\n" "DL5JAG\n" "DL5JAG/P\n" "DL5JAN\n" "DL5JBW\n" "DL5JH\n" "DL5JRA\n" "DL5JS\n" "DL5JSP\n" "DL5JWL\n" "DL5KM\n" "DL5KMS\n" "DL5KUA\n" "DL5KUD\n" "DL5KUR\n" "DL5KUS\n" "DL5KUT\n" "DL5KVV\n" "DL5L\n" "DL5LBY\n" "DL5LWM\n" "DL5MAE\n" "DL5MBY\n" "DL5MC\n" "DL5MEV\n" "DL5MFL\n" "DL5MG\n" "DL5MHR\n" "DL5MK\n" "DL5ML\n" "DL5MLO\n" "DL5MO\n" "DL5MU\n" "DL5MX\n" "DL5NA\n" "DL5NDX\n" "DL5NO\n" "DL5NUA\n" "DL5OAB\n" "DL5OAS\n" "DL5OB\n" "DL5OCD\n" "DL5OO\n" "DL5PW\n" "DL5QS\n" "DL5RBR\n" "DL5RBW\n" "DL5RDI\n" "DL5RDO\n" "DL5RDP\n" "DL5RF\n" "DL5RJ\n" "DL5RK\n" "DL5RM\n" "DL5RMH\n" "DL5RU\n" "DL5SBA\n" "DL5SE\n" "DL5SL\n" "DL5ST\n" "DL5SVB\n" "DL5SWB\n" "DL5SZB\n" "DL5UR\n" "DL5VW\n" "DL5VZ\n" "DL5WC\n" "DL5WG\n" "DL5WK\n" "DL5WM\n" "DL5WP\n" "DL5WS\n" "DL5WW\n" "DL5WX\n" "DL5XAT\n" "DL5XJ\n" "DL5YAL\n" "DL5YAS\n" "DL5YCI\n" "DL5YEE\n" "DL5YL\n" "DL5YM\n" "DL5YWM\n" "DL5YYM\n" "DL5ZA\n" "DL5ZAA\n" "DL5ZB\n" "DL5ZBA\n" "DL5ZBO\n" "DL5ZBS\n" "DL5ZG\n" "DL5ZL\n" "DL5ZL/P\n" "DL60DARC\n" "DL6AAF\n" "DL6AAO\n" "DL6ABB\n" "DL6ABN\n" "DL6AG\n" "DL6ALJ\n" "DL6AP\n" "DL6AST\n" "DL6ATI\n" "DL6ATM\n" "DL6AWJ\n" "DL6AZ\n" "DL6BBR\n" "DL6BBT\n" "DL6BJ\n" "DL6BLD\n" "DL6BQE\n" "DL6BR\n" "DL6CGB\n" "DL6CGX\n" "DL6CKP\n" "DL6CMK\n" "DL6CNG\n" "DL6CT\n" "DL6CWL\n" "DL6CX\n" "DL6DCD\n" "DL6DH\n" "DL6DSA\n" "DL6DVU\n" "DL6EAQ\n" "DL6ERD\n" "DL6ET\n" "DL6EZ\n" "DL6FA\n" "DL6FAH\n" "DL6FAN\n" "DL6FAX\n" "DL6FBH\n" "DL6FBL\n" "DL6FBR\n" "DL6FCB\n" "DL6FRG\n" "DL6GV\n" "DL6HCF\n" "DL6HRW\n" "DL6IAN\n" "DL6IY\n" "DL6JCB\n" "DL6JGN\n" "DL6JI\n" "DL6JV\n" "DL6JZ\n" "DL6KAC\n" "DL6KCR\n" "DL6KHW\n" "DL6KO\n" "DL6KR\n" "DL6KT\n" "DL6KVA\n" "DL6KVH\n" "DL6KWN\n" "DL6KY\n" "DL6LBQ\n" "DL6LW\n" "DL6MAO\n" "DL6MDG\n" "DL6MFK\n" "DL6MGR\n" "DL6MHG\n" "DL6MHW\n" "DL6MIG\n" "DL6MN\n" "DL6MRS\n" "DL6MTA\n" "DL6MWG\n" "DL6NAL\n" "DL6NAL/P\n" "DL6NBR\n" "DL6NCY\n" "DL6NDW\n" "DL6NEF\n" "DL6NWA\n" "DL6OA\n" "DL6OAA\n" "DL6OCF\n" "DL6OCM\n" "DL6OZ\n" "DL6PO\n" "DL6QW\n" "DL6RAI\n" "DL6RAW\n" "DL6RAW/P\n" "DL6RBG\n" "DL6RBH\n" "DL6RBO\n" "DL6RCD\n" "DL6SDW\n" "DL6SFR\n" "DL6SRD\n" "DL6TK\n" "DL6TQ\n" "DL6UAA\n" "DL6UAM\n" "DL6UBM\n" "DL6UGF\n" "DL6UHA\n" "DL6UHD\n" "DL6UJ\n" "DL6UKL\n" "DL6UKW\n" "DL6UM\n" "DL6UMF\n" "DL6UNF\n" "DL6UOF\n" "DL6USA\n" "DL6VK\n" "DL6VRG\n" "DL6WT\n" "DL6XA\n" "DL6XK\n" "DL6XX\n" "DL6XZ\n" "DL6YCU\n" "DL6YDH\n" "DL6YFG\n" "DL6ZBN\n" "DL6ZFG\n" "DL6ZXG\n" "DL7AAG\n" "DL7AEV\n" "DL7AFY\n" "DL7AMU\n" "DL7ANR\n" "DL7AOJ\n" "DL7AOS\n" "DL7APK\n" "DL7APT\n" "DL7AQT\n" "DL7AQU\n" "DL7ARJ\n" "DL7ARM\n" "DL7ARV\n" "DL7AT\n" "DL7AU\n" "DL7AXM\n" "DL7BA\n" "DL7BC\n" "DL7BPM\n" "DL7BQ\n" "DL7BW\n" "DL7BY\n" "DL7CB\n" "DL7CK\n" "DL7CM\n" "DL7CO\n" "DL7CS\n" "DL7CU\n" "DL7CX\n" "DL7DAX\n" "DL7DCL\n" "DL7DJ\n" "DL7DO\n" "DL7DS\n" "DL7DZ\n" "DL7ED\n" "DL7EDH\n" "DL7ET\n" "DL7FA\n" "DL7FCQ\n" "DL7FN\n" "DL7GEM\n" "DL7GN\n" "DL7GP\n" "DL7GW\n" "DL7HT\n" "DL7HU\n" "DL7HZ\n" "DL7IO\n" "DL7JAN\n" "DL7JOM\n" "DL7JRD\n" "DL7JV\n" "DL7LG\n" "DL7LX\n" "DL7LZ\n" "DL7OD\n" "DL7OK\n" "DL7ON\n" "DL7PA\n" "DL7PV\n" "DL7QU\n" "DL7QW\n" "DL7RAG\n" "DL7RV\n" "DL7SAQ\n" "DL7SBV\n" "DL7SI\n" "DL7SLB\n" "DL7SP\n" "DL7TJ\n" "DL7UAJ\n" "DL7UCW\n" "DL7UCX\n" "DL7UDA\n" "DL7UDG\n" "DL7UEB\n" "DL7UFN\n" "DL7UG\n" "DL7UGO\n" "DL7UIO\n" "DL7UK\n" "DL7UKA\n" "DL7ULM\n" "DL7UM\n" "DL7UMK\n" "DL7UMK/P\n" "DL7UML\n" "DL7UPF\n" "DL7UPN\n" "DL7URH\n" "DL7USA\n" "DL7USY\n" "DL7UVO\n" "DL7UWE\n" "DL7UWR\n" "DL7UXG\n" "DL7VAF\n" "DL7VAI\n" "DL7VBJ\n" "DL7VEE\n" "DL7VFM\n" "DL7VHP\n" "DL7VIO\n" "DL7VKG\n" "DL7VMM\n" "DL7VOE\n" "DL7VPE\n" "DL7VPO\n" "DL7VRG\n" "DL7VSN\n" "DL7VX\n" "DL7XR\n" "DL7XU\n" "DL7YAD\n" "DL7YS\n" "DL7YY\n" "DL8AAE\n" "DL8AAM\n" "DL8AAV\n" "DL8ABK\n" "DL8AWK\n" "DL8AX\n" "DL8BED\n" "DL8BTE\n" "DL8BU\n" "DL8CA\n" "DL8CKL\n" "DL8CMM\n" "DL8CN\n" "DL8CO\n" "DL8CWA\n" "DL8DAS\n" "DL8DAZ\n" "DL8DBW\n" "DL8DC\n" "DL8DUL\n" "DL8DW\n" "DL8DWW\n" "DL8DX\n" "DL8DXF\n" "DL8DXL\n" "DL8DXW\n" "DL8DYL\n" "DL8DZV\n" "DL8EAQ\n" "DL8FD\n" "DL8FL\n" "DL8FP\n" "DL8HA\n" "DL8HCO\n" "DL8HK\n" "DL8IH\n" "DL8JDX\n" "DL8JEW\n" "DL8JS\n" "DL8KAC\n" "DL8KJ\n" "DL8KX\n" "DL8LAS\n" "DL8LBK\n" "DL8LDN\n" "DL8MBS\n" "DL8MKG\n" "DL8NBE\n" "DL8NBJ\n" "DL8NCF\n" "DL8NCG\n" "DL8NU\n" "DL8OBF\n" "DL8OH\n" "DL8PG\n" "DL8QC\n" "DL8QS\n" "DL8R\n" "DL8RB\n" "DL8RBS\n" "DL8RCL\n" "DL8RDL\n" "DL8RJ\n" "DL8SAD\n" "DL8SAS\n" "DL8SCG\n" "DL8SH\n" "DL8SMC\n" "DL8STW\n" "DL8TG\n" "DL8TL\n" "DL8TN\n" "DL8TR\n" "DL8UAA\n" "DL8UAT\n" "DL8UCC\n" "DL8UFO\n" "DL8UGF\n" "DL8UI\n" "DL8UKE\n" "DL8ULO\n" "DL8UNF\n" "DL8UO\n" "DL8UP\n" "DL8USA\n" "DL8UVG\n" "DL8UWE\n" "DL8VN\n" "DL8VX\n" "DL8WAA\n" "DL8WAZ\n" "DL8WBB\n" "DL8WEM\n" "DL8WN\n" "DL8WX\n" "DL8XF\n" "DL8YAU\n" "DL8YBM\n" "DL8YH\n" "DL8YR\n" "DL8YS\n" "DL8ZAJ\n" "DL8ZU\n" "DL8ZVG\n" "DL9ABM\n" "DL9AJ\n" "DL9AKA\n" "DL9AWI\n" "DL9BBE\n" "DL9BG\n" "DL9CE\n" "DL9CI\n" "DL9CIA\n" "DL9CM\n" "DL9CW\n" "DL9DA\n" "DL9DAC\n" "DL9DAJ\n" "DL9DRA\n" "DL9DRZ\n" "DL9DWR\n" "DL9DYL\n" "DL9ECA\n" "DL9EE\n" "DL9EI\n" "DL9EJ\n" "DL9EO\n" "DL9FB\n" "DL9FC\n" "DL9GCG\n" "DL9GFB\n" "DL9GMC\n" "DL9GMM\n" "DL9GMN\n" "DL9GR\n" "DL9GRE\n" "DL9GS\n" "DL9GTB\n" "DL9GTI\n" "DL9GTK\n" "DL9GWD\n" "DL9HB\n" "DL9HC\n" "DL9HD\n" "DL9HK\n" "DL9IE\n" "DL9IU\n" "DL9JBN\n" "DL9JL\n" "DL9JN\n" "DL9JON\n" "DL9JSO\n" "DL9LF\n" "DL9LM\n" "DL9MBI\n" "DL9MBZ\n" "DL9MCD\n" "DL9MCO\n" "DL9MDI\n" "DL9MEN\n" "DL9MFY\n" "DL9MKA\n" "DL9MKN\n" "DL9MRF\n" "DL9MS\n" "DL9MWG\n" "DL9NCR\n" "DL9NDS\n" "DL9NDV\n" "DL9NEF\n" "DL9NEI\n" "DL9NM\n" "DL9NO\n" "DL9OC\n" "DL9OCG\n" "DL9OLI\n" "DL9PT\n" "DL9QJ\n" "DL9RBT\n" "DL9RCF\n" "DL9RT\n" "DL9SBL\n" "DL9SEV\n" "DL9SFE\n" "DL9SN\n" "DL9SUB\n" "DL9SXX\n" "DL9TJ\n" "DL9UJF\n" "DL9UO\n" "DL9WC\n" "DL9WJH\n" "DL9WO\n" "DL9XAW\n" "DL9YAJ\n" "DL9YBY\n" "DL9YCS\n" "DL9YDW\n" "DL9YX\n" "DL9ZAL\n" "DL9ZAP\n" "DL9ZEA\n" "DL9ZP\n" "DL9ZWG\n" "DM0E\n" "DM0Y\n" "DM1A\n" "DM1AM\n" "DM1DE\n" "DM1FS\n" "DM1KE\n" "DM1LM\n" "DM1PW\n" "DM1RG\n" "DM1T\n" "DM1TT\n" "DM1YP\n" "DM1YS\n" "DM2A\n" "DM2AF\n" "DM2AML\n" "DM2AOC\n" "DM2AUO\n" "DM2AWM\n" "DM2BM\n" "DM2BPG\n" "DM2BR\n" "DM2BRF\n" "DM2C\n" "DM2DMI\n" "DM2DTH\n" "DM2DXA\n" "DM2EV\n" "DM2FDO\n" "DM2GFN\n" "DM2GG\n" "DM2LB\n" "DM2ORI\n" "DM2RG\n" "DM2RN\n" "DM2RP\n" "DM2TO\n" "DM2TS\n" "DM2XO\n" "DM3B\n" "DM3BJ\n" "DM3CW\n" "DM3DA\n" "DM3DL\n" "DM3F\n" "DM3FF\n" "DM3FG\n" "DM3FZN\n" "DM3GH\n" "DM3HZN\n" "DM3K\n" "DM3KF\n" "DM3KTO\n" "DM3KXL\n" "DM3KZN\n" "DM3MH\n" "DM3ML\n" "DM3MM\n" "DM3MR\n" "DM3PKK\n" "DM3PYA\n" "DM3RB\n" "DM3SCK\n" "DM3SU\n" "DM3VL\n" "DM3W\n" "DM3WSO\n" "DM3X/P\n" "DM3XI\n" "DM3ZF\n" "DM4DB\n" "DM4DX\n" "DM4G\n" "DM4IM\n" "DM4KR\n" "DM4M\n" "DM4TI\n" "DM4TNF\n" "DM4WL\n" "DM4YWL\n" "DM50KWF\n" "DM50PSF\n" "DM5A\n" "DM5AA\n" "DM5BB\n" "DM5CQ\n" "DM5CT\n" "DM5DM\n" "DM5DX\n" "DM5EL\n" "DM5GI\n" "DM5JBN\n" "DM5JF\n" "DM5JL\n" "DM5LK\n" "DM5MA\n" "DM5MM\n" "DM5R\n" "DM5TI\n" "DM5WF\n" "DM5WH\n" "DM5Z\n" "DM5ZQL\n" "DM6DL\n" "DM6HK\n" "DM6TM\n" "DM6YY\n" "DM7C\n" "DM7DX\n" "DM7MM\n" "DM7MRE\n" "DM7RM\n" "DM7XT\n" "DM9CCOL\n" "DM9JM\n" "DM9K\n" "DM9KT\n" "DM9LSB\n" "DN1CS\n" "DN1JC\n" "DN1SJ\n" "DN2LD\n" "DN2WD\n" "DN2WH\n" "DN3AMH/P\n" "DN4NER\n" "DN5KID\n" "DN5PP\n" "DN6WT\n" "DO1AYJ\n" "DO1BEN\n" "DO1CDE\n" "DO1CO\n" "DO1CS\n" "DO1CTL\n" "DO1DEL\n" "DO1DJJ\n" "DO1DMI\n" "DO1DQ\n" "DO1DXX\n" "DO1ESK\n" "DO1FV\n" "DO1GC\n" "DO1GM\n" "DO1HGS\n" "DO1HPW\n" "DO1IJB\n" "DO1IQ\n" "DO1JVA\n" "DO1JWZ\n" "DO1KM\n" "DO1KRT\n" "DO1KUB\n" "DO1MGN\n" "DO1MKA\n" "DO1NWA\n" "DO1OHL\n" "DO1PKL\n" "DO1PM\n" "DO1RTO\n" "DO1SAJ\n" "DO1SJF\n" "DO1SKJ\n" "DO1SSB\n" "DO1THG\n" "DO1TU\n" "DO1UZ\n" "DO1VK\n" "DO1WRB\n" "DO1WUP\n" "DO1YCL\n" "DO1YHN\n" "DO1YNM\n" "DO1YWF\n" "DO2BL\n" "DO2DC\n" "DO2DT\n" "DO2GN\n" "DO2HO\n" "DO2JP\n" "DO2MGY\n" "DO2ML\n" "DO2MS\n" "DO2SBE\n" "DO2SYD\n" "DO2TC\n" "DO2WAL\n" "DO2YPB\n" "DO3AH\n" "DO3BJ\n" "DO3BST\n" "DO3ED\n" "DO3HEL\n" "DO3HF\n" "DO3IR\n" "DO3LU\n" "DO3ME\n" "DO3MU\n" "DO3NN\n" "DO3NO\n" "DO3PKE\n" "DO3SH\n" "DO3SP\n" "DO3UWE\n" "DO3VE\n" "DO3WBH\n" "DO3WG\n" "DO4APB\n" "DO4AV\n" "DO4DW\n" "DO4DXA\n" "DO4HRE\n" "DO4JS\n" "DO4JU\n" "DO4KC\n" "DO4NW\n" "DO4OD\n" "DO4RJ\n" "DO4TP\n" "DO4YU\n" "DO5AWE\n" "DO5DF\n" "DO5DGH\n" "DO5FE\n" "DO5HCS\n" "DO5KWH\n" "DO5LN\n" "DO5MCL\n" "DO5MST\n" "DO5OT\n" "DO5RT\n" "DO5SL\n" "DO5SU\n" "DO5TAN\n" "DO5WA\n" "DO5WD\n" "DO5WW\n" "DO6AL\n" "DO6DZ\n" "DO6ELW\n" "DO6GZ\n" "DO6HMA\n" "DO6JJ\n" "DO6KDS\n" "DO6MBA\n" "DO6NI\n" "DO6OA\n" "DO6PP\n" "DO6RO\n" "DO6SD\n" "DO6SR\n" "DO6TPG\n" "DO6YL\n" "DO7ADH\n" "DO7AF\n" "DO7AK\n" "DO7DC\n" "DO7DSV\n" "DO7DU\n" "DO7FC\n" "DO7HS\n" "DO7JF\n" "DO7JF/P\n" "DO7JVB\n" "DO7LR\n" "DO7MAN\n" "DO7OM\n" "DO7RAF\n" "DO7WP\n" "DO8AH\n" "DO8CW\n" "DO8DL\n" "DO8LA\n" "DO8OL\n" "DO8RW\n" "DO8TB\n" "DO8YX\n" "DO9BC\n" "DO9PL\n" "DO9RE\n" "DO9ST\n" "DP1POL\n" "DP3D\n" "DP3E\n" "DP4A\n" "DP4D\n" "DP4K\n" "DP4N\n" "DP4P\n" "DP4W\n" "DP5A\n" "DP5E\n" "DP5M\n" "DP5W\n" "DP5X\n" "DP6A\n" "DP6M\n" "DP6T\n" "DP7A\n" "DP8P\n" "DP9A\n" "DP9I\n" "DP9Z\n" "DQ0A\n" "DQ0B\n" "DQ0L\n" "DQ1A\n" "DQ3M\n" "DQ4Q\n" "DQ4T\n" "DQ4W\n" "DQ5T\n" "DQ6E\n" "DQ8N\n" "DR0K\n" "DR0X\n" "DR10TCC\n" "DR12IAAF\n" "DR1A\n" "DR1F\n" "DR1R\n" "DR1X\n" "DR2010L\n" "DR2010N\n" "DR2010O\n" "DR20MVP\n" "DR2C\n" "DR2N\n" "DR2P\n" "DR2Q\n" "DR2W\n" "DR3R\n" "DR3W\n" "DR3X\n" "DR4A\n" "DR4G\n" "DR4T\n" "DR4W\n" "DR5A\n" "DR5L\n" "DR5N\n" "DR5O\n" "DR5X\n" "DR5Z\n" "DR600UL\n" "DR60GER\n" "DR6J\n" "DR775TMG\n" "DR7T\n" "DR800GRZ\n" "DR888PL\n" "DR8M\n" "DS0HAN\n" "DS1AFL\n" "DS1CPT\n" "DS1JFY\n" "DS1OKY\n" "DS1PEG\n" "DS1PRD\n" "DS1QMV\n" "DS1REE\n" "DS1RJI\n" "DS2GOO\n" "DS2GWM\n" "DS2JJV\n" "DS2KGJ\n" "DS2OQF\n" "DS3FGV\n" "DS3MLG/2\n" "DS4CNB\n" "DS4DBF\n" "DS4DBG\n" "DS4DRT\n" "DS4FMG\n" "DS4GCS\n" "DS4GEX\n" "DS4GGM\n" "DS4GKF\n" "DS4GKG\n" "DS4OVT\n" "DS5ACV\n" "DS5ANY\n" "DS5BRE\n" "DS5DNO\n" "DS5DYM\n" "DS5FNE\n" "DS5KJR\n" "DS5KOU\n" "DS5QLJ\n" "DS5TOS\n" "DS5UST\n" "DT0IT\n" "DU1AV\n" "DU1BP\n" "DU1EG\n" "DU1EV\n" "DU1IVT\n" "DU1JI\n" "DU1LC\n" "DU1UGZ\n" "DU3NXE\n" "DU7/PA0HIP\n" "DU9/DL5SDF\n" "DU9RG\n" "DV1/JO7KMB\n" "DV1JM\n" "DV1SDT\n" "DV1UBY\n" "DV1VSR\n" "DV5PO\n" "DW1VKT\n" "DX1ARM\n" "DX1CW\n" "DX1DBT\n" "DX1HQ\n" "DX1J\n" "DX1M\n" "DX1PRS\n" "DX9DX\n" "E20AC\n" "E20AS\n" "E20HHK\n" "E20WXA\n" "E20YLM\n" "E21AOY\n" "E21EIC\n" "E21EJC\n" "E21IZC\n" "E21YDP\n" "E51CG\n" "E51COF\n" "E51JD\n" "E51QQQ\n" "E51USA\n" "E70JA\n" "E70M\n" "E70R\n" "E70T\n" "E71A\n" "E71DX\n" "E71EDV\n" "E71EZC\n" "E71M\n" "E71S\n" "E71W\n" "E72B\n" "E72C\n" "E72DX\n" "E72MM\n" "E72U\n" "E72W\n" "E72X\n" "E73ACL\n" "E73BB\n" "E73C\n" "E73DX\n" "E73ECJ\n" "E73ESP\n" "E73F\n" "E73FDE\n" "E73M\n" "E73MJ\n" "E73MS\n" "E73O\n" "E73PY\n" "E73S\n" "E73T\n" "E73TTT\n" "E73U\n" "E73W\n" "E73X\n" "E73XL\n" "E73Y\n" "E73YL\n" "E74A\n" "E74AA\n" "E74AW\n" "E74BQ\n" "E74BY\n" "E74CN\n" "E74DT\n" "E74DX\n" "E74EBL\n" "E74EE\n" "E74FN\n" "E74GZ\n" "E74IO\n" "E74IW\n" "E74JS\n" "E74KC\n" "E74KM\n" "E74QA\n" "E74QG\n" "E74SD\n" "E74VT\n" "E74WN\n" "E74X\n" "E74Y\n" "E74ZZ\n" "E75A\n" "E75AZ\n" "E75MC\n" "E75MJ\n" "E75O\n" "E76C\n" "E77A\n" "E77BA\n" "E77C\n" "E77CFG\n" "E77DX\n" "E77E\n" "E77EZ\n" "E77G\n" "E77J\n" "E77K\n" "E77M\n" "E77O\n" "E77R\n" "E77U\n" "E77XZ\n" "E77Y\n" "E78AA\n" "E78ATM\n" "E78CB\n" "E78DX\n" "E78G\n" "E79D\n" "E79EA\n" "E79Z\n" "E7DX\n" "E7HQ\n" "E7SRRS\n" "EA1AAA\n" "EA1AAW\n" "EA1ABS\n" "EA1ABT\n" "EA1ACP\n" "EA1AHY\n" "EA1AKS\n" "EA1AP\n" "EA1APS\n" "EA1APV\n" "EA1AQ\n" "EA1AQE\n" "EA1AR\n" "EA1AS\n" "EA1ASC\n" "EA1ASG\n" "EA1AST\n" "EA1AUS\n" "EA1AUT\n" "EA1AW\n" "EA1BAF\n" "EA1BFZ\n" "EA1BGV\n" "EA1BHR\n" "EA1BIM\n" "EA1BLA\n" "EA1BLI\n" "EA1BLX\n" "EA1BNF\n" "EA1BP\n" "EA1BRB\n" "EA1BTX\n" "EA1BXX\n" "EA1CBX\n" "EA1CCM\n" "EA1CCW\n" "EA1CDI\n" "EA1CF\n" "EA1CGK\n" "EA1CJ\n" "EA1CJF\n" "EA1CJH\n" "EA1CP\n" "EA1CQ\n" "EA1CRL\n" "EA1CS\n" "EA1CUB\n" "EA1DDU\n" "EA1DFP\n" "EA1DGG\n" "EA1DIW\n" "EA1DKV\n" "EA1DR\n" "EA1DRL\n" "EA1DVY\n" "EA1DZM\n" "EA1EA\n" "EA1EAU\n" "EA1EED\n" "EA1EEY\n" "EA1EMB\n" "EA1ET\n" "EA1EUI\n" "EA1EVR\n" "EA1EVS\n" "EA1EWC\n" "EA1EWY\n" "EA1EWY/P\n" "EA1EXE\n" "EA1EY\n" "EA1EYG\n" "EA1FAU\n" "EA1FBU\n" "EA1FCI\n" "EA1FD\n" "EA1FDI\n" "EA1GA\n" "EA1GAZ\n" "EA1GFT\n" "EA1GHT\n" "EA1GIB\n" "EA1GPL\n" "EA1GT\n" "EA1GWL\n" "EA1GWM\n" "EA1GY\n" "EA1HDD\n" "EA1HF\n" "EA1HFI\n" "EA1HLH\n" "EA1HLL\n" "EA1HOE\n" "EA1IT\n" "EA1JK\n" "EA1JO\n" "EA1JW\n" "EA1KC\n" "EA1KE\n" "EA1KY\n" "EA1MR\n" "EA1MV\n" "EA1MX\n" "EA1ND\n" "EA1NE\n" "EA1NX\n" "EA1OD\n" "EA1OS\n" "EA1OT\n" "EA1PO\n" "EA1PP\n" "EA1QA\n" "EA1QK\n" "EA1QT\n" "EA1RCR\n" "EA1RG\n" "EA1RJ\n" "EA1RKA\n" "EA1RU\n" "EA1SA\n" "EA1SB\n" "EA1SZ\n" "EA1TI\n" "EA1URF\n" "EA1URO\n" "EA1VIC\n" "EA1VT\n" "EA1WX\n" "EA1XT\n" "EA1YB\n" "EA1YG\n" "EA1YO\n" "EA1YR\n" "EA2AAZ\n" "EA2ABI\n" "EA2AFV\n" "EA2AOO/P\n" "EA2AOS\n" "EA2AP\n" "EA2ASB\n" "EA2AVM\n" "EA2AWF\n" "EA2AZ\n" "EA2BCJ\n" "EA2BD\n" "EA2BEF\n" "EA2BNU\n" "EA2BVV\n" "EA2CAR\n" "EA2CCG\n" "EA2CE\n" "EA2CHL\n" "EA2CIN\n" "EA2CJ\n" "EA2CNU\n" "EA2CQ\n" "EA2CTB\n" "EA2CXS\n" "EA2CXT\n" "EA2CYJ\n" "EA2DCF\n" "EA2DK\n" "EA2DNR\n" "EA2DOT\n" "EA2DPN\n" "EA2DR\n" "EA2EA\n" "EA2EC\n" "EA2GP\n" "EA2HA\n" "EA2IA\n" "EA2IF\n" "EA2JB\n" "EA2JE\n" "EA2KU\n" "EA2KV\n" "EA2KY\n" "EA2LU\n" "EA2MH\n" "EA2NN\n" "EA2OK\n" "EA2PI\n" "EA2QU\n" "EA2RC\n" "EA2RCF\n" "EA2RKG\n" "EA2RW\n" "EA2RY\n" "EA2SS\n" "EA2SW\n" "EA2TO\n" "EA2VE\n" "EA2VI\n" "EA2WD\n" "EA2YY\n" "EA3/CX8CP\n" "EA3/EA8TL\n" "EA3/K1MM\n" "EA3AAH\n" "EA3AEL\n" "EA3AGZ\n" "EA3AIZ\n" "EA3AKA\n" "EA3ALV\n" "EA3ALZ\n" "EA3AMS\n" "EA3ANE\n" "EA3APV\n" "EA3AQL\n" "EA3AR\n" "EA3AS\n" "EA3ATM\n" "EA3ATO\n" "EA3AV\n" "EA3AVV\n" "EA3AXM\n" "EA3AYK\n" "EA3BCK\n" "EA3BFK\n" "EA3BHK\n" "EA3BJM\n" "EA3BOW\n" "EA3BOX\n" "EA3BT\n" "EA3CC\n" "EA3CCN\n" "EA3CEC\n" "EA3CEC/EA1\n" "EA3CI\n" "EA3CT\n" "EA3CUU\n" "EA3CXG\n" "EA3CZ\n" "EA3CZM\n" "EA3CZR\n" "EA3DEN\n" "EA3DIQ\n" "EA3DTD\n" "EA3DUM\n" "EA3DVJ\n" "EA3DW\n" "EA3DWS\n" "EA3EAN\n" "EA3EDU\n" "EA3EEE\n" "EA3EGB\n" "EA3EIQ\n" "EA3EJI\n" "EA3EJJ\n" "EA3ELZ\n" "EA3ESE\n" "EA3ESJ\n" "EA3EU\n" "EA3EVL\n" "EA3EVR\n" "EA3EXP\n" "EA3EYD\n" "EA3EZD\n" "EA3FAG\n" "EA3FAR\n" "EA3FF\n" "EA3FHC\n" "EA3FHP\n" "EA3FLS\n" "EA3FYD\n" "EA3GBA\n" "EA3GBU\n" "EA3GEG\n" "EA3GEO\n" "EA3GHZ\n" "EA3GLB\n" "EA3GNP\n" "EA3GOA\n" "EA3GOD\n" "EA3GP\n" "EA3GUG\n" "EA3GXH\n" "EA3GXJ\n" "EA3GXL\n" "EA3GYK\n" "EA3GYK/5\n" "EA3HAB\n" "EA3HAN\n" "EA3HCJ\n" "EA3HCL\n" "EA3HCY\n" "EA3HEU\n" "EA3HP\n" "EA3IM\n" "EA3IN\n" "EA3JJ\n" "EA3JL\n" "EA3JW\n" "EA3KN\n" "EA3KT\n" "EA3KU\n" "EA3LA\n" "EA3LD\n" "EA3LS\n" "EA3MM\n" "EA3NA\n" "EA3NB\n" "EA3NE\n" "EA3NJ\n" "EA3NO\n" "EA3NP\n" "EA3NT\n" "EA3NU\n" "EA3NW\n" "EA3NY\n" "EA3ODC\n" "EA3OH\n" "EA3OR\n" "EA3PT\n" "EA3QP\n" "EA3RCB\n" "EA3RKR\n" "EA3RR\n" "EA3SD\n" "EA3TI\n" "EA3TJ\n" "EA3WD\n" "EA3WX\n" "EA3XQ\n" "EA4/DH1TW\n" "EA4/UY7CW\n" "EA4/YO8DHC\n" "EA4AFP\n" "EA4AGI\n" "EA4AXG\n" "EA4AYD\n" "EA4AYU\n" "EA4BF\n" "EA4BGM\n" "EA4BHK\n" "EA4BM\n" "EA4BT\n" "EA4BV\n" "EA4BZ\n" "EA4CFY\n" "EA4CJI\n" "EA4CQT\n" "EA4CRP\n" "EA4CS\n" "EA4CS/P\n" "EA4CU\n" "EA4CW\n" "EA4CWN\n" "EA4DAT\n" "EA4DB\n" "EA4DEC\n" "EA4DEI\n" "EA4DLX\n" "EA4DQX\n" "EA4DRV\n" "EA4DTN\n" "EA4DTV\n" "EA4DUT\n" "EA4DW\n" "EA4DX\n" "EA4EER\n" "EA4EIY\n" "EA4EJR\n" "EA4EMC\n" "EA4EN\n" "EA4EPE\n" "EA4EPY\n" "EA4EQ\n" "EA4EQD\n" "EA4ERJ\n" "EA4ERX\n" "EA4ERZ\n" "EA4ESG\n" "EA4ETW\n" "EA4EUI\n" "EA4FJJ\n" "EA4FKI\n" "EA4FL\n" "EA4FLS\n" "EA4FLY\n" "EA4FQO\n" "EA4FSL\n" "EA4FSW\n" "EA4FTP\n" "EA4GA\n" "EA4GB\n" "EA4HD\n" "EA4IJ\n" "EA4IP\n" "EA4IS\n" "EA4JJ\n" "EA4KA\n" "EA4KD\n" "EA4KG\n" "EA4KR\n" "EA4KT\n" "EA4LG\n" "EA4LU\n" "EA4MA\n" "EA4NP\n" "EA4NW\n" "EA4OA\n" "EA4PL\n" "EA4RCT\n" "EA4RE\n" "EA4RF\n" "EA4SG\n" "EA4TD\n" "EA4TG\n" "EA4TK\n" "EA4TX\n" "EA4URA\n" "EA4UV\n" "EA4WC\n" "EA4WD\n" "EA4WP\n" "EA4WT\n" "EA4WW\n" "EA4XT\n" "EA4YK\n" "EA4ZK\n" "EA5/DG9NED\n" "EA5/DJ1MH\n" "EA5/DL5EO\n" "EA5/UT2XD\n" "EA5ABH\n" "EA5AE\n" "EA5AER\n" "EA5AID\n" "EA5AIO\n" "EA5ARC\n" "EA5ASF\n" "EA5ASM\n" "EA5AT\n" "EA5ATK\n" "EA5AVL\n" "EA5AVW\n" "EA5AWJ\n" "EA5AX\n" "EA5BAH\n" "EA5BM\n" "EA5BS\n" ; const char txt_master1[65523] = "EA5BVS\n" "EA5BWR\n" "EA5BY\n" "EA5BZ\n" "EA5CEE\n" "EA5CLH\n" "EA5CP\n" "EA5CRU\n" "EA5CW\n" "EA5CZM\n" "EA5DB\n" "EA5DCL\n" "EA5DF\n" "EA5DFV\n" "EA5DIT\n" "EA5DKU\n" "EA5DM\n" "EA5DT\n" "EA5DY\n" "EA5EA\n" "EA5EH\n" "EA5EI\n" "EA5EM\n" "EA5EM/2\n" "EA5EN\n" "EA5EOR\n" "EA5ET\n" "EA5EU\n" "EA5EV\n" "EA5EXK\n" "EA5FCW\n" "EA5FFC\n" "EA5FHC\n" "EA5FID\n" "EA5FIV\n" "EA5FJD\n" "EA5FKX\n" "EA5FL\n" "EA5FQ\n" "EA5FU\n" "EA5FV\n" "EA5FWW\n" "EA5FX\n" "EA5GF\n" "EA5GI\n" "EA5GIE\n" "EA5GIN\n" "EA5GL\n" "EA5GS\n" "EA5GSD\n" "EA5GSW\n" "EA5GTQ\n" "EA5GU\n" "EA5GUD\n" "EA5GUI\n" "EA5GVV\n" "EA5GVZ\n" "EA5GX\n" "EA5GXI\n" "EA5GZY\n" "EA5HAB\n" "EA5HH\n" "EA5HIH\n" "EA5HJO\n" "EA5HKA\n" "EA5HKQ\n" "EA5HKS\n" "EA5HM\n" "EA5HPX\n" "EA5HT\n" "EA5ID\n" "EA5IY\n" "EA5JC\n" "EA5JK\n" "EA5JW\n" "EA5KA\n" "EA5KB\n" "EA5KD\n" "EA5KGD\n" "EA5KV\n" "EA5KY\n" "EA5LA\n" "EA5LK\n" "EA5LV\n" "EA5ON\n" "EA5PS\n" "EA5PW\n" "EA5QB\n" "EA5RM\n" "EA5RM/7\n" "EA5RS\n" "EA5RU\n" "EA5TD\n" "EA5TN\n" "EA5TS\n" "EA5TT\n" "EA5UB\n" "EA5URB\n" "EA5VK\n" "EA5VN\n" "EA5WO\n" "EA5WP\n" "EA5XC\n" "EA5XY\n" "EA5YE\n" "EA5YU\n" "EA6ABB\n" "EA6AFM\n" "EA6AGA\n" "EA6AIV\n" "EA6AZ\n" "EA6BC\n" "EA6BF\n" "EA6BH\n" "EA6DB\n" "EA6DD\n" "EA6DX\n" "EA6IB\n" "EA6LP\n" "EA6NB\n" "EA6OM\n" "EA6SX\n" "EA6UN\n" "EA6UP\n" "EA6XQ\n" "EA6ZS\n" "EA7/DL2FP/P\n" "EA7/DL3XO\n" "EA7AA\n" "EA7AAW\n" "EA7AE\n" "EA7AGX\n" "EA7AHA\n" "EA7AJR\n" "EA7AKK\n" "EA7ATX\n" "EA7AVP\n" "EA7AZA\n" "EA7BJ\n" "EA7CB\n" "EA7CHO\n" "EA7CIX\n" "EA7CJN\n" "EA7CVF\n" "EA7CWA\n" "EA7DLD\n" "EA7ELY\n" "EA7EN\n" "EA7ESM\n" "EA7EU\n" "EA7EYQ\n" "EA7FIQ\n" "EA7FR\n" "EA7FRX\n" "EA7FUN\n" "EA7GSU\n" "EA7GV\n" "EA7GYS\n" "EA7GZT\n" "EA7HCB\n" "EA7HCJ\n" "EA7HE\n" "EA7HEG\n" "EA7HF\n" "EA7HFH\n" "EA7HFI\n" "EA7HG\n" "EA7HGH\n" "EA7HHR\n" "EA7HHS\n" "EA7HHV\n" "EA7HKE\n" "EA7HLU\n" "EA7HLZ\n" "EA7HW\n" "EA7HXQ\n" "EA7HY\n" "EA7HYL\n" "EA7IBK\n" "EA7ICN\n" "EA7ICN/2\n" "EA7IHD\n" "EA7ISH\n" "EA7JX\n" "EA7KS\n" "EA7LL\n" "EA7LM\n" "EA7LS\n" "EA7LU\n" "EA7MK\n" "EA7MT\n" "EA7NL\n" "EA7NW\n" "EA7OR\n" "EA7OT\n" "EA7RM\n" "EA7RU\n" "EA7SG\n" "EA7ST\n" "EA7TG\n" "EA7TL\n" "EA7TN\n" "EA7TV\n" "EA7UU\n" "EA7VJ\n" "EA7WA\n" "EA7WL\n" "EA7ZY\n" "EA8/DF2XE\n" "EA8/DK5LM\n" "EA8/DL3KVR\n" "EA8/DL8NU\n" "EA8/EA4SV\n" "EA8/LA8WF\n" "EA8/OH2NT\n" "EA8/OH6CS\n" "EA8/OX3XR\n" "EA8AG\n" "EA8AH\n" "EA8AJO\n" "EA8AJY\n" "EA8AK\n" "EA8ANE\n" "EA8AOC\n" "EA8AVK\n" "EA8AX\n" "EA8BEX\n" "EA8BGO\n" "EA8BMG\n" "EA8BPX\n" "EA8BQM\n" "EA8BTM\n" "EA8BVP\n" "EA8BZH\n" "EA8CAC\n" "EA8CDI\n" "EA8CDP\n" "EA8CER\n" "EA8CFY\n" "EA8CMX\n" "EA8CN\n" "EA8CNB\n" "EA8CNR\n" "EA8CPN\n" "EA8CQW\n" "EA8CSG\n" "EA8DA\n" "EA8DD\n" "EA8DG\n" "EA8DP\n" "EA8EU\n" "EA8EW\n" "EA8IK\n" "EA8IT\n" "EA8JA\n" "EA8KG\n" "EA8KK\n" "EA8KV\n" "EA8LS\n" "EA8MQ\n" "EA8MT\n" "EA8NB\n" "EA8NQ\n" "EA8OM\n" "EA8TL\n" "EA8TT\n" "EA8TX\n" "EA8UK\n" "EA8UP\n" "EA8URL\n" "EA8VD\n" "EA8ZS\n" "EA9BO\n" "EA9BW\n" "EA9EU\n" "EA9IE\n" "EA9LZ\n" "EA9PY\n" "EA9Z\n" "EB1APH\n" "EB1BOA\n" "EB1CFH\n" "EB1DMQ\n" "EB1DNA\n" "EB1ERK\n" "EB1EVX\n" "EB1GCA\n" "EB1IFI\n" "EB1LA\n" "EB1TR\n" "EB1WW\n" "EB2BXL\n" "EB2CYQ\n" "EB2FWD\n" "EB2GFA\n" "EB2RA\n" "EB3CML\n" "EB3EPP\n" "EB3EPR\n" "EB3EPR/2\n" "EB3FLY\n" "EB3FSS\n" "EB3JT\n" "EB4FJV\n" "EB4GER\n" "EB5AL\n" "EB5ARP\n" "EB5BBA\n" "EB5CNK\n" "EB5CS\n" "EB5GGB\n" "EB5GIV\n" "EB5GMH\n" "EB5HRX\n" "EB5KAU\n" "EB5KB\n" "EB5KBB\n" "EB5RR\n" "EB5WC\n" "EB6AOK\n" "EB7ABJ\n" "EB7CIN\n" "EB7DX\n" "EB8AH\n" "EC1AAC\n" "EC1ABR\n" "EC1AE\n" "EC1AIJ\n" "EC1AJV\n" "EC1AQT\n" "EC1CSV\n" "EC1CT\n" "EC1CTV\n" "EC1DBO\n" "EC1DLH\n" "EC1DMY\n" "EC1KR\n" "EC1KV\n" "EC2ACC\n" "EC2ADT\n" "EC2ASL\n" "EC2AWD\n" "EC2BAD\n" "EC2DX\n" "EC3AAJ\n" "EC3ACH\n" "EC3AED\n" "EC3PL\n" "EC4AIU\n" "EC4AIV\n" "EC4CBZ\n" "EC5AB\n" "EC5AGM\n" "EC5AMK\n" "EC5APA\n" "EC5BNL\n" "EC5BZR\n" "EC5CR\n" "EC5CSW\n" "EC5CYI\n" "EC5EC\n" "EC5KB\n" "EC5WW\n" "EC6AAE\n" "EC6TK\n" "EC6UD\n" "EC7ABV\n" "EC7ACV\n" "EC7AKV\n" "EC7AMT\n" "EC7AMY\n" "EC7AT\n" "EC7CUH\n" "EC7DDZ\n" "EC7DIK\n" "EC7DND\n" "EC7DNX\n" "EC7DX\n" "EC7DZZ\n" "EC7EAM\n" "EC8ABQ\n" "EC8ADS\n" "EC8ADW\n" "EC8AFM\n" "EC8AQQ\n" "EC8AUZ\n" "ED1R\n" "ED1RCM\n" "ED1T\n" "ED2R\n" "ED4A\n" "ED4R/8\n" "ED5CJX\n" "ED5D\n" "ED5GVZ\n" "ED5M\n" "ED5R\n" "ED5T\n" "ED7AJR\n" "ED7D\n" "ED7H\n" "ED8D\n" "ED8R\n" "ED8T\n" "ED9NA\n" "EE1E\n" "EE1K\n" "EE1S\n" "EE2K\n" "EE2W\n" "EE3E\n" "EE3R\n" "EE3Y\n" "EE4E\n" "EE5E\n" "EE5G\n" "EE5I\n" "EE5J\n" "EE5KB\n" "EE5R\n" "EE5T\n" "EE5U\n" "EE5V\n" "EE5W\n" "EE6E\n" "EE6LP\n" "EE7AJR\n" "EE7D\n" "EE7E\n" "EE7J\n" "EE7R\n" "EE7X\n" "EE8E\n" "EE9E\n" "EE9K\n" "EE9Z\n" "EF1A\n" "EF1W\n" "EF3A\n" "EF3M\n" "EF5BM\n" "EF5F\n" "EF5J\n" "EF5K\n" "EF5W\n" "EF7A\n" "EF7R\n" "EF8G\n" "EF8M\n" "EF8N\n" "EF8R\n" "EF8T\n" "EF9K\n" "EG1W\n" "EG2R\n" "EG4M\n" "EG5A\n" "EG5J\n" "EG5T\n" "EG5U\n" "EG5W\n" "EG8GCA\n" "EH1K\n" "EH2R\n" "EH2WE\n" "EH5H\n" "EH5I\n" "EH5J\n" "EH5T\n" "EH7H\n" "EH7Z\n" "EI/EA3BOX\n" "EI/ON4EI\n" "EI/W5GN\n" "EI0CZ\n" "EI0HQ\n" "EI0W\n" "EI2AJ\n" "EI2CA\n" "EI2CC\n" "EI2CL\n" "EI2CN\n" "EI2GLB\n" "EI2II\n" "EI2JD\n" "EI2JK\n" "EI2KA\n" "EI2VNO\n" "EI2W\n" "EI3EBB\n" "EI3ENB\n" "EI3FDB\n" "EI3GC\n" "EI3GDB\n" "EI3GRB\n" "EI3GZ\n" "EI3IO\n" "EI3JE\n" "EI3Y\n" "EI4BZ\n" "EI4CF\n" "EI4CF/P\n" "EI4DJB\n" "EI4DW\n" "EI4GAB\n" "EI4GK\n" "EI4GNB\n" "EI4GXB\n" "EI4GYB\n" "EI4HQ\n" "EI4IB\n" "EI4II\n" "EI4IR\n" "EI4JZ\n" "EI4RX\n" "EI5AL\n" "EI5DI\n" "EI5DR\n" "EI5E\n" "EI5GJB\n" "EI5GM\n" "EI5GPB\n" "EI5GSB\n" "EI5JC\n" "EI5JQ\n" "EI5JZ\n" "EI6AK\n" "EI6AL\n" "EI6ARB\n" "EI6D\n" "EI6DX\n" "EI6FOB\n" "EI6FR\n" "EI6GEB\n" "EI6HB\n" "EI6IZ\n" "EI6JK\n" "EI6JY\n" "EI6KC\n" "EI6S\n" "EI7BA\n" "EI7CC\n" "EI7DMB\n" "EI7GM\n" "EI7GY\n" "EI7IG\n" "EI7IQ\n" "EI7JK\n" "EI7JN\n" "EI7JQ\n" "EI7JZ\n" "EI7M\n" "EI8DD\n" "EI8EM\n" "EI8FH\n" "EI8GHB\n" "EI8GNB\n" "EI8GS\n" "EI8HL\n" "EI8HT\n" "EI8IR\n" "EI8JB\n" "EI8JF\n" "EI8JR\n" "EI8JX\n" "EI8KB\n" "EI9C\n" "EI9CF\n" "EI9CJ\n" "EI9E\n" "EI9ES\n" "EI9FBB\n" "EI9FN\n" "EI9FVB\n" "EI9HQ\n" "EI9HW\n" "EI9HX\n" "EI9JF\n" "EI9JU\n" "EI9O\n" "EJ3Z\n" "EJ4II\n" "EJ6DX\n" "EJ8GQB\n" "EK0B\n" "EK0HQ\n" "EK3GM\n" "EK3SA\n" "EK6GB\n" "EK6LP\n" "EK6TA\n" "EK7DX\n" "EK8WA\n" "EL2DX\n" "EL8RI\n" "EM0X\n" "EM50KFF\n" "EM5HQ\n" "EM7L\n" "EM9F\n" "EN7U\n" "EO1I\n" "EO3Q\n" "EO5I\n" "EO5M\n" "EP3HF\n" "ER0/UT0FT\n" "ER0FEO\n" "ER0WW\n" "ER1DA\n" "ER1DAC\n" "ER1LW\n" "ER1OO\n" "ER1RR\n" "ER1WK\n" "ER1ZZ\n" "ER2KAG\n" "ER2KRT\n" "ER2RM\n" "ER3AU\n" "ER3CT\n" "ER3DX\n" "ER3HW\n" "ER3MM\n" "ER3R\n" "ER3ZZ\n" "ER4A\n" "ER4DX\n" "ER4KAA\n" "ER4LX\n" "ER4X\n" "ER5AA\n" "ER5AL\n" "ER5DX\n" "ER5GB\n" "ER5LL\n" "ER5WU\n" "ER6A\n" "ER7HQ\n" "ES0DJ\n" "ES0NW\n" "ES1A\n" "ES1AN\n" "ES1AR\n" "ES1CN\n" "ES1CR\n" "ES1CW\n" "ES1GO\n" "ES1IP\n" "ES1LBK\n" "ES1LS\n" "ES1QD\n" "ES1RA\n" "ES1WN\n" "ES1WST\n" "ES1XQ\n" "ES2BH\n" "ES2BL\n" "ES2DJ\n" "ES2EZ\n" "ES2IPA\n" "ES2JL\n" "ES2MA\n" "ES2MC\n" "ES3AX\n" "ES3BQ\n" "ES3RF\n" "ES3VI\n" "ES4A\n" "ES4IN\n" "ES4MM\n" "ES4NG\n" "ES4RD\n" "ES4RX\n" "ES4RZ\n" "ES5DB\n" "ES5EC\n" "ES5EP\n" "ES5G\n" "ES5GP\n" "ES5JR\n" "ES5MC\n" "ES5MG\n" "ES5NC\n" "ES5Q\n" "ES5QA\n" "ES5QX\n" "ES5RGJ\n" "ES5RIM\n" "ES5RR\n" "ES5RW\n" "ES5RY\n" "ES5TF\n" "ES5TV\n" "ES6CO\n" "ES6DO\n" "ES6KW\n" "ES6PA\n" "ES6Q\n" "ES6QZ\n" "ES6RMR\n" "ES6TX\n" "ES7ABD\n" "ES7FQ\n" "ES7FU\n" "ES7GM\n" "ES7GN\n" "ES7NY\n" "ES8DH\n" "ES8TJM\n" "ES8W\n" "ES8ZP\n" "ES9A\n" "ES9C\n" "ET3AA\n" "ET3JA\n" "ET3SID\n" "EU1AD\n" "EU1AI\n" "EU1AZ\n" "EU1CL\n" "EU1DX\n" "EU1DZ\n" "EU1DZ/6\n" "EU1EU\n" "EU1FC\n" "EU1FY\n" "EU1PA\n" "EU1UA\n" "EU1UN\n" "EU2EU\n" "EU2MM\n" "EU3AR\n" "EU4AA\n" "EU4AG\n" "EU4CQ\n" "EU4LY\n" "EU5ROPE\n" "EU6AA\n" "EU6AF\n" "EU6MM\n" "EU7SA\n" "EU7SR\n" "EU8KP\n" "EU8RZ\n" "EV1P\n" "EV1P/2\n" "EV1R\n" "EV1Z\n" "EV2A\n" "EV6M\n" "EV6Z\n" "EV8D\n" "EV8DP\n" "EW1ABA\n" "EW1AR\n" "EW1BA\n" "EW1CQ\n" "EW1DJ\n" "EW1DO\n" "EW1EA\n" "EW1FM\n" "EW1IP\n" "EW1KT\n" "EW1NA\n" "EW1NM\n" "EW1OT\n" "EW1WZ\n" "EW1YL\n" "EW2AA\n" "EW2AO\n" "EW2BX\n" "EW2DN\n" "EW2EG\n" "EW2EO\n" "EW2ES\n" "EW2MA\n" "EW2TT\n" "EW2WW\n" "EW3EA\n" "EW3EW\n" "EW3LN\n" "EW4AA\n" "EW4AB\n" "EW4AM\n" "EW4DX\n" "EW4MM\n" "EW4PA\n" "EW5A\n" "EW6AF\n" "EW6AL\n" "EW6CU\n" "EW6DM\n" "EW6DX\n" "EW6EW\n" "EW6GF\n" "EW6GL\n" "EW6MM\n" "EW6OO\n" "EW6WA\n" "EW7AK\n" "EW7BR\n" "EW7DK\n" "EW7EW\n" "EW7KF\n" "EW7LE\n" "EW7LO\n" "EW7PK\n" "EW8A\n" "EW8BQ\n" "EW8CD\n" "EW8CF\n" "EW8CY\n" "EW8DA\n" "EW8DD\n" "EW8DJ\n" "EW8DX\n" "EW8DZ\n" "EW8EW\n" "EW8KF\n" "EW8KY\n" "EW8MW\n" "EW8OF\n" "EW8OG\n" "EW8OM\n" "EW8RR\n" "EW8WW\n" "EW8ZO\n" "EX2A\n" "EX2M\n" "EX2T\n" "EX2U\n" "EX2X\n" "EX7ML\n" "EX8AB\n" "EX8AI\n" "EX8M\n" "EX8MAT\n" "EX8O\n" "EY7AB\n" "EY7AD\n" "EY7AF\n" "EY7BJ\n" "EY7ZA\n" "EY8/F4EGS\n" "EY8/K4ZW\n" "EY8AJ\n" "EY8BA\n" "EY8CC\n" "EY8DD\n" "EY8MM\n" "F1ACC\n" "F1ACK\n" "F1ACS\n" "F1ADG\n" "F1AEY\n" "F1AKK\n" "F1BAV\n" "F1BBK\n" "F1BGY\n" "F1BJD\n" "F1BLQ\n" "F1BNT\n" "F1BOQ\n" "F1BRV\n" "F1CGN\n" "F1DFR\n" "F1EAA\n" "F1EBN\n" "F1EIT\n" "F1EPQ\n" "F1FPL\n" "F1GTU\n" "F1HSW\n" "F1HTU\n" "F1HUM/P\n" "F1ICR\n" "F1ICS\n" "F1IEH\n" "F1IWH\n" "F1JGN\n" "F1JKJ\n" "F1JPE\n" "F1JRD\n" "F1LPT\n" "F1MKG\n" "F1MLN\n" "F1MUG\n" "F1MWV\n" "F1NGP\n" "F1NZC\n" "F1OET\n" "F1OKV\n" "F1OOG\n" "F1PDI\n" "F1PGZ\n" "F1PUX\n" "F1PYW\n" "F1RCX\n" "F1RHS\n" "F1RUK\n" "F1SAL\n" "F1SIU\n" "F1SMV\n" "F1TRE\n" "F1TZE\n" "F1TZG\n" "F1UIH\n" "F1UIJ\n" "F1UJS\n" "F1UMO\n" "F1URL\n" "F1UVN\n" "F2AI\n" "F2AR\n" "F2BF\n" "F2DX\n" "F2FZ\n" "F2GL\n" "F2JD\n" "F2LG\n" "F2LZ\n" "F2MA\n" "F2NZ/P\n" "F2QH\n" "F2RO\n" "F2SI\n" "F2SY\n" "F2TA\n" "F2VX\n" "F2WT\n" "F2YT\n" "F3AT\n" "F3CW\n" "F3MB\n" "F3NB\n" "F3OA\n" "F3TH\n" "F3TK\n" "F3VV\n" "F3VX\n" "F3WT\n" "F4ABC\n" "F4AGR\n" "F4APR\n" "F4APS\n" "F4ASK\n" "F4ASQ\n" "F4BCX\n" "F4BDG\n" "F4BHW\n" "F4BIV\n" "F4BKB\n" "F4BKV\n" "F4BXY\n" "F4CDR\n" "F4CGJ\n" "F4CLB\n" "F4CMC/P\n" "F4CPD\n" "F4CPF\n" "F4CQK\n" "F4CRE\n" "F4CUI\n" "F4CWL\n" "F4CWZ\n" "F4CYZ/P\n" "F4CZV\n" "F4DBJ\n" "F4DIA\n" "F4DLL\n" "F4DNW\n" "F4DPT\n" "F4DRC\n" "F4DRT\n" "F4DSD\n" "F4DSK\n" "F4DTO\n" "F4DVO\n" "F4DVX\n" "F4DVX/P\n" "F4DXP\n" "F4DXW\n" "F4DXX\n" "F4EAN\n" "F4EEI\n" "F4EEJ\n" "F4EFL\n" "F4EGA\n" "F4EGD\n" "F4EGG\n" "F4EGS\n" "F4EIZ\n" "F4EJW\n" "F4ELU\n" "F4EMN\n" "F4EMU\n" "F4ENJ\n" "F4ENK\n" "F4ENU\n" "F4EPR\n" "F4EPU\n" "F4EQA\n" "F4EQH\n" "F4ESE\n" "F4ETG\n" "F4EUG\n" "F4EUN\n" "F4EVR\n" "F4EWU\n" "F4EWU/P\n" "F4EYU\n" "F4EZC\n" "F4EZJ\n" "F4FAO\n" "F4FBB\n" "F4FBP\n" "F4FDA\n" "F4FDR\n" "F4FEP\n" "F4FFH\n" "F4FFN\n" "F4FFZ\n" "F4FGJ\n" "F4FHI\n" "F4FHM\n" "F4FHR\n" "F4FHT\n" "F4FHV\n" "F4FIP\n" "F4FJH\n" "F4FKJ\n" "F4FLF\n" "F4FLN\n" "F4FLQ\n" "F4FNL\n" "F4FNT\n" "F4FPF\n" "F4FPG\n" "F4FQH\n" "F4FQI\n" "F4FSB\n" "F4FSV\n" "F4FTS\n" "F4FWL\n" "F4FWM\n" "F4GAJ\n" "F4GAR\n" "F4GBW\n" "F4JRC\n" "F4JVG\n" "F4LKC\n" "F4MBZ\n" "F4OHA\n" "F4PCM\n" "F4RST\n" "F4SGU\n" "F4TTR\n" "F4UJU\n" "F4UKP\n" "F5AAR\n" "F5AIB\n" "F5AKL\n" "F5AMH\n" "F5AOL\n" "F5AQB\n" "F5ARU\n" "F5ASD\n" "F5AUZ\n" "F5AXG\n" "F5AZM\n" "F5BBD\n" "F5BEG\n" "F5BOY\n" "F5BTH\n" "F5BTH/P\n" "F5BZB\n" "F5CBQ\n" "F5CCX\n" "F5CDE\n" "F5CH\n" "F5CQ\n" "F5CT\n" "F5CWU\n" "F5CYM\n" "F5CYS\n" "F5DDX\n" "F5DM\n" "F5DRD\n" "F5DYD\n" "F5ELL\n" "F5ELL/P\n" "F5EOT\n" "F5FAB/P\n" "F5FJ\n" "F5GFA\n" "F5GGL\n" "F5GN\n" "F5GPE\n" "F5HNQ\n" "F5HRY\n" "F5HTR\n" "F5HUF\n" "F5HX\n" "F5HY\n" "F5IAE\n" "F5ICC\n" "F5IDB\n" "F5IDJ\n" "F5IEP\n" "F5IHP\n" "F5IHP/P\n" "F5ILS\n" "F5IN\n" "F5INJ\n" "F5IQA\n" "F5IQJ\n" "F5ISG\n" "F5IUZ\n" "F5IYJ\n" "F5IYU\n" "F5IZP\n" "F5JDG\n" "F5JFU\n" "F5JGA\n" "F5JIW\n" "F5JLH\n" "F5JLV\n" "F5JMI\n" "F5JRL\n" "F5JSD\n" "F5JSK\n" "F5JSQ\n" "F5JU\n" "F5JXU\n" "F5JY\n" "F5JYD\n" "F5KAR\n" "F5KAR/P\n" "F5KCH\n" "F5KEE\n" "F5KEQ\n" "F5KFL\n" "F5KIN\n" "F5KKD\n" "F5KLE\n" "F5KLP\n" "F5KSE\n" "F5LCU\n" "F5LDY\n" "F5LEN\n" "F5LGE\n" "F5LGF\n" "F5LIW\n" "F5LJA\n" "F5LLE\n" "F5LLN\n" "F5LMJ\n" "F5LMK\n" "F5LND\n" "F5LOW\n" "F5LPY\n" "F5LQ\n" "F5LTH\n" "F5LUN\n" "F5LVL\n" "F5LWF\n" "F5MA\n" "F5MAE\n" "F5MBM\n" "F5MFI\n" "F5MFU\n" "F5MLJ\n" "F5MMB\n" "F5MMF\n" "F5MMX\n" "F5MMY\n" "F5MOO\n" "F5MPN\n" "F5MQW\n" "F5MSB\n" "F5MSE\n" "F5MUX\n" "F5MVT\n" "F5MWW\n" "F5MXH\n" "F5MXQ\n" "F5MZN\n" "F5NBK\n" "F5NBQ\n" "F5NBU\n" "F5NBX\n" "F5NCU\n" "F5NEH\n" "F5NEP\n" "F5NEV\n" "F5NKP\n" "F5NKX\n" "F5NMK\n" "F5NQL\n" "F5NSL\n" "F5NTV\n" "F5NTZ\n" "F5NYK\n" "F5NZY\n" "F5OAM\n" "F5OCL\n" "F5ODA\n" "F5ODF\n" "F5OEL\n" "F5OEV\n" "F5OGL\n" "F5OHH\n" "F5OHM\n" "F5OHS\n" "F5OHV\n" "F5OQL\n" "F5ORE\n" "F5OTZ\n" "F5OWL\n" "F5OWT\n" "F5OZC\n" "F5OZF\n" "F5PAL\n" "F5PBM\n" "F5PCV\n" "F5PCX\n" "F5PEU\n" "F5PHP\n" "F5PHW\n" "F5PLC\n" "F5POJ\n" "F5PPO\n" "F5PQH\n" "F5PRH\n" "F5PTI\n" "F5PU\n" "F5PVK\n" "F5PWK\n" "F5PZR\n" "F5QE\n" "F5QF\n" "F5RAB\n" "F5RAV\n" "F5RBB\n" "F5RD\n" "F5RDK\n" "F5RDS\n" "F5RDS/P\n" "F5RJK\n" "F5RJM\n" "F5RKC\n" "F5RKL\n" "F5RLW\n" "F5RMK\n" "F5RMN\n" "F5ROL\n" "F5ROX\n" "F5RPB\n" "F5RQQ\n" "F5RRS\n" "F5RUJ\n" "F5RVV\n" "F5RWQ\n" "F5RXL\n" "F5SDD\n" "F5SDH\n" "F5SGI\n" "F5SIH\n" "F5SJB\n" "F5SSK\n" "F5SUL\n" "F5SVU\n" "F5SXD\n" "F5SZB\n" "F5TDB\n" "F5TDK\n" "F5TFI\n" "F5TFU\n" "F5TGR\n" "F5TGW\n" "F5TIL\n" "F5TLZ\n" "F5TMJ\n" "F5TO\n" "F5TRB\n" "F5TSB\n" "F5TSG\n" "F5TTI\n" "F5TXW\n" "F5UBH\n" "F5UFX\n" "F5UJK\n" "F5UKL\n" "F5UL\n" "F5UMP\n" "F5UMU\n" "F5UOW\n" "F5UQN\n" "F5UTN\n" "F5VBT\n" "F5VBU\n" "F5VFU\n" "F5VHE\n" "F5VHQ\n" "F5VHY\n" "F5VIF\n" "F5VIF/P\n" "F5VIH\n" "F5VIM\n" "F5VJC\n" "F5VJK\n" "F5VKP\n" "F5VKT\n" "F5VLT\n" "F5VLV\n" "F5VMO\n" "F5VNB\n" "F5VU\n" "F5VV\n" "F5VW\n" "F5VW/P\n" "F5YD\n" "F5YJ\n" "F6ABI\n" "F6ACD\n" "F6ACV\n" "F6AEW\n" "F6AFC\n" "F6AGQ\n" "F6AJH\n" "F6AML\n" "F6AOI\n" "F6AOJ\n" "F6API\n" "F6AQI\n" "F6AQO\n" "F6ARC\n" "F6ARQ\n" "F6ATP\n" "F6AUS\n" "F6AVP\n" "F6AXX\n" "F6BAT\n" "F6BBO\n" "F6BBQ\n" "F6BDM\n" "F6BEE\n" "F6BFH\n" "F6BGC\n" "F6BGG\n" "F6BGV\n" "F6BIP\n" "F6BIP/P\n" "F6BKI\n" "F6BKP\n" "F6BLP\n" "F6BNH\n" "F6BNL\n" "F6BNX\n" "F6BPO\n" "F6BPZ\n" "F6BUL\n" "F6BVY\n" "F6BWJ\n" "F6BWO\n" "F6CBA\n" "F6CBH\n" "F6CBL\n" "F6CBW\n" "F6CEL\n" "F6CFB\n" "F6CKD\n" "F6CKE\n" "F6CLH\n" "F6CLQ\n" "F6CMG\n" "F6CNM\n" "F6COA\n" "F6COW\n" "F6COZ\n" "F6CRP\n" "F6CRT\n" "F6CSO\n" "F6CSQ\n" "F6CTL\n" "F6CTT\n" "F6CVR\n" "F6CWA\n" "F6CWN\n" "F6CXJ\n" "F6CYT\n" "F6CZC\n" "F6CZV\n" "F6DAM\n" "F6DBX\n" "F6DDP\n" "F6DDR\n" "F6DFZ\n" "F6DGH\n" "F6DKI\n" "F6DKQ\n" "F6DKV\n" "F6DLM\n" "F6DRP\n" "F6DSB\n" "F6DSV\n" "F6DUK\n" "F6DVH\n" "F6DYX\n" "F6DYY\n" "F6DZD\n" "F6DZS\n" "F6DZU\n" "F6EAZ\n" "F6ECI\n" "F6ECS\n" "F6EDO\n" "F6EHP\n" "F6EKI\n" "F6EKJ\n" "F6EMA\n" "F6EOE\n" "F6EPO\n" "F6EPQ\n" "F6EQD\n" "F6EQZ\n" "F6EWX\n" "F6EXV\n" "F6EZF\n" "F6EZR\n" "F6EZV\n" "F6FCM\n" "F6FDR\n" "F6FGB\n" "F6FHO\n" "F6FLU\n" "F6FNA\n" "F6FNL\n" "F6FTB\n" "F6FYA\n" "F6FYD\n" "F6GCI\n" "F6GEO\n" "F6GGO\n" "F6GID\n" "F6GIN\n" "F6GMT\n" "F6GNZ\n" "F6GOE\n" "F6GOX\n" "F6GPT\n" "F6GQO\n" "F6GRA\n" "F6GUF\n" "F6GUU\n" "F6GYF\n" "F6GYU\n" "F6HAC\n" "F6HBR\n" "F6HGC\n" "F6HHR\n" "F6HIA\n" "F6HIQ\n" "F6HKA\n" "F6HKO\n" "F6HMJ\n" "F6HMQ\n" "F6HQP\n" "F6HQY\n" "F6HRP\n" "F6HZS\n" "F6IFJ\n" "F6IGS\n" "F6IIT\n" "F6IOC\n" "F6IPQ\n" "F6IQA\n" "F6IRA\n" "F6IRF\n" "F6IRG\n" "F6IRS\n" "F6ISQ\n" "F6IZZ\n" "F6JOE\n" "F6JOE/P\n" "F6JXR\n" "F6KAR\n" "F6KBF\n" "F6KCP\n" "F6KDL\n" "F6KFA\n" "F6KFI\n" "F6KFV\n" "F6KHM\n" "F6KMX\n" "F6KNB\n" "F6KOH\n" "F6KPQ\n" "F6KPQ/P\n" "F6KRK\n" "F6KSV\n" "F6KUJ\n" "F6KUM/P\n" "F6PTT\n" "F8AAB\n" "F8AEE\n" "F8AFC\n" "F8AKC\n" "F8AKS\n" "F8AOF\n" "F8AQK\n" "F8AQT\n" "F8ASG\n" "F8ATM\n" "F8ATS\n" "F8BBL\n" "F8BBT\n" "F8BCS\n" "F8BDX\n" "F8BFU\n" "F8BJI\n" "F8BMG\n" "F8BMX\n" "F8BNN\n" "F8BNV\n" "F8BOJ\n" "F8BPN\n" "F8BUO\n" "F8BUY\n" "F8BXI\n" "F8CDM\n" "F8CED\n" "F8CFU\n" "F8CGL\n" "F8CHK\n" "F8CIL\n" "F8CJS\n" "F8CKH\n" "F8CMF\n" "F8CRH\n" "F8CRS\n" "F8DBF\n" "F8DEG\n" "F8DFP\n" "F8DHA\n" "F8DHB\n" "F8DHE\n" "F8DJV\n" "F8DKG\n" "F8DML\n" "F8DNX\n" "F8DOR\n" "F8DRE\n" "F8DVD\n" "F8DYD\n" "F8DZU\n" "F8DZY\n" "F8EBY\n" "F8EEQ\n" "F8EMH\n" "F8EOI\n" "F8EZE\n" "F8FGZ\n" "F8FKD\n" "F8FLK\n" "F8FQJ\n" "F8FSK\n" "F8FSN\n" "F8FWM\n" "F8FY\n" "F8IXZ\n" "F8JZR\n" "F8KA\n" "F8KCF\n" "F8KDX\n" "F8KGH\n" "F8KGL/P\n" "F8KHW\n" "F8KHW/P\n" "F8KKH\n" "F8LKU\n" "F8MRQ\n" "F8NAN\n" "F8NUH\n" "F8NZQ\n" "F8PMO\n" "F8UG\n" "F8VNU\n" "F8VNZ\n" "F8VOA\n" "F8XH\n" "F8XX\n" "F8ZW\n" "F9CI\n" "F9CZ\n" "F9DK\n" "F9EW\n" "F9GN\n" "F9IE\n" "F9JS\n" "F9KP\n" "F9NF\n" "F9OB\n" "F9OE\n" "F9OQ\n" "F9WT\n" "FG1GW\n" "FG1PP\n" "FG5FI\n" "FG5KC\n" "FG5LA\n" "FG8AR\n" "FJ/VE3EY\n" "FJ/WJ2O\n" "FK8CP\n" "FK8GM\n" "FK8KAB\n" "FM1AG\n" "FM1FV\n" "FM1HN\n" "FM1II\n" "FM5AN\n" "FM5BH\n" "FM5CD\n" "FM5CW\n" "FM5DN\n" "FM5FJ\n" "FM5KC\n" "FM5LD\n" "FM5WD\n" "FM5WE\n" "FO/N6JA\n" "FO5RH\n" "FO8RZ\n" "FR1AN\n" "FR1GZ\n" "FR5GS\n" "FS5KA\n" "FT5GA\n" "FY/LA0BY\n" "FY5FY\n" "FY5KE\n" "G/SP4BHD\n" "G0AAA\n" "G0ABY\n" "G0ADH\n" "G0AEV\n" "G0AJJ\n" "G0AKF\n" "G0AOJ\n" "G0AOL\n" "G0AOZ\n" "G0ARL\n" "G0ATG\n" "G0AZE\n" "G0AZH\n" "G0AZS\n" "G0BFJ\n" "G0BHK\n" "G0BLB\n" "G0BNR\n" "G0BRC\n" "G0BWB\n" "G0BYJ\n" "G0CER\n" "G0CGL\n" "G0CKP\n" "G0CKV\n" "G0CLP\n" "G0CLP/P\n" "G0CMP\n" "G0CPA\n" "G0CTR\n" "G0CXW\n" "G0DAY\n" "G0DBE\n" "G0DCK\n" "G0DKL\n" "G0DQS\n" "G0DRM\n" "G0DVJ\n" "G0DWO\n" "G0DWV\n" "G0DZM\n" "G0ECJ\n" "G0EFO\n" "G0EIG\n" "G0EML\n" "G0EVQ\n" "G0EYO\n" "G0EYR\n" "G0FBY\n" "G0FDJ\n" "G0FDU\n" "G0FHM\n" "G0FJS\n" "G0FPU\n" "G0FUN\n" "G0FWX\n" "G0FYX\n" "G0FZI\n" "G0GDA\n" "G0GDU\n" "G0GFQ\n" "G0GIS\n" "G0GJS\n" "G0GKH\n" "G0GMS\n" "G0HDB\n" "G0HDV\n" "G0HIO\n" "G0HIS\n" "G0HIZ\n" "G0HJK\n" "G0HMN\n" "G0HOF\n" "G0HSA\n" "G0HVQ\n" "G0HZG\n" "G0IBN\n" "G0ICJ\n" "G0IDA\n" "G0IEE\n" "G0IIQ\n" "G0IUM\n" "G0IVZ\n" "G0IYH\n" "G0JHC\n" "G0JJG\n" "G0JKY\n" "G0JVT\n" "G0KBL\n" "G0KBY\n" "G0KDS\n" "G0KDZ\n" "G0KGU\n" "G0KJP\n" "G0KOM\n" "G0KRT\n" "G0KSC\n" "G0KYA\n" "G0KYS\n" "G0LGJ\n" "G0LGS\n" "G0LHZ\n" "G0LMX\n" "G0LRX\n" "G0LVX\n" "G0LWU\n" "G0LZL\n" "G0LZY\n" "G0MBP\n" "G0MHC\n" "G0MLY\n" "G0MMI\n" "G0MNN\n" "G0MPR\n" "G0MRH\n" "G0MRY\n" "G0MTF/P\n" "G0MTN\n" "G0MUR\n" "G0NDE\n" "G0NFH\n" "G0NOR\n" "G0NSL\n" "G0NUZ\n" "G0NXA\n" "G0NZI\n" "G0OGD\n" "G0OIL\n" "G0OKD\n" "G0OKF\n" "G0OMS\n" "G0ONH\n" "G0OPB\n" "G0OPH\n" "G0ORC\n" "G0ORH\n" "G0ORS\n" "G0OTT\n" "G0PCF\n" "G0PHY\n" "G0PPM\n" "G0PSE\n" "G0PVR\n" "G0PZA\n" "G0RAF\n" "G0RAH\n" "G0REK\n" "G0RGJ\n" "G0RIF\n" "G0RPM\n" "G0RQL\n" "G0RRM\n" "G0RSQ\n" "G0RWW\n" "G0RXA\n" "G0SNG\n" "G0THY\n" "G0TKZ\n" "G0TMX\n" "G0TOC\n" "G0TPH\n" "G0TRB\n" "G0TSM\n" "G0TYS\n" "G0TZZ\n" "G0UAN\n" "G0UCH\n" "G0UCP\n" "G0UGO\n" "G0UII\n" "G0UIQ\n" "G0UKB\n" "G0UKN\n" "G0UKX\n" "G0UQC\n" "G0UUT\n" "G0UZL\n" "G0UZP\n" "G0VDZ\n" "G0VGS\n" "G0VJG\n" "G0VOF\n" "G0VOK\n" "G0VTI\n" "G0VVE\n" "G0VXC\n" "G0VXE\n" "G0WAT\n" "G0WFK\n" "G0WHO\n" "G0WPH\n" "G0WPX\n" "G0WSA\n" "G0WSC\n" "G0WWD\n" "G0WWF\n" "G0XDI\n" "G0YYY\n" "G1A\n" "G1BHR\n" "G1DJI\n" "G1DYN\n" "G1FON\n" "G1HHD\n" "G1HJW\n" "G1HLT\n" "G1ISN\n" "G1KFB\n" "G1KHX\n" "G1MIE\n" "G1N\n" "G1OCN\n" "G1OCR\n" "G1PIE\n" "G1PIR\n" "G1RSC\n" "G1RVP\n" "G1SMT\n" "G1SSL\n" "G1T\n" "G1TIF\n" "G1TZC\n" "G1UGH\n" "G1UNQ\n" "G1UZD\n" "G1VDP\n" "G1VNV\n" "G1WMJ\n" "G1XKZ\n" "G1XOW\n" "G1YLE\n" "G1YTV\n" "G1ZQN\n" "G2AA\n" "G2ACN\n" "G2AFV\n" "G2B\n" "G2BKZ\n" "G2BOF\n" "G2DWB\n" "G2F\n" "G2FM\n" "G2FSR\n" "G2HDR\n" "G2HKU\n" "G2JL\n" "G2KF\n" "G2PA\n" "G2PB\n" "G2W\n" "G2YL\n" "G3ASG\n" "G3B\n" "G3BBR\n" "G3BDQ\n" "G3BFP\n" "G3BJ\n" "G3CCO\n" "G3CSA\n" "G3CWW\n" "G3DCZ\n" "G3DGW\n" "G3EKJ\n" "G3ESY\n" "G3FNZ\n" "G3FPQ\n" "G3FYX\n" "G3GAF\n" "G3GEJ\n" "G3GGS\n" "G3GHN\n" "G3GJX\n" "G3GLL\n" "G3HAL\n" "G3HEJ\n" "G3HGE\n" "G3HMB\n" "G3HQT\n" "G3HRH\n" "G3HTA\n" "G3IAF\n" "G3ICO\n" "G3IEW\n" "G3IFB\n" "G3IGU\n" "G3IGZ\n" "G3IJA\n" "G3IJL\n" "G3ILO\n" "G3ILO/P\n" "G3IOE\n" "G3IQF\n" "G3ITH\n" "G3IZD\n" "G3JDT\n" "G3JFS\n" "G3JHS\n" "G3JIR\n" "G3JJG\n" "G3JJZ\n" "G3JKB\n" "G3JKY\n" "G3JMJ\n" "G3JMZ\n" "G3JNB\n" "G3JRM\n" "G3JUL\n" "G3JUX\n" "G3JXC\n" "G3JZL\n" "G3KAF\n" "G3KDP\n" "G3KIP\n" "G3KKJ\n" "G3KKP\n" "G3KLH\n" "G3KLO\n" "G3KLP\n" "G3KMA\n" "G3KMG\n" "G3KMQ\n" "G3KNU\n" "G3KOJ\n" "G3KOZ\n" "G3KSU\n" "G3KTH\n" "G3KTZ\n" "G3KWK\n" "G3KWY\n" "G3KYF\n" "G3KZR\n" "G3LAS\n" "G3LAZ\n" "G3LCS\n" "G3LDI\n" "G3LET\n" "G3LHJ\n" "G3LHS\n" "G3LIK\n" "G3LKY/P\n" "G3LKZ\n" "G3LLK\n" "G3LME\n" "G3LNC\n" "G3LNP\n" "G3LPS\n" "G3LPU\n" "G3LQP\n" "G3LUA\n" "G3LUW\n" "G3LVP\n" "G3LZQ\n" "G3MCK\n" "G3MEA\n" "G3MIR\n" "G3MLO\n" "G3MPB\n" "G3MUO\n" "G3MXH\n" "G3MYI\n" "G3MZV\n" "G3NAE\n" "G3NBC\n" "G3NCN\n" "G3NDC\n" "G3NDJ\n" "G3NEO\n" "G3NFB\n" "G3NHL\n" "G3NIC\n" "G3NKC\n" "G3NKQ\n" "G3NKS\n" "G3NLY\n" "G3NOH\n" "G3NPF\n" "G3NPZ\n" "G3NUG\n" "G3NWG\n" "G3NXT\n" "G3NYY\n" "G3NYY/P\n" "G3OAG\n" "G3OAY\n" "G3OCA\n" "G3OFA\n" "G3OGP\n" "G3OKA\n" "G3OLB\n" "G3OND\n" "G3ONQ\n" "G3OOU\n" "G3ORP\n" "G3ORY\n" "G3OTK/P\n" "G3OWO\n" "G3P\n" "G3PDH\n" "G3PGA\n" "G3PHO\n" "G3PHS\n" "G3PIA\n" "G3PJK\n" "G3PJT\n" "G3PLP\n" "G3PQA\n" "G3PSM\n" "G3PXT\n" "G3PYI\n" "G3PYM\n" "G3RAU\n" "G3RCE\n" "G3RGD\n" "G3RHH\n" "G3RIK\n" "G3RIR\n" "G3RKJ\n" "G3RLE\n" "G3RMD\n" "G3RPB\n" "G3RSD\n" "G3RTE\n" "G3RTU\n" "G3RTY\n" "G3RUO\n" "G3RVM\n" "G3RWF\n" "G3RWL\n" "G3RXP\n" "G3RXQ\n" "G3RZF\n" "G3SDC\n" "G3SED\n" "G3SEM\n" "G3SEN\n" "G3SET\n" "G3SGC\n" "G3SHF\n" "G3SJJ\n" "G3SJX\n" "G3SNN\n" "G3SNU\n" "G3SQH\n" "G3SVD\n" "G3SVK\n" "G3SVL\n" "G3SWC\n" "G3SWH\n" "G3SYM\n" "G3SZS\n" "G3SZU\n" "G3TA\n" "G3TBK\n" "G3TBU\n" "G3TDH\n" "G3TEV\n" "G3TEX\n" "G3TJE\n" "G3TKF\n" "G3TKK\n" "G3TLH\n" "G3TLY\n" "G3TQZ\n" "G3TTH\n" "G3TTJ\n" "G3TVW\n" "G3TWG\n" "G3TXF\n" "G3TXZ\n" "G3TZM\n" "G3UAA\n" "G3UAS\n" "G3UD\n" "G3UDA\n" "G3UEG\n" "G3UFY\n" "G3UHU\n" "G3UJE\n" "G3UKV\n" "G3ULN\n" "G3UML\n" "G3UMT\n" "G3USE\n" "G3UUV\n" "G3UYD\n" "G3UZD\n" "G3UZM\n" "G3V\n" "G3VA\n" "G3VAJ\n" "G3VAO\n" "G3VCA\n" "G3VCQ\n" "G3VCR\n" "G3VDB\n" "G3VDL\n" "G3VER\n" "G3VGR\n" "G3VIP\n" "G3VIR\n" "G3VKW\n" "G3VMW\n" "G3VMY\n" "G3VOF\n" "G3VOT\n" "G3VOU\n" "G3VPS\n" "G3VPW\n" "G3VQO\n" "G3VTT\n" "G3VUS\n" "G3VWH\n" "G3VXJ\n" "G3VYF\n" "G3VYI\n" "G3VZM\n" "G3WAB\n" "G3WCQ\n" "G3WCY\n" "G3WDS\n" "G3WEF\n" "G3WFM\n" "G3WGV\n" "G3WKL\n" "G3WKZ\n" "G3WMX\n" "G3WPD\n" "G3WPF\n" "G3WPH\n" "G3WRR\n" "G3WVG\n" "G3WVO\n" "G3WW\n" "G3WWS\n" "G3WYN\n" "G3WYW\n" "G3WZT\n" "G3XAN\n" "G3XAP\n" "G3XAQ\n" "G3XDY\n" "G3XGC\n" "G3XGD\n" "G3XLB\n" "G3XLL\n" "G3XLW\n" "G3XMM\n" "G3XOV\n" "G3XPO\n" "G3XSD\n" "G3XSV\n" "G3XTT\n" "G3XUD\n" "G3XVF\n" "G3XVN\n" "G3XVR\n" "G3XXH\n" "G3XYC\n" "G3XYF\n" "G3XYP\n" "G3XZG\n" "G3XZQ\n" "G3YAJ\n" "G3YBO\n" "G3YBT\n" "G3YBY\n" "G3YEC\n" "G3YER\n" "G3YEU\n" "G3YFE\n" "G3YHV\n" "G3YIQ\n" "G3YJD\n" "G3YMC\n" "G3YNN\n" "G3YOA\n" "G3YOG\n" "G3YPE\n" "G3YPN\n" "G3YRC\n" "G3YRO\n" "G3YTY\n" "G3YXX\n" "G3YYD\n" "G3YYZ\n" "G3Z\n" "G3ZAY\n" "G3ZBU\n" "G3ZDF\n" "G3ZFC\n" "G3ZGC\n" "G3ZGC/A\n" "G3ZHE\n" "G3ZKN\n" "G3ZNH\n" "G3ZNR\n" "G3ZOH\n" "G3ZQH\n" "G3ZQQ\n" "G3ZRJ\n" "G3ZRS\n" "G3ZSE\n" "G3ZSS\n" "G3ZVW\n" "G4ABX\n" "G4ACS\n" "G4ADJ\n" "G4AEH\n" "G4AFJ\n" "G4AFS\n" "G4AFU\n" "G4AHJ\n" "G4AHK\n" "G4AJC\n" "G4ALA\n" "G4ALD\n" "G4ALH\n" "G4AMN\n" "G4AMT\n" "G4AON\n" "G4APO\n" "G4AQG\n" "G4AQK\n" "G4ARI\n" "G4ARN\n" "G4ASR\n" "G4ATA\n" "G4AXX\n" "G4AYR\n" "G4AZN\n" "G4BEE\n" "G4BJG\n" "G4BJM\n" "G4BUE\n" "G4BUO\n" "G4BVB\n" "G4BVY\n" "G4BWF\n" "G4BXT\n" "G4BYG\n" "G4BZP\n" "G4C\n" "G4CCZ\n" "G4CFW\n" "G4CGG\n" "G4CI\n" "G4CKH\n" "G4CLA\n" "G4CLN\n" "G4CMQ\n" "G4CUS\n" "G4CVC\n" "G4CWH\n" "G4CXQ\n" "G4CYB\n" "G4CZB\n" "G4CZP\n" "G4DBW\n" "G4DBX\n" "G4DCV\n" "G4DDL\n" "G4DDS\n" "G4DDX\n" "G4DFI\n" "G4DJC\n" "G4DJJ\n" "G4DJX\n" "G4DOQ\n" "G4DRS\n" "G4DSD\n" "G4DYC\n" "G4DYO\n" "G4DZL\n" "G4DZW\n" "G4EBK\n" "G4EDD\n" "G4EDG\n" "G4EGU\n" "G4EHN\n" "G4EHT\n" "G4EKT\n" "G4ELJ\n" "G4ELY\n" "G4ELZ\n" "G4ENZ\n" "G4EOF/P\n" "G4ERW\n" "G4EZR\n" "G4EZT\n" "G4EZV\n" "G4FAD\n" "G4FAL\n" "G4FFE\n" "G4FFN\n" "G4FKA\n" "G4FKG\n" "G4FKH\n" "G4FMO\n" "G4FNL\n" "G4FOC\n" "G4FON\n" "G4FPA\n" "G4FQF\n" "G4FSU\n" "G4FTC\n" "G4FTP\n" "G4FUF\n" "G4FVK\n" "G4GEE\n" "G4GIR\n" "G4GLV\n" "G4GMW\n" "G4GVB\n" "G4GVN\n" "G4HEE\n" "G4HFP\n" "G4HHJ\n" "G4HHX\n" "G4HOM\n" "G4HUN\n" "G4HVC\n" "G4HZV\n" "G4IDR\n" "G4IIY\n" "G4IKR\n" "G4ILO\n" "G4IOG\n" "G4IUF\n" "G4IUP\n" "G4IWO\n" "G4IXF\n" "G4JKZ\n" "G4JRY\n" "G4JSR\n" "G4JZO\n" "G4KEE\n" "G4KFT\n" "G4KGL\n" "G4KHG\n" "G4KHM\n" "G4KIU\n" "G4KKI\n" "G4KLF\n" "G4KMH\n" "G4KNO\n" "G4KPN\n" "G4KRN\n" "G4KTZ\n" "G4KUE\n" "G4KZD\n" "G4LDL\n" "G4LIR\n" "G4LJU\n" "G4LMW\n" "G4LMX\n" "G4LPD\n" "G4LRP\n" "G4LWB\n" "G4LYM\n" "G4MEM\n" "G4MKP\n" "G4MKR\n" "G4MLA\n" "G4MUL\n" "G4MZJ\n" "G4NDM\n" "G4NFS\n" "G4NJW\n" "G4NKT\n" "G4NLH\n" "G4NXG\n" "G4OBB\n" "G4OBC\n" "G4OBK\n" "G4OCO\n" "G4OEC\n" "G4OFY\n" "G4OGB\n" "G4OJB\n" "G4OJS\n" "G4OPL\n" "G4ORC\n" "G4OSB\n" "G4OWG\n" "G4OWT\n" "G4OYC\n" "G4PBP\n" "G4PEF\n" "G4PIQ\n" "G4PLE\n" "G4PLY\n" "G4PNC\n" "G4POF\n" "G4PTJ\n" "G4PWA\n" "G4RCD\n" "G4RCG\n" "G4RFC\n" "G4RFR\n" "G4RGK\n" "G4RKO\n" "G4RLS\n" "G4RNK\n" "G4RQI\n" "G4RRA\n" "G4RRM\n" "G4RUW\n" "G4RWD\n" "G4RYV\n" "G4SGI\n" "G4SJG\n" "G4SJX\n" "G4SMD\n" "G4SNU\n" "G4SOF\n" "G4STH\n" "G4TNB\n" "G4TPO\n" "G4TQF\n" "G4TSH\n" "G4TSN\n" "G4UDU\n" "G4UEL\n" "G4UFK\n" "G4UFU\n" "G4UJS\n" "G4UKP\n" "G4UZN\n" "G4VCJ\n" "G4VFG\n" "G4VHH\n" "G4VMM\n" "G4VMX\n" "G4VSS\n" "G4VTO\n" "G4VUA\n" "G4VUD\n" "G4VXE\n" "G4VZR\n" "G4WBV\n" "G4WFQ\n" "G4WGE\n" "G4WPD\n" "G4WQZ\n" "G4WUG\n" "G4WXZ\n" "G4WZI\n" "G4XEX\n" "G4XFA\n" "G4XPE\n" "G4XRV\n" "G4XRX\n" "G4YAQ\n" "G4YLO\n" "G4YPV\n" "G4YRF\n" "G4YRU\n" "G4ZCG\n" "G4ZCS\n" "G4ZFE\n" "G4ZFJ\n" "G4ZGP\n" "G4ZIB\n" "G4ZOB\n" "G4ZOY\n" "G4ZUL\n" "G4ZWX\n" "G5D\n" "G5E\n" "G5FZ\n" "G5G\n" "G5KC\n" "G5KN\n" "G5LP\n" "G5N\n" "G5O\n" "G5W\n" "G5XW\n" "G5YC\n" "G6A\n" "G6AY\n" "G6BDV\n" "G6BOX\n" "G6CSY\n" "G6EVD\n" "G6H\n" "G6IRR\n" "G6LKB\n" "G6LSO\n" "G6LUG\n" "G6MC\n" "G6NUM\n" "G6NYG\n" "G6OKU\n" "G6OTZ\n" "G6PWY\n" "G6PZ\n" "G6RGA\n" "G6SFP\n" "G6TEL\n" "G6TUH\n" "G6TW\n" "G6UBM\n" "G6UW\n" "G6VS\n" "G6WWM\n" "G6WYH\n" "G6XMI\n" "G6XN\n" "G6YEK\n" "G6YGZ\n" "G6YKT\n" "G6YTB\n" "G6ZAC\n" "G7ACV\n" "G7AGZ\n" "G7AKM\n" "G7BHU\n" "G7BRZ\n" "G7BXG\n" "G7BXU\n" "G7BZD\n" "G7CLY\n" "G7DDN\n" "G7EPN\n" "G7FHV\n" "G7FIF\n" "G7FSI\n" "G7IGB\n" "G7IJI\n" "G7ITD\n" "G7IYF\n" "G7KHV\n" "G7KMZ\n" "G7LRR\n" "G7MBH\n" "G7MEI\n" "G7MJX\n" "G7N\n" "G7NAL\n" "G7NBQ\n" "G7NKS\n" "G7NOT\n" "G7OOD\n" "G7PVZ\n" "G7RAU\n" "G7RTI\n" "G7SKR\n" "G7SOZ\n" "G7SQC\n" "G7SQW\n" "G7SSE\n" "G7TGK\n" "G7TMU\n" "G7TPL\n" "G7TWC\n" "G7UOU\n" "G7VJR\n" "G7VNN\n" "G7VRK\n" "G7WFA\n" "G7WLL\n" "G8APB\n" "G8BIG\n" "G8BUN\n" "G8CCL\n" "G8CKT\n" "G8CMU\n" "G8CUG\n" "G8DNP\n" "G8DQP\n" "G8DVK\n" "G8DYT\n" "G8ETD\n" "G8EYC\n" "G8FCQ\n" "G8FDR\n" "G8FMJ\n" "G8FMJ/P\n" "G8FRS\n" "G8GBY\n" "G8GXP\n" "G8HBS\n" "G8HGP\n" "G8HPW\n" "G8HQJ\n" "G8HXE\n" "G8HYP\n" "G8JIT\n" "G8JXV\n" "G8KEK\n" "G8KVP\n" "G8LBS\n" "G8LED\n" "G8LIK\n" "G8LOJ\n" "G8LRS\n" "G8MIA\n" "G8NRP\n" "G8OEF\n" "G8P\n" "G8PQ\n" "G8RCK\n" "G8UBJ\n" "G8ULM\n" "G8VOI\n" "G8WQE\n" "G8XDX\n" "G8XTJ\n" "G8XXJ\n" "G8ZRE\n" "G9M\n" "GA0DBW\n" "GA0FGI\n" "GA0NBM\n" "GA0WED\n" "GA2MP\n" "GA3TAL\n" "GA3WUX\n" "GA3YOR\n" "GA4AGL\n" "GA4XQJ\n" "GB2BP\n" "GB2DX\n" "GB2WCM\n" "GB50ATG\n" "GB50OT\n" "GB7HQ\n" "GC0EJE\n" "GC4KPT\n" "GD0AMD\n" "GD0IFU\n" "GD0TEP\n" "GD3TNS\n" "GD4EIP\n" "GD4IHC\n" "GD4KIN\n" "GD4WBY\n" "GD6IA\n" "GD7ARS\n" "GD8K\n" "GI0AIJ\n" "GI0EJU\n" "GI0KOV\n" "GI0KOW\n" "GI0KVQ\n" "GI0MXT\n" "GI0NCA\n" "GI0OUM\n" "GI0RQK\n" "GI0RTN\n" "GI0THZ\n" "GI0UQK\n" "GI0UVD\n" "GI3DZE\n" "GI3KDR\n" "GI3NVW\n" "GI3OQR\n" "GI3PDN\n" "GI3POS\n" "GI3SG\n" "GI4AAM\n" "GI4BQI\n" "GI4CFQ\n" "GI4DOH\n" "GI4DYE\n" "GI4EBS\n" "GI4FUE\n" "GI4FUM\n" "GI4JTF\n" "GI4KSH\n" "GI4KSO\n" "GI4MWA\n" "GI4NKB\n" "GI4OWA\n" "GI4SJQ\n" "GI4SNA\n" "GI4SZW\n" "GI4VIV\n" "GI4WXA\n" "GI4XSF\n" "GI5K\n" "GI6DEY\n" "GI6FHD\n" "GI7AXB\n" "GI7THH\n" "GI8HXY\n" "GI8SKN\n" "GJ0KYZ\n" "GJ2A\n" "GJ3WW\n" "GJ3YHU\n" "GJ4CBQ\n" "GJ6YB\n" "GJ7DNI\n" "GM0ADX\n" "GM0AXY\n" "GM0B\n" "GM0CDV\n" "GM0DBW\n" "GM0EGI\n" "GM0EKM\n" "GM0ELP\n" "GM0F\n" "GM0FGI\n" "GM0FNE\n" "GM0FSV\n" "GM0GAV\n" "GM0GMN\n" "GM0GOV\n" "GM0IIO\n" "GM0KWW\n" "GM0NAI\n" "GM0NBM\n" "GM0NKX\n" "GM0OAA\n" "GM0OGN\n" "GM0ONX\n" "GM0OQV\n" "GM0RML\n" "GM0SCA\n" "GM0TQJ\n" "GM0UDL\n" "GM0UUB\n" "GM0VIT\n" "GM0VRP\n" "GM0WED\n" "GM1DSK\n" "GM1F\n" "GM1FLQ\n" "GM1J\n" "GM1POA\n" "GM1SRX\n" "GM2T\n" "GM2V\n" "GM3AXI\n" "GM3C\n" "GM3CFS\n" "GM3FDN\n" "GM3ITN\n" "GM3JKS\n" "GM3JOB\n" "GM3JQJ\n" "GM3JSX\n" "GM3LKY\n" "GM3LKY/P\n" "GM3MZX\n" "GM3NHQ\n" "GM3NSQ\n" "GM3OXX\n" "GM3OZB\n" "GM3POI\n" "GM3PPG\n" "GM3SEK\n" "GM3SVW\n" "GM3T\n" "GM3TCW\n" "GM3UA\n" "GM3UHT\n" "GM3VNW\n" "GM3VTY\n" "GM3W\n" "GM3WIJ\n" "GM3WIL\n" "GM3WOJ\n" "GM3WUX\n" "GM3YEH\n" "GM3YOR\n" "GM3YS\n" "GM3YTS\n" "GM3ZBE\n" "GM3ZRT\n" "GM3ZXL\n" "GM4AFF\n" "GM4AGL\n" "GM4BKV\n" "GM4BRN\n" "GM4CXM\n" "GM4DZX\n" "GM4ELV\n" "GM4ESD\n" "GM4EVS\n" "GM4FAM\n" "GM4FDM\n" "GM4FFF\n" "GM4HQF\n" "GM4IKT\n" "GM4JR\n" "GM4JYB\n" "GM4KGK\n" "GM4KLN\n" "GM4NTL\n" "GM4OSS\n" "GM4SDQ\n" "GM4SID\n" "GM4TAL\n" "GM4UBJ\n" "GM4ULS\n" "GM4UYE\n" "GM4UYZ\n" "GM4W\n" "GM4WIE\n" "GM4WLN\n" "GM4XQJ\n" "GM4YLN\n" "GM4YSN\n" "GM4YXI\n" "GM4ZJI\n" "GM4ZNC\n" "GM4ZUK\n" "GM5A\n" "GM5M\n" "GM6MD\n" "GM6NX\n" "GM6VCV\n" "GM6VVG\n" "GM7A\n" "GM7AAJ\n" "GM7DAJ\n" "GM7KFS\n" "GM7OAW\n" "GM7R\n" "GM7TFN\n" "GM7TUD\n" "GM7UAU\n" "GM7V\n" "GM7VSB/P\n" "GM8GAX\n" "GM8LFB\n" "GM8SBH\n" "GR2HQ\n" "GS0TOW\n" "GS8R\n" "GU0SUP\n" "GU4CHY\n" "GU4EON\n" "GU4RUK\n" "GU4YOX\n" "GU6EFB\n" "GW0ANA\n" "GW0ARK\n" "GW0ETF\n" "GW0FEU\n" "GW0GEI\n" "GW0IRP\n" "GW0IWD\n" "GW0LBI\n" "GW0LKJ\n" "GW0MOW\n" "GW0NPL\n" "GW0RYT\n" "GW0TSM\n" "GW0UDJ\n" "GW0UZK\n" "GW0VSW\n" "GW0VWD\n" "GW0WGK\n" "GW1CJJ\n" "GW1IOT\n" "GW1MVZ\n" "GW1PJP\n" "GW1VDW\n" "GW3CBA\n" "GW3HGL\n" "GW3JSV\n" "GW3JXN\n" "GW3KDB\n" "GW3KGV\n" "GW3LDC\n" "GW3LEW\n" "GW3LNR\n" "GW3MCS\n" "GW3NAS\n" "GW3NJW\n" "GW3R\n" "GW3SFC\n" "GW3SQX\n" "GW3UOF\n" "GW3XRM\n" "GW3YAF\n" "GW3YBX\n" "GW3YDX\n" "GW3YRP\n" "GW3YVC\n" "GW4AYJ\n" "GW4BKG\n" "GW4BLE\n" "GW4BVE\n" "GW4BZD\n" "GW4CQZ\n" "GW4EVX\n" "GW4HDF\n" "GW4MVA\n" "GW4OGO\n" "GW4OH\n" "GW4RDW\n" "GW4RIB\n" "GW4SKA\n" "GW4TPG\n" "GW5NF\n" "GW6JBN\n" "GW6NKG\n" "GW6PMC\n" "GW6W\n" "GW7BZR\n" "GW7ERI\n" "GW7X\n" "GW8GT\n" "GW8IQC\n" "GW8IZR\n" "GW8JOY\n" "GW8NBI\n" "GW9T\n" "GX3YNN\n" "GX4BJC/A\n" "GX4BJC/P\n" "GZ0F\n" "GZ5Y\n" "H22H\n" "H2E\n" "H2Q\n" "H2T\n" "H44MS\n" "H44MY\n" "H7A\n" "HA/YO5KAD/P\n" "HA0ANA\n" "HA0BW\n" "HA0BY\n" "HA0DD\n" "HA0ER\n" "HA0GK\n" "HA0HV\n" "HA0HW\n" "HA0IH\n" "HA0IL\n" "HA0IM\n" "HA0IT\n" "HA0IV\n" "HA0KLL\n" "HA0LC\n" "HA0LG\n" "HA0LP\n" "HA0LW\n" "HA0ML\n" "HA0MO\n" "HA0MS\n" "HA0NAR\n" "HA0NGT\n" "HA100KONE\n" "HA1A\n" "HA1AD\n" "HA1AG\n" "HA1AR\n" "HA1AV\n" "HA1BC\n" "HA1CA/P\n" "HA1CW\n" "HA1DAE\n" "HA1DK\n" "HA1FF\n" "HA1Q\n" "HA1RS\n" "HA1SD\n" "HA1SN\n" "HA1SU\n" "HA1TAB\n" "HA1TI\n" "HA1TNX\n" "HA1TO\n" "HA1VE\n" "HA1WD\n" "HA1XU\n" "HA1XY\n" "HA1YI\n" "HA1ZH\n" "HA1ZU\n" "HA1ZV\n" "HA1ZZ\n" "HA25NAR\n" "HA2EBE\n" "HA2EOA\n" "HA2EOD\n" "HA2EOJ\n" "HA2EQD\n" "HA2ERO\n" "HA2ESM\n" "HA2G\n" "HA2MJ\n" "HA2MN\n" "HA2NM\n" "HA2PP\n" "HA2QW\n" "HA2R\n" "HA2RQ\n" "HA2SG\n" "HA2SJ\n" "HA2VH\n" "HA2VR/P\n" "HA2YL\n" "HA3/N1BCL\n" "HA3DMF\n" "HA3DX\n" "HA3E\n" "HA3FT\n" "HA3FTA\n" "HA3FZ\n" "HA3GE\n" "HA3GJ\n" "HA3GN\n" "HA3GO\n" "HA3GQ\n" "HA3HF\n" "HA3HK\n" "HA3HO\n" "HA3HX\n" "HA3JB\n" "HA3JO\n" "HA3LGB\n" "HA3LI\n" "HA3LN\n" "HA3MN\n" "HA3MU\n" "HA3MY\n" "HA3NU\n" "HA3OD\n" "HA3OK\n" "HA3OU\n" "HA3OV\n" "HA3PT\n" "HA3RD\n" "HA3UU\n" "HA3YE\n" "HA4AA\n" "HA4FB\n" "HA4FV\n" "HA4FY\n" "HA4YF\n" "HA4YO\n" "HA5AB\n" "HA5AEZ\n" "HA5AF\n" "HA5AGS\n" "HA5AO\n" "HA5AQ\n" "HA5ARX\n" "HA5AWT\n" "HA5AZZ\n" "HA5BA\n" "HA5BKV/P\n" "HA5BPS/P\n" "HA5BSW\n" "HA5BVG\n" "HA5CQ\n" "HA5DA\n" "HA5DE\n" "HA5FA\n" "HA5FM\n" "HA5FQ\n" "HA5GN\n" "HA5GO\n" "HA5GY\n" "HA5HH\n" "HA5JI\n" "HA5KDQ\n" "HA5KG\n" "HA5KID\n" "HA5KKC\n" "HA5KN\n" "HA5KQ\n" "HA5KY\n" "HA5LV\n" "HA5LZ\n" "HA5MK\n" "HA5MO\n" "HA5NB\n" "HA5OAF\n" "HA5OB\n" "HA5OM\n" "HA5OMM\n" "HA5OO\n" "HA5OV\n" "HA5OW\n" "HA5PP\n" "HA5PT\n" "HA5RDP\n" "HA5TI\n" "HA5UA\n" "HA5UK\n" "HA5UY\n" "HA5VJ\n" "HA5VZ\n" "HA5W\n" "HA5WA\n" "HA5X\n" "HA6D\n" "HA6FQ\n" "HA6IAM\n" "HA6IAY\n" "HA6ICP\n" "HA6IGM\n" "HA6KNX\n" "HA6KZS\n" "HA6M\n" "HA6NF\n" "HA6NI\n" "HA6NL\n" "HA6NN\n" "HA6NW\n" "HA6NY\n" "HA6OA\n" "HA6OD\n" "HA6OL\n" "HA6OZ\n" "HA6PF\n" "HA6PJ\n" "HA6PQ\n" "HA6PS/P\n" "HA6PX\n" "HA6QR\n" "HA6VA\n" "HA6VB\n" "HA6WTM/P\n" "HA6XA\n" "HA6ZQ\n" "HA7A\n" "HA7AVU\n" "HA7CN\n" "HA7GN\n" "HA7JDV\n" "HA7JQK\n" "HA7LW\n" "HA7MB\n" "HA7ML\n" "HA7MS\n" "HA7MW\n" "HA7MY\n" "HA7NK\n" "HA7PF\n" "HA7PL\n" "HA7PO\n" "HA7RY\n" "HA7SBQ\n" "HA7SG\n" "HA7SQ\n" "HA7TM\n" "HA7UG\n" "HA7UI\n" "HA7UL\n" "HA7UW\n" "HA7VK\n" "HA7YS\n" "HA7ZT\n" "HA8A\n" "HA8AAA\n" "HA8AL\n" "HA8AR\n" "HA8BE\n" "HA8BQ\n" "HA8BR\n" "HA8BT\n" "HA8CQ\n" "HA8DM\n" "HA8DT\n" "HA8EK\n" "HA8EN\n" "HA8EV\n" "HA8FK\n" "HA8FM\n" "HA8GT\n" "HA8GY\n" "HA8IB\n" "HA8IC\n" "HA8IE\n" "HA8IH\n" "HA8JP\n" "HA8JV\n" "HA8KCS\n" "HA8KVK\n" "HA8KW\n" "HA8LKM\n" "HA8LLK\n" "HA8LNA\n" "HA8LNN\n" "HA8MD\n" "HA8MT\n" "HA8MV\n" "HA8PH\n" "HA8QB\n" "HA8QC\n" "HA8QZ\n" "HA8RC\n" "HA8RJ\n" "HA8RM\n" "HA8SSG\n" "HA8TI\n" "HA8TP\n" "HA8UT\n" "HA8V\n" "HA8VK\n" "HA8VX\n" "HA8WO\n" "HA8WP\n" "HA8WY\n" "HA8WZ\n" "HA8YU\n" "HA8ZB\n" "HA9DMD\n" "HA9PP\n" "HA9RC\n" "HA9RE\n" "HA9RT\n" "HA9RU\n" "HA9SU\n" "HB0/DH2FW\n" "HB0/DJ9CB\n" "HB0/DK4YJ\n" "HB0/DK9FEC\n" "HB0/DK9TN\n" "HB0/F5LMJ\n" "HB0/HB9AON\n" "HB0/HB9LCW\n" "HB0CC\n" "HB10DX\n" "HB3YAV\n" "HB3YDJ\n" "HB3YFC\n" "HB3YRB\n" "HB3YSC\n" "HB3YUL\n" "HB3YVF\n" "HB3YVZ\n" "HB4FE\n" "HB4FL\n" "HB8AD\n" "HB9AA\n" "HB9AAL\n" "HB9AAP\n" "HB9AAQ\n" "HB9AAY\n" "HB9AAZ\n" "HB9ABB\n" "HB9ACC\n" "HB9ADC\n" "HB9AEP\n" "HB9AEV\n" "HB9AFH\n" "HB9AFI\n" "HB9AGA\n" "HB9AGH\n" "HB9AGO\n" "HB9AII\n" "HB9AIY\n" "HB9AJ\n" "HB9AJG\n" "HB9AJM\n" "HB9AJP\n" "HB9AJW\n" "HB9AKB\n" "HB9ALH\n" "HB9ALO\n" "HB9AMB\n" "HB9AMO\n" "HB9ANJ\n" "HB9ANM\n" "HB9AON\n" "HB9APJ\n" "HB9AQA\n" "HB9AQW\n" "HB9ARF\n" "HB9ARK\n" "HB9ATG\n" "HB9ATX\n" "HB9AUK\n" "HB9AUS\n" "HB9AVE\n" "HB9AVK\n" "HB9AWS\n" "HB9AYZ\n" "HB9AZZ\n" "HB9BAP\n" "HB9BEI\n" "HB9BGF\n" "HB9BHW\n" "HB9BIN\n" "HB9BIQ\n" "HB9BJJ\n" "HB9BJL\n" "HB9BLQ\n" "HB9BMY\n" "HB9BNK\n" "HB9BOO\n" "HB9BOS\n" "HB9BPV\n" "HB9BPX\n" "HB9BQP\n" "HB9BQY\n" "HB9BRJ\n" "HB9BRU\n" "HB9BTI\n" "HB9BTQ\n" "HB9BXE\n" "HB9BXQ\n" "HB9BYQ\n" "HB9BZA\n" "HB9CA\n" "HB9CAL\n" "HB9CAT\n" "HB9CBR\n" "HB9CCZ\n" "HB9CEI\n" "HB9CEX\n" "HB9CEY\n" "HB9CFU\n" "HB9CGL\n" "HB9CGO\n" "HB9CHY\n" "HB9CIC\n" "HB9CIK\n" "HB9CIN\n" "HB9CIP\n" "HB9CKM\n" "HB9CMG\n" "HB9CNR\n" "HB9CNU\n" "HB9CNY\n" "HB9COH\n" "HB9COJ\n" "HB9COP\n" "HB9COZ\n" "HB9CPS\n" "HB9CQL\n" "HB9CQS\n" "HB9CRV\n" "HB9CSM\n" "HB9CUK\n" "HB9CVE\n" "HB9CVQ\n" "HB9CXR\n" "HB9CXZ\n" "HB9CYT\n" "HB9CZF\n" "HB9DA\n" "HB9DAI\n" "HB9DAX\n" "HB9DBK\n" "HB9DCL\n" "HB9DCM\n" "HB9DCQ\n" "HB9DDE\n" "HB9DDO\n" "HB9DDS\n" "HB9DDZ\n" "HB9DES\n" "HB9DFD\n" "HB9DFI\n" "HB9DHA\n" "HB9DHG\n" "HB9DNG\n" "HB9DOS\n" "HB9DPO\n" "HB9DPY\n" "HB9DQD\n" "HB9DQH\n" "HB9DQJ\n" "HB9DRI\n" "HB9DRK\n" "HB9DRM\n" "HB9DRS\n" "HB9DRT\n" "HB9DSE\n" "HB9DSU\n" "HB9DUP\n" "HB9DUR\n" "HB9DVT\n" "HB9DVZ\n" "HB9DWL\n" "HB9DWR\n" "HB9DWZ\n" "HB9EAZ\n" "HB9EBC\n" "HB9EDG\n" "HB9EE\n" "HB9EFJ\n" "HB9EFM\n" "HB9EGA/P\n" "HB9EHJ\n" "HB9EHK\n" "HB9EHN\n" "HB9EHP\n" "HB9EHV\n" "HB9EI\n" "HB9EIY\n" "HB9EIZ\n" "HB9EKR\n" "HB9ELD\n" "HB9ELF\n" "HB9ELS\n" "HB9ELV\n" "HB9EP\n" "HB9EPH\n" "HB9EPM\n" "HB9ESC\n" "HB9ESS\n" "HB9ETR\n" "HB9FAI\n" "HB9FAP\n" "HB9FAQ\n" "HB9FAW\n" "HB9FBG\n" "HB9FBM\n" "HB9FBS\n" "HB9FBU\n" "HB9FMN\n" "HB9FMT\n" "HB9FMU\n" "HB9FNE\n" "HB9FNX\n" "HB9G\n" "HB9GBJ\n" "HB9GCE\n" "HB9H\n" "HB9HFM\n" "HB9HFN\n" "HB9HI/P\n" "HB9HLM\n" "HB9HQ\n" "HB9HQA\n" "HB9HQX\n" "HB9IAB\n" "HB9ICC\n" "HB9ICG\n" "HB9IIO\n" "HB9IIY\n" "HB9IK\n" "HB9IQB\n" "HB9IQP\n" "HB9JBN\n" "HB9JF\n" "HB9JNM\n" "HB9JOE\n" "HB9JW\n" "HB9KAI\n" "HB9KAM\n" "HB9KAR\n" "HB9KBB\n" "HB9KNA\n" "HB9KNY\n" "HB9KOG\n" "HB9KT\n" "HB9LBL\n" "HB9LCW\n" "HB9LF\n" "HB9LL\n" "HB9MCF\n" "HB9MFM\n" "HB9MGX\n" "HB9MHR\n" "HB9MI\n" "HB9MXY\n" "HB9MZI\n" "HB9OAB\n" "HB9OCR\n" "HB9ODK\n" "HB9ODP\n" "HB9OK\n" "HB9ON\n" "HB9PGR\n" "HB9PJT\n" "HB9PL\n" "HB9PLW\n" "HB9PNR\n" "HB9QA\n" "HB9QR\n" "HB9QT\n" "HB9RDE\n" "HB9RE\n" "HB9RJD\n" "HB9RJG\n" "HB9ROX\n" "HB9RVE\n" "HB9SVT\n" "HB9TI\n" "HB9TKS\n" "HB9TLM\n" "HB9TMW\n" "HB9TNU\n" "HB9TNW\n" "HB9TOC\n" "HB9TON\n" "HB9TOX\n" "HB9TPK\n" "HB9TPT\n" "HB9TQL\n" "HB9TQP\n" "HB9TRD\n" "HB9TRT\n" "HB9TSA\n" "HB9TSI\n" "HB9TST\n" "HB9TSU\n" "HB9TSW\n" "HB9TTX\n" "HB9TUD\n" "HB9TUZ\n" "HB9TVR\n" "HB9TVY\n" "HB9TWS\n" "HB9TWU\n" "HB9TWZ\n" "HB9TZR\n" "HB9UU\n" "HB9VID\n" "HB9WDY\n" "HB9XAW\n" "HB9YBQ\n" "HB9YC\n" "HB9ZAG\n" "HB9ZCF\n" "HB9ZCV\n" "HB9ZE\n" "HB9ZV\n" "HB9ZY\n" "HB9ZZ\n" "HC1HC\n" "HC1JQ\n" "HC1MD\n" "HC2A\n" "HC2AD\n" "HC2AQ\n" "HC2GF\n" "HC2GO\n" "HC2GT\n" "HC2IK\n" "HC2KB\n" "HC2S\n" "HC2SA\n" "HC2SL\n" "HC5VF\n" "HC5WW\n" "HC7AE\n" "HC8A\n" "HC8GR\n" "HC8N\n" "HD2A\n" "HD2M\n" "HD5J\n" "HE8AAA\n" "HE8AFI\n" "HE8AOF\n" "HE8AUS\n" "HE8AWS\n" "HE8BIN\n" "HE8BRU\n" "HE8CIC\n" "HE8CSM\n" "HE8CUK\n" "HE8CXZ\n" "HE8CZF\n" "HE8DAX\n" "HE8DDE\n" "HE8DSY\n" "HE8DWR\n" "HE8EBC\n" "HE8EFJ\n" "HE8FAP\n" "HE8FR\n" "HE8HLM\n" "HE8MH\n" "HE8MXY\n" "HE8OK\n" "HE8PKP\n" "HE8TJM\n" "HE8TMW\n" "HE8TOC\n" "HE8TST\n" "HE8TSU\n" "HE8TUD\n" "HE8TUZ\n" "HE8WW\n" "HE8ZZ\n" "HF200C\n" "HF30CUF\n" "HF4K\n" "HF50BORY\n" "HF50OLS\n" "HF5ES\n" "HF65PW\n" "HF70M\n" "HF70W\n" "HF80B\n" "HF80IU\n" "HF80JMR\n" "HF94JEN\n" "HF94KE\n" "HG0A\n" "HG0HQ\n" "HG0R\n" "HG10P\n" "HG1848I\n" "HG1A\n" "HG1DX\n" "HG1R\n" "HG1S\n" "HG1W\n" "HG1X\n" "HG2W\n" "HG2X\n" "HG30FHA\n" "HG3A\n" "HG3DX\n" "HG3FMZ\n" "HG3IPA\n" "HG3M\n" "HG3R\n" "HG3W\n" "HG400HV\n" "HG4F\n" "HG4I\n" "HG5A\n" "HG5C\n" "HG5O\n" "HG5XA\n" "HG60VOTT\n" "HG6N\n" "HG6V\n" "HG6W\n" "HG6Y\n" "HG7HQ\n" "HG7JAL\n" "HG7T\n" "HG8C\n" "HG8DX\n" "HG8K\n" "HG8N\n" "HG8R\n" "HG8W\n" "HG8YKO\n" "HG8Z\n" "HG9R\n" "HH2/I8UZA\n" "HI3/LY3UM\n" "HI3/W1JNZ\n" "HI3A\n" "HI3CC\n" "HI3CCP\n" "HI3FVA\n" "HI3K\n" "HI3T\n" "HI3TEJ\n" "HI8A\n" "HI8JQE\n" "HI8LAM\n" "HI8PJP\n" "HI8PLE\n" "HK0/EA7HEJ\n" "HK0T\n" "HK1A\n" "HK1AA\n" "HK1KXA\n" "HK1KYR\n" "HK1N\n" "HK1NK\n" "HK1R\n" "HK1X\n" "HK3/KC2LSD\n" "HK3CQ\n" "HK3J\n" "HK3JJH\n" "HK3KWX\n" "HK3LGO\n" "HK3O\n" "HK3OZ\n" "HK3PSA\n" "HK3Q\n" "HK3RA\n" "HK3TU\n" "HK3UA\n" "HK3W\n" "HK3Y\n" "HK4EB\n" "HK4SAN\n" "HK6CF\n" "HK6F\n" "HK6P\n" "HK6R\n" "HK8EA\n" "HL0HQ\n" "HL0MBC\n" "HL0U\n" "HL1/SP5AUC\n" "HL1/WX8C\n" "HL1AV\n" "HL1IBG\n" "HL1IWD\n" "HL1OYF\n" "HL1VAU\n" "HL2/KF6RCP\n" "HL2ADO\n" "HL2AEJ\n" "HL2AVK\n" "HL2BM\n" "HL2CFY\n" "HL2DC\n" "HL2DYS\n" "HL2FDW\n" "HL2KV\n" "HL2KXT\n" "HL2LTX\n" "HL2MTK\n" "HL2OLN\n" "HL2PCU\n" "HL2ST\n" "HL2SU\n" "HL2UOK\n" "HL3AMO\n" "HL3IB\n" "HL3IUA\n" "HL4CEL\n" "HL4CJG\n" "HL4GKR\n" "HL4RBR\n" "HL4XM\n" "HL5/VK6DXI\n" "HL5AP\n" "HL5BLI\n" "HL5BMX\n" "HL5FKP\n" "HL5FXP\n" "HL5JCB\n" "HL5JGR\n" "HL5LKI\n" "HL5OC\n" "HL5QY\n" "HL5UOG\n" "HL5YI\n" "HL9A\n" "HP1/IZ6BRN\n" "HP1AC\n" "HP1ALX\n" "HP1AVS\n" "HP1BYS\n" "HP1DCP\n" "HP1RIS\n" "HP1WW\n" "HP3AK\n" "HP3DX\n" "HP3FTD\n" "HP3TA\n" "HQ1L\n" "HQ2R\n" "HQ2T\n" "HQ2W\n" "HQ3Z\n" "HQ9R\n" "HR1/K2LCT\n" "HR1RTF\n" "HR2DMR\n" "HR2J\n" "HR2OAV\n" "HR9/WQ7R\n" "HS0/W4ESF\n" "HS0AC\n" "HS0EHF\n" "HS0GBI\n" "HS0ZBS\n" "HS0ZCW\n" "HS0ZCX\n" "HS0ZDJ\n" "HS0ZDR\n" "HS0ZDX\n" "HS0ZDY\n" "HS0ZED\n" "HS0ZEE\n" "HS0ZFK\n" "HS0ZGD\n" "HS0ZGV\n" "HS0ZHB\n" "HS0ZHC\n" "HS0ZHI\n" "HS0ZIN\n" "HS0ZIQ\n" "HS1CHB\n" "HS1CKC\n" "HS8JYX\n" "HS8KGG\n" "HT2N\n" "HV0A\n" "HV4NAC\n" "HZ1DG\n" "HZ1GW\n" "HZ1MD\n" "HZ1PS\n" "HZ1SK\n" "I/SQ9DJD\n" "I0/YO7LKW\n" "I0AAF\n" "I0ABK\n" "I0AMU\n" "I0APV\n" "I0BYR\n" "I0CG\n" "I0CMD\n" "I0DJV\n" "I0DTK\n" "I0EKY\n" "I0FDH\n" "I0GXK\n" "I0HCJ\n" "I0IA\n" "I0ISK\n" "I0JBL\n" "I0JX\n" "I0KHP\n" "I0KHY\n" "I0KNQ\n" "I0KWK\n" "I0KWX\n" "I0LTX\n" "I0LYO\n" "I0MOC\n" "I0MOM\n" "I0MWI\n" "I0NNY\n" "I0QM\n" "I0TIC\n" "I0TWA\n" "I0UZF\n" "I0VPK\n" "I0XXR\n" "I0YKN\n" "I0YQV\n" "I0YR\n" "I0ZUT\n" "I0ZV\n" "I0ZY\n" "I1ABT\n" "I1APQ\n" "I1BAY\n" "I1BEP\n" "I1BPU\n" "I1COB\n" "I1EIS\n" "I1FHA\n" "I1FLC\n" "I1FQH\n" "I1GIK\n" "I1HJT\n" "I1HJT/3\n" "I1HLP\n" "I1IOQ\n" "I1JHS\n" "I1LBI\n" "I1LGR\n" "I1LSN\n" "I1MRH\n" "I1NVU\n" "I1OOQ\n" "I1OQI\n" "I1PLX\n" "I1POR\n" "I1QBI\n" "I1RB\n" "I1RJP\n" "I1SAF\n" "I1SCL\n" "I1UW\n" "I1WQR\n" "I1WXY\n" "I1XPQ\n" "I1XSG\n" "I1YGQ\n" "I1YRL\n" "I1YTO\n" "I1ZDW\n" "I1ZEU\n" "I1ZL\n" "I2AT\n" "I2AXC/IS0\n" "I2AZ\n" "I2BBJ\n" "I2BJS\n" "I2BPP\n" "I2BZN\n" "I2CZQ\n" "I2DJX\n" "I2DMI\n" "I2EAY\n" "I2EGD\n" "I2FUG\n" "I2FUM\n" "I2GPT\n" "I2HXO\n" "I2JIM\n" "I2JIN\n" "I2JSB\n" "I2KAJ\n" "I2KBD\n" "I2KBW\n" "I2KMG\n" "I2MOV\n" "I2MQP\n" "I2NKR\n" "I2NX\n" "I2OGV\n" "I2ORX\n" "I2PEI\n" "I2PJA\n" "I2PUS\n" "I2RBR\n" "I2RFJ\n" "I2ROO\n" "I2RVW\n" "I2SVA\n" "I2TAO\n" "I2TFJ\n" "I2TZK\n" "I2UAC\n" "I2UBI\n" "I2UCE\n" "I2VGW\n" "I2VGZ\n" "I2VRN\n" "I2VXJ\n" "I2WDB\n" "I2WIJ\n" "I2WSG\n" "I2XBO\n" "I2XIP\n" "I2XLF\n" "I2YYO\n" "I2ZGA\n" "I2ZP\n" "I3BBK\n" "I3BLF\n" "I3CRW\n" "I3DBD\n" "I3EVK\n" "I3FDZ\n" "I3FIY\n" "I3GKK\n" "I3GVN\n" "I3ISM\n" "I3JRF\n" "I3JSS\n" "I3KAN\n" "I3MIQ\n" "I3MLU\n" "I3MMB\n" "I3MU\n" "I3OKZ\n" "I3PVB\n" "I3PXN\n" "I3QDK\n" "I3STS\n" "I3TGW\n" "I3THJ\n" "I3TXQ\n" "I3VAD\n" "I3VJW\n" "I3VRD\n" "I3VWK\n" "I3XMQ\n" "I3YEG\n" "I3ZNG\n" "I3ZSX\n" "I4ABF\n" "I4AUM\n" "I4AVG\n" "I4BMJ\n" "I4DVT\n" "I4DZ\n" "I4EAT\n" "I4ENO\n" "I4EUM\n" "I4EWH\n" "I4FGG\n" "I4FTU\n" "I4FYF\n" "I4GAD\n" "I4GYG\n" "I4HRH\n" "I4IKW\n" "I4JEE\n" "I4JRE\n" "I4JUQ\n" "I4KJW\n" "I4KMN\n" "I4KMW\n" "I4KRF\n" "I4LCK\n" "I4LEC\n" "I4MKN\n" "I4MNY\n" "I4NJM\n" "I4PZP\n" "I4QHD\n" "I4SJZ\n" "I4TJE\n" "I4UKS\n" "I4VEQ\n" "I4VIL\n" "I4VJC\n" "I4VOS\n" "I4WYE\n" "I4XNN\n" "I4YCE\n" "I4YEL\n" "I4YEY\n" "I4YSS\n" "I4YUG\n" "I4YYC\n" "I4ZGI\n" "I4ZQS\n" "I4ZSQ\n" "I5/IZ2RPJ\n" "I5BG\n" "I5BOL\n" "I5DOF\n" "I5DUI\n" "I5ECW\n" "I5ESR\n" "I5FCK\n" "I5FLN\n" "I5FWT\n" "I5HLK\n" "I5IAR\n" "I5IHE\n" "I5JFG\n" "I5JHW\n" "I5JKI/3\n" "I5KAP\n" "I5KG\n" "I5LRW\n" "I5LYJ\n" "I5MPK\n" "I5MXX\n" "I5NPH\n" "I5NSR\n" "I5OYY\n" "I5PFX\n" "I5QNJ\n" "I5REA\n" "I5RFD\n" "I5SDG\n" "I5VVA\n" "I5VXG\n" "I5WNN\n" "I5ZJK\n" "I5ZSS\n" "I5ZUF\n" "I6BDS\n" "I6BYQ\n" "I6CBI\n" "I6COJ\n" "I6DU\n" "I6DVW\n" "I6FDJ\n" "I6FLD\n" "I6FPN\n" "I6JEI\n" "I6KIU\n" "I6NO\n" "I6PTL\n" "I6TIH\n" "I6VGA\n" "I6WJB\n" "I7/9A3A\n" "I7CSB\n" "I7PHH\n" "I7PXV\n" "I7WL\n" "I8HAK\n" "I8IGS\n" "I8JOQ\n" "I8JYK\n" "I8KCI\n" "I8KFR\n" "I8KRC\n" "I8LWL\n" "I8MPO\n" "I8MSY\n" "I8NHJ\n" "I8OCA\n" "I8PND\n" "I8QJU\n" "I8QLI\n" "I8QLS\n" "I8SAT\n" "IA3IPY\n" "IB0R\n" "IC8AJU\n" "IC8C\n" "IC8FBU\n" "IC8OZM\n" "IC8POF\n" "IC8SCI\n" "IC8TEM\n" "IF9A\n" "IF9ZWA\n" "IG9/I2ADN\n" "IG9R\n" "IG9S\n" "IG9U\n" "IG9W\n" "IG9X\n" "IH9GPI\n" "IH9N\n" "IH9YMC\n" "II1H\n" "II1W\n" "II20CJ\n" "II2A\n" "II2C\n" "II2CV\n" "II2IARA\n" "II2S\n" "II3L\n" "II4A\n" "II4DP\n" "II5P\n" "II5W\n" "II7M\n" "IK0ATK\n" "IK0AUO\n" "IK0BOU\n" "IK0BZE\n" "IK0CHU\n" "IK0CNA\n" "IK0EFR\n" "IK0EIE\n" "IK0ESW\n" "IK0FMB\n" "IK0FUX\n" "IK0GDG\n" "IK0GHB\n" "IK0HBN\n" "IK0HFO\n" "IK0HIT\n" "IK0IKE\n" "IK0IOL\n" "IK0ISD\n" "IK0IXI\n" "IK0IZW\n" "IK0JFW\n" "IK0JNI\n" "IK0JOE\n" "IK0LNN\n" "IK0MHR\n" "IK0MIB\n" "IK0MPI\n" "IK0NSF\n" "IK0OZD\n" "IK0OZH\n" "IK0PEA\n" "IK0PHY\n" "IK0PRG\n" "IK0PXC\n" "IK0RCY\n" "IK0SDQ\n" "IK0SME\n" "IK0SXU\n" "IK0TUM\n" "IK0TWN\n" "IK0UTM\n" "IK0VAQ\n" "IK0VBT\n" "IK0VJH\n" "IK0VKL\n" "IK0VSY\n" "IK0VVG\n" "IK0VWH\n" "IK0VXG\n" "IK0WHN\n" "IK0WRB\n" "IK0XBX\n" "IK0XIH\n" "IK0YQJ\n" "IK0YUT\n" "IK0YVV\n" "IK0ZSN\n" "IK1ADH\n" "IK1ASR\n" "IK1BBC\n" "IK1BHS\n" "IK1BPL\n" "IK1CCS\n" "IK1DFH\n" "IK1DPA\n" "IK1DQW\n" "IK1EZC\n" "IK1FLE\n" "IK1FVO\n" "IK1FXX\n" "IK1GKD\n" "IK1GKH\n" "IK1GPG\n" "IK1GPK\n" "IK1HSS\n" "IK1HXN\n" "IK1HZZ\n" "IK1IXG\n" "IK1JJM\n" "IK1JNS\n" "IK1JTQ\n" "IK1JXY\n" "IK1LJO\n" "IK1LYQ\n" "IK1MDF\n" "IK1MEG\n" "IK1MJG\n" "IK1NEG\n" "IK1NPP\n" "IK1PMR\n" "IK1QBT\n" "IK1QFP\n" "IK1QHB\n" "IK1RAG\n" "IK1RGK\n" "IK1RKN\n" "IK1RKU\n" "IK1RQQ\n" "IK1SOW\n" "IK1SPE\n" "IK1SPR\n" "IK1TAZ\n" "IK1TJK\n" "IK1TWC\n" "IK1UGX\n" "IK1VCE\n" "IK1VDN\n" "IK1VEK\n" "IK1WEG\n" "IK1WGX\n" "IK1WJN\n" "IK1WJR\n" "IK1XHZ\n" "IK1XPK\n" "IK1XVO\n" "IK1YDB\n" "IK1YED\n" "IK1YEK\n" "IK1YLL\n" "IK1ZFO\n" "IK1ZNL\n" "IK1ZOE\n" "IK1ZYO\n" "IK2AHB\n" "IK2AHG\n" "IK2AHR\n" "IK2AIT\n" "IK2ANI\n" "IK2AOO\n" "IK2APW\n" "IK2AQZ\n" "IK2AUK\n" "IK2AVH\n" "IK2BBU\n" "IK2BCP\n" "IK2BDR\n" "IK2BLA\n" "IK2BSK\n" "IK2BUF\n" "IK2CFD\n" "IK2CHZ\n" "IK2CIK\n" "IK2CIO\n" "IK2CLB\n" "IK2CMN\n" "IK2CZQ\n" "IK2DAD\n" "IK2DED\n" "IK2DFZ\n" "IK2DJV\n" "IK2DKX\n" "IK2DPP\n" "IK2DZN\n" "IK2EAD\n" "IK2EBP\n" "IK2ECM\n" "IK2ECP\n" "IK2EGL\n" "IK2EKO\n" "IK2FCO\n" "IK2FIL\n" "IK2FIQ\n" "IK2FSS\n" "IK2FWO\n" "IK2GPQ\n" "IK2GWH\n" "IK2GZU\n" "IK2HBF\n" "IK2HDF\n" "IK2HKN\n" "IK2HKT\n" "IK2HLM\n" "IK2IKW\n" "IK2ILH\n" "IK2IQD\n" "IK2JYT\n" "IK2LFD\n" "IK2LOL\n" "IK2LTR\n" "IK2MKM\n" "IK2MLS\n" "IK2MLY\n" "IK2MPR\n" "IK2NCF\n" "IK2NUX\n" "IK2NVE\n" "IK2PFL\n" "IK2QEB\n" "IK2QEI\n" "IK2QIK\n" "IK2QIN\n" "IK2QLX\n" "IK2QPR\n" "IK2REA\n" "IK2RGT\n" "IK2RLS\n" "IK2RMZ\n" "IK2RZP\n" "IK2RZQ\n" "IK2SAI\n" "IK2SAR\n" "IK2SAU\n" "IK2SGB\n" "IK2SGF\n" "IK2SND\n" "IK2SVF\n" "IK2TDM\n" "IK2TDR\n" "IK2TYP\n" "IK2UCK\n" "IK2UEC\n" "IK2UEK\n" "IK2UJF\n" "IK2UJS\n" "IK2UTT\n" "IK2UZQ\n" "IK2VFR\n" "IK2VFW\n" "IK2VIW\n" "IK2WFJ\n" "IK2WFN\n" "IK2WJT\n" "IK2WPO\n" "IK2WQK\n" "IK2WSJ\n" "IK2WXQ\n" "IK2WXV\n" "IK2WYI\n" "IK2WYW\n" "IK2WZM\n" "IK2XDE\n" "IK2XDF\n" "IK2XEF\n" "IK2XRO\n" "IK2XYI\n" "IK2YCW\n" "IK2YFT\n" "IK2YGZ\n" "IK2YSJ\n" "IK2YXB\n" "IK2YXP\n" "IK3AES\n" "IK3ASM\n" "IK3BTK\n" "IK3BVD\n" "IK3CST\n" "IK3DQU\n" "IK3DRO\n" "IK3DVY\n" "IK3GER\n" "IK3GES\n" "IK3GHW\n" "IK3GID\n" "IK3HHX\n" "IK3HMB\n" "IK3HUG\n" "IK3IUE\n" "IK3IUL\n" "IK3JBP\n" "IK3JLV\n" "IK3MLF\n" "IK3OBX\n" "IK3OCD\n" "IK3OII\n" "IK3ORD\n" "IK3OYY\n" "IK3PQG\n" "IK3PQH\n" "IK3QAR\n" "IK3RET\n" "IK3SCA\n" "IK3SCB\n" "IK3SHP\n" "IK3SSJ\n" "IK3SSO\n" "IK3SSW\n" "IK3STG\n" "IK3SWB\n" "IK3TPP\n" "IK3TZB\n" "IK3UMZ\n" "IK3UNA\n" "IK3UNA/1\n" "IK3VBB\n" "IK3VUT\n" "IK3VUU\n" "IK3WOI\n" "IK3XJL\n" "IK3XJP\n" "IK3XTY\n" "IK3YBX\n" "IK4ALM\n" "IK4AUY\n" "IK4BHO\n" "IK4CIE\n" "IK4DCT\n" "IK4DCX\n" "IK4DDI\n" "IK4DRR\n" "IK4DRY\n" "IK4EWN\n" "IK4GBU\n" "IK4GME\n" "IK4GRO\n" "IK4HAQ\n" "IK4HLQ\n" "IK4ICS\n" "IK4JQO\n" "IK4JQS\n" "IK4LAI\n" "IK4MGJ\n" "IK4MGP\n" "IK4MGV\n" "IK4NQW\n" "IK4PKK\n" "IK4PKN\n" "IK4PMB\n" "IK4QJF\n" "IK4RQE\n" "IK4RQJ\n" "IK4RSO\n" "IK4TVP\n" "IK4UNH\n" "IK4UOA\n" "IK4UPB\n" "IK4VET\n" "IK4VFB\n" "IK4WKU\n" "IK4WLU\n" "IK4WMB\n" "IK4WMH\n" "IK4WTU\n" "IK4XCL\n" "IK4XQT\n" "IK4YAZ\n" "IK4ZGO\n" "IK4ZHH\n" "IK5AAB\n" "IK5ACO\n" "IK5AFJ\n" "IK5AMB\n" "IK5AYM\n" "IK5BAF\n" "IK5BCM\n" "IK5BDG\n" "IK5DHL\n" "IK5DVW\n" "IK5EKB\n" "IK5EKL\n" "IK5FCK\n" "IK5FKF\n" "IK5FQX\n" "IK5GFC\n" "IK5GQK\n" "IK5HHA\n" "IK5IFH\n" "IK5IIY\n" "IK5JXR\n" "IK5MEJ\n" "IK5MEN\n" "IK5OJB\n" "IK5PVX\n" "IK5PWB\n" "IK5PWC\n" "IK5PWN\n" "IK5PWQ\n" "IK5PWS\n" "IK5ROP\n" "IK5RUN\n" "IK5SRF\n" "IK5TBI\n" "IK5TTA\n" "IK5UAN\n" "IK5UAN/5\n" "IK5UIM\n" "IK5WGK\n" "IK5XLB\n" "IK5YJK\n" "IK5ZAJ\n" "IK5ZQC\n" "IK5ZTT\n" "IK5ZUB\n" "IK5ZWU\n" "IK6BGJ\n" "IK6CNM\n" "IK6CWQ\n" "IK6DTB\n" "IK6EIW\n" "IK6EUH\n" "IK6FTZ\n" "IK6FWJ\n" "IK6GQC\n" "IK6GRT\n" "IK6GTF\n" "IK6HRB\n" "IK6IHN\n" "IK6IJF\n" "IK6IKJ\n" "IK6JRI\n" "IK6LBV\n" "IK6MNB\n" "IK6MND\n" "IK6OIN\n" "IK6PTH\n" "IK6SIO\n" "IK6SNR\n" "IK6TOS\n" "IK6UBY\n" "IK6VXO\n" "IK6XEJ\n" "IK6YXM\n" "IK6ZDE\n" "IK6ZER\n" "IK7BEF\n" "IK7BPV\n" "IK7CMY\n" "IK7FMQ\n" "IK7FPU\n" "IK7GFS\n" "IK7GIM\n" "IK7JTF\n" "IK7JWY\n" "IK7LMX\n" "IK7NXU\n" "IK7OFI\n" "IK7PTX\n" "IK7RVY\n" "IK7SLT\n" "IK7UFW\n" "IK7UXU\n" "IK7WPC\n" "IK7WPD\n" "IK7XLU\n" "IK7XLW\n" "IK7YTT\n" "IK7YZG\n" "IK8ARF\n" "IK8AWH\n" "IK8BIZ\n" "IK8BQE\n" "IK8EJN\n" "IK8ENH\n" "IK8EPC\n" "IK8GYL\n" "IK8GYQ\n" "IK8HBA\n" "IK8HCG\n" "IK8HJC\n" "IK8HMJ\n" "IK8HTM\n" "IK8IOZ\n" "IK8IPL\n" "IK8JDH\n" "IK8JUY\n" "IK8LJA\n" "IK8LTB\n" "IK8LXI\n" "IK8MIG\n" "IK8MYJ\n" "IK8MYM\n" "IK8NBE\n" "IK8NII\n" "IK8NIJ\n" "IK8NRW\n" "IK8NSR\n" "IK8NUO\n" "IK8OFW\n" "IK8OXQ\n" "IK8OZV\n" "IK8OZZ\n" "IK8PLE\n" "IK8QQO\n" "IK8RIJ\n" "IK8SCR\n" "IK8SEU\n" "IK8TEM\n" "IK8TEO\n" "IK8TVG\n" "IK8UND\n" "IK8VZE\n" "IK8WEJ\n" "IK8XFR\n" "IK8XFU\n" "IK8XIM\n" "IK8YDP\n" "IK8YFU\n" "IK8YJQ\n" "IK8YJQ/P\n" "IK8YOQ\n" "IL3T\n" "IN3ADW\n" "IN3ADW/P\n" "IN3AEF\n" "IN3AFT\n" "IN3BAO\n" "IN3BFW\n" "IN3BHR\n" "IN3BIY\n" "IN3BZY\n" "IN3DOV\n" "IN3EAR\n" "IN3FFN\n" "IN3FHE\n" "IN3HUU\n" "IN3IKF\n" "IN3IZT\n" "IN3JJI\n" "IN3JRZ\n" "IN3KCV\n" "IN3KMY\n" "IN3MNS\n" "IN3MOD\n" "IN3MQT\n" "IN3NJB\n" "IN3OWY/2\n" "IN3OWY/I2\n" "IN3PWE\n" "IN3QBR\n" "IN3QCI\n" "IN3REZ\n" "IN3RYE\n" "IN3SUI\n" "IN3TKF/4\n" "IN3TLJ\n" "IN3UFW\n" "IN3VHA\n" "IN3VVK\n" "IN3VXH\n" "IN3WRR\n" "IN3XUG\n" "IN3XWE\n" "IN3YGW\n" "IN3YKS\n" "IN3ZNR\n" "IN3ZWF\n" "IO1A\n" "IO1T\n" "IO2L\n" "IO3B\n" "IO3J\n" "IO3N\n" "IO3O\n" "IO3P\n" "IO3R\n" "IO3T\n" "IO3X\n" "IO4T\n" "IO5A\n" "IO5O\n" "IO6A\n" "IO8V\n" "IO9K\n" "IP9BGS\n" "IQ0AL\n" "IQ0CI\n" "IQ0EF\n" "IQ0OS\n" "IQ0RM\n" "IQ1EE\n" "IQ1NO\n" "IQ1RY\n" "IQ1SM\n" "IQ1TO\n" "IQ2CJ\n" "IQ2CU\n" "IQ2LS\n" "IQ2MG\n" "IQ2VC\n" "IQ2XX\n" "IQ3CG\n" "IQ3FX\n" "IQ3GA\n" "IQ3GO\n" "IQ3ME\n" "IQ3MO\n" "IQ3PN\n" "IQ3RK\n" "IQ3SD\n" "IQ3TN\n" "IQ3UD\n" "IQ3VE\n" "IQ4AX\n" "IQ4RN\n" "IQ5AE\n" "IQ5DY\n" "IQ5FI\n" "IQ5LU\n" "IQ5MS\n" "IQ5PO\n" "IQ5PT\n" "IQ6TC\n" "IQ7AF\n" "IQ7DV\n" "IQ8EB\n" "IQ8FT\n" "IQ8LR\n" "IQ8MD\n" "IQ8PL\n" "IQ8PQ\n" "IQ8PZ\n" "IQ8RB\n" "IQ8RB/1\n" "IQ9BF\n" "IQ9DE\n" "IQ9GD\n" "IQ9NI\n" "IQ9PA\n" "IR1A\n" "IR1C\n" "IR1G\n" "IR1K\n" "IR1M\n" "IR1R\n" "IR1W\n" "IR1Y\n" "IR2A\n" "IR2C\n" "IR2K\n" "IR2M\n" "IR2Y\n" "IR3C\n" "IR3W\n" "IR3X\n" "IR3Y\n" "IR3Z\n" "IR4E\n" "IR4M\n" "IR4T\n" "IR4X\n" "IR5B\n" "IR5T\n" "IR5X\n" "IR6D\n" "IR6T\n" "IR7A\n" "IR7C\n" "IR8A\n" "IR8P\n" "IR8W\n" "IR9P\n" "IR9W\n" "IR9X\n" "IR9Y\n" "IR9Z\n" "IS0/G1VNV\n" "IS0/IK4ZHH\n" "IS0/IK5EKB\n" "IS0/IT9VDQ\n" "IS0/K7QB\n" "IS0/OK1CZ\n" "IS0/OL0A\n" "IS0A\n" "IS0AFM\n" "IS0ANY\n" "IS0B\n" "IS0C\n" "IS0DFC\n" "IS0EBO\n" "IS0GQX\n" "IS0GRB\n" "IS0HQJ\n" "IS0IEK\n" "IS0IGV\n" "IS0LFZ\n" "IS0LYN\n" "IS0NHT\n" "IS0OMH\n" "IS0RDY\n" "IS0RZG\n" "IS0SQJ\n" "IS0SWW\n" "IS0T\n" "IS0XDA\n" "IS0YEK\n" "IS0YTA\n" "IT9ABY\n" "IT9ACN\n" "IT9AJP\n" "IT9AQV\n" "IT9AST\n" "IT9AUG\n" "IT9AUH\n" "IT9AUT\n" "IT9AXQ\n" "IT9BLB\n" "IT9CCQ\n" "IT9CJC\n" "IT9DFI\n" "IT9ECQ\n" "IT9EJP\n" "IT9EJW\n" "IT9ELD\n" "IT9EQO\n" "IT9ESI\n" "IT9ESW\n" "IT9FGA\n" "IT9FXY\n" "IT9GAC\n" "IT9GSF\n" "IT9HBT\n" "IT9HLR\n" "IT9HUV\n" "IT9IAS\n" "IT9ICS\n" "IT9IFI\n" "IT9IMJ\n" "IT9INO\n" "IT9IYZ\n" "IT9IZY\n" "IT9JAV\n" "IT9JDH\n" "IT9JOF\n" "IT9JQY\n" "IT9KCD\n" "IT9LED\n" "IT9LKX\n" "IT9LNH\n" "IT9MNP\n" "IT9MRZ\n" "IT9MUO\n" "IT9MYY\n" "IT9NTD\n" "IT9OJW\n" "IT9PAD\n" "IT9PCU\n" "IT9PKO\n" "IT9PPG\n" "IT9PQJ\n" "IT9QDS\n" "IT9QQO\n" "IT9QQP\n" "IT9RBW\n" "IT9RGY\n" "IT9RIA\n" "IT9RJQ\n" "IT9RKR\n" "IT9RWB\n" "IT9RYJ\n" "IT9RZU\n" "IT9SFT\n" "IT9SGN\n" "IT9SMU\n" "IT9SSI\n" "IT9STX\n" "IT9TFX\n" "IT9UCS\n" "IT9UFP\n" "IT9VDQ\n" "IT9VPT\n" "IT9WTY\n" "IT9XTP\n" "IT9YAO\n" "IT9YHR\n" "IT9YSW\n" "IT9ZAU\n" "IT9ZGY\n" "IT9ZIR\n" "IT9ZMX\n" "IT9ZRU\n" "IT9ZVJ\n" "IT9ZVL\n" "IT9ZZO\n" "IU0R\n" "IU1A\n" "IU1HQ\n" "IU1U\n" "IU2HQ\n" "IU2P\n" "IU2R\n" "IU4HQ\n" "IU5HQ\n" "IU8HQ\n" "IU9A\n" "IU9HQ\n" "IU9T\n" "IV3AOL\n" "IV3APV\n" "IV3ARJ\n" "IV3AVQ\n" "IV3AZV\n" "IV3BEI\n" "IV3BKH\n" "IV3BYT\n" "IV3CGJ\n" "IV3CTW\n" "IV3DSH\n" "IV3DXW\n" "IV3DYS\n" "IV3EAD\n" "IV3EFE\n" "IV3EHH\n" "IV3EPO\n" "IV3FAS\n" "IV3FIV\n" "IV3FSG\n" "IV3GOW\n" "IV3GTH\n" "IV3HYD\n" "IV3IDP\n" "IV3IFN\n" "IV3IFY\n" "IV3IQY\n" "IV3IUM\n" "IV3IXN\n" "IV3IYH\n" "IV3IZU\n" "IV3JCC\n" "IV3JVJ\n" "IV3JWY\n" "IV3KAS\n" "IV3KFB\n" "IV3KSE\n" "IV3KVC\n" "IV3KYQ\n" "IV3MGN\n" "IV3MRK\n" "IV3NBA\n" "IV3NVB\n" "IV3NVN\n" "IV3NVN/P\n" "IV3ODE\n" "IV3ONZ\n" "IV3PGQ\n" "IV3PRK\n" "IV3RAV\n" "IV3RAZ\n" "IV3RJT\n" "IV3RLB\n" "IV3RVN\n" "IV3SKB\n" "IV3TIQ\n" "IV3TMV\n" "IV3TQE\n" "IV3TRK\n" "IV3TUO\n" "IV3UHL\n" "IV3UT\n" "IV3VBM\n" "IV3VCS\n" "IV3VER\n" "IV3VSN\n" "IV3WJP\n" "IV3WMS\n" "IV3XAZ\n" "IV3XHM\n" "IV3XPP\n" "IV3XUX\n" "IV3XWD\n" "IV3XZG\n" "IV3YER\n" "IV3YIB\n" "IV3YIM\n" "IV3YND\n" "IV3YYK\n" "IV3ZIZ\n" "IV3ZUY\n" "IV3ZXF\n" "IV3ZXQ\n" "IW0AFS\n" "IW0AGX\n" "IW0BCF\n" "IW0BLW\n" "IW0BMC\n" "IW0BNW\n" "IW0BSQ\n" "IW0BYL\n" "IW0BZD\n" "IW0CGT\n" "IW0CJE\n" "IW0DGJ\n" "IW0DUA\n" "IW0EAC\n" "IW0EFA\n" "IW0GBU\n" "IW0GTA\n" "IW0GVG\n" "IW0GXY\n" "IW0GYC\n" "IW0HBY\n" "IW0HEX\n" "IW0HLE\n" "IW0HLZ\n" "IW0HOU\n" "IW0HQE\n" "IW0QO\n" "IW0RVQ\n" "IW0SAF\n" "IW0UII\n" "IW0UWE\n" "IW1ARB\n" "IW1AYD\n" "IW1CKJ\n" "IW1CPZ\n" "IW1CQ\n" "IW1DFU\n" "IW1DMC\n" "IW1ECY\n" "IW1FGY\n" "IW1FGZ\n" "IW1FNW\n" "IW1FPK\n" "IW1FZR\n" "IW1GAL\n" "IW1GB\n" "IW1GJJ\n" "IW1GPT\n" "IW1PDP\n" "IW1PNJ\n" "IW1PPM\n" "IW1PUR\n" "IW1QLH\n" "IW1QN\n" "IW1RAX\n" "IW1RGS\n" "IW1RHR\n" "IW1RIU\n" "IW1RMD\n" "IW2BAC\n" "IW2BAI\n" "IW2BNA\n" "IW2BZY\n" "IW2CAM\n" "IW2CLM\n" "IW2ETR\n" "IW2FIV\n" "IW2FND\n" "IW2FTN\n" "IW2FUT\n" "IW2GRA\n" "IW2HAJ\n" "IW2HUS\n" "IW2JRV\n" "IW2KIR\n" "IW2LHE\n" "IW2LLH\n" "IW2MJQ\n" "IW2MNT\n" "IW2MWZ\n" "IW2MXY\n" "IW2MYH\n" "IW2MYV\n" "IW2MZX\n" "IW2NBW\n" "IW2NEF\n" "IW2NRI\n" "IW2NRT\n" "IW2NUI\n" "IW2NWV\n" "IW3AAD\n" "IW3AJN\n" "IW3AJN/P\n" "IW3BTR\n" "IW3EKH\n" "IW3EOL\n" "IW3FZQ\n" "IW3GGU\n" "IW3GRG\n" "IW3GXW\n" "IW3HXR\n" "IW3IA\n" "IW3ICN\n" "IW3IFJ\n" "IW3IIP\n" "IW3ILM\n" "IW3IMM\n" "IW3QAF\n" "IW3RUA\n" "IW3SKX\n" "IW3SMU\n" "IW3SNW\n" "IW3SOM\n" "IW3SQY\n" "IW3SRC\n" "IW3SRG\n" "IW3SSA\n" "IW4BLZ\n" "IW4BTN\n" "IW4DQY\n" "IW4ECX\n" "IW4EGX\n" "IW4ENR\n" "IW4EQI\n" "IW5AB\n" "IW5ADB\n" "IW5ALG\n" "IW5BEN\n" "IW5BHU\n" "IW5CBK\n" "IW5CI\n" "IW5CWA\n" "IW5DLY\n" "IW5DPF\n" "IW5ECP\n" "IW5EDI\n" "IW5EFX\n" "IW5EHY\n" "IW5EID\n" "IW5EIJ\n" "IW5ELA\n" "IW5ELL\n" "IW6AFT\n" "IW6APY\n" "IW6ASD\n" "IW6ATQ\n" "IW6CJM\n" "IW6DGJ\n" "IW6DRH\n" "IW6NZY\n" "IW6PWC\n" "IW7BIM\n" "IW7EBE\n" "IW7ECJ\n" "IW7EDB\n" "IW7EEV\n" "IW7EFC\n" "IW7EFJ\n" "IW8AWR\n" "IW8BAK\n" "IW8DCS\n" "IW8DON\n" "IW8EHK\n" "IW8ELR\n" "IW8EPH\n" "IW8FEA\n" "IW8PQ\n" "IW8QIE\n" "IW8RQA\n" "IW8RRF\n" "IW9ANR\n" "IW9BCW\n" "IW9CTR\n" "IW9DNI\n" "IW9FDD\n" "IW9FI\n" "IW9FRA\n" "IW9FRB\n" "IW9GUR\n" "IW9GYL\n" "IW9HEB\n" "IW9HHB\n" "IW9HII\n" "IW9HIK\n" "IX1ALR\n" "IX1BFL\n" "IX1CVF\n" "IY0GM\n" "IY1GM\n" "IY1GMN\n" "IY1NGM\n" "IY2M\n" "IY3GM\n" "IY3XX\n" "IY4FGM\n" "IY8GM\n" "IZ0ADG\n" "IZ0AEZ\n" "IZ0ARL\n" "IZ0BEE\n" "IZ0BNR\n" "IZ0BNV\n" "IZ0BVU\n" "IZ0CEZ\n" "IZ0CGV\n" "IZ0CIV\n" "IZ0CLS\n" "IZ0COI\n" "IZ0DIB\n" "IZ0DKZ\n" "IZ0DXD\n" "IZ0DXI\n" "IZ0EHL\n" "IZ0ESL\n" "IZ0EVK\n" "IZ0EYP\n" "IZ0EYP/8\n" "IZ0FBJ\n" "IZ0FKE\n" "IZ0FUW\n" "IZ0FVD\n" "IZ0FVH\n" "IZ0FVL\n" "IZ0FWD\n" "IZ0FWE\n" "IZ0FZM\n" "IZ0GIY\n" "IZ0GKB\n" "IZ0GMS\n" "IZ0GRR\n" "IZ0GUS\n" "IZ0GVR\n" "IZ0GXM\n" "IZ0GYP\n" "IZ0HAP\n" "IZ0HPX\n" "IZ0HQS\n" "IZ0IIY\n" "IZ0INX\n" "IZ0IWU\n" "IZ0KBA\n" "IZ0KBR\n" "IZ0KBW\n" "IZ0MII\n" "IZ0MJE\n" "IZ0MJG\n" "IZ0MQN\n" "IZ0MTF\n" "IZ0MTV\n" "IZ0NRG\n" "IZ0OTB\n" "IZ0OVZ\n" "IZ0OWC\n" "IZ0PAD\n" "IZ0PED\n" "IZ0PMV\n" "IZ0PSA\n" "IZ0PSC\n" "IZ0PTY\n" "IZ0PXT\n" "IZ0RCP\n" "IZ0RMV\n" "IZ0RPZ\n" "IZ0RTP\n" "IZ1ANK\n" "IZ1ANU\n" "IZ1ANZ\n" "IZ1AOC\n" "IZ1AOD\n" "IZ1AZA\n" "IZ1BCS\n" "IZ1BII\n" "IZ1BTS\n" "IZ1BZS\n" "IZ1BZV\n" "IZ1CCE\n" "IZ1CCF\n" "IZ1CLA\n" "IZ1CQZ\n" "IZ1DBY\n" "IZ1DFG\n" "IZ1DGG\n" "IZ1DLY\n" "IZ1DMI\n" "IZ1DNJ\n" "IZ1DNQ\n" "IZ1DUG\n" "IZ1DUI\n" "IZ1DXS\n" "IZ1ERW\n" "IZ1FBC\n" "IZ1FHF\n" "IZ1FUM\n" "IZ1FYQ\n" "IZ1GAR\n" "IZ1GCM\n" "IZ1GCQ\n" "IZ1GCV\n" "IZ1GIP\n" "IZ1GJK\n" "IZ1GLO\n" "IZ1GLT\n" "IZ1GLX\n" "IZ1GQJ\n" "IZ1GWW\n" "IZ1GZF\n" "IZ1HBC\n" "IZ1HIV\n" "IZ1JKH\n" "IZ1JKY\n" "IZ1JLF\n" "IZ1JLG\n" "IZ1JLN\n" "IZ1JLP\n" "IZ1JMN\n" "IZ1JTH\n" "IZ1KGY\n" "IZ1KIM\n" "IZ1LBB\n" "IZ1LBG\n" "IZ1LGV\n" "IZ1MDJ\n" "IZ1MHL\n" "IZ1MHQ\n" "IZ1MHX\n" "IZ1MHY\n" "IZ1MKB\n" "IZ1MKP\n" "IZ1MKQ\n" "IZ1MKZ\n" "IZ1MLQ\n" "IZ1MRO\n" "IZ1NBX\n" "IZ1OMY\n" "IZ1OQB\n" "IZ1OSP\n" "IZ1PHT\n" "IZ1PKV\n" "IZ1POA\n" "IZ2ABI\n" "IZ2ABN\n" "IZ2ACD\n" "IZ2ACM\n" "IZ2AJE\n" "IZ2AMW\n" "IZ2AVK\n" "IZ2BKA\n" "IZ2BQF\n" "IZ2BVL\n" "IZ2BZP\n" "IZ2CEE\n" "IZ2CHN\n" "IZ2CPO\n" "IZ2CSX\n" "IZ2DII\n" "IZ2DMV\n" "IZ2DPX\n" "IZ2DVI\n" "IZ2EAS\n" "IZ2EER\n" "IZ2EEV\n" "IZ2EID\n" "IZ2EVH\n" "IZ2EWM\n" "IZ2EWR\n" "IZ2FDY\n" "IZ2FFK\n" "IZ2FLX\n" "IZ2FME\n" "IZ2FOB\n" "IZ2FOS\n" "IZ2GIU\n" "IZ2GMT\n" "IZ2GNQ\n" "IZ2GOT\n" "IZ2GRG\n" "IZ2GTO\n" "IZ2IHO\n" "IZ2IPF\n" "IZ2JCD\n" "IZ2JNN\n" "IZ2JPN\n" "IZ2JQP\n" "IZ2KPE\n" "IZ2KPI\n" "IZ2KRZ\n" "IZ2KTE\n" "IZ2KTF\n" "IZ2KXC\n" "IZ2LQD\n" "IZ2LSC\n" "IZ2NBD\n" "IZ2NYY\n" "IZ2NZQ\n" "IZ2NZZ\n" "IZ2OBS\n" "IZ2OBY\n" "IZ2ODM\n" "IZ2OHL\n" "IZ2OIF\n" "IZ2PCJ\n" "IZ2QBH\n" "IZ2QDC\n" "IZ2QKG\n" "IZ2RPJ\n" "IZ3ALF\n" "IZ3ASB\n" "IZ3AWU\n" "IZ3BGL\n" "IZ3BJA\n" "IZ3BUG\n" "IZ3CAN\n" "IZ3CAR\n" "IZ3CKG\n" "IZ3DBA\n" "IZ3DVU\n" "IZ3EAV\n" "IZ3EAX\n" "IZ3EAY\n" "IZ3EBA\n" "IZ3ENH\n" "IZ3EOU\n" "IZ3ERM\n" "IZ3ESV\n" "IZ3ETC\n" "IZ3ETU\n" "IZ3FJZ\n" "IZ3GFZ\n" "IZ3GHP\n" "IZ3GNG\n" "IZ3GOG\n" "IZ3GOM\n" "IZ3GOO\n" "IZ3GYS\n" "IZ3HKN\n" "IZ3IBL\n" "IZ3KIF\n" "IZ3KKE\n" "IZ3KMY\n" "IZ3KNK\n" "IZ3KSO\n" "IZ3KSP\n" "IZ3KUY\n" "IZ3KVD\n" "IZ3LCF\n" "IZ3LES\n" "IZ3LHX\n" "IZ3LJG\n" "IZ3LQN\n" "IZ3LSZ\n" "IZ3LUF\n" "IZ3MSK\n" "IZ3NPZ\n" "IZ3NVR\n" "IZ3NXC\n" "IZ3NYG\n" "IZ3NYS\n" "IZ3ODB\n" "IZ3PYL\n" "IZ3PZL/3\n" "IZ3PZM\n" "IZ3QHA\n" "IZ3QHB\n" "IZ4AFW\n" "IZ4AIF\n" "IZ4AII\n" "IZ4AMS\n" "IZ4BBF\n" "IZ4BQV\n" "IZ4COW\n" "IZ4CZE\n" "IZ4CZL\n" "IZ4DIG\n" "IZ4DIW\n" "IZ4DJD\n" "IZ4DLR\n" "IZ4DPV\n" "IZ4DUX\n" "IZ4DYX\n" "IZ4DZD\n" "IZ4EFN\n" "IZ4EFP\n" "IZ4FUA\n" "IZ4GAH\n" "IZ4GOL\n" "IZ4GSE\n" "IZ4GWE\n" "IZ4HVM\n" "IZ4HVM/3\n" "IZ4HZA\n" "IZ4IFR\n" "IZ4IRO\n" "IZ4ISC\n" "IZ4IST\n" "IZ4JMA\n" "IZ4MJP\n" "IZ4NIC\n" "IZ4NSV\n" "IZ4ORN\n" "IZ4ORO\n" "IZ4OSG\n" "IZ4OSH\n" "IZ4OUA\n" "IZ4OUL\n" "IZ5ASZ\n" "IZ5AXA\n" "IZ5BLP\n" "IZ5BRP\n" "IZ5BRW\n" "IZ5BSA\n" "IZ5CMG\n" "IZ5CMI\n" "IZ5CML\n" "IZ5DIY\n" "IZ5DKG\n" "IZ5DKJ\n" "IZ5DKO\n" "IZ5DKR\n" "IZ5DMB\n" "IZ5EBL\n" "IZ5EKV\n" "IZ5EKX\n" "IZ5EME\n" "IZ5FSA\n" "IZ5FSO\n" "IZ5GRS\n" "IZ5HPQ\n" "IZ5HQB\n" "IZ5HSK\n" "IZ5ICH\n" "IZ5IIN\n" "IZ5IJY\n" "IZ5ILC\n" "IZ5ILD\n" "IZ5ILF\n" "IZ5ILJ\n" "IZ5ILK\n" "IZ5ILU\n" "IZ5IMD\n" "IZ5IOM\n" "IZ5IOM/5\n" "IZ5IOS\n" "IZ5IOW\n" "IZ5IPA\n" "IZ5JHJ\n" "IZ5JMZ\n" "IZ5JNO\n" "IZ5LDD\n" "IZ5MAO\n" "IZ5MJZ\n" "IZ5MKA\n" "IZ5MMB\n" "IZ5MMK\n" "IZ5MMN\n" "IZ5MMR\n" "IZ5MOQ\n" "IZ5MXA\n" "IZ5NFC\n" "IZ5NRF\n" "IZ5OOP\n" "IZ5OPV\n" "IZ5OPX\n" "IZ5OQA\n" "IZ5OQX\n" "IZ5PQT\n" "IZ5RKC\n" "IZ6AAW\n" "IZ6BTN\n" "IZ6BXV\n" "IZ6CLN\n" "IZ6CLZ\n" "IZ6EIY\n" "IZ6ERS\n" "IZ6FHZ\n" "IZ6FXP\n" "IZ6GIG\n" "IZ6GSB\n" "IZ6GSQ\n" "IZ6HRT\n" "IZ6IMN\n" "IZ6INR\n" "IZ6IOC\n" "IZ6KBL\n" "IZ6LOF\n" "IZ6MPY\n" "IZ6MQH\n" "IZ6NCN\n" "IZ7CDE\n" "IZ7CRW\n" "IZ7DOK\n" "IZ7DOO\n" "IZ7ECL\n" "IZ7EDQ\n" "IZ7EQX\n" "IZ7EUB\n" "IZ7EVZ\n" "IZ7FLT\n" "IZ7FMM\n" "IZ7GAT\n" "IZ7GLL\n" "IZ7GWZ\n" "IZ7HNO\n" "IZ7IJW\n" "IZ7JVR\n" "IZ7KHR\n" "IZ7LDC\n" "IZ7LDL\n" "IZ7MFY\n" "IZ7MYV\n" "IZ7MZU\n" "IZ7NMD\n" "IZ7OJY\n" "IZ7QLY\n" "IZ8BFV\n" "IZ8BGY\n" "IZ8CCW\n" "IZ8CKT\n" "IZ8CLM\n" "IZ8DBJ\n" "IZ8DDL\n" "IZ8DGR\n" "IZ8DPL\n" "IZ8DSX\n" "IZ8DVD\n" "IZ8DWL\n" "IZ8EDL\n" "IZ8EEL\n" "IZ8EFD\n" "IZ8EKL\n" "IZ8EMB\n" "IZ8EMK\n" "IZ8EPX\n" "IZ8ESX\n" "IZ8EWD\n" "IZ8FAV\n" "IZ8FBU\n" "IZ8FDG\n" "IZ8FDH\n" "IZ8FFA\n" "IZ8FQO\n" "IZ8FTW\n" "IZ8FWN\n" "IZ8GBH\n" "IZ8GBT\n" "IZ8GCB\n" "IZ8GCE\n" "IZ8GNR\n" "IZ8GNW\n" "IZ8HUJ\n" "IZ8HXG\n" "IZ8IFL\n" "IZ8ITT\n" "IZ8IYN\n" "IZ8IYX\n" "IZ8JAI\n" "IZ8JDF\n" "IZ8JFL\n" "IZ8JPV\n" "IZ8LGP\n" "IZ8LIP\n" "IZ8LKL\n" "IZ8LLH\n" "IZ8LLQ\n" "IZ8LMA\n" "IZ8MBW\n" "IZ8MCG\n" "IZ8MNL\n" "IZ8MNQ\n" "IZ8MXB\n" "IZ8NGH\n" "IZ8NVV\n" "IZ8OFO\n" "IZ8OGR\n" "IZ8PPH\n" "IZ8PPI\n" "IZ8QIG\n" "J28AA\n" "J28JA\n" "J28OO\n" "J37K\n" "J37T\n" "J38A\n" "J38CW\n" "J38RF\n" "J38XJ\n" "J38XX\n" "J39BS\n" "J41E\n" "J42T\n" "J42WT\n" "J43J\n" "J43P\n" "J45KLN\n" "J46J\n" "J48HW\n" "J48RT\n" "J49I\n" "J49XB\n" "J5UAP\n" "J68JA\n" "J68V\n" "J69DS\n" "J69MV\n" "J79WE\n" "J79ZG\n" "J7N\n" "J7Y\n" "J88DR\n" "JA0AOQ\n" "JA0ARF\n" "JA0ASO\n" "JA0AVS\n" "JA0AXV\n" "JA0BEE\n" "JA0BES\n" "JA0BJY\n" "JA0BKX\n" "JA0BOV\n" "JA0CIY\n" "JA0CRI\n" "JA0CVC\n" "JA0DAI\n" "JA0DBQ\n" "JA0DBS\n" "JA0DNE\n" "JA0DOW\n" "JA0DSH\n" "JA0ED\n" "JA0EME\n" "JA0EQO\n" "JA0EVI\n" "JA0FMB\n" "JA0FMU\n" "JA0FNU\n" "JA0FSB\n" "JA0FSN\n" "JA0FVU\n" "JA0GCI\n" "JA0GEY\n" "JA0GJJ\n" "JA0GSG\n" "JA0GZZ\n" "JA0HWF\n" "JA0IND/1\n" "JA0IOF\n" "JA0JHA\n" "JA0KAZ\n" "JA0KJD\n" "JA0LCP\n" "JA0LHU\n" "JA0LXP\n" "JA0MVW\n" "JA0NFP\n" "JA0NPQ\n" "JA0PE\n" "JA0PTK\n" "JA0QNJ\n" "JA0RCK\n" "JA0RUG\n" "JA0SDW\n" "JA0UFZ\n" "JA0UJL\n" "JA0UMV\n" "JA0UPW\n" "JA0UR\n" "JA0URR\n" "JA0VHI\n" "JA1AA\n" "JA1AAA\n" "JA1AAT\n" "JA1ACF\n" "JA1ADN\n" "JA1ADT\n" "JA1ADU\n" "JA1AEC\n" "JA1AFF\n" "JA1AFI\n" "JA1AJK\n" "JA1AKL\n" "JA1AKR\n" "JA1ALT\n" "JA1ALU\n" "JA1AML\n" "JA1ANF\n" "JA1ANG\n" "JA1ANR\n" "JA1ANT\n" "JA1AOH\n" "JA1APX\n" "JA1ARO\n" "JA1ATB\n" "JA1ATZ\n" "JA1AUD\n" "JA1AYO\n" "JA1AZR\n" "JA1AZW\n" "JA1BAN\n" "JA1BAQ\n" "JA1BAS\n" "JA1BFN\n" "JA1BHK\n" "JA1BJI\n" "JA1BK\n" "JA1BMA\n" "JA1BNL\n" "JA1BNW\n" "JA1BON\n" "JA1BOQ\n" "JA1BPA\n" "JA1BPN\n" "JA1BTR\n" "JA1BUQ\n" "JA1BWA\n" "JA1BWD\n" "JA1BWT\n" "JA1CAQ\n" "JA1CC\n" "JA1CCA\n" "JA1CCO\n" "JA1CG\n" "JA1CIA\n" "JA1CJI\n" "JA1CJP\n" "JA1CKA\n" "JA1CKE\n" "JA1CLW\n" "JA1CLZ\n" "JA1CON\n" "JA1COP\n" "JA1CP\n" "JA1CPA\n" "JA1CPN\n" "JA1CPZ\n" "JA1CQK\n" "JA1CQT\n" "JA1CTB\n" "JA1CTZ\n" "JA1CXC\n" "JA1DBG\n" "JA1DCK\n" "JA1DDZ\n" "JA1DEQ\n" "JA1DEU\n" "JA1DIO\n" "JA1DKT\n" "JA1DMX\n" "JA1DOF\n" "JA1DOT\n" "JA1DSI\n" "JA1DUA\n" "JA1DUH\n" "JA1DUP\n" "JA1DVN\n" "JA1DXE\n" "JA1DXF\n" "JA1EFY\n" "JA1EHV\n" "JA1EJY\n" "JA1ELY\n" "JA1EM\n" "JA1EMQ\n" "JA1EOD\n" "JA1EOG\n" "JA1ERB\n" "JA1ESH\n" "JA1ETN\n" "JA1EWE\n" "JA1FFO\n" "JA1FGB\n" "JA1FIO/1\n" "JA1FKY\n" "JA1FNA\n" "JA1FNO\n" "JA1FO\n" "JA1FRQ\n" "JA1FTW\n" "JA1FUI\n" "JA1FVJ\n" "JA1FVK\n" "JA1FVS\n" "JA1FWJ\n" "JA1FWY\n" "JA1GBC\n" "JA1GC\n" "JA1GCA\n" "JA1GDF\n" "JA1GFD\n" "JA1GHH\n" "JA1GHR\n" "JA1GHV\n" "JA1GLE\n" "JA1GRM\n" "JA1GSG\n" "JA1GTR\n" "JA1GVT\n" "JA1GYO\n" "JA1HFY\n" "JA1HG\n" "JA1HGX\n" "JA1HGY\n" "JA1HHL\n" "JA1HLF\n" "JA1HLR\n" "JA1HMK\n" "JA1HNW\n" "JA1HO\n" "JA1HP\n" "JA1HRQ\n" "JA1HTD\n" "JA1HTK\n" "JA1HXJ\n" "JA1HYF\n" "JA1IAW\n" "JA1IDY\n" "JA1IE\n" "JA1IFB\n" "JA1IFD\n" "JA1IFP\n" "JA1IKA\n" "JA1IOA\n" "JA1IRH\n" "JA1ISA\n" "JA1IST\n" "JA1ITX\n" "JA1IUG\n" "JA1IVV\n" "JA1IVY\n" "JA1IWP\n" "JA1IXY\n" "JA1IZ\n" "JA1IZB\n" "JA1IZZ\n" "JA1JCF/1\n" "JA1JDP\n" "JA1JKG\n" "JA1JLP\n" "JA1JNM\n" "JA1JQM\n" "JA1JQY\n" "JA1JXD\n" "JA1JXT\n" "JA1JXU\n" "JA1JYS\n" "JA1KEB\n" "JA1KEV\n" "JA1KGV\n" "JA1KI\n" "JA1KIH\n" "JA1KJW\n" "JA1KK\n" "JA1KLK\n" "JA1KLW\n" "JA1KPF\n" "JA1KPH\n" "JA1KTB\n" "JA1KVT\n" "JA1KW\n" "JA1KWB\n" "JA1KXT\n" "JA1KZK\n" "JA1KZP\n" "JA1LBN\n" "JA1LBZ\n" "JA1LHH\n" "JA1LLN/8\n" "JA1LLY\n" "JA1LNZ\n" "JA1LPH\n" "JA1LPQ\n" "JA1LQL\n" "JA1LQV\n" "JA1LSP\n" "JA1LZB\n" "JA1LZR\n" "JA1MBJ\n" "JA1MCU\n" "JA1MJC\n" "JA1MJN\n" "JA1MLV\n" "JA1MOD\n" "JA1MOW\n" "JA1MRM\n" "JA1MSS\n" "JA1MUZ\n" "JA1MVK\n" "JA1MVR\n" "JA1MZL\n" "JA1MZM\n" "JA1NAA\n" "JA1NGD\n" "JA1NGW\n" "JA1NIJ\n" "JA1NIR\n" "JA1NLC\n" "JA1NLX\n" "JA1NPD\n" "JA1NRF\n" "JA1NRQ\n" "JA1NUT\n" "JA1NUX\n" "JA1NVF\n" "JA1NWD\n" "JA1NXG\n" "JA1NXV\n" "JA1NZJ\n" "JA1NZK\n" "JA1OAF\n" "JA1OBJ\n" "JA1OCA\n" "JA1OCZ\n" "JA1ODE\n" "JA1ODP\n" "JA1OHD\n" "JA1OHP\n" "JA1OJJ\n" "JA1OND\n" "JA1OQ\n" "JA1OQQ\n" "JA1ORM\n" "JA1OSN/7\n" "JA1OVD\n" "JA1OWP\n" "JA1OYD\n" "JA1OYY\n" "JA1OZK\n" "JA1PAH\n" "JA1PIN\n" "JA1PJS\n" "JA1PMN\n" "JA1PNA\n" "JA1POS\n" "JA1PRV\n" "JA1PS\n" "JA1PTJ\n" "JA1PTO\n" "JA1PVX\n" "JA1QCQ\n" "JA1QEU\n" "JA1QGT\n" "JA1QIW\n" "JA1QJE\n" "JA1QN\n" "JA1QNO\n" "JA1QOP\n" "JA1QS\n" "JA1QWT\n" "JA1QXC\n" "JA1QXY\n" "JA1RAC\n" "JA1RPK\n" "JA1RQT\n" "JA1RRA\n" "JA1RRR\n" "JA1RTX\n" "JA1RYC\n" "JA1SEV\n" "JA1SGU\n" "JA1SGX\n" "JA1SHC\n" "JA1SHE\n" "JA1SIM\n" "JA1SIN\n" "JA1SJT\n" "JA1SJV\n" "JA1SKE\n" "JA1SST\n" "JA1STY\n" "JA1SVP\n" "JA1SYY\n" "JA1SZN\n" "JA1TBX\n" "JA1TFJ\n" "JA1TGO\n" "JA1TLE\n" "JA1TMG\n" "JA1TQE\n" "JA1TQP\n" "JA1TRC\n" "JA1TRL\n" "JA1UAT\n" "JA1UCC\n" "JA1UII\n" "JA1UOC\n" "JA1UPO\n" "JA1UPT\n" "JA1UQA\n" "JA1USO\n" "JA1UTN\n" "JA1UTQ\n" "JA1UTZ\n" "JA1UVO\n" "JA1UZG\n" "JA1UZQ\n" "JA1VCW\n" "JA1VDI\n" "JA1VGV\n" "JA1VJQ\n" "JA1VLK\n" "JA1VND\n" "JA1VNS\n" "JA1VPE\n" "JA1VRU\n" "JA1VRY\n" "JA1VUI\n" "JA1WDF\n" "JA1WHG\n" "JA1WLO\n" "JA1WPX\n" "JA1WQD\n" "JA1WQX\n" "JA1WRI\n" "JA1WSK\n" "JA1WSX\n" "JA1WTI\n" "JA1WUM\n" "JA1WWB\n" "JA1WWE\n" "JA1WWO\n" "JA1WZG\n" "JA1XGI\n" "JA1XIA\n" "JA1XJA\n" "JA1XMS\n" "JA1XMT\n" "JA1XPH\n" "JA1XPU\n" "JA1XRA\n" "JA1XRH\n" "JA1XTN\n" "JA1XTQ\n" "JA1XUY\n" "JA1XXI\n" "JA1XZF\n" "JA1YAI\n" "JA1YPA\n" "JA1YSW\n" "JA1YUC\n" "JA1ZGO\n" "JA1ZGP\n" "JA2ACI\n" "JA2ADH\n" "JA2AEV\n" "JA2AH\n" "JA2AHH\n" "JA2AIB\n" "JA2ANR\n" "JA2AO\n" "JA2ATE\n" "JA2AXB\n" "JA2AYH\n" "JA2BAY\n" "JA2BCE\n" "JA2BDR\n" "JA2BGN\n" "JA2BHQ\n" "JA2BIV\n" "JA2BJW\n" "JA2BL\n" "JA2BMW\n" "JA2BNN\n" "JA2BQX\n" "JA2BVL\n" "JA2BXP\n" "JA2BY\n" "JA2CBZ\n" "JA2CJN\n" "JA2CPD\n" "JA2CUS\n" "JA2CXF\n" "JA2CXH\n" "JA2CYL\n" "JA2DCN\n" "JA2DDA\n" "JA2DGQ\n" "JA2DGQ/3\n" "JA2DHF\n" "JA2DLM\n" "JA2DNA\n" "JA2DO\n" "JA2DPQ\n" "JA2DSY\n" "JA2DXD\n" "JA2DZQ\n" "JA2EDG\n" "JA2ELH\n" "JA2EPW\n" "JA2FBC\n" "JA2FEA\n" "JA2FGE\n" "JA2FJP\n" "JA2FSM\n" "JA2FTR/3\n" "JA2FUA\n" "JA2FUJ\n" "JA2FVA\n" "JA2FWS\n" "JA2GAL\n" "JA2GDF\n" "JA2GDH\n" "JA2GHP\n" "JA2GTW\n" "JA2GWL\n" "JA2HCE\n" "JA2HDG\n" "JA2HGF\n" "JA2HMF\n" "JA2HO\n" "JA2HOL\n" "JA2HXV\n" "JA2IDJ\n" "JA2ITK\n" "JA2IU\n" "JA2IVK\n" "JA2IXS\n" "JA2JDY\n" "JA2JOJ\n" "JA2JTN\n" "JA2JW\n" "JA2KCY\n" "JA2KGH\n" "JA2KIY\n" "JA2KKA\n" "JA2KLE\n" "JA2KOG\n" "JA2KPV\n" "JA2KPW\n" "JA2KSI\n" "JA2KTK\n" "JA2KVB\n" "JA2KVD\n" "JA2LCP\n" "JA2LHG\n" "JA2LPY\n" "JA2LWO\n" "JA2MEI/2\n" "JA2MNB\n" "JA2MOG\n" "JA2MWV\n" "JA2MYA\n" "JA2NOV\n" "JA2NVM\n" "JA2ODB\n" "JA2OGB\n" "JA2OZI\n" "JA2OZJ\n" "JA2PAC\n" "JA2PFO\n" "JA2PJC\n" "JA2PJX\n" "JA2PSV\n" "JA2PVE\n" ; const char txt_master2[65528] = "JA2QOF\n" "JA2QQC\n" "JA2QVP\n" "JA2QXY\n" "JA2RGH\n" "JA2RJE\n" "JA2RPZ\n" "JA2SGH\n" "JA2TBS\n" "JA2TFU\n" "JA2TTH\n" "JA2UHR\n" "JA2UJ\n" "JA2UZE\n" "JA2VHG\n" "JA2VHO\n" "JA2VKU\n" "JA2VPO\n" "JA2VSU\n" "JA2VUP\n" "JA2VZL\n" "JA2WP\n" "JA2XCR\n" "JA2XQO\n" "JA2XYO\n" "JA2ZJW\n" "JA2ZS\n" "JA3AA\n" "JA3AAD\n" "JA3AK\n" "JA3ALY\n" "JA3AMI\n" "JA3AOP\n" "JA3APU\n" "JA3APV\n" "JA3AQM\n" "JA3AVO\n" "JA3AYL\n" "JA3AYX\n" "JA3AZD\n" "JA3BAZ\n" "JA3BBG\n" "JA3BCC\n" "JA3BCT\n" "JA3BDP\n" "JA3BHO\n" "JA3BIN\n" "JA3BJZ\n" "JA3BKP\n" "JA3BLN\n" "JA3BRI\n" "JA3BUM\n" "JA3BVJ\n" "JA3BXZ\n" "JA3CCX\n" "JA3CG\n" "JA3CSZ\n" "JA3CZV\n" "JA3CZY\n" "JA3DAY\n" "JA3DLE/1\n" "JA3DPX\n" "JA3DSY\n" "JA3DX\n" "JA3DXD\n" "JA3DXR/1\n" "JA3EA\n" "JA3EEM\n" "JA3EGE\n" "JA3EGZ\n" "JA3EMU\n" "JA3EOE\n" "JA3ETD\n" "JA3EUB\n" "JA3EUF\n" "JA3EY\n" "JA3EZJ\n" "JA3FGJ\n" "JA3FSV\n" "JA3FYC\n" "JA3GMJ\n" "JA3GN\n" "JA3GSM\n" "JA3GW\n" "JA3HBC\n" "JA3HBF\n" "JA3HBP\n" "JA3HDM\n" "JA3HIL\n" "JA3HRV\n" "JA3HU\n" "JA3HZT\n" "JA3IDQ\n" "JA3IGZ\n" "JA3IKG\n" "JA3JFT\n" "JA3JM\n" "JA3JND\n" "JA3JOT\n" "JA3KDJ\n" "JA3KGC\n" "JA3KKE\n" "JA3KLI\n" "JA3KNB\n" "JA3KRK\n" "JA3KZD\n" "JA3LCR\n" "JA3LEB\n" "JA3LEZ\n" "JA3LKE\n" "JA3LKU\n" "JA3LXH\n" "JA3LZC\n" "JA3MFE\n" "JA3MIB\n" "JA3MQY\n" "JA3MZB\n" "JA3NFA\n" "JA3NHL\n" "JA3NHW\n" "JA3NTE\n" "JA3OEA\n" "JA3OHY\n" "JA3OOK\n" "JA3OSA\n" "JA3PCQ\n" "JA3PJL\n" "JA3PNN\n" "JA3PST\n" "JA3PYC\n" "JA3PYH\n" "JA3QOS\n" "JA3RAR\n" "JA3RAZ\n" "JA3RK\n" "JA3RN\n" "JA3RQ\n" "JA3RWJ\n" "JA3TMM\n" "JA3TPK\n" "JA3TVM\n" "JA3UMQ\n" "JA3USA\n" "JA3UWB\n" "JA3VPA\n" "JA3VUI\n" "JA3VXH\n" "JA3WKK\n" "JA3WLN\n" "JA3WNB\n" "JA3WPN\n" "JA3WU\n" "JA3XOG\n" "JA3YAA\n" "JA3YBK\n" "JA3YKC\n" "JA3YPD\n" "JA3YPL\n" "JA4AFT\n" "JA4AJB\n" "JA4AQR\n" "JA4AVO\n" "JA4AXM\n" "JA4AYU\n" "JA4BDY\n" "JA4BPW\n" "JA4BSZ\n" "JA4BVH\n" "JA4BXU\n" "JA4CBX\n" "JA4CMW\n" "JA4COF\n" "JA4CQS\n" "JA4CUU\n" "JA4CZM\n" "JA4DC\n" "JA4DHN\n" "JA4DMB\n" "JA4DND\n" "JA4DQX\n" "JA4DWR\n" "JA4DZ\n" "JA4EBU\n" "JA4EE\n" "JA4ENN/1\n" "JA4ENP\n" "JA4EZA\n" "JA4EZP\n" "JA4FHE\n" "JA4FIQ\n" "JA4FJL\n" "JA4FKX\n" "JA4FM\n" "JA4FWI\n" "JA4GCF\n" "JA4GGR\n" "JA4GXS\n" "JA4GXX\n" "JA4HXZ\n" "JA4IQK\n" "JA4IU\n" "JA4JBZ\n" "JA4JIF\n" "JA4JY/3\n" "JA4KRR\n" "JA4LAZ\n" "JA4LKB\n" "JA4LXY\n" "JA4MOK\n" "JA4MRL\n" "JA4NQD\n" "JA4PXE\n" "JA4RMX\n" "JA4RWN\n" "JA4TY\n" "JA4UDN\n" "JA4XHF/3\n" "JA4XRN\n" "JA4XW\n" "JA4XY\n" "JA4YHX\n" "JA5ADR\n" "JA5AOA\n" "JA5APU\n" "JA5AQC\n" "JA5ATN\n" "JA5AUC\n" "JA5BEI\n" "JA5BEN\n" "JA5BGA\n" "JA5BIN\n" "JA5BQT\n" "JA5BVO\n" "JA5BZL\n" "JA5CBO\n" "JA5CEX\n" "JA5CJZ\n" "JA5CPJ\n" "JA5CTW\n" "JA5CUX\n" "JA5DBE\n" "JA5DFX\n" "JA5DQH\n" "JA5DVK\n" "JA5ERZ\n" "JA5EWH\n" "JA5EXW\n" "JA5EYW\n" "JA5FBZ\n" "JA5FDJ\n" "JA5FNX\n" "JA5FTL\n" "JA5GE\n" "JA5GSG\n" "JA5INF/1\n" "JA5IU\n" "JA5IVG\n" "JA5JGY\n" "JA5JWQ\n" "JA5MXP\n" "JA5ND\n" "JA5NLN\n" "JA5NNS\n" "JA5NPV\n" "JA5NSN\n" "JA5OP\n" "JA5PEU\n" "JA5RB\n" "JA5RVN\n" "JA5SRJ\n" "JA5SUD\n" "JA5TNF\n" "JA5UBW/3\n" "JA5WIO\n" "JA5WNH\n" "JA5XPD\n" "JA5XPN\n" "JA6ACZ\n" "JA6AP\n" "JA6ARM\n" "JA6AUM\n" "JA6AVT\n" "JA6BCV\n" "JA6BDB\n" "JA6BEE\n" "JA6BGA\n" "JA6BJT\n" "JA6BJV\n" "JA6BLX\n" "JA6BWH\n" "JA6BZA\n" "JA6BZI\n" "JA6CBG\n" "JA6CDA\n" "JA6CDC\n" "JA6CFW\n" "JA6CLO\n" "JA6CM\n" "JA6CMI\n" "JA6CNH\n" "JA6CNL\n" "JA6COW\n" "JA6CRP\n" "JA6CUX\n" "JA6CYL/6\n" "JA6DC\n" "JA6DH\n" "JA6DIJ\n" "JA6DSG\n" "JA6ECF/1\n" "JA6EFT\n" "JA6EML\n" "JA6ETS\n" "JA6FBI\n" "JA6FFK\n" "JA6FGC\n" "JA6FMR\n" "JA6FOF\n" "JA6FUV\n" "JA6FXT/1\n" "JA6GCE\n" "JA6GGD\n" "JA6GIJ\n" "JA6GKW\n" "JA6GT\n" "JA6GXP\n" "JA6HJW\n" "JA6HLU\n" "JA6HPI\n" "JA6HQT\n" "JA6IQG\n" "JA6JNF\n" "JA6JPS\n" "JA6JRE\n" "JA6JYM\n" "JA6KTY\n" "JA6LCJ\n" "JA6MYQ\n" "JA6NOC\n" "JA6OXT\n" "JA6PCH\n" "JA6QDU\n" "JA6QZ\n" "JA6RCH\n" "JA6REX\n" "JA6RXO\n" "JA6SHL\n" "JA6SRB\n" "JA6TIT\n" "JA6TMU\n" "JA6TWS\n" "JA6UDI\n" "JA6VDB\n" "JA6VI\n" "JA6VNR\n" "JA6VQA\n" "JA6VU\n" "JA6WFM\n" "JA6WIF\n" "JA6WJL\n" "JA6WW\n" "JA6XBH\n" "JA6XZS/1\n" "JA6YG\n" "JA6ZPR\n" "JA7ACM\n" "JA7ACV\n" "JA7AEM\n" "JA7AGO\n" "JA7AHK\n" "JA7AKH\n" "JA7ARD\n" "JA7ARW\n" "JA7AXN\n" "JA7AXP\n" "JA7BAL\n" "JA7BCE\n" "JA7BJS\n" "JA7BLE\n" "JA7BME\n" "JA7BMR\n" "JA7BMW\n" "JA7BSV\n" "JA7BVH\n" "JA7BWT\n" "JA7BYP\n" "JA7BZU\n" "JA7CDK\n" "JA7CDV\n" "JA7COI\n" "JA7COK\n" "JA7CPW\n" "JA7CXL\n" "JA7DDK\n" "JA7DHJ/1\n" "JA7DLE\n" "JA7DNJ\n" "JA7DOT\n" "JA7DXX\n" "JA7DY\n" "JA7DYJ\n" "JA7EDZ\n" "JA7EMG\n" "JA7EMH\n" "JA7ESQ\n" "JA7EU\n" "JA7EVH\n" "JA7EYK\n" "JA7FAS\n" "JA7FEX\n" "JA7FNQ\n" "JA7FTR\n" "JA7GAP\n" "JA7GBS\n" "JA7GUT\n" "JA7GYP\n" "JA7GZM\n" "JA7HB\n" "JA7HTJ\n" "JA7HUC\n" "JA7HYS\n" "JA7IC\n" "JA7JH\n" "JA7JMX\n" "JA7JWF\n" "JA7KDC\n" "JA7KE\n" "JA7KQC\n" "JA7KY\n" "JA7LDA\n" "JA7LGE\n" "JA7LLL\n" "JA7LMU/1\n" "JA7LMZ\n" "JA7MBT\n" "JA7MGP\n" "JA7MJ\n" "JA7MSQ\n" "JA7ND\n" "JA7NI\n" "JA7NLW\n" "JA7NPV\n" "JA7NUM\n" "JA7NVF\n" "JA7NX\n" "JA7ODY\n" "JA7OEM\n" "JA7OUV\n" "JA7OWD\n" "JA7OXR\n" "JA7OXR/1\n" "JA7OYM\n" "JA7OZW\n" "JA7QFU\n" "JA7QOU\n" "JA7QVI\n" "JA7RHJ\n" "JA7RPC\n" "JA7RQK\n" "JA7SN\n" "JA7SSP\n" "JA7SUR/1\n" "JA7TJ\n" "JA7UES/1\n" "JA7VEI\n" "JA7VSO\n" "JA7WMO\n" "JA7WNA\n" "JA7WQJ\n" "JA7XBG\n" "JA7XRH\n" "JA7XVZ\n" "JA7XZZ\n" "JA7YAA\n" "JA7YCQ\n" "JA7YRR\n" "JA7ZP\n" "JA7ZT/1\n" "JA8AHA\n" "JA8AIN\n" "JA8AJE\n" "JA8APN\n" "JA8AWH\n" "JA8AZN\n" "JA8BAR\n" "JA8BBD\n" "JA8BKI\n" "JA8BNP\n" "JA8BOV\n" "JA8BXD\n" "JA8CDG\n" "JA8CEA\n" "JA8CJY\n" "JA8CMC\n" "JA8CNF\n" "JA8CPF/1\n" "JA8CSY\n" "JA8CTO\n" "JA8DIV\n" "JA8DMB\n" "JA8DNV\n" "JA8ECS\n" "JA8EIA\n" "JA8EIU\n" "JA8EOT\n" "JA8EPO\n" "JA8FHM\n" "JA8GMZ\n" "JA8GWK\n" "JA8IAF\n" "JA8IJI\n" "JA8ISU\n" "JA8IUB\n" "JA8JDQ\n" "JA8JMG\n" "JA8JTH\n" "JA8KMA\n" "JA8KNJ\n" "JA8KSF\n" "JA8KXA\n" "JA8LN\n" "JA8LRG\n" "JA8LSZ\n" "JA8MS\n" "JA8MXC\n" "JA8NF\n" "JA8NFV\n" "JA8NSF/1\n" "JA8RJE\n" "JA8RRF\n" "JA8RUU\n" "JA8RWU\n" "JA8RY\n" "JA8SCD\n" "JA8SCD/1\n" "JA8SM\n" "JA8SPZ\n" "JA8TR\n" "JA8UON\n" "JA8WNR\n" "JA8WY\n" "JA8XOK\n" "JA8YYY\n" "JA8ZO\n" "JA9ABA\n" "JA9AGN\n" "JA9APS\n" "JA9APZ\n" "JA9ARC\n" "JA9BFM\n" "JA9BGL\n" "JA9BJS\n" "JA9BKU\n" "JA9BMG\n" "JA9CAC\n" "JA9CCG\n" "JA9CGW\n" "JA9CHI\n" "JA9CNC\n" "JA9CWJ\n" "JA9CZE\n" "JA9DJH\n" "JA9DNS\n" "JA9DTV/1\n" "JA9EJG\n" "JA9ESZ\n" "JA9FAI\n" "JA9FHB\n" "JA9FO\n" "JA9FPI\n" "JA9FR\n" "JA9GLW\n" "JA9IFF\n" "JA9IL\n" "JA9LJS\n" "JA9LX\n" "JA9MAT\n" "JA9NFO\n" "JA9NUN\n" "JA9PAK\n" "JA9PPC\n" "JA9RO\n" "JA9RPU\n" "JA9RRH\n" "JA9RT\n" "JA9SSY/1\n" "JA9SSY/2\n" "JA9SW\n" "JA9TQY\n" "JA9UR\n" "JA9XRL\n" "JA9ZMQ\n" "JD1BIA\n" "JD1BLY\n" "JD1BMM\n" "JE0EHE\n" "JE1ALA\n" "JE1AON\n" "JE1BQE\n" "JE1CAC\n" "JE1CJB\n" "JE1CKA\n" "JE1COB\n" "JE1CPB\n" "JE1CQT\n" "JE1CSW\n" "JE1CTM\n" "JE1EMU\n" "JE1EQS\n" "JE1FQV\n" "JE1FUX\n" "JE1GNG\n" "JE1GWO\n" "JE1GYL\n" "JE1GZB\n" "JE1HMC\n" "JE1HQE\n" "JE1HXZ\n" "JE1IFV\n" "JE1JAC\n" "JE1KBV\n" "JE1KDM\n" "JE1KEY\n" "JE1KON\n" "JE1LCK\n" "JE1LDU\n" "JE1LET\n" "JE1LFR\n" "JE1LFX\n" "JE1LOI\n" "JE1LPZ\n" "JE1LRT\n" "JE1LZL\n" "JE1MHO\n" "JE1NGI\n" "JE1NVD\n" "JE1OHL\n" "JE1ORU\n" "JE1PGA\n" "JE1PNX\n" "JE1QCL\n" "JE1QUR\n" "JE1QYI\n" "JE1REU\n" "JE1RID\n" "JE1ROA\n" "JE1RRK\n" "JE1RXJ\n" "JE1RZR\n" "JE1SCF\n" "JE1SCJ\n" "JE1SGH\n" "JE1SHW\n" "JE1SPY\n" "JE1SSE\n" "JE1SYN\n" "JE1TBU\n" "JE1TNL\n" "JE1TRV\n" "JE1TSD\n" "JE1UMG\n" "JE1WHD\n" "JE1WYC\n" "JE1YEM\n" "JE1ZWT\n" "JE2ATB\n" "JE2DJC\n" "JE2DOD\n" "JE2EHP\n" "JE2FUP\n" "JE2HCJ\n" "JE2HXL\n" "JE2ILG\n" "JE2KDN\n" "JE2KUC\n" "JE2LDW\n" "JE2LPC\n" "JE2LUN\n" "JE2LVG\n" "JE2MIR\n" "JE2OTM\n" "JE2OVG\n" "JE2PCY\n" "JE2PMC\n" "JE2QIZ\n" "JE2RDO\n" "JE2SOY\n" "JE2TLZ\n" "JE2UFF\n" "JE2VLG\n" "JE2WGC\n" "JE2XJW\n" "JE2YWY\n" "JE3AGN\n" "JE3AOL\n" "JE3BXY\n" "JE3CXJ\n" "JE3EDJ\n" "JE3EJC\n" "JE3GUG\n" "JE3HWO\n" "JE3MTQ\n" "JE3RNC\n" "JE3UHV\n" "JE3VRJ\n" "JE3WUK\n" "JE3XNF\n" "JE4AEJ/1\n" "JE4ICX/1\n" "JE4JPQ\n" "JE4KQH\n" "JE4MHL\n" "JE4MZA\n" "JE4QGF\n" "JE4RAL\n" "JE4USZ\n" "JE4XYA\n" "JE5CIL\n" "JE5JHZ\n" "JE5PTI\n" "JE5PTJ\n" "JE5QPH\n" "JE6CAJ\n" "JE6CMG\n" "JE6DBI\n" "JE6DND\n" "JE6DVI\n" "JE6ETN\n" "JE6HUR\n" "JE6JVH\n" "JE6LXS\n" "JE6QUJ\n" "JE6TSP\n" "JE6TUU\n" "JE6URC\n" "JE6UWU\n" "JE7BUH\n" "JE7CJL\n" "JE7DMH\n" "JE7HYK\n" "JE7JDL\n" "JE7JZT\n" "JE7LKG\n" "JE7SOG\n" "JE7WBI\n" "JE7YSS\n" "JE8BKW\n" "JE8CIC\n" "JE8CLT\n" "JE8CRA\n" "JE8GNN\n" "JE8KGH/7\n" "JE8KKX\n" "JE8NTJ\n" "JE8TGI\n" "JE9CRJ\n" "JE9QMZ\n" "JF0EHX\n" "JF0POA\n" "JF1AGB\n" "JF1AZQ\n" "JF1BFM\n" "JF1CBT\n" "JF1DMY\n" "JF1EGO\n" "JF1EGX\n" "JF1EUY\n" "JF1FFX\n" "JF1GUT\n" "JF1GYX\n" "JF1GZZ\n" "JF1HJX\n" "JF1HME\n" "JF1HYG\n" "JF1IRW\n" "JF1ISC/3\n" "JF1IUA\n" "JF1IXE\n" "JF1JPB\n" "JF1KFR\n" "JF1KKV\n" "JF1KMC\n" "JF1KML\n" "JF1KSF\n" "JF1KUR\n" "JF1KWG\n" "JF1LLB\n" "JF1LMB\n" "JF1LWO\n" "JF1MAD\n" "JF1MQS\n" "JF1NHD\n" "JF1NZW\n" "JF1OLC\n" "JF1OPL\n" "JF1PJK\n" "JF1PTX\n" "JF1PYJ\n" "JF1QQK\n" "JF1RBU\n" "JF1RDH\n" "JF1RFZ\n" "JF1RQP\n" "JF1RWZ\n" "JF1RYU\n" "JF1SCB/7\n" "JF1SEK\n" "JF1SPT\n" "JF1SQC\n" "JF1SVV\n" "JF1TEU\n" "JF1UVJ\n" "JF1VNR\n" "JF1VRR\n" "JF1VRU\n" "JF1VVR\n" "JF1VYX\n" "JF1WQC\n" "JF1WXN\n" "JF1XEP\n" "JF1YRK\n" "JF2BDK\n" "JF2CTY\n" "JF2DID\n" "JF2DND\n" "JF2DST\n" "JF2FIU\n" "JF2HPA\n" "JF2ICB\n" "JF2IKJ\n" "JF2IWL\n" "JF2KOZ\n" "JF2LVM\n" "JF2MBF\n" "JF2OHQ\n" "JF2OZH\n" "JF2PZY\n" "JF2QNM\n" "JF2RCX\n" "JF2RDG\n" "JF2RLD\n" "JF2SKV\n" "JF2SQB\n" "JF2TOG\n" "JF2UPM\n" "JF2VFN\n" "JF2VHS\n" "JF2VNV\n" "JF2WKE\n" "JF2WME\n" "JF2WTG\n" "JF2WXS\n" "JF3BFS\n" "JF3BRE\n" "JF3EIG\n" "JF3GKE\n" "JF3ITH\n" "JF3IYW\n" "JF3KNW\n" "JF3KON\n" "JF3KQA\n" "JF3LOP\n" "JF3MTM\n" "JF3MYU\n" "JF3NDW\n" "JF3NKA\n" "JF3RDE\n" "JF3SAD\n" "JF3SKW\n" "JF3VAX\n" "JF4ETK\n" "JF4GWA\n" "JF6CHY\n" "JF6WTY\n" "JF6XHS\n" "JF7GDF\n" "JF7NXS\n" "JF7XKY\n" "JF8AOJ\n" "JF9EXF\n" "JF9JTS\n" "JF9KVT\n" "JF9MJU\n" "JG0AXT\n" "JG0EKW\n" "JG0GGI\n" "JG0TCL\n" "JG1AUI\n" "JG1BKX\n" "JG1EIQ\n" "JG1FGL\n" "JG1FKT\n" "JG1FMA\n" "JG1FUV\n" "JG1GCO\n" "JG1GGF\n" "JG1GGU\n" "JG1GUW\n" "JG1HJV\n" "JG1HQA\n" "JG1HUF\n" "JG1IEF\n" "JG1IGX\n" "JG1ILF\n" "JG1IRX\n" "JG1IUF\n" "JG1IZA\n" "JG1JLA\n" "JG1LKT\n" "JG1MOH\n" "JG1NDM\n" "JG1OWV\n" "JG1PED\n" "JG1PST\n" "JG1RVN\n" "JG1SIS\n" "JG1SRB\n" "JG1THV\n" "JG1TLY\n" "JG1TVK\n" "JG1UKW\n" "JG1UZD\n" "JG1VVU\n" "JG1WNO\n" "JG1WRT\n" "JG1XLZ\n" "JG1ZKO\n" "JG2CNS\n" "JG2CNZ\n" "JG2GSY\n" "JG2KKG\n" "JG2KUT\n" "JG2LGM\n" "JG2NLN\n" "JG2REJ\n" "JG2SON\n" "JG2TSL\n" "JG3CKF/1\n" "JG3CQJ\n" "JG3DOC\n" "JG3FEA\n" "JG3GYO\n" "JG3IWL\n" "JG3JLC\n" "JG3KUT\n" "JG3LGD\n" "JG3MBL\n" "JG3RXZ\n" "JG3SKK\n" "JG3SVP\n" "JG3TXD\n" "JG3UVN\n" "JG3WDN\n" "JG4AKL\n" "JG4OOU\n" "JG4QFG\n" "JG5DHX\n" "JG6DVF\n" "JG6FQW/1\n" "JG6FUO\n" "JG6TPY\n" "JG6TXW\n" "JG7AMD\n" "JG7DLI\n" "JG7EHM\n" "JG7IJM\n" "JG7MFN\n" "JG7PSJ\n" "JG8QXB\n" "JG8TQL\n" "JH0BBE\n" "JH0BQX\n" "JH0CCK\n" "JH0EPI\n" "JH0EQN\n" "JH0EWT\n" "JH0EXA\n" "JH0GHZ\n" "JH0IEW\n" "JH0INE\n" "JH0INP\n" "JH0JDV/0\n" "JH0KHR\n" "JH0LSP\n" "JH0MGW\n" "JH0MHR\n" "JH0MMJ\n" "JH0MXV\n" "JH0NEC\n" "JH0NOS\n" "JH0NVX/1\n" "JH0OXS\n" "JH0QIQ\n" "JH0QYS\n" "JH0RNN\n" "JH0SGJ\n" "JH0TIS\n" "JH0WMN\n" "JH0WMN/1\n" "JH1AAN\n" "JH1ABP\n" "JH1ACA\n" "JH1AEP\n" "JH1AGU\n" "JH1APK\n" "JH1APZ\n" "JH1ARJ\n" "JH1AWJ\n" "JH1BED\n" "JH1BEL\n" "JH1BQL\n" "JH1BZJ\n" "JH1CBD\n" "JH1CCN\n" "JH1CML\n" "JH1CRF\n" "JH1CTQ\n" "JH1DGQ\n" "JH1DJD\n" "JH1DLD\n" "JH1DTX\n" "JH1DVG\n" "JH1DYV\n" "JH1EAQ\n" "JH1EEB\n" "JH1EGJ\n" "JH1ESR\n" "JH1EVD\n" "JH1EVE\n" "JH1EYM\n" "JH1FNU\n" "JH1FSF\n" "JH1FSL\n" "JH1FTL\n" "JH1FVE\n" "JH1GEV\n" "JH1GNU\n" "JH1GUL\n" "JH1GUO\n" "JH1GUO/4\n" "JH1GZE\n" "JH1HDT\n" "JH1HGF\n" "JH1HGI\n" "JH1HIC\n" "JH1HJC\n" "JH1HMC\n" "JH1HTF\n" "JH1HTQ/2\n" "JH1HXY\n" "JH1HYW\n" "JH1IAQ\n" "JH1IED\n" "JH1IOY\n" "JH1IVD\n" "JH1IXW\n" "JH1JBV\n" "JH1KIM\n" "JH1KZB\n" "JH1KZQ\n" "JH1LAH\n" "JH1LEM\n" "JH1LPF\n" "JH1LPZ\n" "JH1MDJ\n" "JH1MSB\n" "JH1MTR/4\n" "JH1NBN\n" "JH1NPQ\n" "JH1NXU\n" "JH1OBS\n" "JH1OCC\n" "JH1OGC\n" "JH1OGT\n" "JH1OHZ\n" "JH1OIV\n" "JH1OLB\n" "JH1OTZ\n" "JH1OVY\n" "JH1PCE\n" "JH1PQD\n" "JH1PXY\n" "JH1QDB\n" "JH1QDF\n" "JH1QQN\n" "JH1QVW\n" "JH1QYT\n" "JH1RDU\n" "JH1RFM\n" "JH1RFZ\n" "JH1RGG\n" "JH1RNI\n" "JH1RRP\n" "JH1SAJ\n" "JH1SAR\n" "JH1SBE\n" "JH1SJN\n" "JH1SVO\n" "JH1SWD\n" "JH1TFE\n" "JH1TKB\n" "JH1TUB\n" "JH1TWT\n" "JH1TXG/9\n" "JH1UGN\n" "JH1URT\n" "JH1UUT\n" "JH1VHU\n" "JH1VIG\n" "JH1VMI\n" "JH1WHA\n" "JH1WJR\n" "JH1WLY\n" "JH1WNL\n" "JH1WVJ\n" "JH1XFR\n" "JH1XUM\n" "JH1XUP\n" "JH1XUZ\n" "JH1XVE\n" "JH1XYB\n" "JH2AHZ\n" "JH2AMH\n" "JH2AZW\n" "JH2BAX\n" "JH2BNL\n" "JH2BTM\n" "JH2BUF\n" "JH2CMH\n" "JH2DBQ\n" "JH2DFJ\n" "JH2DTP\n" "JH2FLY\n" "JH2FXK\n" "JH2GAA\n" "JH2GSW\n" "JH2GZY\n" "JH2HUQ\n" "JH2IEE\n" "JH2KCE\n" "JH2KIL\n" "JH2LPY\n" "JH2MYN\n" "JH2NWP\n" "JH2OEY\n" "JH2PWM\n" "JH2PWY\n" "JH2QAY\n" "JH2QLC\n" "JH2QUQ\n" "JH2RMU\n" "JH2SON\n" "JH2UVL\n" "JH2WGI\n" "JH2XQY\n" "JH2XTV\n" "JH3AIU\n" "JH3BYX\n" "JH3CCT\n" "JH3CTQ\n" "JH3CUL\n" "JH3DMQ\n" "JH3EDG\n" "JH3EGA\n" "JH3EGA/1\n" "JH3EQP\n" "JH3EXI\n" "JH3FUK\n" "JH3GCN\n" "JH3HGH\n" "JH3HWL\n" "JH3JUB\n" "JH3JYS\n" "JH3KHS\n" "JH3LFL/1\n" "JH3OHO\n" "JH3PRR\n" "JH3PTC\n" "JH3QFY\n" "JH3SIF\n" "JH3UDD\n" "JH3VWN\n" "JH3WKE\n" "JH4AAG\n" "JH4ADV\n" "JH4BTI\n" "JH4CES\n" "JH4CHV\n" "JH4CPC\n" "JH4EMK\n" "JH4EYD\n" "JH4FRP\n" "JH4FUF\n" "JH4GLG\n" "JH4GNE\n" "JH4IFF\n" "JH4JNG\n" "JH4LBE\n" "JH4OQF\n" "JH4OYA\n" "JH4RCK/3\n" "JH4RNY\n" "JH4RUF\n" "JH4SLF\n" "JH4UTP\n" "JH4UYB\n" "JH4VDP\n" "JH5AVM\n" "JH5BJU/3\n" "JH5CKV\n" "JH5DAH\n" "JH5FIX\n" "JH5FXP\n" "JH5GEN\n" "JH5IRT\n" "JH5KDL\n" "JH5MXB\n" "JH5OWN\n" "JH6ANR\n" "JH6AUS\n" "JH6CDI\n" "JH6DGE\n" "JH6DUI\n" "JH6EGU\n" "JH6FTJ\n" "JH6JMM\n" "JH6JMN\n" "JH6JSR\n" "JH6LPQ\n" "JH6MBD\n" "JH6NBW\n" "JH6OSR\n" "JH6QFJ\n" "JH6REM\n" "JH6RGY\n" "JH6RKI\n" "JH6RON\n" "JH6SCA\n" "JH6TYD\n" "JH6WDG\n" "JH6WHN\n" "JH6WMJ\n" "JH6XOD\n" "JH7BMF\n" "JH7BVH\n" "JH7CUO\n" "JH7CVM\n" "JH7DNO\n" "JH7DUM\n" "JH7FMJ\n" "JH7GNC\n" "JH7IAJ\n" "JH7IMX\n" "JH7IPR/6\n" "JH7IXX\n" "JH7JCX\n" "JH7MEX\n" "JH7NTJ\n" "JH7OUW\n" "JH7PHD\n" "JH7QXJ\n" "JH7RTQ\n" "JH7RXY\n" "JH7SCY\n" "JH7UFT\n" "JH7UJI\n" "JH7XGC\n" "JH7XGN\n" "JH7XGQ\n" "JH7XMO\n" "JH8BHR\n" "JH8BOE\n" "JH8CXW\n" "JH8CZB\n" "JH8DBI\n" "JH8DBJ\n" "JH8DHV\n" "JH8FAJ\n" "JH8FAJ/1\n" "JH8FIH\n" "JH8GEU\n" "JH8JOM\n" "JH8JYV\n" "JH8KFN\n" "JH8LLE\n" "JH8OCV\n" "JH8RXM\n" "JH8SGR\n" "JH8SIT\n" "JH8SLS\n" "JH8UGL\n" "JH8WWP\n" "JH8WXF\n" "JH9AUB\n" "JH9BZY\n" "JH9CAV\n" "JH9KVF\n" "JH9MBQ\n" "JH9URT\n" "JI1AFG\n" "JI1ALP\n" "JI1ANI\n" "JI1AQY\n" "JI1AVY\n" "JI1BBN\n" "JI1BDQ\n" "JI1BHO\n" "JI1BJB\n" "JI1BXD\n" "JI1CPN\n" "JI1CQA\n" "JI1CZK\n" "JI1DQA\n" "JI1DSO\n" "JI1DXM\n" "JI1ETJ\n" "JI1FDF\n" "JI1FLB\n" "JI1FXS\n" "JI1HAC\n" "JI1HFJ\n" "JI1IXW\n" "JI1JPJ\n" "JI1KXL\n" "JI1LAI\n" "JI1LAT\n" "JI1LET\n" "JI1LVQ\n" "JI1MUT\n" "JI1NCZ\n" "JI1OAB\n" "JI1OWY\n" "JI1QEW\n" "JI1QWE\n" "JI1QZQ\n" "JI1RAK\n" "JI1RXQ\n" "JI1SAI\n" "JI1UCL\n" "JI1UDD\n" "JI1VVB\n" "JI1XAC\n" "JI1XJB\n" "JI2HVT\n" "JI2IWB\n" "JI2KXK\n" "JI2LAL\n" "JI2MWH\n" "JI2TKX\n" "JI2TNT/9\n" "JI2WYK\n" "JI2ZEY\n" "JI2ZJS\n" "JI3BAP\n" "JI3BFC\n" "JI3BKF\n" "JI3CJP\n" "JI3CWI\n" "JI3DST\n" "JI3DST/3\n" "JI3DST/6\n" "JI3FLA\n" "JI3FSI\n" "JI3ICP\n" "JI3JMG\n" "JI3KDH\n" "JI3KXB\n" "JI3KZD\n" "JI3MCM\n" "JI3OGI\n" "JI3OQO\n" "JI3QBQ\n" "JI4HKA\n" "JI4JGD\n" "JI4OHV\n" "JI4POR\n" "JI4UEN/4\n" "JI4VXI\n" "JI4WHS\n" "JI5KGQ\n" "JI5RPT\n" "JI6AVL\n" "JI6IKW\n" "JI6OXK\n" "JI7EMD\n" "JI7GYU\n" "JI7HAV\n" "JI7NUF\n" "JI7RRS\n" "JI7UUO\n" "JI8XLD\n" "JJ0FVP\n" "JJ0HEN\n" "JJ0JML\n" "JJ0KDW\n" "JJ0KRD\n" "JJ0MPI\n" "JJ0NCC\n" "JJ0PER\n" "JJ1CBY\n" "JJ1CZR\n" "JJ1ENZ\n" "JJ1FDS\n" "JJ1FHH\n" "JJ1GQH\n" "JJ1IDW\n" "JJ1IVX\n" "JJ1LBJ\n" "JJ1LIB\n" "JJ1LID\n" "JJ1LRD\n" "JJ1MIX\n" "JJ1MZH\n" "JJ1NDP\n" "JJ1OAS\n" "JJ1OFQ\n" "JJ1QLT\n" "JJ1RSH\n" "JJ1SKG\n" "JJ1TBQ\n" "JJ1TJD\n" "JJ1VGA\n" "JJ1VJB\n" "JJ1VRO\n" "JJ1VTE\n" "JJ1WSN\n" "JJ1WWL\n" "JJ1XKE\n" "JJ1XPJ\n" "JJ1ZEJ\n" "JJ2CJB\n" "JJ2EOB\n" "JJ2HCM\n" "JJ2IBN\n" "JJ2JQF\n" "JJ2JQF/1\n" "JJ2LPV\n" "JJ2NKX\n" "JJ2ONH\n" "JJ2PUG\n" "JJ2SQJ\n" "JJ2TKX\n" "JJ2YDV\n" "JJ3DXD\n" "JJ3GPJ\n" "JJ3JHP\n" "JJ3JJL\n" "JJ3LLT\n" "JJ3OFL\n" "JJ3SHR\n" "JJ3TBB\n" "JJ4CDW/4\n" "JJ4NZO/1\n" "JJ5EFY\n" "JJ5GMJ\n" "JJ6CZZ\n" "JJ6TWQ\n" "JJ7GCL\n" "JK1AFC\n" "JK1AII\n" "JK1BII\n" "JK1BQS\n" "JK1DHX\n" "JK1ECD\n" "JK1FFB\n" "JK1FNL\n" "JK1FNN\n" "JK1GKG\n" "JK1GMB\n" "JK1HWQ\n" "JK1JHB\n" "JK1KFO\n" "JK1KSB\n" "JK1LUY\n" "JK1MZT\n" "JK1NMJ\n" "JK1NSR\n" "JK1ODA\n" "JK1OLT\n" "JK1OPL\n" "JK1OXU\n" "JK1PDY\n" "JK1PIU\n" "JK1PLR\n" "JK1RAU\n" "JK1SDQ\n" "JK1SMY\n" "JK1SPQ\n" "JK1TCV\n" "JK1THF\n" "JK1TMP\n" "JK1UKQ\n" "JK1UVP\n" "JK1VEL\n" "JK1WXM\n" "JK1YMM\n" "JK2GMX\n" "JK2KNR\n" "JK2MDV\n" "JK2TTP\n" "JK2VOC\n" "JK2VOC/BA4TB\n" "JK2VQR\n" "JK3AGC\n" "JK3AHS\n" "JK3GHE\n" "JK3GWT\n" "JK3HFN\n" "JK3HLP\n" "JK3JTJ\n" "JK3NSD\n" "JK3ZCR\n" "JK4KSD\n" "JK6JAB\n" "JK6SEW\n" "JK7UST\n" "JK8NQW\n" "JK8USI\n" "JL1ARF\n" "JL1BDI\n" "JL1BNE\n" "JL1BYZ\n" "JL1CNY\n" "JL1DUE\n" "JL1EBL\n" "JL1EDB\n" "JL1EEE\n" "JL1ELQ\n" "JL1GXO\n" "JL1HSD\n" "JL1IHE\n" "JL1JJD\n" "JL1KLG\n" "JL1LNC\n" "JL1MUT\n" "JL1MWI\n" "JL1MWY\n" "JL1OHO\n" "JL1OXH\n" "JL1PPS\n" "JL1QOC\n" "JL1RUC\n" "JL1RXW\n" "JL1SAM\n" "JL1UJJ\n" "JL1UTS\n" "JL1VFZ\n" "JL1WPQ\n" "JL1XMN\n" "JL2CZY\n" "JL2LPX\n" "JL2VZJ\n" "JL3APM\n" "JL3CRS\n" "JL3JTD\n" "JL3MCM\n" "JL3QJQ\n" "JL3RDC\n" "JL3RNZ\n" "JL3RPD\n" "JL3RTA\n" "JL3SBE\n" "JL3TEQ\n" "JL3VUL/3\n" "JL4BSE\n" "JL4HOZ\n" "JL4LWL\n" "JL4WYY\n" "JL6IPK\n" "JL6MSN\n" "JL6TKN\n" "JL7FBV/1\n" "JL7SNM\n" "JL8AQH\n" "JL8GOV\n" "JL8LBK\n" "JL8MBF\n" "JL8VIV\n" "JM1AHX\n" "JM1BKZ\n" "JM1CYJ\n" "JM1EKM\n" "JM1FBF\n" "JM1FHL\n" "JM1FYH\n" "JM1HJG\n" "JM1IMF\n" "JM1ISX\n" "JM1JZN\n" "JM1KLO\n" "JM1KNI\n" "JM1LKI\n" "JM1LQI\n" "JM1LRQ\n" "JM1LWY\n" "JM1NKT\n" "JM1QBY\n" "JM1RQS\n" "JM1RSV\n" "JM1SBU\n" "JM1SMY\n" "JM1TUY\n" "JM1TWR\n" "JM1UTT\n" "JM1UWB\n" "JM1XCW\n" "JM1XSJ\n" "JM2DRM\n" "JM2LEI\n" "JM2LHB\n" "JM2LOF\n" "JM2MHQ\n" "JM2RUV\n" "JM2VYA\n" "JM3APP\n" "JM3PLL\n" "JM3QML\n" "JM3ROY\n" "JM3UAO\n" "JM3UML\n" "JM4UVV\n" "JM4WUZ\n" "JM6BYV\n" "JM7NBS\n" "JM7OLW\n" "JN1ADL\n" "JN1BBO\n" "JN1BMX\n" "JN1CJS\n" "JN1DJY\n" "JN1DNV\n" "JN1GLB\n" "JN1IZK\n" "JN1IZR\n" "JN1KWR\n" "JN1LWD\n" "JN1MSO\n" "JN1NDY\n" "JN1NOP\n" "JN1NTK\n" "JN1PFH\n" "JN1RQV\n" "JN1WFF\n" "JN2AMD\n" "JN2NOJ\n" "JN3DMJ\n" "JN3DRX\n" "JN3DSH\n" "JN3IWE\n" "JN3KST\n" "JN3LQP\n" "JN3MUC\n" "JN3SAC\n" "JN4FNZ\n" "JN4MMO\n" "JN4SNG\n" "JN4XYZ\n" "JN6EPA\n" "JN6GBB\n" "JN6VSN\n" "JN6VSN/1\n" "JN7GLC\n" "JN7IIR\n" "JN7MLJ\n" "JN7TAN\n" "JO1ABS\n" "JO1COV\n" "JO1DZA\n" "JO1GUZ\n" "JO1HJD\n" "JO1KCQ\n" "JO1KVS\n" "JO1KXP\n" "JO1KXP/1\n" "JO1LVZ\n" "JO1NLN\n" "JO1PNA\n" "JO1QNO\n" "JO1QZI\n" "JO1RUQ\n" "JO1SIM\n" "JO1UOK\n" "JO1UTR\n" "JO1VRV\n" "JO1WIZ\n" "JO1WKO\n" "JO1WNV\n" "JO1WZM\n" "JO1XEU\n" "JO2EWL\n" "JO2VSU\n" "JO3AGQ\n" "JO3AXC\n" "JO3AYN\n" "JO3DDD\n" "JO3EVM\n" "JO3GZH\n" "JO3JYE\n" "JO3MXH\n" "JO3NJD\n" "JO3PSJ\n" "JO3PSJ/3\n" "JO3PSJ/4\n" "JO3RCK\n" "JO3TGL\n" "JO4CBO\n" "JO4CFV\n" "JO6XMM\n" "JO7AJQ\n" "JO7GVC\n" "JO7HAM\n" "JO7INF\n" "JO7KJC\n" "JO7NFR\n" "JP1AEG\n" "JP1DMR\n" "JP1EWY\n" "JP1HDK\n" "JP1HUJ\n" "JP1IOF\n" "JP1IXV\n" "JP1JFG\n" "JP1KHY\n" "JP1PQD\n" "JP1PZE\n" "JP1QDH\n" "JP1SRG\n" "JP1TRJ\n" "JP1TVC\n" "JP2MRD\n" "JP3AZM\n" "JP3WAU\n" "JP6OGP\n" "JP7AWQ\n" "JQ1ABC\n" "JQ1AHZ/6\n" "JQ1BVI\n" "JQ1COB\n" "JQ1DPP\n" "JQ1DTT\n" "JQ1GXV\n" "JQ1NGT\n" "JQ1PCX\n" "JQ1QGM\n" "JQ1QKK\n" "JQ1RKI\n" "JQ1SUO\n" "JQ1TAR\n" "JQ1VDJ\n" "JQ1VDJ/1\n" "JQ1YER\n" "JQ1YIW\n" "JQ1YWK\n" "JQ2EHD\n" "JQ2GYU\n" "JQ2HVN\n" "JQ2MUM\n" "JQ2OUL\n" "JQ2QHQ\n" "JQ2SIX\n" "JQ2UMS\n" "JQ2UNS\n" "JQ2UNY\n" "JQ2UOZ\n" "JQ2VVH\n" "JQ2WTT\n" "JQ3UDL\n" "JQ6CAA\n" "JQ6JBU\n" "JQ6NAW\n" "JQ6OZP\n" "JQ6QNQ\n" "JR0AMD\n" "JR0BUL\n" "JR0EQQ\n" "JR0ETA\n" "JR0GUY\n" "JR0GXA\n" "JR0HYT/1\n" "JR0KVU/1\n" "JR0WZR\n" "JR1AHL\n" "JR1AHQ\n" "JR1ATA\n" "JR1AUK\n" "JR1BAS\n" "JR1BLX\n" "JR1BRS\n" "JR1BTG\n" "JR1BYO\n" "JR1CBC\n" "JR1CCT\n" "JR1CJD\n" "JR1CJD/1\n" "JR1CVU\n" "JR1DIU\n" "JR1DUP\n" "JR1ERU\n" "JR1FHP\n" "JR1FVI\n" "JR1GCN\n" "JR1GFX\n" "JR1GJP\n" "JR1GLL\n" "JR1GMK\n" "JR1GNB\n" "JR1GVP\n" "JR1HUA\n" "JR1IJV\n" "JR1IZM\n" "JR1IZM/1\n" "JR1KAG\n" "JR1KQU\n" "JR1LEV\n" "JR1LZK\n" "JR1MQT\n" "JR1MRG\n" "JR1MTS\n" "JR1NAL\n" "JR1NHD\n" "JR1NKN\n" "JR1PST\n" "JR1RGX\n" "JR1TOK\n" "JR1TRK\n" "JR1UBR\n" "JR1UFN\n" "JR1UMO\n" "JR1VAY\n" "JR1WLR\n" "JR1XFS\n" "JR2AAN\n" "JR2AAN/2\n" "JR2AGL\n" "JR2ALA\n" "JR2AWS\n" "JR2BOF\n" "JR2BQN\n" "JR2BYJ\n" "JR2DOL\n" "JR2DUM\n" "JR2ECF\n" "JR2FJC\n" "JR2KDN\n" "JR2MCN\n" "JR2MIN\n" "JR2MLV\n" "JR2NTC\n" "JR2NTC/2\n" "JR2PAU\n" "JR2PMQ\n" "JR2PMT\n" "JR2SCJ\n" "JR2SCZ\n" "JR2SQU\n" "JR2TMB/1\n" "JR2TRC\n" "JR2TZJ\n" "JR2UBS\n" "JR2VWD\n" "JR2XOM\n" "JR3AAZ\n" "JR3BOT\n" "JR3CNQ\n" "JR3EOI\n" "JR3FQB\n" "JR3GVH\n" "JR3HTK\n" "JR3HZW\n" "JR3IIR\n" "JR3JFZ\n" "JR3KAH\n" "JR3KQJ\n" "JR3NDM\n" "JR3NZC\n" "JR3OEH\n" "JR3PKO\n" "JR3QHQ\n" "JR3RGX\n" "JR3RIY\n" "JR3RWB\n" "JR3STX\n" "JR3SZZ/3\n" "JR3TOE\n" "JR3UIC\n" "JR3VFU\n" "JR3VXR\n" "JR3XEX\n" "JR3XKF\n" "JR4ABB\n" "JR4DAH\n" "JR4DHK\n" "JR4FLW\n" "JR4GPA\n" "JR4HTZ\n" "JR4IMV\n" "JR4ISF/3\n" "JR4KJW\n" "JR4LRY\n" "JR4NMV\n" "JR4OHO\n" "JR4PDP\n" "JR4PMX/1\n" "JR4URW\n" "JR4VEV\n" "JR4XME\n" "JR5DPV\n" "JR5EPQ\n" "JR5GZV\n" "JR5HKM\n" "JR5HXU\n" "JR5JAQ\n" "JR5MYC\n" "JR5VHU\n" "JR5XPG\n" "JR5YBH\n" "JR6AG\n" "JR6AUC\n" "JR6BU\n" "JR6EZE\n" "JR6FC\n" "JR6FRV\n" "JR6GHN\n" "JR6GIM\n" "JR6HMJ/1\n" "JR6IGU\n" "JR6IKD\n" "JR6KBY\n" "JR6LLN\n" "JR6OSY\n" "JR6SVM\n" "JR6VIX\n" "JR6YAA\n" "JR7AMZ\n" "JR7ANB\n" "JR7AQL\n" "JR7COP\n" "JR7DXN\n" "JR7FNT\n" "JR7FVO\n" "JR7IAD\n" "JR7KSZ\n" "JR7MAZ\n" "JR7NAL/1\n" "JR7NFW\n" "JR7NXM\n" "JR7RZM\n" "JR7RZM/6\n" "JR7TBZ\n" "JR7TEQ\n" "JR7VHZ\n" "JR7WAB\n" "JR7XGL\n" "JR7XKN\n" "JR7YGK\n" "JR8AMF\n" "JR8BHW\n" "JR8NOD\n" "JR8ORC\n" "JR8OXT\n" "JR8PPG\n" "JR8QFG\n" "JR8QVT/1\n" "JR8SUB\n" "JR8VSE\n" "JR9CPT\n" "JR9GEX\n" "JR9GMS\n" "JR9NVB\n" "JR9SCH\n" "JS1DLC\n" "JS1JTX\n" "JS1KQQ\n" "JS1LQI\n" "JS1MZV\n" "JS1NDM\n" "JS1OHI\n" "JS1OKS\n" "JS1OYN\n" "JS2NYO\n" "JS3CTQ\n" "JS3EOE\n" "JS3LSQ\n" "JS3OSI\n" "JS3QBP\n" "JS3QWI\n" "JS6DMT\n" "JS6GIM\n" "JS6RGY\n" "JS6RRR\n" "JS6RTJ\n" "JT1AA\n" "JT1BE\n" "JT1BH\n" "JT1BL\n" "JT1BV\n" "JT1BZ\n" "JT1C\n" "JT1CD\n" "JT1CJ\n" "JT1CO\n" "JT1CS\n" "JT1DA\n" "JT1R\n" "JT1ZO\n" "JT5DX\n" "JU1DX\n" "JU1F\n" "JU75BSI\n" "JV1A\n" "JW1CCA\n" "JW5E\n" "JW5HE\n" "JW5NM\n" "JW7QIA\n" "JW7XK\n" "JY3ZH\n" "JY4CI\n" "JY4NE\n" "JY5CC\n" "JY6HQ\n" "K0ABC\n" "K0ACP\n" "K0AD\n" "K0ADX\n" "K0AE\n" "K0AIZ\n" "K0AK\n" "K0ALT\n" "K0ALV\n" "K0ANS\n" "K0AOZ\n" "K0AP\n" "K0ARK\n" "K0ARS\n" "K0ARY\n" "K0AV\n" "K0AWU\n" "K0AXX\n" "K0AZ\n" "K0BJ\n" "K0BLT\n" "K0BO\n" "K0BOG\n" "K0BUD\n" "K0BWJ\n" "K0BWQ\n" "K0BX\n" "K0CA\n" "K0CCM\n" "K0CD\n" "K0CF\n" "K0CIE/5\n" "K0CIY\n" "K0CKD\n" "K0CL\n" "K0CMH\n" "K0CMS\n" "K0CN\n" "K0COM\n" "K0COP\n" "K0CS\n" "K0CW\n" "K0DBN\n" "K0DEQ\n" "K0DI\n" "K0DK\n" "K0DLW\n" "K0DN\n" "K0DNG\n" "K0DQ\n" "K0DTJ\n" "K0DU\n" "K0DVV\n" "K0DVY\n" "K0DXC\n" "K0EA\n" "K0EIA\n" "K0EJ\n" "K0EKL\n" "K0EOA\n" "K0EOO\n" "K0EOU\n" "K0EQH\n" "K0ESE\n" "K0ETV\n" "K0ETY\n" "K0EU\n" "K0EWS\n" "K0EX\n" "K0FA\n" "K0FBV\n" "K0FG\n" "K0FHG\n" "K0FJ\n" "K0FLY\n" "K0FM\n" "K0FPL\n" "K0FRP\n" "K0FS\n" "K0FTC\n" "K0FVF\n" "K0FW\n" "K0FX\n" "K0FY\n" "K0FYI\n" "K0GAS\n" "K0GBC\n" "K0GEO\n" "K0GLT\n" "K0GM\n" "K0GMO\n" "K0GND\n" "K0GPF\n" "K0GSV\n" "K0GT\n" "K0GVG\n" "K0GXI\n" "K0HA\n" "K0HAA\n" "K0HB\n" "K0HC\n" "K0HGW\n" "K0HHB\n" "K0HIP\n" "K0HJC\n" "K0HMO\n" "K0HNC\n" "K0HNM\n" "K0HP\n" "K0HRM\n" "K0HS\n" "K0HT\n" "K0HUU\n" "K0HW\n" "K0IDT\n" "K0IE\n" "K0IEA\n" "K0INR\n" "K0IO\n" "K0IP\n" "K0IR\n" "K0IRL\n" "K0IS\n" "K0ISL\n" "K0ITC\n" "K0IUC\n" "K0IVK\n" "K0IYA\n" "K0IZ\n" "K0JA\n" "K0JCK\n" "K0JDD\n" "K0JE\n" "K0JEM\n" "K0JGH\n" "K0JJ\n" "K0JJM\n" "K0JJR\n" "K0JPL\n" "K0JSC\n" "K0JUH\n" "K0JV\n" "K0JZW\n" "K0KD\n" "K0KE\n" "K0KES\n" "K0KJS\n" "K0KL\n" "K0KP\n" "K0KRH\n" "K0KT\n" "K0KU\n" "K0KVR\n" "K0KW\n" "K0KX\n" "K0KY\n" "K0KZA\n" "K0LAF\n" "K0LC\n" "K0LDS\n" "K0LEJ\n" "K0LFV\n" "K0LG\n" "K0LIR\n" "K0LMD\n" "K0LU\n" "K0LUZ\n" "K0LW\n" "K0LWV\n" "K0MA\n" "K0MAF\n" "K0MD\n" "K0MDS\n" "K0MF\n" "K0MIS\n" "K0MJS\n" "K0MPH\n" "K0MZN\n" "K0NA\n" "K0NE\n" "K0NI\n" "K0NM\n" "K0NN\n" "K0NO\n" "K0NW\n" "K0NWT\n" "K0NX\n" "K0NY\n" "K0NZ\n" "K0OB\n" "K0OD\n" "K0OK\n" "K0OLD\n" "K0OSW\n" "K0OU\n" "K0PC\n" "K0PFV\n" "K0PFX\n" "K0PFZ\n" "K0PIR\n" "K0PJ\n" "K0PK\n" "K0PL\n" "K0PP\n" "K0PP/7\n" "K0PT\n" "K0PY\n" "K0QB\n" "K0QC\n" "K0QH\n" "K0QL\n" "K0QQ\n" "K0QU\n" "K0RC\n" "K0RDK\n" "K0RDW\n" "K0RF\n" "K0RFD\n" "K0RG\n" "K0RGR\n" "K0RH\n" "K0RI\n" "K0RPD\n" "K0RRP\n" "K0RRY\n" "K0RS\n" "K0RU\n" "K0RY\n" "K0RZ\n" "K0SA\n" "K0SBV\n" "K0SCM\n" "K0SDW\n" "K0SF\n" "K0SIX\n" "K0SN\n" "K0SPI\n" "K0SQ\n" "K0SR\n" "K0SRL\n" "K0SRW\n" "K0SV\n" "K0SVX\n" "K0SW\n" "K0SX\n" "K0TER\n" "K0TG\n" "K0THN\n" "K0TI\n" "K0TIV\n" "K0TK\n" "K0TO\n" "K0TPK\n" "K0TPP\n" "K0TQ\n" "K0TRT\n" "K0TT\n" "K0TTY\n" "K0TV\n" "K0TZ\n" "K0UA\n" "K0UAS\n" "K0UB\n" "K0UD\n" "K0UE\n" "K0UIF\n" "K0UK\n" "K0UM\n" "K0URN\n" "K0USA\n" "K0UU\n" "K0VAR\n" "K0VBU\n" "K0VEE\n" "K0VET\n" "K0VG\n" "K0VH\n" "K0VIZ\n" "K0VK\n" "K0VM\n" "K0VR\n" "K0VVY\n" "K0VXP\n" "K0VXU\n" "K0VZT\n" "K0WA\n" "K0WB\n" "K0WHV\n" "K0WIU\n" "K0WK\n" "K0XB\n" "K0XD\n" "K0XE\n" "K0XI\n" "K0XTR\n" "K0XU\n" "K0XY\n" "K0YCR\n" "K0YLW\n" "K0YQ\n" "K0YQ/7\n" "K0YR\n" "K0YY\n" "K0ZK\n" "K0ZN\n" "K0ZR\n" "K0ZX\n" "K1AA\n" "K1AA/4\n" "K1AC\n" "K1AF\n" "K1AIR\n" "K1AJ\n" "K1ANT\n" "K1AR\n" "K1ARO\n" "K1ASA\n" "K1ATT\n" "K1BAA\n" "K1BBM\n" "K1BD\n" "K1BG\n" "K1BKE\n" "K1BO\n" "K1BV\n" "K1BW\n" "K1BX\n" "K1BZM\n" "K1CBR\n" "K1CL\n" "K1CN\n" "K1CP\n" "K1CTT\n" "K1DAN\n" "K1DAT\n" "K1DAT/1\n" "K1DC\n" "K1DD\n" "K1DEC\n" "K1DFT\n" "K1DG\n" "K1DM\n" "K1DQV\n" "K1DRM\n" "K1DRW\n" "K1DS\n" "K1DT\n" "K1DUQ\n" "K1DW\n" "K1DX\n" "K1DXA\n" "K1DZS\n" "K1EA\n" "K1EAR\n" "K1EBY\n" "K1EEE\n" "K1EFI\n" "K1EKF\n" "K1EO\n" "K1EP\n" "K1EQA\n" "K1ESE\n" "K1EY\n" "K1FE\n" "K1FEV\n" "K1FFX\n" "K1FIR\n" "K1FJH\n" "K1FQ\n" "K1FTK\n" "K1FUG\n" "K1FWE\n" "K1FXY\n" "K1GE\n" "K1GI\n" "K1GIG\n" "K1GIL\n" "K1GMD\n" "K1GQ\n" "K1GTS\n" "K1GU\n" "K1GU/4\n" "K1GUN\n" "K1GUP\n" "K1GW\n" "K1HAP\n" "K1HI\n" "K1HOP\n" "K1HR\n" "K1HT\n" "K1HT/8\n" "K1HTJ\n" "K1HTN\n" "K1HTQ\n" "K1HTV\n" "K1HV\n" "K1HZ\n" "K1IB\n" "K1IEB\n" "K1IED\n" "K1IF\n" "K1IK\n" "K1ILR\n" "K1IM\n" "K1IMI\n" "K1IN\n" "K1IPT\n" "K1IR\n" "K1IX\n" "K1JB\n" "K1JC\n" "K1JD\n" "K1JDL\n" "K1JE\n" "K1JI\n" "K1JO\n" "K1JOS\n" "K1JT\n" "K1JTF\n" "K1JWP\n" "K1KA\n" "K1KAV\n" "K1KBA\n" "K1KD\n" "K1KDG\n" "K1KE\n" "K1KI\n" "K1KLM\n" "K1KNJ\n" "K1KNM\n" "K1KNQ\n" "K1KO\n" "K1KP\n" "K1KQ\n" "K1KS\n" "K1KU\n" "K1KUZ\n" "K1KX\n" "K1LD\n" "K1LEE\n" "K1LGM\n" "K1LGQ\n" "K1LHO\n" "K1LI\n" "K1LKP\n" "K1LKR\n" "K1LOG\n" "K1LPS\n" "K1LT\n" "K1LTJ\n" "K1LU\n" "K1LZ\n" "K1MAA\n" "K1MC\n" "K1MIJ\n" "K1MK\n" "K1MM\n" "K1MO\n" "K1MQ\n" "K1MR\n" "K1MTK\n" "K1MVM\n" "K1MVY\n" "K1MW\n" "K1NA\n" "K1ND\n" "K1NDF\n" "K1NDV\n" "K1NEF\n" "K1NG\n" "K1NH\n" "K1NI\n" "K1NIU\n" "K1NJ\n" "K1NK\n" "K1NKA\n" "K1NNJ\n" "K1NPT\n" "K1NR\n" "K1NSS\n" "K1NTR\n" "K1NU\n" "K1NUH\n" "K1NV\n" "K1NY\n" "K1OA\n" "K1OCD\n" "K1OU\n" "K1OW\n" "K1OYQ\n" "K1PAD\n" "K1PDY\n" "K1PJ\n" "K1PL\n" "K1PLX\n" "K1PS\n" "K1PT\n" "K1PTF\n" "K1PU\n" "K1PUB\n" "K1PV\n" "K1PY\n" "K1QF\n" "K1QK\n" "K1QO\n" "K1QR\n" "K1QS\n" "K1QW\n" "K1QX\n" "K1RA\n" "K1RC\n" "K1RH\n" "K1RJV\n" "K1RK\n" "K1RM\n" "K1RO\n" "K1RQ\n" "K1RRR\n" "K1RS\n" "K1RU\n" "K1RV\n" "K1RX\n" "K1RY\n" "K1RZ\n" "K1SA\n" "K1SA/4\n" "K1SD\n" "K1SE\n" "K1SEZ\n" "K1SFA\n" "K1SI\n" "K1SL\n" "K1SL/6\n" "K1SLB\n" "K1SM\n" "K1SND\n" "K1SO\n" "K1SSH\n" "K1ST\n" "K1SUB\n" "K1SVC\n" "K1SVT\n" "K1SXD\n" "K1TA\n" "K1TAX\n" "K1TC\n" "K1TG\n" "K1TH\n" "K1THP\n" "K1TKJ\n" "K1TKL\n" "K1TM\n" "K1TN\n" "K1TN/2\n" "K1TO\n" "K1TR\n" "K1TTT\n" "K1TTY\n" "K1TW\n" "K1TZD\n" "K1UI\n" "K1UO\n" "K1UQT\n" "K1UR\n" "K1UTI\n" "K1VA\n" "K1VC\n" "K1VDF\n" "K1VI\n" "K1VIJ\n" "K1VLB\n" "K1VM\n" "K1VMI\n" "K1VML\n" "K1VO\n" "K1VSJ\n" "K1VT\n" "K1VU\n" "K1VV\n" "K1VW\n" "K1WB\n" "K1WCC\n" "K1WHS\n" "K1WN\n" "K1WO\n" "K1WVU\n" "K1WW\n" "K1WY\n" "K1XM\n" "K1XN\n" "K1XO\n" "K1XT\n" "K1XV\n" "K1YA\n" "K1YE\n" "K1YK\n" "K1YM\n" "K1YQ\n" "K1YSY\n" "K1YT\n" "K1YX\n" "K1ZE\n" "K1ZG\n" "K1ZM\n" "K1ZO\n" "K1ZR\n" "K1ZW\n" "K1ZW/4\n" "K1ZZ\n" "K1ZZI\n" "K2AAW\n" "K2AFY\n" "K2AMI\n" "K2AMP\n" "K2AOP\n" "K2AQ\n" "K2ARO\n" "K2ATX\n" "K2AV\n" "K2AVX\n" "K2AX\n" "K2AXX\n" "K2BB\n" "K2BBQ\n" "K2BLA\n" "K2BLC\n" "K2BOG\n" "K2BQ\n" "K2BQW\n" "K2BW\n" "K2BX\n" "K2CAF\n" "K2CBI\n" "K2CC\n" "K2CDJ\n" "K2CF\n" "K2CIB\n" "K2CJ\n" "K2CM\n" "K2CS\n" "K2CUB\n" "K2CV\n" "K2CVG\n" "K2DAR\n" "K2DB\n" "K2DBK\n" "K2DC\n" "K2DEN\n" "K2DER\n" "K2DFC\n" "K2DGM\n" "K2DI\n" "K2DL\n" "K2DLJ\n" "K2DLS\n" "K2DM\n" "K2DP\n" "K2DRN\n" "K2DS\n" "K2DSL\n" "K2DSL/4\n" "K2DUX\n" "K2EEF\n" "K2EGJ\n" "K2EK\n" "K2EKM\n" "K2EN\n" "K2EP\n" "K2ER\n" "K2ERG\n" "K2ESE\n" "K2EUH\n" "K2FF\n" "K2FJ\n" "K2FL\n" "K2FU\n" "K2FW\n" "K2GE\n" "K2GEK\n" "K2GER\n" "K2GIL\n" "K2GJJ\n" "K2GLS\n" "K2GMY\n" "K2GN\n" "K2GNR\n" "K2GNR/7\n" "K2GSP\n" "K2GTC\n" "K2GV\n" "K2GXT\n" "K2HGO\n" "K2HIG\n" "K2HK\n" "K2HL\n" "K2HN\n" "K2HPV\n" "K2HQ\n" "K2HSV\n" "K2HT\n" "K2HTO\n" "K2HVE\n" "K2IC\n" "K2ID\n" "K2IGW\n" "K2IL\n" "K2ITT\n" "K2IUC\n" "K2IWR\n" "K2IXQ\n" "K2IY\n" "K2IZ\n" "K2JAO\n" "K2JAY\n" "K2JMY\n" "K2JT\n" "K2KEY\n" "K2KNB\n" "K2KQ\n" "K2KR\n" "K2KSH\n" "K2KW\n" "K2LE\n" "K2LML\n" "K2LNS\n" "K2LP\n" "K2LRE\n" "K2LS\n" "K2LTS\n" "K2MAI\n" "K2MD\n" "K2MEN\n" "K2MFW\n" "K2MFY\n" "K2MGR\n" "K2MK\n" "K2MLB\n" "K2MM\n" "K2MME\n" "K2MMO\n" "K2MMW\n" "K2MO\n" "K2MP\n" "K2MUB\n" "K2NDR\n" "K2NF\n" "K2NG\n" "K2NJ\n" "K2NNY\n" "K2NRC\n" "K2NV\n" "K2NV/VE3\n" "K2NYG\n" "K2OAK\n" "K2ODC\n" "K2OEK\n" "K2OF\n" "K2OGD\n" "K2OGD/4\n" "K2OID\n" "K2OK\n" "K2ONP\n" "K2OO\n" "K2OQA\n" "K2OS\n" "K2OVS\n" "K2OWE\n" "K2OWR\n" "K2PF\n" "K2PGB\n" "K2PH\n" "K2PK\n" "K2PLF\n" "K2PO\n" "K2PO/7\n" "K2PS\n" "K2PSD\n" "K2PW\n" "K2QD\n" "K2QDY\n" "K2QMF\n" "K2QNU\n" "K2QO\n" "K2QPN\n" "K2QQ\n" "K2QY\n" "K2RB\n" "K2RD\n" "K2RDX\n" "K2RED\n" "K2RET\n" "K2RI\n" "K2RIG\n" "K2RMA\n" "K2RNY\n" "K2RP\n" "K2RPC\n" "K2RR\n" "K2RRV\n" "K2RS\n" "K2RSB\n" "K2RSK\n" "K2SA\n" "K2SAX\n" "K2SD\n" "K2SFS\n" "K2SG\n" "K2SGH\n" "K2SHZ\n" "K2SI\n" "K2SJ\n" "K2SLZ\n" "K2SM\n" "K2SMC\n" "K2SQS\n" "K2SR\n" "K2SS\n" "K2STO\n" "K2SX\n" "K2SZ\n" "K2TB\n" "K2TD\n" "K2TE\n" "K2TGI\n" "K2TGW\n" "K2TJ\n" "K2TJJ\n" "K2TL\n" "K2TO\n" "K2TQC\n" "K2TR\n" "K2TT\n" "K2TTT\n" "K2TV\n" "K2TVY\n" "K2TW\n" "K2TWI\n" "K2TWK\n" "K2TZ\n" "K2UC\n" "K2UF\n" "K2UFT\n" "K2ULF\n" "K2UM\n" "K2UO\n" "K2UOP\n" "K2UR\n" "K2UT\n" "K2UTC\n" "K2UU\n" "K2UV\n" "K2UX\n" "K2UY\n" "K2VCO\n" "K2VNS\n" "K2VPX\n" "K2VUI\n" "K2VV\n" "K2VX\n" "K2VY\n" "K2VZ\n" "K2WCT\n" "K2WG\n" "K2WH\n" "K2WK\n" "K2WO\n" "K2WOP\n" "K2WR\n" "K2WU\n" "K2XA\n" "K2XB\n" "K2XC\n" "K2XE\n" "K2XF\n" "K2XN\n" "K2XR\n" "K2XT\n" "K2XX\n" "K2YEH\n" "K2YG\n" "K2YR\n" "K2YY\n" "K2YYD\n" "K2YZO\n" "K2ZB\n" "K2ZC\n" "K2ZF\n" "K2ZJ\n" "K2ZQ\n" "K2ZR\n" "K2ZR/4\n" "K2ZS\n" "K2ZVI\n" "K3AFR\n" "K3AJ\n" "K3AN\n" "K3AQ\n" "K3ARK\n" "K3ASK\n" "K3ATO\n" "K3AU\n" "K3BBB\n" "K3BDI\n" "K3BEQ\n" "K3BEV\n" "K3BFQ\n" "K3BHX\n" "K3BSY\n" "K3BTK\n" "K3BU\n" "K3BVQ\n" "K3BVU\n" "K3BYU\n" "K3BZ\n" "K3CB\n" "K3CDQ\n" "K3CKT\n" "K3CO\n" "K3CQ\n" "K3CR\n" "K3CSL\n" "K3CT\n" "K3CXB\n" "K3DCW\n" "K3DE\n" "K3DI\n" "K3DJ\n" "K3DMG\n" "K3DNE\n" "K3DOS\n" "K3DQ\n" "K3DQB\n" "K3DYU\n" "K3EE\n" "K3EIN\n" "K3EL\n" "K3EP\n" "K3ERN\n" "K3EST\n" "K3FGO\n" "K3FH\n" "K3FH/4\n" "K3FIV\n" "K3FN\n" "K3FOP\n" "K3FP\n" "K3FS\n" "K3FT\n" "K3FWG\n" "K3FXR\n" "K3GC\n" "K3GEG\n" "K3GEN\n" "K3GEV\n" "K3GGN\n" "K3GHH\n" "K3GK\n" "K3GM\n" "K3GMT\n" "K3GP\n" "K3GP/8\n" "K3GW\n" "K3GWK\n" "K3GY\n" "K3GYS\n" "K3HH\n" "K3HP\n" "K3HR\n" "K3HX\n" "K3HY\n" "K3IA\n" "K3IE\n" "K3II\n" "K3IPK\n" "K3ISH\n" "K3IU\n" "K3IVO\n" "K3IXD\n" "K3IXD/4\n" "K3IZ\n" "K3JA\n" "K3JD\n" "K3JHT\n" "K3JJG\n" "K3JLM\n" "K3JMH\n" "K3JPW\n" "K3JRR\n" "K3JT\n" "K3JT/8\n" "K3JVB\n" "K3JWI\n" "K3JXO\n" "K3KE\n" "K3KK\n" "K3KN\n" "K3KNL\n" "K3KO\n" "K3KU\n" "K3LA\n" "K3LAB\n" "K3LB\n" "K3LJ\n" "K3LL\n" "K3LMR\n" "K3LP\n" "K3LPP\n" "K3LR\n" "K3LRH\n" "K3LS\n" "K3LU\n" "K3LUE\n" "K3MD\n" "K3MI\n" "K3MIM\n" "K3MIY\n" "K3MJ\n" "K3MJW\n" "K3MKZ\n" "K3MLT\n" "K3MM\n" "K3MOT\n" "K3MOV\n" "K3MQ\n" "K3MQP\n" "K3MRG\n" "K3MRK\n" "K3MSB\n" "K3MZ\n" "K3NA\n" "K3NC\n" "K3NCO\n" "K3ND\n" "K3NF\n" "K3NK\n" "K3NL\n" "K3NM\n" "K3NQV\n" "K3NRK\n" "K3NUI\n" "K3OD\n" "K3OK\n" "K3OMG\n" "K3OMI\n" "K3OMI/VE1\n" "K3ONW\n" "K3OO\n" "K3OOO\n" "K3OQ\n" "K3OQF\n" "K3ORS\n" "K3OSO\n" "K3OX\n" "K3PF\n" "K3PG\n" "K3PH\n" "K3PIN\n" "K3PP\n" "K3PSP\n" "K3PT\n" "K3PU\n" "K3PUR\n" "K3QDV\n" "K3QE\n" "K3QF\n" "K3QIA\n" "K3QT\n" "K3QX\n" "K3RA\n" "K3RCW\n" "K3RDA\n" "K3RH\n" "K3RJG\n" "K3RMB\n" "K3RN\n" "K3RNZ\n" "K3RR\n" "K3RSJ\n" "K3RU\n" "K3RV\n" "K3RWN\n" "K3RY\n" "K3SAE\n" "K3SEW\n" "K3SF\n" "K3SKB\n" "K3SOM\n" "K3STX\n" "K3SUI\n" "K3SV\n" "K3SWZ\n" "K3SX\n" "K3SXA\n" "K3TC\n" "K3TD\n" "K3TEJ\n" "K3TLP\n" "K3TM\n" "K3TN\n" "K3TP\n" "K3TRM\n" "K3TUF\n" "K3TW\n" "K3TW/4\n" "K3TX\n" "K3UA\n" "K3UC\n" "K3UD\n" "K3UG\n" "K3UI\n" "K3UK\n" "K3UL\n" "K3USC\n" "K3UU\n" "K3UV\n" "K3VA\n" "K3VAR\n" "K3VAT\n" "K3VED\n" "K3VIG\n" "K3VIN\n" "K3VJ\n" "K3VN\n" "K3VOA\n" "K3VX\n" "K3WA\n" "K3WC\n" "K3WD\n" "K3WGR\n" "K3WI\n" "K3WJV\n" "K3WM\n" "K3WT\n" "K3WU\n" "K3WW\n" "K3WWP\n" "K3XA\n" "K3XO\n" "K3YDX\n" "K3YG\n" "K3YH\n" "K3YP\n" "K3ZA\n" "K3ZJ\n" "K3ZM\n" "K3ZMJ\n" "K3ZO\n" "K3ZQ\n" "K3ZV\n" "K3ZXL\n" "K3ZZ\n" "K4AAB\n" "K4AAZ\n" "K4AB\n" "K4ACG\n" "K4ADI\n" "K4ADJ\n" "K4ADR\n" "K4ADU\n" "K4ADV\n" "K4AEN\n" "K4AG\n" "K4AGT\n" "K4AL\n" "K4ALE\n" "K4AMC\n" "K4AMI\n" "K4AMW\n" "K4AOC\n" "K4AP\n" "K4APG\n" "K4ARC\n" "K4ARL\n" "K4ARO\n" "K4AU\n" "K4AUX\n" "K4AVF\n" "K4AVU\n" "K4AVX\n" "K4AWM\n" "K4AZV\n" "K4BAI\n" "K4BFT\n" "K4BM\n" "K4BN\n" "K4BNC\n" "K4BOE\n" "K4BP\n" "K4BQP\n" "K4BRI\n" "K4BSD\n" "K4BSK\n" "K4BTC\n" "K4BX\n" "K4BYF\n" "K4CA\n" "K4CC\n" "K4CEB\n" "K4CIA\n" "K4CIT\n" "K4CJB\n" "K4CJN\n" "K4CKD\n" "K4CMC\n" "K4CMS\n" "K4CNW\n" "K4CQB\n" "K4CQW\n" "K4CRM\n" "K4CU\n" "K4CUB\n" "K4CVL\n" "K4CWW\n" "K4CX\n" "K4CZ\n" "K4DAS\n" "K4DES\n" "K4DGJ\n" "K4DJ\n" "K4DJG\n" "K4DK\n" "K4DLG\n" "K4DLI\n" "K4DMH\n" "K4DPF\n" "K4DSP\n" "K4DVD\n" "K4DXA\n" "K4DXR\n" "K4DXU\n" "K4DXV\n" "K4DY\n" "K4DZR\n" "K4EA\n" "K4EAK\n" "K4EC\n" "K4ECP\n" "K4EDI\n" "K4EET\n" "K4EFZ\n" "K4EHI\n" "K4EHT\n" "K4EJ\n" "K4EJQ\n" "K4EOR\n" "K4ESA\n" "K4ESB\n" "K4EU\n" "K4EWG\n" "K4EYE\n" "K4EZY\n" "K4FAU\n" "K4FCC\n" "K4FCG\n" "K4FDS\n" "K4FJ\n" "K4FJW\n" "K4FK\n" "K4FO\n" "K4FOY\n" "K4FP\n" "K4FPF\n" "K4FRC\n" "K4FT\n" "K4FTO\n" "K4FV\n" "K4FW\n" "K4FX\n" "K4FXN\n" "K4FYM\n" "K4GBH\n" "K4GCD\n" "K4GCR\n" "K4GDW\n" "K4GHS\n" "K4GK\n" "K4GKD\n" "K4GM\n" "K4GMH\n" "K4GOP\n" "K4GSG\n" "K4GSO\n" "K4GT\n" "K4GTM\n" "K4HA\n" "K4HAL\n" "K4HFQ\n" "K4HGG\n" "K4HGX\n" "K4HJZ\n" "K4HMB\n" "K4HO\n" "K4HPP\n" "K4HQK\n" "K4HR\n" "K4HTA\n" "K4HTY\n" "K4HUD\n" "K4HV\n" "K4IA\n" "K4IB\n" "K4ICL\n" "K4ICY\n" "K4IDD\n" "K4IE\n" "K4IJ\n" "K4IJQ\n" "K4IN\n" "K4IOE\n" "K4IQJ\n" "K4IQJ/4\n" "K4IRI\n" "K4ISV\n" "K4IU\n" "K4IUD\n" "K4IX\n" "K4JAB\n" "K4JAF\n" "K4JBJ\n" "K4JC\n" "K4JEB\n" "K4JER\n" "K4JJF\n" "K4JJQ\n" "K4JK\n" "K4JLD\n" "K4JO\n" "K4JP\n" "K4JPC\n" "K4JPD\n" "K4JPG\n" "K4JPN\n" "K4JRA\n" "K4JRB\n" "K4JRS\n" "K4JSI\n" "K4JTT\n" "K4JUZ\n" "K4JVK\n" "K4JWF\n" "K4KAL\n" "K4KAY\n" "K4KBR\n" "K4KFN\n" "K4KG\n" "K4KGG\n" "K4KGT\n" "K4KIU\n" "K4KL\n" "K4KO\n" "K4KP\n" "K4KR\n" "K4KSR\n" "K4KTG\n" "K4KV\n" "K4KYY\n" "K4KZ\n" "K4KZO\n" "K4KZZ\n" "K4LA\n" "K4LJ\n" "K4LJA\n" "K4LNN\n" "K4LO\n" "K4LQ\n" "K4LRP\n" "K4LRP/2\n" "K4LRX\n" "K4LSU\n" "K4LT\n" "K4LTA\n" "K4LW\n" "K4LY\n" "K4MA\n" "K4MCG\n" "K4MCK\n" "K4MDX\n" "K4MEW\n" "K4MF\n" "K4MGA\n" "K4MIA\n" "K4MIL\n" "K4ML\n" "K4MM\n" "K4MNE\n" "K4MOA\n" "K4MOG\n" "K4MPE\n" "K4MQG\n" "K4MQM\n" "K4MSR\n" "K4MSS\n" "K4MU\n" "K4MWB\n" "K4MX\n" "K4MYA\n" "K4NAU\n" "K4NAX\n" "K4NFA\n" "K4NFX\n" "K4NIN\n" "K4NJK\n" "K4NKY\n" "K4NLL\n" "K4NNX\n" "K4NO\n" "K4NOP\n" "K4NP\n" "K4NTO\n" "K4NV\n" "K4NVA\n" "K4NVJ\n" "K4NYS\n" "K4OB\n" "K4OCE\n" "K4OD\n" "K4ODL\n" "K4OJ\n" "K4OMG\n" "K4OO\n" "K4ORD\n" "K4OSO\n" "K4PB\n" "K4PBY\n" "K4PDJ\n" "K4PDM\n" "K4PG\n" "K4PHE\n" "K4PI\n" "K4PIC\n" "K4PJ\n" "K4PPK\n" "K4PPQ\n" "K4PRO\n" "K4PRP\n" "K4PUF\n" "K4PV\n" "K4PX\n" "K4PZC\n" "K4QD\n" "K4QL\n" "K4QO\n" "K4QPL\n" "K4QU\n" "K4QVK\n" "K4QXX\n" "K4RAF\n" "K4RBA\n" "K4RCG\n" "K4RDU\n" "K4REB\n" "K4RFE\n" "K4RG\n" "K4RGR\n" "K4RH\n" "K4RKQ\n" "K4RLC\n" "K4RM\n" "K4RMC\n" "K4RO\n" "K4RR\n" "K4RRF\n" "K4RST\n" "K4RT\n" "K4RUM\n" "K4RV\n" "K4RW\n" "K4RWP\n" "K4RXR\n" "K4SAC\n" "K4SAV\n" "K4SAW\n" "K4SKB\n" "K4SKY\n" "K4SN\n" "K4SO\n" "K4SPO\n" "K4SQ\n" "K4SSU\n" "K4ST\n" "K4STN\n" "K4SUS\n" "K4SV\n" "K4SWE\n" "K4SWJ\n" "K4SX\n" "K4TB\n" "K4TCM\n" "K4TD\n" "K4TDW\n" "K4TEA\n" "K4TER\n" "K4TI\n" "K4TJD\n" "K4TMC\n" "K4TNN\n" "K4TNP\n" "K4TP\n" "K4TR\n" "K4TRT\n" "K4TS\n" "K4TSU\n" "K4TT\n" "K4TVE\n" "K4TVO\n" "K4TWJ\n" "K4TX\n" "K4TXJ\n" "K4TZ\n" "K4UB\n" "K4UEE\n" "K4UFT\n" "K4UI\n" "K4UK\n" "K4UTE\n" "K4UTI\n" "K4UU\n" "K4UWH\n" "K4UY\n" "K4VAC\n" "K4VCU\n" "K4VHV\n" "K4VIG\n" "K4VRC\n" "K4VT\n" "K4VV\n" "K4VWK\n" "K4VX\n" "K4VXR\n" "K4WAM\n" "K4WB\n" "K4WES\n" "K4WFM\n" "K4WI\n" "K4WIP\n" "K4WJR\n" "K4WLS\n" "K4WMS\n" "K4WNW\n" "K4WOP\n" "K4WP\n" "K4WPM\n" "K4WPY\n" "K4WQ\n" "K4WS\n" "K4WW\n" "K4WWM\n" "K4WY\n" "K4WZ\n" "K4XB\n" "K4XD\n" "K4XG\n" "K4XI\n" "K4XL\n" "K4XLT\n" "K4XR\n" "K4XTC\n" "K4XU\n" "K4XXX\n" "K4XZ\n" "K4YA\n" "K4YBB\n" "K4YCF\n" "K4YDN\n" "K4YFH\n" "K4YFR\n" "K4YGD\n" "K4YHB\n" "K4YJ\n" "K4YKZ\n" "K4YMQ\n" "K4YP\n" "K4YR\n" "K4YRK\n" "K4YT\n" "K4YYD\n" "K4YYL\n" "K4ZGB\n" "K4ZGV\n" "K4ZH\n" "K4ZIN\n" "K4ZIW\n" "K4ZJ\n" "K4ZLE\n" "K4ZMV\n" "K4ZOO\n" "K4ZRJ\n" "K4ZTL\n" "K4ZW\n" "K4ZYU\n" "K4ZZ\n" "K5AAD\n" "K5AB\n" "K5ACO\n" "K5ADA\n" "K5AEM\n" "K5AF\n" "K5AJK\n" "K5AM\n" "K5ANR\n" "K5AR\n" "K5ATS\n" "K5AUP\n" "K5AUW\n" "K5AV\n" "K5AVH\n" "K5AVY\n" "K5AX\n" "K5AY\n" "K5BAT\n" "K5BCN\n" "K5BDM\n" "K5BG\n" "K5BOC\n" "K5BTK\n" "K5BUD\n" "K5BWV\n" "K5BWV/0\n" "K5BZH\n" "K5CBS\n" "K5CFA\n" "K5CI\n" "K5CID\n" "K5CM\n" "K5CS\n" "K5CWC\n" "K5CX\n" "K5DB\n" "K5DD\n" "K5DEL\n" "K5DEY\n" "K5DF\n" "K5DH\n" "K5DHY\n" "K5DJZ\n" "K5DKH\n" "K5DMC\n" "K5DNL\n" "K5DOE\n" "K5DOG\n" "K5DU\n" "K5DWI\n" "K5EA\n" "K5ECI\n" "K5EEE\n" "K5EJ\n" "K5EK\n" "K5ENS\n" "K5ER\n" "K5ESW\n" "K5EUO\n" "K5EW\n" "K5EWJ\n" "K5EWS\n" "K5FA\n" "K5FG\n" "K5FMC\n" "K5FNQ\n" "K5FO\n" "K5FP\n" "K5FR\n" "K5FSE\n" "K5FUV\n" "K5FXB\n" "K5GA\n" "K5GAT\n" "K5GH\n" "K5GKC\n" "K5GM\n" "K5GMT\n" "K5GO\n" "K5GQ\n" "K5GS\n" "K5GVP\n" "K5GY\n" "K5GZR\n" "K5HCT\n" "K5HDU\n" "K5HDX\n" "K5HGX\n" "K5HK\n" "K5HQV\n" "K5HTE\n" "K5HUT\n" "K5HW\n" "K5HX\n" "K5ICW\n" "K5IFJ\n" "K5IID\n" "K5IS\n" "K5IU\n" "K5IX\n" "K5IX/KH6\n" "K5IZ\n" "K5IZO\n" "K5JAW\n" "K5JP\n" "K5JRN\n" "K5JRW\n" "K5JSW\n" "K5JTH\n" "K5JUC\n" "K5JX\n" "K5JYD\n" "K5KA\n" "K5KAB\n" "K5KC\n" "K5KDX\n" "K5KEE\n" "K5KG\n" "K5KJ\n" "K5KLA\n" "K5KM\n" "K5KS\n" "K5KT\n" "K5KT/6\n" "K5KUA\n" "K5KV\n" "K5KVN\n" "K5LAD\n" "K5LBM\n" "K5LBU\n" "K5LC\n" "K5LG\n" "K5LH\n" "K5LJ\n" "K5LRS\n" "K5LSU\n" "K5LU\n" "K5LXK\n" "K5MA\n" "K5MBA\n" "K5MDX\n" "K5ME\n" "K5MEZ\n" "K5MH\n" "K5ML\n" "K5MMH\n" "K5MO\n" "K5MOG\n" "K5MOZ\n" "K5MR\n" "K5MRM\n" "K5MV\n" "K5MVZ\n" "K5NA\n" "K5NAA\n" "K5ND\n" "K5NDB\n" "K5NDT\n" "K5NOF\n" "K5NOW\n" "K5NTT\n" "K5NU\n" "K5NX\n" "K5NZ\n" "K5OAI\n" "K5OG\n" "K5OI\n" "K5OO\n" "K5OOL\n" "K5OR\n" "K5OVW\n" "K5PAR\n" "K5PAX\n" "K5PBR\n" "K5PC\n" "K5PEW\n" "K5PI\n" "K5PO\n" "K5PQ\n" "K5PSH\n" "K5PX\n" "K5QB\n" "K5QBG\n" "K5QEA\n" "K5QED\n" "K5QJ\n" "K5QNK\n" "K5QQ\n" "K5QR\n" "K5QU\n" "K5QX\n" "K5QXJ\n" "K5QY\n" "K5RA\n" "K5RC\n" "K5RCD\n" "K5RHZ\n" "K5RJI\n" "K5RK\n" "K5RN\n" "K5RNB\n" "K5RQ\n" "K5RR\n" "K5RRD\n" "K5RS\n" "K5RT\n" "K5RX\n" "K5RXQ\n" "K5SEE\n" "K5SF\n" "K5SI\n" "K5SL\n" "K5SM\n" "K5SNA\n" "K5SOG\n" "K5SOR\n" "K5SS\n" "K5STZ\n" "K5SUL\n" "K5SWW\n" "K5TA\n" "K5TC\n" "K5TDA\n" "K5TER\n" "K5TF\n" "K5TFA\n" "K5TGS\n" "K5TKY\n" "K5TQ\n" "K5TQP\n" "K5TR\n" "K5TRM\n" "K5TT\n" "K5TTT\n" "K5TVC\n" "K5TXG\n" "K5UA\n" "K5UC\n" "K5UIC\n" "K5UN\n" "K5UO\n" "K5UR\n" "K5UTG\n" "K5UV\n" "K5UZ\n" "K5VIP\n" "K5VJZ\n" "K5VR\n" "K5VRX\n" "K5VU\n" "K5VUY\n" "K5VYT\n" "K5WA\n" "K5WAF\n" "K5WBM\n" "K5WDW\n" "K5WE\n" "K5WES\n" "K5WI\n" "K5WK\n" "K5WLQ\n" "K5WMH\n" "K5WMH/5\n" "K5WNH\n" "K5WO\n" "K5WPN\n" "K5WQG\n" "K5WSC\n" "K5WTA\n" "K5WW\n" "K5XA\n" "K5XG\n" "K5XH\n" "K5XM\n" "K5XR\n" "K5XRF\n" "K5XT\n" "K5XU\n" "K5XY\n" "K5YA\n" "K5YAA\n" "K5YC\n" "K5YCM\n" "K5YG\n" "K5YM\n" "K5YNZ\n" "K5YU\n" "K5ZCJ\n" "K5ZD\n" "K5ZE\n" "K5ZG\n" "K5ZK\n" "K5ZO\n" "K5ZQ\n" "K6AA\n" "K6AAB\n" "K6AAX\n" "K6ACJ\n" "K6AH\n" "K6AHQ\n" "K6AIA\n" "K6AIM\n" "K6AKR\n" "K6ALE\n" "K6AM\n" "K6AN\n" "K6ANP\n" "K6AO\n" "K6AQL\n" "K6AUC\n" "K6AW\n" "K6AWB\n" "K6AWO\n" "K6AWR\n" "K6BBQ\n" "K6BDK\n" "K6BEW\n" "K6BF\n" "K6BHH\n" "K6BIR\n" "K6BJ\n" "K6BL\n" "K6BR\n" "K6BRA\n" "K6BV\n" "K6BY\n" "K6BZS\n" "K6CDJ\n" "K6CF\n" "K6CO\n" "K6CRC\n" "K6CSL\n" "K6CSL/7\n" "K6CTA\n" "K6CU\n" "K6DAJ\n" "K6DBG\n" "K6DBS\n" "K6DBW\n" "K6DEX\n" "K6DF\n" "K6DGW\n" "K6DK\n" "K6DLC\n" "K6DLV\n" "K6DW\n" "K6DXX\n" "K6DY\n" "K6ED\n" "K6EE\n" "K6EEE\n" "K6EEP\n" "K6EGF\n" "K6EI\n" "K6EL\n" "K6ELE\n" "K6EM\n" "K6EMI\n" "K6EP\n" "K6ERT\n" "K6ETM\n" "K6EU\n" "K6EVR\n" "K6EZ\n" "K6FAF\n" "K6FFY\n" "K6FG\n" "K6FI\n" "K6FO\n" "K6FQ\n" "K6FR\n" "K6FW\n" "K6FX\n" "K6GAK\n" "K6GCN\n" "K6GDP\n" "K6GE\n" "K6GEP\n" "K6GFB\n" "K6GFJ\n" "K6GGO\n" "K6GJ\n" "K6GN\n" "K6GO\n" "K6GPB\n" "K6GRD\n" "K6GRJ\n" "K6GT\n" "K6GVG\n" "K6GXO\n" "K6GYL\n" "K6GZA\n" "K6HCJ\n" "K6HFA\n" "K6HGF\n" "K6HJM\n" "K6HL\n" "K6HNZ\n" "K6HP\n" "K6HR\n" "K6HRT\n" "K6HRU\n" "K6IAM\n" "K6IC\n" "K6IDX\n" "K6IF\n" "K6IFF\n" "K6III\n" "K6IMZ\n" "K6IP\n" "K6IT\n" "K6JAJ\n" "K6JAT\n" "K6JEB\n" "K6JEY\n" "K6JF\n" "K6JGM\n" "K6JH\n" "K6JHD\n" "K6JHL\n" "K6JHX\n" "K6JJ\n" "K6JL\n" "K6JRA\n" "K6JRY\n" "K6JS\n" "K6JSV\n" "K6JW\n" "K6JWB\n" "K6JYG\n" "K6KAL\n" "K6KE\n" "K6KII\n" "K6KK\n" "K6KLY\n" "K6KO\n" "K6KQV\n" "K6KR\n" "K6KR/7\n" "K6KRD\n" "K6KV\n" "K6KW\n" "K6KY\n" "K6KYJ\n" "K6LA\n" "K6LAC\n" "K6LE\n" "K6LG\n" "K6LJC\n" "K6LL\n" "K6LMN\n" "K6LPO\n" "K6LQP\n" "K6LRG\n" "K6LRN\n" "K6LX\n" "K6LZ\n" "K6MB\n" "K6MBY\n" "K6MC\n" "K6MDJ\n" "K6ME\n" "K6MEE\n" "K6MI\n" "K6MJ\n" "K6MKF\n" "K6ML\n" "K6MLF\n" "K6MM\n" "K6MYC\n" "K6NA\n" "K6ND\n" "K6NDG\n" "K6NDV\n" "K6NO\n" "K6NOD\n" "K6NQY\n" "K6NR\n" "K6NUG\n" "K6NV\n" "K6OA\n" "K6OGO\n" "K6OI\n" "K6OJ\n" "K6OKW\n" "K6OM\n" "K6OO\n" "K6OP\n" "K6OQ\n" "K6OY\n" "K6PAU\n" "K6PB\n" "K6PBQ\n" "K6PCQ\n" "K6PJ\n" "K6PKT\n" "K6PUD\n" "K6PZB\n" "K6QAX\n" "K6QD\n" "K6QG\n" "K6QK\n" "K6QU\n" "K6RAD\n" "K6RB\n" "K6RBS\n" "K6RC\n" "K6REF\n" "K6RF\n" "K6RFM\n" "K6RG\n" "K6RIM\n" "K6RJ\n" "K6RJP\n" "K6RJY\n" "K6RM\n" "K6RN\n" "K6RNK\n" "K6RR\n" "K6RRA\n" "K6RTC\n" "K6RV\n" "K6SAT\n" "K6SEM\n" "K6SGH\n" "K6SMF\n" "K6SMO\n" "K6SQL\n" "K6SRA\n" "K6SRZ\n" "K6SSJ\n" "K6ST\n" "K6STA\n" "K6SU\n" "K6SV\n" "K6SXA\n" "K6SY\n" "K6TA\n" "K6TD\n" "K6TI\n" "K6TQM\n" "K6TTT\n" "K6TU\n" "K6TUJ\n" "K6TV\n" "K6UD\n" "K6UF\n" "K6UFO\n" "K6UIZ\n" "K6UM\n" "K6UNR\n" "K6UNT\n" "K6UUW\n" "K6UW\n" "K6UZB\n" "K6VAR\n" "K6VFF\n" "K6VIA\n" "K6VMD\n" "K6VMN\n" "K6VMV\n" "K6VNX\n" "K6VO\n" "K6VOA\n" "K6VRS\n" "K6VUG\n" "K6VVA\n" "K6VVK\n" "K6VWL\n" "K6WAC\n" "K6WC\n" "K6WG\n" "K6WH\n" "K6WRJ\n" "K6WS\n" "K6WSC\n" "K6WV\n" "K6WX\n" "K6WY\n" "K6XC\n" "K6XJ\n" "K6XM\n" "K6XN\n" "K6XT\n" "K6XV\n" "K6XX\n" "K6YA\n" "K6YK\n" "K6YLG\n" "K6YP\n" "K6YR\n" "K6YRA\n" "K6YS\n" "K6YT\n" "K6YUI\n" "K6YV\n" "K6ZB\n" "K6ZCL\n" "K6ZH\n" "K6ZM\n" "K6ZRH\n" "K6ZSR\n" "K6ZTA\n" "K6ZZ\n" "K7AA\n" "K7AAE\n" "K7ABC\n" "K7ABL\n" "K7ABV\n" "K7ACS\n" "K7ACZ\n" "K7AED\n" "K7AMS\n" "K7AO\n" "K7AR\n" "K7ARJ\n" "K7AWB\n" "K7BAN\n" "K7BBR\n" "K7BE\n" "K7BG\n" "K7BHM\n" "K7BIG\n" "K7BLS\n" "K7BNY\n" "K7BTW\n" "K7BUD\n" "K7BX\n" "K7CA\n" "K7CAT\n" "K7CCC\n" "K7CF\n" "K7CMR\n" "K7CMZ\n" "K7CS\n" "K7CTR\n" "K7CU\n" "K7DAA\n" "K7DBU\n" "K7DD\n" "K7DHD\n" "K7DNH\n" "K7DPS\n" "K7DR\n" "K7DRA\n" "K7DS\n" "K7DSE\n" "K7DSL\n" "K7DX\n" "K7DZ\n" "K7EA\n" "K7EAR\n" "K7EDX\n" "K7EG\n" "K7EIQ\n" "K7EKM\n" "K7EM\n" "K7ENA\n" "K7EUG\n" "K7EV\n" "K7EY\n" "K7FA\n" "K7FD\n" "K7FED\n" "K7FF\n" "K7FU\n" "K7GA\n" "K7GGG\n" "K7GIM\n" "K7GK\n" "K7GLM\n" "K7GMF\n" "K7GO\n" "K7GQ\n" "K7GS\n" "K7GSE\n" "K7GT\n" "K7GUS\n" "K7GZP\n" "K7HBN\n" "K7HC\n" "K7HD\n" "K7HIL\n" "K7HP\n" "K7HPH\n" "K7HPT\n" "K7HRT\n" "K7HV\n" "K7IA\n" "K7IB\n" "K7IDX\n" "K7IDX/7\n" "K7IE\n" "K7II\n" "K7IK\n" "K7INA\n" "K7IP\n" "K7IR\n" "K7IWH\n" "K7JA\n" "K7JAN\n" "K7JBQ\n" "K7JCA\n" "K7JE\n" "K7JH\n" "K7JI\n" "K7JIZ\n" "K7JJ\n" "K7JLF\n" "K7JNX\n" "K7JPF\n" "K7JQ\n" "K7JRB\n" "K7JRW\n" "K7JSM\n" "K7KAJ\n" "K7KAR\n" "K7KC\n" "K7KF\n" "K7KJ\n" "K7KMR\n" "K7KMS\n" "K7KR\n" "K7KSO\n" "K7KU\n" "K7LAY\n" "K7LAZ\n" "K7LFY\n" "K7LJ\n" "K7LL\n" "K7LNP\n" "K7LR\n" "K7LTF\n" "K7LU\n" "K7LUH\n" "K7LV\n" "K7LY\n" "K7MDH\n" "K7MH\n" "K7MHI\n" "K7MI\n" "K7MJD\n" "K7MM\n" "K7MM/VE2\n" "K7MO\n" "K7MOA\n" "K7MRU\n" "K7MS\n" "K7MTR\n" "K7MY\n" "K7MZ\n" "K7NAA\n" "K7NCG\n" "K7NEJ\n" "K7NFB\n" "K7NJ\n" "K7NK\n" "K7NM\n" "K7NN\n" "K7NNR\n" "K7NV\n" "K7NWM\n" "K7NWR\n" "K7NWS\n" "K7OA\n" "K7OG\n" "K7OM\n" "K7OM/4\n" "K7ON\n" "K7ONP\n" "K7ORY\n" "K7OV\n" "K7OVG\n" "K7OVM\n" "K7OVW\n" "K7OX\n" "K7PAP\n" "K7PDW\n" "K7PGL\n" "K7PI\n" "K7PJT\n" "K7PKT\n" "K7PMK\n" "K7PRW\n" "K7PU\n" "K7PUC\n" "K7PWL\n" "K7PWN\n" "K7PX\n" "K7QBO\n" "K7QI\n" "K7QMM\n" "K7QQ\n" "K7QXG\n" "K7QYY\n" "K7RB\n" "K7RDG\n" "K7RE\n" "K7RE/0\n" "K7REL\n" "K7RF\n" "K7RFW\n" "K7RI\n" "K7RL\n" "K7RLD\n" "K7RLF\n" "K7RMJ\n" "K7RP\n" "K7RR\n" "K7RSM\n" "K7RST\n" "K7RX\n" "K7RZW\n" "K7SA\n" "K7SAM\n" "K7SC\n" "K7SCX\n" "K7SDW\n" "K7SEX\n" "K7SF\n" "K7SFN\n" "K7SID\n" "K7SJ\n" "K7SKH\n" "K7SMW\n" "K7SO\n" "K7SP\n" "K7SS\n" "K7STU\n" "K7SU\n" "K7SV\n" "K7SX\n" "K7SYS\n" "K7SZ\n" "K7SZ/4\n" "K7TD\n" "K7TFY\n" "K7TJ\n" "K7TJR\n" "K7TLX\n" "K7TM\n" "K7TOK\n" "K7TP\n" "K7TPD\n" "K7TQ\n" "K7TR\n" "K7TR/HR8\n" "K7TRK\n" "K7UA\n" "K7ULS\n" "K7UN\n" "K7UNZ\n" "K7UP\n" "K7UPJ\n" "K7UT\n" "K7VAY\n" "K7VI\n" "K7VIC\n" "K7VIT\n" "K7VL\n" "K7VM\n" "K7VS\n" "K7VU\n" "K7VZX\n" "K7WA\n" "K7WE\n" "K7WIN\n" "K7WK\n" "K7WLF\n" "K7WLF/4\n" "K7WM\n" "K7WP\n" "K7WQ\n" "K7WXO\n" "K7WXW\n" "K7XB\n" "K7XC\n" "K7XE\n" "K7XH\n" "K7XQ\n" "K7XV\n" "K7YDL\n" "K7YZ\n" "K7YZO\n" "K7ZA\n" "K7ZAD\n" "K7ZB\n" "K7ZD\n" "K7ZI\n" "K7ZO\n" "K7ZP\n" "K7ZQ\n" "K7ZS\n" "K7ZSD\n" "K7ZUM\n" "K7ZV\n" "K7ZX\n" "K7ZYV\n" "K7ZZ\n" "K7ZZX\n" "K8AA\n" "K8AAX\n" "K8AB\n" "K8AC\n" "K8AE\n" "K8AEX\n" "K8AJS\n" "K8AJX\n" "K8ALM\n" "K8AO\n" "K8AQM\n" "K8ATA\n" "K8AZ\n" "K8BB\n" "K8BBE\n" "K8BCK\n" "K8BEG\n" "K8BHU\n" "K8BJ\n" "K8BL\n" "K8BN\n" "K8BSW\n" "K8BUF\n" "K8BVY\n" "K8BZ\n" "K8CAA\n" "K8CAR\n" "K8CC\n" "K8CHR\n" "K8CI\n" "K8CJQ\n" "K8CJY\n" "K8CMO\n" "K8CMR\n" "K8CN\n" "K8CQ\n" "K8CR\n" "K8CV\n" "K8CW\n" "K8CX\n" "K8CXM\n" "K8DAR\n" "K8DD\n" "K8DE\n" "K8DID\n" "K8DJC\n" "K8DJR\n" "K8DO\n" "K8DR\n" "K8DSL\n" "K8DSS\n" "K8DTW\n" "K8DV\n" "K8ED\n" "K8EE\n" "K8EEW\n" "K8EG\n" "K8EHB\n" "K8EHE\n" "K8EJ\n" "K8EM\n" "K8EMS\n" "K8EO\n" "K8ESQ\n" "K8EUR\n" "K8FB\n" "K8FC\n" "K8FF\n" "K8FG\n" "K8FH\n" "K8FL\n" "K8FN\n" "K8FP\n" "K8FUN\n" "K8FX\n" "K8GA\n" "K8GG\n" "K8GI\n" "K8GI/4\n" "K8GIM\n" "K8GL\n" "K8GLS\n" "K8GP\n" "K8GT\n" "K8GU\n" "K8GVK\n" "K8GVQ\n" "K8GW\n" "K8GWU\n" "K8HGY\n" "K8HK\n" "K8HLQ\n" "K8HMS\n" "K8HW\n" "K8HWW\n" "K8IA\n" "K8IAT\n" "K8IFK\n" "K8IJ\n" "K8IKW\n" "K8IR\n" "K8IRC\n" "K8ISK\n" "K8IU\n" "K8IY\n" "K8JA\n" "K8JD\n" "K8JK\n" "K8JLB\n" "K8JQ\n" "K8JRG\n" "K8JRM\n" "K8JWT\n" "K8KF\n" "K8KFJ\n" "K8KHZ\n" "K8KI\n" "K8KPE\n" "K8KPU\n" "K8KR\n" "K8KS\n" "K8KU\n" "K8KWT\n" "K8KY\n" "K8LCR\n" "K8LE\n" "K8LEE\n" "K8LES\n" "K8LF\n" "K8LJ\n" "K8LJK\n" "K8LN\n" "K8LSB\n" "K8LTG\n" "K8LV\n" "K8LY\n" "K8MAD\n" "K8MAJ\n" "K8MCN\n" "K8MD\n" "K8ME\n" "K8MEG\n" "K8MEM\n" "K8MFO\n" "K8MGK\n" "K8MJZ\n" "K8MLM\n" "K8MM\n" "K8MN\n" "K8MP\n" "K8MR\n" "K8MSQ\n" "K8MU\n" "K8MV\n" "K8MVZ\n" "K8MW\n" "K8MWO\n" "K8MXC\n" "K8MZ\n" "K8NA\n" "K8NAP\n" "K8ND\n" "K8NHR\n" "K8NI\n" "K8NK\n" "K8NKQ\n" "K8NMG\n" "K8NNU\n" "K8NOW\n" "K8NOZ\n" "K8NU\n" "K8NVR\n" "K8NW\n" "K8NWD\n" "K8NYG\n" "K8NYM\n" "K8NYY\n" "K8NZ\n" "K8OM\n" "K8OOK\n" "K8OQL\n" "K8OSF\n" "K8OT\n" "K8OWL\n" "K8OZ\n" "K8PG\n" "K8PO\n" "K8PP\n" "K8PVD\n" "K8PWL\n" "K8QF\n" "K8QFH\n" "K8QH\n" "K8QI\n" "K8QJO\n" "K8QKY\n" "K8QM\n" "K8QWY\n" "K8RA\n" "K8RAT\n" "K8RD\n" "K8RDJ\n" "K8RDN\n" "K8RGM\n" "K8RJH\n" "K8RJM\n" "K8RJW\n" "K8RMC\n" "K8RNM\n" "K8ROX\n" "K8RS\n" "K8RWL\n" "K8RYU\n" "K8SAK\n" "K8SB\n" "K8SCH\n" "K8SDK\n" "K8SDX\n" "K8SEM\n" "K8SIA\n" "K8SIX\n" "K8SJE\n" "K8SM\n" "K8SN\n" "K8SSB\n" "K8SVT\n" "K8SWD\n" "K8SYH\n" "K8THU\n" "K8TJM\n" "K8TOM\n" "K8TS\n" "K8TV\n" "K8TVD\n" "K8TW\n" "K8TWA\n" "K8UC\n" "K8UP\n" "K8UPG\n" "K8UPR\n" "K8UT\n" "K8UU\n" "K8UV\n" "K8VFR\n" "K8VFV\n" "K8VKA\n" "K8VUS\n" "K8VW\n" "K8VYA\n" "K8VZD\n" "K8WAY\n" "K8WDN\n" "K8WDQ\n" "K8WFL\n" "K8WHA\n" "K8WV\n" "K8YAH\n" "K8YC\n" "K8YFM\n" "K8YM\n" "K8YN\n" "K8YQR\n" "K8YSE\n" "K8YSU\n" "K8YTO\n" "K8ZBY\n" "K8ZEE\n" "K8ZH\n" "K8ZOG\n" "K8ZPR\n" "K8ZT\n" "K8ZTT\n" "K8ZZ\n" "K8ZZU\n" "K8ZZU/4\n" "K8ZZV\n" "K9ACX\n" "K9ADL\n" "K9AGW\n" "K9AHH\n" "K9AIH\n" "K9AJ\n" "K9ALP\n" "K9ANF\n" "K9ARF\n" "K9AU\n" "K9AUB\n" "K9AW\n" "K9AY\n" "K9BF\n" "K9BGL\n" "K9BJM\n" "K9BQL\n" "K9BTQ\n" "K9BWI\n" "K9BWQ\n" "K9CAN\n" "K9CC\n" "K9CG\n" "K9CGD\n" "K9CHP\n" "K9CHZ\n" "K9CIV\n" "K9CJ\n" "K9CS\n" "K9CT\n" "K9CU\n" "K9CW\n" "K9DA\n" "K9DCV\n" "K9DCW\n" "K9DIG\n" "K9DJ\n" "K9DN\n" "K9DR\n" "K9DT\n" "K9DTC\n" "K9DU\n" "K9DUR\n" "K9DX\n" "K9DXA\n" "K9DXL\n" "K9DY\n" "K9EA\n" "K9EBY\n" "K9EE\n" "K9EIF\n" "K9EMG\n" "K9EN\n" "K9ES\n" "K9EU\n" "K9EZ\n" "K9FBI\n" "K9FEN\n" "K9FF\n" "K9FI\n" "K9FMX\n" "K9FN\n" "K9FO\n" "K9FQC\n" "K9FUA\n" "K9FW\n" "K9FWH\n" "K9FY\n" "K9FZ\n" "K9GA\n" "K9GAJ\n" "K9GDT\n" "K9GLN\n" "K9GS\n" "K9GTH\n" "K9GTO\n" "K9GWB\n" "K9GY\n" "K9GYI\n" "K9HCK\n" "K9HN\n" "K9HUY\n" "K9IA\n" "K9IAC\n" "K9IDQ\n" "K9IDX\n" "K9IG\n" "K9IJ\n" "K9IL\n" "K9IMM\n" "K9ING\n" "K9IT\n" "K9IU\n" "K9IUA\n" "K9IUQ\n" "K9JA\n" "K9JAI\n" "K9JDV\n" "K9JE\n" "K9JF\n" "K9JF/7\n" "K9JG\n" "K9JIG\n" "K9JK\n" "K9JM\n" "K9JM/6\n" "K9JMB\n" "K9JO\n" "K9JOB\n" "K9JP\n" "K9JS\n" "K9JT\n" "K9JU\n" "K9JWI\n" "K9JWV\n" "K9JX\n" "K9JY\n" "K9JZZ\n" "K9KA\n" "K9KDE\n" "K9KDS\n" "K9KEJ\n" "K9KEU\n" "K9KFR\n" "K9KHW\n" "K9KK\n" "K9KL\n" "K9KLR\n" "K9KM\n" "K9KMD\n" "K9KNW\n" "K9KNZ\n" "K9KR\n" "K9KU\n" "K9KUZ\n" "K9LA\n" "K9LCR\n" "K9LGM\n" "K9LJ\n" "K9LJN\n" "K9LLI\n" "K9LOF\n" "K9LOF/5\n" "K9LZJ\n" "K9MA\n" "K9MBQ\n" "K9MDK\n" "K9MDO\n" "K9MI\n" "K9MK\n" "K9MM\n" "K9MMS\n" "K9MOT\n" "K9MQ\n" "K9MRD\n" "K9MU\n" "K9MUG\n" "K9MUG/4\n" "K9MV\n" "K9MW\n" "K9MWM\n" "K9MY\n" "K9NA\n" "K9NB\n" "K9NBR\n" "K9NN\n" "K9NO\n" "K9NR\n" "K9NU\n" "K9NW\n" "K9NZ\n" "K9OKK\n" "K9OM\n" "K9ON\n" "K9OQ\n" "K9OR\n" "K9OT\n" "K9OW\n" "K9OZ\n" "K9PG\n" "K9PGC\n" "K9PJ\n" "K9PLX\n" "K9PMV\n" "K9PPY\n" "K9PY\n" "K9QCW\n" "K9QH\n" "K9QLC\n" "K9QVB\n" "K9QVB/9\n" "K9RCE\n" "K9RDW\n" "K9RH\n" "K9RII\n" "K9RIM\n" "K9RJ\n" "K9RJO\n" "K9RJZ\n" "K9RM\n" "K9RO\n" "K9RON\n" "K9RS\n" "K9RU\n" "K9RX\n" "K9SD\n" "K9SE\n" "K9SEM\n" "K9SEX\n" "K9SG\n" "K9SH\n" "K9SKX\n" "K9SQL\n" "K9SSB\n" "K9SSH\n" "K9STH\n" "K9SUH\n" "K9SV\n" "K9TA\n" "K9TCD\n" "K9TEN\n" "K9TM\n" "K9TP\n" "K9TPT\n" "K9TRV\n" "K9TV\n" "K9TY\n" "K9UH\n" "K9UIY\n" "K9UK\n" "K9UP\n" "K9UQN\n" "K9US\n" "K9UT\n" "K9UW\n" "K9UWA\n" "K9UXZ\n" "K9VB\n" "K9VFU\n" "K9VIC\n" "K9VIS\n" "K9VS\n" "K9VSO\n" "K9VV\n" "K9WA\n" "K9WD\n" "K9WDY\n" "K9WEY\n" "K9WIS\n" "K9WJL\n" "K9WJU\n" "K9WKW\n" "K9WMS\n" "K9WN\n" "K9WWT\n" "K9WX\n" "K9WYP\n" "K9WZB\n" "K9XB\n" "K9XD\n" "K9XE\n" "K9XK\n" "K9XL\n" "K9XR\n" "K9XV\n" "K9XW\n" "K9YC\n" "K9YKL\n" "K9YU\n" "K9ZA\n" "K9ZBX\n" "K9ZG\n" "K9ZI\n" "K9ZMD/6\n" "K9ZMU\n" "K9ZMZ\n" "K9ZO\n" "K9ZT\n" "K9ZU\n" "K9ZVZ\n" "K9ZW\n" "K9ZXO\n" "KA0ARA\n" "KA0BHO\n" "KA0BMX\n" "KA0BV\n" "KA0CSW\n" "KA0EIC\n" "KA0FSP\n" "KA0HDJ\n" "KA0HZP\n" "KA0LDG\n" "KA0LL\n" "KA0NES\n" "KA0P\n" "KA0PQW\n" "KA0SPM\n" "KA0UEH\n" "KA0UK\n" "KA0VXK\n" "KA1AMR\n" "KA1API\n" "KA1ARB\n" "KA1BQ\n" "KA1BVE\n" "KA1C\n" "KA1CQR\n" "KA1DWX\n" "KA1EFO\n" "KA1EHR\n" "KA1ERL\n" "KA1G\n" "KA1GEU\n" "KA1GIJ\n" "KA1GMN\n" "KA1GVI\n" "KA1GYB\n" "KA1HD\n" "KA1HFY\n" "KA1IE\n" "KA1IOR\n" "KA1IXK\n" "KA1J\n" "KA1JVR\n" "KA1JY\n" "KA1LDS\n" "KA1LMR\n" "KA1LOR\n" "KA1NCN\n" "KA1OEO\n" "KA1OX\n" "KA1QAA\n" "KA1QBO\n" "KA1R\n" "KA1RVM\n" "KA1SA\n" "KA1SAW\n" "KA1SWK\n" "KA1T\n" "KA1VF\n" "KA1VMG\n" "KA1VVT\n" "KA1XC\n" "KA1YB\n" "KA1YMX\n" "KA2ANF\n" "KA2BKG\n" "KA2BZS\n" "KA2CYN\n" "KA2D\n" "KA2DZR\n" "KA2EKI\n" "KA2EYH\n" "KA2F\n" "KA2FHN\n" "KA2FIR\n" "KA2GYM\n" "KA2IBE\n" "KA2IVS\n" "KA2KGP\n" "KA2KON\n" "KA2L\n" "KA2LIM\n" "KA2MGE\n" "KA2MGI\n" "KA2NDX\n" "KA2NUE\n" "KA2OUO\n" "KA2OUS\n" "KA2QWC\n" "KA2RQS\n" "KA2RVO\n" "KA2UGZ\n" "KA2VEE\n" "KA2VHY\n" "KA2YKN\n" "KA2ZOH\n" "KA3AFY\n" "KA3ANJ\n" "KA3ARF\n" "KA3BMU\n" "KA3BPN\n" "KA3BWP\n" "KA3CRC\n" "KA3DCO\n" "KA3DRR\n" "KA3EJJ\n" "KA3EQU\n" "KA3FZN\n" "KA3FZO\n" "KA3GEA\n" "KA3GLQ\n" "KA3IRJ\n" "KA3J\n" "KA3JLW\n" "KA3JOI\n" "KA3LKM\n" "KA3MLU\n" "KA3MTT\n" "KA3NRX\n" "KA3P\n" "KA3PCX\n" "KA3POX\n" "KA3PVA\n" "KA3QLF\n" "KA3S\n" "KA3SMF\n" "KA3UBG\n" "KA3UOL\n" "KA3WMJ\n" "KA3YJU\n" "KA4AQM\n" "KA4BDW\n" "KA4BIX\n" "KA4BSZ\n" "KA4DQJ\n" "KA4EMR\n" "KA4GFY\n" "KA4HKK\n" "KA4NWS\n" "KA4OTB\n" "KA4R\n" "KA4RRU\n" "KA4RUR\n" "KA4TEU\n" "KA4U\n" "KA4VGE\n" "KA4W\n" "KA4ZPF\n" "KA4ZTY\n" "KA5BNS\n" "KA5BQM\n" "KA5CJJ\n" "KA5DWI\n" "KA5EYH\n" "KA5FSJ\n" "KA5GCB\n" "KA5GIL\n" "KA5IAU\n" "KA5M\n" "KA5MWB\n" "KA5N\n" "KA5OAI\n" "KA5PRO\n" "KA5PVB\n" "KA5QMA\n" "KA5RAN\n" "KA5T\n" "KA5TCF\n" "KA5VEL\n" "KA5VFU\n" "KA5VVA\n" "KA5VZG\n" "KA5WSS\n" "KA5ZDE\n" "KA6BIM\n" "KA6C\n" "KA6CUU\n" "KA6DOW\n" "KA6GDT\n" "KA6HXI\n" "KA6JLT\n" "KA6MAL\n" "KA6MIB\n" "KA6NGR\n" "KA6PGY\n" "KA6SGT\n" "KA6T\n" "KA6UMQ\n" "KA6W\n" "KA7A\n" "KA7ARK\n" "KA7CVJ\n" "KA7FEF\n" "KA7HUO\n" "KA7JAS\n" "KA7KSP\n" "KA7KUZ\n" "KA7LYQ\n" "KA7NWQ\n" "KA7NYE\n" "KA7R\n" "KA7SPS\n" "KA7T\n" "KA7U\n" "KA8CNI\n" "KA8CPO\n" "KA8ETK\n" "KA8F\n" "KA8FAN\n" "KA8HOK\n" "KA8JHD\n" "KA8JRJ\n" "KA8KGW\n" "KA8LCW\n" "KA8NAK\n" "KA8NJW\n" "KA8POZ\n" "KA8PTT\n" "KA8Q\n" "KA8RTS\n" "KA8SYV\n" "KA8WEM\n" "KA8WQL\n" "KA8ZPE\n" "KA9A\n" "KA9ABC\n" "KA9AJF\n" "KA9AQZ\n" "KA9BHD\n" "KA9CFD\n" "KA9CKK\n" "KA9CLP\n" "KA9DRW\n" "KA9DVX\n" "KA9EKJ\n" "KA9FON\n" "KA9FOX\n" "KA9FQG\n" "KA9FRH\n" "KA9GWM\n" "KA9IVY\n" "KA9JAC\n" "KA9KBO\n" "KA9KLR\n" "KA9MOM\n" "KA9NFE\n" "KA9O\n" "KA9OBZ\n" "KA9OKH\n" "KA9OMY\n" "KA9OZP\n" "KA9P\n" "KA9RPR\n" "KA9SWE\n" "KA9UDA\n" "KA9UVY\n" "KA9VHG\n" "KA9WAR\n" "KA9WRN\n" "KA9ZAI\n" "KB0ARZ\n" "KB0B\n" "KB0CH\n" "KB0COV\n" "KB0CQ\n" "KB0EO\n" "KB0FHP\n" "KB0HH\n" "KB0IXX\n" "KB0JSH\n" "KB0JSH/T\n" "KB0L\n" "KB0LF\n" "KB0NES\n" "KB0NHW\n" "KB0NMQ\n" "KB0OXT\n" "KB0PAT\n" "KB0PKL\n" "KB0PTV\n" "KB0QBT\n" "KB0QEF\n" "KB0QH\n" "KB0QHZ\n" "KB0R\n" "KB0SK\n" "KB0TLC\n" "KB0UBZ\n" "KB0UKM\n" "KB0UKW\n" "KB0USA\n" "KB0VE\n" "KB0VQD\n" "KB0VVT\n" "KB0WMQ\n" "KB0WVI\n" "KB0YH\n" "KB0ZF\n" "KB1CJ\n" "KB1CL\n" "KB1CWO\n" "KB1DK\n" "KB1DMX\n" "KB1DN\n" "KB1DQT\n" "KB1E\n" "KB1EE\n" "KB1EFS\n" "KB1FCB\n" "KB1FJ\n" "KB1FRK\n" "KB1FRW\n" "KB1H\n" "KB1HFL\n" "KB1HIF\n" "KB1HIP\n" "KB1HNZ\n" "KB1IC\n" "KB1IQZ\n" "KB1JDY\n" "KB1JUF\n" "KB1JZU\n" "KB1K\n" "KB1KGA\n" "KB1LIH\n" "KB1LZH\n" "KB1MCK\n" "KB1MGL\n" "KB1MH\n" "KB1NA\n" "KB1NFI\n" "KB1NFW\n" "KB1NHV\n" "KB1NRB\n" "KB1NRI\n" "KB1NWH\n" "KB1ODO\n" "KB1OJT\n" "KB1OPV\n" "KB1OQH\n" "KB1OSI\n" "KB1OUV\n" "KB1OVA\n" "KB1OWT\n" "KB1P\n" "KB1PAJ\n" "KB1PHN\n" "KB1PLN\n" "KB1PSP\n" "KB1PXD\n" "KB1PXE\n" "KB1PXX\n" "KB1PXY\n" "KB1QEU\n" "KB1QOV\n" "KB1QU\n" "KB1RDL\n" "KB1RNX\n" "KB1RRX\n" "KB1RXA\n" "KB1SLN\n" "KB1SNB\n" "KB1T\n" "KB1TFR\n" "KB1TRQ\n" "KB1TY\n" "KB1W\n" "KB1WEB\n" "KB2AMY\n" "KB2AYS\n" "KB2BBG\n" "KB2BSL\n" "KB2CKN\n" "KB2DKB\n" "KB2ESY\n" "KB2FEL\n" "KB2FM\n" "KB2HSH\n" "KB2IAU\n" "KB2JQC\n" "KB2JSG\n" "KB2KWD\n" "KB2M\n" "KB2MFS\n" "KB2MN\n" "KB2NB\n" "KB2PD\n" "KB2PIZ\n" "KB2QXH\n" "KB2RLH\n" "KB2RPV\n" "KB2SEO\n" "KB2SXT\n" "KB2TNH\n" "KB2URI\n" "KB2UZY\n" "KB2VMG\n" "KB2VRM\n" "KB2WXV\n" "KB3AAY\n" "KB3AF\n" "KB3ATF\n" "KB3ATI\n" "KB3CQU\n" "KB3CTX\n" "KB3CWQ\n" "KB3CXQ\n" "KB3ELT\n" "KB3EOJ\n" "KB3EXB\n" "KB3FEI\n" "KB3FJJ\n" "KB3FMO\n" "KB3FTE\n" "KB3GFC\n" "KB3GQK\n" "KB3GVV\n" "KB3HJK\n" "KB3HQN\n" "KB3IBT\n" "KB3IHX\n" "KB3ILS\n" "KB3IOG\n" "KB3IWV\n" "KB3IZA\n" "KB3KBJ\n" "KB3KJ\n" "KB3KJS\n" "KB3KOC\n" "KB3KOW\n" "KB3KXX\n" "KB3LBB\n" "KB3LFX\n" "KB3LIX\n" "KB3LTT\n" "KB3LVH\n" "KB3MDX\n" "KB3MHB/0\n" "KB3MOW\n" "KB3MP\n" "KB3NKS\n" "KB3NPA\n" "KB3NSL\n" "KB3NXT\n" "KB3OJM\n" "KB3OK\n" "KB3ONQ\n" "KB3ONZ\n" "KB3OSP\n" "KB3OVB\n" "KB3OXF\n" "KB3P\n" "KB3PDR\n" "KB3QAQ\n" "KB3QGB\n" "KB3QIU\n" "KB3QLK\n" "KB3RBU\n" "KB3RFH\n" "KB3RM\n" "KB3ROR\n" "KB3RPE\n" "KB3RRV\n" "KB3RRX\n" "KB3RTB\n" "KB3SJQ\n" "KB3TAW\n" "KB3TS\n" "KB3WK\n" "KB3WL\n" "KB3X\n" "KB3XD\n" "KB3Z\n" "KB4BHB\n" "KB4BR\n" "KB4C\n" "KB4CAU\n" "KB4CP\n" "KB4ET\n" "KB4FB\n" "KB4FXE\n" "KB4GYT\n" "KB4HF\n" "KB4HJQ\n" "KB4J\n" "KB4JHU\n" "KB4KBS\n" "KB4KBS/5\n" "KB4MDD\n" "KB4MRX\n" "KB4OLM\n" "KB4PPE\n" "KB4QDQ\n" "KB4QQJ\n" "KB4REC\n" "KB4RGW\n" "KB4SAD\n" "KB4UF\n" "KB4USB\n" "KB4X\n" "KB4XK\n" "KB4YP\n" "KB4ZAA\n" "KB4ZMR\n" "KB5AAB\n" "KB5AAM\n" "KB5DNR\n" "KB5DRJ\n" "KB5ENP\n" "KB5FCF\n" "KB5FSV\n" "KB5GA\n" "KB5HPL\n" "KB5IBY\n" "KB5IED\n" "KB5IY\n" "KB5JO\n" "KB5LKE\n" "KB5LT\n" "KB5MRT\n" "KB5MZ\n" "KB5OS\n" "KB5REX\n" "KB5RP\n" "KB5RXL\n" "KB5TAN\n" "KB5TX\n" "KB5U\n" "KB5UNX\n" "KB5VP\n" "KB5WCA\n" "KB5YEG\n" "KB5YIA\n" "KB5YLG\n" "KB5YN\n" "KB5ZSK\n" "KB6A\n" "KB6ATT\n" "KB6ATZ\n" "KB6BYU\n" "KB6DL\n" "KB6FB\n" "KB6J\n" "KB6NAN\n" "KB6NFY\n" "KB6NU\n" "KB6OJE\n" "KB6QXR\n" "KB6RQZ\n" "KB7BGS\n" "KB7CJ\n" "KB7DQT\n" "KB7EEG\n" "KB7GP\n" "KB7HDX\n" "KB7HH\n" "KB7IQO\n" "KB7JMS\n" "KB7KLT\n" "KB7MBI\n" "KB7ME\n" "KB7N\n" "KB7NJV\n" "KB7OBU/KH2\n" "KB7OGE\n" "KB7PJ\n" "KB7PYF\n" "KB7Q\n" "KB7QFE\n" "KB7QKS\n" "KB7QOS\n" "KB7RJ\n" "KB7RUQ\n" "KB7SO\n" "KB7STO\n" "KB7TGR\n" "KB7TJP\n" "KB7TLE\n" "KB7UJI\n" "KB7UP\n" "KB7ZR\n" "KB7ZTI\n" "KB8APA\n" "KB8DID\n" "KB8DP\n" "KB8ECG\n" "KB8F\n" "KB8FZY\n" "KB8GAE\n" "KB8HOC\n" "KB8HRR\n" "KB8KE\n" "KB8KIK\n" "KB8LWU\n" "KB8M\n" "KB8MNX\n" "KB8MOU\n" "KB8MYC\n" "KB8NNU\n" "KB8NOD\n" "KB8NTL\n" "KB8NTY\n" "KB8NUF\n" "KB8O\n" "KB8O/2\n" "KB8OCA\n" "KB8OCP\n" "KB8OEJ\n" "KB8OLS\n" "KB8OMG\n" "KB8OSB\n" "KB8PFF\n" "KB8QAP\n" "KB8RJ\n" "KB8RTB\n" "KB8SB\n" "KB8SMD\n" "KB8TI\n" "KB8TL\n" "KB8TT\n" "KB8TWM\n" "KB8TXZ\n" "KB8TYJ\n" "KB8U\n" "KB8UEY\n" "KB8UHN\n" "KB8UUM\n" "KB8UUZ\n" "KB8V\n" "KB8VAO\n" "KB8VGD\n" "KB8VJL\n" "KB8X\n" "KB8YJY\n" "KB8ZGL\n" "KB8ZYE\n" "KB9AMG\n" "KB9AVX\n" "KB9AX\n" "KB9BIT\n" "KB9BNY\n" "KB9CYL\n" "KB9DFE\n" "KB9DVC\n" "KB9FBI\n" "KB9GKG\n" "KB9II\n" "KB9IIZ\n" "KB9IKY\n" "KB9JM\n" "KB9JOG\n" "KB9KAK\n" "KB9KCT\n" "KB9KEG\n" "KB9LHT\n" "KB9LIE\n" "KB9MI\n" "KB9MIE\n" "KB9MJN\n" "KB9MLE\n" "KB9NKM\n" "KB9ORH\n" "KB9OWD\n" "KB9PVR\n" "KB9PWN\n" "KB9Q\n" "KB9RDS\n" "KB9RNO\n" "KB9S\n" "KB9SRE\n" "KB9STR\n" "KB9UMT\n" "KB9UWR\n" "KB9UX\n" "KB9VT\n" "KB9WL\n" "KB9WQJ\n" "KB9XH\n" "KB9YGD\n" "KB9YGF\n" "KB9ZTF\n" "KB9ZUV\n" "KB9ZWB\n" "KC0ADP\n" "KC0BMF\n" "KC0CF\n" "KC0CRU\n" "KC0CWU\n" "KC0DEB\n" "KC0DX\n" "KC0ELZ\n" "KC0EUX\n" "KC0EWX\n" "KC0GL\n" "KC0GLA\n" "KC0GXY\n" "KC0HPM\n" "KC0IEI\n" "KC0IKU\n" "KC0INP\n" "KC0JFY\n" "KC0JRW\n" "KC0LOE\n" "KC0M\n" "KC0MEZ\n" "KC0MKS\n" "KC0MO\n" "KC0MPQ\n" "KC0MS\n" "KC0NFB\n" "KC0NOX\n" "KC0OKO\n" "KC0ONP\n" "KC0OW\n" "KC0PDX\n" "KC0PKA\n" "KC0PLZ\n" "KC0PPA\n" "KC0QBU\n" "KC0QIE\n" "KC0REN\n" "KC0RET\n" "KC0REY\n" "KC0RQH\n" "KC0RRP\n" "KC0SBV\n" "KC0SIV\n" "KC0SKR\n" "KC0STQ\n" "KC0SZU\n" "KC0TDQ\n" "KC0THR\n" "KC0TJ\n" "KC0TPP\n" "KC0TRX\n" "KC0UFB\n" "KC0UJM\n" "KC0UTN\n" "KC0UUP\n" "KC0UUT\n" "KC0UYQ\n" "KC0V\n" "KC0VEU\n" "KC0VFO\n" "KC0VFP\n" "KC0VKN\n" "KC0VTJ\n" "KC0W\n" "KC0WCF\n" "KC0WKZ\n" "KC0WMN\n" "KC0WTS\n" "KC0YHU\n" "KC0YJO\n" "KC0YQQ\n" "KC0YRS\n" "KC0ZHF\n" "KC0ZNI\n" "KC0ZSM\n" "KC0ZTC\n" "KC0ZXZ\n" "KC0ZZH\n" "KC1HD\n" "KC1JB\n" "KC1ME\n" "KC1MR\n" "KC1NN\n" "KC1SQ\n" "KC1UX\n" "KC1V\n" "KC1XX\n" "KC1ZO\n" "KC2ANN\n" "KC2ANS\n" "KC2AQU\n" "KC2COB\n" "KC2DU\n" "KC2EE\n" "KC2EES\n" "KC2EMM\n" "KC2EPU\n" "KC2EVL\n" "KC2FOL\n" "KC2GFA\n" "KC2GNL\n" "KC2GOW\n" "KC2HO\n" "KC2HTV\n" "KC2HZM\n" "KC2HZW\n" "KC2IGE\n" "KC2IOS\n" "KC2IUR\n" "KC2JKU\n" "KC2JRQ\n" "KC2KME\n" "KC2KPK\n" "KC2KTZ\n" "KC2KXV\n" "KC2KY\n" "KC2KZJ\n" "KC2LMB\n" "KC2LMX\n" "KC2LR\n" "KC2LSD\n" "KC2LST\n" "KC2LXD\n" "KC2MBV\n" "KC2MCY\n" "KC2MDQ\n" "KC2MHE\n" "KC2MHY\n" "KC2MNV\n" "KC2MR\n" "KC2MXH\n" "KC2NB\n" "KC2NLF\n" "KC2NTV\n" "KC2NYU\n" "KC2OBN\n" "KC2OBS\n" "KC2OGR\n" "KC2OUV\n" "KC2OYY\n" "KC2PBJ\n" "KC2PBX\n" "KC2PCD\n" "KC2PCR\n" "KC2PGE\n" "KC2PJH\n" "KC2PJL\n" "KC2PLJ\n" "KC2PQI\n" "KC2PSR\n" "KC2PVM\n" "KC2PZ\n" "KC2Q\n" "KC2QEZ\n" "KC2QFR\n" "KC2QGK\n" "KC2QJB\n" "KC2QLA\n" "KC2QLJ\n" "KC2QXA\n" "KC2QYC\n" "KC2QYM\n" "KC2RDW\n" "KC2RIV\n" "KC2RJC\n" "KC2ROF\n" "KC2RXS\n" "KC2SCY\n" "KC2SDR\n" "KC2SGS\n" "KC2SJN\n" "KC2SKF\n" "KC2SKI\n" "KC2SPD\n" "KC2SPY\n" "KC2SPZ\n" "KC2SWZ\n" "KC2SZ\n" "KC2TA\n" "KC2TAU\n" "KC2TEL\n" "KC2TNY\n" "KC2TYZ\n" "KC2UCJ\n" "KC2ULY\n" "KC2URV\n" "KC2VMR\n" "KC2VVZ\n" "KC2ZA\n" "KC3EF\n" "KC3ET\n" "KC3M\n" "KC3MX\n" "KC3N\n" "KC3OL\n" "KC3QU\n" "KC3R\n" "KC3RT\n" "KC3WX\n" "KC4AA\n" "KC4ABC\n" "KC4ART\n" "KC4ATU\n" "KC4AUF\n" "KC4B\n" "KC4CQS\n" "KC4CSU\n" "KC4D\n" "KC4EZN\n" "KC4FLT\n" "KC4GL\n" "KC4H\n" "KC4HW\n" "KC4IWI\n" "KC4JD\n" "KC4LLV\n" "KC4MYV\n" "KC4NPR\n" "KC4OOO\n" "KC4Q\n" "KC4QIH\n" "KC4RN\n" "KC4RV\n" "KC4SAW\n" "KC4SC\n" "KC4SSD\n" "KC4SW\n" "KC4SW/7\n" "KC4TVN\n" "KC4TVZ\n" "KC4UCK\n" "KC4USV\n" "KC4VLO\n" "KC4VT\n" "KC4WQ\n" "KC4YAU\n" "KC4YBO\n" "KC4YCT\n" "KC4YTF\n" "KC4Z\n" "KC4ZPB\n" "KC4ZUA\n" "KC5ADQ\n" "KC5AKB\n" "KC5BYE\n" "KC5EZ\n" "KC5FEN\n" "KC5FU\n" "KC5GTT\n" "KC5LDO\n" "KC5LK\n" "KC5MAH\n" "KC5MOL\n" "KC5MPS\n" "KC5NOA\n" "KC5NT\n" "KC5R\n" "KC5RUO\n" "KC5RWW\n" "KC5SLQ\n" "KC5T\n" "KC5TJT\n" "KC5UES\n" "KC5WA\n" "KC5YGC\n" "KC5YPU\n" "KC6AWX\n" "KC6G\n" "KC6M\n" "KC6MMU\n" "KC6OVG\n" "KC6P\n" "KC6R\n" "KC6SEH\n" "KC6UIX\n" "KC6UKO\n" "KC6VVT\n" "KC6X\n" "KC6ZBE\n" "KC7CM\n" "KC7CPM\n" "KC7DB\n" "KC7EFP\n" "KC7EKU\n" "KC7ESB\n" "KC7GNM\n" "KC7H\n" "KC7HFL\n" "KC7ITP\n" "KC7J\n" "KC7KNY\n" "KC7KZ\n" "KC7O\n" "KC7OM\n" "KC7OO\n" "KC7PFR\n" "KC7QR\n" "KC7STK\n" "KC7TA\n" "KC7UP\n" "KC7V\n" "KC7WDL\n" "KC7WWY\n" "KC7ZFP\n" "KC7ZKO\n" "KC7ZON\n" "KC7ZZ\n" "KC8ALZ\n" "KC8BLL\n" "KC8BOM\n" "KC8BYJ\n" "KC8CC\n" "KC8CPT\n" "KC8CY\n" "KC8EMF\n" "KC8FVE\n" "KC8FZM\n" "KC8GCR\n" "KC8GTX\n" "KC8HWL\n" "KC8IMV\n" "KC8IVC\n" "KC8JNL\n" "KC8JWS\n" "KC8KCU\n" "KC8KE\n" "KC8LA\n" "KC8LAU\n" "KC8LBZ\n" "KC8LTL\n" "KC8LUB\n" "KC8MGD\n" "KC8NIN\n" "KC8OBH\n" "KC8PKY\n" "KC8PSO\n" "KC8PX\n" "KC8QAE\n" "KC8QHT\n" "KC8RQT\n" "KC8SQI\n" "KC8UAV\n" "KC8UNY\n" "KC8UR\n" "KC8UWG\n" "KC8UZM\n" "KC8VGG\n" "KC8VML\n" "KC8VWM\n" "KC8WGA\n" "KC8YEJ\n" "KC8YJB\n" "KC8YLD\n" "KC8YSG\n" "KC8YTY\n" "KC8YVF\n" "KC8ZTJ\n" "KC9AMM\n" "KC9AOP\n" "KC9AQD\n" "KC9ARN\n" "KC9ARR\n" "KC9CDW\n" "KC9CHG\n" "KC9CRM\n" "KC9CRV\n" "KC9CSQ\n" "KC9CUK\n" "KC9DAO\n" "KC9DDF\n" "KC9DFU\n" "KC9DJQ\n" "KC9DKQ\n" "KC9DLO\n" "KC9ECI\n" "KC9ELU\n" "KC9EOQ\n" "KC9FAV\n" "KC9FLB\n" "KC9FOL\n" "KC9FQV\n" "KC9FQV/0\n" "KC9FSH\n" "KC9FZT\n" "KC9G\n" "KC9GBX\n" "KC9GGV\n" "KC9GKE\n" "KC9GRD\n" "KC9GTN\n" "KC9GUP\n" "KC9GZB\n" "KC9HEK\n" "KC9HEQ\n" "KC9HGW\n" "KC9HHT\n" "KC9HIU\n" "KC9HPA\n" "KC9HQV\n" "KC9HYL\n" "KC9ICP\n" "KC9IFT\n" "KC9IGB\n" "KC9IL\n" "KC9IRQ\n" "KC9JCH\n" "KC9JFP\n" "KC9JJV\n" "KC9JQY\n" "KC9JUY\n" "KC9KBB\n" "KC9KIO\n" "KC9KKM\n" "KC9KNQ\n" "KC9KRX\n" "KC9KSN\n" "KC9KTV\n" "KC9KXT\n" "KC9LBO\n" "KC9LC\n" "KC9LDK\n" "KC9LDO\n" "KC9LET\n" "KC9LIF\n" "KC9LMO\n" "KC9LNH\n" "KC9LQS\n" "KC9LTV\n" "KC9LWF\n" "KC9MAV\n" "KC9MEA\n" "KC9MOT\n" "KC9MRW\n" "KC9MVQ\n" "KC9MXI\n" "KC9MXM\n" "KC9MXQ\n" "KC9MYL\n" "KC9MZ\n" "KC9NBE\n" "KC9NCF\n" "KC9NEA\n" "KC9NGZ\n" "KC9OAG\n" "KC9OLC\n" "KC9OP\n" "KC9OQO\n" "KC9OUT\n" "KC9OYE\n" "KC9PAU\n" "KC9PBQ\n" "KC9PEG\n" "KC9POO\n" "KC9PTD\n" "KC9PXJ\n" "KC9QQ\n" "KC9TS\n" "KC9YY\n" "KC9Z\n" "KC9ZO\n" "KC9ZZ\n" "KD0AA\n" "KD0AAA\n" "KD0AAT\n" "KD0ABR\n" "KD0ACO\n" "KD0ACR\n" "KD0AHR\n" "KD0AJB\n" "KD0AKN\n" "KD0AV\n" "KD0BJS\n" "KD0BLE\n" "KD0BTT\n" "KD0CA\n" "KD0CAO\n" "KD0CIU\n" "KD0CPA\n" "KD0CPH\n" "KD0CVZ\n" "KD0DAW\n" "KD0DDY\n" "KD0DOS\n" "KD0DRQ\n" "KD0DSU\n" "KD0EH\n" "KD0EXQ\n" "KD0FLB\n" "KD0FQN\n" "KD0FW\n" "KD0GWI\n" "KD0HSF\n" "KD0HUC\n" "KD0IJW\n" "KD0INK\n" "KD0IZL\n" "KD0JLD\n" "KD0Q\n" "KD0R\n" "KD0S\n" "KD0UN\n" "KD0Y\n" "KD0ZZ\n" "KD1BD\n" "KD1CT\n" "KD1EU\n" "KD1FR\n" "KD1J\n" "KD1KT\n" "KD1LE\n" "KD1NA\n" "KD1XX\n" "KD1YV\n" "KD1ZX\n" "KD2A\n" "KD2HE\n" "KD2I\n" "KD2JA\n" "KD2JC\n" "KD2MU\n" "KD2MX\n" "KD2N\n" "KD2NE\n" "KD2NF\n" "KD2NL\n" "KD2RD\n" "KD3CQ\n" "KD3HN\n" "KD3KB\n" "KD3RF\n" "KD3SB\n" "KD3TB\n" "KD3WK\n" "KD3Y\n" "KD4AEN\n" "KD4AMP\n" "KD4BPZ\n" "KD4CMV\n" "KD4D\n" "KD4EDG\n" "KD4ESV\n" "KD4EXY\n" "KD4FJ\n" "KD4FNI\n" "KD4FXL\n" "KD4GID\n" "KD4GNM\n" "KD4HXT\n" "KD4ICT\n" "KD4JMI\n" "KD4JRX\n" "KD4LCR\n" "KD4LHA\n" "KD4LN\n" "KD4MPN\n" "KD4MZM\n" "KD4N\n" "KD4NH\n" "KD4OFG\n" "KD4OZI\n" "KD4POJ\n" "KD4QFT\n" "KD4QMY\n" "KD4QYJ\n" "KD4RE\n" "KD4RS\n" "KD4RSL\n" "KD4SH\n" "KD4SM\n" "KD4SN\n" "KD4SUG\n" "KD4SVC\n" "KD4TDI\n" "KD4TNY\n" "KD4TXF\n" "KD4ULB\n" "KD4ULW\n" "KD4VHH\n" "KD4W\n" "KD4WKP\n" "KD4WQT\n" "KD4WUO\n" "KD5CQT\n" "KD5CVL\n" "KD5DLL\n" "KD5EDL\n" "KD5EJG\n" "KD5FKY\n" "KD5GJF\n" "KD5IKG\n" "KD5ITM\n" "KD5J\n" "KD5JAA\n" "KD5JGA\n" "KD5JHE\n" "KD5JKH\n" "KD5JWC\n" "KD5L\n" "KD5LEP\n" "KD5LNO\n" "KD5LPB\n" "KD5M\n" "KD5MMM\n" "KD5MTB\n" "KD5MUY\n" "KD5NFW\n" "KD5NXR\n" "KD5PGA\n" "KD5R\n" "KD5RA\n" "KD5RQB\n" "KD5RXN\n" "KD5SBO\n" "KD5SGL\n" "KD5SRW\n" "KD5TFK\n" "KD5TIO\n" "KD5UVV\n" "KD5VIJ\n" "KD5VVI\n" "KD5WKK\n" "KD5WUD\n" "KD5YIA\n" "KD5YPC\n" "KD5YUK\n" "KD5YZU\n" "KD5ZAT\n" "KD5ZEZ\n" "KD6AF\n" "KD6AKC\n" "KD6AW\n" "KD6DKC\n" "KD6FIL\n" ; const char txt_master3[65530] = "KD6GC\n" "KD6HTN\n" "KD6HWD\n" "KD6JHV\n" "KD6JZZ\n" "KD6KVL\n" "KD6NL\n" "KD6NSA\n" "KD6OAT\n" "KD6PA\n" "KD6PQF\n" "KD6UO\n" "KD6VKF\n" "KD6WKY\n" "KD6YV\n" "KD7DCR\n" "KD7DEG\n" "KD7EX\n" "KD7GC\n" "KD7GTI\n" "KD7H\n" "KD7I\n" "KD7IBE\n" "KD7IIC\n" "KD7JGI\n" "KD7JZ\n" "KD7KST\n" "KD7LRK\n" "KD7MDX\n" "KD7MSC\n" "KD7OWN\n" "KD7P\n" "KD7Q\n" "KD7RHI\n" "KD7RQI\n" "KD7RUS\n" "KD7RX\n" "KD7SWL\n" "KD7TQM\n" "KD7UO\n" "KD7VA\n" "KD7VIK\n" "KD7WIZ\n" "KD7YCU\n" "KD7YDL\n" "KD7YFG\n" "KD7YZ\n" "KD8A\n" "KD8ADO\n" "KD8AMN\n" "KD8AQ\n" "KD8BBK\n" "KD8BIN\n" "KD8BWR\n" "KD8CAO\n" "KD8CDC\n" "KD8CGH\n" "KD8CMN\n" "KD8CQC\n" "KD8CTV\n" "KD8CVS\n" "KD8CWP\n" "KD8DCW\n" "KD8DGG\n" "KD8DHH\n" "KD8DHZ\n" "KD8DX\n" "KD8ECG\n" "KD8EER\n" "KD8ELX\n" "KD8EXU\n" "KD8EXX\n" "KD8EZS\n" "KD8EZU\n" "KD8FNA\n" "KD8FTH\n" "KD8FVX\n" "KD8FXB\n" "KD8GBK\n" "KD8GKR\n" "KD8GOX\n" "KD8GRG\n" "KD8GYH\n" "KD8GZG\n" "KD8HB\n" "KD8HDY\n" "KD8HHG\n" "KD8HMA\n" "KD8HNF\n" "KD8HNI\n" "KD8HSV\n" "KD8HTG\n" "KD8HXT\n" "KD8HXU\n" "KD8IIS\n" "KD8ILL\n" "KD8IOW\n" "KD8IZZ\n" "KD8JAM\n" "KD8JBD\n" "KD8JDC\n" "KD8JNJ\n" "KD8JNS\n" "KD8JRH\n" "KD8JV\n" "KD8LCD\n" "KD8LDT\n" "KD8LGW\n" "KD8LLJ\n" "KD8LW\n" "KD8LWR\n" "KD8MBH\n" "KD8MBI\n" "KD8MGI\n" "KD8NJ\n" "KD8OK\n" "KD8SQ\n" "KD9AC\n" "KD9AW\n" "KD9B\n" "KD9GY\n" "KD9LA\n" "KD9LEH\n" "KD9MS\n" "KD9ST\n" "KD9SV\n" "KE0A\n" "KE0BZ\n" "KE0ER\n" "KE0FJ\n" "KE0FK\n" "KE0G\n" "KE0H\n" "KE0L\n" "KE0LX\n" "KE0M\n" "KE0MD\n" "KE0MF\n" "KE0MT\n" "KE0N\n" "KE0PX\n" "KE0UF\n" "KE0UI\n" "KE0WM\n" "KE0WO\n" "KE0Z\n" "KE0Z/VE4\n" "KE1AF\n" "KE1AU\n" "KE1B\n" "KE1B/6\n" "KE1F\n" "KE1FO\n" "KE1IH\n" "KE1JF\n" "KE1Q\n" "KE1R\n" "KE1V\n" "KE2C\n" "KE2DX\n" "KE2EH\n" "KE2GD\n" "KE2N\n" "KE2OI\n" "KE2SD\n" "KE2U\n" "KE2UN\n" "KE2VB\n" "KE2VN\n" "KE2WY\n" "KE2XC\n" "KE3C\n" "KE3CT\n" "KE3D\n" "KE3D/5\n" "KE3FG\n" "KE3G\n" "KE3KD\n" "KE3OA\n" "KE3Q\n" "KE3VG\n" "KE3VV\n" "KE4AHP\n" "KE4AK\n" "KE4BFG\n" "KE4CAW\n" "KE4CAX\n" "KE4CEC\n" "KE4D\n" "KE4EQY\n" "KE4ERG\n" "KE4ETY\n" "KE4GY\n" "KE4HX\n" "KE4I\n" "KE4KMG\n" "KE4KWE\n" "KE4KY\n" "KE4LIA\n" "KE4MBP\n" "KE4MYW\n" "KE4NU\n" "KE4NYH\n" "KE4OAR\n" "KE4OHB\n" "KE4OIC\n" "KE4OJH\n" "KE4OVN\n" "KE4P\n" "KE4PT\n" "KE4PVL\n" "KE4QCY\n" "KE4R\n" "KE4RQ\n" "KE4RUN\n" "KE4S\n" "KE4TBG\n" "KE4TG\n" "KE4TP\n" "KE4TTS\n" "KE4TWI\n" "KE4UNA\n" "KE4UW\n" "KE4VA\n" "KE4VQM\n" "KE4WBO\n" "KE4WLE\n" "KE4YLQ\n" "KE4YOH\n" "KE4YVD\n" "KE5AKL\n" "KE5AUI\n" "KE5BWG\n" "KE5C\n" "KE5CQJ\n" "KE5DLZ\n" "KE5DYG\n" "KE5FNA\n" "KE5FRF\n" "KE5FTY\n" "KE5FXE\n" "KE5HDE\n" "KE5HPY\n" "KE5HWE\n" "KE5IOV\n" "KE5ISO\n" "KE5JA\n" "KE5K\n" "KE5KCN\n" "KE5KZX\n" "KE5LLM/6\n" "KE5LQ\n" "KE5LYW\n" "KE5MHV\n" "KE5MIS\n" "KE5MMT\n" "KE5MOZ\n" "KE5NCD\n" "KE5NQ\n" "KE5NYZ\n" "KE5OG\n" "KE5OKQ\n" "KE5OOA\n" "KE5ORW\n" "KE5OVE\n" "KE5OXS\n" "KE5PMZ\n" "KE5PRL\n" "KE5PUH\n" "KE5PWL\n" "KE5PWR\n" "KE5QAR\n" "KE5QBZ\n" "KE5QKR\n" "KE5QWP\n" "KE5RFR\n" "KE5RHM\n" "KE5RON\n" "KE5RPT\n" "KE5RS\n" "KE5RXN\n" "KE5SNK\n" "KE5SOF\n" "KE5SPE\n" "KE5TQA\n" "KE5TRZ\n" "KE5UTN\n" "KE5VDT\n" "KE5WUE\n" "KE5YA\n" "KE5YGR\n" "KE5YOO\n" "KE5YXO\n" "KE5ZDN\n" "KE5ZGI\n" "KE5ZSR\n" "KE5ZSW\n" "KE5ZWD\n" "KE5ZYP\n" "KE6BAE\n" "KE6CX\n" "KE6EEZ\n" "KE6EJG\n" "KE6EKH\n" "KE6ENI/XE2\n" "KE6FV\n" "KE6GFF\n" "KE6GFI\n" "KE6GLA\n" "KE6KJD\n" "KE6LPO\n" "KE6MGW\n" "KE6OIO\n" "KE6OJ\n" "KE6QR\n" "KE6RAD\n" "KE6RGB\n" "KE6RS\n" "KE6RYZ\n" "KE6SHL\n" "KE6TE\n" "KE6U\n" "KE6V\n" "KE6WC\n" "KE6YLH\n" "KE6ZLY\n" "KE7A\n" "KE7ACE\n" "KE7AJ\n" "KE7AUB\n" "KE7BT\n" "KE7CPE\n" "KE7CRN\n" "KE7DX\n" "KE7FBY\n" "KE7FGB\n" "KE7FXF\n" "KE7GRL\n" "KE7GYQ\n" "KE7GYT\n" "KE7HHW\n" "KE7HTL\n" "KE7HTY\n" "KE7IEE\n" "KE7JIW\n" "KE7JNT\n" "KE7LOQ\n" "KE7NKF\n" "KE7NO\n" "KE7NPH\n" "KE7NVA\n" "KE7NVY\n" "KE7NZE\n" "KE7ORS\n" "KE7PAV\n" "KE7PGO\n" "KE7PZX\n" "KE7RLI\n" "KE7RPR\n" "KE7RVL\n" "KE7SW\n" "KE7SX\n" "KE7TBK\n" "KE7TM\n" "KE7TWL\n" "KE7UGO\n" "KE7UTX\n" "KE7VUX\n" "KE7WDJ\n" "KE7WMI\n" "KE7WRJ\n" "KE7WVZ\n" "KE7X\n" "KE7XE\n" "KE7XM\n" "KE7Y\n" "KE7YF\n" "KE7YIQ\n" "KE7YKS\n" "KE7ZAC\n" "KE7ZGG\n" "KE7ZZO\n" "KE8BP\n" "KE8DM\n" "KE8E\n" "KE8FO\n" "KE8G\n" "KE8M\n" "KE8NK\n" "KE8PX\n" "KE8RG\n" "KE8SO\n" "KE8UM\n" "KE8VC\n" "KE8VK\n" "KE9AG\n" "KE9ET\n" "KE9I\n" "KE9LY\n" "KE9PH\n" "KE9PP\n" "KE9TP\n" "KE9U\n" "KE9VS\n" "KF0AK\n" "KF0F\n" "KF0GE\n" "KF0IQ\n" "KF0LA\n" "KF0N\n" "KF0P\n" "KF0QR\n" "KF0SJ\n" "KF0UR\n" "KF0VR\n" "KF0XM\n" "KF0Z\n" "KF1C\n" "KF1D\n" "KF2AT\n" "KF2AX\n" "KF2FK\n" "KF2HO\n" "KF2JK\n" "KF2O\n" "KF2T\n" "KF2U\n" "KF2VX\n" "KF2X\n" "KF2XN\n" "KF2YS\n" "KF2ZQ\n" "KF3B\n" "KF3BA\n" "KF3DJ\n" "KF3EQ\n" "KF3F\n" "KF3P\n" "KF4BI\n" "KF4DNL\n" "KF4DVF\n" "KF4DVG\n" "KF4DYN\n" "KF4ECG\n" "KF4ENE\n" "KF4EUZ\n" "KF4FL\n" "KF4GDX\n" "KF4GLE\n" "KF4HMD\n" "KF4HOU\n" "KF4IBU\n" "KF4IFF\n" "KF4IRC\n" "KF4JPX\n" "KF4KNF\n" "KF4LJX\n" "KF4LMT\n" "KF4LMW\n" "KF4MH\n" "KF4NMH\n" "KF4OHI\n" "KF4ONH\n" "KF4OPX\n" "KF4PCT\n" "KF4PQL\n" "KF4QQY\n" "KF4QYF\n" "KF4SQ\n" "KF4TP\n" "KF4UOR\n" "KF4VTT\n" "KF4WER\n" "KF4YCP\n" "KF4YLM\n" "KF4ZS\n" "KF4ZZ\n" "KF5CCT\n" "KF5CST\n" "KF5DKS\n" "KF5EH\n" "KF5EHV\n" "KF5ER\n" "KF5H\n" "KF5KWO\n" "KF5S\n" "KF5SA\n" "KF5VM\n" "KF5Y\n" "KF6A\n" "KF6I\n" "KF6JOQ\n" "KF6JQ\n" "KF6KDA\n" "KF6MWA\n" "KF6NCX\n" "KF6PKG\n" "KF6RNT\n" "KF6RXB\n" "KF6RY\n" "KF6T\n" "KF6TRX\n" "KF6ZYD\n" "KF7ADB\n" "KF7ADK\n" "KF7BBJ\n" "KF7CG\n" "KF7E\n" "KF7F\n" "KF7GYE\n" "KF7IQ\n" "KF7MD\n" "KF7NN\n" "KF7P\n" "KF7PG\n" "KF7RU\n" "KF7TY\n" "KF7WQ\n" "KF8ES\n" "KF8GE\n" "KF8K\n" "KF8PS\n" "KF8UN\n" "KF8Z\n" "KF9AF\n" "KF9D\n" "KF9JV\n" "KF9KP\n" "KF9LI\n" "KF9MT\n" "KF9TI\n" "KF9UP\n" "KF9WW\n" "KG0AQ\n" "KG0DX\n" "KG0EI\n" "KG0EW\n" "KG0F\n" "KG0JD\n" "KG0KP\n" "KG0PP\n" "KG0TS\n" "KG0TW\n" "KG0TZ\n" "KG0UA\n" "KG0US\n" "KG0Z\n" "KG1D\n" "KG1E\n" "KG1V\n" "KG2AF\n" "KG2GL\n" "KG2MV\n" "KG2RG\n" "KG2V\n" "KG3BOZ\n" "KG3F\n" "KG3Q\n" "KG3V\n" "KG4AZN\n" "KG4BYL\n" "KG4CBI\n" "KG4CUY\n" "KG4FPJ\n" "KG4HTT\n" "KG4HUF\n" "KG4IGC\n" "KG4IJS\n" "KG4JGQ\n" "KG4JJS\n" "KG4JSZ\n" "KG4JYB\n" "KG4KEA\n" "KG4KQI\n" "KG4KWW\n" "KG4LCF\n" "KG4MGE\n" "KG4MIF\n" "KG4NAK\n" "KG4NRF\n" "KG4NWS\n" "KG4OCJ\n" "KG4PLT\n" "KG4RUE\n" "KG4RWO\n" "KG4SS\n" "KG4STI\n" "KG4TEI\n" "KG4TQQ\n" "KG4TTQ\n" "KG4UDL\n" "KG4USN\n" "KG4UVU\n" "KG4VBK\n" "KG4VLW\n" "KG4VOV\n" "KG4VPC\n" "KG4W\n" "KG4WNA\n" "KG4WQZ\n" "KG4YGP\n" "KG4YHR\n" "KG4YLZ\n" "KG4YNM\n" "KG4ZDM\n" "KG4ZNA\n" "KG4ZOD\n" "KG4ZOI\n" "KG4ZVA\n" "KG4ZXK\n" "KG5EG\n" "KG5NP\n" "KG5OO\n" "KG5RJ\n" "KG5RQ\n" "KG5TA\n" "KG5V\n" "KG5VK\n" "KG6ACG\n" "KG6AMW\n" "KG6AO\n" "KG6AXA\n" "KG6B\n" "KG6COH\n" "KG6D\n" "KG6DX\n" "KG6I\n" "KG6JDX\n" "KG6KH\n" "KG6MZS\n" "KG6OJB\n" "KG6RCW\n" "KG6SMN\n" "KG6STU\n" "KG6TAD\n" "KG6TBR\n" "KG6TGR\n" "KG6TT\n" "KG6UBG\n" "KG6WIK\n" "KG6YHH\n" "KG6YPH\n" "KG6ZHC\n" "KG7C\n" "KG7E\n" "KG7EW\n" "KG7H\n" "KG7HF\n" "KG7HF/1\n" "KG7P\n" "KG7RZ\n" "KG7VQ\n" "KG7WZ\n" "KG8CO\n" "KG8CW\n" "KG8CX\n" "KG8DH\n" "KG8DP\n" "KG8OU\n" "KG8P\n" "KG8V\n" "KG8WI\n" "KG9AH\n" "KG9AV\n" "KG9D\n" "KG9E\n" "KG9EE\n" "KG9FA\n" "KG9G\n" "KG9IL\n" "KG9JP\n" "KG9N\n" "KG9SF\n" "KG9X\n" "KG9Z\n" "KH0UA\n" "KH2/JJ1LRD\n" "KH2AR/4\n" "KH2AR/W4\n" "KH2JU\n" "KH2L\n" "KH2OP\n" "KH2RU/KP4\n" "KH2X/W4\n" "KH6AK\n" "KH6AT\n" "KH6BZF\n" "KH6CB\n" "KH6CD\n" "KH6CG\n" "KH6CJJ\n" "KH6CO\n" "KH6CQH/W7\n" "KH6CW\n" "KH6FI\n" "KH6FP\n" "KH6GMP\n" "KH6HAM\n" "KH6HU\n" "KH6IB\n" "KH6J\n" "KH6KM\n" "KH6LC\n" "KH6LS\n" "KH6MB\n" "KH6ND\n" "KH6NF\n" "KH6NO/W7\n" "KH6OA\n" "KH6OO\n" "KH6P\n" "KH6QJ\n" "KH6RC\n" "KH6RZ\n" "KH6TDM\n" "KH6U\n" "KH6YR\n" "KH6ZM\n" "KH6ZN\n" "KH7B\n" "KH7BB\n" "KH7C\n" "KH7CC\n" "KH7DX\n" "KH7HI\n" "KH7LC\n" "KH7T\n" "KH7U\n" "KH7WW/W7\n" "KH7X\n" "KH7XS\n" "KH7Y\n" "KH9/WA2YUN\n" "KI0F\n" "KI0G\n" "KI0HA\n" "KI0HS\n" "KI0II\n" "KI0J\n" "KI0JG\n" "KI0LS\n" "KI0OV\n" "KI0QS\n" "KI0RB\n" "KI0RH\n" "KI0SK\n" "KI0WA\n" "KI0Y\n" "KI0Z\n" "KI1G\n" "KI1M\n" "KI2G\n" "KI2P\n" "KI3C\n" "KI3DS\n" "KI3O\n" "KI3T\n" "KI4ACW\n" "KI4AOQ\n" "KI4ASK\n" "KI4BAL\n" "KI4BIY\n" "KI4BJS\n" "KI4BSB\n" "KI4BWS\n" "KI4BXU\n" "KI4BYQ\n" "KI4C\n" "KI4CBF\n" "KI4CBN\n" "KI4CQO\n" "KI4DT\n" "KI4EEY\n" "KI4EGT\n" "KI4EZC\n" "KI4FCQ\n" "KI4FIA\n" "KI4FSZ\n" "KI4FVS\n" "KI4FW\n" "KI4GGH\n" "KI4GGJ\n" "KI4GHT\n" "KI4GKS\n" "KI4GUO\n" "KI4HHK\n" "KI4IKB\n" "KI4IRH\n" "KI4ITV\n" "KI4JMI\n" "KI4KFW\n" "KI4KK\n" "KI4KPA\n" "KI4KQ\n" "KI4KTH\n" "KI4LAV\n" "KI4LIL\n" "KI4LMA\n" "KI4LNE\n" "KI4LPR\n" "KI4MFF\n" "KI4MFX\n" "KI4MHA\n" "KI4MIV\n" "KI4MQF\n" "KI4MUG\n" "KI4MZS\n" "KI4NCX\n" "KI4NKA\n" "KI4NSI\n" "KI4NSP\n" "KI4ODO\n" "KI4ONJ\n" "KI4ORL\n" "KI4ORU\n" "KI4ORY\n" "KI4PAQ\n" "KI4PHE\n" "KI4PKW\n" "KI4PRK\n" "KI4PTM\n" "KI4PVD\n" "KI4QEO\n" "KI4QLN\n" "KI4QMK\n" "KI4RKB\n" "KI4ROA\n" "KI4RXE\n" "KI4SGQ\n" "KI4SII\n" "KI4SNS\n" "KI4SP\n" "KI4SPO\n" "KI4SVQ\n" "KI4TAW\n" "KI4TI\n" "KI4TMD\n" "KI4TTS\n" "KI4TXP\n" "KI4TYK\n" "KI4TZ\n" "KI4TZU\n" "KI4UFF\n" "KI4URM\n" "KI4UYM\n" "KI4VBR\n" "KI4VCT\n" "KI4VDC\n" "KI4VEU\n" "KI4VFW\n" "KI4VLQ\n" "KI4VTL\n" "KI4VWJ\n" "KI4WAX\n" "KI4WCA\n" "KI4WOH\n" "KI4YAH\n" "KI4YCC\n" "KI4YDJ\n" "KI4YPT\n" "KI4YRH\n" "KI4YXO\n" "KI4YY\n" "KI4ZHF\n" "KI4ZKJ\n" "KI5EE\n" "KI5F\n" "KI5FJ\n" "KI5FR\n" "KI5IK\n" "KI5JF\n" "KI5T\n" "KI5TN\n" "KI5WE\n" "KI5WL\n" "KI5XP\n" "KI6ASK\n" "KI6BEN\n" "KI6BQB\n" "KI6CDF\n" "KI6CG\n" "KI6DCN\n" "KI6DRN\n" "KI6DY\n" "KI6DY/0\n" "KI6EAB\n" "KI6FTT\n" "KI6FYQ\n" "KI6GVI\n" "KI6GVM\n" "KI6HDV\n" "KI6IBS\n" "KI6IRA\n" "KI6IT\n" "KI6J\n" "KI6JGH\n" "KI6JJW\n" "KI6KFB\n" "KI6KSY\n" "KI6KVR\n" "KI6LDM\n" "KI6LQE\n" "KI6LTC\n" "KI6LZ\n" "KI6MQX\n" "KI6MWN\n" "KI6NDA\n" "KI6NGN\n" "KI6NN\n" "KI6NNN\n" "KI6OQU\n" "KI6ORO\n" "KI6OY\n" "KI6PGQ\n" "KI6PMD\n" "KI6PR\n" "KI6PTU\n" "KI6QDB\n" "KI6QDH\n" "KI6RRD\n" "KI6RRN\n" "KI6RUW\n" "KI6SMX\n" "KI6SN\n" "KI6SYO\n" "KI6T\n" "KI6TGS\n" "KI6TXC\n" "KI6UAL\n" "KI6UDJ\n" "KI6VC\n" "KI6VJY\n" "KI6WCI\n" "KI6WJ\n" "KI6WOX\n" "KI6WWB\n" "KI6WZZ\n" "KI6YYT\n" "KI6ZLW\n" "KI6ZX\n" "KI6ZZD\n" "KI7AO\n" "KI7BP\n" "KI7DG\n" "KI7K\n" "KI7M\n" "KI7MT\n" "KI7N\n" "KI7T\n" "KI7TG\n" "KI7VR\n" "KI7XA\n" "KI7Y\n" "KI8BV\n" "KI8CQ\n" "KI8JD\n" "KI8KQ\n" "KI8L\n" "KI9A\n" "KI9E\n" "KI9H\n" "KJ0B\n" "KJ0G\n" "KJ0I\n" "KJ0M\n" "KJ0MTN\n" "KJ0P\n" "KJ0R\n" "KJ1I\n" "KJ1J\n" "KJ2D\n" "KJ2M\n" "KJ3L\n" "KJ3X\n" "KJ4ADN\n" "KJ4AIS\n" "KJ4AMH\n" "KJ4AMU\n" "KJ4AOM\n" "KJ4APD\n" "KJ4AUQ\n" "KJ4AUR\n" "KJ4AYT\n" "KJ4AZA\n" "KJ4BEE\n" "KJ4BIW\n" "KJ4BIX\n" "KJ4BJ\n" "KJ4BOU\n" "KJ4BPH\n" "KJ4BQS\n" "KJ4CGU\n" "KJ4CMG\n" "KJ4CNN\n" "KJ4CTS\n" "KJ4CVY\n" "KJ4DBB\n" "KJ4DDM\n" "KJ4DHB\n" "KJ4DLP\n" "KJ4DOZ\n" "KJ4DVD\n" "KJ4EEW\n" "KJ4EKS\n" "KJ4EPL\n" "KJ4ERZ\n" "KJ4EUN\n" "KJ4EX\n" "KJ4EYZ\n" "KJ4FDV\n" "KJ4FKQ\n" "KJ4FSU\n" "KJ4FYX\n" "KJ4GDW\n" "KJ4GLK\n" "KJ4GOI\n" "KJ4HEY\n" "KJ4HYG\n" "KJ4HZ\n" "KJ4IC\n" "KJ4IGV\n" "KJ4IQT\n" "KJ4IVB\n" "KJ4IVK\n" "KJ4IWX\n" "KJ4IXI\n" "KJ4IZW\n" "KJ4JC\n" "KJ4JEY\n" "KJ4JQV\n" "KJ4JTQ\n" "KJ4JTT\n" "KJ4KNW\n" "KJ4KTG\n" "KJ4KVC\n" "KJ4LEN\n" "KJ4LKU\n" "KJ4ND\n" "KJ4NNO\n" "KJ4OOA\n" "KJ4QVJ\n" "KJ4R\n" "KJ4RR\n" "KJ4UNA\n" "KJ4UY\n" "KJ4WD\n" "KJ5CI\n" "KJ5OA\n" "KJ5RC\n" "KJ5RM\n" "KJ5T\n" "KJ5XX\n" "KJ6ABC\n" "KJ6AGX\n" "KJ6AP\n" "KJ6C\n" "KJ6CA\n" "KJ6CM\n" "KJ6DJL\n" "KJ6DQ\n" "KJ6HZ\n" "KJ6NO\n" "KJ6P\n" "KJ6RA\n" "KJ6UD\n" "KJ6Y\n" "KJ6YK\n" "KJ6ZI\n" "KJ7BS\n" "KJ7GI\n" "KJ7NO\n" "KJ7QM\n" "KJ7S\n" "KJ8O\n" "KJ9A\n" "KJ9C\n" "KJ9D\n" "KJ9I\n" "KJ9R\n" "KK0A\n" "KK0DJ\n" "KK0G\n" "KK0HF\n" "KK0I\n" "KK0K\n" "KK0M\n" "KK0Q\n" "KK0SD\n" "KK1DX\n" "KK1F\n" "KK1KW\n" "KK1L\n" "KK1S\n" "KK1W\n" "KK1X\n" "KK2O\n" "KK2W\n" "KK3AN\n" "KK3F\n" "KK3Q\n" "KK4A\n" "KK4AW\n" "KK4E\n" "KK4GV\n" "KK4IY\n" "KK4KM\n" "KK4PJ\n" "KK4PQ\n" "KK4R\n" "KK4RV\n" "KK4SI\n" "KK4SZ\n" "KK4TE\n" "KK4US\n" "KK4WS\n" "KK4XL\n" "KK5CT\n" "KK5E\n" "KK5HT\n" "KK5I\n" "KK5IB\n" "KK5J\n" "KK5JY\n" "KK5K\n" "KK5LO\n" "KK5MR\n" "KK5NA\n" "KK5NO\n" "KK5OQ\n" "KK5OV\n" "KK5RX\n" "KK5TC\n" "KK5ZD\n" "KK6EL\n" "KK6GJ\n" "KK6LT\n" "KK6MC\n" "KK6PC\n" "KK6QT\n" "KK6T\n" "KK6TV\n" "KK6XN\n" "KK7AC\n" "KK7BR\n" "KK7CG\n" "KK7DP\n" "KK7EU\n" "KK7IG\n" "KK7MF\n" "KK7OO\n" "KK7PR\n" "KK7S\n" "KK7UQ\n" "KK7UV\n" "KK7VL\n" "KK7X\n" "KK7XT\n" "KK7YC\n" "KK7YL\n" "KK7YU\n" "KK8B\n" "KK8D\n" "KK8MM\n" "KK8U\n" "KK8X\n" "KK8Y\n" "KK9A\n" "KK9DX\n" "KK9G\n" "KK9H\n" "KK9N\n" "KK9O\n" "KK9T\n" "KK9V\n" "KL1IN\n" "KL1JP\n" "KL1R\n" "KL1SE/W4\n" "KL1SF\n" "KL1V\n" "KL1WE/6\n" "KL1WE/W6\n" "KL1YY\n" "KL2AX\n" "KL2R\n" "KL2RG\n" "KL5DX\n" "KL5E\n" "KL5O\n" "KL5Z\n" "KL7AA\n" "KL7AC\n" "KL7AF\n" "KL7AI\n" "KL7AIR\n" "KL7AM\n" "KL7AN\n" "KL7BB/W7\n" "KL7CH\n" "KL7CQ\n" "KL7CW\n" "KL7D\n" "KL7DX\n" "KL7FAP\n" "KL7GS\n" "KL7HBK\n" "KL7IDA\n" "KL7IKV\n" "KL7IWC\n" "KL7J\n" "KL7LT\n" "KL7MM\n" "KL7NC\n" "KL7OH\n" "KL7OO\n" "KL7OO/W7\n" "KL7OU\n" "KL7QR\n" "KL7R\n" "KL7RA\n" "KL7SB\n" "KL7SG\n" "KL7TS\n" "KL7VX\n" "KL7WP\n" "KL7WV\n" "KL7XX\n" "KL7YK\n" "KL7Z\n" "KL8DX\n" "KM0O\n" "KM0U\n" "KM1C\n" "KM1D\n" "KM1E\n" "KM1R\n" "KM1W\n" "KM1X\n" "KM1Z\n" "KM2L\n" "KM2O\n" "KM2Y\n" "KM2Z\n" "KM3J\n" "KM3T\n" "KM3T/KP4\n" "KM3V\n" "KM4C\n" "KM4CH\n" "KM4D\n" "KM4DR\n" "KM4DR/5\n" "KM4H\n" "KM4HI\n" "KM4JA\n" "KM4KB\n" "KM4M\n" "KM4MK\n" "KM4OR\n" "KM4OZ\n" "KM4RK\n" "KM4RO\n" "KM4U\n" "KM4ZR\n" "KM5E\n" "KM5FY\n" "KM5LS\n" "KM5PS\n" "KM5RA\n" "KM5TY\n" "KM5VI\n" "KM5Z\n" "KM6CR\n" "KM6CZ\n" "KM6HB\n" "KM6I\n" "KM6K\n" "KM6TY\n" "KM6XX\n" "KM6Z\n" "KM7DX\n" "KM7T\n" "KM7TR\n" "KM7W\n" "KM8L\n" "KM8R\n" "KM9M\n" "KM9P\n" "KM9X\n" "KN0A\n" "KN0N\n" "KN0R\n" "KN0V\n" "KN1H\n" "KN1R\n" "KN1W\n" "KN3A\n" "KN3X\n" "KN4DS\n" "KN4JN\n" "KN4JX\n" "KN4KL\n" "KN4LF\n" "KN4NN\n" "KN4OK\n" "KN4Q\n" "KN4QD\n" "KN4Y\n" "KN5H\n" "KN5O\n" "KN5S\n" "KN6B\n" "KN6DV\n" "KN6E\n" "KN6H\n" "KN6LF\n" "KN6OP\n" "KN6OZ\n" "KN6U\n" "KN6VVH\n" "KN6X\n" "KN6Y\n" "KN6YC\n" "KN7D\n" "KN7K\n" "KN7N\n" "KN7PF\n" "KN7S\n" "KN7T\n" "KN7Y\n" "KN8DMK\n" "KN8J\n" "KN8KAZ\n" "KN8KAZ/5\n" "KN8M\n" "KN9C\n" "KN9K\n" "KN9N\n" "KN9P\n" "KO0Z\n" "KO1E\n" "KO1G\n" "KO1H\n" "KO1U\n" "KO2OK\n" "KO4OL\n" "KO4PU\n" "KO4XB\n" "KO4XJ\n" "KO4Y\n" "KO5DX\n" "KO6I\n" "KO6IS\n" "KO6U\n" "KO7AA\n" "KO7P\n" "KO7T\n" "KO7X\n" "KO9G\n" "KO9H\n" "KP2B\n" "KP2BH\n" "KP2CT\n" "KP2CW\n" "KP2D\n" "KP2DX\n" "KP2M\n" "KP2SJ\n" "KP2TM\n" "KP3AAA\n" "KP3G\n" "KP3S\n" "KP3VA\n" "KP3Z\n" "KP4AH\n" "KP4ATF\n" "KP4BD\n" "KP4BME\n" "KP4BOY\n" "KP4BT\n" "KP4ED\n" "KP4GB\n" "KP4GB/W3\n" "KP4GC\n" "KP4JFR\n" "KP4JRS\n" "KP4KE\n" "KP4KE/W4\n" "KP4LH\n" "KP4MS\n" "KP4QY\n" "KP4RAT\n" "KP4RAY\n" "KP4SQ\n" "KP4TF\n" "KP4US\n" "KP4VP\n" "KP4WW\n" "KP4Y/W0\n" "KQ0B\n" "KQ1A\n" "KQ1F\n" "KQ1P\n" "KQ1U\n" "KQ1X\n" "KQ2I\n" "KQ2M\n" "KQ3F\n" "KQ4BH\n" "KQ4KK\n" "KQ4VY\n" "KQ4Y\n" "KQ5E\n" "KQ6DX\n" "KQ6EA\n" "KQ6ES\n" "KQ6IU\n" "KQ6K\n" "KQ6LV\n" "KQ6MU\n" "KQ6OD\n" "KQ6PK\n" "KQ6Q\n" "KQ6X\n" "KQ6YG\n" "KQ6Z\n" "KQ7W\n" "KQ8E\n" "KQ8M\n" "KQ9J\n" "KR0I\n" "KR0K\n" "KR0O\n" "KR0T\n" "KR0U\n" "KR0V\n" "KR1A\n" "KR1B\n" "KR1ST\n" "KR2AA\n" "KR2C\n" "KR2D\n" "KR2Q\n" "KR3E\n" "KR3J\n" "KR3O\n" "KR4BG\n" "KR4EY\n" "KR4F\n" "KR4JY\n" "KR4LO\n" "KR4OJ\n" "KR4OW\n" "KR4RO\n" "KR4TI\n" "KR4U\n" "KR4V\n" "KR4WI\n" "KR4X\n" "KR4Z\n" "KR4ZA\n" "KR5DX\n" "KR5N\n" "KR5V\n" "KR5X\n" "KR6C\n" "KR6RR\n" "KR7DX\n" "KR7G\n" "KR7LD\n" "KR7O\n" "KR7RK\n" "KR7RR\n" "KR7W\n" "KR7X\n" "KR8MR\n" "KR8Q\n" "KR8T\n" "KR8U\n" "KR8V\n" "KS0AA\n" "KS0M\n" "KS0T\n" "KS0X\n" "KS0Y\n" "KS1C\n" "KS1G\n" "KS1J\n" "KS1Y\n" "KS2G\n" "KS2L\n" "KS2O\n" "KS3D\n" "KS3F\n" "KS3P\n" "KS3S\n" "KS4G\n" "KS4L\n" "KS4S\n" "KS4V\n" "KS4X\n" "KS4XN\n" "KS4Z\n" "KS5A\n" "KS5Z\n" "KS6A\n" "KS6M\n" "KS6U\n" "KS7S\n" "KS7T\n" "KS7U\n" "KS8O\n" "KS9K\n" "KS9W\n" "KT0AD\n" "KT0DX\n" "KT0F\n" "KT0K\n" "KT0P\n" "KT0R\n" "KT1B\n" "KT1D\n" "KT1I\n" "KT1J\n" "KT1V\n" "KT1VT\n" "KT2D\n" "KT2Z\n" "KT3M\n" "KT3W\n" "KT3Y\n" "KT4AH\n" "KT4CB\n" "KT4DW\n" "KT4FJ\n" "KT4FY\n" "KT4HX\n" "KT4LF\n" "KT4MM\n" "KT4OO\n" "KT4PD\n" "KT4Q\n" "KT4RH\n" "KT4SS\n" "KT4TL\n" "KT4U\n" "KT4ZB\n" "KT5D\n" "KT5E\n" "KT5G\n" "KT5J\n" "KT5V\n" "KT5X\n" "KT6D\n" "KT6DX\n" "KT6LA\n" "KT6V\n" "KT6VV\n" "KT6YL\n" "KT7AZ\n" "KT7DX\n" "KT7G\n" "KT8K\n" "KT8N\n" "KT8R\n" "KT8X\n" "KT8Y\n" "KT8Z\n" "KT9B\n" "KT9L\n" "KT9T\n" "KT9W\n" "KU0DM\n" "KU0G\n" "KU0K\n" "KU1CW\n" "KU1T\n" "KU2C\n" "KU2M\n" "KU2US\n" "KU3G\n" "KU3X\n" "KU4A\n" "KU4AF\n" "KU4BL\n" "KU4BP\n" "KU4C\n" "KU4EC\n" "KU4GW\n" "KU4ME\n" "KU4MT\n" "KU4PY\n" "KU4UV\n" "KU4UW\n" "KU4V\n" "KU4VY\n" "KU4WD\n" "KU4XO\n" "KU4XP\n" "KU4YT\n" "KU4YW\n" "KU4ZV\n" "KU5B\n" "KU6S\n" "KU7K\n" "KU7N\n" "KU7Y\n" "KU7Z\n" "KU8E\n" "KU8L\n" "KU8T\n" "KU8V\n" "KU9RK\n" "KU9S\n" "KU9Z\n" "KV0K\n" "KV0Q\n" "KV1J\n" "KV1P\n" "KV1W\n" "KV2K\n" "KV2M\n" "KV2R\n" "KV2S\n" "KV2X\n" "KV3W\n" "KV4CN\n" "KV4CQ\n" "KV4DT\n" "KV4FZ\n" "KV4K\n" "KV4T\n" "KV5V\n" "KV5WS\n" "KV5Y\n" "KV6O\n" "KV7DX\n" "KV7K\n" "KV7S\n" "KV8Q\n" "KV9O\n" "KV9R\n" "KV9W\n" "KW0H\n" "KW0U\n" "KW0V\n" "KW2A\n" "KW2G\n" "KW2HV\n" "KW2J\n" "KW2N\n" "KW2O\n" "KW3A\n" "KW3F\n" "KW3LO\n" "KW3U\n" "KW3W\n" "KW4CC\n" "KW4E\n" "KW4J\n" "KW4JS\n" "KW4T\n" "KW4TT\n" "KW4V\n" "KW4VA\n" "KW4WK\n" "KW5HP\n" "KW5K\n" "KW5USA\n" "KW6G\n" "KW6N\n" "KW6Q\n" "KW7A\n" "KW7E\n" "KW7I\n" "KW7JS\n" "KW7N\n" "KW7OS\n" "KW7Q\n" "KW7XX\n" "KW7Y\n" "KW8N\n" "KW8O\n" "KW8V\n" "KW9A\n" "KW9CAT\n" "KW9DX\n" "KW9M\n" "KW9N\n" "KW9R\n" "KX0R\n" "KX1E\n" "KX1G\n" "KX1X\n" "KX2A\n" "KX2B\n" "KX2H\n" "KX2P\n" "KX2S\n" "KX2X\n" "KX2Y\n" "KX3K\n" "KX3Q\n" "KX4D\n" "KX4G\n" "KX4O\n" "KX4P\n" "KX4R\n" "KX4X\n" "KX5A\n" "KX5RW\n" "KX5T\n" "KX5W\n" "KX6M\n" "KX6X\n" "KX7F\n" "KX7L\n" "KX7M\n" "KX7YT\n" "KX8A\n" "KX8D\n" "KX8K\n" "KX8X\n" "KX9DX\n" "KX9M\n" "KX9Q\n" "KX9X\n" "KY0O\n" "KY0R\n" "KY0W\n" "KY0Y\n" "KY1LAW\n" "KY1RK\n" "KY1Z\n" "KY2J\n" "KY2T\n" "KY3B\n" "KY3X\n" "KY4BP\n" "KY4CW\n" "KY4F\n" "KY4J\n" "KY4P\n" "KY4USA\n" "KY4Z\n" "KY5D\n" "KY5G\n" "KY5N\n" "KY5Q\n" "KY5R\n" "KY6J\n" "KY6LA\n" "KY7K\n" "KY7L\n" "KY7M\n" "KY7Q\n" "KY9KY\n" "KY9KYO\n" "KZ1A\n" "KZ1K\n" "KZ1M\n" "KZ1O\n" "KZ1W\n" "KZ1X\n" "KZ1Z\n" "KZ2I\n" "KZ2T\n" "KZ2V\n" "KZ3DX\n" "KZ3M\n" "KZ3Q\n" "KZ3W\n" "KZ3X\n" "KZ4D\n" "KZ4G\n" "KZ4USA\n" "KZ4V\n" "KZ4VT\n" "KZ4ZZ\n" "KZ5A\n" "KZ5AM\n" "KZ5D\n" "KZ5J\n" "KZ5JE\n" "KZ5MM\n" "KZ5OH\n" "KZ5OM\n" "KZ5P\n" "KZ5V\n" "KZ6D\n" "KZ7O\n" "KZ7Q\n" "KZ7X\n" "KZ8A\n" "KZ8E\n" "KZ8K\n" "KZ8ZZ\n" "KZ9O\n" "L20E\n" "L21D\n" "L25X\n" "L33M\n" "L44DX\n" "L46V\n" "L47H\n" "L55D\n" "L60DK\n" "L73D\n" "L73DX\n" "LA0CX\n" "LA0FA\n" "LA1BFA\n" "LA1DSA\n" "LA1EK\n" "LA1ENA\n" "LA1K\n" "LA1NSB\n" "LA1PHA\n" "LA1QDA\n" "LA1TPA\n" "LA1TPK\n" "LA1TUR\n" "LA1UKA\n" "LA1VFA\n" "LA1VNA\n" "LA1XFA\n" "LA1YE\n" "LA1YPA\n" "LA2008TSR\n" "LA2AB\n" "LA2FKA\n" "LA2GH\n" "LA2GN\n" "LA2GRA\n" "LA2HFA\n" "LA2IJ\n" "LA2MJA\n" "LA2MOA\n" "LA2O\n" "LA2OKA\n" "LA2PA\n" "LA2QM\n" "LA2RZ\n" "LA2TD\n" "LA2WRA\n" "LA2XPA\n" "LA3ANA\n" "LA3BO\n" "LA3BPA\n" "LA3HPA\n" "LA3RK\n" "LA3S\n" "LA3TK\n" "LA3WAA\n" "LA3YNA\n" "LA3YU\n" "LA3ZA\n" "LA3ZPA\n" "LA4CW\n" "LA4EI\n" "LA4EJ\n" "LA4EU\n" "LA4FNA\n" "LA4GHA\n" "LA4IR\n" "LA4NE\n" "LA4O\n" "LA4OGA\n" "LA4PM\n" "LA4RT\n" "LA4SGA\n" "LA4URA\n" "LA4WKA\n" "LA5EKA\n" "LA5FBA\n" "LA5FH\n" "LA5FJA\n" "LA5HE\n" "LA5HPA\n" "LA5IIA\n" "LA5LBA\n" "LA5LJA\n" "LA5MDA\n" "LA5PBA\n" "LA5PRA\n" "LA5SAA\n" "LA5SJA\n" "LA5TFA\n" "LA5UF\n" "LA5UJ\n" "LA5UKA\n" "LA5VK\n" "LA5WNA\n" "LA5YJ\n" "LA5YW\n" "LA5ZQ\n" "LA6ALA\n" "LA6BNA\n" "LA6CF\n" "LA6DW\n" "LA6FJA\n" "LA6HL\n" "LA6IHA\n" "LA6IRA\n" "LA6K\n" "LA6KOA\n" "LA6LDA\n" "LA6OP\n" "LA6PB\n" "LA6TP\n" "LA6VM\n" "LA6YEA\n" "LA6ZFA\n" "LA7AFA\n" "LA7CL\n" "LA7GIA\n" "LA7GNA\n" "LA7IJA\n" "LA7JO\n" "LA7NFA\n" "LA7OC\n" "LA7QI\n" "LA7QIA\n" "LA7RJ\n" "LA7RRA\n" "LA7SI\n" "LA7SKA\n" "LA7THA\n" "LA7TN\n" "LA7TO\n" "LA7VE\n" "LA7WCA\n" "LA7XK\n" "LA8AJA\n" "LA8AW\n" "LA8D\n" "LA8DW\n" "LA8HGA\n" "LA8KRA\n" "LA8NRA\n" "LA8OKA\n" "LA8OM\n" "LA8OOA\n" "LA8PDA\n" "LA8TIA\n" "LA8UHA\n" "LA8UL\n" "LA8WG\n" "LA8XM\n" "LA8ZIA\n" "LA9AJA\n" "LA9BM\n" "LA9DAA\n" "LA9DJA\n" "LA9DK\n" "LA9FFA\n" "LA9LMA\n" "LA9NM\n" "LA9QL\n" "LA9QNA\n" "LA9TJA\n" "LA9TY\n" "LA9VDA\n" "LA9VK\n" "LA9VPA\n" "LA9XKA\n" "LA9Z\n" "LB2TB\n" "LB3KB\n" "LB7Q\n" "LB9LE\n" "LB9RE\n" "LG5LG\n" "LN1T\n" "LN2HQ\n" "LN2L\n" "LN2T\n" "LN3F\n" "LN3R\n" "LN3Z\n" "LN4BBC\n" "LN5O\n" "LN7AZ\n" "LN8W\n" "LN9Z\n" "LO2F\n" "LO7D\n" "LO7H\n" "LP1H\n" "LP2F\n" "LP3U\n" "LQ0F\n" "LQ4D\n" "LQ5H\n" "LR1A\n" "LR1H\n" "LR1V\n" "LR2F\n" "LR4D\n" "LR4E\n" "LR6H\n" "LR7F\n" "LS1D\n" "LS2D\n" "LS2E\n" "LS4DX\n" "LT0D\n" "LT0H\n" "LT1A\n" "LT1D\n" "LT1F\n" "LT1K\n" "LT2F\n" "LT4S\n" "LT5D\n" "LT5H\n" "LT5X\n" "LT5Y\n" "LT7D\n" "LT7H\n" "LU1AEE\n" "LU1ALF\n" "LU1ARG\n" "LU1ARV\n" "LU1BJW\n" "LU1BR\n" "LU1BW\n" "LU1DCB\n" "LU1DK\n" "LU1DP\n" "LU1DZ\n" "LU1EDH\n" "LU1EJ\n" "LU1EWL\n" "LU1FDU\n" "LU1HF\n" "LU1HLH\n" "LU1IBL\n" "LU1ICX\n" "LU1MPK\n" "LU1MSD\n" "LU1NDC\n" "LU1QAH\n" "LU1QS\n" "LU1SF\n" "LU1UM\n" "LU1VM\n" "LU1WI\n" "LU1XS\n" "LU1YY\n" "LU2AH\n" "LU2BA\n" "LU2DGZ\n" "LU2DKT\n" "LU2DPW\n" "LU2DT\n" "LU2DVI/H\n" "LU2EE\n" "LU2EQF\n" "LU2FCB\n" "LU2FFD\n" "LU2FLN\n" "LU2NI\n" "LU2QC\n" "LU2UE\n" "LU2UF\n" "LU2VC\n" "LU3CQ\n" "LU3CT\n" "LU3DAT\n" "LU3DDH\n" "LU3DKV\n" "LU3DOC\n" "LU3DR\n" "LU3DX\n" "LU3DY\n" "LU3FID\n" "LU3FLV\n" "LU3HIP\n" "LU3HS\n" "LU3JVO\n" "LU3MAM\n" "LU3MCJ\n" "LU4AT\n" "LU4DPC\n" "LU4DQ\n" "LU4DX\n" "LU4DXU\n" "LU4EJS\n" "LU4FLJ\n" "LU4FPZ\n" "LU4FW\n" "LU4KC\n" "LU4MHQ\n" "LU4VEW\n" "LU4WG\n" "LU5CAB\n" "LU5EVK\n" "LU5FF\n" "LU5FII\n" "LU5FMC\n" "LU5FT\n" "LU5FZ/A\n" "LU5MT\n" "LU5OM\n" "LU5VV\n" "LU5WW\n" "LU5YF\n" "LU6AM\n" "LU6DAT\n" "LU6DK\n" "LU6DO\n" "LU6EF\n" "LU6EQT\n" "LU6ETB\n" "LU6EVD\n" "LU6FAH\n" "LU6FBJ\n" "LU6FEC\n" "LU6FN\n" "LU6FOV\n" "LU6FT\n" "LU6KA\n" "LU6QI\n" "LU6UBN\n" "LU6UO\n" "LU6WG\n" "LU6XQ/D\n" "LU7DNN\n" "LU7DSU\n" "LU7DSY\n" "LU7EE\n" "LU7FPA\n" "LU7FSM\n" "LU7FTS\n" "LU7FWV\n" "LU7HN\n" "LU7HW\n" "LU7KAT\n" "LU7MAL\n" "LU7MCJ\n" "LU7MSE\n" "LU7SN\n" "LU7VCH\n" "LU7YS\n" "LU7YW\n" "LU7YZ\n" "LU8ADX\n" "LU8DWR\n" "LU8DY\n" "LU8EEM\n" "LU8EGS\n" "LU8EHR\n" "LU8EOT\n" "LU8QT\n" "LU8SAN\n" "LU8YE\n" "LU9DA\n" "LU9DAG\n" "LU9DO\n" "LU9DTC\n" "LU9ESD\n" "LU9EY\n" "LU9FDG\n" "LU9FFZ\n" "LU9HP\n" "LU9MBY\n" "LU9MDH\n" "LV5V\n" "LV6D\n" "LW1DBG\n" "LW1DTZ\n" "LW1DX\n" "LW1E\n" "LW1EUD\n" "LW1EXU/D\n" "LW1HR\n" "LW2DFH\n" "LW3DC\n" "LW3DG\n" "LW3DIV\n" "LW3DN\n" "LW3EWZ\n" "LW3EX\n" "LW4DYI\n" "LW4EU\n" "LW4HBR\n" "LW5DFR\n" "LW5DR\n" "LW5EAE\n" "LW5EE\n" "LW5ET\n" "LW5HBR\n" "LW6DG\n" "LW6DW\n" "LW6EFR\n" "LW7DX\n" "LW7H\n" "LW7HE\n" "LW7HT\n" "LW8DQ\n" "LW9DHR\n" "LW9EOC\n" "LW9ETQ\n" "LX0HQ\n" "LX1A\n" "LX1DA\n" "LX1EA\n" "LX1ER\n" "LX1FC\n" "LX1HD\n" "LX1KC\n" "LX1KN\n" "LX1NO\n" "LX1SG\n" "LX1TO\n" "LX1UN\n" "LX30AK\n" "LX4A\n" "LX5T\n" "LX7I\n" "LX8DL\n" "LX8I\n" "LX8M\n" "LX8RTTY\n" "LX9EG\n" "LX9UN\n" "LY0HQ\n" "LY1AKM\n" "LY1BA\n" "LY1BX\n" "LY1C\n" "LY1CG\n" "LY1CM\n" "LY1CO\n" "LY1CT\n" "LY1CX\n" "LY1DJ\n" "LY1DT\n" "LY1FGP\n" "LY1FW\n" "LY1G\n" "LY1GK\n" "LY1K\n" "LY1M\n" "LY1MA\n" "LY1N\n" "LY1NDN\n" "LY1PM\n" "LY1R\n" "LY1RB\n" "LY1TR\n" "LY1XA\n" "LY1XM\n" "LY2A\n" "LY2AE\n" "LY2AO\n" "LY2AT\n" "LY2BAW\n" "LY2BBF\n" "LY2BIS\n" "LY2BKT\n" "LY2BNL\n" "LY2BOK\n" "LY2BOS\n" "LY2BUU\n" "LY2BVB\n" "LY2C\n" "LY2CG\n" "LY2CO\n" "LY2CV\n" "LY2CX\n" "LY2DM\n" "LY2DV\n" "LY2DX\n" "LY2DZ\n" "LY2F\n" "LY2FN\n" "LY2GV\n" "LY2GW\n" "LY2H\n" "LY2IJ\n" "LY2J\n" "LY2K\n" "LY2KM\n" "LY2KZ\n" "LY2L\n" "LY2LB\n" "LY2LE\n" "LY2LF\n" "LY2LU\n" "LY2MM\n" "LY2N\n" "LY2ND\n" "LY2NK\n" "LY2O\n" "LY2OF\n" "LY2OM\n" "LY2OO\n" "LY2OU\n" "LY2OX\n" "LY2PX\n" "LY2QT\n" "LY2RJ\n" "LY2SA\n" "LY2SL\n" "LY2T\n" "LY2TA\n" "LY2TS\n" "LY2VA\n" "LY2W\n" "LY2WJ\n" "LY2WN\n" "LY2X\n" "LY2XW\n" "LY2YR\n" "LY2ZZ\n" "LY3A\n" "LY3B\n" "LY3BB\n" "LY3BG\n" "LY3BM\n" "LY3BN\n" "LY3BY\n" "LY3CW\n" "LY3CY\n" "LY3ID\n" "LY3JM\n" "LY3KS\n" "LY3M\n" "LY3NX\n" "LY3O\n" "LY3P\n" "LY3QA\n" "LY3RA\n" "LY3S\n" "LY3SL\n" "LY3TW\n" "LY3UV\n" "LY3V\n" "LY3VD\n" "LY3W\n" "LY3X\n" "LY3ZM\n" "LY4A\n" "LY4AA\n" "LY4BF\n" "LY4BP\n" "LY4BR\n" "LY4CW\n" "LY4D\n" "LY4G\n" "LY4K\n" "LY4L\n" "LY4MM\n" "LY4OO\n" "LY4Q\n" "LY4R\n" "LY4T\n" "LY5A\n" "LY5G\n" "LY5R\n" "LY5W\n" "LY6A\n" "LY6M\n" "LY7A\n" "LY7M\n" "LY7Z\n" "LY8O\n" "LY9A\n" "LY9Y\n" "LZ/SQ9UM\n" "LZ09BR\n" "LZ09IPY\n" "LZ100SO\n" "LZ10ARDF\n" "LZ10RF\n" "LZ1195IR\n" "LZ170HD\n" "LZ17ARDF\n" "LZ180FT\n" "LZ1ABC\n" "LZ1AF\n" "LZ1AQ\n" "LZ1AZ\n" "LZ1BJ\n" "LZ1BJ/1\n" "LZ1BP\n" "LZ1BY\n" "LZ1CF\n" "LZ1CY\n" "LZ1DCD\n" "LZ1DM\n" "LZ1DNY\n" "LZ1DO\n" "LZ1DQ\n" "LZ1EO\n" "LZ1EP\n" "LZ1FH\n" "LZ1FI\n" "LZ1FJ\n" "LZ1GL\n" "LZ1HW\n" "LZ1IA\n" "LZ1IKY\n" "LZ1IQ\n" "LZ1JY\n" "LZ1JZ\n" "LZ1KP\n" "LZ1KSC\n" "LZ1KZA\n" "LZ1MC\n" "LZ1MG\n" "LZ1MS\n" "LZ1ND\n" "LZ1NG\n" "LZ1NJ\n" "LZ1NK\n" "LZ1NY\n" "LZ1NYK\n" "LZ1OI\n" "LZ1OJ\n" "LZ1ONK\n" "LZ1PJ\n" "LZ1PM\n" "LZ1PSH\n" "LZ1QB\n" "LZ1QI\n" "LZ1QN\n" "LZ1QV\n" "LZ1QZ\n" "LZ1RGM\n" "LZ1SDR\n" "LZ1VB\n" "LZ1VCT\n" "LZ1VQ\n" "LZ1VVV\n" "LZ1WJ\n" "LZ1XL\n" "LZ1YE\n" "LZ1YG\n" "LZ1YP\n" "LZ1YY\n" "LZ1ZC\n" "LZ1ZF\n" "LZ1ZJ\n" "LZ1ZM\n" "LZ1ZV\n" "LZ26ZA\n" "LZ2A\n" "LZ2AB\n" "LZ2AG\n" "LZ2AY\n" "LZ2BE\n" "LZ2CC\n" "LZ2CE\n" "LZ2CJ\n" "LZ2CWW\n" "LZ2DF\n" "LZ2EG\n" "LZ2ES\n" "LZ2FM\n" "LZ2FO\n" "LZ2FQ\n" "LZ2GS\n" "LZ2HA\n" "LZ2HM\n" "LZ2HN\n" "LZ2HR\n" "LZ2JA\n" "LZ2JR\n" "LZ2KAF\n" "LZ2KV\n" "LZ2LE\n" "LZ2LH\n" "LZ2LT\n" "LZ2MW\n" "LZ2NA\n" "LZ2NG\n" "LZ2NKM\n" "LZ2OV\n" "LZ2PB\n" "LZ2PEP\n" "LZ2PI\n" "LZ2PL\n" "LZ2PS\n" "LZ2RS\n" "LZ2SC\n" "LZ2SX\n" "LZ2UU\n" "LZ2UW\n" "LZ2UZ\n" "LZ2VP\n" "LZ2VU\n" "LZ2XF\n" "LZ2ZD\n" "LZ2ZF\n" "LZ2ZG\n" "LZ2ZY\n" "LZ3CB\n" "LZ3DX\n" "LZ3FN\n" "LZ3HI\n" "LZ3IW\n" "LZ3NY\n" "LZ3PZ\n" "LZ3RZ\n" "LZ3SD\n" "LZ3SM\n" "LZ3TL\n" "LZ3TY\n" "LZ3YV\n" "LZ3ZQ\n" "LZ3ZX\n" "LZ3ZZ\n" "LZ40ATSA\n" "LZ44WFF\n" "LZ4AE\n" "LZ4BU\n" "LZ4GL\n" "LZ4RR\n" "LZ4TL\n" "LZ4TX\n" "LZ4UU\n" "LZ5A\n" "LZ5F\n" "LZ5K\n" "LZ5R\n" "LZ5T\n" "LZ5VK\n" "LZ5XQ\n" "LZ5Z\n" "LZ5ZI\n" "LZ65P\n" "LZ6W\n" "LZ7G\n" "LZ7H\n" "LZ7HQ\n" "LZ7J\n" "LZ7S\n" "LZ7T\n" "LZ7X\n" "LZ8A\n" "LZ8E\n" "LZ8W\n" "LZ9A\n" "LZ9C\n" "LZ9R\n" "LZ9V\n" "LZ9W\n" "LZ9X\n" "M0AAA\n" "M0AAC\n" "M0AAS\n" "M0ACL\n" "M0ACM\n" "M0AEJ\n" "M0AEU\n" "M0AFE\n" "M0AFJ\n" "M0AGA\n" "M0AID\n" "M0AJM\n" "M0AMS\n" "M0AOI\n" "M0ASR\n" "M0AWS\n" "M0AWX\n" "M0AXD\n" "M0B\n" "M0BCT\n" "M0BGR\n" "M0BJL\n" "M0BJX\n" "M0BKH\n" "M0BKV\n" "M0BLF\n" "M0BMX\n" "M0BPQ\n" "M0BSV\n" "M0BUY\n" "M0BVE\n" "M0BVQ\n" "M0BXR\n" "M0BZU\n" "M0BZZ\n" "M0CAR\n" "M0CCQ\n" "M0CEF\n" "M0CES\n" "M0CFW\n" "M0CHK\n" "M0CJW\n" "M0CKE\n" "M0CKX\n" "M0CMH\n" "M0CNP\n" "M0COK\n" "M0COM\n" "M0COP\n" "M0CQE\n" "M0CSD\n" "M0CTR\n" "M0CUL\n" "M0CUS\n" "M0CVK\n" "M0CYR\n" "M0DCD\n" "M0DDT\n" "M0DEG\n" "M0DEP\n" "M0DGB\n" "M0DHO\n" "M0DIV\n" "M0DKN\n" "M0DLL\n" "M0DMA\n" "M0DMJ\n" "M0DMS\n" "M0DOL\n" "M0DOL/P\n" "M0DSK\n" "M0DUO\n" "M0DVV\n" "M0DWW\n" "M0DXR\n" "M0DXS\n" "M0DYI\n" "M0EBJ\n" "M0EDX\n" "M0EMM\n" "M0EVI\n" "M0FAQ\n" "M0FCR\n" "M0FJM\n" "M0FTL\n" "M0GAV\n" "M0GBK\n" "M0GBP\n" "M0GDX\n" "M0GEJ\n" "M0GHQ\n" "M0GIA/P\n" "M0GIZ\n" "M0GJH\n" "M0GKC\n" "M0GLP\n" "M0GME\n" "M0GMT\n" "M0GWS\n" "M0HDD\n" "M0HDK\n" "M0HEM\n" "M0HKB\n" "M0HRC\n" "M0HWK\n" "M0IAA\n" "M0IKE\n" "M0ILT\n" "M0INB\n" "M0IOD\n" "M0IPS\n" "M0ITY\n" "M0JME\n" "M0JMO\n" "M0JRA\n" "M0KAZ\n" "M0KOP\n" "M0KPB\n" "M0KSJ\n" "M0KTM\n" "M0KVP\n" "M0KZH\n" "M0LLW\n" "M0LMH\n" "M0LUV\n" "M0MAC\n" "M0MAD\n" "M0MCV\n" "M0MCX\n" "M0MDF\n" "M0MDR\n" "M0MGF\n" "M0MRB\n" "M0NDZ\n" "M0NKS\n" "M0NNH\n" "M0NOV\n" "M0NQN\n" "M0OIC\n" "M0OKT\n" "M0OVL\n" "M0OXD\n" "M0OXO\n" "M0PAR\n" "M0PCB\n" "M0PIE\n" "M0PNN\n" "M0POQ\n" "M0PSK\n" "M0PSW\n" "M0RBE\n" "M0RBG\n" "M0REX\n" "M0RGI\n" "M0RHS\n" "M0RIA\n" "M0RMW\n" "M0RNR\n" "M0RPD\n" "M0RSD\n" "M0RTI\n" "M0RYB\n" "M0SAD\n" "M0SAT\n" "M0SCG\n" "M0SDX\n" "M0SDY\n" "M0SEL\n" "M0SFR\n" "M0SLA/W9\n" "M0SUF\n" "M0TAZ\n" "M0TCA\n" "M0TDW\n" "M0TEF\n" "M0TFO\n" "M0TJU\n" "M0TLN\n" "M0TMW/P\n" "M0TUB\n" "M0TUL\n" "M0TVT\n" "M0TWW\n" "M0TZO\n" "M0UCK\n" "M0UNI\n" "M0URX\n" "M0USY\n" "M0UTD\n" "M0UTD/P\n" "M0VAA\n" "M0VBY\n" "M0VFC\n" "M0VIE\n" "M0VKC\n" "M0VKX\n" "M0VKY\n" "M0VPE\n" "M0WAY\n" "M0WBX\n" "M0WGI\n" "M0WKR\n" "M0WLF\n" "M0WTD\n" "M0WTF\n" "M0WTG\n" "M0WYB\n" "M0WYM\n" "M0XAT\n" "M0XDX\n" "M0XGB\n" "M0XIE\n" "M0XIK\n" "M0XJP\n" "M0XKD\n" "M0XLD\n" "M0XLT\n" "M0XSM\n" "M0XXT\n" "M0YCQ\n" "M0YCQ/P\n" "M0YEC\n" "M0YOM\n" "M0YYV\n" "M0ZAK\n" "M0ZDW\n" "M0ZJB\n" "M0ZRA\n" "M0ZWW\n" "M1A\n" "M1ACB\n" "M1ADX\n" "M1BYH\n" "M1CEC\n" "M1DDD\n" "M1DNC\n" "M1DSE/P\n" "M1DST\n" "M1DTJ\n" "M1EBV\n" "M1EYP\n" "M1EYP/P\n" "M1FCV\n" "M1HOG\n" "M1LMO\n" "M1PTR\n" "M1SLH\n" "M1SMH\n" "M1TZR\n" "M1VHT\n" "M1WDK\n" "M2W\n" "M2X\n" "M3CEC\n" "M3DOV\n" "M3ENF\n" "M3FDZ\n" "M3GWO\n" "M3HXS\n" "M3JFM\n" "M3OHA\n" "M3OIG\n" "M3ONL\n" "M3PBK\n" "M3PHP\n" "M3PSK\n" "M3PZT\n" "M3RCV\n" "M3TBV\n" "M3TLP\n" "M3UFB\n" "M3UNN\n" "M3UXJ\n" "M3UZV\n" "M3VAM\n" "M3VQZ\n" "M3W\n" "M3WAZ\n" "M3WNF\n" "M3WYX\n" "M3XAC\n" "M3XFL\n" "M3XIK\n" "M3XMC\n" "M3XYP\n" "M3YFL\n" "M3YOS\n" "M3ZWW\n" "M3ZXX\n" "M4A\n" "M4T\n" "M4U\n" "M5A\n" "M5ADZ\n" "M5AEF\n" "M5AEO\n" "M5AEX\n" "M5AFD\n" "M5AGV\n" "M5ALG\n" "M5ARC\n" "M5B\n" "M5BFL\n" "M5BFL/P\n" "M5DIK\n" "M5E\n" "M5FUN\n" "M5GUS\n" "M5ITE\n" "M5KJM\n" "M5LRO\n" "M5O\n" "M5T\n" "M5X\n" "M6CMG\n" "M6GCS\n" "M6HRS\n" "M6JAS\n" "M6KAH\n" "M6OJE\n" "M6RPG\n" "M6T\n" "M6W\n" "M7A\n" "M7T\n" "M8C\n" "M8M\n" "M9C\n" "M9W\n" "M9X\n" "MA0BQI\n" "MA0GPZ\n" "MA0RKT\n" "MA0XAU\n" "MA3YFT\n" "MC0SHL\n" "MD0CCE\n" "MD0MDI\n" "MD3YLX\n" "MD3ZFQ\n" "MD4K\n" "MD6V\n" "MD9Y\n" "MI0AYR\n" "MI0BPB\n" "MI0ENR\n" "MI0GRG\n" "MI0GTM\n" "MI0JFC\n" "MI0JZZ\n" "MI0LLL\n" "MI0M\n" "MI0MIX\n" "MI0MVP\n" "MI0SAI\n" "MI0SDR\n" "MI0TFK\n" "MI1SJM\n" "MI3OZX\n" "MI5JYK\n" "MI6GWA\n" "MJ/W1NN\n" "MJ0ASP\n" "MJ0CFW\n" "MJ4K\n" "MM0AMW\n" "MM0APF\n" "MM0BHX\n" "MM0BHY\n" "MM0BQI\n" "MM0BQN\n" "MM0BSM\n" "MM0CBL\n" "MM0CIN\n" "MM0DFV\n" "MM0DFZ\n" "MM0DVZ\n" "MM0DWF\n" "MM0DXH\n" "MM0EAX\n" "MM0FWG\n" "MM0GHM/P\n" "MM0GOR\n" "MM0GPZ\n" "MM0JOK\n" "MM0JVB\n" "MM0KBT\n" "MM0LGR\n" "MM0LID\n" "MM0MOC\n" "MM0MUK\n" "MM0NDX\n" "MM0Q\n" "MM0R\n" "MM0RKT\n" "MM0ROV\n" "MM0SAJ\n" "MM0SGQ\n" "MM0SJH\n" "MM0TFU\n" "MM0TOB\n" "MM0VTV\n" "MM0WHA\n" "MM0WNW\n" "MM0XAU\n" "MM0XDG\n" "MM0YEC\n" "MM1D\n" "MM2R\n" "MM3LLU\n" "MM3PDM\n" "MM3RCR\n" "MM3RDP\n" "MM3T\n" "MM3UOR\n" "MM3WEV\n" "MM3XXW\n" "MM3YCG\n" "MM3YFT\n" "MM3YIO\n" "MM5DWW\n" "MM5FUN\n" "MM6ADR\n" "MM6GLI\n" "MM6SOR\n" "MN0OCG/P\n" "MS0ZET\n" "MU/DL5SE\n" "MU/OZ7BQ\n" "MU0FAL\n" "MU0GSY\n" "MW0AUG\n" "MW0BYS\n" "MW0CBC\n" "MW0CRI\n" "MW0CVT\n" "MW0CWJ\n" "MW0DNF\n" "MW0GOV\n" "MW0HMV\n" "MW0IDX\n" "MW0JRX\n" "MW0JZE\n" "MW0LAO\n" "MW0MAU\n" "MW0MJB\n" "MW0MWZ\n" "MW0RZC\n" "MW0X\n" "MW0XMI\n" "MW0YDX\n" "MW0ZZK\n" "MW1LCR\n" "MW1MDH\n" "MW2I\n" "MW3WSC\n" "MW5A\n" "MW5ACN\n" "MW5D\n" "MW6SLW\n" "MW6VHF\n" "MW9W\n" "MX0ADJ\n" "MX1SWL/A\n" "MZ5B\n" "MZ8A\n" "N0ABA\n" "N0AC\n" "N0ADL\n" "N0AE\n" "N0AG\n" "N0AH\n" "N0AIE\n" "N0ANP\n" "N0AR\n" "N0ARU\n" "N0AT\n" "N0AV\n" "N0AX\n" "N0AZZ\n" "N0BB\n" "N0BDS\n" "N0BE\n" "N0BED\n" "N0BK\n" "N0BLG\n" "N0BM\n" "N0BOF\n" "N0BSS\n" "N0BUI\n" "N0CEL\n" "N0CKC\n" "N0CN\n" "N0CRL\n" "N0CU\n" "N0DFP\n" "N0DH\n" "N0DJY\n" "N0DNR\n" "N0DQS\n" "N0DWY\n" "N0EG\n" "N0ENQ\n" "N0EO\n" "N0EOP\n" "N0EQ\n" "N0EVH\n" "N0EZH\n" "N0FCD\n" "N0FP\n" "N0FTZ\n" "N0FV\n" "N0FW\n" "N0GBR\n" "N0GF\n" "N0GIC\n" "N0GMG\n" "N0GMT\n" "N0GOM\n" "N0GOS\n" "N0GWH\n" "N0GZ\n" "N0HD\n" "N0HF\n" "N0HIO\n" "N0HJZ\n" "N0HNQ\n" "N0HR\n" "N0HT\n" "N0HT/4\n" "N0IB\n" "N0IBD\n" "N0IBT\n" "N0IJ\n" "N0IJK\n" "N0IM\n" "N0IRM\n" "N0IRW\n" "N0IW\n" "N0JBF\n" "N0JG\n" "N0JK\n" "N0JL\n" "N0JTE\n" "N0JX\n" "N0JZ\n" "N0KBD\n" "N0KE\n" "N0KGM\n" "N0KK\n" "N0KM\n" "N0KMA\n" "N0KQ\n" "N0KV\n" "N0LEF\n" "N0LGU\n" "N0LIA\n" "N0LIE\n" "N0LLH\n" "N0LP\n" "N0LRI\n" "N0LSD\n" "N0LTX\n" "N0LY\n" "N0LZ\n" "N0MA\n" "N0MNO\n" "N0MSB\n" "N0NB\n" "N0NC\n" "N0NI\n" "N0NM\n" "N0NO\n" "N0NR\n" "N0NS\n" "N0OB\n" "N0OCT\n" "N0ODK\n" "N0OJ\n" "N0OK\n" "N0OP\n" "N0OST\n" "N0OU\n" "N0PB\n" "N0PC\n" "N0PFE\n" "N0PL\n" "N0PNQ\n" "N0PSJ\n" "N0PVZ\n" "N0QE\n" "N0QNL\n" "N0QO\n" "N0QP\n" "N0QW\n" "N0QX\n" "N0QXW\n" "N0RB\n" "N0RDJ\n" "N0RN\n" "N0RPI\n" "N0RPJ\n" "N0RR\n" "N0RT\n" "N0RU\n" "N0RUV\n" "N0RWR\n" "N0RZT\n" "N0SJ\n" "N0SM\n" "N0SMX\n" "N0SO\n" "N0SOX\n" "N0SRF\n" "N0SS\n" "N0SSC\n" "N0ST\n" "N0STL\n" "N0SWE\n" "N0SXX\n" "N0TA\n" "N0TG\n" "N0TK\n" "N0TMU\n" "N0TOP\n" "N0TT\n" "N0TU\n" "N0TUN\n" "N0TW\n" "N0TYE\n" "N0UA\n" "N0UB\n" "N0UD\n" "N0UJJ\n" "N0UN\n" "N0UNL\n" "N0UR\n" "N0URW\n" "N0UU\n" "N0UV\n" "N0UY\n" "N0VCY\n" "N0VD\n" "N0VLJ\n" "N0VLN\n" "N0VPL\n" "N0VR\n" "N0VRP\n" "N0VTZ\n" "N0VVH\n" "N0VY\n" "N0WAF\n" "N0WAR\n" "N0WE\n" "N0WFO\n" "N0WM\n" "N0XA\n" "N0XJO\n" "N0XM\n" "N0XR\n" "N0XT\n" "N0YD\n" "N0YE\n" "N0YKN\n" "N0YO\n" "N0YY\n" "N0ZA\n" "N0ZC\n" "N0ZGG\n" "N0ZK\n" "N0ZM\n" "N1AA\n" "N1AAU\n" "N1ABA\n" "N1ABF\n" "N1ABY\n" "N1AC\n" "N1ADY\n" "N1AIA\n" "N1AM\n" "N1AO\n" "N1AP\n" "N1API\n" "N1AU\n" "N1AW\n" "N1BAA\n" "N1BCL\n" "N1BFO\n" "N1BG\n" "N1BNC\n" "N1BQL\n" "N1BRU\n" "N1BSA\n" "N1BUG\n" "N1BY\n" "N1BZ\n" "N1CC\n" "N1CE\n" "N1CGP\n" "N1CKM\n" "N1CM\n" "N1CWR\n" "N1DC\n" "N1DCM\n" "N1DD\n" "N1DF\n" "N1DG\n" "N1DGF\n" "N1DJF\n" "N1DK\n" "N1DM\n" "N1DS\n" "N1EMC\n" "N1EO\n" "N1EOP\n" "N1EU\n" "N1EY\n" "N1EZO\n" "N1FD\n" "N1FDX\n" "N1FIO\n" "N1FJ\n" "N1FOJ\n" "N1FQ\n" "N1GB\n" "N1GC\n" "N1GDD\n" "N1GE\n" "N1GFS\n" "N1GKE\n" "N1GKX\n" "N1GLT\n" "N1GN\n" "N1GSA\n" "N1HCE\n" "N1HLZ\n" "N1HRA\n" "N1HT\n" "N1HTS\n" "N1HY\n" "N1IBM\n" "N1IER\n" "N1ILD\n" "N1IMW\n" "N1ITT\n" "N1IUN\n" "N1IVY\n" "N1IW\n" "N1IX\n" "N1IXF\n" "N1JAO\n" "N1JBH\n" "N1JD\n" "N1JDK\n" "N1JM\n" "N1JP\n" "N1JW\n" "N1KEZ\n" "N1KJW\n" "N1KOH\n" "N1KON\n" "N1KPY\n" "N1KR\n" "N1KW\n" "N1KWF\n" "N1LI\n" "N1LJG\n" "N1LN\n" "N1LQ\n" "N1LT\n" "N1LU\n" "N1MEO\n" "N1MGO\n" "N1MIW\n" "N1MJF\n" "N1MM\n" "N1MQ\n" "N1ND\n" "N1NK\n" "N1NKC\n" "N1NN\n" "N1NQZ\n" "N1NRK\n" "N1OFV\n" "N1OIG\n" "N1OWA\n" "N1OXA\n" "N1PGA\n" "N1PT\n" "N1QAE\n" "N1QEH\n" "N1QEQ\n" "N1QI\n" "N1QM\n" "N1QN\n" "N1QV\n" "N1QXV\n" "N1QY\n" "N1RA\n" "N1RB\n" "N1RFB\n" "N1RFK\n" "N1RK\n" "N1RNJ\n" "N1RR\n" "N1RX\n" "N1SDH\n" "N1SM\n" "N1SNB\n" "N1SPX\n" "N1SV\n" "N1SW\n" "N1SXL\n" "N1SZ\n" "N1TB\n" "N1TKS\n" "N1TM\n" "N1TO\n" "N1TQ\n" "N1UDY\n" "N1UED\n" "N1UK\n" "N1UR\n" "N1URA\n" "N1UW\n" "N1UZ\n" "N1VVV\n" "N1VXW\n" "N1WC\n" "N1WGX\n" "N1WK\n" "N1WON\n" "N1WPU\n" "N1WQ\n" "N1WR\n" "N1WRK\n" "N1WWE\n" "N1XIH/7\n" "N1XK\n" "N1XLG\n" "N1XQ\n" "N1XX\n" "N1XY\n" "N1YBX\n" "N1YC\n" "N1YE\n" "N1YF\n" "N1YNI\n" "N1YW\n" "N1YWB\n" "N1YX\n" "N1YXE\n" "N1ZJ\n" "N1ZN\n" "N1ZQ\n" "N1ZU\n" "N1ZX\n" "N1ZZ\n" "N2AA\n" "N2AB\n" "N2ADE\n" "N2AET\n" "N2AJ\n" "N2AK\n" "N2AMG\n" "N2AN\n" "N2ATA\n" "N2AUG\n" "N2AXX\n" "N2AYI\n" "N2BA\n" "N2BC\n" "N2BEE\n" "N2BEG\n" "N2BJ\n" "N2BJ/9\n" "N2BJV\n" "N2BMK\n" "N2BR\n" "N2BT\n" "N2BZP\n" "N2CEI\n" "N2CG\n" "N2CHD\n" "N2CJ\n" "N2CJO\n" "N2CK\n" "N2CQ\n" "N2CU\n" "N2CUA\n" "N2CW\n" "N2CYY\n" "N2DPF\n" "N2DVQ\n" "N2DW\n" "N2DWS\n" "N2EA\n" "N2ED\n" "N2EGO\n" "N2EIK\n" "N2EM\n" "N2EOC\n" "N2ESH\n" "N2ESP\n" "N2ETJ\n" "N2EX/4\n" "N2EY\n" "N2FBV\n" "N2FF\n" "N2FJ\n" "N2FNO\n" "N2FPJ\n" "N2FQ\n" "N2FT\n" "N2FY\n" "N2GA\n" "N2GC\n" "N2GDU\n" "N2GG\n" "N2GJ\n" "N2GM\n" "N2GRS\n" "N2GVB\n" "N2GWK\n" "N2HMM\n" "N2HN\n" "N2HO\n" "N2IC\n" "N2IEL\n" "N2IEN\n" "N2IMM\n" "N2ION\n" "N2IW\n" "N2IX\n" "N2IXD\n" "N2IXX\n" "N2JBA\n" "N2JDQ\n" "N2JEN\n" "N2JEX\n" "N2JF\n" "N2JJ\n" "N2JNZ\n" "N2JTZ\n" "N2JUG\n" "N2KA\n" "N2KHH\n" "N2KI\n" "N2KPB\n" "N2KRN\n" "N2KW\n" "N2KW/1\n" "N2KX\n" "N2LBR\n" "N2LEB\n" "N2LEC\n" "N2LH\n" "N2LJJ\n" "N2LK\n" "N2LL\n" "N2LQ\n" "N2LT\n" "N2MAD\n" "N2MCI\n" "N2MEE\n" "N2MF\n" "N2MGT\n" "N2MH\n" "N2MID\n" "N2MLP\n" "N2MM\n" "N2MO\n" "N2MTG\n" "N2MUN\n" "N2MZZ\n" "N2NC\n" "N2NDY\n" "N2NEP\n" "N2NF\n" "N2NFC\n" "N2NGW\n" "N2NHN\n" "N2NI\n" "N2NKP\n" "N2NL\n" "N2NNN\n" "N2NNY\n" "N2NO\n" "N2NOM\n" "N2NQ\n" "N2NS\n" "N2NT\n" "N2NVH\n" "N2OB\n" "N2OGK\n" "N2OMC\n" "N2OO\n" "N2OPW\n" "N2OPW/8\n" "N2OT\n" "N2OUV\n" "N2OZ\n" "N2PA\n" "N2PHI\n" "N2PK\n" "N2PKB\n" "N2PKP\n" "N2PL\n" "N2PP\n" "N2QLQ\n" "N2QMT\n" "N2QQF\n" "N2QT\n" "N2QT/4\n" "N2QZ\n" "N2RF\n" "N2RFA\n" "N2RHL\n" "N2RI\n" "N2RIT\n" "N2RJ\n" "N2RK\n" "N2RM\n" "N2RM/4\n" "N2RO\n" "N2RR\n" "N2RRA\n" "N2SLC\n" "N2SO\n" "N2SQW\n" "N2SS\n" "N2SU\n" "N2TEW\n" "N2TK\n" "N2TM\n" "N2TN\n" "N2TO\n" "N2TRX\n" "N2TTL\n" "N2TU\n" "N2UL\n" "N2UM\n" "N2UN\n" "N2UO\n" "N2US\n" "N2USM\n" "N2UT\n" "N2UU\n" "N2UZ\n" "N2VM\n" "N2VRA\n" "N2VT\n" "N2VW\n" "N2VYT\n" "N2WB\n" "N2WC\n" "N2WF\n" "N2WFK\n" "N2WK\n" "N2WKS\n" "N2WLG\n" "N2WLS\n" "N2WM\n" "N2WN\n" "N2WQ/VE3\n" "N2WSY\n" "N2WW\n" "N2WY\n" "N2XDR\n" "N2XNB\n" "N2XP\n" "N2XPW\n" "N2XQM\n" "N2XT\n" "N2XWV\n" "N2YB\n" "N2YBB\n" "N2YC\n" "N2YDD\n" "N2YET\n" "N2YHN\n" "N2YN\n" "N2YO\n" "N2YOA\n" "N2YVF\n" "N2YXW\n" "N2ZAK\n" "N2ZN\n" "N2ZUL\n" "N2ZX\n" "N2ZZ\n" "N3AAF\n" "N3AB\n" "N3AD\n" "N3ADF\n" "N3AE\n" "N3AF\n" "N3AFT\n" "N3AIU\n" "N3ALN\n" "N3AM\n" "N3AO\n" "N3AS\n" "N3ATQ\n" "N3AYY\n" "N3AZH\n" "N3BA\n" "N3BB\n" "N3BBF\n" "N3BC\n" "N3BHM\n" "N3BM\n" "N3BNA\n" "N3BUD\n" "N3BUO\n" "N3CAU\n" "N3CB\n" "N3CDA\n" "N3CHX\n" "N3CJD\n" "N3CO\n" "N3COB\n" "N3CR\n" "N3CRM\n" "N3CW\n" "N3CXV\n" "N3CY\n" "N3CZ\n" "N3DAP\n" "N3DBC\n" "N3DFK\n" "N3DG\n" "N3DG/2\n" "N3DNX\n" "N3DUE\n" "N3DXX\n" "N3EEI\n" "N3EFZ\n" "N3EMF\n" "N3EMZ\n" "N3EN\n" "N3ER\n" "N3EU\n" "N3FAW\n" "N3FD\n" "N3FES\n" "N3FIU\n" "N3FJP\n" "N3FKS\n" "N3FP\n" "N3FSC\n" "N3FSQ\n" "N3FX\n" "N3FZ\n" "N3GA\n" "N3GD\n" "N3GGT\n" "N3GH\n" "N3GJ\n" "N3GL\n" "N3GM\n" "N3GNW\n" "N3GS\n" "N3GSN\n" "N3GXX\n" "N3HBX\n" "N3HE\n" "N3HQB\n" "N3HU\n" "N3HYB\n" "N3ICK\n" "N3II\n" "N3IK\n" "N3IL\n" "N3INJ\n" "N3IQ\n" "N3IYX\n" "N3JAB\n" "N3JB\n" "N3JDQ\n" "N3JIX\n" "N3JJT\n" "N3JNX\n" "N3JON\n" "N3JT\n" "N3JW\n" "N3KAE\n" "N3KBF\n" "N3KCJ\n" "N3KHK\n" "N3KKM\n" "N3KN\n" "N3KR\n" "N3KRS\n" "N3KRX\n" "N3KS\n" "N3KTA\n" "N3KTV\n" "N3KUN\n" "N3KV\n" "N3LAZ\n" "N3LFC\n" "N3LH\n" "N3LL\n" "N3LWM\n" "N3MA\n" "N3ME\n" "N3MK\n" "N3MMH\n" "N3MON\n" "N3MRA\n" "N3MRV\n" "N3MVX\n" "N3MWR\n" "N3MX\n" "N3MZ\n" "N3NA\n" "N3ND\n" "N3NEP\n" "N3NR\n" "N3NRN\n" "N3NS\n" "N3NT\n" "N3NZ\n" "N3OA\n" "N3OC\n" "N3OJL\n" "N3OW\n" "N3OX\n" "N3PE\n" "N3PF\n" "N3PKC\n" "N3PPE\n" "N3QCM\n" "N3QE\n" "N3QO\n" "N3QQ\n" "N3QVB\n" "N3QW\n" "N3RC\n" "N3RCW\n" "N3RD\n" "N3RDV\n" "N3RG\n" "N3RJ\n" "N3RM\n" "N3RN\n" "N3RR\n" "N3RRR\n" "N3RS\n" "N3RW\n" "N3RWB\n" "N3SD\n" "N3SEO\n" "N3SL\n" "N3SMT\n" "N3SNZ\n" "N3SQD\n" "N3ST\n" "N3STZ\n" "N3SW\n" "N3SY\n" "N3TB\n" "N3TDE\n" "N3TG\n" "N3TH\n" "N3TIR\n" "N3TL\n" "N3TM\n" "N3TNQ\n" "N3TO\n" "N3TQU\n" "N3TR\n" "N3TUQ\n" "N3UA\n" "N3UB\n" "N3UC\n" "N3UGY\n" "N3UM\n" "N3UR\n" "N3US\n" "N3VBJ\n" "N3VJV\n" "N3VMD\n" "N3VOP\n" "N3VRO\n" "N3VS\n" "N3VYZ\n" "N3WD\n" "N3WG\n" "N3WJ\n" "N3WT\n" "N3WZR\n" "N3XF\n" "N3XL\n" "N3XLS\n" "N3XM/VE3\n" "N3XP\n" "N3XPD\n" "N3XRU\n" "N3XRV\n" "N3XUD\n" "N3XVU\n" "N3XX\n" "N3XZ\n" "N3YD\n" "N3YEA\n" "N3YH\n" "N3YIM\n" "N3YMS\n" "N3YW\n" "N3YWM\n" "N3YZ\n" "N3ZA\n" "N3ZBK\n" "N3ZD\n" "N3ZK\n" "N3ZL\n" "N3ZL/4\n" "N3ZN\n" "N3ZP\n" "N3ZU\n" "N3ZV\n" "N3ZZ\n" "N3ZZK\n" "N4AA\n" "N4AAI\n" "N4AB\n" "N4AC\n" "N4AF\n" "N4AGG\n" "N4AH\n" "N4AL\n" "N4ALN\n" "N4AO\n" "N4AOE\n" "N4APR\n" "N4AR\n" "N4ARO\n" "N4ARR\n" "N4ASX\n" "N4AU\n" "N4AVV\n" "N4AWU\n" "N4AX\n" "N4BCB\n" "N4BCC\n" "N4BCD\n" "N4BFR\n" "N4BG\n" "N4BG/2\n" "N4BH\n" "N4BLT\n" "N4BNO\n" "N4BP\n" "N4BPG\n" "N4BU\n" "N4BWB\n" "N4BWV\n" "N4CB\n" "N4CC\n" "N4CD\n" "N4CE\n" "N4CFI\n" "N4CJ\n" "N4COB\n" "N4CPA\n" "N4CPO\n" "N4CT\n" "N4CU\n" "N4CUS\n" "N4CV\n" "N4CW\n" "N4CW/1\n" "N4CWP\n" "N4CY\n" "N4DA\n" "N4DAG\n" "N4DE\n" "N4DJ\n" "N4DKD\n" "N4DL\n" "N4DMD\n" "N4DPU\n" "N4DT\n" "N4DTF\n" "N4DU\n" "N4DV\n" "N4DW\n" "N4DWK\n" "N4DXC\n" "N4DXI\n" "N4DXS\n" "N4DXY\n" "N4EA\n" "N4ECM\n" "N4ECW\n" "N4EDT\n" "N4EE\n" "N4EEB\n" "N4EK\n" "N4EL\n" "N4EMG\n" "N4ESS\n" "N4EX\n" "N4FCG\n" "N4FD\n" "N4FF\n" "N4FN\n" "N4FP\n" "N4FPS\n" "N4FR\n" "N4FW\n" "N4FX\n" "N4FY\n" "N4FZ\n" "N4GCP\n" "N4GEB\n" "N4GG\n" "N4GG/4\n" "N4GI\n" "N4GJ\n" "N4GK\n" "N4GN\n" "N4GO\n" "N4GOA\n" "N4GU\n" "N4GW\n" "N4HA\n" "N4HAF\n" "N4HAI\n" "N4HB\n" "N4HH\n" "N4HID\n" "N4HLF\n" "N4HN\n" "N4HPL\n" "N4HUF\n" "N4HXI\n" "N4IB\n" "N4ICF\n" "N4IG\n" "N4II\n" "N4IJ\n" "N4IL\n" "N4IM\n" "N4IOZ\n" "N4IQ\n" "N4IR\n" "N4IS\n" "N4JA\n" "N4JB\n" "N4JDB\n" "N4JDF\n" "N4JDX\n" "N4JED\n" "N4JF\n" "N4JG\n" "N4JH\n" "N4JIK\n" "N4JIK/5\n" "N4JKA\n" "N4JN\n" "N4JOW\n" "N4JR\n" "N4JRZ\n" "N4JT\n" "N4JTQ\n" "N4JVP\n" "N4KC\n" "N4KE\n" "N4KFT\n" "N4KG\n" "N4KGL\n" "N4KH\n" "N4KIT\n" "N4KJR\n" "N4KK\n" "N4KL\n" "N4KTM\n" "N4KW\n" "N4KZ\n" "N4LA\n" "N4LDM\n" "N4LF\n" "N4LKE\n" "N4LMN\n" "N4LPD\n" "N4LR\n" "N4LS\n" "N4LSP\n" "N4LT\n" "N4LU\n" "N4LV\n" "N4LVQ\n" "N4LW\n" "N4LZ\n" "N4LZL\n" "N4MB\n" "N4ME\n" "N4MF\n" "N4MIK\n" "N4MIO\n" "N4MJ\n" "N4MM\n" "N4MO\n" "N4MUH\n" "N4MWR\n" "N4MWY\n" "N4NAB\n" "N4NKA\n" "N4NM\n" "N4NN\n" "N4NO\n" "N4NOO\n" "N4NS\n" "N4NTO\n" "N4NTQ\n" "N4NW\n" "N4NX\n" "N4OA\n" "N4OFA\n" "N4OGW\n" "N4OI\n" "N4OO\n" "N4OQP\n" "N4OT\n" "N4OX\n" "N4OYT\n" "N4PB\n" "N4PD\n" "N4PEG\n" "N4PF\n" "N4PGL\n" "N4PJ\n" "N4PLR\n" "N4PN\n" "N4PQX\n" "N4PSE\n" "N4PTC\n" "N4PUM\n" "N4PY\n" "N4QA\n" "N4QB\n" "N4QK\n" "N4QLB\n" "N4QM\n" "N4QNT\n" "N4QQ\n" "N4QS\n" "N4QV\n" "N4QVM\n" "N4QWF\n" "N4QWZ\n" "N4QX\n" "N4RA\n" "N4RDX\n" "N4RI\n" "N4RJ\n" "N4RJL\n" "N4RLD\n" "N4RP\n" "N4RQ\n" "N4RR\n" "N4RS\n" "N4RSS\n" "N4RTD\n" "N4RU\n" "N4RV\n" "N4RVM\n" "N4RZ\n" "N4SAM\n" "N4SC\n" "N4SCS\n" "N4SEA\n" "N4SF\n" "N4SMM\n" "N4SOC\n" "N4SR\n" "N4SS\n" "N4ST\n" "N4TB\n" "N4TCP\n" "N4TD\n" "N4TDO\n" "N4TEF\n" "N4TG\n" "N4THG\n" "N4TIZ\n" "N4TJ\n" "N4TL\n" "N4TN\n" "N4TO\n" "N4TOL\n" "N4TP\n" "N4TRI\n" "N4TSC\n" "N4TT\n" "N4TTE\n" "N4TUT\n" "N4TV\n" "N4TX\n" "N4TZ\n" "N4UA\n" "N4UC\n" "N4UED\n" "N4UFP\n" "N4UJ\n" "N4UM\n" "N4UPX\n" "N4UQB\n" "N4URW\n" "N4UU\n" "N4UW\n" "N4VA\n" "N4VAN\n" "N4VI\n" "N4VN\n" "N4VS\n" "N4VV\n" "N4WBS\n" "N4WD\n" "N4WHK\n" "N4WJ\n" "N4WJW\n" "N4WMB\n" "N4WO\n" "N4WOT\n" "N4WP\n" "N4WPG\n" "N4WQB\n" "N4WR\n" "N4WW\n" "N4WZ\n" "N4XC\n" "N4XD\n" "N4XFA\n" "N4XFF\n" "N4XGI\n" "N4XL\n" "N4XM\n" "N4XO\n" "N4XR\n" "N4XU\n" "N4YBU\n" "N4YBW\n" "N4YC\n" "N4YDU\n" "N4YE\n" "N4YHC\n" "N4YM\n" "N4YSA\n" "N4YT\n" "N4YYV\n" "N4YZ\n" "N4ZA\n" "N4ZAK\n" "N4ZC\n" "N4ZI\n" "N4ZO\n" "N4ZQ\n" "N4ZR\n" "N4ZRL\n" "N4ZSA\n" "N4ZY\n" "N4ZZ\n" "N5AA\n" "N5ACK\n" "N5AF\n" "N5AN\n" "N5ATT\n" "N5AU\n" "N5AUA\n" "N5AW\n" "N5AW/0\n" "N5BA\n" "N5BE\n" "N5BF\n" "N5BNU\n" "N5BO\n" "N5BR\n" "N5BST\n" "N5CHA\n" "N5CJQ\n" "N5CMC\n" "N5CQ\n" "N5CRO\n" "N5CW\n" "N5DBK\n" "N5DD\n" "N5DF\n" "N5DG\n" "N5DGK\n" "N5DK\n" "N5DM\n" "N5DO\n" "N5DRB\n" "N5DT\n" "N5DTT\n" "N5DX\n" "N5DY\n" "N5EA\n" "N5EBD\n" "N5EEI\n" "N5EJK\n" "N5EN\n" "N5ER\n" "N5ESA\n" "N5ET\n" "N5EXS\n" "N5EZE\n" "N5FF\n" "N5FG\n" "N5FPW\n" "N5GD\n" "N5GE\n" "N5GH\n" "N5GL\n" "N5GY\n" "N5HA\n" "N5HEK\n" "N5HHS\n" "N5HI\n" "N5HMH\n" "N5HOT\n" "N5HSF\n" "N5IA\n" "N5IE\n" "N5II\n" "N5IIT\n" "N5IN\n" "N5IR\n" "N5IW\n" "N5JB\n" "N5JBD\n" "N5JC\n" "N5JED\n" "N5JJH\n" "N5JJZ\n" "N5JM\n" "N5JOA\n" "N5JPJ\n" "N5JR\n" "N5KA\n" "N5KAE\n" "N5KD\n" "N5KDV\n" "N5KE\n" "N5KEV\n" "N5KF\n" "N5KGV\n" "N5KGY\n" "N5KI\n" "N5KIP\n" "N5KLE\n" "N5KM\n" "N5KO\n" "N5KR\n" "N5KRC\n" "N5KTT\n" "N5KWN\n" "N5KXF\n" "N5KY\n" "N5LDD\n" "N5LFE\n" "N5LIV\n" "N5LNL\n" "N5LTM\n" "N5LUL\n" "N5LUQ\n" "N5LYJ\n" "N5LYJ/5\n" "N5LZ\n" "N5MEG\n" "N5MNX\n" "N5MOA\n" "N5MOC\n" "N5MT\n" "N5MU\n" "N5MV\n" "N5NA\n" "N5NK\n" "N5NN\n" "N5NOU\n" "N5NR\n" "N5NU\n" "N5OE\n" "N5OHL\n" "N5OK\n" "N5OL\n" "N5OP\n" "N5ORT\n" "N5OTI\n" "N5PA\n" "N5PAX\n" "N5PEF\n" "N5PHT\n" "N5PJ\n" "N5PJY\n" "N5PO\n" "N5PQ\n" "N5PR\n" "N5PT\n" "N5PU\n" "N5PYQ\n" "N5QJ\n" "N5QN\n" "N5QQ\n" "N5QS\n" "N5RA\n" "N5RGV\n" "N5RKD\n" "N5RKK\n" "N5RL\n" "N5RM\n" "N5RMS\n" "N5RN\n" "N5RP\n" "N5RP/W9\n" "N5RR\n" "N5RVT\n" "N5RZ\n" "N5RZK\n" "N5SAM\n" "N5SAN\n" "N5SJS\n" "N5SM\n" "N5SMQ\n" "N5SPE\n" "N5SQL\n" "N5SR\n" "N5SSH\n" "N5SV\n" "N5TEN\n" "N5TER\n" "N5TGL\n" "N5THN\n" "N5TJ\n" "N5TM\n" "N5TSP\n" "N5TU\n" "N5TW\n" "N5TWH\n" "N5TY\n" "N5UCF\n" "N5UKZ\n" "N5UL\n" "N5UM\n" "N5UR\n" "N5UV\n" "N5UWY\n" "N5UXT\n" "N5VA\n" "N5VAG\n" "N5VEI\n" "N5VEZ\n" "N5VI\n" "N5VK\n" "N5VR\n" "N5VSB\n" "N5VU\n" "N5VYS\n" "N5WA\n" "N5WBF\n" "N5WC\n" "N5WEB\n" "N5WJ\n" "N5WLA\n" "N5WMQ\n" "N5WNG\n" "N5WR\n" "N5WX\n" "N5WY\n" "N5XE\n" "N5XES\n" "N5XG\n" "N5XJ\n" "N5XM\n" "N5XR\n" "N5XU\n" "N5XZ\n" "N5YA\n" "N5YE\n" "N5YEN\n" "N5YF\n" "N5YPJ\n" "N5YRJ\n" "N5YT\n" "N5ZBI\n" "N5ZC\n" "N5ZGT\n" "N5ZK\n" "N5ZM\n" "N5ZMP\n" "N5ZV\n" "N5ZWS\n" "N5ZZ\n" "N6AA\n" "N6AB\n" "N6AD\n" "N6AE\n" "N6AJG\n" "N6AJR\n" "N6AN\n" "N6AQ\n" "N6AR\n" "N6ATD\n" "N6AW\n" "N6AWD\n" "N6AX\n" "N6BHX\n" "N6BM\n" "N6BOB\n" "N6BU\n" "N6BV\n" "N6BX\n" "N6BXO\n" "N6BY\n" "N6CCH\n" "N6CHU\n" "N6CK\n" "N6CMF\n" "N6CVA\n" "N6CY\n" "N6CY/KH6\n" "N6DA\n" "N6DAG\n" "N6DBS\n" "N6DE\n" "N6DG\n" "N6DIT\n" "N6DM\n" "N6DMV\n" "N6DQ\n" "N6DQ/C6A\n" "N6DSM\n" "N6DT\n" "N6DW\n" "N6DX\n" "N6DZ\n" "N6ED\n" "N6EE\n" "N6EEB\n" "N6EF\n" "N6EM\n" "N6EO\n" "N6EP\n" "N6ER\n" "N6ERD\n" "N6ET\n" "N6FB\n" "N6FD\n" "N6FMF\n" "N6FR\n" "N6FX\n" "N6GA\n" "N6GEO\n" "N6GK\n" "N6GL\n" "N6HA\n" "N6HC\n" "N6HE\n" "N6HH\n" "N6HI\n" "N6HK\n" "N6HRO\n" "N6HY\n" "N6IC\n" "N6IE\n" "N6IEF\n" "N6IFR\n" "N6IG\n" "N6ISY\n" "N6IV\n" "N6JC\n" "N6JN\n" "N6JOJ\n" "N6JRL\n" "N6JS\n" "N6JV\n" "N6JW\n" "N6KD\n" "N6KI\n" "N6KJ\n" "N6KK\n" "N6KL\n" "N6KM\n" "N6KN\n" "N6KOG\n" "N6KP\n" "N6KS\n" "N6KT\n" "N6KV\n" "N6KW\n" "N6KW/7\n" "N6KZ\n" "N6LC\n" "N6LHZ\n" "N6LL\n" "N6LN\n" "N6MA\n" "N6MEF\n" "N6MI\n" "N6ML\n" "N6MM\n" "N6MQL\n" "N6MSQ\n" "N6MSY\n" "N6MU\n" "N6MUF\n" "N6MW\n" "N6MWX\n" "N6MXU\n" "N6MZ\n" "N6NA\n" "N6NBB\n" "N6NC\n" "N6NCW\n" "N6ND\n" "N6NF\n" "N6NG\n" "N6NH\n" "N6NKJ\n" "N6NKT\n" "N6NM\n" "N6NO\n" "N6NPG\n" "N6NR\n" "N6NU\n" "N6NW\n" "N6NZ\n" "N6NZE\n" "N6OC\n" "N6OJ\n" "N6OO\n" "N6OPR\n" "N6OR\n" "N6OR/4\n" "N6ORB\n" "N6OU\n" "N6OX\n" "N6PC\n" "N6PE\n" "N6PEQ\n" "N6PF\n" "N6PHW\n" "N6PI\n" "N6PIA\n" "N6PN\n" "N6PNK\n" "N6PSE\n" "N6PYN\n" "N6PZ\n" "N6QEK\n" "N6QEK/VY1\n" "N6QI\n" "N6QQ\n" "N6QZS\n" "N6RA\n" "N6RBY\n" "N6RC\n" "N6RDN\n" "N6REG\n" "N6RI\n" "N6RJ\n" "N6RK\n" "N6RNO\n" "N6RO\n" "N6RSH\n" "N6RT\n" "N6RUX\n" "N6RV\n" "N6RW\n" "N6RXA\n" "N6RZ\n" "N6RZR\n" "N6SC\n" "N6SF\n" "N6SI\n" "N6SL\n" "N6SL/4\n" "N6SPB\n" "N6SPP\n" "N6SQ\n" "N6SS\n" "N6SUN\n" "N6TA\n" "N6TCZ\n" "N6TE\n" "N6TEM\n" "N6TH\n" "N6TI\n" "N6TJ\n" "N6TP\n" "N6TQS\n" "N6TR/7\n" "N6TT\n" "N6TU\n" "N6TV\n" "N6TW\n" "N6TZV\n" "N6UGJ\n" "N6UWW\n" "N6VDR\n" "N6VH\n" "N6VHF\n" "N6VI\n" "N6VM\n" "N6VNI\n" "N6VOC\n" "N6VR\n" "N6VX\n" "N6VXM\n" "N6VZ\n" "N6WB\n" "N6WBL\n" "N6WD\n" "N6WG\n" "N6WHK\n" "N6WIN\n" "N6WK\n" "N6WM\n" "N6WO\n" "N6WS\n" "N6WZ\n" "N6XG\n" "N6XI\n" "N6XT\n" "N6XXN\n" "N6YDP\n" "N6YEU\n" "N6YMM\n" "N6YVW\n" "N6ZE\n" "N6ZFO\n" "N6ZI\n" "N6ZM\n" "N6ZN\n" "N6ZS\n" "N7AAM\n" "N7AC\n" "N7AM\n" "N7AN\n" "N7AP\n" "N7APN\n" "N7AR\n" "N7AT\n" "N7AZ\n" "N7BAN\n" "N7BAT\n" "N7BBC\n" "N7BEF\n" "N7BK\n" "N7BLN\n" "N7BPA\n" "N7BRC\n" "N7BT\n" "N7BU\n" "N7BV\n" "N7BXX\n" "N7CAC\n" "N7CKJ\n" "N7CVZ\n" "N7CW\n" "N7DB\n" "N7DC\n" "N7DCR\n" "N7DD\n" "N7DF\n" "N7DK\n" "N7DLI\n" "N7DOM\n" "N7DRK\n" "N7DS\n" "N7DV\n" "N7EA\n" "N7EDK\n" "N7EG\n" "N7EIE\n" "N7EKD\n" "N7EL\n" "N7ELF\n" "N7ENN\n" "N7EO\n" "N7EPD\n" "N7ER\n" "N7ESU\n" "N7ET/DU7\n" "N7ETA\n" "N7ETC\n" "N7EXP\n" "N7FF\n" "N7FFL\n" "N7FJM\n" "N7FLT\n" "N7FMM\n" "N7FO\n" "N7FYO\n" "N7FYP/VY2\n" "N7GCO\n" "N7GK\n" "N7GMT\n" "N7GR\n" "N7GTE\n" "N7GTW\n" "N7GUO\n" "N7GVV\n" "N7HD\n" "N7HGH\n" "N7HJL\n" "N7HT\n" "N7ICK\n" "N7INV\n" "N7IPG\n" "N7IR\n" "N7IV\n" "N7IX\n" "N7IXI\n" "N7IZ\n" "N7JB\n" "N7JEC\n" "N7JI\n" "N7JO\n" "N7JQ\n" "N7JT\n" "N7JW\n" "N7JXS\n" "N7KA\n" "N7KCX\n" "N7KD\n" "N7KE\n" "N7KF\n" "N7KFL\n" "N7KMM\n" "N7KO\n" "N7KQ\n" "N7KR\n" "N7KRE\n" "N7KU\n" "N7LB\n" "N7LE\n" "N7LOX\n" "N7LQT\n" "N7LR\n" "N7LYR\n" "N7MAL\n" "N7MB\n" "N7MBL\n" "N7MQ\n" "N7MSI\n" "N7MW\n" "N7MZW\n" "N7NG\n" "N7NJO\n" "N7NKO\n" "N7NM\n" "N7NOG\n" "N7NSL\n" "N7NT\n" "N7NTQ\n" "N7NW\n" "N7ODM\n" "N7OG\n" "N7OLK\n" "N7ON\n" "N7OU\n" "N7PC\n" "N7PIB\n" "N7PP\n" "N7PV\n" "N7PWZ\n" "N7QAX\n" "N7QMT\n" "N7QNO\n" "N7QOZ\n" "N7QQ\n" "N7QS\n" "N7QU\n" "N7QU/5\n" "N7RBP\n" "N7RC\n" "N7RK\n" "N7RN\n" "N7RO\n" "N7RP\n" "N7RQ\n" "N7RT\n" "N7RU\n" "N7RVD\n" "N7RVN\n" "N7RYW\n" "N7SCL\n" "N7SGX\n" "N7TK\n" "N7TL\n" "N7TM\n" "N7TO\n" "N7TP\n" "N7TR\n" "N7TT\n" "N7TW\n" "N7TY\n" "N7UA\n" "N7UC\n" "N7UN\n" "N7UO\n" "N7UR\n" "N7US\n" "N7UVH\n" "N7UY\n" "N7VF\n" "N7VFF\n" "N7VJ\n" "N7VM\n" "N7VOE\n" "N7VPN\n" "N7VS\n" "N7WA\n" "N7WB\n" "N7WH\n" "N7WHB\n" "N7WI\n" "N7WO\n" "N7WR\n" "N7WS\n" "N7WX\n" "N7WZE\n" "N7XB\n" "N7XCZ\n" "N7XDX\n" "N7XG\n" "N7XM\n" "N7XR\n" "N7XRM\n" "N7XY\n" "N7YA\n" "N7YDX\n" "N7YP\n" "N7YQ\n" "N7YX\n" "N7ZA\n" "N7ZG\n" "N7ZN\n" "N8AA\n" "N8AAE\n" "N8AE\n" "N8AG\n" "N8AGU\n" "N8AJN\n" "N8AMM\n" "N8AP\n" "N8ATC\n" "N8AYY\n" "N8BB\n" "N8BC\n" "N8BE\n" "N8BEE\n" "N8BEG\n" "N8BHL\n" "N8BI\n" "N8BJQ\n" "N8BM\n" "N8BP\n" "N8BQV\n" "N8BR\n" "N8BTU\n" "N8BUS\n" "N8BV\n" "N8CAK\n" "N8CC\n" "N8CHR\n" "N8CHS\n" "N8CL\n" "N8CLB\n" "N8CMS\n" "N8CN\n" "N8CPA\n" "N8CT\n" "N8CX\n" "N8DC\n" "N8DCJ\n" "N8DE\n" "N8DEZ\n" "N8DGD\n" "N8DJX\n" "N8DNG\n" "N8DOD\n" "N8DP\n" "N8DRC\n" "N8DSG\n" "N8DSG/P\n" "N8DT\n" "N8DV\n" "N8DX\n" "N8EA\n" "N8ECI\n" "N8EHP\n" "N8EMR\n" "N8EN\n" "N8ERL\n" "N8ESW\n" "N8ET\n" "N8EW\n" "N8FDI\n" "N8FE\n" "N8FEB\n" "N8FF\n" "N8FGB\n" "N8FNR\n" "N8FRT\n" "N8FV\n" "N8GGI\n" "N8GIY\n" "N8GJK\n" "N8GOV\n" "N8GU\n" "N8GZ\n" "N8HAL\n" "N8HC\n" "N8HHG\n" "N8HKU\n" "N8HP\n" "N8HR\n" "N8HSO\n" "N8HTG\n" "N8HTW\n" "N8IE\n" "N8IGZ\n" "N8II\n" "N8IL\n" "N8IPO\n" "N8IR\n" "N8IRC\n" "N8IS\n" "N8IVN\n" "N8IW\n" "N8IWC\n" "N8JBG\n" "N8JE\n" "N8JF\n" "N8JK\n" "N8JVL\n" "N8KAM\n" "N8KC\n" "N8KCM\n" "N8KG\n" "N8KH\n" "N8KOJ\n" "N8KR\n" "N8KU\n" "N8KUE\n" "N8KV\n" "N8LCU\n" "N8LGL\n" "N8LJ\n" "N8LMT\n" "N8LP\n" "N8LRG\n" "N8MBZ\n" "N8MDP\n" "N8MHL\n" "N8MME\n" "N8MOX\n" "N8MPX\n" "N8MR\n" "N8MRC\n" "N8MWK\n" "N8MZ\n" "N8NA\n" "N8NAV\n" "N8NB\n" "N8NKC\n" "N8NM\n" "N8NN\n" "N8NOE\n" "N8NR\n" "N8NVL\n" "N8NWA\n" "N8NX\n" "N8NYI\n" "N8OC\n" "N8OCJ\n" "N8OEJ\n" "N8OGI\n" "N8OH\n" "N8OL\n" "N8OO\n" "N8OQQ\n" "N8OT\n" "N8OY\n" "N8PA\n" "N8PB\n" "N8PQ\n" "N8PR\n" "N8PS\n" "N8PVW\n" "N8PW\n" "N8PY\n" "N8QAZ\n" "N8QE\n" "N8QMU\n" "N8QWS\n" "N8RA\n" "N8RBC\n" "N8RGQ\n" "N8RMT\n" "N8RMZ\n" "N8RN\n" "N8RO\n" "N8RQJ\n" "N8RR\n" "N8RT\n" "N8SHZ\n" "N8SKB\n" "N8SM\n" "N8SNM\n" "N8SOB\n" "N8SR\n" "N8SS\n" "N8SSE\n" "N8STY\n" "N8TC\n" "N8TD\n" "N8TDL\n" "N8TL\n" "N8TP\n" "N8TR\n" "N8TWM\n" "N8TXI\n" "N8UBK\n" "N8UM\n" "N8UO\n" "N8UV\n" "N8UZE\n" "N8VEN\n" "N8VFJ\n" "N8VV\n" "N8VW\n" "N8VZ\n" "N8WAV\n" "N8WCR\n" "N8WJS\n" "N8WK\n" "N8WNA\n" "N8WRL\n" "N8WS\n" "N8WXQ\n" "N8XA\n" "N8XC\n" "N8XE\n" "N8XI\n" "N8XKO\n" "N8XMS\n" "N8XPQ\n" "N8XQM\n" "N8XTH\n" "N8XX\n" "N8YA\n" "N8YD\n" "N8YYS\n" "N8ZA\n" "N8ZB\n" "N8ZBA\n" "N8ZFH\n" "N9AB\n" "N9ABC\n" "N9ADG\n" "N9AF\n" "N9AG\n" "N9AI\n" "N9AJV\n" "N9AK\n" "N9AKR\n" "N9AMW\n" "N9AOL\n" "N9APE\n" "N9AU\n" "N9AUG\n" "N9AVY\n" "N9AW\n" "N9AX\n" "N9AZR\n" "N9AZZ\n" "N9BBE\n" "N9BL\n" "N9BMS\n" "N9BOR\n" "N9BSS\n" "N9BT\n" "N9BU\n" "N9BX\n" "N9CC\n" "N9CDX\n" "N9CHN\n" "N9CI\n" "N9CIQ\n" "N9CK\n" "N9CKL\n" "N9CM\n" "N9CO\n" "N9CX\n" "N9CXI\n" "N9DD\n" "N9DGK\n" "N9DJ\n" "N9DOA\n" "N9DR\n" "N9DT\n" "N9EAJ\n" "N9EAX\n" "N9EN\n" "N9EP\n" "N9ER\n" "N9ESR\n" "N9EVW\n" "N9FC\n" "N9FDE\n" "N9FN\n" "N9FTC/4\n" "N9GBB\n" "N9GC\n" "N9GEX\n" "N9GG\n" "N9GH\n" "N9GOC\n" "N9GOD\n" "N9GTC\n" "N9GUN\n" "N9GWO\n" "N9GXA\n" "N9GY\n" "N9HDE\n" "N9HF\n" "N9HH\n" "N9HNO\n" "N9HSB\n" "N9HZ\n" "N9IC\n" "N9ID\n" "N9IJ\n" "N9IO\n" "N9ISN\n" "N9IUA\n" "N9IVO\n" "N9IW\n" "N9IZ\n" "N9JCA\n" "N9JDQ\n" "N9JF\n" "N9JFW\n" "N9JW\n" "N9JZN\n" "N9KG\n" "N9KHR\n" "N9KIM\n" "N9KO\n" "N9KR\n" "N9KS\n" "N9KT\n" "N9KZ\n" "N9LA\n" "N9LAH\n" "N9LB\n" "N9LF\n" "N9LGP\n" "N9LJX\n" "N9LJY\n" "N9LPT\n" "N9LR\n" "N9LTV\n" "N9LYE\n" "N9LZY\n" "N9MHD\n" "N9MIW\n" "N9MKZ\n" "N9ML\n" "N9MM\n" "N9MR\n" "N9MSG\n" "N9MTT\n" "N9MW\n" "N9MXT\n" "N9MZF\n" "N9NA\n" "N9NB\n" "N9NC\n" "N9NDI\n" "N9NDP\n" "N9NE\n" "N9NF\n" "N9NM\n" "N9NS\n" "N9NT\n" "N9NTC\n" "N9OE\n" "N9OF\n" "N9OH\n" "N9OHW\n" "N9OI\n" "N9OK\n" "N9OL\n" "N9ONJ\n" "N9OOO\n" "N9OQW\n" "N9ORD\n" "N9OX\n" "N9OY\n" "N9PL\n" "N9PUZ\n" "N9PYS\n" "N9QK\n" "N9QQK\n" "N9QR\n" "N9QS\n" "N9QVQ\n" "N9RC\n" "N9RD\n" "N9RE\n" "N9REP\n" "N9REY\n" "N9RG\n" "N9RGE\n" "N9RJM\n" "N9RLI\n" "N9ROY\n" "N9RS\n" "N9RV\n" "N9RYM\n" "N9SB\n" "N9SCW\n" "N9SDT\n" "N9SF\n" "N9SJ\n" "N9SOR\n" "N9STL\n" "N9SW\n" "N9SZ\n" "N9TAX\n" "N9TF\n" "N9TGR\n" "N9TH\n" "N9TK\n" "N9TMU\n" "N9TMZ\n" "N9TTX\n" "N9TV\n" "N9UA\n" "N9UC\n" "N9UDO\n" "N9UE\n" "N9UFO\n" "N9UHF\n" "N9UHO\n" "N9UM\n" "N9UO\n" "N9US\n" "N9UUI\n" "N9UUP\n" "N9UX\n" "N9UY\n" "N9VA\n" "N9VAO\n" "N9VI\n" "N9VKZ\n" "N9VPR\n" "N9VPV\n" "N9WEW\n" "N9WFT\n" "N9WK\n" "N9WKW\n" "N9WL\n" "N9WQ\n" "N9WRG\n" "N9WVM\n" "N9WW\n" "N9XAK\n" "N9XBB\n" "N9XHU\n" "N9XO\n" "N9XR\n" "N9XRR\n" "N9XX\n" "N9XY\n" "N9YA\n" "N9YK\n" "N9YKE\n" "N9YN\n" "N9YUE\n" "N9YZA\n" "N9ZDD\n" "N9ZEW\n" "N9ZF\n" "N9ZI\n" "N9ZM\n" "N9ZOE\n" "NA0BR\n" "NA0CW\n" "NA0N\n" "NA0T\n" "NA1A\n" "NA1G\n" "NA1QP\n" "NA1R\n" "NA2AA\n" "NA2M\n" "NA2R\n" "NA2U\n" "NA2X\n" "NA3D\n" "NA3F\n" "NA3J/0\n" "NA3M\n" "NA3V\n" "NA4AR\n" "NA4BW\n" "NA4C\n" "NA4CW\n" "NA4D\n" "NA4K\n" "NA4M\n" "NA4M/5\n" "NA4NA\n" "NA4O\n" "NA4R\n" "NA4W\n" "NA5C\n" "NA5DX\n" "NA5G\n" "NA5Q\n" "NA5RC\n" "NA5TR\n" "NA5U\n" "NA5Z\n" "NA6G\n" "NA6Q\n" "NA7DX\n" "NA7EM\n" "NA7QP\n" "NA7RH\n" "NA7US\n" "NA7XX\n" "NA8M\n" "NA8SA\n" "NA8V\n" "NA8W\n" "NA9A\n" "NA9J\n" "NA9L\n" "NA9M\n" "NA9U\n" "NA9US\n" "NB0Z\n" "NB1HF\n" "NB1N\n" "NB1U\n" "NB2T\n" "NB3C\n" "NB3K\n" "NB3T\n" "NB4F\n" "NB4M\n" "NB5N\n" "NB7N\n" "NB7V\n" "NB8Q\n" "NC0B\n" "NC0O\n" "NC1C\n" "NC1I\n" "NC1T\n" "NC2O\n" "NC2W\n" "NC3P\n" "NC4AA\n" "NC4AR\n" "NC4CS\n" "NC4G\n" "NC4KW\n" "NC4MI\n" "NC4MM\n" "NC4RB\n" "NC4RW\n" "NC4S\n" "NC4VA\n" "NC4X\n" "NC5B\n" "NC5O\n" "NC5OW\n" "NC6CC\n" "NC6P\n" "NC6PT\n" "NC6Q\n" "NC6RJ\n" "NC6V\n" "NC6X\n" "NC7I\n" "NC7J\n" "NC7M\n" "NC7W\n" "NC8B\n" "NC8T\n" "NC9F\n" "ND0C\n" "ND0J\n" "ND0L\n" "ND0M\n" "ND0N\n" "ND0V\n" "ND1X\n" "ND2K\n" "ND2T\n" "ND3D\n" "ND3F\n" "ND3R\n" "ND4Q\n" "ND4V\n" "ND4X\n" "ND4Z\n" "ND5R\n" "ND5T\n" "ND6H\n" "ND6MM\n" "ND6P\n" "ND6S\n" "ND8DX\n" "ND8L\n" "ND8N\n" "ND9E\n" "ND9M\n" "ND9Z\n" "NE0DX\n" "NE0U\n" "NE0W\n" "NE1B\n" "NE1C\n" "NE1F\n" "NE1H\n" "NE1I\n" "NE1QP\n" "NE1RD\n" "NE2I\n" "NE2U\n" "NE2Z\n" "NE3F\n" "NE3H\n" "NE3I\n" "NE3R\n" "NE4M\n" "NE4S\n" "NE4W\n" "NE5D\n" "NE5DL\n" "NE5LL\n" "NE5S\n" "NE5W\n" "NE6I\n" "NE6LE\n" "NE6M\n" "NE6O\n" "NE6R\n" "NE7D\n" "NE7X\n" "NE8J\n" "NE8O\n" "NE8O/3\n" "NE8P\n" "NE8Z\n" "NE9H\n" "NE9U\n" "NE9Z\n" "NF0N\n" "NF0T\n" "NF1A\n" "NF1D\n" "NF1L\n" "NF1X\n" "NF2O\n" "NF4A\n" "NF4GA\n" "NF5P\n" "NF5T\n" "NF5Y\n" "NF5Z\n" "NF6A\n" "NF6P\n" "NF6R\n" "NF7E\n" "NF7R\n" "NF7T\n" "NF8J\n" "NF8M\n" "NF8R\n" "NF9D\n" "NF9V\n" "NG0G\n" "NG0K\n" "NG0M\n" "NG0T\n" "NG1F\n" "NG1G\n" "NG1O\n" "NG1Q\n" "NG2C\n" "NG2P\n" "NG2T\n" "NG2X\n" "NG3I\n" "NG3J\n" "NG3K\n" "NG3O\n" "NG3Q\n" "NG3R\n" "NG3U\n" "NG3V\n" "NG4D\n" "NG4L\n" "NG4P\n" "NG4Z\n" "NG5A\n" "NG5NG\n" "NG5X\n" "NG6S\n" "NG6X\n" "NG7A\n" "NG7M\n" "NG7X\n" "NG7Z\n" "NG8U\n" "NG9E\n" "NG9R\n" "NG9T\n" "NH2T\n" "NH6AB\n" "NH6JC\n" "NH6P\n" "NH6T/W4\n" "NH6WZ\n" "NH6YK\n" "NH7A\n" "NH7C\n" "NH7FY\n" "NH7O\n" "NH7QH\n" "NI0B\n" "NI0C\n" "NI0F\n" "NI0R\n" "NI1L\n" "NI1N\n" "NI2O\n" "NI3B\n" "NI3H\n" "NI3K\n" "NI3N\n" "NI4S\n" "NI4T\n" "NI5DX\n" "NI5F\n" "NI5L\n" "NI5O\n" "NI5R\n" "NI5T\n" "NI5W\n" "NI6J\n" "NI6P\n" "NI6Q\n" "NI6T\n" "NI6W\n" "NI7F\n" "NI7R\n" "NI7T\n" "NI8Z\n" "NI9C\n" "NI9H\n" "NI9K\n" "NI9Y\n" "NJ0IP\n" "NJ0U\n" "NJ1F\n" "NJ1H\n" "NJ1Q\n" "NJ1Q/1\n" "NJ1T\n" "NJ2AR\n" "NJ2BB\n" "NJ2F\n" "NJ2OM\n" "NJ2P\n" "NJ3K\n" "NJ3W\n" "NJ4F\n" "NJ4I\n" "NJ4M\n" "NJ4O\n" "NJ4U\n" "NJ4X\n" "NJ4Z\n" "NJ5DX\n" "NJ5O\n" "NJ5T\n" "NJ6D\n" "NJ6N\n" "NJ6P\n" "NJ8V\n" "NJ9D\n" "NJ9Z\n" "NK0S\n" "NK0Z\n" "NK1N\n" "NK1Z\n" "NK3U\n" "NK3Y\n" "NK4A\n" "NK4I\n" "NK4L\n" "NK4N\n" "NK5G\n" "NK5O\n" "NK5Q\n" "NK5Z\n" "NK6A\n" "NK7C\n" "NK7J\n" "NK7U\n" "NK7Z\n" "NK8I\n" "NK8Q\n" "NK9D\n" "NK9G\n" "NK9I\n" "NK9N\n" "NK9O\n" "NL7G\n" "NL7KF\n" "NL7QC\n" "NL7V\n" "NL7Y\n" "NL7Z\n" "NL8F\n" "NM1A\n" "NM1C\n" "NM1J\n" "NM1JY\n" "NM1W\n" "NM2D\n" "NM2L\n" "NM2O\n" "NM3N\n" "NM4K\n" "NM4M\n" "NM4O\n" "NM4V\n" "NM5C\n" "NM5M\n" "NM5NM\n" "NM5O\n" "NM5S\n" "NM5TF\n" "NM5U\n" "NM5WB\n" "NM5Y\n" "NM6E\n" "NM6E/W5\n" "NM6G\n" "NM6K\n" "NM6X\n" "NM7D\n" "NM7N\n" "NM7X\n" "NM8O\n" "NM9C\n" "NN0F\n" "NN0K\n" "NN0Q\n" "NN0TT\n" "NN1AA\n" "NN1N\n" "NN2E\n" "NN2L\n" "NN2RL\n" "NN2T\n" "NN2W\n" "NN3C\n" "NN3L\n" "NN3NN\n" "NN3Q\n" "NN3RP\n" "NN3W\n" "NN4AA\n" "NN4DF\n" "NN4F\n" "NN4FL\n" "NN4GG\n" "NN4K\n" "NN4MM\n" "NN4N\n" "NN4R\n" "NN4RH\n" "NN4RR\n" "NN4T\n" "NN4TO\n" "NN4TT\n" "NN4US\n" "NN4W\n" "NN4X\n" "NN4ZZ\n" "NN5J\n" "NN5K\n" "NN5T\n" "NN5V\n" "NN5Z\n" "NN6AA\n" "NN6C\n" "NN6CH\n" "NN6DX\n" "NN6EE\n" "NN6K\n" "NN6L\n" "NN6NN\n" "NN6R\n" "NN6T\n" "NN6W\n" "NN6XX\n" "NN7A\n" "NN7D\n" "NN7F\n" "NN7SS\n" "NN7ZZ\n" "NN8K\n" "NN8L\n" "NN8P\n" "NN8R\n" "NN8UU\n" "NN9K\n" "NN9Q\n" "NO2D\n" "NO2J\n" "NO2R\n" "NO2T\n" "NO2X\n" "NO3M\n" "NO4Q\n" "NO4S\n" "NO4Y\n" "NO5FD\n" "NO5G\n" "NO5LA\n" "NO5Q\n" "NO5W\n" "NO5X\n" "NO6F\n" "NO6T\n" "NO6X\n" "NO7B\n" "NO7T\n" "NO8C\n" "NO8D\n" "NO8DX\n" "NO8J\n" "NO8R\n" "NO9C\n" "NO9E\n" "NO9Z\n" "NP2B\n" "NP2I/AG9\n" "NP2KW\n" "NP2L\n" "NP2N\n" "NP2Q\n" "NP2SH\n" "NP2X\n" "NP3CW\n" "NP3D\n" "NP3HM\n" "NP3QE\n" "NP3U\n" "NP4A\n" "NP4BM\n" "NP4BW\n" "NP4DX\n" "NP4EG\n" "NP4G\n" "NP4KT\n" "NP4V\n" "NP4Z\n" "NQ0K\n" "NQ1W\n" "NQ2F\n" "NQ2W\n" "NQ3A\n" "NQ3I\n" "NQ3N\n" "NQ4A\n" "NQ4I\n" "NQ4K\n" "NQ4RP\n" "NQ4U\n" "NQ5D\n" "NQ5K\n" "NQ5L\n" "NQ5Z\n" "NQ6L\n" "NQ6P\n" "NQ7P\n" "NQ7R\n" "NR0E\n" "NR0L\n" "NR0T\n" "NR1I\n" "NR1R\n" "NR1X\n" "NR3I\n" "NR3R\n" "NR3X\n" "NR3Y\n" "NR4C\n" "NR4M\n" "NR4MM\n" "NR4N\n" "NR5M\n" "NR5R\n" "NR6O\n" "NR6TT\n" "NR7DX\n" "NR7Q\n" "NR7RR\n" "NR7T\n" "NR8I\n" "NR8U\n" "NR9A\n" "NR9A/0\n" "NR9B\n" "NR9B/9\n" "NR9W\n" "NS0I\n" "NS0M\n" "NS1E\n" "NS1G\n" "NS1L\n" "NS1S\n" "NS1T\n" "NS2O\n" "NS2X\n" "NS3A\n" "NS3Q\n" "NS3T\n" "NS3X\n" "NS4L\n" "NS4SC\n" "NS4SN\n" "NS5Z\n" "NS6C\n" "NS6T\n" "NS7B\n" "NS7E\n" "NS7K\n" "NS7O\n" "NS7P\n" "NS8G\n" "NS8O\n" "NS9I\n" "NT0F\n" "NT0L\n" "NT0V\n" "NT0Z\n" "NT1A\n" "NT1N\n" "NT2A\n" "NT2F\n" "NT3R\n" "NT4A\n" "NT4D\n" "NT4Q\n" "NT4TS\n" "NT4Y\n" "NT5C\n" "NT5O\n" "NT5R\n" "NT5V\n" "NT6AA\n" "NT6K\n" "NT6X\n" "NT8P\n" "NT8S\n" "NT8V\n" "NT8W\n" "NT9F\n" "NU0C\n" "NU0J\n" "NU0Q\n" "NU0V\n" "NU1AW\n" "NU1B\n" "NU1M\n" "NU2J\n" "NU2M\n" "NU3A\n" "NU3B\n" "NU3H\n" "NU4B\n" "NU4C\n" "NU4I\n" "NU4N\n" "NU4SC\n" "NU4Y\n" "NU5A\n" "NU5DE\n" "NU5K\n" "NU6C\n" "NU6L\n" "NU6S\n" "NU6T\n" "NU7DX\n" "NU7F\n" "NU7J\n" "NU7P\n" "NU7T\n" "NU8L\n" "NU8Z\n" "NV0P\n" "NV0S\n" "NV0U\n" "NV1N\n" "NV2G\n" "NV3V\n" "NV4A\n" "NV4B\n" "NV4G\n" "NV5E\n" "NV5H\n" "NV6C\n" "NV6R\n" "NV7A\n" "NV7E\n" "NV7P\n" "NV8N\n" "NV9X\n" "NV9Z\n" "NW0DX\n" "NW0G\n" "NW0Q\n" "NW1C\n" "NW1E\n" "NW1V\n" "NW2I\n" "NW3DC\n" "NW4J\n" "NW4N\n" "NW4T\n" "NW4V\n" "NW5U\n" "NW5X\n" "NW6H\n" "NW6P\n" "NW6R\n" "NW6S\n" "NW7D\n" "NW7E\n" "NW7I\n" "NW7O\n" "NW7US\n" "NW8F\n" "NW8U\n" "NW9S\n" "NX0I\n" "NX0X\n" "NX1C\n" "NX1P\n" "NX1Q\n" "NX1T\n" "NX1Y\n" "NX2PX\n" "NX2X\n" "NX3Y\n" "NX4C\n" "NX4D\n" "NX4N\n" "NX4O\n" "NX5D\n" "NX5M\n" "NX5O\n" "NX5Z\n" "NX6J\n" "NX6T\n" "NX7DX\n" "NX7F\n" "NX7TT\n" "NX7U\n" "NX8G\n" "NX8J\n" "NX9B\n" "NX9T\n" "NY0O\n" "NY0R\n" "NY0T\n" "NY0V\n" "NY1E\n" "NY1H\n" "NY1Q\n" "NY2U\n" "NY3A\n" "NY3B\n" "NY3C\n" "NY3DX\n" "NY3H\n" "NY4A\n" "NY4D\n" "NY4FL\n" "NY4I\n" "NY4JB\n" "NY4N\n" "NY4O\n" "NY4P\n" "NY4PD\n" "NY4S\n" "NY6DX\n" "NY6I\n" "NY6J\n" "NY6N\n" "NY6P\n" "NY6U\n" "NY6X\n" "NY6Y\n" "NY8K\n" "NY8T\n" "NY9H\n" "NY9S\n" "NZ0O\n" "NZ0R\n" "NZ0T\n" "NZ1D\n" "NZ1R\n" "NZ1U\n" "NZ3J\n" "NZ3M\n" "NZ4CW\n" "NZ4DX\n" "NZ4L\n" "NZ4O\n" "NZ4R\n" "NZ5A\n" "NZ5DX\n" "NZ5G\n" "NZ5L\n" "NZ5M\n" "NZ5N\n" "NZ5P\n" "NZ6K\n" "NZ6L\n" "NZ6P\n" "NZ6Q\n" "NZ8J\n" "NZ9R\n" "NZ9Z\n" "OA4AHW\n" "OA4AI\n" "OA4O\n" "OA4SS\n" "OA4TT\n" "OA4WW\n" "OA6/OE3NHW\n" "OC4HQ\n" "OD5NJ\n" "OD5O\n" "OD5T\n" "OD5TE\n" "OD5WPX\n" "OE1A\n" "OE1AGB\n" "OE1AZS\n" "OE1BKA\n" "OE1C\n" "OE1DWC\n" "OE1EHB\n" "OE1FSB\n" "OE1H\n" "OE1HFC\n" "OE1HHB\n" "OE1HMC\n" "OE1JEW\n" "OE1KBC\n" "OE1KDK\n" "OE1KLW\n" "OE1KTS\n" "OE1MBB\n" "OE1MCU\n" "OE1MHL\n" "OE1MOU\n" "OE1PEW\n" "OE1PMU\n" "OE1PPA\n" "OE1RGC\n" "OE1RKS\n" "OE1SF\n" "OE1SGU\n" "OE1SZW\n" "OE1TKW\n" "OE1TRB\n" "OE1UZ\n" "OE1WEU\n" "OE1WIU\n" "OE1XTU\n" "OE2BZL\n" "OE2DYL\n" "OE2GEN\n" "OE2GRL\n" "OE2IGP\n" "OE2IJL\n" "OE2KGL\n" "OE2KHM\n" "OE2KNN\n" "OE2LCM\n" "OE2M\n" "OE2MON\n" "OE2S\n" "OE2SCM\n" "OE2SNL\n" "OE2UKL\n" "OE2VDL\n" "OE2VEL\n" "OE2VLN\n" "OE2WUL\n" "OE2XWL\n" "OE3AKB\n" "OE3CHA\n" "OE3CHC\n" "OE3DIA\n" "OE3DMA\n" "OE3DSA\n" "OE3DSB\n" "OE3DWC\n" "OE3DXA\n" "OE3EHA\n" "OE3EMC\n" "OE3EVA\n" "OE3FLU\n" "OE3FPA\n" "OE3GBB\n" "OE3GCU\n" "OE3GSA\n" "OE3HPA\n" "OE3HPU\n" "OE3HTC\n" "OE3HWC\n" "OE3HZW\n" "OE3I\n" "OE3JAG\n" "OE3JS\n" "OE3JTB\n" "OE3JWC\n" "OE3K\n" "OE3KAB\n" "OE3KLU\n" "OE3KOA\n" "OE3MRA\n" "OE3NHW\n" "OE3O\n" "OE3OLW\n" "OE3PGW\n" "OE3PRU\n" "OE3REC\n" "OE3RTB\n" "OE3SGA\n" "OE3SGU\n" "OE3TL\n" "OE3WEU\n" "OE3WMA\n" "OE3WMW\n" "OE3WXU\n" "OE3ZK\n" "OE4A\n" "OE4AAC\n" "OE4HSB\n" "OE4PWW\n" "OE4RGC\n" "OE4RLC\n" "OE4VIE\n" "OE4WBW\n" "OE4WWL\n" "OE4XRK\n" "OE5AWL\n" "OE5BWN\n" "OE5CSP\n" "OE5CWO\n" "OE5CYL\n" "OE5DFP\n" "OE5DI\n" "OE5FBL\n" "OE5FDM\n" "OE5FIN\n" "OE5FZO\n" "OE5GA\n" "OE5GWP\n" "OE5HDN\n" "OE5HIL\n" "OE5HSN\n" "OE5JKL\n" "OE5KE\n" "OE5MSM\n" "OE5NGM\n" "OE5OHO\n" "OE5ORM\n" "OE5PEN\n" "OE5RI\n" "OE5SMU\n" "OE5T\n" "OE5UAL\n" "OE5WEL\n" "OE5WGL\n" "OE5XIL\n" "OE6AKD\n" "OE6BMG\n" "OE6CWL\n" "OE6FGG\n" "OE6GRG\n" "OE6HLF\n" "OE6HTG\n" "OE6HZG\n" "OE6IMD\n" "OE6KDG\n" "OE6KYG\n" "OE6LCF\n" "OE6LUG\n" "OE6MBG\n" "OE6MDF\n" "OE6MMF\n" "OE6SQD\n" "OE6TXG\n" "OE6WIG\n" "OE6WSF\n" "OE6Z\n" "OE7AJT\n" "OE7BJT\n" "OE7DDI\n" "OE7F\n" "OE7FMH\n" "OE7FRH\n" "OE7GJ\n" "OE7MFI\n" "OE7PKJ\n" "OE8ANK\n" "OE8DLK\n" "OE8GBK\n" "OE8GMK\n" "OE8GMQ\n" "OE8HAQ\n" "OE8HIK\n" "OE8KR\n" "OE8MKQ\n" "OE8NTK\n" "OE8Q\n" "OE8SKQ\n" "OE8SPW\n" "OE8WIU\n" "OE8XBH\n" "OE9ADW\n" "OE9GHV\n" "OE9GLV\n" "OE9GWI\n" "OE9HGV\n" "OE9HLH\n" "OE9ICI\n" "OE9MCV\n" "OE9MON\n" "OE9MWV\n" "OE9NRH\n" "OE9PTI\n" "OE9R\n" "OE9RJJ\n" "OE9SBD\n" "OE9SEI\n" "OE9SLH\n" "OE9WGI\n" "OE9WLJ\n" "OG0I\n" "OG0M\n" "OG0R\n" "OG0Z\n" "OG1M\n" "OG1T\n" "OG2A\n" "OG2M\n" "OG2O\n" "OG2P\n" "OG2U\n" "OG3A\n" "OG3M\n" "OG3R\n" "OG4T\n" "OG4X\n" "OG50F\n" "OG5A\n" "OG5B\n" "OG5M\n" "OG5OF\n" "OG5T\n" "OG6A\n" "OG6G\n" "OG6K\n" "OG6N\n" "OG6R\n" "OG7X\n" "OG8A\n" "OG8X\n" "OG9W\n" "OH/AB9OG\n" "OH/G1UZD\n" "OH0/OH2LRE\n" "OH0AL\n" "OH0B\n" "OH0E\n" "OH0EC\n" "OH0JFP\n" "OH0PM\n" "OH0R\n" "OH0RJ\n" "OH0V\n" "OH0X\n" "OH0Z\n" "OH1BGG\n" "OH1BOI\n" "OH1BV\n" "OH1EB\n" "OH1F\n" "OH1FFN\n" "OH1FJ\n" "OH1HD\n" "OH1HM\n" "OH1JO\n" "OH1JT\n" "OH1KF\n" "OH1KIO\n" "OH1LA\n" "OH1LEG\n" "OH1LEU\n" "OH1LQ\n" "OH1LWZ\n" "OH1MA\n" "OH1MAU\n" "OH1MLZ\n" "OH1MM\n" "OH1MN\n" "OH1MZ\n" "OH1ND\n" "OH1NM\n" "OH1NOA\n" "OH1NX\n" "OH1O\n" "OH1PY\n" "OH1QA\n" "OH1RX\n" "OH1SIC\n" "OH1TD\n" "OH1TIN\n" "OH1TN\n" "OH1TS\n" "OH1TX\n" "OH1UM\n" "OH1VR\n" "OH1WF\n" "OH1WR\n" "OH1XT\n" "OH1XX\n" "OH1XY\n" "OH1Z\n" "OH1ZE\n" "OH2AG\n" "OH2BAD\n" "OH2BAH\n" "OH2BBR\n" "OH2BBT\n" "OH2BC\n" "OH2BCD\n" "OH2BCK\n" "OH2BEC\n" "OH2BEJ\n" "OH2BEN\n" "OH2BF\n" "OH2BGD\n" "OH2BH\n" "OH2BJ\n" "OH2BLD\n" "OH2BLV\n" "OH2BMO\n" "OH2BN\n" "OH2BNX\n" "OH2BO\n" "OH2BP\n" "OH2BPA\n" "OH2BPU\n" "OH2BR\n" "OH2BS\n" "OH2BSI\n" "OH2BU\n" "OH2BUW\n" "OH2BV\n" "OH2CI\n" "OH2CK\n" "OH2CP\n" "OH2CW\n" "OH2DP\n" "OH2EI\n" "OH2EO\n" "OH2ET\n" "OH2EV\n" "OH2FS\n" "OH2FT\n" "OH2GI\n" "OH2HAN\n" "OH2HOD\n" "OH2HQ\n" "OH2JSR\n" "OH2K\n" "OH2KAD\n" "OH2KI\n" "OH2KK\n" "OH2KW\n" "OH2LE\n" "OH2LI\n" "OH2LIR\n" "OH2LNH\n" "OH2LP\n" "OH2LU\n" "OH2LYJ\n" "OH2LZI\n" "OH2MA\n" "OH2MFE\n" "OH2MM\n" "OH2MO\n" "OH2MQ\n" "OH2MZB\n" "OH2NC\n" "OH2NFN\n" "OH2NT\n" "OH2OT\n" "OH2PM\n" "OH2PQ\n" "OH2RH\n" "OH2RI\n" "OH2T\n" "OH2TM\n" "OH2U\n" "OH2VB\n" "OH2VZ\n" "OH2WI\n" "OH2XF\n" "OH2XP\n" "OH2XX\n" "OH2ZZ\n" "OH3BHL\n" "OH3BU\n" "OH3CT\n" "OH3DP\n" "OH3FLF\n" "OH3FM\n" "OH3GBS\n" "OH3GD\n" "OH3GIF\n" "OH3GZ\n" "OH3HS\n" "OH3I\n" "OH3JF\n" "OH3JP\n" "OH3JR\n" "OH3KAV\n" "OH3KQ\n" "OH3LB\n" "OH3LQK\n" "OH3MC\n" "OH3MEO\n" "OH3MF\n" "OH3MKH\n" "OH3MMF\n" "OH3NDH\n" "OH3OJ\n" "OH3P\n" "OH3QL\n" "OH3RF\n" "OH3RM\n" "OH3RU\n" "OH3SR\n" "OH3UU\n" "OH3VV\n" "OH3WD\n" "OH3WR\n" "OH3WW\n" "OH3XA\n" "OH3XR\n" "OH3YI\n" "OH4A\n" "OH4AB\n" "OH4BNP\n" "OH4E\n" "OH4EA\n" "OH4JK\n" "OH4JT\n" "OH4KA\n" "OH4LA\n" "OH4LBX\n" "OH4M\n" "OH4MDY\n" "OH4MFA\n" "OH4R\n" "OH4RF\n" "OH4TI\n" "OH4TY\n" "OH4XX\n" "OH5BM\n" "OH5CW\n" "OH5DA\n" "OH5HBA\n" "OH5JH\n" "OH5JJL\n" "OH5K\n" "OH5KW\n" "OH5LF\n" "OH5LP\n" "OH5N\n" "OH5NE\n" "OH5NQ\n" "OH5NZ\n" "OH5PT\n" "OH5TQ\n" "OH5TS\n" "OH5UFO\n" "OH5UQ\n" "OH5UX\n" "OH5VG\n" "OH5VT\n" "OH5XX\n" "OH5YU\n" "OH5YX\n" "OH5Z\n" "OH5ZZ\n" "OH6AC\n" "OH6BA\n" "OH6BG\n" "OH6CT\n" "OH6DX\n" "OH6EI\n" "OH6FMG\n" "OH6GAZ\n" "OH6GDX\n" "OH6GL\n" "OH6GUA\n" "OH6HOL\n" "OH6IU\n" "OH6JKW\n" "OH6JT\n" "OH6JYH\n" "OH6K\n" "OH6KZP\n" "OH6LEZ\n" "OH6LHB\n" "OH6LI\n" "OH6LOB\n" "OH6M\n" "OH6MBQ\n" "OH6MK\n" "OH6MKL\n" "OH6MM\n" "OH6MMC\n" "OH6MSZ\n" "OH6MW\n" "OH6NJ\n" "OH6NV\n" "OH6OS\n" "OH6P\n" "OH6R\n" "OH6RC\n" "OH6RE\n" "OH6RP\n" "OH6RX\n" "OH6TN\n" "OH6UE\n" "OH6VI\n" "OH6WI\n" "OH6XB\n" "OH6XY\n" "OH7AZL\n" "OH7BX\n" "OH7FAE\n" "OH7FF\n" "OH7FKV\n" "OH7HD\n" "OH7HM\n" "OH7HXH\n" "OH7JH\n" "OH7JHI\n" "OH7JJT\n" "OH7JL\n" "OH7JR\n" "OH7KBF\n" "OH7KD\n" "OH7KNM\n" "OH7M\n" "OH7MFO\n" "OH7MJU\n" "OH7MM\n" "OH7MN\n" "OH7MP\n" "OH7MS\n" "OH7MYK\n" "OH7N\n" "OH7NJ\n" "OH7R\n" "OH7RJ\n" "OH7UE\n" "OH7UG\n" "OH7WN\n" "OH7WW\n" "OH7XM\n" "OH7YN\n" "OH8A\n" "OH8CW\n" "OH8DR\n" "OH8F\n" "OH8FAL\n" "OH8FBD\n" "OH8FKU\n" "OH8GBO\n" "OH8GZN\n" "OH8GZQ\n" "OH8HTG\n" "OH8JSZ\n" "OH8KA\n" ; const char txt_master4[65520] = "OH8KTN\n" "OH8KVA\n" "OH8KVY\n" "OH8L\n" "OH8LQ\n" "OH8LXT\n" "OH8MBN\n" "OH8MJ\n" "OH8NC\n" "OH8OB\n" "OH8OR\n" "OH8R\n" "OH8SE\n" "OH8T\n" "OH8TA\n" "OH8TV\n" "OH8UL\n" "OH8US\n" "OH8VQ\n" "OH8WW\n" "OH8X\n" "OH9BS\n" "OH9GIT\n" "OH9KL\n" "OH9MDV\n" "OH9RP\n" "OH9VC\n" "OH9VL\n" "OH9W\n" "OI3V\n" "OI6X\n" "OJ0B\n" "OK1AA\n" "OK1AAZ\n" "OK1ABB\n" "OK1ABF\n" "OK1ACF\n" "OK1AD\n" "OK1ADM\n" "OK1AEZ\n" "OK1AHG\n" "OK1AHJ\n" "OK1AHV\n" "OK1AIJ\n" "OK1AIT\n" "OK1AJR\n" "OK1AJY\n" "OK1AK\n" "OK1AKB\n" "OK1AKJ\n" "OK1AL\n" "OK1AMM\n" "OK1AMU\n" "OK1AN\n" "OK1ANT\n" "OK1AOU\n" "OK1AOV\n" "OK1AOZ\n" "OK1APB\n" "OK1APV\n" "OK1AQW\n" "OK1ARO\n" "OK1ATH\n" "OK1ATX\n" "OK1AUG\n" "OK1AVG\n" "OK1AVY\n" "OK1AWG\n" "OK1AWH\n" "OK1AWU\n" "OK1AXB\n" "OK1AXG\n" "OK1AXX\n" "OK1AY\n" "OK1AYD\n" "OK1AYE\n" "OK1AYU\n" "OK1AYW\n" "OK1AYY\n" "OK1AZK\n" "OK1BA\n" "OK1BB\n" "OK1BET\n" "OK1BLU\n" "OK1BM\n" "OK1BMW\n" "OK1BN\n" "OK1CAM\n" "OK1CDJ\n" "OK1CF\n" "OK1CLD\n" "OK1CO\n" "OK1CQ\n" "OK1CRM\n" "OK1CSS\n" "OK1CW\n" "OK1CZ\n" "OK1DAM\n" "OK1DAU\n" "OK1DBE\n" "OK1DC\n" "OK1DCF\n" "OK1DDQ\n" "OK1DDV/P\n" "OK1DEC\n" "OK1DEK\n" "OK1DF\n" "OK1DG\n" "OK1DGU\n" "OK1DH\n" "OK1DHP\n" "OK1DI\n" "OK1DIG\n" "OK1DIX\n" "OK1DJD\n" "OK1DJS\n" "OK1DKA\n" "OK1DKO\n" "OK1DKR\n" "OK1DKZ\n" "OK1DLA\n" "OK1DLB\n" "OK1DM\n" "OK1DMP\n" "OK1DNJ\n" "OK1DO\n" "OK1DOF\n" "OK1DOL\n" "OK1DOM\n" "OK1DOR\n" "OK1DOT\n" "OK1DOY\n" "OK1DOZ\n" "OK1DQT\n" "OK1DRQ\n" "OK1DRU\n" "OK1DRX\n" "OK1DRY\n" "OK1DST\n" "OK1DSU\n" "OK1DSX\n" "OK1DTC\n" "OK1DTM\n" "OK1DTN\n" "OK1DUT\n" "OK1DVA\n" "OK1DVK\n" "OK1DVM\n" "OK1DWC\n" "OK1DWF\n" "OK1DWJ\n" "OK1DX\n" "OK1DXD\n" "OK1DXI\n" "OK1ED\n" "OK1EK\n" "OK1EP\n" "OK1ES\n" "OK1EV\n" "OK1FAB\n" "OK1FAI\n" "OK1FAK\n" "OK1FAN\n" "OK1FAO\n" "OK1FAQ\n" "OK1FAV\n" "OK1FBH\n" "OK1FC\n" "OK1FCA\n" "OK1FCR\n" "OK1FDR\n" "OK1FDY\n" "OK1FED\n" "OK1FEK\n" "OK1FFA\n" "OK1FFU\n" "OK1FFW\n" "OK1FGD\n" "OK1FGE\n" "OK1FGS\n" "OK1FGU\n" "OK1FHD\n" "OK1FHI\n" "OK1FIM\n" "OK1FIY\n" "OK1FKD\n" "OK1FKM\n" "OK1FLC\n" "OK1FLK\n" "OK1FLT\n" "OK1FMG\n" "OK1FMX\n" "OK1FNT\n" "OK1FOG\n" "OK1FP\n" "OK1FPG\n" "OK1FPQ\n" "OK1FPS\n" "OK1FQT\n" "OK1FRD\n" "OK1FRG\n" "OK1FRO\n" "OK1FSM\n" "OK1FTM\n" "OK1FUK\n" "OK1FV\n" "OK1FWW\n" "OK1FZM\n" "OK1GI\n" "OK1GK\n" "OK1GM\n" "OK1GS\n" "OK1GT\n" "OK1GTH\n" "OK1GU\n" "OK1HA\n" "OK1HAS\n" "OK1HC\n" "OK1HCD\n" "OK1HCG\n" "OK1HCU\n" "OK1HEH\n" "OK1HFP\n" "OK1HGM\n" "OK1HL\n" "OK1HMP\n" "OK1HRA\n" "OK1HWI\n" "OK1HX\n" "OK1IAS\n" "OK1IBP\n" "OK1IC\n" "OK1IEC\n" "OK1IEV\n" "OK1II\n" "OK1IPS\n" "OK1IR\n" "OK1ITK\n" "OK1IW\n" "OK1IWN\n" "OK1JDJ\n" "OK1JDR\n" "OK1JFP\n" "OK1JKR\n" "OK1JL\n" "OK1JMD\n" "OK1JMJ\n" "OK1JN\n" "OK1JOC\n" "OK1JOK\n" "OK1JR\n" "OK1JST\n" "OK1JVT\n" "OK1JXU\n" "OK1KAK\n" "OK1KC\n" "OK1KDO\n" "OK1KFB\n" "OK1KI\n" "OK1KJA\n" "OK1KJV\n" "OK1KL\n" "OK1KM\n" "OK1KMG\n" "OK1KMU\n" "OK1KOB\n" "OK1KSL\n" "OK1KT\n" "OK1KTI\n" "OK1KTT\n" "OK1KUO\n" "OK1KW\n" "OK1KZ\n" "OK1LO\n" "OK1LOL\n" "OK1LV\n" "OK1LX\n" "OK1MAC\n" "OK1MBZ\n" "OK1MCW\n" "OK1MDK\n" "OK1MGW\n" "OK1MIN\n" "OK1MIQ\n" "OK1MKD\n" "OK1MKI\n" "OK1MKU\n" "OK1MMN\n" "OK1MMU\n" "OK1MNI\n" "OK1MNV\n" "OK1MNW\n" "OK1MP\n" "OK1MQ\n" "OK1MRU\n" "OK1MSJ\n" "OK1MSL\n" "OK1MSP\n" "OK1MV\n" "OK1MYA\n" "OK1MZB\n" "OK1MZO\n" "OK1ND\n" "OK1NE\n" "OK1NG\n" "OK1NGC\n" "OK1NI\n" "OK1NL\n" "OK1NR\n" "OK1NU\n" "OK1NY\n" "OK1NZ\n" "OK1OA\n" "OK1ODX\n" "OK1OUE\n" "OK1PA\n" "OK1PD\n" "OK1PFM\n" "OK1PI\n" "OK1PR\n" "OK1PV\n" "OK1PW\n" "OK1Q\n" "OK1QM\n" "OK1RP\n" "OK1RR\n" "OK1RS\n" "OK1SD\n" "OK1SF\n" "OK1SI\n" "OK1SKJ\n" "OK1SMJ\n" "OK1SP\n" "OK1SX\n" "OK1T\n" "OK1TA\n" "OK1TC\n" "OK1TD\n" "OK1TFH\n" "OK1TIR\n" "OK1TN\n" "OK1TPW\n" "OK1TRA\n" "OK1UDJ\n" "OK1UG\n" "OK1UKV\n" "OK1ULE\n" "OK1UN\n" "OK1UNL\n" "OK1US\n" "OK1USU\n" "OK1UU\n" "OK1VAW\n" "OK1VD\n" "OK1VDJ\n" "OK1VEI\n" "OK1VFT\n" "OK1VHV\n" "OK1VKC\n" "OK1VPU\n" "OK1VRF\n" "OK1W\n" "OK1WCF\n" "OK1WF\n" "OK1WIP\n" "OK1WMJ\n" "OK1WT\n" "OK1X\n" "OK1XC\n" "OK1XPP\n" "OK1XQ\n" "OK1XR\n" "OK1XV\n" "OK1XW\n" "OK1XYZ\n" "OK1YC\n" "OK1YM\n" "OK1Z\n" "OK1ZCW\n" "OK1ZE\n" "OK1ZHS\n" "OK1ZHV\n" "OK1ZVL\n" "OK2ABU\n" "OK2AF\n" "OK2AJ\n" "OK2AN\n" "OK2AOP\n" "OK2ARD\n" "OK2BAQ\n" "OK2BBJ\n" "OK2BBQ\n" "OK2BDR\n" "OK2BEH\n" "OK2BEN\n" "OK2BFN\n" "OK2BGB\n" "OK2BGN\n" "OK2BH\n" "OK2BHD\n" "OK2BHL\n" "OK2BIQ\n" "OK2BIU\n" "OK2BJ\n" "OK2BJC\n" "OK2BJI\n" "OK2BJL\n" "OK2BK\n" "OK2BKL\n" "OK2BLD\n" "OK2BMC\n" "OK2BME\n" "OK2BMI\n" "OK2BMU\n" "OK2BNC\n" "OK2BND\n" "OK2BNF\n" "OK2BOB\n" "OK2BPK\n" "OK2BPU\n" "OK2BQ\n" "OK2BQZ\n" "OK2BRQ\n" "OK2BRS\n" "OK2BRV\n" "OK2BRX\n" "OK2BSQ\n" "OK2BTC\n" "OK2BTR\n" "OK2BTS\n" "OK2BTT\n" "OK2BUD\n" "OK2BUT\n" "OK2BUZ\n" "OK2BV\n" "OK2BWC\n" "OK2BWI\n" "OK2BWJ\n" "OK2BWK\n" "OK2BWM\n" "OK2BXA\n" "OK2BXE\n" "OK2BXU\n" "OK2BXW\n" "OK2BYW\n" "OK2BZ\n" "OK2BZE\n" "OK2BZM\n" "OK2CJM\n" "OK2CLW\n" "OK2CMW\n" "OK2COB\n" "OK2CQR\n" "OK2CSU\n" "OK2CVA\n" "OK2DW\n" "OK2EA\n" "OK2EC\n" "OK2EE\n" "OK2EI\n" "OK2EQ\n" "OK2ER\n" "OK2FB\n" "OK2FD\n" "OK2FN\n" "OK2FR\n" "OK2FYM\n" "OK2GG\n" "OK2GU\n" "OK2GX\n" "OK2GZ\n" "OK2HBR\n" "OK2HBY\n" "OK2HI\n" "OK2HIJ\n" "OK2HZ\n" "OK2ILD\n" "OK2JK\n" "OK2JNB\n" "OK2JOW\n" "OK2JS\n" "OK2KFK\n" "OK2KG\n" "OK2KJ\n" "OK2KJU\n" "OK2KO\n" "OK2KOJ\n" "OK2KPS\n" "OK2KR\n" "OK2KRT\n" "OK2KV\n" "OK2LI\n" "OK2LW\n" "OK2MBP\n" "OK2MJF\n" "OK2N\n" "OK2NA\n" "OK2NAJ\n" "OK2NMA\n" "OK2NO\n" "OK2OLD\n" "OK2OP\n" "OK2OV\n" "OK2OZL\n" "OK2PA\n" "OK2PAD\n" "OK2PAY\n" "OK2PBF\n" "OK2PBG\n" "OK2PCL\n" "OK2PCX\n" "OK2PDN\n" "OK2PDT\n" "OK2PEX\n" "OK2PF\n" "OK2PHI\n" "OK2PJW\n" "OK2PKT\n" "OK2PLH\n" "OK2PMA\n" "OK2PMF\n" "OK2PMS\n" "OK2PO\n" "OK2PQS\n" "OK2PRM\n" "OK2PTS\n" "OK2PVZ\n" "OK2PWJ\n" "OK2PWY\n" "OK2PX\n" "OK2PYA\n" "OK2PZ\n" "OK2QA\n" "OK2QX\n" "OK2RAC\n" "OK2RDI\n" "OK2RN\n" "OK2RRR\n" "OK2RU\n" "OK2RVM\n" "OK2RW\n" "OK2RZ\n" "OK2SA\n" "OK2SAI\n" "OK2SAR\n" "OK2SFO\n" "OK2SFP\n" "OK2SG\n" "OK2SGW\n" "OK2SGY\n" "OK2SI\n" "OK2SK\n" "OK2SKP\n" "OK2SLS\n" "OK2SPD\n" "OK2SSD\n" "OK2SVL\n" "OK2SW\n" "OK2SWD\n" "OK2TBC\n" "OK2TC\n" "OK2TDM\n" "OK2TEO\n" "OK2TPS\n" "OK2TRN\n" "OK2TS\n" "OK2U\n" "OK2UFB\n" "OK2UHP\n" "OK2UIN\n" "OK2UM\n" "OK2UVX\n" "OK2UZ\n" "OK2VA\n" "OK2VK\n" "OK2VWB\n" "OK2VX\n" "OK2VZE\n" "OK2W\n" "OK2WED\n" "OK2WKW\n" "OK2WM\n" "OK2WO\n" "OK2WY\n" "OK2WYK\n" "OK2XRW\n" "OK2YT\n" "OK2YZ\n" "OK2ZAK\n" "OK2ZAW\n" "OK2ZC\n" "OK2ZD\n" "OK2ZDL\n" "OK2ZI\n" "OK2ZO\n" "OK2ZU\n" "OK2ZV\n" "OK2ZW\n" "OK3AA\n" "OK3C\n" "OK3DN\n" "OK3KK\n" "OK3M\n" "OK3MAD\n" "OK3R\n" "OK3VM\n" "OK3W\n" "OK4AS\n" "OK4AZ\n" "OK4BX\n" "OK4DZ\n" "OK4FD\n" "OK4M\n" "OK4MM\n" "OK4N\n" "OK4PA\n" "OK4RQ\n" "OK4U\n" "OK4W\n" "OK5AA\n" "OK5AD\n" "OK5CW\n" "OK5IM\n" "OK5M\n" "OK5MK\n" "OK5MM\n" "OK5MN\n" "OK5OK\n" "OK5R\n" "OK5SA\n" "OK5SAZ\n" "OK5SWL\n" "OK5TFC\n" "OK5TK\n" "OK5TM\n" "OK5W\n" "OK5XX\n" "OK5ZH\n" "OK6AB\n" "OK6AY\n" "OK6CX\n" "OK6DJ\n" "OK6DX\n" "OK6K\n" "OK6MA\n" "OK6T\n" "OK6TW\n" "OK6Y\n" "OK7B\n" "OK7CM\n" "OK7CW\n" "OK7D\n" "OK7FL\n" "OK7GU\n" "OK7K\n" "OK7M\n" "OK7MD\n" "OK7MK\n" "OK7MT\n" "OK7N\n" "OK7O\n" "OK7PJ\n" "OK7PY\n" "OK7R\n" "OK7RJ\n" "OK7RY\n" "OK7SX\n" "OK7TB\n" "OK7U\n" "OK7WA\n" "OK7X\n" "OK7XX\n" "OK7Y\n" "OK8ACS\n" "OK8DCC\n" "OK8DD\n" "OK8DF\n" "OK8RA\n" "OK8RE\n" "OK8WW\n" "OK8YD\n" "OL0A\n" "OL0E\n" "OL0L\n" "OL0W\n" "OL16BND\n" "OL1A\n" "OL1B\n" "OL1C\n" "OL1M\n" "OL1S\n" "OL1X\n" "OL25LP\n" "OL26LP\n" "OL2A\n" "OL2N\n" "OL2T\n" "OL2U\n" "OL2X\n" "OL3A\n" "OL3M\n" "OL3R\n" "OL3X\n" "OL3Y\n" "OL3Z\n" "OL4A\n" "OL4M\n" "OL4W\n" "OL5K\n" "OL5M\n" "OL5Q\n" "OL5R\n" "OL5T\n" "OL5Y\n" "OL6M\n" "OL6P\n" "OL6W\n" "OL6X\n" "OL73NR\n" "OL7C\n" "OL7D\n" "OL7G\n" "OL7H\n" "OL7M\n" "OL7O\n" "OL7P\n" "OL7R\n" "OL7S\n" "OL7T\n" "OL8M\n" "OL8R\n" "OL8W\n" "OL9HQ\n" "OL9M\n" "OL9R\n" "OL9S\n" "OL9Z\n" "OM0A\n" "OM0ATP\n" "OM0M\n" "OM0R\n" "OM0TT\n" "OM0WR\n" "OM1ADM\n" "OM1AF\n" "OM1ATW\n" "OM1AW\n" "OM1AX\n" "OM1BM\n" "OM1HI\n" "OM1II\n" "OM1PD\n" "OM1TD\n" "OM1VA\n" "OM1XQ\n" "OM2AD\n" "OM2AK\n" "OM2ALA\n" "OM2AM\n" "OM2AW\n" "OM2BJ\n" "OM2CS\n" "OM2FY\n" "OM2IB\n" "OM2TB\n" "OM2VL\n" "OM2WX\n" "OM2XW\n" "OM2ZZ\n" "OM3AG\n" "OM3BA\n" "OM3BH\n" "OM3BY\n" "OM3CAQ\n" "OM3CDN\n" "OM3CEA\n" "OM3CGN\n" "OM3CHO\n" "OM3CPF\n" "OM3CUG\n" "OM3CW\n" "OM3DX\n" "OM3ED\n" "OM3EK\n" "OM3EQ\n" "OM3EY\n" "OM3FR\n" "OM3FZ\n" "OM3GI\n" "OM3IAG\n" "OM3ID\n" "OM3JA\n" "OM3JW\n" "OM3KFF\n" "OM3KJH\n" "OM3KWZ\n" "OM3KXX\n" "OM3KZA\n" "OM3LA\n" "OM3LK\n" "OM3LL\n" "OM3LS\n" "OM3LU\n" "OM3MB\n" "OM3MM\n" "OM3MV\n" "OM3NA\n" "OM3NI\n" "OM3OM\n" "OM3PA\n" "OM3PC\n" "OM3PQ\n" "OM3PR\n" "OM3QQ\n" "OM3R\n" "OM3RDX\n" "OM3RJB\n" "OM3RM\n" "OM3RMM\n" "OM3RRC\n" "OM3SEM\n" "OM3SG\n" "OM3SX\n" "OM3TB\n" "OM3TLE\n" "OM3TPN\n" "OM3TWM\n" "OM3TYC\n" "OM3TZO\n" "OM3X\n" "OM3YAD\n" "OM3YCA\n" "OM3YDX\n" "OM3YFT\n" "OM3ZBG\n" "OM3ZWA\n" "OM4A\n" "OM4AAS\n" "OM4ADR\n" "OM4ANJ\n" "OM4AY\n" "OM4CX\n" "OM4DA\n" "OM4DN\n" "OM4DU\n" "OM4DW\n" "OM4EX\n" "OM4F\n" "OM4J\n" "OM4JD\n" "OM4KW\n" "OM4PD\n" "OM4RF\n" "OM4TC\n" "OM4TW\n" "OM4W\n" "OM4WW\n" "OM4XA\n" "OM5AGM\n" "OM5ALC\n" "OM5CD\n" "OM5CM\n" "OM5CW\n" "OM5DP\n" "OM5DX\n" "OM5EA\n" "OM5FA\n" "OM5GU\n" "OM5KM\n" "OM5KP\n" "OM5LD\n" "OM5LR\n" "OM5M\n" "OM5MF\n" "OM5MO\n" "OM5MX\n" "OM5MZ\n" "OM5NA\n" "OM5NL\n" "OM5NU\n" "OM5RM\n" "OM5TX\n" "OM5UM\n" "OM5VS\n" "OM5X\n" "OM5ZW\n" "OM60KAP\n" "OM6A\n" "OM6AC\n" "OM6AL\n" "OM6AR\n" "OM6AT\n" "OM6AVK\n" "OM6CI\n" "OM6FM\n" "OM6JK\n" "OM6KW\n" "OM6MS\n" "OM6MT\n" "OM6MW\n" "OM6NM\n" "OM6P\n" "OM6PR\n" "OM6RK\n" "OM6SM\n" "OM6T\n" "OM6TC\n" "OM6TX\n" "OM7A\n" "OM7AB\n" "OM7AG\n" "OM7AT\n" "OM7AW\n" "OM7AX\n" "OM7CA\n" "OM7CG\n" "OM7CM\n" "OM7CW\n" "OM7DX\n" "OM7GW\n" "OM7KW\n" "OM7M\n" "OM7OB\n" "OM7OM\n" "OM7PY\n" "OM7RC\n" "OM7RR\n" "OM7RU\n" "OM7SR\n" "OM7TJ\n" "OM7TQ\n" "OM7YC\n" "OM7YL\n" "OM7ZM\n" "OM8A\n" "OM8AA\n" "OM8AHI\n" "OM8AMF\n" "OM8AQ\n" "OM8ART\n" "OM8AW\n" "OM8DD\n" "OM8FF\n" "OM8HG\n" "OM8JP\n" "OM8KW\n" "OM8LA\n" "OM8MM\n" "OM8ON\n" "OM8PG\n" "OM8RA\n" "OM8SL\n" "OM8TA\n" "OM9ACA\n" "OM9AJP\n" "OM9AMM\n" "ON1708M\n" "ON3AB\n" "ON3AD\n" "ON3AR\n" "ON3BZ\n" "ON3CCM\n" "ON3CQ\n" "ON3CYV\n" "ON3DI\n" "ON3DV\n" "ON3ED\n" "ON3EEF\n" "ON3EZ\n" "ON3FZT\n" "ON3GEO\n" "ON3GL\n" "ON3JF\n" "ON3JPA\n" "ON3KBY\n" "ON3KMJ\n" "ON3LBS\n" "ON3LX\n" "ON3ME\n" "ON3MI\n" "ON3MN\n" "ON3MT\n" "ON3ND\n" "ON3OG\n" "ON3OMD\n" "ON3OPA\n" "ON3OY\n" "ON3POL\n" "ON3RBJ\n" "ON3RPL\n" "ON3RR\n" "ON3TD\n" "ON3TO\n" "ON3URT\n" "ON3VBJ\n" "ON3VHF\n" "ON3VRT\n" "ON3VS\n" "ON3VW\n" "ON3VY\n" "ON3WAB\n" "ON3WJ\n" "ON3WLS\n" "ON3XXX\n" "ON3YV\n" "ON4ABL\n" "ON4ACW\n" "ON4AEF\n" "ON4AEK\n" "ON4AEM\n" "ON4AEY\n" "ON4AHF\n" "ON4ALJ\n" "ON4ALY\n" "ON4AMC\n" "ON4AMI\n" "ON4AMY\n" "ON4AN\n" "ON4ANL\n" "ON4ANL/P\n" "ON4AOI\n" "ON4ARJ\n" "ON4ARL\n" "ON4AST\n" "ON4ATA\n" "ON4ATW\n" "ON4AVG\n" "ON4AVZ\n" "ON4AWW\n" "ON4AXU\n" "ON4AYQ\n" "ON4AZL\n" "ON4BAG\n" "ON4BEN\n" "ON4BHP\n" "ON4BHQ\n" "ON4BR\n" "ON4BV\n" "ON4BX\n" "ON4CAB\n" "ON4CAS\n" "ON4CAU\n" "ON4CCC\n" "ON4CCN\n" "ON4CCU\n" "ON4CD\n" "ON4CDZ\n" "ON4CHK\n" "ON4CHN\n" "ON4CHP\n" "ON4CIS\n" "ON4CJR\n" "ON4CKE\n" "ON4CLF\n" "ON4CLQ\n" "ON4CP\n" "ON4CT\n" "ON4CZ\n" "ON4DA\n" "ON4DAP\n" "ON4DN\n" "ON4DY\n" "ON4ED\n" "ON4EI/EI\n" "ON4FG\n" "ON4FI\n" "ON4GG\n" "ON4GL\n" "ON4GO\n" "ON4HVO\n" "ON4IA\n" "ON4IBM\n" "ON4IG\n" "ON4IQ\n" "ON4IT\n" "ON4JM\n" "ON4JPB\n" "ON4KBZ\n" "ON4KCY\n" "ON4KEB\n" "ON4KEP\n" "ON4KGL\n" "ON4KLG\n" "ON4KMB\n" "ON4KML\n" "ON4KN\n" "ON4KSC\n" "ON4LBI\n" "ON4LCI\n" "ON4LCX\n" "ON4LDH\n" "ON4LDP\n" "ON4LDU\n" "ON4LEX\n" "ON4LFN\n" "ON4LG\n" "ON4LN\n" "ON4LO\n" "ON4LWX\n" "ON4MA\n" "ON4MW\n" "ON4ND\n" "ON4NOK\n" "ON4OL\n" "ON4OLE\n" "ON4ON\n" "ON4OS\n" "ON4PAL\n" "ON4PJA\n" "ON4PO\n" "ON4QX\n" "ON4RK\n" "ON4RO\n" "ON4SV\n" "ON4TC\n" "ON4TO\n" "ON4TOM\n" "ON4TTT\n" "ON4UN\n" "ON4UP\n" "ON4UQ\n" "ON4UW\n" "ON4VDV\n" "ON4VMA\n" "ON4VQ\n" "ON4WE\n" "ON4WIY\n" "ON4WW\n" "ON4XG\n" "ON4XJ\n" "ON4YN\n" "ON5AFB\n" "ON5ARY\n" "ON5CMB\n" "ON5DC\n" "ON5DH\n" "ON5DJ\n" "ON5EU\n" "ON5EX\n" "ON5GA\n" "ON5GF\n" "ON5GQ\n" "ON5GY\n" "ON5HF\n" "ON5HR\n" "ON5HY\n" "ON5JD\n" "ON5JT\n" "ON5KDX\n" "ON5KQ\n" "ON5LA\n" "ON5LGS\n" "ON5LO\n" "ON5MQ\n" "ON5NT\n" "ON5PO\n" "ON5QD\n" "ON5RA\n" "ON5RV\n" "ON5RZ\n" "ON5RZ/P\n" "ON5SD\n" "ON5SV\n" "ON5SY\n" "ON5TC\n" "ON5TO\n" "ON5TQ\n" "ON5UJ\n" "ON5UK\n" "ON5VL\n" "ON5WL\n" "ON5WQ\n" "ON5ZO\n" "ON65CLM\n" "ON6AB\n" "ON6BR\n" "ON6BU\n" "ON6DK\n" "ON6DP\n" "ON6EF\n" "ON6FC\n" "ON6FT\n" "ON6GV\n" "ON6HV\n" "ON6HZ\n" "ON6IP\n" "ON6LEO\n" "ON6LR\n" "ON6LS\n" "ON6LY\n" "ON6MG\n" "ON6MR\n" "ON6NL\n" "ON6NP\n" "ON6NW\n" "ON6OM\n" "ON6PF\n" "ON6PQ\n" "ON6PW\n" "ON6QG\n" "ON6QH\n" "ON6QO\n" "ON6QP\n" "ON6RJ\n" "ON6SA\n" "ON6SI\n" "ON6SM\n" "ON6SX\n" "ON6UC\n" "ON6UD\n" "ON6UF\n" "ON6UL\n" "ON6VL\n" "ON6WP\n" "ON6WR\n" "ON6XG\n" "ON6YH\n" "ON6YX\n" "ON6YYY\n" "ON6ZM\n" "ON6ZV\n" "ON769MS\n" "ON7AA\n" "ON7AAU\n" "ON7ARQ\n" "ON7BBR\n" "ON7BJ\n" "ON7BM\n" "ON7BT\n" "ON7CC\n" "ON7CD\n" "ON7CK\n" "ON7CL\n" "ON7CX\n" "ON7DDG\n" "ON7DR\n" "ON7DY\n" "ON7EE\n" "ON7EH\n" "ON7EQ\n" "ON7GB\n" "ON7GO\n" "ON7GR\n" "ON7HM\n" "ON7IDX\n" "ON7JA\n" "ON7JM\n" "ON7JV\n" "ON7KB\n" "ON7KC\n" "ON7KEC\n" "ON7NT\n" "ON7ON\n" "ON7PM\n" "ON7PP\n" "ON7PQ\n" "ON7PS\n" "ON7RU\n" "ON7SS\n" "ON7TG\n" "ON7TWA\n" "ON7UI\n" "ON7USB\n" "ON7UZ\n" "ON7VD\n" "ON7VMR\n" "ON7WB\n" "ON7WW\n" "ON7XD\n" "ON7YX\n" "ON7ZM\n" "ON8AJ\n" "ON8AM\n" "ON8AR\n" "ON8BB\n" "ON8BV\n" "ON8DM\n" "ON8EA\n" "ON8LDS\n" "ON8MT\n" "ON8NT\n" "ON8SL\n" "ON8VK\n" "ON8VM\n" "ON8VP\n" "ON8VT\n" "ON8WF\n" "ON8WW\n" "ON8XT\n" "ON8ZT\n" "ON9CCS\n" "ON9CSV\n" "OO0A\n" "OO2T\n" "OO4O\n" "OO4P\n" "OO4T\n" "OO5D\n" "OO5G\n" "OO5P\n" "OO5S\n" "OO5Z\n" "OO6C\n" "OO6U\n" "OO7K\n" "OO7W\n" "OO9O\n" "OP0HQ\n" "OP0P\n" "OP1A\n" "OP2A\n" "OP4A\n" "OP4B\n" "OP4D\n" "OP4F\n" "OP4K\n" "OP4L\n" "OP4T\n" "OP5N\n" "OP5T\n" "OP6A\n" "OP6T\n" "OP7A\n" "OP7B\n" "OQ3R\n" "OQ4A\n" "OQ4B\n" "OQ4T\n" "OQ4U\n" "OQ5A\n" "OQ5M\n" "OQ7Q\n" "OQ7T\n" "OR0A\n" "OR0OST\n" "OR1T\n" "OR1Z\n" "OR2A\n" "OR2F\n" "OR2M\n" "OR2R\n" "OR2T\n" "OR4A\n" "OR4R\n" "OR4U\n" "OR4W\n" "OR5EU\n" "OR5N\n" "OR6C\n" "OR7Z\n" "OS0S\n" "OS2A\n" "OS2T\n" "OS4U\n" "OS5N\n" "OS6C\n" "OS7A\n" "OS8A\n" "OT1A\n" "OT2A\n" "OT2B\n" "OT2C\n" "OT2X\n" "OT3A\n" "OT3T\n" "OT4A\n" "OT4P\n" "OT5A\n" "OT5P\n" "OT5T\n" "OT5W\n" "OT6E\n" "OT6T\n" "OT7E\n" "OT7G\n" "OT7N\n" "OT7T\n" "OT7X\n" "OU2P\n" "OU3A\n" "OU4O\n" "OU7X\n" "OV1A\n" "OV3X\n" "OV5A\n" "OX2A\n" "OX3XR\n" "OX5AA\n" "OX8XX\n" "OY1CT\n" "OY2J\n" "OY3AA\n" "OY3JE\n" "OY3QN\n" "OY4M\n" "OY6A\n" "OY9JD\n" "OY9R\n" "OZ0A\n" "OZ0MF\n" "OZ0MJ\n" "OZ0TE\n" "OZ0W\n" "OZ1AAR\n" "OZ1ACB\n" "OZ1ADL\n" "OZ1AGN\n" "OZ1AXG\n" "OZ1BCG\n" "OZ1BTE\n" "OZ1BXG\n" "OZ1BZJ\n" "OZ1CCM\n" "OZ1CJS\n" "OZ1CTK\n" "OZ1CWH\n" "OZ1DGQ\n" "OZ1DSD\n" "OZ1DYI/P\n" "OZ1DZ\n" "OZ1EDR\n" "OZ1FAO\n" "OZ1GCT\n" "OZ1GML\n" "OZ1HHH\n" "OZ1HQ\n" "OZ1HUE\n" "OZ1HYI\n" "OZ1IEZ\n" "OZ1IKW\n" "OZ1IKY\n" "OZ1ING\n" "OZ1JFK\n" "OZ1JTE\n" "OZ1JU\n" "OZ1JVX\n" "OZ1KEF\n" "OZ1KGV\n" "OZ1KJG\n" "OZ1KKH\n" "OZ1KSN\n" "OZ1KVM\n" "OZ1LCG\n" "OZ1LFI\n" "OZ1LNL\n" "OZ1LO\n" "OZ1LXJ\n" "OZ1NF\n" "OZ1XV\n" "OZ1ZE\n" "OZ2A\n" "OZ2ABI\n" "OZ2AKM\n" "OZ2AR\n" "OZ2BKK\n" "OZ2CVT\n" "OZ2DAN\n" "OZ2HT\n" "OZ2PBS\n" "OZ2RH\n" "OZ2SPACE\n" "OZ2TF\n" "OZ2U\n" "OZ3ABU\n" "OZ3ANT\n" "OZ3BJ\n" "OZ3EN\n" "OZ3SA\n" "OZ3SK\n" "OZ3SM\n" "OZ3SW\n" "OZ4ACK\n" "OZ4B\n" "OZ4CG\n" "OZ4EU\n" "OZ4FA\n" "OZ4FF\n" "OZ4M\n" "OZ4NA\n" "OZ4O\n" "OZ4RT\n" "OZ4UN\n" "OZ4VV\n" "OZ4VW\n" "OZ5AGJ\n" "OZ5BD\n" "OZ5D\n" "OZ5DSB\n" "OZ5DX\n" "OZ5E\n" "OZ5ESB\n" "OZ5EV\n" "OZ5GX\n" "OZ5HZ\n" "OZ5JC\n" "OZ5KU\n" "OZ5NJ\n" "OZ5RM\n" "OZ5TL\n" "OZ5UR\n" "OZ5W\n" "OZ5WQ\n" "OZ6ABL\n" "OZ6AGD\n" "OZ6AGX\n" "OZ6EI\n" "OZ6OM\n" "OZ6TL\n" "OZ7A\n" "OZ7AEI\n" "OZ7AKT\n" "OZ7AM\n" "OZ7BQ\n" "OZ7DK\n" "OZ7DN\n" "OZ7EA\n" "OZ7HAM\n" "OZ7HT\n" "OZ7IF\n" "OZ7KU\n" "OZ7NB\n" "OZ7OX\n" "OZ7RQ\n" "OZ7SMJ\n" "OZ7TTT\n" "OZ7UV\n" "OZ7X\n" "OZ7XE\n" "OZ7YL\n" "OZ7YY\n" "OZ8A\n" "OZ8ABE\n" "OZ8BZ\n" "OZ8CT\n" "OZ8EA\n" "OZ8PG\n" "OZ8PI\n" "OZ8SW\n" "OZ9KZ\n" "OZ9V\n" "P29CW\n" "P29NB\n" "P29TL\n" "P33W\n" "P39P\n" "P3F\n" "P3J\n" "P3M\n" "P3N\n" "P40A\n" "P40HQ\n" "P40K\n" "P40L\n" "P40LE\n" "P40N\n" "P40Q\n" "P40R\n" "P40TA\n" "P40V\n" "P40W\n" "P40Y\n" "P40YL\n" "P41M\n" "P41V\n" "P41YL\n" "P43A\n" "P43E\n" "P43JB\n" "P48AA\n" "P48ADI\n" "P49MR\n" "P49V\n" "P49X\n" "P49Y\n" "PA09CC\n" "PA0A\n" "PA0AA\n" "PA0ABM\n" "PA0ADP\n" "PA0AGA\n" "PA0AKN\n" "PA0ASD\n" "PA0ATG\n" "PA0ATY\n" "PA0AWH\n" "PA0B\n" "PA0BW\n" "PA0BWL\n" "PA0CAH\n" "PA0CGB\n" "PA0CKV\n" "PA0CMU\n" "PA0COR\n" "PA0CYW\n" "PA0DDB\n" "PA0DIN\n" "PA0DVD\n" "PA0DVM\n" "PA0ELS\n" "PA0EMO\n" "PA0END\n" "PA0FAW\n" "PA0FEI\n" "PA0FLE\n" "PA0GJV\n" "PA0GKO\n" "PA0GMM\n" "PA0GMS\n" "PA0GRU\n" "PA0HOR\n" "PA0HRM\n" "PA0HWB\n" "PA0IA\n" "PA0IJM\n" "PA0INA\n" "PA0JED\n" "PA0JHM\n" "PA0JNH\n" "PA0JSE\n" "PA0KT\n" "PA0LEG\n" "PA0LOU\n" "PA0LRK\n" "PA0LSK\n" "PA0M\n" "PA0MAW\n" "PA0MBD\n" "PA0MIR\n" "PA0MJM\n" "PA0O\n" "PA0PFW\n" "PA0PSA\n" "PA0PVW\n" "PA0QRB\n" "PA0QX\n" "PA0RBA\n" "PA0RBO\n" "PA0RDY\n" "PA0RHA\n" "PA0RRA\n" "PA0SAR\n" "PA0SDZ\n" "PA0SKP\n" "PA0SNG\n" "PA0SON\n" "PA0TCA\n" "PA0VAJ\n" "PA0VDV\n" "PA0VHA\n" "PA0VST\n" "PA0W\n" "PA0WDG\n" "PA0WKI\n" "PA0WLB\n" "PA0WMR\n" "PA0WRS\n" "PA0WTO\n" "PA0WYS\n" "PA100BEVER\n" "PA1A\n" "PA1AK\n" "PA1APW\n" "PA1AT\n" "PA1AW\n" "PA1B\n" "PA1BBO\n" "PA1BDO\n" "PA1BK\n" "PA1BOB\n" "PA1BR\n" "PA1BX\n" "PA1CC\n" "PA1CM\n" "PA1CPA\n" "PA1CW\n" "PA1DK\n" "PA1DV\n" "PA1FOC\n" "PA1FR\n" "PA1H\n" "PA1HCB\n" "PA1HEM\n" "PA1HR\n" "PA1JHP\n" "PA1K\n" "PA1M\n" "PA1MR\n" "PA1MV\n" "PA1MVL\n" "PA1NHZ\n" "PA1NL\n" "PA1PAT\n" "PA1PDM\n" "PA1PE\n" "PA1PT\n" "PA1PT/P\n" "PA1RF\n" "PA1RVL\n" "PA1T\n" "PA1TK\n" "PA1TO\n" "PA1TT\n" "PA1TX\n" "PA1UL\n" "PA1VC\n" "PA1W\n" "PA1WLB\n" "PA1X\n" "PA1XA\n" "PA2A\n" "PA2ALF\n" "PA2AM\n" "PA2AWU\n" "PA2C\n" "PA2CHM\n" "PA2CVD\n" "PA2DW\n" "PA2F\n" "PA2GJ\n" "PA2GP\n" "PA2IP\n" "PA2JWN\n" "PA2KHN\n" "PA2KW\n" "PA2LO\n" "PA2LS\n" "PA2MI\n" "PA2MRT\n" "PA2N\n" "PA2NJC\n" "PA2PCH\n" "PA2PDV\n" "PA2PKZ\n" "PA2PRU\n" "PA2R\n" "PA2REH\n" "PA2RU\n" "PA2RUS\n" "PA2SAM\n" "PA2SWL\n" "PA2TB\n" "PA2V\n" "PA2W\n" "PA2WO\n" "PA30IPA\n" "PA3A\n" "PA3AAV\n" "PA3ABH\n" "PA3ADJ\n" "PA3AFF\n" "PA3AGF\n" "PA3AIN\n" "PA3AJH\n" "PA3AJN\n" "PA3AJW\n" "PA3AKP\n" "PA3ALK\n" "PA3ALY\n" "PA3AM\n" "PA3ANN\n" "PA3AO\n" "PA3AQL\n" "PA3AQY\n" "PA3ARK\n" "PA3ARM\n" "PA3ATN\n" "PA3ATP\n" "PA3AWW\n" "PA3BFH\n" "PA3BFS\n" "PA3BGQ\n" "PA3BQC\n" "PA3BWD\n" "PA3BWK\n" "PA3BWS\n" "PA3C\n" "PA3CAL\n" "PA3CDN\n" "PA3CEV\n" "PA3CJF\n" "PA3CJP\n" "PA3CLQ\n" "PA3CMF\n" "PA3CNI\n" "PA3CSG\n" "PA3CTA\n" "PA3CUI\n" "PA3CVI\n" "PA3CVJ\n" "PA3CVR\n" "PA3DAT\n" "PA3DBH\n" "PA3DBS\n" "PA3DCX\n" "PA3DDP\n" "PA3DFG\n" "PA3DGH\n" "PA3DHR\n" "PA3DOB\n" "PA3DRL\n" "PA3DTR\n" "PA3DZF\n" "PA3EBP\n" "PA3ECJ\n" "PA3EEG\n" "PA3EKE\n" "PA3ELQ\n" "PA3EMN\n" "PA3EQO\n" "PA3ERY\n" "PA3ESO\n" "PA3EVY\n" "PA3EWG\n" "PA3EWP\n" "PA3EZC\n" "PA3FKN\n" "PA3FMC\n" "PA3FNB\n" "PA3FOE\n" "PA3FQA\n" "PA3FRD\n" "PA3FTX\n" "PA3FYG\n" "PA3FYI\n" "PA3GBI\n" "PA3GBQ\n" "PA3GCV\n" "PA3GDD\n" "PA3GDY\n" "PA3GEO\n" "PA3GGB\n" "PA3GGD\n" "PA3GGW\n" "PA3GJU\n" "PA3GMM\n" "PA3GPP\n" "PA3GPT\n" "PA3GQF\n" "PA3GQG\n" "PA3GVI\n" "PA3GWN\n" "PA3GXT\n" "PA3HAH\n" "PA3HCC\n" "PA3HCD\n" "PA3HCF\n" "PA3HFG\n" "PA3HFJ\n" "PA3HGF\n" "PA3HGP\n" "PA3HGY\n" "PA3HHE\n" "PA3HHT\n" "PA3HIJ\n" "PA3HK\n" "PA3HPY\n" "PA3HS\n" "PA3JD\n" "PA3JDV\n" "PA3KVE\n" "PA3MET\n" "PA3MM\n" "PA3MR\n" "PA3N\n" "PA3PCV\n" "PA3RB\n" "PA3RW\n" "PA3S\n" "PA3T\n" "PA3TON\n" "PA3TOP\n" "PA3WB\n" "PA3YH\n" "PA40MIR\n" "PA44N\n" "PA4AO\n" "PA4AR\n" "PA4B\n" "PA4CHE\n" "PA4DO\n" "PA4F\n" "PA4HF\n" "PA4JJ\n" "PA4LA\n" "PA4MRS\n" "PA4N\n" "PA4NIC\n" "PA4PS\n" "PA4SDV\n" "PA4T\n" "PA4VHF\n" "PA4WG\n" "PA50RNARS\n" "PA5A\n" "PA5CW\n" "PA5F\n" "PA5GU\n" "PA5HJ\n" "PA5J\n" "PA5JSB\n" "PA5KT\n" "PA5LV\n" "PA5MS\n" "PA5O\n" "PA5P\n" "PA5PR\n" "PA5RG\n" "PA5TT\n" "PA5V\n" "PA5VK\n" "PA5VL\n" "PA5W\n" "PA5WT\n" "PA5YL\n" "PA600MIR\n" "PA6HQ\n" "PA6OI\n" "PA6V\n" "PA6Z\n" "PA7A\n" "PA7BAS\n" "PA7CG\n" "PA7DW\n" "PA7F\n" "PA7FA\n" "PA7HPH\n" "PA7J\n" "PA7JM\n" "PA7JS\n" "PA7JWC\n" "PA7KG\n" "PA7LV\n" "PA7LZ\n" "PA7MM\n" "PA7N\n" "PA7OB\n" "PA7PA\n" "PA7PTT\n" "PA7PYR\n" "PA7RA\n" "PA7TWO\n" "PA7UL\n" "PA7WB\n" "PA7WW\n" "PA7YI\n" "PA7ZZ\n" "PA8F\n" "PA8KW\n" "PA8N\n" "PA8TWN\n" "PA9CC\n" "PA9CW\n" "PA9DD\n" "PA9HR\n" "PA9JO\n" "PA9LUC\n" "PA9M\n" "PA9MR\n" "PA9P\n" "PA9RD\n" "PA9RZ\n" "PB0ACU\n" "PB0AEX\n" "PB0AEZ\n" "PB0AMU\n" "PB0P\n" "PB1TT\n" "PB2JJ\n" "PB2T\n" "PB2X\n" "PB5T\n" "PB5WIM\n" "PB65BP\n" "PB6W\n" "PB7CW\n" "PB7XYL\n" "PC25DIG\n" "PC2A\n" "PC2C\n" "PC2F\n" "PC2J\n" "PC4T\n" "PC4U\n" "PC5M\n" "PC5W\n" "PC5WDB\n" "PC7R\n" "PC7T\n" "PC8E\n" "PD05CW\n" "PD0ADR\n" "PD0AG\n" "PD0ARI\n" "PD0BOR\n" "PD0DJB\n" "PD0DK\n" "PD0EJN\n" "PD0EMR\n" "PD0GAB\n" "PD0HD\n" "PD0HF\n" "PD0HM\n" "PD0HQF\n" "PD0JHM\n" "PD0JMH\n" "PD0JNG\n" "PD0LBH\n" "PD0LDC\n" "PD0LG\n" "PD0LGG\n" "PD0LUR\n" "PD0MBY\n" "PD0MD\n" "PD0MHZ\n" "PD0MLO\n" "PD0MM\n" "PD0MNF\n" "PD0OQV\n" "PD0OYF\n" "PD0PVL\n" "PD0RKA\n" "PD0RKC\n" "PD0ROC\n" "PD0RS\n" "PD0RXP\n" "PD0SCY\n" "PD0SV\n" "PD0TB\n" "PD0WR\n" "PD1ABO\n" "PD1AIH\n" "PD1AIV\n" "PD1ALW\n" "PD1ARM\n" "PD1D\n" "PD1DX\n" "PD1EHA\n" "PD1EN\n" "PD1EVL\n" "PD1KSA\n" "PD1MVL\n" "PD1RP\n" "PD1SA\n" "PD1TV\n" "PD1UAR\n" "PD2ATG\n" "PD2AVE\n" "PD2DX\n" "PD2EDR\n" "PD2GCM\n" "PD2GJS\n" "PD2GSP\n" "PD2HT\n" "PD2J\n" "PD2JAM\n" "PD2LLS\n" "PD2PKM\n" "PD2R\n" "PD2RKG\n" "PD2SO\n" "PD2YL\n" "PD3ALX\n" "PD3ATM\n" "PD3BVI\n" "PD3DX\n" "PD3EM\n" "PD3GO\n" "PD3GSN\n" "PD3GVA\n" "PD3HB\n" "PD3LHS\n" "PD3MDM\n" "PD4BAS\n" "PD4DX\n" "PD4HDB\n" "PD4JP\n" "PD4NYS\n" "PD4SAM\n" "PD4U\n" "PD4X\n" "PD5B\n" "PD5CW\n" "PD5DJ\n" "PD5GO\n" "PD5JFK\n" "PD5L\n" "PD5LKM\n" "PD5LO\n" "PD5MJF\n" "PD5RS\n" "PD5URK\n" "PD5X\n" "PD602YL\n" "PD6W\n" "PD7BZ\n" "PD7CJT\n" "PD7EAT\n" "PD7MER\n" "PD7RB\n" "PD7TWO\n" "PD9BM\n" "PD9DX\n" "PD9FDG\n" "PD9FER\n" "PD9FJ\n" "PD9GD\n" "PD9HVS\n" "PD9NR\n" "PD9W\n" "PD9Y\n" "PE0MVJ\n" "PE0NYJ\n" "PE0VT\n" "PE1AUV\n" "PE1B\n" "PE1CIM\n" "PE1CPJ\n" "PE1CVJ\n" "PE1CZG\n" "PE1DAB\n" "PE1DH\n" "PE1DTU\n" "PE1ER\n" "PE1EWR\n" "PE1FNW\n" "PE1FTV\n" "PE1FZK\n" "PE1GRJ\n" "PE1GWX\n" "PE1HB\n" "PE1HWO\n" "PE1IWT\n" "PE1JMN\n" "PE1JRP\n" "PE1KL\n" "PE1LGZ\n" "PE1LTY\n" "PE1LUB\n" "PE1MMZ\n" "PE1MPA\n" "PE1NAO\n" "PE1NBD\n" "PE1NCP\n" "PE1NGR\n" "PE1ODY\n" "PE1OLM\n" "PE1OPK\n" "PE1OUL\n" "PE1OXP\n" "PE1OXS\n" "PE1OYB\n" "PE1PGA\n" "PE1RDP\n" "PE1RF\n" "PE1RIK\n" "PE1RLF\n" "PE1RUS\n" "PE25KP\n" "PE2AE\n" "PE2CML\n" "PE2EMS\n" "PE2HD\n" "PE2HHN\n" "PE2JMR\n" "PE2KM\n" "PE2KP\n" "PE2KY\n" "PE2LZ\n" "PE2MC\n" "PE2MEV\n" "PE2RPS\n" "PE2T\n" "PE2TET\n" "PE3HG\n" "PE4AD\n" "PE4BAS\n" "PE5ENJ\n" "PE5T\n" "PE5TS\n" "PE7T\n" "PE7TG\n" "PE8ROB\n" "PE9GG\n" "PF0R\n" "PF0X\n" "PF1MO\n" "PF4T\n" "PF5X\n" "PF6WW\n" "PF7DKW\n" "PF7M\n" "PF7X\n" "PF9A\n" "PG1A\n" "PG1R\n" "PG2AA\n" "PG2D\n" "PG3N\n" "PG4DX\n" "PG4I\n" "PG5M\n" "PG6EL\n" "PG7A\n" "PG7V\n" "PH0AS\n" "PH0AW\n" "PH0JFL\n" "PH0Q\n" "PH100EL/P\n" "PH2A\n" "PH2M\n" "PH5C\n" "PH60PH\n" "PH7A\n" "PH7FE\n" "PH8GB\n" "PH9HB\n" "PI4AAG\n" "PI4AMF\n" "PI4AML\n" "PI4BRD\n" "PI4CC\n" "PI4CG\n" "PI4COM\n" "PI4D\n" "PI4DIG\n" "PI4DX\n" "PI4EDE\n" "PI4FRG\n" "PI4HQ\n" "PI4KGL\n" "PI4LWD\n" "PI4MRC\n" "PI4N\n" "PI4RCA\n" "PI4RCK\n" "PI4TIL\n" "PI4TUE\n" "PI4VHW\n" "PI4VPO\n" "PI4W\n" "PI4WLD\n" "PI4WNO\n" "PI4Z\n" "PI4ZI\n" "PI4ZOD\n" "PI65AAG\n" "PI65BRD\n" "PI9TP\n" "PJ2DX\n" "PJ2E\n" "PJ2HQ\n" "PJ2P\n" "PJ2T\n" "PJ4A\n" "PJ4E\n" "PJ4G\n" "PJ4K\n" "PJ4L\n" "PJ4LS\n" "PJ4NX\n" "PJ4R\n" "PJ4T\n" "PJ4X\n" "PJ5NA\n" "PJ7B\n" "PJ7MF\n" "PJ7UQ\n" "PP1CZ\n" "PP2RON\n" "PP5/OE9APV\n" "PP5AR\n" "PP5BI\n" "PP5BK\n" "PP5BZ\n" "PP5EG\n" "PP5IZ\n" "PP5JAK\n" "PP5JN\n" "PP5JY\n" "PP5KR\n" "PP5MQ\n" "PP5MS\n" "PP5TR\n" "PP5VK\n" "PP5VX\n" "PP5WG\n" "PP5XX\n" "PP7LL\n" "PP8ZAC\n" "PQ0F\n" "PQ4F\n" "PQ5B\n" "PR1T\n" "PR2B\n" "PR5D\n" "PR5W\n" "PR5Z\n" "PR7AA\n" "PR7AB\n" "PR7AF\n" "PR7AP\n" "PR7AR\n" "PR7AYE\n" "PR7CPK\n" "PR7DZ\n" "PR7GY\n" "PR7HR\n" "PR8ZX\n" "PS0F\n" "PS2T\n" "PS6T\n" "PS7DX\n" "PS7YL\n" "PS8CC\n" "PS8DX\n" "PS8ET\n" "PS8SP\n" "PT1A\n" "PT1Z\n" "PT2BW\n" "PT2CM\n" "PT2ZHA\n" "PT2ZXR\n" "PT3T\n" "PT4C\n" "PT5A\n" "PT5T\n" "PT5UN\n" "PT7AG\n" "PT7AZ\n" "PT7CG\n" "PT7DX\n" "PT7ZT\n" "PT8CWA\n" "PT8DX\n" "PT9PA\n" "PU1KGG\n" "PU1KYC\n" "PU2KLM\n" "PU2LEP\n" "PU2LGR\n" "PU2MJU\n" "PU2MTS\n" "PU2RKP\n" "PU2SDX\n" "PU2UEO\n" "PU2UTC\n" "PU2WDX\n" "PU3CAL\n" "PU3KNG\n" "PU3LYB\n" "PU3SVA\n" "PU4HUD\n" "PU5AAD\n" "PU5ATX\n" "PU5BIA\n" "PU5FJR\n" "PU5OGE\n" "PU5UAI\n" "PU8TEP\n" "PU9OSB\n" "PV2P\n" "PV8AA\n" "PV8ADI\n" "PV8DR\n" "PV8DX\n" "PV8RF\n" "PW1W\n" "PW2B\n" "PW2D\n" "PW2P\n" "PW5G\n" "PW7A\n" "PW7T\n" "PX2C\n" "PX2T\n" "PX5B\n" "PX5E\n" "PY0FF\n" "PY1CL\n" "PY1CMT\n" "PY1DHG\n" "PY1DX\n" "PY1HY\n" "PY1KN\n" "PY1ME\n" "PY1NB\n" "PY1NX\n" "PY1OW\n" "PY1RY\n" "PY1SX\n" "PY1WS\n" "PY1ZV\n" "PY2AAZ\n" "PY2AC\n" "PY2ADR\n" "PY2ARL\n" "PY2ASS\n" "PY2BK\n" "PY2BN\n" "PY2BRA\n" "PY2BRZ\n" "PY2BT\n" "PY2BW\n" "PY2DEZ\n" "PY2DJ\n" "PY2DU\n" "PY2DXX\n" "PY2DY\n" "PY2EB\n" "PY2EJ\n" "PY2EL\n" "PY2ELG\n" "PY2ESP\n" "PY2EU\n" "PY2EX\n" "PY2EYE\n" "PY2GA\n" "PY2GH\n" "PY2GMR\n" "PY2HAM\n" "PY2HL\n" "PY2HT\n" "PY2IAX\n" "PY2IQ\n" "PY2IU\n" "PY2KGB\n" "PY2KJ\n" "PY2KP\n" "PY2LEI\n" "PY2LSM\n" "PY2MNL\n" "PY2MPG\n" "PY2MR\n" "PY2MTS\n" "PY2MTV\n" "PY2NA\n" "PY2NB\n" "PY2NDX\n" "PY2NFE\n" "PY2NY\n" "PY2OE\n" "PY2OX\n" "PY2PT\n" "PY2QA\n" "PY2RDZ\n" "PY2RH\n" "PY2SBY\n" "PY2SEI\n" "PY2SEX\n" "PY2SF\n" "PY2SHF\n" "PY2SRB\n" "PY2TEL\n" "PY2TI\n" "PY2TIM\n" "PY2TO\n" "PY2UDX\n" "PY2UN\n" "PY2VA\n" "PY2VFU\n" "PY2VM\n" "PY2VZ\n" "PY2WAS\n" "PY2WB\n" "PY2WC\n" "PY2WL\n" "PY2XAT\n" "PY2XB\n" "PY2XC\n" "PY2XTA\n" "PY2YP\n" "PY2YU\n" "PY2ZA\n" "PY2ZK\n" "PY2ZR\n" "PY2ZXU\n" "PY2ZY\n" "PY3APY\n" "PY3ATR\n" "PY3AU\n" "PY3CAL\n" "PY3DX\n" "PY3EAM\n" "PY3FBI\n" "PY3FF\n" "PY3FOX\n" "PY3IP\n" "PY3KIM\n" "PY3KN\n" "PY3MHZ\n" "PY3NZ\n" "PY3OG\n" "PY3OL\n" "PY3OPP\n" "PY3PA\n" "PY3SB\n" "PY3TIO\n" "PY3UA\n" "PY3UEB\n" "PY3VB\n" "PY3VK\n" "PY3YD\n" "PY4BW\n" "PY4DEL\n" "PY4FQ\n" "PY4LH\n" "PY4OG\n" "PY4OY\n" "PY4UM\n" "PY4XX\n" "PY4ZF\n" "PY4ZO\n" "PY5AKW\n" "PY5AP\n" "PY5BH\n" "PY5BLG\n" "PY5CA\n" "PY5DC\n" "PY5EW\n" "PY5FB\n" "PY5FO\n" "PY5GA\n" "PY5IP\n" "PY5JO\n" "PY5KA\n" "PY5KD\n" "PY5KW\n" "PY5LF\n" "PY5MJ\n" "PY5QW\n" "PY5RB\n" "PY5TJ\n" "PY5XH\n" "PY5ZD\n" "PY5ZHP\n" "PY6HD\n" "PY6KW\n" "PY6KY\n" "PY6PRS\n" "PY7AHA\n" "PY7GK\n" "PY7OJ\n" "PY7RP\n" "PY7VI\n" "PY7XC\n" "PY7ZBK\n" "PY7ZY\n" "PY7ZZ\n" "PY8MGB\n" "PZ1AP\n" "PZ5M\n" "PZ5RA\n" "PZ5TT\n" "PZ5X\n" "PZ5Z\n" "R0HQ\n" "R100MAR\n" "R1ANB\n" "R1ANC\n" "R1ANP\n" "R1ANR\n" "R1ANY\n" "R2DW\n" "R3/AL1G\n" "R3/K5WA\n" "R3/K9GY\n" "R3/SM6LRR\n" "R3/UY0YU\n" "R3AA\n" "R3AR\n" "R3AT\n" "R3FF\n" "R3HQ\n" "R3K\n" "R3KM\n" "R3QX\n" "R3ZV\n" "R4/UN6P\n" "R4/UT5UDX\n" "R4WAA\n" "R5ACQ\n" "R6LA\n" "R7FF\n" "R7HF\n" "R7LV\n" "R85NN\n" "R8TX\n" "R9FM\n" "R9FT\n" "R9SA\n" "R9WW\n" "RA0AA\n" "RA0ACM\n" "RA0AM\n" "RA0ANO\n" "RA0AR\n" "RA0AY\n" "RA0BA\n" "RA0CAH\n" "RA0CL\n" "RA0CY\n" "RA0FLP\n" "RA0FU\n" "RA0FZ\n" "RA0JBL\n" "RA0JY\n" "RA0LE\n" "RA0LG\n" "RA0LL\n" "RA0LV\n" "RA0QC\n" "RA0QD\n" "RA0QQ\n" "RA0SF\n" "RA0SMS\n" "RA0SS\n" "RA0SU\n" "RA0UF\n" "RA0WHE\n" "RA0WU\n" "RA0ZN\n" "RA1AEI\n" "RA1AFR\n" "RA1AG\n" "RA1AGG\n" "RA1AGL\n" "RA1AGU\n" "RA1AIE\n" "RA1AIP\n" "RA1AKR\n" "RA1AL\n" "RA1ALZ\n" "RA1AOB\n" "RA1AOP\n" "RA1AR\n" "RA1AUW\n" "RA1AW\n" "RA1CF\n" "RA1CP\n" "RA1CW\n" "RA1OD\n" "RA1OGP\n" "RA1OHX\n" "RA1OJ\n" "RA1OW\n" "RA1OZ/1\n" "RA1QA\n" "RA1QAX\n" "RA1QCZ\n" "RA1QD\n" "RA1QDP\n" "RA1QFY\n" "RA1QG\n" "RA1QGK\n" "RA1QGO\n" "RA1QGW\n" "RA1QIH\n" "RA1QIT\n" "RA1QJA\n" "RA1QN\n" "RA1QQ\n" "RA1QR\n" "RA1QX\n" "RA1QY\n" "RA1TU\n" "RA1TV\n" "RA1WJ\n" "RA1WZ\n" "RA1ZZ/3\n" "RA2FAC\n" "RA2FB\n" "RA2FCE\n" "RA2FDX\n" "RA2FF\n" "RA2FG\n" "RA2FIA\n" "RA2FN\n" "RA2FU\n" "RA2FV\n" "RA2FX\n" "RA3AA\n" "RA3AD\n" "RA3AGF\n" "RA3AGN\n" "RA3AH\n" "RA3AJ\n" "RA3AN\n" "RA3ANI\n" "RA3APN\n" "RA3ATE\n" "RA3ATX\n" "RA3AUM\n" "RA3AV\n" "RA3AWO\n" "RA3AWW\n" "RA3AX\n" "RA3BB\n" "RA3BQ\n" "RA3BQ/3\n" "RA3BT\n" "RA3BZ\n" "RA3CM\n" "RA3CO\n" "RA3CQ\n" "RA3DA\n" "RA3DBK\n" "RA3DCT\n" "RA3DEQ\n" "RA3DGH\n" "RA3DH\n" "RA3DNC\n" "RA3DRC\n" "RA3DRI\n" "RA3DTH\n" "RA3DTN\n" "RA3DW\n" "RA3DX\n" "RA3DXU\n" "RA3EA\n" "RA3EC\n" "RA3ED\n" "RA3EF\n" "RA3EG\n" "RA3EM\n" "RA3EW\n" "RA3FC\n" "RA3FD\n" "RA3FF\n" "RA3FH\n" "RA3FO\n" "RA3GAS\n" "RA3GFG\n" "RA3GJ\n" "RA3GN\n" "RA3GP\n" "RA3ICK\n" "RA3ID\n" "RA3IS\n" "RA3LAL\n" "RA3LB\n" "RA3LBG\n" "RA3LDP\n" "RA3LG\n" "RA3LJ\n" "RA3LO\n" "RA3LZ\n" "RA3MAV\n" "RA3MB\n" "RA3MD\n" "RA3MQ\n" "RA3MR\n" "RA3MU\n" "RA3NAN\n" "RA3NC\n" "RA3NF\n" "RA3NK\n" "RA3NN\n" "RA3NU\n" "RA3NZ\n" "RA3OE\n" "RA3OO\n" "RA3OW\n" "RA3PQ\n" "RA3PS\n" "RA3PW\n" "RA3QG\n" "RA3QH\n" "RA3QJ\n" "RA3QN\n" "RA3QPT\n" "RA3QPY\n" "RA3QSY\n" "RA3RBL\n" "RA3RCL\n" "RA3RDW\n" "RA3RGD\n" "RA3RGQ\n" "RA3RIU\n" "RA3RK\n" "RA3RLP\n" "RA3RN\n" "RA3RNN\n" "RA3RPS\n" "RA3RUF\n" "RA3RVZ\n" "RA3SI\n" "RA3SL\n" "RA3SS\n" "RA3ST\n" "RA3SX\n" "RA3TA\n" "RA3TAC\n" "RA3THN\n" "RA3TJX\n" "RA3TT\n" "RA3TUE\n" "RA3TUT\n" "RA3TV\n" "RA3TVL\n" "RA3TYL\n" "RA3UAG\n" "RA3UF\n" "RA3UT\n" "RA3VE\n" "RA3VE/3\n" "RA3VFM\n" "RA3VGS\n" "RA3VHO\n" "RA3VKU\n" "RA3VLD\n" "RA3VMJ\n" "RA3VR\n" "RA3WCG\n" "RA3WEU\n" "RA3WJ\n" "RA3WP\n" "RA3WUG\n" "RA3XA\n" "RA3XAR\n" "RA3XCW\n" "RA3XCZ\n" "RA3XDX\n" "RA3XE\n" "RA3XEV\n" "RA3XI\n" "RA3XM\n" "RA3XO\n" "RA3XP\n" "RA3YAO\n" "RA3YBU\n" "RA3YC\n" "RA3YZ\n" "RA3ZA\n" "RA3ZC\n" "RA3ZH\n" "RA3ZOM\n" "RA3ZZ\n" "RA4AAJ\n" "RA4AAO\n" "RA4ACX\n" "RA4AFZ\n" "RA4AR\n" "RA4CA\n" "RA4CBN\n" "RA4CC\n" "RA4CKC\n" "RA4CP\n" "RA4CQ\n" "RA4CSP\n" "RA4CVT\n" "RA4CW\n" "RA4FAU\n" "RA4FDY\n" "RA4FJV\n" "RA4FP\n" "RA4FUN\n" "RA4FUT\n" "RA4FW\n" "RA4FWA\n" "RA4FY\n" "RA4HBS\n" "RA4HFE\n" "RA4HGN\n" "RA4HL\n" "RA4HMT\n" "RA4HO\n" "RA4HPA\n" "RA4HT\n" "RA4HX\n" "RA4LBS\n" "RA4LF\n" "RA4LK\n" "RA4LW\n" "RA4LZ\n" "RA4NCC\n" "RA4NF\n" "RA4NX\n" "RA4PD\n" "RA4PI\n" "RA4PKI\n" "RA4PNO\n" "RA4PO\n" "RA4POX\n" "RA4PR\n" "RA4PUT\n" "RA4RT\n" "RA4SE\n" "RA4ST\n" "RA4UAT\n" "RA4UF\n" "RA4UVK\n" "RA4WA\n" "RA4WC\n" "RA4YEW\n" "RA6AAW\n" "RA6ABC\n" "RA6AF\n" "RA6AMO\n" "RA6AQV\n" "RA6AR\n" "RA6ARI\n" "RA6AX\n" "RA6AZ\n" "RA6CU\n" "RA6CZ\n" "RA6DB\n" "RA6DE\n" "RA6DT\n" "RA6EE\n" "RA6FG\n" "RA6FHY\n" "RA6FP\n" "RA6FP/6\n" "RA6FPV\n" "RA6FQL\n" "RA6FRL\n" "RA6FSZ\n" "RA6FUZ\n" "RA6FV\n" "RA6FZ\n" "RA6GW\n" "RA6HCN\n" "RA6HDI\n" "RA6HJA\n" "RA6HJR\n" "RA6HPL\n" "RA6HSM\n" "RA6LBS\n" "RA6LOO\n" "RA6LW\n" "RA6MA\n" "RA6MQ\n" "RA6MS\n" "RA6MT\n" "RA6UAR\n" "RA6UH\n" "RA6XB\n" "RA6XE\n" "RA6XMF\n" "RA6XPG\n" "RA6XQQ\n" "RA6XR\n" "RA6XV\n" "RA6YBW\n" "RA6YDX\n" "RA6YJ\n" "RA7A\n" "RA9A\n" "RA9AAA\n" "RA9AB\n" "RA9AC\n" "RA9ACS\n" "RA9AE\n" "RA9AFZ\n" "RA9AKI\n" "RA9AMO\n" "RA9AN\n" "RA9AP\n" "RA9AU\n" "RA9AY\n" "RA9CB\n" "RA9CCO\n" "RA9CDW\n" "RA9CEX\n" "RA9CIN\n" "RA9CKM\n" "RA9CKQ\n" "RA9CMO\n" "RA9CNF\n" "RA9DR\n" "RA9DZ\n" "RA9FAA\n" "RA9FEL\n" "RA9FEU\n" "RA9FHL\n" "RA9FLW\n" "RA9FN\n" "RA9FR\n" "RA9FW\n" "RA9HL\n" "RA9HM\n" "RA9HO\n" "RA9JB\n" "RA9JBA\n" "RA9JG\n" "RA9JM\n" "RA9JP\n" "RA9JR\n" "RA9KM\n" "RA9KY\n" "RA9LE\n" "RA9LT\n" "RA9LZ\n" "RA9MC\n" "RA9MGX\n" "RA9MJ\n" "RA9MLR\n" "RA9MLX\n" "RA9MU\n" "RA9MX\n" "RA9OBG\n" "RA9QBQ\n" "RA9RR\n" "RA9SAS\n" "RA9SB\n" "RA9SC\n" "RA9SF\n" "RA9SG\n" "RA9SK\n" "RA9SKL\n" "RA9SN\n" "RA9SPF\n" "RA9ST\n" "RA9SUF\n" "RA9UAD\n" "RA9UAG\n" "RA9UGU\n" "RA9UIV/9\n" "RA9ULK\n" "RA9UN\n" "RA9USU/3\n" "RA9UT\n" "RA9WD\n" "RA9WU\n" "RA9WV\n" "RA9WW\n" "RA9XE\n" "RA9XF\n" "RA9XSL\n" "RA9XU\n" "RA9XV\n" "RA9YAI\n" "RA9YN\n" "RC3W\n" "RC4AA\n" "RC4Q\n" "RC7F\n" "RC8I\n" "RC9F\n" "RC9JWR\n" "RC9O\n" "RD0C\n" "RD1AL\n" "RD1AN\n" "RD1AW\n" "RD3A\n" "RD3AAD\n" "RD3AB\n" "RD3ABN\n" "RD3AD\n" "RD3AF\n" "RD3AJB\n" "RD3AL\n" "RD3AN\n" "RD3AP\n" "RD3ATT\n" "RD3AW\n" "RD3AY\n" "RD3BE\n" "RD3BV\n" "RD3BW\n" "RD3BY\n" "RD3BZ\n" "RD3DD\n" "RD3DG\n" "RD3DS\n" "RD3DT\n" "RD3DY\n" "RD3FF\n" "RD3FI\n" "RD3FT\n" "RD3FX\n" "RD3FY\n" "RD3MA\n" "RD3MM\n" "RD3MR\n" "RD3PM\n" "RD3PO\n" "RD3PX\n" "RD3QX\n" "RD3WA\n" "RD3WAR\n" "RD3WF\n" "RD3ZC\n" "RD3ZF\n" "RD3ZW\n" "RD4HD\n" "RD4HF\n" "RD4WA\n" "RD4WM\n" "RD6LP\n" "RD6MA\n" "RD6MF\n" "RD9CX\n" "RF3C\n" "RF3P\n" "RF3T\n" "RF4M\n" "RF4N\n" "RF4S\n" "RF9M\n" "RF9W\n" "RG3K\n" "RG6G\n" "RG9A\n" "RJ3AA\n" "RJ3AM\n" "RK0AB\n" "RK0BWW/0\n" "RK0LWW\n" "RK0QWT\n" "RK0QZ\n" "RK0SA\n" "RK0SK\n" "RK0SP\n" "RK0SXF\n" "RK0SXR\n" "RK0UN\n" "RK0UT\n" "RK1AA\n" "RK1AD\n" "RK1AM\n" "RK1AO\n" "RK1AR\n" "RK1AX\n" "RK1NA\n" "RK1NWA\n" "RK1OWA\n" "RK1OWZ\n" "RK1OZM\n" "RK1PWA/3\n" "RK1QWX\n" "RK2FWA\n" "RK2FWN\n" "RK2FXG\n" "RK3ANL\n" "RK3AO\n" "RK3AQW\n" "RK3AWA\n" "RK3AWE\n" "RK3AWK\n" "RK3AWL\n" "RK3AX\n" "RK3BA\n" "RK3BX\n" "RK3DH\n" "RK3DK\n" "RK3DOJ\n" "RK3DS\n" "RK3DSW\n" "RK3DT\n" "RK3DU\n" "RK3DWH\n" "RK3DWR\n" "RK3DXS\n" "RK3DXW\n" "RK3DXZ\n" "RK3DZB\n" "RK3DZD/P\n" "RK3DZF\n" "RK3DZH\n" "RK3ER\n" "RK3EWW\n" "RK3EXA\n" "RK3FJ\n" "RK3FM\n" "RK3FQ\n" "RK3FWA\n" "RK3FWE\n" "RK3FWI\n" "RK3FY\n" "RK3GWW\n" "RK3GYM\n" "RK3IM\n" "RK3IWB\n" "RK3K\n" "RK3MWC\n" "RK3MWD\n" "RK3MWI\n" "RK3MWL\n" "RK3MXT\n" "RK3MXT/P\n" "RK3PA\n" "RK3PWJ\n" "RK3QS\n" "RK3QWA\n" "RK3QWM\n" "RK3QWW\n" "RK3QY\n" "RK3QZ\n" "RK3RB\n" "RK3RWA\n" "RK3RX\n" "RK3RZM\n" "RK3SWB\n" "RK3SWS\n" "RK3TD\n" "RK3TS\n" "RK3VWA\n" "RK3VWB\n" "RK3XWO\n" "RK3YWW\n" "RK3YYQ\n" "RK3YZA\n" "RK3ZB\n" "RK3ZF\n" "RK3ZZ\n" "RK4CWQ\n" "RK4CYW\n" "RK4FAD\n" "RK4FB\n" "RK4FF\n" "RK4FM\n" "RK4FWX\n" "RK4HWW\n" "RK4HYT\n" "RK4LWA\n" "RK4NA\n" "RK4NAB\n" "RK4PA\n" "RK4PB\n" "RK4PK\n" "RK4SA\n" "RK4UWA\n" "RK4UWR\n" "RK4WWA\n" "RK4WWF\n" "RK4WWQ\n" "RK4YJ\n" "RK6AM\n" "RK6AQM\n" "RK6ASY\n" "RK6AWY\n" "RK6AX\n" "RK6AXS\n" "RK6BBZ\n" "RK6CC\n" "RK6CK\n" "RK6CM\n" "RK6DL\n" "RK6FS\n" "RK6FZ\n" "RK6HG\n" "RK6HWR\n" "RK6HWW\n" "RK6LC\n" "RK6LP\n" "RK6LWA\n" "RK6LZF\n" "RK6MY\n" "RK6XWA\n" "RK6YD\n" "RK6YY\n" "RK6YZZ\n" "RK8I\n" "RK9AA\n" "RK9ABJ\n" "RK9AD\n" "RK9AJZ\n" "RK9AK\n" "RK9AN\n" "RK9AWC\n" "RK9AWN\n" "RK9AWT\n" "RK9AX\n" "RK9AY\n" "RK9CWA\n" "RK9CWW\n" "RK9CYA\n" "RK9CZO\n" "RK9DC\n" "RK9DM\n" "RK9DO\n" "RK9DR\n" "RK9FBE\n" "RK9FWW\n" "RK9FYS\n" "RK9JWR\n" "RK9JWV\n" "RK9JWW\n" "RK9JXP\n" "RK9KWI\n" "RK9KWK\n" "RK9MWL\n" "RK9QWM\n" "RK9QWZ\n" "RK9SWM\n" "RK9SWY\n" "RK9UAC\n" "RK9UAH\n" "RK9UC\n" "RK9UE\n" "RK9UN\n" "RK9WZZ\n" "RK9XA\n" "RK9XM\n" "RK9XWA\n" "RK9XWO\n" "RK9XX\n" "RK9XXX\n" "RK9XZB\n" "RK9YWE\n" "RK9YWK\n" "RL3A\n" "RL3AA\n" "RL3AB\n" "RL3AF\n" "RL3AJ\n" "RL3AW\n" "RL3BB\n" "RL3BK\n" "RL3BK/3\n" "RL3BM\n" "RL3BN\n" "RL3BZ\n" "RL3DD\n" "RL3DE\n" "RL3DF\n" "RL3DJ\n" "RL3DR\n" "RL3DX\n" "RL3DZ\n" "RL3F\n" "RL3FA\n" "RL3FM\n" "RL3FO\n" "RL3FT\n" "RL3FZ\n" "RL3KO\n" "RL3QWA\n" "RL3WL\n" "RL3WX\n" "RL3ZI\n" "RL4R\n" "RL6YXX\n" "RL9AA\n" "RM3F\n" "RM3M\n" "RM3Q\n" "RM3Z\n" "RM4HZ\n" "RM5A\n" "RM5D\n" "RM7M\n" "RM8W\n" "RM9RZ\n" "RN0CF\n" "RN0CT\n" "RN0CW\n" "RN0JJ\n" "RN0JX\n" "RN0SA\n" "RN0SRR\n" "RN0SS\n" "RN1AI\n" "RN1AJ\n" "RN1AN\n" "RN1AO\n" "RN1AQ\n" "RN1CC\n" "RN1CW\n" "RN1CX\n" "RN1NA\n" "RN1NEB\n" "RN1NEO\n" "RN1NU\n" "RN1NW\n" "RN1NY\n" "RN1ON\n" "RN1TA\n" "RN1TN\n" "RN2FA\n" "RN2FQ\n" "RN3AAB\n" "RN3AAB/3\n" "RN3AC\n" "RN3ADV\n" "RN3AHL\n" "RN3AKK\n" "RN3AM\n" "RN3AMF\n" "RN3ANT\n" "RN3ARA\n" "RN3AU\n" "RN3AU/3\n" "RN3AW\n" "RN3AZ\n" "RN3BO\n" "RN3BU\n" "RN3BW\n" "RN3CT\n" "RN3DAO\n" "RN3DAZ\n" "RN3DBA\n" "RN3DDR\n" "RN3DFN\n" "RN3DFS\n" "RN3DKE\n" "RN3DWW\n" "RN3DY\n" "RN3FA\n" "RN3FR\n" "RN3FS\n" "RN3FY\n" "RN3GA\n" "RN3GE\n" "RN3GL\n" "RN3GM\n" "RN3KK\n" "RN3KL\n" "RN3LA\n" "RN3OA\n" "RN3OK\n" "RN3QIS\n" "RN3QKC\n" "RN3QLM\n" "RN3QN\n" "RN3QO\n" "RN3QP\n" "RN3QQ\n" "RN3QVG\n" "RN3QY\n" "RN3RA\n" "RN3REA\n" "RN3REY\n" "RN3RF\n" "RN3RFX\n" "RN3RQ\n" "RN3RX\n" "RN3T\n" "RN3TT\n" "RN3ZC\n" "RN3ZHV\n" "RN3ZIC\n" "RN3ZIN\n" "RN3ZJJ\n" "RN3ZKD\n" "RN3ZOB\n" "RN3ZQ\n" "RN3ZR\n" "RN3ZRJ\n" "RN3ZX\n" "RN4AAD\n" "RN4ACX\n" "RN4AK\n" "RN4AO\n" "RN4AT\n" "RN4AX\n" "RN4CA\n" "RN4CC\n" "RN4CU\n" "RN4CU/0\n" "RN4HA\n" "RN4HAB\n" "RN4HFJ\n" "RN4HGP\n" "RN4HIF\n" "RN4HJQ\n" "RN4HW\n" "RN4LL\n" "RN4LP\n" "RN4LR\n" "RN4NF\n" "RN4SC\n" "RN4SM\n" "RN4SN\n" "RN4SS\n" "RN4WA\n" "RN4ZT\n" "RN6A\n" "RN6AH\n" "RN6AI\n" "RN6AJ\n" "RN6AT\n" "RN6BM\n" "RN6BY\n" "RN6CD\n" "RN6DJ\n" "RN6DR\n" "RN6DV\n" "RN6FA\n" "RN6FJ\n" "RN6FK\n" "RN6FM\n" "RN6FZ\n" "RN6HDX\n" "RN6HZ\n" "RN6MA\n" "RN7A\n" "RN7F\n" "RN9AA\n" "RN9AA/9\n" "RN9AUF\n" "RN9AWU\n" "RN9CM\n" "RN9CWJ\n" "RN9HM\n" "RN9HT\n" "RN9MA\n" "RN9MZ\n" "RN9RF\n" "RN9RM\n" "RN9S\n" "RN9SXX\n" "RN9XA\n" "RO3DX\n" "RO3T\n" "RO4W\n" "RO7M\n" "RO8WA\n" "RO9O\n" "RP2F\n" "RP3AF\n" "RP3G\n" "RP3QUP\n" "RP4M\n" "RP65DXS\n" "RP65Z\n" "RP6A\n" "RP9RP\n" "RQ9I\n" "RS3A\n" "RT0C\n" "RT3A\n" "RT3F\n" "RT3M\n" "RT3T\n" "RT4D\n" "RT4F\n" "RT4M\n" "RT4RO\n" "RT4W\n" "RT6A\n" "RT7D\n" "RT8O\n" "RT9S\n" "RT9W\n" "RU0AB\n" "RU0AE\n" "RU0AI\n" "RU0AKB\n" "RU0ANW\n" "RU0AT\n" "RU0AW\n" "RU0LI\n" "RU0LL\n" "RU0LQ\n" "RU0SN\n" "RU0ST\n" "RU0SU\n" "RU0UA\n" "RU0UQ\n" "RU1A\n" "RU1AA\n" "RU1AB\n" "RU1AO\n" "RU1AT\n" "RU1QD\n" "RU1QQ\n" "RU1QY\n" "RU2FAA\n" "RU2FL\n" "RU2FM\n" "RU3AA\n" "RU3AL\n" "RU3AT\n" "RU3BU\n" "RU3DBR\n" "RU3DD\n" "RU3DG\n" "RU3DM\n" "RU3DU\n" "RU3DVR\n" "RU3DX\n" "RU3EJ\n" "RU3EQ\n" "RU3FF\n" "RU3FF/6\n" "RU3FN\n" "RU3FT\n" "RU3GA\n" "RU3GS\n" "RU3HD\n" "RU3KC\n" "RU3LA\n" "RU3MJ\n" "RU3MW\n" "RU3ON\n" "RU3OO\n" "RU3OP\n" "RU3OW\n" "RU3PU\n" "RU3PY\n" "RU3QR\n" "RU3QW\n" "RU3RM\n" "RU3RR\n" "RU3SD\n" "RU3SE\n" "RU3ST\n" "RU3TC\n" "RU3UB\n" "RU3UM\n" "RU3UN\n" "RU3UR\n" "RU3UW\n" "RU3VD\n" "RU3VV\n" "RU3WR\n" "RU3XB\n" "RU3XF\n" "RU3XK\n" "RU3XW\n" "RU3XY\n" "RU3XY/1\n" "RU3YA\n" "RU3ZV\n" "RU3ZX\n" "RU4AW\n" "RU4CD\n" "RU4CO\n" "RU4CS\n" "RU4FA\n" "RU4HP\n" "RU4HU\n" "RU4LM\n" "RU4PU\n" "RU4SM\n" "RU4SO\n" "RU4SS\n" "RU4SU\n" "RU4SW\n" "RU4UR\n" "RU4WD\n" "RU4YES\n" "RU5A\n" "RU6AM\n" "RU6AN\n" "RU6AR\n" "RU6AV\n" "RU6AX\n" "RU6BR\n" "RU6CH\n" "RU6CQ\n" "RU6CT\n" "RU6DX\n" "RU6FA\n" "RU6FC\n" "RU6FZ\n" "RU6HJ\n" "RU6LA\n" "RU6LG\n" "RU6LWZ\n" "RU6M\n" "RU6MD\n" "RU6MM/1\n" "RU6UR\n" "RU6YJ\n" "RU6YK\n" "RU6YY\n" "RU6YZ\n" "RU9AC\n" "RU9AT\n" "RU9AWA\n" "RU9AZ\n" "RU9BS\n" "RU9CC\n" "RU9CD\n" "RU9CI\n" "RU9CK\n" "RU9CM\n" "RU9CO\n" "RU9CWF\n" "RU9CWG\n" "RU9CX\n" "RU9CY\n" "RU9CZ\n" "RU9CZD\n" "RU9DD\n" "RU9HM\n" "RU9LA\n" "RU9MU\n" "RU9MX\n" "RU9SO\n" "RU9TO\n" "RU9UC\n" "RU9UG\n" "RU9UN\n" "RU9UWU\n" "RU9WB\n" "RU9WX\n" "RU9WZ\n" "RU9YF\n" "RV0AE\n" "RV0AL\n" "RV0AR\n" "RV0AU\n" "RV0AUI\n" "RV0CD\n" "RV0SR\n" "RV1AC\n" "RV1AE\n" "RV1AP\n" "RV1AQ\n" "RV1AT\n" "RV1CB\n" "RV1CC\n" "RV1OO\n" "RV2FW/1\n" "RV2FZ\n" "RV3ACA/3\n" "RV3AMV\n" "RV3AQN\n" "RV3ATS\n" "RV3AZ\n" "RV3BQ\n" "RV3BV\n" "RV3DB\n" "RV3DBG\n" "RV3DBK\n" "RV3DCZ\n" "RV3DHC\n" "RV3DND\n" "RV3DUT\n" "RV3EAK\n" "RV3F\n" "RV3FD\n" "RV3FF\n" "RV3FI\n" "RV3FM\n" "RV3FN\n" "RV3FU\n" "RV3GM\n" "RV3IC\n" "RV3ID\n" "RV3IG\n" "RV3LE\n" "RV3LO\n" "RV3LU\n" "RV3MA\n" "RV3MF\n" "RV3MI\n" "RV3ML\n" "RV3MR\n" "RV3NA\n" "RV3NB\n" "RV3PN\n" "RV3QJ\n" "RV3QO\n" "RV3QR\n" "RV3QX\n" "RV3RM\n" "RV3TG\n" "RV3WD\n" "RV3WT\n" "RV3YM\n" "RV3YN\n" "RV3YR\n" "RV3ZL\n" "RV3ZN\n" "RV3ZQ\n" "RV4AB\n" "RV4AP\n" "RV4CO\n" "RV4CT\n" "RV4CU\n" "RV4HC\n" "RV4HL\n" "RV4HV\n" "RV4LC\n" "RV4LS\n" "RV6AA/P\n" "RV6AAA\n" "RV6ACC\n" "RV6AF\n" "RV6AJ\n" "RV6AJJ\n" "RV6ALI\n" "RV6ARS\n" "RV6ASU\n" "RV6BC\n" "RV6BK\n" "RV6BO\n" "RV6FA\n" "RV6FG\n" "RV6HEO\n" "RV6HO\n" "RV6LA\n" "RV6LAF\n" "RV6LCI\n" "RV6LFE\n" "RV6LJK\n" "RV6LN\n" "RV6LO\n" "RV6LX\n" "RV6YB\n" "RV9AV\n" "RV9AZ\n" "RV9CBW\n" "RV9CM\n" "RV9CP\n" "RV9CPZ\n" "RV9CQ\n" "RV9CX\n" "RV9FQ\n" "RV9FT\n" "RV9JE\n" "RV9JR\n" "RV9LF\n" "RV9LM\n" "RV9LV\n" "RV9MA\n" "RV9MM\n" "RV9MN\n" "RV9MZ\n" "RV9OM\n" "RV9SQ\n" "RV9SV\n" "RV9UB\n" "RV9UD\n" "RV9UF\n" "RV9UP\n" "RV9WA\n" "RV9WB\n" "RV9WJ\n" "RV9WP\n" "RV9WZ\n" "RV9WZ/2\n" "RV9XE\n" "RV9XM\n" "RV9XO\n" "RV9XQ\n" "RV9YK\n" "RV9YP\n" "RV9YW\n" "RV9YZ\n" "RV9YZ/9\n" "RW0A\n" "RW0AA\n" "RW0AJ\n" "RW0AQ\n" "RW0AR\n" "RW0BG\n" "RW0BM\n" "RW0CF\n" "RW0CN\n" "RW0COA\n" "RW0CR\n" "RW0CV\n" "RW0CWA\n" "RW0LBM\n" "RW0LD\n" "RW0LL\n" "RW0LQ\n" "RW0LT\n" "RW0LZ\n" "RW0MM\n" "RW0SD\n" "RW0SP\n" "RW0SR\n" "RW0UB\n" "RW0UM\n" "RW0UU\n" "RW1AC\n" "RW1AI\n" "RW1AM\n" "RW1AU\n" "RW1CW\n" "RW1CX\n" "RW1QV\n" "RW1ZA\n" "RW2F\n" "RW2L\n" "RW2WR\n" "RW3AF\n" "RW3AFY\n" "RW3AI\n" "RW3DA\n" "RW3DC\n" "RW3DD\n" "RW3DF\n" "RW3DL\n" "RW3DOX\n" "RW3DU\n" "RW3DW\n" "RW3DY\n" "RW3FX\n" "RW3GU\n" "RW3LB\n" "RW3LL\n" "RW3LX\n" "RW3MA\n" "RW3MB\n" "RW3MW\n" "RW3PF\n" "RW3PK\n" "RW3PX\n" "RW3PZ\n" "RW3QF\n" "RW3QHN\n" "RW3QO\n" "RW3QW\n" "RW3RM\n" "RW3RQ\n" "RW3SB\n" "RW3SK\n" "RW3SU\n" "RW3SY\n" "RW3TA\n" "RW3TT\n" "RW3VA\n" "RW3VI\n" "RW3VM\n" "RW3VZ\n" "RW3WWW/1\n" "RW3WX\n" "RW3XB\n" "RW3XM\n" "RW3XN\n" "RW3XS\n" "RW3XX\n" "RW3XZ\n" "RW3YA\n" "RW3YW\n" "RW3ZA\n" "RW3ZC\n" "RW4AA/9\n" "RW4AD\n" "RW4AO\n" "RW4CBG\n" "RW4CHD\n" "RW4CLF\n" "RW4CY\n" "RW4FD\n" "RW4FE\n" "RW4FX\n" "RW4HB\n" "RW4HBG\n" "RW4HD\n" "RW4HFH\n" "RW4HM\n" "RW4HM/P\n" "RW4HO\n" "RW4HP\n" "RW4HT\n" "RW4LK\n" "RW4LQ\n" "RW4NH\n" "RW4NN\n" "RW4NO\n" "RW4NQ\n" "RW4NX\n" "RW4PK\n" "RW4PL\n" "RW4PP\n" "RW4PU\n" "RW4PY\n" "RW4W\n" "RW4WM\n" "RW4WN\n" "RW4WW\n" "RW4WY\n" "RW4WZ\n" "RW4YR\n" "RW4YY\n" "RW6AF\n" "RW6AH\n" "RW6AHO\n" "RW6ALB\n" "RW6AM\n" "RW6AMP\n" "RW6AN\n" "RW6ATJ\n" "RW6AX\n" "RW6BD\n" "RW6BJ\n" "RW6BN\n" "RW6CF\n" "RW6CR\n" "RW6CW\n" "RW6FO\n" "RW6FZ\n" "RW6HA\n" "RW6HA/6\n" "RW6HJV\n" "RW6HJV/6\n" "RW6HKF\n" "RW6HP\n" "RW6HPD\n" "RW6HX\n" "RW6LP\n" "RW6MBC\n" "RW6MII\n" "RW6MN\n" "RW6MT\n" "RW9AW\n" "RW9C\n" "RW9CD\n" "RW9CW\n" "RW9DW\n" "RW9DX\n" "RW9FWR\n" "RW9HA\n" "RW9IM\n" "RW9JD\n" "RW9JE\n" "RW9JZ\n" "RW9LL\n" "RW9MC\n" "RW9MZ\n" "RW9OC\n" "RW9OW\n" "RW9OWD\n" "RW9OWW\n" "RW9OX\n" "RW9QA\n" "RW9RA\n" "RW9RN\n" "RW9RO\n" "RW9RW\n" "RW9SZ\n" "RW9TA\n" "RW9TP\n" "RW9TR\n" "RW9UKU\n" "RW9UOB\n" "RW9USA\n" "RW9UU\n" "RW9UW\n" "RW9UX\n" "RW9UY\n" "RW9WA\n" "RW9WC\n" "RW9WT\n" "RW9WW\n" "RW9XF\n" "RW9YP\n" "RX0AK\n" "RX0AT\n" "RX0AW\n" "RX0QA\n" "RX0QWW\n" "RX0SA\n" "RX1AA\n" "RX1AO\n" "RX1AP\n" "RX1CD\n" "RX1CQ\n" "RX3AA\n" "RX3AEX\n" "RX3AGD\n" "RX3AGQ\n" "RX3AHR\n" "RX3AJ\n" "RX3ALL\n" "RX3AMG\n" "RX3AP\n" "RX3APM\n" "RX3ASQ\n" "RX3AT\n" "RX3AU\n" "RX3AW\n" "RX3BP\n" "RX3DBG\n" "RX3DBH\n" "RX3DFL\n" "RX3DIS\n" "RX3DN\n" "RX3DTM\n" "RX3DTN\n" "RX3DUE\n" "RX3FK\n" "RX3FS\n" "RX3FS/3\n" "RX3FT\n" "RX3MA\n" "RX3MM\n" "RX3MX\n" "RX3OM\n" "RX3PR\n" "RX3QDF\n" "RX3QFY\n" "RX3QP\n" "RX3RA\n" "RX3RB\n" "RX3RZ\n" "RX3VA\n" "RX3VF\n" "RX3XA\n" "RX3XP\n" "RX3ZE\n" "RX3ZX\n" "RX4AW\n" "RX4CD\n" "RX4HX\n" "RX4HZ\n" "RX4HZZ\n" "RX4WX\n" "RX4YY\n" "RX6ABL\n" "RX6AH\n" "RX6AIC\n" "RX6AKA\n" "RX6AM\n" "RX6AMV\n" "RX6AOB\n" "RX6AUE\n" "RX6AY\n" "RX6BH\n" "RX6BS\n" "RX6BZ\n" "RX6CC\n" "RX6DM\n" "RX6DQ\n" "RX6DX\n" "RX6FJ\n" "RX6HT\n" "RX6LD\n" "RX6LE\n" "RX6LN\n" "RX6LOL\n" "RX6MR\n" "RX9AF\n" "RX9AI\n" "RX9AM\n" "RX9AON\n" "RX9AX\n" "RX9CAZ\n" "RX9CCJ\n" "RX9CDQ\n" "RX9CJ\n" "RX9DJ\n" "RX9FB\n" "RX9FG\n" "RX9FJ\n" "RX9FM\n" "RX9FR\n" "RX9FW\n" "RX9JD\n" "RX9JM/9\n" "RX9JP\n" "RX9KD\n" "RX9LW\n" "RX9SA\n" "RX9SK\n" "RX9SL\n" "RX9SN\n" "RX9SR\n" "RX9SS\n" "RX9TL\n" "RX9TL/9\n" "RX9TX\n" "RX9UL/3\n" "RX9WN\n" "RX9WR\n" "RX9WX\n" "RY4I\n" "RY9C\n" "RZ0AF\n" "RZ0AM\n" "RZ0AWO\n" "RZ0CQ\n" "RZ0CWN\n" "RZ0LWA\n" "RZ0SB\n" "RZ0SN\n" "RZ0SO\n" "RZ0SR\n" "RZ0SZZ\n" "RZ0WWA\n" "RZ1AP\n" "RZ1AT\n" "RZ1AU\n" "RZ1AWG\n" "RZ1AWO\n" "RZ1AWT\n" "RZ1AWZ\n" "RZ1AZ\n" "RZ1OA\n" "RZ1OK\n" "RZ1OM\n" "RZ1ZZ\n" "RZ1ZZZ\n" "RZ3AAO\n" "RZ3ABC\n" "RZ3ABF\n" "RZ3AIA\n" "RZ3AIU\n" "RZ3AM\n" "RZ3AMW\n" "RZ3ARO\n" "RZ3ATE\n" "RZ3ATG\n" "RZ3AUL\n" "RZ3AV\n" "RZ3AWI\n" "RZ3AWM/3\n" "RZ3AXX\n" "RZ3AZ\n" "RZ3BY\n" "RZ3DA\n" "RZ3DC\n" "RZ3DH\n" "RZ3DJ\n" "RZ3DSN\n" "RZ3DX\n" "RZ3DXR\n" "RZ3DZ\n" "RZ3DZA\n" "RZ3DZF\n" "RZ3DZI\n" "RZ3EC\n" "RZ3EE\n" "RZ3EM\n" "RZ3EV\n" "RZ3FH\n" "RZ3FR\n" "RZ3FR/3\n" "RZ3FW\n" "RZ3GU\n" "RZ3GV\n" "RZ3LC\n" "RZ3LWW\n" "RZ3OV\n" "RZ3PS\n" "RZ3QL\n" "RZ3QS\n" "RZ3QWT\n" "RZ3QZ\n" "RZ3RM\n" "RZ3TXZ\n" "RZ3TZL\n" "RZ3TZZ\n" "RZ3VA\n" "RZ3VO\n" "RZ3VV\n" "RZ3XA\n" "RZ4AA\n" "RZ4AG\n" "RZ4AO\n" "RZ4AR\n" "RZ4AYN\n" "RZ4AZ\n" "RZ4CWW\n" "RZ4FA\n" "RZ4FB\n" "RZ4FO\n" "RZ4FWA\n" "RZ4FWE\n" "RZ4FZZ\n" "RZ4HL\n" "RZ4HO\n" "RZ4HWS\n" "RZ4HX\n" "RZ4HZW\n" "RZ4LA\n" "RZ4NXF\n" "RZ4PWL\n" "RZ4SWM\n" "RZ4WZ\n" "RZ6AD\n" "RZ6AK\n" "RZ6ARM\n" "RZ6AW\n" "RZ6BR\n" "RZ6BU\n" "RZ6FA\n" "RZ6FC\n" "RZ6HDX\n" "RZ6HF\n" "RZ6HV\n" "RZ6HWA\n" "RZ6HX\n" "RZ6LB\n" "RZ6LG\n" "RZ6LV\n" "RZ6LWZ\n" "RZ6LY\n" "RZ6MD\n" "RZ6MM\n" "RZ6MP\n" "RZ6YZ\n" "RZ9AE\n" "RZ9AN\n" "RZ9AW\n" "RZ9AY\n" "RZ9AZ\n" "RZ9CJ\n" "RZ9CW\n" "RZ9FN\n" "RZ9HA\n" "RZ9HG\n" "RZ9HK\n" "RZ9HT\n" "RZ9IR\n" "RZ9OJ\n" "RZ9OO\n" "RZ9OP\n" "RZ9OQ\n" "RZ9OS\n" "RZ9OW\n" "RZ9OWN\n" "RZ9OZO\n" "RZ9SR\n" "RZ9SWA\n" "RZ9SZ/9\n" "RZ9UGN\n" "RZ9UI\n" "RZ9UMA\n" "RZ9UO\n" "RZ9UWZ\n" "RZ9WU\n" "RZ9WXK\n" "RZ9YB\n" "RZ9YF\n" "S50A\n" "S50AL\n" "S50B\n" "S50C\n" "S50D\n" "S50E\n" "S50G\n" "S50HQ\n" "S50IPY\n" "S50J\n" "S50K\n" "S50L\n" "S50NV\n" "S50O\n" "S50R\n" "S50U\n" "S50X\n" "S50XX\n" "S51A\n" "S51AD\n" "S51AE\n" "S51AU\n" "S51AY\n" "S51BO\n" "S51CAB\n" "S51CK\n" "S51D\n" "S51DF\n" "S51DI\n" "S51DV\n" "S51DX\n" "S51EC\n" "S51EP\n" "S51F\n" "S51FB\n" "S51HU\n" "S51IS\n" "S51IV\n" "S51J\n" "S51JQ\n" "S51K\n" "S51KV\n" "S51LU\n" "S51M\n" "S51MA\n" "S51ME\n" "S51MF\n" "S51NM\n" "S51NP\n" "S51NR\n" "S51NY\n" "S51NZ\n" "S51OE\n" "S51RE\n" "S51RJ\n" "S51RU\n" "S51SK\n" "S51SL\n" "S51ST\n" "S51SX\n" "S51TA\n" "S51TC\n" "S51TJ\n" "S51TN\n" "S51U\n" "S51UJ\n" "S51V\n" "S51W\n" "S51WO\n" "S51WX\n" "S51XA\n" "S51Z\n" "S51ZG\n" "S51ZZ\n" "S520A\n" "S52AL\n" "S52AU\n" "S52AW\n" "S52BB\n" "S52BM\n" "S52BT\n" "S52C\n" "S52CC\n" "S52DX\n" "S52F\n" "S52FW\n" "S52GO\n" "S52GP\n" "S52IC\n" "S52ID\n" "S52LW\n" "S52MZ\n" "S52OP\n" "S52OT\n" "S52P\n" "S52Q\n" "S52QM\n" "S52R\n" "S52RA\n" "S52ST\n" "S52TJ\n" "S52W\n" "S52WW\n" "S52X\n" "S52ZW\n" "S53A\n" "S53AF\n" "S53AK\n" "S53APR\n" "S53AR\n" "S53AU\n" "S53BB\n" "S53BH\n" "S53CC\n" "S53DA\n" "S53DIJ\n" "S53DRA\n" "S53DX\n" "S53EA\n" "S53EJ\n" "S53EO\n" "S53F\n" "S53FO\n" "S53G\n" "S53M\n" "S53MM\n" "S53NW\n" "S53O\n" "S53P\n" "S53QD\n" "S53R\n" "S53RA\n" "S53S\n" "S53SL\n" "S53SO\n" "S53V\n" "S53VP\n" "S53W\n" "S53XX\n" "S54A\n" "S54AA\n" "S54AO\n" "S54E\n" "S54G\n" "S54K\n" "S54L\n" "S54O\n" "S54W\n" "S54X\n" "S55A\n" "S55DX\n" "S55M\n" "S55N\n" "S55O\n" "S55OO\n" "S55SL\n" "S55T\n" "S55VM\n" "S55Y\n" "S55Z\n" "S55ZZ\n" "S56A\n" "S56AA\n" "S56B\n" "S56C\n" "S56DX\n" "S56EPX\n" "S56G\n" "S56IHX\n" "S56M\n" "S56P\n" "S56PYZ\n" "S56SD\n" "S56WPF\n" "S56WRT\n" "S56WYB\n" "S56X\n" "S56Y\n" "S56ZZZ\n" "S57A\n" "S57AC\n" "S57AD\n" "S57AJ\n" "S57AL\n" "S57AM\n" "S57AT\n" "S57AW\n" "S57AY\n" "S57C\n" "S57CV\n" "S57CW\n" "S57D\n" "S57DX\n" "S57EA\n" "S57ESG\n" "S57ET\n" "S57F\n" "S57GM\n" "S57J\n" "S57JA\n" "S57JZ\n" "S57KV\n" "S57L\n" "S57LC\n" "S57LR\n" "S57M\n" "S57MM\n" "S57MPU\n" "S57NAW\n" "S57NCP\n" "S57NEA\n" "S57NL\n" "S57NTR\n" "S57NW\n" "S57O\n" "S57OWA\n" "S57PM\n" "S57PY\n" "S57Q\n" "S57RL\n" "S57RTH\n" "S57S\n" "S57SU\n" "S57T\n" "S57U\n" "S57UN\n" "S57VW\n" "S57WJ\n" "S57WO\n" "S57WW\n" "S57X\n" "S57XX\n" "S57YX\n" "S57Z\n" "S58A\n" "S58AA\n" "S58AB\n" "S58AL\n" "S58AW\n" "S58D\n" "S58DX\n" "S58FA\n" "S58G\n" "S58J\n" "S58M\n" "S58MU\n" "S58N\n" "S58O\n" "S58P\n" "S58Q\n" "S58R\n" "S58RU\n" "S58T\n" "S58WW\n" "S58X\n" "S59A\n" "S59AA\n" "S59ABC\n" "S59AKR\n" "S59AR\n" "S59AV\n" "S59D\n" "S59DBC\n" "S59DDR\n" "S59DEM\n" "S59DJK\n" "S59DKR\n" "S59DR\n" "S59EIJ\n" "S59EKL\n" "S59H\n" "S59KB\n" "S59KM\n" "S59MA\n" "S59N\n" "S59O\n" "S59PC\n" "S59SV\n" "S59T\n" "S59TI\n" "S59V\n" "S59W\n" "S59X\n" "S59Z\n" "S59ZB\n" "S59ZZ\n" "S5D\n" "S79MI\n" "SA0AEK\n" "SA0AQT\n" "SA0BDK\n" "SA1A\n" "SA3A\n" "SA3ANZ\n" "SA3BGM\n" "SA3V\n" "SA4A\n" "SA4AQW\n" "SA4Z\n" "SA5ACL\n" "SA5ACR\n" "SA5ATV\n" "SA6AIN\n" "SA6AQP\n" "SA6BET\n" "SA6G\n" "SA6W\n" "SA7AOI\n" "SA7AUH\n" "SA7J\n" "SB0M\n" "SB6A\n" "SC3A\n" "SC3DX\n" "SC3N\n" "SC7DX\n" "SD0MN\n" "SD3A\n" "SD3D\n" "SD40JZ\n" "SD7X\n" "SE0X\n" "SE2A\n" "SE2T\n" "SE5E\n" "SE5S\n" "SE5T\n" "SE6C\n" "SE6E\n" "SE6N\n" "SE6U\n" "SE6W\n" "SE6Y\n" "SE7A\n" "SE800M\n" "SF0D\n" "SF0L\n" "SF0X\n" "SF3A\n" "SF3E\n" "SF5X\n" "SF6D\n" "SF6DX\n" "SF7WT\n" "SG0M\n" "SG0X\n" "SG1A\n" "SG3O\n" "SG4G\n" "SG5A\n" "SG5W\n" "SG5X\n" "SG6A\n" "SG6T\n" "SG7A\n" "SG7YL\n" "SH3O\n" "SI0E\n" "SI0M\n" "SI3A\n" "SI4G\n" "SI5S\n" "SI5Y\n" "SI6A\n" "SI6GM\n" "SI6R\n" "SI7V\n" "SI9AM\n" "SJ0X\n" "SJ2W\n" "SJ4F\n" "SJ6A\n" "SJ7M\n" "SK0CT\n" "SK0HB\n" "SK0QO\n" "SK0X\n" "SK2T\n" "SK3A\n" "SK3GM\n" "SK3GW\n" "SK3W\n" "SK4RY\n" "SK4TL\n" "SK5A\n" "SK5AA\n" "SK6AW\n" "SK6D\n" "SK6HD\n" "SK7A\n" "SK7AX\n" "SK7DX\n" "SK7OA\n" "SK9HQ\n" "SL0W\n" "SL5ZP\n" "SM0A\n" "SM0AIG\n" "SM0BDS\n" "SM0BSB\n" "SM0BSO\n" "SM0BYD\n" "SM0DTK\n" "SM0EPO\n" "SM0FM\n" "SM0GYX\n" "SM0IFP\n" "SM0IMJ\n" "SM0JHF\n" "SM0KRN\n" "SM0KV\n" "SM0MXO\n" "SM0NZY\n" "SM0Q\n" "SM0R\n" "SM0S\n" "SM0W\n" "SM0XG\n" "SM0Y\n" "SM0YRJ\n" "SM1ALH\n" "SM2BJS\n" "SM2CEW\n" "SM2CVH\n" "SM2EKA\n" "SM2EKM\n" "SM2ELN\n" "SM2JEB\n" "SM2JUR\n" "SM2LIY\n" "SM2M\n" "SM2MZC\n" "SM2ODB\n" "SM2T\n" "SM3AF\n" "SM3B\n" "SM3BDZ\n" "SM3BFH\n" "SM3BIZ\n" "SM3C\n" "SM3CCM\n" "SM3CZS\n" "SM3D\n" "SM3DMP\n" "SM3DXC\n" "SM3EAE\n" "SM3ETC\n" "SM3EVR\n" "SM3FVW\n" "SM3GBA\n" "SM3GSK\n" "SM3KIF\n" "SM3LBP\n" "SM3NFB\n" "SM3NRY\n" "SM3OKC\n" "SM3PHM\n" "SM3PZG\n" "SM3Q\n" "SM3R\n" "SM3RAB\n" "SM3RL\n" "SM3SJN\n" "SM3TLG\n" "SM3UZU\n" "SM3VAC\n" "SM3X\n" "SM3YBP\n" "SM4AIO\n" "SM4ASX\n" "SM4ATA\n" "SM4AZQ\n" "SM4C\n" "SM4CAN\n" "SM4CTT\n" "SM4EMO\n" "SM4F\n" "SM4OEP\n" "SM4PBT\n" "SM4RGD\n" "SM4RLD\n" "SM4TU\n" "SM4WKT\n" "SM4XFP\n" "SM50BFJ\n" "SM5ACQ\n" "SM5AOG\n" "SM5APS\n" "SM5AQD\n" "SM5AQI\n" "SM5ARL\n" "SM5BAX\n" "SM5BJT\n" "SM5BMB\n" "SM5BOK\n" "SM5BRG\n" "SM5BSB\n" "SM5C\n" "SM5CAK\n" "SM5CBM\n" "SM5CCE\n" "SM5CEU\n" "SM5CIL\n" "SM5CJW\n" "SM5CNQ\n" "SM5COP\n" "SM5CSS\n" "SM5CZQ\n" "SM5D\n" "SM5DD\n" "SM5DFF\n" "SM5DJZ\n" "SM5DKK\n" "SM5DQE\n" "SM5DXR\n" "SM5DXT\n" "SM5DYC\n" "SM5EDX\n" "SM5EFX\n" "SM5EJN\n" "SM5ENX\n" "SM5EPO\n" "SM5FQQ\n" "SM5FUG\n" "SM5GMZ\n" "SM5HPB\n" "SM5IMO\n" "SM5INC\n" "SM5ISM\n" "SM5J\n" "SM5LWC/7\n" "SM5MEK\n" "SM5MX\n" "SM5NVF\n" "SM5OSZ\n" "SM5PEY/5\n" "SM5Q\n" "SM5QU\n" "SM5R\n" "SM5SIK\n" "SM5SRR\n" "SM5T\n" "SM5U\n" "SM5USK\n" "SM5V\n" "SM5YOC\n" "SM5ZBJ\n" "SM6A\n" "SM6AHU\n" "SM6ALF\n" "SM6AOU\n" "SM6BGG\n" "SM6BSK\n" "SM6C\n" "SM6CKU\n" "SM6CMU\n" "SM6CNN\n" "SM6CPY\n" "SM6CRM\n" "SM6CTQ\n" "SM6CUK\n" "SM6CVT\n" "SM6CWK\n" "SM6DER/7\n" "SM6DHU\n" "SM6DLY\n" "SM6E\n" "SM6EQO\n" "SM6FJY\n" "SM6FUD\n" "SM6GKT\n" "SM6GZ\n" "SM6IQD\n" "SM6JCC\n" "SM6JMZ\n" "SM6JWW\n" "SM6LIF\n" "SM6LJU\n" "SM6M\n" "SM6MCW\n" "SM6MIS\n" "SM6MSG\n" "SM6MVE\n" "SM6NET\n" "SM6NJK\n" "SM6NM\n" "SM6NOC\n" "SM6Q\n" "SM6TOL\n" "SM6U\n" "SM6V\n" "SM6VJA/P\n" "SM6VVT\n" "SM6W\n" "SM6WET\n" "SM6WZH\n" "SM6X\n" "SM6XKB\n" "SM6Z\n" "SM7ATL\n" "SM7AWQ\n" "SM7BGE\n" "SM7BHM\n" "SM7BIC\n" "SM7BJW\n" "SM7BQX\n" "SM7BVO\n" "SM7BZV\n" "SM7C\n" "SM7CBS\n" "SM7CIL\n" "SM7CQY\n" "SM7CTJ\n" "SM7CWI\n" "SM7DBN\n" "SM7DLK\n" "SM7DQV\n" "SM7DXQ\n" "SM7E\n" "SM7EH\n" "SM7EHU\n" "SM7GIB\n" "SM7GUY\n" "SM7GVF\n" "SM7HVQ\n" "SM7JKD\n" "SM7JNT\n" "SM7LPY\n" "SM7MPM\n" "SM7N\n" "SM7NGH\n" "SM7PEV\n" "SM7PXS\n" "SM7RPU\n" "SM7S\n" "SM7SJR\n" "SM7TZK\n" "SM7U\n" "SM7UFR\n" "SM7VZJ\n" "SM7VZX\n" "SM7YEA\n" "SM7YGZ\n" "SM7ZDI\n" "SN0HQ\n" "SN120OSP\n" "SN1918PR\n" "SN1A\n" "SN1C\n" "SN1I\n" "SN1J\n" "SN2009EM\n" "SN2B\n" "SN2F\n" "SN2I\n" "SN2J\n" "SN2K\n" "SN2L\n" "SN2M\n" "SN2MTBO\n" "SN2Q\n" "SN2S\n" "SN2U\n" "SN2Y\n" "SN2Z\n" "SN30J\n" "SN3A\n" "SN3B\n" "SN3C\n" "SN3O\n" "SN3Q\n" "SN3R\n" "SN3S\n" "SN3T\n" "SN3X\n" "SN40DVP\n" "SN40K\n" "SN4F\n" "SN4L\n" "SN4W\n" "SN50RS\n" "SN50RS/7\n" "SN50SPP\n" "SN51FBQ\n" "SN5B\n" "SN5E\n" "SN5G\n" "SN5I\n" "SN5J\n" "SN5N\n" "SN5Q\n" "SN5T\n" "SN5Z\n" "SN6C\n" "SN6G\n" "SN6K\n" "SN6Z\n" "SN7C\n" "SN7F\n" "SN7H\n" "SN7O\n" "SN7P\n" "SN7Q\n" "SN7T\n" "SN8B\n" "SN8C\n" "SN8F\n" "SN8J\n" "SN8M\n" "SN8R\n" "SN8W\n" "SN90SW\n" "SN9A\n" "SN9C\n" "SN9D\n" "SN9F\n" "SN9G\n" "SN9I\n" "SN9K\n" "SN9L\n" "SN9M\n" "SN9N\n" "SN9O\n" "SN9P\n" "SN9Q\n" "SN9R\n" "SN9U\n" "SN9V\n" "SN9Y\n" "SN9Z\n" "SO1EKO\n" "SO1TH\n" "SO1WE\n" "SO2D\n" "SO2I\n" "SO2W\n" "SO4M\n" "SO4R\n" "SO5A\n" "SO5S\n" "SO6C\n" "SO6I\n" "SO6V\n" "SO6X\n" "SO70M\n" "SO7O\n" "SO80J\n" "SO8A\n" "SO8B\n" "SO8L\n" "SO8N\n" "SO8O\n" "SO8R\n" "SO8T\n" "SO9A\n" "SO9C\n" "SO9D\n" "SO9G\n" "SO9L\n" "SO9Q\n" "SO9R\n" "SO9S\n" "SP0PZK\n" "SP0ZHG\n" "SP1ADY\n" "SP1AEN\n" "SP1BLE\n" "SP1CQZ\n" "SP1DMD\n" "SP1DPA\n" "SP1EG\n" "SP1F\n" "SP1FFC\n" "SP1GZF\n" "SP1HJK\n" "SP1I\n" "SP1II\n" "SP1JPQ/P\n" "SP1JXJ\n" "SP1KAA\n" "SP1KCJ\n" "SP1KQR\n" "SP1KRF\n" "SP1KV\n" "SP1KZE\n" "SP1MAB\n" "SP1MHZ\n" "SP1MVG\n" "SP1MVL\n" "SP1MWF\n" "SP1MWK\n" "SP1MWN\n" "SP1NQN\n" "SP1NY\n" "SP1O\n" "SP1PWP\n" "SP1QXK\n" "SP1QY\n" "SP1RFC\n" "SP1RKR\n" "SP1RKT\n" "SP1S\n" "SP2010CY\n" "SP2AEK\n" "SP2AJO\n" "SP2ALT\n" "SP2AOB\n" "SP2AQP\n" "SP2AVE\n" "SP2AYC\n" "SP2B\n" "SP2BKX\n" "SP2BLC\n" "SP2BNJ\n" "SP2CYK\n" "SP2DDX\n" "SP2DKI\n" "SP2DMB/3\n" "SP2DNI\n" "SP2DWA\n" "SP2DX\n" "SP2EPV\n" "SP2ESG\n" "SP2EWQ\n" "SP2EXE\n" "SP2EXN\n" "SP2FAP\n" "SP2FAV\n" "SP2FGO\n" "SP2FKE\n" "SP2FOV\n" "SP2FTL\n" "SP2FUD\n" "SP2FWC\n" "SP2GCE\n" "SP2GCJ\n" "SP2GJI\n" "SP2GJV\n" "SP2GLS\n" "SP2GMA\n" "SP2GTJ\n" "SP2GUV\n" "SP2GWH\n" "SP2HMN\n" "SP2HMT\n" "SP2HPD\n" "SP2HPM\n" "SP2HPM/7\n" "SP2HWW\n" "SP2HXY\n" "SP2IKP\n" "SP2ILQ\n" "SP2IU\n" "SP2IW\n" "SP2JGQ\n" "SP2JL\n" "SP2JLR\n" "SP2JMB\n" "SP2KAC\n" "SP2KDS\n" "SP2KPD\n" "SP2KRS\n" "SP2LNW\n" "SP2LQP\n" "SP2LUB\n" "SP2MHC\n" "SP2MKI\n" "SP2MKZ\n" "SP2OVQ\n" "SP2PAQ\n" "SP2PIK\n" "SP2QCU\n" "SP2QCW\n" "SP2QG\n" "SP2QOT\n" "SP2RXG\n" "SP2SGN\n" "SP2SV\n" "SP2SWI\n" "SP2UKB\n" "SP2US\n" "SP2UUU\n" "SP2UV\n" "SP2WGB\n" "SP2WLB\n" "SP2Y\n" "SP2YUV\n" "SP3AGE\n" "SP3AOT\n" "SP3AZO\n" "SP3BGD\n" "SP3BHG\n" "SP3BJK\n" "SP3BQ\n" "SP3BVI\n" "SP3C\n" "SP3CFM\n" "SP3CGK\n" "SP3CJS\n" "SP3CQP\n" "SP3CYY\n" "SP3DIK\n" "SP3DOF\n" "SP3DOI\n" "SP3DRM\n" "SP3DSC\n" "SP3DVG\n" "SP3EPK\n" "SP3EPX\n" "SP3EQE\n" "SP3FHV\n" "SP3FPF\n" "SP3FUK\n" "SP3FYX\n" "SP3FZN\n" "SP3GAX\n" "SP3GEM\n" "SP3GHK\n" "SP3GRQ\n" "SP3GTS\n" "SP3GXH\n" "SP3HBF\n" "SP3HC\n" "SP3HLM\n" "SP3HRN\n" "SP3HZG\n" "SP3IOE\n" "SP3J\n" "SP3JHY\n" "SP3JIA\n" "SP3JUN\n" "SP3KPN\n" "SP3LAU\n" "SP3LD\n" "SP3LGF\n" "SP3LPG\n" "SP3LPR\n" "SP3LWP\n" "SP3LYN\n" "SP3MEY\n" "SP3MGM\n" "SP3MY\n" "SP3NEN\n" "SP3NNH\n" "SP3OCC\n" "SP3OL\n" "SP3PJY\n" "SP3PL\n" "SP3POZ\n" "SP3QYQ\n" "SP3RBG\n" "SP3RNZ\n" "SP3SLO\n" "SP3SLU\n" "SP3SPK\n" "SP3VSE\n" "SP3VT\n" "SP3VZY\n" "SP3WW\n" "SP3XR\n" "SP3YM\n" "SP3ZIR\n" "SP40EIY\n" "SP4AAZ\n" "SP4AVG\n" "SP4AWE\n" "SP4BEU\n" "SP4BOS\n" "SP4BPH\n" "SP4BY\n" "SP4CGJ\n" "SP4CJA\n" "SP4CPB\n" "SP4CQU\n" "SP4CUF\n" "SP4DDS\n" "SP4DEU\n" "SP4DM\n" "SP4DNX\n" "SP4DZT\n" "SP4FMD\n" "SP4GDC\n" "SP4GFG\n" "SP4GHL\n" "SP4GL\n" "SP4ICD\n" "SP4ICP\n" "SP4INT\n" "SP4IRS\n" "SP4JAE\n" "SP4JCP\n" "SP4JCQ\n" "SP4JFR\n" "SP4JTJ\n" "SP4JWR\n" "SP4K\n" "SP4KNA\n" "SP4KSY\n" "SP4LVK\n" "SP4LXC\n" "SP4MPG\n" "SP4MPH\n" "SP4NKJ\n" "SP4NKU\n" "SP4OIC\n" "SP4OIZ\n" "SP4OZ\n" "SP4PBI\n" "SP4SHD\n" "SP4TBM\n" "SP4TKB\n" "SP4TKO\n" "SP4TKR\n" "SP4TXI\n" "SP4XQN\n" "SP4YPB\n" "SP4Z\n" "SP50AAZ\n" "SP50DXC\n" "SP50XR\n" "SP5ADX\n" "SP5AGU\n" "SP5AHR\n" "SP5AHY\n" "SP5AKG\n" "SP5APW\n" "SP5ATO\n" "SP5AUY\n" "SP5AZN\n" "SP5BB\n" "SP5BLI\n" "SP5BMU\n" "SP5BNB\n" "SP5BR\n" "SP5BUJ\n" "SP5CCC\n" "SP5CFD\n" "SP5CGN\n" "SP5CIB\n" "SP5CJQ\n" "SP5CJY\n" "SP5CNA\n" "SP5CQI\n" "SP5DDF\n" "SP5DDJ\n" "SP5DIR\n" "SP5DPD\n" "SP5DRE\n" "SP5DRH\n" "SP5EAF\n" "SP5EAQ\n" "SP5ECC\n" "SP5ELA\n" "SP5ELA/8\n" "SP5ELM\n" "SP5ELW\n" "SP5ENG\n" "SP5ENM\n" "SP5EOT\n" "SP5ES\n" "SP5EWX\n" "SP5EWX/7\n" "SP5EWY\n" "SP5FKW\n" "SP5GDY\n" "SP5GH\n" "SP5GMM\n" "SP5GQI\n" "SP5GRM\n" "SP5GRU\n" "SP5HFS\n" "SP5HRX\n" "SP5ICS\n" "SP5IT\n" "SP5IXS\n" "SP5JSZ\n" "SP5JTF\n" "SP5KCR\n" "SP5KDK\n" "SP5KW\n" "SP5LM\n" "SP5LS\n" "SP5MBA\n" "SP5MDB\n" "SP5NHK\n" "SP5NN\n" "SP5NVX\n" "SP5NZA\n" "SP5NZN\n" "SP5PBE\n" "SP5PSL\n" "SP5PX\n" "SP5SA\n" "SP5TAZ\n" "SP5UAR\n" "SP5VYI\n" "SP5WA\n" "SP5X\n" "SP5XO\n" "SP5XOR\n" "SP5XOV\n" "SP5XSD\n" "SP5XSL\n" "SP5XVY\n" "SP5YOC\n" "SP6A\n" "SP6AAT\n" "SP6AEG\n" "SP6ARE\n" "SP6AUI\n" "SP6AXW\n" "SP6BAA\n" "SP6BBE\n" "SP6BEN\n" "SP6BSL\n" "SP6BXM\n" "SP6BXP\n" "SP6CCI\n" "SP6CDK\n" "SP6CZ\n" "SP6DAY\n" "SP6DHH\n" "SP6DMI\n" "SP6DNZ\n" "SP6DVP\n" "SP6EF\n" "SP6EIY\n" "SP6EKS\n" "SP6EWB\n" "SP6FEK\n" "SP6FHU\n" "SP6FVP\n" "SP6FXY\n" "SP6GCU\n" "SP6GNJ\n" "SP6GTN\n" "SP6HEQ\n" "SP6IEQ\n" "SP6IHE\n" "SP6IXU\n" "SP6JIR\n" "SP6JOE\n" "SP6JQC\n" "SP6JZP\n" "SP6KCN\n" "SP6KEP\n" "SP6LK\n" "SP6LMQ\n" "SP6LUV\n" "SP6LV\n" "SP6M\n" "SP6MLX\n" "SP6MQO\n" "SP6NIC\n" "SP6NIK\n" "SP6NVK\n" "SP6NVN\n" "SP6OJE\n" "SP6OJG\n" "SP6OJK\n" "SP6OPZ\n" "SP6OUJ\n" "SP6OWY\n" "SP6PCL\n" "SP6PKO\n" "SP6PLH\n" "SP6PWT\n" "SP6QKP\n" "SP6QKX\n" "SP6QNU\n" "SP6RBO\n" "SP6RGC\n" "SP6RLF\n" "SP6RT\n" "SP6RYD\n" "SP6SOX\n" "SP6T\n" "SP6TGD\n" "SP6TGR\n" "SP6TRH\n" "SP6TRX\n" "SP6VWC\n" "SP6WM\n" "SP6XP\n" "SP6ZC\n" "SP7ASZ\n" "SP7ATY\n" "SP7AWG\n" "SP7BCA\n" "SP7BDS\n" "SP7CCB\n" "SP7CDH\n" "SP7CVW\n" "SP7DBI\n" "SP7DCS\n" "SP7EBM\n" "SP7EXJ\n" "SP7FBQ\n" "SP7FDV\n" "SP7FGA\n" "SP7FGP\n" "SP7FRO\n" "SP7HKK\n" "SP7HOA\n" "SP7HOV\n" "SP7HQ\n" "SP7IDX\n" "SP7IIT\n" "SP7ISV\n" "SP7IWA\n" "SP7IXT\n" "SP7JLH\n" "SP7JOA\n" "SP7JQQ\n" "SP7LI\n" "SP7LIE\n" "SP7MC\n" "SP7MFQ\n" "SP7MFR\n" "SP7MJL\n" "SP7MJX\n" "SP7MOC\n" "SP7MTF\n" "SP7MTU\n" "SP7NHS\n" "SP7OGP\n" "SP7Q\n" "SP7QHR\n" "SP7QJB\n" "SP7SZW\n" "SP7TES\n" "SP7TEX\n" "SP7TF\n" "SP80MVG\n" "SP8AG\n" "SP8AJK\n" "SP8AWL\n" "SP8BAB\n" "SP8BBK\n" "SP8BMF\n" "SP8BQL\n" "SP8BRQ\n" "SP8BVN\n" "SP8BVO\n" "SP8BWE\n" "SP8CGU\n" "SP8CNS\n" "SP8DIP\n" "SP8EDD\n" "SP8EEX\n" "SP8FHM\n" "SP8FNA\n" "SP8GSC\n" "SP8HDP\n" "SP8HKT\n" "SP8HPW\n" "SP8HWM\n" "SP8HXN\n" "SP8IIS\n" "SP8IOV\n" "SP8IQR\n" "SP8JMA\n" "SP8JPR\n" "SP8KEA\n" "SP8LBK\n" "SP8LNE\n" "SP8LXE\n" "SP8LZC\n" "SP8NCJ\n" "SP8NR\n" "SP8ONB\n" "SP8ONZ\n" "SP8OOB\n" "SP8QED\n" "SP8QJM\n" "SP8RX/1\n" "SP8SW\n" "SP8TDV\n" "SP8TJU\n" "SP8UFB\n" "SP8YB\n" "SP8YZZ\n" "SP9ADU\n" "SP9ADU/9\n" "SP9AJM\n" "SP9ATE\n" "SP9AUV\n" "SP9BGL\n" "SP9BGS\n" "SP9BMH\n" "SP9BNM\n" "SP9BRP\n" "SP9BXU\n" "SP9CLO\n" "SP9CLU\n" "SP9CQ\n" "SP9CTS\n" "SP9CTW\n" "SP9CTX\n" "SP9CV\n" "SP9CVY\n" "SP9CXN\n" "SP9CXX\n" "SP9DLY\n" "SP9DNO\n" "SP9DSD\n" "SP9DTE\n" "SP9DTE/1\n" "SP9DTH\n" "SP9DUX\n" "SP9EJH\n" "SP9EML\n" "SP9EVP\n" "SP9EWM\n" "SP9FKQ\n" "SP9FOW\n" "SP9FT\n" "SP9FWQ\n" "SP9FZC\n" "SP9GFI\n" "SP9GKJ\n" "SP9GKM\n" "SP9GPW\n" "SP9GR\n" "SP9GZQ\n" "SP9H\n" "SP9HVV\n" "SP9HZF\n" "SP9HZW\n" "SP9IBJ\n" "SP9IEK\n" "SP9IGY\n" "SP9IHP\n" "SP9IKN\n" "SP9IKS\n" "SP9IVD\n" "SP9IVQ\n" "SP9JKL\n" "SP9JPA\n" "SP9JQA\n" "SP9JZT\n" "SP9JZU\n" "SP9KAG\n" "SP9KDA\n" "SP9KRT\n" "SP9LAS\n" "SP9LDB\n" "SP9LDU\n" "SP9LJD\n" "SP9MAN\n" "SP9MDO\n" "SP9MDY\n" "SP9MZH\n" "SP9NH\n" "SP9NLI\n" "SP9NSV\n" "SP9NSV/7\n" "SP9NWN\n" "SP9ODM\n" "SP9ODM/8\n" "SP9ODY\n" "SP9OHL\n" "SP9OYB\n" "SP9PRO\n" "SP9PSJ\n" "SP9QJ\n" "SP9RHN\n" "SP9RI\n" "SP9RQH\n" "SP9RQJ\n" "SP9RTL\n" "SP9SDR\n" "SP9TTT\n" "SP9UPH\n" "SP9VJ\n" "SP9VRY\n" "SP9W\n" "SP9WAN\n" "SP9WTN\n" "SP9WZS\n" "SP9XCJ\n" "SQ1BHH\n" "SQ1DWR\n" "SQ1DWS\n" "SQ1EIA\n" "SQ1EIX\n" "SQ1EUG\n" "SQ1FYX\n" "SQ1K\n" "SQ1MNF\n" "SQ1NDW\n" "SQ1OD\n" "SQ1WO\n" "SQ2AJI\n" "SQ2BXI\n" "SQ2DYF\n" "SQ2EAN\n" "SQ2EEQ\n" "SQ2FRF\n" "SQ2GXO\n" "SQ2HL\n" "SQ2HNA\n" "SQ2LYF\n" "SQ2LYH\n" "SQ2LYS\n" "SQ2NNN\n" "SQ2RGB\n" "SQ2SAT\n" "SQ2TOM\n" "SQ2XC\n" "SQ3A\n" "SQ3AUA\n" "SQ3BDQ\n" "SQ3HMM\n" "SQ3HXH\n" "SQ3JVW\n" "SQ3LMY\n" "SQ3OGP\n" "SQ3OGZ\n" "SQ3RJP\n" "SQ3RX\n" "SQ3VAJ\n" "SQ3VV\n" "SQ3WW\n" "SQ4CTS\n" "SQ4FXM\n" "SQ4G\n" "SQ4HRN\n" "SQ4INW\n" "SQ4IOH\n" "SQ4MP\n" "SQ4OLP\n" "SQ5ALL\n" "SQ5ARG\n" "SQ5BUO\n" "SQ5EBM\n" "SQ5FWR\n" "SQ5GVY\n" "SQ5IZX\n" "SQ5JUP\n" "SQ5M\n" "SQ5NAE\n" "SQ5NPF\n" "SQ5NPX\n" "SQ5STS\n" "SQ5TA\n" "SQ5WAA\n" "SQ6ADL\n" "SQ6FHP\n" "SQ6ILC\n" "SQ6IYS\n" "SQ6LJA\n" "SQ6LJV\n" "SQ6MIH\n" "SQ6MS\n" "SQ6NDJ\n" "SQ6NES\n" "SQ6NTE\n" "SQ6NTM\n" "SQ6ODD\n" "SQ6OR\n" "SQ6OXC\n" "SQ6R\n" "SQ7B\n" "SQ7FPD\n" "SQ7HJZ\n" "SQ7IL\n" "SQ7MHN\n" "SQ7MPJ\n" "SQ7MZH\n" "SQ7NHT\n" "SQ7OTB\n" "SQ7VO\n" "SQ80UM\n" "SQ8GBG\n" "SQ8HNB\n" "SQ8IFG\n" "SQ8J\n" "SQ8JLA\n" "SQ8JLN\n" "SQ8JLU\n" "SQ8JMC\n" "SQ8JX\n" "SQ8LEC\n" "SQ8LSB\n" "SQ8LSC\n" "SQ8MHH\n" "SQ8TWP\n" "SQ9ANS\n" "SQ9AOR\n" "SQ9BDN\n" "SQ9C\n" "SQ9CAQ\n" "SQ9CND\n" "SQ9CWO\n" "SQ9DXN\n" "SQ9DXT\n" "SQ9E\n" "SQ9FCH\n" "SQ9FMU\n" "SQ9HQ\n" "SQ9HZM\n" "SQ9I\n" "SQ9IAJ\n" "SQ9IAU\n" "SQ9IDE\n" "SQ9IWT\n" "SQ9JKS\n" "SQ9JYK\n" "SQ9LOJ\n" "SQ9LOM\n" "SQ9LR\n" "SQ9MEE\n" "SQ9MEI\n" "SQ9MZ\n" "SQ9NIN\n" "SQ9NIS\n" "SQ9NKK\n" "SQ9NRY\n" "SQ9SX\n" "SQ9UM\n" "SQ9UM/6\n" "ST2AR\n" "ST2KSS\n" "ST2M\n" "ST2NH\n" "SU1KM\n" "SU1SK\n" "SU9HP\n" "SV0GU\n" "SV0XBA\n" "SV0XBM/9\n" "SV0XBN/9\n" "SV1/SV4LBA\n" "SV1ACK\n" "SV1AER\n" "SV1AIN\n" "SV1AIP\n" "SV1AOW\n" "SV1AVD\n" "SV1BDO/3\n" "SV1BGR\n" "SV1BJW\n" "SV1BJW/6\n" "SV1BTK\n" "SV1BUU\n" "SV1CAL\n" "SV1CEI\n" "SV1CIV\n" "SV1CQN\n" "SV1DOI\n" "SV1DOJ\n" "SV1DPI\n" "SV1DPP\n" "SV1DVZ\n" "SV1EBV\n" "SV1EEM\n" "SV1EML\n" "SV1EMM\n" "SV1ENG\n" "SV1ENM\n" "SV1ENV\n" "SV1EQU\n" "SV1EX\n" "SV1FJN\n" "SV1GRD\n" "SV1GRE\n" "SV1GSX\n" "SV1GYG\n" "SV1HEM\n" "SV1HER\n" "SV1HKD\n" "SV1IW\n" "SV1JA\n" "SV1JFT\n" "SV1JG\n" "SV1JGX\n" "SV1JMO\n" "SV1JRR\n" "SV1JSN\n" "SV1JSQ\n" "SV1KU\n" "SV1LK\n" "SV1LV\n" "SV1MF\n" "SV1MO\n" "SV1NJA\n" "SV1NK\n" "SV1NPC\n" "SV1OH\n" "SV1OZ\n" "SV1PL\n" "SV1PS\n" "SV1QN\n" "SV1QT\n" "SV1RK\n" "SV1UG\n" "SV1UT\n" "SV1VS\n" "SV1XV\n" "SV2AVP\n" "SV2BFL\n" "SV2BFN\n" "SV2BOH\n" "SV2CLJ/8\n" "SV2CUI\n" "SV2CWV\n" "SV2CXI\n" "SV2DCD\n" "SV2DFA\n" "SV2DGJ\n" "SV2FLQ\n" "SV2FWV\n" "SV2GJV\n" "SV2GNC\n" "SV2HRT\n" "SV2HWR\n" "SV2HXV\n" "SV2JAO\n" "SV2KBB\n" "SV2KBE\n" "SV2KBS\n" "SV2YC\n" "SV3/YO7CKQ/P\n" "SV3AQM\n" "SV3AQR\n" "SV3AWG\n" "SV3BEF\n" "SV3BSF\n" "SV3CYL\n" "SV3DCX\n" "SV3FUP\n" "SV3GKU\n" "SV3GLL\n" "SV3HHS\n" "SV3IBF\n" "SV3ICL\n" "SV3IDM\n" "SV3MSE\n" "SV3RF\n" "SV4AAQ\n" "SV4AFY\n" "SV4FFL\n" "SV4IMJ\n" "SV4IMJ/1\n" "SV5BYR\n" "SV5DKL\n" "SV5RW\n" "SV7BAY\n" "SV7BOD\n" "SV7BOT\n" "SV7CFJ\n" "SV7CUD\n" "SV7HVI\n" "SV7LNK\n" "SV7LNX\n" "SV7LOS\n" "SV7LPL\n" "SV7LWV/2\n" "SV7NHN\n" "SV8CRI\n" "SV8CS\n" "SV8CYR\n" "SV8DTD\n" "SV8EIU\n" "SV8EUV\n" "SV8FMY\n" "SV8KOM\n" "SV8RX\n" "SV8UM\n" "SV9AHZ\n" "SV9BAI\n" "SV9CJO\n" "SV9COL\n" "SV9CVY\n" "SV9DJO\n" "SV9DRU\n" "SV9GPV\n" "SV9MBH\n" "SV9OFS\n" "SX0HQ\n" "SX1L\n" "SX2CM\n" "SX5P\n" "SX5R\n" "SX8WT\n" "SX9JZ\n" "SY1RY\n" "SY2O\n" "SY2V\n" "SY43D\n" "SY7ISDE\n" "SY9A\n" "SY9M\n" "SZ1A\n" "SZ1SV\n" "SZ1TEIA\n" "SZ3P\n" "SZ6P\n" "SZ7SER\n" "T27A\n" "T32CXX\n" "T33ZZ\n" "T40C\n" "T42T\n" "T46A\n" "T46G\n" "T48K\n" "T6AG\n" "T70A\n" "T77C\n" "T77GO\n" "T77NC\n" "T77NM\n" "T77Q\n" "T88CI\n" "T88CJ\n" "T88YB\n" "T8CW\n" "T8IC\n" "TA0U\n" "TA1AN\n" "TA1BM\n" "TA1C/2\n" "TA1CM\n" "TA1CQ\n" "TA1CX\n" "TA1DX\n" "TA1ED\n" "TA1FA\n" "TA1HZ\n" "TA1KC\n" "TA1TR\n" "TA1ZK\n" "TA2AL\n" "TA2DS\n" "TA2EY\n" "TA2KK\n" "TA2RC\n" "TA2VO\n" "TA2ZAF\n" "TA2ZF\n" "TA3AX\n" "TA3BN\n" "TA3D\n" "TA3DJ\n" "TA3GO\n" "TA3J\n" "TA3KZ\n" "TA4AU\n" "TA4ZA\n" "TA7AO\n" "TA7EB\n" "TA7KA\n" "TC1DX\n" "TC2010CCE\n" "TC3EC\n" "TC4X\n" "TC7HQ\n" "TC7KA\n" "TC7M\n" "TC85TC\n" "TE1W\n" "TE2M\n" "TF1AM\n" "TF1CW\n" "TF2JB\n" "TF2WIN\n" "TF3AM\n" "TF3AO\n" "TF3CW\n" "TF3DC\n" "TF3DX\n" "TF3G\n" "TF3GB\n" "TF3GC\n" "TF3HP\n" "TF3HQ\n" "TF3IG\n" "TF3IGN\n" "TF3IRA\n" "TF3KX\n" "TF3KX/1\n" "TF3PPN\n" "TF3SG\n" "TF3US\n" "TF3VS\n" "TF3VS/P\n" "TF3W\n" "TF3Y\n" "TF3ZA\n" "TF4M\n" "TF4X\n" "TF6IF\n" "TF8GX\n" "TF8SM\n" "TG0AA\n" "TG9/IV3IYH\n" "TG9ADQ\n" "TG9AJR\n" "TG9ANF\n" "TG9AXF\n" "TG9CT\n" "TG9IRP\n" "TG9NX\n" "TG9SM\n" "TI0RC\n" "TI1R\n" "TI2CC\n" "TI2CLX\n" "TI2GBY\n" "TI2JCY\n" "TI2KAC\n" "TI2KWN\n" "TI2WMP\n" "TI4CF\n" "TI5/NP3D\n" "TI5/WW4LL\n" "TI5A\n" "TI5N\n" "TI7DBS\n" "TI8II\n" "TI8M\n" "TJ3SL\n" "TK5A\n" "TK5EP\n" "TK5IH\n" "TK5IX\n" "TK5MH\n" "TK5NJ\n" "TK5XN\n" "TK7P\n" "TK9E\n" "TK9R\n" "TL0A\n" "TM0C\n" "TM0HQ\n" "TM0R\n" "TM0T\n" "TM0TAN\n" "TM1C\n" "TM1O\n" "TM1W\n" "TM2B\n" "TM2MW\n" "TM2S\n" "TM2T\n" "TM2Y\n" "TM33E\n" "TM3R\n" "TM3S\n" "TM3T\n" "TM4D\n" "TM4P\n" "TM4Q\n" "TM4W\n" "TM57M\n" "TM5C\n" "TM5HV\n" "TM5KD\n" "TM5W\n" "TM6M\n" "TM6X\n" "TM77M\n" "TM7C\n" "TM7F\n" "TM7M\n" "TM7T\n" "TM7XX\n" "TM8ARP\n" "TM9FL\n" "TM9R\n" "TN5SN\n" "TO2HI\n" "TO2T\n" "TO3R\n" "TO4D\n" "TO4X\n" "TO5A\n" "TO5DX\n" "TO5T\n" "TO5X\n" "TO7A\n" "TO8Z\n" "TR8CA\n" "TS9A\n" "TT8JT\n" "TU2CI\n" "TX1B\n" "TX3A\n" "TY1MS\n" "U1BA\n" "U1BB\n" "U1BD\n" "U3DI\n" "U4MIR\n" "U5EX\n" "U5MZ\n" "UA0AAS\n" "UA0ABB\n" "UA0ABK\n" "UA0ACG\n" "UA0ADX\n" "UA0AGI\n" "UA0AKY\n" "UA0ANW\n" "UA0APV\n" "UA0AV\n" "UA0AYA\n" "UA0AZ\n" "UA0BA\n" "UA0CA\n" "UA0CB\n" "UA0CDC\n" "UA0CM\n" "UA0CMG\n" "UA0CNX\n" "UA0CS\n" "UA0CW\n" "UA0DAM\n" "UA0DC\n" "UA0FAI\n" "UA0FDX\n" "UA0FM\n" "UA0IBX\n" "UA0IDZ\n" "UA0IT\n" "UA0JF\n" "UA0JM\n" "UA0LCZ\n" "UA0LD\n" "UA0LDW\n" "UA0LDY\n" "UA0LH\n" "UA0LKD\n" "UA0LMO\n" "UA0LNO\n" "UA0LS\n" "UA0MF\n" "UA0NL\n" "UA0OA\n" "UA0OD\n" "UA0QBR\n" "UA0SBQ\n" "UA0SC\n" "UA0SDX\n" "UA0SE\n" "UA0SEP\n" "UA0SIK/0\n" "UA0SJ\n" "UA0SOX\n" "UA0SP\n" "UA0SR\n" "UA0SW\n" "UA0SWA\n" "UA0UV\n" "UA0VF\n" "UA0WAA\n" "UA0WF\n" "UA0WL\n" "UA0WW\n" "UA0YAY\n" "UA0YM\n" "UA0ZAL\n" "UA0ZAM\n" "UA0ZC\n" "UA0ZEO\n" "UA0ZS\n" "UA0ZV\n" "UA1AAF\n" "UA1AAR\n" "UA1AAU\n" "UA1ABO\n" "UA1ACC\n" "UA1ACG\n" "UA1ADZ\n" "UA1AFT\n" "UA1AFZ\n" "UA1AIK/1\n" "UA1AJ\n" "UA1AJW\n" "UA1AKE\n" "UA1AKJ\n" "UA1ANA\n" "UA1AQA\n" "UA1ASB\n" "UA1AUW\n" "UA1CAK\n" "UA1CE\n" "UA1CEC\n" "UA1CEG\n" "UA1CEI\n" "UA1CGF\n" "UA1CHJ\n" "UA1CJX\n" "UA1CKC\n" "UA1CT\n" "UA1CUR\n" "UA1HY\n" "UA1MU\n" "UA1NA\n" "UA1NFA\n" "UA1OAM\n" "UA1ODM\n" "UA1OEX\n" "UA1OIZ\n" "UA1OJL\n" "UA1OM\n" "UA1OMS\n" "UA1OMZ\n" "UA1OOX\n" "UA1ORK\n" "UA1ORL\n" "UA1ORT\n" "UA1QCE\n" "UA1QM\n" "UA1QV\n" "UA1QW\n" "UA1RG\n" "UA1TAN\n" "UA1TGQ\n" "UA1WA\n" "UA1WBV\n" "UA1WCF\n" "UA1WDG\n" "UA1WDX\n" "UA1WGV\n" ; const char txt_master5[65523] = "UA1ZCX\n" "UA1ZZ\n" "UA2AB\n" "UA2CZ\n" "UA2FBQ\n" "UA2FCB\n" "UA2FCT\n" "UA2FDM\n" "UA2FEK\n" "UA2FF\n" "UA2FFW\n" "UA2FFX/1\n" "UA2FGY\n" "UA2FHZ\n" "UA2FL\n" "UA2FT\n" "UA2FW\n" "UA2FZ\n" "UA3A/1\n" "UA3AAP\n" "UA3AB\n" "UA3ABJ\n" "UA3ACL\n" "UA3ADN\n" "UA3AFJ\n" "UA3AGU\n" "UA3AGW\n" "UA3AHA\n" "UA3AIF\n" "UA3AIU\n" "UA3AKI\n" "UA3AKO\n" "UA3ALS\n" "UA3AMZ\n" "UA3AO\n" "UA3AP\n" "UA3AQB\n" "UA3ASZ\n" "UA3AWA\n" "UA3BL\n" "UA3BM\n" "UA3BS\n" "UA3BX\n" "UA3BZ\n" "UA3CS\n" "UA3DA\n" "UA3DAM\n" "UA3DCE\n" "UA3DCI\n" "UA3DCM\n" "UA3DCU\n" "UA3DCW\n" "UA3DCZ\n" "UA3DDA\n" "UA3DFM\n" "UA3DFR\n" "UA3DFV\n" "UA3DGA\n" "UA3DJC\n" "UA3DK\n" "UA3DKN\n" "UA3DKT\n" "UA3DLD\n" "UA3DLL\n" "UA3DOM\n" "UA3DPM\n" "UA3DQK\n" "UA3DSS\n" "UA3DTS\n" "UA3DTT\n" "UA3DUJ\n" "UA3DUS\n" "UA3DUZ\n" "UA3DW\n" "UA3EAA\n" "UA3EAY\n" "UA3ECJ\n" "UA3EDQ\n" "UA3EKG\n" "UA3ERD\n" "UA3EUW\n" "UA3EVG\n" "UA3FDX\n" "UA3FO\n" "UA3FX\n" "UA3GAF\n" "UA3GBI\n" "UA3GH\n" "UA3GIE\n" "UA3GM\n" "UA3GTA\n" "UA3GTG\n" "UA3GVT\n" "UA3GX\n" "UA3GZ\n" "UA3HM\n" "UA3IAH\n" "UA3ICF\n" "UA3ICK\n" "UA3ICN\n" "UA3KA\n" "UA3KM\n" "UA3KW\n" "UA3LAR\n" "UA3LDU\n" "UA3LEO\n" "UA3LHL\n" "UA3LIA\n" "UA3LID\n" "UA3LIZ\n" "UA3LMR\n" "UA3LMR/3\n" "UA3LNM\n" "UA3LPF\n" "UA3LQQ\n" "UA3LQX\n" "UA3LTQ\n" "UA3MEG\n" "UA3MEJ\n" "UA3MHG\n" "UA3MIF\n" "UA3MKT\n" "UA3MNB\n" "UA3MOC\n" "UA3MOM\n" "UA3MSS\n" "UA3OQ\n" "UA3PAB\n" "UA3PAY\n" "UA3PB\n" "UA3PCP\n" "UA3PF\n" "UA3PM\n" "UA3PNO\n" "UA3PP\n" "UA3PPP\n" "UA3PT\n" "UA3PTW\n" "UA3PW\n" "UA3QAM\n" "UA3QBL\n" "UA3QCB\n" "UA3QDF\n" "UA3QFU\n" "UA3QFY\n" "UA3QG\n" "UA3QGT\n" "UA3QJJ\n" "UA3QKA\n" "UA3QLC\n" "UA3QLQ\n" "UA3QNS\n" "UA3QOS\n" "UA3QPA\n" "UA3QQ\n" "UA3QR\n" "UA3QU\n" "UA3QUO\n" "UA3QUP\n" "UA3QY\n" "UA3R\n" "UA3RAG\n" "UA3RAI\n" "UA3RAR\n" "UA3RAW\n" "UA3RC\n" "UA3RE\n" "UA3RJH\n" "UA3RLT\n" "UA3RN\n" "UA3RO\n" "UA3RW\n" "UA3SAO\n" "UA3SAQ\n" "UA3SBW\n" "UA3SKV\n" "UA3TAO\n" "UA3TCJ\n" "UA3TN\n" "UA3TT\n" "UA3TW\n" "UA3UAD\n" "UA3UBT\n" "UA3UCD\n" "UA3UDE\n" "UA3UHZ\n" "UA3UJP\n" "UA3UNP\n" "UA3URF\n" "UA3VFS\n" "UA3VJV\n" "UA3VLO\n" "UA3VQL\n" "UA3VVB\n" "UA3WCN\n" "UA3WHK\n" "UA3WT\n" "UA3XAC\n" "UA3XAG\n" "UA3XGM\n" "UA3YAA\n" "UA3YCX\n" "UA3YCZ\n" "UA3YDH\n" "UA3YFL\n" "UA3YQL\n" "UA3YY\n" "UA3ZJG\n" "UA4AAC\n" "UA4AGO\n" "UA4ALI\n" "UA4AMM\n" "UA4AMT\n" "UA4AN\n" "UA4ANZ\n" "UA4AP\n" "UA4AQL\n" "UA4ASE\n" "UA4AY\n" "UA4AZ\n" "UA4CBJ\n" "UA4CC\n" "UA4CCG\n" "UA4CDL\n" "UA4CGR\n" "UA4CIF\n" "UA4CK\n" "UA4CM\n" "UA4CNJ\n" "UA4CNZ\n" "UA4CR\n" "UA4CTE\n" "UA4FBG\n" "UA4FCO\n" "UA4FDL\n" "UA4FEN\n" "UA4FER\n" "UA4FHW\n" "UA4FJ\n" "UA4FRJ\n" "UA4FRL\n" "UA4FTA\n" "UA4FUW\n" "UA4HAM\n" "UA4HAU\n" "UA4HBW\n" "UA4HEJ\n" "UA4HIP\n" "UA4HJ\n" "UA4HOX\n" "UA4HRZ\n" "UA4HUR\n" "UA4IW\n" "UA4LA\n" "UA4LBK\n" "UA4LCH\n" "UA4LFK\n" "UA4LL\n" "UA4LM\n" "UA4LRN\n" "UA4LS\n" "UA4LU\n" "UA4LU/3\n" "UA4LW\n" "UA4LX\n" "UA4LY\n" "UA4M\n" "UA4NBA\n" "UA4NC\n" "UA4NCI\n" "UA4NEP\n" "UA4NF\n" "UA4NU\n" "UA4NW\n" "UA4NX\n" "UA4PAN\n" "UA4PAQ\n" "UA4PAY\n" "UA4PC\n" "UA4PCA\n" "UA4PCF\n" "UA4PCM\n" "UA4PF\n" "UA4PI\n" "UA4PK\n" "UA4PKN\n" "UA4PN\n" "UA4PNT\n" "UA4PNW\n" "UA4PO\n" "UA4PR\n" "UA4PT\n" "UA4PWR\n" "UA4QK\n" "UA4RF\n" "UA4RL\n" "UA4RW\n" "UA4RZ\n" "UA4SAW\n" "UA4SBZ\n" "UA4SJK\n" "UA4SKW\n" "UA4SN\n" "UA4UBW\n" "UA4UT\n" "UA4WAG\n" "UA4WAU\n" "UA4WAV\n" "UA4WAW\n" "UA4WCM\n" "UA4WI\n" "UA4WJ\n" "UA4WK\n" "UA4WKK\n" "UA4WKW\n" "UA4WL\n" "UA4WLI\n" "UA4WW\n" "UA4YA\n" "UA4YJJ\n" "UA6AA\n" "UA6AAY\n" "UA6ACA\n" "UA6AES\n" "UA6AF\n" "UA6AGE\n" "UA6AGK\n" "UA6AH\n" "UA6AIR\n" "UA6AIW\n" "UA6AK\n" "UA6AKD\n" "UA6ARR\n" "UA6AX\n" "UA6BFE\n" "UA6BJY\n" "UA6BJZ\n" "UA6BQ\n" "UA6BQN\n" "UA6BRD\n" "UA6BTV\n" "UA6CC\n" "UA6CE\n" "UA6CFD\n" "UA6CQ\n" "UA6CW\n" "UA6DX\n" "UA6EED\n" "UA6EHF\n" "UA6FF\n" "UA6FJ\n" "UA6FQ\n" "UA6FW\n" "UA6FZ\n" "UA6GE\n" "UA6GF\n" "UA6GG\n" "UA6GM\n" "UA6GO\n" "UA6GP\n" "UA6GR\n" "UA6GS\n" "UA6GU\n" "UA6GX\n" "UA6HFI\n" "UA6HHE\n" "UA6HLO\n" "UA6HLP\n" "UA6HMM\n" "UA6HO\n" "UA6HRX\n" "UA6HZ\n" "UA6IC\n" "UA6JCC\n" "UA6JD\n" "UA6JFG\n" "UA6JGG\n" "UA6JQ\n" "UA6LAH\n" "UA6LCJ\n" "UA6LCN\n" "UA6LDD\n" "UA6LF\n" "UA6LFQ\n" "UA6LJ\n" "UA6LJU\n" "UA6LLE\n" "UA6LN\n" "UA6LP\n" "UA6LPN\n" "UA6LPY\n" "UA6LTI\n" "UA6LUQ\n" "UA6LV\n" "UA6MA\n" "UA6MF\n" "UA6MM\n" "UA6NZ\n" "UA6PF/3\n" "UA6UDV\n" "UA6UEK\n" "UA6XDX\n" "UA6YH\n" "UA6YI\n" "UA6YIU\n" "UA6YN\n" "UA6YW\n" "UA7F\n" "UA7G\n" "UA8AA/5\n" "UA9AB\n" "UA9ACJ\n" "UA9ADW\n" "UA9AFS\n" "UA9AGX\n" "UA9AJ\n" "UA9AM\n" "UA9AOL\n" "UA9APA\n" "UA9AX\n" "UA9AYA\n" "UA9AZ\n" "UA9BA\n" "UA9BS\n" "UA9BX\n" "UA9BZ\n" "UA9CAX\n" "UA9CBM\n" "UA9CBO\n" "UA9CBR\n" "UA9CC\n" "UA9CCL\n" "UA9CDC\n" "UA9CDJ\n" "UA9CDV\n" "UA9CES\n" "UA9CEW\n" "UA9CGL\n" "UA9CHL\n" "UA9CIM\n" "UA9CL\n" "UA9CLB\n" "UA9CM\n" "UA9CMQ\n" "UA9CR\n" "UA9CSA\n" "UA9CTT\n" "UA9CUA\n" "UA9CVQ\n" "UA9DD\n" "UA9DR\n" "UA9FAR\n" "UA9FEG\n" "UA9FEX\n" "UA9FFV\n" "UA9FGJ\n" "UA9FGR\n" "UA9FKH\n" "UA9FM\n" "UA9FPQ\n" "UA9FQS\n" "UA9HN\n" "UA9HR\n" "UA9JDP\n" "UA9JFA\n" "UA9JFM/3\n" "UA9JFR\n" "UA9JJG\n" "UA9JKM\n" "UA9JLL\n" "UA9JMB\n" "UA9JSN\n" "UA9KAA\n" "UA9KAA/9\n" "UA9KB\n" "UA9KGG\n" "UA9KGH/1\n" "UA9KL\n" "UA9KW\n" "UA9KZ\n" "UA9LAO\n" "UA9LBQ\n" "UA9LP\n" "UA9LR\n" "UA9LT\n" "UA9MA\n" "UA9MC\n" "UA9MD\n" "UA9MDP\n" "UA9MFB\n" "UA9MGC\n" "UA9MHN\n" "UA9MI\n" "UA9MKF\n" "UA9MLT\n" "UA9MP\n" "UA9MR\n" "UA9MRX/3\n" "UA9MW\n" "UA9ND\n" "UA9NN\n" "UA9OA\n" "UA9OAI\n" "UA9OC\n" "UA9ODE\n" "UA9ODU\n" "UA9OG\n" "UA9OGF\n" "UA9OKM\n" "UA9OL\n" "UA9OLO\n" "UA9OMT\n" "UA9ONJ\n" "UA9ONJ/P\n" "UA9OQA\n" "UA9OQJ\n" "UA9OR\n" "UA9OSB\n" "UA9OV\n" "UA9OW\n" "UA9OZ\n" "UA9PC\n" "UA9PM\n" "UA9QA\n" "UA9QAE\n" "UA9QCP/3\n" "UA9QCQ\n" "UA9QCZ\n" "UA9QF\n" "UA9QG\n" "UA9QM\n" "UA9QQ\n" "UA9QT\n" "UA9SAW\n" "UA9SC\n" "UA9SG\n" "UA9SJR\n" "UA9SP\n" "UA9SUX\n" "UA9TF\n" "UA9TQ\n" "UA9TT\n" "UA9TW\n" "UA9TZ\n" "UA9UBL\n" "UA9UCK\n" "UA9UDX\n" "UA9UFL\n" "UA9UHN\n" "UA9UNG\n" "UA9UOI\n" "UA9UPG\n" "UA9UR\n" "UA9URF\n" "UA9UX\n" "UA9UZZ\n" "UA9WBX\n" "UA9WIK\n" "UA9WOB\n" "UA9WOU\n" "UA9WS\n" "UA9WTF\n" "UA9WZ\n" "UA9XBJ\n" "UA9XF\n" "UA9XHT/9\n" "UA9XK\n" "UA9XL\n" "UA9XLC\n" "UA9XMC\n" "UA9XS\n" "UA9XTL\n" "UA9XTN\n" "UA9XW\n" "UA9XZ\n" "UA9YAB\n" "UA9YAD\n" "UA9YBA\n" "UA9YE\n" "UA9YF\n" "UA9YJI\n" "UA9YTN\n" "UA9ZZ\n" "UD3D\n" "UE4CAC/P\n" "UE6LHT\n" "UE80MC\n" "UE80MD\n" "UE9CAP\n" "UE9WDA/6\n" "UF3CWR\n" "UI4I\n" "UI9I\n" "UK7AZ\n" "UK7F\n" "UK8AKK\n" "UK8AR\n" "UK8DAN\n" "UK8DT\n" "UK8OM\n" "UK8OWW\n" "UK8UC\n" "UK8UWG\n" "UK9AA\n" "UN/RX9TL\n" "UN0C\n" "UN0L\n" "UN1F\n" "UN1HQ\n" "UN1L\n" "UN1O\n" "UN2C\n" "UN2E\n" "UN3GX\n" "UN3M\n" "UN4L\n" "UN4PD\n" "UN4PG\n" "UN5C\n" "UN5J\n" "UN5P\n" "UN6G\n" "UN6GD\n" "UN6GK\n" "UN6LN\n" "UN6P\n" "UN6T\n" "UN7AB\n" "UN7AL\n" "UN7AM\n" "UN7BN\n" "UN7CAD\n" "UN7CH\n" "UN7CM\n" "UN7CN\n" "UN7ECA\n" "UN7EV\n" "UN7EW\n" "UN7EX\n" "UN7FDP\n" "UN7FW\n" "UN7GCE\n" "UN7IT\n" "UN7JX\n" "UN7LAN\n" "UN7LZ\n" "UN7MMM\n" "UN7P\n" "UN7PBY\n" "UN7PL\n" "UN7PV\n" "UN7QF\n" "UN7RL\n" "UN7TDB\n" "UN7TO\n" "UN7TW\n" "UN7TX\n" "UN8CB\n" "UN8FM\n" "UN8GA\n" "UN8GU\n" "UN8GV\n" "UN8L\n" "UN8LF\n" "UN8LWF\n" "UN8P\n" "UN8PIM\n" "UN8PT\n" "UN9GD\n" "UN9L\n" "UN9LU\n" "UN9PQ\n" "UO1P\n" "UO6P\n" "UP0G\n" "UP0L\n" "UP1G\n" "UP2F\n" "UP2L\n" "UP4L\n" "UP6P\n" "UP7A\n" "UP8A\n" "UP9L\n" "UQ70F\n" "UR0CB\n" "UR0EE\n" "UR0EG\n" "UR0EV\n" "UR0HQ\n" "UR0IM\n" "UR0IQ\n" "UR0MM\n" "UR0QX\n" "UR0VV\n" "UR0VX\n" "UR1HM\n" "UR1MI\n" "UR1MM\n" "UR1MN\n" "UR2ML\n" "UR2MM\n" "UR2MO\n" "UR2P\n" "UR2VA\n" "UR3AC\n" "UR3CKR\n" "UR3EO\n" "UR3GO\n" "UR3HC\n" "UR3IDD\n" "UR3IFD\n" "UR3IJI\n" "UR3IQO\n" "UR3LL\n" "UR3LPM\n" "UR3LTD\n" "UR3MM\n" "UR3PA\n" "UR3PDQ\n" "UR3PGW\n" "UR3QB\n" "UR3QCW\n" "UR3QM\n" "UR3QX\n" "UR3QXX\n" "UR3UX\n" "UR4CU\n" "UR4CWQ\n" "UR4EI\n" "UR4ES\n" "UR4EWT\n" "UR4EXF\n" "UR4EXS\n" "UR4FA\n" "UR4GU\n" "UR4IGP\n" "UR4IOR\n" "UR4IXM\n" "UR4IZ\n" "UR4LCB\n" "UR4LRG\n" "UR4LWC\n" "UR4MCK\n" "UR4MH\n" "UR4MKY\n" "UR4MS\n" "UR4MSF\n" "UR4MTJ\n" "UR4PWC\n" "UR4PWL\n" "UR4QQF\n" "UR4QRH\n" "UR4QX\n" "UR4U\n" "UR4UC\n" "UR4UDI\n" "UR4VWA\n" "UR4WG\n" "UR4WWT\n" "UR4Z\n" "UR4ZYD\n" "UR5AKU\n" "UR5ALU\n" "UR5AMK\n" "UR5AO\n" "UR5AS\n" "UR5AW\n" "UR5BO\n" "UR5CC\n" "UR5CSL\n" "UR5E\n" "UR5EAW\n" "UR5EDU\n" "UR5EFL\n" "UR5EIT\n" "UR5EJ\n" "UR5ELN\n" "UR5EPG\n" "UR5EPV\n" "UR5EQQ\n" "UR5ETN\n" "UR5EU\n" "UR5EUY\n" "UR5FBM\n" "UR5FCK\n" "UR5FCM\n" "UR5FEL\n" "UR5FEO\n" "UR5FS\n" "UR5GAW/A\n" "UR5GBW\n" "UR5HAC\n" "UR5IF\n" "UR5IFB\n" "UR5IFX\n" "UR5IHC\n" "UR5IHQ\n" "UR5II\n" "UR5IKN\n" "UR5IOK\n" "UR5IRM\n" "UR5KDX\n" "UR5KED\n" "UR5KHZ\n" "UR5LAK\n" "UR5LAM\n" "UR5LCV\n" "UR5LCZ\n" "UR5LF\n" "UR5LJD\n" "UR5LO\n" "UR5LY\n" "UR5MA\n" "UR5MAF\n" "UR5MBA\n" "UR5MBB\n" "UR5MD\n" "UR5MER\n" "UR5MF\n" "UR5MID\n" "UR5MM\n" "UR5MP\n" "UR5MQS\n" "UR5MW\n" "UR5MZ\n" "UR5NF\n" "UR5PG\n" "UR5QA\n" "UR5QU\n" "UR5QUM\n" "UR5RMD\n" "UR5RP\n" "UR5RZ\n" "UR5SFC\n" "UR5TGK\n" "UR5THM\n" "UR5TW\n" "UR5UBD\n" "UR5UBR\n" "UR5UC\n" "UR5UJ\n" "UR5UZ\n" "UR5VR\n" "UR5WCA\n" "UR5WCQ\n" "UR5WD\n" "UR5WDQ\n" "UR5WHQ\n" "UR5WHT\n" "UR5WMM\n" "UR5WX\n" "UR5XMM\n" "UR5ZMK\n" "UR5ZPV\n" "UR5ZSU\n" "UR5ZTH\n" "UR5ZVJ\n" "UR5ZVP\n" "UR6AJ\n" "UR6EO\n" "UR6F\n" "UR6GWZ\n" "UR6HCF\n" "UR6ID\n" "UR6IDX\n" "UR6IJ\n" "UR6IM\n" "UR6IMF\n" "UR6IS\n" "UR6LAF\n" "UR6MX\n" "UR6QA\n" "UR6QR\n" "UR6QS\n" "UR7CQ\n" "UR7CT\n" "UR7EC\n" "UR7EM\n" "UR7EP\n" "UR7EQ\n" "UR7EU\n" "UR7EW\n" "UR7EY\n" "UR7EZ\n" "UR7GG\n" "UR7GO\n" "UR7GW\n" "UR7HA\n" "UR7HCX\n" "UR7IKV\n" "UR7INK\n" "UR7IQJ\n" "UR7M\n" "UR7MA\n" "UR7MG\n" "UR7MZ\n" "UR7QC\n" "UR7QL\n" "UR7QM\n" "UR7R\n" "UR7TZ\n" "UR7UC\n" "UR7UD\n" "UR7UM\n" "UR7UT\n" "UR7VA\n" "UR7ZO\n" "UR8EQ\n" "UR8GM\n" "UR8GX\n" "UR8IDX\n" "UR8IF\n" "UR8IW\n" "UR8LV\n" "UR8MH\n" "UR8QQ\n" "UR8QR\n" "UR8RF\n" "UR9MB\n" "UR9MC\n" "UR9QQ\n" "US0CD\n" "US0GA\n" "US0GH\n" "US0HZ\n" "US0IJ\n" "US0IW\n" "US0KS\n" "US0KW\n" "US0LA\n" "US0LO\n" "US0LW\n" "US0MF\n" "US0MM\n" "US0MS\n" "US0NJ\n" "US0QG\n" "US0SY\n" "US0TA\n" "US0VA\n" "US0YA\n" "US0YW\n" "US0ZK\n" "US0ZZ\n" "US1GBH\n" "US1IT\n" "US1IV\n" "US1IW\n" "US1MM\n" "US1PM\n" "US1US\n" "US1UU\n" "US1UX\n" "US1VS\n" "US2IHS\n" "US2IR\n" "US2IW\n" "US2IZ\n" "US2LX\n" "US2MW\n" "US2WU\n" "US2YW\n" "US3IG\n" "US3IMZ\n" "US3IP\n" "US3IRX\n" "US3ITA\n" "US3IVN\n" "US3IZ\n" "US3LX\n" "US3QQ\n" "US3QW\n" "US3WD\n" "US4AS\n" "US4EG\n" "US4EX\n" "US4IDY\n" "US4IPC\n" "US4IPQ\n" "US4IQ\n" "US4IXT\n" "US4IYM\n" "US4L\n" "US4LGW\n" "US4LS\n" "US4MW\n" "US5CB\n" "US5CCO\n" "US5D\n" "US5DA\n" "US5E\n" "US5EEK\n" "US5ELM\n" "US5EVJ\n" "US5FA\n" "US5HI\n" "US5I\n" "US5IIM\n" "US5IND\n" "US5IQ\n" "US5ISV\n" "US5IVD\n" "US5LAE\n" "US5MPO\n" "US5MUW\n" "US5QRW\n" "US5UO\n" "US5VX\n" "US5WAM\n" "US5WCP\n" "US5WDT\n" "US5WE\n" "US5XD\n" "US5ZCW\n" "US6CQ\n" "US6EX\n" "US6IKF\n" "US6IKV\n" "US6IPD\n" "US6IQ\n" "US6IT\n" "US7AF\n" "US7IA\n" "US7IAU\n" "US7IB\n" "US7IGF\n" "US7IID\n" "US7IM\n" "US7IQZ\n" "US7IUF\n" "US7IVW\n" "US7IY\n" "US7LM\n" "US7ML\n" "US7MM\n" "US7QQ\n" "US7UX\n" "US7VL\n" "US7WW\n" "US8IB\n" "US8IBS\n" "US8ICA\n" "US8ICM\n" "US8IDX\n" "US8IM\n" "US8MX\n" "US8QQ\n" "US8UA\n" "US9PA\n" "UT/PA3BUD\n" "UT/RN3DAW\n" "UT0AZA\n" "UT0CK\n" "UT0EA\n" "UT0EL\n" "UT0EO\n" "UT0ET\n" "UT0IG\n" "UT0IL\n" "UT0IV\n" "UT0IW\n" "UT0L\n" "UT0MF\n" "UT0MG\n" "UT0NT\n" "UT0RM\n" "UT0U\n" "UT0VE\n" "UT0ZD\n" "UT1AA\n" "UT1AB\n" "UT1CC\n" "UT1CZ\n" "UT1DX\n" "UT1DZ\n" "UT1EA\n" "UT1HT\n" "UT1HZZ\n" "UT1IA\n" "UT1IF\n" "UT1IH\n" "UT1IK\n" "UT1IM\n" "UT1IR\n" "UT1PO\n" "UT1QL\n" "UT1S\n" "UT1UL\n" "UT1US\n" "UT1UW\n" "UT1UY\n" "UT1XX\n" "UT1YV\n" "UT2AA\n" "UT2AB\n" "UT2AU\n" "UT2EZ\n" "UT2FA\n" "UT2FF/A\n" "UT2HM\n" "UT2ID\n" "UT2IF\n" "UT2II\n" "UT2IO\n" "UT2IU\n" "UT2IV\n" "UT2IW\n" "UT2IY\n" "UT2LF\n" "UT2LU\n" "UT2LY\n" "UT2M\n" "UT2PL\n" "UT2PX\n" "UT2QQ\n" "UT2QT\n" "UT2RZ\n" "UT2UB\n" "UT2UN\n" "UT2UU\n" "UT2UZ\n" "UT2VU\n" "UT2XX\n" "UT3EG\n" "UT3EK\n" "UT3EV\n" "UT3EW\n" "UT3FM\n" "UT3HWW\n" "UT3I\n" "UT3IB\n" "UT3IJ\n" "UT3IK\n" "UT3IM\n" "UT3IW\n" "UT3IZ\n" "UT3L\n" "UT3MA\n" "UT3N\n" "UT3NA\n" "UT3NF\n" "UT3QN\n" "UT3QT\n" "UT3QU\n" "UT3RN\n" "UT3RS\n" "UT3SA\n" "UT3SO\n" "UT3UA\n" "UT3UV\n" "UT3UX\n" "UT3UY\n" "UT3UZ\n" "UT3WJ\n" "UT3WW\n" "UT3WX\n" "UT4CE\n" "UT4EK\n" "UT4EN\n" "UT4EO\n" "UT4EU\n" "UT4FJ\n" "UT4FM\n" "UT4HZ\n" "UT4IZ\n" "UT4MF\n" "UT4MW\n" "UT4MWA\n" "UT4NR\n" "UT4NW\n" "UT4NX\n" "UT4NY\n" "UT4NZ\n" "UT4PZ\n" "UT4Q\n" "UT4QV\n" "UT4UB\n" "UT4UBY\n" "UT4UF\n" "UT4UH\n" "UT4UO\n" "UT4UP\n" "UT4UQ\n" "UT4UW\n" "UT4VV\n" "UT4VW\n" "UT4WA\n" "UT4WT\n" "UT4XD\n" "UT4XU\n" "UT4ZG\n" "UT4ZX\n" "UT5A\n" "UT5AT\n" "UT5CB\n" "UT5CL\n" "UT5CY\n" "UT5DJ\n" "UT5DL\n" "UT5EA\n" "UT5ECZ\n" "UT5EL\n" "UT5EMU\n" "UT5EO\n" "UT5EPP\n" "UT5ERP\n" "UT5ERV\n" "UT5EUQ\n" "UT5HCW\n" "UT5HX\n" "UT5IA\n" "UT5ID\n" "UT5IF\n" "UT5IH\n" "UT5IM\n" "UT5IZ\n" "UT5IZO\n" "UT5JAJ\n" "UT5JCE\n" "UT5KL\n" "UT5KO\n" "UT5KTT\n" "UT5LO\n" "UT5MB\n" "UT5NWA\n" "UT5PH\n" "UT5PI\n" "UT5PQ\n" "UT5PW\n" "UT5PY\n" "UT5SA\n" "UT5SI\n" "UT5UA\n" "UT5UCP\n" "UT5UFT\n" "UT5UGR\n" "UT5UGS\n" "UT5UGW\n" "UT5UIA\n" "UT5UJ\n" "UT5UKA\n" "UT5UKY\n" "UT5ULB\n" "UT5ULX\n" "UT5UMY\n" "UT5UN\n" "UT5UNZ\n" "UT5UPN\n" "UT5UQN\n" "UT5UQV\n" "UT5URW\n" "UT5US\n" "UT5UT\n" "UT5UUV\n" "UT5UY\n" "UT5VX\n" "UT5XM\n" "UT5ZA\n" "UT5ZY\n" "UT6EC\n" "UT6EE\n" "UT6IS\n" "UT6LX\n" "UT7AXA\n" "UT7CH\n" "UT7CL\n" "UT7CR\n" "UT7DK\n" "UT7E\n" "UT7EE\n" "UT7EF\n" "UT7EG\n" "UT7EI\n" "UT7EJ\n" "UT7EM\n" "UT7EN\n" "UT7EV\n" "UT7EY\n" "UT7EZ\n" "UT7EZZ\n" "UT7FO\n" "UT7FP\n" "UT7HM\n" "UT7I\n" "UT7IA\n" "UT7IL\n" "UT7L\n" "UT7LA\n" "UT7LD\n" "UT7LM\n" "UT7LW\n" "UT7MA\n" "UT7MC\n" "UT7MD\n" "UT7MR\n" "UT7MW\n" "UT7ND\n" "UT7NF\n" "UT7NT\n" "UT7NW\n" "UT7NY\n" "UT7QB\n" "UT7QF\n" "UT7QL\n" "UT7TA\n" "UT7U\n" "UT7UJ\n" "UT7UT\n" "UT7UV\n" "UT7UW\n" "UT7UZ\n" "UT7VR\n" "UT7WZ\n" "UT7WZA\n" "UT7XX\n" "UT7Y\n" "UT7ZB\n" "UT8AL\n" "UT8AS\n" "UT8EL\n" "UT8EU\n" "UT8IA\n" "UT8IM\n" "UT8IO\n" "UT8IT\n" "UT8IV\n" "UT8L\n" "UT8LO\n" "UT8NT\n" "UT8QQ\n" "UT8RN\n" "UT8SQ\n" "UT9EL\n" "UT9FJ\n" "UT9IR\n" "UT9NA\n" "UU0A\n" "UU0JC\n" "UU0JM\n" "UU1AZ\n" "UU1CC\n" "UU1CW\n" "UU1DX\n" "UU1JE\n" "UU1K\n" "UU2AA\n" "UU2CW\n" "UU2J\n" "UU2JA\n" "UU2JG\n" "UU2JQ\n" "UU3JC\n" "UU3JX\n" "UU3W\n" "UU4J\n" "UU4JC\n" "UU4JDD\n" "UU4JGR\n" "UU4JMG\n" "UU4JO\n" "UU4JQE\n" "UU4JWA\n" "UU4JWC\n" "UU4JXI\n" "UU4JXM\n" "UU5A\n" "UU5AB\n" "UU5AF\n" "UU5AI\n" "UU5JAQ\n" "UU5JBO\n" "UU5JFP\n" "UU5JQV\n" "UU5JS\n" "UU5JZ\n" "UU5JZA\n" "UU5WW\n" "UU6JF\n" "UU6JJ\n" "UU7J\n" "UU7JD\n" "UU7JF\n" "UU7JM\n" "UU7JN\n" "UU7JR\n" "UU7JX\n" "UU8JK\n" "UU8JM\n" "UU8JY\n" "UU9CI\n" "UU9CW\n" "UU9JK\n" "UU9JQ\n" "UU9JR\n" "UV1GW\n" "UV2L\n" "UV3QF\n" "UV3RT\n" "UV5EEO\n" "UV5ERY\n" "UV5QAV\n" "UV5QQ\n" "UV5QR\n" "UV5U\n" "UV7QA\n" "UV8M\n" "UW0K\n" "UW0L\n" "UW1G\n" "UW1GZ\n" "UW1I\n" "UW1M\n" "UW1WU\n" "UW2F\n" "UW2I\n" "UW2M\n" "UW2N\n" "UW2Q\n" "UW2ZM\n" "UW3E\n" "UW3M\n" "UW3U\n" "UW4E\n" "UW4SU\n" "UW5M\n" "UW5Q\n" "UW5SW\n" "UW5U\n" "UW5W\n" "UW5ZM\n" "UW7CF\n" "UW7CN\n" "UW7F\n" "UW7LL\n" "UW7M\n" "UW7RV\n" "UW8I\n" "UW8M\n" "UW8SM\n" "UX0BB\n" "UX0FF\n" "UX0FY\n" "UX0HO\n" "UX0IK\n" "UX0IY\n" "UX0LL\n" "UX0LL/A\n" "UX0SX\n" "UX0UN\n" "UX0UW\n" "UX0ZL\n" "UX1AA\n" "UX1BZ\n" "UX1CW\n" "UX1HW\n" "UX1IB\n" "UX1IL\n" "UX1IM\n" "UX1MH\n" "UX1QQ\n" "UX1UF\n" "UX1UX\n" "UX2HB\n" "UX2IJ\n" "UX2IO\n" "UX2IQ\n" "UX2KA\n" "UX2MF\n" "UX2MK\n" "UX2QA\n" "UX2SB\n" "UX2X\n" "UX35A\n" "UX3HA\n" "UX3HX\n" "UX3IA\n" "UX3IO\n" "UX3IT\n" "UX3IV\n" "UX3IW\n" "UX3MF\n" "UX3MX\n" "UX3MZ\n" "UX3UN\n" "UX3ZW\n" "UX4E\n" "UX4FC\n" "UX4LA\n" "UX4U\n" "UX4UM\n" "UX5D\n" "UX5I\n" "UX5IO\n" "UX5IZ\n" "UX5MZ\n" "UX5NQ\n" "UX5OF\n" "UX5TQ\n" "UX5UO\n" "UX5VK\n" "UX6F\n" "UX6IA\n" "UX6IB\n" "UX6IR\n" "UX6VA\n" "UX7CQ\n" "UX7E\n" "UX7FC\n" "UX7FD\n" "UX7IB\n" "UX7IW\n" "UX7LL\n" "UX7MA\n" "UX7MM\n" "UX7MR\n" "UX7MX\n" "UX7QD\n" "UX7QJ\n" "UX7QV\n" "UX7U\n" "UX7UN\n" "UX8IR\n" "UX8IW\n" "UX8IX\n" "UX8IXX\n" "UX8ML\n" "UX8MM\n" "UX8ZA\n" "UY0CA\n" "UY0IR\n" "UY0IX\n" "UY0MM\n" "UY0ZA\n" "UY0ZG\n" "UY1HY\n" "UY1LS\n" "UY1U\n" "UY2IF\n" "UY2IG\n" "UY2IJ\n" "UY2IZ\n" "UY2MQ\n" "UY2RA\n" "UY2RZ\n" "UY2UA\n" "UY2UQ\n" "UY2UZ\n" "UY2VM\n" "UY2ZA\n" "UY2ZZ\n" "UY3AW\n" "UY3CC\n" "UY3LA\n" "UY3MW\n" "UY3QT\n" "UY3QW\n" "UY4F\n" "UY4WWA\n" "UY5AA\n" "UY5AB\n" "UY5AO\n" "UY5AP\n" "UY5AR\n" "UY5AX\n" "UY5BA\n" "UY5BC\n" "UY5BO\n" "UY5BT\n" "UY5EI\n" "UY5HF\n" "UY5LM\n" "UY5MB\n" "UY5ME\n" "UY5MR\n" "UY5QJ\n" "UY5QO\n" "UY5QZ\n" "UY5TE\n" "UY5TF\n" "UY5UO\n" "UY5UV\n" "UY5VA\n" "UY5YA\n" "UY5YB\n" "UY5ZI\n" "UY5ZZ\n" "UY5ZZ/A\n" "UY6IM\n" "UY7C\n" "UY7IO\n" "UY7IQ\n" "UY7LA\n" "UY7LM\n" "UY7LU\n" "UY7M\n" "UY7MM\n" "UY7QF\n" "UY7QN\n" "UY8IF\n" "UY8LM\n" "UY9IF\n" "UY9IM\n" "UY9IX\n" "UY9QY\n" "UZ0U\n" "UZ1G\n" "UZ1H\n" "UZ1RR\n" "UZ2FWB\n" "UZ2HZ\n" "UZ2I\n" "UZ2LL\n" "UZ2M\n" "UZ4E\n" "UZ4L\n" "UZ5I\n" "UZ5Q\n" "UZ5U\n" "UZ5UA\n" "UZ7HO\n" "UZ7M\n" "UZ7U\n" "UZ8I\n" "UZ8L\n" "V21MJ\n" "V25JK\n" "V25Y\n" "V25Z\n" "V26B\n" "V26E\n" "V26F\n" "V26G\n" "V26K\n" "V26M\n" "V31CW\n" "V31GW\n" "V31MD\n" "V31MU\n" "V31MW\n" "V31MX\n" "V31PT\n" "V31RI\n" "V31RR\n" "V31TB\n" "V31TP\n" "V31WA\n" "V31WO\n" "V31WV\n" "V31WVK\n" "V31YN\n" "V44KAI\n" "V47JA\n" "V47NT\n" "V48M\n" "V49A\n" "V51AS\n" "V51GB\n" "V51YJ\n" "V55X\n" "V63MY\n" "V73NS\n" "V85SS\n" "V8AQM\n" "VA1CC\n" "VA1CHP\n" "VA1IVY\n" "VA1MM\n" "VA1SEA\n" "VA1XBN\n" "VA2AAB\n" "VA2AAE\n" "VA2AM\n" "VA2AN\n" "VA2AY\n" "VA2BK\n" "VA2BN\n" "VA2BS\n" "VA2CT\n" "VA2EW\n" "VA2GU\n" "VA2KK\n" "VA2KT\n" "VA2LC\n" "VA2LGQ\n" "VA2MZ\n" "VA2PC\n" "VA2PR\n" "VA2PZ\n" "VA2RF\n" "VA2RIO\n" "VA2RM\n" "VA2RP\n" "VA2SG\n" "VA2TG\n" "VA2UP\n" "VA2UT\n" "VA2WDQ\n" "VA2WT\n" "VA2ZA\n" "VA2ZM\n" "VA2ZZ\n" "VA3AAO\n" "VA3ADW\n" "VA3AG\n" "VA3AM\n" "VA3ARK\n" "VA3ARS\n" "VA3ATT\n" "VA3BD\n" "VA3BI\n" "VA3BOH\n" "VA3CCO\n" "VA3CDX\n" "VA3CFK\n" "VA3CWT\n" "VA3DF\n" "VA3DN\n" "VA3DX\n" "VA3DZ\n" "VA3EBM\n" "VA3EC\n" "VA3ECO\n" "VA3FN\n" "VA3FP\n" "VA3GD\n" "VA3GFD\n" "VA3GGF\n" "VA3GKO\n" "VA3GL\n" "VA3GML\n" "VA3GUY\n" "VA3GVS\n" "VA3HIE\n" "VA3HJ\n" "VA3HP\n" "VA3HUN\n" "VA3IBL\n" "VA3IC\n" "VA3ICW\n" "VA3IX\n" "VA3JFF/W1\n" "VA3JWR\n" "VA3KA\n" "VA3KAI\n" "VA3KGS\n" "VA3KSF\n" "VA3MJR\n" "VA3MN\n" "VA3MO\n" "VA3NA\n" "VA3NN\n" "VA3NPL\n" "VA3NQ\n" "VA3NR\n" "VA3OBR\n" "VA3OC\n" "VA3OR\n" "VA3ORI\n" "VA3OX\n" "VA3PC\n" "VA3PEN\n" "VA3PL\n" "VA3QV\n" "VA3RDC\n" "VA3RJ\n" "VA3RKM\n" "VA3RNJ\n" "VA3SB\n" "VA3SK\n" "VA3STG\n" "VA3SWG\n" "VA3SX\n" "VA3THC\n" "VA3TPS\n" "VA3TSG\n" "VA3TTU\n" "VA3TV\n" "VA3TVW\n" "VA3VF\n" "VA3VO\n" "VA3VU\n" "VA3VW\n" "VA3VY\n" "VA3WL\n" "VA3WLD\n" "VA3WPV\n" "VA3WR\n" "VA3WU\n" "VA3WWC\n" "VA3XH\n" "VA3XQ\n" "VA3YOJ\n" "VA3YP\n" "VA3YT\n" "VA3YX\n" "VA3ZC\n" "VA3ZTZ\n" "VA3ZW\n" "VA3ZWT\n" "VA4DX\n" "VA4GD\n" "VA4HZ\n" "VA5DX\n" "VA5LF\n" "VA5RI\n" "VA6APB\n" "VA6AW\n" "VA6BSH\n" "VA6FZ\n" "VA6IK\n" "VA6MM\n" "VA6NJK\n" "VA6OZ\n" "VA6RAR\n" "VA6UK\n" "VA6XDX\n" "VA6ZZZ\n" "VA7AD\n" "VA7ALK\n" "VA7AM\n" "VA7AO\n" "VA7APK\n" "VA7AQ\n" "VA7BEC\n" "VA7BS\n" "VA7CAB\n" "VA7CE\n" "VA7CPC\n" "VA7CRO\n" "VA7CRZ\n" "VA7DER\n" "VA7DIN\n" "VA7DM\n" "VA7DX\n" "VA7DXC\n" "VA7DZ\n" "VA7FC\n" "VA7GAP\n" "VA7GEM\n" "VA7GG\n" "VA7HZ\n" "VA7IR\n" "VA7JC\n" "VA7JW\n" "VA7KO\n" "VA7MEV\n" "VA7MJR\n" "VA7MM\n" "VA7MT\n" "VA7ND\n" "VA7OA\n" "VA7OO\n" "VA7PGE\n" "VA7PX\n" "VA7RME\n" "VA7RMM\n" "VA7RN\n" "VA7RR\n" "VA7RY\n" "VA7ST\n" "VA7SW\n" "VA7TF\n" "VA7TT\n" "VA7VI\n" "VA7VJ\n" "VA7VV\n" "VA7VZZ\n" "VA7XB\n" "VA7XX\n" "VA7ZOO\n" "VC2A\n" "VC2E\n" "VC2W\n" "VC2Z\n" "VC3A\n" "VC3COPP\n" "VC3D\n" "VC3O\n" "VC3Y\n" "VC6R\n" "VC6T\n" "VC6X\n" "VC7C\n" "VE1/K3OMI\n" "VE1AHX\n" "VE1AI\n" "VE1AL\n" "VE1AOE\n" "VE1ARG\n" "VE1AWC\n" "VE1AYY\n" "VE1AZV\n" "VE1BB\n" "VE1BU\n" "VE1BVD\n" "VE1BZI\n" "VE1CJB\n" "VE1CTW\n" "VE1CZ\n" "VE1DC\n" "VE1DHD\n" "VE1DI\n" "VE1DT\n" "VE1DX\n" "VE1EP\n" "VE1FO/9\n" "VE1GW\n" "VE1IM\n" "VE1JF\n" "VE1JS\n" "VE1KF\n" "VE1KY\n" "VE1MC\n" "VE1NB\n" "VE1OP\n" "VE1QA\n" "VE1QY\n" "VE1RAR\n" "VE1RGB\n" "VE1RHP\n" "VE1RSM\n" "VE1SD\n" "VE1SK\n" "VE1SKY\n" "VE1SQ\n" "VE1TK\n" "VE1TRI\n" "VE1TT\n" "VE1UT\n" "VE1UY\n" "VE1WO\n" "VE1WT\n" "VE1XZ\n" "VE1YVN\n" "VE1YX\n" "VE1ZA\n" "VE1ZAC\n" "VE1ZD\n" "VE1ZJ\n" "VE1ZZ\n" "VE2ACP\n" "VE2AEJ\n" "VE2AFC\n" "VE2AHS\n" "VE2ARR\n" "VE2AWN\n" "VE2AWR\n" "VE2AWW\n" "VE2AXO\n" "VE2BDR\n" "VE2BQB\n" "VE2BR\n" "VE2BWL\n" "VE2CAQ\n" "VE2CPD\n" "VE2DC\n" "VE2DJC\n" "VE2DLC\n" "VE2DWA\n" "VE2DX\n" "VE2DXQ\n" "VE2DXY\n" "VE2EBL\n" "VE2EH\n" "VE2EKA\n" "VE2EWQ\n" "VE2EZD\n" "VE2FET\n" "VE2FFE\n" "VE2FK\n" "VE2FKZ\n" "VE2FU\n" "VE2FWW\n" "VE2FXL\n" "VE2GHI\n" "VE2GK\n" "VE2GLA\n" "VE2GSO\n" "VE2HAY\n" "VE2HLS\n" "VE2IM\n" "VE2JCW\n" "VE2JD\n" "VE2JMK\n" "VE2KH\n" "VE2LQ\n" "VE2LSF\n" "VE2LX\n" "VE2MAB\n" "VE2MRN\n" "VE2OJ\n" "VE2OPB\n" "VE2OTW\n" "VE2OWL\n" "VE2PC\n" "VE2PEP\n" "VE2PZ\n" "VE2QAU\n" "VE2QRA\n" "VE2QV\n" "VE2QV/3\n" "VE2QY\n" "VE2RA\n" "VE2RDQ\n" "VE2RO\n" "VE2RYY\n" "VE2SB\n" "VE2SBJ\n" "VE2SG\n" "VE2SHF\n" "VE2TBK\n" "VE2TG\n" "VE2TH\n" "VE2TKH\n" "VE2TZT\n" "VE2UMS\n" "VE2VIG\n" "VE2WKO\n" "VE2XAA\n" "VE2XAA/2\n" "VE2XX\n" "VE2YY\n" "VE2ZV\n" "VE2ZVZ\n" "VE3AAQ\n" "VE3ABG\n" "VE3ACA\n" "VE3AD\n" "VE3ADQ\n" "VE3AGC\n" "VE3AJ\n" "VE3AP\n" "VE3AR\n" "VE3ARF\n" "VE3AT\n" "VE3AWE\n" "VE3AXC\n" "VE3AZA\n" "VE3BDN\n" "VE3BHZ\n" "VE3BK\n" "VE3BKA\n" "VE3BLB\n" "VE3BNO\n" "VE3BVA\n" "VE3BW\n" "VE3BXI\n" "VE3BY\n" "VE3C\n" "VE3CAK\n" "VE3CCT\n" "VE3CFK\n" "VE3CG\n" "VE3CGC\n" "VE3CGR\n" "VE3CH\n" "VE3CKG\n" "VE3CLQ\n" "VE3CM\n" "VE3CMB\n" "VE3CNX\n" "VE3CPK\n" "VE3CPP\n" "VE3CR\n" "VE3CRG\n" "VE3CRO\n" "VE3CRU\n" "VE3CSJ\n" "VE3CSK\n" "VE3CTO\n" "VE3CUI\n" "VE3CW\n" "VE3CWO\n" "VE3CWP\n" "VE3CWU\n" "VE3CX\n" "VE3CXD\n" "VE3CXT\n" "VE3CZ\n" "VE3DBP\n" "VE3DC\n" "VE3DDG\n" "VE3DJX\n" "VE3DO\n" "VE3DPZ\n" "VE3DX\n" "VE3DZ\n" "VE3EBN\n" "VE3EDM\n" "VE3EDY\n" "VE3EFC\n" "VE3EGC\n" "VE3EJ\n" "VE3EK\n" "VE3EL\n" "VE3ELL\n" "VE3EN\n" "VE3ENG\n" "VE3EP\n" "VE3EWW\n" "VE3EXW\n" "VE3EXY\n" "VE3EY\n" "VE3EZP\n" "VE3FAS\n" "VE3FDK\n" "VE3FDT\n" "VE3FDX/W4\n" "VE3FGU\n" "VE3FH\n" "VE3FJ\n" "VE3FJB\n" "VE3FLT\n" "VE3FRJ\n" "VE3FRX\n" "VE3FSJ\n" "VE3FST\n" "VE3FTM\n" "VE3FU\n" "VE3FWF\n" "VE3FZ\n" "VE3GB\n" "VE3GFN\n" "VE3GIN\n" "VE3GJA\n" "VE3GLA\n" "VE3GLO\n" "VE3GLU\n" "VE3GN\n" "VE3GNB\n" "VE3GNO\n" "VE3GNX\n" "VE3GO\n" "VE3GPH\n" "VE3GPM\n" "VE3GSI\n" "VE3GYL\n" "VE3GZD\n" "VE3HG\n" "VE3HIA\n" "VE3HLS\n" "VE3HOL\n" "VE3HUR\n" "VE3HX\n" "VE3IAE\n" "VE3ICV\n" "VE3IDT\n" "VE3IFS/W2\n" "VE3IGJ\n" "VE3IIE\n" "VE3IKT\n" "VE3ILG\n" "VE3IN\n" "VE3IPS\n" "VE3IQ\n" "VE3ISO\n" "VE3IZZ\n" "VE3JAQ\n" "VE3JAS\n" "VE3JDF\n" "VE3JDF/W4\n" "VE3JI\n" "VE3JM\n" "VE3JSQ\n" "VE3KAO\n" "VE3KF\n" "VE3KI\n" "VE3KKB\n" "VE3KKQ\n" "VE3KL\n" "VE3KP\n" "VE3KPP\n" "VE3KQN\n" "VE3KWK\n" "VE3KZ\n" "VE3LC\n" "VE3LFJ\n" "VE3LFN\n" "VE3LKV\n" "VE3LLL\n" "VE3LR\n" "VE3LXL\n" "VE3LXV\n" "VE3MA\n" "VE3MCF\n" "VE3MCZ\n" "VE3MGY\n" "VE3MIA\n" "VE3MIH\n" "VE3MIS\n" "VE3MLK\n" "VE3MM\n" "VE3MMB\n" "VE3MMQ\n" "VE3MNE\n" "VE3MO\n" "VE3MS\n" "VE3MV\n" "VE3MWX\n" "VE3MXJ\n" "VE3NB\n" "VE3NCQ\n" "VE3NE\n" "VE3NLH\n" "VE3NOO\n" "VE3NPO\n" "VE3NQM\n" "VE3NRG\n" "VE3NYX\n" "VE3NYZ\n" "VE3NZ\n" "VE3OBU\n" "VE3OI\n" "VE3OIL\n" "VE3OKK\n" "VE3OM\n" "VE3OQM\n" "VE3OSC\n" "VE3OSZ\n" "VE3OU\n" "VE3OWO\n" "VE3OX\n" "VE3OZO\n" "VE3PA\n" "VE3PN\n" "VE3PST\n" "VE3PTC\n" "VE3PYJ\n" "VE3QAA\n" "VE3QBH\n" "VE3QDR\n" "VE3QN\n" "VE3QO\n" "VE3QRA\n" "VE3QT\n" "VE3RBE\n" "VE3RCN\n" "VE3RER\n" "VE3RHD\n" "VE3RIA\n" "VE3RM\n" "VE3RRH\n" "VE3RSA\n" "VE3RTU\n" "VE3RWA\n" "VE3RYI\n" "VE3RZ\n" "VE3SAO\n" "VE3SAQ\n" "VE3SCP\n" "VE3SIQ\n" "VE3SMA\n" "VE3SMN\n" "VE3SS\n" "VE3SSR\n" "VE3SSV\n" "VE3SUA\n" "VE3SUB\n" "VE3SWA\n" "VE3SXB\n" "VE3TA\n" "VE3TAZ\n" "VE3TC\n" "VE3TEI\n" "VE3TES\n" "VE3THX\n" "VE3TLT\n" "VE3TMG\n" "VE3TMT\n" "VE3TU\n" "VE3TV\n" "VE3TW\n" "VE3TWM\n" "VE3UEK\n" "VE3UK\n" "VE3UN\n" "VE3UTT\n" "VE3UUH\n" "VE3UWC\n" "VE3UZ\n" "VE3VA\n" "VE3VAW\n" "VE3VC\n" "VE3VID\n" "VE3VJ\n" "VE3VJC\n" "VE3VMJ\n" "VE3VO\n" "VE3VOE\n" "VE3VV\n" "VE3WBJ\n" "VE3WBR\n" "VE3WDM\n" "VE3WE\n" "VE3WEJ\n" "VE3WF\n" "VE3WIB\n" "VE3WKG\n" "VE3WLD\n" "VE3WRW\n" "VE3WZ\n" "VE3XAT\n" "VE3XB\n" "VE3XBR\n" "VE3XBX\n" "VE3XC\n" "VE3XD\n" "VE3XL\n" "VE3XN\n" "VE3YAA\n" "VE3YEN\n" "VE3YN\n" "VE3YRI\n" "VE3YV\n" "VE3YXO\n" "VE3YYK\n" "VE3ZI\n" "VE3ZIN\n" "VE3ZT\n" "VE3ZZ\n" "VE4AEO\n" "VE4AMU\n" "VE4BAE\n" "VE4BG\n" "VE4DRN\n" "VE4DS\n" "VE4DXX\n" "VE4EA\n" "VE4EAR\n" "VE4GF\n" "VE4GR\n" "VE4GV\n" "VE4IHF\n" "VE4JCJ\n" "VE4KT\n" "VE4ME/W4\n" "VE4MG\n" "VE4MT\n" "VE4RA\n" "VE4TV\n" "VE4XT\n" "VE4YU\n" "VE5AAD\n" "VE5BCS\n" "VE5CPU\n" "VE5DLM\n" "VE5FF\n" "VE5FN\n" "VE5FX\n" "VE5KC\n" "VE5MX\n" "VE5PM\n" "VE5PV\n" "VE5RI\n" "VE5SF\n" "VE5SMC\n" "VE5SWL\n" "VE5TLW\n" "VE5UA\n" "VE5UF\n" "VE5WI\n" "VE5ZC\n" "VE5ZG\n" "VE5ZX\n" "VE6ADS\n" "VE6AID\n" "VE6AML\n" "VE6AO\n" "VE6APL\n" "VE6AVK\n" "VE6AX\n" "VE6AXA\n" "VE6BBP\n" "VE6BF\n" "VE6BI\n" "VE6BIR\n" "VE6BIR/3\n" "VE6BP\n" "VE6CMV\n" "VE6CN\n" "VE6CNU\n" "VE6CPU\n" "VE6DC\n" "VE6DDD\n" "VE6DJT\n" "VE6DLH\n" "VE6DO\n" "VE6DXX\n" "VE6ECK\n" "VE6EPK\n" "VE6EX\n" "VE6EXE\n" "VE6EZ\n" "VE6EZ/7\n" "VE6FI\n" "VE6FN\n" "VE6FT\n" "VE6GGF\n" "VE6GJ\n" "VE6HII\n" "VE6HX\n" "VE6IM\n" "VE6IV\n" "VE6JC\n" "VE6JJO\n" "VE6JOY\n" "VE6JY\n" "VE6KC\n" "VE6KD\n" "VE6KK\n" "VE6LB\n" "VE6LDX\n" "VE6LE\n" "VE6MAA\n" "VE6MO\n" "VE6MRV\n" "VE6MRX\n" "VE6MV\n" "VE6NA\n" "VE6NC\n" "VE6NL\n" "VE6NU\n" "VE6OH\n" "VE6PG\n" "VE6PL\n" "VE6PR\n" "VE6RAC\n" "VE6RRD\n" "VE6RST\n" "VE6SF\n" "VE6SH\n" "VE6SKU\n" "VE6SKY\n" "VE6SQ\n" "VE6STP\n" "VE6SV\n" "VE6TA\n" "VE6TC\n" "VE6TCK\n" "VE6TD\n" "VE6TL\n" "VE6TN\n" "VE6TR\n" "VE6TRD\n" "VE6US\n" "VE6VK\n" "VE6WDE\n" "VE6WQ\n" "VE6WTF\n" "VE6WZ\n" "VE6YC\n" "VE6YV\n" "VE6ZC\n" "VE7ABC\n" "VE7AF\n" "VE7AFZ\n" "VE7AHA\n" "VE7AHT\n" "VE7AIJ\n" "VE7APF\n" "VE7AV\n" "VE7AX\n" "VE7AXU\n" "VE7BC\n" "VE7BCJ\n" "VE7BDO\n" "VE7BGP\n" "VE7BQ\n" "VE7BQO\n" "VE7BSM\n" "VE7BV\n" "VE7BZR\n" "VE7CA\n" "VE7CC\n" "VE7CF\n" "VE7CFZ\n" "VE7CML\n" "VE7CNA\n" "VE7CNW\n" "VE7CT\n" "VE7CUS\n" "VE7CV\n" "VE7CYY\n" "VE7DAO\n" "VE7DD\n" "VE7DHJ\n" "VE7DP\n" "VE7DSE\n" "VE7DX\n" "VE7DXE\n" "VE7DXH\n" "VE7EPP\n" "VE7FCO\n" "VE7FE\n" "VE7FEI\n" "VE7FI\n" "VE7FO\n" "VE7GBK\n" "VE7GL\n" "VE7GPZ\n" "VE7GTC\n" "VE7HA\n" "VE7HBS\n" "VE7HJ\n" "VE7HL\n" "VE7IAF\n" "VE7IG\n" "VE7IJJ\n" "VE7IN\n" "VE7IO\n" "VE7IO/7\n" "VE7IX\n" "VE7JKZ\n" "VE7JQ\n" "VE7JT\n" "VE7JZ\n" "VE7KB\n" "VE7KDU\n" "VE7KFM\n" "VE7KS\n" "VE7KWA\n" "VE7LGI\n" "VE7MID\n" "VE7MR\n" "VE7NA\n" "VE7NF\n" "VE7NGR\n" "VE7NI\n" "VE7NS\n" "VE7NSR\n" "VE7NX\n" "VE7ODS\n" "VE7OGO\n" "VE7ON\n" "VE7PTT\n" "VE7QC\n" "VE7RSV\n" "VE7SA\n" "VE7SAG\n" "VE7SCC\n" "VE7SK\n" "VE7SNC\n" "VE7SQ\n" "VE7SV\n" "VE7SZ\n" "VE7TGV\n" "VE7TK\n" "VE7TUG\n" "VE7UF\n" "VE7UQ\n" "VE7URS\n" "VE7VF\n" "VE7VR\n" "VE7VV\n" "VE7VZ\n" "VE7WEB\n" "VE7WU\n" "VE7WWW\n" "VE7WY\n" "VE7XF\n" "VE7XT\n" "VE7XV\n" "VE7YJ\n" "VE7YL\n" "VE7YU\n" "VE7ZR\n" "VE7ZTW\n" "VE7ZZF\n" "VE8DAV\n" "VE8DW\n" "VE8EV\n" "VE8GER\n" "VE8NSD\n" "VE9AA\n" "VE9CEH\n" "VE9CX\n" "VE9DX\n" "VE9EZ\n" "VE9GJ\n" "VE9GLF\n" "VE9GU\n" "VE9HF\n" "VE9IS\n" "VE9JT\n" "VE9KAR\n" "VE9ML\n" "VE9MOE\n" "VE9MY\n" "VE9NC\n" "VE9OX\n" "VE9QRP\n" "VE9ST\n" "VE9XA\n" "VE9XX\n" "VE9ZX\n" "VER20100809\n" "VK1CC\n" "VK1GG/VK2\n" "VK1MJ\n" "VK2ABK\n" "VK2ACC\n" "VK2AET\n" "VK2APG\n" "VK2AR\n" "VK2AWA\n" "VK2AWD\n" "VK2AYD\n" "VK2BCQ\n" "VK2BD\n" "VK2BJ\n" "VK2BNG\n" "VK2BPL\n" "VK2CA\n" "VK2CCC\n" "VK2DAG\n" "VK2DV\n" "VK2FAJM\n" "VK2FTZ\n" "VK2GKA\n" "VK2GR\n" "VK2GWK\n" "VK2HBG\n" "VK2HEW\n" "VK2HJW\n" "VK2HOT\n" "VK2HV\n" "VK2IA\n" "VK2IM\n" "VK2IR\n" "VK2JZD\n" "VK2KDP\n" "VK2KM\n" "VK2KPP\n" "VK2LAW\n" "VK2MDY\n" "VK2MWG\n" "VK2NA\n" "VK2NCD\n" "VK2NOS\n" "VK2NRB\n" "VK2NSS\n" "VK2NU\n" "VK2PN\n" "VK2SF\n" "VK2UZ\n" "VK2WAY\n" "VK2WGW\n" "VK2WTT\n" "VK2XF\n" "VK2XN\n" "VK2ZF\n" "VK2ZQ\n" "VK3ACT\n" "VK3AMA\n" "VK3AMK\n" "VK3AMZ\n" "VK3AVV\n" "VK3DWS\n" "VK3EGN\n" "VK3EW\n" "VK3FGRC\n" "VK3FM\n" "VK3FRC\n" "VK3FT\n" "VK3FY\n" "VK3GDM\n" "VK3GK\n" "VK3HE\n" "VK3HJ\n" "VK3HJA\n" "VK3HR\n" "VK3IO\n" "VK3JMB\n" "VK3KE\n" "VK3LB\n" "VK3LK\n" "VK3LM\n" "VK3MDX\n" "VK3MO\n" "VK3NDX\n" "VK3NI\n" "VK3PA\n" "VK3PTO\n" "VK3QI\n" "VK3TC\n" "VK3TDX\n" "VK3TZ\n" "VK3VBC\n" "VK3VIN\n" "VK3VT\n" "VK3VTH\n" "VK3WF\n" "VK3YB\n" "VK3YXC\n" "VK3ZJ\n" "VK4/NL8F\n" "VK4AAR\n" "VK4AAV\n" "VK4AN\n" "VK4ATH\n" "VK4BL\n" "VK4BU\n" "VK4BUI\n" "VK4CMV\n" "VK4CQ\n" "VK4CZ\n" "VK4DMP\n" "VK4DX\n" "VK4DZ\n" "VK4EJ\n" "VK4EMM\n" "VK4FJ\n" "VK4FNQ\n" "VK4FRAJ\n" "VK4GH\n" "VK4HAM\n" "VK4HDX\n" "VK4HFO\n" "VK4HG\n" "VK4IU\n" "VK4IZ\n" "VK4KAD\n" "VK4KEE\n" "VK4KKD\n" "VK4KW\n" "VK4LDX\n" "VK4LMB\n" "VK4MA\n" "VK4MIT\n" "VK4OQ\n" "VK4PN\n" "VK4QO\n" "VK4SN\n" "VK4SS\n" "VK4TBW\n" "VK4TI\n" "VK4TJF\n" "VK4TT\n" "VK4VDX\n" "VK4WI\n" "VK4WIL\n" "VK4WR\n" "VK4XA\n" "VK4XES\n" "VK4XY\n" "VK4YN\n" "VK4ZD\n" "VK4ZJR\n" "VK5BC\n" "VK5HRT\n" "VK5LA\n" "VK5MAV\n" "VK5NPR\n" "VK5SW\n" "VK6AA\n" "VK6AHR\n" "VK6AJ\n" "VK6ANC\n" "VK6APZ\n" "VK6ARW\n" "VK6BN\n" "VK6DU\n" "VK6DXI\n" "VK6EH\n" "VK6FDX\n" "VK6HD\n" "VK6HG\n" "VK6HZ\n" "VK6IR\n" "VK6JJ\n" "VK6LC\n" "VK6LK\n" "VK6LW\n" "VK6NC\n" "VK6NTE\n" "VK6RO\n" "VK6RZ\n" "VK6VR\n" "VK6VZ\n" "VK6WR\n" "VK6YS\n" "VK6ZN/5\n" "VK7AC\n" "VK7AD\n" "VK7FWAY\n" "VK7GK\n" "VK7GN\n" "VK7GZ\n" "VK7JB\n" "VK7ROY\n" "VK7TS\n" "VK7WI\n" "VK7XX\n" "VK7ZE\n" "VK7ZGK\n" "VK8AV\n" "VK8GMT/VK2\n" "VK8NSB\n" "VK8PDX\n" "VK9AA\n" "VK9DWX\n" "VK9LA\n" "VK9XW\n" "VO1AA\n" "VO1ABN\n" "VO1BB\n" "VO1BBN\n" "VO1BE\n" "VO1BQ\n" "VO1DD\n" "VO1DJT\n" "VO1FD\n" "VO1FU\n" "VO1FZ\n" "VO1GO\n" "VO1GXG\n" "VO1HE\n" "VO1HP\n" "VO1KVT\n" "VO1MP\n" "VO1NM\n" "VO1OR\n" "VO1SA\n" "VO1TA\n" "VO1TK\n" "VO1TTY\n" "VO1TX\n" "VO1UL\n" "VO1XT\n" "VO2/GM0TQJ\n" "VO2FF\n" "VO2NS\n" "VO3A\n" "VP2E\n" "VP2EC\n" "VP2ETN\n" "VP2MDG\n" "VP2MNK\n" "VP2MPR\n" "VP2VVA\n" "VP50V\n" "VP59V\n" "VP5CM\n" "VP5DF\n" "VP5DX\n" "VP5H\n" "VP5JM\n" "VP5T\n" "VP5W\n" "VP8BKF\n" "VP8DIF\n" "VP8DMH\n" "VP8KF\n" "VP8NO\n" "VP9/AA4V\n" "VP9/K3IRV\n" "VP9/K3TRM\n" "VP9/N1SNB\n" "VP9/W6PH\n" "VP9400I\n" "VP9AD\n" "VP9BO\n" "VP9HE\n" "VP9HW\n" "VP9I\n" "VQ5B\n" "VQ5V\n" "VQ90JC\n" "VQ99JC\n" "VQ9JC\n" "VQ9LA\n" "VQ9RD\n" "VQ9X\n" "VR2009EAG\n" "VR2AAW\n" "VR2C\n" "VR2CB\n" "VR2CD\n" "VR2HF\n" "VR2HK\n" "VR2IZ\n" "VR2JK\n" "VR2NN\n" "VR2PW\n" "VR2PX\n" "VR2UW\n" "VR2XLN\n" "VR2XMT\n" "VR2YQU\n" "VR2YYW\n" "VR2ZQZ/P\n" "VR2ZRE\n" "VU2BGS\n" "VU2DK\n" "VU2HFR\n" "VU2JOS\n" "VU2LBW\n" "VU2NKS\n" "VU2ORO\n" "VU2PAI\n" "VU2PEP\n" "VU2PTT\n" "VU2RCT\n" "VU2RMS\n" "VU2SWS\n" "VU2TS\n" "VU2UR\n" "VU3DJQ\n" "VU3DMP\n" "VU3USJ\n" "VU4MY\n" "VU4RG\n" "VU7NRO\n" "VU7SJ\n" "VX3AP\n" "VX3CW\n" "VX3CX\n" "VX3FH\n" "VX3JAQ\n" "VX3OI\n" "VX3RTU\n" "VX3RZ\n" "VX3S\n" "VX3XN\n" "VX6AO\n" "VX6AX\n" "VX6WQ\n" "VX7BC\n" "VX7CC\n" "VX7ZD\n" "VX9HF\n" "VX9NC\n" "VY0HL\n" "VY0PW\n" "VY1CQ\n" "VY1EI\n" "VY1WUD\n" "VY2EJ\n" "VY2GM\n" "VY2LI\n" "VY2MP\n" "VY2MT\n" "VY2OM\n" "VY2RAC\n" "VY2RG\n" "VY2RO\n" "VY2RU\n" "VY2RWM\n" "VY2SS\n" "VY2TT\n" "VY2ZM\n" "W0AAA\n" "W0AD\n" "W0AG\n" "W0AIH\n" "W0AMX\n" "W0AR\n" "W0ARK\n" "W0AV\n" "W0AVE\n" "W0AW\n" "W0AWL\n" "W0BBI\n" "W0BCA\n" "W0BE\n" "W0BF\n" "W0BH\n" "W0BKR\n" "W0BM\n" "W0BNW\n" "W0BR\n" "W0BUW\n" "W0BV\n" "W0BVR\n" "W0CAR\n" "W0CBH\n" "W0CCA\n" "W0CEM\n" "W0CGR\n" "W0CM\n" "W0CML\n" "W0CN\n" "W0CNN\n" "W0CO\n" "W0CP\n" "W0CQ\n" "W0CRC\n" "W0CZ\n" "W0CZE\n" "W0DC\n" "W0DD\n" "W0DET\n" "W0DF\n" "W0DHB\n" "W0DJH\n" "W0DLE\n" "W0DOX\n" "W0EAR\n" "W0EB\n" "W0ECS\n" "W0EEA\n" "W0EF\n" "W0EJ\n" "W0EK\n" "W0EKS\n" "W0ELT\n" "W0EM\n" "W0EOZ\n" "W0EP\n" "W0EPC\n" "W0ERE\n" "W0ERP\n" "W0ETT\n" "W0EWD\n" "W0EWM\n" "W0FE\n" "W0FF\n" "W0FK\n" "W0FL\n" "W0FLS\n" "W0FM\n" "W0FMS\n" "W0FRC\n" "W0FS\n" "W0FV\n" "W0GG\n" "W0GHZ\n" "W0GJ\n" "W0GLB\n" "W0GMO\n" "W0GXN\n" "W0GXQ\n" "W0GZR\n" "W0HBH\n" "W0HDC\n" "W0HJW\n" "W0HMS\n" "W0HR\n" "W0HT\n" "W0HW\n" "W0HXL\n" "W0HY\n" "W0ICY\n" "W0IF\n" "W0IJR\n" "W0IMD\n" "W0IS\n" "W0IVJ\n" "W0IW\n" "W0IYH\n" "W0IZ\n" "W0IZL\n" "W0JA\n" "W0JEC\n" "W0JEE\n" "W0JFR\n" "W0JH\n" "W0JIM\n" "W0JLC\n" "W0JPL\n" "W0JRP\n" "W0JX\n" "W0KC\n" "W0KIT\n" "W0KSD\n" "W0KT\n" "W0KU\n" "W0KVA\n" "W0LB\n" "W0LEO\n" "W0LFZ\n" "W0LGU\n" "W0LK\n" "W0LM\n" "W0LS\n" "W0LSD\n" "W0LTL\n" "W0LV\n" "W0LWU\n" "W0MA\n" "W0MF\n" "W0MHK\n" "W0MJN\n" "W0ML\n" "W0MM\n" "W0MN\n" "W0MOT\n" "W0MR\n" "W0MRM\n" "W0MRZ\n" "W0MSM\n" "W0MSR\n" "W0MTW\n" "W0MU\n" "W0NA\n" "W0NB\n" "W0NFD\n" "W0NFS\n" "W0NMD\n" "W0NN\n" "W0NO\n" "W0NT\n" "W0NTA\n" "W0NUH\n" "W0NV\n" "W0NZG\n" "W0ODS\n" "W0OF\n" "W0OJ\n" "W0OP\n" "W0OR\n" "W0OR/4\n" "W0OTM\n" "W0OTV\n" "W0OXJ\n" "W0PAN\n" "W0PB\n" "W0PC\n" "W0PI\n" "W0PPF\n" "W0PQ\n" "W0PR\n" "W0PRS\n" "W0PS\n" "W0PSS\n" "W0PTI\n" "W0PV\n" "W0PYZ\n" "W0QE\n" "W0QL\n" "W0QQ\n" "W0QQG\n" "W0RAA\n" "W0RC\n" "W0RDS\n" "W0RHT\n" "W0RI\n" "W0RIC\n" "W0RLI\n" "W0RO\n" "W0RSB\n" "W0RSP\n" "W0RSR\n" "W0RT\n" "W0RU\n" "W0RUN\n" "W0RX\n" "W0SD\n" "W0SHL\n" "W0SK\n" "W0SLW\n" "W0SM\n" "W0SO\n" "W0SRC\n" "W0STB\n" "W0SV\n" "W0TAW\n" "W0TF\n" "W0TL\n" "W0TLE\n" "W0TT\n" "W0TU\n" "W0TUP\n" "W0TVD\n" "W0TY\n" "W0UA\n" "W0UC\n" "W0UCE\n" "W0UD\n" "W0UO\n" "W0UOW\n" "W0UVC\n" "W0UY\n" "W0UY/5\n" "W0VB\n" "W0VD\n" "W0VHV\n" "W0VOM\n" "W0VX\n" "W0WLL\n" "W0WMU\n" "W0WN\n" "W0WOI\n" "W0WP\n" "W0WPL\n" "W0WQ\n" "W0WSP\n" "W0XG\n" "W0XL\n" "W0XV\n" "W0XXX\n" "W0YHE\n" "W0YJT\n" "W0YK\n" "W0YK/6\n" "W0YNI\n" "W0YR\n" "W0YRN\n" "W0YSE\n" "W0YV\n" "W0YVA\n" "W0YY\n" "W0YZZ\n" "W0ZA\n" "W0ZC\n" "W0ZD\n" "W0ZH\n" "W0ZKE\n" "W0ZP\n" "W0ZQ\n" "W0ZR\n" "W0ZS\n" "W0ZT\n" "W0ZTL\n" "W0ZU\n" "W0ZW\n" "W1/YO7ARY\n" "W1AAX\n" "W1ACC\n" "W1ACT\n" "W1AD\n" "W1AF\n" "W1AH\n" "W1AIU\n" "W1AJT\n" "W1AMF\n" "W1AMJ\n" "W1AN\n" "W1AO\n" "W1AR\n" "W1ASB\n" "W1ATA\n" "W1ATV\n" "W1AUV\n" "W1AVK\n" "W1AW\n" "W1AX\n" "W1BB\n" "W1BBQ\n" "W1BCD\n" "W1BEM\n" "W1BHC\n" "W1BJ\n" "W1BLT\n" "W1BNC\n" "W1BR\n" "W1BS\n" "W1BUZ\n" "W1BV\n" "W1BYH\n" "W1CBI\n" "W1CC\n" "W1CCE\n" "W1CCE/4\n" "W1CDX\n" "W1CKA\n" "W1CRK\n" "W1CRP\n" "W1CRS\n" "W1CSM\n" "W1CTN\n" "W1CU\n" "W1CVE\n" "W1CWU\n" "W1DAD\n" "W1DBD\n" "W1DDD\n" "W1DEO\n" "W1DF\n" "W1DFL\n" "W1DIG\n" "W1DMC\n" "W1DMD\n" "W1DMM\n" "W1DNK\n" "W1DNK/5\n" "W1DO\n" "W1DQ\n" "W1DSH\n" "W1DUW\n" "W1DWA\n" "W1DX\n" "W1DXH\n" "W1DY\n" "W1DYJ\n" "W1EAT\n" "W1EBI\n" "W1EBM\n" "W1ECH\n" "W1ECS\n" "W1ECT\n" "W1EEB\n" "W1EHQ\n" "W1EM\n" "W1EME\n" "W1END\n" "W1EQ\n" "W1EQO\n" "W1ES\n" "W1ESE\n" "W1EZY\n" "W1FA\n" "W1FH\n" "W1FJ\n" "W1FK\n" "W1FM\n" "W1FMO\n" "W1FMR\n" "W1FNB\n" "W1FP\n" "W1FQ\n" "W1FV\n" "W1GD\n" "W1GG\n" "W1GL\n" "W1GLO\n" "W1GQ\n" "W1GS\n" "W1GSH\n" "W1GUD\n" "W1GUE\n" "W1GUS\n" "W1GWN\n" "W1GX\n" "W1GXZ\n" "W1GY\n" "W1HBR\n" "W1HFD\n" "W1HFF\n" "W1HFN\n" "W1HI\n" "W1HIH\n" "W1HIJ\n" "W1HIS\n" "W1HJT\n" "W1HMD\n" "W1HPT\n" "W1HQ\n" "W1HR\n" "W1HT\n" "W1HY\n" "W1IBI\n" "W1IBQ\n" "W1IDL\n" "W1IE\n" "W1IG\n" "W1II\n" "W1IL\n" "W1IS\n" "W1IT\n" "W1ITT\n" "W1IZQ\n" "W1JA\n" "W1JCJ\n" "W1JCW\n" "W1JD\n" "W1JGS\n" "W1JJC\n" "W1JKS\n" "W1JMA\n" "W1JN\n" "W1JNZ\n" "W1JQ\n" "W1JR\n" "W1JSB\n" "W1JWC\n" "W1KDA\n" "W1KM\n" "W1KOK\n" "W1KQ\n" "W1KRS\n" "W1KRV\n" "W1KSI\n" "W1KSZ\n" "W1KT\n" "W1LDD\n" "W1LK\n" "W1LOZ\n" "W1LRY\n" "W1LWH\n" "W1LXA\n" "W1LY\n" "W1LZ\n" "W1MAD\n" "W1MAT\n" "W1MAW\n" "W1MD\n" "W1MHZ\n" "W1MIG\n" "W1MJ\n" "W1MJB\n" "W1MK\n" "W1MKY\n" "W1MLG\n" "W1MO\n" "W1MPF\n" "W1MSW\n" "W1MU\n" "W1MX\n" "W1MX/100\n" "W1NA\n" "W1NDY\n" "W1NG\n" "W1NK\n" "W1NN\n" "W1NQT\n" "W1NR\n" "W1NRB\n" "W1NRG\n" "W1NSK\n" "W1NT\n" "W1NY\n" "W1OHM\n" "W1OO\n" "W1OOO\n" "W1OP\n" "W1ORS\n" "W1OU\n" "W1OW\n" "W1OX\n" "W1OZ\n" "W1PBB\n" "W1PH\n" "W1PHB\n" "W1PID\n" "W1PMR\n" "W1PNS\n" "W1PR\n" "W1PX/4\n" "W1QA\n" "W1QG\n" "W1QH\n" "W1QK\n" "W1QLF\n" "W1QS\n" "W1RAN\n" "W1RDJ\n" "W1REP\n" "W1RET\n" "W1RH\n" "W1RKT\n" "W1RM\n" "W1RME\n" "W1RO\n" "W1RPG\n" "W1RQ\n" "W1RY\n" "W1RZ\n" "W1RZF\n" "W1SAM\n" "W1SD\n" "W1SGC\n" "W1SJ\n" "W1SKB\n" "W1SKU\n" "W1SLF\n" "W1SNE\n" "W1SOX\n" "W1SRB\n" "W1SRD\n" "W1SRG\n" "W1STT\n" "W1TAM\n" "W1TBR\n" "W1TI\n" "W1TJL\n" "W1TM\n" "W1TMS\n" "W1TO\n" "W1TR\n" "W1TRB\n" "W1TS\n" "W1TSM\n" "W1TSP\n" "W1TUM\n" "W1TW\n" "W1TY\n" "W1UD\n" "W1UE\n" "W1UF\n" "W1UJ\n" "W1UK\n" "W1UN\n" "W1UR\n" "W1URV\n" "W1UU\n" "W1VB\n" "W1VD\n" "W1VE\n" "W1VG\n" "W1VIV\n" "W1VO\n" "W1VRY\n" "W1VV\n" "W1WAT\n" "W1WBB\n" "W1WC\n" "W1WCG\n" "W1WEF\n" "W1WH\n" "W1WIU\n" "W1WLJ\n" "W1WLW\n" "W1WN\n" "W1WQM\n" "W1WRA\n" "W1WSN\n" "W1WTG\n" "W1WV\n" "W1WWW\n" "W1XH\n" "W1XP\n" "W1XT\n" "W1XV\n" "W1XW\n" "W1XX\n" "W1YK\n" "W1YL/4\n" "W1YM\n" "W1YN\n" "W1YRC\n" "W1YY\n" "W1YY/7\n" "W1ZA\n" "W1ZC\n" "W1ZD/7\n" "W1ZE\n" "W1ZGZ\n" "W1ZK\n" "W1ZM\n" "W1ZN\n" "W1ZO\n" "W1ZR\n" "W1ZS\n" "W1ZT\n" "W1ZX\n" "W1ZYX\n" "W1ZZ\n" "W2/CT1FMX\n" "W2/CT1GIF\n" "W2/E78WW\n" "W2/PY2AAZ\n" "W2AAB\n" "W2AAS\n" "W2ACY\n" "W2ACY/5\n" "W2ACY/7\n" "W2AD\n" "W2AFC\n" "W2AIV\n" "W2AN\n" "W2ARP\n" "W2AT\n" "W2AU\n" "W2AW\n" "W2AYM\n" "W2BC\n" "W2BEE\n" "W2BSN\n" "W2BVH\n" "W2BXA\n" "W2BZR\n" "W2BZY\n" "W2CCC\n" "W2CDO\n" "W2CG\n" "W2CO\n" "W2CR\n" "W2CUA\n" "W2CVW\n" "W2CXX\n" "W2DCM\n" "W2DEC\n" "W2DKM\n" "W2DLL\n" "W2DLT\n" "W2DNR\n" "W2DPT\n" "W2DWW\n" "W2DX\n" "W2DXE\n" "W2DZO\n" "W2EB\n" "W2EF\n" "W2EFI\n" "W2EG\n" "W2EJG\n" "W2EL\n" "W2EN\n" "W2EQ\n" "W2ESX\n" "W2EUA\n" "W2EVL\n" "W2EZB\n" "W2FA\n" "W2FAL\n" "W2FB\n" "W2FBS\n" "W2FCP\n" "W2FDJ\n" "W2FE\n" "W2FF\n" "W2FJA\n" "W2FKF\n" "W2FKN\n" "W2FMB\n" "W2FP\n" "W2FT\n" "W2FU\n" "W2FUI\n" "W2FV\n" "W2GB\n" "W2GD\n" "W2GDJ\n" "W2GEZ\n" "W2GFF\n" "W2GG\n" "W2GGC\n" "W2GGI\n" "W2GHD\n" "W2GJ\n" "W2GLE\n" "W2GPS\n" "W2GS\n" "W2GW\n" "W2HA\n" "W2HCB\n" "W2HDI\n" "W2HIY\n" "W2HKE\n" "W2HLI\n" "W2HTI\n" "W2HTS\n" "W2ID\n" "W2IF\n" "W2II\n" "W2IJ\n" "W2IKN\n" "W2IMX\n" "W2IQK\n" "W2IRT\n" "W2IUC\n" "W2IW\n" "W2IZN\n" "W2JB\n" "W2JD\n" "W2JEK\n" "W2JGQ\n" "W2JJ\n" "W2JLK\n" "W2JSJ\n" "W2JTM\n" "W2JU\n" "W2JU/1\n" "W2KD\n" "W2KFV\n" "W2KIM\n" "W2KJ\n" "W2KKJ\n" "W2KKZ\n" "W2KLS\n" "W2KN\n" "W2KP\n" "W2KQ\n" "W2KU\n" "W2KV\n" "W2KW\n" "W2KXD\n" "W2LB\n" "W2LC\n" "W2LE\n" "W2LHL\n" "W2LJ\n" "W2LK\n" "W2LO\n" "W2LP\n" "W2LPL\n" "W2LRO\n" "W2LRT\n" "W2LU\n" "W2LYL\n" "W2MAT\n" "W2MC\n" "W2MEB\n" "W2MF\n" "W2MFT\n" "W2MKW\n" "W2ML\n" "W2MM\n" "W2MMD\n" "W2MN\n" "W2MSK\n" "W2MV\n" "W2MXL\n" "W2MYA\n" "W2MYC\n" "W2NBJ\n" "W2NGC\n" "W2NJ\n" "W2NLS\n" "W2NO\n" "W2NQ\n" "W2NQ/7\n" "W2NRA\n" "W2NRD\n" "W2NY\n" "W2OB\n" "W2OIB\n" "W2OKM\n" "W2OL\n" "W2OO\n" "W2OR\n" "W2OSR\n" "W2OX\n" "W2OZO\n" "W2PA\n" "W2PHD\n" "W2PI\n" "W2PJ\n" "W2PK\n" "W2PM\n" "W2PSU\n" "W2PV\n" "W2PWS\n" "W2QF\n" "W2QM\n" "W2QO\n" "W2QQ\n" "W2RA\n" "W2RBA\n" "W2RD\n" "W2RDX\n" "W2RE\n" "W2REH\n" "W2RI\n" "W2RIJ\n" "W2RIP\n" "W2RK\n" "W2RLB\n" "W2RLK\n" "W2RM\n" "W2RON\n" "W2RQ\n" "W2RR\n" "W2RRT\n" "W2RS\n" "W2RST\n" "W2RTY\n" "W2RU\n" "W2RX\n" "W2RZS\n" "W2SF\n" "W2SH\n" "W2SM\n" "W2SMS\n" "W2SNX\n" "W2SON\n" "W2SR\n" "W2TA\n" "W2TB\n" "W2TDZ\n" "W2TIN\n" "W2TN\n" "W2TX\n" "W2TZ\n" "W2UB\n" "W2UDT\n" "W2UGZ\n" "W2UI\n" "W2UJ\n" "W2UP\n" "W2UQ\n" "W2VI\n" "W2VJN\n" "W2VK\n" "W2VKT\n" "W2VO\n" "W2VP\n" "W2VQ\n" "W2VS\n" "W2VT\n" "W2VTV\n" "W2VU\n" "W2VUF\n" "W2VV\n" "W2WC\n" "W2WD\n" "W2WG\n" "W2WO\n" "W2WP\n" "W2XB\n" "W2XI\n" "W2XL\n" "W2XM\n" "W2XS\n" "W2XYZ\n" "W2YC\n" "W2YE\n" "W2YJ\n" "W2YK\n" "W2YP\n" "W2YR\n" "W2YSL\n" "W2YT\n" "W2YX\n" "W2ZDP\n" "W2ZEP\n" "W2ZI\n" "W2ZKE\n" "W2ZQ\n" "W3ABT\n" "W3ACO\n" "W3AG\n" "W3AMB\n" "W3ANJ\n" "W3AO\n" "W3AS\n" "W3ASA\n" "W3AT\n" "W3AU\n" "W3AZ\n" "W3AZD\n" "W3BBO\n" "W3BC\n" "W3BE\n" "W3BEE\n" "W3BG\n" "W3BGN\n" "W3BJ\n" "W3BMW\n" "W3BP\n" "W3BRG\n" "W3BTX\n" "W3BUI\n" "W3BW\n" "W3BZN\n" "W3CB\n" "W3CC\n" "W3CEI\n" "W3CF\n" "W3CG\n" "W3CP\n" "W3CQ\n" "W3CQB\n" "W3CQH\n" "W3CRZ\n" "W3CSA\n" "W3CWE\n" "W3DA\n" "W3DAD\n" "W3DB\n" "W3DF\n" "W3DM\n" "W3DNA\n" "W3DP\n" "W3DQ\n" "W3DQN\n" "W3DQT\n" "W3DRY\n" "W3DSX\n" "W3DX\n" "W3DYA\n" "W3DZH\n" "W3EA\n" "W3EC\n" "W3EDP\n" "W3EEE\n" "W3EEK\n" "W3EF\n" "W3EFE\n" "W3EH\n" "W3EHT\n" "W3EJM\n" "W3EKT\n" "W3EL\n" "W3EP\n" "W3EQ\n" "W3ERC\n" "W3ERE\n" "W3EST\n" "W3EW\n" "W3EX\n" "W3FAF\n" "W3FF\n" "W3FI\n" "W3FQ\n" "W3FT\n" "W3FV\n" "W3FVT\n" "W3FW\n" "W3GAT\n" "W3GC\n" "W3GEG\n" "W3GG\n" "W3GH\n" "W3GK\n" "W3GLH\n" "W3GM\n" "W3GNQ\n" "W3GQ\n" "W3GRF\n" "W3GT\n" "W3GYK\n" "W3HAL\n" "W3HBA\n" "W3HDH\n" "W3HHN\n" "W3HKK\n" "W3HMR\n" "W3HNK\n" "W3HP\n" "W3HWY\n" "W3HZU\n" "W3IDT\n" "W3IHY\n" "W3II\n" "W3IK\n" "W3IL\n" "W3IP\n" "W3IQ\n" "W3IUU\n" "W3IZ\n" "W3JAA\n" "W3JBS\n" "W3JK\n" "W3JXP\n" "W3KB\n" "W3KDR\n" "W3KL\n" "W3KLG\n" "W3KM\n" "W3KS\n" "W3KWH\n" "W3LD\n" "W3LDG\n" "W3LJ\n" "W3LL\n" "W3LPL\n" "W3LR\n" "W3LSW\n" "W3MAT\n" "W3MC\n" "W3MEL\n" "W3MF\n" "W3MIK\n" "W3ML\n" "W3MR\n" "W3MRL\n" "W3MWR\n" "W3NF\n" "W3NJ\n" "W3NO\n" "W3NR\n" "W3NR/4\n" "W3NV\n" "W3NX\n" "W3OA\n" "W3OC\n" "W3OD\n" "W3ODJ\n" "W3OE\n" "W3OFD\n" "W3OFT\n" "W3OK\n" "W3OKC\n" "W3OU\n" "W3OUF\n" "W3PA\n" "W3PD\n" "W3PF\n" "W3PFC\n" "W3PG\n" "W3PH\n" "W3PMV\n" "W3PN\n" "W3PO\n" "W3PP\n" "W3PRL\n" "W3PV\n" "W3PX\n" "W3QK\n" "W3RA\n" "W3RCP\n" "W3RI\n" "W3RJ\n" "W3RLO\n" "W3RT\n" "W3SB\n" "W3SD\n" "W3SE\n" "W3SFG\n" "W3SM\n" "W3SO\n" "W3SON\n" "W3SQ\n" "W3TB\n" "W3TB/VP9\n" "W3TC\n" "W3TD\n" "W3TDF\n" "W3TMC\n" "W3TMS\n" "W3TMZ\n" "W3TN\n" "W3TNU\n" "W3TS\n" "W3TUA\n" "W3TZ\n" "W3UA\n" "W3UL\n" "W3UM\n" "W3UR\n" "W3USA\n" "W3UTD\n" "W3VT\n" "W3WC\n" "W3WH\n" "W3WKX\n" "W3WL\n" "W3WN\n" "W3WOT\n" "W3WPA\n" "W3WRL\n" "W3WTJ\n" "W3WW\n" "W3XB\n" "W3XG\n" "W3XX\n" "W3XY\n" "W3YJ\n" "W3YR\n" "W3YX\n" "W3YY\n" "W3YZM\n" "W3ZA\n" "W3ZF\n" "W3ZGD\n" "W3ZI\n" "W3ZL\n" "W3ZQI\n" "W3ZV\n" "W3ZYF\n" "W3ZZ\n" "W3ZZX\n" "W4/AL7HW\n" "W4/G3LIK\n" "W4/OH2MQ\n" "W4AA\n" "W4AAA\n" "W4AAM\n" "W4ABE\n" "W4AEJ\n" "W4AG\n" "W4AGS\n" "W4AJT\n" "W4AK\n" "W4AKO\n" "W4ALA\n" "W4AMP\n" "W4AMS\n" "W4AMW\n" "W4AN\n" "W4ANR\n" "W4AO\n" "W4ARM\n" "W4AS\n" "W4ASE\n" "W4ATK\n" "W4ATL\n" "W4ATM\n" "W4AU\n" "W4AUB\n" "W4AV\n" "W4AVV\n" "W4AWF\n" "W4AZR\n" "W4BAB\n" "W4BAI\n" "W4BAK\n" "W4BCG\n" "W4BCU\n" "W4BFB\n" "W4BGH\n" "W4BHJ\n" "W4BK\n" "W4BKV\n" "W4BLA\n" "W4BNM\n" "W4BNO\n" "W4BQF\n" "W4BTZ\n" "W4BUE\n" "W4BUW\n" "W4BW\n" "W4BXI\n" "W4CA\n" "W4CB\n" "W4CCS\n" "W4CDM\n" "W4CFF\n" "W4CHA\n" "W4CI\n" "W4CID\n" "W4CK\n" "W4CKD\n" "W4CLJ\n" "W4CM\n" "W4CMM\n" "W4COH\n" "W4CPO\n" "W4CQZ\n" "W4CU\n" "W4CWA\n" "W4CZ\n" "W4CZU\n" "W4DAN\n" "W4DAS\n" "W4DAT\n" "W4DBT\n" "W4DD\n" "W4DDR\n" "W4DF\n" "W4DFW\n" "W4DHX\n" "W4DJ\n" "W4DK\n" "W4DKB\n" "W4DKR\n" "W4DKS\n" "W4DL\n" "W4DLZ\n" "W4DN\n" "W4DNN\n" "W4DNQ\n" "W4DNT\n" "W4DR\n" "W4DTA\n" "W4DU\n" "W4DUG\n" "W4DUP\n" "W4DVG\n" "W4DYR\n" "W4EA\n" "W4EBA\n" "W4EDE\n" "W4EE\n" "W4EEH\n" "W4EF\n" "W4EI\n" "W4EIB\n" "W4EIP\n" "W4EJG\n" "W4ELP\n" "W4EMM\n" "W4ENN\n" "W4ERD\n" "W4ET\n" "W4ETB\n" "W4EW\n" "W4EY\n" "W4FCR\n" "W4FCU\n" "W4FDA\n" "W4FHC\n" "W4FI\n" "W4FIN\n" "W4FOA\n" "W4FOT\n" "W4FRA\n" "W4FT\n" "W4FUN\n" "W4FW\n" "W4FXE\n" "W4FXO\n" "W4GAC\n" "W4GBU\n" "W4GD\n" "W4GHD\n" "W4GHS\n" "W4GHW\n" "W4GIW\n" "W4GKA\n" "W4GKF\n" "W4GKM\n" "W4GKP\n" "W4GKR\n" "W4GKT\n" "W4GM\n" "W4GMH\n" "W4GMS\n" "W4GNS\n" "W4GRC\n" "W4GRV\n" "W4GV\n" "W4GWL\n" "W4HAK\n" "W4HG\n" "W4HGW\n" "W4HIJ\n" "W4HJ\n" "W4HLD\n" "W4HLN\n" "W4HMV\n" "W4HOD\n" "W4HQF\n" "W4HRC\n" "W4HSA\n" "W4HVW\n" "W4HX\n" "W4HYT\n" "W4HZ\n" "W4HZD\n" "W4IA\n" "W4IBI\n" "W4ID\n" "W4IDW\n" "W4IEI\n" "W4IFG\n" "W4IHI\n" "W4II\n" "W4ILC\n" "W4IM\n" "W4IOW\n" "W4IR\n" "W4IS\n" "W4ISI\n" "W4IT\n" "W4IU\n" "W4IX\n" "W4IY\n" "W4JAM\n" "W4JCM\n" "W4JHC\n" "W4JHU\n" "W4JKC\n" "W4JLS\n" "W4JME\n" "W4JMJ\n" "W4JNH\n" "W4JO\n" "W4JS\n" "W4JSI\n" "W4JVN\n" "W4JVY\n" "W4KA\n" "W4KAZ\n" "W4KD\n" "W4KDB\n" "W4KES\n" "W4KFA\n" "W4KFC\n" "W4KFH\n" "W4KIL\n" "W4KLY\n" "W4KN\n" "W4KP\n" "W4KPA\n" "W4KPG\n" "W4KRN\n" "W4KS\n" "W4KTR\n" "W4KVS\n" "W4KVW\n" "W4KW\n" "W4KZ\n" "W4LC\n" "W4LCL\n" "W4LDA\n" "W4LDE\n" "W4LHS\n" "W4LIA\n" "W4LJM\n" "W4LK\n" "W4LLX\n" "W4LLY\n" "W4LM\n" "W4LOS\n" "W4LQ\n" "W4LSC\n" "W4LT\n" "W4LWW\n" "W4MAL\n" "W4MAY\n" "W4MBD\n" "W4MCQ\n" "W4MEL\n" "W4MIR\n" "W4MJA\n" "W4ML\n" "W4MLB\n" "W4MLN\n" "W4MOT\n" "W4MPS\n" "W4MQC\n" "W4MR\n" "W4MY\n" "W4MYA\n" "W4NA\n" "W4NB\n" "W4NBS\n" "W4NBY\n" "W4NC\n" "W4NE\n" "W4NF\n" "W4NHJ\n" "W4NI\n" "W4NJK\n" "W4NL\n" "W4NLX\n" "W4NML\n" "W4NP\n" "W4NPX\n" "W4NSC\n" "W4NT\n" "W4NTI\n" "W4NUN\n" "W4NX\n" "W4NZ\n" "W4OC\n" "W4OCO\n" "W4OEQ\n" "W4OG\n" "W4OGG\n" "W4OI\n" "W4OJC\n" "W4OM\n" "W4OTN\n" "W4OV\n" "W4OX\n" "W4OY\n" "W4PA\n" "W4PBG\n" "W4PBU\n" "W4PC\n" "W4PDX\n" "W4PFM\n" "W4PG\n" "W4PGC\n" "W4PGM\n" "W4PHS\n" "W4PJ\n" "W4PJP\n" "W4PJW\n" "W4PK\n" "W4PL\n" "W4PM\n" "W4PR\n" "W4PTY\n" "W4PUX\n" "W4PV\n" "W4PVC\n" "W4PVT\n" "W4PY\n" "W4QF\n" "W4QG\n" "W4QJ\n" "W4QK\n" "W4QM\n" "W4QN\n" "W4QNW\n" "W4QO\n" "W4RAA\n" "W4RBO\n" "W4REG\n" "W4REM\n" "W4RG\n" "W4RIS\n" "W4RJ\n" "W4RK\n" "W4RK/0\n" "W4RKC\n" "W4RKZ\n" "W4RL\n" "W4RM\n" "W4RNK\n" "W4RQ\n" "W4RRE\n" "W4RU\n" "W4RVN\n" "W4RVU\n" "W4RX\n" "W4RYW\n" "W4SAA\n" "W4SAR\n" "W4SEC\n" "W4SES\n" "W4SHG\n" "W4SIG\n" "W4SJV\n" "W4SK\n" "W4SKI\n" "W4SKW\n" "W4SLT\n" "W4SO\n" "W4SOH\n" "W4SQL\n" "W4STB\n" "W4SUL\n" "W4SVO\n" "W4SVP\n" "W4SYV\n" "W4TAA\n" "W4TBB\n" "W4TD\n" "W4TDC\n" "W4TGB\n" "W4TGT\n" "W4TIJ\n" "W4TJE\n" "W4TJW\n" "W4TKI\n" "W4TME\n" "W4TMN\n" "W4TMO\n" "W4TMR\n" "W4TO\n" "W4TQ\n" "W4TRL\n" "W4TSP\n" "W4TUG\n" "W4TUN\n" "W4TVG\n" "W4UAL\n" "W4UAS\n" "W4UAT\n" "W4UBC\n" "W4UCZ\n" "W4UDX\n" "W4UE\n" "W4UEB\n" "W4UEF\n" "W4UFO\n" "W4UH\n" "W4UHF\n" "W4UK\n" "W4UNP\n" "W4UOR\n" "W4UP\n" "W4USC\n" "W4UT\n" "W4UUM\n" "W4UVA\n" "W4UX\n" "W4VAB\n" "W4VDW\n" "W4VES\n" "W4VG\n" "W4VGI\n" "W4VGX\n" "W4VHH\n" "W4VIC\n" "W4VJ\n" "W4VKU\n" "W4VQ\n" "W4VR\n" "W4VV\n" "W4VX\n" "W4WAM\n" "W4WFX\n" "W4WKN\n" "W4WL\n" "W4WLF\n" "W4WNT\n" "W4WQ\n" "W4WR\n" "W4WRL\n" "W4WRS\n" "W4WS\n" "W4WSW\n" "W4WTB\n" "W4WVP\n" "W4WWK\n" "W4WWV\n" "W4WX\n" "W4XD\n" "W4XDX\n" "W4XE\n" "W4XO\n" "W4XQ\n" "W4XW\n" "W4YA\n" "W4YCC\n" "W4YCZ\n" "W4YD\n" "W4YDY\n" "W4YE\n" "W4YFJ\n" "W4YHD\n" "W4YK\n" "W4YOK\n" "W4YWX\n" "W4ZAN\n" "W4ZE\n" "W4ZEW\n" "W4ZF\n" "W4ZGR\n" "W4ZJ\n" "W4ZKE\n" "W4ZLU\n" "W4ZPH\n" "W4ZPR\n" "W4ZV\n" "W4ZW\n" "W4ZYT\n" "W5ABC\n" "W5ACB\n" "W5AFW\n" "W5AG\n" "W5AJ\n" "W5AJD\n" "W5AK\n" "W5AO\n" "W5AP\n" "W5APS\n" "W5AQ\n" "W5ASP\n" "W5AT\n" "W5AU\n" "W5AZ\n" "W5BAK\n" "W5BEN\n" "W5BN\n" "W5BOL\n" "W5BRW\n" "W5CDX\n" "W5CF\n" "W5CHA\n" "W5CJF\n" "W5CN\n" "W5CPT\n" "W5CRD\n" "W5CU\n" "W5CUB\n" "W5CWQ\n" "W5CX\n" "W5DAC\n" "W5DAW\n" "W5DC\n" "W5DET\n" "W5DEZ\n" "W5DJT\n" "W5DKK\n" "W5DNT\n" "W5DPR\n" "W5DQ\n" "W5DWA\n" "W5EEA\n" "W5EK\n" "W5EMC\n" "W5EN\n" "W5EPW\n" "W5ERX\n" "W5ESE\n" "W5ETJ\n" "W5EZI\n" "W5FBK\n" "W5FIT\n" "W5FO\n" "W5FP\n" "W5FPT\n" "W5FWR\n" "W5FYR\n" "W5FZ\n" "W5GA\n" "W5GAI\n" "W5GCX\n" "W5GFI\n" "W5GFR\n" "W5GG\n" "W5GGO\n" "W5GHZ\n" "W5GI\n" "W5GJ\n" "W5GLW\n" "W5GN\n" "W5GT\n" "W5GWH\n" "W5GXV\n" "W5GZ\n" "W5HD\n" "W5HFF\n" "W5HNK\n" "W5HNS\n" "W5HPQ\n" "W5HY\n" "W5HYN\n" "W5IF\n" "W5IFP\n" "W5IHN\n" "W5IO\n" "W5IV\n" "W5IZ\n" "W5JAK\n" "W5JAO\n" "W5JAW\n" "W5JAY\n" "W5JBO\n" "W5JBV\n" "W5JDF\n" "W5JE\n" "W5JJ\n" "W5JK\n" "W5JLF\n" "W5JLH\n" "W5JLR\n" "W5JMW\n" "W5JNL\n" "W5JNP\n" "W5JQ\n" "W5JR\n" "W5JRT\n" "W5JZ\n" "W5KD\n" "W5KDJ\n" "W5KEB\n" "W5KFT\n" "W5KI\n" "W5KK\n" "W5KNE\n" "W5KNN\n" "W5KQ\n" "W5KRB\n" "W5KU\n" "W5KV\n" "W5LD\n" "W5LE\n" "W5LEO\n" "W5LJW\n" "W5LS\n" "W5LUA\n" "W5LW\n" "W5LXG\n" "W5MDC\n" "W5MET\n" "W5MF\n" "W5MIC\n" "W5MIL\n" "W5MJ\n" "W5MK\n" "W5MMX\n" "W5MPC\n" "W5MSR\n" "W5MT\n" "W5MX\n" "W5NUT\n" "W5NWR\n" "W5NYC\n" "W5OB\n" "W5OJT\n" "W5OM\n" "W5OMU\n" "W5ONX\n" "W5OOO\n" "W5OU\n" "W5OV\n" "W5PDW\n" "W5PEM\n" "W5PET\n" "W5PF\n" "W5PG\n" "W5PJR\n" "W5PJW\n" "W5PKE\n" "W5PO\n" "W5PQ\n" "W5PR\n" "W5PUF\n" "W5QLF\n" "W5QM\n" "W5QP\n" "W5RAW\n" "W5RCD\n" "W5RDW\n" "W5RE\n" "W5RI\n" "W5RJA\n" "W5ROS\n" "W5RQ\n" "W5RRP\n" "W5RU\n" "W5RW\n" "W5RY\n" "W5RYA\n" "W5RZ\n" "W5SG\n" "W5SGL\n" "W5SL\n" "W5SQA\n" "W5SV\n" "W5SWV\n" "W5SXD\n" "W5TA\n" "W5TAF\n" "W5TCR\n" "W5TCX\n" "W5TFW\n" "W5THT\n" "W5TM\n" "W5TMC\n" "W5TO\n" "W5TT\n" "W5TTE\n" "W5TUU\n" "W5TV\n" "W5TX\n" "W5TZC\n" "W5UC\n" "W5UD\n" "W5UE\n" "W5UFA\n" "W5UHQ\n" "W5UHQ/W8\n" "W5UM\n" "W5UN\n" "W5UW\n" "W5VAN\n" "W5VDM\n" "W5VE\n" "W5VEK\n" "W5VFO\n" "W5VGR\n" "W5VQ\n" "W5VX\n" "W5VY\n" "W5VYH\n" "W5VZF\n" "W5VZM\n" "W5WEE\n" "W5WFF\n" "W5WLA\n" "W5WM\n" "W5WMU\n" "W5WP\n" "W5WRE\n" "W5WRJ\n" "W5WSS\n" "W5WT\n" "W5WW\n" "W5WY\n" "W5WZ\n" "W5XB\n" "W5XC\n" "W5XD\n" "W5XN\n" "W5XU\n" "W5XX\n" "W5XZ\n" "W5YAA\n" "W5YC\n" "W5YD\n" "W5YDM\n" "W5YM\n" "W5YZ\n" "W5ZAX\n" "W5ZD\n" "W5ZE\n" "W5ZG\n" "W5ZH\n" "W5ZL\n" "W5ZN\n" "W5ZO\n" "W5ZPA\n" "W5ZQ\n" "W5ZR\n" "W5ZZ\n" "W6/VK2IMM\n" "W6AAN\n" "W6ABM\n" "W6AEA\n" "W6AEQ\n" "W6AFA\n" "W6AH\n" "W6AHB\n" "W6AMM\n" "W6AMY\n" "W6AQ\n" "W6ARU\n" "W6ASP\n" "W6AT\n" "W6ATV\n" "W6AUG\n" "W6AWS\n" "W6AYC\n" "W6BCQ\n" "W6BH\n" "W6BJH\n" "W6BK\n" "W6BN\n" "W6BO\n" "W6BSY\n" "W6BT\n" "W6BVB\n" "W6BWG\n" "W6BX\n" "W6BXQ\n" "W6BXQ/4\n" "W6CCP\n" "W6CS\n" "W6CT\n" "W6CWM\n" "W6CYX\n" "W6CZ\n" "W6DAW\n" "W6DCC\n" "W6DDB\n" "W6DDD\n" "W6DDX\n" "W6DEP\n" "W6DF\n" "W6DNE\n" "W6DOC\n" "W6DOE\n" "W6DOJ\n" "W6DPD\n" "W6DR\n" "W6DRX\n" "W6DSG\n" "W6DVS\n" "W6DW\n" "W6DXO\n" "W6DXW\n" "W6EA\n" "W6EB\n" "W6EJJ\n" "W6EM\n" "W6EMC\n" "W6ENZ\n" "W6EOD\n" "W6ERN\n" "W6EU\n" "W6EUF\n" "W6FA\n" "W6FB\n" "W6FEL\n" "W6FFH\n" "W6FG\n" "W6FH\n" "W6FI\n" "W6FTA\n" "W6FUV\n" "W6GA\n" "W6GBG\n" "W6GEE\n" "W6GL\n" "W6GMP\n" "W6GMT\n" "W6GMU\n" "W6GR\n" "W6GRT\n" "W6GRV\n" "W6GS\n" "W6GU\n" "W6GV\n" "W6GX\n" "W6HF\n" "W6HFM\n" "W6HG\n" "W6HGF\n" "W6HH\n" "W6HN\n" "W6HTC\n" "W6HTY\n" "W6HYK\n" "W6IA\n" "W6IGK\n" "W6IHG\n" "W6IHG/4\n" "W6II\n" "W6IJ\n" "W6IMF\n" "W6IS\n" "W6ISO\n" "W6IXP\n" "W6IYS\n" "W6IZT\n" "W6JAZ\n" "W6JD\n" "W6JJW\n" "W6JK\n" "W6JL\n" "W6JNU\n" "W6JOD\n" "W6JPC\n" "W6JTI\n" "W6JV\n" "W6JVA\n" "W6JXH\n" "W6JYT\n" "W6JYT/7\n" "W6JZH\n" "W6KA\n" "W6KAT\n" "W6KC\n" "W6KGP\n" "W6KH\n" "W6KJ\n" "W6KK\n" "W6KPC\n" "W6KW\n" "W6KY\n" "W6LAB\n" "W6LAR\n" "W6LD\n" "W6LED\n" "W6LEN\n" "W6LFB\n" "W6LG\n" "W6LGS\n" "W6LOL\n" "W6LW\n" "W6LX\n" "W6MAC\n" "W6MCA\n" "W6MIL\n" "W6ML\n" "W6MM\n" "W6MQI\n" "W6MUB\n" "W6MVW\n" "W6MY\n" "W6MZQ\n" "W6ND\n" "W6NEK\n" "W6NF\n" "W6NIA\n" "W6NL\n" "W6NOW\n" "W6NPR\n" "W6NRJ\n" "W6NRW\n" "W6NV\n" "W6NWF\n" "W6NWS\n" "W6NY\n" "W6OAR\n" "W6OAT\n" "W6OES\n" "W6OEZ\n" "W6OFM\n" "W6ONV\n" "W6OOL\n" "W6OP\n" "W6OPO\n" "W6OQI\n" "W6OR\n" "W6ORD\n" "W6OSP\n" "W6OTC\n" "W6OUL\n" "W6OWI\n" "W6OZI\n" "W6PBF\n" "W6PDX\n" "W6PH\n" "W6PJ\n" "W6POK\n" "W6PSA\n" "W6PU\n" "W6PZ\n" "W6QE\n" "W6QJI\n" "W6QO\n" "W6QU\n" "W6QUV\n" "W6RA\n" "W6RAR\n" "W6RBA\n" "W6RDG\n" "W6RE\n" "W6RFF\n" "W6RFU\n" "W6RGG\n" "W6RJ\n" "W6RK\n" "W6RKC\n" "W6RLK\n" "W6RLL\n" "W6RLL/7\n" "W6RMC\n" "W6RO\n" "W6RQ\n" "W6RQR\n" "W6RS\n" "W6RSP\n" "W6RTW\n" "W6RYI\n" "W6SA\n" "W6SA/7\n" "W6SAI\n" "W6SC\n" "W6SGJ/7\n" "W6SIY\n" "W6SJ\n" "W6SL\n" "W6SQC\n" "W6SR\n" "W6SW\n" "W6SX\n" "W6SZG\n" "W6SZN\n" "W6TA\n" "W6TAD\n" "W6TAI\n" "W6TAN\n" "W6TC\n" "W6TH\n" "W6TJ\n" "W6TJI\n" "W6TK\n" "W6TKV\n" "W6TMD\n" "W6TQG\n" "W6TRI\n" "W6TRI/9\n" "W6TTF\n" "W6TYG\n" "W6UB\n" "W6UDO\n" "W6UE\n" "W6UFO\n" "W6UM\n" "W6UQZ\n" "W6UR\n" "W6USN\n" "W6UW\n" "W6UX\n" "W6VAR\n" "W6VM\n" "W6VNQ\n" "W6VNR\n" "W6VPH\n" "W6VW\n" "W6VX\n" "W6VY\n" "W6WAR\n" "W6WB\n" "W6WGC\n" "W6WQC\n" "W6WRT\n" "W6WVW\n" "W6XB\n" "W6XI\n" "W6XK\n" "W6XLR\n" "W6XR\n" "W6XR/2\n" "W6XTC\n" "W6XU\n" "W6XX\n" "W6YA\n" "W6YDE\n" "W6YI\n" "W6YRA\n" "W6YV\n" "W6YX\n" "W6YXY\n" "W6ZEN\n" "W6ZL\n" "W6ZO\n" "W6ZR\n" "W6ZZ\n" "W7/KL7WP\n" "W7AAD\n" "W7ABC\n" "W7ACD\n" "W7ACX\n" "W7AFR\n" "W7AIT\n" "W7AK\n" "W7AL\n" "W7AML\n" "W7APE\n" "W7AQK\n" "W7ASF\n" "W7ASF/VY2\n" "W7ASU\n" "W7AT\n" "W7AUM\n" "W7AWA\n" "W7AWH\n" "W7AY\n" "W7AYN\n" "W7BBC\n" "W7BBQ\n" "W7BCC\n" "W7BEB\n" "W7BEM\n" "W7BG\n" "W7BIA\n" "W7BJB\n" "W7BJN\n" "W7BPM\n" "W7BQ\n" "W7BRS\n" "W7BV\n" "W7CA\n" "W7CAR\n" "W7CB\n" "W7CEG\n" "W7CEL\n" "W7CF\n" "W7CFR\n" "W7CM\n" "W7CNA\n" "W7CNL\n" "W7COH\n" "W7COM\n" "W7CPI\n" "W7CT\n" "W7CV\n" "W7CWR\n" "W7CXA\n" "W7DAO\n" "W7DCS\n" "W7DDD\n" "W7DEV\n" "W7DFO\n" "W7DG\n" "W7DK\n" "W7DMV\n" "W7DO\n" "W7DOC\n" "W7DPW\n" "W7DR\n" "W7DRA\n" "W7DTG\n" "W7DX\n" "W7EB\n" "W7ED\n" "W7EJ\n" "W7EKG\n" "W7EPA\n" "W7ESE\n" "W7EW\n" "W7EWG\n" "W7EXC\n" "W7EYE\n" "W7FB\n" "W7FF\n" "W7FFD\n" "W7FG\n" "W7FM\n" "W7FP\n" "W7FYW\n" "W7GAX\n" "W7GB\n" "W7GCM\n" "W7GET\n" "W7GH\n" "W7GKF\n" "W7GKF/6\n" "W7GLC\n" "W7GM\n" "W7GMC\n" "W7GN\n" "W7GO\n" "W7GS\n" "W7GSV\n" "W7GT\n" "W7GTH\n" "W7GTO\n" "W7GVE\n" "W7HB\n" "W7HJ\n" "W7HJ/4\n" "W7HO\n" "W7HPW\n" "W7HQC\n" "W7HS\n" "W7HWR\n" "W7HX\n" "W7HY\n" "W7IAN\n" "W7ID\n" "W7IDG\n" "W7IIT\n" "W7IJ\n" "W7IJN\n" "W7IMP\n" "W7IMU\n" "W7IN\n" "W7IU\n" "W7IUO\n" "W7IUV\n" "W7IVM\n" "W7IWB\n" "W7IX\n" "W7IY\n" "W7IZ\n" "W7IZL\n" "W7JAF\n" "W7JAM\n" "W7JAZ\n" "W7JDE\n" "W7JEN\n" "W7JFF\n" "W7JI\n" "W7JIF\n" "W7JK\n" "W7JLC\n" "W7JPI\n" "W7JQ\n" "W7JVN\n" "W7JW\n" "W7JY\n" "W7KAM\n" "W7KAT\n" "W7KB\n" "W7KBI\n" "W7KBM\n" "W7KEY\n" "W7KF\n" "W7KFY\n" "W7KKR\n" "W7KL\n" "W7KPL\n" "W7KQ\n" "W7KQU\n" "W7KQZ\n" "W7KTE\n" "W7KU\n" "W7KVN\n" "W7KZO\n" "W7LB\n" "W7LBN\n" "W7LD\n" "W7LEA\n" "W7LEB\n" "W7LGG\n" "W7LKG\n" "W7LNG\n" "W7LOU\n" "W7LR\n" "W7LRD\n" "W7LX\n" "W7MAD\n" "W7MAL\n" "W7MAP/5\n" "W7MD\n" "W7MDK\n" "W7MEM\n" "W7MEW\n" "W7MEX\n" "W7MFC\n" "W7MJJ\n" "W7MJM\n" "W7MM\n" "W7MPZ\n" "W7MRC\n" "W7MS\n" "W7MTL\n" "W7NAT\n" "W7NBH\n" "W7ND\n" "W7NE\n" "W7NEE\n" "W7NER\n" "W7NNN\n" "W7NO\n" "W7NP\n" "W7NUW\n" "W7NYG\n" "W7OE\n" "W7OIL\n" "W7OM\n" "W7ON\n" "W7OR\n" "W7OTV\n" "W7OU\n" "W7OXB\n" "W7OYW\n" "W7PEB\n" "W7PN\n" "W7POE\n" "W7PP\n" "W7PP/8\n" "W7PRO\n" "W7PSK\n" "W7PT\n" "W7PU\n" "W7QC\n" "W7QDM\n" "W7QEK\n" "W7QF\n" "W7QL\n" "W7QN\n" "W7QQQ\n" "W7QR\n" "W7RF\n" "W7RG\n" "W7RH\n" "W7RIP\n" "W7RJ\n" "W7RM\n" "W7RN\n" "W7RNF\n" "W7ROE\n" "W7RPT\n" "W7RRS\n" "W7RT\n" "W7RTL\n" "W7RTO\n" "W7RTX\n" "W7RV\n" "W7RY\n" "W7SCT\n" "W7SE\n" "W7SID\n" "W7SMW\n" "W7SNH\n" "W7SO\n" "W7SSO\n" "W7SST\n" "W7SUR\n" "W7SV\n" "W7SW\n" "W7SWL\n" "W7SX\n" "W7TAE\n" "W7THS\n" "W7THY\n" "W7TJ\n" "W7TMD\n" "W7TMT\n" "W7TNS\n" "W7TSQ\n" "W7TVC\n" "W7TVF\n" "W7TYN\n" "W7UA\n" "W7UDG\n" "W7UG\n" "W7ULV\n" "W7UPF\n" "W7UQ\n" "W7URX\n" "W7USA\n" "W7UT\n" "W7UV\n" "W7VJ\n" "W7VMI\n" "W7VO\n" "W7VP\n" "W7VS\n" "W7VSM\n" "W7VT\n" "W7VV\n" "W7VXS\n" "W7VY\n" "W7WA\n" "W7WEC\n" "W7WES\n" "W7WH\n" "W7WHO\n" "W7WHY\n" "W7WLL\n" "W7WMO\n" "W7WOF\n" "W7WPR\n" "W7WVF\n" "W7WW\n" "W7WWA\n" "W7XA\n" "W7XC\n" "W7XG\n" "W7XI\n" "W7XU\n" "W7XZ\n" "W7YA\n" "W7YAQ\n" "W7YED\n" "W7YES\n" "W7YKM\n" "W7YKN\n" "W7YM\n" "W7YMS\n" "W7YOW\n" "W7YOZ\n" "W7YP\n" "W7YS\n" "W7YV\n" "W7YVK\n" "W7YW\n" "W7YY\n" "W7ZAC\n" "W7ZB\n" "W7ZBS\n" "W7ZEB\n" "W7ZI\n" "W7ZJ\n" "W7ZMD\n" "W7ZOI\n" "W7ZQ\n" "W7ZR\n" "W7ZRC\n" "W7ZT\n" "W8/T98T\n" "W8/W1AW\n" "W8AAX\n" "W8AB\n" "W8AEF\n" "W8AEF/7\n" "W8AF\n" "W8AJS\n" "W8AKS\n" "W8AN\n" "W8ARC\n" "W8ASA\n" "W8AV\n" "W8AZA\n" "W8BAQ\n" "W8BAR\n" "W8BBM\n" "W8BBQ\n" "W8BC\n" "W8BD\n" "W8BFX\n" "W8BG\n" "W8BI\n" "W8BLA\n" "W8BTD\n" "W8BXG\n" "W8BZY\n" "W8CAA\n" "W8CAM\n" "W8CAR\n" "W8CCW\n" "W8CD\n" "W8CDA\n" "W8CJQ\n" "W8CO\n" "W8CT\n" "W8CZN\n" "W8DA\n" "W8DBF\n" "W8DC\n" "W8DCH\n" "W8DCQ\n" "W8DD\n" "W8DEO\n" "W8DEP\n" "W8DF\n" "W8DHG\n" "W8DJ\n" "W8DLD\n" "W8DM\n" "W8DN\n" "W8DO\n" "W8DQ\n" "W8DRZ\n" "W8DSN\n" "W8DW\n" "W8DX\n" "W8DYY\n" "W8EDU\n" "W8EGI\n" "W8EH\n" "W8EII\n" "W8EJK\n" "W8EL\n" "W8EMI\n" "W8EMT\n" "W8ERD\n" "W8ERN\n" "W8FAX\n" "W8FDN\n" "W8FEM\n" "W8FGX\n" "W8FJ\n" "W8FN\n" "W8FR\n" "W8FT\n" "W8FV\n" "W8GBH\n" "W8GC\n" "W8GEX\n" "W8GF\n" "W8GG\n" "W8GJ\n" "W8GNM\n" "W8GNM/8\n" "W8GOC\n" "W8GP\n" "W8GR\n" "W8GRP\n" "W8GTS\n" "W8GXB\n" "W8GXT\n" "W8HC\n" "W8HCS\n" "W8HF\n" "W8HFY\n" "W8HGH\n" "W8HMK\n" "W8HOM\n" "W8HPJ\n" "W8HW\n" "W8ID\n" "W8IDM\n" "W8ILC\n" "W8IM\n" "W8IQ\n" "W8ISZ\n" "W8IVF\n" "W8IW\n" "W8IZC\n" "W8JA\n" "W8JE\n" "W8JGU\n" "W8JH\n" "W8JI\n" "W8JJ\n" "W8JMF\n" "W8JRK\n" "W8JTM\n" "W8JTW\n" "W8JV\n" "W8JWA\n" "W8JWN\n" "W8JY\n" "W8KA\n" "W8KEN\n" "W8KER\n" "W8KHP\n" "W8KHP/4\n" "W8KJ\n" "W8KJP\n" "W8KNO\n" "W8KQE\n" "W8KR\n" "W8KRZ\n" "W8KTQ\n" "W8KV\n" "W8KX\n" "W8KZP\n" "W8LBZ\n" "W8LEW\n" "W8LGJ\n" "W8LGX\n" "W8LJB\n" "W8LKG\n" "W8LKU\n" "W8LM\n" "W8LO\n" "W8LQ\n" "W8LR\n" "W8LRL\n" "W8LRO\n" "W8LSV\n" "W8LU\n" "W8LVN\n" "W8LYJ\n" "W8MC\n" "W8MET\n" "W8MHW\n" "W8MIS\n" "W8MJ\n" "W8MKH\n" "W8MKR\n" "W8MLO\n" "W8MP\n" "W8MSK\n" "W8NA\n" "W8NBG\n" "W8NCN\n" "W8NDG\n" "W8NET\n" "W8NF\n" "W8NGA\n" "W8NIC\n" "W8NJR\n" "W8NNC\n" "W8NYK\n" "W8OEY\n" "W8OH\n" "W8OHT\n" "W8OI\n" "W8OKN\n" "W8OP\n" "W8OTY\n" "W8OU\n" "W8OV\n" "W8OWS\n" "W8OX\n" "W8OY/YO\n" "W8PBO\n" "W8PC\n" "W8PDI\n" "W8PEN\n" "W8PG\n" "W8PGW\n" "W8PI\n" "W8PN\n" "W8POF\n" "W8POF/4\n" "W8PT\n" "W8PU\n" "W8PWQ\n" "W8QGP\n" "W8QID\n" "W8QQC\n" "W8QQQ\n" "W8QW\n" "W8QY\n" "W8QZA\n" "W8RA\n" "W8RC\n" "W8RCY\n" "W8REG\n" "W8REW\n" "W8RHM\n" "W8RID\n" "W8RIT\n" "W8RJL\n" "W8RJM\n" "W8RSI\n" "W8RT\n" "W8RU\n" "W8SAN\n" "W8SAX\n" "W8SF\n" "W8SH\n" "W8SJ\n" "W8SOO\n" "W8SQ\n" "W8SY\n" "W8SYD\n" "W8SYR\n" "W8TE\n" "W8TIV\n" "W8TJ\n" "W8TK\n" "W8TM\n" "W8TN\n" "W8TOM\n" "W8TOP\n" "W8TRN\n" "W8TU\n" "W8TVQ\n" "W8TWA\n" "W8TZ\n" "W8UD\n" "W8UDX\n" "W8UDY\n" "W8UE\n" "W8UI\n" "W8UMD\n" "W8UMH\n" "W8UV\n" "W8UVZ\n" "W8VCK\n" "W8VE\n" "W8VI\n" "W8VM\n" "W8VO\n" "W8VS\n" "W8VSK\n" "W8VVE\n" "W8VVG\n" "W8VXH\n" "W8WA\n" "W8WCQ\n" "W8WD\n" "W8WEJ\n" "W8WFN\n" "W8WG\n" "W8WGT\n" "W8WH\n" "W8WHG\n" "W8WOJ\n" "W8WTL\n" "W8WTS\n" "W8WVM\n" "W8WVU\n" "W8WWC\n" "W8WY\n" "W8XC\n" "W8XD\n" "W8XP\n" "W8XR\n" "W8XY\n" "W8XZ\n" "W8YMO\n" "W8YU\n" "W8YY\n" "W8ZA\n" "W8ZC\n" "W8ZD\n" "W8ZHO\n" "W8ZM\n" "W8ZN\n" "W8ZR\n" "W8ZU\n" "W8ZZU\n" "W9/DM5TI\n" "W9/NP2I\n" "W9/UY5LW\n" "W9AAC\n" "W9ACE\n" "W9AEB\n" "W9AEM\n" "W9AKS\n" "W9AMX\n" "W9ANT\n" "W9APE\n" "W9AQ\n" "W9ATU\n" "W9AV\n" "W9AVM\n" "W9AZ\n" "W9BDN\n" "W9BF\n" "W9BGA\n" "W9BGJ\n" "W9BGX\n" "W9BHI\n" "W9BJ\n" "W9BK\n" "W9BLI\n" "W9BN\n" "W9BNO\n" "W9BOK\n" "W9BP\n" "W9BR\n" "W9BS\n" "W9BWR\n" "W9CA\n" "W9CC\n" "W9CF\n" "W9CJO\n" "W9CL\n" "W9CO\n" "W9COD\n" "W9CPI\n" "W9CPV\n" "W9CSX\n" "W9CYI\n" "W9DC\n" "W9DCO\n" "W9DEW\n" "W9DF\n" "W9DGI\n" "W9DHD\n" "W9DHQ\n" "W9DKB\n" "W9DKL\n" "W9DO\n" "W9DX\n" "W9DY\n" "W9DZ\n" "W9EAU\n" "W9EBK\n" "W9EBO\n" "W9EBY\n" "W9EEU\n" "W9EJB\n" "W9EVT\n" "W9EWZ\n" "W9EXY\n" "W9EYE\n" "W9FAM\n" "W9FBC\n" "W9FF\n" "W9FHA\n" "W9FPZ\n" "W9FR\n" "W9FW\n" "W9FX\n" "W9FY\n" "W9GD\n" "W9GE\n" "W9GG\n" "W9GIG\n" "W9GJG\n" "W9GKA\n" "W9GLG\n" "W9GM\n" "W9GMT\n" "W9GRS\n" "W9GT\n" "W9GVW\n" "W9HA\n" "W9HAK\n" "W9HB\n" "W9HHX\n" "W9HLY\n" "W9HM\n" "W9HPJ\n" "W9HR\n" "W9HT\n" "W9HW\n" "W9IIX\n" "W9IKU\n" "W9IL\n" "W9ILF\n" "W9ILY\n" "W9ILY/0\n" "W9ILY/9\n" "W9IND\n" "W9IP\n" "W9ITT\n" "W9ITV\n" "W9IU\n" "W9IW\n" "W9JA\n" "W9JAZ\n" "W9JDJ\n" "W9JGC\n" "W9JGV\n" "W9JH\n" "W9JI\n" "W9JIU\n" "W9JKF\n" "W9JL\n" "W9JPM\n" "W9JTL\n" "W9JUV\n" "W9JWC\n" "W9JXN\n" "W9KAY/5\n" "W9KB\n" "W9KHH\n" "W9KNI\n" "W9KQD\n" "W9KVR\n" "W9KXI\n" "W9KXQ\n" "W9KXT\n" "W9KY\n" "W9LC\n" "W9LD\n" "W9LDO\n" "W9LHG\n" "W9LIZ\n" "W9LL\n" "W9LLC\n" "W9LNQ\n" "W9LO\n" "W9LP\n" "W9LR\n" "W9LU\n" "W9LW\n" "W9LX\n" "W9LZE\n" "W9MAF\n" "W9MAK\n" "W9MBT\n" "W9MDG\n" "W9MG\n" "W9MHB\n" "W9MIM\n" "W9MK\n" "W9MM\n" "W9MMZ\n" "W9MOF\n" "W9MS\n" "W9MSE\n" "W9MSL\n" "W9MU\n" "W9MWV\n" "W9NG\n" "W9NGA\n" "W9NJY\n" "W9NPI\n" "W9NRC\n" "W9NTO\n" "W9NVK\n" "W9NWY\n" "W9NX\n" "W9NY\n" "W9OA\n" "W9OA/9\n" "W9OBQ\n" "W9OD\n" "W9OF\n" "W9OF/4\n" "W9OL\n" "W9OO\n" "W9OOT\n" "W9OP\n" "W9OSI\n" "W9OY\n" "W9PDS\n" "W9PH\n" "W9PIP\n" "W9PL\n" "W9PL/7\n" "W9PN\n" "W9PNP\n" "W9POC\n" "W9PRD\n" "W9PSE\n" "W9PT\n" "W9PZT\n" "W9QB\n" "W9QL\n" "W9QO\n" "W9QR\n" "W9QS\n" "W9RAM\n" "W9RC\n" "W9RE\n" "W9RGB\n" "W9RIG\n" "W9RIT\n" "W9RLL\n" "W9RM\n" "W9RN\n" "W9RNY\n" "W9ROB\n" "W9ROG\n" "W9RPM\n" "W9RR\n" "W9RSR\n" "W9RTB\n" "W9RUK\n" "W9RVR\n" "W9RWS\n" "W9SE\n" "W9SN\n" "W9SR\n" "W9SSS\n" "W9STG\n" "W9SU\n" "W9SUN\n" "W9SUS\n" "W9SZ\n" "W9TB\n" "W9THD\n" "W9TMW\n" "W9TN\n" "W9TRF\n" "W9TT\n" "W9TTT\n" "W9TTY\n" "W9TY\n" "W9UAL\n" "W9UBP\n" "W9UBT\n" "W9UCW\n" "W9UD\n" "W9UIH\n" "W9UK\n" "W9UM\n" "W9UUM\n" "W9UX\n" "W9VA\n" "W9VHL\n" "W9VNE\n" "W9VOX\n" "W9VQ\n" "W9VSA\n" "W9VT\n" "W9WE\n" "W9WGV\n" "W9WI\n" "W9WJ\n" "W9WLC\n" "W9WLX\n" "W9WS\n" "W9WTF\n" "W9XA\n" "W9XG\n" "W9XN\n" "W9XQ\n" "W9XS\n" "W9XT\n" "W9XX\n" "W9XY\n" "W9YA\n" "W9YK\n" "W9YNI\n" "W9YS\n" "W9YSX\n" "W9YT\n" "W9YYG\n" "W9YZG\n" "W9ZA\n" "W9ZJ\n" "W9ZJX\n" "W9ZR\n" "W9ZRX\n" "W9ZSJ\n" "W9ZT\n" "W9ZV\n" "WA0AAM\n" "WA0AAR\n" "WA0ACF\n" "WA0ASM\n" "WA0AUX\n" "WA0AVL\n" "WA0BJR\n" "WA0BNX\n" "WA0BZA\n" "WA0CED\n" "WA0CTZ\n" "WA0DDC\n" "WA0DEL\n" "WA0DKC\n" "WA0DYJ\n" "WA0EBZ\n" "WA0F\n" "WA0FAA\n" "WA0GNC\n" "WA0GUD\n" "WA0HHX\n" "WA0IAF\n" "WA0IIH\n" "WA0JCO\n" "WA0JH\n" "WA0JTL\n" "WA0KAQ\n" "WA0KDS\n" "WA0KLC\n" "WA0KNP\n" "WA0L\n" "WA0LJM\n" "WA0LPV\n" "WA0LRE\n" "WA0MHJ\n" "WA0N\n" "WA0OFM\n" "WA0OTO\n" "WA0PNB\n" "WA0QVC\n" "WA0RAD\n" "WA0RBW\n" "WA0ROI\n" "WA0RSX\n" "WA0SKN\n" "WA0SXV\n" "WA0USA\n" "WA0VPJ\n" "WA0WDV\n" "WA0WOV\n" "WA0WWW\n" "WA0YVH\n" "WA1APX\n" "WA1APX/8\n" "WA1AR\n" "WA1AWJ\n" "WA1BXY\n" "WA1DBR\n" "WA1DD\n" "WA1DJK\n" "WA1DRQ\n" "WA1EAJ\n" "WA1EHK\n" "WA1EOX\n" "WA1ESO\n" "WA1FCN\n" "WA1FOK\n" "WA1FVJ\n" "WA1FXK\n" "WA1GON\n" "WA1GOS\n" "WA1GS\n" "WA1HFF\n" "WA1IIE\n" "WA1IVN\n" "WA1JAE\n" "WA1JG\n" "WA1JMP\n" "WA1JWJ\n" "WA1KBE\n" "WA1KKM\n" "WA1LMC\n" "WA1LWS\n" "WA1MXT\n" "WA1NGH\n" "WA1NRQ\n" "WA1NTA\n" "WA1NVV\n" "WA1OLV\n" "WA1OUI\n" "WA1PMA\n" "WA1PMA/4\n" "WA1QDP\n" "WA1QYM\n" "WA1RCH\n" "WA1RF\n" "WA1RKS\n" "WA1RUS\n" "WA1SEO\n" "WA1SKQ\n" "WA1SYH\n" "WA1T\n" "WA1T/3\n" "WA1TAC\n" "WA1TDQ\n" "WA1TTL\n" "WA1UJU\n" "WA1VIL\n" "WA1VQY\n" "WA1YZN\n" "WA1Z\n" "WA1ZHM\n" "WA1ZJE\n" "WA1ZYX\n" "WA2AAW\n" "WA2ALY\n" "WA2AOG\n" "WA2ART\n" "WA2ASQ\n" "WA2ASQ/4\n" "WA2AXD\n" "WA2BAH\n" "WA2BCK\n" "WA2BEV\n" "WA2BJN\n" "WA2BKN\n" "WA2BMH\n" "WA2BSW\n" "WA2C\n" "WA2CAM\n" "WA2CG\n" "WA2CLP\n" "WA2DKJ\n" "WA2DX\n" "WA2EAJ\n" "WA2EGT\n" "WA2EKW\n" "WA2EMF\n" "WA2EQF\n" "WA2ETU\n" "WA2EXZ\n" "WA2FAX\n" "WA2FBN\n" "WA2FGK\n" "WA2GBF\n" "WA2GMT\n" "WA2GSX\n" "WA2HMM\n" "WA2HOM\n" "WA2HZO\n" "WA2IIE\n" "WA2JJQ\n" "WA2JJV\n" "WA2JLW\n" "WA2JQK\n" "WA2JVI\n" "WA2KBZ\n" "WA2KFS\n" "WA2KHO\n" "WA2LOT\n" "WA2LTH\n" "WA2LUY\n" "WA2LXE\n" "WA2MAV\n" "WA2MBP\n" "WA2MCR\n" "WA2MIS\n" "WA2MKM\n" "WA2NHA\n" "WA2NLL\n" "WA2NYY\n" "WA2OAX\n" "WA2OCG\n" "WA2OOB\n" "WA2PCS\n" "WA2PJZ\n" "WA2PNI\n" "WA2PYX\n" "WA2QBJ\n" "WA2QQF\n" "WA2RAS\n" "WA2RKO\n" "WA2RNY\n" "WA2RSX\n" "WA2RXS\n" "WA2RY\n" "WA2RZJ\n" "WA2SCB\n" "WA2SEI\n" "WA2SON\n" "WA2TDC\n" "WA2TMC\n" "WA2TPU\n" "WA2TVS\n" "WA2UAH\n" "WA2UBK\n" "WA2UNP\n" "WA2UPK\n" "WA2USA\n" "WA2USA/2\n" "WA2VCQ\n" "WA2VJL\n" "WA2VMO\n" "WA2VQF\n" "WA2VQV\n" "WA2VQW\n" "WA2VUN\n" "WA2VUY\n" "WA2VYA\n" "WA2VZQ\n" "WA2WGF\n" "WA2WMR\n" "WA2WZU\n" "WA2YSJ\n" "WA2ZOU\n" "WA2ZSK\n" "WA3A\n" "WA3AAN\n" "WA3AER\n" "WA3AFS\n" "WA3BTA\n" "WA3C\n" "WA3CUC\n" "WA3EKL\n" "WA3ELQ\n" "WA3EOQ\n" "WA3EQJ\n" "WA3ERQ\n" "WA3ETD\n" "WA3EYL\n" "WA3EZN\n" "WA3FAE\n" "WA3FRP\n" "WA3G\n" "WA3GFB\n" "WA3GFM\n" "WA3GGM\n" "WA3GNW\n" "WA3GYW\n" "WA3HAE\n" "WA3HDQ\n" "WA3HJJ\n" "WA3HJR\n" "WA3HOL\n" "WA3IDQ\n" "WA3IIA\n" "WA3IUO\n" "WA3IVV\n" "WA3JAT\n" "WA3JJT\n" "WA3JMV\n" "WA3KCP\n" "WA3KVN\n" "WA3KYY\n" "WA3LCO\n" "WA3LKT\n" "WA3LTJ\n" "WA3MKB\n" "WA3MKC\n" "WA3N\n" "WA3O\n" "WA3OFC\n" "WA3OFR\n" "WA3PAK\n" "WA3PBL\n" "WA3QMJ\n" "WA3QWT\n" "WA3RCA\n" "WA3RGH\n" "WA3RHW\n" "WA3RNC\n" "WA3RP\n" "WA3SES\n" "WA3SGZ\n" "WA3SKQ\n" "WA3SLN\n" "WA3SWJ\n" "WA3SXX\n" "WA3TRE\n" "WA3UCR\n" "WA3UTC\n" "WA3UYJ\n" "WA3V\n" "WA3WLH\n" "WA3WOM\n" "WA3YGQ\n" "WA3YMM\n" "WA3YQK\n" "WA3YUR\n" "WA3ZIC\n" "WA3ZII\n" "WA3ZMH\n" "WA3ZTR\n" "WA3ZWC\n" "WA4AN\n" "WA4APB\n" "WA4APG\n" "WA4ASJ\n" "WA4AU\n" "WA4AUL\n" "WA4BPJ\n" "WA4BUE\n" "WA4BVO\n" "WA4CAX\n" "WA4CEM\n" "WA4CGF\n" "WA4CM\n" "WA4CQG\n" "WA4CXI\n" "WA4DCL\n" "WA4DOU\n" "WA4DRM\n" "WA4DT\n" "WA4DX\n" "WA4ED\n" "WA4EEZ\n" "WA4EMU\n" "WA4ERU\n" "WA4EUL\n" "WA4FFW\n" "WA4FMA\n" "WA4FXT\n" "WA4FXX\n" "WA4GBU\n" "WA4GGK\n" "WA4GLH\n" "WA4GP\n" "WA4GQG\n" "WA4GZK\n" "WA4HBK\n" "WA4IAX\n" "WA4IIF\n" "WA4III\n" "WA4JA\n" "WA4JQS\n" "WA4JS\n" "WA4JUK\n" "WA4KPU\n" "WA4KSO\n" "WA4KXX\n" "WA4KYI\n" "WA4LKD\n" "WA4LOX\n" "WA4LR\n" "WA4MAE\n" "WA4MDP\n" "WA4MLD\n" "WA4MYO\n" "WA4NEL\n" "WA4NUF\n" "WA4NVE\n" "WA4OAB\n" "WA4OSD\n" "WA4OTD\n" "WA4PAM\n" "WA4PGM\n" "WA4PXP\n" "WA4RG\n" "WA4RTE\n" "WA4SM\n" "WA4SQM\n" "WA4SSG\n" "WA4STO\n" "WA4TII\n" "WA4TMJ\n" "WA4UIH\n" "WA4VKW\n" "WA4VMC\n" "WA4VVO\n" "WA4WKL\n" "WA4WLI\n" "WA4WQK\n" "WA4WTG\n" "WA4YBP\n" "WA4YJB\n" "WA4YYM\n" "WA4ZKF\n" "WA4ZNY\n" "WA4ZSQ\n" "WA4ZXV\n" "WA5ABR\n" "WA5AU\n" "WA5BDU\n" "WA5BKN\n" "WA5FWC\n" "WA5IEX\n" "WA5IYX\n" "WA5JAN\n" "WA5JEC\n" "WA5JUM\n" "WA5KGW\n" "WA5KMA\n" "WA5KSC\n" "WA5KTC\n" "WA5KWS\n" "WA5LFD\n" "WA5LLX\n" "WA5LOU\n" "WA5MS\n" "WA5MUF\n" "WA5NFC\n" "WA5NNO\n" "WA5NNV\n" "WA5NOM\n" "WA5OYU\n" "WA5PFJ\n" "WA5POK\n" "WA5RHG\n" "WA5RML\n" "WA5RNV\n" "WA5SOG\n" "WA5SPP\n" "WA5SWN\n" "WA5SYU\n" "WA5TRX\n" "WA5TYJ\n" "WA5UA\n" "WA5VGI\n" "WA5VQM\n" "WA5VRE\n" "WA5VSK\n" "WA5WFE\n" "WA5Y\n" "WA5YNB\n" "WA5ZKO\n" "WA5ZUP\n" "WA6AEE\n" "WA6APQ\n" "WA6BAI\n" "WA6BOB\n" "WA6CDO\n" "WA6CDR\n" "WA6CIE\n" "WA6DIL\n" "WA6ES\n" "WA6F\n" "WA6FFJ\n" "WA6FGV\n" "WA6GFR\n" "WA6HFP\n" "WA6HXD\n" "WA6HXW\n" "WA6HZY\n" "WA6IOQ\n" "WA6JJB\n" "WA6JRZ\n" "WA6KHK\n" "WA6KYR\n" "WA6L\n" "WA6LD\n" "WA6LDI\n" "WA6LIE\n" "WA6MEM\n" "WA6MQF\n" "WA6NHD\n" "WA6NHO\n" "WA6NOL\n" "WA6NUO\n" "WA6O\n" "WA6OJM\n" "WA6OWM\n" "WA6PHJ\n" "WA6PSI\n" "WA6PWP\n" "WA6PY\n" "WA6QHD\n" "WA6RIK\n" "WA6RSV\n" "WA6RUS\n" "WA6RZ\n" "WA6SCW\n" "WA6SJQ\n" "WA6ST\n" "WA6TLA\n" "WA6TLL\n" "WA6UDR\n" "WA6URY\n" "WA6UYO\n" "WA6WPG\n" "WA6WXD\n" "WA6YEE\n" "WA6YKU\n" "WA6ZTY\n" "WA7AA\n" "WA7ADK\n" "WA7AJ\n" "WA7AR\n" "WA7AVL\n" "WA7BME\n" "WA7CC\n" "WA7DX\n" "WA7ETH\n" "WA7HDI\n" "WA7HQD\n" "WA7HR\n" "WA7IPM\n" "WA7ITZ\n" "WA7JHQ\n" "WA7JT\n" "WA7JTM\n" "WA7KYI\n" "WA7LFJ\n" "WA7LK\n" "WA7LNC\n" "WA7LNW\n" "WA7LT\n" "WA7LZC\n" "WA7MMM\n" "WA7NB\n" "WA7NCL\n" "WA7ND\n" "WA7NPX\n" "WA7NUH\n" "WA7NWL\n" "WA7OB\n" "WA7OET\n" "WA7OFH\n" "WA7OJY\n" "WA7OZT\n" "WA7PRC\n" ; const char txt_master6[26674] = "WA7PVE\n" "WA7QCC\n" "WA7QQI\n" "WA7RCT\n" "WA7RF\n" "WA7RZW\n" "WA7SHP\n" "WA7SRZ\n" "WA7TOF\n" "WA7U\n" "WA7UR\n" "WA7UTM\n" "WA7WNJ\n" "WA7YAZ\n" "WA8ADA\n" "WA8ALV\n" "WA8BMY\n" "WA8CLT\n" "WA8DXB\n" "WA8EFK\n" "WA8FRD\n" "WA8FZZ\n" "WA8HSB\n" "WA8ICK\n" "WA8IHI\n" "WA8IQF\n" "WA8JBG\n" "WA8JOC\n" "WA8KAN\n" "WA8KAZ\n" "WA8KQQ\n" "WA8KSS\n" "WA8LOW\n" "WA8MCD\n" "WA8MGD\n" "WA8MTI\n" "WA8MVU\n" "WA8NJR\n" "WA8NLX\n" "WA8NSS\n" "WA8OIF\n" "WA8OJR\n" "WA8OLD\n" "WA8PGE\n" "WA8QNN\n" "WA8QYJ\n" "WA8QZS\n" "WA8RCK\n" "WA8RCN\n" "WA8REI\n" "WA8RPK\n" "WA8RRA\n" "WA8SDA\n" "WA8SDF\n" "WA8SHP\n" "WA8SSQ\n" "WA8TJL\n" "WA8TM\n" "WA8TWM\n" "WA8UEG\n" "WA8UMT\n" "WA8VSJ\n" "WA8VTD\n" "WA8VVG\n" "WA8WV\n" "WA8Y\n" "WA8YUZ\n" "WA8YVF\n" "WA8YXA\n" "WA8ZBT\n" "WA8ZDL\n" "WA9ACO\n" "WA9AFM\n" "WA9AFM/5\n" "WA9APL\n" "WA9AQN\n" "WA9AQQ\n" "WA9BLP\n" "WA9BXB\n" "WA9C\n" "WA9CWX\n" "WA9DKO\n" "WA9ETW\n" "WA9FBC\n" "WA9FET\n" "WA9FRU\n" "WA9FTU\n" "WA9FWT\n" "WA9HUP\n" "WA9HUX\n" "WA9IVH\n" "WA9JHH\n" "WA9JLV\n" "WA9JM\n" "WA9LEY\n" "WA9LJK\n" "WA9LKZ\n" "WA9LT\n" "WA9LYZ\n" "WA9MXQ\n" "WA9NBU\n" "WA9NJR\n" "WA9OEC\n" "WA9OUE\n" "WA9PWP\n" "WA9QNN\n" "WA9RVM\n" "WA9S\n" "WA9TOP\n" "WA9TZE\n" "WA9U\n" "WA9URF\n" "WA9VEE\n" "WA9WJJ\n" "WA9WSJ\n" "WA9YTQ\n" "WA9YYY\n" "WA9Z\n" "WA9ZBV\n" "WA9ZBW\n" "WA9ZES\n" "WA9ZPC\n" "WA9ZPL\n" "WA9ZWL/6\n" "WB0AJS\n" "WB0B\n" "WB0BLV\n" "WB0CFF\n" "WB0CJB\n" "WB0DAS\n" "WB0DJX\n" "WB0DUG\n" "WB0FNZ\n" "WB0GAG\n" "WB0GAZ\n" "WB0GBI\n" "WB0GGM\n" "WB0GKH\n" "WB0HHM\n" "WB0IEL\n" "WB0IOL\n" "WB0IWG\n" "WB0IZO\n" "WB0JDQ\n" "WB0KFM\n" "WB0KGN\n" "WB0KWJ\n" "WB0M\n" "WB0MCO\n" "WB0MNW\n" "WB0N\n" "WB0POH\n" "WB0PYF\n" "WB0QIR\n" "WB0QLU\n" "WB0QVB\n" "WB0RSH\n" "WB0RUR\n" "WB0SMS\n" "WB0SND\n" "WB0SOK\n" "WB0TEV\n" "WB0TRA\n" "WB0TSR\n" "WB0TUA\n" "WB0TVY\n" "WB0U\n" "WB0UKI\n" "WB0UKL\n" "WB0ULX\n" "WB0VAK\n" "WB0VBW\n" "WB0VHF\n" "WB0VHW\n" "WB0WIV\n" "WB0WKQ\n" "WB0WQS\n" "WB0YEA\n" "WB0YJT\n" "WB0YRM\n" "WB0YYE\n" "WB0ZNY\n" "WB1ABQ\n" "WB1ADR\n" "WB1AEL\n" "WB1COV\n" "WB1DX\n" "WB1EDI\n" "WB1FJH\n" "WB1FLA\n" "WB1FPA\n" "WB1FQW\n" "WB1FVY\n" "WB1GCM\n" "WB1GQR\n" "WB1HBQ\n" "WB1HJS\n" "WB1I\n" "WB1Z\n" "WB2AA\n" "WB2ABD\n" "WB2AIV\n" "WB2AMU\n" "WB2AQC\n" "WB2ART\n" "WB2ATZ\n" "WB2AZE\n" "WB2BTO\n" "WB2COY\n" "WB2DFC\n" "WB2ELD\n" "WB2FUE\n" "WB2GGM\n" "WB2GHC\n" "WB2HJV\n" "WB2HTO\n" "WB2HVF\n" "WB2IVN\n" "WB2JEP\n" "WB2JFP\n" "WB2JGD\n" "WB2JNA\n" "WB2JSM\n" "WB2JUF\n" "WB2KAO\n" "WB2KEC\n" "WB2KHE\n" "WB2KLD\n" "WB2KSK\n" "WB2KWF\n" "WB2L\n" "WB2LEB\n" "WB2MIC\n" "WB2MRX\n" "WB2MXJ\n" "WB2NJN\n" "WB2OFV\n" "WB2OQQ\n" "WB2PJH\n" "WB2PYD\n" "WB2QJ\n" "WB2RAT\n" "WB2REM\n" "WB2RFV\n" "WB2RGK\n" "WB2RHM\n" "WB2RIS\n" "WB2RRF\n" "WB2RTG\n" "WB2SCT\n" "WB2SIH\n" "WB2SUN\n" "WB2SXY\n" "WB2TFM\n" "WB2TJO\n" "WB2TPS\n" "WB2TQE\n" "WB2TSL\n" "WB2TSV/7\n" "WB2UFF\n" "WB2VSJ\n" "WB2WIK\n" "WB2WPM\n" "WB2Y\n" "WB2YHK\n" "WB2YIP\n" "WB2YZX\n" "WB2ZAB\n" "WB2ZAP\n" "WB2ZEI\n" "WB2ZEX\n" "WB3AFS\n" "WB3AGB\n" "WB3AGC\n" "WB3ANT\n" "WB3AVD\n" "WB3AVN\n" "WB3BDH\n" "WB3BEL\n" "WB3BGK\n" "WB3CJU\n" "WB3CQD\n" "WB3CQM\n" "WB3CSY\n" "WB3DOM\n" "WB3EHS\n" "WB3EML\n" "WB3ESR\n" "WB3FIZ\n" "WB3HLH\n" "WB3HUZ\n" "WB3IGR\n" "WB3IZF\n" "WB3JFS\n" "WB3JKQ\n" "WB3JVD\n" "WB3LGC\n" "WB3LTT\n" "WB3T\n" "WB4AEG\n" "WB4BYQ\n" "WB4C\n" "WB4CSK\n" "WB4CSW\n" "WB4DAN\n" "WB4DNL\n" "WB4FDT\n" "WB4FEV\n" "WB4FSF\n" "WB4FSV\n" "WB4FWQ\n" "WB4GLI\n" "WB4HDC\n" "WB4HDM\n" "WB4HUX\n" "WB4I\n" "WB4IUY\n" "WB4IZX\n" "WB4JFS\n" "WB4JJJ\n" "WB4JVR\n" "WB4K\n" "WB4KKT\n" "WB4KLI\n" "WB4KTF\n" "WB4KUU\n" "WB4KZW\n" "WB4LJX\n" "WB4LMH\n" "WB4MAK\n" "WB4MDX\n" "WB4MNK\n" "WB4MRF\n" "WB4MSG\n" "WB4NBE\n" "WB4NCW\n" "WB4NUM\n" "WB4OEE\n" "WB4OMM\n" "WB4OQF\n" "WB4PPW\n" "WB4PWZ\n" "WB4QNG\n" "WB4ROA\n" "WB4ROA/7\n" "WB4RRD\n" "WB4SGA\n" "WB4SLM\n" "WB4SQ\n" "WB4TDH\n" "WB4TLX\n" "WB4TOM\n" "WB4U\n" "WB4UIC\n" "WB4VSD\n" "WB4VVU\n" "WB4W\n" "WB4WMR\n" "WB4WXE\n" "WB4X\n" "WB4YBY\n" "WB4YDL\n" "WB4YDY\n" "WB4YZA\n" "WB4ZBI\n" "WB4ZPF\n" "WB5A\n" "WB5AAA\n" "WB5AAR\n" "WB5AHN\n" "WB5ANN\n" "WB5ASP\n" "WB5BKL\n" "WB5HOW\n" "WB5HQO\n" "WB5ISM\n" "WB5IUU\n" "WB5IZD\n" "WB5JID\n" "WB5K\n" "WB5KIA\n" "WB5LXJ\n" "WB5MFI\n" "WB5NMZ\n" "WB5NPW\n" "WB5ONA\n" "WB5OSD\n" "WB5PDZ\n" "WB5QCB\n" "WB5R\n" "WB5RYB\n" "WB5S\n" "WB5SGN\n" "WB5STU\n" "WB5TEQ\n" "WB5TKA\n" "WB5TKI\n" "WB5TOI\n" "WB5TTE\n" "WB5TUF\n" "WB5UFR\n" "WB5VZL\n" "WB5WAJ\n" "WB5XX\n" "WB5YYA\n" "WB6AAJ\n" "WB6BET\n" "WB6BFG\n" "WB6BOD\n" "WB6CMX\n" "WB6CYK\n" "WB6FWS\n" "WB6HGJ\n" "WB6HYH\n" "WB6I\n" "WB6IQY\n" "WB6IXS\n" "WB6IYM\n" "WB6JJJ\n" "WB6JSB\n" "WB6JVP\n" "WB6KWL\n" "WB6L\n" "WB6LIU\n" "WB6MBF\n" "WB6MIO\n" "WB6MMC\n" "WB6MRQ\n" "WB6NJA\n" "WB6NKJ\n" "WB6NVB\n" "WB6OJB\n" "WB6OKG\n" "WB6OWZ\n" "WB6QPG\n" "WB6QQU\n" "WB6REZ\n" "WB6RSE\n" "WB6TFD\n" "WB6TPF\n" "WB6Z\n" "WB6ZAM\n" "WB6ZHZ\n" "WB7ACV\n" "WB7AGN\n" "WB7AKE\n" "WB7B\n" "WB7D\n" "WB7DBJ\n" "WB7DFQ\n" "WB7DJR\n" "WB7ECS\n" "WB7ECS/4\n" "WB7FJG\n" "WB7NJV\n" "WB7OCV\n" "WB7OTL\n" "WB7OUZ\n" "WB7PMT\n" "WB7QCS\n" "WB7QXU\n" "WB7S\n" "WB7TIR\n" "WB7TVS\n" "WB7UZO\n" "WB8AFC\n" "WB8AKW\n" "WB8B\n" "WB8BOR\n" "WB8BPU\n" "WB8BZK\n" "WB8CEH\n" "WB8DEG\n" "WB8DNO\n" "WB8E\n" "WB8ENE\n" "WB8EYE\n" "WB8FLE\n" "WB8FSV\n" "WB8HWO\n" "WB8ICN\n" "WB8IMY\n" "WB8JAY\n" "WB8JUI\n" "WB8K\n" "WB8KRY\n" "WB8LCD\n" "WB8LZA\n" "WB8MIW\n" "WB8MKH\n" "WB8N\n" "WB8NBA\n" "WB8NUT\n" "WB8NWA\n" "WB8O\n" "WB8OWM\n" "WB8QLA\n" "WB8RFB\n" "WB8RTJ\n" "WB8SKP\n" "WB8TDA\n" "WB8TDG\n" "WB8TGY\n" "WB8TIJ\n" "WB8TLI\n" "WB8TNN\n" "WB8TSD\n" "WB8VGE\n" "WB8VQU\n" "WB8WKQ\n" "WB8WRP\n" "WB8WTZ\n" "WB8YJF\n" "WB8YJF/4\n" "WB8YQJ\n" "WB8YYY\n" "WB8ZOM\n" "WB8ZRL\n" "WB9AYW\n" "WB9CHY\n" "WB9CIF\n" "WB9DIF\n" "WB9DKL\n" "WB9DLC\n" "WB9EDP\n" "WB9EEE\n" "WB9EGZ\n" "WB9FCI\n" "WB9FIP\n" "WB9FIU\n" "WB9FQS\n" "WB9GYJ\n" "WB9HFK\n" "WB9IRF\n" "WB9IRJ\n" "WB9JNZ\n" "WB9JOX\n" "WB9KPT\n" "WB9L\n" "WB9LPW\n" "WB9LRK\n" "WB9LTY\n" "WB9LZR\n" "WB9MDS\n" "WB9MII\n" "WB9MMR\n" "WB9NMN\n" "WB9NOO\n" "WB9NRK\n" "WB9OJE\n" "WB9OKQ\n" "WB9ONU\n" "WB9PUB\n" "WB9PZB\n" "WB9QVR\n" "WB9RAS\n" "WB9RZY\n" "WB9SFM\n" "WB9TFH\n" "WB9TNF\n" "WB9TVY\n" "WB9UDJ\n" "WB9UGC\n" "WB9UGX\n" "WB9UQE\n" "WB9VGO\n" "WB9VKZ\n" "WB9VRP\n" "WB9WHQ\n" "WB9WKT\n" "WB9WOZ\n" "WB9YBI\n" "WB9YIG\n" "WB9YJE\n" "WB9YSD\n" "WB9Z\n" "WB9ZFN\n" "WC0A\n" "WC0B\n" "WC0L\n" "WC0N\n" "WC0U\n" "WC0V\n" "WC0W\n" "WC1M\n" "WC1T\n" "WC2C\n" "WC2K\n" "WC2L\n" "WC2W\n" "WC2Z\n" "WC3A\n" "WC3O\n" "WC3Q\n" "WC4B\n" "WC4CC\n" "WC4DC\n" "WC4E\n" "WC4H\n" "WC4I\n" "WC4KY\n" "WC4MBC\n" "WC4TX\n" "WC4U\n" "WC4V\n" "WC5B\n" "WC5C\n" "WC5M\n" "WC5N\n" "WC5P\n" "WC5T\n" "WC6DX\n" "WC6H\n" "WC7CW\n" "WC7Q\n" "WC7S\n" "WC7V\n" "WC7WB\n" "WC7X\n" "WC8VOA\n" "WC8W\n" "WC9B\n" "WC9C\n" "WD0AZW\n" "WD0BC\n" "WD0BGZ\n" "WD0BMR\n" "WD0BMS\n" "WD0CIV\n" "WD0DAI\n" "WD0DX\n" "WD0E\n" "WD0EDK\n" "WD0FAA\n" "WD0GTY\n" "WD0J\n" "WD0K\n" "WD0L\n" "WD0M\n" "WD0MR\n" "WD0T\n" "WD1V\n" "WD1W\n" "WD1X\n" "WD1Z\n" "WD2E\n" "WD2F\n" "WD3B\n" "WD3C\n" "WD4AB\n" "WD4ABO\n" "WD4AHZ\n" "WD4ASP\n" "WD4CBA\n" "WD4CJN\n" "WD4DC\n" "WD4DDU\n" "WD4DMZ\n" "WD4EBR\n" "WD4ELG\n" "WD4FNY\n" "WD4FNY/0\n" "WD4GBW\n" "WD4GEO\n" "WD4HIM\n" "WD4HXE\n" "WD4IXD\n" "WD4JJ\n" "WD4KGC\n" "WD4KTF\n" "WD4LAZ\n" "WD4LBR\n" "WD4LTF\n" "WD4LUR\n" "WD4LYV\n" "WD4MSM\n" "WD4OHD\n" "WD4OHM\n" "WD4OJM\n" "WD4PDZ\n" "WD4PTJ\n" "WD4SIG\n" "WD5AAM\n" "WD5ABC\n" "WD5ACR\n" "WD5BJT\n" "WD5BUC\n" "WD5CAW\n" "WD5COV\n" "WD5DBV\n" "WD5EAE\n" "WD5FUN\n" "WD5HIO\n" "WD5IQR\n" "WD5IYF\n" "WD5IYT\n" "WD5JB\n" "WD5JNC\n" "WD5K\n" "WD5KCX\n" "WD5R\n" "WD5T\n" "WD5USA\n" "WD6AHV\n" "WD6BGG\n" "WD6CKT\n" "WD6DBM\n" "WD6FTB\n" "WD6GFF\n" "WD6L\n" "WD7K\n" "WD7Y\n" "WD8AHR\n" "WD8ANZ\n" "WD8BAH\n" "WD8BBE\n" "WD8BCS\n" "WD8BIL\n" "WD8CJN\n" "WD8CQB\n" "WD8DSB\n" "WD8DYO\n" "WD8EOL\n" "WD8H\n" "WD8ICX\n" "WD8INF\n" "WD8IQJ\n" "WD8JJA\n" "WD8JOL\n" "WD8JP\n" "WD8KNC\n" "WD8KRV\n" "WD8M\n" "WD8MBE\n" "WD8NHA\n" "WD8NVN\n" "WD8OSE\n" "WD8OSV\n" "WD8OZS\n" "WD8PKF\n" "WD8QGE\n" "WD8QIJ\n" "WD8RIF\n" "WD8RUW\n" "WD8RWI\n" "WD8RYC\n" "WD8S\n" "WD8V\n" "WD9ABG\n" "WD9CHG\n" "WD9CIR\n" "WD9COM\n" "WD9DZV\n" "WD9EJK\n" "WD9EKA\n" "WD9EMI\n" "WD9F\n" "WD9FJL\n" "WD9FTZ\n" "WD9GJK\n" "WD9GMK\n" "WD9HDT\n" "WD9HSY\n" "WD9HYM\n" "WD9IDV\n" "WD9IOK\n" "WE0Q\n" "WE1H\n" "WE1P\n" "WE2N\n" "WE2Y\n" "WE3C\n" "WE3E\n" "WE3J\n" "WE3ST\n" "WE4H\n" "WE4M\n" "WE4Q\n" "WE4S\n" "WE5I\n" "WE5K\n" "WE5O\n" "WE6C\n" "WE6EZ\n" "WE6L\n" "WE6M\n" "WE6Z\n" "WE7G\n" "WE7K\n" "WE7P\n" "WE8P\n" "WE8R\n" "WE9A\n" "WE9M\n" "WE9N\n" "WE9R\n" "WE9V\n" "WF0GM\n" "WF1L\n" "WF2B\n" "WF2S\n" "WF2W\n" "WF3C\n" "WF3M\n" "WF3T\n" "WF4B\n" "WF4G\n" "WF4M\n" "WF4U\n" "WF4W\n" "WF5E\n" "WF5I\n" "WF5T\n" "WF5W\n" "WF5X\n" "WF6C\n" "WF6F\n" "WF6O\n" "WF7K\n" "WF7T\n" "WF7T/4\n" "WF8N\n" "WF8P\n" "WF9A\n" "WF9V\n" "WG0G\n" "WG0I\n" "WG0M\n" "WG0V\n" "WG1W\n" "WG1X\n" "WG2B\n" "WG2Y\n" "WG3J\n" "WG3U\n" "WG4F\n" "WG4M\n" "WG4MB\n" "WG4P\n" "WG5G\n" "WG5J\n" "WG7J\n" "WG7X\n" "WG7Y\n" "WG8DX\n" "WG8H\n" "WG8P\n" "WG8Y\n" "WG9L\n" "WH0AC\n" "WH0S\n" "WH2D\n" "WH2DX\n" "WH2X\n" "WH6C\n" "WH6OR\n" "WH6R\n" "WH7GM\n" "WH7TU\n" "WH7V\n" "WI0S\n" "WI0W\n" "WI0WA\n" "WI1G\n" "WI1I\n" "WI2E\n" "WI3K\n" "WI4A\n" "WI4DX\n" "WI4N\n" "WI4R\n" "WI4T\n" "WI5ND\n" "WI6I\n" "WI6J\n" "WI6T\n" "WI6Z\n" "WI7D\n" "WI7F\n" "WI7N\n" "WI8A\n" "WI8B\n" "WI8C\n" "WI8R\n" "WI9G\n" "WI9H\n" "WI9M\n" "WI9TOM\n" "WI9WI\n" "WI9Z\n" "WJ0X\n" "WJ1B\n" "WJ1R\n" "WJ2D\n" "WJ2O\n" "WJ2P\n" "WJ3A\n" "WJ3F\n" "WJ3P\n" "WJ4N\n" "WJ5C\n" "WJ5DX\n" "WJ5S\n" "WJ6O\n" "WJ6Y\n" "WJ7R\n" "WJ8E\n" "WJ8Y\n" "WJ9B\n" "WJ9X\n" "WK0DX\n" "WK0P\n" "WK1Q\n" "WK2G\n" "WK2H\n" "WK2S\n" "WK3N\n" "WK4F\n" "WK4P\n" "WK4Q\n" "WK4W\n" "WK4Y\n" "WK5T\n" "WK5X\n" "WK6C\n" "WK6I\n" "WK6S\n" "WK7P\n" "WK8A\n" "WK8U\n" "WK8V\n" "WK9H\n" "WL7BDO\n" "WL7E/W7\n" "WL7E/WZ7\n" "WL7O\n" "WL7SJ\n" "WL7UQ\n" "WM0F\n" "WM0G\n" "WM1G\n" "WM2H\n" "WM2Z\n" "WM3L\n" "WM3O\n" "WM3PEN\n" "WM3T\n" "WM4D\n" "WM4Q\n" "WM4R\n" "WM4RM\n" "WM5DX\n" "WM5R\n" "WM6A\n" "WM6DX\n" "WM7DX\n" "WM9DX\n" "WN0G\n" "WN0L\n" "WN1GIV\n" "WN1M\n" "WN1OTV\n" "WN1X\n" "WN2O\n" "WN2T\n" "WN2Y\n" "WN3N\n" "WN3R\n" "WN3USA\n" "WN4AT\n" "WN4DX\n" "WN4LTY\n" "WN4S\n" "WN4VCH\n" "WN5G\n" "WN5V\n" "WN6K\n" "WN6M\n" "WN6W\n" "WN7J\n" "WN7L\n" "WN7M\n" "WN7T\n" "WN7Y\n" "WN8P\n" "WN8R\n" "WN9E\n" "WN9ICB\n" "WN9J\n" "WN9M\n" "WN9O\n" "WN9P\n" "WO0Q\n" "WO1N\n" "WO2N\n" "WO2T\n" "WO2Y\n" "WO3P\n" "WO3Z\n" "WO4D\n" "WO4DX\n" "WO4O\n" "WO4R\n" "WO5D\n" "WO5I\n" "WO6M\n" "WO6T\n" "WO7U\n" "WO7Y\n" "WO8CC\n" "WO8J\n" "WO8J/7\n" "WO8USA\n" "WO8VET\n" "WO9S\n" "WO9U\n" "WO9Z\n" "WP2B\n" "WP2E\n" "WP2Z\n" "WP3C\n" "WP3EF\n" "WP3GW\n" "WP3R\n" "WP3UX\n" "WP4BH\n" "WP4CGH\n" "WP4CRG\n" "WP4D\n" "WP4DQK\n" "WP4EDD\n" "WP4I\n" "WP4JBG\n" "WP4L\n" "WP4NEG\n" "WP4NIX\n" "WP4NND\n" "WP4SK\n" "WP4U\n" "WP4WV\n" "WP4WW\n" "WQ0A\n" "WQ0B\n" "WQ1H\n" "WQ2N\n" "WQ3E\n" "WQ3T\n" "WQ3X\n" "WQ4L\n" "WQ5L\n" "WQ5O\n" "WQ6K\n" "WQ6O\n" "WQ6X\n" "WQ7A\n" "WQ7L\n" "WQ7X\n" "WQ8RP\n" "WQ8T\n" "WQ9E\n" "WQ9T\n" "WQ9Z\n" "WR1B\n" "WR1Q\n" "WR1TX\n" "WR2G\n" "WR2V\n" "WR3H\n" "WR3L\n" "WR3Z\n" "WR4AA\n" "WR4C\n" "WR4F\n" "WR4I\n" "WR4K\n" "WR4U\n" "WR5AW\n" "WR5G\n" "WR5U\n" "WR7DW\n" "WR7HE\n" "WR7K\n" "WR7Q\n" "WR8J\n" "WR8R\n" "WR9AN\n" "WR9L\n" "WR9Y\n" "WS0Z\n" "WS1F\n" "WS1L\n" "WS1V\n" "WS2E\n" "WS2L\n" "WS4C\n" "WS4F\n" "WS4H\n" "WS4NC\n" "WS4WW\n" "WS4Y\n" "WS5H\n" "WS5K\n" "WS6K\n" "WS6X\n" "WS6Z\n" "WS7I\n" "WS7L\n" "WS7N\n" "WS7V\n" "WS7X\n" "WS8D\n" "WS8M\n" "WS9E\n" "WS9J\n" "WS9M\n" "WS9M/2\n" "WS9M/4\n" "WS9V\n" "WS9W\n" "WT0A\n" "WT0AA\n" "WT0D\n" "WT0O\n" "WT1M\n" "WT2Z\n" "WT3Q\n" "WT4PF\n" "WT4Q\n" "WT4Y\n" "WT5K\n" "WT5L\n" "WT5N\n" "WT5R\n" "WT5U\n" "WT6A\n" "WT6G\n" "WT6K\n" "WT6P\n" "WT6TT\n" "WT6X\n" "WT7N\n" "WT7RC\n" "WT7TT\n" "WT8C\n" "WT8E\n" "WT8F\n" "WT8N\n" "WT8O\n" "WT9Q\n" "WT9U\n" "WU0L\n" "WU1E\n" "WU1ITU\n" "WU2L\n" "WU2S\n" "WU2X\n" "WU3A\n" "WU3H\n" "WU4G\n" "WU5E\n" "WU5PIG\n" "WU6CC\n" "WU7O\n" "WU7R\n" "WU8P\n" "WU8Q\n" "WU9B\n" "WV0T\n" "WV1M\n" "WV2NY\n" "WV2ZOW\n" "WV3U\n" "WV4I\n" "WV4V\n" "WV4Y\n" "WV5K\n" "WV5L\n" "WV6E\n" "WV6I\n" "WV6N\n" "WV7Q\n" "WV7Z\n" "WV8A\n" "WV8AA\n" "WV8USA\n" "WV9B\n" "WV9S\n" "WW0AL\n" "WW0E\n" "WW0H\n" "WW0WB\n" "WW1M\n" "WW1WW\n" "WW2DX\n" "WW2NC\n" "WW2NJ\n" "WW2P\n" "WW2PT\n" "WW2R\n" "WW2Y\n" "WW3A\n" "WW3DE\n" "WW3K\n" "WW3KP\n" "WW3Q\n" "WW3QB\n" "WW3S\n" "WW4B\n" "WW4CP\n" "WW4DM\n" "WW4E\n" "WW4GC\n" "WW4LL\n" "WW4R\n" "WW5AA\n" "WW5R\n" "WW5TT\n" "WW5W\n" "WW6D\n" "WW6O\n" "WW6P\n" "WW6USA\n" "WW7Q\n" "WW8O\n" "WW8OH\n" "WW9DX\n" "WW9R\n" "WX0B\n" "WX0V\n" "WX1MAN\n" "WX1O\n" "WX1S\n" "WX1V\n" "WX1X\n" "WX2F\n" "WX2N\n" "WX2T\n" "WX2U\n" "WX3A\n" "WX3B\n" "WX3G\n" "WX3SKY\n" "WX4CW\n" "WX4G\n" "WX4MLB\n" "WX4MM\n" "WX4QN\n" "WX4RM\n" "WX4TM\n" "WX4X\n" "WX5H\n" "WX5I\n" "WX5N\n" "WX5S\n" "WX5W\n" "WX6V\n" "WX6W\n" "WX6Y\n" "WX7B\n" "WX7E\n" "WX7G\n" "WX7L\n" "WX7P\n" "WX7T\n" "WX8G\n" "WX9C\n" "WX9EP\n" "WX9U\n" "WX9Z\n" "WY0B\n" "WY0L\n" "WY0V\n" "WY1H\n" "WY1U\n" "WY2G\n" "WY3A\n" "WY3P\n" "WY4A\n" "WY4J\n" "WY4Y\n" "WY5I\n" "WY6DX\n" "WY6K\n" "WY7DK\n" "WY7FD\n" "WY7I\n" "WY7KRA\n" "WY7LL\n" "WY7N\n" "WY7SS\n" "WY7USA\n" "WY8DX\n" "WY8I\n" "WY9N\n" "WZ1F\n" "WZ2T\n" "WZ3B\n" "WZ4F\n" "WZ4P\n" "WZ4Z\n" "WZ6T\n" "WZ6Z\n" "WZ7E\n" "WZ7M\n" "WZ7ZR\n" "WZ8D\n" "WZ8DX\n" "WZ8K\n" "WZ8P\n" "WZ8T\n" "WZ9B\n" "XE1AY\n" "XE1B\n" "XE1BY\n" "XE1CDF\n" "XE1CQ\n" "XE1CRG\n" "XE1CT\n" "XE1CWJ\n" "XE1EE\n" "XE1FAS\n" "XE1FSK\n" "XE1FZE\n" "XE1GRR\n" "XE1GZU\n" "XE1HJL\n" "XE1HJN\n" "XE1HON\n" "XE1IM\n" "XE1J\n" "XE1KK\n" "XE1L\n" "XE1LM\n" "XE1MEX\n" "XE1MM\n" "XE1MO\n" "XE1MW\n" "XE1NVA\n" "XE1NW\n" "XE1OK\n" "XE1R\n" "XE1RBV\n" "XE1RCS\n" "XE1REM\n" "XE1REW\n" "XE1RP\n" "XE1RZL\n" "XE1SAR\n" "XE1SAX\n" "XE1SGW\n" "XE1SVT\n" "XE1TD\n" "XE1TDX\n" "XE1TNC\n" "XE1TRP\n" "XE1USG\n" "XE1V\n" "XE1VY\n" "XE1XZQ\n" "XE1YJS\n" "XE1YYD\n" "XE1YZY\n" "XE1ZCQ\n" "XE1ZTW\n" "XE1ZW\n" "XE2AC\n" "XE2AI\n" "XE2ANT\n" "XE2AU\n" "XE2AUB\n" "XE2AUD\n" "XE2CQ\n" "XE2D\n" "XE2EJ\n" "XE2ES\n" "XE2EX\n" "XE2FGC\n" "XE2GAG\n" "XE2GG\n" "XE2HUM\n" "XE2HUQ\n" "XE2I\n" "XE2JA\n" "XE2K\n" "XE2MM\n" "XE2MVS\n" "XE2MX\n" "XE2NS\n" "XE2RC\n" "XE2RV\n" "XE2S\n" "XE2SIV\n" "XE2TH\n" "XE2TPJ\n" "XE2TZP\n" "XE2WK\n" "XE2WWW\n" "XE2YBG\n" "XE2YHR\n" "XE2YOM\n" "XE2YWH\n" "XE3D\n" "XE3DX\n" "XE3KGS\n" "XE3N\n" "XE3PMR\n" "XE3RR\n" "XF3PAS\n" "XQ1IDM\n" "XQ4CW\n" "XQ4EM\n" "XQ5C\n" "XQ5CIE\n" "XQ5CL\n" "XQ8GLQ\n" "XR1A\n" "XR3A\n" "XR3P\n" "XR6T\n" "XU7AAA\n" "XU7ACY\n" "XU7ADU\n" "XU7FMZ\n" "XU7KOH\n" "XU7MDY\n" "XU7TZG\n" "XU7XXX\n" "XV1X\n" "XV2MDY\n" "XV2RZ\n" "XV2W\n" "XV4BX\n" "XW1B\n" "XX9LT\n" "YB0AI\n" "YB0AJV\n" "YB0BCU\n" "YB0COU\n" "YB0COX\n" "YB0DPO\n" "YB0ECT\n" "YB0EIN\n" "YB0JIV\n" "YB0JK\n" "YB0KYM\n" "YB0MJY\n" "YB0MWM\n" "YB0NFL\n" "YB0PAH\n" "YB0ZZ\n" "YB1ALL\n" "YB1AQD\n" "YB1AR\n" "YB1C\n" "YB1CCF\n" "YB1CYD\n" "YB1KAR\n" "YB1MBA\n" "YB1NWP\n" "YB1PC\n" "YB1TJ\n" "YB1UUN\n" "YB1YCT\n" "YB2DDL\n" "YB2DX\n" "YB2ECG\n" "YB2LSR\n" "YB2OK\n" "YB2UTX\n" "YB3BOA\n" "YB3IZK\n" "YB3JBJ\n" "YB3MM\n" "YB3OX\n" "YB3TD\n" "YB3VK\n" "YB3XM\n" "YB41AR\n" "YB4IR\n" "YB5AQB\n" "YB5OUB\n" "YB6INU\n" "YB8EL\n" "YB8EXL\n" "YB8FL\n" "YC0COX\n" "YC0IEM\n" "YC1BRS\n" "YC1BYX\n" "YC1DYY\n" "YC1LA\n" "YC1UDK\n" "YC1URC\n" "YC2BG\n" "YC2EUZ\n" "YC2LEV\n" "YC2USI\n" "YC2WWW\n" "YC2YTH\n" "YC3TKH\n" "YC5OO\n" "YC5OUB\n" "YC5VB\n" "YC6BRS\n" "YC6CM\n" "YC6EN\n" "YC6JRT\n" "YC6NE\n" "YC8FEF\n" "YC9MDX\n" "YC9WIC\n" "YD1BJX\n" "YD1HUH\n" "YD1XUH\n" "YD2LEV\n" "YD3KWR\n" "YE0X\n" "YE1C\n" "YE1ZAL\n" "YE1ZAT\n" "YE2R\n" "YI9WV\n" "YJ0MM\n" "YK9Y\n" "YL/4L3A\n" "YL0A\n" "YL0Y\n" "YL1S\n" "YL1XN\n" "YL1YI\n" "YL1ZC\n" "YL1ZO\n" "YL1ZS\n" "YL1ZX\n" "YL2BJ\n" "YL2BR\n" "YL2CA\n" "YL2CF\n" "YL2CI\n" "YL2CR\n" "YL2CV\n" "YL2EC\n" "YL2GC\n" "YL2GC/P\n" "YL2GD\n" "YL2GP\n" "YL2GQG\n" "YL2GQT\n" "YL2GUV\n" "YL2HK\n" "YL2II\n" "YL2IP\n" "YL2IS\n" "YL2IU\n" "YL2JZ\n" "YL2KF\n" "YL2KO\n" "YL2LW\n" "YL2MR\n" "YL2MR/P\n" "YL2NK\n" "YL2NN\n" "YL2PA\n" "YL2PJ\n" "YL2PN\n" "YL2PP\n" "YL2QS\n" "YL2QV\n" "YL2SM\n" "YL2TB\n" "YL2TD\n" "YL2TQ\n" "YL2VW\n" "YL3AD\n" "YL3BZ\n" "YL3CU\n" "YL3DR\n" "YL3DW\n" "YL3DX\n" "YL3FP\n" "YL3FT\n" "YL3FW\n" "YL3FX\n" "YL3GDR\n" "YL3GFO\n" "YL3GFX\n" "YL3GGX\n" "YL3IZ\n" "YL4HQ\n" "YL4U\n" "YL5M\n" "YL5T\n" "YL5W\n" "YL6W\n" "YL7A\n" "YL7W\n" "YL7X\n" "YL8M\n" "YL90AIR\n" "YL90CP\n" "YL90PA\n" "YL9T\n" "YL9W\n" "YM2W\n" "YM3A\n" "YM3D\n" "YN2BQ\n" "YN2DD\n" "YN2EA\n" "YN2GY\n" "YN2NB\n" "YN2S\n" "YN2WW\n" "YN2Z\n" "YO/HA5BWW\n" "YO2ADQ\n" "YO2AMU\n" "YO2AOB\n" "YO2AQB\n" "YO2ARV\n" "YO2BB\n" "YO2BBX\n" "YO2BLX\n" "YO2BS\n" "YO2BV\n" "YO2CJX\n" "YO2CMI\n" "YO2DFA\n" "YO2GL\n" "YO2II\n" "YO2IS\n" "YO2IS/P\n" "YO2KCB\n" "YO2KDT\n" "YO2KJI\n" "YO2LAN\n" "YO2LAU\n" "YO2LEA\n" "YO2LEE\n" "YO2LFP\n" "YO2LGX\n" "YO2LHD\n" "YO2LIE\n" "YO2LIM\n" "YO2LIW\n" "YO2LRH\n" "YO2LXB\n" "YO2LXW\n" "YO2LYN\n" "YO2MAX\n" "YO2MBA\n" "YO2MCK\n" "YO2MHD\n" "YO2MHJ\n" "YO2MIL\n" "YO2MJI\n" "YO2MJZ\n" "YO2ODE\n" "YO2QY\n" "YO2R\n" "YO2RLC\n" "YO2RO\n" "YO2RR\n" "YO3AAJ\n" "YO3AIL\n" "YO3AIS\n" "YO3AK\n" "YO3APJ\n" "YO3BAP\n" "YO3BL\n" "YO3BZF\n" "YO3CBZ\n" "YO3CCC\n" "YO3CEN\n" "YO3CVG\n" "YO3CZW\n" "YO3DAC\n" "YO3DIU\n" "YO3DLK\n" "YO3FF\n" "YO3FFF\n" "YO3FLR\n" "YO3FN\n" "YO3FOM\n" "YO3FRI\n" "YO3FVR\n" "YO3GCL\n" "YO3GGO\n" "YO3GW\n" "YO3III\n" "YO3JF\n" "YO3JOS/P\n" "YO3JR\n" "YO3JV\n" "YO3JW\n" "YO3KIA\n" "YO3KPA\n" "YO3ND\n" "YO3RU\n" "YO3UA\n" "YO3VU\n" "YO3XX\n" "YO3YB\n" "YO3YV\n" "YO3YX\n" "YO3YZ\n" "YO3ZA\n" "YO4AAC\n" "YO4AB\n" "YO4ASD\n" "YO4ASG\n" "YO4ATW\n" "YO4AUL\n" "YO4AUP\n" "YO4AYE\n" "YO4AYL\n" "YO4BEX\n" "YO4BTB\n" "YO4CAH\n" "YO4CAS\n" "YO4CSL\n" "YO4CVT\n" "YO4CVV\n" "YO4DFT\n" "YO4DW\n" "YO4FTC\n" "YO4FTE\n" "YO4GHW\n" "YO4GNJ\n" "YO4HEK\n" "YO4KCC\n" "YO4MM\n" "YO4NA\n" "YO4PX\n" "YO4QZ\n" "YO4RIU\n" "YO4RIW\n" "YO4RSS\n" "YO4RST\n" "YO4SI\n" "YO4TMB\n" "YO4UQ\n" "YO4US\n" "YO4WZ\n" "YO50IE\n" "YO50IF\n" "YO5AEX\n" "YO5AIR\n" "YO5AJR\n" "YO5ALI\n" "YO5AM\n" "YO5AMF\n" "YO5BAT\n" "YO5BBO\n" "YO5BET\n" "YO5BEU\n" "YO5BJW\n" "YO5BQQ\n" "YO5BRE\n" "YO5BRZ\n" "YO5BTZ\n" "YO5BXI\n" "YO5BXK\n" "YO5BYV\n" "YO5CBN\n" "YO5CBX\n" "YO5CCQ\n" "YO5CCX\n" "YO5CRQ\n" "YO5CUQ\n" "YO5CZZ\n" "YO5DAS\n" "YO5DMB/P\n" "YO5FMT\n" "YO5IR\n" "YO5KAD\n" "YO5KDW\n" "YO5KDX\n" "YO5KOP\n" "YO5KTK\n" "YO5KUF\n" "YO5LN\n" "YO5NY\n" "YO5OAG\n" "YO5OCZ\n" "YO5ODL\n" "YO5ODT\n" "YO5OED\n" "YO5OEF\n" "YO5OET\n" "YO5OHC\n" "YO5OHO\n" "YO5OHY\n" "YO5OLD\n" "YO5OPH\n" "YO5PBF\n" "YO5PBG\n" "YO5PBW\n" "YO5PCY\n" "YO5PHQ\n" "YO5QBP\n" "YO5QCD\n" "YO5TP\n" "YO6ADW\n" "YO6AEI\n" "YO6AJI\n" "YO6BHN\n" "YO6BLU\n" "YO6BZL\n" "YO6CFB\n" "YO6DBL\n" "YO6EV\n" "YO6EX\n" "YO6EZ\n" "YO6FGZ\n" "YO6HSU\n" "YO6HVQ\n" "YO6KEA\n" "YO6KEI\n" "YO6KNE\n" "YO6KNY\n" "YO6LV\n" "YO6MK\n" "YO6MT\n" "YO6OAF\n" "YO6PEG\n" "YO6PHX\n" "YO6QT\n" "YO6UO\n" "YO6VCB\n" "YO7AHR\n" "YO7APA\n" "YO7AQF\n" "YO7ARY\n" "YO7ARY/W1\n" "YO7ARZ\n" "YO7AWZ\n" "YO7BGA\n" "YO7BGB\n" "YO7CVL\n" "YO7CWP\n" "YO7DAA\n" "YO7DO\n" "YO7FB\n" "YO7FT\n" "YO7HBY\n" "YO7HGM\n" "YO7HJM\n" "YO7KFA\n" "YO7KJX\n" "YO7LBX\n" "YO7LCB\n" "YO7LFV\n" "YO7LGI\n" "YO7LHC\n" "YO7LHU\n" "YO7LID\n" "YO7LKW\n" "YO7LTQ\n" "YO7LYM\n" "YO7MGG\n" "YO7NE\n" "YO7NW\n" "YO7VP\n" "YO7VT\n" "YO7WB\n" "YO8AXP\n" "YO8AZQ\n" "YO8BDQ\n" "YO8BFB\n" "YO8BFC\n" "YO8BGD\n" "YO8BPK\n" "YO8BPY\n" "YO8CJY\n" "YO8CLX\n" "YO8DDP\n" "YO8DOH\n" "YO8FR\n" "YO8FZ\n" "YO8GF\n" "YO8KAE\n" "YO8KGA\n" "YO8KGP\n" "YO8KIS\n" "YO8KOO\n" "YO8KOS\n" "YO8KRR\n" "YO8KVS\n" "YO8MF\n" "YO8MI\n" "YO8OH\n" "YO8OU\n" "YO8RAA\n" "YO8RFJ\n" "YO8RFS\n" "YO8RIJ\n" "YO8RIX\n" "YO8RKP\n" "YO8ROO\n" "YO8RQP\n" "YO8RZJ\n" "YO8SAI\n" "YO8SS\n" "YO8SSB\n" "YO8ST\n" "YO8STB\n" "YO8SXX\n" "YO8THG\n" "YO8TNB\n" "YO8TOH\n" "YO8WW\n" "YO9ABL\n" "YO9AFH\n" "YO9AFT\n" "YO9AGI\n" "YO9BCZ\n" "YO9BHI\n" "YO9BPX\n" "YO9BQW\n" "YO9BXC\n" "YO9BXE\n" "YO9BXZ\n" "YO9CB\n" "YO9CWY\n" "YO9CXE\n" "YO9CYM\n" "YO9DFQ\n" "YO9DL\n" "YO9FKN\n" "YO9FKU\n" "YO9FL\n" "YO9FNP\n" "YO9FWX\n" "YO9FYP\n" "YO9GJX\n" "YO9GMI\n" "YO9GSB\n" "YO9GVN\n" "YO9HG\n" "YO9HMB\n" "YO9HNH\n" "YO9HP\n" "YO9HPJ\n" "YO9IE\n" "YO9IF\n" "YO9IIF\n" "YO9IKW\n" "YO9ION\n" "YO9KPI\n" "YO9KPM\n" "YO9KVV\n" "YO9OC\n" "YO9SW\n" "YO9WF\n" "YO9XC\n" "YP0A\n" "YP1WFF\n" "YP2U\n" "YP2W\n" "YP2Y\n" "YP3A\n" "YP5Z\n" "YP6C\n" "YP7P\n" "YP8A\n" "YP8I\n" "YP8I/P\n" "YP9W\n" "YQ2ANT\n" "YQ5Q\n" "YQ6A\n" "YQ9W\n" "YR0HQ\n" "YR0R\n" "YR0WL\n" "YR1A\n" "YR1C\n" "YR1Z\n" "YR2TM\n" "YR2U\n" "YR2X\n" "YR2Y\n" "YR5N\n" "YR5O\n" "YR5S\n" "YR5T\n" "YR5Z\n" "YR6M\n" "YR7M\n" "YR80HCS\n" "YR8A\n" "YR8B\n" "YR8D\n" "YR8I\n" "YR8T\n" "YR8V\n" "YR90U\n" "YR9F\n" "YR9HQ\n" "YR9P\n" "YS1/W3MKT\n" "YS1GR\n" "YS1MAE\n" "YS1YS\n" "YS1ZC\n" "YS4M\n" "YS4RR\n" "YS4U\n" "YT09AU\n" "YT0A\n" "YT0HQ\n" "YT0I\n" "YT0T\n" "YT0W\n" "YT0Z\n" "YT1A\n" "YT1AA\n" "YT1AD\n" "YT1AU\n" "YT1BB\n" "YT1BX\n" "YT1CC\n" "YT1CS\n" "YT1DB\n" "YT1E\n" "YT1FM\n" "YT1HA\n" "YT1KC\n" "YT1LD\n" "YT1ML\n" "YT1MZ\n" "YT1Q\n" "YT1QQ\n" "YT1R\n" "YT1S\n" "YT1T\n" "YT1TA\n" "YT1TM\n" "YT1UM\n" "YT1UR\n" "YT1V\n" "YT1VM\n" "YT1VP\n" "YT1WS\n" "YT1ZA\n" "YT1ZZ\n" "YT2A\n" "YT2AA\n" "YT2AAA\n" "YT2ACA\n" "YT2B\n" "YT2EA\n" "YT2F\n" "YT2FA\n" "YT2ISM\n" "YT2L\n" "YT2PFR\n" "YT2RX\n" "YT2SMS\n" "YT2T\n" "YT2U\n" "YT2VPA\n" "YT2W\n" "YT2WW\n" "YT3A\n" "YT3AA\n" "YT3C\n" "YT3E\n" "YT3H\n" "YT3M\n" "YT3MA\n" "YT3PL\n" "YT3R\n" "YT3T\n" "YT3W\n" "YT40E\n" "YT40EC\n" "YT4A\n" "YT4RA\n" "YT4T\n" "YT4W\n" "YT5A\n" "YT5C\n" "YT5CC\n" "YT5CWW\n" "YT5M\n" "YT5N\n" "YT5RA\n" "YT5T\n" "YT5TT\n" "YT5W\n" "YT5Z\n" "YT7A\n" "YT7AT\n" "YT7AW\n" "YT7B\n" "YT7DQ\n" "YT7DX\n" "YT7EC\n" "YT7EE\n" "YT7IM\n" "YT7KF\n" "YT7KM\n" "YT7R\n" "YT7T\n" "YT7TA\n" "YT7W\n" "YT7XX\n" "YT7Z\n" "YT8A\n" "YT8AA\n" "YT8FG\n" "YT8T\n" "YT8TA\n" "YT8WW\n" "YT9A\n" "YT9C\n" "YT9T\n" "YT9X\n" "YU/HB9EDB\n" "YU/N8BO\n" "YU/NF5A\n" "YU09DW\n" "YU09RP\n" "YU0A\n" "YU0R\n" "YU0U\n" "YU0W\n" "YU140Z\n" "YU1AAQ\n" "YU1AAV\n" "YU1AB\n" "YU1ADO\n" "YU1AM\n" "YU1AR\n" "YU1ARC\n" "YU1ARL\n" "YU1AS\n" "YU1AST\n" "YU1AT\n" "YU1AU\n" "YU1B\n" "YU1BFG\n" "YU1BM\n" "YU1BN\n" "YU1CA\n" "YU1CC\n" "YU1DG\n" "YU1DW\n" "YU1DX\n" "YU1ED\n" "YU1EL\n" "YU1EO\n" "YU1EW\n" "YU1EX\n" "YU1EXY\n" "YU1FE\n" "YU1FG\n" "YU1FJK\n" "YU1FW\n" "YU1GN\n" "YU1GU\n" "YU1HC\n" "YU1HFG\n" "YU1HQR\n" "YU1IG\n" "YU1INO\n" "YU1IV\n" "YU1JF\n" "YU1JW\n" "YU1KA\n" "YU1KN\n" "YU1KT\n" "YU1KX\n" "YU1LA\n" "YU1LD\n" "YU1LM\n" "YU1MM\n" "YU1MS\n" "YU1NA\n" "YU1NGR\n" "YU1NR\n" "YU1NSK\n" "YU1NT\n" "YU1OTB\n" "YU1PC\n" "YU1PJ\n" "YU1QQ\n" "YU1QT\n" "YU1QU\n" "YU1R\n" "YU1RA\n" "YU1RE\n" "YU1RK\n" "YU1RP\n" "YU1RW\n" "YU1SB\n" "YU1SZ\n" "YU1TO\n" "YU1TR\n" "YU1UM\n" "YU1UN\n" "YU1UO\n" "YU1VG\n" "YU1W\n" "YU1WC\n" "YU1WN\n" "YU1WS\n" "YU1XO\n" "YU1XW\n" "YU1XX\n" "YU1YJ\n" "YU1YO\n" "YU1YV\n" "YU1ZM\n" "YU1ZZ\n" "YU25KN\n" "YU2A\n" "YU2AA\n" "YU2AVB\n" "YU2CV\n" "YU2DRA\n" "YU2DX\n" "YU2EF\n" "YU2EZ\n" "YU2FG\n" "YU2M\n" "YU2MBM\n" "YU2MMA\n" "YU2U\n" "YU3A\n" "YU3AA\n" "YU3FX\n" "YU3MMM\n" "YU3MUP\n" "YU3W\n" "YU3WW\n" "YU40A\n" "YU40AF\n" "YU40BM\n" "YU40FN\n" "YU40MM\n" "YU4A\n" "YU5A\n" "YU5B\n" "YU5C\n" "YU5GBT\n" "YU5M\n" "YU5MOL\n" "YU5R\n" "YU5RA\n" "YU5RY\n" "YU5T\n" "YU5W\n" "YU5ZM\n" "YU6A\n" "YU6DX\n" "YU7AE\n" "YU7AF\n" "YU7AU\n" "YU7AV\n" "YU7BB\n" "YU7BCD\n" "YU7BCL\n" "YU7BH\n" "YU7BL\n" "YU7D\n" "YU7DP\n" "YU7DX\n" "YU7DZ\n" "YU7EE\n" "YU7FN\n" "YU7FW\n" "YU7GM\n" "YU7GW\n" "YU7KG\n" "YU7KM\n" "YU7KW\n" "YU7LS\n" "YU7MM\n" "YU7NU\n" "YU7ONE\n" "YU7PG\n" "YU7RL\n" "YU7RQ\n" "YU7U\n" "YU7VX\n" "YU7W\n" "YU7WI\n" "YU7WW\n" "YU7YZ\n" "YU7ZEX\n" "YU7ZZ\n" "YU8A\n" "YU8AU\n" "YU8CW\n" "YU8EQ\n" "YU8FD\n" "YU8GD\n" "YU8JU\n" "YU8KN\n" "YU8NR\n" "YU8NU\n" "YU8QQ\n" "YU9A\n" "YU9DX\n" "YV1CTE\n" "YV1DIG\n" "YV1FM\n" "YV1JGT\n" "YV1NX\n" "YV1RDX\n" "YV2BYT\n" "YV2IF\n" "YV4A\n" "YV4AZ\n" "YV4BCD\n" "YV4CW\n" "YV4GD\n" "YV5AAX\n" "YV5AJ\n" "YV5AMH\n" "YV5BM\n" "YV5EAH\n" "YV5ER\n" "YV5IAL\n" "YV5JBI\n" "YV5JF\n" "YV5KG\n" "YV5KQA\n" "YV5LI\n" "YV5MSG\n" "YV5NWG\n" "YV5OIE\n" "YV5OK\n" "YV5VD\n" "YV5VE\n" "YV6BFE\n" "YV6BTF\n" "YV6BXN\n" "YV7QP\n" "YV8AD\n" "YW2LV\n" "YW4A\n" "YW4B\n" "YW4D\n" "YW4V\n" "YW5D\n" "YW5DX\n" "YW5L\n" "YW5NN\n" "YW5RTTY\n" "YW5RY\n" "YW5T\n" "YW5W\n" "YW7A\n" "YY1ALC\n" "YY1JGT\n" "YY1MTX\n" "YY1OKR\n" "YY4CVI\n" "YY4RN\n" "YY5AEA\n" "YY5ALO\n" "YY5CBK\n" "YY5EBV\n" "YY5GJC\n" "YY5LI\n" "YY6JAG\n" "Z21BB\n" "Z29KM\n" "Z30A\n" "Z30HQ\n" "Z30MCWG\n" "Z31A\n" "Z31CZ\n" "Z31MM\n" "Z32AJA\n" "Z32ID\n" "Z33A\n" "Z33F\n" "Z33Z\n" "Z35F\n" "Z35G\n" "Z35M\n" "Z35M/P\n" "Z35T\n" "Z35W\n" "Z35X\n" "Z36N\n" "Z36W\n" "Z37M\n" "Z39Z\n" "ZA0/I0SNY\n" "ZA0/I8LWL\n" "ZA0/IK7JWX\n" "ZA1FD\n" "ZA1FM\n" "ZB2BL\n" "ZB2EO\n" "ZB2X\n" "ZC4LI\n" "ZC4T\n" "ZC4TS\n" "ZC4VJ\n" "ZD8RH\n" "ZF1A\n" "ZF1EJ\n" "ZF2AE/ZF8\n" "ZF2AH\n" "ZF2AM\n" "ZF2BJ\n" "ZF2DF\n" "ZF2DO\n" "ZF2JT\n" "ZK2DF\n" "ZK2DL\n" "ZK2V\n" "ZL1AAO\n" "ZL1AAR\n" "ZL1AH\n" "ZL1AIH\n" "ZL1AIX\n" "ZL1ALA\n" "ZL1ALZ\n" "ZL1ANH\n" "ZL1AZE\n" "ZL1BIV\n" "ZL1BOQ\n" "ZL1BVB\n" "ZL1BYZ\n" "ZL1CDP\n" "ZL1CDX\n" "ZL1DK\n" "ZL1IRD\n" "ZL1JMC\n" "ZL1KMN\n" "ZL1NI\n" "ZL1OGX\n" "ZL1T\n" "ZL1TM\n" "ZL1V\n" "ZL2ACG\n" "ZL2AFT\n" "ZL2AGY\n" "ZL2AJ\n" "ZL2AL\n" "ZL2ALJ\n" "ZL2AOH\n" "ZL2AUA\n" "ZL2AUB\n" "ZL2AUJ\n" "ZL2AZ\n" "ZL2BAB\n" "ZL2BR\n" "ZL2CV\n" "ZL2FT\n" "ZL2G\n" "ZL2GR\n" "ZL2IFB\n" "ZL2JKY\n" "ZL2JU\n" "ZL2LF\n" "ZL2MF\n" "ZL2MM\n" "ZL2OK\n" "ZL2ST\n" "ZL2UN\n" "ZL2UO\n" "ZL3A\n" "ZL3AB\n" "ZL3DMC\n" "ZL3DXT\n" "ZL3GA\n" "ZL3IO\n" "ZL3IX\n" "ZL3JT\n" "ZL3NB\n" "ZL3PAH\n" "ZL3SV\n" "ZL3TE\n" "ZL4A\n" "ZL4AD\n" "ZL4AS\n" "ZL4CR\n" "ZL4DH\n" "ZL4DX\n" "ZL4IG\n" "ZL4JB\n" "ZL4NG\n" "ZL4NR\n" "ZL4NX\n" "ZL4PW\n" "ZL4QJ\n" "ZL4QS\n" "ZL4WW\n" "ZL6HQ\n" "ZM1A\n" "ZM1K\n" "ZM2A\n" "ZM2AGY\n" "ZM2B\n" "ZM2M\n" "ZM2RR\n" "ZM3A\n" "ZM3T\n" "ZM4A\n" "ZM4G\n" "ZM4M\n" "ZM4T\n" "ZP0R\n" "ZP5AA\n" "ZP5CGL\n" "ZP5DPA\n" "ZP5KO\n" "ZP5MAL\n" "ZP6/N3BNA\n" "ZP6DEM\n" "ZP6VLA\n" "ZP6VT\n" "ZP7NIA\n" "ZP8VAO\n" "ZP9EH\n" "ZR1ADI\n" "ZS10WCS\n" "ZS1A\n" "ZS1AAX\n" "ZS1AJ\n" "ZS1EL\n" "ZS1IL\n" "ZS1JX\n" "ZS1JY\n" "ZS1OLI\n" "ZS1REC\n" "ZS1RJQ\n" "ZS1ROY\n" "ZS1SA\n" "ZS1SR\n" "ZS1WE\n" "ZS1XUK\n" "ZS1ZY\n" "ZS2BS\n" "ZS2DL\n" "ZS2EZ\n" "ZS2I\n" "ZS2NF\n" "ZS2Y\n" "ZS3AOR\n" "ZS3D\n" "ZS3Y\n" "ZS4BS\n" "ZS4JAN\n" "ZS4S\n" "ZS4TX\n" "ZS4U\n" "ZS5NK\n" "ZS5ZZ\n" "ZS6AKU\n" "ZS6BAF\n" "ZS6BB\n" "ZS6BQI\n" "ZS6BRZ\n" "ZS6C\n" "ZS6JPY\n" "ZS6JR\n" "ZS6ME\n" "ZS6PMS\n" "ZS6PVT\n" "ZS6RF\n" "ZS6RJ\n" "ZS6WN\n" "ZS6WR\n" "ZS9T\n" "ZS9X\n" "ZS9Z\n" "ZT2V\n" "ZV2A\n" "ZV2C\n" "ZV2K\n" "ZV2V\n" "ZV5E\n" "ZV5O\n" "ZW2B\n" "ZW2C\n" "ZW3F\n" "ZW4O\n" "ZW5B\n" "ZW5D\n" "ZW5HQ\n" "ZW5R\n" "ZW5UN\n" "ZW7A\n" "ZW8T\n" "ZX2B\n" "ZX2X\n" "ZX5B\n" "ZX5J\n" "ZX5ZZ\n" "ZX7A\n" "ZX7C\n" "ZX7U\n" "ZY2C\n" "ZY5Z\n" "ZY7C\n" "ZZ5Z\n" "ZZ6Z\n" "KH6/N0CO\n" "KH6/W6PH\n" "F/G4BJM\n" "F/DJ7JC\n" "IM0/IK0FMB\n" "ZZ5Z\n" "HA7VK\n" "CR3E\n" ; const char txt_titlpage[8182] = "\n" "\n" "\n" " \n" " \n" " \n" " $PCall - $TName\n" " \n" " \n" " \n" " \n" "

Contest log

\n" "
\n" "
\n" " \n" " Category:\n" " \n" " $PSectName\n" "
\n" "
\n" " Sheet Nr. 1 of $NoOfPages Pg\n" "
\n" "
\n" "
\n" " \n" " Band:\n" " \n" " $PBand\n" "
\n" "
\n" " \n" " WW-Locator:\n" " \n" " $PWWLo\n" "
\n" "
\n" "
\n" "
\n" " Call\n" " used: $PCall\n" "
\n" "
\n" "
\n" " Contest:\n" " $TDate - $TName\n" "
\n" "
\n" "
\n" " \n" " Contest QTH:\n" " \n" " $PAddr1 $Paddr2\n" "
\n" "
\n" "
\n" " \n" " First operator name:\n" " \n" " $RName\n" "
\n" "
\n" " \n" " Call:\n" " \n" " $RCall\n" "
\n" "
\n" "
\n" "
\n" " \n" " Address:\n" " \n" " $RAddr1 $RAddr2 $RPoCo $RCity\n" "
\n" "
\n" " \n" " Other operators:\n" " \n" " $MOpe1 $MOpe2\n" "
\n" "
\n" "
\n" " \n" " Transmitter:\n" " \n" " $TXEq\n" "
\n" "
\n" " \n" " Output:\n" " \n" " $SPowe\n" "
\n" "
\n" "
\n" "
\n" "
\n" " \n" " Reciever:\n" " \n" " $RXEq\n" "
\n" "
\n" " \n" " Preamp:\n" " \n" " $SPreamp\n" "
\n" "
\n" "
\n" "
\n" "
\n" " \n" " Antennas:\n" " \n" " $RAnte\n" "
\n" "
\n" " \n" " AGL;ASL:\n" " \n" " $SAntH\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" " \n" " Sum of\n" " QSO\n" " 's:\n" " \n" " $CQSOs\n" "
\n" "
\n" " \n" " Average\n" " km/QSO\n" " \n" " $CAvg\n" "
\n" "
\n" "
\n" "
\n" "
\n" " \n" " Best\n" " DX - km\n" " :\n" " \n" " $CODXQRB\n" "
\n" "
\n" " \n" " Call:\n" " \n" " $CODXCall\n" " \n" " Locator:\n" " \n" " $CODXLoc\n" "
\n" "
\n" "
\n" "
\n" " \n" " Countries worked:\n" " \n" " $CDXCCs\n" "
\n" "
\n" " \n" " Total sum of points:\n" " \n" " $CToSc\n" "
\n" "
\n" "
\n" " Declaration:\n" "
\n" "
\n" " I hereby certify that this station was operated within the rules and spirit of the contest and within the terms of the license.\n" "
\n" "
\n" "
\n" "
\n" " Date:\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" " First op. signature:\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" " Contest manager:\n" "
\n" "
\n" "
\n" " Call:\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" " Locator:\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" " Section:\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" " Claimed score:\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" " QSOs:\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" " Correction:\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" " Final score:\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" " \n" "\n" ; const char txt_tucnakrc[20113] = "# This file is generated automatically. Edit only at your own risk!\n" "\n" "pcall = \"\"\n" "pwwlo = \"\"\n" "pexch = \"\"\n" "operator = \"\"\n" "global_operator = 1\n" "\n" "padr1 = \"\"\n" "padr2 = \"\"\n" "pclub = \"\"\n" "\n" "rname = \"\"\n" "rcall = \"\"\n" "radr1 = \"\"\n" "radr2 = \"\"\n" "rpoco = \"\"\n" "rcity = \"\"\n" "rcoun = \"\"\n" "rphon = \"\"\n" "rhbbs = \"\"\n" "\n" "default_rs = \"59\"\n" "default_rst = \"599\"\n" "qsop_method = 1\n" "total_method = 1\n" "\n" "as_disk_qso = 1\n" "as_disk_min = 15\n" "as_disk_fsync = 1\n" "as_floppy_qso = 4\n" "as_floppy_min = 40\n" "as_floppy_fsync = 0\n" "as_mount_floppy = 0\n" "as_floppy_path = \"\"\n" "as_mount_cmd = \"\"\n" "\n" "net_if_ignore = \"yam0 bcsf0 ax0 ppp0\"\n" "net_ip_ignore = \"\"\n" "net_ip_announce = \"\"\n" "trace_bcast = 0\n" "trace_sock = 0\n" "trace_recv = 0\n" "trace_send = 0\n" "trace_qsos = 0\n" "language= 0\n" "\n" "cwda_type = 1\n" "cwda_device_s = \"/dev/parport0\"\n" "cwda_hostname = \"127.0.0.1\"\n" "cwda_udp_port = 6789\n" "cwda_speed = 26\n" "cwda_weight = 0\n" "cwda_minwpm = 10\n" "cwda_maxwpm = 41\n" "cwda_spk = 0\n" "cwda_leadin = 0\n" "cwda_vid = 0xa600\n" "cwda_pid = 0xe110\n" "\n" "wk_wk2 = 0\n" "wk_usepot = 1\n" "wk_usebut = 1\n" "wk_keymode = 1\n" "wk_swap = 0\n" "\n" "ssbd_type = 1\n" "ssbd_record = 1\n" "ssbd_maxmin = 15\n" "ssbd_diskfree = 10\n" "ssbd_format = 0x10020\n" "ssbd_channels = 1\n" "ssbd_samplerate = 8000\n" "ssbd_plev = -1\n" "ssbd_rlev = -1\n" "ssbd_template = \"$t/../record/%Y%m%d/%H/%H.%M.%S_$S_$V.wav\"\n" "\n" "ssbd_dsp = \"/dev/dsp\"\n" "ssbd_maxfrag = 0\n" "ssbd_mixer = \"/dev/mixer\"\n" "ssbd_oss_src = \"\"\n" "\n" "ssbd_pcm_play = \"plughw:0,0\"\n" "ssbd_pcm_rec = \"plughw:0,0\"\n" "ssbd_period_time = 0\n" "ssbd_buffer_time = 0\n" "ssbd_alsa_mixer = \"hw:0\"\n" "ssbd_alsa_src = \"Mic\"\n" "\n" "ssbd_hostname = \"127.0.0.1\"\n" "ssbd_udp_port = 7890\n" "\n" "\n" "ROTAR = 0\n" " rot_desc = \"First rotar A\"\n" " rot_type = 0\n" " rot_filename = \"/dev/ttyUSB0\"\n" " rot_hostname = \"\"\n" " rot_port = 55555\n" " rot_vid = 0xa600\n" " rot_pid = 0xe112\n" " rot_serial = \"\"\n" " rot_timeout_ms = 300\n" " rot_beamwidth = 10\n" " rot_saddr = 240\n" " rot_model = 0\n" " rot_rem_rotstr = \"A\"\n" "\n" "\n" "rig_filename = \"/dev/ttyS0\"\n" "rig_model = 0\n" "rig_civaddr = 0x58\n" "rig_lo = 0.000000\n" "rig_ssbcw_shift = 800\n" "\n" "\n" "loglines = 3\n" "skedshift = 5\n" "startband = \"144 MHz\"\n" "gfx_x = 954\n" "gfx_y = 672\n" "doublefont = 0\n" "slashkey = \"\"\n" "ntpq = 0\n" "dssaver = 1\n" "\n" "\n" "CQ = 0\n" " cw_str = \"test $mc $mc $mc $mc test\"\n" " cw_speed = 0\n" " cw_repeat = 1\n" " cw_ts = 70\n" " cw_allowifundef = 1\n" " ssb_file = \"~/tucnak/cq/$MC_$O.wav\"\n" " ssb_ts = 70\n" " ssb_repeat = 1\n" "\n" "CQ = 1\n" " cw_str = \"test $mc $mc test\"\n" " cw_speed = 0\n" " cw_repeat = 0\n" " cw_ts = 70\n" " cw_allowifundef = 1\n" " ssb_file = \"~/tucnak/cq/$MC_$O.wav\"\n" " ssb_ts = 70\n" " ssb_repeat = 0\n" "\n" "CQ = 2\n" " cw_str = \"$c $mr $mn $mw k\"\n" " cw_speed = 0\n" " cw_repeat = 0\n" " cw_ts = 30\n" " cw_allowifundef = 0\n" " ssb_file = \"\"\n" " ssb_ts = 300\n" " ssb_repeat = 1\n" "\n" "CQ = 3\n" " cw_str = \"qrz?\"\n" " cw_speed = 0\n" " cw_repeat = 0\n" " cw_ts = 30\n" " cw_allowifundef = 0\n" " ssb_file = \"\"\n" " ssb_ts = 30\n" " ssb_repeat = 0\n" "\n" "CQ = 4\n" " cw_str = \"cfm test $mc\"\n" " cw_speed = 0\n" " cw_repeat = 0\n" " cw_ts = 30\n" " cw_allowifundef = 0\n" " ssb_file = \"\"\n" " ssb_ts = 30\n" " ssb_repeat = 1\n" "\n" "CQ = 5\n" " cw_str = \"de $MC $MC $MC K\"\n" " cw_speed = 0\n" " cw_repeat = 0\n" " cw_ts = 30\n" " cw_allowifundef = 0\n" " ssb_file = \"\"\n" " ssb_ts = 30\n" " ssb_repeat = 1\n" "\n" "\n" "TERM = \"cons25\"\n" " term_mode = 2\n" " term_m11_hack = 1\n" " term_restrict_852 = 0\n" " term_col = 1\n" " term_utf_8_io = 0\n" " term_charset = 0\n" "\n" "TERM = \"cygwin\"\n" " term_mode = 2\n" " term_m11_hack = 1\n" " term_restrict_852 = 0\n" " term_col = 1\n" " term_utf_8_io = 0\n" " term_charset = 2\n" "\n" "TERM = \"screen\"\n" " term_mode = 1\n" " term_m11_hack = 1\n" " term_restrict_852 = 0\n" " term_col = 1\n" " term_utf_8_io = 0\n" " term_charset = 2\n" "\n" "TERM = \"xterm\"\n" " term_mode = 1\n" " term_m11_hack = 1\n" " term_restrict_852 = 0\n" " term_col = 1\n" " term_utf_8_io = 0\n" " term_charset = 2\n" "\n" "TERM = \"linux\"\n" " term_mode = 1\n" " term_m11_hack = 1\n" " term_restrict_852 = 0\n" " term_col = 1\n" " term_utf_8_io = 0\n" " term_charset = 2\n" "\n" "TERM = \"sdl\"\n" " term_mode = 1\n" " term_m11_hack = 1\n" " term_restrict_852 = 0\n" " term_col = 1\n" " term_utf_8_io = 0\n" " term_charset = 2\n" "\n" "\n" "SUBWIN = 0 #QSOs\n" " sw_type = 0\n" " sw_command = \"\"\n" " sw_autorun = \"\"\n" " sw_respawn_time = 5\n" "\n" "SUBWIN = 1 #Sked\n" " sw_type = 5\n" " sw_command = \"\"\n" " sw_autorun = \"\"\n" " sw_respawn_time = 5\n" "\n" "SUBWIN = 2 #Talk\n" " sw_type = 3\n" " sw_command = \"\"\n" " sw_autorun = \"\"\n" " sw_respawn_time = 5\n" "\n" "SUBWIN = 3 #DXC\n" " sw_type = 4\n" " sw_command = \"\"\n" " sw_autorun = \"\"\n" " sw_respawn_time = 5\n" "\n" "SUBWIN = 4 #Unfi\n" " sw_type = 7\n" " sw_command = \"\"\n" " sw_autorun = \"\"\n" " sw_respawn_time = 5\n" "\n" "SUBWIN = 5 #Stat\n" " sw_type = 8\n" " sw_command = \"\"\n" " sw_autorun = \"\"\n" " sw_respawn_time = 5\n" "\n" "SUBWIN = 6 #Shell\n" " sw_type = 2\n" " sw_command = \"\"\n" " sw_autorun = \"\"\n" " sw_respawn_time = 5\n" "\n" "SUBWIN = 7 #Shell\n" " sw_type = 2\n" " sw_command = \"\"\n" " sw_autorun = \"\"\n" " sw_respawn_time = 5\n" "\n" "SUBWIN = 8 #Shell\n" " sw_type = 2\n" " sw_command = \"\"\n" " sw_autorun = \"\"\n" " sw_respawn_time = 5\n" "\n" "SUBWIN = 9 #Map\n" " sw_type = 9\n" " sw_command = \"\"\n" " sw_autorun = \"\"\n" " sw_respawn_time = 5\n" "\n" "SUBWIN = 10 #Scope\n" " sw_type = 10\n" " sw_command = \"\"\n" " sw_autorun = \"\"\n" " sw_respawn_time = 5\n" "\n" "SUBWIN = 11 #QRV\n" " sw_type = 11\n" " sw_command = \"\"\n" " sw_autorun = \"\"\n" " sw_respawn_time = 5\n" "\n" "\n" "PBAND = \"50 MHz\"\n" " bandchar = \"a\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 50000\n" " qrg_max = 52000\n" " adifband = \"6m\"\n" " cbrband = \"6M\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xff\n" "\n" "PBAND = \"70 MHz\"\n" " bandchar = \"b\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 70025\n" " qrg_max = 70500\n" " adifband = \"4m\"\n" " cbrband = \"4M\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xff\n" "\n" "PBAND = \"144 MHz\"\n" " bandchar = \"c\"\n" " qrv = 1\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"01\"\n" " ok_section_multi = \"02\"\n" " qrg_min = 144000\n" " qrg_max = 146000\n" " adifband = \"2m\"\n" " cbrband = \"2M\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xfe\n" "\n" "PBAND = \"220 MHz\"\n" " bandchar = \"d\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 220000\n" " qrg_max = 222000\n" " adifband = \"1.25m\"\n" " cbrband = \"222\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xff\n" "\n" "PBAND = \"432 MHz\"\n" " bandchar = \"e\"\n" " qrv = 1\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"03\"\n" " ok_section_multi = \"04\"\n" " qrg_min = 430000\n" " qrg_max = 440000\n" " adifband = \"70cm\"\n" " cbrband = \"432\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xfd\n" "\n" "PBAND = \"902 MHz\"\n" " bandchar = \"f\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 900000\n" " qrg_max = 902000\n" " adifband = \"35cm\"\n" " cbrband = \"902\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xff\n" "\n" "PBAND = \"1,3 GHz\"\n" " bandchar = \"g\"\n" " qrv = 1\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"05\"\n" " ok_section_multi = \"06\"\n" " qrg_min = 1240000\n" " qrg_max = 1300000\n" " adifband = \"23cm\"\n" " cbrband = \"1.2G\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xfb\n" "\n" "PBAND = \"2,3 GHz\"\n" " bandchar = \"h\"\n" " qrv = 1\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"07\"\n" " ok_section_multi = \"08\"\n" " qrg_min = 2300000\n" " qrg_max = 2450000\n" " adifband = \"13cm\"\n" " cbrband = \"2.3G\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xf7\n" "\n" "PBAND = \"3,4 GHz\"\n" " bandchar = \"i\"\n" " qrv = 1\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"09\"\n" " ok_section_multi = \"10\"\n" " qrg_min = 3400000\n" " qrg_max = 3410000\n" " adifband = \"9cm\"\n" " cbrband = \"3.4G\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xef\n" "\n" "PBAND = \"5,7 GHz\"\n" " bandchar = \"j\"\n" " qrv = 1\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"11\"\n" " ok_section_multi = \"12\"\n" " qrg_min = 5650000\n" " qrg_max = 5850000\n" " adifband = \"6cm\"\n" " cbrband = \"5.7G\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xdf\n" "\n" "PBAND = \"10 GHz\"\n" " bandchar = \"k\"\n" " qrv = 1\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"13\"\n" " ok_section_multi = \"14\"\n" " qrg_min = 10000000\n" " qrg_max = 10500000\n" " adifband = \"3cm\"\n" " cbrband = \"10G\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xbf\n" "\n" "PBAND = \"24 GHz\"\n" " bandchar = \"l\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"15\"\n" " ok_section_multi = \"16\"\n" " qrg_min = 24000000\n" " qrg_max = 24250000\n" " adifband = \"1.25cm\"\n" " cbrband = \"24G\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0x7f\n" "\n" "PBAND = \"47 GHz\"\n" " bandchar = \"m\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"17\"\n" " ok_section_multi = \"18\"\n" " qrg_min = 47000000\n" " qrg_max = 47200000\n" " adifband = \"6mm\"\n" " cbrband = \"47G\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xff\n" "\n" "PBAND = \"76 GHz\"\n" " bandchar = \"n\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"19\"\n" " ok_section_multi = \"20\"\n" " qrg_min = 75500000\n" " qrg_max = 76000000\n" " adifband = \"4mm\"\n" " cbrband = \"75G\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xff\n" "\n" "PBAND = \"122 GHz\"\n" " bandchar = \"o\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 0\n" " qrg_max = 0\n" " adifband = \"2.5mm\"\n" " cbrband = \"119G\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xff\n" "\n" "PBAND = \"134 GHz\"\n" " bandchar = \"p\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 142000000\n" " qrg_max = 149000000\n" " adifband = \"2mm\"\n" " cbrband = \"142G\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xff\n" "\n" "PBAND = \"248 GHz\"\n" " bandchar = \"q\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 241000000\n" " qrg_max = 250000000\n" " adifband = \"1mm\"\n" " cbrband = \"241G\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xff\n" "\n" "PBAND = \"1,8 MHz\"\n" " bandchar = \"u\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 1800\n" " qrg_max = 2000\n" " adifband = \"160m\"\n" " cbrband = \"160M\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0x01\n" "\n" "PBAND = \"3,5 MHz\"\n" " bandchar = \"v\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 3500\n" " qrg_max = 4000\n" " adifband = \"80m\"\n" " cbrband = \"80M\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0x02\n" "\n" "PBAND = \"7 MHz\"\n" " bandchar = \"w\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 7000\n" " qrg_max = 7300\n" " adifband = \"40m\"\n" " cbrband = \"40M\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0x03\n" "\n" "PBAND = \"14 MHz\"\n" " bandchar = \"x\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 14000\n" " qrg_max = 14350\n" " adifband = \"20m\"\n" " cbrband = \"20M\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0x05\n" "\n" "PBAND = \"21 MHz\"\n" " bandchar = \"y\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 21000\n" " qrg_max = 21450\n" " adifband = \"15m\"\n" " cbrband = \"15M\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0x07\n" "\n" "PBAND = \"28 MHz\"\n" " bandchar = \"z\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 28000\n" " qrg_max = 29700\n" " adifband = \"10m\"\n" " cbrband = \"10M\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0x09\n" "\n" ; const char txt_tucnakdw[8321] = "# 1th row - The official prefix of the DXCC\n" "# 2nd row - The list of WWL in the DXCC (separated by a gap).\n" "# The first WWL is the most effective one or midlands \n" "# or Capital City of DXCC.\n" "# 3rd row - The most effective WWL from JN69UO\n" "# There is a free row between DXCC's \n" "#\n" "# The list of DXCC in 'tucnakdw.dat':\n" "# 1A 3A 4J 4L 4O 4U1I 4U1V 5B 9A 9H C3 CT3 CT CU DU DL E7 EA6\n" "# EA8 EA9 EA EI ER ES EU F GD GI GJ GM GU GW G HB0 HB\n" "# HG HV IS IT9 I JW JX LA LX LY LZ OE OH0 OH OJ0 OK OM ON \n" "# OY OZ PA S5 SM SP SV5 SV9 SV TA T7 TF TK UA2 UR UA \n" "# YL YO YU Z3 ZA ZB\n" "\n" "1A\n" "JM75 JM76\n" "\n" "3A\n" "JN33\n" "JN33RR\n" "\n" "4J\n" "LM29 LM38 LM39 LM48 LM49 LN20 LN21 LN30 LN31 LN40 LN41 LN50\n" "\n" "4L\n" "LN01 LN02 LN03 LN11 LN12 LN13 LN21 LN22 LN31 LN32\n" "\n" "4O\n" "JN91 JN92 JN93 KN02 KN03\n" "\n" "4U1I\n" "JN36\n" "\n" "4U1V\n" "JN88\n" "\n" "4X\n" "KM70 KM71 KM72 KM73 KL79\n" "\n" "5B\n" "KM64 KM65 KM74 KM75\n" "\n" "9A\n" "JN64 JN65 JN72 JN73 JN74 JN75 JN76 JN82 JN83 JN84 JN85 JN86 JN92 JN94 JN95\n" "JN85MM \n" "\n" "9H\n" "JM75 JM76\n" "\n" "C3\n" "JN02\n" "\n" "CN\n" "IL37 IL38 IL47 IL48 IL49 IL57 IL58 IL59 IL69 IL79 IM50 IM51 IM52 IM53 IM60 IM61 IM62 IM63 IM64 IM65 IM70 IM71 IM72 IM73 IM74 IM75 IM80 IM81 IM82 IM83 IM84 IM85 IM92 IM93 IM94\n" "\n" "CT3\n" "IM12 IM13\n" "\n" "CT\n" "IM56 IM57 IM58 IM59 IM66 IM67 IM68 IM69 IN50 IN51 IN52 IN60 IN61\n" "\n" "CU\n" "HM49 HM58 HM59 HM68 HM69 HM76 HM77\n" "\n" "# nejen pk04\n" "DU\n" "PK04\n" "\n" "DL\n" "JN37 JN38 JN39 JN47 JN48 JN49 JN57 JN58 JN59 JN67 JN68 JN69 JO20 JO21 JO30 JO31 JO32 JO33 JO34 JO40 JO41 JO42 JO43 JO44 JO50 JO51 JO52 JO53 JO54 JO60 JO61 JO62 JO63 JO64 JO70 JO71 JO72 JO73 JO74\n" "JO31LE JO43WK\n" "\n" "E7\n" "JN74 JN75 JN82 JN83 JN84 JN85 JN92 JN93 JN94 JN95\n" "JN94IR \n" "\n" "EA6\n" "JM08 JM09 JM19 JM29 JN10 JN20\n" "\n" "EA8\n" "IL18 IL27 IL28 IL38 IL39\n" "IL28GD\n" "\n" "EA9\n" "IM75 IM85\n" "\n" "EA\n" "IM66 IM67 IM68 IM69 IM75 IM76 IM77 IM78 IM79 IM86 IM87 IM88 IM89 IM96 IM97 IM98 IM99 IN51 IN52 IN53 IN60 IN61 IN62 IN63 IN70 IN71 IN72 IN73 IN80 IN81 IN82 IN83 IN90 IN91 IN92 IN93 JM08 JM09 JN00 JN01 JN02 JN11 JN12\n" "\n" "EI\n" "IO41 IO42 IO43 IO44 IO51 IO52 IO53 IO54 IO55 IO61 IO62 IO63 IO64 IO65\n" "\n" "ER\n" "KN36 KN37 KN38 KN45 KN46 KN47 KN48 KN56\n" "\n" "ES\n" "KO07 KO08 KO17 KO18 KO19 KO27 KO28 KO29 KO37 KO38 KO39 KO49\n" "\n" "EU\n" "KO11 KO12 KO13 KO21 KO22 KO23 KO24 KO31 KO32 KO33 KO34 KO35 KO36 KO41 KO42 KO43 KO44 KO45 KO46 KO51 KO52 KO53 KO54 KO55 KO63\n" "\n" "F\n" "IN77 IN78 IN86 IN87 IN88 IN92 IN93 IN94 IN95 IN96 IN97 IN98 IN99 JN02 JN03 JN04 JN05 JN06 JN07 JN08 JN09 JN12 JN13 JN14 JN15 JN16 JN17 JN18 JN19 JN23 JN24 JN25 JN26 JN27 JN28 JN29 JN32 JN33 JN34 JN35 JN36 JN37 JN38 JN39 JN48 JO00 JO01 JO10 JO11 JO20\n" "JN38BO\n" "\n" "GD\n" "IO73 IO74\n" "\n" "GI\n" "IO54 IO63 IO64 IO65 IO74\n" "\n" "GJ\n" "IN89\n" "\n" "GM\n" "IO65 IO66 IO67 IO68 IO74 IO75 IO76 IO77 IO78 IO84 IO85 IO86 IO87 IO88 IO89 IO95 IO97 IO99 IP90\n" "\n" "GU\n" "IN89\n" "IN89RL\n" "\n" "GW\n" "IO71 IO72 IO73 IO81 IO82 IO83\n" "\n" "G\n" "IN79 IO70 IO71 IO80 IO81 IO82 IO83 IO84 IO85 IO90 IO91 IO92 IO93 IO94 IO95 JO00 JO01 JO02 JO03\n" "JO01QD\n" "\n" "HB0\n" "JN47\n" "JN47SD\n" "\n" "HB\n" "JN35 JN36 JN37 JN45 JN46 JN47 JN56\n" "JN47HD\n" "\n" "HA\n" "JN85 JN86 JN87 JN95 JN96 JN97 JN98 KN06 KN07 KN08 KN17 KN18\n" "JN97RV \n" "\n" "HV\n" "JN61\n" "\n" "IS\n" "JM48 JM49 JN40 JN41\n" "\n" "IT9\n" "JM67 JM68 JM76 JM77 JM78\n" "\n" "I\n" "JM77 JM78 JM79 JM87 JM88 JM89 JM99 JN33 JN34 JN35 JN43 JN44 JN45 JN46 JN51 JN52 JN53 JN54 JN55 JN56 JN57 JN60 JN61 JN62 JN63 JN64 JN65 JN66 JN67 JN70 JN71 JN72 JN80 JN81 JN90\n" "JN54XA\n" "\n" "JW\n" "JQ58 JQ59 JQ67 JQ68 JQ69 JQ76 JQ77 JQ78 JQ79 JQ86 JQ87 JQ88 JQ89 JQ97 JQ98 JQ99 KQ07 KQ08 KQ09 KQ17 KQ18 KQ19 KQ27 KQ29 KQ38 KQ39 KQ48 KQ58 JR70 JR80 JR90 KR00 KR10 KR20 KR30 KR40 KR50 KR60 KR80\n" "\n" "# ?\n" "JX\n" "IQ51\n" "\n" "LA\n" "JO28 JO29 JO37 JO38 JO39 JO48 JO49 JO58 JO59 JO69 JP20 JP21 JP22 JP30 JP31 JP32 JP33 JP40 JP41 JP42 JP43 JP44 JP50 JP51 JP52 JP53 JP54 JP55 JP60 JP61 JP62 JP63 JP64 JP65 JP66 JP67 JP68 JP74 JP75 JP76 JP77 JP78 JP79 JP86 JP87 JP88 JP89 JP98 JP99 JQ90 KP08 KP09 KP18 KP19 KP28 KP29 KP39 KP48 KP49 KP59 KQ00 KQ10 KQ20 KQ21 KQ30 KQ31 KQ40 KQ50\n" "\n" "LX\n" "JN29 JN39 JO20 JO30\n" "JN29VX \n" "\n" "LY\n" "KO05 KO06 KO13 KO14 KO15 KO16 KO23 KO24 KO25 KO26 KO34 KO35\n" "\n" "LZ\n" "KN11 KN12 KN13 KN14 KN21 KN22 KN23 KN31 KN32 KN33 KN34 KN43\n" "\n" "OE\n" "JN46 JN47 JN56 JN57 JN66 JN67 JN68 JN76 JN77 JN78 JN86 JN87 JN88\n" "JN88DC JN68PC\n" "\n" "# ?\n" "OH0\n" "JP90 KP00\n" "\n" "OH\n" "KO19 KO29 KP00 KP01 KP02 KP03 KP08 KP09 KP10 KP11 KP12 KP13 KP14 KP16 KP17 KP18 KP19 KP20 KP21 KP22 KP23 KP24 KP25 KP26 KP27 KP28 KP29 KP30 KP31 KP32 KP33 KP34 KP35 KP36 KP37 KP38 KP39 KP40 KP41 KP42 KP43 KP44 KP45 KP46 KP47 KP48 KP49 KP51 KP52 KP53 KP54 KP55 KQ30\n" "\n" "# ?\n" "OJ0\n" "JP90\n" "\n" "OK\n" "JN68 JN69 JN78 JN79 JN88 JN89 JN98 JN99 JO60 JO70 JO71 JO80 JO90\n" "JN89JM JO80IA\n" "\n" "OM\n" "JN87 JN88 JN89 JN97 JN98 JN99 KN08 KN09 KN18 KN19\n" "JN98EP JN88RG\n" "\n" "ON\n" "JN29 JO10 JO11 JO20 JO21 JO30\n" "JO20JU \n" "\n" "OY\n" "IP61 IP62\n" "\n" "OZ\n" "JO44 JO45 JO46 JO47 JO54 JO55 JO56 JO57 JO64 JO65 JO66 JO74 JO75\n" "\n" "PA\n" "JO11 JO20 JO21 JO22 JO23 JO30 JO31 JO32 JO33\n" "JO21GV\n" "\n" "S5\n" "JN65 JN66 JN75 JN76 JN86\n" "JN76KO\n" "\n" "SM\n" "JO57 JO58 JO59 JO65 JO66 JO67 JO68 JO69 JO75 JO76 JO77 JO78 JO79 JO86 JO87 JO88 JO89 JO96 JO97 JO98 JO99 JP53 JP60 JP61 JP62 JP63 JP64 JP70 JP71 JP72 JP73 JP74 JP75 JP76 JP80 JP81 JP82 JP83 JP84 JP85 JP86 JP87 JP88 JP90 JP92 JP93 JP94 JP95 JP96 JP97 JP98 KP03 KP04 KP05 KP06 KP07 KP08 KP09 KP15 KP16 KP17 KP18 KP25 KP26\n" "JO65TM\n" "\n" "SP\n" "JN89 JN99 JO70 JO71 JO72 JO73 JO74 JO80 JO81 JO82 JO83 JO84 JO90 JO91 JO92 JO93 JO94 KN09 KN19 KO00 KO01 KO02 KO03 KO04 KO10 KO11 KO12 KO13 KO14 KO20\n" "JO90FB JO91QF\n" "\n" "SV5\n" "KM35 KM36 KM45 KM46\n" "\n" "SV9\n" "KM15 KM24 KM25 KM34 KM35\n" "\n" "SV\n" "JM99 KM06 KM07 KM08 KM09 KM16 KM17 KM18 KM19 KM26 KM27 KM28 KM29 KM36 KM37 KM38 KM39 KN00 KN01 KN10 KN11 KN20 KN21 KN30 KN31\n" "\n" "TA\n" "KM27 KM28 KM29 KM35 KM36 KM37 KM38 KM39 KM46 KM47 KM48 KM49 KM56 KM57 KM58 KM59 KM64 KM65 KM66 KM67 KM68 KM69 KM74 KM75 KM76 KM77 KM78 KM79 KM85 KM86 KM87 KM88 KM89 KM96 KM97 KM98 KM99 KN20 KN30 KN31 KN32 KN40 KN41 KN50 KN51 KN60 KN61 KN62 KN70 KN71 KN72 KN80 KN81 KN90 KN91 LM06 LM07 LM08 LM09 LM17 LM18 LM19 LM26 LM27 LM28 LM29 LN00 LN01 LN10 LN11 LN20\n" "KM69JX\n" "\n" "# ?\n" "T7\n" "JN63\n" "\n" "TF\n" "HP74 HP75 HP83 HP84 HP85 HP86 HP93 HP94 HP95 HP96 IP03 IP04 IP05 IP06 IP13 IP14 IP15 IP16 IP24 IP25 IP26 IP34 IP35\n" "\n" "TK\n" "JN41 JN42 JN43\n" "\n" "UA2\n" "JO94 KO04 KO05 KO14 KO15\n" "\n" "UR\n" "KN17 KN18 KN19 KN27 KN28 KN29 KN37 KN38 KN39 KN45 KN46 KN47 KN48 KN49 KN55 KN56 KN57 KN58 KN59 KN64 KN65 KN66 KN67 KN68 KN69 KN74 KN75 KN76 KN77 KN78 KN79 KN84 KN85 KN86 KN87 KN88 KN89 KN96 KN97 KN98 KN99 KO10 KO11 KO20 KO21 KO30 KO31 KO40 KO41 KO50 KO51 KO52 KO60 KO61 KO62 KO70 KO71 KO72 KO80 KO90 LN08 LN09\n" "\n" "UA\n" "KN84 KN85 KN86 KN89 KN93 KN94 KN95 KN96 KN97 KN98 KN99 KO36 KO37 KO38 KO39 KO45 KO46 KO47 KO48 KO49 KO52 KO53 KO54 KO55 KO56 KO57 KO58 KO62 KO63 KO64 KO65 KO66 KO67 KO68 KO69 KO70 KO71 KO72 KO73 KO74 KO75 KO76 KO77 KO78 KO79 KO80 KO81 KO82 KO83 KO84 KO85 KO86 KO87 KO88 KO89 KO90 KO91 KO92 KO93 KO94 KO95 KO96 KO97 KO98 KO99 LN03 LN04 LN05 LN06 LN07 LN08 LN09 LN12 LN13 LN14 LN15 LN16 LN17 LN18 LN19 LN22 LN23 LN24 LN25 LN26 LN27 LN28 LN29 LN31 LN32 LN33 LN34 LN35 LN36 LN37 LN38 LN39 LN41 LN42 LN43 LN44 LN45 LN46 LN47 LN49 LO00 LO01 LO02 LO03 LO04 LO05 LO06 LO07 LO08 LO09 LO10 LO11 LO12 LO13 LO14 LO15 LO16 LO17 LO18 LO19 LO20 LO21 LO22 LO23 LO24 LO25 LO26 LO27 LO28 LO29 LO90 LO91 LO92 LO93 LO94 LO95 LO96 LO97 LO98 LO99\n" "\n" "YL\n" "KO06 KO07 KO16 KO17 KO25 KO26 KO27 KO35 KO36 KO37 KO46\n" "\n" "YO\n" "KN04 KN05 KN06 KN07 KN13 KN14 KN15 KN16 KN17 KN18 KN23 KN24 KN25 KN26 KN27 KN33 KN34 KN35 KN36 KN37 KN38 KN43 KN44 KN45 KN46\n" "KN05PS\n" "\n" "YU\n" "JN93 JN94 JN95 JN96 KN02 KN03 KN04 KN05 KN06 KN12 KN13 KN14\n" "KN04IQ\n" "\n" "Z3\n" "KN00 KN01 KN02 KN11 KN12\n" "\n" "ZA\n" "JM99 JN90 JN91 JN92 KM09 KN00 KN01 KN02\n" "\n" "ZB\n" "IM76\n" "\n" "ZC4:\n" "KM65\n" "\n" ; const char txt_tucnakwiz[8678] = "[Region I Standard Contest]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=1\n" "total_method=1\n" "bands=ABCEGHIJKLMNOPQ\n" "\n" "[Region I Std test 59 expert]\n" "pexch=\n" "tttype=3\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=0\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=0\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=1\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=1\n" "total_method=1\n" "bands=CEGHIJKLMN\n" "\n" "[I. subregionalni zavod]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=1\n" "total_method=1\n" "bands=CEGHIJKLMN\n" "\n" "[II. subregionalni zavod]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=1\n" "total_method=1\n" "bands=CEGHIJKLMN\n" "\n" "[Microwave contest]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=1\n" "total_method=1\n" "bands=GHIJKLMN\n" "\n" "[III. subregionalni zavod]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=1\n" "total_method=1\n" "bands=CEGHIJKLMN\n" "\n" "[IARU Region I. VHF Contest]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=1\n" "total_method=1\n" "bands=C\n" "\n" "[IARU Region I. UHF Contest]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=1\n" "total_method=1\n" "bands=EGHIJKLMN\n" "\n" "[Marconi memorial/A1 Contest]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=1\n" "total_method=1\n" "bands=C\n" "\n" "[OK VHF Activity Contest]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=1\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=4\n" "total_method=1\n" "bands=CEGHIJKLMN\n" "\n" "[FM pohar]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=4\n" "total_method=1\n" "bands=CEGHIJKLMN\n" "\n" "[OK Easter Contest]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=1\n" "total_method=1\n" "bands=CEGHIJKLMN\n" "\n" "[AGCW VHF/UHF Contest]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=1\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=2\n" "excname=AGCW\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=1\n" "total_method=1\n" "bands=CE\n" "\n" "[RSGB M1-type Contest]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=1\n" "excbonu=0\n" "excmult=1\n" "exccfm=1\n" "exctype=2\n" "excname=RSGBDC\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=1\n" "qsop_method=12\n" "total_method=2\n" "bands=BC\n" "\n" "[RSGB M2-type Contest]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=1\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=0\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=2\n" "total_method=1\n" "bands=ABCEG\n" "\n" "[RSGB M3-type Contest]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=1\n" "wwlcfm=1\n" "excused=1\n" "excbonu=0\n" "excmult=1\n" "exccfm=1\n" "exctype=2\n" "excname=RSGBDC\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=1\n" "qsop_method=12\n" "total_method=2\n" "bands=ACE\n" "\n" "[RSGB M4-type Contest]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=1\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=0\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=1\n" "qsop_method=2\n" "total_method=2\n" "bands=ABCEK\n" "\n" "[SSB Liga]\n" "pexch=\n" "rstused=1\n" "tttype=2\n" "qsoused=0\n" "wwlused=0\n" "qsomult=1\n" "qsoglob=0\n" "qsop_method=1\n" "wwlbonu=0\n" "wwlmult=0\n" "dxcbonu=0\n" "dxcmult=0\n" "excbonu=0\n" "excmult=1\n" "total_method=1\n" "excused=1\n" "exctype=2\n" "excname=OKRES\n" "exccfm=0\n" "defrstr=1\n" "bands=V\n" "\n" "[CQ WW DX Contest]\n" "pexch=\n" "tttype=4\n" "qsoused=0\n" "qsomult=1\n" "qsoglob=1\n" "wwlused=0\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=0\n" "excused=1\n" "excbonu=0\n" "excmult=1\n" "exccfm=0\n" "exctype=3\n" "excname=WAZ\n" "rstused=1\n" "defrstr=1\n" "dxcbonu=0\n" "dxcmult=1\n" "qsop_method=13\n" "total_method=3\n" "bands=UVWXYZ\n" "\n" "[CQ WW WPX Contest]\n" "pexch=\n" "tttype=3\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=1\n" "wwlused=0\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=0\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=1\n" "dxcbonu=0\n" "dxcmult=1\n" "qsop_method=14\n" "total_method=3\n" "bands=UVWXYZ\n" "\n" "[UKSMG Summer Contest]\n" "pexch=\n" "tttype=4\n" "qsoused=2\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "excused=1\n" "excbonu=0\n" "excmult=0\n" "exccfm=0\n" "exctype=1\n" "excname=SUMMER\n" "excmult=1\n" "rstused=1\n" "defrstr=0\n" "dxcmult=0\n" "qsop_method=12\n" "total_method=1\n" "bands=A\n" "\n" "[ARRL VHF Contest]\n" "pexch=\n" "tttype=3\n" "qsoused=0\n" "qsomult=0\n" "qsoglob=1\n" "wwlused=3\n" "wwlbonu=0\n" "wwlmult=1\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=0\n" "exctype=0\n" "excname=\n" "rstused=0\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=15\n" "total_method=4\n" "bands=ABCDEFGHIJKLMNOPQ\n" "\n" "[ARRL Internat. DX Contest]\n" "pexch=\n" "tttype=2\n" "qsoused=0\n" "qsomult=3\n" "qsoglob=1\n" "wwlused=0\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=0\n" "excused=1\n" "excbonu=0\n" "excmult=1\n" "exccfm=0\n" "exctype=2\n" "excname=USACA\n" "rstused=1\n" "defrstr=1\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=2\n" "total_method=3\n" "bands=UVWXYZ\n" "\n" "[Championat de France THF]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=16\n" "total_method=1\n" "bands=CEGHIJKLMNOPQ\n" "\n" "[OK-OM DX Contest - OK stn.]\n" "pexch=\n" "rstused=1\n" "tttype=3\n" "qsoused=1\n" "wwlused=0\n" "qsomult=1\n" "qsoglob=1\n" "qsop_method=14\n" "wwlbonu=0\n" "wwlmult=0\n" "dxcbonu=0\n" "dxcmult=0\n" "excbonu=0\n" "excmult=1\n" "total_method=3\n" "excused=2\n" "exctype=0\n" "excname=OKRES\n" "exccfm=1\n" "defrstr=1\n" "bands=UVWXYZ\n" "\n" ; const char txt_tucnakvexcagcw[10] = "A B C\n" ; const char txt_tucnakvexcokres[725] = "APA APB APC APD APE APF APG APH API APJ\n" "BBN BBE BKD BKO BKH BME BMB BNY BPZ BPV BPB BRA\n" "CBU CCK CJH CPE CPI CPR CST CTA\n" "DDO DCH DKV DKL DPM DPJ DPS DRO DSO DTA\n" "ECL EDE ECH EJA ELI ELT ELO EMO ETE EUL \n" "FHB FHK FCR FJI FNA FPA FRK FSE FSV FTR FUO\n" "GBL GBM GBV GBR GHO GJI GKR GPR GTR GUH GVY GZL GZN GZS\n" "HBR HFM HJE HKA HNJ HOL HOP HOS HPR HSU HVS\n" "BAA BAB BAC BAD BAE MAL PEZ SEN\n" "TRN DST GAL HLO PIE SEA SKA\n" "TNC BAN ILA MYJ NMV PAR PBY PRI PUC\n" "NIT KOM LVC NZA SAL TOP ZMO\n" "ZIL BYT CAD DKU KNM LMI MAR NAM RUZ TTE TVR\n" "BBY BRE DET KRU LUC POL REV RSO VKR ZVO ZAR ZIH BST\n" "KEA KEB KEC KED KEO GEL MIC ROZ SOB SNV TRE\n" "PRE BAR HUM KEZ LEV POP SAB SNI SLU STR SVI VRT MED\n" ; const char txt_tucnakvexcrsgbdc[429] = "AB AL BA BB BD BH BL BM BN\n" "BR BS BT CA CB CF CH CM CO \n" "CR CT CV CW DA DD DE DG DH\n" "DL DN DT DY EC EH EL EN EX\n" "FK FY GL GS GU GY HA HD HG\n" "HP HR HS HU HX IG IM IP IV\n" "JE KA KT KW KY LA LD LE LL\n" "LN LP LS LU ME MK ML MR NE\n" "NG NL NN NP NR NW OL OX PA\n" "PE PH PL PO PR RG RH RM SA\n" "SD SE SG SK SL SM SN SO SP\n" "SR SS ST SW SY TA TD TF TN\n" "TQ TR TS TW UB WA WC WD WF\n" "WL WN WR WS WV YO ZE\n" ; const char txt_tucnakvexcusaca[496] = "AB \n" "AL\n" "ALB \n" "ALT \n" "AR\n" "AZ\n" "BC \n" "CA\n" "CO\n" "CT\n" "DC\n" "DE\n" "FL\n" "GA\n" "IA\n" "ID\n" "IL\n" "IN\n" "KS\n" "KY\n" "LA\n" "LAB\n" "MA\n" "MAN \n" "MB \n" "MD\n" "ME\n" "MI\n" "MN\n" "MO\n" "MS\n" "MT\n" "NB\n" "NC\n" "ND\n" "NE\n" "NF \n" "NH\n" "NJ\n" "NM\n" "NS\n" "NV\n" "NWT \n" "NY\n" "OH\n" "OK\n" "ON \n" "OR\n" "PA\n" "PEI\n" "PQ \n" "QC \n" "QU\n" "RI\n" "SC\n" "SD\n" "SK \n" "TN\n" "TX\n" "UT\n" "VA\n" "VT\n" "WA\n" "WI\n" "WV\n" "WY\n" "YT\n" "YU\n" ; tucnak2-2.48/src/img_png.c0000644000175000017500000002340211634350126012314 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This file is stolen from libsdl-image */ /* SDL_image: An example image loading library for use with SDL Copyright (C) 1999-2004 Sam Lantinga This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Sam Lantinga slouken@libsdl.org */ /* $Id: IMG_png.c,v 1.11 2004/05/16 18:16:58 slouken Exp $ */ /* This is a PNG image file loading framework */ #define LOAD_PNG #ifdef LOAD_PNG /*============================================================================= File: SDL_png.c Purpose: A PNG loader and saver for the SDL library Revision: Created by: Philippe Lavoie (2 November 1998) lavoie@zeus.genie.uottawa.ca Modified by: Copyright notice: Copyright (C) 1998 Philippe Lavoie This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Comments: The load and save routine are basically the ones you can find in the example.c file from the libpng distribution. Changes: 5/17/99 - Modified to use the new SDL data sources - Sam Lantinga =============================================================================*/ #include "header.h" #if defined(HAVE_SDL) && defined(HAVE_LIBPNG) #define IMG_SetError dbg #define PNG_BYTES_TO_CHECK 4 #if 0 /* See if an image is contained in a data source */ static int IMG_isPNG(SDL_RWops *src) { unsigned char buf[PNG_BYTES_TO_CHECK]; /* Read in the signature bytes */ if (SDL_RWread(src, buf, 1, PNG_BYTES_TO_CHECK) != PNG_BYTES_TO_CHECK) return 0; /* Compare the first PNG_BYTES_TO_CHECK bytes of the signature. */ return( !png_sig_cmp(buf, (png_size_t)0, PNG_BYTES_TO_CHECK)); } #endif /* Load a PNG type image from an SDL datasource */ static void png_read_data(png_structp ctx, png_bytep area, png_size_t size) { SDL_RWops *src; src = (SDL_RWops *)png_get_io_ptr(ctx); SDL_RWread(src, area, size, 1); } static SDL_Surface *IMG_LoadPNG_RW(SDL_RWops *src) { SDL_Surface *volatile surface; png_structp png_ptr; png_infop info_ptr; png_uint_32 width, height; int bit_depth, color_type, interlace_type; Uint32 Rmask; Uint32 Gmask; Uint32 Bmask; Uint32 Amask; SDL_Palette *palette; png_colorp png_palette; int png_num_palette; png_bytep *volatile row_pointers; int row, i; volatile int ckey = -1; png_color_16 *transv; if ( !src ) { /* The error message has been set in SDL_RWFromFile */ return NULL; } /* Initialize the data we will clean up when we're done */ png_ptr = NULL; info_ptr = NULL; row_pointers = NULL; surface = NULL; /* Create the PNG loading context structure */ png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL,NULL,NULL); if (png_ptr == NULL){ IMG_SetError("Couldn't allocate memory for PNG file or incompatible PNG dll"); goto done; } /* Allocate/initialize the memory for image information. REQUIRED. */ info_ptr = png_create_info_struct(png_ptr); if (info_ptr == NULL) { IMG_SetError("Couldn't create image information for PNG file"); goto done; } /* Set error handling if you are using setjmp/longjmp method (this is * the normal method of doing things with libpng). REQUIRED unless you * set up your own error handlers in png_create_read_struct() earlier. */ if ( setjmp(png_jmpbuf(png_ptr)) ) { IMG_SetError("Error reading the PNG file."); goto done; } /* Set up the input control */ png_set_read_fn(png_ptr, src, png_read_data); /* Read PNG header info */ png_read_info(png_ptr, info_ptr); png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, &interlace_type, NULL, NULL); /* tell libpng to strip 16 bit/color files down to 8 bits/color */ png_set_strip_16(png_ptr) ; /* Extract multiple pixels with bit depths of 1, 2, and 4 from a single * byte into separate bytes (useful for paletted and grayscale images). */ png_set_packing(png_ptr); /* scale greyscale values to the range 0..255 */ if(color_type == PNG_COLOR_TYPE_GRAY) png_set_expand(png_ptr); /* For images with a single "transparent colour", set colour key; if more than one index has transparency, or if partially transparent entries exist, use full alpha channel */ if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) { int num_trans; Uint8 *trans; png_get_tRNS(png_ptr, info_ptr, &trans, &num_trans, &transv); if(color_type == PNG_COLOR_TYPE_PALETTE) { /* Check if all tRNS entries are opaque except one */ int i, t = -1; for(i = 0; i < num_trans; i++) if(trans[i] == 0) { if(t >= 0) break; t = i; } else if(trans[i] != 255) break; if(i == num_trans) { /* exactly one transparent index */ ckey = t; } else { /* more than one transparent index, or translucency */ png_set_expand(png_ptr); } } else ckey = 0; /* actual value will be set later */ } if ( color_type == PNG_COLOR_TYPE_GRAY_ALPHA ) png_set_gray_to_rgb(png_ptr); png_read_update_info(png_ptr, info_ptr); png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, &interlace_type, NULL, NULL); /* Allocate the SDL surface to hold the image */ Rmask = Gmask = Bmask = Amask = 0 ; if ( color_type != PNG_COLOR_TYPE_PALETTE ) { if ( SDL_BYTEORDER == SDL_LIL_ENDIAN ) { Rmask = 0x000000FF; Gmask = 0x0000FF00; Bmask = 0x00FF0000; Amask = (png_get_channels(png_ptr, info_ptr) == 4) ? 0xFF000000 : 0; } else { int s = (png_get_channels(png_ptr, info_ptr) == 4) ? 0 : 8; Rmask = 0xFF000000 >> s; Gmask = 0x00FF0000 >> s; Bmask = 0x0000FF00 >> s; Amask = 0x000000FF >> s; } } surface = SDL_AllocSurface(SDL_SWSURFACE, width, height, bit_depth*png_get_channels(png_ptr, info_ptr), Rmask,Gmask,Bmask,Amask); if ( surface == NULL ) { IMG_SetError("Out of memory"); goto done; } if(ckey != -1) { if(color_type != PNG_COLOR_TYPE_PALETTE) /* FIXME: Should these be truncated or shifted down? */ ckey = SDL_MapRGB(surface->format, (Uint8)transv->red, (Uint8)transv->green, (Uint8)transv->blue); SDL_SetColorKey(surface, SDL_SRCCOLORKEY, ckey); } /* Create the array of pointers to image data */ row_pointers = (png_bytep*) malloc(sizeof(png_bytep)*height); if ( (row_pointers == NULL) ) { IMG_SetError("Out of memory"); SDL_FreeSurface(surface); surface = NULL; goto done; } for (row = 0; row < (int)height; row++) { row_pointers[row] = (png_bytep) (Uint8 *)surface->pixels + row*surface->pitch; } /* Read the entire image in one go */ png_read_image(png_ptr, row_pointers); /* and we're done! (png_read_end() can be omitted if no processing of * post-IDAT text/time/etc. is desired) * In some cases it can't read PNG's created by some popular programs (ACDSEE), * we do not want to process comments, so we omit png_read_end png_read_end(png_ptr, info_ptr); */ /* Load the palette, if any */ png_get_PLTE(png_ptr, info_ptr, &png_palette, &png_num_palette); palette = surface->format->palette; if ( palette ) { if(color_type == PNG_COLOR_TYPE_GRAY) { palette->ncolors = 256; for(i = 0; i < 256; i++) { palette->colors[i].r = i; palette->colors[i].g = i; palette->colors[i].b = i; } } else if (png_num_palette > 0 ) { palette->ncolors = png_num_palette; for( i=0; icolors[i].b = png_palette[i].blue; palette->colors[i].g = png_palette[i].green; palette->colors[i].r = png_palette[i].red; } } } done: /* Clean up and return */ png_destroy_read_struct(&png_ptr, info_ptr ? &info_ptr : (png_infopp)0, (png_infopp)0); if ( row_pointers ) { free(row_pointers); } return(surface); } SDL_Surface *do_png_load(char *filename){ SDL_RWops *src; SDL_Surface *surface; src=SDL_RWFromFile(filename, "rb"); surface=IMG_LoadPNG_RW(src); SDL_RWclose(src); return surface; } SDL_Surface *do_png_create(const void *data, int len){ SDL_RWops *src; SDL_Surface *surface; src=SDL_RWFromConstMem(data, len); surface=IMG_LoadPNG_RW(src); SDL_RWclose(src); return surface; } #endif #else /* See if an image is contained in a data source */ int IMG_isPNG(SDL_RWops *src) { return(0); } /* Load a PNG type image from an SDL datasource */ SDL_Surface *IMG_LoadPNG_RW(SDL_RWops *src) { return(NULL); } #endif /* LOAD_PNG */ tucnak2-2.48/src/cordata.c0000644000175000017500000000062211567373656012332 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include "cor.h" #include "cordata.h" #include "cordata.inc" tucnak2-2.48/src/txts.h0000644000175000017500000000124111567373656011722 00000000000000/* Automatically generated by txt2inc.pl */ extern const char txt_cty[62178]; extern const char txt_master[65525]; extern const char txt_master1[65523]; extern const char txt_master2[65528]; extern const char txt_master3[65530]; extern const char txt_master4[65520]; extern const char txt_master5[65523]; extern const char txt_master6[26674]; extern const char txt_titlpage[8182]; extern const char txt_tucnakrc[20113]; extern const char txt_tucnakdw[8321]; extern const char txt_tucnakwiz[8678]; extern const char txt_tucnakvexcagcw[10]; extern const char txt_tucnakvexcokres[725]; extern const char txt_tucnakvexcrsgbdc[429]; extern const char txt_tucnakvexcusaca[496]; tucnak2-2.48/src/msvc.h0000644000175000017500000001440611567373656011677 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-20011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. Interface for MSVC compiler */ #ifdef __MSVC2 #ifndef __MSVC2_H #define fopen(file, mode) fopen(wokna(file), mode) #endif #endif #ifndef __MSVC_H #define __MSVC_H #include "stdafx.h" #pragma warning(disable : 4018) #pragma warning(disable : 4101) #pragma warning(disable : 4244) #pragma warning(disable : 4996) //todo remove #pragma warning(disable : 4028) #pragma warning(disable : 4030) #define _CRT_SECURE_NO_WARNINGS #define WINVER 0x0500 #define _WIN32_WINNT 0x0500 #include #include #include #include #include #include #include #include "regex_.h" #define PACKAGE "tucnak2" #define VERSION "2.41" #define PACKAGE_NAME PACKAGE #define PACKAGE_VERSION VERSION #define SHAREDIR #define HAVE_STDINT_H #define HAVE_UINT32_T #define HAVE_SDL #define HAVE_ICONV_H #define HAVE_PNG_H #define HAVE_LIBPNG #ifndef HAVE_MATH_H #define HAVE_MATH_H #endif #define strcasecmp _stricmp #define strncasecmp _strnicmp #define tmkdir(dir, mode) mkdir(dir) #define dup(fd) _dup(fd) #define dup2(oldfd, newfd) _dup2(oldfd, newfd) #define getpid _getpid #define SO4 (char *) #define __attribute__(attr) typedef int mode_t; typedef int pid_t; typedef int socklen_t; typedef int speed_t; typedef int iconv_t; extern char *txt_settings; /*typedef struct timeval{ int tv_sec, tv_usec; }; */ int gettimeofday(struct timeval *tv, void *zone); int settimeofday(const struct timeval *tv, const void *zone); #define B50 0000001 #define B75 0000002 #define B110 0000003 #define B134 0000004 #define B150 0000005 #define B200 0000006 #define B300 0000007 #define B600 0000010 #define B1200 0000011 #define B1800 0000012 #define B2400 0000013 #define B4800 0000014 #define B9600 0000015 #define B19200 0000016 #define B38400 0000017 #define IGNBRK 0000001 #define BRKINT 0000002 #define IGNPAR 0000004 #define PARMRK 0000010 #define INPCK 0000020 #define ISTRIP 0000040 #define INLCR 0000100 #define IGNCR 0000200 #define ICRNL 0000400 #define IXON 0002000 #define OPOST 0000001 #define ISIG 0000001 #define ICANON 0000002 #define ECHO 0000010 #define ECHOE 0000020 #define ECHONL 0000100 #define IEXTEN 0100000 #define CSIZE 0000060 #define CS8 0000060 #define CSTOPB 0000100 #define CREAD 0000200 #define PARENB 0000400 #define PARODD 0001000 #define CLOCAL 0004000 #define TCSANOW 0 #define INPCK 0000020 #define CRTSCTS 020000000000 #define VTIME 5 #define VMIN 6 #define WNOHANG 1 #define TCIFLUSH 0 #define NCCS 32 typedef struct termios{ int c_iflag, c_oflag, c_cflag, c_lflag; char c_cc[NCCS]; }; /* file */ #define O_RDONLY 00 #define O_WRONLY 01 #define O_RDWR 02 #define O_CREAT 0100 #define O_EXCL 0200 #define O_NOCTTY 0400 #define O_SYNC 010000 char *wokna(char *file); int open(const char *pathname, int flags); int close(int fd); int read(int fd, void *buf, int count); int write(int fd, const void *buf, int count); int pipe(int *fds); int fsync(int fd); int lockf(int fd, int cmd, off_t len); int ftruncate(int fd, off_t length); int tcgetattr(int fd, struct termios *termios_p); int tcsetattr(int fd, int optional_actions, const struct termios *termios_p); int tcflush(int fd, int queue_selector); int cfsetispeed(struct termios *termios_p, speed_t speed); int cfsetospeed(struct termios *termios_p, speed_t speed); void cfmakeraw(struct termios *termios_p); int _dup(int fd); int _dup2(int oldfd, int newfd); /* ioctl */ #define TIOCM_DTR 0x002 #define TIOCM_RTS 0x004 #define TIOCGWINSZ 0x5413 #define TIOCSWINSZ 0x5414 #define TIOCMBIS 0x5416 #define TIOCMBIC 0x5417 #define TIOCLINUX 0x541C int ioctl(int d, int request, ...); /* fcntl */ #define F_SETFL 4 #define O_NONBLOCK 04000 int fcntl(int fd, int cmd, long arg); /* signal */ #define SIGHUP 1 #define SIGPIPE 13 #define SIGCHLD 17 typedef struct siginfo_t { int dommy; }siginfo_t; typedef int sigset_t; struct sigaction { void (*sa_handler)(int); void (*sa_sigaction)(int, siginfo_t *, void *); sigset_t sa_mask; int sa_flags; void (*sa_restorer)(void); }; int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); int sigfillset(sigset_t *set); /* misc */ #define strtok_r strtok_s int main(int argc, char *argv[]); int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow); void sleep(int sec); void usleep(int usec); struct tm *gmtime_r(time_t *timep, struct tm *result); void *sbrk(int increment); char *strerror_r(int err_no, char *buf, int size); int setenv(const char *name, const char *value, int overwrite); /* socket */ #define sock_errno WSAGetLastError() char *sock_strerror_r(int err, char *errstr, int size); int inet_aton(const char *cp, struct in_addr *inp); /* process */ pid_t fork(void); int kill(pid_t pid, int sig); pid_t waitpid(pid_t pid, int *status, int options); /* directory */ #define __S_IFMT 0170000 #define __S_IFDIR 0040000 #define __S_IFREG 0100000 #define __S_ISTYPE(mode, mask) (((mode) & __S_IFMT) == (mask)) #define S_ISDIR(mode) __S_ISTYPE((mode), __S_IFDIR) #define S_ISREG(mode) __S_ISTYPE((mode), __S_IFREG) typedef struct dirent{ char d_name[_MAX_PATH]; }; typedef struct DIR{ long handle; /* -1 for failed rewind */ struct _finddata_t info; struct dirent result; /* d_name null iff first time */ char *name; /* null-terminated char string */ }DIR; DIR *opendir(char *name); struct dirent *readdir(DIR *dir); int closedir(DIR *dir); #endif tucnak2-2.48/src/eprintf.c0000644000175000017500000001233011567373656012363 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2010 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include #include #include #include #include static char *base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; int zg_string_veprintfa(const char *flags, GString *gs, char *fmt, va_list l){ int oldlen, argi, len, i; char *add, *c, *d, *fmt2, type; unsigned char *bin; GString *gs2; oldlen = gs->len; fmt2 = g_new(char, strlen(fmt) + 1); argi = 0; for (c = fmt; *c != '\0'; c++){ if (*c != '%'){ g_string_append_c(gs, *c); continue; } type = '\0'; for (d = fmt2; *c != '\0'; c++, d++){ *d = *c; if (!isalpha(*c)) continue; type = *c; *d = tolower(*d); d++; *d = '\0'; break; } add = NULL; switch (tolower(type)){ case 'b': // base64 bin = va_arg(l, unsigned char *); len = va_arg(l, int); for (i = 0; i < len; i+= 3){ g_string_append_c(gs, base64[ bin[i] >> 2 ]); // output char 0 if (i + 1 < len){ g_string_append_c(gs, base64[ ((bin[i] & 0x03) << 4) | ((bin[i + 1] & 0xf0) >> 4)]); // output char 1 if (i + 2 < len){ g_string_append_c(gs, base64[ ((bin[i + 1] & 0x0f) << 2) | ((bin[i + 2] & 0xc0) >> 6)]); // output char 2 g_string_append_c(gs, base64[ bin[i + 2] & 0x3f ]); // output char 3 }else{ g_string_append_c(gs, base64[ (bin[i + 1] & 0x0f) << 2]); // output char 2 g_string_append_c(gs, '='); //output char 3 } }else{ g_string_append_c(gs, base64[ ((bin[i] & 0x03) << 4) ]); // output char 1 g_string_append(gs, "=="); // output chars 2,3 } } break; case 'c': add = g_strdup_printf(fmt2, va_arg(l, int)); // char is promoted to int when passed through ... break; case 'd': case 'i': case 'u': case 'x': add = g_strdup_printf(fmt2, va_arg(l, int)); break; case 's': add = g_strdup_printf(fmt2, va_arg(l, char *)); break; default: add = g_strdup(fmt2); break; } if (add != NULL && isupper(type)){ for (d = add; *d != '\0'; d++) *d = toupper(*d); } switch(flags[0]){ case 'b': // handled in code before break; case 'e': // escape with '\' break; case 'h': // html for (d = add; *d != '\0'; d++){ switch(*d){ case '<': g_string_append(gs, "<"); break; case '>': g_string_append(gs, ">"); break; case '"': g_string_append(gs, """); break; case '&': g_string_append(gs, "&"); break; case '\'': g_string_append(gs, "'"); break; default: g_string_append_c(gs, *d); } } break; case 'q': // quoted-printable gs2 = g_string_sized_new(strlen(add)); for (d = add; *d != '\0'; d++){ if (gs2->len > 70){ g_string_append(gs, gs2->str); g_string_append(gs, "=\r\n"); g_string_assign(gs2, ""); } if (*d == '\r') continue; if (*d == '\n') { g_string_append(gs, "\r\n"); continue; } if ((*(d+1) == '\r' || *(d+1) == '\n') && (*d == ' ' || *d == '\t')){ g_string_sprintfa(gs, "=%02X", (unsigned char)*d); continue; } if (*d & 0x80 || *d == '=' || (*d & 0xf8) == 0){ g_string_sprintfa(gs, "=%02X", (unsigned char)*d); continue; } g_string_append_c(gs, *d); } g_string_append(gs, gs2->str); g_string_free(gs, TRUE); break; case 's': // postgresql for (d = add; *d != '\0'; d++){ switch (*c){ case '\'': g_string_append(gs, "''"); break; case '\\': g_string_append(gs, "\\\\"); break; } } break; case 'u': // url for (d = add; *d != '\0'; d++){ if (isalnum(*d) || *d == '_' || *d == '-' || *d == '.'){ g_string_append_c(gs, *d); continue; } g_string_append_c(gs, '%'); g_string_sprintfa(gs, "%02X", (unsigned char)*d); } break; case 'w': // wiki g_string_append(gs, ""); for (d = add; *d != '\0'; d++){ switch (*c){ case '<': g_string_append(gs, "<"); break; case '>': g_string_append(gs, ">"); break; case '"': g_string_append(gs, """); break; case '&': g_string_append(gs, "&"); break; case '\'': g_string_append(gs, "'"); break; default: g_string_append_c(gs, *d); } } g_string_append(gs, ""); break; default: g_string_append(gs, add); } // switch if (add) g_free(add); } // for g_free(fmt2); return gs->len - oldlen; } int zg_string_eprintfa(const char *flags, GString *gs, char *fmt, ...){ va_list l; int ret; va_start(l, fmt); ret = zg_string_veprintfa(flags, gs, fmt, l); va_end(l); return ret; } int zg_string_eprintf(const char *flags, GString *gs, char *fmt, ...){ va_list l; int ret; g_string_assign(gs, ""); va_start(l, fmt); ret = zg_string_veprintfa(flags, gs, fmt, l); va_end(l); return ret; } tucnak2-2.48/src/rotar.c0000644000175000017500000004261111727646446012046 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2012 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" struct rotar *rota,*rotb; int hdkeyb_disp_ofs[HDKEYB_ROTARS] = {0, 8, 64, 72}; struct hdkeyb *hdkeyb; GPtrArray *rotars; MUTEX_DEFINE(rotars); struct rotar *rotar; gpointer rot_hamlib_main(gpointer xxx); static int rot_print_model_list(const struct rot_caps *caps, void *data) { log_addf("%-6d %-14s %-20s %s\n", caps->rot_model, caps->mfg_name, caps->model_name, caps->version); return 1; /* !=0, we want them all ! */ } struct rotar *init_rotar(struct config_rotar *crot, int rotchar){ struct rotar *rot; if (!crot) return NULL; if (!crot->rot_type) return NULL; rot=g_new0(struct rotar, 1); switch(crot->rot_type){ case ROT_OK1ZIA_TTYS: rot->sdev=sd_open_ttys(crot->rot_saddr, crot->rot_filename, crot->rot_timeout_ms); dbg("init_rotar rot=%p saddr=%d filename='%s' timeout=%d\n", rot->sdev, crot->rot_saddr, crot->rot_filename, crot->rot_timeout_ms); if (!rot->sdev){ g_free(rot); return NULL; } rot->sdev->sdev_main = rotar_main; rot->sdev->arg = rot; break; #ifdef HAVE_LIBFTDI case ROT_OK1ZIA_FTDI: rot->sdev=sd_open_ftdi(crot->rot_saddr, crot->rot_vid, crot->rot_pid, crot->rot_serial, crot->rot_timeout_ms); dbg("init_rotar rot=%p saddr=%d %04x:%04x timeout=%d sdev=%p\n", rot->sdev, crot->rot_saddr, crot->rot_vid, crot->rot_pid, crot->rot_timeout_ms, rot->sdev); if (!rot->sdev){ g_free(rot); return NULL; } rot->sdev->sdev_main = rotar_main; rot->sdev->arg = rot; break; #endif case ROT_REMOTE: dbg("init_rotar rot=%p saddr=%d hostname='%s' port='%d' timeout=%d\n", rot->sdev, crot->rot_saddr, crot->rot_hostname, crot->rot_port, crot->rot_timeout_ms); break; #ifdef HAVE_HAMLIB case ROT_HAMLIB: rot->rot = rot_init(crot->rot_model); if (!rot->rot){ log_addf("Unknown rotarot number %d or initialization error", crot->rot_model); g_free(rot); log_addf("Registrated rotators:"); rot_load_all_backends(); rot_list_foreach(rot_print_model_list, NULL); return NULL; } if (crot->rot_model > 0){ safe_strncpy(rot->rot->state.rotport.pathname, crot->rot_filename, FILPATHLEN); //rot->rot->state.rotport.timeout = 2000; } rot->hl_azim = -1; rot->hl_model = crot->rot_model; rot->hl_thread = g_thread_create(rot_hamlib_main, (gpointer)rot, TRUE, NULL); if (!rot->hl_thread) { log_addf("Can't create hamlib rotar thread\n"); } break; #endif default: log_addf("Unsupported rotator type %d\n", crot->rot_type); g_free(rot); return NULL; break; } rot->desc=g_strdup(crot->rot_desc); rot->beamwidth=crot->rot_beamwidth; rot->color=0xffffffff; /*replaced in rot_update_colors*/ /* rot->qtf=260+40*cfg->nr;*/ // rot->timer_id=-1; rot->rotchar=rotchar; rot->rotstr[0]=rotchar; rot->rotstr[1]='\0'; rot->type = crot->rot_type; rot->netid = g_strdup_printf("%s:%d", crot->rot_hostname, crot->rot_port); rot->rem_rotstr = g_strdup(crot->rot_rem_rotstr); /* if (rot->sdev){ rot->sdev->sconn->sprotocol = SPROT_ROTAR; g_snprintf(s, sizeof(s), "%d", SPROT_ROTAR); zwrite(rot->sdev->sconn->pipe_write, zconcatesc("ADD", rot->rotstr, rot->sdev->saddr_str, s, NULL)); }*/ return rot; } void free_rotar(struct rotar *rot){ if (rot->hl_thread){ rot->hl_thread_break = 1; dbg("join hamlib rotar...\n"); g_thread_join(rot->hl_thread); dbg("done\n"); rot->hl_thread=0; } g_free(rot->desc); g_free(rot->netid); g_free(rot->rem_rotstr); free_sd(rot->sdev); g_free(rot); } int init_rotars(){ struct rotar *rot; struct config_rotar *cfgrot; int i; char rotchar='A'; MUTEX_INIT(rotars); rotars=g_ptr_array_new(); for (i=0;icrotars->len;i++){ cfgrot=(struct config_rotar*)g_ptr_array_index(cfg->crotars, i); if (!cfgrot) continue; rot=init_rotar(cfgrot, rotchar++); if (!rot) continue; MUTEX_LOCK(rotars); g_ptr_array_add(rotars, rot); MUTEX_UNLOCK(rotars); } #ifdef HAVE_SDL rot_update_colors(); #endif return 0; } int free_rotars(void){ int i; struct rotar *rot; MUTEX_LOCK(rotars); for (i=0;ilen;i++){ rot = (struct rotar *)g_ptr_array_index(rotars, i); free_rotar(rot); } MUTEX_UNLOCK(rotars); g_ptr_array_free(rotars,1); rotars=NULL; return 0; } #ifdef HAVE_SDL int rot_update_colors(){ int i; struct rotar *rot; if (!sdl || !rotars) return -1; MUTEX_LOCK(rotars); for (i=0;ilen;i++){ rot = (struct rotar *)g_ptr_array_index(rotars, i); switch(i%4){ case 0: rot->color=makecol(200,0,0); rot->termcolor=COL_RED; break; case 1: rot->color=makecol(200,0,200); rot->termcolor=COL_MAGENTA; break; case 2: rot->color=makecol(0,200,0); rot->termcolor=COL_GREEN; break; case 3: rot->color=makecol(0,200,200); rot->termcolor=COL_CYAN; break; } } MUTEX_UNLOCK(rotars); return 0; } #endif int rot_seek(struct rotar *rot, int uhel){ char *c; struct sconn_job *job; if (!rot) return 0; switch (rot->type){ case ROT_REMOTE: c = g_strdup_printf("RS %s;%s;%d;%s\n", rot->netid, rot->rem_rotstr, uhel, ""); rel_write_all(c); g_free(c); break; #ifdef HAVE_HAMLIB case ROT_HAMLIB: rot->hl_azim = uhel; break; #endif default: job = g_new0(struct sconn_job, 1); job->cmd = SCONN_ROT_AZIM; job->sdev = rot->sdev; job->azim = uhel; sconn_job_add(rot->sdev->sconn, job); break; } return 0; } struct config_rotar *get_config_rotar_by_number(GPtrArray *crots, int nr){ struct config_rotar *crot; int i; for (i=0; icrotars->len; i++){ crot = (struct config_rotar *)g_ptr_array_index(crots, i); if (crot->nr==nr) return crot; } return NULL; } struct rotar *get_rotar(int nr){ struct rotar *rot; if (!rotars) return NULL; if (nr>=rotars->len) return NULL; MUTEX_LOCK(rotars); rot = (struct rotar*) g_ptr_array_index(rotars, nr); MUTEX_UNLOCK(rotars); return rot; } struct rotar *get_rotar_by_rotstr(char *rotstr){ int i; struct rotar *rot = NULL; if (!rotars) return NULL; MUTEX_LOCK(rotars); for (i=0;ilen;i++){ rot=(struct rotar *)g_ptr_array_index(rotars, i); if (rot->rotchar!=rotstr[0]) continue; break; } MUTEX_UNLOCK(rotars); return rot; } struct rotar *get_rotar_by_netid_rotstr(char *netid, char *rotstr){ int i; struct rotar *rot = NULL; if (!rotars) return NULL; MUTEX_LOCK(rotars); for (i=0;ilen;i++){ rot=(struct rotar *)g_ptr_array_index(rotars, i); //dbg(" rot->type=%d rotchar=%s netid=%s\n", rot->type, rot->rem_rotstr, rot->netid); if (rot->type != ROT_REMOTE) continue; if (strcmp(rot->netid, netid)!=0) continue; if (strcmp(rot->rem_rotstr, rotstr)!=0) continue; break; } MUTEX_UNLOCK(rotars); return rot; } void rotar_read_handler(char *line){ struct zstring *zs, *zs2; char *cmd, *rotstr, *c; struct rotar *rot; // dbg("rotar_read_handler('%s') gses=%p\n", line, gses); zs = zstrdup(line); ztokenize(zs, 1); rotstr = ztokenize(zs, 0); rot = get_rotar_by_rotstr(rotstr); if (!rot){ log_addf("Unknown rotar '%s'\n", rotstr); dbg("Unknown rotar '%s'\n", rotstr); goto x; } cmd = ztokenize(zs, 0); // dbg("rotar_read_handler rcvd: '%s' cmd='%s' rotstr='%s'\n", line, cmd, rotstr); if (strcmp(cmd, "!")==0){ /* error */ log_addf("Rotar error: %s", ztokenize(zs, 0)); } if (strcasecmp(cmd, "QTF")==0){ char *qtf = ztokenize(zs, 0); rot->qtf=atoi(qtf); zs2 = zconcatesc(net->myid, rotstr, qtf, "0", NULL); c = g_strconcat("RU ", zs2->str, "\n", NULL); rel_write_all(c); g_free(c); zfree(zs2); #ifdef HAVE_SDL //if (!gses->redraw_timer_id) // gses->redraw_timer_id = install_timer(DELAY_AFTER_UPDATE_ROTAR, timer_redraw, CBA0); if (gses && gses->ontop->type == SWT_MAP){ if (!gses->update_rotar_timer_id) gses->update_rotar_timer_id = install_timer(2*DELAY_AFTER_UPDATE_ROTAR, timer_update_rotar, CBA0); } #endif #ifdef HAVE_LIBFTDI hdkeyb_draw_rotar(hdkeyb, rot->rotchar - 'A'); #endif redraw_later(); goto x; } x:; zfree(zs); redraw_later(); } void timer_update_rotar(cba_t cba){ #ifdef HAVE_SDL if (gses && gses->ontop->type == SWT_MAP){ sw_map_update_rotar(gses->ontop); } gses->update_rotar_timer_id = 0; #endif } // called from sconn thread int rotar_main(struct sdev *sdev){ struct rotar *rot = (struct rotar *)sdev->arg; char s[256], data[256]; int len, ret, qtf; // static int xx = 0; struct timeval tv; int req; //dbg("rotar_main rot=%p\n", rot); if (!rot) return -1; usleep(10000); gettimeofday(&tv, NULL); req = tv.tv_usec / 250000; if (req == rot->last_req) return 0; rot->last_req = req; len=0; // dbg("\nsd_prot\n"); ret = sd_prot(rot->sdev->sconn, rot->sdev->saddr, 64, data, &len, rot->sdev->timeout_ms); //dbg("sd_prot ret=%d\n", ret); if (ret != 0) return ret; qtf = (unsigned char)data[0]+256*(unsigned char)data[1]; // qtf = (xx++ % 360);//FIXME trace(cfg->trace_sdev, "qtf=%d old=%d\n", qtf, rot->oldqtf); if (qtf == rot->oldqtf) return 0; rot->oldqtf = qtf; g_snprintf(s, sizeof(s), "%d", qtf); ret = zwrite(tpipe->threadpipe_write, zconcatesc("ROT", rot->rotstr, "QTF", s, NULL)); // dbg("zwrite ret=%d\n", ret); return 0; } void rotar_remote_update(char *c){ char *netid, *rotstr, *qtf, *elev; struct zstring *zs; struct rotar *rot; dbg("rotar_remote_update('%s')\n", c); zs = zstrdup(c); netid = ztokenize(zs, 1); if (!netid) goto x; rotstr = ztokenize(zs, 0); if (!rotstr) goto x; qtf = ztokenize(zs, 0); if (!qtf) goto x; elev = ztokenize(zs, 0); if (!elev) goto x; rot = get_rotar_by_netid_rotstr(netid, rotstr); dbg("rotar_remote_update id='%s' rotstr='%s' rot=%p\n", netid, rotstr, rot); if (!rot) goto x; rot->qtf = atoi(qtf); rot->elev = atoi(elev); redraw_later(); x:; zfree(zs); } /****************************** rotar dialog ***************************/ static char rotar_qtf_str[EQSO_LEN], rotar_elev_str[EQSO_LEN]; static char rotar_desc1[MAX_STR_LEN], rotar_desc2[MAX_STR_LEN]; void refresh_rotar(void *xxx){ if (strlen(rotar_qtf_str)>0){ rot_seek(rotar, atoi(rotar_qtf_str)); } /*dbg("refresh_rotar\n");*/ } char *rotar_msg[] = { CTEXT(T_AZIMUTH), CTEXT(T_ELEVATION), }; void rotar_fn(struct dialog_data *dlg) { struct terminal *term = dlg->win->term; int max = 0, min = 0; int w, rw; int y = -1; max_text_width(term, rotar_desc1, &max); min_text_width(term, rotar_desc1, &min); max_text_width(term, rotar_desc2, &max); min_text_width(term, rotar_desc2, &min); max_group_width(term, rotar_msg + 0, dlg->items + 0, 1, &max); min_group_width(term, rotar_msg + 0, dlg->items + 0, 1, &min); max_group_width(term, rotar_msg + 1, dlg->items + 1, 1, &max); min_group_width(term, rotar_msg + 1, dlg->items + 1, 1, &min); max_buttons_width(term, dlg->items + 2, 2, &max); min_buttons_width(term, dlg->items + 2, 2, &min); w = dlg->win->term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > dlg->win->term->x - 2 * DIALOG_LB - 8 ) w = dlg->win->term->x - 2 * DIALOG_LB - 8; if (w < 1) w = 1; rw = 0; y ++; dlg_format_text (NULL, term, rotar_desc1, dlg->x+6, &y, w, &rw, COLOR_DIALOG_TEXT, AL_LEFT); dlg_format_text (NULL, term, rotar_desc2, dlg->x+6, &y, w, &rw, COLOR_DIALOG_TEXT, AL_LEFT); dlg_format_group(NULL, term, rotar_msg + 0, dlg->items + 0, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, rotar_msg + 1, dlg->items + 1, 1, 0, &y, w, &rw); y++; dlg_format_buttons(NULL, term, dlg->items + 2, 2, 0, &y, w, &rw, AL_LEFT); w = rw; dlg->xw = w + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB; y++; dlg_format_text (term, term, rotar_desc1, dlg->x+6, &y, w, &rw, COLOR_DIALOG_TEXT, AL_LEFT); dlg_format_text (term, term, rotar_desc2, dlg->x+6, &y, w, &rw, COLOR_DIALOG_TEXT, AL_LEFT); dlg_format_group(term, term, rotar_msg + 0, dlg->items + 0, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, rotar_msg + 1, dlg->items + 1, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); y++; dlg_format_buttons(term, term, dlg->items + 2, 2, dlg->x + DIALOG_LB, &y, w, NULL, AL_LEFT); } void rotar_set_desc(void){ switch(rotar->type){ #ifdef HAVE_HAMLIB case ROT_HAMLIB: g_snprintf(rotar_desc1, MAX_STR_LEN, "Rotr %c (hamlib %u)", rotar->rotchar, rotar->hl_model); break; #endif case ROT_REMOTE: g_snprintf(rotar_desc1, MAX_STR_LEN, "Rotr %c (%s %s)", rotar->rotchar, rotar->netid, rotar->rem_rotstr); break; default: g_snprintf(rotar_desc1, MAX_STR_LEN, "Rotr %c (%u)", rotar->rotchar, (unsigned char)rotar->sdev->saddr); break; } g_snprintf(rotar_desc2, MAX_STR_LEN, "%s", rotar->desc); } int rotar_func(struct dialog_data *data, struct event *ev){ char rotchar; /* dbg("mouse ev=%d x=%d y=%d b=%d\n", ev->ev, ev->x, ev->y, ev->b); */ switch(ev->ev){ case EV_KBD: if (ev->y & KBD_ALT) break; if (ev->y & KBD_CTRL) break; rotchar=upcase(ev->x); if (rotchar<'A' || rotchar>'Z') { return -1; } if (rotchar<'A' || rotchar-'A'>=rotars->len) { return EVENT_PROCESSED; } /*dbg("rotar %c\n", rotchar);*/ rotar=get_rotar(rotchar-'A'); rotar_set_desc(); resize_terminal(CBA0); return EVENT_PROCESSED; } return -1; /* !EVENT_PROCESSED */ } void menu_rotar(cba_t cba){ struct dialog *d; int i; if (!rotar) rotar=get_rotar(0); if (!rotar) return; rotar_set_desc(); /*g_snprintf(rotar_qtf_str, EQSO_LEN, "%d", rotar->qtf); g_snprintf(rotar_elev_str, EQSO_LEN, "%d", rotar->elev);*/ strcpy(rotar_qtf_str, ""); strcpy(rotar_elev_str, ""); if (!(d = mem_alloc(sizeof(struct dialog) + 55 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 55 * sizeof(struct dialog_item)); d->title = "Rotator"; d->fn = rotar_fn; d->refresh = (void (*)(void *))refresh_rotar; d->refresh_data = (void *)rotar; d->handle_event = rotar_func; d->items[i=0].type = D_FIELD; /* 0 */ d->items[i].dlen = EQSO_LEN; d->items[i].data = rotar_qtf_str; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rotar_elev_str; d->items[++i].type = D_BUTTON; /* 2 */ d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } #ifdef HAVE_HAMLIB gpointer rot_hamlib_main(gpointer xxx){ int ret; struct rotar *rot = (struct rotar*)xxx; azimuth_t azimuth; elevation_t elevation; int qtf; char s[256]; dbg("rot_hl_main\n"); ret = rot_open(rot->rot); if (ret != RIG_OK){ return NULL; } while(!rot->hl_thread_break){ if (rot->hl_give_me_chance) { usleep(10000); continue; } if (rot->hl_azim >= 0){ azimuth_t az = rot->hl_azim; elevation_t el = 0; ret = rot_set_position(rot->rot, az, el); rot->hl_azim = -1; } if (rot_get_position(rot->rot, &azimuth, &elevation) == RIG_OK){ qtf = (int)azimuth; if (qtf != rot->oldqtf){ rot->oldqtf = qtf; g_snprintf(s, sizeof(s), "%d", qtf); ret = zwrite(tpipe->threadpipe_write, zconcatesc("ROT", rot->rotstr, "QTF", s, NULL)); // dbg("zwrite ret=%d\n", ret); } } usleep(10000); } dbg("rot_hl_main exiting\n"); rot_close(rot->rot); return NULL; } #endif tucnak2-2.48/src/fft.c0000644000175000017500000003504111567373656011477 00000000000000/* fft.c - fast fourier transform using libfftw3 Copyright (C) 2009 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" /* VE3NEA: Gain := (1 - Exp(-(0.2 * NewSpectrum[i]))); FilteredSpectrum[i] := FilteredSpectrum[i] * (1-Gain) + NewSpectrum[i] * Gain; */ struct fft *fft; #ifdef BLUEPAL int bluepal[3*256] = { 0,0,0, 23,23,65, 29,29,68, 36,36,71, 40,40,74, 43,43,77, 46,46,80, 50,50,82, 51,51,85, 55,55,87, 56,56,89, 59,59,92, 60,60,94, 63,63,96, 64,64,98, 65,65,99, 68,68,101, 69,69,103, 70,70,105, 72,72,106, 74,74,108, 74,74,110, 75,75,111, 78,78,113, 78,78,114, 79,79,116, 80,80,117, 82,82,118, 83,83,120, 84,84,121, 86,86,122, 87,87,124, 88,88,125, 88,88,126, 89,89,127, 91,91,128, 92,92,129, 92,92,131, 93,93,132, 94,94,133, 96,96,134, 97,97,135, 97,97,136, 97,97,137, 98,98,138, 100,100,139, 101,101,140, 102,102,141, 102,102,142, 103,103,142, 105,105,143, 105,105,144, 106,106,145, 106,106,146, 107,107,147, 109,109,147, 110,110,148, 110,110,149, 111,111,150, 111,111,150, 112,112,151, 114,114,152, 114,114,153, 115,115,153, 115,115,154, 116,116,155, 117,117,155, 117,117,156, 119,119,156, 120,120,157, 120,120,158, 120,120,158, 121,121,159, 123,123,159, 124,124,160, 124,124,160, 125,125,161, 125,125,161, 126,126,162, 128,128,162, 128,128,163, 129,129,163, 129,129,164, 129,129,164, 130,130,165, 131,131,165, 133,133,165, 133,133,166, 134,134,166, 134,134,167, 135,135,167, 135,135,167, 137,137,168, 138,138,168, 139,139,168, 139,139,169, 139,139,169, 140,140,169, 142,142,169, 142,142,170, 143,143,170, 143,143,170, 143,143,170, 144,144,171, 145,145,171, 147,147,171, 147,147,171, 148,148,171, 148,148,172, 148,148,172, 149,149,172, 151,151,172, 152,152,172, 152,152,172, 153,153,172, 153,153,172, 153,153,173, 154,154,173, 156,156,173, 157,157,173, 157,157,173, 157,157,173, 158,158,173, 158,158,173, 160,160,173, 161,161,173, 162,162,173, 162,162,173, 162,162,173, 163,163,173, 163,163,173, 165,165,173, 166,166,173, 166,166,173, 166,166,172, 167,167,172, 168,168,172, 168,168,172, 170,170,172, 171,171,172, 171,171,172, 171,171,172, 172,172,171, 174,174,171, 174,174,171, 175,175,171, 176,176,171, 176,176,170, 176,176,170, 177,177,170, 179,179,170, 179,179,169, 180,180,169, 180,180,169, 180,180,168, 181,181,168, 182,182,168, 184,184,168, 184,184,167, 185,185,167, 185,185,166, 185,185,166, 186,186,166, 188,188,165, 189,189,165, 189,189,164, 190,190,164, 190,190,164, 190,190,163, 191,191,163, 193,193,162, 194,194,162, 194,194,161, 194,194,161, 195,195,160, 195,195,160, 196,196,159, 198,198,159, 199,199,158, 199,199,157, 199,199,157, 200,200,156, 200,200,156, 202,202,155, 203,203,154, 204,204,154, 204,204,153, 204,204,152, 205,205,152, 205,205,151, 207,207,150, 208,208,149, 208,208,149, 208,208,148, 209,209,147, 211,211,146, 211,211,146, 212,212,145, 213,213,144, 213,213,143, 213,213,142, 214,214,141, 216,216,140, 216,216,139, 217,217,139, 217,217,138, 218,218,137, 218,218,136, 219,219,135, 221,221,134, 221,221,132, 222,222,131, 222,222,130, 223,223,129, 223,223,128, 225,225,127, 226,226,126, 226,226,125, 227,227,123, 227,227,122, 228,228,121, 228,228,119, 230,230,118, 231,231,117, 231,231,115, 231,231,114, 232,232,112, 233,233,111, 233,233,109, 235,235,108, 236,236,106, 236,236,104, 236,236,103, 237,237,101, 239,239,99, 239,239,97, 240,240,95, 241,241,93, 241,241,91, 241,241,89, 242,242,87, 244,244,84, 245,245,82, 245,245,79, 245,245,77, 246,246,74, 246,246,71, 247,247,67, 249,249,64, 250,250,60, 250,250,56, 250,250,51, 251,251,45, 255,0,0, 255,255,0, 0,255,0, }; #endif struct fft *init_fft(void){ struct fft *fft = NULL; int i,j; #ifdef USE_FFT if (!sdl) return NULL; fft = g_new0(struct fft, 1); fft->n = -1; fft->rin = NULL; j=0; #ifdef ZIAPAL int f, r; for (i = 128; i < 256; i++){ r = (i-128)*2; f = 255 - r; fft->pal[j++] = makecol(0, 0, r); } for (i = 256; i < 512; i++){ r = i - 256; f = 255 - r; fft->pal[j++] = makecol(0, r, 255); } for (i = 512; i < 768; i++){ r = i - 512; f = 255 - r; fft->pal[j++] = makecol(r, 255, f); } for (i = 768; i < 1024-32; i++){ r = i - 768; f = 255 - r; fft->pal[j++] = makecol(255, f, 0); } if (j != FFT_COLORS) { //dbg("j=%d\n", j); internal_("bad fft color number, please fix"); } #endif #ifdef BLUEPAL for (i = 0; i < 256; i++) fft->pal[i] = makecol(bluepal[i * 3], bluepal[i * 3 + 1], bluepal[i * 3 + 2]); #endif MUTEX_INIT(fft->screen); #endif return fft; } void free_fft(struct fft *fft){ if (!fft) return; #ifdef USE_FFT dbg("free_fft()\n"); fftw_destroy_plan(fft->plan); fftw_free(fft->rin); fftw_free(fft->cout); if (fft->screen) SDL_FreeSurface(fft->screen); MUTEX_FREE(fft->screen); g_free(fft); #endif } void fft_start(int n){ int i; dbg("fft_start(%d, %p)\n", n, fft); #ifdef USE_FFT if (!fft) return; //dbg("fft_start(%d) ch=%d\n", n, dsp->channels); if (n != fft->n){ // dbg(" realloc %d->%d\n", fft->n, n); fft->n = n; if (fft->rin){ fftw_destroy_plan(fft->plan); fftw_free(fft->rin); fftw_free(fft->cout); } fft->rin = (double *) fftw_malloc(sizeof(double) * fft->n + 256); // fftw_malloc seems not to add padding elements //fft->cout = (double *) fftw_malloc(sizeof(double) * fft->n + 256); fft->cout = (fftw_complex *) fftw_malloc(sizeof(fftw_complex) * fft->n + 256); fft->plan = fftw_plan_dft_r2c_1d(fft->n, fft->rin, fft->cout, FFTW_ESTIMATE); } fft->screeny = 0; //memset(fft->ma_amp, 0, sizeof(fft->ma_amp)); for (i=0; inea_amp[i] = 0.0; #endif } void fft_resize(struct fft *fft, struct subwin *sw){ //dbg("fft_resize\n"); #ifdef USE_FFT //fft->wf_x2 = 260; //fft->wf_x3 = 2*260; int minh = sw->h * FONT_H / 2; sw->fft_sp_h = 210; if (sw->fft_sp_h > minh) sw->fft_sp_h = minh; sw->fft_sp_y = sw->h * FONT_H - sw->fft_sp_h; sw->fft_wf_y = 0; sw->fft_wf_h = sw->fft_sp_y - FONT_H - 10; //sw->fft_sp_x2 = fft->wf_x2; //sw->fft_wf_x2 = fft->wf_x2; SDL_Surface *newscr; newscr = SDL_CreateRGBSurface(SDL_SWSURFACE, sw->w*FONT_W , sw->h*FONT_H, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Gmask, 0); MUTEX_LOCK(fft->screen); if (fft->screen){ //SDL_BlitSurface(fft->screen, NULL, newscr, NULL); SDL_FreeSurface(fft->screen); } fft->screen = newscr; fft->screeny = 0; MUTEX_UNLOCK(fft->screen); #endif } #define F2PX(hz) (((hz) * fft->n) / (cfg->ssbd_samplerate)) void sw_fft_redraw(struct subwin *sw, int flags){ //dbg("sw_fft_redraw\n"); #ifdef USE_FFT int i, x = 0, y, sp_y, amp, x2; SDL_Rect src, dst; char s[10]; MUTEX_LOCK(fft->screen); if (fft->screeny <= 0){ MUTEX_UNLOCK(fft->screen); return; } y = fft->screeny; fft->screeny = 0; MUTEX_LOCK(sw->screen); // move old screen src.x = 0; src.y = sw->fft_wf_y + y; src.w = sw->screen->w; src.h = sw->fft_wf_h - y; dst.x = 0; dst.y = sw->fft_wf_y; dst.w = sw->screen->w; dst.h = sw->fft_wf_h - y; SDL_BlitSurface(sw->screen, &src, sw->screen, &dst); // add new data src.x = 0; src.y = 0; src.w = fft->screen->w; src.h = y; dst.x = 0; dst.y = sw->fft_wf_y + sw->fft_wf_h - y; dst.w = sw->screen->w; dst.h = y; SDL_BlitSurface(fft->screen, &src, sw->screen, &dst); // clear background under spectral lines dst.x = 0; dst.w = sw->screen->w; dst.y = sw->fft_sp_y; dst.h = sw->fft_sp_h; SDL_FillRect(sw->screen, &dst, 0); // show SSB pass bandwidth (hack) dst.x = 260; dst.w = 48; dst.y = sw->fft_sp_y; dst.h = sw->fft_sp_h; SDL_FillRect(sw->screen, &dst, makecol(0, 60, 0)); // show CW pass bandwidth (hack) dst.x = 122; dst.w = 50; dst.y = sw->fft_sp_y; dst.h = sw->fft_sp_h; SDL_FillRect(sw->screen, &dst, makecol(70, 0, 0)); for (i = 100; i <= cfg->ssbd_samplerate / 2; i += 100){ x = F2PX(i); if (x > sw->w * FONT_W - 1) break; line(sw->screen, x, sw->fft_wf_h + 2, x, sw->fft_wf_h + 6, sdl->gr[10]); } x2 = x; for (i = 1000; i <= cfg->ssbd_samplerate / 2; i += 1000){ x = F2PX(i); if (x > sw->w * FONT_W - 1) break; line(sw->screen, x, sw->fft_wf_h + 1, x, sw->fft_sp_y - 1, sdl->gr[10]); sprintf(s, "%dk", i / 1000); fontout(sw->screen, x - (strlen(s) * FONT_W) / 2, sw->fft_sp_y - FONT_H, sdl->gr[10], 0, s); } line(sw->screen, (100 * fft->n) / cfg->ssbd_samplerate, sw->fft_wf_h + 1, x2, sw->fft_wf_h + 1, sdl->gr[10]); // draw spetral lines sp_y = sw->fft_sp_y + sw->fft_sp_h - 1; for (i=0; i<=FFT_AMPLEN; i++){ amp = fft->amp[i] * (sw->fft_sp_h - 3); /*line(sw->screen, i, sp_y, i, sp_y - amp, sdl->gr[12]); amp = fft->ma_sum[i] * (sw->fft_sp_h - 3); line(sw->screen, i+fft->wf_x2, sp_y, i+fft->wf_x2, sp_y - amp, sdl->gr[12]); */ //amp = fft->nea_amp[i] * (sw->fft_sp_h - 3); //line(sw->screen, i+fft->wf_x3, sp_y, i+fft->wf_x3, sp_y - amp, sdl->gr[12]); line(sw->screen, i, sp_y, i, sp_y - amp, sdl->gr[12]); } MUTEX_UNLOCK(sw->screen); MUTEX_UNLOCK(fft->screen); /* for (i=0; iscreen, i, 0, i, 10, fft->pal[i]); }*/ #endif } //int xxi=0x100; void fft_do(struct fft *fft){ #ifdef USE_FFT int i, col, mini, maxi; double d, e; // double mind, maxd, mine, maxe, minv, maxv; double gain; double min, max; //dbg("fft_do(n=%d)\n", fft->n); mini = 200000000; maxi = -200000000; /* mind = 1e30; maxd = -1e30; mine = 1e30; maxe = -1e30; minv = 1e30; maxv = -1e30; */ #if 0 for (i=0; in; i++){ fft->rin[i]=0.6 * cos((i* 1000.0 *2*MY_PI)/cfg->ssbd_samplerate) + 0.1 * cos((i* 2000.0 *2*MY_PI)/cfg->ssbd_samplerate) + 0.1 * cos((i* 3000.0 *2*MY_PI)/cfg->ssbd_samplerate) + //0.1 * cos((i* 4000.0 *2*MY_PI)/cfg->ssbd_samplerate) + 0; } #endif #if 0 for (i=0; in; i++){ fft->rin[i] *= 0.9; fft->rin[i] += 0.1 * cos((i* 1000.0 *2*MY_PI)/cfg->ssbd_samplerate); } #endif if (!fft->screen) return; fftw_execute(fft->plan); // dbg("%f\t%f\t%f\t%f\t%f\t%f\n", fft->cout[0], fft->cout[1], fft->cout[2], fft->cout[3], fft->cout[4], fft->cout[5]); /* for (i=0; i<6;i++){ dbg("fft->cout=%f+%fi\t", fft->cout[i][0], fft->cout[i][1]); } dbg("\n"); internal(""); */ /* for (i=0; in; i++){ fft->cout[i]=256; }*/ min = DBL_MAX; max = DBL_MIN; MUTEX_LOCK(fft->screen); for (i = 0; i <= fft->n / 2; i++){ if (i > fft->screen->w) break; d = fabs(sqrt(sqr(fft->cout[i][0])+sqr(fft->cout[i][1]))); d = d/(fft->n/2); // d is epsilon to 1.0 e = log10(d); // printf("%3d: %f\t%f\n", i, d, e); e -= log10(1.0/32768.0); // printf("e=%f %f\n", e, (log10(1.0)-log(1.0/32768.0))); e /= -log10(1.0/32768.0); if (e<0) e = 0; // slabsi signaly nez 1 bit //e /= -log10(1.0/32768.0); // col = (int)e * FFT_COLORS; /* if (dmaxd) maxd = d; if (dmaxe) maxe = e; */ /*if (col < 0) col = 0; if (col >= FFT_COLORS) col = FFT_COLORS - 1;*/ // col = xxi; fft->amp[i] = e; col = (int)(e * (FFT_COLORS - 1.0)); //col = i < FFT_COLORS?i:FFT_COLORS-1; // dbg("d=%11.9f e=%f\n", d, e); // dbg("col=%d\n"); if (colmaxi) maxi=col; fast_putpixel(fft->screen, i, fft->screeny, fft->pal[col]); //fft->ma_amp[fft->ma_i][i] = e; /*fft->ma_sum[i] = 0; for (j=0; jma_sum[i] += fft->ma_amp[j][i]; fft->ma_sum[i] /= FFT_MA; col = fft->ma_sum[i] * (FFT_COLORS - 1); fast_putpixel(fft->screen, i+fft->wf_x2, fft->screeny, fft->pal[col]); */ /* gain = fft->nea_amp[i]; gain *= (-log10(1.0/32738.0)); gain += log10(1.0/32768.0); gain *= log(10.0); gain = exp(gain); if (fft->nea_first) gain = 1; fft->nea_first = 0; */ gain = d; if (gain < 0.03) gain = 0.03; // dbg("gain=%f\n", gain); fft->nea_amp[i] = fft->nea_amp[i] * (1-gain) + e * gain; if (fft->nea_amp[i] > max) max = fft->nea_amp[i]; if (fft->nea_amp[i] < min) min = fft->nea_amp[i]; } for (i=0; i<=fft->n/2; i++){ if (i > fft->screen->w) break; // fast_putpixel(fft->screen, i, fft->screeny, fft_pal(fft->nea_amp[i], min, max)); } /* xxi++; xxi %= FFT_COLORS;*/ fft->screeny++; //fft->ma_i++; //fft->ma_i %= FFT_MA; if (fft->screeny == fft->screen->h) fft->screeny = 0; MUTEX_UNLOCK(fft->screen); // dbg("v=%f .. %f \td=%f .. %f \te=%f .. %f \tcol=%d .. %d\n", minv, maxv, mind, maxd, mine, maxe, mini, maxi); // internal(""); //dbg("col=%d..%d\n", mini, maxi); #endif } #ifdef USE_FFT int fft_pal(double amp, double min, double max){ //dbg("min=%f max=%f\n", min, max); if (min == max) return fft->pal[0]; double norm = (amp - min) / (max - min); // 5 - 4 / 7 - 4 if (norm < 0) norm = 0; if (norm > 1) norm = 1; return fft->pal[(int)(norm*(FFT_COLORS-3))]; } #endif tucnak2-2.48/src/menu3.c0000644000175000017500000007557611703314115011741 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" /*********************** DUPLICATE CALLSIGN *********************************/ void duplicate_callsign_fn(struct dialog_data *dlg) { struct terminal *term = dlg->win->term; int max = 0, min = 0; int w, rw; int y = -1; max_buttons_width(term, dlg->items +0, 1, &max); min_buttons_width(term, dlg->items +0, 1, &min); max_buttons_width(term, dlg->items +1, 1, &max); min_buttons_width(term, dlg->items +1, 1, &min); max_buttons_width(term, dlg->items +2, 1, &max); min_buttons_width(term, dlg->items +2, 1, &min); max_buttons_width(term, dlg->items +3, 1, &max); min_buttons_width(term, dlg->items +3, 1, &min); w = dlg->win->term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > dlg->win->term->x - 2 * DIALOG_LB) w = dlg->win->term->x - 2 * DIALOG_LB; if (w < 1) w = 1; rw = 0; y++; dlg_format_buttons(NULL, term, dlg->items +0, 1, 0, &y, w, &rw, AL_CENTER); dlg_format_buttons(NULL, term, dlg->items +1, 1, 0, &y, w, &rw, AL_CENTER); dlg_format_buttons(NULL, term, dlg->items +2, 1, 0, &y, w, &rw, AL_CENTER); dlg_format_buttons(NULL, term, dlg->items +3, 1, 0, &y, w, &rw, AL_CENTER); y++; w = rw; dlg->xw = w + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB; y++; dlg_format_buttons(term, term, dlg->items +0, 1, dlg->x + DIALOG_LB, &y, w, NULL, AL_CENTER); dlg_format_buttons(term, term, dlg->items +1, 1, dlg->x + DIALOG_LB, &y, w, NULL, AL_CENTER); dlg_format_buttons(term, term, dlg->items +2, 1, dlg->x + DIALOG_LB, &y, w, NULL, AL_CENTER); dlg_format_buttons(term, term, dlg->items +3, 1, dlg->x + DIALOG_LB, &y, w, NULL, AL_CENTER); y++; /* dlg_format_text(term, term, contest_options1_msg[3], dlg->x + DIALOG_LB, &y, w, NULL, COLOR_DIALOG_TEXT, AL_LEFT);*/ /* dlg_format_field(term, term, &dlg->items[3], dlg->x + DIALOG_LB, &y, w, NULL, AL_LEFT);*/ /* y++;*/ /* dlg_format_text(term, term, contest_options1_msg[4], dlg->x + DIALOG_LB, &y, w, NULL, COLOR_DIALOG_TEXT, AL_LEFT); dlg_format_field(term, term, &dlg->items[4], dlg->x + DIALOG_LB, &y, w, NULL, AL_LEFT); dlg_format_text(term, term, contest_options1_msg[4], dlg->x + DIALOG_LB, &y, w, NULL, COLOR_DIALOG_TEXT, AL_LEFT); dlg_format_field(term, term, &dlg->items[4], dlg->x + DIALOG_LB, &y, w, NULL, AL_LEFT); y++;*/ } int dlg_clear_tmpqsos(struct dialog_data *dlg, struct dialog_item_data *di){ clear_tmpqsos(aband,1); return cancel_dialog(dlg,di); } /* todo prototyp */ int dlg_edit_qso(struct dialog_data *dlg, struct dialog_item_data *di){ edit_qso((struct qso *)dlg->dlg->refresh_data); clear_tmpqsos(aband, 1); return cancel_dialog(dlg,di); } int dlg_mark_as_error(struct dialog_data *dlg, struct dialog_item_data *di){ struct qso *qso; qso = (struct qso*) dlg->dlg->refresh_data; qso_mark_as_error(aband, atoi(qso->qsonrs)-1); recalc_stats(aband); aband->dupe_in_tmpqso_index = -1; ADD_TMPQSO_STRING(aband, callsign, qso->callsign, 1, ucallsign); wkd_tmpqso(aband, WT_CALLSIGN, qso->callsign); return cancel_dialog(dlg,di); } int dlg_store_as_dupe(struct dialog_data *dlg, struct dialog_item_data *di){ struct qso *qso; aband->dupe_in_tmpqso_index = -1; qso = (struct qso*) dlg->dlg->refresh_data; aband->tmpqsos[0].dupe = 1; ADD_TMPQSO_STRING(aband, callsign, qso->callsign, 1, ucallsign); TMPQ.ucallsign=1; if (!TMPQ.ulocator) add_tmpqso_locator(aband, qso->locator, 0, 0); wkd_tmpqso(aband, WT_CALLSIGN, qso->callsign); wkd_tmpqso(aband, WT_LOCATOR, qso->locator); return cancel_dialog(dlg,di); } void duplicate_callsign(struct qso *qso) { struct dialog *d; int i; if (!(d = mem_alloc(sizeof(struct dialog) + 55 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 55 * sizeof(struct dialog_item)); d->title = VTEXT(T_DUPE_QSO); d->fn = duplicate_callsign_fn; d->refresh = (void (*)(void *))dlg_clear_tmpqsos; d->refresh_data = (void *)qso; d->items[i=0].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = dlg_clear_tmpqsos; d->items[i].text = VTEXT(T_CLEAR_THIS_QSO); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = dlg_edit_qso; d->items[i].text = VTEXT(T_EDIT_OLD_QSO); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = dlg_mark_as_error; d->items[i].text = VTEXT(T_MARK_OLD_QSO); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = dlg_store_as_dupe; d->items[i].text = VTEXT(T_STORE_AS_DUPE); d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } /**************************** EDIT ***********************************/ void menu_add_error(cba_t cba){ add_error(aband, ""); } /*********************** CHOP - Change operator *************************/ static char op[EQSO_LEN]; static int global_operator; char *chop_msg[] = { CTEXT(T_CALLSIGN), /* 0 */ CTEXT(T_GLOBAL_OPERATOR), "", /* OK */ /* 9 */ "", /* Cancel */ }; void chop(struct band *band, char *op){ gchar *c; g_free(band->operator_); band->operator_ = fixsemi(g_strdup(op)); c = g_strconcat("O ", op, NULL); add_swap(band, c); g_free(c); wkd_tmpqso(band, WT_OPERATOR, op); } void refresh_chop(void *xxx){ int i; uc(op); if (!regcmp(op,"^([0-9][A-Z]|[A-Z]{1,2}[0-9]?)[0-9]{1,4}[A-Z]{1,4}$")==0){ errbox(VTEXT(T_BAD_CALL), 0); return; } cfg->global_operator = global_operator; if (global_operator){ for (i=0; ibands->len; i++){ struct band *b; b=(struct band *)g_ptr_array_index(ctest->bands, i); chop(b, op); } }else{ chop(aband, op); } redraw_later(); } void chop_fn(struct dialog_data *dlg) { struct terminal *term = dlg->win->term; int max = 0, min = 0; int w, rw; int y = -1; max_group_width(term, chop_msg + 0, dlg->items + 0, 1, &max); min_group_width(term, chop_msg + 0, dlg->items + 0, 1, &min); max_group_width(term, chop_msg + 1, dlg->items + 1, 1, &max); min_group_width(term, chop_msg + 1, dlg->items + 1, 1, &min); max_buttons_width(term, dlg->items + 2, 2, &max); min_buttons_width(term, dlg->items + 2, 2, &min); w = dlg->win->term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > dlg->win->term->x - 2 * DIALOG_LB - 8 ) w = dlg->win->term->x - 2 * DIALOG_LB - 8; if (w < 1) w = 1; rw = 0; y ++; dlg_format_group(NULL, term, chop_msg + 0, dlg->items + 0, 1, 0, &y, w, &rw); y++; dlg_format_group(NULL, term, chop_msg + 1, dlg->items + 1, 1, 0, &y, w, &rw); y++; dlg_format_buttons(NULL, term, dlg->items + 2, 2, 0, &y, w, &rw, AL_LEFT); w = rw; dlg->xw = w + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB; y++; dlg_format_group(term, term, chop_msg + 0, dlg->items + 0, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); y++; dlg_format_group(term, term, chop_msg + 1, dlg->items + 1, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); y++; dlg_format_buttons(term, term, dlg->items + 2, 2, dlg->x + DIALOG_LB, &y, w, NULL, AL_LEFT); } void menu_chop(cba_t cba){ struct dialog *d; int i; if (!ctest || !aband) return; fixsemi(aband->operator_); safe_strncpy0(op, aband->operator_, EQSO_LEN); global_operator=cfg->global_operator; /* input_field(NULL, VTEXT(T_CHOP), VTEXT(T_N_CALLSIGN), VTEXT(T_OK), VTEXT(T_CANCEL), NULL, NULL, 20, op, 0, 0, NULL, (void (*)(void *, char *)) chop, NULL);*/ if (!(d = mem_alloc(sizeof(struct dialog) + 10 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 10 * sizeof(struct dialog_item)); d->title = VTEXT(T_CHOP); d->fn = chop_fn; d->refresh = (void (*)(void *))refresh_chop; d->items[i=0].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = op; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&global_operator; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } /*********************** SKEDQRG - Change QRG for sked *************************/ void do_skedqrg(struct session *ses, char *qrg){ gchar *c; if (!qrg) return; g_free(aband->skedqrg); aband->skedqrg = fixsemi(g_strdup(qrg)); c = g_strconcat("G ", qrg, NULL); add_swap(aband, c); g_free(c); c = g_strdup_printf("RG %s;%s\n",aband->pband,qrg); rel_write_all(c); g_free(c); redraw_later(); } void menu_skedqrg(cba_t cba){ static char qrg[20]; if (!ctest || !aband) return; fixsemi(aband->skedqrg); safe_strncpy0(qrg, aband->skedqrg, 20); input_field(NULL, VTEXT(T_SKED_QRG), VTEXT(T_N_SKED_QRG), VTEXT(T_OK), VTEXT(T_CANCEL), NULL, NULL, 20, qrg, 0, 0, NULL, (void (*)(void *, char *)) do_skedqrg, NULL, 0); } /******************** FILL OPERATORS **************************/ void menu_fillop(cba_t cba){ struct band *b; struct qso *q; int i,j,k; gchar *c; GString *gs,*gs1,*gs2; GPtrArray *calls; if (!ctest) return; for (i=0; ibands->len; i++){ b = (struct band *)g_ptr_array_index(ctest->bands,i); calls=g_ptr_array_new(); for (j=0;jqsos->len;j++){ q=(struct qso *)g_ptr_array_index(b->qsos,j); for (k=0;klen;k++){ if (strcmp(q->operator_,g_ptr_array_index(calls,k))==0) break; } if (k==calls->len) g_ptr_array_add(calls, q->operator_); } g_ptr_array_qsort(calls, compare_gstring); gs1=g_string_sized_new(100); gs2=g_string_sized_new(100); gs=gs1; for (k=0; klen;k++){ c=g_ptr_array_index(calls, k); if (gs->len+2+strlen(c) >= 50) gs=gs2; g_string_append(gs, ";"); g_string_append(gs, c); } g_ptr_array_free(calls,TRUE); /* don't free items! */ if (gs1->len) g_string_erase(gs1,0,1); if (gs2->len) g_string_erase(gs2,0,1); g_free(b->mope1); b->mope1=g_strdup(gs1->str); g_string_free(gs1,TRUE); g_free(b->mope2); b->mope2=g_strdup(gs2->str); g_string_free(gs2,TRUE); } save_all_bands_txt(0); } /******************** RECALC ALL QRB and QTF **************************/ void menu_recalc_qrb(cba_t cba){ if (ctest) recalc_all_qrbqtf(ctest); qrv_recalc_wkd(qrvdb); qrv_recalc_qrbqtf(qrvdb); qrv_recalc_gst(qrvdb); } /******************** UPDATE C_W ******************************/ void menu_cw_update_contest(cba_t cba){ gchar *s; int ret; update_cw_from_ctest(cw, ctest); s = g_strconcat(getenv("HOME"), "/tucnak/tucnakcw", NULL); ret=save_cw_into_file(cw, s); if (ret){ errbox(VTEXT(T_CANT_WRITE), ret); }else{ log_addf(VTEXT(T_SAVED_S), s); } g_free(s); } void menu_cw_update_band(cba_t cba){ gchar *s; int ret; update_cw_from_band(cw, aband); s = g_strconcat(getenv("HOME"), "/tucnak/tucnakcw", NULL); ret=save_cw_into_file(cw, s); if (ret){ errbox(VTEXT(T_CANT_WRITE), ret); }else{ log_addf(VTEXT(T_SAVED_S), s); } g_free(s); } /******************** UPDATE EXC ******************************/ void menu_exc_update_contest(cba_t cba){ gchar *s, *ename; int ret; if (!ctest) return; dbg("menu_exc_update_contest(%s)\n", ctest->excname); if (!ctest->excname || !*ctest->excname) return; ename = g_strdup(ctest->excname); lc(ename); update_exc_from_ctest(excdb, ctest); s = g_strconcat(getenv("HOME"), "/tucnak/tucnakexc", ename, NULL); ret=save_exc_into_file(excdb, s); if (ret){ errbox(VTEXT(T_CANT_WRITE), ret); }else{ log_addf(VTEXT(T_SAVED_S), s); } g_free(s); } void menu_exc_update_band(cba_t cba){ gchar *s, *ename; int ret; if (!ctest) return; dbg("menu_exc_update_band(%s)\n", ctest->excname); if (!ctest->excname || !*ctest->excname) return; ename = g_strdup(ctest->excname); lc(ename); update_exc_from_band(excdb, aband); s = g_strconcat(getenv("HOME"), "/tucnak/tucnakexc", ename, NULL); ret=save_exc_into_file(excdb, s); if (ret){ errbox(VTEXT(T_CANT_WRITE), ret); }else{ log_addf(VTEXT(T_SAVED_S), s); } g_free(s); } void menu_import_ebw(cba_t cba){ gchar *s; int ret; ret=read_ebw_files(cw, namedb); if (ret!=0) return; s = g_strconcat(getenv("HOME"), "/tucnak/tucnakcw", NULL); ret=save_cw_into_file(cw, s); if (ret){ errbox(VTEXT(T_CANT_WRITE), ret); }else{ log_addf(VTEXT(T_SAVED_S), s); } g_free(s); s = g_strconcat(getenv("HOME"), "/tucnak/tucnaknames", NULL); ret=save_namedb_into_file(namedb, s); if (ret){ errbox(VTEXT(T_CANT_WRITE), ret); }else{ log_addf(VTEXT(T_SAVED_S), s); } g_free(s); } /******************** AUTOSAVE *******************************/ #define AS_LEN 5 /*char as_disk_aq_str[AS_LEN], as_disk_am_str[AS_LEN]; gint as_disk_fsync;*/ char as_floppy_aq_str[AS_LEN], as_floppy_am_str[AS_LEN]; gint as_floppy_fsync; gint as_mount; char as_floppy_path[MAX_STR_LEN]; char as_mount_cmd[MAX_STR_LEN]; void refresh_autosave(void *xxx) { /* STORE_SINT(cfg,as_disk_aq); STORE_SINT(cfg,as_disk_am); STORE_INT (cfg,as_disk_fsync); */ STORE_SINT(cfg,as_floppy_aq); STORE_SINT(cfg,as_floppy_am); STORE_INT (cfg,as_floppy_fsync); STORE_INT (cfg,as_mount); STORE_STR(cfg,as_floppy_path); STORE_STR(cfg,as_mount_cmd); dbg("refresh_autosave\n"); } char *autosave_msg[] = { #if 0 CTEXT(T_SAVE_AQ), /* 0 */ CTEXT(T_SAVE_AM), CTEXT(T_FSYNC), #endif CTEXT(T_SAVE_AQF), /* 0 */ CTEXT(T_SAVE_AMF), CTEXT(T_FSYNC), CTEXT(T_DO_MOUNT), CTEXT(T_FLOPPY_PATH), /* 5 */ CTEXT(T_MOUNT_CMD), "", /* OK */ /* 9 */ "", /* Cancel */ }; void autosave_fn(struct dialog_data *dlg) { struct terminal *term = dlg->win->term; int max = 0, min = 0; int w, rw; int y = -1; max_group_width(term, autosave_msg + 0, dlg->items + 0, 1, &max); min_group_width(term, autosave_msg + 0, dlg->items + 0, 1, &min); max_group_width(term, autosave_msg + 1, dlg->items + 1, 1, &max); min_group_width(term, autosave_msg + 1, dlg->items + 1, 1, &min); max_group_width(term, autosave_msg + 2, dlg->items + 2, 1, &max); min_group_width(term, autosave_msg + 2, dlg->items + 2, 1, &min); max_group_width(term, autosave_msg + 3, dlg->items + 3, 1, &max); min_group_width(term, autosave_msg + 3, dlg->items + 3, 1, &min); max_group_width(term, autosave_msg + 4, dlg->items + 4, 1, &max); min_group_width(term, autosave_msg + 4, dlg->items + 4, 1, &min); max_group_width(term, autosave_msg + 5, dlg->items + 5, 1, &max); min_group_width(term, autosave_msg + 5, dlg->items + 5, 1, &min); /* max_group_width(term, autosave_msg + 6, dlg->items + 6, 1, &max); min_group_width(term, autosave_msg + 6, dlg->items + 6, 1, &min); max_group_width(term, autosave_msg + 7, dlg->items + 7, 1, &max); min_group_width(term, autosave_msg + 7, dlg->items + 7, 1, &min); max_group_width(term, autosave_msg + 8, dlg->items + 8, 1, &max); min_group_width(term, autosave_msg + 8, dlg->items + 8, 1, &min); */ max_buttons_width(term, dlg->items + 6, 2, &max); min_buttons_width(term, dlg->items + 6, 2, &min); w = dlg->win->term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > dlg->win->term->x - 2 * DIALOG_LB - 8 ) w = dlg->win->term->x - 2 * DIALOG_LB - 8; if (w < 1) w = 1; rw = 0; y ++; dlg_format_group(NULL, term, autosave_msg + 0, dlg->items + 0, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, autosave_msg + 1, dlg->items + 1, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, autosave_msg + 2, dlg->items + 2, 1, 0, &y, w, &rw); y++; dlg_format_group(NULL, term, autosave_msg + 3, dlg->items + 3, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, autosave_msg + 4, dlg->items + 4, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, autosave_msg + 5, dlg->items + 5, 1, 0, &y, w, &rw); /* y++; dlg_format_group(NULL, term, autosave_msg + 6, dlg->items + 6, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, autosave_msg + 7, dlg->items + 7, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, autosave_msg + 8, dlg->items + 8, 1, 0, &y, w, &rw); */ y++; dlg_format_buttons(NULL, term, dlg->items + 6, 2, 0, &y, w, &rw, AL_LEFT); w = rw; dlg->xw = w + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB; y++; dlg_format_group(term, term, autosave_msg + 0, dlg->items + 0, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, autosave_msg + 1, dlg->items + 1, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, autosave_msg + 2, dlg->items + 2, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); y++; dlg_format_group(term, term, autosave_msg + 3, dlg->items + 3, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, autosave_msg + 4, dlg->items + 4, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, autosave_msg + 5, dlg->items + 5, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); /* y++; dlg_format_group(term, term, autosave_msg + 6, dlg->items + 6, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, autosave_msg + 7, dlg->items + 7, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, autosave_msg + 8, dlg->items + 8, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); */ y++; dlg_format_buttons(term, term, dlg->items + 6, 2, dlg->x + DIALOG_LB, &y, w, NULL, AL_LEFT); } void menu_autosave(cba_t cba) { struct dialog *d; int i; dbg("menu_autosave\n"); /* snprint(as_disk_aq_str,AS_LEN, cfg->as_disk_aq); snprint(as_disk_am_str, AS_LEN, cfg->as_disk_am); as_disk_fsync = cfg->as_disk_fsync;*/ snprint(as_floppy_aq_str, AS_LEN, cfg->as_floppy_aq); snprint(as_floppy_am_str, AS_LEN, cfg->as_floppy_am); as_floppy_fsync = cfg->as_floppy_fsync; as_mount = cfg->as_mount; safe_strncpy0(as_floppy_path, cfg->as_floppy_path, MAX_STR_LEN); safe_strncpy0(as_mount_cmd, cfg->as_mount_cmd, MAX_STR_LEN); if (!(d = mem_alloc(sizeof(struct dialog) + 55 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 55 * sizeof(struct dialog_item)); d->title = VTEXT(T_AUTOSAVE_OPTS); d->fn = autosave_fn; d->refresh = (void (*)(void *))refresh_autosave; /* d->items[i=0].type = D_FIELD; d->items[i].dlen = AS_LEN; d->items[i].data = as_disk_aq_str; d->items[++i].type = D_FIELD; d->items[i].dlen = AS_LEN; d->items[i].data = as_disk_am_str; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&as_disk_fsync; */ d->items[i=0].type = D_FIELD; d->items[i].dlen = AS_LEN; d->items[i].data = as_floppy_aq_str; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 10000; d->items[++i].type = D_FIELD; d->items[i].dlen = AS_LEN; d->items[i].data = as_floppy_am_str; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 10000; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&as_floppy_fsync; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&as_mount; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = as_floppy_path; d->items[i].maxl = 20; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = as_mount_cmd; d->items[i].maxl = 20; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } /******************** ADD SUBWIN *******************************/ int asw_type; char asw_cmd[MAX_STR_LEN]; char asw_respawn_str[MAX_STR_LEN]; void refresh_add_sw(struct session *ses){ struct subwin *sw; dbg("refresh_add_sw\n"); switch(asw_type){ case SWT_PIPE:/* shell */ sw = new_subwin(SWT_PIPE, VTEXT(T_SW_SHELL), sw_pipe_enter); break; case SWT_KST3:/* KST in tucnak3, Shell in tucnak2 */ sw = new_subwin(SWT_KST3, VTEXT(T_SW_SHELL), sw_pipe_enter); break; case SWT_QSOS: sw = new_subwin(SWT_QSOS, VTEXT(T_SW_QSOS), NULL); break; case SWT_LOG: sw = new_subwin(SWT_LOG, VTEXT(T_SW_LOG), NULL); break; case SWT_TALK: sw = new_subwin(SWT_TALK, VTEXT(T_SW_TALK), NULL); break; case SWT_SKED: sw = new_subwin(SWT_SKED, VTEXT(T_SW_SKED), NULL); break; case SWT_UNFI: sw = new_subwin(SWT_UNFI, VTEXT(T_SW_UNFI), NULL); break; case SWT_DXC: sw = new_subwin(SWT_DXC, VTEXT(T_SW_DXC), NULL); break; case SWT_STAT: sw = new_subwin(SWT_STAT, VTEXT(T_SW_STAT), NULL); break; case SWT_SWAP: /* sw = new_subwin(SWT_SWAP, VTEXT(T_SW_STAT), NULL);*/ break; case SWT_MAP: sw = new_subwin(SWT_MAP, VTEXT(T_SW_MAP), NULL); break; case SWT_SCOPE: sw = new_subwin(SWT_SCOPE, VTEXT(T_SW_SCOPE), NULL); break; case SWT_QRV: sw = new_subwin(SWT_QRV, VTEXT(T_SW_QRV), NULL); break; case SWT_HF: sw = new_subwin(SWT_HF, VTEXT(T_SW_HF), NULL); break; case SWT_PLAYER: sw = new_subwin(SWT_PLAYER, VTEXT(T_SW_PLAYER), NULL); break; case SWT_CHART: sw = new_subwin(SWT_CHART, VTEXT(T_SW_CHART), NULL); break; } } void menu_add_subwin(cba_t cba){ struct dialog *d; int i; dbg("menu_add_sw\n"); asw_type=SWT_PIPE; safe_strncpy0(asw_cmd, "/bin/sh", MAX_STR_LEN); snprint(asw_respawn_str, MAX_STR_LEN, 10); if (!(d = mem_alloc(sizeof(struct dialog) + 20 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 20 * sizeof(struct dialog_item)); d->title = VTEXT(T_ADD_SUBWIN); d->fn = dlg_pf_fn; d->refresh = (void (*)(void *))refresh_add_sw; d->refresh_data = (void *)gses; /*todo */ d->items[i=0].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_QSOS; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&asw_type; d->items[i].msg = CTEXT(T_QSOS); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_SKED; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&asw_type; d->items[i].msg = CTEXT(T_SKEDS); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_TALK; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&asw_type; d->items[i].msg = CTEXT(T_TALK); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_DXC; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&asw_type; d->items[i].msg = CTEXT(T_DXC); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; /* 5 */ d->items[i].gid = 1; d->items[i].gnum = SWT_UNFI; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&asw_type; d->items[i].msg = CTEXT(T_UNFI); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_STAT; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&asw_type; d->items[i].msg = CTEXT(T_STAT); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; /* 0 */ d->items[i].gid = 1; d->items[i].gnum = SWT_PIPE; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&asw_type; d->items[i].msg = CTEXT(T_SHELL); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_MAP; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&asw_type; d->items[i].msg = CTEXT(T_MAP); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_SCOPE; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&asw_type; d->items[i].msg = CTEXT(T_SCOPE); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_QRV; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&asw_type; d->items[i].msg = CTEXT(T_QRV); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_HF; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&asw_type; d->items[i].msg = CTEXT(T_HF); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_LOG; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&asw_type; d->items[i].msg = CTEXT(T_LOG); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_PLAYER; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&asw_type; d->items[i].msg = CTEXT(T_SW_PLAYER); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_CHART; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&asw_type; d->items[i].msg = CTEXT(T_SW_CHART); d->items[i].wrap = 1; /*d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_SWAP; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&asw_type; d->items[i].msg = CTEXT(T_SWAP); d->items[i].wrap = 1; */ d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = asw_cmd; d->items[i].msg = CTEXT(T_CMD); d->items[i].wrap = 2; /*d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = asw_respawn_str; d->items[i].msg = CTEXT(T_RESPAWN); d->items[i].wrap = 1; */ d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } /********************* CLOSE SUBWIN ***********************/ void menu_close_subwin(cba_t cba){ struct subwin *sw; sw = find_sw_ontop(); if (!sw) return; free_subwin(sw); if (sw == gses->ontop2) sw_totop_next(0, 1); sw_totop_next(0, 0); redraw_later(); } /********************* SPLIT SUBWIN ***********************/ void menu_split_subwin(cba_t cba){ cfg->splitheight = 10; resize_terminal(CBA0); } void menu_remove_split(cba_t cba){ cfg->splitheight = 0; resize_terminal(CBA0); } /******************* UNFINISHED REMARK *************/ void do_unfinished(struct session *ses, char *remark){ GString *gs; if (!ctest || !aband) return; gs = g_string_sized_new(80); if (TMPQ.callsign && TMPQ.ucallsign){ if (strlen(remark)>10){ gchar *c; remark[17]='\0'; c = g_strdup_printf("%s %s", remark, TMPQ.callsign); g_string_sprintfa(gs, "%-24s", c); g_free(c); }else{ g_string_sprintfa(gs, "%-10s %-13s", remark, TMPQ.callsign); } }else{ remark[24]='\0'; g_string_sprintfa(gs, "%-24s",remark); } g_string_sprintfa(gs, "%5s%4s %5s%4s", TMPQ.rsts?TMPQ.rsts:"---", TMPQ.qsonrs, TMPQ.rstr?TMPQ.rstr:"---", TMPQ.qsonrr?TMPQ.qsonrr:"---"); if (TMPQ.locator && TMPQ.ulocator){ g_string_sprintfa(gs, " %-8s %7d %3d", TMPQ.locator, (int)TMPQ.qrb, TMPQ.qtf); } #ifdef HAVE_HAMLIB if (trig){ g_string_sprintfa(gs, " %1.1f", trig->qrg/1000.0); } #endif fifo_addf(aband->unfi, gs->str); g_string_free(gs, 1); add_error(aband, remark);/* before clear_tmpqsos! */ clear_tmpqsos(aband, 1); clear_inputline(aband->il); get_cw_qs(aband->il->cdata); /* clears */ get_band_qs(aband, aband->il->cdata); get_hf_dxc(aband->il->cdata); redraw_later(); } void menu_unfinished(cba_t cba){ static char remark[40]; int max; if (TMPQ.callsign && TMPQ.ucallsign) max=1+17; else max=1+24; if (!ctest || !aband) return; strcpy(remark, ""); input_field(NULL, VTEXT(T_UNFI_QSO), VTEXT(T_N_REMARK), VTEXT(T_OK), VTEXT(T_CANCEL), NULL, NULL, max, remark, 0, 0, NULL, (void (*)(void *, char *)) do_unfinished, NULL, 0); } tucnak2-2.48/src/bfu.c0000644000175000017500000020423311567373656011475 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" struct memory_list *getml(void *p, ...) { struct memory_list *ml; va_list ap; int n = 0; void *q = p; va_start(ap, p); while (q) n++, q = va_arg(ap, void *); if (!(ml = mem_alloc(sizeof(struct memory_list) + n * sizeof(void *)))) return NULL; ml->n = n; n = 0; q = p; va_start(ap, p); while (q) ml->p[n++] = q, q = va_arg(ap, void *); return ml; } void add_to_ml(struct memory_list **ml, ...) { struct memory_list *nml; va_list ap; int n = 0; void *q; if (!*ml) { if (!(*ml = mem_alloc(sizeof(struct memory_list)))) return; (*ml)->n = 0; } va_start(ap, ml); while ((q = va_arg(ap, void *))) n++; if (!(nml = mem_realloc(*ml, sizeof(struct memory_list) + (n + (*ml)->n) * sizeof(void *)))) return; va_start(ap, ml); while ((q = va_arg(ap, void *))) nml->p[nml->n++] = q; *ml = nml; } void freeml(struct memory_list *ml) { int i; if (!ml) return; for (i = 0; i < ml->n; i++) mem_free(ml->p[i]); mem_free(ml); } char m_bar = 0; void do_menu_selected(struct menu_item *items, cba_t data, int selected) { struct menu *menu; if ((menu = mem_alloc(sizeof(struct menu)))) { menu->selected = selected; menu->view = 0; menu->items = items; menu->data = data; add_window(menu_func, menu); } else if (items->free_i) { int i; for (i = 0; items[i].text; i++) { if (items[i].free_i & 2) mem_free(items[i].text); if (items[i].free_i & 4) mem_free(items[i].rtext); } mem_free(items); } } void do_menu(struct menu_item *items, cba_t data) { do_menu_selected(items, data, 0); } static void select_menu(struct menu *menu) { /*int x = menu->x + 4; int y = menu->y + menu->selected - menu->view + 2;*/ struct menu_item *it = &menu->items[menu->selected]; void (*func)(cba_t, cba_t) = it->func; cba_t data1 = it->data; cba_t data2 = menu->data; if (menu->selected < 0 || menu->selected >= menu->ni || it->hotkey == M_BAR) return; if (!it->in_m) { struct window *win, *win1; for (win = term->windows.next; (void *)win != &term->windows && (win->handler == menu_func || win->handler == mainmenu_func); win1 = win->next, delete_window(win), win = win1) ; } /*dbg("select_menu: %p(%p,%p,%p)\n",term, data1, data2);*/ func(data1, data2); } static void count_menu_size(struct terminal *term, struct menu *menu) { int sx = term->x; int sy = term->y; int mx = 4; int my; for (my = 0; menu->items[my].text; my++) { int s = strlen(_(menu->items[my].text)) + strlen(_(menu->items[my].rtext)) + MENU_HOTKEY_SPACE * (_(menu->items[my].rtext)[0] != 0) + 4; if (s > mx) mx = s; } menu->ni = my; my += 2; if (mx > sx) mx = sx; if (my > sy) my = sy; menu->xw = mx; menu->yw = my; if ((menu->x = menu->xp) < 0) menu->x = 0; if ((menu->y = menu->yp) < 0) menu->y = 0; if (menu->x + mx > sx) menu->x = sx - mx; if (menu->y + my > sy) menu->y = sy - my; } static void scroll_menu(struct menu *menu, int d) { int c = 0; int w = menu->yw - 2; int scr_i = SCROLL_ITEMS > (w-1)/2 ? (w-1)/2 : SCROLL_ITEMS; if (scr_i < 0) scr_i = 0; if (w < 0) w = 0; menu->selected += d; while (1) { if (c++ > menu->ni) { menu->selected = -1; menu->view = 0; return; } if (menu->selected < 0) menu->selected = 0; if (menu->selected >= menu->ni) menu->selected = menu->ni - 1; /*if (menu->selected < 0) menu->selected = menu->ni - 1; if (menu->selected >= menu->ni) menu->selected = 0;*/ if (menu->ni && menu->items[menu->selected].hotkey != M_BAR) break; menu->selected += d; } /*debug("1:%d %d %d %d", menu->ni, w, menu->view, menu->selected);*/ if (menu->selected < menu->view + scr_i) menu->view = menu->selected - scr_i; if (menu->selected >= menu->view + w - scr_i - 1) menu->view = menu->selected - w + scr_i + 1; if (menu->view > menu->ni - w) menu->view = menu->ni - w; if (menu->view < 0) menu->view = 0; /*debug("2:%d %d %d %d", menu->ni, w, menu->view, menu->selected);*/ } static void display_menu(struct menu *menu) { int p, s; fill_area(menu->x+1, menu->y+1, menu->xw-2, menu->yw-2, COLOR_MENU1); draw_frame(menu->x, menu->y, menu->xw, menu->yw, COLOR_MENU_FRAME, 1); for (p = menu->view, s = menu->y + 1; p < menu->ni && p < menu->view + menu->yw - 2; p++, s++) { int x; int h = 0; unsigned char c; char *tmptext = _(menu->items[p].text); int co = p == menu->selected ? h = 1, COLOR_MENU_SELECTED : COLOR_MENU1; if (h) { set_cursor(menu->x+1, s, term->x - 1, term->y - 1); /*set_window_ptr(menu->win, menu->x+3, s+1);*/ set_window_ptr(menu->win, menu->x+menu->xw, s); fill_area(menu->x+1, s, menu->xw-2, 1, co); } if (menu->items[p].hotkey != M_BAR || (tmptext && tmptext[0])) { int l = strlen(_(menu->items[p].rtext)); for (x = l - 1; x >= 0 && menu->xw - 4 >= l - x && (c = _(menu->items[p].rtext)[x]); x--) set_char(menu->x + menu->xw - 2 - l + x, s, c | co); for (x = 0; x < menu->xw - 4 && (c = tmptext[x]); x++) set_char(menu->x + x + 2, s, !h && strchr(_(menu->items[p].hotkey), upcase(c)) ? h = 1 , COLOR_MENU_HOTKEY | c : co | c); } else { set_char(menu->x, s, COLOR_MENU_FRAME | ATTR_FRAME | 0xc3); fill_area(menu->x+1, s, menu->xw-2, 1, COLOR_MENU_FRAME | ATTR_FRAME | 0xc4); set_char(menu->x+menu->xw-1, s, COLOR_MENU_FRAME | ATTR_FRAME | 0xb4); } } redraw_from_window(menu->win); } void menu_func(struct window *win, struct event *ev, int fwd) { int s = 0; struct menu *menu = (struct menu*)win->data; struct window *w1; menu->win = win; switch (ev->ev) { case EV_INIT: case EV_RESIZE: case EV_REDRAW: get_parent_ptr(win, &menu->xp, &menu->yp); count_menu_size(win->term, menu); menu->selected--; scroll_menu(menu, 1); /*case EV_REDRAW:*/ display_menu(menu); break; case EV_MOUSE: if (ev->b & B_MOVE) break; if (ev->x < menu->x || ev->x >= menu->x+menu->xw || ev->y < menu->y || ev->y >= menu->y+menu->yw) { if ((ev->b & BM_ACT) == B_DOWN) del:delete_window_ev(win, ev); else for (w1 = win; (void *)w1 != &win->term->windows; w1 = w1->next) { struct menu *m1; if (w1->handler == mainmenu_func) { if (!ev->y) goto del; break; } if (w1->handler != menu_func) break; m1 = (struct menu*)w1->data; if (ev->x > m1->x && ev->x < m1->x+m1->xw-1 && ev->y > m1->y && ev->y < m1->y+m1->yw-1) goto del; } } else { if (!(ev->x < menu->x || ev->x >= menu->x+menu->xw || ev->y < menu->y+1 || ev->y >= menu->y+menu->yw-1)) { int s = ev->y - menu->y-1 + menu->view; if (s >= 0 && s < menu->ni && menu->items[s].hotkey != M_BAR) { menu->selected = s; scroll_menu(menu, 0); display_menu(menu); if ((ev->b & BM_ACT) == B_UP || menu->items[s].in_m) select_menu(menu); } } } break; case EV_KBD: switch (kbd_action(KM_MENU, ev)) { case ACT_LEFT: case ACT_RIGHT: if ((void *)win->next != &win->term->windows && win->next->handler == mainmenu_func) goto mm; /*for (w1 = win; (void *)w1 != &win->term->windows; w1 = w1->next) { if (w1->handler == mainmenu_func) goto mm; if (w1->handler != menu_func) break; }*/ if (kbd_action(KM_MENU, ev) == ACT_RIGHT) goto enter; delete_window(win); goto break2; case ACT_UP: scroll_menu(menu, -1); break; case ACT_DOWN: scroll_menu(menu, 1); break; case ACT_HOME: menu->selected = -1, scroll_menu(menu, 1); break; case ACT_END: menu->selected = menu->ni, scroll_menu(menu, -1); break; case ACT_PAGE_UP: if ((menu->selected -= menu->yw - 3) < -1) menu->selected = -1; if ((menu->view -= menu->yw - 2) < 0) menu->view = 0; scroll_menu(menu, -1); break; case ACT_PAGE_DOWN: if ((menu->selected += menu->yw - 3) > menu->ni) menu->selected = menu->ni; if ((menu->view += menu->yw - 2) >= menu->ni - menu->yw + 2) menu->view = menu->ni - menu->yw + 2; scroll_menu(menu, 1); break; default: if ((ev->x >= KBD_F1 && ev->x <= KBD_F12) || ev->y == KBD_ALT) { mm: delete_window_ev(win, ev); goto break2; } if (ev->x == KBD_ESC) { delete_window_ev(win, (void *)win->next != &win->term->windows && win->next->handler == mainmenu_func ? ev : NULL); goto break2; } if (ev->x > ' ' && ev->x < 256) { int i; for (i = 0; i < menu->ni; i++) if (strchr(_(menu->items[i].hotkey), upcase(ev->x))) { menu->selected = i; scroll_menu(menu, 0); s = 1; } } break; } display_menu(menu); if (s || ev->x == KBD_ENTER || ev->x == ' ') { enter: select_menu(menu); } break2: break; case EV_ABORT: if (menu->items->free_i) { int i; for (i = 0; menu->items[i].text; i++) { if (menu->items[i].free_i & 2) mem_free(menu->items[i].text); if (menu->items[i].free_i & 4) mem_free(menu->items[i].rtext); } mem_free(menu->items); } break; } } void do_mainmenu(struct menu_item *items, cba_t data, int sel) { struct mainmenu *menu; if ((menu = mem_alloc(sizeof(struct mainmenu)))) { menu->selected = sel == -1 ? 0 : sel; menu->items = items; menu->data = data; add_window(mainmenu_func, menu); if (sel != -1) { struct event ev = {EV_KBD, KBD_ENTER, 0, 0}; struct window *win = term->windows.next; win->handler(win, &ev, 0); } } } static void display_mainmenu(struct mainmenu *menu) { int i; int p = 2; fill_area(0, 0, term->x, 1, COLOR_MAINMENU | ' '); for (i = 0; menu->items[i].text; i++) { int s = 0; int j; unsigned char c; char *tmptext = _(menu->items[i].text); int co = i == menu->selected ? s = 1, COLOR_MAINMENU_SELECTED : COLOR_MAINMENU; if (s) { fill_area(p, 0, 2, 1, co); fill_area(p+strlen(tmptext)+2, 0, 2, 1, co); menu->sp = p; set_cursor(p, 0, term->x - 1, term->y - 1); set_window_ptr(menu->win, p, 1); } p += 2; for (j = 0; (c = tmptext[j]); j++, p++) set_char(p, 0, (!s && strchr(_(menu->items[i].hotkey), upcase(c)) ? s = 1, COLOR_MAINMENU_HOTKEY : co) | c); p += 2; } menu->ni = i; redraw_from_window(menu->win); } static void select_mainmenu(struct mainmenu *menu) { struct menu_item *it = &menu->items[menu->selected]; if (menu->selected < 0 || menu->selected >= menu->ni || it->hotkey == M_BAR) return; if (!it->in_m) { struct window *win; for (win = term->windows.next; (void *)win != &term->windows && (win->handler == menu_func || win->handler == mainmenu_func); delete_window(win)) ; } it->func(it->data, menu->data); } void mainmenu_func(struct window *win, struct event *ev, int fwd) { int s = 0; struct mainmenu *menu = (struct mainmenu *)win->data; menu->win = win; switch(ev->ev) { case EV_INIT: case EV_RESIZE: case EV_REDRAW: display_mainmenu(menu); break; case EV_MOUSE: if (ev->b & B_MOVE) break; if ((ev->b & BM_ACT) == B_DOWN && ev->y) delete_window_ev(win, ev); else if (!ev->y) { int i; int p = 2; for (i = 0; i < menu->ni; i++) { int o = p; char *tmptext = _(menu->items[i].text); p += strlen(tmptext) + 4; if (ev->x >= o && ev->x < p) { menu->selected = i; display_mainmenu(menu); if ((ev->b & BM_ACT) == B_UP || menu->items[s].in_m) select_mainmenu(menu); break; } } } break; case EV_KBD: if (ev->x == ' ' || ev->x == KBD_ENTER || ev->x == KBD_DOWN || ev->x == KBD_UP || ev->x == KBD_PGDN || ev->x == KBD_PGUP) { select_mainmenu(menu); break; } if (ev->x == KBD_LEFT) { if (!menu->selected--) menu->selected = menu->ni - 1; s = 1; } if (ev->x == KBD_RIGHT) { if (++menu->selected >= menu->ni) menu->selected = 0; s = 1; } if ((ev->x == KBD_LEFT || ev->x == KBD_RIGHT) && fwd) { display_mainmenu(menu); select_mainmenu(menu); break; } if (ev->x > ' ' && ev->x < 256) { int i; s = 1; for (i = 0; i < menu->ni; i++) if (strchr(_(menu->items[i].hotkey), upcase(ev->x))) { menu->selected = i; s = 2; } } else if (!s) { delete_window_ev(win, ev->x != KBD_ESC ? ev : NULL); break; } display_mainmenu(menu); if (s == 2) select_mainmenu(menu); break; case EV_ABORT: break; } } struct menu_item *new_menu(int free_i) { struct menu_item *mi; if (!(mi = (struct menu_item*)mem_alloc(sizeof(struct menu_item)))) return NULL; memset(mi, 0, sizeof(struct menu_item)); mi->free_i = free_i; return mi; } void add_to_menu(struct menu_item **mi, char *text, char *rtext, char *hotkey, void (*func)(cba_t, cba_t), cba_t data, int in_m) { struct menu_item *mii; int n; for (n = 0; (*mi)[n].text; n++) ; if (!(mii = (struct menu_item*)mem_realloc(*mi, (n + 2) * sizeof(struct menu_item)))) return; *mi = mii; memcpy(mii + n + 1, mii + n, sizeof(struct menu_item)); mii[n].text = text; mii[n].rtext = rtext; mii[n].hotkey = hotkey; mii[n].func = func; mii[n].data = data; mii[n].in_m = in_m; } void do_dialog(struct dialog *dlg, struct memory_list *ml) { struct dialog_data *dd; struct dialog_item *d; int n = 0; for (d = dlg->items; d->type != D_END; d++) n++; if (!(dd = (struct dialog_data *)mem_alloc(sizeof(struct dialog_data) + sizeof(struct dialog_item_data) * n))) return; dd->dlg = dlg; dd->n = n; dd->ml = ml; add_window(dialog_func, dd); } void display_dlg_item(struct dialog_data *dlg, struct dialog_item_data *di, int sel) { switch(di->item->type) { int co; char *text; case D_CHECKBOX: if (di->checked) print_text(di->x, di->y, 3, "[X]", COLOR_DIALOG_CHECKBOX); else print_text(di->x, di->y, 3, "[ ]", COLOR_DIALOG_CHECKBOX); if (sel) { set_cursor(di->x + 1, di->y, di->x + 1, di->y); set_window_ptr(dlg->win, di->x, di->y); } break; case D_CHECKBOX3: if (di->checked==2) print_text(di->x, di->y, 3, "[O]", COLOR_DIALOG_CHECKBOX); else if (di->checked==1) print_text(di->x, di->y, 3, "[X]", COLOR_DIALOG_CHECKBOX); else print_text(di->x, di->y, 3, "[ ]", COLOR_DIALOG_CHECKBOX); if (sel) { set_cursor(di->x + 1, di->y, di->x + 1, di->y); set_window_ptr(dlg->win, di->x, di->y); } break; case D_FIELD_PASS: case D_FIELD: if (di->vpos + di->l <= di->cpos) di->vpos = di->cpos - di->l + 1; if (di->vpos > di->cpos) di->vpos = di->cpos; if (di->vpos < 0) di->vpos = 0; fill_area(di->x, di->y, di->l, 1, COLOR_DIALOG_FIELD); if (di->item->type == D_FIELD) { print_text(di->x, di->y, strlen(di->cdata + di->vpos) <= di->l ? strlen(di->cdata + di->vpos) : di->l, di->cdata + di->vpos, COLOR_DIALOG_FIELD_TEXT); } else fill_area(di->x, di->y, strlen(di->cdata + di->vpos) <= di->l ? strlen(di->cdata + di->vpos) : di->l, 1, COLOR_DIALOG_FIELD_TEXT | '*'); if (sel) { set_cursor(di->x + di->cpos - di->vpos, di->y, di->x + di->cpos - di->vpos, di->y); set_window_ptr(dlg->win, di->x, di->y); } break; case D_BUTTON: co = sel ? COLOR_DIALOG_BUTTON_SELECTED : COLOR_DIALOG_BUTTON; text = _(di->item->text); print_text(di->x, di->y, 2, "[ ", co); print_text(di->x + 2, di->y, strlen(text), text, co); print_text(di->x + 2 + strlen(text), di->y, 2, " ]", co); if (sel) { set_cursor(di->x + 2, di->y, di->x + 2, di->y); set_window_ptr(dlg->win, di->x, di->y); } break; case D_BOX: /* Draw a hierarchy box */ show_dlg_item_box(dlg, di); break; default: debug("Tried to draw unknown "); } } static void dlg_select_item(struct dialog_data *dlg, struct dialog_item_data *di) { if (di->item->type == D_CHECKBOX) { if (!di->item->gid) di -> checked = *(int *)di->cdata = !*(int *)di->cdata; else { int i; for (i = 0; i < dlg->n; i++) { if (dlg->items[i].item->type == D_CHECKBOX && dlg->items[i].item->gid == di->item->gid) { *(int *)dlg->items[i].cdata = di->item->gnum; dlg->items[i].checked = 0; display_dlg_item(dlg, &dlg->items[i], 0); } } di->checked = 1; } display_dlg_item(dlg, di, 1); } else if (di->item->type == D_CHECKBOX3) { if (!di->item->gid) { (*(int *)di->cdata)++; if (*(int *)di->cdata == 3) *(int *)di->cdata = 0; di -> checked = *(int *)di->cdata; }else{ int i; for (i = 0; i < dlg->n; i++) { if (dlg->items[i].item->type == D_CHECKBOX3 && dlg->items[i].item->gid == di->item->gid) { *(int *)dlg->items[i].cdata = di->item->gnum; dlg->items[i].checked = 0; display_dlg_item(dlg, &dlg->items[i], 0); } } di->checked = 1; } display_dlg_item(dlg, di, 1); } else if (di->item->type == D_BUTTON) di->item->fn(dlg, di); } static void dlg_set_history(struct dialog_item_data *di) { char *s = ""; int l; if ((void *)di->cur_hist != &di->history) s = di->cur_hist->d; if ((l = strlen(s)) > di->item->dlen) l = di->item->dlen - 1; memcpy(di->cdata, s, l); di->cdata[l] = 0; di->cpos = l; } static int dlg_mouse(struct dialog_data *dlg, struct dialog_item_data *di, struct event *ev) { switch (di->item->type) { case D_BUTTON: if (ev->y != di->y || ev->x < di->x || ev->x >= di->x + strlen(_(di->item->text)) + 4) return 0; display_dlg_item(dlg, &dlg->items[dlg->selected], 0); dlg->selected = di - dlg->items; display_dlg_item(dlg, di, 1); if ((ev->b & BM_ACT) == B_UP) dlg_select_item(dlg, di); return 1; case D_FIELD_PASS: case D_FIELD: if (ev->y != di->y || ev->x < di->x || ev->x >= di->x + di->l) return 0; if ((di->cpos = di->vpos + ev->x - di->x) > strlen(di->cdata)) di->cpos = strlen(di->cdata); display_dlg_item(dlg, &dlg->items[dlg->selected], 0); dlg->selected = di - dlg->items; display_dlg_item(dlg, di, 1); return 1; case D_CHECKBOX: case D_CHECKBOX3: if (ev->y != di->y || ev->x < di->x || ev->x >= di->x + 3) return 0; display_dlg_item(dlg, &dlg->items[dlg->selected], 0); dlg->selected = di - dlg->items; display_dlg_item(dlg, di, 1); if ((ev->b & BM_ACT) == B_UP) dlg_select_item(dlg, di); return 1; case D_BOX: if ((ev->b & BM_ACT) == B_UP) { if ( (ev->y >= di->y) && (ev->x >= di->x && ev->x <= di->l + di->x) ) { /* Clicked in the box. */ int offset; offset = ev->y - di->y; box_sel_set_visible(di, offset); display_dlg_item(dlg, di, 1); return 1; } } /*else if ((ev->b & BM_ACT) == B_DRAG) { debug("drag"); }*/ } return 0; } static void redraw_dialog(struct dialog_data *dlg) { int i; draw_frame(dlg->x + DIALOG_LEFT_BORDER, dlg->y + DIALOG_TOP_BORDER, dlg->xw - 2 * DIALOG_LEFT_BORDER, dlg->yw - 2 * DIALOG_TOP_BORDER, COLOR_DIALOG_FRAME, DIALOG_FRAME); i = strlen(_(dlg->dlg->title)); print_text((dlg->xw - i) / 2 + dlg->x - 1, dlg->y + DIALOG_TOP_BORDER, 1, " ", COLOR_DIALOG_TITLE); print_text((dlg->xw - i) / 2 + dlg->x, dlg->y + DIALOG_TOP_BORDER, i, _(dlg->dlg->title), COLOR_DIALOG_TITLE); print_text((dlg->xw - i) / 2 + dlg->x + i, dlg->y + DIALOG_TOP_BORDER, 1, " ", COLOR_DIALOG_TITLE); for (i = 0; i < dlg->n; i++) display_dlg_item(dlg, &dlg->items[i], i == dlg->selected); redraw_from_window(dlg->win); } void dialog_func(struct window *win, struct event *ev, int fwd) { int i; struct dialog_data *dlg = (struct dialog_data *)win->data; struct dialog_item_data *di; dlg->win = win; /* dbg("dialog_func(%p,[%d,%d,%d,%d],%d)\n",win,ev->ev,ev->x,ev->y,ev->b,fwd);*/ /* Use nonstandard event handlers */ if (dlg->dlg->handle_event && ((dlg->dlg->handle_event)(dlg, ev) == EVENT_PROCESSED) ) { return; } switch (ev->ev) { case EV_INIT: for (i = 0; i < dlg->n; i++) { struct dialog_item_data *di = &dlg->items[i]; memset(di, 0, sizeof(struct dialog_item_data)); di->item = &dlg->dlg->items[i]; if ((di->cdata = (char *)mem_alloc(di->item->dlen))) memcpy(di->cdata, di->item->data, di->item->dlen); if (di->item->type == D_CHECKBOX) { if (di->item->gid) { if (*(int *)di->cdata == di->item->gnum) di->checked = 1; } else if (*(int *)di->cdata) di->checked = 1; } if (di->item->type == D_CHECKBOX3) { di->checked = *(int *)di->cdata; } if (di->item->type == D_BOX) { /* Freed in bookmark_dialog_abort_handler() */ di->cdata = mem_alloc( sizeof(struct dlg_data_item_data_box) ); ((struct dlg_data_item_data_box*)di->cdata)->sel = -1; ((struct dlg_data_item_data_box*)di->cdata)->box_top = 0; ((struct dlg_data_item_data_box*)di->cdata)->list_len = -1; init_list(((struct dlg_data_item_data_box*)di->cdata)->items); } init_list(di->history); if (di->item->type == D_FIELD || di->item->type == D_FIELD_PASS) { if (di->item->history) { struct history_item *j; /*int l = di->item->dlen;*/ foreach(j, di->item->history->items) { struct history_item *hi; if (!(hi = mem_alloc(sizeof(struct history_item) + strlen(j->d) + 1))) continue; strcpy(hi->d, j->d); add_to_list(di->history, hi); } } di->cpos = strlen(di->cdata); } } dlg->selected = 0; case EV_RESIZE: case EV_REDRAW: dlg->dlg->fn(dlg); redraw_dialog(dlg); break; case EV_MOUSE: if (ev->b & B_MOVE) break; for (i = 0; i < dlg->n; i++) if (dlg_mouse(dlg, &dlg->items[i], ev)) break; break; case EV_KBD: di = &dlg->items[dlg->selected]; if (di->item->type == D_FIELD || di->item->type == D_FIELD_PASS) { if (di->item->tabcompl && ev->x == KBD_F2 && ev->y == 0){ di->item->tabi++; do_tab_compl(di, di->item->tabi); if (di->item->tabi == 2) di->item->tabi = 0; goto dsp_f; }else{ di->item->tabi = 0; } switch (kbd_action(KM_EDIT, ev)) { case ACT_UP: if ((void *)di->cur_hist->prev != &di->history) { di->cur_hist = di->cur_hist->prev; dlg_set_history(di); goto dsp_f; } break; case ACT_DOWN: if ((void *)di->cur_hist != &di->history) { di->cur_hist = di->cur_hist->next; dlg_set_history(di); goto dsp_f; } break; case ACT_RIGHT: if (di->cpos < strlen(di->cdata)) di->cpos++; goto dsp_f; case ACT_LEFT: if (di->cpos > 0) di->cpos--; goto dsp_f; case ACT_HOME: di->cpos = 0; goto dsp_f; case ACT_END: di->cpos = strlen(di->cdata); goto dsp_f; case ACT_BACKSPACE: if (di->cpos) { memmove(di->cdata + di->cpos - 1, di->cdata + di->cpos, strlen(di->cdata) - di->cpos + 1); di->cpos--; } goto dsp_f; case ACT_DELETE: if (di->cpos < strlen(di->cdata)) memmove(di->cdata + di->cpos, di->cdata + di->cpos + 1, strlen(di->cdata) - di->cpos + 1); goto dsp_f; case ACT_KILL_TO_BOL: memmove(di->cdata, di->cdata + di->cpos, strlen(di->cdata + di->cpos) + 1); di->cpos = 0; goto dsp_f; case ACT_KILL_TO_EOL: di->cdata[di->cpos] = 0; goto dsp_f; case ACT_COPY_CLIPBOARD: /* Copy to clipboard */ set_clipboard_text(di->cdata); break; /* We don't need to redraw */ case ACT_CUT_CLIPBOARD: /* Cut to clipboard */ set_clipboard_text(di->cdata); di->cdata[0] = 0; di->cpos = 0; goto dsp_f; case ACT_PASTE_CLIPBOARD: { /* Paste from clipboard */ char * clipboard = get_clipboard_text(); strncpy(di->cdata , clipboard, di->item->dlen); di->cdata[di->item->dlen - 1] = 0; di->cpos = strlen(di->cdata); mem_free(clipboard); goto dsp_f; } default: if (ev->x >= ' ' && ev->x < 0x100 && !ev->y) { if (strlen(di->cdata) < di->item->dlen - 1) { memmove(di->cdata + di->cpos + 1, di->cdata + di->cpos, strlen(di->cdata) - di->cpos + 1); di->cdata[di->cpos++] = ev->x; } goto dsp_f; } } goto gh; dsp_f: display_dlg_item(dlg, di, 1); redraw_from_window(dlg->win); break; } if ((ev->x == KBD_ENTER && di->item->type == D_BUTTON) || ev->x == ' ') { dlg_select_item(dlg, di); break; } gh: if (ev->x > ' ' && ev->x < 0x100) for (i = 0; i < dlg->n; i++) if (dlg->dlg->items[i].type == D_BUTTON && upcase(_(dlg->dlg->items[i].text)[0]) == upcase(ev->x)) { sel: if (dlg->selected != i) { display_dlg_item(dlg, &dlg->items[dlg->selected], 0); display_dlg_item(dlg, &dlg->items[i], 1); dlg->selected = i; } dlg_select_item(dlg, &dlg->items[i]); goto bla; } if (ev->x == KBD_ENTER) for (i = 0; i < dlg->n; i++) if (dlg->dlg->items[i].type == D_BUTTON && dlg->dlg->items[i].gid & B_ENTER) goto sel; if (ev->x == KBD_ESC) for (i = 0; i < dlg->n; i++) if (dlg->dlg->items[i].type == D_BUTTON && dlg->dlg->items[i].gid & B_ESC) goto sel; if ((ev->x == KBD_TAB && !ev->y) || ev->x == KBD_DOWN || ev->x == KBD_RIGHT) { display_dlg_item(dlg, &dlg->items[dlg->selected], 0); if ((++dlg->selected) >= dlg->n) dlg->selected = 0; display_dlg_item(dlg, &dlg->items[dlg->selected], 1); redraw_from_window(dlg->win); break; } if ((ev->x == KBD_TAB && ev->y) || ev->x == KBD_UP || ev->x == KBD_LEFT) { display_dlg_item(dlg, &dlg->items[dlg->selected], 0); if ((--dlg->selected) < 0) dlg->selected = dlg->n - 1; display_dlg_item(dlg, &dlg->items[dlg->selected], 1); redraw_from_window(dlg->win); break; } break; case EV_ABORT: /* Moved this line up so that the dlg would have access to its member vars before they get freed. */ if (dlg->dlg->abort) dlg->dlg->abort(dlg); for (i = 0; i < dlg->n; i++) { struct dialog_item_data *di = &dlg->items[i]; if (di->cdata) mem_free(di->cdata); free_list(di->history); } freeml(dlg->ml); } bla:; } int check_number(struct dialog_data *dlg, struct dialog_item_data *di) { char *end; long l = strtol(di->cdata, (char **)(void *)&end, 10); if (!*di->cdata || *end) { msg_box(NULL, VTEXT(T_BAD_NUMBER), AL_CENTER, VTEXT(T_NUMBER_EXPECTED), NULL, 1, VTEXT(T_CANCEL), NULL, B_ENTER | B_ESC); return 1; } if (l < di->item->gid || l > di->item->gnum) { msg_box(NULL, VTEXT(T_BAD_NUMBER), AL_CENTER, VTEXT(T_NUMBER_OUT_OF_RANGE), NULL, 1, VTEXT(T_CANCEL), NULL, B_ENTER | B_ESC); return 1; } return 0; } int check_qrg(struct dialog_data *dlg, struct dialog_item_data *di) { char *end; double d = strtod(di->cdata, (char **)(void *)&end); if (!*di->cdata || *end) { msg_box(NULL, VTEXT(T_BAD_NUMBER), AL_CENTER, VTEXT(T_NUMBER_EXPECTED), NULL, 1, VTEXT(T_CANCEL), NULL, B_ENTER | B_ESC); return 1; } if (d < 0.0 || d > 300000000000.0) { msg_box(NULL, VTEXT(T_BAD_NUMBER), AL_CENTER, VTEXT(T_NUMBER_OUT_OF_RANGE), NULL, 1, VTEXT(T_CANCEL), NULL, B_ENTER | B_ESC); return 1; } return 0; } int check_nonempty(struct dialog_data *dlg, struct dialog_item_data *di) { char *p; for (p = di->cdata; *p; p++) if (*p > ' ') return 0; msg_box(NULL, VTEXT(T_BAD_STRING), AL_CENTER, VTEXT(T_EMPTY_STRING_NOT_ALLOWED), NULL, 1, VTEXT(T_CANCEL), NULL, B_ENTER | B_ESC); return 1; } int cancel_dialog(struct dialog_data *dlg, struct dialog_item_data *di) { /*struct dialog *dl = dlg->dlg;*/ delete_window(dlg->win); /*mem_free(dl);*/ return 0; } static int check_dialog(struct dialog_data *dlg) { int i; for (i = 0; i < dlg->n; i++) if (dlg->dlg->items[i].type == D_CHECKBOX || dlg->dlg->items[i].type == D_CHECKBOX3 || dlg->dlg->items[i].type == D_FIELD || dlg->dlg->items[i].type == D_FIELD_PASS) if (dlg->dlg->items[i].fn && dlg->dlg->items[i].fn(dlg, &dlg->items[i])) { dlg->selected = i; redraw_dialog(dlg); return 1; } return 0; } int ok_dialog(struct dialog_data *dlg, struct dialog_item_data *di) { int i; void (*fn)(void *) = dlg->dlg->refresh; void *data = dlg->dlg->refresh_data; if (check_dialog(dlg)) return 1; for (i = 0; i < dlg->n; i++) memcpy(dlg->dlg->items[i].data, dlg->items[i].cdata, dlg->dlg->items[i].dlen); if (fn) fn(data); i = cancel_dialog(dlg, di); return i; } void center_dlg(struct dialog_data *dlg) { dlg->x = (dlg->win->term->x - dlg->xw) / 2; dlg->y = (dlg->win->term->y - dlg->yw) / 2; } void draw_dlg(struct dialog_data *dlg) { fill_area(dlg->x, dlg->y, dlg->xw, dlg->yw, COLOR_DIALOG); } void max_text_width(struct terminal *term, char *text, int *width) { text = _(text); do { int c = 0; while (*text && *text != '\n') text++, c++; if (c > *width) *width = c; } while (*(text++)); } void min_text_width(struct terminal *term, char *text, int *width) { text = _(text); do { int c = 0; while (*text && *text != '\n' && *text != ' ') text++, c++; if (c > *width) *width = c; } while (*(text++)); } void dlg_format_text(struct terminal *term1, struct terminal *t2, char *atext, int x, int *y, int w, int *rw, int co, int align) { unsigned char *text; text = (unsigned char *)_(atext); do { unsigned char *tx; unsigned char *tt = text; int s; int xx = x; do { while (*text && *text != '\n' && *text != ' ') { text++, xx++; } tx = ++text; xx++; if (*(text - 1) != ' ') break; while (*tx && *tx != '\n' && *tx != ' ') tx++; } while (tx - text + xx - x <= w); s = (align & AL_MASK) == AL_CENTER ? (w - (xx - 1 - x)) / 2 : 0; if (s < 0) s = 0; while (tt < text - 1) { if (s >= w) { s = 0, (*y)++; if (rw) *rw = w; rw = NULL; } if (term1) set_char(x + s, *y, co | *tt); s++, tt++; } if (rw && xx - 1 - x > *rw) *rw = xx - 1 - x; (*y)++; } while (*(text - 1)); } void max_buttons_width(struct terminal *term, struct dialog_item_data *butt, int n, int *width) { int w = -2; int i; for (i = 0; i < n; i++) w += strlen(_((butt++)->item->text)) + 6; if (w > *width) *width = w; } void min_buttons_width(struct terminal *term, struct dialog_item_data *butt, int n, int *width) { int i; for (i = 0; i < n; i++) { int w = strlen(_((butt++)->item->text)) + 4; if (w > *width) *width = w; } } void dlg_format_buttons(struct terminal *term, struct terminal *t2, struct dialog_item_data *butt, int n, int x, int *y, int w, int *rw, int align) { int i1 = 0; while (i1 < n) { int i2 = i1 + 1; int mw; while (i2 < n) { mw = 0; max_buttons_width(t2, butt + i1, i2 - i1 + 1, &mw); if (mw <= w) i2++; else break; } mw = 0; max_buttons_width(t2, butt + i1, i2 - i1, &mw); if (rw && mw > *rw) if ((*rw = mw) > w) *rw = w; if (term) { int i; int p = x + ((align & AL_MASK) == AL_CENTER ? (w - mw) / 2 : 0); for (i = i1; i < i2; i++) { butt[i].x = p; butt[i].y = *y; p += (butt[i].l = strlen(_(butt[i].item->text)) + 4) + 2; } } *y += 2; i1 = i2; } } void dlg_format_buttons1(struct terminal *term, struct terminal *t2, struct dialog_item_data *butt, int n, int x, int *y, int w, int *rw, int align) { int i1 = 0; while (i1 < n) { int i2 = i1 + 1; int mw; while (i2 < n) { mw = 0; max_buttons_width(t2, butt + i1, i2 - i1 + 1, &mw); if (mw <= w) i2++; else break; } mw = 0; max_buttons_width(t2, butt + i1, i2 - i1, &mw); if (rw && mw > *rw) if ((*rw = mw) > w) *rw = w; if (term) { int i; int p = x + ((align & AL_MASK) == AL_CENTER ? (w - mw) / 2 : 0); for (i = i1; i < i2; i++) { butt[i].x = p; butt[i].y = *y; p += (butt[i].l = strlen(_(butt[i].item->text)) + 4) + 2; } } *y += 1; i1 = i2; } } void dlg_format_checkbox(struct terminal *term, struct terminal *t2, struct dialog_item_data *chkb, int x, int *y, int w, int *rw, char *text) { if (term) { chkb->x = x; chkb->y = *y; } if (rw) *rw -= 4; dlg_format_text(term, t2, text, x + 4, y, w - 4, rw, COLOR_DIALOG_CHECKBOX_TEXT, AL_LEFT); if (rw) *rw += 4; } void dlg_format_checkboxes(struct terminal *term, struct terminal *t2, struct dialog_item_data *chkb, int n, int x, int *y, int w, int *rw, char **texts) { while (n) { dlg_format_checkbox(term, t2, chkb, x, y, w, rw, _(texts[0])); texts++; chkb++; n--; } } void checkboxes_width(struct terminal *term, char **texts, int *w, void (*fn)(struct terminal *, char *, int *)) { while (texts[0]) { *w -= 4; fn(term, _(texts[0]), w); *w += 4; texts++; } } void dlg_format_field(struct terminal *term, struct terminal *t2, struct dialog_item_data *item, int x, int *y, int w, int *rw, int align) { item->x = x; item->y = *y; item->l = w; /*if ((item->l = w) > item->item->dlen - 1) item->l = item->item->dlen - 1;*/ if (rw && item->l > *rw) if ((*rw = item->l) > w) *rw = w; (*y)++; } /* Layout for generic boxes */ void dlg_format_box(struct terminal *term, struct terminal *t2, struct dialog_item_data *item, int x, int *y, int w, int *rw, int align) { item->x = x; item->y = *y; item->l = w; if (rw && item->l > *rw) if ((*rw = item->l) > w) *rw = w; (*y) += item->item->gid; } void max_group_width(struct terminal *term, char **texts, struct dialog_item_data *item, int n, int *w) { int ww = 0; while (n--) { int wx = (item->item->type == D_CHECKBOX || item->item->type == D_CHECKBOX3) ? 4 : item->item->type == D_BUTTON ? strlen(_(item->item->text)) + 5 : item->item->dlen + 1; wx += strlen(_(texts[0])); if (n) wx++; ww += wx; texts++; item++; } if (ww > *w) *w = ww; } void min_group_width(struct terminal *term, char **texts, struct dialog_item_data *item, int n, int *w) { while (n--) { int wx = (item->item->type == D_CHECKBOX || item->item->type == D_CHECKBOX3) ? 4 : item->item->type == D_BUTTON ? strlen(_(item->item->text)) + 5 : item->item->dlen + 1; wx += strlen(_(texts[0])); if (wx > *w) *w = wx; texts++; item++; } } void dlg_format_group(struct terminal *term1, struct terminal *t2, char **texts, struct dialog_item_data *item, int n, int x, int *y, int w, int *rw) { int nx = 0; /* now X coord */ /* dbg("\ndlg_format_group (term=%p,n=%d,x=%d,*y=%d,w=%d,rw=%p)\n",term,n,x,*y,w,rw);*/ //dbg("dlg_format_group item x=%d y=%d l=%d, vpos=%d, cpos=%d\n", item->x, item->y, item->l, item->vpos, item->cpos); while (n--) { int sl; int wx = (item->item->type == D_CHECKBOX || item->item->type == D_CHECKBOX3) ? 4 : item->item->type == D_BUTTON ? strlen(_(item->item->text)) + 5 : item->item->maxl ? item->item->maxl+1 : item->item->dlen + 1; /* widget width */ if (_(texts[0])[0]) sl = strlen(_(texts[0])); else sl = -1; wx += sl; if (nx && nx + wx > w) { nx = 0; (*y) += 2; } /* dbg("sl=%d nx=%d wx=%d w=%d\n",sl,nx,wx,w);*/ if (term1) { int stringlen; print_text(x + nx + 4 * (item->item->type == D_CHECKBOX || item->item->type == D_CHECKBOX3), *y, strlen(_(texts[0])), _(texts[0]), COLOR_DIALOG_TEXT); item->x = x + nx + (sl + 1) * (item->item->type != D_CHECKBOX && item->item->type != D_CHECKBOX3); item->y = *y; /* dbg("item->x=%d item->y=%d\n",item->x,item->y);*/ if (item->item->type == D_FIELD || item->item->type == D_FIELD_PASS) { item->l = item->item->maxl ? item->item->maxl : item->item->dlen; /* dbg("setting item->l to %d \n",item->l); dbg("remains w-nx=%d w-nx-wx=%d \n",w-nx,w-nx-wx);*/ stringlen=strlen(_(texts[0])); if (item->l > w-nx-stringlen) item->l = w-nx-stringlen; /* dbg("setting item->l to %d \n",item->l);*/ } } if (rw && nx + wx > *rw) if ((*rw = nx + wx) > w) *rw = w; nx += wx + 1; texts++; item++; } (*y)++; } void dlg_format_group1(struct terminal *term1, struct terminal *t2, char **texts, struct dialog_item_data *item, int n, int x, int *y, int w, int *rw) { int nx = 0; /* now X coord */ /* dbg("\ndlg_format_group (term=%p,n=%d,x=%d,*y=%d,w=%d,rw=%p)\n",term,n,x,*y,w,rw);*/ while (n--) { int sl; int wx = (item->item->type == D_CHECKBOX || item->item->type == D_CHECKBOX3) ? 4 : item->item->type == D_BUTTON ? strlen(_(item->item->text)) + 5 : item->item->maxl ? item->item->maxl+1 : item->item->dlen + 1; /* widget width */ if (_(texts[0])[0]) sl = strlen(_(texts[0])); else sl = -1; wx += sl; if (nx && nx + wx > w) { nx = 0; (*y) += 1; } /* dbg("sl=%d nx=%d wx=%d w=%d\n",sl,nx,wx,w);*/ if (term1) { int stringlen; print_text(x + nx + 4 * (item->item->type == D_CHECKBOX || item->item->type == D_CHECKBOX3), *y, strlen(_(texts[0])), _(texts[0]), COLOR_DIALOG_TEXT); item->x = x + nx + (sl + 1) * (item->item->type != D_CHECKBOX && item->item->type != D_CHECKBOX3); item->y = *y; /* dbg("item->x=%d item->y=%d\n",item->x,item->y);*/ if (item->item->type == D_FIELD || item->item->type == D_FIELD_PASS) { item->l = item->item->maxl ? item->item->maxl : item->item->dlen; /* dbg("setting item->l to %d \n",item->l); dbg("remains w-nx=%d w-nx-wx=%d \n",w-nx,w-nx-wx);*/ stringlen=strlen(_(texts[0])); if (item->l > w-nx-stringlen) item->l = w-nx-stringlen; /* dbg("setting item->l to %d \n",item->l); */ } } if (rw && nx + wx > *rw) if ((*rw = nx + wx) > w) *rw = w; nx += wx + 1; texts++; item++; } (*y)++; } void checkbox_list_fn(struct dialog_data *dlg) { int max = 0, min = 0; int w, rw; int y = 0; checkboxes_width(term, dlg->dlg->udata, &max, max_text_width); checkboxes_width(term, dlg->dlg->udata, &min, min_text_width); max_buttons_width(term, dlg->items + dlg->n - 2, 2, &max); min_buttons_width(term, dlg->items + dlg->n - 2, 2, &min); w = term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > term->x - 2 * DIALOG_LB) w = term->x - 2 * DIALOG_LB; if (w < 5) w = 5; rw = 0; dlg_format_checkboxes(NULL, term, dlg->items, dlg->n - 2, 0, &y, w, &rw, dlg->dlg->udata); y++; dlg_format_buttons(NULL, term, dlg->items + dlg->n - 2, 2, 0, &y, w, &rw, AL_CENTER); w = rw; dlg->xw = rw + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB + 1; dlg_format_checkboxes(term, term, dlg->items, dlg->n - 2, dlg->x + DIALOG_LB, &y, w, NULL, dlg->dlg->udata); y++; dlg_format_buttons(term, term, dlg->items + dlg->n - 2, 2, dlg->x + DIALOG_LB, &y, w, &rw, AL_CENTER); } void group_fn(struct dialog_data *dlg) { int max = 0, min = 0; int w, rw; int y = 0; max_group_width(term, dlg->dlg->udata, dlg->items, dlg->n - 2, &max); min_group_width(term, dlg->dlg->udata, dlg->items, dlg->n - 2, &min); max_buttons_width(term, dlg->items + dlg->n - 2, 2, &max); min_buttons_width(term, dlg->items + dlg->n - 2, 2, &min); w = term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > term->x - 2 * DIALOG_LB) w = term->x - 2 * DIALOG_LB; if (w < 1) w = 1; rw = 0; dlg_format_group(NULL, term, dlg->dlg->udata, dlg->items, dlg->n - 2, 0, &y, w, &rw); y++; dlg_format_buttons(NULL, term, dlg->items + dlg->n - 2, 2, 0, &y, w, &rw, AL_CENTER); w = rw; dlg->xw = rw + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB + 1; dlg_format_group(term, term, dlg->dlg->udata, dlg->items, dlg->n - 2, dlg->x + DIALOG_LB, &y, w, NULL); y++; dlg_format_buttons(term, term, dlg->items + dlg->n - 2, 2, dlg->x + DIALOG_LB, &y, w, &rw, AL_CENTER); } static void msg_box_fn(struct dialog_data *dlg) { int max = 0, min = 0; int w, rw; int y = 0; char **ptr; char *text = init_str(); int textl = 0; for (ptr = dlg->dlg->udata; *ptr; ptr++) add_to_str(&text, &textl, _(*ptr)); max_text_width(term, text, &max); min_text_width(term, text, &min); max_buttons_width(term, dlg->items, dlg->n, &max); min_buttons_width(term, dlg->items, dlg->n, &min); w = term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > term->x - 2 * DIALOG_LB) w = term->x - 2 * DIALOG_LB; if (w < 1) w = 1; rw = 0; dlg_format_text(NULL, term, text, 0, &y, w, &rw, COLOR_DIALOG_TEXT, dlg->dlg->align); y++; dlg_format_buttons(NULL, term, dlg->items, dlg->n, 0, &y, w, &rw, AL_CENTER); w = rw; dlg->xw = rw + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB + 1; dlg_format_text(term, term, text, dlg->x + DIALOG_LB, &y, w, NULL, COLOR_DIALOG_TEXT, dlg->dlg->align); y++; dlg_format_buttons(term, term, dlg->items, dlg->n, dlg->x + DIALOG_LB, &y, w, NULL, AL_CENTER); mem_free(text); } static int msg_box_button(struct dialog_data *dlg, struct dialog_item_data *di) { void (*fn)(void *) = (void (*)(void *))di->item->udata; void *data = dlg->dlg->udata2; /*struct dialog *dl = dlg->dlg;*/ if (fn) fn(data); cancel_dialog(dlg, di); return 0; } void msg_box(struct memory_list *ml, char *title, int align, /*char *text, void *data, int n,*/ ...) { struct dialog *dlg; int i; int n; char *text; char **udata; void *udata2; int udatan; va_list ap; va_start(ap, align); udata = DUMMY; udatan = 0; do { char **udata_; text = va_arg(ap, char *); na_kovarne__to_je_narez: if (!(udata_ = mem_realloc(udata, ++udatan * sizeof(char *)))) { mem_free(udata); return; } udata = udata_; udata[udatan - 1] = text; if (text && !(align & AL_EXTD_TEXT)) { text = NULL; goto na_kovarne__to_je_narez; } } while (text); udata2 = va_arg(ap, void *); n = va_arg(ap, int); if (!(dlg = mem_alloc(sizeof(struct dialog) + (n + 1) * sizeof(struct dialog_item)))) { mem_free(udata); return; } memset(dlg, 0, sizeof(struct dialog) + (n + 1) * sizeof(struct dialog_item)); dlg->title = title; dlg->fn = msg_box_fn; dlg->udata = udata; dlg->udata2 = udata2; dlg->align = align; for (i = 0; i < n; i++) { char *m; void (*fn)(void *); int flags; m = va_arg(ap, char *); fn = va_arg(ap, void *); flags = va_arg(ap, int); if (!m) { i--, n--; continue; } dlg->items[i].type = D_BUTTON; dlg->items[i].gid = flags; dlg->items[i].fn = msg_box_button; dlg->items[i].dlen = 0; dlg->items[i].text = m; dlg->items[i].udata = fn; } dlg->items[i].type = D_END; add_to_ml(&ml, dlg, udata, NULL); do_dialog(dlg, ml); } void add_to_history(struct history *h, char *t) { struct history_item *hi, *hs; int l; if (!h || !t || !*t) return; l = strlen(t) + 1; if (!(hi = mem_alloc(sizeof(struct history_item) + l))) return; memcpy(hi->d, t, l); foreach(hs, h->items) if (!strcmp(hs->d, t)) { struct history_item *hd = hs; hs = hs->prev; del_from_list(hd); mem_free(hd); h->n--; } add_to_list(h->items, hi); h->n++; while (h->n > MAX_HISTORY_ITEMS) { struct history_item *hd = h->items.prev; if ((void *)hd == &h->items) { internal_("history is empty"); h->n = 0; return; } del_from_list(hd); mem_free(hd); h->n--; } } static int input_field_cancel(struct dialog_data *dlg, struct dialog_item_data *di) { void (*fn)(void *) = di->item->udata; void *data = dlg->dlg->udata2; if (fn) fn(data); cancel_dialog(dlg, di); return 0; } static int input_field_ok(struct dialog_data *dlg, struct dialog_item_data *di) { void (*fn)(void *, char *) = di->item->udata; void *data = dlg->dlg->udata2; char *text = dlg->items->cdata; if (check_dialog(dlg)) return 1; add_to_history(dlg->dlg->items->history, text); if (fn) fn(data, text); ok_dialog(dlg, di); return 0; } static int input_field_complete(struct dialog_data *dlg, struct dialog_item_data *di){ di->item->tabi++; do_tab_compl(&dlg->items[0], 1); if (di->item->tabi == 2) di->item->tabi = 0; redraw_later(); return 0; } char new_file[MAX_STR_LEN]; void input_field_fn(struct dialog_data *dlg) { if (strlen(new_file)){ char *c = strrchr(dlg->items[0].cdata, '/'); if (c){ char *p; *c = '\0'; p = g_strconcat(dlg->items[0].cdata, "/", new_file, NULL); safe_strncpy0(dlg->items[0].cdata, p, dlg->items[0].item->dlen); g_free(p); }else{ safe_strncpy0(dlg->items[0].cdata, new_file, dlg->items[0].item->dlen); } dlg->items[0].cpos = strlen(dlg->items[0].cdata); // safe_strncpy0(dlg->items[0].cdata, new_file, EQSO_LEN); strcpy(new_file, ""); } } void input_field(struct memory_list *ml, char *title, char *text, char *okbutton, char *cancelbutton, void *data, struct history *history, int l, char *def, int min, int max, int (*check)(struct dialog_data *, struct dialog_item_data *), void (*fn)(void *, char *), void (*cancelfn)(void *), int tabcompl) { struct dialog *dlg; char *field; int i; strcpy(new_file, ""); if (!(dlg = mem_alloc(sizeof(struct dialog) + 4 * sizeof(struct dialog_item) + l))) return; memset(dlg, 0, sizeof(struct dialog) + 4 * sizeof(struct dialog_item) + l); *(field = (char *)dlg + sizeof(struct dialog) + 4 * sizeof(struct dialog_item)) = 0; if (def) { if (strlen(def) + 1 > l) memcpy(field, def, l - 1); else strcpy(field, def); } dlg->title = title; dlg->fn = dlg_pf_fn; if (tabcompl) dlg->fn2 = input_field_fn; dlg->udata = text; dlg->udata2 = data; dlg->y0 = 1; dlg->items[i=0].type = D_FIELD; dlg->items[i].gid = min; dlg->items[i].gnum = max; dlg->items[i].fn = check; dlg->items[i].history = history; dlg->items[i].dlen = l; dlg->items[i].maxl = (term->x * 2)/4; dlg->items[i].data = field; dlg->items[i].tabcompl = tabcompl; dlg->items[i].wrap = 0; if (tabcompl){ dlg->items[++i].type = D_BUTTON; dlg->items[i].gid = 0; dlg->items[i].fn = input_field_complete; dlg->items[i].dlen = 0; dlg->items[i].text = "F2"; dlg->items[i].udata = NULL; } dlg->items[i].wrap = 2; dlg->items[++i].type = D_BUTTON; dlg->items[i].gid = B_ENTER; dlg->items[i].fn = input_field_ok; dlg->items[i].dlen = 0; dlg->items[i].text = okbutton; dlg->items[i].udata = fn; dlg->items[++i].type = D_BUTTON; dlg->items[i].gid = B_ESC; dlg->items[i].fn = input_field_cancel; dlg->items[i].dlen = 0; dlg->items[i].text = cancelbutton; dlg->items[i].udata = cancelfn; dlg->items[i].align = AL_BUTTONS; dlg->items[i].wrap = 1; dlg->items[++i].type = D_END; add_to_ml(&ml, dlg, NULL); do_dialog(dlg, ml); } /* Sets the selected item to one that is visible.*/ void box_sel_set_visible(struct dialog_item_data *box_item_data, int offset) { struct dlg_data_item_data_box *box; int sel; box = (struct dlg_data_item_data_box *)(box_item_data->item->data); if (offset > box_item_data->item->gid || offset < 0) { return; } /*debug("offset: %d", offset);*/ sel = box->box_top + offset; if (sel > box->list_len) { box->sel = box->list_len - 1; } else { box->sel = sel; } } /* Moves the selected item [dist] thingies. If [dist] is out of the current range, the selected item is moved to the extreme (ie, the top or bottom) */ void box_sel_move(struct dialog_item_data *box_item_data, int dist) { struct dlg_data_item_data_box *box; int new_sel; int new_top; box = (struct dlg_data_item_data_box *)(box_item_data->item->data); new_sel = box->sel + dist; new_top = box->box_top; /* Ensure that the selection is in range */ if (new_sel < 0) new_sel = 0; else if (new_sel >= box->list_len) new_sel = box->list_len - 1; /* Ensure that the display box is over the item */ if ( new_sel >= (new_top + box_item_data->item->gid) ) { /* Move it down */ new_top = new_sel - box_item_data->item->gid + 1; #ifdef DEBUG if (new_top < 0) debug("Newly calculated box_top is an extremely wrong value (%d). It should not be below zero.", new_top); #endif } else if ( new_sel < new_top ) { /* Move the display up (if necessary) */ new_top = new_sel; } box->sel = new_sel; box->box_top = new_top; } /* Displays a dialog box */ void show_dlg_item_box(struct dialog_data *dlg, struct dialog_item_data *box_item_data) { struct dlg_data_item_data_box *box; struct box_item *citem; /* Item currently being shown */ /* struct box_item *items; */ /* List of items to be shown */ int n; /* Index of item currently being displayed */ box = (struct dlg_data_item_data_box *)(box_item_data->item->data); /* FIXME: Counting here SHOULD be unnecessary */ n = 0; fill_area(box_item_data->x, box_item_data->y, box_item_data->l, box_item_data->item->gid, COLOR_DIALOG_FIELD); foreach (citem, box->items) { int len; /* Length of the current text field. */ len = strlen(citem->text); if (len > box_item_data->l) { len = box_item_data->l; } /* Is the current item in the region to be displayed? */ if ( (n >= box->box_top) && (n < (box->box_top + box_item_data->item->gid)) ) { print_text(box_item_data->x, box_item_data->y + n - box->box_top, len, citem->text, n == box->sel ? COLOR_DIALOG_BUTTON_SELECTED : COLOR_DIALOG_FIELD_TEXT); } n++; } box->list_len = n; } void errbox(char *text, int errcode, ...){ static char str[1026]; char errbuf[1024]; va_list l; va_start(l, errcode); if (errcode){ gchar *c; c=g_strdup_vprintf(text, l); g_snprintf(str, 1024, "%s\n%s (%d)", c, strerror_r(errcode, errbuf, sizeof(errbuf)), errcode); g_free(c); }else{ g_vsnprintf(str, 1024, text, l); } va_end(l); msg_box(NULL, VTEXT(T_ERROR), AL_CENTER, str, NULL, 1, VTEXT(T_CANCEL), NULL, B_ENTER | B_ESC); } void dlg_pf_init(int phase, struct dialog_data *dlgd){ switch(phase){ case 0: dlgd->min = 0; dlgd->max = 0; dlgd->yy = -1; dlgd->ofs = 0; break; case 1: dlgd->w = dlgd->win->term->x * 9 / 10 - 2 * DIALOG_LB; if (dlgd->w > dlgd->max) dlgd->w = dlgd->max; if (dlgd->w < dlgd->min) dlgd->w = dlgd->min; if (dlgd->w > dlgd->win->term->x - 2 * DIALOG_LB) dlgd->w = dlgd->win->term->x - 2 * DIALOG_LB; if (dlgd->w < 1) dlgd->w = 1; dlgd->rw = 0; dlgd->yy = -1; dlgd->ofs = 0; break; case 2: dlgd->w = dlgd->rw; dlgd->xw = dlgd->w + 2 * DIALOG_LB; dlgd->yw = dlgd->yy + 2 * DIALOG_TB; center_dlg(dlgd); draw_dlg(dlgd); dlgd->yy = dlgd->y + DIALOG_TB + dlgd->dlg->y0; dlgd->ofs = 0; break; } } void dlg_pf_group(int phase, struct dialog_data *dlgd, int cnt){ int i; int nx = 0; /* now X coord */ switch(phase){ case 0: for (i=0; iitems[dlgd->ofs+i].item->type == D_CHECKBOX || dlgd->items[dlgd->ofs+i].item->type == D_CHECKBOX3) ? 4 : dlgd->items[dlgd->ofs+i].item->type == D_BUTTON ? strlen(_(dlgd->items[dlgd->ofs+i].item->text)) + 5 : dlgd->items[dlgd->ofs+i].item->dlen + 1; if (dlgd->items[dlgd->ofs+i].item->msg){ wx += strlen(_(dlgd->items[dlgd->ofs+i].item->msg)); } if (wx > dlgd->max) dlgd->max = wx; if (wx < dlgd->min) dlgd->min = wx; } break; case 1: for (i=0; iitems[dlgd->ofs+i]); int wx = (item->item->type == D_CHECKBOX || item->item->type == D_CHECKBOX3) ? 4 : item->item->type == D_BUTTON ? strlen(_(item->item->text)) + 5 : item->item->maxl ? item->item->maxl+1 : item->item->dlen + 1; /* widget width */ if (_(item->item->msg)) sl = strlen(_(item->item->msg)); else sl = -1; wx += sl; if (nx && nx + wx > dlgd->w) { nx = 0; dlgd->yy += 1; } if (nx + wx > dlgd->rw) if ((dlgd->rw = nx + wx) > dlgd->w) dlgd->rw = dlgd->w; nx += wx + 1; } //dlgd->yy++; break; case 2: for (i=0; iitems[dlgd->ofs+i]); int wx = (item->item->type == D_CHECKBOX || item->item->type == D_CHECKBOX3) ? 4 : item->item->type == D_BUTTON ? strlen(_(item->item->text)) + 5 : item->item->maxl ? item->item->maxl+1 : item->item->dlen + 1; /* widget width */ if (_(item->item->msg)) sl = strlen(_(item->item->msg)); else sl = -1; wx += sl; if (nx && nx + wx > dlgd->w) { nx = 0; dlgd->yy += 1; } if (item->item->msg){ print_text(dlgd->x + DIALOG_LB + nx + 4 * (item->item->type == D_CHECKBOX || item->item->type == D_CHECKBOX3), dlgd->yy, strlen(_(item->item->msg)), _(item->item->msg), COLOR_DIALOG_TEXT); } item->x = dlgd->x + DIALOG_LB + nx + (sl + 1) * (item->item->type != D_CHECKBOX && item->item->type != D_CHECKBOX3); item->y = dlgd->yy; if (item->item->type == D_FIELD || item->item->type == D_FIELD_PASS) { item->l = item->item->maxl ? item->item->maxl : item->item->dlen; stringlen=0; if (item->item->msg) stringlen = strlen(_(item->item->msg)); if (item->l > dlgd->w - nx - stringlen) item->l = dlgd->w - nx - stringlen; } nx += wx + 1; } //dlgd->yy++; break; } dlgd->ofs += cnt; } void dlg_pf_buttons(int phase, struct dialog_data *dlgd, int cnt){ switch(phase){ case 0: max_buttons_width(dlgd->win->term, dlgd->items + dlgd->ofs, cnt, &dlgd->max); min_buttons_width(dlgd->win->term, dlgd->items + dlgd->ofs, cnt, &dlgd->min); break; case 1: dlg_format_buttons(NULL, dlgd->win->term, dlgd->items + dlgd->ofs, cnt, 0, &dlgd->yy, dlgd->w, &dlgd->rw, dlgd->items[dlgd->ofs+cnt-1].item->align); break; case 2: dlg_format_buttons(dlgd->win->term, dlgd->win->term, dlgd->items + dlgd->ofs, cnt, dlgd->x + DIALOG_LB, &dlgd->yy, dlgd->w, NULL, dlgd->items[dlgd->ofs+cnt-1].item->align); break; } dlgd->ofs += cnt; } void dlg_pf_fn(struct dialog_data *dlgd) { int ph; int i,j; if (dlgd->dlg->fn2) dlgd->dlg->fn2(dlgd); j=0; for (ph = 0; ph < 3; ph++){ dlg_pf_init(ph, dlgd); for (i=0; i< dlgd->n; i++){ // char *names[]={"end", "check", "field", "pass", "butt", "box", "check3", "?", "?"}; // dbg("i=%d type=%d %s n=%d\n", i, dlgd->items[i].item->type, names[dlgd->items[i].item->type], dlgd->n); j++; if (!dlgd->items[i].item->wrap) continue; if (dlgd->items[i].item->align & AL_BUTTONS) dlg_pf_buttons(ph, dlgd, j); else dlg_pf_group(ph, dlgd, j); dlgd->yy += dlgd->items[i].item->wrap; j=0; } if (j>0){ if (dlgd->items[i].item->align & AL_BUTTONS) dlg_pf_buttons(ph, dlgd, j); else dlg_pf_group(ph, dlgd, j); dlgd->yy += dlgd->items[i].item->wrap; } } } static char *complete_file; static int filter_complete(const struct dirent *de){ int ret; if (strcmp((char *)de->d_name, ".") == 0) return 0; if (strcmp((char *)de->d_name, "..") == 0) return 0; ret = strncmp((char *)de->d_name, complete_file, strlen(complete_file)); return !ret; } void complete_choose(cba_t dir, cba_t unused){ /*dbg("menu_load_contest('%s')\n", dir);*/ safe_strncpy0(new_file, (char *)GETCBA(dir, charp), MAX_STR_LEN); redraw_later(); } int do_tab_compl(struct dialog_item_data *di, int tabi){ char *path, *file, *slash; int i, n, max = 0; struct dirent **namelist=NULL; struct menu_item *mi = NULL; dbg("complete: %d '%s'\n", tabi, di->cdata); slash = strrchr(di->cdata, '/'); if (slash){ if (di->cdata[0] == '~'){ char *p = g_strndup(di->cdata + 1 , slash - di->cdata - 1); path = g_strconcat(getenv("HOME"), "/", p, NULL); g_free(p); }else{ path = g_strndup(di->cdata, slash - di->cdata); } file = g_strdup(slash + 1); }else{ path = g_strdup("."); file = g_strdup(di->cdata); } dbg("path='%s' file='%s'\n", path, file); free_namelist(); complete_file = file; n = tucnak_scandir(path, &namelist, filter_complete, tucnak_alphasort); complete_file = NULL; dbg("n=%d\n", n); if (n <= 0) goto x; for (i=0; id_name); } dbg("\n"); if (n == 1){ char *p = g_strconcat(path, "/", (char*)namelist[0]->d_name, NULL); safe_strncpy0(di->cdata, p, di->item->dlen); di->cpos = strlen(di->cdata); g_free(p); }else{ if (!(mi = new_menu(3))) goto x; for (i=0; id_name; if (strlen(c)>max) max=strlen(c); SETCBA(cba2, charp, namelist[i]->d_name); add_to_menu(&mi, stracpy(c), "", "", complete_choose, cba2, 0); } // set_window_ptr(gses->win, (term->x-6-max)/2,(term->y-2-i)/2); do_menu(mi, CBA0); } x:; g_free(path); g_free(file); free_namelist(); return 0; } tucnak2-2.48/src/icons.h0000644000175000017500000000071411567373656012037 00000000000000/* Automatically generated by png2inc.pl */ extern const unsigned char icon_norec[3817]; extern const unsigned char icon_play[2832]; extern const unsigned char icon_record[2703]; extern const unsigned char icon_sun[1918]; extern const unsigned char icon_tucnak[2036]; extern const unsigned char icon_tucnak23[319]; extern const unsigned char icon_tucnak64[5343]; extern const unsigned char icon_tucnakv[1772]; extern const unsigned char icon_tucnakv64[5042]; tucnak2-2.48/src/oss.c0000644000175000017500000002073211567373656011525 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #if defined(HAVE_OSS) && defined(HAVE_SNDFILE) static const char *clabels[] = SOUND_DEVICE_LABELS; int oss_open(struct dsp *dsp, int rec){ int tmp; char errbuf[1024]; CONDGFREE(dsp->filename); dsp->filename=g_strdup(cfg->ssbd_dsp); dbg("open_dsp('%s',%s)\n", dsp->filename, rec?"record":"playback"); CONDGFREE(dsp->name); dsp->name=g_strdup(cfg->ssbd_dsp); dsp->fd = open (cfg->ssbd_dsp, rec?O_RDONLY:O_WRONLY, 0); if (dsp->fd < 0){ log_addf("Can't open file '%s': %s", dsp->name, strerror_r(errno, errbuf, sizeof(errbuf)) ); goto err; } if (cfg->ssbd_maxfrag>=2 && cfg->ssbd_maxfrag<16384){ dsp->fragment = (cfg->ssbd_maxfrag<<16)|0x000a; dbg("setting fragment to 0x%08x\n", dsp->fragment); if (ioctl (dsp->fd, SNDCTL_DSP_SETFRAGMENT, &dsp->fragment)){ log_addf("Can't set fragment size to 0x%x: %s", dsp->fragment, strerror_r(errno, errbuf, sizeof(errbuf)) ); goto err; } } if (ioctl(dsp->fd, SNDCTL_DSP_GETFMTS, &dsp->fmt_mask)){ log_addf("Can't get supported audio formats: %s", strerror_r(errno, errbuf, sizeof(errbuf)) ); goto err; } tmp=dsp->oss_format; if (ioctl (dsp->fd, SNDCTL_DSP_SETFMT, &dsp->oss_format)){ log_addf("Can't set audio format %d, recommended %d: %s", tmp, dsp->oss_format, strerror_r(errno, errbuf, sizeof(errbuf)) ); tmp=dsp->oss_format; if (ioctl (dsp->fd, SNDCTL_DSP_SETFMT, &dsp->oss_format)){ log_addf("Can't set recommended audio format %d, return %d: %s", tmp, dsp->oss_format, strerror_r(errno, errbuf, sizeof(errbuf)) ); tmp = dsp->oss_format = AFMT_S16_NE; if (ioctl (dsp->fd, SNDCTL_DSP_SETFMT, &dsp->oss_format)){ log_addf("Can't set fallback audio %d, return %d: %s", tmp, dsp->oss_format, strerror_r(errno, errbuf, sizeof(errbuf)) ); dsp->oss_format = AFMT_S8; if (ioctl (dsp->fd, SNDCTL_DSP_SETFMT, &dsp->oss_format)){ log_addf("Can't set fallback audio format %d, return %d: %s", tmp, dsp->oss_format, strerror_r(errno, errbuf, sizeof(errbuf)) ); dsp->oss_format = AFMT_U8; if (ioctl (dsp->fd, SNDCTL_DSP_SETFMT, &dsp->oss_format)){ log_addf("Can't set fallback audio format %d, return %d: %s", tmp, dsp->oss_format, strerror_r(errno, errbuf, sizeof(errbuf)) ); goto err; } } } } /* fallback ok */ } tmp=dsp->channels; if (ioctl (dsp->fd, SNDCTL_DSP_CHANNELS, &dsp->channels)){ log_addf("Can't set channels %d, recommended %d: %s", tmp, dsp->channels, strerror_r(errno, errbuf, sizeof(errbuf)) ); tmp=dsp->channels; if (ioctl (dsp->fd, SNDCTL_DSP_CHANNELS, &dsp->channels)){ log_addf("Can't set recommended channels %d, return %d: %s", tmp, dsp->channels, strerror_r(errno, errbuf, sizeof(errbuf)) ); goto err; } /* fallback ok */ } tmp=dsp->speed; if (ioctl (dsp->fd, SNDCTL_DSP_SPEED, &dsp->speed)){ log_addf("Can't set samplerate %d, recommended %d: %s", tmp, dsp->speed, strerror_r(errno, errbuf, sizeof(errbuf)) ); tmp=dsp->speed; if (ioctl (dsp->fd, SNDCTL_DSP_SPEED, &dsp->speed)){ log_addf("Can't set recommended samplerate %d, return %d: %s", tmp, dsp->speed, strerror_r(errno, errbuf, sizeof(errbuf)) ); goto err; } /* fallback ok */ } if (ioctl (dsp->fd, SNDCTL_DSP_GETBLKSIZE, &dsp->blksize)){ log_addf("Can't set block size %d: %s", tmp, dsp->blksize, strerror_r(errno, errbuf, sizeof(errbuf)) ); goto err; } goto x; err:; if (dsp->fd>=0) close(dsp->fd); dsp->fd = -1; x:; /* dbg(" dsp->fd=%d\n", dsp->fd);*/ return dsp->fd; } int oss_close(struct dsp *dsp){ /*ST_START;*/ dsp->reset(dsp); CONDGFREE(dsp->filename); if (dsp->fd >= 0) { /*dbg("close_dsp(fd=%d)\n",dsp->fd);*/ close(dsp->fd); } dsp->fd=-1; /* ST_STOP;*/ return 0; } int oss_write(struct dsp *dsp, void *data, int len){ return write(dsp->fd, data, len); } int oss_read(struct dsp *dsp, void *data, int len){ return read(dsp->fd, data, len); } int oss_reset(struct dsp *dsp){ if (!dsp || dsp->fd<0) return 0; return ioctl(dsp->fd, SNDCTL_DSP_RESET, NULL); } int oss_sync(struct dsp *dsp){ if (!dsp || dsp->fd<0) return 0; return ioctl(dsp->fd, SNDCTL_DSP_SYNC, NULL); } int oss_set_format(struct dsp *dsp, SF_INFO *sfinfo){ dsp->bpf=1; switch (sfinfo->format & SF_FORMAT_SUBMASK){ /* case SF_FORMAT_PCM_U8: format=AFMT_U8; break; case SF_FORMAT_PCM_S8: format=AFMT_S8; break;*/ case SF_FORMAT_ULAW: dsp->oss_format=AFMT_MU_LAW; break; case SF_FORMAT_ALAW: dsp->oss_format=AFMT_A_LAW; break; case SF_FORMAT_IMA_ADPCM: dsp->oss_format=AFMT_IMA_ADPCM; break; default: dsp->oss_format=AFMT_S16_NE; dsp->bpf=2; } dsp->channels=sfinfo->channels; if (dsp->channels>MAX_CHANNELS) dsp->channels=MAX_CHANNELS; dsp->speed=sfinfo->samplerate; return 0; } int oss_get_sources(GString *labels){ int fd, i, recmask; char s[16]; g_string_truncate(labels, 0); if (!cfg->ssbd_mixer || strlen(cfg->ssbd_mixer)==0) return 0; fd=open(cfg->ssbd_mixer, O_RDWR, 0); if (fd<0){ return -1; } if (ioctl(fd, SOUND_MIXER_READ_RECMASK, &recmask) <0){ close(fd); return -1; } for (i=0; istr)>0) g_string_append_c(labels, ';'); safe_strncpy(s, clabels[i], sizeof(s)); stripr(s); g_string_append(labels, s); } close(fd); return 0; } int oss_set_source(struct dsp *dsp){ int fd, i, val; char s[16]; dbg("oss_set_source('%s')\n", dsp->source); if (!dsp->source || !*dsp->source){ return 0; } fd=open(cfg->ssbd_mixer, O_RDWR, 0); if (fd<0){ return -1; } for (i=0; isource)!=0) continue; dbg("oss_mixer_set_source('%s') setting 0x%x\n", dsp->source, i); if (ioctl(fd, SOUND_MIXER_WRITE_RECSRC, &i) <0){ close(fd); return -1; } if (cfg->ssbd_rlev < 0) continue; val = (cfg->ssbd_rlev << 8 ) | cfg->ssbd_rlev; if (ioctl(fd, MIXER_WRITE(i), &val) < 0){ close(fd); return -3; } close(fd); return 0; } dbg("oss_mixer_set_source('%s') not found\n", dsp->source); close(fd); return -2; } int oss_set_plevel(struct dsp *dsp){ int fd, i, val; char s[16]; dbg("oss_set_plevel()\n"); if (cfg->ssbd_plev < 0) return 0; fd=open(cfg->ssbd_mixer, O_RDWR, 0); if (fd<0){ return -1; } dbg("SOUND_MIXER_NRDEVICES=%d\n", SOUND_MIXER_NRDEVICES); for (i=0; issbd_plev << 8 ) | cfg->ssbd_plev; if (ioctl(fd, MIXER_WRITE(i), &val) < 0){ close(fd); return -3; } } close(fd); return 0; } char *oss_recsrc2source(int recsrc){ int i; static char s[16]; if (recsrc==0) return NULL; for (i=-1; recsrc; recsrc>>=1, i++); if (i<0) return NULL; if (i>=SOUND_MIXER_NRDEVICES) return NULL; safe_strncpy(s, clabels[i], sizeof(s)); stripr(s); return s; } char *stripr(char *s){ int i; i=strlen(s); if (!i) return s; for (i--;i>=0;i--){ if (s[i]!=' ') break; s[i]='\0'; } return s; } #endif tucnak2-2.48/src/main.c0000644000175000017500000004437111611306054011624 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" int retval = RET_OK; char * starting_sbrk; void sig_terminate(cba_t cba) { unhandle_basic_signals(); terminate = 1; retval = RET_SIGNAL; } void sig_intr(cba_t cba) { if (!term) { unhandle_basic_signals(); terminate = 1; } else { unhandle_basic_signals(); exit_prog(CBA0); } } void sig_ctrl_c(cba_t cba) { dbg("sig_ctrl_c\n"); if (!is_blocked()) kbd_ctrl_c(); } void sig_ign(cba_t cba) { } void sig_tstp(cba_t cba) { #ifdef SIGSTOP int pid = getpid(); block_itrm(0); #if defined (SIGCONT) && defined(SIGTTOU) if (!fork()) { sleep(1); kill(pid, SIGCONT); exit(0); } #endif raise(SIGSTOP); #endif } void sig_cont(cba_t cba) { if (!unblock_itrm(0)) resize_terminal(CBA0); } void sig_segv(cba_t cba){ signal(SIGSEGV, SIG_DFL); fprintf(stderr, "sig_segv(%d)", (int)GETCBA(cba, int_)); /* printf("\n\n\n sig_segv() sdl=%p \n\n\n",sdl);*/ /* install_signal_handler(SIGSEGV, NULL, CBA0, 0);*/ cwdaemon_safe_abort(cwda); #ifdef HAVE_SDL if (sdl) { SDL_Quit(); } else #endif { itrm_safe_abort(); } raise(SIGSEGV); } static void sig_pipe(int a){ /* dbg("sig_pipe(%d)\n", a); dbg("pid=%d\n", getpid()); sleep(10);*/ } void handle_basic_signals(struct terminal *term) { #ifndef HAVE_SDL #define sdl 0 #endif install_signal_handler(SIGHUP, sig_intr, CBA0, 0); if (!sdl) install_signal_handler(SIGINT, sig_ctrl_c, CBA0, 0); install_signal_handler(SIGTERM, sig_terminate, CBA0, 0); if (!sdl){ #ifdef SIGTSTP install_signal_handler(SIGTSTP, sig_tstp, CBA0, 0); #endif #ifdef SIGTTIN install_signal_handler(SIGTTIN, sig_tstp, CBA0, 0); #endif #ifdef SIGCONT install_signal_handler(SIGCONT, sig_cont, CBA0, 0); #endif } #ifdef SIGTTOU install_signal_handler(SIGTTOU, sig_ign, CBA0, 0); #endif install_signal_handler(SIGSEGV, sig_segv, CBA0, 1); signal(SIGPIPE, sig_pipe); } static void handle_sdl_signals(void){ install_signal_handler(SIGSEGV, sig_segv, CBA0, 1); } void unhandle_terminal_signals() { install_signal_handler(SIGHUP, NULL, CBA0, 0); if (!sdl) install_signal_handler(SIGINT, NULL, CBA0, 0); #ifdef SIGTSTP install_signal_handler(SIGTSTP, NULL, CBA0, 0); #endif #ifdef SIGTTIN install_signal_handler(SIGTTIN, NULL, CBA0, 0); #endif #ifdef SIGCONT install_signal_handler(SIGCONT, NULL, CBA0, 0); #endif #ifdef SIGTTOU install_signal_handler(SIGTTOU, NULL, CBA0, 0); #endif install_signal_handler(SIGSEGV, NULL, CBA0, 0); signal(SIGPIPE, SIG_IGN); } void unhandle_basic_signals() { install_signal_handler(SIGHUP, NULL, CBA0, 0); if (!sdl) install_signal_handler(SIGINT, NULL, CBA0, 0); install_signal_handler(SIGTERM, NULL, CBA0, 0); #ifdef SIGTSTP install_signal_handler(SIGTSTP, NULL, CBA0, 0); #endif #ifdef SIGTTIN install_signal_handler(SIGTTIN, NULL, CBA0, 0); #endif #ifdef SIGCONT install_signal_handler(SIGCONT, NULL, CBA0, 0); #endif #ifdef SIGTTOU install_signal_handler(SIGTTOU, NULL, CBA0, 0); #endif install_signal_handler(SIGSEGV, NULL, CBA0, 0); signal(SIGPIPE, SIG_IGN); } #ifndef HAVE_SDL #undef sdl #endif int term_attach_terminal(int in, int out, int ctl) { int fd[2]; /*struct terminal *term;*/ dbg("attach_terminal\n"); if (c_pipe(fd)) { error("ERROR: can't create pipe for internal communication"); return -1; } fcntl(fd[0], F_SETFL, O_NONBLOCK); fcntl(fd[1], F_SETFL, O_NONBLOCK); handle_trm(in, out, out, fd[1], ctl); if ((term = init_term(fd[0], out, win_func))) { handle_basic_signals(term); /* OK, this is race condition, but it must be so; GPM installs it's own buggy TSTP handler */ return fd[1]; } closesocket(fd[0]); closesocket(fd[1]); return -1; } /*struct status dump_stat;*/ //static int dump_pos; static int ac; static char **av; char *path_to_exe; /*int init_b = 0;*/ static char *tucnak_home = NULL; int first_use = 0; int first_contest_def = 0; static char *get_home(int *n) { struct stat st; char *home = stracpy(getenv("HOME")); char *home_tucnak; char *config_dir = stracpy(getenv("CONFIG_DIR")); if (n) *n = 1; if (!home) { int i; home = stracpy(path_to_exe); if (!home) { if (config_dir) mem_free(config_dir); return NULL; } for (i = strlen(home) - 1; i >= 0; i--) if (dir_sep(home[i])) { home[i + 1] = 0; goto br; } home[0] = 0; br:; } while (home[0] && dir_sep(home[strlen(home) - 1])) home[strlen(home) - 1] = 0; if (home[0]) add_to_strn(&home, "/"); home_tucnak = stracpy(home); if (config_dir) { add_to_strn(&home_tucnak, config_dir); while (home_tucnak[0] && dir_sep(home_tucnak[strlen(home_tucnak) - 1])) home_tucnak[strlen(home_tucnak) - 1] = 0; if (stat(home_tucnak, &st) != -1 && S_ISDIR(st.st_mode)) { add_to_strn(&home_tucnak, "/tucnak"); } else { fprintf(stderr, "CONFIG_DIR set to %s. But directory %s doesn't exist.\n\007", config_dir, home_tucnak); sleep(3); mem_free(home_tucnak); home_tucnak = stracpy(home); add_to_strn(&home_tucnak, "tucnak"); } mem_free(config_dir); } else add_to_strn(&home_tucnak, "tucnak"); if (stat(home_tucnak, &st)) { if (!tmkdir(home_tucnak, 0777)) goto home_creat; if (config_dir) goto failed; goto first_failed; } if (S_ISDIR(st.st_mode)) goto home_ok; first_failed: mem_free(home_tucnak); home_tucnak = stracpy(home); add_to_strn(&home_tucnak, "tucnak"); if (stat(home_tucnak, &st)) { if (!tmkdir(home_tucnak, 0777)) goto home_creat; goto failed; } if (S_ISDIR(st.st_mode)) goto home_ok; failed: mem_free(home_tucnak); mem_free(home); return NULL; home_ok: if (n) *n = 0; home_creat: #ifdef HAVE_CHMOD chmod(home_tucnak, 0700); #endif add_to_strn(&home_tucnak, "/"); mem_free(home); return home_tucnak; } static void init_home(void) { tucnak_home = get_home(&first_use); if (!tucnak_home) { fprintf(stderr, "Unable to find or create tucnak config directory. Please check, that you have $HOME variable set correctly and that you have write permission to your home directory.\n\007"); sleep(3); return; } } //#define INIT(cmd) dbg("%s...\n", #cmd); cmd; #define INIT(cmd) cmd static void init(void) { parse_options(ac, av); if (opt_i){ printf("\n %s %s\n\n", PACKAGE, VERSION); #ifdef __GLIBC__ printf("\n glibc info\n"); printf("compiled version: %d.%d\n", __GLIBC__, __GLIBC_MINOR__); printf("runtime version: %s\n", gnu_get_libc_version()); printf("runtime release: %s\n\n", gnu_get_libc_release()); #endif #ifdef HAVE_SDL sdl_info(); #endif #ifdef HAVE_LINUX_PPDEV_H parport_info(); #endif #ifdef HAVE_ALSA #ifdef HAVE_SNDFILE alsa_info(); #endif #endif #ifdef HAVE_LIBFTDI usb_info(); #endif iface_info(); exit(0); } if (opt_s){ printf("%s", txt_settings); printf(" macros: "); #ifdef UNIX printf("UNIX "); #endif #ifdef _UNIX printf("_UNIX "); #endif #ifdef __UNIX printf("__UNIX "); #endif #ifdef LINUX printf("LINUX "); #endif #ifdef _LINUX printf("_LINUX "); #endif #ifdef __LINUX printf("__LINUX "); #endif #ifdef WIN32 printf("WIN32 "); #endif #ifdef _WIN32 printf("_WIN32 "); #endif #ifdef _WIN64 printf("_WIN64 "); #endif #ifdef __CYGWIN__ printf("__CYGWIN__ "); #endif #ifdef __GNUC__ printf("__GNUC__=%d.%d.%d ", __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__); #endif #ifdef _MSC_VER printf("_MSC_VER=%d.%02d ", _MSC_VER / 100, _MSC_VER % 100); #endif #ifdef __MINGW32__ printf("__MINGW32__ "); #endif printf("\n"); exit(0); } g_thread_init(NULL); #ifdef __MINGW32__ init_mingw(); #endif INIT(init_debug()); /*char *ccc = mem_alloc(8); strcpy(ccc, "0123456"); ccc = mem_realloc(ccc, 16); mem_free(ccc); exit(0);*/ INIT(init_iarray()); INIT(init_ghash()); INIT(init_trans()); INIT(init_rc()); INIT(term_spec_init()); INIT(set_sigcld()); INIT(init_home()); INIT(init_keymaps()); INIT(tpipe=init_threadpipe()); INIT(read_rc_files()); #ifdef HAVE_SDL INIT(sdl=init_sdl()); if (sdl) handle_sdl_signals(); if (sdl){ setenv("TERM", "sdl", 1); if (!sdl_attach_terminal(get_input_handle(), get_output_handle(), get_ctl_handle())==-1){ retval = RET_FATAL; terminate = 1; } } else #endif { if (!term_attach_terminal(get_input_handle(), get_output_handle(), get_ctl_handle())==-1){ retval = RET_FATAL; terminate = 1; } } if (!term) internal_("init() !term"); INIT(glog = init_fifo(1000)); INIT(gtalk = init_fifo(1000)); INIT(cw = init_cw()); INIT(dw = init_dw()); INIT(excdb = init_exc()); INIT(qrvdb = init_qrv()); INIT(wizz = init_wizz()); INIT(namedb = init_namedb()); INIT(masterdb = init_masterdb()); INIT(init_sconns()); INIT(init_rotars()); #ifdef HAVE_LIBFTDI hdkeyb = init_hdkeyb(); // after init_rotars #endif #ifdef HAVE_SDL INIT(cor = init_cor()); #endif INIT(disable_screensaver()); INIT(read_cw_files(cw)); INIT(read_dw_files(dw)); INIT(read_wizz_files(wizz)); INIT(read_namedb_files(namedb)); /*read_ebw_files(cw,namedb);*/ INIT(read_masterdb_files(masterdb)); INIT(init_sound()); INIT(net = init_net()); INIT(httpd = init_httpd()); INIT(cwda = init_cwdaemon()); #ifdef HAVE_SNDFILE INIT(dsp = init_dsp()); INIT(ssbd = init_ssbd()); #endif INIT(spotdb = init_spotdb()); #ifndef __CYGWIN__ INIT(ntpq = init_ntpq()); #endif #ifdef HAVE_HAMLIB INIT(trig = init_trig()); #endif INIT(fft = init_fft()); } #define FREE(cmd) dbg("%s...\n", #cmd); cmd; //#define FREE(cmd) cmd static void terminate_all_subsystems(void) { #ifdef HAVE_SDL /*free_gfx();*/ #endif dbg("terminate_all_subsystems\n"); FREE(check_bottom_halves()); FREE(check_bottom_halves()); FREE(check_bottom_halves()); #ifdef HAVE_SDL FREE(sdl_stop_event_thread()); FREE(free_cor(cor)); #endif #ifdef HAVE_HAMLIB FREE(free_trig(trig)); #endif #ifndef __CYGWIN__ FREE(free_ntpq(ntpq)); #endif FREE(free_qrv(qrvdb)); FREE(free_exc(excdb)); FREE(free_dw(dw)); FREE(free_cw(cw)); FREE(free_wizz(wizz)); FREE(free_namedb(namedb)); FREE(free_masterdb(masterdb)); #ifdef HAVE_LIBFTDI free_hdkeyb(hdkeyb); #endif FREE(free_rotars()); FREE(free_spotdb(spotdb)); FREE(free_httpd(httpd)); FREE(free_net(net)); FREE(free_cwdaemon(cwda); cwda = NULL); #ifdef HAVE_SNDFILE FREE(free_ssbd(ssbd); ssbd = NULL); FREE(free_dsp(dsp)); #endif FREE(free_sound()); FREE(free_fft(fft)); // after ssb FREE(free_threadpipe(tpipe)); FREE(free_fifo(glog)); FREE(free_fifo(gtalk)); FREE(free_namelist()); FREE(free_all_itrms()); FREE(shrink_memory(1)); FREE(free_history_lists()); FREE(free_term_specs()); FREE(free_keymaps()); FREE(free_conv_table()); FREE(check_bottom_halves()); FREE(check_bottom_halves()); FREE(destroy_terminal(CBA0)); #ifdef HAVE_SDL FREE(free_sdl()); #endif if (tucnak_home) mem_free(tucnak_home); FREE(shutdown_trans()); FREE(terminate_osdep()); FREE(free_rc()); FREE(check_memory_leaks()); FREE(free_ghash()); FREE(free_iarray()); FREE(free_debug()); } int main(int argc, char *argv[]) { #if 0 GString *gs = g_string_new(""); zg_string_eprintfa("", gs, "%b", "A", 1); g_string_assign(gs, ""); zg_string_eprintfa("", gs, "%b", "AA", 2); g_string_assign(gs, ""); zg_string_eprintfa("", gs, "%b", "AAA", 3); g_string_assign(gs, ""); zg_string_eprintfa("", gs, "%b", "AAAA", 4); #endif #if 0 char s[20], t[20]; strcpy(s, " abc "); strcpy(t, s); printf("'%s' '%s'\n", s, trim(t)); strcpy(s, " abc"); strcpy(t, s); printf("'%s' '%s'\n", s, trim(t)); strcpy(s, "abc "); strcpy(t, s); printf("'%s' '%s'\n", s, trim(t)); strcpy(s, " abc "); strcpy(t, s); printf("'%s' '%s'\n", s, trim(t)); strcpy(s, " abc"); strcpy(t, s); printf("'%s' '%s'\n", s, trim(t)); strcpy(s, "abc "); strcpy(t, s); printf("'%s' '%s'\n", s, trim(t)); strcpy(s, "abc"); strcpy(t, s); printf("'%s' '%s'\n", s, trim(t)); strcpy(s, " "); strcpy(t, s); printf("'%s' '%s'\n", s, trim(t)); strcpy(s, " "); strcpy(t, s); printf("'%s' '%s'\n", s, trim(t)); strcpy(s, ""); strcpy(t, s); printf("'%s' '%s'\n", s, trim(t)); printf("'%s' '%s'\n", NULL, trim(NULL)); exit(0); #endif #if 0 char str[256]; printf("%s\n", sunrisesetstr(str, 50.1, -100)); printf("%s\n", sunrisesetstr(str, 50.1, 0)); printf("%s\n", sunrisesetstr(str, 50.1, 100)); return 0; #endif #if 0 g_thread_init(NULL); debug_type=2; init_debug(); int thr=2; ST_START; similar_calls("OK2M", "OK1ZIA",0,thr,1); similar_calls("OK2M", "OK1KRQ",0,thr,1); similar_calls("OK2M", "OK2",0,thr,1); similar_calls("OK2M", "OKM",0,thr,1); similar_calls("OK2M", "O2M",0,thr,1); similar_calls("OK2M", "K2M",0,thr,1); similar_calls("OK2M", "KO2M",0,thr,1); similar_calls("OK2M", "OK2X",0,thr,1); similar_calls("OK2M", "OKXM",0,thr,1); similar_calls("OK2M", "OX2M",0,thr,1); similar_calls("OK2M", "XK2M",0,thr,1); similar_calls("OK2M", "OK2MX",0,thr,1); similar_calls("OK2M", "OK2XM",0,thr,1); similar_calls("OK2M", "OKX2M",0,thr,1); similar_calls("OK2M", "OXK2M",0,thr,1); similar_calls("OK2M", "XOK2M",0,thr,1); similar_calls("OK2M", "DK2M",0,thr,1); similar_calls("OK2M", "DK3M",0,thr,1); similar_calls("OK2M", "DK3O",0,thr,1); similar_calls("OK2M", "DL2M",0,thr,1); similar_calls("OK2M", "DL3M",0,thr,1); similar_calls("OK2M", "DL3O",0,thr,1); similar_calls("OK1KRQ", "OK1ZIA",0,thr,1); similar_calls("OK1KRQ", "OK1KRQ",0,thr,1); similar_calls("OK1KRQ", "OK1KR",0,thr,1); similar_calls("OK1KRQ", "OK1KQ",0,thr,1); similar_calls("OK1KRQ", "OK1RQ",0,thr,1); similar_calls("OK1KRQ", "OKKRQ",0,thr,1); similar_calls("OK1KRQ", "K1KRQ",0,thr,1); similar_calls("OK1KRQ", "OK1KQR",0,thr,1); similar_calls("OK1KRQ", "OK1RKQ",0,thr,1); similar_calls("OK1KRQ", "OKK1RQ",0,thr,1); similar_calls("OK1KRQ", "O1KKRQ",0,thr,1); similar_calls("OK1KRQ", "KO1KRQ",0,thr,1); similar_calls("OK1KRQ", "OK1KRX",0,thr,1); similar_calls("OK1KRQ", "OK1KXQ",0,thr,1); similar_calls("OK1KRQ", "OK1XRQ",0,thr,1); similar_calls("OK1KRQ", "OKXKRQ",0,thr,1); similar_calls("OK1KRQ", "OX1KRQ",0,thr,1); similar_calls("OK1KRQ", "XK1KRQ",0,thr,1); similar_calls("OK1KRQ", "OK1Q",0,thr,1); similar_calls("OM3I", "OM3RLA",0,thr,1); similar_calls("OM3I", "OM3RL",0,thr,1); similar_calls("OM3I", "OM3R",0,thr,1); similar_calls("OM3RKA", "OM5MZ",0,thr,1); similar_calls("HG10P", "HG3A",0,thr,1); similar_calls("HG3A", "HG10P",0,thr,1); ST_STOP; return; #endif #if 0 GThread *thr; GError *gerr; gpointer ex; g_thread_init(NULL); thr=g_thread_create(func, NULL, 1,&gerr); ex=g_thread_join(thr); printf("thread exited %p\n", ex); return(0); #endif #if 0 { void *p; init_debug(); p=mem_alloc(10); p=mem_realloc(p, 20); mem_free(p); free_debug(); check_memory_leaks(); exit(0); } #endif #if 0 char *s; g_thread_init(NULL); init_debug(); s=g_strdup(""); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("."); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("/"); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("./"); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("/."); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("a./"); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("a/./"); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("./b"); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("a./b"); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("a//b"); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("a/../b"); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("../b/c"); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("a/.."); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("a/../"); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); exit(1); #endif path_to_exe = argv[0]; ac = argc; av = (char **)argv; starting_sbrk = (char *)sbrk(0); /* dbg("\n\n");*/ select_loop(init); terminate_all_subsystems(); return retval; } void shrink_memory(int u) { /* shrink_dns_cache(u); shrink_format_cache(u); garbage_collection(u); delete_unused_format_cache_entries();*/ } tucnak2-2.48/src/header.h0000644000175000017500000036434511727646265012166 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2011 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __HEADER_H #define __HEADER_H #ifdef _MSC_VER #include "msvc.h" #endif #ifdef __MINGW32__ #include "mingw.h" #endif #include #include #ifdef HAVE_CONFIG_H #include "../config.h" #endif #ifndef __USE_POSIX #define __USE_POSIX #endif #ifndef __USE_POSIX2 #define __USE_POSIX2 #endif #ifndef __USE_MISC #define __USE_MISC #endif #ifndef __USE_BSD #define __USE_BSD #endif #ifdef HAVE_MATH_H #include #endif #ifdef HAVE_SYS_IOCTL_H #include #endif #include #include #include #ifdef HAVE_UNISTD_H #include #endif #include #include #include #ifdef HAVE_LIMITS_H #include #endif //#include not in msvc10 #include #include #include "os_dep.h" #ifdef TIME_WITH_SYS_TIME #ifdef HAVE_SYS_TIME_H #include #endif #ifdef HAVE_TIME_H #include #endif #else #if defined(TM_IN_SYS_TIME) && defined(HAVE_SYS_TIME_H) #include #elif defined(HAVE_TIME_H) #include #endif #endif #include #ifdef HAVE_FCNTL_H #include #endif #ifdef HAVE_DIRENT_H #include #endif #include #ifdef HAVE_SYS_WAIT_H #include #endif #ifdef HAVE_SYS_SELECT_H #include #endif #ifdef HAVE_NETINET_IN_SYSTM_H #include #else #ifdef HAVE_NETINET_IN_SYSTEM_H #include #endif #endif #ifdef HAVE_NETDB_H #include #endif #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_WINSOCK2_H #include #endif #ifdef HAVE_NETINET_IN_H #include #endif #ifdef HAVE_ARPA_INET_H #include #endif #ifdef HAVE_NETINET_IP_H #include #endif #ifdef HAVE_UTIME_H #include #endif #ifdef HAVE_PWD_H #include #endif #ifdef HAVE_GRP_H #include #endif #ifdef HAVE_REGEX_H #include #endif #ifdef HAVE_PTY_H #include #endif #ifdef __CYGWIN__ #include #endif #ifdef HAVE_DLFCN_H #include #endif #ifdef HAVE_SDL #include #include #include #endif #ifdef HAVE_PNG_H #include #endif #ifdef HAVE_SYS_SOUNDCARD_H #include #define HAVE_OSS #endif #ifdef HAVE_STDINT_H #include #endif #ifdef HAVE_INTTYPES_H #include #endif #ifdef HAVE_SNDFILE #include #endif #ifdef HAVE_LINUX_PPDEV_H # include # include #endif #ifdef HAVE_ALSA #define ALSA_PCM_NEW_HW_PARAMS_API #define ALSA_PCM_NEW_SW_PARAMS_API #include #endif #ifdef HAVE_HAMLIB #include #include #endif #ifdef HAVE_LIBFFTW3 #include #endif #ifdef __GLIBC__ #include #endif #ifdef HAVE_ICONV_H #include #endif #ifndef HAVE_UINT32_T #if SIZEOF_CHAR == 4 typedef unsigned char uint32_t; #elif SIZEOF_SHORT == 4 typedef unsigned short uint32_t; #elif SIZEOF_INT == 4 typedef unsigned int uint32_t; #elif SIZEOF_LONG == 4 typedef unsigned long uint32_t; #elif defined(HAVE_LONG_LONG) && SIZEOF_LONG_LONG == 4 typedef unsigned long long uint32_t; #else #error You have no 32-bit integer type. Get in touch with reality. #endif #endif #ifdef HAVE_LONG_LONG #define longlong long long #else #define longlong long #endif /* integer type same size as void * */ #undef vint #if SIZEOF_SHORT == SIZEOF_VOID_P typedef short vint; #elif SIZEOF_INT == SIZEOF_VOID_P typedef int vint; #elif SIZEOF_LONG == SIZEOF_VOID_P typedef long vint; #elif defined(HAVE_LONG_LONG) && SIZEOF_LONG_LONG == SIZEOF_VOID_P typedef long long vint; #else #error You have no integer type of size void * #endif #ifdef TERMIOS_H #include #endif #ifdef HAVE_GETOPT_H #include #endif #ifdef HAVE_LIBFTDI #include #endif #include "setup.h" #include "interfaces.h" #include "iarray.h" #define DUMMY ((void *)-1L) #ifdef _MSC_VER #define __MSVC2 #include "msvc.h" #undef __MSVC2 #endif #ifdef __MINGW32__ #define __MINGW2 #include "mingw.h" #undef __MINGW2 #endif #ifdef __CYGWIN__ /* cfmakeraw is missing in cygwin. If fails in future versions of cywin, remove it */ void cfmakeraw (struct termios *); #endif /* for BSD */ #ifndef SOUND_MIXER_LINE #define SOUND_MIXER_LINE 6 #endif #ifndef SOUND_MIXER_MIC #define SOUND_MIXER_MIC 7 #endif #undef USE_FFT #if defined(HAVE_LIBFFTW3) && defined(HAVE_SDL) #define USE_FFT #endif /* FIXME #ifndef HAVE_SOCKLEN_T typedef unsigned int __socklen_t; typedef __socklen_t socklen_t; #define __socklen_t_defined #endif */ /*#ifndef _MSC_VER int fileno(FILE *stream); #endif*/ struct menu_item; struct qso; struct tmpqso; struct cwdaemon; struct cq; struct itrm; struct refresh; struct net; struct conn; struct gpm_mouse_spec; struct rotar; struct sconn; struct ssbd; struct subwin; struct ntpq; struct zstring; struct config_rotar; enum extcq; struct qrv_item; struct qrvdb; struct spot; struct chband; struct httpconn; #ifdef _MSC_VER typedef void * cba_t; #define GETCBA(var, item) (var) #define SETCBA(var, item, value) var = (void*)(value) #define CBA0 NULL #else typedef union cba_t{ char *charp; void *void_; int int_; struct menu_item *menu_item; struct qso *qso; struct tmpqso *tmpqso; struct cwdaemon *cwda; struct cq *cq; struct itrm *itrm; struct refresh *refresh; struct net *net; struct conn *conn; struct gpm_mouse_spec *gpm_mouse_spec; struct rotar *rotar; struct sconn *sconn; struct ssbd *ssbd; struct subwin *subwin; struct ntpq *ntpq; struct config_rotar *config_rotar; struct qrv_item *qrv_item; struct chband *chband; struct httpconn *httpconn; }cba_t; //#define TOCBA(arg) ((union cba_t)(arg)) #define GETCBA(var, item) (var.item) #define SETCBA(var, item, value) var.item = (value) //#define CBA0 inline_cba0() #define CBA0 ((union cba_t)0) #endif #define MUTEX_INIT(x) x##_mutex = g_mutex_new() #define MUTEX_FREE(x) g_mutex_free(x##_mutex) #ifdef LEAK_DEBUG_LIST #define MUTEX_DEFINE(x) \ GMutex *x##_mutex; \ char *x##_file; \ int x##_line; #define MUTEX_LOCK(x) { \ g_mutex_lock(x##_mutex); \ x##_file = __FILE__; \ x##_line = __LINE__; \ } #define MUTEX_TRYLOCK(x) { \ g_mutex_trylock(x##_mutex); \ x##_file = __FILE__; \ x##_line = __LINE__; \ } #define MUTEX_UNLOCK(x) g_mutex_unlock(x##_mutex) #else #define MUTEX_DEFINE(x) GMutex *x##_mutex #define MUTEX_LOCK(x) g_mutex_lock(x##_mutex) #define MUTEX_TRYLOCK(x) g_mutex_trylock(x##_mutex) #define MUTEX_UNLOCK(x) g_mutex_unlock(x##_mutex) #endif /*#define LOCK(x) dbg(" lock %p %s:%d\n", x##_mutex, __FILE__, __LINE__); g_mutex_lock(x##_mutex) #define UNLOCK(x) dbg(" unlock %p %s:%d\n", x##_mutex, __FILE__, __LINE__); g_mutex_unlock(x##_mutex) */ /* error.c */ extern int debug_type; extern char *debug_filename; void do_not_optimize_here(void *p); void check_memory_leaks(void); void error(char *, ...); void debug_msg(char *, ...); void internal_error( char *, ...); void init_debug(void); void free_debug(void); void dbg(char *m, ...) __attribute__((no_instrument_function)); void trace(int enable, char *m, ...); void sock_debug(int sock, char *m, ...); void dbg_str_hash(GHashTable *hash); extern int errline; extern char *errfile; #define internal_ errfile = __FILE__, errline = __LINE__, internal_error #define debug errfile = __FILE__, errline = __LINE__, debug_msg #define xmalloc malloc #define xfree free #define xrealloc realloc #ifdef LEAK_DEBUG extern long mem_amount; extern long last_mem_amount; #ifndef LEAK_DEBUG_LIST struct alloc_header { int size; }; #else #define MCHK_LEAD 8 #define MCHK_TRAIL 8 #define MCHK_PATTERN ((char)0xee) struct alloc_header { struct alloc_header *next; struct alloc_header *prev; int size; int line; char *file; char *comment; }; #endif #define L_D_S ((sizeof(struct alloc_header) + MCHK_LEAD + 7) & ~7) #endif #ifdef LEAK_DEBUG void *debug_mem_alloc(char *, int, size_t); void debug_mem_free(char *, int, void *); void *debug_mem_realloc(char *, int, void *, size_t); void set_mem_comment(void *, char *, int); void *debug_g_new0(char *, int, size_t); void *debug_g_new(char *, int, size_t); gchar *debug_g_strdup(char *, int, const gchar *); gchar *debug_g_strndup(char *, int, gchar *, gint); gchar *debug_g_strdup_printf(char *, int, gchar *, ...); gchar *debug_g_strdup_vprintf(char *, int, gchar *, va_list args); gchar *debug_g_strconcat(char *, int, ...); #define mem_alloc(x) debug_mem_alloc(__FILE__, __LINE__, x) #define mem_free(x) debug_mem_free(__FILE__, __LINE__, x) #define mem_realloc(x, y) debug_mem_realloc(__FILE__, __LINE__, x, y) #undef g_new0 #define g_new0(x, y) debug_g_new0(__FILE__, __LINE__, sizeof(x)* y) #undef g_new #define g_new(x, y) debug_g_new0(__FILE__, __LINE__, sizeof(x)* y) #define g_free(x) debug_mem_free(__FILE__, __LINE__, x) #define g_realloc(x, y) debug_mem_realloc(__FILE__, __LINE__, x, y) #undef g_renew #define g_renew(t, m, n) debug_mem_realloc(__FILE__, __LINE__, m, sizeof(t) * n) #define g_strdup(x) debug_g_strdup(__FILE__, __LINE__, x) #define g_strndup(x,y) debug_g_strndup(__FILE__, __LINE__, x, y) #define g_strdup_printf(x...) debug_g_strdup_printf(__FILE__, __LINE__, x) #define g_strdup_vprintf(x, y) debug_g_strdup_vprintf(__FILE__, __LINE__, x, y) #define g_strconcat(x...) debug_g_strconcat(__FILE__, __LINE__, x) #else static inline void *mem_alloc(size_t size) { void *p; if (!size) return DUMMY; if (!(p = malloc(size))) { error("ERROR: out of memory (malloc returned NULL)\n"); return NULL; } return p; } static inline void mem_free(void *p) { if (p == DUMMY) return; if (!p) { internal_("mem_free(NULL)"); return; } free(p); } static inline void *mem_realloc(void *p, size_t size) { if (p == DUMMY) return mem_alloc(size); if (!p) { internal_("mem_realloc(NULL, %d)", size); return NULL; } if (!size) { mem_free(p); return DUMMY; } if (!(p = realloc(p, size))) { error("ERROR: out of memory (realloc returned NULL)\n"); return NULL; } return p; } static inline void *debug_mem_alloc(char *f, int l, size_t s) { return mem_alloc(s); } static inline void debug_mem_free(char *f, int l, void *p) { mem_free(p); } static inline void *debug_mem_realloc(char *f, int l, void *p, size_t s) { return mem_realloc(p, s); } static inline void set_mem_comment(void *p, char *c, int l) {} #endif static inline char upcase(char a) { if (a>='a' && a<='z') a -= 0x20; return a; } static inline char lowcase(char a) { if (a>='A' && a<='Z') a += 0x20; return a; } static inline char *lc(char *str){ char *c; if (!str) return str; c=str; while (*c!='\0'){ if (*c>='A' && *c<='Z') *c+=0x20; c++; } return str; } static inline char *uc(char *str){ char *c; if (!str) return str; c=str; while (*c!='\0'){ if (*c>='a' && *c<='z') *c-=0x20; c++; } return str; } static inline char *fixsemi(char *str){ char *c; if (!str) return str; c=str; while (*c!='\0'){ if (*c==';') *c=':'; c++; } return str; } static inline char *chomp(char *s){ int l; l = strlen(s); if (l > 0 && s[l - 1] == '\n') { s[l - 1] = '\0'; l--; } if (l > 0 && s[l - 1] == '\r') s[l - 1] = '\0'; return s; } static inline char *trim(char *s){ char *c; if (!s || !*s) return s; for (c=s+strlen(s)-1; c>s; c--) { if (*c != ' ') break; *c = '\0'; } for (c=s; *c!='\0'; c++) if (*c != ' ') break; return c; } static inline gchar *g_strdup_trim(gchar *s){ gchar *c1, *c2; c1 = g_strdup(s); c2 = g_strdup(trim(c1)); g_free(c1); return c2; } /*static inline int cmpbeg(char *str, char *b) { while (*str && upcase(*str) == upcase(*b)) str++, b++; return !!*b; } */ #if !(defined(LEAK_DEBUG) && defined(LEAK_DEBUG_LIST)) static inline char *memacpy(const char *src, int len) { char *m; if ((m = mem_alloc(len + 1))) { memcpy(m, src, len); m[len] = 0; } return m; } static inline char *stracpy(const char *src) { return src ? memacpy(src, src != DUMMY ? strlen(src) : 0) : NULL; } #else static inline char *debug_memacpy(char *f, int l, char *src, int len) { char *m; if ((m = debug_mem_alloc(f, l, len + 1))) { memcpy(m, src, len); m[len] = 0; } return m; } #define memacpy(s, l) debug_memacpy(__FILE__, __LINE__, s, l) static inline char *debug_stracpy(char *f, int l, char *src) { return src ? debug_memacpy(f, l, src, src != DUMMY ? strlen((char*)src) : 0) : NULL; } #define stracpy(s) debug_stracpy(__FILE__, __LINE__, s) #endif static inline int snprint(char *s, int n, unsigned num) { int q = 1; while (q <= num / 10) q *= 10; while (n-- > 1 && q) *(s++) = num / q + '0', num %= q, q /= 10; *s = 0; return !!q; } static inline int snzprint(char *s, int n, int num) { if (n > 1 && num < 0) *(s++) = '-', num = -num, n--; return snprint(s, n, num); } static inline void add_to_strn(char **s, char *a) { char *p; if (!(p = mem_realloc(*s, strlen(*s) + strlen(a) + 1))) return; strcat(p, a); *s = p; } #define ALLOC_GR 0x100 /* must be power of 2 */ #define init_str() init_str_x(__FILE__, __LINE__) static inline char *init_str_x(char *file, int line) { char *p; if ((p = debug_mem_alloc(file, line, ALLOC_GR))) *p = 0; return p; } static inline void add_to_str(char **s, int *l, char *a) { char *p; int ll = strlen(a); if ((*l & ~(ALLOC_GR - 1)) != ((*l + ll) & ~(ALLOC_GR - 1)) && (!(p = mem_realloc(*s, (*l + ll + ALLOC_GR) & ~(ALLOC_GR - 1))) || !(*s = p))) return; strcpy(*s + *l, a); *l += ll; } /*static inline void add_bytes_to_str(char **s, int *l, char *a, int ll) { char *p; if ((*l & ~(ALLOC_GR - 1)) != ((*l + ll) & ~(ALLOC_GR - 1)) && (!(p = mem_realloc(*s, (*l + ll + ALLOC_GR) & ~(ALLOC_GR - 1))) || !(*s = p))) return; memcpy(*s + *l, a, ll); (*s)[*l += ll] = 0; } */ static inline void add_chr_to_str(char **s, int *l, char a) { char *p; if ((*l & (ALLOC_GR - 1)) == ALLOC_GR - 1 && (!(p = mem_realloc(*s, (*l + 1 + ALLOC_GR) & ~(ALLOC_GR - 1))) || !(*s = p))) return; *(*s + *l) = a; *(*s + ++(*l)) = 0; } static inline void add_num_to_str(char **s, int *l, int n) { char a[64]; snzprint(a, 64, n); add_to_str(s, l, a); } /*static inline void add_knum_to_str(char **s, int *l, int n) { char a[13]; if (n && n / (1024 * 1024) * (1024 * 1024) == n) snzprint(a, 12, n / (1024 * 1024)), strcat(a, "M"); else if (n && n / 1024 * 1024 == n) snzprint(a, 12, n / 1024), strcat(a, "k"); else snzprint(a, 13, n); add_to_str(s, l, a); } */ /*static inline char *copy_string(char **dst, char *src) { if ((*dst = src) && (*dst = mem_alloc(strlen(src) + 1))) strcpy(*dst, src); return *dst; } */ /* Copies at most dst_size chars into dst. Ensures null termination of dst. */ static inline char *safe_strncpy(char *dst, const char *src, size_t dst_size) { strncpy(dst, src, dst_size); if (strlen(src) >= dst_size) dst[dst_size - 1] = 0; return dst; } static inline char *safe_strncpy0(char *dst, const char *src, size_t dst_size) { if (!src) { *dst='\0'; return dst; } strncpy(dst, src, dst_size); if (strlen(src) >= dst_size) dst[dst_size - 1] = 0; return dst; } struct list_head { void *next; void *prev; }; #ifndef HAVE_TYPEOF struct xlist_head { struct xlist_head *next; struct xlist_head *prev; }; #endif #define init_list(x) {(x).next=&(x); (x).prev=&(x);} #define list_empty(x) ((x).next == &(x)) #define del_from_list(x) {((struct list_head *)(x)->next)->prev=(x)->prev; ((struct list_head *)(x)->prev)->next=(x)->next;} #define add_at_pos(p,x) do {(x)->next=(p)->next; (x)->prev=(p); (p)->next=(x); (x)->next->prev=(x);} while(0) #ifdef HAVE_TYPEOF #define add_to_list(l,x) add_at_pos((typeof(x))&(l),(x)) #define foreach(e,l) for ((e)=(l).next; (e)!=(typeof(e))&(l); (e)=(e)->next) #define foreachback(e,l) for ((e)=(l).prev; (e)!=(typeof(e))&(l); (e)=(e)->prev) #else #define add_to_list(l,x) add_at_pos((struct xlist_head *)&(l),(struct xlist_head *)(x)) #define foreach(e,l) for ((e)=(l).next; (e)!=(void *)&(l); (e)=(e)->next) #define foreachback(e,l) for ((e)=(l).prev; (e)!=(void *)&(l); (e)=(e)->prev) #endif #define free_list(l) {while ((l).next != &(l)) {struct list_head *a=(l).next; del_from_list(a); mem_free(a); }} /*static inline int isA(char c) { return (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9') || c == '_' || c == '-'; } */ static inline int casecmp(char *c1, char *c2, int len) { int i; for (i = 0; i < len; i++) if (upcase(c1[i]) != upcase(c2[i])) return 1; return 0; } static inline int can_write(int fd) { fd_set fds; struct timeval tv = {0, 0}; FD_ZERO(&fds); FD_SET(fd, &fds); return select(fd + 1, NULL, &fds, NULL, &tv); } static inline int can_read(int fd) { fd_set fds; struct timeval tv = {0, 0}; FD_ZERO(&fds); FD_SET(fd, &fds); return select(fd + 1, &fds, NULL, NULL, &tv); } /* os_dep.c */ struct terminal; struct open_in_new { char *text; char *hk; void (*fn)(struct terminal *term, char *, char *); }; int get_system_env(void); int is_xterm(void); int can_twterm(void); int term_get_terminal_size(int, int *, int *); void handle_terminal_resize(int, void (*)(cba_t)); void unhandle_terminal_resize(int); void set_bin(int); int c_pipe(int *); int get_input_handle(void); int get_output_handle(void); int get_ctl_handle(void); void want_draw(void); void done_draw(void); void terminate_osdep(void); void *handle_mouse(int, void (*)(void *, char *, int), void *); void unhandle_mouse(void *); int check_file_name( char *); int start_thread(void (*)(void *, int), void *, int); char *get_clipboard_text(void); void set_clipboard_text(char *); void set_window_title( char *); char *get_window_title(void); int is_safe_in_shell( char); void check_shell_security( char **); void block_stdin(void); void unblock_stdin(void); int exe(char *); int resize_window(int, int); int can_resize_window(int); int can_open_os_shell(int); struct open_in_new *get_open_in_new(int); void disable_screensaver(void); /* ghash.c */ typedef struct _THashNode THashNode; typedef struct _THashTable THashTable; struct _THashNode { gpointer key; gpointer value; THashNode *next; }; struct _THashTable { gint size; gint nnodes; guint frozen; THashNode **nodes; GHashFunc hash_func; GCompareFunc key_compare_func; }; void init_ghash(void); void free_ghash(void); THashTable *t_hash_table_new (GHashFunc hash_func, GCompareFunc key_compare_func); void t_hash_table_destroy (THashTable *hash_table); void t_hash_table_foreach (THashTable *hash_table, GHFunc func, gpointer user_data); void t_hash_table_insert (THashTable *hash_table, gpointer key, gpointer value); void t_hash_table_remove (THashTable *hash_table, gconstpointer key); gpointer t_hash_table_lookup (THashTable *hash_table, gconstpointer key); gboolean t_hash_table_lookup_extended (THashTable *hash_table, gconstpointer lookup_key, gpointer *orig_key, gpointer *value); guint t_hash_table_foreach_remove (THashTable *hash_table, GHRFunc func, gpointer user_data); guint t_hash_table_size (THashTable *hash_table); /* select.c */ #ifndef FD_SETSIZE #define FD_SETSIZE 1024 #endif typedef long ttime; typedef unsigned tcount; extern int terminate; /*long select_info(int);*/ void select_loop(void (*)(void)); int register_bottom_half(void (*)(cba_t), cba_t cba); void check_bottom_halves(void); #ifdef LEAK_DEBUG_LIST int debug_install_timer(char *file, int line, ttime, void (*)(cba_t), cba_t cba, char *fname); /* todo argument callbacku */ #define install_timer(x, y, z) debug_install_timer(__FILE__, __LINE__, x, y, z, #y) void debug_kill_timer(char *file, int line, int timer_id); #define kill_timer(x) debug_kill_timer(__FILE__, __LINE__, x) void debug_set_handlers(char *file, int line, int, void (*)(cba_t), void (*)(cba_t), void (*)(cba_t), cba_t cba, char *read_fname, char *write_fname, char *error_fname); #define set_handlers(n, r, w, x, a) debug_set_handlers(__FILE__, __LINE__, n, r, w, x, a, #r, #w, #x); void debug_tcp_disconnect(char *file, int line, struct conn *conn); #define tcp_disconnect(a) debug_tcp_disconnect(__FILE__, __LINE__, (a)) #else int install_timer(ttime, void (*)(cba_t), cba_t cba); /* todo argument callbacku */ void kill_timer(int); void set_handlers(int, void (*)(cba_t), void (*)(cba_t), void (*)(cba_t), cba_t cba); void tcp_disconnect(struct conn *conn); #endif ttime get_timer_time(int); ttime get_time(void); //tODO //void debug_set_handlers(char *file, int line, int, void (*)(cba_t), void (*)(cba_t), void (*)(cba_t), cba_t cba); //#define set_handlers(n, r, w, x, a) debug_set_handlers(__FILE__, __LINE__, n, r, w, x, a); #define H_READ 0 #define H_WRITE 1 #define H_ERROR 2 #define H_DATA 3 void *get_handler(int, int); void install_signal_handler(int, void (*)(cba_t), cba_t, int); void set_sigcld(void); extern struct timeval start; #define ST_START gettimeofday(&start, NULL) #define ST_STOP {\ struct timeval stop;\ int sec, usec;\ gettimeofday(&stop, NULL);\ usec=stop.tv_usec-start.tv_usec;\ sec=stop.tv_sec-start.tv_sec;\ if (usec<0){usec+=1000000;sec--;}\ dbg("stopky: %s: %d.%06d \n", __FUNCTION__, sec,usec);\ } // recursive #define RST_START struct timeval rstart; gettimeofday(&rstart, NULL) #define RST_STOP {\ struct timeval stop;\ int sec, usec;\ gettimeofday(&stop, NULL);\ usec=stop.tv_usec-rstart.tv_usec;\ sec=stop.tv_sec-rstart.tv_sec;\ if (usec<0){usec+=1000000;sec--;}\ dbg("stopky: %s: %d.%06d \n", __FUNCTION__, sec,usec);\ } /* kbd.c */ #define BM_BUTT 3 #define BM_EBUTT 7 #define B_LEFT 1 #define B_MIDDLE 2 #define B_RIGHT 3 #define B_WHUP 4 #define B_WHDOWN 5 #define BM_ACT 0x38 #define B_DOWN 0 #define B_UP 8 #define B_DRAG 0x10 #define B_MOVE 0x20 #define KBD_ENTER 0x100 #define KBD_BS 0x101 #define KBD_TAB 0x102 #define KBD_ESC 0x103 #define KBD_LEFT 0x104 #define KBD_RIGHT 0x105 #define KBD_UP 0x106 #define KBD_DOWN 0x107 #define KBD_INS 0x108 #define KBD_DEL 0x109 #define KBD_HOME 0x10a #define KBD_END 0x10b #define KBD_PGUP 0x10c #define KBD_PGDN 0x10d #define KBD_F1 0x120 #define KBD_F2 0x121 #define KBD_F3 0x122 #define KBD_F4 0x123 #define KBD_F5 0x124 #define KBD_F6 0x125 #define KBD_F7 0x126 #define KBD_F8 0x127 #define KBD_F9 0x128 #define KBD_F10 0x129 #define KBD_F11 0x12a #define KBD_F12 0x12b #define KBD_CTRL_C 0x200 #define KBD_SHIFT 1 #define KBD_CTRL 2 #define KBD_ALT 4 void handle_trm(int, int, int, int, int); void free_all_itrms(void); void resize_terminal(cba_t); void dispatch_special( char *); void kbd_ctrl_c(void); int is_blocked(void); void itrm_safe_abort(void); /* terminal.c */ /* UTF-8 */ typedef uint32_t unicode_val; /* UCS/Unicode replacement character. */ #define UCS_NO_CHAR ((unicode_val) 0xFFFD) typedef unsigned short chr; struct event { long ev; long x; long y; long b; long mx; long my; }; #define EV_INIT 0 #define EV_KBD 1 #define EV_MOUSE 2 #define EV_REDRAW 3 #define EV_RESIZE 4 #define EV_ABORT 5 #define EV_SDLRESIZE 6 #define EV_SKIP 7 struct window { struct window *next; struct window *prev; void (*handler)(struct window *, struct event *, int fwd); void *data; int xp, yp; struct terminal *term; }; #define MAX_TERM_LEN 16 /* this must be multiple of 8! (alignment problems) */ #define MAX_CWD_LEN 8192 /* this must be multiple of 8! (alignment problems) */ #define ENV_XWIN 1 #define ENV_SCREEN 2 #define ENV_OS2VIO 4 #define ENV_BE 8 #define ENV_TWIN 16 #undef FALL struct terminal { int master; int fdin; int fdout; int x; int y; int environment; char term[MAX_TERM_LEN]; char cwd[MAX_CWD_LEN]; unsigned *screen; unsigned *last_screen; struct term_spec *spec; int cx; int cy; int lcx; int lcy; int dirty; int redrawing; int blocked; char *input_queue; int qlen; /*struct list_head windows;*/ struct window windows; char *title; /* Something weird regarding the UTF8 I/O. */ struct { unicode_val ucs; int len; int min; } utf_8; #ifdef FALL int *fall; #endif }; extern struct terminal *term; struct term_spec { struct term_spec *next; struct term_spec *prev; char term[MAX_TERM_LEN]; int mode; int m11_hack; int restrict_852; int block_cursor; int col; int utf_8_io; int charset; }; #define TERM_DUMB 0 #define TERM_VT100 1 #define TERM_LINUX 2 #define TERM_KOI8 3 #define ATTR_FRAME 0x8000 extern struct term_spec term_specs; int hard_write(int, char *, int); int hard_read(int, char *, int); char *get_cwd(void); void set_cwd(char *); struct terminal *init_term(int, int, void (*)(struct window *, struct event *, int)); void sync_term_specs(void); struct term_spec *new_term_spec(char *); void free_term_specs(void); void destroy_terminal(cba_t); void redraw_terminal(cba_t); void redraw_terminal_all(void); void redraw_terminal_cls(void); void redraw_later(void); /*void cls_redraw_all_terminals(void);*/ void redraw_from_window(struct window *); void redraw_below_window(struct window *); void add_window(void (*)(struct window *, struct event *, int), void *); void add_window_at_pos(void (*)(struct window *, struct event *, int), void *, struct window *); void delete_window(struct window *); void delete_window_ev(struct window *, struct event *ev); void set_window_ptr(struct window *, int, int); void get_parent_ptr(struct window *, int *, int *); struct window *get_root_window(void); /*void add_empty_window(void (*)(void *), void *);*/ void term_redraw_screen(void); /*void redraw_all_terminals(void);*/ void set_char(int, int, unsigned); void set_last_char(int, int, unsigned); unsigned get_char(int, int); void set_color(int, int, unsigned); void set_only_char(int, int, unsigned); void set_line(int, int, int, chr *); void set_line_color(int, int, int, unsigned); void fill_area(int, int, int, int, unsigned); void fill_lastarea(int x, int y, int xw, int yw, unsigned c); void draw_frame(int, int, int, int, unsigned, int); void print_text(int, int, int, char *, unsigned); /* todo, ale asi nikoli jen smazat term */ void set_cursor(int, int, int, int); /*void destroy_all_terminals(void);*/ void block_itrm(int); int unblock_itrm(int); void exec_thread(char *, int); void close_handle(cba_t cba); void set_ctest_title(void); #define TERM_FN_TITLE 1 #define TERM_FN_RESIZE 2 void exec_on_terminal(char *, char *, int); void set_terminal_title(char *); void do_terminal_function(char, char *); void timer_redraw(cba_t); #define FRAME_URDL 0x80c5 #define FRAME_UDL 0x80b4 #define FRAME_URD 0x80c3 #define FRAME_URL 0x80c1 #define FRAME_RDL 0x80c2 #define FRAME_RL 0x80c4 /* language.c */ #include "language.h" extern char dummyarray[]; extern int current_language; void init_trans(void); void shutdown_trans(void); char *get_text_translation(char *); char *get_english_translation(char *); void set_language(int); int n_languages(void); char *language_name(int); #define _(_x_) get_text_translation(_x_) #define CTEXT(x) (dummyarray + x) #define VTEXT(_x_) get_text_translation(CTEXT(_x_)) /* main.c */ #define RET_OK 0 #define RET_ERROR 1 #define RET_SIGNAL 2 #define RET_SYNTAX 3 #define RET_FATAL 4 extern int retval; extern int first_use; extern int first_contest_def; extern char *starting_sbrk; extern char *path_to_exe; void unhandle_terminal_signals(void); void unhandle_basic_signals(void); int term_attach_terminal(int, int, int); void shrink_memory(int); void handle_basic_signals(struct terminal *term); void sig_segv(cba_t cba); /* types.c */ /* session.c */ #define TMPQ aband->tmpqsos[0] struct inputln; struct band; struct skedwin_data; /* also used for ctest->cq->type */ enum modes{ /* TX_RX */ MOD_NONE = 0, MOD_SSB_SSB, MOD_CW_CW, MOD_SSB_CW, MOD_CW_SSB, MOD_AM_AM, MOD_FM_FM, MOD_RTTY_RTTY, MOD_SSTV_SSTV, MOD_ATV_ATV /* 9 */ }; enum extcq { EC_NONE, EC_ODD, EC_EVEN, EC_1ST, EC_2ND }; struct session { struct window *win; int id; int exit_query; GPtrArray *subwins; struct subwin *ontop, *ontop2; gint focused, height1, height2, y1, y2; gint timer_id; struct inputln *il; /* inputline without contest for C_W testing ETC.. */ GPtrArray *qs; MUTEX_DEFINE(qs); // GMutex *qs_mutex; //#ifdef LEAK_DEBUG_LIST // char *qs_file; // int qs_line; //#endif GThread *qs_thread; int qs_thread_break; int qs_max_matches; gchar *qs_str; /* modified only from main thread without cwqs worker thread, no mutex needed */ gchar *qs_master; enum modes mode; gint last_cq_timer_id; struct cq *last_cq; struct cq *ac_cq; gint extcq_break_timer_id; enum extcq extcq; int tx; #ifdef HAVE_SDL SDL_Surface *icon, *oldicon; #else void *icon, *oldicon; #endif GHashTable *hicalls; /* highlighted callsigns in shell */ int tune; int redraw_timer_id; #ifdef HAVE_SDL int update_rotar_timer_id; #endif struct skedwin_data *skedwdata; int skedw_timer_id; struct dw_item *adwi; char *adxc; char *asunriseset; int aqrb, aqtf; #ifdef FALL int fall_id; #endif }; extern struct session *gses; extern struct window *gseswin; struct session *create_session(struct window *win); void *create_session_info(int, char *, int *); void rxtx(void); void esc(void); void rx(void); int preferred_func(struct event *ev); void win_func(struct window *, struct event *, int); void draw_root_window(void); void send_event(struct event *ev); void add_date_time(struct band *band); void fix_date_time(struct band *band); void process_input(void *,char *, int cq); void draw_time(void); void time_func(cba_t); void print_tucnak(int x, int y); void net_timer_redraw(cba_t); int load_hicalls_from_file(char *filename); int save_hicalls_to_file(char *filename); void after_callsign(struct band *band,char *c, char *oldtmpqcall); void after_exc(struct band *band,char *c); void after_locator(struct band *band,char *c); void after_nr(struct band *band,char *c); #ifdef FALL void fall_func(union cba_t cba); #endif /* bfu.c */ struct memory_list { int n; void *p[1]; }; struct memory_list *getml(void *, ...); void add_to_ml(struct memory_list **, ...); void freeml(struct memory_list *); #define MENU_FUNC (void (*)(cba_t, cba_t)) #define CALLBACK_FUNC (void (*)(cba_t)) extern char m_bar; #define M_BAR (&m_bar) struct menu_item { char *text; char *rtext; char *hotkey; void (*func)(cba_t, cba_t); cba_t data; int in_m; /* 0 menu zmizi po vyberu */ int free_i; }; struct menu { int selected; int view; int xp, yp; int x, y, xw, yw; int ni; cba_t data; struct window *win; struct menu_item *items; }; struct mainmenu { int selected; int sp; int ni; cba_t data; struct window *win; struct menu_item *items; }; struct history_item { struct history_item *next; struct history_item *prev; char d[1]; }; struct history { int n; struct list_head items; }; #define D_END 0 #define D_CHECKBOX 1 #define D_FIELD 2 #define D_FIELD_PASS 3 #define D_BUTTON 4 #define D_BOX 5 #define D_CHECKBOX3 6 #define B_ENTER 1 #define B_ESC 2 struct dialog_item_data; struct dialog_data; struct dialog_item { int type; int gid, gnum; /* for buttons: gid - flags B_XXX */ /* for fields: min/max */ /* for box: gid is box height */ int (*fn)(struct dialog_data *, struct dialog_item_data *); struct history *history; int dlen; /* data length */ int maxl; char *data; void *udata; /* for box: holds list */ char *text; char *msg; int wrap; int align; int tabcompl, tabi; }; struct dialog_item_data { int x, y, l; int vpos, cpos; int checked; struct dialog_item *item; struct list_head history; struct history_item *cur_hist; char *cdata; }; #define EVENT_PROCESSED 0 struct dialog { char *title; void (*fn)(struct dialog_data *); void (*fn2)(struct dialog_data *); int (*handle_event)(struct dialog_data *, struct event *); void (*abort)(struct dialog_data *); void *udata; void *udata2; int align; void (*refresh)(void *); void *refresh_data; int y0; struct dialog_item items[1]; }; struct dialog_data { struct window *win; struct dialog *dlg; int x, y, xw, yw; int n; int selected; struct memory_list *ml; int min, max, yy, w, rw, ofs; struct dialog_item_data items[1]; }; void menu_func(struct window *, struct event *, int); void mainmenu_func(struct window *, struct event *, int); void dialog_func(struct window *, struct event *, int); struct menu_item *new_menu(int); void add_to_menu(struct menu_item **, char *, char *, char *, void (*)(cba_t, cba_t), cba_t, int); void do_menu(struct menu_item *items, cba_t data); /* todo data=ses */ void do_menu_selected(struct menu_item *, cba_t data, int); void do_mainmenu(struct menu_item *, cba_t, int); void do_dialog(struct dialog *, struct memory_list *); int check_number(struct dialog_data *, struct dialog_item_data *); int check_qrg(struct dialog_data *, struct dialog_item_data *); int check_nonempty(struct dialog_data *, struct dialog_item_data *); void max_text_width(struct terminal *, char *, int *); void min_text_width(struct terminal *, char *, int *); void dlg_format_text(struct terminal *, struct terminal *, char *, int, int *, int, int *, int, int); void max_buttons_width(struct terminal *, struct dialog_item_data *, int, int *); void min_buttons_width(struct terminal *, struct dialog_item_data *, int, int *); void dlg_format_buttons(struct terminal *, struct terminal *, struct dialog_item_data *, int, int, int *, int, int *, int); void dlg_format_buttons1(struct terminal *, struct terminal *, struct dialog_item_data *, int, int, int *, int, int *, int); void checkboxes_width(struct terminal *, char **, int *, void (*)(struct terminal *, char *, int *)); void dlg_format_checkbox(struct terminal *, struct terminal *, struct dialog_item_data *, int, int *, int, int *, char *); void dlg_format_checkboxes(struct terminal *, struct terminal *, struct dialog_item_data *, int, int, int *, int, int *, char **); void dlg_format_field(struct terminal *, struct terminal *, struct dialog_item_data *, int, int *, int, int *, int); void max_group_width(struct terminal *, char **, struct dialog_item_data *, int, int *); void min_group_width(struct terminal *, char **, struct dialog_item_data *, int, int *); void dlg_format_group(struct terminal *, struct terminal *, char **, struct dialog_item_data *, int, int, int *, int, int *); void dlg_format_group1(struct terminal *, struct terminal *, char **, struct dialog_item_data *, int, int, int *, int, int *); void dlg_format_box(struct terminal *, struct terminal *, struct dialog_item_data *, int, int *, int, int *, int); void checkbox_list_fn(struct dialog_data *); void group_fn(struct dialog_data *); void center_dlg(struct dialog_data *); void draw_dlg(struct dialog_data *); void display_dlg_item(struct dialog_data *, struct dialog_item_data *, int); int ok_dialog(struct dialog_data *, struct dialog_item_data *); int cancel_dialog(struct dialog_data *, struct dialog_item_data *); void msg_box(struct memory_list *, char *, int, ...); void input_field_fn(struct dialog_data *); void input_field(struct memory_list *, char *, char *, char *, char *, void *,struct history *, int, char *, int, int, int (*)(struct dialog_data *, struct dialog_item_data *), void (*)(void *, char *), void (*)(void *), int tabcompl); void add_to_history(struct history *, char *); void box_sel_move(struct dialog_item_data *, int ); void show_dlg_item_box(struct dialog_data *, struct dialog_item_data *); void box_sel_set_visible(struct dialog_item_data *, int ); void errbox(char *text, int errcode, ...); void menu_save_rc(cba_t cba); void dlg_pf_init(int phase, struct dialog_data *dlgd); void dlg_pf_group(int phase, struct dialog_data *dlgd, int cnt); void dlg_pf_buttons(int phase, struct dialog_data *dlgd, int cnt); void dlg_pf_fn(struct dialog_data *dlgd); int do_tab_compl(struct dialog_item_data *di, int tabi); /* menu.c */ #define CONDGFREE(item) { if (item) { g_free(item); item=NULL; }} #define STORE_STR(base,item) \ if (base->item) g_free(base->item); \ base->item = g_strdup(item); #define STORE_STR_UC(base,item) \ if (base->item) g_free(base->item); \ base->item = g_strdup(item); \ uc(base->item); #define STORE_STR_FS(base,item) \ if (base->item) g_free(base->item); \ base->item = g_strdup(item); \ fixsemi(base->item) #define STORE_STR_FS_UC(base,item) \ if (base->item) g_free(base->item); \ base->item = g_strdup(item); \ fixsemi(base->item); \ uc(base->item); #define STORE_STR2(dbase,sbase,item) \ if (dbase->item) g_free(dbase->item); \ dbase->item = g_strdup(sbase->item); #define STORE_STR2_UC(dbase,sbase,item) \ if (dbase->item) g_free(dbase->item); \ dbase->item = g_strdup(sbase->item); \ uc(dbase->item); #define STORE_INT(base, item) \ base->item = item; #define STORE_SINT(base, item) \ base->item = atoi(item##_str); #define STORE_SHEX(base, item) \ base->item = strtol(item##_str, NULL, 16); #define STORE_SDBL(base, item) \ base->item = atof(item##_str); #define STORE_STR3(base,item,src,first) \ if (base->item) g_free(base->item); \ base->item = g_strdup(ztokenize(src, first)); #define LOAD_STR(base,item) \ safe_strncpy0(item, base->item, sizeof(item)); #define LOAD_INT(base,item) \ item = base->item #define LOAD_SINT(base,item) \ g_snprintf(item##_str, sizeof(item##_str), "%d", base->item) #define LOAD_SHEX4(base,item) \ g_snprintf(item##_str, sizeof(item##_str), "%04x", base->item) #define EQSO_LEN 15 struct tmpqso; //int fileno(FILE *stream); void activate_bfu_technology(int); void free_history_lists(void); void exit_prog(cba_t cba); void menu_play_last(cba_t cba); void menu_break_record(cba_t cba); void menu_export_edi(cba_t cba); void menu_export_report(cba_t cba); void menu_export_html(cba_t cba); void menu_export_stats(cba_t cba); void menu_export_titlpage(cba_t cba); void menu_save_all(cba_t cba); void do_edit_menu(cba_t cba); void menu_contest_open(cba_t cba); void free_namelist(void); void do_peer_menu( void (* func)(cba_t cba)); void do_peer_operators_menu(void (* func)(cba_t cba)); void menu_load_from_peer(cba_t cba); void menu_spy_from_peer(cba_t cba); void do_spy_peer_menu(void (* func)(cba_t cba)); void menu_set_language(cba_t cba); void menu_contest_config_from_peer(cba_t cba); void send_contest_config_request(int no); /* menu1.c */ void band_settings(cba_t cba, int from_ctest); void menu_wizz(cba_t cba); int save_desc_to_file(gchar *filename); void contest_options1(char *title, int from_ctest); void contest_options1_from_menu(cba_t cba); void contest_options1_from_ctest(cba_t cba); void contest_def(cba_t cba); void edi_prop(cba_t cba); int dlg_edi_prop(struct dialog_data *dlg, struct dialog_item_data *di); void menu_responsible_op(cba_t cba); void refresh_contest_options1(void *xxx); void init_ctest2(int from_dlg, int updloc, struct zstring *zs); /* menu2.c */ extern char operator_[EQSO_LEN]; void edit_qso(struct qso *qso); /* menu3.c */ void duplicate_callsign(struct qso *qso); void menu_add_error(cba_t cba); void menu_chop(cba_t cba); void menu_skedqrg(cba_t cba); void menu_fillop(cba_t cba); void menu_recalc_qrb(cba_t cba); void menu_cw_update_contest(cba_t cba); void menu_cw_update_band(cba_t cba); void menu_exc_update_contest(cba_t cba); void menu_exc_update_band(cba_t cba); void menu_import_ebw(cba_t cba); void menu_autosave(cba_t cba); void menu_add_subwin(cba_t cba); void menu_close_subwin(cba_t cba); void menu_split_subwin(cba_t cba); void menu_remove_split(cba_t cba); void menu_unfinished(cba_t cba); /* menu4.c */ void menu_cq_cw(cba_t cba); void menu_cq_ssb(cba_t cba); void menu_cwda(cba_t cba); void menu_ssbd(cba_t cba); void menu_network(cba_t cba); /* menu5.c */ void misc_opts(cba_t cba); #ifdef HAVE_HAMLIB void menu_fixqrg(struct terminal *term, void *d, struct session *ses); #endif void winkey_opts(cba_t cba); int dlg_winkey_opts(struct dialog_data *, struct dialog_item_data *); void menu_rig_opts(cba_t cba); void menu_rotars(cba_t cba); /* charsets.c */ #include "codepage.h" struct conv_table { int t; union { char *str; struct conv_table *tbl; } u; }; /*struct conv_table *get_translation_table(int, int);*/ int get_cp_index(char *n); char *get_cp_name(int); /*char *get_cp_mime_name(int);*/ int is_cp_special(int); void free_conv_table(void); char *cp2utf_8(int, int); char *u2cp(unicode_val, int); #define AL_LEFT 0 #define AL_CENTER 1 #define AL_MASK 0x7f #define AL_EXTD_TEXT 0x80 #define AL_BUTTONS 0x100 /* DIRTY! for backward compatibility with old menu code */ /* default.c */ #define MAX_STR_LEN 1024 /* Which fields to free when zapping a box_item. Bitwise or these. */ enum box_item_free {NOTHING = 0, TEXT = 1 , DATA = 2}; /* An item in a box */ struct box_item { struct box_item *next; struct box_item *prev; char *text; /* Text to display */ void *data; /* data */ enum box_item_free free_i; }; /* Stores display information about a box. Kept in cdata. */ struct dlg_data_item_data_box { int sel; /* Item currently selected */ int box_top; /* Index into items of the item that is on the top line of the box */ /*struct list_head items;*/ struct box_item items; /* The list being displayed */ int list_len; /* Number of items in the list */ }; void show_dlg_item_box(struct dialog_data *, struct dialog_item_data *); /* kbdbind.c */ #define KM_MAIN 0 #define KM_EDIT 1 #define KM_MENU 2 #define KM_MAX 3 enum { ACT_AC_CQ, ACT_BACKSPACE, ACT_CALLINFO, ACT_CHOP, ACT_CLEAR_TMPQSOS, ACT_CLEAR_TMPQSOS_INPUTLINE, ACT_CONFIRM_CALL, ACT_CONFIRM_EXC, ACT_CONFIRM_WWL, ACT_COPY_CLIPBOARD, ACT_CQ_0, ACT_CQ_1, ACT_CQ_2, ACT_CQ_3, ACT_CQ_4, ACT_CQ_5, ACT_CUT_CLIPBOARD, ACT_DELETE, ACT_DOWN, ACT_END, ACT_ENTER, ACT_ESC, ACT_FILE_MENU, ACT_FIND_NEXT, ACT_FIND_NEXT_BACK, ACT_GRAB_BAND, ACT_HOME, ACT_INSERT, ACT_KILL_LINE, ACT_KILL_TO_BOL, ACT_KILL_TO_EOL, ACT_LASTCALL_KST, ACT_LEFT, ACT_MENU, ACT_MODE, ACT_NEXT_HISTORY, ACT_NEXT_SUBWIN, ACT_NEWCALL_KST, ACT_PAGE_DOWN, ACT_PAGE_UP, ACT_PASTE_CLIPBOARD, ACT_PREV_HISTORY, ACT_PREV_SUBWIN, ACT_PLAY_LAST, ACT_QUIT, ACT_REALLYQUIT, ACT_RIGHT, ACT_ROTAR, ACT_RX, ACT_RXTX, ACT_SAVE_ALL, /* ACT_SCROLL_DOWN,*/ ACT_SCREENSHOT, ACT_SCROLL_LEFT, ACT_SCROLL_RIGHT, /* ACT_SCROLL_UP,*/ ACT_SEARCH, ACT_SEARCH_BACK, ACT_SEEK_A, ACT_SEEK_B, ACT_SHOW_HISTORY, ACT_SKED, ACT_SKED_QRG, ACT_SWAP_CALL, ACT_SWAP_WWL, /* ACT_TX, */ ACT_TUNE, ACT_UNFINISHED, ACT_UP, ACT_WINDOWSHOT }; void init_keymaps(void); void free_keymaps(void); int kbd_action(int, struct event *); /* stats.c */ #define QSONR_WIDTH 20 #define QSONR_HEIGHT 7 #define BAND_WIDTH 16 #define ORIG_Y 1 struct cntpts{ int count; int points; struct qso *qso; /* used only in st->hours */ }; struct stats{ gint first_date, last_date; /* 20021115*/ gint nqsos, nqsop; /* without errors and dupes */ gint nwwlp; gint nprefs; gint ndxcp; gint nexcp; gint ntotal; int nmult; gint odxqrb_int; gchar *odxcall, *odxwwl, *odxoperator; GHashTable *wwls, *dxcs, *excs, *hours, *prefs; /* of struct cntpts */ GHashTable *calls; int qso_per_hour, pts_per_hour, pts_per_50qso; char *mycontinent; char *mydxcc; struct qso *odx; }; struct miss_struct{ GIndexArray *ia; struct stats *st; int maxlen; }; struct contest; struct config_subwin; char *get_raw_call(char *buf, const char *call); int is_rover(const char *callsign); char *get_wwl(char *buf, char *wwl); void draw_one_bigdigit(int x, int y, int num); void draw_bigdigit(int x, int y, int num); struct stats *init_stats(void); void free_stats(struct stats *st); void clear_stats(struct stats *st); void update_stats(struct band *b, struct stats *st, struct qso *q); void recalc_stats(struct band *b); void recalc_all_stats(struct contest *ctest); void recalc_all_qrbqtf(struct contest *ctest); void redraw_stats(struct band *band); void recalc_statsfifo(struct band *band); void export_stats_fifo(void); void stats_thread_create(struct band *band); void stats_thread_join(struct band *band); void stats_thread_kill(struct band *band); void timer_minute_stats_all(cba_t cba); void minute_stats_all(void); void minute_stats(struct band *band); void stats_merge_prefs_fn(gpointer key, gpointer value, gpointer data); void recalc_allb_stats(void); void miss_compute_ms(struct miss_struct *ms, struct band *b); int qsomult16(struct band *b); gint compare_string (gconstpointer a, gconstpointer b); /* inputln.c */ #define VALID_CHARS " ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/#',.-_:?!;" struct inputln { int (*fn)(struct dialog_data *, struct dialog_item_data *); int dlen; /* data length */ int x, y, l; int vpos, cpos, focused, wasctrlv; int upconvert, readonly, allow_ctrlv; char *cdata; struct terminal *term; void *enterdata; void (*enter)(void *, gchar *, int); GPtrArray *history; int hist_i; struct band *band; struct subwin *sw; char *valid_chars; }; void il_set_focus(struct inputln *il); void il_unset_focus(struct inputln *il); void clear_inputline(struct inputln *il); int inputln_func(struct inputln *il, struct event *ev); void il_readonly(struct inputln *il, int ro); void draw_inputln(struct inputln *il, int sel); void newkst(struct inputln *il, char *callkst); /* rc.c */ struct config_band{ gchar bandchar; /* 'a' ... */ gchar *pband; /* 144 MHz */ gint psect; /* Single, Multi */ gint qrv,qrvnow,readonly; gchar *stxeq,*spowe; /* TM-255 + gi7b, 300 */ gchar *srxeq,*sante,*santh; /* TM-255, GW4PTS, 60;800 */ gchar *mope1,*mope2; /* OK1XDF, OK1MZM, OK1ZIA */ gchar *remarks; /* a little hack for OK */ gchar *ok_section_single; /* 2m=01, 70cm=03, ... */ gchar *ok_section_multi; /* 2m=02, 70cm=04, ... */ gint qrg_min,qrg_max; /* kHz */ gchar *adifband; /* 2m,70cm,23cm... */ gchar *cbrband; /* 2M,432,1.2G... */ gchar *skedqrg; gdouble band_lo; int band_sw; }; struct config { /* depending on callsign */ gchar *pcall; gchar *pwwlo; gchar *pexch; gchar *padr1,*padr2,*pclub; gchar *rname,*rcall,*radr1,*radr2,*rpoco,*rcity,*rcoun,*rphon,*rhbbs; gchar *default_rs,*default_rst; gint qsop_method, total_method; gint as_disk_aq, as_disk_am, as_floppy_aq, as_floppy_am; gint as_disk_fsync, as_floppy_fsync, as_mount; gchar *as_floppy_path, *as_mount_cmd; gchar *net_if_ignore, *net_ip_ignore, *net_ip_announce; GPtrArray *bands; struct config_band *band; /* active band during loading config */ GPtrArray *cqs; /* of struct cq */ struct cq *cq; struct term_spec *ts; GPtrArray *sws; /* of struct config_subwin */ struct config_subwin *sw; gint cwda_type; /* enum cwtype */ gchar *cwda_device, *cwda_hostname; gint cwda_udp_port, cwda_io_port; gint cwda_speed, cwda_weight, cwda_minwpm, cwda_maxwpm; gint cwda_leadin, cwda_spk; gint cwda_vid, cwda_pid, cwda_autgive; gint wk_wk2, wk_usepot, wk_usebut, wk_keymode, wk_swap; gint ssbd_type; gint ssbd_record, ssbd_maxmin, ssbd_diskfree; gint ssbd_format, ssbd_channels, ssbd_samplerate; gint ssbd_plev, ssbd_rlev; gchar *ssbd_template; gchar *ssbd_pcm_play, *ssbd_pcm_rec; gint ssbd_period_time, ssbd_buffer_time; gchar *ssbd_alsa_mixer, *ssbd_alsa_src; int ssbd_pa_play, ssbd_pa_rec; gchar *ssbd_dsp; gint ssbd_maxfrag; gchar *ssbd_mixer, *ssbd_oss_src; gint ssbd_recsrc; gchar *ssbd_hostname; gint ssbd_udp_port; gint trace_bcast, trace_sock, trace_recv, trace_send, trace_qsos, trace_sdev; gchar *rig_filename; gint rig_model, rig_civaddr; gint rig_speed; gdouble rig_lo; /* qrg displayed on rig + rig_lo = real_qrg_on_air use get/set_rig_lo for access */ gint rig_ssbcw_shift; /* Hz added to qrg on change ssb->cw */ gint rig_poll_ms; gint rig_qrg_r2t; gint rig_qrg_t2r; gint rig_mode_t2r; gint rig_clr_rit; gint rig_verbose; GPtrArray *crotars; /* of struct config_rotar */ struct config_rotar *crotar; int loglines,skedshift,skedcount; gchar *startband; GPtrArray *takeoff; /* of struct takeoff */ int global_operator; gchar *operator_; int gfx_x, gfx_y, ntpq, dssaver, splitheight; int fontheight; char *slashkey; char *dxc_host; int dxc_port; char *dxc_user, *dxc_pass; char *kst_user, *kst_pass, *kst_name; }; extern struct config *cfg; extern int opt_g, opt_i, opt_m, opt_s, opt_t, debug_keyboard; gint init_rc(void); void free_config_rotar(struct config_rotar *crot); gint free_rc(void); gint read_rc_line(gchar *str); gint read_rc_file(gchar *filename, const char *text); gint read_rc_files(void); void save_rc_string(GString *gs); gint save_rc_file(gchar *filename); int term_spec_init(void); char *parse_options(int argc, char **argv); gdouble get_rig_lo(struct band *band); void set_rig_lo(struct band *band, gdouble lo); /* qsodb.c */ #define STORE_HASH_STR(base, item) {\ if (base->item) g_free((gpointer)base->item);\ base->item = g_strdup((char *)g_hash_table_lookup(hash, #item)); \ } #define STORE_HASH_INT(base, item) {\ gchar *c; \ c = (char*)g_hash_table_lookup(hash, #item); \ if (c) base->item = atoi(c); \ else base->item = 0; \ } #define STORE_HASH_INT_DEF(base, item, def) {\ gchar *c; \ c = (char*)g_hash_table_lookup(hash, #item); \ if (c) base->item = atoi(c); \ else base->item = def; \ } #define STORE_HASH_CHR(base, item) {\ gchar *c;\ c=(char *)g_hash_table_lookup(hash, #item); \ if (c) base->item = tolower(*c);\ else c='\0';\ } #define NEW_EXC 1 #define NEW_WWL 2 #define NEW_DXC 4 #define NEW_PREF 8 #define NEW_MULT 16 enum suspcall { SUSP_NONE, SUSP_QRB, SUSP_REM, SUSP_WARN, SUSP_ERR }; struct qso{ gchar *source; /* "192.168.0.1:1026" CONSTANT */ gint ser_id; /* 0..X in one source CONSTANT */ time_t stamp; /* last modification VARIABLE */ gchar *operator_; gchar *date_str,*time_str; gchar *callsign; gint mode; gchar *rsts,*rstr; gchar *qsonrs,*qsonrr; gchar *exc, *locator; gchar *remark; gint error; gdouble qrg; /* computed*/ gint dupe,qsop,new_,qsl; gdouble qrb; gint qtf; gint susploc; /* 1=warn, 2=err */ enum suspcall suspcall1; gint unkcall; /* "foreign key", don't dealloc! */ struct band *band; int kx,ky; }; struct tmpqso{ gchar *date_str,*time_str; gchar *callsign; gchar *rsts,*rstr; gchar *qsonrs,*qsonrr; gchar *exc, *locator; gchar *remark; gint dupe,qsl; /* computed*/ gdouble qrb; gint qtf; gchar *name; /* ultimate values */ gint ucallsign,udummy,ulocator,uexc; int uqrb,uqtf; /* suspicious */ gint suspcallsign, susplocator, suspexc, unkcall; }; #define ADD_TMPQSO_STRING(band,item,str,isu,uitem) {\ int i; \ if (band->tmpqsos[TMP_QSOS-1].item) { \ g_free(band->tmpqsos[TMP_QSOS-1].item); \ band->tmpqsos[TMP_QSOS-1].item = NULL; \ }\ for (i=TMP_QSOS-2;i>=0;i--) {\ band->tmpqsos[i+1].item=band->tmpqsos[i].item; \ band->tmpqsos[i+1].uitem=band->tmpqsos[i].uitem; \ }\ band->tmpqsos[0].item=g_strdup(str); \ band->tmpqsos[0].uitem = isu; \ } #define CLEAR_TMPQSO_STRING(band,item) {\ if (band->tmpqsos[i].item) { \ g_free(band->tmpqsos[i].item); \ band->tmpqsos[i].item=NULL;\ } \ } #define CLEAR_TMPQSO_STRING_UU(band,item, uitem){ \ int i; \ for (i=0;itmpqsos[i].uitem && band->tmpqsos[i].item) {\ g_free(band->tmpqsos[i].item); \ band->tmpqsos[i].item=NULL;\ }\ }\ } #define ADD_TMPQSO_GINT(band,item,num,isu,uitem) {\ int i; \ for (i=TMP_QSOS-2;i>=0;i--) {\ band->tmpqsos[i+1].item=band->tmpqsos[i].item; \ band->tmpqsos[i+1].uitem=band->tmpqsos[i].uitem; \ }\ band->tmpqsos[0].item=num; \ band->tmpqsos[0].uitem = isu; \ } #define ADD_TMPQSO_GDOUBLE(band,item,num,isu,uitem) {\ int i; \ for (i=TMP_QSOS-2;i>=0;i--) {\ band->tmpqsos[i+1].item=band->tmpqsos[i].item; \ band->tmpqsos[i+1].uitem=band->tmpqsos[i].uitem; \ }\ band->tmpqsos[0].item=num; \ band->tmpqsos[0].uitem = isu; \ } #define CLEAR_TMPQSO_GINT(band,item) \ band->tmpqsos[i].item=0 /*#define CLEAR_TMPQSO_GINT_UU(band,item, uitem) {\ int i; \ for (i=0;itmpqsos[i].uitem) {\ band->tmpqsos[i].item=0;\ }\ }\ } */ #define CLEAR_TMPQSO_GDOUBLE_UU(band,item, uitem) {\ int i; \ for (i=0;itmpqsos[i].uitem) {\ band->tmpqsos[i].item=0;\ }\ }\ } #define CLEAR_TMPQSO_QTF(band) \ band->tmpqsos[i].qtf=-1 #define CLEAR_TMPQSO_QTF_UU(band) {\ int i; \ for (i=0;itmpqsos[i].uqtf) {\ band->tmpqsos[i].qtf=-1;\ }\ }\ } #define TMP_QSOS 3 #define DISP_QSOS 2 #define INPUTLN(b) (ctest && b ? b->il : gses->il) void add_tmpqso_locator(struct band *b,gchar *c,int isu, int isshort); void add_tmpqso_exc(struct band *b,gchar *exc,int isu); enum last_items{ LI_NONE = 0, LI_CALL, LI_WWL }; enum ctrlstates{ CTRL_RUN = 0, /* RUN, TX */ CTRL_SP = 1, /* S&P, no TX */ CTRL_REQR = 2, /* RUN, TX */ CTRL_REQS = 3, /* S&P, no TX */ CTRL_RUNING = 4, /* S&P, TX */ CTRL_GIVEN = 5 /* RUN, no TX */ }; enum ccmd{ CCMD_REQ = 0, /* S&P->RUN */ CCMD_ACC, /* RUN->S&P */ CCMD_REJ, /* RUN->S&P */ CCMD_BACK /* S&P->RUN */ }; enum exctype { EXC_FREE = 1, EXC_VERIFIED = 2, EXC_WAZ = 3, EXC_ITU = 4 }; enum tttype{ TT_NONE = 0, TT_RSTS = 1, TT_RSTR = 2, TT_QSONRR = 3, TT_EXC = 4 }; struct spypeer; struct band{ gchar bandchar; /* 'c' ...*/ gchar *pband; /* 144 MHz */ gchar *bandname; /* 2m,70cm,23cm... */ GPtrArray *qsos; struct inputln *il; struct tmpqso tmpqsos[TMP_QSOS]; gchar *unres, *qrv_str, *wkd_str; gint dupe_in_tmpqso_index; gint dirty_save, dirty_stats, dirty_statsf; gint readonly; gchar *call_played; // call played in run mode gint agcall; // call was sent in autogive mode. RST follows gint iscall; // currently played text is call // enum modes mode; // gint bandmulti; gchar *operator_; gint psect; gchar *stxeq,*spowe; /* TM-255 + gi7b, 300 */ gchar *srxeq,*sante,*santh; /* TM-255, GW4PTS, 60;800 */ gchar *mope1,*mope2; /* OK1XDF, OK1MZM, OK1ZIA */ gchar *remarks; struct stats *stats; struct stats *tmpstats; GThread *stats_thread; MUTEX_DEFINE(stats); // GMutex *stats_mutex; //#ifdef LEAK_DEBUG_LIST // char *stats_file; // int stats_line; //#endif int stats_break; /* file */ FILE *swap; gint saveid,ignoreswap; struct fifo *swapfifo, *unfi, *statsfifo1; GPtrArray *qs, *oqs; enum last_items last_item; gchar *skedqrg; enum ctrlstates ctrlstate; gchar *ctrlsp; /* enum spymodes spymode;*/ struct qso tmplocqso; GPtrArray *skeds; gint qrg_min,qrg_max; /* kHz */ int band_sw; struct config_band *cbr_confb; // local for cabrillo, not filled elsewhere! double qrg; }; struct contest { /* EDI & contest properties */ gchar *tname; /* A1 Contest - MMC */ gchar *tdate; /* TODO */ gchar *pcall; /* DL/OK1KRQ/P */ gchar *pclub; /* OK1KRQ */ gchar *pwwlo; /* JN69HN12 */ gchar *pexch; gchar *default_rs,*default_rst; /* EDI only properties */ gchar *padr1,*padr2; /* Lite */ gchar *rname; /* Roman Staif */ gchar *rcall; /* OK1XST */ gchar *radr1,*radr2; /* Pod svabinami */ gchar *rpoco,*rcity,*rcoun; /* 30100, Plzen, CZECHIA */ gchar *rphon,*rhbbs; /* 0603123456 , OK0POK */ /* contest properties */ gint rstused; /* no,used, optional */ gint defrstr; gint qsoused; /* no,used, optional */ gint wwlused; /* no,used, optional */ gint wwltype; /* short,normal,extended */ gint wwlcfm; gint excused; /* no,used, optional */ enum exctype exctype; gchar *excname; /* database name f.e. OKRES */ gint exccfm; enum tttype tttype; int qsoglob; /* qsonr is global in contest */ gint prefglob; /* prefix is global in contest */ gint expmode; /* epedition mode */ /* points calculation */ gint qsomult; gint wwlbonu,wwlmult; gint prefmult; gint dxcbonu,dxcmult; gint excbonu,excmult; gint qsop_method; /* 1..12 */ gint total_method; /* 1..2 */ GPtrArray *bands; GHashTable *bystamp; /* key=source, val=GIndexArray */ /* GIndexArrays are NOT sorted by ser_id but only by stamp */ GIndexArray *allqsos; /* disk */ FILE *descfile; /* ~/tucnak/.../desc */ FILE *logfile; /* ~/tucnak/.../log */ gchar *directory; /* /home/ok1zia/tucnak/20021113.2 */ gchar *cdate; /* 20021113 without .X */ /* autosave */ int as_disk_qsonr, as_disk_time, as_floppy_qsonr, as_floppy_time; int qrv; /* bit array of used bands */ int oldcontest; /* date of contest is too old, not recording */ int minute_timer_id; /* for statistics */ int hf; /* HF contest */ GPtrArray *spypeers; /* of struct spypeer */ int allb_nqsos; int allb_nqsop; int allb_nwwlp; int allb_nprefp; int allb_ndxcp; int allb_nexcp; int allb_ntotal; int allb_nmult; GHashTable *allb_prefs; int runmode; int qso_per_10, qso_per_60; struct qso *lastmultqso; }; extern struct contest *ctest; extern struct band *aband; struct conn; extern char *mode_msg[]; int init_ctest(void); int new_ctest(char *tdate); /* called after filling data members by refresh_... */ void free_ctest(void); struct band *init_band(struct config_band *, GHashTable *opt_band, struct zstring *zs); void free_band(struct band *b); void free_qso(struct qso *qso); struct band *find_band_by_pband(char *pband); struct band *find_band_by_bandchar(char bandchar); struct band *find_band_by_qrg(double freq); struct band *init_qrv_bands(void); int write_qso_to_swap(struct band *b, struct qso *q); void add_qso(struct band *b, struct qso *q); struct qso *get_qso(struct band *b, gint i); struct qso *get_qso_by_callsign(struct band *b, gchar *callsign); struct qso *get_gqso(struct band *b, gint i); int get_qso_index_by_callsign(struct band *b, gchar *callsign); struct qso *get_qso_by_id(struct band *b, gchar *source, gint ser_id); struct qso *get_qso_by_qsonr(struct band *b, int qsonr); void add_error(struct band *b, gchar *remark); void activate_band(struct band *b); int add_tmpxchg(struct band *band, gchar *xchg); int add_swap(struct band *band, gchar *s); void clear_tmpqsos(struct band *b, int set_defaults); void default_rst_to_tmpqsos(struct band *b); int export_all_bands_edi(void); int export_all_bands_report(void); int export_all_bands_titlpage(void); struct config_band *get_config_band_by_bandchar(char bandchar); struct config_band *get_config_band_by_pband(char *pband); struct config_band *get_config_band_by_qrg(int qrg); /* kHz */ void foreach_source_recalc_ser_id(gpointer key, gpointer value, gpointer data); void foreach_source_qsort_by_stamp(gpointer key, gpointer value, gpointer data); void foreach_source_print(gpointer key, gpointer value, gpointer data); void add_qso_to_index(struct qso *q, int qsort_if_needed); void remove_qso_from_index(struct qso *q); gchar *get_latests_str(void); int compare_stamp(const void *a, const void *b); void compute_qrbqtf(struct qso *q); GPtrArray *get_band_qs(struct band *band, gchar *str); GPtrArray *get_oband_qs(struct band *band, gchar *str); gchar *find_wwl_by_oband(struct band *oband, gchar *call); gchar *find_exc_by_oband(struct band *oband, gchar *call); int load_ctest_from_mem(struct contest *ctest, gchar *datedir, GHashTable *hash); void qso_mark_as_error(struct band *b, gint i); int get_psect_int(char *psect); void dump_qso(struct qso *q, char *desc); void invalidate_tmpqso(struct band *b, struct qso *q); void dirty_band(struct band *band); struct zstring *contest_format(struct contest *ctest); void ctest_parse(struct zstring *zstr, struct contest *ctest); struct zstring *band_format(struct band *b); struct band *band_parse(struct zstring *zstr, struct band *b); int compare_date_time_qsonrs(const void *a, const void *b); /* edi.c */ int save_all_bands_txt(int is_autosave); int check_autosave(void); void load_contest_edi(gchar *date, int edi); void add_qso_str1(GString *gs, struct qso *q, struct band *b); void add_qso_str2(GString *gs, struct qso *q, struct band *b); void add_qso_str3(GString *gs, struct qso *q, struct band *b); void import_edi (void *xxx, char *filename); void import_swap(void *xxx, char *filename); void dump_all_sources(struct contest *ctest); enum modes get_mode(void); void set_mode(enum modes mode); char *my_strstr(const char *, const char *); char *my_strcasestr(const char *phaystack, const char *pneedle); /* adif.c */ int export_all_bands_adif(void); void import_adifx(char *filename); void import_adif(void *xxx, char *filename); /* regex.c */ #define MAX_MATCHES 10 int regcmp(char *string, char *regex); int regcmpi(char *string, char *regex); #ifdef LEAK_DEBUG_LIST #define regmatch(string, regex...) debug_regmatch(__FILE__, __LINE__, string, regex) int debug_regmatch(char *file, int line, char *string, char *regex, ...); #else int regmatch(char *string, char *regex, ...); #endif /* subwin.c */ #if defined(_MSC_VER) || defined(__MINGW32__) struct winsize{ unsigned short ws_row, ws_col, ws_xpixel, ws_ypixel; }; #endif enum sw_type { SWT_QSOS, SWT_LOG, SWT_PIPE, SWT_TALK, SWT_DXC, SWT_SKED, SWT_SWAP, SWT_UNFI, SWT_STAT, SWT_MAP, SWT_SCOPE, SWT_QRV, SWT_HF, SWT_PLAYER, SWT_CHART, SWT_KST3}; struct subwin { gchar *title; enum sw_type type; gint x,y,w,h,hh; gint offset,cur,ho, offset2; gint ontop, ontop2,focused; gint titl1,titl2; int (*kbd_func)(struct subwin *, struct event *ev, int fw); int (*mouse_func)(struct subwin *, struct event *ev, int fw); void (*redraw)(struct subwin *, int flags); void (*check_bounds)(struct subwin *); void (*raise)(struct subwin *); GPtrArray *lines; int eol, maxlen, unread; struct inputln *il; /* optional */ /* subwins having pipes */ gint read_fd, write_fd; pid_t pid; struct winsize ws; GPtrArray *high; /* of gchar* */ gchar *command; gint respawn_time; /* fifo is foreign key mostly to global variable */ struct fifo *fifo; /* for graphics subwins (SWT_MAP) */ #ifdef HAVE_SDL SDL_Surface *l1map; // SDL_Surface *l2rot; SDL_Surface *screen; MUTEX_DEFINE(screen); // GMutex *screen_mutex; //#ifdef LEAK_DEBUG_LIST // char *screen_file; // int screen_line; //#endif int ox, oy; int zoom; int gdirty; SDL_Rect map, info; gchar *pwwlo; struct qso *minqso; gchar *minqrvcall; double myw, myh; int scope_mode; int fft_wf_y, fft_wf_h; int fft_sp_y, fft_sp_h; int fft_wf_x2; int fft_sp_x2; double antchar[360]; int beamwidth; double gst[360]; int mint, maxt, minv, maxv; int ch_left, ch_right, ch_top, ch_bottom; int mx, my, ch_mouse_value; #endif GPtrArray *chbands; // of struct chband #ifdef HAVE_SNDFILE int pl_rate; int pl_channels; unsigned char *pl_shapebuf; int pl_shapelen; int pl_len; int pl_pxlen; int pl_ofs; #ifdef HAVE_SDL SDL_Surface *pl_preview_screen; int pl_preview_w; #endif #endif }; struct config_subwin{ int nr; enum sw_type type; gchar *command; gchar *autorun; int respawn_time; }; struct subwin *new_subwin(enum sw_type type, gchar *title, /* optional */ void (*enter)(void *,gchar *, int)); void free_subwins(void); void free_subwin(struct subwin *sw); int sw_add_line(struct subwin *sw, gchar *line, int eol); int sw_add_block(struct subwin *sw, gchar *data); int sw_default_func(struct subwin *sw, struct event *ev, int fw); int sw_all_func(struct event *ev, int fw); int sw_focus_func(struct event *ev, int fw); int sw_ontop_func(struct event *ev, int fw); struct subwin *find_sw_ontop(void); void sw_set_focus(void); void sw_unset_focus(void); struct subwin *sw_set_ontop(int n, int set2); /* n abs */ struct subwin *sw_totop_next(int n, int set2); /* n = +-1 */ void sw_set_unread(struct fifo *fifo); void sw_unset_unread(struct fifo *fifo); struct config_subwin *get_config_sw_by_number(GPtrArray *sws, int nr); void sw_default_redraw(struct subwin *sw, int flags); void sw_check_len(struct subwin *sw); void draw_titles(int y, int ontop2); int sw_line_is_highlighted(struct subwin *sw, gchar *c); int sw_qsos_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_qsos_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_qsos_redraw(struct subwin *sw, int flags); void sw_qsos_check_bounds(struct subwin *sw); int show_qs(void); void sw_qs_redraw(void); /*int sw_il_kbd_func(struct subwin *sw, struct event *ev, int fw); void sw_il_redraw(struct subwin *sw); void sw_il_check_bounds(struct subwin *sw); void sw_il_enter(void *enterdata, gchar *str); */ int sw_fifo_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_fifo_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_fifo_redraw(struct subwin *sw, int flags); void sw_fifo_check_bounds(struct subwin *sw); int sw_pipe_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_pipe_redraw(struct subwin *sw, int flags); void sw_pipe_check_bounds(struct subwin *sw); void sw_pipe_enter(void *enterdata, gchar *str, int); int sw_pipe_run(struct subwin *sw, char *cmd); void sw_pipe_read_handler(cba_t); void sw_pipe_write_handler(cba_t); void sw_pipe_exception_handler(cba_t); void sw_pipe_kill(struct subwin *sw); void sw_pipe_match(gpointer acall, gpointer nic, gpointer astr); int sw_pipe_hihglight(struct subwin *sw, char *str); int sw_pty_run(struct subwin *sw, char *cmd); int sw_pipe_run(struct subwin *sw, char *cmd); void sw_talk_enter(void *enterdata, gchar *str, int); void sw_talk_read(gchar *); int sw_dxc_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_dxc_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_dxc_redraw(struct subwin *sw, int flags); void sw_dxc_check_bounds(struct subwin *sw); int sw_unfi_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_unfi_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_unfi_redraw(struct subwin *sw, int flags); void sw_unfi_check_bounds(struct subwin *sw); int sw_stat_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_stat_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_stat_redraw(struct subwin *sw, int flags); void sw_stat_check_bounds(struct subwin *sw); void sw_stat_raise(struct subwin *sw); int sw_qrv_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_qrv_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_qrv_redraw(struct subwin *sw, int flags); void sw_qrv_check_bounds(struct subwin *sw); void sw_qrv_raise(struct subwin *sw); void sw_qrv_sort(struct qrvdb *qrvdb); void qrv_read_line(char *); /* hf.c */ int sw_hf_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_hf_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_hf_redraw(struct subwin *sw, int flags); void sw_hf_check_bounds(struct subwin *sw); void sw_hf_raise(struct subwin *sw); void get_hf_dxc(char *str); void sw_hf_draw_spot(struct subwin *sw, int x, int y, struct spot *spot, int color); void clip_char(struct subwin *sw, int xrel, int yrel, short c); void clip_color(struct subwin *sw, int xrel, int yrel, short c); void clip_printf(struct subwin *sw, int xrel, int yrel, short color, char *fmt, ...); /* cwdb.c */ extern struct cw *cw; struct cw_item{ gchar *wwl0, *wwl1; gint stamp0, stamp1; gint qrv; /* bit array, lsb = A = 50MHz etc. Since 1.15 */ }; struct wc_item{ gchar *call0, *call1; gint stamp0, stamp1; }; struct cw{ THashTable *cw; /* key=call, value=cw_item */ GHashTable *wc; int latest; int minstamp; }; struct qs{ GPtrArray *result1; gchar *str; }; struct cw *init_cw(void); void free_cw(struct cw *cw); gint get_cw_size(struct cw *cw); gint get_wc_size(struct cw *cw); void load_one_cw(struct cw *cw, gchar *s); int load_cw_from_file(struct cw *cw, gchar *filename); void read_cw_files(struct cw *cw); int save_cw_string(struct cw *cw, GString *gs); int save_cw_into_file(struct cw *cw, gchar *filename); void add_cw(struct cw *cw, gchar *call, gchar *wwl, gint stamp, gchar *qrv); gchar *find_wwl_by_call(struct cw *cw, gchar *call); gchar *find_wwl_by_call_newer(struct cw *cw, gchar *call, int minstamp); void add_wc(struct cw *cw, gchar *wwl, gchar *call, gint stamp); gchar *find_call_by_wwl(struct cw *cw, gchar *wwl); gchar *find_qrv_str_by_call(struct cw *cw, gchar *call); int compare_gstring(const void *a, const void *b); void update_cw_from_band(struct cw *cw, struct band *band); void update_cw_from_ctest(struct cw *cw, struct contest *ctest); void get_cw_qs(gchar *str); gpointer cw_thread_func(gpointer data); int cmp_cw_qs(gchar *call, struct cw_item *cwi, GPtrArray *result); void qs_thread_create(void); void qs_thread_join(void); void qs_thread_kill(void); int get_susp_ambiguous_call(struct cw *cw, struct band *band, char *call, char *wwl, GString *gs, int thr); int similar_calls(const char *call1, const char *call2, int factor, int thr, int p); int cwdb_call_info(GString *gs, gchar *call, gchar *stroke); int levenshtein(const char *s, const char*t); /* dwdb.c */ #include "txts.h" extern struct dw *dw; struct dw_item{ gchar *wwl0, *wwl1; /* center of activity (optional), */ /* center of dxcc (geometric) */ GHashTable *wwls; /* all wwls valid for this dxcc */ int waz, itu; gchar *continent; gchar *dxcname; double latitude, longitude; }; struct wd_item{ gchar *dxc0, *dxc1; }; struct dw{ GHashTable *pd; /* key=prefix "DF", value=dxcc (main prefix) "DL" */ GHashTable *dw; /* key=dxcc "DL", value=dw_item */ GHashTable *wd; /* key=big wwl, "JN69" */ }; struct dw *init_dw(void); void free_dw(struct dw *dw); gint get_pd_size(struct dw *dw); gint get_dw_size(struct dw *dw); gint get_wd_size(struct dw *dw); gchar *safe_fgets(GString *gs, FILE *f, int stripcomment); gchar *safe_mgets(GString *gs, const char *file, long int *pos, const long int len, int stripcomment); void add_pd(struct dw *dw, gchar *prefix, gchar *dxc); struct dw_item *add_dxc(struct dw *dw, gchar *dxc, gchar *wwl0, gchar *wwl1, int waz, int itu, gchar *continent, gchar *dxcname, double latitude, double longitude); void add_dw(struct dw_item *dxci, gchar *dxc, gchar *wwl); void add_wd(struct dw *dw, gchar *wwl, gchar *dxc); int load_dw_from_file(struct dw *dw, gchar *filename); int load_cty_from_file(struct dw *dw, gchar *filename); void read_dw_files(struct dw *dw); struct dw_item *get_dw_item_by_call(struct dw *dw, gchar *call); int wwl_is_ok_by_call(struct dw *dw, gchar *wwl, gchar *call); int get_susp(struct cw *cw, struct dw *dw, gchar *call, gchar *wwl, int ambig); int get_susp_call(struct cw *cw, struct dw *dw, gchar *call, gchar *wwl); int get_susp_loc(struct cw *cw, struct dw *dw, gchar *call, gchar *wwl); gchar *find_wwl_by_dxc(struct dw *dw, gchar *dxc); gchar *find_dxc_by_wwl(struct dw *dw, gchar *wwl); char *get_dxcc(struct dw *dw, char *buf, char *call); char *get_pref(char *buf, char *call); gboolean free_gpointer_item(gpointer key, gpointer value, gpointer user_data); int load_dw_from_mem(struct dw *dw, const char *file, const long int len); int load_cty_from_mem(struct dw *dw, const char *file, const long int len); void call_info(cba_t cba); void menu_qso_check(cba_t cba); /* net.c */ #define C0(item) (item?item:"") #define PEER_FUNC void(*)(void) extern struct net *net; enum net_state { NS_INIT=0, NS_CONNECTING, NS_CONNECTED, NS_WAIT_ACK, NS_DISCONNECTED, NS_DEAD, /* conn removed immediately */ }; extern char *ns_desc[]; struct conn{ struct sockaddr_in sin; /* {sin_port, sin_addr.s_addr } */ int sock; enum net_state state; GString *wrbuf, *rdbuf; int relseq; int timer; gchar *remote_id; gchar *remote_ac; gchar *operator_; gchar *rwbands; int is_same_ctest; int replicating; /* replicating from other station in progress, huge amout of QSOs */ }; struct net{ struct sockaddr_in my; /* IP of first interface (except lo) in alphab. order. host byteorder */ gchar *myid; /* 0.0.0.0:0 or 192.168.1.97:55555 */ struct sockaddr_in global; /* global master */ time_t global_expire; int udpsock; /* listen for announcement, -1 unused */ int tcpsock; /* listen for slaves, -1 unused */ int udptimer_id; int udptimer_period; struct sockaddr bcast_addr[MAX_INTERFACES]; int max_addrs; struct conn *master; GPtrArray *peers; /* struct conn[] */ gchar *allpeers; /* separated by semicolon */ gchar *rwbpeers; /* separated by semicolon. ID;OP;RWB */ gchar *bpeers; /* separated by semicolon. ID;OP;B */ void (*peerfunc)(void); /* todo */ }; struct net *init_net(void); void free_net(struct net *net); int init_net_udp (struct net *net); int init_net_tcp (struct net *net); int init_net_ifaces(struct net *net); void free_net_udp(struct net *net); void free_net_tcp(struct net *net); void free_net_ifaces(struct net *net); void free_conn(struct conn *conn); void udp_read_handler(cba_t); void udp_exception_handler(cba_t); void udp_timer(cba_t); void tcp_read_handler(cba_t); void tcp_write_handler(cba_t); void tcp_exception_handler(cba_t); void tcp_accept_handler(cba_t); void rel_write(struct conn *conn, gchar *s); void rel_write_all(gchar *s); void rel_read(struct conn *conn, gchar *s); void tcp_set_state(struct conn *conn, enum net_state state); void tcp_connect(struct conn *conn); void tcp_kill(struct conn *conn); int cmp_sin(struct sockaddr_in *a, struct sockaddr_in *b); void net_send_id(void); void net_send_ac(void); void net_send_operator(void); void net_send_read_write_bands(void); void net_test_same_contest(struct conn *conn, gchar *ac_text); void compare_remote_with_me(gpointer key, gpointer value, gpointer data); void qso_from_net(struct conn *conn, gchar *c); void replicate_qso(struct conn *conn, struct qso *q); gchar *get_timer_str(struct conn *conn); void send_config_request(int no); void send_cwdb_request(int no); int conn_prod_state(struct conn *conn); int some_replicating(struct net *net); struct conn *find_conn_by_remote_id(gchar *remote_id); void remove_conn_timer(cba_t cba); char *tcp_state_s(struct conn *conn); //char *my_inet_ntoa(struct in_addr in); void iface_info(void); /* loc.c */ #define MY_PI 3.14159265358979323846 double qth(char *qth,int width); char *compute_wwl4(char *s, double h, double w); char *mkwwl4(char *buf, int w, int h); char *hw2loc(char *buf, double w, double h); char *x2gramin(char *buf, double x, char *signs); int qrbqtf(char *myqth,char *recqth,double *qrb,double *qtf,char *str, int flags); int hw2qrbqtf(double h1, double w1, double h2, double w2, double *qrb, double *qtf); int qrbqtf2hw(double h1, double w1, double qrb, double qtf, double *h2, double *w2); /* int xy2qrbqtf(struct gfx *gfx, int x, int y, double *qrb, double *qtf); int xy2hw(struct gfx *gfx, int x, int y, double *h, double *w); */ int qsopwr( char *myqth, char *recqth); int qthwr(char *qth,int width); void qrb_qtf_int(gchar *wwl, int *qrb_int, int *qtf_int); int iaru_round(double qrb); /* fifo.c */ struct fifo{ int x,y,w,h,maxlen,ho; int withouttime; GPtrArray *items; }; #define log_adds(s) fifo_adds(glog, s) extern struct fifo *glog, *gtalk; struct fifo *init_fifo(int maxlen); void fifo_resize(struct fifo *log, int x, int y, int w, int h); void free_fifo(struct fifo *fifo); void drop_fifo(struct fifo *fifo); void fifo_adds(struct fifo *fifo, gchar *str); void fifo_addf(struct fifo *fifo, char *m, ...); void fifo_addfq(struct fifo *fifo, char *m, ...); void log_addf(char *m, ...); int fifo_len(struct fifo *fifo); gchar *fifo_index(struct fifo *fifo, int); int save_fifo_to_file(struct fifo *fifo, gchar *filename); int load_fifo_from_file(struct fifo *fifo, gchar *filename, int drop); void log_draw(struct fifo *fifo); /* wizz.c */ struct wizz_item{ gchar *tname, *pexch; enum tttype tttype; int qsoused, qsomult, qsoglob; int wwlused, wwlbonu, wwlmult, wwlcfm; int excused, excbonu, excmult, exccfm; enum exctype exctype; gchar *excname; int rstused, defrstr; int prefmult, prefglob; int dxcbonu, dxcmult; gint qsop_method, total_method; gchar *bands; }; struct wizz{ GPtrArray *items; /* struct wizz_item */ }; extern struct wizz *wizz; struct wizz *init_wizz(void); void free_wizz_item(struct wizz_item *wi); void free_wizz(struct wizz *wizz); struct wizz_item *find_wizz(struct wizz *wizz, gchar *tname); int load_wizz_from_file(struct wizz *wizz, gchar *filename); void read_wizz_files(struct wizz *wizz); struct wizz_item *get_wizz(struct wizz *wizz, int i); struct wizz_item *find_wizz(struct wizz *wizz, gchar *tname); /* ppdev.c */ #ifdef HAVE_LINUX_PPDEV_H int parport_init (struct cwdaemon *); int parport_open (struct cwdaemon *cwda, int verbose); int parport_free (struct cwdaemon *); int parport_reset (struct cwdaemon *); int parport_cw (struct cwdaemon *, int onoff); int parport_ptt (struct cwdaemon *, int onoff); int parport_ssbway (struct cwdaemon *, int onoff); int parport_band (struct cwdaemon *, int bandsw); #endif /* inpout.c */ #ifdef __CYGWIN__ int parport_init (struct cwdaemon *); int parport_open (struct cwdaemon *cwda, int verbose); int parport_free (struct cwdaemon *); int parport_reset (struct cwdaemon *); int parport_cw (struct cwdaemon *, int onoff); int parport_ptt (struct cwdaemon *, int onoff); int parport_ssbway (struct cwdaemon *, int onoff); int parport_band (struct cwdaemon *, int bandsw); #endif /* ttys.c */ int ttys_init (struct cwdaemon *); int ttys_open (struct cwdaemon *cwda, int verbose); int ttys_free (struct cwdaemon *); int ttys_reset (struct cwdaemon *); int ttys_cw (struct cwdaemon *, int onoff); int ttys_ptt (struct cwdaemon *, int onoff); int ttys_ssbway (struct cwdaemon *, int onoff); /* davac4.c */ #ifdef HAVE_LIBFTDI int davac4_init (struct cwdaemon *); int davac4_open (struct cwdaemon *cwda, int verbose); int davac4_free (struct cwdaemon *); int davac4_reset (struct cwdaemon *); int davac4_cw (struct cwdaemon *, int onoff); int davac4_ptt (struct cwdaemon *, int onoff); int davac4_ssbway (struct cwdaemon *, int onoff); int davac4_monitor (struct cwdaemon *, int onoff); int davac4_band (struct cwdaemon *, int bandsw); #ifndef HAVE_FTDI_NEW struct ftdi_context *ftdi_new(void); void ftdi_free(struct ftdi_context *ftdi); #endif void usb_info(void); unsigned short ftdi_checksum(unsigned char *eeprom, int eeprom_size); #endif /* HAVE_LIBFTDI */ /* winkey.c */ int winkey_init (struct cwdaemon *); int winkey_open (struct cwdaemon *cwda, int verbose); int winkey_free (struct cwdaemon *); int winkey_reset (struct cwdaemon *); int winkey_cw (struct cwdaemon *, int onoff); int winkey_ptt (struct cwdaemon *, int onoff); int winkey_ssbway (struct cwdaemon *, int onoff); int winkey_text (struct cwdaemon *cwda, char *text); int winkey_speed (struct cwdaemon *cwda, int wpm); int winkey_weight (struct cwdaemon *cwda, int weight); int winkey_tune (struct cwdaemon *cwda, int tune); int winkey_back (struct cwdaemon *cwda); void winkey_read_handler(cba_t cba); int winkey_read(struct cwdaemon *cwda, int timeout_us); int winkey4_init (struct cwdaemon *); int winkey4_free (struct cwdaemon *); int winkey4_reset (struct cwdaemon *); /* cwdaemon.c */ enum cwtype { CWD_NONE, CWD_PARPORT, CWD_TTYS, CWD_DAVAC4, CWD_CWD, CWD_WINKEY, CWD_WINKEY4}; struct cwdaemon { int (*init) (struct cwdaemon *); int (*free) (struct cwdaemon *); int (*reset) (struct cwdaemon *); int (*text) (struct cwdaemon *, char *); int (*sspeed) (struct cwdaemon *, int); int (*sweight) (struct cwdaemon *, int); int (*cw) (struct cwdaemon *, int); int (*ptt) (struct cwdaemon *, int); int (*ssbway) (struct cwdaemon *, int); int (*monitor) (struct cwdaemon *, int); int (*echo) (struct cwdaemon *); int (*dtune) (struct cwdaemon *, int); int (*back) (struct cwdaemon *); int (*band) (struct cwdaemon *, int bandsw); int fd; char *desc; gint speed, weight; GThread *thread; int thread_break, abort; int pipe_read, pipe_write; GString *code; GString *played; MUTEX_DEFINE(code); /* GMutex *code_mutex; #ifdef LEAK_DEBUG_LIST char *code_file; int code_line; #endif*/ struct cwdev *dev; #ifdef __CYGWIN__ HINSTANCE hInpOut; MUTEX_DEFINE(hInpOut); /* GMutex *hInpOut_mutex; #ifdef LEAK_DEBUG_LIST char *hInpOut_file; int hInpOut_line; #endif */ short _stdcall (*inp32)(short port); void _stdcall (*out32)(short port, short data); short baseport; unsigned char ctrl; #endif unsigned char data; #ifdef HAVE_LIBFTDI struct ftdi_context *ftdi; unsigned char ftdi_state; MUTEX_DEFINE(ftdi); /* GMutex *ftdi_mutex; #ifdef LEAK_DEBUG_LIST char *ftdi_file; int ftdi_line; #endif*/ #endif int tune; int sock; unsigned char winkey_version, winkey_oldstatus; int ttys_locked; // for CWD_TTYS and CWD_WINKEY int hold_ptt; int freeing; }; extern struct cwdaemon *cwda; struct cwdaemon *init_cwdaemon(void); void free_cwdaemon(struct cwdaemon *cwda); void cwdaemon_read_handler(struct cwdaemon *cwda, char *s, char *played); void cq_cw_wait(struct cq *cq); void cq_timer_cw2(cba_t cq); void cwdaemon_set_defaults(struct cwdaemon *cwda, int speed); gpointer cwdaemon_thread_func(gpointer data); void cwdaemon_echo(struct cwdaemon *cwda); int cwdaemon_text(struct cwdaemon *cwda, char *text); void cwdaemon_abort(struct cwdaemon *cwda); void cwdaemon_safe_abort(struct cwdaemon *cwda); void cwdaemon_ptt(struct cwdaemon *cwda, int ptt, int hold_ptt); void cwdaemon_ssbway(struct cwdaemon *cwda, int ssbway); /* 0=microphone, 1=soundcard */ int cwdaemon_speed(struct cwdaemon *cwda, int wpm); void cwdaemon_qrq(struct cwdaemon *cwda, int qrq); void cwdaemon_qrs(struct cwdaemon *cwda, int qrs); int cwdaemon_weight(struct cwdaemon *cwda, int weight); void cwdaemon_tune(struct cwdaemon *cwda, int tune); int cwdaemon_back(struct cwdaemon *cwda); int cwdaemon_band(struct cwdaemon *, int bandsw); void parport_info (void); int cwd_init (struct cwdaemon *); int cwd_free (struct cwdaemon *); int cwd_reset (struct cwdaemon *); int cwd_text (struct cwdaemon *, char *text); int cwd_speed (struct cwdaemon *, int onoff); int cwd_weight (struct cwdaemon *, int onoff); int cwd_cw (struct cwdaemon *, int onoff); int cwd_ptt (struct cwdaemon *, int onoff); int cwd_ssbway (struct cwdaemon *, int onoff); int cwd_echo (struct cwdaemon *); void cwd_read_handler(cba_t cba); void cwd_tone (struct cwdaemon *cwda, int tone); int cwd_tune (struct cwdaemon *cwda, int tune); int cwd_band (struct cwdaemon *, int bandsw); struct cq{ int nr; int type; /* MOD_CW_CW, MOD_SSB_SSB */ gchar *cw_str; int cw_speed; /* 0 = unused */ int cw_repeat; /* 0 or 1 */ int cw_ts; /* tenth of second */ int cw_allowifundef; gchar *ssb_file; int ssb_repeat;/* 0 or 1 */ int ssb_ts; /* tenth of second */ int stripcall; }; struct cq *init_cq(void); struct cq *get_cq_by_number(GPtrArray *cqs, int nr); void free_cq (struct cq *cq); int cq_run_cw(struct cq *cq); int cq_run_ssb(struct cq *cq); int cq_run_by_number(int no); int cq_abort(int abort_rec); //void cq_timer_cw(cba_t cq); void cq_timer_ssb1(cba_t cq); void cq_ssb_wait(struct cq *cq); void cq_timer_ssb2(cba_t cq); gchar *convert_cq(struct cq *cq); gchar *convert_esc(gchar *format, int *undef, int flags, time_t now); gchar *optimize_path(gchar *src); /* src must be allocated by glib, return can differ */ void menu_runmode(cba_t cba); void menu_spmode(cba_t cba); void runmode(int run); void menu_extcq(cba_t cba); int cq_remains_run(void); int cq_remains_brk(void); void cq_timer_brk(cba_t cba); void ac_cq(void); /* cwwindow.c */ struct cwwin_data{ int x,y,w,h; GString *text; int speed; }; void cwwindow_func(struct window *win, struct event *ev, int fwd); /* ssbd.c */ #define CE_NONE 0 #define CE_ONLY_STRFTIME 1 #define SSBBUFFER_LEN 4096 #ifdef HAVE_SNDFILE struct ssbd { int recording; GThread *thread; int proc_break; int channels; FILE *f; gchar *callsign; gchar *pfilename, *rfilename; gint serno; int b; short buffer2 [SSBBUFFER_LEN]; int a; SNDFILE *sndfile; int sndfd; /* filedescriptor for sndfile */ int norecshowed; int midlevel, maxlevel, cntlevel, loglevel, oldloglevel; MUTEX_DEFINE(loglevel); time_t recstop; #ifdef HAVE_SDL SDL_Surface *norecicon, *playicon, *recicon; #else void *norecicon, *playicon, *recicon; #endif int code; int swontoptype; int played; // samples int seek; MUTEX_DEFINE(seek); char *pl_pcmfile; }; extern struct ssbd *ssbd; struct ssbd *init_ssbd(void); void free_ssbd(struct ssbd *ssbd); int ssbd_play_file(struct ssbd *ssbd, gchar *filename); int ssbd_rec_file(struct ssbd *ssbd); void ssbd_abort(struct ssbd *ssbd, int abort_rec); int ssbd_recording(struct ssbd *ssbd); int ssbd_callsign(struct ssbd *ssbd, char *call); void ssbd_play_read_handler(struct ssbd *ssbd, gchar *str); void ssbd_rec_read_handler(struct ssbd *ssbd, gchar *str); gpointer ssbd_play_thread_func(gpointer data); gpointer ssbd_rec_thread_func(gpointer data); void ssbd_thread_create(struct ssbd *ssbd, GThreadFunc thread_func); void ssbd_thread_join(struct ssbd *ssbd); void ssbd_thread_kill(struct ssbd *ssbd); int mkdir_p(const char *s,mode_t mode); int fmkdir_p(const char *filename, mode_t mode); void ssbd_watchdog(struct ssbd *ssbd, int start_rec); void ssbd_play_last_sample(struct ssbd *ssbd, struct qso *qso); void ssbd_assert(void); #define SSBDRECORDING (ssbd->recording) #else #define SSBDRECORDING 0 #endif /* cor.c */ #ifdef HAVE_SDL #define COR_KM_MASK 0xffffff00 #define COR_KM_MIN -19968 #define COR_KM_MAX 20224 #define COR_KM_STEP 256 #include "cor.h" #include "cordata.h" #ifdef _MSC_VER #pragma pack(push, 1) #endif struct kmpoint{ short int kx,ky; char c; }__attribute__((packed)); #ifdef _MSC_VER #pragma pack(pop) #endif struct kmarray{ struct kmpoint *data; int len; int size; }; struct cor{ const struct cpoint *file; int items; gchar *loc; GHashTable *km; /* of struct ckmpoint */ GHashTable *wwl4; /* of struct ckmpoint */ GHashTable *wwl2; /* of struct ckmpoint */ GThread *thread; int thread_break; double sw_myw, sw_myh; }; extern struct cor *cor; extern double maxcnt; //extern double gst[360]; struct kmarray *kmarray_new(void); void kmarray_add(GHashTable *hash, gpointer key, struct kmpoint *km); struct cor *init_cor(void); void free_cor(struct cor *cor); int cor_recalc(struct subwin *sw, gchar *locator); gpointer cor_thread_func(gpointer arg); void cor_read_handler(char *line); gboolean free_km_item(gpointer key, gpointer value, gpointer user_data); gpointer k2key(int kx, int ky); #endif /* font.c */ #define R_EARTH (111.2*180.0/MY_PI) /* 6371.2907 */ /* #define R_EARTH 6373.4 */ #define FONT_TRANSP 1 #define FONT_CENTER 2 #define FONT_RIGHT 4 #define FONT_SYNC 8 #define q0(item) (item)?(item):"" #define sqr(x) ((x)*(x)) #ifdef HAVE_SDL void fontoutc(SDL_Surface *surface, int x, int y, int color, int bgcolor, int flags, unsigned char c); void fontout(SDL_Surface *surface, int x, int y, int color, int flags, char *s); void fontoutf(SDL_Surface *surface, int x, int y, int color, int flags, char *m, ...); #endif /* HAVE_SDL */ struct takeoff{ int from, to; int value; }; /* dxc.c */ struct spot{ double qrg; gchar *callsign,*from,*text; int zulu; time_t expire,endbold; struct spot *prev,*next; }; struct spotdb{ struct spot **first; struct spot **cur; int timer_id; int sfi; }; extern struct spotdb *spotdb; struct spotdb *init_spotdb(void); void free_spotdb(struct spotdb *spotdb); void remove_spot(struct spotdb *spotdb, int bi, struct spot *spot); struct spot *dxc_parse_spot(gchar *str); void free_spot(struct spot *spot); int dxc_read_spot(gchar *str); void dxc_seek(struct spotdb *spotdb, int value); void dxc_assert_spot(struct spot *spot); void dxc_assert(struct spotdb *spotdb, int bi); int dxc_remove_expired(void); void dxc_timer(cba_t); void dxc_dump(struct spotdb *spotdb, int bi); /* namedb.c */ struct namedb{ GHashTable *names; /* key=rawcall, value=name */ GHashTable *dummy; }; extern struct namedb *namedb; struct namedb *init_namedb(void); void free_namedb(struct namedb *namedb); void read_namedb_files(struct namedb *namedb); gchar *find_name_by_call(struct namedb *namedb, gchar *call); int save_namedb_into_file(struct namedb *namedb, gchar *filename); void add_namedb(struct namedb *namedb, gchar *call, gchar *name); gint get_namedb_size(struct namedb *namedb); /* ebw.c */ #ifdef _MSC_VER #pragma pack(push, 1) #endif struct dbfhdr{ char ver; /* mostly 03 */ char year,month,day; guint32 records; guint16 hdrsize, recsize; char padding[20]; /* total 32 bytes */ }__attribute__((packed)); struct dbffield{ char name[11]; /* \0 terminated */ char type; /* Char,Date YYYYMMDD,Float,Logical TFYN,Memo,Numeric */ guint32 disaplacement; char len, decimal; char padding[14]; /* total 32 bytes */ }__attribute__((packed)); #ifdef _MSC_VER #pragma pack(pop) #endif int load_ebw_from_file(struct cw *cw, struct namedb *namedb, char *filename); int read_ebw_files(struct cw *cw, struct namedb *namedb); /* sdev.c */ #define SDINIT char sdlen=0;int sdret;char sdbuf[256] #define SDADD(a) sdbuf[sdlen++]=(a) #define SDADD2(a) sdbuf[sdlen++]=(a)&0xff;sdbuf[sdlen++]=(a)>>8 //#define SDPLUS(sd,cmd) sdret=sd_protplus((sd),(cmd),sdbuf,&sdlen) #define SDMAXLEN 300 #define SDFCE 1 #define SDADR 2 #define SDLEN 3 enum conntype{ CT_TTYS, CT_UDP, CT_TCP, CT_FTDI }; enum sprotocol{ SPROT_NONE, SPROT_ROTAR }; enum SCONN_CMD{ SCONN_ROT_AZIM }; struct sconn_job{ struct sconn_job *next; struct sconn_job *prev; enum SCONN_CMD cmd; struct sdev *sdev; int azim; }; struct sdev{ struct sdev *next; struct sdev *prev; struct sconn *sconn; unsigned char saddr; int timeout_ms; int (*sdev_main)(struct sdev *sdev); void *arg; }; struct sconn{ struct sconn *next; struct sconn *prev; enum conntype type; int opened; int refcnt; gchar *ttys_filename; gchar *ip_hostname; int ip_port; int usb_port; GThread *thread; int thread_break; int give_me_chance; struct sconn_job jobs; MUTEX_DEFINE(jobs); struct sdev sdevs; MUTEX_DEFINE(sdevs); int sdevi; enum sprotocol sprotocol; int fd; /* valid only in child process! */ #ifdef HAVE_LIBFTDI struct ftdi_context *ftdi; unsigned char ftdi_state; int ftdi_vid, ftdi_pid; char *ftdi_serial; #endif int freeing; int (*open)(struct sconn *, int verbose); int (*close2)(struct sconn *); int (*read)(struct sconn *, void *data, size_t len, int timeout_ms); int (*write)(struct sconn *, void *data, size_t len); }; extern struct sconn sconns; extern MUTEX_DEFINE(sconns); void init_sconns(void); struct sdev *sd_open_ttys(char saddr, char *filename, int timeout_ms); struct sdev *sd_open_udp(char *hostname, int udpport); struct sdev *sd_open_udp(char *hostname, int tcpport); #ifdef HAVE_LIBFTDI struct sdev *sd_open_ftdi(char saddr, int vid, int pid, char *serial, int timeout_ms); #endif void sc_open_common(struct sconn *sconn); int free_sd(struct sdev *sd); int sconn_file_open(struct sconn *sconn, int verbose); int sconn_file_close(struct sconn *sconn); int sconn_file_read(struct sconn *sconn, void *data, size_t len, int timeout_ms); int sconn_file_write(struct sconn *sconn, void *data, size_t len); #ifdef HAVE_LIBFTDI int sconn_ftdi_open(struct sconn *sconn, int verbose); int sconn_ftdi_close(struct sconn *sconn); int sconn_ftdi_read(struct sconn *sconn, void *data, size_t len, int timeout_ms); int sconn_ftdi_write(struct sconn *sconn, void *data, size_t len); #endif gpointer sc_main(gpointer xxx); char *sd_err(int err); int sd_prot(struct sconn *sconn, char saddr, char fce, char *data, int *len, int timeout); void sconn_job_add(struct sconn *sconn, struct sconn_job *job); struct sconn_job *sconn_job_get(struct sconn *sconn); /* rotar.c */ struct sdev; enum rot_type { ROT_NONE=0, ROT_OK1ZIA_TTYS=1, ROT_OK1ZIA_FTDI=2, ROT_HAMLIB=3, ROT_REMOTE=4 }; struct config_rotar{ gint nr; /* common */ gchar *rot_desc; enum rot_type rot_type; gchar *rot_filename; gchar *rot_hostname; gint rot_port; gint rot_vid, rot_pid; gchar *rot_serial; gint rot_timeout_ms, rot_beamwidth; /* ok1zia */ gint rot_saddr; /* hamlib */ gint rot_model; /* remote */ gchar *rot_rem_rotstr; }; struct rotar{ /* config */ struct sdev *sdev; #ifdef HAVE_HAMLIB ROT *rot; #endif int step; int rotchar; /* A, B, ... */ char rotstr[2]; int type; gchar *netid; gchar *desc; int beamwidth; /* in degrees */ /* device versions */ int verh, verl, identa; /* state */ int qtf, oldqtf, elev; // int timer_id; /* time between two command to prevent high cpu load */ int color; /* color of arrow in polar map */ int termcolor; /* color on terminal */ gchar *rem_rotstr; int last_req; #ifdef HAVE_HAMLIB GThread *hl_thread; int hl_azim; int hl_model; int hl_give_me_chance; int hl_thread_break; #endif }; extern GPtrArray *rotars; extern MUTEX_DEFINE(rotars); extern struct rotar *rotar; int init_rotars(void); int free_rotars(void); struct rotar *init_rotar(struct config_rotar *cfg, int rotchar); void free_rotar(struct rotar *rot); int rot_seek(struct rotar *rot, int uhel); struct config_rotar *get_config_rotar_by_number(GPtrArray *rotars, int nr); struct rotar *get_rotar(int nr); struct rotar *get_rotar_by_rotstr(char *rotstr); void rotar_read_handler(char *line); void timer_update_rotar(cba_t cba); void rotar_remote_update(char *c); void menu_rotar(cba_t cba); #ifdef HAVE_SDL int rot_update_colors(void); #endif int rotar_main(struct sdev *sdev); /* hash.c */ void hash_safe_insert(GHashTable *table, gchar *key, gchar *value); gboolean free_gstr(gpointer key, gpointer value, gpointer user_data); void free_hash(GHashTable *hash); /* control.c */ enum wt_type{ WT_CLEAR=0, WT_CALLSIGN, WT_RSTS, WT_RSTR, WT_QSONRS, WT_QSONRR, WT_EXC, WT_LOCATOR, WT_OPERATOR, WT_REMARK /* unused */ }; struct spypeer{ gchar *callsign; gchar *rsts,*rstr; gchar *qsonrs,*qsonrr; gchar *exc, *locator; gchar *remark, *operator_; gint peertx; gchar *inputline; gchar *peerid; gchar bandchar; }; void menu_forcerun(cba_t cba); /*void menu_spy(cba_t cba);*/ void menu_endspy(cba_t cba); int can_tx(struct band *b); int can_cq(struct band *b); void menu_grabband(cba_t cba); void net_grab(struct band *b, enum ccmd ccmd, char *netid); void ctrl_back(struct band *b); void wkd_tmpqso(struct band *band, enum wt_type type, gchar *call); void peer_tx(struct band *band, int tx); void do_endspy(cba_t cba, cba_t cba1); void menu_endspy(cba_t cba); void send_inputline(struct band *band); struct spypeer *init_spypeer(GPtrArray *sps, gchar *peerid, char bandchar); struct spypeer *get_spypeer_by_peerid(GPtrArray *sps, gchar *peerid, char bandchar); void free_spypeer(struct spypeer *sp); void free_spypeers(GPtrArray *sps); void clear_spypeer(struct spypeer *sp); void send_spypeer_request(cba_t cba); void spypeer_add(char *peerid, char bandchar); int load_spypeers_from_file(char *filename); int save_spypeers_to_file(char *filename); /* html.c */ #define HTML_ICON 1 #define HTML_MAP 2 #define HTML_CHART 4 #define HTML_IMG_ROOT 8 #define HTML_FOR_PHOTO 0x10 gchar *qh(GString *gs, gchar *s); void html_style(GString *gs); void html_header(GString *gs, gchar *title, int flags); void html_ref_header(GString *gs); void html_band_ref(GString *gs, struct band *b, struct config_band *confb); void html_ref_footer(GString *gs, struct band *b, struct config_band *confb); void html_band_header(GString *gs, struct band *b, struct config_band *confb, int flags, struct subwin *map, struct subwin *chart); void html_band_footer(GString *gs); void html_footer(GString *gs); void html_qsos(GString *gs, struct band *b, struct config_band *confb); void html_complete(GString *gs, int flags); int export_all_bands_html(void); /* sdl.c */ #ifdef HAVE_SDL #define SDL_USERDATA_IN_FILTEREVENTx #define FONT_W sdl->font_w #define FONT_H sdl->font_h struct sdl{ SDL_Surface *screen; SDL_Surface *icon; int bpp; SDL_Color colors[256]; SDL_Rect termarea; int gr[16]; int termcol[16]; int yellow, red, green; int cursor; SDL_Thread *event_thread; int event_thread_break; int mouse_drag, drag_buttons; int eventpipestate; MUTEX_DEFINE(eventpipestate); /* GMutex *eventpipestate_mutex; #ifdef LEAK_DEBUG_LIST char *eventpipestate_file; int eventpipestate_line; #endif */ gchar *title; int mouse_x, mouse_y; int pipefd; iconv_t iconv; int font_w; int font_h; #if defined(_MSC_VER) || defined(__MINGW32__) int event_timer_id; #endif }; extern struct sdl *sdl; struct sdl *init_sdl(void); void sdl_stop_event_thread(void); void free_sdl(void); SDL_Rect *new_rect(int x, int y, int w, int h); void free_rect(SDL_Rect *rect); void sdl_info(void); int sdl_setvideomode(int w, int h, int init); void sdl_redraw_screen(void); int sdl_get_terminal_size(int, int *, int *); int sdl_attach_terminal(int, int, int); int sdl_event_thread(void *handle); #ifdef SDL_USERDATA_IN_FILTEREVENT int sdl_filter_events(void *userdata, const SDL_Event *ev); #else int sdl_filter_events(const SDL_Event *ev); #endif int makecol(int r, int g, int b); int clip_pixel(SDL_Rect *clip, int x, int y); void fast_putpixel8(SDL_Surface *surface, int x, int y, int color); void fast_putpixel16(SDL_Surface *surface, int x, int y, int color); void fast_putpixel24(SDL_Surface *surface, int x, int y, int color); void fast_putpixel32(SDL_Surface *surface, int x, int y, int color); extern void (*fast_putpixel)(SDL_Surface *surface, int x, int y, int color); int fast_getpixel8(SDL_Surface *surface, int x, int y); int fast_getpixel16(SDL_Surface *surface, int x, int y); int fast_getpixel24(SDL_Surface *surface, int x, int y); int fast_getpixel32(SDL_Surface *surface, int x, int y); extern int (*fast_getpixel)(SDL_Surface *surface, int x, int y); int overlapped_pixel(SDL_Rect *clip_rect, int x, int y); int overlapped_rect(SDL_Rect *clip_rect, SDL_Rect *rect); int overlapped_line(SDL_Rect *clip_rect, int x1, int y1, int x2, int y2); void line(SDL_Surface *surface, int x1, int y1, int x2, int y2, int color); void cross(SDL_Surface *surface, int x, int y, int color, int zoom); void pip(SDL_Surface *surface, int x, int y, int color1, int color2, int zoom); void rect(SDL_Surface *surface, int x1, int y1, int x2, int y2, int c); void rect2(SDL_Surface *surface, SDL_Rect *r, int c); int sdl_set_title(gchar *title); void sdl_screenshot(int topwindow); void do_line(SDL_Surface *surface, int x1, int y1, int x2, int y2, int color, void (*func)(SDL_Surface *surface, int x, int y, int d) ); void triangle(SDL_Surface *surface, int x1, int y1, int x2, int y2, int x3, int y3, int c); #endif /* map.c */ int sw_map_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_map_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_map_redraw(struct subwin *sw, int flags); void sw_map_check_bounds(struct subwin *sw); void sw_map_raise(struct subwin *sw); int maps_reload(void); void map_clear_qso(struct qso *qso); void map_add_qso(struct qso *qso); #ifdef HAVE_SDL void sw_map_redraw_rect(struct subwin *sw, SDL_Rect *area, int flags); void sw_map_compose(struct subwin *sw, SDL_Rect *area); void sw_map_redraw_rotar(struct subwin *sw, SDL_Rect *area, int flags); void sw_map_update_rotar(struct subwin *sw); void km2px(struct subwin *sw, int kx, int ky, int *px, int *py); void px2km(struct subwin *sw, int px, int py, int *kx, int *ky); void pxkm2o(struct subwin *sw, int px, int py, int kx, int ky, int *ox, int *oy); void hw2km(double h1, double w1, double h2, double w2, int *kx, int *ky); void km2qrbqtf(int kx, int ky, double *qrb, double *qtf); void plot_cor(struct subwin *sw, SDL_Surface *surface, SDL_Rect *area); void plot_qrv(struct subwin *sw, SDL_Surface *surface, struct qrv_item *qi); void plot_qrvs(struct subwin *sw, SDL_Surface *surface, SDL_Rect *area); void plot_gst(struct subwin *sw, SDL_Surface *surface, SDL_Rect *area, double gst[360], int c); void plot_qso(struct subwin *sw, SDL_Surface *surface, struct qso *qso); void plot_qsos(struct subwin *sw, SDL_Surface *surface, SDL_Rect *area); void plot_nearest_qso(struct subwin *sw); void plot_nearest_qrv(struct subwin *sw); void plot_info_qso(struct subwin *sw, SDL_Surface *surface, struct qso *qso); void plot_info_qrv(struct subwin *sw, SDL_Surface *surface, struct qrv_item *qi); int plot_qrb_qth(struct subwin *sw, SDL_Surface *surface, int mouse_x, int mouse_y); void plot_rotars(struct subwin *sw, SDL_Surface *surface, SDL_Rect *area, SDL_Rect *outarea); void map_update_layout(struct subwin *sw); void move_map(struct subwin *sw, int dx, int dy); void zoom(struct subwin *sw, double factor, int centerx, int centery); int map_update_qth(struct subwin *sw); void map_recalc_cors(void); struct qso *find_nearest_qso(struct band *b, int mouse_x, int mouse_y); gchar *find_nearest_qrv(struct qrvdb *qrvdb, int mouse_x, int mouse_y); void map_for_photo(struct subwin *sw); void map_recalc_gst(struct subwin *sw); #endif /* scope.c */ int sw_scope_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_scope_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_scope_redraw(struct subwin *sw, int flags); void sw_scope_check_bounds(struct subwin *sw); void sw_scope_raise(struct subwin *sw); /* dsp */ #ifdef HAVE_SNDFILE #define MAX_CHANNELS 4 enum dsp_type { DSPT_OSS, DSPT_ALSA, DSPT_SSBD }; struct dsp{ enum dsp_type type; /* OSS only */ #ifdef HAVE_OSS char *filename; int fd; int fmt_mask; int oss_format,fragment,blksize; #endif /* Alsa only */ #ifdef HAVE_ALSA snd_pcm_t *pcm; snd_pcm_format_t pcm_format; int pcm_opened; int pcm_recover; #endif /* OSS and Alsa */ gchar *name; /* human readable string (/dev/dsp, hw:0,0) */ int channels,speed; char *source; int bpf; /* bytes per frame 8bit=1, 16bit=2 ... */ int (*open)(struct dsp *dsp, int rec); int (*close2)(struct dsp *dsp); int (*write)(struct dsp *dsp, void *data, int len); int (*read)(struct dsp *dsp, void *data, int len); int (*reset)(struct dsp *dsp); int (*sync)(struct dsp *dsp); int (*set_format)(struct dsp *dsp, SF_INFO *sfinfo); int (*set_source)(struct dsp *dsp); int (*set_plevel)(struct dsp *dsp); }; /* format: 0x10005 8 bit PCM 0x10002 16 bit PCM 0x10010 u-law 0x10011 a-law 0x10012 IMA ADPCM 0x10013 MS ADPCM 0x10020 GSM 6.1 */ extern struct dsp *dsp; struct dsp *init_dsp (void); void free_dsp(struct dsp *dsp); int dummy_dsp_set_format(struct dsp *dsp, SF_INFO *sfinfo); int dummy_dsp_open(struct dsp *dsp, int rec); int dummy_dsp_close(struct dsp *dsp); int dummy_dsp_write(struct dsp *dsp, void *data, int len); int dummy_dsp_read(struct dsp *dsp, void *data, int len); int dummy_dsp_reset(struct dsp *dsp); int dummy_dsp_sync(struct dsp *dsp); int dummy_dsp_set_source(struct dsp *dsp); int dummy_dsp_set_plevel(struct dsp *dsp); #endif /* oss.c */ #if defined(HAVE_OSS) && defined(HAVE_SNDFILE) int oss_set_format(struct dsp *dsp, SF_INFO *sfinfo); int oss_open(struct dsp *dsp, int rec); int oss_close(struct dsp *dsp); int oss_write(struct dsp *dsp, void *data, int len); int oss_read(struct dsp *dsp, void *data, int len); int oss_reset(struct dsp *dsp); int oss_sync(struct dsp *dsp); int oss_get_sources(GString *labels); int oss_set_source(struct dsp *dsp); int oss_set_plevel(struct dsp *dsp); char *oss_recsrc2source(int recsrc); char *stripr(char *s); #endif /* alsa.c */ #ifdef HAVE_SNDFILE int alsa_set_format(struct dsp *dsp, SF_INFO *sfinfo); int alsa_open(struct dsp *dsp, int rec); int alsa_close(struct dsp *dsp); int alsa_write(struct dsp *dsp, void *data, int len); int alsa_read(struct dsp *dsp, void *data, int len); int alsa_reset(struct dsp *dsp); int alsa_sync(struct dsp *dsp); int alsa_get_sources(GString *labels); int alsa_set_source(struct dsp *dsp); int alsa_set_plevel(struct dsp *dsp); #endif /* threadpipe.c */ struct threadpipe{ int threadpipe_read, threadpipe_write; /* communication worker_threads->main */ GString *threadpipe_rdbuf; }; extern struct threadpipe *tpipe; struct threadpipe *init_threadpipe(void); void free_threadpipe(struct threadpipe *tpipe); void threadpipe_read_handler(cba_t cba); void threadpipe_rel_read(gchar *str); int tp_printf(char *m, ...); /* img_png.c */ #ifdef HAVE_SDL SDL_Surface *do_png_load(char *filename); SDL_Surface *do_png_create(const void *data, int len); #endif /* gfx_img.c */ #ifdef HAVE_SDL int do_png_save(SDL_Surface * surf, char * fname); #endif /* icons.inc */ #include "icons.h" /* alsa.c */ #ifdef HAVE_ALSA void alsa_info(void); #endif /* scandir.c */ /*int tucnak_scandir(const char *dir, struct dirent ***namelist, int (*select) (const struct dirent *), int (*cmp) (const void *, const void *));*/ int tucnak_scandir(char *dir, struct dirent ***namelist, int (*select) (const struct dirent *), int (*cmp) (const void *, const void *)); int tucnak_alphasort (const void *a, const void *b); /* settings.c */ extern char *txt_settings; /* ntpq.c */ #ifndef __CYGWIN__ struct ntpq { pid_t pid; int rfd; struct winsize ws; GString *buf; int good, oldgood; int timer; }; extern struct ntpq *ntpq; struct ntpq *init_ntpq(void); void free_ntpq(struct ntpq *ntpq); void ntpq_timer(cba_t cba); void ntpq_read_handler(cba_t cba); #endif /* sked.c */ struct skedwin_data{ int x,y,w,h; int esccnt; struct band *band; }; struct sked{ gchar *sked_time, *operator_ , *src_shortpband, *qrg; gint we_call; gchar *pband, *time_str, *callsign, *locator, *remark; int worked; }; int sw_sked_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_sked_mouse_func(struct subwin *sw, struct event *ev, int fw); gchar *sw_sked_sprint(struct sked *sked); void sw_sked_redraw(struct subwin *sw, int flags); void sw_sked_check_bounds(struct subwin *sw); void sw_sked_read(gchar *str, int from_my); void refresh_sked(struct qso *q); void sked_fn(struct dialog_data *dlg); void sked(void); void sked_from_tmpqso(struct tmpqso *tmpqso); void sked_from_qso(struct qso *qso); void sked_pband_func(cba_t cba); void sked_pband(int apband_int); int dlg_pband(struct dialog_data *dlg, struct dialog_item_data *di); struct zstring *sked_format(struct sked *sked); struct sked *sked_parse(struct zstring *zstr); void free_sked(struct sked *sked); void recalc_worked_skeds(struct band *band); void draw_skedwindow(struct skedwin_data *skedwdata); void skedwindow_func(struct window *win, struct event *ev, int fwd); void skedw_create(struct band *b); /* trig.c */ #ifdef HAVE_HAMLIB enum trig_cmd { TRIG_FREQ, TRIG_MODE, TRIG_MODE_FREQ, TRIG_RESENDFREQ, TRIG_RIT }; struct trig_job{ struct trig_job *next; struct trig_job *prev; enum trig_cmd cmd; rmode_t mode; freq_t freq; }; struct trig{ GThread *thread; int thread_break; //int pipe_read, pipe_write; struct trig_job jobs; MUTEX_DEFINE(jobs); RIG *rig; freq_t qrg; int locked; rig_model_t model; char *filename; int speed; enum rig_errcode_e error; }; extern struct trig *trig; extern GIndexArray *riglist; // of struct rig_caps struct trig *init_trig(void); void free_trig(struct trig *trig); void trig_job_add(struct trig *trig, struct trig_job *job); struct trig_job *trig_job_get(struct trig *trig); gpointer trig_main(gpointer xxx); void trig_read_handler(struct trig *trig, char *s); void trig_set_mode(struct trig *trig, rmode_t mode); void trig_set_qrg(struct trig *trig, double qrg); void trig_set_mode_qrg(struct trig *trig, rmode_t mode, double qrg); void trig_resend_freq(struct trig *trig); void trig_set_rit(struct trig *trig, double rit); int trig_save_riglist(const struct rig_caps *caps, void *data); int trig_compare (const void *a, const void *b); char *trig_short_errstr(enum rig_errcode_e error); #endif /* glinebuf.c */ struct glinebuf{ GString *gs; gchar *line; }; struct glinebuf *init_glb(const char *str); void free_glb(struct glinebuf *glb); void glb_append(struct glinebuf *glb, const char *str); const char *glb_line(struct glinebuf *glb); /* zstring.c */ struct zstring { int tokenpos; char *str; #ifdef LEAK_DEBUG_LIST char *file; int line; #endif }; #ifdef LEAK_DEBUG_LIST #define zconcatesc(x...) debug_zconcatesc(__FILE__, __LINE__, x) #define zstrdup(x) debug_zstrdup(__FILE__, __LINE__, x) struct zstring *debug_zconcatesc(char *file, int line, char *s1, ...); struct zstring *debug_zstrdup(char *file, int line, const char *str); #else struct zstring *zconcatesc(char *s1, ...); struct zstring *zstrdup(const char *str); #endif char *ztokenize(struct zstring *zstr, int first); void zfree(struct zstring *zstr); int ztokens(struct zstring *zstr); int zwrite(int fd, struct zstring *zs); /* fhs.c */ int fhs_lock(char *device, int ignore_stale); int fhs_unlock(char *device); char *fhs_error(char *buf, int maxlen, int err, char *device); /* excdb.c */ extern struct excdb *excdb; struct exc_item{ gchar *exc0, *exc1; gint stamp0, stamp1; }; struct cxe_item{ gchar *call0, *call1; gint stamp0, stamp1; }; struct excdb{ GHashTable *exc; /* key=call, value=exc_item */ GHashTable *cxe; /* key=exc, value=cxe_item */ GHashTable *vexc; /* key=exc, value=null (exists or not) */ GIndexArray *vexcia; /* sorted excs */ int latest; gchar *excname; enum exctype exctype; }; struct excdb *init_exc(void); gboolean free_exc_item(gpointer key, gpointer value, gpointer user_data); gboolean free_cxe_item(gpointer key, gpointer value, gpointer user_data); gboolean free_vexc_item(gpointer key, gpointer value, gpointer user_data); void free_exc(struct excdb *excdb); void clear_exc(struct excdb *excdb); gint get_exc_size(struct excdb *excdb); gint get_cxe_size(struct excdb *excdb); gint get_vexc_size(struct excdb *excdb); void load_one_exc(struct excdb *excdb, gchar *s); int load_exc_from_file(struct excdb *excdb, gchar *filename); void load_one_vexc(struct excdb *excdb, gchar *s); int load_vexc_from_file(struct excdb *excdb, gchar *filename); int load_vexc_from_mem(struct excdb *excdb, const char *file, const long int len); int is_valid_vexc(struct excdb *excdb, gchar *vexc); void read_exc_files(struct excdb *excdb, enum exctype exctype, gchar *excname); void exc_ia_verified(gpointer key, gpointer value, gpointer user_data); void exc_ia_waz(gpointer key, gpointer value, gpointer user_data); void exc_ia_itu(gpointer key, gpointer value, gpointer user_data); void save_one_exc(gpointer key, gpointer value, gpointer user_data); int save_exc_string(struct excdb *excdb, GString *gs); int save_exc_into_file(struct excdb *excdb, gchar *filename); void add_exc(struct excdb *excdb, gchar *call, gchar *wwl, gint stamp); void add_cxe(struct excdb *excdb, gchar *wwl, gchar *call, gint stamp); gchar *find_exc_by_call(struct excdb *excdb, gchar *call); gchar *find_exc_by_call_newer(struct excdb *excdb, gchar *call, int maxstamp); gchar *find_call_by_exc(struct excdb *exc, gchar *wwl); void update_exc_from_band(struct excdb *excdb, struct band *band); void update_exc_from_ctest(struct excdb *excdb, struct contest *ctest); int valid_vexc(struct excdb *excdb, gchar *vexc); int rsgbdc_maxcount(char *exc); void usaca_multiple_exc(char *s); /* qrvdb.c */ #define QRVSSIZE 30 struct qrv_item{ gchar *call; gchar *wwl; int bands_qrv; // qrv on band int wkd[32]; // 0 not wkd or no info about // <0 wkd by others // >0 wkd by me, maybe also by others gchar *text; time_t kst_time; // time when spot was caught on KST int bands_wkd; // wkd in this contest int kx,ky; double qrb; int qtf; double weight; }; struct qrvdb{ GIndexArray *qrvs; // of struct qrv_item GHashTable *hash; int def_bands; double antchar[360]; int beamwidth; double gst[360]; int (*sort)(const void*, const void *); int (*sort2)(const void*, const void *); int showall; char search[QRVSSIZE]; }; extern struct qrvdb *qrvdb; struct qrvdb *init_qrv(void); void clear_qrv(struct qrvdb *qrvdb); void free_qrv(struct qrvdb *qrvdb); struct qrv_item *qrv_add(gchar *call, gchar *wwl, int qrv_int, int wkd[32], const gchar *text, time_t kst_time); int load_qrv_files(struct qrvdb *qrvdb); int save_qrv_to_file(char *filename); int load_qrv_from_file(struct qrvdb *qrvdb, gchar *filename); void load_one_qrv(struct qrvdb *qrvdb, gchar *s); void qrv_set_wkd(struct qrvdb *qrvdb, struct qso *qso); void qrv_recalc_wkd(struct qrvdb *qrvdb); void qrv_compute_qrbqtf(struct qrv_item *q); void qrv_recalc_qrbqtf(struct qrvdb *qrvdb); void qrv_recalc_gst(struct qrvdb *qrvdb); int qrv_skip(struct qrv_item *qi, int bi); void sw_qrv_seek(struct subwin *sw, int value); struct qrv_item *qrv_get(struct qrvdb *qrvdb, char *call); int qrv_compare_call(const void *a, const void *b); int qrv_compare_wwl(const void *a, const void *b); int qrv_compare_me(const void *a, const void *b); int qrv_compare_qrb(const void *a, const void *b); int qrv_compare_qtf(const void *a, const void *b); int qrv_compare_kst_time(const void *a, const void *b); int qrv_compare_text(const void *a, const void *b); void qrv_touch(struct qrvdb *qrvdb, char *call); void edit_qrv(cba_t cba); /* fft.c */ #define BLUEPAL #define ZIAPALx #ifdef ZIAPAL #define FFT_COLORS 864 #endif #ifdef BLUEPAL #define FFT_COLORS 256 #endif #define FFT_AMPLEN (SSBBUFFER_LEN/4 + 1) #define FFT_MA 8 struct fft{ #ifdef USE_FFT fftw_plan plan; double *rin; fftw_complex *cout; int n; int pal[FFT_COLORS]; SDL_Surface *screen; MUTEX_DEFINE(screen); int screeny; double amp[FFT_AMPLEN]; /*double ma_amp[FFT_MA][FFT_AMPLEN]; double ma_sum[FFT_AMPLEN];*/ //int ma_i; //int wf_x2, wf_x3; double nea_amp[FFT_AMPLEN]; #else int dummy; #endif }; extern struct fft *fft; struct fft *init_fft(void); void free_fft(struct fft *fft); void fft_start(int n); void fft_resize(struct fft *fft, struct subwin *sw); void sw_fft_redraw(struct subwin *sw, int flags); void fft_do(struct fft *fft); int fft_pal(double amp, double min, double max); /* cabrillo.c */ int export_all_bands_cbr(void); /* sun.c */ double sunriseset(int sunrise, double latitude, double longitude); char *sunrisesetstr(char *str, double latitude, double longitude); /* list.c */ void import_list(void *xxx, char *filename); /* masterdb.c */ struct masterdb{ THashTable *masters; /* key=call, value=name */ }; extern struct masterdb *masterdb; struct masterdb *init_masterdb(void); void free_masterdb(struct masterdb *masterdb); void add_masterdb(struct masterdb *masterdb, gchar *call); gint get_masterdb_size(struct masterdb *masterdb); void load_one_masterdb(struct masterdb *masterdb, gchar *s); int load_masterdb_from_mem(struct masterdb *masterdb, const char *file, const long int len); int load_masterdb_from_file(struct masterdb *masterdb, gchar *filename); void read_masterdb_files(struct masterdb *masterdb); gchar *masterdb_search(struct masterdb *masterdb, char *pattern, int maxreslen); /* hdkeyb.c */ #define LINE_1 0 #define LINE_2 0x40 #define HDKEYB_LINES 2 #define HDKEYB_CHARS 16 #define HDKEYB_ROTARS 4 #define HDKEYB_BUFLEN 32 struct hdkeyb{ #ifdef HAVE_LIBFTDI struct ftdi_context *ftdi; GThread *thread; int qtf[HDKEYB_ROTARS]; int give_me_chance; int thread_break; char sbuf[HDKEYB_BUFLEN], rbuf[HDKEYB_BUFLEN]; int slen, rlen; char wr, rd; char oldkeystate; char vram[HDKEYB_LINES][HDKEYB_CHARS], oldvram[HDKEYB_LINES][HDKEYB_CHARS]; int actnr; char qtfstr[4]; #else int dummy; #endif }; extern struct hdkeyb *hdkeyb; struct hdkeyb *init_hdkeyb(void); void free_hdkeyb(struct hdkeyb *hdkeyb); gpointer hdkeyb_main(gpointer xxx); void hdkeyb_read_handler(char *s); void hdkeyb_key(struct hdkeyb *hdkeyb, char key); void hdkeyb_activate(struct hdkeyb *hdkeyb, int nr); void hdkeyb_set_qtf(struct hdkeyb *hdkeyb); void hdkeyb_rel_qtf(struct hdkeyb *hdkeyb, int rel); void hdkeyb_send(struct hdkeyb *hdkeyb); int hdkeyb_flush(struct hdkeyb *hdkeyb); int hdkeyb_reset(struct hdkeyb *hdkeyb); int hdkeyb_setdir(struct hdkeyb *hdkeyb); int hdkeyb_cmd_nowait(struct hdkeyb *hdkeyb, char c); int hdkeyb_write(struct hdkeyb *hdkeyb, char c); int hdkeyb_wait(struct hdkeyb *hdkeyb); int hdkeyb_cmd(struct hdkeyb *hdkeyb, char c); #define hdkeyb_cursor(hdkeyb, c) hdkeyb_cmd(hdkeyb, 0x80|(c)) int hdkeyb_data(struct hdkeyb *hdkeyb, char c); void hdkeyb_cgram(struct hdkeyb *hdkeyb, char pos); void hdkeyb_printc(struct hdkeyb *hdkeyb, char *str); void hdkeyb_printf(struct hdkeyb *hdkeyb, char line, char col, char *m, ...); void hdkeyb_print(struct hdkeyb *hdkeyb, char pos, char *str); void hdkeyb_clear(struct hdkeyb *hdkeyb); char hdkeyb_keyb_state(struct hdkeyb *hdkeyb); char hdkeyb_read_key(struct hdkeyb *hdkeyb); int hdkeyb_debug_pins(char a, char *t); void hdkeyb_draw_rotar(struct hdkeyb *hdkeyb, int nr); void hdkeyb_draw_rotars(struct hdkeyb *hdkeyb); //int hdkeyb_test(void); /* wiki.c */ //gchar *qw(GString *gs, gchar *s); void wiki_header(GString *gs); void wiki_band_header(GString *gs, struct band *b, int flags); void wiki_footer(GString *gs); void wiki_complete(GString *gs); int export_all_bands_wiki(void); /* player.c */ #define PREVIEW_H 3 #define PLAYER_H 1 int sw_player_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_player_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_player_redraw(struct subwin *sw, int flags); void sw_player_check_bounds(struct subwin *sw); void sw_player_raise(struct subwin *sw); void sw_player_free(struct subwin *sw); void player_play(char *filename); /* chart.c */ #define CHART_H 0 struct chqso{ int time; int value; char *call; int pts; }; struct chband{ GPtrArray *chqsos; // of struct chqso int color; gchar *pcall; gchar *pwwlo; gchar *tname; gchar *pband; int mouse_value; gchar *filename; }; //int sw_chart_load_files(struct subwin *sw); int sw_chart_load_file(struct subwin *sw, char *filename); int sw_chart_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_chart_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_chart_redraw(struct subwin *sw, int flags); void sw_chart_check_bounds(struct subwin *sw); void sw_chart_raise(struct subwin *sw); int save_chart_to_file(char *filename); int load_chart_from_file(char *filename); void sw_chart_free(struct subwin *sw); void sw_chart_free_band(struct chband *b); int sw_chart_recalc_extremes(struct subwin *sw); int chart_reload(void); void chart_clear_all(void); void sw_chart_delete_band(cba_t idx, cba_t unused); /* httpd.c */ struct httpd{ int port; int sock; GPtrArray *conns; }; struct httpconn{ int sock; GString *request; GString *response; char *response_mem; int response_len, response_i; }; extern struct httpd *httpd; struct httpd *init_httpd(void); void free_httpd(struct httpd *httpd); void httpd_accept_handler(cba_t cba); void httpd_read_handler(cba_t cba); void httpd_write_handler(cba_t cba); void httpd_header(struct httpconn *conn, int status); void httpd_get(struct httpconn *conn); /* eprintf.c */ int zg_string_veprintfa(const char *flags, GString *gs, char *fmt, va_list l); int zg_string_eprintfa(const char *flags, GString *gs, char *fmt, ...); int zg_string_eprintf(const char *flags, GString *gs, char *fmt, ...); #endif /* __HEADER_H */ tucnak2-2.48/src/setup.h0000644000175000017500000000624211567373656012066 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #define VERSION_STRING VERSION #define DEBUG /*#define LEAK_DEBUG #define LEAK_DEBUG_LIST*/ /*#define MAX_REDIRECTS 10*/ #define MAX_HISTORY_ITEMS 256 #define MENU_HOTKEY_SPACE 2 #define COL(x) ((x)*0x100) #define COLOR_MENU1 COL(070) #define COLOR_MENU_FRAME COL(070) #define COLOR_MENU_SELECTED COL(007) #define COLOR_MENU_HOTKEY COL(007) #define COLOR_MAINMENU COL(070) #define COLOR_MAINMENU_SELECTED COL(007) #define COLOR_MAINMENU_HOTKEY COL(070) #define COLOR_DIALOG COL(070) #define COLOR_DIALOG_FRAME COL(070) #define COLOR_DIALOG_TITLE COL(007) #define COLOR_DIALOG_TEXT COL(070) #define COLOR_DIALOG_CHECKBOX COL(070) #define COLOR_DIALOG_CHECKBOX_TEXT COL(070) #define COLOR_DIALOG_BUTTON COL(070) #define COLOR_DIALOG_BUTTON_SELECTED COL(0107) #define COLOR_DIALOG_FIELD COL(007) #define COLOR_DIALOG_FIELD_TEXT COL(007) #define SCROLL_ITEMS 2 #define DIALOG_LEFT_BORDER 3 #define DIALOG_TOP_BORDER 1 #define DIALOG_LEFT_INNER_BORDER 2 #define DIALOG_TOP_INNER_BORDER 0 #define DIALOG_FRAME 2 #define DIALOG_LB (DIALOG_LEFT_BORDER + DIALOG_LEFT_INNER_BORDER + 1) #define DIALOG_TB (DIALOG_TOP_BORDER + DIALOG_TOP_INNER_BORDER + 1) #define COL_BG COL(0x07) #define COL_NORM COL(0x07) #define COL_INV COL(0x38) #define COL_DARKRED COL(0x01) #define COL_DARKGREEN COL(0x02) #define COL_DARKYELLOW COL(0x03) #define COL_DARKBLUE COL(0x04) #define COL_DARKMAGENTA COL(0x05) #define COL_DARKCYAN COL(0x06) #define COL_GREY COL(0x07) #define COL_RED COL(0x41) #define COL_GREEN COL(0x42) #define COL_YELLOW COL(0x43) #define COL_BLUE COL(0x44) #define COL_MAGENTA COL(0x45) #define COL_CYAN COL(0x46) #define COL_WHITE COL(0x47) #define ESC_TIMEOUT 200 #define RESOURCE_INFO_REFRESH 300 #define NET_PORT 55555 #define MAX_INTERFACES 16 /* msec */ #define UDP_ANNOUNCE 10000 #define CONNECTION_TIMEOUT 30000 #define SEND_ACK_TIMEOUT 10000 #define ACK_TIMEOUT 20000 #define REMOVE_TIMEOUT 10000 #define DELAY_AFTER_REPLICATION 1000 #define DELAY_AFTER_UPDATE_ROTAR 500 /* sec */ #define NET_GLOBAL_EXPIRE 60 #define NET_MAX_SKEW_POS 120 #define NET_MAX_SKEW_NEG 60 /* TIPS: (all in seconds) REMOVE_TIMEOUT < NET_GLOBAL_EXPIRE*1000 UDP_ANNOUNCE * 3 < NET_GLOBAL_EXPIRE*1000 skew=60 NET_MAX_SKEW_NEG=skew NET_MAX_SKEW_POS=NET_GLOBAL_EXPIRE+skew */ /*#define SUSPCHAR "?"*/ #define IL_HIST_LEN 20 /* cwdb */ /* length of call, other characters are ignored*/ /*#define MAX_QS_LEN 10 */ /* A-Z, 0-9, '/' */ /*#define MAX_QS_ITEMS (26+10+1)*/ /* maximal count of matches */ /*#define MAX_CW_MATCHES 15 #define MAX_OBAND_MATCHES 15 #define MAX_BAND_MATCHES 15*/ #define MAX_CQ 6 tucnak2-2.48/src/control.c0000644000175000017500000002425711567373656012407 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" static char *strstates[]={"RUN","SP","REQR","REQS","RUNING","GIVEN"}; static char *strccmds[]={"REQ","ACC","REJ","BACK"}; void menu_forcerun(cba_t cba){ gchar *c; struct band *b; if (!ctest || !aband) return; b=aband; dbg("forcerun (st=%s)\n", strstates[b->ctrlstate]); c=g_strdup_printf("GR %s;%d;%s\n", b->pband, CCMD_REJ,net->myid); dbg(" send %s",c); rel_write_all(c); g_free(c); b->ctrlstate=CTRL_RUN; redraw_later(); } int can_cq(struct band *b){ if (!b) return 1; /* no contest, no limit */ return (b->ctrlstate&0x01)==0; } int can_tx(struct band *b){ if (!b) return 1; /* no contest, no limit */ return (b->ctrlstate&0x01)==0 || b->ctrlstate==CTRL_GIVEN; } void menu_grabband(cba_t cba){ gchar *c; struct band *b; int ctx1,ctx2; if (!ctest || !aband) return; b=aband; ctx1=can_cq(b); dbg("grabband (st=%s)\n", strstates[b->ctrlstate]); switch(b->ctrlstate){ /* RUN */ case CTRL_RUN:/* mozna poslat CCMD_REJ, aby S&P vychcipali */ break; case CTRL_REQR: b->ctrlstate=CTRL_GIVEN; c=g_strdup_printf("GR %s;%d;%s\n", b->pband, CCMD_ACC, b->ctrlsp); dbg(" send %s",c); rel_write_all(c); g_free(c); break; case CTRL_GIVEN: break; /* S&P */ case CTRL_SP: b->ctrlstate=CTRL_REQS; c=g_strdup_printf("GR %s;%d;%s\n", b->pband, CCMD_REQ, net->myid); dbg(" send %s",c); rel_write_all(c); g_free(c); break; case CTRL_REQS: case CTRL_RUNING: /* see ctrl_back */ b->ctrlstate=CTRL_SP; c=g_strdup_printf("GR %s;%d;%s\n", b->pband, CCMD_BACK, net->myid); dbg(" send %s",c); rel_write_all(c); g_free(c); break; } ctx2=can_cq(b); if (ctx1 && !ctx2) rx(); dbg(" (st=%s)\n", strstates[b->ctrlstate]); redraw_later(); } void net_grab(struct band *b, enum ccmd ccmd, gchar *netid){ int ctx1,ctx2; if (!b) return; dbg("net_grab (st=%s, cmd=%s, netid=%s)\n",strstates[b->ctrlstate],strccmds[ccmd], netid); ctx1=can_cq(b); switch(b->ctrlstate){ /* RUN */ case CTRL_RUN: case CTRL_REQR: case CTRL_GIVEN: switch(ccmd){ case CCMD_REQ: b->ctrlstate=CTRL_REQR; CONDGFREE(b->ctrlsp); b->ctrlsp=g_strdup(netid); break; case CCMD_BACK: b->ctrlstate=CTRL_RUN; break; case CCMD_REJ: /* first "force run mode" */ b->ctrlstate=CTRL_SP; break; default: break; } break; /* S&P */ case CTRL_SP: case CTRL_REQS: case CTRL_RUNING: switch(ccmd){ case CCMD_ACC: if (strcmp(netid,net->myid)) { b->ctrlstate=CTRL_SP; /* other S&P become control */ }else{ b->ctrlstate=CTRL_RUNING; } break; case CCMD_REJ: b->ctrlstate=CTRL_SP; break; default: break; } break; } ctx2=can_cq(b); if (ctx1 && !ctx2) rx(); dbg(" (st=%s)\n", strstates[b->ctrlstate]); redraw_later(); } void ctrl_back(struct band *b){ int ctx1,ctx2; gchar *c; if (!b) return; ctx1=can_cq(b); switch(b->ctrlstate){ /* S&P */ case CTRL_SP: case CTRL_REQS: case CTRL_RUNING: /* see menu_grabband/CTRL_RUNING */ b->ctrlstate=CTRL_SP; c=g_strdup_printf("GR %s;%d;%s\n", b->pband, CCMD_BACK, net->myid); dbg(" send %s",c); rel_write_all(c); g_free(c); break; default: break; } ctx2=can_cq(b); if (ctx1 && !ctx2) rx(); } void wkd_tmpqso(struct band *band, enum wt_type type, gchar *str){ gchar *c; if (!ctest || !band || !str) return; c=g_strdup_printf("WT %s;%s;%d;%s\n", band->pband, net->myid, type, str); /*dbg("%s\n", c);*/ rel_write_all(c); g_free(c); } void peer_tx(struct band *band, int tx){ gchar *c; if (!ctest || !band) return; c=g_strdup_printf("PT %s;%s;%d\n", band->pband, net->myid, tx); rel_write_all(c); g_free(c); } /*void menu_spy(cba_t cba){ if (!ctest || !aband) return; aband->spymode++; if (aband->spymode>=SM_LAST) aband->spymode=SM_INPUTLINE; redraw_later(); } */ void do_endspy(cba_t cba, cba_t cba1){ struct spypeer *sp; int i; char *filename; i=(int)GETCBA(cba, int_); if (i<0 || i>=ctest->spypeers->len) return; sp=(struct spypeer *)g_ptr_array_index(ctest->spypeers, i); free_spypeer(sp); g_ptr_array_remove(ctest->spypeers, sp); filename = g_strdup_printf("%s/spy", ctest->directory); save_spypeers_to_file(filename); g_free(filename); resize_terminal(CBA0); } void menu_endspy(cba_t cba){ int i; struct menu_item *mi = NULL; struct spypeer *sp; if (!ctest) return; if (!ctest->spypeers->len) return; if (!(mi = new_menu(3))) return; for (i=0; ispypeers->len;i++){ cba_t cba2; gchar *c; SETCBA(cba2, int_, i); sp=(struct spypeer *)g_ptr_array_index(ctest->spypeers, i); c=g_strdup_printf("%-6s %c %s", sp->operator_, sp->bandchar, sp->peerid); add_to_menu(&mi,stracpy(c),"", "", do_endspy, cba2, 0); g_free(c); } do_menu_selected(mi, CBA0, 0); } void send_inputline(struct band *band){ gchar *c; if (!band) return; c = g_strdup_printf("WI %s;%s;%s\n", band->pband, net->myid, band->il->cdata); rel_write_all(c); g_free(c); } void free_spypeer(struct spypeer *sp){ clear_spypeer(sp); CONDGFREE(sp->peerid); CONDGFREE(sp->operator_); CONDGFREE(sp->inputline); g_free(sp); } void free_spypeers(GPtrArray *sps){ int i; if (!sps) return; for (i=0;ilen;i++){ struct spypeer *sp; sp=(struct spypeer *)g_ptr_array_index(sps, i); free_spypeer(sp); } g_ptr_array_free(sps,1); } struct spypeer *init_spypeer(GPtrArray *sps, gchar *peerid, char bandchar){ struct spypeer *sp; char *filename; sp=get_spypeer_by_peerid(sps, peerid, bandchar); if (sp){ g_ptr_array_remove(sps, sp); free_spypeer(sp); } sp=g_new0(struct spypeer, 1); sp->peerid=g_strdup(peerid); sp->bandchar=bandchar; sp->peertx=-1; g_ptr_array_add(sps, sp); filename = g_strdup_printf("%s/spy", ctest->directory); save_spypeers_to_file(filename); g_free(filename); resize_terminal(CBA0); return sp; } struct spypeer *get_spypeer_by_peerid(GPtrArray *sps, gchar *peerid, char bandchar){ int i; bandchar=toupper(bandchar); for (i=0;ilen;i++){ struct spypeer *sp; sp=(struct spypeer *)g_ptr_array_index(sps, i); if (strcmp(sp->peerid, peerid)) continue; if (sp->bandchar != bandchar) continue; return sp; } return NULL; } void clear_spypeer(struct spypeer *sp){ CONDGFREE(sp->callsign); CONDGFREE(sp->rsts); CONDGFREE(sp->rstr); CONDGFREE(sp->qsonrs); CONDGFREE(sp->qsonrr); CONDGFREE(sp->exc); CONDGFREE(sp->locator); CONDGFREE(sp->remark); } void send_spypeer_request(cba_t cba){ char *peerid; gchar **items; char bandchar; int i, no; no=(int)GETCBA(cba, int_); dbg("send_spypeer_request no='%d'\n", no); dbg("bpeers='%s'\n", net->bpeers); items = g_strsplit(net->bpeers,";",0); /*for (i=0; items[i]!=NULL;i++){ if (i==no) goto found; } */ for (i=0; items[i]!=NULL && items[i+1]!=NULL && items[i+2]!=NULL; i+=3){ dbg("i=%d\n", i); if (i==no*3) goto found; } dbg("not found\n"); goto x; found: dbg("found i=%d, no=%d\n", i, no); peerid=items[i]; bandchar=items[i+2][0]; spypeer_add(peerid, bandchar); x:; g_strfreev(items); } void spypeer_add(char *peerid, char bandchar){ struct band *b; gchar *c; b=find_band_by_bandchar(bandchar); if (!b){ dbg("band %c not found\n", bandchar); return; } dbg("spypeer_add: peerid=%s bandchar=%c pband=%s\n", peerid, bandchar, b->pband); init_spypeer(ctest->spypeers, peerid, bandchar); c=g_strdup_printf("RT %s;%s\n",b->pband, peerid); rel_write_all(c); g_free(c); } int load_spypeers_from_file(char *filename){ FILE *f; gchar *c; GString *gs; gchar **items, *peerid; char bandchar; f=fopen(filename,"rt"); if (!f) return 1; gs = g_string_sized_new(100); while( (c=safe_fgets(gs, f, 0)) != NULL){ items = g_strsplit(c, ";", 3); if (!items) continue; if (!items[1] || !items[2]) { g_strfreev(items); continue; } peerid=items[0]; bandchar=items[1][0]; spypeer_add(peerid, bandchar); } g_string_free(gs, 1); fclose(f); return 0; } int save_spypeers_to_file(char *filename){ FILE *f; int i; f = fopen(filename, "wt"); if (!f){ log_addf(VTEXT(T_CANT_WRITE_S), filename); return errno; } for (i=0;ispypeers->len; i++){ struct spypeer *sp; sp = (struct spypeer *)g_ptr_array_index(ctest->spypeers, i); fprintf(f, "%s;%c;\n", sp->peerid, sp->bandchar); } fclose(f); return 0; } tucnak2-2.48/src/os_dep.h0000644000175000017500000000511211567373656012172 00000000000000 /* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ /*#define SYST_UNIX 1 #define SYST_OS2 2 #define SYST_WIN32 3 #define SYST_BEOS 4*/ /* hardcoded limit of 10 OSes in default.c */ #if defined(__EMX__) #define OS2 #elif defined(_WIN32) #ifndef WIN32 #define WIN32 #endif #elif defined(__BEOS__) #define BEOS #else #define UNIX #endif #ifdef __EMX__ #define strcasecmp stricmp #define strncasecmp strnicmp #define read _read #define write _write #endif #if defined(UNIX) static inline int dir_sep(char x) { return x == '/'; } #define NEWLINE "\n" #include #include #define SYSTEM_ID SYS_UNIX #define SYSTEM_NAME "Unix" #define DEFAULT_SHELL "/bin/sh" #define GETSHELL getenv("SHELL") #elif defined(OS2) static inline int dir_sep(char x) { return x == '/' || x == '\\'; } #define NEWLINE "\r\n" #define SYSTEM_ID SYS_OS2 #define SYSTEM_NAME "OS/2" #define DEFAULT_SHELL "cmd.exe" #define GETSHELL getenv("COMSPEC") #define NO_FG_EXEC #define NO_FILE_SECURITY #define NO_FORK_ON_EXIT #elif defined(WIN32) static inline int dir_sep(char x) { return x == '/' || x == '\\'; } #define NEWLINE "\r\n" #define SYSTEM_ID SYS_WIN32 #define SYSTEM_NAME "Win32" #define DEFAULT_SHELL "command.com" #define GETSHELL getenv("COMSPEC") #define NO_FG_EXEC #define NO_FORK_ON_EXIT #endif /*#if !defined(HAVE_BEGINTHREAD) && !defined(BEOS) && !defined(HAVE_PTHREADS) && !defined(HAVE_CLONE) #define THREAD_SAFE_LOOKUP #endif*/ #ifndef HAVE_F_TLOCK # define F_ULOCK 0 /* Unlock a previously locked region. */ # define F_LOCK 1 /* Lock a region for exclusive use. */ # define F_TLOCK 2 /* Test and lock a region for exclusive use. */ # define F_TEST 3 /* Test a region for other processes locks. */ #endif #ifndef HAVE_LOCKF int lockf(int,int,off_t); #endif #ifdef UNIX #define tmkdir(dir, mode) mkdir(dir, mode) #define sock_errno errno #define sock_strerror_r strerror_r #define SO4 #define closesocket close static inline char *wokna(char *file) { return file; } #endif int mkdir_p(const char *s, mode_t mode); int save_screen(void); int restore_screen(void); gchar * get_mp(gchar *device); int floppy_is_mounted(gchar *floppydev, gchar *path_to_floppy); int is_in_mtab(gchar *mp); extern int sound_pid; int init_sound(void); int free_sound(void); int abort_sound(void); int sound(int freq); double fdf(int fd); tucnak2-2.48/src/language.c0000644000175000017500000000712111567373656012501 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" struct translation { int code; char *name; }; struct translation_desc { struct translation *t; }; char dummyarray[T__N_TEXTS]; #include "language.inc" static char **translation_array[N_LANGUAGES][N_CODEPAGES]; int current_language; static int current_lang_charset; void init_trans(void) { int i, j; for (i = 0; i < N_LANGUAGES; i++) for (j = 0; j < N_CODEPAGES; j++) translation_array[i][j] = NULL; current_language = 0; current_lang_charset = 0; translations[0].t=translation_english; } void shutdown_trans(void) { int i, j, k; for (i = 0; i < N_LANGUAGES; i++) for (j = 0; j < N_CODEPAGES; j++) if (translation_array[i][j]) { for (k = 0; k < T__N_TEXTS; k++) if (translation_array[i][j][k]) mem_free(translation_array[i][j][k]); mem_free(translation_array[i][j]); } } char *get_text_translation(char *text) { char **current_tra; char *trn; if (text < dummyarray || text > dummyarray + T__N_TEXTS) return text; if ((current_tra = translation_array[current_language][term->spec->charset])) { if ((trn = current_tra[text - dummyarray])) return trn; tr: trn = stracpy(translation_english[text - dummyarray].name); current_tra[text - dummyarray] = trn; } else { if (current_lang_charset && term->spec->charset != current_lang_charset) { if ((current_tra = translation_array[current_language][term->spec->charset] = mem_alloc(sizeof (char **) * T__N_TEXTS))) { memset(current_tra, 0, sizeof (char **) * T__N_TEXTS); goto tr; } } if (!(trn = translations[current_language].t[text - dummyarray].name)) { trn = translations[current_language].t[text - dummyarray].name = translation_english[text - dummyarray].name; /* modifying translation structure */ } } return trn; } char *get_english_translation(char *text) { if (text < dummyarray || text > dummyarray + T__N_TEXTS) return text; return translation_english[text - dummyarray].name; } int n_languages(void) { return N_LANGUAGES; } char *language_name(int l) { return translations[l].t[T__LANGUAGE].name; } void set_language(int l) { int i; char *cp; dbg("set_language charset=%d language=%d\n", current_lang_charset, current_language); for (i = 0; i < T__N_TEXTS; i++){ // dbg(" i=%d ;l=%d; tr[..]=%d \n", i,l,translations[l].t[i].code); if (translations[l].t[i].code != i) { internal_("Bad table for language %s (%d!=%d). Run script fixlang.pl or maybe add this language into this script.", translations[l].t[T__LANGUAGE].name, translations[l].t[i].code, i); return; } } current_language = l; cp = translations[l].t[T__CHAR_SET].name; dbg("codepage=%s\n", cp); i = get_cp_index(cp); if (i == -1) { internal_("Unknown charset for language %s.", translations[l].t[T__LANGUAGE].name); i = 0; } current_lang_charset = i; dbg("return charset=%d language=%d\n", current_lang_charset, current_language); #ifdef HAVE_SDL if (sdl && term && term->spec){ term->spec->charset = i; } #endif } tucnak2-2.48/src/hash.c0000644000175000017500000000176311567373656011647 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" void hash_safe_insert(GHashTable *table, gchar *key, gchar *value){ gpointer orig_key; gpointer orig_value; if (g_hash_table_lookup_extended(table, (gpointer) key, &orig_key, &orig_value)) { g_hash_table_remove(table, orig_key); g_free(orig_key); g_free(orig_value); } g_hash_table_insert(table, key, value); } gboolean free_gstr(gpointer key, gpointer value, gpointer user_data){ if (key) g_free(key); if (value) g_free(value); if (user_data) g_free(user_data); return TRUE; } void free_hash(GHashTable *hash){ if (!hash) return; g_hash_table_foreach_remove(hash, free_gstr, NULL); g_hash_table_destroy(hash); } tucnak2-2.48/src/threadpipe.c0000644000175000017500000000664511567373656013055 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" struct threadpipe *tpipe; struct threadpipe *init_threadpipe(){ struct threadpipe *tpipe; int fds[2]; tpipe=g_new0(struct threadpipe, 1); if (pipe(fds)) internal_("Can't create thread pipe"); tpipe->threadpipe_read=fds[0]; tpipe->threadpipe_write=fds[1]; set_handlers(tpipe->threadpipe_read, threadpipe_read_handler, NULL, NULL, CBA0); tpipe->threadpipe_rdbuf=g_string_sized_new(100); return tpipe; } void free_threadpipe(struct threadpipe *tpipe){ g_string_free(tpipe->threadpipe_rdbuf, TRUE); closesocket(tpipe->threadpipe_read); closesocket(tpipe->threadpipe_write); g_free(tpipe); } void threadpipe_read_handler(cba_t cba){ char s[1030]; int ret,err; gchar *d, *line; ret=read(tpipe->threadpipe_read, s, 1024); err=errno; if (ret<=0){ dbg("read error %d %d\n", ret, err); } s[ret]='\0'; // dbg("thrp_r '%s' \n", s); g_string_append(tpipe->threadpipe_rdbuf, s); /*dbg("rdbuf='%s'\n", tpipe->threadpipe_rdbuf->str);*/ while(1){ d=strchr(tpipe->threadpipe_rdbuf->str, '\n'); if (!d) break; line=g_strndup(tpipe->threadpipe_rdbuf->str, d - tpipe->threadpipe_rdbuf->str+1); line[d - tpipe->threadpipe_rdbuf->str]='\0'; g_string_erase(tpipe->threadpipe_rdbuf, 0, d - tpipe->threadpipe_rdbuf->str+1); if (strlen(line)>0) threadpipe_rel_read(line); g_free(line); } } void threadpipe_rel_read(gchar *line){ gchar **items; // dbg("threadpipe_rel_read('%s')\n", line); items=g_strsplit(line, ";", 0); if (!items[0]) internal_("threadpipe bad format"); if (strcmp(items[0], "ST")==0){ check_autosave(); redraw_stats(aband); recalc_allb_stats(); recalc_statsfifo(aband); redraw_later(); goto x; } if (strcmp(items[0], "CWQS")==0){ redraw_later(); goto x; } if (strcmp(items[0], "COR")==0){ #ifdef HAVE_SDL cor_read_handler(line); #endif goto x; } if (!items[1]) internal_("threadpipe bad format 2"); #ifdef HAVE_SNDFILE if (strcmp(items[0], "SSBP")==0){ ssbd_play_read_handler(ssbd, items[1]); goto x; } if (strcmp(items[0], "SSBR")==0){ ssbd_rec_read_handler(ssbd, items[1]); goto x; } #endif if (strcmp(items[0], "CW")==0){ cwdaemon_read_handler(cwda, items[1], items[2]); goto x; } #ifdef HAVE_HAMLIB if (trig && strcmp(items[0], "TRIG")==0){ trig_read_handler(trig, line+5); goto x; } #endif if (strcmp(items[0], "SC")==0){ log_adds(line); goto x; } if (strcmp(items[0], "ROT")==0){ rotar_read_handler(line); goto x; } #ifdef HAVE_LIBFTDI if (strcmp(items[0], "HD")==0){ hdkeyb_read_handler(line+3); goto x; } #endif x:; g_strfreev(items); } int tp_printf(char *m, ...){ va_list l; char *c; int ret; va_start(l, m); c = g_strdup_vprintf(m, l); va_end(l); ret = write(tpipe->threadpipe_write, c, strlen(c)); g_free(c); return ret; } tucnak2-2.48/src/stats.c0000644000175000017500000012220411567373656012054 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" char *get_wwl(char *buf, char *wwl){ safe_strncpy(buf, wwl,5); return buf; } void draw_one_bigdigit(int x, int y, int num){ switch(num%10){ case 0: fill_area(x,y,3,5,COL_INV); fill_area(x+1,y+1,1,3,COL_NORM); break; case 1: fill_area(x,y,3,5,COL_INV); fill_area(x+2,y,1,4,COL_NORM); fill_area(x,y+1,1,3,COL_NORM); break; case 2: fill_area(x,y,3,5,COL_INV); fill_area(x,y+1,2,1,COL_NORM); fill_area(x+1,y+3,2,1,COL_NORM); break; case 3: fill_area(x,y,3,5,COL_INV); fill_area(x,y+1,2,1,COL_NORM); fill_area(x,y+3,2,1,COL_NORM); break; case 4: fill_area(x,y,3,5,COL_INV); fill_area(x+1,y,1,2,COL_NORM); fill_area(x,y+3,2,2,COL_NORM); break; case 5: fill_area(x,y,3,5,COL_INV); fill_area(x+1,y+1,2,1,COL_NORM); fill_area(x,y+3,2,1,COL_NORM); break; case 6: fill_area(x,y,3,5,COL_INV); fill_area(x+1,y+1,2,1,COL_NORM); fill_area(x+1,y+3,1,1,COL_NORM); break; case 7: fill_area(x,y,3,5,COL_INV); fill_area(x,y+1,2,4,COL_NORM); break; case 8: fill_area(x,y,3,5,COL_INV); fill_area(x+1,y+1,1,1,COL_NORM); fill_area(x+1,y+3,1,1,COL_NORM); break; case 9: fill_area(x,y,3,5,COL_INV); fill_area(x+1,y+1,1,1,COL_NORM); fill_area(x,y+3,2,1,COL_NORM); break; } } void draw_bigdigit(int x, int y, int num){ int qsonr=num; if (qsonr>=10000) set_char(x-2,y+2,'+'); if (qsonr>=1000) { draw_one_bigdigit(x,y,(qsonr/1000)%10); }else{ x-=2; } draw_one_bigdigit(x+4 ,y, (qsonr/100)%10); draw_one_bigdigit(x+8 ,y, (qsonr/10)%10); draw_one_bigdigit(x+12,y, qsonr%10); } struct stats *init_stats(){ struct stats *st; st = (struct stats *)g_new0(struct stats, 1); st->wwls = g_hash_table_new(g_str_hash, g_str_equal); st->dxcs = g_hash_table_new(g_str_hash, g_str_equal); st->prefs = g_hash_table_new(g_str_hash, g_str_equal); st->excs = g_hash_table_new(g_str_hash, g_str_equal); st->calls = g_hash_table_new(g_str_hash, g_str_equal); st->hours = g_hash_table_new(g_str_hash, g_str_equal); clear_stats(st); return st; } void free_stats(struct stats *st){ clear_stats(st); g_hash_table_destroy(st->wwls); g_hash_table_destroy(st->dxcs); g_hash_table_destroy(st->prefs); g_hash_table_destroy(st->excs); g_hash_table_destroy(st->calls); g_hash_table_destroy(st->hours); CONDGFREE(st->mycontinent); CONDGFREE(st->mydxcc); g_free(st); } void clear_stats(struct stats *st){ struct dw_item *dxi; char s[120]; /* dbg("clear_stats(%p)\n", st);*/ st->first_date = G_MAXINT; st->last_date = 0; st->nqsos = 0; st->nqsop = 0; st->nwwlp = 0; st->nexcp = 0; st->ndxcp = 0; st->nprefs = 0; st->ntotal = 0; g_hash_table_foreach_remove(st->wwls, free_gpointer_item, NULL); g_hash_table_foreach_remove(st->dxcs, free_gpointer_item, NULL); g_hash_table_foreach_remove(st->prefs, free_gpointer_item, NULL); g_hash_table_foreach_remove(st->excs, free_gpointer_item, NULL); g_hash_table_foreach_remove(st->calls, free_gpointer_item, NULL); g_hash_table_foreach_remove(st->hours, free_gpointer_item, NULL); if (st->odxcall) {g_free(st->odxcall); st->odxcall = NULL;} if (st->odxwwl) {g_free(st->odxwwl); st->odxwwl = NULL;} if (st->odxoperator) {g_free(st->odxoperator); st->odxoperator = NULL;} st->odxqrb_int = 0; dxi = get_dw_item_by_call(dw, ctest->pcall); if (!dxi) internal_("unknown dxcc of my callsign"); CONDGFREE(st->mycontinent); st->mycontinent = g_strdup(dxi->continent); CONDGFREE(st->mydxcc); st->mydxcc = g_strdup(get_dxcc(dw, s, ctest->pcall)); } int find_preferred_dxc(int type, char *dxc){ char *prefs9[] = {"ES","LA","LY","OH","OH0","OJ0","OY","OZ","SM","TF","YL",NULL}; char *prefs10[] = {"G","GD","GI","GJ","GM","GU","GW",NULL}; char *prefs11[] = {"F",NULL}; char *prefs16[] = {"F","TK", "TM",NULL}; char **prefs; int multi=1; int i; switch(type){ case 9: prefs=prefs9; multi=3; break; case 10: prefs=prefs10; multi=5; break; case 11: prefs=prefs11; multi=3; break; case 16: prefs=prefs16; multi=4; break; default: return 1; } for (i=0; prefs[i]!=NULL; i++){ if (strcasecmp(dxc,prefs[i])==0) return multi; } return 1; } /* set and dirty */ #define SAD_INT(item,value) {if (q->item!=value) band->dirty_save=1;q->item=value;} void update_stats(struct band *band, struct stats *st, struct qso *q){ gint date, qsop, anew; gchar s[120], *c; gpointer orig_key; struct cntpts *orig_value; gint wwls, dxcs, prefs, excs; struct dw_item *dwi; int oldmult; qsop=0; if (band->stats_thread && band->stats_thread!=g_thread_self()){ /* Thread is computing statistics. * No reason to update stats, they will be overwritten and statistics * must not be consistent. We must kill thread and create new to * cover all qsos. */ stats_thread_kill(band); stats_thread_create(band); return; } if (band->stats==st) MUTEX_LOCK(band->stats); /* dbg("update_stats(%p, %c, %p)\n", st, b->bandchar, q);*/ if (!q->error){ date = atoi(q->date_str); if (date < st->first_date) st->first_date = date; if (date > st->last_date) st->last_date = date; } if (q->error) { SAD_INT(new_,0); SAD_INT(qsop,0); SAD_INT(susploc,0); SAD_INT(unkcall,0); goto x; } st->nqsos++; /* dbg("update_stats(%s) calls->size=%d \n", q->qsonrs, g_hash_table_size(st->calls)); dbg(" dupe=%d qsop=%d \n", q->dupe, q->qsop);*/ get_raw_call(s, q->callsign); if (is_rover(q->callsign) && q->locator){ strcat(s, "_"); safe_strncpy0(s + strlen(s), q->locator, 4+1); } //dbg("update_stats(%s)\n", s); if (g_hash_table_lookup_extended(st->calls, s, &orig_key, (gpointer) &orig_value)){ SAD_INT(dupe,1); }else{ g_hash_table_insert(st->calls, g_strdup(s), NULL); SAD_INT(dupe,0); } switch (ctest->qsop_method){ case 1: /* rounded distance */ qsop = iaru_round(q->qrb) * ctest->qsomult; break; case 2: /* 1 */ qsop = ctest->qsomult; break; case 3: /* FIXME! it's really correct? */ qsop = (int)(((q->qrb/50)*2+1 ) * ctest->qsomult); break; case 4: /* WWL ring */ qsop = qsopwr(ctest->pwwlo, q->locator) * ctest->qsomult; break; case 5: /* statute miles (anglicka mile) */ qsop = (int)(q->qrb/1.6094 * ctest->qsomult); break; case 6: /* 1 * qso-points multi + 1 point for CW QSO FIXME! bug in taclog? */ qsop = ctest->qsomult; if (q->mode==MOD_CW_CW) q->qsop++; break; case 7: /* distance(min 50) */ qsop = (int)((q->qrb>50 ? q->qrb : 50) * ctest->qsomult); break; case 8: /* distance(min 10) */ qsop = (int)( (q->qrb>10 ? q->qrb : 10) * ctest->qsomult ); break; case 9: case 10: case 11: qsop = ctest->qsomult * find_preferred_dxc(ctest->qsop_method, get_dxcc(dw,s,q->callsign)); break; case 12: qsop = iaru_round(q->qrb) * ctest->qsomult; break; case 13: // dbg("call=%s \n", q->callsign); dwi = get_dw_item_by_call(dw, q->callsign); if (!dwi){ // dbg("Don't know dxcc of %s\n", ctest->pcall); qsop=0; break; } if (strcasecmp(dwi->continent, st->mycontinent)==0){ // same continent c = get_dxcc(dw, s, q->callsign); // dbg(" dxcc=%s mydxcc=%s\n", c, st->mydxcc); if (c && strcasecmp(c, st->mydxcc)==0){ // same DXCC qsop = 0; // same dxcc 0 }else{ // dbg(" cont=%s\n", dwi->continent); if (strcasecmp(dwi->continent, "NA")==0) qsop = 2; // NA has 2 points else qsop = 1; // others only 1 } }else{ qsop = 3; // other continent } break; case 14: // dbg("call=%s \n", q->callsign); dwi = get_dw_item_by_call(dw, q->callsign); if (!dwi){ // dbg("Don't know dxcc of %s\n", ctest->pcall); qsop=0; break; } qsop = 1; if (band->qrg_min<10000) qsop = 2; // bellow 10 MHz if (strcasecmp(dwi->continent, st->mycontinent)==0){ // same continent c = get_dxcc(dw, s, q->callsign); // dbg(" dxcc=%s mydxcc=%s\n", c, st->mydxcc); if (c && strcasecmp(c, st->mydxcc)==0){ // same DXCC qsop = 1; // same dxcc 0 }else{ // dbg(" cont=%s\n", dwi->continent); if (strcasecmp(dwi->continent, "NA")==0) qsop *= 2; // NA has 2 points else qsop *= 1; // others only 1 } }else{ qsop *= 3; // other continent } break; case 15: // ARRL VHF contests http://www.arrl.org/contests/rules/2008/june-vhf.html dbg("%d\n", band->qrg_min); if (band->qrg_min > 2000000) qsop = 4; // 2,3 GHz and above else if (band->qrg_min > 500000) qsop = 3; // 902 MHz, 1,3 GHz else if (band->qrg_min > 200000) qsop = 2; // 222 MHz, 432 MHz else qsop = 1; // 144 MHz and below break; case 16: qsop = iaru_round(q->qrb) * ctest->qsomult * find_preferred_dxc(ctest->qsop_method, get_dxcc(dw,s,q->callsign)); qsop *= qsomult16(band); break; } if (q->dupe) qsop=0; SAD_INT(qsop,qsop); /* dbg(" dupe=%d qsop=%d \n", q->dupe, q->qsop);*/ st->nqsop += q->qsop; if ((int)q->qrb > st->odxqrb_int){ if (st->odxcall) { g_free(st->odxcall); st->odxcall = NULL; } if (st->odxwwl) { g_free(st->odxwwl); st->odxwwl = NULL; } if (st->odxoperator) { g_free(st->odxoperator); st->odxoperator = NULL;} st->odx = q; st->odxqrb_int = (int)q->qrb; st->odxcall = g_strdup(q->callsign); st->odxwwl = g_strdup(q->locator); st->odxoperator = g_strdup(q->operator_); } q->unkcall=!find_wwl_by_call(cw, q->callsign); q->susploc = get_susp_loc(cw, dw, q->callsign, q->locator) & 0xff; anew=q->new_; if (ctest->wwlused){ get_wwl(s, q->locator); if (g_hash_table_lookup_extended(st->wwls, s, &orig_key, (gpointer) &orig_value)){ orig_value->count++; orig_value->points+=qsop; anew &= ~NEW_WWL; }else{ orig_value = g_new0(struct cntpts, 1); orig_value->count = 1; orig_value->points = qsop; g_hash_table_insert(st->wwls, g_strdup(s), orig_value); anew |= NEW_WWL; } } get_dxcc(dw, s, q->callsign); if (g_hash_table_lookup_extended(st->dxcs, s, &orig_key, (gpointer) &orig_value)){ orig_value->count++; orig_value->points+=qsop; anew &= ~NEW_DXC; }else{ orig_value = g_new0(struct cntpts, 1); orig_value->count = 1; orig_value->points = qsop; g_hash_table_insert(st->dxcs, g_strdup(s), orig_value); anew |= NEW_DXC; } if (ctest->prefmult>0){ get_pref(s, q->callsign); if (g_hash_table_lookup_extended(st->prefs, s, &orig_key, (gpointer) &orig_value)){ orig_value->count++; orig_value->points+=qsop; anew &= ~NEW_PREF; }else{ orig_value = g_new0(struct cntpts, 1); orig_value->count = 1; orig_value->points = qsop; g_hash_table_insert(st->prefs, g_strdup(s), orig_value); anew |= NEW_PREF; } } if (ctest->excused>0){ safe_strncpy0(s, q->exc, 20); if (strcasecmp(ctest->excname, "USACA")==0){ usaca_multiple_exc(s); } if (*s){ if (g_hash_table_lookup_extended(st->excs, s, &orig_key, (gpointer) &orig_value)){ orig_value->count++; orig_value->points+=qsop; anew &= ~NEW_EXC; }else{ orig_value = g_new0(struct cntpts, 1); orig_value->count = 1; orig_value->points = qsop; g_hash_table_insert(st->excs, g_strdup(s), orig_value); anew |= NEW_EXC; } if (ctest->qsop_method == 12){ // RSGB DC int max = rsgbdc_maxcount(q->exc); if (orig_value->count <= max) { st->nexcp++; anew |= NEW_EXC; //dbg("protekce\n"); } //dbg("%-12s exc %s can be counted %d times (after this qso %d times) st->nexcp=%d\n", q->callsign, q->exc, max, orig_value->count, st->nexcp); } } } safe_strncpy0(s, q->time_str, 3); if (!g_hash_table_lookup_extended(st->hours, s, &orig_key, (gpointer) &orig_value)){ orig_value = g_new0(struct cntpts, 1); g_hash_table_insert(st->hours, g_strdup(s), orig_value); } orig_value->count++; orig_value->points+=qsop; if (!orig_value->qso){ orig_value->qso = q; }else{ if (q->qrb > orig_value->qso->qrb){ orig_value->qso = q; } } wwls = g_hash_table_size(st->wwls); dxcs = g_hash_table_size(st->dxcs); prefs = g_hash_table_size(st->prefs); st->nwwlp = wwls; if (ctest->qsop_method != 12) st->nexcp = g_hash_table_size(st->excs); st->ndxcp = dxcs; excs = st->nexcp; oldmult = st->nmult; switch (ctest->total_method){ case 1: st->nmult = (ctest->wwlmult ? wwls * ctest->wwlmult : 1 ) * (ctest->prefmult ? prefs * ctest->prefmult : 1 ) * (ctest->dxcmult ? dxcs * ctest->dxcmult : 1 ) * (ctest->excmult ? excs * ctest->excmult : 1 ); ; st->ntotal = ( st->nqsop + wwls * ctest->wwlbonu + dxcs * ctest->dxcbonu + excs * ctest->excbonu ) * st->nmult; break; case 2: case 3: st->nmult = wwls * ctest->wwlmult + prefs * ctest->prefmult + dxcs * ctest->dxcmult + excs * ctest->excmult; st->ntotal = ( st->nqsop + wwls * ctest->wwlbonu + dxcs * ctest->dxcbonu + excs * ctest->excbonu ) * st->nmult; break; } if (st->nmult != oldmult) anew |= NEW_MULT; else anew &= ~NEW_MULT; SAD_INT(new_,anew); x:; if (band->stats==st) MUTEX_UNLOCK(band->stats); } void recalc_stats(struct band *band){ if (!band->dirty_stats) return; stats_thread_kill(band); stats_thread_create(band); /* ST_STOP;*/ } void recalc_all_stats(struct contest *ctest){ int i; struct band *band; for (i=0; ibands->len; i++){ band = (struct band *)g_ptr_array_index(ctest->bands, i); band->dirty_stats = 1; recalc_stats(band); } } void recalc_all_qrbqtf(struct contest *ctest){ int i, j; struct band *band; struct qso *q; for (i=0; ibands->len; i++){ band = (struct band *)g_ptr_array_index(ctest->bands, i); for (j=0; jqsos->len; j++){ q = get_qso(band, j); compute_qrbqtf(q); } for (j=0; jtmpqsos[j].locator || !*band->tmpqsos[j].locator) break; /* CHANGE look at add_tmqso_locator */ qrbqtf(ctest->pwwlo, band->tmpqsos[j].locator, &qrb, &qtf, NULL, 2); qtf_int=(int)(qtf+0.5); if (qrb < 0.1) { qtf_int=0; } band->tmpqsos[j].qrb=qrb; band->tmpqsos[j].qtf=qtf_int; } } } #define STATS_X 2 #define STATS_Y 2 void redraw_stats(struct band *band){ gchar *c; struct stats *st=band->stats; int nqsos, nqsop, nwwlp, nexcp, ndxcp, ntotal; MUTEX_LOCK(band->stats); nqsos = st->nqsos; nqsop = st->nqsop; nwwlp = st->nwwlp; nexcp = st->nexcp; ndxcp = st->ndxcp; ntotal = st->ntotal; if (ctest->qsoglob){ nqsos = ctest->allb_nqsos; nqsop = ctest->allb_nqsop; nwwlp = ctest->allb_nwwlp; nexcp = ctest->allb_nexcp; ndxcp = ctest->allb_ndxcp; ntotal = ctest->allb_ntotal; } if (ctest->total_method == 3){ ntotal = ctest->allb_nqsop * (ctest->allb_ndxcp + ctest->allb_nexcp); ctest->allb_ntotal = ntotal; // for HF subwin } print_text(STATS_X,STATS_Y,-1,VTEXT(T_SES_ODX),COL_NORM); if (st->odxcall && st->odxwwl){ c = g_strdup_printf(VTEXT(T_SES_ODX_DATA), st->odxcall, st->odxwwl, st->odxqrb_int, st->odxoperator); print_text(STATS_X+5,STATS_Y,term->x-QSONR_WIDTH-BAND_WIDTH-8, c,COL_NORM); g_free(c); } print_text(STATS_X,STATS_Y+2,term->x-QSONR_WIDTH-BAND_WIDTH-3,VTEXT(T_SES_STAT_TIT),COL_NORM); c = g_strdup_printf("%4d %6d %4d %4d %4d %7d %6.1f", nqsos, nqsop, nexcp, nwwlp, ndxcp, ntotal, (double)ntotal/(double)nqsos); print_text(STATS_X,STATS_Y+3,term->x-QSONR_WIDTH-BAND_WIDTH-3,c,COL_NORM); g_free(c); /* if (st->nqsos){ c = g_strdup_printf(VTEXT(T_SES_AVG), (double)st->ntotal/(double)st->nqsos); print_text(term->x-QSONR_WIDTH-BAND_WIDTH,ORIG_Y+1,BAND_WIDTH-1, c, COL_NORM); g_free(c); }*/ MUTEX_UNLOCK(band->stats); } #define F b->statsfifo1 void sf_wwl_func(gpointer key, gpointer value, gpointer user_data){ gchar *wwl; struct cntpts *n; GIndexArray *ia; wwl = (gchar *) key; n = (struct cntpts *) value; ia = (GIndexArray *) user_data; g_index_array_add(ia, g_strdup_printf("%4s:%6d %3d ", wwl, n->points, n->count)); } void sf_miss_exc_func(gpointer key, gpointer value, gpointer user_data){ gchar *missexc; struct miss_struct *ms; int maxlen = 0; missexc = (gchar *) key; ms = (struct miss_struct *) user_data; if (g_hash_table_lookup_extended(ms->st->excs, missexc, NULL, NULL)) return; maxlen = strlen(missexc); if (maxlen > ms->maxlen) ms->maxlen = maxlen; g_index_array_add(ms->ia, g_strdup(missexc)); } gint compare_colon_int (gconstpointer a, gconstpointer b){ gchar **ca, **cb, *c; int ia, ib; ca=(gchar **)a; cb=(gchar **)b; c=strchr(*ca, ':'); if (c) ia=atoi(c+1); else ia=0; c=strchr(*cb, ':'); if (c) ib=atoi(c+1); else ib=0; return ib-ia; } gint compare_string (gconstpointer a, gconstpointer b){ gchar **ca, **cb; ca=(gchar **)a; cb=(gchar **)b; return strcmp(*ca, *cb); } #define COLS 4 void add_sf_wwls(struct band *b){ GString *gs; GIndexArray *ia; int i,j,k,lines; gchar *c; gs = g_string_new(""); fifo_addf(F, ""); fifo_addf(F, VTEXT(T_SF_WWLS), g_hash_table_size(b->stats->wwls)); fifo_addf(F, VTEXT(T_SF_WWLS_UNDER)); /* for (i=0;istr);*/ ia = g_index_array_new(); g_hash_table_foreach(b->stats->wwls, sf_wwl_func, ia); g_index_array_qsort(ia, compare_colon_int); g_string_truncate(gs, 0); j = 0; lines=(ia->len+COLS-1)/COLS; for (i=0; i=ia->len) continue; c = (gchar *)g_index_array_index(ia, k); g_string_append(gs, c); } fifo_addf(F, "%s", gs->str); g_string_truncate(gs, 0); } g_string_free(gs,1); g_index_array_free_all(ia); } //////////// void sf_exc_func(gpointer key, gpointer value, gpointer user_data){ gchar *exc; struct cntpts *n; GIndexArray *ia; exc = (gchar *) key; n = (struct cntpts *) value; ia = (GIndexArray *) user_data; g_index_array_add(ia, g_strdup_printf("%4s:%6d %3d ", exc, n->points, n->count)); } void add_sf_excs(struct band *b){ GString *gs; GIndexArray *ia; int i,j,k,lines; gchar *c; gs = g_string_new(""); fifo_addf(F, ""); fifo_addf(F, VTEXT(T_SF_EXCS), g_hash_table_size(b->stats->excs)); fifo_addf(F, VTEXT(T_SF_EXCS_UNDER)); /* for (i=0;istr);*/ ia = g_index_array_new(); g_hash_table_foreach(b->stats->excs, sf_wwl_func, ia); g_index_array_qsort(ia, compare_colon_int); g_string_truncate(gs, 0); j = 0; lines=(ia->len+COLS-1)/COLS; for (i=0; i=ia->len) continue; c = (gchar *)g_index_array_index(ia, k); g_string_append(gs, c); } fifo_addf(F, "%s", gs->str); g_string_truncate(gs, 0); } g_string_free(gs,1); g_index_array_free_all(ia); } #define MISS_EXC_COLS 10 void miss_compute_ms(struct miss_struct *ms, struct band *b){ ms->ia = g_index_array_new(); ms->st = b->stats; ms->maxlen = 0; g_hash_table_foreach(excdb->vexc, sf_miss_exc_func, ms); g_index_array_qsort(ms->ia, compare_string); } void add_sf_miss_excs(struct band *b){ GString *gs; // GIndexArray *ia; int i,j,k,lines; gchar *c; struct miss_struct ms; if (!excdb) return; gs = g_string_new(""); fifo_addf(F, ""); fifo_addf(F, VTEXT(T_SF_MISS_EXCS), g_hash_table_size(excdb->vexc) - g_hash_table_size(b->stats->excs)); fifo_addf(F, VTEXT(T_SF_MISS_EXCS_UNDER)); miss_compute_ms(&ms, b); g_string_truncate(gs, 0); j = 0; lines=(ms.ia->len+MISS_EXC_COLS-1)/MISS_EXC_COLS; dbg("lines=%d\n", lines); for (i=0; i=ms.ia->len) continue; c = (gchar *)g_index_array_index(ms.ia, k); g_string_sprintfa(gs, "%-*s", ms.maxlen+1, c); } fifo_addf(F, "%s", gs->str); g_string_truncate(gs, 0); } g_string_free(gs,1); g_index_array_free_all(ms.ia); } //////////////////// void sf_dxc_func(gpointer key, gpointer value, gpointer user_data){ gchar *dxc; struct cntpts *n; GIndexArray *ia; dxc = (gchar *) key; n = (struct cntpts *) value; ia = (GIndexArray *) user_data; g_index_array_add(ia, g_strdup_printf("%4s:%6d %3d ", dxc, n->points, n->count)); } #undef COLS #define COLS 4 void add_sf_dxcs(struct band *b){ GString *gs; GIndexArray *ia; int i,j,k,lines; gchar *c; gs = g_string_new(""); fifo_addf(F, ""); fifo_addf(F, VTEXT(T_SF_DXCS), g_hash_table_size(b->stats->dxcs)); fifo_addf(F, VTEXT(T_SF_DXCS_UNDER)); /* for (i=0;istr);*/ ia = g_index_array_new(); g_hash_table_foreach(b->stats->dxcs, sf_dxc_func, ia); g_index_array_qsort(ia, compare_colon_int); g_string_truncate(gs, 0); j = 0; lines = (ia->len+COLS-1)/COLS; for (i=0; i=ia->len) continue; c = (gchar *)g_index_array_index(ia, k); g_string_append(gs, c); } fifo_addf(F, "%s", gs->str); g_string_truncate(gs, 0); } g_string_free(gs,1); g_index_array_free_all(ia); } void add_sf_prefs(struct band *b){ GString *gs; GIndexArray *ia; int i,j,k,lines; gchar *c; GHashTable *hash; if (ctest->prefglob) hash = ctest->allb_prefs; else hash = b->stats->prefs; gs = g_string_new(""); fifo_addf(F, ""); fifo_addf(F, VTEXT(T_SF_PREFS), g_hash_table_size(hash)); fifo_addf(F, VTEXT(T_SF_PREFS_UNDER)); /* for (i=0;istr);*/ ia = g_index_array_new(); g_hash_table_foreach(hash, sf_dxc_func, ia); g_index_array_qsort(ia, compare_colon_int); g_string_truncate(gs, 0); j = 0; lines = (ia->len+COLS-1)/COLS; for (i=0; i=ia->len) continue; c = (gchar *)g_index_array_index(ia, k); g_string_append(gs, c); } fifo_addf(F, "%s", gs->str); g_string_truncate(gs, 0); } g_string_free(gs,1); g_index_array_free_all(ia); } void add_sf_wkd_wwls(struct band *b){ int w,len, lines, i, j, myw, myh; GString *gs; fifo_addf(F, ""); fifo_addf(F, VTEXT(T_SF_WKD_WWLS), g_hash_table_size(b->stats->wwls)); fifo_addf(F, VTEXT(T_SF_WKD_WWLS_UNDER)); w=term->x - 2; len = w / 5; lines = len; myh = qthwr(ctest->pwwlo, 0); myw = qthwr(ctest->pwwlo, 1); /* fifo_addf(F, "w: %d, h:%d ", myw, myh);*/ gs=g_string_new(""); for(i=0; iQTH<"); continue; } mkwwl4(s, aw+ myw , ah + myh); if (g_hash_table_lookup(b->stats->wwls, s)){ g_string_append(gs, " "); continue; } g_string_sprintfa(gs, " %s", s); } fifo_addf(F, "%s", gs->str); } g_string_free(gs, 1); } void add_sf_cnt_in_wwls(struct band *b){ int w,len, lines, i, j, myw, myh; GString *gs; fifo_addf(F, ""); fifo_addf(F, VTEXT(T_SF_QSO_WWL4), g_hash_table_size(b->stats->wwls)); fifo_addf(F, VTEXT(T_SF_QSO_WWL4_UNDER)); w=term->x - 2; len = w / 5; lines = len; myh = qthwr(ctest->pwwlo, 0); myw = qthwr(ctest->pwwlo, 1); /*fifo_addf(F, "w: %d, h:%d ", myw, myh);*/ gs=g_string_new(""); for(i=0; istats->wwls, s))!=NULL){ if (aw==0 && ah==0){ g_string_sprintfa(gs, ">%3d<", *cnt); }else{ g_string_sprintfa(gs, " %3d ", *cnt); } continue; } g_string_append(gs, " "); } fifo_addf(F, "%s", gs->str); } g_string_free(gs, 1); } void add_sf_top_dx(struct band *b) { #define TOPS_NUM 10 int i, cnt=0; signed int j; struct qso *q, *top[TOPS_NUM]; memset(top, 0, TOPS_NUM * sizeof(struct qso *)); for (i = 0; i < b->qsos->len; i++) { if (!top[0]) { /* init first item */ q = get_qso(b, i); if (!q->error && !q->dupe) { cnt = 0; top[cnt++] = q; /*dbg("init: %s %u\n=\n", top[0]->callsign, (int) top[0]->qrb);*/ } continue; } q = get_qso(b, i); /*dbg("selected %u: %s %u\n", i, q->callsign, (int) q->qrb);*/ if (q->error || q->dupe) continue; if (cnt >= TOPS_NUM) cnt = TOPS_NUM - 1; /* initialize or find top dx and sort top array */ if (!top[cnt] || q->qrb > top[cnt]->qrb) { for (j = cnt; j >= 0; j--) { if (j && q->qrb > top[j - 1]->qrb) { top[j] = top[j - 1]; /* move down */ /*dbg("down %u: %s %u\n", j, top[j]->callsign, (int) top[j]->qrb);*/ } else { top[j] = q; /* insert */ cnt++; /*dbg("insert %u: %s %u\n", j, top[j]->callsign, (int) top[j]->qrb);*/ break; } } } } fifo_addf(F, ""); fifo_addf(F, VTEXT(T_SF_TOP_DX), TOPS_NUM); fifo_addf(F, VTEXT(T_SF_TOP_DX_UNDER)); for (i = 0; i < TOPS_NUM && i < b->qsos->len && top[i]; i++) { q = top[i]; fifo_addf(F, "%-12s %-6s %4u km by %-6s %s", q->callsign, q->locator, (int) q->qrb, q->operator_, mode_msg[q->mode]); } } gint compare_hour14 (gconstpointer a, gconstpointer b){ gchar **ca, **cb; int ia, ib; ca=(gchar **)a; cb=(gchar **)b; ia=atoi(*ca); if (ia<14) ia+=100; ib=atoi(*cb); if (ib<14) ib+=100; return ia-ib; } static int maxhourpoints, maxhourcount; void sf_hour_max_func(gpointer key, gpointer value, gpointer user_data){ struct cntpts *n; n = (struct cntpts *) value; if (n->points > maxhourpoints) maxhourpoints=n->points; if (n->count > maxhourcount) maxhourcount=n->count; } #define PS 20 #define CS 20 void sf_hour_func(gpointer key, gpointer value, gpointer user_data){ gchar *hour; struct cntpts *n; GIndexArray *ia; int h, i, l, avg; char ps[40], cs[40]; hour = (gchar *) key; n = (struct cntpts *) value; ia = (GIndexArray *) user_data; h=atoi(hour)+1; if (h==25) h=0; if (maxhourpoints>0) l=(n->points*PS)/maxhourpoints; else l=0; for (i=0;i0) l=(n->count*PS)/maxhourcount; else l=0; for (i=0;icount>0) avg=n->points/n->count; else avg=0; g_index_array_add(ia, g_strdup_printf("%2s-%02d: [%s]%6d : [%s]%3d : %4d odx %s", hour, h,ps, n->points, cs, n->count, avg, n->qso?n->qso->callsign:"")); /* n->qso should not be nul but for sure... */ } #undef COLS void add_sf_hours(struct band *b){ GIndexArray *ia; int i/*,j,k,lines*/; gchar *c; fifo_addf(F, ""); fifo_addf(F, VTEXT(T_SF_HOURS)); fifo_addf(F, VTEXT(T_SF_HOURS_UNDER)); fifo_addf(F, VTEXT(T_SF_HOURS_TITLE)); ia = g_index_array_new(); maxhourpoints=0; maxhourcount=0; g_hash_table_foreach(b->stats->hours, sf_hour_max_func, ia); g_hash_table_foreach(b->stats->hours, sf_hour_func, ia); g_index_array_qsort(ia, compare_hour14); for (i=0; ilen ; i++){ c = (gchar *)g_index_array_index(ia, i); fifo_addf(F, "%s", c); } g_index_array_free_all(ia); } void recalc_statsfifo(struct band *b){ //dbg("recalc_statsfifo(%c, %d)\n", b->bandchar, b->dirty_statsf); if (!b || !b->dirty_statsf) return; stats_thread_join(b); /*ST_START;*/ free_fifo(F); F = init_fifo(1000); F->withouttime = 1; fifo_addf(F, ""); fifo_addf(F, VTEXT(T_SF_STATS_BAND), b->bandname); fifo_addf(F, VTEXT(T_SF_STATS_BAND_UNDER)); fifo_addf(F, ""); fifo_addf(F, VTEXT(T_SF_CONTEST), ctest->tname); if (ctest->total_method == 3 || ctest->qsoglob){ fifo_addf(F, VTEXT(T_SF_ALLBQSOS), ctest->allb_nqsos); fifo_addf(F, VTEXT(T_SF_ALLBQSOP), ctest->allb_nqsop); fifo_addf(F, VTEXT(T_SF_ALLBPTS), ctest->allb_ntotal); } fifo_addf(F, VTEXT(T_SF_QSOS), b->stats->nqsos); fifo_addf(F, VTEXT(T_SF_QSOP), b->stats->nqsop); fifo_addf(F, VTEXT(T_SF_PTS), b->stats->ntotal); if (b->stats->nqsos>0){ fifo_addf(F, VTEXT(T_SF_AVG_PTS), ((double)b->stats->ntotal) / ((double)b->stats->nqsos)); fifo_addf(F, VTEXT(T_SF_AVG_QSOP), ((double)b->stats->nqsop) / ((double)b->stats->nqsos)); fifo_addf(F, VTEXT(T_SF_QSO_HOUR), b->stats->qso_per_hour); fifo_addf(F, VTEXT(T_SF_QSOP_HOUR), b->stats->pts_per_hour); fifo_addf(F, VTEXT(T_SF_QSOP_50QSO), b->stats->pts_per_50qso); } fifo_addf(F, ""); if (ctest->qsop_method==4){ add_sf_wkd_wwls(b); add_sf_cnt_in_wwls(b); } if (ctest->wwlused > 0) add_sf_wwls(b); if (ctest->excused > 0) { add_sf_excs(b); add_sf_miss_excs(b); } add_sf_dxcs(b); if (ctest->prefmult > 0) add_sf_prefs(b); add_sf_hours(b); if (ctest->wwlused > 0) add_sf_top_dx(b); fifo_addf(F, ""); b->dirty_statsf = 0; /*ST_STOP; */ } /* Exports statistics of actual band to a text file */ void export_stats_fifo(void) { gchar *fname; int i; fname = NULL; for (i = 0; 1; i++) { struct stat st; fname = g_strdup_printf("%s/stat%c%d.txt", ctest->directory, aband->bandchar, i); if (stat(fname, &st) != 0) break; g_free(fname); fname = NULL; } recalc_statsfifo(aband); save_fifo_to_file(aband->statsfifo1, fname); g_free(fname); } gpointer stats_thread_func(gpointer data){ struct qso *q; int i, ret; struct band *band=(struct band*)data; struct stats *tmp; char s[256]; /* ST_START;*/ clear_stats(band->tmpstats); for (i=0; iqsos->len; i++){ if (band->stats_break) break; q = get_qso(band, i); update_stats(band, band->tmpstats, q); } MUTEX_LOCK(band->stats); tmp=band->stats; band->stats=band->tmpstats; band->tmpstats=tmp; MUTEX_UNLOCK(band->stats); minute_stats(band); band->dirty_save = 1; sprintf(s, "ST\n"); ret = write(tpipe->threadpipe_write, s, strlen(s)); band->dirty_stats = 0; /* dbg("stats done %c\n", band->bandchar);*/ return 0; } void stats_thread_create(struct band *band){ if (band->stats_thread) internal_("stats_threadcreate band->stats_thread"); /*dbg("stats_thread_create(%c)\n", band->bandchar);*/ band->stats_break=0; band->stats_thread=g_thread_create(stats_thread_func, (gpointer)band, TRUE, NULL); if (!band->stats_thread) internal_("stats_threadcreate !band->stats_thread"); } void stats_thread_join(struct band *band){ if (!band->stats_thread) return; dbg("join stats ...\n"); g_thread_join(band->stats_thread); dbg("done\n"); band->stats_thread=NULL; } void stats_thread_kill(struct band *band){ if (!band->stats_thread) return; /* dbg("stats_thread_kill(%c)\n", band->bandchar);*/ band->stats_break=1; dbg("join stats ...\n"); g_thread_join(band->stats_thread); dbg("done\n"); band->stats_thread=NULL; } void minute_stats(struct band *band){ struct qso *qso; int j,brk, cnt50; int qso_per_hour, pts_per_hour, pts_per_50qso; char s[100], hourbefore[100]; time_t hb; struct tm utc; hb=time(NULL)-3600; gmtime_r(&hb, &utc); sprintf(hourbefore, "%4d%02d%02d%02d%02d",1900+utc.tm_year, 1+utc.tm_mon, utc.tm_mday, utc.tm_hour, utc.tm_min); if (band->qsos->len==0) return; qso_per_hour=pts_per_hour=pts_per_50qso=0; cnt50=50; brk=0; ctest->lastmultqso = NULL; for (j=band->qsos->len-1;j>=0;j--){ if (band->stats_break) break; qso = (struct qso *)g_ptr_array_index(band->qsos, j); if (qso->error || qso->dupe) continue; strcpy(s, qso->date_str); strcat(s, qso->time_str); /* dbg("s=%s h=%s\n", s, hourbefore);*/ if (strcmp(s, hourbefore)>0){ qso_per_hour++; pts_per_hour+=qso->qsop; }else{ brk|=0x01; } if (cnt50-->0){ pts_per_50qso+=qso->qsop; }else{ brk|=0x02; } if ((qso->new_ & NEW_MULT) && !ctest->lastmultqso){ brk |= 0x04; ctest->lastmultqso = qso; } if (brk==0x07) break; } MUTEX_LOCK(band->stats); if (band->stats->qso_per_hour!=qso_per_hour || band->stats->pts_per_hour!=pts_per_hour || band->stats->pts_per_50qso!=pts_per_50qso){ band->stats->qso_per_hour=qso_per_hour; band->stats->pts_per_hour=pts_per_hour; band->stats->pts_per_50qso=pts_per_50qso; band->dirty_statsf = 1; } MUTEX_UNLOCK(band->stats); } void minute_stats_all(void){ struct band *band; time_t hb; struct tm utc; int i, brk; char s[100], hourbefore[100], tenbefore[100]; int qso_per_10, qso_per_60; struct qso *qso; if (!aband) return; for (i=0;ibands->len;i++){ band = (struct band *)g_ptr_array_index(ctest->bands, i); minute_stats(band); } if (aband->dirty_statsf) recalc_statsfifo(aband); hb=time(NULL)-3600; gmtime_r(&hb, &utc); sprintf(hourbefore, "%4d%02d%02d%02d%02d",1900+utc.tm_year, 1+utc.tm_mon, utc.tm_mday, utc.tm_hour, utc.tm_min); hb=time(NULL)-600; gmtime_r(&hb, &utc); sprintf(tenbefore, "%4d%02d%02d%02d%02d",1900+utc.tm_year, 1+utc.tm_mon, utc.tm_mday, utc.tm_hour, utc.tm_min); if (ctest->allqsos->len==0) return; qso_per_10 = qso_per_60 = 0; brk=0; for (i=ctest->allqsos->len-1;i>=0;i--){ qso = (struct qso *)g_ptr_array_index(ctest->allqsos, i); if (qso->error || qso->dupe) continue; strcpy(s, qso->date_str); strcat(s, qso->time_str); if (strcmp(s, hourbefore)>0) qso_per_60++; else brk|=0x01; if (strcmp(s, tenbefore)>0) qso_per_10++; else brk|=0x02; if (brk==0x03) break; } if (ctest->qso_per_60 != qso_per_60 || ctest->qso_per_10 != qso_per_10){ ctest->qso_per_60 = qso_per_60; ctest->qso_per_10 = qso_per_10; redraw_later(); } } void timer_minute_stats_all(cba_t cba){ minute_stats_all(); ctest->minute_timer_id=install_timer(60000, timer_minute_stats_all, CBA0); } void stats_merge_prefs_fn(gpointer key, gpointer value, gpointer data){ gchar *pref = (gchar *)key; struct cntpts *cp = (struct cntpts *)value; gpointer orig_key; struct cntpts *orig_value; dbg("stats_merge_prefs_fn('%s') cp=%d %d\n", key, cp->count, cp->points); if (!g_hash_table_lookup_extended(ctest->allb_prefs, pref, &orig_key, (gpointer) &orig_value)){ orig_value = g_new0(struct cntpts, 1); g_hash_table_insert(ctest->allb_prefs, g_strdup(pref), orig_value); } orig_value->count += cp->count; orig_value->points += cp->points; } // called from main thread, no locking needed void recalc_allb_stats(){ int i; struct band *band; //dbg("recalc_allb_stats\n"); if (ctest->total_method != 3 && ctest->qsoglob == 0) return; // dbg("do!\n"); ctest->allb_nqsos = 0; ctest->allb_nqsop = 0; ctest->allb_nwwlp = 0; ctest->allb_nexcp = 0; ctest->allb_nprefp = 0; ctest->allb_ndxcp = 0; ctest->allb_nmult = 0; ctest->allb_ntotal = 0; if (ctest->prefmult > 0){ g_hash_table_foreach_remove(ctest->allb_prefs, free_gpointer_item, NULL); } for (i=0; ibands->len; i++){ band = (struct band *)g_ptr_array_index(ctest->bands, i); ctest->allb_nqsos += band->stats->nqsos; ctest->allb_nqsop += band->stats->nqsop; ctest->allb_nwwlp += band->stats->nwwlp; ctest->allb_nexcp += band->stats->nexcp; ctest->allb_ndxcp += band->stats->ndxcp; ctest->allb_nmult += band->stats->nmult; ctest->allb_ntotal += band->stats->ntotal; if (ctest->prefmult > 0){ g_hash_table_foreach(band->stats->prefs, stats_merge_prefs_fn, NULL); ctest->allb_nprefp = g_hash_table_size(band->stats->prefs); } } if (ctest->total_method == 4){ ctest->allb_nmult = ( ctest->wwlmult ? ctest->allb_nwwlp * ctest->wwlmult : 1 ) * ( ctest->dxcmult ? ctest->allb_ndxcp * ctest->dxcmult : 1 ) * ( ctest->excmult ? ctest->allb_nexcp * ctest->excmult : 1 ); ctest->allb_ntotal = ( ctest->allb_nqsop + ctest->allb_nwwlp * ctest->wwlbonu + ctest->allb_ndxcp * ctest->dxcbonu + ctest->allb_nexcp * ctest->excbonu ) * ctest->allb_nmult; } } int qsomult16(struct band *band){ int qsomult = 1; if (band->qrg_min > 2000000) qsomult = 10; // 2,3 GHz and above else if (band->qrg_min > 1000000) qsomult = 5; // 1,3 GHz else if (band->qrg_min > 400000) qsomult = 3; // 432 MHz else qsomult = 1; // 144 MHz return qsomult; } tucnak2-2.48/src/titlpage.c0000644000175000017500000001460111567373656012530 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #define RESP cfg int export_all_bands_titlpage(){ struct band *band; struct config_band *confb; int i,ptr, idlen, filetemplate; gchar *filename; FILE *f; char callbuf[20]; int ignoreerror=0; gchar *template_; gchar s[4100]; struct stat st; char *c; GString *gs; if (!ctest) return -1; dbg("export_all_bands_titlpage()\n"); filetemplate=0; f=fopen(SHAREDIR"/titlpage.html", "rt"); if (!f){ /* log_addf(VTEXT(T_CANT_OPEN_S), SHAREDIR"/titlpage.html");*/ goto mem; } if (fstat(fileno(f), &st)){ fclose(f); /* log_addf(VTEXT(T_CANT_READ_S), SHAREDIR"/titlpage.html"); */ goto mem; } template_=g_new0(gchar, st.st_size+1); if (fread(template_, st.st_size, 1, f)!=1){ fclose(f); /* log_addf(VTEXT(T_CANT_READ_S), SHAREDIR"/titlpage.html");*/ goto mem; } fclose(f); filetemplate=1; mem:; if (!filetemplate) template_=g_strdup(txt_titlpage); gs=g_string_new(""); for (i=0; ibands->len; i++){ band = g_ptr_array_index(ctest->bands, i); confb = get_config_band_by_bandchar(band->bandchar); stats_thread_join(band); if (band->stats->nqsos <=0) continue; filename = g_strdup_printf("%s/%s_%s_%c_titlepage.html", ctest->directory, ctest->cdate, uc(get_raw_call(callbuf,ctest->pcall)), band->bandchar); f=fopen(filename,"wt"); if (!f) { if (!ignoreerror) { errbox(VTEXT(T_CANT_WRITE), errno); ignoreerror=1;} g_free(filename); return -1; } ptr=0; while((c=strchr(template_+ptr, '$'))!=NULL){ fwrite(template_+ptr, c-template_-ptr, 1, f); idlen=strspn(c+1, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"); safe_strncpy0(s, c+1, idlen+1); log_addf("id=%s idlen=%d\n", s, idlen); ptr=c-template_+1+idlen; if (strcasecmp(s, "PCall")==0){ fprintf(f, "%s", qh(gs, ctest->pcall)); }else if(strcasecmp(s, "CAvg")==0){ fprintf(f, "%d", band->stats->nqsos?band->stats->nqsop/band->stats->nqsos:0); }else if(strcasecmp(s, "CDXCCS")==0){ fprintf(f, "%d", g_hash_table_size(band->stats->dxcs)); }else if(strcasecmp(s, "CODXCall")==0){ fprintf(f, "%s", qh(gs, band->stats->odxcall)); }else if(strcasecmp(s, "CODXloc")==0){ fprintf(f, "%s", qh(gs, band->stats->odxwwl)); }else if(strcasecmp(s, "CODXQRB")==0){ fprintf(f, "%d", band->stats->odxqrb_int); }else if(strcasecmp(s, "CQSOs")==0){ fprintf(f, "%d", band->stats->nqsos); }else if(strcasecmp(s, "CToSc")==0){ fprintf(f, "%d", band->stats->ntotal); }else if(strcasecmp(s, "Mope1")==0){ fprintf(f, "%s", qh(gs, band->mope1)); }else if(strcasecmp(s, "Mope2")==0){ fprintf(f, "%s", qh(gs, band->mope2)); }else if(strcasecmp(s, "NoOfPages")==0){ fprintf(f, "%d", (band->qsos->len+79)/40); }else if(strcasecmp(s, "PAddr1")==0){ fprintf(f, "%s", qh(gs, ctest->padr1)); }else if(strcasecmp(s, "PAddr2")==0){ fprintf(f, "%s", qh(gs, ctest->padr2)); }else if(strcasecmp(s, "PBand")==0){ fprintf(f, "%s", qh(gs, band->pband)); }else if(strcasecmp(s, "PSect")==0){ fprintf(f, "%d", band->psect); }else if(strcasecmp(s, "PSectName")==0){ fprintf(f, "%s", qh(gs, band->psect?"Single":"Multi")); }else if(strcasecmp(s, "PWWLo")==0){ fprintf(f, "%s", qh(gs, ctest->pwwlo)); }else if(strcasecmp(s, "RAddr1")==0){ fprintf(f, "%s", qh(gs, RESP->radr1)); }else if(strcasecmp(s, "RAddr2")==0){ fprintf(f, "%s", qh(gs, RESP->radr2)); }else if(strcasecmp(s, "RAnte")==0){ fprintf(f, "%s", qh(gs, band->sante)); /* anteny jsou stejny */ }else if(strcasecmp(s, "RCall")==0){ fprintf(f, "%s", qh(gs, RESP->rcall)); }else if(strcasecmp(s, "RCity")==0){ fprintf(f, "%s", qh(gs, RESP->rcity)); }else if(strcasecmp(s, "RName")==0){ fprintf(f, "%s", qh(gs, RESP->rname)); }else if(strcasecmp(s, "RPoCo")==0){ fprintf(f, "%s", qh(gs, RESP->rpoco)); }else if(strcasecmp(s, "RXEq")==0){ fprintf(f, "%s", qh(gs, band->srxeq)); }else if(strcasecmp(s, "SAnth")==0){ fprintf(f, "%s", qh(gs, band->santh)); }else if(strcasecmp(s, "SASL")==0){ /*fprintf(f, "%s", qh(gs, band->sasl));*/ }else if(strcasecmp(s, "SPowe")==0){ fprintf(f, "%s", qh(gs, band->spowe)); }else if(strcasecmp(s, "SPreamp")==0){ /* fprintf(f, "%s", qh(gs, "));*/ }else if(strcasecmp(s, "TDate")==0){ char t[100]; qh(gs, ctest->cdate); safe_strncpy0(t, gs->str, 98); fprintf(f, "%c%c.%c%c.%c%c%c%c",t[6],t[7], t[4],t[5], t[0],t[1],t[2],t[3]); }else if(strcasecmp(s, "TName")==0){ fprintf(f, "%s", qh(gs, ctest->tname)); }else if(strcasecmp(s, "TXEq")==0){ fprintf(f, "%s", qh(gs, band->stxeq)); }else{ fprintf(f, "XXXXXXXXXXX"); } } fprintf(f, "%s", template_+ptr); fclose(f); log_addf(VTEXT(T_SAVED_S), filename); g_free(filename); } g_string_free(gs, TRUE); /* if (err) { if (!ignoreerror) { errbox(VTEXT(T_CANT_WRITE), 0); ignoreerror=1; } g_free(filename); return -1; } */ return 0; } tucnak2-2.48/src/ssbd.c0000644000175000017500000006541311567373656011661 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #ifdef HAVE_SNDFILE struct ssbd *ssbd; MUTEX_DEFINE(ssbd); /*GMutex *ssbd_mutex; #ifdef LEAK_DEBUG_LIST char *ssbd_file; int ssbd_line; #endif*/ #define MAXCNTLEVEL 1 struct ssbd *init_ssbd(){ struct ssbd *ssbd; ssbd = g_new0(struct ssbd, 1); ssbd->b = 0xbbbbbbbb; ssbd->a = 0xaaaaaaaa; ssbd_mutex = g_mutex_new(); #if defined(HAVE_SDL) && defined(HAVE_LIBPNG) if (sdl){ ssbd->norecicon = do_png_create(icon_norec, sizeof(icon_norec)); if (!ssbd->norecicon) internal_("Can't create norec icon, currupted executable?"); ssbd->recicon = do_png_create(icon_record, sizeof(icon_record)); if (!ssbd->recicon) internal_("Can't create record icon, currupted executable?"); ssbd->playicon = do_png_create(icon_play, sizeof(icon_play)); if (!ssbd->playicon) internal_("Can't create play icon, currupted executable?"); } #endif ssbd->loglevel = -1; ssbd->oldloglevel = -2; MUTEX_INIT(ssbd->loglevel); MUTEX_INIT(ssbd->seek); return ssbd; } void free_ssbd(struct ssbd *ssbd){ dbg("free_ssbd\n"); cq_abort(1); ssbd_abort(ssbd,1); ssbd_thread_kill(ssbd); /* killed before but... */ CONDGFREE(ssbd->callsign); CONDGFREE(ssbd->pfilename); CONDGFREE(ssbd->rfilename); #ifdef HAVE_SDL if (sdl){ if (ssbd->playicon) SDL_FreeSurface(ssbd->playicon); if (ssbd->recicon) SDL_FreeSurface(ssbd->recicon); if (ssbd->norecicon) SDL_FreeSurface(ssbd->norecicon); } #endif if (ssbd->pl_pcmfile){ unlink(ssbd->pl_pcmfile); g_free(ssbd->pl_pcmfile); } g_mutex_free(ssbd_mutex); MUTEX_FREE(ssbd->loglevel); MUTEX_FREE(ssbd->seek); g_free(ssbd); } void ssbd_abort(struct ssbd *ssbd, int abort_rec){ gchar *tmpfile; /*dbg("ssbd_abort recording=%d abort_rec=%d\n", ssbd->recording, abort_rec);*/ if (!ssbd) return; ssbd->channels = 0; ssbd->played = 0; if (gses) gses->icon=NULL; ssbd_thread_kill(ssbd); if (ssbd->sndfile) { sf_close (ssbd->sndfile); ssbd->sndfile = NULL; if (!cfg->ssbd_template || !ssbd->rfilename) goto x; tmpfile=convert_esc(cfg->ssbd_template, NULL, CE_NONE, time(NULL)); /*dbg("cfg->template='%s' cfg->callsign='%s' \n", cfg->ssbd_template, ssbd->callsign); dbg("tmpfile='%s' cfg->filename='%s'\n", tmpfile, ssbd->rfilename);*/ if (strcmp(tmpfile, ssbd->rfilename)!=0){ //dbg("renaming '%s' to '%s'\n", ssbd->rfilename, tmpfile); rename(ssbd->rfilename, tmpfile); g_free(ssbd->rfilename); ssbd->rfilename=g_strdup(tmpfile); } g_free(tmpfile); } x:; dsp->close2(dsp); ssbd->recording=0; if (!abort_rec) ssbd_rec_file(ssbd); } void ssbd_thread_create(struct ssbd *ssbd, GThreadFunc thread_func){ /*dbg("ssbd_thread_create");*/ /* if (thread_func==ssbd_play_thread_func) dbg(" play"); else if (thread_func==ssbd_rec_thread_func) dbg(" rec"); else dbg(" ???"); */ /* dbg("\n");*/ ssbd->proc_break=0; if (ssbd->thread) return; ssbd->thread = g_thread_create(thread_func, (gpointer)ssbd, TRUE, NULL); // dbg("ssbd created thread %p\n", ssbd->thread); } void ssbd_thread_join(struct ssbd *ssbd){ // dbg("ssbd thread join %p\n", ssbd->thread); if (!ssbd->thread) return; ssbd->proc_break=1; dbg("join ssbd...\n"); g_thread_join(ssbd->thread); dbg("done\n"); ssbd->thread = NULL; } void ssbd_thread_kill(struct ssbd *ssbd){ // dbg("ssbd thread kill %p\n", ssbd->thread); if (!ssbd->thread) return; // dbg(" waiting\n"); ssbd->proc_break=1; dbg("join ssbd...\n"); g_thread_join(ssbd->thread); dbg("done\n"); ssbd->thread = NULL; } /* ------- playing -------------------------------------------------- */ int ssbd_play_file(struct ssbd *ssbd, gchar *pfilename){ SF_INFO sfinfo; int subformat; /*dbg("ssbd_play_file('%s')\n", pfilename);*/ ssbd_abort(ssbd,1); /*aborts playing or recording */ memset (&sfinfo, 0, sizeof (sfinfo)); if (!pfilename || strlen(pfilename)==0) { log_adds("No file specified"); return -1; } /* dbg ("Playing %s\n", filename);*/ if (! (ssbd->sndfile = sf_open (pfilename, SFM_READ, &sfinfo))){ log_addf("Can't play %s - %s", pfilename, sf_strerror (NULL)); return -1; }; if (sfinfo.channels < 1 || sfinfo.channels > 2){ log_addf ("Channels = %d.", sfinfo.channels); return -1; }; subformat = sfinfo.format & SF_FORMAT_SUBMASK; if (subformat == SF_FORMAT_FLOAT || subformat == SF_FORMAT_DOUBLE){ log_addf("Float point files are not supported"); return -1; } /*dbg("sfinfo: format=0x%x channels=%d speed=%d frames=%d\n", sfinfo.format, sfinfo.channels, sfinfo.samplerate, sfinfo.frames);*/ dsp->set_format(dsp, &sfinfo); dsp->set_plevel(dsp); if (dsp->open(dsp, 0)<0) { log_addf("Can't open DSP %s for playing", dsp->name); return -1; }; /* dbg("play opened: format=%x channels=%d speed=%d\n", dsp->format, dsp->channels, dsp->speed);*/ fft_start(SSBBUFFER_LEN / dsp->bpf); ssbd->channels = sfinfo.channels; ssbd->seek = 0; ssbd_thread_create(ssbd, ssbd_play_thread_func); if (gses) gses->icon=ssbd->playicon; return 0; } void play_thread_sigint(int a){ dbg("play_thread_sigint\n"); ssbd->proc_break=1; } gpointer ssbd_play_thread_func(gpointer data){ gchar *c; char s[256]; int written, readcount; char errbuf[1024]; int err, towrite; char *wrptr; int xxx = -1; int i, j, ret; /*dbg("play thread started\n"); for (i=0;i<6;i++){ if (ssbd->thread_break) goto x; dbg("kdák\n"); sleep(1); } */ while(1){ xxx++; if (ssbd->proc_break) { dsp->reset(dsp); goto x; } MUTEX_LOCK(ssbd->seek); int seek = ssbd->seek * ssbd->channels * dsp->speed / 1000; ssbd->seek = 0; MUTEX_UNLOCK(ssbd->seek); if (seek != 0){ dbg("seek(%d)\n", seek); sf_count_t cnt = sf_seek(ssbd->sndfile, 0, SEEK_CUR); cnt += seek; if (cnt < 0) cnt = 0; cnt = sf_seek(ssbd->sndfile, cnt, SEEK_SET); if (cnt >= 0) ssbd->played = cnt; ssbd->cntlevel = 0; } ssbd_assert(); readcount = sf_read_short (ssbd->sndfile, ssbd->buffer2, SSBBUFFER_LEN/sizeof(short)); ssbd_assert(); if (readcount<=0) break; ssbd->played += readcount / ssbd->channels; /* todo playmax & etc */ if (ssbd->proc_break) { dsp->reset(dsp); goto x; } wrptr=(char*)ssbd->buffer2; towrite=readcount * sizeof (short); if (ssbd->cntlevel--==0){ ssbd->cntlevel=MAXCNTLEVEL; c=g_strdup_printf("SSBP;L\n"); ret = write(tpipe->threadpipe_write, c, strlen(c)); g_free(c); } #ifdef USE_FFT if (fft){ // dbg("towrite=%d ch=%d\n", towrite, dsp->channels); ssbd_assert(); for (i=0; ichannels); i+= dsp->channels){ double v = 0; for (j=0; jchannels; j++){ v += (double)ssbd->buffer2[i*dsp->channels+j]; } v /= dsp->channels; v /= 32768; fft->rin[i] = v; } ssbd_assert(); fft_do(fft); // dbg(" done i=%d\n", i); } #endif while(1){ ssbd_assert(); written = dsp->write (dsp, wrptr, towrite); ssbd_assert(); /*dbg("%d written=%d readcount*%d=%d errno=%d %s\n", xxx, written, sizeof(short), readcount*sizeof(short), errno,strerror_r(err, errbuf, sizeof(errbuf)) ); */ if (written < 0){ err=errno; MUTEX_LOCK(ssbd); c=g_strdup_printf("SSBP;!%s %s %s\n", "Can't write to", dsp->name, strerror_r(err, errbuf, sizeof(errbuf)) ); MUTEX_UNLOCK(ssbd); ret = write(tpipe->threadpipe_write, c, strlen(c)); g_free(c); goto x; } if (written < readcount * sizeof(short)){ dbg("write(%s) interrupted after %d bytes\n", dsp->name, written); wrptr+=written; towrite-=written; } break; } } dsp->sync(dsp); sprintf(s, "SSBP;e\n"); ret = write(tpipe->threadpipe_write, s, strlen(s)); x:; ssbd_assert(); memset(ssbd->buffer2, 0, SSBBUFFER_LEN*sizeof(short)); ssbd_assert(); /*dbg("play thread exited\n");*/ return NULL; } void ssbd_play_read_handler(struct ssbd *ssbd, gchar *str){ /*dbg("ssbd_read_handler\n");*/ if (gses->last_cq_timer_id){ /* CQ was aborted while playing */ kill_timer(gses->last_cq_timer_id); gses->last_cq_timer_id = 0; } switch(str[0]){ case '!': /* error */ cq_abort(ssbd->recording); /*abort recording only if it is in progress */ log_addf("ssbd: %s", str+1); gses->icon=NULL; redraw_later(); cq_abort(ssbd->recording); peer_tx(aband, 0); break; case 'e': /* sample played */ if (!gses) break; gses->icon=NULL; if (!gses->last_cq) { /* last sample played */ cq_abort(ssbd->recording); break; } if (gses->last_cq->ssb_repeat) cq_ssb_wait(gses->last_cq); else{ gses->last_cq->type=MOD_NONE; cq_abort(ssbd->recording); } peer_tx(aband, 0); redraw_later(); break; case 'L': /* play level */ //ssbd->loglevel=atoi(str+1); #ifdef HAVE_SDL if (gses->ontop->type == SWT_SCOPE){ gses->ontop->gdirty = 1; //dbg("set gdirty\n"); } #endif redraw_later(); /*dbg("level=%d\n", ssbd->loglevel);*/ break; } } /* ------- recording -------------------------------------------------- */ int ssbd_rec_file(struct ssbd *ssbd){ int subformat; SF_INFO sfinfo; char errbuf[1024]; double df; /*dbg("ssbd_rec_file cfg->ssbd_record=%d ssbd->recording=%d ctest->recording=%d\n", cfg->ssbd_record, ssbd->recording, ctest?ctest->recording:-123); */ if (!cfg->ssbd_record) { strcpy(errbuf, "recording disabled"); goto norec; } if (ssbd->recording) return 0; gses->icon=ssbd->norecicon; if (ctest && ctest->oldcontest) { strcpy(errbuf, "contest too old"); goto norec; } ssbd_abort(ssbd,1); /*aborts playing or recording */ ssbd_watchdog(ssbd, 0); CONDGFREE(ssbd->rfilename); ssbd->serno++; ssbd->rfilename=convert_esc(cfg->ssbd_template, NULL, CE_NONE, time(NULL)); /*dbg ("Playing %s\n", ssbd->rfilename);*/ memset (&sfinfo, 0, sizeof (sfinfo)); sfinfo.format = cfg->ssbd_format; sfinfo.channels = cfg->ssbd_channels; sfinfo.samplerate = cfg->ssbd_samplerate; if (!sfinfo.format) sfinfo.format=SF_FORMAT_WAV | SF_FORMAT_PCM_16; if (!sfinfo.channels) sfinfo.channels=1; if (!sfinfo.samplerate) sfinfo.samplerate=22050; ssbd->code = 0; fmkdir_p(ssbd->rfilename,0777); if ((ssbd->sndfd=open(ssbd->rfilename, O_WRONLY|O_CREAT|O_TRUNC, 0666))<0){ log_addf ("Error writing file (1) %s: %s",ssbd->rfilename, strerror_r(errno, errbuf, sizeof(errbuf))); return -1; }; df=fdf(ssbd->sndfd); if (df>=0.0 && cfg->ssbd_diskfree>0){ if (df < (cfg->ssbd_diskfree*1058576.0)){ dbg("Not enough free disk space for %s: %d<%d (MiB)\n",ssbd->rfilename, (int)(df/1048576), cfg->ssbd_diskfree); log_addf ("Not enough free disk space for %s: %d<%d (MiB)",ssbd->rfilename, (int)(df/1048576), cfg->ssbd_diskfree); return -1; } } /*dbg("check:%d\n", sf_format_check(&sfinfo));*/ if (! (ssbd->sndfile = sf_open_fd (ssbd->sndfd, SFM_WRITE, &sfinfo, 1))){ log_addf ("Error writing file (2) %s: %s",ssbd->rfilename, sf_strerror (NULL)); close(ssbd->sndfd); return -1; }; subformat = sfinfo.format & SF_FORMAT_SUBMASK; if (subformat == SF_FORMAT_FLOAT || subformat == SF_FORMAT_DOUBLE){ log_addf("Float point files are not supported"); sf_close (ssbd->sndfile); return -1; } /*dbg("sfinfo: format=%x channels=%d speed=%d frames=%d\n", sfinfo.format, sfinfo.channels, sfinfo.samplerate, sfinfo.frames);*/ dsp->set_format(dsp, &sfinfo); dsp->set_source(dsp); /* dbg("converted format=%x\n", dsp->format);*/ if (dsp->open(dsp, 1)<0){ log_addf("Can't open DSP %s for recording", dsp->name); sf_close (ssbd->sndfile); return -1; }; /*dbg("rec opened: format=%x channels=%d speed=%d\n", dsp->format, dsp->channels, dsp->speed);*/ fft_start(SSBBUFFER_LEN / dsp->bpf); ssbd->channels = sfinfo.channels; ssbd_thread_create(ssbd, ssbd_rec_thread_func); gses->icon=ssbd->recicon; ssbd->recording=1; return 0; norec:; if (ssbd->norecshowed) return 0; log_addf(CTEXT(T_NOT_RECORDING_S), errbuf); ssbd->norecshowed=1; return 0; } void rec_thread_sigint(int a){ /*dbg("rec_thread_sigint\n");*/ ssbd->proc_break=1; } gpointer ssbd_rec_thread_func(gpointer data){ gchar *c; int readed, readeds, writecount=0, err, i, j; int max, loglevel, avg, ret; unsigned long sum; time_t now; double df; while(1){ if (ssbd->proc_break) break; ssbd_assert(); readed = dsp->read(dsp, ssbd->buffer2, SSBBUFFER_LEN); ssbd_assert(); if (readed<=0) { /*dbg("ssbd_rec_func read<=0\n"); */ char errstr[1030]; err=errno; MUTEX_LOCK(ssbd); c=g_strdup_printf("SSBR;!%s %s %s %d %d\n", "Can't read from", dsp->name, strerror_r(err, errstr, sizeof(errstr)), readed, err); MUTEX_UNLOCK(ssbd); ret = write(tpipe->threadpipe_write, c, strlen(c)); g_free(c); break; } /* dbg("readed=%d readed/%d=%d errno=%d\n", readed, sizeof(short), readed/sizeof(short), errno);*/ // for (i=0; i<512;i++) ssbd->buffer[i]=rand(); // FIXME if (ssbd->proc_break) break; if (ssbd->cntlevel--==0){ ssbd->cntlevel=MAXCNTLEVEL; sum=0; max=0; avg=0; readeds=readed/(sizeof(short)*dsp->channels); ssbd_assert(); for (j=0;jchannels;j++){ for (i=0;ichannels){ short sample=ssbd->buffer2[i*dsp->channels+j]; avg+=sample; } } ssbd_assert(); avg /= dsp->channels; avg /= readeds; ssbd_assert(); for (j=0;jchannels;j++){ for (i=0;ichannels){ short sample=ssbd->buffer2[i*dsp->channels+j] - avg; if (sample<0) sample=-sample; sum+=sample; if (sample>max) max=sample; } } ssbd_assert(); ssbd->midlevel=sum/(readed/sizeof(short)); ssbd->maxlevel=max; if (max<32) loglevel=0; else loglevel=(log(max)-3.465735903)*14; if (loglevel>95) loglevel=95; MUTEX_LOCK(ssbd->loglevel); ssbd->loglevel = loglevel; if (ssbd->swontoptype==SWT_SCOPE){ c=g_strdup_printf("SSBR;L%d\n", loglevel); ret = write(tpipe->threadpipe_write, c, strlen(c)); g_free(c); } MUTEX_UNLOCK(ssbd->loglevel); } df=fdf(ssbd->sndfd); /* dbg("df=%f df=%d diskfree=%d\n", df, (int)(df/1048576), cfg->ssbd_diskfree);*/ if (df>=0.0 && cfg->ssbd_diskfree>0){ if (df < (cfg->ssbd_diskfree*1048576.0)){ MUTEX_LOCK(ssbd); dbg("Not enough free disk space for %s: %d<%d (MiB)\n",ssbd->rfilename, (int)(df/1048576), cfg->ssbd_diskfree); c=g_strdup_printf("SSBR;!%s %s %f<%d (MiB)\n", "Not enough free disk space for", ssbd->rfilename, df/1048576.0, cfg->ssbd_diskfree); MUTEX_UNLOCK(ssbd); ret = write(tpipe->threadpipe_write, c, strlen(c)); g_free(c); break; } } #ifdef USE_FFT if (fft){ //RST_START; /* int vali, mini,maxi; mini = 2000000000; maxi = -2000000000;*/ // dbg("readed=%d ch=%d\n", readed, dsp->channels); ssbd_assert(); for (i=0; ichannels); i+= dsp->channels){ double v = 0; for (j=0; jchannels; j++){ /*vali = ssbd->buffer[i*dsp->channels+j]; if (vali < mini) mini = vali; if (vali > maxi) maxi = vali;*/ v += (double)ssbd->buffer2[i*dsp->channels+j]; } v /= dsp->channels; v /= 32768; fft->rin[i] = v; } ssbd_assert(); fft_do(fft); // dbg(" done i=%d\n", i); // dbg("vali=%d .. %d \t", mini, maxi); //RST_STOP; } #endif writecount = sf_write_short (ssbd->sndfile, ssbd->buffer2, readed/sizeof(short)); if (writecount <=0) { char errstr[1030]; dbg("ssbd_rec_func write<=0\n"); MUTEX_LOCK(ssbd); c=g_strdup_printf("SSBR;!%s %s %s\n", "Can't write to", ssbd->rfilename, strerror_r(errno, errstr, sizeof(errstr))); MUTEX_UNLOCK(ssbd); ret = write(tpipe->threadpipe_write, c, strlen(c)); g_free(c); break; } now=time(NULL); MUTEX_LOCK(ssbd); if (ssbd->recstop && now > ssbd->recstop){ dbg("ssbd_rec_func: timeout\n"); c=g_strdup("SSBR;Q\n"); ret = write(tpipe->threadpipe_write, c, strlen(c)); g_free(c); MUTEX_UNLOCK(ssbd); break; } MUTEX_UNLOCK(ssbd); } ssbd_assert(); memset(ssbd->buffer2, 0, SSBBUFFER_LEN*sizeof(short)); ssbd_assert(); /*dbg("rec_thread exited\n");*/ return 0; } void ssbd_rec_read_handler(struct ssbd *ssbd, gchar *str){ /*dbg("ssbd_read_handler\n");*/ switch(str[0]){ case '!': /* error */ cq_abort(1); log_addf("ssbd: %s", str+1); if (gses) gses->icon=NULL; redraw_later(); break; case 'L': /* recording level */ //ssbd->loglevel=atoi(str+1); #ifdef HAVE_SDL if (gses->ontop->type == SWT_SCOPE){ gses->ontop->gdirty = 1; // dbg("set gdirty\n"); } #endif redraw_later(); sw_scope_redraw(gses->ontop, 0); /*dbg("level=%d\n", ssbd->loglevel);*/ break; case 'Q': ssbd_thread_join(ssbd); ssbd_abort(ssbd, 1); redraw_later(); // to clean record level bar break; } } int ssbd_recording(struct ssbd *ssbd){ return ssbd->recording; } /* ------- misc -------------------------------------------------- */ int ssbd_callsign(struct ssbd *ssbd, char *call){ if (!ssbd) return 0; MUTEX_LOCK(ssbd); CONDGFREE(ssbd->callsign); ssbd->callsign=g_strdup(call); MUTEX_UNLOCK(ssbd); return 0; } int fmkdir_p(const char *filename, mode_t mode){ gchar *dir,*d; int ret; /*dbg("fmkdir_p '%s'\n", filename);*/ dir=g_strdup(filename); d=strrchr(dir,'/'); ret=-1; if (d){ *d='\0'; ret=mkdir_p(dir,mode); } g_free(dir); return ret; } gchar *unique_filename(gchar *filename){ struct stat st; int ser; gchar *file, *ext, *c; char *c1, *c2, *c3; c1=c2=c3=NULL; if (stat(filename, &st)) return filename; /* filename doesn't exist */ if (regmatch(filename, "(.*)(\\..*)", &c1, &c2, &c3, NULL)==0){ file=g_strdup(c2); ext=g_strdup(c3); g_free(filename); }else{ file=filename; ext=g_strdup(""); } if (c1) mem_free(c1); if (c2) mem_free(c2); if (c3) mem_free(c3); c=NULL; for (ser=1; ;ser++){ /*dbg("file='%s' ext='%s'\n", file, ext);*/ c=g_strdup_printf("%s%d%s", file, ser, ext); /* dbg("c='%s'\n", c);*/ if (stat(c, &st)){ /* c doesn't exist */ break; } g_free(c); } return c; } void ssbd_watchdog(struct ssbd *ssbd, int start_rec){ time_t t; // dbg("ssbd_watchdog\n"); if (!cfg->ssbd_maxmin) { ssbd->recstop=0; return; } t=time(NULL); t+=60*cfg->ssbd_maxmin; ssbd->recstop=t; if (!start_rec) return; if (ssbd->recording) return; if (gses->tx) return; if (gses->last_cq) return; ssbd_rec_file(ssbd); } void menu_ssbd_play(cba_t cba, cba_t unused){ SF_INFO iin, iout; SNDFILE *fin, *fout; char *filename = cba.charp; short *buf; int l, r, w; dbg("menu_ssbd_play('%s')\n", filename); memset(&iin, 0, sizeof(SF_INFO)); fin = sf_open(filename, SFM_READ, &iin); if (!fin){ log_addf("Can't play %s - %s", filename, sf_strerror (NULL)); return; } if (iin.seekable){ sf_close(fin); player_play(filename); } // convert to PCM16 memcpy(&iout, &iin, sizeof(SF_INFO)); iout.format = SF_FORMAT_WAV | SF_FORMAT_PCM_16; CONDGFREE(ssbd->pl_pcmfile); ssbd->pl_pcmfile = g_strconcat(getenv("HOME"), "/tucnak/tmp.wav", NULL); fout = sf_open(ssbd->pl_pcmfile, SFM_WRITE, &iout); if (!fout){ log_addf("Can't write %s - %s", ssbd->pl_pcmfile, sf_strerror(NULL)); return; } l = 65536; buf = g_new0(short, l); while(1){ r = sf_read_short(fin, buf, l); if (r <= 0) break; w = sf_write_short(fout, buf, r); if (w <= 0) break; if (r != w) break; } sf_close(fin); sf_close(fout); player_play(ssbd->pl_pcmfile); g_free(buf); } void scan_dir(char *base, GIndexArray *ia){ DIR *d; struct dirent *de; struct stat st; char *full = NULL; d = opendir(base); while ((de = readdir(d)) != NULL){ if (strcmp(de->d_name, ".") == 0) continue; if (strcmp(de->d_name, "..") == 0) continue; // dbg("de='%s'\n", de->d_name); CONDGFREE(full); full = g_strconcat(base, "/", de->d_name, NULL); if (stat(full, &st)) continue; // dbg("full='%s'\n", full); if (S_ISDIR(st.st_mode)) scan_dir(full, ia); if (S_ISREG(st.st_mode)) g_index_array_add(ia, g_strdup(full)); } closedir(d); CONDGFREE(full); } void ssbd_play_last_sample(struct ssbd *ssbd, struct qso *qso){ GIndexArray *ia; struct tm tm; int i, act, first, len; struct menu_item *mi = NULL; cba_t cba2; //log_addf("qso=%p", qso); if (ssbd->recording){ cq_abort(1); /* abort recording */ }else{ rx(); } if (!qso){ if (ssbd->rfilename && *ssbd->rfilename){ dbg("rfilename=%s gses->last_cq=%p\n", ssbd->rfilename, gses->last_cq); ssbd_play_file(ssbd, ssbd->rfilename); gses->icon=ssbd->playicon; }else{ log_adds("No sample recorded"); } redraw_later(); return; } char *template = g_strdup(cfg->ssbd_template); // log_addf("template='%s'", template); char *c = strchr(template, '%'); if (!c){ log_adds("No macro %% in SSBD template"); goto x; } *c='\0'; if (strlen(template) && template[strlen(template)-1] == '/') template[strlen(template)-1] = '\0'; // log_addf("template='%s'", template); ia = g_index_array_new(); c = convert_esc(template, NULL, 0, 0); scan_dir(c, ia); g_free(c); int d = atoi(qso->date_str); int t = atoi(qso->time_str); tm.tm_sec = 0; tm.tm_min = t % 100; tm.tm_hour = t / 100; tm.tm_mday = d % 100; tm.tm_mon = (d / 100 ) % 100 - 1; tm.tm_year = d / 10000 - 1900; time_t qt = timegm(&tm); dbg("qt=%d d=%d t=%d\n", qt, d, t); c = convert_esc(cfg->ssbd_template, NULL, 0, qt); // dbg(" c='%s'\n", c); g_index_array_add(ia, c); g_index_array_qsort(ia, compare_string); act=-1; for (i=0; ilen;i++){ if (strcmp(g_index_array_index(ia, i), c)!=0) continue; act=i; break; } if (act < 0) goto x; g_index_array_remove_index(ia, act); // for (i=0; ilen;i++) dbg("%3d '%s'\n", i, g_index_array_index(ia, i)); dbg("act=%d\n", act); first = act - term->y / 2 - 2; len = term->y - 2; dbg("first=%d len=%d\n", first, len); if (first < 0) { first = 0; } if (first + len - 1 >= ia->len){ len = ia->len - first; } dbg("first=%d len=%d\n", first, len); if (!(mi = new_menu(3))) return; for (i=0; ib != 0xbbbbbbbb || ssbd->a != 0xaaaaaaaa) internal_error("Corrupted ssbd->b=0x%x a=0x%x", ssbd->b, ssbd->a); */ } tucnak2-2.48/src/Makefile.am0000644000175000017500000000311511611306247012563 00000000000000datarootdir = @datarootdir@ #bin_PROGRAMS = tucnak soundwrapper stucnak bin_PROGRAMS = tucnak soundwrapper tucnak_SOURCES = adif.c alsa.c bfu.c cabrillo.c charsets.c \ chart.c codepage.h codepage.inc \ control.c cor.c cor.h cordata.c cordata.h cordata.inc \ cwdaemon.c cwdb.c cwwindow.c davac4.c dsp.c dwdb.c dxc.c ebw.c edi.c \ eprintf.c error.c excdb.c fft.c fhs.c \ fifo.c font.c font.inc gfx_png.c ghash.c \ gptrarray.c hash.c hdkeyb.c header.h hf.c html.c \ httpd.c iarray.c iarray.h \ icons.c icons.h icons.inc img_png.c inpout.c inputln.c \ interfaces.c interfaces.h kbd.c \ kbdbind.c language.c language.h language.inc \ list.c loc.c main.c map.c masterdb.c \ menu.c menu1.c menu2.c menu3.c menu4.c menu5.c \ mingw.c mingw.h namedb.c net.c ntpq.c \ os_dep.c os_dep.h oss.c player.c ppdev.c profile.c rc.c \ regex.c regex_.h report.c rotar.c \ qrvdb.c qsodb.c scandir.c scope.c sdev.c sdl.c \ select.c session.c settings.c setup.h sked.c \ ssbd.c stats.c subwin.c sun.c terminal.c \ threadpipe.c titlpage.c tregex.c trig.c \ ttys.c txts.c txts.h txts.inc uni_7b.inc \ win32.c winkey.c wiki.c wizz.c zstring.c tucnak_LDADD = @TUCNAK_LDADD@ soundwrapper_SOURCES = soundwrapper.c EXTRA_DIST = mingw.c mingw.h msvc.c msvc.h regcomp.c \ regex_internal.c regex_internal.h regexec.c win32.c #stucnak_SOURCES = $(tucnak_SOURCES) #stucnak_LDFLAGS = -static #stucnak_LDADD = @TUCNAK_LDADD@ -L/usr/X11R6/lib -lpng -lxf86config -lvga -laa -lncurses -lslang -lXv -lX11 -lz -ldl -lXext -lartsc -lasound -lesd -laudio -lgpm loc: loc.c gcc -g -O0 -DMAIN -DLOCDEBUG loc.c -o loc -lm tucnak2-2.48/src/ppdev.c0000644000175000017500000001676211701533545012030 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #ifdef HAVE_LINUX_PPDEV_H int parport_init(struct cwdaemon *cwda){ cwda->fd = -1; parport_open(cwda, 1); return 0; } int parport_open(struct cwdaemon *cwda, int verbose){ int mode; struct ppdev_frob_struct frob; char errbuf[1024]; if (cwda->freeing) return -1; if (cwda->fd >=0 ) return 0; cwda->fd = open(cfg->cwda_device, O_RDWR|O_NONBLOCK); if (cwda->fd<0){ if (verbose) log_addf("Can't open %s %s", cfg->cwda_device, strerror_r(errno, errbuf, sizeof(errbuf))); if (errno==ENOENT) { int len, devno; len=strcspn(cfg->cwda_device, "01234567890"); if (lencwda_device)) devno=atoi(cfg->cwda_device+len); else devno=0; if (verbose) log_addf("Tip: try to run as root \"mknod %s c 99 %d; chmod a+rw %s\"", cfg->cwda_device, devno, cfg->cwda_device); } if (errno==EACCES && verbose) { log_addf("Tip: try to run as root \"chmod a+rw %s\"", cfg->cwda_device); } close(cwda->fd); cwda->fd=-1; return -1; } mode=PARPORT_MODE_PCSPP; if (ioctl(cwda->fd, PPSETMODE, &mode)<0){ if (verbose) log_addf("Can't set %s to EPP mode %s", cfg->cwda_device, cfg->cwda_device, errno, strerror_r(errno, errbuf, sizeof(errbuf))); close(cwda->fd); cwda->fd=-1; return -1; } if (ioctl(cwda->fd, PPEXCL, NULL)<0){ if (verbose) log_addf("Can't exclusive access to %s %s", cfg->cwda_device, cfg->cwda_device, errno, strerror_r(errno, errbuf, sizeof(errbuf))); close(cwda->fd); cwda->fd=-1; return -1; } if (ioctl(cwda->fd, PPCLAIM, NULL)<0){ if (verbose) log_addf("Can't claim %s %s", cfg->cwda_device, strerror_r(errno, errbuf, sizeof(errbuf))); if (errno==ENXIO && verbose){ log_addf("Tip: try to run as root \"rmmod lp\""); log_addf("Tip: or kill process listed in \"lsof %s\"", cfg->cwda_device); } close(cwda->fd); cwda->fd=-1; return -1; } frob.mask = PARPORT_CONTROL_STROBE; frob.val = PARPORT_CONTROL_STROBE; if (ioctl(cwda->fd, PPFCONTROL, &frob)<0){ if (verbose) log_addf("Can't set parport_STROBE %s", strerror_r(errno, errbuf, sizeof(errbuf))); close(cwda->fd); cwda->fd=-1; return 1; } parport_reset(cwda); return 0; } /* linux ppdev */ int parport_free(struct cwdaemon *cwda){ struct ppdev_frob_struct frob; char errbuf[1024]; if (!cwda) return 0; if (cwda->fd>=0){ frob.mask = PARPORT_CONTROL_STROBE; frob.val = 0; if (ioctl(cwda->fd, PPFCONTROL, &frob)<0){ dbg("Can't clear parport_STROBE %s\n", strerror_r(errno, errbuf, sizeof(errbuf))); } close(cwda->fd); cwda->fd=-1; } return 0; } /* linux ppdev */ int parport_reset(struct cwdaemon *cwda){ parport_ptt(cwda, 0); parport_cw(cwda, 0); parport_ssbway(cwda, 0); return 0; } /* linux ppdev */ int parport_cw(struct cwdaemon *cwda, int onoff){ struct ppdev_frob_struct frob; char errbuf[1024]; if (!cwda || cwda->fd<0) return 1; frob.mask = PARPORT_CONTROL_SELECT; frob.val = !onoff?PARPORT_CONTROL_SELECT:0; if (ioctl(cwda->fd, PPFCONTROL, &frob)<0){ dbg("Can't %s parport_SELECT %s\n", onoff?"set":"clear", strerror_r(errno, errbuf, sizeof(errbuf))); close(cwda->fd); cwda->fd=-1; return 1; } return 0; } /* linux ppdev */ int parport_ptt(struct cwdaemon *cwda, int onoff){ struct ppdev_frob_struct frob; char errbuf[1024]; if (!cwda) return 1; if (cwda->fd<0 && parport_open(cwda, 0)) return 1; frob.mask = PARPORT_CONTROL_INIT; frob.val = onoff?PARPORT_CONTROL_INIT:0; if (ioctl(cwda->fd, PPFCONTROL, &frob)<0){ dbg("Can't %s parport_INIT %s\n", onoff?"set":"clear", strerror_r(errno, errbuf, sizeof(errbuf))); close(cwda->fd); cwda->fd=-1; return 1; } return 0; } /* linux ppdev */ int parport_ssbway(struct cwdaemon *cwda, int onoff){ struct ppdev_frob_struct frob; char errbuf[1024]; /*dbg("ssbway(%d)\n", onoff);*/ if (!cwda) return 1; if (cwda->fd<0 && parport_open(cwda, 0)) return 1; frob.mask = PARPORT_CONTROL_AUTOFD; frob.val = onoff?PARPORT_CONTROL_AUTOFD:0; if (ioctl(cwda->fd, PPFCONTROL, &frob)<0){ dbg("Can't %s parport_AUTOFD %s\n", onoff?"set":"clear", strerror_r(errno, errbuf, sizeof(errbuf))); close(cwda->fd); cwda->fd=-1; return 1; } return 0; } int parport_band(struct cwdaemon *cwda, int bandsw){ if (!cwda) return 1; if (cwda->fd<0 && parport_open(cwda, 0)) return 1; cwda->data &= ~0xe1; if (bandsw & 0x01) cwda->data |= 0x01; if (bandsw & 0x02) cwda->data |= 0x20; if (bandsw & 0x04) cwda->data |= 0x40; if (bandsw & 0x08) cwda->data |= 0x80; dbg("parport_band: %d\n", cwda->data); if (ioctl(cwda->fd, PPWDATA, &cwda->data)<0){ dbg("Can't write data to parport\n"); close(cwda->fd); cwda->fd=-1; return 1; } return 0; } void parport_info(){ int port; int fd; char s[1024]; char errbuf[1024]; unsigned int modes; int mode; printf("\n parport_info:\n"); for (port=0;port<4;port++){ sprintf(s, "/dev/parport%d", port); fd=open(s, O_RDWR|O_NONBLOCK); if (fd<0){ if (errno==ENOENT) continue; printf("Found /dev/parport%d but cannot open it: %s\n", port, strerror_r(errno, errbuf, sizeof(errbuf))); continue; } if (ioctl(fd, PPGETMODES, &modes)<0){ if (errno==ENODEV) continue; printf("Can't get modes for /dev/parport%d: %s\n", port, strerror_r(errno, errbuf, sizeof(errbuf))); close(fd); continue; } printf("Found /dev/parport%d\n", port); printf(" modes: 0x%x ", modes); if (modes&PARPORT_MODE_PCSPP) printf("SPP "); if (modes&PARPORT_MODE_TRISTATE) printf("TRISTATE "); if (modes&PARPORT_MODE_EPP) printf("EPP "); if (modes&PARPORT_MODE_ECP) printf("ECP "); if (modes&PARPORT_MODE_COMPAT) printf("COMPAT "); if (modes&PARPORT_MODE_DMA) printf("DMA "); if (modes&PARPORT_MODE_SAFEININT) printf("SAFEINIT "); printf("\n"); if (ioctl(fd, PPGETMODE, &mode)<0){ close(fd); continue; } printf(" mode: 0x%x ", mode); if (mode==0) printf("NIBBLE "); if (mode&IEEE1284_MODE_BYTE) printf("BYTE "); if (mode&IEEE1284_MODE_COMPAT) printf("COMPAT "); if (mode&IEEE1284_MODE_BECP) printf("Bounded_ECP "); if (mode&IEEE1284_MODE_ECP) printf("ECP "); if (mode&IEEE1284_MODE_ECPRLE) printf("ECP_RLE "); if (mode&IEEE1284_MODE_ECPSWE) printf("Software_ECP "); if (mode&IEEE1284_MODE_EPP) printf("EPP "); if (mode&IEEE1284_MODE_EPPSL) printf("EPP_1.7 "); if (mode&IEEE1284_MODE_EPPSWE) printf("Software_EPP "); if (mode&IEEE1284_DEVICEID) printf("DEVICEID "); printf("\n"); close(fd); } printf("\n"); } #endif tucnak2-2.48/src/menu5.c0000644000175000017500000007340111567373656011753 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" /******************** MISC OPTIONS *******************************/ char loglines_str[MAX_STR_LEN],skedshift_str[MAX_STR_LEN],skedcount_str[MAX_STR_LEN],startbandchar_str[MAX_STR_LEN]; char gfx_x_ch_str[MAX_STR_LEN],gfx_y_ch_str[MAX_STR_LEN]; char gfx_x_px_str[MAX_STR_LEN],gfx_y_px_str[MAX_STR_LEN]; char fontheight_str[EQSO_LEN]; char slashkey[3]; int dssaver; void refresh_misc_opts(void *xxx) { struct config_band *confb; int gfx_x_ch, gfx_y_ch, gfx_x_px, gfx_y_px; int new_x, new_y, resize; STORE_SINT(cfg,loglines); STORE_SINT(cfg,skedshift); STORE_SINT(cfg,skedcount); confb=get_config_band_by_bandchar(startbandchar_str[0]); if (confb){ CONDGFREE(cfg->startband); cfg->startband=g_strdup(confb->pband); } gfx_x_ch=atoi(gfx_x_ch_str); gfx_y_ch=atoi(gfx_y_ch_str); gfx_x_px=atoi(gfx_x_px_str); gfx_y_px=atoi(gfx_y_px_str); STORE_STR(cfg, slashkey); STORE_INT(cfg, dssaver); new_x=800; new_y=600; resize=0; if (atoi(fontheight_str)!=cfg->fontheight) { cfg->fontheight = atoi(fontheight_str); resize++; } #ifdef HAVE_SDL if (sdl){ if (gfx_x_ch>10 && gfx_y_ch>10){ if (gfx_x_ch*sdl->font_w!=cfg->gfx_x || gfx_y_ch*sdl->font_h!=cfg->gfx_y){ new_x=gfx_x_ch*sdl->font_w; new_y=gfx_y_ch*sdl->font_h; resize++; } } if (gfx_x_px>100 && gfx_y_px>100){ if (gfx_x_px!=cfg->gfx_x || gfx_y_px!=cfg->gfx_y){ new_x=gfx_x_px; new_y=gfx_y_px; resize++; } } if (resize && new_x<=2048 && new_y<=2048) { cfg->gfx_x=new_x; cfg->gfx_y=new_y; sdl_setvideomode(new_x, new_y, 0); resize_terminal(CBA0); } } #endif } void misc_opts(cba_t cba) { struct dialog *d; int i; struct config_band *confb; g_snprintf(loglines_str, MAX_STR_LEN, "%d", cfg->loglines); g_snprintf(skedshift_str, MAX_STR_LEN, "%d", cfg->skedshift); g_snprintf(skedcount_str, MAX_STR_LEN, "%d", cfg->skedcount); confb=get_config_band_by_pband(cfg->startband); if (!confb) confb=(struct config_band *)g_ptr_array_index(cfg->bands,0); startbandchar_str[0]=toupper(confb->bandchar); startbandchar_str[1]='\0'; // dbg("gfx_x=%d gfx_x=%d %%=%d %d\n", cfg->gfx_x, cfg->gfx_y, cfg->gfx_x%sdl->font_w, cfg->gfx_y%font_h); #ifdef HAVE_SDL if (sdl){ if (cfg->gfx_x%sdl->font_w!=0 || cfg->gfx_y%sdl->font_h!=0){ strcpy(gfx_x_ch_str, ""); strcpy(gfx_y_ch_str, ""); }else{ g_snprintf(gfx_x_ch_str, MAX_STR_LEN, "%d", cfg->gfx_x/sdl->font_w); g_snprintf(gfx_y_ch_str, MAX_STR_LEN, "%d", cfg->gfx_y/sdl->font_h); } } else #endif { strcpy(gfx_x_ch_str, ""); strcpy(gfx_y_ch_str, ""); } g_snprintf(gfx_x_px_str, MAX_STR_LEN, "%d", cfg->gfx_x); g_snprintf(gfx_y_px_str, MAX_STR_LEN, "%d", cfg->gfx_y); g_snprintf(fontheight_str, EQSO_LEN, "%d", cfg->fontheight); safe_strncpy0(slashkey, cfg->slashkey, sizeof(slashkey)); dssaver = cfg->dssaver; if (!(d = mem_alloc(sizeof(struct dialog) + 20 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 20 * sizeof(struct dialog_item)); d->title = VTEXT(T_MISCOPTS); d->fn = dlg_pf_fn; d->refresh = (void (*)(void *))refresh_misc_opts; d->y0 = 1; d->items[i=0].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = loglines_str; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 1; d->items[i].gnum = 30; d->items[i].msg = CTEXT(T_LOGLINES); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = skedshift_str; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 10; d->items[i].msg = CTEXT(T_SKEDSHIFT); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = skedcount_str; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 10; d->items[i].msg = CTEXT(T_SKEDCOUNT); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = startbandchar_str; d->items[i].maxl = 3; d->items[i].msg = CTEXT(T_STARTBAND); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = gfx_x_ch_str; d->items[i].maxl = 5; d->items[i].msg = CTEXT(T_GFX_X_CH); d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = gfx_y_ch_str; d->items[i].maxl = 5; d->items[i].msg = CTEXT(T_GFX_Y_CH); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = gfx_x_px_str; d->items[i].maxl = 5; d->items[i].msg = CTEXT(T_GFX_X_PX); d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = gfx_y_px_str; d->items[i].maxl = 5; d->items[i].msg = CTEXT(T_GFX_Y_PX); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].gid = 16; d->items[i].gnum = 32; d->items[i].maxl = 5; d->items[i].dlen = EQSO_LEN; d->items[i].data = fontheight_str; d->items[i].msg = CTEXT(T_FONTHEIGHT); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = 3; d->items[i].data = slashkey; d->items[i].maxl = 2; d->items[i].msg = CTEXT(T_SLASHKEY); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&dssaver; d->items[i].msg = CTEXT(T_DSSAVER); d->items[i].wrap = 2; d->items[++i].type = D_BUTTON; /* 9 */ d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } /*********************** FIXQRG - Change operator *************************/ #ifdef HAVE_HAMLIB void fixqrg(struct session *ses, char *qrgstr){ gdouble newqrg; if (!qrgstr) return; newqrg = atof(qrgstr); if (newqrg<=0){ errbox(CTEXT(T_BAD_QRG), 0); return; } set_rig_lo(aband, get_rig_lo(aband) + newqrg - trig->qrg); trig_resend_freq(trig); // redraw_later(); } void menu_fixqrg(struct terminal *term, void *d, struct session *ses){ static char qrgstr[EQSO_LEN]; if (!ctest || !aband || !trig) return; g_snprintf(qrgstr, EQSO_LEN, "%1.0f", trig->qrg); input_field(NULL, CTEXT(T_FIXQRG), CTEXT(T_ENTER_QRG) , CTEXT(T_OK), CTEXT(T_CANCEL), ses, NULL, 20, qrgstr, 0, 0, NULL, (void (*)(void *, char *)) fixqrg, NULL, 0); } #endif /************************** winkey ******************************/ int wk_wk2, wk_usepot, wk_usebut, wk_keymode, wk_swap; void refresh_winkey_opts(void *xxx) { STORE_INT(cfg, wk_wk2); STORE_INT(cfg, wk_usepot); STORE_INT(cfg, wk_usebut); STORE_INT(cfg, wk_keymode); STORE_INT(cfg, wk_swap); } char *winkey_opts_msg[] = { CTEXT(T_WK_WK2), CTEXT(T_WK_USEPOT), CTEXT(T_WK_USEBUT), CTEXT(T_WK_KM_B), CTEXT(T_WK_KM_A), CTEXT(T_WK_KM_U), CTEXT(T_WK_KM_G), CTEXT(T_WK_SWAP), "", "" }; void winkey_opts_fn(struct dialog_data *dlg) { struct terminal *term = dlg->win->term; int max = 0, min = 0; int w, rw; int y = -1; max_group_width(term, winkey_opts_msg + 0, dlg->items + 0, 1, &max); min_group_width(term, winkey_opts_msg + 0, dlg->items + 0, 1, &min); max_group_width(term, winkey_opts_msg + 1, dlg->items + 1, 2, &max); min_group_width(term, winkey_opts_msg + 1, dlg->items + 1, 2, &min); max_group_width(term, winkey_opts_msg + 3, dlg->items + 3, 4, &max); min_group_width(term, winkey_opts_msg + 3, dlg->items + 3, 4, &min); max_group_width(term, winkey_opts_msg + 7, dlg->items + 1, 1, &max); min_group_width(term, winkey_opts_msg + 7, dlg->items + 1, 1, &min); max_buttons_width(term, dlg->items + 8, 2, &max); min_buttons_width(term, dlg->items + 8, 2, &min); w = dlg->win->term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > dlg->win->term->x - 2 * DIALOG_LB) w = dlg->win->term->x - 2 * DIALOG_LB; if (w < 1) w = 1; rw = 0; y ++; dlg_format_group(NULL, term, winkey_opts_msg + 0, dlg->items + 0, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, winkey_opts_msg + 1, dlg->items + 1, 2, 0, &y, w, &rw); dlg_format_group(NULL, term, winkey_opts_msg + 3, dlg->items + 3, 4, 0, &y, w, &rw); dlg_format_group(NULL, term, winkey_opts_msg + 7, dlg->items + 7, 1, 0, &y, w, &rw); y++; dlg_format_buttons(NULL, term, dlg->items +8, 2, 0, &y, w, &rw, AL_LEFT); w = rw; dlg->xw = w + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB; y++; dlg_format_group(term, term, winkey_opts_msg + 0, dlg->items + 0, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, winkey_opts_msg + 1, dlg->items + 1, 2, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, winkey_opts_msg + 3, dlg->items + 3, 4, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, winkey_opts_msg + 7, dlg->items + 7, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); y++; dlg_format_buttons(term, term, dlg->items +8, 2, dlg->x + DIALOG_LB, &y, w, NULL, AL_LEFT); } void winkey_opts(cba_t cba) { struct dialog *d; int i; wk_wk2 = cfg->wk_wk2; wk_usepot = cfg->wk_usepot; wk_usebut = cfg->wk_usebut; wk_keymode = cfg->wk_keymode; wk_swap = cfg->wk_swap; if (!(d = mem_alloc(sizeof(struct dialog) + 20 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 20 * sizeof(struct dialog_item)); d->title = VTEXT(T_WINKEYOPTS); d->fn = winkey_opts_fn; d->refresh = (void (*)(void *))refresh_winkey_opts; d->items[i=0].type = D_CHECKBOX; /* 0 */ d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&wk_wk2; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&wk_usepot; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&wk_usebut; d->items[++i].type = D_CHECKBOX; /* 3 */ d->items[i].gid = 1; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&wk_keymode; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = 2; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&wk_keymode; d->items[++i].type = D_CHECKBOX; /* 5 */ d->items[i].gid = 1; d->items[i].gnum = 3; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&wk_keymode; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = 4; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&wk_keymode; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&wk_swap; d->items[++i].type = D_BUTTON; /* 8 */ d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } int dlg_winkey_opts(struct dialog_data *dd, struct dialog_item_data *did){ winkey_opts(CBA0); return 0; } /************************** rig ******************************/ #ifdef HAVE_HAMLIB char rig_filename[MAX_STR_LEN]; char rig_model_str[EQSO_LEN]; char rig_speed_str[EQSO_LEN]; /* choose manufacturer */ char rig_civaddr_str[EQSO_LEN]; char rig_ssbcw_shift_str[EQSO_LEN]; char rig_lo_str[MAX_STR_LEN]; //int rig_poll_ms; char rig_poll_ms_str[MAX_STR_LEN]; int rig_qrg_r2t, rig_qrg_t2r, rig_mode_t2r, rig_clr_rit, rig_verbose; char new_model_str[EQSO_LEN]; void set_rig (cba_t cba){ struct rig_caps *mcaps; if (cba.int_<0 || cba.int_>=riglist->len) return; mcaps = (struct rig_caps *)g_index_array_index(riglist, cba.int_); dbg("%4d %4d %-20s %s\n", cba.int_, mcaps->rig_model, mcaps->mfg_name, mcaps->model_name); g_snprintf(new_model_str, EQSO_LEN, "%d", mcaps->rig_model); dbg("set_rig: new_model_str = '%s'\n", new_model_str); redraw_later(); } void choose_rig (cba_t cba){ struct rig_caps *mcaps; int i, sel=0, model; struct menu_item *mi; if (cba.int_<0 || cba.int_>=riglist->len) return; mcaps = (struct rig_caps *)g_index_array_index(riglist, cba.int_); dbg("%4d %4d %-20s %s\n", cba.int_, mcaps->rig_model, mcaps->mfg_name, mcaps->model_name); if (!(mi = new_menu(1))) return; model=cfg->rig_model; for (i=cba.int_; ilen; i++){ struct rig_caps *caps = (struct rig_caps *)g_index_array_index(riglist, i); if (strcasecmp(mcaps->mfg_name, caps->mfg_name)!=0) break; if (model==caps->rig_model) sel = i - cba.int_; add_to_menu(&mi, (char *)caps->model_name, "", "", MENU_FUNC set_rig, (cba_t)i, 0); } dbg("sel=%d\n", sel); do_menu_selected(mi, CBA0, sel); } int choose_manufacturer(struct dialog_data *dlg, struct dialog_item_data *di){ int i, sel=0, j=0, same, model; struct menu_item *mi; const char *old = NULL; if (!(mi = new_menu(1))) return 0; model=cfg->rig_model; dbg("rig_model=%d\n", model); for (i=0; ilen; i++){ struct rig_caps *caps = (struct rig_caps *)g_index_array_index(riglist, i); same=0; if (old && strcasecmp(old, caps->mfg_name)==0) same=1; if (model==caps->rig_model) { dbg("i=%d j=%d\n", i, j); sel = j; if (same) sel--; } if (same) continue; add_to_menu(&mi, (char *)caps->mfg_name, "", "", MENU_FUNC choose_rig, (cba_t)i, 0); old = caps->mfg_name; j++; } dbg("sel=%d\n", sel); do_menu_selected(mi, CBA0, sel); return 0; } void refresh_rig_opts(void *xxx){ STORE_STR(cfg, rig_filename); STORE_SINT(cfg, rig_model); STORE_SINT(cfg, rig_speed); STORE_SINT(cfg, rig_civaddr); STORE_SINT(cfg, rig_ssbcw_shift); STORE_SDBL(cfg, rig_lo); STORE_SINT(cfg, rig_poll_ms); STORE_INT(cfg, rig_qrg_r2t); STORE_INT(cfg, rig_qrg_t2r); STORE_INT(cfg, rig_mode_t2r); STORE_INT(cfg, rig_clr_rit); STORE_INT(cfg, rig_verbose); free_trig(trig); trig = init_trig(); } void rig_opts_fn(struct dialog_data *dlg) { if (strlen(new_model_str)>0){ dbg("new_model_str=%s\n", new_model_str); safe_strncpy0(dlg->items[1].cdata, new_model_str, EQSO_LEN); strcpy(new_model_str, ""); } } void menu_rig_opts(cba_t cba) { struct dialog *d; int i; safe_strncpy0(rig_filename, cfg->rig_filename, MAX_STR_LEN); g_snprintf(rig_model_str, EQSO_LEN, "%d", cfg->rig_model); g_snprintf(rig_speed_str, EQSO_LEN, "%d", cfg->rig_speed); g_snprintf(rig_civaddr_str, EQSO_LEN, "%d", cfg->rig_civaddr); g_snprintf(rig_ssbcw_shift_str, EQSO_LEN, "%d", cfg->rig_ssbcw_shift); g_snprintf(rig_lo_str, MAX_STR_LEN, "%1.1f", cfg->rig_lo); g_snprintf(rig_poll_ms_str, MAX_STR_LEN, "%d", cfg->rig_poll_ms); rig_qrg_r2t = cfg->rig_qrg_r2t; rig_qrg_t2r = cfg->rig_qrg_t2r; rig_mode_t2r = cfg->rig_mode_t2r; rig_clr_rit = cfg->rig_clr_rit; rig_verbose = cfg->rig_verbose; strcpy(new_model_str, ""); if (!(d = mem_alloc(sizeof(struct dialog) + 20 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 20 * sizeof(struct dialog_item)); d->title = VTEXT(T_RIGOPTS); // d->fn = rig_opts_fn; d->fn = dlg_pf_fn; d->fn2 = rig_opts_fn; d->refresh = (void (*)(void *))refresh_rig_opts; d->y0 = 1; d->items[i=0].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = rig_filename; d->items[i].maxl = 35; d->items[i].msg = CTEXT(T_RIG_DEVICE); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rig_model_str; d->items[i].maxl = 7; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].msg = CTEXT(T_RIG_MODEL); d->items[i].gnum = 20000; d->items[++i].type = D_BUTTON; /* 2 */ d->items[i].gid = 0; d->items[i].fn = choose_manufacturer; d->items[i].text = VTEXT(T_RIG_CHOOSE); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rig_speed_str; d->items[i].maxl = 7; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].msg = CTEXT(T_RIG_SPEED); d->items[i].gnum = 999999; d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rig_civaddr_str; d->items[i].maxl = 4; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].msg = CTEXT(T_RIG_CIV); d->items[i].gnum = 255; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rig_ssbcw_shift_str; d->items[i].maxl = 5; d->items[i].fn = check_number; d->items[i].gid = -2000; d->items[i].gnum = +2000; d->items[i].msg = CTEXT(T_RIG_FREQSHIFT); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = rig_lo_str; d->items[i].maxl = 16; d->items[i].fn = check_qrg; d->items[i].msg = CTEXT(T_BAND_LO); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rig_poll_ms_str; d->items[i].maxl = 6; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 9999; d->items[i].msg = CTEXT(T_RIG_POLL_MS); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&rig_qrg_r2t; d->items[i].msg = CTEXT(T_RIG_QRG_R2T); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&rig_qrg_t2r; d->items[i].msg = CTEXT(T_RIG_QRG_T2R); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&rig_mode_t2r; d->items[i].msg = CTEXT(T_RIG_MODE_T2R); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&rig_clr_rit; d->items[i].msg = CTEXT(T_RIG_CLR_RIT); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&rig_verbose; d->items[i].msg = CTEXT(T_RIG_DEBUG); d->items[i].wrap = 2; d->items[++i].type = D_BUTTON; /* 6 */ d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } #endif /************************** rotar ******************************/ char rot_desc[MAX_STR_LEN]; int rot_type; char rot_filename[MAX_STR_LEN], rot_hostname[MAX_STR_LEN]; char rot_port_str[EQSO_LEN]; char rot_vid_str[EQSO_LEN]; char rot_pid_str[EQSO_LEN]; char rot_serial[EQSO_LEN]; char rot_timeout_ms_str[EQSO_LEN]; char rot_beamwidth_str[EQSO_LEN]; char rot_saddr_str[EQSO_LEN], rot_model_str[EQSO_LEN]; char rot_rem_rotstr[EQSO_LEN]; void refresh_rotar_opts(void *xxx){ struct config_rotar *crot = (struct config_rotar *)xxx; if (!crot) { crot = g_new0(struct config_rotar, 1); crot->nr = cfg->crotars->len; g_ptr_array_add(cfg->crotars, crot); } STORE_STR (crot, rot_desc); STORE_INT (crot, rot_type); STORE_STR (crot, rot_filename); STORE_STR (crot, rot_hostname); STORE_SINT(crot, rot_port); STORE_SHEX(crot, rot_vid); STORE_SHEX(crot, rot_pid); STORE_STR (crot, rot_serial); STORE_SINT(crot, rot_timeout_ms); STORE_SINT(crot, rot_beamwidth); STORE_SINT(crot, rot_model); STORE_SINT(crot, rot_saddr); STORE_STR (crot, rot_rem_rotstr); free_rotars(); init_rotars(); } void menu_rotar_opts(cba_t cba){ struct dialog *d; int i, roti; struct config_rotar *crot; roti = (int)GETCBA(cba, int_); dbg("menu_rotar_opts(%d)\n", roti); if (roti >= (int)cfg->crotars->len) return; if (roti < 0){ crot = NULL; safe_strncpy0(rot_desc, "", MAX_STR_LEN); rot_type = ROT_HAMLIB; strcpy(rot_filename, ""); strcpy(rot_hostname, ""); strcpy(rot_port_str, "10001"); strcpy(rot_vid_str, "a600"); strcpy(rot_pid_str, "e112"); strcpy(rot_serial, ""); strcpy(rot_timeout_ms_str,"400"); strcpy(rot_beamwidth_str, "10"); strcpy(rot_saddr_str, "240"); strcpy(rot_model_str, "0"); strcpy(rot_rem_rotstr, "A"); }else{ crot = (struct config_rotar *)g_ptr_array_index(cfg->crotars, roti); LOAD_STR (crot, rot_desc); LOAD_INT (crot, rot_type); LOAD_STR (crot, rot_filename); LOAD_STR (crot, rot_hostname); LOAD_SINT (crot, rot_port); LOAD_SHEX4(crot, rot_vid); LOAD_SHEX4(crot, rot_pid); LOAD_STR (crot, rot_serial); LOAD_SINT (crot, rot_timeout_ms); LOAD_SINT (crot, rot_beamwidth); LOAD_SINT (crot, rot_saddr); LOAD_SINT (crot, rot_model); LOAD_STR (crot, rot_rem_rotstr); } if (!(d = mem_alloc(sizeof(struct dialog) + 20 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 20 * sizeof(struct dialog_item)); d->title = VTEXT(T_ROTAROPTS); d->fn = dlg_pf_fn; d->refresh = (void (*)(void *))refresh_rotar_opts; d->refresh_data = crot; d->y0 = 1; d->items[i=0].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = rot_desc; d->items[i].maxl = 30; d->items[i].msg = CTEXT(T_DESC); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = ROT_NONE; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&rot_type; d->items[i].msg = CTEXT(T_ROT_NONE); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = ROT_OK1ZIA_TTYS; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&rot_type; d->items[i].msg = CTEXT(T_ROT_OK1ZIA_TTYS); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = ROT_OK1ZIA_FTDI; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&rot_type; d->items[i].msg = CTEXT(T_ROT_OK1ZIA_FTDI); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = ROT_HAMLIB; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&rot_type; d->items[i].msg = CTEXT(T_ROT_HAMLIB); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = ROT_REMOTE; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&rot_type; d->items[i].msg = CTEXT(T_ROT_REMOTE); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = rot_filename; d->items[i].maxl = 15; d->items[i].msg = CTEXT(T_FILENAME); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; // 5 d->items[i].dlen = MAX_STR_LEN; d->items[i].data = rot_hostname; d->items[i].maxl = 15; d->items[i].msg = CTEXT(T_HOSTNAME); d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rot_port_str; d->items[i].fn = check_number; d->items[i].gid = 1; d->items[i].gnum = 65535; d->items[i].maxl = 6; d->items[i].msg = CTEXT(T_UDPPORT); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rot_vid_str; d->items[i].maxl = 6; d->items[i].msg = CTEXT(T_ROT_VID); d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rot_pid_str; d->items[i].maxl = 6; d->items[i].msg = CTEXT(T_ROT_VID); d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rot_serial; d->items[i].maxl = 10; d->items[i].msg = CTEXT(T_ROT_SERIAL); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rot_timeout_ms_str; d->items[i].fn = check_number; d->items[i].gid = 1; d->items[i].gnum = 2000; d->items[i].maxl = 5; d->items[i].msg = CTEXT(T_TIMEOUT); d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rot_beamwidth_str; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 360; d->items[i].maxl = 5; d->items[i].msg = CTEXT(T_BEAMWIDTH); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rot_saddr_str; d->items[i].fn = check_number; d->items[i].gid = 128; d->items[i].gnum = 255; d->items[i].maxl = 5; d->items[i].msg = CTEXT(T_SADDR); d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rot_model_str; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 9999; d->items[i].maxl = 5; d->items[i].msg = CTEXT(T_MODEL); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rot_rem_rotstr; d->items[i].maxl = 3; d->items[i].msg = CTEXT(T_ROT_REM_ROTSTR); d->items[i].wrap = 2; d->items[++i].type = D_BUTTON; // 10 d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } void menu_rotar_delete(cba_t cba){ struct config_rotar *crot; int roti; roti = (int)GETCBA(cba, int_); dbg("menu_rotar_delete(%d)\n", roti); if (roti >= (int)cfg->crotars->len) return; crot = g_ptr_array_index(cfg->crotars, roti); free_config_rotar(crot); g_ptr_array_remove_index(cfg->crotars, roti); } void menu_rotars_delete(cba_t cba) { struct menu_item *mi = NULL; static char *rotstrs[]={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}; int i; if (!(mi = new_menu(3))) return; for (i=0; icrotars->len; i++){ struct config_rotar *rot = (struct config_rotar *)g_ptr_array_index(cfg->crotars, i); add_to_menu(&mi, stracpy(rot->rot_desc && *rot->rot_desc?rot->rot_desc:"Rotator"), rotstrs[rot->nr], rotstrs[rot->nr], MENU_FUNC menu_rotar_delete, (cba_t)i, 0); } do_menu(mi, CBA0); } void menu_rotars(cba_t cba) { struct menu_item *mi = NULL; static char *rotstrs[]={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}; int i; if (!(mi = new_menu(3))) return; for (i=0; icrotars->len; i++){ struct config_rotar *rot = (struct config_rotar *)g_ptr_array_index(cfg->crotars, i); add_to_menu(&mi, stracpy(rot->rot_desc && *rot->rot_desc?rot->rot_desc:"Rotator"), rotstrs[rot->nr], rotstrs[rot->nr], MENU_FUNC menu_rotar_opts, (cba_t)i, 0); } add_to_menu(&mi, stracpy(""), "", M_BAR, NULL, CBA0, 0); add_to_menu(&mi, stracpy(VTEXT(T_ROT_ADD)), VTEXT(T_HK_ROT_ADD), VTEXT(T_HK_ROT_ADD), MENU_FUNC menu_rotar_opts, (cba_t)-1, 0); add_to_menu(&mi, stracpy(VTEXT(T_ROT_REMOVE)), VTEXT(T_HK_ROT_REMOVE), VTEXT(T_HK_ROT_REMOVE), MENU_FUNC menu_rotars_delete, (cba_t)-1, 1); do_menu(mi, CBA0); } tucnak2-2.48/src/interfaces.h0000644000175000017500000000122411567373656013044 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of samba www.samba.org This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ /* This structure is used by lib/interfaces.c to return the list of network interfaces on the machine */ #ifndef _INTERFACES_H #define _INTERFACES_H struct iface_struct { char name[16]; struct in_addr ip; struct in_addr netmask; }; int get_interfaces(struct iface_struct *ifaces, int max_interfaces); #endif tucnak2-2.48/src/davac4.c0000644000175000017500000002204611577627017012055 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and Even Nermerson (ftdi_new and ftdi_free) and other authors of libftdi This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #ifdef HAVE_LIBFTDI int davac4_init(struct cwdaemon *cwda){ cwda->ftdi = NULL; MUTEX_LOCK(cwda->ftdi); davac4_open(cwda, 1); MUTEX_UNLOCK(cwda->ftdi); return 0; } int davac4_free(struct cwdaemon *cwda){ dbg("davac4_free(%p)\n", cwda); if (!cwda) return 0; if (cwda->ftdi==NULL) return 0; ftdi_free(cwda->ftdi); cwda->ftdi=NULL; return 0; } int davac4_open(struct cwdaemon *cwda, int verbose){ int ret; if (cwda->ftdi != NULL) { ret = 0; goto x; } cwda->ftdi = ftdi_new(); if (!cwda->ftdi){ if (verbose) log_addf("Can't init ftdi library for davac4"); dbg("davac4_open=%d\n", 1); ret = 1; goto x; } dbg("ftdi_new=%p\n", cwda->ftdi); ret=ftdi_usb_open(cwda->ftdi, cfg->cwda_vid, cfg->cwda_pid); dbg("ftdi_usb_open cwda->ftdi=%p ret=%d\n", cwda->ftdi, ret); if (ret){ if (verbose) { log_addf("Can't open davac4 device %04x:%04x, error=%d %s", cfg->cwda_vid, cfg->cwda_pid, ret, ftdi_get_error_string(cwda->ftdi)); if (ret==-8) log_addf("Maybe try to run as root: \"adduser %s davac4\" and relogin", getenv("USER")); } davac4_free(cwda); dbg("davac4_open=%d ret=%d\n", ret); goto x; } ret=ftdi_set_baudrate(cwda->ftdi, 115200); if (ret){ if (verbose) log_addf("Can't set baudrate for davac4, error=%d %s", ret, ftdi_get_error_string(cwda->ftdi)); davac4_free(cwda); dbg("davac4_open=%d\n", ret); goto x; } //ret=ftdi_enable_bitbang(cwda->ftdi, 0xff); ret=ftdi_set_bitmode(cwda->ftdi, 0xff, BITMODE_BITBANG); if (ret){ if (verbose) log_addf("Can't enable bitbang, error=%d %s", ret, ftdi_get_error_string(cwda->ftdi)); davac4_free(cwda); dbg("davac4_open=%d\n", ret); goto x; } cwda->ftdi_state=0xff; x:; dbg("davac4_open=%d\n", ret); return ret; } int davac4_reset(struct cwdaemon *cwda){ davac4_ptt(cwda, 0); davac4_cw(cwda, 0); davac4_ssbway(cwda, 0); return 0; } int davac4_cw(struct cwdaemon *cwda, int onoff){ int ret; MUTEX_LOCK(cwda->ftdi); if (!cwda || cwda->ftdi == NULL) {// function called from worker thread, exit silently ret = 1; goto x; } if (onoff) cwda->ftdi_state &= ~0x10; else cwda->ftdi_state |= 0x10; ret=ftdi_write_data(cwda->ftdi, &cwda->ftdi_state, 1); if (ret!=1){ log_addf("Can't write to davac4, error=%d %s", ret, ftdi_get_error_string(cwda->ftdi)); davac4_free(cwda); goto x; } x:; MUTEX_UNLOCK(cwda->ftdi); return ret; } int davac4_ptt(struct cwdaemon *cwda, int onoff){ int ret; MUTEX_LOCK(cwda->ftdi); dbg("davac4_ptt cwda->ftdi=%p\n", cwda->ftdi); if (!cwda || cwda->ftdi == NULL){ ret=davac4_open(cwda, 0); if (ret) goto x; } if (onoff) cwda->ftdi_state &= ~0x04; else cwda->ftdi_state |= 0x04; ret=ftdi_write_data(cwda->ftdi, &cwda->ftdi_state, 1); if (ret!=1){ log_addf("Can't write to davac4, error=%d %s", ret, ftdi_get_error_string(cwda->ftdi)); davac4_free(cwda); goto x; } x:; MUTEX_UNLOCK(cwda->ftdi); return ret; } /* 0=microphone, 1=soundcard */ int davac4_ssbway(struct cwdaemon *cwda, int onoff){ int ret; MUTEX_LOCK(cwda->ftdi); if (!cwda || cwda->ftdi == NULL){ ret=davac4_open(cwda, 0); if (ret) goto x; } if (onoff) cwda->ftdi_state |= 0x01; /* soundcard */ else cwda->ftdi_state &= ~0x01; /* microphone */ ret=ftdi_write_data(cwda->ftdi, &cwda->ftdi_state, 1); if (ret!=1){ log_addf("Can't write to davac4, error=%d %s", ret, ftdi_get_error_string(cwda->ftdi)); davac4_free(cwda); goto x; } x:; MUTEX_UNLOCK(cwda->ftdi); return ret; } int davac4_monitor(struct cwdaemon *cwda, int onoff){ int ret; MUTEX_LOCK(cwda->ftdi); if (!cwda || cwda->ftdi == NULL){ ret=davac4_open(cwda, 0); if (ret) goto x; } if (onoff) cwda->ftdi_state &= ~0x08; else cwda->ftdi_state |= 0x08; ret=ftdi_write_data(cwda->ftdi, &cwda->ftdi_state, 1); if (ret!=1){ log_addf("Can't write to davac4, error=%d %s", ret, ftdi_get_error_string(cwda->ftdi)); davac4_free(cwda); goto x; } x:; MUTEX_UNLOCK(cwda->ftdi); return ret; } int davac4_band (struct cwdaemon *cwda, int bandsw){ int ret; MUTEX_LOCK(cwda->ftdi); if (!cwda || cwda->ftdi == NULL){ ret=davac4_open(cwda, 0); if (ret) goto x; } cwda->ftdi_state &= ~0xe2; if (bandsw & 0x01) cwda->ftdi_state |= 0x02; if (bandsw & 0x02) cwda->ftdi_state |= 0x20; if (bandsw & 0x04) cwda->ftdi_state |= 0x40; if (bandsw & 0x08) cwda->ftdi_state |= 0x80; ret=ftdi_write_data(cwda->ftdi, &cwda->ftdi_state, 1); if (ret!=1){ log_addf("Can't write to davac4, error=%d %s", ret, ftdi_get_error_string(cwda->ftdi)); davac4_free(cwda); goto x; } x:; MUTEX_UNLOCK(cwda->ftdi); return ret; } #ifndef HAVE_FTDI_NEW /* compatibility with libftdi < 0.11 */ /* code from libftdi 0.11 */ struct ftdi_context *ftdi_new() { struct ftdi_context * ftdi = (struct ftdi_context *)malloc(sizeof(struct ftdi_context)); if (ftdi == NULL) { return NULL; } if (ftdi_init(ftdi) != 0) { free(ftdi); return NULL; } return ftdi; } void ftdi_free(struct ftdi_context *ftdi) { ftdi_deinit(ftdi); free(ftdi); } #endif #define DUMP_EEPROMx void usb_info(void){ int ret; struct ftdi_context ftdi; struct ftdi_device_list *list, *dev; int ids[] = {0x0403, 0x6001, 0xa600, 0xE110, 0xa600, 0xE111, 0xa600, 0xE112, 0}; int idi; char manufacturer[128], description[128], serial[128]; #ifdef DUMP_EEPROM unsigned char eeprom_buf[128]; #endif printf("\n usb_info:\n"); ret = ftdi_init(&ftdi); if (ret < 0) { printf("error calling ftdi_init, error=%d %s", ret, ftdi_get_error_string(&ftdi)); return; } for (idi = 0; ids[idi] != 0; idi += 2){ ret = ftdi_usb_find_all(&ftdi, &list, ids[idi], ids[idi+1]); if (ret < 0) { printf("error calling ftdi_usb_find_all, error=%d %s", ret, ftdi_get_error_string(&ftdi)); return; } if (ret == 0) continue; for (dev = list; dev != NULL; dev = dev->next){ printf("%04x:%04x ", dev->dev->descriptor.idVendor, dev->dev->descriptor.idProduct); #if HAVE_FTDI_USB_GET_STRINGS ret = ftdi_usb_get_strings(&ftdi, dev->dev, manufacturer, 128, description, 128, serial, 128); if (ret < 0){ printf("Can't get strings, error=%d %s", ret, ftdi_get_error_string(&ftdi)); }else{ printf("%s %s ", manufacturer, description); if (strlen(serial)>0 && serial[0]!='?') printf("%s ", serial); } #endif printf("\n"); #ifdef DUMP_EEPROM ret = ftdi_usb_open_dev(&ftdi, dev->dev); if (ret < 0){ printf("Can't open device, error=%d %s", ret, ftdi_get_error_string(&ftdi)); }else{ ret = ftdi_read_eeprom(&ftdi, eeprom_buf); if (ret < 0){ printf("Can't open device, error=%d %s", ret, ftdi_get_error_string(&ftdi)); }else{ int i; unsigned short chksum_in_eeprom, chksum_computed; for (i=0; i<128; i++){ printf("%02x ", (unsigned char)eeprom_buf[i]); if (i%16==15) printf("\n"); } chksum_in_eeprom = eeprom_buf[0x7e] + 256 * eeprom_buf[0x7f]; chksum_computed = ftdi_checksum(eeprom_buf, 0x80); printf("Checksum eeprom=%04x computed=%04x ", chksum_in_eeprom, chksum_computed); } ftdi_usb_close(&ftdi); } printf("\n"); #endif } } ftdi_list_free(&list); ftdi_deinit(&ftdi); } // taken from libftdi // calculate checksum unsigned short ftdi_checksum(unsigned char *eeprom, int eeprom_size){ int i; unsigned short value, checksum = 0xAAAA; for (i = 0; i < eeprom_size/2-1; i++) { value = eeprom[i*2]; value += eeprom[(i*2)+1] << 8; checksum = value^checksum; checksum = (checksum << 1) | (checksum >> 15); } return checksum; } #endif tucnak2-2.48/src/alsa.c0000644000175000017500000004303411567373656011641 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #ifdef HAVE_ALSA #ifdef HAVE_SNDFILE static void device_info(int card, int pcm_device, snd_pcm_stream_t dir){ int err; char pcm_name[256], mixer_name[256]; snd_pcm_hw_params_t *hwparams; snd_pcm_t *pcm; snd_mixer_t *mixer_handle; snd_mixer_elem_t *elem; snd_ctl_t *ctl_handle; snd_ctl_card_info_t *hw_info; int sw; const char *mixer_chip; sprintf(pcm_name, "hw:%d,%d", card, pcm_device); err=snd_pcm_open(&pcm, pcm_name, dir, 0); if (err<0) return; snd_pcm_hw_params_alloca(&hwparams); snd_ctl_card_info_alloca(&hw_info); err=snd_pcm_hw_params_any(pcm, hwparams); if (err<0) goto x; /* int rate_num,rate_den; err=snd_pcm_hw_params_get_rate_numden(hwparams, &rate_num, &rate_den); if (err<0) goto x; printf(" rate_num=%d rate_den=%d\n", rate_num, rate_den); */ unsigned int channels_min, channels, channels_max; err=snd_pcm_hw_params_get_channels_min(hwparams, &channels_min); if (err<0) goto x1; err=snd_pcm_hw_params_get_channels(hwparams, &channels); if (err<0) goto x1; err=snd_pcm_hw_params_get_channels_max(hwparams, &channels_max); if (err<0) goto x1; printf(" channels=%d .. %d .. %d\n", channels_min, channels, channels_max); x1:; unsigned int rate_min, rate, rate_max; int dir_min, dir_, dir_max; err=snd_pcm_hw_params_get_rate_min(hwparams, &rate_min, &dir_min); if (err<0) goto x2; err=snd_pcm_hw_params_get_rate(hwparams, &rate, &dir_); if (err<0) goto x2; err=snd_pcm_hw_params_get_rate_max(hwparams, &rate_max, &dir_max); if (err<0) goto x2; printf(" rate=%d .. %d .. %d\n", rate_min, rate, rate_max); x2: if (dir == SND_PCM_STREAM_CAPTURE){ sprintf(mixer_name, "hw:%d", card); snd_ctl_open(&ctl_handle, mixer_name, 0); if (err<0) goto x3c; err = snd_ctl_card_info(ctl_handle, hw_info); if (err<0){ snd_ctl_close(ctl_handle); goto x3c; } mixer_chip=snd_ctl_card_info_get_mixername(hw_info); printf(" mixer chip=%s\n", mixer_chip); snd_ctl_close(ctl_handle); x3c: err=snd_mixer_open(&mixer_handle, 0); if (err<0) goto x3; err=snd_mixer_attach(mixer_handle, mixer_name); if (err<0) goto x3; err=snd_mixer_selem_register(mixer_handle, NULL, NULL); if (err<0) goto x3; err=snd_mixer_load(mixer_handle); if (err<0) goto x3; printf(" elements="); for (elem=snd_mixer_first_elem(mixer_handle); elem; elem=snd_mixer_elem_next(elem)){ if (!snd_mixer_selem_has_capture_switch(elem)) continue; err=snd_mixer_selem_get_capture_switch(elem, 0, &sw); if (err<0) goto x3; if (sw) printf("[%s] ", snd_mixer_selem_get_name(elem)); else printf("'%s' ", snd_mixer_selem_get_name(elem)); } printf("\n"); x3: snd_mixer_close(mixer_handle); } x: snd_pcm_close(pcm); } static void card_info(int card){ int pcm_device; char *name; snd_ctl_t *ctl; char dev[256]; snd_pcm_info_t *pcm_info; printf("card hw:%d ",card); if (snd_card_get_name(card, &name)==0){ printf("%s", name); } printf("\n"); sprintf(dev,"hw:%d", card); snd_ctl_open(&ctl, dev, 0); snd_pcm_info_alloca(&pcm_info); pcm_device=-1; while(1){ if (snd_ctl_pcm_next_device(ctl, &pcm_device)) pcm_device=-1; if (pcm_device<0) break; snd_pcm_info_set_device(pcm_info, pcm_device); snd_pcm_info_set_subdevice(pcm_info, 0); snd_pcm_info_set_stream(pcm_info, SND_PCM_STREAM_PLAYBACK); if (snd_ctl_pcm_info(ctl, pcm_info)<0) continue; printf(" playback hw:%d,%d %s\n", card, pcm_device, snd_pcm_info_get_name(pcm_info)); device_info(card, pcm_device, SND_PCM_STREAM_PLAYBACK); } pcm_device=-1; while(1){ if (snd_ctl_pcm_next_device(ctl, &pcm_device)) pcm_device=-1; if (pcm_device<0) break; snd_pcm_info_set_device(pcm_info, pcm_device); snd_pcm_info_set_subdevice(pcm_info, 0); snd_pcm_info_set_stream(pcm_info, SND_PCM_STREAM_CAPTURE); if (snd_ctl_pcm_info(ctl, pcm_info)<0) continue; printf(" capture hw:%d,%d %s\n", card, pcm_device, snd_pcm_info_get_name(pcm_info)); device_info(card, pcm_device, SND_PCM_STREAM_CAPTURE); } } void alsa_info(void){ int card; printf("\n alsa_info:\n"); card=-1; snd_card_next(&card); while(card>-1){ card_info(card); snd_card_next(&card); } printf("\n"); } int alsa_open(struct dsp *dsp, int rec){ int err, ratedir; unsigned int rateval; snd_pcm_hw_params_t *hwparams; snd_pcm_sw_params_t *swparams; /*snd_pcm_uframes_t frames;*/ unsigned buffer_time, period_time; int dir; snd_pcm_uframes_t buffer_size, period_size; if (dsp->pcm_opened) alsa_close(dsp); CONDGFREE(dsp->name); if (rec){ dsp->name=g_strdup(cfg->ssbd_pcm_rec); }else{ dsp->name=g_strdup(cfg->ssbd_pcm_play); } //dbg("alsa_open('%s', %s)\n", dsp->name, rec?"capture":"play"); err=snd_pcm_open(&dsp->pcm, dsp->name, rec?SND_PCM_STREAM_CAPTURE:SND_PCM_STREAM_PLAYBACK, 0); if (err<0){ log_addf("Can't open alsa PCM '%s': %s", dsp->name, snd_strerror(-err)); goto err; } //dbg("alsa opened (%s)\n", dsp->name); dsp->pcm_opened=1; /* err=snd_pcm_nonblock(dsp->pcm, 1); if (err<0){ log_addf("alsa_open: snd_pcm_nonblock failed: %s", snd_strerror(-err)); goto err; } */ snd_pcm_hw_params_alloca(&hwparams); snd_pcm_sw_params_alloca(&swparams); /* HW parameters */ err=snd_pcm_hw_params_any(dsp->pcm, hwparams); if (err<0){ log_addf("alsa_open: snd_pcm_hw_params_any failed: %s", snd_strerror(-err)); goto err; } /* read/write format */ err=snd_pcm_hw_params_set_access(dsp->pcm, hwparams, SND_PCM_ACCESS_RW_INTERLEAVED); if (err<0){ log_addf("alsa_open: snd_pcm_hw_params_set_access failed: %s", snd_strerror(-err)); goto err; } /* sample format */ err=snd_pcm_hw_params_set_format(dsp->pcm, hwparams, dsp->pcm_format); if (err<0){ log_addf("alsa_open: snd_pcm_hw_params_set_format failed: %s", snd_strerror(-err)); goto err; } /* channels */ err=snd_pcm_hw_params_set_channels(dsp->pcm, hwparams, dsp->channels); if (err<0){ log_addf("alsa_open: snd_pcm_hw_params_set_channels failed: %s", snd_strerror(-err)); goto err; } /* sample rate */ rateval=dsp->speed; ratedir=0; err=snd_pcm_hw_params_set_rate_near(dsp->pcm, hwparams, &rateval, &ratedir); if (err<0){ log_addf("alsa_open: snd_pcm_hw_params_set_rate_near failed: %s", snd_strerror(-err)); goto err; } #if 0 /* period size */ frames=4096; err=snd_pcm_hw_params_set_period_size_near(dsp->pcm, hwparams, &frames, 0); if (err<0){ log_addf("alsa_open: snd_pcm_hw_params_set_period_size_near failed: %s", snd_strerror(-err)); goto err; } /* buffer size */ frames=1024; err=snd_pcm_hw_params_set_buffer_size_near(dsp->pcm, hwparams, &frames); if (err<0){ log_addf("alsa_open: snd_pcm_hw_params_set_period_size_near failed: %s", snd_strerror(-err)); goto err; } /* periods count */ /*periods=4; err=snd_pcm_hw_params_set_periods_near(dsp->pcm, hwparams, &periods, 0); if (err<0){ log_addf("alsa_open: snd_pcm_hw_params_set_periods_near failed: %s", snd_strerror(-err)); goto err; } */ #endif /* set the buffer time */ dir = 1; /* not sure if dir is input parameter. */ buffer_time=500000; period_time=100000; if (cfg->ssbd_buffer_time>0) buffer_time=cfg->ssbd_buffer_time*1000; if (cfg->ssbd_period_time>0) period_time=cfg->ssbd_period_time*1000; // dbg("snd_pcm_hw_params_set_buffer_time_near(buffer_time=%d, dir=%d)\n", buffer_time, dir); err = snd_pcm_hw_params_set_buffer_time_near(dsp->pcm, hwparams, &buffer_time, &dir); if (err < 0) { log_addf("Unable to set buffer time %i for playback: %s\n", buffer_time, snd_strerror(err)); goto err; } err = snd_pcm_hw_params_get_buffer_size(hwparams, &buffer_size); if (err < 0) { log_addf("Unable to get buffer size for playback: %s\n", snd_strerror(err)); goto err; } // dbg("snd_pcm_hw_params_get_buffer_size()=%d\n", buffer_size); /* set the period time */ // dbg("snd_pcm_hw_params_set_period_time_near(period_time=%d, dir=%d\n", period_time, dir); err = snd_pcm_hw_params_set_period_time_near(dsp->pcm, hwparams, &period_time, &dir); if (err < 0) { log_addf("Unable to set period time %i for playback: %s\n", period_time, snd_strerror(err)); goto err; } err = snd_pcm_hw_params_get_period_size(hwparams, &period_size, &dir); if (err < 0) { log_addf("Unable to get period size for playback: %s\n", snd_strerror(err)); goto err; } // dbg("snd_pcm_hw_params_get_period_size() period_size=%d dir=%d\n", period_size, dir); /* write hwparams */ err=snd_pcm_hw_params(dsp->pcm, hwparams); if (err<0){ log_addf("alsa_open: snd_pcm_hw_params failed: %s", snd_strerror(-err)); goto err; } #if 0 /* get the current swparams */ err = snd_pcm_sw_params_current(dsp->pcm, swparams); if (err < 0) { printf("Unable to determine current swparams for playback: %s\n", snd_strerror(err)); goto err; } /* start the transfer when the buffer is almost full: */ /* (buffer_size / avail_min) * avail_min */ err = snd_pcm_sw_params_set_start_threshold(dsp->pcm, swparams, (buffer_size / period_size) * period_size); if (err < 0) { printf("Unable to set start threshold mode for playback: %s\n", snd_strerror(err)); goto err; } /* allow the transfer when at least period_size samples can be processed */ err = snd_pcm_sw_params_set_avail_min(dsp->pcm, swparams, period_size); if (err < 0) { printf("Unable to set avail min for playback: %s\n", snd_strerror(err)); goto err; } /* align all transfers to 1 sample */ err = snd_pcm_sw_params_set_xfer_align(dsp->pcm, swparams, 1); if (err < 0) { printf("Unable to set transfer align for playback: %s\n", snd_strerror(err)); goto err; } /* write the parameters to the playback device */ err = snd_pcm_sw_params(dsp->pcm, swparams); if (err < 0) { printf("Unable to set sw params for playback: %s\n", snd_strerror(err)); goto err; } #endif dsp->pcm_recover = 5; goto x; err:; dbg("alsa not opened\n"); alsa_close(dsp); return -1; x:; //dbg("alsa opened\n"); return 0; } int alsa_close(struct dsp *dsp){ if (!dsp->pcm_opened) return 0; snd_pcm_close(dsp->pcm); //dbg("alsa closed (%s)\n", dsp->name); dsp->pcm_opened=0; return 0; } int alsa_write(struct dsp *dsp, void *data, int len){ int frames; frames=snd_pcm_writei(dsp->pcm, data, len/(dsp->bpf*dsp->channels)); //dbg("alsa_write(len=%d,%d) frames=%d\n", len, len/(dsp->bpf*dsp->channels), frames); if (frames<0) { if (frames == -EPIPE && dsp->pcm_recover-- > 0){ dbg("snd_pcm_writei returns %d %s, trying to recover... %d\n", frames, snd_strerror(frames), dsp->pcm_recover); frames=snd_pcm_prepare(dsp->pcm); /* snd_pcm_recover is since libasound 1.0.11 */ } }else{ dsp->pcm_recover = 5; } if (frames>0) frames*=dsp->bpf*dsp->channels; return frames; } int alsa_read(struct dsp *dsp, void *data, int len){ int frames; frames=snd_pcm_readi(dsp->pcm, data, len/(dsp->bpf*dsp->channels)); if (frames<0) { if (frames == -EPIPE && dsp->pcm_recover-- > 0){ dbg("snd_pcm_readi returns %d, trying to recover... %d\n\n", frames, dsp->pcm_recover); frames=snd_pcm_prepare(dsp->pcm); dbg("snd_pcm_prepare returns %d\n", frames); /*if (frames==-EPIPE){ frames=dsp->bpf*dsp->channels; log_addf("Alsa record buffer overrun (%d), forcing value (%d)", -EPIPE, frames); }*/ frames = 1; //log_addf("Alsa record buffer overrun (%d), forcing value (%d)", -EPIPE, frames); } }else{ dsp->pcm_recover = 5; } if (frames>0) frames*=dsp->bpf*dsp->channels; /* if (frames==-EPIPE){ frames=dsp->bpf*dsp->channels; log_addf("Alsa record buffer overrun (%d), forcing value (%d)", -EPIPE, frames); }*/ return frames; } int alsa_reset(struct dsp *dsp){ snd_pcm_drop(dsp->pcm); return 0; } int alsa_sync(struct dsp *dsp){ snd_pcm_drain(dsp->pcm); return 0; } int alsa_set_format(struct dsp *dsp, SF_INFO *sfinfo){ dsp->bpf=1; switch (sfinfo->format & SF_FORMAT_SUBMASK){ /* case SF_FORMAT_PCM_U8: format=AFMT_U8; break; case SF_FORMAT_PCM_S8: format=AFMT_S8; break;*/ case SF_FORMAT_ULAW: dsp->pcm_format=SND_PCM_FORMAT_MU_LAW; break; case SF_FORMAT_ALAW: dsp->pcm_format=SND_PCM_FORMAT_A_LAW; break; case SF_FORMAT_IMA_ADPCM: dsp->pcm_format=SND_PCM_FORMAT_IMA_ADPCM; break; default: dsp->pcm_format=SND_PCM_FORMAT_S16_LE; dsp->bpf=2; } dsp->channels=sfinfo->channels; dsp->speed=sfinfo->samplerate; return 0; } int alsa_get_sources(GString *labels){ int err; snd_mixer_t *mixer_handle; snd_mixer_elem_t *elem; const char *label; g_string_truncate(labels, 0); if (!cfg->ssbd_alsa_mixer || strlen(cfg->ssbd_alsa_mixer)==0) return 0; err=snd_mixer_open(&mixer_handle, 0); if (err<0) goto x3; err=snd_mixer_attach(mixer_handle, cfg->ssbd_alsa_mixer); if (err<0) goto x3; err=snd_mixer_selem_register(mixer_handle, NULL, NULL); if (err<0) goto x3; err=snd_mixer_load(mixer_handle); if (err<0) goto x3; for (elem=snd_mixer_first_elem(mixer_handle); elem; elem=snd_mixer_elem_next(elem)){ if (!snd_mixer_selem_has_capture_switch(elem)) continue; label=snd_mixer_selem_get_name(elem); if (strcmp(label, "Capture")==0) continue; if (strlen(labels->str)>0) g_string_append_c(labels, ';'); g_string_append(labels, label); } x3:; snd_mixer_close(mixer_handle); return 0; } int alsa_set_source(struct dsp *dsp){ int err; snd_mixer_t *mixer_handle; snd_mixer_elem_t *elem; const char *label; //dbg("alsa_set_source('%s')\n", dsp->source); if (!dsp->source || !*dsp->source){ return 0; } err=snd_mixer_open(&mixer_handle, 0); if (err<0) goto x3; err=snd_mixer_attach(mixer_handle, cfg->ssbd_alsa_mixer); if (err<0) goto x3; err=snd_mixer_selem_register(mixer_handle, NULL, NULL); if (err<0) goto x3; err=snd_mixer_load(mixer_handle); if (err<0) goto x3; for (elem=snd_mixer_first_elem(mixer_handle); elem; elem=snd_mixer_elem_next(elem)){ long min, max, val; if (!snd_mixer_selem_has_capture_switch(elem)) continue; label=snd_mixer_selem_get_name(elem); //dbg("elem label=%s\n", label); if (strcmp(label, dsp->source)!=0 && strcmp(label, "Capture")!=0) continue; snd_mixer_selem_set_capture_switch_all(elem, 1); snd_mixer_selem_get_capture_volume_range(elem, &min, &max); if (cfg->ssbd_rlev<0) continue; val = min + ((max-min+1)*cfg->ssbd_rlev)/100; // dbg("SET elem label=%s capt\t%d-%d %d%%=%d\n", label, min, max, cfg->ssbd_rlev, val); snd_mixer_selem_set_capture_volume_all(elem, val); } x3:; snd_mixer_close(mixer_handle); return 0; } int alsa_set_plevel(struct dsp *dsp){ int err; snd_mixer_t *mixer_handle; snd_mixer_elem_t *elem; const char *label; //dbg("alsa_set_plevel('%s')\n", dsp->source); if (!dsp->source || !*dsp->source){ return 0; } err=snd_mixer_open(&mixer_handle, 0); if (err<0) goto x3; err=snd_mixer_attach(mixer_handle, cfg->ssbd_alsa_mixer); if (err<0) goto x3; err=snd_mixer_selem_register(mixer_handle, NULL, NULL); if (err<0) goto x3; err=snd_mixer_load(mixer_handle); if (err<0) goto x3; for (elem=snd_mixer_first_elem(mixer_handle); elem; elem=snd_mixer_elem_next(elem)){ long min, max, val; if (!snd_mixer_selem_has_playback_volume(elem)) continue; label=snd_mixer_selem_get_name(elem); // dbg("elem label=%s\n", label); if (strcmp(label, dsp->source)!=0 && strcmp(label, "Master")!=0) continue; snd_mixer_selem_get_playback_volume_range(elem, &min, &max); if (cfg->ssbd_plev<0) continue; val = min + ((max-min+1)*cfg->ssbd_plev)/100; // dbg("SET elem label=%s capt\t%d-%d %d%%=%d\n", label, min, max, cfg->ssbd_plev, val); snd_mixer_selem_set_playback_volume_all(elem, val); } x3:; snd_mixer_close(mixer_handle); return 0; } #endif #endif tucnak2-2.48/src/dxc.c0000644000175000017500000002505711726412245011465 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" //#define MIN_SPOTLEN 74 #define MIN_SPOTLEN 29 #define STR_DX_DE "DX de" #define FROM_OFS 6 #define CALL_OFS 26 #define TEXT_OFS 39 #define ZULU_OFS 70 #define FROM_SEP ' ' #define DXC_EXPIRE_TIMER 5*60*1000 struct spotdb *spotdb=NULL; struct spotdb *init_spotdb(void){ struct spotdb *spotdb; spotdb=g_new0(struct spotdb, 1); spotdb->first=g_new0(struct spot *, 'Z'-'A'+1); spotdb->cur =g_new0(struct spot *, 'Z'-'A'+1); spotdb->timer_id=install_timer(DXC_EXPIRE_TIMER, dxc_timer, CBA0); return spotdb; } void free_spotdb(struct spotdb *spotdb){ struct spot *spot; int bi,n; kill_timer(spotdb->timer_id); n=0; for (bi=0;bibands->len;bi++){ for (spot=spotdb->first[bi]; spot; ){ /*dbg("spot=%s qrg=%3.1f\n", spot->callsign, spot->qrg);*/ struct spot *tofree; remove_spot(spotdb, bi, spot); tofree=spot; if (!spot->next){ spot=spot->prev; /* removing last, new last will be spot->prev */ free_spot(tofree); n++; break; }else{ spot=spot->next; free_spot(tofree); continue; } if (!spot->next) break; spot=spot->next; } } g_free(spotdb->first); g_free(spotdb->cur); g_free(spotdb); } void dxc_timer(cba_t cba){ int n; n=dxc_remove_expired(); /*dbg("dxc_timer expired=%d\n",n);*/ if (n){ redraw_later(); } spotdb->timer_id=install_timer(DXC_EXPIRE_TIMER, dxc_timer, CBA0); } struct spot *dxc_parse_spot(gchar *str){ double qrg; gchar *callsign,*from,*text; int zulu; struct spot *spot; gchar *c,*d; time_t now; char *c1=NULL, *c2=NULL; // dbg("dxc_parse_spot('%s')]\n", str); if (regmatch(str, "SFI=([0-9]{1,3})", &c1, &c2, NULL)==0){ spotdb->sfi = atoi(c2); } if (c1) mem_free(c1); if (c2) mem_free(c2); if (strlen(str)ZULU_OFS){ d=str+ZULU_OFS; d[4]='\0'; zulu=atoi(d); }else{ time_t now; struct tm tm; now = time(NULL); gmtime_r(&now, &tm); zulu = tm.tm_hour * 100 + tm.tm_min; } if (strlen(str)>TEXT_OFS){ d=str+TEXT_OFS; if (strlen(str)>ZULU_OFS){ str[ZULU_OFS]='\0'; } c=strrchr(d, ' '); g_strstrip(d); if (!c) c=d+ZULU_OFS-1; text=g_strndup(d, c-d); }else{ text=g_strdup(""); } now=time(NULL); spot=g_new0(struct spot, 1); /* LEAK */ spot->qrg =qrg; spot->callsign=callsign; spot->from =from; spot->text =text; spot->zulu =zulu; #if 1 spot->endbold =now + 15 * 60; spot->expire =now + 60 * 60; #else spot->endbold =now + 1 * 60; spot->expire =now + 2 * 60; #endif // dbg("call='%s' qrg='%3.1f' from='%s' text='%s' zulu='%d'\n", callsign, qrg, from, text, zulu); return spot; x:; CONDGFREE(callsign); CONDGFREE(from); CONDGFREE(text); return NULL; } void free_spot(struct spot *spot){ /*dbg("free_spot(%p)\n", spot);*/ if (!spot) return; g_free(spot->callsign); g_free(spot->from); g_free(spot->text); g_free(spot); } /* removes spot from list, don't free it from mem */ void remove_spot(struct spotdb *spotdb, int bi, struct spot *spot){ /* dbg("removing spot=%s qrg=%3.1f\n", spot->callsign, spot->qrg);*/ if (spotdb->cur[bi]==spot){ if (spot->prev) spotdb->cur[bi]=spot->prev; else spotdb->cur[bi]=spot->next; } if (spot->prev) spot->prev->next = spot->next; else spotdb->first[bi] = spot->next; if (spot->next) spot->next->prev = spot->prev; } int dxc_read_spot(gchar *str){ struct spot *newspot,*spot,*newpos; gchar *s; int bi; struct config_band *confb; time_t now; /*dbg("dxc_read_spot('%s')\n", str);*/ s=g_strdup(str); newspot=dxc_parse_spot(s); g_free(s); if (!newspot) return -3; /*dbg(" spot accepted %p\n", str, newspot);*/ confb=(struct config_band*)get_config_band_by_qrg((int)newspot->qrg); if (!confb){ dbg(" bad qrg\n"); free_spot(newspot); return -1; } if (confb->bandchar<'a' || confb->bandchar>'z'){ dbg(" bad band\n"); free_spot(newspot); return 0; } bi=lowcase(confb->bandchar)-'a'; now=time(NULL); newpos=NULL; for (spot=spotdb->first[bi]; spot; ){ dbg("spot=%s qrg=%3.1f\n", spot->callsign, spot->qrg); if (strcasecmp(spot->callsign, newspot->callsign)==0 || spot->expire < now) { struct spot *tofree; remove_spot(spotdb, bi, spot); tofree=spot; if (!spot->next){ spot=spot->prev; /* removing last, new last will be spot->prev */ free_spot(tofree); break; }else{ spot=spot->next; free_spot(tofree); continue; } } if (!newpos && newspot->qrg < spot->qrg){ newpos=spot; } if (!spot->next) break; spot=spot->next; } /* spot points to last spot in list or is NULL */ if (!newpos){ /* newspot->freq is maximal */ if (spot){ spot->next = newspot; /* adding to end */ newspot->prev = spot; }else{ spotdb->first[bi]=newspot; /* empty list */ spotdb->cur[bi] =newspot; } }else{ /* adding into list before newpos */ if (newpos->prev) newpos->prev->next = newspot; else spotdb->first[bi] = newspot; newspot->prev = newpos->prev; newspot->next = newpos; newpos->prev = newspot; } /* for (spot=spotdb->first[bi]; spot;spot=spot->next){ dbg("%s\n", spot->callsign); }*/ #if 0 if (dump){ dxc_dump(spotdb, bi); } if (bi==8){dbg("b: %p\n", spotdb->cur[bi]); } dxc_assert(spotdb, bi); #endif return 0; } int dxc_remove_expired(void){ struct spot *spot; int bi,n; time_t now; n=0; now=time(NULL); for (bi=0;bibands->len;bi++){ for (spot=spotdb->first[bi]; spot; ){ /*dbg("spot=%s qrg=%3.1f\n", spot->callsign, spot->qrg);*/ if (spot->expire < now) { struct spot *tofree; remove_spot(spotdb, bi, spot); tofree=spot; if (!spot->next){ spot=spot->prev; /* removing last, new last will be spot->prev */ free_spot(tofree); n++; break; }else{ spot=spot->next; free_spot(tofree); continue; } } if (!spot->next) break; spot=spot->next; } } return n; } void dxc_seek(struct spotdb *spotdb, int value){ int bi; if (!aband) return; bi=lowcase(aband->bandchar)-'a'; if (value<0) { for (; spotdb->cur[bi]->prev && value; spotdb->cur[bi]=spotdb->cur[bi]->prev, value++); return; } if (value>0) { for (; spotdb->cur[bi]->next && value; spotdb->cur[bi]=spotdb->cur[bi]->next, value--); return; } if (value==0) { /* special value, seek to end */ for (; spotdb->cur[bi]->next; spotdb->cur[bi]=spotdb->cur[bi]->next); return; } } void dxc_assert_spot(struct spot *spot){ if (!spot) return; g_assert(spot->qrg>=0 && spot->qrg<100000000000.0); g_assert(strlen(spot->callsign)); g_assert(strlen(spot->from)); g_assert(strlen(spot->text)); g_assert(spot->zulu>=0 && spot->zulu<2400); } void dxc_assert(struct spotdb *spotdb, int bi){ struct spot *spot; if (!spotdb->first[bi]) return; for (spot=spotdb->first[bi]; spot; spot=spot->next){ dxc_assert_spot(spot); dxc_assert_spot(spot->prev); } dxc_assert_spot(spotdb->cur[bi]); } void dxc_dump(struct spotdb *spotdb, int bi){ struct spot *spot; dbg("dxc_dump(%p, %d)\n", spotdb, bi); if (!spotdb->first[bi]) return; spot=spotdb->cur[bi]; /* dbg("%p: %10s %10s %10.1f prev=%p next=%p\n", spot, spot->from, spot->callsign, spot->qrg, spot->prev, spot->next);*/ dbg("\n"); for (spot=spotdb->first[bi]; spot; spot=spot->next){ dbg("%p: %10s %10s %10.1f prev=%p next=%p\n", spot, spot->from, spot->callsign, spot->qrg, spot->prev, spot->next); } } /* 0 6 17 26 39 70 DX de ja8edu: 21285.0 OK2SSD CQ,CQ DX 0759Z DX de JA8EDU: 21285.0 OK2SSD CQ,CQ DX 0759Z DX de HL2IFR: 24900.2 BA4ED AS-136 0807Z DX de HL2IFR: 24900.2 BA4ED AS-136 33 0807Z 44 DX de JA9LSZ: 28008.2 8Q7VR cq 0815Z DX de JA9LSZ: 28008.2 8Q7VR cq 0815Z DX de OK1MZM: 144300.0 I4XCC 1116Z 55 JN63GV<---JN69QS 144370.0 SM/DJ8MS 5-Mar-2003 0801Z cq 357 JO88 dir G 144370.0 SM/DJ8MS 5-Mar-2003 0801Z cq 357 JO88 dir G 144370.0 SM/DJ8MS 0801 5.3 DJ8MS cq 357 JO88 dir G 144370.0 SM/DJ8MS 5-Mar-2003 0801Z cq 357 JO88 dir G 144370.0 SM/DJ8MS 0801 5.3 DJ8MS cq 357 JO88 dir G 144370.0 SM/DJ8MS 5-Mar-2003 0801Z cq 357 JO88 dir G 144300.0 HB9QQ 1821 21.8 ON1AEN JN47 SRI TYPO */ tucnak2-2.48/src/chart.c0000644000175000017500000004106111727346543012011 00000000000000/* chart - chart compare of points progress Copyright (C) 2011-2012 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. Not Y2K1 compliant, date_str is taken without century */ #include "header.h" #define TOP 20 #define BOTTOM (FONT_H + 4) #define LEFT 20 #define RIGHT 20 static void chart_import_edi(void *xxx, char *filename){ sw_chart_load_file(gses->ontop, filename); sw_chart_recalc_extremes(gses->ontop); } int sw_chart_kbd_func(struct subwin *sw, struct event *ev, int fw){ char *pwd; struct menu_item *mi = NULL; int max = 0, i; // if (!sdl) return 0; switch (kbd_action(KM_MAIN, ev)){ case ACT_INSERT: pwd=getcwd(NULL, 0); input_field(NULL, VTEXT(T_IMPORT_EDI), VTEXT(T_FILENAME), VTEXT(T_OK), VTEXT(T_CANCEL), gses, NULL, 150, pwd, 0, 0, NULL, chart_import_edi, NULL, 1); if (pwd) free(pwd); return 1; case ACT_DELETE: mi = NULL; for (i = 0; i < sw->chbands->len; i++){ cba_t cba2; struct chband *b; gchar *c; if (!mi) mi = new_menu(3); if (!mi) break; b = (struct chband*)g_ptr_array_index(sw->chbands, i); c = g_strdup_printf("%-12s %-20s %-7s", b->pcall, b->tname, b->pband); if (strlen(c) > max) max = strlen(c); SETCBA(cba2, chband, b); add_to_menu(&mi, stracpy(c), "", "", sw_chart_delete_band, cba2, 0); g_free(c); } set_window_ptr(gses->win, (term->x-6-max)/2,(term->y-2-i)/2); if (mi) do_menu(mi, CBA0); return 1; } return 0; } int sw_chart_mouse_func(struct subwin *sw, struct event *ev, int fw){ #ifdef HAVE_SDL //int lmx, lmy; if (!sdl) return 0; sw->mx = ev->mx - sw->x * FONT_W; sw->my = ev->my - sw->y * FONT_H; // int t = sw->mint + ((lmx - sw->ch_left) * (sw->maxt - sw->mint)) / (sw->ch_right - sw->ch_left); // int v = sw->minv + ((sw->ch_bottom - lmy) * (sw->maxv - sw->minv)) / (sw->ch_bottom - sw->ch_top); sw->gdirty = 1; redraw_later(); #endif return 0; } void sw_chart_redraw(struct subwin *sw, int flags){ int x, y; gchar *cc; int i; #ifdef HAVE_SDL int j, ox, ox2, oy, oy2, t, v, bt = 0, tajm; SDL_Rect area; char s[100]; time_t now; struct tm utc; unsigned nowd, nowt; if (sdl){ time(&now); gmtime_r(&now, &utc); nowd = utc.tm_mday + 100 * (utc.tm_mon + 1 + 100 * (utc.tm_year - 100)); // no century, was + 1900 nowt = utc.tm_min + 60 * utc.tm_hour; bt = nowd; if (!sdl) return; // dbg("sw_chart_redraw(%d) t=%d..%d v=%d..%d\n", sw->gdirty, sw->mint, sw->maxt, sw->minv, sw->maxv); sw->ch_top = TOP; sw->ch_bottom = sw->screen->h - BOTTOM; sprintf(s, "%dk", sw->maxv / 1000); sw->ch_left = LEFT + strlen(s) * FONT_W; sw->ch_right = sw->screen->w - RIGHT; if (sw->ch_top >= sw->ch_bottom) return; if (sw->ch_left >= sw->ch_right) return; if (sw->maxt <= sw->mint) return; if (sw->maxv <= sw->minv) return; if (flags & HTML_FOR_PHOTO){ sw->mx = sw->ch_right; sw->my = sw->ch_top; } fill_area(sw->x, sw->y, sw->w, sw->h, 0); area.x = 0; area.y = 0; area.w = sw->screen->w; area.h = sw->screen->h; SDL_FillRect(sw->screen, &area, makecol(0, 0, 0)); line(sw->screen, sw->ch_left, sw->ch_top, sw->ch_left, sw->ch_bottom, sdl->gr[13]); line(sw->screen, sw->ch_left, sw->ch_bottom, sw->ch_right, sw->ch_bottom, sdl->gr[13]); ox = -10000; ox2 = -10000; i = ((sw->mint + 59) / 60) * 60; for (; i <= sw->maxt; i+= 60){ x = sw->ch_left + ( (i - sw->mint) * (sw->ch_right - sw->ch_left) ) / (sw->maxt - sw->mint); if (x > ox + 10){ ox = x; line(sw->screen, x, sw->ch_bottom + 1, x, sw->ch_bottom + 4, sdl->gr[13]); } if (x > ox2 + FONT_W * 4){ ox2 = x; sprintf(s, "%02d", (i / 60) % 24); fontout(sw->screen, x - FONT_W + 1, sw->ch_bottom + 4, sdl->gr[13], 0, s); } } oy = 10000; oy2 = 10000; i = ((sw->minv + 999) / 1000) * 1000; for (; i <= sw->maxv; i+= 1000){ y = sw->ch_bottom - ( (i - sw->minv) * (sw->ch_bottom - sw->ch_top) ) / (sw->maxv - sw->minv); if (y < oy - 10){ oy = y; line(sw->screen, sw->ch_left - 1, y, sw->ch_left - 4, y, sdl->gr[13]); } if (y < oy2 - FONT_H * 2){ oy2 = y; sprintf(s, "%dk", (i / 1000)); fontout(sw->screen, sw->ch_left - 4 - strlen(s) * FONT_W, y - FONT_H / 2, sdl->gr[13], 0, s); } } for (i = 0; i < sw->chbands->len; i++){ struct chband *b = (struct chband *)g_ptr_array_index(sw->chbands, i); ox = sw->ch_left; oy = sw->ch_bottom; b->mouse_value = 0; for (j = 0; j < b->chqsos->len; j++){ struct chqso *q = (struct chqso *)g_ptr_array_index(b->chqsos, j); //dbg("time=%d value=%d\n", q->time, q->value); x = sw->ch_left + ( (q->time - sw->mint) * (sw->ch_right - sw->ch_left) ) / (sw->maxt - sw->mint); y = sw->ch_bottom - ( (q->value - sw->minv) * (sw->ch_bottom - sw->ch_top) ) / (sw->maxv - sw->minv); if (x < sw->mx) b->mouse_value = q->value; line(sw->screen, ox, oy, x, oy, b->color); line(sw->screen, x, oy, x, y, b->color); ox = x; oy = y; } line(sw->screen, ox, oy, sw->ch_right, oy, b->color); } if (aband){ ox = sw->ch_left; oy = sw->ch_bottom; v = 0; sw->ch_mouse_value = 0; for (i = 0; i < aband->qsos->len; i++){ struct qso *q = (struct qso *)g_ptr_array_index(aband->qsos, i); if (i == 0) bt = atoi(q->date_str + 2); if (q->error || q->dupe) continue; tajm = atoi(q->time_str); t = (atoi(q->date_str + 2) - bt) * 1440 + (tajm / 100) * 60 + tajm % 100; v += q->qsop; //dbg("time=%d value=%d\n", t, v); x = sw->ch_left + ( (t - sw->mint) * (sw->ch_right - sw->ch_left) ) / (sw->maxt - sw->mint); y = sw->ch_bottom - ( (v - sw->minv) * (sw->ch_bottom - sw->ch_top) ) / (sw->maxv - sw->minv); if (x < sw->mx) sw->ch_mouse_value = v; line(sw->screen, ox, oy, x, oy, sdl->gr[15]); line(sw->screen, x, oy, x, y, sdl->gr[15]); ox = x; oy = y; } t = (nowd - bt) * 1440 + nowt; x = (int)((double)sw->ch_left + ( (t - sw->mint) * (double)(sw->ch_right - sw->ch_left) ) / (double)(sw->maxt - sw->mint)); if (x < ox || x >= sw->screen->w) x = sw->screen->w - 1; line(sw->screen, ox, oy, x, oy, sdl->gr[15]); } x = sw->ch_left + 10; y = sw->ch_top; if (aband){ cc = g_strndup(ctest->tname, 20); fontoutf(sw->screen, x, y, sdl->gr[13], FONT_TRANSP, "%-12s %-20s %-7s %d pts", ctest->pcall, cc, aband->pband, sw->ch_mouse_value); g_free(cc); y += FONT_H; } for (i = 0; i < sw->chbands->len; i++){ struct chband *b = (struct chband *)g_ptr_array_index(sw->chbands, i); fontoutf(sw->screen, x, y, b->color, FONT_TRANSP, "%-12s %-20s %-7s %d pts", b->pcall, b->tname, b->pband, b->mouse_value); y += FONT_H; } t = sw->mint + ((sw->mx - sw->ch_left) * (sw->maxt - sw->mint)) / (sw->ch_right - sw->ch_left); v = sw->minv + ((sw->ch_bottom - sw->my) * (sw->maxv - sw->minv)) / (sw->ch_bottom - sw->ch_top); fontoutf(sw->screen, x, y, sdl->gr[13], FONT_TRANSP, "%02d:%02d %d pts", (t / 60) % 24, t % 60, v); } else #endif { x = 1; y = 0; if (aband){ cc = g_strndup(ctest->tname, 20); clip_printf(sw, x, y, COL_NORM, "%-12s %-20s %-7s", ctest->pcall, cc, aband->pband); g_free(cc); y++; } for (i = 0; i < sw->chbands->len; i++){ struct chband *b = (struct chband *)g_ptr_array_index(sw->chbands, i); clip_printf(sw, x, y, COL(i % 7 + 0x41), "%-12s %-20s %-7s", b->pcall, b->tname, b->pband); y++; } } } void sw_chart_check_bounds(struct subwin *sw){ #ifdef HAVE_SDL if (!sdl) return; #endif } void sw_chart_raise(struct subwin *sw){ #ifdef HAVE_SDL sw->gdirty=1; #endif } void sw_chart_free_band(struct chband *b){ int i; for (i = 0; i < b->chqsos->len; i++){ struct chqso *q = (struct chqso *)g_ptr_array_index(b->chqsos, i); CONDGFREE(q->call); g_free(q); } g_ptr_array_free(b->chqsos, TRUE); CONDGFREE(b->pcall); CONDGFREE(b->pwwlo); CONDGFREE(b->tname); CONDGFREE(b->pband); CONDGFREE(b->filename); g_free(b); } void sw_chart_free(struct subwin *sw){ int i; if (!sw->chbands) return; for (i = 0; i < sw->chbands->len; i++){ struct chband *b = (struct chband*)g_ptr_array_index(sw->chbands, i); sw_chart_free_band(b); } g_ptr_array_free(sw->chbands, TRUE); } void sw_chart_delete_band(cba_t chb, cba_t unused){ struct chband *b = (struct chband*)GETCBA(chb, chband); g_ptr_array_remove(gses->ontop->chbands, b); sw_chart_free_band(b); redraw_later(); } int sw_chart_load_file(struct subwin *sw, char *filename){ int j, v; struct chband *b; FILE *f; GString *gs; char *val; gchar **items; int firstdate = -1; int tajm; // if (!sdl) return; f = fopen(filename, "rt"); if (!f){ log_addf(VTEXT(T_CANT_READ_S), filename); return -1; } gs = g_string_sized_new(100); b = g_new0(struct chband, 1); g_ptr_array_add(sw->chbands, b); b->chqsos = g_ptr_array_new(); b->filename = g_strdup(filename); #ifdef HAVE_SDL if (sdl) b->color = sdl->termcol[(sw->chbands->len % 6) + 8]; #endif safe_fgets(gs, f, 0); while(safe_fgets(gs, f, 0) != NULL){ if (gs->str[0]=='[') break; val = strchr(gs->str, '='); *val='\0'; val++; // dbg("key='%s'\n", gs->str); if (strcasecmp(gs->str, "pcall")==0){ CONDGFREE(b->pcall); b->pcall = g_strdup(val); }else if (strcasecmp(gs->str, "pwwlo")==0){ CONDGFREE(b->pwwlo); b->pwwlo = g_strdup(val); }else if (strcasecmp(gs->str, "tname")==0){ CONDGFREE(b->tname); b->tname = g_strndup(val, 20); }else if (strcasecmp(gs->str, "pband")==0){ CONDGFREE(b->pband); b->pband = g_strndup(val, 7); } } while(strncasecmp(gs->str, "[qsorecords", 11)!=0){ if (safe_fgets(gs, f, 0) == NULL) goto x; } v = 0; while(safe_fgets(gs, f, 0) != NULL){ struct chqso *q; if (gs->str[0]=='[') break; // dbg("qso='%s'\n", gs->str); items = g_strsplit(gs->str, ";", 0); for (j = 0; j <= 11; j++) if (!items[j]) goto badq; if (firstdate < 0) firstdate = atoi(items[0]); if (!strcasecmp(items[2], "ERROR")) continue; q = g_new0(struct chqso, 1); q->call = g_strdup(items[2]); tajm = atoi(items[1]); q->time = (atoi(items[0]) - firstdate) * 1440 + (tajm / 100) * 60 + tajm % 100; q->pts = atoi(items[10]); v += q->pts; q->value = v; g_ptr_array_add(b->chqsos, q); //dbg("%d %d %d\n", q->time, q->pts, q->value); badq:; } fclose(f); x:; g_string_free(gs, TRUE); return 0; /* v = 0; for (i = 1400; i < 2400+1400; i += 20){ struct chqso *q = g_new0(struct chqso, 1); q->time = i; q->value = v; v += rand() % 300; g_ptr_array_add(b->chqsos, q); } */ } int sw_chart_recalc_extremes(struct subwin *sw){ #ifdef HAVE_SDL int i, bt = 0, t, v, j, tajm; sw->mint = 1000000000; sw->maxt = 0; sw->minv = 0; sw->maxv = 0; if (aband){ v = 0; for (i = 0; i < aband->qsos->len; i++){ struct qso *q = (struct qso *)g_ptr_array_index(aband->qsos, i); if (i == 0) bt = atoi(q->date_str + 2); if (q->error || q->dupe) continue; tajm = atoi(q->time_str); t = (atoi(q->date_str + 2) - bt) * 1440 + (tajm / 100) * 60 + tajm % 100; v += q->qsop; if (t < sw->mint) sw->mint = t; if (t > sw->maxt) sw->maxt = t; if (v < sw->minv) sw->minv = v; if (v > sw->maxv) sw->maxv = v; } } for (i = 0; i < sw->chbands->len; i++){ struct chband *b = (struct chband *)g_ptr_array_index(sw->chbands, i); for (j = 0; j < b->chqsos->len; j++){ struct chqso *q = (struct chqso *)g_ptr_array_index(b->chqsos, j); if (q->time < sw->mint) sw->mint = q->time; if (q->time > sw->maxt) sw->maxt = q->time; if (q->value < sw->minv) sw->minv = q->value; if (q->value > sw->maxv) sw->maxv = q->value; } } #endif return 0; } int chart_reload(void){ #ifdef HAVE_SDL int i; struct subwin *sw=NULL; if (!sdl) return 0; /*dbg("maps_reload\n");*/ for (i=0;isubwins->len;i++){ sw=(struct subwin *)g_ptr_array_index(gses->subwins, i); if (sw->type!=SWT_CHART) continue; sw_chart_recalc_extremes(sw); } if (gses && gses->ontop && gses->ontop->type==SWT_CHART) sw_chart_redraw(gses->ontop, 0); #endif return 0; } int save_chart_to_file(char *filename){ int i, j, k; int ret = 0; struct subwin *subwin; struct chband *chband; FILE *f; f = fopen(filename, "wt"); if (!f){ log_addf(VTEXT(T_CANT_WRITE_S), filename); return errno; } j = 0; for (i = 0; i < gses->subwins->len; i++){ subwin = (struct subwin *) g_ptr_array_index(gses->subwins, i); if (subwin->type != SWT_CHART) continue; for (k = 0; k < subwin->chbands->len; k++){ chband = (struct chband*)g_ptr_array_index(subwin->chbands, k); fprintf(f, "%d;%s\r\n", j, chband->filename); } j++; } fclose(f); return ret; } int load_chart_from_file(gchar *filename){ FILE *f; char s[402]; struct zstring *zs; int i, j, k; char *c; struct subwin *subwin; f = fopen(filename, "rt"); if (!f){ return -1; } while((fgets(s, 400, f))!=NULL){ chomp(s); zs = zstrdup(s); k = atoi(ztokenize(zs, 1)); c = ztokenize(zs, 0); j = 0; for (i = 0; i < gses->subwins->len; i++){ subwin = (struct subwin *) g_ptr_array_index(gses->subwins, i); if (subwin->type != SWT_CHART) continue; if (j == k){ sw_chart_load_file(subwin, c); } j++; } zfree(zs); } fclose(f); g_index_array_qsort(qrvdb->qrvs, qrvdb->sort); return 0; } #define zg_ptr_array_foreach(ctrlvar, type, var, array) \ int ctrlvar; \ type var; \ for (ctrlvar = 0, var = ctrlvar < (array)->len ? (type)g_ptr_array_index(array, ctrlvar) : NULL; ctrlvar < (array)->len; ctrlvar++, var = (type)g_ptr_array_index(array, ctrlvar)) #define zg_ptr_array_foreachback(ctrlvar, type, var, array) \ int ctrlvar; \ type var; \ for (ctrlvar = array->len - 1, var = ctrlvar >= 0 ? (type)g_ptr_array_index(array, ctrlvar) : NULL; ctrlvar >= 0; ctrlvar--, var = (type)g_ptr_array_index(array, ctrlvar)) void chart_clear_all(){ zg_ptr_array_foreach(i, struct subwin *, subwin, gses->subwins){ dbg("title=%s\n", subwin->title); if (subwin->chbands) { zg_ptr_array_foreachback(j, struct chband*, chband, subwin->chbands) { dbg("free\n"); sw_chart_free_band(chband); g_ptr_array_remove_index(subwin->chbands, j); } } } redraw_later(); } tucnak2-2.48/src/cor.h0000644000175000017500000000065211567373656011510 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __COR_H #define __COR_H struct cpoint{ short int w,h; char c; } #ifndef _MSC_VER __attribute__((packed)) #endif ; #endif tucnak2-2.48/src/sun.c0000644000175000017500000001115611567373656011526 00000000000000/* sun.c - Sunrise and sunset Copyright (C) 2010 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. Based on http://williams.best.vwh.net/sunrise_sunset_algorithm.htm Source: Almanac for Computers, 1990 published by Nautical Almanac Office United States Naval Observatory Washington, DC 20392 Inputs: day, month, year: date of sunrise/sunset latitude, longitude: location for sunrise/sunset zenith: Sun's zenith for sunrise/sunset offical = 90 degrees 50' civil = 96 degrees nautical = 102 degrees astronomical = 108 degrees NOTE: longitude is positive for East and negative for West NOTE: the algorithm assumes the use of a calculator with the trig functions in "degree" (rather than "radian") mode. Most programming languages assume radian arguments, requiring back and forth convertions. The factor is 180/pi. So, for instance, the equation RA = atan(0.91764 * tan(L)) would be coded as RA = (180/pi)*atan(0.91764 * tan((pi/180)*L)) to give a degree answer with a degree input for L. */ #include "header.h" double dsin(double x){ return sin(x * MY_PI/180.0); } double dcos(double x){ return cos(x * MY_PI/180.0); } double dtan(double x){ return tan(x * MY_PI/180.0); } double dasin(double x){ return asin(x) * 180.0/MY_PI; } double dacos(double x){ return acos(x) * 180.0/MY_PI; } double datan(double x){ return atan(x) * 180.0/MY_PI; } static void norm360(double *x){ while (*x < 0.0) *x += 360.0; while (*x >= 360.0) *x -= 360.0; } static void norm24(double *x){ while (*x < 0.0) *x += 24.0; while (*x >= 24.0) *x -= 24.0; } double sunriseset(int sunrise, double latitude, double longitude){ struct tm tm; time_t now; double month, year, day, N1, N2, N3, N, lngHour, t, M, L, RA, sinDec, cosDec, zenith, cosH, H, T, UT; // 1. first calculate the day of the year now = time(NULL); gmtime_r(&now, &tm); month = tm.tm_mon + 1; year = tm.tm_year + 1900; day = tm.tm_mday; N1 = floor(275 * month / 9); N2 = floor((month + 9) / 12); N3 = (1 + floor((year - 4 * floor(year / 4) + 2) / 3)); N = N1 - (N2 * N3) + day - 30; // 2. convert the longitude to hour value and calculate an approximate time lngHour = longitude / 15; if (sunrise) t = N + ((6 - lngHour) / 24); else t = N + ((18 - lngHour) / 24); // 3. calculate the Sun's mean anomaly M = (0.9856 * t) - 3.289; // 4. calculate the Sun's true longitude L = M + (1.916 * dsin(M)) + (0.020 * dsin(2 * M)) + 282.634; norm360(&L); // NOTE: L potentially needs to be adjusted into the range [0,360) by adding/subtracting 360 // 5a. calculate the Sun's right ascension RA = datan(0.91764 * dtan(L)); // NOTE: RA potentially needs to be adjusted into the range [0,360) by adding/subtracting 360 norm360(&RA); // 5b. right ascension value needs to be in the same quadrant as L // double Lquadrant = (floor( L/90)) * 90; // double RAquadrant = (floor(RA/90)) * 90; // double A = RA + (Lquadrant - RAquadrant); // 5c. right ascension value needs to be converted into hours RA = RA / 15; // 6. calculate the Sun's declination sinDec = 0.39782 * dsin(L); cosDec = dcos(dasin(sinDec)); // 7a. calculate the Sun's local hour angle zenith = 90.0 + 50/60; cosH = (dcos(zenith) - (sinDec * dsin(latitude))) / (cosDec * dcos(latitude)); if (cosH > 1) return -1; // the sun never rises on this location (on the specified date) if (cosH < -1) return -2; // the sun never sets on this location (on the specified date) // 7b. finish calculating H and convert into hours if (sunrise) H = 360 - dacos(cosH); else H = dacos(cosH); H = H / 15; // 8. calculate local mean time of rising/setting T = H + RA - (0.06571 * t) - 6.622; // 9. adjust back to UTC UT = T - lngHour; // NOTE: UT potentially needs to be adjusted into the range [0,24) by adding/subtracting 24 norm24(&UT); // 10. convert UT value to local time zone of latitude/longitude // double localT = UT + localOffset; return UT; } char *sunrisesetstr(char *str, double latitude, double longitude){ double rise = sunriseset(1, latitude, longitude); double set = sunriseset(0, latitude, longitude); if (rise == -1 || set == -1){ strcpy(str, "polar night"); return str; } if (rise == -2 || set == -2){ strcpy(str, "polar day"); return str; } sprintf(str, "%02d:%02d-%02d:%02d", (int)rise, ((int)(rise * 60))% 60, (int)set, ((int)(set * 60))%60); return str; } tucnak2-2.48/src/Makefile.in0000644000175000017500000005540311737315444012613 00000000000000# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = tucnak$(EXEEXT) soundwrapper$(EXEEXT) subdir = src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = am__installdirs = "$(DESTDIR)$(bindir)" binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) am_soundwrapper_OBJECTS = soundwrapper.$(OBJEXT) soundwrapper_OBJECTS = $(am_soundwrapper_OBJECTS) soundwrapper_LDADD = $(LDADD) am_tucnak_OBJECTS = adif.$(OBJEXT) alsa.$(OBJEXT) bfu.$(OBJEXT) \ cabrillo.$(OBJEXT) charsets.$(OBJEXT) chart.$(OBJEXT) \ control.$(OBJEXT) cor.$(OBJEXT) cordata.$(OBJEXT) \ cwdaemon.$(OBJEXT) cwdb.$(OBJEXT) cwwindow.$(OBJEXT) \ davac4.$(OBJEXT) dsp.$(OBJEXT) dwdb.$(OBJEXT) dxc.$(OBJEXT) \ ebw.$(OBJEXT) edi.$(OBJEXT) eprintf.$(OBJEXT) error.$(OBJEXT) \ excdb.$(OBJEXT) fft.$(OBJEXT) fhs.$(OBJEXT) fifo.$(OBJEXT) \ font.$(OBJEXT) gfx_png.$(OBJEXT) ghash.$(OBJEXT) \ gptrarray.$(OBJEXT) hash.$(OBJEXT) hdkeyb.$(OBJEXT) \ hf.$(OBJEXT) html.$(OBJEXT) httpd.$(OBJEXT) iarray.$(OBJEXT) \ icons.$(OBJEXT) img_png.$(OBJEXT) inpout.$(OBJEXT) \ inputln.$(OBJEXT) interfaces.$(OBJEXT) kbd.$(OBJEXT) \ kbdbind.$(OBJEXT) language.$(OBJEXT) list.$(OBJEXT) \ loc.$(OBJEXT) main.$(OBJEXT) map.$(OBJEXT) masterdb.$(OBJEXT) \ menu.$(OBJEXT) menu1.$(OBJEXT) menu2.$(OBJEXT) menu3.$(OBJEXT) \ menu4.$(OBJEXT) menu5.$(OBJEXT) mingw.$(OBJEXT) \ namedb.$(OBJEXT) net.$(OBJEXT) ntpq.$(OBJEXT) os_dep.$(OBJEXT) \ oss.$(OBJEXT) player.$(OBJEXT) ppdev.$(OBJEXT) \ profile.$(OBJEXT) rc.$(OBJEXT) regex.$(OBJEXT) \ report.$(OBJEXT) rotar.$(OBJEXT) qrvdb.$(OBJEXT) \ qsodb.$(OBJEXT) scandir.$(OBJEXT) scope.$(OBJEXT) \ sdev.$(OBJEXT) sdl.$(OBJEXT) select.$(OBJEXT) \ session.$(OBJEXT) settings.$(OBJEXT) sked.$(OBJEXT) \ ssbd.$(OBJEXT) stats.$(OBJEXT) subwin.$(OBJEXT) sun.$(OBJEXT) \ terminal.$(OBJEXT) threadpipe.$(OBJEXT) titlpage.$(OBJEXT) \ tregex.$(OBJEXT) trig.$(OBJEXT) ttys.$(OBJEXT) txts.$(OBJEXT) \ win32.$(OBJEXT) winkey.$(OBJEXT) wiki.$(OBJEXT) wizz.$(OBJEXT) \ zstring.$(OBJEXT) tucnak_OBJECTS = $(am_tucnak_OBJECTS) tucnak_DEPENDENCIES = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(soundwrapper_SOURCES) $(tucnak_SOURCES) DIST_SOURCES = $(soundwrapper_SOURCES) $(tucnak_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ HAMLIB_CFLAGS = @HAMLIB_CFLAGS@ HAMLIB_LIBS = @HAMLIB_LIBS@ HAVE_MAKE = @HAVE_MAKE@ HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ HAVE_RPM = @HAVE_RPM@ HAVE_RPM_PACKAGING = @HAVE_RPM_PACKAGING@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBFTDI_CFLAGS = @LIBFTDI_CFLAGS@ LIBFTDI_LIBS = @LIBFTDI_LIBS@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RPM_RELEASE = @RPM_RELEASE@ RPM_SOURCESDIR = @RPM_SOURCESDIR@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ TUCNAK_LDADD = @TUCNAK_LDADD@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ tucnak_SOURCES = adif.c alsa.c bfu.c cabrillo.c charsets.c \ chart.c codepage.h codepage.inc \ control.c cor.c cor.h cordata.c cordata.h cordata.inc \ cwdaemon.c cwdb.c cwwindow.c davac4.c dsp.c dwdb.c dxc.c ebw.c edi.c \ eprintf.c error.c excdb.c fft.c fhs.c \ fifo.c font.c font.inc gfx_png.c ghash.c \ gptrarray.c hash.c hdkeyb.c header.h hf.c html.c \ httpd.c iarray.c iarray.h \ icons.c icons.h icons.inc img_png.c inpout.c inputln.c \ interfaces.c interfaces.h kbd.c \ kbdbind.c language.c language.h language.inc \ list.c loc.c main.c map.c masterdb.c \ menu.c menu1.c menu2.c menu3.c menu4.c menu5.c \ mingw.c mingw.h namedb.c net.c ntpq.c \ os_dep.c os_dep.h oss.c player.c ppdev.c profile.c rc.c \ regex.c regex_.h report.c rotar.c \ qrvdb.c qsodb.c scandir.c scope.c sdev.c sdl.c \ select.c session.c settings.c setup.h sked.c \ ssbd.c stats.c subwin.c sun.c terminal.c \ threadpipe.c titlpage.c tregex.c trig.c \ ttys.c txts.c txts.h txts.inc uni_7b.inc \ win32.c winkey.c wiki.c wizz.c zstring.c tucnak_LDADD = @TUCNAK_LDADD@ soundwrapper_SOURCES = soundwrapper.c EXTRA_DIST = mingw.c mingw.h msvc.c msvc.h regcomp.c \ regex_internal.c regex_internal.h regexec.c win32.c all: all-am .SUFFIXES: .SUFFIXES: .c .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ rm -f "$(DESTDIR)$(bindir)/$$f"; \ done clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) soundwrapper$(EXEEXT): $(soundwrapper_OBJECTS) $(soundwrapper_DEPENDENCIES) @rm -f soundwrapper$(EXEEXT) $(LINK) $(soundwrapper_OBJECTS) $(soundwrapper_LDADD) $(LIBS) tucnak$(EXEEXT): $(tucnak_OBJECTS) $(tucnak_DEPENDENCIES) @rm -f tucnak$(EXEEXT) $(LINK) $(tucnak_OBJECTS) $(tucnak_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/adif.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alsa.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bfu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cabrillo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/charsets.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chart.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/control.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cor.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cordata.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cwdaemon.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cwdb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cwwindow.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/davac4.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dsp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwdb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ebw.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/edi.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eprintf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/excdb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fft.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fhs.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fifo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/font.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gfx_png.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ghash.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gptrarray.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hdkeyb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/html.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/httpd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iarray.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/icons.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/img_png.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inpout.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inputln.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interfaces.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kbd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kbdbind.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/language.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/map.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/masterdb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/menu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/menu1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/menu2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/menu3.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/menu4.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/menu5.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mingw.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/namedb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ntpq.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/os_dep.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oss.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/player.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppdev.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/profile.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qrvdb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qsodb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/report.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rotar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scandir.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scope.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sdev.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sdl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/select.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/session.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/settings.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sked.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/soundwrapper.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ssbd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stats.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/subwin.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sun.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/terminal.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threadpipe.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/titlpage.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tregex.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trig.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ttys.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/txts.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wiki.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/win32.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/winkey.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wizz.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zstring.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-binPROGRAMS install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic ctags distclean distclean-compile \ distclean-generic distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am uninstall-binPROGRAMS #stucnak_SOURCES = $(tucnak_SOURCES) #stucnak_LDFLAGS = -static #stucnak_LDADD = @TUCNAK_LDADD@ -L/usr/X11R6/lib -lpng -lxf86config -lvga -laa -lncurses -lslang -lXv -lX11 -lz -ldl -lXext -lartsc -lasound -lesd -laudio -lgpm loc: loc.c gcc -g -O0 -DMAIN -DLOCDEBUG loc.c -o loc -lm # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tucnak2-2.48/src/iarray.h0000644000175000017500000000526311567373656012217 00000000000000/* iarray.h */ /* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of glib www.gtk.org */ /* GLIB - Library of useful routines for C programming * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /* * Modified by the GLib Team and others 1997-1999. See the AUTHORS * file for a list of people on the GLib Team. See the ChangeLog * files for a list of changes. These files are distributed with * GLib at ftp://ftp.gtk.org/pub/gtk/. */ #ifndef _IARRAY_H #define _IARRAY_H typedef struct _GIndexArray GIndexArray; struct _GIndexArray { gpointer *pdata; guint len; }; void init_iarray(void); void free_iarray(void); #define g_index_array_index(array,index) (array->pdata)[index] GIndexArray* g_index_array_new (void); void g_index_array_free (GIndexArray *array, gboolean free_seg); void g_index_array_free_all(GIndexArray *array); void g_index_array_set_size (GIndexArray *array, gint length); gpointer g_index_array_remove_index (GIndexArray *array, guint index); gpointer g_index_array_remove_index_fast (GIndexArray *array, guint index); gboolean g_index_array_remove (GIndexArray *array, gpointer data); gboolean g_index_array_remove_fast (GIndexArray *array, gpointer data); void g_index_array_add (GIndexArray *array, gpointer data); void g_index_array_qsort (GIndexArray *farray, int (*compar)(const void *, const void *)); void g_index_array_uniq (GIndexArray *farray, int (*compar)(const void *, const void *), int free_dups); gpointer *g_index_array_bsearch(GIndexArray *farray, const void *key, int (*compar)(const void *, const void *)); gint g_index_array_bsearch_index(GIndexArray *farray, const void *key, int (*compar)(const void *, const void *)); void g_ptr_array_free_all(GPtrArray *array); void g_ptr_array_free_items(GPtrArray *array); void g_ptr_array_qsort (GPtrArray *farray, int (*compar)(const void *, const void *)); #endif tucnak2-2.48/src/ebw.c0000644000175000017500000000677411567373656011510 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" static int nlocs = 0; static int nnames = 0; int load_ebw_from_file(struct cw *cw, struct namedb *namedb, char *filename){ FILE *f; struct dbfhdr hdr; struct dbffield *fields,*field; int i, j; unsigned char *record; int ret=0, ret2, ofs; int callofs,calllen,wwlofs,wwllen,nameofs,namelen; gchar *call,*wwl,*name; f=fopen(filename, "rb"); if (!f) { dbg("Can't open file %s\n", filename); return -1; } if (fread(&hdr, sizeof(struct dbfhdr), 1, f)!=1){ fclose(f); return -2; } fields=g_new0(struct dbffield, hdr.hdrsize/sizeof(struct dbffield)); if (fread(fields, hdr.hdrsize-sizeof(struct dbfhdr), 1, f)!=1){ g_free(fields); fclose(f); return -3; } callofs=wwlofs=nameofs=-1; calllen=wwllen=namelen=0; for (i=0, field=fields, ofs=0; ; i++, field++){ if (field->name[0]==0x0d) break; dbg("name='%s' len=%d\n", field->name, field->len); if (strcasecmp(field->name, "CALL")==0){ callofs=ofs; calllen=field->len; } if (strcasecmp(field->name, "LOCATOR")==0){ wwlofs=ofs; wwllen=field->len; } if (strcasecmp(field->name, "VORNAME")==0){ nameofs=ofs; namelen=field->len; } ofs+=field->len; } if (!calllen) { log_addf("No CALL column if file %s\n", filename); goto x; } if (!wwllen || !namelen){ log_addf("No LOCATOR or VORNAME column if file %s\n", filename); goto x; } fseek(f, hdr.hdrsize, SEEK_SET); record=g_new0(unsigned char, hdr.recsize); for (j=0; j=2){ add_namedb(namedb, call, name); nnames++; } g_free(call); CONDGFREE(wwl); CONDGFREE(name); } g_free(record); ret=0; x:; fclose(f); g_free(fields); return ret; } int read_ebw_files(struct cw *cw, struct namedb *namedb){ gchar *s, *s1; int ret; nlocs = 0; nnames = 0; s = g_strconcat(getenv("HOME"), "/tucnak/vhf.dbf", NULL); ret=load_ebw_from_file(cw, namedb, s); if (ret==0){ log_addf("Loaded %d locators and %d names from %s", nlocs, nnames, s); g_free(s); return 0; } s1 = SHAREDIR"/vhf.dbf"; ret=load_ebw_from_file(cw, namedb, s1); if (ret==0){ log_addf("Loaded %d locators and %d names from %s", nlocs, nnames, s1); return 0; }else{ log_addf("Can't read %s or %s", s, s1); } g_free(s); return ret; } tucnak2-2.48/src/cwdaemon.c0000644000175000017500000013176011701533511012474 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" struct cwdaemon *cwda; struct cwdaemon *init_cwdaemon(void){ struct cwdaemon *cwda; int fds[2]; /* sound(880); sleep(1); sound(0); sleep(1); sound(1760); sleep(1); sound(0); sleep(1); */ cwda = g_new0(struct cwdaemon, 1); switch(cfg->cwda_type){ case CWD_PARPORT: #ifdef HAVE_LINUX_PPDEV_H /* ppdev.h */ cwda->init = parport_init; cwda->free = parport_free; cwda->reset = parport_reset; cwda->text = cwdaemon_text; cwda->sspeed = cwdaemon_speed; cwda->sweight = cwdaemon_weight; cwda->cw = parport_cw; cwda->ptt = parport_ptt; cwda->ssbway = parport_ssbway; cwda->back = cwdaemon_back; cwda->band = parport_band; #elif defined(__CYGWIN__) /* inpout.h */ cwda->init = parport_init; cwda->free = parport_free; cwda->reset = parport_reset; cwda->text = cwdaemon_text; cwda->sspeed = cwdaemon_speed; cwda->sweight = cwdaemon_weight; cwda->cw = parport_cw; cwda->ptt = parport_ptt; cwda->ssbway = parport_ssbway; cwda->back = cwdaemon_back; cwda->band = parport_band; #else log_addf("Support for ppdev/inpout isn't compiled in"); dbg("Support for ppdev/inpout isn't compiled in\n"); #endif break; case CWD_TTYS: cwda->init = ttys_init; cwda->free = ttys_free; cwda->reset = ttys_reset; cwda->text = cwdaemon_text; cwda->sspeed = cwdaemon_speed; cwda->sweight = cwdaemon_weight; cwda->cw = ttys_cw; cwda->ptt = ttys_ptt; cwda->ssbway = ttys_ssbway; cwda->back = cwdaemon_back; break; case CWD_DAVAC4: #ifdef HAVE_LIBFTDI cwda->init = davac4_init; cwda->free = davac4_free; cwda->reset = davac4_reset; cwda->text = cwdaemon_text; cwda->sspeed = cwdaemon_speed; cwda->sweight = cwdaemon_weight; cwda->cw = davac4_cw; cwda->ptt = davac4_ptt; cwda->ssbway = davac4_ssbway; cwda->monitor = davac4_monitor; cwda->back = cwdaemon_back; cwda->band = davac4_band; cwda->ftdi_mutex = g_mutex_new(); #else log_addf("Support for davac4 isn't compiled in, check for libftdi"); dbg("Support for davac4 isn't compiled in, check for libftdi"); #endif break; case CWD_CWD: cwda->init = cwd_init; cwda->free = cwd_free; cwda->reset = cwd_reset; cwda->text = cwd_text; cwda->sspeed = cwd_speed; cwda->sweight = cwd_weight; cwda->cw = cwd_cw; cwda->ptt = cwd_ptt; cwda->ssbway = cwd_ssbway; cwda->echo = cwd_echo; cwda->band = cwd_band; // cwda->dtune = cwd_tune; break; case CWD_WINKEY: cwda->init = winkey_init; cwda->free = winkey_free; cwda->reset = winkey_reset; cwda->text = winkey_text; cwda->sspeed = winkey_speed; cwda->sweight = winkey_weight; cwda->cw = winkey_cw; cwda->ptt = winkey_ptt; cwda->ssbway = winkey_ssbway; cwda->dtune = winkey_tune; cwda->back = winkey_back; break; case CWD_WINKEY4: cwda->init = winkey4_init; cwda->free = winkey4_free; cwda->reset = winkey4_reset; cwda->text = winkey_text; cwda->sspeed = winkey_speed; cwda->sweight = winkey_weight; cwda->cw = winkey_cw; cwda->ptt = winkey_ptt; cwda->ssbway = winkey_ssbway; cwda->dtune = winkey_tune; cwda->back = winkey_back; #ifdef HAVE_LIBFTDI cwda->ptt = davac4_ptt; cwda->ssbway = davac4_ssbway; cwda->monitor = davac4_monitor; cwda->band = davac4_band; cwda->ftdi_mutex = g_mutex_new(); #endif break; } cwda->speed=cfg->cwda_speed; cwda->weight=cfg->cwda_weight; /*dbg("init_cwdaemon\n"); */ if (pipe(fds)) internal_("Can't create pipe"); cwda->pipe_read=fds[0]; cwda->pipe_write=fds[1]; cwda->code=g_string_sized_new(100); cwda->played=g_string_sized_new(100); cwda->thread=g_thread_create(cwdaemon_thread_func, (gpointer)cwda, TRUE, NULL); if (cwda->init) cwda->init(cwda); /* cwdaemon_cw_string(cwda, "cq cq de ok1zia"); */ /*cwdaemon_cw_string(cwda, "cq"); */ return cwda; } void free_cwdaemon(struct cwdaemon *cwda){ char c; int ret; if (!cwda) return; cwda->freeing = 1; cq_abort(1); c=0; ret = write(cwda->pipe_write, &c, 1); dbg("join cwda...\n"); g_thread_join(cwda->thread); dbg("done\n"); closesocket(cwda->pipe_write); closesocket(cwda->pipe_read); g_string_free(cwda->code, 1); g_string_free(cwda->played, 1); if (cwda->free) cwda->free(cwda); g_free(cwda); cwda=NULL; } struct cwelem{ struct timeval tv; int on,last,ch; }; #define MAXCWQUEUE 20 static struct cwelem cwqueue[MAXCWQUEUE+1]; static int qi; static void cwenqueue(struct cwdaemon *cwda){ char s[256], *c, ch; int i, ret; struct timeval tv; if (cwda->tune > 0){ gettimeofday(&tv, NULL); i = 0; cwqueue[i].tv.tv_sec=tv.tv_sec; cwqueue[i].tv.tv_usec=tv.tv_usec; cwqueue[i].on=1; cwqueue[i].last=0; cwqueue[i].ch=cwda->tune==2?'-':'.'; tv.tv_usec+=(cwda->tune==2?3:1)*(1200000/cwda->speed+cwda->weight*500); while (tv.tv_usec>=1000000) {tv.tv_usec-=1000000;tv.tv_sec++; } i++; cwqueue[i].tv.tv_sec=tv.tv_sec; cwqueue[i].tv.tv_usec=tv.tv_usec; cwqueue[i].on=0; cwqueue[i].last=0; cwqueue[i].ch=' '; tv.tv_usec+=1200000/cwda->speed-cwda->weight*500; while (tv.tv_usec>=1000000) {tv.tv_usec-=1000000;tv.tv_sec++; } i++; cwqueue[i].tv.tv_sec=tv.tv_sec; cwqueue[i].tv.tv_usec=tv.tv_usec; cwqueue[i].on=0; cwqueue[i].last=1; cwqueue[i].ch='$'; qi=0; return; } while(1){ ch=*cwda->code->str; if (!ch) { qi=-1; c = g_strdup_printf("CW;e;%s\n", cwda->played->str); ret = write(tpipe->threadpipe_write, c, strlen(c)); g_free(c); g_string_truncate(cwda->played, 0); if (cwda->ptt && !cwda->hold_ptt) cwda->ptt(cwda, 0); return; } g_string_erase(cwda->code, 0, 1); if (ch != '\x09') g_string_append_c(cwda->played, ch); switch(ch){ case '\x09': strcpy(s, "\x09"); break; case ' ': strcpy(s, " "); break; case 'A': strcpy(s, ".-"); break; case 'B': strcpy(s, "-..."); break; case 'C': strcpy(s, "-.-."); break; case 'D': strcpy(s, "-.."); break; case 'E': strcpy(s, "."); break; case 'F': strcpy(s, "..-."); break; case 'G': strcpy(s, "--."); break; case 'H': strcpy(s, "...."); break; case 'I': strcpy(s, ".."); break; case 'J': strcpy(s, ".---"); break; case 'K': strcpy(s, "-.-"); break; case 'L': strcpy(s, ".-.."); break; case 'M': strcpy(s, "--"); break; case 'N': strcpy(s, "-."); break; case 'O': strcpy(s, "---"); break; case 'P': strcpy(s, ".--."); break; case 'Q': strcpy(s, "--.-"); break; case 'R': strcpy(s, ".-."); break; case 'S': strcpy(s, "..."); break; case 'T': strcpy(s, "-"); break; case 'U': strcpy(s, "..-"); break; case 'V': strcpy(s, "...-"); break; case 'W': strcpy(s, ".--"); break; case 'X': strcpy(s, "-..-"); break; case 'Y': strcpy(s, "-.--"); break; case 'Z': strcpy(s, "--.."); break; case '0': strcpy(s, "-----"); break; case '1': strcpy(s, ".----"); break; case '2': strcpy(s, "..---"); break; case '3': strcpy(s, "...--"); break; case '4': strcpy(s, "....-"); break; case '5': strcpy(s, "....."); break; case '6': strcpy(s, "-...."); break; case '7': strcpy(s, "--..."); break; case '8': strcpy(s, "---.."); break; case '9': strcpy(s, "----."); break; case '?': strcpy(s, "..--.."); break; case '/': strcpy(s, "-..-."); break; case ',': strcpy(s, "--..--"); break; case '=': strcpy(s, "-...-"); break; case '@': strcpy(s, ".--.-."); break; case '-': strcpy(s, "-....-"); break; case '+': strcpy(s, ".-.-."); break; case '.': strcpy(s, ".-.-.-"); break; case ';': strcpy(s, "-.-.-."); break; case '!': strcpy(s, ".-..."); break; default: continue; } break; } // dbg("enqueue %c '%s' played='%s'\n", ch, s, cwda->played->str); gettimeofday(&tv, NULL); i=0; for (c=s; ; c++){ if (*c=='.'){ cwqueue[i].tv.tv_sec=tv.tv_sec; cwqueue[i].tv.tv_usec=tv.tv_usec; cwqueue[i].on=1; cwqueue[i].last=0; cwqueue[i].ch='.'; tv.tv_usec+=(24000 * cwda->weight) / cwda->speed; while (tv.tv_usec>=1000000) {tv.tv_usec-=1000000;tv.tv_sec++; } i++; cwqueue[i].tv.tv_sec=tv.tv_sec; cwqueue[i].tv.tv_usec=tv.tv_usec; cwqueue[i].on=0; cwqueue[i].last=0; cwqueue[i].ch=' '; tv.tv_usec+=(24000 * (100 - cwda->weight)) / cwda->speed; while (tv.tv_usec>=1000000) {tv.tv_usec-=1000000;tv.tv_sec++; } i++; } if (*c=='-'){ cwqueue[i].tv.tv_sec=tv.tv_sec; cwqueue[i].tv.tv_usec=tv.tv_usec; cwqueue[i].on=1; cwqueue[i].last=0; cwqueue[i].ch='-'; tv.tv_usec+=(3 * 24000 * cwda->weight) / cwda->speed; while (tv.tv_usec>=1000000) {tv.tv_usec-=1000000;tv.tv_sec++; } i++; cwqueue[i].tv.tv_sec=tv.tv_sec; cwqueue[i].tv.tv_usec=tv.tv_usec; cwqueue[i].on=0; cwqueue[i].last=0; cwqueue[i].ch=' '; tv.tv_usec+=(24000 * (100 - cwda->weight)) / cwda->speed; while (tv.tv_usec>=1000000) {tv.tv_usec-=1000000;tv.tv_sec++; } i++; } if (*c=='\0'){ cwqueue[i].tv.tv_sec=tv.tv_sec; cwqueue[i].tv.tv_usec=tv.tv_usec; cwqueue[i].on=2; cwqueue[i].last=0; cwqueue[i].ch='0'; tv.tv_usec+=(2 * 24000 * cwda->weight) / cwda->speed; while (tv.tv_usec>=1000000) {tv.tv_usec-=1000000;tv.tv_sec++; } i++; break; } if (*c==' '){ cwqueue[i].tv.tv_sec=tv.tv_sec; cwqueue[i].tv.tv_usec=tv.tv_usec; cwqueue[i].on=0; cwqueue[i].last=0; cwqueue[i].ch='_'; tv.tv_usec+=(5 * 24000 * cwda->weight) / cwda->speed; while (tv.tv_usec>=1000000) {tv.tv_usec-=1000000;tv.tv_sec++; } i++; } if (*c=='\x09'){ cwqueue[i].tv.tv_sec=tv.tv_sec; cwqueue[i].tv.tv_usec=tv.tv_usec; cwqueue[i].on=0; cwqueue[i].last=0; cwqueue[i].ch=*c; tv.tv_usec+=1000*cfg->cwda_leadin; while (tv.tv_usec>=1000000) {tv.tv_usec-=1000000;tv.tv_sec++; } i++; } } cwqueue[i].tv.tv_sec=tv.tv_sec; cwqueue[i].tv.tv_usec=tv.tv_usec; cwqueue[i].on=0; cwqueue[i].last=1; cwqueue[i].ch='$'; //dbg("ENQ qi=%d\n", qi); qi=0; /* for(i=0;;i++){ dbg(" %2d %d %2d.%06d\n", i, cwqueue[i].on, cwqueue[i].tv.tv_sec, cwqueue[i].tv.tv_usec); if (cwqueue[i].last) break; }*/ } gpointer cwdaemon_thread_func(gpointer data){ fd_set rd; struct timeval *tv, interval, now; int ret, i; char buf[1030], s[256]; struct cwdaemon *cwda; cwda=(struct cwdaemon*)data; qi=-1; while(1){ FD_ZERO(&rd); FD_SET(cwda->pipe_read, &rd); if (qi<0){ tv=NULL; /*dbg("\nselect()\n");*/ }else{ /*dbg("\n");*/ gettimeofday(&interval, NULL); /*dbg("now=%02d.%06d cwqueue[%d]=%02d.%06d\n",interval.tv_sec, interval.tv_usec, qi, cwqueue[qi].tv.tv_sec, cwqueue[qi].tv.tv_usec); */ interval.tv_usec=cwqueue[qi].tv.tv_usec-interval.tv_usec; interval.tv_sec=cwqueue[qi].tv.tv_sec-interval.tv_sec; while(interval.tv_usec<0) { interval.tv_usec+=1000000; interval.tv_sec--; } if (interval.tv_sec<0) {interval.tv_sec=0;interval.tv_usec=0;} tv=&interval; /*dbg("select(%2d.%06d)\n", interval.tv_sec%100, interval.tv_usec); */ } ret=select(cwda->pipe_read+1, &rd, NULL, NULL, tv); if (ret<0){ if (errno==EINTR) continue; } gettimeofday(&now, NULL); if (!ret){ /* timeout */ /* dbg("timeout\n");*/ goto check_queue; } if (FD_ISSET(cwda->pipe_read, &rd)){ /*dbg("event on fd\n");*/ ret=read(cwda->pipe_read, buf, 1024); if (ret<=0){ strcpy(s, "CW;!\n"); /*dbg("%s\n", s);*/ ret = write(tpipe->threadpipe_write, s, strlen(s)); break; } buf[ret]='\0'; //dbg("cwdaemon_thread_func: read %d '", ret); //for (i=0;i=' ') { if (cwda->code->len == 0 && qi<0){ if (cwda->ptt && !cwda->hold_ptt) cwda->ptt(cwda, 1); if (!cwda->hold_ptt) g_string_append_c(cwda->code, '\x09'); } g_string_append_c(cwda->code, upcase(buf[i])); continue; } switch(buf[i]){ case '\0': if (cwda->cw) cwda->cw(cwda, 0); if (cfg->cwda_spk) sound(0); return NULL; case 1: //dbg("cwenqueue 3\n"); cwenqueue(cwda); break; case 3: if (cwda->cw) cwda->cw(cwda, 0); if (cfg->cwda_spk) sound(0); qi=-1; g_string_truncate(cwda->code, 0); g_string_truncate(cwda->played, 0); break; case 8: if (cwda->code->len > 0) g_string_truncate(cwda->code, cwda->code->len - 1); break; default: break; } } if (qi<0 && *cwda->code->str){ //dbg("cwenqueue 1 tune=%d qi=%d\n", cwda->tune, qi); cwenqueue(cwda); }else{ continue; } } check_queue: if (qi<0) continue; if (cwqueue[qi].last){ //dbg("cwenqueue 2 qi=%d\n", qi); cwenqueue(cwda); goto check_queue; } if (cwqueue[qi].tv.tv_sec>now.tv_sec) continue; if (cwqueue[qi].tv.tv_usec==now.tv_sec){ if (cwqueue[qi].tv.tv_usec>now.tv_usec) continue; } //dbg("playing %d %c\n", qi, cwqueue[qi].ch); if (cwqueue[qi].on==1){ if (cwda->cw) cwda->cw(cwda, 1); if (cfg->cwda_spk) sound(800); }else{ if (cwda->cw) cwda->cw(cwda, 0); if (cfg->cwda_spk) sound(0); } qi++; continue; } if (cwda->cw) cwda->cw(cwda, 0); if (cfg->cwda_spk) sound(0); return NULL; } void cwdaemon_read_handler(struct cwdaemon *cwda, char *s, char *played){ char *c; if (gses->last_cq_timer_id){ /* CQ was aborted while playing */ kill_timer(gses->last_cq_timer_id); gses->last_cq_timer_id = 0; } dbg("cwdaemon_read_handler rcvd: '%s' played='%s'\n", s, played); switch(s[0]){ case '!': /* error */ cq_abort(SSBDRECORDING); /*abort recording only if it is in progress */ log_addf("cwdaemon: %s", s+1); break; case 'e': /* cw text played */ if (aband){ dbg("cwdaemon_read_handler: call_played='%s' agcall=%d iscall='%d'\n", aband->call_played, aband->agcall, aband->iscall); if (aband->iscall){ aband->iscall = 0; dbg("set iscall=%d\n", aband->iscall); if (!aband->call_played){ aband->call_played = g_strdup_trim(played); if (aband->call_played){ c = strchr(aband->call_played, ' '); if (c) *c = '\0'; } dbg("set call_played='%s'\n", aband->call_played); //aband->iscall = 0; //dbg("set iscall=%d\n", aband->iscall); if (ctest->runmode && gses->mode == MOD_CW_CW && cfg->cwda_autgive > 0 && aband->agcall){ struct cq *cq = get_cq_by_number(cfg->cqs, 1); if (cq){ cq->stripcall = 1; dbg("%s: cq_run_by_number(1)\n", __FUNCTION__); cq_run_by_number(1); // 5NN $MX cq->stripcall = 0; aband->agcall = 0; dbg("cwdaemon_read_handler: set agcall=%d\n", aband->agcall); } break; } } } } if (!gses || !gses->last_cq) break; /* zdravime uW 2004 :-) */ if (gses->last_cq->cw_repeat || gses->extcq > 0) cq_cw_wait(gses->last_cq); else{ gses->last_cq->type=MOD_NONE; cq_abort(SSBDRECORDING); } peer_tx(aband, 0); redraw_later(); break; case 'b': /* paddle break in */ if (gses->last_cq) cq_abort(SSBDRECORDING); break; } } void cq_cw_wait(struct cq *cq){ int remains; // cba_t cba; dbg("cq_cw_wait\n"); #ifdef HAVE_SNDFILE ssbd_abort(ssbd,0); #endif cwdaemon_ptt(cwda, 0, 0); cwdaemon_ssbway(cwda, 0); /* microphone */ peer_tx(aband, 0); remains = cq->cw_ts*100; if (gses->extcq > 0){ remains = cq_remains_run(); } dbg("installing wait timer (%d ms)\n", remains); gses->last_cq_timer_id = install_timer(remains, cq_timer_cw2, (cba_t)cq); } static void cwdaemon_send_defaults(struct cwdaemon *cwda, int speed){ if (cwda->sspeed) cwda->sspeed(cwda, cwda->speed); if (cwda->sweight) cwda->sweight(cwda, cwda->weight); if (cfg->cwda_type == CWD_CWD) cwd_tone(cwda, cfg->cwda_spk?800:0); } void cwdaemon_abort(struct cwdaemon *cwda){ int ret; if (!cwda) return; cwda->hold_ptt = 0; if (cwda->reset) cwda->reset(cwda); cwda->tune = 0; ret = write(cwda->pipe_write, "\x03", 1); } /* called from SEGV handler */ void cwdaemon_safe_abort(struct cwdaemon *cwda){ if (!cwda) return; if (cwda->reset) cwda->reset(cwda); } int cwdaemon_text(struct cwdaemon *cwda, char *text){ int ret; if (!cwda) return 0; dbg("cwdaemon_cw_string('%s')\n", text); ret = write(cwda->pipe_write, text, strlen(text)); return 0; } void cwdaemon_ptt(struct cwdaemon *cwda, int ptt, int hold_ptt){ if (!cwda || !cwda->ptt) return; /*dbg("ptt %d\n", ptt);*/ cwda->hold_ptt = hold_ptt; cwda->ptt(cwda, ptt); if (cwda->hold_ptt) g_string_append_c(cwda->code, '\x09'); } /* 0=microphone, 1=soundcard */ void cwdaemon_ssbway(struct cwdaemon *cwda, int ssbway){ /*dbg("cwdaemon_ssbway(%d)\n", ssbway);*/ if (!cwda || !cwda->ssbway) return; cwda->ssbway(cwda, ssbway); } int cwdaemon_speed(struct cwdaemon *cwda, int wpm){ if (!cwda) return 0; cwda->speed=wpm; return 0; } void cwdaemon_qrq(struct cwdaemon *cwda, int qrq){ if (!cwda) return; if (cwda->speed+qrq > cfg->cwda_maxwpm) cwda->speed = cfg->cwda_maxwpm; else cwda->speed+=qrq; if (cwda->sspeed) cwda->sspeed(cwda, cwda->speed); } void cwdaemon_qrs(struct cwdaemon *cwda, int qrs){ if (!cwda) return; if (cwda->speed-qrs < cfg->cwda_minwpm) cwda->speed = cfg->cwda_minwpm; else cwda->speed-=qrs; if (cwda->sspeed) cwda->sspeed(cwda, cwda->speed); } int cwdaemon_weight(struct cwdaemon *cwda, int weight){ if (!cwda) return 0; cwda->weight=weight; return 0; } void cwdaemon_tune(struct cwdaemon *cwda, int tune){ int ret; if (!cwda) return; dbg("cwdaemon_tune(%d)\n", tune); cwda->tune = tune; if (cwda->dtune) { cwda->dtune(cwda, tune); return; } if (tune>0) ret = write(cwda->pipe_write, "\x01", 1); else cwdaemon_abort(cwda); } int cwdaemon_back(struct cwdaemon *cwda){ int ret; dbg("cwdaemon_back\n"); ret = write(cwda->pipe_write, "\x08", 1); return 0; } int cwdaemon_band(struct cwdaemon *cwda, int bandsw){ if (!cwda || !cwda->band) return 0; dbg("cwdaemon_band: %d\n", bandsw); cwda->band(cwda, bandsw); return 0; } /*********** external cwdaemon ***********************************/ int cwd_init(struct cwdaemon *cwda){ int on; struct sockaddr_in sin; cwda->sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP); if (cwda->sock < 0) goto err; on=1; if (setsockopt(cwda->sock, SOL_SOCKET, SO_REUSEADDR, SO4 &on, sizeof(on))){ dbg("Can't set SO_REUSEADDR\n"); goto err; } if (fcntl(cwda->sock, F_SETFL, O_NONBLOCK)){ dbg("Can't set O_NONBLOCK\n"); goto err; } memset(&sin, 0, sizeof(struct sockaddr_in)); sin.sin_family = AF_INET; sin.sin_port = htons(cfg->cwda_udp_port); if (!cfg->cwda_hostname) cfg->cwda_hostname = g_strdup(""); inet_aton(cfg->cwda_hostname, &sin.sin_addr); if (connect(cwda->sock, (struct sockaddr *)&sin, sizeof(sin))){ dbg("Can't connect\n"); goto err; } set_handlers(cwda->sock, cwd_read_handler, NULL, NULL, (cba_t)cwda); cwdaemon_send_defaults(cwda, cwda->speed); return 0; err:; if (cwda->sock>=0) closesocket(cwda->sock); cwda->sock = -1; return 1; } int cwd_free(struct cwdaemon *cwda){ dbg("cwd_free(%p) sock=%d\n", cwda, cwda?cwda->sock:-1234); if (cwda->sock>=0) { cwdaemon_abort(cwda); set_handlers(cwda->sock, NULL, NULL, NULL, CBA0); closesocket(cwda->sock); } return 0; } void cwd_read_handler(cba_t cba){ char s[1024]; struct sockaddr_in sin; socklen_t socklen; int rcvd, ret; struct cwdaemon *cwda; dbg("cwd_read_handler\n"); cwda = (struct cwdaemon *)GETCBA(cba, cwda); #if 0 if (!ctest) { /* we must clear kernel queue */ recvfrom(cwda->sock, s, sizeof(s)-1, 0, (struct sockaddr *)&sin, &socklen); return; } #endif memset(s, 0, sizeof(s)); socklen = sizeof(sin); rcvd=recvfrom(cwda->sock, s, sizeof(s)-1, 0, (struct sockaddr *)&sin, &socklen); /*dbg(" received '%s' = %d last_cq_timer_id=%d \n", s, rcvd, ctest->last_cq_timer_id);*/ if (rcvd<=0) return; dbg(" rcvd: '%s'\n", s); switch(s[0]){ case '!': /* error */ log_addf("cwdaemon: %s", s+1); ret = write(tpipe->threadpipe_write, "CW;!\n", 5); break; case 'h': /* cw text played */ dbg("cwdaemon text played\n"); ret = write(tpipe->threadpipe_write, "CW;e\n", 5); break; } } int cwd_reset(struct cwdaemon *cwda){ if (!cwda || cwda->sock<0) return 0; send(cwda->sock, "\0330", 3, 0); /* reset */ return 0; } int cwd_text(struct cwdaemon *cwda, char *text){ if (!cwda || cwda->sock<0) return 0; send(cwda->sock, text, strlen(text)+1, 0); /* reset */ return 0; } int cwd_cw(struct cwdaemon *cwda, int onoff){ return 0; } int cwd_ptt(struct cwdaemon *cwda, int onoff){ char s[16]; if (!cwda || cwda->sock<0) return 0; sprintf(s,"\033a%d", onoff); send(cwda->sock, s, strlen(s)+1, 0); return 0; } int cwd_ssbway(struct cwdaemon *cwda, int onoff){ char s[16]; if (!cwda || cwda->sock<0) return 0; sprintf(s,"\033b%d", onoff); send(cwda->sock, s, strlen(s)+1, 0); return 0; } int cwd_echo(struct cwdaemon *cwda){ char s[16]; return 0; // corruptes playing if (!cwda || cwda->sock<0) return 0; sprintf(s,"\033h%d", -1); send(cwda->sock, s, strlen(s)+1, 0); return 0; } int cwd_speed(struct cwdaemon *cwda, int wpm){ char s[16]; if (cwda->sock<0) return 0; /*dbg("speed=%d\n", wpm);*/ sprintf(s,"\0332%d", wpm); send(cwda->sock, s, strlen(s)+1, 0); return 0; } int cwd_weight(struct cwdaemon *cwda, int weight){ char s[16]; if (cwda->sock<0) return 0; // cwdaemon: Tmark = 1200000/wpm + 500 * weightC // tucnak, winkey: Tmark = 24000 * weightT / wpm // ------------------------------------------------------ // 1200000 / wpm + 500 * weightC = 24000 * weightT / wpm // *wpm // 1200000 + 500 * weightC * wpm = 24000 * weightT // :500 // weightC * wpm = 48 * weightT - 24000 // :wpm // weightC = (48 * weightT - 24000 ) / wpm // ----------------------------------------------------- // 24000 * weightT = 1200000 + 500 * weightC * wpm // :24000 // weightT = 50 + weightC * wpm / 48 sprintf(s,"\0337%d", (48 * weight - 24000) / cwda->speed ); send(cwda->sock, s, strlen(s)+1, 0); return 0; } void cwd_tone(struct cwdaemon *cwda, int tone){ char s[16]; if (cwda->sock<0) return; dbg("TONE\n"); sprintf(s,"\0333%d", tone); send(cwda->sock, s, strlen(s)+1, 0); } /*int cwd_tune(struct cwdaemon *cwda, int onoff){ char s[16]; if (!cwda || cwda->sock<0) return 0; sprintf(s,"\033a%d", onoff); send(cwda->sock, s, strlen(s)+1, 0); return 0; } */ int cwd_band(struct cwdaemon *cwda, int bandsw){ char s[16]; if (cwda->sock<0) return 0; dbg("cwd_band(%d)\n", bandsw); sprintf(s,"\033e%d", bandsw); send(cwda->sock, s, strlen(s)+1, 0); return 0; } /*********** CQ ***********************************/ struct cq *init_cq(void){ struct cq *cq; cq = g_new0(struct cq, 1); g_ptr_array_add(cfg->cqs, cq); return cq; } struct cq *get_cq_by_number(GPtrArray *cqs, int nr){ struct cq *cq; int i; for (i=0; ilen; i++){ cq = (struct cq *)g_ptr_array_index(cqs, i); if (cq->nr==nr) return cq; } return NULL; } void free_cq (struct cq *cq){ if (cq->cw_str) g_free(cq->cw_str); if (cq->ssb_file) g_free(cq->ssb_file); g_free(cq); } /**************** CW *************************/ int cq_run_cw(struct cq *cq){ gchar *raw; unsigned int remains, brk; dbg("cq_run_cw\n"); #ifdef HAVE_SNDFILE ssbd_abort(ssbd,1); /*aborts playing or recording */ #endif cq->type=MOD_CW_CW; redraw_later(); if (!cq->cw_str) { return -1; } raw = convert_cq(cq); dbg("\ncw_run_cq '%s' (extcq %d)\n", raw, gses->extcq); if (!raw) return -1; if (gses->extcq > 0){ remains = cq_remains_run(); brk = cq_remains_brk(); if (gses->extcq_break_timer_id) kill_timer(gses->extcq_break_timer_id); gses->extcq_break_timer_id = install_timer(brk, cq_timer_brk, CBA0); dbg(" remains=%d brk=%d\n", remains, brk); if (remains > 0){ cq_cw_wait(cq); goto x; } } if (!cq->stripcall){ if (cq->cw_speed) cwdaemon_send_defaults(cwda, cq->cw_speed); else cwdaemon_send_defaults(cwda, cwda->speed); }else{ if (cwda->text) cwda->text(cwda, " "); } if (cwda->text) cwda->text(cwda, raw); if (cwda->echo) cwda->echo(cwda); peer_tx(aband, 2); gses->last_cq = cq; gses->last_cq_timer_id = 0; x:; g_free(raw); return 0; } /*void cq_timer_cw(cba_t cq){ cwdaemon_abort(cwda); cq_run_cw(cq.cq); } */ void cq_timer_cw2(cba_t cq){ dbg("cq_timer_cw2\n"); cq_run_cw((struct cq *)GETCBA(cq, cq)); } void cq_timer_brk(cba_t cba){ gses->extcq_break_timer_id = 0; dbg("cq_timer_brk\n"); cwdaemon_abort(cwda); cq_cw_wait(gses->last_cq); } /*************** SSB *************************/ #ifdef HAVE_SNDFILE int cq_run_ssb(struct cq *cq){ int ret; dbg("cq_run_ssb\n"); cq->type=MOD_SSB_SSB; cwdaemon_ptt(cwda, 1, 0); cwdaemon_ssbway(cwda, 1); /* soundcard */ CONDGFREE(ssbd->pfilename); ssbd->pfilename=convert_esc(cq->ssb_file, NULL, CE_NONE, time(NULL)); if (!ssbd->pfilename) return -1; ret=ssbd_play_file(ssbd, ssbd->pfilename); gses->last_cq = cq; gses->last_cq_timer_id = 0; peer_tx(aband, 2); redraw_later(); return ret; } void cq_ssb_wait(struct cq *cq){ /*dbg("cq_ssb_wait\n");*/ ssbd_abort(ssbd,0); cwdaemon_ptt(cwda, 0, 0); cwdaemon_ssbway(cwda, 0); /* microphone */ peer_tx(aband, 0); gses->last_cq_timer_id = install_timer(cq->ssb_ts*100, cq_timer_ssb2, (cba_t)cq); } void cq_timer_ssb2(cba_t cq){ /*dbg("cq_timer_ssb2\n");*/ cq_run_ssb(cq.cq); } #endif /****************** common **********************/ int cq_run_by_number(int no){ int ret = 0; struct cq *cq; dbg("cq_run_by_number(%d), mode=%s\n", no, get_mode()==MOD_CW_CW?"CW":"SSB"); if (no == -1 && get_mode() == MOD_CW_CW){ cq = gses->ac_cq; }else{ if (no<0 || no>=cfg->cqs->len) return -1; cq = (struct cq *)g_ptr_array_index(cfg->cqs, no); } if (!cq->stripcall){ cq_abort(1); } /*if (gses->last_cq_timer_id0){ kill_timer(gses->last_cq_timer_id); gses->last_cq_timer_id = 0; } */ if (get_mode() == MOD_CW_CW){ /*dbg(" speed=%d repeat=%d ts=%d '%s'\n", cq->cw_speed, cq->cw_repeat, cq->cw_ts, cq->cw_allowifundef, cq->cw_str);*/ ret=cq_run_cw(cq); }else if (get_mode() == MOD_SSB_SSB){ #ifdef HAVE_SNDFILE /*dbg(" repeat=%d ts=%d '%s'\n", cq->ssb_repeat, cq->ssb_ts, cq->ssb_file);*/ ret=cq_run_ssb(cq); #endif }else ret=-1; if (ret!=0) cq_abort(SSBDRECORDING); return ret; } int cq_abort(int abort_rec){ /* dbg(" cq_abort(%d)\n", abort_rec);*/ if (gses) gses->last_cq=NULL; if (gses && gses->last_cq_timer_id){ kill_timer(gses->last_cq_timer_id); gses->last_cq_timer_id = 0; } if (gses && gses->extcq_break_timer_id){ kill_timer(gses->extcq_break_timer_id); gses->extcq_break_timer_id = 0; } cwdaemon_abort(cwda); redraw_later(); #ifdef HAVE_SNDFILE if (!abort_rec && ssbd_recording(ssbd)) return 0; ssbd_abort(ssbd,abort_rec); #endif return 0; } static gchar *conv_nr(gchar *str){ char *c; static char out[20]; safe_strncpy0(out, str, 20); for (c=out; *c=='0'; c++) *c='t'; return out; } static gchar *conv_rst(gchar *str){ char *c; static char out[20]; safe_strncpy0(out, str, 20); for (c=out; *c!='\0';c++){ if (*c=='9') *c='n'; } return out; } /* convert $XX to string */ /* /home/ja/ssbd/tmp/rec/$N_%Y%m%d_%H%M%S.wav */ #define SFT_LEN 1024 gchar *convert_esc(gchar *format, int *undef, int flags, time_t now){ GString *gs; char *c, *ret, *c2, *c3; int dummyint; struct tm utc; char sft_buf[SFT_LEN+1]; if (!undef) undef=&dummyint; *undef=0; if (now == 0) time(&now); gmtime_r(&now, &utc); if (!format) format=""; strftime(sft_buf, SFT_LEN, format, &utc); gs = g_string_new(""); if (flags&CE_ONLY_STRFTIME){ g_string_append(gs, sft_buf); goto x; } for (c=sft_buf; *c!='\0'; c++){ if (*c=='~' && c==sft_buf){ g_string_append(gs, getenv("HOME")); continue; } if (*c!='$') { g_string_append_c(gs, *c); continue; } c++; switch (lowcase(*c)){ case '\0': goto brk2; break; case '$': g_string_append_c(gs, '$'); break; case 'b': // dbg("callsign='%s' call_played='%s'\n", TMPQ.callsign, aband->call_played); if (aband) dbg("convert_esc1: call_played='%s'\n", aband->call_played); if (ctest && TMPQ.callsign && aband->call_played != NULL && strcmp(TMPQ.callsign, aband->call_played) != 0){ g_string_append(gs, TMPQ.callsign); //CONDGFREE(aband->call_played); //aband->call_played = g_strdup(TMPQ.callsign); //dbg("convert_esc2: set call_played='%s'\n", aband->call_played); //aband->iscall = 1; //dbg("convert_esc2: set iscall=%d\n", aband->iscall); } break; case 'c': if (ctest && TMPQ.callsign) { g_string_append(gs, TMPQ.callsign); if (!strcasecmp(TMPQ.callsign, "O""K""1""Z""I""A")) g_string_append(gs, " ""a""h""o""j"); //CONDGFREE(aband->call_played); //aband->iscall = 1; //dbg("convert_esc3: set iscall=%d\n", aband->iscall); //aband->call_played = g_strdup(TMPQ.callsign); //dbg("convert_esc3: set call_played='%s'\n", aband->call_played); }else{ *undef=1; } break; case 'd': if (ctest) g_string_append (gs, ctest->cdate); else g_string_append(gs, "00000000"); break; case 'e': #ifdef HAVE_SNDFILE if (ssbd->code) g_string_append(gs, "code"); #endif break; case 'i': c2 = g_strdup(INPUTLN(aband)->cdata); for (c3=c2;*c3!='\0';c3++) if (*c3=='.') *c3='?'; g_string_append(gs, c2); g_free(c2); break; case 'n': if (ctest && TMPQ.qsonrr) g_string_append(gs, conv_nr(TMPQ.qsonrr)); else *undef=1; break; case 'o': if (aband && aband->operator_) g_string_append(gs, aband->operator_); else if (cfg->pcall) g_string_append(gs, cfg->pcall); else *undef=1; break; case 'r': if (ctest && TMPQ.rstr) g_string_append(gs, conv_rst(TMPQ.rstr)); else *undef=1; break; case 's': #ifdef HAVE_SNDFILE g_string_sprintfa(gs, "%d", ssbd->serno); #endif break; case 't': if (ctest) g_string_append(gs, ctest->directory); else g_string_append_printf(gs, "%s/tucnak/00000000", getenv("HOME")); break; case 'v': #ifdef HAVE_SNDFILE if (ssbd->callsign) { char *d; for (d=ssbd->callsign; *d!='\0'; d++){ if (*d=='/') g_string_append_c(gs, '_'); else g_string_append_c(gs, *d); } } else *undef=1; #endif break; case 'w': if (ctest && TMPQ.locator) g_string_append(gs, TMPQ.locator); else *undef=1; break; case 'x': if (ctest && TMPQ.exc) g_string_append(gs, TMPQ.exc); else *undef=1; break; case 'm': c++; switch(lowcase(*c)){ case '\0': goto brk2; break; case 'c': if (ctest && ctest->pcall) g_string_append(gs, ctest->pcall); else if (cfg->pcall) g_string_append(gs, cfg->pcall); else *undef=1; break; case 'n': if (ctest && TMPQ.qsonrs){ if (ctest->qsoglob){ gchar *c; c = g_strdup_printf("%03d", ctest->allqsos->len+1); g_string_append(gs, conv_nr(c)); g_free(c); }else{ g_string_append(gs, conv_nr(TMPQ.qsonrs)); } }else{ *undef=1; } break; case 'r': if (ctest && TMPQ.rsts) g_string_append(gs, conv_rst(TMPQ.rsts)); else *undef=1; break; case 'w': if (ctest && ctest->pwwlo) g_string_append(gs, ctest->pwwlo); else if (cfg->pwwlo) g_string_append(gs, cfg->pwwlo); else *undef=1; break; case 'x': if (ctest && ctest->pexch) g_string_append(gs, ctest->pexch); else if (cfg->pexch) g_string_append(gs, cfg->pexch); else *undef=1; break; } break; } brk2:; } x:; ret = g_strdup(gs->str); ret = optimize_path(ret); g_string_free(gs, TRUE); return ret; } gchar *convert_cq(struct cq *cq){ gchar *ret; int undef; char *c, *d; c = cq->cw_str; // dbg("stripcall=%d c='%s'\n", cq->stripcall, c); if (cq->stripcall){ d = strstr(c, "$C"); if (d != NULL) c += strlen("$C"); while (*c==' ') c++; } ret=convert_esc(c, &undef, CE_NONE, time(NULL)); if (!cq->cw_allowifundef && undef){ g_free(ret); return NULL; } return(ret); } #define FREE_Cx if (c1) {mem_free(c1); c1=NULL;}\ if (c2) {mem_free(c2); c2=NULL;}\ if (c3) {mem_free(c3); c3=NULL;}\ if (c4) {mem_free(c4); c4=NULL;}\ if (c5) {mem_free(c5); c5=NULL;} gchar *optimize_path(gchar *src){ int first, last, i; gchar **items, *c; GString *gs; if (!src) return NULL; if (src[0]=='\0') return src; if (strcmp(src, ".")==0) return src; if (strcmp(src, "./")==0) return src; first=src[0]=='/'; last=src[0]&&src[strlen(src)-1]=='/'; items=g_strsplit(src, "/", 0); if (!items) return src; gs=g_string_sized_new(strlen(src)); g_free(src); src=NULL; if (first) g_string_append_c(gs, '/'); for (i=0; items[i]; i++){ if (strcmp(items[i], ".")==0){ continue; } if (items[i+1] && strcmp(items[i+1], "..")==0){ i++; continue; } if (strlen(items[i])==0) continue; g_string_append(gs, items[i]); if (items[i+1]) g_string_append_c(gs, '/'); } if (last && (!gs->str[0] || (gs->str[0] && gs->str[strlen(gs->str)-1]!='/'))) g_string_append_c(gs, '/'); c=g_strdup(gs->str); g_string_free(gs, TRUE); g_strfreev(items); return c; } void menu_runmode(cba_t cba){ runmode(1); } void menu_spmode(cba_t cba){ runmode(0); } void runmode(int run){ if (!ctest) return; ctest->runmode = run; } int cq_remains_run(void){ int remains; struct timeval tv; gettimeofday(&tv, NULL); switch (gses->extcq){ case EC_ODD: remains = 120000 - ((tv.tv_sec % 120) * 1000 + tv.tv_usec / 1000); if (remains < 60000) remains = 0; else remains -= 60000; break; case EC_EVEN: remains = 120000 - ((tv.tv_sec % 120) * 1000 + tv.tv_usec / 1000); if (remains >= 60000) remains = 0; break; case EC_1ST: remains = 60000 - ((tv.tv_sec % 60) * 1000 + tv.tv_usec / 1000); if (remains >= 30000) remains = 0; break; case EC_2ND: remains = 60000 - ((tv.tv_sec % 60) * 1000 + tv.tv_usec / 1000); if (remains < 30000) remains = 0; else remains -= 30000; break; default: remains = 0; break; } return remains; } int cq_remains_brk(void){ int remains; struct timeval tv; gettimeofday(&tv, NULL); switch (gses->extcq){ case EC_ODD: remains = 120000 - ((tv.tv_sec % 120) * 1000 + tv.tv_usec / 1000); break; case EC_EVEN: remains = 120000 - ((tv.tv_sec % 120) * 1000 + tv.tv_usec / 1000); if (remains >= 60000) remains -= 60000; else remains += 60000; break; case EC_1ST: remains = 60000 - ((tv.tv_sec % 60) * 1000 + tv.tv_usec / 1000); if (remains >= 30000) remains -= 30000; else remains += 30000; break; case EC_2ND: remains = 60000 - ((tv.tv_sec % 60) * 1000 + tv.tv_usec / 1000); break; default: remains = 0; break; } return remains; } static int ac_cq_i1 = 0; static int ac_cq_i2 = 0; static char *ac_txts[] = { "$C $MC", "$MR", "$MN", "$MR $MN", "$MW", "RRRR 73", NULL }; void ac_cq3(cba_t cba){ enum extcq conv[4] = {EC_1ST, EC_2ND, EC_ODD, EC_EVEN}; //log_addf("ac_cq3 %d", cba.int_); ac_cq_i2 = (int)GETCBA(cba, int_); if (!gses) return; gses->extcq = conv[(int)GETCBA(cba, int_)]; gses->ac_cq->cw_str = ac_txts[ac_cq_i1]; cq_run_by_number(-1); } void ac_cq2(cba_t cba){ struct menu_item *mi = NULL; //log_addf("ac_cq2 %d", cba.int_); ac_cq_i1 = (int)GETCBA(cba, int_); if (!(mi = new_menu(1))) return; add_to_menu(&mi,CTEXT(T_1ST), CTEXT(T_HK_1ST), CTEXT(T_HK_1ST), MENU_FUNC ac_cq3, (cba_t)0, 0); add_to_menu(&mi,CTEXT(T_2ND), CTEXT(T_HK_2ND), CTEXT(T_HK_2ND), MENU_FUNC ac_cq3, (cba_t)1, 0); add_to_menu(&mi,CTEXT(T_ODD), CTEXT(T_HK_ODD), CTEXT(T_HK_ODD), MENU_FUNC ac_cq3, (cba_t)2, 0); add_to_menu(&mi,CTEXT(T_EVEN), CTEXT(T_HK_EVEN), CTEXT(T_HK_EVEN), MENU_FUNC ac_cq3, (cba_t)3, 0); do_menu_selected(mi, CBA0, ac_cq_i2); } void ac_cq(void){ struct menu_item *mi = NULL; int i, max=0; if (!(mi = new_menu(3))) return; for (i=0; ac_txts[i]!=NULL; i++){ add_to_menu(&mi,stracpy(ac_txts[i]),"", "", MENU_FUNC ac_cq2, (cba_t)i, 0); if (strlen(ac_txts[i])>max) max = strlen(ac_txts[i]); } set_window_ptr(gses->win, (term->x-max)/2,(term->y-2-i)/2); do_menu_selected(mi, CBA0, ac_cq_i1); } tucnak2-2.48/src/ghash.c0000644000175000017500000002212511567373656012011 00000000000000/* * mofified for Tucnak Jun 22, 2006 * * */ /* GLIB - Library of useful routines for C programming * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /* * Modified by the GLib Team and others 1997-1999. See the AUTHORS * file for a list of people on the GLib Team. See the ChangeLog * files for a list of changes. These files are distributed with * GLib at ftp://ftp.gtk.org/pub/gtk/. */ /* * MT safe */ #include "header.h" #define HASH_TABLE_MIN_SIZE 11 #define HASH_TABLE_MAX_SIZE 13845163 static void t_hash_table_resize (THashTable *hash_table); static THashNode** t_hash_table_lookup_node (THashTable *hash_table, gconstpointer key); static THashNode* t_hash_node_new (gpointer key, gpointer value); static void t_hash_node_destroy (THashNode *hash_node); static void t_hash_nodes_destroy (THashNode *hash_node); //G_LOCK_DEFINE_STATIC (t_hash_global); static GMutex *t_hash_global_mutex; #ifdef LEAK_DEBUG_LIST char *t_hash_global_file; int t_hash_global_line; #endif static GMemChunk *node_mem_chunk = NULL; static THashNode *node_free_list = NULL; void init_ghash(void){ t_hash_global_mutex = g_mutex_new(); } void free_ghash(void){ g_mutex_free(t_hash_global_mutex); } THashTable* t_hash_table_new (GHashFunc hash_func, GCompareFunc key_compare_func) { THashTable *hash_table; guint i; hash_table = g_new (THashTable, 1); hash_table->size = HASH_TABLE_MIN_SIZE; hash_table->nnodes = 0; hash_table->frozen = FALSE; hash_table->hash_func = hash_func ? hash_func : g_direct_hash; hash_table->key_compare_func = key_compare_func; hash_table->nodes = g_new (THashNode*, hash_table->size); for (i = 0; i < hash_table->size; i++) hash_table->nodes[i] = NULL; return hash_table; } void t_hash_table_destroy (THashTable *hash_table) { guint i; g_return_if_fail (hash_table != NULL); for (i = 0; i < hash_table->size; i++) t_hash_nodes_destroy (hash_table->nodes[i]); g_free (hash_table->nodes); g_free (hash_table); } static inline THashNode** t_hash_table_lookup_node (THashTable *hash_table, gconstpointer key) { THashNode **node; node = &hash_table->nodes [(* hash_table->hash_func) (key) % hash_table->size]; /* Hash table lookup needs to be fast. * We therefore remove the extra conditional of testing * whether to call the key_compare_func or not from * the inner loop. */ if (hash_table->key_compare_func) while (*node && !(*hash_table->key_compare_func) ((*node)->key, key)) node = &(*node)->next; else while (*node && (*node)->key != key) node = &(*node)->next; return node; } gpointer t_hash_table_lookup (THashTable *hash_table, gconstpointer key) { THashNode *node; g_return_val_if_fail (hash_table != NULL, NULL); node = *t_hash_table_lookup_node (hash_table, key); return node ? node->value : NULL; } void t_hash_table_insert (THashTable *hash_table, gpointer key, gpointer value) { THashNode **node; g_return_if_fail (hash_table != NULL); node = t_hash_table_lookup_node (hash_table, key); if (*node) { /* do not reset node->key in this place, keeping * the old key might be intended. * a t_hash_table_remove/t_hash_table_insert pair * can be used otherwise. * * node->key = key; */ (*node)->value = value; } else { *node = t_hash_node_new (key, value); hash_table->nnodes++; if (!hash_table->frozen) t_hash_table_resize (hash_table); } } void t_hash_table_remove (THashTable *hash_table, gconstpointer key) { THashNode **node, *dest; g_return_if_fail (hash_table != NULL); node = t_hash_table_lookup_node (hash_table, key); if (*node) { dest = *node; (*node) = dest->next; t_hash_node_destroy (dest); hash_table->nnodes--; if (!hash_table->frozen) t_hash_table_resize (hash_table); } } gboolean t_hash_table_lookup_extended (THashTable *hash_table, gconstpointer lookup_key, gpointer *orig_key, gpointer *value) { THashNode *node; g_return_val_if_fail (hash_table != NULL, FALSE); node = *t_hash_table_lookup_node (hash_table, lookup_key); if (node) { if (orig_key) *orig_key = node->key; if (value) *value = node->value; return TRUE; } else return FALSE; } /*static void t_hash_table_freeze (THashTable *hash_table) { g_return_if_fail (hash_table != NULL); hash_table->frozen++; } static void t_hash_table_thaw (THashTable *hash_table) { g_return_if_fail (hash_table != NULL); if (hash_table->frozen) if (!(--hash_table->frozen)) t_hash_table_resize (hash_table); } */ guint t_hash_table_foreach_remove (THashTable *hash_table, GHRFunc func, gpointer user_data) { THashNode *node, *prev; guint i; guint deleted = 0; g_return_val_if_fail (hash_table != NULL, 0); g_return_val_if_fail (func != NULL, 0); for (i = 0; i < hash_table->size; i++) { restart: prev = NULL; for (node = hash_table->nodes[i]; node; prev = node, node = node->next) { if ((* func) (node->key, node->value, user_data)) { deleted += 1; hash_table->nnodes -= 1; if (prev) { prev->next = node->next; t_hash_node_destroy (node); node = prev; } else { hash_table->nodes[i] = node->next; t_hash_node_destroy (node); goto restart; } } } } if (!hash_table->frozen) t_hash_table_resize (hash_table); return deleted; } void t_hash_table_foreach (THashTable *hash_table, GHFunc func, gpointer user_data) { THashNode *node; gint i; g_return_if_fail (hash_table != NULL); g_return_if_fail (func != NULL); for (i = 0; i < hash_table->size; i++) for (node = hash_table->nodes[i]; node; node = node->next) (* func) (node->key, node->value, user_data); } /* Returns the number of elements contained in the hash table. */ guint t_hash_table_size (THashTable *hash_table) { g_return_val_if_fail (hash_table != NULL, 0); return hash_table->nnodes; } static void t_hash_table_resize (THashTable *hash_table) { THashNode **new_nodes; THashNode *node; THashNode *next; gfloat nodes_per_list; guint hash_val; gint new_size; gint i; nodes_per_list = (gfloat) hash_table->nnodes / (gfloat) hash_table->size; if ((nodes_per_list > 0.3 || hash_table->size <= HASH_TABLE_MIN_SIZE) && (nodes_per_list < 3.0 || hash_table->size >= HASH_TABLE_MAX_SIZE)) return; new_size = CLAMP(g_spaced_primes_closest (hash_table->nnodes), HASH_TABLE_MIN_SIZE, HASH_TABLE_MAX_SIZE); new_nodes = g_new0 (THashNode*, new_size); for (i = 0; i < hash_table->size; i++) for (node = hash_table->nodes[i]; node; node = next) { next = node->next; hash_val = (* hash_table->hash_func) (node->key) % new_size; node->next = new_nodes[hash_val]; new_nodes[hash_val] = node; } g_free (hash_table->nodes); hash_table->nodes = new_nodes; hash_table->size = new_size; } static THashNode* t_hash_node_new (gpointer key, gpointer value) { THashNode *hash_node; //G_LOCK (t_hash_global); MUTEX_LOCK(t_hash_global); if (node_free_list) { hash_node = node_free_list; node_free_list = node_free_list->next; } else { if (!node_mem_chunk) node_mem_chunk = g_mem_chunk_new ("hash node mem chunk", sizeof (THashNode), 1024, G_ALLOC_ONLY); hash_node = g_chunk_new (THashNode, node_mem_chunk); } //G_UNLOCK (t_hash_global); MUTEX_UNLOCK (t_hash_global); hash_node->key = key; hash_node->value = value; hash_node->next = NULL; return hash_node; } static void t_hash_node_destroy (THashNode *hash_node) { //G_LOCK (t_hash_global); MUTEX_LOCK (t_hash_global); hash_node->next = node_free_list; node_free_list = hash_node; //G_UNLOCK (t_hash_global); MUTEX_UNLOCK (t_hash_global); } static void t_hash_nodes_destroy (THashNode *hash_node) { if (hash_node) { THashNode *node = hash_node; while (node->next) node = node->next; //G_LOCK (t_hash_global); MUTEX_LOCK (t_hash_global); node->next = node_free_list; node_free_list = hash_node; //G_UNLOCK (t_hash_global); MUTEX_UNLOCK (t_hash_global); } } tucnak2-2.48/src/soundwrapper.c0000644000175000017500000000440611727331274013436 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "../config.h" #include #include #include #include #include #ifdef HAVE_SYS_IOCTL_H #include #endif #ifdef HAVE_SYS_KD_H #include #endif #include #include #include #ifdef KIOCSOUND int main(int argc, char *argv[]){ int ret, fd, freq, arg; fd=open("/dev/console", O_WRONLY|O_SYNC); if (fd<0) { fprintf(stderr, "Can't open /dev/console, error %d %s\n", errno, strerror(errno)); return 1; } if (argc > 1){ freq = atoi(argv[1]); if (freq){ arg=1193180/freq; printf("%d\n", 1193180/arg); }else arg=0; ret=ioctl(fd, KIOCSOUND, arg); if (ret){ close(fd); fprintf(stderr, "Can't run IOCTL KIOCSOUND, error %d %s\n", errno, strerror(errno)); return 1; } close(fd); return 0; } while(1){ ret=read(0, &freq, sizeof(freq)); if (ret!=sizeof(freq)){ close(fd); if (ret>0) fprintf(stderr, "Can't read %d bytes from /dev/console (only %d), error %d %s\n", (int)sizeof(freq), ret, errno, strerror(errno)); return 1; } if (freq==-1) break; if ((freq!=0 && freq<50) || freq>20000) continue; if (freq) arg=1193180/freq; else arg=0; ret=ioctl(fd, KIOCSOUND, arg); if (ret){ close(fd); fprintf(stderr, "Can't run IOCTL KIOCSOUND, error %d %s\n", errno, strerror(errno)); return 1; } } close(fd); return 0; } #else #ifdef WIN32 #include int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ main(0, NULL); } #endif int main(int argc, char *argv[]){ fprintf(stderr, "ioctl(KIOCSOUND) not supported on this system\n"); return 0; } #endif tucnak2-2.48/src/report.c0000644000175000017500000000663511567373656012242 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" int write_report(struct band *b, struct config_band *confb, FILE *f){ int year, month, day, date; char s[24]; GString *gs; int ret=0; gs = g_string_sized_new(1000); date = b->stats->first_date; day = date%100; month = (date/100)%100; year = (date/10000)%10000; g_string_sprintfa(gs, "s OK1KPA\n"); g_string_sprintfa(gs, "Hlaseni ze zavodu %s %d/%d %s\n", ctest->tname, month, year, uc(safe_strncpy0(s, ctest->pcall, 21))); g_string_sprintfa(gs, "\n\n"); g_string_sprintfa(gs, "Hlaseni ze zavodu %s %d/%d \n", ctest->tname, month, year); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "Hlaseni ze zavodu: %s dne %02d.%02d.%2d \n", ctest->tname, day, month, year); g_string_sprintfa(gs, "Kategorie: %s (%s %s)\n", b->psect ? confb->ok_section_single : confb->ok_section_multi, b->pband, b->psect ? "Single" : "Multi"); g_string_sprintfa(gs, "Znacka v zavode: %s \n", uc(safe_strncpy0(s, ctest->pcall, 21))); g_string_sprintfa(gs, "Lokator: %s \n", uc(safe_strncpy0(s, ctest->pwwlo, 7))); g_string_sprintfa(gs, "Pocet platnych spojeni: %d \n", b->stats->nqsos); g_string_sprintfa(gs, "Pocet bodu za spojeni: %d \n", b->stats->nqsop); g_string_sprintfa(gs, "Pocet nasobicu: %d \n", g_hash_table_size(b->stats->wwls)); g_string_sprintfa(gs, "Vysledek: %d \n", b->stats->ntotal); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "Prohlasuji, ze jsem dodrzel(a) podminky zavodu, \n"); g_string_sprintfa(gs, "uvedeny vysledek odpovida skutecnosti. \n"); g_string_sprintfa(gs, "%30s\n", ctest->pcall); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "/ack\n"); g_string_sprintfa(gs, "/ex\n"); if (fprintf(f, "%s", gs->str) != gs->len) ret=1; g_string_free(gs, TRUE); return ret; } int export_all_bands_report(){ struct band *band; struct config_band *confb; int i, err; gchar *filename; FILE *f; char callbuf[20]; if (!ctest) return -1; for (i=0; ibands->len; i++){ band = g_ptr_array_index(ctest->bands, i); confb = get_config_band_by_bandchar(band->bandchar); stats_thread_join(band); if (band->stats->nqsos <=0) continue; filename = g_strdup_printf("%s/%s%s.txt", ctest->directory, band->psect ? confb->ok_section_single : confb->ok_section_multi, uc(get_raw_call(callbuf,ctest->pcall))); f=fopen(filename,"wt"); if (!f) { log_addf(VTEXT(T_CANT_WRITE_S), filename); errbox(VTEXT(T_CANT_WRITE), errno); g_free(filename); return -1; } err=write_report(band,confb,f); fclose(f); if (err) { log_addf(VTEXT(T_CANT_WRITE_S), filename); errbox(VTEXT(T_CANT_WRITE), 0); g_free(filename); return -1; } log_addf(VTEXT(T_SAVED_S), filename); g_free(filename); } return 0; } tucnak2-2.48/src/httpd.c0000644000175000017500000002677511567373656012061 00000000000000/* httpd.c - Contest progress displayed via http Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" struct httpd *httpd; struct httpd *init_httpd(void){ struct httpd *httpd; struct sockaddr_in sin; dbg("init_httpd\n"); httpd = g_new0(struct httpd, 1); httpd->port = 9862; // TODO httpd->sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); #ifndef WIN32 { int on; on=1; if (setsockopt(net->tcpsock, SOL_SOCKET, SO_REUSEADDR, SO4 &on, sizeof(on))){ trace(cfg->trace_sock, "Can't set SO_REUSEADDR\n"); goto x; } } #endif if (fcntl(httpd->sock, F_SETFL, O_NONBLOCK)){ trace(cfg->trace_sock, "Can't set O_NONBLOCK\n"); goto x; } memset(&sin, 0, sizeof(struct sockaddr_in)); sin.sin_family = AF_INET; sin.sin_port = htons(httpd->port); sin.sin_addr.s_addr = INADDR_ANY; if (bind(httpd->sock, (struct sockaddr *)&sin, sizeof(sin))) { trace(cfg->trace_sock, "Can't bind port %d, error %d\n", httpd->port, sock_errno); goto x; } if (listen(httpd->sock, 10)){ trace(cfg->trace_sock, "Can't listen on socket %d, tcp port %d \n", httpd->sock, httpd->port); goto x; } set_handlers(httpd->sock, httpd_accept_handler, NULL, NULL, CBA0); httpd->conns = g_ptr_array_new(); dbg("httpd active\n"); return httpd; x:; closesocket(httpd->sock); httpd->sock = -1; return httpd; } void free_httpd(struct httpd *httpd){ closesocket(httpd->sock); g_free(httpd); } void free_httpconn(struct httpconn *conn){ if (conn->sock >= 0) { set_handlers(conn->sock, NULL, NULL, NULL, CBA0); closesocket(conn->sock); } g_string_free(conn->request, TRUE); g_string_free(conn->response, TRUE); g_free(conn); } void httpd_accept_handler(cba_t cba){ int sock; struct sockaddr_in sin; socklen_t socklen; struct httpconn *conn; socklen = sizeof(sin); sock = accept(httpd->sock, (struct sockaddr *)&sin, &socklen); if (!socklen || sock<0) return; trace(cfg->trace_sock, "Accepted socket %d %s:%d\n", sock, inet_ntoa(sin.sin_addr), ntohs(sin.sin_port)); conn = g_new0(struct httpconn, 1); /*conn->sin.sin_family = AF_INET; conn->sin.sin_addr.s_addr = sin.sin_addr.s_addr; conn->sin.sin_port = sin.sin_port;*/ conn->sock = sock; conn->request = g_string_sized_new(500); conn->response = g_string_sized_new(500); set_handlers(conn->sock, httpd_read_handler, NULL, NULL, (cba_t)conn); g_ptr_array_add(httpd->conns, conn); } void httpd_read_handler(cba_t cba){ struct httpconn *conn; char s[1030], *c, lf; int ret, err; conn = (struct httpconn*)GETCBA(cba, conn); ret = read(conn->sock, s, 1024); err=sock_errno; if (ret <= 0){ dbg("http read error\n"); g_ptr_array_remove(httpd->conns, conn); free_httpconn(conn); return; } s[ret] = '\0'; g_string_append(conn->request, s); lf = 0; for (c = conn->request->str; *c != '\0'; c++){ if (*c == '\r') continue; if (*c != '\n') { lf = 0; continue; } lf++; if (lf < 2) continue; break; } if (lf < 2) return; dbg("http request: >>>%s<<<\n", conn->request->str); if (strncasecmp(conn->request->str, "GET ", 4) == 0){ httpd_get(conn); }else{ httpd_header(conn, 400); g_string_sprintf(conn->response, "Bad request"); } /* for (i = 0; i < 1000; i++){ g_string_append_c(conn->response, '0' + (i / 100)); }*/ set_handlers(conn->sock, NULL, httpd_write_handler, NULL, cba); } void httpd_write_handler(cba_t cba){ struct httpconn *conn; int ret, err, len; conn = (struct httpconn*)GETCBA(cba, conn); if (conn->response_mem != NULL){ len = conn->response_len; if (len > 1400) len = 1400; ret = write(conn->sock, conn->response_mem + conn->response_i, len); err = sock_errno; if (ret <= 0){ dbg("http write error\n"); g_ptr_array_remove(httpd->conns, conn); free_httpconn(conn); return; } conn->response_i += ret; conn->response_len -= ret; if (conn->response_len <= 0){ dbg("http done\n"); g_ptr_array_remove(httpd->conns, conn); free_httpconn(conn); return; } }else{ len = conn->response->len; if (len > 1400) len = 1400; ret = write(conn->sock, conn->response->str, len); err = sock_errno; if (ret <= 0){ dbg("http write error\n"); g_ptr_array_remove(httpd->conns, conn); free_httpconn(conn); return; } g_string_erase(conn->response, 0, ret); if (conn->response->len <= 0){ dbg("http done\n"); g_ptr_array_remove(httpd->conns, conn); free_httpconn(conn); return; } } } void httpd_header(struct httpconn *conn, int status){ g_string_sprintf(conn->response, "HTTP/1.1 %d Status%d\r\n", status, status); g_string_sprintfa(conn->response, "Server: Tucnak %s\r\n", PACKAGE_VERSION); g_string_sprintfa(conn->response, "Connection: close\r\n"); g_string_sprintfa(conn->response, "Content-type: text/html; charset=iso-8859-2\r\n"); g_string_sprintfa(conn->response, "\r\n"); } static void httpd_get_style_css(struct httpconn *conn){ g_string_append(conn->response, "body {\n" " font-size: 12pt;\n" /*" font-family: Tahoma, Helvetica, Arial, sans-serif}\n"*/ " font-family: Courier, Courier-new}\n" "a {\n" " font-weight: bold}\n" "h1, h2, h3, h4 {\n" " font-family: Tahoma, Helvetica, Arial, sans-serif;\n" " color: #f8f8f8};\n" "h2 {\n" " margin-top: 20;\n" " margin-bottom: 5;\n" " margin-left:10 }\n" /* input { padding: 2px; margin: 2px; font-weight: normal; font-size: 12px; color: #000000; font-family: sans-serif} li { margin-bottom: 20px } p.stress{ font-style: italic} */ "table.qsos {\n" " border: black 2px solid;\n" " padding: 5px;\n" " background: #606060}\n" "th {\n" " padding-left: 5px;\n" " padding-right: 5px}\n" "td {\n" " padding-left: 5px;\n" " padding-right: 5px}\n" ); } static void httpd_get_mem(struct httpconn *conn, const unsigned char *mem, int len){ conn->response_mem = (char *)mem; conn->response_len = len; conn->response_i = 0; } static void httpd_get_index(struct httpconn *conn){ GString *gs2, *title; int i; GString *gs = conn->response; httpd_header(conn, 200); if (!ctest){ html_header(conn->response, "No contest", HTML_ICON); g_string_sprintfa(conn->response, "

No contest opened

\n"); html_footer(conn->response); return; } gs2 = g_string_sized_new(1024); title = g_string_sized_new(200); zg_string_eprintfa("h", title, "%S - %s", ctest->pcall, ctest->tname); html_header(gs, title->str, HTML_ICON); g_string_sprintfa(gs, "Complete report
\n"); for (i = 0; i < ctest->bands->len; i++){ struct band *b; b = (struct band*)g_ptr_array_index(ctest->bands, i); zg_string_eprintfa("h", gs, "

Band %s

\n", b->bandchar, b->bandname); g_string_sprintfa(gs, "

QSOs: %d
\n", b->stats->nqsos); g_string_sprintfa(gs, "Points: %d
\n", b->stats->ntotal); g_string_sprintfa(gs, "WWLs: %d
\n", g_hash_table_size(b->stats->wwls)); g_string_sprintfa(gs, "DXCCs: %d
\n", g_hash_table_size(b->stats->dxcs)); if (b->stats->nqsos){ g_string_sprintfa(gs, "AVG: %5.2f pts/qso
\n", (double)b->stats->ntotal/(double)b->stats->nqsos); } if (b->stats->odxcall){ zg_string_eprintfa("h", gs, "ODX: %S %S %d km op %S
\n", b->stats->odxcall, b->stats->odxwwl, b->stats->odxqrb_int, b->stats->odxoperator); } g_string_sprintfa(gs, "Statistics\n", b->bandchar); g_string_sprintfa(gs, "QSOs
\n", b->bandchar); g_string_sprintfa(gs, "

\n"); } html_footer(conn->response); g_string_free(gs2, TRUE); g_string_free(title, TRUE); } void httpd_get_stats(struct httpconn *conn, const char *bandchar_str){ int i; struct band *b; httpd_header(conn, 200); if (!ctest){ html_header(conn->response, "No contest", HTML_ICON); g_string_sprintfa(conn->response, "

No contest opened

\n"); html_footer(conn->response); return; } b = find_band_by_bandchar(bandchar_str[0]); if (!b){ html_header(conn->response, "Band not found", HTML_ICON); g_string_sprintfa(conn->response, "

Band %c not found

", bandchar_str[0]); html_footer(conn->response); return; } html_header(conn->response, "Statistics", HTML_ICON); g_string_sprintfa(conn->response, "
");
	for (i = 0; i < b->statsfifo1->items->len ; i++){
		char *s = (char*)g_ptr_array_index(b->statsfifo1->items, i);
		g_string_sprintfa(conn->response, "%s\n", s);
	}
    g_string_sprintfa(conn->response, "
"); html_footer(conn->response); } void httpd_get_qsos(struct httpconn *conn, const char *bandchar_str){ struct band *b; struct config_band *confb; httpd_header(conn, 200); if (!ctest){ html_header(conn->response, "No contest", HTML_ICON); g_string_sprintfa(conn->response, "

No contest opened

\n"); html_footer(conn->response); return; } b = find_band_by_bandchar(bandchar_str[0]); confb = get_config_band_by_bandchar(bandchar_str[0]); if (!b || !confb){ html_header(conn->response, "Band not found", HTML_ICON); g_string_sprintfa(conn->response, "

Band %c not found

", bandchar_str[0]); html_footer(conn->response); return; } html_header(conn->response, "QSOs", HTML_ICON); html_band_header(conn->response, b, confb, HTML_ICON, NULL, NULL); html_qsos(conn->response, b, confb); html_band_footer(conn->response); html_footer(conn->response); } void httpd_get_complete(struct httpconn *conn){ httpd_header(conn, 200); if (!ctest){ html_header(conn->response, "No contest", HTML_ICON); g_string_sprintfa(conn->response, "

No contest opened

\n"); html_footer(conn->response); return; } html_complete(conn->response, HTML_IMG_ROOT); } void httpd_get(struct httpconn *conn){ char *c, *page, *tmp, *page0, *page1/*, *page2*/; tmp = NULL; page = conn->request->str + strlen("GET") + 1; while (*page == ' ') page++; c = strchr(page, ' '); if (c != NULL) *c = '\0'; if (strcmp(page, "/") == 0){ httpd_get_index(conn); return; } page0 = strtok_r(page, "/", &tmp); page1 = strtok_r(NULL, "/", &tmp); //page2 = strtok_r(NULL, "/", &tmp); if (strcmp(page0, "style.css") == 0){ httpd_get_style_css(conn); }else if (strcmp(page0, "tucnak64.png") == 0){ httpd_get_mem(conn, icon_tucnak64, sizeof(icon_tucnak64)); }else if (strcmp(page0, "stats") == 0){ httpd_get_stats(conn, page1); }else if (strcmp(page0, "qsos") == 0){ httpd_get_qsos(conn, page1); }else if (strcmp(page0, "complete") == 0){ httpd_get_complete(conn); // }else if (strncmp(page0, "map") == 0){ // httpd_get_complete(conn, ); }else{ httpd_get_index(conn); } } tucnak2-2.48/src/regexec.c0000644000175000017500000037232511567373656012353 00000000000000/* Extended regular expression matching and search library. Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags, int n) internal_function; static void match_ctx_clean (re_match_context_t *mctx) internal_function; static void match_ctx_free (re_match_context_t *cache) internal_function; static reg_errcode_t match_ctx_add_entry (re_match_context_t *cache, int node, int str_idx, int from, int to) internal_function; static int search_cur_bkref_entry (const re_match_context_t *mctx, int str_idx) internal_function; static reg_errcode_t match_ctx_add_subtop (re_match_context_t *mctx, int node, int str_idx) internal_function; static re_sub_match_last_t * match_ctx_add_sublast (re_sub_match_top_t *subtop, int node, int str_idx) internal_function; static void sift_ctx_init (re_sift_context_t *sctx, re_dfastate_t **sifted_sts, re_dfastate_t **limited_sts, int last_node, int last_str_idx) internal_function; static reg_errcode_t re_search_internal (const regex_t *preg, const char *string, int length, int start, int range, int stop, size_t nmatch, regmatch_t pmatch[], int eflags) internal_function; static int re_search_2_stub (struct re_pattern_buffer *bufp, const char *string1, int length1, const char *string2, int length2, int start, int range, struct re_registers *regs, int stop, int ret_len) internal_function; static int re_search_stub (struct re_pattern_buffer *bufp, const char *string, int length, int start, int range, int stop, struct re_registers *regs, int ret_len) internal_function; static unsigned re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, int nregs, int regs_allocated) internal_function; static reg_errcode_t prune_impossible_nodes (re_match_context_t *mctx) internal_function; static int check_matching (re_match_context_t *mctx, int fl_longest_match, int *p_match_first) internal_function; static int check_halt_state_context (const re_match_context_t *mctx, const re_dfastate_t *state, int idx) internal_function; static void update_regs (const re_dfa_t *dfa, regmatch_t *pmatch, regmatch_t *prev_idx_match, int cur_node, int cur_idx, int nmatch) internal_function; static reg_errcode_t push_fail_stack (struct re_fail_stack_t *fs, int str_idx, int dest_node, int nregs, regmatch_t *regs, re_node_set *eps_via_nodes) internal_function; static reg_errcode_t set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch, regmatch_t *pmatch, int fl_backtrack) internal_function; static reg_errcode_t free_fail_stack_return (struct re_fail_stack_t *fs) internal_function; #ifdef RE_ENABLE_I18N static int sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx, int node_idx, int str_idx, int max_str_idx) internal_function; #endif /* RE_ENABLE_I18N */ static reg_errcode_t sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx) internal_function; static reg_errcode_t build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx, int str_idx, re_node_set *cur_dest) internal_function; static reg_errcode_t update_cur_sifted_state (const re_match_context_t *mctx, re_sift_context_t *sctx, int str_idx, re_node_set *dest_nodes) internal_function; static reg_errcode_t add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes, const re_node_set *candidates) internal_function; static int check_dst_limits (const re_match_context_t *mctx, re_node_set *limits, int dst_node, int dst_idx, int src_node, int src_idx) internal_function; static int check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries, int subexp_idx, int from_node, int bkref_idx) internal_function; static int check_dst_limits_calc_pos (const re_match_context_t *mctx, int limit, int subexp_idx, int node, int str_idx, int bkref_idx) internal_function; static reg_errcode_t check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes, const re_node_set *candidates, re_node_set *limits, struct re_backref_cache_entry *bkref_ents, int str_idx) internal_function; static reg_errcode_t sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx, int str_idx, const re_node_set *candidates) internal_function; static reg_errcode_t merge_state_array (const re_dfa_t *dfa, re_dfastate_t **dst, re_dfastate_t **src, int num) internal_function; static re_dfastate_t *find_recover_state (reg_errcode_t *err, re_match_context_t *mctx) internal_function; static re_dfastate_t *transit_state (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *state) internal_function; static re_dfastate_t *merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *next_state) internal_function; static reg_errcode_t check_subexp_matching_top (re_match_context_t *mctx, re_node_set *cur_nodes, int str_idx) internal_function; #if 0 static re_dfastate_t *transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *pstate) internal_function; #endif #ifdef RE_ENABLE_I18N static reg_errcode_t transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate) internal_function; #endif /* RE_ENABLE_I18N */ static reg_errcode_t transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes) internal_function; static reg_errcode_t get_subexp (re_match_context_t *mctx, int bkref_node, int bkref_str_idx) internal_function; static reg_errcode_t get_subexp_sub (re_match_context_t *mctx, const re_sub_match_top_t *sub_top, re_sub_match_last_t *sub_last, int bkref_node, int bkref_str) internal_function; static int find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes, int subexp_idx, int type) internal_function; static reg_errcode_t check_arrival (re_match_context_t *mctx, state_array_t *path, int top_node, int top_str, int last_node, int last_str, int type) internal_function; static reg_errcode_t check_arrival_add_next_nodes (re_match_context_t *mctx, int str_idx, re_node_set *cur_nodes, re_node_set *next_nodes) internal_function; static reg_errcode_t check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes, int ex_subexp, int type) internal_function; static reg_errcode_t check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes, int target, int ex_subexp, int type) internal_function; static reg_errcode_t expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes, int cur_str, int subexp_num, int type) internal_function; static int build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) internal_function; #ifdef RE_ENABLE_I18N static int check_node_accept_bytes (const re_dfa_t *dfa, int node_idx, const re_string_t *input, int idx) internal_function; # ifdef _LIBC static unsigned int find_collation_sequence_value (const unsigned char *mbs, size_t name_len) internal_function; # endif /* _LIBC */ #endif /* RE_ENABLE_I18N */ static int group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, re_node_set *states_node, bitset_t *states_ch) internal_function; static int check_node_accept (const re_match_context_t *mctx, const re_token_t *node, int idx) internal_function; static reg_errcode_t extend_buffers (re_match_context_t *mctx) internal_function; /* Entry point for POSIX code. */ /* regexec searches for a given pattern, specified by PREG, in the string STRING. If NMATCH is zero or REG_NOSUB was set in the cflags argument to `regcomp', we ignore PMATCH. Otherwise, we assume PMATCH has at least NMATCH elements, and we set them to the offsets of the corresponding matched substrings. EFLAGS specifies `execution flags' which affect matching: if REG_NOTBOL is set, then ^ does not match at the beginning of the string; if REG_NOTEOL is set, then $ does not match at the end. We return 0 if we find a match and REG_NOMATCH if not. */ int regexec (const regex_t *__restrict preg, const char *__restrict string, size_t nmatch, regmatch_t pmatch[], int eflags) { reg_errcode_t err; int start, length; re_dfa_t *dfa = (re_dfa_t *) preg->buffer; if (eflags & ~(REG_NOTBOL | REG_NOTEOL | REG_STARTEND)) return REG_BADPAT; if (eflags & REG_STARTEND) { start = pmatch[0].rm_so; length = pmatch[0].rm_eo; } else { start = 0; length = strlen (string); } __libc_lock_lock (dfa->lock); if (preg->no_sub) err = re_search_internal (preg, string, length, start, length - start, length, 0, NULL, eflags); else err = re_search_internal (preg, string, length, start, length - start, length, nmatch, pmatch, eflags); __libc_lock_unlock (dfa->lock); return err != REG_NOERROR; } #ifdef _LIBC # include versioned_symbol (libc, __regexec, regexec, GLIBC_2_3_4); # if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4) __typeof__ (__regexec) __compat_regexec; int attribute_compat_text_section __compat_regexec (const regex_t *__restrict preg, const char *__restrict string, size_t nmatch, regmatch_t pmatch[], int eflags) { return regexec (preg, string, nmatch, pmatch, eflags & (REG_NOTBOL | REG_NOTEOL)); } compat_symbol (libc, __compat_regexec, regexec, GLIBC_2_0); # endif #endif /* Entry points for GNU code. */ /* re_match, re_search, re_match_2, re_search_2 The former two functions operate on STRING with length LENGTH, while the later two operate on concatenation of STRING1 and STRING2 with lengths LENGTH1 and LENGTH2, respectively. re_match() matches the compiled pattern in BUFP against the string, starting at index START. re_search() first tries matching at index START, then it tries to match starting from index START + 1, and so on. The last start position tried is START + RANGE. (Thus RANGE = 0 forces re_search to operate the same way as re_match().) The parameter STOP of re_{match,search}_2 specifies that no match exceeding the first STOP characters of the concatenation of the strings should be concerned. If REGS is not NULL, and BUFP->no_sub is not set, the offsets of the match and all groups is stroed in REGS. (For the "_2" variants, the offsets are computed relative to the concatenation, not relative to the individual strings.) On success, re_match* functions return the length of the match, re_search* return the position of the start of the match. Return value -1 means no match was found and -2 indicates an internal error. */ int re_match (struct re_pattern_buffer *bufp, const char *string, int length, int start, struct re_registers *regs) { return re_search_stub (bufp, string, length, start, 0, length, regs, 1); } #ifdef _LIBC weak_alias (__re_match, re_match) #endif int re_search (struct re_pattern_buffer *bufp, const char *string, int length, int start, int range, struct re_registers *regs) { return re_search_stub (bufp, string, length, start, range, length, regs, 0); } #ifdef _LIBC weak_alias (__re_search, re_search) #endif int re_match_2 (bufp, string1, length1, string2, length2, start, regs, stop) struct re_pattern_buffer *bufp; const char *string1, *string2; int length1, length2, start, stop; struct re_registers *regs; { return re_search_2_stub (bufp, string1, length1, string2, length2, start, 0, regs, stop, 1); } #ifdef _LIBC weak_alias (__re_match_2, re_match_2) #endif int re_search_2 (bufp, string1, length1, string2, length2, start, range, regs, stop) struct re_pattern_buffer *bufp; const char *string1, *string2; int length1, length2, start, range, stop; struct re_registers *regs; { return re_search_2_stub (bufp, string1, length1, string2, length2, start, range, regs, stop, 0); } #ifdef _LIBC weak_alias (__re_search_2, re_search_2) #endif static int re_search_2_stub (bufp, string1, length1, string2, length2, start, range, regs, stop, ret_len) struct re_pattern_buffer *bufp; const char *string1, *string2; int length1, length2, start, range, stop, ret_len; struct re_registers *regs; { const char *str; int rval; int len = length1 + length2; int free_str = 0; if (BE (length1 < 0 || length2 < 0 || stop < 0, 0)) return -2; /* Concatenate the strings. */ if (length2 > 0) if (length1 > 0) { char *s = re_malloc (char, len); if (BE (s == NULL, 0)) return -2; #ifdef _LIBC memcpy (__mempcpy (s, string1, length1), string2, length2); #else memcpy (s, string1, length1); memcpy (s + length1, string2, length2); #endif str = s; free_str = 1; } else str = string2; else str = string1; rval = re_search_stub (bufp, str, len, start, range, stop, regs, ret_len); if (free_str) re_free ((char *) str); return rval; } /* The parameters have the same meaning as those of re_search. Additional parameters: If RET_LEN is nonzero the length of the match is returned (re_match style); otherwise the position of the match is returned. */ static int re_search_stub (bufp, string, length, start, range, stop, regs, ret_len) struct re_pattern_buffer *bufp; const char *string; int length, start, range, stop, ret_len; struct re_registers *regs; { reg_errcode_t result; regmatch_t *pmatch; int nregs, rval; int eflags = 0; re_dfa_t *dfa = (re_dfa_t *) bufp->buffer; /* Check for out-of-range. */ if (BE (start < 0 || start > length, 0)) return -1; if (BE (start + range > length, 0)) range = length - start; else if (BE (start + range < 0, 0)) range = -start; __libc_lock_lock (dfa->lock); eflags |= (bufp->not_bol) ? REG_NOTBOL : 0; eflags |= (bufp->not_eol) ? REG_NOTEOL : 0; /* Compile fastmap if we haven't yet. */ if (range > 0 && bufp->fastmap != NULL && !bufp->fastmap_accurate) re_compile_fastmap (bufp); if (BE (bufp->no_sub, 0)) regs = NULL; /* We need at least 1 register. */ if (regs == NULL) nregs = 1; else if (BE (bufp->regs_allocated == REGS_FIXED && regs->num_regs < bufp->re_nsub + 1, 0)) { nregs = regs->num_regs; if (BE (nregs < 1, 0)) { /* Nothing can be copied to regs. */ regs = NULL; nregs = 1; } } else nregs = bufp->re_nsub + 1; pmatch = re_malloc (regmatch_t, nregs); if (BE (pmatch == NULL, 0)) { rval = -2; goto out; } result = re_search_internal (bufp, string, length, start, range, stop, nregs, pmatch, eflags); rval = 0; /* I hope we needn't fill ther regs with -1's when no match was found. */ if (result != REG_NOERROR) rval = -1; else if (regs != NULL) { /* If caller wants register contents data back, copy them. */ bufp->regs_allocated = re_copy_regs (regs, pmatch, nregs, bufp->regs_allocated); if (BE (bufp->regs_allocated == REGS_UNALLOCATED, 0)) rval = -2; } if (BE (rval == 0, 1)) { if (ret_len) { assert (pmatch[0].rm_so == start); rval = pmatch[0].rm_eo - start; } else rval = pmatch[0].rm_so; } re_free (pmatch); out: __libc_lock_unlock (dfa->lock); return rval; } static unsigned re_copy_regs (regs, pmatch, nregs, regs_allocated) struct re_registers *regs; regmatch_t *pmatch; int nregs, regs_allocated; { int rval = REGS_REALLOCATE; int i; int need_regs = nregs + 1; /* We need one extra element beyond `num_regs' for the `-1' marker GNU code uses. */ /* Have the register data arrays been allocated? */ if (regs_allocated == REGS_UNALLOCATED) { /* No. So allocate them with malloc. */ regs->start = re_malloc (regoff_t, need_regs); regs->end = re_malloc (regoff_t, need_regs); if (BE (regs->start == NULL, 0) || BE (regs->end == NULL, 0)) return REGS_UNALLOCATED; regs->num_regs = need_regs; } else if (regs_allocated == REGS_REALLOCATE) { /* Yes. If we need more elements than were already allocated, reallocate them. If we need fewer, just leave it alone. */ if (BE (need_regs > regs->num_regs, 0)) { regoff_t *new_start = re_realloc (regs->start, regoff_t, need_regs); regoff_t *new_end = re_realloc (regs->end, regoff_t, need_regs); if (BE (new_start == NULL, 0) || BE (new_end == NULL, 0)) return REGS_UNALLOCATED; regs->start = new_start; regs->end = new_end; regs->num_regs = need_regs; } } else { assert (regs_allocated == REGS_FIXED); /* This function may not be called with REGS_FIXED and nregs too big. */ assert (regs->num_regs >= nregs); rval = REGS_FIXED; } /* Copy the regs. */ for (i = 0; i < nregs; ++i) { regs->start[i] = pmatch[i].rm_so; regs->end[i] = pmatch[i].rm_eo; } for ( ; i < regs->num_regs; ++i) regs->start[i] = regs->end[i] = -1; return rval; } /* Set REGS to hold NUM_REGS registers, storing them in STARTS and ENDS. Subsequent matches using PATTERN_BUFFER and REGS will use this memory for recording register information. STARTS and ENDS must be allocated using the malloc library routine, and must each be at least NUM_REGS * sizeof (regoff_t) bytes long. If NUM_REGS == 0, then subsequent matches should allocate their own register data. Unless this function is called, the first search or match using PATTERN_BUFFER will allocate its own register data, without freeing the old data. */ void re_set_registers (bufp, regs, num_regs, starts, ends) struct re_pattern_buffer *bufp; struct re_registers *regs; unsigned num_regs; regoff_t *starts, *ends; { if (num_regs) { bufp->regs_allocated = REGS_REALLOCATE; regs->num_regs = num_regs; regs->start = starts; regs->end = ends; } else { bufp->regs_allocated = REGS_UNALLOCATED; regs->num_regs = 0; regs->start = regs->end = (regoff_t *) 0; } } #ifdef _LIBC weak_alias (__re_set_registers, re_set_registers) #endif /* Entry points compatible with 4.2 BSD regex library. We don't define them unless specifically requested. */ #if defined _REGEX_RE_COMP || defined _LIBC int # ifdef _LIBC weak_function # endif re_exec (s) const char *s; { return 0 == regexec (&re_comp_buf, s, 0, NULL, 0); } #endif /* _REGEX_RE_COMP */ /* Internal entry point. */ /* Searches for a compiled pattern PREG in the string STRING, whose length is LENGTH. NMATCH, PMATCH, and EFLAGS have the same mingings with regexec. START, and RANGE have the same meanings with re_search. Return REG_NOERROR if we find a match, and REG_NOMATCH if not, otherwise return the error code. Note: We assume front end functions already check ranges. (START + RANGE >= 0 && START + RANGE <= LENGTH) */ static reg_errcode_t re_search_internal (preg, string, length, start, range, stop, nmatch, pmatch, eflags) const regex_t *preg; const char *string; int length, start, range, stop, eflags; size_t nmatch; regmatch_t pmatch[]; { reg_errcode_t err; const re_dfa_t *dfa = (const re_dfa_t *) preg->buffer; int left_lim, right_lim, incr; int fl_longest_match, match_first, match_kind, match_last = -1; int extra_nmatch; int sb, ch; #if defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) re_match_context_t mctx = { .dfa = dfa }; #else re_match_context_t mctx; #endif char *fastmap = (preg->fastmap != NULL && preg->fastmap_accurate && range && !preg->can_be_null) ? preg->fastmap : NULL; RE_TRANSLATE_TYPE t = preg->translate; #if !(defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)) memset (&mctx, '\0', sizeof (re_match_context_t)); mctx.dfa = dfa; #endif extra_nmatch = (nmatch > preg->re_nsub) ? nmatch - (preg->re_nsub + 1) : 0; nmatch -= extra_nmatch; /* Check if the DFA haven't been compiled. */ if (BE (preg->used == 0 || dfa->init_state == NULL || dfa->init_state_word == NULL || dfa->init_state_nl == NULL || dfa->init_state_begbuf == NULL, 0)) return REG_NOMATCH; #ifdef DEBUG /* We assume front-end functions already check them. */ assert (start + range >= 0 && start + range <= length); #endif /* If initial states with non-begbuf contexts have no elements, the regex must be anchored. If preg->newline_anchor is set, we'll never use init_state_nl, so do not check it. */ if (dfa->init_state->nodes.nelem == 0 && dfa->init_state_word->nodes.nelem == 0 && (dfa->init_state_nl->nodes.nelem == 0 || !preg->newline_anchor)) { if (start != 0 && start + range != 0) return REG_NOMATCH; start = range = 0; } /* We must check the longest matching, if nmatch > 0. */ fl_longest_match = (nmatch != 0 || dfa->nbackref); err = re_string_allocate (&mctx.input, string, length, dfa->nodes_len + 1, preg->translate, preg->syntax & RE_ICASE, dfa); if (BE (err != REG_NOERROR, 0)) goto free_return; mctx.input.stop = stop; mctx.input.raw_stop = stop; mctx.input.newline_anchor = preg->newline_anchor; err = match_ctx_init (&mctx, eflags, dfa->nbackref * 2); if (BE (err != REG_NOERROR, 0)) goto free_return; /* We will log all the DFA states through which the dfa pass, if nmatch > 1, or this dfa has "multibyte node", which is a back-reference or a node which can accept multibyte character or multi character collating element. */ if (nmatch > 1 || dfa->has_mb_node) { mctx.state_log = re_malloc (re_dfastate_t *, mctx.input.bufs_len + 1); if (BE (mctx.state_log == NULL, 0)) { err = REG_ESPACE; goto free_return; } } else mctx.state_log = NULL; match_first = start; mctx.input.tip_context = (eflags & REG_NOTBOL) ? CONTEXT_BEGBUF : CONTEXT_NEWLINE | CONTEXT_BEGBUF; /* Check incrementally whether of not the input string match. */ incr = (range < 0) ? -1 : 1; left_lim = (range < 0) ? start + range : start; right_lim = (range < 0) ? start : start + range; sb = dfa->mb_cur_max == 1; match_kind = (fastmap ? ((sb || !(preg->syntax & RE_ICASE || t) ? 4 : 0) | (range >= 0 ? 2 : 0) | (t != NULL ? 1 : 0)) : 8); for (;; match_first += incr) { err = REG_NOMATCH; if (match_first < left_lim || right_lim < match_first) goto free_return; /* Advance as rapidly as possible through the string, until we find a plausible place to start matching. This may be done with varying efficiency, so there are various possibilities: only the most common of them are specialized, in order to save on code size. We use a switch statement for speed. */ switch (match_kind) { case 8: /* No fastmap. */ break; case 7: /* Fastmap with single-byte translation, match forward. */ while (BE (match_first < right_lim, 1) && !fastmap[t[(unsigned char) string[match_first]]]) ++match_first; goto forward_match_found_start_or_reached_end; case 6: /* Fastmap without translation, match forward. */ while (BE (match_first < right_lim, 1) && !fastmap[(unsigned char) string[match_first]]) ++match_first; forward_match_found_start_or_reached_end: if (BE (match_first == right_lim, 0)) { ch = match_first >= length ? 0 : (unsigned char) string[match_first]; if (!fastmap[t ? t[ch] : ch]) goto free_return; } break; case 4: case 5: /* Fastmap without multi-byte translation, match backwards. */ while (match_first >= left_lim) { ch = match_first >= length ? 0 : (unsigned char) string[match_first]; if (fastmap[t ? t[ch] : ch]) break; --match_first; } if (match_first < left_lim) goto free_return; break; default: /* In this case, we can't determine easily the current byte, since it might be a component byte of a multibyte character. Then we use the constructed buffer instead. */ for (;;) { /* If MATCH_FIRST is out of the valid range, reconstruct the buffers. */ unsigned int offset = match_first - mctx.input.raw_mbs_idx; if (BE (offset >= (unsigned int) mctx.input.valid_raw_len, 0)) { err = re_string_reconstruct (&mctx.input, match_first, eflags); if (BE (err != REG_NOERROR, 0)) goto free_return; offset = match_first - mctx.input.raw_mbs_idx; } /* If MATCH_FIRST is out of the buffer, leave it as '\0'. Note that MATCH_FIRST must not be smaller than 0. */ ch = (match_first >= length ? 0 : re_string_byte_at (&mctx.input, offset)); if (fastmap[ch]) break; match_first += incr; if (match_first < left_lim || match_first > right_lim) { err = REG_NOMATCH; goto free_return; } } break; } /* Reconstruct the buffers so that the matcher can assume that the matching starts from the beginning of the buffer. */ err = re_string_reconstruct (&mctx.input, match_first, eflags); if (BE (err != REG_NOERROR, 0)) goto free_return; #ifdef RE_ENABLE_I18N /* Don't consider this char as a possible match start if it part, yet isn't the head, of a multibyte character. */ if (!sb && !re_string_first_byte (&mctx.input, 0)) continue; #endif /* It seems to be appropriate one, then use the matcher. */ /* We assume that the matching starts from 0. */ mctx.state_log_top = mctx.nbkref_ents = mctx.max_mb_elem_len = 0; match_last = check_matching (&mctx, fl_longest_match, range >= 0 ? &match_first : NULL); if (match_last != -1) { if (BE (match_last == -2, 0)) { err = REG_ESPACE; goto free_return; } else { mctx.match_last = match_last; if ((!preg->no_sub && nmatch > 1) || dfa->nbackref) { re_dfastate_t *pstate = mctx.state_log[match_last]; mctx.last_node = check_halt_state_context (&mctx, pstate, match_last); } if ((!preg->no_sub && nmatch > 1 && dfa->has_plural_match) || dfa->nbackref) { err = prune_impossible_nodes (&mctx); if (err == REG_NOERROR) break; if (BE (err != REG_NOMATCH, 0)) goto free_return; match_last = -1; } else break; /* We found a match. */ } } match_ctx_clean (&mctx); } #ifdef DEBUG assert (match_last != -1); assert (err == REG_NOERROR); #endif /* Set pmatch[] if we need. */ if (nmatch > 0) { int reg_idx; /* Initialize registers. */ for (reg_idx = 1; reg_idx < nmatch; ++reg_idx) pmatch[reg_idx].rm_so = pmatch[reg_idx].rm_eo = -1; /* Set the points where matching start/end. */ pmatch[0].rm_so = 0; pmatch[0].rm_eo = mctx.match_last; if (!preg->no_sub && nmatch > 1) { err = set_regs (preg, &mctx, nmatch, pmatch, dfa->has_plural_match && dfa->nbackref > 0); if (BE (err != REG_NOERROR, 0)) goto free_return; } /* At last, add the offset to the each registers, since we slided the buffers so that we could assume that the matching starts from 0. */ for (reg_idx = 0; reg_idx < nmatch; ++reg_idx) if (pmatch[reg_idx].rm_so != -1) { #ifdef RE_ENABLE_I18N if (BE (mctx.input.offsets_needed != 0, 0)) { pmatch[reg_idx].rm_so = (pmatch[reg_idx].rm_so == mctx.input.valid_len ? mctx.input.valid_raw_len : mctx.input.offsets[pmatch[reg_idx].rm_so]); pmatch[reg_idx].rm_eo = (pmatch[reg_idx].rm_eo == mctx.input.valid_len ? mctx.input.valid_raw_len : mctx.input.offsets[pmatch[reg_idx].rm_eo]); } #else assert (mctx.input.offsets_needed == 0); #endif pmatch[reg_idx].rm_so += match_first; pmatch[reg_idx].rm_eo += match_first; } for (reg_idx = 0; reg_idx < extra_nmatch; ++reg_idx) { pmatch[nmatch + reg_idx].rm_so = -1; pmatch[nmatch + reg_idx].rm_eo = -1; } if (dfa->subexp_map) for (reg_idx = 0; reg_idx + 1 < nmatch; reg_idx++) if (dfa->subexp_map[reg_idx] != reg_idx) { pmatch[reg_idx + 1].rm_so = pmatch[dfa->subexp_map[reg_idx] + 1].rm_so; pmatch[reg_idx + 1].rm_eo = pmatch[dfa->subexp_map[reg_idx] + 1].rm_eo; } } free_return: re_free (mctx.state_log); if (dfa->nbackref) match_ctx_free (&mctx); re_string_destruct (&mctx.input); return err; } static reg_errcode_t prune_impossible_nodes (mctx) re_match_context_t *mctx; { const re_dfa_t *const dfa = mctx->dfa; int halt_node, match_last; reg_errcode_t ret; re_dfastate_t **sifted_states; re_dfastate_t **lim_states = NULL; re_sift_context_t sctx; #ifdef DEBUG assert (mctx->state_log != NULL); #endif match_last = mctx->match_last; halt_node = mctx->last_node; sifted_states = re_malloc (re_dfastate_t *, match_last + 1); if (BE (sifted_states == NULL, 0)) { ret = REG_ESPACE; goto free_return; } if (dfa->nbackref) { lim_states = re_malloc (re_dfastate_t *, match_last + 1); if (BE (lim_states == NULL, 0)) { ret = REG_ESPACE; goto free_return; } while (1) { memset (lim_states, '\0', sizeof (re_dfastate_t *) * (match_last + 1)); sift_ctx_init (&sctx, sifted_states, lim_states, halt_node, match_last); ret = sift_states_backward (mctx, &sctx); re_node_set_free (&sctx.limits); if (BE (ret != REG_NOERROR, 0)) goto free_return; if (sifted_states[0] != NULL || lim_states[0] != NULL) break; do { --match_last; if (match_last < 0) { ret = REG_NOMATCH; goto free_return; } } while (mctx->state_log[match_last] == NULL || !mctx->state_log[match_last]->halt); halt_node = check_halt_state_context (mctx, mctx->state_log[match_last], match_last); } ret = merge_state_array (dfa, sifted_states, lim_states, match_last + 1); re_free (lim_states); lim_states = NULL; if (BE (ret != REG_NOERROR, 0)) goto free_return; } else { sift_ctx_init (&sctx, sifted_states, lim_states, halt_node, match_last); ret = sift_states_backward (mctx, &sctx); re_node_set_free (&sctx.limits); if (BE (ret != REG_NOERROR, 0)) goto free_return; } re_free (mctx->state_log); mctx->state_log = sifted_states; sifted_states = NULL; mctx->last_node = halt_node; mctx->match_last = match_last; ret = REG_NOERROR; free_return: re_free (sifted_states); re_free (lim_states); return ret; } /* Acquire an initial state and return it. We must select appropriate initial state depending on the context, since initial states may have constraints like "\<", "^", etc.. */ static inline re_dfastate_t * __attribute ((always_inline)) internal_function acquire_init_state_context (reg_errcode_t *err, const re_match_context_t *mctx, int idx) { const re_dfa_t *const dfa = mctx->dfa; if (dfa->init_state->has_constraint) { unsigned int context; context = re_string_context_at (&mctx->input, idx - 1, mctx->eflags); if (IS_WORD_CONTEXT (context)) return dfa->init_state_word; else if (IS_ORDINARY_CONTEXT (context)) return dfa->init_state; else if (IS_BEGBUF_CONTEXT (context) && IS_NEWLINE_CONTEXT (context)) return dfa->init_state_begbuf; else if (IS_NEWLINE_CONTEXT (context)) return dfa->init_state_nl; else if (IS_BEGBUF_CONTEXT (context)) { /* It is relatively rare case, then calculate on demand. */ return re_acquire_state_context (err, dfa, dfa->init_state->entrance_nodes, context); } else /* Must not happen? */ return dfa->init_state; } else return dfa->init_state; } /* Check whether the regular expression match input string INPUT or not, and return the index where the matching end, return -1 if not match, or return -2 in case of an error. FL_LONGEST_MATCH means we want the POSIX longest matching. If P_MATCH_FIRST is not NULL, and the match fails, it is set to the next place where we may want to try matching. Note that the matcher assume that the maching starts from the current index of the buffer. */ static int internal_function check_matching (re_match_context_t *mctx, int fl_longest_match, int *p_match_first) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; int match = 0; int match_last = -1; int cur_str_idx = re_string_cur_idx (&mctx->input); re_dfastate_t *cur_state; int at_init_state = p_match_first != NULL; int next_start_idx = cur_str_idx; err = REG_NOERROR; cur_state = acquire_init_state_context (&err, mctx, cur_str_idx); /* An initial state must not be NULL (invalid). */ if (BE (cur_state == NULL, 0)) { assert (err == REG_ESPACE); return -2; } if (mctx->state_log != NULL) { mctx->state_log[cur_str_idx] = cur_state; /* Check OP_OPEN_SUBEXP in the initial state in case that we use them later. E.g. Processing back references. */ if (BE (dfa->nbackref, 0)) { at_init_state = 0; err = check_subexp_matching_top (mctx, &cur_state->nodes, 0); if (BE (err != REG_NOERROR, 0)) return err; if (cur_state->has_backref) { err = transit_state_bkref (mctx, &cur_state->nodes); if (BE (err != REG_NOERROR, 0)) return err; } } } /* If the RE accepts NULL string. */ if (BE (cur_state->halt, 0)) { if (!cur_state->has_constraint || check_halt_state_context (mctx, cur_state, cur_str_idx)) { if (!fl_longest_match) return cur_str_idx; else { match_last = cur_str_idx; match = 1; } } } while (!re_string_eoi (&mctx->input)) { re_dfastate_t *old_state = cur_state; int next_char_idx = re_string_cur_idx (&mctx->input) + 1; if (BE (next_char_idx >= mctx->input.bufs_len, 0) || (BE (next_char_idx >= mctx->input.valid_len, 0) && mctx->input.valid_len < mctx->input.len)) { err = extend_buffers (mctx); if (BE (err != REG_NOERROR, 0)) { assert (err == REG_ESPACE); return -2; } } cur_state = transit_state (&err, mctx, cur_state); if (mctx->state_log != NULL) cur_state = merge_state_with_log (&err, mctx, cur_state); if (cur_state == NULL) { /* Reached the invalid state or an error. Try to recover a valid state using the state log, if available and if we have not already found a valid (even if not the longest) match. */ if (BE (err != REG_NOERROR, 0)) return -2; if (mctx->state_log == NULL || (match && !fl_longest_match) || (cur_state = find_recover_state (&err, mctx)) == NULL) break; } if (BE (at_init_state, 0)) { if (old_state == cur_state) next_start_idx = next_char_idx; else at_init_state = 0; } if (cur_state->halt) { /* Reached a halt state. Check the halt state can satisfy the current context. */ if (!cur_state->has_constraint || check_halt_state_context (mctx, cur_state, re_string_cur_idx (&mctx->input))) { /* We found an appropriate halt state. */ match_last = re_string_cur_idx (&mctx->input); match = 1; /* We found a match, do not modify match_first below. */ p_match_first = NULL; if (!fl_longest_match) break; } } } if (p_match_first) *p_match_first += next_start_idx; return match_last; } /* Check NODE match the current context. */ static int internal_function check_halt_node_context (const re_dfa_t *dfa, int node, unsigned int context) { re_token_type_t type = dfa->nodes[node].type; unsigned int constraint = dfa->nodes[node].constraint; if (type != END_OF_RE) return 0; if (!constraint) return 1; if (NOT_SATISFY_NEXT_CONSTRAINT (constraint, context)) return 0; return 1; } /* Check the halt state STATE match the current context. Return 0 if not match, if the node, STATE has, is a halt node and match the context, return the node. */ static int internal_function check_halt_state_context (const re_match_context_t *mctx, const re_dfastate_t *state, int idx) { int i; unsigned int context; #ifdef DEBUG assert (state->halt); #endif context = re_string_context_at (&mctx->input, idx, mctx->eflags); for (i = 0; i < state->nodes.nelem; ++i) if (check_halt_node_context (mctx->dfa, state->nodes.elems[i], context)) return state->nodes.elems[i]; return 0; } /* Compute the next node to which "NFA" transit from NODE("NFA" is a NFA corresponding to the DFA). Return the destination node, and update EPS_VIA_NODES, return -1 in case of errors. */ static int internal_function proceed_next_node (const re_match_context_t *mctx, int nregs, regmatch_t *regs, int *pidx, int node, re_node_set *eps_via_nodes, struct re_fail_stack_t *fs) { const re_dfa_t *const dfa = mctx->dfa; int i, err; if (IS_EPSILON_NODE (dfa->nodes[node].type)) { re_node_set *cur_nodes = &mctx->state_log[*pidx]->nodes; re_node_set *edests = &dfa->edests[node]; int dest_node; err = re_node_set_insert (eps_via_nodes, node); if (BE (err < 0, 0)) return -2; /* Pick up a valid destination, or return -1 if none is found. */ for (dest_node = -1, i = 0; i < edests->nelem; ++i) { int candidate = edests->elems[i]; if (!re_node_set_contains (cur_nodes, candidate)) continue; if (dest_node == -1) dest_node = candidate; else { /* In order to avoid infinite loop like "(a*)*", return the second epsilon-transition if the first was already considered. */ if (re_node_set_contains (eps_via_nodes, dest_node)) return candidate; /* Otherwise, push the second epsilon-transition on the fail stack. */ else if (fs != NULL && push_fail_stack (fs, *pidx, candidate, nregs, regs, eps_via_nodes)) return -2; /* We know we are going to exit. */ break; } } return dest_node; } else { int naccepted = 0; re_token_type_t type = dfa->nodes[node].type; #ifdef RE_ENABLE_I18N if (dfa->nodes[node].accept_mb) naccepted = check_node_accept_bytes (dfa, node, &mctx->input, *pidx); else #endif /* RE_ENABLE_I18N */ if (type == OP_BACK_REF) { int subexp_idx = dfa->nodes[node].opr.idx + 1; naccepted = regs[subexp_idx].rm_eo - regs[subexp_idx].rm_so; if (fs != NULL) { if (regs[subexp_idx].rm_so == -1 || regs[subexp_idx].rm_eo == -1) return -1; else if (naccepted) { char *buf = (char *) re_string_get_buffer (&mctx->input); if (memcmp (buf + regs[subexp_idx].rm_so, buf + *pidx, naccepted) != 0) return -1; } } if (naccepted == 0) { int dest_node; err = re_node_set_insert (eps_via_nodes, node); if (BE (err < 0, 0)) return -2; dest_node = dfa->edests[node].elems[0]; if (re_node_set_contains (&mctx->state_log[*pidx]->nodes, dest_node)) return dest_node; } } if (naccepted != 0 || check_node_accept (mctx, dfa->nodes + node, *pidx)) { int dest_node = dfa->nexts[node]; *pidx = (naccepted == 0) ? *pidx + 1 : *pidx + naccepted; if (fs && (*pidx > mctx->match_last || mctx->state_log[*pidx] == NULL || !re_node_set_contains (&mctx->state_log[*pidx]->nodes, dest_node))) return -1; re_node_set_empty (eps_via_nodes); return dest_node; } } return -1; } static reg_errcode_t internal_function push_fail_stack (struct re_fail_stack_t *fs, int str_idx, int dest_node, int nregs, regmatch_t *regs, re_node_set *eps_via_nodes) { reg_errcode_t err; int num = fs->num++; if (fs->num == fs->alloc) { struct re_fail_stack_ent_t *new_array; new_array = realloc (fs->stack, (sizeof (struct re_fail_stack_ent_t) * fs->alloc * 2)); if (new_array == NULL) return REG_ESPACE; fs->alloc *= 2; fs->stack = new_array; } fs->stack[num].idx = str_idx; fs->stack[num].node = dest_node; fs->stack[num].regs = re_malloc (regmatch_t, nregs); if (fs->stack[num].regs == NULL) return REG_ESPACE; memcpy (fs->stack[num].regs, regs, sizeof (regmatch_t) * nregs); err = re_node_set_init_copy (&fs->stack[num].eps_via_nodes, eps_via_nodes); return err; } static int internal_function pop_fail_stack (struct re_fail_stack_t *fs, int *pidx, int nregs, regmatch_t *regs, re_node_set *eps_via_nodes) { int num = --fs->num; assert (num >= 0); *pidx = fs->stack[num].idx; memcpy (regs, fs->stack[num].regs, sizeof (regmatch_t) * nregs); re_node_set_free (eps_via_nodes); re_free (fs->stack[num].regs); *eps_via_nodes = fs->stack[num].eps_via_nodes; return fs->stack[num].node; } /* Set the positions where the subexpressions are starts/ends to registers PMATCH. Note: We assume that pmatch[0] is already set, and pmatch[i].rm_so == pmatch[i].rm_eo == -1 for 0 < i < nmatch. */ static reg_errcode_t internal_function set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch, regmatch_t *pmatch, int fl_backtrack) { const re_dfa_t *dfa = (const re_dfa_t *) preg->buffer; int idx, cur_node; re_node_set eps_via_nodes; struct re_fail_stack_t *fs; struct re_fail_stack_t fs_body = { 0, 2, NULL }; regmatch_t *prev_idx_match; int prev_idx_match_malloced = 0; #ifdef DEBUG assert (nmatch > 1); assert (mctx->state_log != NULL); #endif if (fl_backtrack) { fs = &fs_body; fs->stack = re_malloc (struct re_fail_stack_ent_t, fs->alloc); if (fs->stack == NULL) return REG_ESPACE; } else fs = NULL; cur_node = dfa->init_node; re_node_set_init_empty (&eps_via_nodes); if (__libc_use_alloca (nmatch * sizeof (regmatch_t))) prev_idx_match = (regmatch_t *) alloca (nmatch * sizeof (regmatch_t)); else { prev_idx_match = re_malloc (regmatch_t, nmatch); if (prev_idx_match == NULL) { free_fail_stack_return (fs); return REG_ESPACE; } prev_idx_match_malloced = 1; } memcpy (prev_idx_match, pmatch, sizeof (regmatch_t) * nmatch); for (idx = pmatch[0].rm_so; idx <= pmatch[0].rm_eo ;) { update_regs (dfa, pmatch, prev_idx_match, cur_node, idx, nmatch); if (idx == pmatch[0].rm_eo && cur_node == mctx->last_node) { int reg_idx; if (fs) { for (reg_idx = 0; reg_idx < nmatch; ++reg_idx) if (pmatch[reg_idx].rm_so > -1 && pmatch[reg_idx].rm_eo == -1) break; if (reg_idx == nmatch) { re_node_set_free (&eps_via_nodes); if (prev_idx_match_malloced) re_free (prev_idx_match); return free_fail_stack_return (fs); } cur_node = pop_fail_stack (fs, &idx, nmatch, pmatch, &eps_via_nodes); } else { re_node_set_free (&eps_via_nodes); if (prev_idx_match_malloced) re_free (prev_idx_match); return REG_NOERROR; } } /* Proceed to next node. */ cur_node = proceed_next_node (mctx, nmatch, pmatch, &idx, cur_node, &eps_via_nodes, fs); if (BE (cur_node < 0, 0)) { if (BE (cur_node == -2, 0)) { re_node_set_free (&eps_via_nodes); if (prev_idx_match_malloced) re_free (prev_idx_match); free_fail_stack_return (fs); return REG_ESPACE; } if (fs) cur_node = pop_fail_stack (fs, &idx, nmatch, pmatch, &eps_via_nodes); else { re_node_set_free (&eps_via_nodes); if (prev_idx_match_malloced) re_free (prev_idx_match); return REG_NOMATCH; } } } re_node_set_free (&eps_via_nodes); if (prev_idx_match_malloced) re_free (prev_idx_match); return free_fail_stack_return (fs); } static reg_errcode_t internal_function free_fail_stack_return (struct re_fail_stack_t *fs) { if (fs) { int fs_idx; for (fs_idx = 0; fs_idx < fs->num; ++fs_idx) { re_node_set_free (&fs->stack[fs_idx].eps_via_nodes); re_free (fs->stack[fs_idx].regs); } re_free (fs->stack); } return REG_NOERROR; } static void internal_function update_regs (const re_dfa_t *dfa, regmatch_t *pmatch, regmatch_t *prev_idx_match, int cur_node, int cur_idx, int nmatch) { int type = dfa->nodes[cur_node].type; if (type == OP_OPEN_SUBEXP) { int reg_num = dfa->nodes[cur_node].opr.idx + 1; /* We are at the first node of this sub expression. */ if (reg_num < nmatch) { pmatch[reg_num].rm_so = cur_idx; pmatch[reg_num].rm_eo = -1; } } else if (type == OP_CLOSE_SUBEXP) { int reg_num = dfa->nodes[cur_node].opr.idx + 1; if (reg_num < nmatch) { /* We are at the last node of this sub expression. */ if (pmatch[reg_num].rm_so < cur_idx) { pmatch[reg_num].rm_eo = cur_idx; /* This is a non-empty match or we are not inside an optional subexpression. Accept this right away. */ memcpy (prev_idx_match, pmatch, sizeof (regmatch_t) * nmatch); } else { if (dfa->nodes[cur_node].opt_subexp && prev_idx_match[reg_num].rm_so != -1) /* We transited through an empty match for an optional subexpression, like (a?)*, and this is not the subexp's first match. Copy back the old content of the registers so that matches of an inner subexpression are undone as well, like in ((a?))*. */ memcpy (pmatch, prev_idx_match, sizeof (regmatch_t) * nmatch); else /* We completed a subexpression, but it may be part of an optional one, so do not update PREV_IDX_MATCH. */ pmatch[reg_num].rm_eo = cur_idx; } } } } /* This function checks the STATE_LOG from the SCTX->last_str_idx to 0 and sift the nodes in each states according to the following rules. Updated state_log will be wrote to STATE_LOG. Rules: We throw away the Node `a' in the STATE_LOG[STR_IDX] if... 1. When STR_IDX == MATCH_LAST(the last index in the state_log): If `a' isn't the LAST_NODE and `a' can't epsilon transit to the LAST_NODE, we throw away the node `a'. 2. When 0 <= STR_IDX < MATCH_LAST and `a' accepts string `s' and transit to `b': i. If 'b' isn't in the STATE_LOG[STR_IDX+strlen('s')], we throw away the node `a'. ii. If 'b' is in the STATE_LOG[STR_IDX+strlen('s')] but 'b' is thrown away, we throw away the node `a'. 3. When 0 <= STR_IDX < MATCH_LAST and 'a' epsilon transit to 'b': i. If 'b' isn't in the STATE_LOG[STR_IDX], we throw away the node `a'. ii. If 'b' is in the STATE_LOG[STR_IDX] but 'b' is thrown away, we throw away the node `a'. */ #define STATE_NODE_CONTAINS(state,node) \ ((state) != NULL && re_node_set_contains (&(state)->nodes, node)) static reg_errcode_t internal_function sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx) { reg_errcode_t err; int null_cnt = 0; int str_idx = sctx->last_str_idx; re_node_set cur_dest; #ifdef DEBUG assert (mctx->state_log != NULL && mctx->state_log[str_idx] != NULL); #endif /* Build sifted state_log[str_idx]. It has the nodes which can epsilon transit to the last_node and the last_node itself. */ err = re_node_set_init_1 (&cur_dest, sctx->last_node); if (BE (err != REG_NOERROR, 0)) return err; err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest); if (BE (err != REG_NOERROR, 0)) goto free_return; /* Then check each states in the state_log. */ while (str_idx > 0) { /* Update counters. */ null_cnt = (sctx->sifted_states[str_idx] == NULL) ? null_cnt + 1 : 0; if (null_cnt > mctx->max_mb_elem_len) { memset (sctx->sifted_states, '\0', sizeof (re_dfastate_t *) * str_idx); re_node_set_free (&cur_dest); return REG_NOERROR; } re_node_set_empty (&cur_dest); --str_idx; if (mctx->state_log[str_idx]) { err = build_sifted_states (mctx, sctx, str_idx, &cur_dest); if (BE (err != REG_NOERROR, 0)) goto free_return; } /* Add all the nodes which satisfy the following conditions: - It can epsilon transit to a node in CUR_DEST. - It is in CUR_SRC. And update state_log. */ err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest); if (BE (err != REG_NOERROR, 0)) goto free_return; } err = REG_NOERROR; free_return: re_node_set_free (&cur_dest); return err; } static reg_errcode_t internal_function build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx, int str_idx, re_node_set *cur_dest) { const re_dfa_t *const dfa = mctx->dfa; const re_node_set *cur_src = &mctx->state_log[str_idx]->non_eps_nodes; int i; /* Then build the next sifted state. We build the next sifted state on `cur_dest', and update `sifted_states[str_idx]' with `cur_dest'. Note: `cur_dest' is the sifted state from `state_log[str_idx + 1]'. `cur_src' points the node_set of the old `state_log[str_idx]' (with the epsilon nodes pre-filtered out). */ for (i = 0; i < cur_src->nelem; i++) { int prev_node = cur_src->elems[i]; int naccepted = 0; int ret; #ifdef DEBUG re_token_type_t type = dfa->nodes[prev_node].type; assert (!IS_EPSILON_NODE (type)); #endif #ifdef RE_ENABLE_I18N /* If the node may accept `multi byte'. */ if (dfa->nodes[prev_node].accept_mb) naccepted = sift_states_iter_mb (mctx, sctx, prev_node, str_idx, sctx->last_str_idx); #endif /* RE_ENABLE_I18N */ /* We don't check backreferences here. See update_cur_sifted_state(). */ if (!naccepted && check_node_accept (mctx, dfa->nodes + prev_node, str_idx) && STATE_NODE_CONTAINS (sctx->sifted_states[str_idx + 1], dfa->nexts[prev_node])) naccepted = 1; if (naccepted == 0) continue; if (sctx->limits.nelem) { int to_idx = str_idx + naccepted; if (check_dst_limits (mctx, &sctx->limits, dfa->nexts[prev_node], to_idx, prev_node, str_idx)) continue; } ret = re_node_set_insert (cur_dest, prev_node); if (BE (ret == -1, 0)) return REG_ESPACE; } return REG_NOERROR; } /* Helper functions. */ static reg_errcode_t internal_function clean_state_log_if_needed (re_match_context_t *mctx, int next_state_log_idx) { int top = mctx->state_log_top; if (next_state_log_idx >= mctx->input.bufs_len || (next_state_log_idx >= mctx->input.valid_len && mctx->input.valid_len < mctx->input.len)) { reg_errcode_t err; err = extend_buffers (mctx); if (BE (err != REG_NOERROR, 0)) return err; } if (top < next_state_log_idx) { memset (mctx->state_log + top + 1, '\0', sizeof (re_dfastate_t *) * (next_state_log_idx - top)); mctx->state_log_top = next_state_log_idx; } return REG_NOERROR; } static reg_errcode_t internal_function merge_state_array (const re_dfa_t *dfa, re_dfastate_t **dst, re_dfastate_t **src, int num) { int st_idx; reg_errcode_t err; for (st_idx = 0; st_idx < num; ++st_idx) { if (dst[st_idx] == NULL) dst[st_idx] = src[st_idx]; else if (src[st_idx] != NULL) { re_node_set merged_set; err = re_node_set_init_union (&merged_set, &dst[st_idx]->nodes, &src[st_idx]->nodes); if (BE (err != REG_NOERROR, 0)) return err; dst[st_idx] = re_acquire_state (&err, dfa, &merged_set); re_node_set_free (&merged_set); if (BE (err != REG_NOERROR, 0)) return err; } } return REG_NOERROR; } static reg_errcode_t internal_function update_cur_sifted_state (const re_match_context_t *mctx, re_sift_context_t *sctx, int str_idx, re_node_set *dest_nodes) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err = REG_NOERROR; const re_node_set *candidates; candidates = ((mctx->state_log[str_idx] == NULL) ? NULL : &mctx->state_log[str_idx]->nodes); if (dest_nodes->nelem == 0) sctx->sifted_states[str_idx] = NULL; else { if (candidates) { /* At first, add the nodes which can epsilon transit to a node in DEST_NODE. */ err = add_epsilon_src_nodes (dfa, dest_nodes, candidates); if (BE (err != REG_NOERROR, 0)) return err; /* Then, check the limitations in the current sift_context. */ if (sctx->limits.nelem) { err = check_subexp_limits (dfa, dest_nodes, candidates, &sctx->limits, mctx->bkref_ents, str_idx); if (BE (err != REG_NOERROR, 0)) return err; } } sctx->sifted_states[str_idx] = re_acquire_state (&err, dfa, dest_nodes); if (BE (err != REG_NOERROR, 0)) return err; } if (candidates && mctx->state_log[str_idx]->has_backref) { err = sift_states_bkref (mctx, sctx, str_idx, candidates); if (BE (err != REG_NOERROR, 0)) return err; } return REG_NOERROR; } static reg_errcode_t internal_function add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes, const re_node_set *candidates) { reg_errcode_t err = REG_NOERROR; int i; re_dfastate_t *state = re_acquire_state (&err, dfa, dest_nodes); if (BE (err != REG_NOERROR, 0)) return err; if (!state->inveclosure.alloc) { err = re_node_set_alloc (&state->inveclosure, dest_nodes->nelem); if (BE (err != REG_NOERROR, 0)) return REG_ESPACE; for (i = 0; i < dest_nodes->nelem; i++) re_node_set_merge (&state->inveclosure, dfa->inveclosures + dest_nodes->elems[i]); } return re_node_set_add_intersect (dest_nodes, candidates, &state->inveclosure); } static reg_errcode_t internal_function sub_epsilon_src_nodes (const re_dfa_t *dfa, int node, re_node_set *dest_nodes, const re_node_set *candidates) { int ecl_idx; reg_errcode_t err; re_node_set *inv_eclosure = dfa->inveclosures + node; re_node_set except_nodes; re_node_set_init_empty (&except_nodes); for (ecl_idx = 0; ecl_idx < inv_eclosure->nelem; ++ecl_idx) { int cur_node = inv_eclosure->elems[ecl_idx]; if (cur_node == node) continue; if (IS_EPSILON_NODE (dfa->nodes[cur_node].type)) { int edst1 = dfa->edests[cur_node].elems[0]; int edst2 = ((dfa->edests[cur_node].nelem > 1) ? dfa->edests[cur_node].elems[1] : -1); if ((!re_node_set_contains (inv_eclosure, edst1) && re_node_set_contains (dest_nodes, edst1)) || (edst2 > 0 && !re_node_set_contains (inv_eclosure, edst2) && re_node_set_contains (dest_nodes, edst2))) { err = re_node_set_add_intersect (&except_nodes, candidates, dfa->inveclosures + cur_node); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&except_nodes); return err; } } } } for (ecl_idx = 0; ecl_idx < inv_eclosure->nelem; ++ecl_idx) { int cur_node = inv_eclosure->elems[ecl_idx]; if (!re_node_set_contains (&except_nodes, cur_node)) { int idx = re_node_set_contains (dest_nodes, cur_node) - 1; re_node_set_remove_at (dest_nodes, idx); } } re_node_set_free (&except_nodes); return REG_NOERROR; } static int internal_function check_dst_limits (const re_match_context_t *mctx, re_node_set *limits, int dst_node, int dst_idx, int src_node, int src_idx) { const re_dfa_t *const dfa = mctx->dfa; int lim_idx, src_pos, dst_pos; int dst_bkref_idx = search_cur_bkref_entry (mctx, dst_idx); int src_bkref_idx = search_cur_bkref_entry (mctx, src_idx); for (lim_idx = 0; lim_idx < limits->nelem; ++lim_idx) { int subexp_idx; struct re_backref_cache_entry *ent; ent = mctx->bkref_ents + limits->elems[lim_idx]; subexp_idx = dfa->nodes[ent->node].opr.idx; dst_pos = check_dst_limits_calc_pos (mctx, limits->elems[lim_idx], subexp_idx, dst_node, dst_idx, dst_bkref_idx); src_pos = check_dst_limits_calc_pos (mctx, limits->elems[lim_idx], subexp_idx, src_node, src_idx, src_bkref_idx); /* In case of: ( ) ( ) ( ) */ if (src_pos == dst_pos) continue; /* This is unrelated limitation. */ else return 1; } return 0; } static int internal_function check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries, int subexp_idx, int from_node, int bkref_idx) { const re_dfa_t *const dfa = mctx->dfa; const re_node_set *eclosures = dfa->eclosures + from_node; int node_idx; /* Else, we are on the boundary: examine the nodes on the epsilon closure. */ for (node_idx = 0; node_idx < eclosures->nelem; ++node_idx) { int node = eclosures->elems[node_idx]; switch (dfa->nodes[node].type) { case OP_BACK_REF: if (bkref_idx != -1) { struct re_backref_cache_entry *ent = mctx->bkref_ents + bkref_idx; do { int dst, cpos; if (ent->node != node) continue; if (subexp_idx < BITSET_WORD_BITS && !(ent->eps_reachable_subexps_map & ((bitset_word_t) 1 << subexp_idx))) continue; /* Recurse trying to reach the OP_OPEN_SUBEXP and OP_CLOSE_SUBEXP cases below. But, if the destination node is the same node as the source node, don't recurse because it would cause an infinite loop: a regex that exhibits this behavior is ()\1*\1* */ dst = dfa->edests[node].elems[0]; if (dst == from_node) { if (boundaries & 1) return -1; else /* if (boundaries & 2) */ return 0; } cpos = check_dst_limits_calc_pos_1 (mctx, boundaries, subexp_idx, dst, bkref_idx); if (cpos == -1 /* && (boundaries & 1) */) return -1; if (cpos == 0 && (boundaries & 2)) return 0; if (subexp_idx < BITSET_WORD_BITS) ent->eps_reachable_subexps_map &= ~((bitset_word_t) 1 << subexp_idx); } while (ent++->more); } break; case OP_OPEN_SUBEXP: if ((boundaries & 1) && subexp_idx == dfa->nodes[node].opr.idx) return -1; break; case OP_CLOSE_SUBEXP: if ((boundaries & 2) && subexp_idx == dfa->nodes[node].opr.idx) return 0; break; default: break; } } return (boundaries & 2) ? 1 : 0; } static int internal_function check_dst_limits_calc_pos (const re_match_context_t *mctx, int limit, int subexp_idx, int from_node, int str_idx, int bkref_idx) { struct re_backref_cache_entry *lim = mctx->bkref_ents + limit; int boundaries; /* If we are outside the range of the subexpression, return -1 or 1. */ if (str_idx < lim->subexp_from) return -1; if (lim->subexp_to < str_idx) return 1; /* If we are within the subexpression, return 0. */ boundaries = (str_idx == lim->subexp_from); boundaries |= (str_idx == lim->subexp_to) << 1; if (boundaries == 0) return 0; /* Else, examine epsilon closure. */ return check_dst_limits_calc_pos_1 (mctx, boundaries, subexp_idx, from_node, bkref_idx); } /* Check the limitations of sub expressions LIMITS, and remove the nodes which are against limitations from DEST_NODES. */ static reg_errcode_t internal_function check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes, const re_node_set *candidates, re_node_set *limits, struct re_backref_cache_entry *bkref_ents, int str_idx) { reg_errcode_t err; int node_idx, lim_idx; for (lim_idx = 0; lim_idx < limits->nelem; ++lim_idx) { int subexp_idx; struct re_backref_cache_entry *ent; ent = bkref_ents + limits->elems[lim_idx]; if (str_idx <= ent->subexp_from || ent->str_idx < str_idx) continue; /* This is unrelated limitation. */ subexp_idx = dfa->nodes[ent->node].opr.idx; if (ent->subexp_to == str_idx) { int ops_node = -1; int cls_node = -1; for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx) { int node = dest_nodes->elems[node_idx]; re_token_type_t type = dfa->nodes[node].type; if (type == OP_OPEN_SUBEXP && subexp_idx == dfa->nodes[node].opr.idx) ops_node = node; else if (type == OP_CLOSE_SUBEXP && subexp_idx == dfa->nodes[node].opr.idx) cls_node = node; } /* Check the limitation of the open subexpression. */ /* Note that (ent->subexp_to = str_idx != ent->subexp_from). */ if (ops_node >= 0) { err = sub_epsilon_src_nodes (dfa, ops_node, dest_nodes, candidates); if (BE (err != REG_NOERROR, 0)) return err; } /* Check the limitation of the close subexpression. */ if (cls_node >= 0) for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx) { int node = dest_nodes->elems[node_idx]; if (!re_node_set_contains (dfa->inveclosures + node, cls_node) && !re_node_set_contains (dfa->eclosures + node, cls_node)) { /* It is against this limitation. Remove it form the current sifted state. */ err = sub_epsilon_src_nodes (dfa, node, dest_nodes, candidates); if (BE (err != REG_NOERROR, 0)) return err; --node_idx; } } } else /* (ent->subexp_to != str_idx) */ { for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx) { int node = dest_nodes->elems[node_idx]; re_token_type_t type = dfa->nodes[node].type; if (type == OP_CLOSE_SUBEXP || type == OP_OPEN_SUBEXP) { if (subexp_idx != dfa->nodes[node].opr.idx) continue; /* It is against this limitation. Remove it form the current sifted state. */ err = sub_epsilon_src_nodes (dfa, node, dest_nodes, candidates); if (BE (err != REG_NOERROR, 0)) return err; } } } } return REG_NOERROR; } static reg_errcode_t internal_function sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx, int str_idx, const re_node_set *candidates) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; int node_idx, node; re_sift_context_t local_sctx; int first_idx = search_cur_bkref_entry (mctx, str_idx); if (first_idx == -1) return REG_NOERROR; local_sctx.sifted_states = NULL; /* Mark that it hasn't been initialized. */ for (node_idx = 0; node_idx < candidates->nelem; ++node_idx) { int enabled_idx; re_token_type_t type; struct re_backref_cache_entry *entry; node = candidates->elems[node_idx]; type = dfa->nodes[node].type; /* Avoid infinite loop for the REs like "()\1+". */ if (node == sctx->last_node && str_idx == sctx->last_str_idx) continue; if (type != OP_BACK_REF) continue; entry = mctx->bkref_ents + first_idx; enabled_idx = first_idx; do { int subexp_len; int to_idx; int dst_node; int ret; re_dfastate_t *cur_state; if (entry->node != node) continue; subexp_len = entry->subexp_to - entry->subexp_from; to_idx = str_idx + subexp_len; dst_node = (subexp_len ? dfa->nexts[node] : dfa->edests[node].elems[0]); if (to_idx > sctx->last_str_idx || sctx->sifted_states[to_idx] == NULL || !STATE_NODE_CONTAINS (sctx->sifted_states[to_idx], dst_node) || check_dst_limits (mctx, &sctx->limits, node, str_idx, dst_node, to_idx)) continue; if (local_sctx.sifted_states == NULL) { local_sctx = *sctx; err = re_node_set_init_copy (&local_sctx.limits, &sctx->limits); if (BE (err != REG_NOERROR, 0)) goto free_return; } local_sctx.last_node = node; local_sctx.last_str_idx = str_idx; ret = re_node_set_insert (&local_sctx.limits, enabled_idx); if (BE (ret < 0, 0)) { err = REG_ESPACE; goto free_return; } cur_state = local_sctx.sifted_states[str_idx]; err = sift_states_backward (mctx, &local_sctx); if (BE (err != REG_NOERROR, 0)) goto free_return; if (sctx->limited_states != NULL) { err = merge_state_array (dfa, sctx->limited_states, local_sctx.sifted_states, str_idx + 1); if (BE (err != REG_NOERROR, 0)) goto free_return; } local_sctx.sifted_states[str_idx] = cur_state; re_node_set_remove (&local_sctx.limits, enabled_idx); /* mctx->bkref_ents may have changed, reload the pointer. */ entry = mctx->bkref_ents + enabled_idx; } while (enabled_idx++, entry++->more); } err = REG_NOERROR; free_return: if (local_sctx.sifted_states != NULL) { re_node_set_free (&local_sctx.limits); } return err; } #ifdef RE_ENABLE_I18N static int internal_function sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx, int node_idx, int str_idx, int max_str_idx) { const re_dfa_t *const dfa = mctx->dfa; int naccepted; /* Check the node can accept `multi byte'. */ naccepted = check_node_accept_bytes (dfa, node_idx, &mctx->input, str_idx); if (naccepted > 0 && str_idx + naccepted <= max_str_idx && !STATE_NODE_CONTAINS (sctx->sifted_states[str_idx + naccepted], dfa->nexts[node_idx])) /* The node can't accept the `multi byte', or the destination was already thrown away, then the node could't accept the current input `multi byte'. */ naccepted = 0; /* Otherwise, it is sure that the node could accept `naccepted' bytes input. */ return naccepted; } #endif /* RE_ENABLE_I18N */ /* Functions for state transition. */ /* Return the next state to which the current state STATE will transit by accepting the current input byte, and update STATE_LOG if necessary. If STATE can accept a multibyte char/collating element/back reference update the destination of STATE_LOG. */ static re_dfastate_t * internal_function transit_state (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *state) { re_dfastate_t **trtable; unsigned char ch; #ifdef RE_ENABLE_I18N /* If the current state can accept multibyte. */ if (BE (state->accept_mb, 0)) { *err = transit_state_mb (mctx, state); if (BE (*err != REG_NOERROR, 0)) return NULL; } #endif /* RE_ENABLE_I18N */ /* Then decide the next state with the single byte. */ #if 0 if (0) /* don't use transition table */ return transit_state_sb (err, mctx, state); #endif /* Use transition table */ ch = re_string_fetch_byte (&mctx->input); for (;;) { trtable = state->trtable; if (BE (trtable != NULL, 1)) return trtable[ch]; trtable = state->word_trtable; if (BE (trtable != NULL, 1)) { unsigned int context; context = re_string_context_at (&mctx->input, re_string_cur_idx (&mctx->input) - 1, mctx->eflags); if (IS_WORD_CONTEXT (context)) return trtable[ch + SBC_MAX]; else return trtable[ch]; } if (!build_trtable (mctx->dfa, state)) { *err = REG_ESPACE; return NULL; } /* Retry, we now have a transition table. */ } } /* Update the state_log if we need */ re_dfastate_t * internal_function merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *next_state) { const re_dfa_t *const dfa = mctx->dfa; int cur_idx = re_string_cur_idx (&mctx->input); if (cur_idx > mctx->state_log_top) { mctx->state_log[cur_idx] = next_state; mctx->state_log_top = cur_idx; } else if (mctx->state_log[cur_idx] == 0) { mctx->state_log[cur_idx] = next_state; } else { re_dfastate_t *pstate; unsigned int context; re_node_set next_nodes, *log_nodes, *table_nodes = NULL; /* If (state_log[cur_idx] != 0), it implies that cur_idx is the destination of a multibyte char/collating element/ back reference. Then the next state is the union set of these destinations and the results of the transition table. */ pstate = mctx->state_log[cur_idx]; log_nodes = pstate->entrance_nodes; if (next_state != NULL) { table_nodes = next_state->entrance_nodes; *err = re_node_set_init_union (&next_nodes, table_nodes, log_nodes); if (BE (*err != REG_NOERROR, 0)) return NULL; } else next_nodes = *log_nodes; /* Note: We already add the nodes of the initial state, then we don't need to add them here. */ context = re_string_context_at (&mctx->input, re_string_cur_idx (&mctx->input) - 1, mctx->eflags); next_state = mctx->state_log[cur_idx] = re_acquire_state_context (err, dfa, &next_nodes, context); /* We don't need to check errors here, since the return value of this function is next_state and ERR is already set. */ if (table_nodes != NULL) re_node_set_free (&next_nodes); } if (BE (dfa->nbackref, 0) && next_state != NULL) { /* Check OP_OPEN_SUBEXP in the current state in case that we use them later. We must check them here, since the back references in the next state might use them. */ *err = check_subexp_matching_top (mctx, &next_state->nodes, cur_idx); if (BE (*err != REG_NOERROR, 0)) return NULL; /* If the next state has back references. */ if (next_state->has_backref) { *err = transit_state_bkref (mctx, &next_state->nodes); if (BE (*err != REG_NOERROR, 0)) return NULL; next_state = mctx->state_log[cur_idx]; } } return next_state; } /* Skip bytes in the input that correspond to part of a multi-byte match, then look in the log for a state from which to restart matching. */ re_dfastate_t * internal_function find_recover_state (reg_errcode_t *err, re_match_context_t *mctx) { re_dfastate_t *cur_state; do { int max = mctx->state_log_top; int cur_str_idx = re_string_cur_idx (&mctx->input); do { if (++cur_str_idx > max) return NULL; re_string_skip_bytes (&mctx->input, 1); } while (mctx->state_log[cur_str_idx] == NULL); cur_state = merge_state_with_log (err, mctx, NULL); } while (*err == REG_NOERROR && cur_state == NULL); return cur_state; } /* Helper functions for transit_state. */ /* From the node set CUR_NODES, pick up the nodes whose types are OP_OPEN_SUBEXP and which have corresponding back references in the regular expression. And register them to use them later for evaluating the correspoding back references. */ static reg_errcode_t internal_function check_subexp_matching_top (re_match_context_t *mctx, re_node_set *cur_nodes, int str_idx) { const re_dfa_t *const dfa = mctx->dfa; int node_idx; reg_errcode_t err; /* TODO: This isn't efficient. Because there might be more than one nodes whose types are OP_OPEN_SUBEXP and whose index is SUBEXP_IDX, we must check all nodes. E.g. RE: (a){2} */ for (node_idx = 0; node_idx < cur_nodes->nelem; ++node_idx) { int node = cur_nodes->elems[node_idx]; if (dfa->nodes[node].type == OP_OPEN_SUBEXP && dfa->nodes[node].opr.idx < BITSET_WORD_BITS && (dfa->used_bkref_map & ((bitset_word_t) 1 << dfa->nodes[node].opr.idx))) { err = match_ctx_add_subtop (mctx, node, str_idx); if (BE (err != REG_NOERROR, 0)) return err; } } return REG_NOERROR; } #if 0 /* Return the next state to which the current state STATE will transit by accepting the current input byte. */ static re_dfastate_t * transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *state) { const re_dfa_t *const dfa = mctx->dfa; re_node_set next_nodes; re_dfastate_t *next_state; int node_cnt, cur_str_idx = re_string_cur_idx (&mctx->input); unsigned int context; *err = re_node_set_alloc (&next_nodes, state->nodes.nelem + 1); if (BE (*err != REG_NOERROR, 0)) return NULL; for (node_cnt = 0; node_cnt < state->nodes.nelem; ++node_cnt) { int cur_node = state->nodes.elems[node_cnt]; if (check_node_accept (mctx, dfa->nodes + cur_node, cur_str_idx)) { *err = re_node_set_merge (&next_nodes, dfa->eclosures + dfa->nexts[cur_node]); if (BE (*err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return NULL; } } } context = re_string_context_at (&mctx->input, cur_str_idx, mctx->eflags); next_state = re_acquire_state_context (err, dfa, &next_nodes, context); /* We don't need to check errors here, since the return value of this function is next_state and ERR is already set. */ re_node_set_free (&next_nodes); re_string_skip_bytes (&mctx->input, 1); return next_state; } #endif #ifdef RE_ENABLE_I18N static reg_errcode_t internal_function transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; int i; for (i = 0; i < pstate->nodes.nelem; ++i) { re_node_set dest_nodes, *new_nodes; int cur_node_idx = pstate->nodes.elems[i]; int naccepted, dest_idx; unsigned int context; re_dfastate_t *dest_state; if (!dfa->nodes[cur_node_idx].accept_mb) continue; if (dfa->nodes[cur_node_idx].constraint) { context = re_string_context_at (&mctx->input, re_string_cur_idx (&mctx->input), mctx->eflags); if (NOT_SATISFY_NEXT_CONSTRAINT (dfa->nodes[cur_node_idx].constraint, context)) continue; } /* How many bytes the node can accept? */ naccepted = check_node_accept_bytes (dfa, cur_node_idx, &mctx->input, re_string_cur_idx (&mctx->input)); if (naccepted == 0) continue; /* The node can accepts `naccepted' bytes. */ dest_idx = re_string_cur_idx (&mctx->input) + naccepted; mctx->max_mb_elem_len = ((mctx->max_mb_elem_len < naccepted) ? naccepted : mctx->max_mb_elem_len); err = clean_state_log_if_needed (mctx, dest_idx); if (BE (err != REG_NOERROR, 0)) return err; #ifdef DEBUG assert (dfa->nexts[cur_node_idx] != -1); #endif new_nodes = dfa->eclosures + dfa->nexts[cur_node_idx]; dest_state = mctx->state_log[dest_idx]; if (dest_state == NULL) dest_nodes = *new_nodes; else { err = re_node_set_init_union (&dest_nodes, dest_state->entrance_nodes, new_nodes); if (BE (err != REG_NOERROR, 0)) return err; } context = re_string_context_at (&mctx->input, dest_idx - 1, mctx->eflags); mctx->state_log[dest_idx] = re_acquire_state_context (&err, dfa, &dest_nodes, context); if (dest_state != NULL) re_node_set_free (&dest_nodes); if (BE (mctx->state_log[dest_idx] == NULL && err != REG_NOERROR, 0)) return err; } return REG_NOERROR; } #endif /* RE_ENABLE_I18N */ static reg_errcode_t internal_function transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; int i; int cur_str_idx = re_string_cur_idx (&mctx->input); for (i = 0; i < nodes->nelem; ++i) { int dest_str_idx, prev_nelem, bkc_idx; int node_idx = nodes->elems[i]; unsigned int context; const re_token_t *node = dfa->nodes + node_idx; re_node_set *new_dest_nodes; /* Check whether `node' is a backreference or not. */ if (node->type != OP_BACK_REF) continue; if (node->constraint) { context = re_string_context_at (&mctx->input, cur_str_idx, mctx->eflags); if (NOT_SATISFY_NEXT_CONSTRAINT (node->constraint, context)) continue; } /* `node' is a backreference. Check the substring which the substring matched. */ bkc_idx = mctx->nbkref_ents; err = get_subexp (mctx, node_idx, cur_str_idx); if (BE (err != REG_NOERROR, 0)) goto free_return; /* And add the epsilon closures (which is `new_dest_nodes') of the backreference to appropriate state_log. */ #ifdef DEBUG assert (dfa->nexts[node_idx] != -1); #endif for (; bkc_idx < mctx->nbkref_ents; ++bkc_idx) { int subexp_len; re_dfastate_t *dest_state; struct re_backref_cache_entry *bkref_ent; bkref_ent = mctx->bkref_ents + bkc_idx; if (bkref_ent->node != node_idx || bkref_ent->str_idx != cur_str_idx) continue; subexp_len = bkref_ent->subexp_to - bkref_ent->subexp_from; new_dest_nodes = (subexp_len == 0 ? dfa->eclosures + dfa->edests[node_idx].elems[0] : dfa->eclosures + dfa->nexts[node_idx]); dest_str_idx = (cur_str_idx + bkref_ent->subexp_to - bkref_ent->subexp_from); context = re_string_context_at (&mctx->input, dest_str_idx - 1, mctx->eflags); dest_state = mctx->state_log[dest_str_idx]; prev_nelem = ((mctx->state_log[cur_str_idx] == NULL) ? 0 : mctx->state_log[cur_str_idx]->nodes.nelem); /* Add `new_dest_node' to state_log. */ if (dest_state == NULL) { mctx->state_log[dest_str_idx] = re_acquire_state_context (&err, dfa, new_dest_nodes, context); if (BE (mctx->state_log[dest_str_idx] == NULL && err != REG_NOERROR, 0)) goto free_return; } else { re_node_set dest_nodes; err = re_node_set_init_union (&dest_nodes, dest_state->entrance_nodes, new_dest_nodes); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&dest_nodes); goto free_return; } mctx->state_log[dest_str_idx] = re_acquire_state_context (&err, dfa, &dest_nodes, context); re_node_set_free (&dest_nodes); if (BE (mctx->state_log[dest_str_idx] == NULL && err != REG_NOERROR, 0)) goto free_return; } /* We need to check recursively if the backreference can epsilon transit. */ if (subexp_len == 0 && mctx->state_log[cur_str_idx]->nodes.nelem > prev_nelem) { err = check_subexp_matching_top (mctx, new_dest_nodes, cur_str_idx); if (BE (err != REG_NOERROR, 0)) goto free_return; err = transit_state_bkref (mctx, new_dest_nodes); if (BE (err != REG_NOERROR, 0)) goto free_return; } } } err = REG_NOERROR; free_return: return err; } /* Enumerate all the candidates which the backreference BKREF_NODE can match at BKREF_STR_IDX, and register them by match_ctx_add_entry(). Note that we might collect inappropriate candidates here. However, the cost of checking them strictly here is too high, then we delay these checking for prune_impossible_nodes(). */ static reg_errcode_t internal_function get_subexp (re_match_context_t *mctx, int bkref_node, int bkref_str_idx) { const re_dfa_t *const dfa = mctx->dfa; int subexp_num, sub_top_idx; const char *buf = (const char *) re_string_get_buffer (&mctx->input); /* Return if we have already checked BKREF_NODE at BKREF_STR_IDX. */ int cache_idx = search_cur_bkref_entry (mctx, bkref_str_idx); if (cache_idx != -1) { const struct re_backref_cache_entry *entry = mctx->bkref_ents + cache_idx; do if (entry->node == bkref_node) return REG_NOERROR; /* We already checked it. */ while (entry++->more); } subexp_num = dfa->nodes[bkref_node].opr.idx; /* For each sub expression */ for (sub_top_idx = 0; sub_top_idx < mctx->nsub_tops; ++sub_top_idx) { reg_errcode_t err; re_sub_match_top_t *sub_top = mctx->sub_tops[sub_top_idx]; re_sub_match_last_t *sub_last; int sub_last_idx, sl_str, bkref_str_off; if (dfa->nodes[sub_top->node].opr.idx != subexp_num) continue; /* It isn't related. */ sl_str = sub_top->str_idx; bkref_str_off = bkref_str_idx; /* At first, check the last node of sub expressions we already evaluated. */ for (sub_last_idx = 0; sub_last_idx < sub_top->nlasts; ++sub_last_idx) { int sl_str_diff; sub_last = sub_top->lasts[sub_last_idx]; sl_str_diff = sub_last->str_idx - sl_str; /* The matched string by the sub expression match with the substring at the back reference? */ if (sl_str_diff > 0) { if (BE (bkref_str_off + sl_str_diff > mctx->input.valid_len, 0)) { /* Not enough chars for a successful match. */ if (bkref_str_off + sl_str_diff > mctx->input.len) break; err = clean_state_log_if_needed (mctx, bkref_str_off + sl_str_diff); if (BE (err != REG_NOERROR, 0)) return err; buf = (const char *) re_string_get_buffer (&mctx->input); } if (memcmp (buf + bkref_str_off, buf + sl_str, sl_str_diff) != 0) /* We don't need to search this sub expression any more. */ break; } bkref_str_off += sl_str_diff; sl_str += sl_str_diff; err = get_subexp_sub (mctx, sub_top, sub_last, bkref_node, bkref_str_idx); /* Reload buf, since the preceding call might have reallocated the buffer. */ buf = (const char *) re_string_get_buffer (&mctx->input); if (err == REG_NOMATCH) continue; if (BE (err != REG_NOERROR, 0)) return err; } if (sub_last_idx < sub_top->nlasts) continue; if (sub_last_idx > 0) ++sl_str; /* Then, search for the other last nodes of the sub expression. */ for (; sl_str <= bkref_str_idx; ++sl_str) { int cls_node, sl_str_off; const re_node_set *nodes; sl_str_off = sl_str - sub_top->str_idx; /* The matched string by the sub expression match with the substring at the back reference? */ if (sl_str_off > 0) { if (BE (bkref_str_off >= mctx->input.valid_len, 0)) { /* If we are at the end of the input, we cannot match. */ if (bkref_str_off >= mctx->input.len) break; err = extend_buffers (mctx); if (BE (err != REG_NOERROR, 0)) return err; buf = (const char *) re_string_get_buffer (&mctx->input); } if (buf [bkref_str_off++] != buf[sl_str - 1]) break; /* We don't need to search this sub expression any more. */ } if (mctx->state_log[sl_str] == NULL) continue; /* Does this state have a ')' of the sub expression? */ nodes = &mctx->state_log[sl_str]->nodes; cls_node = find_subexp_node (dfa, nodes, subexp_num, OP_CLOSE_SUBEXP); if (cls_node == -1) continue; /* No. */ if (sub_top->path == NULL) { sub_top->path = calloc (sizeof (state_array_t), sl_str - sub_top->str_idx + 1); if (sub_top->path == NULL) return REG_ESPACE; } /* Can the OP_OPEN_SUBEXP node arrive the OP_CLOSE_SUBEXP node in the current context? */ err = check_arrival (mctx, sub_top->path, sub_top->node, sub_top->str_idx, cls_node, sl_str, OP_CLOSE_SUBEXP); if (err == REG_NOMATCH) continue; if (BE (err != REG_NOERROR, 0)) return err; sub_last = match_ctx_add_sublast (sub_top, cls_node, sl_str); if (BE (sub_last == NULL, 0)) return REG_ESPACE; err = get_subexp_sub (mctx, sub_top, sub_last, bkref_node, bkref_str_idx); if (err == REG_NOMATCH) continue; } } return REG_NOERROR; } /* Helper functions for get_subexp(). */ /* Check SUB_LAST can arrive to the back reference BKREF_NODE at BKREF_STR. If it can arrive, register the sub expression expressed with SUB_TOP and SUB_LAST. */ static reg_errcode_t internal_function get_subexp_sub (re_match_context_t *mctx, const re_sub_match_top_t *sub_top, re_sub_match_last_t *sub_last, int bkref_node, int bkref_str) { reg_errcode_t err; int to_idx; /* Can the subexpression arrive the back reference? */ err = check_arrival (mctx, &sub_last->path, sub_last->node, sub_last->str_idx, bkref_node, bkref_str, OP_OPEN_SUBEXP); if (err != REG_NOERROR) return err; err = match_ctx_add_entry (mctx, bkref_node, bkref_str, sub_top->str_idx, sub_last->str_idx); if (BE (err != REG_NOERROR, 0)) return err; to_idx = bkref_str + sub_last->str_idx - sub_top->str_idx; return clean_state_log_if_needed (mctx, to_idx); } /* Find the first node which is '(' or ')' and whose index is SUBEXP_IDX. Search '(' if FL_OPEN, or search ')' otherwise. TODO: This function isn't efficient... Because there might be more than one nodes whose types are OP_OPEN_SUBEXP and whose index is SUBEXP_IDX, we must check all nodes. E.g. RE: (a){2} */ static int internal_function find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes, int subexp_idx, int type) { int cls_idx; for (cls_idx = 0; cls_idx < nodes->nelem; ++cls_idx) { int cls_node = nodes->elems[cls_idx]; const re_token_t *node = dfa->nodes + cls_node; if (node->type == type && node->opr.idx == subexp_idx) return cls_node; } return -1; } /* Check whether the node TOP_NODE at TOP_STR can arrive to the node LAST_NODE at LAST_STR. We record the path onto PATH since it will be heavily reused. Return REG_NOERROR if it can arrive, or REG_NOMATCH otherwise. */ static reg_errcode_t internal_function check_arrival (re_match_context_t *mctx, state_array_t *path, int top_node, int top_str, int last_node, int last_str, int type) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err = REG_NOERROR; int subexp_num, backup_cur_idx, str_idx, null_cnt; re_dfastate_t *cur_state = NULL; re_node_set *cur_nodes, next_nodes; re_dfastate_t **backup_state_log; unsigned int context; subexp_num = dfa->nodes[top_node].opr.idx; /* Extend the buffer if we need. */ if (BE (path->alloc < last_str + mctx->max_mb_elem_len + 1, 0)) { re_dfastate_t **new_array; int old_alloc = path->alloc; path->alloc += last_str + mctx->max_mb_elem_len + 1; new_array = re_realloc (path->array, re_dfastate_t *, path->alloc); if (BE (new_array == NULL, 0)) { path->alloc = old_alloc; return REG_ESPACE; } path->array = new_array; memset (new_array + old_alloc, '\0', sizeof (re_dfastate_t *) * (path->alloc - old_alloc)); } str_idx = path->next_idx ? path->next_idx : top_str; /* Temporary modify MCTX. */ backup_state_log = mctx->state_log; backup_cur_idx = mctx->input.cur_idx; mctx->state_log = path->array; mctx->input.cur_idx = str_idx; /* Setup initial node set. */ context = re_string_context_at (&mctx->input, str_idx - 1, mctx->eflags); if (str_idx == top_str) { err = re_node_set_init_1 (&next_nodes, top_node); if (BE (err != REG_NOERROR, 0)) return err; err = check_arrival_expand_ecl (dfa, &next_nodes, subexp_num, type); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } } else { cur_state = mctx->state_log[str_idx]; if (cur_state && cur_state->has_backref) { err = re_node_set_init_copy (&next_nodes, &cur_state->nodes); if (BE (err != REG_NOERROR, 0)) return err; } else re_node_set_init_empty (&next_nodes); } if (str_idx == top_str || (cur_state && cur_state->has_backref)) { if (next_nodes.nelem) { err = expand_bkref_cache (mctx, &next_nodes, str_idx, subexp_num, type); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } } cur_state = re_acquire_state_context (&err, dfa, &next_nodes, context); if (BE (cur_state == NULL && err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } mctx->state_log[str_idx] = cur_state; } for (null_cnt = 0; str_idx < last_str && null_cnt <= mctx->max_mb_elem_len;) { re_node_set_empty (&next_nodes); if (mctx->state_log[str_idx + 1]) { err = re_node_set_merge (&next_nodes, &mctx->state_log[str_idx + 1]->nodes); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } } if (cur_state) { err = check_arrival_add_next_nodes (mctx, str_idx, &cur_state->non_eps_nodes, &next_nodes); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } } ++str_idx; if (next_nodes.nelem) { err = check_arrival_expand_ecl (dfa, &next_nodes, subexp_num, type); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } err = expand_bkref_cache (mctx, &next_nodes, str_idx, subexp_num, type); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } } context = re_string_context_at (&mctx->input, str_idx - 1, mctx->eflags); cur_state = re_acquire_state_context (&err, dfa, &next_nodes, context); if (BE (cur_state == NULL && err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } mctx->state_log[str_idx] = cur_state; null_cnt = cur_state == NULL ? null_cnt + 1 : 0; } re_node_set_free (&next_nodes); cur_nodes = (mctx->state_log[last_str] == NULL ? NULL : &mctx->state_log[last_str]->nodes); path->next_idx = str_idx; /* Fix MCTX. */ mctx->state_log = backup_state_log; mctx->input.cur_idx = backup_cur_idx; /* Then check the current node set has the node LAST_NODE. */ if (cur_nodes != NULL && re_node_set_contains (cur_nodes, last_node)) return REG_NOERROR; return REG_NOMATCH; } /* Helper functions for check_arrival. */ /* Calculate the destination nodes of CUR_NODES at STR_IDX, and append them to NEXT_NODES. TODO: This function is similar to the functions transit_state*(), however this function has many additional works. Can't we unify them? */ static reg_errcode_t internal_function check_arrival_add_next_nodes (re_match_context_t *mctx, int str_idx, re_node_set *cur_nodes, re_node_set *next_nodes) { const re_dfa_t *const dfa = mctx->dfa; int result; int cur_idx; reg_errcode_t err = REG_NOERROR; re_node_set union_set; re_node_set_init_empty (&union_set); for (cur_idx = 0; cur_idx < cur_nodes->nelem; ++cur_idx) { int naccepted = 0; int cur_node = cur_nodes->elems[cur_idx]; #ifdef DEBUG re_token_type_t type = dfa->nodes[cur_node].type; assert (!IS_EPSILON_NODE (type)); #endif #ifdef RE_ENABLE_I18N /* If the node may accept `multi byte'. */ if (dfa->nodes[cur_node].accept_mb) { naccepted = check_node_accept_bytes (dfa, cur_node, &mctx->input, str_idx); if (naccepted > 1) { re_dfastate_t *dest_state; int next_node = dfa->nexts[cur_node]; int next_idx = str_idx + naccepted; dest_state = mctx->state_log[next_idx]; re_node_set_empty (&union_set); if (dest_state) { err = re_node_set_merge (&union_set, &dest_state->nodes); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&union_set); return err; } } result = re_node_set_insert (&union_set, next_node); if (BE (result < 0, 0)) { re_node_set_free (&union_set); return REG_ESPACE; } mctx->state_log[next_idx] = re_acquire_state (&err, dfa, &union_set); if (BE (mctx->state_log[next_idx] == NULL && err != REG_NOERROR, 0)) { re_node_set_free (&union_set); return err; } } } #endif /* RE_ENABLE_I18N */ if (naccepted || check_node_accept (mctx, dfa->nodes + cur_node, str_idx)) { result = re_node_set_insert (next_nodes, dfa->nexts[cur_node]); if (BE (result < 0, 0)) { re_node_set_free (&union_set); return REG_ESPACE; } } } re_node_set_free (&union_set); return REG_NOERROR; } /* For all the nodes in CUR_NODES, add the epsilon closures of them to CUR_NODES, however exclude the nodes which are: - inside the sub expression whose number is EX_SUBEXP, if FL_OPEN. - out of the sub expression whose number is EX_SUBEXP, if !FL_OPEN. */ static reg_errcode_t internal_function check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes, int ex_subexp, int type) { reg_errcode_t err; int idx, outside_node; re_node_set new_nodes; #ifdef DEBUG assert (cur_nodes->nelem); #endif err = re_node_set_alloc (&new_nodes, cur_nodes->nelem); if (BE (err != REG_NOERROR, 0)) return err; /* Create a new node set NEW_NODES with the nodes which are epsilon closures of the node in CUR_NODES. */ for (idx = 0; idx < cur_nodes->nelem; ++idx) { int cur_node = cur_nodes->elems[idx]; const re_node_set *eclosure = dfa->eclosures + cur_node; outside_node = find_subexp_node (dfa, eclosure, ex_subexp, type); if (outside_node == -1) { /* There are no problematic nodes, just merge them. */ err = re_node_set_merge (&new_nodes, eclosure); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&new_nodes); return err; } } else { /* There are problematic nodes, re-calculate incrementally. */ err = check_arrival_expand_ecl_sub (dfa, &new_nodes, cur_node, ex_subexp, type); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&new_nodes); return err; } } } re_node_set_free (cur_nodes); *cur_nodes = new_nodes; return REG_NOERROR; } /* Helper function for check_arrival_expand_ecl. Check incrementally the epsilon closure of TARGET, and if it isn't problematic append it to DST_NODES. */ static reg_errcode_t internal_function check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes, int target, int ex_subexp, int type) { int cur_node; for (cur_node = target; !re_node_set_contains (dst_nodes, cur_node);) { int err; if (dfa->nodes[cur_node].type == type && dfa->nodes[cur_node].opr.idx == ex_subexp) { if (type == OP_CLOSE_SUBEXP) { err = re_node_set_insert (dst_nodes, cur_node); if (BE (err == -1, 0)) return REG_ESPACE; } break; } err = re_node_set_insert (dst_nodes, cur_node); if (BE (err == -1, 0)) return REG_ESPACE; if (dfa->edests[cur_node].nelem == 0) break; if (dfa->edests[cur_node].nelem == 2) { err = check_arrival_expand_ecl_sub (dfa, dst_nodes, dfa->edests[cur_node].elems[1], ex_subexp, type); if (BE (err != REG_NOERROR, 0)) return err; } cur_node = dfa->edests[cur_node].elems[0]; } return REG_NOERROR; } /* For all the back references in the current state, calculate the destination of the back references by the appropriate entry in MCTX->BKREF_ENTS. */ static reg_errcode_t internal_function expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes, int cur_str, int subexp_num, int type) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; int cache_idx_start = search_cur_bkref_entry (mctx, cur_str); struct re_backref_cache_entry *ent; if (cache_idx_start == -1) return REG_NOERROR; restart: ent = mctx->bkref_ents + cache_idx_start; do { int to_idx, next_node; /* Is this entry ENT is appropriate? */ if (!re_node_set_contains (cur_nodes, ent->node)) continue; /* No. */ to_idx = cur_str + ent->subexp_to - ent->subexp_from; /* Calculate the destination of the back reference, and append it to MCTX->STATE_LOG. */ if (to_idx == cur_str) { /* The backreference did epsilon transit, we must re-check all the node in the current state. */ re_node_set new_dests; reg_errcode_t err2, err3; next_node = dfa->edests[ent->node].elems[0]; if (re_node_set_contains (cur_nodes, next_node)) continue; err = re_node_set_init_1 (&new_dests, next_node); err2 = check_arrival_expand_ecl (dfa, &new_dests, subexp_num, type); err3 = re_node_set_merge (cur_nodes, &new_dests); re_node_set_free (&new_dests); if (BE (err != REG_NOERROR || err2 != REG_NOERROR || err3 != REG_NOERROR, 0)) { err = (err != REG_NOERROR ? err : (err2 != REG_NOERROR ? err2 : err3)); return err; } /* TODO: It is still inefficient... */ goto restart; } else { re_node_set union_set; next_node = dfa->nexts[ent->node]; if (mctx->state_log[to_idx]) { int ret; if (re_node_set_contains (&mctx->state_log[to_idx]->nodes, next_node)) continue; err = re_node_set_init_copy (&union_set, &mctx->state_log[to_idx]->nodes); ret = re_node_set_insert (&union_set, next_node); if (BE (err != REG_NOERROR || ret < 0, 0)) { re_node_set_free (&union_set); err = err != REG_NOERROR ? err : REG_ESPACE; return err; } } else { err = re_node_set_init_1 (&union_set, next_node); if (BE (err != REG_NOERROR, 0)) return err; } mctx->state_log[to_idx] = re_acquire_state (&err, dfa, &union_set); re_node_set_free (&union_set); if (BE (mctx->state_log[to_idx] == NULL && err != REG_NOERROR, 0)) return err; } } while (ent++->more); return REG_NOERROR; } /* Build transition table for the state. Return 1 if succeeded, otherwise return NULL. */ static int internal_function build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) { reg_errcode_t err; int i, j, ch, need_word_trtable = 0; bitset_word_t elem, mask; int dests_node_malloced = 0; int dest_states_malloced = 0; int ndests; /* Number of the destination states from `state'. */ re_dfastate_t **trtable; re_dfastate_t **dest_states = NULL, **dest_states_word, **dest_states_nl; re_node_set follows, *dests_node; bitset_t *dests_ch; bitset_t acceptable; struct dests_alloc { re_node_set dests_node[SBC_MAX]; bitset_t dests_ch[SBC_MAX]; } *dests_alloc; /* We build DFA states which corresponds to the destination nodes from `state'. `dests_node[i]' represents the nodes which i-th destination state contains, and `dests_ch[i]' represents the characters which i-th destination state accepts. */ if (__libc_use_alloca (sizeof (struct dests_alloc))) dests_alloc = (struct dests_alloc *) alloca (sizeof (struct dests_alloc)); else { dests_alloc = re_malloc (struct dests_alloc, 1); if (BE (dests_alloc == NULL, 0)) return 0; dests_node_malloced = 1; } dests_node = dests_alloc->dests_node; dests_ch = dests_alloc->dests_ch; /* Initialize transiton table. */ state->word_trtable = state->trtable = NULL; /* At first, group all nodes belonging to `state' into several destinations. */ ndests = group_nodes_into_DFAstates (dfa, state, dests_node, dests_ch); if (BE (ndests <= 0, 0)) { if (dests_node_malloced) free (dests_alloc); /* Return 0 in case of an error, 1 otherwise. */ if (ndests == 0) { state->trtable = (re_dfastate_t **) calloc (sizeof (re_dfastate_t *), SBC_MAX); return 1; } return 0; } err = re_node_set_alloc (&follows, ndests + 1); if (BE (err != REG_NOERROR, 0)) goto out_free; if (__libc_use_alloca ((sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX + ndests * 3 * sizeof (re_dfastate_t *))) dest_states = (re_dfastate_t **) alloca (ndests * 3 * sizeof (re_dfastate_t *)); else { dest_states = (re_dfastate_t **) malloc (ndests * 3 * sizeof (re_dfastate_t *)); if (BE (dest_states == NULL, 0)) { out_free: if (dest_states_malloced) free (dest_states); re_node_set_free (&follows); for (i = 0; i < ndests; ++i) re_node_set_free (dests_node + i); if (dests_node_malloced) free (dests_alloc); return 0; } dest_states_malloced = 1; } dest_states_word = dest_states + ndests; dest_states_nl = dest_states_word + ndests; bitset_empty (acceptable); /* Then build the states for all destinations. */ for (i = 0; i < ndests; ++i) { int next_node; re_node_set_empty (&follows); /* Merge the follows of this destination states. */ for (j = 0; j < dests_node[i].nelem; ++j) { next_node = dfa->nexts[dests_node[i].elems[j]]; if (next_node != -1) { err = re_node_set_merge (&follows, dfa->eclosures + next_node); if (BE (err != REG_NOERROR, 0)) goto out_free; } } dest_states[i] = re_acquire_state_context (&err, dfa, &follows, 0); if (BE (dest_states[i] == NULL && err != REG_NOERROR, 0)) goto out_free; /* If the new state has context constraint, build appropriate states for these contexts. */ if (dest_states[i]->has_constraint) { dest_states_word[i] = re_acquire_state_context (&err, dfa, &follows, CONTEXT_WORD); if (BE (dest_states_word[i] == NULL && err != REG_NOERROR, 0)) goto out_free; if (dest_states[i] != dest_states_word[i] && dfa->mb_cur_max > 1) need_word_trtable = 1; dest_states_nl[i] = re_acquire_state_context (&err, dfa, &follows, CONTEXT_NEWLINE); if (BE (dest_states_nl[i] == NULL && err != REG_NOERROR, 0)) goto out_free; } else { dest_states_word[i] = dest_states[i]; dest_states_nl[i] = dest_states[i]; } bitset_merge (acceptable, dests_ch[i]); } if (!BE (need_word_trtable, 0)) { /* We don't care about whether the following character is a word character, or we are in a single-byte character set so we can discern by looking at the character code: allocate a 256-entry transition table. */ trtable = state->trtable = (re_dfastate_t **) calloc (sizeof (re_dfastate_t *), SBC_MAX); if (BE (trtable == NULL, 0)) goto out_free; /* For all characters ch...: */ for (i = 0; i < BITSET_WORDS; ++i) for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1; elem; mask <<= 1, elem >>= 1, ++ch) if (BE (elem & 1, 0)) { /* There must be exactly one destination which accepts character ch. See group_nodes_into_DFAstates. */ for (j = 0; (dests_ch[j][i] & mask) == 0; ++j) ; /* j-th destination accepts the word character ch. */ if (dfa->word_char[i] & mask) trtable[ch] = dest_states_word[j]; else trtable[ch] = dest_states[j]; } } else { /* We care about whether the following character is a word character, and we are in a multi-byte character set: discern by looking at the character code: build two 256-entry transition tables, one starting at trtable[0] and one starting at trtable[SBC_MAX]. */ trtable = state->word_trtable = (re_dfastate_t **) calloc (sizeof (re_dfastate_t *), 2 * SBC_MAX); if (BE (trtable == NULL, 0)) goto out_free; /* For all characters ch...: */ for (i = 0; i < BITSET_WORDS; ++i) for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1; elem; mask <<= 1, elem >>= 1, ++ch) if (BE (elem & 1, 0)) { /* There must be exactly one destination which accepts character ch. See group_nodes_into_DFAstates. */ for (j = 0; (dests_ch[j][i] & mask) == 0; ++j) ; /* j-th destination accepts the word character ch. */ trtable[ch] = dest_states[j]; trtable[ch + SBC_MAX] = dest_states_word[j]; } } /* new line */ if (bitset_contain (acceptable, NEWLINE_CHAR)) { /* The current state accepts newline character. */ for (j = 0; j < ndests; ++j) if (bitset_contain (dests_ch[j], NEWLINE_CHAR)) { /* k-th destination accepts newline character. */ trtable[NEWLINE_CHAR] = dest_states_nl[j]; if (need_word_trtable) trtable[NEWLINE_CHAR + SBC_MAX] = dest_states_nl[j]; /* There must be only one destination which accepts newline. See group_nodes_into_DFAstates. */ break; } } if (dest_states_malloced) free (dest_states); re_node_set_free (&follows); for (i = 0; i < ndests; ++i) re_node_set_free (dests_node + i); if (dests_node_malloced) free (dests_alloc); return 1; } /* Group all nodes belonging to STATE into several destinations. Then for all destinations, set the nodes belonging to the destination to DESTS_NODE[i] and set the characters accepted by the destination to DEST_CH[i]. This function return the number of destinations. */ static int internal_function group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, re_node_set *dests_node, bitset_t *dests_ch) { reg_errcode_t err; int result; int i, j, k; int ndests; /* Number of the destinations from `state'. */ bitset_t accepts; /* Characters a node can accept. */ const re_node_set *cur_nodes = &state->nodes; bitset_empty (accepts); ndests = 0; /* For all the nodes belonging to `state', */ for (i = 0; i < cur_nodes->nelem; ++i) { re_token_t *node = &dfa->nodes[cur_nodes->elems[i]]; re_token_type_t type = node->type; unsigned int constraint = node->constraint; /* Enumerate all single byte character this node can accept. */ if (type == CHARACTER) bitset_set (accepts, node->opr.c); else if (type == SIMPLE_BRACKET) { bitset_merge (accepts, node->opr.sbcset); } else if (type == OP_PERIOD) { #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) bitset_merge (accepts, dfa->sb_char); else #endif bitset_set_all (accepts); if (!(dfa->syntax & RE_DOT_NEWLINE)) bitset_clear (accepts, '\n'); if (dfa->syntax & RE_DOT_NOT_NULL) bitset_clear (accepts, '\0'); } #ifdef RE_ENABLE_I18N else if (type == OP_UTF8_PERIOD) { memset (accepts, '\xff', sizeof (bitset_t) / 2); if (!(dfa->syntax & RE_DOT_NEWLINE)) bitset_clear (accepts, '\n'); if (dfa->syntax & RE_DOT_NOT_NULL) bitset_clear (accepts, '\0'); } #endif else continue; /* Check the `accepts' and sift the characters which are not match it the context. */ if (constraint) { if (constraint & NEXT_NEWLINE_CONSTRAINT) { int accepts_newline = bitset_contain (accepts, NEWLINE_CHAR); bitset_empty (accepts); if (accepts_newline) bitset_set (accepts, NEWLINE_CHAR); else continue; } if (constraint & NEXT_ENDBUF_CONSTRAINT) { bitset_empty (accepts); continue; } if (constraint & NEXT_WORD_CONSTRAINT) { bitset_word_t any_set = 0; if (type == CHARACTER && !node->word_char) { bitset_empty (accepts); continue; } #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) for (j = 0; j < BITSET_WORDS; ++j) any_set |= (accepts[j] &= (dfa->word_char[j] | ~dfa->sb_char[j])); else #endif for (j = 0; j < BITSET_WORDS; ++j) any_set |= (accepts[j] &= dfa->word_char[j]); if (!any_set) continue; } if (constraint & NEXT_NOTWORD_CONSTRAINT) { bitset_word_t any_set = 0; if (type == CHARACTER && node->word_char) { bitset_empty (accepts); continue; } #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) for (j = 0; j < BITSET_WORDS; ++j) any_set |= (accepts[j] &= ~(dfa->word_char[j] & dfa->sb_char[j])); else #endif for (j = 0; j < BITSET_WORDS; ++j) any_set |= (accepts[j] &= ~dfa->word_char[j]); if (!any_set) continue; } } /* Then divide `accepts' into DFA states, or create a new state. Above, we make sure that accepts is not empty. */ for (j = 0; j < ndests; ++j) { bitset_t intersec; /* Intersection sets, see below. */ bitset_t remains; /* Flags, see below. */ bitset_word_t has_intersec, not_subset, not_consumed; /* Optimization, skip if this state doesn't accept the character. */ if (type == CHARACTER && !bitset_contain (dests_ch[j], node->opr.c)) continue; /* Enumerate the intersection set of this state and `accepts'. */ has_intersec = 0; for (k = 0; k < BITSET_WORDS; ++k) has_intersec |= intersec[k] = accepts[k] & dests_ch[j][k]; /* And skip if the intersection set is empty. */ if (!has_intersec) continue; /* Then check if this state is a subset of `accepts'. */ not_subset = not_consumed = 0; for (k = 0; k < BITSET_WORDS; ++k) { not_subset |= remains[k] = ~accepts[k] & dests_ch[j][k]; not_consumed |= accepts[k] = accepts[k] & ~dests_ch[j][k]; } /* If this state isn't a subset of `accepts', create a new group state, which has the `remains'. */ if (not_subset) { bitset_copy (dests_ch[ndests], remains); bitset_copy (dests_ch[j], intersec); err = re_node_set_init_copy (dests_node + ndests, &dests_node[j]); if (BE (err != REG_NOERROR, 0)) goto error_return; ++ndests; } /* Put the position in the current group. */ result = re_node_set_insert (&dests_node[j], cur_nodes->elems[i]); if (BE (result < 0, 0)) goto error_return; /* If all characters are consumed, go to next node. */ if (!not_consumed) break; } /* Some characters remain, create a new group. */ if (j == ndests) { bitset_copy (dests_ch[ndests], accepts); err = re_node_set_init_1 (dests_node + ndests, cur_nodes->elems[i]); if (BE (err != REG_NOERROR, 0)) goto error_return; ++ndests; bitset_empty (accepts); } } return ndests; error_return: for (j = 0; j < ndests; ++j) re_node_set_free (dests_node + j); return -1; } #ifdef RE_ENABLE_I18N /* Check how many bytes the node `dfa->nodes[node_idx]' accepts. Return the number of the bytes the node accepts. STR_IDX is the current index of the input string. This function handles the nodes which can accept one character, or one collating element like '.', '[a-z]', opposite to the other nodes can only accept one byte. */ static int internal_function check_node_accept_bytes (const re_dfa_t *dfa, int node_idx, const re_string_t *input, int str_idx) { const re_token_t *node = dfa->nodes + node_idx; int char_len, elem_len; int i; if (BE (node->type == OP_UTF8_PERIOD, 0)) { unsigned char c = re_string_byte_at (input, str_idx), d; if (BE (c < 0xc2, 1)) return 0; if (str_idx + 2 > input->len) return 0; d = re_string_byte_at (input, str_idx + 1); if (c < 0xe0) return (d < 0x80 || d > 0xbf) ? 0 : 2; else if (c < 0xf0) { char_len = 3; if (c == 0xe0 && d < 0xa0) return 0; } else if (c < 0xf8) { char_len = 4; if (c == 0xf0 && d < 0x90) return 0; } else if (c < 0xfc) { char_len = 5; if (c == 0xf8 && d < 0x88) return 0; } else if (c < 0xfe) { char_len = 6; if (c == 0xfc && d < 0x84) return 0; } else return 0; if (str_idx + char_len > input->len) return 0; for (i = 1; i < char_len; ++i) { d = re_string_byte_at (input, str_idx + i); if (d < 0x80 || d > 0xbf) return 0; } return char_len; } char_len = re_string_char_size_at (input, str_idx); if (node->type == OP_PERIOD) { if (char_len <= 1) return 0; /* FIXME: I don't think this if is needed, as both '\n' and '\0' are char_len == 1. */ /* '.' accepts any one character except the following two cases. */ if ((!(dfa->syntax & RE_DOT_NEWLINE) && re_string_byte_at (input, str_idx) == '\n') || ((dfa->syntax & RE_DOT_NOT_NULL) && re_string_byte_at (input, str_idx) == '\0')) return 0; return char_len; } elem_len = re_string_elem_size_at (input, str_idx); if ((elem_len <= 1 && char_len <= 1) || char_len == 0) return 0; if (node->type == COMPLEX_BRACKET) { const re_charset_t *cset = node->opr.mbcset; # ifdef _LIBC const unsigned char *pin = ((const unsigned char *) re_string_get_buffer (input) + str_idx); int j; uint32_t nrules; # endif /* _LIBC */ int match_len = 0; wchar_t wc = ((cset->nranges || cset->nchar_classes || cset->nmbchars) ? re_string_wchar_at (input, str_idx) : 0); /* match with multibyte character? */ for (i = 0; i < cset->nmbchars; ++i) if (wc == cset->mbchars[i]) { match_len = char_len; goto check_node_accept_bytes_match; } /* match with character_class? */ for (i = 0; i < cset->nchar_classes; ++i) { wctype_t wt = cset->char_classes[i]; if (__iswctype (wc, wt)) { match_len = char_len; goto check_node_accept_bytes_match; } } # ifdef _LIBC nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules != 0) { unsigned int in_collseq = 0; const int32_t *table, *indirect; const unsigned char *weights, *extra; const char *collseqwc; /* This #include defines a local function! */ # include /* match with collating_symbol? */ if (cset->ncoll_syms) extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB); for (i = 0; i < cset->ncoll_syms; ++i) { const unsigned char *coll_sym = extra + cset->coll_syms[i]; /* Compare the length of input collating element and the length of current collating element. */ if (*coll_sym != elem_len) continue; /* Compare each bytes. */ for (j = 0; j < *coll_sym; j++) if (pin[j] != coll_sym[1 + j]) break; if (j == *coll_sym) { /* Match if every bytes is equal. */ match_len = j; goto check_node_accept_bytes_match; } } if (cset->nranges) { if (elem_len <= char_len) { collseqwc = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQWC); in_collseq = __collseq_table_lookup (collseqwc, wc); } else in_collseq = find_collation_sequence_value (pin, elem_len); } /* match with range expression? */ for (i = 0; i < cset->nranges; ++i) if (cset->range_starts[i] <= in_collseq && in_collseq <= cset->range_ends[i]) { match_len = elem_len; goto check_node_accept_bytes_match; } /* match with equivalence_class? */ if (cset->nequiv_classes) { const unsigned char *cp = pin; table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); weights = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_WEIGHTMB); extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB); indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); int32_t idx = findidx (&cp); if (idx > 0) for (i = 0; i < cset->nequiv_classes; ++i) { int32_t equiv_class_idx = cset->equiv_classes[i]; size_t weight_len = weights[idx & 0xffffff]; if (weight_len == weights[equiv_class_idx & 0xffffff] && (idx >> 24) == (equiv_class_idx >> 24)) { int cnt = 0; idx &= 0xffffff; equiv_class_idx &= 0xffffff; while (cnt <= weight_len && (weights[equiv_class_idx + 1 + cnt] == weights[idx + 1 + cnt])) ++cnt; if (cnt > weight_len) { match_len = elem_len; goto check_node_accept_bytes_match; } } } } } else # endif /* _LIBC */ { /* match with range expression? */ #if __GNUC__ >= 2 wchar_t cmp_buf[] = {L'\0', L'\0', wc, L'\0', L'\0', L'\0'}; #else wchar_t cmp_buf[] = {L'\0', L'\0', L'\0', L'\0', L'\0', L'\0'}; cmp_buf[2] = wc; #endif for (i = 0; i < cset->nranges; ++i) { cmp_buf[0] = cset->range_starts[i]; cmp_buf[4] = cset->range_ends[i]; if (wcscoll (cmp_buf, cmp_buf + 2) <= 0 && wcscoll (cmp_buf + 2, cmp_buf + 4) <= 0) { match_len = char_len; goto check_node_accept_bytes_match; } } } check_node_accept_bytes_match: if (!cset->non_match) return match_len; else { if (match_len > 0) return 0; else return (elem_len > char_len) ? elem_len : char_len; } } return 0; } # ifdef _LIBC static unsigned int internal_function find_collation_sequence_value (const unsigned char *mbs, size_t mbs_len) { uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules == 0) { if (mbs_len == 1) { /* No valid character. Match it as a single byte character. */ const unsigned char *collseq = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQMB); return collseq[mbs[0]]; } return UINT_MAX; } else { int32_t idx; const unsigned char *extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB); int32_t extrasize = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB + 1) - extra; for (idx = 0; idx < extrasize;) { int mbs_cnt, found = 0; int32_t elem_mbs_len; /* Skip the name of collating element name. */ idx = idx + extra[idx] + 1; elem_mbs_len = extra[idx++]; if (mbs_len == elem_mbs_len) { for (mbs_cnt = 0; mbs_cnt < elem_mbs_len; ++mbs_cnt) if (extra[idx + mbs_cnt] != mbs[mbs_cnt]) break; if (mbs_cnt == elem_mbs_len) /* Found the entry. */ found = 1; } /* Skip the byte sequence of the collating element. */ idx += elem_mbs_len; /* Adjust for the alignment. */ idx = (idx + 3) & ~3; /* Skip the collation sequence value. */ idx += sizeof (uint32_t); /* Skip the wide char sequence of the collating element. */ idx = idx + sizeof (uint32_t) * (extra[idx] + 1); /* If we found the entry, return the sequence value. */ if (found) return *(uint32_t *) (extra + idx); /* Skip the collation sequence value. */ idx += sizeof (uint32_t); } return UINT_MAX; } } # endif /* _LIBC */ #endif /* RE_ENABLE_I18N */ /* Check whether the node accepts the byte which is IDX-th byte of the INPUT. */ static int internal_function check_node_accept (const re_match_context_t *mctx, const re_token_t *node, int idx) { unsigned char ch; ch = re_string_byte_at (&mctx->input, idx); switch (node->type) { case CHARACTER: if (node->opr.c != ch) return 0; break; case SIMPLE_BRACKET: if (!bitset_contain (node->opr.sbcset, ch)) return 0; break; #ifdef RE_ENABLE_I18N case OP_UTF8_PERIOD: if (ch >= 0x80) return 0; /* FALLTHROUGH */ #endif case OP_PERIOD: if ((ch == '\n' && !(mctx->dfa->syntax & RE_DOT_NEWLINE)) || (ch == '\0' && (mctx->dfa->syntax & RE_DOT_NOT_NULL))) return 0; break; default: return 0; } if (node->constraint) { /* The node has constraints. Check whether the current context satisfies the constraints. */ unsigned int context = re_string_context_at (&mctx->input, idx, mctx->eflags); if (NOT_SATISFY_NEXT_CONSTRAINT (node->constraint, context)) return 0; } return 1; } /* Extend the buffers, if the buffers have run out. */ static reg_errcode_t internal_function extend_buffers (re_match_context_t *mctx) { reg_errcode_t ret; re_string_t *pstr = &mctx->input; /* Double the lengthes of the buffers. */ ret = re_string_realloc_buffers (pstr, pstr->bufs_len * 2); if (BE (ret != REG_NOERROR, 0)) return ret; if (mctx->state_log != NULL) { /* And double the length of state_log. */ /* XXX We have no indication of the size of this buffer. If this allocation fail we have no indication that the state_log array does not have the right size. */ re_dfastate_t **new_array = re_realloc (mctx->state_log, re_dfastate_t *, pstr->bufs_len + 1); if (BE (new_array == NULL, 0)) return REG_ESPACE; mctx->state_log = new_array; } /* Then reconstruct the buffers. */ if (pstr->icase) { #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) { ret = build_wcs_upper_buffer (pstr); if (BE (ret != REG_NOERROR, 0)) return ret; } else #endif /* RE_ENABLE_I18N */ build_upper_buffer (pstr); } else { #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) build_wcs_buffer (pstr); else #endif /* RE_ENABLE_I18N */ { if (pstr->trans != NULL) re_string_translate_buffer (pstr); } } return REG_NOERROR; } /* Functions for matching context. */ /* Initialize MCTX. */ static reg_errcode_t internal_function match_ctx_init (re_match_context_t *mctx, int eflags, int n) { mctx->eflags = eflags; mctx->match_last = -1; if (n > 0) { mctx->bkref_ents = re_malloc (struct re_backref_cache_entry, n); mctx->sub_tops = re_malloc (re_sub_match_top_t *, n); if (BE (mctx->bkref_ents == NULL || mctx->sub_tops == NULL, 0)) return REG_ESPACE; } /* Already zero-ed by the caller. else mctx->bkref_ents = NULL; mctx->nbkref_ents = 0; mctx->nsub_tops = 0; */ mctx->abkref_ents = n; mctx->max_mb_elem_len = 1; mctx->asub_tops = n; return REG_NOERROR; } /* Clean the entries which depend on the current input in MCTX. This function must be invoked when the matcher changes the start index of the input, or changes the input string. */ static void internal_function match_ctx_clean (re_match_context_t *mctx) { int st_idx; for (st_idx = 0; st_idx < mctx->nsub_tops; ++st_idx) { int sl_idx; re_sub_match_top_t *top = mctx->sub_tops[st_idx]; for (sl_idx = 0; sl_idx < top->nlasts; ++sl_idx) { re_sub_match_last_t *last = top->lasts[sl_idx]; re_free (last->path.array); re_free (last); } re_free (top->lasts); if (top->path) { re_free (top->path->array); re_free (top->path); } free (top); } mctx->nsub_tops = 0; mctx->nbkref_ents = 0; } /* Free all the memory associated with MCTX. */ static void internal_function match_ctx_free (re_match_context_t *mctx) { /* First, free all the memory associated with MCTX->SUB_TOPS. */ match_ctx_clean (mctx); re_free (mctx->sub_tops); re_free (mctx->bkref_ents); } /* Add a new backreference entry to MCTX. Note that we assume that caller never call this function with duplicate entry, and call with STR_IDX which isn't smaller than any existing entry. */ static reg_errcode_t internal_function match_ctx_add_entry (re_match_context_t *mctx, int node, int str_idx, int from, int to) { if (mctx->nbkref_ents >= mctx->abkref_ents) { struct re_backref_cache_entry* new_entry; new_entry = re_realloc (mctx->bkref_ents, struct re_backref_cache_entry, mctx->abkref_ents * 2); if (BE (new_entry == NULL, 0)) { re_free (mctx->bkref_ents); return REG_ESPACE; } mctx->bkref_ents = new_entry; memset (mctx->bkref_ents + mctx->nbkref_ents, '\0', sizeof (struct re_backref_cache_entry) * mctx->abkref_ents); mctx->abkref_ents *= 2; } if (mctx->nbkref_ents > 0 && mctx->bkref_ents[mctx->nbkref_ents - 1].str_idx == str_idx) mctx->bkref_ents[mctx->nbkref_ents - 1].more = 1; mctx->bkref_ents[mctx->nbkref_ents].node = node; mctx->bkref_ents[mctx->nbkref_ents].str_idx = str_idx; mctx->bkref_ents[mctx->nbkref_ents].subexp_from = from; mctx->bkref_ents[mctx->nbkref_ents].subexp_to = to; /* This is a cache that saves negative results of check_dst_limits_calc_pos. If bit N is clear, means that this entry won't epsilon-transition to an OP_OPEN_SUBEXP or OP_CLOSE_SUBEXP for the N+1-th subexpression. If it is set, check_dst_limits_calc_pos_1 will recurse and try to find one such node. A backreference does not epsilon-transition unless it is empty, so set to all zeros if FROM != TO. */ mctx->bkref_ents[mctx->nbkref_ents].eps_reachable_subexps_map = (from == to ? ~0 : 0); mctx->bkref_ents[mctx->nbkref_ents++].more = 0; if (mctx->max_mb_elem_len < to - from) mctx->max_mb_elem_len = to - from; return REG_NOERROR; } /* Search for the first entry which has the same str_idx, or -1 if none is found. Note that MCTX->BKREF_ENTS is already sorted by MCTX->STR_IDX. */ static int internal_function search_cur_bkref_entry (const re_match_context_t *mctx, int str_idx) { int left, right, mid, last; last = right = mctx->nbkref_ents; for (left = 0; left < right;) { mid = (left + right) / 2; if (mctx->bkref_ents[mid].str_idx < str_idx) left = mid + 1; else right = mid; } if (left < last && mctx->bkref_ents[left].str_idx == str_idx) return left; else return -1; } /* Register the node NODE, whose type is OP_OPEN_SUBEXP, and which matches at STR_IDX. */ static reg_errcode_t internal_function match_ctx_add_subtop (re_match_context_t *mctx, int node, int str_idx) { #ifdef DEBUG assert (mctx->sub_tops != NULL); assert (mctx->asub_tops > 0); #endif if (BE (mctx->nsub_tops == mctx->asub_tops, 0)) { int new_asub_tops = mctx->asub_tops * 2; re_sub_match_top_t **new_array = re_realloc (mctx->sub_tops, re_sub_match_top_t *, new_asub_tops); if (BE (new_array == NULL, 0)) return REG_ESPACE; mctx->sub_tops = new_array; mctx->asub_tops = new_asub_tops; } mctx->sub_tops[mctx->nsub_tops] = calloc (1, sizeof (re_sub_match_top_t)); if (BE (mctx->sub_tops[mctx->nsub_tops] == NULL, 0)) return REG_ESPACE; mctx->sub_tops[mctx->nsub_tops]->node = node; mctx->sub_tops[mctx->nsub_tops++]->str_idx = str_idx; return REG_NOERROR; } /* Register the node NODE, whose type is OP_CLOSE_SUBEXP, and which matches at STR_IDX, whose corresponding OP_OPEN_SUBEXP is SUB_TOP. */ static re_sub_match_last_t * internal_function match_ctx_add_sublast (re_sub_match_top_t *subtop, int node, int str_idx) { re_sub_match_last_t *new_entry; if (BE (subtop->nlasts == subtop->alasts, 0)) { int new_alasts = 2 * subtop->alasts + 1; re_sub_match_last_t **new_array = re_realloc (subtop->lasts, re_sub_match_last_t *, new_alasts); if (BE (new_array == NULL, 0)) return NULL; subtop->lasts = new_array; subtop->alasts = new_alasts; } new_entry = calloc (1, sizeof (re_sub_match_last_t)); if (BE (new_entry != NULL, 1)) { subtop->lasts[subtop->nlasts] = new_entry; new_entry->node = node; new_entry->str_idx = str_idx; ++subtop->nlasts; } return new_entry; } static void internal_function sift_ctx_init (re_sift_context_t *sctx, re_dfastate_t **sifted_sts, re_dfastate_t **limited_sts, int last_node, int last_str_idx) { sctx->sifted_states = sifted_sts; sctx->limited_states = limited_sts; sctx->last_node = last_node; sctx->last_str_idx = last_str_idx; re_node_set_init_empty (&sctx->limits); } tucnak2-2.48/src/icons.c0000644000175000017500000000055311567373656012033 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include "icons.inc" tucnak2-2.48/src/os_dep.c0000644000175000017500000011306711567373656012176 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #ifdef HAVE_SYS_IOCTL_H #include #endif #ifdef HAVE_LIBGPM #include #endif #if defined(HAVE_SYS_KD_H) #include #endif #if defined(HAVE_SYS_VFS_H) #include #endif int is_safe_in_shell(char c) { return c == '@' || c == '+' || c == '-' || c == '.' || (c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z') || c == '_' || (c >= 'a' && c <= 'z'); } void check_shell_security(char **cmd) { char *c = *cmd; while (*c) { if (!is_safe_in_shell(*c)) *c = '_'; c++; } } int get_e(char *env) { char *v; if ((v = getenv(env))) return atoi(v); return 0; } #if defined(OS2) #define INCL_MOU #define INCL_VIO #define INCL_DOSPROCESS #define INCL_DOSERRORS #define INCL_WINCLIPBOARD #define INCL_WINSWITCHLIST #include #include #include #include #ifdef HAVE_SYS_FMUTEX_H #include #include #endif #ifdef X2 /* from xf86sup - XFree86 OS/2 support driver */ #include #endif #endif /* Terminal size */ #if defined(UNIX) || defined(BEOS) void sigwinch(cba_t cba) { ((void (*)(void))cba.void_)(); } void handle_terminal_resize(int fd, void (*fn)(cba_t)) { #ifdef HAVE_SDL if (sdl) return; #endif install_signal_handler(SIGWINCH, sigwinch, (cba_t)(void*)fn, 0); } void unhandle_terminal_resize(int fd) { #ifdef HAVE_SDL if (sdl) return; #endif install_signal_handler(SIGWINCH, NULL, CBA0, 0); } int term_get_terminal_size(int fd, int *x, int *y) { struct winsize ws; if (!x || !y) return -1; if (ioctl(1, TIOCGWINSZ, &ws) != -1) { if (!(*x = ws.ws_col) && !(*x = get_e("COLUMNS"))) *x = 80; if (!(*y = ws.ws_row) && !(*y = get_e("LINES"))) *y = 24; return 0; } else { !(*x = get_e("COLUMNS")) && (*x = 80); !(*y = get_e("LINES")) && (*y = 24); } return 0; } #elif defined(OS2) #define A_DECL(type, var) type var##1, var##2, *var = _THUNK_PTR_STRUCT_OK(&var##1) ? &var##1 : &var##2 int is_xterm(void) { static int xt = -1; if (xt == -1) xt = !!getenv("WINDOWID"); return xt; } int winch_pipe[2]; int winch_thread_running = 0; #define WINCH_SLEEPTIME 500 /* time in ms for winch thread to sleep */ void winch_thread(void) { /* A thread which regularly checks whether the size of window has changed. Then raise SIGWINCH or notifiy the thread responsible to handle this. */ static int old_xsize, old_ysize; static int cur_xsize, cur_ysize; signal(SIGPIPE, SIG_IGN); if (get_terminal_size(0, &old_xsize, &old_ysize)) return; while (1) { if (get_terminal_size(0, &cur_xsize, &cur_ysize)) return; if ((old_xsize != cur_xsize) || (old_ysize != cur_ysize)) { old_xsize = cur_xsize; old_ysize = cur_ysize; write(winch_pipe[1], "x", 1); /* Resizing may take some time. So don't send a flood of requests?! */ _sleep2(2*WINCH_SLEEPTIME); } else _sleep2(WINCH_SLEEPTIME); } } void winch(void *s) { char c; while (can_read(winch_pipe[0]) && read(winch_pipe[0], &c, 1) == 1); ((void (*)())s)(); } void handle_terminal_resize(int fd, void (*fn)(cba_t)) { if (!is_xterm()) return; if (!winch_thread_running) { if (c_pipe(winch_pipe) < 0) return; winch_thread_running = 1; _beginthread((void (*)(void *))winch_thread, NULL, 0x32000, NULL); } set_handlers(winch_pipe[0], winch, NULL, NULL, (cba_t)(void*)fn); } void unhandle_terminal_resize(int fd) { set_handlers(winch_pipe[0], NULL, NULL, NULL, CBA0); } int get_terminal_size(int fd, int *x, int *y) { if (!x || !y) return -1; if (is_xterm()) { #ifdef X2 /* int fd; */ int arc; struct winsize win; /* fd = STDIN_FILENO; */ arc = ptioctl(1, TIOCGWINSZ, &win); if (arc) { /* debug("%d", errno); */ *x = 80; *y = 24; return 0; } *y = win.ws_row; *x = win.ws_col; /* debug("%d %d", *x, *y); */ return 0; #else *x = 80; *y = 24; return 0; #endif } else { int a[2] = { 0, 0 }; _scrsize(a); *x = a[0]; *y = a[1]; if (*x == 0) { *x = get_e("COLUMNS"); if (*x == 0) *x = 80; } if (*y == 0) { *y = get_e("LINES"); if (*y == 0) *y = 24; } } return 0; } #elif defined(WIN32) #endif /* Pipe */ #if defined(UNIX) || defined(BEOS) void set_bin(int fd) { } int c_pipe(int *fd) { return pipe(fd); } #elif defined(OS2) || defined(WIN32) /*void set_bin(int fd) { setmode(fd, O_BINARY); } */ int c_pipe(int *fd) { int r = pipe(fd); //if (!r) set_bin(fd[0]), set_bin(fd[1]); return r; } #endif /* Filename */ int check_file_name(char *file) { return 1; /* !!! FIXME */ } /* Exec */ int can_twterm() /* Check if it make sense to call a twterm. */ { static int xt = -1; if (xt == -1) xt = !!getenv("TWDISPLAY"); return xt; } #if defined(UNIX) || defined(WIN32) int is_xterm() { static int xt = -1; if (xt == -1) xt = !!getenv("DISPLAY"); return xt; } #elif defined(BEOS) int is_xterm() { return 0; } #endif tcount resize_count = 0; #if defined(UNIX) || defined(WIN32) || defined(BEOS) #if defined(BEOS) && defined(HAVE_SETPGID) int exe(char *path) { int p; int s; if (!(p = fork())) { setpgid(0, 0); system(path); _exit(0); } if (p > 0) waitpid(p, &s, 0); else return system(path); return 0; } #else int exe(char *path) { return system(path); } #endif char *get_clipboard_text() /* !!! FIXME */ { char *ret = 0; if ((ret = mem_alloc(1))!=NULL) ret[0] = 0; return ret; } void set_clipboard_text(char *data) { /* !!! FIXME */ } void set_window_title(char *title) { #ifdef HAVE_SDL if (!sdl) #endif { if (is_xterm()){ if (!title) title=""; printf("\033]0;%s\007", title); fflush(stdout); } } #ifdef HAVE_SDL sdl_set_title(title); #endif /* !!! FIXME */ } char *get_window_title() { /* !!! FIXME */ return NULL; } int resize_window(int x, int y) { return -1; } #elif defined(OS2) int exe(char *path) { int flags = P_SESSION; int pid, ret; char *shell; if (!(shell = GETSHELL)) shell = DEFAULT_SHELL; if (is_xterm()) flags |= P_BACKGROUND; if ((pid = spawnlp(flags, shell, shell, "/c", path, NULL)) != -1) waitpid(pid, &ret, 0); else ret = -1; return ret; } char *get_clipboard_text() { PTIB tib; PPIB pib; HAB hab; HMQ hmq; ULONG oldType; char *ret = 0; DosGetInfoBlocks(&tib, &pib); oldType = pib->pib_ultype; pib->pib_ultype = 3; if ((hab = WinInitialize(0)) != NULLHANDLE) { if ((hmq = WinCreateMsgQueue(hab, 0)) != NULLHANDLE) { if (WinOpenClipbrd(hab)) { ULONG fmtInfo = 0; if (WinQueryClipbrdFmtInfo(hab, CF_TEXT, &fmtInfo)!=FALSE) { ULONG selClipText = WinQueryClipbrdData(hab, CF_TEXT); if (selClipText) { PCHAR pchClipText = (PCHAR)selClipText; if ((ret = mem_alloc(strlen(pchClipText)+1))) strcpy(ret, pchClipText); } } WinCloseClipbrd(hab); } WinDestroyMsgQueue(hmq); } WinTerminate(hab); } pib->pib_ultype = oldType; return ret; } void set_clipboard_text(char *data) { PTIB tib; PPIB pib; HAB hab; HMQ hmq; ULONG oldType; DosGetInfoBlocks(&tib, &pib); oldType = pib->pib_ultype; pib->pib_ultype = 3; if ((hab = WinInitialize(0)) != NULLHANDLE) { if ((hmq = WinCreateMsgQueue(hab, 0)) != NULLHANDLE) { if(WinOpenClipbrd(hab)) { PVOID pvShrObject = NULL; if (DosAllocSharedMem(&pvShrObject, NULL, strlen(data)+1, PAG_COMMIT | PAG_WRITE | OBJ_GIVEABLE) == NO_ERROR) { strcpy(pvShrObject, data); WinSetClipbrdData(hab, (ULONG)pvShrObject, CF_TEXT, CFI_POINTER); } WinCloseClipbrd(hab); } WinDestroyMsgQueue(hmq); } WinTerminate(hab); } pib->pib_ultype = oldType; } char *get_window_title() { #ifndef OS2_DEBUG char *org_switch_title; char *org_win_title = NULL; static PTIB tib = NULL; static PPIB pib = NULL; ULONG oldType; HSWITCH hSw = NULLHANDLE; SWCNTRL swData; HAB hab; HMQ hmq; /* save current process title */ if (!pib) DosGetInfoBlocks(&tib, &pib); oldType = pib->pib_ultype; memset(&swData, 0, sizeof swData); if (hSw == NULLHANDLE) hSw = WinQuerySwitchHandle(0, pib->pib_ulpid); if (hSw!=NULLHANDLE && !WinQuerySwitchEntry(hSw, &swData)) { /*org_switch_title = mem_alloc(strlen(swData.szSwtitle)+1); strcpy(org_switch_title, swData.szSwtitle);*/ /* Go to PM */ pib->pib_ultype = 3; if ((hab = WinInitialize(0)) != NULLHANDLE) { if ((hmq = WinCreateMsgQueue(hab, 0)) != NULLHANDLE) { if ((org_win_title = mem_alloc(MAXNAMEL+1))) WinQueryWindowText(swData.hwnd, MAXNAMEL+1, org_win_title); org_win_title[MAXNAMEL] = 0; /* back From PM */ WinDestroyMsgQueue(hmq); } WinTerminate(hab); } pib->pib_ultype = oldType; } return org_win_title; #else return NULL; #endif } void set_window_title(char *title) { #ifndef OS2_DEBUG static PTIB tib; static PPIB pib; ULONG oldType; static HSWITCH hSw; SWCNTRL swData; HAB hab; HMQ hmq; char new_title[MAXNAMEL]; if (!title) return; if (!pib) DosGetInfoBlocks(&tib, &pib); oldType = pib->pib_ultype; memset(&swData, 0, sizeof swData); if (hSw == NULLHANDLE) hSw = WinQuerySwitchHandle(0, pib->pib_ulpid); if (hSw!=NULLHANDLE && !WinQuerySwitchEntry(hSw, &swData)) { char *p; strncpy(new_title, title, MAXNAMEL-1); new_title[MAXNAMEL-1] = 0; while ((p = strchr(new_title, 1))) *p = ' '; strncpy(swData.szSwtitle, new_title, MAXNAMEL-1); swData.szSwtitle[MAXNAMEL-1] = 0; WinChangeSwitchEntry(hSw, &swData); /* Go to PM */ pib->pib_ultype = 3; if ((hab = WinInitialize(0)) != NULLHANDLE) { if ((hmq = WinCreateMsgQueue(hab, 0)) != NULLHANDLE) { if(swData.hwnd) WinSetWindowText(swData.hwnd, new_title); /* back From PM */ WinDestroyMsgQueue(hmq); } WinTerminate(hab); } } pib->pib_ultype = oldType; #endif } /* void set_window_title(int init, const char *url) { static char *org_switch_title; static char *org_win_title; static PTIB tib; static PPIB pib; static ULONG oldType; static HSWITCH hSw; static SWCNTRL swData; HAB hab; HMQ hmq; char new_title[MAXNAMEL]; switch(init) { case 1: DosGetInfoBlocks( &tib, &pib ); oldType = pib->pib_ultype; memset( &swData, 0, sizeof swData ); hSw = WinQuerySwitchHandle( 0, pib->pib_ulpid ); if( hSw!=NULLHANDLE && !WinQuerySwitchEntry( hSw, &swData ) ) { org_switch_title = mem_alloc( strlen( swData.szSwtitle )+1 ); strcpy( org_switch_title, swData.szSwtitle ); pib->pib_ultype = 3; hab = WinInitialize( 0 ); hmq = WinCreateMsgQueue( hab, 0 ); if( hab!=NULLHANDLE && hmq!=NULLHANDLE ) { org_win_title = mem_alloc( MAXNAMEL+1 ); WinQueryWindowText( swData.hwnd, MAXNAMEL+1, org_win_title ); WinDestroyMsgQueue( hmq ); WinTerminate( hab ); } pib->pib_ultype = oldType; } break; case -1: pib->pib_ultype = 3; hab = WinInitialize( 0 ); hmq = WinCreateMsgQueue( hab, 0 ); if( hSw!=NULLHANDLE && hab!=NULLHANDLE && hmq!=NULLHANDLE ) { strncpy( swData.szSwtitle, org_switch_title, MAXNAMEL ); swData.szSwtitle[MAXNAMEL] = 0; WinChangeSwitchEntry( hSw, &swData ); if( swData.hwnd ) WinSetWindowText( swData.hwnd, org_win_title ); WinDestroyMsgQueue( hmq ); WinTerminate( hab ); } pib->pib_ultype = oldType; mem_free(org_switch_title); mem_free(org_win_title); break; case 0: if ( url != NULL && *url ) { strncpy(new_title, url, MAXNAMEL-10); new_title[MAXNAMEL-10] = 0; strcat(new_title, " - tucnak"); pib->pib_ultype = 3; hab = WinInitialize( 0 ); hmq = WinCreateMsgQueue( hab, 0 ); if( hSw!=NULLHANDLE && hab!=NULLHANDLE && hmq!=NULLHANDLE ) { strncpy( swData.szSwtitle, new_title, MAXNAMEL ); swData.szSwtitle[MAXNAMEL] = 0; WinChangeSwitchEntry( hSw, &swData ); if( swData.hwnd ) WinSetWindowText( swData.hwnd, new_title ); WinDestroyMsgQueue( hmq ); WinTerminate( hab ); } pib->pib_ultype = oldType; } break; } } */ int resize_window(int x, int y) { A_DECL(VIOMODEINFO, vmi); resize_count++; if (is_xterm()) return -1; vmi->cb = sizeof(*vmi); if (VioGetMode(vmi, 0)) return -1; vmi->col = x; vmi->row = y; if (VioSetMode(vmi, 0)) return -1; /* char cmdline[16]; sprintf(cmdline, "mode "); snprint(cmdline + 5, 5, x); strcat(cmdline, ","); snprint(cmdline + strlen(cmdline), 5, y); */ return 0; } #endif /* Threads */ #if defined(HAVE_BEGINTHREAD) || defined(BEOS) || defined(HAVE_PTHREADS) struct tdata { void (*fn)(void *, int); int h; char data[1]; }; void bgt(struct tdata *t) { signal(SIGPIPE, SIG_IGN); t->fn(t->data, t->h); write(t->h, "x", 1); close(t->h); free(t); } #ifdef HAVE_PTHREADS void *bgpt(struct tdata *t) { bgt(t); return NULL; } #endif #endif #if defined(UNIX) || defined(OS2) void terminate_osdep() {} #endif #ifndef BEOS void block_stdin() {} void unblock_stdin() {} #endif #if defined(BEOS) #include int thr_sem_init = 0; sem_id thr_sem; struct list_head active_threads = { &active_threads, &active_threads }; struct active_thread { struct active_thread *next; struct active_thread *prev; thread_id tid; void (*fn)(void *); void *data; }; int32 started_thr(void *data) { struct active_thread *thrd = data; thrd->fn(thrd->data); if (acquire_sem(thr_sem) < B_NO_ERROR) return 0; del_from_list(thrd); free(thrd); release_sem(thr_sem); return 0; } int start_thr(void (*fn)(void *), void *data, char *name) { struct active_thread *thrd; int tid; if (!thr_sem_init) { if ((thr_sem = create_sem(0, "thread_sem")) < B_NO_ERROR) return -1; thr_sem_init = 1; } else if (acquire_sem(thr_sem) < B_NO_ERROR) return -1; if (!(thrd = malloc(sizeof(struct active_thread)))) goto rel; thrd->fn = fn; thrd->data = data; if ((tid = thrd->tid = spawn_thread(started_thr, name, B_NORMAL_PRIORITY, thrd)) < B_NO_ERROR) { free(thrd); rel: release_sem(thr_sem); return -1; } resume_thread(thrd->tid); add_to_list(active_threads, thrd); release_sem(thr_sem); return tid; } void terminate_osdep() { struct list_head *p; struct active_thread *thrd; if (acquire_sem(thr_sem) < B_NO_ERROR) return; foreach(thrd, active_threads) kill_thread(thrd->tid); while ((p = active_threads.next) != &active_threads) { del_from_list(p); free(p); } release_sem(thr_sem); } int start_thread(void (*fn)(void *, int), void *ptr, int l) { int p[2]; struct tdata *t; if (c_pipe(p) < 0) return -1; if (!(t = malloc(sizeof(struct tdata) + l))) return -1; t->fn = fn; t->h = p[1]; memcpy(t->data, ptr, l); if (start_thr((void (*)(void *))bgt, t, "tucnak_thread") < 0) { close(p[0]); close(p[1]); mem_free(t); return -1; } return p[0]; } #elif defined(HAVE_BEGINTHREAD) int start_thread(void (*fn)(void *, int), void *ptr, int l) { int p[2]; struct tdata *t; if (c_pipe(p) < 0) return -1; fcntl(p[0], F_SETFL, O_NONBLOCK); fcntl(p[1], F_SETFL, O_NONBLOCK); if (!(t = malloc(sizeof(struct tdata) + l))) return -1; t->fn = fn; t->h = p[1]; memcpy(t->data, ptr, l); if (_beginthread((void (*)(void *))bgt, NULL, 65536, t) == -1) { close(p[0]); close(p[1]); mem_free(t); return -1; } return p[0]; } #ifdef HAVE_READ_KBD int tp = -1; int ti = -1; void input_thread(void *p) { char c[2]; int h = (int)p; signal(SIGPIPE, SIG_IGN); while (1) { /*c[0] = _read_kbd(0, 1, 1); if (c[0]) if (write(h, c, 1) <= 0) break; else { int w; printf("1");fflush(stdout); c[1] = _read_kbd(0, 1, 1); printf("2");fflush(stdout); w = write(h, c, 2); printf("3");fflush(stdout); if (w <= 0) break; if (w == 1) if (write(h, c+1, 1) <= 0) break; printf("4");fflush(stdout); }*/ /* for the records: _read_kbd(0, 1, 1) will read a char, don't echo it, wait for one available and accept CTRL-C. Knowing that, I suggest we replace this call completly! */ *c = _read_kbd(0, 1, 1); write(h, c, 1); } close(h); } #endif /* #ifdef HAVE_READ_KBD */ #if defined(HAVE_MOUOPEN) && !defined(HAVE_LIBGPM) #define USING_OS2_MOUSE #ifdef HAVE_SYS_FMUTEX_H _fmutex mouse_mutex; int mouse_mutex_init = 0; #endif int mouse_h = -1; struct os2_mouse_spec { int p[2]; void (*fn)(void *, char *, int); void *data; char buffer[sizeof(struct event)]; int bufptr; int terminate; }; void mouse_thread(void *p) { int status; struct os2_mouse_spec *oms = p; A_DECL(HMOU, mh); A_DECL(MOUEVENTINFO, ms); A_DECL(USHORT, rd); A_DECL(USHORT, mask); struct event ev; signal(SIGPIPE, SIG_IGN); ev.ev = EV_MOUSE; if (MouOpen(NULL, mh)) goto ret; mouse_h = *mh; *mask = MOUSE_MOTION_WITH_BN1_DOWN | MOUSE_BN1_DOWN | MOUSE_MOTION_WITH_BN2_DOWN | MOUSE_BN2_DOWN | MOUSE_MOTION_WITH_BN3_DOWN | MOUSE_BN3_DOWN | MOUSE_MOTION; MouSetEventMask(mask, *mh); *rd = MOU_WAIT; status = -1; while (1) { int w, ww; if (MouReadEventQue(ms, rd, *mh)) break; #ifdef HAVE_SYS_FMUTEX_H _fmutex_request(&mouse_mutex, _FMR_IGNINT); #endif if (!oms->terminate) MouDrawPtr(*mh); #ifdef HAVE_SYS_FMUTEX_H _fmutex_release(&mouse_mutex); #endif ev.x = ms->col; ev.y = ms->row; /*debug("status: %d %d %d", ms->col, ms->row, ms->fs);*/ dbg("mouse_thread: ms->fs=%d\n", ms->fs); if (ms->fs & (MOUSE_BN1_DOWN | MOUSE_BN2_DOWN | MOUSE_BN3_DOWN)) ev.b = status = B_DOWN | (ms->fs & MOUSE_BN1_DOWN ? B_LEFT : ms->fs & MOUSE_BN2_DOWN ? B_MIDDLE : B_RIGHT); else if (ms->fs & (MOUSE_MOTION_WITH_BN1_DOWN | MOUSE_MOTION_WITH_BN2_DOWN | MOUSE_MOTION_WITH_BN3_DOWN)) { int b = ms->fs & MOUSE_MOTION_WITH_BN1_DOWN ? B_LEFT : ms->fs & MOUSE_MOTION_WITH_BN2_DOWN ? B_MIDDLE : B_RIGHT; if (status == -1) b |= B_DOWN; else b |= B_DRAG; ev.b = status = b; } else { if (status == -1) continue; ev.b = (status & BM_BUTT) | B_UP; status = -1; } if (hard_write(oms->p[1], (char *)&ev, sizeof(struct event)) != sizeof(struct event)) break; } #ifdef HAVE_SYS_FMUTEX_H _fmutex_request(&mouse_mutex, _FMR_IGNINT); #endif mouse_h = -1; MouClose(*mh); #ifdef HAVE_SYS_FMUTEX_H _fmutex_release(&mouse_mutex); #endif ret: close(oms->p[1]); /*free(oms);*/ } void mouse_handle(struct os2_mouse_spec *oms) { int r; if ((r = read(oms->p[0], oms->buffer + oms->bufptr, sizeof(struct event) - oms->bufptr)) <= 0) { unhandle_mouse(oms); return; } if ((oms->bufptr += r) == sizeof(struct event)) { oms->bufptr = 0; oms->fn(oms->data, oms->buffer, sizeof(struct event)); } } void *handle_mouse(int cons, void (*fn)(void *, char *, int), void *data) { struct os2_mouse_spec *oms; if (is_xterm()) return NULL; #ifdef HAVE_SYS_FMUTEX_H if (!mouse_mutex_init) { if (_fmutex_create(&mouse_mutex, 0)) return NULL; mouse_mutex_init = 1; } #endif /* This is never freed but it's allocated only once */ if (!(oms = malloc(sizeof(struct os2_mouse_spec)))) return NULL; oms->fn = fn; oms->data = data; oms->bufptr = 0; oms->terminate = 0; if (c_pipe(oms->p)) { free(oms); return NULL; } _beginthread(mouse_thread, NULL, 0x10000, (void *)oms); set_handlers(oms->p[0], (void (*)(void *))mouse_handle, NULL, NULL, oms); return oms; } void unhandle_mouse(void *om) { struct os2_mouse_spec *oms = om; want_draw(); oms->terminate = 1; set_handlers(oms->p[0], NULL, NULL, NULL, NULL); close(oms->p[0]); done_draw(); } void want_draw() { A_DECL(NOPTRRECT, pa); #ifdef HAVE_SYS_FMUTEX_H if (mouse_mutex_init) _fmutex_request(&mouse_mutex, _FMR_IGNINT); #endif if (mouse_h != -1) { static int x = -1, y = -1; static tcount c = -1; if (x == -1 || y == -1 || (c != resize_count)) get_terminal_size(1, &x, &y), c = resize_count; pa->row = 0; pa->col = 0; pa->cRow = y - 1; pa->cCol = x - 1; MouRemovePtr(pa, mouse_h); } } void done_draw() { #ifdef HAVE_SYS_FMUTEX_H if (mouse_mutex_init) _fmutex_release(&mouse_mutex); #endif } #endif /* if HAVE_MOUOPEN */ #elif defined(HAVE_CLONE) /* This is maybe buggy... */ #include struct thread_stack { struct thread_stack *next; struct thread_stack *prev; int pid; void *stack; void (*fn)(void *, int); int h; int l; char data[1]; }; void bglt(struct thread_stack *ts) { ts->fn(ts->data, ts->h); write(ts->h, "x", 1); close(ts->h); } struct list_head thread_stacks = { &thread_stacks, &thread_stacks }; int start_thread(void (*fn)(void *, int), void *ptr, int l) { struct thread_stack *ts; int p[2]; int f; if (c_pipe(p) < 0) return -1; fcntl(p[0], F_SETFL, O_NONBLOCK); fcntl(p[1], F_SETFL, O_NONBLOCK); /*if (!(t = malloc(sizeof(struct tdata) + l))) return -1; t->fn = fn; t->h = p[1]; memcpy(t->data, ptr, l);*/ foreach(ts, thread_stacks) { if (ts->pid == -1 || kill(ts->pid, 0)) { if (ts->l >= l) goto ts_ok; else { struct thread_stack *tts = ts; ts = ts->prev; del_from_list(tts); free(tts->stack); free(tts); } } } if (!(ts = malloc(sizeof(struct thread_stack) + l))) goto fail; if (!(ts->stack = malloc(0x10000))) { free(ts); goto fail; } ts->l = l; add_to_list(thread_stacks, ts); ts_ok: ts->fn = fn; ts->h = p[1]; memcpy(ts->data, ptr, l); if ((ts->pid = __clone((int (*)(void *))bglt, (char *)ts->stack + 0x8000, CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | SIGCHLD, ts)) == -1) { fail: close(p[0]); close(p[1]); return -1; } return p[0]; } #elif defined(HAVE_PTHREADS) #include int start_thread(void (*fn)(void *, int), void *ptr, int l) { pthread_t thread; struct tdata *t; int p[2]; int f; if (c_pipe(p) < 0) return -1; fcntl(p[0], F_SETFL, O_NONBLOCK); fcntl(p[1], F_SETFL, O_NONBLOCK); if (!(t = malloc(sizeof(struct tdata) + l))) return -1; t->fn = fn; t->h = p[1]; memcpy(t->data, ptr, l); if (pthread_create(&thread, NULL, (void *(*)(void *))bgpt, t)) { close(p[0]); close(p[1]); mem_free(t); return -1; } return p[0]; } #else /* HAVE_BEGINTHREAD */ int start_thread(void (*fn)(void *, int), void *ptr, int l) { int p[2]; int f, ret; if (c_pipe(p) < 0) return -1; fcntl(p[0], F_SETFL, O_NONBLOCK); fcntl(p[1], F_SETFL, O_NONBLOCK); if (!(f = fork())) { closesocket(p[0]); fn(ptr, p[1]); ret = write(p[1], "x", 1); closesocket(p[1]); exit(0); } if (f == -1) { closesocket(p[0]); closesocket(p[1]); return -1; } closesocket(p[1]); return p[0]; } #endif #ifndef USING_OS2_MOUSE void want_draw() {} void done_draw() {} #endif int get_output_handle() { #ifdef HAVE_SDL if (sdl) return -1; else #endif return 1; } #if defined(OS2) int get_ctl_handle() { return get_input_handle(); } #else int get_ctl_handle() { #ifdef HAVE_SDL if (sdl) return -1; else #endif return 0; } #endif #if defined(BEOS) #elif defined(HAVE_BEGINTHREAD) && defined(HAVE_READ_KBD) int get_input_handle() { int fd[2]; if (ti != -1) return ti; if (is_xterm()) return 0; if (c_pipe(fd) < 0) return 0; ti = fd[0]; tp = fd[1]; _beginthread(input_thread, NULL, 0x10000, (void *)tp); /* #if defined(HAVE_MOUOPEN) && !defined(HAVE_LIBGPM) _beginthread(mouse_thread, NULL, 0x10000, (void *)tp); #endif */ return fd[0]; } #else int get_input_handle() { #ifdef HAVE_SDL if (sdl) return -1; else #endif return 0; } #endif /* defined(HAVE_BEGINTHREAD) && defined(HAVE_READ_KBD) */ #ifndef HAVE_CFMAKERAW void cfmakeraw(struct termios *t) { t->c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON); t->c_oflag &= ~OPOST; t->c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN); t->c_cflag &= ~(CSIZE|PARENB); t->c_cflag |= CS8; t->c_cc[VMIN] = 1; t->c_cc[VTIME] = 0; } #endif #ifdef HAVE_LIBGPM struct gpm_mouse_spec { int h; void (*fn)(void *, char *, int); void *data; }; void gpm_mouse_in(cba_t cba) { Gpm_Event gev; struct event ev; struct gpm_mouse_spec *gms; gms=cba.gpm_mouse_spec; if (Gpm_GetEvent(&gev) <= 0) { set_handlers(gms->h, NULL, NULL, NULL, CBA0); return; } ev.ev = EV_MOUSE; ev.x = gev.x - 1; ev.y = gev.y - 1; dbg("gpm_mouse_in: gev.buttons=%d\n", gev.buttons); if (gev.buttons & GPM_B_LEFT) ev.b = B_LEFT; else if (gev.buttons & GPM_B_MIDDLE) ev.b = B_MIDDLE; else if (gev.buttons & GPM_B_RIGHT) ev.b = B_RIGHT; else return; if (gev.type & GPM_DOWN) ev.b |= B_DOWN; else if (gev.type & GPM_UP) ev.b |= B_UP; else if (gev.type & GPM_DRAG) ev.b |= B_DRAG; else return; gms->fn(gms->data, (char *)&ev, sizeof(struct event)); } void *handle_mouse(int cons, void (*fn)(void *, char *, int), void *data) { int h; Gpm_Connect conn; struct gpm_mouse_spec *gms; conn.eventMask = ~GPM_MOVE; conn.defaultMask = GPM_MOVE; conn.minMod = 0; conn.maxMod = 0; if ((h = Gpm_Open(&conn, cons)) < 0) return NULL; if (!(gms = mem_alloc(sizeof(struct gpm_mouse_spec)))) return NULL; gms->h = h; gms->fn = fn; gms->data = data; set_handlers(h, gpm_mouse_in, NULL, NULL, (cba_t)gms); return gms; } void unhandle_mouse(void *h) { struct gpm_mouse_spec *gms = h; set_handlers(gms->h, NULL, NULL, NULL, CBA0); Gpm_Close(); mem_free(gms); } #elif !defined(USING_OS2_MOUSE) void *handle_mouse(int cons, void (*fn)(void *, char *, int), void *data) { return NULL; } void unhandle_mouse(void *data) { } #endif /* #ifdef HAVE_LIBGPM */ #if defined(OS2) int get_system_env() { if (is_xterm()) return 0; return ENV_OS2VIO; /* !!! FIXME: telnet */ } #elif defined(BEOS) int get_system_env() { char *term = getenv("TERM"); if (!term || (upcase(term[0]) == 'B' && upcase(term[1]) == 'E')) return ENV_BE; return 0; } #else int get_system_env() { return 0; } #endif void exec_new_links(char *xterm, char *exe, char *param) { char *str; if (!(str = mem_alloc(strlen(xterm) + 1 + strlen(exe) + 1 + strlen(param) + 1))) return; sprintf(str, "%s %s %s", xterm, exe, param); exec_on_terminal(str, "", 2); mem_free(str); } void open_in_new_twterm(struct terminal *term, char *exe, char *param) { char *twterm; if (!(twterm = getenv("TUCNAK_TWTERM"))) twterm = "twterm -e"; exec_new_links(twterm, exe, param); } void open_in_new_xterm(struct terminal *term, char *exe, char *param) { char *xterm; if (!(xterm = getenv("TUCNAK_XTERM"))) xterm = "xterm -e"; exec_new_links(xterm, exe, param); } void open_in_new_screen(struct terminal *term, char *exe, char *param) { exec_new_links("screen", exe, param); } #ifdef OS2 void open_in_new_vio(struct terminal *term, char *exe, char *param) { exec_new_links("cmd /c start /c /f /win", exe, param); } void open_in_new_fullscreen(struct terminal *term, char *exe, char *param) { exec_new_links("cmd /c start /c /f /fs", exe, param); } #endif #ifdef BEOS void open_in_new_be(struct terminal *term, char *exe, char *param) { exec_new_links("Terminal", exe, param); } #endif struct { int env; void (*fn)(struct terminal *term, char *, char *); char *text; char *hk; } oinw[] = { {ENV_XWIN, open_in_new_xterm, CTEXT(T_XTERM), CTEXT(T_HK_XTERM)}, {ENV_TWIN, open_in_new_twterm, CTEXT(T_TWTERM), CTEXT(T_HK_TWTERM)}, {ENV_SCREEN, open_in_new_screen, CTEXT(T_SCREEN), CTEXT(T_HK_SCREEN)}, #ifdef OS2 {ENV_OS2VIO, open_in_new_vio, CTEXT(T_WINDOW), CTEXT(T_HK_WINDOW)}, {ENV_OS2VIO, open_in_new_fullscreen, CTEXT(T_FULL_SCREEN), CTEXT(T_HK_FULL_SCREEN)}, #endif #ifdef BEOS {ENV_BE, open_in_new_be, CTEXT(T_BEOS_TERMINAL), CTEXT(T_HK_BEOS_TERMINAL)}, #endif {0, NULL, NULL} }; struct open_in_new *get_open_in_new(int environment) { int i; struct open_in_new *oin = DUMMY; int noin = 0; for (i = 0; oinw[i].env; i++) if ((environment & oinw[i].env) == oinw[i].env) { struct open_in_new *x; if (!(x = mem_realloc(oin, (noin + 2) * sizeof(struct open_in_new)))) continue; oin = x; oin[noin].text = oinw[i].text; oin[noin].hk = oinw[i].hk; oin[noin].fn = oinw[i].fn; noin++; oin[noin].text = NULL; oin[noin].hk = NULL; oin[noin].fn = NULL; } if (oin == DUMMY) return NULL; return oin; } int can_resize_window(int environment) { if (environment & ENV_OS2VIO) return 1; return 0; } int can_open_os_shell(int environment) { #ifdef OS2 if (environment & ENV_XWIN) return 0; #endif return 1; } /*int mkdir_p(const char *s,mode_t mode) { struct stat st; gchar *dir,*c; if (!stat(s,&st)) if (S_ISDIR(st.st_mode)) return(0); dir = g_strdup((char *)s); c=strrchr(dir,'/'); if (c==NULL) { g_free(dir); return(-1); } *c='\0'; if (strlen(dir)==0) { g_free(dir); return(-1); } mkdir_p(dir,mode); g_free(dir); return(mkdir(s,mode)); } */ #ifndef HAVE_LOCKF #if defined(_MSC_VER) || defined(__MINGW32__) // TODO #else /* lockf is a simplified interface to fcntl's locking facilities. */ /* thanx to glibc */ int lockf (int fd, int cmd, off_t len) { struct flock fl; memset ((char *) &fl, '\0', sizeof (fl)); /* lockf is always relative to the current file position. */ fl.l_whence = SEEK_CUR; fl.l_start = 0; fl.l_len = len; switch (cmd) { case F_TEST: /* Test the lock: return 0 if FD is unlocked or locked by this process; return -1, set errno to EACCES, if another process holds the lock. */ if (fcntl (fd, F_GETLK, &fl) < 0) return -1; if (fl.l_type == F_UNLCK || fl.l_pid == getpid ()) return 0; errno=EACCES; return -1; case F_ULOCK: fl.l_type = F_UNLCK; cmd = F_SETLK; break; case F_LOCK: fl.l_type = F_WRLCK; cmd = F_SETLKW; break; case F_TLOCK: fl.l_type = F_WRLCK; cmd = F_SETLK; break; default: errno=EINVAL; return -1; } return fcntl (fd, cmd, &fl); } #endif #endif #if defined(_MSC_VER) || defined(__MINGW32__) //TODO #else void disable_screensaver(){ char ioctlarg[2]; char *term; int vcterm; if (cfg->dssaver == 0) return; term = getenv("TERM"); if (!term) vcterm = 1; else vcterm = (!strncmp(term, "con", 3) || !strncmp(term, "linux", 5)); /* setterm -blank 0 */ if (vcterm) { printf("\033[9;0]"); fflush(stdout); } #ifdef TIOCLINUX /* setterm -powersave off */ ioctlarg[0]=10; ioctlarg[1]=0; /* off */ ioctl(0, TIOCLINUX, ioctlarg); #endif /* setterm -powerdown 0 */ printf("\033[14;0]"); fflush(stdout); /* xset -dpms */ if (getenv("DISPLAY")){ // system("xset -dpms ; xset s off"); pid_t pid=fork(); if (pid==0){ execlp("xset", "xset", "s", "off", "-dpms", NULL); exit(-1); } waitpid(pid, NULL, 0); } } #endif int save_screen(){ if (!is_xterm()) return 1; printf("\033[?1049h"); fflush(stdout); return 0; } int restore_screen(){ if (!is_xterm()) return 1; printf("\033[?1049l"); fflush(stdout); return 0; } #define MTAB_DELIM " \t" gchar * get_mp(gchar *device){ FILE *f; char *filename,*s,*token_ptr; GString *gs; gchar *dev,*mp,*ret; f=fopen(filename="/proc/mounts","r"); if (!f) f=fopen(filename="/etc/mtab", "r"); if (!f) return 0; ret=NULL; gs=g_string_sized_new(100); while ((s=safe_fgets(gs,f,1))!=NULL){ dev=strtok_r(s,MTAB_DELIM,&token_ptr); mp=strtok_r(NULL, MTAB_DELIM, &token_ptr); if (!dev || !mp) continue; if (strcmp(dev,device)==0){ ret=g_strdup(mp); break; } } g_string_free(gs, TRUE); fclose(f); return ret; } int floppy_is_mounted(gchar *floppydev, gchar *path_to_floppy){ gchar *mp; int ret; mp=get_mp(floppydev); if (!mp) return 0; ret=!strcmp(mp,path_to_floppy); g_free(mp); return ret; } #ifdef UNIX int is_in_mtab(gchar *mountpoint){ FILE *f; char *filename,*s,*token_ptr; GString *gs; gchar *dev,*mp; int ret; /*dbg("mountpoint ='%s'\n", mountpoint);*/ f=fopen(filename="/proc/mounts","r"); if (!f) f=fopen(filename="/etc/mtab", "r"); if (!f) return 0; ret=0; gs=g_string_sized_new(100); while ((s=safe_fgets(gs,f,1))!=NULL){ dev=strtok_r(s,MTAB_DELIM,&token_ptr); mp=strtok_r(NULL, MTAB_DELIM, &token_ptr); if (!dev || !mp) continue; if (strcmp(mp,mountpoint)==0){ ret=1; break; } } g_string_free(gs, TRUE); fclose(f); /*dbg("return %d\n", ret);*/ return ret; } #else int is_in_mtab(gchar *mountpoint){ return 0; } #endif int do_mount(gchar *mountcmd){ return 0; } static int sound_fd=-1; int sound_pid=-1; int init_sound(){ #if !(defined(_MSC_VER) || defined(__MINGW32__)) int ret,i; int fds[2]; if (pipe(fds)) internal_("Can't create pipe"); /*dbg("sound pipe %d->%d\n", fds[1], fds[0]);*/ ret=fork(); if (ret<0){ internal_("Can't fork"); } if (ret) { /* parent */ dbg("sound_pid = %d\n", ret); sound_pid = ret; closesocket(fds[0]); sound_fd=fds[1]; return 0; } /* child */ sleep(1); closesocket(fds[1]); close(0); dup2(fds[0], 0); closesocket(fds[0]); for (i=3;i<1024;i++) close(i); #ifdef _MSC_VER _execlp("soundwrapper", "soundwrapper", "soundwrapper", NULL); #else execlp("soundwrapper", "soundwrapper", NULL); #endif exit(-1); #else return 0; #endif } int free_sound(){ #if !(defined(_MSC_VER) || defined(__MINGW32__)) int cmd, ret; if (sound_fd<0) return -1; cmd=-1; ret=write(sound_fd, &cmd, sizeof(int)); if (ret!=sizeof(int)){ char errstr[1030]; dbg("error writing sound_fd=%d (error %d) '%s'\n", sound_fd, errno, strerror_r(errno, errstr, sizeof(errstr))); } close(sound_fd); sound_fd=-1; #endif return 0; } int abort_sound(){ if (sound_fd<0) return -1; close(sound_fd); sound_fd=-1; return 0; } int sound(int freq){ int ret; if (sound_fd<0) { /* dbg("sound_fd is closed\n");*/ return -1; } ret=write(sound_fd, &freq, sizeof(int)); if (ret!=sizeof(int)){ char errstr[1030]; dbg("error writing sound_fd=%d (error %d) '%s'\n", sound_fd, errno, strerror_r(errno, errstr, sizeof(errstr))); close(sound_fd); sound_fd=-1; return -1; } return 0; } double fdf(int fd){ #if defined(HAVE_SYS_VFS_H) struct statfs sf; double ret; if (fstatfs(fd, &sf)) return -1.0; ret=(double)sf.f_bsize*(double)sf.f_bavail; /* dbg("bsize=%ld, bavail=%ld, ret=%f\n", sf.f_bsize, sf.f_bavail, ret);*/ return ret; #else return -1.0; #endif } tucnak2-2.48/src/player.c0000644000175000017500000002076211567373656012220 00000000000000/* player - WAV player Copyright (C) 2010 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #if defined(HAVE_SNDFILE) int sw_player_kbd_func(struct subwin *sw, struct event *ev, int fw){ switch(kbd_action(KM_MAIN,ev)){ case ACT_LEFT: if (!ssbd) break; MUTEX_LOCK(ssbd->seek); ssbd->seek -= 2000; MUTEX_UNLOCK(ssbd->seek); return 1; case ACT_RIGHT: if (!ssbd) break; MUTEX_LOCK(ssbd->seek); ssbd->seek += 1000; MUTEX_UNLOCK(ssbd->seek); return 1; case ACT_DOWN: if (!ssbd) break; MUTEX_LOCK(ssbd->seek); ssbd->seek -= 10000; MUTEX_UNLOCK(ssbd->seek); return 1; case ACT_UP: if (!ssbd) break; MUTEX_LOCK(ssbd->seek); ssbd->seek += 10000; MUTEX_UNLOCK(ssbd->seek); return 1; } return 0; } int sw_player_mouse_func(struct subwin *sw, struct event *ev, int fw){ // if (!sdl) return 0; return 0; } void sw_player_redraw(struct subwin *sw, int flags){ int i, j, x, y0, y, c; int prev_y, prev_h, play_y, play_h; //dbg("sw_player_redraw(%d)\n", sw->gdirty); if (sw->pl_rate == 0) return; if (sw->pl_channels == 0) return; #ifdef HAVE_SDL SDL_Rect area; if (sdl) { if (sw->h - PLAYER_H <= 0) return; prev_y = 0; prev_h = PREVIEW_H * FONT_H; play_y = PREVIEW_H * FONT_H; play_h = sw->screen->h - (PREVIEW_H) * FONT_H; // PLAYER_H is included in sw->screen->h fill_area(sw->x, sw->y, sw->w, sw->h - PLAYER_H , 0); /* area.x = 0; area.y = prev_y; area.w = sw->screen->w; area.h = prev_h; SDL_FillRect(sw->screen, &area, makecol(20, 20, 20));*/ if (sw->pl_preview_screen){ SDL_BlitSurface(sw->pl_preview_screen, NULL, sw->screen, NULL); x = ((long long)sw->pl_preview_w * ssbd->played) / sw->pl_len; line(sw->screen, x, prev_y, x, prev_y + prev_h, sdl->gr[8]); } area.x = 0; area.y = play_y; area.w = sw->screen->w; area.h = play_h; SDL_FillRect(sw->screen, &area, makecol(40, 40, 40)); //dbg("shapelen=%d channels=%d\n", sw->pl_shapelen, sw->pl_channels); if (sw->pl_pxlen == 0) return; c = sdl->green; sw_player_check_bounds(sw); int cursor = ssbd->played / sw->pl_pxlen; for (x = 0; x < sw->screen->w; x++){ i = x + sw->pl_ofs; if (i >= sw->pl_shapelen) continue; if (i < 0) continue; for (j = 0; j < sw->pl_channels; j++){ y0 = play_y + play_h / (2 * sw->pl_channels); y = (sw->pl_shapebuf[i * sw->pl_channels + j] * play_h / 2) / (sw->pl_channels * 256); if (cursor == i){ y = play_h / (sw->pl_channels * 2); line(sw->screen, x, y0+y, x, y0-y, sdl->gr[15]); }else{ line(sw->screen, x, y0+y, x, y0-y, c); } } } } #endif int dsec1 = (10 * ssbd->played) / (sw->pl_rate * sw->pl_channels); int dsec2 = (10 * sw->pl_len) / (sw->pl_rate * sw->pl_channels); clip_printf(sw, 1, sw->h - PLAYER_H, COL_NORM, "%d:%02d.%d / %d:%02d.%d", dsec1 / 600, (dsec1 % 600)/10, dsec1 % 10, dsec2 / 600, (dsec2 % 600)/10, dsec2 % 10); } void sw_player_check_bounds(struct subwin *sw){ #ifdef HAVE_SDL if (!sdl) return; if (sw->pl_pxlen == 0) return; int cursor = ssbd->played / sw->pl_pxlen; if (cursor - sw->pl_ofs < 0){ sw->pl_ofs = cursor - sw->screen->w / 5; } if (cursor - sw->pl_ofs > (sw->screen->w * 4) / 5){ sw->pl_ofs = cursor - (sw->screen->w * 4) / 5; } #endif } void sw_player_raise(struct subwin *sw){ #ifdef HAVE_SDL sw->gdirty=1; #endif } void sw_player_free(struct subwin *sw){ #ifdef HAVE_SDL CONDGFREE(sw->pl_shapebuf); if (sw->pl_preview_screen) SDL_FreeSurface(sw->pl_preview_screen); #endif } #define MS2PX 20 void player_play(char *filename){ struct subwin *sw; int i, j; SF_INFO sfinfo; SNDFILE *sf; short *pxbuf, *sh; double *sum; short *avg; short *max; int shapei = 0; for (i=0; isubwins->len; i++){ sw = (struct subwin *)g_ptr_array_index(gses->subwins, i); if (sw->type != SWT_PLAYER) continue; sw_set_ontop(i, 0); goto found; } sw = new_subwin(SWT_PLAYER, VTEXT(T_SW_PLAYER), NULL); sw_set_ontop(gses->subwins->len-1, 0); found:; redraw_later(); #ifdef HAVE_SDL sw->gdirty=1; #endif sw->pl_len = 0; sw->pl_channels = 1; memset (&sfinfo, 0, sizeof (sfinfo)); sf = sf_open(filename, SFM_READ, &sfinfo); if (!sf) { log_addf("Can't play %s - %s", filename, sf_strerror (NULL)); return; } sw->pl_len = sf_seek(sf, 0L, SEEK_END); if (sw->pl_len < 0) { log_addf("Can't seek to end %s - %s", filename, sf_strerror(sf)); sf_close(sf); return; } if (sf_seek(sf, 0L, SEEK_SET) < 0) { log_addf("Can't seek to start %s - %s", filename, sf_strerror(sf)); sf_close(sf); return; } sw->pl_channels = sfinfo.channels; sw->pl_rate = sfinfo.samplerate; sw->pl_pxlen = sw->pl_channels * sw->pl_rate * MS2PX / 1000; dbg("pl_len=%d pxlen=%d\n", sw->pl_len, sw->pl_pxlen); CONDGFREE(sw->pl_shapebuf); sw->pl_shapebuf = (unsigned char *)g_new0(char, sw->pl_channels * (sw->pl_len / sw->pl_pxlen)+1); sw->pl_shapelen = 0; #ifdef HAVE_SDL if (sw->pl_preview_screen) SDL_FreeSurface(sw->pl_preview_screen); sw->pl_preview_screen = SDL_CreateRGBSurface(SDL_SWSURFACE, sw->screen->w, PREVIEW_H * FONT_H, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Gmask, 0); sw->pl_preview_w = sw->pl_preview_screen->w; SDL_FillRect(sw->pl_preview_screen, NULL, makecol(20, 20, 20)); pxbuf = g_new0(short, sw->pl_pxlen); sum = g_new0(double, sw->pl_channels); avg = g_new0(short, sw->pl_channels); max = g_new0(short, sw->pl_channels); shapei = 0; int readed = 0; while(1){ int readlen = sf_read_short(sf, pxbuf, sw->pl_pxlen); if (readlen <= 0) break; readed += readlen; for (j = 0; j < sw->pl_channels; j++) { sum[j] = 0.0; max[j] = 0; } sh = pxbuf; for (i = 0; i < readlen; i++){ for (j = 0; j < sw->pl_channels; j++){ sum[j] += *sh; sh++; } } for (j = 0; j < sw->pl_channels; j++) avg[j] = (short)(sum[j] / readlen); sh = pxbuf; for (i = 0; i < readlen; i++){ for (j = 0; j < sw->pl_channels; j++){ int d = *sh - avg[j]; if (d < 0) d = -d; if (d > max[j]) max[j] = d; sh++; } } int prev_sh = 0; for (j = 0; j < sw->pl_channels; j++) { int shape = 0; // dbg("max[%d]=%5d ", j, max[j]); if (max[j] == 0) { shape = 0; }else{ //shape = log(max[j]) * 256.0 / log(32768); shape = max[j] * 256.0 / 32768; if (shape > 255) shape = 255; } // dbg("shape=%3d ", shape); sw->pl_shapebuf[shapei] = shape; shapei++; prev_sh += shape; } //dbg("\n"); int x = ((long long)sw->pl_preview_screen->w * readed) / sw->pl_len; int y0 = sw->pl_preview_screen->h / 2; int y = sw->pl_preview_screen->h * prev_sh / (2 * 256 * sw->pl_channels); line(sw->pl_preview_screen, x, y0+y, x, y0-y, makecol(0, 128, 0)); sw->pl_shapelen++; } g_free(pxbuf); g_free(sum); g_free(avg); g_free(max); #endif sf_close(sf); ssbd_play_file(ssbd, filename); gses->icon=ssbd->playicon; } #else int sw_player_kbd_func(struct subwin *sw, struct event *ev, int fw){ return 0; } int sw_player_mouse_func(struct subwin *sw, struct event *ev, int fw){ return 0; } void sw_player_redraw(struct subwin *sw, int flags){ } void sw_player_check_bounds(struct subwin *sw){ } void sw_player_raise(struct subwin *sw){ } #endif tucnak2-2.48/src/fifo.c0000644000175000017500000001354211567373656011645 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" struct fifo *glog = NULL; struct fifo *gtalk = NULL; //static struct fifo *gsked = NULL; struct fifo *init_fifo(int maxlen){ struct fifo *fifo; /* dbg("init_fifo(%d)\n", maxlen);*/ fifo = g_new0(struct fifo, 1); fifo->maxlen = maxlen; fifo->items = g_ptr_array_new(); return fifo; } void free_fifo(struct fifo *fifo){ sw_unset_unread(fifo); g_ptr_array_free_all(fifo->items); g_free(fifo); } void drop_fifo(struct fifo *fifo){ int i; for (i=fifo->items->len-1; i>=0; i--){ g_free(g_ptr_array_index(fifo->items, i)); g_ptr_array_remove_index_fast(fifo->items, i); } } void fifo_resize(struct fifo *fifo, int x, int y, int w, int h){ fifo->x = x; fifo->y = y; fifo->w = w; fifo->h = h; } int fifo_len(struct fifo *fifo){ return fifo->items->len; } gchar *fifo_index(struct fifo *fifo, int index){ return g_ptr_array_index(fifo->items, index); } static void fifo_check_len(struct fifo *fifo){ gpointer p; if (fifo->items->len == fifo->maxlen){ p = g_ptr_array_index(fifo->items, 0); g_free(p); g_ptr_array_remove_index(fifo->items, 0); } } static gchar *hour_min(void){ time_t now; struct tm utc; gchar *res; time(&now); gmtime_r(&now, &utc); res=g_strdup_printf("%2d:%02d",utc.tm_hour, utc.tm_min); return res; } void fifo_adds(struct fifo *fifo, gchar *str){ int l,i; gchar *c, *now; struct subwin *sw; if (!fifo || !str) return; if (!fifo->withouttime){ now = hour_min(); c = g_strconcat(now, " ", str, NULL); g_free(now); }else{ c = g_strdup(str); } l = strlen(c); if (l>0 && c[l-1]=='\n') c[l-1]='\0'; if (l>0 && c[l-1]=='\r') c[l-1]='\0'; if (gses){ for (i=0; isubwins->len; i++){ sw = (struct subwin *)g_ptr_array_index(gses->subwins, i); if (sw->fifo!=fifo) continue; if (sw->offset > 0 && sw->offset < sw->maxlen-sw->h) sw->offset++; } } g_ptr_array_add(fifo->items, c); if (ctest && ctest->logfile && fifo==glog){ fprintf(ctest->logfile, "%s\n", c); } fifo_check_len(fifo); sw_set_unread(fifo); if (term) redraw_later(); } void fifo_addf(struct fifo *fifo, char *m, ...){ gchar *c, *d, *now; int l; va_list v; if (!fifo) return; va_start(v, m); c = g_strdup_vprintf(m, v); va_end(v); l = strlen(c); if (l>0 && c[l-1]=='\n') c[l-1]='\0'; if (l>0 && c[l-1]=='\r') c[l-1]='\0'; if (!fifo->withouttime){ now = hour_min(); d = g_strconcat(now, " ", c, NULL); g_free(now); g_free(c); } else{ d=c; } g_ptr_array_add(fifo->items, d); if (ctest && ctest->logfile && fifo==glog){ fprintf(ctest->logfile, "%s\n", d); } fifo_check_len(fifo); sw_set_unread(fifo); if (term) redraw_later(); } void fifo_addfq(struct fifo *fifo, char *m, ...){ gchar *c, *d, *now; int l; va_list v; if (!fifo) return; va_start(v, m); c = g_strdup_vprintf(m, v); va_end(v); l = strlen(c); if (l>0 && c[l-1]=='\n') c[l-1]='\0'; if (l>0 && c[l-1]=='\r') c[l-1]='\0'; if (!fifo->withouttime){ now = hour_min(); d = g_strconcat(now, " ", c, NULL); g_free(now); g_free(c); } else{ d=c; } g_ptr_array_add(fifo->items, d); fifo_check_len(fifo); if (term) redraw_later(); } void log_addf(char *m, ...){ gchar *c, *d, *now; int l; va_list v; if (!glog) return; va_start(v, m); c = g_strdup_vprintf(m, v); va_end(v); l = strlen(c); if (l>0 && c[l-1]=='\n') c[l-1]='\0'; if (l>0 && c[l-1]=='\r') c[l-1]='\0'; now = hour_min(); d = g_strconcat(now, " ", c, NULL); g_free(now); g_free(c); g_ptr_array_add(glog->items, d); if (ctest && ctest->logfile){ fprintf(ctest->logfile, "%s\n", d); } fifo_check_len(glog); if (term) redraw_later(); } void log_draw(struct fifo *fifo){ int i,index; gchar *c; fill_area(fifo->x, fifo->y, fifo->w, fifo->h, COL_BG); for (i=0;ih; i++){ index = fifo->items->len-fifo->h+i; if (index<0) c = "~"; else c = g_ptr_array_index(fifo->items, index); if (c && strlen(c)>fifo->ho) print_text(fifo->x, fifo->y+i, fifo->w, c+fifo->ho, COL_NORM); } } int save_fifo_to_file(struct fifo *fifo, gchar *filename){ FILE *f; int i,ret; gchar *c; f = fopen(filename, "wt"); if (!f){ log_addf(VTEXT(T_CANT_WRITE_S), filename); return errno; } for (i=0; iitems->len; i++){ c=g_ptr_array_index(fifo->items, i); ret = fprintf(f, "%s\n", c); if (ret!=strlen(c)+1) { log_addf(VTEXT(T_CANT_WRITE_S), filename); return errno; } } fclose(f); return 0; } int load_fifo_from_file(struct fifo *fifo, gchar *filename, int drop){ FILE *f; GString *gs; gchar *c; f = fopen(filename, "rt"); if (!f){ log_addf(VTEXT(T_CANT_READ_S), filename); return errno; } if (drop) drop_fifo(fifo); sw_unset_unread(fifo); gs=g_string_sized_new(100); fifo->withouttime=1; while( (c=safe_fgets(gs, f, 0)) != NULL){ fifo_adds(fifo, c); } fifo->withouttime=0; g_string_free(gs, TRUE); sw_unset_unread(fifo); fclose(f); return 0; } tucnak2-2.48/src/ntpq.c0000644000175000017500000000621011567373656011676 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #ifndef __CYGWIN__ struct ntpq *ntpq = NULL; struct ntpq *init_ntpq(){ struct ntpq *ntpq; ntpq = g_new0(struct ntpq, 1); ntpq->buf = g_string_sized_new(1024); ntpq->good = 1; ntpq->timer = install_timer(1000, ntpq_timer, (cba_t)ntpq); return ntpq; } void free_ntpq(struct ntpq *ntpq){ if (ntpq->pid) kill(ntpq->pid, SIGTERM); if (ntpq->rfd>=0) close(ntpq->rfd); if (ntpq->timer) kill_timer(ntpq->timer); g_free(ntpq); } void ntpq_timer(cba_t cba){ int fds[2], i; struct ntpq *ntpq; char errbuf[1024]; /*dbg("ntpq_timer()\n");*/ ntpq=cba.ntpq; ntpq->timer=0; if (pipe(fds)) internal_("Can't create thread pipe"); /* dbg("pipe=%d %d\n", fds[0], fds[1]);*/ ntpq->rfd=fds[0]; ntpq->pid=fork(); if (ntpq->pid<0) { dbg("Can't fork for ntpq\n"); return; } if (ntpq->pid==0){ /* child */ setenv("TERM", "dumb", 1); for (i=0;i<1024;i++) { if (i==fds[1]) continue; close(i); } open("/dev/null", O_RDONLY); if (dup(fds[1]) < 0) exit(-1); if (dup(fds[1]) < 0) exit(-1); execlp("ntpq", "ntpq", "-pn", NULL); fprintf(stderr, " exec failed errno=%d %s\n", errno, strerror_r(errno, errbuf, sizeof(errbuf))); exit(-1); } /* parent */ ntpq->rfd=fds[0]; close(fds[1]); set_handlers(ntpq->rfd, ntpq_read_handler, NULL, NULL, (cba_t)ntpq); } void ntpq_read_handler(cba_t cba){ char s[1030]; int ret,err, good; gchar *c, *d; struct ntpq *ntpq; ntpq=cba.ntpq; /* dbg("read...\n");*/ ret=read(ntpq->rfd, s, 1024); /* dbg("read=%d\n", ret);*/ err=errno; if (ret<0){ /* dbg("ntpq read error\n");*/ set_handlers(ntpq->rfd, NULL, NULL, NULL, CBA0); close(ntpq->rfd); ntpq->timer = install_timer(50001, ntpq_timer, (cba_t)ntpq); return; } if (ret==0){ good=0; for (d=ntpq->buf->str; *d!='\0'; d++){ if (*d=='*') { safe_strncpy(s, d+1, 10); c=strchr(s, '.'); if (!c) break; *c='\0'; if (strcmp(s, "127")==0) break; /* local clock */ good=1; break; } for (;*d!='\0';d++){ if (*d!='\n') continue; break; } } if (ctest && !ctest->oldcontest && ntpq->oldgood!=good) { ntpq->oldgood=good; if (!good){ log_addf("Warning! Time on this machine is not synchronized. Please use NTP"); } } ntpq->good=good; /*dbg("ntpq->good=%d\n", ntpq->good);*/ g_string_truncate(ntpq->buf, 0); set_handlers(ntpq->rfd, NULL, NULL, NULL, CBA0); close(ntpq->rfd); if (good) ntpq->timer = install_timer(30*60*1000, ntpq_timer, (cba_t)ntpq); else ntpq->timer = install_timer(2*60*1000, ntpq_timer, (cba_t)ntpq); return; } s[ret]='\0'; /*dbg("ntpq_read_handler('%s');\n", s);*/ g_string_append(ntpq->buf, s); } #endif tucnak2-2.48/src/scandir.c0000644000175000017500000000644311567373656012347 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of glibc as seen bellow This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ /* Copyright (C) 1992-1998, 2000, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ #include "header.h" #ifdef _MSC_VER #include "msvc.h" #define __builtin_expect(expression, value) (expression) #endif #ifdef HAVE_DIRENT_H #include #endif #include #include #include #ifndef _D_ALLOC_NAMLEN #define _D_ALLOC_NAMLEN(d) (sizeof((d)->d_name)+1) #endif int tucnak_scandir (char *dir, struct dirent ***namelist, int (*select) (const struct dirent *), int (*cmp) (const void *, const void *)) { DIR *dp; struct dirent **v;// = NULL; size_t vsize = 0, i; struct dirent *d; int save; v = NULL; //dbg("tucnak_scandir('%s')\n", dir); wokna(dir); dp = opendir(dir); if (dp == NULL) return -1; save = errno; errno = 0; i = 0; while (1){ struct dirent *vnew; size_t dsize; d = readdir(dp); if (!d) break; if (select != NULL && (*select)(d) == 0) continue; /* Ignore errors from select or readdir */ errno = 0; if (__builtin_expect (i == vsize, 0)){ struct dirent **new_; if (vsize == 0) vsize = 10; else vsize *= 2; new_ = (struct dirent **) realloc (v, vsize * sizeof (*v)); if (new_ == NULL) break; v = new_; } dsize = &d->d_name[_D_ALLOC_NAMLEN (d)] - (char *) d; vnew = (struct dirent *) malloc (dsize); if (vnew == NULL) break; v[i++] = (struct dirent *) memcpy (vnew, d, dsize); } if (__builtin_expect (errno, 0) != 0) { save = errno; while (i > 0) free (v[--i]); free (v); i = -1; } else { /* Sort the list if we have a comparison function to sort with. */ if (cmp != NULL) qsort (v, i, sizeof (*v), cmp); *namelist = v; } closedir (dp); errno = save; return i; } int tucnak_alphasort(const void *a, const void *b) { return strcoll ((*(const struct dirent **) a)->d_name, (*(const struct dirent **) b)->d_name); } tucnak2-2.48/src/wiki.c0000644000175000017500000002074611573344120011646 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2010 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" /*gchar *qw(GString *gs, gchar *s){ char *c; g_string_truncate(gs,0); if (!s) return gs->str; g_string_append(gs, ""); for (c=s; *c!='\0'; c++) { switch (*c){ case '<': g_string_append(gs, "<"); break; case '>': g_string_append(gs, ">"); break; case '"': g_string_append(gs, """); break; case '&': g_string_append(gs, "&"); break; case '\'': g_string_append(gs, "'"); break; default: g_string_append_c(gs, *c); } } g_string_append(gs, ""); return gs->str; }*/ void wiki_header(GString *gs){ int i; zg_string_eprintfa("w", gs, "=%s=\n", ctest->tname); g_string_sprintfa(gs, "{| style=\"background-color:#ffffcc;\"\n"); zg_string_eprintfa("w", gs, "|-\n|Call:||%S\n", ctest->pcall); zg_string_eprintfa("w", gs, "|-\n|WWL:||%S\n", ctest->pwwlo); if (ctest->padr1 && *ctest->padr1) zg_string_eprintfa("w", gs, "|-\n|QTH:||%s\n", ctest->padr1); if (ctest->padr2 && *ctest->padr2) zg_string_eprintfa("w", gs, "|-\n| ||%s\n", ctest->padr2); i = atoi(ctest->cdate); g_string_sprintfa(gs, "|-\n|Date:||%d.%d.%d\n", i % 100, (i / 100) % 100, i / 10000); g_string_sprintfa(gs, "|}\n"); } static void wiki_wwl_func(gpointer key, gpointer value, gpointer user_data){ gchar *wwl; struct cntpts *n; GIndexArray *ia; wwl = (gchar *) key; n = (struct cntpts *) value; ia = (GIndexArray *) user_data; g_index_array_add(ia, g_strdup_printf("%4s||align=\"right\"|\t%d||align=\"right\"|%d", wwl, n->points, n->count)); } static gint wiki_compare_colon_int (gconstpointer a, gconstpointer b){ gchar **ca, **cb, *c; int ia, ib; ca=(gchar **)a; cb=(gchar **)b; c=strchr(*ca, '\t'); if (c) ia=atoi(c+1); else ia=0; c=strchr(*cb, '\t'); if (c) ib=atoi(c+1); else ib=0; return ib-ia; } #define TOPS_NUM 10 void wiki_band_header(GString *gs, struct band *b, int flags){ struct qso *q, *top[TOPS_NUM]; int i, j, cnt = 0, w; GIndexArray *ia; char *c; int ntotal; struct subwin *map = NULL; struct subwin *chart = NULL; struct band *oldaband; for (i = 0; i < gses->subwins->len; i++){ struct subwin *sw = (struct subwin*)g_ptr_array_index(gses->subwins, i); if ((flags & HTML_MAP) && sw->type == SWT_MAP) map = sw; if ((flags & HTML_CHART) && sw->type == SWT_CHART) chart = sw; } oldaband = aband; #if defined(HAVE_SDL) && defined(HAVE_LINPNG) && !defined(_MSC_VER) if (map){ char *filename; aband = b; map->gdirty = 1; map_for_photo(map); sw_map_redraw(map, HTML_FOR_PHOTO); filename = g_strdup_printf("%s/map%c.png", ctest->directory, tolower(b->bandchar)); do_png_save(map->screen, filename); g_free(filename); } if (chart){ char *filename; aband = b; chart->gdirty = 1; sw_chart_recalc_extremes(chart); sw_chart_redraw(chart, 0); filename = g_strdup_printf("%s/chart%c.png", ctest->directory, tolower(b->bandchar)); do_png_save(chart->screen, filename); g_free(filename); } #endif aband = oldaband; g_string_sprintfa(gs, "\n\n=Band %s=\n", b->bandname); ntotal = b->stats->ntotal; if (ntotal < 10000){ ntotal = ( ntotal / 100 ) * 100; }else{ ntotal = ( ntotal / 1000 ) * 1000; } g_string_sprintfa(gs, "{| style=\"background-color:#ffffcc;\"\n"); g_string_sprintfa(gs, "|+ %s\n", b->bandname); g_string_sprintfa(gs, "|-\n|QSOs:||%d\n", b->stats->nqsos); g_string_sprintfa(gs, "|-\n|Points:||%d\n", ntotal); g_string_sprintfa(gs, "|-\n|WWLs:||%d\n", g_hash_table_size(b->stats->wwls)); g_string_sprintfa(gs, "|-\n|DXCCs:||%d\n", g_hash_table_size(b->stats->dxcs)); g_string_sprintfa(gs, "|-\n|AVG:||%d pts/qso\n", b->stats->ntotal/b->stats->nqsos); g_string_sprintfa(gs, "|}\n"); /* top 10 */ memset(top, 0, TOPS_NUM * sizeof(struct qso *)); for (i = 0; i < b->qsos->len; i++) { if (!top[0]) { /* init first item */ q = get_qso(b, i); if (!q->error && !q->dupe) { cnt = 0; top[cnt++] = q; /*dbg("init: %s %u\n=\n", top[0]->callsign, (int) top[0]->qrb);*/ } continue; } q = get_qso(b, i); /*dbg("selected %u: %s %u\n", i, q->callsign, (int) q->qrb);*/ if (q->error || q->dupe) continue; if (cnt >= TOPS_NUM) cnt = TOPS_NUM - 1; /* initialize or find top dx and sort top array */ if (!top[cnt] || q->qrb > top[cnt]->qrb) { for (j = cnt; j >= 0; j--) { if (j && q->qrb > top[j - 1]->qrb) { top[j] = top[j - 1]; /* move down */ /*dbg("down %u: %s %u\n", j, top[j]->callsign, (int) top[j]->qrb);*/ } else { top[j] = q; /* insert */ cnt++; /*dbg("insert %u: %s %u\n", j, top[j]->callsign, (int) top[j]->qrb);*/ break; } } } } g_string_sprintfa(gs, "\n\n"); //tabulka kolem g_string_sprintfa(gs, "{| cellpadding=\"10\" style=\"background: transparent;\"\n"); g_string_sprintfa(gs, "|\n"); g_string_sprintfa(gs, "{| cellpadding=\"5\" style=\"background-color:#ffffcc;\"\n"); g_string_sprintfa(gs, "|+ Top 10 calls\n"); g_string_sprintfa(gs, "!Call!!QRB!!Operator!!Mode\n"); for (i = 0; i < TOPS_NUM && i < b->qsos->len && top[i]; i++) { q = top[i]; g_string_sprintfa(gs, "|-\n|%s||align=\"right\"|%4u km||%s||%s\n", q->callsign, (int) q->qrb, q->operator_, mode_msg[q->mode]); } g_string_sprintfa(gs, "|}\n"); ia = g_index_array_new(); g_hash_table_foreach(b->stats->wwls, wiki_wwl_func, ia); g_index_array_qsort(ia, wiki_compare_colon_int); g_string_sprintfa(gs, "|\n"); g_string_sprintfa(gs, "{| cellpadding=\"5\" style=\"background-color:#ffffcc;\"\n"); g_string_sprintfa(gs, "|+ Top 10 WWLs\n"); g_string_sprintfa(gs, "!WWL!!Points!!QSOs\n"); for (i = 0; i < ia->len && i < 10; i++){ c = (gchar *)g_index_array_index(ia, i); g_string_sprintfa(gs, "|-\n|%s\n", c); } g_string_sprintfa(gs, "|}\n"); g_index_array_free_all(ia); g_string_sprintfa(gs, "|}\n\n"); #ifdef HAVE_SDL w = 640; if (map && map->screen) w = map->screen->w; g_string_sprintfa(gs, "[[File:map_%s_%s_%c.png|border|%dpx|%s %s %s]]\n", ctest->pcall, ctest->cdate, b->bandchar, w, ctest->pcall, ctest->tname, b->bandname); w = 640; if (chart && chart->screen) w = chart->screen->w; g_string_sprintfa(gs, "[[File:chart_%s_%s_%c.png|border|%dpx|%s %s %s]]\n", ctest->pcall, ctest->cdate, b->bandchar, w, ctest->pcall, ctest->tname, b->bandname); #endif } void wiki_footer(GString *gs){ g_string_sprintfa(gs, "\n\nCreated by [http://tucnak.nagano.cz TUCNAK ver. %s]\n", VERSION_STRING); } void wiki_complete(GString *gs){ int i; struct band *band; struct config_band *confb; int header_saved=0; for (i=0; ibands->len; i++){ band = (struct band *)g_ptr_array_index(ctest->bands, i); confb = get_config_band_by_bandchar(band->bandchar); stats_thread_join(band); if (band->stats->nqsos <=0) continue; if (!header_saved){ wiki_header(gs); header_saved=1; } wiki_band_header(gs, band, HTML_MAP | HTML_CHART); } wiki_footer(gs); } int export_all_bands_wiki(){ gchar *filename; FILE *f; char callbuf[20]; GString *gs; if (!ctest) return -1; dbg("export_all_bands_wiki()\n"); filename = g_strdup_printf("%s/%s_%s.wiki", ctest->directory, ctest->cdate, uc(get_raw_call(callbuf,ctest->pcall))); f=fopen(filename,"wt"); if (!f) { errbox(VTEXT(T_CANT_WRITE), errno); g_free(filename); return -1; } gs = g_string_sized_new(100000); wiki_complete(gs); if (fprintf(f, "%s", gs->str) <= 0){ errbox(VTEXT(T_CANT_WRITE), 0); g_free(filename); g_string_free(gs, TRUE); return -1; } fclose(f); log_addf(VTEXT(T_SAVED_S), filename); g_free(filename); g_string_free(gs, TRUE); return 0; } tucnak2-2.48/src/qrvdb.c0000644000175000017500000007563311567373656012051 00000000000000/* Tucnak - VHF contest log Copyright (C) 2009 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" struct qrvdb *qrvdb; int xyz=1; struct qrvdb *init_qrv(void){ struct qrvdb *qrvdb; int i; qrvdb = g_new0(struct qrvdb, 1); qrvdb->qrvs = g_index_array_new(); qrvdb->hash = g_hash_table_new(g_str_hash, g_str_equal); qrvdb->def_bands = 0; for (i=0; ibands->len; i++){ struct config_band *confb = g_index_array_index(cfg->bands, i); if (confb->qrv || confb->qrvnow) qrvdb->def_bands |= 1 << (toupper(confb->bandchar)-'A'); } qrvdb->sort = qrv_compare_call; qrvdb->sort2 = NULL; qrvdb->showall = 0; strcpy(qrvdb->search, ""); return qrvdb; } void free_qrv_item(struct qrv_item *qi){ CONDGFREE(qi->call); CONDGFREE(qi->wwl); CONDGFREE(qi->text); g_free(qi); } gboolean qrv_free_hash_item(gpointer key, gpointer value, gpointer user_data){ //dbg("%s: %d\n", __FUNCTION__, xyz++); g_free(key); //dbg("%d\n", xyz++); // value is already freeed return TRUE; } void clear_qrv(struct qrvdb *qrvdb){ int i; struct subwin *sw; //dbg("%s: a%d\n", __FUNCTION__, xyz++); if (gses && gses->subwins){ // gses==NULL when terminating for (i=0;isubwins->len;i++){ sw=(struct subwin *)g_index_array_index(gses->subwins, i); if (sw->type!=SWT_MAP) continue; #ifdef HAVE_SDL //dbg("%s: b%d\n", __FUNCTION__, xyz++); CONDGFREE(sw->minqrvcall); //dbg("%s: c%d\n", __FUNCTION__, xyz++); #endif } } for (i = qrvdb->qrvs->len - 1; i >= 0; i--){ struct qrv_item *qi = (struct qrv_item*)g_index_array_index(qrvdb->qrvs, i); g_index_array_remove_index(qrvdb->qrvs, i); //dbg("%s: d%d\n", __FUNCTION__, xyz++); free_qrv_item(qi); //dbg("%s: e%d\n", __FUNCTION__, xyz++); } //dbg("%s: f%d\n", __FUNCTION__, xyz++); g_hash_table_foreach_remove(qrvdb->hash, qrv_free_hash_item, NULL); //dbg("%s: g%d\n", __FUNCTION__, xyz++); } void free_qrv(struct qrvdb *qrvdb){ xyz = 1; //dbg("%s: u%d\n", __FUNCTION__, xyz++); clear_qrv(qrvdb); //dbg("%s: v%d\n", __FUNCTION__, xyz++); g_index_array_free(qrvdb->qrvs, 1); //dbg("%s: w%d\n", __FUNCTION__, xyz++); g_hash_table_destroy(qrvdb->hash); //dbg("%s: x%d\n", __FUNCTION__, xyz++); g_free(qrvdb); //dbg("%s: y%d\n", __FUNCTION__, xyz++); } struct qrv_item *qrv_add(gchar *call, gchar *wwl, int qrv_int, int wkd[32], const gchar *text, time_t kst_time){ struct qrv_item *qi; char raw[20]; if (!wwl || !*wwl){ wwl = find_wwl_by_call(cw, call); if (!wwl) wwl=""; } //dbg("qrv_add('%s', '%s', %d, (%d;%d;%d), '%s', %d)\n", call, wwl, qrv_int, wkd[2], wkd[4], wkd[6], text, (unsigned int)kst_time); qi = qrv_get(qrvdb, call); if (qi){ // dbg("qrv_update(%s)\n", call); if (wwl && *wwl) { CONDGFREE(qi->wwl); qi->wwl = uc(g_strdup(wwl)); qrv_compute_qrbqtf(qi); } //q->bands |= qrv_int; why comment ??? if (text && strlen(text) > strlen(qi->text)){ CONDGFREE(qi->text); qi->text = g_strdup(text); } qi->kst_time = kst_time; return qi; } // dbg("qrv_new(%s)\n", call); qi = g_new0(struct qrv_item, 1); qi->call = uc(g_strdup(call)); qi->wwl = uc(g_strdup(wwl)); qi->bands_qrv = qrv_int; memcpy(qi->wkd, wkd, sizeof(qi->wkd)); qi->text = g_strdup(text); qi->kst_time = kst_time; qrv_compute_qrbqtf(qi); g_index_array_add(qrvdb->qrvs, qi); get_raw_call(raw, call); g_hash_table_insert(qrvdb->hash, g_strdup(raw), qi); // dbg("add_to_list(%s %s %s)\r\n", qi->call, qi->wwl, qi->text); return qi; } int is_qrv(char *s){ char *c, d, last = '\0'; if (!s) return 0; if (strlen(s)==0) return 0; for (c=s; *c!='\0'; c++){ d = toupper(*c); if (d < 'A' || d > 'Z') return 0; if (d < last) return 0; last = d; } return 1; } #define QRV_DELIM " \t\r\n" void load_one_qrv(struct qrvdb *qrvdb, gchar *s){ struct zstring *zs; gchar *call, *wwl, *text, *str, *c; int qrv_int = 0, wkd[32]; time_t kst_time = 0; zs = zstrdup(s); //dbg("ztokens=%d '%s'\n", ztokens(zs), s); if (ztokens(zs) >= 6){ ztokenize(zs, 1); // first ';' call = ztokenize(zs, 0); wwl = ztokenize(zs, 0); str = ztokenize(zs, 0); for (c = str; *c != '\0'; c++) qrv_int |= 1 << (toupper(*c) - 'A'); str = ztokenize(zs, 0); memset(wkd, 0, sizeof(wkd)); for (c = str; *c != '\0'; c++) { if (*c < 'A' || *c > 'Z') continue; wkd[*c - 'A'] = atoi(c+1); if (c[1] == '\0' || c[1] > '9') wkd[*c - 'A'] = 1; // for compatibility, 'ABC' means A=1, B=1, C=1 // number will be skipped by c++ and next condition } text = ztokenize(zs, 0); str = ztokenize(zs, 0); if (str) kst_time = atoi(zs->str); qrv_add(call, wwl, qrv_int, wkd, text, kst_time); } zfree(zs); } void old_load_one_qrv(struct qrvdb *qrvdb, gchar *s){ gchar *call, *wwl, *qrv_str, *text; int qrv_int, free_text = 0, wkd[32]; char *token_ptr, *c; // dbg("load_one_qrv('%s')\n", s); call = strtok_r(s, QRV_DELIM, &token_ptr); if (!call) return; wwl = strtok_r(NULL, QRV_DELIM, &token_ptr); if (!wwl) return; qrv_str = strtok_r(NULL, QRV_DELIM, &token_ptr); if (!qrv_str) qrv_str = ""; text = token_ptr; memset(wkd, 0, sizeof(wkd)); if (!is_qrv(qrv_str)){ // dbg("!isqrv(%s)\n", qrv_str); qrv_int = qrvdb->def_bands; //bands_wkd_me = qrvdb->def_bands; text = g_strconcat(qrv_str, " ", text, NULL); free_text = 1; }else{ qrv_int = 0; for (c=qrv_str;*c!='\0';c++){ if (isupper(*c)) { //dbg("wkd[%d]=1\n", *c-'A'); wkd[*c-'A'] = 1; } *c=upcase(*c); qrv_int|=1<<(*c-'A'); } } qrv_add(call, wwl, qrv_int, wkd, text, 0); if (free_text) g_free(text); } int load_qrv_from_file(struct qrvdb *qrvdb, gchar *filename){ FILE *f; char s[202]; f = fopen(filename, "rt"); if (!f){ return -1; } while((fgets(s, 200, f))!=NULL){ chomp(s); if (s[0]==';') load_one_qrv(qrvdb,s); else old_load_one_qrv(qrvdb,s); } fclose(f); g_index_array_qsort(qrvdb->qrvs, qrvdb->sort); return 0; } int save_qrv_to_file(char *filename){ FILE *f; char qrv_str[32], wkd_str[32*30], kst_str[20]; int i; char x[2], d; f = fopen(filename, "wt"); if (!f){ log_addf(VTEXT(T_CANT_WRITE_S), filename); return errno; } for (i=0; iqrvs->len; i++){ struct zstring *zs; struct qrv_item *qi = (struct qrv_item*)g_index_array_index(qrvdb->qrvs, i); #if 0 for (j=0, c=qrv_str; j<32; j++){ if (!(qi->bands_qrv & (1<bands_wkd_me & (1<call, qi->wwl, qrv_str, qi->text); #endif x[1]='\0'; strcpy(qrv_str, ""); for (x[0]='A'; x[0]<'Z'; x[0]++) if (qi->bands_qrv & ( 1 << (x[0] - 'A'))) strcat(qrv_str, x); strcpy(wkd_str, ""); for (d='A'; d<'Z'; d++) { // dbg("band=%c i=%d wkd=%d \n", d, d - 'A', qi->wkd[d - 'A']); if (qi->wkd[d - 'A'] == 0) continue; // dbg("%c=%d\n", d, qi->wkd[d - 'A']); sprintf(wkd_str+strlen(wkd_str), "%c%d", d, qi->wkd[d - 'A']); } sprintf(kst_str, "%d", (int)qi->kst_time); zs = zconcatesc("", qi->call, qi->wwl, qrv_str, wkd_str, qi->text, kst_str, NULL); fprintf(f, "%s\n", zs->str); //dbg("zs->str='%s'\n", zs->str); zfree(zs); } fclose(f); return 0; } int qrv_skip(struct qrv_item *qi, int bi){ //if (get_qso_by_callsign(aband, qi->call)!=NULL) return 1; int ret = 0; if ((qi->bands_wkd & (1<showall && !*qrvdb->search) return ret; if ((qi->bands_qrv & (1<search) > 1){// here's leading / ret = 3; if (my_strcasestr(qi->call, qrvdb->search + 1)) ret = 0; if (my_strcasestr(qi->wwl, qrvdb->search + 1)) ret = 0; if (my_strcasestr(qi->text, qrvdb->search + 1)) ret = 0; } // dbg("qrv_skip(%s, %d)=%d qrv=0x%x wkd=0x%x\n", qi->call, bi, ret, qi->bands_qrv, qi->bands_wkd); return ret; } int qrv_compare_call(const void *a, const void *b){ struct qrv_item **qa, **qb; int ret; qa = (struct qrv_item **)a; qb = (struct qrv_item **)b; if (!*qa && !*qb) return 0; if (!*qa) return -1; if (!*qb) return +1; ret = strcmp((*qa)->call, (*qb)->call); if (ret) return ret; if (qrvdb->sort2 == qrv_compare_call) return 0; return qrvdb->sort2(a, b); } int qrv_compare_wwl(const void *a, const void *b){ struct qrv_item **qa, **qb; int ret; qa = (struct qrv_item **)a; qb = (struct qrv_item **)b; if (!*qa && !*qb) return 0; if (!*qa) return -1; if (!*qb) return +1; ret = strcmp((*qa)->wwl, (*qb)->wwl); if (ret) return ret; if (qrvdb->sort2 == qrv_compare_wwl) return 0; return qrvdb->sort2(a, b); } int qrv_compare_wkd(const void *a, const void *b){ struct qrv_item **qa, **qb; int ret, bi; qa = (struct qrv_item **)a; qb = (struct qrv_item **)b; if (!*qa && !*qb) return 0; if (!*qa) return -1; if (!*qb) return +1; if (!aband) return 0; bi = toupper(aband->bandchar) - 'A'; ret = (*qa)->wkd[bi] - (*qb)->wkd[bi]; if (ret) return -ret; if (qrvdb->sort2 == qrv_compare_wkd) return 0; return qrvdb->sort2(a, b); } int qrv_compare_qrb(const void *a, const void *b){ struct qrv_item **qa, **qb; double d; qa = (struct qrv_item **)a; qb = (struct qrv_item **)b; if (!*qa && !*qb) return 0; if (!*qa) return -1; if (!*qb) return +1; d = (*qa)->qrb - (*qb)->qrb; if (d != 0) return d < 0 ? 1 : -1; // odx on top if (qrvdb->sort2 == qrv_compare_qrb) return 0; return qrvdb->sort2(a, b); } int qrv_compare_qtf(const void *a, const void *b){ struct qrv_item **qa, **qb; int ret; qa = (struct qrv_item **)a; qb = (struct qrv_item **)b; if (!*qa && !*qb) return 0; if (!*qa) return -1; if (!*qb) return +1; if (!aband) return 0; ret = (*qa)->qtf - (*qb)->qtf; if (ret) return ret; if (qrvdb->sort2 == qrv_compare_qtf) return 0; return qrvdb->sort2(a, b); } int qrv_compare_kst_time(const void *a, const void *b){ struct qrv_item **qa, **qb; long int ret; qa = (struct qrv_item **)a; qb = (struct qrv_item **)b; if (!*qa && !*qb) return 0; if (!*qa) return -1; if (!*qb) return +1; if (!aband) return 0; ret = (int)((*qa)->kst_time - (*qb)->kst_time); if (ret) return ret; if (qrvdb->sort2 == qrv_compare_kst_time) return 0; return qrvdb->sort2(a, b); } int qrv_compare_text(const void *a, const void *b){ struct qrv_item **qa, **qb; int ret; qa = (struct qrv_item **)a; qb = (struct qrv_item **)b; if (!*qa && !*qb) return 0; if (!*qa) return -1; if (!*qb) return +1; ret = strcmp((*qa)->text, (*qb)->text); if (ret) return ret; if (qrvdb->sort2 == qrv_compare_text) return 0; return qrvdb->sort2(a, b); } void sw_qrv_seek(struct subwin *sw, int value){ int bi; struct qrv_item *qi; if (!aband) return; bi = toupper(aband->bandchar) - 'A'; while (value > 0){ sw->cur++; if (sw->cur >= qrvdb->qrvs->len) break; qi = (struct qrv_item *)g_index_array_index(qrvdb->qrvs, sw->cur); if (qrv_skip(qi, bi)) continue; value--; } while (value < 0){ sw->cur--; if (sw->cur < 0) break; qi = (struct qrv_item *)g_index_array_index(qrvdb->qrvs, sw->cur); if (qrv_skip(qi, bi)) continue; value++; } } int sw_qrv_kbd_func(struct subwin *sw, struct event *ev, int fw){ int bi, len; struct qrv_item *qi; if (!aband) return 0; bi = toupper(aband->bandchar) - 'A'; switch(kbd_action(KM_MAIN,ev)){ case ACT_ESC: return 0; break; case ACT_DOWN: sw_qrv_seek(sw, 1); sw_qrv_check_bounds(sw); redraw_later(); return 1; case ACT_UP: sw_qrv_seek(sw, -1); sw_qrv_check_bounds(sw); redraw_later(); return 1; case ACT_PAGE_DOWN: sw_qrv_seek(sw, sw->h - 1); sw_qrv_check_bounds(sw); redraw_later(); return 1; case ACT_PAGE_UP: sw_qrv_seek(sw, -sw->h + 1); sw_qrv_check_bounds(sw); redraw_later(); return 1; case ACT_HOME: sw->cur = 0; sw_qrv_check_bounds(sw); redraw_later(); return 1; case ACT_END: sw->cur = qrvdb->qrvs->len - 1; sw_qrv_check_bounds(sw); redraw_later(); return 1; case ACT_SCROLL_LEFT: if (sw->ho>0) sw->ho--; redraw_later(); return 1; case ACT_SCROLL_RIGHT: sw->ho++; redraw_later(); return 1; case ACT_ENTER: if (*qrvdb->search){ strcpy(qrvdb->search, ""); redraw_later(); if (qrvdb->qrvs->len == 0) return 1; qi = (struct qrv_item*)g_index_array_index(qrvdb->qrvs, sw->cur); if (!qi) return 1; qi->bands_qrv |= 1<il); if (qrvdb->qrvs->len == 0) break; qi = (struct qrv_item*)g_index_array_index(qrvdb->qrvs, sw->cur); if (!qi) break; clear_tmpqsos(aband,1); process_input(aband, qi->call, 1); redraw_later(); /*#ifdef HAVE_HAMLIB if (trig){ trig_set_qrg(trig, qi->qrg*1000.0); #endif */ return 1; case ACT_BACKSPACE: len = strlen(qrvdb->search); if (len == 0) break; qrvdb->search[len - 1] = '\0'; redraw_later(); return 1; case ACT_DELETE: if (qrvdb->qrvs->len == 0) break; qi = (struct qrv_item*)g_index_array_index(qrvdb->qrvs, sw->cur); if (!qi) break; qi->bands_qrv &= ~(1<x='%c' search='%s'\n", ev->x, qrvdb->search); if (*qrvdb->search && ev->y == 0){ if (!isprint(ev->x)) break; len = strlen(qrvdb->search); if (len >= QRVSSIZE - 2) break; qrvdb->search[len] = toupper(ev->x); qrvdb->search[len+1] = '\0'; //dbg("search='%s'\n", qrvdb->search); redraw_later(); break; } switch(ev->x){ case ' ': if (qrvdb->qrvs->len == 0) break; qi = (struct qrv_item*)g_index_array_index(qrvdb->qrvs, sw->cur); if (!qi) break; clear_tmpqsos(aband,1); process_input(aband, qi->call, 0); redraw_later(); break; case '1': qrvdb->sort2 = qrvdb->sort; qrvdb->sort = qrv_compare_call; g_index_array_qsort(qrvdb->qrvs, qrvdb->sort); redraw_later(); break; case '2': qrvdb->sort2 = qrvdb->sort; qrvdb->sort = qrv_compare_wwl; g_index_array_qsort(qrvdb->qrvs, qrvdb->sort); redraw_later(); break; case '3': qrvdb->sort2 = qrvdb->sort; qrvdb->sort = qrv_compare_wkd; g_index_array_qsort(qrvdb->qrvs, qrvdb->sort); redraw_later(); break; case '4': qrvdb->sort2 = qrvdb->sort; qrvdb->sort = qrv_compare_qrb; g_index_array_qsort(qrvdb->qrvs, qrvdb->sort); redraw_later(); break; case '5': qrvdb->sort2 = qrvdb->sort; qrvdb->sort = qrv_compare_qtf; g_index_array_qsort(qrvdb->qrvs, qrvdb->sort); redraw_later(); break; case '6': qrvdb->sort2 = qrvdb->sort; qrvdb->sort = qrv_compare_kst_time; g_index_array_qsort(qrvdb->qrvs, qrvdb->sort); redraw_later(); break; case '7': qrvdb->sort2 = qrvdb->sort; qrvdb->sort = qrv_compare_text; g_index_array_qsort(qrvdb->qrvs, qrvdb->sort); redraw_later(); break; case 'a': case 'A': qrvdb->showall = !qrvdb->showall; redraw_later(); break; case 'e': case 'E': { cba_t cba; if (qrvdb->qrvs->len == 0) break; qi = (struct qrv_item*)g_index_array_index(qrvdb->qrvs, sw->cur); if (!qi) break; SETCBA(cba, qrv_item, qi); edit_qrv(cba); break; } case 'u': case 'U': if (qrvdb->qrvs->len == 0) break; qi = (struct qrv_item*)g_index_array_index(qrvdb->qrvs, sw->cur); if (!qi) break; qi->bands_qrv |= 1<search, "/"); redraw_later(); break; } } return 0; } int sw_qrv_mouse_func(struct subwin *sw, struct event *ev, int fw){ return 0; } void sw_qrv_draw_qrv(struct subwin *sw, int i, struct qrv_item *qi, int color){ gchar *c; char degree=' '; struct tm utc; char kst_time_str[20]; char qrb_str[20]; char qtf_str[20]; #ifdef HAVE_SDL //if (sdl) degree=''; if (sdl) degree=0xb0; #endif if (!qi || !qi->call){ c = g_strdup("~"); }else{ int bi = toupper(aband->bandchar) - 'A'; strcpy(qrb_str, ""); if (qi->qrb >= 0) sprintf(qrb_str, "%5.0fkm", qi->qrb); strcpy(qtf_str, ""); if (qi->qtf >= 0) sprintf(qtf_str, "%d%c", qi->qtf, degree); strcpy(kst_time_str, ""); if (qi->kst_time != 0){ gmtime_r(&qi->kst_time, &utc); sprintf(kst_time_str, "%2d:%02d", utc.tm_hour, utc.tm_min); } c = g_strdup_printf(" %-12s %6s %4d %-7s " "%-4s %5s %s", qi->call, qi->wwl, qi->wkd[bi], qrb_str, qtf_str, kst_time_str, qi->text); } if (c && strlen(c)>sw->ho){ print_text(sw->x, sw->y+i, sw->w, c + sw->ho, color); } g_free(c); } void sw_qrv_redraw(struct subwin *sw, int flags){ struct qrv_item *qi; int i,bi, y, len; char *c; if (!aband) return; bi = toupper(aband->bandchar)-'A'; fill_area(sw->x, sw->y+sw->h/2, sw->w, 1, COL_INV); clip_printf(sw, -sw->ho + 2, 0, qrvdb->sort==qrv_compare_call?COL_WHITE:COL_NORM, "Callsign"); clip_printf(sw, -sw->ho + 16, 0, qrvdb->sort==qrv_compare_wwl?COL_WHITE:COL_NORM, "WWL"); clip_printf(sw, -sw->ho + 23, 0, qrvdb->sort==qrv_compare_wkd?COL_WHITE:COL_NORM, "WKD"); clip_printf(sw, -sw->ho + 29, 0, qrvdb->sort==qrv_compare_qrb?COL_WHITE:COL_NORM, "QRB"); clip_printf(sw, -sw->ho + 36, 0, qrvdb->sort==qrv_compare_qtf?COL_WHITE:COL_NORM, "QTF"); clip_printf(sw, -sw->ho + 42, 0, qrvdb->sort==qrv_compare_kst_time?COL_WHITE:COL_NORM, "AcKst"); clip_printf(sw, -sw->ho + 50, 0, qrvdb->sort==qrv_compare_text?COL_WHITE:COL_NORM, "Text"); len = strlen(qrvdb->search); if (len > 0){ clip_printf(sw, 0, sw->h - 1, COL_NORM, "%s", qrvdb->search); if (gses->focused) set_cursor(sw->x + len, sw->y + sw->h - 1, sw->x + len, sw->y + sw->h - 1); }else{ int x = 0; c = "1-6: sort, "; clip_printf(sw, x, sw->h - 1, COL_NORM, c); x += strlen(c); c = "A: all"; clip_printf(sw, x, sw->h - 1, qrvdb->showall?COL_WHITE:COL_NORM, c); x += strlen(c); c = ", Enter, Space, E: edit, Insert, Delete, U: undel, /: search"; clip_printf(sw, x, sw->h - 1, COL_NORM, c); x += strlen(c); } if (!qrvdb->qrvs->len) return; sw_qrv_check_bounds(sw); qi = (struct qrv_item *)g_index_array_index(qrvdb->qrvs, sw->cur); // dbg("%s: cur=%d qi=%p\n", __FUNCTION__, sw->cur, qi); if (!qi || qrv_skip(qi, bi)) { print_text(sw->x, sw->y + sw->h/2, sw->w, "~", COL_INV); return; } sw_qrv_draw_qrv(sw, sw->h/2, qi, COL_INV); y = sw->h / 2 - 1; for(i = sw->cur - 1; i >= 0; i--){ if (y <= 0) break; qi = (struct qrv_item *)g_index_array_index(qrvdb->qrvs, i); if (qrv_skip(qi, bi)) continue; sw_qrv_draw_qrv(sw, y--, qi, COL_NORM); } y = sw->h / 2 + 1; for(i = sw->cur + 1; i < qrvdb->qrvs->len; i++){ if (y >= sw->h - 1) break; qi = (struct qrv_item *)g_index_array_index(qrvdb->qrvs, i); if (qrv_skip(qi, bi)) continue; sw_qrv_draw_qrv(sw, y++, qi, COL_NORM); } } void sw_qrv_check_bounds(struct subwin *sw){ int len, bi; struct qrv_item *qi; if (!aband) return; len = qrvdb->qrvs->len; if (len == 0) return; bi = toupper(aband->bandchar) - 'A'; if (sw->cur < 0) sw->cur = 0; if (sw->cur >= qrvdb->qrvs->len) sw->cur = qrvdb->qrvs->len - 1;; while (sw->cur < qrvdb->qrvs->len){ qi = (struct qrv_item *)g_index_array_index(qrvdb->qrvs, sw->cur); if (!qrv_skip(qi, bi)) break; sw->cur++; } if (sw->cur >= qrvdb->qrvs->len) sw->cur = qrvdb->qrvs->len - 1;; while (sw->cur >= 0){ qi = (struct qrv_item *)g_index_array_index(qrvdb->qrvs, sw->cur); if (!qrv_skip(qi, bi)) break; sw->cur--; } if (sw->cur < 0) sw->cur = 0; } void sw_qrv_raise(struct subwin *sw){ sw_qrv_sort(qrvdb); } void sw_qrv_sort(struct qrvdb *qrvdb){ g_index_array_qsort(qrvdb->qrvs, qrvdb->sort); } void qrv_compute_qrbqtf(struct qrv_item *q){ double qtf, qtfrad; if (!q) return; if (!q->wwl || !*q->wwl){ q->qrb = -1; q->qtf = -1; return; } /* CHANGE look at add_tmpqso_locator */ qrbqtf(ctest->pwwlo, q->wwl, &q->qrb, &qtf, NULL, 2); q->qtf = (int) (qtf+0.5); if (q->qrb < 0.1) { q->qrb = 0; q->qtf = 0; } qtfrad=qtf*MY_PI/180.0; q->kx = (int)( q->qrb*sin(qtfrad)); q->ky = (int)(- q->qrb*cos(qtfrad)); if (q->qrb < 600){ q->weight = q->qrb; }else{ q->weight= 1800 - 2 * q->qrb; if (q->weight < 0) q->weight = 0; } if (aband){ int bi = toupper(aband->bandchar) - 'A'; if (q->wkd[bi] > 1) q->weight *= q->wkd[bi]; if (!(q->bands_qrv && (1 << bi))) q->weight = 0; } /*dbg("compute_qrbqtf(%s) %s->%s qrb=%f kx=%d ky=%d\n", q->call, ctest->pwwlo, q->wwl, q->qrb, q->kx, q->ky); */ } void qrv_recalc_qrbqtf(struct qrvdb *qrvdb){ int i; for (i = 0; i < qrvdb->qrvs->len; i++){ struct qrv_item *qi = (struct qrv_item *)g_index_array_index(qrvdb->qrvs, i); qrv_compute_qrbqtf(qi); } } void qrv_recalc_gst(struct qrvdb *qrvdb){ int i, j; int qtf2; double max; if (!qrvdb) return; qrvdb->beamwidth = 10; for (i=0;i<=180;i++){ qrvdb->antchar[i]=cos(MY_PI/180.0*(double)i*120.0/qrvdb->beamwidth); /* dbg("i=%3d %5.3f\n", i, antchar[i]);*/ if (qrvdb->antchar[i]<=0) break; } for (;i<=180;i++) qrvdb->antchar[i]=0; for (i=0; i<360; i++) qrvdb->gst[i]=0.0; for (i = 0; i < qrvdb->qrvs->len; i++){ struct qrv_item *qi = (struct qrv_item *)g_index_array_index(qrvdb->qrvs, i); if (qi->qtf<=0 || qi->qtf>=360) continue; if (aband && qrv_skip(qi, aband->bandchar-'a')) continue; for (j=0;j<=180;j++){ qtf2 = qi->qtf + j; if (qrvdb->antchar[j] == 0) break; if (qtf2<0) qtf2 += 360; qrvdb->gst[qtf2%360] += qi->weight * qrvdb->antchar[j]; } for (j=1;j<180;j++){ qtf2 = qi->qtf - j; if (qrvdb->antchar[j] == 0) break; if (qtf2<0) qtf2 += 360; qrvdb->gst[qtf2%360] += qi->weight * qrvdb->antchar[j]; } } max = 0; for (i=0; i<360; i++) if (qrvdb->gst[i]>max) max = qrvdb->gst[i]; if (!max) return; for (i=0; i<360; i++) qrvdb->gst[i] = qrvdb->gst[i] / max; } void qrv_set_wkd(struct qrvdb *qrvdb, struct qso *qso){ char raw[20]; struct qrv_item *qi; int bi; if (!qso) return; if (!qso->band) return; get_raw_call(raw, qso->callsign); qi = (struct qrv_item *)g_hash_table_lookup(qrvdb->hash, raw); bi = qso->band->bandchar - 'a'; if (!qi) return; qi->bands_wkd |= 1 << bi; } void qrv_recalc_wkd(struct qrvdb *qrvdb){ struct qrv_item *qi; struct band *b; struct qso *qso; int i, j; char raw[20]; for (i = 0; i < qrvdb->qrvs->len; i++){ struct qrv_item *qi = (struct qrv_item *)g_index_array_index(qrvdb->qrvs, i); qi->bands_wkd = 0; } if (!ctest) return; for (i=0; ibands->len; i++){ b = (struct band *)g_index_array_index(ctest->bands, i); for (j=0; jqsos->len; j++){ qso = (struct qso *)g_index_array_index(b->qsos, j); if (qso->dupe) continue; if (qso->error) continue; get_raw_call(raw, qso->callsign); qi = (struct qrv_item *)g_hash_table_lookup(qrvdb->hash, raw); //dbg("recalc_qrv_wkd(%s) qi=%p\n", raw, qi); if (!qi) continue; qi->bands_wkd |= 1 << (b->bandchar - 'a'); } } } struct qrv_item *qrv_get(struct qrvdb *qrvdb, char *call){ char raw[20]; struct qrv_item *qi; get_raw_call(raw, call); qi = (struct qrv_item *)g_hash_table_lookup(qrvdb->hash, raw); return qi; } void qrv_read_line(char *str){ char *c1=NULL, *c2=NULL; struct qrv_item *qi; if (regmatch(str, "^[0-9]{4}Z ([^ ]+)", &c1, &c2, NULL)==0){ // log_addf("KST '%s'", c2); qi = qrv_get(qrvdb, c2); if (qi){ qi->kst_time = time(NULL); } redraw_later(); } if (c1) mem_free(c1); if (c2) mem_free(c2); } /* -------------- dialog edit qrv ------------------ */ char qrv_call[EQSO_LEN]; char qrv_wwl[EQSO_LEN]; char qrv_qrv[32]; char qrv_wkd[EQSO_LEN]; char qrv_text[MAX_STR_LEN]; void refresh_edit_qrv(cba_t cba){ struct qrv_item *qi = (struct qrv_item*)GETCBA(cba, qrv_item); char *c; char raw[20]; int bi = toupper(aband->bandchar) - 'A'; if (!qi){ int wkd[32]; memset(wkd, 0, sizeof(wkd)); qi = qrv_add(uc(qrv_call), "", 0, wkd, "", (time_t)0); }else{ get_raw_call(raw, qi->call); g_hash_table_remove(qrvdb->hash, qi->call); CONDGFREE(qi->call); qi->call = g_strdup(qrv_call); uc(qi->call); get_raw_call(raw, qi->call); g_hash_table_insert(qrvdb->hash, g_strdup(raw), qi); } CONDGFREE(qi->wwl); qi->wwl = g_strdup(qrv_wwl); uc(qi->wwl); qi->bands_qrv = 0; for (c = qrv_qrv; *c != '\0'; c++){ *c = toupper(*c); if (*c < 'A' || *c > 'Z') continue; qi->bands_qrv |= (1 << (*c - 'A')); } qi->wkd[bi] = atoi(qrv_wkd); CONDGFREE(qi->text); qi->text = g_strdup(qrv_text); qrv_compute_qrbqtf(qi); sw_qrv_sort(qrvdb); } void edit_qrv(cba_t cba){ struct dialog *d; int i; struct qrv_item *qi; char x[2]; if (!aband) return; qi = (struct qrv_item*)GETCBA(cba, qrv_item); if (qi){ int bi; safe_strncpy0(qrv_call, qi->call, EQSO_LEN); safe_strncpy0(qrv_wwl, qi->wwl, EQSO_LEN); strcpy(qrv_qrv, ""); x[1] = '\0'; bi = toupper(aband->bandchar) - 'A'; for (x[0] = 'A'; x[0] <= 'Z'; x[0]++){ if (qi->bands_qrv & (1 << (x[0] - 'A'))) strcat(qrv_qrv, x); } g_snprintf(qrv_wkd, EQSO_LEN, "%d", qi->wkd[bi]); safe_strncpy0(qrv_text, qi->text, MAX_STR_LEN); }else{ strcpy(qrv_call, ""); strcpy(qrv_wwl, ""); strcpy(qrv_qrv, ""); if (aband) sprintf(qrv_qrv, "%c", toupper(aband->bandchar)); strcpy(qrv_wkd, ""); strcpy(qrv_text, "@OP"); } if (!(d = mem_alloc(sizeof(struct dialog) + 20 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 20 * sizeof(struct dialog_item)); d->title = VTEXT(T_QRV); d->fn = dlg_pf_fn; d->refresh = (void (*)(void *))refresh_edit_qrv; d->refresh_data = qi; d->y0 = 1; d->items[i=0].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = qrv_call; d->items[i].msg = CTEXT(T_CALLSIGN2); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = qrv_wwl; d->items[i].msg = CTEXT(T_WWL); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = qrv_qrv; d->items[i].msg = CTEXT(T_QRV2); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = qrv_wkd; d->items[i].msg = CTEXT(T_WKD); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].maxl = EQSO_LEN; d->items[i].data = qrv_text; d->items[i].msg = CTEXT(T_REMARK); d->items[i].wrap = 2; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } tucnak2-2.48/src/font.inc0000644000175000017500000010134111567373656012212 00000000000000/* Automatically generated by psf2inc.pl */ unsigned char font_vga[4096] = { /* 0x00 0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01 1 */ 0x00, 0x00, 0x00, 0x7e, 0x81, 0x81, 0xa5, 0xa5, 0x81, 0xa5, 0x99, 0x81, 0x81, 0x7e, 0x00, 0x00, /* 0x02 2 */ 0x00, 0x00, 0x00, 0x7e, 0xff, 0xdb, 0x81, 0xdb, 0xff, 0xff, 0xc3, 0x99, 0xff, 0x7e, 0x00, 0x00, /* 0x03 3 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0xff, 0xff, 0xff, 0xff, 0x7e, 0x3c, 0x18, 0x00, 0x00, 0x00, /* 0x04 4 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c, 0x7e, 0xff, 0x7e, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, /* 0x05 5 */ 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c, 0x3c, 0xe7, 0xe7, 0xe7, 0x18, 0x18, 0x7e, 0x00, 0x00, 0x00, /* 0x06 6 */ 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c, 0x7e, 0xff, 0xff, 0x7e, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, /* 0x07 7 */ 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c, 0x24, 0x66, 0x42, 0x42, 0xff, 0xff, 0x30, 0x60, 0x00, 0x00, /* 0x08 8 */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xc3, 0xc3, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x09 9 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x42, 0x42, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0a 10 */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x99, 0xbd, 0xbd, 0x99, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x0b 11 */ 0x00, 0x00, 0x00, 0x0f, 0x07, 0x0d, 0x19, 0x30, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, /* 0x0c 12 */ 0x00, 0x00, 0x00, 0x00, 0x7e, 0xc3, 0xc3, 0xc3, 0x7e, 0x18, 0xff, 0xff, 0x18, 0x18, 0x00, 0x00, /* 0x0d 13 */ 0x00, 0x00, 0x00, 0x00, 0x3e, 0x36, 0x3e, 0x30, 0x30, 0x30, 0x70, 0xf0, 0xe0, 0x00, 0x00, 0x00, /* 0x0e 14 */ 0x00, 0x00, 0x00, 0x00, 0x7e, 0x66, 0x7e, 0x66, 0x66, 0x66, 0xce, 0xce, 0xcc, 0xc0, 0x00, 0x00, /* 0x0f 15 */ 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0xdb, 0x3c, 0xe7, 0x3c, 0xdb, 0x18, 0x18, 0x00, 0x00, 0x00, /* 0x10 16 */ 0x00, 0x00, 0x00, 0x40, 0x60, 0x70, 0x78, 0x7c, 0x7e, 0x7c, 0x78, 0x70, 0x60, 0x40, 0x00, 0x00, /* 0x11 17 */ 0x00, 0x00, 0x00, 0x02, 0x06, 0x0e, 0x1e, 0x3e, 0x7e, 0x3e, 0x1e, 0x0e, 0x06, 0x02, 0x00, 0x00, /* 0x12 18 */ 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x00, 0x00, 0x00, /* 0x13 19 */ 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x66, 0x00, 0x00, /* 0x14 20 */ 0x00, 0x00, 0x00, 0x7e, 0xb6, 0xb6, 0xb6, 0xb6, 0x76, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, /* 0x15 21 */ 0x00, 0x00, 0x00, 0x7e, 0xc3, 0x60, 0x3c, 0x66, 0xc3, 0xc3, 0x66, 0x3c, 0x06, 0xc3, 0x7e, 0x00, /* 0x16 22 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, /* 0x17 23 */ 0x00, 0x00, 0x00, 0x18, 0x3c, 0x7e, 0x7e, 0x18, 0x18, 0x18, 0x7e, 0x7e, 0x3c, 0x18, 0x7e, 0x00, /* 0x18 24 */ 0x00, 0x00, 0x00, 0x18, 0x3c, 0x7e, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, /* 0x19 25 */ 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x7e, 0x3c, 0x18, 0x00, 0x00, /* 0x1a 26 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0c, 0xfe, 0xff, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x00, /* 0x1b 27 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x30, 0x7f, 0xff, 0x7f, 0x30, 0x10, 0x00, 0x00, 0x00, 0x00, /* 0x1c 28 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, /* 0x1d 29 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x66, 0xff, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e 30 */ 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x3c, 0x3c, 0x7e, 0x7e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, /* 0x1f 31 */ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7e, 0x7e, 0x3c, 0x3c, 0x18, 0x18, 0x00, 0x00, 0x00, /* 0x20 32 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x21 33 */ 0x00, 0x00, 0x00, 0x18, 0x3c, 0x3c, 0x3c, 0x3c, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, /* 0x22 34 */ 0x00, 0x00, 0xc3, 0xc3, 0xc3, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x23 35 */ 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0xff, 0x66, 0x66, 0x66, 0xff, 0x66, 0x66, 0x66, 0x00, 0x00, /* 0x24 36 */ 0x00, 0x18, 0x18, 0x7e, 0xdb, 0xd9, 0xd8, 0xd8, 0x7e, 0x1b, 0x1b, 0x9b, 0xdb, 0x7e, 0x18, 0x18, /* 0x25 37 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0xa3, 0xe6, 0x0c, 0x18, 0x30, 0x67, 0xc5, 0x87, 0x00, 0x00, /* 0x26 38 */ 0x00, 0x00, 0x00, 0x38, 0x6c, 0x6c, 0x6c, 0x38, 0x79, 0xcf, 0xc6, 0xc6, 0xee, 0x7b, 0x00, 0x00, /* 0x27 39 */ 0x00, 0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28 40 */ 0x00, 0x00, 0x00, 0x0e, 0x18, 0x30, 0x60, 0x60, 0x60, 0x60, 0x60, 0x30, 0x18, 0x0e, 0x00, 0x00, /* 0x29 41 */ 0x00, 0x00, 0x00, 0x70, 0x18, 0x0c, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0c, 0x18, 0x70, 0x00, 0x00, /* 0x2a 42 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xdb, 0x7e, 0xff, 0x7e, 0xdb, 0x18, 0x00, 0x00, 0x00, 0x00, /* 0x2b 43 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, /* 0x2c 44 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, 0x20, /* 0x2d 45 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2e 46 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, /* 0x2f 47 */ 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, /* 0x30 48 */ 0x00, 0x00, 0x00, 0x7e, 0xc3, 0xc3, 0xc7, 0xcf, 0xdb, 0xf3, 0xe3, 0xc3, 0xc3, 0x7e, 0x00, 0x00, /* 0x31 49 */ 0x00, 0x00, 0x00, 0x18, 0x38, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x00, 0x00, /* 0x32 50 */ 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0xc6, 0xfe, 0x00, 0x00, /* 0x33 51 */ 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0x06, 0x06, 0x1c, 0x06, 0x06, 0xc6, 0xc6, 0x7c, 0x00, 0x00, /* 0x34 52 */ 0x00, 0x00, 0x00, 0x06, 0x0e, 0x1e, 0x36, 0x66, 0xc6, 0xff, 0x06, 0x06, 0x06, 0x0f, 0x00, 0x00, /* 0x35 53 */ 0x00, 0x00, 0x00, 0xfe, 0xc0, 0xc0, 0xc0, 0xfc, 0x06, 0x06, 0x06, 0x06, 0xc6, 0x7c, 0x00, 0x00, /* 0x36 54 */ 0x00, 0x00, 0x00, 0x3c, 0x60, 0xc0, 0xc0, 0xc0, 0xfc, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, /* 0x37 55 */ 0x00, 0x00, 0x00, 0xfe, 0xc6, 0x06, 0x06, 0x0c, 0x18, 0x18, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, /* 0x38 56 */ 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, /* 0x39 57 */ 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x06, 0x0c, 0x18, 0x70, 0x00, 0x00, /* 0x3a 58 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, /* 0x3b 59 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, 0x20, /* 0x3c 60 */ 0x00, 0x00, 0x00, 0x00, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x00, 0x00, 0x00, /* 0x3d 61 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, /* 0x3e 62 */ 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00, 0x00, 0x00, /* 0x3f 63 */ 0x00, 0x00, 0x00, 0x7e, 0xe7, 0xc3, 0xc3, 0x06, 0x0c, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, /* 0x40 64 */ 0x00, 0x00, 0x00, 0x7e, 0xc3, 0xc3, 0xc3, 0xcf, 0xdb, 0xdb, 0xcd, 0xc0, 0xc0, 0x7e, 0x00, 0x00, /* 0x41 65 */ 0x00, 0x00, 0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x00, 0x00, /* 0x42 66 */ 0x00, 0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x66, 0x66, 0xfc, 0x00, 0x00, /* 0x43 67 */ 0x00, 0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc2, 0x66, 0x3c, 0x00, 0x00, /* 0x44 68 */ 0x00, 0x00, 0x00, 0xf8, 0x6c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6c, 0xf8, 0x00, 0x00, /* 0x45 69 */ 0x00, 0x00, 0x00, 0xfe, 0x66, 0x62, 0x60, 0x68, 0x78, 0x68, 0x60, 0x62, 0x66, 0xfe, 0x00, 0x00, /* 0x46 70 */ 0x00, 0x00, 0x00, 0xfe, 0x66, 0x62, 0x60, 0x68, 0x78, 0x68, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, /* 0x47 71 */ 0x00, 0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xc0, 0xc0, 0xde, 0xc6, 0x66, 0x3a, 0x00, 0x00, /* 0x48 72 */ 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, /* 0x49 73 */ 0x00, 0x00, 0x00, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, /* 0x4a 74 */ 0x00, 0x00, 0x00, 0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0xcc, 0xcc, 0x78, 0x00, 0x00, /* 0x4b 75 */ 0x00, 0x00, 0x00, 0xe6, 0x66, 0x66, 0x6c, 0x6c, 0x78, 0x6c, 0x6c, 0x66, 0x66, 0xe6, 0x00, 0x00, /* 0x4c 76 */ 0x00, 0x00, 0x00, 0xf0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x62, 0x66, 0xfe, 0x00, 0x00, /* 0x4d 77 */ 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xee, 0xfe, 0xd6, 0xd6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, /* 0x4e 78 */ 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xe6, 0xf6, 0xde, 0xce, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, /* 0x4f 79 */ 0x00, 0x00, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x00, 0x00, /* 0x50 80 */ 0x00, 0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, /* 0x51 81 */ 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xde, 0x7c, 0x0c, 0x0e, 0x00, /* 0x52 82 */ 0x00, 0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x6c, 0x66, 0x66, 0x66, 0xe6, 0x00, 0x00, /* 0x53 83 */ 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc0, 0x60, 0x38, 0x0c, 0x06, 0xc6, 0xc6, 0x7c, 0x00, 0x00, /* 0x54 84 */ 0x00, 0x00, 0x00, 0xff, 0xdb, 0x99, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, /* 0x55 85 */ 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, /* 0x56 86 */ 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x10, 0x00, 0x00, /* 0x57 87 */ 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xd6, 0xd6, 0xfe, 0x6c, 0x6c, 0x00, 0x00, /* 0x58 88 */ 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0x6c, 0x6c, 0x38, 0x6c, 0x6c, 0xc6, 0xc6, 0xc6, 0x00, 0x00, /* 0x59 89 */ 0x00, 0x00, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x78, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, 0x00, /* 0x5a 90 */ 0x00, 0x00, 0x00, 0xfe, 0xc6, 0x86, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0xc2, 0xc6, 0xfe, 0x00, 0x00, /* 0x5b 91 */ 0x00, 0x00, 0x00, 0x3c, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3c, 0x00, 0x00, /* 0x5c 92 */ 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, /* 0x5d 93 */ 0x00, 0x00, 0x00, 0x3c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x3c, 0x00, 0x00, /* 0x5e 94 */ 0x00, 0x18, 0x3c, 0x66, 0xc3, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x5f 95 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, /* 0x60 96 */ 0x00, 0x00, 0x30, 0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x61 97 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0c, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, /* 0x62 98 */ 0x00, 0x00, 0x00, 0xe0, 0x60, 0x60, 0x78, 0x6c, 0x66, 0x66, 0x66, 0x66, 0x66, 0xdc, 0x00, 0x00, /* 0x63 99 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc0, 0xc0, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, /* 0x64 100 */ 0x00, 0x00, 0x00, 0x1c, 0x0c, 0x0c, 0x3c, 0x6c, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, /* 0x65 101 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, /* 0x66 102 */ 0x00, 0x00, 0x00, 0x38, 0x6c, 0x64, 0x60, 0x60, 0xf8, 0x60, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, /* 0x67 103 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x7c, 0x0c, 0xcc, 0x78, /* 0x68 104 */ 0x00, 0x00, 0x00, 0xe0, 0x60, 0x60, 0x60, 0x6c, 0x76, 0x66, 0x66, 0x66, 0x66, 0xe6, 0x00, 0x00, /* 0x69 105 */ 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, /* 0x6a 106 */ 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x1c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0xcc, 0xcc, 0xcc, 0x78, /* 0x6b 107 */ 0x00, 0x00, 0x00, 0xe0, 0x60, 0x60, 0x60, 0x66, 0x6c, 0x78, 0x78, 0x6c, 0x66, 0xe6, 0x00, 0x00, /* 0x6c 108 */ 0x00, 0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, /* 0x6d 109 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0xfe, 0xd6, 0xd6, 0xd6, 0xd6, 0xc6, 0xc6, 0x00, 0x00, /* 0x6e 110 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, /* 0x6f 111 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, /* 0x70 112 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0xf0, /* 0x71 113 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x7c, 0x0c, 0x0c, 0x1e, /* 0x72 114 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x76, 0x66, 0x60, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, /* 0x73 115 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc0, 0x70, 0x1c, 0x06, 0xc6, 0x7c, 0x00, 0x00, /* 0x74 116 */ 0x00, 0x00, 0x00, 0x10, 0x30, 0x30, 0x30, 0xfc, 0x30, 0x30, 0x30, 0x32, 0x36, 0x1c, 0x00, 0x00, /* 0x75 117 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, /* 0x76 118 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x00, 0x00, /* 0x77 119 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xd6, 0xd6, 0xd6, 0xfe, 0x6c, 0x00, 0x00, /* 0x78 120 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0x6c, 0x38, 0x38, 0x6c, 0xc6, 0xc6, 0x00, 0x00, /* 0x79 121 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0x78, /* 0x7a 122 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xc6, 0x0c, 0x18, 0x30, 0x60, 0xc6, 0xfe, 0x00, 0x00, /* 0x7b 123 */ 0x00, 0x00, 0x00, 0x0e, 0x18, 0x18, 0x18, 0x18, 0x70, 0x18, 0x18, 0x18, 0x18, 0x0e, 0x00, 0x00, /* 0x7c 124 */ 0x00, 0x00, 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, /* 0x7d 125 */ 0x00, 0x00, 0x00, 0x70, 0x18, 0x18, 0x18, 0x18, 0x0e, 0x18, 0x18, 0x18, 0x18, 0x70, 0x00, 0x00, /* 0x7e 126 */ 0x00, 0x00, 0x00, 0x00, 0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x7f 127 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c, 0x66, 0xc3, 0xc3, 0xff, 0x00, 0x00, 0x00, 0x00, /* 0x80 128 */ 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, /* 0x81 129 */ 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, /* 0x82 130 */ 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, /* 0x83 131 */ 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, /* 0x84 132 */ 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x30, 0x60, 0xc0, 0x60, 0x30, 0x18, 0x18, 0x18, 0x18, 0x18, /* 0x85 133 */ 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x30, 0x60, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x86 134 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x06, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x18, /* 0x87 135 */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x88 136 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x89 137 */ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x78, 0xf0, 0xe0, 0xf0, 0x78, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, /* 0x8a 138 */ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, /* 0x8b 139 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0x78, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, /* 0x8c 140 */ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x8d 141 */ 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, /* 0x8e 142 */ 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, /* 0x8f 143 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x60, 0x30, 0x18, 0x18, 0x18, 0x18, 0x18, /* 0x90 144 */ 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0c, 0x06, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x91 145 */ 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x66, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x92 146 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, /* 0x93 147 */ 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1c, 0x0e, 0x07, 0x0e, 0x1c, 0x18, 0x18, 0x18, 0x18, 0x18, /* 0x94 148 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x95 149 */ 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x66, 0xc3, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, /* 0x96 150 */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x97 151 */ 0x00, 0x00, 0x00, 0x1e, 0x31, 0x60, 0x60, 0xfe, 0x60, 0xfe, 0x60, 0x60, 0x31, 0x1e, 0x00, 0x00, /* 0x98 152 */ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x1e, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x99 153 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x1e, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, /* 0x9a 154 */ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x7e, 0xe7, 0xc3, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x9b 155 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0xc3, 0xe7, 0x7e, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, /* 0x9c 156 */ 0x3c, 0x3c, 0x3c, 0x3c, 0x1c, 0x0e, 0x07, 0x03, 0x07, 0x0e, 0x1c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, /* 0x9d 157 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x9e 158 */ 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x7e, 0xff, 0xe7, 0xff, 0x7e, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, /* 0x9f 159 */ 0x18, 0x18, 0x18, 0x18, 0x3c, 0x7e, 0xe7, 0xc3, 0xe7, 0x7e, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, /* 0xa0 160 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa1 161 */ 0x00, 0x00, 0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xde, 0x30, 0x1e, /* 0xa2 162 */ 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa3 163 */ 0x00, 0x00, 0x00, 0xf0, 0x60, 0x64, 0x6c, 0x78, 0x70, 0xe0, 0xe0, 0x62, 0x66, 0xfe, 0x00, 0x00, /* 0xa4 164 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0xc6, 0x00, 0x00, 0x00, 0x00, /* 0xa5 165 */ 0x6c, 0x38, 0x00, 0xf0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x62, 0x66, 0xfe, 0x00, 0x00, /* 0xa6 166 */ 0x0e, 0x18, 0x00, 0x7c, 0xc6, 0xc6, 0xc0, 0x60, 0x38, 0x0c, 0x06, 0xc6, 0xc6, 0x7c, 0x00, 0x00, /* 0xa7 167 */ 0x00, 0x00, 0x00, 0x7e, 0xc3, 0x60, 0x3c, 0x66, 0xc3, 0xc3, 0x66, 0x3c, 0x06, 0xc3, 0x7e, 0x00, /* 0xa8 168 */ 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa9 169 */ 0x6c, 0x38, 0x00, 0x7c, 0xc6, 0xc6, 0xc0, 0x60, 0x38, 0x0c, 0x06, 0xc6, 0xc6, 0x7c, 0x00, 0x00, /* 0xaa 170 */ 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc0, 0x60, 0x38, 0x0c, 0x06, 0xc6, 0xc6, 0x7c, 0x0c, 0x70, /* 0xab 171 */ 0x6c, 0x38, 0x00, 0xff, 0xdb, 0x99, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, /* 0xac 172 */ 0x0e, 0x18, 0x00, 0xfe, 0xc6, 0x86, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0xc2, 0xc6, 0xfe, 0x00, 0x00, /* 0xad 173 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xae 174 */ 0x6c, 0x38, 0x00, 0xfe, 0xc6, 0x86, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0xc2, 0xc6, 0xfe, 0x00, 0x00, /* 0xaf 175 */ 0x18, 0x18, 0x00, 0xfe, 0xc6, 0x86, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0xc2, 0xc6, 0xfe, 0x00, 0x00, /* 0xb0 176 */ 0x00, 0x00, 0x00, 0x70, 0xd8, 0xd8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb1 177 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0c, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x30, 0x1c, /* 0xb2 178 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x60, 0x3c, /* 0xb3 179 */ 0x00, 0x00, 0x00, 0x38, 0x18, 0x18, 0x1a, 0x1e, 0x1c, 0x38, 0x78, 0x58, 0x18, 0x3c, 0x00, 0x00, /* 0xb4 180 */ 0x0e, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb5 181 */ 0x00, 0x1b, 0x0e, 0x70, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, 0x00, /* 0xb6 182 */ 0x00, 0x00, 0x00, 0x0e, 0x18, 0x00, 0x7c, 0xc6, 0xc0, 0x70, 0x1c, 0x06, 0xc6, 0x7c, 0x00, 0x00, /* 0xb7 183 */ 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8 184 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0c, 0x78, /* 0xb9 185 */ 0x00, 0x00, 0x00, 0x6c, 0x38, 0x00, 0x7c, 0xc6, 0xc0, 0x70, 0x1c, 0x06, 0xc6, 0x7c, 0x00, 0x00, /* 0xba 186 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc0, 0x70, 0x1c, 0x06, 0xc6, 0x7c, 0x0c, 0x78, /* 0xbb 187 */ 0x00, 0x00, 0x06, 0x16, 0x34, 0x30, 0x30, 0xfc, 0x30, 0x30, 0x30, 0x32, 0x36, 0x1c, 0x00, 0x00, /* 0xbc 188 */ 0x00, 0x00, 0x00, 0x0e, 0x18, 0x00, 0xfe, 0xc6, 0x0c, 0x18, 0x30, 0x60, 0xc6, 0xfe, 0x00, 0x00, /* 0xbd 189 */ 0x00, 0x00, 0x36, 0x6c, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xbe 190 */ 0x00, 0x00, 0x00, 0x6c, 0x38, 0x00, 0xfe, 0xc6, 0x0c, 0x18, 0x30, 0x60, 0xc6, 0xfe, 0x00, 0x00, /* 0xbf 191 */ 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0xfe, 0xc6, 0x0c, 0x18, 0x30, 0x60, 0xc6, 0xfe, 0x00, 0x00, /* 0xc0 192 */ 0x0e, 0x18, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x6c, 0x66, 0x66, 0xe6, 0x00, 0x00, /* 0xc1 193 */ 0x0e, 0x18, 0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x00, 0x00, /* 0xc2 194 */ 0x38, 0x6c, 0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x00, 0x00, /* 0xc3 195 */ 0x6c, 0x38, 0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x00, 0x00, /* 0xc4 196 */ 0x00, 0xc6, 0xc6, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x00, 0x00, /* 0xc5 197 */ 0x0e, 0x18, 0x00, 0xf0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x62, 0x66, 0xfe, 0x00, 0x00, /* 0xc6 198 */ 0x0e, 0x18, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc2, 0x66, 0x3c, 0x00, 0x00, /* 0xc7 199 */ 0x00, 0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc2, 0x66, 0x3c, 0x06, 0x7c, /* 0xc8 200 */ 0x6c, 0x38, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc2, 0x66, 0x3c, 0x00, 0x00, /* 0xc9 201 */ 0x0e, 0x18, 0x00, 0xfe, 0x66, 0x62, 0x60, 0x68, 0x78, 0x68, 0x60, 0x62, 0x66, 0xfe, 0x00, 0x00, /* 0xca 202 */ 0x00, 0x00, 0x00, 0xfe, 0x66, 0x62, 0x60, 0x68, 0x78, 0x68, 0x60, 0x62, 0x66, 0xfe, 0x30, 0x1e, /* 0xcb 203 */ 0x6c, 0x6c, 0x00, 0xfe, 0x66, 0x62, 0x60, 0x68, 0x78, 0x68, 0x60, 0x62, 0x66, 0xfe, 0x00, 0x00, /* 0xcc 204 */ 0x6c, 0x38, 0x00, 0xfe, 0x66, 0x62, 0x60, 0x68, 0x78, 0x68, 0x60, 0x62, 0x66, 0xfe, 0x00, 0x00, /* 0xcd 205 */ 0x1c, 0x30, 0x00, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, 0x00, /* 0xce 206 */ 0x38, 0x6c, 0x00, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, 0x00, /* 0xcf 207 */ 0x6c, 0x38, 0x00, 0xf8, 0x6c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6c, 0xf8, 0x00, 0x00, /* 0xd0 208 */ 0x00, 0x00, 0x00, 0xf8, 0x6c, 0x66, 0x66, 0xf6, 0x66, 0x66, 0x66, 0x66, 0x6c, 0xf8, 0x00, 0x00, /* 0xd1 209 */ 0x0e, 0x18, 0x00, 0xc6, 0xc6, 0xc6, 0xe6, 0xf6, 0xde, 0xce, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, /* 0xd2 210 */ 0x6c, 0x38, 0x00, 0xc6, 0xc6, 0xc6, 0xe6, 0xf6, 0xde, 0xce, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, /* 0xd3 211 */ 0x0e, 0x18, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x00, 0x00, /* 0xd4 212 */ 0x38, 0x6c, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x00, 0x00, /* 0xd5 213 */ 0x33, 0x66, 0xcc, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x00, 0x00, /* 0xd6 214 */ 0xc6, 0xc6, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x00, 0x00, /* 0xd7 215 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x6c, 0x38, 0x38, 0x6c, 0xc6, 0x00, 0x00, 0x00, 0x00, /* 0xd8 216 */ 0x6c, 0x38, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x6c, 0x66, 0x66, 0xe6, 0x00, 0x00, /* 0xd9 217 */ 0x78, 0xcc, 0x78, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, /* 0xda 218 */ 0x0e, 0x18, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, /* 0xdb 219 */ 0x33, 0x66, 0xcc, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, /* 0xdc 220 */ 0xc6, 0xc6, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, /* 0xdd 221 */ 0x1c, 0x30, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x78, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, 0x00, /* 0xde 222 */ 0x00, 0x00, 0x00, 0xff, 0xdb, 0x99, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x0c, 0x78, /* 0xdf 223 */ 0x00, 0x00, 0x00, 0x78, 0xcc, 0xcc, 0xcc, 0xd8, 0xcc, 0xc6, 0xc6, 0xc6, 0xcc, 0xc0, 0x00, 0x00, /* 0xe0 224 */ 0x00, 0x00, 0x0c, 0x18, 0x30, 0x00, 0xdc, 0x76, 0x66, 0x60, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, /* 0xe1 225 */ 0x00, 0x00, 0x0c, 0x18, 0x30, 0x00, 0x78, 0x0c, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, /* 0xe2 226 */ 0x00, 0x00, 0x10, 0x38, 0x6c, 0x00, 0x78, 0x0c, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, /* 0xe3 227 */ 0x00, 0x00, 0x00, 0x6c, 0x38, 0x00, 0x78, 0x0c, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, /* 0xe4 228 */ 0x00, 0x00, 0x00, 0xcc, 0xcc, 0x00, 0x78, 0x0c, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, /* 0xe5 229 */ 0x00, 0x03, 0x03, 0x72, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, 0x00, /* 0xe6 230 */ 0x00, 0x00, 0x00, 0x0e, 0x18, 0x00, 0x7c, 0xc6, 0xc0, 0xc0, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, /* 0xe7 231 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc0, 0xc0, 0xc0, 0xc0, 0xc6, 0x7c, 0x0c, 0x78, /* 0xe8 232 */ 0x00, 0x00, 0x00, 0x6c, 0x38, 0x00, 0x7c, 0xc6, 0xc0, 0xc0, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, /* 0xe9 233 */ 0x00, 0x00, 0x06, 0x0c, 0x18, 0x00, 0x7c, 0xc6, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, /* 0xea 234 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x60, 0x3c, /* 0xeb 235 */ 0x00, 0x00, 0x00, 0x6c, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, /* 0xec 236 */ 0x00, 0x00, 0x00, 0x6c, 0x38, 0x00, 0x7c, 0xc6, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, /* 0xed 237 */ 0x00, 0x00, 0x0c, 0x18, 0x30, 0x00, 0x70, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, 0x00, /* 0xee 238 */ 0x00, 0x00, 0x10, 0x38, 0x6c, 0x00, 0x70, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, 0x00, /* 0xef 239 */ 0x00, 0x03, 0x03, 0x1e, 0x0c, 0x0c, 0x3c, 0x6c, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, /* 0xf0 240 */ 0x00, 0x00, 0x1c, 0x0c, 0x7e, 0x0c, 0x3c, 0x6c, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, /* 0xf1 241 */ 0x00, 0x00, 0x06, 0x0c, 0x18, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, /* 0xf2 242 */ 0x00, 0x00, 0x00, 0x36, 0x1c, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, /* 0xf3 243 */ 0x00, 0x00, 0x0c, 0x18, 0x30, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, /* 0xf4 244 */ 0x00, 0x00, 0x10, 0x38, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, /* 0xf5 245 */ 0x00, 0x00, 0x33, 0x66, 0xcc, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, /* 0xf6 246 */ 0x00, 0x00, 0x00, 0xc6, 0xc6, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, /* 0xf7 247 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x7e, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, /* 0xf8 248 */ 0x00, 0x00, 0x00, 0x6c, 0x38, 0x00, 0xdc, 0x76, 0x66, 0x60, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, /* 0xf9 249 */ 0x00, 0x00, 0x78, 0xcc, 0x78, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, /* 0xfa 250 */ 0x00, 0x00, 0x0c, 0x18, 0x30, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, /* 0xfb 251 */ 0x00, 0x00, 0x33, 0x66, 0xcc, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x72, 0x00, 0x00, /* 0xfc 252 */ 0x00, 0x00, 0x00, 0xcc, 0xcc, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x72, 0x00, 0x00, /* 0xfd 253 */ 0x00, 0x00, 0x06, 0x0c, 0x18, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0x78, /* 0xfe 254 */ 0x00, 0x00, 0x00, 0x10, 0x30, 0x30, 0x30, 0xfc, 0x30, 0x30, 0x30, 0x32, 0x36, 0x1c, 0x0c, 0x78, /* 0xff 255 */ 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; tucnak2-2.48/src/cwwindow.c0000644000175000017500000000727711567373656012573 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" //static struct window *cwwindow; static void draw_cwwindow(struct cwwin_data *cwwdata){ fill_area(cwwdata->x-2, cwwdata->y-1, cwwdata->w+4, cwwdata->h+2, COL_INV); draw_frame(cwwdata->x, cwwdata->y, cwwdata->w, cwwdata->h, COL_INV, 1); print_text(cwwdata->x + 5, cwwdata->y, -1, VTEXT(T__CW_), COL_NORM); print_text(cwwdata->x + 5, cwwdata->y + cwwdata->h -1 , -1, VTEXT(T_CWW_KEYS), COL_NORM); print_text(cwwdata->x + 3, cwwdata->y +2 , cwwdata->w-4, cwwdata->text->str , COL_INV); /*dbg("draw_cwwindow: set_cursor %d %d \n", cwwdata->x + * strlen(cwwdata->text), cwwdata->y+2, 0, 0);*/ set_cursor(cwwdata->x + cwwdata->text->len + 3, cwwdata->y+2, cwwdata->x + cwwdata->text->len + 3 , cwwdata->y+2); } void cwwindow_func(struct window *win, struct event *ev, int fwd){ struct terminal *term; struct cwwin_data *cwwdata; term = win->term; cwwdata = (struct cwwin_data *)win->data; // dbg("cwwindow_func [%d,%d,%d,%d]\n",ev->ev,ev->x,ev->y,ev->b); switch (ev->ev) { case EV_INIT: win->data = cwwdata = mem_alloc(sizeof(struct cwwin_data)); memset(win->data, 0, sizeof(struct cwwin_data)); cwwdata->text = g_string_sized_new(100); case EV_RESIZE: cwwdata->x = 10; cwwdata->y = (ev->y - 6) / 2; cwwdata->w = ev->x - 20; cwwdata->h = 5; case EV_REDRAW: draw_cwwindow(cwwdata); break; case EV_MOUSE: break; case EV_KBD: switch(ev->x){ case KBD_ESC: case KBD_TAB: /*delete_window_ev(win, (void *)win->next != &win->term->windows && win->next->handler == cwwindow_func ? ev : NULL);*/ delete_window_ev(win, ev); break; case KBD_ENTER: /* delete window, CW text play on */ ev->x=KBD_TAB; delete_window_ev(win, ev); break; case KBD_PGUP: cwdaemon_qrq(cwda, 2); redraw_later(); break; case KBD_PGDN: cwdaemon_qrs(cwda, 2); redraw_later(); break; default: if (ev->x == KBD_BS && ev->y == 0){ if (cwda && cwda->back) cwda->back(cwda); if (cwwdata->text->len > 0) g_string_truncate(cwwdata->text, cwwdata->text->len - 1); redraw_later(); break; } if (ev->x >= ' ' && ev->x < 256 && ev->y == 0) { char s[2]; int n; dbg("key=%c\n", ev->x); g_string_append_c(cwwdata->text, (char)ev->x); n = cwwdata->text->len - (cwwdata->w - 7); if (n>0) g_string_erase(cwwdata->text, 0, n); s[0]=(char)ev->x; s[1]='\0'; //cwdaemon_text(cwda, s); if (cwda && cwda->text) cwda->text(cwda, s); draw_cwwindow(cwwdata); break; } break; } break; case EV_ABORT: /* mem_free(cwwdata); already in terminal.c:196 (delete_window) */ g_string_free(cwwdata->text, 1); break; } } tucnak2-2.48/src/map.c0000644000175000017500000010350511727646334011470 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #ifdef HAVE_SDL #define INFO_W (20*sdl->font_w) static int olddragx, olddragy; /* only EV_KBD */ int sw_map_kbd_func(struct subwin *sw, struct event *ev, int fw){ int lmx,lmy,step; double stepd; if (!sdl) return 0; step = (SDL_GetModState() & KMOD_SHIFT)!=0 ? 1 : 10; /*dbg("\nsw_map_kbd_func [%d,%d,%d,%d]\n",ev->ev,ev->x,ev->y,ev->b);*/ switch(kbd_action(KM_MAIN,ev)){ case ACT_ESC: return 0; break; case ACT_LEFT: sw->ox+=10; move_map(sw, +step, 0); return 1; case ACT_RIGHT: sw->ox-=10; move_map(sw, -step, 0); return 1; case ACT_UP: sw->oy+=10; move_map(sw, 0, +step); return 1; case ACT_DOWN: sw->oy-=10; move_map(sw, 0, -step); return 1; } /* dbg("sw_map_kbd_func: %c %d\n", ev->x, ev->y);*/ stepd = (SDL_GetModState() & KMOD_SHIFT)!=0 ? 1.05 : 1.3; switch(ev->x){ case '+': case '=': lmx = sw->x * FONT_W + sw->screen->w/2; lmy = sw->y * FONT_H + sw->screen->h/2; zoom(sw, stepd, lmx, lmy); break; case '-': lmx = sw->x * FONT_W + sw->screen->w/2; lmy = sw->y * FONT_H + sw->screen->h/2; zoom(sw, 1/stepd, lmx, lmy); break; /* case '1': sw->ox+=20; sw->oy+=20; move_map(sw, +20, +20); break;*/ case 'r': sw->gdirty=1; qrv_recalc_wkd(qrvdb); qrv_recalc_qrbqtf(qrvdb); qrv_recalc_gst(qrvdb); map_recalc_gst(sw); sw_map_redraw(sw, 0); break; case 'p': map_for_photo(sw); break; case 'c': sw->ox=sw->map.w/2; sw->oy=sw->map.h/2; sw->gdirty=1; redraw_later(); break; } return 0; } void zoom(struct subwin *sw, double factor, int centerx, int centery){ int oldzoom; int kx, ky; px2km(sw, centerx, centery, &kx, &ky); oldzoom=sw->zoom; sw->zoom =(int)(sw->zoom * factor); if (sw->zoom>20000-2) sw->zoom=20000; if (sw->zoom<80) sw->zoom=80; if (sw->zoom==oldzoom) return; pxkm2o(sw, centerx, centery, kx, ky, &sw->ox, &sw->oy); sw->gdirty=1; redraw_later(); dbg("zoom=%d\n", sw->zoom); } int sw_map_mouse_func(struct subwin *sw, struct event *ev, int fw){ int dx,dy, lmx, lmy; double stepd; if (!sdl) return 0; /*dbg("sw_qsos_mouse_func\n");*/ /* if ((ev->b & BM_ACT)!=B_DOWN) return 0; */ { int kx, ky, x, y; lmx = ev->mx - sw->x * FONT_W; lmy = ev->my - sw->y * FONT_H; px2km(sw, lmx, lmy, &kx, &ky); x = lmx - sw->ox; y = lmy - sw->oy; // dbg("mouse: lx=%d ly=%d +ox=%d %d kx=%d ky=%d\n", lmx, lmy, x, y, kx, ky); } if (ev->b & B_MOVE){ plot_nearest_qso(sw); plot_nearest_qrv(sw); plot_qrb_qth(sw, sw->screen, sdl->mouse_x, sdl->mouse_y); return 1; } if (ev->b & B_DRAG){ switch (ev->b & BM_EBUTT){ case B_LEFT: /* dbg("drag %d %d\n", ev->mx, ev->my);*/ dx=ev->mx - olddragx; dy=ev->my - olddragy; if (dx==0 && dy==0) break; olddragx=ev->mx; olddragy=ev->my; sw->ox+=dx; sw->oy+=dy; /*redraw_later(); */ move_map(sw, dx, dy); return 1; } return 1; } stepd = (SDL_GetModState() & KMOD_SHIFT)!=0 ? 1.05 : 1.3; switch (ev->b & BM_EBUTT){ case B_LEFT: /* dbg("left %d %d\n", ev->mx, ev->my);*/ olddragx=ev->mx; olddragy=ev->my; return 1; case B_MIDDLE: /* dbg("middle\n");*/ break; case B_RIGHT: /*dbg("right\n");*/ break; case B_WHUP: /*dbg("wheel up\n");*/ lmx = ev->mx - sw->x * FONT_W; lmy = ev->my - sw->y * FONT_H; zoom(sw, stepd, lmx, lmy); return 1; case B_WHDOWN: /*dbg("wheel down\n");*/ lmx = ev->mx - sw->x * FONT_W; lmy = ev->my - sw->y * FONT_H; zoom(sw, 1/stepd, lmx, lmy); return 1; } return 0; } void move_map(struct subwin *sw, int dx, int dy){ SDL_Rect dst, r; // dbg("\nmove_map(%d, %d)\n", dx, dy); dst.x=dx; dst.y=dy; dst.w=sw->map.w; dst.h=sw->map.h; //SDL_SetAlpha(sw->l2rot, SDL_SRCALPHA, SDL_ALPHA_OPAQUE); SDL_SetClipRect(sw->l1map, &sw->map); memcpy(&r, &dst, sizeof(r)); SDL_BlitSurface(sw->l1map, &sw->map, sw->l1map, &r); /* SDL_SetClipRect(sw->l2rot, &sw->map); memcpy(&r, &dst, sizeof(r)); SDL_BlitSurface(sw->l2rot, &sw->map, sw->l2rot, &r); */ SDL_SetClipRect(sw->screen, &sw->map); memcpy(&r, &dst, sizeof(r)); SDL_BlitSurface(sw->screen, &sw->map, sw->screen, &r); if (dx>0){ dst.x=0; dst.w=dx; dst.y=0; dst.h=sw->map.h; sw_map_redraw_rect(sw, &dst, 0); } if (dx<0){ dst.x=sw->map.w+dx; dst.w=-dx; dst.y=0; dst.h=sw->map.h; sw_map_redraw_rect(sw, &dst, 0); } if (dy>0){ dst.x=0; dst.w=sw->map.w; dst.y=0; dst.h=dy; sw_map_redraw_rect(sw, &dst, 0); } if (dy<0){ dst.x=0; dst.w=sw->map.w; dst.y=sw->map.h+dy; dst.h=-dy; sw_map_redraw_rect(sw, &dst, 0); } plot_nearest_qso(sw); plot_nearest_qrv(sw); // dbg("move_map ox=%d oy=%d\n", sw->ox, sw->oy); } void sw_map_redraw_rect(struct subwin *sw, SDL_Rect *area, int flags){ int fp = flags & HTML_FOR_PHOTO; // dbg("sw_map_redraw_rect: %dx%d%+d%+d\n", area->x, area->y, area->w, area->h); SDL_SetClipRect(sw->l1map, area); SDL_FillRect(sw->l1map, area, makecol(0, 35, 35)); /* col%=16; */ /* rect(sw->screen, area->x, area->y, area->x+area->w-1, area->y+area->h-1, 0x4000); */ /*SDL_FillRect(sw->screen, &sw->map, sdl->termcol[1]); SDL_FillRect(sw->screen, &sw->info, sdl->termcol[2]);*/ plot_cor(sw, sw->l1map, area); // dumpbitmap(sw->l1map); if (ctest && qrvdb && !fp) { plot_qrvs(sw, sw->l1map, area); plot_gst(sw, sw->l1map, area, qrvdb->gst, makecol(13, 121, 66)); } if (ctest && ctest->wwlused) { plot_qsos(sw, sw->l1map, area); if (!fp) plot_gst(sw, sw->l1map, area, sw->gst, makecol(209, 205, 52)); } // sw_map_update_rotar(sw, area); // dbg(" %dx%d%+d%+d\n", area->x, area->y, area->w, area->h); sw_map_redraw_rotar(sw, area, flags); } void sw_map_redraw_rotar(struct subwin *sw, SDL_Rect *area, int flags){ SDL_Rect rotarea; SDL_Rect r; // SDL_FillRect(sw->l2rot, area, makecol(0, 0, 0)); // dbg("rotarea= %dx%d%+d%+d\n", rotarea.x, rotarea.y, rotarea.w, rotarea.h); //rect2(sw->l2rot, &rotarea, makecol(250, 0, 0)); SDL_SetClipRect(sw->screen, area); memcpy(&r, area, sizeof(r)); SDL_BlitSurface(sw->l1map, &r, sw->screen, &r); if ((flags & HTML_FOR_PHOTO) == 0) plot_rotars(sw, sw->screen, area, &rotarea); // SDL_SetAlpha(sw->l2rot, SDL_SRCALPHA|SDL_RLEACCEL, 128); // memcpy(&r, rotarea, sizeof(r)); //dbg("r= %dx%d%+d%+d\n", r.x, r.y, r.w, r.h); // SDL_BlitSurface(sw->l2rot, &r, sw->screen, &r); // dbg("r= %dx%d%+d%+d\n", r.x, r.y, r.w, r.h); //dbg(" %dx%d%+d%+d\n", area->x, area->y, area->w, area->h); } void sw_map_update_rotar(struct subwin *sw){ SDL_Rect r; // dbg("\nsw_map_update_rotar)\n"); r.x = 0; r.y = 0; r.w = sw->screen->w; r.h = sw->screen->h; sw->gdirty=1; sw_map_redraw_rotar(sw, &r, 0); } void sw_map_redraw(struct subwin *sw, int flags){ struct qso *odx; if (!sdl) return; //dbg("sw_map_redraw(gdirty=%d)\n", sw->gdirty); fill_area(sw->x, sw->y, sw->w, sw->h, 0); if (!sw->gdirty) return; sw->gdirty=0; //ST_START; sw_map_redraw_rect(sw, &sw->map, flags); if ((flags & HTML_FOR_PHOTO) && (odx = aband->stats->odx) != NULL){ struct qso *oldminqso = sw->minqso; sw->minqso = odx; plot_qso(sw, sw->screen, odx); plot_info_qso(sw, sw->screen, odx); plot_info_qrv(sw, sw->screen, NULL); plot_qrb_qth(sw, sw->screen, -1, -1); sw->minqso = oldminqso; return; } plot_info_qso(sw, sw->screen, sw->minqso); plot_info_qrv(sw, sw->screen, qrv_get(qrvdb, sw->minqrvcall)); plot_qrb_qth(sw, sw->screen, sdl->mouse_x, sdl->mouse_y); // ST_STOP; } void sw_map_check_bounds(struct subwin *sw){ if (!sdl) return; if (!aband) return; } void sw_map_raise(struct subwin *sw){ sw->gdirty=1; } /* km -> pixels */ void km2px(struct subwin *sw, int kx, int ky, int *px, int *py){ *px = sw->ox + (kx * sw->zoom)/10000; *py = sw->oy + (ky * sw->zoom)/10000; } /* pixels -> km */ void px2km(struct subwin *sw, int px, int py, int *kx, int *ky){ *kx = ((px - sw->ox) * 10000)/sw->zoom; *ky = ((py - sw->oy) * 10000)/sw->zoom; } void pxkm2o(struct subwin *sw, int px, int py, int kx, int ky, int *ox, int *oy){ *ox = px - (kx * sw->zoom)/10000; *oy = py - (ky * sw->zoom)/10000; } void hw2km(double h1, double w1, double h2, double w2, int *kx, int *ky){ double qrb, qtf; hw2qrbqtf(h1, w1, h2, w2, &qrb, &qtf); /* dbg("qrb=%f qtf=%f\n", qrb, qtf);*/ *kx = (int)( qrb*sin(qtf)); *ky = (int)(- qrb*cos(qtf)); } void km2qrbqtf(int kx, int ky, double *qrb, double *qtf){ int dx, dy; dx=kx; dy=ky; *qrb=sqrt(sqr(dx)+sqr(dy)); *qtf=atan2(dx,-dy); if (*qtf<0) *qtf+=2*MY_PI; /* dbg("km2qrbqtf(%d, %d)=%d, %d\n",kx, ky, (int)*qrb, (int)(*qtf*180.0/MY_PI));*/ } static int dashcnt; static void dashfce(SDL_Surface *surface, int x, int y, int d) { if (dashcnt++%6<3) return; fast_putpixel(surface, x, y, d); } void plot_cor(struct subwin *sw, SDL_Surface *surface, SDL_Rect *area){ gpointer key; int ikx, iky, px, py, kx, ky, oldpx=0, oldpy=0, c, color=0, i; struct kmarray *kma; struct kmpoint *kmp; int minkx, minky, maxkx, maxky; /* ST_START; */ // rect2(surface,area, 0x000080); px2km(sw, area->x, area->y, &minkx, &minky); px2km(sw, area->x+area->w-1, area->y+area->h-1, &maxkx, &maxky); /*px2km(sw, 0, 0, &minkx, &minky); px2km(sw, sw->screen->w, sw->screen->h, &maxkx, &maxky);*/ // dbg("\nplot_cor: area=%dx%x+%d+%d kx=%d..%d ky=%d..%d \n", area->x, area->y, area->w, area->h, minkx, maxkx, minky, maxky); minkx &= COR_KM_MASK; minky &= COR_KM_MASK; maxkx &= COR_KM_MASK; maxky &= COR_KM_MASK; if (minkxCOR_KM_MAX) maxkx=COR_KM_MAX; if (minkyCOR_KM_MAX) maxky=COR_KM_MAX; /* dbg("kx=%d-%d ky=%d-%d\n", minkx, maxkx, minky, maxky);*/ /* big wwls (JN69) */ for (iky=minky; iky<=maxky; iky+=COR_KM_STEP) for (ikx=minkx; ikx<=maxkx; ikx+=COR_KM_STEP){ km2px(sw, ikx, iky, &px, &py); //dbg("ikx=%d iky=%d px=%d py=%d\n", ikx, iky, px, py); #if 0 int px2, py2; km2px(sw,ikx+COR_KM_STEP, iky+COR_KM_STEP, &px2, &py2); rect(surface, px, py, px2-2,py2-2 , makecol(0, 128, 0)); #endif key=k2key(ikx, iky); if (sw->zoom<1000){ kma=g_hash_table_lookup(cor->wwl2, key); }else{ kma=g_hash_table_lookup(cor->wwl4, key); } if (!kma) continue; for (i=0,kmp=kma->data;ilen;i++,kmp++){ kx=kmp->kx; ky=kmp->ky; km2px(sw, kx, ky, &px, &py); if (kmp->c<0) { oldpx = px; oldpy = py; switch((int)kmp->c){ case -128: color=makecol(184, 159, 255); break; case -127: color=makecol(145, 125, 122); break; default: color=makecol(255, 159, 255); /* dbg("unknown char %d\n", (int)kmp->c); return; */ break; } continue; } c = color; if (overlapped_line(area, oldpx, oldpy, px, py)) line(surface, oldpx, oldpy, px, py, c); /*fast_putpixel(surface, oldpx, oldpy, makecol(255,0,0)); fast_putpixel(surface, px, py, makecol(255,0,0));*/ oldpx = px; oldpy = py; } } /*ST_STOP; */ /*ST_START; */ /* cor */ for (iky=minky; iky<=maxky; iky+=COR_KM_STEP) for (ikx=minkx; ikx<=maxkx; ikx+=COR_KM_STEP){ km2px(sw, ikx, iky, &px, &py); key=k2key(ikx, iky); kma=g_hash_table_lookup(cor->km, key); if (!kma) continue; for (i=0,kmp=kma->data;ilen;i++,kmp++){ kx=kmp->kx; ky=kmp->ky; km2px(sw, kx, ky, &px, &py); if (kmp->c<0) { oldpx = px; oldpy = py; switch((int)kmp->c){ case -128: /* coast */ color=makecol(0, 255, 255); break; case -127: /* isle */ color=makecol(0, 255, 255); break; case -126: /* lake */ color=makecol(0, 95, 195); break; case -125: /* border */ color=makecol(0, 255, 255); break; case -100: color=makecol(255,0,0); break; case -101: color=makecol(0,255,0); break; default: dbg("unknown char %d\n", (int)kmp->c); return; break; } continue; } c = color; /* if (abs(oldpx-px) + abs(oldpy-py) < 100) */ if (oldpx!=px || oldpy!=py) line(surface, oldpx, oldpy, px, py, c); /* if (oldpx==px && oldpy==py) stejne++; else ruzne++;*/ oldpx = px; oldpy = py; } } /* dbg("stejne=%d ruzne=%d\n", stejne, ruzne);*/ /*ST_STOP; */ } void plot_qrv(struct subwin *sw, SDL_Surface *surface, struct qrv_item *qi){ int kx, ky, px, py, color1, color2; SDL_Rect outline; outline.w=3; outline.h=3; kx = qi->kx; ky = qi->ky; km2px(sw, kx, ky, &px, &py); outline.x = px - 1; outline.y = py - 1; if (!overlapped_rect(&surface->clip_rect, &outline)) { // dbg("clipped qi\n"); return; } //dbg("kreslim qi %s [%d,%d]\n", qi->call, qi->kx, qi->ky); //dbg("q->call=%s sw->minqrvcall=%s\n", qi->call, sw->minqrvcall); if (sw->minqrvcall && strcmp(qi->call, sw->minqrvcall) == 0){ color1=makecol(193, 21, 107); color2=makecol(121, 13, 67); }else{ int bi = toupper(aband->bandchar) - 'A'; if (qi->wkd[bi] > 0){ color1=makecol(21, 193, 106); color2=makecol(13, 121, 66); }else{ color1=makecol(107, 107, 107); color2=makecol(67, 67, 67); } } pip(surface, px, py, color1, color2, sw->zoom); } void plot_qrvs(struct subwin *sw, SDL_Surface *surface, SDL_Rect *area){ int skip; int i, bi; if (!qrvdb) return; if (!aband) return; bi = toupper(aband->bandchar) - 'A'; for (i = 0; i < qrvdb->qrvs->len; i++){ struct qrv_item *qi = (struct qrv_item*)g_ptr_array_index(qrvdb->qrvs, i); skip = qrv_skip(qi, bi); // dbg("plot_qrvs('%s') skip=%d, bands=%d, wkd=%d\n", q->call, skip, q->bands, q->bands_wkd); if (skip) continue; plot_qrv(sw, surface, qi); } } void plot_gst(struct subwin *sw, SDL_Surface *surface, SDL_Rect *area, double gst[360], int c){ int i,ii, x, y, oldx=0,oldy=0; double rad, r; if (sw->map.w > sw->map.h) r = sw->map.h / 2.3; else r = sw->map.w / 2.3; for (i=-1; i<360;i++) { ii = i>=0 ? i : 359; rad = MY_PI * (double)(i - 90) / 180.0; x = (int)(sw->ox + r * gst[ii] * cos(rad)); y = (int)(sw->oy + r * gst[ii] * sin(rad)); if (i >= 0){ //if (overlapped_line(area, oldx, oldy, x, y)) line(surface, oldx, oldy, x, y, c); } oldx=x; oldy=y; } } void plot_qso(struct subwin *sw, SDL_Surface *surface, struct qso *qso){ int kx, ky, px, py, color; SDL_Rect outline; outline.w=9; outline.h=9; kx = qso->kx; ky = qso->ky; km2px(sw, kx, ky, &px, &py); outline.x = px - 4; outline.y = py - 4; if (!overlapped_rect(&surface->clip_rect, &outline)) { /* dbg("clipped qso\n"); */ return; } /* dbg("kreslim qso\n"); */ color=qso==sw->minqso?sdl->red:sdl->yellow; if (qso==&aband->tmplocqso) color=sdl->green; cross(surface, px, py, color, sw->zoom); } void map_add_qso(struct qso *qso){ if (ctest && !ctest->wwlused) return; if (gses->ontop->type!=SWT_MAP) return; SDL_SetClipRect(gses->ontop->screen, &gses->ontop->map); plot_qso(gses->ontop, gses->ontop->screen, qso); } void plot_qsos(struct subwin *sw, SDL_Surface *surface, SDL_Rect *area){ int i; struct qso *qso; if (!aband) return; for (i=0;iqsos->len;i++){ qso=(struct qso*)g_ptr_array_index(aband->qsos, i); if (qso->error) continue; plot_qso(sw, surface, qso); } if (aband->tmplocqso.locator && *aband->tmplocqso.locator) plot_qso(sw, surface, &aband->tmplocqso); } void plot_rotars(struct subwin *sw, SDL_Surface *surface, SDL_Rect *area, SDL_Rect *outarea){ struct rotar *rot; int i; double rad,r; int vx,vy,vx1,vy1,vx2,vy2; if (sw->map.w > sw->map.h) r = sw->map.h / 2.3; else r = sw->map.w / 2.3; outarea->x = (int)(sw->ox - r); outarea->y = (int)(sw->oy - r); outarea->w = (int)(2 * r + 1); outarea->h = (int)(2 * r + 1); /* for (i=0; i<16; i++){ SDL_Rect q; q.x = sw->ox-20; q.y = sw->oy-r+i*10; q.w = 20; q.h = 10; SDL_FillRect(surface, &q, sdl->termcol[i]); }*/ MUTEX_LOCK(rotars); for (i=0; ilen; i++){ rot = (struct rotar *)g_ptr_array_index(rotars, i); rad = MY_PI * (double)(rot->qtf - 90) / 180.0; vx = (int)(sw->ox + r * cos(rad)); vy = (int)(sw->oy + r * sin(rad)); vx1 = (int)(sw->ox + 0.95 * r * cos(rad + 0.02)); vy1 = (int)(sw->oy + 0.95 * r * sin(rad + 0.02)); vx2 = (int)(sw->ox + 0.95 * r * cos(rad - 0.02)); vy2 = (int)(sw->oy + 0.95 * r * sin(rad - 0.02)); line(surface, sw->ox, sw->oy, vx, vy, rot->color); triangle(surface, vx, vy, vx1, vy1, vx2, vy2, rot->color); if (rot->beamwidth<=0) continue; rad = MY_PI * (double)(rot->qtf - 90 + rot->beamwidth / 2) / 180.0; vx1 = (int)(sw->ox + 0.9 * r * cos(rad)); vy1 = (int)(sw->oy + 0.9 * r * sin(rad)); dashcnt=0; do_line(surface, sw->ox, sw->oy, vx1, vy1, rot->color, dashfce); rad = MY_PI * (double)(rot->qtf - 90 - rot->beamwidth / 2) / 180.0; vx2 = (int)(sw->ox + 0.9 * r * cos(rad)); vy2 = (int)(sw->oy + 0.9 * r * sin(rad)); dashcnt=0; do_line(surface, sw->ox, sw->oy, vx2, vy2, rot->color, dashfce); do_line(surface, vx1, vy1, vx2, vy2, rot->color, dashfce); } MUTEX_UNLOCK(rotars); } void map_update_layout(struct subwin *sw){ /* dbg("map_update_layout\n");*/ sw->map.x = 0; sw->map.y = 0; sw->map.w = sw->w * FONT_W - INFO_W; sw->map.h = sw->h * FONT_H; sw->info.x = sw->w * FONT_W - INFO_W; sw->info.y = 0; sw->info.w = INFO_W; sw->info.h = sw->h * FONT_H; } int map_update_qth(struct subwin *sw){ gchar *pwwlo; // dbg("map_update_qth\n"); if (!sdl) return 0; if (ctest && ctest->pwwlo) { pwwlo=ctest->pwwlo; }else{ pwwlo = cfg->pwwlo; } if (!pwwlo) internal_("Undefined locator"); if (sw->pwwlo && strcmp(sw->pwwlo, pwwlo)==0) { /*dbg("map_update_qth(%s (same) )\n", sw->pwwlo);*/ return 0; } CONDGFREE(sw->pwwlo); sw->pwwlo = g_strdup(pwwlo); /*dbg("map_update_qth(%s)\n", sw->pwwlo);*/ sw->ox=sw->map.w/2; sw->oy=sw->map.h/2; sw->myh = qth(sw->pwwlo, 0); sw->myw = qth(sw->pwwlo, 1); // dbg(" %s=%d %d\n", sw->pwwlo, sw->myh, sw->myw); cor_recalc(sw, sw->pwwlo); return 1; } int maps_reload(){ int i; struct subwin *sw=NULL; if (!sdl) return 0; /*dbg("maps_reload\n");*/ for (i=0;isubwins->len;i++){ sw=(struct subwin *)g_ptr_array_index(gses->subwins, i); if (sw->type!=SWT_MAP) continue; sw->gdirty=1; sw->minqso=NULL; CONDGFREE(sw->minqrvcall); map_update_qth(sw); } /* invalidate_bkg(NULL); in map_update_qth invalidate_cache(aband); clear_gfxstats(); gfx->dirty=1; gfx->draw=1;*/ if (gses && gses->ontop && gses->ontop->type==SWT_MAP) sw_map_redraw(gses->ontop, 0); return 0; } void map_clear_qso(struct qso *qso){ int kx, ky, px, py; SDL_Rect outline; struct subwin *sw; if (!sdl) return; if (ctest && !ctest->wwlused) return; if (gses->ontop->type!=SWT_MAP) goto x; if (!qso->locator || !*qso->locator) goto x; sw = gses->ontop; kx = qso->kx; ky = qso->ky; km2px(sw, kx, ky, &px, &py); outline.x = px - 4; outline.y = py - 4; outline.w = 9; outline.h = 9; if (!overlapped_rect(&sw->map, &outline)) goto x; sw_map_redraw_rect(sw, &outline, 0); x:; if (qso==&aband->tmplocqso) CONDGFREE(qso->locator); } void map_recalc_cors(){ int i; struct subwin *sw; for (i=0;isubwins->len;i++){ sw=(struct subwin *)g_ptr_array_index(gses->subwins, i); if (sw->type!=SWT_MAP) continue; cor_recalc(sw, ctest->pwwlo); break; /* fixme more maps with different pwwlo. but why? */ } } struct qso *find_nearest_qso(struct band *b, int mouse_x, int mouse_y){ int i; struct qso *minq, *q; gdouble d, min; int px, py, kx, ky; struct subwin *sw; if (!b) return NULL; sw=gses->ontop; if (sw->type!=SWT_MAP) return NULL; px=mouse_x-sw->x*FONT_W; py=mouse_y-sw->y*FONT_H; px2km(sw, px, py, &kx, &ky); min=G_MAXDOUBLE; minq=NULL; for (i=0; iqsos->len; i++){ q = (struct qso *)g_ptr_array_index(b->qsos, i); if (q->error) continue; /*compute_cache(q); */ d = sqrt((double)(sqr(q->kx-kx)+sqr(q->ky-ky))); /* dbg(" %s %d %d %6.3f\n", q->callsign, q->gfx_x-mouse_x, q->gfx_y-mouse_y, d);*/ if (dcallsign, minq->locator); else dbg("nearest: NULL\n"); */ return minq; } gchar *find_nearest_qrv(struct qrvdb *qrvdb, int mouse_x, int mouse_y){ struct qrv_item *minqrv; gdouble d, min; int px, py, kx, ky; struct subwin *sw; int i, bi; if (!qrvdb) return NULL; if (!aband) return NULL; sw=gses->ontop; if (sw->type!=SWT_MAP) return NULL; px=mouse_x-sw->x*FONT_W; py=mouse_y-sw->y*FONT_H; px2km(sw, px, py, &kx, &ky); min=G_MAXDOUBLE; minqrv=NULL; bi = toupper(aband->bandchar) - 'A'; for (i = 0; i < qrvdb->qrvs->len; i++){ struct qrv_item *qi = (struct qrv_item*)g_ptr_array_index(qrvdb->qrvs, i); if (qrv_skip(qi, bi)) continue; /*compute_cache(q); */ d = sqrt((double)(sqr(qi->kx-kx)+sqr(qi->ky-ky))); //dbg(" %s %d %d %6.3f\n", q->call, q->kx-kx, q->ky-ky, d); if (dcall, minqrv->wwl); // else dbg("nearest_qrv: NULL\n"); if (!minqrv) return NULL; return minqrv->call; } void plot_nearest_qso(struct subwin *sw){ struct qso *oldminqso; if (!sdl) return; oldminqso=sw->minqso; sw->minqso=find_nearest_qso(aband, sdl->mouse_x, sdl->mouse_y); /*dbg("sw->minq=%s oldminq=%s\n", sw->minq->callsign, oldminq->callsign); */ if (sw->minqso==oldminqso) return; /* dbg("minq changed %s->%s\n", oldminq->locator, sw->minq->locator); */ SDL_SetClipRect(sw->screen, &sw->map); /* dbg("clip_rect %dx%d%+d%+d\n", surface->clip_rect.x, surface->clip_rect.y, surface->clip_rect.w, surface->clip_rect.h); */ if (oldminqso) plot_qso(sw, sw->screen, oldminqso); if (sw->minqso) { plot_qso(sw, sw->screen, sw->minqso); plot_info_qso(sw, sw->screen, sw->minqso); }else{ plot_info_qso(sw, sw->screen, NULL); } } void plot_nearest_qrv(struct subwin *sw){ gchar *minqrvcall, *oldminqrvcall; if (!sdl) return; minqrvcall=find_nearest_qrv(qrvdb, sdl->mouse_x, sdl->mouse_y); //dbg("sw->minqrv=%s oldminqrv=%s\n", sw->minqrv->call, oldminqrv->call); if (sw->minqrvcall && strcmp(minqrvcall, sw->minqrvcall)==0) return; SDL_SetClipRect(sw->screen, &sw->map); oldminqrvcall = sw->minqrvcall; sw->minqrvcall = g_strdup(minqrvcall); if (oldminqrvcall) plot_qrv(sw, sw->screen, qrv_get(qrvdb, oldminqrvcall)); CONDGFREE(oldminqrvcall); if (minqrvcall) { struct qrv_item *qi = qrv_get(qrvdb, minqrvcall); plot_qrv(sw, sw->screen, qi); plot_info_qrv(sw, sw->screen, qi); }else{ plot_info_qrv(sw, sw->screen, NULL); } } void plot_info_qso(struct subwin *sw, SDL_Surface *surface, struct qso *qso){ char s[10]; int x,y; SDL_Rect rect; // dbg("plot_info_qso('%s')\n", qso ? qso->callsign : ""); rect.x=sw->info.x; rect.y=sw->info.y; rect.w=sw->info.w; rect.h=sw->info.y+(11*FONT_H)+12; SDL_SetClipRect(surface, &rect); SDL_FillRect(surface, &rect, makecol(0,0,35)) ; if (!qso) return; x=sw->info.x+4; y=sw->info.y+4; fontoutf(surface, x, y, sdl->green, FONT_TRANSP, VTEXT(T_GCALL), q0(qso->callsign)); y+=FONT_H+4; fontoutf(surface, x, y, sdl->green, FONT_TRANSP, VTEXT(T_GWWL), q0(qso->locator)); y+=FONT_H+4; fontoutf(surface, x, y, sdl->green, FONT_TRANSP, VTEXT(T_GQRB), (int)qso->qrb); y+=FONT_H+4; fontoutf(surface, x, y, sdl->green, FONT_TRANSP, VTEXT(T_GQTF), qso->qtf); y+=FONT_H+4; fontoutf(surface, x, y, sdl->green, FONT_TRANSP, VTEXT(T_GSEN), q0(qso->rsts), q0(qso->qsonrs)); y+=FONT_H+4; fontoutf(surface, x, y, sdl->green, FONT_TRANSP, VTEXT(T_GRCV), q0(qso->rstr), q0(qso->qsonrr)); y+=FONT_H+4; strcpy(s,qso->time_str); s[5]=s[4]; s[4]=s[3]; s[3]=s[2]; s[2]='.'; fontoutf(surface, x, y, sdl->green, FONT_TRANSP, VTEXT(T_GTIM), s); y+=FONT_H+4; fontoutf(surface, x, y, sdl->green, FONT_TRANSP, VTEXT(T_GOPE), q0(qso->operator_)); y+=FONT_H+4; fontoutf(surface, x, y, sdl->green, FONT_TRANSP, VTEXT(T_GREM), q0(qso->remark)); y+=FONT_H+4; return; } void plot_info_qrv(struct subwin *sw, SDL_Surface *surface, struct qrv_item *qi){ int x,y, bi; SDL_Rect rect; int color; //char s[256]; // dbg("plot_info_qrv(%s)\n", qrv?qrv->call:"-"); x=sw->info.x+4; y=sw->info.y+4+18*FONT_H; rect.x=sw->info.x; rect.y=y; rect.w=sw->info.w; rect.h=sw->y - y; SDL_SetClipRect(surface, &rect); SDL_FillRect(surface, &rect, makecol(0,0,35)) ; if (!qi) return; color=makecol(21, 193, 106); fontoutf(surface, x, y, color, FONT_TRANSP, VTEXT(T_GCALL), q0(qi->call)); y+=FONT_H+4; fontoutf(surface, x, y, color, FONT_TRANSP, VTEXT(T_GWWL), q0(qi->wwl)); y+=FONT_H+4; fontoutf(surface, x, y, color, FONT_TRANSP, VTEXT(T_GREM), q0(qi->text)); y+=FONT_H+4; if (!aband) return; bi = toupper(aband->bandchar) - 'A'; fontoutf(surface, x, y, color, FONT_TRANSP, VTEXT(T_GWKD), qi->wkd[bi]); y+=FONT_H+4; return; } int plot_qrb_qth(struct subwin *sw, SDL_Surface *surface, int mouse_x, int mouse_y){ double qrb,qtf, h2, w2; SDL_Rect rect; char buf[100]; int x, y, kx, ky; x=sw->info.x+4; y=sw->info.y+(11*FONT_H)+12; /* dbg("plot_qtb_qtf\n");*/ rect.x=sw->info.x; rect.y=y; rect.w=sw->info.w; rect.h=6 * FONT_H + 8 ; px2km(sw, mouse_x - sw->x*FONT_W, mouse_y - sw->y*FONT_H, &kx, &ky); km2qrbqtf(kx, ky, &qrb, &qtf); SDL_SetClipRect(surface, &rect); /* SDL_FillRect(surface, &sw->info, makecol(0,0,175)) ; */ SDL_FillRect(surface, &rect, makecol(0,0,35)) ; if (mouse_x < 0) return 0; fontoutf(surface, x, y, sdl->green, FONT_TRANSP, VTEXT(T_GQRB), (int)(qrb));y+=FONT_H+4; fontoutf(surface, x, y, sdl->green, FONT_TRANSP, VTEXT(T_GQTF), (int)(qtf*180/MY_PI)); y+=FONT_H+4; /* fontoutf(surface, x, y, sdl->green, FONT_TRANSP, VTEXT(T_GINC), (int) (gst[(int)(qtf*180/MY_PI)%360]/400*100));y+=FONT_H+4; */ if (qrbqtf2hw(sw->myh, sw->myw, qrb, qtf, &h2, &w2)==0){ fontoutf(surface, x, y, sdl->green, FONT_TRANSP, VTEXT(T_GLON), h2*180.0/MY_PI, x2gramin(buf, h2*180/MY_PI, "EW")); y+=FONT_H+4; fontoutf(surface, x, y, sdl->green, FONT_TRANSP, VTEXT(T_GLAT), w2*180.0/MY_PI, x2gramin(buf, w2*180/MY_PI, "NS")); y+=FONT_H+4; fontoutf(surface, x, y, sdl->green, FONT_TRANSP, VTEXT(T_GLOC), hw2loc(buf, h2*180/MY_PI, w2*180/MY_PI)); y+=FONT_H+4; } return 0; } void map_for_photo(struct subwin *sw){ struct qso *q; int i, minkx, minky, maxkx, maxky, px, py, lmx, lmy; int dx, dy; double z, z1, z2; if (!ctest) return; if (!sdl) return; minkx = minky = 0; maxkx = maxky = 0; for (i=0; iqsos->len; i++){ q = (struct qso *)g_ptr_array_index(aband->qsos, i); if (q->error) continue; if (q->kx < minkx) minkx = q->kx; if (q->ky < minky) minky = q->ky; if (q->kx > maxkx) maxkx = q->kx; if (q->ky > maxky) maxky = q->ky; } if (minkx > maxkx) return; // no qso if (minkx == 0 || minky == 0) return; // one qso // dbg("x=%d..%d y=%d..%d prumer x=%d y=%d\n", minkx, maxkx, minky, maxky, (maxkx+minkx)/2, (maxky+minky)/2); km2px(sw, (maxkx+minkx)/2, (maxky+minky)/2, &px, &py); dx = sw->map.w/2 - px; dy = sw->map.h/2 - py; // dbg("px=%d py=%d map/2=%d %d sw->ox=%d sw->oy=%d dx=%d dy=%d\n", px, py, sw->map.w/2, sw->map.h/2, sw->ox, sw->oy, dx, dy); sw->ox += dx; sw->oy += dy; move_map(sw, dx, dy); //px = sw->map.x + 20; //py = sw->map.y + 20; // px2km(sw, px, py, &kx, &ky); z1 = ((sw->map.w - 20) * 10000.0) / (maxkx - minkx); z2 = ((sw->map.h - 20) * 10000.0) / (maxky - minky); z = z1 < z2 ? z1 : z2; // dbg("kx=%d %d px=%d %d %d %d %d\n", kx, ky, px, py, (int)z1, (int)z2, (int)z); lmx = sw->map.w/2;//sw->x * FONT_W + sw->screen->w/2; lmy = sw->map.h/2;//sw->y * FONT_H + sw->screen->h/2; zoom(sw, z/sw->zoom, lmx, lmy); } void map_recalc_gst(struct subwin *sw){ int i, j; int qtf2; double max; sw->beamwidth = 10; for (i=0;i<=180;i++){ sw->antchar[i]=cos(MY_PI/180.0*(double)i*120.0/sw->beamwidth); /* dbg("i=%3d %5.3f\n", i, antchar[i]);*/ if (sw->antchar[i]<=0) break; } for (;i<=180;i++) sw->antchar[i]=0; for (i=0; i<360; i++) sw->gst[i]=0.0; if (!aband) return; for (i = 0; i < aband->qsos->len; i++){ struct qso *q = (struct qso *)g_index_array_index(aband->qsos, i); if (q->qtf<=0 || q->qtf>=360) continue; for (j=0;j<=180;j++){ qtf2 = q->qtf + j; if (sw->antchar[j] == 0) break; if (qtf2<0) qtf2 += 360; sw->gst[qtf2%360] += q->qrb * sw->antchar[j]; } for (j=1;j<180;j++){ qtf2 = q->qtf - j; if (sw->antchar[j] == 0) break; if (qtf2<0) qtf2 += 360; sw->gst[qtf2%360] += q->qrb * sw->antchar[j]; } } max = 0; for (i=0; i<360; i++) if (sw->gst[i] > max) max = sw->gst[i]; if (!max) return; for (i=0; i<360; i++) sw->gst[i] = sw->gst[i] / max; } #else int sw_map_kbd_func(struct subwin *sw, struct event *ev, int fw){ return 0; } int sw_map_mouse_func(struct subwin *sw, struct event *ev, int fw){ return 0; } void sw_map_redraw(struct subwin *sw, int flags){ } void sw_map_check_bounds(struct subwin *sw){ } void sw_map_raise(struct subwin *sw){ } int maps_reload(){ return 0; } void map_clear_qso(struct qso *qso){ } void map_add_qso(struct qso *qso){ } #endif tucnak2-2.48/src/trig.c0000644000175000017500000003107411714322064011644 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #ifdef HAVE_HAMLIB struct trig *trig; GIndexArray *riglist = NULL; struct trig *init_trig(){ struct trig *trig; int ret; char s[256]; dbg("init_trig(model=%d)\n", cfg->rig_model); if (cfg->rig_verbose) rig_set_debug(RIG_DEBUG_VERBOSE); else rig_set_debug(RIG_DEBUG_NONE); if (!riglist){ riglist = g_index_array_new(); rig_load_all_backends(); rig_list_foreach(trig_save_riglist, riglist); g_index_array_qsort(riglist, trig_compare); #if 0 for (i=0; ilen; i++){ struct rig_caps *caps = (struct rig_caps *)g_index_array_index(riglist, i); dbg("%4d %4d %-20s %s\n", i, caps->rig_model, caps->mfg_name, caps->model_name); } dbg("X\n"); #endif } if (!cfg->rig_model) return NULL; if (!cfg->rig_filename || !*cfg->rig_filename) return NULL; trig = g_new0(struct trig, 1); trig->qrg = 0.0; trig->model = cfg->rig_model; trig->filename = g_strdup(cfg->rig_filename); trig->speed = cfg->rig_speed; MUTEX_INIT(trig->jobs); RIG *tmprig = rig_init(cfg->rig_model); enum rig_port_e rp = tmprig->state.rigport.type.rig; rig_cleanup(tmprig); if (rp == RIG_PORT_SERIAL){ ret = fhs_lock(cfg->rig_filename, 1); if (ret){ fhs_error(s, sizeof(s), ret, cfg->rig_filename); log_addf("Rig error: %s (%s)", s, cfg->rig_filename); free_trig(trig); return NULL; } trig->locked = 1; } init_list(trig->jobs); trig->thread = g_thread_create(trig_main, (gpointer)trig, TRUE, NULL); if (!trig->thread) { log_addf("Can't create trig thread\n"); g_free(trig); return NULL; } return trig; } void free_trig(struct trig *trig){ if (riglist){ g_index_array_free(riglist, TRUE); riglist = NULL; } if (!trig) return; if (trig->thread){ trig->thread_break = 1; dbg("join trig...\n"); g_thread_join(trig->thread); dbg("done\n"); trig->thread=0; } if (trig->rig){ CONDGFREE(trig->filename); rig_close(trig->rig); rig_cleanup(trig->rig); trig->rig = NULL; } MUTEX_FREE(trig->jobs); CONDGFREE(trig->filename); if (trig->locked) fhs_unlock(cfg->rig_filename); g_free(trig); } void trig_read_handler(struct trig *trig, char *s){ struct zstring *zs; char *cmd; zs = zstrdup(s); cmd = ztokenize(zs, 1); // dbg("trig_read_handler rcvd: '%s' cmd='%s'\n", s, cmd); if (strcmp(cmd, "!")==0){ /* error */ log_addf("Rig error: %s", ztokenize(zs, 0)); } if (strcasecmp(cmd, "qrg")==0){ freq_t freq = atof(ztokenize(zs,0)); trig->qrg = freq + get_rig_lo(aband); dbg("qrg=%8.3f = %8.3f + %8.3f\n", trig->qrg / 1000000.0, freq / 1000000.0, get_rig_lo(aband) / 1000000.0); if (ctest && aband && cfg->rig_qrg_r2t){ if (trig->qrg < aband->qrg_min * 1000.0 || trig->qrg > aband->qrg_max * 1000.0){ struct band *b; b = find_band_by_qrg(trig->qrg); if (b) activate_band(b); } if (trig->qrg >= aband->qrg_min * 1000.0 && trig->qrg <= aband->qrg_max * 1000.0){ aband->qrg = trig->qrg; } } } zfree(zs); redraw_later(); } void trig_set_mode(struct trig *trig, rmode_t mode){ struct trig_job *job; if (!trig) return; job = g_new0(struct trig_job, 1); job->cmd = TRIG_MODE; job->mode = mode; trig_job_add(trig, job); } void trig_set_qrg(struct trig *trig, double qrg){ struct trig_job *job; if (!trig) return; job = g_new0(struct trig_job, 1); job->cmd = TRIG_FREQ; job->freq = qrg - get_rig_lo(aband); dbg("freq=%8.3f = %8.3f - %8.3f\n", job->freq / 1000000.0, qrg / 1000000.0, get_rig_lo(aband) / 1000000.0); trig_job_add(trig, job); } void trig_set_mode_qrg(struct trig *trig, rmode_t mode, double qrg){ struct trig_job *job; if (!trig) return; job = g_new0(struct trig_job, 1); job->cmd = TRIG_MODE_FREQ; job->mode = mode; job->freq = qrg - get_rig_lo(aband); dbg("freq=%8.3f = %8.3f - %8.3f\n", job->freq / 1000000.0, qrg / 1000000.0, get_rig_lo(aband) / 1000000.0); trig_job_add(trig, job); } void trig_resend_freq(struct trig *trig){ struct trig_job *job; if (!trig) return; job = g_new0(struct trig_job, 1); job->cmd = TRIG_RESENDFREQ; trig_job_add(trig, job); } void trig_set_rit(struct trig *trig, double rit){ struct trig_job *job; if (!trig) return; job = g_new0(struct trig_job, 1); job->cmd = TRIG_RIT; job->freq = rit; trig_job_add(trig, job); } void trig_job_add(struct trig *trig, struct trig_job *job){ MUTEX_LOCK(trig->jobs); add_to_list(trig->jobs, job); MUTEX_UNLOCK(trig->jobs); } struct trig_job *trig_job_get(struct trig *trig){ struct trig_job *job; MUTEX_LOCK(trig->jobs); if (list_empty(trig->jobs)){ MUTEX_UNLOCK(trig->jobs); return NULL; } job = trig->jobs.prev; del_from_list(job); MUTEX_UNLOCK(trig->jobs); return job; } gpointer trig_main(gpointer xxx){ char s[256]; int ret; freq_t freq, oldfreq; struct trig *trig; // ttime next, now; trig = (struct trig *)xxx; dbg("trig_main(model=%d, filename='%s', speed=%d)\n", trig->model, trig->filename, trig->speed); freq = oldfreq = (freq_t)0; trig->rig = rig_init(trig->model); if (!trig->rig){ sprintf(s, "TRIG;!;Can't init rig %d\n", (int)trig->model); ret = write(tpipe->threadpipe_write, s, strlen(s)); return NULL; } safe_strncpy(trig->rig->state.rigport.pathname, trig->filename, FILPATHLEN); if (trig->speed > 0) trig->rig->state.rigport.parm.serial.rate = trig->speed; trig->rig->state.rigport.parm.serial.handshake = RIG_HANDSHAKE_NONE; trig->rig->state.rigport.timeout = 2000; // dbg("pathname=%s\n", trig->rig->state.rigport.pathname); // dbg("type=%d\n", trig->rig->state.rigport.type.rig); ret = rig_open(trig->rig); if (ret != RIG_OK){ sprintf(s, "TRIG;!;Can't open rig %d (%s)\n", (int)trig->model, trig->rig->state.rigport.pathname); ret = write(tpipe->threadpipe_write, s, strlen(s)); rig_cleanup(trig->rig); trig->rig = NULL; return NULL; } if (fcntl(0, F_SETFL, O_NONBLOCK)){ sprintf(s, "TRIG;e;Can't set O_NONBLOCK\n"); ret = write(tpipe->threadpipe_write, s, strlen(s)); rig_close(trig->rig); rig_cleanup(trig->rig); trig->rig = NULL; return NULL; } //next = get_time(); while(!trig->thread_break){ enum rig_errcode_e error; struct trig_job *job; rmode_t mode; pbwidth_t width; vfo_t vfo; job = trig_job_get(trig); if (!job){ /*now = get_time(); if (now < next) { usleep(50000); continue; } next = get_time() + cfg->rig_poll_ms;*/ // dbg("rig_get_freq\n"); usleep(cfg->rig_poll_ms * 1000); error = rig_get_vfo(trig->rig, &vfo); if (error == -RIG_ENAVAIL){ vfo = RIG_VFO_CURR; }else{ if (error != RIG_OK) { trig->error = error; continue; } } usleep(cfg->rig_poll_ms * 1000); error = rig_get_freq(trig->rig, vfo, &freq); if (error != RIG_OK){ trig->error = error; //dbg("rig_get_freq()=%d\n", status); continue; } //dbg("TRIG;qrg;%"PRIfreq"\n", freq); if (freq != oldfreq){ oldfreq = freq; sprintf(s, "TRIG;qrg;%"PRIfreq"\n", freq); ret = write(tpipe->threadpipe_write, s, strlen(s)); dbg("get_freq: %8.3f\n", freq / 1000000.0); } continue; } switch(job->cmd){ case TRIG_MODE: usleep(cfg->rig_poll_ms * 1000); error = rig_get_mode(trig->rig, RIG_VFO_CURR, &mode, &width); if (error != RIG_OK) { trig->error = error; break; } usleep(cfg->rig_poll_ms * 1000); error = rig_set_mode(trig->rig, RIG_VFO_CURR, job->mode, width /*RIG_PASSBAND_NORMAL*/); if (error != RIG_OK) { trig->error = error; break; } break; case TRIG_FREQ: usleep(cfg->rig_poll_ms * 1000); error = rig_set_freq(trig->rig, RIG_VFO_CURR, job->freq); dbg("set_freq: %8.3f\n", job->freq / 1000000.0); if (error != RIG_OK) { trig->error = error; break; } break; case TRIG_MODE_FREQ: usleep(cfg->rig_poll_ms * 1000); error = rig_get_mode(trig->rig, RIG_VFO_CURR, &mode, &width); if (error != RIG_OK) { trig->error = error; break; } //dbg("mode=%d job->mode=%d\n", mode, job->mode); if (mode == job->mode) break; usleep(cfg->rig_poll_ms * 1000); error = rig_set_mode(trig->rig, RIG_VFO_CURR, job->mode, width /*RIG_PASSBAND_NORMAL*/); if (error != RIG_OK) { trig->error = error; break; } usleep(cfg->rig_poll_ms * 1000); error = rig_set_freq(trig->rig, RIG_VFO_CURR, job->freq); dbg("set_freq: %8.3f\n", job->freq/1000000.0); if (error != RIG_OK) { trig->error = error; break; } break; case TRIG_RESENDFREQ: sprintf(s, "TRIG;qrg;%"PRIfreq"\n", freq); ret = write(tpipe->threadpipe_write, s, strlen(s)); break; case TRIG_RIT: //dbg("rig_set_rit(,%d, %"PRIfreq")\n", RIG_VFO_CURR, job->freq); usleep(cfg->rig_poll_ms * 1000); error = rig_set_rit(trig->rig, RIG_VFO_CURR, job->freq); if (error != RIG_OK) { trig->error = error; break; } break; } } return 0; } int trig_save_riglist(const struct rig_caps *caps, void *data){ GIndexArray *riglist = (GIndexArray *)data; g_index_array_add(riglist, (struct rig_caps *)caps); return -1; } int trig_compare (const void *a, const void *b){ struct rig_caps **rca, **rcb; int d; rca = (struct rig_caps **)a; rcb = (struct rig_caps **)b; if (!*rca && !*rcb) return 0; if (!*rca) return -1; if (!*rcb) return +1; d = strcasecmp((*rca)->mfg_name, (*rcb)->mfg_name); if (d) return d; return strcasecmp((*rca)->model_name, (*rcb)->model_name); } char *trig_short_errstr(enum rig_errcode_e error){ static char s[20]; switch (error){ case RIG_OK: return "OK"; case -RIG_EINVAL: return "Invalid param."; case -RIG_ECONF: return "Invalid config."; case -RIG_ENOMEM: return "Not enough mem."; case -RIG_ENIMPL: return "Not implemented"; case -RIG_ETIMEOUT: return "Comm. timeout"; case -RIG_EIO: return "IO error"; case -RIG_EINTERNAL: return "Internal error"; case -RIG_EPROTO: return "Protocol error"; case -RIG_ERJCTED: return "Command reject."; case -RIG_ETRUNC: return "Arg. truncated"; case -RIG_ENAVAIL: return "F not available"; case -RIG_ENTARGET: return "VFO not target."; case -RIG_BUSERROR: return "Error on bus"; case -RIG_BUSBUSY: return "Bus collision"; case -RIG_EARG: return "Invalid arg."; case -RIG_EVFO: return "Invalid VFO"; case -RIG_EDOM: return "Arg out of dom."; default: sprintf(s, "Error %d", (int)error); return s; } } #endif tucnak2-2.48/src/gptrarray.c0000644000175000017500000000174611567373656012740 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" void g_ptr_array_free_all(GPtrArray *array){ int i; gpointer item; for (i=array->len-1; i>=0; i--){ item=g_ptr_array_index(array, i); g_free(item); } g_ptr_array_free(array, TRUE); } void g_ptr_array_free_items(GPtrArray *array){ int i; gpointer item; for (i=array->len-1; i>=0; i--){ item=g_ptr_array_index(array, i); g_free(item); g_ptr_array_remove_index(array, i); } } void g_ptr_array_qsort (GPtrArray *array, int (*compar)(const void *, const void *)){ qsort( (void *)array->pdata, array->len, sizeof(gpointer), compar); } tucnak2-2.48/src/menu.c0000644000175000017500000012100211577575110011643 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" void menu_about(cba_t cba) { msg_box(NULL, VTEXT(T_ABOUT), AL_CENTER, VTEXT(T_TUCNAK__TACLOG_LIKE), NULL, 1, VTEXT(T_OK), NULL, B_ENTER | B_ESC); } void menu_copying(cba_t cba) { msg_box(NULL, VTEXT(T_COPYING), AL_CENTER, VTEXT(T_COPYING_VER), NULL, 1, VTEXT(T_OK), NULL, B_ENTER | B_ESC); } void menu_contest_new(cba_t cba) { if (ctest){ msg_box(NULL, VTEXT(T_WARNING), AL_CENTER,VTEXT(T_CTEST_ACTIVE), NULL,1, VTEXT(T_CANCEL), NULL, B_ENTER |B_ESC); return; } contest_options1_from_menu(cba); } void menu_contest_new_wizz(cba_t cba) { if (ctest){ msg_box(NULL, VTEXT(T_WARNING),AL_CENTER, VTEXT(T_CTEST_ACTIVE), NULL,1, VTEXT(T_CANCEL), NULL, B_ENTER |B_ESC); return; } menu_wizz(cba); } void menu_contest1_options_from_ctest(cba_t cba) { contest_options1_from_ctest(cba); } static int select_dir_func(const struct dirent *de){ struct stat st; gchar *f; int r; if (strcmp((char *)de->d_name, "00000000")==0) return 0; r = regcmp((char *)de->d_name, "^[0-9]{8}(\\.[0-9]+)?$"); if (r) return 0; f = g_strconcat(getenv("HOME"), "/tucnak/", de->d_name, NULL); if (stat(f, &st)) { g_free(f); return 0; } g_free(f); if (!S_ISDIR(st.st_mode)) return 0; return 1; } /*int compare_dir_func(const struct dirent **pde1, const struct dirent **pde2){*/ static int compare_dir_func(const void *d1, const void *d2){ char *c1, *c2; int r, n1, n2; const struct dirent **pde1, **pde2; pde1=(const struct dirent **)d1; pde2=(const struct dirent **)d2; r = strncmp( (*pde1)->d_name, (*pde2)->d_name, 8); if (r!=0) return -r; c1 = strchr( (*pde1)->d_name , '.'); c2 = strchr( (*pde2)->d_name , '.'); n1 = c1 ? atoi(c1+1) : 0; n2 = c2 ? atoi(c2+1) : 0; return n2 - n1; } static struct menu_item no_contests[] = { {CTEXT(T_NO_CTESTS), "", M_BAR, NULL, {NULL}, 0, 0}, {NULL, NULL, NULL, NULL, {NULL}, 0, 0} }; void menu_load_contest(cba_t dir, cba_t unused){ /*dbg("menu_load_contest('%s')\n", dir);*/ gchar *date = (char*)GETCBA(dir, charp); load_contest_edi(date, 0); redraw_later(); } static struct dirent **namelist=NULL; static int namelistlen = 0; void free_namelist(void){ int i; if (!namelistlen) return; for (i=0; id_name); c=g_strdup_printf("%s/%s/desc", dir, namelist[i]->d_name); memset(s, 0, sizeof(s)); d = NULL; f = fopen(c, "rt"); if (f){ locked=0; if (lockf(fileno(f), F_TEST, 0)) locked=1; if (fgets(s,1024,f)!=NULL){ if (strlen(s)>0 && s[strlen(s)-1]=='\n') s[strlen(s)-1]='\0'; if (strlen(s)>0 && s[strlen(s)-1]=='\r') s[strlen(s)-1]='\0'; d = strchr(s,' '); if (d) d++; } fclose(f); } g_free(c); if (!d) d=s; if (strlen(d)>50) d[50]='\0'; items=g_strsplit(d, " ", 2); if (items && items[0] && items[1]){ c = g_strdup_printf("%-12s%-6s %s", namelist[i]->d_name, items[0], items[1]); }else{ c = g_strdup_printf("%-12s%s", namelist[i]->d_name, d); } if (items) g_strfreev(items); if (strlen(c)>max) max=strlen(c); SETCBA(cba2, charp, namelist[i]->d_name); add_to_menu(&mi, stracpy(c), locked? "!":"", "", menu_load_contest, cba2, 0); g_free(c); } g_free(dir); set_window_ptr(gses->win, (term->x-6-max)/2,(term->y-2-i)/2); do_menu(mi, CBA0); } static void really_close_ctest(void) { rel_write_all("CL\n"); save_all_bands_txt(0); free_ctest(); } void menu_save_all(cba_t cba){ save_all_bands_txt(0); } void menu_export_edi(cba_t cba){ export_all_bands_edi(); } void menu_export_adif(cba_t cba){ export_all_bands_adif(); } void menu_export_cbr(cba_t cba){ export_all_bands_cbr(); } void menu_export_report(cba_t cba){ export_all_bands_report(); } void menu_export_html(cba_t cba){ export_all_bands_html(); } void menu_export_stats(cba_t cba) { export_stats_fifo(); } void menu_export_titlpage(cba_t cba) { export_all_bands_titlpage(); } void menu_export_wiki(cba_t cba){ export_all_bands_wiki(); } void menu_import_edi(cba_t cba){ char *pwd; pwd=getcwd(NULL, 0); input_field(NULL, VTEXT(T_IMPORT_EDI), VTEXT(T_FILENAME), VTEXT(T_OK), VTEXT(T_CANCEL), gses, NULL, 150, pwd, 0, 0, NULL, import_edi, NULL, 1); if (pwd) free(pwd); } void menu_import_adif(cba_t cba){ char *pwd; pwd=getcwd(NULL, 0); input_field(NULL, VTEXT(T_IMPORT_ADIF), VTEXT(T_FILENAME), VTEXT(T_OK), VTEXT(T_CANCEL), gses, NULL, 150, pwd, 0, 0, NULL, import_adif, NULL, 1); if (pwd) free(pwd); } void menu_import_swap(cba_t cba){ char *pwd; pwd=getcwd(NULL, 0); input_field(NULL, VTEXT(T_IMPORT_SWAP), VTEXT(T_FILENAME), VTEXT(T_OK), VTEXT(T_CANCEL), gses, NULL, 150, pwd, 0, 0, NULL, import_swap, NULL, 1); if (pwd) free(pwd); } void menu_import_list(cba_t cba){ char *pwd; pwd=getcwd(NULL, 0); input_field(NULL, VTEXT(T_IMPORT_LIST), VTEXT(T_FILENAME), VTEXT(T_OK), VTEXT(T_CANCEL), gses, NULL, 150, pwd, 0, 0, NULL, import_list, NULL, 1); if (pwd) free(pwd); } void menu_contest_close(cba_t cba) { if (!ctest){ msg_box(NULL, VTEXT(T_WARNING),AL_CENTER,VTEXT(T_NO_CCLOSE),NULL,1, VTEXT(T_CANCEL), NULL, B_ENTER |B_ESC); return; } msg_box(NULL, VTEXT(T_REALLY), AL_CENTER, VTEXT(T_CLOSE_CTEST),gses, 2, VTEXT(T_YES), (void (*)(void *))really_close_ctest, B_ENTER, VTEXT(T_NO), NULL, B_ESC); } /****************************************************************************/ static void really_exit_prog(void) { register_bottom_half(destroy_terminal, CBA0); } static void dont_exit_prog(void) { gses->exit_query = 0; } static void query_exit(void) { gses->exit_query = 1; msg_box(NULL, VTEXT(T_EXIT_TUCNAK), AL_CENTER, VTEXT(T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK), gses, 2, VTEXT(T_YES), (void (*)(void *))really_exit_prog, B_ENTER, VTEXT(T_NO), dont_exit_prog, B_ESC); } void exit_prog(cba_t cba) { if (!gses) { register_bottom_half(destroy_terminal, CBA0); return; } if (1){ query_exit(); return; } really_exit_prog(); } struct refresh { /* struct terminal *term;*/ struct window *win; /* struct session *ses;*/ void (*fn)(cba_t cba); cba_t data; int timer; }; static void refresh(struct refresh *r) { struct refresh rr; r->timer = -1; memcpy(&rr, r, sizeof(struct refresh)); delete_window(r->win); rr.fn(rr.data); } static void end_refresh(struct refresh *r) { if (r->timer != -1) kill_timer(r->timer); mem_free(r); } static void refresh_abort(struct dialog_data *dlg) { end_refresh(dlg->dlg->udata2); } /*static void memory_cld(struct terminal *term, void *d) { #ifdef LEAK_DEBUG last_mem_amount = mem_amount; #endif } */ /* FIXME! overflow */ #define MSG_BUF 4000 #define MSG_W 100 void memory_info(cba_t cba) { char message[MSG_BUF]; char *p; struct refresh *r; FILE *f; char s[1026], *c1, *c2, *c3; int cnt=1; char *act_sbrk; if (!(r = (struct refresh *)mem_alloc(sizeof(struct refresh)))) return; /* r->term = term;*/ r->win = NULL; /*// r->ses = ses;*/ r->fn = memory_info; r->data = cba; r->timer = -1; p = message; #ifdef LEAK_DEBUG p += sprintf(p, VTEXT(T_GUI_LD), mem_amount); if (last_mem_amount != -1) p += sprintf(p, ", %s %ld, %s %ld", VTEXT(T_LAST), last_mem_amount, VTEXT(T_DIFFERENCE), mem_amount - last_mem_amount); #endif p += sprintf(p, VTEXT(T_CWI), get_cw_size(cw), get_wc_size(cw), cw->latest); p += sprintf(p, VTEXT(T_EXC), excdb->excname, get_exc_size(excdb), get_cxe_size(excdb), excdb->latest); p += sprintf(p, VTEXT(T_VEXC), get_vexc_size(excdb)); p += sprintf(p, VTEXT(T_DWI), get_pd_size(dw), get_dw_size(dw), get_wd_size(dw)); p += sprintf(p, VTEXT(T_NAMES), get_namedb_size(namedb)); p += sprintf(p, VTEXT(T_MASTER), get_masterdb_size(masterdb)); f = fopen("/proc/self/status", "rt"); if (f){ p+=sprintf(p,VTEXT(T_MEMS), 0xf00l); while (fgets(s, 1024, f)!=NULL){ /* dbg("%s", s);*/ if (regmatch(s, "Vm(.*):. *([0-9 a-zA-Z]+)", &c1, &c2, &c3, NULL)==0){ /* dbg("match '%s' '%s' \n", c2, c3);*/ p+=sprintf(p, " %s=%s ", c2, c3); cnt++; if (cnt==3){ cnt=0; p+=sprintf(p, "\n"); } mem_free(c1);mem_free(c2);mem_free(c3); } } fclose(f); } p += sprintf(p, "\n"); act_sbrk = (char *)sbrk(0); p += sprintf(p, VTEXT(T_SBRK), act_sbrk-starting_sbrk); if (!(p = stracpy(message))) { mem_free(r); return; } msg_box(getml(p, NULL), VTEXT(T_MEMORY_INFO), AL_LEFT, p, r, 1, VTEXT(T_OK), NULL, B_ENTER | B_ESC); r->win = term->windows.next; ((struct dialog_data *)r->win->data)->dlg->abort = refresh_abort; r->timer = install_timer(RESOURCE_INFO_REFRESH, (void (*)(cba_t))refresh, (cba_t)r); } void net_info(cba_t cba) { char message[MSG_BUF]; char *p; struct refresh *r; int i; if (!(r = (struct refresh*)mem_alloc(sizeof(struct refresh)))) return; /** r->term = term;*/ r->win = NULL; /* r->ses = ses;*/ r->fn = net_info; r->data = cba; r->timer = -1; p = message; p += sprintf(p,VTEXT(T_NMY), inet_ntoa(net->my.sin_addr), ntohs(net->my.sin_port)); p += sprintf(p,VTEXT(T_NGLOBAL), inet_ntoa(net->global.sin_addr), ntohs(net->global.sin_port)); if (net->master){ p += sprintf(p,VTEXT(T_NMASTER), ns_desc[net->master->state], net->master->operator_?net->master->operator_:"", inet_ntoa(net->master->sin.sin_addr), ntohs(net->master->sin.sin_port), net->master->is_same_ctest?"OK":"--", get_timer_str(net->master)); } if (net->peers->len>0){ p += sprintf(p, VTEXT(T_NSLAVES), 0xf001); } for (i=0;ipeers->len; i++){ struct conn *conn; conn = (struct conn*)g_ptr_array_index(net->peers, i); /*p += sprintf(p, "%s %s:%d\n", ns_desc[conn->state], inet_ntoa(conn->sin.sin_addr), ntohs(conn->sin.sin_port)); */ p += sprintf(p, "%s %-6s %s %s %s\n", ns_desc[conn->state], conn->operator_?conn->operator_:"", conn->remote_id, conn->is_same_ctest?"OK":"--", get_timer_str(conn)); } if (!(p = stracpy(message))) { mem_free(r); return; } msg_box(getml(p, NULL), VTEXT(T_NINFO), AL_LEFT, p, r, 1, VTEXT(T_OK), NULL, B_ENTER | B_ESC); r->win = term->windows.next; ((struct dialog_data *)r->win->data)->dlg->abort = refresh_abort; r->timer = install_timer(RESOURCE_INFO_REFRESH, (void (*)(cba_t))refresh, (cba_t)r); } static struct menu_item no_bands_qrv_menu[] = { {CTEXT(T_NO_BANDS_QRV), "", M_BAR, NULL, {NULL}, 0, 0}, {NULL, NULL, 0, NULL, {NULL}, 0, 0} }; static struct menu_item no_bands_configured_menu[] = { {CTEXT(T_NO_BANDS_CONF), "", M_BAR, NULL, {NULL}, 0, 0}, {NULL, NULL, 0, NULL, {NULL}, 0, 0}, }; void menu_activate_band(cba_t cba){ struct band *b; char *pband; pband=(char*)GETCBA(cba, charp); /*dbg("menu_activate_band(term=%p, pband='%s', ses=%p)\n",term,pband,ses);*/ b=find_band_by_pband(pband); activate_band(b); } void menu_setup_band(cba_t cba){ /* cba.charp=pband */ band_settings(cba, 0); } void menu_bands(cba_t cba) { struct menu_item *mi = NULL; int i, sel = 0; if (!ctest || !ctest->bands->len) { /* cba_t cba2; cba2.menu_item=no_bands_qrv_menu;*/ do_menu(no_bands_qrv_menu, CBA0); return; } for (i=0;ibands->len;i++){ struct band *b; cba_t cba2; static char *bandstrs[]={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}; b = (struct band *)g_ptr_array_index(ctest->bands,i); if (!mi) if (!(mi = new_menu(3))) return; if (b == aband) sel = i; SETCBA(cba2, charp, b->pband); add_to_menu(&mi, stracpy(b->bandname), bandstrs[upcase(b->bandchar)-'A'], bandstrs[upcase(b->bandchar)-'A'], MENU_FUNC GETCBA(cba, void_), cba2, 0); } do_menu_selected(mi, CBA0, sel); } void menu_cfg_bands(cba_t cba){ cba_t cba0; struct menu_item *mi = NULL; int i; SETCBA(cba0, void_, NULL); if (!cfg || !cfg->bands->len) { do_menu(no_bands_configured_menu, cba0); return; } for (i=0;ibands->len;i++){ struct config_band *b; cba_t cba2; static char *bandstrs[]={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}; b = (struct config_band *)g_ptr_array_index(cfg->bands,i); if (!b->qrv) continue; if (!mi) if (!(mi = new_menu(3))) return; SETCBA(cba2, charp, b->pband); // dbg("add_to_menu(%c,'%s','%s')\n", b->bandchar, b->pband, bandstrs[upcase(b->bandchar)-'A']); add_to_menu(&mi, stracpy(b->pband), bandstrs[upcase(b->bandchar)-'A'], bandstrs[upcase(b->bandchar)-'A'], MENU_FUNC GETCBA(cba, void_), cba2, 0); } if (mi) add_to_menu(&mi, stracpy(""), "", M_BAR, NULL, cba0, 0); for (i=0;ibands->len;i++){ struct config_band *b; cba_t cba2; static char *bandstrs[]={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}; b = (struct config_band *)g_ptr_array_index(cfg->bands,i); if (b->qrv) continue; if (!mi) if (!(mi = new_menu(3))) return; SETCBA(cba2, charp, b->pband); add_to_menu(&mi, stracpy(b->pband), bandstrs[upcase(b->bandchar)-'A'], bandstrs[upcase(b->bandchar)-'A'], MENU_FUNC GETCBA(cba, void_), cba2, 0); } do_menu(mi, CBA0); } void menu_activate_subwin(cba_t cba){ /*dbg("menu_activate_subwin %d\n", (int)ddd);*/ int n = (int)GETCBA(cba, int_); if (sw_set_ontop(n, 0)){ if (gses->focused){ sw_set_focus(); il_unset_focus(INPUTLN(aband)); }else{ sw_unset_focus(); il_set_focus(INPUTLN(aband)); } redraw_later(); } } void subwins_menu(cba_t cba) { struct menu_item *mi = NULL; int i; char s[16]; /*if (!ctest) { do_menu(not_available, CBA0); return; } */ if (!(mi = new_menu(3))) return; add_to_menu(&mi, stracpy(VTEXT(T_ADD_SUBWIN)), "", VTEXT(T_HK_ADD_SUBWIN), MENU_FUNC menu_add_subwin, CBA0, 0); add_to_menu(&mi, stracpy(VTEXT(T_CLOSE_SUBWIN)), "", VTEXT(T_HK_CLOSE_SUBWIN), MENU_FUNC menu_close_subwin, CBA0, 0); /*add_to_menu(&mi, stracpy("Split window"), "", "S", MENU_FUNC menu_split_subwin, CBA0, 0); add_to_menu(&mi, stracpy("Remove split"), "", "R", MENU_FUNC menu_remove_split, CBA0, 0);*/ add_to_menu(&mi, stracpy(""), "", M_BAR, NULL, CBA0, 0); for (i=0;isubwins->len;i++){ struct subwin *sw; cba_t cba2; sw = (struct subwin *)g_ptr_array_index(gses->subwins,i); sprintf(s,"%d", i); SETCBA(cba2, int_, i); add_to_menu(&mi, stracpy(sw->title), "", "", MENU_FUNC menu_activate_subwin, cba2, 0); } do_menu(mi, CBA0); } /****************** NETWORK ********************************************/ void display_codepage(cba_t cba) { int cp = (int)GETCBA(cba, int_); struct term_spec *t = new_term_spec(term->term); if (t) t->charset = cp; redraw_terminal_cls(); } void charset_list(cba_t cba) { int i, sel; char *n; struct menu_item *mi; cba_t cba2; if (!(mi = new_menu(1))) return; for (i = 0; (n = get_cp_name(i)); i++) { if (is_cp_special(i)) continue; SETCBA(cba2, int_, i); add_to_menu(&mi, get_cp_name(i), "", "", MENU_FUNC display_codepage, cba2, 0); } sel = term->spec->charset; if (sel < 0) sel = 0; do_menu_selected(mi, CBA0, sel); } /*void set_val(cba_t *ip, cba_t *d) { *d = (vint)ip; } void charset_sel_list(cba_t cba) { int i, sel; char *n; struct menu_item *mi; if (!(mi = new_menu(1))) return; for (i = 0; (n = get_cp_name(i)); i++) { cba_t cba2; cba2.int_=i; add_to_menu(&mi, get_cp_name(i), "", "", MENU_FUNC set_val, cba2, 0); } sel = *ptr; if (sel < 0) sel = 0; do_menu_selected(term, mi, ptr, sel); } */ static void terminal_options_ok(void *p) { redraw_terminal_cls(); } static char *td_labels[] = { CTEXT(T_NO_FRAMES), CTEXT(T_VT_100_FRAMES), CTEXT(T_LINUX_OR_OS2_FRAMES), CTEXT(T_KOI8R_FRAMES), CTEXT(T_USE_11M), CTEXT(T_RESTRICT_FRAMES_IN_CP850_852), CTEXT(T_BLOCK_CURSOR), CTEXT(T_COLOR), CTEXT(T_UTF_8_IO), NULL }; void terminal_options(cba_t cba) { struct dialog *d; struct term_spec *ts = new_term_spec(term->term); if (!ts) return; if (!(d = mem_alloc(sizeof(struct dialog) + 12 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 12 * sizeof(struct dialog_item)); d->title = VTEXT(T_TERMINAL_OPTIONS); d->fn = checkbox_list_fn; d->udata = td_labels; d->refresh = (void (*)(void *))terminal_options_ok; d->items[0].type = D_CHECKBOX; d->items[0].gid = 1; d->items[0].gnum = TERM_DUMB; d->items[0].dlen = sizeof(int); d->items[0].data = (void *)&ts->mode; d->items[1].type = D_CHECKBOX; d->items[1].gid = 1; d->items[1].gnum = TERM_VT100; d->items[1].dlen = sizeof(int); d->items[1].data = (void *)&ts->mode; d->items[2].type = D_CHECKBOX; d->items[2].gid = 1; d->items[2].gnum = TERM_LINUX; d->items[2].dlen = sizeof(int); d->items[2].data = (void *)&ts->mode; d->items[3].type = D_CHECKBOX; d->items[3].gid = 1; d->items[3].gnum = TERM_KOI8; d->items[3].dlen = sizeof(int); d->items[3].data = (void *)&ts->mode; d->items[4].type = D_CHECKBOX; d->items[4].gid = 0; d->items[4].dlen = sizeof(int); d->items[4].data = (void *)&ts->m11_hack; d->items[5].type = D_CHECKBOX; d->items[5].gid = 0; d->items[5].dlen = sizeof(int); d->items[5].data = (void *)&ts->restrict_852; d->items[6].type = D_CHECKBOX; d->items[6].gid = 0; d->items[6].dlen = sizeof(int); d->items[6].data = (void *)&ts->block_cursor; d->items[7].type = D_CHECKBOX; d->items[7].gid = 0; d->items[7].dlen = sizeof(int); d->items[7].data = (void *)&ts->col; d->items[8].type = D_CHECKBOX; d->items[8].gid = 0; d->items[8].dlen = sizeof(int); d->items[8].data = (void *)&ts->utf_8_io; d->items[9].type = D_BUTTON; d->items[9].gid = B_ENTER; d->items[9].fn = ok_dialog; d->items[9].text = VTEXT(T_OK); d->items[10].type = D_BUTTON; d->items[10].gid = B_ESC; d->items[10].fn = cancel_dialog; d->items[10].text = VTEXT(T_CANCEL); d->items[11].type = D_END; do_dialog(d, getml(d, NULL)); } void menu_shell(cba_t cba) { char *sh; if (!(sh = GETSHELL)) sh = DEFAULT_SHELL; exec_on_terminal(sh, "", 1); } void menu_set_language(cba_t cba) { set_language((int)GETCBA(cba, int_)); redraw_terminal_cls(); } void menu_language_list(cba_t cba) { int i, sel; char *n; struct menu_item *mi; if (!(mi = new_menu(1))) return; for (i = 0; i < n_languages(); i++) { cba_t cba2; SETCBA(cba2, int_, i); n = language_name(i); add_to_menu(&mi, n, "", "", MENU_FUNC menu_set_language, cba2, 0); } sel = current_language; do_menu_selected(mi, CBA0, sel); } static struct menu_item file_menu22[] = { /* "", "", M_BAR, NULL, NULL, 0, 0,*/ #ifdef HAVE_SNDFILE {CTEXT(T_PLAY_LAST), "Ctrl+P", CTEXT(T_HK_PLAY_LAST), MENU_FUNC menu_play_last, {NULL}, 0, 0}, #endif {CTEXT(T_BREAK_RECORD), "", CTEXT(T_HK_BREAK_RECORD), MENU_FUNC menu_break_record, {NULL}, 0, 0}, {"", "", M_BAR, NULL, {NULL}, 0, 0}, {CTEXT(T_MEMORY_INFO), "", CTEXT(T_HK_MEMORY_INFO), MENU_FUNC memory_info, {NULL}, 0, 0}, {CTEXT(T_NINFO), "", CTEXT(T_HK_NINFO), MENU_FUNC net_info, {NULL}, 0, 0}, {"", "", M_BAR, NULL, {NULL}, 0, 0} }; static struct menu_item file_menu3[] = { {"", "", M_BAR, NULL, {NULL}, 0, 0}, {CTEXT(T_EXIT), "", CTEXT(T_HK_EXIT), MENU_FUNC exit_prog, {NULL}, 0, 0}, {NULL, NULL, NULL, NULL, {NULL}, 0, 0} }; #ifndef HAVE_SDL #define sdl 0 #endif void do_file_menu(cba_t cba) { int x,file_menu1_size; struct menu_item *file_menu, *e, *f; file_menu1_size=0; if (!(file_menu = mem_alloc(file_menu1_size + sizeof(file_menu22) + sizeof(file_menu3) + 3 * sizeof(struct menu_item)))) return; e = file_menu; memcpy(e, file_menu22, sizeof(file_menu22)); e += sizeof(file_menu22) / sizeof(struct menu_item); x = 1; if (can_open_os_shell(term->environment) && !sdl) { e->text = VTEXT(T_OS_SHELL); e->rtext = ""; e->hotkey = VTEXT(T_HK_OS_SHELL); e->func = MENU_FUNC menu_shell; e->data = CBA0; e->in_m = 0; e->free_i = 0; e++; x = 0; } memcpy(e, file_menu3 + x, sizeof(file_menu3) - x * sizeof(struct menu_item)); e += sizeof(file_menu3) / sizeof(struct menu_item); for (f = file_menu; f < e; f++) f->free_i = 1; do_menu(file_menu, CBA0); } #ifndef HAVE_SDL #undef sdl #endif static struct menu_item help_menu[] = { {CTEXT(T_ABOUT), "", CTEXT(T_HK_ABOUT), MENU_FUNC menu_about, {NULL}, 0, 0}, {CTEXT(T_COPYING), "", CTEXT(T_HK_COPYING), MENU_FUNC menu_copying, {NULL}, 0, 0}, {NULL, NULL, NULL, NULL, {NULL}, 0, 0} }; /************************* CONTEST MENU *********************************/ static struct menu_item ctest_menu1[] = { {CTEXT(T_NEW), "", CTEXT(T_HK_NEW), MENU_FUNC menu_contest_new, {NULL}, 0, 0}, {CTEXT(T_NEW_WIZZ), ">", CTEXT(T_HK_NEW_WIZZ), MENU_FUNC menu_contest_new_wizz, {NULL}, 1, 0}, {CTEXT(T_NEW_NET), "", CTEXT(T_HK_NEW_NET), MENU_FUNC menu_contest_config_from_peer, (cba_t)(void*)send_contest_config_request, 0, 0}, {CTEXT(T_OPEN), "F3 >", CTEXT(T_HK_OPEN), MENU_FUNC menu_contest_open, {NULL}, 1, 0}, {NULL, NULL, NULL, NULL, {NULL}, 0, 0} }; static struct menu_item ctest_menu2[] = { {CTEXT(T_SAVE), "F2", CTEXT(T_HK_SAVE), MENU_FUNC menu_save_all, {NULL}, 0, 0}, {CTEXT(T_FILLOP), "", CTEXT(T_HK_FILLOP), MENU_FUNC menu_fillop, {NULL}, 0, 0}, {CTEXT(T_QSO_CHECK), "", CTEXT(T_HK_QSO_CHECK), MENU_FUNC menu_qso_check, {NULL}, 0, 0}, {"", "", M_BAR, NULL, {NULL}, 0, 0}, {CTEXT(T_EXPORT_EDI), "", CTEXT(T_HK_EXPORT_EDI), MENU_FUNC menu_export_edi, {NULL}, 0, 0}, {CTEXT(T_EXPORT_REPORT), "", CTEXT(T_HK_EXPORT_REPORT), MENU_FUNC menu_export_report, {NULL}, 0, 0}, {CTEXT(T_EXPORT_ADIF), "", CTEXT(T_HK_EXPORT_ADIF), MENU_FUNC menu_export_adif, {NULL}, 0, 0}, {CTEXT(T_EXPORT_HTML), "", CTEXT(T_HK_EXPORT_HTML), MENU_FUNC menu_export_html, {NULL}, 0, 0}, {CTEXT(T_EXPORT_STATS), "", CTEXT(T_HK_EXPORT_STATS), MENU_FUNC menu_export_stats, {NULL}, 0 , 0}, {CTEXT(T_EXPORT_TITLPAGE),"", CTEXT(T_HK_EXPORT_TITLPAGE), MENU_FUNC menu_export_titlpage, {NULL}, 0 , 0}, {CTEXT(T_EXPORT_CBR), "", CTEXT(T_HK_EXPORT_CBR), MENU_FUNC menu_export_cbr, {NULL}, 0, 0}, {CTEXT(T_EXPORT_WIKI), "", CTEXT(T_HK_EXPORT_WIKI), MENU_FUNC menu_export_wiki, {NULL}, 0, 0}, {"", "", M_BAR, NULL, {NULL}, 0, 0}, {CTEXT(T_IMPORT_EDI), "", CTEXT(T_HK_IMPORT_EDI), MENU_FUNC menu_import_edi, {NULL}, 0, 0}, {CTEXT(T_IMPORT_ADIF), "", CTEXT(T_HK_IMPORT_ADIF), MENU_FUNC menu_import_adif, {NULL}, 0, 0}, {CTEXT(T_IMPORT_SWAP), "", CTEXT(T_HK_IMPORT_SWAP), MENU_FUNC menu_import_swap, {NULL}, 0, 0}, {CTEXT(T_IMPORT_LIST), "", CTEXT(T_HK_IMPORT_LIST), MENU_FUNC menu_import_list, {NULL}, 0, 0}, {"", "", M_BAR, NULL, {NULL}, 0, 0}, {CTEXT(T_CONTEST_OP), "", CTEXT(T_HK_CONTEST_OP), MENU_FUNC menu_contest1_options_from_ctest, {NULL}, 0, 0}, {"", "", M_BAR, NULL, {NULL}, 0, 0}, {CTEXT(T_CLOSE_CONTEST), "", CTEXT(T_HK_CLOSE_CONTEST), MENU_FUNC menu_contest_close, {NULL}, 0, 0}, {NULL, NULL, NULL, NULL, {NULL}, 0, 0} }; void do_contest_menu(cba_t cba) { if (!ctest) do_menu(ctest_menu1, CBA0); else do_menu(ctest_menu2, CBA0); } /************************* EDIT MENU *********************************/ static struct menu_item edit_menu[] = { {CTEXT(T_RUN_MODE), "", CTEXT(T_HK_RUN_MODE), MENU_FUNC menu_runmode, {NULL}, 0, 0}, {CTEXT(T_SP_MODE), "", CTEXT(T_HK_SP_MODE), MENU_FUNC menu_spmode, {NULL}, 0, 0}, {"", "", M_BAR, NULL, {NULL}, 0, 0}, {CTEXT(T_1ST), "", CTEXT(T_HK_1ST), MENU_FUNC menu_extcq, (cba_t)EC_1ST, 0, 0}, {CTEXT(T_2ND), "", CTEXT(T_HK_2ND), MENU_FUNC menu_extcq, (cba_t)EC_2ND, 0, 0}, {CTEXT(T_ODD), "", CTEXT(T_HK_ODD), MENU_FUNC menu_extcq, (cba_t)EC_ODD, 0, 0}, {CTEXT(T_EVEN), "", CTEXT(T_HK_EVEN), MENU_FUNC menu_extcq, (cba_t)EC_EVEN, 0, 0}, {"", "", M_BAR, NULL, {NULL}, 0, 0}, {CTEXT(T_ROTAR), "Alt+R", CTEXT(T_HK_ROTAR), MENU_FUNC menu_rotar, {NULL}, 0, 0}, {CTEXT(T_ADD_ERROR), "", CTEXT(T_HK_ADD_ERROR), MENU_FUNC menu_add_error, {NULL}, 0, 0}, {CTEXT(T_CHOP), "Alt+O", CTEXT(T_HK_CHOP), MENU_FUNC menu_chop, {NULL}, 0, 0}, {CTEXT(T_CALL_INFO), "Alt+I", CTEXT(T_HK_CALL_INFO), MENU_FUNC call_info, {NULL}, 0, 0}, {"", "", M_BAR, NULL, {NULL}, 0, 0}, {CTEXT(T_SKED_QRG), "Alt+F", CTEXT(T_HK_SKED_QRG), MENU_FUNC menu_skedqrg, {NULL}, 0, 0}, // {CTEXT(T_GRAB_BAND), "Alt+G", CTEXT(T_HK_GRAB_BAND), MENU_FUNC menu_grabband, {NULL}, 0, 0}, // {CTEXT(T_FORCE_RUN), "", CTEXT(T_HK_FORCE_RUN), MENU_FUNC menu_forcerun, {NULL}, 0, 0}, #ifdef HAVE_HAMLIB {CTEXT(T_FIXQRG), "", CTEXT(T_HK_FIXQRG), MENU_FUNC menu_fixqrg, {NULL}, 0, 0}, #endif {CTEXT(T_CH_SPY), "", CTEXT(T_HK_CH_SPY), MENU_FUNC menu_spy_from_peer, (cba_t)(void *)send_spypeer_request, 0, 0}, {CTEXT(T_CH_ENDSPY), "", CTEXT(T_HK_CH_ENDSPY), MENU_FUNC menu_endspy, {NULL}, 0}, {"", "", M_BAR, NULL, {NULL}, 0, 0}, // {CTEXT(T_RECAQRB), "", CTEXT(T_HK_RECAQRB), MENU_FUNC menu_recalc_qrb, {NULL}, 0, 0}, {CTEXT(T_CW_CTEST), "", CTEXT(T_HK_CW_CTEST), MENU_FUNC menu_cw_update_contest, {NULL}, 0, 0}, {CTEXT(T_CW_BAND), "", CTEXT(T_HK_CW_BAND), MENU_FUNC menu_cw_update_band, {NULL}, 0, 0}, {CTEXT(T_EXC_CTEST), "", CTEXT(T_HK_EXC_CTEST), MENU_FUNC menu_exc_update_contest, {NULL}, 0, 0}, {CTEXT(T_EXC_BAND), "", CTEXT(T_HK_EXC_BAND), MENU_FUNC menu_exc_update_band, {NULL}, 0, 0}, {CTEXT(T_IMPORT_EBW), "", CTEXT(T_HK_IMPORT_EBW), MENU_FUNC menu_import_ebw, {NULL}, 0, 0}, {NULL, NULL, NULL, NULL, {NULL}, 0, 0} }; static struct menu_item edit_menu2[] = { {CTEXT(T_ROTAR), "Alt+R", CTEXT(T_HK_ROTAR), MENU_FUNC menu_rotar, {NULL}, 0, 0}, {CTEXT(T_CALL_INFO), "Alt+I", CTEXT(T_HK_CALL_INFO), MENU_FUNC call_info, {NULL}, 0, 0}, {"", "", M_BAR, NULL, {NULL}, 0, 0}, #ifdef HAVE_HAMLIB {CTEXT(T_FIXQRG), "", CTEXT(T_HK_FIXQRG), MENU_FUNC menu_fixqrg, {NULL}, 0, 0}, #endif {"", "", M_BAR, NULL, {NULL}, 0, 0}, {CTEXT(T_IMPORT_EBW), "", CTEXT(T_HK_IMPORT_EBW), MENU_FUNC menu_import_ebw, {NULL}, 0, 0}, {NULL, NULL, NULL, NULL, {NULL}, 0, 0} }; void do_edit_menu(cba_t cba) { if (!ctest || !aband) do_menu(edit_menu2, CBA0); else do_menu(edit_menu, CBA0); } /************************** SETUP MENU ************************************/ void menu_save_rc(cba_t cba){ gchar *filename; gchar *c; int ret; filename = g_strconcat(getenv("HOME"), "/tucnak/tucnakrc", NULL); ret=save_rc_file(filename); if (ret) { c = g_strdup_printf(VTEXT(T_CANT_WRITE_S), filename); errbox(c, ret); g_free(c); }else{ log_addf(VTEXT(T_SAVED_S), filename); } g_free(filename); } void do_peer_menu(void (* func)(cba_t cba)){ int i,max; struct menu_item *mi = NULL; gchar **items; items = g_strsplit(net->allpeers,";",0); max=0; for (i=0; items[i]!=NULL;i++){ cba_t cba2; if (strcmp(items[i],net->myid)==0) continue; if (strlen(items[i])==0) continue; if (!mi) if (!(mi = new_menu(3))) return; if (strlen(items[i])>max) max=strlen(items[i]); SETCBA(cba2, int_, i); add_to_menu(&mi,stracpy(items[i]),"", "", MENU_FUNC func, cba2, 0); } g_strfreev(items); if (mi){ set_window_ptr(gses->win, (term->x-max)/2,(term->y-2-i)/2); do_menu(mi, CBA0); }else errbox(VTEXT(T_NO_PEERS),0); return; } void do_peer_operators_menu(void (* func)(cba_t cba)){ int i,max; struct menu_item *mi = NULL; gchar **items,*c; items = g_strsplit(net->allpeers,";",0); max=0; for (i=0; items[i]!=NULL && items[i+1]!=NULL;i+=2){ cba_t cba2; if (strcmp(items[i],net->myid)==0) continue; if (strlen(items[i])==0) continue; if (!mi) if (!(mi = new_menu(3))) return; c=g_strdup_printf("%-8s %s", items[i+1], items[i]); if (strlen(c)>max) max=strlen(c); SETCBA(cba2, int_, i); add_to_menu(&mi,stracpy(c),"", "", MENU_FUNC func, cba2, 0); g_free(c); } g_strfreev(items); if (mi){ set_window_ptr(gses->win, (term->x-max)/2,(term->y-2-i)/2); do_menu(mi, CBA0); }else errbox(VTEXT(T_NO_PEERS),0); return; } void menu_load_from_peer(cba_t cba){ GString *gs; char *op; /*dbg("menu_load_from_peer\n"); */ if (cmp_sin(&net->global, &net->my)==0) { /* i'm master */ int i; struct conn *conn; /* LOOK ALSO net.c rel_write, dommand DO */ CONDGFREE(net->allpeers); gs=g_string_sized_new(100); for (i=0;ipeers->len;i++){ conn = (struct conn *)g_ptr_array_index(net->peers,i); if (!conn_prod_state(conn)) continue; op="---"; if (ctest && aband && conn->operator_) op=conn->operator_; g_string_sprintfa(gs,"%s;%s;", conn->remote_id, op); } net->allpeers=g_strdup(gs->str); g_string_free(gs,TRUE); do_peer_operators_menu((void*)GETCBA(cba, void_)); /* todo */ return; } /* i'm slave */ if (!conn_prod_state(net->master)){ errbox(VTEXT(T_NO_MASTER),0); return; } net->peerfunc = (PEER_FUNC) GETCBA(cba, void_);/*todo */ rel_write(net->master, "DO\n"); } void do_spy_peer_menu(void (* func)(cba_t cba)){ int i,max,menui; struct menu_item *mi = NULL; gchar **items,*c, *d; GString *gs; dbg("do_spy_peer_menu() rwbpeers='%s'\n", net->rwbpeers); items = g_strsplit(net->rwbpeers,";",0); gs = g_string_sized_new(200); max=0; menui=0; for (i=0; items[i]!=NULL && items[i+1]!=NULL && items[i+2]!=NULL; i+=3){ cba_t cba2; if (strcmp(items[i],net->myid)==0) continue; if (strlen(items[i])==0) continue; for (d=items[i+2]; *d!='\0'; d++){ if (!mi) if (!(mi = new_menu(3))) return; c=g_strdup_printf("%-6s %c %s", items[i+1], *d, items[i]); SETCBA(cba2, int_, menui); menui++; if (strlen(c)>max) max=strlen(c); add_to_menu(&mi,stracpy(c),"", "", MENU_FUNC func, cba2, 0); g_free(c); g_string_sprintfa(gs, "%s;%s;%c;", items[i], items[i+1], *d); } } g_strfreev(items); CONDGFREE(net->bpeers); net->bpeers = g_strdup(gs->str); g_string_free(gs, TRUE); dbg("do_spy_peer_menu() bpeers='%s'\n", net->bpeers); if (mi){ set_window_ptr(gses->win, (term->x-max)/2,(term->y-2-i)/2); do_menu(mi, CBA0); }else errbox(VTEXT(T_NO_PEERS),0); return; } void menu_spy_from_peer(cba_t cba){ GString *gs; char *op; char *rwb; /*dbg("menu_load_from_peer\n"); */ if (cmp_sin(&net->global, &net->my)==0) { /* i'm master */ int i; struct conn *conn; /* LOOK ALSO net.c rel_write, dommand DO */ CONDGFREE(net->rwbpeers); gs=g_string_sized_new(100); for (i=0;ipeers->len;i++){ conn = (struct conn *)g_ptr_array_index(net->peers,i); if (!conn_prod_state(conn)) continue; op="---"; if (ctest && aband && conn->operator_) op=conn->operator_; rwb=""; if (conn->rwbands) rwb=conn->rwbands; g_string_sprintfa(gs,"%s;%s;%s;", conn->remote_id, op, rwb); } net->rwbpeers=g_strdup(gs->str); g_string_free(gs,TRUE); do_spy_peer_menu(GETCBA(cba, void_)); return; } /* i'm slave */ if (!conn_prod_state(net->master)){ errbox(VTEXT(T_NO_MASTER),0); return; } net->peerfunc = (PEER_FUNC) GETCBA(cba, void_);/*todo */ rel_write(net->master, "DR\n"); } void menu_contest_config_from_peer(cba_t cba){ GString *gs; dbg("menu_contest_config_from_peer\n"); if (cmp_sin(&net->global, &net->my)==0) { /* i'm master */ int i; struct conn *tmpconn; struct zstring *zs; char *cdate, *pcall, *tname; /* LOOK ALSO net.c rel_write, dommand DC */ CONDGFREE(net->allpeers); gs=g_string_sized_new(100); for (i=0;ipeers->len;i++){ tmpconn = (struct conn *)g_ptr_array_index(net->peers,i); dbg("conn[%d]=%p %s\n", i, tmpconn, tcp_state_s(tmpconn)); if (!conn_prod_state(tmpconn)) continue; if (!tmpconn->remote_ac) continue; dbg("remote_ac=%s\n", tmpconn->remote_ac); zs = zstrdup(tmpconn->remote_ac); cdate = ztokenize(zs, 1); pcall = ztokenize(zs, 0); tname = ztokenize(zs, 0); if (tname && *tname) g_string_sprintfa(gs,"%s;%s %s %s;", tmpconn->remote_id, cdate, pcall, tname); zfree(zs); } dbg("allpeers=%s\n", gs->str); net->allpeers=g_strdup(gs->str); g_string_free(gs,TRUE); do_peer_operators_menu((void*)GETCBA(cba, void_)); /* todo */ return; } /* i'm slave */ if (!conn_prod_state(net->master)){ errbox(VTEXT(T_NO_MASTER),0); return; } net->peerfunc = (PEER_FUNC) GETCBA(cba, void_);/*todo */ rel_write(net->master, "DC\n"); } void contest_def(cba_t cba); static struct menu_item setup_menu[] = { {CTEXT(T_CTEST_DEF), "", CTEXT(T_HK_CTEST_DEF), MENU_FUNC contest_def, {NULL}, 0, 0}, {CTEXT(T_BAND_DEF), ">", CTEXT(T_HK_BAND_DEF), MENU_FUNC menu_cfg_bands, (cba_t)(void*)menu_setup_band, 1, 0}, /* todo */ {CTEXT(T_RESPOP), "", CTEXT(T_HK_RESPOP), MENU_FUNC menu_responsible_op, {NULL}, 0, 0}, {CTEXT(T_CW_DAEMON), "", CTEXT(T_HK_CW_DAEMON), MENU_FUNC menu_cwda, {NULL}, 0, 0}, #ifdef HAVE_SNDFILE {CTEXT(T_AUDIO), "", CTEXT(T_HK_AUDIO), MENU_FUNC menu_ssbd, {NULL}, 0, 0}, #endif {CTEXT(T_CW_CQ), ">", CTEXT(T_HK_CW_CQ), MENU_FUNC menu_cq_cw, {NULL}, 1, 0}, {CTEXT(T_SSB_CQ), ">", CTEXT(T_HK_SSB_CQ), MENU_FUNC menu_cq_ssb, {NULL}, 1, 0}, #ifdef HAVE_HAMLIB {CTEXT(T_RIGOPTS), "", CTEXT(T_HK_RIGOPTS), MENU_FUNC menu_rig_opts, {NULL}, 0, 0}, #endif {CTEXT(T_ROTAROPTS), ">", CTEXT(T_HK_ROTAROPTS), MENU_FUNC menu_rotars, {NULL}, 1, 0}, {CTEXT(T_AUTOSAVE), "", CTEXT(T_HK_AUTOSAVE), MENU_FUNC menu_autosave, {NULL}, 0, 0}, {CTEXT(T_NETWORK), "", CTEXT(T_HK_NETWORK), MENU_FUNC menu_network, {NULL}, 0, 0}, {CTEXT(T_MISCOPTS), "", CTEXT(T_HK_MISCOPTS), MENU_FUNC misc_opts, {NULL}, 0, 0}, {CTEXT(T_TERMINAL_OPTIONS), "", CTEXT(T_HK_TERMINAL_OPTIONS), MENU_FUNC terminal_options, {NULL}, 0, 0}, {CTEXT(T_LANGUAGE), ">", CTEXT(T_HK_LANGUAGE), MENU_FUNC menu_language_list, {NULL}, 1, 0}, {CTEXT(T_CHARACTER_SET), ">", CTEXT(T_HK_CHARACTER_SET), MENU_FUNC charset_list, (cba_t)1, 1, 0}, {"", "", M_BAR, NULL, {NULL}, 0, 0}, {CTEXT(T_LOAD_CFG_NET), "", CTEXT(T_HK_LOAD_CFG_NET), MENU_FUNC menu_load_from_peer, (cba_t)(void*)send_config_request, 0, 0},/* todo */ {CTEXT(T_LOAD_CW_NET), "", CTEXT(T_HK_LOAD_CW_NET), MENU_FUNC menu_load_from_peer, (cba_t)(void*)send_cwdb_request, 0, 0},/* todo */ {"", "", M_BAR, NULL, {NULL}, 0, 0}, {CTEXT(T_SAVE_CFG), "", CTEXT(T_HK_SAVE_CFG), MENU_FUNC menu_save_rc, {NULL}, 0, 0}, {NULL, NULL, 0, NULL, {NULL}, 0, 0} }; void do_setup_menu(cba_t cba) { do_menu(setup_menu, CBA0); } static struct menu_item main_menu[] = { {CTEXT(T_CONTEST), "", CTEXT(T_HK_CONTEST), MENU_FUNC do_contest_menu, {NULL}, 1, 1}, {CTEXT(T_FILE), "", CTEXT(T_HK_FILE), MENU_FUNC do_file_menu, {NULL}, 1, 1}, {CTEXT(T_EDIT), "", CTEXT(T_HK_EDIT), MENU_FUNC do_edit_menu, {NULL}, 1, 1}, {CTEXT(T_BANDS), "", CTEXT(T_HK_BANDS), MENU_FUNC menu_bands, (cba_t)(void*)menu_activate_band, 1, 1}, /* todo */ {CTEXT(T_SUBWINS), "", CTEXT(T_HK_SUBWINS), MENU_FUNC subwins_menu, {NULL}, 1, 1}, {CTEXT(T_SETUP), "", CTEXT(T_HK_SETUP), MENU_FUNC do_setup_menu, {NULL}, 1, 1}, {CTEXT(T_HELP), "", CTEXT(T_HK_HELP), MENU_FUNC do_menu, (cba_t)(void*)help_menu, 1, 1}, /* todo */ {NULL, NULL, NULL, NULL, {NULL}, 0, 0} }; void activate_bfu_technology(int item) { do_mainmenu(main_menu, CBA0, item); } /*struct history file_history = { 0, {&file_history.items, &file_history.items} }; struct history search_history = { 0, {&search_history.items, &search_history.items} }; */ static struct history load_swap_history = { 0, {&load_swap_history.items, &load_swap_history.items }}; void free_history_lists(void) { /* free_list(file_history.items); free_list(search_history.items);*/ free_list(load_swap_history.items); } /***************************** LOAD SWAP ***********************************/ #if 0 void load_swap(char *text){ FILE *f; f = fopen(text, "rt"); if (!f){ msg_box(term, NULL, VTEXT(T_ERROR), AL_CENTER, VTEXT(T_CANT_READ), NULL, 1, VTEXT(T_OK), NULL, B_ENTER | B_ESC); return; } add_qsos_from_swap(aband, f); fclose(f); } void menu_load_swap(cba_t cba){ input_field(ses->term, NULL, "Load swap", "Enter filename", VTEXT(T_OK), VTEXT(T_CANCEL), ses, &load_swap_history, MAX_INPUT_URL_LEN, "", 0, 0, NULL, load_swap, NULL); } #endif #ifdef HAVE_SNDFILE void menu_play_last(cba_t cba){ ssbd_play_last_sample(ssbd, NULL); } #endif void menu_break_record(cba_t cba){ cq_abort(1); } void menu_extcq(cba_t cba){ if (!gses) return; gses->extcq = (enum extcq)GETCBA(cba, int_); } tucnak2-2.48/src/winkey.c0000644000175000017500000002340311607036421012202 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. 28.Oct 2008: Modification by dl5ybz for fast fix .. this file needs review by Lada (or anyone else who codes in C) ..! Winkey2 works for me so far now 73 de Olaf / DL5YBZ Documentation: http://k1el.tripod.com/files/WinkeyInterfaceGuide.pdf */ #include "header.h" int winkey_init(struct cwdaemon *cwda){ cwda->fd = -1; winkey_open(cwda, 1); return 0; } int winkey_open(struct cwdaemon *cwda, int verbose){ struct termios tio; char errbuf[1024]; char s[16]; int i, ret; dbg("winkey_open(verbose=%d)\n", verbose); if (cwda->fd >= 0) return 0; ST_START; ret = fhs_lock(cfg->cwda_device, 1); if (ret){ fhs_error(errbuf, sizeof(errbuf), ret, cfg->cwda_device); log_addf("CW keying winkey error: %s", errbuf); return -2; } cwda->ttys_locked = 1; cwda->fd = open(cfg->cwda_device, O_RDWR | O_NOCTTY); if (cwda->fd < 0){ if (verbose) log_addf("Can't open %s %s", cfg->cwda_device, strerror_r(errno, errbuf, sizeof(errbuf))); winkey_reset(cwda); winkey_free(cwda); return -1; } if (fcntl(cwda->fd,F_SETFL,O_NONBLOCK)) { if (verbose) log_addf("Can't set O_NONBLOCK on %s: %s",cfg->cwda_device, strerror_r(errno, errbuf, sizeof(errbuf)) ); winkey_free(cwda); return -4; } // set 1200 baud, 8bit, no parity, two stop bits tcgetattr(cwda->fd,&tio); tio.c_cflag=B1200|CS8|CLOCAL|CREAD|CSTOPB; tio.c_iflag=INPCK; tio.c_lflag=0; tio.c_oflag=0; tio.c_cc[VMIN]=1; tio.c_cc[VTIME]=5; tcsetattr(cwda->fd,TCSANOW,&tio); // to power up enable DTR and disable RTS i = TIOCM_DTR; ioctl (cwda->fd, TIOCMBIS, &i); /* set DTR */ i = TIOCM_RTS; ioctl (cwda->fd, TIOCMBIC, &i); /* clear RTS */ if (!cfg->wk_wk2){ // delay 500ms for winkey init usleep(500000); // calibration command ret = write(cwda->fd, "\x00\x00", 2); usleep(100000); ret = write(cwda->fd, "\xff", 1); } // is winkey attached? echo command ret = write(cwda->fd, "\x00\x04\x55", 3); i = winkey_read(cwda, 1000000); // dbg("winkey_read: %d\n", i); if (i < 0){ if (verbose) log_addf(CTEXT(T_CANT_INIT_WINKEY_S), cfg->cwda_device); winkey_free(cwda); return -1; } // open winkey hostmode ret = write(cwda->fd, "\x00\x02", 2); i = winkey_read(cwda, 500000); // dbg("winkey_read: %d\n", i); if (i < 0){ if (verbose) log_addf("Can't open winkey hostmode"); winkey_free(cwda); return -1; } cwda->winkey_version = (unsigned char)i; if (cwda->winkey_version >= 20){ // >= 2.0 // set WK2 mode ret = write(cwda->fd, "\x00\x0b", 2); } #if 0 // load default settings write(cwda->fd, "\x0f"); // command write(cwda->fd, "\x"); // mode register write(cwda->fd, "\x"); // speed write(cwda->fd, "\x"); // stconst write(cwda->fd, "\x"); // weight write(cwda->fd, "\x"); // leadin write(cwda->fd, "\x"); // tail write(cwda->fd, "\x"); // minwpm write(cwda->fd, "\x"); // wpmrange write(cwda->fd, "\x"); // xtnd write(cwda->fd, "\x"); // kcomp write(cwda->fd, "\x"); // farns write(cwda->fd, "\x"); // sampadj write(cwda->fd, "\x"); // ditdatratio write(cwda->fd, "\x"); // pincfg write(cwda->fd, "\x"); // potrange #endif // setup speed pot sprintf(s, "\x05%c\x1f\xff", cfg->cwda_minwpm); ret = write(cwda->fd, s, 4); // winkey2 mode if (cwda->winkey_version >= 20){ s[0] = '\x0e'; s[1] = ((cfg->wk_keymode-1)&0x03) << 4; if (cfg->wk_swap) s[1] |= 0x08; //dbg("wk_keymode=%d winkey2 mode=0x%02x\n", cfg->wk_keymode, s[1]); ret = write(cwda->fd, s, 2); } // force to send speed pot value ret = write(cwda->fd, "\x07", 1); // force to send status ret = write(cwda->fd, "\x15", 1); // set PTT lead in s[0] = '\04'; s[1] = cfg->cwda_leadin / 10; s[2] = '\x01'; // \x00 means something strange, see winkeyusbman.pdf ret = write(cwda->fd, s, 3); set_handlers(cwda->fd, winkey_read_handler, NULL, NULL, (cba_t)cwda); ST_STOP; return 0; } int winkey_free(struct cwdaemon *cwda){ int i, ret; if (!cwda) return 0; // dbg("Winkey_CW_host leaving sequence\n"); ret = write(cwda->fd, "\x0a", 1); /*clear Buffer*/ ret = write(cwda->fd, "\x00\x03", 2); /*leave hostmode*/ // clear DR i = TIOCM_DTR; ioctl (cwda->fd, TIOCMBIC, &i); /* clear DTR */ if (cwda->fd>=0){ set_handlers(cwda->fd, NULL, NULL, NULL, (cba_t)cwda); close(cwda->fd); cwda->fd=-1; } if (cwda->ttys_locked) fhs_unlock(cfg->cwda_device); return 0; } int winkey_read(struct cwdaemon *cwda, int timeout_us){ fd_set fds; struct timeval tv; unsigned char c; tv.tv_sec = 0; tv.tv_usec = timeout_us; FD_ZERO(&fds); FD_SET(cwda->fd, &fds); if (select(cwda->fd+1, &fds, NULL, NULL, &tv)==0) return -2; if (!FD_ISSET(cwda->fd, &fds)) return -3; if (read(cwda->fd, &c, 1) !=1) return -4; return (int)c; } int winkey_reset(struct cwdaemon *cwda){ int ret; if (!cwda || cwda->fd<0) return 0; dbg("winkey_reset\n"); ret = write(cwda->fd, "\x0a", 1); return 0; } int winkey_cw(struct cwdaemon *cwda, int onoff){ return 0; } int winkey_ptt(struct cwdaemon *cwda, int onoff){ char s[16]; int ret; dbg("winkey_ptt(%d)\n", onoff); if (!cwda || cwda->fd<0) return 0; sprintf(s,"\x18%c", onoff ? '\x01' : '\x00'); ret = write(cwda->fd, s, 2); return 0; } int winkey_ssbway(struct cwdaemon *cwda, int onoff){ return 0; } int winkey_text(struct cwdaemon *cwda, char *text){ char *c, *s, *d; int ret; dbg("winkey_text fd=%d\n", cwda->fd); if (!cwda || cwda->fd<0) return 0; s = g_strdup(text); for (c=text, d=s; *c!='\0'; c++, d++) *d=toupper(*c); // dbg("winkey_text('%s')\n", s); ret = write(cwda->fd, s, strlen(s)); g_free(s); return 0; } int winkey_speed(struct cwdaemon *cwda, int wpm){ char s[16]; int ret; if (!cwda || cwda->fd<0) return 0; dbg("winkey_speed=%d\n", wpm); sprintf(s,"\x02%c", wpm); ret = write(cwda->fd, s, 2); return 0; } int winkey_weight(struct cwdaemon *cwda, int weight){ char s[16]; int ret; if (!cwda || cwda->fd<0) return 0; dbg("winkey_weight=%d\n", weight); sprintf(s,"\x03%c", weight ); ret = write(cwda->fd, s, 2); return 0; } int winkey_tune(struct cwdaemon *cwda, int tune){ char s[16]; int ret; if (!cwda || cwda->fd<0) return 0; sprintf(s, "\x0b%c", tune ? '\x01' : '\x00'); ret = write(cwda->fd, s, 2); return 0; } int winkey_back(struct cwdaemon *cwda){ char s[16]; int ret; if (!cwda || cwda->fd<0) return 0; strcpy(s, "\x08"); ret = write(cwda->fd, s, 1); return 0; } void winkey_read_handler(cba_t cba){ char s[1024], status; int ret, ret2, i, speed; struct cwdaemon *cwda; cwda = (struct cwdaemon*)GETCBA(cba, cwda); ret = read(cwda->fd, s, 1000); if (ret<=0) return; // dbg("winkey_read_handler("); for (i=0; iwinkey_oldstatus){ if (cwda->winkey_version >= 20 && status & 0x08 && cfg->wk_usebut){ // pushbutton status // dbg("keys=%02x ", status & 0x17); if ((status&0x01) && (cwda->winkey_oldstatus&0x01)==0) cq_run_by_number(0); else if ((status&0x02) && (cwda->winkey_oldstatus&0x02)==0) cq_run_by_number(1); else if ((status&0x04) && (cwda->winkey_oldstatus&0x04)==0) cq_run_by_number(2); else if ((status&0x10) && (cwda->winkey_oldstatus&0x10)==0) cq_run_by_number(3); }else{ // status if (status & 0x02){ // dbg("break in "); ret2 = write(tpipe->threadpipe_write, "CW;b\n", 5); }else if ((cwda->winkey_oldstatus & 0x04) != 0 && (status & 0x04) == 0){ // dbg("text played cq=%p ", gses->last_cq); ret2 = write(tpipe->threadpipe_write, "CW;e\n", 5); } } cwda->winkey_oldstatus = status; } }else if ((s[i] & 0xc0) == 0x80){ speed = (s[i] & 0x1f) + cfg->cwda_minwpm; if (cfg->wk_usepot && speed != cwda->speed){ cwda->speed = speed; dbg("pot=%d WPM (s[i]=0x%x)\n`", cwda->speed, (unsigned char)s[i]); if (cwda->sspeed) cwda->sspeed(cwda, cwda->speed); redraw_later(); } }else{ // dbg("char=%c ", s[i]); } } // dbg(")\r\n"); } int winkey4_init(struct cwdaemon *cwda){ winkey_init(cwda); #ifdef HAVE_LIBFTDI davac4_init(cwda); #endif return 0; } int winkey4_free(struct cwdaemon *cwda){ winkey_free(cwda); #ifdef HAVE_LIBFTDI davac4_free(cwda); #endif return 0; } int winkey4_reset(struct cwdaemon *cwda){ winkey_reset(cwda); #ifdef HAVE_LIBFTDI davac4_reset(cwda); #endif return 0; } tucnak2-2.48/src/sdl.c0000644000175000017500000013534411721205364011467 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #define DEBUG_REDRAWx #ifdef HAVE_SDL void (*fast_putpixel)(SDL_Surface *surface, int x, int y, int color); int (*fast_getpixel)(SDL_Surface *surface, int x, int y); void sdl_font_save(void); struct sdl *sdl; SDL_Color pal[256]; static int dashcnt=0; //extern const unsigned char icon_tucnak[2036]; struct sdl *init_sdl(){ int w,h; SDL_Rect r; char str[256]; char errbuf[1024]; SDL_Surface *tucnak64 = NULL; time_t now; struct tm *tm; dbg("init_sdl\n"); if (opt_g && opt_t) { opt_t=opt_g=0; /* user is crazy */ } if (!opt_g && !opt_t){ if (getenv("DISPLAY")!=NULL) opt_g=1; }else{ if (opt_t) opt_g=0; } if (!opt_g) return NULL; time(&now); tm=localtime(&now); now=(tm->tm_mon<<4)+tm->tm_mday - 4; sdl=g_new0(struct sdl, 1); sdl->iconv=iconv_open("ISO8859-2","UCS-2LE"); if (sdl->iconv==(iconv_t)(-1)){ int err=errno; dbg("Can't init iconv %s\n", strerror_r(err, errbuf, sizeof(errbuf))); free_sdl(); return NULL; } setenv("SDL_VIDEO_X11_WMCLASS", "Tucnak", 1); if (SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE)){ /* log_addf(VTEXT(T_CANT_SET_GR_S), "SDL_Init"); not initialised here */ log_addf("Can't set graphics mode (SDL_Init)"); free_sdl(); return NULL; }; SDL_EnableKeyRepeat(150, 40); SDL_EnableUNICODE(1); #ifdef HAVE_LIBPNG if ((now&0xf8) == 192){ sdl->icon = do_png_create(icon_tucnakv, sizeof(icon_tucnakv)); tucnak64 = do_png_create(icon_tucnakv64, sizeof(icon_tucnakv64)); }else{ sdl->icon = do_png_create(icon_tucnak, sizeof(icon_tucnak)); tucnak64 = do_png_create(icon_tucnak64, sizeof(icon_tucnak64)); } if (!sdl->icon) internal_("Can't create icon_tucnak, currupted executable?"); if (!tucnak64) internal_("Can't create icon_tucnak64, currupted executable?"); SDL_WM_SetIcon(sdl->icon, NULL); #endif w=cfg->gfx_x; h=cfg->gfx_y; sdl->eventpipestate_mutex=g_mutex_new(); if (sdl_setvideomode(w, h, 1)){ log_addf("Can't set graphics mode (SetVideoMode)"); free_sdl(); return NULL; } sdl->bpp = sdl->screen->format->BitsPerPixel; strcpy(str, "Initializing..."); fontout(sdl->screen, (w-strlen(str)*FONT_W)/2, h/2-FONT_H-4, makecol(255, 255, 255), 0, str); if (tucnak64){ r.x=(w-64)/2; r.y=h/2+4; r.w=24; r.h=24; SDL_BlitSurface(tucnak64, NULL, sdl->screen, &r); } SDL_UpdateRect(sdl->screen, 0, 0, w, h); rot_update_colors(); //sdl_font_save(); return sdl; } void sdl_stop_event_thread(){ if (!sdl) return; if (!sdl->event_thread) return; sdl->event_thread_break=1; SDL_WaitThread(sdl->event_thread, NULL); sdl->event_thread=0; } void free_sdl(){ dbg("free_sdl()\n"); if (!sdl) return; #if defined(_MSC_VER) || defined(__MINGW32__) if (sdl->event_timer_id) kill_timer(sdl->event_timer_id); #endif sdl_stop_event_thread(); if (sdl->icon) SDL_FreeSurface(sdl->icon); if (sdl->screen) SDL_FreeSurface(sdl->screen); if (sdl->eventpipestate_mutex) g_mutex_free(sdl->eventpipestate_mutex); CONDGFREE(sdl->title); SDL_Quit(); if (sdl->iconv) iconv_close(sdl->iconv); g_free(sdl); sdl=NULL; } void sdl_info(){ SDL_Rect **modes; int i; const SDL_VideoInfo *vi; char str[256]; int oldw, oldh; printf("\n sdl_info:\n"); if (SDL_Init(SDL_INIT_VIDEO)<0){ printf("SDL_Init failed\n"); return; }; SDL_VideoDriverName(str, sizeof(str)-1); str[sizeof(str)-1]='\0'; if (*str) printf("Driver: %s\n", str); vi=SDL_GetVideoInfo(); if (!vi){ printf("No \"best mode\" exists\n"); return; }else{ /*printf("\"Best mode\" is %d x %d, %dbpp ", vi->current_w, vi->current_h, vi->BitsPerPixel);*/ printf("\"Best mode\" is %dbpp ", vi->vfmt->BitsPerPixel); if (vi->vfmt->palette){ printf("using palette "); }else{ printf("R=%08x G=%08x B=%08x A=%08x ", vi->vfmt->Rmask, vi->vfmt->Gmask, vi->vfmt->Bmask, vi->vfmt->Amask); } printf("colorkey=%04x alpha=%d\n", vi->vfmt->colorkey, vi->vfmt->alpha); } modes=SDL_ListModes(NULL, SDL_FULLSCREEN); if (!modes) { printf("No video modes available (SDL_ListModes)\n"); }else{ if (modes==(SDL_Rect**)-1){ printf("All resolutinons available\n"); return; } oldw=oldh=-1; for (i=0;modes[i];i++){ if (modes[i]->w==oldw && modes[i]->h==oldh) continue; printf(" %d x %d %d bpp\n", modes[i]->w, modes[i]->h, vi->vfmt->BitsPerPixel); oldw=modes[i]->w; oldh=modes[i]->h; } } printf("\n"); } #if defined(_MSC_VER) || defined(__MINGW32__) void sdl_event_timer(cba_t cba){ if (!sdl) return; SDL_PumpEvents(); sdl->event_timer_id = install_timer(100, sdl_event_timer, CBA0); } #endif void dumpbitmap(SDL_Surface *surface){ SDL_Rect r; SDL_Surface *backup; int screenalpha, surfacealpha; r.x = 0; r.y = 0; r.w = surface->w; r.h = surface->h; backup = SDL_CreateRGBSurface(SDL_SWSURFACE, surface->w, surface->h, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Bmask, 0); SDL_BlitSurface(sdl->screen, &r, backup, NULL); screenalpha = sdl->screen->format->alpha; surfacealpha = surface->format->alpha; SDL_FillRect(sdl->screen, &r, makecol(50, 50, 50)); SDL_UpdateRect(sdl->screen, r.x, r.y, r.w, r.h); usleep(100000); SDL_BlitSurface(surface, NULL, sdl->screen, NULL); SDL_UpdateRect(sdl->screen, r.x, r.y, r.w, r.h); usleep(300000); SDL_BlitSurface(backup, NULL, sdl->screen, NULL); SDL_UpdateRect(sdl->screen, r.x, r.y, r.w, r.h); SDL_FreeSurface(backup); SDL_SetAlpha(sdl->screen, SDL_SRCALPHA, screenalpha); SDL_SetAlpha(surface, SDL_SRCALPHA, surfacealpha); } int sdl_setvideomode(int w, int h, int init){ int i; if (!init) sdl_stop_event_thread(); /*dbg("w=%d h=%d ", w, h); w=((int)(w/FONT_W))*FONT_W; h=((int)(h/FONT_H))*FONT_H; dbg("w=%d h=%d \n", w, h); */ sdl->font_h = cfg->fontheight; sdl->font_w = (sdl->font_h * 8) / 16 + 1; //dbg("font=%dx%d\n", sdl->font_w, sdl->font_h); if ((sdl->screen = SDL_SetVideoMode(w, h, 0, SDL_SWSURFACE|SDL_RESIZABLE|SDL_HWPALETTE))==NULL){ dbg("SDL_SetVideoMode(%d,%d) failed\n", w, h); return 1; } if (SDL_MUSTLOCK(sdl->screen)) internal_("surface must be locked"); sdl->termarea.x = 0; sdl->termarea.y = 0; sdl->termarea.w = w; sdl->termarea.h = h; /* if (sdl->title) free_rect(sdl->title); if (sdl->map) free_rect(sdl->map); if (sdl->info) free_rect(sdl->info); sdl->title = new_rect(4,4, w-8, T_H); sdl->map = new_rect(4, T_H+8,w-I_W-12, h-12-T_H); sdl->info = new_rect(w-I_W-4, T_H+8, I_W, h-12-T_H); */ /* sdl->m_x=sdl->map->x + sdl->map->w/2; sdl->m_y=sdl->map->y + sdl->map->h/2;*/ if (sdl->screen->format->palette){ int i; SDL_PixelFormat *fmt; for (i=0; i<256; i++){ sdl->colors[i].r=(i&0xe0)+31; sdl->colors[i].g=((i<<3)&0xe0)+31; sdl->colors[i].b=((i<<6)&0xc0)+63; } SDL_SetColors(sdl->screen, sdl->colors, 0, 256); fmt=sdl->screen->format; fmt->Rmask=0xe0; fmt->Gmask=0x1c; fmt->Bmask=0x03; fmt->Rshift=5; fmt->Gshift=2; fmt->Bshift=0; fmt->Rloss=5; fmt->Gloss=5; fmt->Bloss=6; } switch(sdl->screen->format->BytesPerPixel){ case 1: fast_putpixel = fast_putpixel8; fast_getpixel = fast_getpixel8; break; case 2: fast_putpixel = fast_putpixel16; fast_getpixel = fast_getpixel16; break; case 3: fast_putpixel = fast_putpixel24; fast_getpixel = fast_getpixel24; break; case 4: fast_putpixel = fast_putpixel32; fast_getpixel = fast_getpixel32; break; } pal[0].r = pal[0].g = pal[0].b = 0; sdl->gr[0] = makecol(0, 0, 0); for (i=1; i<16; i++){ pal[i].r = pal[i].g = pal[i].b = i*4+3; sdl->gr[i] = makecol(i*16+15, i*16+15, i*16+15); } for (i=0; i<16; i++){ int r,g,b; if (i&0x08){ r=255*(i&0x01); g=255*((i&0x02)>>1); b=255*((i&0x04)>>2); }else if (i==0x07){ r=192; g=192; b=192; }else{ r=128*(i&0x01); g=128*((i&0x02)>>1); b=128*((i&0x04)>>2); } sdl->termcol[i]=makecol(r,g,b); /*dbg("color[%d]=%d,%d,%d\n", i, r,g,b);*/ } sdl->cursor=makecol(128,128,0); sdl->yellow=makecol(255,255,0); sdl->green=makecol(0,255,0); sdl->red=makecol(255,0,0); #if 0 if (gses){ /* first call is without session */ for (i=0;isubwins->len;i++){ sw=(struct subwin *)g_ptr_array_index(gses->subwins, i); if (sw->type!=SWT_MAP) break; map_update_layout(sw); } } #endif /* invalidate_bkg(NULL); invalidate_cache(aband);*/ if (!init){ sdl->event_thread_break=0; sdl->event_thread =SDL_CreateThread( sdl_event_thread, (void*)(vint)sdl->pipefd); if (!sdl->event_thread) { error("ERROR: can't create event thread"); return -1; } } #if defined(_MSC_VER) || defined(__MINGW32__) if (!sdl->event_timer_id) sdl->event_timer_id = install_timer(100, sdl_event_timer, CBA0); #endif return 0; } #ifdef DEBUG_REDRAW struct timeval startx = {0, 0}; #endif void sdl_redraw_screen(void){ int x,y,p,fg,bg,d,i,j, col; int minx,maxx,miny,maxy; unsigned char c; SDL_Rect dstrect, r; int update_dstrect=0; int iconx=0, icony=0; int draw_icon=0; int ll; #ifdef DEBUG_REDRAW if (startx.tv_sec!=0){ struct timeval stopx; int sec, usec; gettimeofday(&stopx, NULL); usec=stopx.tv_usec-startx.tv_usec; sec=stopx.tv_sec-startx.tv_sec; if (usec<0){usec+=1000000;sec--;} // dbg("a %d.%06d %d.%06d\n", startx.tv_sec % 100, startx.tv_usec, stopx.tv_sec % 100, stopx.tv_usec); dbg("sdl_redraw_screen: %d.%06d\t", sec, usec); } gettimeofday(&startx, NULL); #endif minx=term->x; miny=term->y; maxx=-1; maxy=-1; if (term->last_screen!=DUMMY && (term->cx!=term->lcx || term->cy!=term->lcy)){ term->last_screen[term->cx+term->cy*term->x]=0; if (term->lcx >= 0 && term->lcy >= 0 && term->lcx < term->x && term->lcy < term->y) term->last_screen[term->lcx+term->lcy*term->x]=0; term->lcx=term->cx; term->lcy=term->cy; } if (gses && gses->ontop && gses->ontop->screen && !show_qs()){ dstrect.x=gses->ontop->x*FONT_W; dstrect.y=gses->ontop->y*FONT_H; dstrect.w=gses->ontop->w*FONT_W; dstrect.h=gses->ontop->h*FONT_H; SDL_BlitSurface(gses->ontop->screen, 0, sdl->screen,&dstrect); //dbg(" gses->ontop->screen "); fill_lastarea(gses->ontop->x, gses->ontop->y, gses->ontop->w, gses->ontop->h, 0); update_dstrect=1; } if (gses && gses->icon != gses->oldicon){ gses->oldicon=gses->icon; iconx=1; icony=term->y-cfg->loglines-DISP_QSOS-1; if (ctest) icony-=ctest->spypeers->len; //dbg(" gses->icon "); fill_lastarea(iconx, icony, 48/FONT_W+1, 48/FONT_H+1, 0); draw_icon=1; } #ifdef HAVE_SNDFILE123 if (gses && gses->icon == ssbd->recicon /* && ssbd->loglevel != ssbd->oldloglevel*/){ x=term->x-1; /*for (y=0;y<6;y++) { // term->last_screen[x+term->x*y]=0; set_char(x, y, '2' + COL_NORM); // term->screen[x+term->x*y]='2'; } */ //dbg(" gses->volume "); } #endif d=0; for (p=0,y=0;yy;y++){ for (x=0;xx;x++,p++){ if (term->screen[p] == term->last_screen[p]) continue; if (!term->screen[p]) continue; d=1; if (xmaxx) maxx=x; if (y>maxy) maxy=y; fg=(term->screen[p]&0x0700)>>8; if (term->screen[p]&0x4000) fg|=0x08; if (term->screen[p]&ATTR_FRAME){ c=term->screen[p]-48; if (c==170) c=134; else if (c==169) c=133; }else{ c=term->screen[p]; } bg=sdl->termcol[(term->screen[p]&0x3800)>>11]; if (x+y>0 && x==term->cx && y==term->cy) bg=sdl->cursor; SDL_SetClipRect(sdl->screen, &sdl->termarea); fontoutc(sdl->screen, x*FONT_W, y*FONT_H, sdl->termcol[fg], bg, 0, c); #ifdef HAVE_SNDFILE ssbd->oldloglevel = -42; #endif } } #ifdef HAVE_SNDFILE MUTEX_LOCK(ssbd->loglevel); if (gses && gses->icon == ssbd->recicon && ssbd->loglevel != ssbd->oldloglevel){ ll = ssbd->loglevel; MUTEX_UNLOCK(ssbd->loglevel); //dbg(" XXX %d!=%d \n", ll, ssbd->oldloglevel); x=(term->x-1)*FONT_W; y=6*FONT_H-1; for (i=0;i<96;i++) { if (iscreen, x+j, y-i, col); } r.x=x; r.y=0; r.w=FONT_W; r.h=6*FONT_H; //dbg(" [%d,%d,%d,%d] ", r.x, r.y, r.w, r.h); SDL_UpdateRect(sdl->screen, r.x, r.y, r.w, r.h); ssbd->oldloglevel = ll; }else{ MUTEX_UNLOCK(ssbd->loglevel); } #endif if (draw_icon) { r.x=iconx*FONT_W; r.y=icony*FONT_H; r.w=48; r.h=48; SDL_BlitSurface(gses->icon, NULL, sdl->screen, &r); SDL_UpdateRect(sdl->screen, r.x, r.y, r.w, r.h); } if (d) { minx=minx*FONT_W; miny=miny*FONT_H; maxx=(maxx+1)*FONT_W; maxy=(maxy+1)*FONT_H; /*rect(sdl->screen, minx, miny, maxx, maxy, 0x80);*/ //dbg(" chars "); SDL_UpdateRect(sdl->screen, minx, miny, maxx-minx, maxy-miny); memcpy(term->last_screen, term->screen, term->x * term->y * sizeof(int)); } if (update_dstrect){ /*rect2(sdl->screen, &dstrect, 0x000000); SDL_UpdateRect(sdl->screen, dstrect.x, dstrect.y, dstrect.w, dstrect.h); usleep(100000); rect2(sdl->screen, &dstrect, 0x800000);*/ /* for (i=0; i<16; i++){ SDL_Rect q; q.x = 100; q.y = 100+i*10; q.w = 20; q.h = 10; SDL_FillRect(sdl->screen, &q, sdl->termcol[i]); } */ SDL_UpdateRect(sdl->screen, dstrect.x, dstrect.y, dstrect.w, dstrect.h); } #ifdef DEBUG_REDRAW if (startx.tv_sec!=0){ struct timeval stopx; int sec, usec; gettimeofday(&stopx, NULL); usec=stopx.tv_usec-startx.tv_usec; sec=stopx.tv_sec-startx.tv_sec; if (usec<0){usec+=1000000;sec--;} dbg(" %d.%06d\n", sec, usec); // dbg("b %d.%06d %d.%06d\n", startx.tv_sec % 100, startx.tv_usec, stopx.tv_sec % 100, stopx.tv_usec); } gettimeofday(&startx, NULL); #endif } SDL_Rect *new_rect(int x, int y, int w, int h){ SDL_Rect *rect; rect = g_new0(SDL_Rect, 1); rect->x = x; rect->y = y; rect->w = w; rect->h = h; return rect; } void free_rect(SDL_Rect *rect){ g_free(rect); } int sdl_get_terminal_size(int fd, int *x, int *y){ *x=sdl->screen->w/FONT_W; *y=sdl->screen->h/FONT_H; return 0; } int handle_unicode(const SDL_Event *sev, struct event *ev){ char iso[10]; char uni[2]; char *isoptr; char *uniptr; size_t in,out; int err,ret; if (!sev->key.keysym.unicode) return 0; in=2; out=10; uni[0]=sev->key.keysym.unicode & 0xff; uni[1]=sev->key.keysym.unicode >> 8; isoptr=iso; uniptr=uni; /*dbg("uniptr=%p isoptr=%p in=%d out=%d\n", uniptr, isoptr, in, out);*/ ret=iconv(sdl->iconv, &uniptr, &in, &isoptr, &out); err=errno; /*dbg("uniptr=%p isoptr=%p in=%d out=%d\n", uniptr, isoptr, in, out);*/ if (debug_keyboard){ fprintf(stderr, "Keyboard: unicode=0x%04x iso:0x%02x '%c'\n", sev->key.keysym.unicode, (unsigned char)iso[0],isprint(iso[0])?(unsigned char)iso[0]:'.'); } if (ret || !iso[0]){ log_addf("Can't handle keystroke unicode=0x%04x ret=%d iso=0x%02x\n", sev->key.keysym.unicode, ret, (unsigned char)iso[0]); return 0; } ev->x=(unsigned char)iso[0]; if (ev->x<' '){ /* Ctrl+letter */ ev->x+='@'; } /*if (sev->key.keysym.mod & KMOD_SHIFT) ev->y|=KBD_SHIFT;*/ if (sev->key.keysym.mod & (KMOD_ALT|KMOD_META)) ev->y|=KBD_ALT; if (sev->key.keysym.mod & KMOD_CTRL) ev->y|=KBD_CTRL; return 1; } int sdl_event_thread(void *handle){ int fd=(int)(long int)handle; SDL_Event sev,sev2; struct event ev; int shift,k,sk,ret; int skip_unicode = 0; /* wait for empty pipe */ /* dbg("event thread activated %d\n", sdl->eventpipestate);*/ while(!sdl->event_thread_break){ #if 0 SDL_KeyboardEvent *kev; #endif ev.ev = ev.x = ev.y = ev.y = ev.b = 0; k=sk=0; #if !(defined(_MSC_VER) || defined(__MINGW32__)) SDL_PumpEvents(); #endif switch(SDL_PeepEvents(&sev, 1, SDL_GETEVENT, SDL_ALLEVENTS)) { case -1: return -1; break; case 0: SDL_Delay(50); continue; case 1: break; } /*dbg("event %d\n", sev.type);*/ switch(sev.type){ case SDL_KEYDOWN: #if 0 dbg("KEYDOWN: "); for (k=0;k= SDLK_0 && sev.key.keysym.sym <= SDLK_9 && sev.key.keysym.mod & KMOD_CTRL) skip_unicode = 1; // Ctrl+3 to Ctrl+9 send strange unicode values if (sev.key.keysym.unicode && !skip_unicode){ if (handle_unicode(&sev, &ev)) goto send; dbg("to je divny, unicode 0x%04x nebyla zpracovana\n", sev.key.keysym.unicode); } switch(sev.key.keysym.sym){ case SDLK_QUOTE: k='\''; sk='"'; break; case SDLK_COMMA: k=','; sk='<'; break; case SDLK_MINUS: k='-'; sk='_'; break; case SDLK_PERIOD: k='.'; sk='>'; break; case SDLK_SLASH: k='/'; sk='?'; break; case SDLK_0: k='0'; sk=')'; break; case SDLK_1: k='1'; sk='!'; break; case SDLK_2: k='2'; sk='@'; break; case SDLK_3: k='3'; sk='#'; break; case SDLK_4: k='4'; sk='$'; break; case SDLK_5: k='5'; sk='%'; break; case SDLK_6: k='6'; sk='^'; break; case SDLK_7: k='7'; sk='&'; break; case SDLK_8: k='8'; sk='*'; break; case SDLK_9: k='9'; sk='('; break; case SDLK_SEMICOLON: k=';'; sk=':'; break; case SDLK_LESS: k='<'; sk='>'; break; case SDLK_EQUALS: k='='; sk='+'; break; case SDLK_LEFTBRACKET: k='['; sk='{'; break; case SDLK_BACKSLASH: k='\\'; sk='|'; break; case SDLK_RIGHTBRACKET: k=']'; sk='}'; break; case SDLK_BACKQUOTE: k='`'; sk='~'; break; default: if (sev.key.keysym.sym<0x100){ k=sk=sev.key.keysym.sym; if (k>='a' && k<='z'){ sk-='a'-'A'; } }else{ k=sk=0; } break; } handle:; shift=(sev.key.keysym.mod & KMOD_SHIFT)!=0; /*dbg("\nshift=%d caps=%d %d\n", shift,sev.key.keysym.mod & KMOD_CAPS,(sev.key.keysym.mod & KMOD_CAPS)!=0 );*/ if (k>='a' && k<='z') shift^=(sev.key.keysym.mod & KMOD_CAPS)!=0; if (sev.key.keysym.sym>=SDLK_KP0 && sev.key.keysym.sym<=SDLK_KP_PERIOD) shift^=(sev.key.keysym.mod & KMOD_NUM)!=0; if (shift){ ev.x=sk; if (sk>=256) ev.y|=KBD_SHIFT; }else{ ev.x=k; } if (sev.key.keysym.mod & (KMOD_ALT|KMOD_META)){ ev.y|=KBD_ALT; } if (sev.key.keysym.mod & KMOD_CTRL){ ev.y|=KBD_CTRL; } if (ev.x) goto send; break; case SDL_MOUSEBUTTONDOWN: ev.ev=EV_MOUSE; ev.x=sev.button.x/FONT_W; ev.y=sev.button.y/FONT_H; ev.mx=sev.button.x; ev.my=sev.button.y; switch(sev.button.button){ case SDL_BUTTON_LEFT: sdl->mouse_drag=1; sdl->drag_buttons=ev.b=B_LEFT; goto send; case SDL_BUTTON_MIDDLE: sdl->mouse_drag=1; sdl->drag_buttons=ev.b=B_MIDDLE; goto send; case SDL_BUTTON_RIGHT: sdl->mouse_drag=1; sdl->drag_buttons=ev.b=B_RIGHT; goto send; case SDL_BUTTON_WHEELUP: ev.b=B_WHUP; goto send; case SDL_BUTTON_WHEELDOWN: ev.b=B_WHDOWN; goto send; } break; case SDL_MOUSEBUTTONUP: sdl->mouse_drag=0; ev.ev=EV_MOUSE; ev.x=sev.button.x/FONT_W; ev.y=sev.button.y/FONT_H; ev.mx=sev.button.x; ev.my=sev.button.y; switch(sev.button.button){ case SDL_BUTTON_LEFT: ev.b=B_LEFT|B_UP; goto send; case SDL_BUTTON_MIDDLE: ev.b=B_MIDDLE|B_UP; goto send; case SDL_BUTTON_RIGHT: ev.b=B_RIGHT|B_UP; goto send; } break; case SDL_MOUSEMOTION: ev.ev=EV_MOUSE; ev.x=sev.button.x/FONT_W; ev.y=sev.button.y/FONT_H; if (sdl->mouse_drag) ev.b=sdl->drag_buttons|B_DRAG; else ev.b=B_MOVE; ev.mx=sev.button.x; ev.my=sev.button.y; sdl->mouse_x=sev.button.x; sdl->mouse_y=sev.button.y; while (SDL_PeepEvents(&sev2, 1, SDL_PEEKEVENT, SDL_ALLEVENTS)==1){ if (sev2.type!=SDL_MOUSEMOTION) break; ret=SDL_PeepEvents(&sev, 1, SDL_GETEVENT, SDL_ALLEVENTS); if (ret!=1) internal_("Somebody stole my event"); /* dbg("next SDL_MOUSEMOTION\n");*/ ev.x=sev2.button.x/FONT_W; ev.y=sev2.button.y/FONT_H; ev.mx=sev2.button.x; ev.my=sev2.button.y; sdl->mouse_x=sev2.button.x; sdl->mouse_y=sev2.button.y; } goto send; if (sdl->mouse_drag) goto send; continue; case SDL_VIDEORESIZE: ev.ev=EV_SDLRESIZE; ev.mx=sev.resize.w; ev.my=sev.resize.h; ev.x=ev.mx/FONT_W; ev.y=ev.my/FONT_H; goto send; /* sdl_setvideomode(sev.resize.w, sev.resize.h); resize_terminal(CBA0); break;*/ case SDL_QUIT: ev.ev=EV_KBD; ev.x='q'; ev.y=KBD_ALT; goto send; } continue; send:; //dbg("ev=%ld x=%ld(%c) y=%ld b=%ld\n", ev.ev, ev.x, isprint(ev.x & 0xff)?ev.x:0, ev.y, ev.b); while(1){ int len; MUTEX_LOCK(sdl->eventpipestate); len=sdl->eventpipestate; MUTEX_UNLOCK(sdl->eventpipestate); if (lenevent_thread_break){ internal_("Sem pridej konec vlakna, vole. Nakej nouma mi zavrel pajpu"); } internal_("can't write to event pipe"); break; } MUTEX_LOCK(sdl->eventpipestate); sdl->eventpipestate+=sizeof(ev); /*dbg("w %d\n", sdl->eventpipestate);*/ MUTEX_UNLOCK(sdl->eventpipestate); } dbg("sdl_thread exited %d\n", sdl->event_thread_break); return 0; } int sdl_attach_terminal(int in, int out, int ctl) { /*struct terminal *term;*/ /*dbg("attach_terminal\n");*/ int fd[2]; if (c_pipe(fd)) { error("ERROR: can't create pipe for internal communication"); return -1; } /*dbg("sdl_attach terminal: pipe %d->%d\n", fd[1], fd[0]);*/ fcntl(fd[0], F_SETFL, O_NONBLOCK); /* -1 -1 -1 -1 */ handle_trm(in, out, out, fd[1], ctl); /* before sdl_thread! */ /* dbg("after handle_trm %d\n", sdl->eventpipestate);*/ sdl->pipefd=fd[1]; sdl->event_thread_break=0; sdl->event_thread=SDL_CreateThread(sdl_event_thread, (void*)(vint)sdl->pipefd); if (!sdl->event_thread) { error("ERROR: can't create event thread"); return -1; } if ((term = init_term(fd[0], out, win_func))) { handle_basic_signals(term); /* OK, this is race condition, but it must be so; GPM installs it's own buggy TSTP handler */ return fd[1]; } closesocket(fd[0]); closesocket(fd[1]); return -1; } int makecol(int r, int g, int b){ SDL_PixelFormat *format; format=sdl->screen->format; return (((r>>format->Rloss)<Rshift)&format->Rmask) | (((g>>format->Gloss)<Gshift)&format->Gmask) | (((b>>format->Bloss)<Bshift)&format->Bmask); } /* returns 1 if pixel is out of rect */ int clip_pixel(SDL_Rect *clip, int x, int y){ if (x < clip->x || y < clip->y || x >= clip -> x + clip->w || y >= clip -> y + clip->h) return 1; return 0; } int overlapped_pixel(SDL_Rect *clip_rect, int x, int y){ int ret; if (x >= clip_rect->x && y >= clip_rect->y && x < clip_rect->x + clip_rect->w && y < clip_rect->y + clip_rect->h) ret=1; else ret=0; dbg("overlapper_pixel(%d, %d in %dx%d%+d%+d)=%d\n", x, y, clip_rect->x, clip_rect->y, clip_rect->w, clip_rect->h, ret); return ret; } int overlapped_rect(SDL_Rect *a, SDL_Rect *b){ int ret; if ( (a->x+a->w <= b->x) || /* a je vlevo od b */ (b->x+b->w <= a->x) || /* b je vlevo od a */ (a->y+a->h <= b->y) || /* a je nad b */ (b->y+b->h <= a->y)) ret=0; /* b je nad a */ else ret=1; /* dbg("overlapped_rect(%dx%d%+d%+d,%dx%d%+d%+d)=%d\n", a->x, a->y, a->w, a->h, b->x, b->y, b->w, b->h, ret);*/ return ret; } /* * X -> * Y 0110 0010 1010 * | 0100 0000 1000 * V 0101 0001 1001 */ int overlapped_line(SDL_Rect *clip_rect, int x1, int y1, int x2, int y2){ int mask1, mask2; mask1=0; if (x1x) mask1|=0x4; else if (x1>=clip_rect->x+clip_rect->w) mask1|=0x8; if (y1y) mask1|=0x2; else if (y1>=clip_rect->y+clip_rect->h) mask1|=0x1; mask2=0; if (x2x) mask2|=0x4; else if (x2>=clip_rect->x+clip_rect->w) mask2|=0x8; if (y2y) mask2|=0x2; else if (y2>=clip_rect->y+clip_rect->h) mask2|=0x1; if ((mask1|mask2)==0) return 1; if (mask1&mask2) return 0; return 1; /* if ((mask1&mask2)==0) return 1; res=mask1^mask2; if ((res&0x3)==0) return 0; if ((res&0xc)==0) return 0; return 1;*/ } void fast_putpixel8(SDL_Surface *surface, int x, int y, int color){ Uint8 *p; if (clip_pixel(&surface->clip_rect, x, y)) return; p = (Uint8 *) surface->pixels + y*surface->pitch + x; *p = color; } void fast_putpixel16(SDL_Surface *surface, int x, int y, int color){ Uint16 *p; if (clip_pixel(&surface->clip_rect, x, y)) return; p = (Uint16 *) surface->pixels + y*surface->pitch/2 + x; *p = color; } void fast_putpixel24(SDL_Surface *surface, int x, int y, int color){ Uint16 *p16; Uint8 *p8; if (clip_pixel(&surface->clip_rect, x, y)) return; p16 = (Uint16 *) surface->pixels + y*surface->pitch/3 + x; p8 = (Uint8 *) (p16+1); *p16 = color; /* TODO Big endian? */ *p8 = color>>16; } void fast_putpixel32(SDL_Surface *surface, int x, int y, int color){ Uint32 *p; if (clip_pixel(&surface->clip_rect, x, y)) return; p = (Uint32 *) surface->pixels + y*surface->pitch/4 + x; *p = color; } int fast_getpixel8(SDL_Surface *surface, int x, int y){ Uint8 *p; p = (Uint8 *) surface->pixels + y*surface->pitch + x; return *p; } int fast_getpixel16(SDL_Surface *surface, int x, int y){ Uint16 *p; p = (Uint16 *) surface->pixels + y*surface->pitch/2 + x; return *p; } int fast_getpixel24(SDL_Surface *surface, int x, int y){ Uint16 *p16; Uint8 *p8; p16 = (Uint16 *) surface->pixels + y*surface->pitch/3 + x; p8 = (Uint8 *) (p16+1); return (*p16) + ((*p8)<<16); /* *p16 = color; */ /* TODO Big endian? */ /* *p8 = color>>16; */ } int fast_getpixel32(SDL_Surface *surface, int x, int y){ Uint32 *p; p = (Uint32 *) surface->pixels + y*surface->pitch/4 + x; return *p; } void line(SDL_Surface *surface, int x1, int y1, int x2, int y2, int color){ int dx, dy, p; int inc, tmp; dx=abs(x1-x2); dy=abs(y1-y2); if (dx>=dy){ p = 2*dy-dx; if (x1 >= x2){ tmp=x1;x1=x2;x2=tmp; tmp=y1;y1=y2;y2=tmp; } fast_putpixel(surface, x1, y1, color); if (y2>=y1) inc=1; else inc=-1; while(x1 < x2){ x1++; if (p<0) p += 2*dy; else{ y1+=inc; p += 2*(dy-dx); } fast_putpixel(surface, x1, y1, color); } }else{ p = 2*dx-dy; if (y1 >= y2){ tmp=x1;x1=x2;x2=tmp; tmp=y1;y1=y2;y2=tmp; } fast_putpixel(surface, x1, y1, color); if (x2>=x1) inc=1; else inc=-1; while(y1 < y2){ y1++; if (p<0) p += 2*dx; else{ x1 += inc; p += 2*(dx-dy); } fast_putpixel(surface, x1,y1, color); } } } void do_line(SDL_Surface *surface, int x1, int y1, int x2, int y2, int color, void (*func)(SDL_Surface *surface, int x, int y, int d) ){ int dx, dy, p; int inc, tmp; dx=abs(x1-x2); dy=abs(y1-y2); if (dx>=dy){ p = 2*dy-dx; if (x1 >= x2){ tmp=x1;x1=x2;x2=tmp; tmp=y1;y1=y2;y2=tmp; } func(surface, x1, y1, color); if (y2>=y1) inc=1; else inc=-1; while(x1 < x2){ x1++; if (p<0) p += 2*dy; else{ y1+=inc; p += 2*(dy-dx); } func(surface, x1, y1, color); } }else{ p = 2*dx-dy; if (y1 >= y2){ tmp=x1;x1=x2;x2=tmp; tmp=y1;y1=y2;y2=tmp; } func(surface, x1, y1, color); if (x2>=x1) inc=1; else inc=-1; while(y1 < y2){ y1++; if (p<0) p += 2*dx; else{ x1 += inc; p += 2*(dx-dy); } func(surface, x1,y1, color); } } } #define SWAP(a,b){ int tmp; \ tmp=x##a; x##a=x##b; x##b=tmp;\ tmp=y##a; y##a=y##b; y##b=tmp;} void triangle(SDL_Surface *surface, int x1, int y1, int x2, int y2, int x3, int y3, int c){ int a1,b1,c1, a2,b2,c2, a3,b3,c3, xx1, xx2,xx3,y; if (y2x2?x1:x2; if (x3>r.x) r.w=x3; r.w-=r.x; r.h=1; SDL_SetClipRect(surface, rect); SDL_FillRect(surface, &r, c); SDL_SetClipRect(surface, NULL); #else /* i don't want to sort X's :-) */ line(surface, x1, y1, x2, y2, c); line(surface, x1, y1, x3, y3, c); line(surface, x3, y3, x2, y2, c); #endif return; } a1=y2-y3; b1=x3-x2; c1=y3*x2-x3*y2; a2=y1-y2; b2=x2-x1; c2=y2*x1-x2*y1; a3=y1-y3; b3=x3-x1; c3=y3*x1-x3*y1; #ifdef USE_RECT SDL_SetClipRect(surface, rect); #endif for (y=y1;y no iteration */ xx3=-(b3*y+c3)/a3; /* a3=0 not reached because y1=y2 -> y1=y2=y3 */ #ifdef USE_RECT r.x=xx2surface, &r, c); #else line(surface, xx2, y, xx3, y, c); #endif } for (y=y2;y no iteration */ xx3=-(b3*y+c3)/a3; #ifdef USE_RECT r.x=xx1x, rect->y, rect->w, rect->h, x, y, r, c);*/ p=1-r; yy=r; for (xx=0; xx<=yy; xx++){ fast_putpixel(surface, x+yy, y+xx, c); fast_putpixel(surface, x+yy, y-xx, c); fast_putpixel(surface, x-yy, y+xx, c); fast_putpixel(surface, x-yy, y-xx, c); fast_putpixel(surface, x+xx, y+yy, c); fast_putpixel(surface, x+xx, y-yy, c); fast_putpixel(surface, x-xx, y+yy, c); fast_putpixel(surface, x-xx, y-yy, c); if (p<0){ p+=2*xx + 3; }else{ p+=2*xx - 2*yy + 1; yy--; } } } void fast_dashfce(SDL_Surface *surface, int x, int y, int d) { if (dashcnt++%6<3) return; fast_putpixel(surface, x, y, d); } void rect(SDL_Surface *surface, int x1, int y1, int x2, int y2, int c){ line(surface, x1, y1, x2, y1, c); line(surface, x2, y1, x2, y2, c); line(surface, x1, y2, x2, y2, c); line(surface, x1, y1, x1, y2, c); } void rect2(SDL_Surface *surface, SDL_Rect *r, int c){ rect(surface, r->x, r->y, r->x+r->w-1, r->y+r->h-1, c); } void cross(SDL_Surface *surface, int x, int y, int color, int zoom){ if (zoom<2500){ line(surface, x-1, y-1, x+1, y+1, color); line(surface, x-1, y+1, x+1, y-1, color); return; } if (zoom<4000){ line(surface, x-2, y-2, x+2, y+2, color); line(surface, x-2, y+2, x+2, y-2, color); return; } if (zoom<10000){ line(surface, x-3, y-3, x+3, y+3, color); line(surface, x-2, y-3, x+3, y+2, color); line(surface, x-3, y-2, x+2, y+3, color); line(surface, x-3, y+3, x+3, y-3, color); line(surface, x-2, y+3, x+3, y-2, color); line(surface, x-3, y+2, x+2, y-3, color); return; } if (zoom>=10000){ line(surface, x-4, y-4, x+4, y+4, color); line(surface, x-3, y-4, x+4, y+3, color); line(surface, x-4, y-3, x+3, y+4, color); line(surface, x-4, y+4, x+4, y-4, color); line(surface, x-3, y+4, x+4, y-3, color); line(surface, x-4, y+3, x+3, y-4, color); return; } } void pip(SDL_Surface *surface, int x, int y, int color1, int color2, int zoom){ fast_putpixel(surface, x, y-1, color1); fast_putpixel(surface, x, y, color1); fast_putpixel(surface, x, y+1, color1); fast_putpixel(surface, x-1, y, color1); fast_putpixel(surface, x+1, y, color1); fast_putpixel(surface, x-1, y-1, color2); fast_putpixel(surface, x+1, y-1, color2); fast_putpixel(surface, x+1, y+1, color2); fast_putpixel(surface, x-1, y+1, color2); } int sdl_set_title(gchar *title){ if (!sdl) return 0; CONDGFREE(sdl->title); sdl->title=g_strdup(title); SDL_WM_SetCaption(sdl->title, NULL); return 0; } #ifdef HAVE_LIBPNG void sdl_screenshot(int topwindow){ gchar *c; int i; SDL_Surface *surface; if (!sdl) return; dbg("sdl_screenshot\n"); if (topwindow){ struct window *win; win=(struct window *)&(term->windows); dbg("win=%p prev=%p next=%p\n", win, win->prev, win->next); if (win->prev==win->next || !win->next->data){ surface=sdl->screen; }else{ SDL_Rect sr,dr; sr.x=sr.y=dr.w=dr.h=sr.w=sr.h=0; i=0; if (win->next->handler==menu_func || win->next->handler==mainmenu_func){ struct menu *menu; menu=(struct menu *)win->next->data; dr.x=-menu->x*FONT_W; dr.y=-menu->y*FONT_H; sr.w=menu->xw*FONT_W; sr.h=menu->yw*FONT_H; i++; } if (win->next->handler==dialog_func){ struct dialog_data *dd; dd=(struct dialog_data *)win->next->data; dr.x=-dd->x*FONT_W; dr.y=-dd->y*FONT_H; sr.w=dd->xw*FONT_W; sr.h=dd->yw*FONT_H; i++; } if (win->next->handler==cwwindow_func){ struct cwwin_data *cww; cww=(struct cwwin_data *)win->next->data; dr.x=-cww->x*FONT_W; dr.y=-cww->y*FONT_H; sr.w=cww->w*FONT_W; sr.h=cww->h*FONT_H; i++; } if (!i){ surface=sdl->screen; }else{ surface=SDL_CreateRGBSurface(SDL_SWSURFACE, sr.w, sr.h, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Bmask, 0); /* dbg("sr=[%d,%d, %d,%d]\n", sr.x, sr.y, sr.w, sr.h); dbg("dr=[%d,%d, %d,%d]\n", dr.x, dr.y, dr.w, dr.h); */ SDL_BlitSurface(sdl->screen, NULL , surface, &dr); /* dbg("dr=[%d,%d, %d,%d]\n", dr.x, dr.y, dr.w, dr.h); SDL_BlitSurface(surface, NULL, sdl->screen, NULL); SDL_UpdateRect(sdl->screen, 0, 0, sdl->screen->w, sdl->screen->h); sleep(1);*/ } } }else{ surface=sdl->screen; } for (i=0;1;i++){ struct stat st; if (ctest) c=g_strdup_printf("%s/snap%c%d.png",ctest->directory, aband->bandchar, i); else c=g_strdup_printf("%s/tucnak/snap%d.png",getenv("HOME"), i); if (stat(c, &st)!=0) break; g_free(c); } dbg("file=%s\n", c); if (do_png_save(surface, c)){ log_addf(VTEXT(T_CANT_WRITE_S), c); errbox(VTEXT(T_CANT_WRITE), errno); } g_free(c); if (surface!=sdl->screen) SDL_FreeSurface(surface); } #endif extern char font_vga[4096]; void sdl_font_save(){ #ifdef HAVE_LIBPNG SDL_Surface *surface; int neww=13, newh=24, newwd=20, newhd=30; int i, j, k, x, y, c, fx, fy; char *fc; surface=SDL_CreateRGBSurface(SDL_SWSURFACE, newwd*16, newhd*16, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Bmask, 0); SDL_FillRect(surface, NULL, sdl->gr[4]); for (i=0; i<256; i++){ x = (i % 16) * newwd; y = (i / 16) * newhd; for (j=0; jyellow; fy = (k * 16)/newh; fc=font_vga+ ((unsigned char)i)*16; fc+=fy; c = 0; if (*fc & (1<<(7-fx))) c = sdl->gr[15]; fast_putpixel(surface, x+j, y+k, c); } } } do_png_save(surface, "font13x24.png"); SDL_FreeSurface(surface); #endif } #endif tucnak2-2.48/src/masterdb.c0000644000175000017500000001103111567373656012512 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2010 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" struct masterdb *masterdb; struct masterdb *init_masterdb(void){ struct masterdb *masterdb; masterdb = g_new0(struct masterdb, 1); masterdb->masters = t_hash_table_new(g_str_hash, g_str_equal); /*t_hash_table_insert(masterdb->masters, g_strdup("OK1ZIA"), "VALUE"); dbg("OK1ZIA=%s\n", t_hash_table_lookup(masterdb->masters, "OK1ZIA")); exit(123);*/ return masterdb; } static gboolean free_masters_item(gpointer key, gpointer value, gpointer user_data){ g_free(key); return 0; } void free_masterdb(struct masterdb *masterdb){ t_hash_table_foreach_remove(masterdb->masters, free_masters_item, NULL); t_hash_table_destroy(masterdb->masters); g_free(masterdb); } gint get_masterdb_size(struct masterdb *masterdb){ return t_hash_table_size(masterdb->masters); } void add_masterdb(struct masterdb *masterdb, gchar *call){ gchar *masterdbi; //dbg("add '%s'\n", call); masterdbi = t_hash_table_lookup(masterdb->masters, call); if (!masterdbi){ t_hash_table_insert(masterdb->masters, g_strdup(call), (gpointer)0x42); } } gchar *masterdb_search(struct masterdb *masterdb, char *pattern, int maxreslen){ int reslen; GString *gs; char *ret; GPtrArray *result; THashNode *node; int i; result=g_ptr_array_new(); reslen = 0; for (i = 0; i < masterdb->masters->size; i++){ for (node = masterdb->masters->nodes[i]; node; node = node->next){ gchar *call = (gchar *)node->key; // dbg("call=%s pattern=%s\n", call, pattern); if (!my_strstr(call, pattern)) continue; g_ptr_array_add(result, call); // foreign key !!! if (reslen > 0) reslen++; reslen += strlen(call); if (reslen >= maxreslen) goto x; } } x:; g_index_array_qsort((GIndexArray *)result, compare_gstring); gs = g_string_sized_new(maxreslen+20); for (i=0; ilen; i++){ if (gs->len > 0) g_string_append_c(gs, ' '); g_string_append(gs, g_ptr_array_index(result, i)); } ret = g_strdup(gs->str); g_ptr_array_free(result, TRUE); g_string_free(gs, 1); return ret; } #define MASTERDB_DELIM " \t\r\n" void load_one_masterdb(struct masterdb *masterdb, gchar *s){ gchar *call; char *token_ptr; call = strtok_r(s, MASTERDB_DELIM, &token_ptr); if (!call) return; if (strlen(call)==0) return; add_masterdb(masterdb, call); } int load_masterdb_from_mem(struct masterdb *masterdb, const char *file, const long int len){ GString *gs; long int pos; gs = g_string_sized_new(100); pos=0; while(1){ if (!safe_mgets(gs, file, &pos, len, 1)) break; load_one_masterdb(masterdb, gs->str); } g_string_free(gs, 1); return 0; } int load_masterdb_from_file(struct masterdb *masterdb, gchar *filename){ FILE *f; long int len; gchar *file; int ret; size_t r; f = fopen(filename, "rt"); if (!f) { /* dbg("Can't open '%s'\n",filename);*/ return -1; } if (fseek(f, 0L, SEEK_END)<0){ fclose(f); return -1; } len=ftell(f); if (len<=0 || len>0x10000000) { /* g_new can allocate only gsize=unsigned int */ fclose(f); return -1; } if (fseek(f, 0L, SEEK_SET)<0){ fclose(f); return -1; } file=g_new(gchar, len); r=fread(file, 1, len, f); fclose(f); if (r!=len) return -1; ret=load_masterdb_from_mem(masterdb, file, len); g_free(file); return ret; } void read_masterdb_files(struct masterdb *masterdb){ gchar *s; int ret; s = g_strconcat(getenv("HOME"), "/tucnak/tucnakmasters", NULL); ret = load_masterdb_from_file(masterdb, s); g_free(s); if (ret < 0){ load_masterdb_from_mem(masterdb, txt_master, sizeof(txt_master)); load_masterdb_from_mem(masterdb, txt_master1, sizeof(txt_master1)); load_masterdb_from_mem(masterdb, txt_master2, sizeof(txt_master2)); load_masterdb_from_mem(masterdb, txt_master3, sizeof(txt_master3)); load_masterdb_from_mem(masterdb, txt_master4, sizeof(txt_master4)); load_masterdb_from_mem(masterdb, txt_master5, sizeof(txt_master5)); load_masterdb_from_mem(masterdb, txt_master6, sizeof(txt_master6)); } } tucnak2-2.48/src/wizz.c0000644000175000017500000001103311567373656011716 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #define STORE_WIZZ_INT(name) \ else if (strcasecmp(k, #name)==0){ \ wi->name = atoi(item); \ } \ #define STORE_WIZZ_STR(name) \ else if (strcasecmp(k, #name)==0){ \ if (wi->name) g_free(wi->name); \ wi->name = g_strdup(item); \ } \ struct wizz *wizz; struct wizz *init_wizz(void){ struct wizz *wizz; wizz = g_new0(struct wizz, 1); wizz->items = g_ptr_array_new(); return wizz; }; void free_wizz_item(struct wizz_item *wi){ if (wi->tname) g_free(wi->tname); if (wi->pexch) g_free(wi->pexch); if (wi->excname) g_free(wi->excname); if (wi->bands) g_free(wi->bands); g_free(wi); } void free_wizz(struct wizz *wizz){ int i; struct wizz_item *wi; for (i=wizz->items->len-1; i>=0; i--){ wi = (struct wizz_item *)g_ptr_array_index(wizz->items, i); free_wizz_item(wi); } g_ptr_array_free(wizz->items, TRUE); /* YES, TRUE */ g_free(wizz); } struct wizz_item *find_wizz(struct wizz *wizz, gchar *str){ struct wizz_item *wi; int i; for (i=0; iitems->len; i++){ wi = (struct wizz_item *)g_ptr_array_index(wizz->items, i); if (!wi->tname) continue; if (strcasecmp(wi->tname, str)==0) return wi; } return NULL; } int load_wizz_from_file(struct wizz *wizz, gchar *filename){ FILE *f; GString *gs; struct wizz_item *wi=NULL; gchar **items, *k, *item; long int pos; f=NULL; pos=0; /*dbg("load_wizz_from_file('%s')\n", filename);*/ if (filename){ f = fopen(filename, "rt"); if (!f) { /* dbg("Can't open '%s'\n", filename);*/ return -1; } } gs = g_string_sized_new(100); while(1){ if (filename){ if (!safe_fgets(gs, f, 1)) break; }else{ if (!safe_mgets(gs, txt_tucnakwiz, &pos, sizeof(txt_tucnakwiz), 1)) break; } g_strstrip(gs->str); if (gs->str[0]=='['){ gchar *tname; tname = g_strdup(gs->str+1); if (strlen(tname)>0 && tname[strlen(tname)-1]==']') tname[strlen(tname)-1]='\0'; wi = find_wizz(wizz, tname); if (!wi) { wi = g_new0(struct wizz_item,1); g_ptr_array_add(wizz->items, wi); wi->wwlcfm = 1; wi->exccfm = 1; } /*dbg("BEGIN '%s'\n", gs->str+1);*/ CONDGFREE(wi->tname) wi->tname = tname; /* dbg(" set tname='%s' \n", tname);*/ continue; } items=g_strsplit(gs->str, "=", 2); if (!items[0] || !items[1]) { g_strfreev(items); continue; } k=items[0]; item=items[1]; /*dbg(" '%s'='%s'\n", k, item);*/ if (0){} STORE_WIZZ_STR(pexch) STORE_WIZZ_INT(rstused) STORE_WIZZ_INT(qsoused) STORE_WIZZ_INT(qsomult) STORE_WIZZ_INT(qsoglob) STORE_WIZZ_INT(tttype) STORE_WIZZ_INT(wwlused) STORE_WIZZ_INT(wwlbonu) STORE_WIZZ_INT(wwlmult) STORE_WIZZ_INT(wwlcfm) STORE_WIZZ_INT(excused) STORE_WIZZ_INT(excbonu) STORE_WIZZ_INT(excmult) STORE_WIZZ_INT(exccfm) STORE_WIZZ_INT(exctype) STORE_WIZZ_STR(excname) STORE_WIZZ_INT(rstused) STORE_WIZZ_INT(defrstr) STORE_WIZZ_INT(prefmult) STORE_WIZZ_INT(prefglob) STORE_WIZZ_INT(dxcmult) STORE_WIZZ_INT(dxcbonu) STORE_WIZZ_INT(qsop_method) STORE_WIZZ_INT(total_method) STORE_WIZZ_STR(bands) else{ dbg("!!! unresolved key '%s'\n", k); } g_strfreev(items); } if (filename) fclose(f); g_string_free(gs, 1); return 0; } void read_wizz_files(struct wizz *wizz){ gchar *s; int ret; /* before=sbrk(0);*/ s = g_strconcat(getenv("HOME"), "/tucnak/tucnakwiz", NULL); ret=load_wizz_from_file(wizz, s); g_free(s); if (ret<0){ load_wizz_from_file(wizz, NULL); } } struct wizz_item *get_wizz(struct wizz *wizz, int i){ return (struct wizz_item *) g_ptr_array_index(wizz->items, i); } tucnak2-2.48/src/msvc.c0000644000175000017500000000761511567373656011676 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-20011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. Interface for MSVC compiler */ #include "header.h" #include #include #include int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ WSADATA wsaData; char **items; int argc; char *argv[100]; WSAStartup(MAKEWORD(2, 0), &wsaData); items = g_strsplit(lpCmdLine, " ", 0); argv[0]="tucnak.exe"; for (argc=1; items[argc-1] != 0 && argc < 100; argc++){ if (items[argc-1] == NULL) break; argv[argc] = items[argc-1]; } main(argc, argv); g_strfreev(items); } char *txt_settings = "Argument -s unsupported under MSVC\n"; int gettimeofday(struct timeval *tv, void *dummy){ struct _timeb t; _ftime_s(&t); tv->tv_sec = (long)t.time; tv->tv_usec = t.millitm * 1000; return 0; } struct tm *gmtime_r(time_t *timep, struct tm *result){ gmtime_s(result, timep); return result; } int setenv(const char *name, const char *value, int overwrite){ _putenv_s(name, value); return 0; } char *strerror_r(int err_no, char *buf, int size){ sprintf_s(buf, size, "Error %d", err_no); return buf; } void disable_screensaver(void){ } /* file */ int open(const char *pathname, int flags){ errno = 2; return -1; } int close(int fd){ return -1; } int read(int fd, void *buf, int count){ return recv(fd, (char *)buf, count, 0); } int write(int fd, const void *buf, int count){ return send(fd, (char *)buf, count, 0); } int ftruncate(int fd, off_t length){ return -1; } /* ntpq */ struct ntpq *ntpq; struct ntpq *init_ntpq(){ return NULL; } void free_ntpq(struct ntpq *ntpq){ } /* os_dep.h */ static int get_e(char *env) { char *v; if ((v = getenv(env))) return atoi(v); return 0; } /* socket */ char *sock_strerror_r(int err_no, char *buf, int size){ sprintf_s(buf, size, "Winsock error %d", err_no); return buf; } /* directory */ DIR *opendir(char *name){ size_t base_length; char *all; DIR *dir = 0; if(!name || !*name) { errno = EINVAL; return NULL; } base_length = strlen(name); /* search pattern must end with suitable wildcard */ all = strchr("/\\", name[base_length - 1]) ? "*" : "/*"; if((dir = (DIR *) malloc(sizeof *dir)) != 0 && (dir->name = (char *) malloc(base_length + strlen(all) + 1)) != 0) { strcat(strcpy(dir->name, name), all); if((dir->handle = (long) _findfirst(dir->name, &dir->info)) != -1) { dir->result.d_name[0] = '\0'; } else /* rollback */ { free(dir->name); free(dir); dir = 0; } } else /* rollback */ { free(dir); dir = 0; errno = ENOMEM; } return dir; } struct dirent *readdir(DIR *dir){ struct dirent *result = 0; if(dir && dir->handle != -1) { if(!dir->result.d_name[0] != '\0' || _findnext(dir->handle, &dir->info) != -1) { result = &dir->result; safe_strncpy(result->d_name, dir->info.name, _MAX_PATH); } errno = 0; } else { errno = EBADF; } return result; } int closedir(DIR *dir){ int result = -1; if(dir) { if(dir->handle != -1) { result = _findclose(dir->handle); } free(dir->name); free(dir); } if(result == -1) /* map all errors to EBADF */ { errno = EBADF; } return result; } tucnak2-2.48/src/subwin.c0000644000175000017500000016234311705617525012223 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" struct session *gses; #define QSOS_LEN (ctest->qsoglob?ctest->allqsos->len:aband->qsos->len) //#define QSOS_LEN (aband->qsos->len) struct subwin *new_subwin(enum sw_type type, gchar *title, /* optional */ void (*enter)(void *,gchar *, int)){ struct subwin *sw; // dbg("new_subwin(%d, '%s')\n", type, title); sw = g_new0(struct subwin,1); sw->x = 1; sw->w = term->x - 2; sw->h = term->y - QSONR_HEIGHT - 4 - cfg->loglines; if (aband) sw->h -= ctest->spypeers->len; sw->hh = sw->h; sw->type = type; sw->title = g_strdup(title); sw->cur = -1; sw->maxlen = 1000; sw->kbd_func = NULL; sw->mouse_func = NULL; sw->redraw = NULL; sw->check_bounds = NULL; sw->ws.ws_col = sw->w; sw->ws.ws_row = sw->h-1; sw->ws.ws_xpixel = 0; sw->ws.ws_ypixel = 0; sw->read_fd = -1; sw->write_fd = -1; sw->high = g_ptr_array_new(); g_ptr_array_add(sw->high, g_strdup("<\\*[0-9a-zA-Z\\-]+\\*>")); if (sw->type == SWT_PIPE || sw->type == SWT_KST3 || sw->type == SWT_TALK){ sw->il = g_new0(struct inputln,1); sw->il->term = term; sw->il->sw = sw; { struct event ev = {EV_INIT, 0,0,0}; inputln_func(sw->il,&ev); } sw->il->x = sw->x; sw->il->y = sw->y + sw->h - 1; sw->il->l = sw->w; sw->il->enter = enter; sw->il->enterdata = sw; sw->h--; } if (sw->type == SWT_QSOS){ sw->kbd_func = sw_qsos_kbd_func; sw->mouse_func = sw_qsos_mouse_func; sw->redraw = sw_qsos_redraw; sw->check_bounds = sw_qsos_check_bounds; } if (sw->type == SWT_LOG){ sw->kbd_func = sw_fifo_kbd_func; sw->mouse_func = sw_fifo_mouse_func; sw->redraw = sw_fifo_redraw; sw->check_bounds = sw_fifo_check_bounds; sw->fifo = glog; } if (sw->type == SWT_PIPE || sw->type == SWT_KST3){ /*sw->kbd_func = sw_pipe_kbd_func;*/ sw->kbd_func = sw_fifo_kbd_func; sw->mouse_func = sw_pipe_mouse_func; sw->redraw = sw_pipe_redraw; sw->check_bounds = sw_pipe_check_bounds; sw->il->allow_ctrlv = 1; sw->lines = g_ptr_array_new(); #ifdef HAVE_PTY_H sw_pty_run(sw, "/bin/bash"); #else sw_pipe_run(sw, "/bin/bash"); #endif } if (sw->type == SWT_TALK){ sw->kbd_func = sw_fifo_kbd_func; sw->mouse_func = sw_fifo_mouse_func; sw->redraw = sw_fifo_redraw; sw->check_bounds = sw_fifo_check_bounds; sw->fifo = gtalk; sw->il->enter = sw_talk_enter; sw->il->enterdata = sw; sw->il->allow_ctrlv = 1; } if (sw->type == SWT_DXC){ sw->kbd_func = sw_dxc_kbd_func; sw->mouse_func = sw_dxc_mouse_func; sw->redraw = sw_dxc_redraw; sw->check_bounds = sw_dxc_check_bounds; } if (sw->type == SWT_SKED){ sw->kbd_func = sw_sked_kbd_func; sw->mouse_func = sw_sked_mouse_func; sw->redraw = sw_sked_redraw; sw->check_bounds = sw_sked_check_bounds; sw->fifo = NULL; /* not used */ } if (sw->type == SWT_UNFI){ sw->kbd_func = sw_unfi_kbd_func; sw->mouse_func = sw_unfi_mouse_func; sw->redraw = sw_unfi_redraw; sw->check_bounds = sw_unfi_check_bounds; sw->fifo = NULL; /* filled in sw_unfi* */ } if (sw->type == SWT_STAT){ sw->kbd_func = sw_stat_kbd_func; sw->mouse_func = sw_stat_mouse_func; sw->redraw = sw_stat_redraw; sw->check_bounds = sw_stat_check_bounds; sw->raise = sw_stat_raise; sw->fifo = NULL; /* filled in sw_stat* */ } if (sw->type == SWT_MAP){ sw->kbd_func = sw_map_kbd_func; sw->mouse_func = sw_map_mouse_func; sw->redraw = sw_map_redraw; sw->check_bounds = sw_map_check_bounds; sw->raise = sw_map_raise; #ifdef HAVE_SDL if (sdl){ sw->l1map = SDL_CreateRGBSurface(SDL_SWSURFACE, sw->w*FONT_W, sw->h*FONT_H, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Gmask, 0); sw->screen = SDL_CreateRGBSurface(SDL_SWSURFACE, sw->w*FONT_W, sw->h*FONT_H, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Gmask, 0); sw->screen_mutex = g_mutex_new(); sw->zoom = 10000; /* sw->zoom = 1000; */ sw->gdirty = 1; map_update_layout(sw); map_update_qth(sw); } #endif } if (sw->type == SWT_SCOPE){ sw->kbd_func = sw_scope_kbd_func; sw->mouse_func = sw_scope_mouse_func; sw->redraw = sw_scope_redraw; sw->check_bounds = sw_scope_check_bounds; sw->raise = sw_scope_raise; #ifdef HAVE_SDL sw->scope_mode = 3; if (sdl){ sw->screen = SDL_CreateRGBSurface(SDL_SWSURFACE, sw->w*FONT_W, sw->h*FONT_H, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Gmask, 0); sw->screen_mutex = g_mutex_new(); sw->gdirty = 1; fft_resize(fft, sw); } #endif } if (sw->type == SWT_QRV){ sw->kbd_func = sw_qrv_kbd_func; sw->mouse_func = sw_qrv_mouse_func; sw->redraw = sw_qrv_redraw; sw->check_bounds = sw_qrv_check_bounds; sw->raise = sw_qrv_raise; } if (sw->type == SWT_HF){ dbg("HF subwin\n"); sw->kbd_func = sw_hf_kbd_func; sw->mouse_func = sw_hf_mouse_func; sw->redraw = sw_hf_redraw; sw->check_bounds = sw_hf_check_bounds; sw->raise = sw_hf_raise; // sw->fifo = NULL; /* filled in sw_stat* */ } if (sw->type == SWT_PLAYER){ sw->kbd_func = sw_player_kbd_func; sw->mouse_func = sw_player_mouse_func; sw->redraw = sw_player_redraw; sw->check_bounds = sw_player_check_bounds; sw->raise = sw_player_raise; #ifdef HAVE_SDL if (sdl && sw->h > PLAYER_H){ sw->screen = SDL_CreateRGBSurface(SDL_SWSURFACE, sw->w*FONT_W, (sw->h - PLAYER_H)*FONT_H, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Gmask, 0); sw->screen_mutex = g_mutex_new(); sw->gdirty = 1; } #endif } if (sw->type == SWT_CHART){ sw->kbd_func = sw_chart_kbd_func; sw->mouse_func = sw_chart_mouse_func; sw->redraw = sw_chart_redraw; sw->check_bounds = sw_chart_check_bounds; sw->raise = sw_chart_raise; #ifdef HAVE_SDL if (sdl && sw->h > CHART_H){ sw->screen = SDL_CreateRGBSurface(SDL_SWSURFACE, sw->w*FONT_W, (sw->h - CHART_H)*FONT_H, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Gmask, 0); sw->screen_mutex = g_mutex_new(); sw->gdirty = 1; } #endif sw->chbands = g_ptr_array_new(); sw_chart_recalc_extremes(sw); } sw->check_bounds(sw); g_ptr_array_add(gses->subwins, sw); return sw; } void free_subwins(){ int i; for (i=gses->subwins->len-1;i>=0;i--){ struct subwin *sw; sw=(struct subwin *)g_ptr_array_index(gses->subwins, i); free_subwin(sw); } g_ptr_array_free(gses->subwins, TRUE); } void free_subwin(struct subwin *sw){ g_ptr_array_remove(gses->subwins, sw); if (sw->high) g_ptr_array_free_all(sw->high); if (sw->title) g_free(sw->title); if (sw->lines) g_ptr_array_free_all(sw->lines); if (sw->pid>0) sw_pipe_kill(sw); if (sw->write_fd>=0) set_handlers(sw->write_fd, NULL, NULL, NULL, CBA0); if (sw->read_fd>=0) set_handlers(sw->read_fd, NULL, NULL, NULL, CBA0); #ifdef HAVE_SDL if (sw->l1map) SDL_FreeSurface(sw->l1map); //if (sw->l2rot) SDL_FreeSurface(sw->l2rot); if (sw->screen) SDL_FreeSurface(sw->screen); if (sw->screen_mutex) g_mutex_free(sw->screen_mutex); CONDGFREE(sw->pwwlo); #ifdef HAVE_SNDFILE sw_player_free(sw); #endif sw_chart_free(sw); #endif if (sw->il) g_free(sw->il); g_free(sw); } int sw_add_line(struct subwin *sw, gchar *line, int eol){ int len, a; gchar *c, *last, *str, fill[10]; GString *gs; /* dbg("add_line '%s' %d \n", line, eol);*/ len = strlen(line); /* if (len>0 && line[len-1]=='\r') line[len-1]='\0';*/ if (sw->eol || sw->lines->len==0){ if (sw->offset > 0 && sw->offset < sw->maxlen-sw->h) { sw->offset++; } g_ptr_array_add(sw->lines, g_strdup(line)); str = g_ptr_array_index(sw->lines, sw->lines->len - 1); } else{ last = g_ptr_array_index(sw->lines, sw->lines->len - 1); str = g_strconcat( last, line, NULL); g_free(last); } if (eol) { char *d; /*dbg("complete line: '%s'\n", str);*/ if (dxc_read_spot(str)==0){ d=g_strconcat("DX ",str,"\n",NULL); rel_write_all(d); g_free(d); } qrv_read_line(str); } c = strchr(str, '\t'); if (c){ gs = g_string_new(str); c = strchr(gs->str, '\t'); while (c){ a = c - gs->str; strcpy(fill, " "); fill[8-(a%8)]='\0'; g_string_erase(gs, a, 1); g_string_insert(gs, a, fill); c = strchr(gs->str, '\t'); } g_free(str); str = g_strdup(gs->str); g_string_free(gs, 1); } g_ptr_array_index(sw->lines, sw->lines->len - 1) = str; sw->eol = eol; return 0; } int sw_add_block(struct subwin *sw, gchar *data){ gchar *c, *d, *s; /*dbg("add_block '%s'\n", data);*/ c = s = data; while (c != NULL && strlen(s)>0){ c = strchr(s, '\n'); if (c) { d = g_strndup(s, c-s); sw_add_line(sw, d, 1); g_free(d); s = c+1; }else{ sw_add_line(sw, s, 0); } } sw_check_len(sw); redraw_later(); return 0; } int sw_default_func(struct subwin *sw, struct event *ev, int fw){ /*dbg("sw_default_func %p,[%d,%d,%d,%d],%d)\n",sw,ev->ev,ev->x,ev->y ,ev->b,fw);*/ /* dbg(" term %dx%d \n",term->x, term->y);*/ switch(ev->ev){ case EV_ABORT: if (sw->il) inputln_func(sw->il,ev); if (sw->pid) sw_pipe_kill(sw); break; case EV_INIT: // break; case EV_RESIZE: if (cfg->splitheight > 0){ if (sw == gses->ontop && sw == gses->ontop2){ sw->y = gses->y1; sw->h = MIN(gses->height1, gses->height2); }else if (sw == gses->ontop2){ sw->y = gses->y2; sw->h = gses->height2; }else if (sw == gses->ontop){ sw->y = gses->y1; sw->h = gses->height1; } }else{ sw->y = gses->y1; sw->h = gses->height1; } sw->w = term->x - 2; sw->hh = sw->h; // dbg("sw_default_func(EV_RESIZE, '%s') y=%d h=%d\n", sw->title, sw->y, sw->h); /*dbg("sw_default_func: title=%s term->y=%d sw->h=%d\n", sw->title, term->y, sw->h); */ if (sw->write_fd>=0 && sw->write_fd==sw->read_fd && (sw->ws.ws_col != sw->w || sw->ws.ws_row != sw->h- 1)){ sw->ws.ws_col = sw->w; sw->ws.ws_row = sw->h - 1; ioctl(sw->write_fd, TIOCSWINSZ, (char*)&sw->ws); } if (sw->il){ /*struct inputln *il; sw->il->x = sw->x; sw->il->y = sw->y + sw->h - 1; sw->il->l = sw->w; il=sw->il; dbg("sw_defa_func RESIZE %p term->y=%d il->x=%d il->y=%d il->band=%p\n", il, term->y, il->x, il->y, il->band); draw_inputln(sw->il, 1); */ sw->h--; } #ifdef HAVE_SDL if (sw->screen){ int h; MUTEX_LOCK(sw->screen); SDL_FreeSurface(sw->l1map); // SDL_FreeSurface(sw->l2rot); SDL_FreeSurface(sw->screen); h = sw->h*FONT_H; if (sw->type == SWT_PLAYER) h = (sw->h - PLAYER_H) * FONT_H; sw->l1map = SDL_CreateRGBSurface(SDL_SWSURFACE, sw->w*FONT_W, h, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Gmask, 0); sw->screen = SDL_CreateRGBSurface(SDL_SWSURFACE, sw->w*FONT_W, sw->h*FONT_H, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Gmask, 0); switch(sw->type){ case SWT_MAP: map_update_layout(sw); sw->gdirty=1; break; case SWT_SCOPE: fft_resize(fft, sw); break; case SWT_PLAYER: break; default: break; } MUTEX_UNLOCK(sw->screen); } #endif case EV_REDRAW: sw->redraw(sw, 0); if (sw->il) { inputln_func(sw->il,ev); } break; case EV_KBD: if (sw->kbd_func(sw, ev, fw)) return 1; break; case EV_MOUSE: if ((ev->b & B_MOVE) ==0){ if (!gses->focused){ sw_set_focus(); il_unset_focus(INPUTLN(aband)); redraw_later(); } } if (sw->mouse_func(sw, ev, fw)) return 1; break; default: error("ERROR: unknown event"); } return 0; } /* for init,abort & resize */ int sw_all_func(struct event *ev, int fw){ struct subwin *sw; int i; for (i=0; isubwins->len; i++){ sw = (struct subwin*)g_ptr_array_index( gses->subwins, i); sw_default_func(sw, ev, 1); } return 0; } /* returns 1 if event was handled */ int sw_focus_func(struct event *ev, int fw){ struct subwin *sw; int i; if (!gses->focused) return 0; for (i=0; isubwins->len; i++){ sw = (struct subwin*)g_ptr_array_index(gses->subwins, i); if (!sw->focused) continue; if (cfg->splitheight > 0 && sw->ontop2){ return sw_default_func(sw, ev, 1); } if (sw->ontop ){ return sw_default_func(sw, ev, 1); } } return 0; } int sw_ontop_func(struct event *ev, int fw){ //struct subwin *sw; int ret; // dbg("sw_ontop_func(ev=%d)\n", ev->ev); if (cfg->splitheight > 0){ gses->ontop2->y = gses->y2; ret = sw_default_func(gses->ontop2, ev, 1); gses->ontop->y = gses->y1; ret |= sw_default_func(gses->ontop, ev, 1); }else{ ret = sw_default_func(gses->ontop, ev, 1); } /*for (i=0; isubwins->len; i++){ sw = (struct subwin*)g_ptr_array_index(gses->subwins, i); if (cfg->splitheight > 0 && sw->ontop2){ sw_default_func(sw, ev, 1); } if (sw->ontop){ return sw_default_func(sw, ev, 1); } } */ return ret; } struct subwin *find_sw_ontop(){ struct subwin *sw; int i; for (i=0; isubwins->len; i++){ sw = (struct subwin*)g_ptr_array_index( gses->subwins, i); if (sw->ontop) return sw; } return NULL; } void sw_set_focus(){ struct subwin *sw; sw = gses->ontop; il_set_focus(sw->il); gses->focused = 1; if (gses->ontop->type == SWT_QSOS && aband){ gses->ontop->cur = QSOS_LEN; } gses->ontop->check_bounds(gses->ontop); } void sw_unset_focus(){ il_unset_focus(gses->ontop->il); if (gses->ontop->type != SWT_QRV) gses->ontop->cur = 0; gses->focused = 0; if (gses->ontop->type != SWT_STAT) gses->ontop->offset = 0; } struct subwin *sw_set_ontop(int n, int set2){ struct subwin *sw, *swret; int i; struct event ev = { EV_RESIZE, 0, 0, 0, 0, 0}; swret=NULL; if (n<0 || n>=gses->subwins->len) return swret; for (i=0; isubwins->len; i++){ sw = (struct subwin *)g_ptr_array_index( gses->subwins, i); if (i==n){ int raise=0; if (set2){ sw->ontop2 = 1; if (gses->ontop2 != sw) raise=1; gses->ontop2 = sw; }else{ sw->ontop = 1; if (gses->ontop != sw) raise=1; gses->ontop = sw; } sw->focused = 1; sw->unread = 0; if (sw->il) il_set_focus(sw->il); swret = sw; sw_default_func(sw, &ev, 1); if (sw->raise) sw->raise(sw); // if (sw->raise) is correct #ifdef HAVE_SNDFILE if (ssbd) ssbd->swontoptype = sw->type; #endif }else{ if (set2) sw->ontop2 = 0; else sw->ontop = 0; sw->focused = 0; } } return swret; } struct subwin *sw_totop_next(int n, int set2){ struct subwin *sw,*swret, *ontop; int i; swret=NULL; for (i=0; isubwins->len; i++){ sw = (struct subwin *)g_ptr_array_index( gses->subwins, i); ontop = set2 ? gses->ontop2 : gses->ontop; if (sw == ontop) break; } n+=i; if (n<0) n = gses->subwins->len-1; if (n>gses->subwins->len-1) n=0; return sw_set_ontop(n, set2); } void draw_titles(int y, int ontop2){ struct subwin *sw; gchar *c; int i, x, max, ontop; /*dbg("draw_titles\n");*/ sw = (struct subwin *)g_ptr_array_index( gses->subwins, 0); if (!sw) return; /* first try */ x=sw->x+1; for (i=0; isubwins->len; i++){ sw = (struct subwin *)g_ptr_array_index( gses->subwins, i); c=g_strdup_printf("[%i:%s]", i+1, sw->title); sw->titl1=x; x+=strlen(c)+1; sw->titl2=x-2; g_free(c); } if (x-3 < sw->w) goto draw; /* second try */ x=sw->x; for (i=0; isubwins->len; i++){ sw = (struct subwin *)g_ptr_array_index( gses->subwins, i); c=g_strdup_printf("[%i:%s]", i+1, sw->title); sw->titl1=x; x+=strlen(c); sw->titl2=x-2; g_free(c); } if (x-2 < sw->w) goto draw; /* third try */ x=sw->x; for (i=0; isubwins->len; i++){ sw = (struct subwin *)g_ptr_array_index( gses->subwins, i); c=g_strdup_printf("%i:%s", i+1, sw->title); sw->titl1=x; x+=strlen(c)+1; sw->titl2=x-2; g_free(c); } if (x-3 < sw->w) goto draw; /* if (x+strlen(c)>=sw->w+1) max=sw->w-x+1; else max=-1; print_text(x,sw->y-1,max,c,col_active); }else{ c=g_strdup_printf(" %i:%s ", i+1, sw->title); if (x+strlen(c)>=sw->w+1) max=sw->w-x+1; else max=-1; print_text(x,sw->y-1,max,c,sw->unread?COL_YELLOW:col_passive); } } */ draw:; for (i=0; isubwins->len; i++){ sw = (struct subwin *)g_ptr_array_index( gses->subwins, i); ontop = ontop2 ? sw->ontop2 : sw->ontop; if (ontop) continue; c=g_strdup_printf(" %i:%s ", i+1, sw->title); if (sw->titl1 + strlen(c) >= sw->w + 1) max=sw->w-sw->titl1+1; else max=-1; print_text(sw->titl1,y,max,c,sw->unread?COL_YELLOW:COL_NORM); g_free(c); } for (i=0; isubwins->len; i++){ sw = (struct subwin *)g_ptr_array_index( gses->subwins, i); ontop = ontop2 ? sw->ontop2 : sw->ontop; if (!ontop) continue; c=g_strdup_printf("[%i:%s]", i+1, sw->title); if (sw->titl1 + strlen(c) >= sw->w + 1) max=sw->w-sw->titl1+1; else max=-1; print_text(sw->titl1,y,max,c,COL_INV); g_free(c); } } void sw_default_redraw(struct subwin *sw, int flags){ draw_frame(sw->x,sw->y,sw->w,sw->h-1,COL_NORM,1); draw_frame(sw->x+1,sw->y+1,sw->w-2,sw->h-3,COL_NORM,1); } void sw_check_len(struct subwin *sw){ gpointer p; int count,i; count = sw->lines->len - sw->maxlen; if (count>0){ for (i=0; ilines, 0); /*dbg("scl: %d:%p = '%s'\n",i, p, p); */ g_free(p); g_ptr_array_remove_index(sw->lines, 0); } } } void sw_set_unread(struct fifo *fifo){ struct subwin *sw; int i; if (!gses) return; for (i=0; isubwins->len; i++){ sw = g_ptr_array_index( gses->subwins, i); /* dbg(" %p",sw->fifo);*/ if (sw->type == SWT_LOG) continue; /* don't highlight fifo */ if (fifo != sw->fifo) continue; if (!sw->ontop && !sw->unread) { sw->unread=1; redraw_later(); } } } void sw_unset_unread(struct fifo *fifo){ struct subwin *sw; int i; if (!gses || !gses->subwins) return; for (i=0; isubwins->len; i++){ sw = g_ptr_array_index( gses->subwins, i); /* dbg(" %p",sw->fifo);*/ if (sw->type == SWT_LOG) continue; /* don't highlight fifo */ if (fifo != sw->fifo) continue; if (sw->unread) { sw->unread=0; redraw_later(); } } } #define sw_highlight(text, ho, needle, color){\ gchar *cc, *d, *fd; \ int rx, fx, fl; \ \ if ((needle) && strlen(needle)>=2){ \ cc=(text); \ while ((d=my_strcasestr((cc), (needle)))!=NULL){ \ fl=MIN(sw->w-(d-(text))+(ho) , strlen(needle)); \ fx=rx=d-(text)-(ho); \ fd=d; \ if (rx<0) { \ fl+=rx; \ fx=0; \ fd=d-rx; \ } \ if (fl>0) print_text(sw->x+fx, sw->y+i, fl, fd, (color)); \ cc=d+strlen(needle); \ } \ }\ } char *suffix(gchar *call){ char *needle; if (!call) return NULL; for (needle=call+strlen(call)-1; needle>=call && isalpha(*needle); needle--); return needle+1; } struct config_subwin *get_config_sw_by_number(GPtrArray *sws, int nr){ struct config_subwin *csw; int i; for (i=0; ilen; i++){ csw = (struct config_subwin *)g_ptr_array_index(sws, i); if (csw->nr==nr) return csw; } return NULL; } /********************** QSOS ****************************************/ /* only EV_KBD */ int sw_qsos_kbd_func(struct subwin *sw, struct event *ev, int fw){ /*dbg("sw_qsos_func [%d,%d,%d,%d]\n",ev->ev,ev->x,ev->y,ev->b);*/ cba_t cba; switch(kbd_action(KM_MAIN,ev)){ case ACT_ESC: return 0; break; case ACT_DOWN: sw->cur++; sw_qsos_check_bounds(sw); redraw_later(); return 1; case ACT_UP: sw->cur--; sw_qsos_check_bounds(sw); redraw_later(); return 1; case ACT_PAGE_DOWN: sw->cur += sw->h - 1;; sw_qsos_check_bounds(sw); redraw_later(); return 1; case ACT_PAGE_UP: sw->cur -= sw->h - 1;; sw_qsos_check_bounds(sw); redraw_later(); return 1; case ACT_HOME: sw->cur = 1; sw_qsos_check_bounds(sw); redraw_later(); return 1; case ACT_END: if (!aband) return 1; sw->cur = QSOS_LEN; sw_qsos_check_bounds(sw); redraw_later(); return 1; case ACT_ENTER: if (!aband) return 1; sw_qsos_check_bounds(sw); if (aband->readonly) { errbox(VTEXT(T_BAND_RO), 0); return 1; } if (sw->cur==0) break; edit_qso(get_gqso(aband, sw->cur-1)); return 1; case ACT_PLAY_LAST: if (!aband) return 1; #ifdef HAVE_SNDFILE ssbd_play_last_sample(ssbd, get_gqso(aband, sw->cur-1)); #endif break; case ACT_SKED: if (!aband) return 0; if (sw->cur==0) break; sked_from_qso(get_gqso(aband, sw->cur-1)); return 1; case ACT_SCROLL_LEFT: if (sw->ho>0) sw->ho--; redraw_later(); return 1; case ACT_SCROLL_RIGHT: if (sw->ho<73) sw->ho++; redraw_later(); return 1; case ACT_CALLINFO: if (sw->cur==0) break; SETCBA(cba, qso, get_gqso(aband, sw->cur-1)); call_info(cba); return 1; } return 0; } int sw_qsos_mouse_func(struct subwin *sw, struct event *ev, int fw){ int y0; /*dbg("sw_qsos_mouse_func\n");*/ /* if ((ev->b & BM_ACT)!=B_DOWN) return 0; */ switch (ev->b & BM_EBUTT){ case B_LEFT: if (!aband) return 1; y0=0; if (QSOS_LEN+1 <= sw->h) y0 = sw->h - (QSOS_LEN+1) + 1; sw->cur = QSOS_LEN + 1 - sw->h + ev->y - sw->y - sw->offset + y0; sw_qsos_check_bounds(sw); redraw_later(); return 1; case B_MIDDLE: /* dbg("middle\n");*/ break; case B_RIGHT: /*dbg("right\n");*/ break; case B_WHUP: /*dbg("wheel up\n");*/ sw->cur-=3; sw_qsos_check_bounds(sw); redraw_later(); return 1; case B_WHDOWN: /*dbg("wheel down\n");*/ sw->cur+=3; sw_qsos_check_bounds(sw); redraw_later(); return 1; } return 0; } int show_qs(){ /* gses->qs is locked */ if (gses->ontop && gses->ontop->type == SWT_HF) return 0; if (aband){ if (( aband->qs->len>0 || aband->oqs->len>0 || gses->qs->len>0 ) && aband->il->focused ) return 1; }else{ /*if (gses->qs->len>0) return 1; */ if (gses->qs->len>0 && INPUTLN(aband)->focused) return 1; } return 0; } void sw_qs_redraw(){ /* gses->qs is locked */ int i, max0, max1, max2; gchar *c; struct subwin *sw=NULL; for (i=0;isubwins->len;i++){ sw=(struct subwin *)g_ptr_array_index(gses->subwins,i); if (sw->type!=SWT_QSOS) continue; break; } if (i==gses->subwins->len) return; max0=27; if (term->x-3x-3; if (max0<0) max0=0; max1=27; if (term->x-32x-32; if (max1<0) max1=0; max2=53; if (term->x-62x-62; if (max2<0) max2=0; for (i=0;ih;i++){ set_char(29, sw->y+i, 0x8000|COL_NORM|179); set_char(58, sw->y+i, 0x8000|COL_NORM|179); if (i==sw->h-1) { if (ctest) print_text(sw->x+ 1+3 ,sw->y+i,-1,VTEXT(T_THIS_BAND),COL_NORM); else print_text(sw->x+ 1+3 ,sw->y+i,-1,VTEXT(T_CW_DB),COL_NORM); if (ctest && ctest->bands->len>1) print_text(sw->x+30+3 ,sw->y+i,-1,VTEXT(T_OTHER_BANDS),COL_NORM); else print_text(sw->x+30+3 ,sw->y+i,-1,VTEXT(T_CW_DB),COL_NORM); print_text(sw->x+60+3 ,sw->y+i,-1,VTEXT(T_CW_DB),COL_NORM); continue; } if (ctest){ if (iqs->len){ c = (gchar *)g_ptr_array_index(aband->qs, i); print_text(sw->x+1 ,sw->y+i,max0,c,COL_NORM); } if (ctest->bands->len>1){ if (ioqs->len){ c = (gchar *)g_ptr_array_index(aband->oqs, i); print_text(sw->x+30 ,sw->y+i,max1,c,COL_NORM); } if (iqs->len){ c = (gchar *)g_ptr_array_index(gses->qs, i); print_text(sw->x+60,sw->y+i,max2,c,COL_NORM); } }else{ if (iqs->len){ c = (gchar *)g_ptr_array_index(gses->qs, i); print_text(sw->x+30,sw->y+i,max1,c,COL_NORM); } if (i+sw->h-1 < gses->qs->len){ c = (gchar *)g_ptr_array_index(gses->qs, i + sw->h-1 ); print_text(sw->x+60,sw->y+i,max2,c,COL_NORM); } } }else{ if (iqs->len){ c = (gchar *)g_ptr_array_index(gses->qs, i); print_text(sw->x+1,sw->y+i,max0,c,COL_NORM); } if (i+sw->h-1 < gses->qs->len){ c = (gchar *)g_ptr_array_index(gses->qs, i + sw->h-1 ); print_text(sw->x+30,sw->y+i,max1,c,COL_NORM); } if (i+2*(sw->h-1) < gses->qs->len){ c = (gchar *)g_ptr_array_index(gses->qs, i + 2*(sw->h-1) ); print_text(sw->x+59 ,sw->y+i,max2,c,COL_NORM); } } } } void sw_qsos_redraw(struct subwin *sw, int flags){ int i, index, y0, len; struct qso *q; gchar *c; char dtime[6]; /*dbg("term->x=%d max0=%d max1=%d max2=%d \n", term->x, max0, max1, max2);*/ MUTEX_LOCK(gses->qs); if (show_qs()){ sw_qs_redraw(); MUTEX_UNLOCK(gses->qs); return; } MUTEX_UNLOCK(gses->qs); if (!aband) return; y0=0; if (QSOS_LEN+1 <= sw->h) y0 = sw->h - (QSOS_LEN+1) + 1; for (i=0;ih;i++){ char dateband[16]; char call[50]; char new_[10]; char qsop[10]; char suspcall, susploc,unkcall; char qtf[10]; char exc[10]; index = QSOS_LEN+1-sw->h + i - sw->offset; if (index < 1) { print_text(sw->x,sw->y+i-y0+sw->h,-1," ~",COL_NORM); continue; } q = get_gqso(aband, index-1); strcpy(call,q->callsign); if (q->error) { if (q->callsign && strcmp(q->callsign, "ERROR")!=0){ sprintf(call, "ERROR %s", q->callsign); lc(call+5); }else strcpy(call, "ERROR"); } call[12]='\0'; strcpy(new_, ""); if (ctest->wwlused && (q->new_ & NEW_WWL)) strcat(new_, "w"); if ( q->new_ & NEW_DXC ) strcat(new_, "d"); if (ctest->exctype>0 && (q->new_ & NEW_EXC)) strcat(new_, "e"); if (q->new_ & NEW_PREF) strcat(new_, "p"); if (q->qsl) strcat(new_, "q"); if (q->remark && strlen(q->remark)>0) strcat(new_, "r"); if (!q->dupe) sprintf(qsop,"%6d", q->qsop); else strcpy(qsop, "DUPE"); dtime[0]=q->time_str[0]; dtime[1]=q->time_str[1]; dtime[2]=':'; dtime[3]=q->time_str[2]; dtime[4]=q->time_str[3]; dtime[5]='\0'; switch(q->suspcall1){ case SUSP_QRB: suspcall='>'; break; case SUSP_REM: suspcall='r'; break; case SUSP_WARN: suspcall='?'; break; case SUSP_ERR: suspcall='!'; break; default: suspcall=' '; break; } if (q->susploc==1) susploc='?'; else if (q->susploc==2) susploc='!'; else susploc=' '; if (q->unkcall) unkcall=VTEXT(T_HK_NEW_CALL)[0]; else unkcall=' '; sprintf(qtf,"%3d", q->qtf); #ifdef HAVE_SDL // if (sdl) strcat(qtf, ""); if (sdl) strcat(qtf, "\xb0"); #endif safe_strncpy0(exc, q->exc, 5); g_snprintf(dateband, sizeof(dateband), " %8s", q->date_str); len = strlen(q->band->bandname); if (ctest->qsoglob && len>0){ memcpy(dateband, " ", 6); if (len>4) len=4; memcpy(dateband+1, q->band->bandname, len); // dbg("bandname='%s'\n", q->band->bandname); } c=g_strdup_printf("%10s %5s %-12s%c%5s%4s%5s%4s %-4s %-6s %c%c%6s %-4s%-5s %-7s %s", dateband, dtime, call, suspcall, q->rsts, q->qsonrs, q->rstr, q->qsonrr, exc, q->locator, susploc, unkcall, qsop, *q->locator?qtf:"", new_, q->operator_, q->remark); if (index==sw->cur) fill_area(sw->x, sw->y+i-y0, sw->w, 1, COL_INV); if (strlen(c)>sw->ho) print_text(sw->x,sw->y+i-y0,sw->w,c+sw->ho, index==sw->cur? COL_INV : COL_NORM); g_free(c); } /*dbg("\n");*/ } void sw_qsos_check_bounds(struct subwin *sw){ int len; if (!aband) return; /*dbg("sw_qsos_check_bounds cur=%d, offset=%d ", sw->cur, sw->offset);*/ len = QSOS_LEN; if (sw->cur < 1 ) sw->cur = 1; if (sw->cur > len) sw->cur = len; if (sw->cur > len - sw->offset -1 ){ sw->offset = len - sw->cur; } if (sw->cur < len - sw->h + 1 - sw->offset){ sw->offset = len - sw->h - sw->cur + 1; } if (sw->offset < 0) sw->offset=0; /* dbg(" ---> cur=%d, offset=%d\n", sw->cur, sw->offset);*/ } /************************ FIFO *******************************/ /* only EV_KBD */ int sw_fifo_kbd_func(struct subwin *sw, struct event *ev, int fw){ /*dbg("sw_fifo_func [%d,%d,%d,%d]\n",ev->ev,ev->x,ev->y,ev->b);*/ /* if (sw->il && sw->il->wasctrlv && ev->x!='[' && ev->x!=']'){ dbg("xxx\n"); if (inputln_func(sw->il, ev)) return 1; } */ if (sw->il && ( sw->il->wasctrlv || (ev->x!='[' && ev->x!=']') )){ if (inputln_func(sw->il, ev)) return 1; } switch(kbd_action(KM_MAIN,ev)){ case ACT_ESC: return 0; break; case ACT_DOWN: sw->offset--; sw->check_bounds(sw); redraw_later(); return 1; case ACT_UP: sw->offset++; sw->check_bounds(sw); redraw_later(); return 1; case ACT_PAGE_DOWN: sw->offset -= sw->h - 1;; sw->check_bounds(sw); redraw_later(); return 1; case ACT_PAGE_UP: sw->offset += sw->h - 1;; sw->check_bounds(sw); redraw_later(); return 1; case ACT_HOME: sw->offset = fifo_len(sw->fifo) - sw->h; sw->check_bounds(sw); redraw_later(); return 1; case ACT_END: sw->offset = 0; sw->check_bounds(sw); redraw_later(); return 1; /* case ACT_SCROLL_LEFT: if (sw->fifo->ho>0) sw->fifo->ho--; redraw_later(); return 1; case ACT_SCROLL_RIGHT: sw->fifo->ho++; redraw_later(); return 1;*/ case ACT_SCROLL_LEFT: if (sw->fifo) if (sw->fifo->ho>0) sw->fifo->ho--; if (sw->lines) if (sw->ho>0) sw->ho--; redraw_later(); return 1; case ACT_SCROLL_RIGHT: if (sw->fifo) sw->fifo->ho++; if (sw->lines) sw->ho++; redraw_later(); } return 0; } int sw_fifo_mouse_func(struct subwin *sw, struct event *ev, int fw){ if ((ev->b & BM_ACT)!=B_DOWN) return 0; switch (ev->b & BM_EBUTT){ case B_LEFT: dbg("x il=%p\n",sw->il); if (!sw->il) break; /* dbg("y=%d sw->y=%d sw->hh=%d sw->h=%d\n", ev->y, sw->y, sw->hh, sw->h);*/ if (ev->y==sw->y+sw->h) inputln_func(sw->il, ev); return 1; case B_MIDDLE: dbg("middle\n"); break; case B_RIGHT: dbg("right\n"); break; case B_WHUP: dbg("wheel up\n"); sw->offset+=3; sw->check_bounds(sw); redraw_later(); return 1; case B_WHDOWN: dbg("wheel down\n"); sw->offset-=3; sw->check_bounds(sw); redraw_later(); return 1; } return 0; } void sw_fifo_redraw(struct subwin *sw, int flags){ int i, index; gchar *c, *suff; /*dbg("sw_log_redraw log->len=%d sw->h=%d sw->offset=%d \n", fifo_len(sw->fifo), sw->h, sw->offset);*/ for (i=0;ih; i++){ index = fifo_len(sw->fifo) - sw->offset - sw->h+i; if (index<0 || index>=fifo_len(sw->fifo)) c = "~"; else c = fifo_index(sw->fifo, index); if (c && strlen(c)>sw->fifo->ho) { print_text(sw->x, sw->y+i, sw->w, c+sw->fifo->ho, COL_NORM); if (!aband) continue; sw_highlight(c, sw->fifo->ho, ctest->pcall, COL_YELLOW); if (strlen(ctest->pcall)>=3){ suff=suffix(ctest->pcall); sw_highlight(c, sw->fifo->ho, suff, COL_YELLOW); } sw_highlight(c, sw->fifo->ho, aband->operator_, COL_YELLOW); if (strlen(aband->operator_)>=3){ suff=suffix(aband->operator_); sw_highlight(c, sw->fifo->ho, suff, COL_YELLOW); } } } } void sw_fifo_check_bounds(struct subwin *sw){ /*if (sw->offset < 0) sw->offset=0;*/ if (sw->offset > fifo_len(sw->fifo) - sw->h) { sw->offset = fifo_len(sw->fifo) - sw->h; } if (sw->offset < 0) sw->offset=0; } /********************** PIPE ****************************************/ /* Return: * 0 = not highlighted * 1 = highlighted, call not worked * 2 = highlighted, call worked */ int sw_line_is_highlighted(struct subwin *sw, gchar *c){ int i; for (i=0; ihigh->len; i++){ if (!regcmp(c, (char *)g_ptr_array_index(sw->high, i))){ return 1; } } return sw_pipe_hihglight(sw, c); } void sw_pipe_redraw(struct subwin *sw, int flags){ int i, index, col=COL_NORM; gchar *c, *to, *call, *suffcall, *operator_, *suffoperator; if (ctest){ call=ctest->pcall; operator_=aband->operator_; }else{ call=cfg->pcall; operator_=cfg->operator_; if (!operator_ || !*operator_) operator_=NULL; } if (strlen(call)>3){ suffcall=suffix(call); }else{ suffcall=NULL; } if (operator_ && strlen(operator_)>3){ suffoperator=suffix(operator_); }else{ suffoperator=NULL; } to=g_strconcat("to ", call, NULL); /* dbg("sw_pipe_redraw: offset=%d\n", sw->offset);*/ for (i=0;ih; i++){ index = sw->lines->len - sw->offset - sw->h +i; if (index<0 || index>=sw->lines->len) c = "~"; else c = (char *)g_ptr_array_index(sw->lines, index); if (c && strlen(c)>sw->ho){ switch (sw_line_is_highlighted(sw, c)){ case 0: col=COL_NORM; break; case 1: col=COL_YELLOW; break; case 2: col=COL_DARKYELLOW; break; } print_text(sw->x, sw->y+i, sw->w, c + sw->ho, col); sw_highlight(c, sw->ho, call, COL_RED); if (suffcall){ sw_highlight(c, sw->ho, suffcall, COL_RED); } if (operator_){ sw_highlight(c, sw->ho, operator_, COL_RED); if (suffoperator){ sw_highlight(c, sw->ho, suffoperator, COL_RED); } } sw_highlight(c, sw->ho, to, COL_RED); } } g_free(to); } void sw_pipe_check_bounds(struct subwin *sw){ if (sw->offset < 0) sw->offset=0; if (sw->offset > sw->lines->len - 1) { sw->offset = sw->lines->len - 1; } if (sw->offset < 0) sw->offset=0; } /*static time_t lastenter = 0;*/ void sw_pipe_enter(void *data, gchar *str, int cq){ struct subwin *sw; int towrite, written, ret; sw = (struct subwin*)data; /*dbg("sw_pipe_enter(%p,'%s')\n",data,str);*/ if (sw->write_fd == -1) return; towrite = strlen(str); /* dbg("towrite = %d\n", towrite); if (towrite>100) { internal("towrite>100"); } if (time(NULL) == lastenter){ internal("time() == lastenter"); }else{ lastenter = time(NULL); }*/ written = write(sw->write_fd, str, towrite); /*dbg(" towrite=%d written=%d (%d)\n", towrite, written, errno);*/ ret = write(sw->write_fd, "\n", 1); } #ifdef HAVE_PTY_H int sw_pty_run(struct subwin *sw, char *cmd){ int master,i; char errbuf[1024]; sw->pid = forkpty(&master, NULL, NULL, &sw->ws); if (sw->pid<0) return -1; if (sw->pid==0){ /* child */ setenv("TERM", "dumb", 1); for (i=3;i<1024;i++) close(i); /*execlp("/bin/sh", "/bin/sh", "-c", cmd, NULL);*/ #ifndef __CYGWIN__ execlp("/bin/sh", "-sh", NULL); #else execl("/cygdrive/c/tucnak/sh.exe", "-sh", NULL); #endif fprintf(stderr, "*** exec failed errno=%d %s\n", errno, strerror_r(errno, errbuf, sizeof(errbuf))); exit(-1); } else{ /* parent */ /*dbg("masted_fd is %d\n", master);*/ // dbg("subwin pid=%d\n", sw->pid); sw->write_fd = master; /* sdin of cmd */ sw->read_fd = master; /* stdout and stderr of cmd */ set_handlers(sw->read_fd, sw_pipe_read_handler, NULL, sw_pipe_exception_handler, (cba_t)sw); } return 0; } #endif int sw_pipe_run(struct subwin *sw, char *cmd){ int pipe1[2], pipe2[2]; int i; char errbuf[1024]; if (pipe(pipe1) < 0) return -1; if (pipe(pipe2) < 0) return -1; sw->pid = fork(); if (sw->pid<0) return -1; if (sw->pid==0){ /* child */ for (i=0; i<20; i++){ if (i==pipe1[0] || i==pipe2[1]) continue; close(i); } if (dup(pipe1[0]) < 0) exit(-1); if (dup(pipe2[1]) < 0) exit(-1); if (dup(pipe2[1]) < 0) exit(-1); closesocket(pipe1[0]); closesocket(pipe2[1]); for (i=3;i<1024;i++) close(i); #if defined(_MSC_VER) || defined(__MSC_VER) _execlp("sh", "sh", "-sh", NULL); #elif defined(__CYGWIN__) execl("/cygdrive/c/tucnak/sh.exe", "-sh", NULL); #else execlp("/bin/sh", "-sh", NULL); #endif fprintf(stderr, "*** exec failed errno=%d %s\n", errno, strerror_r(errno, errbuf, sizeof(errbuf))); exit(-1); } else{ /* parent */ dbg("subwin pid=%d\n", sw->pid); closesocket(pipe1[0]); closesocket(pipe2[1]); sw->write_fd = pipe1[1]; /* sdin of cmd */ sw->read_fd = pipe2[0]; /* stdout and stderr of cmd */ set_handlers(sw->read_fd, sw_pipe_read_handler, NULL, sw_pipe_exception_handler, (cba_t)sw); set_handlers(sw->write_fd, NULL, NULL, sw_pipe_exception_handler, (cba_t)sw); } return 0; } void sw_pipe_read_handler(cba_t cba){ struct subwin *sw; char buf[1030], *d; int ret,i; sw = (struct subwin*)GETCBA(cba, subwin); memset(buf, 0, sizeof(buf)); /*dbg("sw_pipe_read_handler\n");*/ ret = read(sw->read_fd, buf, 1024); /*dbg("read returns %d (%d) buf='%s' \n", ret, errno, buf);*/ if (ret<=0) { sw_add_block(sw, VTEXT(T_PROC_EXITED)); sw_pipe_kill(sw); return; } for (i=0,d=buf;iontop && !sw->unread) { sw->unread=1; redraw_later(); } } void sw_pipe_write_handler(cba_t cba){ struct subwin *sw; sw = (struct subwin*)GETCBA(cba, subwin); /*dbg("sw_pipe_write_handler\n");*/ } void sw_pipe_exception_handler(cba_t cba){ struct subwin *sw; sw = (struct subwin*)GETCBA(cba, subwin); /*dbg("sw_pipe_exception_handler\n");*/ sw_pipe_kill(sw); } void sw_pipe_kill(struct subwin *sw){ int sig; /*dbg("sw_pipe_kill\n");*/ #ifdef __CYGWIN__ sig=SIGKILL; #else sig=SIGTERM; #endif kill(sw->pid, sig); sw->pid = 0; closesocket(sw->read_fd); set_handlers(sw->read_fd, NULL, NULL, NULL, CBA0); if (sw->write_fd != sw->read_fd){ closesocket(sw->write_fd); set_handlers(sw->write_fd, NULL, NULL, NULL, CBA0); } sw->read_fd = -1; sw->write_fd = -1; } #define FREE_SW_CX if (c1) {mem_free(c1); c1=NULL;} if (c2) {mem_free(c2); c2=NULL;} void sw_toggle_highlight(struct subwin *sw, gchar *s){ int ret; char *c1,*c2; char *c, call[25], t[25]; gchar *key, *value; int bi; time_t kst_time = 0; char *text = NULL; dbg("sw_toggle_highlight(sw, '%s')\n", s); c=g_strdup(s); uc(c); /**** WWC via ON4KST ****/ /* 1808Z WWC: : jcs done today !! */ c1=NULL; c2=NULL; ret=regmatch(c, "^[0-9]{4}Z WWC: <\\**([0-9A-Z\\/]+)\\**>: ", &c1, &c2, NULL); if (ret==0){ safe_strncpy0(call, c2, 19); text = "@WWC via KST"; goto doit; } FREE_SW_CX; /**** ON4KST ****/ /* 1808Z OK1KRQ/P Club> GE all */ c1=NULL; c2=NULL; ret=regmatch(c, "^[0-9]{4}Z ([0-9A-Z\\/]+).*>", &c1, &c2, NULL); if (ret==0){ safe_strncpy0(call, c2, 19); kst_time = time(NULL); text = "@KST"; goto doit; } FREE_SW_CX; /**** WWC ****/ /* : allok ! */ c1=NULL; c2=NULL; ret=regmatch(c, "^<\\**([0-9A-Z\\/]+)\\**>: ", &c1, &c2, NULL); if (ret==0){ safe_strncpy0(call, c2, 19); text = "@WWC"; goto doit; } FREE_SW_CX; /**** DX cluster ****/ /* DX de PA4PS: 144145.0 K6MYC Tnx eme new# best-20 0841Z */ c1=NULL; c2=NULL; ret=regmatch(c, "^DX DE [0-9A-Z]+:..............([0-9A-Z\\/]+)", &c1, &c2, NULL); if (ret==0){ safe_strncpy0(call, c2, 19); text = "@DXC"; goto doit; } FREE_SW_CX; /**** DX cluster SH/DX ****/ /* 432160.0 OK1KIR 7-Oct-2007 0010Z PSE TURN TO JN 76 2320170.0 OK1KIR 7-Oct-2007 1338Z tnx qso 678km. 24048140.0 OK1KIR 6-Oct-2007 2148Z jo60pm-jo50vi 24048100.0 OK1KIR 6-Oct-2007 1314Z nice 59/59 in JO60LJ */ c1=NULL; c2=NULL; ret=regmatch(c, "^ *[0-9]+\\.[0-9] ([0-9A-Z\\/]+) ", &c1, &c2, NULL); if (ret==0){ safe_strncpy0(call, c2, 19); text = "DXC SH/DX"; goto doit; } FREE_SW_CX; /**** DX cluster login/logout ****/ /* User OM3TCG has logged in */ c1=NULL; c2=NULL; ret=regmatch(c, "^USER ([0-9A-Z\\/]+) HAS LOGGED ", &c1, &c2, NULL); if (ret==0){ safe_strncpy0(call, c2, 19); text = "DXC LOGIN/LOGOUT"; goto doit; } FREE_SW_CX; /**/ doit:; /* dbg("ret=%d c1='%s' c2='%s'\n", ret, c1, c2);*/ FREE_SW_CX; g_free(c); if (ret) return; get_raw_call(t, call); if (g_hash_table_lookup_extended(gses->hicalls, (gpointer)t, (gpointer)&key, (gpointer)&value)){ g_hash_table_remove(gses->hicalls, key); g_free(key); g_free(value); dbg("call='%s' removed\n", t); }else{ g_hash_table_insert(gses->hicalls, g_strdup(t), g_strdup("")); if (aband){ int wkd[32]; char *wwl = NULL; bi=lowcase(aband->bandchar)-'a'; wwl = find_wwl_by_call(cw, t); if (wwl == NULL) wwl = ""; memset(wkd, 0, sizeof(wkd)); qrv_add(t, wwl, (1<hicalls));*/ redraw_later(); } int sw_pipe_mouse_func(struct subwin *sw, struct event *ev, int fw){ int index; gchar *c; if ((ev->b & BM_ACT)!=B_DOWN) return 0; // dbg("ev->b=%x BM_ACT=%x B_DOWN=%x BM_EBUTT=%x \n", ev->b, BM_ACT, B_DOWN, BM_EBUTT); switch (ev->b & BM_EBUTT){ case B_LEFT: dbg("x il=%p\n",sw->il); if (!sw->il) break; /* dbg("y=%d y=%d hh=%d \n", ev->y, sw->y, sw->hh);*/ if (ev->y==sw->y+sw->hh){ inputln_func(sw->il, ev); return 1; } index = sw->lines->len - sw->offset - sw->h + (ev->y - sw->y); /* dbg("index=%d\n",index);*/ if (index<0 || index>=sw->lines->len) break; c = g_ptr_array_index(sw->lines, index); /* dbg("c='%s'\n", c);*/ sw_toggle_highlight(sw, c); return 1; case B_MIDDLE: /* dbg("middle\n");*/ break; case B_RIGHT: /* dbg("right\n");*/ break; case B_WHUP: /* dbg("wheel up\n");*/ sw->offset+=3; sw->check_bounds(sw); redraw_later(); return 1; case B_WHDOWN: /* dbg("wheel down\n"); */ sw->offset-=3; sw->check_bounds(sw); redraw_later(); return 1; } return 0; } static int sw_match; void sw_pipe_match(gpointer acall, gpointer nic, gpointer astr){ gchar *call=acall; gchar *str=astr; if (sw_match==2) return; /* speed up search, priority when two calls with 1 and 2 are on one line */ /*dbg(" match call='%s' str='%s'\n", call, str);*/ if (regcmpi(str, call)!=0) return; sw_match=1; if (!aband) return; if (get_qso_by_callsign(aband, call)==NULL) return; sw_match=2; } int sw_pipe_hihglight(struct subwin *sw, char *str){ sw_match=0; g_hash_table_foreach(gses->hicalls, sw_pipe_match, str); /* dbg("sw_match: %d\n", sw_match);*/ return sw_match; } /******************** TALK ************************/ void sw_talk_enter(void *enterdata, gchar *str, int cq){ struct subwin *sw; gchar *msg, *c, *pband, *operator_; /*dbg("sw_talk_enter(%p,'%s')\n",enterdata,str);*/ sw = (struct subwin *)enterdata; if (aband){ pband = g_strdup(aband->pband); c = strchr(pband, ' '); if (c) *c='\0'; operator_=aband->operator_; }else{ pband=""; operator_=cfg->pcall; } msg=g_strdup_printf("%6s@%-3s: %s", operator_, pband, str); c=g_strdup_printf("TA %s\n", msg); rel_write_all(c); g_free(c); /* fifo_addf(sw->fifo, " %s", str);*/ fifo_addf(sw->fifo,"%6s: %s", operator_, str); g_free(msg); } void sw_talk_read(gchar *data){ struct subwin *sw; int i, unread=0; /* dbg("sw_talk_read('%s')\n", data);*/ for (i=0; isubwins->len; i++){ sw = (struct subwin*)g_ptr_array_index(gses->subwins, i); if (sw->type == SWT_TALK){ fifo_adds(sw->fifo, data); log_adds(data); /* no sw_check_len ! */ if (sw->ontop) unread=1; if (!sw->ontop) sw->unread=1; } } if (unread) redraw_later(); return; } /******************* DX CLUSTER ****************************/ int sw_dxc_kbd_func(struct subwin *sw, struct event *ev, int fw){ int bi; if (!aband) return 0; bi=lowcase(aband->bandchar)-'a'; switch(kbd_action(KM_MAIN,ev)){ case ACT_ESC: return 0; break; case ACT_DOWN: /*if (spotdb->cur[bi] && spotdb->cur[bi]->next) spotdb->cur[bi] = spotdb->cur[bi]->next;*/ if (!spotdb->cur[bi]) break; while(spotdb->cur[bi]->next){ spotdb->cur[bi] = spotdb->cur[bi]->next; if (get_qso_by_callsign(aband, spotdb->cur[bi]->callsign) == NULL) break; } redraw_later(); return 1; case ACT_UP: /*if (spotdb->cur[bi] && spotdb->cur[bi]->prev) spotdb->cur[bi] = spotdb->cur[bi]->prev;*/ if (!spotdb->cur[bi]) break; while(spotdb->cur[bi]->prev){ spotdb->cur[bi] = spotdb->cur[bi]->prev; if (get_qso_by_callsign(aband, spotdb->cur[bi]->callsign) == NULL) break; } redraw_later(); return 1; case ACT_PAGE_DOWN: dxc_seek(spotdb, sw->h-1); redraw_later(); return 1; case ACT_PAGE_UP: dxc_seek(spotdb, -(sw->h-1)); redraw_later(); return 1; case ACT_HOME: spotdb->cur[bi] = spotdb->first[bi]; redraw_later(); return 1; case ACT_END: dxc_seek(spotdb, 0); /* seek to end */ redraw_later(); return 1; case ACT_SCROLL_LEFT: if (sw->ho>0) sw->ho--; redraw_later(); return 1; case ACT_SCROLL_RIGHT: sw->ho++; redraw_later(); return 1; case ACT_ENTER: sw_unset_focus(); il_set_focus(aband->il); if (spotdb->cur[bi]){ clear_tmpqsos(aband,1); process_input(aband, spotdb->cur[bi]->callsign, 0); redraw_later(); #ifdef HAVE_HAMLIB if (trig){ trig_set_qrg(trig, spotdb->cur[bi]->qrg*1000.0); } #endif } return 1; default: if (ev->x==' ') { if (spotdb->cur[bi]){ clear_tmpqsos(aband,1); process_input(aband, spotdb->cur[bi]->callsign, 0); redraw_later(); } } } return 0; } int sw_dxc_mouse_func(struct subwin *sw, struct event *ev, int fw){ return 0; } void sw_dxc_draw_spot(struct subwin *sw, int i, struct spot *spot,int color){ gchar *c; char callsign[30]; if (!spot) c = g_strdup("~"); else{ safe_strncpy0(callsign, spot->callsign, 20); if (aband && get_qso_by_callsign(aband, spot->callsign)){ lc(callsign); }else{ uc(callsign); } c = g_strdup_printf("%04dZ %10.1f %-12s %-8s %s", spot->zulu, spot->qrg, callsign, spot->from, spot->text); if (color==COL_NORM && time(NULL) < spot->endbold) color|=0x4000; } if (c && strlen(c)>sw->ho){ print_text(sw->x, sw->y+i, sw->w, c + sw->ho, color); } g_free(c); } void sw_dxc_redraw(struct subwin *sw, int flags){ int i,bi; struct spot *spot; if (!aband) return; bi=lowcase(aband->bandchar)-'a'; fill_area(sw->x, sw->y+sw->h/2, sw->w, 1, COL_INV); sw_dxc_draw_spot(sw, sw->h/2, spotdb->cur[bi], COL_INV); if (spotdb->cur[bi]) spot=spotdb->cur[bi]->prev; else spot=NULL; for (i=sw->h/2-1;i>=0; i--){ if (!spot) break; if (get_qso_by_callsign(aband, spot->callsign)!=NULL) i++; else sw_dxc_draw_spot(sw, i, spot, COL_NORM); spot=spot->prev; } if (spotdb->cur[bi]) spot=spotdb->cur[bi]->next; else spot=NULL; for (i=sw->h/2+1;ih; i++){ if (!spot) break; if (get_qso_by_callsign(aband, spot->callsign)!=NULL) i--; else sw_dxc_draw_spot(sw, i, spot, COL_NORM); spot=spot->next; } } void sw_dxc_check_bounds(struct subwin *sw){ if (!aband) return; /* sw->fifo = aband->unfi; sw_fifo_check_bounds(sw);*/ } /******************* UNFINISHED ****************************/ int sw_unfi_kbd_func(struct subwin *sw, struct event *ev, int fw){ if (!aband) return 0; sw->fifo = aband->unfi; return sw_fifo_kbd_func(sw, ev, fw); } int sw_unfi_mouse_func(struct subwin *sw, struct event *ev, int fw){ if (!aband) return 0; sw->fifo = aband->unfi; return sw_fifo_mouse_func(sw, ev, fw); } void sw_unfi_redraw(struct subwin *sw, int flags){ if (!aband) return; sw->fifo = aband->unfi; sw_fifo_redraw(sw, flags); } void sw_unfi_check_bounds(struct subwin *sw){ if (!aband) return; sw->fifo = aband->unfi; sw_fifo_check_bounds(sw); } /******************* STATICTICS ****************************/ int sw_stat_kbd_func(struct subwin *sw, struct event *ev, int fw){ if (!aband) return 0; sw->fifo = aband->statsfifo1; return sw_fifo_kbd_func(sw, ev, fw); } int sw_stat_mouse_func(struct subwin *sw, struct event *ev, int fw){ if (!aband) return 0; sw->fifo = aband->statsfifo1; return sw_fifo_mouse_func(sw, ev, fw); } void sw_stat_redraw(struct subwin *sw, int flags){ if (!aband) return; sw->fifo = aband->statsfifo1; sw_fifo_redraw(sw, flags); } void sw_stat_check_bounds(struct subwin *sw){ if (!aband) return; sw->fifo = aband->statsfifo1; sw_fifo_check_bounds(sw); } void sw_stat_raise(struct subwin *sw){ /*dbg("sw_stat_raise\n"); */ if (!aband) return; recalc_statsfifo(aband); } tucnak2-2.48/src/kbd.c0000644000175000017500000006076511567373656011473 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #define OUT_BUF_SIZE 16384 #define IN_BUF_SIZE 16 #define USE_TWIN_MOUSE 1 #define TW_BUTT_LEFT 1 #define TW_BUTT_MIDDLE 2 #define TW_BUTT_RIGHT 4 struct itrm { int std_in; int std_out; int sock_in; int sock_out; int ctl_in; int blocked; struct termios t; int flags; char kqueue[IN_BUF_SIZE]; int qlen; int tm; char *ev_queue; int eqlen; void *mouse_h; char *orig_title; }; void free_trm(cba_t); void in_kbd(cba_t); void in_sock(cba_t); static struct itrm *ditrm = NULL; int is_blocked(void) { return ditrm && ditrm->blocked; } void free_all_itrms(void) { if (ditrm) free_trm((cba_t)ditrm); } static void write_ev_queue(struct itrm *itrm) { int l; if (!itrm->eqlen) internal_("event queue empty"); if ((l = write(itrm->sock_out, itrm->ev_queue, itrm->eqlen > 128 ? 128 : itrm->eqlen)) == -1) { free_trm((cba_t)itrm); return; } #ifdef HAVE_SDL if (sdl){ MUTEX_LOCK(sdl->eventpipestate); sdl->eventpipestate+=l; /* dbg("u %d\n", sdl->eventpipestate);*/ MUTEX_UNLOCK(sdl->eventpipestate); } #endif memmove(itrm->ev_queue, itrm->ev_queue + l, itrm->eqlen -= l); if (!itrm->eqlen) set_handlers(itrm->sock_out, get_handler(itrm->sock_out, H_READ), NULL, get_handler(itrm->sock_out, H_ERROR), (cba_t)(void*)get_handler(itrm->sock_out, H_DATA)); } static void queue_event(struct itrm *itrm, char *data, int len) { int w = 0; if (!len) return; if (!itrm->eqlen && can_write(itrm->sock_out)){ #if defined(_MSC_VER) || defined(__MINGW32__) w = send(itrm->sock_out, data, len, 0); #else w = write(itrm->sock_out, data, len); #endif if (w <= 0) { /*free_trm(itrm);*/ register_bottom_half((void (*)(cba_t))free_trm, (cba_t)itrm); return; } } #ifdef HAVE_SDL if (sdl){ MUTEX_LOCK(sdl->eventpipestate); sdl->eventpipestate+=w; /* dbg("q %d\n", sdl->eventpipestate); */ MUTEX_UNLOCK(sdl->eventpipestate); } #endif if (w < len) { char *c; if (!(c = mem_realloc(itrm->ev_queue, itrm->eqlen + len - w))) { free_trm((cba_t)itrm); return; } itrm->ev_queue = c; memcpy(itrm->ev_queue + itrm->eqlen, data + w, len - w); itrm->eqlen += len - w; set_handlers(itrm->sock_out, (void (*)(cba_t))get_handler(itrm->sock_out, H_READ), (void (*)(cba_t))write_ev_queue, (void (*)(cba_t))free_trm, (cba_t)itrm); } } void kbd_ctrl_c(void) { /*struct event ev = { EV_KBD, KBD_CTRL_C, 0, 0 };*/ struct event ev = { EV_KBD, 'C', KBD_CTRL, 0 }; if (ditrm) queue_event(ditrm, (char *)&ev, sizeof(struct event)); } /* char *init_seq = "\033[?1000h\033[?47h\0337"; char *term_seq = "\033[2J\033[?1000l\033[?47l\0338\b \b"; */ static char *init_seq = "\033)0\0337"; static char *init_seq_x_mouse = "\033[?1000h"; static char *init_seq_tw_mouse = "\033[?9h"; static char *term_seq = "\033[2J\0338\r \b"; static char *term_seq_x_mouse = "\033[?1000l"; static char *term_seq_tw_mouse = "\033[?9l"; /*char *term_seq = "\033[2J\033[?1000l\0338\b \b";*/ static void send_init_sequence(int h,int flags) { hard_write(h, init_seq, strlen(init_seq)); if (flags & USE_TWIN_MOUSE) { hard_write(h, init_seq_tw_mouse, strlen(init_seq_tw_mouse)); } else { hard_write(h, init_seq_x_mouse, strlen(init_seq_x_mouse)); } } static void send_term_sequence(int h,int flags) { hard_write(h, term_seq, strlen(term_seq)); if (flags & USE_TWIN_MOUSE) { hard_write(h, term_seq_tw_mouse, strlen(term_seq_tw_mouse)); } else { hard_write(h, term_seq_x_mouse, strlen(term_seq_x_mouse)); } } void resize_terminal(cba_t cba) { struct event ev = { EV_RESIZE, 0, 0, 0 }; int x, y; #ifdef HAVE_SDL if (sdl){ if (sdl_get_terminal_size(ditrm->std_out, &x, &y)) return; } else #endif { if (term_get_terminal_size(ditrm->std_out, &x, &y)) return; } ev.x = x; ev.y = y; queue_event(ditrm, (char *)&ev, sizeof(struct event)); } static int setraw(int fd, struct termios *p) { struct termios t; memset(&t, 0, sizeof(struct termios)); if (tcgetattr(fd, &t)) return -1; if (p) memcpy(p, &t, sizeof(struct termios)); cfmakeraw(&t); t.c_lflag |= ISIG; #ifdef TOSTOP t.c_lflag |= TOSTOP; #endif t.c_oflag |= OPOST; if (tcsetattr(fd, TCSANOW, &t)) return -1; return 0; } void handle_trm(int std_in, int std_out, int sock_in, int sock_out, int ctl_in) { int x, y; struct itrm *itrm; struct event ev = { EV_INIT, 80, 24, 0 }; char *ts; int xwin, ret; #ifdef HAVE_SDL if (sdl){ ret=sdl_get_terminal_size(ctl_in, &x, &y); } else #endif { ret=term_get_terminal_size(ctl_in, &x, &y); } if (ret){ error("ERROR: could not get terminal size"); return; } if (!(itrm = mem_alloc(sizeof(struct itrm)))) return; ditrm = itrm; itrm->std_in = std_in; itrm->std_out = std_out; itrm->sock_in = sock_in; itrm->sock_out = sock_out; itrm->ctl_in = ctl_in; itrm->blocked = 0; itrm->qlen = 0; itrm->tm = -1; itrm->ev_queue = DUMMY; itrm->eqlen = 0; if (ctl_in >= 0) { setraw(ctl_in, &itrm->t); set_handlers(std_in, in_kbd, NULL, free_trm, (cba_t)itrm); } if (sock_in != std_out) set_handlers(sock_in, in_sock, NULL, free_trm, (cba_t)itrm); ev.x = x; ev.y = y; handle_terminal_resize(ctl_in, resize_terminal); queue_event(itrm, (char *)&ev, sizeof(struct event)); xwin = is_xterm() * ENV_XWIN + can_twterm() * ENV_TWIN + (!!getenv("STY")) * ENV_SCREEN + get_system_env(); itrm->flags = 0; if (!(ts = getenv("TERM"))) ts = ""; if ((xwin & ENV_TWIN) && !strcmp(ts,"linux")) itrm->flags |= USE_TWIN_MOUSE; #ifdef HAVE_SDL if (!sdl){ itrm->mouse_h = handle_mouse(0, (void (*)(void *, char *, int))queue_event, itrm); } else #endif { itrm->mouse_h = NULL; } itrm->orig_title = get_window_title(); if (std_out>=0){ save_screen(); send_init_sequence(std_out,itrm->flags); } set_window_title(PACKAGE_NAME " " PACKAGE_VERSION); } void unblock_itrm_x(cba_t cba) { close_handle(cba); if (!ditrm) return; unblock_itrm(0); resize_terminal(CBA0); } int unblock_itrm(int fd) { struct itrm *itrm = ditrm; if (!itrm) return -1; /*if (ditrm->sock_out != fd) { internal_("unblock_itrm: bad fd: %d", fd); return -1; }*/ if (itrm->ctl_in >= 0 && setraw(itrm->ctl_in, NULL)) return -1; itrm->blocked = 0; send_init_sequence(itrm->std_out,itrm->flags); set_handlers(itrm->std_in, in_kbd, NULL, free_trm, (cba_t)itrm); handle_terminal_resize(itrm->ctl_in, resize_terminal); unblock_stdin(); return 0; } void block_itrm(int fd) { struct itrm *itrm = ditrm; if (!itrm) return; /*if (ditrm->sock_out != fd) { internal_("block_itrm: bad fd: %d", fd); return; }*/ itrm->blocked = 1; block_stdin(); unhandle_terminal_resize(itrm->ctl_in); send_term_sequence(itrm->std_out,itrm->flags); tcsetattr(itrm->ctl_in, TCSANOW, &itrm->t); set_handlers(itrm->std_in, NULL, NULL, free_trm, (cba_t)itrm); } void free_trm(cba_t cba) { struct itrm *itrm; itrm=(struct itrm*)GETCBA(cba, itrm); if (!itrm) return; set_window_title(itrm->orig_title); if (itrm->orig_title) mem_free(itrm->orig_title), itrm->orig_title = NULL; unhandle_terminal_resize(itrm->ctl_in); if (itrm->std_out>=0) send_term_sequence(itrm->std_out,itrm->flags); tcsetattr(itrm->ctl_in, TCSANOW, &itrm->t); if (itrm->std_out>=0) restore_screen(); if (itrm->mouse_h) unhandle_mouse(itrm->mouse_h); if (itrm->std_in>=0) set_handlers(itrm->std_in, NULL, NULL, NULL, CBA0); if (itrm->sock_in>=0) set_handlers(itrm->sock_in, NULL, NULL, NULL, CBA0); if (itrm->std_out>=0) set_handlers(itrm->std_out, NULL, NULL, NULL, CBA0); if (itrm->sock_out>=0) set_handlers(itrm->sock_out, NULL, NULL, NULL, CBA0); if (itrm->tm != -1) kill_timer(itrm->tm); mem_free(itrm->ev_queue); mem_free(itrm); if (itrm == ditrm) ditrm = NULL; itrm=NULL; } void itrm_safe_abort(void){ struct itrm *itrm = ditrm; if (!itrm) return; tcsetattr(itrm->ctl_in, TCSANOW, &itrm->t); } static void resize_terminal_x(char *text) { int x, y; char *p; if (!(p = strchr(text, ','))) return; *p++ = 0; x = atoi(text); y = atoi(p); resize_window(x, y); resize_terminal(CBA0); } void dispatch_special(char *text) { switch (text[0]) { case TERM_FN_TITLE: set_window_title(text + 1); break; case TERM_FN_RESIZE: resize_terminal_x(text + 1); break; } } static char buf[OUT_BUF_SIZE]; /*#define RD ({ char cc; if (p < c) cc = buf[p++]; else if ((dl = hard_read(itrm->sock_in, &cc, 1)) <= 0) {debug("%d %d", dl, errno);goto fr;} cc; })*/ /*udefine RD ({ char cc; if (p < c) cc = buf[p++]; else if ((hard_read(itrm->sock_in, &cc, 1)) <= 0) goto fr; cc; })*/ #define RD(xx) { char cc; if (p < c) cc = buf[p++]; else if ((hard_read(itrm->sock_in, &cc, 1)) <= 0) goto fr; xx = cc; } void in_sock(cba_t cba) { char *path, *delete; int pl, dl; char ch; int fg; int c, i, p; struct itrm *itrm; itrm=(struct itrm *)GETCBA(cba, itrm); if ((c = read(itrm->sock_in, buf, OUT_BUF_SIZE)) <= 0) { fr: free_trm((cba_t)itrm); return; } qwerty: for (i = 0; i < c; i++) if (!buf[i]) goto ex; if (!is_blocked()) { want_draw(); hard_write(itrm->std_out, buf, c); done_draw(); } return; ex: if (!is_blocked()) { want_draw(); hard_write(itrm->std_out, buf, i); done_draw(); } i++; memmove(buf, buf + i, OUT_BUF_SIZE - i); c -= i; p = 0; /*fg = RD;*/ RD(fg); path = init_str(); delete = init_str(); pl = dl = 0; while (1) { RD(ch); if (!ch) break; add_chr_to_str(&path, &pl, ch); } while (1) { RD(ch); if (!ch) break; add_chr_to_str(&delete, &dl, ch); } if (!*path) { dispatch_special(delete); } else { int blockh; char *param; if (is_blocked() && fg) { if (*delete) unlink(delete); goto to_je_ale_hnus; } if (!(param = mem_alloc(strlen(path) + strlen(delete) + 3))) goto to_je_ale_hnus; param[0] = fg; strcpy(param + 1, path); strcpy(param + 1 + strlen(path) + 1, delete); if (fg == 1) block_itrm(itrm->ctl_in); if ((blockh = start_thread((void (*)(void *, int))exec_thread, param, strlen(path) + strlen(delete) + 3)) == -1) { if (fg == 1) unblock_itrm(itrm->ctl_in); mem_free(param); goto to_je_ale_hnus; } mem_free(param); if (fg == 1) { set_handlers(blockh, unblock_itrm_x, NULL, unblock_itrm_x, (cba_t)blockh); /*block_itrm(itrm->ctl_in);*/ } else { set_handlers(blockh, close_handle, NULL, close_handle, (cba_t)blockh); } } to_je_ale_hnus: mem_free(path); mem_free(delete); memmove(buf, buf + p, OUT_BUF_SIZE - p); c -= p; goto qwerty; } int process_queue(struct itrm *); static void kbd_timeout(struct itrm *itrm) { struct event ev = {EV_KBD, KBD_ESC, 0, 0}; itrm->tm = -1; /*if (can_read(itrm->std_in)) { in_kbd(itrm); return; }*/ if (!itrm->qlen) { internal_("timeout on empty queue"); return; } queue_event(itrm, (char *)&ev, sizeof(struct event)); if (--itrm->qlen) memmove(itrm->kqueue, itrm->kqueue+1, itrm->qlen); while (process_queue(itrm)) ; } static int get_esc_code(char *str, int len, char *code, int *num, int *el) { int pos; *num = 0; for (pos = 2; pos < len; pos++) { if (str[pos] < '0' || str[pos] > '9' || pos > 7) { *el = pos + 1; *code = str[pos]; return 0; } *num = *num * 10 + str[pos] - '0'; } return -1; } struct key { int x, y; }; static struct key os2xtd[256] = { /* 0 */ {0,0},{0,0},{' ',KBD_CTRL},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{KBD_BS,KBD_ALT},{0,0}, /* 16 */ {'Q',KBD_ALT},{'W',KBD_ALT},{'E',KBD_ALT},{'R',KBD_ALT},{'T',KBD_ALT},{'Y',KBD_ALT},{'U',KBD_ALT},{'I',KBD_ALT}, /* 24 */ {'O',KBD_ALT},{'P',KBD_ALT},{'[',KBD_ALT},{']',KBD_ALT},{KBD_ENTER,KBD_ALT},{0,0},{'A',KBD_ALT},{'S',KBD_ALT}, /* 32 */ {'D',KBD_ALT},{'F',KBD_ALT},{'G',KBD_ALT},{'H',KBD_ALT},{'J',KBD_ALT},{'K',KBD_ALT},{'L',KBD_ALT},{';',KBD_ALT}, /* 40 */ {'\'',KBD_ALT},{'`',KBD_ALT},{0,0},{'\\',KBD_ALT},{'Z',KBD_ALT},{'X',KBD_ALT},{'C',KBD_ALT},{'V',KBD_ALT}, /* 48 */ {'B',KBD_ALT},{'N',KBD_ALT},{'M',KBD_ALT},{',',KBD_ALT},{'.',KBD_ALT},{'/',KBD_ALT},{0,0},{'*',KBD_ALT}, /* 56 */ {0,0},{' ',KBD_ALT},{0,0},{KBD_F1,0},{KBD_F2,0},{KBD_F3,0},{KBD_F4,0},{KBD_F5,0}, /* 64 */ {KBD_F6,0},{KBD_F7,0},{KBD_F8,0},{KBD_F9,0},{KBD_F10,0},{0,0},{0,0},{KBD_HOME,0}, /* 72 */ {KBD_UP,0},{KBD_PGUP,0},{'-',KBD_ALT},{KBD_LEFT,0},{'5',0},{KBD_RIGHT,0},{'+',KBD_ALT},{KBD_END,0}, /* 80 */ {KBD_DOWN,0},{KBD_PGDN,0},{KBD_INS,0},{KBD_DEL,0},{0,0},{0,0},{0,0},{0,0}, /* 88 */ {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{KBD_F1,KBD_CTRL},{KBD_F2,KBD_CTRL}, /* 96 */ {KBD_F3,KBD_CTRL},{KBD_F4,KBD_CTRL},{KBD_F5,KBD_CTRL},{KBD_F6,KBD_CTRL},{KBD_F7,KBD_CTRL},{KBD_F8,KBD_CTRL},{KBD_F9,KBD_CTRL},{KBD_F10,KBD_CTRL}, /* 104 */ {KBD_F1,KBD_ALT},{KBD_F2,KBD_ALT},{KBD_F3,KBD_ALT},{KBD_F4,KBD_ALT},{KBD_F5,KBD_ALT},{KBD_F6,KBD_ALT},{KBD_F7,KBD_ALT},{KBD_F8,KBD_ALT}, /* 112 */ {KBD_F9,KBD_ALT},{KBD_F10,KBD_ALT},{0,0},{KBD_LEFT,KBD_CTRL},{KBD_RIGHT,KBD_CTRL},{KBD_END,KBD_CTRL},{KBD_PGDN,KBD_CTRL},{KBD_HOME,KBD_CTRL}, /* 120 */ {'1',KBD_ALT},{'2',KBD_ALT},{'3',KBD_ALT},{'4',KBD_ALT},{'5',KBD_ALT},{'6',KBD_ALT},{'7',KBD_ALT},{'8',KBD_ALT}, /* 128 */ {'9',KBD_ALT},{'0',KBD_ALT},{'-',KBD_ALT},{'=',KBD_ALT},{KBD_PGUP,KBD_CTRL},{KBD_F11,0},{KBD_F12,0},{0,0}, /* 136 */ {0,0},{KBD_F11,KBD_CTRL},{KBD_F12,KBD_CTRL},{KBD_F11,KBD_ALT},{KBD_F12,KBD_ALT},{KBD_UP,KBD_CTRL},{'-',KBD_CTRL},{'5',KBD_CTRL}, /* 144 */ {'+',KBD_CTRL},{KBD_DOWN,KBD_CTRL},{KBD_INS,KBD_CTRL},{KBD_DEL,KBD_CTRL},{KBD_TAB,KBD_CTRL},{0,0},{0,0},{KBD_HOME,KBD_ALT}, /* 152 */ {KBD_UP,KBD_ALT},{KBD_PGUP,KBD_ALT},{0,0},{KBD_LEFT,KBD_ALT},{0,0},{KBD_RIGHT,KBD_ALT},{0,0},{KBD_END,KBD_ALT}, /* 160 */ {KBD_DOWN,KBD_ALT},{KBD_PGDN,KBD_ALT},{KBD_INS,KBD_ALT},{KBD_DEL,KBD_ALT},{0,0},{KBD_TAB,KBD_ALT},{KBD_ENTER,KBD_ALT},{0,0}, /* 168 */ {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* 176 */ {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* 192 */ {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* 208 */ {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* 224 */ {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* 240 */ {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* 256 */ }; static int xterm_button = -1; int process_queue(struct itrm *itrm) { struct event ev = {EV_KBD, -1, 0, 0}; int el = 0; if (!itrm->qlen) goto end; if (itrm->kqueue[0] == '\033') { if (itrm->qlen < 2) goto ret; if (itrm->kqueue[1] == '[' || itrm->kqueue[1] == 'O') { char c; int v; if (get_esc_code(itrm->kqueue, itrm->qlen, &c, &v, &el)) { if (itrm->qlen < 4 || itrm->kqueue[2] != '[') goto ret; if (itrm->kqueue[2] != '[') goto ret; if (itrm->kqueue[3] < 'A' || itrm->kqueue[3] > 'L') goto ret; ev.x = KBD_F1 + itrm->kqueue[3] - 'A'; el = 4; } else switch (c) { case 'A': ev.x = KBD_UP; break; case 'B': ev.x = KBD_DOWN; break; case 'C': ev.x = KBD_RIGHT; break; case 'D': ev.x = KBD_LEFT; break; case 'F': case 'e': ev.x = KBD_END; break; case 'H': case 0: ev.x = KBD_HOME; break; case 'I': ev.x = KBD_PGUP; break; case 'G': ev.x = KBD_PGDN; break; /* BSD cons25 */ /* case 'M': ev.x = KBD_F1; break;*/ case 'N': ev.x = KBD_F2; break; case 'O': ev.x = KBD_F3; break; /* case 'P': ev.x = KBD_F4; break;*/ /* case 'Q': ev.x = KBD_F5; break;*/ /* case 'R': ev.x = KBD_F6; break;*/ /* case 'S': ev.x = KBD_F7; break;*/ case 'T': ev.x = KBD_F8; break; case 'U': ev.x = KBD_F9; break; case 'V': ev.x = KBD_F10; break; case 'W': ev.x = KBD_F11; break; case 'X': ev.x = KBD_F12; break; case 'z': switch (v) { case 247: ev.x = KBD_INS; break; case 214: ev.x = KBD_HOME; break; case 220: ev.x = KBD_END; break; case 216: ev.x = KBD_PGUP; break; case 222: ev.x = KBD_PGDN; break; case 249: ev.x = KBD_DEL; break; } break; case '~': switch (v) { case 1: ev.x = KBD_HOME; break; case 2: ev.x = KBD_INS; break; case 3: ev.x = KBD_DEL; break; case 4: ev.x = KBD_END; break; case 5: ev.x = KBD_PGUP; break; case 6: ev.x = KBD_PGDN; break; case 7: ev.x = KBD_HOME; break; case 8: ev.x = KBD_END; break; case 11: ev.x = KBD_F1; break; case 12: ev.x = KBD_F2; break; case 13: ev.x = KBD_F3; break; case 14: ev.x = KBD_F4; break; case 15: ev.x = KBD_F5; break; case 17: ev.x = KBD_F6; break; case 18: ev.x = KBD_F7; break; case 19: ev.x = KBD_F8; break; case 20: ev.x = KBD_F9; break; case 21: ev.x = KBD_F10; break; case 23: ev.x = KBD_F11; break; case 24: ev.x = KBD_F12; break; } break; /* case 'R': resize_terminal (); break ;*/ case 'M': if (itrm->qlen - el < 3) goto ret; if (v == 5) { if (xterm_button == -1) xterm_button = 0; /* */ if (itrm->qlen - el < 5) goto ret; ev.x = (char)(itrm->kqueue[el+1]) - ' ' - 1 + ((int)((char)(itrm->kqueue[el+2]) - ' ' - 1) << 7); if ( ev.x & (1 << 13)) ev.x = 0; /* ev.x |= ~0 << 14; */ ev.y = (char)(itrm->kqueue[el+3]) - ' ' - 1 + ((int)((char)(itrm->kqueue[el+4]) - ' ' - 1) << 7); if ( ev.y & (1 << 13)) ev.y = 0; /* ev.y |= ~0 << 14; */ //dbg("process_queue: %d\n", itrm->kqueue[el]); switch ((itrm->kqueue[el] - ' ') ^ xterm_button) { /* Every event changhes only one bit */ case TW_BUTT_LEFT: ev.b = B_LEFT | ( (xterm_button & TW_BUTT_LEFT) ? B_UP : B_DOWN ); break; case TW_BUTT_MIDDLE: ev.b = B_MIDDLE | ( (xterm_button & TW_BUTT_MIDDLE) ? B_UP : B_DOWN ); break; case TW_BUTT_RIGHT: ev.b = B_RIGHT | ( (xterm_button & TW_BUTT_RIGHT) ? B_UP : B_DOWN ); break; case 0: ev.b = B_DRAG; /* default : Twin protocol error */ } xterm_button = itrm->kqueue[el] - ' '; el += 5; } else { // dbg("process_queue: %d\n", itrm->kqueue[el]-' '); ev.x = itrm->kqueue[el+1] - ' ' - 1; ev.y = itrm->kqueue[el+2] - ' ' - 1; ev.b = B_DOWN; if (itrm->kqueue[el] & 4) ev.b = B_DRAG; ev.b |= (itrm->kqueue[el] & BM_BUTT) | B_DOWN; if (itrm->kqueue[el] & 64) ev.b |= 4; if (ev.b == 3) { ev.b = B_UP; if (xterm_button != -1) ev.b |= xterm_button; } /*if ((itrm->kqueue[el] & 4) && ev.b != B_UP) ev.b |= B_DRAG;*/ xterm_button = -1; if ((ev.b & BM_ACT) == B_DOWN) xterm_button = ev.b & BM_BUTT; el += 3; } ev.ev = EV_MOUSE; break; case 'P': ev.x = KBD_F1; break; case 'Q': ev.x = KBD_F2; break; case 'R': ev.x = KBD_F3; break; case 'S': ev.x = KBD_F4; break; case '[': if (itrm->qlen>=4){ el=4; switch(itrm->kqueue[3]){ case 'A': ev.x = KBD_F1; goto upbrk; case 'B': ev.x = KBD_F2; goto upbrk; case 'C': ev.x = KBD_F3; goto upbrk; case 'D': ev.x = KBD_F4; goto upbrk; case 'E': ev.x = KBD_F5; goto upbrk; } } upbrk: break; } } else { el = 2; if (itrm->kqueue[1] >= ' ') { ev.x = itrm->kqueue[1]; ev.y = KBD_ALT; goto l2; } if (itrm->kqueue[1] == '\033') { if (itrm->qlen >= 3 && (itrm->kqueue[2] == '[' || itrm->kqueue[2] == 'O')) el = 1; ev.x = KBD_ESC; goto l2; } } goto l1; } else if (itrm->kqueue[0] == 0) { if (itrm->qlen < 2) goto ret; if (!(ev.x = os2xtd[(unsigned int)itrm->kqueue[1]].x)) ev.x = -1; ev.y = os2xtd[(unsigned int)itrm->kqueue[1]].y; el = 2; /*printf("%02x - %02x %02x\n", (int)itrm->kqueue[1], ev.x, ev.y);*/ goto l1; } el = 1; ev.x = itrm->kqueue[0]; l2: /*if (ev.x == 1) ev.x = KBD_HOME; if (ev.x == 2) ev.x = KBD_PGUP; if (ev.x == 4) ev.x = KBD_DEL; if (ev.x == 5) ev.x = KBD_END; if (ev.x == 6) ev.x = KBD_PGDN;*/ if (ev.x == 8) ev.x = KBD_BS; if (ev.x == 9) ev.x = KBD_TAB; if (ev.x == 10) ev.x = KBD_ENTER, ev.y = KBD_CTRL; if (ev.x == 13) ev.x = KBD_ENTER; if (ev.x == 127) ev.x = KBD_BS; if (ev.x < ' ') { ev.x += 'A' - 1; ev.y = KBD_CTRL; } l1: if (itrm->qlen < el) { internal_("event queue underflow"); itrm->qlen = el; } if (ev.x != -1) { queue_event(itrm, (char *)&ev, sizeof(struct event)); memmove(itrm->kqueue, itrm->kqueue + el, itrm->qlen -= el); } else { /*printf("%d %d\n", itrm->qlen, el);fflush(stdout);*/ memmove(itrm->kqueue, itrm->kqueue + el, itrm->qlen -= el); } end: if (itrm->qlen < IN_BUF_SIZE) set_handlers(itrm->std_in, in_kbd, NULL, free_trm, (cba_t)itrm); return el; ret: itrm->tm = install_timer(ESC_TIMEOUT, (void (*)(cba_t))kbd_timeout, (cba_t)itrm); return 0; } void in_kbd(cba_t cba) { int r; struct itrm *itrm; itrm=(struct itrm *)GETCBA(cba, itrm); if (itrm->tm != -1) kill_timer(itrm->tm), itrm->tm = -1; if (itrm->qlen >= IN_BUF_SIZE) { set_handlers(itrm->std_in, NULL, NULL, free_trm, (cba_t)itrm); while (process_queue(itrm)); return; } if ((r = read(itrm->std_in, itrm->kqueue + itrm->qlen, IN_BUF_SIZE - itrm->qlen)) <= 0) { free_trm((cba_t)itrm); return; } if ((itrm->qlen += r) > IN_BUF_SIZE) { error("ERROR: too many bytes read"); itrm->qlen = IN_BUF_SIZE; } while (process_queue(itrm)); } tucnak2-2.48/src/inputln.c0000644000175000017500000004014511601434611012364 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #define FREE_Cx if (c1) {mem_free(c1); c1=NULL;}\ if (c2) {mem_free(c2); c2=NULL;}\ if (c3) {mem_free(c3); c3=NULL;} void draw_inputln(struct inputln *il, int sel){ /*dbg("draw_inputln (%d,%d)\n",il->x,il->y);*/ if (il->vpos + il->l <= il->cpos) il->vpos = il->cpos - il->l + 1; if (il->vpos > il->cpos) il->vpos = il->cpos; if (il->vpos < 0) il->vpos = 0; fill_area(il->x, il->y, il->l, 1, COL_INV); print_text(il->x, il->y, strlen(il->cdata + il->vpos) <= il->l ? strlen(il->cdata + il->vpos) : il->l, il->cdata + il->vpos, COL_INV); if (il->focused) { /* dbg("draw_inputln: set_cursor %d %d \n", il->x + il->cpos - il->vpos, il->y);*/ set_cursor(il->x + il->cpos - il->vpos, il->y, il->x + il->cpos - il->vpos, il->y); } } void clear_inputline(struct inputln *il){ //if (il->band && il->band->readonly) return; il->cpos = 0; memset(il->cdata,0,il->dlen); } static void il_hist_check_bounds(struct inputln *il){ if (il->hist_i < -1 ) il->hist_i = -1; if ((signed)il->hist_i >= (signed)il->history->len) il->hist_i = il->history->len - 1; } static void il_add_to_history(struct inputln *il){ if (strlen(il->cdata)==0) return; g_ptr_array_add(il->history, g_strdup(il->cdata)); if (il->history->len == IL_HIST_LEN){ gpointer p; p = g_ptr_array_index(il->history, 0); g_free(p); g_ptr_array_remove_index(il->history, 0); } } static struct inputln *gil; void il_history_func (cba_t cba, cba_t unused){ int active; struct inputln *il; active=(int)GETCBA(cba, int_); il=gil; if (active<0 || active>il->history->len) return; strncpy(il->cdata, (char *)g_ptr_array_index(il->history, active), il->dlen); il->cpos = strlen(il->cdata); redraw_later(); } /* vraci 0 v pripade neobslouzeno */ int inputln_func(struct inputln *il, struct event *ev){ static char callkst[EQSO_LEN]; int i; struct menu_item *mi; //dbg("inputln_func(%p,[%d,%d,%d,%d])\n",il,ev->ev,ev->x,ev->y,ev->b); switch (ev->ev) { case EV_INIT: /* dbg("inputln_func EV_INIT\n");*/ il->x = 20; il->y = term->y - cfg->loglines - 1; if (il->band) il->y -= ctest->spypeers->len; il->l = 40; il->dlen = 256; if (!il->cdata) il->cdata=(char*)mem_alloc(il->dlen); memset(il->cdata,0,il->dlen); il->cpos = strlen(il->cdata); il->term = term; il->history = g_ptr_array_new(); il->hist_i = -1; il_readonly(il, il->readonly); draw_inputln(il,1);/*FIXME*/ break; case EV_RESIZE: if (il->sw){ il->x = il->sw->x; il->y = il->sw->y + il->sw->h; il->l = il->sw->w; }else{ il->x = 20; il->y = term->y - cfg->loglines - 1; if (il->band) il->y -= ctest->spypeers->len; } /*dbg("inputln_func RESIZE %p term->y=%d il->x=%d il->y=%d il->band=%p\n", il, term->y, il->x, il->y, il->band);*/ case EV_REDRAW: /* unreached for inputline in subwin */ /* dbg("inputln_func EV_REDRAW\n");*/ draw_inputln(il,1);/*FIXME*/ break; case EV_KBD: if ((ev->y & KBD_CTRL) && upcase(ev->x) == 'V' && il->allow_ctrlv){ if (il->readonly) break; il->wasctrlv=1; goto dsp_f; }else{ if (il->wasctrlv){ il->wasctrlv=0; if (il->readonly) break; /* dbg("ctrl+%c\n", ev->x); */ if (strlen(il->cdata) < il->dlen - 1) { memmove(il->cdata + il->cpos + 1, il->cdata + il->cpos, strlen(il->cdata) - il->cpos + 1); if (ev->x=='[' || ev->x==']') il->cdata[il->cpos++] = ev->x; else il->cdata[il->cpos++] = tolower(ev->x)-'a'+1; } goto dsp_f; } } switch (kbd_action(KM_EDIT, ev)) { case ACT_RIGHT: if (il->readonly) break; if (il->cpos < strlen(il->cdata)) il->cpos++; goto dsp_f; case ACT_LEFT: if (il->readonly) break; if (il->cpos > 0) il->cpos--; goto dsp_f; case ACT_HOME: if (il->readonly) break; il->cpos = 0; goto dsp_f; case ACT_END: if (il->readonly) break; il->cpos = strlen(il->cdata); goto dsp_f; case ACT_BACKSPACE: if (il->readonly) break; if (il->cpos) { memmove(il->cdata + il->cpos - 1, il->cdata + il->cpos, strlen(il->cdata) - il->cpos + 1); il->cpos--; // if (aband) dbg("inputln_func: call_played='%s'\n", aband->call_played); if (il->band && il->band->tmpqsos[0].callsign == NULL && il->band->call_played == NULL && cwda && cwda->back && cfg->cwda_autgive > 0 && get_mode() == MOD_CW_CW){ cwda->back(cwda); } } goto dsp_f; case ACT_DELETE: if (il->readonly) break; if (il->cpos < strlen(il->cdata)) memmove(il->cdata + il->cpos, il->cdata + il->cpos + 1, strlen(il->cdata) - il->cpos + 1); goto dsp_f; case ACT_KILL_LINE: if (il->readonly) break; clear_inputline(il); goto dsp_f; case ACT_KILL_TO_BOL: if (il->readonly) break; memmove(il->cdata, il->cdata + il->cpos, strlen(il->cdata + il->cpos) + 1); il->cpos = 0; goto dsp_f; /* case ACT_KILL_TO_EOL: if (il->readonly) break; il->cdata[il->cpos] = 0; goto dsp_f; break;*/ case ACT_NEWCALL_KST: if (il->band) break; // only for subwin inputline if (il->readonly) break; strcpy(callkst, ""); input_field(NULL, CTEXT(T_CALLSIGN3), CTEXT(T_CALLSIGN_KST) , CTEXT(T_OK), CTEXT(T_CANCEL), il, NULL, 20, callkst, 0, 0, NULL, (void (*)(void *, char *)) newkst, NULL, 0); goto dsp_f; break; case ACT_LASTCALL_KST: case ACT_KILL_TO_EOL: if (il->readonly) break; il->cdata[il->cpos] = 0; dbg("\ni=%d len=%d\n", il->hist_i, il->history->len); if (il->band) break; if (il->hist_i==-1 && strlen(il->cdata)>0){ il_add_to_history(il); il->hist_i++; } for (il->hist_i++; (signed)il->hist_i < (signed)il->history->len; il->hist_i++){ char *c, *c1=NULL, *c2=NULL, *c3=NULL; c = (char *)g_ptr_array_index(il->history, il->history->len - il->hist_i - 1); if (!c) continue; /* probably unreached */ dbg("regmatch('%s')\n", c); if (regmatch(c, "^/[cC][qQ] ([a-zA-Z0-9/-]{3,14})", &c1, &c2, &c3, NULL)==0){ char s[20]; dbg("c1=%s c2=%s c3=%s\n", c1, c2, c3); safe_strncpy(s, c2, sizeof(s)); uc(s); g_snprintf(il->cdata, il->dlen, "/cq %s ", s); FREE_Cx; break; } FREE_Cx; } il->cpos = strlen(il->cdata); goto dsp_f; break; case ACT_PREV_HISTORY: if (il->readonly) break; if (il->hist_i==-1 && strlen(il->cdata)>0){ il_add_to_history(il); il->hist_i++; } il->hist_i++; il_hist_check_bounds(il); if (il->hist_i>=0) strncpy(il->cdata, (char *)g_ptr_array_index(il->history, il->history->len - il->hist_i - 1), il->dlen); else strcpy(il->cdata, ""); /* FIXME */ il->cpos = strlen(il->cdata); goto dsp_f; break; case ACT_NEXT_HISTORY: if (il->readonly) break; il->hist_i--; il_hist_check_bounds(il); if (il->hist_i>=0) strncpy(il->cdata, (char *)g_ptr_array_index(il->history, il->history->len - il->hist_i - 1), il->dlen); else strcpy(il->cdata, ""); /* FIXME */ il->cpos = strlen(il->cdata); goto dsp_f; break; case ACT_SHOW_HISTORY:{ if (il->readonly) break; gil=il; if (il->history->len==0) break; if (!(mi = new_menu(1))) break; for (i = 0; i < il->history->len; i++) { cba_t cba2; SETCBA(cba2, int_, i); add_to_menu(&mi, (char *)g_ptr_array_index(il->history, i), "", "", il_history_func, cba2, 0); } set_window_ptr(gses->win,il->x,il->y-2-i); do_menu_selected(mi, (cba_t)0, il->history->len-1); }goto dsp_f; case ACT_COPY_CLIPBOARD: if (il->readonly) break; /* Copy to clipboard */ set_clipboard_text(il->cdata); break; /* We don't need to redraw */ case ACT_CUT_CLIPBOARD: if (il->readonly) break; /* Cut to clipboard */ set_clipboard_text(il->cdata); il->cdata[0] = 0; il->cpos = 0; goto dsp_f; case ACT_PASTE_CLIPBOARD: { if (il->readonly) break; /* Paste from clipboard */ /* unsigned char * clipboard = get_clipboard_text(); strncpy(il->cdata , clipboard, il->item->dlen); il->cdata[il->item->dlen - 1] = 0; il->cpos = strlen(il->cdata); mem_free(clipboard);*/ goto dsp_f; } default: if (cfg->slashkey && *cfg->slashkey){ if (ev->x == '/') ev->x = *cfg->slashkey; else if (ev->x == *cfg->slashkey) ev->x = '/'; } if (ev->x >= ' ' && ev->x < 0x100 && !ev->y) { char c; if (il->readonly) break; if (strlen(il->cdata) < il->dlen - 1) { memmove(il->cdata + il->cpos + 1, il->cdata + il->cpos, strlen(il->cdata) - il->cpos + 1); c = ev->x; if (il->upconvert) c = upcase(c); if (!il->valid_chars || strchr(il->valid_chars, c)!=NULL){ il->cdata[il->cpos++] = c; il->cdata[il->dlen-1] = '\0'; // if (il->band) dbg("inputln_func2: call_played='%s' agcall='%d'\n", il->band->call_played, il->band->agcall); if (il->band && il->band->tmpqsos[0].callsign == NULL && il->band->call_played == NULL && cwda && cwda->text && cfg->cwda_autgive > 0 && get_mode() == MOD_CW_CW){ if (il->cpos == cfg->cwda_autgive){ cwda->text(cwda, il->cdata); il->band->agcall = 1; il->band->iscall = 1; // dbg("inputln_func2: agcall='%d' iscall='%d'\n", il->band->agcall, il->band->iscall); } if (il->cpos > cfg->cwda_autgive){ char sss[2]; sss[0]=c; sss[1]='\0'; cwda->text(cwda, sss); } } } } goto dsp_f; } goto gh; dsp_f: draw_inputln(il,1); return 1; } gh: if (ev->x == KBD_ENTER) { if (il->readonly) return 1; if (!il->enter) return 1; /*dbg("inputln_func: KBD_ENTER '%s' \n",il->cdata);*/ il_add_to_history(il); il->hist_i=-1; il->enter(il->enterdata, il->cdata, 1); clear_inputline(il); draw_inputln(il,1); return 1; } break; case EV_MOUSE: if (ev->b & B_MOVE) break; if (ev->y != il->y || ev->x < il->x || ev->x >= il->x + il->l) return 0; if ((il->cpos = il->vpos + ev->x - il->x) > strlen(il->cdata)) il->cpos = strlen(il->cdata); draw_inputln(il,1); break; case EV_ABORT: if (il->cdata) mem_free(il->cdata); g_ptr_array_free_all(il->history); break; } return 0; } void il_set_focus(struct inputln *il){ if (!il) return; /* subwins having no inputline */ il->focused=1; } void il_unset_focus(struct inputln *il){ if (!il) return; il->focused=0; } void il_readonly(struct inputln *il, int ro){ il->readonly=ro; if (il->readonly) strncpy(il->cdata , VTEXT(T__RO_BAND), il->dlen); else strncpy(il->cdata , "", il->dlen); } void newkst(struct inputln *il, char *callkst){ if (!il || !callkst) return; uc(callkst); //g_snprintf(il->cdata, il->dlen, "/cq %s (%s) ", callkst, callkst); g_snprintf(il->cdata, il->dlen, "/cq %s ", callkst); // new format since abt. jun 2011 il->cpos = strlen(il->cdata); } tucnak2-2.48/src/namedb.c0000644000175000017500000000604711567373656012152 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" struct namedb *namedb; struct namedb *init_namedb(){ struct namedb *namedb; namedb = g_new0(struct namedb, 1); namedb->names = g_hash_table_new(g_str_hash, g_str_equal); return namedb; } gboolean free_names_item(gpointer key, gpointer value, gpointer user_data){ g_free(key); g_free(value); return 0; } void free_namedb(struct namedb *namedb){ g_hash_table_foreach_remove(namedb->names, free_names_item, NULL); g_hash_table_destroy(namedb->names); g_free(namedb); } gint get_namedb_size(struct namedb *namedb){ return g_hash_table_size(namedb->names); } #define NAMEDB_DELIM " \t\r\n" void load_one_namedb(struct namedb *namedb, gchar *s){ gchar *call, *name; char *token_ptr; call = strtok_r(s, NAMEDB_DELIM, &token_ptr); if (!call) return; name = strtok_r(NULL, NAMEDB_DELIM, &token_ptr); if (!name) return; if (strlen(call)==0 || strlen(name)==0) return; add_namedb(namedb, call, name); } int load_namedb_from_file(struct namedb *namedb, gchar *filename){ FILE *f; char s[102]; /*dbg("load_namedb_from_file(%s)\n", filename);*/ f = fopen(filename, "rt"); if (!f){ /*dbg("Can't open '%s'\n", filename);*/ return -1; } while((fgets(s, 100, f))!=NULL){ load_one_namedb(namedb,s); } fclose(f); return 0; } void read_namedb_files(struct namedb *namedb){ gchar *s; #ifdef UNIX load_namedb_from_file(namedb, SHAREDIR"/tucnaknames"); #endif s = g_strconcat(getenv("HOME"), "/tucnak/tucnaknames", NULL); load_namedb_from_file(namedb, s); g_free(s); } int namedb_ret; void save_one_name(gpointer key, gpointer value, gpointer user_data){ FILE *f; gchar *call, *name; int ret; f = (FILE *) user_data; call = (gchar *) key; name = (gchar *) value; ret=fprintf(f, "%s %s\n", call, name); if (ret<=0) namedb_ret++; } int save_namedb_into_file(struct namedb *namedb, gchar *filename){ FILE *f; f = fopen(filename, "wt"); if (!f) { return errno; } namedb_ret=0; g_hash_table_foreach(namedb->names, save_one_name, (gpointer) f); fclose(f); return namedb_ret; } void add_namedb(struct namedb *namedb, gchar *call, gchar *name){ gchar *namedbi; /*dbg("add %s=%s\n", call, name);*/ namedbi = g_hash_table_lookup(namedb->names, call); if (!namedbi){ g_hash_table_insert(namedb->names, g_strdup(call), g_strdup(name)); } } gchar *find_name_by_call(struct namedb *namedb, gchar *call){ gchar *namedbi; char rawcall[120]; get_raw_call(rawcall, call); namedbi = (gchar *) g_hash_table_lookup(namedb->names, rawcall); if (!namedbi) return NULL; return namedbi; } tucnak2-2.48/src/mingw.h0000644000175000017500000000767711567373656012064 00000000000000/* mingw.h - mingw32 specific functions Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifdef __MINGW2 #ifndef __MINGW2_H #define __MINGW2_H #undef stdout #define stdout mingw_stderr #undef stderr #define stderr mingw_stderr extern FILE *mingw_stderr; #endif #endif #ifndef __TUCNAK_MINGW_H #define __TUCNAK_MINGW_H #include #include #include "regex_.h" #define tmkdir(dir, mode) mkdir(dir) #define SO4 (char *) #define __attribute__(attr) typedef int socklen_t; typedef int speed_t; struct tm; time_t timegm(struct tm *tm); int init_mingw(void); #define timegm mkgmtime /* termios */ #define B50 0000001 #define B75 0000002 #define B110 0000003 #define B134 0000004 #define B150 0000005 #define B200 0000006 #define B300 0000007 #define B600 0000010 #define B1200 0000011 #define B1800 0000012 #define B2400 0000013 #define B4800 0000014 #define B9600 0000015 #define B19200 0000016 #define B38400 0000017 #define IGNBRK 0000001 #define BRKINT 0000002 #define IGNPAR 0000004 #define PARMRK 0000010 #define INPCK 0000020 #define ISTRIP 0000040 #define INLCR 0000100 #define IGNCR 0000200 #define ICRNL 0000400 #define IXON 0002000 #define OPOST 0000001 #define ISIG 0000001 #define ICANON 0000002 #define ECHO 0000010 #define ECHOE 0000020 #define ECHONL 0000100 #define IEXTEN 0100000 #define CSIZE 0000060 #define CS8 0000060 #define CSTOPB 0000100 #define CREAD 0000200 #define PARENB 0000400 #define PARODD 0001000 #define CLOCAL 0004000 #define TCSANOW 0 #define INPCK 0000020 #define CRTSCTS 020000000000 #define VTIME 5 #define VMIN 6 #define WNOHANG 1 #define TCIFLUSH 0 #define NCCS 32 struct termios{ int c_iflag, c_oflag, c_cflag, c_lflag; char c_cc[NCCS]; }; /* file */ #define O_RDONLY 00 #define O_WRONLY 01 #define O_RDWR 02 #define O_CREAT 0100 #define O_EXCL 0200 #define O_NOCTTY 0400 #define O_SYNC 010000 //char *wokna(char *file); //int open(const char *pathname, int flags); //int close(int fd); //int read(int fd, void *buf, int count); //int write(int fd, const void *buf, int count); //int pipe(int *fds); //int fsync(int fd); //int lockf(int fd, int cmd, off_t len); //int ftruncate(int fd, off_t length); //int tcgetattr(int fd, struct termios *termios_p); //int tcsetattr(int fd, int optional_actions, const struct termios *termios_p); //int tcflush(int fd, int queue_selector); //int cfsetispeed(struct termios *termios_p, speed_t speed); //int cfsetospeed(struct termios *termios_p, speed_t speed); //void cfmakeraw(struct termios *termios_p); //int _dup(int fd); //int _dup2(int oldfd, int newfd); /* ioctl */ #define TIOCM_DTR 0x002 #define TIOCM_RTS 0x004 #define TIOCGWINSZ 0x5413 #define TIOCSWINSZ 0x5414 #define TIOCMBIS 0x5416 #define TIOCMBIC 0x5417 #define TIOCLINUX 0x541C int ioctl(int d, int request, ...); /* fcntl */ #define F_SETFL 4 #define O_NONBLOCK 04000 int fcntl(int fd, int cmd, long arg); /* signal */ #define SIGHUP 1 #define SIGPIPE 13 #define SIGCHLD 17 typedef struct siginfo_t { int dommy; }siginfo_t; typedef int sigset_t; struct sigaction { void (*sa_handler)(int); void (*sa_sigaction)(int, siginfo_t *, void *); sigset_t sa_mask; int sa_flags; void (*sa_restorer)(void); }; int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); int sigfillset(sigset_t *set); /* socket */ #define sock_errno WSAGetLastError() char *sock_strerror_r(int err, char *errstr, int size); /* misc */ char *strtok_r(char *str, const char *delim, char **saveptr); #endif tucnak2-2.48/src/session.c0000644000175000017500000025433211716421006012364 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" int session_id = 1; struct session *create_session(struct window *win) { /* struct terminal *term = win->term;*/ struct session *ses; struct subwin *sw; struct config_subwin *csw; int i, setontop = 0; /* dbg("create_session()\n");*/ if ((ses = (struct session*) mem_alloc(sizeof(struct session)))) { /* dbg("create_session allocated %p\n", ses);*/ memset(ses, 0, sizeof(struct session)); ses->win = win; ses->id = session_id++; gses = ses; /**/ /*memcpy(&ses->ds, &dds, sizeof(struct document_setup));*/ ctest=NULL; ses->subwins = g_ptr_array_new(); if (cfg->sws->len){ for (i=0;isws->len;i++){ csw=(struct config_subwin *)g_ptr_array_index(cfg->sws, i); switch(csw->type){ case SWT_QSOS: sw = new_subwin(SWT_QSOS, VTEXT(T_SW_QSOS), NULL); break; case SWT_LOG: sw = new_subwin(SWT_LOG, VTEXT(T_SW_LOG), NULL); break; case SWT_TALK: sw = new_subwin(SWT_TALK, VTEXT(T_SW_TALK), NULL); break; case SWT_DXC: sw = new_subwin(SWT_DXC, VTEXT(T_SW_DXC), NULL); break; case SWT_SKED: sw = new_subwin(SWT_SKED, VTEXT(T_SW_SKED), NULL); break; case SWT_SWAP: break; case SWT_UNFI: sw = new_subwin(SWT_UNFI, VTEXT(T_SW_UNFI), NULL); break; case SWT_STAT: sw = new_subwin(SWT_STAT, VTEXT(T_SW_STAT), NULL); break; case SWT_PIPE: sw = new_subwin(SWT_PIPE, VTEXT(T_SW_SHELL), sw_pipe_enter); break; case SWT_KST3: sw = new_subwin(SWT_KST3, VTEXT(T_SW_SHELL), sw_pipe_enter); break; case SWT_MAP: sw = new_subwin(SWT_MAP, VTEXT(T_SW_MAP), NULL); break; case SWT_SCOPE: sw = new_subwin(SWT_SCOPE, VTEXT(T_SW_SCOPE), NULL); break; case SWT_QRV: sw = new_subwin(SWT_QRV, VTEXT(T_SW_QRV), NULL); break; case SWT_HF: sw = new_subwin(SWT_HF, VTEXT(T_SW_HF), NULL); break; case SWT_PLAYER: sw = new_subwin(SWT_PLAYER, VTEXT(T_SW_PLAYER), NULL); break; case SWT_CHART: sw = new_subwin(SWT_CHART, VTEXT(T_SW_CHART), NULL); break; default: log_addf("invalid window type in tucnakrc (%d)\n", csw->type); break; } } }else{ /* default values when no subwins are defined in tucnakrc */ sw = new_subwin(SWT_QSOS, VTEXT(T_SW_QSOS), NULL); sw = new_subwin(SWT_SKED, VTEXT(T_SW_SKED), NULL); sw = new_subwin(SWT_TALK, VTEXT(T_SW_TALK), NULL); sw = new_subwin(SWT_DXC, VTEXT(T_SW_DXC), NULL); sw = new_subwin(SWT_UNFI, VTEXT(T_SW_UNFI), NULL); sw = new_subwin(SWT_STAT, VTEXT(T_SW_STAT), NULL); sw = new_subwin(SWT_PIPE, VTEXT(T_SW_SHELL), sw_pipe_enter); sw = new_subwin(SWT_PIPE, VTEXT(T_SW_SHELL), sw_pipe_enter); sw = new_subwin(SWT_PIPE, VTEXT(T_SW_SHELL), sw_pipe_enter); sw = new_subwin(SWT_LOG, VTEXT(T_SW_LOG), NULL); } setontop = 1; } /*if (first_use) { first_use = 0; msg_box(NULL, VTEXT(T_WELCOME), AL_CENTER | AL_EXTD_TEXT, VTEXT(T_WELCOME_TO_TUCNAK), "\n\n", VTEXT(T_BASIC_HELP), NULL, NULL, 1, VTEXT(T_OK), NULL, B_ENTER | B_ESC); }*/ if (strlen(cfg->pcall)==0 || strlen(cfg->pwwlo)==0){ register_bottom_half(contest_def, CBA0); first_contest_def=1; } ses->il = g_new0(struct inputln,1); ses->il->upconvert = 1; ses->il->valid_chars = VALID_CHARS; gses->qs = g_ptr_array_new(); gses->qs_mutex = g_mutex_new(); gses->hicalls=g_hash_table_new(g_str_hash, g_str_equal); if (setontop){ sw_set_ontop(0, 1); sw_set_ontop(0, 0); } return ses; } void win_func(struct window *win, struct event *ev, int fw) { /* if (ev->ev==EV_KBD) dbg("\n");*/ /**** dbg("win_func [%d,%d,%d,%d]\n",ev->ev,ev->x,ev->y,ev->b);*/ switch (ev->ev) { case EV_ABORT: sw_all_func(ev,fw); free_ctest(); if (gses->timer_id) kill_timer(gses->timer_id); #ifdef FALL if (gses->fall_id) kill_timer(gses->fall_id); #endif free_subwins(); inputln_func(gses->il, ev); g_free(gses->il); qs_thread_kill(); g_ptr_array_free_all(gses->qs); g_mutex_free(gses->qs_mutex); CONDGFREE(gses->qs_str); free_hash(gses->hicalls); if (gses->redraw_timer_id) kill_timer(gses->redraw_timer_id); #ifdef HAVE_SDL if (gses->update_rotar_timer_id) kill_timer(gses->update_rotar_timer_id); #endif if (gses->skedw_timer_id > 0) { kill_timer(gses->skedw_timer_id); gses->skedw_timer_id = 0; } // g_free(gses->ac_cq->cw_str); NO! it is "foreign key" g_free(gses->ac_cq); /*mem_free(gses); no, freeed in delete_window */ gses=NULL; break; case EV_INIT: win->data = gses = create_session(win); if (ctest && aband) inputln_func(aband->il,ev); else inputln_func(gses->il, ev); il_set_focus(INPUTLN(aband)); gses->timer_id = install_timer(1, time_func, CBA0); #ifdef FALL gses->fall_id = install_timer(1000, fall_func, CBA0); #endif gses->mode = MOD_SSB_SSB; gses->ac_cq = g_new0(struct cq, 1); gses->skedw_timer_id = 0; case EV_RESIZE: /* dbg("win_func: EV_RESIZE %dx%d\n", term->x, term->y);*/ fifo_resize(glog, 1, term->y-cfg->loglines, term->x-2, cfg->loglines); /* draw_root_window();*/ if (ctest) { int i; for (i=0;ibands->len;i++) { struct band *b; b=(struct band*)g_ptr_array_index(ctest->bands,i); inputln_func(b->il,ev); /*b->il->band=b;*/ } } inputln_func(gses->il, ev); gses->y1 = QSONR_HEIGHT; gses->y2 = QSONR_HEIGHT; gses->height1 = term->y - QSONR_HEIGHT - 4 - cfg->loglines; if (aband) gses->height1 -= ctest->spypeers->len; if (cfg->splitheight > 0){ gses->height2 = cfg->splitheight; gses->height1 -= gses->height2 + 1; gses->y1 += gses->height2 + 1; } sw_all_func(ev, fw); redraw_later(); break; case EV_REDRAW: if (!gses) return; /* dbg("win_func: EV_REDRAW\n");*/ draw_root_window(); inputln_func(INPUTLN(aband),ev); if (show_qs()){ sw_qs_redraw(); }else{ sw_ontop_func(ev, fw); } /*if (ctest && aband) { inputln_func(aband->il,ev); if (show_qs()){ sw_qs_redraw(); }else{ sw_ontop_func(ev, fw); } }else{ inputln_func(gses->il, ev); sw_ontop_func(ev, fw); } */ if (cfg->splitheight > 0){ draw_titles(QSONR_HEIGHT - 1, 1); draw_titles(gses->y1 - 1, 0); }else{ draw_titles(QSONR_HEIGHT - 1, 0); } break; case EV_KBD: send_event(ev); break; case EV_MOUSE: send_event(ev); break; default: error("ERROR: unknown event"); } } void rxtx(void){ // if (gses->win->prev->handler==cwwindow_func) return; //probably not working gses->tx=!gses->tx; if (gses->tx && can_tx(aband)){ cq_abort(1); if (get_mode() == MOD_CW_CW){ cwdaemon_ptt(cwda, 1, 1); }else{ cwdaemon_ptt(cwda, 1, 0); } if (get_mode() == MOD_CW_CW){ add_window(cwwindow_func, NULL); } peer_tx(aband, 1); }else{ rx(); } redraw_later(); } void esc(void){ /*if (!ctest || !aband) return;*/ if (gses->focused){ /* look at sw_dxc_kbd_func, ACT_ENTER */ sw_unset_focus(); il_set_focus(INPUTLN(aband)); }else{ rx(); } redraw_later(); } void rx(void){ gses->tx=0; gses->tune=0; gses->extcq=EC_NONE; cq_abort(0); cwdaemon_ptt(cwda, 0, 0); peer_tx(aband, 0); } /* for global events such as keying */ int preferred_func(struct event *ev){ switch (kbd_action(KM_MAIN, ev)) { case ACT_RXTX: dbg("tab\n"); if (gses->win->prev->handler == cwwindow_func){ dbg("Tab and cwwindow\n"); return 1; } rxtx(); return 0; break; #if defined (HAVE_SDL) && defined(HAVE_LIBPNG) case ACT_SCREENSHOT: sdl_screenshot(0); break; case ACT_WINDOWSHOT: sdl_screenshot(1); break; #endif } return 1; } gpointer delay_func(gpointer data){ sleep(2); return NULL; } static void compute_qrv_wkd(char *c){ char *qrv_str; struct qrv_item *qi; if (!aband) return; CONDGFREE(aband->qrv_str); qrv_str=find_qrv_str_by_call(cw, c); if (qrv_str){ aband->qrv_str = g_strdup(qrv_str); } CONDGFREE(aband->wkd_str); qi = qrv_get(qrvdb, c); if (qi){ aband->wkd_str = g_strdup_printf("wkd %dx", qi->wkd[tolower(aband->bandchar) - 'a']); } } void send_event(struct event *ev) { struct qso *qso; gchar *c; //har *qrv_str; int i; char *oldtmpqcall = NULL; //struct qrv_item *qi; /*dbg("send_event ev=%d, x=%d, y=%d, b=%d\n",ev->ev,ev->x,ev->y ,ev->b);*/ if (ev->ev == EV_KBD) { if (gses->ontop && gses->focused){ if (sw_focus_func(ev,1)) return; }else{ switch (kbd_action(KM_MAIN, ev)) { case ACT_SCROLL_LEFT: if (glog->ho>0) glog->ho--; redraw_later(); goto x; case ACT_SCROLL_RIGHT: if (glog->ho<70) glog->ho++; redraw_later(); goto x; default: if (!inputln_func(INPUTLN(aband), ev)) break; /*dbg("inputln_func\n");*/ if (ev->x!=KBD_LEFT && ev->x!=KBD_RIGHT && ev->x!=KBD_HOME && ev->x!=KBD_END){ char *qsstr; if (aband){ qsstr=strrchr(aband->il->cdata, ' '); if (!qsstr) qsstr=aband->il->cdata; else qsstr++; }else{ qsstr=strrchr(gses->il->cdata, ' '); if (!qsstr) qsstr=gses->il->cdata; else qsstr++; } if (aband){ get_band_qs(aband, qsstr); get_oband_qs(aband, qsstr); } get_cw_qs(qsstr); get_hf_dxc(qsstr); send_inputline(aband); redraw_later(); } return; } } // dbg("send_event2 %d,%d,%d,%d\n",ev->ev,ev->x,ev->y ,ev->b); switch (kbd_action(KM_MAIN, ev)) { case ACT_MENU: activate_bfu_technology(-1); goto x; case ACT_FILE_MENU: activate_bfu_technology(0); goto x; case ACT_REALLYQUIT: exit_prog((cba_t)1); goto x; case ACT_QUIT: exit_prog((cba_t)(ev->x == KBD_CTRL_C)); goto x; case ACT_NEXT_SUBWIN: /* dbg("send_event: next subwin\n");*/ sw_totop_next(1, 0); if (gses->focused){ sw_set_focus(); il_unset_focus(INPUTLN(aband)); }else{ sw_unset_focus(); il_set_focus(INPUTLN(aband)); } redraw_later(); goto x; case ACT_PREV_SUBWIN: /* dbg("send_event: next subwin\n");*/ sw_totop_next(-1, 0); if (gses->focused){ sw_set_focus(); il_unset_focus(INPUTLN(aband)); }else{ sw_unset_focus(); il_set_focus(INPUTLN(aband)); } redraw_later(); goto x; case ACT_UP: /* dbg("send_event: focus\n");*/ /* if (!ctest || !aband) goto x; */ if (gses->ontop->type!=SWT_QSOS || (aband && aband->qsos->len)){ /*dbg("focusing...\n"); */ il_unset_focus(INPUTLN(aband)); sw_set_focus(); redraw_later(); } goto x; case ACT_ESC: case ACT_RX: /*dbg("send_event: esc\n");*/ esc(); goto x; case ACT_RXTX: preferred_func(ev); break; case ACT_MODE: gses->tx = 0; /*cwdaemon_abort(cwda);*/ cq_abort(0); peer_tx(aband, 0); if (get_mode() == MOD_CW_CW) { set_mode(MOD_SSB_SSB); if (!ctest){ default_rst_to_tmpqsos(aband); redraw_later(); break; } if (strcmp(cfg->default_rst, TMPQ.rsts)==0){ default_rst_to_tmpqsos(aband); }else{ CONDGFREE(aband->tmpqsos[1].rsts); aband->tmpqsos[1].rsts=g_strdup("SSB"); } redraw_later(); break; } if (get_mode() == MOD_SSB_SSB){ set_mode(MOD_CW_CW); if (!ctest){ default_rst_to_tmpqsos(aband); redraw_later(); break; } if (strcmp(cfg->default_rs, TMPQ.rsts)==0){ default_rst_to_tmpqsos(aband); }else{ CONDGFREE(aband->tmpqsos[1].rsts); aband->tmpqsos[1].rsts=g_strdup("CW"); } redraw_later(); break; } case ACT_CQ_0: if (can_cq(aband)) cq_run_by_number(0); break; case ACT_CQ_1: if (can_cq(aband)) cq_run_by_number(1); break; case ACT_CQ_2: if (can_cq(aband)) cq_run_by_number(2); break; case ACT_CQ_3: if (can_cq(aband)) cq_run_by_number(3); break; case ACT_CQ_4: if (can_cq(aband)) cq_run_by_number(4); break; case ACT_CQ_5: if (can_cq(aband)) cq_run_by_number(5); break; case ACT_PAGE_UP: cwdaemon_qrq(cwda, 2); redraw_later(); break; case ACT_PAGE_DOWN: cwdaemon_qrs(cwda, 2); redraw_later(); break; case ACT_CLEAR_TMPQSOS: /* dbg("clear_tmpqsos\n");*/ if (!ctest || !aband || aband->readonly) goto x; clear_tmpqsos(aband, 1); add_swap(aband, "CLR"); map_clear_qso(&aband->tmplocqso); redraw_later(); goto x; case ACT_CLEAR_TMPQSOS_INPUTLINE: /*dbg("clear_tmpqsos_inputline\n");*/ if (!ctest || !aband) { /* HACK F3 */ menu_contest_open((cba_t)NULL); goto x; } if (aband->readonly) goto x; clear_tmpqsos(aband,1); add_swap(aband, "CLR"); clear_inputline(aband->il); get_cw_qs(aband->il->cdata); /* clears */ get_band_qs(aband, aband->il->cdata); get_oband_qs(aband, aband->il->cdata); get_hf_dxc(aband->il->cdata); send_inputline(aband); map_clear_qso(&aband->tmplocqso); redraw_later(); goto x; case ACT_CONFIRM_CALL: oldtmpqcall = TMPQ.callsign; if (!ctest || !aband) goto x; c = TMPQ.callsign; if (!c) goto x; if (TMPQ.ucallsign) goto x; compute_qrv_wkd(uc(c)); i = get_qso_index_by_callsign(aband, c); if (ctest->expmode) i = -1; if (i>0 && !is_rover(c)){ qso = (struct qso *)g_ptr_array_index(aband->qsos, i); aband->dupe_in_tmpqso_index = i; redraw_terminal(CBA0); compute_qrv_wkd(c); duplicate_callsign(qso); goto x; } add_tmpxchg(aband, aband->tmpqsos[0].callsign); after_callsign(aband, TMPQ.callsign, oldtmpqcall); aband->tmpqsos[0].ucallsign = 1; CLEAR_TMPQSO_STRING_UU(aband, callsign, ucallsign); wkd_tmpqso(aband, WT_CALLSIGN, c); #ifdef HAVE_SNDFILE ssbd->code++; #endif redraw_later(); break; case ACT_CONFIRM_EXC: if (!ctest || !aband) goto x; if (!aband->tmpqsos[0].exc) break; if (strlen(aband->tmpqsos[0].exc)==0) break; add_tmpxchg(aband, aband->tmpqsos[0].exc); after_exc(aband, TMPQ.exc); aband->tmpqsos[0].uexc = 1; CLEAR_TMPQSO_STRING_UU(aband, exc, uexc); wkd_tmpqso(aband, WT_EXC, TMPQ.exc); #ifdef HAVE_SNDFILE ssbd->code++; #endif redraw_later(); break; case ACT_CONFIRM_WWL: if (!ctest || !aband) goto x; if (!aband->tmpqsos[0].locator) break; if (ctest->wwlused == 3 || ctest->wwlused == 4){ // 3=used(4), 4=opt(4) if (strlen(aband->tmpqsos[0].locator)<4) break; }else{ if (strlen(aband->tmpqsos[0].locator)!=6) break; } add_tmpxchg(aband, aband->tmpqsos[0].locator); aband->tmpqsos[0].ulocator = 1; aband->tmpqsos[0].uqrb = 1; aband->tmpqsos[0].uqtf = 1; after_locator(aband, TMPQ.locator); CLEAR_TMPQSO_STRING_UU(aband, locator, ulocator); CLEAR_TMPQSO_GDOUBLE_UU (aband, qrb, uqrb); CLEAR_TMPQSO_QTF_UU (aband); wkd_tmpqso(aband, WT_LOCATOR, TMPQ.locator); /*map_clear_qso(&aband->tmplocqso); */ #ifdef HAVE_SNDFILE ssbd->code++; #endif redraw_later(); break; case ACT_SWAP_CALL: if (!ctest || !aband) goto x; if (aband->tmpqsos[0].callsign && aband->tmpqsos[1].callsign){ int susp; gchar *c; c = aband->tmpqsos[0].callsign; aband->tmpqsos[0].callsign = aband->tmpqsos[1].callsign; aband->tmpqsos[1].callsign = c; c = aband->tmpqsos[0].name; aband->tmpqsos[0].name = aband->tmpqsos[1].name; aband->tmpqsos[1].name = c; add_tmpxchg(aband, aband->tmpqsos[0].callsign); if ((susp=get_susp_call(cw, dw, aband->tmpqsos[0].callsign, aband->tmpqsos[0].locator))!=0){ aband->tmpqsos[0].suspcallsign = susp; }else{ aband->tmpqsos[0].suspcallsign = 0; aband->tmpqsos[0].susplocator = 0; } wkd_tmpqso(aband, WT_CALLSIGN, TMPQ.callsign); #ifdef HAVE_SNDFILE ssbd->code++; #endif redraw_later(); } break; case ACT_SWAP_WWL: if (!ctest || !aband) goto x; if (aband->tmpqsos[0].locator && aband->tmpqsos[1].locator){ int susp; gchar *c; gdouble qrb; gint qtf; map_clear_qso(&aband->tmplocqso); c = aband->tmpqsos[0].locator; aband->tmpqsos[0].locator = aband->tmpqsos[1].locator; aband->tmpqsos[1].locator = c; add_tmpxchg(aband, aband->tmpqsos[0].locator); qrb = aband->tmpqsos[0].qrb; aband->tmpqsos[0].qrb = aband->tmpqsos[1].qrb; aband->tmpqsos[1].qrb = qrb; qtf = aband->tmpqsos[0].qtf; aband->tmpqsos[0].qtf = aband->tmpqsos[1].qtf; aband->tmpqsos[1].qtf = qtf; if ((susp=get_susp(cw, dw, aband->tmpqsos[0].callsign, aband->tmpqsos[0].locator, 1))!=0){ aband->tmpqsos[0].susplocator = susp & 0xff; aband->tmpqsos[0].suspcallsign = susp >> 8; }else{ aband->tmpqsos[0].susplocator = 0; aband->tmpqsos[0].suspcallsign = 0; } wkd_tmpqso(aband, WT_LOCATOR, TMPQ.locator); CONDGFREE(aband->tmplocqso.locator); aband->tmplocqso.locator=g_strdup(TMPQ.locator); compute_qrbqtf(&aband->tmplocqso); map_add_qso(&aband->tmplocqso); #ifdef HAVE_SNDFILE ssbd->code++; #endif redraw_later(); } break; case ACT_SAVE_ALL: save_all_bands_txt(0); break; case ACT_CHOP: if (!ctest) break; menu_chop(CBA0); break; case ACT_CALLINFO: call_info(CBA0); break; case ACT_SKED: if (!ctest || !aband) break; if ((!TMPQ.callsign || !strlen(TMPQ.callsign)) && aband->qsos->len>0){ sked_from_qso((struct qso *)g_ptr_array_index(aband->qsos, aband->qsos->len-1)); }else{ sked_from_tmpqso(&(aband->tmpqsos[0])); } break; case ACT_SKED_QRG: if (!ctest) break; menu_skedqrg(CBA0); break; case ACT_UNFINISHED: if (!ctest || !aband) break; if (!TMPQ.callsign && !TMPQ.locator) break; menu_unfinished(CBA0); goto x; case ACT_PLAY_LAST: if (gses->focused) break; #if defined(HAVE_SNDFILE) ssbd_play_last_sample(ssbd, NULL); // player_play("/home/ja/tucnak/cq/OK1ZIA_OK1ZIA.wav"); #endif break; case ACT_SEEK_A: if (!ctest || !aband) goto x; if (TMPQ.locator) rot_seek(get_rotar(0), TMPQ.qtf); break; case ACT_SEEK_B: if (!ctest || !aband) goto x; if (TMPQ.locator) rot_seek(get_rotar(1), TMPQ.qtf); break; case ACT_GRAB_BAND: menu_grabband(CBA0); break; case ACT_ROTAR: menu_rotar(CBA0); break; case ACT_TUNE: if (get_mode() != MOD_CW_CW) break; gses->tune++; if (gses->tune == 3) gses->tune = 0; cwdaemon_tune(cwda, gses->tune); break; case ACT_AC_CQ: ac_cq(); break; default: /*if (ev->x == KBD_CTRL_C) goto quit;*/ if (ev->y & KBD_ALT) { struct window *m; if (ev->x>='0' && ev->x<='9'){ int a = ev->x - '0'; if (a==0) a=10; if (sw_set_ontop(a-1, 0)){ if (!gses->focused || (gses->ontop && gses->ontop->type == SWT_QSOS)){ sw_unset_focus(); il_set_focus(INPUTLN(aband)); }else{ sw_set_focus(); il_unset_focus(INPUTLN(aband)); } redraw_later(); } goto x; } #if 0 if (ctest && upcase(ev->x)=='L'){ /* printf("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"); g_thread_create(delay_func, NULL, TRUE, NULL); */ log_adds("---dump request---"); trace(cfg->trace_qsos, "---dump request---"); dump_all_sources(ctest); } #endif ev->y &= ~KBD_ALT; activate_bfu_technology(-1); m = term->windows.next; m->handler(m, ev, 0); if (term->windows.next == m) { delete_window(m); } else goto x; ev->y &= ~KBD_ALT; } if (ev->y & KBD_CTRL){ char bandchar; struct band *b; if (ev->x>='0' && ev->x<='9'){ int a = ev->x - '0'; /* if (a==0) a=10; Ctrl+0 means subwin 10 */ a+=10; if (sw_set_ontop(a-1, 0)){ if (!gses->focused || (gses->ontop && gses->ontop->type == SWT_QSOS)){ sw_unset_focus(); il_set_focus(INPUTLN(aband)); }else{ sw_set_focus(); il_unset_focus(INPUTLN(aband)); } redraw_later(); } goto x; } if (!ctest || !aband) goto x; bandchar=lowcase((char)ev->x); b=find_band_by_bandchar(bandchar); activate_band(b); break; } } } if (ev->ev == EV_MOUSE) { int y; /* dbg("mouse event x=%d y=%d b=%d\n", ev->x, ev->y, ev->b); */ /* menu */ if (ev->y == 0 && (ev->b & BM_ACT) == B_DOWN) { struct window *m; activate_bfu_technology(-1); m = term->windows.next; m->handler(m, ev, 0); goto x; } /* input line */ y = term->y - 1 - cfg->loglines; if (ctest && aband) y -= ctest->spypeers->len; if (ev->y==y && (ev->b & ~B_MOVE) !=0){ //dbg("EV_MOUSE([%d,%d,%d,%d])\n",ev->ev,ev->x,ev->y,ev->b); sw_unset_focus(); il_set_focus(INPUTLN(aband)); inputln_func(INPUTLN(aband), ev); redraw_later(); } /* subwin tabs */ if (gses && (ev->b & BM_ACT) == B_DOWN){ int i; struct subwin *sw; if (cfg->splitheight > 0){ if (ev->y == QSONR_HEIGHT - 1){ for (i=0; isubwins->len; i++){ sw = (struct subwin*)g_ptr_array_index( gses->subwins, i); if (ev->x >= sw->titl1 && ev->x <= sw->titl2){ sw_set_ontop(i, 1); redraw_later(); break; } } } if (ev->y == gses->y1 - 1){ for (i=0; isubwins->len; i++){ sw = (struct subwin*)g_ptr_array_index( gses->subwins, i); if (ev->x >= sw->titl1 && ev->x <= sw->titl2){ sw_set_ontop(i, 0); redraw_later(); break; } } } }else{ if (ev->y == QSONR_HEIGHT - 1){ for (i=0; isubwins->len; i++){ sw = (struct subwin*)g_ptr_array_index( gses->subwins, i); if (ev->x >= sw->titl1 && ev->x <= sw->titl2){ sw_set_ontop(i, 0); redraw_later(); break; } } } } } /* subwin */ if (gses && ev->y >= gses->ontop->y && ev->y < gses->ontop->y+gses->ontop->hh){ sw_default_func(gses->ontop,ev,1); } } x:; return; } void draw_root_window(){ gchar *c; int i, a, y; char dtime[6]; char s[100]; int spypeers=0; struct rotar *rot; char degree; char exc[15]; degree=' '; #ifdef HAVE_SDL //if (sdl) degree=''; if (sdl) degree=0xb0; #endif /* dbg("draw_root_window\n");*/ fill_area(0,0,term->x,term->y,COL_BG); if (ctest && ctest->tname && *ctest->tname){ char s[256]; strcpy(s," Tucnak "VERSION_STRING); print_text(1,0,-1,ctest->tname,COL_NORM); print_text(term->x-QSONR_WIDTH-strlen(s)-2,0,-1,s,COL_NORM); }else{ print_text(0,0,-1," The ultimate contestlog - necessary as known ver. "VERSION,COL_NORM); } log_draw(glog); if (ctest) spypeers=ctest->spypeers->len; draw_frame(0,ORIG_Y,term->x-QSONR_WIDTH-BAND_WIDTH,3,COL_NORM,1); draw_frame(0,ORIG_Y+2,term->x-QSONR_WIDTH-BAND_WIDTH,4,COL_NORM,1); draw_frame(term->x-QSONR_WIDTH-BAND_WIDTH-1,ORIG_Y,BAND_WIDTH+1,QSONR_HEIGHT-1,COL_NORM,1); draw_frame(term->x-QSONR_WIDTH-1,0,QSONR_WIDTH+1,QSONR_HEIGHT,COL_NORM,1); draw_frame(0,QSONR_HEIGHT-1,term->x,term->y-QSONR_HEIGHT-2-cfg->loglines-spypeers,COL_NORM,1); #ifdef HAVE_SNDFILE if (gses && ssbd && gses->icon == ssbd->recicon /* && ssbd->loglevel != ssbd->oldloglevel*/){ int x, y; x=term->x-1; for (y=0;y<6;y++) { term->last_screen[x+term->x*y]=0; // set_char(x, y, '1' + COL_NORM); // term->screen[x+term->x*y]='1'; } // dbg(" gses->volume "); } #endif set_only_char(term->x-QSONR_WIDTH-BAND_WIDTH-1,ORIG_Y,FRAME_RDL); set_only_char(term->x-QSONR_WIDTH-1,ORIG_Y,FRAME_UDL); set_only_char(0,ORIG_Y+2,FRAME_URD); set_only_char(term->x-QSONR_WIDTH-BAND_WIDTH-1,ORIG_Y+2,FRAME_UDL); set_only_char(0,QSONR_HEIGHT-1,FRAME_URD); set_only_char(term->x-QSONR_WIDTH-1,QSONR_HEIGHT-1,FRAME_URL); set_only_char(term->x-QSONR_WIDTH-BAND_WIDTH-1,QSONR_HEIGHT-1,FRAME_URL); set_only_char(term->x-1,QSONR_HEIGHT-1,FRAME_UDL); if (cfg->splitheight > 0){ y = gses->y1 - 1; set_only_char(0, y, FRAME_URD); for (i = 1; i < term->x - 1; i++) set_only_char(i, y, FRAME_RL); set_only_char(term->x - 1, y, FRAME_UDL); } print_text(11,term->y-ORIG_Y-2-cfg->loglines-spypeers-1,-1,VTEXT(T_SES_QTR),COL_NORM); print_text(19,term->y-ORIG_Y-2-cfg->loglines-spypeers-1,-1,VTEXT(T_SES_QRA),COL_NORM); print_text(31,term->y-ORIG_Y-2-cfg->loglines-spypeers-1,-1,VTEXT(T_SES_RST),COL_NORM); if (ctest && ctest->excused>0) print_text(49,term->y-ORIG_Y-2-cfg->loglines-spypeers-1,-1,VTEXT(T_SES_EXC),COL_NORM); if (ctest && ctest->wwlused>0) print_text(54,term->y-ORIG_Y-2-cfg->loglines-spypeers-1,-1,VTEXT(T_SES_QTH),COL_NORM); print_text(62,term->y-ORIG_Y-2-cfg->loglines-spypeers-1,-1,VTEXT(T_SES_QRB),COL_NORM); print_text(74,term->y-ORIG_Y-2-cfg->loglines-spypeers-1,-1,VTEXT(T_SES_FLG),COL_NORM); print_text(80,term->y-ORIG_Y-2-cfg->loglines-spypeers-1,-1,VTEXT(T_SES_OPE),COL_NORM); print_text(88,term->y-ORIG_Y-2-cfg->loglines-spypeers-1,-1,VTEXT(T_SES_REM),COL_NORM); if (can_cq(aband)){ if (gses && gses->last_cq && gses->last_cq->type!=MOD_NONE){ if (gses->last_cq->type==MOD_CW_CW) sprintf(s, " CW%d", gses->last_cq->nr); else sprintf(s, "SSB%d", gses->last_cq->nr); }else{ if (gses->tx) strcpy(s, " TX"); else strcpy(s, " rx"); } }else{ strcpy(s, "LOCK"); } print_text(15,term->y-1-cfg->loglines-spypeers,-1,s,COL_NORM); if (cwda){ c = g_strdup_printf(VTEXT(T_SES_WPM), cwda->speed, cwda->weight); print_text(term->x-QSONR_WIDTH-BAND_WIDTH,ORIG_Y+1,BAND_WIDTH-1, c, COL_NORM); g_free(c); } rot=get_rotar(0); if (rot){ sprintf(s,"RotA: %3d%c%+d%c",rot->qtf, degree, rot->elev, degree); print_text(term->x-QSONR_WIDTH-BAND_WIDTH,ORIG_Y+2,BAND_WIDTH-1, s, COL_NORM); } rot=get_rotar(1); if (rot){ sprintf(s,"RotB: %3d%c%+d%c",rot->qtf, degree, rot->elev, degree); print_text(term->x-QSONR_WIDTH-BAND_WIDTH,ORIG_Y+3,BAND_WIDTH-1, s, COL_NORM); } #ifdef HAVE_HAMLIB // trig->qrg = 10368120000.0; if (trig && trig->thread){ if (trig->qrg>0){ int len; sprintf(s,"%0.0f", trig->qrg); len=strlen(s); if (len>3) { memmove(s+len-2, s+len-3, 4); s[len-3]='.'; if (len>6){ memmove(s+len-5, s+len-6, 8); s[len-6]='.'; } } print_text(term->x-QSONR_WIDTH-BAND_WIDTH+13-strlen(s),ORIG_Y+4,BAND_WIDTH-1, s, COL_NORM); }else{ enum rig_errcode_e error; // thread error = trig->error; if (error != RIG_OK) print_text(term->x-QSONR_WIDTH-BAND_WIDTH,ORIG_Y+4,BAND_WIDTH-1, trig_short_errstr(error), COL_NORM); } } #endif if (aband){ if (aband->ctrlstate==CTRL_REQR){ print_text(19,term->y-ORIG_Y-2-cfg->loglines-spypeers-1,-1," QSO request from S&P ",COL_INV); } if (aband->ctrlstate==CTRL_REQS){ print_text(19,term->y-ORIG_Y-2-cfg->loglines-spypeers-1,-1," QSO request sent to RUN ",COL_INV); } if (aband->ctrlstate==CTRL_RUNING){ print_text(19,term->y-ORIG_Y-2-cfg->loglines-spypeers-1,-1," GO! ",COL_INV); } g_snprintf(s, 98, " %s %s (%s) ", ctest->pcall, ctest->pwwlo, aband->operator_); uc(s); print_text(4,ORIG_Y,97,s,COL_NORM); //if (ctest->total_method == 3) if (ctest->qsoglob) draw_bigdigit(term->x-20+2,1,ctest->allqsos->len+1); //draw_bigdigit(term->x-20+2,1,ctest->allb_nqsos+1); else draw_bigdigit(term->x-20+2,1,aband->qsos->len+1); redraw_stats(aband); c=g_strconcat(aband->bandname,":", NULL); print_text(14-strlen(c),term->y-1-cfg->loglines-spypeers,-1,c,COL_NORM); g_free(c); for (i=0;ispypeers, i); s[0]=sp->bandchar; s[1]=':'; s[2]='\0'; print_text(0,term->y-cfg->loglines-spypeers+i,-1,s,COL_NORM); c=sp->operator_; if (c) print_text(2,term->y-cfg->loglines-spypeers+i,-1,c,COL_NORM); strcpy(s,""); if (sp->peertx==0) strcpy(s, "rx"); if (sp->peertx==1) strcpy(s, "tx"); if (sp->peertx==2) strcpy(s, "cq"); print_text(15,term->y-cfg->loglines-spypeers+i,-1,s,COL_NORM); c=sp->callsign; if (c) print_text(18,term->y-cfg->loglines-spypeers+i,-1,c,COL_NORM); c=sp->rsts; if (c) print_text(36-strlen(c),term->y-cfg->loglines-spypeers+i,-1,c,COL_NORM); c=sp->qsonrs; if (c) print_text(40-strlen(c),term->y-cfg->loglines-spypeers+i,-1,c,COL_NORM); c=sp->rstr; if (c) print_text(45-strlen(c),term->y-cfg->loglines-spypeers+i,-1,c,COL_NORM); c=sp->qsonrr; if (c) print_text(49-strlen(c),term->y-cfg->loglines-spypeers+i,-1,c,COL_NORM); if (sp->exc) { safe_strncpy0(exc, sp->exc, 12); print_text(50-strlen(exc),term->y-cfg->loglines-spypeers+i,-1,exc,COL_NORM); } c=sp->locator; if (c) print_text(55,term->y-cfg->loglines-spypeers+i,-1,c,COL_NORM); c=sp->inputline; if (c) print_text(62,term->y-cfg->loglines-spypeers+i,-1,c,COL_NORM); } for (i=0;idupe_in_tmpqso_index>=0){ struct qso *q; q=g_ptr_array_index(aband->qsos, aband->dupe_in_tmpqso_index); print_text(3,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,q->date_str,COL_INV); dtime[0]=q->time_str[0]; dtime[1]=q->time_str[1]; dtime[2]=':'; dtime[3]=q->time_str[2]; dtime[4]=q->time_str[3]; dtime[5]='\0'; print_text(17-strlen(dtime),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,dtime,COL_INV); print_text(18,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,q->callsign,COL_INV); print_text(36-strlen(q->rsts),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,q->rsts,COL_INV); print_text(40-strlen(q->qsonrs),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,q->qsonrs,COL_INV); print_text(45-strlen(q->rstr),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,q->rstr,COL_INV); print_text(49-strlen(q->qsonrr),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,q->qsonrr,COL_INV); print_text(55,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,q->locator,COL_INV); safe_strncpy0(exc, q->exc, 5); print_text(50,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,exc,COL_INV); if ((int)q->qrb<100000) c=g_strdup_printf("%dkm",(int)q->qrb); else c=g_strdup_printf("%d",(int)q->qrb); print_text(70-strlen(c),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c,COL_INV); g_free(c); if (q->qtf>=0) { c=g_strdup_printf("%d%c",q->qtf, degree); print_text(75-strlen(c),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c,COL_INV); g_free(c); /*c=g_strdup_printf("(%d)",((int)q->qtf+180)%360); print_text(75,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c,COL_INV); g_free(c); */ } print_text(81,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,q->operator_,COL_INV); print_text(89,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,q->remark,COL_INV); continue; /* don't draw normal QSO in line 0 */ } c=aband->tmpqsos[i].date_str; if (c) print_text(3,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c,COL_NORM); c=aband->tmpqsos[i].time_str; if (c) { dtime[0]=c[0]; dtime[1]=c[1]; dtime[2]=':'; dtime[3]=c[2]; dtime[4]=c[3]; dtime[5]='\0'; print_text(17-strlen(dtime),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,dtime,COL_NORM); } c=aband->tmpqsos[i].callsign; if (c) { char *susp_c/*,*unkcall*/; /* if (aband->tmpqsos[i].unkcall) unkcall="n"; else unkcall=" "; print_text(16,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1, unkcall, COL_NORM); */ switch (aband->tmpqsos[i].suspcallsign){ case 1: susp_c="?"; break; case 2: susp_c="!"; break; default: susp_c=" "; break; } print_text(17,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1, susp_c, COL_NORM); print_text(18,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c, aband->tmpqsos[i].ucallsign?COL_NORM:COL_INV); if (aband->tmpqsos[i].unkcall){ int x; x=18+1+strlen(c); print_text(x, term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,32-x, VTEXT(T_NEW_CALL), aband->tmpqsos[i].ucallsign?COL_NORM:COL_INV); }else{ if (aband->tmpqsos[i].name){ int x; x=18+1+strlen(c); print_text(x, term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,32-x, aband->tmpqsos[i].name, aband->tmpqsos[i].ucallsign?COL_NORM:COL_INV); } } } c=aband->tmpqsos[i].rsts; if (c) print_text(36-strlen(c),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c,COL_NORM); if (ctest->qsoglob){ if (i==0) g_snprintf(s, sizeof(s), "%03d", ctest->allqsos->len+1); else strcpy(s, ""); c=s; }else{ c=aband->tmpqsos[i].qsonrs; } if (c) print_text(40-strlen(c),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c,COL_NORM); c=aband->tmpqsos[i].rstr; if (c) print_text(45-strlen(c),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c,COL_NORM); c=aband->tmpqsos[i].qsonrr; if (c) print_text(49-strlen(c),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c,COL_NORM); c=aband->tmpqsos[i].exc; if (c) { safe_strncpy(exc, c, 12); print_text(50,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,exc, aband->tmpqsos[i].uexc?COL_NORM:COL_INV); } c=aband->tmpqsos[i].locator; if (c) { char *susp_c; switch (aband->tmpqsos[i].susplocator){ case 1: susp_c="?"; break; case 2: susp_c="!"; break; default: susp_c=" "; break; } print_text(55,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c, aband->tmpqsos[i].ulocator?COL_NORM:COL_INV); print_text(62,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1, susp_c, COL_NORM); } a=(int)aband->tmpqsos[i].qrb; if (a) { if (a<100000) c=g_strdup_printf("%dkm",a); else c=g_strdup_printf("%d",a); print_text(70-strlen(c),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c, aband->tmpqsos[i].uqrb?COL_NORM:COL_INV); g_free(c); } a=aband->tmpqsos[i].qtf; if (a>=0) { c=g_strdup_printf("%d%c",a, degree); print_text(75-strlen(c),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c, aband->tmpqsos[i].uqtf?COL_NORM:COL_INV); g_free(c); /* c=g_strdup_printf("(%d)",(a+180)%360); print_text(75,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c, aband->tmpqsos[i].uqtf?COL_NORM:COL_INV); g_free(c); */ } if (i==0 && aband->tmpqsos[0].qsl){ print_text(79,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,"q",COL_NORM); } c=aband->operator_; if (i==0 && c) print_text(81,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c,COL_NORM); c=aband->tmpqsos[i].remark; if (c) print_text(89,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c,COL_NORM); } if (aband->unres) { int x; const int QRA_X=17; c=aband->unres; x=QRA_X-strlen(c); if (x<0) x=0; fill_area(0,term->y-2-cfg->loglines-spypeers, QRA_X,1,COL_BG); print_text(x,term->y-2-cfg->loglines-spypeers, QRA_X, c,COL_INV); }else{ if (aband->qrv_str){ int x; const int QRA_X=17; c=g_strdup_printf(VTEXT(T_QRV_ON_S), aband->qrv_str); x=QRA_X-strlen(c); if (x<0) x=0; fill_area(0,term->y-2-cfg->loglines-spypeers, QRA_X,1,COL_BG); print_text(x,term->y-2-cfg->loglines-spypeers, QRA_X, c,COL_RED); g_free(c); } } if (aband->wkd_str && aband->tmpqsos[1].callsign == NULL){ const int QRA_X=17; c = aband->wkd_str; print_text(QRA_X+1,term->y-2-cfg->loglines-spypeers, QRA_X, c,COL_NORM); } }else{ strcpy(s,mode_msg[get_mode()]); print_text(36-strlen(s),term->y-cfg->loglines-spypeers-DISP_QSOS-1,-1,s,COL_NORM); } /* sw_default_redraw(g_ptr_array_index(ses->subwins,0));*/ draw_time(); #if 0 else { c = VTEXT(T_SES_WELCOME); print_text((term->x-strlen(c))/2, term->y/2-3, -1, c, COL_NORM); c = VTEXT(T_SES_PRESS_F10); print_text((term->x-strlen(c))/2, term->y/2-1, -1, c, COL_NORM); c = VTEXT(T_SES_HAVE_FUN); print_text((term->x-strlen(c))/2, term->y/2+0, -1, c, COL_NORM); c = VTEXT(T_SES_URL); print_text((term->x-strlen(c))/2, term->y-5, -1, c, COL_NORM); print_tucnak(term->x-26,(term->y-12)/2-1); #endif #if 0 { int i,j; for (j=0;j<16;j++){ for (i=0;i<16;i++){ unsigned char s[2]; s[0]=i+j*16; /*if (s[0]<32 || s[0]==127 || (s[0]>=128+0 && s[0]<128+32)) s[0]='.';*/ s[1]=0; print_text(i+5,j+3, 1,s, COL((i&7)+j*8)); } print_text(j,2, 1,"X", COL(j)); } } #endif #if 0 } #endif } #define DELIM "\t\r\n " #define FREE_Cx if (c1) {mem_free(c1); c1=NULL;}\ if (c2) {mem_free(c2); c2=NULL;}\ if (c3) {mem_free(c3); c3=NULL;}\ if (c4) {mem_free(c4); c4=NULL;}\ if (c5) {mem_free(c5); c5=NULL;} void add_tmpqso_rsts(struct band *band, gchar *rsts) { ADD_TMPQSO_STRING(band,rsts,rsts,1,udummy); add_date_time(band); band->last_item = LI_NONE; wkd_tmpqso(band, WT_RSTS, rsts); } void add_tmpqso_rstr(struct band *band, gchar *rstr) { ADD_TMPQSO_STRING(band,rstr,rstr,1,udummy); add_date_time(band); band->last_item = LI_NONE; wkd_tmpqso(band, WT_RSTR, rstr); #ifdef HAVE_SNDFILE ssbd->code++; #endif } int add_tmpqso_qsonrr(struct band *band, gchar *qsonrr){ char s[20]; int n; n=atoi(qsonrr); if (n<1 || n>9999) return -1; g_snprintf(s, 18, "%03d", n); ADD_TMPQSO_STRING(band,qsonrr,s,1,udummy); wkd_tmpqso(band, WT_QSONRR, s); #ifdef HAVE_SNDFILE ssbd->code++; #endif return 0; } void add_tmpqso_exc(struct band *band,gchar *exc,int isu) { char s[20], *c; c = exc; if (ctest->exctype == EXC_WAZ || ctest->exctype == EXC_ITU){ g_snprintf(s, 18, "%02d", atoi(exc)); c = s; } ADD_TMPQSO_STRING(band, exc, c, isu, uexc); if (ctest->rstused!=1) add_date_time(band); band->last_item = LI_NONE; wkd_tmpqso(band, WT_EXC, c); #ifdef HAVE_SNDFILE ssbd->code++; #endif } void add_tmpqso_locator(struct band *band,gchar *wwl,int isu, int isshort) { int qtf_int; double qrb, qtf; char s[8]; /* CHANGE look at recalc_all_qrbqtf */ qrbqtf(ctest->pwwlo, wwl, &qrb, &qtf, NULL, 2); qtf_int=(int)(qtf+0.5); if (qrb < 0.1) { qrb=0; qtf_int=0; } ADD_TMPQSO_GDOUBLE(band, qrb, qrb, isu, uqrb); ADD_TMPQSO_GINT(band, qtf, qtf_int, isu, uqtf); if (isshort) safe_strncpy(s, wwl, 4+1); else safe_strncpy(s, wwl, 6+1); ADD_TMPQSO_STRING(band,locator,s,isu,ulocator); if (ctest->rstused!=1) add_date_time(band); #ifdef HAVE_SNDFILE ssbd->code++; #endif } void after_callsign(struct band *band,char *c, char *oldtmpqcall){ gchar *wwl0, *wwl1, *wwl2, *name, *d, *exc0, *exc1, *exc2; int done=0; char raw[20],raw1[20]; //gchar *qrv_str; int unkcall=1; //struct qrv_item *qi; /*** name ***/ CONDGFREE(band->tmpqsos[0].name); get_raw_call(raw,c); name = find_name_by_call(namedb, raw); if (name){ band->tmpqsos[0].name = g_strdup(name); unkcall=0; } CONDGFREE(band->tmpqsos[1].name); get_raw_call(raw1, band->tmpqsos[1].callsign); name = find_name_by_call(namedb, raw1); if (name){ band->tmpqsos[1].name = g_strdup(name); } /*** qrv string ***/ compute_qrv_wkd(uc(c)); /*** locator ***/ if (!band->tmpqsos[0].ulocator && ctest->wwlused){ wwl0 = find_wwl_by_call(cw, uc(c)); wwl1 = find_wwl_by_call(cw, NULL); wwl2 = find_wwl_by_oband(band, raw); /* yes, raw not c */ if (wwl1) {add_tmpqso_locator(band, wwl1, !ctest->wwlcfm, 0); done=1; unkcall=0;} if (wwl0) {add_tmpqso_locator(band, wwl0, !ctest->wwlcfm, 0); done=1; unkcall=0;} if (wwl2) {add_tmpqso_locator(band, wwl2, !ctest->wwlcfm, 0); done=1; unkcall=0;} } /* try remove /p */ if (!done && !band->tmpqsos[0].ulocator && ctest->wwlused){ wwl0 = find_wwl_by_call(cw, uc(raw)); wwl1 = find_wwl_by_call(cw, NULL); wwl2 = find_wwl_by_oband(band, raw); if (wwl1) {add_tmpqso_locator(band, wwl1, !ctest->wwlcfm, 0); done=1; unkcall=0;} if (wwl0) {add_tmpqso_locator(band, wwl0, !ctest->wwlcfm, 0); done=1; unkcall=0;} if (wwl2) {add_tmpqso_locator(band, wwl2, !ctest->wwlcfm, 0); done=1; unkcall=0;} } /* try add /p */ if (!done && !band->tmpqsos[0].ulocator && ctest->wwlused){ strcat(raw,"/P"); wwl0 = find_wwl_by_call(cw, uc(raw)); wwl1 = find_wwl_by_call(cw, NULL); wwl2 = find_wwl_by_oband(band, raw); if (wwl1) {add_tmpqso_locator(band, wwl1, !ctest->wwlcfm, 0); done=1; unkcall=0;} if (wwl0) {add_tmpqso_locator(band, wwl0, !ctest->wwlcfm, 0); done=1; unkcall=0;} if (wwl2) {add_tmpqso_locator(band, wwl2, !ctest->wwlcfm, 0); done=1; unkcall=0;} } if (!done && !band->tmpqsos[0].ulocator && ctest->wwlused){ char dxc[30]; get_dxcc(dw, dxc, uc(c)); wwl0 = find_wwl_by_dxc(dw, uc(dxc)); wwl1 = find_wwl_by_dxc(dw, NULL); if (wwl1) add_tmpqso_locator(band, wwl1, !ctest->wwlcfm, 1); if (wwl0) add_tmpqso_locator(band, wwl0, !ctest->wwlcfm, 1); } if (band->tmpqsos[0].ulocator && ctest->wwlused){ int susp; if ((susp=get_susp_call(cw, dw, band->tmpqsos[0].callsign, band->tmpqsos[0].locator))!=0){ band->tmpqsos[0].suspcallsign = susp; }else{ band->tmpqsos[0].susplocator = 0; band->tmpqsos[0].suspcallsign = 0; } }else{ /* v kazdem pripade se bude kontrolovat susp_call */ int susp; if ((susp=get_susp_call(cw, dw, band->tmpqsos[0].callsign, NULL))!=0){ band->tmpqsos[0].suspcallsign = susp; }else{ band->tmpqsos[0].susplocator = 0; band->tmpqsos[0].suspcallsign = 0; } } /******** EXC *********/ if (!band->tmpqsos[0].uexc && ctest->excused > 0){ exc0 = find_exc_by_call(excdb, uc(c)); exc1 = find_exc_by_call(excdb, NULL); exc2 = find_exc_by_oband(band, raw); /* yes, raw not c */ if (exc1) {ADD_TMPQSO_STRING(band,exc,exc1,!ctest->exccfm,uexc); done=1; } if (exc0) {ADD_TMPQSO_STRING(band,exc,exc0,!ctest->exccfm,uexc); done=1; } if (exc2) {ADD_TMPQSO_STRING(band,exc,exc2,!ctest->exccfm,uexc); done=1; } } band->tmpqsos[0].unkcall=unkcall; #ifdef HAVE_SNDFILE ssbd_callsign(ssbd, c); #endif wkd_tmpqso(band, WT_CALLSIGN, c); d=TMPQ.locator; map_clear_qso(&aband->tmplocqso); CONDGFREE(aband->tmplocqso.locator); aband->tmplocqso.locator=g_strdup(d); if (d && *d){ compute_qrbqtf(&aband->tmplocqso); map_add_qso(&aband->tmplocqso); } dbg("after_call(%d, %d==%d, oldtmpqcall=%s)\n", ctest->runmode, gses->mode, MOD_CW_CW, oldtmpqcall); if (ctest->runmode && gses->mode == MOD_CW_CW && oldtmpqcall == NULL){ if (cfg->cwda_autgive > 0){ // we must omit call struct cq *cq = get_cq_by_number(cfg->cqs, 1); if (!cq){ cq->stripcall = 1; dbg("%s1: cq_run_by_number(1)\n", __FUNCTION__); cq_run_by_number(1); // 5NN $MX cq->stripcall = 0; } }else{ dbg("%s2: cq_run_by_number(1)\n", __FUNCTION__); cq_run_by_number(1); // $C 5NN $MX aband->iscall = 1; dbg("after_call: set iscall=%d\n", aband->iscall); } } } void after_locator(struct band *band,char *c){ gchar *call0, *call1; gchar *dxc0, *dxc1; int done=0; char raw[20], *name; dbg("after_locator('%s')\n", c); if (!band->tmpqsos[0].ucallsign){ call0 = find_call_by_wwl(cw, uc(c)); call1 = find_call_by_wwl(cw, NULL); if (call1) { ADD_TMPQSO_STRING(band,callsign,call1,0,ucallsign); get_raw_call(raw,call1); name = find_name_by_call(namedb, raw); ADD_TMPQSO_STRING(band,name,name,0,udummy); done=1; } if (call0) { ADD_TMPQSO_STRING(band,callsign,call0,0,ucallsign); done=1; get_raw_call(raw,call0); name = find_name_by_call(namedb, raw); ADD_TMPQSO_STRING(band,name,name,0,udummy); } } if (!done && !band->tmpqsos[0].ucallsign){ dxc0 = find_dxc_by_wwl(dw, uc(c)); dxc1 = find_dxc_by_wwl(dw, NULL); if (dxc1) ADD_TMPQSO_STRING(band,callsign,dxc1,0,ucallsign); if (dxc0) ADD_TMPQSO_STRING(band,callsign,dxc0,0,ucallsign); } if (band->tmpqsos[0].ucallsign){ int susp; if ((susp=get_susp(cw, dw, band->tmpqsos[0].callsign, band->tmpqsos[0].locator, 1))!=0){ dbg("susp=%d\n", susp); band->tmpqsos[0].susplocator = susp & 0xff; aband->tmpqsos[0].suspcallsign = susp >> 8; }else{ band->tmpqsos[0].suspcallsign = 0; band->tmpqsos[0].susplocator = 0; } } wkd_tmpqso(band, WT_LOCATOR, c); map_clear_qso(&aband->tmplocqso); CONDGFREE(aband->tmplocqso.locator); aband->tmplocqso.locator=g_strdup(c); if (c && *c){ compute_qrbqtf(&aband->tmplocqso); map_add_qso(&aband->tmplocqso); redraw_later(); } if (ctest->runmode){ // cq_run_by_number(2); // $B TU QRZ process_input(band, "", 0); } } void after_exc(struct band *band,char *c){ if (ctest->runmode){ //cq_run_by_number(2); // $B TU QRZ process_input(band, "", 0); } } void after_qsonrr(struct band *band,char *c){ if (ctest->runmode){ //cq_run_by_number(2); // $B TU QRZ process_input(band, "", 0); } } void add_unres(struct band *band, gchar *c){ gchar *tmpc; if (!band->unres){ band->unres=g_strdup(c); return; } tmpc=g_strconcat(band->unres, " ", c, NULL); g_free(band->unres); band->unres=tmpc; } void add_date_time(struct band *band){ char *d; time_t now; struct tm utc; time(&now); gmtime_r(&now, &utc); if (!band->tmpqsos[0].date_str){ d=g_strdup_printf("%4d%02d%02d",1900+utc.tm_year, 1+utc.tm_mon, utc.tm_mday); ADD_TMPQSO_STRING(band,date_str,d,1,udummy); g_free(d); } if (!band->tmpqsos[0].time_str){ d=g_strdup_printf("%02d%02d",utc.tm_hour, utc.tm_min); ADD_TMPQSO_STRING(band,time_str,d,1,udummy); g_free(d); } } void fix_date_time(struct band *band){ struct qso *q; int i; gchar *last,*cur; if (!band->tmpqsos[0].date_str || !band->tmpqsos[0].time_str){ CONDGFREE(band->tmpqsos[0].date_str); CONDGFREE(band->tmpqsos[0].time_str); band->tmpqsos[0].date_str=NULL; band->tmpqsos[0].time_str=NULL; return; } /* tmpqso->date/time filled in */ q=NULL; for (i=band->qsos->len-1;i>=0;i--){ q=(struct qso *)g_ptr_array_index(band->qsos, i); if (q->error || q->dupe) { q=NULL; continue; } break; } if (!q) return; last=g_strconcat(q->date_str, q->time_str, NULL); cur=g_strconcat(band->tmpqsos[0].date_str, band->tmpqsos[0].time_str, NULL); if ((i=strcmp(last,cur))>0){ CONDGFREE(band->tmpqsos[0].date_str); CONDGFREE(band->tmpqsos[0].time_str); band->tmpqsos[0].date_str=NULL; band->tmpqsos[0].time_str=NULL; return; } /* dbg("last=%s cur=%s ret=%d\n", last, cur, i);*/ g_free(last); g_free(cur); } void process_input(void *enterdata, gchar *text, int cq){ char *s,*c; /* struct tmpqsos tq[TMP_QSOS];*/ int num, ret; char *c1,*c2,*c3,*c4,*c5; char *token_ptr; struct band *band = (struct band*)enterdata; int qso_saved = 0; char *oldtmpqcall = NULL; //dbg("process_input('%s', cq=%d)\n", text, cq); c1=c2=c3=c4=c5=NULL; CONDGFREE(band->unres); /* CONDGFREE(band->qrv_str);*/ #ifdef HAVE_SNDFILE ssbd_watchdog(ssbd, 1); #endif s=g_strdup(text); num=0; for (c=strtok_r(s,DELIM, &token_ptr); c!=NULL; c=strtok_r(NULL,DELIM, &token_ptr) ){ num++; /* dbg("item='%s'\n",c); */ /* /m /mm dl/ok1mzm/p */ add_tmpxchg(band, c); FREE_Cx; if (ctest->exctype == EXC_VERIFIED){ if (is_valid_vexc(excdb, c)){ add_tmpqso_exc(band,c,1); after_exc(band,c); continue; } } /***** LOCATOR *************************************************/ if (regcmp(c,"^[A-R]{2}[0-9]{2}[A-X]{2}$")==0){ add_tmpqso_locator(band,c,1,0); band->last_item = LI_WWL; after_locator(band, c); continue; } FREE_Cx; if (ctest->wwlused == 3 || ctest->wwlused == 4){ // 3=used(4), 4=opt(4) if (regcmp(c,"^[A-R]{2}[0-9]{2}$")==0){ add_tmpqso_locator(band,c,1,1); band->last_item = LI_WWL; after_locator(band, c); continue; } FREE_Cx; } /***** 2-3 digits 111-599 ***********************************************/ if (regmatch(c,"^([1-5][1-9]{1,2})$", &c1, &c2, &c3, NULL)==0){ switch (ctest->tttype){ case TT_RSTS: add_tmpqso_rsts(band, c2); continue; case TT_RSTR: add_tmpqso_rstr(band, c2); continue; case TT_QSONRR: add_tmpqso_qsonrr(band, c2); after_qsonrr(band, c2); continue; case TT_EXC: add_tmpqso_exc(band, c2, 1); after_exc(band,c2); continue; default: add_unres(band, c2); continue; } } FREE_Cx; /***** 2-3 digits 111-599 ***********************************************/ if (regmatch(c,"^([1-5][1-9]{1,2}[ARMS]{0,1})$", &c1, &c2, &c3, NULL)==0){ switch (ctest->tttype){ case TT_RSTS: add_tmpqso_rsts(band, c2); continue; case TT_RSTR: add_tmpqso_rstr(band, c2); continue; case TT_EXC: add_tmpqso_exc(band, c2, 1); after_exc(band,c2); continue; default: add_unres(band, c2); continue; } } FREE_Cx; /***** special RST ***********************************************/ if (regmatch(c,"^([R1-5][1-9]{1,2})$", &c1, &c2, &c3, NULL)==0){ switch (ctest->tttype){ case TT_RSTS: add_tmpqso_rsts(band, c2); continue; case TT_RSTR: add_tmpqso_rstr(band, c2); continue; case TT_EXC: add_tmpqso_exc(band, c2, 1); after_exc(band,c2); continue; default: add_unres(band, c2); continue; } } FREE_Cx; /***** 2-3 digits 000-999 ***********************************************/ if (regmatch(c,"^([0-9]{1,3})$", &c1, &c2, &c3, NULL)==0){ switch (ctest->tttype){ case TT_NONE: continue; case TT_QSONRR: add_tmpqso_qsonrr(band, c2); after_qsonrr(band, c2); continue; case TT_EXC: add_tmpqso_exc(band, c2, 1); after_exc(band,c2); continue; default: add_unres(band, c2); continue; } } FREE_Cx; /***** four digits QSO nr. ***********************************************/ if (regmatch(c,"^([0-9]{4})$", &c1, &c2, NULL)==0){ add_tmpqso_qsonrr(band, c2); after_qsonrr(band, c2); continue; } FREE_Cx; #if 0 // matched by 2-3 digits or special RST /***** RST *************************************************/ if (regcmp(c,"^[R1-5][1-9]{1,2}[ARMS]{0,2}$")==0){ if (ctest->qsoused){ add_tmpqso_rstr(band, c); }else{ add_tmpqso_rsts(band, c); } continue; } FREE_Cx; #endif /***** RSTR ***********************************************/ if (regmatch(c,"^([R1-5][1-9]{1,2}[ARMS]{0,2}),$", &c1, &c2, &c3, NULL)==0){ add_tmpqso_rstr(band, c2); continue; } FREE_Cx; /***** RSTS ***********************************************/ if (regmatch(c,"^([R1-5][1-9]{1,2}[ARMS]{0,2})'", &c1, &c2, &c3, NULL)==0){ add_tmpqso_rsts(band, c2); continue; } FREE_Cx; /***** QSONRR ***********************************************/ if (regmatch(c,"^([0-9]{1,4});", &c1, &c2, &c3, NULL)==0){ add_tmpqso_qsonrr(band, c2); after_qsonrr(band, c2); continue; } FREE_Cx; if (ctest->excused>0 && !ctest->qsoused){ /***** RST RECV + EXC ****************************************/ if (get_mode() == MOD_CW_CW) ret=regmatch(c,"^([1-5][1-9]{2})[-_]?(.*)$",&c1,&c2,&c3,NULL); else ret=regmatch(c,"^([1-5][1-9]{1})[-_]?(.*)$",&c1,&c2,&c3,NULL); if (ret==0){ char *d; d=c3; if (!is_valid_vexc(excdb, d)){ add_unres(band, d); continue; } add_tmpqso_exc(band,d,1); ADD_TMPQSO_STRING(band,rstr,c2,1,uexc); add_date_time(band); band->last_item = LI_NONE; wkd_tmpqso(band, WT_RSTR, c2); #ifdef HAVE_SNDFILE ssbd->code++; #endif after_exc(band,d); continue; } FREE_Cx; } /***** RST RECV + QSONR RECV ************************************/ if (regmatch(c,"^([R1-5][1-9]{1,2}[ARMS]{0,2})[-_]?([0-9]{3,4})$",&c1,&c2,&c3,NULL)==0){ if (add_tmpqso_qsonrr(band, c3) != 0){ add_unres(band, c); continue; } add_tmpqso_rstr(band, c2); after_qsonrr(band, c2); continue; } FREE_Cx; /***** TIME ****************************************************/ if (regmatch(c,"^([0-2]?[0-9])[:\\.]([0-5]?[0-9])$",&c1,&c2,&c3,NULL)==0){ if (atoi(c2)>=24) { add_unres(band, c); continue;} c4=g_strdup_printf("%02d%02d",atoi(c2),atoi(c3)); ADD_TMPQSO_STRING(band,time_str,c4,1,udummy); g_free(c4); c4=NULL; continue; } FREE_Cx; if (regmatch(c,"^[:\\.]([0-5]?[0-9])$",&c1,&c2,NULL)==0){ time_t now; struct tm utc; time(&now); gmtime_r(&now, &utc); c4=g_strdup_printf("%02d%02d",utc.tm_hour, atoi(c2)); ADD_TMPQSO_STRING(band,time_str,c4,1,udummy); g_free(c4); c4=NULL; continue; } FREE_Cx; /****** DATE **************************************************/ if (regmatch(c,"^([0-9]{4})([0-9]{2})([0-9]{2})$",&c1,&c2,&c3,&c4, NULL)==0){ int year,month,day; /*dbg("%s %s %s %s\n",c1,c2,c3,c4);*/ /* year = atoi(c1);*/ year = atoi(c2); month = atoi(c3); day = atoi(c4); if (year < 1900 || year > 3000 || month < 1 || month > 12 || day < 1 || day > 31) { add_unres(band, c); continue; } ADD_TMPQSO_STRING(band,date_str,c,1,udummy); continue; } FREE_Cx; #if 0 four digits is now QSO number if (regmatch(c,"^([0-9]{2})([0-9]{2})$",&c1,&c2,&c3, NULL)==0){ int month,day; time_t now; struct tm utc; char s[40]; /*dbg("%s %s %s %s\n",c1,c2,c3,c4);*/ month = atoi(c2); day = atoi(c3); if (month < 1 || month > 12 || day < 1 || day > 31) { add_unres(band,c); continue; } time(&now); gmtime_r(&now, &utc); sprintf(s, "%04d%02d%02d", 1900+utc.tm_year, month, day); ADD_TMPQSO_STRING(band,date_str,s,1,udummy); continue; } FREE_Cx; #endif /****** /X, e.g. /P ***********************************************/ if (regmatch(c,"^(\\/([A-Z0-9]{1,3})+)+$",&c1,&c2,&c3,&c4,NULL)==0){ gchar *stroke, *newcall; oldtmpqcall = TMPQ.callsign; /*dbg("%s %s %s %s\n",c1,c2,c3,c4);*/ if (!band->tmpqsos[0].callsign) { add_unres(band,c); continue;} stroke = g_strdup(c1); FREE_Cx; if (regmatch(band->tmpqsos[0].callsign, "^([0-9A-Z]{1,3}\\/)?([0-9][A-Z]|[A-Z]{1,2}[0-9]{1,4}[A-Z]{1,3})(\\/([A-Z0-9]{1,3})+)+$", &c1, &c2, &c3, &c4, &c5, NULL)==0){ if (c4 && strcmp(c4, stroke)==0) newcall = g_strconcat(c2?c2:"", c3, NULL); else newcall = g_strconcat(c2?c2:"", c3, stroke, NULL); }else{ newcall = g_strconcat(band->tmpqsos[0].callsign, stroke, NULL); } ADD_TMPQSO_STRING(band, callsign, newcall, 1, ucallsign); after_callsign(band,newcall, oldtmpqcall); g_free(newcall); g_free(stroke); #ifdef HAVE_SNDFILE ssbd->code++; #endif continue; } FREE_Cx; /***** CALLSIGN 1 *************************************************/ if (regcmp(c,"^([0-9A-Z]{1,3}\\/)?([0-9][A-Z]|[A-Z]{1,2}[0-9]?)[0-9]{1,3}[A-Z]{1,3}(\\/[A-Z0-9]{1,3})*$")==0){ struct qso *qso; int i; oldtmpqcall = TMPQ.callsign; i = get_qso_index_by_callsign(band, c); if (ctest->expmode) i = -1; if (i>=0 && !is_rover(c)){ qso=(struct qso*)g_ptr_array_index(band->qsos, i); if (!band->ignoreswap){ band->dupe_in_tmpqso_index = i; compute_qrv_wkd(c); duplicate_callsign(qso); } continue; } ADD_TMPQSO_STRING(band,callsign,c,1,ucallsign); band->last_item = LI_CALL; after_callsign(band, c, oldtmpqcall); #ifdef HAVE_SNDFILE ssbd->code++; #endif continue; } FREE_Cx; /***** TWO LETTERS ****************************************************/ if (regcmp(c,"^([A-Z][A-Z])$")==0){ /*dbg("TWO %s \n", c);*/ #ifdef HAVE_SNDFILE ssbd->code++; #endif if (band->last_item==LI_WWL){ if (band->tmpqsos[0].locator && band->tmpqsos[0].ulocator){ band->tmpqsos[0].locator[4]='\0'; strcat(band->tmpqsos[0].locator, c); after_locator(band,TMPQ.locator); } continue; } if (band->last_item==LI_CALL){ goto nasty_hack; } add_unres(band, c); continue; } FREE_Cx; /***** QSL CARD PROMISED *********************************************/ if (strcasecmp(c,"q")==0){ band->tmpqsos[0].qsl = !band->tmpqsos[0].qsl; continue; } /***** TWO DIGITS and TWO LETTERS ********************************************/ if (regcmp(c,"^([0-9][0-9][A-Z][A-Z])$")==0){ /* dbg("TWO and TWO %s \n", c);*/ if (band->last_item==LI_WWL){ if (band->tmpqsos[0].locator && band->tmpqsos[0].ulocator){ band->tmpqsos[0].locator[2]='\0'; strcat(band->tmpqsos[0].locator, c); after_locator(band,TMPQ.locator); } } #ifdef HAVE_SNDFILE ssbd->code++; #endif continue; } FREE_Cx; /***** ONE OR THREE LETTERS *******************************************/ if (regcmp(c,"^([A-Z]{1,3})$")==0){ struct qso *qso; oldtmpqcall = TMPQ.callsign; /*dbg("ONE OR THREE %s \n", c);*/ nasty_hack:; FREE_Cx; if (band->tmpqsos[0].callsign && band->tmpqsos[0].ucallsign && regmatch(band->tmpqsos[0].callsign, "^([0-9A-Z]{1,3}\\/)?([0-9][A-Z]|[A-Z]{1,2}[0-9]{1,4})([A-Z]{1,3})((\\/[A-Z0-9]{1,3})*)$", &c1, &c2, &c3, &c4, &c5, NULL)==0){ GString *gs; int i; /*dbg("c1=%s\nc2=%s\nc3=%s\nc4=%s\nc5=%s\n", c1, c2, c3, c4, c5);*/ gs=g_string_sized_new(20); if (c2) g_string_append(gs, c2); if (c3) g_string_append(gs, c3); if (c) g_string_append(gs, c); if (c5) g_string_append(gs, c5); i = get_qso_index_by_callsign(band, gs->str); if (ctest->expmode) i = -1; if (i>=0 && !is_rover(gs->str)){ qso = (struct qso *)g_ptr_array_index(band->qsos, i); if (!band->ignoreswap){ band->dupe_in_tmpqso_index = i; compute_qrv_wkd(c); duplicate_callsign(qso); } g_string_free(gs, TRUE); continue; } g_free(band->tmpqsos[0].callsign); band->tmpqsos[0].callsign=g_strdup(gs->str); /* ADD_TMPQSO_STRING */ after_callsign(band, gs->str, oldtmpqcall); g_string_free(gs, TRUE); #ifdef HAVE_SNDFILE ssbd->code++; #endif } continue; } FREE_Cx; /***** REMARK ************************************************************/ if (regmatch(c,"^#(.*)",&c1,&c2,&c3,&c4,NULL)==0){ if (TMPQ.remark) g_free(TMPQ.remark); TMPQ.remark=g_strdup(c2); fixsemi(TMPQ.remark); continue; } /***** EXC ************************************************************/ if (regmatch(c,"(.*)\\.$",&c1,&c2,&c3,&c4,NULL)==0){ if (!c2 || !*c2){ add_tmpqso_exc(band, "nil", 1); wkd_tmpqso(band, WT_EXC, c2); continue; } if (!is_valid_vexc(excdb, c2)){ add_unres(band, c2); continue; } add_tmpqso_exc(band,c2,1); after_exc(band,c2); continue; } FREE_Cx; /***** QRG ************************************************************/ if (regmatch(c,"\\.([0-9][0-9][0-9])$",&c1,&c2,&c3,&c4,NULL)==0){ #ifdef HAVE_HAMLIB freq_t qrg; if (!trig) continue; int khz = atoi(c2); qrg = trig->qrg; dbg("khz=%d qrg=%f\n", khz, qrg); qrg = floor(qrg/1000000.0) * 1000000.0 + khz * 1000.0; dbg("qrg=%f\n", qrg); trig_set_qrg(trig, qrg); #endif continue; } FREE_Cx; /***** CALLSIGN 2 *************************************************/ if (regmatch(c,"^([0-9A-Z]+)/$",&c1,&c2,&c3,&c4,NULL)==0){ struct qso *qso; int i; oldtmpqcall = TMPQ.callsign; i = get_qso_index_by_callsign(band, c2); if (ctest->expmode) i = -1; if (i>=0 && !is_rover(c2)){ qso = (struct qso *)g_ptr_array_index(band->qsos, i); if (!band->ignoreswap){ band->dupe_in_tmpqso_index = i; compute_qrv_wkd(c); duplicate_callsign(qso); } continue; } ADD_TMPQSO_STRING(band,callsign,c2,1,ucallsign); band->last_item = LI_CALL; after_callsign(band, c2, oldtmpqcall); continue; } FREE_Cx; /* item is unresolved */ add_unres(band, c); FREE_Cx; } FREE_Cx; if (!num){ if (band->tmpqsos[0].callsign && band->tmpqsos[0].ucallsign && (band->tmpqsos[0].rsts || ctest->rstused!=1) && /* 0=no/1=yes */ (band->tmpqsos[0].rstr || ctest->rstused!=1) && (band->tmpqsos[0].qsonrr || ctest->qsoused!=1) && ((band->tmpqsos[0].exc && band->tmpqsos[0].uexc) || ctest->excused!=1) && ((band->tmpqsos[0].locator && band->tmpqsos[0].ulocator) || ctest->wwlused!=1) && can_cq(aband) ) { struct qso *q; fix_date_time(band); add_date_time(band); q=g_new0(struct qso,1); q->source = g_strdup(net->myid); q->stamp = time(NULL); q->date_str = g_strdup(TMPQ.date_str); q->time_str = g_strdup(TMPQ.time_str); q->callsign = g_strdup(TMPQ.callsign); q->operator_ = g_strdup(band->operator_); q->rsts = g_strdup(TMPQ.rsts?TMPQ.rsts:""); q->rstr = g_strdup(TMPQ.rstr?TMPQ.rstr:""); if (ctest->qsoglob){ q->qsonrs = g_strdup_printf("%03d", ctest->allqsos->len+1); }else{ q->qsonrs = g_strdup(TMPQ.qsonrs?TMPQ.qsonrs:""); } q->qsonrr = g_strdup(TMPQ.qsonrr?TMPQ.qsonrr:""); if (band->tmpqsos[0].ulocator){ q->locator = g_strdup(TMPQ.locator); q->qrb = band->tmpqsos[0].qrb; q->qtf = band->tmpqsos[0].qtf; }else{ q->locator = g_strdup(""); } q->dupe = band->tmpqsos[0].dupe; q->qsop = 0; /* update_stats */ q->qsl = band->tmpqsos[0].qsl; q->remark = g_strdup(TMPQ.remark?TMPQ.remark:""); fixsemi(q->remark); if (TMPQ.exc){ if (strcmp(TMPQ.exc, "nil")!=0) q->exc = g_strdup(TMPQ.exc); else q->exc = g_strdup(""); }else{ q->exc = g_strdup(""); } /* q->serial = ctest->serial++;*/ #ifdef HAVE_HAMLIB if (trig && trig->qrg >= band->qrg_min * 1000.0 && trig->qrg <= band->qrg_max * 1000.0) q->qrg = trig->qrg; else #endif q->qrg = 0.0; if (get_mode() == MOD_SSB_SSB || get_mode() == MOD_CW_CW){ int s,r; /* CHANGE menu2.c refresh_edit_qso */ s=strlen(q->rsts); r=strlen(q->rstr); if (s==3 && r==3) q->mode=MOD_CW_CW; if (s==2 && r==2) q->mode=MOD_SSB_SSB; if (s==3 && r==2) q->mode=MOD_CW_SSB; if (s==2 && r==3) q->mode=MOD_SSB_CW; } q->ser_id=-1; /* computed by add_qso_to_index */ compute_qrbqtf(q); /* for kx & ky */ add_qso(band,q); write_qso_to_swap(band, q); replicate_qso(NULL, q); update_stats(band, band->stats, q); recalc_allb_stats(); minute_stats(band); recalc_statsfifo(band); recalc_worked_skeds(band); #ifdef HAVE_SNDFILE if (ssbd_recording(ssbd)){ ssbd_abort(ssbd,1); ssbd_abort(ssbd,0); } #endif check_autosave(); map_add_qso(q); map_clear_qso(&band->tmplocqso); ctrl_back(band); #ifdef HAVE_HAMLIB if (ctest->runmode && cfg->rig_clr_rit){ trig_set_rit(trig, 0.0); } #endif qso_saved = 1; } } dbg("process_input(runmode=%d, len=%d, cq=%d, last_cq=%p)\n", ctest->runmode, strlen(text), cq, gses->last_cq); if (qso_saved){ if (gses->mode == MOD_CW_CW && ctest->runmode && strlen(text)==0){ // tady muzeme prepsat $C 5NN $MX, pokud se znacka opravuje a zadava se vsechno najednou cq_run_by_number(2); // $B TU QRZ } clear_tmpqsos(band,1); }else{ if (gses->mode == MOD_CW_CW && ctest->runmode && strlen(text)==0 && cq!= 0 && gses->last_cq == NULL){ if (TMPQ.callsign){ cq_run_by_number(1); // $C 5NN $MX }else{ cq_run_by_number(0); // CQ $MC TEST } } } g_free(s); redraw_later(); } void draw_time(void){ char s[16]; time_t now; struct tm utc; int color; time(&now); gmtime_r(&now, &utc); sprintf(s, " %d:%02d:%02d ", utc.tm_hour, utc.tm_min, utc.tm_sec); #ifndef WIN32 //__CYGWIN__ color=COL_RED; if (ntpq && ntpq->good) #endif color=COL_NORM; print_text(term->x-6-strlen(s),0,11,s,color); } void time_func(cba_t cba){ struct timeval tv; int remains; /*gettimeofday(&tv, NULL); dbg("usec=%06d\n", tv.tv_usec);*/ /* disable time drawing when bfu is active */ //if (term->windows.next == term->windows.prev || // gses->win->prev->handler == cwwindow_func) if (gses->win->prev->handler != mainmenu_func) draw_time(); gettimeofday(&tv, NULL); remains=1000-(tv.tv_usec/1000); /*dbg("usec=%06d remains=%d\n", tv.tv_usec, remains);*/ gses->timer_id = install_timer(remains, time_func, CBA0); } void print_tucnak(int x, int y){ int col_black, col_white, col_yellow; if (term->spec->col){ col_black=COL(0x38);/* 3f */ col_white=COL(0x7f); col_yellow=COL(0x7b); }else{ col_black=COL(0x70); col_white=COL(0x3f); col_yellow=COL(0x7b); } fill_area( x-1, y-1, 23, 14, col_black); print_text(x+8, y, -1,"#####",col_black); print_text(x+7, y+1, -1,"#######",col_black); print_text(x+7, y+2, -1,"#######",col_black); print_text(x+9, y+2, 1,"O",col_white); print_text(x+11,y+2, 1,"O",col_white); print_text(x+7, y+3, -1,"#######",col_black); print_text(x+8, y+3, -1,"#####",col_yellow); print_text(x+5, y+4, -1,"##",col_black); print_text(x+7, y+4, -1,"##",col_white); print_text(x+9 ,y+4, -1,"###",col_yellow); print_text(x+12,y+4, -1,"##",col_white); print_text(x+14,y+4, -1,"##",col_black); print_text(x+4, y+5, -1,"#",col_black); print_text(x+5, y+5, -1,"##########",col_white); print_text(x+15,y+5, -1,"##",col_black); print_text(x+3, y+6, -1,"#",col_black); print_text(x+4, y+6, -1,"############",col_white); print_text(x+16,y+6, -1,"##",col_black); print_text(x+3, y+7, -1,"#",col_black); print_text(x+4, y+7, -1,"############",col_white); print_text(x+16,y+7, -1,"###",col_black); print_text(x+2 ,y+8, -1,"##",col_yellow); print_text(x+4, y+8, -1,"#",col_black); print_text(x+5, y+8, -1,"###########",col_white); print_text(x+16,y+8, -1,"##",col_black); print_text(x+18,y+8,-1,"#",col_yellow); print_text(x ,y+9, -1,"######",col_yellow); print_text(x+6, y+9, -1,"#",col_black); print_text(x+7, y+9, -1,"########",col_white); print_text(x+14,y+9, -1,"#",col_black); print_text(x+15,y+9,-1,"######",col_yellow); print_text(x ,y+10,-1,"#######",col_yellow); print_text(x+7, y+10,-1,"#",col_black); print_text(x+8, y+10,-1,"######",col_white); print_text(x+13,y+10,-1,"#",col_black); print_text(x+14,y+10,-1,"#######",col_yellow); print_text(x+2, y+11,-1,"#####",col_yellow); print_text(x+7, y+11,-1,"########",col_black); print_text(x+14,y+11,-1,"#####",col_yellow); } int load_hicalls_from_file(char *filename){ FILE *f; gchar *c; GString *gs; // gchar **items, *peerid; //char bandchar; f=fopen(filename, "rt"); if (!f) return 1; g_hash_table_foreach_remove(gses->hicalls, free_gstr, NULL); gs = g_string_sized_new(100); while( (c=safe_fgets(gs, f, 0)) != NULL){ /* items = g_strsplit(c, ";", 3); if (!items) continue; if (!items[1] || !items[2]) { g_strfreev(items); continue; } peerid=items[0]; bandchar=items[1][0]; */ g_hash_table_insert(gses->hicalls, g_strdup(gs->str), g_strdup("")); } g_string_free(gs, 1); fclose(f); return 0; } void save_one_hicall(gpointer key, gpointer value, gpointer user_data){ GString *gs; gchar *call; gs = (GString *) user_data; call = (gchar *) key; g_string_sprintfa(gs, "%s\n", call); } int save_hicalls_to_file(char *filename){ FILE *f; int ret; GString *gs; f = fopen(filename, "wt"); if (!f){ log_addf(VTEXT(T_CANT_WRITE_S), filename); return errno; } gs=g_string_sized_new(1000); g_hash_table_foreach(gses->hicalls, save_one_hicall, (gpointer) gs); ret = fprintf(f,"%s",gs->str) != gs->len ? errno: 0; g_string_free(gs, 1); fclose(f); return ret; } tucnak2-2.48/src/qsodb.c0000644000175000017500000013741311714322064012013 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" struct contest *ctest; struct band *aband; char *mode_msg[]={ "unspecified", "SSB", "CW", "SSBs CWr", "CWs SSBr", "AM", "FM", "RTTY", "SSTV", "ATV" /* 9 */ }; int init_ctest(){ /*dbg("init_ctest\n");*/ if (ctest) return 0; ctest = g_new0(struct contest, 1); ctest->bands = g_ptr_array_new(); ctest->bystamp = g_hash_table_new(g_str_hash, g_str_equal); ctest->allqsos = g_index_array_new(); ctest->spypeers = g_ptr_array_new(); ctest->allb_prefs = g_hash_table_new(g_str_hash, g_str_equal); /* ctest->serial = 1;*/ ctest->minute_timer_id=install_timer(100, timer_minute_stats_all, CBA0); return 0; } int new_ctest(char *tdate){ struct stat st; int counter; time_t now; struct tm tm; gchar *c; int ret; static char s[1024]; /* for msg_box */ int nowdate_int, ctestdate_int; now = time(NULL); gmtime_r(&now, &tm); if (tdate){ ctest->cdate = g_strdup(tdate); nowdate_int = (tm.tm_year+1900)*10000 + (tm.tm_mon+1)*100 + tm.tm_mday; ctestdate_int = atoi(ctest->cdate); if (/*nowdate_int >= ctestdate_int && */nowdate_int <= ctestdate_int + 2) ctest->oldcontest = 0; else ctest->oldcontest = 1; }else{ ctest->cdate = g_strdup_printf("%4d%02d%02d", tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday ); ctest->oldcontest = 0; } ctest->directory = g_strdup_printf("%s/tucnak/%s", getenv("HOME"), ctest->cdate); counter=0; while (stat(ctest->directory,&st)==0){ counter++; g_free(ctest->directory); ctest->directory = g_strdup_printf("%s/tucnak/%s.%d", getenv("HOME"), ctest->cdate, counter); } if (mkdir_p(ctest->directory,0777)){ g_snprintf(s,1000, VTEXT(T_CANT_CREATE_HOME_S),ctest->directory); errbox(s,errno); free_ctest(); return -1; } c = g_strdup_printf("%s/desc",ctest->directory); ctest->descfile = fopen(c,"wt"); if (!ctest->descfile){ g_snprintf(s,1000, "%s %s", VTEXT(T_CANT_WRITE),c); errbox(s,errno); g_free(c); free_ctest(); return -1; } g_free(c); setvbuf(ctest->descfile, NULL, _IONBF, 0); if (lockf(fileno(ctest->descfile), F_TLOCK, 0)){ g_snprintf(s,1000, "%s %s", VTEXT(T_CANT_LOCK),c); errbox(s,errno); free_ctest(); return -1; } ret=fprintf(ctest->descfile,"%s %s %s\n", ctest->cdate, uc(ctest->pcall), ctest->tname); fsync(fileno(ctest->descfile)); if (ctest->logfile) { fclose(ctest->logfile); ctest->logfile=NULL; } c=g_strdup_printf("%s/log", ctest->directory); ctest->logfile = fopen(c, "at"); if (!ctest->logfile){ g_snprintf(s,1000, VTEXT(T_CANT_OPEN_S),c); g_free(c); msg_box(NULL, VTEXT(T_ERROR), AL_CENTER, s, NULL, 1, VTEXT(T_OK), NULL, B_ENTER | B_ESC); g_free(c); free_ctest(); return -1; } g_free(c); setvbuf(ctest->logfile, NULL, _IONBF, 0); set_ctest_title(); #ifdef HAVE_SDL maps_reload(); #endif return 0; } int load_ctest_from_mem(struct contest *ctest, gchar *datedir, GHashTable *hash){ ctest->directory = g_strdup(datedir); /* if (ctest->tname) g_free((gpointer)ctest->tname); ctest->tname= g_strdup((gchar *)g_hash_table_lookup(hash, "tname")); */ STORE_HASH_STR(ctest, tname); STORE_HASH_STR(ctest, tdate); STORE_HASH_STR(ctest, pcall); STORE_HASH_STR(ctest, pwwlo); STORE_HASH_STR(ctest, pexch); STORE_HASH_STR(ctest, padr1); STORE_HASH_STR(ctest, padr2); STORE_HASH_STR(ctest, pclub); STORE_HASH_STR(ctest, rname); STORE_HASH_STR(ctest, rcall); STORE_HASH_STR(ctest, radr1); STORE_HASH_STR(ctest, radr2); STORE_HASH_STR(ctest, rpoco); STORE_HASH_STR(ctest, rcity); STORE_HASH_STR(ctest, rcoun); STORE_HASH_STR(ctest, rphon); STORE_HASH_STR(ctest, rhbbs); { gchar *c; c = (gchar *)g_hash_table_lookup(hash, "qsoused"); if (c) ctest->qsoused= atoi(c); else ctest->qsoused = 0; } STORE_HASH_STR(ctest, default_rs); STORE_HASH_STR(ctest, default_rst); STORE_HASH_INT(ctest, qsoused); STORE_HASH_INT(ctest, qsomult); STORE_HASH_INT(ctest, qsoglob); STORE_HASH_INT(ctest, prefmult); STORE_HASH_INT(ctest, prefglob); STORE_HASH_INT(ctest, dxcbonu); STORE_HASH_INT(ctest, dxcmult); STORE_HASH_INT(ctest, excused); STORE_HASH_INT(ctest, exctype); STORE_HASH_STR(ctest, excname); STORE_HASH_INT(ctest, excbonu); STORE_HASH_INT(ctest, excmult); STORE_HASH_INT_DEF(ctest, exccfm, 1); STORE_HASH_INT(ctest, qsop_method); STORE_HASH_INT(ctest, rstused); STORE_HASH_INT(ctest, defrstr); STORE_HASH_INT(ctest, total_method); STORE_HASH_INT(ctest, wwltype); STORE_HASH_INT(ctest, wwlused); STORE_HASH_INT(ctest, wwlbonu); STORE_HASH_INT(ctest, wwlmult); STORE_HASH_INT_DEF(ctest, wwlcfm, 1); STORE_HASH_INT_DEF(ctest, tttype, 1); STORE_HASH_INT(ctest, expmode); set_ctest_title(); // dbg("defrstr=%d\n", ctest->defrstr); /*#ifdef HAVE_SDL maps_reload(); #endif */ return 0; } struct band *init_band(struct config_band *confb, GHashTable *opt_band, struct zstring *zs){ struct band *b; gchar *c; static char s[1024]; /* for msg_box */ if (init_ctest()) return NULL; if (confb){ b=find_band_by_pband(confb->pband); if (b) return b; } b=g_new0(struct band,1); b->qsos = g_ptr_array_new(); // b->mode = MOD_SSB_SSB; // b->bandmulti = 1; /* b->spymode = SM_INPUTLINE;*/ if (confb){ /* usally new contest */ b->bandchar = confb->bandchar; b->pband = g_strdup(confb->pband); if (confb->qrg_min>30000) b->bandname = g_strdup(b->pband); else b->bandname = g_strdup(confb->adifband); b->qrg_min = confb->qrg_min; b->qrg_max = confb->qrg_max; b->readonly = confb->readonly; b->psect = confb->psect; /* gint */ if (cfg->operator_ && *cfg->operator_){ b->operator_ = fixsemi(g_strdup(cfg->operator_)); }else{ b->operator_ = fixsemi(g_strdup(get_raw_call(s,ctest->pcall))); } b->stxeq = g_strdup(confb->stxeq); b->spowe = g_strdup(confb->spowe); b->srxeq = g_strdup(confb->srxeq); b->sante = g_strdup(confb->sante); b->santh = g_strdup(confb->santh); b->mope1 = g_strdup(confb->mope1); b->mope2 = g_strdup(confb->mope2); b->remarks = g_strdup(confb->remarks); b->skedqrg = g_strdup(confb->skedqrg); b->band_sw = confb->band_sw; /* struct zstring *zs = config_band_format(confb); dbg("zs='%s'\n", zs->str); struct config_band *cb2 = config_band_parse(zs); printf("%p\n", cb2); */ } if (opt_band){ /* usually loading contest */ GHashTable *hash = opt_band; gchar *ccc; struct config_band *tmpconfb; STORE_HASH_STR(b, pband); STORE_HASH_CHR(b, bandchar); tmpconfb=get_config_band_by_pband(b->pband); if (tmpconfb){ if (!b->bandchar) b->bandchar=tmpconfb->bandchar; if (tmpconfb->qrg_min>30000) b->bandname = g_strdup(b->pband); else b->bandname = g_strdup(tmpconfb->adifband); b->qrg_min = tmpconfb->qrg_min; b->qrg_max = tmpconfb->qrg_max; b->band_sw = tmpconfb->band_sw; }else{ // contest created under other band configuration b->bandname = g_strdup(b->pband); } // STORE_HASH_INT(b, mode); STORE_HASH_INT(gses, mode); STORE_HASH_STR(b, operator_); if (!b->operator_){ b->operator_ = fixsemi(g_strdup(get_raw_call(s,ctest->pcall))); } ccc = (gchar *)g_hash_table_lookup(hash, "psect"); /*dbg("c=%s\n",ccc);*/ if (isdigit(ccc[0])) b->psect=atoi(ccc); else b->psect=get_psect_int(ccc); STORE_HASH_INT(b, readonly); STORE_HASH_INT(b, saveid); b->saveid++; STORE_HASH_STR(b, stxeq); STORE_HASH_STR(b, spowe); STORE_HASH_STR(b, srxeq); STORE_HASH_STR(b, sante); STORE_HASH_STR(b, santh); /* STORE_HASH_INT(b, mode);*/ STORE_HASH_STR(b, mope1); STORE_HASH_STR(b, mope2); /* STORE_HASH_STR(b, remarks); NO */ STORE_HASH_STR(b, skedqrg); if (!b->skedqrg) b->skedqrg=g_strdup(""); } dbg("%s bandname=%s\n",__FUNCTION__, b->bandname); if (zs){ struct config_band *tmpconfb; band_parse(zs, b); if (cfg->operator_ && *cfg->operator_){ b->operator_ = fixsemi(g_strdup(cfg->operator_)); }else{ b->operator_ = fixsemi(g_strdup(get_raw_call(s,ctest->pcall))); } tmpconfb=get_config_band_by_pband(b->pband); if (tmpconfb) b->readonly = tmpconfb->readonly; } b->il = g_new0(struct inputln,1); b->il->term = term; b->il->enter = process_input; b->il->enterdata = (void *)b; b->il->upconvert = 1; b->il->valid_chars = VALID_CHARS; b->il->readonly = b->readonly; b->il->band = b; { struct event ev = {EV_INIT, 0,0,0}; inputln_func(b->il,&ev); } b->stats = init_stats(); b->tmpstats = init_stats(); b->stats_mutex = g_mutex_new(); c = g_strdup_printf("%s/%c.swp",ctest->directory,b->bandchar); clear_tmpqsos(b, 1); if (!aband){ aband=b; il_set_focus(aband->il); } // dbg("swap=%s\n", c); b->swap = fopen(c,"at"); if (!b->swap){ log_addf(VTEXT(T_CANT_APPEND_S),c); g_free(c); free_band(b); return NULL; } g_free(c); fprintf(b->swap, "ST %d\n", b->saveid-1); b->swapfifo = init_fifo(500); b->qs = g_ptr_array_new(); b->oqs = g_ptr_array_new(); b->unfi = init_fifo(100); b->skeds = g_ptr_array_new(); b->statsfifo1 = init_fifo(1000); g_ptr_array_add(ctest->bands, b); ctest->qrv|=1<<(upcase(b->bandchar)-'A'); aband->tmplocqso.band=aband; /* init_spypeer(b->spypeers, "127.0.0.1:55555"); init_spypeer(b->spypeers, "127.0.0.1:55556");*/ //dbg("bandname='%s'\n", b->bandname); return b; } struct band *find_band_by_pband(char *pband){ int i; struct band *b; if (!ctest) return NULL; for (i=0;ibands->len; i++){ b = g_ptr_array_index(ctest->bands,i); if (!pband) continue; if (strcasecmp(pband, b->pband)==0){ return b; } } return NULL; } struct band *find_band_by_bandchar(char bandchar){ int i; struct band *b; for (i=0;ibands->len; i++){ b = g_ptr_array_index(ctest->bands,i); if (lowcase(bandchar)==lowcase(b->bandchar)){ return b; } } return NULL; } struct band *find_band_by_qrg(double freq){ struct band *b; int i; for (i=0;ibands->len; i++){ b = g_ptr_array_index(ctest->bands,i); if (freq < b->qrg_min * 1000.0) continue; if (freq > b->qrg_max * 1000.0) continue; return b; } return NULL; } struct band *init_qrv_bands(){ int i; struct config_band *confb; /*dbg("init_qrv_bands\n");*/ for (i=0;ibands->len; i++){ confb = g_ptr_array_index(cfg->bands,i); if (!confb) continue; if (confb->qrvnow){ init_band(confb, NULL, NULL); } } return NULL; } void clear_tmpqsos(struct band *b, int set_defaults){ int i; char *c; if (!b) return; b->dupe_in_tmpqso_index = -1; b->last_item = LI_NONE; for(i=0;iunres); CONDGFREE(b->qrv_str); CONDGFREE(b->wkd_str); wkd_tmpqso(b, WT_CLEAR, ""); CONDGFREE(b->call_played); b->agcall = 0; //dbg("clear_tmpqso: call_played='%s' agcall=%d\n", b->call_played, b->agcall); if (!set_defaults) return; if (ctest->qsoused){ c=g_strdup_printf("%03d",b->qsos->len+1); ADD_TMPQSO_STRING(b,qsonrs,c,1,udummy); wkd_tmpqso(b, WT_QSONRS, c); g_free(c); } default_rst_to_tmpqsos(b); #ifdef HAVE_SNDFILE ssbd_callsign(ssbd, ""); ssbd->code = 0; #endif } void default_rst_to_tmpqsos(struct band *b){ gchar *c; int i; if (!ctest) return; for(i=0;iqsoused) return;*/ if (gses->mode == MOD_CW_CW) c=g_strdup(cfg->default_rst); else c=g_strdup(cfg->default_rs); ADD_TMPQSO_STRING(b,rsts,c,1,udummy); wkd_tmpqso(b, WT_RSTS, c); if (ctest->defrstr){ // for(i=0;iswap, "%s\n", gs->str);*/ fprintf(b->swap, "%s qrb=%4.1f\n", gs->str,q->qrb); fflush(b->swap); fifo_adds(b->swapfifo, gs->str); g_string_free(gs, TRUE); return 0; } /* after adding you must call g_index_array_qsort */ void add_qso(struct band *b, struct qso *q){ q->band = b; /* don't dealloc! */ /*q->serial = ctest->serial++;*/ stats_thread_kill(b); g_ptr_array_add(b->qsos,q); add_qso_to_index(q, 0); dirty_band(b); } struct qso *get_qso(struct band *b, gint i){ if (i<0 || i >=b->qsos->len) return NULL; return g_ptr_array_index(b->qsos, i); } struct qso *get_gqso(struct band *b, gint i){ if (ctest->qsoglob){ if (i<0 || i >=ctest->allqsos->len) return NULL; return g_ptr_array_index(ctest->allqsos, i); }else{ if (i<0 || i >=b->qsos->len) return NULL; return g_ptr_array_index(b->qsos, i); } } struct qso *get_qso_by_callsign(struct band *b, gchar *callsign){ struct qso *qso; int i; char raw[25], qraw[25]; get_raw_call(raw, callsign); /* TODO callsigns in hash */ for(i=0;iqsos->len; i++){ qso = g_ptr_array_index(b->qsos, i); if (qso->error) continue; get_raw_call(qraw, qso->callsign); if (strcasecmp(raw, qraw)==0) return qso; } return NULL; } int get_qso_index_by_callsign(struct band *b, gchar *callsign){ struct qso *qso; int i; char raw[25], qraw[25]; get_raw_call(raw, callsign); /* TODO callsigns in hash */ for(i=0;iqsos->len; i++){ qso = g_ptr_array_index(b->qsos, i); if (qso->error) continue; get_raw_call(qraw, qso->callsign); if (strcasecmp(raw, qraw)==0) return i; } return -1; } struct qso *get_qso_by_id(struct band *b, gchar *source, gint ser_id){ struct qso *qso; int i; /* TODO id's in hash */ /*dbg("get_qso_by_id(src=%s, ser_id=%d) \n", source, ser_id);*/ for(i=0;iqsos->len; i++){ qso = (struct qso *)g_ptr_array_index(b->qsos, i); /*dbg(" %s %s %d ",qso->callsign, qso->source, qso->ser_id);*/ if (ser_id != qso->ser_id) continue; if (strcasecmp(source, qso->source)!=0) continue; /*dbg(" OK\n");*/ return qso; } /*dbg(" NULL\n");*/ return NULL; } struct qso *get_qso_by_qsonr(struct band *b, gint qsonrs){ struct qso *qso; int i; /* TODO id's in hash */ for(i=0;iqsos->len; i++){ qso = (struct qso *)g_ptr_array_index(b->qsos, i); if (qsonrs != atoi(qso->qsonrs)) continue; return qso; } return NULL; } void add_error(struct band *b, gchar *remark){ struct qso *eq; time_t now; struct tm utc; if (!ctest && !b) return; if (b->readonly) return; log_addf("added ERROR for band %c, qsonr %d\n", b->bandchar, b->qsos->len+1); time(&now); gmtime_r(&now, &utc); eq = g_new0(struct qso, 1); eq->source = g_strdup(net->myid); eq->operator_ = g_strdup(b->operator_); if (b->tmpqsos[0].date_str){ eq->date_str = g_strdup(b->tmpqsos[0].date_str); eq->time_str = g_strdup(b->tmpqsos[0].time_str); }else{ eq->date_str = g_strdup_printf("%4d%02d%02d",1900+utc.tm_year, 1+utc.tm_mon, utc.tm_mday); eq->time_str = g_strdup_printf("%02d%02d",utc.tm_hour, utc.tm_min); } eq->callsign = g_strdup(b->tmpqsos[0].callsign&&b->tmpqsos[0].ucallsign?b->tmpqsos[0].callsign:"ERROR"); eq->rsts = g_strdup(b->tmpqsos[0].rsts?b->tmpqsos[0].rsts:""); eq->rstr = g_strdup(b->tmpqsos[0].rstr?b->tmpqsos[0].rstr:""); eq->qsonrs = g_strdup(b->tmpqsos[0].qsonrs?b->tmpqsos[0].qsonrs:""); eq->qsonrr = g_strdup(b->tmpqsos[0].qsonrr?b->tmpqsos[0].qsonrr:""); eq->exc = g_strdup(b->tmpqsos[0].exc?b->tmpqsos[0].exc:""); eq->locator = g_strdup(b->tmpqsos[0].locator&&b->tmpqsos[0].ulocator?b->tmpqsos[0].locator:""); eq->error = 1; eq->remark = g_strdup(remark?remark:""); eq->qrg = 0.0; eq->ser_id = -1; /* computed by add_qso_to_index */ add_qso(b, eq); stats_thread_join(b); update_stats(b, b->stats, eq); recalc_allb_stats(); minute_stats(b); recalc_statsfifo(b); if (b->qsos->len+1 != atoi(b->tmpqsos[0].qsonrs)){ g_free(b->tmpqsos[0].qsonrs); if (ctest->qsoused) b->tmpqsos[0].qsonrs = g_strdup_printf("%03d", b->qsos->len+1); else b->tmpqsos[0].qsonrs = g_strdup(""); } wkd_tmpqso(aband, WT_QSONRS, TMPQ.qsonrs); replicate_qso(NULL, eq); redraw_later(); check_autosave(); } /* use update_stats() after this */ void qso_mark_as_error(struct band *b, gint i){ struct qso *qso; qso = g_ptr_array_index(b->qsos, i); qso->error = 1; qso->qsop = 0; dirty_band(b); replicate_qso(NULL, qso); } int add_tmpxchg(struct band *band, gchar *xchg){ if (band->ignoreswap) return -1; fprintf(band->swap, "# %s\n", xchg); fflush(band->swap); fifo_adds(band->swapfifo, xchg ); return 0; } int add_swap(struct band *band, gchar *s){ if (band->ignoreswap) return -1; fprintf(band->swap, "%s\n", s); fflush(band->swap); fifo_adds(band->swapfifo, s); return 0; } //tern int *pnn; void activate_band(struct band *b){ struct event ev={EV_RESIZE, 0, 0, 0}; /*dbg("activate_band(ses=%p,b=%p) %c\n",ses,b);*/ /* dbg("aband=%p\n",aband);*/ if (!b) return; // dbg("pnn=%d\n", *pnn); il_unset_focus(aband->il); aband=b; sw_all_func(&ev, 1); /* sw_default_func(gses->ontop, &ev, 1);*/ gses->ontop->check_bounds(gses->ontop); sw_unset_focus(); il_set_focus(aband->il); get_band_qs(aband, aband->il->cdata); get_oband_qs(aband, aband->il->cdata); get_cw_qs(aband->il->cdata); get_hf_dxc(aband->il->cdata); if (gses->ontop){ switch(gses->ontop->type){ case SWT_STAT: recalc_statsfifo(b); break; case SWT_QRV: sw_qrv_sort(qrvdb); break; default: break; } } cwdaemon_band(cwda, b->band_sw); default_rst_to_tmpqsos(aband); #ifdef HAVE_HAMLIB if (trig){ if (cfg->rig_qrg_t2r){ if (aband->qrg != 0){ trig_set_qrg(trig, aband->qrg); } trig_resend_freq(trig); } } #endif redraw_later(); maps_reload(); chart_reload(); } struct config_band *get_config_band_by_bandchar(char bandchar){ struct config_band *confb; int i; bandchar = upcase(bandchar); for (i=0;ibands->len;i++){ confb = g_ptr_array_index(cfg->bands, i); if (bandchar == upcase(confb->bandchar)) return confb; } return NULL; } struct config_band *get_config_band_by_pband(char *pband){ struct config_band *confb; int i; for (i=0;ibands->len;i++){ confb = g_ptr_array_index(cfg->bands, i); if (strcasecmp(pband, confb->pband)==0) return confb; } return NULL; } struct config_band *get_config_band_by_qrg(int qrg){ /* kHz */ struct config_band *confb; int i; for (i=0;ibands->len;i++){ confb = g_ptr_array_index(cfg->bands, i); if (qrg>=confb->qrg_min && qrg<=confb->qrg_max) return confb; } return NULL; } #if 0 int add_qsos_from_swap(struct band *b, FILE *f){ char s[1025]; gchar **items; struct qso *q; clear_stats(b->stats); while ((fgets(s, 1024, f))!=NULL){ if (s[0]=='#') continue; items = g_strsplit(s, ";", 0); q = g_new0(struct qso, 1); q->date_str = g_strdup(items[0]); q->time_str = g_strdup(items[1]); q->callsign = g_strdup(items[2]); q->mode = atoi(items[3]); q->rsts = g_strdup(items[4]); q->qsonrs = g_strdup(items[5]); q->rstr = g_strdup(items[6]); q->qsonrr = g_strdup(items[7]); q->exc = g_strdup(items[8]); q->locator = g_strdup(items[9]); q->ser_id=-1; /* computed by add_qso_to_index */ g_strfreev(items); compute_qrbqtf(q); add_qso(b, q); update_stats(b, q); } check_autosave(); } #endif void foreach_add_latests_str(gpointer key, gpointer value, gpointer data){ GIndexArray *ia; GString *gs; struct qso *q; ia = (GIndexArray *)value; gs = (GString *)data; if (ia->len<=0) return; if (strcmp(key,"neterr")==0) return; q = (struct qso *) g_index_array_index(ia, ia->len - 1); if (q){ g_string_sprintfa(gs, "%s;%d;", (char *)key, (int)q->stamp); }else{ /* not reached, NULL can be only in the middle of iarray */ dbg("ERROR! q is NULL (foreach_add_latests_str)\n"); g_string_sprintfa(gs, "%s;NULL;", (char *)key); } } gchar *get_latests_str(){ GString *gs; gchar *c; gs = g_string_new("LA "); g_hash_table_foreach(ctest->bystamp, foreach_add_latests_str, gs); /*dbg("get_latests_str='%s'\n", gs->str);*/ g_string_append(gs, "\n"); c = g_strdup(gs->str); g_string_free(gs, 1); return c; } int compare_stamp(const void *a, const void *b){ struct qso **qa, **qb; qa = (struct qso **)a; qb = (struct qso **)b; if (!*qa && !*qb) return 0; if (!*qa) return -1; if (!*qb) return +1; return (int)((*qa)->stamp - (*qb)->stamp); } /* only for backward compatibility with version without ser_id in edi file */ void foreach_source_recalc_ser_id(gpointer key, gpointer value, gpointer data){ int i; struct qso *q; GIndexArray *ia; ia = (GIndexArray *)value; for (i=0; ilen; i++){ q=(struct qso *)g_index_array_index(ia, i); q->ser_id=i; } } void foreach_source_qsort_by_stamp(gpointer key, gpointer value, gpointer data){ GIndexArray *ia; ia = (GIndexArray *)value; g_index_array_qsort(ia, compare_stamp); } void foreach_source_print(gpointer key, gpointer value, gpointer data){ GIndexArray *ia; struct qso *q; int i; ia = (GIndexArray *)value; trace(cfg->trace_qsos, "source: %s", key); for (i=0; ilen; i++){ q = (struct qso *) g_index_array_index(ia, i); dump_qso(q, "foreach_source_print"); } } void dump_all_sources(struct contest *ctest){ int i; struct qso *q; return; if (!ctest){ trace(cfg->trace_qsos, "dump_all_sources(NULL)\n"); return; } g_hash_table_foreach(ctest->bystamp, foreach_source_print, NULL); dbg("ctest->allqsos:\n"); for (i=0; iallqsos->len; i++){ q = (struct qso *) g_index_array_index(ctest->allqsos, i); dump_qso(q, "foreach_source_print"); } trace(cfg->trace_qsos, "---end---"); } void add_qso_to_index(struct qso *q, int qsort_if_needed){ GIndexArray *ia; struct qso *ql; if (q && q->source && strcmp(q->source,"neterr")==0) return; ia = (GIndexArray *) g_hash_table_lookup(ctest->bystamp, q->source); if (!ia) { ia = g_index_array_new(); g_hash_table_insert(ctest->bystamp, g_strdup(q->source), ia); } if (q->ser_id==-1) q->ser_id=ia->len; /* ia is NOT sorted by ser_id! */ g_index_array_add(ia, q); if (qsort_if_needed && ia->len >= 2){ ql = (struct qso *) g_index_array_index(ia, ia->len-2); if (ql->stamp > q->stamp){ /* q is not latest */ g_index_array_qsort(ia, compare_stamp); } } g_index_array_add(ctest->allqsos, q); qrv_set_wkd(qrvdb, q); } void remove_qso_from_index(struct qso *q){ GIndexArray *ia; int ret; ia = (GIndexArray *) g_hash_table_lookup(ctest->bystamp, q->source); ret=g_index_array_remove(ia, q); ret=g_index_array_remove(ctest->allqsos, q); dbg("remove: ret=%d\n", ret); } void compute_qrbqtf(struct qso *q){ double qtf, qtfrad; if (!q) return; /* CHANGE look at add_tmpqso_locator */ qrbqtf(ctest->pwwlo, q->locator, &q->qrb, &qtf, NULL, 2); q->qtf = (int) (qtf+0.5); if (q->qrb < 0.1) { q->qrb = 0; q->qtf = 0; } qtfrad=qtf*MY_PI/180.0; q->kx = (int)( q->qrb*sin(qtfrad)); q->ky = (int)(- q->qrb*cos(qtfrad)); /*dbg("compute_qrbqtf(%s) %s->%s qrb=%f qtf=%d kx=%d ky=%d\n", q->callsign, ctest->pwwlo, q->locator, q->qrb, q->qtf, q->kx, q->ky); */ } int check_autosave(void){ time_t now; now = time(NULL); /* if (cfg->as_disk_aq){ if (!ctest->as_disk_qsonr){*/ save_all_bands_txt(1); /* ctest->as_disk_qsonr = cfg->as_disk_aq; } ctest->as_disk_qsonr--; }*/ if (cfg->as_floppy_aq){ if (!ctest->as_floppy_qsonr){ save_all_bands_txt(2); ctest->as_floppy_qsonr = cfg->as_floppy_aq; } ctest->as_floppy_qsonr--; } return 0; } typedef unsigned chartype; char *my_strstr(const char *phaystack, const char *pneedle){ register const unsigned char *haystack, *needle; register chartype b, c; haystack = (const unsigned char *) phaystack; needle = (const unsigned char *) pneedle; b = *needle; if (b != '\0'){ if (b != '.' && b != '?'){ haystack--; /* possible ANSI violation */ do{ c = *++haystack; if (c == '\0') goto ret0; }while (c != b); } c = *++needle; if (c == '\0') goto foundneedle; ++needle; goto jin; for (;;){ register chartype a; register const unsigned char *rhaystack, *rneedle; do{ a = *++haystack; if (a == '\0') goto ret0; if (a == b) break; a = *++haystack; if (a == '\0') goto ret0; shloop:; }while (a != b && b != '.' && b != '?'); jin:; a = *++haystack; if (a == '\0') goto ret0; if (c!='.' && c!='?' && a != c) goto shloop; rhaystack = haystack-- + 1; rneedle = needle; a = *rneedle; if (*rhaystack == a || a=='.' || a=='?') do{ if (a == '\0') goto foundneedle; ++rhaystack; a = *++needle; if (a!='.' && a!='?'){ if (*rhaystack != a) break; } if (a == '\0') goto foundneedle; ++rhaystack; a = *++needle; }while (*rhaystack == a || a == '.' || a=='?'); needle = rneedle; /* took the register-poor approach */ if (a == '\0') break; } } foundneedle:; return (char*) haystack; ret0:; return 0; } char *my_strcasestr(const char *phaystack, const char *pneedle){ register const unsigned char *haystack, *needle; register chartype b, c; haystack = (const unsigned char *) phaystack; needle = (const unsigned char *) pneedle; b = tolower(*needle); if (b != '\0'){ haystack--; /* possible ANSI violation */ do{ c = tolower(*++haystack); if (c == '\0') goto ret0; }while (c != b); c = tolower(*++needle); if (c == '\0') goto foundneedle; ++needle; goto jin; for (;;){ register chartype a; register const unsigned char *rhaystack, *rneedle; do{ a = tolower(*++haystack); if (a == '\0') goto ret0; if (a == b) break; a = tolower(*++haystack); if (a == '\0') goto ret0; shloop:; }while (a != b); jin:; a = tolower(*++haystack); if (a == '\0') goto ret0; if (a != c) goto shloop; rhaystack = haystack-- + 1; rneedle = needle; a = tolower(*rneedle); if (tolower(*rhaystack) == a) do{ if (a == '\0') goto foundneedle; ++rhaystack; a = tolower(*++needle); if (tolower(*rhaystack) != a) break; if (a == '\0') goto foundneedle; ++rhaystack; a = tolower(*++needle); }while (tolower(*rhaystack) == a); needle = rneedle; /* took the register-poor approach */ if (a == '\0') break; } } foundneedle:; return (char*) haystack; ret0:; return 0; } GPtrArray *get_band_qs(struct band *band, gchar *str){ int i, len; gchar *c; struct qs *qs; struct qso *qso; /*ST_START;*/ g_ptr_array_free_items(band->qs); len = strlen(str); if (len<2) return NULL; qs = g_new0(struct qs, 1); qs->result1 = band->qs; qs->str = str; for (i=0;iqsos->len;i++){ qso = (struct qso *)g_ptr_array_index(band->qsos, i); if (qso->error || qso->dupe) continue; if (qs->result1->len == term->y - QSONR_HEIGHT - 4 - cfg->loglines - ctest->spypeers->len - 1) break; if (qso->callsign && my_strstr(qso->callsign, qs->str)){ if (qso->locator) c=g_strdup_printf("%-10s %-6s%5d/%3d", qso->callsign, qso->locator, (int)qso->qrb, qso->qtf); else c=g_strdup(qso->callsign); /* dbg(",%s", c);*/ g_ptr_array_add(qs->result1, c); continue; } if (qso->locator && my_strstr(qso->locator, qs->str)){ if (qso->callsign) c=g_strdup_printf("%-10s %-6s%5d/%3d", qso->callsign, qso->locator, (int)qso->qrb, qso->qtf); else c=g_strdup_printf("%-10s %-6s%5d/%3d", "", qso->locator, (int)qso->qrb, qso->qtf); /* dbg(",%s", c);*/ g_ptr_array_add(qs->result1, c); continue; } } /* dbg("<\n");*/ g_free(qs); g_index_array_qsort((GIndexArray *)band->qs, compare_gstring); /*ST_STOP;*/ return band->qs; } GPtrArray *get_oband_qs(struct band *oband, gchar *str){ int i, len, j; gchar *c; struct qs *qs; struct qso *qso; /*ST_START;*/ if (ctest->bands->len<2) return oband->oqs; g_ptr_array_free_items(oband->oqs); len = strlen(str); if (len<2) return NULL; qs = g_new0(struct qs, 1); qs->result1 = oband->oqs; qs->str = str; for (j=0;jbands->len;j++){ struct band *band; band = (struct band *)g_ptr_array_index(ctest->bands, j); if (band==oband) continue; for (i=0;iqsos->len;i++){ qso = (struct qso *)g_ptr_array_index(band->qsos, i); if (qso->error || qso->dupe) continue; if (qs->result1->len == term->y - QSONR_HEIGHT - 4 - cfg->loglines - ctest->spypeers->len - 1) break; /* FIXME contest without locator */ if ((qso->callsign && my_strstr(qso->callsign, qs->str))|| (qso->locator && my_strstr(qso->locator, qs->str))){ int j; for (j=0;jresult1->len; j++){ char d[20], *pd, *line; safe_strncpy(d, line=g_ptr_array_index(qs->result1,j), 10); pd = strchr(d, ' '); if (pd) *pd='\0'; if (strcmp(d, qso->callsign)==0){ /* dbg("add %s %c\n", line, band->bandchar);*/ c = g_strdup_printf("%s%c", line, upcase(band->bandchar)); g_ptr_array_index(qs->result1, j) = c; g_free(line); goto cont; } } /* dbg("ins %s %s %c\n", qso->callsign, qso->locator, band->bandchar);*/ c=g_strdup_printf("%-10s %-6s %c", qso->callsign, qso->locator, upcase(band->bandchar)); set_mem_comment(c, c, strlen(c)); g_ptr_array_add(qs->result1, c); goto cont; } cont:; } } /* dbg("<\n");*/ g_free(qs); g_index_array_qsort((GIndexArray *)oband->oqs, compare_gstring); /*ST_STOP;*/ return oband->oqs; } gchar *find_wwl_by_oband(struct band *oband, gchar *call){ int i, j; struct qso *qso; static char raw[256]; if (ctest->bands->len<2) return NULL; if (!ctest->wwlused) return NULL; for (j=0;jbands->len;j++){ struct band *band; band = (struct band *)g_ptr_array_index(ctest->bands, j); if (band==oband) continue; for (i=0;iqsos->len;i++){ qso = (struct qso *)g_ptr_array_index(band->qsos, i); if (qso->error || qso->dupe) continue; get_raw_call(raw, qso->callsign); if (strcasecmp(raw,call)) continue; return qso->locator; /* can be NULL */ } } return NULL; } gchar *find_exc_by_oband(struct band *oband, gchar *call){ int i, j; struct qso *qso; static char raw[256]; if (ctest->bands->len<2) return NULL; if (ctest->excused != 1) return NULL; ST_START; for (j=0;jbands->len;j++){ struct band *band; band = (struct band *)g_ptr_array_index(ctest->bands, j); if (band==oband) continue; for (i=0;iqsos->len;i++){ qso = (struct qso *)g_ptr_array_index(band->qsos, i); if (qso->error || qso->dupe) continue; get_raw_call(raw, qso->callsign); if (strcasecmp(raw,call)) continue; return qso->exc; /* can be NULL */ } } ST_STOP; return NULL; } char *get_raw_call(char *buf, const char *call){ char s[20], *c; char *token_ptr; safe_strncpy0(s,call,20); for (c=strtok_r(s, "/", &token_ptr); c!=NULL; c=strtok_r(NULL, "/", &token_ptr)){ if (strlen(c)<3) continue; if (strlen(c)==3 && c[2]>='0' && c[2]<='9') continue; /* 3rd char cannot be number , OK1 vs G8M */ safe_strncpy0(buf, c, 20); return buf; } safe_strncpy0(buf, call, 20); return buf; } int is_rover(const char *callsign){ int len = strlen(callsign); if (len < 2) return 0; if (callsign[len - 2] != '/') return 0; if (toupper(callsign[len - 1]) != 'R') return 0; return 1; } int get_psect_int(char *psect){ if (strcasecmp(psect, "single")==0) return 1; else if (strcasecmp(psect, "check")==0) return 2; else return 0; } void dump_qso(struct qso *q, char *desc){ if (!q){ trace(cfg->trace_qsos, " NULL"); return; } /* trace(cfg->trace_qsos, " %8s %c%03d %s:%d.%05d %s", q->callsign, upcase(q->band->bandchar), atoi(q->qsonrs), q->source, q->ser_id, q->stamp%100000, desc);*/ trace(cfg->trace_qsos, " %8s %c%03d %s:%d.%05d (qsop=%d error=%d dupe=%d) %s", q->callsign, upcase(q->band->bandchar), atoi(q->qsonrs), q->source, q->ser_id, q->stamp%100000, q->qsop, q->error, q->dupe, desc); } void invalidate_tmpqso(struct band *b, struct qso *q){ char raw[20]; char s[20]; int i; get_raw_call(raw, q->callsign); for (i=0;itmpqsos[i].callsign); if (strcasecmp(s, raw)==0){ b->tmpqsos[i].ucallsign=0; redraw_later(); } } } void foreach_free_bystamp(gpointer key, gpointer value, gpointer data){ GIndexArray *ia; ia = (GIndexArray *)value; g_index_array_free(ia, TRUE); g_free(key); } void free_ctest(){ int i; if (!ctest) return; kill_timer(ctest->minute_timer_id); if (gses->skedw_timer_id > 0) { kill_timer(gses->skedw_timer_id); gses->skedw_timer_id = 0; } dump_all_sources(ctest); if (gses->last_cq_timer_id) { kill_timer(gses->last_cq_timer_id); gses->last_cq_timer_id = 0; } clear_qrv(qrvdb); chart_clear_all(); for (i=0;ibands->len; i++){ free_band((struct band*)g_ptr_array_index(ctest->bands,i)); } if (ctest->descfile) fclose(ctest->descfile); if (ctest->logfile) fclose(ctest->logfile); CONDGFREE(ctest->directory); CONDGFREE(ctest->cdate); CONDGFREE(ctest->tname); CONDGFREE(ctest->tdate); CONDGFREE(ctest->pcall); CONDGFREE(ctest->padr1); CONDGFREE(ctest->padr2); CONDGFREE(ctest->pclub); CONDGFREE(ctest->pwwlo); CONDGFREE(ctest->pexch); CONDGFREE(ctest->default_rs); CONDGFREE(ctest->default_rst); CONDGFREE(ctest->excname); CONDGFREE(ctest->rname); CONDGFREE(ctest->rcall); CONDGFREE(ctest->radr1); CONDGFREE(ctest->radr2); CONDGFREE(ctest->rpoco); CONDGFREE(ctest->rcity); CONDGFREE(ctest->rcoun); CONDGFREE(ctest->rphon); CONDGFREE(ctest->rhbbs); CONDGFREE(ctest->directory); /* CONDGFREE(ctest->pband); CONDGFREE(ctest->); CONDGFREE(ctest->); CONDGFREE(ctest->); */ g_hash_table_foreach_remove(ctest->allb_prefs, free_gpointer_item, NULL); g_hash_table_foreach(ctest->bystamp, foreach_free_bystamp, NULL); g_index_array_free(ctest->allqsos, TRUE); g_ptr_array_free(ctest->bands, TRUE); free_spypeers(ctest->spypeers); g_free(ctest); ctest=NULL; aband=NULL; set_ctest_title(); cq_abort(1); if (!terminate) maps_reload(); chart_reload(); } /* called ONLY when ctest is freeed. bands remain in memory */ void free_band(struct band *b){ int i; struct event ev = {EV_ABORT, 0,0,0}; stats_thread_kill(b); clear_tmpqsos(b, 0); for (i=0;iqsos->len;i++){ struct qso *qso; qso=(struct qso *)g_ptr_array_index(b->qsos, i); free_qso(qso); } CONDGFREE(b->pband); CONDGFREE(b->bandname); CONDGFREE(b->operator_); CONDGFREE(b->stxeq); CONDGFREE(b->spowe); CONDGFREE(b->srxeq); CONDGFREE(b->sante); CONDGFREE(b->santh); CONDGFREE(b->mope1); CONDGFREE(b->mope2); CONDGFREE(b->remarks); CONDGFREE(b->skedqrg); /*CONDGFREE(b->); CONDGFREE(b->); CONDGFREE(b->); CONDGFREE(b->);*/ if (b->skeds) { for (i=0;iskeds->len;i++){ struct sked *sked; sked=(struct sked*)g_ptr_array_index(b->skeds, i); free_sked(sked); } g_ptr_array_free(b->skeds, TRUE); } inputln_func(b->il,&ev); g_free(b->il); if (b->unres) g_free(b->unres); if (b->stats) free_stats(b->stats); if (b->tmpstats) free_stats(b->tmpstats); g_mutex_free(b->stats_mutex); if (b->swap) fclose(b->swap); if (b->qs) g_ptr_array_free_all(b->qs); if (b->oqs) g_ptr_array_free_all(b->oqs); if (b->swapfifo) free_fifo(b->swapfifo); if (b->unfi) free_fifo(b->unfi); if (b->statsfifo1) free_fifo(b->statsfifo1); if (b->ctrlsp) g_free(b->ctrlsp); CONDGFREE(b->tmplocqso.locator); g_free(b); } void free_qso(struct qso *qso){ CONDGFREE(qso->source); CONDGFREE(qso->operator_); CONDGFREE(qso->date_str); CONDGFREE(qso->time_str); CONDGFREE(qso->callsign); CONDGFREE(qso->rsts); CONDGFREE(qso->rstr); CONDGFREE(qso->qsonrs); CONDGFREE(qso->qsonrr); CONDGFREE(qso->exc); CONDGFREE(qso->locator); CONDGFREE(qso->remark); g_free(qso); } void dirty_band(struct band *band) { trace(cfg->trace_qsos, "DIRTY_BAND %c",band->bandchar); band->dirty_save = 1; band->dirty_stats = 1; band->dirty_statsf = 1; }; enum modes get_mode(void){ /* if (aband) return aband->mode; else*/ return gses->mode; } void set_mode(enum modes mode){ /*if (aband) aband->mode=mode; else*/ gses->mode=mode; dbg("set_mode(%d)\n", mode); #ifdef HAVE_HAMLIB if (!trig) return; if (!cfg->rig_mode_t2r) return; switch (mode){ case MOD_SSB_SSB: //trig_set_mode(trig, RIG_MODE_USB); //trig_set_qrg(trig, trig->qrg - cfg->rig_ssbcw_shift); trig_set_mode_qrg(trig, RIG_MODE_USB, trig->qrg - cfg->rig_ssbcw_shift); break; case MOD_CW_CW: //trig_set_mode(trig, RIG_MODE_CW); //trig_set_qrg(trig, trig->qrg + cfg->rig_ssbcw_shift); trig_set_mode_qrg(trig, RIG_MODE_CW, trig->qrg + cfg->rig_ssbcw_shift); break; default: /* nic jineho se nanastavuje */ break; } #endif } struct zstring *contest_format(struct contest *ctest){ gchar *ints; struct zstring *zs; ints = g_strdup_printf("%d;%d;%d;%d;" "%d;%d;%d;%d;" "%d;%d;%d;%d;" "%d;%d;%d;%d;" "%d;%d;%d;%d;" "%d;%d", ctest->qsoused, ctest->qsomult, ctest->qsoglob, ctest->wwlused, ctest->wwlcfm, ctest->wwlbonu, ctest->wwlmult, ctest->excused, ctest->exctype, ctest->excbonu, ctest->excmult, ctest->exccfm, ctest->dxcbonu, ctest->dxcmult, ctest->rstused, ctest->defrstr, ctest->qsop_method, ctest->total_method, ctest->tttype, ctest->prefmult, ctest->prefglob, ctest->expmode); zs = zconcatesc(ints, ctest->tname, ctest->cdate, ctest->pcall, ctest->pclub, ctest->pwwlo, ctest->pexch, ctest->default_rst, ctest->default_rs, ctest->rname, ctest->rcall, ctest->radr1, ctest->radr2, ctest->rpoco, ctest->rcity, ctest->rcoun, ctest->rphon, ctest->rhbbs, ctest->excname, NULL); return zs; } void ctest_parse(struct zstring *zstr, struct contest *ctest){ gchar *c; struct zstring *zsint; c = ztokenize(zstr, 1); zsint = zstrdup(c); ctest->qsoused = atoi(ztokenize(zsint, 1)); ctest->qsomult = atoi(ztokenize(zsint, 0)); ctest->qsoglob = atoi(ztokenize(zsint, 0)); ctest->wwlused = atoi(ztokenize(zsint, 0)); ctest->wwlcfm = atoi(ztokenize(zsint, 0)); ctest->wwlbonu = atoi(ztokenize(zsint, 0)); ctest->wwlmult = atoi(ztokenize(zsint, 0)); ctest->excused = atoi(ztokenize(zsint, 0)); ctest->exctype = atoi(ztokenize(zsint, 0)); ctest->excbonu = atoi(ztokenize(zsint, 0)); ctest->excmult = atoi(ztokenize(zsint, 0)); ctest->exccfm = atoi(ztokenize(zsint, 0)); ctest->dxcbonu = atoi(ztokenize(zsint, 0)); ctest->dxcmult = atoi(ztokenize(zsint, 0)); ctest->rstused = atoi(ztokenize(zsint, 0)); ctest->defrstr = atoi(ztokenize(zsint, 0)); ctest->qsop_method = atoi(ztokenize(zsint, 0)); ctest->total_method = atoi(ztokenize(zsint, 0)); ctest->tttype = atoi(ztokenize(zsint, 0)); ctest->prefmult = atoi(ztokenize(zsint, 0)); ctest->prefglob = atoi(ztokenize(zsint, 0)); ctest->expmode = atoi(ztokenize(zsint, 0)); STORE_STR3(ctest, tname, zstr, 0); STORE_STR3(ctest, cdate, zstr, 0); STORE_STR3(ctest, pcall, zstr, 0); STORE_STR3(ctest, pclub, zstr, 0); STORE_STR3(ctest, pwwlo, zstr, 0); STORE_STR3(ctest, pexch, zstr, 0); STORE_STR3(ctest, default_rst, zstr, 0); STORE_STR3(ctest, default_rs, zstr, 0); STORE_STR3(ctest, rname, zstr, 0); STORE_STR3(ctest, rcall, zstr, 0); STORE_STR3(ctest, radr1, zstr, 0); STORE_STR3(ctest, radr2, zstr, 0); STORE_STR3(ctest, rpoco, zstr, 0); STORE_STR3(ctest, rcity, zstr, 0); STORE_STR3(ctest, rcoun, zstr, 0); STORE_STR3(ctest, rphon, zstr, 0); STORE_STR3(ctest, rhbbs, zstr, 0); STORE_STR3(ctest, excname, zstr, 0); zfree(zsint); } struct zstring *band_format(struct band *b){ gchar *ints; struct zstring *zs; ints = g_strdup_printf("%c;%d;%d", b->bandchar, b->psect, b->readonly); zs = zconcatesc(ints, b->pband, b->bandname, b->stxeq, b->spowe, b->srxeq, b->sante, b->santh, b->mope1, b->mope2, b->remarks, b->skedqrg, NULL); g_free(ints); return zs; } struct band *band_parse(struct zstring *zstr, struct band *b){ gchar *c; struct zstring *zsint; c = ztokenize(zstr, 1); zsint = zstrdup(c); c = ztokenize(zsint, 1); b->bandchar = c[0]; b->psect = atoi(ztokenize(zsint, 0)); b->readonly = atoi(ztokenize(zsint, 0)); STORE_STR3(b, pband, zstr, 0); STORE_STR3(b, bandname, zstr, 0); STORE_STR3(b, stxeq, zstr, 0); STORE_STR3(b, spowe, zstr, 0); STORE_STR3(b, srxeq, zstr, 0); STORE_STR3(b, sante, zstr, 0); STORE_STR3(b, santh, zstr, 0); STORE_STR3(b, mope1, zstr, 0); STORE_STR3(b, mope2, zstr, 0); STORE_STR3(b, remarks, zstr, 0); STORE_STR3(b, skedqrg, zstr, 0); zfree(zsint); return b; } int compare_date_time_qsonrs(const void *a, const void *b){ struct qso **qa, **qb; int ret; qa = (struct qso **)a; qb = (struct qso **)b; if (!*qa && !*qb) return 0; if (!*qa) return -1; if (!*qb) return +1; ret = strcmp((*qa)->date_str, (*qb)->date_str); if (ret) return ret; ret = strcmp((*qa)->time_str, (*qb)->time_str); if (ret) return ret; return atoi((*qa)->qsonrs) - atoi((*qb)->qsonrs); } tucnak2-2.48/src/gfx_png.c0000644000175000017500000000467711634350126012341 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of tuxpaint http://www.newbreedsoftware.com/tuxpaint/ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" /* getpixel reads data from screen not surf! */ #if defined HAVE_SDL && defined(HAVE_LIBPNG) int do_png_save(SDL_Surface * surf, char * fname) { png_structp png_ptr; png_infop info_ptr; png_text text_ptr[4]; unsigned char ** png_rows; Uint8 r, g, b; int x, y, count; FILE *fi; wokna(fname); fi=fopen(fname,"wb"); if (!fi){ return -1; } png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); if (png_ptr == NULL) { fclose(fi); png_destroy_write_struct(&png_ptr, (png_infopp) NULL); return -2; } info_ptr = png_create_info_struct(png_ptr); if (info_ptr == NULL) { fclose(fi); png_destroy_write_struct(&png_ptr, (png_infopp) NULL); return -3; } if (setjmp(png_jmpbuf(png_ptr))) { fclose(fi); png_destroy_write_struct(&png_ptr, (png_infopp) NULL); return -4; } png_init_io(png_ptr, fi); png_set_IHDR(png_ptr, info_ptr, surf->w, surf->h, 8, PNG_COLOR_TYPE_RGB, 1, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); /* Set headers */ count = 0; text_ptr[count].key = "Software"; text_ptr[count].text = "Tucnak " VERSION; text_ptr[count].compression = PNG_TEXT_COMPRESSION_NONE; count++; png_set_text(png_ptr, info_ptr, text_ptr, count); png_write_info(png_ptr, info_ptr); /* Save the picture: */ png_rows = (unsigned char **)malloc(sizeof(char *) * surf->h); for (y = 0; y < surf->h; y++) { png_rows[y] = (unsigned char *)malloc(sizeof(char) * 3 * surf->w); for (x = 0; x < surf->w; x++) { SDL_GetRGB(fast_getpixel(surf, x, y), surf->format, &r, &g, &b); png_rows[y][x * 3 + 0] = r; png_rows[y][x * 3 + 1] = g; png_rows[y][x * 3 + 2] = b; } } png_write_image(png_ptr, png_rows); for (y = 0; y < surf->h; y++) free(png_rows[y]); free(png_rows); png_write_end(png_ptr, NULL); png_destroy_write_struct(&png_ptr, &info_ptr); fclose(fi); return 0; } #endif tucnak2-2.48/src/interfaces.c0000644000175000017500000002600211567373656013040 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of samba www.samba.org This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ /* Unix SMB/Netbios implementation. Version 2.0 return a list of network interfaces Copyright (C) Andrew Tridgell 1998 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* working out the interfaces for a OS is an incredibly non-portable thing. We have several possible implementations below, and autoconf tries each of them to see what works Note that this file does _not_ include includes.h. That is so this code can be called directly from the autoconf tests. That also means this code cannot use any of the normal Samba debug stuff or defines. This is standalone code. */ #if !defined(_MSC_VER) && !defined(__MINGW32__) #ifndef __USE_POSIX #define __USE_POSIX #endif #ifndef __USE_POSIX2 #define __USE_POSIX2 #endif #ifndef __USE_MISC #define __USE_MISC #endif #ifndef __USE_BSD #define __USE_BSD #endif #include #include #include #include #include #include #include #include #include #include #ifdef HAVE_SYS_TIME_H #include #endif #ifndef __USE_MISC #define __USE_MISC #endif #include #ifndef SIOCGIFCONF #include #endif #ifdef AUTOCONF_TEST struct iface_struct { char name[16]; struct in_addr ip; struct in_addr netmask; }; #else #include "config.h" #include "interfaces.h" #endif #ifdef HAVE_STDLIB_H #include #endif #ifdef HAVE_STRING_H #include #endif #ifdef HAVE_STRINGS_H #include #endif #ifdef __COMPAR_FN_T #define QSORT_CAST (__compar_fn_t) #endif #ifndef QSORT_CAST #define QSORT_CAST (int (*)(const void *, const void *)) #endif #if HAVE_IFACE_IFCONF /* this works for Linux 2.2, Solaris 2.5, SunOS4, HPUX 10.20, OSF1 V4.0, Ultrix 4.4, SCO Unix 3.2, IRIX 6.4 and FreeBSD 3.2. It probably also works on any BSD style system. */ /**************************************************************************** get the netmask address for a local interface ****************************************************************************/ static int _get_interfaces(struct iface_struct *ifaces, int max_interfaces) { struct ifconf ifc; char buff[8192]; int fd, i, n; struct ifreq *ifr=NULL; int total = 0; struct in_addr ipaddr; struct in_addr nmask; char *iname; if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) { return -1; } ifc.ifc_len = sizeof(buff); ifc.ifc_buf = buff; if (ioctl(fd, SIOCGIFCONF, &ifc) != 0) { close(fd); return -1; } ifr = ifc.ifc_req; n = ifc.ifc_len / sizeof(struct ifreq); /* Loop through interfaces, looking for given IP address */ for (i=n-1;i>=0 && total < max_interfaces;i--) { if (ioctl(fd, SIOCGIFADDR, &ifr[i]) != 0) { continue; } iname = ifr[i].ifr_name; ipaddr = (*(struct sockaddr_in *)&ifr[i].ifr_addr).sin_addr; if (ioctl(fd, SIOCGIFFLAGS, &ifr[i]) != 0) { continue; } if (!(ifr[i].ifr_flags & IFF_UP)) { continue; } if (ioctl(fd, SIOCGIFNETMASK, &ifr[i]) != 0) { continue; } nmask = ((struct sockaddr_in *)&ifr[i].ifr_addr)->sin_addr; strncpy(ifaces[total].name, iname, sizeof(ifaces[total].name)-1); ifaces[total].name[sizeof(ifaces[total].name)-1] = 0; ifaces[total].ip = ipaddr; ifaces[total].netmask = nmask; total++; } close(fd); return total; } #elif HAVE_IFACE_IFREQ #ifndef I_STR #include #endif /**************************************************************************** this should cover most of the streams based systems Thanks to Andrej.Borsenkow@mow.siemens.ru for several ideas in this code ****************************************************************************/ static int _get_interfaces(struct iface_struct *ifaces, int max_interfaces) { struct ifreq ifreq; struct strioctl strioctl; char buff[8192]; int fd, i, n; struct ifreq *ifr=NULL; int total = 0; struct in_addr ipaddr; struct in_addr nmask; char *iname; if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) { return -1; } strioctl.ic_cmd = SIOCGIFCONF; strioctl.ic_dp = buff; strioctl.ic_len = sizeof(buff); if (ioctl(fd, I_STR, &strioctl) < 0) { close(fd); return -1; } /* we can ignore the possible sizeof(int) here as the resulting number of interface structures won't change */ n = strioctl.ic_len / sizeof(struct ifreq); /* we will assume that the kernel returns the length as an int at the start of the buffer if the offered size is a multiple of the structure size plus an int */ if (n*sizeof(struct ifreq) + sizeof(int) == strioctl.ic_len) { ifr = (struct ifreq *)(buff + sizeof(int)); } else { ifr = (struct ifreq *)buff; } /* Loop through interfaces */ for (i = 0; isin_addr; strncpy(ifaces[total].name, iname, sizeof(ifaces[total].name)-1); ifaces[total].name[sizeof(ifaces[total].name)-1] = 0; ifaces[total].ip = ipaddr; ifaces[total].netmask = nmask; total++; } close(fd); return total; } #elif HAVE_IFACE_AIX /**************************************************************************** this one is for AIX (tested on 4.2) ****************************************************************************/ static int _get_interfaces(struct iface_struct *ifaces, int max_interfaces) { char buff[8192]; int fd, i; struct ifconf ifc; struct ifreq *ifr=NULL; struct in_addr ipaddr; struct in_addr nmask; char *iname; int total = 0; if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) { return -1; } ifc.ifc_len = sizeof(buff); ifc.ifc_buf = buff; if (ioctl(fd, SIOCGIFCONF, &ifc) != 0) { close(fd); return -1; } ifr = ifc.ifc_req; /* Loop through interfaces */ i = ifc.ifc_len; while (i > 0 && total < max_interfaces) { unsigned inc; inc = ifr->ifr_addr.sa_len; if (ioctl(fd, SIOCGIFADDR, ifr) != 0) { goto next; } ipaddr = (*(struct sockaddr_in *) &ifr->ifr_addr).sin_addr; iname = ifr->ifr_name; if (ioctl(fd, SIOCGIFFLAGS, ifr) != 0) { goto next; } if (!(ifr->ifr_flags & IFF_UP)) { goto next; } if (ioctl(fd, SIOCGIFNETMASK, ifr) != 0) { goto next; } nmask = ((struct sockaddr_in *)&ifr->ifr_addr)->sin_addr; strncpy(ifaces[total].name, iname, sizeof(ifaces[total].name)-1); ifaces[total].name[sizeof(ifaces[total].name)-1] = 0; ifaces[total].ip = ipaddr; ifaces[total].netmask = nmask; total++; next: /* * Patch from Archie Cobbs (archie@whistle.com). The * addresses in the SIOCGIFCONF interface list have a * minimum size. Usually this doesn't matter, but if * your machine has tunnel interfaces, etc. that have * a zero length "link address", this does matter. */ if (inc < sizeof(ifr->ifr_addr)) inc = sizeof(ifr->ifr_addr); inc += IFNAMSIZ; ifr = (struct ifreq*) (((char*) ifr) + inc); i -= inc; } close(fd); return total; } #else /* a dummy version */ static int _get_interfaces(struct iface_struct *ifaces, int max_interfaces) { return -1; } #endif static int iface_comp(struct iface_struct *i1, struct iface_struct *i2) { int r; r = strcmp(i1->name, i2->name); if (r) return r; r = ntohl(i1->ip.s_addr) - ntohl(i2->ip.s_addr); if (r) return r; r = ntohl(i1->netmask.s_addr) - ntohl(i2->netmask.s_addr); return r; } /* this wrapper is used to remove duplicates from the interface list generated above */ int get_interfaces(struct iface_struct *ifaces, int max_interfaces) { int total, i, j; total = _get_interfaces(ifaces, max_interfaces); if (total <= 0) return total; /* now we need to remove duplicates */ qsort(ifaces, total, sizeof(ifaces[0]), QSORT_CAST iface_comp); for (i=1;i Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. tucnak2-2.48/install-sh0000755000175000017500000001273611567373661011773 00000000000000#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: chmodcmd="" else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 tucnak2-2.48/configure0000755000175000017500000117176611737315445011703 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for tucnak2 2.48. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell autoconf@gnu.org about your system, echo including any error possibly output before this echo message } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='tucnak2' PACKAGE_TARNAME='tucnak2' PACKAGE_VERSION='2.48' PACKAGE_STRING='tucnak2 2.48' PACKAGE_BUGREPORT='' ac_unique_file="src/main.c" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir localstatedir includedir oldincludedir docdir infodir htmldir dvidir pdfdir psdir libdir localedir mandir DEFS ECHO_C ECHO_N ECHO_T LIBS build_alias host_alias target_alias build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA am__isrc CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP GREP EGREP HAVE_MAKE HAVE_PKGCONFIG PKG_CONFIG GLIB_CFLAGS GLIB_LIBS GTHREAD_CFLAGS GTHREAD_LIBS SDL_CONFIG SDL_CFLAGS SDL_LIBS LIBPNG_CFLAGS LIBPNG_LIBS SNDFILE_CFLAGS SNDFILE_LIBS LIBFTDI_CFLAGS LIBFTDI_LIBS HAMLIB_CFLAGS HAMLIB_LIBS HAVE_RPM HAVE_RPM_PACKAGING RPM_SOURCESDIR RPM_RELEASE TUCNAK_LDADD LIBOBJS LTLIBOBJS' ac_subst_files='' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP PKG_CONFIG GLIB_CFLAGS GLIB_LIBS GTHREAD_CFLAGS GTHREAD_LIBS LIBPNG_CFLAGS LIBPNG_LIBS SNDFILE_CFLAGS SNDFILE_LIBS LIBFTDI_CFLAGS LIBFTDI_LIBS HAMLIB_CFLAGS HAMLIB_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=\$ac_optarg ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute directory names. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || { echo "$as_me: error: Working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$0" || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures tucnak2 2.48 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/tucnak2] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] --target=TARGET configure for building compilers for TARGET [HOST] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of tucnak2 2.48:";; esac cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --disable-opt Disable compiling optimisation (-O0) --disable-sdltest Do not try to compile and run a test SDL program --enable-pedantic Enable pedantic gcc checking(-Wall etc.) --enable-leak-debug Enable memory leak debug --enable-instr Enable instrument call trace Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --without-sdl Build without sdl library for graphics support (default: test) --with-sdl-prefix=PFX Prefix where SDL is installed (optional) --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional) --without-png Build without PNG support (default: test) --without-gpm Build without GPM support (default: test) --without-sndfile Build without sndfile library (default: test) --without-alsa Build without alsa library for audio i/o (default: test) --without-ftdi Build without FTDI support for usb to serial converter (default: test) --without-hamlib Build without Hamlib support (default: test) --without-fftw3 Build without fftw3 library (default: test) Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor PKG_CONFIG path to pkg-config utility GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config GLIB_LIBS linker flags for GLIB, overriding pkg-config GTHREAD_CFLAGS C compiler flags for GTHREAD, overriding pkg-config GTHREAD_LIBS linker flags for GTHREAD, overriding pkg-config LIBPNG_CFLAGS C compiler flags for LIBPNG, overriding pkg-config LIBPNG_LIBS linker flags for LIBPNG, overriding pkg-config SNDFILE_CFLAGS C compiler flags for SNDFILE, overriding pkg-config SNDFILE_LIBS linker flags for SNDFILE, overriding pkg-config LIBFTDI_CFLAGS C compiler flags for LIBFTDI, overriding pkg-config LIBFTDI_LIBS linker flags for LIBFTDI, overriding pkg-config HAMLIB_CFLAGS C compiler flags for HAMLIB, overriding pkg-config HAMLIB_LIBS linker flags for HAMLIB, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF tucnak2 configure 2.48 generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by tucnak2 $as_me 2.48, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then set x "$CONFIG_SITE" elif test "x$prefix" != xNONE; then set x "$prefix/share/config.site" "$prefix/etc/config.site" else set x "$ac_default_prefix/share/config.site" \ "$ac_default_prefix/etc/config.site" fi shift for ac_site_file do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_headers="$ac_config_headers config.h" ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} { (exit 1); exit 1; }; } fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} { (exit 1); exit 1; }; } { echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6; } if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi { echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 echo "$as_me: error: invalid value of canonical build" >&2;} { (exit 1); exit 1; }; };; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6; } if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi { echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 echo "$as_me: error: invalid value of canonical host" >&2;} { (exit 1); exit 1; }; };; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { echo "$as_me:$LINENO: checking target system type" >&5 echo $ECHO_N "checking target system type... $ECHO_C" >&6; } if test "${ac_cv_target+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "x$target_alias" = x; then ac_cv_target=$ac_cv_host else ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5 echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi { echo "$as_me:$LINENO: result: $ac_cv_target" >&5 echo "${ECHO_T}$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; *) { { echo "$as_me:$LINENO: error: invalid value of canonical target" >&5 echo "$as_me: error: invalid value of canonical target" >&2;} { (exit 1); exit 1; }; };; esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' set x $ac_cv_target shift target_cpu=$1 target_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: target_os=$* IFS=$ac_save_IFS case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac # The aliases save the names the user supplied, while $host etc. # will get canonicalized. test -n "$target_alias" && test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_prefix=${target_alias}- am__api_version='1.10' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. { echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done IFS=$as_save_IFS fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm -f conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi { echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. test -d ./--version && rmdir ./--version MKDIR_P="$ac_install_sh -d" fi fi { echo "$as_me:$LINENO: result: $MKDIR_P" >&5 echo "${ECHO_T}$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$AWK" && break done { echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } SET_MAKE= else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE=$PACKAGE_NAME VERSION=$PACKAGE_VERSION cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' test x$prefix = "xNONE" && prefix="$ac_default_prefix" if test -f "/etc/debian_version"; then echo "TIP: If following test fails, try to run: apt-get install libc6-dev" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # # List of possible output files, starting from the most likely. # The algorithm is not robust to junk in `.', hence go to wildcards (a.*) # only as a last resort. b.out is created by i960 compilers. ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' # # The IRIX 6 linker writes into existing files which may not be # executable, retaining their permissions. Remove them first so a # subsequent execution test works. ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { (ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi { echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6; } if test -z "$ac_file"; then echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6; } { echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext { echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi { echo "$as_me:$LINENO: result: $_am_result" >&5 echo "${ECHO_T}$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi tucnak_cc_ver=`$CC -dumpversion` # --disable-opt opt='-O2' # Check whether --enable-opt was given. if test "${enable_opt+set}" = set; then enableval=$enable_opt; disable_opt=yes else disable_opt=no fi if test x"$disable_opt" = x"yes"; then CFLAGS=`echo "$CFLAGS"|sed 's/-O2/-O0/'` opt='-O0' fi { echo "$as_me:$LINENO: checking whether linker supports -z now" >&5 echo $ECHO_N "checking whether linker supports -z now... $ECHO_C" >&6; } OLDLDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -z now" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then tucnak_ld_z_now=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 tucnak_ld_z_now=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext { echo "$as_me:$LINENO: result: $tucnak_ld_z_now" >&5 echo "${ECHO_T}$tucnak_ld_z_now" >&6; } if test x"$tucnak_ld_z_now" = x"no" ; then LDFLAGS=$OLDLDFLAGS fi # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. { echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done IFS=$as_save_IFS fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Extract the first word of "grep ggrep" to use in msg output if test -z "$GREP"; then set dummy grep ggrep; ac_prog_name=$2 if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS fi GREP="$ac_cv_path_GREP" if test -z "$GREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 echo "${ECHO_T}$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else # Extract the first word of "egrep" to use in msg output if test -z "$EGREP"; then set dummy egrep; ac_prog_name=$2 if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS fi EGREP="$ac_cv_path_EGREP" if test -z "$EGREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in arpa/inet.h ctype.h dirent.h dlfcn.h errno.h fcntl.h getopt.h grp.h iconv.h inttypes.h libgen.h linux/ppdev.h locale.h math.h netdb.h netinet/in.h netinet/ip.h nl_types.h png.h process.h pty.h pwd.h regex.h signal.h stdarg.h stdint.h stdio.h time.h unistd.h sys/ioctl.h sys/kd.h sys/param.h sys/select.h sys/signal.h sys/socket.h sys/soundcard.h sys/stat.h sys/time.h sys/types.h sys/vfs.h sys/wait.h termios.h utime.h winsock2.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6; } if test "${ac_cv_header_time+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include int main () { if ((struct tm *) 0) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_time=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_time=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 echo "${ECHO_T}$ac_cv_header_time" >&6; } if test $ac_cv_header_time = yes; then cat >>confdefs.h <<\_ACEOF #define TIME_WITH_SYS_TIME 1 _ACEOF fi tucnak_libc_ver="" iprig_libc_ver="cross" if test "$cross_compiling" = yes; then iprig_libc_ver=`cat $TOPDIR/staging_dir_$target_cpu/uclibc_version` iprig_cc_ver=`cat $TOPDIR/staging_dir_$target_cpu/gcc_version` else if test "$cross_compiling" = yes; then { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling See \`config.log' for more details." >&5 echo "$as_me: error: cannot run test program while cross compiling See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #ifdef __CYGWIN__ #include #endif FILE *f; int main(void){ f=fopen("conftest.libc.out", "wt"); if (!f) return -1; #ifdef __GLIBC__ fprintf(f, "glibc %d.%d (%s)\n", __GLIBC__, __GLIBC_MINOR__, gnu_get_libc_version()); #endif #ifdef __CYGWIN__ fprintf(f, "cygwin %d.%d.%d, api %d.%d\n", CYGWIN_VERSION_DLL_MAJOR/1000, CYGWIN_VERSION_DLL_MAJOR%1000, CYGWIN_VERSION_DLL_MINOR, CYGWIN_VERSION_API_MAJOR, CYGWIN_VERSION_API_MINOR); #endif fclose(f); return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then tucnak_libc_ver=`cat conftest.libc.out` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.libc.out fi { echo "$as_me:$LINENO: checking for sin in -lm" >&5 echo $ECHO_N "checking for sin in -lm... $ECHO_C" >&6; } if test "${ac_cv_lib_m_sin+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char sin (); int main () { return sin (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_m_sin=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_m_sin=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_m_sin" >&5 echo "${ECHO_T}$ac_cv_lib_m_sin" >&6; } if test $ac_cv_lib_m_sin = yes; then LIBM="-lm" fi { echo "$as_me:$LINENO: checking for cos in -lm" >&5 echo $ECHO_N "checking for cos in -lm... $ECHO_C" >&6; } if test "${ac_cv_lib_m_cos+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char cos (); int main () { return cos (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_m_cos=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_m_cos=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_m_cos" >&5 echo "${ECHO_T}$ac_cv_lib_m_cos" >&6; } if test $ac_cv_lib_m_cos = yes; then LIBM="-lm" fi { echo "$as_me:$LINENO: checking for tan in -lm" >&5 echo $ECHO_N "checking for tan in -lm... $ECHO_C" >&6; } if test "${ac_cv_lib_m_tan+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char tan (); int main () { return tan (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_m_tan=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_m_tan=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_m_tan" >&5 echo "${ECHO_T}$ac_cv_lib_m_tan" >&6; } if test $ac_cv_lib_m_tan = yes; then LIBM="-lm" fi { echo "$as_me:$LINENO: checking for acos in -lm" >&5 echo $ECHO_N "checking for acos in -lm... $ECHO_C" >&6; } if test "${ac_cv_lib_m_acos+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char acos (); int main () { return acos (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_m_acos=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_m_acos=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_m_acos" >&5 echo "${ECHO_T}$ac_cv_lib_m_acos" >&6; } if test $ac_cv_lib_m_acos = yes; then LIBM="-lm" fi { echo "$as_me:$LINENO: checking for round in -lm" >&5 echo $ECHO_N "checking for round in -lm... $ECHO_C" >&6; } if test "${ac_cv_lib_m_round+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char round (); int main () { return round (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_m_round=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_m_round=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_m_round" >&5 echo "${ECHO_T}$ac_cv_lib_m_round" >&6; } if test $ac_cv_lib_m_round = yes; then LIBM="-lm" fi LIBS="$LIBS $LIBM" { echo "$as_me:$LINENO: checking for forkpty in -lutil" >&5 echo $ECHO_N "checking for forkpty in -lutil... $ECHO_C" >&6; } if test "${ac_cv_lib_util_forkpty+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lutil $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char forkpty (); int main () { return forkpty (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_util_forkpty=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_util_forkpty=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_util_forkpty" >&5 echo "${ECHO_T}$ac_cv_lib_util_forkpty" >&6; } if test $ac_cv_lib_util_forkpty = yes; then LIBUTIL="-lutil" fi LIBS="$LIBS $LIBUTIL" #set -x #AC_CHECK_LIB(ws2_32, [WSAStartup], [LIBS="$LIBS -lws2_32"]) if test "x$ac_cv_header_winsock2_h" = "xyes"; then LIBS="$LIBS -lws2_32" fi #set >_SOCK #set +x tucnak_mlibs="" tucnak_mdebs="" # check for make # Extract the first word of "make", so it can be a program name with args. set dummy make; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_HAVE_MAKE+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$HAVE_MAKE"; then ac_cv_prog_HAVE_MAKE="$HAVE_MAKE" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_HAVE_MAKE="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_HAVE_MAKE" && ac_cv_prog_HAVE_MAKE="no" fi fi HAVE_MAKE=$ac_cv_prog_HAVE_MAKE if test -n "$HAVE_MAKE"; then { echo "$as_me:$LINENO: result: $HAVE_MAKE" >&5 echo "${ECHO_T}$HAVE_MAKE" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test x"$HAVE_MAKE" = x"no"; then tucnak_mlibs="$tucnak_mlibs make" tucnak_mdebs="$tucnak_mdebs make" fi # check for #pkg-config # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_HAVE_PKGCONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$HAVE_PKGCONFIG"; then ac_cv_prog_HAVE_PKGCONFIG="$HAVE_PKGCONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_HAVE_PKGCONFIG="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_HAVE_PKGCONFIG" && ac_cv_prog_HAVE_PKGCONFIG="no" fi fi HAVE_PKGCONFIG=$ac_cv_prog_HAVE_PKGCONFIG if test -n "$HAVE_PKGCONFIG"; then { echo "$as_me:$LINENO: result: $HAVE_PKGCONFIG" >&5 echo "${ECHO_T}$HAVE_PKGCONFIG" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test x"$HAVE_PKGCONFIG" = x"no"; then tucnak_mlibs="$tucnak_mlibs pkg-config" tucnak_mdebs="$tucnak_mdebs pkg-config" fi # check for glib and gthreads tucnak_glib2_ver="" if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 echo "${ECHO_T}$PKG_CONFIG" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5 echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no { echo "$as_me:$LINENO: checking for GLIB" >&5 echo $ECHO_N "checking for GLIB... $ECHO_C" >&6; } if test -n "$PKG_CONFIG"; then if test -n "$GLIB_CFLAGS"; then pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS" else if test -n "$PKG_CONFIG" && \ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glib-2.0 > 2.0.0\"") >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 > 2.0.0") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_GLIB_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 > 2.0.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$GLIB_LIBS"; then pkg_cv_GLIB_LIBS="$GLIB_LIBS" else if test -n "$PKG_CONFIG" && \ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glib-2.0 > 2.0.0\"") >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 > 2.0.0") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_GLIB_LIBS=`$PKG_CONFIG --libs "glib-2.0 > 2.0.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "glib-2.0 > 2.0.0"` else GLIB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glib-2.0 > 2.0.0"` fi # Put the nasty error message in config.log where it belongs echo "$GLIB_PKG_ERRORS" >&5 { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } tucnak_mlibs="$tucnak_mlibs libglib2" tucnak_mdebs="$tucnak_mdebs libglib2.0-dev" tucnak_glib2="no" elif test $pkg_failed = untried; then tucnak_mlibs="$tucnak_mlibs libglib2" tucnak_mdebs="$tucnak_mdebs libglib2.0-dev" tucnak_glib2="no" else GLIB_CFLAGS=$pkg_cv_GLIB_CFLAGS GLIB_LIBS=$pkg_cv_GLIB_LIBS { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } cat >>confdefs.h <<\_ACEOF #define HAVE_GLIB2 1 _ACEOF tucnak_glib2="yes" tucnak_glib2_ver=`$PKG_CONFIG --modversion 'glib-2.0 > 2.0.0'` fi if test x"$tucnak_glib2" = x"yes"; then pkg_failed=no { echo "$as_me:$LINENO: checking for GTHREAD" >&5 echo $ECHO_N "checking for GTHREAD... $ECHO_C" >&6; } if test -n "$PKG_CONFIG"; then if test -n "$GTHREAD_CFLAGS"; then pkg_cv_GTHREAD_CFLAGS="$GTHREAD_CFLAGS" else if test -n "$PKG_CONFIG" && \ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gthread-2.0 > 2.0.0\"") >&5 ($PKG_CONFIG --exists --print-errors "gthread-2.0 > 2.0.0") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_GTHREAD_CFLAGS=`$PKG_CONFIG --cflags "gthread-2.0 > 2.0.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$GTHREAD_LIBS"; then pkg_cv_GTHREAD_LIBS="$GTHREAD_LIBS" else if test -n "$PKG_CONFIG" && \ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gthread-2.0 > 2.0.0\"") >&5 ($PKG_CONFIG --exists --print-errors "gthread-2.0 > 2.0.0") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_GTHREAD_LIBS=`$PKG_CONFIG --libs "gthread-2.0 > 2.0.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GTHREAD_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gthread-2.0 > 2.0.0"` else GTHREAD_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gthread-2.0 > 2.0.0"` fi # Put the nasty error message in config.log where it belongs echo "$GTHREAD_PKG_ERRORS" >&5 { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } { { echo "$as_me:$LINENO: error: glib is installed but gthread not ?" >&5 echo "$as_me: error: glib is installed but gthread not ?" >&2;} { (exit 1); exit 1; }; } elif test $pkg_failed = untried; then { { echo "$as_me:$LINENO: error: glib is installed but gthread not ?" >&5 echo "$as_me: error: glib is installed but gthread not ?" >&2;} { (exit 1); exit 1; }; } else GTHREAD_CFLAGS=$pkg_cv_GTHREAD_CFLAGS GTHREAD_LIBS=$pkg_cv_GTHREAD_LIBS { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } cat >>confdefs.h <<\_ACEOF #define HAVE_GTHREAD2 1 _ACEOF fi fi # Check whether --with-sdl was given. if test "${with_sdl+set}" = set; then withval=$with_sdl; fi tucnak_sdl="disabled" if test "x$with_sdl" != "xno"; then # check for SDL SDL_VERSION=1.2.0 tucnak_sdl_ver=""; # Check whether --with-sdl-prefix was given. if test "${with_sdl_prefix+set}" = set; then withval=$with_sdl_prefix; sdl_prefix="$withval" else sdl_prefix="" fi # Check whether --with-sdl-exec-prefix was given. if test "${with_sdl_exec_prefix+set}" = set; then withval=$with_sdl_exec_prefix; sdl_exec_prefix="$withval" else sdl_exec_prefix="" fi # Check whether --enable-sdltest was given. if test "${enable_sdltest+set}" = set; then enableval=$enable_sdltest; else enable_sdltest=yes fi if test x$sdl_exec_prefix != x ; then sdl_args="$sdl_args --exec-prefix=$sdl_exec_prefix" if test x${SDL_CONFIG+set} != xset ; then SDL_CONFIG=$sdl_exec_prefix/bin/sdl-config fi fi if test x$sdl_prefix != x ; then sdl_args="$sdl_args --prefix=$sdl_prefix" if test x${SDL_CONFIG+set} != xset ; then SDL_CONFIG=$sdl_prefix/bin/sdl-config fi fi if test "x$prefix" != xNONE; then PATH="$prefix/bin:$prefix/usr/bin:$PATH" fi # Extract the first word of "sdl-config", so it can be a program name with args. set dummy sdl-config; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_SDL_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $SDL_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_SDL_CONFIG="$SDL_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_SDL_CONFIG="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_SDL_CONFIG" && ac_cv_path_SDL_CONFIG="no" ;; esac fi SDL_CONFIG=$ac_cv_path_SDL_CONFIG if test -n "$SDL_CONFIG"; then { echo "$as_me:$LINENO: result: $SDL_CONFIG" >&5 echo "${ECHO_T}$SDL_CONFIG" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi min_sdl_version=$SDL_VERSION { echo "$as_me:$LINENO: checking for SDL - version >= $min_sdl_version" >&5 echo $ECHO_N "checking for SDL - version >= $min_sdl_version... $ECHO_C" >&6; } no_sdl="" if test "$SDL_CONFIG" = "no" ; then no_sdl=yes else SDL_CFLAGS=`$SDL_CONFIG $sdlconf_args --cflags` SDL_LIBS=`$SDL_CONFIG $sdlconf_args --libs` sdl_major_version=`$SDL_CONFIG $sdl_args --version | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` sdl_minor_version=`$SDL_CONFIG $sdl_args --version | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` if test "x$enable_sdltest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_CXXFLAGS="$CXXFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $SDL_CFLAGS" CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" LIBS="$LIBS $SDL_LIBS" rm -f conf.sdltest if test "$cross_compiling" = yes; then echo $ac_n "cross compiling; assumed OK... $ac_c" else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include "SDL.h" char* my_strdup (char *str) { char *new_str; if (str) { new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); strcpy (new_str, str); } else new_str = NULL; return new_str; } int main (int argc, char *argv[]) { int major, minor, micro; char *tmp_version; /* This hangs on some systems (?) system ("touch conf.sdltest"); */ { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); } /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = my_strdup("$min_sdl_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_sdl_version"); exit(1); } if (($sdl_major_version > major) || (($sdl_major_version == major) && ($sdl_minor_version > minor)) || (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro))) { return 0; } else { printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version); printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro); printf("*** best to upgrade to the required version.\n"); printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n"); printf("*** to point to the correct copy of sdl-config, and remove the file\n"); printf("*** config.cache before re-running configure\n"); return 1; } } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) no_sdl=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi CFLAGS="$ac_save_CFLAGS" CXXFLAGS="$ac_save_CXXFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_sdl" = x ; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } cat >>confdefs.h <<\_ACEOF #define HAVE_SDL 1 _ACEOF tucnak_sdl="yes" tucnak_sdl_ver=`sdl-config --version` else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } if test "$SDL_CONFIG" = "no" ; then echo "*** The sdl-config script installed by SDL could not be found" echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in" echo "*** your path, or set the SDL_CONFIG environment variable to the" echo "*** full path to sdl-config." else if test -f conf.sdltest ; then : else echo "*** Could not run SDL test program, checking why..." CFLAGS="$CFLAGS $SDL_CFLAGS" CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" LIBS="$LIBS $SDL_LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include "SDL.h" int main(int argc, char *argv[]) { return 0; } #undef main #define main K_and_R_C_main int main () { return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding SDL or finding the wrong" echo "*** version of SDL. If it is not finding SDL, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means SDL was incorrectly installed" echo "*** or that you have moved SDL since it was installed. In the latter case, you" echo "*** may want to edit the sdl-config script: $SDL_CONFIG" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" CXXFLAGS="$ac_save_CXXFLAGS" LIBS="$ac_save_LIBS" fi fi SDL_CFLAGS="" SDL_LIBS="" tucnak_olibs="$tucnak_olibs libsdl" tucnak_odebs="$tucnak_odebs libsdl-dev" tucnak_sdl="no" fi rm -f conf.sdltest fi #export PKG_CONFIG=/usr/bin/pkg-config # Check whether --with-png was given. if test "${with_png+set}" = set; then withval=$with_png; fi if test "x$with_png" != "xno"; then # check for libpng tucnak_libpng_ver="" pkg_failed=no { echo "$as_me:$LINENO: checking for LIBPNG" >&5 echo $ECHO_N "checking for LIBPNG... $ECHO_C" >&6; } if test -n "$PKG_CONFIG"; then if test -n "$LIBPNG_CFLAGS"; then pkg_cv_LIBPNG_CFLAGS="$LIBPNG_CFLAGS" else if test -n "$PKG_CONFIG" && \ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libpng > 1.2.0\"") >&5 ($PKG_CONFIG --exists --print-errors "libpng > 1.2.0") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_LIBPNG_CFLAGS=`$PKG_CONFIG --cflags "libpng > 1.2.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$LIBPNG_LIBS"; then pkg_cv_LIBPNG_LIBS="$LIBPNG_LIBS" else if test -n "$PKG_CONFIG" && \ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libpng > 1.2.0\"") >&5 ($PKG_CONFIG --exists --print-errors "libpng > 1.2.0") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_LIBPNG_LIBS=`$PKG_CONFIG --libs "libpng > 1.2.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then LIBPNG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libpng > 1.2.0"` else LIBPNG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libpng > 1.2.0"` fi # Put the nasty error message in config.log where it belongs echo "$LIBPNG_PKG_ERRORS" >&5 { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } tucnak_olibs="$tucnak_olibs libpng" tucnak_odebs="$tucnak_odebs libpng12-dev" elif test $pkg_failed = untried; then tucnak_olibs="$tucnak_olibs libpng" tucnak_odebs="$tucnak_odebs libpng12-dev" else LIBPNG_CFLAGS=$pkg_cv_LIBPNG_CFLAGS LIBPNG_LIBS=$pkg_cv_LIBPNG_LIBS { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } cat >>confdefs.h <<\_ACEOF #define HAVE_LIBPNG 1 _ACEOF tucnak_libpng_ver=`pkg-config --modversion 'libpng > 1.2.0'` fi fi # check for iconv if test x"$tucnak_sdl" = x"yes"; then { echo "$as_me:$LINENO: checking for iconv_open()" >&5 echo $ECHO_N "checking for iconv_open()... $ECHO_C" >&6; } save_LIBS="$LIBS" LIBS="$LIBS -liconv" ICONV_LIBS="" tucnak_iconv="no" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef HAVE_ICONV_H # include #endif int main () { iconv_open("fr", "to"); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then # ok #echo " __OK " { echo "$as_me:$LINENO: result: yes; with -liconv" >&5 echo "${ECHO_T}yes; with -liconv" >&6; } cat >>confdefs.h <<\_ACEOF #define HAVE_ICONV 2 _ACEOF ICONV_LIBS="-liconv" tucnak_iconv="libiconv" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # failed #echo " __FAIL " LIBS="$save_LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef HAVE_ICONV_H # include #endif int main () { iconv_open("fr", "to"); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then #echo " __OK " { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } cat >>confdefs.h <<\_ACEOF #define HAVE_ICONV 1 _ACEOF ICONV_LIBS="" tucnak_iconv="libc" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # failed #echo " __FAIL " { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } tucnak_mlibs="$tucnak_mlibs libiconv" tucnak_mdebs="$tucnak_mdebs libc6-dev" tucnak_iconv="no" LIBS="$save_LIBS" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext else tucnak_icpnv="not needed" fi # Check whether --with-gpm was given. if test "${with_gpm+set}" = set; then withval=$with_gpm; fi tucnak_libgpm="disabled" if test "x$with_gpm" == "xyes"; then # check for libgpm tucnak_libgpm="no" tucnak_old_LIBS=$LIBS tucnak_libgpm_ver="" { echo "$as_me:$LINENO: checking for Gpm_Open in -lgpm" >&5 echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6; } if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgpm $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char Gpm_Open (); int main () { return Gpm_Open (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_gpm_Gpm_Open=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_gpm_Gpm_Open=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_gpm_Gpm_Open" >&5 echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6; } if test $ac_cv_lib_gpm_Gpm_Open = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBGPM 1 _ACEOF LIBS="-lgpm $LIBS" fi if ! test x"$LIBS" = x"$tucnak_old_LIBS"; then tucnak_libgpm="yes" if test "$cross_compiling" = yes; then { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling See \`config.log' for more details." >&5 echo "$as_me: error: cannot run test program while cross compiling See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include FILE *f; int main(void){ int w; f=fopen("conftest.libgpm.out", "wt"); if (!f) return -1; fprintf(f, "%s\n", Gpm_GetLibVersion(&w)); fclose(f); return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then tucnak_libgpm_ver=`cat conftest.libgpm.out` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) tucnak_olibs="$tucnak_olibs libgpmg1" tucnak_odebs="$tucnak_odebs libgpmg1-dev" fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.libgpm.out fi fi # Check whether --with-sndfile was given. if test "${with_sndfile+set}" = set; then withval=$with_sndfile; fi tucnak_sndfile="disabled" if test "x$with_sndfile" != "xno"; then # check for libsndfile libsndfile_LIBS=$LIBS libsndfile_CFLAGS=$CFLAGS pkg_failed=no { echo "$as_me:$LINENO: checking for SNDFILE" >&5 echo $ECHO_N "checking for SNDFILE... $ECHO_C" >&6; } if test -n "$PKG_CONFIG"; then if test -n "$SNDFILE_CFLAGS"; then pkg_cv_SNDFILE_CFLAGS="$SNDFILE_CFLAGS" else if test -n "$PKG_CONFIG" && \ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"sndfile >= 1.0.2\"") >&5 ($PKG_CONFIG --exists --print-errors "sndfile >= 1.0.2") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_SNDFILE_CFLAGS=`$PKG_CONFIG --cflags "sndfile >= 1.0.2" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$SNDFILE_LIBS"; then pkg_cv_SNDFILE_LIBS="$SNDFILE_LIBS" else if test -n "$PKG_CONFIG" && \ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"sndfile >= 1.0.2\"") >&5 ($PKG_CONFIG --exists --print-errors "sndfile >= 1.0.2") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_SNDFILE_LIBS=`$PKG_CONFIG --libs "sndfile >= 1.0.2" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then SNDFILE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "sndfile >= 1.0.2"` else SNDFILE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "sndfile >= 1.0.2"` fi # Put the nasty error message in config.log where it belongs echo "$SNDFILE_PKG_ERRORS" >&5 { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } tucnak_mlibs="$tucnak_mlibs libsndfile" tucnak_mdebs="$tucnak_mdebs libsndfile-dev" tucnak_sndfile="no" elif test $pkg_failed = untried; then tucnak_mlibs="$tucnak_mlibs libsndfile" tucnak_mdebs="$tucnak_mdebs libsndfile-dev" tucnak_sndfile="no" else SNDFILE_CFLAGS=$pkg_cv_SNDFILE_CFLAGS SNDFILE_LIBS=$pkg_cv_SNDFILE_LIBS { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } cat >>confdefs.h <<_ACEOF #define HAVE_SNDFILE 1 _ACEOF tucnak_libsndfile_ver=`pkg-config --modversion 'sndfile >= 1.0.2'` tucnak_sndfile="yes" fi fi # Check whether --with-alsa was given. if test "${with_alsa+set}" = set; then withval=$with_alsa; fi tucnak_alsa="disabled" if test "x$with_alsa" != "xno"; then # check for alsa tucnak_alsa_ver="" { echo "$as_me:$LINENO: checking for alsa" >&5 echo $ECHO_N "checking for alsa... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #if defined(SND_LIB_MAJOR) && defined(SND_LIB_MINOR) #if SND_LIB_MAJOR>0 || (SND_LIB_MAJOR==0 && SND_LIB_MINOR>=6) AP_maGiC_VALUE #endif #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "AP_maGiC_VALUE" >/dev/null 2>&1; then # have_alsa_final=yes ALSA_LIB="-lasound" { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } cat >>confdefs.h <<\_ACEOF #define HAVE_ALSA 1 _ACEOF tucnak_alsa="yes" if test "$cross_compiling" = yes; then { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling See \`config.log' for more details." >&5 echo "$as_me: error: cannot run test program while cross compiling See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include FILE *f; int main(void){ f=fopen("conftest.alsa.out", "wt"); if (!f) return -1; fprintf(f, "%s\n", SND_LIB_VERSION_STR); fclose(f); return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then tucnak_alsa_ver=`cat conftest.alsa.out` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.alsa.out else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } tucnak_alsa="no" tucnak_olibs="$tucnak_olibs libasound" tucnak_odebs="$tucnak_odebs libasound-dev" fi rm -f conftest* fi # Check whether --with-ftdi was given. if test "${with_ftdi+set}" = set; then withval=$with_ftdi; fi tucnak_ftdi="disabled" if test "x$with_ftdi" != "xno"; then # check for libftdi tucnak_ftdi_ver="" tucnak_ftdi_new="" pkg_failed=no { echo "$as_me:$LINENO: checking for LIBFTDI" >&5 echo $ECHO_N "checking for LIBFTDI... $ECHO_C" >&6; } if test -n "$PKG_CONFIG"; then if test -n "$LIBFTDI_CFLAGS"; then pkg_cv_LIBFTDI_CFLAGS="$LIBFTDI_CFLAGS" else if test -n "$PKG_CONFIG" && \ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libftdi >= 0.7\"") >&5 ($PKG_CONFIG --exists --print-errors "libftdi >= 0.7") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_LIBFTDI_CFLAGS=`$PKG_CONFIG --cflags "libftdi >= 0.7" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$LIBFTDI_LIBS"; then pkg_cv_LIBFTDI_LIBS="$LIBFTDI_LIBS" else if test -n "$PKG_CONFIG" && \ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libftdi >= 0.7\"") >&5 ($PKG_CONFIG --exists --print-errors "libftdi >= 0.7") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_LIBFTDI_LIBS=`$PKG_CONFIG --libs "libftdi >= 0.7" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then LIBFTDI_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libftdi >= 0.7"` else LIBFTDI_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libftdi >= 0.7"` fi # Put the nasty error message in config.log where it belongs echo "$LIBFTDI_PKG_ERRORS" >&5 { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } tucnak_ftdi="no" tucnak_olibs="$tucnak_olibs libftdi1" tucnak_odebs="$tucnak_odebs libftdi-dev" elif test $pkg_failed = untried; then tucnak_ftdi="no" tucnak_olibs="$tucnak_olibs libftdi1" tucnak_odebs="$tucnak_odebs libftdi-dev" else LIBFTDI_CFLAGS=$pkg_cv_LIBFTDI_CFLAGS LIBFTDI_LIBS=$pkg_cv_LIBFTDI_LIBS { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } cat >>confdefs.h <<\_ACEOF #define HAVE_LIBFTDI 1 _ACEOF tucnak_ftdi_ver=`$PKG_CONFIG --modversion 'libftdi >= 0.7'` echo "libftdi version $tucnak_ftdi_ver" tucnak_ftdi="yes" fi if test x"$tucnak_ftdi" = x"yes"; then # check for ftdi_new { echo "$as_me:$LINENO: checking for ftdi_new in -lftdi" >&5 echo $ECHO_N "checking for ftdi_new in -lftdi... $ECHO_C" >&6; } if test "${ac_cv_lib_ftdi_ftdi_new+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lftdi $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ftdi_new (); int main () { return ftdi_new (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_ftdi_ftdi_new=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_ftdi_ftdi_new=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_ftdi_ftdi_new" >&5 echo "${ECHO_T}$ac_cv_lib_ftdi_ftdi_new" >&6; } if test $ac_cv_lib_ftdi_ftdi_new = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_FTDI_NEW 1 _ACEOF tucnak_ftdi_new="new" else tucnak_ftdi_new="old" fi { echo "$as_me:$LINENO: checking for ftdi_usb_get_strings in -lftdi" >&5 echo $ECHO_N "checking for ftdi_usb_get_strings in -lftdi... $ECHO_C" >&6; } if test "${ac_cv_lib_ftdi_ftdi_usb_get_strings+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lftdi $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ftdi_usb_get_strings (); int main () { return ftdi_usb_get_strings (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_ftdi_ftdi_usb_get_strings=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_ftdi_ftdi_usb_get_strings=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_ftdi_ftdi_usb_get_strings" >&5 echo "${ECHO_T}$ac_cv_lib_ftdi_ftdi_usb_get_strings" >&6; } if test $ac_cv_lib_ftdi_ftdi_usb_get_strings = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_FTDI_USB_GET_STRINGS 1 _ACEOF fi fi fi # Check whether --with-hamlib was given. if test "${with_hamlib+set}" = set; then withval=$with_hamlib; fi tucnak_hamlib="disabled" if test "x$with_hamlib" != "xno"; then # check for hamlib tucnak_hamlib_ver="" pkg_failed=no { echo "$as_me:$LINENO: checking for HAMLIB" >&5 echo $ECHO_N "checking for HAMLIB... $ECHO_C" >&6; } if test -n "$PKG_CONFIG"; then if test -n "$HAMLIB_CFLAGS"; then pkg_cv_HAMLIB_CFLAGS="$HAMLIB_CFLAGS" else if test -n "$PKG_CONFIG" && \ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"hamlib\"") >&5 ($PKG_CONFIG --exists --print-errors "hamlib") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_HAMLIB_CFLAGS=`$PKG_CONFIG --cflags "hamlib" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$HAMLIB_LIBS"; then pkg_cv_HAMLIB_LIBS="$HAMLIB_LIBS" else if test -n "$PKG_CONFIG" && \ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"hamlib\"") >&5 ($PKG_CONFIG --exists --print-errors "hamlib") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_HAMLIB_LIBS=`$PKG_CONFIG --libs "hamlib" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then HAMLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "hamlib"` else HAMLIB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "hamlib"` fi # Put the nasty error message in config.log where it belongs echo "$HAMLIB_PKG_ERRORS" >&5 { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } tucnak_olibs="$tucnak_olibs libhamlib" tucnak_odebs="$tucnak_odebs libhamlib-dev" tucnak_hamlib="no" elif test $pkg_failed = untried; then tucnak_olibs="$tucnak_olibs libhamlib" tucnak_odebs="$tucnak_odebs libhamlib-dev" tucnak_hamlib="no" else HAMLIB_CFLAGS=$pkg_cv_HAMLIB_CFLAGS HAMLIB_LIBS=$pkg_cv_HAMLIB_LIBS { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } cat >>confdefs.h <<\_ACEOF #define HAVE_HAMLIB 1 _ACEOF tucnak_hamlib="yes" tucnak_hamlib_ver=`$PKG_CONFIG --modversion 'hamlib'` fi fi # check for fftw3 # Check whether --with-fftw3 was given. if test "${with_fftw3+set}" = set; then withval=$with_fftw3; fi tucnak_fftw3="disabled" if test "x$with_fftw3" != "xno"; then { echo "$as_me:$LINENO: checking for fftw_execute in -lfftw3" >&5 echo $ECHO_N "checking for fftw_execute in -lfftw3... $ECHO_C" >&6; } if test "${ac_cv_lib_fftw3_fftw_execute+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lfftw3 $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char fftw_execute (); int main () { return fftw_execute (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_fftw3_fftw_execute=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_fftw3_fftw_execute=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_fftw3_fftw_execute" >&5 echo "${ECHO_T}$ac_cv_lib_fftw3_fftw_execute" >&6; } if test $ac_cv_lib_fftw3_fftw_execute = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_LIBFFTW3 _ACEOF FFTW3_LIBS="-lfftw3" tucnak_fftw3="yes" else tucnak_olibs="$tucnak_olibs libfftw3" tucnak_odebs="$tucnak_odebs libfftw3-dev" tucnak_fftw3="no" fi fi # check for library errors if test -n "$tucnak_mlibs$tucnak_olibs"; then echo "" echo "" echo "********" if test -n "$tucnak_mlibs"; then echo "Missing mandatory libraries: $tucnak_mlibs" fi if test -n "$tucnak_olibs"; then echo "Missing optional libraries: $tucnak_olibs" fi if test -f "/etc/debian_version"; then echo "Try to run: apt-get install $tucnak_mdebs $tucnak_odebs" fi echo "********" if test -n "$tucnak_mlibs"; then { { echo "$as_me:$LINENO: error: missing mandatory library/libraries" >&5 echo "$as_me: error: missing mandatory library/libraries" >&2;} { (exit 1); exit 1; }; } fi fi # removed $GLIB_CFLAGS, $GLIB_LIBS CFLAGS="$CFLAGS $GTHREAD_CFLAGS $SDL_CFLAGS $LIBPNG_CFLAGS $SNDFILE_CFLAGS $LIBFTDI_FLAGS $HAMLIB_CFLAGS" LIBS="$LIBS $GTHREAD_LIBS $SDL_LIBS $LIBPNG_LIBS $ICONV_LIBS $SNDFILE_LIBS $ALSA_LIB $LIBFTDI_LIBS $HAMLIB_LIBS $FFTW3_LIBS" { echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5 echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6; } if test "${ac_cv_c_bigendian+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # See if sys/param.h defines the BYTE_ORDER macro. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { #if ! (defined BYTE_ORDER && defined BIG_ENDIAN && defined LITTLE_ENDIAN \ && BYTE_ORDER && BIG_ENDIAN && LITTLE_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then # It does; now see whether it defined to BIG_ENDIAN or not. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { #if BYTE_ORDER != BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_c_bigendian=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_c_bigendian=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # It does not; compile a test program. if test "$cross_compiling" = yes; then # try to guess the endianness by grepping values into an object file ac_cv_c_bigendian=unknown cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; } short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; } int main () { _ascii (); _ebcdic (); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then ac_cv_c_bigendian=yes fi if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then if test "$ac_cv_c_bigendian" = unknown; then ac_cv_c_bigendian=no else # finding both strings is unlikely to happen, but who knows? ac_cv_c_bigendian=unknown fi fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { /* Are we little or big endian? From Harbison&Steele. */ union { long int l; char c[sizeof (long int)]; } u; u.l = 1; return u.c[sizeof (long int) - 1] == 1; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_c_bigendian=no else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_c_bigendian=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5 echo "${ECHO_T}$ac_cv_c_bigendian" >&6; } case $ac_cv_c_bigendian in yes) tucnak_endian="big" ;; no) tucnak_endian="little" ;; *) tucnak_endian="unknown" ;; esac { echo "$as_me:$LINENO: checking for long long" >&5 echo $ECHO_N "checking for long long... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { unsigned long long a; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then have_long_long=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 have_long_long=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $have_long_long" >&5 echo "${ECHO_T}$have_long_long" >&6; } test "$have_long_long" = yes && cat >>confdefs.h <<\_ACEOF #define HAVE_LONG_LONG _ACEOF { echo "$as_me:$LINENO: checking for uint32_t" >&5 echo $ECHO_N "checking for uint32_t... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #ifdef HAVE_STDINT_H #include #endif #ifdef HAVE_INTTYPES_H #include #endif int main () { uint32_t a; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then have_uint32_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 have_uint32_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $have_uint32_t" >&5 echo "${ECHO_T}$have_uint32_t" >&6; } test "$have_uint32_t" = yes && cat >>confdefs.h <<\_ACEOF #define HAVE_UINT32_T _ACEOF { echo "$as_me:$LINENO: checking for typeof" >&5 echo $ECHO_N "checking for typeof... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int a; typeof(a) b; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then have_typeof=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 have_typeof=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $have_typeof" >&5 echo "${ECHO_T}$have_typeof" >&6; } test "$have_typeof" = yes && cat >>confdefs.h <<\_ACEOF #define HAVE_TYPEOF _ACEOF { echo "$as_me:$LINENO: checking for char" >&5 echo $ECHO_N "checking for char... $ECHO_C" >&6; } if test "${ac_cv_type_char+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef char ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_char=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_char=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_char" >&5 echo "${ECHO_T}$ac_cv_type_char" >&6; } # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { echo "$as_me:$LINENO: checking size of char" >&5 echo $ECHO_N "checking size of char... $ECHO_C" >&6; } if test "${ac_cv_sizeof_char+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef char ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef char ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef char ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef char ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef char ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_char=$ac_lo;; '') if test "$ac_cv_type_char" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (char) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (char) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_char=0 fi ;; esac else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef char ac__type_sizeof_; static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (((long int) (sizeof (ac__type_sizeof_))) < 0) { long int i = longval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%ld\n", i); } else { unsigned long int i = ulongval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%lu\n", i); } return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_char=`cat conftest.val` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) if test "$ac_cv_type_char" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (char) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (char) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_char=0 fi fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val fi { echo "$as_me:$LINENO: result: $ac_cv_sizeof_char" >&5 echo "${ECHO_T}$ac_cv_sizeof_char" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_CHAR $ac_cv_sizeof_char _ACEOF { echo "$as_me:$LINENO: checking for short" >&5 echo $ECHO_N "checking for short... $ECHO_C" >&6; } if test "${ac_cv_type_short+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef short ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_short=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_short=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_short" >&5 echo "${ECHO_T}$ac_cv_type_short" >&6; } # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { echo "$as_me:$LINENO: checking size of short" >&5 echo $ECHO_N "checking size of short... $ECHO_C" >&6; } if test "${ac_cv_sizeof_short+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef short ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef short ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef short ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef short ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef short ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_short=$ac_lo;; '') if test "$ac_cv_type_short" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (short) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (short) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_short=0 fi ;; esac else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef short ac__type_sizeof_; static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (((long int) (sizeof (ac__type_sizeof_))) < 0) { long int i = longval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%ld\n", i); } else { unsigned long int i = ulongval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%lu\n", i); } return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_short=`cat conftest.val` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) if test "$ac_cv_type_short" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (short) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (short) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_short=0 fi fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val fi { echo "$as_me:$LINENO: result: $ac_cv_sizeof_short" >&5 echo "${ECHO_T}$ac_cv_sizeof_short" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_SHORT $ac_cv_sizeof_short _ACEOF { echo "$as_me:$LINENO: checking for int" >&5 echo $ECHO_N "checking for int... $ECHO_C" >&6; } if test "${ac_cv_type_int+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_int=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_int=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5 echo "${ECHO_T}$ac_cv_type_int" >&6; } # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { echo "$as_me:$LINENO: checking size of int" >&5 echo $ECHO_N "checking size of int... $ECHO_C" >&6; } if test "${ac_cv_sizeof_int+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_int=$ac_lo;; '') if test "$ac_cv_type_int" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (int) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (int) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_int=0 fi ;; esac else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int ac__type_sizeof_; static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (((long int) (sizeof (ac__type_sizeof_))) < 0) { long int i = longval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%ld\n", i); } else { unsigned long int i = ulongval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%lu\n", i); } return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_int=`cat conftest.val` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) if test "$ac_cv_type_int" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (int) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (int) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_int=0 fi fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val fi { echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5 echo "${ECHO_T}$ac_cv_sizeof_int" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_INT $ac_cv_sizeof_int _ACEOF { echo "$as_me:$LINENO: checking for long" >&5 echo $ECHO_N "checking for long... $ECHO_C" >&6; } if test "${ac_cv_type_long+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_long=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_long=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5 echo "${ECHO_T}$ac_cv_type_long" >&6; } # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { echo "$as_me:$LINENO: checking size of long" >&5 echo $ECHO_N "checking size of long... $ECHO_C" >&6; } if test "${ac_cv_sizeof_long+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_long=$ac_lo;; '') if test "$ac_cv_type_long" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (long) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (long) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_long=0 fi ;; esac else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long ac__type_sizeof_; static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (((long int) (sizeof (ac__type_sizeof_))) < 0) { long int i = longval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%ld\n", i); } else { unsigned long int i = ulongval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%lu\n", i); } return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_long=`cat conftest.val` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) if test "$ac_cv_type_long" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (long) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (long) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_long=0 fi fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val fi { echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5 echo "${ECHO_T}$ac_cv_sizeof_long" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_LONG $ac_cv_sizeof_long _ACEOF test "$have_long_long" = yes && { echo "$as_me:$LINENO: checking for long long" >&5 echo $ECHO_N "checking for long long... $ECHO_C" >&6; } if test "${ac_cv_type_long_long+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long long ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_long_long=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_long_long=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_long_long" >&5 echo "${ECHO_T}$ac_cv_type_long_long" >&6; } # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { echo "$as_me:$LINENO: checking size of long long" >&5 echo $ECHO_N "checking size of long long... $ECHO_C" >&6; } if test "${ac_cv_sizeof_long_long+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_long_long=$ac_lo;; '') if test "$ac_cv_type_long_long" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (long long) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (long long) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_long_long=0 fi ;; esac else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long long ac__type_sizeof_; static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (((long int) (sizeof (ac__type_sizeof_))) < 0) { long int i = longval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%ld\n", i); } else { unsigned long int i = ulongval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%lu\n", i); } return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_long_long=`cat conftest.val` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) if test "$ac_cv_type_long_long" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (long long) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (long long) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_long_long=0 fi fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val fi { echo "$as_me:$LINENO: result: $ac_cv_sizeof_long_long" >&5 echo "${ECHO_T}$ac_cv_sizeof_long_long" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long _ACEOF { echo "$as_me:$LINENO: checking for void *" >&5 echo $ECHO_N "checking for void *... $ECHO_C" >&6; } if test "${ac_cv_type_void_p+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef void * ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_void_p=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_void_p=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_void_p" >&5 echo "${ECHO_T}$ac_cv_type_void_p" >&6; } # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { echo "$as_me:$LINENO: checking size of void *" >&5 echo $ECHO_N "checking size of void *... $ECHO_C" >&6; } if test "${ac_cv_sizeof_void_p+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef void * ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef void * ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef void * ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef void * ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef void * ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_void_p=$ac_lo;; '') if test "$ac_cv_type_void_p" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (void *) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (void *) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_void_p=0 fi ;; esac else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef void * ac__type_sizeof_; static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (((long int) (sizeof (ac__type_sizeof_))) < 0) { long int i = longval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%ld\n", i); } else { unsigned long int i = ulongval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%lu\n", i); } return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_void_p=`cat conftest.val` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) if test "$ac_cv_type_void_p" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (void *) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (void *) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_void_p=0 fi fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val fi { echo "$as_me:$LINENO: result: $ac_cv_sizeof_void_p" >&5 echo "${ECHO_T}$ac_cv_sizeof_void_p" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_VOID_P $ac_cv_sizeof_void_p _ACEOF for ac_func in gmtime_r do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF cat >>confdefs.h <<\_ACEOF #define HAVE_GMTIME_R _ACEOF fi done #check for F_TLOCK in fnctl.h { echo "$as_me:$LINENO: checking for F_TLOCK in sys/file.h" >&5 echo $ECHO_N "checking for F_TLOCK in sys/file.h... $ECHO_C" >&6; } if test "${tucnak_cv_HAVE_F_TLOCK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { int a = F_TLOCK ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then tucnak_cv_HAVE_F_TLOCK=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 tucnak_cv_HAVE_F_TLOCK=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $tucnak_cv_HAVE_F_TLOCK" >&5 echo "${ECHO_T}$tucnak_cv_HAVE_F_TLOCK" >&6; } if test x"$tucnak_cv_HAVE_F_TLOCK" = x"yes"; then cat >>confdefs.h <<\_ACEOF #define HAVE_F_TLOCK _ACEOF fi #check for lockf() for ac_func in lockf do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done #AC_CACHE_CHECK([for lockf in sys/file.h],tucnak_HAVE_LOCKF, [ # AC_TRY_COMPILE([#include ],[lockf(0,0,0);], # tucnak_HAVE_LOCKF=yes,tucnak_HAVE_LOCKF=no)]) #if test x"$tucnak_HAVE_LOCKF" = x"yes"; then # AC_DEFINE(HAVE_LOCKF) #fi ################## # look for a method of finding the list of network interfaces iface=no; tucnak_iface="none" { echo "$as_me:$LINENO: checking for iface AIX" >&5 echo $ECHO_N "checking for iface AIX... $ECHO_C" >&6; } if test "${tucnak_cv_HAVE_IFACE_AIX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then tucnak_cv_HAVE_IFACE_AIX=cross else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #define HAVE_IFACE_AIX 1 #define AUTOCONF_TEST 1 #include "confdefs.h" #include "${srcdir-.}/src/interfaces.c" _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then tucnak_cv_HAVE_IFACE_AIX=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) tucnak_cv_HAVE_IFACE_AIX=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $tucnak_cv_HAVE_IFACE_AIX" >&5 echo "${ECHO_T}$tucnak_cv_HAVE_IFACE_AIX" >&6; } if test x"$tucnak_cv_HAVE_IFACE_AIX" = x"yes"; then iface=yes; cat >>confdefs.h <<\_ACEOF #define HAVE_IFACE_AIX 1 _ACEOF tucnak_iface="aix" fi if test $iface = no; then { echo "$as_me:$LINENO: checking for iface ifconf" >&5 echo $ECHO_N "checking for iface ifconf... $ECHO_C" >&6; } if test "${tucnak_cv_HAVE_IFACE_IFCONF+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then tucnak_cv_HAVE_IFACE_IFCONF=cross else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #define HAVE_IFACE_IFCONF 1 #define AUTOCONF_TEST 1 #include "confdefs.h" #include "${srcdir-.}/src/interfaces.c" _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then tucnak_cv_HAVE_IFACE_IFCONF=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) tucnak_cv_HAVE_IFACE_IFCONF=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $tucnak_cv_HAVE_IFACE_IFCONF" >&5 echo "${ECHO_T}$tucnak_cv_HAVE_IFACE_IFCONF" >&6; } if test x"$tucnak_cv_HAVE_IFACE_IFCONF" = x"yes"; then iface=yes cat >>confdefs.h <<\_ACEOF #define HAVE_IFACE_IFCONF 1 _ACEOF tucnak_iface="ifconf" fi fi if test $iface = no; then { echo "$as_me:$LINENO: checking for iface ifreq" >&5 echo $ECHO_N "checking for iface ifreq... $ECHO_C" >&6; } if test "${tucnak_cv_HAVE_IFACE_IFREQ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then tucnak_cv_HAVE_IFACE_IFREQ=cross else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #define HAVE_IFACE_IFREQ 1 #define AUTOCONF_TEST 1 #include "confdefs.h" #include "${srcdir-.}/src/interfaces.c" _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then tucnak_cv_HAVE_IFACE_IFREQ=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) tucnak_cv_HAVE_IFACE_IFREQ=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $tucnak_cv_HAVE_IFACE_IFREQ" >&5 echo "${ECHO_T}$tucnak_cv_HAVE_IFACE_IFREQ" >&6; } if test x"$tucnak_cv_HAVE_IFACE_IFREQ" = x"yes"; then iface=yes cat >>confdefs.h <<\_ACEOF #define HAVE_IFACE_IFREQ 1 _ACEOF tucnak_iface="ifreq" fi fi # Extract the first word of "rpm", so it can be a program name with args. set dummy rpm; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_HAVE_RPM+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$HAVE_RPM"; then ac_cv_prog_HAVE_RPM="$HAVE_RPM" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_HAVE_RPM=""yes"" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_HAVE_RPM" && ac_cv_prog_HAVE_RPM=""no"" fi fi HAVE_RPM=$ac_cv_prog_HAVE_RPM if test -n "$HAVE_RPM"; then { echo "$as_me:$LINENO: result: $HAVE_RPM" >&5 echo "${ECHO_T}$HAVE_RPM" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi HAVE_RPM_PACKAGING=no if test x$HAVE_RPM = xyes ; then { echo "$as_me:$LINENO: checking for rpm build directories" >&5 echo $ECHO_N "checking for rpm build directories... $ECHO_C" >&6; } RPM_SOURCESDIR=`rpm --showrc | grep "^sourcedir" | \ sed -e 's/.*: //' 2> /dev/null` if test x$RPM_SPECDIR = x ; then # Red Hat : /usr/src/redhat # Mandrake : /usr/src/RPM # SuSE : /usr/src/packages # Debian : /usr/src/rpm for TEST_DIR in /usr/src/redhat /usr/src/RPM /usr/src/packages /usr/src/rpm ; do if test -d $TEST_DIR/SPECS -a -d $TEST_DIR/SOURCES -a \ -d $TEST_DIR/RPMS -a -d $TEST_DIR/SRPMS -a \ -d $TEST_DIR/BUILD ; then RPM_SOURCESDIR=$TEST_DIR/SOURCES fi done fi if test x$RPM_SOURCESDIR = x ; then { echo "$as_me:$LINENO: result: not found" >&5 echo "${ECHO_T}not found" >&6; } RPM_SOURCESDIR="" else { echo "$as_me:$LINENO: result: $RPM_SOURCESDIR" >&5 echo "${ECHO_T}$RPM_SOURCESDIR" >&6; } HAVE_RPM_PACKAGING=yes fi if test -f /etc/mandrake-release ; then RPM_RELEASE="mdk" else RPM_RELEASE="" fi fi #dnl check for ioctl(TIOCLINUX) { echo "$as_me:$LINENO: checking for TIOCLINUX" >&5 echo $ECHO_N "checking for TIOCLINUX... $ECHO_C" >&6; } if test "${tucnak_cv_HAVE_TIOCLINUX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then tucnak_cv_HAVE_TIOCLINUX=cross else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #define AUTOCONF_TEST 1 #include #include "confdefs.h" int cmp(const struct dirent **a, const struct dirent **b){return 0;} int main(){ char c[2]; c[0]=c[1]=0; exit(0); ioctl(1,TIOCLINUX,c); } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then tucnak_cv_HAVE_TIOCLINUX=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) tucnak_cv_HAVE_TIOCLINUX=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $tucnak_cv_HAVE_TIOCLINUX" >&5 echo "${ECHO_T}$tucnak_cv_HAVE_TIOCLINUX" >&6; } if test x"$tucnak_cv_HAVE_TIOCLINUX" = x"yes"; then cat >>confdefs.h <<\_ACEOF #define HAVE_TIOCLINUX _ACEOF fi #dnl Check for socklen_t { echo "$as_me:$LINENO: checking for SOCKLEN_T" >&5 echo $ECHO_N "checking for SOCKLEN_T... $ECHO_C" >&6; } if test "${tucnak_cv_HAVE_SOCKLEN_T+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then tucnak_cv_HAVE_SOCKLEN_T=cross else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #define AUTOCONF_TEST 1 #include #include "confdefs.h" int main(){ socklen_t tmp; exit(0); } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then tucnak_cv_HAVE_SOCKLEN_T=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) tucnak_cv_HAVE_SOCKLEN_T=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $tucnak_cv_HAVE_SOCKLEN_T" >&5 echo "${ECHO_T}$tucnak_cv_HAVE_SOCKLEN_T" >&6; } if test x"$tucnak_cv_HAVE_SOCKLEN_T" = x"yes"; then cat >>confdefs.h <<\_ACEOF #define HAVE_SOCKLEN_T _ACEOF fi # --enable-pedantic # Check whether --enable-pedantic was given. if test "${enable_pedantic+set}" = set; then enableval=$enable_pedantic; enable_pedantic=yes else enable_pedantic=no fi if test x"$enable_pedantic" = x"yes"; then #CFLAGS="$CFLAGS -Wall -Wpedantic" CFLAGS="$CFLAGS -Wall -Werror -Wpointer-arith -Wstrict-prototypes -Wunused -Wunused-function -Wunused-label -Wunused-value -Wunused-variable -Wformat -Wno-format-extra-args -Wformat-security" fi # --enable-leak-debug # Check whether --enable-leak-debug was given. if test "${enable_leak_debug+set}" = set; then enableval=$enable_leak_debug; enable_leak_debug=yes else enable_leak_debug=no fi if test x"$enable_leak_debug" = x"yes"; then cat >>confdefs.h <<_ACEOF #define LEAK_DEBUG _ACEOF cat >>confdefs.h <<_ACEOF #define LEAK_DEBUG_LIST _ACEOF fi # --enable-instr # Check whether --enable-instr was given. if test "${enable_instr+set}" = set; then enableval=$enable_instr; CFLAGS="$CFLAGS -finstrument-functions" enable_instr=yes else enable_instr=no fi CFLAGS=`echo $CFLAGS | sed 's/ \+/ /g'` LDFLAGS=`echo $LDFLAGS | sed 's/ \+/ /g'` LIBS=`echo $LIBS | sed 's/ \+/ /g'` TUCNAK_LDADD=$LIBS LIBS="" TUCNAK_CFLAGS=$CFLAGS sharedir="$prefix/share/$PACKAGE_NAME" cat >>confdefs.h <<_ACEOF #define SHAREDIR "$sharedir" _ACEOF ac_config_files="$ac_config_files Makefile data/Makefile debian.unofficial/Makefile doc/Makefile intl/Makefile pkg/tucnak2.spec pkg/Makefile share/Makefile share/applications/Makefile share/pixmaps/Makefile src/Makefile win32/Makefile win32/tucnak-cygwin.nsi win32/tucnak-mingw.nsi win32/tucnak-msvc.nsi" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { echo "$as_me:$LINENO: updating cache $cache_file" >&5 echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by tucnak2 $as_me 2.48, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ tucnak2 config.status 2.48 configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2006 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header { echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 CONFIG_SHELL=$SHELL export CONFIG_SHELL exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; "debian.unofficial/Makefile") CONFIG_FILES="$CONFIG_FILES debian.unofficial/Makefile" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "intl/Makefile") CONFIG_FILES="$CONFIG_FILES intl/Makefile" ;; "pkg/tucnak2.spec") CONFIG_FILES="$CONFIG_FILES pkg/tucnak2.spec" ;; "pkg/Makefile") CONFIG_FILES="$CONFIG_FILES pkg/Makefile" ;; "share/Makefile") CONFIG_FILES="$CONFIG_FILES share/Makefile" ;; "share/applications/Makefile") CONFIG_FILES="$CONFIG_FILES share/applications/Makefile" ;; "share/pixmaps/Makefile") CONFIG_FILES="$CONFIG_FILES share/pixmaps/Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "win32/Makefile") CONFIG_FILES="$CONFIG_FILES win32/Makefile" ;; "win32/tucnak-cygwin.nsi") CONFIG_FILES="$CONFIG_FILES win32/tucnak-cygwin.nsi" ;; "win32/tucnak-mingw.nsi") CONFIG_FILES="$CONFIG_FILES win32/tucnak-mingw.nsi" ;; "win32/tucnak-msvc.nsi") CONFIG_FILES="$CONFIG_FILES win32/tucnak-msvc.nsi" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # # Set up the sed scripts for CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "$CONFIG_FILES"; then _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF SHELL!$SHELL$ac_delim PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim PACKAGE_NAME!$PACKAGE_NAME$ac_delim PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim PACKAGE_STRING!$PACKAGE_STRING$ac_delim PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim exec_prefix!$exec_prefix$ac_delim prefix!$prefix$ac_delim program_transform_name!$program_transform_name$ac_delim bindir!$bindir$ac_delim sbindir!$sbindir$ac_delim libexecdir!$libexecdir$ac_delim datarootdir!$datarootdir$ac_delim datadir!$datadir$ac_delim sysconfdir!$sysconfdir$ac_delim sharedstatedir!$sharedstatedir$ac_delim localstatedir!$localstatedir$ac_delim includedir!$includedir$ac_delim oldincludedir!$oldincludedir$ac_delim docdir!$docdir$ac_delim infodir!$infodir$ac_delim htmldir!$htmldir$ac_delim dvidir!$dvidir$ac_delim pdfdir!$pdfdir$ac_delim psdir!$psdir$ac_delim libdir!$libdir$ac_delim localedir!$localedir$ac_delim mandir!$mandir$ac_delim DEFS!$DEFS$ac_delim ECHO_C!$ECHO_C$ac_delim ECHO_N!$ECHO_N$ac_delim ECHO_T!$ECHO_T$ac_delim LIBS!$LIBS$ac_delim build_alias!$build_alias$ac_delim host_alias!$host_alias$ac_delim target_alias!$target_alias$ac_delim build!$build$ac_delim build_cpu!$build_cpu$ac_delim build_vendor!$build_vendor$ac_delim build_os!$build_os$ac_delim host!$host$ac_delim host_cpu!$host_cpu$ac_delim host_vendor!$host_vendor$ac_delim host_os!$host_os$ac_delim target!$target$ac_delim target_cpu!$target_cpu$ac_delim target_vendor!$target_vendor$ac_delim target_os!$target_os$ac_delim INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim INSTALL_DATA!$INSTALL_DATA$ac_delim am__isrc!$am__isrc$ac_delim CYGPATH_W!$CYGPATH_W$ac_delim PACKAGE!$PACKAGE$ac_delim VERSION!$VERSION$ac_delim ACLOCAL!$ACLOCAL$ac_delim AUTOCONF!$AUTOCONF$ac_delim AUTOMAKE!$AUTOMAKE$ac_delim AUTOHEADER!$AUTOHEADER$ac_delim MAKEINFO!$MAKEINFO$ac_delim install_sh!$install_sh$ac_delim STRIP!$STRIP$ac_delim INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim mkdir_p!$mkdir_p$ac_delim AWK!$AWK$ac_delim SET_MAKE!$SET_MAKE$ac_delim am__leading_dot!$am__leading_dot$ac_delim AMTAR!$AMTAR$ac_delim am__tar!$am__tar$ac_delim am__untar!$am__untar$ac_delim CC!$CC$ac_delim CFLAGS!$CFLAGS$ac_delim LDFLAGS!$LDFLAGS$ac_delim CPPFLAGS!$CPPFLAGS$ac_delim ac_ct_CC!$ac_ct_CC$ac_delim EXEEXT!$EXEEXT$ac_delim OBJEXT!$OBJEXT$ac_delim DEPDIR!$DEPDIR$ac_delim am__include!$am__include$ac_delim am__quote!$am__quote$ac_delim AMDEP_TRUE!$AMDEP_TRUE$ac_delim AMDEP_FALSE!$AMDEP_FALSE$ac_delim AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim CCDEPMODE!$CCDEPMODE$ac_delim am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim CPP!$CPP$ac_delim GREP!$GREP$ac_delim EGREP!$EGREP$ac_delim HAVE_MAKE!$HAVE_MAKE$ac_delim HAVE_PKGCONFIG!$HAVE_PKGCONFIG$ac_delim PKG_CONFIG!$PKG_CONFIG$ac_delim GLIB_CFLAGS!$GLIB_CFLAGS$ac_delim GLIB_LIBS!$GLIB_LIBS$ac_delim GTHREAD_CFLAGS!$GTHREAD_CFLAGS$ac_delim GTHREAD_LIBS!$GTHREAD_LIBS$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF CEOF$ac_eof _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF SDL_CONFIG!$SDL_CONFIG$ac_delim SDL_CFLAGS!$SDL_CFLAGS$ac_delim SDL_LIBS!$SDL_LIBS$ac_delim LIBPNG_CFLAGS!$LIBPNG_CFLAGS$ac_delim LIBPNG_LIBS!$LIBPNG_LIBS$ac_delim SNDFILE_CFLAGS!$SNDFILE_CFLAGS$ac_delim SNDFILE_LIBS!$SNDFILE_LIBS$ac_delim LIBFTDI_CFLAGS!$LIBFTDI_CFLAGS$ac_delim LIBFTDI_LIBS!$LIBFTDI_LIBS$ac_delim HAMLIB_CFLAGS!$HAMLIB_CFLAGS$ac_delim HAMLIB_LIBS!$HAMLIB_LIBS$ac_delim HAVE_RPM!$HAVE_RPM$ac_delim HAVE_RPM_PACKAGING!$HAVE_RPM_PACKAGING$ac_delim RPM_SOURCESDIR!$RPM_SOURCESDIR$ac_delim RPM_RELEASE!$RPM_RELEASE$ac_delim TUCNAK_LDADD!$TUCNAK_LDADD$ac_delim LIBOBJS!$LIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 18; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b end _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF :end s/|#_!!_#|//g CEOF$ac_eof _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF fi # test -n "$CONFIG_FILES" for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 echo "$as_me: error: Invalid tag $ac_tag." >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac ac_file_inputs="$ac_file_inputs $ac_f" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input="Generated from "`IFS=: echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} fi case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin";; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= case `sed -n '/datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' $ac_file_inputs` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s&@configure_input@&$configure_input&;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out"; rm -f "$tmp/out";; *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; esac ;; :H) # # CONFIG_HEADER # _ACEOF # Transform confdefs.h into a sed script `conftest.defines', that # substitutes the proper values into config.h.in to produce config.h. rm -f conftest.defines conftest.tail # First, append a space to every undef/define line, to ease matching. echo 's/$/ /' >conftest.defines # Then, protect against being on the right side of a sed subst, or in # an unquoted here document, in config.status. If some macros were # called several times there might be several #defines for the same # symbol, which is useless. But do not sort them, since the last # AC_DEFINE must be honored. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* # These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where # NAME is the cpp macro being defined, VALUE is the value it is being given. # PARAMS is the parameter list in the macro definition--in most cases, it's # just an empty string. ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' ac_dB='\\)[ (].*,\\1define\\2' ac_dC=' ' ac_dD=' ,' uniq confdefs.h | sed -n ' t rset :rset s/^[ ]*#[ ]*define[ ][ ]*// t ok d :ok s/[\\&,]/\\&/g s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p ' >>conftest.defines # Remove the space that was appended to ease matching. # Then replace #undef with comments. This is necessary, for # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. # (The regexp can be short, since the line contains either #define or #undef.) echo 's/ $// s,^[ #]*u.*,/* & */,' >>conftest.defines # Break up conftest.defines: ac_max_sed_lines=50 # First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" # Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" # Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" # et cetera. ac_in='$ac_file_inputs' ac_out='"$tmp/out1"' ac_nxt='"$tmp/out2"' while : do # Write a here document: cat >>$CONFIG_STATUS <<_ACEOF # First, check the format of the line: cat >"\$tmp/defines.sed" <<\\CEOF /^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def /^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def b :def _ACEOF sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS echo 'CEOF sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail grep . conftest.tail >/dev/null || break rm -f conftest.defines mv conftest.tail conftest.defines done rm -f conftest.defines conftest.tail echo "ac_result=$ac_in" >>$CONFIG_STATUS cat >>$CONFIG_STATUS <<\_ACEOF if test x"$ac_file" != x-; then echo "/* $configure_input */" >"$tmp/config.h" cat "$ac_result" >>"$tmp/config.h" if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else rm -f $ac_file mv "$tmp/config.h" $ac_file fi else echo "/* $configure_input */" cat "$ac_result" fi rm -f "$tmp/out12" # Compute $ac_file's index in $config_headers. _am_arg=$ac_file _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir=$dirpart/$fdir case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi echo "" (echo "------ Settings: --------"; echo " version: $PACKAGE_NAME-$PACKAGE_VERSION"; echo " prefix: $prefix"; echo " sharedir: $sharedir"; echo " interface: $tucnak_iface"; echo " compiler: $CC $tucnak_cc_ver"; echo " sizes: int=$ac_cv_sizeof_int, long=$ac_cv_sizeof_long, long long=$ac_cv_sizeof_long_long, void*=$ac_cv_sizeof_void_p" echo " endianity: $tucnak_endian"; echo " CFLAGS: $CFLAGS"; echo " LDFLAGS: $LDFLAGS"; echo " LIBS: $TUCNAK_LDADD"; echo " libc: yes $tucnak_libc_ver"; echo " libglib2: $tucnak_glib2 $tucnak_glib2_ver"; echo " libsdl: $tucnak_sdl $tucnak_sdl_ver"; echo " libpng: yes $tucnak_libpng_ver"; echo " iconv: $tucnak_iconv"; echo " libgpm: $tucnak_libgpm $tucnak_libgpm_ver"; echo "libsndfile: $tucnak_sndfile $tucnak_libsndfile_ver"; echo " alsa: $tucnak_alsa $tucnak_alsa_ver"; echo " libftdi: $tucnak_ftdi $tucnak_ftdi_ver $tucnak_ftdi_new"; echo " libhamlib: $tucnak_hamlib $tucnak_hamlib_ver"; echo " libfftw3: $tucnak_fftw3"; echo " ppdev: $ac_cv_header_linux_ppdev_h"; echo " pedantic: $enable_pedantic"; echo "leak debug: $enable_leak_debug"; echo "instrument: $enable_instr"; echo " opts: $opt") | tee settings echo "" (echo "char *txt_settings="; cat settings | sed 's/\(.*\)/"\1\\n"/'; echo ";") > src/settings.c tucnak2-2.48/Makefile.am0000644000175000017500000000605011737315200011773 00000000000000datarootdir = @datarootdir@ SUBDIRS=data debian.unofficial doc intl pkg share src win32 MAINTAINERCLEANFILES = aclocal.m4 config.h.in configure Makefile.in stamp-h.in EXTRA_DIST = COPYING INSTALL leaks rebuild eee.sh docsdir = $(datadir)/tucnak2/doc docs_DATA = AUTHORS ChangeLog TODO stamp = `date +%Y%m%d_%H%M%S` distd: dist echo $(distdir) # mv $(distdir).tar.gz $(distdir).tar.gz alpha: dist echo $(distdir) mv $(distdir).tar.gz $(distdir)-alpha.tar.gz rsync -atuvxz --partial --progress $(distdir)-alpha.tar.gz ok1zia@nagano.cz::ok1zia/public_html/tucnak/ threadsafe: grep -nE '\|\|\|\|\|\'\ '|\|\|\|\|\|\'\ '|\|\|\|\|\'\ '|\|\|\|\|\'\ '|\|\|\|\|\'\ '|\|\|\|\|\'\ '|\|\|\|\|\'\ '|\|\|\|\|\|\'\ '|\|\|\|\|\|\'\ '|\|\' src/*.c src/*.h nagup: rsync -atuvxz --partial --progress tucnak*.tar.gz ok1zia@nagano.cz::ok1zia/public_html/tucnak/ specfile=$(top_srcdir)/pkg/tucnak2.spec RPM_SOURCESDIR=@RPM_SOURCESDIR@ ver: @echo $(VERSION) deb: dpkg-buildpackage -b -rfakeroot -us -uc -tc mv ../$(PACKAGE)_$(VERSION)* . echo "------------------------" if [ -d /pub/debian/ok1zia/binary-i386 ]; then cp $(PACKAGE)_$(VERSION)_i386.deb /pub/debian/ok1zia/binary-i386; fi if [ -d /pub/debian/ok1zia/source ]; then cp $(PACKAGE)_$(VERSION).dsc $(PACKAGE)_$(VERSION).tar.gz $(PACKAGE)_$(VERSION)_i386.changes /pub/debian/ok1zia/source; fi echo make -C /pub/debian/ok1zia rpm: dist if test x$(HAVE_RPM_PACKAGING) = xyes ; then \ cp $(top_srcdir)/$(distdir).tar.gz $(RPM_SOURCESDIR) ; \ rpmbuild -bb --clean --rmsource $(specfile) ; \ mv $(RPM_SOURCESDIR)/../RPMS/*/$(distdir)-1$(RPM_RELEASE).*.rpm . ; \ else \ echo "Error: RPM executable and/or source directory not found." ; \ echo "Package build abandoned." ; \ fi srpm: dist if test x$(HAVE_RPM_PACKAGING) = xyes ; then \ cp $(top_srcdir)/$(distdir).tar.gz $(RPM_SOURCESDIR) ; \ rpmbuild -bs --clean --rmsource $(specfile) ; \ mv $(RPM_SOURCESDIR)/../SRPMS/$(distdir)-1$(RPM_RELEASE).src.rpm . ;\ else \ echo "Error: RPM executable and/or source directory not found." ;\ echo "Package build abandoned." ; \ fi contura: all RSYNC_PASSWORD="" rsync -avvz --progress src/tucnak root@contura::root/usr/bin krq: all RSYNC_PASSWORD="" rsync -avvz --progress src/tucnak root@ok1krq::root/usr/local/bin lines: (a=`cat src/*.[ch] | wc -l`;\ b=`cat src/regex*.[ch] | wc -l`;\ echo $$(($$a - $$b)) ) tucnak2-2.48/aclocal.m40000644000175000017500000012636311737315441011620 00000000000000# generated automatically by aclocal 1.10.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(AC_AUTOCONF_VERSION, [2.61],, [m4_warning([this file was generated for autoconf 2.61. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # # Copyright © 2004 Scott James Remnant . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # # Similar to PKG_CHECK_MODULES, make sure that the first instance of # this or PKG_CHECK_MODULES is called, or make sure to call # PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_ifval([$2], [$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$PKG_CONFIG"; then if test -n "$$1"; then pkg_cv_[]$1="$$1" else PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], [pkg_failed=yes]) fi else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` else $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD ifelse([$4], , [AC_MSG_ERROR(dnl [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT ])], [AC_MSG_RESULT([no]) $4]) elif test $pkg_failed = untried; then ifelse([$4], , [AC_MSG_FAILURE(dnl [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])], [$4]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) ifelse([$3], , :, [$3]) fi[]dnl ])# PKG_CHECK_MODULES # Configure paths for SDL # Sam Lantinga 9/21/99 # stolen from Manish Singh # stolen back from Frank Belew # stolen from Manish Singh # Shamelessly stolen from Owen Taylor dnl AM_PATH_SDL([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) dnl Test for SDL, and define SDL_CFLAGS and SDL_LIBS dnl AC_DEFUN([AM_PATH_SDL], [dnl dnl Get the cflags and libraries from the sdl-config script dnl AC_ARG_WITH(sdl-prefix,[ --with-sdl-prefix=PFX Prefix where SDL is installed (optional)], sdl_prefix="$withval", sdl_prefix="") AC_ARG_WITH(sdl-exec-prefix,[ --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional)], sdl_exec_prefix="$withval", sdl_exec_prefix="") AC_ARG_ENABLE(sdltest, [ --disable-sdltest Do not try to compile and run a test SDL program], , enable_sdltest=yes) if test x$sdl_exec_prefix != x ; then sdl_args="$sdl_args --exec-prefix=$sdl_exec_prefix" if test x${SDL_CONFIG+set} != xset ; then SDL_CONFIG=$sdl_exec_prefix/bin/sdl-config fi fi if test x$sdl_prefix != x ; then sdl_args="$sdl_args --prefix=$sdl_prefix" if test x${SDL_CONFIG+set} != xset ; then SDL_CONFIG=$sdl_prefix/bin/sdl-config fi fi if test "x$prefix" != xNONE; then PATH="$prefix/bin:$prefix/usr/bin:$PATH" fi AC_PATH_PROG(SDL_CONFIG, sdl-config, no, [$PATH]) min_sdl_version=ifelse([$1], ,0.11.0,$1) AC_MSG_CHECKING(for SDL - version >= $min_sdl_version) no_sdl="" if test "$SDL_CONFIG" = "no" ; then no_sdl=yes else SDL_CFLAGS=`$SDL_CONFIG $sdlconf_args --cflags` SDL_LIBS=`$SDL_CONFIG $sdlconf_args --libs` sdl_major_version=`$SDL_CONFIG $sdl_args --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` sdl_minor_version=`$SDL_CONFIG $sdl_args --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` if test "x$enable_sdltest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_CXXFLAGS="$CXXFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $SDL_CFLAGS" CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" LIBS="$LIBS $SDL_LIBS" dnl dnl Now check if the installed SDL is sufficiently new. (Also sanity dnl checks the results of sdl-config to some extent dnl rm -f conf.sdltest AC_TRY_RUN([ #include #include #include #include "SDL.h" char* my_strdup (char *str) { char *new_str; if (str) { new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); strcpy (new_str, str); } else new_str = NULL; return new_str; } int main (int argc, char *argv[]) { int major, minor, micro; char *tmp_version; /* This hangs on some systems (?) system ("touch conf.sdltest"); */ { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); } /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = my_strdup("$min_sdl_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_sdl_version"); exit(1); } if (($sdl_major_version > major) || (($sdl_major_version == major) && ($sdl_minor_version > minor)) || (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro))) { return 0; } else { printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version); printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro); printf("*** best to upgrade to the required version.\n"); printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n"); printf("*** to point to the correct copy of sdl-config, and remove the file\n"); printf("*** config.cache before re-running configure\n"); return 1; } } ],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) CFLAGS="$ac_save_CFLAGS" CXXFLAGS="$ac_save_CXXFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_sdl" = x ; then AC_MSG_RESULT(yes) ifelse([$2], , :, [$2]) else AC_MSG_RESULT(no) if test "$SDL_CONFIG" = "no" ; then echo "*** The sdl-config script installed by SDL could not be found" echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in" echo "*** your path, or set the SDL_CONFIG environment variable to the" echo "*** full path to sdl-config." else if test -f conf.sdltest ; then : else echo "*** Could not run SDL test program, checking why..." CFLAGS="$CFLAGS $SDL_CFLAGS" CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" LIBS="$LIBS $SDL_LIBS" AC_TRY_LINK([ #include #include "SDL.h" int main(int argc, char *argv[]) { return 0; } #undef main #define main K_and_R_C_main ], [ return 0; ], [ echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding SDL or finding the wrong" echo "*** version of SDL. If it is not finding SDL, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"], [ echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means SDL was incorrectly installed" echo "*** or that you have moved SDL since it was installed. In the latter case, you" echo "*** may want to edit the sdl-config script: $SDL_CONFIG" ]) CFLAGS="$ac_save_CFLAGS" CXXFLAGS="$ac_save_CXXFLAGS" LIBS="$ac_save_LIBS" fi fi SDL_CFLAGS="" SDL_LIBS="" ifelse([$3], , :, [$3]) fi AC_SUBST(SDL_CFLAGS) AC_SUBST(SDL_LIBS) rm -f conf.sdltest ]) # Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.10' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.10.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.10.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(AC_AUTOCONF_VERSION)]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 8 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 3 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 8 # AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 13 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.60])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AM_PROG_INSTALL_SH AM_PROG_INSTALL_STRIP AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) ]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR tucnak2-2.48/Makefile.in0000644000175000017500000005672711737315444012036 00000000000000# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ TODO config.guess config.sub depcomp install-sh missing \ mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(docsdir)" docsDATA_INSTALL = $(INSTALL_DATA) DATA = $(docs_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ HAMLIB_CFLAGS = @HAMLIB_CFLAGS@ HAMLIB_LIBS = @HAMLIB_LIBS@ HAVE_MAKE = @HAVE_MAKE@ HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ HAVE_RPM = @HAVE_RPM@ HAVE_RPM_PACKAGING = @HAVE_RPM_PACKAGING@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBFTDI_CFLAGS = @LIBFTDI_CFLAGS@ LIBFTDI_LIBS = @LIBFTDI_LIBS@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RPM_RELEASE = @RPM_RELEASE@ RPM_SOURCESDIR = @RPM_SOURCESDIR@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ TUCNAK_LDADD = @TUCNAK_LDADD@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = data debian.unofficial doc intl pkg share src win32 MAINTAINERCLEANFILES = aclocal.m4 config.h.in configure Makefile.in stamp-h.in EXTRA_DIST = COPYING INSTALL leaks rebuild eee.sh docsdir = $(datadir)/tucnak2/doc docs_DATA = AUTHORS ChangeLog TODO stamp = `date +%Y%m%d_%H%M%S` specfile = $(top_srcdir)/pkg/tucnak2.spec all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \ cd $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(am__configure_deps) cd $(top_srcdir) && $(AUTOHEADER) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 install-docsDATA: $(docs_DATA) @$(NORMAL_INSTALL) test -z "$(docsdir)" || $(MKDIR_P) "$(DESTDIR)$(docsdir)" @list='$(docs_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(docsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(docsdir)/$$f'"; \ $(docsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(docsdir)/$$f"; \ done uninstall-docsDATA: @$(NORMAL_UNINSTALL) @list='$(docs_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(docsdir)/$$f'"; \ rm -f "$(DESTDIR)$(docsdir)/$$f"; \ done # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d $(distdir) || mkdir $(distdir) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ am__remove_distdir=: \ am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(docsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-docsDATA install-dvi: install-dvi-recursive install-exec-am: install-html: install-html-recursive install-info: install-info-recursive install-man: install-pdf: install-pdf-recursive install-ps: install-ps-recursive installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-docsDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ install-strip .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ dist-lzma dist-shar dist-tarZ dist-zip distcheck distclean \ distclean-generic distclean-hdr distclean-tags distcleancheck \ distdir distuninstallcheck dvi dvi-am html html-am info \ info-am install install-am install-data install-data-am \ install-docsDATA install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-docsDATA distd: dist echo $(distdir) # mv $(distdir).tar.gz $(distdir).tar.gz alpha: dist echo $(distdir) mv $(distdir).tar.gz $(distdir)-alpha.tar.gz rsync -atuvxz --partial --progress $(distdir)-alpha.tar.gz ok1zia@nagano.cz::ok1zia/public_html/tucnak/ threadsafe: grep -nE '\|\|\|\|\|\'\ '|\|\|\|\|\|\'\ '|\|\|\|\|\'\ '|\|\|\|\|\'\ '|\|\|\|\|\'\ '|\|\|\|\|\'\ '|\|\|\|\|\'\ '|\|\|\|\|\|\'\ '|\|\|\|\|\|\'\ '|\|\' src/*.c src/*.h nagup: rsync -atuvxz --partial --progress tucnak*.tar.gz ok1zia@nagano.cz::ok1zia/public_html/tucnak/ ver: @echo $(VERSION) deb: dpkg-buildpackage -b -rfakeroot -us -uc -tc mv ../$(PACKAGE)_$(VERSION)* . echo "------------------------" if [ -d /pub/debian/ok1zia/binary-i386 ]; then cp $(PACKAGE)_$(VERSION)_i386.deb /pub/debian/ok1zia/binary-i386; fi if [ -d /pub/debian/ok1zia/source ]; then cp $(PACKAGE)_$(VERSION).dsc $(PACKAGE)_$(VERSION).tar.gz $(PACKAGE)_$(VERSION)_i386.changes /pub/debian/ok1zia/source; fi echo make -C /pub/debian/ok1zia rpm: dist if test x$(HAVE_RPM_PACKAGING) = xyes ; then \ cp $(top_srcdir)/$(distdir).tar.gz $(RPM_SOURCESDIR) ; \ rpmbuild -bb --clean --rmsource $(specfile) ; \ mv $(RPM_SOURCESDIR)/../RPMS/*/$(distdir)-1$(RPM_RELEASE).*.rpm . ; \ else \ echo "Error: RPM executable and/or source directory not found." ; \ echo "Package build abandoned." ; \ fi srpm: dist if test x$(HAVE_RPM_PACKAGING) = xyes ; then \ cp $(top_srcdir)/$(distdir).tar.gz $(RPM_SOURCESDIR) ; \ rpmbuild -bs --clean --rmsource $(specfile) ; \ mv $(RPM_SOURCESDIR)/../SRPMS/$(distdir)-1$(RPM_RELEASE).src.rpm . ;\ else \ echo "Error: RPM executable and/or source directory not found." ;\ echo "Package build abandoned." ; \ fi contura: all RSYNC_PASSWORD="" rsync -avvz --progress src/tucnak root@contura::root/usr/bin krq: all RSYNC_PASSWORD="" rsync -avvz --progress src/tucnak root@ok1krq::root/usr/local/bin lines: (a=`cat src/*.[ch] | wc -l`;\ b=`cat src/regex*.[ch] | wc -l`;\ echo $$(($$a - $$b)) ) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tucnak2-2.48/AUTHORS0000644000175000017500000000266111713676160011024 00000000000000Ladislav Vaiz, OK1ZIA Milos Zimmermann, OK1MZM - D_W database - Testing Michak Karas, OM4AA - Slovak translation - UTF-8 support - RPMs for FC Marco Fillipi, IW3IKN - Optional Exchange Sjoerd Cuijk, PE2SVN - Mandrake packages Florian Evers, DB1FLO - Gentoo ebuild file for tucnak1 Martin Douda, OK3MAD - Title page template David Quental, CT1DRB - Portuguese translation Joop Stakenborg, PG4I - Old debian maintainer (currently unmaintained) Jerome Simonato, F0FLO - French translation of wiki Dave Gilligan, G1OGY - Taclog C_W conversion script share/tac2tuc.pl Stephane Fillod, F8CFE - French translation of Tucnak Thomas Beierlein, DL1JBE - Gentoo maintainer for tucnak2 - Arguments --without-XXX in configure.in - Support for libpng 1.5 Olaf Wessels, DL5YBZ - Winkey fixes Lucian Langa YO6PLB - Fedora packages Leonardo Hoet LU9JMG - Castellano translation Hannes Jochriem DK1HJ - German translation of Tucnak - German translation of wiki Jaime Robles EA4TV - Debian maintainer tucnak2-2.48/NEWS0000644000175000017500000000000011567373661010443 00000000000000tucnak2-2.48/mkinstalldirs0000755000175000017500000000132211567373661012562 00000000000000#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain # $Id: mkinstalldirs,v 1.13 1999/01/05 03:18:55 bje Exp $ errstatus=0 for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr fi fi pathcomp="$pathcomp/" done done exit $errstatus # mkinstalldirs ends here tucnak2-2.48/configure.in0000644000175000017500000005246111737315436012272 00000000000000AC_INIT(tucnak2, 2.48) AM_CONFIG_HEADER(config.h) AC_CONFIG_SRCDIR(src/main.c) AC_CANONICAL_TARGET AM_INIT_AUTOMAKE($PACKAGE_NAME, $PACKAGE_VERSION) dnl Determine default prefix test x$prefix = "xNONE" && prefix="$ac_default_prefix" if test -f "/etc/debian_version"; then echo "TIP: If following test fails, try to run: apt-get install libc6-dev" fi dnl Locate required external software AC_PROG_CC tucnak_cc_ver=`$CC -dumpversion` # --disable-opt opt='-O2' AC_ARG_ENABLE(opt, [ --disable-opt Disable compiling optimisation (-O0)], disable_opt=yes,disable_opt=no ) if test x"$disable_opt" = x"yes"; then CFLAGS=`echo "$CFLAGS"|sed 's/-O2/-O0/'` opt='-O0' fi AC_MSG_CHECKING([whether linker supports -z now]) OLDLDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -z now" AC_LINK_IFELSE([AC_LANG_PROGRAM( [], [])], [tucnak_ld_z_now=yes], [tucnak_ld_z_now=no]) AC_MSG_RESULT([$tucnak_ld_z_now]) if test x"$tucnak_ld_z_now" = x"no" ; then LDFLAGS=$OLDLDFLAGS fi AC_PROG_INSTALL dnl Check for system header files AC_HEADER_STDC AC_CHECK_HEADERS(arpa/inet.h ctype.h dirent.h dlfcn.h errno.h fcntl.h getopt.h grp.h iconv.h inttypes.h libgen.h linux/ppdev.h locale.h math.h netdb.h netinet/in.h netinet/ip.h nl_types.h png.h process.h pty.h pwd.h regex.h signal.h stdarg.h stdint.h stdio.h time.h unistd.h sys/ioctl.h sys/kd.h sys/param.h sys/select.h sys/signal.h sys/socket.h sys/soundcard.h sys/stat.h sys/time.h sys/types.h sys/vfs.h sys/wait.h termios.h utime.h winsock2.h) AC_HEADER_TIME tucnak_libc_ver="" iprig_libc_ver="cross" if test "$cross_compiling" = yes; then iprig_libc_ver=`cat $TOPDIR/staging_dir_$target_cpu/uclibc_version` iprig_cc_ver=`cat $TOPDIR/staging_dir_$target_cpu/gcc_version` else AC_TRY_RUN([ #include #include #ifdef __CYGWIN__ #include #endif FILE *f; int main(void){ f=fopen("conftest.libc.out", "wt"); if (!f) return -1; #ifdef __GLIBC__ fprintf(f, "glibc %d.%d (%s)\n", __GLIBC__, __GLIBC_MINOR__, gnu_get_libc_version()); #endif #ifdef __CYGWIN__ fprintf(f, "cygwin %d.%d.%d, api %d.%d\n", CYGWIN_VERSION_DLL_MAJOR/1000, CYGWIN_VERSION_DLL_MAJOR%1000, CYGWIN_VERSION_DLL_MINOR, CYGWIN_VERSION_API_MAJOR, CYGWIN_VERSION_API_MINOR); #endif fclose(f); return 0; } ],[ tucnak_libc_ver=`cat conftest.libc.out`], []) rm -f conftest.libc.out fi AC_CHECK_LIB(m, sin, LIBM="-lm") AC_CHECK_LIB(m, cos, LIBM="-lm") AC_CHECK_LIB(m, tan, LIBM="-lm") AC_CHECK_LIB(m, acos, LIBM="-lm") AC_CHECK_LIB(m, round, LIBM="-lm") LIBS="$LIBS $LIBM" AC_CHECK_LIB(util, forkpty, LIBUTIL="-lutil") LIBS="$LIBS $LIBUTIL" #set -x #AC_CHECK_LIB(ws2_32, [WSAStartup], [LIBS="$LIBS -lws2_32"]) if test "x$ac_cv_header_winsock2_h" = "xyes"; then LIBS="$LIBS -lws2_32" fi #set >_SOCK #set +x tucnak_mlibs="" tucnak_mdebs="" # check for make AC_CHECK_PROG(HAVE_MAKE, make, [yes], [no]) if test x"$HAVE_MAKE" = x"no"; then tucnak_mlibs="$tucnak_mlibs make" tucnak_mdebs="$tucnak_mdebs make" fi # check for #pkg-config AC_CHECK_PROG(HAVE_PKGCONFIG, pkg-config, [yes], [no]) if test x"$HAVE_PKGCONFIG" = x"no"; then tucnak_mlibs="$tucnak_mlibs pkg-config" tucnak_mdebs="$tucnak_mdebs pkg-config" fi # check for glib and gthreads tucnak_glib2_ver="" PKG_CHECK_MODULES(GLIB, glib-2.0 > 2.0.0, [ AC_DEFINE([HAVE_GLIB2], [1], [glib2]) tucnak_glib2="yes" tucnak_glib2_ver=`$PKG_CONFIG --modversion 'glib-2.0 > 2.0.0'`], [ tucnak_mlibs="$tucnak_mlibs libglib2" tucnak_mdebs="$tucnak_mdebs libglib2.0-dev" tucnak_glib2="no"]) if test x"$tucnak_glib2" = x"yes"; then PKG_CHECK_MODULES(GTHREAD, gthread-2.0 > 2.0.0, AC_DEFINE([HAVE_GTHREAD2], [1], [gthread2]), AC_MSG_ERROR([glib is installed but gthread not ?])) fi AC_ARG_WITH([sdl], AS_HELP_STRING([--without-sdl], [Build without sdl library for graphics support (default: test)])) tucnak_sdl="disabled" if test "x$with_sdl" != "xno"; then # check for SDL SDL_VERSION=1.2.0 tucnak_sdl_ver=""; AM_PATH_SDL($SDL_VERSION, [ AC_DEFINE([HAVE_SDL], [1], [libSDL]) tucnak_sdl="yes" tucnak_sdl_ver=`sdl-config --version`], [ tucnak_olibs="$tucnak_olibs libsdl" tucnak_odebs="$tucnak_odebs libsdl-dev" tucnak_sdl="no"] ) fi #export PKG_CONFIG=/usr/bin/pkg-config AC_ARG_WITH([png], AS_HELP_STRING([--without-png], [Build without PNG support (default: test)])) if test "x$with_png" != "xno"; then # check for libpng tucnak_libpng_ver="" PKG_CHECK_MODULES(LIBPNG, libpng > 1.2.0, [ AC_DEFINE([HAVE_LIBPNG], [1], [libpng]) tucnak_libpng_ver=`pkg-config --modversion 'libpng > 1.2.0'` ], [ tucnak_olibs="$tucnak_olibs libpng" tucnak_odebs="$tucnak_odebs libpng12-dev"]) fi # check for iconv if test x"$tucnak_sdl" = x"yes"; then AC_MSG_CHECKING(for iconv_open()) save_LIBS="$LIBS" LIBS="$LIBS -liconv" ICONV_LIBS="" tucnak_iconv="no" AC_TRY_LINK( [ #ifdef HAVE_ICONV_H # include #endif ], [ iconv_open("fr", "to"); ], [ # ok #echo " __OK " AC_MSG_RESULT(yes; with -liconv) AC_DEFINE([HAVE_ICONV],[2],[iconv with -liconv]) ICONV_LIBS="-liconv" tucnak_iconv="libiconv" ], [ # failed #echo " __FAIL " LIBS="$save_LIBS" AC_TRY_LINK( [ #ifdef HAVE_ICONV_H # include #endif ], [ iconv_open("fr", "to"); ], [ #echo " __OK " AC_MSG_RESULT(yes) AC_DEFINE([HAVE_ICONV],[1],[iconv in libc]) ICONV_LIBS="" tucnak_iconv="libc" ], [ # failed #echo " __FAIL " AC_MSG_RESULT(no) tucnak_mlibs="$tucnak_mlibs libiconv" tucnak_mdebs="$tucnak_mdebs libc6-dev" tucnak_iconv="no" LIBS="$save_LIBS" ]) ]) else tucnak_icpnv="not needed" fi AC_ARG_WITH([gpm], AS_HELP_STRING([--without-gpm], [Build without GPM support (default: test)])) tucnak_libgpm="disabled" if test "x$with_gpm" == "xyes"; then # check for libgpm tucnak_libgpm="no" tucnak_old_LIBS=$LIBS tucnak_libgpm_ver="" AC_CHECK_LIB(gpm, Gpm_Open) if ! test x"$LIBS" = x"$tucnak_old_LIBS"; then tucnak_libgpm="yes" AC_TRY_RUN([ #include #include FILE *f; int main(void){ int w; f=fopen("conftest.libgpm.out", "wt"); if (!f) return -1; fprintf(f, "%s\n", Gpm_GetLibVersion(&w)); fclose(f); return 0; }], [ tucnak_libgpm_ver=`cat conftest.libgpm.out`], [ tucnak_olibs="$tucnak_olibs libgpmg1" tucnak_odebs="$tucnak_odebs libgpmg1-dev"]) rm -f conftest.libgpm.out fi fi AC_ARG_WITH([sndfile], AS_HELP_STRING([--without-sndfile], [Build without sndfile library (default: test)])) tucnak_sndfile="disabled" if test "x$with_sndfile" != "xno"; then # check for libsndfile libsndfile_LIBS=$LIBS libsndfile_CFLAGS=$CFLAGS PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.2, [ AC_DEFINE_UNQUOTED([HAVE_SNDFILE], [1], [Set to 1 if you have libsndfile.]) AC_SUBST(SNDFILE_CFLAGS) AC_SUBST(SNDFILE_LIBS) tucnak_libsndfile_ver=`pkg-config --modversion 'sndfile >= 1.0.2'` tucnak_sndfile="yes" ], [ tucnak_mlibs="$tucnak_mlibs libsndfile" tucnak_mdebs="$tucnak_mdebs libsndfile-dev" tucnak_sndfile="no"]) fi AC_ARG_WITH([alsa], AS_HELP_STRING([--without-alsa], [Build without alsa library for audio i/o (default: test)])) tucnak_alsa="disabled" if test "x$with_alsa" != "xno"; then # check for alsa tucnak_alsa_ver="" AC_MSG_CHECKING(for alsa) AC_EGREP_CPP([AP_maGiC_VALUE], [ #include #if defined(SND_LIB_MAJOR) && defined(SND_LIB_MINOR) #if SND_LIB_MAJOR>0 || (SND_LIB_MAJOR==0 && SND_LIB_MINOR>=6) AP_maGiC_VALUE #endif #endif ],[ # have_alsa_final=yes ALSA_LIB="-lasound" AC_MSG_RESULT([yes]) AC_DEFINE([HAVE_ALSA],[1], [Alsa installed]) tucnak_alsa="yes" AC_TRY_RUN([ #include #include FILE *f; int main(void){ f=fopen("conftest.alsa.out", "wt"); if (!f) return -1; fprintf(f, "%s\n", SND_LIB_VERSION_STR); fclose(f); return 0; } ],[ tucnak_alsa_ver=`cat conftest.alsa.out`], []) rm -f conftest.alsa.out ],[ AC_MSG_RESULT([no]) tucnak_alsa="no" tucnak_olibs="$tucnak_olibs libasound" tucnak_odebs="$tucnak_odebs libasound-dev"] ) fi AC_ARG_WITH([ftdi], AS_HELP_STRING([--without-ftdi], [Build without FTDI support for usb to serial converter (default: test)])) tucnak_ftdi="disabled" if test "x$with_ftdi" != "xno"; then # check for libftdi tucnak_ftdi_ver="" tucnak_ftdi_new="" PKG_CHECK_MODULES(LIBFTDI, libftdi >= 0.7, [ AC_DEFINE([HAVE_LIBFTDI], [1], [libftdi installed]) tucnak_ftdi_ver=`$PKG_CONFIG --modversion 'libftdi >= 0.7'` echo "libftdi version $tucnak_ftdi_ver" tucnak_ftdi="yes" dnl LIBS="$LIBS -lusb" ], [ tucnak_ftdi="no" tucnak_olibs="$tucnak_olibs libftdi1" tucnak_odebs="$tucnak_odebs libftdi-dev" ]) if test x"$tucnak_ftdi" = x"yes"; then # check for ftdi_new AC_CHECK_LIB(ftdi, ftdi_new, [ AC_DEFINE([HAVE_FTDI_NEW],[1], [ftdi_new() is present (libftdi >= 0.11)]) tucnak_ftdi_new="new"], [ tucnak_ftdi_new="old"]) AC_CHECK_LIB(ftdi, ftdi_usb_get_strings, [ AC_DEFINE(HAVE_FTDI_USB_GET_STRINGS, [1], [libftdi contains ftdi_usb_get_strings()])]) fi fi AC_ARG_WITH([hamlib], AS_HELP_STRING([--without-hamlib], [Build without Hamlib support (default: test)])) tucnak_hamlib="disabled" if test "x$with_hamlib" != "xno"; then # check for hamlib tucnak_hamlib_ver="" PKG_CHECK_MODULES(HAMLIB, hamlib, [ AC_DEFINE([HAVE_HAMLIB], [1], [hamlib]) tucnak_hamlib="yes" tucnak_hamlib_ver=`$PKG_CONFIG --modversion 'hamlib'` ], [ tucnak_olibs="$tucnak_olibs libhamlib" tucnak_odebs="$tucnak_odebs libhamlib-dev" tucnak_hamlib="no" ]) fi # check for fftw3 AC_ARG_WITH([fftw3], AS_HELP_STRING([--without-fftw3], [Build without fftw3 library (default: test)])) tucnak_fftw3="disabled" if test "x$with_fftw3" != "xno"; then AC_CHECK_LIB(fftw3, fftw_execute, [ AC_DEFINE([HAVE_LIBFFTW3], [], [fftw3 installed]) FFTW3_LIBS="-lfftw3" tucnak_fftw3="yes" ], [ tucnak_olibs="$tucnak_olibs libfftw3" tucnak_odebs="$tucnak_odebs libfftw3-dev" tucnak_fftw3="no" ]) fi # check for library errors if test -n "$tucnak_mlibs$tucnak_olibs"; then echo "" echo "" echo "********" if test -n "$tucnak_mlibs"; then echo "Missing mandatory libraries: $tucnak_mlibs" fi if test -n "$tucnak_olibs"; then echo "Missing optional libraries: $tucnak_olibs" fi if test -f "/etc/debian_version"; then echo "Try to run: apt-get install $tucnak_mdebs $tucnak_odebs" fi echo "********" if test -n "$tucnak_mlibs"; then AC_MSG_ERROR([missing mandatory library/libraries]) fi fi # removed $GLIB_CFLAGS, $GLIB_LIBS CFLAGS="$CFLAGS $GTHREAD_CFLAGS $SDL_CFLAGS $LIBPNG_CFLAGS $SNDFILE_CFLAGS $LIBFTDI_FLAGS $HAMLIB_CFLAGS" LIBS="$LIBS $GTHREAD_LIBS $SDL_LIBS $LIBPNG_LIBS $ICONV_LIBS $SNDFILE_LIBS $ALSA_LIB $LIBFTDI_LIBS $HAMLIB_LIBS $FFTW3_LIBS" AC_C_BIGENDIAN([tucnak_endian="big"],[tucnak_endian="little"],[tucnak_endian="unknown"]) AC_MSG_CHECKING([for long long]) AC_TRY_COMPILE(, [unsigned long long a;], have_long_long=yes, have_long_long=no) AC_MSG_RESULT($have_long_long) test "$have_long_long" = yes && AC_DEFINE([HAVE_LONG_LONG], [], [long long]) AC_MSG_CHECKING([for uint32_t]) AC_TRY_COMPILE([ #include #ifdef HAVE_STDINT_H #include #endif #ifdef HAVE_INTTYPES_H #include #endif ], [uint32_t a;], have_uint32_t=yes, have_uint32_t=no) AC_MSG_RESULT($have_uint32_t) test "$have_uint32_t" = yes && AC_DEFINE([HAVE_UINT32_T], [], [uinf32_t]) AC_MSG_CHECKING([for typeof]) AC_TRY_COMPILE(, [int a; typeof(a) b;], have_typeof=yes, have_typeof=no) AC_MSG_RESULT($have_typeof) test "$have_typeof" = yes && AC_DEFINE([HAVE_TYPEOF], [], [have operator typeof]) AC_CHECK_SIZEOF(char) AC_CHECK_SIZEOF(short) AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(long) test "$have_long_long" = yes && AC_CHECK_SIZEOF(long long, 8) AC_CHECK_SIZEOF(void *) AC_CHECK_FUNCS(gmtime_r, AC_DEFINE([HAVE_GMTIME_R], [], [have function gmtime_r])) #check for F_TLOCK in fnctl.h AC_CACHE_CHECK([for F_TLOCK in sys/file.h],tucnak_cv_HAVE_F_TLOCK, [ AC_TRY_COMPILE([#include ],[int a = F_TLOCK], tucnak_cv_HAVE_F_TLOCK=yes,tucnak_cv_HAVE_F_TLOCK=no)]) if test x"$tucnak_cv_HAVE_F_TLOCK" = x"yes"; then AC_DEFINE([HAVE_F_TLOCK], [], [T_LOCK]) fi #check for lockf() AC_CHECK_FUNCS(lockf) #AC_CACHE_CHECK([for lockf in sys/file.h],tucnak_HAVE_LOCKF, [ # AC_TRY_COMPILE([#include ],[lockf(0,0,0);], # tucnak_HAVE_LOCKF=yes,tucnak_HAVE_LOCKF=no)]) #if test x"$tucnak_HAVE_LOCKF" = x"yes"; then # AC_DEFINE(HAVE_LOCKF) #fi ################## # look for a method of finding the list of network interfaces iface=no; tucnak_iface="none" AC_CACHE_CHECK([for iface AIX],tucnak_cv_HAVE_IFACE_AIX,[ AC_TRY_RUN([ #define HAVE_IFACE_AIX 1 #define AUTOCONF_TEST 1 #include "confdefs.h" #include "${srcdir-.}/src/interfaces.c"], tucnak_cv_HAVE_IFACE_AIX=yes,tucnak_cv_HAVE_IFACE_AIX=no,tucnak_cv_HAVE_IFACE_AIX=cross)]) if test x"$tucnak_cv_HAVE_IFACE_AIX" = x"yes"; then iface=yes; AC_DEFINE([HAVE_IFACE_AIX], [1], [iface aix]) tucnak_iface="aix" fi if test $iface = no; then AC_CACHE_CHECK([for iface ifconf],tucnak_cv_HAVE_IFACE_IFCONF,[ AC_TRY_RUN([ #define HAVE_IFACE_IFCONF 1 #define AUTOCONF_TEST 1 #include "confdefs.h" #include "${srcdir-.}/src/interfaces.c"], tucnak_cv_HAVE_IFACE_IFCONF=yes,tucnak_cv_HAVE_IFACE_IFCONF=no,tucnak_cv_HAVE_IFACE_IFCONF=cross)]) if test x"$tucnak_cv_HAVE_IFACE_IFCONF" = x"yes"; then iface=yes AC_DEFINE([HAVE_IFACE_IFCONF], [1], [iface ifconf]) tucnak_iface="ifconf" fi fi if test $iface = no; then AC_CACHE_CHECK([for iface ifreq],tucnak_cv_HAVE_IFACE_IFREQ,[ AC_TRY_RUN([ #define HAVE_IFACE_IFREQ 1 #define AUTOCONF_TEST 1 #include "confdefs.h" #include "${srcdir-.}/src/interfaces.c"], tucnak_cv_HAVE_IFACE_IFREQ=yes,tucnak_cv_HAVE_IFACE_IFREQ=no,tucnak_cv_HAVE_IFACE_IFREQ=cross)]) if test x"$tucnak_cv_HAVE_IFACE_IFREQ" = x"yes"; then iface=yes AC_DEFINE([HAVE_IFACE_IFREQ], [1], [iface ifreq]) tucnak_iface="ifreq" fi fi AC_CHECK_PROG(HAVE_RPM, rpm, "yes", "no") HAVE_RPM_PACKAGING=no if test x$HAVE_RPM = xyes ; then AC_MSG_CHECKING(for rpm build directories) RPM_SOURCESDIR=`rpm --showrc | grep "^sourcedir" | \ sed -e 's/.*: //' 2> /dev/null` if test x$RPM_SPECDIR = x ; then # Red Hat : /usr/src/redhat # Mandrake : /usr/src/RPM # SuSE : /usr/src/packages # Debian : /usr/src/rpm for TEST_DIR in /usr/src/redhat /usr/src/RPM /usr/src/packages /usr/src/rpm ; do if test -d $TEST_DIR/SPECS -a -d $TEST_DIR/SOURCES -a \ -d $TEST_DIR/RPMS -a -d $TEST_DIR/SRPMS -a \ -d $TEST_DIR/BUILD ; then RPM_SOURCESDIR=$TEST_DIR/SOURCES fi done fi if test x$RPM_SOURCESDIR = x ; then AC_MSG_RESULT(not found) RPM_SOURCESDIR="" else AC_MSG_RESULT($RPM_SOURCESDIR) HAVE_RPM_PACKAGING=yes fi if test -f /etc/mandrake-release ; then RPM_RELEASE="mdk" else RPM_RELEASE="" fi fi AC_SUBST(HAVE_RPM_PACKAGING) AC_SUBST(RPM_SOURCESDIR) AC_SUBST(RPM_RELEASE) #dnl check for ioctl(TIOCLINUX) AC_CACHE_CHECK([for TIOCLINUX],tucnak_cv_HAVE_TIOCLINUX,[ AC_TRY_RUN([ #define AUTOCONF_TEST 1 #include #include "confdefs.h" int cmp(const struct dirent **a, const struct dirent **b){return 0;} int main(){ char c[2]; c[0]=c[1]=0; exit(0); ioctl(1,TIOCLINUX,c); }], tucnak_cv_HAVE_TIOCLINUX=yes,tucnak_cv_HAVE_TIOCLINUX=no,tucnak_cv_HAVE_TIOCLINUX=cross)]) if test x"$tucnak_cv_HAVE_TIOCLINUX" = x"yes"; then AC_DEFINE([HAVE_TIOCLINUX], [], [ioctl TIOCLINUX]) fi #dnl Check for socklen_t AC_CACHE_CHECK([for SOCKLEN_T],tucnak_cv_HAVE_SOCKLEN_T,[ AC_TRY_RUN([ #define AUTOCONF_TEST 1 #include #include "confdefs.h" int main(){ socklen_t tmp; exit(0); }], tucnak_cv_HAVE_SOCKLEN_T=yes,tucnak_cv_HAVE_SOCKLEN_T=no,tucnak_cv_HAVE_SOCKLEN_T=cross)]) if test x"$tucnak_cv_HAVE_SOCKLEN_T" = x"yes"; then AC_DEFINE([HAVE_SOCKLEN_T], [], [socklen_t]) fi # --enable-pedantic AC_ARG_ENABLE(pedantic, [ --enable-pedantic Enable pedantic gcc checking(-Wall etc.)], enable_pedantic=yes,enable_pedantic=no ) dnl echo "pedantic=$enable_pedantic" if test x"$enable_pedantic" = x"yes"; then #CFLAGS="$CFLAGS -Wall -Wpedantic" CFLAGS="$CFLAGS -Wall -Werror -Wpointer-arith -Wstrict-prototypes -Wunused -Wunused-function -Wunused-label -Wunused-value -Wunused-variable -Wformat -Wno-format-extra-args -Wformat-security" fi # --enable-leak-debug AC_ARG_ENABLE(leak-debug, [ --enable-leak-debug Enable memory leak debug], enable_leak_debug=yes,enable_leak_debug=no ) if test x"$enable_leak_debug" = x"yes"; then AC_DEFINE_UNQUOTED([LEAK_DEBUG], [], [Memory leak debug]) AC_DEFINE_UNQUOTED([LEAK_DEBUG_LIST], [], [Memory leak debug list]) fi # --enable-instr AC_ARG_ENABLE(instr, [ --enable-instr Enable instrument call trace], [ CFLAGS="$CFLAGS -finstrument-functions" enable_instr=yes ], [ enable_instr=no]) dnl ebuild for Gentoo dnl rm -f "pkg/$PACKAGE_NAME-*.ebuild" dnl cp "pkg/$PACKAGE_NAME.ebuild" "pkg/$PACKAGE_NAME-$PACKAGE_VERSION.ebuild" CFLAGS=`echo $CFLAGS | sed 's/ \+/ /g'` LDFLAGS=`echo $LDFLAGS | sed 's/ \+/ /g'` LIBS=`echo $LIBS | sed 's/ \+/ /g'` TUCNAK_LDADD=$LIBS LIBS="" AC_SUBST(TUCNAK_LDADD) TUCNAK_CFLAGS=$CFLAGS sharedir="$prefix/share/$PACKAGE_NAME" AC_DEFINE_UNQUOTED([SHAREDIR], ["$sharedir"], [Shared directory]) AC_OUTPUT(Makefile data/Makefile debian.unofficial/Makefile doc/Makefile intl/Makefile pkg/tucnak2.spec pkg/Makefile share/Makefile share/applications/Makefile share/pixmaps/Makefile src/Makefile win32/Makefile win32/tucnak-cygwin.nsi win32/tucnak-mingw.nsi win32/tucnak-msvc.nsi) echo "" (echo "------ Settings: --------"; echo " version: $PACKAGE_NAME-$PACKAGE_VERSION"; echo " prefix: $prefix"; echo " sharedir: $sharedir"; echo " interface: $tucnak_iface"; echo " compiler: $CC $tucnak_cc_ver"; echo " sizes: int=$ac_cv_sizeof_int, long=$ac_cv_sizeof_long, long long=$ac_cv_sizeof_long_long, void*=$ac_cv_sizeof_void_p" echo " endianity: $tucnak_endian"; echo " CFLAGS: $CFLAGS"; echo " LDFLAGS: $LDFLAGS"; echo " LIBS: $TUCNAK_LDADD"; echo " libc: yes $tucnak_libc_ver"; echo " libglib2: $tucnak_glib2 $tucnak_glib2_ver"; echo " libsdl: $tucnak_sdl $tucnak_sdl_ver"; echo " libpng: yes $tucnak_libpng_ver"; echo " iconv: $tucnak_iconv"; echo " libgpm: $tucnak_libgpm $tucnak_libgpm_ver"; echo "libsndfile: $tucnak_sndfile $tucnak_libsndfile_ver"; echo " alsa: $tucnak_alsa $tucnak_alsa_ver"; echo " libftdi: $tucnak_ftdi $tucnak_ftdi_ver $tucnak_ftdi_new"; echo " libhamlib: $tucnak_hamlib $tucnak_hamlib_ver"; echo " libfftw3: $tucnak_fftw3"; echo " ppdev: $ac_cv_header_linux_ppdev_h"; echo " pedantic: $enable_pedantic"; echo "leak debug: $enable_leak_debug"; echo "instrument: $enable_instr"; echo " opts: $opt") | tee settings echo "" (echo "char *txt_settings[]="; cat settings | sed 's/\(.*\)/"\1\\n"/'; echo ";") > src/settings.c tucnak2-2.48/leaks0000755000175000017500000000034511567373661011005 00000000000000#!/bin/bash rm -f config.log config.cache config.h aclocal automake automake doc/Makefile #automake etc/Makefile automake src/Makefile autoconf && ./configure --disable-sdltest --enable-pedantic --enable-leak-debug && make tucnak2-2.48/depcomp0000755000175000017500000004224611567373661011343 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2006-10-15.18 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 Free Software # Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: tucnak2-2.48/eee.sh0000755000175000017500000000134711567373661011060 00000000000000#!/bin/bash # This script creates package for use on Asus EEE (Xandros) # Must be run on Debian Etch or older system # On EEE simply download and unpack file in home directory # then press Ctrl+Alt+T to start console and run tucnak/tucnak set -e #./configure --without-gpm --without-ftdi --without-hamlib --without-fftw3 ./configure --without-gpm make VER=`make ver` rm -rf eee mkdir eee cd eee mkdir tucnak cp ../src/tucnak tucnak sed 's/gfx_x *=.*/gfx_x = 792/' <../data/tucnakrc >1 sed 's/gfx_y *=.*/gfx_y = 416/' <1 >2 sed 's/loglines *=.*/loglines = 1/' <2 >3 sed 's/cwda_type *=.*/cwda_type = 0/' <3 >tucnak/tucnakrc F="tucnak2-eee-$VER.tar.gz" tar czf ../$F tucnak echo $F created cd .. rm -rf eee tucnak2-2.48/TODO0000644000175000017500000000602511567373661010451 00000000000000 - komunikace s rotarem zere 40% casu - jen pri mape - zobrazovat hostname misto IP - git clone git://git.kernel.org/pub/scm/devel/sparse/sparse.git - pod SDL/FB nekam uklizet kurzor, objevi se po prepnuti vt zpet -posilat do rotaru elevaci z dialogu -v rotarovym dialogu stopnout rotar backspacem - ne, necim jinym -ok1jj/3b bad DXCC -obcas se ST inkrementuje 2x Neopakovatelne ================ - spadlo to pri kresleni gses->qs pro 89AK, ->len byla 4, ale [0]==NULL - pod ok1krq blika v tucnaku cas bez zavodu - divny, ted ne - zipet pred disconnectem zopakuje posledni radku - ted ne Zamitnuto =========== - mam zapsanej lokator. dam znacku nekoho, koho uz mam a v DB je lokator, tak to nebidne lokator z DB, melo by nechat zapsanej, z DB nabidnout jako druhej - hash pro zjisteni, zda znacka je zalogovana na pasmu, pouze platna qso (dupe pri rover) QRV list: -v tucnaku i papirovej -info z KST, ale jak urcit band? -rucni zadavani call, nepovinne loc, skutecna qrg -skryt pri udelani, ale pamatovat -setridit podle vzdalenosti -nejak predvyplnit treba z delanych qso za posledni rok? muselo by se rozlisit v tucnakcw, jestli jsme stanici delali my nebo se tam ocitla jinak -v papirovym carky za pocet pokusu -informace, ze je QRV na dalsich pasmech 1) primrn jsem ml na mysli to, e tuk zpracuje seznam dostupnch uivatel z chatu (zmrn nepu konkrtn systm, ale v souasnosti to bude pedevm KST). Ml by tedy mt info kdo je dostupn, doplnit kdy naposled od nj pila MSG do chatu (jaksi ukazatel "aktivity") a mon zkusit vyfiltrovat QRG a LOC i za cenu, e to nemus bt stoprocentn. 2) dal vc je doplnn informac z dalch zdroj (cw, dal?). Jde o doplnn hlavn loktoru (potamo vzdlenosti) a informace o tom jestli u se QSO nkdy podailo (tkajc se aktulnho psma). 3) aby to cel bylo pehledn, mus se seznam tdit. Tdn bych vidl takhle po rovnch: - udlan/neudlan v aktulnm contestu. Myslm tedy udlan na konec nebo je pln schovat. - udlan/neudlan v historii. Prvn samozejm ty u nkdy dlan... - vzdlenost. Co k tomu dodat? Na prvn msto ty nejkrat stanice, aby se "polikvidovaly" hned a pak nezaclnly v seznamu To je v kostce moje vchoz pedstava. Bugfixes: ---------- -do optionu dat moznost vypnou podsviceni znacky a suffixu co prosvetlovat cely radky? to by vse usnadnilo -nejak omezit dobu platnosti mastera (maximalne 60sec podle meho casu) New features: -------------- -dodelat trace_xxx -load swap (only if there are no QSOs) -load new contest from net with configuration - pozor na readonly -manual connect -kdyz mi najde znacku k lokatoru, kterou uz mam, tak by to mohl nejak rict -rotar tocit - = -ukoncit vyzvu po stisku pasticky? Not important: --------------- -fix memory leaks (forever :-) -asw_cmd a asw_respawn_str -> rc -cmd & respawn u subwinu ? tucnak2-2.48/win32/0000777000175000017500000000000011737317225010775 500000000000000tucnak2-2.48/win32/tucnak.bat0000644000175000017500000000015111567373661012672 00000000000000@echo off set HOME=c:\ set CYGWIN=codepage:oem c: cd \tucnak tucnak.exe %1 %2 %3 %4 %5 %6 %7 %8 %9 tucnak2-2.48/win32/inpout32.dll0000644000175000017500000010000011567373661013067 00000000000000MZ@ !L!This program cannot be run in DOS mode. $@븡+輡롡@빡򴡩@붡RichPELg?! 0@@IULD<`p @.text.0 `.rdata @@@@.data PP@.rsrc``@@.relocpp@BD$SD$tHu2fSu# =Su TQt@ SHt3;u,9 T~ T9 @Uu1[ uQzYjX US]Vu W}u =T&tu"|Zt WVSЅt WVSu3NWVSE u u7WPStu&WVSu!E } t|ZtWVSЉE E _^[] Tt u=UuS t$ hPYYátZthPhPhPhPjjt$  jjj Wj_9=DUut$T@PP@|$ S\$=@UuN@u NNC|5`Zl@_^[SVW`Yt7;s!_ {tS|@$$;r6 &Y`Z|_^[S39hZVWu5T3:t<=tGV YtPY;5$Uuj 'Y=T8t9UWo YE?=t"U;Yuj YW6YYY8u]5TkYT_^dZ[UQQS39hZVWuW HUhVS@xZ54U8tEPEPSSWMEMPA;ujVYEPEPEPVWEH5U_^U[UMESV!uW} Et7} 8"uDP@"t)t%AXt tF@tՊFt&F8"uF@CtF@AXt tF@ t t ūuHtfe8 t u@8t7} UE3ۀ8\u@C8"u,u%39}t x"Pu}} 39U‰UKtCt\FKutJ}u t? t:}t.tAXtF@FAXt@@Xt&Ft'E_^[]QQLVSU-@VW333;u3Ջ;t LV(@;LV;u Ջ;f9t@@f9u@@f9u+Ƌ=@SS@SSPVSSD$4׋;t2U;YD$t#SSUPt$$VSSׅut$CY\$\$V@SuL;u @;t<8t @8u@8u+@UGY;u3 UWV# W@3_^][YY3j9D$hP@HYt u5HY@3jXS39WU-@~D WVW=@p h@h6hj6vj5HYՃC;W|_^5 Wj5HY5HY@][áTt u*=Uu!hPVYthYUU3ɸP;t A=PQ|V;PTu =U\hPj@u\hCP:YY\WP\@YWj+YujBYj>YWu @>Yj Y_6@^]UE4PQ@]SVt$ Wt$w uj^3w:;Swj TSQ j u+Vj5HY@u"=VtVYtSjWT _^[3Vt$t=j V YYtVP j 4 ^j (YVj5HY@^5Vt$YYÃ|$w"t$Yu9D$tt$!Yu3Vt$;5SWw!j bV_ j tuj^Vj5HY@_^W|$j$L$WtAt;u~Ѓ3ƒtAt#ttt͍y yyyL$ tAtdGu~Ѓ3‹tt4t'ttljD$_fD$G_fD$_ÈD$_ËL$tAt@u~Ѓ3ƒtAt2t$tt͍AL$+ÍAL$+ÍAL$+ÍAL$+USVWjuY;WY]u3pV3ҸR9tt0B=S|EPS@j^;!j@%DYY3@X9u󫪉W}MA;AX@ej@Y3@X4RR;t,Qt%;wURAX@;vAA9uE}rE,WPWR WYDYRAAyGƀAX@=rSYDY5,W%,W3 W=VtjwY_^[ËD$%VuV%@uV%@uVVËD$-t"t t Ht3øøøøWj@Y3@X3 WW,WDY_UEVP5W@3@;rEƅ t7SWU ;w+ȍA ˃BBBu_[j5DY5WPVPjj5WVPVPV5DYbj5WVPVPh5DY:\3ftAX@WtAX 〠@W@AA;rI3ArZwAXȀ @WarzwAX Ȁ @W@;r^Ã=hZujYhZUWVu M};v;xur)$)Ǻr $($)$)(()#ъFGFGr$)I#ъFGr$)#ъFGr$)I)l)d)\)T)L)D)<)DDDDDDDDDDDDDD$)))))E^_ÐE^_ÐFGE^_ÍIFGFGE^_Ðt1|9u$r $ +$*IǺr +$(*$ +8*X**F#шGNOr$ +IF#шGFGr$ +F#шGFGFGZ$ +I******++DDDDDDDDD D DDDD$ +0+8+H+\+E^_ÐFGE^_ÍIFGFGE^_ÐFGFGFGE^_h@j5HY@ WuÃ%W%WjWVXáW W ;sT$+P r3UU MSVA+q ZW΋ziK}D]M Muj?I_M ;v} L;LuHM sL!|D u+M!9$M L! uM!yL|yL|]y]O?vj?_MM+UMj?UIZ;ʉM vU ]]O;v;tkMQ;QuHM sL!TD u+M!$M L! uM!QMQIJMQIJU}u 9} M IJM JQJQJ;JucL MLs%}uM DD )}uOM YO 8]E\W V=@H h@SQ׋ VW PW V@W@HCWHyCu `WxulSjp סWpj5HY@W WȡW+ȍLQHQP E W;Wv W WEW5V_^[UW WSVWu;WuM; Vu%WMB_^[áW VVW3;u0DPP5 WW5HY@;taV WW WhAj5HY4@;ljFt*jh hW@;ljF uvW5HY@3N>~WF_^UQMSVWqA3ۅ|Cj?iZ0DE@@Jujy hhW@up;wEPj^Vh DV@tEPVhDVS@jXVu$E;uVuuu uP@9]uVESSuu E @Pu@E;tc]<ǃ$zeuWSVJ jXËe33M;t)uVuu ju@;tuPVu@3e̋Md _^[UWVu M};v;xur)$:Ǻr $9$:$<:99 :#ъFGFGr$:I#ъFGr$:#ъFGr$:I:::|:t:l:d:\:DDDDDDDDDDDDDD$:::::E^_ÐE^_ÐFGE^_ÍIFGFGE^_Ðt1|9u$r $@<$;IǺr +$H;$@<X;x;;F#шGNOr$@<IF#шGFGr$@<F#шGFGFGZ$@<I;;< <<<$<7<DDDDDDDDD D DDDD$@<P<X<h<|<E^_ÐFGE^_ÍIFGFGE^_ÐFGFGFGE^_USVWUjjh<u]_^[]ËL$AtD$T$SVWD$Pjh<d5d%D$ Xp t.;t$$t(4v L$H |uhD@Td _^[3d y<uQ R 9QuSQS SQSMKCk Y[VC20XC00USVWU] E@EEEECs {ta v|tEVUkT]^] t3x<{SkVS vjDaC T{ v4롸UkjS]]_^[]UL$)APAPy]Q=L$r-=s+ȋą@P%@FrF`FNF8FEEEFEEEEFE`GFFFFFF GG&G0G>GPGxEnGGGGGGGH*H8HFHTH`H|HHHHHHHHH II0I@IPIbItIruntime error TLOSS error SING error DOMAIN error R6028 - unable to initialize heap R6027 - not enough space for lowio initialization R6026 - not enough space for stdio initialization R6025 - pure virtual function call R6024 - not enough space for _onexit/atexit table R6019 - unable to open console device R6018 - unexpected heap error R6017 - unexpected multithread lock error R6016 - not enough space for thread data abnormal program termination R6009 - not enough space for environment R6008 - not enough space for arguments R6002 - floating point not loaded Microsoft Visual C++ Runtime Library Runtime Error! Program: ...GetLastActivePopupGetActiveWindowMessageBoxAuser32.dll6677 99D*F@DF@FrF`FNF8FEEEFEEEEFE`GFFFFFF GG&G0G>GPGxEnGGGGGGGH*H8HFHTH`H|HHHHHHHHH II0I@IPIbItICloseHandle\DeviceIoControl4CreateFileAGetLastErrorWriteFileSizeofResourceLockResourceLoadResourceFindResourceAYGetSystemDirectoryAuGetVersionExAKERNEL32.dll4CloseServiceHandleLCreateServiceAEOpenSCManagerAStartServiceAGOpenServiceAADVAPI32.dllGetCommandLineAtGetVersion}ExitProcessTerminateProcessGetCurrentProcessGetCurrentThreadIdTlsSetValueTlsAllocTlsFreeTlsGetValuemSetHandleCountRGetStdHandleGetFileTypePGetStartupInfoAUDeleteCriticalSection$GetModuleFileNameAFreeEnvironmentStringsAFreeEnvironmentStringsWWideCharToMultiByteGetEnvironmentStringsGetEnvironmentStringsWHeapDestroyHeapCreateVirtualFreeHeapFreeInitializeCriticalSectionfEnterCriticalSectionLeaveCriticalSectionHeapAllocGetCPInfoGetACP1GetOEMCPVirtualAllocHeapReAlloc>GetProcAddressLoadLibraryAMultiByteToWideCharLCMapStringALCMapStringWSGetStringTypeAVGetStringTypeW/RtlUnwindg?IIIIPIIINPOUT32.dllInp32Out32#(\\.\hwinterfacehwinterfaceSystem32\Drivers\hwinterface.sys\Drivers\hwinterface.sysbin TC(C B BB|BXB,BAAA\A4Ax$AyAzAA@XVVVpV x `y!@~ڣ @ڣ AϢ[@~QQ^ _j21~  8ePh  c `@BIN@4VS_VERSION_INFO?StringFileInfo|040904b0CommentsNCompanyNamehttp://www.logix4u.net: FileDescriptioninpout326 FileVersion1, 0, 0, 12 InternalNameinpout326 LegalCopyrightFreeware(LegalTrademarksB OriginalFilenameinpout32.dll PrivateBuild2 ProductNameinpout32: ProductVersion1, 0, 0, 1 SpecialBuildDVarFileInfo$Translation MZ@ !L!This program cannot be run in DOS mode. $ؽӋӋӋҋӋӋՋӋUًӋRichӋPEL+f?  @` @ `@<x (T(.text h.rdata@HINIT"@@@ .rsrcx@B.reloc: @ @BL$2҃aa3\Device\hwinterface\DosDevices\hwinterfaceUlVWj Y}j EY}P5EP֍EPEP֋}E3PVVEj"PVW;|)EPEP;|G8GpG4P3_^SVt$3WF`~ HP@ = @t4= @t f?rGPPF #fj[r;r P^32ҋΉ^_^[\DosDevices\hwinterfaceU8VWj EY P}ȍEPEPEp_^4F+f?@ +f?@P +f?B &|Z4FIofCompleteRequest!IoCreateSymbolicLinkIoCreateDevicedRtlInitUnicodeString%IoDeleteDevice'IoDeleteSymbolicLinkntoskrnl.exeVREAD_PORT_UCHAR\WRITE_PORT_UCHARHAL.dll0 H4VS_VERSION_INFOTT?rStringFileInfoN040904B00CompanyNameLogix4uHFileDescriptionhwinterface.sys>FileVersion5.00.2195.1620@InternalNamehwinterface.sysRLegalCopyrightCopyrighted by Logix4uHOriginalFilenamehwinterface.sys^ProductNamehwinterface Driver Version 1.1BProductVersion5.00.2195.1620DVarFileInfo$Translation (23.3:3c3u3333334_4o4y44nsf.\i386\hwinterface.sysҚP?NB10+f?C:\kernel_mode_driver_source\i386\hwinterface.pdbl0030<0C0Q0~00000#1:1D1p1w111111111112 2+232C2J2Y2e2222222223 33%363=3N3Y3f3344%4-484>4D4N4f4k4u4444445\5w555555556 66$6*616;6T6\6a6m6r66666667!7-737@7M7f77778888L8~888888 909Z9h999999::B:R:::::::::@;G;;;<<= ='=3=C====#>G>N>_>e>u>|>>>>>>>>>>>?-?:?H?S?f????? `0080M0c0j0t0z00000000000000011E1`1p1v11111E2K2S2222h44444444 55:5@5a5k5v5{555555555 666)63696|6666666#7)7G7X7k7777777788%868x88888888899 9$9(9,9094989999999: :':,:0:4:Q:{::::::::::; ;$;(;,;~;;;;;;;;; >>>9>>>M>S>c>n>>>>>>>>>>>>>???Z?0011222/262<2F2L2Q2W2g2p222223333333334 444;455555666#616O6l66667E7778898L8S8e8m8}88888/9A999999999:5:<:@:D:H:L:P:T:X::::::;%;@;G;L;P;T;q;;;;;;;;;;;:<@@,40484<4D4H4P8 00000000001 111$1,141<1D1L1T1t111tucnak2-2.48/win32/tucnak-mingw.nsi.in0000644000175000017500000001146211567373661014450 00000000000000; tucnak.nsi ; ; Install script for Nullsoft Scriptable Install System (NSIS), http://nsis.sf.net ; ;-------------------------------- LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf" ; The name of the installer Name "Tucnak @PACKAGE_VERSION@" ; The file to write OutFile "TucnakMingw-@PACKAGE_VERSION@.exe" ; The default installation directory InstallDir "c:\tucnak" ; Registry key to check for directory (so if you install again, it will ; overwrite the old one automatically) InstallDirRegKey HKLM "Software\OK1ZIA\tucnak" "Install_Dir" Icon "tucnak.ico" UninstallIcon "tucnak.ico" Crccheck on XPStyle on ;-------------------------------- ; Pages Page components Page directory Page instfiles UninstPage uninstConfirm UninstPage instfiles ;-------------------------------- ; The stuff to install Section "Install Tucnak" SectionIn 1 2 RO ; Set output path to the installation directory. SetOutPath $INSTDIR ; Put file there File "..\src\tucnak.exe" File "tucnak.bat" File "tucnak.ico" File "inpout32.dll" File "..\doc\README.win32" ; File "c:\cygwin\bin\uname.exe" File "c:\cygwin\bin\sh.exe" File "c:\cygwin\bin\cygglib-2.0-0.dll" File "c:\cygwin\bin\cyggthread-2.0-0.dll" ; File "c:\cygwin\bin\cyghamlib-2.dll" File "c:\cygwin\bin\cygiconv-2.dll" File "c:\cygwin\bin\cygintl-3.dll" File "c:\cygwin\bin\cygintl-8.dll" ; pro sh.exe, gdb.exe File "c:\cygwin\bin\cygncurses-9.dll" ; pro sh.exe File "c:\cygwin\bin\cygreadline6.dll" ; pro sh.exe File "c:\cygwin\bin\cygsndfile-1.dll" File "c:\cygwin\bin\cygusb0.dll" File "c:\cygwin\bin\cygwin1.dll" ; File "c:\cygwin\lib\hamlib-*.dll" ; Delete "$OUTDIR\hamlib-dummy.dll" ; causes relocation problem ; File "c:\cygwin\bin\rigctl.exe" File "c:\cygwin\bin\gdb.exe" File "c:\cygwin\bin\tcl84.dll" File "c:\cygwin\bin\tk84.dll" File "c:\cygwin\bin\cygncurses-8.dll" ; Write the installation path into the registry WriteRegStr HKLM Software\OK1ZIA\tucnak "install_dir" "$INSTDIR" ; Write the uninstall keys for Windows WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\tucnak" "DisplayName" "Tucnak" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\tucnak" "UninstallString" '"$INSTDIR\uninstall.exe"' WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\tucnak" "NoModify" 1 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\tucnak" "NoRepair" 1 WriteUninstaller "uninstall.exe" SectionEnd ; Optional section (can be disabled by the user) Section "Create shortcut in menu Start" CreateDirectory "$SMPROGRAMS\OK1ZIA" CreateShortCut "$SMPROGRAMS\OK1ZIA\Tucnak.lnk" "$INSTDIR\tucnak.bat" "" "$INSTDIR\tucnak.ico" 0 CreateShortCut "$SMPROGRAMS\OK1ZIA\Uninstall Tucnak.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0 SectionEnd Section "Create shortcut in Desktop" CreateShortCut "$DESKTOP\Tucnak.lnk" "$INSTDIR\tucnak.bat" "" "$INSTDIR\tucnak.ico" 0 SectionEnd Section "Run Tucnak" Exec "$INSTDIR\tucnak.bat" SectionEnd ;-------------------------------- ; Uninstaller Section "Uninstall" ; Remove registry keys DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\tucnak" DeleteRegValue HKLM "Software\OK1ZIA\tucnak" "install_dir" DeleteRegKey /ifempty HKLM "Software\OK1ZIA\tucnak" ; Remove files and uninstaller Delete "$INSTDIR\tucnak.exe" Delete "$INSTDIR\tucnak.bat" Delete "$INSTDIR\tucnak.ico" Delete "$INSTDIR\inpout32.dll" Delete "$INSTDIR\README.win32" Delete "$INSTDIR\uname.exe" Delete "$INSTDIR\sh.exe" Delete "$INSTDIR\cygglib-2.0-0.dll" Delete "$INSTDIR\cyggthread-2.0-0.dll" Delete "$INSTDIR\cyghamlib-2.dll" Delete "$INSTDIR\cygiconv-2.dll" Delete "$INSTDIR\cygintl-3.dll" Delete "$INSTDIR\cygintl-8.dll" ; pro sh.exe Delete "$INSTDIR\cygncurses-8.dll" ; pro sh.exe Delete "$INSTDIR\cygncurses-9.dll" ; pro sh.exe Delete "$INSTDIR\cygreadline6.dll" ; pro sh.exe Delete "$INSTDIR\cygsndfile-1.dll" Delete "$INSTDIR\cygusb0.dll" Delete "$INSTDIR\cygwin1.dll" Delete "$INSTDIR\uninstall.exe" Delete "$INSTDIR\hamlib-*.dll" Delete "$INSTDIR\rigctl.exe" Delete "$INSTDIR\gdb.exe" Delete "$INSTDIR\tcl84.dll" Delete "$INSTDIR\tk84.dll" Delete "$INSTDIR\cygncurses-8.dll" Delete "$SMPROGRAMS\OK1ZIA\Tucnak.lnk" Delete "$SMPROGRAMS\OK1ZIA\Uninstall Tucnak.lnk" Delete "$DESKTOP\Tucnak.lnk" ; Remove directories used RMDir "$SMPROGRAMS\OK1ZIA" RMDir "$INSTDIR" SectionEnd tucnak2-2.48/win32/tucnak-msvc.nsi.in0000644000175000017500000001146111567373661014276 00000000000000; tucnak.nsi ; ; Install script for Nullsoft Scriptable Install System (NSIS), http://nsis.sf.net ; ;-------------------------------- LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf" ; The name of the installer Name "Tucnak @PACKAGE_VERSION@" ; The file to write OutFile "TucnakMsvc-@PACKAGE_VERSION@.exe" ; The default installation directory InstallDir "c:\tucnak" ; Registry key to check for directory (so if you install again, it will ; overwrite the old one automatically) InstallDirRegKey HKLM "Software\OK1ZIA\tucnak" "Install_Dir" Icon "tucnak.ico" UninstallIcon "tucnak.ico" Crccheck on XPStyle on ;-------------------------------- ; Pages Page components Page directory Page instfiles UninstPage uninstConfirm UninstPage instfiles ;-------------------------------- ; The stuff to install Section "Install Tucnak" SectionIn 1 2 RO ; Set output path to the installation directory. SetOutPath $INSTDIR ; Put file there File "..\src\tucnak.exe" File "tucnak.bat" File "tucnak.ico" File "inpout32.dll" File "..\doc\README.win32" ; File "c:\cygwin\bin\uname.exe" File "c:\cygwin\bin\sh.exe" File "c:\cygwin\bin\cygglib-2.0-0.dll" File "c:\cygwin\bin\cyggthread-2.0-0.dll" ; File "c:\cygwin\bin\cyghamlib-2.dll" File "c:\cygwin\bin\cygiconv-2.dll" File "c:\cygwin\bin\cygintl-3.dll" File "c:\cygwin\bin\cygintl-8.dll" ; pro sh.exe, gdb.exe File "c:\cygwin\bin\cygncurses-9.dll" ; pro sh.exe File "c:\cygwin\bin\cygreadline6.dll" ; pro sh.exe File "c:\cygwin\bin\cygsndfile-1.dll" File "c:\cygwin\bin\cygusb0.dll" File "c:\cygwin\bin\cygwin1.dll" ; File "c:\cygwin\lib\hamlib-*.dll" ; Delete "$OUTDIR\hamlib-dummy.dll" ; causes relocation problem ; File "c:\cygwin\bin\rigctl.exe" File "c:\cygwin\bin\gdb.exe" File "c:\cygwin\bin\tcl84.dll" File "c:\cygwin\bin\tk84.dll" File "c:\cygwin\bin\cygncurses-8.dll" ; Write the installation path into the registry WriteRegStr HKLM Software\OK1ZIA\tucnak "install_dir" "$INSTDIR" ; Write the uninstall keys for Windows WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\tucnak" "DisplayName" "Tucnak" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\tucnak" "UninstallString" '"$INSTDIR\uninstall.exe"' WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\tucnak" "NoModify" 1 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\tucnak" "NoRepair" 1 WriteUninstaller "uninstall.exe" SectionEnd ; Optional section (can be disabled by the user) Section "Create shortcut in menu Start" CreateDirectory "$SMPROGRAMS\OK1ZIA" CreateShortCut "$SMPROGRAMS\OK1ZIA\Tucnak.lnk" "$INSTDIR\tucnak.bat" "" "$INSTDIR\tucnak.ico" 0 CreateShortCut "$SMPROGRAMS\OK1ZIA\Uninstall Tucnak.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0 SectionEnd Section "Create shortcut in Desktop" CreateShortCut "$DESKTOP\Tucnak.lnk" "$INSTDIR\tucnak.bat" "" "$INSTDIR\tucnak.ico" 0 SectionEnd Section "Run Tucnak" Exec "$INSTDIR\tucnak.bat" SectionEnd ;-------------------------------- ; Uninstaller Section "Uninstall" ; Remove registry keys DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\tucnak" DeleteRegValue HKLM "Software\OK1ZIA\tucnak" "install_dir" DeleteRegKey /ifempty HKLM "Software\OK1ZIA\tucnak" ; Remove files and uninstaller Delete "$INSTDIR\tucnak.exe" Delete "$INSTDIR\tucnak.bat" Delete "$INSTDIR\tucnak.ico" Delete "$INSTDIR\inpout32.dll" Delete "$INSTDIR\README.win32" Delete "$INSTDIR\uname.exe" Delete "$INSTDIR\sh.exe" Delete "$INSTDIR\cygglib-2.0-0.dll" Delete "$INSTDIR\cyggthread-2.0-0.dll" Delete "$INSTDIR\cyghamlib-2.dll" Delete "$INSTDIR\cygiconv-2.dll" Delete "$INSTDIR\cygintl-3.dll" Delete "$INSTDIR\cygintl-8.dll" ; pro sh.exe Delete "$INSTDIR\cygncurses-8.dll" ; pro sh.exe Delete "$INSTDIR\cygncurses-9.dll" ; pro sh.exe Delete "$INSTDIR\cygreadline6.dll" ; pro sh.exe Delete "$INSTDIR\cygsndfile-1.dll" Delete "$INSTDIR\cygusb0.dll" Delete "$INSTDIR\cygwin1.dll" Delete "$INSTDIR\uninstall.exe" Delete "$INSTDIR\hamlib-*.dll" Delete "$INSTDIR\rigctl.exe" Delete "$INSTDIR\gdb.exe" Delete "$INSTDIR\tcl84.dll" Delete "$INSTDIR\tk84.dll" Delete "$INSTDIR\cygncurses-8.dll" Delete "$SMPROGRAMS\OK1ZIA\Tucnak.lnk" Delete "$SMPROGRAMS\OK1ZIA\Uninstall Tucnak.lnk" Delete "$DESKTOP\Tucnak.lnk" ; Remove directories used RMDir "$SMPROGRAMS\OK1ZIA" RMDir "$INSTDIR" SectionEnd tucnak2-2.48/win32/tucnak-msvc.nsi0000644000175000017500000001142711737315464013667 00000000000000; tucnak.nsi ; ; Install script for Nullsoft Scriptable Install System (NSIS), http://nsis.sf.net ; ;-------------------------------- LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf" ; The name of the installer Name "Tucnak 2.48" ; The file to write OutFile "TucnakMsvc-2.48.exe" ; The default installation directory InstallDir "c:\tucnak" ; Registry key to check for directory (so if you install again, it will ; overwrite the old one automatically) InstallDirRegKey HKLM "Software\OK1ZIA\tucnak" "Install_Dir" Icon "tucnak.ico" UninstallIcon "tucnak.ico" Crccheck on XPStyle on ;-------------------------------- ; Pages Page components Page directory Page instfiles UninstPage uninstConfirm UninstPage instfiles ;-------------------------------- ; The stuff to install Section "Install Tucnak" SectionIn 1 2 RO ; Set output path to the installation directory. SetOutPath $INSTDIR ; Put file there File "..\src\tucnak.exe" File "tucnak.bat" File "tucnak.ico" File "inpout32.dll" File "..\doc\README.win32" ; File "c:\cygwin\bin\uname.exe" File "c:\cygwin\bin\sh.exe" File "c:\cygwin\bin\cygglib-2.0-0.dll" File "c:\cygwin\bin\cyggthread-2.0-0.dll" ; File "c:\cygwin\bin\cyghamlib-2.dll" File "c:\cygwin\bin\cygiconv-2.dll" File "c:\cygwin\bin\cygintl-3.dll" File "c:\cygwin\bin\cygintl-8.dll" ; pro sh.exe, gdb.exe File "c:\cygwin\bin\cygncurses-9.dll" ; pro sh.exe File "c:\cygwin\bin\cygreadline6.dll" ; pro sh.exe File "c:\cygwin\bin\cygsndfile-1.dll" File "c:\cygwin\bin\cygusb0.dll" File "c:\cygwin\bin\cygwin1.dll" ; File "c:\cygwin\lib\hamlib-*.dll" ; Delete "$OUTDIR\hamlib-dummy.dll" ; causes relocation problem ; File "c:\cygwin\bin\rigctl.exe" File "c:\cygwin\bin\gdb.exe" File "c:\cygwin\bin\tcl84.dll" File "c:\cygwin\bin\tk84.dll" File "c:\cygwin\bin\cygncurses-8.dll" ; Write the installation path into the registry WriteRegStr HKLM Software\OK1ZIA\tucnak "install_dir" "$INSTDIR" ; Write the uninstall keys for Windows WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\tucnak" "DisplayName" "Tucnak" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\tucnak" "UninstallString" '"$INSTDIR\uninstall.exe"' WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\tucnak" "NoModify" 1 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\tucnak" "NoRepair" 1 WriteUninstaller "uninstall.exe" SectionEnd ; Optional section (can be disabled by the user) Section "Create shortcut in menu Start" CreateDirectory "$SMPROGRAMS\OK1ZIA" CreateShortCut "$SMPROGRAMS\OK1ZIA\Tucnak.lnk" "$INSTDIR\tucnak.bat" "" "$INSTDIR\tucnak.ico" 0 CreateShortCut "$SMPROGRAMS\OK1ZIA\Uninstall Tucnak.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0 SectionEnd Section "Create shortcut in Desktop" CreateShortCut "$DESKTOP\Tucnak.lnk" "$INSTDIR\tucnak.bat" "" "$INSTDIR\tucnak.ico" 0 SectionEnd Section "Run Tucnak" Exec "$INSTDIR\tucnak.bat" SectionEnd ;-------------------------------- ; Uninstaller Section "Uninstall" ; Remove registry keys DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\tucnak" DeleteRegValue HKLM "Software\OK1ZIA\tucnak" "install_dir" DeleteRegKey /ifempty HKLM "Software\OK1ZIA\tucnak" ; Remove files and uninstaller Delete "$INSTDIR\tucnak.exe" Delete "$INSTDIR\tucnak.bat" Delete "$INSTDIR\tucnak.ico" Delete "$INSTDIR\inpout32.dll" Delete "$INSTDIR\README.win32" Delete "$INSTDIR\uname.exe" Delete "$INSTDIR\sh.exe" Delete "$INSTDIR\cygglib-2.0-0.dll" Delete "$INSTDIR\cyggthread-2.0-0.dll" Delete "$INSTDIR\cyghamlib-2.dll" Delete "$INSTDIR\cygiconv-2.dll" Delete "$INSTDIR\cygintl-3.dll" Delete "$INSTDIR\cygintl-8.dll" ; pro sh.exe Delete "$INSTDIR\cygncurses-8.dll" ; pro sh.exe Delete "$INSTDIR\cygncurses-9.dll" ; pro sh.exe Delete "$INSTDIR\cygreadline6.dll" ; pro sh.exe Delete "$INSTDIR\cygsndfile-1.dll" Delete "$INSTDIR\cygusb0.dll" Delete "$INSTDIR\cygwin1.dll" Delete "$INSTDIR\uninstall.exe" Delete "$INSTDIR\hamlib-*.dll" Delete "$INSTDIR\rigctl.exe" Delete "$INSTDIR\gdb.exe" Delete "$INSTDIR\tcl84.dll" Delete "$INSTDIR\tk84.dll" Delete "$INSTDIR\cygncurses-8.dll" Delete "$SMPROGRAMS\OK1ZIA\Tucnak.lnk" Delete "$SMPROGRAMS\OK1ZIA\Uninstall Tucnak.lnk" Delete "$DESKTOP\Tucnak.lnk" ; Remove directories used RMDir "$SMPROGRAMS\OK1ZIA" RMDir "$INSTDIR" SectionEnd tucnak2-2.48/win32/tucnak-cygwin.nsi.in0000644000175000017500000001146311567373661014630 00000000000000; tucnak.nsi ; ; Install script for Nullsoft Scriptable Install System (NSIS), http://nsis.sf.net ; ;-------------------------------- LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf" ; The name of the installer Name "Tucnak @PACKAGE_VERSION@" ; The file to write OutFile "TucnakCygwin-@PACKAGE_VERSION@.exe" ; The default installation directory InstallDir "c:\tucnak" ; Registry key to check for directory (so if you install again, it will ; overwrite the old one automatically) InstallDirRegKey HKLM "Software\OK1ZIA\tucnak" "Install_Dir" Icon "tucnak.ico" UninstallIcon "tucnak.ico" Crccheck on XPStyle on ;-------------------------------- ; Pages Page components Page directory Page instfiles UninstPage uninstConfirm UninstPage instfiles ;-------------------------------- ; The stuff to install Section "Install Tucnak" SectionIn 1 2 RO ; Set output path to the installation directory. SetOutPath $INSTDIR ; Put file there File "..\src\tucnak.exe" File "tucnak.bat" File "tucnak.ico" File "inpout32.dll" File "..\doc\README.win32" ; File "c:\cygwin\bin\uname.exe" File "c:\cygwin\bin\sh.exe" File "c:\cygwin\bin\cygglib-2.0-0.dll" File "c:\cygwin\bin\cyggthread-2.0-0.dll" ; File "c:\cygwin\bin\cyghamlib-2.dll" File "c:\cygwin\bin\cygiconv-2.dll" File "c:\cygwin\bin\cygintl-3.dll" File "c:\cygwin\bin\cygintl-8.dll" ; pro sh.exe, gdb.exe File "c:\cygwin\bin\cygncurses-9.dll" ; pro sh.exe File "c:\cygwin\bin\cygreadline6.dll" ; pro sh.exe File "c:\cygwin\bin\cygsndfile-1.dll" File "c:\cygwin\bin\cygusb0.dll" File "c:\cygwin\bin\cygwin1.dll" ; File "c:\cygwin\lib\hamlib-*.dll" ; Delete "$OUTDIR\hamlib-dummy.dll" ; causes relocation problem ; File "c:\cygwin\bin\rigctl.exe" File "c:\cygwin\bin\gdb.exe" File "c:\cygwin\bin\tcl84.dll" File "c:\cygwin\bin\tk84.dll" File "c:\cygwin\bin\cygncurses-8.dll" ; Write the installation path into the registry WriteRegStr HKLM Software\OK1ZIA\tucnak "install_dir" "$INSTDIR" ; Write the uninstall keys for Windows WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\tucnak" "DisplayName" "Tucnak" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\tucnak" "UninstallString" '"$INSTDIR\uninstall.exe"' WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\tucnak" "NoModify" 1 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\tucnak" "NoRepair" 1 WriteUninstaller "uninstall.exe" SectionEnd ; Optional section (can be disabled by the user) Section "Create shortcut in menu Start" CreateDirectory "$SMPROGRAMS\OK1ZIA" CreateShortCut "$SMPROGRAMS\OK1ZIA\Tucnak.lnk" "$INSTDIR\tucnak.bat" "" "$INSTDIR\tucnak.ico" 0 CreateShortCut "$SMPROGRAMS\OK1ZIA\Uninstall Tucnak.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0 SectionEnd Section "Create shortcut in Desktop" CreateShortCut "$DESKTOP\Tucnak.lnk" "$INSTDIR\tucnak.bat" "" "$INSTDIR\tucnak.ico" 0 SectionEnd Section "Run Tucnak" Exec "$INSTDIR\tucnak.bat" SectionEnd ;-------------------------------- ; Uninstaller Section "Uninstall" ; Remove registry keys DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\tucnak" DeleteRegValue HKLM "Software\OK1ZIA\tucnak" "install_dir" DeleteRegKey /ifempty HKLM "Software\OK1ZIA\tucnak" ; Remove files and uninstaller Delete "$INSTDIR\tucnak.exe" Delete "$INSTDIR\tucnak.bat" Delete "$INSTDIR\tucnak.ico" Delete "$INSTDIR\inpout32.dll" Delete "$INSTDIR\README.win32" Delete "$INSTDIR\uname.exe" Delete "$INSTDIR\sh.exe" Delete "$INSTDIR\cygglib-2.0-0.dll" Delete "$INSTDIR\cyggthread-2.0-0.dll" Delete "$INSTDIR\cyghamlib-2.dll" Delete "$INSTDIR\cygiconv-2.dll" Delete "$INSTDIR\cygintl-3.dll" Delete "$INSTDIR\cygintl-8.dll" ; pro sh.exe Delete "$INSTDIR\cygncurses-8.dll" ; pro sh.exe Delete "$INSTDIR\cygncurses-9.dll" ; pro sh.exe Delete "$INSTDIR\cygreadline6.dll" ; pro sh.exe Delete "$INSTDIR\cygsndfile-1.dll" Delete "$INSTDIR\cygusb0.dll" Delete "$INSTDIR\cygwin1.dll" Delete "$INSTDIR\uninstall.exe" Delete "$INSTDIR\hamlib-*.dll" Delete "$INSTDIR\rigctl.exe" Delete "$INSTDIR\gdb.exe" Delete "$INSTDIR\tcl84.dll" Delete "$INSTDIR\tk84.dll" Delete "$INSTDIR\cygncurses-8.dll" Delete "$SMPROGRAMS\OK1ZIA\Tucnak.lnk" Delete "$SMPROGRAMS\OK1ZIA\Uninstall Tucnak.lnk" Delete "$DESKTOP\Tucnak.lnk" ; Remove directories used RMDir "$SMPROGRAMS\OK1ZIA" RMDir "$INSTDIR" SectionEnd tucnak2-2.48/win32/Makefile.am0000644000175000017500000000023211567373661012751 00000000000000datarootdir = @datarootdir@ EXTRA_DIST = inpout32.dll tucnak.bat tucnak.ico tucnak-cygwin.nsi.in tucnak-mingw.nsi.in tucnak-msvc.nsi.in tucnak-msvc.nsi tucnak2-2.48/win32/Makefile.in0000644000175000017500000002271411737315444012765 00000000000000# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = win32 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/tucnak-cygwin.nsi.in $(srcdir)/tucnak-mingw.nsi.in \ $(srcdir)/tucnak-msvc.nsi.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = tucnak-cygwin.nsi tucnak-mingw.nsi \ tucnak-msvc.nsi SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ HAMLIB_CFLAGS = @HAMLIB_CFLAGS@ HAMLIB_LIBS = @HAMLIB_LIBS@ HAVE_MAKE = @HAVE_MAKE@ HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ HAVE_RPM = @HAVE_RPM@ HAVE_RPM_PACKAGING = @HAVE_RPM_PACKAGING@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBFTDI_CFLAGS = @LIBFTDI_CFLAGS@ LIBFTDI_LIBS = @LIBFTDI_LIBS@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RPM_RELEASE = @RPM_RELEASE@ RPM_SOURCESDIR = @RPM_SOURCESDIR@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ TUCNAK_LDADD = @TUCNAK_LDADD@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = inpout32.dll tucnak.bat tucnak.ico tucnak-cygwin.nsi.in tucnak-mingw.nsi.in tucnak-msvc.nsi.in tucnak-msvc.nsi all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu win32/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu win32/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh tucnak-cygwin.nsi: $(top_builddir)/config.status $(srcdir)/tucnak-cygwin.nsi.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ tucnak-mingw.nsi: $(top_builddir)/config.status $(srcdir)/tucnak-mingw.nsi.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ tucnak-msvc.nsi: $(top_builddir)/config.status $(srcdir)/tucnak-msvc.nsi.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tucnak2-2.48/win32/tucnak.ico0000644000175000017500000000706611567373661012712 00000000000000 &h( @uqku7Ĵ 9Sg-t,^2VTPI$!)Ol]|1x^Zx;81##:&ZKv]ad|wqdxW| $d.m {aCBA;km1** #g]V shĿkg`h xwur.d\WP MIB.-4xZ{ R<;:s db_jihC@941-rknVSP  }uMKIyvnvHC<552$|_^^,+)HECrmiOOM?;5/,%c_X'%PKEYUN{ $#!1/+^YShc^jec  VRKvus621DA<10.XTPyuq}x>;8d`Zmia 0-'BA?JFBKJHa_]gb]HD>NKFPMFqlj|v  FECTPK:72>:4;:9VTO}B?9EB<OKDUPJ0W$%-Pjl +CZ9,^IR5h#wD:EHyxB!ۦgoOi1 V"c6q(.>| ubk KS]YQ~ߛv4FT[\zrGs_z}dUA}ø{`ώtM2;)@?p&eN37 /JX n8='a*;9K^bJ|t [WPp}J@"h(30,(FQVNJCTpgb]}yBljh)'!ONM-/1HD>b^Y%$$D@=*)&}0/-%# LLLtqoz~|ZUNYUQ@=9" !+)%fc]fb] " U@&5+6E93 :>0#(F,B usb * fixed some gcc warnings * html/http/wiki exports map and chart as png * http server for contest progress presentation * changed fifo time format to HH:MM * fixed wiki map description * fixed volume indicator flicker * fixed trace condition * show chart files without sdl * fixed grid & boundaries in map, tnx to DG6MAN * libgpm is disabled by default * fixed player and chart windows add * fixed network interfaces detect * ignored duplicate $GLIB_CFLAGS, $GLIB_LIBS in configure.in * new macros in tucnak -s =2.40= 2011-04-05 * added _cv_ in autoconf cached variables * updated missing script * fixed iconv detection * fixed tucnakrc load under WIN32 * sdev trace * trace rewrite * split master db into more strings * rewritten cbr items choice for OKOM DX * compile under msvc and ming but unusable at this time * fixed qrv edit/insert (should overwrite another item) * added player (and chart) window types in Add subwin * removed testing code for Ctrl+P in main inputline * experiments with waterfall palette and filtering * frequency axis in fft scope * frequency argument in soundwrapper for testing * tab complete file in file import * chart subwin * fixed cursor position in inputline history alt+h * degree sign in C_W quick search * fixed alt+letter in qrv search * rig error code instead of qrg * changed rig debug level * fixed rigs with unsupported rig_get_vfo() * +1/-1 alloc bugs detection with --enable-leak-debug * fixed qrv insert from keyboard * fixed text upcase in qrv insert/edit =2.39= 2011-02-25 * fixed ftdi_context portability between libftdi versions * qso gain diagram * qrv gain diagram respects worked count * qrv item insert * qrv item edit * new contest loads ~/tucnak/qrv * fixed qrv points drawing when mouse move =2.38= 2011-02-20 * fixed bug in map window during contest load * fixed memory alloc problem in master db * degree sign as hexa constant 0xb0 * rewritten qrv database * fixed master database comment filter * increased length of contest option numbers, tnx to RU2FM * calls from master database are never deleted * fixed contest date in contest options * qso check warning if exists remark * fixed qsonr in cabrillo output, tnx to OK1HRA * fixed avg unit pts/km in wiki and html output * fixed compile without various --without combinations * removed forgotten font13x24.png create * QRG in edit QSO * correct size of screenshots in HTML export * fixed runmode CQ without hamlib, tnx to DL1JBE * fixed Ctrl+3 to Ctrl+9 under SDL * wav player seems to be usable =2.37= 2010-10-27 * two letters input moved to unresolved area * fixed some minors in runmode, tnx to OK3MAD * fixed soundwrapper sound frequency * rewritten runmode for A1/MMC * fixed runmode CQ only in CW mode (TNX to OK1HRA/TC03W) * fixed runmode TU * skeleton for wiki publish * fixed TU give in run mode * > for qrb>average in qsocheck * changed delay between hamlib rig calls for slow radios * fixed string truncate in inputline insert * rig freq read reads from actual VFO * rig mode change keeps bandwidth * fixed autogive=0 * expedition mode =2.36= 2010-09-27 * fixed rig ID choose * fixed segv in loading of contest with HF window and > 6 active bands * do not add 'similar call' to qsocheck when this call is also worked * set rig handshake to none (default for TS850 is CTS/RTS) * set rig timeout to 500ms (480s is unusable) * gdb and rigctl under cygwin * fixed cygncurses-9 dependency for sh.exe under cygwin * updated tucnakdw (4X, ZC4, many UA) * improved edit qso time parsing * autogive mode after some typed chars * macro $B * bell sign for character 7 under sdl * in macro $I dots are replaced by question marks * added baudrate for rig control * fixed R9SA parsing as report (tnx to OK1HRA) * WAZ and ITU in HF window * rewritten exc list in HF window * master call database * fixed SFI parse * "live" QSO list in HF window * enlarged layout of HF window * updated UA wwls in tucnakdw * fixed missing excs display * argument -m sets time from master PC * 'c' key for center screen to QTH * 'p' key for photo in map * fixed second part of CQSOs for method 16 * summery table with links to bands in html export * fixed buffer and period time to ms (was us) * similar calls are computed using Levenshtein distance * cleared qso check message * fixed top10 formatting for qrb>=1000 km * reverted to old udev rule style (for lenny) * fixed memory leaks in dwdb.c, rotar.c =2.35= 2010-06-30 * fixed crash in fft calculation * support for Championnat de France THF * alt-j: short access for A/C and M/S cq * qrv list save * configure checks for make * fixed large qso number display in global QSO mode, tnx to DL5YBZ * support for prefixes with slash (3D2/C) * fixed crash after IT9x call (* in prefix in cty.dat), tnx to DL5YBZ * fixed $MN macro, tnx to OK1HRA (GL in WPX!) * send CW2 and save QSO also after QSONR * list import * support for odd/even/1st/2nd TX (A/C, M/S) * fixed suid of soundwrapper * updated cty.dat * SYSFS{} changed to ATTR{} for new udev versions =2.34= 2010-04-26 * changed time separator from . to : * four digits are QSO number, not month and day of month * deb package uses suided soundwrapper * macro $I * fixed statistics calculation after loading of contest * added frequency to adif export * fixed exchange output in cabrillo and adif export * changed format of ChangeLog to Mediawiki source format * get back generated debian/changelog, it seems we have no DEB maintainer =2.33= 2010-02-18 * fixed usaca multiple names * rit clear after qso save in run mode * support for ARRL International DX Contest * fixed ARRL VHF scoring * turned off cq repeat for cwdaemon * rig changes: poll interval, mode and band transfer 20100213: 2.32 cabrillo export for ARRL VHF contests fixed leak debug on AMD64 fixed double rig_cleanup() fixed using of non-serial ports in hamlib (f.e. rpc.rigd, type 1901) rover (/R) are not dupe when are in different big wwl fixed EDI properties dialog script for Asus EEE binary and optimized configuration updated tucnakrc (HF bands, windows) 20100101; 2.31 fixed crash if mode is changed without FFT window. TNX to DF4OR crossmode test in QSO check 20091130: 2.30 fixed device locking under cygwin, tnx to G1OGY 20091103: 2.29 fixed corrupted contest date display in Open contest from net fixed tucnakdw; JN89 is in OM fixed cwdaemon and sdev double freeing recording level has filtered DC CW window holds PTT all time it is opened removed debugging show of 1's under volume indicator fixed (null) display in empty qrv list speeded up sdl key repeat removed delayed screen redraw fixed KST new call upcase DX network command sends only valid spots, no KST or other garbage fixed rig qrg display (mode switch worked) fixed ebw db import error message 20090921: 2.28 added font scale, height 16 to 32 pixels removed double font support updated display format of sked sked popup window updated German translation, tnx to DK1HJ directories are created with rights 0777 (& umask) frequency spectrum display (depends on libfftw3) 20090809: 2.27 changed GHz bands 120->122, 144->134. You need to change it in your tucnakrc! created local svn repository added 4O-YU and HV boundaries to map qsocheck checks unknown DXCC prefix cor is calculated in thread updated tucnakdw, synced with lx 1.36 automatic spacing of windows titles to fit screen fixed timeout in sconn_ftdi_read fixed bug in free_ssbd (cwda keeps not null but freed) optimized screen redraw on slow computers ptt lead-in delay for winkey qrv list 20090423: 2.26 castellano translation, tnx to LU9JMG! changed cw weight sense from obscure cwdaemon type to logical winkey type (30..70) fixed operator handling via network, causes bad operator name in Network monitor dxc shows only unmaked qsos configurable band switching rig freq can be entered by .300 (means 300 kHz, MHz are unchanged) new macro $e ('code' string when contest code was entered during file recording) rewritten parts of sdev stuff (rotator) rewritten rig control to threads fixed long delay at program exit (caused by rotator ttys) fixed DX cluster spot handling when no zulu time is present on the end. Tnx to DK2ZO support for winkey+davac4 at same time (experimental) fixed negative number read from tucnakrc*. Affected are ssbd_plev and ssbd_rlev fixed davac4 opening when an error occur ssbd use threads instead of processes scope subwin fixed rig_ssbcw_shift, was constant value 660 Hz fixed buggy usb_info(), tnx to OK1CED fixed missing ftdi_usb_get_strings() in libftdi 0.7, tnx to OK1CED fixed bug in menu_rotar_delete 20090222: 2.25 fixed compile bug without SDL (rotar.c sw_map_update_rotar) fixed minor bug in sndfile configuration 20090212: 2.24 removed unused experimental sdldyn code updated tucnakdw, tnx to OM4AA! data/sortdw.pl show rotar azimuth on map support for ftdi and remote rotator fixed '59001' input. Bad regexp. Tnx to G1OGY! fixed rotator serial port setup, tnx to hamlib RSGB variants M1-M4 in tucakwiz, tnx to G1OGY! 20081221: 2.23 changed RSGB contest scoring (dxcmult=1, total_method=2) fixed EDI export (EXC count) first support of rotator options dialog (not done!) first support for global QSO NR fixed bug in clear_tmpqsos, can cause segfault fixed compilation problem without hamlib, tnx to DL1JBE added new easier way to create dialogs contest name, qsos, qsop, total pts in statistics window total method 3 for cq ww dx contest, counts al bands together fixed defrstr at dialog load cq ww dx contest scoring show band name in meters for hf bands tucnakwiz fixes 20081213: 2.22 reworked tucnakwiz format to have same items as data files removed gen-conly, automatized intl creation rsts entered as 59, or 599, rstr entered as 59' or 599' qsonrr entered as 001; rewritten parts of exc qso inputline restricted only to valid chars fixed old (fix QRG first blind support of winkey vhf database is also loaded from ~/tucnak/vhf.dbf time is running when dialogs are opened tab closes cw window fixed cw window cursor delete old characters in cw window fixed break of played characters in cw window 20081013: 2.16 hotfix for segfault after network problem 20081002: 2.15 slash can be mapped to other character and vice versa double size of font fixed "bug that cannot happen" - crash when TCP connection is closed and more lines is in input buffer (rdbuf). Happens mostly on slow computers and/or under heavy load. first support for dynamic load of libsdl fixed frequency display > 2^31Hz removed forgotten debug sleep(10) after sigpipe 20080904: 2.14 probably fixed alsa bug (EINTR instead EPIPE) limited alsa recovery to 5 times band limitations in wizzard fill rst-r exc database reworked optional exchange types limited display of OE to 4 chars. stored size is unlimited AVG statistics moved right to Total-Points found bug in rc loading - can cause crash with new items in tucnakrc simplyfied rotator code using process removed thread-unsafe getpwuid rig control using hamlib skeds are sepparated by band. Removed sked file, data is in txt files ntp synchronization check and warnings ggsend band equipment for active contest over net kill subwin shells with SIGKILL under cygwin remember spypeers in spy file remember file:line of last mutex locks (for deadlock debug) fixed DXC crash when bandchars are not consequent spy peers are showed on all bands spy can spy all read-write bands sent RST doesn't change to default after mode change when it was entered by operator trace_xxx's write only to debug log and log files, not to screen text QRV on is showed red QRV bands in call info shift+arrows and zoom keys do fine zoom/shift alt+k in shell inputlines fill /CQ CALL command for ON4KST chat talk works across different contests or without contest 20080713: 2.13 fixed crash in alt+i without contest runtime glibc version in settings and tucnak -i removed spaces from variables bellow CFLAGS, LDFLAGS and LIBS in settings ld -z now when supported fixed crash in cwdaemon_send_defaults(), tnx to OK1HRA fixed overwriting of edi when ok_section_* is no set fixed compiler warning in free_keymaps() fixed !rotars crash after SIGTERM added share/tac2tuc.pl by G1OGY fixed loading of ~/tucnak/tucnakdw and ~/tucnak/cty.dat, tnx to G1OGY fixed optimalisation show in settings fill sked QRG when target band is changed ppdev present in settings data sizes and endianity in settings qrv on bands are taken from all bands, not only from higher bands qrv on bands doesn't show already worked stations tucnak -i shows program version contest close breaks recording handled select() EINTR in cwdaemon thread cygwin version in settings updated E7 and CN in tucnakdw (G1OGY) in qsocheck/call info all qsos has "call is without /p" flag snapshot has bandchar in filename html image uses bandchar in image links html exports shows own locator libgpmg1 is showed in settings as optional 20080703: 2.12 removed uname.exe from NSI alsa recording continue after buffer overrun removed KST "watchdog" 64px startup icon removed defrc.c replaced by data/tucnakrc configure shows library versions fixed some gcc-4.3 warnings fixed CT3, added CN and E7 in tucnakdw, tnx to G1OGY updated share/applications/tucnak2.desktop 20080620: 2.11 actual cty.dat externa cwdaemon support again qso check compares exact callsigns (/p) and locators on other bands statistics window shows odx per hours fixed screenshot in 8 and 16 bpp, tnx to OK2FUG PA tune function Alt+T in CW mode fixed bandchars beginning with "W" (lost item in arrays) fixed possibly ambiguous parentheses in ADDQSO 20080605: 2.10 fixed "59," crash, tnx G1OGY for inspiration removed gmtime(), replaced with gmtime_r() qsocheck.txt is ignoring older C_W items than 2 years for /P and similar checks time of qso in qsocheck.txt fixed missing newline in qsocheck.txt QSO mode in TOP10 columns titles for hours part in stats window fixed macro $V - it was same as $C increased length of screen resolution textboxes in misc options fixed reversed polarity of ssbway signal in davac4 20080502: 2.09 hotplug scripts for davac4 usb device support for davac4 by using libftdi wildcard '?' same as '.' support for parallel port under cygwin using inpout32.dll 20080227: 2.08 install script for NSIS support for cygwin reworked SSBD dialog, changed to Audio menu.c section in header.h split to menu1..menu5 scandir taked from glibc because of ambiguous prototype shift+backspace is same as backspace updated debian/*, tnx PG4I QSO check sets suspicous callsign (?/! as next to locator) QSO check in menu call information dialog Alt+I added highlight regexps for DX cluster fixed accidental band activating with Alt+letter map zoom by keys +/- has center in map center not mouse cursor new hotkey Ctrl+P for playing last recorded sample fixed recording when CW macro is undefined or SSB wav file is not found fixed quicksearch drawing without contest disabled first rotator in defrc fixed gses inputline position when resized in contest added penguin icon 64x64 updated cty.dat to 1710 new statistics qso points and qso count by hours wwl and dxc statistics show qso points and qso count new statistics qso/hour, points/hour, points/50 qso text wwl 'maps' showed only when scoring is 4 added 'watchdog' for PTT keying improved suspicious callsign indication removed bandchar from screenshot filenames updated make deb highlighting in KST shell uses dark yellow when call is already worked initialized 4th argument of snd_pcm_hw_params_set_buffer_time_near Special SEGV handling with minimal memory access Fixed recording of prepared contest 20071102: 2.07 fixed sw->minq after band change screenshot on key F1, Alt+F1 updated portuguese translation watchdog for shell inputlines 20071003: 2.06 fixed qsonrs replication in spy fixed insane chars in DXC window fixed dialog Contest options 1 20070830: 2.05 fixed boundary drawing in map new cty.dat fixed ttyS lockfile problem verbose DSP errors colorized call highlighting 20070808: 2.04 dialog misc options contest defaults stored in uppercase operator is sent over network when no contest is active added operator to tucnakrc(.local) handled unicode keyboard events, respect keyboard layout 20070706: 2.03 improved library detection debian package tips in configure basic alsa support fixed qsos on map logged when map inactive playing last recorded sample disabling compile optimalisation as configure option fixed name for second tmpqso call added km unit for tmpqso qrb added degrees sign in graphics mode fixed negative rotar address close fds 3-1023 before executing shell Fill operators moved to menu Contest Fill operators saves all bands 20070531: 2.02 removed debug line in qso replication - bad arguments leak debug only on configure demand - probably fails on AMD64 20070517: 2.01 released especially for Micinka & Lizinka probably fixed alt+letter with capslock new option Max fragment count 20070422: 2.00 independency on external files - only one binary is sufficient for running contest better handling of arguments on non-32bit architectures integrated functionality of cwdaemon, ssbd and ssbm subwins are functional without contest many many work forked branch 2 20061002: 1.30 fixed open mode for txt and edi files (CRCRLF under windoze) fixed makecol error without HAVE_SDL fixed minor bugs in Mark as error and Save as dupe added takeoff saving into tucnakrc fixed inputline position after new spy adding 20060829: 1.29 takeoff profile to map updated cty.dat added operator call peer selection dialog (C_W and cfg over net) added operator call to network info dialog rewritten qso spy removed cwdaemon_g.c added copyright information to source files portuguese translation, tnx to CT1DRB found allowC1Printable feature in xterm, disabling was useless don't show characters 127-159 (control chars for xterm) higlighting of raw call (without /P etc) QRV info showed in quicksearch improved QRV info about station improved regexp for WWC highlight info about same contest in network info dialog 20060623: 1.28 fixed buggy ptrarray alocation, tnx to OK1HRA removed cwdb hash hack added title page export 20060612: 1.27 fixed star drawing in map fixed border drawing in map fixed font to be iso8859-2 new spy mode shows full inputline fixed band loading from multiple rc files delay to rotar communication to prevent high cpu load fixed "(null)" write to tucnakrc default band in contest fixed bug in rel_write_almost_all - if (conn_prod_state) fixed signed/unsigned chars for gcc-4.0 Unfinished QSO add informations from tmpqso Fixed QRV station on new contest (!ctest->tdate) Resets cwdaemon and ssbd after SIGSEGV 20060503: 1.26 Fixed key P in map Key T in map Fixed bug in main loop - timers and jobs were affected Show seconds Help for map hotkeys Call highlighting for WWC and WWC via KST QRV stations in polar map Beamwidth of antenna in polar map Fixes satisfies -Wpointer-arith and -Wstrict-prototypes 20060427: 1.25 Removing of expired DXC spots every 5 minutes Rotator dialog Fixed timers Fixed ESC in polar map Extended callsign regexps Fill operators back in menu Mark qso as not confirmed when qso with same call arrives from net Fixed desc file after contest options Fixed shell chars 0x84 and 0x85 WM icon Fixed map title Support for GPM 20060205: 1.24 Show RUN's TX state and call on S&P and vice versa Rotator fixes TOP 10 and statistics export by OM4AA 20050828: 1.23 RUN can TX (no CQ) when passed band control (to say QRL) time of stored qso cannot be older than last qso on band basic mouse support RUN+S&P together on one band fixed edi import fixed libpng detection sked QRG definition using Alt+F variable count of status lines fixed sked time and added configuration option for sked tikme shift change in statistics causes dirty band for saving removed saving .txt files after amount of qsos. Files are saved immediatelly. qso replication fixes 20050630: 1.22 removed DARC contest from tucnakwiz because of bad calculation method added ser_id to txt file fixed next bug in QSO replication 20050626: 1.21 fixed CRITICAL bug in QSO replication search for locator on other bands QRB rounding bug, thanks to OM4AA EDI import fixed, reported by OM4AA Gentoo ebuild files by Florian Evers Subwin configuration (not in menu yet) Fixed ssb_repeat 20050523: 1.20 Improved QRV message Bug in updating stats over net. Thanks to Stefan DL1ELY Exotic callsign entry with trailing slash Updates mode of QSO if report(s) edited Quicksearch shown regardless active subwin (tab) Recalculation of tmpqsos when locator is changed Bug in intl files (time skew net.c). THX2OM4AA II.subregional 20050313: 1.19 fixes for cygwin possibility to enter call like IW3RUA/IV3 fixed optional exchange display 20050311: 1.18 unwanted release of 1.18 :-) optional exchange by Marco IW3IKN fixed QRV bands Warning if received unknown callsign Changed saving to ~/tucnak/$T/log ADIF import, fixes in export 20050304: 1.17 I.subregional tomorrow... libpng for snapshots Fixes for AMD64 Fixes for -ansi Unused code clean Band character in snapshot filename Propagation modes in ADIF export Experimental rotator control, show direction in map Show date of latest C_W item in Memory info Remark and operator in tmpqsos Corrected QSO plotting in map DARC VHF/UHF/SHF contest. Thanks to DF1MA fixed some bugs in CW & SSB CQs 200411xx: 1.16 MMC after contest probably fixed very old bug with empty default RS&RST at IARU UHF contest fixed bug in ssb cq macro expanding 20040819: 1.15 Slovak translation & UTF-8, thanks to Michal Karas, OM4AA 20040818: 1.14 DL8EBW database import 20040805: 1.13 fixed bug in quicksearch of C_W show callsign in ERROR qso unfinished qso adds ERROR lines in Shell subwin containing <*call*> are highlighted (convers PM) keying and CQ are available under graphics (ESC,TAB,Fx) tucnak reads global config only if no user config exists Alt+1 turns focus to inputline qso repliacation fixes, INCOMPATIBLE change III. subregional 20040703: indication of running CQ's in left of main inputline fixed bad myid recognition added dependencies for .deb fixed SIGWINCH & inputline bug DX spots spreads over network Added some debug stuff for QSOs and DXC Microwave contest, some crashes 20040602: 1.10 fixed SSB CQ IARU II.subregional contest 20040501: 1.09 Fixed bad resizing of subwins with inputline Band map 20040320: 1.08 Code cleanup, program can be compiled with -Wall -Wpedantic -ansi Added correct IARU QSO points rounding (THX to OZ2M) Fixed crash in contest options save (THX to OK1MZM) 20040314: 1.07 Show operator and remark in QSO window (if terminal width>80) Show QRB/QTF in quicksearch Highlight operator's call/suffix in windows Fixed disabled input in talk Added --disable-glib[12] to configure Support for glib 2.x Shift+Arrows moves map with smaller step highlighted worked WWLs in polar map added my locator to "report" output format 20040215: 1.06 upadated documentation fixed minor bugs added some statistics to HTML export fixed HTML export to be valid HTML 4.01 big WWL names in polar map graphics screen save (F1) added Recalc QRB,QTF item in menu Edit recalculate QRB,QTF after changing QTH during contest fixed minor bugs in graphics screen redrawing Ctrl+P shows the polar map fixed autosave of QSOs arriving from net gfx window can be closed by WM icon fixed ADIF export to be compatible with TACLOG HTML export 20031123: 1.05 fixed 8bit color depth fixed network serial bug, INCOMPATIBLE change! log subwin doesn't scroll up when we look inside added horizontal scroll [ and ] to qsos and log subwins 20031115: 1.04 fixed hw2qrbqtf added M as multipath report (59M) log and subwin movement by [ and ] speed up polar map drawing (but there are some problems) added macros $D and $T fixed segfault pressing F4 rewritten graphics to use SDL instead of Allegro 20031020: 1.03 Fixed some packaging problems 20031013: 1.02 Setup->Network & trace Edit->Fill operators Alt+H = inputline history rewritten and rearranged dialog Edit QSO accelerated convergention of master choose traffic recording try to find locator also for raw call and call/p extended call-wwl handling #REMARK adds remark to qso 'r' in QSOs subwin mean there is remark fixed bad repaint when DUPE call is entered enter of 'q' toggle QSL PROMISED flag ~/tucnak/tucnakrc.local done Czech translation all translatable strings moved to intl/english.lng some minor fixes for -Wall fixed bug in destroy_bitmap (GRRRR!!) add File->Open/Close graphics window 20030927: 1.01 ignored unknown options in tucnakrc load C_W from net load configuration from net implemented other methods (7-11) implemented statute miles method (where is used?) (nr 5) implemented RSGB WWL ring (it's really correct?) (nr 3) ADIF export graphics polar map tab aborts CQ's unresolved items such as OK1ZIAV, 1160, OK1ZIA/B... showed upon inputline fixed bugs in tucnakdw for DXCC "G" and JO81 first support for ssbd 20030824: 1.00 fork()=0; getpid()=1.00; 20030824: 0.32 completed documentation some minor changes added make deb 20030819: 0.31 fixed QRV now added menu Subwin send AC after Contest->Contest options fixed net problem when only lo exists .12 means 12 only minutes 4 numbers in input mean month and day of month 20030817: OK activity contest without UFB 20030816: 0.30 Added screen save/restore in xterm Fixed bad readonly handling Semicolon in some items converted to colon (for network protocol) Rewritten macros like STORE_STR INCOMPATIBLE change in network format Added variable TUCNAK_DEBUG Term specifications written to tucnakrc Fixed bug in refresh_cwdaemon Fixed CW keying problem Added docs to /usr/local/share/doc Swap ASL and AGL texts Disabled debug by default, use -d or --debug to turn on Fixes for -Wall Xterm title setting Alpe adria VHF contest 20030801: 0.29 Removed socket debugging (it seems to be stable) Load [/etc/|~/]tucnakwiz too Alt+U do not add ERRROR QSO Fixed many bugs bear on permissions Network info show ID instead of TCP port Menu->Network replaced with Menu->File->Network info Stats subwin doesn't seek to end Fixed bug loading unfinished QSOs Added fifo length checking Fixed multiple CQ with same number Fixed string+1 bug in qth() Log, talk and skeds are saved/loaded NNXX replace 4 last letters in wwl X,XX,XXX replace suffix/last letters in wwl Added error checktig to .edi and .txt saving Fixed lock leak when there is no bands to load Tmpqsos clearing added to swap Detecting time skew 20030722: 0.28 Asynchronous C_W search (allow keying on slow machine) Fixed bug in scandir's return value Dialog "EDI properties (PAdr1,2)" Dialog "Contest defaults" Done configuration saving Fixed empty default_rs(t) OK activity contest 20030719: 0.27 divide qrv bands in Setup->Band options added mode number to edi file (there was 0 before) optimized saving to disk and statistics calculation fixed error saving replicated QSOs call/suffix highlighting in shell subwin user can send Ctrl+char via ^V char (like the vim) in shell subwin fixed multiple band definition bug save/load contest remarks (combine to one line) quicksearch displays band where the station was made added average pts/qso fixed cursor position in inputlines TAB allows keying wherever in program turn off console screensaver (maybe APM) and VESA powersaving features 20030706: Field day without fatal bugs 20030620: 0.26 suspicious characters ?,! in tmpqsos mean the same as in qsos fixed "Mark as ERROR" distribution fixed select() bug 20030618: 0.25 First attempt to be stable release TACLOG import Save configuration Added subwin with some statistics 20030518: 0.24 Added wildcard '.' to match any char in quick search Save operator change to swap QSO loading from swap ("Q ") Fixed desc file NULL problem Fixed band settings when contest is active OK VHF activity contest without problem PA4TU accepts my patch for cwdaemon 0.5beta, thanx Joop! EDI and TXT using \r\n instead of \n Sked is displayed on this tucnak's instance too 20030506: 0.23 Fixed multiple saving when loading Swap loading Update ~/tucnak/*/desc if call or tname changed Added chars ! and ? to locator when is suspicious Fixed bug in st->first_date when an ERROR exists Add subwin: added SKED & UNFInished save unfinished QSOs to .txt unfinished QSOs separated to bands added remark to unfinished QSO quick search searchs in other bands only if they exist fixed bug in net->myid when there is no interface II. subregional ctest - I must downgrade to 0.20 ($#@!#) 20030427: 0.22 added quick seach in other bands fixed some memory leaks and multiple free() fixed buf when !cfg->cwda_hostname fixed bug in Contest->Open wizz: don't add same contest twice F3 opens contest if not open 20030424: 0.21 don't use SO_REUSEADDR under cygwin (so more tucnak's can't bind the same tcp port) fixed BIG memory leak in use of g_ptr_array_free (Grrrr!) 20030419: 0.20 fixed scandir prototype (really?) support for cwdaemon-0.2.2-zia 20030404: 0.19 contest options during contest added contest wizard unfinished QSOs swapped and confirmed item is written to swap fixed NULL contest name in net_send_ac() extended remark size in sked to 60 chars prepare contest (specify date of ctest) rewritten contest options dialog: removed WWL type added Exc, QSO used, QSOp multi added "wizard" for qsop and total calculation methods sked to (higher) band fixed D_W again added /E, /J 20030319: 0.18 fixed D_W bug when central wwls are used fixed cursor in QSOs subwin added C_W update from contest or one band read tucnakcw and tucnakdw from ~/tucnak F3 turns off "immediate search" fixed band change during "immediate search" show qrb and qtf in duplicate qso 20030317: 0.17 updated call-wwl crosscheck talk: call@band: text time in log and shell subwins inputline history 20030303: 0.16 show READ-ONLY in inputline when band is r-o show operator makes ODX fixed replication of '(null)' fixed bad net->myid /p and similar switches with and without /p highlighting of subwin when new data arrives 20030301: 0.15 first big beta test (IARU VHF OK1ORU) some small contests (OK VHF activity) tucnak2-2.48/data/0000777000175000017500000000000011737317225010744 500000000000000tucnak2-2.48/data/sortdw.pl0000755000175000017500000000124411567373661012552 00000000000000#!/usr/bin/perl -w open(F, "tucnakdw") or die; open(G, ">tucnakdw.tmp") or die; while ($s=){ $s=~s/[\r\n]+//; if ($s=~/^#/) { print G "$s\n"; next; } if ($s=~/^\s*$/) { print G "$s\n"; next; } print G "$s\n"; $s=; $s=~s/[\r\n]+//; die "empty second line" if (!defined($s)); @a=split(/\s+/, $s); %a=(); foreach $a (@a) {$a{$a}=1;} @a=sort(keys(%a)); $s=join(" ", @a); print G "$s\n"; $s=; #can be empty string if (defined($s)){ $s=~s/[\r\n]+//; print G "$s\n"; } } close(F); close(G); rename("tucnakdw.tmp", "tucnakdw"); tucnak2-2.48/data/play.png0000644000175000017500000000542011567373661012343 00000000000000PNG  IHDR00WbKGD pHYs )ItIME5! IDAThY{pq\r\# $ 4"TXմ vڢS@tFcT6hC:QE )Zy IH{q{#w:ٹn~w+rE47777^|r-[ӄ<r-O=}S|T!gڛwhj|vԥ_ys56{nG B04ixgӺu aVjB`[bۯ7~UBd=&(J8ߏ~΍]e hjo.Пȝ]m{.+7W+%_ޱN^`ś/]oBL&؊,xw /gA]m$ZpUyt -noX=w](G7ɮ7`XQw-ۏf٧8g^ k5 H޼"m{vAU4: ɿԃښZD̅OhYK"VT; x48tIvsź =6 ү=(Yǻw`ڜɈO#…qZT[i(XN[U;D8x(444`ժUXr%Ng2Q(*G9 !"sIW[gw>&޵OU4cm)_w\חZDCE8---شi! oߎ$>䃆~/c2ܤ5,zN''<7B yK@U] "3DUEo^B0glذabZ< (4 M!<6 'Yܤ@ _e!{Aq'eZ3sJJq+ELV٧ `Fi{_}"h6HȞaXgb\]Y4lr:V V?ӚW5|m5VTby])fJj$YŹ7UUǡp-="`s" sjYVx|%XTĢ '_] INe (* }Xt)dY,ː$ ,OX @MӠi0* TƊ2G9t!sT] hbPŢx#TU=u FNyqЊ()d0*`łp8@ dSFu<q&fD AO9@9ytwg 1D\rT lqiRBA03 7% cax.EcƢuArIIŊLvWnGQy(?&q\ڠq0ՠ?{M7ٹu 9:W<> Ӭ˲ѰsX0Ӟc߿Бyޟ&Y&ui]~Ip;O@9gpJa>+Aֳ?$ݖ?ŏ&vuο8\+V/ʹ<3V 5y~Z,1ЃGCeT஗g,tɟ\+VEjg'5Pe3؞m „{?[p_6D&J"XrmmmlH^+rE?WIENDB`tucnak2-2.48/data/cor2inc.pl0000755000175000017500000000277311567373661012577 00000000000000#!/usr/bin/perl -w use Fcntl 'SEEK_SET'; @INFILES=("tucnakcor"); $OUTFILE="../src/cordata.inc"; $OUTH="../src/cordata.h"; $PREFIX="cor"; open GD, ">$OUTFILE" or die "Can't open file $OUTFILE"; print GD "/* Automatically generated by cor2inc.pl */\n\n"; $hh="/* Automatically generated by corinc.pl */\n\n"; for $filename (@INFILES){ open (FD, $filename) or die; sysseek(FD, 0, 2); $len=sysseek(FD, 0, 1); sysseek(FD, 0, 0); sysread(FD, $icon, $len); close(FD); $ident=$filename; $ident=~s/\..*//; $items=$len/5; print GD "const struct cpoint $PREFIX"."_$ident"."[COR_ITEMS] = {\n "; $hh.=sprintf "#define COR_ITEMS %d\n\n", $items; $hh.=sprintf "extern const struct cpoint $PREFIX"."_$ident"."[COR_ITEMS];\n"; $line=""; for ($i=0; $i<$len; $i+=5){ $w=unpack ("C", substr($icon, $i+0, 1))+256*unpack ("C", substr($icon, $i+1, 1)); $h=unpack ("C", substr($icon, $i+2, 1))+256*unpack ("C", substr($icon, $i+3, 1)); $t=unpack ("C", substr($icon, $i+4, 1)); $line.=sprintf "{%u,%u,%d}", $w, $h, $t; if ($i<$len-5) { $line.=","; if (length($line)>70) { print GD $line."\n "; $line=""; } } } print GD $line; print GD "\n};\n\n"; } close GD; #print $hh; $oldh=`cat $OUTH`; if (!$oldh or $hh ne $oldh){ print "new header\n"; open FD, ">$OUTH" or die; print FD $hh; close FD; }else{ print "same header\n"; } tucnak2-2.48/data/icon2inc.pl0000755000175000017500000000253411567373661012737 00000000000000#!/usr/bin/perl -w use Fcntl 'SEEK_SET'; @INFILES=("norec.png", "play.png", "record.png", "sun.png", "tucnak.png", "tucnak23.png", "tucnak64.png", "tucnakv.png", "tucnakv64.png"); $OUTFILE="../src/icons.inc"; $OUTH="../src/icons.h"; $PREFIX="icon"; open GD, ">$OUTFILE" or die "Can't open file $OUTFILE"; print GD "/* Automatically generated by png2inc.pl */\n\n"; $h="/* Automatically generated by png2inc.pl */\n\n"; for $filename (@INFILES){ open (FD, $filename) or die; sysseek(FD, 0, 2); $len=sysseek(FD, 0, 1); sysseek(FD, 0, 0); sysread(FD, $icon, $len); close(FD); $ident=$filename; $ident=~s/\..*//; print GD "const unsigned char $PREFIX"."_$ident"."[$len] = {\n "; $h.=sprintf "extern const unsigned char $PREFIX"."_$ident"."[$len];\n"; for ($i=0; $i<$len; $i++){ # if ($i % 16==0){ # printf GD "\n /* 0x%02x %d */\n ", $i/16, $i/16; # } printf GD "0x%02x", unpack ("C", substr($icon, $i, 1)); if ($i!=$len-1) { print GD ", "; if ($i % 8==7) { print GD "\n "; } } } print GD "\n};\n\n"; } close GD; #print $h; $oldh=`cat $OUTH`; if (!$oldh or $h ne $oldh){ print "new header\n"; open FD, ">$OUTH" or die; print FD $h; close FD; }else{ print "same header\n"; } tucnak2-2.48/data/tucnakv64.png0000644000175000017500000001166211567373661013230 00000000000000PNG  IHDR@@iqbKGDC pHYs  tIME  |?IDATxyl\uwyo gpER(JDKdYaRɶKuҤ8:M"E ZimRINرc%v/X(J"UCCry˽ I2iKA.@bgXmif7\/?o]lJ?{o;rcfۻN[RS:zJ,[o)'O~Iymur&HҀ:u :p,\|w@_v}ߍͼgL&N:|zfBQ|ݟ}I2tʖ_ׯ|w,9hv7O@MN@9<ۆbȧR>k{dӘ.{g%{wA)|"#[eW]48ܳpvxjh[W*B>߷H`B$  "zКZXe?y^r(ƠZZkjFf w~+#ۋ?2w[: ~!@>>ё۟(pr/g:;A$hB[>kx}/ՏoM/G'nGa /}>XҽG-Z V[ L%#핏=9MQsb1'gSh" O6C?=4(ց%muuș}bO+pcة5ce 5k\`v( X0Q[l2놅Di=Ə.a3ʘ4%"W_ ƭ(>09`2m dTGkGzk hݽy̆aҲ`BdK.2%>avv#ֳ1(M<].H-'nalX /?U leǃR/9)@}K@"0]+7\u&@H 5B'^~|vf 3 0@a?wt/:}I@u[7m}晧7_ )^m6$s*8I; FK%\-(h,fƵ+Z 0i<hĎmP]BQ<'2\pI(>N[5{u~{ 13goN-a6Uq 2$@{\8<,|B/[ely 81#Xum+A"08 !Bǩ? WuH4wA.+oJ2-QJ0=Ĕ6!}~(@.9ZfPolKS(˾ N@N:(#kl 3jI+J.8/ELkÔX)cm+FJ$J(:1X ŪTBU,֖Q8/R3U!noEfFN 8?\ 1Z~$1$1J"<` }k5jV!+BFD@5 0`&B aBJ 0  Lp/,SJ!k:::NpT7iRsyc>p_H+wa16l؀d2 &Lyi XB8FuuubӦP7)Ba8c~Eb!kyc\$6^qVJ#j B <(lcE 3zjju]`0帞D`fq"=b,`;chۼi#2!޵Bbp$p8l24ryUK^kƛ^ V&A.WqB.\ Ӵ.JdfwI)m۶ =0wBjbBs465!TUc|VBd q\tӍ$X,a`4 DrleY @:gD?Eou_Q8y @k 0ށD"Q-8EHE&D"% 6 +7w\0Bޏ1hM ADò RC(XuI _?(jiiphhhZX)O^} BTWĢƦ |xWd"B8ڲ,~7֝;!fb0:6<] B"AJ !G#cKq'5c¢E6|ݫ>^4o.{ظ@R%aR8sf??o?\vFz:}^J@ay t. 3ήB6MS,nU`v"^O~ ˖u¶mdYR)H)+{9k甞r>,R l|N  \;R )P8u, v4 QS#9=d<y+V<6<;oψX%6Yٳgg^466gΤw>J9\!d*C᜿iss!`+7BZcVE[ww7VFjbI[, @J` 104ipp\0R`( AGGHkB p˖.ŢFD"(R8]*ĉ*Hy^a^D@]SSSw(R)dYlہeYH9JO PNټa4 y?އcJgfj6X>ˇI E` DiZcw1 `~0jޱcGcǎ8Z"9e~Ə,<T.@y L oX-Ģ1(XԴ۷oǺX"CSS#4il6q9¯ >Vj\)oL)5BV Cr{G! kǡ\J-F߇Hdfqh"C!\rKH&|y'>;rJp)B  #ˁ OU8e3p=&2QzRQя=Zddfguughmdsx/.XF , s!H^Z =܃d4$c<@JrY"[,K`zs%>WٶSIÈB,)2}Uȫ11 3xmK@k vzB"*0V&\B|Atv:a(m0U\- )qr6KI{2(K8Di89(? TMA:Хw|"#@pP("eY82,BÇ!1yGR{0BLc!CM\Ji!*+"\GA@, ^2|Z5KiqVHG:G3M¡Cy>u[{]Ѯݾ*|M-E) P\(1rk+eW͵ŕB7܋}yǰ7f֪uJ97@FcUN"$kR p|UFDZEΠ,^۳?~e9rY?v)]ND?Ol4"!߄4|-sJkx0T1k+oybTW' L'wϰAsY2H#yJ~\z."4=V/v5w:*n')VRsDzǎY/f2ZV_Wh4`(҄\tz v6 96NNd0jug<{۱]MDx/Qtó)AS4ZONCÅg:ʫ0rm\ytl$! BL~ǰa}-uq FQCoxPTsD4yxd^|rjٽ)K~]?<=]r:c㬆3(o֦Dt΍5݋ECV0N)v ɦS0[PΝgmdTi$byG2s'u`+ %7w]~CM㒫"MM1068ǁaPʆkñcG6:ɴn3j{oѶRd:3̛0uz2 w ρ)2pcnDulYKL摛:]<Lz:t=;H%`2r M)A\E|@Ua,[N_pĂ&LerIFg^:[ә V}?l/7O~39d(E ê2HYǝ<>],^fIENDB`tucnak2-2.48/data/tucnak64.png0000644000175000017500000001233711567373661013042 00000000000000PNG  IHDR@@iqgAMA7IDATx՛yt]ŝ?U޷Jzzkx & 66;6=t&'dItN7LzlIICt& L6x*,'-wJ'ؖ w=z_[,>dF۶#/ b1Ph}1\o 'R5xOW׏`$ `u_2Fնt\z{-*J'Fjt:'2[c74L&8o7Ʃ.ETT*`2fZFZZ?qLH$8bqF551mZkNM\%;@,|ԒHզ:!',)%Bjjj6u*{o^ޡ/GB t@~%<;h{;V΋bUUߜ2ꅗM&33vlNw2ֿn~͉'?u4eIg]ma{h[j5η7Q7u樂X"ˡ Hnʧmx7D/A}ŭFTv PN~ vw2m}yPak{ U -KY C6KmGTv1P`E~zu9N=p{XW5MG+o3w+SDuew;#r\<߇P?R cצkTv<[ţxn[ȫtۭG/$DUfテx7h84=ь[;7݅w e&lOF B 2yd\>#+">nGZbmRxt@%4Z:@R)MiTT\*Pa#ʿ'r 1\fa#˔(W*hmcmԤE'AV ,ˊ(5=@h>r,Y8|' T6HHA3dH$ڿ2=gMR啊˲K2e[ňbgtJ$D""50pL@X|XA e!2Aѭ,a1Vx<i~Ya]&-r]?Za@)RZ `4j8,Wפӟ8_ JdԘX|F0J?sjpLZH!"WV5"-Cř={6_>eaWBM8[__ ,t:, ˲BJooG#hR.?t:h#[oF~}QʗI$ c@4҆s5}Q*tal I_{9s&UUaK,A)͓O>Ŝs6m N ڼeZI<#gOr:x,F>P4iYtǨJ$D"1kDfKy^zzt0~{to^e~֧i&۴˫_eW.eޥsI&m!B)ERa,Zt9H$v' T*5QkZZZ7Ass3|u蠫c {&1(u]^jSp8CRf5T\osfH{BP*ZA[ba`E"̄X,_~0a"B/^mg`Bm6p6hc^]W׭cŴttv G ~*W ̙ >YFg [_1y\G,rz0TP\.Lt]mU_` ?`۶meONuu56g-X Dѭ-MB2$aP /lm!-q&IƳ5,M6WC{{;[lf?~Bɓ'ټy3W\q@ -=y[)N I`[JC,\.̳iMŤ ?RZ[1R58yu^uJJ)H*3>4X:P  )Q~'PUObW lC.E)ũSظu>LMM-JܴFfNuB0mdXzŨMS(eY’5(ˬZ+@IiUe۶2+,bӦM3e5d2YTp=%'F6I؎Äqc"L`YA6 3}l%;V*Zu+ HG=@%ZK$D} tMoNk(w*1xG[[g͚5֦qq+o^ DZHCC'WTL383yS)U S@/XݎF&8۶9x`?>͌(GOQEXI̫Ī9vjENèii!'~mKcq^nZqG@)5tQ:F)Jv1/6UUVkԱH%8E!30{~:(VD#$-cz:r|g[ir\%yJkM F!RJ%cT%֭[Tav;/>8uh庯j,ve16"V:0D\b|  !(zCًH5Swg* 'N6FHa A0$=5,Fk`'P9_Ε*Ji@H|UJyxQ@ƣG6~Ոo~bMVx,TLJBaOAb j 9v(V*[} 㭓jU*J=ҫma 6QDi2c Lǚ4o%NR`mI6g^H)9|/e򯀣&|0rUc*(1:h L$% 6==TK*KǶ?{ Eo矣)%^k^:9C=[lE@UL? /!'a|, 5DHæB#>\.K&g}lgwO{|zc2 }}~׺o~oW^;ҷR68N͎l۞"5 A5Ki燻@U rVjdTcQ줰7qMG;v A+]%9ZY5GJU  R?a~^C Hjk_V5(+{ }Gt?oW7<^1`#Y ۟6am\fz4k.meMێ(oC ANfR@}sWxȁ.wdHBduދwl8XUGQ+Gd$}Զ1t}U=k'@ܷ2'|h2܎#SWa g~vAtOjwu`Ec*Ҋ$  fS7'6vkl=6k)]JǺSsOa!5]=ngo 8~ʿ/yUƸk3͉D>4TfI#ҙx'ʆ7c-BMs|*2`=W/.RU;{6_~P MvB{ Xş;IENDB`tucnak2-2.48/data/tucnakv.png0000644000175000017500000000335411567373661013055 00000000000000PNG  IHDR szzbKGDC pHYs  tIME .1yIDATx[lTs]zo^vP0(ޠȀ#bh4-BUE&(Mj6*-iVʳb?B84+a[3՜XےM"atV \\_7>+ oXWܼ-J! k890W#b3Sўl;I˲|ŔEFn bR@q}ta()b!>_ޗK ʐ-mmE^1IE`Б B>{fg; b$J.: <~@U r@Cv!l]<?ǎ`cMNNhbE͢, D]NW<#zSa-.n[/X= kkkn7r2)377WtrUUUݻc3Z:#ǎb XrY I6S}~@Z6mpB@G@4:UQaY&hڴ%'mٌY yӦ~#먯bQ 888qW?CaA>(Lӄe иA䝊|!OTTT|&fg 2(c`R8HR8z8jkpE(e 0 nVC߷Yt@2e8+9d*BOD"-Y&lm A p:())]A>Pb;M1OQԦBVZ*h2X7 GZNٵ _Yv 0 e{{;sW-9OrgU-bJ[kD"JxV`Deet -2Mã1 CT*%y,;(}0 =MnϠ׃3W6$QB3 /nw=dr`ktRPAV? 1@ oagzZ;d ImD<%as浳S6 ^V"),*8022ޮonɿh!KáI_jNGԥx+=={3JvɖC+䑺*"lf6 fEE1-Ed%jIӏm͂vH+nXQBڿ 1VT>s?HƦ O[j]ћ+<۲楀Mteh86SƝJ7fIENDB`tucnak2-2.48/data/tucnakdw0000644000175000017500000001605511567373661012441 00000000000000# 1th row - The official prefix of the DXCC # 2nd row - The list of WWL in the DXCC (separated by a gap). # The first WWL is the most effective one or midlands # or Capital City of DXCC. # 3rd row - The most effective WWL from JN69UO # There is a free row between DXCC's # # The list of DXCC in 'tucnakdw.dat': # 1A 3A 4J 4L 4O 4U1I 4U1V 5B 9A 9H C3 CT3 CT CU DU DL E7 EA6 # EA8 EA9 EA EI ER ES EU F GD GI GJ GM GU GW G HB0 HB # HG HV IS IT9 I JW JX LA LX LY LZ OE OH0 OH OJ0 OK OM ON # OY OZ PA S5 SM SP SV5 SV9 SV TA T7 TF TK UA2 UR UA # YL YO YU Z3 ZA ZB 1A JM75 JM76 3A JN33 JN33RR 4J LM29 LM38 LM39 LM48 LM49 LN20 LN21 LN30 LN31 LN40 LN41 LN50 4L LN01 LN02 LN03 LN11 LN12 LN13 LN21 LN22 LN31 LN32 4O JN91 JN92 JN93 KN02 KN03 4U1I JN36 4U1V JN88 4X KM70 KM71 KM72 KM73 KL79 5B KM64 KM65 KM74 KM75 9A JN64 JN65 JN72 JN73 JN74 JN75 JN76 JN82 JN83 JN84 JN85 JN86 JN92 JN94 JN95 JN85MM 9H JM75 JM76 C3 JN02 CN IL37 IL38 IL47 IL48 IL49 IL57 IL58 IL59 IL69 IL79 IM50 IM51 IM52 IM53 IM60 IM61 IM62 IM63 IM64 IM65 IM70 IM71 IM72 IM73 IM74 IM75 IM80 IM81 IM82 IM83 IM84 IM85 IM92 IM93 IM94 CT3 IM12 IM13 CT IM56 IM57 IM58 IM59 IM66 IM67 IM68 IM69 IN50 IN51 IN52 IN60 IN61 CU HM49 HM58 HM59 HM68 HM69 HM76 HM77 # nejen pk04 DU PK04 DL JN37 JN38 JN39 JN47 JN48 JN49 JN57 JN58 JN59 JN67 JN68 JN69 JO20 JO21 JO30 JO31 JO32 JO33 JO34 JO40 JO41 JO42 JO43 JO44 JO50 JO51 JO52 JO53 JO54 JO60 JO61 JO62 JO63 JO64 JO70 JO71 JO72 JO73 JO74 JO31LE JO43WK E7 JN74 JN75 JN82 JN83 JN84 JN85 JN92 JN93 JN94 JN95 JN94IR EA6 JM08 JM09 JM19 JM29 JN10 JN20 EA8 IL18 IL27 IL28 IL38 IL39 IL28GD EA9 IM75 IM85 EA IM66 IM67 IM68 IM69 IM75 IM76 IM77 IM78 IM79 IM86 IM87 IM88 IM89 IM96 IM97 IM98 IM99 IN51 IN52 IN53 IN60 IN61 IN62 IN63 IN70 IN71 IN72 IN73 IN80 IN81 IN82 IN83 IN90 IN91 IN92 IN93 JM08 JM09 JN00 JN01 JN02 JN11 JN12 EI IO41 IO42 IO43 IO44 IO51 IO52 IO53 IO54 IO55 IO61 IO62 IO63 IO64 IO65 ER KN36 KN37 KN38 KN45 KN46 KN47 KN48 KN56 ES KO07 KO08 KO17 KO18 KO19 KO27 KO28 KO29 KO37 KO38 KO39 KO49 EU KO11 KO12 KO13 KO21 KO22 KO23 KO24 KO31 KO32 KO33 KO34 KO35 KO36 KO41 KO42 KO43 KO44 KO45 KO46 KO51 KO52 KO53 KO54 KO55 KO63 F IN77 IN78 IN86 IN87 IN88 IN92 IN93 IN94 IN95 IN96 IN97 IN98 IN99 JN02 JN03 JN04 JN05 JN06 JN07 JN08 JN09 JN12 JN13 JN14 JN15 JN16 JN17 JN18 JN19 JN23 JN24 JN25 JN26 JN27 JN28 JN29 JN32 JN33 JN34 JN35 JN36 JN37 JN38 JN39 JN48 JO00 JO01 JO10 JO11 JO20 JN38BO GD IO73 IO74 GI IO54 IO63 IO64 IO65 IO74 GJ IN89 GM IO65 IO66 IO67 IO68 IO74 IO75 IO76 IO77 IO78 IO84 IO85 IO86 IO87 IO88 IO89 IO95 IO97 IO99 IP90 GU IN89 IN89RL GW IO71 IO72 IO73 IO81 IO82 IO83 G IN79 IO70 IO71 IO80 IO81 IO82 IO83 IO84 IO85 IO90 IO91 IO92 IO93 IO94 IO95 JO00 JO01 JO02 JO03 JO01QD HB0 JN47 JN47SD HB JN35 JN36 JN37 JN45 JN46 JN47 JN56 JN47HD HA JN85 JN86 JN87 JN95 JN96 JN97 JN98 KN06 KN07 KN08 KN17 KN18 JN97RV HV JN61 IS JM48 JM49 JN40 JN41 IT9 JM67 JM68 JM76 JM77 JM78 I JM77 JM78 JM79 JM87 JM88 JM89 JM99 JN33 JN34 JN35 JN43 JN44 JN45 JN46 JN51 JN52 JN53 JN54 JN55 JN56 JN57 JN60 JN61 JN62 JN63 JN64 JN65 JN66 JN67 JN70 JN71 JN72 JN80 JN81 JN90 JN54XA JW JQ58 JQ59 JQ67 JQ68 JQ69 JQ76 JQ77 JQ78 JQ79 JQ86 JQ87 JQ88 JQ89 JQ97 JQ98 JQ99 KQ07 KQ08 KQ09 KQ17 KQ18 KQ19 KQ27 KQ29 KQ38 KQ39 KQ48 KQ58 JR70 JR80 JR90 KR00 KR10 KR20 KR30 KR40 KR50 KR60 KR80 # ? JX IQ51 LA JO28 JO29 JO37 JO38 JO39 JO48 JO49 JO58 JO59 JO69 JP20 JP21 JP22 JP30 JP31 JP32 JP33 JP40 JP41 JP42 JP43 JP44 JP50 JP51 JP52 JP53 JP54 JP55 JP60 JP61 JP62 JP63 JP64 JP65 JP66 JP67 JP68 JP74 JP75 JP76 JP77 JP78 JP79 JP86 JP87 JP88 JP89 JP98 JP99 JQ90 KP08 KP09 KP18 KP19 KP28 KP29 KP39 KP48 KP49 KP59 KQ00 KQ10 KQ20 KQ21 KQ30 KQ31 KQ40 KQ50 LX JN29 JN39 JO20 JO30 JN29VX LY KO05 KO06 KO13 KO14 KO15 KO16 KO23 KO24 KO25 KO26 KO34 KO35 LZ KN11 KN12 KN13 KN14 KN21 KN22 KN23 KN31 KN32 KN33 KN34 KN43 OE JN46 JN47 JN56 JN57 JN66 JN67 JN68 JN76 JN77 JN78 JN86 JN87 JN88 JN88DC JN68PC # ? OH0 JP90 KP00 OH KO19 KO29 KP00 KP01 KP02 KP03 KP08 KP09 KP10 KP11 KP12 KP13 KP14 KP16 KP17 KP18 KP19 KP20 KP21 KP22 KP23 KP24 KP25 KP26 KP27 KP28 KP29 KP30 KP31 KP32 KP33 KP34 KP35 KP36 KP37 KP38 KP39 KP40 KP41 KP42 KP43 KP44 KP45 KP46 KP47 KP48 KP49 KP51 KP52 KP53 KP54 KP55 KQ30 # ? OJ0 JP90 OK JN68 JN69 JN78 JN79 JN88 JN89 JN98 JN99 JO60 JO70 JO71 JO80 JO90 JN89JM JO80IA OM JN87 JN88 JN89 JN97 JN98 JN99 KN08 KN09 KN18 KN19 JN98EP JN88RG ON JN29 JO10 JO11 JO20 JO21 JO30 JO20JU OY IP61 IP62 OZ JO44 JO45 JO46 JO47 JO54 JO55 JO56 JO57 JO64 JO65 JO66 JO74 JO75 PA JO11 JO20 JO21 JO22 JO23 JO30 JO31 JO32 JO33 JO21GV S5 JN65 JN66 JN75 JN76 JN86 JN76KO SM JO57 JO58 JO59 JO65 JO66 JO67 JO68 JO69 JO75 JO76 JO77 JO78 JO79 JO86 JO87 JO88 JO89 JO96 JO97 JO98 JO99 JP53 JP60 JP61 JP62 JP63 JP64 JP70 JP71 JP72 JP73 JP74 JP75 JP76 JP80 JP81 JP82 JP83 JP84 JP85 JP86 JP87 JP88 JP90 JP92 JP93 JP94 JP95 JP96 JP97 JP98 KP03 KP04 KP05 KP06 KP07 KP08 KP09 KP15 KP16 KP17 KP18 KP25 KP26 JO65TM SP JN89 JN99 JO70 JO71 JO72 JO73 JO74 JO80 JO81 JO82 JO83 JO84 JO90 JO91 JO92 JO93 JO94 KN09 KN19 KO00 KO01 KO02 KO03 KO04 KO10 KO11 KO12 KO13 KO14 KO20 JO90FB JO91QF SV5 KM35 KM36 KM45 KM46 SV9 KM15 KM24 KM25 KM34 KM35 SV JM99 KM06 KM07 KM08 KM09 KM16 KM17 KM18 KM19 KM26 KM27 KM28 KM29 KM36 KM37 KM38 KM39 KN00 KN01 KN10 KN11 KN20 KN21 KN30 KN31 TA KM27 KM28 KM29 KM35 KM36 KM37 KM38 KM39 KM46 KM47 KM48 KM49 KM56 KM57 KM58 KM59 KM64 KM65 KM66 KM67 KM68 KM69 KM74 KM75 KM76 KM77 KM78 KM79 KM85 KM86 KM87 KM88 KM89 KM96 KM97 KM98 KM99 KN20 KN30 KN31 KN32 KN40 KN41 KN50 KN51 KN60 KN61 KN62 KN70 KN71 KN72 KN80 KN81 KN90 KN91 LM06 LM07 LM08 LM09 LM17 LM18 LM19 LM26 LM27 LM28 LM29 LN00 LN01 LN10 LN11 LN20 KM69JX # ? T7 JN63 TF HP74 HP75 HP83 HP84 HP85 HP86 HP93 HP94 HP95 HP96 IP03 IP04 IP05 IP06 IP13 IP14 IP15 IP16 IP24 IP25 IP26 IP34 IP35 TK JN41 JN42 JN43 UA2 JO94 KO04 KO05 KO14 KO15 UR KN17 KN18 KN19 KN27 KN28 KN29 KN37 KN38 KN39 KN45 KN46 KN47 KN48 KN49 KN55 KN56 KN57 KN58 KN59 KN64 KN65 KN66 KN67 KN68 KN69 KN74 KN75 KN76 KN77 KN78 KN79 KN84 KN85 KN86 KN87 KN88 KN89 KN96 KN97 KN98 KN99 KO10 KO11 KO20 KO21 KO30 KO31 KO40 KO41 KO50 KO51 KO52 KO60 KO61 KO62 KO70 KO71 KO72 KO80 KO90 LN08 LN09 UA KN84 KN85 KN86 KN89 KN93 KN94 KN95 KN96 KN97 KN98 KN99 KO36 KO37 KO38 KO39 KO45 KO46 KO47 KO48 KO49 KO52 KO53 KO54 KO55 KO56 KO57 KO58 KO62 KO63 KO64 KO65 KO66 KO67 KO68 KO69 KO70 KO71 KO72 KO73 KO74 KO75 KO76 KO77 KO78 KO79 KO80 KO81 KO82 KO83 KO84 KO85 KO86 KO87 KO88 KO89 KO90 KO91 KO92 KO93 KO94 KO95 KO96 KO97 KO98 KO99 LN03 LN04 LN05 LN06 LN07 LN08 LN09 LN12 LN13 LN14 LN15 LN16 LN17 LN18 LN19 LN22 LN23 LN24 LN25 LN26 LN27 LN28 LN29 LN31 LN32 LN33 LN34 LN35 LN36 LN37 LN38 LN39 LN41 LN42 LN43 LN44 LN45 LN46 LN47 LN49 LO00 LO01 LO02 LO03 LO04 LO05 LO06 LO07 LO08 LO09 LO10 LO11 LO12 LO13 LO14 LO15 LO16 LO17 LO18 LO19 LO20 LO21 LO22 LO23 LO24 LO25 LO26 LO27 LO28 LO29 LO90 LO91 LO92 LO93 LO94 LO95 LO96 LO97 LO98 LO99 YL KO06 KO07 KO16 KO17 KO25 KO26 KO27 KO35 KO36 KO37 KO46 YO KN04 KN05 KN06 KN07 KN13 KN14 KN15 KN16 KN17 KN18 KN23 KN24 KN25 KN26 KN27 KN33 KN34 KN35 KN36 KN37 KN38 KN43 KN44 KN45 KN46 KN05PS YU JN93 JN94 JN95 JN96 KN02 KN03 KN04 KN05 KN06 KN12 KN13 KN14 KN04IQ Z3 KN00 KN01 KN02 KN11 KN12 ZA JM99 JN90 JN91 JN92 KM09 KN00 KN01 KN02 ZB IM76 ZC4: KM65 tucnak2-2.48/data/tucnakcor0000644000175000017500000467761311567373661012633 00000000000000  " & + . 1 6 ; D G J J N [ ^ ^ [ [ Y X Y [ Y V X ` b j o l l |    x  s r ! n ( i / h < ^ H Z R R \ O f J i A q A s C { C } E { F { H H C < @ < 7 6 7 7 - * ' # #                          " ' ) 9 = @ @ G M R Y Y [ ^ u z | t r k h \ Y T O L E B = 3 ' ' * * ' % ' "        "  #  %  ' , 1 1 4 < @ C F M P Z a a ^ ^ c d h i m m s u s  u  r  p  u  u x | ' | 9 C G O R Y e e h r u = ^ 5 R 0 F ) , ( )  +  )  ) ( & &  &  $  $ $ & # ! ! $ & ( . . + ( & & ) ( & $ # ! # $ # $ ( & $ $ $ $ & $ !   ! ! # + # ! # + 2 5 7 5 0 5 7 8 7 5 2 - - ) ( & ( ( & & # & # ! ! $ $ & ) ( + 2 2 3 2 } . y 0 y 2 v 5 v 2 t 8 l 7 j : i : l < j = l = j ? l ? q A o B o D o F t F q G q G o I o K o I o I q F t I t N s N q P q Q t P y F G } B D < 8 B K } N { Q v Q q L g I X I P Q ? V . X ( X  V  U # S ( P ) P ( N ) L & P $ P  G  I  G  F  G  G I  G  B  F D B D F G Q V  I K N G I N G ? < 7 7 8 7 3 7 2 3 2 2 3 7 8 = 5 0 2 0 . ) ) &   u ` R  C  B  8  , ! % !  $  !  #  $ & 0 3 5 2 - . 0 0 2 2 3 7 A A D F F I G I z L q P M X 0 Z Z  N N Q ] e o x } ~ ~ ~ j g b ^ ] ` ^ E & !                         | r d Z P ; / "    } e P A < 2 $        } l d X V I ? &       $ ( . 2 3 Y7 H< 8G N ] }               z p b P 7 / %                w m w v o c ] ] X Y h ] Y V X T" Q# J" I" B E D 3 . + 0* 0* +' $# * 7 A J Y h n r p z } ! ' 1 5 = = B D N N S X [ S N N Q O N O ; : : 1 . ,&" )5;,?8QB[JgXvQyS|QyBt@h0h$e!^X[^`^^cecbch rw{~~w|rsqmqfm^jMlCl<o7m4h%eh j l m r q orqryyy|{|{|{wrlllhjlmooooqtvy||}vsrqoslocXbFcAb<^5].V)QOQ SX]jhjljjhjhjlhwbk]\^JbE`B^C[BY9[4`/`%`"[XTLJLNOIIEEDGBBu@s@i=_8\6W1K1A&-$#   w m ` [ V N ; 8 1 ) & $ "     z x r n c U M *    s qf gM XA K; A4 ., !, #  "     z m ` ` c ^ ` a ` [ Wy Mb 8[ 8P /L .D 'B *< ,( '# * * ) * $ $ , 3 6 ; > = 9 ,   | t k ^ T 9 4 "   R I   q g U R vM qF lC ^9 X* X! T I D @ : 5 3 5 0 . & !  v r o b ] T N B ? = @ L O Q X S J E @ ; 6 0 &        }xwukid__}aw_m__ZUYOYHWEY>U2U/R*T%RW%Z*W,\1\6\6Z9Z;_EcCf-p-rz}|    ydK2-~p^G6.)}rhK6'/11216EJU^aafinzrsrgrisusxwzw{xx|}}}z{zzxx}x}{{{zvxvsvx|vxsukwiuazd}gkxslkgdfigfg_ZUX_]ZXUSNID>775599::<77>A?CAFDIFFAADA??AFFFAC??><><972/0/-/24-0//*(-/005??CDC}D|Aw>u9n7n5m/n+p%p sruuuspprsrpswzurru|zuppux|$&!$),+&"         !""!    ~|~|~|yywmo{ywrrw tqqjg^]YX Yb c cb]TO L LSVXYY]]c"^$]"Y$Y!X!VSSIIILJGGDEI"G"D!B=6!5&5)8);&;'?&?)D.E,J)I,I.L.O,O0I0I1N8L8J8J=L?N?OBQDOEL@I?E6B6B8@6;6;;??;?6;38.=5@6D:E:I3B.@,D+B'B,I8N=T@S@V;V5O1O.L.J&I$L!I!GEOSQQ V Y[Y[]bgmoorvvy{{{wvv{|}}|xwwuswurcTTYZ\^_aca^^ca^\Z\\dZZYWWTTRPMKJJHFEEHJRRMJJCA;6177921/**%"      ! # !! !257><9952/%!&+% asv{z{~}yvxxsniegllieeddb_VPNI:%0.$@!B@GJOR``aprzz&+07?KN_jo{          %1\ pimk\ Z R J H C ; 77;7 4-, *'%   ' '%*-, - ( * , 1 2779 < CC@AFFJMPRTWWY\^chiruupnxzz||  |z| zw s p r      !')..06;BIJQSV]^]^lq|  $.237< B ?CAABAF?LAS>V9X5[2_+_*Z&[ ``bb] ]%`*]4S?LAGAAFAD?FA\DaGdLdUg[lbxenns}}~%~6C~RTRQTTW[\\`fktyywteea[WWWVTRV|}vqe]UI?DKK NNI IFADA:0-0 2<:320235!2&.(3+.. +& !!$&$((+(0)3&2&+$)+.&#!!&!##(#)-.-+0=DBIIKIKUUSUVVXXVX[]_]]``b``bonllnoloqqossvvysqq#>@AE@A@;;92279@@ACFHJKHMPPUUY\Z\ZZYZUTTWURRUYZYZ^fhdcc_acdinrpswxwwsszz|}}zz|~~ywwz~mkjhhkjjea\TGGE4.*'vvsnqpgkpqnnllidagiifffb_]URN?<74/0<99:<<>>ACAA?>550              !% }zx|wuusppnkkhhfhknssww}z||w~w{yvrtrwvwy~{trqmmjhcbchlmleb^`[Y[^][]YX[^gjmtvy|{`SNGIGEDJIDGEGE?=;853158:=@@@?@D@@BBEE=661"      ')')8EJJOu]fo_q\r;4/'#%"     & g[NLKG<+$  #(//029::79<:70/+(*-*&&#!tw~!t[#R%M%G(C(>*;*8&6&)2"5549 >AHIIPaa]\gifbdzbddWaP\FZ?W7U/N/K0N+H%CC942/-+(&  ~yvvmbXED=65+)"|nmdZECA6% }tj3)#!&*-7::<HNX]ilu~syz\VL1$  snkgXPKA7*  ~|{wqlc^[TGG= 30+  '.6CRWcmpoyy|wshYK9-% $#{&v&d+_(P)A$ dG lO y^ c j t w y | ~ |    ' @ R! T# R U U! Z! k) A j i o t   8 c h       # !   0, U a k p  $ / > V R H ^ ^ \ V Q O R Q M E > = 6 @ G O V ^ h k p z          ! - 0 3 8 : : < < = F G U V V K I F ? = D D L L L X ` j s t y { {  &+)+'',38:866688:;@?DBDGGIT^e^`chjqojgbcjlrr| %'(,//--17<@@CJFJHA>EM O O P R O PURTUUWYU Y2\:\DcIcDdDfHfIiIhKiMmPuZ !$'$$+,+,11.058:BJQTTQQTV[``]SOVVYY[[gcglotvrmmmoqrrqqrw{  %(**047597<CHMPXaabikqsx}    $$'11669;=>@JM}O}QzOxOuTuRxTzV}`}a{h}ruontnunwnzn~lniikbdgnpupnkgabaa_ZZXZZ\]]__abiiiggfgid]a\\XUXZXZ WZ]_#_$\&a)a)b+d-f2g5l2l2n7p7s?qDsQkSaU]VZSZSXVX]X_X]W_UiPjMnKqHxA{:y?x?y9}42/-/*&&*+229<9:>DCA?CDDIHFD F I HIHIMMKMNR"R"M%N#P%R,R,N-P-R/R2U2Z4Z1]1d2f6b7f9f;g;i9g6iFps#2Fg)t,+:JOX`mov wttw%-2@FHMU^hw  !!".I[]^my~|{yr{hy]rXmOmGmBj;h.e"emlhgcb[YXYXYVY^^VsTmOkIcI^EZBP?O391-,%.656=;::;?@=8550+)+"!{i[VL":)3,+:J^chlrqttyy~{|||| !%((+&*?DKNPSWzUyS~P~P|KNzRzUuStZo]obfgfkck`lWqTpLqJqHB96.*%"    } zvsnkgklkiiik i%i'f,g6Z>WTRtNuKwM|I~MMIKIDC?>995-*                     ',.55?LX[]bjjhhchghcgjjgjsmrjponomqiqdrcvO~A;76;<9AAHHEC<~;~;{7{6|2|'~qlgd]XPPPPQNNIFILKF=2-&&$!$&$$!     uprptw!$(-38=???AB IS$X)[2`2b5d7d=`=_B_A]BZGXL[X]]__bbbgbsZtXyUNIIKLIKLLGIBB87732 5520")*+;293;3E:J<J=R?PARBYGcLkQkSpUwZz]]Z]_`Z]_b  #(%"(**,6;9E PWYZda\YY\cfinsspmmf h d dcchm!r&r'w+w,|.0330}1z3x:}E@;86'""&$&+56:@DEOJE@BEIID;;@IONLLQNLQTX^ejrrroqow{|~~~yohhlmrw  !   %! % ( &% %!/"0&/'2'2)4+2+2.7.7395>3A6?8A8D6C5F3F.I3K3D8F;K:K6M6N8N:P8U=U@RDKEIGFIDG:L:JAD=9;9@4?4@7B5D2D2G4I9G9J4O0N-Q+Q-T-Y*[&[%^`^] ]]^] ^`b ehejjllomqtvw{{{yy~rj[OE=:1)"~~|{lhccggegllmjjlmttw{wy|yv|rzqzowmsonrmvkykwild`OXAQ7N2S-S,T'T'V#TVYXONQLI=1+q$V?:03 3 -|\@9'{}kzZrSrNmIkFkFh>i>_<^9_9\7\9T7U5P2K/H/E-C*;-,*&   t#V-Q+U%X&X%Z([-U/Q5G7=>8>7A7I5N0W+].b-n!v     $/6;BGLMRRQWVWY\ahmmpu                          ) ) % %      z u k d k m x |        $ ' * ' ) w|rk`wVrRnLnGi@dC\ERGMMJWM[O[Z`Zc^o_yfwrw|vkd\XWW__agkq{NNRRPNPPUXWZXZ]_bbdfbf}iylyq{uuqqnlnkigfgfgda_a\ZZXSPPN^ V V T S Q N D D D @ B @ ? : 6 5 5 6 6 : ; ; : 6 5 3 1 3 . , . 1 3 0 + . ' ' "                                                    ~ } y t t q o q s q o j i ` _ ] _ ] ` e i n i g i e e b ` ` ] _ X K L G B ? A ? ? < 3 2 . 0 - }. u- p& f h# r) r. z0 |2 2 2 5 7 : B D G K P N Q S S X ` ] ] Z ] _ _ b ` d i j l n o o n o l v t y y } { y ~ ~ }                                                                                   ! ! $ & $ " $ & ) + , , 0 . 0 0 3 1 5 3 5 6 : ; = : ; = ? @ B D E G I N S T X Y ^ ~|{wwtrttvtvv{!"!$$&"&&)&&$$"$&w+p)p&h$`$Q)O)L&E,>.>186.6*;"E"Q TVVVTVQNLGDEED ;=6$,')*))&*"*./8=B@BELL V [ c c\ \ck r z  !!                    ~ y z u t r t w t y z z       Xj Vm Sm So No Ip Bp ?r ?t :u :w 8u 5y 3y 5u 1u 1t .t 1p +o ,o 0o .m +m )o 'p )k 'h $j $f !f h f e c ` ` ^ \ Y Y [ W V T R J H  H G  E  C E M O Q Q H L M !L H G "E &G 'G 'H )J +E .J .L 3Q 8O :M 6J 5L 3J 3H 6H ;J ;M ?O IT LW NV QV QW Y^ ^\ ][ VV YV ^W bY ]` ]c Yf Vk !#$,&6:@DIN T Y[YTTSV[`b!`$Y$Y([)[+`0`3^7`8b<Y8T5N&L(J&I&E$B$=$8&8+6-:.;2;330&2&70A0D+D&?!35:0+ $&!R' Q% R% V$ W" V R O M M" J% G H G G Q T V ^ ` f k t  % 9 G H L J ^ c ^ \ Y |T yL tJ oE h@ \8 [6 W9 O8 O6 T3 T. Q%                      # & - 0 8 < ? I N U Z b j o s t s t y| ~| u u t p o f f k t u w u w u u y z u p c a ^  ` "^ ,` 2^ 9c >e >f  A ~A {F wF wE yF {E |> {4 w6 v6 v7 r9 t6 v4 r2 q2 q9 m; m< j> lA jA hC g@ h< h7 m4 l2 j, m( l% h( g( e' c" c% b% `( ^( ]' ], X* X O% N% O J J I G I L L G @ @ ? ? @ D D B @ ? = ; : : 5 6 ; : 5 3 6 3 6 8 6 5 1 3 0 , + , + ' ) & '" ,( 01 +6 "7 / , ( %                                                                                                                                 ~ ~ y } ~    ~ } } y y v v v s t q n q o n j j j g j i j n n s l i g g d d i  l l g g j g g b b [ [ )` ,` 0b 3` 8b 8` 5_ 3Z 6Z =[ B` Td Yd ^i cg eg je lg mi lj ll yn |q s s q s q s q o o l i i j j i i g b b e l j l n o x      ~ ~ } x y x ~                                                                                     % & ( + + / 0 - * - 0 0 - * & & # % # ! !   # # !                      " #  "  #  ' !*  / * / * / 4 2 4 4 6 7 7 > > @ @ C F                       # # ' ' ( , - / < @ A A E J K O W U T R U W Z ^ _ a d c f f i m k n n m k i m n p r u s u x z | |    }                  $ $ ) % ' / 1 4 4 8           ~ v o m e b ` e j j o t v w y     ~ { w t q o l r t { | |          | w s h h k i k h i h f h c d _  \ Z \ (Y *W *P +R /K 7H AK DO IO KM PR UU ZZ \Z b\ ga kc lh ph si zf }f d c _ _ ^ ^ a _ a ^ _ \ \ Y ^ \ \ _ c a ^ Z W W P  K  J H F C "C $A )> 3> 6@ 6A 9C @E EC LH LM JO BW 3i .i *n | } |                              { q l d ] U M K I F D > 5 2 ( %                     6 G H C H O M T M }O }M xL |J }H |E zE xH sG rC s@ p@ n9 s4 w8 x4 |6 |4 z/ x/ x* w* w' u% s n n k f h k m p s u u p r n n p n k f d c _ ^ \ ^ \ Y W T W W Y Y Y W W R O K M H F E C E @ > ; 7 6 , / / * ( % # # % # " "               qojhc``[VIGB@5510!!"!      "'+'+&"!&.8@IT]^^bghmqvq}xrsrkifa_^ZYZ R P O K H HHAA@@>>97642-,,((('%% #          !!         ~ sn d glsvvy    yy}                      "%*%"%'**% %(,1/,'*,*(*(*--,/-244797<;>@@AARRT\__cdc_ZWUY_ccdkwktilhjdj_cc]cY_X^TdYd`c`dhijmlmtnvmvpwsvrynwkyi|i~fddhdmpppzz|urwpkda_WWY\acdffmmhdd\c^\\YUTPMFFCAE@;<74622422679967997966142424--,*(''#%#              "   "%'*'( * * ' (,-22 6 67 9 7 9 99>ACFE FHJMOO RUW\ Za c frux*#            #'**=z9s4p1n3d6c4^'Z%TOOT WWaddinrrsnnmmkic_a__^\Y^YU\_\YWTWU URMM'T'Y1Z6^8c6f3f3m6p9r;u=|=z     , 9 E P T W W Z m p s u w |        & ( ) ( !                        } z w r p m i c \ Z W T R P O H F @ < ; 7 6 4 1 , - * * %               D I M M P| \w aq kY nJ u; )     rkf^ZPRP@72* ~xd]uBk:i5W)P(I&M(9&7$C$9#   !/5<CNf}+   vifaSC<0(#rhb~[zVySuLtEh:a1Y+T'O$LMQQVVRQTRVRVYVY+W,^;tJ~Y^hq !&+-05.-( ) ) ( $ $ (+(9+?+D.H-N-U0d<k?qIuQv '/@JZan  ! {0 n? kL kQ kT be al \q Wt P{ K| I I H D   | | z  k 2 c Y;];b;g8j4m1r.v,{)~%"   %*/5:?FKPW\aglqx} " ',16=%E,J/O3T6Y9^=c@hCmGrJwMzRVY\`aackot|!.38=BGLSX]bglqv{ $).27<AFKPUZ]bglq v{#(-27;@EJOTY\afkpuz               | w p k f a \"Y#T%O'H(C*>,9-4//1*2%6 79;< >@ACEFHJKMOPRTUWYZ\^_acdfhkk}nxpsrlsgubw]xXzS|N}ID?:52 '+6:@DLQV[`ejoty|{~~yyttqrlhc^J:,+)3":LV[i{!"+)+0558=@?;::;=656.,%1-39?OBPEZI^IcOkTmVs^^YVYXYXY[bcghlmee"h.j;mBmGmOrXy]{hyr|{~ym^][I."!!  wh^UMHF@2-%wtt wvom`XOJ:+t,g)F2#~z}wztwpsknhkch`d[aW^TYOULRHOCK>F9@,6  ~{xsojeb]ZUSF{?v=u8l3l.f+\WN IFA>:72/+&#  zwopokjecccec[^\YWY~VcEY;LLJLJLTTVSLNLJLuJpGoGeEeGaJRLROTeVQW\^cuwy||||ytoje`[VQLEGDDDBBBB@@@???===GN Q O'V,]Vl[qcojopltj|llrvvvrvtt~  *-599>?CDIKIM~M|IwMuKtNTR>W6Z,g'f%i ikiiiklkgknsv z}    "%*.69BqHqJpLqTlWk`kcgfbf]oZoStUuRzNzKP|P~S~UyWzSPNKD?*&+((%! zupkhfe ca`\ Y%V(R-Q2L5H9C>@A;D8H3K.N*R%U Z]bfil qux{}{vqkf_ZURPMHC?>:50+&  ~ytojc^YTOJE                 $ & 3 : L P S X _ e l o {       } w m d c _ ^ \ \ \ Z T O J K < 2 , ( %                    ' * , - 4 9 < A E H J K K O K M O P M O# K' F* E2 J6 K9 KE ZT _T dU iU nU sU xU U U U T T T T R R R R P U \ _ h h k d 'k 6s @ 3 , , 1 1 6 ? D G ` c e                   ! !!9)M8P:W:g@s=EJOTY^cjoty~  &+05:>?CHMPRUZ_fkqv{}{xuql ifb]ZU R%N*K.H3D8A;>@9C5H2L-Q(R%V Y\`a cefhkpuzywuc^\WQeVOTLRJRGaEeGeGoJpLuJLNLSVTTLJLJLLD@:6+' 25:?D}I|NzSxXw]ubsgrlpsnxk}khfdca_^\ZYWUTRPOMKJHFECA@>< ;976 2%1*//-4,9*>(C'H%O#T"Y \ a f k p w |              zupkfa\YTOJE@;72-(#{vq lgb]ZUPKFA<72.)$ {vqlgb]XSLGB=83.!|tokcaa`^YLGB=63ypf^xWuWp^l\i^b`_`NcHcAa4h jmjko o kmkuz|ywq`YSNGB;5.)&$$!"!!   \ ` e j o p k m j j r                                   | w t m m h ` [ [ W W T R B @ @ > ; 8 1 , ) "                                     $ + 2 7 < B B I L V{ Xs Vk [f `b _] `Z b\ gb lb n] tZ tR xP yK }I I H M K M R R K D 5 / + %                       " # 1 2 4 6 4 7 ; ; 9 ; <w @r Fo Oq Ww Z{ _w cy fy dt fq dm fb f` f] hY fT iN fE h? i; h0 n. z6 6 5 1 . + ) . 5 = ; ? ; ; : ; ? B @ @ ? ? ; 8 5 3 0 . + ' &  "  !    & .@GEDGbhlvtv{!&7:DMSW]buzz}} $   $) ): 'J "` )` /` 4` 9` @` G` M` T` [` a` h` o` u` z` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `  ` ` ` ` &` -` 3` :` A` F` L` U` [` b` i` o` v` }` ` ` ` ` ` ` ` ` ` ` ` ` ` ` b h m t y ~                            # * / 4 ; @ E J P U Z a f k r w |                     # ( / 5 : A F M R X ] d i p u {                             $ ) . 4 9 @ E L Q T Y ` e k p w |                             ! & - 2 7 : = A B G K G B ? A ? ? < 3 2 . 0 - }. u- p& f h# r) r. z0 |2 2 2 5 7 : B D G K N P L K K P V [ ` g l s x ~                             | }# }( }/ 6 ; A J K M P R T U W Y _ f k r w }                                             ',.55?LX[]bjjhhchghcgjjgjsmrjponomqiqdrcvO~A;76;<9AAHHEC<~;~;{7{6|2|'~qlgd]XPPPPQNNIFILKF=2-&&$!$&$$!     ~ttvrvvvrl|ltjpljoco[qVl,]'V O QNG===???@@@BBBBDDDGEs=g@W:P:M89)!! !                  e c ` G D ? 6 1 1 , , 3 @ 6s 'k d k h h _ \ U P R R R R T T T T U U U xU sU nU iU dU _T ZT KE K9 J6 E2 F* K' O# M P O M K O K K J H E A < 9 4 - , * '                    % ( , 2 < K J O T Z \ \ \ ^ _ c d m w }       { o l e _ X S P L : 3 & $                                          z u n k h d _ \ W T P K H C @ ; 7 2 / , ' # ~ z w w w y y y y  ~ w w j ` a f h{ py |o ~l tb pU mQ |8 |. r p e \                          ! & + 0 6 ; @ G L Q X ] b h m r y ~                              % + 0 5 < A F M R W ] b g n s x                               % * / 6 ; @ G L Q W \ a h m r y ~                                 # ( - 2 7 < A F I L P U Z ] Q N N Z  Z X 0 P M L q I z G I F F D A A 7 3 2 2 0 0 . - 2 5 3 0 & $ #  !  $  !  ! %  ,  8  B  C  R  `  u  & ) ) . 0 2 0 5 = 8 7 3 2 2 3 2 7 3 7 8 7 7 < ? G N I G N K I V  Q G F D B D F B  G  I  G G  F  G  I  G  P  P $ L & N ) P ( P ) S ( U # V  X  X ( V . Q ? I P I X L g Q q Q v N { K } B 8 < D B G } F P y Q t P q N q N s I t F t I q I o K o I o G o G q F q F t D o B o A o ? q ? l = j = l < j : l : i 7 j 8 l 2 t 5 v 2 v 0 y . y 2 } 3 2 2 + ( ) & $ $ ! ! # & # & & ( ( & ( ) - - 2 5 7 8 7 5 0 5 7 5 2 + # ! # + # ! !   ! $ & $ $ $ $ & ( $ # $ # ! # $ & ( ) & & ( + . . ( & $ ! ! # & $ $ $  &  &  & ( ) )  +  )  ( ) , 0 F 5 R = ^ 2 c = ^ 2 c  k  z  |  |              u r h e e Y R O G C 9 ' |  |  x  u  u  p  r  u  s  u  s  m  m  i  h  d  c  ^  ^  a  a  Z  P  M  F  C  @  <  4  1  1  ,  '  %  #  "       " ' % ' * * ' ' 3 = B E L O T Y \ h k r t |                              z u ^ [ Y Y R M G @ @ = 9 ) ' "                                                        #  #  '  *  -  7  7  6  7  <  @  <  C  H { H { F } E { C s C q A i A f J \ O R R H Z < ^ / h ( i ! n  r  s  x                  | l l o j b ` X V Y [ Y X Y [ [ ^ ^ [ N J J G D ; 6 1 . + & "                            } w r k f _ Y W U T R P M K J A ; 6 }/ }( }# |                             ~ x s l g ` [ V P K K L P N Q S S X ` ] ] Z ] _ _ b ` d i j l n o o n o l v t y y } { y ~ ~ }                                                                                   ! ! $ & $ " $ & ) + , , 0 . 0 0 3 1 5 3 5 6 : ; = : ; = ? @ B D E G I N S T X Y ^ V V T S Q N D D D @ B @ ? : 6 5 5 6 6 : ; ; : 6 5 3 1 3 . , . 1 3 0 + . ' ' "                                                    ~ } y t t q o q s q o j i ` _ ] _ ] ` e i j g i e e b ` ` ] _ X K G B A = : 7 2 - & !                             | w p k e ` Y T Q L E @ 9 4 . ) $                             { u p i d ] X R M F A : 5 / ( #                 zvqnifa\ X S P K F ? 9 4 - ( !      ! " " $ & ' ' ) + , , . 0 8 ? D I O T Y ` e l q v ~   { v o h c ] X Q L 0                           ! & * / 2 7 < > D F K \ k n                      " ' . 3 8 @ O c               # F P X b e e g s &} &~ )} .} 0 3 8 @ y     | { | {                % / 7 P b p z             } ] N G < 87 H3 Y2 . ( $         & ? I V X d l }      $ 2 < A P e }      " / ; P Z d r |                                       !  &  E  ^  `  ]  ^  b  g  j  ~ ~    ~ } x o e ] Z U P L I F A < 7 2 - ( #                                 ~ y r m h a \ W Q L G @ ; 6 / * %                               x s n g b ] W R M F A < 5 0 + %                              ~ y r m h b ] X Q L G @ ; 6 0 + & !                              | w r k f a Z U P J E @ ; 4 / * #                            ~ y t m h b ` ` ` ` ` ` ` ` ` ` [ V O J E @ : 5 0 + $         zup i#d'_(Y,T/O2H4C7>;7<2@-C'E"HKMP TWY\_adhimpruxz}ytnlg`[UPKD?83-(#        | u p k e `" Y$ T' M+ H, B. @+ 9' 3$ .! '            #,6PWadikmrr{sz  &8BJ`jotw             &((&(++/--/-/--+*&(%#%&-//-0479:>ADFC<>>v9v4u4s5k7i<d>bAaH_IaKdNfRiUkZk]iaibggfkblan\pXuUxPxM}KIHHFDCCDINSXXWZ]abbadginpsvz  %).169=BEJMQVY^aejmruy~   $+05<AFKQV]bglsx}  ""$$%%%')*.148;=>;63. *'"#(-149<AE J ORWZ_cfmrw|          ! '$ .' 3+ 9. @, B+ H' M$ T" Y ` e k p u |       #(-38?DKPU[`glnty}zxurpmihda_\YWTP MKHE"C'@-<2;77>4C2H/O,T(Y'_#d ipuz        $ + 0 5 : @ E J O V [ ` ` ` ` ` }` v` o` i` b` [` U` L` F` A` :` 3` -` &` ` ` `  ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` z` u` o` h` a` [` T` M` G` @` 9` 4` /` )` "` 'J ): $)   $  }}zzub]WSMD:7&!{vtvlhbGDEGIJILLJGGEBD?:;;:8110+,+)'|z} ||xwsia_YUOJHEA>;9664422/*#" }tj}ix`u_s`ubpepgmjkohsfxcy\sUqKeC`A_@_<[9X6N4K-G(G#B"      ~ yyr o jhh`VHCB=*%$ O R M K O O P U U Z Z O P O K M P O R R U W Y \ ^ ^ a d f f h i m m p p r p r z z u u                   z u k k n n h f d c d d a a _ a a \ Z Z U P P U T U U O M M J K H H C  C  F H F H M #R &T +R /T <Y Ac Hh Mh Rp Ur Xu ax gx p} n s u x {                              % 8 9} ;x >u Gu Os Rp Wr \p `u ow pr un uk rf uf yc zc zY |\ ~Y ^ ^ Z W T R U P R P O O H K P T W \ _ d h k n u z                             zr k c\\ cc [ V L LEB@B=8/.**")&*)')$,6= ;DEEDGLNQVTVVV T"Q"E*;.686>1>.E,L&O)Q)`$h$p&p)w+&$"$$&&)&&"&).5;BGNSY`qwy|zukmko o kjmjh a4cAcH`N`_^b\i^lWpWu^xfpy36=BGLY^`\YVzRwMrJmGhCc@^=Y9T6O3J/E,=%61,'"  }xqlga\WPKF?:5/*%   "~%{)v,r.m1j4g8b;];Y;Q4I/I.G.B';$; ;?==;8:36?B@63018;665310"!"!"!  xwuuxzxssmkn}sr}szrxp{m{mshuiuizfUvEsFpEnAn<:@5C2F/H*K&O!RUWZ^ acfimprux|ytojc^YS N IB=81.+!&"!&)+.0 36 8 ; ? @ D G I L N Q T V Y ] ^ b e g j l o r t w { | | w r m h c ^ Y T P O v |                                      % 0 ? H M S W Z Z d k q s u s x x z { { z x v u q p n i g g i d i g f g i k k n p s v z { }           ! ! ) - 0 2 3 5 7 8 : < = < = ? A B D F B D D B D B A A ? B D G I K L L L K K I G D A = < : 8 0 0 ( ! #                     ) 1 C H H T [ ^ a \ e p r |. |8 mQ pU tb ~l |o py h{ f a ` j w w ~  y y y y w w w z ~ # ' , / 2 7 ; @ C H O O P R P U R T W Z ^ ^ ~Y |\ zY zc yc uf rf uk un pr ow `u \p Wr Rp Os Gu >u ;x 9} 8 %                              { x u s n p} gx ax Xu Ur Rp Mh Hh Ac <Y /T +R &T #R M H F C @ @ > > 7 7 6 4 4 2 4 / * / *  / !*  '  #  " # "                      ! # #   ! ! # % # & & * - 0 0 - * - 0 / + + ( & %                                                                                     ~ x y x } ~ ~      x o n l j l e b b g i i j e ` [ U P K F ? : 5 . ) $                    { w w t q q m l o v { | y w y y v v {                             | } | *n .i 3i BW JO LM LH EC @E 9C 6@ >4 B/ B- >* >% B > > G L J L H J J R W T L L W [ [ ` a f k o o p u u y u~ zy y { t j g d ` U U L K D B A ? < 8 3 2 . - - + ) + (                           ! . 2 3 8 : 8 : A B G X ] i j y { v x {                                    " 6 C C A F H K K O R U Y _ c h n w                                                       & 0 ? L V Y h q v v y {                   $ ) . 5 : ? F K P U [ ` e j i i l o o q s q s q s s |q yn ll lj mi lg je eg cg ^i Yd Td B` =[ 6Z 3Z 5_ 8` 8b 3` 0b ,` )` [ [ b b g g j g g l  l i d d g g i l s n n j i j g j j j n o q n q t s v v v y y } } ~    ~ } y ~ ~                                                                                                                                 % ( , / "7 +6 01 ,( '" & ) ' + , + , 0 3 1 5 6 8 6 3 6 3 5 : ; 6 5 : : ; = ? @ B D D @ ? ? @ @ G L L I G I J J O N% O% X X* ], ]' ^( `( b% c% c" e' g( h( l% m( j, l2 m4 h7 h< g@ hC jA lA j> m< m; q9 q2 r2 v4 t6 r9 v7 v6 w6 {4 |> {E yF wE wF {F ~A A > ; @ F H F F K O O P T Y ^ c h m r w | | { w t r o l j g e b ^ ] Y V T Q N L I G D @ ? ; 8 6 30 .+)&"!!&+.18=B I NSY^cjoty|xurpmifca^ ZWURO!K&H*F/C2@5<:;>7C4F1K-N-P,N,R%R#P%N"M"RRNMKMMIHI H I FDFHIDDC?ACD>:9<922+*&&*/-/2}4y9x?y?{:xAqHnKjMiP_U]W_X]XVXSXSZVZU]SaQkDs?q7s7p2n2l5l2g-f+d)b)a&a$\#__]Z WZXZXUX\\a]digfggiiiba__]]\ZZXZZ_aabagknpupngdbkiin~lznwnuntnonruh}a{`}V}TzRxTuOuOxQzO}M}J@>=;96611'$$    {pg_WPI?2%  }zsuqklpnqu|{wztxj{g{cqYnTlTlLkGnBp@p6n5n"q!x!{        { z x x x v z x x { { V R M H H E H  G J R T V W [ Y Y \ ^ ` ` c e f h !f $f $j 'h )k 'p )o +m .m 0o ,o +o 1p .t 1t 1u 5u 3y 5y 8u :w :u ?t ?r Bp Ip No So Sm Vm Xj ]o `t hy j o v v y y w y | { v o l m q q t w w {               { y v v q h Y V L ? 0 &                                     y w u w u u f a [ Y Y V C E F J M W \ _ f n s zz y u w u w t h h k j j j k k j f c a \ \ Y Y R R V Y Y [ a f u u w u w y                                                                              w n h c _ Y U R O K K H F A C C        } x ~   ~ ~  9 ] q } t t i ` ` S Q S S S U S P N L  K I G F "D 'B .A 3= 8< >: B? GD JI ON RQ WV [Z `_ eb hg mj po us yx ~{                             & ( - - 7 = B F K P S P N P S U b e d e o x ~                                   " % * - 9 > M c k x z x x |     v v n n d S P L G F D D ? = < 8 ) & #                             & & ' ' , 0 1 3 5 6 : = JL Vb Xn ]x ` e j l m o q t v w y { |       y r r ^ ] X V" O# L( T* X- S6 XA VO YT [Z Y^ ^m ]p Qw N} E @ 6 . $    } | w u u r n m h c a i s s p p u        | z w u p n n m a Z W T O O R U Y ^ a n r z                       00Gm y                        % ( 2 5 > D F I K M U ] d l q { { x x z v x x x z {         {x!q!n"n5p6p@nBkGlLlTnTqY{c{gxjzt{wu|qnplkqusz}  %2?IPW_gp{}xsqkibaaXPMHC<795740**(%  {wrqqrrqommmrvtolgcg[[YYVVOS]``[VTQQTTQJB:850.11,+,+$$'$! uZmPiMhKiIfIfHdDcDcI\D\:Y2U YWUUTRUPO R P O O M E>AHJFJC@@<71--//,('% |rrljcbgjoqjhc`^e^TIGGDBD?@;:886668:83,''+)+&      { { y t s j ` X L L L D D = ? F I K V V U G F = < < : : 8 3 0 - !                                                             z p k h ^ V O G @ 6 = > E M Q R O Q V \ ^ ^ H R V > / $                                     p k a U R P N M} Kx Iw Hr Fk Cf Aa A\ ?U 

= = C H L L T W R J J H L J L G > > B >% >* B- B/ >4 8@ 6@ 3> )> $A "C C F H  J  K P W W Z ^ a c _ \ \ ^ Y \ \ _ ^ a _ a ^ ^ _ _ c d }f zf si ph lh kc ga b\ \Z ZZ UU PR KM IO DO AK 7H /K +R *P *W (Y \ Z  \ _ d c h f h i h k i k h h s w |          | | { t r l o q t w { ~     y w v t o j j e ` b e m o v ~               y m G00                      z r n a ^ Y U R O O T W Z a m n n p u w z |        u p p s s i a c h m n r u u w | }    $ . 6 @ E N} Qw ]p ^m Y^ [Z YT VO XA S6 X- T* L( O# V" X ] ^ r r y   >: C7 C0 H- G$ H L J G H H H G E J J V V [ [ \ [ Y [ Y V W Vy \p am `f a` e[ oW tW y\ |[ T G 4 1 ) "                                & ) ) . 0 . 0 5z 7q  ? H P Z a d n u { {                " " # % # # % ( * / / , 6 7 ; > @ E C E F H M K O R W W Y Y Y W W T W Y \ ^ \ ^ _ c d f k n p n n r p u u s p m k h f k n n s u% w' w* x* x/ z/ |4 |6 x4 w8 s4 n9 p@ s@ rC sG xH zE |E }H |J xL }M }O M T M O H C H G 6 = B E C G E G G M Q Y \ a m                                  # & ) 8 < = ? D D F G L P S d n n v v     | x x z x k c M > 9 - * % "                                   ~ x o e d e b U S P N P S P K F B = 7 - - ( &                             ~{ yx us po mj hg eb `_ [Z WV RQ ON JI GD B? >:          " " % ( ( ( * * ' ' , - , ,~ ,y ,w ,r *l (g (` '[ %V %O #J "D "?  8 3 , , ; Ys !&+05:?DJOTY^chmrw|      $ ) 0 5 ; @ E L Q V ] b ` V T  X [ *e 5c <] \^ bb f` n` s] z` c c h c c ` b ^ ^ g m m o m o t y       ~ ~                        } u s q l i g f i i k l f d f b _% Z& Z< WA WD WH XM XU XW UZ Rk Np Sv S S Z _ i n x z { v f U R I ? : 5 2 2 4 7 7 0 + + * % ( % %    %  % " " $ ) ) * / 4 9 = B C E E G H L Q V c e f h k r u y z                                % * 0 5 : A A > : < > : 9 - * ( * % ! # %| &z &r *p +m *k +f *a (^ *^ +^ *W 2T  ; 9 @ B @ @ = 6 , * *           # % ( ( * ' # # "                             } z x v a \ W R I C < 7 - / - * %                                                 | { y w v t q o m l j e ` ]x Xn Vb JL = : 6 5 3 1 0 , ' ' & &                       m a \ Y Q M G G E G C E B = 6 4 1 / ' % ) $ $                  }    | | z x u s u r p n m i k m n n k m i f f c d a _ ^ Z W U R T U W O K J E A A @ < / - , ( ' ' # #                         { { u n d a Z P H ? > 9 2 2 + + ( %               &  '(( ,--167 6!1&,(#2"::>? H#F%I"N"P'S'Z*Z*]/\;]C]FfCi@l>uCzEzHJPUOHE<<91,%"/9>OTRU Z c kr"s/x69CEJORWVRTRTRTWRR&T.Y6eEt[r|#-0<DRdiq}(+03):4=;FBIGGLI\GuBFIIGB==BINSX[`beglnqsx~ "#1;@JKMPWcis         ' ) . 6 B G L O Q T [ Y [ ^ g j o r w y { { |                                                                           ! #  %  ( * + - 2  0  4  5  7  7  < > A A D H K M N U W Z _ b f f g k l q u x {                                         " ) , 1 8 ; > @ @ B R T W W [ [ ` h m m t w |                                   r j j m k p o j e ` \ a ^ [ T H H C 1 )                     # ! ( 0 0 8 7 5 3 2 . - ) & #                             }  { {   { z x x s u s q k d Z Z W S M H ? 0 %               z z y t w t r t u z y ~                       | v o j hy `t ]o Xj Yf ]c ]` bY ^W YV VV ][ ^\ Y^ QW QV NV LW IT ?O ;M ;J 6H 3H 3J 5L 6J :M 8O 3Q .L .J +E )J 'H 'G &G "E G H !L M L H Q Q O M E  C  E  G H E H H M R V R R Y Y \ \ a c f j k k j j j k h h c a c ^ a }^ z` x^ p^ m\ f^ a\ ^^ Z^ TY PY Mc dj kk do Rj Mj Fh f >e 9c 2^ ,` "^  ` ^ a c p u z y u u w u w u t k f f o p t u u ~| y| t s t s o j b Z U N I ? < 8 0 - & #                                            z u o j e ^ Y T M J H G 9 %  t k f ` ^ V T Q G G H G J% M" M O R V W" V$ Q$ M% L) E) E. C* @. 4/ 13 .6 *3 /  . ) / . 1 / 3 3 6 3 3 . ' '       } q p l f b ]" ]% Z' X) X, U. R4 R; K= I@ CE  < : > A A : 5 0 * %                                z y u r k h f e c V Q L H G E E C B = 9 4 / * ) ) $ " "  %  %   % % ( % * + + 0 7 7 4 2 2 5 : ? I R U f v { z x n i _ Z S S Sv Np Rk UZ XW XU XM WH WD WA Z< Z& _% b f d f l k i i f g i l q s u }                        ~ ~       y t o m o m m g ^ ] [ V T Q I ? , !     "%$%'.1139>OTety ((}(w(r(m(f(a(\(U(P(K(E(@(;(4(/(*(#(((((-8= LL LDDDDDDDDDDDDDDD?:5)  {vojebXUUL=<=2.) !&+035<==BFGNQSVZ`dlosvyy~~||zz|ztkhe`VQLE@;4.)$ {vaIA:5-&TRRLLHL JLHHGL"J*E*@1>69866.Mp  !(0<NPQNPUX]`beegljsy{~  $%*=BCHV`hh j ory y ~    " #B(G-G4K6N9X<[@_A_C`KeUq\scyfxhskomjpgpeubs`u_x`}ijt} "#*/2244669;>AEHJOUY_aiswx| |}z'|)+,+0118:;;:?DBEGGJLLIJIG@.&     !  " & ' + . 0 3 5 8 ; ? ? @ @ B ? ; : ; ; ? ; = 5 . ) + . 1 5 6 z6 n. h0 i; h? fE iN fT hY f] f` fb dm fq dt fy cy _w Z{ Ww Oq Fo @r <w ; 9 ; ; 7 4 6 4 2 1 # "                       % + / 5 D K R R M K M H I }I yK xP tR tZ n] lb gb b\ `Z _] `b [f Vk Xs V{ L I B B < 7 2 + $                  { x u q l k g f f b _ Z W U N M K H D A A >  <  7  7  5  4  0 2 - + *  (  % # !                                                                           | { { y w r o j g ^ [ Y [ T Q O L G B 6 . ) '          sicWPMKJ@;1#" ~xsqnlgeb`[XSNIB==BGIIFuB\G\Bh=k8h5h0f0f-f#^\\cee afeajjkkktpojkjffefcacea``cca\zLwHuEu;p3t,o$o rrom khfea`^[YWTp|~        ).7:?Pgnqx~$).5:?EJOV[`glqv| !(-27>CHNSHD>94+(%!      "#""'"   ~#*14>CKRZahnrw      ! ! &  + . 1 6 : @  G  I N O S V Y ] ` ` m q r | |                  ! & D W U X# W& X* aC aR fW nZ u_ xg }i p }                                               " % ' * / / .% /) // 49 8C 9C ;H ;L BQ HQ OV QV Re Th Vk Vy W V Y [ Y [ \ [ [ V V J J E G H H H G J L H G$ H- C0 C7 >: 8< 3= .A 'B "D F G I  K L N P S U S S S Q S ` ` i t t } q ] 9  ~ ~   ~ x } t n F < ) ( #           ~ { w q l! c+ VL X~ Y} h} {        h c [ V Q L G B = 8 3 . ' "                   t o i j d _ [ V S N K G A < 8 z3 u0 r. k) h( c& _# Z! U! U R T# R! @ '               | ~ | y w t j c y^ lO dG ]> Z9 S1 Q1 K) G% < : 0 &                } q i g b ] X U M D 0 &                           { o ] @ 3 $ ! ! $    ui_^R;/"%'%zttokhffjmmjpuwz|zxtxytlieZXZX]Z]ZUF8538782..-((++)(--788330-)((&      #$)-0788:72 2 @ G O T V [ [ f k u u y   ~ w |r ur st rr nr mj ie fe dc aa Z` Wc Pe O` M^ @C >9 ;3 <' 9 ; 7 / / , ' #                % ( ( ( * / 2 ; ; C H c f h m n m p n r s w | |                                ) 1 6   { h} Y} X~ VL c+ l! q w { ~           # ( ) < F n t }         SX_dipuz  %*16;BGLQW\ahhhhhhhhhhh hhhh#h(h/h2h4m4t4y4~44444444444444444444444444 4444$4)4.434:4?4D4K4P4U4[4`4e4j4q4v4{4444444444444444449@EKRYcmrx    $ $ ) + . 0 0 3 5 3 5 5 : = @ D S V X ` e j r w ~                                     # % & % % + x- _9 [A [F ZI VK SI QP KS I\ Fa ?f 41*#~   "'""#"      !%(+49>DHSCEZdmn|")+56=DEXbmvvy~  &(+-/249C%C+H0N/K/N7U?WFZP\Waddzbdbfig\]aaPIIHA >945"5)26&8&;*>*C(G(M%R%[#t!~wt!#&&*-*(+/07:<97::920//(#  $+<GKLN[g &-5:AIav{ $).4;@ELQV`ehktz|zz||~~yyvsold`ZVSQNGFB==<530+&! ).2=<=LUUXbejov{  )5:?DDDDDDDDDDDDDDDLL L= 8-((((((#(*(/(4(;(@(E(K(P(U(\(a(f(m(r(w(}( yteTO>9311.'%$%"    ! , ? I Q T V [ ] ^ ^ b ` c c h c c z` s] n` f` bb \^ <] 5c *e [  X T V ` b ] V Q L E @ ; 5 0 ) $       |wrmhc^YTOJD?:50+&! sY; , , ' "           zsnhc^YWMH/((%"    } yx gSKF D"A#='=,815606+6$66666666666664444444444446666~6y6r6m6f6a6\6V6Q6J6E6>69636.6'6"6666 6666666666666666666666211v7lA_MHPHWC\9\*^#^^UOKFCCFFECFJKHCCACpmcWRC6. ' +03= GGT[^clqw{|~  *7AKPXgkns))$$1LV\yz~suli]XNH<::7-*&#!)37<AF KPSX]bejt} %6ACACCHKJFCEFFCCFKOU^^^#\*\9WCPHMHA_7l1v1266666666666666666666666 6666"6'6.63696>6E6J6Q6V6\6a6f6m6r6y6~66644444444444466666666666666$6+6015,8'=#="A DFKS gx y }   "%((/HMWY^chnsz          " ' , 3  8 "? "D #J %O %V '[ (` (g *l ,r ,w ,y ,~ , - , ' ' * * ( ( ( % " "                                 ~ w r j e ` X V S D @ = : 5 5 3 5 3 0 0 . + ) $ $     xrmcYRKE@944444444444444444{4v4q4j4e4`4[4U4P4K4D4?4:434.4)4$4444 44444444444444444444444444~4y4t4m4h4h2h/h(h#hhhh hhhhhhhhhha\WQLGB;61*%  zupid_XSNHC>72-(! |vqlg`[VOJE?:5.)$~xqngP?:7.)        ~|p|p  $$)) "%#'/4;\r_qfou]b`cow||     !'.05?DED@DEJIJGDDB?=830 . , ) & $&#* <? FHMPSS&])].a)f!innsppl lq xz "$')36:;=?BELQVXX]^`cegjloqrvy|}znlpuzxxsqsp plq&u+025975?DKNPUXZ]binsx}xvndb_\USPMIH>994{4z({%}#}%&*-+-+**&&#!#!#%#%%(&%&**029?DIPUZ_fkpv{ "%',4489@CBCGJOQJGGHGJHJJQTWY[^`aefh kmor r$o,o3t;pEuHuLw\zacc``aecacfeffjkjoptkkkjjaefae ec\\^f#f-f0h0h5k8h=\B\GLIGGBI;F4=):30+(}qidRD<0-#|r[Et6e.Y&TRRWTRTRTRVWROJEC9x6s/r"kc Z U RTO>9/"%,19<<EHOUPJHEzCz>u@lCiFfC];]/\*]*Z'Z'S"P"N%I#F H?>:":#2,(1&6!7 614<@ F HFJEA@74441-" " "%"      "%" " "-14447@AEJFHF @ <41--,( ('  '*.4EGGT\aejjkhhjkm~zwwy~~|zz}}|zzsswwxwsprnidca_ccdhf^ZYZYURRUWTTUZYZZZ_^aiimrrussw&w0|3z:s?wBxFwGwK|N}NNSS`lyy!$&&,6=@@BENSTSX^egjmrvw*4@HJKJR^\_\cmkmu  &++--0++-/--0<CCCDF)M,N=ZB\EaObSi]lhxecejltvy~wtoj`JB8&  zs{rrmkidaWP6,#   ~{ysjlgeeb`]XUPNQPN<0(!  pM6.86691>*@*E"JLGHHL JLHLLRRTQJJHJGHGGJQOJGCBC@9844,'%" {vpkf_ZUPID?9220/(%!qqomhc^XSNIB=83,'" u]OJJE8)')'      "166=EEBB@@D@?@@@=:851358;=?EGEGDIJDEGIGNS`{|yvtmjg^[XY][]^[Y[`^belmlhcbchjmmqrt{~ywvwrtrvy{w~w||z}wwssnkhfhhkknppsuuw|xz} %!              055>?AACA>><<:99<0/47<?NRU]_bfffiigadddddddddddd dddd"d)d.d3d8d?dDdIdOdTdYd^dedjdogoloqovo}ooooooooooooooooomoqq!%(/0220**&%&(%%#%#!#!#&&**+-+-*&}%}#{%z({4499>HIMPSU\_bdnvx}xsnib]ZXUPNKD?579520+&uql ppsqsxxzuplnz}|yvrqoljgec`^]XXVQLEB?=;:63)'$" z xq llppsnn!i)f.a)]&]SSPMH F? <*#&$& ) , . 0 38=?BDDGJIJED@DED?50.'!     ||woc`bu]dillnnqpkgpqnsvv "',38=BINSX^chmoooooooooooooooo}ovoqologododjded^dYdTdOdIdDd?d8d3d.d)d"dddd ddddddddddd} -/4AJOTchnruz|} ")*6;==9=@GGJLQMO\ajkoppmfkkp|~~".0|6z8wBzNwOuXuXrw[`aeheepokjokom&DDXb]]__bil+f7WdUiXoXtP7!72,*7*;KPY_c!/4:.:=9S:h:y/%    !#&(*+//200445:9<<?ADCFD KKHI H H!K!K#H#I&I(M-N+P/R-X4S9K7I9F:>:9?5D4F/H*K%P%R!R PR!W!X \\]afg!i!nlgbbfid b dkllkikkdikigfigiigpsuuvz}~yvtljecehx]lSiObEaB\=Z,N)MFDCCC<0--/-++0--++&  umkmc\_\^RJKJH@4*wvrmjge^XSTSNEB@@=6,&&$!yyl`SSNNN}K|GwFwBx?w:s3z0|&wwssurrmiia^_Z\YUUPPMHKJHFCA@@97229;;@A@EA@>#qqsyvvssoqqolonllnob``b``]]_][XVXXVVUSUUKIKIIBD=0+-.-)#(##!&!!#&.+$)&+&2)3(0(+$(&$!! &+. .+3.(2&5!32023:<20 -0:ADAFII NNK KD?IU]eqv}|VRTVWWW[aeetwyytkf`\\[WTTQRT~RC~6~%}e[WRLGEB=1.'$    {vpfb7b9d9f4v7x9x7{5}7<}<uCgMdRZRSUMWNXMX>\<b>b:p/s/v*z*}&(#((* (4FKad./`ajt~$'6>HW^chmrw| $+05:?DKPUZ_dinsx{{}~~ !(-28=BINUZ`ejqv}  %(,/26; >AEH#K*P/T6W;ZA^FaMdRiYm_pdskwpzw}| $+06=BINT [ ` g m r y    " & + . 0 . , , + ) ' ' & $ " " !        ! ( - 4 9 ? F K P S X\afinqvz|wrmfc_ZWROJ E A<941-(#"' *.36;>=;841.*)'%%%$$""  }xslgb]VQKFA<50+$   ~yurmjea^YVQMJEB=961.)%  zvspnigdabba]ZWXXSNIDCCDFHHI}KxMuHqCq9p5n0l+i*f-b-a/_5\7Z4X4R-P/N+M-I(I&H#K#K!H!H I HKKD FCDA?<<9:544002//+*(&#!    %/:y:h9S:=:.4/!c_YPK*;*72,7!7PXtXoUiWdf7l+ib__]]bXDD&mokojkope               # ( - 2 8 = B I N S Z _ d j o t y       x s m h a Z W P K C C A A @ @ > ( "    ( / 2 < R U \ a i n r } , 2 4 9 6 < ; @ A F H M K A @ @ E A < ;;>A&@,A3E=E@>@4D2G4LCOFSM[P[O]J`K`P`Wcagaj^m^qfqmrsw|~~{wrh cbcec^^`^[X^e!h$h0t@yB|QySvQgX[JQB?8;,5) "& , . 1 : : ; O N O Q N N S [ X S N N D B = = 5 1 '} !z p r n h Y J A 7 * # ' $* +* 0 0 + . 3 D E" B" I# J" Q T X V Y ] h Y X ] ] c o v w m w  { | { |     y @ 8 3} 0} .~ )} &s &g e e b X P F #          {yyxvvtts|qwqromnfnal\lVjQjMqEs@x9{8;@@HGEEBBC;4) u u4x>u@sCnEiHdK_OZRUUPYK\F^Aa<d7h2k-n(r#swz} ~ytoje`[VQ L G B = 8 3 . ) "! $ ' + . 1 5 8 ; ? B E I L O S V Y ] ` c g j m q t w { ~    } x s n i d ^ Y T O J E @ 9 4 / * %                             ! # & }* x- s0 n4 g7 b: ]> XA QD LH GK BM <P 7S 2W -Z &] !a d g k n p s v z }                             % , 3 8 > C E L O Y ` c m r t z | z |  ! & 8 F U b n v x x y              , 6 A H M _ n    & ( - . - + - 3 = D G G L ] b d _ e g o q v       O o      ~         ~ v e l l e b ` [ Y Y ` ` `% [* S1 X< TP [k Qn Lx Xz S G L N Q D ; 8 1 + & $ $ & ) 1 8 ; N V [ ` m w                        $#&-1A1K6W8\=_@i@sBuBGDEEIIONLJLTX[`"`%`/[4Y9[B^C`BbE^J]\bkhwljhjhjjljhj]XSQ OQV)].^5b<cAbFcXloosrqvs|}|yvtqoooomljhlllrw{|{|{|yyyrqroq r m l j h eh%m4o7l<lCjMm^j^gaca`W`P`K]J[O[PSMOFLCG4D2@4@>=E3E,A&@A>; ; < A E @ @ A K M H F A @ ; < 6 9 4 2} ,r n i a \ U R < 2 / (      " ( > @ @ A A C C K P W Z a h m s x     y t o j d _ Z S N I B = 8 2 - ( #                     c O @ 8 3 . ' "                      n k \ K F D > < 7 2 / * & !                             0 L Q X ] c h o v { ~ v q l e ` Y T O I D ? 8 0 . + & "      y r m g ` [TNIB=60+$ }|zwwpskpdm_iYdRaM^FZAW;T6P/K*H#EA>; 62/,(%  }vqje`ZUNIB=82-(! ~~}{{noqt %*/49CEMRWiNN"P0P8X?X@ZDXL_O_TbQgQnOpXlYi]p]q]sbseqgqhugvg{egjlhjhjotv{ywwtrvvwywv   $'.1=BEGLRW[eehea`w[XrXuOuNwBz8w6z0|."~~|pkkfmppokja\OMQLJGG@=9==;6*)" }|zurnhcTOJA4/- }} {{{yyyyxvvvtttssqoonbxixinnkogydyZ~UNIHKKDAA:959744:<>>?ACA:744:<?> ?>><">-:/<1>4:6<7?9?<I@IAFFFJAOAR?T9W5\/m&n(m+p-p0s2u4|4-00252475722+%!#&#!## !#!&##((##%(! !  "$'.5:=DIJQTVVXYVL2J2J4E2LCL_DX@Z?X8X0P"PNNiWRMEC94/*% tqonebx  ).225223<:IXgqq"#'-1149>CHMRY^chnnrx|}&,03@@DILLJJLLLLLLLL"L'L.L3L:L?LDLILNLSLXL^LcOcOhOmOrNvL~LLLLNNLLJJIILNLLJJIDEJLOSVVSXY]YXVVTQJID=:5.'$"   !!(%##((##&!#! ##!#&#!%+22757425200-|4u4s2p0p-m+n(m&\/W5T9R?OAJAFFAF@I<I9?7?6<4:1>/<-:"><>> ?>?<:447:ACA?>><:447959:AADKKHIN~UyZydognkinixbx[lUgLdGdDaA\?FADAFGALAS?]4`*]%] bb``[ Z&_*_+[2X5V9S>LAF?BAAA?CB < 732.$  |ql^]^]VSQJIB;60..)'!|wssmmc^UWTTPOKKKJHE<<><997642//,'##"  " "      &)35=BJITVY`etvy"#%*124;7AACEFJHEKFAAMRY\\ZZU O&R&Z+W/\0a<h>m?n?rCuDuDrFsDuCwAz<s:u:|772/((&&00KNXZ\ZXXURRUSU\filxx{ .8888::BGNT[bhov|  *((#(}&z*v*s/p/b:b>\<X>XMWNUMRSRZMdCg<u<}75}7{9x7x4v9f9d7bbfpv {vwywvvrtwwy{vtojhjhljgeg{gvhugqeqbs]s]q]pYiXlOpQnQgTbO_L_LCE2J4J2L2VY]YXSVVSOLJEDIJJLLNLIIJJLLNNLLLLL~NvOrOmOhOcLcL^LXLSLNLILDL?L:L3L.L'L"LLLLLLLJJLLID@@30,&                  $())--5<GKKFFIIKI K L PSQNSVZ[]_``elqtstvsvx{y}}{{~  "##""'*21479<FHMRRPPRRRKJKOPMFFKRY^chkmp       !!(7=ABFIIF G I SZ d ggiedde"e$d+g)j&l$q"s~"&~,~.10+'$!         " "  "##',//246799<><<EHJKKKOPTTWU^cmmssw|}|xrnnhc^YRMHC>9411-'#"qqgXI:<322522.)         r p sw z|z|  ||zzxnpuurihc^\YWWTRPMJFFA@C C <977 2 1 , * ( -,-*% ' '   %' *,- 47;7 7 ; C H J R Z\kmi p\1%           {oj_NK?70+&   &,0355;=GLQQSLIIINTY[`cghjhmmoqvw~{~~~~wtmc`\[WT[\^^\\YRMJ=9961,%      #&*}-4z9x9u<u:p>n>k7g2b7a:\?]C]DZHWISRMUMZHaSgUnUuPzNPRRMHDFF<<9:>>AA>?::7KKSU]aadbdb_a_babdg illsx{   %,14;BGL Q RRQOT"[ \\[[[`ekrw| $).3:?DIPUZ_djoty"',38=BGLQV[`ehkory~ #(.38=BGLQV[`glqv{  %*/6;@EJOTY_dinsx}       " ' , 1 6 ; ~@ ~G }L }Q }V {[ {` {e yl yq xv x{ x v v v t t s s s q q q o o n v }                          % * / 4 9 @ E J O T Y ^ d i n s x }  ~ { w t q m j g c ` ] Y V S O L I E B ? ; 8 5 1 . + ' $ !  " ) . 3 8 = B G LQV[`ejoty~ }zwsr#n(k-h2d7a<^A\FYKUPRUOZK_HdEiCn@s>u4x uu )4;CBBEEGH@@;{8x9s@qEjMjQlVl\nanfomqrqws|ttvvxyy{xsnid_ZUPKD?:50+$ |wrmhc^WH>6'$~tja`/.daKF4( |vohb[TNGB::8888. {xxlif\USURRUXXZ\ZXNK00&&((/277:|:u<sAzCwDuFsDrDuCu?r?n>m<h0a/\+W&Z&R OUZZ\\YRMAAFKEHJFECAA7;421*%#"yvte`YVTIJB=53)&   !$'+01.,~&~"~"s$q&l)j+g$d"eeddeig g dZ S I GFIIFBA=7(! !             I R  " 4 9 T ^ k t |     , 9 = > ; 6 3 , $ $ * ) *# *( '< ,B *D 'L .P /[ 8b 8y M W [ ` a ` ^ c ` ` m z           "  # , , !4 .; AA KM Xf gs q                   * M U c n r x z                            " $ $ & + 1 8 ; D Q N L Gz Sx Xn Lk QP [< T1 X* S% [ ` ` ` Y Y [ ` b e l l e v ~         ~      o O     v q o g e _ d b ] L G G D = 3 - + - . - ( &      n _ M H A 6 ,              y x x v n b U F 8 & !| z | z t r m c ` Y O L E C > 8 3 , %                     y r k e ^ W Q J C = 6 / ) "                         { u n g a Z S M F ? 9 2 + %           C^p~-2Kdy    |}z-r-pCfEc;_9Z6Z6\1\,\*W%ZW"U'U-U1W6Y;Z@\F^K_P_UaUfUkUrUwU|UUUUUUUUUUUUUUUUUUUUUUUUUU UUUU$U)U0U5U:U@UEUJUOUVU[U`WgWmWrWyW~WWWWWWWUUUUUUUUUUUUUZ_dkpuz          & + 2! 7$ <& C' H) N) P1 P6 P= PD PI PO PV P] Pc Pj Pq Pw P~ P P P P P P P P P P P P P P P P P P P P P P P P P% P( P( W( ]( d( k( q( x( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( %( ,( 3( 9( @( G( M( T( [( a( h( o( u( |( ( ( ( ( / 4 9 ? F M S Z _ d k q v {                     } z v s p n k g d a ] !Z &W -S 2P 7M <K BH GD LA Q> X: ]7 b4 g0 n- s* x& }# !                                                       } v n o o q q q s s s t t v v v{ xv xq xl ye y` {[ {V {Q }L }G }@ ~; ~6 1 , ' "        }xsnid_YTOJE@;6/*%  {vqlg`[VQLGB=83.(# ~yrokhe`[VQLGB=83,'"ytojd_ZUPID?:3.)$ |wrke`[[[\ \"[TOQR R QLGB;41,%   {xsll igdbab_a_bdbdaa]USKKDA7/*##    ")*,/469>CGHJHHHLMOMMJMQROLOTW[^accwrumzlzggeb][VQIG@~?;:630.)'&"~zywzyttrprtprptwwwttmWRJEJCW%R*T/R2U>UEYHWOYUY_Zm_w_}a__dikuwx}       & 0 6 ; @ E J S X Q O L @ = ? B N T ] b o r v     ! & . 0 5 3 5 : @ D I! T* X9 XC ^F lM qR vU g q                  % + 2 9 ? F M S Z a g n u {                         " ) / 6 = C J Q W ^ e k r y             { v q k d _ Z S M F ? 9 4 / ( ( ( ( ( ( |( u( o( h( a( [( T( M( G( @( 9( 3( ,( %( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( x( q( k( d( ]( W( P% P P P P P P P P P P P P P P P P P P P P P P P P P~ Pw Pq Pj Pc P] PV PO PI PD P= P6 P1 P) P) N' H& C$ <! 7 2 + &         zupkd_ZUUUUUUUUUUUUUWWWWWWWW~WyWrWmWgU`U[UVUOUJUEU@U:U5U0U)U$UUUU UUUUUUUUUUUUUUUUUUUUUUUUUU|UwUrUkUfUaP_K_F^@\;Z6Y1W-U'U"UW #%,-/26;@EKPRPTUTRKJMOR R'P'T.U,Y/U3T1O4K6O6P6R8O=K=H9F9H@JBFEEHCL@H;J9H6J2H1M'O#M%Q"TQQR WYVYVRMLRTWW[\^`hhkoorpuz~{{}}y{xvsvtstqle``_][ZVSNQSPL K I KIIFFKKG<5--))($                  zzrpa``ROJG@!B$@0.:%INPV_bddeeillgeinsxxvy}~{vvw{{{yvvroomgb][Y[ Y VQQSOE!G!I$L&I.J.L1O5O;V@V@S=T8N,I'B+B,D.@3B:I:E6D5@.=386;;???;;;6@6B8B6E6I?L@OEQDOBN?L?J=J8L8N8I1I0O0O,L.I.I,J)E,D.?)?&;';&8)5)5&6!=BD!G"N'`3o8DThloy~ #(-7?FSZZadkpuv  %,1699=JMRY\\^^\[TW[\`cmtw~~~~{~wvqommhjhgc`[YTNIIILSQQLG=;5530,&   pmkhc^YRKFFMPOKJKRRRPPRRMHF<97412*'""##"  zuprookhh`^\[WWTRLMRVYVY WRQQ"T%Q#M'O1M2H6J9H;J@HCLEHFEJBH@F9H9K=O=R8P6O6K6O4T1U3Y/U,T.P'R'R OMJKRTUTPRPPTPHA>AA;<@CHPPWW\^adhiprxsnid_ZZD:9#!    {z{vsnida\WPKFA<72/(# %+&!%/2599<>752! ! ! # !      "%**/1297716;ACJJMRRJHEEFHJJKMPRTTWWYZZd\\Z\^ac^^aca_^\ZYTTcruwsuwwx|}}|    !#9:DZZ_dinsxrpihda^\WWPPHC@<;AA>AHPTPPKE@;62/-,%# xuppuz|urruzwsprsrppsu#z%}%%%%%%%%%%%%%%%%(-27799<:9:?INPID'A.A3?6?;:=9@7G9O4T2[/]-b-m+r-{0|244:?DHMNNMMI|HtDqAgIYRVUSWIR@U:]6b1d0d)d&gb_ bdbZNNNNNNPPPPPPPPPPNNNNNSUXZ]_XUZ_gfgifdgklsxkgd}aziukwsuvxx|vsvxvz{{{}xx}zx{z}z}}|x{xzwxwusisgrsrzrnifaa^UJE61211/'6Khr}).6CJEJRWmttwwwtprptrprttyzwyz~"&').036:;~?@GIQV[]begzgzlumwrcca^[WTOLORQMJMMOMLHHHJHGC>964/,*)"    ##*/7ADK7::?>AA>>:9<<FFDHMRRPzNuPnUgUaSZHUMRMISHWDZC]?]:\7a2b7g>k>n:p<u9u9x4z-*}&#    vupkdaZZSF?7-(# {vqlg`[VQLG@;61,&! |xuur s%p+p/n5m7n9n>uAwD|C}DC??500/-(*//0-42/-/0/279<><>??CAFFFA??ADAAFFIDFAC?A>77<::995577>DINNNNNPPPPPPPPPPNNNNNNZbdb_ bgd&d)d0b1]6U:R@WIUSRVIYAgDqHtI|MMNNMHD?:4420|-{+r-m-b/]2[4T9O7G9@:=?;?6A3A.D'IPNI?:9:<99772-(%%%%%%%%%%%%%%%%%}#zuG"I"EDGGJLIIISSVX!Y!Y$]"^$c"]]YYXVSLL O T]bcc b YX Y]^gjqqtw rrwy{oryy|~|~|~    !""!         "&+,)$!&$|x| !&,16;@GLQV[`glqv{~yolhTDo8`3N'G"\ި wtzޕ1ރuޣ6|ރ Kއާު2* ߢ-<8%D&N<ZC7Xߧ߶߲ߌD߭߫~ "*6J;<>COT\b\UT5PgOM@;;9p9246 EcWkz/xiZFRdC[+".3=J TB^er{yqw qoot~hWJAMTf\iZUWcUh &;]q~2>5!Dv=h-DX_e 4>671('/*##x&<#(%*-2449>DD2?I92+*#%2+6/12,45CHPWZZXHZW]s]aaipqszvv"s:vEDLrv}{}:AKHa3;.%ayrr=KUe2Of| .T{2ASnM Nx$15BY057-$H$_)u)$t[cwzkaez $(-NedQNb~{HH_dZ_fnn} EJ]b`~ (#2?P}??XW\ks}pbWWbZ]WDP%%16=@@=;808Z6b.p.*,1//6 ;8*;;>B@*CHJRTWYv[aY7\!Y[kt~zy|z utt-|qzrtwwyuz|=|Q^|z|yokkpkf`gY\ceehhefjk#r(zy<wJjTfdfsjrk}khhfjmfc1cLa][mkkmru%  K_{}{zfwfptpohe^\\'`9fJfahhmptr|||of[WRHGHH<GXHgGyC~@{>~, $'O/r8r=xCdMYT^\\^_`|`YTTW\mwzrh`)[.VIOS@J>J;Q;g@|HEGG@*'%%* .&.+*0*D3q69916; 94>3BEGMGTC^ChHjLuMLQRVTY`5a[^`cjow1z<r#)2ADDXelt{||sa^OHF>MOC9 (UYU\dn  " #1>@EJMORTRTY^\YZ^ikrsx|     &,;;NTNNTYT Y X `bTIT'Y+V.b,j+l){')+03~:;:=;??;35:=ISSNNSTVY^]YX[`bbeghhgcb cg hhjml o oqvy{~~#<INNSZagabWRU_bu{k %$$33.3/;*.6;BEJ^t   !!#%(/4#725G9L:7-(#%&%%&0552/-/-*y(&~#l!e!SND50 .$   ~~zkfRC1'%,) ~wqlhgecec`]TO@86,++'+.0531 8 =@ @;3"1%3*8.@*B,B1?;?T=Y3M,G);!6)!$,)! $&&""!zpp s]US:"2'0$(" (*#     |vhmb^bvvrecj|^uluys{fTcS_Ycgcy_~cniida\Z\T~PlKoKHCA>;|7211,*-#""%%'-4441469> ACE>AXAk>k;b@P9(6-, (#>NK<?7?*  + FHH924?R_b_bk{xsqvvtoljib`]][LKKKNSUS ND ?=:8 01..-+)(*1,$##   )>C>,*;@@ELMME)9GO831.GRL@,3LW\a`^QV~OyRc~u~|te`aweokkmam^e[\YWRYE`Hf@a@\6`"jmppmkfccf`^\YWYYVOGGMOJG>CL63488O8T4T1L,H*;'C3%$ $"$  $);LMG)/.}_PHM]]N5-#HM\U/#RZX&pgk{gjfb_o\cMHImCT>,< 99:?CHxMyNtMdKQI8MMKMNU|W\WZasf db]gU Ap(!5 t T~tYj^XOB:J658=f=Y:F3@Z@'CHYms &+Auf9c=5 dwkd8YO9w@ߵ ?d7p ߈߽7 $'dw*7k0 ;aV @J-6 9| ^C,3,6=NV[[^bbcmy ~C~hH;1>T2 +0 9906-N<>?CCjAQHmKeMhNMIMSW\(aupu }*ct}|}0sQNNiy - 5 g"| `)Y*O)D 5kdhs)/131..)r*i.f8|BR\\ahjh;eQeYmrotu||~]Ye9HlaC24!:(_(z(}u x58=?DFIN.LMIOFHD;A9=V8j0~)##$DAPg]`bb_VPL5!! ((#\(x#(&+-3&$&.56?X`ho$|((!  #!)-.F5d8DKU V3VW_di!lIlsx#7}AxPyc^_d~oe3`gb|`_`b~Cs"; +="H~vqs$ % C /  ) ]    # ( / 9* >E @U >r ; (   &B|~~ !+99DHFNfg{xsx{}"*-6; <>*JfJzKU^acfhkmkims5rIrbxi|t} (RYZY\p|0@  +;DL]y$&57:M?=?BGGDDDJBeDu@=861!$ 3U`dA7+$&-.FD::KZ]_bt *29>>CKW}ETbh!U.@L^|}} -25|:k5a7\:PPCL7A1P*N#D&?FF<)78.{]ZILFsGFD82+(5K2[@g>nCy 7KYcmx0;S|/?Fkp lqpx"%(p,i-i-p1i7n<@CFCHFCCHO_chkp z\|k|}}   + = I P Z e !;!\!!!!!!!","6"G"L"L"Q"l"5w"3"0"+"$"" """"""""# ###D#I#W#d##########$3$=$E$T$[$h$$$$$$$$$$$$$$ % %% 0% 5%3%#%"#%$&%!8%"D%N%b% j%n%i%l%%%%%%&&&&1&9&<&R& h& w& &&&&&&&&B&L&N&L&J&L&L&J&?&:&=&B&J&Q&Q&S&X'['X)'V,'I.'6+'00')0'):'&='+N'0w'.~'+r')c'&`'"e'$j'"q'!v')'.'0'0'3'5'6v'8y':'=';';'?(E(G%(G+(@M(BR(@](=g(:z(;(I(L(L(I(E(?(=(:(8(6(.(.(,)&')$4)C)\)y)) ) ) ))**(*5*B*P*Z*]*l*********************++ + ++#+(+-+ 4+<+/+/+1P+;+D+E+N,T5,TL,SV,Ge,Do,6,5,',$,",!,,, , , , ,, , , ,-!-H-b-k- s- }--------...8.=.G.W.p.....//)/0/:/F/d/}/////00 000#0*010F0O0K0O0^0i0|000000000000000000011101Q1^1o1y1 1 111111111112*2:2>2A2N2k2}22222222222 22!2!2$2"3$3+3+3+63&T3$3)3+3'3'3+3.41$4104054.I4+Q4&V4"i4$n4+v43414.4.464541415. 5'5' 5$#565;5E5R5d5k55555555 5 6 66,656J6V6m666666666677#777<7?7H7Z7s7777777778$8,8,848H8^8m8w8|8y8z8888888888888888 99$9-9B9K9`9wj9p9n9r9p9f9Y9U9Y9U9T9K9H9E9F :H:K":M9:PF:OZ:Jp:H:C:A:A:J:M;M ;J;C ;<;-:%;1;?;B;Q;"o;;;;;";<"&<#*<*+</(<1%<4<7<<<< <>#<@!<E <J<O <P<F7<>A<;N<>X<>a<9p<2v<2Z</_<*k<%f<#X<"W<p< <<v<<<<<<<<<<<<<<< < << $=J=Q=V=[=h=e= j=u========== >>>>>>)>->?>Q>j>>>>>>>>>>>>>"?(?,?4?4?9?>?!>>$>+>+>&q>"q>>> >>>>>>>>>l>g>P>5>0><>>>>>>>>>F>->B>Q>n>>>>>>>>>>>>j>x>>>>>>|>|>x>u>u>r>r>s>r>n>m>i>i>f>f>a>W>T>R>P>K>H>F>F>C>E#?HR?Ec?<\?6?-?(?'>%> >#? 9?@?n?u?m? ???ߩ??????? @@????!@]@w@ߟ@ߩ@ߔ@ߺ@@ A@A-AZAgAZA4A+A9AXAAAAAfAqAlA߂AߏAߣA߼AAAAA{AxAsBs'Bo;BnfBi߄Bg߶BbBeBdB]CPNCK߰CG߿CD߹C?CB2DBPD?aD:pD7fD5|D5ߥD0D)'E)YE(߈E#ߤE$E#E-F0FF5F ߵιH_gKߠٻH8'+{ޞ˾ZG}΁QVn\pcihlmxrorpmkmpppmjc\[W[^` \1W6O8LHGLBC=$93*388G6`1e1j3k8m9y@@>8/.)$   pcG>"'')GOOHBCG}(Ё (#2$3%='?,:.-1)338 = BBq==9;8;31,3@1O4p43,$K-~U($05=??M=/:".)"׿ʿտٿ)yKq S$FAzAAAAAAA.B1B'BBBAAAAAbAIAKAAA2A AA@A AA@@@ A0A*AAA/AA#A-A/A5AFA~ځl`?2pkjrm=) )@;'I% Mav$*4BJ^corjaCBE;@VVey+?Vgv{xgeSA<BQyjVL~၎yrthShDk:y~$1@IV`o{w~~wc\TG;;>@Rq\UaRfHjHtUonrutuz||slz~ぱ:KbnqdIDIeiPLF5+   h\Y[uecYHB;qu!  (-.+# *@G R [YRB#$)035'5G0a-m$y##()+..07o2#    oX {sW]]KWf{䁢*2^zx|xxacrukdWOHJH9恿 !&&/0IZZUIMFMW\U\]MX\ikuu{a\F?>54%聊 />BLQ\r{w}rorkhmok[Q@1 0AIZly{~{so_LKND:55=3.-!+..( a\^R%^$h$u"""}unia9>>CDHNP WX1W6U;WAXJWTUURUPYRcNMHC}?m?cCUCEF<D4F-C(C">99]XXPGADPIQPG=.-5FD<? F NU_[_n qjolt{v{tb]ぷm$5&fZkkx>r]ID@3k, N:DQ+5DJ(Tu]`b`]|p_Y|YO_dn|xd}<uw@0,BNXj-3L큊DqhSB?=L;3,))?+n+' jz@umi]dajcdir+|:GTh{9T (((( ( (((((((((() )))) ) ))((((((((((x(p(m(r(p(i(h(h(f(h)d(f(a(\(^(\(Y(Z)_)i)m")s'),).)1)9)h)|)|)y)~)~)z)t)m)V)`)f)p)))))))))))))z)y)y)t)~))))))))))))))))))))))))))))))))))))))))))))))))))!)")+),)+)')))$)!)))))))&)))!)")')))+).)+)')')"))))))))))))))))))))))*!*'*.*0&*.0*=7*D:*GG*EL*DN*GP*GS*OV*Q`*Vb*[g*^j*^s*]x*^y*h}*l*m*j*l*o****************************************************************************************************** ****!*/*2*/*+*-*0*4*2*5*5*7*7*:*:*D*D*D*A*?*>*>*A*C*C*F*H*H*K*R*U*R*K*I*K*M*N*S*X*]*a*b*d*f*i*n*k*_*a*f*l*l*p*z******************************************~*~**~*}*}*x* v*s* o* o* s*t*s*o*l* `*,Z*4X*3U*4V*9P*>L*GK*JK*JP*LS*OQ*MP*OK*OG*MF*LI*HG*BK*BI*@D*CG*HG*GD*HB*L=*O?*VD*W7*Y5*[5*W:*c3*`0*c+*a)*^)*\&*^*f*e*t*r*t*t *w*w*w *z*z*)))y *z *))))))))))))))))))))))))))))))))) )))))))))))#y)!r)$t))k)0e)7c)7`)AW)KT)SR)SO)LQ)KO)NO)QM)UO)ZL)ZJ)]G)]L)bC)l@)tE)tG)tJ)vM)O)M)Q)V)T)V)Q)V)V)V)R)R)V)V)V)W)[)\)^)a)[)`)a)a)c)c)k)p)r)t)r)z)|)|)))))))))))))))))))))))) ))))))))))))) ) )#)()*)()-)/)4)4)6)4)7)6)6)7)6)4)1)1)1)-)-)')*)-)*)*)-)1)2)2)4)1)/)2)6)4)7)4)7)4)7)4)7)7)4)/)-)-)1)2)4)4)6);)<)>)A)F)F)K)O)P)R)U)T)P)R)R*U*W*U*P*R*U *W *Z *Z*\*Z*^*^*a*a*d*d*f*f*h*d*h*h*d*h!*h#*i$*h(*d)*c(*a(*a+*c+*d.*_-*c0*d8*f5*d2*h2*h3*k.*4(7(9(9(7(9(7(2(2(4(7(:(>(A(D(C(>(9(9(:(<(<(>(>(A(>(<(:(:(<(:(9(:(?(?(A(A(~C({F(|I(~I({K(wM({I(wD(wC(vF(oF(oI(jK(lI(jH(hD(cD(bA(bD([H(TH(TF(IH(EF(BI(?I(?R(@R(EX(B](?_(@f(If(Tk(Ti(Yl([k(Yl([n(]n([s(Tx(S(O(J(?(;(8(5(5(1(0u(&n($n($q(u(z(z({((((((($(.()()("((!((!(!((((((((o'x'''''''''''''''|'y'v'e'`'^'L'J'E'?'@':'6':'6'5'0'+'''"''''$' &' +' .'0'0'.','+'.'0'3'6'8';':';'@'I'J'D';' 6',.'>+'K&'R!'T'R'O"'J!'H"'F!'H'K'U'Y'^ 'w '' '''''''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& & & & &&&&&&&)&+&,&.&8&?&@&?&B&G&O&S&X&^&`&^&^&b&g&l&t&&&&&&&&&&' '''''' '' ' ' '''''#'*'/ '2 '7'9'9'9'>'D)'H+'D1'HI'IJ'MJ'PL'KJ'HQ'Cl'Cq'Ft'Aq'9r'5m'2l'(o'h'l'm'l'j' h' g'j'l'j'g'c'c'g'e'g'g'l'm'l'q'r'|''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((( (((((((((%(&(%(2(4('t"'l)'`.'[1'U3'F6':5'76'71'-3'(6'5';' :';'8'5'8':';'='@'D'D'B'B'G'I'I'I'N'N'O'J'L'S'O'L'J'L'Q'N'J'I'J'L'N'L'N'T'Y']']'^'c'g']'X'V'V']'e'|b'zb'yg'rm'kv'hy'['O'M'G'9'4','"' '''' ''''''''''''''(((((+(5(>(P(a(d(i(p(s(s(v({((((((((((((((((((((((((((((((((((((((((((((( (( ( ( {( z(p(%g(1g(>i(Tg(^l(^i(ak(ka(w](|_(|b(b(d(g(d(d(f(i(i(k(n(i(k(g(i(X( R(H(#A()9(.-(<(D(L (`(j'o'n'l'l'o' & &&&&&&&&&&&&&}&|&&&&&|&z&|&&}&z&|&z&|&z&w&w&x&}&x&u&r&p&n&k&m&k&i&h&k&n&m&i&h&i&n&k&m&h&|f&zf&uc&ma&i^&c_&Y^&Ua&Ta&W^&Z\&Y\&>c&6d&4h&2i&2k&/m&-p&1p&/r&/s&2u&6w&<u&@r&Aw&@x&Az&A}&C}&E&H&F&F&C&<&<&>&<&6&9&6&-&-&(&"&%& &"&%&"&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''' ' ' ' ''''''''C$9 $/ $$$$$"$%$1$8$9$9$9$9$8$ 8$/$ 8$;$=$=$=$@$@$C$C$B$E$C$G$H$J$M$G$@$=$G$J$L$T$V$\$\$W$W$Y$[$\$^$\$^$W$W$R$R$T$W$`$`$\$\$[$[$Q$R$Y$Y$`$c$e$a$^$^$a$j$k$m$h$a$e$f$m$r$u$w$y$z$~$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$}$y$s$n$n$i$e$]$`$b$i$n$s$x$$$}${${$$$$$$$${$x$t$t$q$o$l$e$b$]$Z$_$]$Z$V$Q$S$Q$P$Q$P$Q$I$=$=$3$-$+$&$$$&$!$!$$$$ $ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$|$z$w$t$u$u$p$e$c$[$W$C$=$>$>$E$G$L$R$^$^$[$^$a$c$a$`$^$Y$W$[$c$u$r$t%p$f%c%c$Y$T$L$C$=$;$9$;$B%G%J%M%O%M%J%G%@%;$8$4$6$3$1$1$1%;%@ %C%M %R%T%V%Y%T%R%M%B%C%B%@%@%; %4 %1 %/ %1%3%/%.%, %* %'%*%*%,%;#%E#%O)%M+%L3%L.%H)%G(%C&%>&%C)%6(%.(%*+%*.%*2%42%93%@7%=8%43%33%38%>=%E?%J<%MA%J=%EA%=A%9?%6<%3<%/8%$8%$B%%G%,P%;_%>`%E`%Le%Ve%Og%Mj%Wt%Tt%Vx%Y{%Vy%V}%`%a%f%c%`%k%m%o%z%%%%%%%%%%%%%|%w%r%r%w%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&p &t&t&u&t#&u%&y*&y-&w(&p#&c"&[%&L"&G&C&B&@ &;#&8*&4,&1*&1-&)-&',&%-&/&1&/&2&/&/&-&/&-&2&6&4&6&4&4&2&4&6&4&9&<&>&>&A&C&E&E&H&F&K&F&C&@&<&>&@&@&C&E&H&F&H&O&P&R&R&R&}P&{O&zO&pP&nR&iR&bT&bP&aP&\R&]T&ZR&XT&XY&WY&WW&SW&RU&PW&NU&MW&IU&KW&IY&IZ&MY&RY&W\&_Y&k\&qZ&u\&zZ&Z&x_&p_&ka&Z_&Zf&Xd&Uf&Ri&Ni&Nm&Km&Kn&Cs&Ar&<u&:u&<w&9u&0w&2z&0z&-z&+}&%& &&&& &&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&y&y&r&r&o&m&g&b&]&Y&Y&T&V&T&Q&N&L&J&D&B&D&@&?&=&;&8&5&1&3|&.}&.|&1z&0u&&w&z&z& }&z&|&x&|&z&|&|&}&&&& &"""""""""""""|"u"s"w"x"""""""""""}"|"|"""""""""""""""""""""""""""##"#""""|"z"z#|#"## # ##### ################!#&#&# ### # ###&#(#-#0#4#0#/#*#+#*#+#/#2#4#2#0#2#7#<#A#A#?#D#H#M#S#U#Z#a#a#d#f#f#b#a#Z#X#U#W#U#R#N#P#U#_#d#k#k#i#f#_#]#N#S# U# \# ]# ]# \# Z# _# _# ]# W#& K#" K#+ :#) :#" :#' 7#1 5#6 2#8 -#6 (#5 %#6 ##B #I #I #L #J "Q "T "T "X "[ "[ "Q "N #N #O #V #Y #] #` #^ #] #[ #V #L #E #@ #: 2#1 9#+ D#$ \#' _#+ a#1 a#6 \#5 W#8 Z#6 a#. b#0 g#, b#" b# d# g# i# b# a#f#l#q#u#x#x#u#{########################################x#x#u#w#s#p#m#h#a#R#E#6$/$$$ $($- $; $@$C$I D @ ? @ ? = ? ; : 8 6 6 8 : ; ; @ E I O O Q S T S N N G D @ = ; ; : ; : 0 , . . 3 0 , ) ' ' & $ $ & & & !                 $-.8:??DUeedeeinoos{~     }xxssi[ZSQPLGD=:7522.++)(&)$   }$u-p5f?cFaDTNMUFZ;g,y*%#(-2/67 ;AA H,M(O*T*c9n<s>x;z6}621,'""   (*((%'*-/11//,%#*(-*1266;;>A>7762/;;;>AAFJFFJMOMORZ^dkrzz||xrnkhd_ZURUW^dhihd_YWzUwUx^wdxkwnxux}}|uzsrmmkhd_^Z_achckakaf^aZYYYYaUZM^O_MaHiA^>^<_>cCcEhCi@f;f<i@i@nAp>s;s;u7u7m4n4r1s2x1z/x-s*w(u%u#s'z#xz"||z|zxxsrnkikhffccaddiihifdhfikiimpsxikpsx|zupnmnrs}n{n}rsrqsoplpgmgpgrbpbrgsnxjxn|qs}x}}tslnligeg}d}b}dz`z]|_][ZXQSVZ}VzXxXuKuGx?|?8757<=}<z7x2z.|+|))&$#$#!#$}|    ~|~||ywuttwwtjhecVVRLQROHGBB@>4*%$$"         }zvq!g&X'W)Z,Z.X,U.U1S.U,R+S+H,C.C0?.>0>.>,C,:,70*1565:=DE@?:==ISVYY^`bchggjlmghlotrtjllor{yqqmTE8853 }||z}|zpH2+/0,2'I(M,M-N2b6d9iAvEHP^aaikmnmmwz    %)'$ "%**13:/]1c/o/q)o'j"jr)q.w.y*w,w*'*,,13@;;>CEJQ[[\`!^(a*a*`-`-a5cAa:a>`?[C[DWDQFLRERGUGUHXJWLRLRMUO]OWRURRVH\A^?`A`XW]WaYfYzOMMHCHORRTORROJJHEGHHM TT"\)e1t4w3y4|4464/%$/8B@BC91*1==ER\`eeefeacceeca^ef h j m m y& ~$ |& ~( - - + - - - + $ ! ! # ( 8 = U ] ` b j n }                    & - ? : : < < = I L U!`!j!v!v!s!v!{!y!x!x!{"!'!6!;!>!E!U!n!T!P!T!T!U!Z!Z!\!\!Z!Z!W!R!M!K!M!J!H!K!F!H!H!E!A!@!>!>!A!C!A!H!H!M!T!W!c!m!n!m!k!m!h!h!^!^!a!a!i!r!s!r!}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!!!!!!!!!! !/!2!C!H!O!Z!d"k"m!"p)"u;"u?"zL"T"V"^"c"e"h"q"q"o"b"^"["X"V"Y"]"`"c"h"h"q"t"v"o"o"q"o"t"|t"xr"wr"rt"pt"rv"ky"m~"p|"w~"y"{"~"p"r"w"z"|"x"z"s"n"r"w"}""""""""""""w"p"n"k"h"i"k"m"k"m"r"r"z"z""""""""""""""""""""""""""""z"r"m"k"m"n"r"u"w"x"u"s"r"s"x""z"u"s"p"s"p"r"w""""""""""""    " "    ! $ ) ) + + 1 B ? @ B I Q V X X V T T ^ ^ Y [ b h g h o                                   & + 0 2 7 > ? < C H C D K k q u x x }                                                        ' ' ) . 3 4 4 8 ; > C E E @ ; ; B E > @ C B E E H H Q J| Hy Jv Jm Mh Mg Rg [e ^g ac ^c [^ Y] [] ^X ^Y aV `V \T \S cT aT `V aS eT fQ fQ jT kX kY mT mL kJ tL wO tN |N T X V T Q S S O L L I O Y X T N L I D B E D B @ D G O T V S O G G I                  ' ' &   " ' + . 1 5 5 8 ; ? ? : : + $   $ $ ) , 1 5 6 : : ; ; B G J N T V ]                  | t p m m h a ` a a ^ ^ [ [ V Q O T Q M C @ 9 "         & & 4 < D R f v {                    } x v q n n q s n %n /p 4n 9d @b Cb Oa R\ TZ WZ \Z hb wf zi n p v v u s u z                & ) ( - 2 5 8 3 7 7 : < A A ? =} Fk La NU KP LK QC Q9 Z4 U/ U( X& [ _ d l o q q x                             9 > E J _ f i r x |                                               ' , 1 / 1 3 4 3 9 ; = C H L W o w w y | u u w | z z | ~                                                     ! & ( * * + ( & ( / 0 5 < : 5 2 + 9 7 9 < F M R U W a i k q s q l l g i p } } { g b ] [ ] [ X V V X S O O N I L N J I G E D B @ = : ; ? ; 8 5 0 5 6 : ? @ @ B B ? = 6 3 + + ) + !                                             " " '              % * ( &      ! # !  # # & & ! # % & ( %# # % * + 2 7 5 0 - % %                                                          ! ! # # % & ( * * - - 0 0 2 0 2 2 7 4 7 9 < < 9 : 9 7 5 7 9 : > > < > A A D H H K K I I K K M K M N H H C C D C > A ? > > < ? < > C C > 2 &  !                                   e e c ^ W W Y Y [ W W T W R O Q O L H G G G B G H Q R Q L M H J H H| By >{ 9v 3t *m $j g g e h j l j j h j m q m l m l q m o m o m t t t o m h }e {c u` q` l] d] Z[ X` R^ P^ I[ I^ F` >e :l 9{ :| 7{ 5v 4{ /w /v +{ * * & &{ &y %y !~   | ~                   "=BGJ``ejjmmoopyz  )05B!S2X:]Gd]gxeiiot{~   "%(-47PY_/d/r9>FFJMPT\a\ZWYTTK@@A4/*#      $ & . 1 0 3 1 1 5 5 8 ; = = = = : : = @ D D G J L O vY U` Lm :w 3 0 #&(+.7?DB=AGLX[[elvyy}&57:<<?<>"<'>,?7?<DMIUPpUknquz}zxuvxxzxzv{{$$&,166IX^{ 00//5 ? C CFPXfi'f/g3b9b>_HdJfQf[nh}pruw~hJ4/'%"  xkd\PNH22/(  y u r p m k [ W T J H B 4 %       } s f $] +H 5? ;7 =0 E0 N/ Q* S! Q L S S Y [ g j m t t w |                         { { y y | | ~ y { q q t v r r q h h g c ` [ T T N J E : 1 0 1 3 5 1 . & &       # % % & ( & (&&*/2459740-995>:DCDFHKFDC??>A?><>?><799?|C}DF}HxDrFnDhHiKhKfMdKcM^MYKTDJKFMCK>N;S7U2U,Z,_(a*]'_"d%f"i i fgkknlps x ux ~ x sg__[SNIDA"B$A)=):,7/0/&4$3#86998=;@@ E EHGHORRVY\^afjmruwyytojf y { g V x L p = ^  } | w w r n h h h d _ \ W R K H F > > ; 4 / , * ' %                ) , 0 3 5=@EEJL"Q&V$]$^$glmh ^ [ X Y X T V T X V Y X X V Q Q V S L J N L J J E I X X Y ] ` b ` ^ ] Qr Ok Ic ?Y =U 8P 0P .H ,F ,H &E &C 'C ,A 0< +6 )7 '4 "* ( "% "                 ! & ) , 3 ; D G Gy Jq Lj Oe Q_ XQ ]B ^B `? e! e h e ^ Y T N L I D = ; ; 8 1 . , , + ) $ ' + + . , ) + ) ' + ) ) $ & " !     !   ! ! ! " " $ $ ' '~ )~ +| +y 'w 0k 1e 3c 5a 6^ :a =` @^ @a Ea I\ GY EY GV GY JV NW N\ Q\ O^ N\ O` S\ TY XV VR [M VH VJ TG OE QJ SH QJ NG LG JC NB OE QB Q> S@ V8 T3 X/ V. Y, ]. b. `, b* c' b% b$ ^$ ` b" b c e h g g e c c ^ b ^ ` b b e c ` [ [ X Y X T T L J J I I I L L O Q O S T S S T V X X V X [ ] [ ` ` [ ] [ [ [ Y [ Y [ Y [ [ X X V Q T Q S T T V V Y [ ] ` ^ ^ b b ` ` ^ ` b b c e g j j l l m m m j l m o q r t r t v v w w v w w r t r t q t r w v v t v v t q o q o q v w | ~          |                                                          z u v u q g d b a _ ] \ X S R R N P N N K H D ? ? D D F D D F H H M N N P U X U Z \ S P N P M K M R X ] a a g g d d b f i l n k n q u x             z {  { } { x x s u p s p !q #{ !{ #} ! # # * + ( * - / - / 2 4 5 4 5 4} 5} 7x :x >z ?x C Mz Mu Pq Up Wf Zg \i Xg Xk Zk \n ]n dx gx g k l s u u s{ uv sk pU lM lC kA k? i5 l/ u2 {7 9 5 7 7 5 7 < A D I M P R \ a d l p n u                                       $ 3 4 > G M [ \ c \ T Q J E > @ M R ^ c o z             ~ z w u m p p k c ^ V V Y [ ^ [ e j r               ) 3 = A F D F "D $D $K 'N *Z /g 1i 6t ; = @ L L O M Q R V V W W [ [ \ a f j f2 fR ah ew ex c c f j r p k j j k j j ` Y T T Q L H E C G M HCM HJH@963''$1 3;@E'N)N)Q'g vwwy      */4>A K M Xfnv}   )$)*./1/68 .39;@CuEhQWRLMEECB68hiimsu&x*u&rihiik#m-n0n5r5u7u?xDuWpXnUkUiWdWi]hbdZ\W^M\F_D\?W5W/P&KOKEC@ACA ><979<A<<66;(   |{{~c[SV]beb`^][]^qqc][VJJNVeyxsqsoosyvsolgigd`ZVVSQK#A/?93F(Z z OwUROO^dcfdfdfdc^fh                                                             % * / / 6# 7. 4= 6F @N CI HI CK AP EQ FV JX JZ EU ;P 9L 7L 4U 7V 9[ 6n 7s 9v Ax Hs Kt M{ T} Uv \y Zt \q _o ds hn mn nl re ue ug rg no iq fv ^s \~ Wy U{ U T M~ Jy Ey 7 6 1 4 / 1 7 4 2 - * ( ' , ,s /i /V 2P /Q '_ #` (b *d (j %y % "   ~ o i l v t { }                               % # % # % " ' 1 1 ( ( "                              "   ~ v o n l j j d ` ` [# V, VA [T `Z b_ gc gi on xu {} }        ~ ~               &+5=8;B@BLOOLED@83..                  ' * % #            % ( 2 6 9;9;$7'4'6+4+6,@6CDCJENEYA`<`7]9[7]EgHgPy          ~e y[ tT {R {W ~` c ^ ^ [ Y W ` W R G G H G O ~L }O {G x@ t> tB s> q> qE tL xJ tT oO tR tQ sO sL l> o@ o= l= j> i9 g= _; d@ iE jJ nM `C Z; Q4 S4 Q1 P/ G/ A3 ?/ .3 * * ) , '                                                 t o h f \ \ V O M G E > = 9 . '/ '4 C T Y ^ ^ W [ Y W R R M B ; , , * * ) % % ) ) ' "                  l l f f b X W R K M > : 9 9 A C > ? > H S d l p v { x u l b \ U H 4 / - + - + * / - * ( (                          ~  j ^ Q E B @ I L X V O N N S ] ` ` ` c g r r w |   ~ | v v q e Y Q J E B B I V ^ ^ ` ^ b b ^ ` ] ^ Y X Y V Q N I = 1 $   ! $ . ? B G D 8 ) ! "     vqn k \ N K I I H F D F K I F I M K N R U Z \_a\ZXWNKMNNMHFA?<?? <775450/002400--+*-&&#%##            "   ! + 1 3 6 8 5 8 8 ; @ B I L Y g g e b ^ c b b e b g e h h h g g c [ [ X V O N L J J I I G @ ; = : : 5 3 8 5 + $ ' &             !  " & " ! & $ ) 0 0 &                            ||{|vrrog e b ` ^ ] [ Y Y YTT SOJ I E B ? ; ; D DJOQSTQSX```^]YXTTQSQNLNLE=;86=@@DGEJLLOQSVVXbhjhlmtvvrgb`X`^bzhxo|owqxoutu{nmnwzuma\UTTRTRJ@>AEHPRTPYY\\^cipw|}           |umh_cdddc_^YY URWURROOKHFHEFCA<@>>>A@><<>@>><> > 7 6722,('(%%"% #%&(-/ 4754"5%9'5(4'4*7,5/72545726/<4>2C/E/F2E4A9A:EA<?<>7<;<2>4?2?/A-?-C/C*?'?*A#?#?%C'C"D%H"DD >>9"7#:77:>CH NRXXX\bdgilnppnpppqquuz}}""%*,,,/169;>=>B@@CEJOQV[Y^`c{fyf{mypsrtuqulyl~b`VUPLFB?ANLF<<72.   uhok`RMLQQLJ;;>>9;89 8 = 6 ;9;94*" ) 37:=?BGKLLIILLNILLQKKIKLL PUdjx}{}{{zzvxuxqplp}p}nniidgiddbXXSSPR]PNPNPNPIKFFNPPM_]Z\]da__]SKIHK<:?<-*&#!  # xql_XSF.-2 C HMRSilz~yrpjhc``^a` `/cB`O\RRRHCC9B686/>uz    !3<<8320.-)#    ~|upruu}wzzqnlgd\WPFA><72424542(|uwyypaQLG''. 88//1 > J M#R+V4V5V7O>JIG_Cp9s3,*)*}}vp nd\PMNM 7"2%"* .,31BHM[acfkku~rtqhg`^[VTV]^[XTLJE61563+" &253:875335:==AFGGIINSQNPUVZ|[mPRLKIMFJBJ=;:7570/+1&'!  }}sjigji`dd[ZQQLQNKGAFBA:820.)&#    ~|ryrj`TG;896699434316611,.441146;B@CELOJB@=~;w;pCjCeG\BY9T4M)LC1${ v q ibXHNMPZWMC>FI>:% }snbNMH5/- *((%!    ymjgc[Jr@oBm=j8e6Y+Y&Y"`cb bYVVXV[][V[Y[Yu[hYdXYXFN>I4B/@%DB? :3.+!!"",05=EGE@DDDINOY}[}`gjjjmljb`bmywlNLSKGK<7:#rvttry{{~||ytw|      |ueh J#L(J5QDQSY\YaRb[gcdefhiesou|%%,89;GJLHJLOTW`e\etutuyy~|yyuyzwwtrormojheca`c`ccffjkmrhfjuz~  &))AA??BBI`glvyy~    ';>@EJMPYhmnssw&)+;B@LO`j&vKbgsqssx}tos ~~yo m"j"]%]%X(Q,N*N(L4J4G7E>@>;E8K+R+T.U0W3\5_:f3i!m'w'z6w=x?wBw@uBrLrSsLxD|6|'x&sxxw xzx z }|      urrmphcada_^^^a^WKKMME;71'*9KRTTPKE><997922667;9>RW^YYWTPUPJHHCER4#"#"#%"*644;7;>FFORRY\Z^fikk ruxzz}           !"$&)+).3;:?;:=858:??GGEGO]bjrytjh cc`bec&e&j'g&c$b'`,b.^1`1c3`:^:e;^:^:]@YDVEXGVETJOJJQJVGYD^IcGeEh=m?jDlGhJgXgYe`ghjmjbb^^~[~LGGEGILLLIE@?@BEINOQ*T2Q#STSSXhlo#{?{Nak{ 6RQapu   |wpja!W(e((%#! !&*(&**-*+/2~/t0p4p5t7:>A??DHNNPg}!.Vqxtck_cfad\rVuTrTzJEE@w@_=_;f;^9\4_3d6i4z83|1u*r$w''$ xsxz      zp ic \ ZPPYRRPWFC@977@>74/*''11/,,%#rcwd~_dYWYROMPR\Yadac^ZK>@;7;9>@4(2/42>H>7--/,*-,/99@<2297 2 -,-#2$747>>AJTWZ\ckikfddk#r$z&|(u.|.0.(!$$!#+-057:BDB?<?BGGIIINIIGGIBIPNGFB|FwBuDpAr=k=d8^5^.P+R&P&T$T#K#P!T#ZZWTP$A+>-;+9(;&9+729=ENZLkNsSQS[q}~'~xsoiZQB BBLLIKIBA2& $&&$$!  5; GBB0.,'+&!   |zppokmmprtutpojB?63"8"@,V;S=X>Y=Q>E658,=&C BB98=@CGHEHLO[[^^ehecehjokkhkui f fp_b"d'Z)\%S$D F"A'>':)<)4*7,2/0/*3&1#3%4 9=@C@ =;>==@=B=>;9643116@=>>@BBCBB E EEH61*)'"$*''""{|ymjee`^QB       x"l)f)a'_"fbdklinpv}}zzvuunq n g fn x {  G@>;q;`>PBKCDEAOAW<W:W7^8a0f3^NTZW[^Nk)kea[TOwJmJpGoGkHk=\>`;a8Y8W;[4M6T4V3V3Q3G4M3E11,'< 6 4 9 9 <z Ci AZ CS FA F2 J- K& F% K F E F K O M F E E O E A @ A < A A > @ > C E @ < 9 9 > ; ; 9 7 ; 7 ; ; 7 6~ 4y 4q 1v /v 4h 2c /b *j 'h (c 'V (O 'D #G #E %= "5 "+ + 0 0 . ' ' $ ) 3 5 : 5 : ; 6 ' & , 1 + ' 8 G J T J J L J @ 8 1 0 3 . 0 . 3 5 ; @ ? D E O Q T ] l o y        | ~   y e [ Pv Kc F^ AJ A@ B6 G. I N U [ i nv~}|`^X^K^BY<O39$92;<;7 964 41227;9;<CMMFMOPOOFwMr<r;r2r'uu y#*2299><AA<>9-"wwywwoe`^[OG              * 3 9 9 1 4 / * ' , . 1 3 8 4 % "  * , > B C Q V e ~   } x r n m k d c c i ph n^ mY iW iR fW _R ^H ZC \> Z9 Z6 ^3 _* c% a" ^ R O P W \ Y R H C < q r w y w                            } } { z z v s p l _ _ _ b b a Z Z S R R S S X X Z \ W U S R N P P M M H D ? 4 4| 0{ 0v -v +j (h &` !^ X [ T Q J D D = : 5 : : . + & " " ! & "     zwuskffkfhmmxpfd__c^YMKHEA>AE|A{<t;v>t@tErJoAlCj@e@eC`AbH`FYJ]J`O]MYP[UOTSWOWLZJZIUBTDP6K6P3P1T1Z.^,\$dcnihi| f afhmn^hmaikkfhdimffaac_cadZY\\R^ZWY_TWTYY^Zc^_WYc^^afnhnmnuw}  |z}| ws u s p m h k i k i r r h d a\^ _ c i p) w. w1 s3 r, k' m6 k: m= mJ kL pT p[ s` p` rh sj rr uq sy u| w| w w p r p u n n w w z x | }  } z } }      } }                                          # ( ( - - 0 4 ( -  % 7 : C ? A I K N N R S X U W a a X Z a b i n s s x z                                     wl^ X ^V``cc`b^^bbeehechee`bglwoorvvyyrtyt|~xvvtsjjgigoqolljeed`][[ZZVVQPLKF<853+($#!!!             %2:HNUilq  ),..*1;@E JRVV![#f+c-j-m-p0o.k0h7m<k?oBkFkFoImItKuIuIzKwLyPwPtUo[o[r`obpdyeueyjwjlnnqqss{}t}w~tutw~yzyzymjoppyzztrtw|~~~jrytkha\R[Y      !!($&23.0- ."(#( 2'$'#((,$-(-+,)*+*<,I/G1?1F78734:45-7-3/31+1#,-,-("''%#%%'(("',(%%',,/119<;;4222;9|;m7R9H>B;R<W<V>W>[;\9`<a<c@f>j>p@p@mAuCwHrJwF~A@FFCAFHCC;;>;<@CJMJEAC@<><99<AFMRUUTRMEOPUWW\ZWUTOMJMRMJFEA>61-/-14 2 479796642(4)6$7$9!9&;#;0A7FKJLKIJNKQMQMNOPOSPST_WdUeTjToUtYsZiYQZQ\_aei`^qdsdodnhlheibwZ|ZzUzSpXuS|Q|LG}B|BwB?<2035-(7?D383(##   $&&)+,.3368;=?@OOLLOSTTXYX``chjmeccgjhlmovtotv {y#$!!$$-7708:=5.35==B?)+.3.38:?=AGIIASNZSVXbbQS[__`dgiossxqqvyx{y"** 1 /;>AH MO U%T!W%a*h-p0n/n-d4d4Z5W4\7a4f5k5f:d7a<Y9Y:T<R?KAMD@H>IACPDPDTKKKRMRNJN>S7U;R@SFUEWJXH\M_MaZbYf^fficknlipmqksr\OUT^d{m}wznniadcpknwz|         ! " ' & , . 8 : @ E I S Y ^ e c q B A B D F F B 8 7 7 8 : G G G K L K D A ? 8 : = 8 : = A ? = = = 5 : : < A B G P N P I Iy N U Zu Xa [f [a ]a `= `; bE b. i; i, j6 eV ec _ _ ` b e g j l o s s t# y }!                              | u p r y u ~ r | p m [ ^ J B ; 1 ' % . "   ' " $      t i ` _ ` g }                                       '                                                            } x s i g ~i }b {_ }Z \ a a d i _ K g l s k k q n _ M 9 5 / ( { x v t l j ` ` ` d e d g d _ _ b n v y x { }  ~               !                                        { y         | { { j y  y ^ N I }0 x+ x1 v1 v: t' q o q' o1 n j j& i e$ b! ` [ Z1 V+ Q U X Q S U V [ Z [gb[`dlnnoqliedgeilottovtxxqnljglsrxmvhnfoas^qRlHlMiTidg_bc`kbr]}_```d_][Z[ZQSUVVQKIGGD==?AGLLxPnSpVkZ^ZTXMQHNUNJIKFEFAKFK;G9F4D9B6F/G1I*S<P,KG#D AA:3.)$%).$ #!)-.07LUPILQPBAAGA82..20.#&37DDAB?~=v8t2g-g)n+t-(+~(l!ltx       }xnl&]+])U+F(7!5AGgld`UKN LG? <::2-!-$$!   ytoruoW\Ypzytje`^VROJ[`eQQjmozjoohhe`Y^^cpyuoheroumhaajomh[T\Ym~k|tVTCJGJECE=;381'%%"%,3613EE=;43)~~|zzwzzwwutrrmkotu|~ zyz"yu*o/wur ropoptppojhjkjc fhfa``c$e6c4a"\[YWRMJ"GHJOT[ \[V[\\`[[\^ccaacec^[[YWWVQVVTRMCEHCBBCEGGGJLGECCBB@C@B"=%@ @>; 634==>>B@;84;@B@>>=98;;68=;41/..131.*)'),11}1{.z*}%q$s$p'l*u,s*l)g)a%b%N$I"I"RSZZadqvfRFK_MKRUnZ Z MD0+ 2 DI A & %*<+(/>I]MARWC5/2/:+*%#%%!(549A<I5*&2ANRMR\_dpu{xvibadWRXbgg_RKIKNFNNK4  &{}}}{z{zvuqqx  }xvsqppllkibggiggikfa_a]_]|Z\X\yXjUeXZWSgRePwMoIeKrR{RSW__aa]_]]XSUSRPMNMMKIKIFtFvCt?v9:<<>>:<:557742y/y//+y-v*q(r&o c+m-g-b+`-]0^4V4S9S<I:D7I2I2D0I0D/B0@2:/;/.-)+.+6(6%=&5(1*+-&+!('++((!%$#)!$%#!#           &'DILTOD8!.8X`b j oceovy~~wg`VVYgovye[I=0+@DB=DD856D;8,! xxrihdaamPZ\}_YY__UE>7@@<6167@O@EZTcaMJP^fZOKUUHA>A--( -2412@CW{YyWPJ>1(  ||'%~/ {yvrrwvqqrq ojootwtqmvvyyvqtytvqvtvyrqlsmmlljlhhgoeoeyb~chghee]]XTTOTQSSJDBEDBD@@BEJT[be`[``]~XGEBGQS]xVZQSNXL_LXOQLPB`@s?{={@g?]B]EU?Q:I=IBPGQJPLKI7E8@?D7I3J$JD?0?.?)8#=!DINNJJGEBB::3 5 3550.10!00070U,=)B,N+['d)t&+.,+'++&$&{'s'_!j!i!b$]'U!SN!Q)Q'8&3':)?,70.+)'' &!!     !+3:AD72+)3!    $+7?BBP[[UXejjo{}y}vqssdGGBBA803-#!  $#)&   ))087?<?<<:53&   })2<=<7-.30:-.+}.57B:}=z:x<w?x?xDwAw8p:n?rApBsLIPXdeigjdqjjot~x|yyslng_zd|jq}q|tw[pSmVkUiAf=c=a5a:a<a:_:YGZPaQaUaS^UZQYSWVY]_lav^nW_USWQYNULTFP=OBOLMLMAHAH<K=M<O-K)F)C(>AA!E&J$R(U$OJHMFA@ >74/-/6**14*'(-.4.6+40-5(2*8-</I2K7B457<;:9=;D@BAD<L<g9V9L6L/Q2X4U7V4Z6_9gAnMvMx@qE~CC>o7j2[-X,Z-],b-g,j-l1l-o*o*`%d(q,y,,y's%iXZdNKQZ ] X U[ b g}d]eni`SQ IFF?< <+ ) . +32+)-)(!((-3<?SUZty""(#%,-166;9EHHKRRZ\_dhs|          " ' %#',/699 C@ CFORUUUR R OA@CH&K$PU_acd!c$f&d+f,d3_5U0_+a'UP"P&@);.7+<+;&6"4)1),,,0-1,6(3"1%5"668;= BBGGLOOSVTX[Y ]^`]bjq wi \_PM P NW]db(7:?j?:BADGGKIKIF=<7773-}+(# xpkf^Ycm_M1'476##~yql`L7|utmtujYOLG/,),"   9ELQClx}}pk]llssbUUbdU:&!&%ye;yu to)m)k.k$m!o"rppr trooppfhkmfe[WMC>8/*% "$aWT2*(-41")4=HO\ffhpruyy||;~@@91/',-D7! 0GBLZQ??F===FKD:8z=r7r?p?m<p8o3WMB@=&>3=A4K6V1N.X%`$d"_`UU ` iXUI<8A<BB25!  ~u`EE9'zif]PMKMKI9597>C<><:79sK5NRPMKKKHC?AFIMNNPMPWUUXafiqsxwveuclgfbbc\Q]J_D_;W?SISBKGHX2t&#&&%(+--&%#!rme]TL@=,, &,& ( ! # ! % & + - 4 4 7 7 : ? F H M N M K M P U a b g i i n p s u v { } }} } w w p f h n m z z                           k W Y R E > < " % "    ' %  , -  #                                        " % ' ' ) / 3 4 8 8 8x ;x ;q =t 9 = 9 9 4 4 1 *       #     # ' 1 7 ; < A J K M R W W P W Y \ h x | | m k w          6q+5U_q'",,%.)4%8*;%@)C$BCEV[ [ack tutz~|wwpa575&  %[L1+)          r r k P C 9 ; 2 , / ,                              !  !       # #  ! # $ & $ $ & $ $ #    & & ) - . - 0 - 3 5} 7 ? < 5 3 5 3 . 2 5 = ? D B B D I L L S Uy Px N~ B B A D In Ge Dd =` :l 8l :Q 8Q :I 8G 2: 8D <D ?7 D B z+p+w++++++p+f+c+f+\+R+F+@+1+ +**********+(+4+9+T+P+T+P+;+6+'+ +"+++++***************x*j*G*D*V*S*F*:*+***)))))|)y)~))h)xc)wQ)rG)m1)m )n )p")s')zG)J)W)Y)j)o)))))))))))))***-*3*:*7*`*[*b*i*}*************** *  ++++*+4+J+W+!a+$\+$h+,+,+++++0+1+5+6+=+@+D+J,S&,T.,h`,qg,rc,r[,tY,tl,c,~[,J,?,@,$,&,,,, ,,,,++++),1,',B,O,`,^,N,X,l,o,~,v,y,r,o,l,b,c,T,[,],X,O,[,V,[,Q,S,L,G,;,;,B,?,,$,@,=,B,:,.,",',&,,+,,,++,, ,, ,,+++++++++++s+f+c+i+f+R+T+A+7+4+%++***********]*N*L*+*&*0*$* *)))))))))))))))))))))))) ) ))))))))))))))))|)`)Q)G)9)1)1)R)M)\)!`) Y) @)')) )( ((((!(!(%(%(%(()+")-8)01)2B)5M)9M)9m)7z)9)<t)>h)C`)H^)IW)M[)ME)I*)M)N(S(Z(Z(W(X(Z(\(](](S}(R_(UW(SA(N2(K4(F(:':'<':'0'+'%'''''o'l'g't''''{'h'w''''''''''''v'y'e'Q'.'''&&&&&&&&&&&'&''&&&&&&&&&|&{&q&h'c'`$']"'^!'c'j'q&v&{&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&m&W&R&O&J&A&J&^&W&>&1&'&&,&7&6&&&&&%%% &%%%%%%%%%%%%%%%%y%n%g%U%d%t%%~%%%%%n%F%<%7%$%!%%%$$$%$$$$$$$$$$$$$$$~$~$u$$m$c$`$j$h$`$^$V$L$L$C$J$H$\$^$Q$p$t$o$~$$$$$$$$$w$"$$$###########l#g#-# #+#-##|#{#w #w"{"{"~"y"t"w"t"t"q"q"o"m"l"g"h"e"c"]~"Ym"Yg"V^"]"[!X!S!T"S"O""OI"NJ"L@"J@"I5"E8"E3"G'"I,"L'"J"G"G!"E""="0"0!3!3!.!,!,!)!$!&!&!)!+!.!.!0!.!5!3!5!:!8!:!:!5!0!0!.!+!'!'!$!&!$!!!!!!!!"" " ! !"!! ! !!! !!! !!!!!!!!!!!!!!! ! ! !!!!!!!!!!!"&"$""!! """'"."1"?";""""""!!!!!!!!!!!!!!!!!!!!!!!!!!"!!!!!!n!c!d!J!>!4!6!*!! !   8  ttzpjfcYamwyp`Wayzkunia^YWUOCA; < 7$ -& ( : F K X ~           {   x }           y x x~ yn xg oq ly d `} _s `` eZ iG lK qI ~b l q l s q y { v l b ` _ ] U S L B B 8 A : 8 3 7   ! l+ t     2 ( &  + ! - N o j n }     j d Z   #'(#"#(2L9,E FEHFHFEFA@n6_2W6H6C1D,:(:'D,d,s*zZH?9%   (HA\_]kkxxnq{}slkX   ygchwv~r~~g bbhgw#v(/6;>@APUUW_~dvdmhtfyikrms`wTxLr1fGZSFX9V,G   }vg`ZSF?:+3[Vb |   *<SZ_\aadlqsnu]MFHCHNDCyCuItUu_zaydugtsrkpkrvp}momokrmookkjhjmmmkjhecefffccfa}cvescneicXeXjWz#~%+2&-*29&%2-4%#{+ &1:p1VJB831*% OM<FJEHC7'# ~N?03-.:BNLNSV`jg x    xty    "$%')'$%'$$) */3"48"9;-@,;1=7C4G#J#J-M2J;LHTM[H`WhWj^kumxpxptpt~h_WP TaYPZ_(^5R7Y8W?aIdNaVU]P`Yj^sJ{Udnmdms^d_ZC% "'47E@AT#Y,h4i<xHpPpTuWm\harcifhfss*prrs w |zzxzvx0x+|-}BD?)}p hcaaUPM@@7#ff4$ " ,6GMBJEG~@n4eCjEgJbHbMZEV>S.V)Z,]*[$X?-(%-$35*5,:*842O2^.k(z$$(++ zr|kM@;/8 i7s?:i?5f?5\?3Y?2\?.J?)H?(@?)6?&1?$(? ??????  ?????????>>>>>>>>> ??>>>> >>#>.>3>3>5>8>8>5>:>=><>:>Ds>=e>Dl>Ge>Gi>N`>Sg>Xs>[q>bx>bo>e`>dy>e{>l>o>t>>j>_>5>==B='=<<<<<<R<?<9<<<;;;;;;;;;;v;c;?;=;X;g;m;m;I;E;;;); ;:::::::::::::::::::::::::::::::::::x:_:>:4:":%:2:7: (:#: >: C:H:R:T:P:Y:m: s: |:::::,|:1i:6F:;:>:@9A9@y9(G9+9!9 9 9888888888 8 888888888888"8#8"8(8686898784828/8/9*9'9,919191!9/9-)9#9#999 9#399_9@e9> 9;87878281u81h86R8;J8;T8;W8>\8<h86t8;z8H8K8H8J8H8A8C8A(9C79AS9C]9H<9M9R8Y8\8_h8aM8a.8d8d7f7f7ik7mM7u77z6w6p6n6d7Z7Z7Y 7U7U6R6P6O6P6R6R6Jr6Jm6A]67T61^6-m6-o6/g62e61q6162w676764616-61616'6 66m66666 6666666666y6r6o6b6X6[6X6Q6D6066$6"6666665555555556 65555555555555555555555555555555555555555555x5r5h5^5W5Y5T5P595-554444444444444444444_4)443 33333333333~333w3y3a3B3.3$3 3"3333322222222222222222{2}2v2n2Z2U2R2Z2p2 2222 22"k2 f2 v2_2 A2>252+2"+22271719191C1C1H1H1H1F1<1'1 111111111 11"1-12r17r1C]1<Q1;D1A,1A1C1J1M0U0Z0_0_0h|0kZ0kO0h;0i/0n0r/w/x/|//////j/}G/&//....}.z /x/w/z.}.....z.H.@.;.=.C.=.;.H.R.\.a.t.|.k.W..---]->--,,,,y,T,Y,q,y,,,y,j,e,],Y,`,X,Y,xI,u3,i:,dG,_l,^,\,^b,dB,h8,s,,w1,xB,T,Q,X,T,V,?,:,1,@,L,O,L,1,",,,,,,++++z+33333333333 3 3333333 3'3%333%3)3.363638393@3=3@3C3C3B3B3E3E3H3L3Q3O3Q3[3T3V3R3R3W3^3^3`3c3e3e3p3r3m3o3o3r3u3w3y3t3w3y3~333333333333333333333333333333333333333333333333333333333333334 444$4(4)4-40484<4=4K4N4[4d4j4v4x4{444444444444 444444444444$4&4(4+4+4(4+4+4.40434<4A4B5G5K 5P5S5X5[5] 5]'5d25g45j75n65s95t;5vA5y>5{A5~E5}K5M5P5U5W5W5a5d5m5r5555555555555%5(5- 67 6A6H6O6T6_!6d&6n56z@6|I6J6Q6Q6]6`6b6h6t666666666666 666"6"6&6"6!6!6!6$6$6'6+6,6,6.636568686?6?6@6@6L6]6h6q6t6{6|666666666666666666666666666666 6 6 77 77767 7* 7/707/ 72 79&7?*7D07H>7K?7R27X97Z77aF7_I7_K7fI7f<7k57l07q+7s%7x!7!7*707074707/7(7/7&7777 7776677 77#7*7-7&7-7779797:7?7>7>777>727+7 7 777 7 777666666 66666 6$6*6,6.6/6668616*m6/L68166)6306/36,06)16+6"56666636,6 ,6.6&66666565 6 6 6!6 "6!6"6"6 66555555555555555555 555555555$5'5%5 5 5$5%5'5*5/565858565656585654535.5.5*5%555 555 5 5u5r5n5d5a5f5m5 m5'r5.k51r54k58r5;m5Bi5Cm5Br5Cs5Gr5Hs5Lr5Rx5Tr5Yr5Ym5Vf5Wa5\c5Y^5RU5T<5V65T*5Q 5Q5R5[4\4`4^4`4h4o4u445 555'5-525>5C5K5T5W5\5d5k5n5r5z55555555555555555555555 5 5 565556#6$6(6)6567"6B'6D36F:6I:6FB6KI6QG6SI6QS6SS6_]6bq6dt6d|6j6q6t6x666666666667*757R7Z7g7 v77#7/7172717-8-84*86686E82\84`84f82m81j818284~8482828282868682868786828684869/9-8'8"8"99 9 9(9 +9'(92(9979;=96K91Q9/_91l9,}9,9#9%9(9*9*9'9(9*9/9296929/9-9*9'9'9%:':#:%:( :%':#*:%/:,,:21:4,:2,:/':4':1:2:9:<:C%:A(:@#:<%:;*:;/:91:>@:;J:>J:AF:C<:F>:J7:K7:M>:PF:UU:UW:WT:YW:WY:Yr:R:M:M:J:J:H:F:C:E:C:@:<:@:>:<:;:9:9:;:<:>:C:E:F;E;E;H;H!;E$;C);>,;<8;7?;2?;/D;,?;*B;*S;'^;(h;*m;'q;#|; |; q;e;S;L;D;?;:;$;!;; ;; ;;;;;);5;h;l; l; t;;;;; ;;;;;;;;;;;;;";%;"; ;'<% <" <<<<+<7<C<F<K<H< I<"U< \<i<n<u<q< u<< <<"<%<(<1<4<><<<9}<<{<<s<Cg<Aa<CR<>R<7Z<6S<;N<>P<AN<@K<<K<9D<95<;2<@/<C5<M><FF<FM<T?<d?<fP<dS<aP<dX<hW<u]<x<<<<<<<<<<<<<<<<<<<<=*=3=/=3=/= 6= G=R=V=c=p=y=!y=$="===&=&="='=& >) >,>00>,A>)B>'=>!I>&N>&Q>L>L>Q>_>_>d>g>o>"x>&}>,>,>3>3>0>.>+>)>&>!>>>>> >>>>>>>}>{>{>t>x>>y>q>o>g>q>x>v>{>y>~>y>v>l>j>x>y>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?????"??%?/?4?;?Y>T>J>C>9>/>,>#>v>j>j>e>g>d>Z>Z>N>L>D>.>3>+>&>>==================u=e=[=R=J=G=;=E=M=yR=oR=P6=L8=G3=K1=N'=L%=F$=?=5=2=.<(<-<3=5=2<#<<<<<<<<<<<t<j<f<E< <<<< =====}== =l=I"=7"= = =$= $=)=/=3=6=6=;=;=1=6=>=B=O=c=j=m= w======#=%=+=+=/=4=9=<=F=I=S=W=\=]=\=b=f=g=k=k=n=q=s=v={=z={======================================>>>8>B>L>Z>d>i>n>j>i>y>}>>>}>}>x>}>}>x>y>t>q>l>n>l>n>q>y>}>}>v>s>x>n>s>o> q>v>~>$~>,>1>=>L>M>O>R>R>O>L>H?L?J?L"?J-?R6?YF?^H?eT?jR?kW?oW?rO?~E??C?E?F?F?J?^?a?f?d?n?m?m?n?r?s?u?u?u?s@r@s@s@n@p$@h@f@c@a"@h@m!@n.@p3@r5@u0@x0@w3@|=@xE@sL@iY@a^@^]@Zb@^l@_t@m@n@s@x@x{@wy@xt@}t@|y@}@@@}@x@z@}@@@@@@@@@@@@@@@@@@@A@@@@@@@@|@r@m@h@_@^@a@pA+A5A5A2AAA>ACAHANAZAZAXAaA]AiAkAlAqAzAAAAAAAAAAAAABBBBB B)B%BBB9B=B@BJBOBVB\BeBYBWBwaBspBrtBnrBhBmBBBBBBBBBBBBBBBBBBBBBBBBBBBB C CCCC!C+C+C0C.C2C7CD,AD36D64D3>D3FD1HD0ED1JD:mD=uDIwDBzDDD?zDIDODXD`DgDgDhDmEmElEjEmEq?Er5Er)Ev&E{E~E!E)E$E"E'E'E3E1E~8E?E=EEEQENEOELEEEDE|EEv?ErEErBEqlEoEhE[ETETEYEbEgEjEjFmFvFv%F{#F~(F(FF FFF FFFFFFEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE-E(E+E*E#EEEEEEEvEgE+NE7IEAQEKTENEEH3EF"E?E<E9 E>EDDDD>D>D9D5D?DADHDMDRDSDWDZDNDKDKDIxDIaDCEDC9DC,DD#DD>DDEDMaDKkDMsDK|DMDNDNDSDWDZD_D\D\DUDPDRDWDW EUEUEPEN$EM'EN6ER@ESBEU:EX=E\:Eb+Ed$Eg!EiEgEdEdDdDgDgDiDiDlDlDfDlEf5E]=E\OEUTESJERNERVENTEN[EKcEHbEFrEFECEDEDEAEAEFECE?E>E:E<ENEPFRFRFRF]0Ff?CFFCD?A<52*!!*497:DIHCD?ASdƺպ.6GGLHuVkRfH_R\eXkUoUzSzRpNtN|NNWURNCۻCA?7*#(#2(=/G2I>B:F:K7I4P-L-Q%B AZl o!v*v-x/t/e2j2q4s4}2~/**&(*+279:<?>x:q:j>qCyDvCgCdHoHyIyMNUoN[NXRbUdWgXqUWXZ\\\lünülqqxzz{}{}{}{ļɼͼ׼ɼ #/2-'   ,>@T^cc_daZwzxkaWa_n^O@*    %''ؼ*ռ'˼).,.1g1e/g)%$%"%i'd,`*V'V$P$X V]VGG K$G$K'I)I,N,V.Z/N3N1U1_4A/=/8174:689(6!464ʻ3ǻ1ʻ4޻3ݻ1ϻ/ӻ1.,**%"   !   ݻٻֻ޻ֻԻػ޻ػǻ  "%%*6HLHJRRTVV\YQOO~Y^`^acmmop|J1պ˺úź˺RU}{qp}u_RM/-?HݹڹǹPF7F/F-F&F%F?FKF FFEEEEEEEEEEE#E$E#E#EE#E&~E)mE)eE+`E+hE0QE3'E7 E?DBDDDLDLDNDLDIDIzDIkDKkDLDIaDK%DLDLCICLCGCKCLCSCQCNCLCNCPCKCICFCBCBCBCFCICKCNCVyCUbCV?CX)C_BbBeBdBbB_BQBLBDBBB?B=B7wB2tB0yB.B0B0B)B#B!BBB BBBBBBBBBBBBBBBBBBBBRB>B1B/B)BBBA A AAA+A5A<A<ABA?}A-MA$/A&A(A(A(@-@.@.[@0E@36@<@?@A@:?8?<?5?5?8?7s?%2%2#2 2#2* 2/241519191:1H1H1K1I1P1M1M1R1U1Z1]1]1_1a1_1a1d1b1f1g1f1a1\1Z1Z1n1x1{1}111111111111122 22222 2!2&242<2A2D2?2A2X2b2n2u2z2222222222222 2)2/242;2E2G2O2Q2T2[2^2\2c2e2f2h2h2m2m2o2o2p2r2y2~2z2z22222223333~1|1~1|11{1{1y1t1m1o1r1v1y1y1{1w1w1{111~1111111111~1{1|11{1{1~1|1~1111111|1{1y1w1y1w1y1~1y1w1v1v1t1t1l1m1r1r1r1q1l1g1e1b1c1b1`1[1]1`1c1j1l1h1m1q1q1m1q1r~1q|1oy1lw1qv1vq1yl1yj1wm1tm1rq1qr1qm1tj1th1oo1jr1ol1jj1ch1je1mh1oe1oc1re1tc1t^1r`1t]1rY1q^1q]1q[1o[1lb1jb1g^1e`1c]1eY1cY1^[1`X1^T1`T1cX1eV1hX1qV1oT1gT1gO1jO1hL1hJ1eN1bL1`O1`L1]L1^J1`I1]D1VE1XG1[G1[L1YJ1YL1VN1VI1SI1TO1XS1TT1TS1OV1JV1N[1NY1QY1VV1VY1Y[1V^1O^1Qb1Vc1Xc1Xe1[g1Xj1Th1Sl1Qj1Ol1Lm1Jg1Ig1Eg1El1Bh1=h1;l1?q1?v1:j18l18j15l15q13r10l1.m1.r1&m1$o1$r1!t1l1j1l1t1v1y1w1|1111111 w1 v1v1y11111~1 1 1 1 ~1 |1 {1 y1 g1 g1 j1 {1 |1 y1 v1 m1 j1 b1 e1 b1 ^1 ^1 [1 ^1 X1 X1 ]1 ]1 ^1 ]1 b1 g1 c1 `1 `1 ]1 Y1 [1 [1 X1 T1 Q1 T1 S1 V1 X1 V1 ]1 ^1 Y1 [1 V1 X1 X1 [1 ]1 ]1 `1 c1 `1 `1 b1 `1 b1 ]1 ^1 h1 j1 l1 o1 m1 r1 r1 q1 r1 {1 w1 w1 o1 m1 m1 h1 e1 `1 ]1 ^1 b1 j1 r1 v1 m1 m1 l1 e1 e1 `1 ^1 b1 c1 h1 e1 ^1 ]1 [1 [1 V1 S1 T1 X1 X1 V1 T1 X1 [1 ]1 ^1} `1 b1} e1 g1 m1 m1} l1z m1z h1x g1w h1s h1r l1n h1k h1i l1d l1f q1f t1p w1r |1s |1s 1u ~1x 1| 1| 1 1 1 1u 1r 1u 1u 1z 1} 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1} 1| 1| 1} 1} 1| 1x 1s 1s 1w 1w 1} 1} 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 !2 #2 2 2 *2 (2 *2 -2 /2 -2 -2 +2 -2 *2 02 22 02 &2 &2 02 /2 22 :2 <2 A2 92 <2 >2 >2 ?2 A2 C2 D2 F2 F2 P2 P2 X2 Z2 \2 ]2 b2 a2 d2 d2 g2 g2 k2 p2 q2 p2 s2 v2 {2 2 2 2 2 2 2 2 2 2 2 2 222222222$20282B2N2S2T2X2]2g2o2v2{2222v2q2q2k2k2U2I2?272%20000000000000000z0x0{0{000000000}0}00{0{0x0x0s0u0v0v0u0u0p0v1s1q0l0i0g0g0d0d0b1a0a0_0\0Z1S0R0R0N0M0K0H0D0C0<0:0504000(0&0&0!0(0&0#0 000!00!00 0!0#0&1 1 11111 11110000000000000000 0 0000000000000000000000000000000000000000000000000000100011111 1111000010000011 1 1111111111111111111 1111$1$1'101616151315161:1=1=1B1B1E1G1I1G1N1Q1^1`1c1r1y1{1~1.../ //////////#/$/0/3/=/B/G/D/=/=/A/A/D/L/L/P/V/]/_/`/g/j/o/q/t/x/{//////////////////////////////////{/s/t/q/v/{/}y/zy/}s/{s/xn/xd/q[/pZ/p`/nb/pg/po/bt/ay/a/b/d/b/d/f/d/a/a/]/Z/W/U/S/R/N~/M/N/H/D/>q/>n/Ai/<d/:g/9e/9`/5[/7V/7Q/4N/2L/2S/-P/+P/&Q/%P/!Q/ V/%[/&Z/([/&b/(d/*g/(t//~///2/4/5~/7/:/</>/</>/?/>/9/7/7/:/?/?/</A/?/C/C/F/K/M/P/W/\/\/_/f/f/i/l/k/l/q/p/s/s/z/z0z0z 0{ 0 000000}0"0"0'0%0"0 0"0'0#0%0(0,02040604060;0<0C0E0H0H0M0M0R0f0i0k0n0x0}00000000.----(-7-:-:->-C-F-H-K.P .R.N).H/.C1.C6.?8.HJ.MM.NT.N[.N\.K^.Kc.Nk.Ro.No.Np.Mp.Ny.Hp.It.S.W.Z.].d.f.i.u.q.u.s.u.x.v......... . . . . . . . . . . . . . . . . . . . . . .... .. . ... ......".$.&.&.$.&.$.!.".$.&.+.+.&/&/!/././ //////$/&$/0/1#/0&/0(/5$/:&/?-/?./=3/:5/65/57/::/=:/=?/B=/EA/E /K /P /W /_ .h .m .u .w .| .} . . . . . . . . . . . . . . . . . . .: -; -= -@ -= -: -; -? -D -G -J -J -G -G -L -I -S -V -X -Y -[ -X -V -T -N -D -J -Q -X -[ -^ -c -c -e -c -c -g -e .c .b -b .b .[ -V -X .[ .b .c .j .o .r .t .t .o .y .y $. . . . . . . . . . . . . . . . . . . . . . . . . . . . ". $. ). ,. *. .. *. *. .. /. 1. 4. 4. ;. >. B. B. @. B. C. C. R. O. O. V. Y. [. W. W. Y. [. \. `. e. `. ^. W. V. Q. Y. [. W. [. \. \. ^. a. ^. ^. e. h. j. o. r. z. y. u. r. t. y. z. ~. |. z. |. |. z. w. p. m. o. u. w. y. w. r. t. o. p. z. . . z. z. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .( .* .- .+ .& .% .! .% .( .0 .0 .7 .4 .2 .- .- .& .* .4 .5 .9 .> .A .A .D .D .D .F .I .H .M .K .M .P .R .P .M .M .H .H .I .I .K .P .U .S .S .W .W .Z .U .S .P .R .S .U .X .Z .\ .\ ._ ._ ._ .a .b .f .d .a .f .i .i .l .n .n .u .u .v .x .v .s .s .n .p .u .z .x .q .q .u .v .z .{ .} .{ .z .x .v .u .l .p .l .i .i .i .n .s .x .v .v .u .q .p .p .n .i .d .a .a .] .\ .\ ._ .f .d .f .g .f .g .i .i .n .p .q .q .s .v .z .z . . . . . . . . . . . . . . . . . . . . . . . / / / / / / / / / / / . . . . . . . . . . . . . . / . / . . / / / /k.*i7*k7*m7*k8*m<*m=*n=*mA*pD*sD*sF*sG*rF*nK*fD*kL*nP*nL*rP*rN*sP*wN*xP*zP*|Q*zQ*xS*wX*xZ*uZ*w_*rZ*r]*n[*nZ*pZ*pV*kX*m_*m]*m_*p`*r`*pb*p`*n`*rd*re*sd*sg*wg*wi*xi*zg*wd*xd*|e*zd*wb*xb*z`*|b*}_*}b*b*b*b*_*`*]*]*]*_*`*]*_*`*`*d*d*e*g*i*i*g*j*l*o*i*i*j*l*}l*o*n*o*o*q*q*t*s*o*}t*}q*zt*}v*}y*xv*wx*wy*x{*u{*wy*ux*sy*py*ry*s~*r*s*s*w*x*|*|~*}~*}**z*****~**********}*|*x*w*r*p*r*u*r*p*r*p*p*n*p*i*h*d*d*_*\*\*_*^*^*a*d*_*_*c*a*a*f*c*d*h*k*n*s*u*u*x*x*z**}*z*w*s*u*r*m*m*p*r*h*f*c*d*d*f*m*n*i*k*c*c*f*c*d*c*a*^*\*Y*Y*W*W*U*W*W*J*F*E*E*F*E*A*7*7*2*/*/*,*'*"* *#* *"*%*'*#*"* *********** ** **********************++ + ++++++ +,+-+ (+ '+ #+ "+ ++++++++++++"+"+++ + +#+%+#+%+'+' +-+1 +2+2 +6 +; +< +; +9 +6+;+@+E +K"+P+R+T+U+T+U+U +_+a+^+Z +Z"+\#+R"+T%+U%+U'+U(+R%+R(+O'+P'+P#+O"+M#+F#+J(+J-+J2+M2+K7+M7+T6+Y6+^>+^C+_E+\C+W7+T7+W;+T9+M9+W>+\H+ZO+\T+^U+_\+c_+cc+da+c^+a\+aZ+a\+d^+hZ+h^+i_+hc+dd+fh+dh+cd+cf+ck+fr+fm+hk+ip+hr+fz+ax+_u+_w+h+i+i+m+p+k+k+h+h+i+h+i+k+n+k+h+r+r+s+u+|++++}++|+|+z+x+w+x+|+++++++++++++++}+|+z+|+++++++++++++,,, , ,,,,,,,",&,$,",.,1,0,6,8,8,:,=,=,@,B,J,I,D,B,=,;,5,5,;,?,G,I,O,S,X,Y,[,[,^,],`,^,`,Y,],],X,S,J,O,Q,V,O,I,?,:,B,G,N,T,V, S, N, L, L, S, X, [, ^, `, c, j, v, w, l, e, Y, Y,X,[,^,^,^,b,`,`,`,c,b,`,`,b,`,b,b,e,g,e,h,l,o,v,|,{,,,,,,,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-- - --- --------%-%-#-(-#-#-!- -!-&-(-%----------- -#-#-!-#-&-/-0-5-/-4-<->-:-:-<-A-I-K-K-R-U-W-S-Z-X-X-]-b-k-f-d-i-k-l-l-n-s-}---- - - - - - - - - - - - - - - - - - - - - - - - -! -& -! - -! - -& -) -+ -0 -3 -6 -8 -? -= -: -: -: -= -= -: -= -= -; -3 -5 -8 -: -|whVG@=4'$ "$)""%.1@COT^fk c h k j p o peu z ~ z|zzzo###&%#&%%((&!|m ^#h%j%t&u(e2j5t5~7z<<::99<>>AAAA?AA::y9w7m4h5e9e/`-W2R0O4R7R7M9O7G9E>EC=?CAGCEDGIVC@D>HEKHM=R>P=P9P3N.M/M'M$N)P$PM PPSRNPRRNKIIIKWXX\\X\__aa]\_bfd_\aaddb fggl i"ff$d%a.d*f*i3kEiLgYg\gmg|i~kwsxxzsunapOu@s9s1u/v;v1{6{>>CGWjomp~zukmohec`^\TJBBT^OEJC>@966131.,*)'$ $   qkqz{  $%/'48;;>9=@E>89B8/,$,.11@C6/966,"%*$   $,19>;BEMOTQRQ\^`kpjou~uv $&)-=INU[]_biejng`djgn} %#*112299AAEMMY_cffxrux|")0?Q$+)"+0:@EGJLG860:636ee`meSOjvozzxxsqqppnuuqkggdbbglggqftfa_]\]\ZWRSPNIHDoFgN^PTN[KYIbDgCmAjCbCX?Y?`<^:N9O7V<e<g5Y(Q&=*O+G+@(@ .#.)00'"  !#&(&#!!    xrurpphfcc__c__Y\OKHH@%%# "    {nKLG=G+()   ++:BGGQ]bqx~zyrojjfkmmkhc`^WTW\\\WQLHB>=;9;@EJLQQMLJHB;>;84/11.)"      zsu~s}p}nqkibbdbyd{dxanfbdXi[gXgUfUdVaU_P\K]K_NbNfLiGlDfGbFbI]D]:a=a:a8_:_3]2]Z X ZXWUS P NKKKMHHDC?><<>ADCDCC>:942020-(++%%&&##!%|#u%o!p k!jjfaa^^YVR#T%O!O H!EEB@= ;46//**)!3#;*E*B#,#'%.(10M0O4O4L5H7E5E0@- *((( & * +-//04459"5$9'9.:*?3A;CBA4>,>)<%>$5 7 9:>A?:AADFFIKMNUXWU]"\%]/_$_Z]Z]]\\Z\ZZZ\_abdabggklgilnnkgg%i*g*i3k1k$n$n'p)v)xz}/6=;889=MQ`uw|yymc`[aTGEBC66$*9@JLQQYWMQamtp~u|yjLEECB>=@>BC@@;9>83/'"$"..*,%$%"      $ ".@E>@> C BC/ )  "*,.,**)'""% $$)$$ ""$ %')**.**)'%$ " ,./ /1631". /.,"3'1/4,6%9,888L4V8[6a3c3h1f/h.f,k)o4w41333,,114386898;>@@CEGEGLOVTVWTTWWVORVTVTVY\\^aeceffcjkkmooprrpruww||   |y~  #!)##+27KI3+ # "%--#,-44<EE@KTYYZ^cinnzrnhd\^kswu}rnmf_RRF}EYhkpf~d}f}_{^{UyZvWt\v_xa{m}m~h~&,8:@EJ}JvOvNsNsQ_6S1P3A&<&2--& $!       ++0:JNOQOX]]bc`ecjh|ryytwe~`^\YTTTWROJHEB=1.)$       !#! !&&+07<CUXZafabgn}vkbXUIP}KMuKpKCxC}DCA<x9q:g<d<]9X7U5H2N4P7\5_0a+]+Z+R*W(W*Z*_(_!P!A9/+&-07FIHA<7>ADFFIIKZ_ZP \z zvngabPIC%~wmmt~ymeXQSJE?=3155?=B?=31$    }umdc\Z_^ZUPFA/-,%         "%,/99<AMPY\WZZ\  4 7:75&!!##!#*(r&p#r#a!a!Z#R&T*T+Y*Z+d-h/i-c0^/R4J5J4P7K:K7H9C5E4--*-%+"+(*-/0/0 0424045599ACCHHKMRRPRSRRUW#Z'Z*]*]>fJfOiYpavfkpuicirmicad_JC@A<41(%%(2;KMPR^ci|}"$*,,'',$ $'))3,,4;LRY`ehorporrtwtuwwyyzyyzzzyzpoomomoomjesekkkeheckZo\kUoMrKtHpHoEkFhOfK^M\J^>f4k"o okh^\YWWY`mu|~|ur t| "%12/,/*"(@/"#     !$$&$&2--&$#!!&#$$&##$(++-++.-.2353775788::<DFDADBDFGILPPLNNQSUXZ[]_]Z[[_``einigijlggjlnoqt}}y{vyxy{{}}~    s n T P M E @ > K R E > ; 6 1 * ' # #      ' / 9 E U Z _ f m z z  ? ? ? < : < : 5 +    ! % - 7 > ? ? ,**//131/.,33/1=>=>~@xBsCeJ[RUaShUkQoQyPzQ~SS[[bdgjilq{     #%,((-2*14ACEHEPTROMORTPRURYYUW^\^afhfkpwx}}}e[YOMRW`m`WML>8;@BLMJRTQR[fmp~yph`[\YQGEEOTQMEGLLLE;}8w9p8i;_;\8Y8U3O3K1F1;/7,4.1.-/'* /,'"%%'(%-%1%4%6)9*;'<'C*6"-"*"*,((((((((}(}((((((((,,,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, `/ l/ o/ l/ q/ x/ }/ / / / / / / / / / / / / / / / / / / / / / /~ /w /v /t /l /h /c /b /] /V /; x/, v/ q/ l/ l/ n/ j/ e/b/_/V/V/U/Q/L/F/D/A/=/7/8/3/3/0/+/(/&/&/#/&/$///// ///../............. .. . . . . . . . . . . . . ." .& .) .+ ., .: .@ .B .J .V .c /e /m /t / / !/ &/ +/ -/ 3/ 2/ 7/ 4; 47 47 46 46 41 4( 4" ~4 }4 x4 q4 l4 j4 d4 ]4 [4 U4 Q4 =4 04 +4 !4 !4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3' 3/ 3< 3> 3F 3M 3R 3R 3U 3R 3J 3C 3@ 4@ 4C 4E 4F 4E 4F 4E 4E )4M 24R 54\ 34a -4_ 54^ 74a ?4d ?4i L4m N4i `4m b4k d4m e4n e4m i4h i4h j4k n4h s4d s4a {4a 4^ 4^ 4_ 4\ 4\ 4_ 4Z 4Z 4Y 4U 4O 4/!7)*7'/7'77)>7.A7,C7)C7$A7<7<7>7C7D7H7N7X7f7g7d7l7g7g7n7s7s7q7u7v7x7vs7{z7{{7v{7u{7s7lx7ku7is7gu7l{7k}7i}7f{7fv7bq7au7_u7_p7]n7_v7Zu7Zn7Xq7Wn7Un7Us7Rs7Pk7Nq7Kn7Ki7Fp7Dl7Ff7Ck7Ak7Af7>i7?d7>_7?\7:_79\79]77\79W7<X7<S7-X70S70P7-N7*P7%H7!M7M7I7H7C7I7F7C7F7 F7I7 I7 K7I7 F7F7F7C7D7K7F7I7H7I7I7A7C7?7?7>727&7%7!7!777777 7 777777777|7q7m 7m 7j7g7c7^6Q6?636+66 6 7 7 7 7 7 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 w6 g6 ]6 Y6 ]6 X6 T6 V6 T6 [6 Y6 T6 S6 L6 J6 J6 I6 G6 E6 =6 86 56 36 36 66 56 56 36 86 56 66 B6 D6 ;6 36 !6 6 6 6 6 6 6 6 6 6 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 }5 |5 5 }5 w5 u5 w5 s5 r5 s5 x5 z5 z5 w5 u5 k5 h5 a5 _5 a5 _5 U5 T5 W5 U5 _5 c5z m5x u5s x5s |5m |5m x5k x5k z5i x5c z5_ s5c m5c u5c s5d u5f u5h r5d p5f m5d m5d f5i i5i f5h a5f c5a \5c Y5a W5c T5^ R5\ C5Y >5U <5T @5P @5P <5P ;5R 95P 75O 65J <5E ;5E 95F 75E 45A 75A 45@ 45@ 15< /5; *5% 5# 5 5 5 5 5 5 5 5 5 5 4 4# 4% 4( 4( 4* 4/ 41 46 4; 4< 4> 4@ 4C 4C 4E 4H 4K 4M 4O 4T 4U 4Z 4\ 4_ 4a 4d 4h 4k 4n 4w 4z 4| 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 ~4 {4 {4 y4 o4 n4 n4 t4 i4 j4 e4 b4 _4 [4 X4 Q4 Q4 S4 V4 ]4 [4} X4| X4} V4| U4u Q4w G4u F4s F4s D4u B4x A4| :4r #4s #4w (4x (4w 4u 4m 4h 4i 4m 4n 4n 4r 4r 4k 4k 4h 4d 4d 4d 4a 3h 3h 3k 3i 4h 4h 4k 4k 4n 4n 3i 3h 3h 3d 3f 3d 3c 3_ 3_ 3\ 3^ 3Z 3\ 3^ 3a 3d 3h 3i 3k 3k 3m 3k 3i 3_ 3W 3U 3T 3R 3F 3C 3C 3A 37 31 31 34 37 37 3; 3> 3@ 3H 3F ~3E ~3E z3F z3J 3M w3J j3K h3J f3H h3F f3H c3H `3K \3H [3H Y3F Y3F W3H V3F T3H T3K R3C M3@ G3C B3A @3A =3F =3J 63K /3F *3C %3@ $3A 3C "3K "3R 3Z %3d 3k "3m .3n ,3n %3r '3s *3p .3r 33r 83m ;3n >3r =3r >3s C3r E3p G3p B3m @3n C3n H3p M3r T3u R3x Y3| [3 a3 c3 h3 f3 h3 o3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 $4 -4 B4 X4 d4 s4 v4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 "5 #5 %5 #5 %5 (5 *5 5 5 55 5%5,5'-5)651>55F5L\5[h5hm5qm5yh5i5d5d5i5i5m5u5|5555555555555555}5w5x5~w5{w5||5{}5w5|5|5o5e5^5[5[5^5e5j5m5r5{5~55666)61686;6J6c6o6v6y6y6|66 6&6C6W6Z6b6v666666666666666666666666666666666666666 6666677777777!7#7&7+7 -707+7&7%7!7#777777666%7,7179 74737/!7s777777v7`7X7U8Q8K8B*8B 8<%8:)8:68:98=>8=B8<Q8:Q88M87L83J82O83R8:T8:[85[8+e8(8(8+888D8S8K8A8=85808)8&8888 88888888888888888888888888888888888888888888y8o8f8a8O8>868)8887y7m7f7`7e7k7t7u7z77777z7p7b7W7M7?7*7 77 7 777 7776666666z6r6t6o7j7f 7^7\7T(7R!7L7J7O 7Q7Q6M6Q6R6T6V6V6R6M6H6C6968646,6.6.61696@6H6O6T6V6[6^6f6p6u6z6~666666666666666666666666667777%7(707<7?777:757:7?7D7!M7+U73W7NU7[_7nd7a7\7P7N7N7U7S7U7X7Z7f7k7n7q7u79 =!>/>+B+C*B#E&H/H+L+L%O#O/L2O2R9L7M<O9O:L>J>HCHFOFQHOCR:V9Q2Q-W2W+W*Y+[0\>[AW:R>QCRUQXMXHNEN@R@X9a8]3\4Z4\6\6U8\8R;X;U9R;N9F4<3719393>/?.<1214451/3(6(4#6#6&9 GLMSJcBlB`B]@^BXEVENCOENGL                BM9K6R/K.H*H'A%@ 621- *%"%'.(12=;>@BKBMs}qyxtqqnijd_b]`dZV[XXQNIG3:<DKGIUQSF?7:B=?::7::B=AGILILQV]`b]ZXVX]est~|{w~{|{~~{|trrlrvtmhee`^eljloqvt{y{|yw{wvroqmomlghee`XY^eghjmgorrttywry{~|}}zp{m|myk|iydwdyf|c|adpnpsuz|}}~z~wcwhothkmprokkc`^\W[[WTy``cNfJhLjJhOjVpNuQwYwcwtutrpkea^QR[`hkotuwuyw|zwuwwpprtuyyzz|y|z|wjlechhcc[^^YYT`YTT[[SETNI?TY]X[`b^gqrotw|{jgtE~@w:a.a+h)k$k'o)p.t+=@DE)1,,;6681&$$!&$)x q& k= iT k` le n k i f _ ] \ Xt P` FT AG >3 9! < : 50-/-25>DFKIHMMKHFDp?@A(D'F-I#N1N@RJ]MiknipuqsuW'-c + !  x |faH>9'%69T|f v    q n W R \ f 1 H ^    t ` E 1        1 c ` Y Y \ Y V W T V V Q R& Rg Qx J J = 6 1 / *v *i $W  &       | w g X  }^- #    '@> $F"')*,)**},./w*'$%${%e$U*L,D*7469&=I=L=?@I=X@VEeBQEHH-JJM J MMR Q RQ0R5RDOPTQRdHMMQQTajcnaVVVY\`acfhfhokrooejjje\`#[V#VAYTTTVZ[dWx[w[TLpLxOJE>@CC@BGEGL[^cjkjjc`cjttom k! h f e c a \ Y OL L Q Q T M" T& R. Q+ M3 Q? RO WE YL YD ^I \Q [b ^V `Y [r ^v \ `~ ` ar er e a ` ^ [ Y ^ c c V Y V T Q M H GV HK LN R V , D=D=Ycmo(   #Pfk_sv{   CE`ew~wmahy|[J8)%zuuzui}NxXsSiUdf_\]a_k\sba__abbabdkli$g3iOinqpnkllgadbodea[aE] WRRPM8FEC^CT?VAHI/IMKDDINMIpFqA}As<u700+%&% 63;=BHTYeu`a WWO9 1) $ %>^a^ckw~#*-59>?AFFF F!F&N$b5i5n)q-u:z2}?{N{[vdtgsi "'<JZWki@2~dg_DX_` US+"%49=9438;CwG^BE=>9;3M3,3 )/81=MTermaOM4, * ),, l}zxnk P AC -/>D/ "-"0"9"S%l)u.u3f.*)'*.//*$" %'//,,)*`$`{yNE=^0,'";LLX^S[[ggv{o]V8') 3@LOH33     $  ,38694)9>>9)*%..>CCHHCGVTLHT^YammwrwtyuyprVOJ9331/).*'%"jy~ ~ sV[jed_[VUGGFA<50zrkj jfj7~:BNX[diegeltnjgeZUXvUsUsXqVoZodldjbj_iVeQ`K_L_P[PXAXBV?Q0P0P5L+F)D0D+B+=&<<BFG#L$IKLQQ[]`djlqy&7?FGLPSX]]dbgglXPYIVAX<V<JIINGSB]E_JVJ]Eb@b=eBgBlGeEoJ`LbJjLlNbOZO]S_SVTXTNOLTKXPV3T=LFJDESDSBNBV?Z=S;`8_6b1`8Q;N=GBBD8E7G8G3G0I-O2T.V0V3~tpw>@668B>99GOR[\}Y{VxTnJgHaCW3a)aflpu uqklppqqqvz '/3>~HHFC??<:744-+00{4z9{:?DIHucc`\JHECBB@>@>=96631.,.)),,/1434|6|6x8x8u9u;n>p>nCpEwGxH|LrJnLmMnLhMfOaQhThVmWnYkYn\n^panak`h^^a^eZeafchajcmkohtftau^uZwZwYyZyYzZ|ZWdc\_^WW^^cadachhhmprwx~{ywyvtqql`SQVTVXYVXX[]^bgq{~lf_WMD?:0*%  #&++499:AFIIMU\az   uni]ZXUKHFIIKPSPNPUUWRRMIDA::0u2p0p5h0a/a/_2_2\7^9\7ZAYCRDTDPAO9K9H?EDCHEFFFKCODPHOHKMKNJMHPHRESEWJZK]J]HaEgHkFpKxO{MMOPWYWRUWTWWTMKOKKHFJFMPMPOFHEA>6446211/24-62477<O\_fnuw|                                                    H C  C  H  D  C  ?  <  4  0  (  &                   |  t  e  `  X  N  J  8  6  1  0  3  1  5  3  6  5  8  :  =  E  E  D  D  B  E  J  I  J  Q  e  e  j  h  m  r  t  r  q  h  g  t  y  {  {                                           &  +  4  4  9  ?  ?  D  F  H g7p7q7i7k7g7i7i7d7g7}a7vW7pS7kW7fU7aZ7XS7KX7DS7?a7:f75g74d77Z75X70b7(l7*q7&s7%q77777 77777777}77777|7r7[7E7871{7){7x7u7u7k7 i7p7777777x7u7s7v7xu7s{7d7Zz72f7#g7n7q7q77777 7727;7>7@7C7>7474747272717,7/7/8*8(7%77 8888 8  888888 8"828@8K 8K8F8F8K7H7F7A8>8<8@7>7E7H7K7K7M7O7M7O7P7c7m7u7777777777777'717:7?7B 8B8D8D7E7G7J7L8J8E8E$8D$8B 8?=8;J81Y8+\8&c8"m8u888888 888'h8;\8NV8XW8eM8qL8B8@8,8"8888 888 8 888  8 8 8%8+8+8+7*77 77!7/7472757D7A7C7D7H7H7M7M7N7S7Z7Z7_7\7p7s7p7q7s7q7v7777777}7}7}7z7q777777777777777777777777777777 7 77777%7)71767B7B7@7;78747374737/7/7/74787373767/7%77 777777777777777777777777777777b7a7d7f7d7g7g7 :': :%:#:: :999999999999s9j9g9et9bn9Xg9X`9X]9][9dd9jd9le9ge9gj9il9nj9ns9nv9s{9x}9{v9~t9x9}}9~99999999999999999999: ::: :c:_:m:n:p:w::::::::: :::::::::::w:s:p:n:k:f:c:it;mw;dl;Zc;UY;OS;OG;MB;HD;EI;FO;KV;OY;Pb;Yh;\o;cq;k~;m{;kw;ht;<<<<<<<<<<<<<<<<<<<=<<<<<<<<<<<<<<<<<<<@@@@@@@@@@@@@z@u@r@j@kAj AfA[A^AaAhAmArAwA|@@@@@@?????@ @@@+@.@5@:@L@S@ S@X@O@N@J@#I@ ;@0@@@? ? ?? @@ @?????EEFF0F&B&B&C&C&C&E}&Bs&=&8s&3n&3d&6M&6>&3<&1@&,,&),&"%$%*"&,&.&/%&1&41&>9&BF&EP&HA&O*&Q&Q%M%L%M%J%J%L%J%H%H%L%Jt%LV%HD%C?%B7%E&%J%J%G%C%B%=$=$9$6$4$3$1$.$)$ $$$p$\$L$E$`$V$[$p$r$ `$h$ $$$$$$$ $ $$$ $ $$$$ %%%!%8%N%]%b%%%%%%%%%% &&&/&4&P&P&a&f&&&&&&&' '''&&&&&&&X%&%#%S%)%%$$$$$$[$c$6$9$ $%$4$=$G$`$u$C$t>$r$m#j#h$$f.$f$h#h#f#f#e#c#`#^#`#\#^$`E$^m$[p$^B$\$\#W $QH$R$T$Q#O.$H\$Cr$B$@$G$M$L$M %M#%QG%TU%V}%W%^&a&c%k%t%z%%%&&-&1&E&E&/&<&/&2&&&&%%%%%%%%%}%%j%X%ACO+W5_RZTPJEq>b<M<*;>CKPZ_UlnbXbbLK !&(&&Dy~hTBB6 ((1C,I*U'W-d(d'q(z/u/16x667<z9<@AEACEKMOPTTY\ZW\^^_cadccfhvivkxknu||wxzz}}/9BQu  }xrnnpmnrnnkkccfc_^^YUUZZYUTOMMKC>94'% #5Idqtyqo{qlqlGBB82)5KSVgd=)&   !yc^`QLQJHYVac[MOC434.%$   //'")    uxki]l_XK>5(!# ,B+.,. 0 )+,,)&!!   ~fRfhH1  .@HOemmyoc[=*6B84,.@M\fy(-(0)-8DUV]]:+5+(27Feg~d&lx{]dsyxn{!"&")+'(03&A"W'd,c0Z1K8@3R1^0m36:=?DGIIzLiJ}LNJLNXVONNTV[bhmlebhqo&q'y;wNyV~m !Wqx 6Y  eM>,    {ukkPPHCC4+ ~woj^`O60& ssTJ4-~vy{yvlmyqnrVrIo5l-h)h8c:S^[]``bb`[TTLLNO NL GIEI!G$GDD?;856883 3..<,Ao  7W{d:lo9>96 3899@CL9H^@d>h;P;7819;@JLyMlQ_a_cXh_pAripxpoje a(`"aa``\YWQRTQLJLLRYac`a#e+cNYLTSOGLPGFG)GGJMTp[b\s\``cjhjha^\Y VYWRQRQTTqVp>@>>EGJGE@=;989;=>HQTTWWV}RRmQhRTWRWK\7^7e_ek^u`^`^`aeehjkoommuuyurrpuu:w6|N@Ogbh;E.$0$bv75~utrpjmthwe`f8fa^\\W'T"R0Q"O"O TOHMLHGHJ, #_ph ~zzmw\w9t<t*o,kywwty|~u*w1z%"(E>hm =IT;E|1|wurphkrkkjOo@t%u,o  7W{d:lowuz +U]t[[V=< M[ejup[Y."C\o!5byQF~rm[CC5?=&~+2FnqqL5D?sv}o-5IlBLd9b9]#9Z+9Z79]A9V=9S<9V79U09L&9I9B 9=9782828)8&8&8#88 88888!8&8(858<8?8B8I8L9V 9Z 9_9b9b9             $  !        $ "                            L[`beegjlooqssqnqy{~},t;qAlClJiYeZbkbr_uUSSPKD?<=<8<p7h:c8W<E?ABCBJDJL6L%PPQ QLKKN     } v q l n q l l d b a a ] _ i g i i l p u x }            I[$?Y$<Y$<\$7W$5T$7T$7R$5R$4R$4W$/[$/\$*Y$Y$W$R$Q$Q$O$M$M$Q$M$L$J$ G$ H$ L$ M$ M$Q$Q$Q$R$T$R$T$O$Q$M$M$J$J$E$G$J$L$G$J$H$J$G$G$E$B$C$B$;$>$=$9$9$=$@$@$>$;$8$4$4$6$6$9$9$;$=$~9$|8$6$3$1$.$1$.$,$)$)$%$$$'$)$*$.$.$.$1$/$3$6$8$8$8$>$>$>$;$;$>$>$9$8$9$8$;$>$;$9$@$B$C$@$C$ C$!G$%C$&E$*E$-G$0E$2E$5C$9G$:H$?J$CJ$CL$FO$KO$KT$MV$KV$MY$I[$>$@$@$>$9$8$8$;$=$>$**********************++++*++++++++ +"+"++++"+"+#+"+(+-+,+/+1+4+6+6+4+1+1+4+9+<+>+E+O+T+W+Z+\+^+_+Y+M+J+J+M+M+H+J+H+H+C+C+A+>+;+<+7+7+{2+}(+x,+y/+t/+y1+y2+q1+o-+j,+b,+`'+]'+Z#+X%+X*+Z*+_*+`*+V-+U'+Q#+L#+K"+K+L +N +L+L+K+I+=+:+:*8*8+0*3*3*0*.*.*0*0*5*3*3*2*2*0*.*0*0*&*#*#*$*#*!************!*******!**#*$*&*&*$*&*+*-*-*0*3*8*:t*As*Fv*Pv*Vs*[n*eq*vn*{s*{t*s*n*q*s*s*t*}*~****************************************** 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 H2 I2 H2 K2 I2 H2 K2 D2 D2 A2 D2 D2 :2 >2 <2 <2 92 72 <2 <2 72 52 22 22 52 A2 <2 >2 A2 D2 D2 F2 I2 H2 I2 1 1 1 1 1 1 1 1 1 1 1 t1 h1 b1 Y1 S1 L1 G1 G1 J1 X1 y1 1 2 2 2 2 2} 2s 2n 2n 2h 2f 2h 2i 2m 2i 2n 2m 2i 2k {2m 2r 2u 2u 2| 2| 2 2 2 2 2 2_ 2^ 2\ 2T 2O z2P z2R v2h z2h {2d {2f 2f 2c 2d 2_ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2" 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 }2 {2 v2 s2 2 2 {2 {2 }2 2 2 2 2 2 2 2 2 2 2 2 2 2 2" 2" 2 2{ 2x !2u !2n 2g 2f 2d 2b 2a 2_ 2_ 2\ 2X 1W 1U 1U 1S 1R 1P 1M 1F 1H 1F 1< 1: 1: 17 14 14 10 10 15 1< 1< 1C 1C 1F 1F 1S 1U 1W 1X 1Z 1_ 1b 1d 1f 1l 1l 2g 1g 2k 2l 2p 2p 2s 2u 2x 2 2} 2                          ) ) % %      z u k d k m x |        $ ' * ' ) w|rk`wVrRnLnGi@dC\ERGMMJWM[O[Z`Zc^o_yfwrw|vkd\XWW__agkq{NNRRPNPPUXWZXZ]_bbdfbf}iylyq{uuqqnlnkigfgfgda_a\ZZXSPPNy}y !&+))003155'&'"&)!   ((%(>@CFF JO MHEC>;;7972,((,/2;>CFEHHEHHCACAA9229479;@>;>A@7z6s4p2h-f1c-_-\,\,_,h(i'c#dkrsxx|| nkca c ^^UMJC<;7;@AEEA<>@AA<></*'-2792% tnljdb[XKA2&       &! $)))$*-4>>CMPY \ PPTYW\_cfmnruzzz           !!$&)#$#$)-23032277FFBFQPGAA:FGSVSQPGFBFLQQLQSXXV]X[]`beeijlilnooqsqtooqsty##%(* 14@!C"A&A'E&E=J@HEJGKIJLFIELHSMSMTFX@jA~HFHFHKJHFEEHFHHA;7969;9<971 9<7 97/!/+2-606<9D7I7S7U;R9W;Z9_9l7q2}64//(%*-4;;447;;74;C@;667>CFHFCAFJJH@;64'   }#i"a"_ g aZ ] P*>(5%-'+(%%%' % ' ,----1111-//,-/-,*,*,-/,*,,(*'(*,/6{9667;;{4t({(w(t%q(m,o-l,g*e(h(e%h"b#["Y#T([(X'T QL"D B?= 6:60.+&&"!            "%#x{ifflpgd|XzKyFyCy9y0wzy z ~%+7Fdi{(( ("N("k('u('(&()(+(0(,(0(6(5)3)8C);T)=H);*);)D(V(Y(X(N(J(J(D(?(=(@(@(;(6(8(8(1(0q(,g(,S(&?()<('0(& ()(''&'''&'+{'1c'3Q'5N'8G'BI'B8'D?'DI'JQ'OO'TI'T6'Y5'Y&'['']"']'Y'V'S'SD'QG'NB'IG'E='E6'G6'G.'E.'@'?';':8'16'$I'!?'?':'5'&'&' ''&&&&&& & & '&  ' "' .' ='@'I'Q'`'o't''v'l'l'{''''''''' w'''m'c'X'J'e'''''''''''''''''' '''( (((          | { w v q v w o q o h bX J B = 8 5 3. +) ' $ "''5;;851=61&                                                                      !u &h 'k ,d .f )m 'm &x ! ) ) . ;z Dd Gf J_ Nd Sc YW `R bK `K ]J ]F gA mE lO cO cT [Z Qm Oh Jh Bx @ : = O O Q O I O Y gs [ Q Q X [ e j mx tw oz e [ S X Q Q J = ; = B N N Q N I I D I I O ^ h m q q l o o q y y v w w t q j b o o m q { y t t ~   } | x u x     4C979D<4-((-&#|     ""    # # ( - - 2 5 : = A Q V ] ] X X e s v                     }     ~ v o j e d Z U }U X }Z uQ nV iS fL fF fB iA i= i5 h- i! r+ s- w$ z( }(                                                                " !    **************************z*t*o*k*h*\*Y*V*C*>*9*6*'*$** ************** * **s*e*i*s********{*t*n*]*[*N*N*Q*Q*B*0*-***)))})v)p)p)q)u)v)u)q)q)i)])X)Z)U~)Py)K|)Fr)Co)>h)5`)5Y)2T)-9)(*)%)!(((((((((*(0(2(4(7(<(:(C(C)F )H)N")S1)\>)bG)gJ)c)y))))))))))))))))))*** *2*7*D*G*L*'N**V*4_*6b*Hj*Ty*`*f*j*m*t*w****************''''''' (( ((( ( (((((((%(&(((*(*(+(/(0(2(2(5(:(<(A(A(9(A(>(>(C(R(R(W(S(U(R(P(P(S(P(_(_(](|W(tH(eD(aF(^R(WU(WZ(VW(CW(C](BZ(>](6](,d(%p()d(1](=\(>W(=P(1A('<(A(H(N(X( W( ]( X(X(i(q(u(u(v(x(((((((((}(p(g(f(f(b(g(g(a(b(a(](b(b(](_(](Z(F(4(*(4(M(U(U( R(K(C(C(:('9(1>(=K(BH(CA(CI(>P(CU(YR(\N(aC(hA(tD(U(\(\(W(K(N(N(D(:(7(9(7(0(+(&(%(&(%(((( ( (( ((((' ((('''''''''''''''''''''''''''''''('''''(((''''''''''''''''('''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                                                                4 7 5 0 0 - ( &  & 0 4 **************************z*t*o*k*h*\*Y*V*C*>*9*6*'*$** ************** * **s*e*i*s********{*t*n*]*[*N*N*Q*Q*B*0*-***)))})v)p)p)q)u)v)u)q)q)i)])X)Z)U~)Py)K|)Fr)Co)>h)5`)5Y)2T)-9)(*)%)!(((((((((*(0(2(4(7(<(:(C(C)F )H)N")S1)\>)bG)gJ)c)y))))))))))))))))))*** *2*7*D*G*L*'N**V*4_*6b*Hj*Ty*`*f*j*m*t*w****************g(d(d(a(b(_(\(P(H(I(N(P(Z(Z(U(U(X(](_(a(_(b(d(d(g(i(g(''''''' (( ((( ( (((((((%(&(((*(*(+(/(0(2(2(5(:(<(A(A(9(A(>(>(C(R(R(W(S(U(R(P(P(S(P(_(_(](|W(tH(eD(aF(^R(WU(WZ(VW(CW(C](BZ(>](6](,d(%p()d(1](=\(>W(=P(1A('<(A(H(N(X( W( ]( X(X(i(q(u(u(v(x(((((((((}(p(g(f(f(b(g(g(a(b(a(](b(b(](_(](Z(F(4(*(4(M(U(U( R(K(C(C(:('9(1>(=K(BH(CA(CI(>P(CU(YR(\N(aC(hA(tD(U(\(\(W(K(N(N(D(:(7(9(7(0(+(&(%(&(%(((( ( (( ((((' ((('''''''''''''''''''''''''''''''('''''(((''''''''''''''''('''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a#p###########$ $$$$$$"$"$%$.$.$)$'$%$"$$$$ $$$###########~####y#t#j#^#Y#M#G#@#=#>#>#=#=#>#=#9#9#>#;#3#)########### ##### #### # #"#"#%#*#1#3#6#8#=#B#J#Q#V#[#`#a# "'*6; = = @ L( W2 \G fU ml kt fv e~ f a ^ ^ a fs fq ^n \g Y` [] YU OD M7 J2 E( C ; 4/)$                } v q l o v }                ! ' , 0 3 8 = = G J O Q N T [ X Y Y ] c b ^ b ^ ^ c c e l l m j h b ^ [ ] [ Y X V T T S Q L L @ 8 8 6!5 5 1 0 ) $ $                                 !           4C979D<4-((-&#|     ""   VTJE@?;66;#;(8.531..-,+'-&    ~ywttuy||~ #"&,(6.8&568;=? EIVX_blpuplifgfdffb]ZXUX\!Y!Y"W3T+VYWOOLJG@ECGE C@>=/)''%    $'5: @"D"J'N%S'V,^,g/m/o,l*l'v%q'l*c)^']%[$V Q [IND@?:8?@BEEGLLIGGD??3,,').8[{wrVN?;?8.&'+8:6:;60+)&)'"" ""%),=@TYY\`hot|;@B86&'++)+.5:6@@ENNBIDEBELEO]bj{ #/4:CKPC?<72*!!#~yohbc^`YYQLSSzJ~I6~5|:z:zufh"j'h0e5f)e'c'\\!i``i o}"'5=NSY`clry     #"%#   &+/+449(4/444C7H7O>ZD_?U<K5A9;:,<-<4?/F1<(:790-- %  re[XY[]]YTVTOJ@60+tob[]dixttqqnnnl_beggigigbZUVUQLKGB?==A==::8::2.++())()($##!#).0277<==??BADGIIQPIQbgillost}  }xonnq~tonljjnstx0 - 0*?/?=GQD[GfFmIoKwL~QV_`d_dbZ[bgqv{~}voniedilg~gwe|b|ZwSyPwNrPhLfKaL[NMPGLGF=D,?"0"',12612#6$7$<C#HH#MUYhf c^U#K!H)C&C);$6)/!((*'( %%"  #!#&!     !#(()-25835=DINIF:20.++$#$#&)02.(#)&-.0+3-.5737.55-)).&)&#$!-.&         #'zxwuux} @ C C E M P R _ c k n p s n r s u z |  }                          s r n h W Y W T T R O U T J C C @ ; 4 2 2 4 C F > < 9 7 ; @`[_bnt}v~nd`_`&5BB:3.'!I$T&]-]-`.b-o(r-v&w&{){()++.|2{0v3t5m2g0[-T-Y([J#G&3+3}~ }xt6oEsLoVoYxevpszsvvtnlooqoztmtflTiOlOnRoOnBtsoqtt{x~  },&,!wYKA1,'" ysje_VQGD:. $ ## #-28?FDGU]djs} 2@HTZh !")urusurpnuiqhbfbfihnismvnpprrsrp^\WOKKMKE@/,%"#(-2@CEMOMMU^_^8;BLOV{Xv[lY]YN]=`(jr khmW\OL84*/B@GMH LO[WO>!1#% -59940&#8Ya QORCC1/=L`\pkrt h$`+^A[L[sX}QO@8   3>E J [f    jYM=4 nlp|rhhc]VTS O4L>DM=R.Y'ffmt &07ALSgo{-7>R\s $08ITY`j| %7<FM]aiq}}|xwspmcZRJF@@A A94 7'9/6=9G6J2V/V-L,M(Y,^-c/k-t'y#u#|~      # ( 7 3 5 A G I L S ] l l d g t }             } v s g d ` b _ _ ] Z S S P!K D : - ( !          $ ) 0 : B L P Q X [ ] ] ` _ d e q v {          ~ } g ` ` g g Q K F D ? 2 0 2 & !     z z t#o't,p,e%[,G/G1O6E4=7,6'2"27>> < >EHPZamnsux||}lg]XXKF</% yjbYTI6,$ r_WO>2}qneNI=0$ #(.8ILGAGAINKFF|:z<}A|FwKrQmPiQfK^S\P_F^BYBUAW-M#KCA C>77762-(%   #'*/249;>CEEKP!Y+W?aA_PhFkNsNzBx<x7z57AAKG?==B=G<32++#  zpc`&a.T=LG@J8O"OS S]bgm|{sfg\Zdaix}vxsuz  &*/59>}AzK{SuX{]q_ibaiblXzRIHIANSdnv}lxfdffaZRIF?><:0-%!   zusig\Zdaix}vxsuz  &*/59>}AzK{SuX{]q_ibaiblXzRIHIANSdnv}lxfdffaZRIF?><:0-%!   zusi&#(#*#-#/#0#7#:#Fx#Iq#Mb#MP#WC#aA#g9#k5#l*#p%#u&#!#!#&#&## ##"""""""""v"o"b"g"j"g"`"`"zX"q["aO"PO"HI"C;"+5"%:":"3"=";"1"!""&"!""";"T"l"t""""v"j"e"`"]"T"b"h"v""""r"c"Q"@"1"""""""8"8"."%5"2+"?."F8"I@"UI"aI"lS"xQ"Y"Y"b"b"]"I"@"E"V"X"T""""")",",""!!!!!!!!!!'!6!C!M!T!V!V!W!a!h!|!!!!!!!!!!!!!!!!!!!!!!! !|!!!!!0|!5_!=T!AA!?/!8!- - 0 : = = ? K I L Z ] _t `~ _ Z U Q K G B < : 5 B !FT!Dc!=x!2!)!!!!!! !!!!!!!!!!!!!!!!!!!z!p!h!`![!\![!W!T!H!@!;!6!/!*!"!!!!!!!!!!!"""1"5"5"0"""$"5"S"^"`"O"T"b"o"y"""""""""#&#-#&#(#z-#p*#i>#_H#ZH#PU#Nb#Iz#:#7#2#/#0#/#+#*#&#  z(Z3F?9A/K#QSVVZ`dgiglosvysoosqsxyeVNJJV[]cqq^][]^`beb]VS[c~{{|   (;66<<A<979<>A CA@CEKOKP&W/W5\?_D\F^M\WdZhbi]dWiWkUnUpXuWxDu?u7r5n5n0m-k#iihiru&x*u&smiihinsuzz| %&&(++/7?HPXagkqu} $)+)++,066;=DLQV]bb`]]bg{mzovqko_qWyR|MwFv?v7{5{-~& ~tm`TNILD;0.+&"                                   u n f c  h h d ^ c  f %c (\ +U 0U 2a 4i 5u 9u ?s An Ac Ha H^ MU RR XP XT ]U _P bO fH iA n@ n; u6 s* q" n s s s u s v q n k i l i i k p p q n i b ] Z X U U S} S{ Xy Zv Zl \l bj dd fd kb k` nZ u[ zZ Z X [ _ _ V U Q Z V S K B < 5 : < ? B B G K N V [ ` j q v }                               } s l i j j  n q s v n $j $` %_ %U )N ,L /D 1< 8< =: B8 G3 H0 J& O) R. [0 [. [$ \ ^ a f h k p w y |                                        y y | ~  z o e ^ T L E @ 8 6 3 '                # ( - 2 3 3 7 7 5 7 < < B G L N P U Z _ d g j n o s t y y {                                                               # ' ( , - 4 7 ; C H R Y \ W P O R ^ a" c% _* ^3 Z6 Z9 \> ZC ^H _R fW iR iW mY n^ ph i c c d k m n r x }   ~ e V Q C B > , *  " % 4 8 3 1 . , ' * / 4 1 9 9 3 *                   $ / 6 B j y       6 I L V ] e+ g- j7 v< yB K V Q P 8 2                   # ( / 4 : ? C I M P P \ d k p s v z z }              u ^ $\ .a J ` e o r ~ w 6  ; B 9    E O T ` m  t t    & + . 3 3 5 7 3 + ) + . 8 : B D ?7 <D 8D 2: 8G :I 8Q :Q 8l :l =` Dd Ge In D A B B N~ Px Uy S L L I D B B D ? = 5 2 . 3 5 3 5 < ? 7 5} 3 - 0 - . - ) & &    # $ $ & $ $ & $ # !  # #       !  !                                   , / , 2 ; 9 C P k r r                )+1L[%  &575apww|~ztutk ca[[ VECBC$@);%8*4%.),%,'"q_U5+q6         w k m |  |  x  h  \  Y  W  P W W R  M K  J  A < ; 7 1 ' #     #       * 1 4 4 9 9 = 9 =t ;q ;x 8x 8 8 4 3 / ) ' ' % "                                              #  - ,  % '    " % " < > E R Y W k                           z z m n h f p w w } }} } { v u s p n i i g b a U P M K M N M H F ? : 7 7 4 4 - + & % ! ! (  &, &,,=@LT]emr!#%&--+(%&&#&2tHXKGSBSIW?_;_D]J\QbcfblgucvexwsqifaXUUWPMPNNMIFA?CHKKKMPRNK59s7:<><C>7959IKMKMP]fiz'9EE`u~  !52BB<A8<IUX i `UU`"_$d%`.X1N6V4K=A>3=&@BMWo3p8m<p?r?r7z=8:DKF===F??QZLBG0 !7D-,'/19@~@|;|yyurphff\OH=4)"14-(*2TWa$" %*/8>CMW[efmkhfppoortr ppro"m!k$k.m)o)tu y;ey%&!&:UdbUUbssll]kp}}xlCQLE9   ",),/GLOYjutmtu|7L`lqy~##674'1M_mcY^fkpx #(+-}3777<=FIKIKGGDAB?:?j:7(bd]W N PMP_ \i 8/;@Mk|rz ++($$(z.k2^2O84:*5,5*3-$(%-?X[$]*Z,V)S.V>ZEbMbHgJjEeCn4~@GEJBMG6, " $4ff#7@@MPUaachp })?D}B|-x+x0zvxzz|w s rrps*fsfhciar\hWmTuPpHp<x4i,h#YTA@E74'" %CZ_d^smdmnd{UsJj^`Y]PVUNaId?a8W7Y5R(^_ZPYa TPW_h~tptppxmxkuj^hW`W[HTMLHJ;M2J-J#G#C4=7;1@,;-98"43"/*) $$'%$')'%$"    yt x    xgj`VSNLNB:.-30?N~ #'7CHEJF<MO %*138BJVp1:1& +{#%4-2%&92*-&2+~%#zjWeXcXeicnescva}fccfffecehjkmmmjhjkkoomrkomomp}rvpkrktsugydzau_tUuIyCCDNHCHFM]unsqldaa\_ZS<*    |bV[3+:?FSZ`gv}   ,G9VFXZSfGr1xLwTs`rmkifyhtdmdv_~WUUPA@>;6/(#vwghb bg~~r~vwhcgy   Xkls}{qnxxkk]_\AH(  % 9?HZ*z,s,d'D(:,:1D6C6H2W6_@nAFEFHFHEFE 9,2L(#"#('#   Z  d j     } n j o N - ! +  & ( 2     t l+ !   7 3 8 : A 8 B B L S U ] _ ` b l v { y q s l q l ~b qI lK iG eZ `` _s `} d ly oq xg yn x~ x y           } x   {            ~ X K F  : ( -& 7$ < ; ACOUWY^ainukzyaW`pywmaYcfjpztt 8     !!*!6!4!>!J!d!c!n!!!!!!!"!!!!!!!!!!!!!!!!!!!!!!!!!!""""";"?"1"."'""" "!!"$"&"!"!!!!!!!!! ! ! !!!!!!!!!!!!!!! !!! !!! ! !!!" ! ! """!!!!!!!$!&!$!'!'!+!.!0!0!5!:!:!8!:!5!3!5!.!0!.!.!+!)!&!&!$!)!,!,!.!3!3!0!0"="E""G!"G"J"L'"I,"G'"E3"E8"I5"J@"L@"NJ"OI"O""S"T"S!X![!]"V^"Yg"Ym"]~"c"e"h"g"l"m"o"q"q"t"t"w"t"y"~"{"{"w"w #{#|##-#+# #-#g#l############$$"$w$$$$$$$$$~$o$t$p$Q$^$\$H$J$C$L$L$V$^$`$h$j$`$c$m$$u$~$~$$$$$$$$$$$$$$$$%$$$%%!%$%7%<%F%n%%%%%~%%t%d%U%g%n%y%%%%%%%%%%%%%%%%% &%%%&&&&6&7&,&&'&1&>&W&^&J&A&J&O&R&W&m&&&&&&&&&&&&&&&&&&&&&&&&&&&&{&{&v&q&j'c'^!']"'`$'c'h'q&{&|&&&&&&&&&&''&'&&&&&&&&&&&''.'Q'e'y'v''''''''''''w'h'{''''t'g'l'o'''''%'+'0':'<':':'F(K4(N2(SA(UW(R_(S}(](](\(Z(X(W(Z(Z(S(N(M)I*)ME)M[)IW)H^)C`)>h)<t)9)7z)9m)9M)5M)2B)01)-8)+")()%(%(%(!(!(((( (( ))') @) Y)!`)\)M)R)1)1)9)G)Q)`)|)))))))))))))))) ) ))))))))))))))))))))))))) *$*0*&*+*L*N*]************+%+4+7+A+T+R+f+i+c+f+s++++++++++++, ,, ,,,++,,,+,&,',",.,:,B,=,@,$,,?,B,;,;,G,L,S,Q,[,V,[,O,X,],[,T,c,b,l,o,r,y,v,~,o,l,X,N,^,`,O,B,',1,),++++,,, ,,,,&,$,@,?,J,~[,c,tl,tY,r[,rc,qg,h`,T.,S&,J,D+@+=+6+5+1+0+++++,+,+$h+$\+!a+W+J+4+*++++  + ***************}*i*b*[*`*7*:*3*-****))))))))))))o)j)Y)W)J)zG)s')p")n )m )m1)rG)wQ)xc)h))~)y)|))))))**+*:*F*S*V*D*G*j*x****************++++"+ +'+6+;+P+T+P+T+9+4+(++********** +1+@+F+R+\+f+c+f+p++++++w+p+z+++++,,,,,",1,L,O,L,@,1,:,?,V,T,X,Q,T,xB,w1,s,,h8,dB,^b,\,^,_l,dG,i:,u3,xI,Y,X,`,Y,],e,j,y,,,y,q,Y,T,y,,,,,->-]----.W.k.|.t.a.\.R.H.;.=.C.=.;.@.H.z.....}.z.w/x/z /}...../&/}G/j//////|/x/w/r/n0i/0h;0kO0kZ0h|0_0_0Z0U0M0J1C1A1A,1;D1<Q1C]17r12r1-1"11 111111111 1'1<1F1H1H1H1C1C19191717122"+2+252>2 A2_2 v2 f2"k22 2222 2p2Z2R2U2Z2n2v2}2{2222222222222222223333"3 3$3.3B3a3y3w333~33333333333 334)4_444444444444444444445-595P5T5Y5W5^5h5r5x55555555555555555555555555555555555555555555 6655555555566666"6$6606D6Q6X6[6X6b6o6r6y6666666666 66666m66 6'61616-6164676762w6161q62e6/g6-o6-m61^67T6A]6Jm6Jr6R6R6P6O6P6R6U6U7Y 7Z7Z7d7n6p6w6z6u77mM7ik7f7f7d7d8a.8aM8_h8\8Y8R8M9H<9C]9AS9C79A(9C8A8H8J8H8K8H8;z86t8<h8>\8;W8;T8;J86R81h81u8287878;8> 9@e99_9#39 999#9#9-)9/91!91919,9'9*9/9/8284878986868(8"8#8"888888888888 8 8888888888 9 9!9+9(G9@y9A9@9>:;:6F:1i:,|::::: |: s:m:Y:P:T:R:H: C: >:#: (:7:2:%:":4:>:_:x:::::::::::::::::::::::::::::::::::: ;);;;E;I;m;m;g;X;=;?;c;v;;;;;;;;;;;<<9<?<R<<<<<<<'=B===5>_>j>>t>o>l>e{>dy>e`>bo>bx>[q>Xs>Sg>N`>Gi>Ge>Dl>=e>Ds>:><>=>:>5>8>8>5>3>3>.>#>> >>>>>? ?>>>>>>>>>????????  ?????? ?$(?&1?)6?(@?)H?.J?2\?3Y?5\?5f?:i?7s?8?5?5?<?8?:?A@?@<@36@0E@.[@.@-@(@(A(A&A$/A-MA?}ABA<A<A5A+AAA A AABB)B/B1B>BRBBBBBBBBBBBBBBBBBBBB BBB!B#B)B0B0B.B0yB2tB7wB=B?BBBDBLBQB_BbBdBeBbB_BX)CV?CUbCVyCNCKCICFCBCBCBCFCICKCPCNCLCNCQCSCLCKCGCLCICLCLDK%DIaDLDKkDIkDIzDIDLDNDLDLDDDBD?D7 E3'E0QE+hE+`E)eE)mE&~E#EE#E#E$E#EEEEEEEEEEEEF FKF?F%F&F-F/F7FPFǹڹݹH?-/MR_u}pq{}UR˺źú˺պ1Jp|ommca^`^YO~OQY\VVTRRJHLH6*%%"  ǻػ޻ػԻֻ޻ֻٻݻ   !     "%**,.1/ӻ1ϻ3ݻ4޻1ʻ3ǻ4ʻ646!9(684:17/8/=4A1_1U3N/N.Z,V,N)I'I$K$G KGGV] V$X$P'V*V,`'d%i"%$%)/g1e1g.,.)'˼*ռ'ؼ'%    *@O^n_aWakxzwZad_cc^T@>,   '-2/# ɼ׼ͼɼļ{}{}{}{zzxqqlnülü\\\ZXWUXqWgUdRbNXN[UoNMIyHyHoCdCgDvCy>q:j:q>x?<:972+*(&**/2~4}4s2q2j/e/t-x*v!v olZ A%B-Q-L4P7I:K:F>B2I/G(=#2#(*7?ACCۻNRUWNNN|NtRpSzUzUoXk\e_RfHkRuVHLGG6.պƺdSA?DCHID:794*!!*25<A?DCFFC?>97*  չйڹڹιǹ¹ɹ߹۹uιs¹kPFfE?ECEFEAEAEDEDECEFEFrEHbEKcEN[ENTERVERNESJEUTE\OE]=Ef5ElEfDlDlDiDiDgDgDdDdDdEgEiEg!Ed$Eb+E\:EX=EU:ESBER@EN6EM'EN$EPEUEUEW EWDRDPDUD\D\D_DZDWDSDNDNDMDK|DMsDKkDMaDDEDD>DD#DC,DC9DCEDIaDIxDKDKDNDZDWDSDRDMDHDAD?D5D9D>D>DDDDD>E9 E<E?EF"EH3ENEEKTEAQE7IE+NEgEvEEEEEEE#E*E+E(E-EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFF FFF FF(F~(F{#Fv%FvFmFjFjEgEbEYETETE[EhEoEqlErBErEEv?E|EEDEEELEOENEQEEE=E?E~8E1E3E'E'E"E$E)E!E~E{Ev&Er)Er5Eq?EmEjElEmEmEhDgDgD`DXDODID?zDDDBzDIwD=uD:mD1JD0ED1HD3FD3>D64D36D,AD+>D'4D$%D&D'D)D$D& D$D& D& D'C'D&C"C"DCCCCCCCCC C CCCCCCCCCxCCCCsC}CsCqCgCSCUC[CPCICNCVCZC[C`C`CVCLCFC?C2CAAA2A5A5A+ApAa@^@_@h@m@r@|@@@@@@@@@A@@@@@@@@@@@@@@@@@@}@z@x@}@@@}@|y@}t@xt@wy@x{@x@s@n@m@_t@^l@Zb@^]@a^@iY@sL@xE@|=@w3@x0@u0@r5@p3@n.@m!@h@a"@c@f@h@p$@n@s@s@r@s@u?u?u?s?r?n?m?m?n?d?f?a?^?J?F?F?E?C?>?7?2?%?%?*?(?*?'?#? ? ??????????????? ???? ????????|?p?U?A?A?K?R?a?s?p?i?i?m?x?w?z?????????????~?t?o?g?g?Z?I?8?.?)?&?)?+?)?)?&????? ?????????????|?????? ????? ? ???? ? |?w?p?p?x??|?x?s?^?R?K?M?J?A?@?6?/?,?,?6?7?O>R>R>O>M>L>=>1>,>$~>~>v> q>o>s>n>x>s>v>}>}>y>q>n>l>n>l>q>t>y>x>}>}>x>}>}>>>}>y>i>j>n>i>d>Z>L>B>8>>>>====================================={=z={=v=s=q=n=k=k=g=f=b=\=]=\=W=S=I=F=<=9=4=/=+=+=%=#====== w=m=j=c=O=B=>=6=1=;=;=6=6=3=/=)= $=$= = =7"=I"=l= ==}===== =<<<<<<<<<<<<<<<<<<< <<<< <%<*</<6<;<@<E<L<Q<V<\<a<f<j<t<<<<<<<<<<<#<2<5=3=-<(<.<2=5=?=F$=L%=N'=K1=G3=L8=P6=oR=yR=M=E=;=G=J=R=[=e=u===================>&>+>3>.>D>L>N>Z>Z>d>g>e>j>j>v>#>,>/>9>C>J>T>Y>a>u?w?w?z#?|,?6?A?@?@?;?@?T?\?p?z????????????????????????? @ @@@ @@?? ?@@"@'@,@6@;@B@G@L@S@Y'@]8@b;@eD@gJ@gX@bl@b|@^@X@X@`@e|@g@h@e@c@e@j@lw@ol@rV@|J@5@|+@y @t@v?q?o?l?g?e?c?`?^?[?Y?V?V?T?L?D?B???:?6?5?1?0?$?"?????????? ???????????????}?p?k?d?d? ^? ^?P?M?K?A?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>y>x>j>l>v>y>~>y>{>v>x>q>g>o>q>y>>x>t>{>{>}>>>>>>> >>>>>!>&>)>+>.>0>3>3>,>,>&}>"x>o>g>d>_>_>Q>L>L>&Q>&N>!I>'=>)B>,A>00>,>) >& >'="=&=&==="=$=!y=y=p=c=V=R= G= 6=/=3=/=3=*==<<<<<<<<<<<<<<<<<<<x<u]<hW<dX<aP<dS<fP<d?<T?<FM<FF<M><C5<@/<;2<95<9D<<K<@K<AN<>P<;N<6S<7Z<>R<CR<Aa<Cg<<s<<{<9}<<<><4<1<(<%<"<< << u<q<u<n<i< \<"U< I<H<K<F<C<7<+<<<<" <% <'< ;";%;";;;;;;;;;;;;; ;;;;; t; l;l;h;5;);;;;; ;; ;;!;$;:;?;D;L;S;e; q; |;#|;'q;*m;(h;'^;*S;*B;,?;/D;2?;7?;<8;>,;C);E$;H!;H;E;E;F;E:C:>:<:;:9:9:;:<:>:@:<:@:C:E:C:F:H:J:J:M:M:R:Yr:WY:YW:WT:UW:UU:PF:M>:K7:J7:F>:C<:AF:>J:;J:>@:91:;/:;*:<%:@#:A(:C%:<:9:2:1:4':/':2,:4,:21:,,:%/:#*:%':( :%:#:':%:'9'9*9-9/9296929/9*9(9'9*9*9(9%9#9,9,}91l9/_91Q96K9;=99792(9'(9 +9(9 9 99"9"8'8-8/96948682868786828686828282828484~828181j82m84f84`82\86E86684*8-8-8172717/7#77 v7g7Z7R757*776666666666x6t6q6j6d|6dt6bq6_]6SS6QS6SI6QG6KI6FB6I:6F:6D36B'67"656)6(6$6#665556 5 5 55555555555555555555555z5r5n5k5d5\5W5T5K5C5>525-5'555 554u4o4h4`4^4`4\4[4R5Q5Q 5T*5V65T<5RU5Y^5\c5Wa5Vf5Ym5Yr5Tr5Rx5Lr5Hs5Gr5Cs5Br5Cm5Bi5;m58r54k51r5.k5'r5 m5m5f5a5d5n5r5u5 5 555 555%5*5.5.535456585656565858565/5*5'5%5$5 5 5%5'5$555555555 55555555555555555556 6"6"6!6 "6!6 6 6 65656666&6.6 ,6,6366666"56+6)16,06/363066)6816/L6*m6168666/6.6,6*6$6 66666 666666677 7 777 7 7+727>777>7>7?7:7979777-7&7-7*7#77 7776677 7777&7/7(7/707470707*7!7x!7s%7q+7l07k57f<7fI7_K7_I7aF7Z77X97R27K?7H>7D07?*79&72 7/ 707/7* 7 77677 77 7 6 666666666666666666666666666666|6{6t6q6h6]6L6@6@6?6?686865636.6,6,6+6'6$6$6!6!6!6"6&6"6"666 666666666666t6h6b6`6]6Q6Q6J6|I6z@6n56d&6_!6T6O6H6A67 6- 6(5%5555555555555r5m5d5a5W5W5U5P5M5}K5~E5{A5y>5vA5t;5s95n65j75g45d25]'5] 5[5X5S5P5K 5G5B5A4<43404.4+4+4(4+4+4(4&4$444444444444 444444444444{4x4v4j4d4[4N4K4=4<48404-4)4(4$444 443333333333333333333333333333333333333333333333333333333333333~3y3w3t3y3w3u3r3o3o3m3r3p3e3e3c3`3^3^3W3R3R3V3T3[3Q3O3Q3L3H3E3E3B3B3C3C3@3=3@393836363.3)3%333%3'3 3333333 3 33333333333 3 3 3333332222233333.31383936363B3B3>3G3G3L3J3@3>3B3 @3B3@3B3@3(E3-C33E35J38H3=G3DE3IC3NB3S@3X>3]=3d;3i93n83t63v33{13~,3'313333393B3G3M3[3\3m3m3k3m3o3w333333333333333333344344444#4!4$4$4!4$4$4&4#4$4&4(4+4.4042474<484?4 B4D4 G4I4I4N4L4P4K4L4P4 Q4"N4#I4'I4-N41N46V4;Z4E]4JZ4T_4Y_4de4dl4hn4in4mj4pl4ug4|j4o4x444444444444444444444q4j4]4Z4V4L4?4:404)4(4$444 433333333333333333~3p3j3f3c3a3V3G3=363*3%3'3 3 3 3 33333333333323 3 3322222$2'2,202325282?2@2?2B2J2N2N2L2G2G2J}2Jx2Gn2Ii2Od2Q\2SZ2TU2SK2VK2YP2]N2^H2bC2]>2^22]%2Y!2[2Y2Y 2^2`1^1^1c1g1o1t1w111111111111111111 1 1 111111 1 111111!1%{1({1+1/~1214~15{17w1Fl1Ig1Pc1Sg1Sl1]o1ag1dX1gY1lc1nX1vY1S1L1N1J1?1=1:16161?1;1B1B1=151+1+1'1111111 11100000000000000|0r0n0d0R0J0F0A0C0>0<090'00 0////////////v/e/[/Q/K/G/7/3/3/(///........./ /(/{$/q/n!/g-/\./W+/U&/N(/H!/F/D/D/?/?/9//./.*.#..... ..................................t.`.W.~M.vG.v>.r=.m/.g).e$.`.[.V .X.b-c-e-l-w--{-f-W-~<-|5-~+-~--,,,,,,,,,,{,r,],T,Q,t8,g.,`,,^",Y,V ,V,Y+Y+O+L+L+L+G+G+I+Ez+Bn+6W+3F+3>+8'+= +6+5 +6+8*6*;*;*=*@*B*E*I*E*G*G*Eg*OU*YK*[?*^7*b3*g3*g-*h+*o.*y+*.*&*!***)))))))))))y)o)o)f)Y)T)C)') ))))(((((((((((((k(\(X(U(N(<(4(&(( (('''''''''''''' ' ''''''''' '!'%~'2V'4L'5G'5)'7 ':'D&F&K&P&W&\&_&\&S&?&:&4i&&a& c&_&\&T&M& A&E&@&<&7&<&C&E&J&E&O&Y&c&h&i&d&d&R&C&;&2& &&| &y&r&m&m&q%t%v%~%%{%{%%%~%%%}%v%o%g%X%~Q%F%$%%% %$$$$$$$$$$$$$w$j$^$V$V$Q$T$R$@$=$6$3$)$$$$$$$############s#q#n#i#\#U#K#A#-#*#*#&####~#y#v#t#o #l #h#e"^"c"c"b"]"Y"V"S"S"Y"["Y"S"S"Q"O"Q"V"T"T"Sv"Im"Bq"?q";e"6^"5O"5D"18"11"..",'"."5":"="="="B!B!G!L!Q!V!Y!]!]!b!g!j!l!t!t!t!t!o!l!h!b!`!^!Y!X!S!X!X!T!V![![!]![z!^r!`k!^a!]_!]Y!`U!^P!cJ!jH!oF!w@!|>!~6!2!2!6!6!-!%! !!!!!                        x t n e Z Q P N A 8 . $       ~pmkpookf[TTJGGHC>96.*"  & +27>CIPW]agpu{zvqkaZRH<5-&   %')))%',/6;>BC E BB=;999;61/,*'%"$ vy{rl c ]SOE=:6,+)    ""s%k%\ UT^ahhhWRHFJ E"E$M$P%R'H*>/@1<8;=2='9'4-1(,1*4%1'*,'/1 ,'$$$)**$$*.36;88>EJRV[^afmrzxoe]XPLD80$~ywwyytzotmkkcmWoOoLjGh=f3f'eca``^\YWV^^YTWWYYRQRQMzEv@{9z9p@gB_>U;K@K@A=9=09-9#8884684431/.,,,*%""$$~wrqmebhbYQEB:;=3+.)$       $.6@DEE?6.${unkggbaa]ZSPPNwIuDzCDFDA><52-****#     xppmif_TJA@<2*(}yyogd_XVLDB:2)))!~|trmka`[[`aYWMJGBEEGLE81,),'%    !!!#*}-v7u9s9q4l4b/]/U/M0A+<&7!<4+!+!&#%%#   #%-/ 00/005992/(%%+--((#  {tmc[SNIGDLNE=3+&    ~|wvww{{{{|zw}zwm|\{TtPoOhOcO]KXJQHJFEFBO=Y:^1a+\$U!MF@> ;72/,*2<CPT\cfhfni^chkhmw|umd _ YRK!F$A!><< AEEA<97441/ *(%#! '.5::;B@=3351)00. + ' & "      zpmkfh~d^^\^}Y}UyOvKvFqCq@i>g@d<]>XEVHXKU^QaGfDnFpFs8x3($#   #&#yra^\YRMGB=9664/*'" "z$w*u.r4n8m=h>h;c;^@ZC\CYHTLTMMRFWEYE[CW>V6T2V/[-\'^"cafhf jhfkkkkottwz~~yxqd]XPIFA82-& ~wpmf\\WQMLC=8/.)$ |1|11111111111111222  22%272?2I2U2k2k2q2q2v2222{2v2o2g2]2X2T2S2N2B28202$222222222 2 2 2 2 2 2 2 2 2 2 2 2 {2 v2 s2 p2 q2 p2 k2 g2 g2 d2 d2 a2 b2 ]2 \2 Z2 X2 P2 P2 F2 F2 D2 C2 A2 ?2 >2 >2 <2 92 A2 <2 :2 22 /2 02 &2 &2 02 22 02 *2 -2 +2 -2 -2 /2 -2 *2 (2 *2 2 2 #2 !2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1} 1} 1w 1w 1s 1s 1x 1| 1} 1} 1| 1| 1} 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1} 1z 1u 1u 1r 1u 1 1 1 1| 1| 1x 1u ~1s 1s |1r |1p w1f t1f q1d l1i l1k h1n h1r l1s h1w h1x g1z h1z m1} l1 m1 m1 g1} e1 b1} `1 ^1 ]1 [1 X1 T1 V1 X1 X1 T1 S1 V1 [1 [1 ]1 ^1 e1 h1 c1 b1 ^1 `1 e1 e1 l1 m1 m1 v1 r1 j1 b1 ^1 ]1 `1 e1 h1 m1 m1 o1 w1 w1 {1 r1 q1 r1 r1 m1 o1 l1 j1 h1 ^1 ]1 b1 `1 b1 `1 `1 c1 `1 ]1 ]1 [1 X1 X1 V1 [1 Y1 ^1 ]1 V1 X1 V1 S1 T1 Q1 T1 X1 [1 [1 Y1 ]1 `1 `1 c1 g1 b1 ]1 ^1 ]1 ]1 X1 X1 ^1 [1 ^1 ^1 b1 e1 b1 j1 m1 v1 y1 |1 {1 j1 g1 g1 y1 {1 |1 ~1 1 1 1~11111y1v1 v1 w1111111|1w1y1v1t1l1j1l1!t1$r1$o1&m1.r1.m10l13r15q15l18j18l1:j1?v1?q1;l1=h1Bh1El1Eg1Ig1Jg1Lm1Ol1Qj1Sl1Th1Xj1[g1Xe1Xc1Vc1Qb1O^1V^1Y[1VY1VV1QY1NY1N[1JV1OV1TS1TT1XS1TO1SI1VI1VN1YL1YJ1[L1[G1XG1VE1]D1`I1^J1]L1`L1`O1bL1eN1hJ1hL1jO1gO1gT1oT1qV1hX1eV1cX1`T1^T1`X1^[1cY1eY1c]1e`1g^1jb1lb1o[1q[1q]1q^1rY1t]1r`1t^1tc1re1oc1oe1mh1je1ch1jj1ol1jr1oo1th1tj1qm1qr1rq1tm1wm1yj1yl1vq1qv1lw1oy1q|1r~1q1m1q1q1m1h1l1j1c1`1]1[1`1b1c1b1e1g1l1q1r1r1r1m1l1t1t1v1v1w1y1~1y1w1y1w1y1{1|1111111~1|1~1{1{11|1{1~1111111111~111{1w1w1{1y1y1v1r1o1m1t1y1{1{11|1~1|1|1{1y1r1c1`1^1Q1N1G1I1G1E1B1B1=1=1:161513151616101'1$1$1111 1111111111111111111 1 1110000010000111 1111110001000000000000000000000000000000000000000000000000000 0 00000000000000000111 11111 1 1&1#0!0 00!00!000 0#0&0(0!0&0&0(0004050:0<0C0D0H0K0M0N0R0R0S0Z1\0_0a0a0b1d0d0g0g0i0l0q0s1v1p0u0u0v0v0u0s0x0x0{0{00}0}000000000{0{0x0z00000000000000000000000000000000000000011 1 111111111!1&1,10111:161;1?1?1B1B1 E1 D1J1T1X1[1]1'e1)j1%j1'm1/j16o1=r1Bq1Ct1Gv1G{1J1L|1M~1J1M1M1R1T1Q1M1H1G1E1C1B1@1>1918191818161613131/1,1.1,1/1/111.112.2,2.2*2*2, 2) 2.2>2E2J2Q 2T 2`2h2k!2k*2h/2h22h92j<2k?2jD2mI2j]2p_2rg2uk2up2~z2x2v2z2v2{2{2z2{22222222222222222222222222222222222222222222333 3 3 3333222222z2z2~2y2r2p2o2o2m2m2h2h2f2e2c2\2^2[2T2Q2O2G2E2;242/2)2 2222222222222z2u2n2b2X2A2?2D2A2<242&2!2 22222 222111111111111}1{1x1n1Z1Z1\1a1f1g1f1b1d1a1_1a1_1]1]1Z1U1R1M1M1P1I1K1H1H1:191915141/2* 2#2 2#2%2%22  22221111111111111|1|15O"0S"&S"L"D"B"E"N"O" [" ^"^"h"h"b"^"]"h"t""""""""""""""""""#"# #######&#/#4#F#K#K#U#W#\#|Z#w]#r_#dk#cn#\q#Z{#W#P#M#J#C#C#A#;#*#'######}#u#k#k#n####### $J$a$f$o$y$$$$t$s$t$d$d$]$S$Q%Q%I%KD%ID%B=%3<%2=%.P%_%q%v%v%~%%%%%%&&&H&p&&&&&&'''"')'.'5'='D'J'Q'Y'`'h'o'v'|''''''''''''|'w't'r (h>(^X(T(T(V(Y(Y(B(9(M)M)Q%)\>)h[)pz)z)))))* *&*I*Q*j**********++ +*+1+<+>+E+\+s+}+++++++&+.+7+B+N+P+S+[+i+t+++++++,,$,~;,T,{`,r,y,,,,,,,,,,-2->-U-]-d-l-g-l-x------ ---'-,-2-4-2-,--.2 .6.9.<$.>*.C9.@G.AW.>^.>e.Af.Em.Ep.Ar.Cz.9.;.4.7.6.2.4.;.;.7.;.E.P.U.Z._.h.x.z.......f.M.C.;.4...)......-----{-i-W-M-&--?->-\-U-X-\-$_-)b-.f-3i-6k-;n-@q-Eu-Jx-N{-S-X-]-`-e-j-o-t-w-l-e-c-b-X.V .[.`.e$.g).m/.r=.v>.vG.~M.W.`.t.................................. .....#.*././.9/?/?/D/D/F/H!/N(/U&/W+/\./g-/n!/q/{$/(/ //.........//(/3/3/7/G/K/Q/[/e/v///////////// 00'090<0>0C0A0F0J0R0d0n0r0|00000000000000011 1111111'1+1+151=1B1B1;1?16161:1=1?1J1N1L1S1vY1nX1lc1gY1dX1ag1]o1Sl1Sg1Pc1Ig1Fl17w15{14~121/~1+1({1%{1!111111 1 111111 1 1 111111111111111111w1t1o1g1c1^1^1`1^2Y 2Y2[2Y!2]%2^22]>2bC2^H2]N2YP2VK2SK2TU2SZ2Q\2Od2Ii2Gn2Jx2J}2G2G2L2N2N2J2B2?2@2?282523202,2'2$2222223 3 33233333333333 3 3 3 3'3%3*363=3G3V3a3c3f3j3p3~333333333333333333 444$4(4)404:4?4L4V4Z4]4j4q444444444444444444444x4o4|j4ug4pl4mj4in4hn4dl4de4Y_4T_4JZ4E]4;Z46V41N4-N4'I4#I4"N4 Q4P4L4K4P4L4N4I4I4 G4D4 B4?484<4742404.4+4(4&4$4#4&4$4$4!4$4$4!4#444444344333333333333333333w3o3m3k3m3m3\3[3M3G3B393333313'3~,3{13v33t63n83i93d;3]=3X>3S@3NB3IC3DE3=G38H35J33E3-C3(E3@3B3@3B3 @3B3>3@3J3L3G3G3>3B3B36363938313.3333332222233333 3 3 33332222222222222222222222222222222222222222222{2z2{2{2v2z2v2x2~z2up2uk2rg2p_2j]2mI2jD2k?2j<2h92h22h/2k*2k!2h2`2T 2Q 2J2E2>2.2) 2, 2*2*2.2,2.212.111/1/1,1.1,1/1313161618181918191>1@1B1C1E1G1H1M1Q1T1R1M1M1J1M~1L|1J1G{1Gv1Ct1Bq1=r16o1/j1'm1%j1)j1'e1]1[1X1T1J1 D1 E1B1B1?1?1;161:11101,1&1!111111111 1 11100000000000000000000000000000}0x0n0k0i0f0R0M0M0H0H0E0C0<0;06040604020,0(0%0#0'0"0 0"0%0'0"0"0}000000 0{ 0z 0z0z0z/s/s/p/q/l/k/l/i/f/f/_/\/\/W/P/M/K/F/C/C/?/A/</?/?/:/7/7/9/>/?/>/</>/</:/7/5~/4/2////~/(t/*g/(d/&b/([/&Z/%[/ V/!Q/%P/&Q/+P/-P/2S/2L/4N/7Q/7V/5[/9`/9e/:g/<d/Ai/>n/>q/D/H/N/M/N~/R/S/U/W/Z/]/a/a/d/f/d/b/d/b/a/ay/bt/po/pg/nb/p`/pZ/q[/xd/xn/{s/}s/zy/}y/{/v/q/t/s/{//////////////////////////////////{/x/t/q/o/j/g/`/_/]/V/P/L/L/D/A/A/=/=/D/G/B/=/3/0/$/#////////// //..........v.x.u.s.u.q.u.i.f.d.].Z.W.S.It.Hp.Ny.Mp.Np.No.Ro.Nk.Kc.K^.N\.N[.NT.MM.HJ.?8.C6.C1.H/.N).R.P .K.H-F-C->-:-:-7-(-----....... .$.*.8.;.C.O.R.V.m.k.o.t.w..~.....y.u.y.~...........././ ///!/)/3/7/=/=/D/F/S/Q/Q/S/Z/g/i/g/i/o/j/j/q/t/y/}////~////////////////////////////////////////~///~/{/w/t/v/v/l/j/l/m/l/j/h/e/e/c/b/c/h/j/m/t/t/m/o/l/j/o/r/q/t/r/q/m/m/h/c/b/c/c/b/Y/]~/[}/]{/[y/]t/^v/^{/c/c/c{/`v/bt/cq/^s/[q/[j/Xi/Vl/Xe/TX/NL/LI/OG/JG/J?/L=/N=/Q3/N+/J+/I)/E+/E./J2/L5/I8/G /; /9 /4 /1 /- /% /% /# / / / / #/ &/ +/ )/ +/ )/ ./ 0/ 0/ 2/ 2/ 3/ 7/ :/ 8/ :/ :/ 5/ 7/ 3/ 3/ A/ L/ N/ Q/ V/ X/ `/ l/ n/ l/ n/ i/ j/ j/ o/ o/ t/ y/ /x /l /e /` /` /d /g ~/j x/n t/o q/s `/o U/s L/o B/q ?/t ?/v .9 .5 .4 .* .& .- .- .2 .4 .7 .0 .0 .( .% .! .% .& .+ .- .* .( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . z. z. . . z. p. o. t. r. w. y. w. u. o. m. p. w. z. |. |. z. |. ~. z. y. t. r. u. y. z. r. o. j. h. e. ^. ^. a. ^. \. \. [. W. [. Y. Q. V. W. ^. `. e. `. \. [. Y. W. W. [. Y. V. O. O. R. C. C. B. @. B. B. >. ;. 4. 4. 1. /. .. *. *. .. *. ,. ). $. ". . . . . . . . . . . . . . . . . . . . . . . . . . . .y $.y .o .t .t .r .o .j .c .b .[ .X .V -[ -b .b .b -c .e .g -c -c -e -c -c -^ -[ -X -Q -J -D -N -T -V -X -[ -Y -X -V -S -I -L -G -G -J -J -G -D -? -; -: -= -@ -= -; -: -8 -5 -3 -; -= -= -: -= -= -: -: -: -= -? -8 -6 -3 -0 -+ -) -& - -! - -! -& -! - - - - - - - - - - - - - - - - - - - - - - - - ----}-s-n-l-l-k-i-d-f-k-b-]-X-X-Z-S-W-U-R-K-K-I-A-<-:-:->-<-4-/-5-0-/-&-#-!-#-#- -----------%-(-&-!- -!-#-#-(-#-%-%-------- --- - ---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~,,,,,,,{,|,v,o,l,h,e,g,e,b,b,`,b,`,`,b,c,`,`,`,b,^,^,^,[,X, Y, Y, e, l, w, v, j, c, `, ^, [, X, S, L, L, N, S,V,T,N,G,B,:,?,I,O,V,Q,O,J,S,X,],],Y,`,^,`,],^,[,[,Y,X,S,O,I,G,?,;,5,5,;,=,B,D,I,J,B,@,=,=,:,8,8,6,0,1,.,",$,&,",,,,,,, , ,,,,++++++++++++|+z+|+}+++++++++++++++|+x+w+x+z+|+|++}++++|+u+s+r+r+h+k+n+k+i+h+i+h+h+k+k+p+m+i+i+h+_w+_u+ax+fz+hr+ip+hk+fm+fr+ck+cf+cd+dh+fh+dd+hc+i_+h^+hZ+d^+a\+aZ+a\+c^+da+cc+c_+_\+^U+\T+ZO+\H+W>+M9+T9+W;+T7+W7+\C+_E+^C+^>+Y6+T6+M7+K7+M2+J2+J-+J(+F#+M#+O"+P#+P'+O'+R(+R%+U(+U'+U%+T%+R"+\#+Z"+Z +^+a+_+U +U+T+U+T+R+P+K"+E +@+;+6+9 +; +< +; +6 +2 +2+1 +-+' +'+%+#+%+#+ + +++"+"++++++++++++ + "+ #+ '+ (+-+,+ ++++++ + +++********************* ** ********** *"*#*'*%*"* *#* *"*'*,*/*/*2*7*7*A*E*F*E*E*F*J*W*W*U*W*W*Y*Y*\*^*a*c*d*c*f*c*c*k*i*n*m*f*d*d*c*f*h*r*p*m*m*r*u*s*w*z*}**z*x*x*u*u*s*n*k*h*d*c*f*a*a*c*_*_*d*a*^*^*_*\*\*_*d*d*h*i*p*n*p*p*r*p*r*u*r*p*r*w*x*|*}**********~*****z**}*}~*|~*|*x*w*s*s*r*s~*ry*py*sy*ux*wy*u{*x{*wy*wx*xv*}y*}v*zt*}q*}t*o*s*t*q*q*o*o*n*o*}l*l*j*i*i*o*l*j*g*i*i*g*e*d*d*`*`*_*]*`*_*]*]*]*`*_*b*b*b*}b*}_*|b*z`*xb*wb*zd*|e*xd*wd*zg*xi*wi*wg*sg*sd*re*rd*n`*p`*pb*r`*p`*m_*m]*m_*kX*pV*pZ*nZ*n[*r]*rZ*w_*uZ*xZ*wX*xS*zQ*|Q*zP*xP*wN*sP*rN*rP*nL*nP*kL*fD*nK*rF*sG*sF*sD*pD*mA*n=*m=*m<*k8*m7*k7*i7*k.*i7*i+*n)*p&*u#*w*r*r*n*p)s)u)u)p)r)x)})z))))))))))))))))))))))))))))))))))))))))))))))|)p)j)f)`)[)R)M) L) =) ;) 8) 6) 1) ,) ')! ')" %) ) ) ) ) ) ) ) ( ( ( (((((((((((((((((((}(z(x(u(v(q(i(g(g(a(](Z(X(N(K(M(C(C(?(:(5(/(&((((((((((''(''''''''''''''''''''''''''''''''|'z'u's'p'n'h'd'a'T'R'P'M'J'J'C'A'C'F'H'F'K'M'K'F'F'M'R'T'Z'^'d'k'm's'z''|v'xh'ug'sc'n`'hY'fT'dS'aL'aI'cD'a@'i;'i6'i3'd.'a&'_&'a"'d'f'n's'u!'x'z' ' '' ' ''''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& & & & & & & & & & & & & & & & & &! && &, &, &1 &3 &: &; &@ &B &I &L &O &X &[ &] &` &j &l &q &m &l &h &l &m s&j k&m ^&h M&c C&c @&[ 7&[ 2&T ,&S '&Q %&V "&Y &] &` "&g %&l ,&q /&v -&y 1&| /&~ '& '& ,& (& '& & & & & (& 1& 4& -& ,& /& 2& 7& ;& >& A& J& O& R& U& W& U& Y& Y& c& f& i& n& p& s& u& x& x& }& & & & && &( &- &4 &7 &2 &2 &5 &9 &: &A &A &C &H &N &b &d &n &p &v & & & & & & & & & & & & & & & & & & & |& s& s& r& p& k& h& c& _& _& ^& _& Z& Y& Y& \& \& Z& U& W& W& R& O& J& J& E& A& >& 9& 7& 4& /&$ ,&$ (& #&' &' & & & & & & & & & & % % % % % % % % % % % % % % % % % % % % %% %' %) %* %* %/ %4 %9 %> %J %Q %Q %[ %Y %W %M %J %J %O %T %[ %\ %^ %c %e %f %m %p %m %k %m %t %w % %| {%| t%y o%w i%r d%r `%m [%m V%j V%j Q%a S%a N%Y K%W B%[ 5%^ 2%` (%c $%c %e %a %` %c %f %e %j %o %t $u $o $j $j $h $c $c $\ $R $Q $H $G $C $C $@ $@ $> $= $; $6 $8 $4 $4 $3 t$/ p$/ k$ a$ \$ R$ M$ H$ B$ @$ 4$ 3$ 9$ 8$ /$ *$ '$ $ $ $ $ $ $ $ $ $ $ $ # # # # # # # # # # # # # # # # # # # # # # {# q# l# d# ]# W# M# K# P# P# N# :# (# &# !# # # # " " " " " " " " " " " " " " " " " " " " " " " " " " " " o" l" o" h" e" c" ^" [" V" Q" L" E" =" :" 3" 0" ." &" &" " " " " ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! }! m! d! ^! Y! U! R! J! C! >!) @!/ @!4 >!3 9!/ 4!* %!. !1 !3 !8 !6 9 9 @ B @ @ G R Y ` f p p u r a [ Y \ a e |   t  g  [  U  D  5  )                                | u ` W T W R W Y V T Q L H E = 8 4 ' $     & + 2 3 7 : = ? D F G F = A : : : 8 : ? I K L P Z ] ` _ ` e g j n ~                                                  # # " # , / 7 E J H K J K O T Z Z \ p s r $u )z %} $ ) 1 4 B G J R T T ^ ^ \ ^ f f f c ^ Y T M H E B = 8 3 / . "                   x u u s p f b ] Z S H > 4 &              !"$'0:=GNSY]]]YYy]wewltq`t[rIoDlBq@v:v1{,w!w|"$)+.38:BEIVX^YQGBGGJBEBDD:88?= 6 0)  !(/459<DKMS_gklux{ $+1@@:?S]cehm  !/:FKPX k { "'*349=CELMRRR \\*`.f/j4kCkTm[r\uY|W~\^[\WVYROQWY[fzymffp~(r.m7j=eIh]clhqftkvtyt}k}e[@43;HLhjmo|   & ) 8 A G K I A - ( ( 2 <  A P E_ Yn ro sy r~ n i c ^ Y Z \ \ \ Z!\!U!P!K!K!O1!R2!U;!\F!aK!ch!nn!px!xz!|x!z!p!r!i!p!r!!!!!!!!!!!! !!!!!!&!+!.!.!1 "0".",'".."11"18"5D"5O"%%~%v%v%q%_%.P%2=%3<%B=%ID%KD%I%Q%Q%S$]$d$d$t$s$t$$$$y$o$f$a$J$ $######n#k#k#u#}######'#*#;#A#C#C#J#M#P#W#Z{#\q#cn#dk#r_#w]#|Z#\#W#U#K#K#F#4#/#&####### ##"#"""""""""""""""""t"h"]"^"b"h"h"^" ^" ["O"N"E"B"D"L"&S"0S"5O"6^";e"?q"Bq"Im"Sv"T"T"V"Q"O"Q"S"S"Y"["Y"S"S"V"Y"]"b"c"c"^"e"h#l #o #t#v#y#~####&#*#*#-#A#K#U#\#i#n#q#s#############$$$$$$)$3$6$=$@$R$T$Q$V$V$^$j$w$$$$$$$$$$$$$$ %%%$%F%~Q%X%g%o%v%}%%%~%%%{%{%%~%v%t%q%m&m&r&y&| && &2&;&C&R&d&d&i&h&c&Y&O&E&J&E&C&<&7&<&@&E& A&M&T&\&_& c&&a&4i&:&?&S&\&_&\&W&P&K&F&D&:'7 '5)'5G'4L'2V'%~'!' ''''''''' ' '''''''''''''''( ((&(4(<(N(U(X(\(k(((((((((((((())) )')C)T)Y)f)o)o)y))))))))))))**!*&*.*y+*o.*h+*g-*g3*b3*^7*[?*YK*OU*Eg*G*G*E*I*E*B*@*=*;*;*6*8*6+5 +6+= +8'+3>+3F+6W+Bn+Ez+I+G+G+L+L+L+O+Y+Y+V,V ,Y,^",`,,g.,t8,Q,T,],r,{,,,,,,,,,,,-~-~+-|5-~<-W-f-{--w-t-o-j-e-`-]-X-S-N{-Jx-Eu-@q-;n-6k-3i-.f-)b-$_-\-X-U-\->-?--&-M-W-i-{------.....)...4.;.C.M.f.......z.x.h._.Z.U.P.E.;.7.;.;.4.2.6.7.4.;.9.Cz.Ar.Ep.Em.Af.>e.>^.AW.@G.C9.>*.<$.9.6.2 .-.,-2-4-2-,-'--- ------x-l-g-l-d-]-U->-2--,,,,,,,,,y,r,{`,T,~;,$,,,++++++t+i+[+S+P+N+B+7+.+&+++++++}+s+\+E+>+<+1+*+ +++*********j*Q*I*&* **))))z)pz)h[)\>)Q%)M)M)9(B(Y(Y(V(T(T(^X(h>(r (t'w'|''''''''''''|'v'o'h'`'Y'Q'J'D'='5'.')'"''''&&&&&p&H&&&&%%%%Q{^eh{m{rxz{z{qlgdaXKH?94/0-!     (038DKLQUijiqooonnlooiied``dgggedddedd%e%jnl y&-457::DIP_}'%(,((1//6477<@@CMRRYWWWZ\}PsObJiHdJWMWMSPPRPURUPOIPCRCUDR9W0a0a-a+Z(a!hca^_\RTUYUUMJPORHMHH@@EC<772|1w/v-t1q-o/j,j/h2b,c,`*^-]1S2S*V*S-S/O-N2B(L(D,B,@*B(@#G II E#@'?':%="= @="55. '#!%(*/ 14479<AEEA< <>A!F$K!RY_ d mu|wmhkhc^infhfc\TPC<2*,/27 ;>@F!M$U+\1a:^=YBOEFJFQHXJ]KcOhOoOtP{T|\mwz}wz|{{{{wwvw|~    &+3=ENLDGINS[cmt{  #((--+%%(/299500/00/ -%#   %##%!&!++4!<&7+<0A/M/U/]4b4l9q9s7u-v*}#!!!    %',),18ELGEEBGJMWYa`[[`akmrt|~!)))2:BDLVX_dgoyy}(*2<@AJT_fimppx     #****-25<>ADFDCDzIuNwPPSZ]aabggknu{$.6?EED@6.$       $).+3=;:BEQYbhbemqrw~$$""%*,,,./13448648889#9-=0=9@A@K;K>UB_@g9p9z@{EvMzQRQRYYWWTY^^VWY\^``acef'f3h=jGoLoOmWkcmkottzyywwy~$08DLPX]eoxzrmfa^[VRJE>88;63.*$$**)$$$',1 /,''*%1*4,11(4-9'='=28;1</@*>'H%R$P$M"E EJFHRWhhha^T U%\%k"s"    )+,6:=EOS ] clr{y v$"%'*,/16;999;=BBE C B>;6/,'%)))'%   &-5<HRZakqvz{upga]WPIC>72+&   "*.69>CHGGJTT[fkoopkmp~      $ . 8 A N P Q Z e n t x                         !!!! !%!-!6!6!2!2!~6!|>!w@!oF!jH!cJ!^P!`U!]Y!]_!^a!`k!^r![z!]![![!V!T!X!X!S!X!Y!^!`!b!h!l!o!t!t!t!t!l!j!g!b!]!]!Y!V!Q!L!G!B!B!="="=":"5"."0"1 ".!.!+!&!!!!!! !!!!!!!!!!!!r!p!i!r!p!z!|x!xz!px!nn!ch!aK!\F!U;!R2!O1!K!K!P!U!\!Z!\ \ \ Z Y ^ c i n r~ sy ro Yn E_ P  A < 2 ( ( - A I K G A 8 ) &    |omjhLH;34@[}e}kytvttkqflh]cIh=e7j.m(r~pffmyzf[YWQORYVW\[^~\VT|L~LJGB=911,% {uqib_XNH>7*& |vlc[VOID=60,&" |snkcZRHA;2,% ||wtohhjoruto}kxfyexao^jWgV_Q[QZRVLSJNLGJ?G8E2B-=(;!61131 .*%'"   zwoh`TME8,% '.8>HQW^^``achmty~ }vsld\UM >5/            rhbXNE86. '#( -25:=FLQQLQSXXV]X[]`beeijlilnooqsqtooqsty}y !&+))003155'&'"&)!   ((%(>@CFF JO MHEC>;;7972,((,/2;>CFEHHEHHCACAA9229479;@>;>A@7z6s4p2h-f1c-_-\,\,_,h(i'c#dkrsxx|| nkca c ^^UMJC<;7;@AEEA<>@AA<></*'-2792% ~vg`XLD<-${voje_ZUNID=83-(# |wrkfa[VQJE@94/)$$$     %*/6;@GMR|Vw\waufpjkoer^wR~HB;4*" ~|yurmhea\YVQ{(((((')0)3)5 )@)E )G)G)D)@)=')B))I/)G3)G;)NR)D[)=[);a)Bc)=j)8p)6z)5|)?z)Dw)Ew)Iw)J~)Qz)Vw)Tu)St)Tr)[k)^j)`c)c`)g`)j[)r\)w^){\)\)W)V)W)Y)\)e)j)j)m)u)z))))))))))))))))))))))))))))))************))): *K *P*\*d)i)l)p)s)v)x)x){)))))))))**********))** ** * *** ****** ))))))))%)))*)3)3)1)8)8)B)E)H)H)G)G)O)O)R)[)^)^)^)c)h)j)j)o)t)u)u)p)o)k)j)k)k)m)u)z)|)z)~)~)))))))))))))))~)k)[)O)L)H)H)B)C)B) >) >)9)9)6)6)4)/).),)$)#$)!)$)().)0)5)D)D)F)I)K)N)N)P)Q)Q(V(V(X([([(`(b(j(j(s(t(x(x({(}((((((((((((((((((((((((((((((((((((((((((((((((((((())))(((((((((((((((((((( (((((("(#('(*(*(*(-(/(/(2(/(*(*(((((%(%( (((((z(p(#i("i( g(b("Z(#X("U(%M(-D(1D(9?(<9(C7(E4(K4(M0(M*(R/(R2(Z2(a7(c5(_0(c2(n<(}:(9(}7(|/(/(-(*(((}*(w#(u(}((((( ( ( (((''''''''''(''(((((((((&(/(5(:(?(C(C(M(K(N(X(Z(](a(g(g(i(q(v(u(x(z(}((((((((((((((((((( ( ( ( ( ) ) ) ) ) ) )" %)! ') ') ,) 1) 6) 8) ;) =) L)M)R)[)`)f)j)p)|))))))))))))))))))))))))))))))))))))))))))))))z)})x)r)p)u)u)s)p)n*r*r*w*u#*p&*n)*i+*i7*k.*h3*h2*d2*f5*d8*c0*_-*d.*c+*a+*a(*c(*d)*h(*i$*h#*h!*d*h*h*d*h*f*f*d*d*a*a*^*^*Z*\*Z*Z *W *U *R*P*U*W*U*R*R)P)T)U)R)P)O)K)F)F)A)>)<);)6)4)4)2)1)-)-)/)4)7)7)4)7)4)7)4)7)4)6)2)/)1)4)2)2)1)-)*)*)-)*)')-)-)1)1)1)4)6)7)6)6)7)4)6)4)4)/)-)()*)()#) ) ))))))))))))) ))))))))))))))))))))))))|)|)z)r)t)r)p)k)c)c)a)a)`)[)a)^)\)[)W)V)V)V)R)R)V)V)V)Q)V)T)V)Q)M)O)vM)tJ)tG)tE)l@)bC)]L)]G)ZJ)ZL)UO)QM)NO)KO)LQ)SO)SR)KT)AW)7`)7c)0e))k)$t)!r)#y))))))))))) ))))))))))))))))))))))))))))))))))z *y *)))z*z*w *w*w*t *t*r*t*e*f*^*\&*^)*a)*c+*`0*c3*W:*[5*Y5*W7*VD*O?*L=*HB*GD*HG*CG*@D*BI*BK*HG*LI*MF*OG*OK*MP*OQ*LS*JP*JK*GK*>L*9P*4V*3U*4X*,Z* `*l*o*s*t* s* o* o*s* v*x*}*}*~**~*~******************************************z*p*l*l*f*a*_*k*n*i*f*d*b*a*]*X*S*N*M*K*I*K*R*U*R*K*H*H*F*C*C*A*>*>*?*A*D*D*D*:*:*7*7*5*5*2*4*0*-*+*/*2*/*!**** ******************************************************************************************************o*l*j*m*l*h}*^y*]x*^s*^j*[g*Vb*Q`*OV*GS*GP*DN*EL*GG*D:*=7*.0*0&*.*'*!**)))))))))))))))))))))")')')+).)+)))')")!)))&)))))))!)$)))')+),)+)")!))))))))))))))))))))))))))))))))))))))))))))))))))~)t)y)y)z)))))))))))))p)f)`)V)m)t)z)~)~)y)|)|)h)9)1).),)s')m")i)_)Z)Y(\(^(\(a(f(d(h)f(h(h(i(p(r(m(p(x((((((((((() ) )))) ))((((((((( ( (((((((((((!(!((!(("()()(.($((((((({(z(z(u($q($n(&n(0u(1(5(5(8(;(?(J(O(S(Tx([s(]n([n(Yl([k(Yl(Ti(Tk(If(@f(?_(B](EX(@R(?R(?I(BI(EF(IH(TF(TH([H(bD(bA(cD(hD(jH(lI(jK(oI(oF(vF(wC(wD({I(wM({K(~I(|I({F(~C(A(A(?(?(:(9(:(<(:(:(<(>(A(>(>(<(<(:(9(9(>(C(D(A(>(:(7(4(2(2(7(9(7(9(9(7(4(5(4(-(+(&(&( (!(&(&(!( ((( ( ( ( ( ( ( ( ( ( ( (( (+'0'F'K'N'M(M (P(P(U(X(a (q&(z2(2(5(7(?(F(N(S(X(d(i(k(u(z(}((((((((((((((((((((((((((((((((())) )))))) )%)))3)=)>)C)E)G)J)M)R)zT)q`)pe)qj)pr)xt)}z)y)u)r)k)k)h)h)o)o)p)r)y)~))))))))))))))))))))))))))))))))))))))))*****)))))))){)x)x)v)s)p)l)i)d)\*P*K *: *)))************)))))))))))))))))))))))))))))z)u)m)j)j)e)\)Y)W)V)W)\){\)w^)r\)j[)g`)c`)`c)^j)[k)Tr)St)Tu)Vw)Qz)J~)Iw)Ew)Dw)?z)5|)6z)8p)=j)Bc);a)=[)D[)NR)G;)G3)I/)B))=')@)D)G)G)E )@)5 )3)0)')(((((''!')'3'#5' D'#J''Q'(O''G''D'(D'/D'2G'6G'9N'AS'FV'RX'R^'Re'Yj'\t'd'i'm'k'd'^'Z'T'R'M'F'F'K'M'K'F'H'F'C'A'C'J'J'M'P'R'T'a'd'h'n'p's'u'z'|''''''''''''''''''''''''''''''''''''(( ( ( (((((}(u(w#(}*(((*(-(/(|/(}7(9(}:(n<(c2(_0(c5(a7(Z2(R2(R/(M*(M0(K4(E4(C7(<9(9?(1D(-D(%M("U(#X("Z(b( g("i(#i(p(z((((( (%(%(((((*(*(/(2(/(/(-(*(*(*('(#("(((((( ((((((((((((((((((((())))((((((((((((((((((((((((((((((((((((((((((((((((((((}({(x(x(t(s(j(j(b(`([([(X(V(V(Q(Q)P)N)N)K)I)F)D)D)5)0).)()$)!)#$)$),).)/)4)6)6)9)9) >) >)B)C)B)H)H)L)O)[)k)~)))))))))))))))~)~)z)|)z)u)m)k)k)j)k)o)p)u)u)t)o)j)j)h)c)^)^)^)[)R)O)O)G)G)H)H)E)B)8)8)1)3)3)*)))%)))))))) )***** *** * ** ***))******)))))))))))))))))))))))))))))))))))))))~)y)r)p)o)o)h)h)k)k)r)u)y)}z)xt)pr)qj)pe)q`)zT)R)M)J)G)E)C)>)=)3)))%) )))))")$)')*)1)1)9)9)8)9)8)8);)9)>);)B)>);)8)3)4);)@)>)6)3)6)=)@)@)C)C)%@)'9))6)'1),,)9')>*)@/)B.)E)J )M )Y)c(m(u(y(((((((((((((((((((((()($($()()(0x(3d(2Z(-U(+S((X($X(M(I(C( C(A(>(7(/(&(#(((((( ((( ' '''''''' ' '' ''''''''''''''''''''''''~'|'w'l'l'o'r'r't'r'w'v'|'' ' ''''!'&')'-~'3y'8~'<~'<'A'D'G'L'P'V'`'g'j'o'q'y'''''''''''''w'j'b'^'Y'Q'N'L'J'E'D'@'@'=';'8'='B'J'G'D'?';':'5'1')'&'&'!'!'!'''')))) ))))((((((((((((((((((((((((((((((((}(z(u(k(i(d(X(S(N(F(?(7(5(2(z2(q&(a (X(U(P(P(M (M(N'K'F'0'+' (( ( ( ( ( ( ( ( ( ( ( ((( (!(&(&(!( (&(&(+(-(4(5(4(2(%(&(%((((((((( (((('''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''|'r'q'l'm'l'g'g'e'g'c'c'g'j'l'j' g' h'j'l'm'l'h'(o'2l'5m'9r'Aq'Ft'Cq'Cl'HQ'KJ'PL'MJ'IJ'HI'D1'H+'D)'>'9'9'9'7'2 '/ '*'#''''' ' ' '' '''''' ''&&&&&&&&&t&l&g&b&^&^&`&^&X&S&O&G&B&?&@&?&8&.&,&+&)&&&&&&& & & & &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'''''' ''w '^ 'Y'U'K'H'F!'H"'J!'O"'R'T'R!'K&'>+',.' 6';'D'J'I'@';':';'8'6'3'0'.'+','.'0'0' .' +' &'$''''"'''+'0'5'6':'6':'@'?'E'J'L'^'`'e'v'y'|'''''''''''''''x'o'd'U'K'B'?'?'B'B'A'F'K'K'N'P'K'K'D'D'A':'7'3'<|'=v'Br'Nw'Q~'V'[~'b'g|'i|'j'q'qw'tr'oo'qh'oe'te'ye'}c'c'`']'['S'E'D';'5'1'.'+')'&'"'!'$'!'!'''''''' ' ' ' ''''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&"&%&"& &%&"&(&-&-&6&9&6&<&>&<&<&C&F&F&H&E&C}&A}&Az&@x&Aw&@r&<u&6w&2u&/s&/r&1p&-p&/m&2k&2i&4h&6d&>c&Y\&Z\&W^&Ta&Ua&Y^&c_&i^&ma&uc&zf&|f&h&m&k&n&i&h&i&m&n&k&h&i&k&m&k&n&p&r&u&x&}&x&w&w&z&|&z&|&z&}&&|&z&|&&&&&|&}&&&&&&&&&&&&& & &&&&"&&&,&5&6&:&:&:&;&;&@&D&I&G&I&N&O&T&V&c&h&l&r&y&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&!&&&*&4&5&<&C&M&N&S&\&_&a&g&l&q&z&{&&&&&&&&&&z&w&w&u&h&f&c&c&a&a&^&_&Z&^&\&c&h&n&r&r&p&p&r&s&w&z&&&& &&&$&3&9&=&B&E&E&H&L&M&L&J&M&V&[&`&f&k&p&m&f&a&[&\&f&j&m&w&z&~&}&|&x&z&}&}&&|&|&&&z&|&x&x&w&w&r&i&h&h&f&f&a&a&^&T&T&M&M&K&J&C&2&1&*&(&*&-&/& ,& (&*&(&(&"&!"&#%&$%&("&)&(&#&$&)&2&?&B &? &?&:&8&="&?"&A'&A1&L2&Q1&_/&e(&i-&o/&v7&7&2&7&4&<&;&;&>&E&H&K&K&M&P&R&U&\&_&a&c&i&w&|&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&' '''''''!'!'!'&'&')'1'5':';'?'D'G'J'B'='8';'='@'@'D'E'J'L'N'Q'Y'^'b'j'w'''''''''''''y'q'o'j'g'`'V'P'L'G'D'A'<'<~'8~'3y'-~')'&'!'''' ' ''|'v'w'r't'r'r'o'l'l'w'|'~'''''''''''''''''''''''' '' ' '''''''' ' '(( ((((((#(&(/(7(>(A( C(C(I(M($X((X(+S(-U(2Z(3d(0x()()($($()((((((((((((((((((((((y(u(m(c(Y)M )J )E)B.)@/)>*)9'),,)'1))6)'9)%@)C)C)@)@)=)6)3)6)>)@);)4)3)8);)>)B);)>)9);)8)8)9)8)9)9)1)1)*)')$)"))))'!'!'$'!'"'&')'+'.'1'5';'D'E'S'[']'`'c'}c'ye'te'oe'qh'oo'tr'qw'q'j'i|'g|'b'[~'V'Q~'Nw'Br'=v'<|'3'7':'A'D'D'K'K'P'N'K'K'F'A'B'B'?'?'B'K'U'd'o'l'l'n'o'j'`(L (D(<(.-()9(#A(H( R(X(i(g(k(i(n(k(i(i(f(d(d(g(d(b(|b(|_(w](ka(ak(^i(^l(Tg(>i(1g(%g(p( z( {( ( (( ((((((((((((((((((((((((((((((((((((((((((((({(v(s(s(p(i(d(a(P(>(5(+((((((''''''''''''' '''' '"','4'9'G'M'O'['hy'kv'rm'yg'zb'|b'e']'V'V'X']'g'c'^']']'Y'T'N'L'N'L'J'I'J'N'Q'L'J'L'O'S'L'J'O'N'N'I'I'I'G'B'B'D'D'@'=';':'8'5'8';' :';'5'(6'-3'71'76':5'F6'U3'[1'`.'l)'t"'' &&&&}&|&|&z&|&x&|&z& }&z&z&&w&0u&1z&.|&.}&3|&1&5&8&;&=&?&@&D&B&D&J&L&N&Q&T&V&T&Y&Y&]&b&g&m&o&r&r&y&y&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&& &&&& &%&+}&-z&0z&2z&0w&9u&<w&:u&<u&Ar&Cs&Kn&Km&Nm&Ni&Ri&Uf&Xd&Zf&Z_&ka&p_&x_&Z&zZ&u\&qZ&k\&_Y&W\&RY&MY&IZ&IY&KW&IU&MW&NU&PW&RU&SW&WW&WY&XY&XT&ZR&]T&\R&aP&bP&bT&iR&nR&pP&zO&{O&}P&R&R&R&P&O&H&F&H&E&C&@&@&>&<&@&C&F&K&F&H&E&E&C&A&>&>&<&9&4&6&4&2&4&4&6&4&6&2&-&/&-&/&/&2&/&1&/&%-&',&)-&1-&1*&4,&8*&;#&@ &B&C&G&L"&[%&c"&p#&w(&y-&y*&u%&t#&u&t&t&p &&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%w%r%r%w%|%%%%%%%%%%%%%z%o%m%k%`%c%f%a%`%V}%Vy%Y{%Vx%Tt%Wt%Mj%Og%Ve%Le%E`%>`%;_%,P%%G%$B%$8%/8%3<%6<%9?%=A%EA%J=%MA%J<%E?%>=%38%33%43%=8%@7%93%42%*2%*.%*+%.(%6(%C)%>&%C&%G(%H)%L.%L3%M+%O)%E#%;#%,%*%*%'%* %, %.%/%3%1%/ %1 %4 %; %@%@%B%C%B%M%R%T%Y%V%T%R%M %C%@ %;%1%1$1$3$6$4$8$;$@%G%J%M%O%M%J%G%B%;$9$;$=$C$L$T$Y$c$c%f%p$t%r$u$c$[$W$Y$^$`$a$c$a$^$[$^$^$R$L$G$E$>$>$=$C$W$[$c$e$p$u$u$t$w$z$|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $ $$$$!$!$&$$$&$+$-$3$=$=$I$Q$P$Q$P$Q$S$Q$V$Z$]$_$Z$]$b$e$l$o$q$t$t$x${$$$$$$$${${$}$$$x$s$n$i$b$`$]$e$i$n$n$s$y$}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$~$z$y$w$u$r$m$f$e$a$h$m$k$j$a$^$^$a$e$c$`$Y$Y$R$Q$[$[$\$\$`$`$W$T$R$R$W$W$^$\$^$\$[$Y$W$W$\$\$V$T$L$J$G$=$@$G$M$J$H$G$C$E$B$C$C$@$@$=$=$=$;$ 8$/$ 8$8$9$9$9$9$8$1$%$"$$$$$/ $9 $A$F$K$R$U$Y $^ $^$c$_$Y$W $Z'$R*$M,$R3$c.$s,$,$.$,$1$4$4$6$6$8$G$H$J$L$M$O$T$R$V$Y$Y$\$c$e$c$h$f$a$`$a$^$^$`$a$c$e$a$ a$ h$k$r$ w$ w$ z$ y$ z$ y$" |$. |$8 ~$= ~$@ $E |$S z$X z$^ u$g u$h y$h |$] $] $^ $] $` $b $` $Y $[ $X $V $T $Q $Q $S $Y $` $o $| $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % % $ $ $ $ $ $ % % % % % % %! %% $%- .%0 -%4 (%: &%< (%> $%I #%R &%X #%a +%f )%g 0%l 3%l 5%i 5%i 7%p G%z P%z Z% ]% d% g% l% v% }% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % & & & & & & & & & & & & & & & & &' &' & #&$ (&$ ,& /& 4& 7& 9& >& A& E& J& J& O& R& W& W& U& Z& \& \& Y& Y& Z& _& ^& _& _& c& h& k& p& r& s& s& |& & & & & & & & & & & & & & & & & & &v &p &n &d &b &N &H &C &A &A &: &9 &5 &2 &2 &7 &4 &- &( && & & & & & }& x& x& u& s& p& n& i& f& c& Y& Y& U& W& U& R& O& J& A& >& ;& 7& 2& /& ,& -& 4& 1& (& & & & & '& (& ,& '&~ '&| /&y 1&v -&q /&l ,&g %&` "&] &Y &V "&Q %&S '&T ,&[ 2&[ 7&c @&c C&h M&m ^&j k&m s&l &h &l &m &q &l &j &` &] &[ &X &O &L &I &B &@ &; &: &3 &1 &, &, && &! & & & & & & & & & & & & & & & & & &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''' ' '' ' 'z'x'u!'s'n'f'd'a"'_&'a&'d.'i3'i6'i;'a@'cD'aI'aL'dS'fT'hY'n`'sc'ug'xh'|v''z's'm'i'd'\t'Yj'Re'R^'RX'FV'AS'9N'6G'2G'/D'(D''D''G'(O''Q'#J' D'#5'3')'!'''''' ''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|&w&i&c&a&_&\&U&R&P&M&K&K&H&E&>&;&;&<&4&7&2&7&v7&o/&i-&e(&_/&Q1&L2&A1&A'&?"&="&8&:&?&? &B &?&2&)&$&#&(&)&("&$%&#%&!"&"&(&(&*& (& ,&/&-&*&(&*&1&2&C&J&K&M&M&T&T&^&a&a&f&f&h&h&i&r&w&w&x&x&|&z&&&|&|&&}&}&z&x&|&}&~&z&w&m&j&f&\&[&a&f&m&p&k&f&`&[&V&M&J&L&M&L&H&E&E&B&=&9&3&$&&& &&&&z&w&s&r&p&p&r&r&n&h&c&\&^&Z&_&^&a&a&c&c&f&h&u&w&w&z&&&&&&&&&&{&z&q&l&g&a&_&\&S&N&M&C&<&5&4&*&&&!&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&{&y&r&l&h&c&V&T&O&N&I&G&I&D&@&;&;&:&:&:&6&5&,&&&"&&&& &I T V X [ X X Y ] ] [ ] ]    | { w y   y | ~ y | ~ | 0q <q [t _ d q x ~    | y w w {                           ~ t n j e& `0 bA iH iN jS j] ja gd bb Id Dk <s (z $ ( . : ? L Q [ e t }               - 44 >= FO iW c m                              #  '! )# ,$ ,( '( !+ 8 D "I 'L 'P $X $e i i n t ){ .{ 6 : ? @ I J O N N Q V Y ] ] ^ e j m m q r l b [ S N E @ = 3 0 , ) , + 0 . ' ' ' "                % ( / 2 6 < C F M K M O R U W Z d h i i k h i p u              & . : G ] gz tw z                   # ( / 4 9 ? D I P U Z a f p s u u x                   " . / 3 8 = B E H M T Y ^ c f f f ^ \ ^ ^ T T R J G B 4 1 )} $z %u )r $s p \ Z Z T O K J K H J E 7 / , # " # #                                                  ~ n j g e ` _ ` ] Z P L K I ? : 8 : : : A = F G F D ? = : 7 3 2 + &       $ ' 4 8 = E H L Q T V Y W R W T W ` u |                | u p j e f j h c c \ \ Y~ Wz [t \t ^h \j Yh Wc Ya W` Q^ OW LT MO GL EC GB M= R; Y8 [6 `/ c/ k) t* t1 r4 u4 z1 z/ * ) % " "                                  (  +  2  5  N  P  S  U  d  g  o  ~                         ! ! ! ! ! ! %! *! 1! 1! 7!} 7! @! F!} H!x F!u J!q U!u Z!x ^!x d! s!x }!u }!k }!d !d !a !f !i !k !d !d !b !f !f !d !b !b !a !] !Z !X !R !U !S !W !Z !] !] !b "U "R "P "R "M "K "K "P !"S +"R 1"N 8"P ="S @"R I"U J"W J"S Q"W T"W V"U Y"S X"P ["M b"S j"X l"] j"d m"k q"u t" r" m" l" g" c" `" b" b" g" c" g" e" e" h" l" r" r" t" o" l" o" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "{ "z "z "z "} " "x "z "u #q #p #q #n #n #q #p #s 7#v :#z :#} >#} F# K# N#x a#u n#v #z #x #v #v #x # # #x #z #x #z #x # #} #z #x #{ #} # # #} #} # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # $ $ $ $ $ $ $ $ $ $ $ '$ *$ /$ 8$ 9$ 3$ 4$ @$ B$ H$ M$ R$ \$ a$/ k$/ p$3 t$4 $4 $8 $6 $; $= $> $@ $@ $C $C $G $H $Q $R $\ $c $c $h $j $j $o $u $t $o %j %e %f %c %` %a %e %c %c $%` (%^ 2%[ 5%W B%Y K%a N%a S%j Q%j V%m V%m [%r `%r d%w i%y o%| t%| {% %w %t %m %k %m %p %m %f %e %c %^ %\ %[ %T %O %J %J %M %W %Y %[ %Q %Q %J %> %9 %4 %/ %* %* %) %' %% % % % % % % % % % % % % % % % % % % % % % % & & & & & & & & & & & % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % }% v% l% g% d% ]%z Z%z P%p G%i 7%i 5%l 5%l 3%g 0%f )%a +%X #%R &%I #%> $%< (%: &%4 (%0 -%- .%% $%! % % % % % % % % $ $ $ $ $ $ % % $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $| $o $` $Y $S $Q $Q $T $V $X $[ $Y $` $b $` $] $^ $] $] $h |$h y$g u$^ u$X z$S z$E |$@ $= ~$8 ~$. |$" |$ y$ z$ y$ z$ w$ w$r$k$ h$ a$a$e$c$a$`$^$^$a$`$a$f$h$c$e$c$\$Y$Y$V$R$T$O$M$L$J$H$G$8$6$6$4$4$1$,$)$,$,$*$'$%$%$$$$$$$$ $ $ $ $! $' $3 $8 $; $B $D $D $= $= $D $E $E #= #= #E #E #? #6 #. #) #' #& # # # ######## # # # # # # # # # # # # # # # # #! #! #, #0 #3 #; #? #= #@ #B #E #I #Q #V #] #` #^ #` #e #j #l #h #j #l #o #v #o #o #w #w #r #o #{ # # # # # # # # # # # $ $ $ $ $ $ $ $ $ "$ $ $ $ $ $ $ $ $ $ # # # # # # # # # # # # # # # # # # # # # z# u# s# l# i# \# S# N# D# 4# %# # # # # # # # # #! ## #& #( #& #- #0 #7 #9 #< #? #> #: #9 #: #7 "5 #5 #2 #2 "0 #/ #+ "( "% "% "( "( "+ "( "* "/ "/ "2 "4 "5 "C "H "I "H "I "K "N "P "U "R "M "K "I "I "F "F "C "C "C "? "? "? "D "D "C "? "? "? "D "F "C "D "D "F "H "K "M "N "P "R "R "W "W "] "_ "g "b "W "U "X "W "M "M "I "H "D "> ": y"7 r"4 r"2 o"/ r"+ r"* o"! l" j" l" m" o" v" y" |" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " {" y" v" m" q" m" l" j" h" g" e" j" l" m" " " "~ " "y "t "q "h "g "c "c "` "^ "X "V "S "S "S "N "I "G "= "; "8 "6 "3 "0 ". "+ ". ". "+ "$ "! " " " " " " " " " " """""""""""""""""""""""""""""""""""""w"r"p"s"p"s"u"z""x"s"r"s"u"x"w"u"r"n"m"k"m"r"z""""""""""""""""""""""""""""z"z"r"r"m"k"m"k"i"h"k"n"p"w""""""""""""}"w"r"n"s"z"x"|"z"w"r"p"~"{"y"w~"p|"m~"ky"rv"pt"rt"wr"xr"|t"t"o"q"o"o"v"t"q"h"h"c"`"]"Y"V"X"["^"b"o"q"q"h"e"c"^"V"T"zL"u?"u;"p)"m!"k"d"Z!O!H!C!2!/! !!!!!!!!!!!!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}!r!s!r!i!a!a!^!^!h!h!m!k!m!n!m!c!W!T!M!H!H!A!C!A!>!>!@!A!E!H!H!F!K!H!J!M!K!M!R!W!Z!Z!\!\!Z!Z!U!T!T!P!T!n!U!E!>!;!6!'!{"!x!x!y!{!v!s!v!v!j!`!U!L I = < < : : ? - &                     } n j b ` ] U = 8 ( # ! ! $ + - - - + - - ~( |& ~$ y& m m j h f e^aceeccaefeee`\RE==1*19CB@B8/$%/46444|3y4w1t)e"\T TMHHGEHJJORROTRROHCHMMzOfYaY]WXWA`?`A^H\RVURWR]OUORMRLWLXJUHUGRGREFLDQDWC[?[>`:aAa5c-a-`*`*a(a!^`\[[QJEC>;;@31,,*'w*w,y*w.q.r)jj"o'q)o/c/]1:/31**%" $')%    zwmmnmkiaa^PHEAv9i6d2b-N,M(M'I,2/02+Hpz|}z||} 3588ETmqqy{rolljtrtolhgmljgghcb`^YYVSI==:?@ED=:565*170:,C,>,>.>0?.C0C.H,S+R+U,S.U1U.X,Z.Z,W)X'g&q!vz}         "$$%*4>@BBGHORQLRVVcehjtwwttuwy||~|~    |$}#!#$#$&))+|.|2z7x<z=}<7578??|GxKuXuXxVzZ}VSQXZ[]_]|`zdzb}d}g}egilnlst}x}s}qn|jxnxgsbrbpgrgpgmlpopqssr}r{n}nsrnmnpuz|xspkixspmiikifhdfihiiddaccffhkiknrsxxz|z|"|z#x'z#s%u(u*w-s/x1z2x1s4r4n7m7u;u;s>sAp@n@i<i;f@fCiEhCc>c<_>^A^HiMaO_M^UZYaYYZY^aafakckch_a^Zd_khmmsruz|}x}xuwnxkwdx^wUzUWY_dhihd^WURUZ_dhknrx||zzrkd^ZROMOMJFFJFAA>;;;/2677>A>;;6621*-(*#%,//11/-*'%((*(   ""',12}6z6x;s>n<c9T*O*M(H,A A;7 6/2-(#%*,y;gFZMUTNaDcFf?p5u-}$   $)&()++.2257:=DGLPQSZ[issxx}     ~{soonieedeeUD??:8.-$                ! & & & $ $ & ' ' ) , 0 3 . . , 0 : ; : ; ; = @ D G N N S T S Q O O I E @ ; ; : 8 6 6 8 : ; ? = ? @ ? @ D I """""""""""""""""""""""""" " " " " " " " " " "! "$ "+ ". ". "+ ". "0 "3 "6 "8 "; "= "G "I "N "S "S "S "V "X "^ "` "c "c "g "h "q "t "y " "~ " " " " m" l" j" e" g" h" j" l" m" q" m" v" y" {" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " |" y" v" o" m" l" j"! l"* o"+ r"/ r"2 o"4 r"7 r": y"> "D "H "I "M "M "W "X "U "W "b "g "_ "] "W "W "R "R "P "N "M "K "H "F "D "D "C "F "D "? "? "? "C "D "D "? "? "? "C "C "C "F "F "I "I "K "M "R "U "P "N "K "I "H "I "H "C "5 "4 "2 "/ "/ "* "( "+ "( "( "% "% "( "+ "/ #0 #2 "2 #5 #5 #7 ": #9 #: #> #? #< #9 #7 #0 #- #& #( #& ## #! # # # # # # # # # # %# 4# D# N# S# \# i# l# s# u# z# # # # # # # # # # # # # # # # # # # # # # $ $ $ $ $ $ $ $ $ "$ $ $ $ $ $ $ $ $ $ # # # # # # # # # #{ #o #r #w #w #o #o #v #o #l #j #h #l #j #e #` #^ #` #] #V #Q #I #E #B #@ #= #? #; #3 #0 #, #! #! # # # # # # # # # # # # # # # # # ######## # # #& #' #) #. #6 #? #E #E #= #= #E #E $D $= $= $D $D $B $; $8 $3 $' $! $ $ $ $ $$$$$$$$%$%$'$*$,$,$)$,$.$,$s,$c.$R3$M,$R*$Z'$W $Y$_$c$^$^ $Y $U$R$K$F$A$@$; $- $($ $$$/$6$E#R#a#h#m#p#s#w#u#x#x########################################{#u#x#x#u#q#l#f# a# b# i# g# d#" b#, b#0 g#. b#6 a#8 Z#5 W#6 \#1 a#+ a#' _#$ \#+ D#1 9#: 2#@ #E #L #V #[ #] #^ #` #] #Y #V #O #N #N #Q "[ "[ "X "T "T "Q "J "L #I #I #B #6 ##5 %#6 (#8 -#6 2#1 5#' 7#" :#) :#+ :#" K#& K# W# ]# _# _# Z# \# ]# ]# \# U#S#N#]#_#f#i#k#k#d#_#U#P#N#R#U#W#U#X#Z#a#b#f#f#d#a#a#Z#U#S#M#H#D#?#A#A#<#7#2#0#2#4#2#/#+#*#+#*#/#0#4#0#-#(#&### # ### #&#&#!################ ##### # ###"|#z#z"|"""""#"##""""""""""""""""""""""""""|"|"}"""""""""""x"w"s"u"|"""""""""""""" " " " " " " " " " " # # # !# &# (# :# N# P# P# K# M# W# ]# d# l# q# {# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #} #} # # #} #{ #x #z #} # #x #z #x #z #x # # #x #v #v #x #z #v #u n#x a# N# K#} F#} >#z :#v :#s 7#p #q #n #n #q #p #q #u #z "x " "} "z "z "z "{ " " " " " " " " " " " " " "                           )  5  D  U  [  g  t  | e a \ Y [ a r u p p f ` Y R G @ @ B @ 9 9 6 8 !3 !1 !. !* %!/ 4!3 9!4 >!/ @!) @! >! C! J! R! U! Y! ^! d! m! }! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! " " " " &" &" ." 0" 3" :" =" E" L" Q" V" [" ^" c" e" h" o" t" r" r" l" h" e" e" g" c" g" b" b" `" c" g" l" m" r"u t"k q"d m"] j"X l"S j"M b"P ["S X"U Y"W V"W T"S Q"W J"U J"R I"S @"P ="N 8"R 1"S +"P !"K "K "M "R "P "R "U "b "] !] !Z !W !S !U !R !X !Z !] !a !b !b !d !f !f !b !d !d !k !i !f !a !d !d !k }!u }!x }! s!x d!x ^!u Z!q U!u J!x F!} H! F! @!} 7! 7! 1! 1! *! %! ! ! ! ! ! !                        ~  o  g  d  U  S  P  N  5  2  +  (                                 " " % ) * / 1 z4 z4 u1 r* t) t/ k/ c6 `8 [; Y= RB MC GL EO GT MW L^ O` Qa Wc Yh Wj Yh \t ^t \z [~ W Y \ \ c c h j f e j p u |                 $ ' ' & ) , '% &( )/ 'C ,D 5I ;H @D DD OH QI OI SM TR SW XZ X] ]_ ba cb vf {d ~f g i g p z }                     t m j g c Y$ ?) .1 &9 > G V Y \ ^ a c j o r w z |                           ! ' , 3 : ? E L Q X ^~ c| h~ q~ v~ |                      | z ~      & + 2 7 > C I P U \ b g n u z                              $ 2 2 8 < )< 15 /5 15 =2 @2 H2 R7 f7 j= t= z? |D zF uD oG jK jQ fQ tV ~[ [ _ b e i o n j i e i j l o n j j b _ Z X Z ] ] i s y       !   $ ( $ & . 8 : B G L U [ _ g y t o l i l# l' g- e- b/ V6 S9 P> NA KF NJ NK NM XJ bJ iH lF vE yC E F J J K M O T Y c k m n w z                             !$&0158??8 8 :? @ BJ"J'O'Q2S4V1X2[@]ObYcwgehhghjhjljbcjjq tvqw!{,v1v:q@lBoDrIt[q`ltew]wYyY]]]YSNG=:0'$"!               & 4 > H S Z ] b f a Z U P I D ? 9 4 / ( #                 z w z t g ] G : . &            u p i h k i i h d Z W U R O M K M F C < 6 2 / ( %                  " ' ' ' . 0 + , ) , 0 3 = @ E N S [ b l r q m m j e ^ ] ] Y V Q N N O J I @ ? :{ 6{ .t )n i i e X $P $L 'I 'D "8 + ( !( '$ ,# ,! ) '#                              m c W O i= F4 > 4 -               } t e [ Q L ? : . (z $s (k <d Db Id ba g] jS jN jH iA i0 b& ` e j n t ~                         { w w y |      ~ x q dt _q [q <| 0~ | y ~ | y   y w { |    ] ] [ ] ] Y X X [ X V T I G G O S V T O G D @ B D E B D I L N T X Y O I L L O S S Q T V X T N N |O tL wJ tL kT mY mX kT kQ jQ fT fS eV aT `T aS cT \V \V `Y aX ^] ^] [^ Yc [c ^g ae ^g [g Rh Mm Mv Jy J| H J Q H H E E B C @ > E B ; ; @ E E C > ; 8 4 4 3 . ) ' '                                                        } x x u q k K D C H C < ? > 7 2 0 + &                                   o h g h b [ Y ^ ^ T T V X X V Q I B @ ? B 1 + + ) ) $ !    " "     #(*,/29;AJJKJFJEFJMPRY_admmmsz|zuriaZWRPRP H A<42 764,' $$*).3 1./16;;963/*%"$" '*331.,14}8x8q8j;j@l@sC{HLRV[``a`chmmkmpuuw|~ %,2;AHRZckns| "&,06=DIOV[clv| &*7>HNX_biqu{ %,119=BGJ~L|LTV~\|WuYr\m[kTkCj4f/`.\*\R RRMLEC=943*'"  { kXPKF:/!  mhec]S?:@@1+$ {xulkkikidbd__aaa|_u_mbdb__ZbTaP]J]CZ>S;N9N7S6W1W,Z(a#_"]XXX _d i iikqvxuuspsqnnkfdgbbdknuvxzvvv}qvqssqxlsivdq]s_u[qZsVuVuNqKuFv?v7u0s)q#spqvx!$&)&)2:AGNV]binv}  !(*/59>>?><>~<w>pDoKpKkNjNeP^RWZT\W\`_^f\lWqYq\v`xk{m}r}u}|{xvuussqsqsux    !+-38?DFLPU]djqv}~yy{{}vnib]VNGA:2)&)&$!xvqpsq#s)u0v7v?uFqKuNuVsVqZu[s_q]vdsixlsqqsqvv}vvzxvunkdbbgdfknnqspsuuxvqkiii d _X XX]_"a#Z(W,W1S6N7N9S;Z>]C]JaPbT_Zb_bd_m_ua|aa__dbdikikkg_SMKD<954/(!  ) 0 6=?88:DDBEBJGGBGQY^XVIEB@:,' xp|f{cvcw^tUtJr>m6VT TV]eor|{{qqoliiqtqqnlieZSQND=85($!~ ~~|vtvlmrv{~zz|                      ! & & $ )) $. &5 !< !B D D F F G G I I K K L L N U Z _ e s { ~                               # - 6 U \ a d h h p w x | |                                 $ 5 ; G O S T S X g l o v              !!&!)/8<B?L>Q>mP{NNk{ ,668>ET^achuz~z{vrmlvtv|~~~ !$(58=DNQSZeilnqqtqiiloqq{{|roe]VTT Vm6r>tJtUw^vc{c|fpx ',:@B:83.+)$"|ww!qvtq jjcbjljhjhghhegcwbY]O[@X2V1S4Q2O'J'J"B@ ? :8 8 ??8510&$!                            z w n m k c Y T O M K J J F E C E yF vH lJ iJ bM XK NJ NF NA K> N9 P6 S/ V- b- e' g# l l i l o t y g _ [ U L G B : 8 . & $ ( $   !     y s i ] ] Z X Z _ b j j n o l j i e i j n o i e b _ [ [ V ~Q tQ fK jG jD oF uD z? |= z= t7 j7 f2 R2 H2 @5 =5 15 /< 1< )8 2 2 $                                z u n g b \ U P I C > 7 2 + &    ~ z |                       ~ |~ v~ q| h~ c ^ X Q L E ? : 3 , ' !               $)/49@EJQV[afkrw| #(-38=DINUZ_ejov{$-<DLX`gv~tnljdb[XKA2&       &! $)))$*-4>>CMPY \ PPTYW\_cfmnruzzz           !!$&)#$#$)-23032277FFBFQPGAA:FGSVSQPGFBFLF=:52-( # '.68ENXbhr            /5 >MU\dlsv }~ytmhca``^^WQH>8.' %,8EMT`howz   "'%*.1 3116;!=(B-E2G8J?LGJNLSRVQZQ[V_Wg^jaoexfykxo}turojhhotw||~|wuupmkmmhc`a``[VRLHC{@s@l;j8j8q8x4}1,.133*' "$"%*/369;;61/.13 .)*$$ ',46 724< A HPRPRWZairuz|zsmmmda_YRPMJFEJFJKJJA;92/,*(#  {{yy~}vqjd]UPLFD?83-+!    xusqsqssuuvx{}|}u}r{mxkv`q\qYlWf\_^\`\WZTRWP^NeNjKkKpDo>p<w>~<>?>>95/*(!  |zuhca^TE>866,   x sld]UP!I%A(:+42+7%: :7: ?CFKNSX_dikqux{yqgc`b`^^Y[XSLGD@=;88865 . .)  "%),}1z6z=}BE}LxQwVzTQQRVY^|`uekhkhskrppwmyu~pif^\TKE<4/*(" yyywyyxyqwit_oZjVeSaL^DWBRALBEB@F;G6F/G*L*S'Q"KG?8 . # "" ""$$$      %(4455: ? ?A?HCCIMMPSPNDHNNSPPXX\\_]]\]Z]\_a]\WNN\dpz}}zppqlkklnplppnpssuuxzzz{{    "//.3@=C83319@BGECHW[`e \e `aYWL%6,,1'4@JT\^ehotwrrorokheRLGGJJJGC=*  $)*./148=EHHQ{VY\aehmruy|~ "*4;B~HwRr^oejkfpau\wVwR|MG@;6/*%     $$$$$""" "  # .8?G"K'Q*S*L/G6F;G@FEBLBRAWB^DaLeSjVoZt_wiyqyxywyyy "(*/4<EKT\^fi~pyuwmppkrhshkek`u^|YVRQQTVzQwLxE}B=}6z1z,})%"  ) . .56888;=@DGLSX[Y^^`b`cgqy{xuqkid_XSNKFC?: 7:: 7%2++4(:%A!IPU]dl sx  {kN{NmPQ>L>B?8<)/&!!!               v o l g X S T S O G ; 5 $             ,08;BIQQQQQQQQQQQQQV[gwuyp{h^UOJHEA<<4122-*%}xqgid``]]XUQI70+! wkfjf\\R94/             D l s v y               | x u i W K F A "                        # #   # ' , 2 4 C C E J P W Z _ h k i u w w z |                                                        '),.6;:;BEILQT[]^^`chmqvyy{|~}~}{xsqjllnjgnnje]]ZXQLFKLPSSVX_`[VNN PPKL K+N/L/I2D7D<A?DDBIFP:S:U8X:b3f7f<d=fDfGbNfZi[u[}`_lty{}{zzxligfaXRNPMMIFCA><9975000-+ 40"/-2/:9>;?ADCKKMRKWP_UaZfbzknps{xgb_]ZWRKH?<:752+%! ""$0?Ow{wc]YTJCJMLZT{VX[ehlojjggeeb` `boqrv~/49R\\fjfkw !+07IQUX]]``digqx}%*-2214<<AEHJOU^{hypwug[VQQQQQQQQQQQQQIB;80,                         | | x w p h h d a \ U 6 - #                               ~ { s e _ Z U N L L K K I I G G F F D D B < !5 !. &) $ ) $ & & !                               | z w r o j c a ^ \ Y V G > 9 1 &) .$ ? Y c g j m t                   } z p g i g f d ~f {b va c_ b] ]Z XW XR SM TI SI OH QD OD DH @I ;D 5C ,/ '( )% & ' , ) & ' ' $                                        | x r i f _ J E > 9                             x q q o l d _& [( X/ U4 U9 ZC QK QP LU Ka Nk L} F = ? A A < : 7 7 3 8 5 2 - ( ) &              z u s u v v p n i f zb wZ hZ \Z W\ Ta Rb Ob Cd @n 9p 4n /n %s q n n q v x }                      { v f R D < 4 & &       " 9 @ C M Q T O Q V [ [ ^ ^ a a ` a h m m p t |                    ] V T N J G B ; ; : : 6 5 1 , ) $ $   $ + : : ? ? ; 8 5 5 1 . + ' "   & ' '                2/7,<-A/F,K(K%P%P'P-N-M/N1P1S6U1Z-]*_#d i i#i%l*l/p,s1v*u#z"z {{xx v x z }     "$'*.331/1.,*))'" "' - 6 799<"@"<'9*4.-/'3"6;@@GLRVY ^"\'[-V/T2V6W>[CYEWERFMMLTHTCYC\@Z;^;c>h=h8m4n.r*u$w"z "'*/4669=BGMRY\WRHC@961".'13:LTYXY^ejw|wyvjg]TVNTONQNNLNJzDn@kBbN_L\L_IXLZI]E_B]?X;K;D8>8:19+<)?0F3F+K+M)N$M!HA>70/*# !%+257:<?HKRWZ]_bgx{spnkbzZfUaP_KWMRKKDC?A>;:92/68CBEELMWRhQuEC@;93.  $)./8=CLMQW\\fmpw~ &-28AFIPX]dqxy~~zwttokkkkfhjf hfac^"Y VRLG@@;63"/'.-*4'9"<"@<99 7 6 -' ""'))*,.1/133.*'$""ysnjjb[SQKGA?70.&  "$))146389>@>631/44|6z6r4m8e/W3Q3L6L4E68 &.07?AGKQS[bjjnsy""     }z x v x x{{z z"u#v*s1p,l/l*i%i#i d _#]*Z-U1S6P1N1M/N-P-P'P%K%K(F,A/<-7,2//-0"4+ -/4:?DIMSZ\_afknsvxuqnquzvx}}vvqnlg`VLB?:5)      -0005799<>ACFIMMPNRXafgilxzz{}}xvzuqnquxvsnkfa_\ZSMID?:4/-  ) , 0 3 5=@EEJL"Q&V$]$^$glmh ^ [ X Y X T V T X V Y X X V Q Q V S L J N L J J E I X X Y ] ` b ` ^ ] Qr Ok Ic ?Y =U 8P 0P .H ,F ,H &E &C 'C ,A 0< +6 )7 '4 "* ( "% "                 ! & ) , 3 ; D G Gy Jq Lj Oe Q_ XQ ]B ^B `? e! e h e ^ Y T N L I D = ; ; 8 1 . , , + ) $ ' + + . , ) + ) ' + ) ) $ & " !     !   ! ! ! " " $ $ ' '~ )~ +| +y 'w 0k 1e 3c 5a 6^ :a =` @^ @a Ea I\ GY EY GV GY JV NW N\ Q\ O^ N\ O` S\ TY XV VR [M VH VJ TG OE QJ SH QJ NG LG JC NB OE QB Q> S@ V8 T3 X/ V. Y, ]. b. `, b* c' b% b$ ^$ ` b" b c e h g g e c c ^ b ^ ` b b e c ` [ [ X Y X T T L J J I I I L L O Q O S T S S T V X X V X [ ] [ ` ` [ ] [ [ [ Y [ Y [ Y [ [ X X V Q T Q S T T V V Y [ ] ` ^ ^ b b ` ` ^ ` b b c e g j j l l m m m j l m o q r t r t v v w w v w w r t r t q t r w v v t v v t q o q o q v w | ~          |                                                          z u v u q g d b a _ ] \ X S R R N P N N K H D ? ? D D F D D F H H M N N P U X U Z \ S P N  P  M K M R X ] a a  g g d d b f i l n k n q u x               z  {   { } { x x s u p s p !q #{ !{ #} ! # # * + ( * - / - / 2 4 5 4 5 4} 5} 7x :x >z ?x C Mz Mu Pq Up Wf Zg \i Xg Xk Zk \n ]n dx gx g k l s u u s{ uv sk pU lM lC kA k? i5 l/ u2 {7 9 5 7 7 5 7 < A D I M P R \ a d l p n u                                       $ 3 4 > G M [ \ c \ T Q J E > @ M R ^ c o z             ~ z w u m p p k c ^ V V  Y [ ^ [ e j r                 )  3 = A F D  F "D $D $K 'N *Z /g 1i 6t ; = @ L L O M Q R V V W W [ [ \ a f j f2 fR ah ew ex c c f j r p k j j k j j ` Y T T Q L H E C G M HCM HJH@963''$1 3;@E'N)N)Q'g vwwy      */4>A K M Xfnv}   )$)*./1/684E6L3L3Q/W8e4m6r6z4|4/136>@>983641))$"       )5:?BLV`glnqvv}{ytl_}`u[i[fZbNfGfDd=f<f7b3X:U8S:P:IFDB?D<A7D2D/I/L+N KLKP PNNV[`_XVSSPLKFLQXZ]]ejnngjnlljqsx{}~}o{[ySvUqPrIyG~DGKKG<2-(# ~~~|wmWH|;{||wthgb[[X{SSSNV?V4V!e jlj^[YOSQSN|OySvXy[rcS`S[NVNOJGJ@G:I8J6N3N1L1Q,T'T&N'B'@$?&6$8"5630. . ' &" !   ^ /e 6m < U h m                   ~ | z z | w u u | y w w o W L H C = ; 9 3 4 3 1 / 1 , ' ' ' ' ' ' ' ' ' % % % ' ) / 6 > T T V |V uW pW iY cY \[ W[ P[ J\ C\ <^ 7^ /h xk sm lo gp br [u Vw Qy Kz F| A : 5 0 - &                                              # z$ u( o) h- a. [2 V3 O7 H8 B< == 6A /D *F $I L P S U X [ _ b e g j n q t v y }          { u n g a Z X W S R P M K I H D C A > < : 7 5 4 2 / - + ( ( - 4 : ? F K R X# ]' d* k, p/ v2 }6 7 ; > @ C F J K O R U W Z ^ a c f i m n r       * *3 E,LWO\TaXe]j`octhyl|otw{~ #(-2<GKKG~DyGrIqPvUyS{[o}~}|~{yyvqmhc`^^][TQLIEB;:;6.,)'                                                       | z w w u i k h _ Z W P J E C C 4 2 , ' #   # #                          " A F K W i u x |             y v s l D                            m h Um <e 6^ /          " # % ( , 1 1 7 6 9 7 $; )7 17 69 6< 5< 1@ ,M 8O ;M ?O BR DU IZ L\ O_ Lc Jh Lh Im Ep Gr Gw ?| =z 3| 1 8 8 : = ? 6 5 3 0 . , ) '                           !" & ' ..036"5$8&6$?'@'B&N'T,T1Q1L3N6N8J:I@GGJOJVN[N`ScS[rXySvOyN|SQSOY[^jlje V!V4V?SNSSX{[[bghtw||{|;HWmw|~~~{wtol|hyct`o]jXeTaO\LWE,3  * *     r n m i f c a ^ Z W U R O K J F C @ > ; 7 6 2 }/ v, p* k' d# ] X R K F ? : 4 - ( %                                | w r m h c ] X T N I B = 8 0 & $ !                              % ' * , / 4 ; > > F H K R W \ _ d h h h n r w w | }      ' ) , . 0 3 5 6 ? = : 8 8| 1z 3| =w ?r Gp Gm Eh Ih Lc J_ L\ OZ LU IR DO BM ?O ;M 8@ ,< 1< 59 67 67 1; )7 $9 6 7 1 1 , ( % # "                                                           % % - 0 5 7 2 + * % # #  % ( & % # ! & & # #  ! # !      & ( * %                     {vuspl ifb_!Z&X&W+U0P5N5M:I?FFDLFQIXK_MeNlPnWq]sdtkxqyx{~ $*39@GMT[ahou|~  '-4;AHOU\cipw}         $ ) ) . 0 5 : ? D D I N S X X ] ^ ` b c b c b c e g g l r r w w v w y {                                               0w 3m :` LY UO vL J G D D @ = : : = = = = ; 8 5 5 1 1 3 0 1 . & $       #*/4A@@KTTYWZ\a\TPMJFF>r9d/_/YP74-(%"   ~{toiiegxd]]GX:S2B!50)  zypoommjje``JGB="       * 0 0 > C C > < ? < > > ? A > C D C C H H N M K M K K I I K K H H D A A > < > > : 9 7 5 7 9 : 9 < < 9 7 4 7 2 2 0 2 0 0 - - * * ( & % # # ! !          |uoha[TMG@93,% xqkd]WPN M K I H F& D, C3 A: >? <E :L 9S 7V 0[ *^ %c g j o r w {                         ~ |   ~ y !y %{ & & & *{ *v +w /{ /v 4{ 5| 7{ :l 9e :` >^ F[ I^ I^ P` R[ X] Z] d` l` qc ue {h }m o t t t m o m o m q l m l m q m j h j j l j h e g g j m $t *v 3{ 9y >| B H H J H M L Q R Q H G B G G G H L O Q O R W T W W [ Y Y W W ^ c e e                                 !  & 0 0 *                                                         { y w v w w r r l g g e c b c b c b ` ^ ] X X S N I D D ? : 5 0 . ) ) $            (/22HNP\dkx  "%'/4Jffjkpppty~~ #(()..38==BDKPV]b  '%.,42;7B>HEOJVP\Uc\jcphwn~uz# $&(!)').+5-;.B0I2O3V5]7b8h8o:v<|=?ABDFGGIKLNPQSUUVXZ[] _`b!d(d/e5g<iCjIlPeN_MXKQILFFD?F:I5M5N0P+U&W&X!Z_bf ilpsuv{~wurph}[nQfJfHd>_9b3b/g'fifXPF C C ?5//00 {^XI661,&$${{vzxzxxvuxz}zuqnkUPpIUDM?<?7>,<'>"<?<<:75&}yyvle[[XLGA=BD?7.+(&#fjotyywurmjfa^\YVRROHGH E E@@;=8996#8$3&40/7/:,=)A)B$A"DINS[__gsx ~  x u xsplnkkg f i"i%f"d'_*](a,_,Z2U7U;S>NCKFMJKTDYK^McMdKfMhKiKhHnDrFxD}HF}D|C?997<>?><>?A>??CDFKHFDCD:>599-0479542/*&& ( & ( & % % #     & & . 1 5 3 1 0 1 : E J N T T [ ` c g h h q r r v t q q { y ~ | | y y { {                           | w t t m j g [ Y S S L! Q* S/ Q0 N0 E7 =? ;H 5] +f $s }                                                              % 4 B H J T W [ k m p r u y w w u u t r r p p o o m m k k j j h f j m p $t 'w ,z 1~ 6 : ? B E I L O Q T X [ b g m r y ~                                  # & ) . 2 5 : = A F ~I {N tP |Q S U V X Z [ [ ] _ ` b d d e g i j l n n o q s t v x x y { &} +~ 2 7 < A F K N S X Z a g n u {        } y v t q n j g e b _ [ X U S P L I F $D *A /= 6< =8 B7 H3 O2 V. [- a) h( o$ u# z                                               & - 0 5 :| Az Fy Kw Qu Vr [p bo gm lk sh x^ /^ 7\ <\ C[ J[ P[ WY \Y cW iW pV uV |T T > 6 / ) ' % % % ' ' ' ' ' ' ' ' ' " "                                               ! + ) + + 3 6 = ? B B @ @ ? : 6 5 0 5 8 ; ? ; : = @ B D E G I J N L I N O O S X V V X [ ] [ ] b g} {} p i g l l q s q k i a W U R M F < 9 7 9 + 2 5 : < 5 0 / ( & ( + * * ( & !                                             { w r o j g c ^ %[ *V 0S 7L 9E :? <: >3 A, C& D F H I K MNPW]dkqx %,39@GMT[ahou|}wpic\UOHA;4-'  ~|uoha[TMG@93*$ ~{yxxqtksdq]nWlPjIiCg<e5d/d(b!`_] [ZXVUUSQPNLKIGGFDBA?=<|:v8o8h7b5]3V2O0I.B-;+5).)'(!&$# z~uwnphjcc\\UVPOJHEB>;742.,'%  b]VPKDB==83..)((# ~~ytpppkjffy                     $ $ & ( ) + - 0 0 2 5 5 3 < < = A A < : : < = D I K L N P Q U [ _ ` d e g i i n s y ~                               ! $ & 0 8 = B I N T X ] c h m r w |                                % ( ( + - / 2 4 5 7 : < > A C D H I K M P R S W X Z X S N K F A < 7~ 2} +{ &y x x v t s q o n n l j i g e d d b ` _ ] [ [ Z X V U S Q P |N tI {F ~A = : 5 2 . ) & #                                    ~ y r m g b [ X T Q O L I E B ? :~ 6z 1w ,t 'p $m j f h j j k k m m o o p p r r t u u w w y N K G D A A A A ? A F I N U Z ] ` d g g l n o o n s t y ~                            ~ y s n i i i g d ` _ ] Z U S N             |  |  z  k 2 c : m A m D n Q S V x g {                                                              ~ y t s n o o n l g g d ` ] Z U N I F A ? A A A A D G K N K G D < < 3 3 2 0 . - + & $                      2 c = ^ L p V x S Q D n A m : m 2 c                                     z x s s n i b a Z X a a W U X S R N N K I A ? C : 7 %  - ( 4 0 - - ( ( #                                          } }      } } z }  } | x z w w n n u p r p w w w| u| sy uq rr sj rh p` s` p[ pT kL mJ m= k: m6 k' r, s3 w1 w. p) i c _ ^ \ad h r r i k i k h m p s u s w| }z|  }wunmnhnfa^^cYW_^cZ^YYTWT_YWZ^R\\YZdac_caaffmidhfkkiamh^nmhf a f|ihinc$d,\.^1Z1T3P6P6KDPBTIUJZLZOWSWOT[UYP]M`O]JYJ`FbH`AeCe@j@lCoArJtEt@v>t;{<|AEA>AEHKMY^c__dfpxmmhfkffksuwz    " & ! " " & + . : :  5  :  = D D J Q T [ X !^ &` (h +j -v 0v 0{ 4| 4 ? D H M M P P N R S U W \ Z X X S S R R S Z Z a b b _ _ _ l p s v z z { } }                            w y w r q Y E ? @ = E E L L T T Y `  Y )O ,E 6? ;5 @: B6 G8 HG LI QG VI W; Y3 W, [' c+ f3 u, , 0 = = 3 0 $      rc\RJ<*(-' 7<@9 7Tx  ) @ O Y e l r t                   $ + -! .# 3& 7# :& ?7 DA IN QW Sf Qp Sx S} Q N Q S V [ _ _ ` ` X Q P L G :^ 8a $r `  B > T O E    9 B ;  6 w ~ r o e ` J .a $\ ^ u              } z z v s p k d \ P P M I C ? : 4 / ( #                   2 8 P Q V K yB v< j7 g- e+ ] V L I 6       y j B 6 / $       wqjb]`^ ]Y[XTVSOOLGGB B=;86"6%5"1(3,6-1,0,,1)4)6";&<+7+;.@)P&P"Ua'_+U0_5d3f,d+f&c$d!ca_UPK$H&C@AOR R UUUROFC@ C9 96/,'#%' "           |shd_\ZRRKHHE9;661-,%#(""ytZUS?<3-((!()-)+23 + . )+ <<?FF IQS`ine]d} g b[ U X ]ZQKNdZX%i's,y,,y(q%d*`*o-o1l-l,j-g,b-],Z-X2[7j>oCCE~@qMxMvAn9g6_4Z7V4U2X/Q6L9L9V<g<LAD@B;D9=;:7<457B2K/I-<*8(2-5406+4.-.'(*41**6/-/47>@ AFMHJOU$R(J$E&A!A>C(F)K)O-M<K=H<HAMAMLOLOBP=TFULYNWQUSW_^nav_lY]WVYSZQ^UaSaUaQZPYG_:a:a<a:a5c=f=iAkUmVpSw[|t}qq|jzd_gnlsyy|x~tojjqdjgiedXPIsLpBrAn?p:w8wAxDx?w?x<z:}=:B75}.+.-:03.-7<=<2)}   &35:<<?<?780))   &)#$  !#-308ABBGGdssqv}y}{ojjeXU[[PBB?7+$    !3)+27DA:3+!    ! !&' ')+.0,7)?':&3'8)Q!QN!S'U$]!b!i!j'_'s&{$&++'+,.+&)t'd+[,N)B,=0U07000!1.05535 3 ::BBEGJJNNID=!8#?)?.?0DJJ$I3D7@?E8I7LKJPGQBP=I:I?QEUB]?]@g={?{@sB`LPOQLXL_NXQSVZ]xSQGBEGX]~``[`eb[TJEB@@DBDEBDJSSQTOTTX]]eehghcb~eyeogohhljllmmlsrqvytvqvtytqvyyvvmqtwtoojoq rqqvwrrvy{ ~/%'||  (1>JPyW{YWC@2142- (--A>AHUUKOZf^PJMacTZE@O@7616<@@7>EU__YY_}\ZPmaadhirxx !,8;D658DD=BD@+0=I[eyvogYVV`gw~~yvoec o jb`X8.!8DOTLID'&           #!#%!$#)%$(!(++('+!-&*+(1&5%=(6+6+.-)/./;2:0@/B0D0I2D2I7I:D<I9S4S4V0^-]+`-b-g+m c&o(r*q-v+y///y2y47755:<:>><<:9?vCtFvFtIKIKMMNMPRSUSX]]_]aa__WSRR{KrIeMoPwReSgWZXUeXj\yX\Z]|_]a_afkiggiggbikllppqsvx}  xqquvz{z{}}}{&  4KNNFNKIKR_ggbXRWdabivx{upd_\RMRNA2&*5I<A945(!%%#%*+:/2/5CWRAM]I>/(+<* % & AI D 2+0D M ZZnURKM_KFRfvqdaZZS"R"I$I%N%b)a)g*l,s*u'l$p$s%q*}.z1{1}1,)')*.131../14;=86;;89=>>@B@;48;@B>>==436; >@@ =%B"@C@BBCCEGLJGGGECBBCHECMRTVVQVWWY[[^cecaacc^\[[`\\[V[\[ TOJHGJ"MRWY[\a"c4e6c$``afhfc jkjhjopptpoporr uwo/u*yz"yz ~|utokmrrtuwwzzwzz|~~)34;=EE3163,%"%%'183;=ECEJGJCTV|t~kmY\T[hmojaahmuorehouypc^^Y`ehhoojzomjQQe`[JORV^`ejtyzpY\Wouroty   !$$!--2:: <?G LNKU`dlgGA!5(7+F)U+]&]lnx }      xt!l(l+~(-+t)n-g2g8t=v?~BADD73&#.02..28AGAABPQLIPUL70.-)!# $.)$%).3:AAD G#KP,S<I*G1F/B6D9F4G9K;KFFAFEIKNJNUQHXMZTZ^VkSpPnLxLGA?==DGGIKQVVUSQZ[Z[]_d```_]}br`kbcg_idiTlMlHqRs^oanfvhxmsrlgjlnqxxtvottoliegdeilqonnld`[bg[Z [ V U S Q X U Q V+ Z1 [ ` b! e$ i j& j n o1 q' o q t' v: v1 x1 x+ }0 I N ^ y  y j { { |         y {                                        !               ~  } { x y v n b _ _ d g d e d ` ` ` j l t v x { ( / 5 9 M _ n q k k s l g K _ i d a a \ }Z {_ }b ~i g i s x }                                                            '                                       } g ` _ ` i t      $ " '   " . % ' 1 ; B J ^ [ m p | r ~ u y r p u |                              }! y t# s s o l j g e b ` _ _ ec eV j6 i, i; b. bE `; `= ]a [a [f Xa Zu U N Iy I P N P G B A < : : 5 = = = ? A = : 8 = : 8 ? A D K L K G G G : 8 7 7 8 B F F D B A B : 8 . + ) + 3 7 5 3 3 . + &    t  t m ` T >  B ` $r 8a :^ G L P Q X ` ` _ _ [ V S Q N Q S} Sx Qp Sf QW IN DA ?7 :& 7# 3& .# -! + $                   t r l e Y O @ )   xT 79@<7 gF+ kw`f^TVHCe=h.c B }ka:W4k/!v + trjgb]XSNID=83.)"  xndfda\RPMH'{v wv{'HMPR\adfdnx  ").38=DINSX]bgjrt  +v!/4k:Wak}  B.c=hCeVH^T`fkw +Fg '-(*<JR\cr     $ 0 3 = = 0 , u, f3 c+ [' W, Y3 W; VI QG LI HG G8 B6 @: ;5 6? ,E )O  Y ` Y T T L L E E = @ ? E Y q c e ^ Y S I E @ : 8 . , & ' " !          |zwnkpcdainnz}w{md^TUO\srqkpmliknicfff^bYaZ_M\MXHWJUESFR@U;S7N>NJMRKRKKDTDPCPIAH>D@AM?K<R:T9Y<Y7a:d5f5k4f7a4\5W4Z4d-d/n0n-p*h%a!W%T UO MHA>; / 1**"y{xyvqqxssoigd`__[SQbbXVSZNSAIIGA=?:83.3.+)?B==53.5=:8077-$$!!$#y{v totvomlhjgccemjhc``XYXTTSOLLOO@?=;8633.,+)&&$   ##(383D?7(-5302<?wB|B}BG|L|QuSpXzSzU|ZwZibhehldndods^qi`ae\_ZQYQZiYsUtToTjUeWdT_PSOSOPMNMQKQJNKIJLFKA7;0;#9&9!7$6$4)2(466979742 4 1-/-16>AEFJMRMJMOTUWZ\WWUPOEMRTUURMFA<99<><@CAEJMJC@<;>;;CCHFACFF@AF~JwHrCwAu@m@p>p>j@f<c<a9`;\>[>W<V<W;R>B9H7R;m9|;2224;;<911/,,'%%(,'"(('%%#%''"(-,-,1#1+/3-3-7454:73781F1?/G,I*<*+,)-+-(,$(('#'$ 2#("( .-0.32&$(!!      Y[R\ahktyrj~~~|wtrtzzyppojmyzyz~ywtu~t}w}t{ssqqnnljjweyeudybp`o[r[oUoPtPwLyKwIzIuKuItImFoFkBk?o<k7m0h.k0o-p-m-j+c#f![VVR JE@;1*..,)  qliUNH:2%             !!!#$(+358<FKLPQVVZZ[[]`deejlloqogigjjstvvx~|tytryyvvroowlgb`eehceheebb^^b`cc``V ^ X^l w        y o l ] T Q O E D ? @ ; 5 3 . 0 . 3 0 1 8 @ J L J J T J G 8 ' + 1 , & ' 6  ; : 5 :  5  3  ) $ ' ' . 0 0 + "+ "5 %= #E #G 'D (O 'V (c 'h *j /b 2c 4h /v 1v 4q 4y 6~ 7 ; ; 7 ; 7 9 ; ; > 9 9 < @ E C > @ > A A < A @ A E O E E F M O K F E F K F% K& J- F2 FA CS AZ Ci <z 9 9 4 6 ; 7 4 - , ( ' #                                          { { }    { }l xd xZ }U ~K A > : 2 * - - !                             : 8 #5 -1 /3 73 :: <; ?8 F; H: K; N? X; \8 \0 _, a. b) a' b" d" f g g l l $ 8 @ G V Y Y X Y Y T X S Q N G ? : 6 3 . 3 ; G L O L Q V Y c m v            % ' % % * 3 3 6 8 6 4 , ) ' ' * / / 4 8 8 9 ; = B H O T Y ` e k p u w( u+ w0 y2 z: A C M W \ _ i l q u } } s k a X X a _ \ d g f k n z                         ' 3 6 8 @ E L T ^ e o z  ~ | y y                                        | y w p k h f a ^ \ [$ [. [0 R. O) J& H0 G3 B8 =: 8< 1< /D ,L )N %U %_ $` $j n v s q  n j j i l s }                               } v q j ` [ V N K G B B ? < : 5 < B K S V Z Q U V _ _ [ X Z zZ u[ nZ k` kb fd dd bj \l Zl Zb \Z \N ]F Z? W< U: W0 Z( X W R P N K F F A ? : : 9 4 4 / * ( & # #                                     y t p  o &m &j +k -a &V %T &T &L #C > @ @ > 9 6 4  1 %4 %, &$ % # ( + 0 - * % % % * + & !   # & ( + - - / * + * ( ( - / / / 9 : : : 7 :} <u >k ?g >_ <\ ?U CR CI D> F7 H/ H& H K H H I I M N M K H H I F H I I H ? : 5 -r (j &e &] &[ -V +N /E += %;  @ : ;7221 446 97;<;2$939<OBYK^X^`^}|~vni [ U N I G. B6 A@ AJ F^ Kc Pv [ e y   ~ |                             ! - - * 2 : > A ~K }U xZ xd }l {    } { { y y t s o n j g d _ Z U P N L G B < < 7 5 7 7 3 3 2 - ( #                             z n k f ] R N K A ? 2 - &                                 ~ t l c [ O L J I ? 5 + !        wmc^UOKJ@;POPOMFMMC<;9;@JKOU^cmw       ! + 5 ? I J L O [ c l t ~                                 & - 2 ? A K N R ] f g d \ _ a X X a k s } } u q l i _ \ W M C A z: y2 w0 u+ w( u p k e ` Y T O H B = ; 9 8 8 4 / / * ' ' ) , 4 6 8 6 3 3 * % % ' %            v m c Y V Q L O L G ; 3 . + 0 0 *) *& 1 1 4 6 6 8 ; ;>@@=@GMTV[`ehmrtwzy~|shaZWP-9><AA<>992-GO[^`eowwyww"-22*#yu ur'r2r;r<wMFOPWZahs|~yzwtrmhe`[VTMG@=;;;;9999999z9r9i9^;BBEG     $ $ ' % $ " % , , / 8 8 > > = B J R T Q V  Y W O R Q 'O *V ,\ -f /e 1m ,k *o %k  j m o #t %t *u *w (y %~ '| ( % "     % % ( ' % #         # " # ' , * 1 1 4 9 > E J K K K K P P O O T U Z _ a f d i k m w w |   } z || | y u t m k f e f e c e k j j o p m k k p m k j h f ^ \ Y Q M J E E E > 6 / ' $ "                                        z s s { { v u u s n l l i f b ] W P H H C ? < 9                w m e ] S O J ? 3 , "       "$,.)))$$),135@JOTX]chjmqtwy ) @ B N ` c c m j j g h c b ^ [ ] l o c ] ] X V S S E B  ;  ; @ B ; ? :  @ %; += /E +N -V &[ &] &e (j -r 5 : ? H I I H F I H H K M N M I I H H K H H& H/ F7 D> CI CR ?U <\ >_ ?g >k <u :} 7 : : : 9 / / / - ( ( * + * / - - + ( & #   ! & + * % % % * - 0 + ( # % &$ %, %4  1 4 6 9 > @ @ > #C &L &T %T &V -a +k &j &m  o p t y                                     # # & ( * / 4 4 9 : : ? A F F K N P R W X Z( W0 U: W< Z? ]F \N \Z Zb Zl Zv Xy S{ S} U U X Z ] b i n q p p k i i l i k n q v s u s s s n q" s* u6 n; n@ iA fH bO _P ]U XT XP RR MU H^ Ha Ac An ?s 9u 5u 4i 2a 0U +U (\ %c  f c ^ d h  h c f n u                                    "&+.0;DLINT`mt~ ~&{-{5v7v?wF|MyRqWo_qkovmzg{b]]`bb]VQLD=;660,++)+)$ }uqkgaXPH?7/++(&&% |zzusnihOwHgEg7]9[7]<`A`EYENCJCD@66,4+6+4'7';$9;96 2 ( %              # % * '                     ..38@DELOOLB@B;8=5+&              ~ ~        } {} xu on gi gc b_ `Z [T VA V, [# ` ` d j j l n o v ~   "                              " ( ( 1 1 ' " % # % # %                                     } { t v l i o ~   " % %y (j *d (b #` '_ /Q 2P /V /i ,s , ' ( * - 2 4 7 9 6 1 / 4 1 6 7 Ey Jy M~ T U U{ Wy \~ ^s fv iq no rg ug ue re nl mn hn ds _o \q Zt \y Uv T} M{ Kt Hs Ax 9v 7s 6n 9[ 7V 4U 7L 9L ;P EU JZ JX FV EQ AP CK HI CI @N 6F 4= 7. 6# / / * %                                                                 ~ t r j e \ V Q M @ @ ; @ 6 )     !#(/4:>AFKPW\glv{{       ',113E4M3G3Q3V4V6T4M;[8W8Y;a>`=\HkGkGoJpJmOwT[aekk)^NW[TZ^Nf3a0^8W7W:W<OAEACDBK>P;`;q>@GEBB;9^9i9r9z999999;;;;=@@>;; 8 6 6 4 1 1 *& *) 0 0 + . 3 6 : ? G N Q S X T Y Y X Y Y V G @ 8 $ l l g g f d" b" a' b) a. _, \0 \8 X; N? K; H: F; ?8 <; :: 73 /3 -1 #5  8 : ? ; B @  ;  ; B E S S V X ] ] c o l ] [ ^ b c h g j j m c c ` N B @ )  ywtqmjhc]XTOJ@531,)$$))).,.136:@EEJJGJNzOrN_QPLHOAN;L9I>I7B2B,E'E"NLNJ NJJLLGEBD5:;;88:;@BGLJLQQ]b]YYXQONLxNtNsLoLiVjX][_b[gZhVhSjPlGvA{F{BB~=75+(#     ~ywtmhe\[YVTV^`ehjmkaWVRLEB@B>3,'    "&' +.38;?@(D.G3I3L:O?TBVKVQVZX]VjLiLoNsNtLxNOQXYY]b]QQLJLGB@;:88;;:5DBEGLLJJNJ NLNE"E'B,B2I7I>L9N;OALHQPN_OrNzJGJJEE@:631.,$" |srkhaTPKE@;/,'"sog]ZSUU]]SK?:5& gff]XUS"HD"<)<.41&5&8 =?BEGEELOSXYbchjmqrww !&-04:>CHHKIKaknnsv{  ',3>B@BELRVWakmjhe`^VTVY[\ehmtwy~     #(+57~=B{B{FvAlGjPhShVgZb[[_X]VZVQVKTBO?L:I3G3D.@(?;83.+' &"     |uo j e a a J=;66441/  ""$$&&"  z}x g                       # ' * 4 ; K P R T Z _ a c h i i m x z                                      { { s q p n l f i l l n s u u v { { s s z                                        " $ ' / 6 > E E E J M Q Y \ ^ f h j k m p k k m p o j j k e c e f e f k m t u y | || z }   | w w m k i d f a _ Z U T O O P P K K K K J E > 9 4 1 1 * , ' # " #         # % ' ( % %     " % ( '| %~ (y *w *u %t #t o m  j %k *o ,k 1m /e -f ,\ *V 'O Q R O W  Y V Q T R J B = > > 8 8 / , , % " $ % ' $ $      FLNP``ggdeiloxxts``boqsq|sxqutr}n~i~\YYdmid_\^ZYYachhd^OHE@9'%"         "',/269<@FH J"R%R*O/T6U6\9a<a<d@hAiCdJhKkMpTpWwZw\z_ud|hmnswz     " , 3 ? J O S ] e m w                9 < ? C H H P W ] b f l n p q s { {                                      z x m i i h c a _ Z T R P K ; 4 * ' #                           ) 6 @ ; @ @ M Q V \ e j r t ~              ~e y[ tT {R {W ~` c ^ ^ [ Y W ` W R G G H G O ~L }O {G x@ t> tB s> q> qE tL xJ tT oO tR tQ sO sL l> o@ o= l= j> i9 g= _; d@ iE jJ nM `C Z; Q4 S4 Q1 P/ G/ A3 ?/ .3 * *    # . 0 - - 5 2 2 5 8 = < ? = 8s 8n 5d 5N 3F .< .7 +0 (/ !#                  r ` S G : . !   !$.28 :<DFF%).149;CEMQRY\kkmmmoow|~ #02377<AAFFD<:8 2.$!  ! . : G S ` r                  !# (/ +0 .7 .< 3F 5N 5d 8n 8s = ? < = 8 5 2 2 5 - - 0 . #    * ) , '                                                 t o h f f f h h f c f a ` ` ^ c c h o p t p o o p p p m k h h f h e{ fx es fg aa ^b \b W_ VM OI LK LD O? O9 L/ G/ C2 C5 =7 9: 49 /< .9 '5 '- $& $! $ ' $ $ " $ $         ' % ) , . , ' ) . / 3 4 ; = ; 9 9 8 ;~ =y 9t 8r 9o ;j 8g 3h 1e 3b /] 1[ 4X 1V /L ,I .? *; ,3 ,1 .' ,$ ) , , ) % $ $ %+ 4 7 > < > ? A C F F M I M N  I  H I H I H I I R '] %b 'g .g 9d @d EX GZ LK OI VM W_ \b ^b aa fg es fx e{ h f h h k m p p p o o p t p o h c c ^ ` ` a f c f h h f f f \ \ V O M G E > = 9 . '/ '4  C T Y ^ ^ W [  Y  W R R M B ; , , *  *  )  %  %  ) ) ' "                     l l f f b X W R K M > : 9 9 A C > ? > H S d l p v { x u l b \ U H 4 / - +            |umh_cdddc_^YY URWURROOKHFHEFCA<@>>>A@><<>@>><> > 7 6722,('(%%"% #%&(-/ 4754"5%9'5(4'4*7,5/72545726/<4>2C/E/F2E4A9A:EA<?<>7<;<2>4?2?/A-?-C/C*?'?*A#?#?%C'C"D%H"DD >>9"7#:77:>CH NRXXX\bdgilnppnpppqquuz}}}}} #%,/299122W^impuxx $%%$ $ % ) , , ) ,$ .' ,1 ,3 *; .? ,I /L 1V 4X 1[ /] 3b 1e 3h 8g ;j 9o 8r 9t =y ;~ 8 9 9 ; = ; 4 3 / . ) ' , . , ) % '         $ $ " $ $ ' $ $! $& '- '5 .9 /< 49 9: =7 C5 C2 G/ L/ O9 O? LD LK GZ EX @d 9d .g 'g %b '] R I I H I H I  H  I N M I M F F C A ? > < > 7 4 + - + * / - * ( (                          ~  j ^ Q E B @ I L X V O N N S ] ` ` ` c g r r w |   ~ | v v q e Y Q J E B B I V ^ ^ ` ^ b b ^ ` ] ^ Y X Y V Q N I = 1 $   ! $ . ? B G D 8 ) ! "     vqn k \ N K I I H F D F K I F I M K N R U Z \_a\ZXWNKMNNMHFA?<?? <775450/002400--+*-&&#%##             "      !  + 1  3  6 8 5 8 8 ; @ B I L Y g g e b ^ c b b e b g e h h h g g c [ [ X V O N L J J I I G @ ; = : : 5 3 8 5 + $ ' &             !  " & " ! & $ ) 0 0 &                            ||{|vrrog e b ` ^ ] [ Y Y YTT SOJ I E B ? ; ; D DJOQSTQSX```^]YXTTQSQNLNLE=;86=@@DGEJLLOQSVVXbhjhlmtvvrgb`X`^bzhxo|owqxoutu{nmnwzuma\UTTRTRJ@>AEHPRTPYY\\^cipw|}22/%#     %''), /49;>EJMRR RW[\``ejkmo"p(t-u4y;zAuErHoOoPoRoTtPuPyU~Y~_|h~n~u|~|woommmkk\YRQMEC;941.)%%$ xxupmi^W2<AABDDBA<77:?:=DKSQNQSQQX__`degginoqsx}}{yvqlijlsy} $(-2.-+)+.38778<???AFKLLN}Q{Vy[{`yd~g~ilqty~~ysjotvtssqtxvv}{vojnllstvxqleddgid_][[XZ[`dllnssvy{        "%'9@EHO^dhhcaYYZ^\_dimdYY~\~i}ntrqusxq|sqob``stxxoliedgg``PNLFAA<77320# |~u~n|h~_~YyUuPtPoToRoPoOrHuEzAy;u4t-p(o"mkje``\[WRR [ \ ` aem o u ~zrpkeca^\Y^`c{fyf{mypsrtuqulyl~b`VUPLFB?ANLF<""%*,,,/169;>=>B@@CEJOQV[Y\^acekprz~u o m ea` \ [ R RMJE>;94/, )''%     #%/2221992/,%# }}}  !$(+|0z3u7o8m:f<`A\FYKWPTQTUOVM[O`OeMeLgLgJeCi>n;q6s1v,{..)" $''))%$$*14;@CGHMT[^ehkptz~    !(.025<?BDFDFGIIKKNPSUVUSSZ_gjsy~~ytqlig~d~`y[{VyQ{N}LLKFA???<87783.+)+-.2-($ }ysljilqvy{}}xsqonigged`__XQQSQNQSKD=:?:77<ABDDBAA<<832.)!  !).238<<<72.   uhok`RMLQQLJ;;>>9;89 8 = 6 ;9;94*" ) 37:=?BGKLLIILLNILLQKKIKLL PUdjx}{}{{zzvxuxqplp}p}nniidgiddbXXSSPR]PNPNPNPIKFFNPUWXZagipsuvxzz{}   $$$$ '*/6=BHMT\^"^'^,^-^-e-h,m-t*u'     $-078AFKPX[[]_digddelqxvtsllnjov{}vvxtqsstvtojg_ZSSUVUSPNKKIIGFDFDB?<520.(!    ~ztpkhe^[TMHGC@;41*$$%))''$ ").{.v,s1q6n;i>eCgJgLeLeM`O[OVMUOQTPTKWFYA\<`:f8m7o3u0z+|($!  OJUTWY\\^^\^^h\k\t_p_matfoiukukmnorjukwoxr}ommprtz~zkmpww&5:?KS]]UUSZ]gos"',/;@EKPTahkrs|zwsnmhd|_u\zZwWwTpMpKkJhCdAi@h<d<a9a6\6U/T*O%R"R JHF@<962/,'"           {yvssnlld`[ZXPKFA870-$     '*u-t1t1p6m9f;f;j<k>f@f@eC`H`HaMcO^PWOJcfikmrw}|zwx| !$35@D?DJIJXbcchmttrw~   %0<??A?ACFHMP]_dffg d gx}z  "&&$$""  /14466;= J a a e jou|   wwpmkz~ztrpmm}oxrwoukrjnokmkuiufoat_m_p\t\k^h\^^^\\WYUTOJK>C>>C;C<@@3@,>)@<<;766 99996764,*%###%#%(*}(x,p-\/K1?2:/4/-4#697;;>FFMPPRTUY^_cdfdca_Z^\^|Yv\oY^TVOTJSENFGE@F=H1K5M0O.O+M!OU\\ WUUPMORTTU\\^ccPPM_]Z\ipkd\XPNSSNKDHFP W U MK?A>:?? M#P%X-\,p(x*}(%#%###%*,467699996 67;<<@>)@,@3<@;C>CC>K>OJPWO^McHaH`C`@e@f>f<k;j;f9f6m1p1t-t,m-h-e-^,^'^"^^\TMHB=6/*' $$$$   }{zzxvuspigaZXWUP$&+058:=BBAA==??BBFFIILPQV[]`ejosttx{  "##%*/ 1-(*-4;> @">%E'K%O OKMU \^fkmruupnz}| "#**'**"#"%'(-167622//-/679<@AEHJOM!O+O.M0K5H1F=E@FGENJSOTTVY^\oYv^|\^Z_acdfdc_^YUTRPPMFF>;;7964#/-/42:1?/K-\%X#P M??:>A?K M U WPFHDKNSSNPX\dkpi\]da__]SKIHK<:?<-*&#!  # xql_XSF.-2 C HMRSilz~yrpjhc``^a` `/cB`O\RRRHCC9B686/>uz    !3<<8320.-)#    ~|upruu}wzzqnlgd\WPFA><72424542(|uwyypaQLG''. 88//1 > J M#R+V4V5V7O>JIG_Cp9s3,*)*}}vp nd\PMNM 7"2%"* .,31BHM[acfkku~rtqhg`^[VTV]^[XTLJE61563+" &253:875335:==AFGGIINSQNPUVZ|[mPRLKIMFJBJ=;:7570/+1&'! (+..+&(     "#*-2!7"()') ) ),,1355310101331068::65356::@EGILOSTS}Y{[}]}cgjmvvy}wx{v|qnjjeedegejitx}{}y{nioqsijd[ZZVZZ_`ZZ[SLNKNQSXigii`_`nnln l(b-d/[4[5S9V>S?ZC]?iAiFdFiClCtAxA}?}?CAFHFMRSWX\\abfglsv{#%,,/11''*/47>@779@CFWPRRYPP Z \c ipz      zxsx $''$w*r1u3|84z6i3d4_9\;^;f=_@_@wEEJTzTrVu\radcfk_rcphtrr|pomjhkjhkkojhecehe^^[[OLHEHGC@=89BBC =&8,65>E=Q>Y=X;S,V"@"836?BQ^`eejmy|{""''*$"')*16HEEE B BCBB@>>=@6113469;>=B=@==>;=@ C@=94 3%1#3&/*/0,2*7)4)<':'>"A F$D%S)\'Z"db_p f fiu{{vlg\WPKFA>:4/(#!{vsnnkaKIKHHC>:40-&! wwrqmjhcbYXSOLEEGEB?=8 5&1&.4)<"<D"HSUX]ff g dgffd_]PMHFCA?A??<0%   ~wrttmhccbXJIJD?D@53$!| xwz|}xuwrrmpphihidda_^YYPMHJMOUZ^_\\ZYTORA<4(    { xn f g nqnuuvzz}}vpnilkdb"f'_)a)f"lx rcwd~_dYWYROMPR\Yadac^ZK>@;7;9>@4(2/42>H>7--/,*-,/99@<2297 2 -,-#2$747>>AJTWZ\ckikfddk#r$z&|(u.|.0.(!$$!#+-057:BDB?<?BGGIIINIIGGIBIPNGFB|FwBuDpAr=k=d8^5^.P+R&P&T$T#K#P!T#ZZWTP$A+>-;+9(;&9+729=ENZLkNsSQS[q}~'~xsoiZQB BBLLIKIBA2& $&&$$!  5; GBB0.,'+&!   |zppokmmprtutpojkhjmopr|trphrcccfpwrmkifc"#'%#" xqoqqsvv l jgUV XUdbi#_%`(`/i4e<t@}FJOUY\_dmmsuxz| (4<AROTYZ\\_^ZUOMJHMPYY^_addihihppmrrwuxwpfccc^\\UTTROMPUUW\ \UOJHEA@<976/-//226761-('%"#"**'**#" |}znpuurmkf^ \UMK O%O'K%E"> @>;4-*(- 1/*%##"  Qapu   |wpja!W(e((%#! !&*(&**-*+/2~/t0p4p5t7:>A??DHNNPg}!.Vqx{vslgfba\\XWSRMFHFAC??}A}AxCtClFiFdAi?iC]?Z>S9V5S4[/[-d(b lnlnn`_`iigiXSQNKNLS[ZZ`_ZZVZZNLFA?::5358A<AABDDIFIGD=7-+ (    |z h``WR Q RQYD]K^K`IcNgNhIlKlFtBt?w=y?{?{B~=AGFIINSUZ[_bedeejjn|q{vwxy}vvmjgc]}[}Y{S}VoVgViTdQ`S_Q[QVSVTUVKYD 6Q R QRW`` hz|     (+-7=DGIFIDDBAA<A8535::?AFLNZ[djisqoin{y}{}xtijegeb_[ZUSNIIFGA~={B{?y?w=t?tBlFlKhIgNcN`I^K]KYD[B[AY=[7X2Y-X)V#Y$`bcbgjh jllqqtttw{yrooj``\YQHHEGC@=84'%"O`j&vKbgsqssx}tos ~~yo m"j"]%]%X(Q,N*N(L4J4G7E>@>;E8K+R+T.U0W3\5_:f3i!m'w'z6w=x?wBw@uBrLrSsLxD|6|'x&sxxw xzx z }|      urrmphcada_^^^a^WKKMME;71'*9KRTTPKE><997922667;9>RW^YYWTPUPJHHCER4#"#"#%"*644;7;>FFORRY\Z^fikk ruxzz}           !"$&)+).3;:?;:=858:??GGEGO]bjrytjh cc`bec&e&j'g&c$b'`,b.^1`1c3`:^:e;^:^:]@YDVEXGVETJOJJQJVGYD^IcGeEh=m?jDlGhJgXgYe`ghjmjbb^^~[~LGGEGILLLIE@?@BEINOQ*T2Q#STSSXhlo#{?{Nak{"%'48=@CGEHHQY\``joory{wtttqqlljh jgbcb`Y$V#X)Y-X2[7Y=[A[BYDVKTUSVQVQ[S_Q`TdViVgVoS}TSOLIGE@::65356::8601331010135531,,)) ) ')"(!72-*# "    |zxusmmd_\YUOJF@}<t4e/i(`%`#_ibdU XVUg j lvvsqqoq x"#%'#"{xttsoje`][VQPLIIFFBB??==AABB=:850+&$ }}sjigji`dd[ZQQLQNKGAFBA:820.)&#    ~|ryrj`TG;896699434316611,.441146;B;83.)'  zvvnaZRMFFHH/(%  |{tqywhgc^VTO#()).578<=AADDI?870&#!$)& (*5+:/A2=7?<DAFDDFAH=F3M3N+S)X)]#d!f$k$x !(2DGGNQKBBKSSZZUSZUXUVXUK X]]`go v'),,4>BEHH{GvHsOq[t\t\ncqencic_f[hVcVcNcKfGeBe?f:f2`3[(YW[\[W^^`^[ac^\WWW^^`jkprrwrromhe\etutuyy~|yyuyzwwtrormojheca`c`ccffjkmrhfjuz~~~      &))AA??BBI`glvyy~    ';>@EJMPYhmnssw&)+;B@LOTV^cghwyqt{|  %(/HHFFMRZanvvz  ').38;B@CELOJB@=~;w;pCjCeG\BY9T4M)LC1${ v q ibXHNMPZWMC>FI>:% }snbNMH5/- *((%!    ymjgc[Jr@oBm=j8e6Y+Y&Y"`cb bYVVXV[][V[Y[Yu[hYdXYXFN>I4B/@%DB? :3.+!"",05=EGE@DDDINOY}[}`gjjjmljb`bmywlNLSKGK<7:#rvttry{{~||ytw|      |ueh J#L(J5QDQSY\YaRb[gcdefhiesou|%%,89;GJLHJLOTW`ehmorrwrrpkj`^^WWW\^ca[^`^^W[\[WY[(`3f2f:e?eBfGcKcNcVhVf[c_ciencq\n\t[tOqHsGvH{HEB>4,,)' vog`]] XKUXVUXUZSUZZSSKBBKQNGGD2(! xk$f$d!]#X)S)N+M3F3H=FADDAF<D7?2=/A+:*5 (&)$!#&078?IDDAA=<875.))(#*//5:?ADHIHKNSX]_afkkkpssvz"$*,,'',$ $'))3,,4;LRY`ehorporrtwtuwwyyzz|$&"!&,05:JNOQOX]]bc`ecjh|ryytwe~`^\YTTTWROJHEB=1.)$       !#! !&&+07<CUXZafabgn}vkbXUIP}KMuKpKCxC}DCA<x9q:g<d<]9X7U5H2N4P7\5_0a+]+Z+R*W(W*Z*_(_!P!A9/+&-07FIHA<7>ADFFIIKZ_ZP \z zvngabPIC%~wmmt~ymeXQSJE?=3155?=B?=31$    }umdc\Z_^ZUPFA/-,%         "%,/99<AMPY\WZZ\  4 7:75*zyyzzzyzpoomomoomjesekkkeheckZo\kUoMrKtHpHoEkFhOfK^M\J^>f4k"o okh^\YWWY`mu|~|ur t| "%12/,/*"(@/"#     !$$&$&2--&$#!!&#$$&##$(++-++.-.2353775788::<DFDADBDFGILPPLNNQSUXZ[]_]Z[[_``einigijlggjlnoqt}}y{vyxy{{}}~    # "%--#,-44<EE@KTYYZ^cinnzrnhd\^kswu}rnmf_RRF}EYhkpf~d}f}_{^{UyZvWt\v_xa{m}m~h~&,8:@EJ}JvOvNsNsQ_6S1P3A&<&2--& $!       ++050,&!"&$|z*&!!##!#*(r&p#r#a!a!Z#R&T*T+Y*Z+d-h/i-c0^/R4J5J4P7K:K7H9C5E4--*-%+"+(*-/0/0 0424045599ACCHHKMRRPRSRRUW#Z'Z*]*]>fJfOiYpavfkpuicirmicad_JC@A<41(%%(2;KMPR^ci|}zvsspkkkfa_]XSNKHIHDA?:5//* "  yvl g'i*g,b*_.X9P@IBA6.15.5..$(%)$% ,.46;=CEHLMMMOTVVW[aa^aa jkpuzz+:BGGQ]bqx~zyrojjfkmmkhc`^WTW\\\WQLHB>=;9;@EJLQQMLJHB;>;84/11.)"     zsu~s}p}nqkibbdbyd{dxanfbdXi[gXgUfUdVaU_P\K]K_NbNfLiGlDfGbFbI]D]:a=a:a8_:_3]2]Z X ZXWUS P NKKKMHHDC?><<>ADCDCC>:942020-(++%%&&##!%|#u%o!p k!jjfaa^^YVR#T%O!O H!EEB@= ;46//**)!3#;*E*B#,#'%.(10M0O4O4L5H7E5E0@- *((( & * +-//04459"5$9'9.:*?3A;CBA4>,>)<%>$5 7 9:>A?:AADFFIKMNUXWU]"\%]/_$_Z]Z]]\\Z\ZZZ\_abdabggklgilnnkgg%i*g*i3k1k$n$n'p)v)xz}/6=;889=MQ`uw|yymc`[aTGEBC66$*9@JLQQYWMQamtp~u|yjLEECB>=@>BC@@;9>83/'"$"..*,%$%"      $ ".@E>@> C BC/ )   "*,.,**)'""% $$)$$ ""$ %')**.**)'%$ " ,./ /1631". /.,"3'1/4,6%9,888L4V8[6a3c3h1f/h.f,k)o4w41333,,114386898;>@@CEGEGLOVTVWTTWWVORVTVTVY\\^aeceffcjkkmooprrpruww||   |y~  #!)##+27KI3+zzupkja a^aa[WVVTOMMMLHEC=;64.,% $)%$(...5156.BA@I9P.X*_,b*g'i glv y " ~vrqob`` beeggjjolhe[XVT{LZJMJCTY]cw{w?O0$""#*/07>AHM!N$M)K+F+F3?0<)9+:1>8D8K;X;]?_B]EZIXL_I\L_LbNkBn@zDJNLNNQNOTNVT]gjvyw|wje^YXYTL:31.'1"69@CHRW\^ary#&#   #$(38xFsFpDnGfQaU^XKVHXE]>d<g@i>q@qCvFvKyO}U}Y^\^^~dhfkmpz       " & ' +.00)1533=@B;:::6"5= @"=%=':'?#@ EI I#G(@*B,@,B(D(L2B-N/O-S*S*V2S1S-]*^,`,c2b/h,j/j-o1q-t/v1w2|77<CE@@HHMHROPJMUUYUTR\_^acha!Z(a+a-a0W0R9UDRCPCOIUPURRPPPMSMWJWHdJiObPs\}ZWWWYRRMC@@<7746//1((,(%'}_PID::754-&yl nje%d%dedddegggd``deiioolnnoooqijiUQLKD830(     !-0/49?HKXadglq{zz{rxm{h{e^O{HHE=841/.*)$  *=CGJJJJGGLRehkororrwtohe^\TJ@41',,%6LWYa `e \e`[WHCEGB@91338C=@3.//"    {{zzzxuusspnpplpnlkklqppz}}zpd\NNW\]a_\]Z]\]]_\\XXPPSNNHDNPSPMMICCH?A?? : 5544(%       @Ҁ ; 6 8 : = @ @ = 6 5 3 1 3 0 3 0 + "    # 1 1 2 1 - , / / 2 7 9 A M K K J M P T xT wT zT xY nd id dk Zr Or Fr @p <r 6r -w x w u } "{)l,j.e8eD`EbI`J]L]QbNgOj[nYs[q]obqqerbo]qZoUqPvF<:23.-(&)(+2537335:<AAFFLPXUUPIGBAD::<:5035<BKVxyvy{{xtqovyqgbdZ[XUSKGA<20()(--))(.+))+(  !#59>HNRaluzppjotuzwz~|~| .9;=JORw[~ch~to~khhehfjjea^^Yekpprrurwz||~pz~~007BQ[Z]_nnqqty          9972*  %"#%*-1769<@;>>CAC@CTUTOMMPPRZZ\Zacc_YUZcr~|y}uwrmhea^YVOLHMLOJHWh      !$((+(###(!#z#x|}z usrn r w| }zpnkkhipnhfhkccfknkknfhpx$}$x.z2}.88550377.5238<BFDA=72-+)+252+&#$&-22&##(($)+-$ & $     ! " Ѐ& $',,)""'+,3.18868=@@BB@@EOQOIDBEEIJOXbehjg^^[[XNJOSSSVXclmmhcVY^`ccjecejqw|{wwtv{wvtqrwouqmqhqct\w[{WJC=JJMJMMRTQHLOT[fmjeWMG=/1,,)'$$%'/38989>4B>;994.11664631.*)"    snaXRS]lbWNK<9::4/242% ! +9?M WX R H 075 + !(-- 0&0*2->/Z-l+-/04<4/0d2_0P0I4C0?/:/9799?CA:<97252#0*/5-2+/%*!+% #! !((+/ 5 < F IK!U#]*_2_5]5\5Z2Z*S&S*X-X:b7b<f?gHiKpSndikdkX}NS\}dninnkqksquxxulqfsWvRzR}MM]flg]df_\KHIx7q/p(n&n klnsnidk nsu}  {v pqx  {zvklquxx            y`SVTNJG : ; 8 3.00'3'=IQTSNI'@*?.I*]*`.e/m/g,^.X/E*6*0',,&,/3$4!9@;99 =C EJ Q QV W T938:9;;5@0H1H8L:J1C0C,L!RW[\`!^'[,[0W3V:VDWEW8^0a$j)k.p3p0m+m'y5y=t:zJyOz[|^|N|;~8;EJQSX[`hmlg]VTJLONIILJNIJD@66|1|,'0=86.1+.;;8',)13:1..)!rhhmmefjrywpkjjfefhptuyy| x}||pwuxs^\UY___khmimus}}zssifa^WTMOPE9#<#C(<+A-A-F0H2K2H.E.@+>./5#8":=B?"B#IL"KFIGKLQSUSQQUUPNVZ]``ddg iedeegjlonovy}}~~}}~~vx ytig[ZPFLLKIDDAB573 30 ('7$;#9*, (# !& "#  !$#-+3..3??<<5#     wu yo~|tpE>>CQLB;8  ',*--21/26246477{A_CaCkFpEuJ{JzMzR\zdvnia^TJHHEEJOUUZ_a_\\^acpruupzkzip^aT9R*Wdhhhdinrwwz}|xsmkr|@wsnsssu|zrpmhfchdfmkprkhhmpusurkfZRE>6,* {yx{tvongnggidb_]_d_`[Z]XQVUXXSPQKNFGBGIF?:7+587FNNGL50+$!  !          !#(-).03027502+(($#   #&!|}} w srkksnnkhkkimknmnuupkhfcmnrr||spniih^ZZWUTWYZ\^afmkd_ayauZMP|TzUuYp\eYeUkTpRoKfOcR[O^J^F`EYFVAVAO>O>L<J;B<E>B>GCEFLHJTRE@;9;6>6@1H6C'</;)7,6'6 1, %#  #'*(,,*(%""'#"  """%(,//499<;77;>AEEHHMOTZ\YMKHKPUYr%@GJQcyaemry~tohWMJG813/.)'%  zvngb\UKMRMHHD9227AD\}\xfufm\hZdMd5c%^ _(^/_7_<^<\<R7P/M(M#P OKMOTTWZTM KMPRPMKKHCCACC@;7672422/11*%        # qohmb`[^YSVQVVNJ:655::,'+{+{$~"{{y}} yyxx o otooled_d`]ZZVSPNLNLIIKIIBDGIGDA<:?A::252.-0552}0--+}-z(s(p$u#|}if#a$^!W!PMJFC<<PWYT;79<;-'#    '*142% #('6<74--%%""    }{~vytqsqgdUU[SQLIFD=35=<2.+-(!~|ztp||ywzzw|w~zwumuaw^w\|V|\~\WRJCHC@B==@>~@yMwOrGk=k8h3j/m.p3r4t9t6t1w3w;w=|84HRTOM`ea``ejpyy|z| ()))##!028<=50=NQQV[g`iiSLGKIGGQS]gq!$$&)0:20.03...- 38DL d,i7iCj>tM}c}h{fxksktmtxsxs|vy}{vvxtsvppmmffdmnw}wwsu}   C6(%"    # ;A@EHCE;     ~xvqqogged` b g_X7--(  '*'#%(2266;;>JR^dkpw}||r|upnzpmmokjaG^/\^akڿmܿmnnppxƿ}xfafpsz}ƿտտڿڿпϿʿſſʿտ))%**     ޿Կȿ}x}{z}}sgnxxs}z} {xxpqvuvndkgifXPKPMNC9504>? : 2   # ?7(&'*&/':&<)A)R0F8ADFJS[g]kcqlmmlggccc]^bcegljhjhmqwwvÿʿпϿ˿ƿ  )36Mcft 032#!%& (* *+*&*-252445577>.H2R(W\ \\]]\]ZWNKMNRRNMIHKHFHFD>4~0z&y%p!j*f-a0a2e7Y7O:Q>GAEA><.787@4E4Q0O/H*G(B08217$:9:ٿ9ʿ:տ:Ϳ0440542/-/--4\9?FINRRSSX\_]Z_dilվq̾vǾ{ɾоӾx˾s̾pݾqv{{{#}!˾վվ~hYSXjom]Y]orѾǾվѾؾ־   4<DUZXD45?_{Կ  ޿޿"/;JYmtuw  y"y$'$''  2INij`` g ][PI: 2 +  "$')'*.,1/,13,*.;=;9..w1m/e1Y/Y,c,`1E8 9Q`jtwy|gR:0! վݾ Cп9BE9EH$H(M-M0E2Q5M5Q7M8O7V8Y:[<Y=QBYU]]bgvxvtsqqqonjiljgijllnqqxvt!x~5D~.Qqot}ylxs}yxl~}tv"'1CUx 38==,+  ,33:??NX[`bXcjhlqqlrrw~(49ADINZ]U_xuvnnzngablu}~ 48>C@O\t|}xx }{&v+x0v2x=vDoDjllyiijijljggieii ` _ b%]-[;[FX>VYU_VhXhUsU[[_]V]`_``b``bdbd]d``"_&`.ZIXNULVQUXUTSTQ^P^PcLcLhImI~DBDFDB<33785322320(052F2\-z0g.i-x+&&      =VQR`cz$&3.2#!# -3:FISdiivyxjs !#(-055"3"513;3F5M8O8K5C8F:C7782=;AU=@<F=T<P8c<f=rAxADGKNPSQLIFIKLNLXZ[[b_bbed`beeii ibdeeieebb``"b']&d.b1_0b?_:`BbGgGjNlInNnSqSsYjbi]gmdjbmeqdt]m]eZjN8I$GIAB:800-03300-.-.)-)|)p$h!k!ffchfO PJC E @@92 -( "   (*'@AFH97>4/1,""* ", -7> FFAJ P TMP \Z _ h sx|x}|us}!#!!&&&#&.(($(.20-##+)!!. 2 8:<)?=BXF`KLSUSSPLIIF?:78<=?KQSXbdjjl no&n0q(t}{}}}~5sS_lZnU{SxQ{NvA) !$!# #!!#! ##$#&(& ( ($ )+.2238:?%=/5389<9<>?6?*BADIDD'K*Q6UHVJUMVQZLUEV;Z@Z=Z4X4X.V'U'U Q QQUX`,_/[,['Z*[9[1_=]@_QZVZ[[Y][[e`c`Wb^dY`GbLdEgJgYg\ghdc_mZjX^XfVeUePeP^N^LcKcIhB^=^:r=|<<:72|+y#ff\ao!$&&&-27?AGDD G FD+F7DFFQF_DxAA72( #6Em}  &=GOLNS]~  (/>KIPfgnqsknsx{}svd]SK2&!-%~~| z|~-|5y>zCwKt\uft{propopruuu,u@rBpJrMtGuJwHwTtowkyoyuuuw|||zwzy|  |&z!u.u!t#p7r<t:u:yDuDuIteoleoat^j[jWnWsTsVyO~QYhkjhf\OOWYWTJ991434.14;1//3/*'$    '.))4.$%'% "    )) ',)/ 3368 8;@LVWTV^ry%((279KMHJMTRWYZimpufnimwanafc^Y\fh_ca\WPPHH;21''~"FW^}   $$$..;BO`my~~zutupruyw#y*z*z/w0w7r:uApIpUr\rdt_u_tfuktsyuwzzzuwy~~z~~|~~|~~z||"y$|'y.y6r>uHtVr[w^wo|rz||poy~wwrpmkhjojo ot tz~~|p|  $00==B:ABVQLAB<<0.3<?BKSPIQbx~~junrjplrojnker`h_eZcQaU[Q^V[[YZW_YbVlWo[vWyMoLiEgEqEsBtE~HHRMMROJ=>C@B@9;@;83/)%'**'',.3.{)~'t)q*t*s*n,d1e3b3[4Z3S/V,X)d$i"qv     "x%x'~$%%"$"%% %)*,/36;BGGHOWY^akmpruzz~42<KipuwskaifmmskkcUYR\ORMOAAE@EJOOZ@2/   %*2967H1' *-(,FRT\a!swa\ TZ T U ZWY mp}zwr$)r(d$^$Z$WR9!*$#+53 8 72-.0022288=BB=ABBDDADBDGyKlLqKtKxNtPxPtSvUnUgeKoGxIU_`gnqsyy{toZVUBLNV[VVPGSZQUNUbl{    "     %  49 EKT \ cffZn  ~xvvtqvv{}y&}+{.x0v+l.o5i@g@e8e"de ijqoonjiige``_]```]ZV V NNLGFDAABA:::788757:8::77323+)$$($),+++3.:285B7D7O5S5X3[5`5c3c3j2j2^+S)@(;&=)E(S)T-`(j)t(w)$$)&!!!!!  {~w|mjtyl`G j r~   / AIRxz|upmjTQGGE>8=>=68BBCB>BECEHJLOOLOTVVO'T*T,O,O4W3[9^6h;p4C[[^^rpwty~w|w~ !##!(+--35:=ABB?BFGKIADFIGKI GF#B&?3:K8q:{888:853235322..-&((+})v&     *27;A-#  #,26EAA  ~| z y uo j1[CWER>J942311*,**',,), )$"  }lbZ[SUX]_SQ?:52.28 : ?558< 85+-&&# "$ %*)) /31//,*,*)$""$$''%%$""  ! !:=FGPN?FD32#!  wt[RLGB/,.*))Gprfjk\TQG>6;;1)$g_MfsvRKFC>0+  hbTBSYrthl +7W_g{{xs nidaXPMKFKH?944-#  qii\]WMKFD<<-!  299-/*!#          vmle]VNLSQ?:1030,)  x n mnf^ iiupur__fkx  !'68@DNNVYemryw{mc^TJQQB,||yyvromm ooqrttqqmmortqvvmjjhhegge^][[XSQNJGIGNOST[][YTTSQNJJLJLIIGEBEB?@;=:6;==:;330.,1x3n,|,p)n)z'|&$""!xk ^ YUJOKUZWO<FHFF>EAHJ;1%  }xwrrnkiZKEEC@>941-//*  ',,414,*,''#1/77;7<PUYadsz}}{xqe[I?:=GKIB=?AFGKZ]_t][[VXVUID< <7(74377H3I3M3N0M+X&_!p}  $8L`mzz~&7ALKPSX[Z[Z]ZPN]dq}yuppm=.'$$ }%z#s%n,p%nkiki gg bgg*b1_2Z9XASMURSUP^FdDhDnAn<z2 ukf_Zccadiz    #%/+ %  ! "+'.3, .3600;D@ 6(6(:*5-0/)2+9!<$<,?5I.M=R@PBUBUIXGXJ\N_ObSgQiVg`kYkQnQsVuVvSzT{QVSOSNGGDB@;D?@@:=6;:35@?;:D81.118:531&,,',).+0.,.)+'+&"!""'!),&$""!"'+. &  $!!!!'&!   $"$$%')*)') * ,,.113466==@BBEJJLOQRVQRWWVWY[[YY^a`aecej m&t1t;zO|Sg{ 0DNU[l{tmb]]he[YOQOTVYQSVXQSO OT[] ^eejh l o hmlotrv{y"~#'(*,,/146474479;>AJKOPTROPROKFEHOPTWWYZ\dhhkmnpruswusuuwx|}}tw~~   "+3;ySwY~``gglmtroolmlmljh ee^AYF[MYN[SYXXbTuSxOnGZIaJfOxVXTOSQOLIGBDGLQQVXYX [[e%h8g;^C^H^M]O]VY\XfQjLuJuGEDDDDEGD==;:53.'',)$'.3,+'$""!        .038FLKS[Z`gdjnqoss}{~~wwswwrpnrpsppqwFwAmonmkmhfc_ZYPROHE><<96211/,**,/-*-,('" #%" ""     #'1>HHMKJOMOTUR\Z\WPMC>* ,9HJPRYY__cmpsszxzzfcps}}    ,1688?6:015;=@:BDIE?=53.6:=GLL=:GDX X LSNY^ c j hcbho|yqec]TT X"S'Q'Xb%^#c'e%h%j*c2b/l,o(y-t/o4q4v7j9m9l<c;q<w;4126;<<@~@rUeYm\lZq^r\w^va{^ZY\_adcdhhkimnruuwz||xwpnuw}|wwurpppmifhknpruusrrnkkhfcdhf_ZYZYPPOMKK@CKHJ H F E>E @66422122/1'%#%-1#/&/-,0'/#*"%"(#0(7(>%:#7"9 5"> A:4/*   #/5:?FHXWSC NF P SSMSMDRSSSXX]f_bnlagnqsllZSFD:970:CA:/*:I\S_bkvz{}snpqu]bbNRWUCWZ\gkusz}~}{yyqvvnsqniie`]][ZUXS[ZXSSUSNIF DB ? BAB?<820.0&++)(&&$!!$#$(-.322353530--+&#              %$"3GGC@>8/19EOTRTOQLT^cehkmoojk`[ajcoporpofce`ffprkppttu|z|mfhea[RY`efkma\MM|LRV`chhku||~zyt~r||zywpmmjfcccfkrw|y~~|~|wrrtttrmmkmm h mmjhh$ef&e-a.c2f2h?hFeDcGaV`Xa]ag^l\n\sYtWvW[YWVRRQOOJHGvGEEGEB>~=i>e>_=I;F9F8=9N4?1A/+'%"% $*,)/./3'+$#"# |mj\L@9;834>E[u~~rokhfj~|fw !.8B"K]n"g"[%U%G 8%.,5,A/A/F/U,`.d,g.n*n,{*)~*),*'%%"  " #"(-,41(22-16796147791%,(%,(1144,*# (  #6;6941*'#"  #1/9;}7{CxAuEsCv;v4u2u6s7q6{ xu#s%p2n/n6l7n>k<i6g6i;gAfFf6b9b@]<Z@X>X4U7P/R#M*I(C> : :7570--(%!!~xxqollj VK IB= ? < = <:: . ( ~wuyuttkkhecVRRMMEB>=B431)'" }zxgd]URSM><94&%!mTGB=830..0!   vyvoh^TEEBDB?Bu@p@k=h?d8a6Y8R5W5\0^.W.O)H+C.J1K3H6F6C6F0H,C)4$1/*/" }ld[UF=FIZXPQ[q{vvwof`cVaN\GO2J.C&F.M5MDRLRSTVT[W_^vn|} '2;CMYdks!015:0:B;O;S?`?o;:630!    ~mjJDB@=850! )0IQTX]Y]`lyxwidwcddaaddaddaZTKF@>;>;><2*(%'"        !!##%*4::4902MD>?HKKRRX]\XZz}{z}}  )//)*'    ~~}~x{uxxxuyqxqykvfxd}d}b}a}]vbs_x_yZ~XyXtUvSyUsPyMxKtMqHoHo<q:s>t<s7o:j9t(v&x#s%s*o+j/g-d0`/_+_*`*`([%_%_]_b__`ebdb` dejnoqt qojdd_`gjieib__]ZXXVUSQPSPNLNKIKNQLII=???=<=<877553..++($###$#!~{|{{w{ yw{wtootrqomlmeec[YSSQQNN L L JJGEE@??=:!:88;:863310,+.++)!'2)8&:"A&G+Q,`:eEjGj=],V&Z&l=nBtNsOlQnXt`~qt[vXsTtQvQv~ */455?0(% {he^TSNJB:5.++68830+$)03+)"   ~~}{xssstsqqsxxvxvtqoonttnnqossqooggijgddngglnjlgi}bb|Zz[xbzbx[w[uds`r`n_n]rZsXrZnXnSkUiViXhZf_f`fda_a`^e^e\`ZbWeWeRdRdU_U_M[JZJZFbFbA`CXCXA]AZ<[7V;P9P<L<L;K<I<N2P,U'Q"QV"V%X%Z%Z,](]%X [ i'j `__b`][SN F::7520.-)-22+0.237755200!(!&)-232-&!#!$))+0332($$#!.37870-.!!$$#!!#!#!#$  {tnolnje_]_]bZV.y*)'%s%b$Z'U1`.yV䀿VVZ`dgjjlsttg]ZZSLLPPQ[~eyjtlklfieiao`xWtQxMMQV^a^chmmjppoke^WMG;GGBC~=x9dMiOb>SCN;K9G6?8=9A=?9=;:9:8:67$$%%'$$'"$"$  "$')'$   "|wrmmkjfcW M JHB@;=94.*,  $ %$"$ ""         uppqqsplgkgdd_Za_]ZZXWXRHHHD??<7457>INPNRNPSWXZ_]gkn}lnuz}}” }}zzxs}kzf_\UMD94(&({vzslknfdda]]Z\XUNRPRSURSUXWUUXZWZXZ]\bafbgdinlnqpkusid_\__\_bid_abffZXWWb\Za_XUPSSRMNMHDA:<:/ 445 9 >>?<9475:??CKPSSNHFFAF? ?< 9#<%:%9 5 4&5#20/%/+5*:(:%?(F&A(>-?/F0A4A0>5>9:5545424/00--2-?2:9<?>A?AC?CCDCIIHCHAIAH?H>D>?<?9H9K5\?]DaDaFaadNkXkanZq_vau_kPlPsUxWsRuNuIlDiIa<b9k:k9i7b5]7\4d0b(a*a-_/]/]+Z+]&\%W*W&Z#Z U%S*R&R S WUSRRNM M#F&C&D#FDA&>(<(<%:#>CC5#4#9752 00/+- + %!  (+&#!    #+*00/0&%%##!#(/222-!   !#!&99720420400/020+&&%!    %(40*(24477499520-+(%(##(%*+# #+*04~/~5|5t4t+q(y!{~| ywvtq mj gej&h-g0e2h0l2m0q5l?lFjIlPG_+fl{ zxqllnpppk"i,b8aE\L\XWVSJREUIUIX@ZBSDSJKENBM;S;R:R3W8U8W:W;X3X+]f_!]&X'Z)U,W0S0P+U'S&U$S!Z"N&K)F,C.<0>0<,:)A&D!KI?:&4$479<:+"("&$!!%*0+&%&  !', 0, &    ( * * -4 5 2 4?K N II NKHK K D D K K M F C C F M PRWZ]_ Z_ b ] _ b bi l k l l g g k i f f b a b ] \ Z Z X R S P P M K I I C A ? 9 7 5 4 - + - + * & * ( * ( % % #       !              !                           # % % & ! # & * * 0 - 0 4 5 2 - / * ( &            } | z n i ^ W M A A F R Z J < @ q> eC c> `; Q< Q; L9 O7 G2 =* 1# +              } |   }   | } | } z s p r p m k n p r p u z } x n r r r r m m f h f k m} i{ f~ cx _v cs ^t Wx Rt Pt Ts Ts Oq On Yi Te Pi Ag Ae Fb J_ E_ M` Kb OX OU KU JZ H[ EX HU FS CU >S ;Q >Q AL @Q EQ KG CB AD @G >G ;? @= @? 1A -A ,= 2< ;8 @7 A2 @2 >2 <) 6+ 20 42 1. -( /) *# 1& 1( 4$ 4 1$ ,$ ( / - ( * / * , ' ( ( , * , / 1 / 1 - , * * 2 2 6 6 ; @ A C Km Z\ d[ dY f8 |1 )       $ , , }* |. s1 r4 r6 u9 u> k1 n, p u v u l a ] \ D 4 2 / #           | x s p n k d T M J O U ^ \ ^ d d ^ Y M K H J E C A @ < ; 9 < 9 4 - - ( % " "#   # ! # & % ( * / 5 2 C D K K S X U S W X \ Z ] g l l p k _ ] ] \ _ d n v   v v z x {        " % / 1 3 6 ; ; @ B @ > @ H L Q T T [ ^ ` a e e f e e f e f h j k o r u ~ ~ x q l l n l e Z Z P G F D A < . #                y w y |  u ` H 4 8 @ G H L Q M O ^ \ \ Y [ [ W T T Q M E > = > ; 9 8 8 6 1 , .             ݀  } x x u q n g d b \ W R K D > I 7 4 # ! #                                                 ~  ~ | | z z z y w w !t #w (t *p /o /m 0k -h 5j 5j 9h <f 9f <f 9e 7f 7f 5e 2a 2c 5a :\ 7` 4` 2\ 4^ 2[ /W -R /V *^ %[ #Y O M Q W [ \ c !c ` f c ` \ ^ c c k k m m j k m p r t u u r t t u y z z ~ |    | z u w r r t r p o j j f a \ \ ^ ` e f h j m o k m p t m m t u w t p r p r t r p p k j k j a e e a ` a ` a a e e f c a f yf rj vj tj qf oj gk `m Yo Vu St Tu Xy Yz ]t `u cp cm eo hw h| ^ ] Y Y ^ ^ [ [ [ X X V I J = ? = 3 6 5 $      " !             d Y T R U \ _ _ \ ^ۀ W T M M T W C ; y y |         ~ ~  ~ | y y t r t p o j f f h h e [ Y H G 9 9 9 6 4 . 8 1 , j% q, / 1 * j, j, n/ s/ j3 n6 n3 e4 e1 b/ ]1 ]3 Z8 Z9 X9 V= U6 U8 X4 V/ V. [) P, P, U/ S. P. N1 N1 I6 G8 F8 ?4 ?/ D) D' L$ P I I N" P U X X ? : : 7 5 2 . 3 3 - - 2 0 2 ) ( # $ # & $ ! #                      }   { z x _ Z \ Z X X R R M M I K D C D A ? < 9 4 2 0 / / + & * 0 %  g J J J I = G G  xpmdUOYZ^_dcfiswdcd_YPMMA1   !-<?SXX[b`bbotxvs{qg_[XUXZ__][ZXSSPPSPNKLNSXQPNPNF?==<0$ 7&U!T#\$_(_)c+h)h)k+r-s0s0n-f+d+_&\(W+^2r3320--.-+)-.023535:BB=3?FFLLQPLFBDBGDFBB ? =?:?ADAA??<<:!3.$0&5"3&3'7$8$365?7B3B3E8D8B5?8?<DASFVF[IbKbGVKXNYQYVTUQVNZL_O܀bVg]bT`O[JZJXDZ@bIlctmxt}|"1#7<AEFKORRUY2^K_NaZidklmskmnpnmrppmihkffhiffddcca_dhikmmiikhfinmnrn_a_YRFCC@76# vqqgUK?<2(!($&)+-03:=?DLNVZ_]VPQVQQLKNQPKNNK888݀853.z+z-&{+-++)+-+()(&|r}r{|}~}z{wzw{wxu{ovkvjshufq[k[gYf\fYd\a[_Y_WWVUQWMULRHNGKCK>D;C8F6D3I3N3P/U.U'b$a"a$d%d'f)g*i1i/i1p9d;b=d;i1u,%$  %)**./133466846963,**..1' ),*$,8)>)E.M1Q4V6\6h8m=r@r@kBfChBrBu@=9;8469>>43.)*..***..13//$! & ?LK? : :70-+(())& (# !!# ($$(-.-0.0758AA:2-05=BDBFGIILLNUV_`]ZVVXX[`dbb_ZVVLNVnqtx}vsvttxvtojnnqstqsttvxy}sxlsiS`I`A]*[ b`_`ddbZVUXUU[[[][_]XUSUSVVXZNIGFKKLNPQQSUVQPQLLPLFGKNKDIGAGKIKNSSPLGyFwBvAl=]?SDDLDNENDS?X6Z6X=V6V3X0U3X0Z5[0[e~}|}} }     xn*n6m;nOs_xhxmuxxuwuspmfd_\\ZUTPMH>>@<6("xifcdhhdd_a^WY\\WYY T UZZWWTPTRJHHFHFFJ KJFFCFEEHHJF>962/',# # "#    %"#%''21/,- 2472647/126467;>>AAA>@AA><>@CC@@@<;@<;7,'"#%*7CFHMUWWY\^\YZ_^_}^}a{avcshsinfjhdddai^iZlUxRxOyKxJyFxExHnJlJoKlJlMdK[ZNZK^KdNdSiUkUn[nVmUnSsZxVx[zXzU|V}UXUQKGGA7|wwy uy||~|~!!""&'$&''++58:8:~:|=~=w@r@mDuGuGzDzB|D~E~EDGINQOOQSX~^zjpohy^{YVEB61,)"      ݀ !+//79<><><7779:9<>?C?:77<<?:90+(%#%#%%}&(+}(&x%{%u(u(v*v-s-q*s*n-k/i0d/_/X-_/f*k+d(p%s&l+S-M0H97?+DF FIIR_lqpqqbvN6"ۀ )u8^@OBO@TBWHRLFMAQ>W;T4V*^#^ \YWWVTO'M-O-R'Q2M7L6HACE@KQ RTTVY \`e`^^Y\`aefkh``^\[YY\[YWVTVRTRQOMJEB>63.'{'x nd UPG$7%-.68=;=BCGEOTVRTVVWVY[`cjuuowkwctcw\zT|J@61qb__ZSMKA>-%  #):B~FK|`cl@o?s@v?x;t8v6v3y.} ""(*-2677;KW\afhhpw  | r n m h h$ d+ Z8 P= HB FE CS <^ /m t y |       ~ } x v x x t q s q j l i ` g l n o t v x x } } { { v l i e ` ] [ S U ] ] S D G N P N G D F D D D A B D B B! ?+ B4 IF SC SC Q? P9 P7 PC VH UI VH [D ]C [A ]> bA bD dD `F _N ]N ZK [K VI SS U] Pb Kk Bl =n =n Aq <q :u 8q 3p 8n 7n :l 8n -k )l $q z          ~ u y t ^* W= E> H; M= O@ O@ HC CH =J =Q 4Q /T 1Y .a /e .f *m ,r ,u 'u r u z          # $ #  # + 3 3 0 0 3 8 7 5 3 8 8 = ? ? N V V Z X }_ {] zU zU }P zP vN vN iP dU XX W] Mi >i 2l /n (v x } { v v l !l &d &] *V %Q #+ & !# & % / 2 4 2 7 : 7 9 5 9 < A H K N P P S W Z ] _ d s  w o j f e ` Y W Q O H J M Q M O M L H H E @ @ C B > 9 6 1 .            " , , * ) * 6 E E @ = C C G{ Ju Jq Hp Lk Og R_ Ya \d `i \n T M O Rz \x `s ep ka m\ wW uR tN yM yK |F ~D z? |5 2 + ( #    | | v r q r r m l m o r y | y q e b e b X V L &E &? (6 <3 =) D& B$ D! B A 8 -&&   & 5 ; @ E S X [ b l q r t u u~  y o k h c c ` ^ ` ^ T W T Q M G G H C @ > @ > C @ C @ > = = 9 ; 6 9 6 6 3 8 4 4 8 6 6 4 1 . / / 1 4 3 6 8 9 9 8 9 8 ; 9 9 8 8 6 4 6 4# ,+ '/ "2 0 > C D C C F I I I R S S \ _ i l k l p v { z z x q x z z } { z u s s x z x s p g _ Z R N M H H D ? < / ( ! # !        # ( - 2 : H U W W \ g n u v { u u q i g a b a Z X \ \ a i i g i k k l k g f n$ q* n, i3 g4 ]8 ]; WB UC PH NH ML KM HM CM AR ?R >V :Y <` 7a 0h -p !z ~       $ - 2 ? F ~I {K tP rS lV mV qZ o_ qd mg he mg ro tx e~ b [ Y X T J I @ @ ? 怞 .038:<888:7 8877&5'8+2.335,7,55785B2J3L2L0O-Y.]-^$]`VSNL I ID=63.$$$!   $(-.〲!&).03533:=DGIKKUXZ_it{~~}xtvttvvtsqqnnnoqljj n oojj"d,V;SAKHIMDP:K2C+C+;.6-4)4$2/%##+.20.053533025025722)toq$l(o-o0n2j3d2`.b+_+]+X)U+S&Q!K!G&F(?&<!:?0&     |pj`YY!\#V!LG!E!CCB@>!>!=;!;984.)) . $!# &&&$&).3AFGIIKKDDA A'=.?.?3A6BBAB?@?4=9:;:@=J:W7c8h8o5r7~53537?A?=?==GKLPUVbglqtvxy{|rmfeTMORVWRTY`jkmw~#c$e-g-h.l.m0m5r5v3w5y3|535<<88855330200-(## !  #// 49><92020-&  ogc#cހ    ##(&(+-)+.08:=DNQUSVZ]]`dbegjnt}     " ' % ( , 2 > O O E @ FKP T Y \ ^ ^ a u }   $+06:;;?@?BDOVbbeehmrwy|}}usswzuwspknrprpmmihdcdadkppa^^Z\YWYWURRURZWTRPRRPM MMRROPKJJJHHFJ#KOPO+J5F?CC>D>F@H<M;M<N;N;P<P>U@X>\<\<]>]Ab@f@n;q;v4z/v,v(q(p,n,k*l*k(i'k%l'l'p'v"}{"v#v%u#s"n#g"gfgknuxvzz}}     xlZSNFC?7-&!  ~y w#r#q*m,j/g/`4^9X7V@VHSMSMVOVPTRSZOhJkDm=n?nDpBs?r3p.nkikpnpursswzxzzwxz|}}||phZROOJFHHFHCCAA<<9664,'#  {yxvqqooolld[][XQQFDB833023502-&     ""''.@MQO==HHW^[cfcfjkpotyyru     $''**.,.1448;;@BBECCEGLLMOMQQRQRQOQTW\\\^ceackm ppp$t2y=|<~KL]blsnntt}vysxqx{ln]USSjlvyl`ULGNVXSNPV[b`elnsoyx %-29>EF<<4*-9AJAFHTU^_hnn}  &86'5;D@BS^STcott|    %&##*90<> 5  ! (&2A R P baSUb_UW_qls}!{!##).0}+..)&+.02<=?<??GIIGB?D F IILKPQQN LNP S SQSQ.U/V8Z9U@XJb^g^gRb6`beeeegjln{nqopxNvHyD}9y0s%sx{!}~%(%{lnqq~ltljicbbVXSIU?]=X_]]b`begebb"d,iIqVsgvlxytx{}r^}~   165$$'Bblrc^YT[h[O8 5LT $ "((-(%    .88^bt #4CIPa\fg */''.*.8=9>>BRaoh~kz~~~toy|~tjutfWHGcyw~|rrkz|uwzu|zttmo`LCGE=9;634;\\Rhfmrj[VJJ@@83,,)%= @  36 " "#'//*,-2966779<A@CvJlJfHUKNJIHCC(;4/-,/ 7 F HHFHJJK K0OHPRRZU_TbWdU\Y]ZXaWcZhKk+p%ps sihh^Y_ifhmsperOuNuTrjwnnzx|!}+>7yeYTT}G}@OLE.,5LXhlSGGS[h Z\:44 *>?Wfqzqv4>V"@Vo pt|zwzujjaO8=OVTG^e^H8HTh ym"\$c!mz PZn {vn!v)y,o,g"L"D&=&0)++++'),)+1=@INSSTIGNfOmQm]=YYToLwJOX[XY`elqv{y{`848>{`yMO`{tjjmm$h5b+[<YV`egntsl``V]oq[B5ukoy2KQD7VJ@6C=EVrreh|ojcaj|o`a\TGLG=49$*JB9MW^o    != S _o{02477:4+/v+j-e4j:N<=:>>?>?)A.DKKFH KKMKR SWW\Z]\-R]NvRSayf7kquzsdXUSHKUXXzXtXe]mgpi~uvppyx.:(8BNU[`[qv{v~[NPIBD==SSK DLXU%g*}*%'.E/LMMHJxE_B:>+6!43./<,#)),313>CEH JOY0\N[qWWVWW1WP[iaexhshe|fruyyUzT1ywwyyz|e]3#zwrrwwyzzz(Vo~~O})DG+)mA ; "   zdmfC<*'A/    }ye8(&7&`Cuqwkyl|xv  /Tk e J   fUDS;^]@68  % J   | ma d]I? n     4 R E    # / M ^ s       9 n$ $ ) 8. T2 J5 R7 m? D F K K N |P aX 'U %S V X [ ] [ V S X _ b d ` b f[ <V U V ] /b 0j Ss >x K{ >} -x s s Yt q t v y y Ft %t l e j l i g d [ V ] b b `] 6Z 9V )S /S $U Z ,_ *` 6b e j l n #o Nt ?x x { y q q v x { } C} y .{ | N   2 d i  o @ v M - 0 # > < *~ (} U{ M{ y px s o o q Dl qo Dn n l i d [ Z [ S [ b d g g Yi $v y t } ~ i R "  6 , ; } } v @y y x } } v } `y Py D{ Fy 8o _l yd e d d i e bj `t s q n n l i d i i d ` ] ] (_ .] A] o_ yb e] [ ] U P $P SK jF mA ^: w7 m0 y- o2 X8 ^= JA LB I K N Q S Q G B = 8 8 ? I N S V TV U U tV dU !P )I _F j? 8 0 . ) $ # M z T! O! ( & $   s t    ~_3 !      h k$ G) 5 < < S: 8 - # 2 l d 4  9Fvf\A   c V IS?    ( - $ H$ h x d! i J# *!      t : 3   &)Kq{`   9)C> $8'u]?MfqzF4+ Tj8~,y wutmmja[WTQQMLEGLG'B0@BEgJHGHHMYQOMMGB;631.,*'" regXYBDL1:6, mR9"]XXN) |w}}zuqqlpil-i-da$begtigffZbXdUWWXZ_XNMKIKIIAH2K4UW*MJFKHxHKNWX\XWSRP!MM'I"F1A1>'?>20/"-!07:9U9H/-*6(_*r*##($%$! ! ##(%\%;+*+++&L%L#b#F!0-! 87= X d U FLVUelv "7TfrfrmH'% ;E7>  "$6OXeOXQODV]]ly~w|y42>ISWpz;=6>=G^cj0-&8-8GyBw3t-rom$t.t?q3m:l5l-j-`B`V]`[]VKTQTIQKSSQbNiN{JGEEBD=;:8585311..+.,,))&$       #"#'2CC>%21;EHE9%( ,/#%76<>EPOds|zwi_dc\UdnnwuYZcWPC<>CWcis}zurppnkmpnkkdfac_^_^\\ZYTRTWTRPRPOPROPOTUMEJEFTHZJ\HaOdHhFkEhEmHxHJKHFEECE@;94/p*\(\'h'Z#OHOk "'-266*#d^ k W KK@7*KH@Mdsxkx $%/9@CCCA@9,'#$", ' +8NJ"b"h l`]VV[T;3VvwjNm|y{#-/97* #:7*%!/*!   +27>CH4~5:~?{Ax<x4{&}{mG~{"{6tXlt]][]XZX[UVU__ ][[Z!X[[ XUU[F]I[N[_ZbUXU>P>NDNRKXGXB]?fB<=7<&8&7+7<3D5M3I0P375(2#+*$ $#(2(5(0&2&?+M+R(W(d$\(N$D!H$2!!%%!    - 7 7 < C>FPRII] kg]\44M_bfbbZ]UUPFKSXUDC>95/+       *55+*!( #    qvrhb^bLB5&+')8Dttqo]S[V]`hqq^eo|w~&+!&    #(450??RXibM<2*ve`jjqq|{qgXQ=,)106==BD==^l~vq`JB:31DGNXJ33:,3?DG?108..)&&"~3|1|!~"|~~|ytpmmhca`^`f,yNyTz]zq~~yywwz|ywutrrwwtwz~ ~|zyyy||#|&~!~07-% &%*CHDHM]~\|U~P~9y*uttutm okjm7w\uqr}p}pptpu]m<h a0^?`R\_`q\d[d^K\A^7\2fkpoomokkotruyy~wqu]thu{trrht[rImDpTf5h@hBc+`$YTROMLHEECC@EG!G'O:J5H?OwO~RQTOQOVVTQOLE9; @(BCBH>K@S=S=I><>+9 8=JLOMQMJLtJ^GTGJEDE6C"CB@&>;9988643448$33.., .,),6*.,!*,)% $$ %D"G"X"[ e$w)|*)'~"$ "wYXNDGBBV^glom[O@8?Ocjtvq qc ] L1!++&!6DQvhT;+)6'     '.5@)  .L[h $$ *3X3\/M/A.9,H.X*b,p*q*x)u)d,W*I,5%"%-5DNWC5(  jg`"!,0.;B.&&+.31OX1=65;b`jrw|t|~l]^XIDJ=616@TYL;5ESX^llohcwy`mge``ghl|twrvy~ %%45*-AC0w~x{v|zxxzuppnnliigdfbba\XWSSPPU\XXSRNPPSXWUWZZ]_ffdbaa\ZXXbddgf_UXUURPNNIKHDA?<<74420-+&(#  #%(-4>AAIMNN KK I H?>>?? C DM0I2K9N7N0S7W+X0Z2]/d/d*a#b i!k ln qzs x4p%n(g*f4a0Z4W<M?KRMUKZSfWxPkNkMfIbFiHpFzCsCn?l5q-++&!!!&(/k5bC\HFD5A<DFCKAICD???:A(? <:#<*:0::74497M/7*P0d-g+a(_(Z(W&S+9-2(4&<&>&5+*(#!!#     %-<?I!M#S#WHAilksp sqndWP KF5 !   0FA?>  (-+  !(*>R\RI>5%      %**/4:AFDISS\asRKNMCC?<>:AADF:ACFIN\_iga]XPURUX\]g{kd_X~]gfiisq~l~g{bwbr]hXea`d[uVxV{]TTVSSQQOQSQVQSQSOQOOJGGLNLIJED@DD@B?@@=:;:866:?=::866::BINL@@ED@??==55110,+)'&$&,..,!'366631,+)'$!"         $ ) )    "  *$'.14@H8464*1;;48>CLRWGHOQO>1)%/169=CHO`[[LB>/)),9GHEGMTWcowtofY[OY[cormu   $$-.#((&0<8:8A?GVXSSA<$    !&<<FBFKGPSD7..2&#02 .#(.-.2()0.388==GGLNX`[GD:PQVXU[eVQSPV]j}~qt{sqt`XX[}X}[dqx{~}d}ex[w`wbz`xezgzjxqwouqsosyr}zsvy{|xrppxzpns}xx'z*|,}(|%} ('(#('(,"(*'"#%#   % #,1'6<EC*%EFMF<><9KJ<7( (<JJC@/(*67OHFJRUUTUKRJFC;461'#%;@FYRK@"7;CFKW^^YUPJ>@JJ>%7@MUYT^\dipmica d A; 9, Y f k miskwxppxnh\"J!C!A&K^iu!z++,,w0n08::w3h3a:n;d=h=n?r@pBzGwNQ}SwV}XuYnYY]YbOg<g7l6jEhJjMjPgTe\bcbh`i]x]|]^^|`ccubrgahahhmagngshwqsqmw\vTrTvOwOyJ|6|((%(1~@~H|RRW|W~_Z\~h^chnn^\kmpz|suux   !!),+&&"'$" $+ '    # !!&%&%&&"%"#+ +#1!6#;(:/!2'D$DIM RRSSUUX_b_ailpqlli n lfqs"p$g6g;l6l:dEgIfQkOlQlencn[qYqTuTuXs^seuhv]vg}h{m}yqqlmellrvtojbTLJS[TX]brr{~{qyv{|   !!(+(-- !*/572(-0<:>F>+/57:PU\dzznUUMKC<<C7:?DHdx{qs}u{{} |whVG@=4'$ "$)""%.1@COT^fk c h k j p o peu z ~ z|zzzo###&%#&%%((&!|m ^#h%j%t&u(e2j5t5~7z<<::99<>>AAAA?AA::y9w7m4h5e9e/`-W2R0O4R7R7M9O7G9E>EC=?CAGCEDGIVC@D>HEKHM=R>P=P9P3N.M/M'M$N)P$PM PPSRNPRRNKIIIKWXX\\X\__aa]\_bfd_\aaddb fggl i"ff$d%a.d*f*i3kEiLgYg\gmg|i~kwsxxzsunapOu@s9s1u/v;v1{6{>>CGWjomp~zukmohec`^\TJBBT^OEJC>@966131.,*)'$ $   qkqz{  $%/'48;;>9=@E>89B8/,$,.11@C6/966,"%*$   $,19>;BEMOTQRQ\^`kpjou~uv $&)-=INU[]_biejng`djgn} %#*112299AAEMMY_cffxrux|")0?Q$+)"+0:@EGJLG860:636ee`meSOjvozzxxsqqppnuuqkggdbbglggqftfa_]\]\ZWRSPNIHDoFgN^PTN[KYIbDgCmAjCbCX?Y?`<^:N9O7V<e<g5Y(Q&=*O+G+@(@ .#.)00'"  !#&(&#!!    xrurpphfcc__c__Y\OKHH@%%# "    {nKLG=G+()   قoa\^fejopwzzupnlb]ZMIIFDADHMXX\_ZZ]]WPMHHPSSKA<*! &+//4&5+5.0-/3(0(8#7..)$ &!( 338 :? D<5--$!&##$3BIBFDIGKLNVb]Z]ZVX`]_eg [ VSPF#I72:<>:A2C+C)I.M-R)WZ_bggkpqsvz{{   *,,/18868;@B@;61.*    t pj c Y WYTWORLMLB>@=;@GLMMR[cfhjt1؂.,))*,,*$"          ")/*/3*'*. "       ,/,*,11ӂ(-0>APbgqu,*11+R,R,Q3h5h=t?u@t;\=\DrErDjEjIyOSQSTXYY^`^]``^[[]]^`^^cceeqqhjlljccgmmjhlmomqqmqotyy&{&|!|{y{{{yyvvtqho^f]a^ahjottuw~ .L|P~XwPy[vPrLrP~nlvvb[odVQG:-.&  ~y{uqplf^\XGTCN4I,G%?=?;;??;:;;86;;:8;;=@BEGILTqSlTiTkXdX_[a]_]bb]bW^S]M]?[:]7]0^0b+c(c!g hlmorvww{y{|~~~{wvoqommghghhbYXQOQNJ IG GD @8*1-17,4+9):'/'0'4$-"(!&"# !" {te`jbTD)'5Eejq{~Ԃ"%(- /46!67>#A.H:H]C_@e<e;i<l@s@~<7y4x2q1s267;77<9;9746/,-9/>,>,@,F,Y*U(Y'u*'%k%H'H'>(<((*%(,*((*,--%# " ~xtjbZUPF.!  !#)#?(L&X+m.2022333200+-+-++(+$!)++++)+.03<553<B??<:8:==???88<=BABABFDA=DB=:878<F GFGI G!I&P2Q>UHUMXUbb߂omffkkf`kr ';Odm),+&!!,00++.11!utwwypefWYM;>#66 46861/*/63/3134/1/13348;;>;99;@E}LtJsLgOeMeQgQjVj\q\satcva{fyf~kjp݂  !!%(#(/SUMIFCFWZabkil i ip{ }lifggllppqux} "$!!$$&"     "$* ) 1 3= = B@EHGMRVV`hooruzzunmkfaZWYRRUWUUP KMJCA>>>CC>;1/,((*-,-/-&*)(($+<=GNX]e                  '%"*#,*/AHKJCFKMJMPWcfippsuw}xx}~}{}{ytog_dglnyxuvpla{h~f^~W{P{OPZ\\aYWYURMPHJHFECA<;@@1 ""#-12477979;<@~>~@xAv>qAnAd6[4Z,S%S"F?8))27520.{)v(l(q&s!neb`]ZQ ?857!:$8(8+<0A.G2I0P5Q5XI_L`LeLgKeIgPlQsjttxvsieggjotyxttvtqljndZQNA8&#}}~ytokha{`{WvMjQ`MUMA@7406+;(9=;3 13EMOGQRQLEu6a,Y$OQHCBCEHGHLWcot(:?BGLQUetqnjggjqsx $.13./)% $*,*,.34EHLR^fpor|   !0::52+- !  #** *%"#%(*%(*(*-1@FEFE<>r;^<Y/=19#'%%%"*(%%* -/-*,-479CHJJMKPPRURKRYYRO}OxKxEpHsMpZsZv^zd}hkkmprz}{sznsdmas_hH^A\5\/U&PMMKK<6621447><;;74|4y6y;|>CFJPRWWYU{WvTqPoPjOhOgPeMbO`P`O[FNC8>'<> EFJ U"\,^1f;pOjbb`f]gZdZaV_SWKKF><+8-7232758:7<7A5?5D0:.:-?.C0H0K.I+C&A#:#9&9#29< :<? ::>52& ~Q=0uςvx{z !5KF&!# (2AGSelt_|TRYVYTLJQJ@B98*" $.138HM`ehmt()&)37825AX q "''*,/(//14.;,2*6,F)E,W)R'P%Z'p"n"w"daWUKJPOKEC> 6 ,     #"-7CHF44FPRO\m        pf@7>>HH>//,'(129CMU961/,,}vvsiba]]\ZXUURRRUX]db_bdbbgkpv~{~zspykkyktitglfjd_bXbQ_V]UaIbFf8flpu˂,|2z>x;sHiOaZ_WRaKcHhHaF^H_K_UWYYdKpCx4(Cς#LR`` ffkjooz !)57?GF5&~zwtfa\aeyzzojja \RH#E&@+=(@(C҂uTJ<2' 6TZ     bb`f]gZdZaV_SWKKF><+8-7232758:7<7A5?5D0:.:-?.C0H0K.I+C&A#:#9&9#29< :<? ::>52& ~Q=0GӂB93//, % $',. 3669;@;8 / ) %*,//,     "%)/36=>CGHG u }  x zs zq xu xs us wl wn ns f} _} ^ ^ W U U R R ^ a _ d d m p uՂ  *-<>>669>@@EHKJRPUWZ_^_aYY_dhuwu|usuxz}}z|z|zwzxssmnmihhda_aZRRMKECEACA97142 ׂ    -05<KRPSfiqx}{usspifZHA:42--!   wwr|<؂;662(%}y}~vnjijnig``b`_[][_ddggjssvyyy{}{{xyvxvv}}}~~~  "%16;@<<+1ق(1!6/*,'. 13968=EOV`ckorpmj`\^^RB94361 / , %$%*)/!4(../.3+1IXӂ?W:X1S$R!SZ\__bii!n$s&v+x}    }z$x"sla_WXUSPPKIHA?:5202//-&(#004!?!K+N1M;S?S?PBN@UDUJWIXԂ~|~||ywtwvrwtt~qo~mutrymwyyz~wwwy{~|q݂gND;0"!    083))..168;ELNQTXmrvq ݂                     ނwwqmljgbYVQNOQQSTVTV[]`ceoy~~~wuuwuuppttoprroouz~x}}zzxx#߃%*7CFHMUWWY\^\YZ_^_}^}a{avcshsinfjhdddai^iZlUxRxOyKxJyFxExHnJlJoKlJlMdK[ZNZK^KdNdSiUkUn[nVmUnSsZxVx[zXzU|V}UXUQKGGA7|wwy uy||~|~!!""&'$&''++58:8:~:|=~=w@r@mDuGuGzDzB|D~E~EDGINQOOQSbb]YXESOQOLII L JG D?;:66#5$5)6+6050.80<0?5F8Q:SDQDS?X6Z6X=V6V3X0U3X0Z5[0[e~}xsrrpmi_OKJE@;;94*#SރX~^zjpohy^{YVEB61,)"        ! # & -2/2"7":? NSW_b"a'b/d3a8b;_@aGdLgLnRuWv[{\f}hzfxfpppwkyg|gkluuvvx} &$&((+-5778:<=ADBIINLPUVX[]_]__`bgjnqxxvsvttxvtojnnqstqsttvxy}sxlsiS`I`A]*[ b`_`ddbZVUXUU[[[][_]XUSUSVVXZNIGFKKLNPQQSUVQPQLLPLFGKNKDIGAGKIKNSSPLGyFwBvAl=]?SDDLDNENDSDQ:S8Q5F0?0<.850606+5)5$6#6:;?DG JL I ILOQOSEXY]bbS݃ !+//79<><><7779:9<>?C?:77<<?AA?AFHFIRX\_fnnnlnkqquvvvqqnlnk}lzlviqkpvnvg{ZWPIA>::#(+--/++&&*-*->M]di $$  %)**./133466846963,**..1' ),*$,8)>)E.M1Q4V6\6h8m=r@r@kBfChBrBu@=9;8469>>43.)*..***..13//$! & ?LK? : :70-+(())& (# !!# ($$(-.-0.0758AA:2-05=BDBFGIILLNUV_`]ZVVXX[`dbb_ZVVLNVnqtx}xxqnjgb`__]_][XVUPLNIIBDA=<:8775-+((&$& }xvvuulkgg|kypwppxfzf}hf{\v[uWnRgLdLaG_@b;a8d3b/a'b"_WSN? :7"2"/2-& # !   ?݃:90+(%#%#%%}&(+}(&x%{%u(u(v*v-s-q*s*n-k/i0d/_/X-_/f*k+d(p%s&l+S-M0H97?+DF FIIR_glnqv{{{  ::>AIPW{Zvgvnkpiqlvlzk}nlnqqvvvuqqknlnnnf_\XRIFHFA?AA?6D݃6<87608+6*6&---9:>CKMS UXZ\\d&f)i0k8p8q8u8x8853.z+z-&{+-++)+-+()(&|r}r{|}~}z{wzw{wxu{ovkvjshufq[k[gYf\fYd\a[_Y_WWVUQWMULRHNGKCK>D;C8F6Dۃ    $),16!;$>&C)H+H1H6H;HBHGHLHQHVH]HbHgHlHqHwH|HHHHHHHHHJJLMOQRVWY[[\\^aeefjkmooppppttwz|z||{wyyvvrmmhhb]YXQNJIINSY^chotvvvvvvvvvvvv{ #(--6&6*8+60876<6D3I3N3P/U.U'b$a"a$d%d'f)g*i1i/i1p9d;b=d;i1u,%$$ id]M>-*-*&&++/--+(#  {{{vqnlg_abdfiklnpqqqqqpp|pwpqplpgqbq]sXuSvNzI{D}?:61,)"  (-238DFGDFNPU`dgigijlnvy{!&).03533:=DGIKKUXZ_it{~~}xtvttvvtsqqnnnoqljj n oojj"d,V;SAKHIMDP:K2C+C+;.6-4)4$2/%##+.20.053533025025722)toq$l(o-o0n2j3d2`.b+_+]+X)U+S&Q!K!G&F(?&<!:?0&    |pj`YY!\#V!LG!E!CCB@>!>!=;!;984.)) . $!# &&&$&).3AFGIIKKDDA A'=.?.?3A6BBAB?@?4=9:;:@=J:W7c8h8o5r7~53537?A?=?==GKLPUVbglqtvxy{|rmfeTMORVWRTY`jkmw~{yvnljigigd`UPNFDGFD832-( ۃ )u8^@OBO@TBWHRLFMCMAQ>W;T4V*^#^ \YWWVTO'M-O-R'Q2M7L6HACE@KCAQ RTTVY \`e`^^Y\`aefkh``^\[YY\[YWVTVRTRQOMJEB>63.'{'x nd UPG$7%-.68=;=BCGEOTVRTVVWVY[`cjuuowkwctcw\zT|J@61qb__ZSMKA>-%  #):B~FK|`cl@o?s@v?x;t8v6v3y.} ""(*-2677;KW\afhhpw  | r n m h h$ d+ Z8 P= HB FE CS <^ /m t y |                                                                                          ~ } x v x x t q s q j l i ` g l n o t v x x } } { { v l i e ` ] [ S U ] ] S D G N P N G D F D D D A B D B B! ?+ B4 IF SC SC Q? P9 P7 PC VH UI VH [D ]C [A ]> bA bD dD `F _I _N ]N ZK [K VI SS U] Pb Kk Bl =n =n Aq <q :u 8q 3p 8n 7n :l 8n -k )l $q z                                                                  ~ u y t ^* W= E> H; M= O@ O@ HC CH =J =Q 4Q /T 1Y .a /e .f *m ,r ,u 'u r u z                         # $ #  # + 3 3 0 0 3 8 7 5 3 8 8 = ? ? N V V Z X }_ {] zU zU }P zP vN vN iP dU XX W] Mi >i 2l /n (v x } { v v l !l &d &] *V %Q #+ & !# & % / 2 4 2 7 : 7 9 5 9 < A H K N P P S W Z ] _ d s  w o j f e ` Y W Q O H J M Q M O M L H H E @ @ C B > 9 6 1 .                       " , , * ) * 6 E E @ = C C G{ Ju Jq Hp Lk Og R_ Ya \d `i \n T M O Rz \x `s ep ka m\ wW uR tN yM yK |F ~D z? |5 2 + ( #                        | | v r q r r m l m o r y |   y q e b e b X V L &E &? (6 <3 =) D& B$ D! B A 8 -&&   & 5 ; @ E S X [ b l q r t  u u~  y o k h c c ` ^ ` ^ T W T Q M G G H C @ > @ > C @ C @ > = = 9 ; 6 9 6 6 3 8 4 4 8 6 6 4 1 . / / 1 4 3 6 8 9 9 8 9 8 ; 9 9 8 8 6 4 6 4# ,+ '/ "2 0 > C D C C F I I I R S S \ _ i l k l p v      { z z x q x z z } { z u s s x z     x s p g _ Z R N M H H D ? < / ( ! # !          # ( - 2 : H U W W \ g n u v { u u q i g a b a Z X \ \ a i i g g i k k l k g f n$ q* n, i3 g4 ]8 ]; WB UC PH NH ML KM HM CM AR ?R >V :Y <` 7a 0h -p !z ~                                $ - 2 ? F ~I {K tP rS lV mV qZ o_ qd mg he mg ro tx e~ b [ Y X T J I @ @ G L S Y ^ e j q w |                            & + 0 - ( * & - 4 9 ? D K P W ] b i n u z              ~ } { y v t s q o n l j i g d %b ,` 1_ 8] >[ CZ JX OU VS [Q aP fN mL rK yG ~F D B A ? = = = = = = = = = = = = = = = = = = = = = $= += 2= 8= ?= F= L= S= Z= `= g= n= t= {= }= = = = = = = = = = B G N U [ b i j j j j j j j j j j j j j j j j j %j ,j 4j ;j Aj Fj Mj Uj \j aj dg hg r` wL G D A = 5 . $                           " ' ) . 6 ? D L L~ Ou [p lo vm wk vh {c c [ [ V W V V T T R T [ Y \ ^ f h j j m t w w |                       * + 0 4 9 : < ? M S W W W ] a d b i n l n u v v v z  z w p p k e ` T L G C C 4 / . , ) % "                            "  % %  $ $ ' ) ' ) % . . 1 1} 9f C_ CZ LR JP LP RN TP VP WN YP [M `M hH oF mF rC r? wA ~? A < ? < < 7 7 4 0 - / / / / - + / - - - + + ( % #         ! ! % # %       g J J J I = G G  xpmdUOYZ^_dcfiswdcd_YPMMA1   !-<?SXX[b`bbotxvs{qg_[XUXZ__][ZXSSPPSPNKLNSXQPNPNF?==<0$ 7&U!T#\$_(_)c+h)h)k+r-s0s0n-f+d+_&\(W+^2r3320--.-+)-.023535:BB=3?FFLLQPLFBDBGDFBB ? =?:?ADAA??<<:!3.$0&5"3&3'7$8$365?7B3B3E8D8B5?8?<DASFVF[IbKbGVKXNYQYVTUQVN[NbVg]bT`O[JZJXDZ@bIlctmxt}|"'1'#7<AEFKORRUY2^K_NaZidklmskmnpnmrppmihkffhiffddcca_dhikmmiikhfinmnrn_a_YRFCC@76# vqqgUK?<2(!($&)+-03:=?DLNVZ_]VPQVQQLKNQPKNNK88x8u8q8p0k)i&fd\\ZX USMKC>:9--(# {vvvvvvvvvvvvtohc^YSNIIJNQXY]bhhmmrvvyyw{||z|zwttppppoomkjfeea^\\[[YWVRQOMLJJHHHHHHHHHH|HwHqHlHgHbH]HVHQHLHGHBH;H6H1H+C)>&;$6!1,)$     @҃ ; 6 8 : = @ @ = 6 5 3 1 3 0 3 0 + "     # 1 1 2 1 - , / / 2 7 9 A M K K J M P T xT wT zT xY nd id dk Zr Or Fr @p <r 6r -w x w u }                          "{)l,j.e8eD`EbI`J]L]QbNgOj[nYs[q]obqqerbo]qZoUqPvF<:23.-(&)(+2537335:<AAFFLPXUUPIGBAD::<:5035<BKVxyvy{{xtqovyqgbdZ[XUSKGA<20()(--))(.+))+(  !#59>HNRaluzppjotuzwz~|~| .9;=JORw[~ch~to~khhehfjjea^^Yekpprrurwz||~pz~~007BQ[Z]_nnqqty          9972*  %"#%*-1769<@;>>CAC@CTUTOMMPPRZZ\Zacc_YUZcr~|y}uwrmhea^YVOLHMLOJHWh      !$((+(###(!#z#x|}z usrn r w| }zpnkkhipnhfhkccfknkknfhpx$}$x.z2}.88550377.5238<BFDA=72-+)+252+&#$&-22&##(($)+-$ & $     ! " $ $$$&$0$:$D$N$X$b$l$v$$$$$$$$$$$$$$$ $$ $'$4$>$H$R$\$f$p$z$$$$$$$$$$$$$$$$$$$.$8$B$I$S$]$g$q${$$$$$$$$$$$$$$$ $$$($2$<$F$P$Z$d$q$x$$$$$$$$$$$$$$$$$"$,$6$@$J$T$^$h$r$|$$$$$$$$$$$$$$$$$&$0$:$D$N$X$b$l$v$$$$$$$$$$$$$$$ $$ $*$4$;$H$R$\$f$p$z$$$$$$$$$$$$$$$$$$$.$8$B$L$T$]$h$t$~$$$$$$$$$$$$$$ $$$($2$<$F$P$Z$g$n$x$$$$$$$$$$$$$$$$$"$,$6$@$J$T$^$h$r$|$$$$$$$$$$$$$$$$$&$0$:$D$N$X$b$l$v$$$$$$$$$$+18?EJIID5!  *-1WY\^k| +0..::;GJL[g{jpOf;^1\,U"J FE> <>'C8FNO[P`O`MbPeOgOhPjPoTqWvU{YWWRPJFC>;|6y4y4|7;;<>7441266<KKMMPU&\/\5^AhHs_rbiahldn_lanZsMpHsEpKxOxO}RYYRKRURPPKMJJHC974-,*-/-* %%(*%"%%#'19/=<Y;^>r<EFEF@1-*(*(%*(%#"%** *#   !-+25::0!   |ropf^RLHE43.,*,*$ %)/.31.$ xsqjggjnqteUQLGB?:(tocWLHGHECBCHQY$a,u6ELQRQGOME3 13;=(9+;0674A@UM`MjQvM{W{`ahkoty~}}#&8ANQZdnjlqtvttxytojggeisvtxjtQsPlIgKeLgLeL`I_5X5Q0P2I.G0A+<(8$8!:758 ?QZ]`be!n&s(q(l)v.{02572)pjkf~fya{cvat\s\qVjQjQgMeLgJsLtE}@;99;>;;84331/1/4313/36/*/168646 6>#M;WYepywwtu!11.++00,0=Q~ &25>: :?< :<9#2&9#9#:&A+C.I0K0H.C-?.:0:5D5?7A7<8:7532728-<+F>KKSWV_ZaZd]g`f`dnuYahou~ !(278<ABGLPUVVX_dgi`boy~ #>zwns%u/x7z>xEzJ}JP}^zapsh|c~~}{xssstsqqsxxvxvtqoonttnnqossqooggijgddngglnjlgi}bb|Zz[xbzbx[w[uds`r`n_n]rZsXrZnXnSkUiViXhZf_f`fda_a`^e^e\`ZbWeWeRdRdU_U_M[JZJZFbFbA`CXCXA]AZ<[7V;P9P<L<L;K<I<N2P,U'Q"QV"V%X%Z%Z,](]%X [ i'j `__b`][SN F::7520.-)-22+0.237755200!(!&)-232-&!#!$))+0332($$#!.37870-.!!$$#!!#!#!#$  {tnolnje__]bZVVVZ`dgjjlsttg]ZZSLLPPQ[~eyjtlklfieiao`xWtQxMMQV^a^chmmjppoke^WMG;GGBC~=x9dMiOb>SCN;K9G6?8=9A=?9=;:9:8:683260C0T8L2L.J-G-E)G$O(L&O!VTMJGJHE@=94)* '%$$%%'$$'"$"$  "$')'$   "|wrmmkjfcW M JHB@=94.*,  $ %$"$ ""         uppqqsplgkgdd_Za_]ZZXWXRHHHD??<7457>INPNRNPSWXZ_]gkn}lnuz}}}}zzxs}kzf_\UMD94(&({vzslknfdda]]Z\XUNRPRSURSUXWUUXZWZXZ]\bafbgdinlnqpkusid_\__\_bid_abffZXWWb\Za_XUPSSRMNMHDA:<:/ 447 >>?<9475:??CKPSSNHFFAF? ?< 9#<%:%9 5 4&5#20/%/+5*:(:%?(F&A(>-?/F0A4A0>5>9:5545424/00--2-?2:9<?>A?AC?CCDCIIHCHAIAH?H>D>?<?9H9K5\?]DaDaFaadNkXkanZq_vau_kPlPsUxWsRuNuIlDiIa<b9k:k9i7b5]7\4d0b(a*a-_/]/]+Z+]&\%W*W&Z#Z U%S*R&R S WUSRRNM M#F&C&D#FDA&>(<(<%:#>CC5#4#9752 00/+- + %!  (+&#!    #+*00/0&%%##!#&/22-!   !#!&99720420400/020+&&%!    %(40*(24477499520-+(%(##(%*+# #+*04~/~5|5t4t+q(y!{~| ywvtq mj gej&h-g0e2h0l2m0q5l?lFjIlPGa+fl{ zxqllnpppk"i,b8aE\L\XWVSJREUIUIX@ZBSDSJKENBM;S;R:R3W8U8W:W;X3X+]f_!]&X'Z)U,W0S0P+U'S&U$S!Z"N&K)F,C.<0>0<,:)A&D!KI?:&4$479<:+"("&$!!%*0+&%&  !', 0, &     ( * * -4 5 2 4?K N II NKHK K D D K K M F C C F M PRWZ]_ Z_ b ] _ b bi l k l l g g k i f f b a b ] \ Z Z X R S P P M K I I C A ? 9 7 5 4 - + - + * & * ( * ( % %  #        !                        !                                      # % % & ! # & * * 0 - 0 4 5 2 - / * ( &                                      } | z n i ^ W M A A F R Z J < @ q> eC c> `9 Q; Q< Q; L9 O7 G2 =* 1# +                                                                     } |                      }   | } | } z s p r p m k n p r p u z } x n r r r r m m f h k m} i{ f~ cx _v cs ^t Wx Rt Pt Ts Ts Oq On Yi Te Pi Ag Ae Fb J_ E_ M` Kb OX OU KU JZ H[ EX HU FS CU >S ;Q >Q AL @Q EQ KG CB AD @G >G ;? @= @? 1A -A ,= 2< ;8 @7 A2 @2 >2 <) 6+ 20 42 1. -( /) *# 1& 1( 4$ 4 1$ ,$ ( / - ( * / * , ' ( ( , * , / 1 / 1 - , * * 2 2 6 6 ; @ A C Km Z\ d[ dY f8 |1 )             $ , , }* |. s1 r4 r6 u9 u> k1 n, p u               v u l a ] \ D 4 2 / #                                    | x s p n k d T M J O U ^ \ ^ d d ^ Y M K H J E C A @ < ; 9 < 9 4 - - ( % " "#   # ! # & % ( * / 5 2 C D K K S X U S W X \ Z ] g l l p k _ ] ] \ _ d n v                     v v z x {                                                                                         " % / 1 3 6 ; ; @ B @ > @ H L Q T T [ ^ ` a e e f e e f e f h j k o r u ~ ~ x q l l n l e Z Z P G F D A < . #                                                                                            y w y |         u ` H 4 8 @ G H L Q M O ^ \ \ Y [ [ W T T Q M E > = > ; 9 8 8 6 1 , .                                                                                         } x x u q n g d b \ W R K D > I 7 4 # ! #                                                                                                                           ~  ~ | | z z z y w w !t #w (t *p /o /m 0k -h 5j 5j 9h <f 9f <f 9e 7f 7f 5e 2a 2c 5a :\ 7` 4` 2\ 4^ 2[ /W -R /V *^ %[ #Y O M Q W [ \ c !c ` f c ` \ ^ c c k k m m j k m p r t u u r t t u y z z ~ |                         | z u w r r t r p o j j f a \ \ ^ ` e f h j m o k m p t m m t u w t p r p r t r p p k j k j a e e a ` a ` a a e e f c a f yf rj vj tj qf oj gk `m Yo Vu St Tu Xy Yz ]t `u cp cm eo hw h| ^ ] Y Y ^ ^ [ [ [ X X V I J = ? = 3 6 5 $      " !                          d Y T R U \ _ _ ^ W T M M T W C ; y y |                                  ~ ~  ~ | y y t r t p o j f f h h e [ Y H G 9 9 9 6 4 . 8 1 ,  j% q, / 1 * j, j, n/ s/ j3 n6 n3 e4 e1 b/ ]1 ]3 Z8 Z9 X9 V= U6 U8 X4 V/ V. [) P, P, U/ S. P. N1 N1 I6 G8 F8 ?4 ?/ D) D' L$ P I I N" P U X X ? : : 7 5 2 . 3 3 - - 2 0 2 ) ( # $ # & $ ! #                                                                                   }    { z x _ Z \ Z X X R R M M I K D C D A ? < 9 4 2 0 / / + & * 0 % # % ! !         # % ( + + - - - / + - / / / / - 0 4 7 7 < < ? < A ? A ~? wC rF rF mH oM hM `P [N YP WP VN TP RP LR JZ L_ Cf C} 9 1 1 . . % ) ' ) ' $ $  % %  "                          " % ) , . / 4 C C G L T ` e k p p w z    z v v v u n l n i b d a ] W W W S M ? < : 9 4 0 + *                     | w w t m j j h f ^ \ Y [ T R T T V V W V [ [ c c h {k vm wo vp lu [~ O L L D ? 6 . ) ' "                         $ . 5 = A D G L ` wg rg hj dj aj \j Uj Mj Fj Aj ;j 4j ,j %j j j j j j j j j j j j j j j j i b [ U N G B = = = = = = = = = = = }= {= t= n= g= `= Z= S= L= F= ?= 8= 2= += $= = = = = = = = = = = = = = = = = = = = ? A B D F G ~K yL rN mP fQ aS [U VX OZ J[ C] >_ 8` 1b ,d %g i j l n o q s t v y { } ~                z u n i b ] W P K D ? 9 4 - & * ( - 0 + &                            | w q j e ^ Y S L G @$σ'+,3.18868=@@BB@@EOQOIDBEEIJOXbehjg^^[[XNJOSSSVXclmmhcVY^`ccjecejqw|{wwtv{wvtqrwouqmqhqct\w[{WJC=JJMJMMRTQHLOT[fmjeWMG=/1,,)'$$%'/38989>4B>;994.11664631.*)"    snaXRS]lbWNK<9::4/242% ! +9?M WX R H 075 + !(-- 0&0*2->/Z-l+-/04<4/0d2_0P0I4C0?/:/9799?CA:<97252#0*/5-2+/%*!+% #! !((+/ 5 < F IK!U#]*_2_5]5\5Z2Z*S&S*X-X:b7b<f?gHiKpSndikdkX}NS\}dninnkqksquxxulqfsWvRzR}MM]flg]df_\KHIx7q/p(n&n klnsnidk nsu}  {v pqx  {zvklquxx            y`SVTNJG : ; 8 3.00'3'=IQTSNI'@*?.I*]*`.e/m/g,^.X/E*6*0',,&,/3$4!9@;99 =C EJ Q QV W T938:9;;5@0H1H8L:J1C0C,L!RW[\`!^'[,[0W3V:VDWEW8^0a$j)k.p3p0m+m'y5y=t:zJyOz[|^|N|;~8;EJQSX[`hmlg]VTJLONIILJNIJD@66|1|,'0=86.1+.;;860! $+|0}7fGmLOXYjJx7  yo e%d(I/B2F7<9=;BEBJ:K2R-U#\OKHEA;9;( ^OJ L#BYfpxpR# !'.5;BIOTY`gmt{ %+07<CIPW]dkqx %,16=CJQV[ahot| &-25322320(052F2\-z0g.i-x+&&      =VQR`cz$&3.2#!# -3:FISdiivyxjs !#(-055"3"513;3F5M8O8K5C8F:C7782=;AU=@<F=T<P8c<f=rAxADGKNPSQLIFIKLNLXZ[[b_bbed`beeii ibdeeieebb``"b']&d.b1_0b?_:`BbGgGjNlInNnSqSsYjbi]gmdjbmeqdt]m]eZjN8I$GIAB:800-03300-.-.)-)|)p$h!k!ffchfO PJC E @@92 -( "   (*'@AFH97>4/1,""* ", -7> FFAJ P TMP \Z _ h sx|x}|us}!#!!&&&#&.(($(.20-##+)!!. 2 8:<)?=BXF`KLSUSSPLIIF?:78<=?KQSXbdjjl no&n0q(t}{}}}~5sS_lZnU{SxQ{NvA) !$!# #!!#! ##$#&(& ( ($ )+.2238:?%=/5389<9<>?6?*BADIDD'K*Q6UHVJUMVQZLUEV;Z@Z=Z4X4X.V'U'U Q QQUX`,_/[,['Z*[9[1_=]@_QZVZ[[Y][[e`c`Wb^dY`GbLdEgJgYg\ghdc_mZjX^XfVeU[SePeP^N^LcKcIhB^=^:r=|<<:72|+y#ff\ao!$&&&-27?AGDD G FD+F7DFFQF_DxAA72( #6Em}  &=GOLNS]~  (/>KIPfgnqsknsx{}svd]SK2&!-%~~| z|~-|5y>zCwKt\uft{propopruuu,u@rBpJrMtGuJwHwTtowkyoyuuuw|||zwzy|  |&z!u.u!t#p7r<t:u:yDuDuIteoleoat^j[jWnWsTsVyO~QYhkjhf\OOWYWTJ991434.14;1//3/*'$    '.))4.$%'% "     ))  ',)/ 3368 8;@LVWTV^ry%((279KMHJMTRWYZimpufnimwanafc^Y\fh_ca\WPPHH;21''~"FW^}   $$$..;BO`my~~zutupruyw#y*z*z/w0w7r:uApIpUr\rdt_u_tfuktsyuwzzzuwy~~z~~|~~|~~z||"y$|'y.y6r>uHtVr[w^wo|rz||poy~wwrpmkhjojo ot tz~~|p|  $00==B:ABVQLAB<<0.3<?BKSPIQbx~~junrjplrojnker`h_eZcQaU[Q^V[[YZW_YbVlWo[vWyMoLiEgEqEsBtE~HHRMMROJ=>C@B@9;@;83/)%'**'',.3.{)~'t)q*t*s*n,d1e3b3[4Z3S/V,X)d$i"qv     "x%x'~$%%"$"%% %)*,/36;BGGHOWY^akmpruzz~42<KipuwskaifmmskkcUYR\ORMOAAE@EJOOZ@2/   %*2967H1' *-(,FRT\a!swa\ TZ T U ZWY mp}zwr$)r(d$^$Z$WR9!*$#+53 8 72-.0022288=BB=ABBDDADBDGyKlLqKtKxNtPxPtSvUnUgeKoGxIU_`gnqsyy{toZVUBLNV[VVPGSZQUNUbl{    "      %  49 EKT \ cffZn  ~xvvtqvv{}y&}+{.x0v+l.o5i@g@e8e"de ijqoonjiige``_]```]ZV V NNLGFDAABA:::788757:8::77323+)$$($),+++3.:285B7D7O5S5X3[5`5c3c3j2j2^+S)@(;&=)E(S)T-`(j)t(w)$$)&!!!!!  {~w|mjtyl`G j r~   / AIRxz|upmjTQGGE>8=>=68BBCB>BECEHJLOOLOTVVO'T*T,O,O4W3[9^6h;p4C[[^^rpwty~w|w~ !##!(+--35:=ABB?BFGKIADFIGKI GF#B&?3:K8q:{888:853235322..-&((+})v&     *27;A-#  #,26EAA  ~| z y uo j1[CWER>J942311*,**',,), )$"  }lbZ[SUX]_SQ?:52.28 : ?558< 85+-&&# "$ %*)) /31//,*,*)$""$$''%%$""   ! !:=FGPN?FD32#!  wt[RLGB/,.*))Gprfjk\TQG>6;;1)$g_MfsvRKFC>0+  hbTBSYrthl +7W_g{{xs nidaXPMKFKH?944-#  qii\]WMKFD<<-!  299-/*!#          vmle]VNLSQ?:1030,)  x n mnf^ iiupur__fkx  !'68@DNNVYemryw{mc^TJQQB,||yyvromm ooqrttqqmmortqvvmjjhhegge^][[XSQNJGIGNOST[][YTTSQNJJLJLIIGEBEB?@;=:6;==:;330.,1x3n,|,p)n)z'|&$""!xk ^ YUJOKUZWO<FHFF>EAHJ;1%  }xwrrpnkiZKEEC@>941-//*  ',,414,*,''#1/77;7<PUYadsz}}{xqe[I?:=GKIB=?AFGKZ]_t][[VXVUID< <7(74375A7H3I3M3N0M+X&_!p}  $8L`mzz~&7ALKPSX[Z[Z]ZPN]dq}yuppm=.'$$ }%z#s%n,p%nkiki gg bgg*b1_2Z9XASMURSUP^FdDhDnAn<z2 ukf_Zccadiz    #%/+ %   ! "+'.3, .3600;D@ 6(6(:*5-0/)2+9!<$<,?5I.M=R@PBUBUIXGXJ\N_ObSgQiVg`kYkQnQsVuVvSzT{QVSOSNGGDB@;D?@@:=6;:35@?;:D81.118:531&,,',).+0.,.)+'+&"!""'!),&$""!"'+. &  $!!!!'&!   $"$$%')*)') * ,,.113466==@BBEJJLOQRVQRWWVWY[[YY^a`aecej m&t1t;zO|Sg{ 0DNU[l{tmb]]he[YOQOTVYQSVXQSO OT[] ^eejh l o hmlotrv{y"~#'(*,,/146474479;>AJKOPTROPROKFEHOPTWWYZ\dhhkmnpruswusuuwx|}}tw~~   "+3;ySwY~``gglmtroolmlmljh ee^AYF[MYN[SYXXbTuSxOnGZIaJfOxVXTOSQOLIGBDGLQQVXYX [[e%h8g;^C^H^M]O]VY\XfQjLuJuGEDDDDEGD==;:53.'',)$'.3,+'$""!          .038FLKS[Z`gdjnqoss}{~~wwswwrpnrpsppqwFwAmonmkmhfc_ZYPROHE><<96211/,**,/-*-,('" #%" ""     #'1>HHMKJOMOTUR\Z\WPMC>* ,9HJPRYY__cmpsszxzzfcps}}    ,1688?6:015;=@:BDIE?=53.6:=GLL=:GDX X LSNY^ c j hcbho|yqec]TT X"S'Q'Xb%^#c'e%h%j*c2b/l,o(y-t/o4q4v7j9m9l<c;q<w;4126;<<@~@rUeYm\lZq^r\w^va{^ZY\_adcdhhkimnruuwz||xwpnuw}|wwurpppmifhknpruusrrnkkhfcdhf_ZYZYPPOMKK@CKHJ H F E>E @66422122/1'%#%-1#/&/-,0'/#*"%"(#0(7(>%:#7"9 5"> A:4/*   #/5:?FHXWSC NF P SSMSMDRSSSXX]f_bnlagnqsllZSFD:970:CA:/*:I\S_bkvz{}snpqu]bbNRWUCWZ\gkusz}~}{yyqvvnsqniie`]][ZUXS[ZXSSUSNIF DB ? BAB?<820.0&++)(&&$!!$#$(-.322353530--+&#              %$"3GGC@>8/19EOTRTOQLT^cehkmoojk`[ajcoporpofce`ffprkppttu|z|mfhea[RY`efkma\MM|LRV`chhku||~zyt~r||zywpmmjfcccfkrw|y~~|~|wrrtttrmmkmm h mmjhh$ef&e-a.c2f2h?hFeDcGaV`Xa]ag^l\n\sYtWvW[YWVRRQOOJHGvGEEGEB>~=i>e>_=I;F9F8=9N4?1A/+'%"% $*,)/./3'+$#"# |mj\L@9;834>E[u~~rokhfj~|fw !.8B"K]n"g"[%U%G 8%.,5,A/A/F/U,`.d,g.n*n,{*)~*),*'%%"  " #"(-,41(22-16796147791%,(%,(1144,*# (  #6;6941*'#"  #1/9;}7{CxAuEsCv;v4u2u6s7q6{ xu#s%p2n/n6l7n>k<i6g6i;gAfFf6b9b@]<Z@X>X4U7P/R#M*I(C> : :7570--(%!!~xxqollj VK IB= ? < = <:: . ( ~wuyuttkkhecVRRMMEB>=B431)'" }zxgd]URSM><94&%!mTGB=830..0!   vyvoh^TEEBDB?Bu@p@k=h?d8a6Y8R5W5\0^.W.O)H+C.J1K3H6F6C6F0H,C)4$1/*/" }ld[UF=FIZXPQ[q{vvwof`cVaN\GO2J.C&F.M5MDRLRSTVT[W_^vn|} '2;CMYdks!015:0:B;O;S?`?o;:630!    ~mjJDB@=850! )0IQTX]Y]`lyxwidwcddaaddaddaZTKF@>;>;><2*(%'"        !!##%*4::4902MD>?HKKRRX]\XZz}{z}}  )//)*'    ~~}~x{uxxxuyqxqykvfxd}d}b}a}]vbs_x_yZ~XyXtUvSyUsPyMxKtMqHoHo<q:s>t<s7o:j9t(v&x#s%s*o+j/g-d0`/_+_*`*`([%_%_]_b__`ebdb` dejnoqt qojdd_`gjieib__]ZXXVUSQPSPNLNKIKNQLII=???=<=<877553..++($###$#!~{|{{w{ yw{wtootrqomlmeec[YSSQQNN L L JJGEE@??=:!:88;:863310,+.++)!'2)8&:"A&G+Q,`:eEjGj=],V&Z&l=nBtNsOlQnXt`~qt[vXsTtQvQv~ */455?0(% {he^TSNJB:5.++68830+$)03+)"   ch|psza}^P}JzJxEz>x7u/s%nwz># ~yob`igd_XVVUPLGBA<872(! ~uohaYnu`dXUUMUHQ>P2I&G!I GFGF <878:=BD=ADFBABAB=<88???==:8:<??B<355<30.+)++++)!$+(++-+-+0023332202.+m&X(L#?#)!  !!&+,)mdO;' rk`fkkffmo)8?FS"S%Z,[4d6nAqAv>xA~@~>@<;97977421-#"" 1@@;<ACEFHJHPMRUYWYa\\ZP{O{P~W^~f{hlavpxuynlgd_goty{}{}~}xx}wusppifcWPMJMKFCJKHA/*,#*"%'                  e]XNG=<+$((*)-&/-,-*((,/1;>CC>>>ACJMKP UUWURRYWZafkmnuzzurooh`VVRMGHE@ B == 3 1 )*$"     "&$$!!$" }xuqppllggfil} {p i ilikbaZWFCFIMUS/(#(%!!  {g[LJG;::..0+ |k^\YW1-*  !5DIIJE?81+$$$$$$$$$$$v$l$b$X$N$D$:$0$&$$$$$$$$$$$$$$$$$|$r$h$^$T$J$@$6$,$"$$$$$$$$$$$$$$$$$x$n$g$Z$P$F$<$2$($$$ $$$$$$$$$$$$$$~$t$h$]$T$L$B$8$.$$$$$$$$$$$$$$$$$$$z$p$f$\$R$H$;$4$*$ $$ $$$$$$$$$$$$$$$v$l$b$X$N$D$:$0$&$$$$$$$$$$$$$$$$$|$r$h$^$T$J$@$6$,$"$$$$$$$$$$$$$$$$$x$q$d$Z$P$F$<$2$($$$ $$$$$$$$$$$$$$${$q$g$]$S$I$B$8$.$$$$$$$$$$$$$$$$$$$z$p$f$\$R$H$>$4$'$ $$ $$$$$$$$$$$$$$$v$l$b$X$N$D$:$0$&$$$ &',,'$$8̓',)13:1..)!rhhmmefjrywpkjjfefhptuyy| x}||pwuxs^\UY___khmimus}}zssifa^WTMOPE9#<#C(<+A-A-F0H2K2H.E.@+>./5#8":=B?"B#IL"KFIGKLQSUSQQUUPNVZ]``ddg iedeegjlonovy}}~~}}~~vx ytig[ZPFLLKIDDAB573 30 ('7$;#9*, (# !& "#  !$#-+3..3??<<5#     wu yo~|tpE>>CQLB;8  ',*--21/26246477{A_CaCkFpEuJ{JzMzR\zdvnia^TJHHEEJOUUZ_a_\\^acpruupzkzip^aT9R*Wdhhhdinrwwz}|xsmkr|@wsnsssu|zrpmhfchdfmkprkhhmpusurkfZRE>6,* {yx{tvongnggidb_]_d_`[Z]XQVUXXSPQKNFGBGIF?:7+587FNNGL50+$!  !          !#(-).03027502+(($#   #&!|}} w srkksnnkhkkimknmnuupkhfcmnrr||spniih^ZZWUTWYZ\^afmkd_ayauZMP|TzUuYp\eYeUkTpRoKfOcR[O^J^F`EYFVAVAO>O>L<J;B<E>B>GCEFLHJTRE@;9;6>6@1H6C'</;)7,6'6 1, %#  #'*(,,*(%""'#"  """%(,//499<;77;>AEEHHMOTZ\YMKHKPUYr%@GJQcyaemry~tohWMJG813/.)'%  zvngb\UKMRMHHD9227AD\}\xfufm\hZdMd5c%^ _(^/_7_<^<\<R7P/M(M#P OKMOTTWZTM KMPRPMKKHCCACC@;7672422/11*%          # qohmb`[^YSVQVVNJ:655::,'+{+{$~"{{y}} yyxx o otooled_d`]ZZVSPNLNLIIKIIBDGIGDA<:?A::252.-0552}0--+}-z(s(p$u#|}if#a$^!W!PMJFC<<PWYT;79<;-'#    '*142% #('6<74--%%""    }{~vytqsqgdUU[SQLIFD=35=<2.+-(!~|ztp||ywzzw|w~zwumuaw^w\|V|\~\WRJCHC@B==@>~@yMwOrGk=k8h3j/m.p3r4t9t6t1w3w;w=|84HRTOM`ea``ejpyy|z| ()))##!028<=50=NQQV[g`iiSLGKIGGQS]gq!$$&)0:20.03...- 38DL d,i7iCj>tM}c}h{fxksktmtxsxs|vy}{vvxtsvppmmffdmnw}wwsu}   C6(%"    # ;A@EHCE;     ~xvqqogged` b g_X7--(  '*'#%(2266;;>JR^dkpw}||r|upnzpmmokjaG^/\^akڿmܿmnnppxƿ}xfafpsz}ƿտտڿڿпϿʿſſʿտ))%**     ޿Կȿ}x}{z}}sgnxxs}z} {xxpqvuvndkgifXPKPMNC9504>? : 2   # ?7(&'*&/':&<)A)R0F8ADFJS[g]kcqlmmlggccc]^bcegljhjhmqwwvÿʿпϿ˿ƿ  )36Mcft 032#!%& (* *+*&*-252445577>.H2R(W\ \\]]\]ZWNKMNRRNMIHKHFHFD>4~0z&y%p!j*f-a0a2e7Y7O:Q>GAEA><.787@4E4Q0O/H*G(B08217$:9:ٿ9ʿ:տ:Ϳ0440542/-/--4\9?FINRRSSX\_]Z_dilվq̾vǾ{ɾоӾx˾s̾pݾqv{{{#}!˾վվ~hYSXjom]Y]orѾǾվѾؾ־   4<DUZXD45?_{Կ  ޿޿"/;JYmtuw  y"y$'$''  2INij`` g ][PI: 2 +  "$')'*.,1/,13,*.;=;9..w1m/e1Y/Y,c,`1E8 9Q`jtwy|gR:0! վݾ Cп9BE9EH$H(M-M0E2Q5M5Q7M8O7V8Y:[<Y=QBYU]]bgvxvtsqqqonjiljgijllnqqxvt!x~5D~.Qqot}ylxs}yxl~}tv"'1CUx 38==,+  ,33:??NX[`bXcjhlqqlrrw~(49ADINZ]U_xuvnnzngablu}~ 48>C@O\t|}xx }{&v+x0v2x=vDoDjllyiijijljggieii ` _ b%]-[;[FX>VYU_VhXhUsU[[_]V]`_``b``bdbd]d``"_&`.ZIXNULVQUXUTSTQ^P^PcLcLhImI~DBDFDB<337852-& |toha[VQJC=61,% xqkd]WPIC<70+% {tmg`YTOIB;5.'! #RpxpfY#B LJO ^(;9;AEHKO\U#R-K2J:EB;B9=7<2F/B(I%d eoy  x7jJXYLOGm7f0}+|$ !068         ~tpwt(r(o+m:q:t9v4t(  +/-*  NQ]oor q!q%m&g(X&O%N N         ? @ ? : = : : 5 6 , + ' ' $ !                     ) 1 6 ; ?  u⁦ l k i s s z | | y t q o m l o q o v {    x u| ~ | { y w r q o m l e c c j m t v m c ` ^ [ X V Y X N N L G E G G E D E G G J I J N Q O J J N N Q T S Q Y ^ ^ b e g j j o o q t v y |  t { ~                     ~ | { |   { { t j c ] b b g h j l g g m m o m o r q t t r m m j l q q t v v w y r t        ( - 0 9 D D C A C C > ? > : 9 0 / : : > ? > < : < A A ? > 7 -        ၄     l l k f d \ X W R N I F D H F ? 5 !   & ( * + / 0 5 7 < A D H K R S U Z \ _ b d l l s          l 'i 0f 1f 5b 8b Bf Gl Ln Lp Is Lx Nv Qq Sq Vl en hp lp yn |q p u p k g k g yf ja VX BZ =_ 5l &n &l '76799;<;>8@=ACFGHRKTE[AaFmOtTuUzT|Ez1m1`-\/^,O/@,9-8186476hmtojfc`[YWYW TVY[acfhE[ae^[\WWTE>;>E    ",1386643343386699====>9889964)'$$"$'*,*'"߁|wuppmd_acfimsmikmmpnmnprwVY]`geelljje`^^``YVSQOGGGGDBBELOVhmtvw~~wvtwtrrqorqmlhၶၢ:$;*;.;3:631.,.*+)*)'* , /,,)   $'+,,01353535588 68:$o[g[eV`Q`L^H^GY@[;^;^>jLmVlWmYo[ B܁B88;DJLNLJNOS]]ehllhgge]TTJDBDGIJNT`elt{|wyvywyoghc``XXT TO N I B1܁36;BLLLLJE;1HDAA?A?A?>>:952/0/((}+{-u/u/n2p2v4}9{:v:s>qCbHiHM H FAA?? >??54575 02/0/*+(++/4&(޺-ߺ2799<><:::<>AAFIKKNN M zxvusp n kffd]Z\\\XZ\ZݻZZWS޻SۻXۻWٻWֻXԻSػUѻSѻSϻSŻU»S»PRSSPPRPRUSRSRWUXW\XZXZX\ZZλ]̻]ֻ_ѻbѻa޻adۻfݻfbdffgiklpnllnݻpۻpquuvz\]\\Z\X\!](_-_2]2_7\7Z:\=ZA\BZDZGXIXNZNZVZ_XqU]WUWSWPSFS<R:S8S3U3U(W(U#SUXZ\]\tmoTD?=;;61&  !"+15;=5:6=BI`gtt        ߾ھؾݾݾؾ־վо̾ɾǾľwoǾƾľľ̾оѾվؾվ۾ݾھѾоǾ  ¾ǾоӾݾݾ߾    !/07?HHDHCHzIwCwIsIrNpMmNnWkRkUhSfNfDhAfAf>c4f*f(c+_aca ^^Z WWZ^ aacadfݾkоn¾pľprnpxww}վؾؾ }wcWTJC,Eanzpc@1*'߼ -#*,277>EWZakszýýȽҽǽ ۽ܽԽԽѽȽ½Ž"Á+,:@Iblmtvw{{|tmcV{GyBv?q=j:d1i0o&ot~  """--('%#       #(-66792*,,/-HFJHEEEFEC<9@<>CFJJHzKwPrPmUkWhYfWcW_^_aa^c_accd_c^c\fYfTmPiPfOfPcOZPWRUTUURTOTMWKYOZO\JWKYEWJRJTFR>Z;Z7a6d1i1n-p4n<xEzJzḰ  ~wwtpookj%h#e(a%`,^*\-[-[%\%^ \aahkkko rttuw~ˁ '>ECEJMMTYaaUE@;;7<<6/,//29>AJKUUOKC@CEJKOY\aahcYWY\dhnrsmppkfhdi|Zzayczf|i~nrszsynwurspkmskuksjufufpar\p^h`f\f\aaY`TeRhZjYjUfRhMjOkUmUoPoTpOtMtJuKyJ~J|FtFrAt>wCzC|@z@u;y4z4y7z9~;~77A9<92471/2/#          ́B́=52#  #(-0003)))(!     $-.0702377:77::FIKLIDD<=DDB:ˁ73300+!!!#&&+0.-$!      !!!#&##(3~573.37:58:<=:o:ˁlDeLeNeDdIbFbK]L]UZUZSUXQUPZLZK]G]F_<`:d3d)jjjgeejjgjejjgded`]]ZUP K?BAKK$S$PI!F&G(K(F$DA:#8+D-A+?$3$0(3)2+50538.)0$2&388(=A!D+F2D3G3G&LQU)V#SUX]#][] ` gigl jn oqv{{!x(sot&s)t0q5n0o:ʁ  $#&:<:GKNGLB07?BFGKB-$!)-038<LtVvQtQsSqSqFs=t<~#~ } }{y x v s qn ljijnqtxxvos~QˁXXbdqqv{~~yqvsvttsqlogebbdidgjgbb_]]XUUQPQNLGxGnDlGlPjSnUjZiZjZqZt[t[q_nbqd{evgqlsltiyieeiljlytotvx{{y{vo{le`b`[]X]]_[ZSPLPKIGINQā{}vsiggddaXUSSK957-%*9<>F27FIPSSPSHRW\]addnkqquxx}!ā<<NMHHKDFDHKKPWX\bbfglqsvuv{sisqqpxuu{vonpqssqolqftbs]tXxUxDxAv?vDtDs:o9s?sKsPnXlaid`\`XbXbU_N_K`IbKdFgHeCe7d0d-g+b+`4b:]AZ2[#Z VXUP U USU PK LKIIFFDB==A:878735-)-)+57:=BABFFAAKQSPIBADIPPQSQSPPKIPPGF?==<:8::785:=ABS__`_``bgieggjnqty{xx~}~}yynb_dgilx~{y~     &&*((%+-7(!!z"t*o*f/c6e>f@eE\J[O[C\H^G^@\>^9^6c1a)Y)Y"W VWVTڿOҿLϿHϿEʿB>@BGGJMRW[kptuſt˿pпpڿtڿyyz z" % ( ( "  % " ' ( % % # % zyomecVE;866@B/ )//'"%$ ')/148348;=CMLLQQRYWTTemmrru             q݁dd]F<D-&(-&0Pagplsq с            P -сO 4O 9K CK FM HO KM PJ OH JH CE >E 6F -J ,K -P (P -K сK M K J H H #E #@ @ > A J J K ́wppuxzzu|rz}|}vvsuz{ususqqsslnliklnpplliiggbaabfb]\]bga]]_gbdppssxxz{zzwsnhmsnpxunhkhf_YYTPMWZ^_\cad\UMO@<>9;79@FTZcirux$́}}wxwzzrhZYUY\d_YRPPHAA>;<692**12;7%*<FH@<--*%(%"     ") ))%$ '/$7 97-,-9;C"H$R"TYY_ca d c\ZRK@2-44;;>MAAFTTOPZ\a^\ f hdc^nx")$ʁ       23-($5!:$?#I$N$U&Z$[#i!s!}$&}&s#s(l+n)t+y-v3<x<<<78732-.-)-+)(&())-.+)$ oleev~{yol]]VULLG505΁2 !(*% (-29::2+472*   #&%(594:55:>HIFNSXZ\SRMyW{kl|p|sxsx||~yvjlmrqjggeheeccb^OLIJLQSQONGLQQNLQLGDGJOLD@:??I=;=3:8.0.,))$!!"' &! $!"$)"1$60=:>;>1B&;!6.**%    >CL\achefru   $"$&'+01018:;==??DB|DzDwGmI[NQSHQESBV@V=Y;c4g.h/g8l9 zussgd\XPM<:94   wmmw⁓~rjc[WVOOJxJnEZG7E/C&EB EJVY`cr&49IS\q߁troe^TINQvNeEQGLILVKYD`7g7qNwS|[_s~b^VQ I =686,)$! "$+,6?BNT]```]bb  ++.))0'&'$'&     u偢|uf^PKHJPZ^chu;с9FTrx|w}|ur}&]o|mN?3!zrmi_w\rWsKdCf<E7761799;;74/( qL L.)11 (,,112699<>>FJJ M PTW$Y1\/\'_"a)c'c.f3f*k/r)u w"u1x@xM}`\^YQJG9BOM`hekrrz|tmjaae[\WJTMC B| 2o#/PMAC219\<ӁZAYAYWZX\a_qc__f^\^acikkn zz8pokwhcYRtPyKkFRCJ@RAYC`Cc7V4W>c>hAzCyAjEfJzOOKHHECEEAA<HKPOTYWWRKKRTWWKO KWYWPRW^ aaacdiiccfhikimru|}#|+z.x!mFkDmXk]i`h[fbcsaiYgZsY{\yYTC4/-1--,      "'(,,--9><>CFJMOTTZ^_cfknx| "-2(,AMWhi|}|wwunmkinnifa^WWPPMOMF2,'% =8@=D8030@JT`q~ x{x#s/s9v<vHsRnKdUe\dbjfeuilg`ZUQPPFA=:77578}7v7kG]LbP_5I<??7=0=-D%I#FINPNIGD ?AFABA=A::8-)+))+-5:8:82+!((&  $$&$#/&%    %- 7A?5:*% yeVIEBE3.& p p|}xx&^OM6 ;11'ysZD(~|k@4)$    iX +      {#q$w(r-v.g-c-g)h-b.T0T2[5[:D?3X!]+dDntt%xAx\xgtqssqooqnll no ooqs3t"v$qGsLtwvwvjxpyt{e}B94," xiSM9!wh5)&"B[` hYB6&"&   z wz%,2267ACFKR\_fs|)|;ESw 2?as{xspznaiUdWd_aP^K\<\߁XWRNMIMHDD?2+#    -1/ 64ACcd^ c arzz}}mdc_RH6'   v q l e _XPXSXUKGB80&zkO,$ 9CQ V VRHLE%B(E+@7B<>PQRWSTWVXR\YaRdQkVn[x[W^Y^ffz}zz{ !z#x(v<u8u<uGu_qlksfs_\0ׁ&' }||wuww}xiYH61Z '.0LفIFBA=:870:72.$($2!:Ijogjjstqq y {~dK$  ~wpa`fcVTQHOGB9)%%334BT[jprw!z$~##(|..-##!&.0<BFLL*F&C%F%K%J(P(T%T(W%\#Z%U!YW TOTWWRMJKF H7 ,*%'"  %'#(127<9<;946121/--/,*%  {ywoom`[y~yy|~    %,179>AHKTUT~MyCy@w@t1q,m%o l jhb]gj#l,g%j*h*h1c,`'^,[(TNOV"X1V7T6T<S7Q6SAO>NAJALENETMTPNKIKSTQUSWVYVaOYO\QcQdNaGWI^G_E^G_LdJdLhGfGcDdGfGiJmNiTiYdYiYnXmVpYpYwYuSxOsNuJrLpGm?n:d5_3_3d0c0d.f'^,i0r0n.i0h5h6k6h=s@G|DE@:=BB@@EGNL?@GDEIJNOYYVQSSQNIE?BDIOOLNLNILLIJQSQTSSOQOLJII E DEB@@=;6300.'&'&&&""!               !+.,036;=BEEJJNLNIEB;:50,+))&&       !$)'1:=BGLQT]SQQGG?;8;:=:1835;1:8;=8??EV[]bejjhoolrqloj|ez`zcw^u`u^fYdSc[a[aY^[\VZXYVUXTTFSAJ9D6;95@1A1<,@)<&A'669@ CFORPH H J RTWUWZUWZZ cdiimkpif k i dda_WUTOMKHJPWdsrw|||z|}zxxrmk}m}p|mwm|d}dzczaw\u^rcscp\rWmUmRhR_PaO^PUUUTPUPUORMTKPHOEO;M;O9O1T#U"Z#c-d2f7dAfEiRnWwfipz}|zxuwrd_^aa^\YYUUZ\Y^Z\ZYPJHJAJECEC<>7741/,'922-(E@1((114274;77221/*"   {ysog`d`]UQQDB<57=732-)&##聹&).=:2-)$!    !&$&'+0.3505.3.5,3)3+<)I$L"Q[!d"b"["U$S'N0I1L0S1Z0_6g3_5[6`3S3N6N6Z;_:U;DBALBSI[V[[Y_V`S`OdQdTbVeQqSvVn]jYgXe```]l_wi   +**-*2%,#,#1,;FH@!@!<#;&<#<&@(FT_aks}zZA6*7CRTw2rWmijnjsg}gc^VQNJJGGD@@=30,,+,+,++13;\@MDHJ*L+Q&V&[ clorvvtr{~|w2Mp@o<m;h9m7j4m/h a\YV R VYafffOJHE9;8/$  ,.69>EG@@8%'$$/4/3,*  $'4>@;==CCGGGEHMT\ah\YWRLHEBB` jrrohYQOamtw|t yz| |    ypha`^TMGE;;961/**  "%",%1)4'7)7*2*9/H9J@PJ^R_V^[\`^f^j\jR^RcOcOpMp聛}wwwswsrsrs|_WPMJHJFCC@9 6 64 4 7 621, *(* *,*'%#%(*,-/1#,4(2'7*:,7*D%F"M M#N"]#s"u#v%}#%((%      }upqkpnalqpii k i f fX]]_adg_XPS I M RS W NM :4 0&   "  #%%-/1127277>CJRW^c_ "  }~  偩"& ~y&+=;@GBG5?|6k8y?~=LOJLOSYmohz^wcrqhyh|rwze~lrz~zwwtmkmtuyzztpr~|wyyrroruokjhjhca``\[[Y[[VQMMJ LQOMJJEEB@>CCGGB@94,.48;>>@ C CBC C*B7=76//,),1 42;<@:HCLIJNHNEHHSLPMWJbBg=_9N6H.N)M"--(&/4 2$7"9<7:DA"C"N%W%b)i)svn uu{%{''" %'/1/$""))%'%"""       }zqnvvzsnb]ilpxxsqvv}sxxqpkglpgdaSSP952/?>A5(!?DA52*&+&//7:H9+#5>054?>C>77A}C{7zDvCx?v0u9s4qCp?n9k?i5i>g<g5d7a/_2X-\#]%_#a(d&abffgg#igg n uvv nnpkinnsxxsx}vnqpssxusx{}}{}|{~~wovmjoy~vOD?;BI]hmgmlecVNG;)$$!&)      |xp}wrmmsYTMOJC>;@;6;CJWZUZZcfmiffc\dd\MP^RPOT\^_aca^h\fnu|}ur}}xrrxurinsum}}{zzxzx{nnklliknsvpnliigkidda]]\WUMNR_gf_b]\]]WZW)M$MK$D"D)N,U6N6K5F5H8M8K=CB?JALIBKGP?SDS@X=XBWEXGWNPNUSRYPYIQDVITM[HeFb?b<Y:Q9T2S0V2e0j/j0m5w2{0w/r+t0{/04504200*&(&%#~v hY^qrmqge{w|v{    ~wywvrq{~~|{{{|y|{ww{{tqomc]YVSQXSQJJND=;I?;313+'"$0.'"  xx}umhcc^WZUPUTKE;9%(   %9C>JUTY\Y^ahxrxz|~y|{wyvvrqljbe eb^][ [ Y SXY[YXY![!Y$V)Q)SN3Q6N?L?E3?5@+E'D$B$D';.8+8135580=,;,3+1)+..10155::=::=;B??DEGEGIGIILNJ}NrLnNhNdNWS2V(Y(Y]^]^] ^ elvvmtvoo{|{~~~vPQ[SAAKGKDB=57BKVULKLFFA75-(+)  &)(-$#       tworf!ea \a`V!V#Y&[#`%a(Y%V%R*M-Q-Y/^-T/R0R4^7c:k>k:f<aC^?Y:^5^2M9L7R9T:O<Q:C<BC;A9>;:89;9451<$<2'0./*0'0$/%-"0+(&!!# %%(*//+-5 479: :?IKI FD CC>:?ADD?C:9<>?CIKUSWWZZZWWUPMPNPNMKFC757542440/-**((%(&+**2/--+//459{9n>d<_9f9a5b/s-u/k+n-k0]0X/]+d+b&k%k&b%a&X&U(S%I&D%?%C#?#+ 0>0 %   %*       ##& #%&((+(*-/259v:w:{>wAwAtFwFjHvKvN|P|RUZ{a{finssvx} FMNzfskp}ia]]q\xUzSRPNMHHIMS\\WXX{Z]_bb_bdiknnidnvxvl{k}a}Z\UUlquxx{}'339BLC=>866;4*""GQ Yr  !!~|%/448=EGMQ[^aejkkrwz~~|ywrmkfjf`[\WRJV^`\f`YYLMG>B>;8;@@3'$$%3*14/*6,/$ $ zxWP& +CIPSbbgv{ xU?*!&+.5 2:397>7*:(8!:877522- .03.03388:<88<?A?BFGFFFIIFGGLQQIKIFFBB??Fjqosnq{qtn{jwlqoolgn`s]vSyYy`{]{V{OxN{E}I}B=630.1)!0$05:@50&""$  {}}xxyv,j;_=]DXEQDN:L8L0LLKIIKUSXXXVX]]n_h]^_WbU`ObEb,ed_]'X1[<VKQOKcAs=m<a=aARFKI>Q,Q%S U"Uggjvvlld_UQNKL LKIIKGFFBDDFGGIIGILQPSZX}ZxVqSSV(V XX[_`b__bb`u[w__[VZVXzbOo1{1{.4JJCG.~)}$x'y y{~~~  ~}{txyxyvvtoovvy{yyvvy{~}xsZH<<&(%(/FNazulb/  #',,12/129;@HJKKKOY^_^cc fnnkk m n#psx|!%(%/*-5H:7<HbPKdpu1TYp\Gw'id$a"U@JQ;=49">GG \ fwofRO@>*8M|  wf"ck#j""~%'',-267669;9;97996962/-*'""' ,- 2677<CCFEEEFHJMHEECCFFJOWYZ_kwzxunm)k2k5n-pu z|#=LUF7&IPSXSS20Sy#//<FJH|spif_YW|MaCRAJ<H769EKhMsTRFC<p6i4m4_*('(z*s(c(Y(\'\%T#^%m#pm__iuu  %(2212449>;2-4@FKPRRPOJA<9667<946;<EHC<!<)7&4)'!  &@QVLL3",13(Xbv {hjy{ ~|h,^1B6371<=@6A8A@EL@T7S6Y1`6^9YA]<v<9;94-*-122-/44<F`MORQW[Z[aycffkkhca Z?OFPMWIZPZWW{URH;2,/,_'K A(+9H%N*d,z*(('#" zpdZIF\ds}  "*-*(         3 88 =B=.,$$  "%1>C;B=HJOVLH>83%"399>GQQ\kkrwae^OVTahjry|~ &8##22(0V]jtn_]:5  ytx3-y)x$q(Ze#l&s.v-=F?DSlxyxPTTC}C67-{/y,vv qnlgd`_[Z[_]ZVVUQPIyISSUX]`eji j nll,g/b%_']"X UFGFB=727=ADDBBDLSS#Q*S,Q1V-V2Z;]7]C_E_Od\eYeOiTiMjMjTnPt_xaxkvnsne]XSKFB=<=BAp<_<\3P3;5,3"))--))(&)+&) -.-.;!r!}$## ZM9C_ hc / '   >*  ,F^ssP@99O^kkhnrfT@Rc}s\72>@4( (-Kkh_hfZK7*" ',1A9'%(CHZ^ccinssxzuz}}}s'1w 90405/5}DzIuDr/rsuxzxmuJkiknsw}phknzifppisځ 6RZ_daaix;mv{bY5JOD33z$w"pkfimnnrppzmpm>m-m(i'h*i1i;fHhUi^aZ^iYsO}K|JsCmA_>Z1F'@#1"2";'E#C EA 2"" %**-//-/2CKKMOTUZ\acddfiimnnr} ځ%wJohlkj\jke|`rXTxS|OkOxI@33}3s1},z'd'1),&',+,138858813::=::=?DsEsG}I{GvGsNyNqDjBeB]EXJXJ`L_LNJBSD`S]Z`[bZcgeexgxjjol{rqoqtt}qqtsvyv~wvrtwwy9с7::9755542+032=2L5B5:9=4[4b5^7e9m:m:^<Y<LA=DEAGCVFbHcHVIVKIHDC>722/-*&#!      {g]QGENSB) }|hfWRK<CC>KJ>MH4TTFA>H@<7"eSKKB.!)( .NZn %2 C#F&^0f4p5x479~ׁ/Ku}z   *YxWuJlRgBffbffklzpi]jjb1 =X|][qr{vmjjbXVLOr][LEB3' "b~ف(KbnqesuslkdkZnUnKkAk7i=kNiGiLg8b(dkpsx{}$) ؁  8=E9BJMHQRYYc`aOQajmopuecm~wtv~~{{~||{yyvvttrqoqoqqmlmmjhlmhghjhb```][]]XX]bb`^]XXSNNLJpLjNmNcSaQWLYL9J1L,O.X9X3O"J)IJNOV[]^`ccghljlmorqoooqqrrwwy{{|~ 8Q`YupgfZR+~~& 5>C_]buuklfWPdldI724?ZfD7## %#-#5_lu ' *   wvqeY?!   1JYgqrkhfdc"_ \.^8\;UWPTRaRjOoHoFjKMMMKEO'KFE$>H9H9M<R;c4T1[-Y,H-/1,24464/1%47>CKOOKORUWWUWY\{hxspuzwusussr|rxrwhsjrYpVp[p^n`mkkekmhudpdhfed`hadWfOf6d,h h,kpwwz|zkfk GR}^}`|f}k|rvsI<>DazF7 #Xvxtqol1dI[TPjL|FB=873(!b:   !! &!#+.)-+$ !#(($$(-00-+-.23:=??<78ADIKKQUUPQUZ`jqxx؁,@;BHfjky#     uz}xwun nic \ \d$h?kDkKhLfF_SYXUUU[JbHXES@=@)>:;?<G9I9B7F7K(N'I#)"=#PLGA37LNF 55<83 ) #  rpeWQL=4*/  "%*(*--24441279;<<}Au<d9d9Z;]>R>I<H@D>>E4H4F>J9H0O+O0UTZ\ahrw  -+29?>C:|CxN|N|WzPwXp]nfnlpinnknkbighnfdfdfhimkkkkimswz|||xx|}nlRUNXapxԁ 9LW[V9.1)4=B=EQrwwhyw|):S|t~tsi{v}s}qogeUF=B(-&))0DDPQFL:8$& $$(++5:INU[t/*9197@@HZ@>A\w~|{wvqlhb`^YYVQN}LKE;D#EEINQVVOLNLGGEEDEIJJQSQsOqLsLiJlJbGIBF?8?:;=;:8686.,))&""!!y`*s&W+K,M3a8}===?@BDIL L>JYNmQtQkSkS|TTXVXY]^bbcggb^~]t]h[j[^^WYJ[;X[`"bbcb^^`chg`YXVX[XTSQQS{Y^]^emvvwvqv{{qvnquekbdeXhSjFlDg:gFeN]ZSMJ#IJQV^YVYYXONIQVXVX]`^wXjYX[Q[J[=^"ej lq{5| 83J[&& ~ohh{~mjq| 50+IPipnflkzqz܁,?Nv~vqlJ;Lv{%(eJ6[[LN^{c{m{wgglo~+#%+|2{>y>wCwS{UFSWbx~{|yy{|{.wBt@r.q,rBvWtwz{r|\~Yp0803ALK`iv'>RAZ{|ywtrqolljhh]][YTSSOOLJIGIGLONLJDB??:?BE?@EB?:630,''""!!m"U!F !!',366;;yB`@[;`5t"eVB2!)+.',+a\\`"W&V$QO>$&&* ng$g.u5u56p;sBi=i:b=b;]+N+H6D;46:07003!0*,2$/!#" "$'$&+010,~.r3w5;@@;3j3b1]'j'X0T.O+S)O)=,0.6030"."01"8 DEG OSTVY[ Y[]]^blqqwrknmh_mh>2 v{qniXQA--&+<=IUbQFNLU`I=. + 0 :=..PQ]dgbZ  *1@ M kr|ku}ur7 75 97 FB sF L SL HP 9S 0V RV 4X b j o n l o 5q Mn q n g ] *U cQ N P X m] Vb Qe ;n jq s |v t v v q l e ` Qb Sl n s :v 8x x v q o l n o j j 1l Aj ae ai e i g e e g e e ` Z N mL MI 1G /I wI P P S ] O[ mV hU X y] ] _ ~b b ` _ ] Z U [ [ *X >U >Q 0P P #K -I KD AD aB k? _7 \3 ?7 b< n8 {< = < < 8 : : : 8 3 ( $       F&{yh]5X{E:'aPKMC6/ h'Tm6T"~zujfcccfjoyVjfya{YTT]TSQ2LLLRRVVTLHHHGGM[MiJvEvCg>`=-94884L.D.:*7)%  ",u,./Q/'114431*,*'E)W$WkoY;.$  snd bW<       >A\D7    CWsgf\_C|ovCH?{e0low+la0#%9]pSD% 4DHvA *?KxxuXvDzAz7v!sqnpsqxqvmuvqcn^khi{g{d_]ZWWPKFA?o:o7Q2:459?:;904$042/025u:\>T>@C9H#K#MNS WXRN I?9,9H5K4K0 42-%# %0T( &-* #!!"    $ 0'=B@O Q`bo v{ecYJJO81$ }ifWTaRrs^FH9* nql`{}{dLI:-( C>RR*J' {u{u}}lpgpniZf]inpbdZ_b\_XMRD970%! ><Wiqxi!!! ! !&&! !%&,&&( (((+/ //2579959:?DIKNSU]_afiifnlfBdRZkF|C>|CC?<:4245:<: <09D7e:b:g<LAAFiN\bdfnpssz{zpkfb\RnIQD:H8F2I HHKMSZ_XPWZ]_ddfgdfklnlkgnl nqnnknppqv}z} -}YMLO\oycaL6 )aI_l~{ ,*N8#8bnq`Z0-75$ "$"r)8.8.B49=C968=@8L'^4a\ar[[.YFG3'$   "/" pc^$E$('().#694B`hj;oopruy||^||~N  1+3+V`YrqbE=D6'   dwuuw|q_[ytN=GALyDu7turtuu~|u`wB|4yqE)f%aytc=A>9NCX_<wwmeGG'+D[qeo -    - 5 < : a              W u           a )  % # $ ( + + 0 3 p7 |8 7 3 3 . + - ++ G( `$ o q          & $   ^          n ^ i C ) 0 : : ,< B G K K G 1= h? N OU *X "Z -Z ZV P L I I L P K L TN Q U X Z [ ` b e i g e _ g =e Id V] S_ `Z y_ q] _ b ~d _ U S K B Z7 5'ہ;axxWA"1A^s|wx$$&,?@ehyuouuwt!o5h#h4a2^#\#T5JkJvOsJRvTVn\Zf]mzjROOLEHG@;9831//386 "/Lce[ e W^ k~ ~M9/," }gPUkN9%  wbD13}uZkUO-,Hp}!gN+eg      |imK2<WE4""  '%%),*'' %%q%i'g,d/P3Z1I3F4B8S8Z4Z6d6s9e;DB<EZELCAE:H0M5O<M]HxECE>BJQR@TVQLLQTVYVWTYe[Q[G`Qc<eDcPcUagcjeef{affmpvtuy}zz|zwwJuMu^zH~#| 4@>*% %*;AOAR9%'pɃpppppgpppEpppppppgppQprh ])E{hVB5a>TE'*,,et уY_ DI:O4r:[:+l$qJڃ4RpYrGhpN-55A(؃ (B(S({(((('(W(c(p(+(/+e4/e4B7:B7?:A?FAIFpMIMNpM SCSMNU SXU\X|_\Ya|_6dYa$g6dpσpppppipppOppp9ppppppplpppJppp$ppp pxppYppp:ppp у= u      [       C p $Ճ[/C16kAN7Jp{X!_J #Dvz僚JJ@ 8mw,`ay9SU7 A dv9dm {]frA2n-(uS%PuS%PPuPPP,PPPP?PPPMPh~σhQh X҃VO TQQG#J4I$IhJ҃I$O2S5S:O<VAXFOIOKNIGKELBK?K=L:X6]8`6g?{I~SV]]hoyrje]Vh уhhJ :Ӄ< h bԃbijqqy{y|yyxuswqrlpirgwgugrimiaeTiMgCg@e>g6g,i)g _]`b`[ZVUXZ]_`begjlq~~zxsqnfb_XPNKACAFHAFNRNPIIHK F MKP P%S*P-W/U;X<U;N9H9?;9<9@:C4@-@+F+F%KPTZZ_ dipuxz$bԃZ`hԃbhJ҃hhuh hvuӃhugՃhgՃi^tgՃgtsӃtttittt0t :Ӄ 9 < 9 : > ? > 5 7 4 452/0/4!AKUXZbkln$uvu 0Ӄ 4 C D C K I I D 5 2 5 4 4 / 2 / 9 > C C# D( D, H6 D; D> HC DK NT RZ ad lk gw Ww S} S N N K F ? ? : := gՃtg^׃$]`׃^^׃I]׃]^׃]]׃ !.0::ABQ&؃%^&؃t&B׃tj dփo \ U   H BB&؃u!t׃t(tttXt B׃BIB?  p n n r m )n ,u .w 1r 3p 9m ;i @a @^ B\ R^ WY aU oW |P O P T U W U O J F > < ; < E F E > > 7 6 7 < 9 > > ; 6 4 / , / 4 6 9 9 9 > C E $C (; +; 29 79 <@ ?@ D9 D6 L2 N2 X, ]* `, b1 d1 l7 q9 ~; > 9 ; 9 > > A @ C @ < < ; ; < > @ > A E C @ @ ; 9 ; 6 6 / - * ( ' ( ' % GڃFI GDD#8'8*72590A2H0T3U0\--)+)+#  !$SڃSK:)-AGGIUڃU^PڃPNLILAADIGKKNNLQSPGIFFKKDDSڃ   "%149;9{9x>yBvHvLyOxTy^qfqmgtez]~]_VZZPڃڃa+.056?@It ۃI K K MMPWZ_bdiksuvzB ۃt % ۃ  B % ۃ#    "  " ( * / 1 6 9 @ C C \ۃ d d f d d a a f d c d h h n p s s w s s x& s. w0 p7 n< hA kF fI dL aP dS ^X Yb Ze Yj Yt Ry K} H C C  b^܃[Y(Q-L3@38?$BQSZ_gl{;;@@E܃yqmlgbcjlh`]`]^I܃NONOJJTejlywmj.q/t/1189=>GOVht2܃/1/-*0MRX_dln{݃݃%q0݃r/r(v&w#|!|{v!t y~   (+4597009CFIUZaiqqjseNLGID@BEIL݃_]ZPKHA<7/(#  ݃{qpllv{p{l{g_F?:50{+v+r/o0h0c*`+`/]/]*Y(S+J&I#JONJ@B݃= ? B G IGD@=5330+)'܃                                         ܃                            | u r n h i m m i f d d ^ _ {\ {Z Y W Y |W wT yR R M K |J vE vJ lJ jA q9 m4 t2 q4 e1 e, g, m( o' j( e- b, ]" c b [ ` [ ^ ` c g g ^ ^ b g j m m e h m o m j j ` ` g b b܃ ] ^ e e g j j j e b l m h c c g o r q l r r o l j h h m v v t t | ~ v v v o l e c e m o r r m l c e l l} by `s Yn Ys To Qj Oi Xe N[ J] B[ @X BX IV JQ @L @F DD BD ?G =F ;A ;< @: @8 ?7 35 30 8) 5# ;! : 5 3                 QރQMHMe߃JFA94220+&(&#!  |yrpmfc\VMLLCBGG@9=44.,)%'  ߃  # yvoebXSGF A%=&5&(*27<AHCDID߃߃yrjge^[Y}VqTlS`OVLQB݃BITSOQQ.O/S4NONL&JLLPLLNLNE@835 3 .!          { v q o g b [ X U K B < 8 3 . + (      ܃  ރ    ރ  ݃  v p x ݃                  ރ # - . 7 I L Q [ ` o v                         H   ( %                             f}xwwsuppmimzhxcsZiPdEb@_7a4d1d-b,]%X#WSRMFC >957 5 2/05:>5+%  ߃   } y v q {   } x x k c Y T K C C < 6 / "                   % ' , * 4 2 4 4 9 @ A E E J H K O O M O M O U _ c f ߃               W Y W Y c h r p 9 QNLIMGGGa]Kigfe]cW^M^CT>Q9L9I5E4B5=&1-$!    urpkhifa\ZMF72,# PZZ_ fkli&i)s3u8v6{:z?x=u=qEpNqYs^v[x`z]}e{lrv{}xxxxzxuspqqnnif_]hhhfc[[WTRMLEB441/*'"mL"EL4;cpHmLkhhhhkkjkkh.,$jj^\#R#O)H0E787Yネ[V~[nV]`U[I\DV5Q2T)T#WVW RQTW Y [ ^`ea`cンcVNIB<732-&<IFNVU_䃖{j id [XSSNI:0-$fvsqf⃌lul?kf]\ZZWSPMICCA:95'$ &2<728 ~888 8888&8(8/8485848585828/8-8(~8(w8!o8m8c8`8a8f8j8m8z888888~8 y8 ~8 y8 k8a8V8B838$8 888 88777777777{7 l7 d7 \7 W7R7R7K7H7C7>77757972777!7#6%6+6-6D6P6W6Z6]6i6n6x6{666666666666|6h6B6B6I6X6w666666|6v6r6h6O6O6"B6@6;6?636$6665555$6, 636H6M6V6c6j6f6j6m66555555555~5t5M5J5G5B5B5H5G5B5B595=5956w56s5>p5Bw5H}5L5Q}5W5\5[5\5`5\5[5[5^5|55555555555555555555555555555 5 55552575:5B5D5I5L5L5F5=5<585)5#5555!5555 5555555555|5w5}5z5p5k5f5Y5T5J5A59515*5*5'5%5%5#555~5w5w5m5h 5f 5f5j5o5k 5a5W5V5V5[5[5`5a 5`5^4W4W4c4r4r4u4y4~44~4|4|44444444~4y4y4z4|444|4|444444444444444444444 4 4444 4 {4x4v4t4q4 x4 x4 t4o4l4i4e4e4g4#g4#b4$`4$]4+b4.b42`45Z48X48d43j48n4?q4Bl4Gl4Kj4S_4QV4NS4PN4LK4LF4SD4ZG4ZI4ZK4XL4ZN4dK4jB4i=4j<4n<4o34s34t24y.4x+4t+4s)4s$4x4t4o!4n!4o4n4q4n 4q4n3t3y3y3}333333333333333\3Q3H3@3;313333222222222{2p2F2A22{2s1n1l1g1g1b1b1`1_1`1]1]t1]o1`h1`^1bY1dO1eJ1dD1`=1`61V1S1L 1I1F0A0=08020+0(0#0!00x0u0n0i0a0_0W0T0T0P0K0E0>0<0;09010-0*0 0000000000////////////////////////y/g/b/_/U/Q/P/P/F/:/5/3/#////..................................|.r.r.k.c.|c.ye.ua.t`.r[.pY.oM.hC.a>.\B.[@.[;.W*.V).R,.O*.R".O.O.Q.V.V.Q.M .J .J.H.G.E.E.J.M-M-E-E-J-H-H-L-M-Q-O-Q-R-T-R-M-M-J-M-M-Q-R-R-M-L-O-R-Q-M-L-Q-Q-R{-Vv-W-Y-[-\z-^v-^u-Yu-Wq-^_-aP-hN-jI-oI-u?-|:-0---#----,,,,,,,,,,,,,,,,-----&-(-/-2-0---+---/-&(-8(-=&-B&-I--I0-G0-A+-:--32-34-54-A0-B2-A5-B7-F7-L2-X4-]2-`4-e0-i4-o7-{4-5-/-&----,,,, ,,,2,9,C,Y,d,z,,,,,,,,,,,,,,,,,!,$,),0,B,V,e{,tv,e,],D,@,?,3,3,:,=,?,=,?,?,@,D,B,D,E,G,I,I,G,I,J,N,O,T,X,V,X,[,Y,[,Y,[,],^,`,b,c,c,e,g,j,l,o,q,v,t,y,w,y,w,r,g,[,[,V,V,S,T,S,Q,O,O,L,L,N, T,V,X,^,b,l,l,o,l,l,h,j,l,r,y,{,y,|,~,,,,,,,,,,,,,,,,,,,,,,,,%v,-t,9g,Ce,Hg,P`,Rc,W],bT,pI,}I,G,L,J,O,O,T,V,],^,m,q,q,q,o,t,v,o,"h,1e,4j,8j,;m,Bo,Ht,Mt,Tw,j~,z,|,~,~,,~,|,w,W,Q,J,L,L,E,B,@,9,8,8,=,>,=,9,;,J,T,W,[,\,^,j,k,j,h,j,m,o,y,~,,,,,,,,,,,--- -----&-*-/-5-9-<->-D-_-a-f-l-q-{----------------------------. .....)...6.9.=.C.G.J.O.T.\.c.f.k.m.k.o.#r.$u..y.2.7.3.8.7.2.3...+.-.3.2.7.7.:.=.<.B/P&/S2/_G/q_/o/t/v/y/{/}/~////~//////////////////////////////(/F/O/R/U/W/^/a/d/d/a/c/i/h/d/f/n/r/r/u/w/w/s/x/w/u/w/u/x/z/}////000000000 0 0 0 00 0 0000|0}00|0}0z0w0s0u0s 0p 0h0d%0_'0^*0Z,0T*0K40A40<;09<07@01A0-E0'F0F0H0Y0 U0 H0*H04F0AH0KK0HO0JO0JR0TH0^H0_K0_P0\P0WP0TT0TU0ZU0WZ0O^0R_0^^0__0^d0da0pk0pf0i^0mZ0pY0xT0zO0E0E0H0H0M0K0H0F0A090>0<0H0M0J0A0A0C0C0M0P0M0T0P0M0H0F0J0H0M0J0O0P0W0\0\0Y0^0a0c0f0h0h0n0p0s0r0n0m0m0m0m0p0z0000000000000000000000000000000000000000000000000000000000000000000000000000000000 0 00000000000000000000 0000 0 0 00000000000000000'0'0&0"0!0"0!000000000000!0"0$0&0$0+0+0.0,0.00030505060;0?0@0G0E0G0I0L0O0T0T0O0Q0Q0L0J0S1V1V1Q1Q 1T 1V1`1c 1g1j 1o1q1q1l1l1j1g1g1e1]1[1T1Q1L1N1V1]!1[$1]&1['1X&1S&1N$1L'1L+1J,1J.1T.1T01S51V51X:1b61h=1q=1rD1{E1|D1?151315181:1;1=1?1?1:1:1E1D1I1L1G1J1L1L1I1~L1yJ1vN1rL1qL1tQ1rS1vX1wX1{T1V1X1]1`1e1l1m1o1o1h1c1e1h1j1|g1yj1{o1ro1qq1qr1vt1ww1y1{1{|1|~1111~1~1111111111111111111111111111111111111w1o1l1e1c1b1^1]1[1X1T1Q1N1O1N2I2G 2B2B2@2?2=2525 232. 2!22 2 111 12222111122 2 2 2 222222!2#222 2222"2'2&2!2#2%2"#2!*2!+2"-2.(2.+2)/2./26*28%2:&2;02;72::2;>2;C2:F25I25U21b2.g20k2)l2)p2)q2$u2s2u2q2s2u2v2x2z2{2,z2.}2323202)2'2'2,2.2)2!2!2!222222222222222222222222 2 2222"2&2,2.2.212525232,212626282:2;2@2@2;2;26282=2=2=2@2B2D2E2L2O2S2O2S2Q2S2X2V2Y2^2`2e2j2q2t2y2y2~2~222222222222222222222222222222222222222 2 2 22 2 22 2233 3 3 32333!3#3&3&3!333333"3%33$3 3%3*3+ 3+*3*,3*/30.37.3>*3?,3>63:83<=34E3:E3FL3AM39M32T30m34|37323032373:3537353-3(3(3*3-373>3?3C3?3?3>3>3?3C3I3N3U3W3Z3Z3]3a3k3k3n3n3u3u3q3p3u3v3x3x3z3{3}3333333}3z3z3333333333|3w3z33~33333333333333333333333333333333333333333}3}3333333333}3{3x3p3i4f 4i4g4f4d4b4d4f4d4a4a(4X&4Z)4_-4\04\24_74a74b?4fA4fF4dI4fN4bP4aN4_L4]G4\F4XG4SN4SS4XX4X[4S_4Ub4Ng4Me4Ki4Fi4Ae4>i4?j4Fl4Kn4Mq4Kv4Fy4D4A4H4N4P4N4M4H4D4A4?4<4<474242444542494>4F4K5N5M5M5I 5C5<49454/525455 57 59595<5:5<5D"5C"5>5957555254%52%5/ 5#5# 5 5"5!'565!<5%<5*@50A55@5565925:25D;5FA5NH5SW5SY5RY5NO5KM5IO5KT5FU5AY5:Y50a50i52i57d5:k5:n57r55u5-|5(z5(5%5#x5r5m5k5m5i5i5k5h5 d5c5Z5\5\5Y5U5T5T5O5O5P5R5U5U5\5a5^5\5Y5W5U5U5T5M5O5R5T5W5U5O5O5M5J5F5F5@5A5C5E5C5@5>5>5>56565952515/5-5-5,5*5'5#5#5"5 55555555555555555555#5%5%5"55 55555w5t5h5]4]4Y4S4J4E4D4?4=464&4444 5 555'54565;5>5J5T5Z5^5f5d5f5n5z5|5555555555555555555|5w6w 6s6s"6s)6n06m86i;6h@6iE6hI6fO6_Q6\V6Y]6O[6A`66j64q66y6%6%6666666"6#6*6*6/6/767J 7_7h7r7s 7|&7*7-7/70747<7:7<7?7D7A7H7M7P7 X7 \7W7W7U7W7U7"U7?I7NI7YH7gK7wN7~M7I7C7A7H7I7I7K7K7N7R7W7W7W7Z7X7]7Z7]7W7W7X7R7P7R7N7a7d7g7k7l7p7q7p7v7s7p7i7 g7l7x7{7u7d7\7X7\7Z7X7W7U7U7W7R7P7P7#U74Z75b79\7Hb7Nk7Nl7Hn7An7>p7Aq7Fq7Cx7F{7I}7K}7Kx7Ps7Ss7_u7dx7gx7l{7v{7777777777777777777777777777777{7u7n7]7X7R7R7S7S7M7P7N7H7<7<7:757*7*7(7&7&7!777888878888888888888888 8 8~8|"8r"8b*8X38V68X88V98X;8YE8]H8^J8`M8bO8gR8mT8mW8j[8j^8je8mj8qm8wp8wt8vu8rw8mz8c|8c8b8[~8V8S8O8Q8L8J8;86868383808'8'8)8'8$888 8 8 8888888888888888888888}8s8f8f8i8f8f8i9h9a9\8U8J9<97 94 9'9999 999 9 99 9 999#9$9(9)9)9&9$9#9$929=9K9U9{[9x`9ve9xj9q9}s9ts9ox9jy9l}9j9i9l9j9s9t9o9g9`9_9]9X9V9U9S9I9B9F9I9N9L9I9?9<9:9:9<9?9?9?9<9:97939.9)9(9&9!9!9#9&9(9+9-:) :$: : :::::::::: :%:(:*:':#::::::::::::: :#:(:2:6:7:7:4:6:;:A:H:J:F:H:E:K:O:P:P:T:P:T:P:P:T:Y:^:c:f:d:a:a:c:_:y_:uc:pc:Wm:Ti:Ln:Hm:Gr:Es:Bn:@m:Bx:8x:1s:;:@:9:.:':):1:C:G:J:V:Y:Y:Q:M:C:>:3:1:,:,:%:%:1:3:4:8:>:E:H:G:B:=:>:B:C:=:9:4:9:8:3:,:):):1:3:/:*:": : : : :::::::::::::::::::::;;;;;$;);3;6;:;?;D;G;L;L;O;T;u`;ng;_q;]w;Z{;W;S;S;P;I;A;<;5;/;+;(;%;#;;;; ;;;;;;;;;;;;;;;;;;;;;w;h;c;^;];];[;X;X;T;L;G;=;?;@;=;0;+;";;;$;;;;;<;;<<;;;;;;;n;d;_;E;9;/;;;;;;;;;;;;;;;;;;;;;;;;;;{;x;o;e;b;[;U;Q;P;N;G;B~;=t;8r;P::M:>@:<6:?/:<(:> :<:::<::99929494979792909-9+9-9092909+9 9q9g9_9[9[9]9V9U9L9K9G9F9<98929.9)9999!9&9.9295979293979792929-9)9&9&9999999 999888888888888888888888 8888888888€xsrwxxuu}}zxzCD D DDDDDCCDDDD D DDDDDD DDCCCCCC D DD D D D D D D DDDDDDDD D DDD DDDCCCCCCCCCCCCCCCCCCCCCCCDDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CCCC C C}CxCtCvCsCqCvC!tC,yC+C.xC,oC)iC&iC'oC&nC&lC$lC"iC"gC!eC&eC$bCSCBC=CB9B-B4B6B9B1B,B(B/B1B/B/B,B*B(B*B'B"BBB#B'B'B|B#B#BBzBuBrBpBuBuBoBjB \BYB\BfBaBWBTBRBYBYBTBQBMBEB>B4B8B6B4B3B.B)BB BBBBB BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA{AvA{AA{AvAsAxAxuA{qAuAqAkA{iAlnAlkAokAsgAxiA}fAy\Av\AvWAqPAoPAi_AnNAlKAiKAeNAbWAbPA_NAbNAiHAbCAZNAZIA_DA`AA]AB>ADAAGAAKA2A$BCBJBOBEBJBRBYBYBmBrBBB BBBBBBBBBBBBB#B#B$B(B+B-B-B0B3B2B3B7B:B?BDBGBGBIB[BoBvBxB{B}BBB~B}BxBsBtBBBBBBBBBBBBBBBBBBBBBBBBBBBBCBBBBBCCCCC!C$C+CDC8C+CCC CCBBBBBBBBBBBBBBBBBB B"B1B/B%B#BB"C%B'B"CCBBBC CCC)CACKCXCVC[C`CdCgCnCqC`CZCZCvC{CyC}CCCCCCCCCCCCCCCCCCCCCCCCCCC}CvCtCtCyCCyC{C~C yCnC[CIC DEDKDODKDMDTDUDRD RD!OD!KDHD!FD%HD%MD+RD/OD+KD(JD(FD+FD7FDWD?YDCYDAUD>TD?MDNHDa@Dd@DfEDkHDpKDlEDg@Dp;D/D1D;D9D{>Du@DsADuCDzAD{HD}@DCDFDFDJDODUDWDMDJDFDFDKDED;D6D6D2D,D*D DDD D D DDDDDDDDDDDD D D"D"D#D%D'D(D'D'D%D#D%D'D#D'D#DDDDDDDD#D,D*D"D"DDDDDDDD"D"D%D%D D DDDDDDDDDDDD D D DDDDDD DDDCCCCCCCCCCCCCDD DD D D DDCCCCC CC$C)C*C%C)C,C)C,C/C.C4C3C6C4C3C4C8C4C1C/C1C/C.C,C.C.C*C)C'CC.C1C1C6C3C/C3C6C8C6C8C>CBCBCECOCVCcChC~CyCxCsCvCtCvCyCCCCCCCCCCCCCCCCCCC~CCwCwC~CCCrCkCfCeCjCfC\CWCRCRCRCVCVCaCcCeCfChCfCcCeCaC^CYCVCVCRCVCWC[CYCYCVCWCVCRCRCOCMCJCJCMCOCRCTCRCQCMCHCGCHDCDBD@DEDCDECCC@C>C=C=D8D4D/D/D3 D1 D4 D3D3D6D6 D8D9 D8D9D9D=D@D6D3D3 D1D/"D. D/D1D3D) D)'D"*D"'D 'D*D2D1D'D*D,D,D/D /D ,D /D 2D2D4D/D/D,D,D(D(D%D"DD D DDDD D(D-D(D*D1D6D7D6D7D9D9DCDJDJDHDHDPDMDEDCDFDFDCD@DAD@DAD@D@D@DFDODED@DEDJDFDADAD@D>D6D6D9DD>DEDJDMDRDPDODPDUDYDYD^D\D^DdDdDfDmDpDsDxD|D}|DvDuDvDzDzDvDsDsDsDuD}DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD}DxD{DvDuDsDqDbD_D]D_D]D\DXDNDPDRDRDXDWDUDRDRDMDMDIDHDFDIDIDDDDDMDMDFDCDAD?D5E+0E*1E(+E&1E&5E*3E(8E(=E&@E*BE*NE+SE4`E:bEE>E9E4E-E&EEEE EEEEEEEEEEEEEEEEE|E|EEEEE{EyEvE{EyEvEqEcEOENE)E'EEEEEEEEt9m9h9b9^9^9]9T9Q9O9Q9O9L9N9L9G9E9E9D9B9B9E9G9J9O9S9X9X9X9`9e9g9j9q9v9v9w9t9#8-8289878;8>8E8F8K8W8W8Z8Z8\8_8c8h8i8r88}8|8w8r8i8f8h8m8m8r8s8s8x8x8u8x88888888888888888888|8|8888888888888 88888888 8 8 88 88888999-9?9?9B9F9D9G9I9P9Q9X9X9Z9_9b9b9g9i9n9s9v9x9y9x9v9l9l9g9g9b9[9X9e9n9}9999999 9 9 99999999 9 9 999999999999999999999999}9}999999999999z9w9r9m9f9c9c9c9a9\9T9O9K9A9A9E9F9E9E9A9;969,9,9*9'9"9#9*9%9 9"9'9,9-96999;9<99979294999>9@9A9@9C9C9E9C9@9>9;9996929499999994979;9>9@9H9J9H9E9<9;949/9,9'999y9v9o9t9t9 o9 j9 j9 l9i9b9b9e9]9[9V9P9F9B9A9<929-9&9$9!99999 9 99999 999999999999 99%9%8888888%8>8E8{J8oM8gL8`M8XH8VE8SB8O98N68S18[38e.8l/8w/8|4888>855555555 5 5 5555555 5 55555555555555555555w5s5r5f5c5Y5T5W5W5 k5x555577%7*7/707474777?7S7g7g7n7x7777777777777777778888 8$8%8,81818;8>8B8O8Q8O8M8M8R8T8V8}V8}Y8\8t8|w8uw8py8n|8n8m8f8d8a8^8^8Z8Z8W8T8T8O8K8H8J8H8E8>86868*8#8888 88888888888899999!9$9)9.97989?9I9V9X9Z9`9d9i9q9t9v999999999999999y9s9n9l9j9j9e9`9_9]9_9]9_9]9`{9`t9_q9]i9Ug9Gg9?o9Bs9=q9:>:;:=:9:8:4:3:1:/:.:)|:": ::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::n:i:i:h:f:f:c:a:a:^:\:Y:U:>:4:1:'::::: : :: :: : ::::999 9 9 999999 9 9 99999999999999$9/9@9B9C9G9J9H9G9E9H}9J{9L{9Qx9Qt9Ov9Lv9Jt9Mq9Tl9^j9ag9`d9`b9cd9eb9j`9kb9o`9od9ti9wj9yi9wg9tg9rd9p`9wU9yG9|B9A9A9?9?9B9D9B9A9=9<9<939.9)9#9#99!9999999999888888888888888888888888888888888 88888 88z8w8u8t8t8 t8r8u8t8o8j8h8k8o8t8p8j8h8e8e8`8^8a8a8^8[8W8[8W8[8[8V8R8L8B888.8)8$888 8'8 '8/818;8;8986838.8/848686818'8$8888 8888 888887777777777777777777777777777788z8y7z7y7t7t7j7[7[7a7e7h7k7h7jv7fn7ha7eR7fN7fH7kA7m:7m27f*7e%7e 7o7;;;;;;;; <} <{<x<v<v<u<v<s;u;v;x;x;};z;{;{;};;;;;;;;;;;;;;[:V:Q:R:T:Q:O:J:G:C:B:@:=:;:8:9:8:4:6:9:;:;:9:9:;:;:=:>:;:=:>:C:E:H:L:J:M:Q:V:Y:[:[:~;;~;;~;y;w;w;u;r;r;o;j;m;k;j;f;h;f;e;k;k;h;f;h;j;m;o;u;y;y;z;y;~;~;ar;_v;Yy;Ww;Yt;Zr;Yq;Rq;Pr;Pw;Oy;O|;O;F;C;<;2;,; ;;w; q;e;b;^; ];];e;g;m;o;l;j;e;];T;O;I;G;B;=;:;6;+;);+;0;0;';$;$;;;;; ;;::::::::::::::::::::::::::::}:z:s:m:m:k:d:U:P:M:E:E:A:9:9:<:<:;:7:9:9:7:6:2:(:':%:(:":::::: : :::99999:: :::::%:%:(:,:1:6:F:J:J:Y:\:_:a:c:f:h:m:w:x:w:x:x:}:}::::::::::::::::: : : :::::::::::::::::::::::::::::; ;;;!;,;1;3;6;:;=;@;B;#?;2?;7:;>;;A:;E8;H3;K3;P0;T0;Y.;\0;^1;\6;\D;ZD;\J;YQ;PT;O];O`;Uc;Wc;Z`;\`;Zg;\j;Zm;\o;ao;ar;:::::;;;;;;;;!;&;.;1;8;?;E;G;J;J;N;Q;V;X;[;];e;e;l;t;;;;;;;;;;;|;z;z;};};s;r;p;p;k;_;\;Y;U;M;J;C;@;<;9;4;1;,;(;#; ; ;; ;#;%;';*;,;-;6;7;C;E;K;W;Z;^;f;k;};;;;;;|;y;o;[;E;:;+;';;;; ;;::::::::::::::::::: :: ::::::: : : ::::::::::::::::::: :n0A0A0F0H 0N0U/X/]/b/b/f/g/f/g/k/n/q/p/q/u/q/q/s/u/s/g/f/]/]/\/U/N/I/H/K/?/+/*/%/+/4/7/>/D/I/K/N/P/N/N/R/R/_/d/b/d/d/g/i/l/n/q/s/s/p/n/l/it/do/\q/Zo/Zq/Xq/Un/Wj/Ui/P`/SS/RL/SG/\I/_I/bD/aA/X8/\8/a=/f:/l0C0E0H0F0F0J0J0M0R0Z0\0Z0Z0^0a0c0d0u0u0s0p0r0p0s0w0u0w0w0u0p0h0d0a0_0\0U0T0W0U0T0R0M0O0H0H0F0A0>07010-0*0#0 000000"0#0#0%0'0'0*0(0'0"0"0%0'0(0(0#0#0'0H/H /F/H/D/D(/C+/HP/<Q/9P/>Q/?X/4e/-j/*o/!o/!x/ {/{/t/ v/t/t/t/x/{/x/t/o/o/o/n/o/l/j/l/g/`/]/[/V/P/N/N/P/Q/Q/P/N/L/B/ />/:/:/:/?.D/H/0000000000000000000000000000000000111 1 1111111111101101111111| 1y1y 1v 1t1o1j1e 1` 1^1`1c1`1[1Q"1O!1O1S1T1X1Y1X1Y1[ 1Y 1T 1Y1T0X0V0X0Y0[0X0V0T0X0b0g0h0h0l0o0v0y0{0~0{0{0~000000000000000000000000000000000000000000{0r0y0v0m0j0l0q0w0v0w0v0v0r0j0e0e0b0e0]0O0I0?03000.0)0"00000 000000 0 000000000000 0000$0+080?0E0L0L0I0D0?0?0B0B0E0D0J0N0O0S0Y0b0e0g0j0l0o0q0r0t0v0~00001111111"1,1.11131515101.131816181?1B1L1N1J1J1N1O1X1s[1mX1kS1iQ1iO1hO1dS1dL1aE1\B1TI1TO1WN1WS1T[1U]1R`1O`1M]1J]1J^1E]1CY1@[1<`14Y12]14b17e14g1,e1*g1(e1#c1 c1e1^1^1`1 c1 e1j1r1q1r1v1t1q1r1q1v1r1o1m1h1g1g1[1Y1X1V1X1[1Y1V1T1O1L1J1J1I1J1Q1O1N1N1L1sL1tJ1}I1~E1E1B1@1B1@1816161,1.1)1)1&1$111111 1 11100000011 111{1v1o1b1Q1=1.0-0-030<0=0A0B0F0G0L0P0V0_0b0b0b0b0L0I0K0K0Q0Q0V0V0Z0`0l0o0t0y|0x0w0s0s0u0u0u0s0s0s0p0m0m0m0s00000000z0u0n0k0Z0W0 W0P0K0F0 90 90>0>090404010/020407090907020-0(0(0#0000000000000000/0////////// / /////////////////////////////////////%/'/'/'/(/*/1/,/,/,//0609 0; 0>0A 0H 0P0T0U 0T#0U,0Y/0^/0_60a70f40h40h;0d;0f@0a>0^@0^E0ZF0aJ0cH0cJ0cK0aK0_O0_T0\U0\Y0YY0U\0R\0O_0Ka01d0'Z0#P0O0P0 W0*c0,h01m02u02040;0@0E0F0U0^0^0Z0Y0T0T0M0K0P0P0R0W0\0c0f0i0m0p000000|0r0u0w0}000000011 1 11111001//////////////////////////000000000000000000000u0f0c0d0c0^0\0\0^0d0h0i0u0x0|0|000000000000bw0Ys0Tp0Qr0Qu0Iw0Eu0@w03r0$u0!s0u0u0p0r0 n0 n0 m0f0c0Z0Y0T0R0O0K0K0H0C0<0/0,0,01060402020606070@0A0H0H0T0T0$W0'Y00^01a0Ji0Nh0Qi0Vk0Tm0[k0^m0cp0gr0gw0ex0bw0@A0;C0;F06E0.@0<020 /0-0*0*0"0 0000000000 0 0#0-0*0"000000 0000//////////////////////// ///0&00 06 0;0@ 0D 0D0J 0L#0G-0G40D40E70E;0D>0E@0@A0/////////~////////////0{/w0w0{0| 00000~0|0{0{0w0r0o0m0l0c0`0^0]0[0]0]0T0S 0Q 0O0S0N0O0N/N/J/G/?/8/6/3/0/0/./,/+/'/"/"//////!/+/0/3/5/D/O/^/e/j/o/{/|////////////...............///////...........................v.m.l.m.j.^.Y.V.S.T.N.L.L.?.:.;.0.+.+.,.).).&...... . . . ......|.u.r.j.f.f.c.c.f.f.a.a.^.^.^.`.e.e.a.a.^.[.Y.O.O.J.C.;.6.1.%.$.". .x.r .n .m.d-d-a-c-_-Y-U-R-T-P-R-P-J-E-A-A-F-K-R-Z-\-\-a-c-f-f-i-m-|-----... ......%.%.*...4.9.;.B.G.J.M.V.V.Y.[.Y.^.`.e.f.e.h.k.j.j.m.p.u.w.w.~. . . z. y.|..............!.'.1.5.3.5.:.=.B.B.G.G.D.E.D.E.B.@.?.?.=.:.:.8.6.5.5.1.1.8.;.?.?.B.E.E.J.N.L.S.V.Q.Q.Y.Y.^.^.c.j.m.m.v.t.wg6wc6zc6z`6[6]6`6b6e6l6r6w6|666666|6{6~6{6{6w6v6t6r6|q6wj6we6;;;;;;;&;(;*;+;0;<;F;H;N;P;R;Z;Z;W;H;C;A;<;/;;;;W%3Z"3b3i 3s2z2}22222223333 3 3 3333333"3'3*313336393=3>3B3B3B3G3L3J3O3Q3T3V3W3W3[3[3\3a3e3c3^3\3{[3u[3vT3uR3gH3gE3dB3_63S*3U'3W%3_3]2_2b2d2]2_2b2g2n2n2k2n2n2p2q22222222}2{2x2n2l2f 3a3_3ju5lk5lf5hc5h_5j^5rH5o@5q@5wH5{J5F5H5O5P5U5Z5_5\5\5Z5Z5c5f5h5h5d5h5f5h5r5r5s5p5u5z5|5x5u5n5k5h5h5h5k5n5~k5~i5{f5th5qk5tn5vm5wn5qu5qw5v|5v5q}5h}5jz5gw5ju5l =j%=g*=g1=b6=_6=[;=SJ=QR=NV=NY=F`=8c=2f=3j=2j=.m=0p=)r=(t=&y=#z=&z=&|=#=&=$=!=====~=t=#t=r=!o=o=!m=#c=!^=&^=)[=(V=+V=.M=2H=N4=U)=_=d=g=l ======================================y=w=u=r=o=m=k=j=k=p=t=t=u=z===== = = =>>>>>>>>#>$>)>0>0>3>5>8>:>?>F>F>G>N>S>e>q>n>i>g>j>n>s>s>v>v>n>j>i>g>d>b>Z>U>G>=><>8>8>3>.>(>$>$>>>>> > >>>>>======== = ===cb>`j>Ws>Rx>Qy>Q>R>Q>R>Q>R>Q>M>L>G>E>@>6>6>3>1>/>*>'>"> >>$>">%>*>*>,~>,x>.t>,o>1j>4d>;b>;_>@_>C]>GX>HX>JZ>QX>TZ>WX>\X>cb>>>>>>>>>>>>>>>>>>>>>>~>|>y>t>r>p>m>m>j>h?f>c>^>`>Y?M?L ?E ?= ?B?Q>T>Y>\>\>^>a>c>f>j>j>p>u>>>>>>>>>>>>>>>>>>>>>???'?(?-?4?7??;?9?7?6?1?/?*?*?'?%?"?"????????????? ?????t@q@o@l@e@b@Y@J@ I@B@0@.@.@1@.@.@)@!@@!@(@(@$@$@!@#@@@@@@@@@@@@@ !@ !@@ @@@!@'@+@+@,@3@8@8@5@?@B@D@I@I@L@N@N@Q@S@O@T@S@V@V@X@X@Y@[@`@^@`@`@b@c@c@e@g@l@o@m@r@r@v@t@y@w@y@{@~@@@@@@@@@@@@@@@@@@@@@~@z@|@|@z@w@w@u@u@r@o@o@k@k@o@m@p@r@p@m@k@h@e@e@c@`@a@^@`@^@[@Y@W@W@Y@Y@W@T@Q@T@V@VATAQAQAOAOAHAHALALAO AQ AOAMAJALAGAHAE AE%AC!AB!A@&AB(AB+AE*AJ+AH-AG+AE-AE/AG/AC2AB0AC4AB4A@0A@4AC9AE9AG:AGAL>AO>AO?AQ?AV9AW5AY7A^7Ae-Af%Ah%Aj!AjAm AoAmAoArAtA| A~AAA@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@{@t@AA A'A%A'A%A#A"AAAAAAAAAAAA AA AA A A A A A A AAAAA$%A.%A5!A6!A6 A;A?A@AJAEA6 A. A'A"A!AAA AAA%A%A*A+A-A0A0A4A>ADAKASASAPAMAMANANA MA IA KAKAIAHAFADACA!AA!?A$CA'AA+DA,808-8+8-80858<8?~8?8?8C8F8K8S8U8S8fāfruwunkhfŁ #'(('"!.'0'3' ,')'"'$'#"'&'#)'!0'--------------.. ...'...9.;.>.O.O.T.T.V.Y.Y.R.T.M.J.H.G.H.H.C.B.=.4.,.*.%.%.)...1.4.6.8.;.B.H.J.R.^.t.... ....!...y.y.u.u.!t.&k.$j.(h.+`.3W.2T.-T.(Q.3Q.7T.8R.:O.?G.F=.B9.G1.D).B'.?).='.8%.<".:.<.8.=.?.D.F.D.F .K$.P .U.X.[._._.S .S.P.N.P-N-N-K-N-Q-V-Z-Z-]-_-`-j-n-q-q-y-{-~-----------------------------------------------------}q-vp-vl-sg-sk-tl-sl-ol-qi-of-e_-dZ-bX-b]-_]-X\-PU-GU-?H-5F--A-)>-(7-)---*-((-)&--&-0*-2*-3(--%-------!- (-%-#--- ----,,,,,,,,,,,,y,m,wO,mL,cB,`B,R6,M3,H+,G,,C,,=&,6,)+"++ +++++++++++|+u+u+r+p+n+s+s+p+m+z+}+}+++}+u+s+s+w+p+m+h+h+i+f+h+k+n+r+w+s+p+n+i+f+_+^+\+^+c+m+s+x+|+}++}+z+u+k+c+Y+J+E+E+C+;+A+A+2+-+,+'+,+%+ ++++++++++ +*********,,,,,,,,,,,,,,,,,,,,,,,,-3%-8%0<%2A%5G%5I%0N%3X%0_%-i%&t%!v%%%% % % % % % %%%%% %%%  & & &(&2&7&>&@&E&F&J&H&J&M&O&P&U&Y&Z&^&_&d&d&c&c&Z&Z&c&f&n&p&w&z&&&&z&t&k&f&c&T&R&O&E&>&6&3&,'.','%'' ' ''''' ' ''''''' ' '!'&' &' )'+'.':'@'L'O'S'b'g'j'm'o'o'l'j'b'`'`'c'm'{'y'{'''''''''''''}'x'n'f'a'Z'N(I(K(I&(I0(F5(4D(/D(-D(#((( (((( ((((!(((0(!>(&C(*N(0R(2X(5_(2i(*s(%x( x(!{(((((({(v(u(v(v(s(l(l(f(W(a(l(n(l(f(](b(n(u(x(p(f(d(a(b(f(d(a(b(](b(k(k(g(l(p(s(v(}(((((((((((((((y(m(c(O(L(I(E(?(?(@(G(?(:(6(6(:(:(5(3(8(8(1(+($(((((((((((((((((((((()))))');)9)B) C)@)B)H)R)R)V)W)^)f)k)m)m)p)o)f)^)V)V)a)c)kY)WV)OV)JY)HY)A^)7^)2\)-^),\) [)\)`)[)[)W)W)V)W)T)R)M)L)@)>)>);)9)8)4)/) ))))))))))))))) ) ))((((((((((((((((((((((((((((((( ( ((((}(}(z(s(l(f( b( a( ](%Z(-S(9A(@2(E0(K*(W(p's'x'|'}''''''''''''~'j''c'1h'?g'^Q'jO'jL'oI'rJ'tI'vJ'|I'~B'?':':';';':':'5'6'5':':'8'6'6'5'1'0''''''&&&&&&&&&&&&&&&& &#&*&4&4&:&?&?&M&U&Z&n&&&&&&&&&&&&&&&&&&&&&|&r&k&i&c&_&T&C&@&;&7&6&4&/&%& %&#& & & &"&$&) &3&>&B%E%`%h%p%w%w%w%y%%%%%%%%{%q%b%]%X%U%U%Q%N%F%F%?%?%<%:%8%:%:% 5%3%0%3%3%5%!3%#5%$2%)0%.2%-3%-8%0<%2A%5G%5I%0N%3X%0_%-i%&t%!v%%%% % % % % % %%%%% %%%  & & &(&2&7&>&@&E&F&J&H&J&M&O&P&U&Y&Z&^&_&d&d&c&c&Z&Z&c&f&n&p&w&z&&&&z&t&k&f&c&T&R&O&E&>&6&3&,'.','%'' ' ''''' ' ''''''' ' '!'&' &' )'+'.':'@'L'O'S'b'g'j'm'o'o'l'j'b'`'`'c'm'{'y'{'''''''''''''}'x'n'f'a'Z'N(I(K(I&(I0(F5(4D(/D(-D(#((( (((( ((((!(((0(!>(&C(*N(0R(2X(5_(2i(*s(%x( x(!{(((((({(v(u(v(v(s(l(l(f(W(a(l(n(l(f(](b(n(u(x(p(f(d(a(b(f(d(a(b(](b(k(k(g(l(p(s(v(}(((((((((((((((y(m(c(O(L(I(E(?(?(@(G(?(:(6(6(:(:(5(3(8(8(1(+($(((((((((((((((((((((()))))');)9)B) C)@)B)H)R)R)V)W)^)f)k)m)m)p)o)f)^)V)V)a)c)kY)WV)OV)JY)HY)A^)7^)2\)-^),\) [)\)`)[)[)W)W)V)W)T)R)M)L)@)>)>);)9)8)4)/) ))))))))))))))) ) ))((((((((((((((((((((((((((((((( ( ((((}(}(z(s(l(f( b( a( ](%Z(-S(9A(@2(E0(K*(W(p's'x'|'}''''''''''''~'j''c'1h'?g'^Q'jO'jL'oI'rJ'tI'vJ'|I'~B'?':':';';':':'5'6'5':':'8'6'6'5'1'0''''''&&&&&&&&&&&&&&&& &#&*&4&4&:&?&?&M&U&Z&n&&&&&&&&&&&&&&&&&&&&&|&r&k&i&c&_&T&C&@&;&7&6&4&/&%& %&#& & & &"&$&) &3&>&B%E%`%h%p%w%w%w%y%%%%%%%%{%q%b%]%X%U%U%Q%N%F%F%?%?%<%:%8%:%:% 5%3%0%3%3%5%!3%#5%$2%)0%.2%-3%%%%%%%%%%%%%}%y%v%t%t% s% j%j%e%e%b%b%d%j% i%%l%$n%$t% x% s%t%{%%%%% % % % % %%%%%%%%%%%%O&L&O&V&X&]&^&b&h&~&&&&&&&&&&&&&&&&&&&&&&w&r&o&q&o&h&e&b&b&^&Y&V&S&^&]&[&O&N&O&]@&X>&R>&N<&?<&76&:2&9/&9-&:-&9,&:(&<(&?(&C%&H%&R"&X&Z&]&]&_&] &d &u&{%%%%%%%%%%%%&&& &&&&&& &v(&s/&s2&k7&i<&g@&aA&]@&l\)j`)ga)ef)bk)`m)]k)Xk)Qp)Nr)Lu)Gu)Dz)8y)+z)) )))))))))))))))))))))))))))w)r)f)e)`)^)^)a)a) `) Y)V)W)!T)'T))R)+O),@)1=).4)+1)+$)+ )1)1)6)=)@)D )L,)Q,)V%)X')[')]*)`,)`/)c3)c;)g>)g@)`B)]E)YJ)TE)OH)NL)OO)LR)NV)TO)XO)[O)]M)gJ)gW)j[)j^)****&*)*0*3*5*:*A*B*D*G*K*N*L*D*F*B*D*8*7*8*3*.*-*-*(*$*&*#**!** * * * *** ****** * ** * * * ***f(b(\(Z(S(R(U(X(\(\(](_(a(b(d(f(i(i(f(f(d(d(g(l(q(u(u(x(u(u(x(z({(z(v(q(n(f(q(i(k(i(d(b(b(d(d(g(l(l(q(q(v(q(s(v(v(u(q(WM(SK(SH(WA(Z9(a2(b+(g&(g (d(f(l(s (u#(u((q0(l9(fA(XM(UM(PA(HA(F>(F<(M5(P/(P(M(P(X(\(_ (l(p(q (q (l(i(f(d(f (d&(]0(S?(NA(z(n(a(_(\'\'f'i'n'x'''''''}(x( ( ( (('''''''''(( (''''''''''''''''''''****************z*z******z*u*p*d*_*X*W*W*R*K*F*C*>*2***#* **** ****************************************************************{*v*m*j*[*S*N*L*J*I*E*=+1+'+!++ ++++ +++++ ++++(+-+2+4+9+6+;+@+F+P+T+Y+Y+F+C+K+R+W+c+n+}++++++++++++++++++++++++++, ,&,&,!,,",&,&,',,,1,8,;,B,G,D,I,O,Q,T,b,e,c,b,g,w,,,,,,,,,,,,,,,,,,,,,,,},n,c,_,^,_,k,x-#-/-5-?-M-P-P-Z-\-_-a-a-_-]-\-b-b-a-a-k-i-b-a-Z-\-\-]-]-_-a-d-f-i-k-s-u-u-x-s-q-n-n-p-p-n-s-x-z------"-&-"-&-'-'-"z-)v-)q-'l-.s-0{-3}-@-Gz-N}-Ox-Nu-Nq-Jk-Lg-Nf-Ok-Vq-^-c-g-l-r-w-~------------------------------------------------------------------ - ----!-(-+-0-9->-?-F-I-R.R .S.S.N.N.P.U.Z.b.l.p.n.k.a.\.X).U9.R;.P>.SC.SJ.PO.U[.Pe.Ph.Wo.Zw.b~.d|.g|.i|.kt.io.im.sh.ue.vf.xf.Y.T.M.H.E.C.@.B.%.... . . . . . ..--..........".".......----- -"-$-)-,-*-1-4-6-6-9-=->-B-B-E-G-C-C-J-M-O-Q-W-Y-W-[-\-a-h-j-j-h-k-m-k-k-h-m-r-w-z-y-o-k-k-p.r.t.y-z-y.z.------------------**+++<+@+K+^+d+f+h+k+m+w+z+|+}++++++++++++++++++++++++++++++++++,, ,,,,,,!,',6,;,G,L,Q,T,T,Y,c,g,l,l,o,t,v,v,{,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,w,r,l,h,V,N,B,@,=,6,.,),",, , , ,,!,(,-,0 ,. ,+,+,0+0+0,3,<+=+?,A,?+A+F+L+Q+Q+L+L+P+Q+P+L+N+Q+Z+Z+V+Z+]+g+i+i+b+`+bp+bn+bk+ld+yc+}^+}W+~T+}F+{A+v>+v;+s<+q;+e9+S1+I(+F+G+I+N +Q +N+K*L*Q*S*U*X*Q*P*S*Z*X*S*S*S*X*X*V~*Vx*Zs*Zo*]l*ei*vg*Z*P*F*B*B*=*7*.*$****** **))))))))))))))))))))))|)y)t)r)p)k)h)e)\)W)~V)yT)vQ)tL)vH){G)yC)vC)jC)_8)V4)V3)V1)],)b,)e))d%)`$)[)[)S)S )V")V*)Q.)S1)Q4)Q;)UJ)QR)SY)S[)U`)Uh)So)Ly)I)G)D)D)G)F)D)=)5)2)2)-)&))!))))))))) * ****#*)*.*A*]*b*b*e*l*q*s*t*t*v*{******************N,P+,N8,PQ,NV,Pl,Pv,Q,N,L,K,I,F,D,B,?,?{,.C.C.@.@.;.9.6.4.3.'.$."....... ...---z-w-w-y-z-z-y-r-p-u-w-z-z-~---------------------Q.R.V.V.W.V.W.V.Y.Y.W.V.V.`.O.L.M.J.;.;/8/=/;/6/4/1/)/"#/-/2/3/3/ -/(//////.... . ....... .".%.,.,././.1./.,./.1.1.6.;~.>|.Cu.Lz.Q..// ///////!/+/0<09040-0(0#0"0,0/0<0<0;0106000000000000000000000000000000000M0Q0R0W0^0e 1j1h1j1m!1m&1o)1o31~G1~T1g1l1m1r1w1{111111111111111111~1q1m1j1b1[1O1I1@1:111)1111 11000000|0z0w0u0p0k0j0j0h0f0a0^0Yn0Lc0HZ0CY0=O0;O03O0,K0'O0"M0F0F0H0K0R0W0Y0W0 O0H0E0A0@0<0>0;0C0J0M0R0W0^0_0i0s0u0x0|00000"0)030;0E0M051@1J1Q1Y1^1b1e1h1 v1 w1w1~111111|1v1l1g1`1T1J1D11101"1!1&1&1,1+10131518m37o33m33p37r33t30w3-r3.o3+k3&k3p3o3o3r3p3p3o3o3k3h3e3^3\3[3[3T3Q3R3O3M3Q3L3J3J3H3G3E39363834383;393=3;3838393@3E3@3>3>3@3C3L3M3M3O3Q3T3R3!T3#Y3&Y3-\3.c32`35a37e38f37h38m3........................ ...'.*.7.R.Y.^.f.h.k.r.r.m.r.............~.|.|.y.u.t.p.m.k.m.k.k.e.f.j.m.m.p.p.o.e.e.f.j.o.t.~.. .....!.$...6.:.=.;.?.I.L.X.b.l.t.y.................................. .......#.(./.0.2.4.9.C.H.K.K.P.S.a.b.b/a/W/U/P /P/M/P/S/S/X/b$/a)/b)/f+/i0/s0/z3/2/3/7/:/:/v/Cx/Hy/Tx/Wy/Y{/Y}/W}/U}/Y~/a/h/k/pt/po/rn/ri/|b/z]/]/Z/U/L/8/7/8/?/B/K/K/I/L/L/K/I/G/F/D/B/F/F/I/K/L/G/:/5/2/-/////.......// /// // / / //w/m/d/_/U/P/J/@/;/6// /* ////../// / // / ////....11111111~1|1~1111~1111111111~C0wA0qA0j90h40j20h10m/0o-0r,0r*0q'0h%0c%0^%0]%0`"0]0b0e0j0~0y0l0`0b/h/o/w//00 000000"0#0 0t#0v'0|(0~,0106060707090<0C0|C0[0[0^0[0]0]0Y0V0T0S0Q0O0O0Q0V0X0V0V0T0O0N0N0S0S0Q0N0N0D0D0D0B0B0B0?0=0@0@0B0B0;06060?0D0J0O0X0Y0[0N0L0N1J1L 1J1J1J1L1L'1N61LB1J[1GY1DS1DL1DI1D@1@51?01B)1@&1@1=0B0E0D0G0J0L0N0N02/////// ///////////////////////////////////%/'///2/2/H0E0A0>06 0-0,"0"0 00#0*0(0#0#0%0%0 000 0 0 00 0 00000000"0"000 00/00//////////////////// / / /////1/>0A0H0J0J0H0E1I1L1N1Q1T1b1111111111111111111111111~1h1]1Q1J1E1;1:1:1B1E12(24292Z2i2k2k2k2n2q2v2v2z2{222222222222222222333 3 3333333333}3}333322222222222222222{2n2_2]2b2a2Z2W2U2N2H2C2D2D29202(222222 2 2222111111111112 22 222 2 2 2222d4i4n4v4t4x4{4t4s4n4n4g4e4g4e4d4`~4]~4X{4V}4Sx4Pq4Ll4Lj4Sg4U_4[]4g`4yb4xe4xi4vj4vn4{j4yg4{e4~d4d4`4b4d4444444444444444444444444444444444444444444444444}4y4s4v4{4~4v4x4t4x4x4}4{4~4}4y4y4x4q4l4l4o4y4}4{4444444444q1o1q1v1{1y1y1q1q1q1c2c 2c 2^2X2T2T2X1V1X1S1Q1X1]1b1g1h1l1o1r1q1111111111111111111111111111111111111111112222222#2(2+2/222425292:2>2D2F2A2A29222!2222Z2S2 72(/2&(2(%2&2(2*2-201-1&1 1111 111112222+2 2222221111111 11!1!1%1&1*12171<1H1M1U1Z1a1d1i1g1l1q1v1z1111111111111111112221111112222222121z1s1q1l1f1b1\1X1U1R1R1P1P1U1\1a1d1k1p2p2q2v2z2{2{ 2 2 222!2%2(2/22272?2F2I2H2F2D2D2K2K2I2H2xF2kF2kA2b52a02]+2Z2W2R2R2P2M2I2A#2?+2<02:529:27C24D20C2/D2(F2!D2S2W2Z23'3)31313138393@3G3J3L3J3O3L3H3G3E3B3=38363/3,3*3)3"3333333 33 333 3333 3333333 3"3$3'3%3%3$333 33 3 3333332222222222222222222222222222222222222222222223333 3333333X2S2N2G2E2D2@2=2;2:2:26282=2626232121232526282;2?2@2D2G2I2L2N2S2S2S2V2X2X26.686 E6 S6O6N6J6J6@6@6B6;666+6$666666555555555555555 55 6!6o7w7666666666666666666666666666r6m6e6c6e6e6b6g6h6b6`6c6c6T6I6E6D6=6;6=6B6D6B6D6L6L6Q6V6 V6S6N6G6D6#?6+16-,60+60,60E6+O6-^60`65c65`6.[6.Q63E65=6836D'6I!6L!6P$6N16P56S:6SB6QJ6NN6FX6G^6KV6QN6UI6V;6]56`,6g+6g.6b;6j,6n+6666 666665556 6 65555555555555555555555555555555555555 5 5 5 5 5555 5 555555555555|5x5r5p5p5k5k5i5f5c5 Z5%R5%O5(K5(J5,C5-65//51/52,54'54#5<5>5>4E4C4A4C4P4U4W4Z4c4c4d4f4k4m4p4w4u4r4u4w4u4x4w4x4x4w4u4n4m4r4s4x4z~4}y4w}4u{4uv4py4nx4nv4ss4sn4wj4zi4ze4l4i4e4d4e4d4`4]4Z4V4U4P4I4G4D4G4F4?4<4:4:43434:48484<4<4A4B4F4I4K4P4P4N4I4L4K4F4G4D4=4747454-4)4(4(4$4-4.4-4&444!4}!4|4n4h 4i4i3h3d3h3m3p3s3u3x3w3x3333333333333333333333333333333333333333333333333333333333333333333333333333333333 3 4 4 4 44444444!4!4!4#4$4&4(4)4)4.4045484748484:4:4?4F4F4D4F4A4 =4 ?4G4 K4N4 N4K4K4X4X4P4N4L4Q4S4S4K4S4!S4$S4Q4N4L4G4B4D4"K4$L4$P4'S4&L4)Q4.Q4,I4)F4'A4'<4$:4$74!54!24!04&04!-4+4)4$(4!&4!!4"4!4$4! 4" 43333333!3&3"333)3+3.31363836383;3@3@3E3I3J3S3X3X3V3T3X3[3`3c3g3b3e3`|3bz3g~3j|3ez3bu3cr3ht3gk3hj3lf3l`3m^3l[3j[3jW3mR3qT3tR3tL3vH3tG3qM3mM3jH3jC3g@3l>3o83o)3q'3r'3v,3/313>3E3E3G3G3H3E3C3Q3V3`3a3`3f3333333333333333333334444.40424?4A4F4G4N4X4]4b4e4j4`4_4[4_4e4l4yt4qo4en4[e4X`4Dd4?g43g41e4+d4&g4"g4i4i4n4 q4v4x44444444444 444444444444444444444444444444445 5 55 555555555"5"5%5(52595<5 <5C5A5"H5$U5"U5!W5d5h5k5!p5"s5$s5&}5+5+5,5.5051565:5=5B5J5L5N5O5O5T5]5`5c5m5l5^5]5S6N)6G36B56==6;E68O61^6+h6)o666666666666 6 6 66 6 666666677`4^4] 5[5[45X95X>5TE5SY5Qp5Nz5Lz5Jw5Ii5Gf5D_5EU5BU5DR5BM5EA5D<5@;5B95B75E65E45G'5J"5J5N5Q5Q5S 5T5V5V4V4X4X4[4[4^4`4`44444455 55555'5'5(5,51525;5<5@5E5F5A5;5-5*5#55555 5 5554444444444\E_EfEkEpErEnEpEsEsEuEzEwExEzEzE}E}EEEEE|EEEEEEEEEEEEEEEEEEEEEF F F FFFFFFFFFFF F!F F!F#F%F%F&F*F*F/F0F4F9F9F?FAF?FMFPFNFCF>F:F:F7F(F&F&F%F&F%F#F|FzFxFsFu!Fs!Fs%Fw%Fz+F|-F|/F4F4F7F7F:FAFFFIFKFFFDF}AF}DFxFFwKFuIFuFFsFFsCFuAFwCFw>FxE9E7E4E1E/E,E1E1E,E*E*E'E%E#E"E EEEEEE E EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE****************z*x+v +g+b+d+b +Z'+U1+W6+Z7+W<+X>+ZA+ZE+\F+ZH+_J+fR+f^+kp+ls+kw+f+f+a+a+d+g+f+d+d+f+k+q+s++++++++++,,&,),+,',",",,,3,6,E,O,Y,],{c,ze,t,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--,,,, ,,,,",)-/-. -* -)-*-.-.-1-8-=#-> -@ -L!-W&-W+-Y+-^(-c(-j%-t&-*-%-%-+-0-5-9->->-A-A-C-N-U-]-b-n-u-{----------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,- --------,,,777777~7}7} 7y7v7t 7q 7o 7l 7j7g7`7]7Z7V 7S 7Q 7N7N7o7b2d2d2"d2Fd2d2d2d2d2+d2ed2d2d2d2d2Id2]d2d2d2d2d2.d2hd2d2d2d2d2Qd2sd2d2d2d2d2o;q;t>vAvH{F|C|@9469741/,*,-,-/1147;HJO~P~RU|W|U{T|R~O|JOyKvHvFqHoJtKtOrRtUrTqPrKqMmOqRoPoKlKjPhMgJcUbW`T^ObKbHcAbC^F[M[JYMVRXWTYSYX\T_VaOcOcLfJiLmJkJhJhIfGiEm?p=u:s:p5z.!"&!}zzxx~~{qoqvoj]XZNB=85520220.(&$$&&#!  ~|~|ywuuuwrttrrooommjfeecccaa`^^\\\`[YTVTOMLMROQMLJEEBB>=91/1),**,*)'% %$        |vtrrqoe^[YSQOLJGGIDDEDEGEEGEIJLNNLQNJIB=30,)!+0316$䀨&388..+  zyrvmrhofj`gVg9g/g,j$oomomol o l lhcXTIE=;33:;856338;66;@@?@=@BIILJJLTVYVTIB?8833530.0110,''$!{{}zxxvulnq}{zzxuuqluxzupigdb_addXWNHDD?<755}0z%w%snkd ^WUWPKHA<2(*(##%%(**--,*-112242477;9;EJOTZ_cc6ဏ5510161{0{,{+z)s)p&v"zqlkkdbZWSXZd_WWSSMDA?:50+% ##}zspmhddh{uvrmrlngnek`kOs?w=w;s1u+r$d'Z$\adhrw|   ".0056530.+'"nk|iu^fUdPZHWCR@J@C>@;9>/;,9FJP TRJJHOTaihd^WRPMJJORcr}qi[PIF<82) $&,,)3;=;;EE~D|GuGtLpOmNkJhLeLeNjOjTeTaS[V[[R]Q`M^>b8g,o%m"qorv t|~}zqkga\SMIHDA>:5*%  4<><5220+((+0244~2w4v5y5w<r>qChDgAcDbH]KYRSPOUEWD]@_;f.+'" )16>Q\^ehjo}|usmhfa^ZYWRMJF@ @>;4!&0 3:<BILQV_gtvtqlb_ZZUQPLGD=<52+(! wttmha`YLGB;8/*)" yvvtnqllnlnjjlnqstx~}vxtvtvvq}szqpqknbqXnSqFs5G#OM HJHGHQQWccfehefcfccYYV~T{VtTmWhVhTqRqQqMlHh@g@g9b4]9T;T9S6N3J4G16/6.,1&.")!''" ""%'%**/4@EEJC8831BHORRThkorwrww}zskik}zzzrpmhd_afff_ZTRKC<2,-241,'t t py|ww|~|zuuroopmjfffa``fkprokjyy|qpoeq[nViTdWd[`[]^XYXOSMPONYP\SaPjFwBFDBA==?zByBtIjLjNfK\D\GYFT?RBQ?HB$M)Q.[+^)j(e(V&RCEHB> @ 9;;>;=;88=@>OQVYRLGCEL>1/3.,)$ *//'$%'       }{usnlqszz}zussxx   yuwzwwuutmomhjhoh fefeca aa`\YYYY[a^achhfjkmmfmkfa^acc\YWWVYYWWVVWTWTQOV.\.c3f3h/o4m4k9j6e6e;\3V6TEM>LCMGLJGGEHCMC[@fBY@QBJEEHCJ=H;C=B;@B;B4L/V3^9`8a1`.Y*Y.R.M.J,G'E*B*@1B4>8/4,;1=/6%;'=$;>==@@>=41/,** ).,;BBEB@>988=;83,*)$"   ""      )) '" $'/1841*$ } {}" $xvv"p$q"uuxv {}zpplgdb dbdbba\%Z%\aa ]_bdggkpnpplinngdbda_b]_ZXWUSS]]XPMMPPSSRM HKFC$A$CH FD C >> A IHCA:/ 0 4 0/-+ %%("+*4)7,C/F3H;PBPCH@C4?4:;9C7G5M5G0G2C5B7=514.//(.%3&.(*%$!).,''! !     "1/36469683..438;B@;9;@=@>=4/*'"" $*""/4*,/6;@EEMH@CHGLJOLTQMJGB@=;B>CBERV\``^[V\^aaekmoujhtwuopwz|tofe^`eejjkw~~~tpywmfaacottw~yuty~~rokfe\JHMGC>=834==BC>C@=;9BGHGJC~C|>{EwEyBw>w=v=t8o9qCm@l9g8g;e>g>g@lElJoJmMqOqTyTtYv^o[m\maqewk~jehh~ou~|{|~w|r{pw|woomofhchah^c^ccbe`Y^VbVbR^MbM`C^E]L[VXYY^T`XfVjTeSeScOeS\O[OWLYNTLOJVGWD\DcBhBjEfJhImEjBoEyGzE~LSV]z]``ceoqrvrhh~j~q~|y|{yw|~{{vorrv{|y{wwqq lllqqmmoqljeb^Y[`]`Y]`cje[~XTNIJB=@?B?==::31.0588;;r8o=^;^8e5f1o0u''&&$$"""$','''+10136856:568::6:==EDDDEGEIGE@?@ELNQ]^bgb!`2[8X7O-I)B#??=;86+365650&$"!"&$&+3133,'$ (?FF IK!F'F.I8I?POXTVVPYU^Vb_bXeXgShSgXh[j`h`hdljjnmnosovjqjtqov{|{ %6>ACEJH<,  ->DRZdFiKkKq<x9z6x-zxv z{{-}46//'/1;{<qFlOl\qi  $'.+1,616B;=>?C;E@CICNELGNJERDT@V;T5LMMMQ&R,W6WBWDmQ~SSOOGB8.'" ##.7<PSVXXZ_] `diio$o6j=jElDnGjJjQgXjXi[j`n^nbo`tbtevg}TTVX^hmovwvw~{{~|~||{| %,4967;;EHMPUWYadfa\\ZYUJFA@AAFK%P%Z*x* }}|xusmmnmkmmmx}   <DMasx !!$$!!').1BIJNT[jmoromq$*=-8I_ g jy %*9KS]dk%*4EOTaje_hXmFu8~3-)($(#-222+-+)!#&.-.-0DII&K.FGBNBSDDI0K)Q#SPIB73530.2-.--0:BDPQVbiyupokkhc\\` ^ \ [\`e(j6k>jHhOf_cf^h^k`}^\[VY\acfrtww|~zutuy|"''5B]gq(~Ngotysty{}}yvx{{     # % ##*(**,/1269>@FFCC>96411-1 --*%"  ('((*,+*5/7142425696:-C#A ??<97 9%4"/44 52/ }sosx 4XYs_xs !'),386:;EIJON TT[b ` ^ ^bch e chjlrt|       ## #%# !  $$'* 1!33.)*'' ),/4%>&B(E2J7J4C5;7;9>:=:C9@7@5E:H?LCOFQHTITP`UfZo\z_|gsvuvz )-.5:=BFDAABINSXV]]bdeglggnvxv{}      % % ## "%"*%,$2 21--1,'* , ' , /1T U _  $/33>BEO[fjm "'+1358 BEB??;:=;BBDEIJ$O+N-Q3S5Q8XI^PhSrUtl~v~{y|{ "/6@MR\fks|&.68:;G^ejotw{|ywvy~    (%/*4CFRNx_gfd\bf_]_aabddgkillkiknnqnkggdffgkqx}{{vvxuqpxz} $/31/39=@>;938@@; 69 9=@BGY%[)\,j6y=~BGGLLMTTWY[[`^^[^`ccefece^`c^c`aceeh f c e [` ff!h-h3j5f:e=eBfFe ; 1#         $&'))$" ~~!!'))+03555668BBDEIEJIGIIINQTQLJNJ~OTTSOQ~SVX[]^]~^b~c}]{]}]{`x^t[v[s[t`q`tetgvhvl{o{ryoxlsltjqeq`obl`jbjeognhjhnlllgqelelbldmembl_h_l]l[gZeVbS^SXVVQSPSITGYG]IcKeFcFbFcDeDgGlIlGjFlFoLrNwN|K|GyIvGqFmBqBqAm?l=g?e?g=h=j=h8l<m:j7m8m<w=yB~D~?~B|=y=r7t7w:{8y5{5|7~7|55773{2~02.{.w-w&{(|&|$~&&#&&$!{~  퀸~~|zz|uwuuwyz~~|zrtomjjfa[[\\\YVTQOMMEC>>=;6/31.)"%*%$'$"|||mmhgh`Y]]b b mjmljb^][XTQNGGDDB8&&,.58:BDGJNJONEGGE@@:86=@?B@?BB@=@B1.306?;@DI}JzGnEi@gB_=X6W6R0N:K?K:H?I?DI:L4N0Q/N5S7]4e+q&t(w%{%&# #&%&#{vteb^][XVX^hcc{`hcjgrgwjqvyyvrt{~ !(+*?CKIUPXU\_kbngsnukvnu}{qnf_XRIDC><7/-+*+(/2440-/*%& % ## 9@GO   mpz{{rmcX!S#L!J!G(:(8&6(3)1)&-2:?AB<2+(5?BFGLLNPVVXUuSsQwNzNKKLIKIKIL|IzFxFwKzLxNrNnPiU^VAS/L'I*D*<,7*A*FFSSUXSLA+($08AGSXbgsyyts}tibZSIG?8.)&!~!()()(#JHC971-67;<@EHTUU^|_k_hZfWcUaW[WQ\L\HZCY.U.O*M%H%J$M$O)R)RHK P PRUYZ__Z^Z\^is x "$,.1.%" $.4>>@B@;6//11'  {zzxvxusllklkifbfgklnpsv{  z pki ikkdgd ifdkquuslkdl!'')'))+,,013010100.0,.351}.n0d.W1S0S,K+H,D,A.>+<+9)7+5)2'2'/+0)'')&''+&!!"!#!        rbEETJED??D1,,1"3".)!)$' &$&}}wpd_"W,R5O;O=R?W@YDPDKEKEOERBTDUQOXJ[H^J`H^F`@e<j2o-q'yy||~|y{~ww||||{wyw{|{{wvvqoqj~jvgthxetcb`SL+I#JIDD@88 5 51)'$!  )03:=<A?=<==?=5.-& "'+ 0 6BINONJLNQT`t##$? @ ? : = : : 5 6 , + ' ' $ !                     ) 1 6 ; ?  u⁦ l k i s s z | | y t q o m l o q o v {    x u| ~ | { y w r q o m l e c c j m t v m c ` ^ [ X V Y X N N L G E G G E D E G G J I J N Q O J J N N Q T S Q Y ^ ^ b e g j j o o q t v y |  t { ~                     ~ | { |   { { t j c ] b b g h j l g g m m o m o r q t t r m m j l q q t v v w y r t        ( - 0 9 D D C A C C > ? > : 9 0 / : : > ? > < : < A A ? > 7 -        ၄     l l k f d \ X W R N I F D H F ? 5 !   & ( * + / 0 5 7 < A D H K R S U Z \ _ b d l l s          l 'i 0f 1f 5b 8b Bf Gl Ln Lp Is Lx Nv Qq Sq Vl en hp lp yn |q p u p k g k g yf ja VX BZ =_ 5l &n &l '76799;<;>8@=ACFGHRKTE[AaFmOtTuUzT|Ez1m1`-\/^,O/@,9-8186476hmtojfc`[YWYW TVY[acfhE[ae^[\WWTE>;>E    ",1386643343386699====>9889964)'$$"$'*,*'"߁|wuppmd_acfimsmikmmpnmnprwVY]`geelljje`^^``YVSQOGGGGDBBELOVhmtvw~~wvtwtrrqorqmlhzwpddhkprsrikik|m}kmnszpxrwpumrmdpardsaz^_^POKOi}}zH偄O}O}HE}E|Ex<|7|2z6x7u4w"}  }xur"r2p9rJnMmTmPiZfZfHfAd<f2k-i%i-f,f/c/c7_4c@aM\O^T\Y\_ZaU_UiTkOfKkJkHsCmAr@CJMQY `k   z tyt p a^aYQR[aemtoo!k"k$u&y$y!w|~"z"!     "  #'(,147<>@JPU ^ dfu "$"%*/.8;>CGJEGCBGOOJJVTWzVxTzQxMwLxCs9i6d>a4d.i/h,d*a,\*Z,W1U6T6R;O=HJ@JA6>;;;7>7C2C/H1@/@,J(L'H(C(>';%3(3(/'. /466364.,** %"o2]ESR@Z@WJTLPJHDA@;;7591>.F._&fkr !DIQV|||yttml^[VTO;=;6, YRP<71      yrt~~~|{yvyvomjhgjtvtrogcbb`b`^^^ceeccglgcjjgbb^[YXXTSNQS[b[SOLJQ{QvTuYu[sYqTsOnNiQfSa]a^]`\cah]l]h\c_b\`\]_S][ZO\NWOSLZJZIRIKL>Q<S>S?]9e/q(v*w({&+*((/??:?DACHDA?:70-*(*++/-**+**/049<C<4/25>CHPSUak:$;*;.;3:631.,.*+)*)'* , /,,)   $'+,,01353535588 68:$o[g[eV`Q`L^H^GY@[;^;^>jLmVlWmYo[)聰*/8899EE>=JLMOQWY[[ch\T\accejjhkjmorpruwz~~ytmk`\YWOQ`mtytp^\^jjcYROVawz~utukhfeca[Y^VQMLQJLJ=CG@94.*)聦!)0583-(#!&$-..038<<AB?GAB<<75<B`eeiolo_UUPLIVnoodbgosi[]U=BI?5<AF.&   B܁B88;DJLNLJNOS]]ehllhgge]TTJDBDGIJNT`elt{|wyvywyoghc``XXT TO N I B1܁36;BLLLLJE;1            5780+)()(##!                     !!!!!$$!!#$&&)))+-+-0..337.-3<:-+$&(-))+)()++032.-02<=:88<DFQQSVSQSQVVUVXSPQPFDDDB?=:<87877583527770.+(&($#!           !!##!    !!#$()+.0527:775``_`_`Z[[ZVVVUSNKIGBABGLGBADFFIGKLNPQQSXVXZZVXVSUSSPQQVSPQNLLPPKGFIIKNPQPQUSSQUPNNIKFDFGKNKKKLNNQVSPPLNIGDGGBDFDDBABA??777<:8<==A?<=?=?ABDFDGILLPLIIFFGIIKKPNPNBBIGKPSUVUUQSZQQQSPPNQUVQKIKPQUUXVUSZX[[ZVZXX[]]`]]___VX]Z[`Z[__bbdeijjllniotqostyvvliggjeb``]]]`bebbdbbd` 傉            "# ,144664611,','#  rm c\+J=GFBK@N@PEXCbEgHoGqGsJvLGEELMR\cfomoru| %*1<CHMOOTkpw $.38EGN OV[-[2]5[=]QYZXlVqVvONOOJEIILLOOSS[XT V(T,S/N/I6I/L-Q,Q"TSNLID @?;6:EDB?;686@B@EIIEEN{OnXXXQX?X8V5V+T(V#NI E@60+zshihaYH9(% zuhWTTOOL{QxOsMqJnLjLiMeM`M_M]HXJKE?H:M7L-LY[afmr'"! .(0.:8BA:D1D.G$NU[ b e l nv{{~|unkhcca\ZUJFEE<921  "    "**/17<><><61**,*-,*--,11}6}7;EJUZ^^_mp| %**,1;<>AA@77@EFJJKR TTW ^^cdkrswz&|'}$+66??=;=?B??GDEGIJLGLIILNQ[[XX[``echcghjor    !(-4:CPUbn{zra\ZYUPPORMPOOJJE FCH)F/<3;@9L/J'M"LLJMLM W`a^WVTQQMROOOLJLQOMOQQQQQRTRVRRTRTRVVVWVVW~^{\x^s^o[o\lYi\g[b\_`]`ZfZr`w]|__d__`]]`ggdbiigjigd`gd]gb_[Z[XVZ PNLIIGLIG!N&S)U+Z-[-b2gKLLLPPUQZU_VdXi[n]s`xb}egjlnvtoqqstvxy{}~t x xttono s/`6S9D>:@3C0\-d)m+z().55872.+&! ~~~||||zzzyuroj f c`[Wj6eDhJmNmQkQmToXm^jchjcrcv`~afjfhaaWTLGG@>1.))%$  {zvuqkidb__ ]]W M C ?:54-+%! !!     !!(+497:<?DFAADMPSX\biknkgfklsuvz~|y{wtvwttv{{~|{rvvqqotv|~{{'~,{/{4w8q4j3h.h,e)c)^,[,V/V1T/O3N.L1J.E/B,5.0,.,')!)$ $"}nidcZZUTOJF<6%""%"}ysi)i.l.o3s8q=nBlCjCoGnHqJoJsQtOlHeC]=X9P4N/G*D*?'<%72+&#$),19@GGJLOORThWj[octfzkzk~mt~|ukfa\YYTQMGE@@=;1/.3466)%!"#)#1&6.4015/:,A/P1S6X8Z>_BbHnYth{mokjjoorw  ""#%%**/4266<>@>A<A>A@CEEC!E$E(J(J-F0K2M3J5H8J:K=JBODKFJITQWQYUZU^Ua[_ddedj_i_l\ncqat^vc{c_c^YRROPUWTPOMOORWZ_dkpuz $+05:@EJQV[`gjrty #*/49:9<:<<??CDAFFHI?C>>A?AFHMUWZ__dgkggkklklnkka^^YYUTWY\^_dhipsx}uzKM$K'I+K.N1P;ZEbSbb_gZhShIbCcAhFqKtSv\|]anqsquxz}}%(/<<A?A?!$,38EW[`huz#(/257:AKNyWhfelepeshvh{pzz}{}  .348=GOVVOG L TY^cc hkr w|~  ~zzyrkhe\WWTQOMEC@=;96/* {xvz!$&)&2258::AGKX[Z`dq}'*(*   ""#(-7;<J^aadhkprwx))+615@DGOV[`gmoty{w { "%38;=CECH\``jrtuy|zpm    z u p j e ` [ V O G@9 # # %&%*/-0442/(+*+-/7<>CDIRX_fnq{}unkvnugsbn_kU\PXIUCK*?+(! ~{trvyyvqjgwgrcj`hc{ch^XVX[]^betv{#&%&# #&{%w%t(q&e+]4S7N5Q/N0L4I:?D?I:H?K:K0N6R6W=XB_@gEiGnJzI}D@;?603.1B@=@BB?@B?@=68:@@EGGENOJNJGDB:85.,&&8BDDGGNQTX[]^bjlmjmb b ]]Y`hghmm|||"$'$%*%").13/6;=>>CEMMOQTVY\\\[[afjjmotrz|~~zywuuwu|zz|~~         ~{!$&&#&~&|$|&{(w&w-{..2~0{23775|5~7|7{5y5{8w:t7r7y=|=~B~?~DyBw=m<m8j7m:l<h8j=h=g=e?g?l=m?qAqBmBqFvGyI|G|KwNrNoLlFjFlGlIgGeDcDbFcFeFcK]IYGTGSISPVQXV^SbSeVgZl[l]h_l_mbmeldlbleqelgllhnhjgneobj`jbl`oeqjqltlsoxryo{l{hvgvet`t`q[t[s[v^t`x]{]}]{c}b~^]~^][XVSQ~OSTTOJ~NJLQTQNIIIGIJEIEDBB86655530+))'!!~~ "$))'&$               # 1 ;>CHRW^chhdhknnu}}  $,06@NQSTY]`mr||{~~wumkfZ#P0M4J7H?;D6K1R1U1\/]*k'p%q"qv{$'*/1489=@@@CCCEEJHJHHEGLMQRVVsWiWb[ZYX[P\LcKaFcD`Aa=^<^:^<\8^7\@=93/13/$ }zxpquxvv{{}xqkgffdggknqnnkikllikgddbaa_]_fb\dfgx_RNCF*4%/(      ~yvwy|{wtoje^G;:86.&|skf\RM@6/" {|y{v~l~UtSrPhI^8X5Q3S-Q+N$OJIEDBB;=:;??BE B8531+'" mjf[OEB>33/$      _ UT1 / , ' ,*',1--1 2$2%,"*"% # # %%               }{vxvngglgedb]]VXSNIBAADFB=:5.-) zvuvsg_|\zZoUfP`ITHTFQCO?L:H5E7@9@:C:=9>7;5;4C7J2J(E&B%>4/, )''*).3!3 1*'$$  !# %# ##           |trljhce h cb^^ ` b [TTN OJIE;:683,)'! s_xYsPpKnFlAi:74  xsos} /2 544"/%4 979<? ?#A-C6:69252414/7*5,+(*'((  "%*--1 -11469>CCFF@>9621/,**(*##% #       {{xvy}}{ytsytogN(~qg]B5'SD`NgNoFvIIGDGQUZXQPZZ_b`ge`ejlj g dde%y,}1}1,--*,-*,**16<><><71/**"    "  129<EEFJUZ\acchknu|~{{vnl e b [ UNG$D.D1A:8B.:(0. !"'"|yutuz~|wwtrfca\YV[\^`}^k^hcff_hOjHk>j6e(`\[\ ^ ` \\chkkopuyibVQPDB:0--.-2.03537BIP#S)Q0KDISDQ(SeRvqV!AI8I0K&KGILGIILN PZVX[Z[_bg]dg`dgijgiibdgg`]]`__d_|_w]r`fZ`Z`]\_[b\gYi\l[o^o^s\x^{W~VVWVVVRTRTRRVRTRQQQQQOMOQLJLOOORMQQTVW^a`WM LMJLLM"J'L/@93;/<)FHC FEJJOOPMROPPUYZ\arz{nbUPC:4-(!wywwp{ivZqWjWjOcMcH[KXJTJQHOAI;G7L/Q-S*S#TVTO NE:=EGEBBJJIDDEIINO~TtVnYZXQYAX7X&T[beghm!o#m$r&v)w({(|.388557<<?AFDGBDFBGGNILNPV[egbbgeljsoosxy{~}{ x%s*q/i4e4Z7X7S:P:LCBA?>:<7?5K+M#NRR\addlp}tkc[WROLH;4,) "  $%)),/348;@BBEHJOQ| |16|=|GuMxRwWs^uaskhfc^^F>97<AA9*%% %-'!(##&"(#)-+7398<<9A9B4K*N,S1g@iEjEt9x/,%     *6>@EJJRRWYZ^dnxz    #',',116466441, #"       "'+.18:=?GNOVbeg o t|    % '""#(*,,-P"%""%6<FJOTUZZcdin}"$$ ))!,',..0,5/B.E1J.L3N/O1T/V,V,[)^)c,e.h3h4j8q4w/{,{'~{{~|vtoqqvvr{|~{{vttwvtw{y|~zvuslkfgknkib\XSPMDAAFD?<:794+(!!    ! !! %+-45: ? C MW] ]__bdikquvz{  $%)).1>@GGLTWaahfjf~av`rcjcch^jXmToQmQkNmJmDh6ejW[` c fjoruyzzz||||~~~ !&+.27855.)z(m+d)\-C0@3>:9D6S/` sonott x xt~}{yxvtsqqotvnljg}exbs`n]i[dX_VZUUQPPLLKL2g-b-[+Z)U&S!NG&K0K8IAIV!qveRS(QQVY{[zhvh ehha^YWQOE>4/*' '1=BCLRWV[\`^m`b^`\QaJo?p5u5y0~$~!j``\TRTQEB=844' 僬   E像E#-79::<:55:5-z+p-k7k?cX`_[kGnGxMCGGOGHBGGOMootkjtt|$,8;>@GYhrtuyzz~ #&+03577:<BGL&N&V#Z[n nssqtv(.-07:550 "#'(*2CPUZ^chmu| !&)685?BDBBLNTVXXV^hlo| --7:?KNQPSVULGBDB!D%AF2N3R8U7]:a8f3n0v7}78<85058572277:=?=AKLNQXbb`bginnqtx}~~~"%}.y/}1~4{6s8o;o@s@{EVhjmp~ (+5BFGIPQV]`djnstx{}{}yxsnoqossy{~ #%" "(269<@@K^adfiu  +.38? E JOX]hj"j*e1c6j9m>mEoKoPvP|TRE;67FH>99447*>/A-F/M0M9F?ECAFCF>I9N7S7]>d@dAbAbEgEnJnRxW '448=BEQTRT\``j~!~$y0u5p5o?aJ\Q^``b^m`\[VWRLCB=1' '*/4>EOQWY^ahheh hv[zY{VQQOJHEBB@;843/,))%$  " ),4;HLORW[ckt}pldda\RRNM#K+?5<7>:A?CB:L:P7S7X4Z4e/i*q%s x{}~{yxsoosjlegbbge[VPNLINGGBFDBGDFA?<<755883|.{(w(v)r&m$o#m!hgeb[TX&X7YAXQYZVnTtO~NIIEDDIJJBBEGE=:ENO TVTS#S*Q-L/G7I;OAQHTJXJ[KcHcMjOjWqWvZ{iwpyww    rojhgchce``[XX[[QNLIILGLJIGEDG??B?=;=??66+$'}&|zwsrkdc^ ^WT TRKJJFE@77@AA><;1,**% |pm_^^ZUJE;76}1},}%yed d gjlje`eg`b_ZZPQXZUQGDGIvIoFgN`NSDNBGB.F&KIID0-.-.&#!)+-+222-#($()-~3u8mFhXe_ajTOE4*%kd]SK9*% y j g_I8- ztmh`YRLE=*$qmoromj[TNJIB1.)'!!$$!! xsaMD<     }xmmmkmnmmsux|}} x*Z*P%K%FAA@AFJUYZ\\afdaYWUPMHE;;7694,% |{||~|~{{~wvwvomh^XVT}Tvgtetbo`nbn^j`i[jXgXjQjJnGlDjEj=o6o$iid`] _ZXXVSP<7.## "'.8BGOOS~SmQWDWBW6R,Q&MMMLT5V;T@RDJEGNELCNCIE@C;>?;=6B611,.+'$  qil\lOqF{<;1/'//6}4{-{zv xzx-z6x9q<kKiKdFZRD>-   ,<HJE1僓1111111111111111111111 1121"2'2.23282?2D2I2O2T2Y2^2e2j2o2]ESR@Z@WJTLPJHDA@;;7591>.F._&fkr !DIQV|||yttml^[VTO;=;6, YRP<71-%' lj`_[UVgsyyqinl`]VLL[KIKA?DDID?=?A<:72.&&0+)-&###     ##!37<7BGGKIV[_dej``Z[_diben{{ytvobVQNVNKl     '+,'$!!$'}){5x={J{QLGJNVXYV]`bc~ghgc]]^bcgq{~~ollo ovy"o2j2e2^2Y2T2O2I2D2?28232.2'2"2121 111111111111111111111111E僊CA>6% {|{voqjtjqovosmnjnljhdh`j`h[gXhSgSeXbXb_^VYUVPTVOX?P8I.I'F!FK IFF?( $',3313+&$&"!"$&056563+68;=??B#I)O-X7[8`2b!gb^]QNLE@?@EGIEGEDDDE==:6::865:65863101+''','$"""$$&&''0u1o5f8e;^=^8o;r;8850.13::==?B?@=BJINTX[~ejc`]Y`]`[Y^bejlqommqqlllq qww{y|{vrrov{{~|wy{|y|~qj~h~hrvrqoec``]]zVSLE~GzEyBoEjImJhEfBjBhDcD\GWJVLONTLYOWO[S\OeScSeTeVjXfT`Y^XY[V]L^E`CbM^MbRbV^V`Ybeccc^h^hahcofomwow|{p|r~w|{|~u~ohhe~jwkqemam\o[v^tYyTqTqOmMoJlJlEg@g>e>g;g8l9m@qCo9t8v=w=w>yBwE{E|>~CCJGHGB9;=@C>CB==438=>CGMHJ\efkor~~ytuy~wttocaafmwypt~~~wkjjee`^efot|zwpouwthjuomkeaa^\V[^``\VREBC>B;=@BGJMQTLOJLGHC@HMEE@;6/,*4/""*$ ""'*/4=>@=@;9;@B;834..38696463/1"     ! ! '',.!)%$(*&.%3(.//4.517=5B2C0G5G5M7G9C:;?4C4H@PCPBH;F3C/7,4)+*("%%+ -/04 0 / :ACHIA > >C D FH CA$C$FKHM RSSPPMMPX]]SSUWXZ_]b_adbdgnnilppnpkggdb_]a a\Z%\%abbdbdb dglppz}{v xuuq"p$v"vx$ "}{}  $*1481/'$  "' ))         ""   "$)*,38;=889>@BEBB;,.)* *,/14=>@@==>;=$;'6%=/;14,8/4>1B*@*B'E,G.J.M.R*Y.Y1`8a9`3^/V4L;B@BB;C=H;J=HCEEBJ@QBY@fC[CMEHGGLJMGLCM>TEV6\3e;e6j6k9m4o4h/f3c3\.V.OQTWTWVVWWYYVWWY\cca^afkmfmmkjfhhca^a[YYYY\`aaa cefefh ohjhmomtuuwwzwuy     xxssuz}zzsqlnsu{}       '%$'//* $),.3/1>LECGLRYVQO>@=88;=;>;; 9 @>BHEC&R(V(e)j+^.[)Q$MB?HBQ?RFTGYD\K\NfLjIjBtBy?z==ABDFBFwPjSaP\NYPOSMXOXY]^`[d[dWiTnVq[oeqpy|yjkorpkf``afffjmpooruuz|~|ww|y p tt',142-,2<CKRTZ_fffa_dhmprzzz}kiksz}wwrwrokhTRROHB1388CJEE@4/**%'%""  "'!'")&.,16.6/G1J4N3S6T9T;]9b4g9g@h@lHqMqQqRhThVmWtT{V~TVYYccfcfehefccWQQHGHJ HM#O5G?>C9H;P8X@]@b@g9k8p;z=}BxGvMsOxa}hkjmmmhkmopmoprtty~|~ $/1=CJ`jmw  # (2 38:?LPVZ]_dl    %//,* -114766;@HK!O!O&R(Y(\$c#k$n(u#&#!&($)).3253 578::"<&<,?1A3A0D1I6L=LDPOISKVK[I^IbGgIjKgNgPoSoVrVtZV]]_bdbdbiiegeeeiigbb_bbdgig j n qtx{(}/y2vF^^cfkhas^uWsRwMxGu=|6|1 ||xWnRnJgEbEbAdAd@]>S7N7I9F>FCCA?E9F0M/M-F/A*>74499>HF76;ER|TvPoPoKmEm>j9c6e1j*j"h]XOJE ? 83.+  uifda^K@@<962(" "%# ~{yssoqonsxy}{}{xtsnjd`]VQPIGFB5+( ~pmjhVE@{@s;o8o6s4{1~/}.y%}"~~~}xtqnnigb`bbXQNLKA=?=:77227585058<8}7v7n0f3a8]:U7R8N3F2%A!DBDBGLUVSPQNK?:7-- |olh^VXXVTNLBBDB?586)&! |umhc^ZUPC2*('#" 055:70-.(vtqssnn [ZV#N&L&GB<:77530+&# ~zzyutrhYG@>;8,$|ttjktooMOGGBHGOGGCxMnGkG_[X`?c7k-k+p-z5:55:<::97-#EE ').14898;@HJQYahjkkz~ +2<BA?:2-)&)1(3&6(8(:!G!J#L!SXcmr{{|yutrj``\HCEC=;83%"  {w{ytomg`[VOGD@516+)) "')./34999=>EHLROROMQOOQ{Ry[}`{etjsoiwg~d]VSQU]]`id``ioqx  $(+ALSXUSSFFA*7*<,D*I*L'S/VAU^PiNnNrLxKzFwFxIzL|IKIKILKKNNzQwSsUuXVVPNLLGFB?5( ~zkkjhaYQJH@;89841.)' xwrpkhdaa^J<;7-(#""   *(*'GSV dejj o s"vy%%*,3646;BJQ[ehkmttkhc^[RQVVROOLHJORVWV\mowy"##-167;@UTHE@<;76-179CHJEA><9742/,*'#   ()()(!~!&).8?GISZbit}styysgbXSGA80$  xqoi``di`]]UQSV]~dwgoijset`{[}RyQ{OOQMORORLHE>=99943/.)'" }qd`Z[XKGA::8522&)&$!zvx{ */69;=@CEMOQTWW\ehkryzz~  ~| wrk hcc^Y T LGz僀  EGJLTY^mtuuy|}|} $().8BLX[`dgllstxszoxnslmnajWiPjCi;i6e1jjnlb`dgd}tqojdb][ZPNNIDA720))(#  #%*9@EH_~~|hWVW[^`cfkruz|~~)?BGOTX[][$##t`TQNLJNONIB60 + '" &-.5=?==<=?A<=:30) ! $')155 8 8@DDIJI#L+`Scbethxgtjvj~qoqvvw{{|{wyw{||||ww~{y|~||yyq'o-j2e<`@^F`H^J[HXJQODUBTEREOEKDKDP@Y?W=R;O5O,R"W_dpw}}&$&' $))!"."31,,1D??DEJTEEbr        !#!"!!&+''&)'')0+'/'2)2+5)7+9+<.>,A,D+H,K0S1S.W0d.n1}53.,0.001010310,,+))')''!ldklsuuqkdf idgdkk iik pz  {vspnlkgfbfiklkllsuxvxzz{  '11//6;@B@>>4.$ "%.1.,$"x s i^\Z^Z__ZYURPP K HRR)O)M$J$H%M%O*U.Y.ZC\H\LWQW[UaWcZf_h_k^|U@;761-##"ywom\VWVROJHLOORVVQR[^chkttmkhe[QJB;6463,*%%yvs"o j jedV SGOVVOG=843.  }{}zzph{hvesepelhfyWNKA:752/(#zuh`[WE83,$!?A?A<</(%}}zxuqsqna]\|SvKtFqAhCcIbShZh_gbbbSZEP;N1K.I+K'M$Kz6ე130+!),03=BIJNQLNNLJIEGEEGEDEDDIGGJLOQSY[^eoqrrtv|        $% %')*,**,)1/19=>BBEEJLMQORMLMOTVTY[`\\\^^`aaccceefjmmooorrttrwuuuwy|~|~  !#&&$$&(.02202558=BNZX]jovqoq{~~ *46;;<HMOOPU\_acc_ZTOJE;9;774242211-*,--**(%%##(*(2<AHKPWUW^d knsw%z%}0557<?DDHNWXdda_bdgipuzxulquuxzz{}qnluvxxz}{{!$'',0110.0353388?BITVYVTLJJLIIB@=@?@@;66;833658;:33;=EITXchll o l omomooj$g,g/g9gVj`ofrhvmyrz  +..883&$[][XTOGB?)~~|zurkfc`^[WVWh|~~_HE@9*%#  #())027ADINNPZ[]bdjoqt}dgd`blnjje1i6i;jCiPjWnalmnsoxszxtsllgd`[XLB8.)($ }|}|yuutm^YTLJGE  zu}xspihd_^\YWTUYY^^akknlklkkggkgd__ZWUMHFA?A>>C?IHFFADC??<<:<9:94/*# ytrjg`[VQJE@:50+$ zupkd_Zfiw}}tnjd`{ x sn l gebbU"N"I$B"ABA=7530+&$!"&'&+&     ~zwutrmk"h&h+m0p;kBkIjNhQcNaO\LYOTOQSMXG^GcLlJrBvCyB|B~>=3/.,'"uid _W#K%I#D&D(A(:-2-0*-(((  &#&*/5>AACAHKRUURRSXWZ\~drgqkexYzSxO{O{LLIDB6tg_VQLIB<: 30&!4;>@@ FJMRWYZ^afhmsu|}ojhe^\Q>61)  "'+.;f@_D]EWOUSPYR]KbHcDgAhDqCr>w<y5v5w4~24420+((+0225<><4   %*5:>ADHIMS\agkqz}~| tvro"q%m,o8g>bM^Q`R][[[VaSeTjTjOeNeLhLkJmNpOtLuG|G~DEE;;=;3),,&$ )28<FIP[iq}rcROJJMPRW^dhiaTOHJJR TPJF,9/;9>@;C>J@R@WCZHdPfUu^|ikn|wurnrrkhc\Z\\JEA@ACHHRTRRJHHE@@AEE<<94    !$&.",%,,02:6D9E@EEJFEPEUIcLfOrQxS^`ccgmooqwvrr|~ +Ieze{{vu"',./3=~>|ByBvCrBlJcL^GXGSMOQOTLYO\NaQcNhIjBk;k0p+m&h"hkmrtuwz~     &+&'&"!$&+0357=AB"A$B"I"NUbbe g ln s x{`djn}t}wifZWROOMOPTWUPORRY^c_cc{^vatcq\n_l_idjde_da[^UZUYUWQTQJIKFODJBK=J:H8J5M3K2F0J-J(E(E$C!EEC@A>A<A>@><6624/**%%#""  wroojjko{mthnYbH_BZ>X8S6P1A/:,5/01.4&6#1#)"!%)6643./1;=@@EGMQTYY\afku|~tmk~kzfzct[oWjThROOLJGG@91,)$#&+2%7'<*?*D/G4N9P=XC]HeOlQtJsJoHqGnCoCjBl=n8q3s.o.l)iisy}P-,,*(#"" '%    |to g ebVONG?=:81.+'"                 zxnd^ZYWRRJJE@>6* "'+.0356500."   |wrhda$\'Z$d+r1u;s=w?wOs`kekgnlnmrvr{uhddhmpsz}## %+05:?ADMSSWW_dZXSWZbdkklqzv"p&s)z){+{,{016101556BDIL{L{OxOzSxYkegqdr\~ZWXSRRUURKHACAA>5/*&#&  (((*--0-2(:(A&D#D%I#KW _diuuv{e{ez+I ~|rrvwqoomgcc`^xSrQfOcLUIPEFEEJ@E9E6D2:,0%,",.&$ !   49<<EEA@@EHHJRRTRHHCA@AEJ\\Z\chkrrnruw|#߃*49;;@EJKO_imprrsx}}|}} }     xn*n6m;nOs_xhxmu'&!$&)..156:;=@BGILQTXY^t}xxpssnmmihfacca_\UPOOMH<;;64* |ywwvtttlleb^"^%](]*`'`%g*o/q2q9j9m;m<m>o;q;t>vAvH{F|C|@9469741/,*,-,-/1147;HJO~P~RU|W|U{T|R~O|JOyKvHvFqHoJtKtOrRtUrTqPrKqMmOqRoPoKlKjPhMgJcUbW`T^ObKbHcAbC^F[M[JYMVRXWTYSYX\T_VaOcOcLfJiLmJkJhJhIfGiEm?p=u:s:p5z.!"&!}zzxxxuwuspmfd_\\ZUTPMH>>@<6("xifcdhhdd_a^WY\\WYY T UZZWWTPTRJHHFHFFJ KJFFCFEEHHJF>962/',# # "#    %"#%''21/,- 2472647/126467;>>AAA>@AA><>@CC@@@<;@<;7,'"#^__^tucnak2-2.48/data/record.png0000644000175000017500000000521711567373661012660 00000000000000PNG  IHDR00WbKGD pHYs  tIME4*V# IDATh{]}?3s}ݻއmXC%(DQF-UJ桤DRJԒP9UJ#UmZظ12!A&aQ8`lp szƘ[G:sw{ \lvE27$9y$nֿKND-'c=96 JP]KaG' wcV'hHH >~AX?386֬^M1˾W N P7:C3M9"j9Rh-wػw/fgFO:] "rå+ΑcM/l$W_{?< pPRU U(+QsMDٳvv%t%ʳϒg9iu{L5i:t`B'c{. r?]oU-U4iN6ܱ߼FzLlncWӌ1R: t/ӭ;r zm/nIP&e7λo0GI+)&M 175襫Z-nF)ng3ko[#9!q\`bsӡ_H+ϻ$ d")6 ex| Y\hЙnu!! "H HE!daT7^WL1D[Km0IOv3|}-1QB @="aZ`=w+֌gy@#6\:jGƓZ/^6l}fc2^~Ad&H޲8bRu֓$5hMJ#UTJ)t>RFV8*_}rE_cbDG徝 4Kc-",Op+W ZdkL2:!PO I[\96ۯS.]OĺZ/6׿_glz1FU6H3ÆffLCR$6q(QfacZf&l3F)v̷X{+rY_ME/vNPOR3| La> >b Xm |hN\ x8JHn[/6~vbt\hM:r t\xCg" %C?◆BTF#s"+]ê#w[ܹg?{9o0V 1h="is V xۦk=6hYǮVjy= {wp` Eo̯A T+Dq/}0(' Zs6hkm@mi3&'YU.Ap$ /ƪQU5ȭCkמǶ~zh~]BaC,ޝ9](moy)3p1ݻ%P[ N =*i63к` DEQ%>g'^N^ g4Ziv|wH @taAXE|OA%XEm?'bYQ "FH-IˌKT^n0 D@Er(/2徽>bo¢(DgSO1Zp)­VF:$a\O$PWת }dl 7}TQND `^VmwHFf 9gȬHR&wj)^)$S]v3D?xcx83Yjh]RǚZ!|᪷C%R %H$5S6ee'>ξ3Q!)ȃ{~B55'5 4]1`r^[ORʉ 1+iBj 7JK\{h(}RyC1<_H.y?ӋՔM91$b9hJ&M E8밢\5$ZOjD~|ৄ7QJ]2FY26$ZDIN">FrP5k QՆNp/5 .:2 VvF%$H[ѴIX,s5"=R)d -`ch%Uzi?ȒB7=C:Lj18P7i>tucnakcor") or die; $t=128; while ($s=<>){ chomp($s); next if (length($s)==0); ($w,$h)=split /\s+/,$s; print Dumper($w,$h); next unless defined $w; next unless defined $h; $iw = int($w * 100); $ih = int($h * 100); print Dumper($iw, $ih); $bin=pack("ccccc", $ih % 256, $ih / 256, $iw % 256, $iw / 256, $t); $t=0; print COR $bin; } close(COR); tucnak2-2.48/data/usaca.txt0000644000175000017500000000151711567373661012530 00000000000000CT Connecticut MA Massachusets ME Maine NH New Hampshire RI Rhode Island VT Vermont NJ New Jersey NY New York DC District of Columbia DE Delaware MD Maryland PA Pennsylvania FL Florida GA Georgia KY Kentucky NC North Carolina SC South Carolina TN Tennessee VA Virginia AL Alabama AR Arkansas LA Lousiana MS Mississippi NM New Mexico OK Oklahoma TX Texas CA California AZ Arizona ID Idaho MT Montana NV Nevada OR Oregon UT Utah WA Washington WY Wyoming MI Michigan OH Ohio WV West Virginia IL Illinois IN Indiana WI Wisconsin CO Colorado IA Iowa KS Kansas MN Minnesota MO Missouri ND North Dakota NE Nebraska SD South Dakota NB New Brunswick NS Nova Scotia PEI Prince Edward Island NF Newfoundland LAB Labrador PQ QC QU Québec ON Ontario MB MAN Manitoba SK Saskatchewan AB ALT ALB Alberta BC British Columbia NWT Northwest Territories YT YU Yukon tucnak2-2.48/data/tucnak.png0000644000175000017500000000376411567373661012674 00000000000000PNG  IHDR szz pHYs  gAMA|Q cHRMz%u0`:o_FjIDATxb?S,>ę@̌O^bahJYE=U f&&KgϘ|L (^JH3@1Qh]9dbDŋ  JoU{vdPRVbxûw߿ϠTČ  Jkw&o3ȋ0(*i0,ZǷ 5@̇"L|<,i~Z >: 18gPxA3cc)) g@1 Kt'.ǀFe8w@,^"7D22poÿ<&z e F @8@ ~batG Y0ga`Tc3gaD@8_T\BBvÏ? dٙx ~}pg%T  $(x Dj.b8 9!b1|T2;99T 1>uD 8/^00113hj뀸>%vG'gސ`_{ -]Vv.D8}ԩDvێ ߿ge32EC : 9@qAUe9:A˷p)`Mv/P*zbÌpqq{-CϞ1D'3 2 ))I/3,7P(b &=MJFvZ?By`{@@ _>}fPUdS@ lΐܷw8Ç }vN.?bmmm+׮0 ?f _ '7oP >Bw@67/_EKTΜ;9Do`W^e8v8CPPM޽}?š/@ψ1888pg! &e;ógO*._ >_#='W12>s`05gf caL&f ^@,  {YXAg@ #3EK9}86"?vL\_QY忌u]KW.\N򿺱GW&P +@\{@63}g`˕f&Q`)5j0@~2,Z_v"X@G15$@!;2#: Vff#3y \L 1~v֧v211<{AJRn```8~(4>3'gB xjo3|%Ǡ lAj^)IqOfx.\8 w`DLQOo_2dg 6`S(24V˜mIf0<|a +Py m:p( ? LYP+ B+ de[wpq ߿@O# @b);Gzyf>10^ F@ *D@1~n[-Q/>E ˶7@ @ Hi3Ar_h>fBj)Z Ϭ}P^S#`&{Y: @u< \EAccD.Uw3|?F/^9w)og;}  (v6C$n>pSAtIPӟ,{Wk&"a( L:0{ @XIENDB`tucnak2-2.48/data/lat2-ziav16.psf0000644000175000017500000001200411567373661013356 000000000000006~~~ہÙ~f~<<~~<<<~<~~<<$fBB0`6>000p~f~fff<<@`px|~|xp`@>~><~~<ffffffffff~v66666~`?@ABCDEFGHIJK*!LMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~#A=Z`^dy}{B>[a_ez~|T9 %%%%$%CGc%Q%W%]%P%%4%,%%%<%Z%T%i%f%`%P%l%Xnpb j%% %%%%%%U: DHQtucnak2-2.48/data/tucnakrc0000644000175000017500000003654311567373661012437 00000000000000# This file is generated automatically. Edit only at your own risk! pcall = "" pwwlo = "" pexch = "" operator = "" global_operator = 1 padr1 = "" padr2 = "" pclub = "" rname = "" rcall = "" radr1 = "" radr2 = "" rpoco = "" rcity = "" rcoun = "" rphon = "" rhbbs = "" default_rs = "59" default_rst = "599" qsop_method = 1 total_method = 1 as_disk_qso = 1 as_disk_min = 15 as_disk_fsync = 1 as_floppy_qso = 4 as_floppy_min = 40 as_floppy_fsync = 0 as_mount_floppy = 0 as_floppy_path = "" as_mount_cmd = "" net_if_ignore = "yam0 bcsf0 ax0 ppp0" net_ip_ignore = "" net_ip_announce = "" trace_bcast = 0 trace_sock = 0 trace_recv = 0 trace_send = 0 trace_qsos = 0 language= 0 cwda_type = 1 cwda_device_s = "/dev/parport0" cwda_hostname = "127.0.0.1" cwda_udp_port = 6789 cwda_speed = 26 cwda_weight = 0 cwda_minwpm = 10 cwda_maxwpm = 41 cwda_spk = 0 cwda_leadin = 0 cwda_vid = 0xa600 cwda_pid = 0xe110 wk_wk2 = 0 wk_usepot = 1 wk_usebut = 1 wk_keymode = 1 wk_swap = 0 ssbd_type = 1 ssbd_record = 1 ssbd_maxmin = 15 ssbd_diskfree = 10 ssbd_format = 0x10020 ssbd_channels = 1 ssbd_samplerate = 8000 ssbd_plev = -1 ssbd_rlev = -1 ssbd_template = "$t/../record/%Y%m%d/%H/%H.%M.%S_$S_$V.wav" ssbd_dsp = "/dev/dsp" ssbd_maxfrag = 0 ssbd_mixer = "/dev/mixer" ssbd_oss_src = "" ssbd_pcm_play = "plughw:0,0" ssbd_pcm_rec = "plughw:0,0" ssbd_period_time = 0 ssbd_buffer_time = 0 ssbd_alsa_mixer = "hw:0" ssbd_alsa_src = "Mic" ssbd_hostname = "127.0.0.1" ssbd_udp_port = 7890 ROTAR = 0 rot_desc = "First rotar A" rot_type = 0 rot_filename = "/dev/ttyUSB0" rot_hostname = "" rot_port = 55555 rot_vid = 0xa600 rot_pid = 0xe112 rot_serial = "" rot_timeout_ms = 300 rot_beamwidth = 10 rot_saddr = 240 rot_model = 0 rot_rem_rotstr = "A" rig_filename = "/dev/ttyS0" rig_model = 0 rig_civaddr = 0x58 rig_lo = 0.000000 rig_ssbcw_shift = 800 loglines = 3 skedshift = 5 startband = "144 MHz" gfx_x = 954 gfx_y = 672 doublefont = 0 slashkey = "" ntpq = 0 dssaver = 1 CQ = 0 cw_str = "test $mc $mc $mc $mc test" cw_speed = 0 cw_repeat = 1 cw_ts = 70 cw_allowifundef = 1 ssb_file = "~/tucnak/cq/$MC_$O.wav" ssb_ts = 70 ssb_repeat = 1 CQ = 1 cw_str = "test $mc $mc test" cw_speed = 0 cw_repeat = 0 cw_ts = 70 cw_allowifundef = 1 ssb_file = "~/tucnak/cq/$MC_$O.wav" ssb_ts = 70 ssb_repeat = 0 CQ = 2 cw_str = "$c $mr $mn $mw k" cw_speed = 0 cw_repeat = 0 cw_ts = 30 cw_allowifundef = 0 ssb_file = "" ssb_ts = 300 ssb_repeat = 1 CQ = 3 cw_str = "qrz?" cw_speed = 0 cw_repeat = 0 cw_ts = 30 cw_allowifundef = 0 ssb_file = "" ssb_ts = 30 ssb_repeat = 0 CQ = 4 cw_str = "cfm test $mc" cw_speed = 0 cw_repeat = 0 cw_ts = 30 cw_allowifundef = 0 ssb_file = "" ssb_ts = 30 ssb_repeat = 1 CQ = 5 cw_str = "de $MC $MC $MC K" cw_speed = 0 cw_repeat = 0 cw_ts = 30 cw_allowifundef = 0 ssb_file = "" ssb_ts = 30 ssb_repeat = 1 TERM = "cons25" term_mode = 2 term_m11_hack = 1 term_restrict_852 = 0 term_col = 1 term_utf_8_io = 0 term_charset = 0 TERM = "cygwin" term_mode = 2 term_m11_hack = 1 term_restrict_852 = 0 term_col = 1 term_utf_8_io = 0 term_charset = 2 TERM = "screen" term_mode = 1 term_m11_hack = 1 term_restrict_852 = 0 term_col = 1 term_utf_8_io = 0 term_charset = 2 TERM = "xterm" term_mode = 1 term_m11_hack = 1 term_restrict_852 = 0 term_col = 1 term_utf_8_io = 0 term_charset = 2 TERM = "linux" term_mode = 1 term_m11_hack = 1 term_restrict_852 = 0 term_col = 1 term_utf_8_io = 0 term_charset = 2 TERM = "sdl" term_mode = 1 term_m11_hack = 1 term_restrict_852 = 0 term_col = 1 term_utf_8_io = 0 term_charset = 2 SUBWIN = 0 #QSOs sw_type = 0 sw_command = "" sw_autorun = "" sw_respawn_time = 5 SUBWIN = 1 #Sked sw_type = 5 sw_command = "" sw_autorun = "" sw_respawn_time = 5 SUBWIN = 2 #Talk sw_type = 3 sw_command = "" sw_autorun = "" sw_respawn_time = 5 SUBWIN = 3 #DXC sw_type = 4 sw_command = "" sw_autorun = "" sw_respawn_time = 5 SUBWIN = 4 #Unfi sw_type = 7 sw_command = "" sw_autorun = "" sw_respawn_time = 5 SUBWIN = 5 #Stat sw_type = 8 sw_command = "" sw_autorun = "" sw_respawn_time = 5 SUBWIN = 6 #Shell sw_type = 2 sw_command = "" sw_autorun = "" sw_respawn_time = 5 SUBWIN = 7 #Shell sw_type = 2 sw_command = "" sw_autorun = "" sw_respawn_time = 5 SUBWIN = 8 #Shell sw_type = 2 sw_command = "" sw_autorun = "" sw_respawn_time = 5 SUBWIN = 9 #Map sw_type = 9 sw_command = "" sw_autorun = "" sw_respawn_time = 5 SUBWIN = 10 #Scope sw_type = 10 sw_command = "" sw_autorun = "" sw_respawn_time = 5 SUBWIN = 11 #QRV sw_type = 11 sw_command = "" sw_autorun = "" sw_respawn_time = 5 PBAND = "50 MHz" bandchar = "a" qrv = 0 psect = 0 readonly = 0 stxeq = "" spowe = "" srxeq = "" sante = "" santh = "" mope1 = "" mope2 = "" remarks = "" ok_section_single = "" ok_section_multi = "" qrg_min = 50000 qrg_max = 52000 adifband = "6m" cbrband = "6M" skedqrg = "" band_lo = 0.000000 band_sw = 0xff PBAND = "70 MHz" bandchar = "b" qrv = 0 psect = 0 readonly = 0 stxeq = "" spowe = "" srxeq = "" sante = "" santh = "" mope1 = "" mope2 = "" remarks = "" ok_section_single = "" ok_section_multi = "" qrg_min = 70025 qrg_max = 70500 adifband = "4m" cbrband = "4M" skedqrg = "" band_lo = 0.000000 band_sw = 0xff PBAND = "144 MHz" bandchar = "c" qrv = 1 psect = 0 readonly = 0 stxeq = "" spowe = "" srxeq = "" sante = "" santh = "" mope1 = "" mope2 = "" remarks = "" ok_section_single = "01" ok_section_multi = "02" qrg_min = 144000 qrg_max = 146000 adifband = "2m" cbrband = "2M" skedqrg = "" band_lo = 0.000000 band_sw = 0xfe PBAND = "220 MHz" bandchar = "d" qrv = 0 psect = 0 readonly = 0 stxeq = "" spowe = "" srxeq = "" sante = "" santh = "" mope1 = "" mope2 = "" remarks = "" ok_section_single = "" ok_section_multi = "" qrg_min = 220000 qrg_max = 222000 adifband = "1.25m" cbrband = "222" skedqrg = "" band_lo = 0.000000 band_sw = 0xff PBAND = "432 MHz" bandchar = "e" qrv = 1 psect = 0 readonly = 0 stxeq = "" spowe = "" srxeq = "" sante = "" santh = "" mope1 = "" mope2 = "" remarks = "" ok_section_single = "03" ok_section_multi = "04" qrg_min = 430000 qrg_max = 440000 adifband = "70cm" cbrband = "432" skedqrg = "" band_lo = 0.000000 band_sw = 0xfd PBAND = "902 MHz" bandchar = "f" qrv = 0 psect = 0 readonly = 0 stxeq = "" spowe = "" srxeq = "" sante = "" santh = "" mope1 = "" mope2 = "" remarks = "" ok_section_single = "" ok_section_multi = "" qrg_min = 900000 qrg_max = 902000 adifband = "35cm" cbrband = "902" skedqrg = "" band_lo = 0.000000 band_sw = 0xff PBAND = "1,3 GHz" bandchar = "g" qrv = 1 psect = 0 readonly = 0 stxeq = "" spowe = "" srxeq = "" sante = "" santh = "" mope1 = "" mope2 = "" remarks = "" ok_section_single = "05" ok_section_multi = "06" qrg_min = 1240000 qrg_max = 1300000 adifband = "23cm" cbrband = "1.2G" skedqrg = "" band_lo = 0.000000 band_sw = 0xfb PBAND = "2,3 GHz" bandchar = "h" qrv = 1 psect = 0 readonly = 0 stxeq = "" spowe = "" srxeq = "" sante = "" santh = "" mope1 = "" mope2 = "" remarks = "" ok_section_single = "07" ok_section_multi = "08" qrg_min = 2300000 qrg_max = 2450000 adifband = "13cm" cbrband = "2.3G" skedqrg = "" band_lo = 0.000000 band_sw = 0xf7 PBAND = "3,4 GHz" bandchar = "i" qrv = 1 psect = 0 readonly = 0 stxeq = "" spowe = "" srxeq = "" sante = "" santh = "" mope1 = "" mope2 = "" remarks = "" ok_section_single = "09" ok_section_multi = "10" qrg_min = 3400000 qrg_max = 3410000 adifband = "9cm" cbrband = "3.4G" skedqrg = "" band_lo = 0.000000 band_sw = 0xef PBAND = "5,7 GHz" bandchar = "j" qrv = 1 psect = 0 readonly = 0 stxeq = "" spowe = "" srxeq = "" sante = "" santh = "" mope1 = "" mope2 = "" remarks = "" ok_section_single = "11" ok_section_multi = "12" qrg_min = 5650000 qrg_max = 5850000 adifband = "6cm" cbrband = "5.7G" skedqrg = "" band_lo = 0.000000 band_sw = 0xdf PBAND = "10 GHz" bandchar = "k" qrv = 1 psect = 0 readonly = 0 stxeq = "" spowe = "" srxeq = "" sante = "" santh = "" mope1 = "" mope2 = "" remarks = "" ok_section_single = "13" ok_section_multi = "14" qrg_min = 10000000 qrg_max = 10500000 adifband = "3cm" cbrband = "10G" skedqrg = "" band_lo = 0.000000 band_sw = 0xbf PBAND = "24 GHz" bandchar = "l" qrv = 0 psect = 0 readonly = 0 stxeq = "" spowe = "" srxeq = "" sante = "" santh = "" mope1 = "" mope2 = "" remarks = "" ok_section_single = "15" ok_section_multi = "16" qrg_min = 24000000 qrg_max = 24250000 adifband = "1.25cm" cbrband = "24G" skedqrg = "" band_lo = 0.000000 band_sw = 0x7f PBAND = "47 GHz" bandchar = "m" qrv = 0 psect = 0 readonly = 0 stxeq = "" spowe = "" srxeq = "" sante = "" santh = "" mope1 = "" mope2 = "" remarks = "" ok_section_single = "17" ok_section_multi = "18" qrg_min = 47000000 qrg_max = 47200000 adifband = "6mm" cbrband = "47G" skedqrg = "" band_lo = 0.000000 band_sw = 0xff PBAND = "76 GHz" bandchar = "n" qrv = 0 psect = 0 readonly = 0 stxeq = "" spowe = "" srxeq = "" sante = "" santh = "" mope1 = "" mope2 = "" remarks = "" ok_section_single = "19" ok_section_multi = "20" qrg_min = 75500000 qrg_max = 76000000 adifband = "4mm" cbrband = "75G" skedqrg = "" band_lo = 0.000000 band_sw = 0xff PBAND = "122 GHz" bandchar = "o" qrv = 0 psect = 0 readonly = 0 stxeq = "" spowe = "" srxeq = "" sante = "" santh = "" mope1 = "" mope2 = "" remarks = "" ok_section_single = "" ok_section_multi = "" qrg_min = 0 qrg_max = 0 adifband = "2.5mm" cbrband = "119G" skedqrg = "" band_lo = 0.000000 band_sw = 0xff PBAND = "134 GHz" bandchar = "p" qrv = 0 psect = 0 readonly = 0 stxeq = "" spowe = "" srxeq = "" sante = "" santh = "" mope1 = "" mope2 = "" remarks = "" ok_section_single = "" ok_section_multi = "" qrg_min = 142000000 qrg_max = 149000000 adifband = "2mm" cbrband = "142G" skedqrg = "" band_lo = 0.000000 band_sw = 0xff PBAND = "248 GHz" bandchar = "q" qrv = 0 psect = 0 readonly = 0 stxeq = "" spowe = "" srxeq = "" sante = "" santh = "" mope1 = "" mope2 = "" remarks = "" ok_section_single = "" ok_section_multi = "" qrg_min = 241000000 qrg_max = 250000000 adifband = "1mm" cbrband = "241G" skedqrg = "" band_lo = 0.000000 band_sw = 0xff PBAND = "1,8 MHz" bandchar = "u" qrv = 0 psect = 0 readonly = 0 stxeq = "" spowe = "" srxeq = "" sante = "" santh = "" mope1 = "" mope2 = "" remarks = "" ok_section_single = "" ok_section_multi = "" qrg_min = 1800 qrg_max = 2000 adifband = "160m" cbrband = "160M" skedqrg = "" band_lo = 0.000000 band_sw = 0x01 PBAND = "3,5 MHz" bandchar = "v" qrv = 0 psect = 0 readonly = 0 stxeq = "" spowe = "" srxeq = "" sante = "" santh = "" mope1 = "" mope2 = "" remarks = "" ok_section_single = "" ok_section_multi = "" qrg_min = 3500 qrg_max = 4000 adifband = "80m" cbrband = "80M" skedqrg = "" band_lo = 0.000000 band_sw = 0x02 PBAND = "7 MHz" bandchar = "w" qrv = 0 psect = 0 readonly = 0 stxeq = "" spowe = "" srxeq = "" sante = "" santh = "" mope1 = "" mope2 = "" remarks = "" ok_section_single = "" ok_section_multi = "" qrg_min = 7000 qrg_max = 7300 adifband = "40m" cbrband = "40M" skedqrg = "" band_lo = 0.000000 band_sw = 0x03 PBAND = "14 MHz" bandchar = "x" qrv = 0 psect = 0 readonly = 0 stxeq = "" spowe = "" srxeq = "" sante = "" santh = "" mope1 = "" mope2 = "" remarks = "" ok_section_single = "" ok_section_multi = "" qrg_min = 14000 qrg_max = 14350 adifband = "20m" cbrband = "20M" skedqrg = "" band_lo = 0.000000 band_sw = 0x05 PBAND = "21 MHz" bandchar = "y" qrv = 0 psect = 0 readonly = 0 stxeq = "" spowe = "" srxeq = "" sante = "" santh = "" mope1 = "" mope2 = "" remarks = "" ok_section_single = "" ok_section_multi = "" qrg_min = 21000 qrg_max = 21450 adifband = "15m" cbrband = "15M" skedqrg = "" band_lo = 0.000000 band_sw = 0x07 PBAND = "28 MHz" bandchar = "z" qrv = 0 psect = 0 readonly = 0 stxeq = "" spowe = "" srxeq = "" sante = "" santh = "" mope1 = "" mope2 = "" remarks = "" ok_section_single = "" ok_section_multi = "" qrg_min = 28000 qrg_max = 29700 adifband = "10m" cbrband = "10M" skedqrg = "" band_lo = 0.000000 band_sw = 0x09 tucnak2-2.48/data/norec.png0000644000175000017500000000735111567373661012511 00000000000000PNG  IHDR00WbKGD pHYs  tIME$ǢvIDATh՚K\UzWuzƀm cE%Ho"6 ab,< "C& hPVda 2e@~TwUWWխ{9'{]dtUUq}|_]4{FV0 p}@_m8Fk1}^ Y| ~o |0$HBV *0 =% ^#d&$ܡw}$p]`ʾ9p~ oHh]oO(5`>0 $vp`R`6I3g裏[8=Bk D(*d*Ch sY֜9s_~_cCV v>,_kԜ]+ K&fv =mZ7 a.\R$Ix饗Rck;i΂xîɁм!ϸw PV5fʪT[ 4!a>Rq /@XD4M9un2!Wvg`w5`hXUb6@j 7Dv  !MK.uyh4|Wh4prpThtݟ-+0eYx.YjYwzB@d2b=Rnh L[sE&8.x뒦)=Gŋj5.FkAj >)98DI2K6Ҁ~nt@bjbzIw>4]& nΫؐ&X0|Aǎ9yz]}Zhpߧ8Hm4P(ӚRI&'YcP`8ӟ.n% EK|J~:\T;7^{ߣ|EP.%ZZ(p`mU 6Atv+330t!NS$a~~~29 L.HSV၃^YS,t]2HM&N"ՕfW)|1l̰2=80y@' Z=v8p3Mi៟aRacjY&' Cv]PI1$IxFغr%cQ/IpvvR"=bNC_Jf*f73 'չ9.uѧ)N HN#*ݦ5NbL>Os{6V E1DnJcv.i;1`ir*F~3^']X`ZE.B07Ip$xJ!1tJ%SSggYY(df#|?JB!vvv~#Ӥi ˿<\)1B0jevՌq]53C֧*}ƠBkMǜ?0 v(c11oJ\*J$ R}$P>DaHsb"Bn4J)y 'x",o]sJ6I:ѣwhie롄1c0RfBHI7IwޡX*| =0?ޏzJ^"(bx( #G81jQ&S^fggڻ` 4eT6($DU4Y.210!(!GAzLIv".x{KJ)|gdd5RJØRc>*J lkM\fe| *JR+R e Mʀ5qL5l҃@(" מE0^{-W[qǩW*gd.G\&c++(ufkMo/;ꑝ&AKYa9siJU1xafV<:ʕQJ%OqPJa!v:˥U Fk8S ׶ DV5v8xKETҔqѝNDQDU)F!}6`XdZeqtRӵï $AHJ1e yΊe;*\j5{K=cRRP8N㻻('IHJZZ$%r/eVÐm%rs٬u:,.j5ݦS c'Zx[?Z%QZm q0@} G~#+i;Ẕ!IɎR|r4 {?cH)u& | 5~ ! բf؞%77kp+wX'MmEuuY}> >McWJ՛}OEDQy$viC*kB[Ԥz3֜k d~(0fnlS(I<#)iV^P()fRDCJIhY\\TzHA+-qPq aOZj̰5Ny8#c&U6"USSJ~ m[L[E͚u0=={<N&D OK1ZIA - Provozak cervenec 2005

Logs



DATE   CALL   CTEST  

Created by listdir.pl, part of TUCNAK ver. 1.23

Valid HTML 4.01!  Viewable with any browser 



tucnak2-2.48/data/tucnak23.png0000644000175000017500000000047711567373661013037 00000000000000PNG  IHDRHG?sRGBbKGD pHYs  tIMEi;^IDATHǽTA0evd81`( m",z6U_b9N"ʑ}6 KC[imS݌,?)Y^9׼ /$G@Nm)#?iH;6E-!om:į $PCall - $TName

Contest log

Category: $PSectName
Sheet Nr. 1 of $NoOfPages Pg

Band: $PBand
WW-Locator: $PWWLo

Call used: $PCall
Contest: $TDate - $TName
Contest QTH: $PAddr1 $Paddr2
First operator name: $RName
Call: $RCall

Address: $RAddr1 $RAddr2 $RPoCo $RCity
Other operators: $MOpe1 $MOpe2
Transmitter: $TXEq
Output: $SPowe

Reciever: $RXEq
Preamp: $SPreamp

Antennas: $RAnte
AGL;ASL: $SAntH

Sum of QSO 's: $CQSOs
Average km/QSO $CAvg

Best DX - km : $CODXQRB
Call: $CODXCall Locator: $CODXLoc

Countries worked: $CDXCCs
Total sum of points: $CToSc
Declaration:
I hereby certify that this station was operated within the rules and spirit of the contest and within the terms of the license.
Date:
First op. signature:

Contest manager:
Call:
Locator:

Section:
Claimed score:

QSOs:
Correction:

Final score:

tucnak2-2.48/data/tucnakvexcokres0000644000175000017500000000122511567373661014031 00000000000000APA APB APC APD APE APF APG APH API APJ BBN BBE BKD BKO BKH BME BMB BNY BPZ BPV BPB BRA CBU CCK CJH CPE CPI CPR CST CTA DDO DCH DKV DKL DPM DPJ DPS DRO DSO DTA ECL EDE ECH EJA ELI ELT ELO EMO ETE EUL FHB FHK FCR FJI FNA FPA FRK FSE FSV FTR FUO GBL GBM GBV GBR GHO GJI GKR GPR GTR GUH GVY GZL GZN GZS HBR HFM HJE HKA HNJ HOL HOP HOS HPR HSU HVS BAA BAB BAC BAD BAE MAL PEZ SEN TRN DST GAL HLO PIE SEA SKA TNC BAN ILA MYJ NMV PAR PBY PRI PUC NIT KOM LVC NZA SAL TOP ZMO ZIL BYT CAD DKU KNM LMI MAR NAM RUZ TTE TVR BBY BRE DET KRU LUC POL REV RSO VKR ZVO ZAR ZIH BST KEA KEB KEC KED KEO GEL MIC ROZ SOB SNV TRE PRE BAR HUM KEZ LEV POP SAB SNI SLU STR SVI VRT MED tucnak2-2.48/data/_4o.txt0000644000175000017500000000142111567373661012107 0000000000000019.2206 43.5167 19.2398 43.4689 19.3112 43.4310 19.3277 43.4190 19.4595 43.3891 19.4870 43.3751 19.5529 43.3052 19.5694 43.2512 19.6106 43.2292 19.6243 43.2292 19.6655 43.1872 19.6902 43.1831 19.7177 43.1831 19.7314 43.1711 19.7452 43.1872 19.7617 43.1852 19.7864 43.1571 19.7754 43.1451 19.8221 43.1090 19.8386 43.1130 19.8441 43.1010 19.8550 43.0930 19.8907 43.1050 19.9594 43.1110 19.9731 43.1210 19.9841 43.1150 19.9951 43.0829 20.1407 43.0107 20.1654 42.9986 20.3220 42.9544 20.3302 42.9383 20.3714 42.9303 20.3796 42.9021 20.3577 42.8438 20.3192 42.8297 20.3055 42.8176 20.3055 42.7954 20.2560 42.7571 20.0967 42.7853 20.0555 42.7773 20.0446 42.7591 20.0528 42.7188 20.0748 42.7168 20.1105 42.6905 20.1324 42.6764 20.0775 42.6198 20.0885 42.5956 20.0940 42.5854 20.0830 42.5591 tucnak2-2.48/data/Makefile.in0000644000175000017500000002442211737315443012731 00000000000000# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = data DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(sharedir)" shareDATA_INSTALL = $(INSTALL_DATA) DATA = $(share_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ HAMLIB_CFLAGS = @HAMLIB_CFLAGS@ HAMLIB_LIBS = @HAMLIB_LIBS@ HAVE_MAKE = @HAVE_MAKE@ HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ HAVE_RPM = @HAVE_RPM@ HAVE_RPM_PACKAGING = @HAVE_RPM_PACKAGING@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBFTDI_CFLAGS = @LIBFTDI_CFLAGS@ LIBFTDI_LIBS = @LIBFTDI_LIBS@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RPM_RELEASE = @RPM_RELEASE@ RPM_SOURCESDIR = @RPM_SOURCESDIR@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ TUCNAK_LDADD = @TUCNAK_LDADD@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = $(share_DATA) _4o.txt \ cor2inc.pl coradd.pl icon2inc.pl index.html listdir.pl \ norec.png play.png psf2inc.pl record.png sortdw.pl sun.png tucnakcor \ tucnak.png tucnak23.png tucnak64.png \ tucnakv.png tucnakv64.png usaca.txt sharedir = $(datadir)/tucnak2 share_DATA = cty.dat lat2-ziav16.psf titlpage.html \ tucnakdw tucnakrc tucnakvexcagcw tucnakvexcokres tucnakvexcrsgbdc \ tucnakvexcusaca tucnakwiz all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu data/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-shareDATA: $(share_DATA) @$(NORMAL_INSTALL) test -z "$(sharedir)" || $(MKDIR_P) "$(DESTDIR)$(sharedir)" @list='$(share_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(shareDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(sharedir)/$$f'"; \ $(shareDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sharedir)/$$f"; \ done uninstall-shareDATA: @$(NORMAL_UNINSTALL) @list='$(share_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(sharedir)/$$f'"; \ rm -f "$(DESTDIR)$(sharedir)/$$f"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(sharedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-shareDATA install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-shareDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-shareDATA install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \ uninstall-am uninstall-shareDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tucnak2-2.48/data/tucnakvexcusaca0000644000175000017500000000034011567373661013777 00000000000000AB AL ALB ALT AR AZ BC CA CO CT DC DE FL GA IA ID IL IN KS KY LA LAB MA MAN MB MD ME MI MN MO MS MT NB NC ND NE NF NH NJ NM NS NV NWT NY OH OK ON OR PA PEI PQ QC QU RI SC SD SK TN TX UT VA VT WA WI WV WY YT YU tucnak2-2.48/data/psf2inc.pl0000755000175000017500000000126211567373661012574 00000000000000#!/usr/bin/perl -w $filename="lat2-ziav16.psf"; $outfile="../src/font.inc"; $psf=`cat $filename`; $len=length($psf); $len>=4100 or die "File $filename too short"; $psf=substr($psf, 4, 4096); open FD, ">$outfile" or die "Can't open file $outfile"; print FD "/* Automatically generated by psf2inc.pl */\n\n"; print FD "unsigned char font_vga[4096] = {\n "; for ($i=0; $i<4096; $i++){ if ($i % 16==0){ printf FD "\n /* 0x%02x %d */\n ", $i/16, $i/16; } printf FD "0x%02x", unpack ("C", substr($psf, $i, 1)); if ($i!=4095) { print FD ", "; if ($i % 8==7) { print FD "\n "; } } } print FD "\n};\n"; close FD; tucnak2-2.48/data/listdir.pl0000755000175000017500000000611011567373661012677 00000000000000#!/usr/bin/perl -w open(FD,">index.html") or die; print FD " OK1ZIA - Provozak cervenec 2005

Logs



\n"; open(LS,"ls|") or die; $i=0; while($d=){ chomp($d); next if ! -d $d; next if ! -f "$d/desc"; $desc=`cat \"$d/desc\"`; @desc=split /\s+/,$desc,3; if ($i % 2){ print FD "\n"; }else{ print FD "\n"; } print FD ""; print FD ""; print FD "\n"; $i++; } close(LS); print FD "
DATE   CALL   CTEST  
".qh($desc[0])." ".qh($desc[1])." ".qh($desc[2])."

Created by listdir.pl, part of TUCNAK ver. 1.23

\"Valid  \"Viewable 



\n"; sub qh{ my ($s)=@_; return "" if !defined($s); $s=~s/\&/&/g; $s=~s/\"/"/g; $s=~s/\'/'/g; $s=~s/\/>/g; return $s; } sub qu #taken from URI:Escape.pm, sub uri_escape { my($text, $patn) = @_; if (!defined(%escapes)){ # Build a char->hex map for (0..255) { $escapes{chr($_)} = sprintf("%%%02X", $_); } } return undef unless defined $text; if (defined $patn){ unless (exists $subst{$patn}) { # Because we can't compile the regex we fake it with a cached sub (my $tmp = $patn) =~ s,/,\\/,g; eval "\$subst{\$patn} = sub {\$_[0] =~ s/([$tmp])/\$escapes{\$1} || _fail_hi(\$1)/ge; }"; Carp::croak("uri_escape: $@") if $@; } &{$subst{$patn}}($text); } else { # Default unsafe characters. RFC 2732 ^(uric - reserved) $text =~ s/([^A-Za-z0-9\-_.!~*'()])/$escapes{$1} || _fail_hi($1)/ge; } $text; } tucnak2-2.48/data/sun.png0000644000175000017500000000357611567373661012215 00000000000000PNG  IHDR! bKGD{ pHYs  tIME4h IDATxڭKW{o=5;vE62H(*,@Y6X쐲AHBF"2 DdA1xlgOtlW3Gc(!!`gX`uc[={BG}كKg{0݁V<{, ͅ(QD`x{VV>_9{z}8} T/9(;=vՀfhx(H5a#I!Na2MʕUw/\)ySՍC ʓyXAo-E &4Bh4 ,skm ^[?'C{@#=`q0=Dhucʀo,0߷DȞ_&}W>~|>X8z "|[:c0yEy>|Don_)TԁUgT"bÖ`5+ !/,[pW. fֱS9+&O>f"Q.ƉvJ LYBVwھ]UUv(Ɓn J$SwDȯF$ $myfע)juPgpTX3HS;}kHYR(($IF;+Zܱ:FSBΌbvՅ]/\ F%$ $2 HkI'3gZRFBK1ϽawUw޻y„s"BKyYzF #܆u\]SO_[6YW'@0Fa+gKza[;p5o_.jaz4=kj=U|^8v?I,I;l`sʪ T=ZU.v٢䳾ς1*n۫>9N`dmk}~KqyEq3rIܛ2gL> ~LA6A[#acKއp[|=)pZ-BTq L3e)O۰329O7ȳs]y|gϦ<=TR`7IW1#ݎ|Ӑϴn}7TM(&b6٭H>7#η[ў,i%BV6FᛯdI5E tIENDB`tucnak2-2.48/config.guess0000644000175000017500000012753411567373661012307 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-23' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: tucnak2-2.48/README0000644000175000017500000000002311567373661010631 00000000000000See directory doc/ tucnak2-2.48/doc/0000777000175000017500000000000011737317225010600 500000000000000tucnak2-2.48/doc/NAVOD.sxw0000644000175000017500000002145711567373657012153 00000000000000PK|819mimetypeapplication/vnd.sun.xml.writerPK|8'Configurations2/accelerator/current.xmlPKPK|8 content.xml\IsW)C\%Q3RJlFvR94@#X!OS9\JsPUrGK  ؇1-"G]C]b*52|!!SE5.2FOx^ㇳD[-U& ]NNGgGoP&'I&1N9YZG7 I:8ɠW%rsh؛w+vsS(C1B oxzN;KbܜS䊅cܧoр:]Z&}_?GM5:SyOjzXHCv vr[C)+>1(۞t 㣡,=9#-ՌG.H2~ j|oA"kKna  Cl{zjԢuUFx0C ٢Wc(X# ] ~m!.Tܳ.  Ar#tK~ ܦHl;4c>r?܆d:Qk M"Z^fDž,:reU6H"_a2ߑm(&HKb@##3>fzi1hMl11kնDG'H1'}|Y4!_{MuC972)[1!Jib9*=kUaZ-_.TeX8&K(4r8w&":Jsuc:џkeTnZ‹ ?HIxɞD&Ɇp7"jBP[gއ&byG$Ȧ?d[25hC97=0S5@ZvJQuGk9o13hcKnߴOL6u Qҋc+K(Y*u:>hH^+o]c[[zMZ[f)Ta jKXL.=`sF/ ]F s,k"5j a[ņ?$)S_"eИX+vV`k0V5 cbWp_8Wb粢I<޼XCG*;m:bL|γ/|ڢ4`;T->_gǘj693~SDN\\j!໙]{cyuEb{izc,Ͳ#K #bnIu";cцF'c86&5lDk;8 ㈢z/)Eϣf83v)-K`'ӯ4Q07lnʥoG bYn$e))ܘc@#]@'V٦i0}22+ !9mTtyo`Vne~ߧ:^g͡ 8{e#7i4IgqM $-jdջ^ +I_> JړZ16(dVOcjaB)lPY8`7Oann:g=%Nw7z5jhAra} o4͵ ݁$}9.l,}gL9bgP+'koaޮrAtdK4Qr,b9DCJ3r*.202-,Ӯz}V펡"wO}6¨M.uQw:n~hAi"9AU_dQ$:&{v8M)pH-0S[HQwh;LsY?qQg;JZ@܁`J20颖E:]= M!J/޺eGsZ7%t%ep%Wz&T>?Ӝ3dUkب#]@Adp2dQ*%gX@a#mRsp+B=Ec@D6gtCȢqvM |7I1^I9<`b%vT32+ЛW;e b +ETRTޟ@?3Jk̫meyT 27.9*i҄T?]7G)ԝ={Eh zBC㿩B'Vb"&Q)HBmozm;%2FrXsI附XEatsG>!N B5 ˥+8J%l/K(` [AGv ꌕZf{ݎ6^*gTfw+0fE"|(G{TQٙ[b!:lSR sVv %%sO[[0aG`pQ?kŁPiSa~Ii c׃3Ei,ڦ uƷY)GRkRח@9thgpPғ,m?rӓz(\Jl'bl f2꤯"(?͸IOv=Y*7 {zӿR;;÷ ÒĆf_̌=~*7 '@Egcv5pԢRG;w3>W ]i*S(Y$:5V5-ܧݹˢ/lU6 ֈ"v>|ϳ(Eأӄ`؄yF dVΤ5E2AD_~.?7;avw3sA]l{,!t?ݼ .^_}O=ݒ?KX\@Ȼ O/]z~ L?j0|u3_Uggk.Ar+mN=h?ʭj~?/5gZ_7稶 ZVZ-A"nw.Ɓq4#GeŦ Q> W bNq [Lpϵ#LQ𸖈_ޖ-Ivצ5d(' aḎi2]#*Oz &2c-1q{J+e'J S`to̻"Tz?1N}UΚa$ߔDjH_i񯽫2& k.X4l x[váͰ;L!^VD!@?+9:l]&;>[6)n$K RC30_M 2]E*3GEJb[C@g3 ;8lCyq:D2Q eL..Foq\=VLa2}WsӻA߀#Z@ Uc`(J[OrAԙ 1D2NKpiY^d*v]5SyMIGTR2pI0 PVApDwωTڵ@njBW gP z#H$"+RLlQ&pkx9"Tw= % Aɉ'Ʋ4@֬A0nq$"UJJV{ wum3OApdH C65G@4fT0)YKIsb40eTs=8{X/n3 @SFlK?r,~ŸD7!󢇄uv0!X8w4N1YtcbZ[!_3hKX>PM%A&ȊjE2&I'lai!^Z#ZVK0$ YßEMm*ߣ+Pݮ8a[\eԙRHH3cQDWTڥN[#`(;=Qt16D|9m}'o?kC4=DJ(6ݒ]C׷ͪ2**[X翎Ƃ "k í9&@dlw̑2PlXH9hì a޿EuXy%4U*1Aj4㞺z$,6Vv+hO3t4A-Z :Z,Voe 'wh՝G)˦GGua0(#fYSKۡj< W.ƏdDG ~5ͯxyA[f J` ƌsH!6Ot|@i=H_H YS}h1ur/ r0'Nx|9n|q LEn;42q MCUpLO)1h̎/ PK  *PK|8:Oddmeta.xml OpenOffice.org 1.1.3 (Linux)2003-07-03T09:41:092008-07-23T17:39:452006-06-05T19:26:48cs-CZ61P1DT5H8M48SPK|8 settings.xmlX]{8_rvKyPuZwB'$lDo@XB^X1=\A(q)FϬy|[// uQHikyaЭ)uU} yL([jo֫{jґގ<*\tK¯7'DxTih [ooqV7 CMW.%/غ7Q1)jo{?n}7?}yj l|=u io2f4T+bݺhy8zYZ9إhjz-!enZo5mS%CPdRQڂE; bKǨh%Kx({ )D_@X D[ߟf{d`hOKN(<19[QXJw0tw'$JAw4./ cEi0H\(peٰn2F@bZGa-m K "b@_* 00vjX1EI Ng?fB Še9dpui2ē(ǖ+urkoc1IX~ D,qd#")jTؒU+}:A%PJŒyER(*8eptq `;=]6xD_LC_L94_z1Mϖ_oß-6]فeK[= pgncL=U8ͯX!4W WOCc8 ?7,iaϼwnѪoF\D=q FoVE kc:wF|Ža#Iխ"=b> ㈸"JOJ5y4SW1&Õ+`F}G& \h ^*޷G^%-W? &LEuxZMr6VV1C9Tg |01qC]@\@`F^f?Hk gFryBXeQ8b,+i%ۚшf%s);z |[MH:XÒ n;ƫޘyPK֓PK|8META-INF/manifest.xmlAk17z**T-A=b$V}caUЖZ-&{oBnVl(D] }iܲ){?ﳉX+g*kbx|y 5iUM҇%x>m_b#N@@%K.!ϙɔsCnwmJ q$URF1FeUh)5n\)cd08kZJ2e]eMҎ]TZT !N]JOU~g&fFs(^Kc2G|gn䝥xsX+1ඏgOt PKS2(:PK|819mimetypePK|8'DConfigurations2/accelerator/current.xmlPK|8 _ content.xmlPK|8  * styles.xmlPK|8:Oddmeta.xmlPK|8֓ 2settings.xmlPK|8S2(:META-INF/manifest.xmlPKj!tucnak2-2.48/doc/README.win320000644000175000017500000000032711567373657012353 00000000000000 !!!! Warning !!!! If you run Tucnak under Windows (cygwin version), tucnak MUST be copied in C:\TUCNAK. F.e. main Tucnak binary must be C:\TUCNAK\TUCNAK.EXE Then run TUCNAK.BAT !!!! Warning !!!! tucnak2-2.48/doc/Makefile.am0000644000175000017500000000066311567373657012571 00000000000000datarootdir = @datarootdir@ EXTRA_DIST = $(docs_DATA) README.win32 docsdir = $(datadir)/tucnak2/doc docs_DATA = NAVOD.pdf NAVOD.sxw nagup: rsync -atuvxz --progress --partial $(docs_DATA) ok1zia@nagano.cz::ok1zia/public_html/tucnak/ nagdown: rsync -atuvxz --progress --partial ok1zia@nagano.cz::ok1zia/public_html/tucnak/ . cygwin: mkdir -p $$DIR/doc (for file in $(docs_DATA); do \ cp $$file $$DIR/doc ; \ done ) tucnak2-2.48/doc/Makefile.in0000644000175000017500000002434011737315443012564 00000000000000# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = doc DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(docsdir)" docsDATA_INSTALL = $(INSTALL_DATA) DATA = $(docs_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ HAMLIB_CFLAGS = @HAMLIB_CFLAGS@ HAMLIB_LIBS = @HAMLIB_LIBS@ HAVE_MAKE = @HAVE_MAKE@ HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ HAVE_RPM = @HAVE_RPM@ HAVE_RPM_PACKAGING = @HAVE_RPM_PACKAGING@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBFTDI_CFLAGS = @LIBFTDI_CFLAGS@ LIBFTDI_LIBS = @LIBFTDI_LIBS@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RPM_RELEASE = @RPM_RELEASE@ RPM_SOURCESDIR = @RPM_SOURCESDIR@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ TUCNAK_LDADD = @TUCNAK_LDADD@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = $(docs_DATA) README.win32 docsdir = $(datadir)/tucnak2/doc docs_DATA = NAVOD.pdf NAVOD.sxw all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-docsDATA: $(docs_DATA) @$(NORMAL_INSTALL) test -z "$(docsdir)" || $(MKDIR_P) "$(DESTDIR)$(docsdir)" @list='$(docs_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(docsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(docsdir)/$$f'"; \ $(docsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(docsdir)/$$f"; \ done uninstall-docsDATA: @$(NORMAL_UNINSTALL) @list='$(docs_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(docsdir)/$$f'"; \ rm -f "$(DESTDIR)$(docsdir)/$$f"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(docsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-docsDATA install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-docsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-docsDATA install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-docsDATA nagup: rsync -atuvxz --progress --partial $(docs_DATA) ok1zia@nagano.cz::ok1zia/public_html/tucnak/ nagdown: rsync -atuvxz --progress --partial ok1zia@nagano.cz::ok1zia/public_html/tucnak/ . cygwin: mkdir -p $$DIR/doc (for file in $(docs_DATA); do \ cp $$file $$DIR/doc ; \ done ) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tucnak2-2.48/doc/NAVOD.pdf0000644000175000017500000070536711567373657012114 00000000000000%PDF-1.4 %äüöß 2 0 obj <> stream xˊlm㷏inBCv ldز% 5}l[lopotw^Ƿߒ?Go?[P>۫yI_&>Ƿ_&xRry}i ɼόרW83/7=2_~tmRy|F51z"6Cp#+nP_M.O91D蟏eM/A^WɒAܾʒ@^]ц+Q"lh ӯŽyCGZȫiI-`NrΟK#oB92NQbn(bpJMZHE#euVP- |+0*"O%g2a߾֟bzdh_"ʆ;@E,rڦ(It B܆/+wVBJA,Fp">H"Rb־aXnj3. MiޚeBw'k4ʀ\-ƨ). D&gfS&Y9_`wN" Ư)P}0;I߽t#+ѭOm C9( :9ϓE,sic9{@Fދlk\@S,_jߩST ȵJ؇uQi{?):vNEC, yCz%f(N6/ϪCE_ul}㋅ &;3{Ȭ}@26eũO[+˃1${\u3s: q.'j^Sls>f<ҹa}kcp(oQW88b3;9h\B=ŽM%t`SVkJ)TH 5f2l4%zl`DI=lThw`kjԌs]z QK(JrZ,!%v3y%-qztr *zzG;8ݙhMjJ$da8l3@i44 ę@ d rD:;*O2x2˭rêr}[׾sr␬d/LgnFf ܌C36ބeQn*Apk9\.+w*eE#L) D! 0*DZ P!h9кH=h0InމgnlAUKlOJ>Y0^Uq@y$F֒-gC=p<3h)?V}:HܶοhL60gOU #.0XU~aZ8 Lq%-Z4H5T;CMVLt"]z^r]J&&gh2jb,Jzd!K)9ꎤ8ic znkb7r&7aHP=[Nۿ6V: GbqAVnҥp"3c0^h|&2,&Cv9) FnK·6<n~~廃|KsK0"f9g)A=)2AJh> ; Vw.:A/EيXL@5{WC ar .,z[!pNpblz2hSijkJ0n2_a9Lgd4@P@d!RžgxcDh ).cZA`.t I8eÍpFcnc`CcAY.j wB,^68^DUqba*wyWb'5gK.Xs92|*D,{ʋG?Z`]Iူ>l0]Ly#MGc䁽{17p{R9æFYƆ9gG:${k>'*ܽ/7#El^A|WpٜרeIT1H6^[TE;4g%CO8wz/&E@a;vY& yaN&P{#@=E pͱ<`,1 Y9L_muhMf8} +4o989X+V갆U\VMؠ5oc]Ɇ$V Q1i6'g?\+ieIv8,ˁkb0bzFVi=iڱzEoЊ ]TXF۔(5Fo;c4y3ϸ3a#bޙchQ,{bkxƵ_w}G,ǕOZ**q pݴMuzY{/ WNnڑ('Vc14f5wwlo9It@aNO]NWS%D=z&^EY"_`v=hHBg,~Xo3阋h̺4Ƿ^ HK|{uZA!ި.PfT' 93-@6t@;[A3˻b3dlmH|ߚ]!Nf+OٍcUfx> Rpv8헧ʩ[+p)f'^r!BZBmR:#oDZ8w,++WbomrM43 u)XA),l⇥q=lD& ÙB܉E4, i7QNQvEP|-Ę9?HU=p1 ( R9J#@;D ~זNWf۰z_ W 7ֶ]8>.nt]8&꾾MRJV=u 8(;;}VU'\@=Bڋxl㩥Z Sv!vs> ~ہU`54-.hE'QOOJph^OܟY t?HdeVuH[_4,4Im{ "?y<"brsT endstream endobj 3 0 obj 4727 endobj 5 0 obj <> stream xSKkQI >6aUۅ1"t!BZh0"d:yf:BP|AzjkqۿsTw> endobj 8 0 obj <> stream x]Ak0s=,Q7eC? & I1k[!Mt=u~`{L0zrKX" 8yRetD%Z7] Nm/_c)Arϳ/fFKix"Buyb%lhBUE($;a%YJzht~ڀ]I=WCܩm endstream endobj 9 0 obj <> endobj 10 0 obj <> stream xsteo5vNl۶mĶJŬضmmT[wq~\k=c e5sGS #3/@UAAh rQP[ G tqvtw / n\ n Xy8x9\.ttX8Q9:yX[Z@ECGG  @jmQ= 6Xy;YĹhhmvNNj1Q_p)HY.rssebKYC1Z0:ݘjRH89Ӎ+?ŭ]ff?ݶupt_?sw'& kgw8YyY@g̊K{;E8:9:,L\8_W & `nm0ZZ;_hk7k/3_|7wtrE{  _`afepo*Xg-)`9<#L;tt6MQoX9_@G鿓:t&௝y?ڙz{k;ˎUGKI "v6d*i4Wv3'`tv*;Zs```?Iu+k3[/`?/$`hn` Psi]\Zw{fpnBafvy]T̴:[d{< cJp%7bߕf˂M\lC$ta&i v'QiӫrfiL?r삄y=|?M4t`b!VA D([B``^4+G/zEQ 9 _37Un ˔yO\$= )q'!WS֖fz'ݩG Hpd"2tW̃_CuxH)>6 ü!'d@ܚY6G(ThX}gcq¢}1X[c5c={r_dMK{7t5(L(՜ W3o7Xl蜵lS1܄.fZtʭ }.Kgib4^fj9fTYg!|v;"DTo<&J/T?&i5D)U tMN~u̚A݁.MY0m{LqQw@hQ*MC\:?$U6 VzSM Kj ʰB2EDnz гy*StncZ%5ώLGM gf ȏb1>c$Wٳ 8ϧl6c;h2k![-cҔߴz=}Tykak}'^JN#Nv&||9]߄MA1LЉsϤDB!3Eo8hX| ?R$qi?>Q.(2|}5u*Ѝd_z}rw%}242Rhx҂J×o"cC򭞻n[XuC{Kv;z~ڸõ w\7;KmwMWpg0'_K+sm~AI[J캡إ^UO=c>5gpnA29F%`r* 6=:c Ӥ.6{{+Mt`w@=~`P~ 2Q?~xZJg-t?5[rR..CFqxеgVҫ >zu}o3{ 0vi2&1u^OF,)EIb~W U9PO+ÙR&;$`dX)~A)E{kwp$Uҽ7хm$[^Sʤqnu9E`edR1?Y֌NߜU\mi\S,ih8H %2 }ZB ed{I;H_;^ ScǶi4)&%4QWD4/[|9-U'n?"T4qfiٚ,9-ca0A3tG4`bsûmnwy'̂C0Aϳ1w-+T8asѠ QjڰV9vi:?QIdJ/ys0Unkg3dG\mVۣ pGQ YX? oqnkT&l:+D{)ʵ.r-F' Cr/g9ȁ>mٔ/s{ VmC`Cjڡ-d^hUS05TfNS6<ϕ%Yg5 op[]m,(l $> lZձ{om=٨e(Ml/{C 3-0c3&oY}X1)Ԋ'5V|aEIܷ?MϠϣ)OSHGM>v`j+D7`iWђF޸UW\{°.4.}|NaB'!+_' xА Ү#>#;d " D[u 0o&=CHOe' y OL{ecXJZ-{hH&]qRcJc>ZrYIz ]b^4b& qg6)3'h qku-$r 휩RI{S_W<$̊& 51v} yK$:6GC>жk܇p {H>&Ǚ1!n֐t*.Uǿ@ɟ|DÉZel y,Fz04,ti*2\ݡ 7G7BMk_iOL3y8 M}lT:p kDT8}S9I8ggĆgω NI?jaj$Mh:͝xT'*',cQ퀘7zpS^0_ڼ&zcvjuiIbG,ñ+‘.7ךw~;9ܳ; _70aLlwSM.ٱQTʧY!N4ć &./E?gnbSrmu},J} .!JIjb7K$&FHMոj Z"AdFlVV@hw_A&o ^$iPt[%ŔHEb 24eEѺi$O^*O;':߻}WLd9[M-$)n-DD5geڜ6`3rӏ_H[^QFڒb2D*y|ueW6.CaWe, {2A5B%.l 3I}$R ֪4!15?bB>v̝6C__Nckh%R1Ĵ"M*sڇ;g={mkT&3N >BCP2GvL" s:Rn_e6H I,g4RA瑺?PzK'# 6^;]u$\L#0/~xKm{N57{l ͯg )t9 ]ա/HSp˜֑xEQ+NB X&M}A4k_'<6[-bx88#;*. .!:̎Wו4sWGZ[K F yHI} G M33( ywDǺFdYl}3q/)gX=ݶx TA &Wq3ub4+%c82-'0O`M n7,뉾ow 3o22T#廊,e;y[={E;Pr؄7Zku,:,@LiU!~'N:JȀ`֘]l)\ ;sċ.0Cg-a'w@tPz=y)opWE(tkڼN609"=TX9!Wyنd5KI?]}U<K^bzS#O~OO11L^)NiFJwR+˰_*9 ,d4|qI#CkJ}&kNEʳ^f;z,]WfMK .2܋ه"!rV|]6~ kLK>/zͰelVrQW(=mWꂉYu.掠|ӄ [ĉv?uT} /;~9_Fm 6^FZ2yl,-Eqpw A|in|'ȼz7_lj7a}.8]QVǘju,d!;Ԋ1t;F$ {~9H k8Ѣ  tBUiΛ3,CQe-Ʌ bp®lƿXHXQ0(~0F103ʣlz$֤I/gq4l&>RTq/Zێ"b>Jea§jgEC) 6)i ww: $7Y=&[k=pG@"ɆWHBDfB{2)vv!j:6>N6gD[e|_B@E`*LxN#Xo1!qPT`Mס }^aͩNCs'=,v> .ٓ 'ẔWx^ޢJ2񹤙Ĝ˳(eASaQQr+}vTMŗ$n+v0P;% eT),dhiH|u@ҥ`1QWӜe|Yie<)TrzO9TAg2\}$-\N:xkx]ȣS"ZRb%Ymz{}'qOjPyK#\w&9ܗCĎv~/ON/Rupm絖-ix.L-b1jOxۺz]>3U@Y Q;*׎Q>Ӣ" lD>沒Mslg7*5/0Be2zmϓ[ "aų[l(e[Afs#\a@̘鹬%?z;*fqF$&Xw/k(eK?8]1EkzZ,a.|Cp.u*.2L9U~gϘFtm3N7KVꦏbV$+F@7.̱Tn@U+*L|T"jD[iy/x])J#j~|}sK58}n3*qM^ldӴ6E8muZw..x.<]|f "-_; TX$*Cl(P^9I2j,043dMB͋.c I!aE:ܚsct}{vvt̀x q'7L'a2lD\ @9E mzIa2 }Ns5jPkΔKCOk?YZ5:2sS/[U8QeTNDw7ZIl7S[bNئ:j&hTS[T+N\ӠϘ;@/ZB_i #^Y%VK`O,3eu/GLGLocyWVqq5xEn8<[ M L/mFa^#W}gBMqrnO ~oOܹONF#饯$9<wH4(L|P![ E+>$~TܤWJNJ?w8 =q;Ъ0WX>ON#l-tנkv._ȗOA2lճ|$KC#X=!+!-'p{SIl?6qjUaxɲ0g@G_ـ9َØ\~ԑ vqH!w4$y ëg&lk$yCkP-M@6i8YAY!?x1Li%'g0 U4GC7j#c1:jy@ǝT$]{F8EKx @f=2_gR$A\?wn.L 7 J4޿bPmSPEBKImi:]t[8ǿ/QKLkCc.#(̮K?U9OGS3qkFY% xF uǢdGVz޶#*OrF٠v<{H~-\ٴiVӣOBGlm$vq*3H,!.kAVvFb&D5g(l:e SǓHlkS>jŋH~rwಚOE"waNpQ)Lࡂ$!i$B$=8Pdi)A6/>믶.>"|hQg1QU1;QrR٣S[r.$W/|ZH>C3 D`oaDzjm_[Ii ÆK&/b5D_>1QOy;"mm 8qnNn;9o9ZR[1(Yp곑Mj̴gaW][BùMqiF}]G0}%:Ƹp9\ uM u8S>3W|7 *:1ک٥lJ~|a=9(-ۿ^W\䣌qϔ!Cg.'/B@ OSeS8mAy3{;IQ8jo~Ui? 5/B9r =z[Ẃh2L]2gqxN}T/FEwUع:_P f'sFDW4=;6:5i4#a&S?"vwg"=͜aL3ҩ0LLagvBcn^Rhd8M3VQ#ލn?(6/D 3sC`:o{Ii@,$r4Hy}O$6Y黰b0UC'' ތIhyM@fNrz ahT0ސ뚘5hrCі_mbtP[,#tͅʯ e&* .Q'O_G6UDW{QeT5Z56$lfeVNPQS~l6Ż^@6~Л?,5^b,m (l4qo`k݇ΨS Sq qx'jrfy-)BcxǸwb 6KG fVC/ qx^mDZ'LE@`=t]%p&TzGؑNg=w]#:v 2bDm t<E V:<c* 77돗͉dz(P[ ܨ$+ Wfٴ7J;0=kHNz9aHK{e7 ;@ ͮ]xg;aR:?R:mV~8-oZ5TWf꽺ą\w ]cW2Vq-PDE,$C;6 o0"Ltevw \ԉ-)8A08׆_?md{N ƚg'% '~)܋w]6ОWG2G>xZ,%cEjэdFI: k;,l8x 9ĭ}nFG;nNo͞2@ t+8W= Bz -1+aUx`QG0+73WR*u6 7mU ;WU Nc52(G j*E}>oabr}9mk "Ǎ޾@P9rZyoo"0nH4JG8"273i'sČ8N!xTwFm1RƤBX Q=2X oQ(:7 ~󖙝bRhW>;>FkXμe?ۘ /\X`[LhP'{QB<[J'8CT1g#{9oi33qH r"𷏭 Jvϓ(xAN;˭U%R0Qtɒ JMY9$:eVg} !/oϭSQ3 W,{bYWPmˈioIo//PU1 )oC?-a$p].SVRMESMir/)]>( U$S](Z0}HEQM bʪ^P41puwCL(g:r~%'jH%uT$"*ɸ d0HZr8_2}=Y?xwC Q6>+!sk/j^B1;B,{ǯIEHV<&/'av &kF7_`u!}쒷iO6* Jdq2 kKTҝU\gq$^#MKj(A28:>=!A:ްP3Iz`~pe>zO̻8}NcβXdn4!dτz&W@UPBF8gv[,lWӏ|U-) r;DVS!r7l#Eg12> &Bzm=ƂI,G tӫbj^#zrвW(ffH#>K˰S?]j_.gwnE*O$Pl{m+8E&^ɵsCk']S|Ŝ9o}Ty[*υ1:_)|/אF!4Dm$\-yKL;|\6a/?dKBF/icu^(F {QW3OXkjϾ`7{76;Rzw\zb41ۿANjT^R+z!U[)JABx:$U}{ w@B [-x#i4;xj__fHvf T`hkh+|"Y)X4v:T +C:5ZbgS+g2C'U(!hgR^#6t.)|qr%nM#j+>ArxF;xz0eXX僧\@, ᫋ICEvیC- 5ŔPrnoEJ8EiaWNk0ݠw⻩̍}ܮ2> mZ+H!cS9p\dG:/\(~_ `yz(f֥"~*){.틶}g}Ld酐l&Au_ q{B0 #\DRQPB/{R$8Ia5=&RT=?>c#J\,**~' |ˏ'9؀̻Xk{EK1ފOeHФ&~i9B6)EOʸUMH}j' q0L6r8;`9kAat*o X?Qߥ!AGM[UɆ"X ~ jdꛏ=3Fc_9g|_lЬS![!؞~ >^}~TRNLIg;ⱩfHkn JixudgX>*K )Ut#$D#A |"*!*ɱ}Ҝ} 0 l~ ">\9 x7|"E OX3RvhkL毬>pZү6 ÖX8J#c9Y` (I!C{(fzرz잊_d!D~Uc'rPkD ~ESz}@.[#¿VjRH;E\2"tv[;cNjz{4([?>vC ipArCۍل˥)a#K"y{?T44Yp L!bÿP'QXvH[ퟦ 'sqmOW"$7w^ qlf XHV~XZuVt`ٞ`cHŽ[.ӓQs'գpk+ǫ0}0WM|[9Ѩ@1Iebr~qi}]gJ񀼑SQt_ 08N}Ԉcl"־N ΩU6(C?tl I^J8`F0<4!Y3ʋ|ȬX7 {^b) Ȓh|i y8\|Gޟy9RsPɄjWBP~^f&{hÏhY\^;$Wn-K0`wq $l/H 1ʺ~䱡;0_I.eWuG{D2~>:Y;* "/朷4i }(vZ7Dqh-ȟ[( NNV`r&.p>3*|SKm9k2+fxO!^CpVG+DMl\!;߽MmOe+i53J?i<ʜYF@dJ]ސʃ+>9#l59.\}ֹ h{Ϊ8wT@vKO<ʉ̑mx~j XG7tfХCaxV#zVMgڞ1MS]sF:-EPaˌL[d.h P7okr )02V|U\MX{Pvn .Z#!-UNa&M8%6X2.&t;$?д1 hflzq ~=ٖ-0mCGFrTzĮ|0gT-JU۠g*%g4zK'XS/gCS$TWAP!cE6a|4Z~鸘ن.Q򞔤Y_ S qF$OR ʪ@ٳ)!=`j@tl8B l$`¯g$/Ycb{ `7)wnQ]*{cIщ'cDI`,Cͪ<\«TXy}|ZBqXN[vh;]imoF ݬ긆+ᖝ;>8ꌗNb%d8&~0Yw8^-!'8kŦ4_9ͣ4HȈ{-{)iJ4Jxl5I5L'@ؿ-B̅QpHry23-6"T瘹;H>[+W җߐbKd@(:Q3j+;7I_%۾MaV+T$kb`S~ bٯ+Kݑ1WzuE`eL9d!ٟrzSN0ё!Z Im繳[RxMFkO|m1ªC1[Dϳ5'8UTmWP?(هmk},]NP 7Vx(u`J1׾X˻ΰXҖ[z C7saC.? @-:`VO}+yυ@#H lj$P۵4TQ?8Am9[@Ey%\MHmc)&jigi,w cl#SǛC۬IlK|QDbmv((~hmXjBʵ=()}sz:*c@BHZKexwkwD~9F>1,fpO>iPu_kbj)8H,FI' -%_|T0[ !7mC0#bMkXCfZ]Vr\t瀪`ќ~6#B r<iPQ4c̋~}]] _~wV]^O) ب0?)V AR}\$ dm˳w8J+\UMGL`5m(?lwh%ÿU!ڳm`SZMTJ!TR$qs}@r5( \+ޑq:?+YIp'Zy0o?wG04 |mVa!>XW q]{Sj9oYh.j{T݀VΏ@wqj#յ9oc%;ٲ|EdcP_~B;ga#'s_ߜ$|3]נR*tLN) [H>P|vK\"Y!NMN֒;AQR161/[VL!"vB{dQ#<9dAOd 0Ss9쩌JO#:R\#*|/ةiGkQn=!nj` <DTMz'=gL⣊㶦}-ȟ.^NQidr!pH>K!kإ8gU`b䯲.XDk O8}eYzI^%lֳD4!]\OQیzŀ`[(eU!OW|+}X5Ev/CݩV9~~y'Q=&/%1U'828 Md6+'=6t6xU3"J YTm |t *3ztP6<&yV[}OkfxvZy $EU`s!Pୖ#Py5y覴,OV% " 'cbUiYp֙BK, CED堣n񰣊 ?;rɫx3Dd G. aߝ*@_b!m*`P㆒ q^(DM#Gp-J#,ȹSLf Y3n,3_ή16m[tƱ㞑0jlGc!8>ɏg좆+ )*%]~f,93 =Ի20XRԜ .X9/^fo*R&9UîFgWN+6[{BjEהΛ(7{Y)%O@vޡۘ9i ~5h]*KbO]Ŷiy_FV,ӛT=+je~r8(r jx= 4Sl|;>wۺ "TTR[|$İEp:t@i 4:-e:m -HƭY*yZw/ZNPð:=RYhx Y S1o! (_tLc<ًա4mݏjtVXU< zFEFkw+ -*n=׬ S|O_2YKO>T"y.EQ!)ͷ;3hN@wzAQwX?q%l#/s`Q6x*Rע؁9Ì7\'FȈuG6Nҥ]} .2 };g".OeE!}VW^![+8+˝K g`}}Mxh}41@K񯑿fIf~1VT\9iԀc؟u_OņG{~bua"hM<^H?WEW,]&MWp¦PWN2F7>۪:el鐘;C܃b:i$%K J;Dlŗj: ?>:hY9pNc{EIĜuԠT:jghwCUMCiERZ C1Gì%*ި4zQ<[ =MԸy*cwVϚ PU"A.(dE(9eV gK|[ Kii3#Y  iLX3Ul{),brMc sL^)ĠOGcXJgzpiEr ]hFM^*vOGuå\e_& .Zdxz,n ? 4 >ܭGPi,xU&}5+h"Q++\pr\Wg/5:-wRo}~!X'x0X[*Ӱ~}aO'߿t;霵ne'UqhWVwٮ€ņ?Xtɦ،@,Ȕn}5|%E.`4)vdlS*ʙ-wżO6mryky"|kRpV A>R\iQ joh9ͦx}hDǣ L\r3cJP6iacQ*JLMŰ#i9cV,u/{>iJ,16ۂ&g%M'gd[w mZH:(DjrUo_ŕ#}m6fXH¬Q@*A: 4 á^/sDtosqyF\i =8IN #1b_6$GY6Cּ20u,I ?ymD1s`9V1S\ DF1~xA!^;p1\9QȃJ4u^qE۲ o#%)RF%En[bE]ʲ5SE؞#I 3}J aAh-)$"lu"9?r2;WشQ[ܞ|d=iȺ cX80y?pBɖ͎O0dw)jS恝BJũ>jn u܂#oٮatܵv@l]uǏyp׷l{!YQ͌obj mcv*`hS?)ͽE n|t֮`8&"cbcٍYpsÒ `O{ sʁ27!fXWg:=%qY̸Q1W";$6zo͵rWhg 80Og&R\6o/7/]Koć_ 3 )zU=-] ?rA%&j՚Plw:MѹXB8O$J0ل|6eF%F9,Λ%\㾆ϾvOBHAbL"BrZx1@=&;3hq*j^^ki<0~O3+*k>O&_ӟr>tvjP#xih yt{#e2Gfu/e\|~>p%7Iٞ2 T %:33H:\ ՟ʮ -ͣ޼9 U^tOBظw:_C<.YMJ.rQpvUgM48^`5Ey߿`;cP2P%-3c!)b4xղy'(@zXQk珀0ڎБO]63}pD]hx.]T(Mif%'T2 1j_hTdQf& _!&ɭCV,H'mܟ4p6$>*U=f; dH#)z0pgNH:yyuE*1XbNݶ#p?|jb>ǚgR@t}g` Rnc8uL!elt\@hn2щ0@CTKZ /ayl~ |t{:{Y*jdrKjJ1ee+<$V~o\_58sZ:5r~K(C&٫ 0i!S϶Qa[Oɦ8B a$ Ԗ=ElCdhhiZG(ϖ KEPo6\͔č\ zlj<Ρ42o'SIt8g9Moa3,T%D+2XVvKn^8Y=w5@RR.XCiAoQ V$:SXW$K'G>+`SM3rm]k꫺5G+gMRQK5xrm|p Il/s cF6ӄLC>f7״ɇ< cYFXX2޹XC#웚fSl+<nXJ1D׬N&ʼ\1Gsi^?`$ et꟢,d*Zڊ5VBf5hi^"g՜,up3M GebfdBRj٭?(ӭ bcJ Y*G88#R}~-8rSƷE~ut%phP0j]ieɘX Rbσlϑy#tli"C@KŔR^rK~_~Mt}RAm(zW*@cẂ8ް:hLE`m,(D;{%h~5ռ}P%h?_bw@ '7v !;E" ܄}N)9(cqvkЭ Z,=a?T.WgeF[3m ? ~!gy(q⭮h0LY159Cʦx7bC¡1S%[qsb}Rwry`u2Az`#tcځWK61'] Գgzow=&|:XӫKxR do=?a;'veu/|Ǎ l g4L}8+D-tըN,=VG?4ԚAM860ZP~qVN4zav{`)eF#sl[3#rAy:bKz˘" T0m\Q~%.`QYG S +e8-?Bsd~#<5t*NYp!BP!49jn { ȎUe8[LtfpaM  ')͋(CE0o~z.:lqTgNfIc9 6n\Sk߲ X*#rOũk54ұƷZyH >{t{XQgW揰\Bjz^H@wƻ`~jT߉h,n=h9<>%eO1dر. <˗&w(Us UfJq ̵ٌݱluC Qx_Y!b%*֫QhB^95Q96= z(0vPV]"Ȗ?o)%@AeȁɱOzL&8ް|\DW}U~~(͞?o k=}b[Z;6's /Zz Ӷ\G9&:sz,\Ԫ'lq9U~ųU*52S@ ƥ)kۋ_kbG]KITM m5MdN}aBPJĥㅌ~E(Q9$˺Pܭi$nJ GUJZn%,x}iUd?UJWco ͣ& c" fۧ® y؏&hܨDKe[܉U(QXW>OM*%N>/eh)Ɣ6@˙T-f(B4!UaA\=>V8`ͩSdpݩY?a̺$X_l?š/ = g@('8Pbmdw@l|?y@" )Kx ěJ]YLf :{dk򛁰Cx"n6{X [Ȩ 1s˝F)hp46qJB=-K9{W+#$f'k9KN9B4%-;yGCX;Nys5+"Tph”>< .m]HIQ-sA3IBK@A[ed^k0tjIB|*`F9OdzoYOu,:!?|`rJ#kx0g!B|AcU7,jmAc]O]kP`xuaP=qtHΒQi͍A G\)Cf!;f8i]TYO-rEU?NVwL4SL>'%P[.mB|O9Db W(;O,1ybzU.c1s@v4: J@b9 ª(J[EbՑjw󿸙DK="IuGAUZZiV3?0)/RxE%enTb芕#AcCse[*W0XYѼ8=̔Bcm2^y0a"_$G[s9,kR'GzuK~:orѷ,<FzjkbS0[]pen&ygy7$lyeƐx%k*u88̜ڠ \~_Po@&Yi'CXSEBZmK?~V*b7u L &9Im Xہ *k'fVI$_MA>5p,r tP@WAoUp'j|^w \)* ::%OwBdW'<~Nu|"!e=(9B;Oܕ F_VFi6Jv.-nT ʸ=EZ6Z]GRiA_lcZ֊] NG#")f~ܬ NaX-:Z#'KJR߀",d#Ȭ+8,uT|M..YJvSڄ0x:6mv7eo.k9 lZkJ[tz~l#d_V iy{(xϤjm!79#ao٤934Rtqq VyVn L[jI5P&Р44iܧp΃VyXBeNi \tB*ޟzUX&Q_'$Rz{q|Eyc?Ė7Z:[bc4 kw>!Xr&5oV ֒J •hn$d9p[vs~LTИB=k@36?6l[>Mvbtׁ5˄@UR$VGtZ?x& ^ ?^Jkij~!.bJ_~uG툗UGYT} jn,fOs1X旧FWydi">k=lvp%|Ut/§ptDڒ$m}(FOy3DvIݴAv Jۜ[/ w nl!2ۮҀB:'svS/ -FKPVGk42T_ N=;@IaiYD/Am_/YǨV(`k~@ > SY#kZ*K ȇQ@IXa PGwTui38*dzEm23m <$ *hwFT%A#+qL%A;me;f>\AsRR|kk4qaCKqM͋sUƄd&$U}Iziael3XѠAXV`/ fSn?B~ C݀F4S1\},ͪ%%&Bі<}AwD#>$g_Bbі8_Y;I2)$yYF簂MU1 P (KN|#E'PT)bZq54 +a8HM&4 u*#"POnWм g_j@O-p+=2zya VOajG N\'t\̥`|0B՚(ũբ36izSQhǎze-,og@F`z}Q2D;A։9smNuǖ\ k8[\<^[wsw0| , ˿J,vx2&/U< WzN m'[kkWīEUli+ǝwe 2YkbUFmIoj)059bTzRi )DT3)ZdQ@ޡmm$X\$9V Mǚb&]/ArN:'.^dɻgaJA- }++ޏ Lݖ\q3D\`4|16GYcr>\A` OK+8K:jkbŻ/}Jq|q)P3nλkr_p/1zJi׌^Zo8IJ]FB>JMW}b،j"u bZ \L7S-dy510v 釗 ԉݔHfY|^kZ5mo1Qց3d܎{Z>⃹&˯x̦7#^cWE p]?Lp$raInkK9ֿi:S"Zzӝ}+VNZ.!gڟ-(2zM?UӅFgifTԼQN"(l# xP:i-j2c ji. V4e䟰?tg{U^ga V(# D?U7@Ic_s&,@wV K\31Oaf{i8ő%9>k I<.6ֆkS MQ ƙ%R4>ʠ/rN9p6 C}YA$`x֕oFϽYXAcYzւUl3[/1GIܖ:X*FPrUEp|/σ4%1,(62hv>RdVNZϟPL3;4 g6$(,P(21;NY"dܴ _^&`nO%|šCgL̯HtY(z|W)'ݞK:/] Trryrj r삫X+3zQo nΗ3m"/JH=Dhpo~Tm5|)1quqqxVr͙*k;">Ⱦ!%Ch =֡Yf~4XݩN=܏\Tčށ֭GGE* L%$]$ #'9i3[zZI/.~;Z#zZ@vGUs0z wpڅ,$%P/HHW=!w$,KW+'+{&抰rhh * /#n5u`@eD|h~Ӻ+ӚЫ 1|^ur*fTw*RI՟ q0)ϚϭCcE%0Z {-G8e ]qUԭC`C&ʰ"0}LN//5 >-z#$A=uE_6NNW*řoXkFXkmχ4C4+s#|='X mu kl\2FC yFו(Eʎ~5>!ޭ*d8DH`C0vA 4 _&EhoO>\  GEMi H #l1᤭0sΒ:|ơXfd [c4k@ˌr|LSm:ReZ~h,s͢P(| +| /`-w4#q`ԤAyH &8vIqr |;B3Κ e] _x.X`nVż(9_QVTwn}~,VXvB4G "$ȸְhEi51i}Ƞ ɣ麯kܦ;>XEֽS#noҬS[,Ӎ)7a$k)cc;tMSm꫉j%9Fw]"aOg/H}8RMbhzӺY!~PpM*9Mm0Mc?_4Dbט2JSkǚ%zxi|pBJaJj}:gyƭbْ͠:OS-b(У\01ylN1=gH*o+Q`eYe %cCM=Vtbi$MtAm#qWӱFGƨzW?y7U\p^p_5z-Kga[ݩbL )`ʙ[/ICؒ{w^W Tb!P>x.-= o ]sqB+yuF#2B~3ZL14^#xtbfGAAj@!‚ؓDcSM e'U^:lxن1ZQlt`֥8R:t ([*+B1F&ÐDò!S$*+˹3.t1}OY$Yx"?Jƨ hq;Nslf=X^@Wsjyc~wUXjvxGO^GʠaY mIVuLqcdKnN+#Lq.RKɗߒ{P1 K_`PD`YP"$"$WH@0{e;r~FЬM ~B2Y&BOH`E) &t@YaVŸJ։F>X+$U;HNJ"H`hG1MeS32cg!W6*Sv]##T5ԣY"2|!z֠G.n\AfBy#mk2d%pT.-q,齞 *4pTK +jrMfBldҢey`nնBZ!GE%F>k*%o]IjWr@jyK58j4Yp}9têl%aF qY`z ,c̝PCχg9OqDDeo+sI~{ 1\ハRt(t_dr-~Ac$"ع=4AU}1joD4l:45θI{kN&L %: "vGQ~]I)Y"/+ D3k |5?TMCPՏ-L檸AO,xc:. V>т;v#ypt4m|j:p~G68Z>ӕyH<8.p}>zWQ{}hCL"4_׈*q"Pn7quTyT9ݺk;Ng}w-Ҁ_uwC1Or傞ѯ0OdzΖC2 ̰Hq#/D+:קGHj CFn٣ۤXڃfRRN C*}Q`g}irss).G`+KYQ+KfeR:ֆYƃ+# kPcbMx=}=!@-pI`gR $, Z8j4IuJ9N,ɯϲ·f*.gaQQJz -+:'J2)Ġp%zUwɩ)e[ JHXo4<2ޛMdY-;w aBrB_UQv˾C>=ec~XSER=dBkgWP 8jJw?v)a^vLz1DaZNi21 f_IDIJ1Ϭvt$'zo\wP0`HR nYbwb>:FG|Bd B3Ѳ7KE.bo";?{QU lo5<eA3+98g& >Z!ÝA@Z26o_ɒM >tgDۯc_ԡ>XQJEa T_3 fy\qN2u_iV4j4RzbO9_=_E;7\,GJ*SvQvti91Wfj:kh )m,^IbSSGd,Kʇ^I ۇALn"|Jʁ?i3;!{kݥHK^vwuo+yP\]/Ό>"&b QK=|x^F G7,[F  zY;,ZAɷ_g:\]lEə)㠭Boc8:s?f)Zk!70_&uD:{"uwX]Ct}R3ZqXGSrz˖>]赆o[ JbfhQ(nCz^g`v%F&{ְzdOW`:VAIN$u9Hw͵&^5ǵԂzrr2Ⱥm+n`Ez+>2Y*-kj֓mIKkep]QfUF9݂Fp|pcry7[| ZO7mn쩴sDkFgdD)X/.eʴRWqy¸>7 ZQKW3.Ie'Ҋsa50!1_zLsV)jN:_U`:K17즣crU؞唷;xyt*FYڼ8Y^߯94 a(ʂ BwD4ߛ _1i[4dfhYw槦H۬ވ"jKT`m3dɪ(&koz+ T UZ:P,:O"uԙitbԹ蝎~'Aa06H&F`κ)_o3 H/^M;?*Hu>} ü회Qpն_ycVc %B3PA'fIb<6@1AU5ImWYUmz@d7aB F.Vb .[:靕cA<‰łc;-7 ,5aY`C\]h+E:꣬y.}Rcc&B섕PF7Dbvtl0V|k3 `ͪH?TdP @}mv[IUGZ8{vq,$Z7RW?*DCOKV=djP1(>a2=:=o(R2>;tn܈"d)3G-+jZW.Z ϩx[3&'NG+oGx*>ɩڰ~ !QˤiN$/=%Nne!)V=J]Bj9nmsUZm4~VsPkR_(&p5}`76aD-V#a^ GZU;k@*BFƐG4haH chTbE5[*-) 4|pU^ua<9!nBa@P%G5k{ ˅5ת.+fX=(فj)v-O]ë'4# ޕcw3¸PoΣ72K[{-fr.PddUGr,O?'ChYFڵl\&X!ܯ64"?6?Wu阫ԃIw22/ȸmwvh@J{<1~KE vhC~rR 0PDhLYRV6Mgq8kfe pi3E$6f}yJ$tQV&Y%Xtjt]\5m.{sPs-5I{! v!ydz(||83> (NJtU0߷xB6EK;`TwGK2-sʡ~Y7( boJ4xJ-QB̒UAsh^"vPtFc I*4FiBY@!VJ>Oj+y+eIB* \#l⡝cuUFG"NaP[%߾+2=iγ(4 Y]?Z0f?wNQz |m57`Qd7%{͓8c ^n9b^ilG I q**X'UEnCYިvb@)G ;BGֈ9q%Z7 SEbg,FƘTMy6vP- 鐗1Ky#(FhxYkqWgahd`v-CH<:љM0&^{QG)9c"a3fG7 t[n@k|72H3ވ Or*QtmpM}eƚnbpF|+(XO""+Kh~ʾwO'.|ߨX(AP9f-R `) 4VN >\9n:[L8X 3"ʁ"o'U4Fv{_aWX.j6!%hpʀ0SFDm⽅vY]d6+%eF- lod,H%X?Hجt`:S ) 1 z(ֺLP2I< O6*aiO%ŝ)XH!\ֽpx\!>IZ@Σ:Y$d^]RK-AS˼Iayky0apg2NL*vcUwJ}Vb>'wMqSEveVԻ20eFDV9In)Qvf'7[ 6#mJhA.o\9Jim}%ѱ [3_94끕.&^u [ɐ{ uŪ+V3m%4VY)N1bЖf(_0 zfS& \yӁ΁,m(:HتV3YF+GCM:6\؊P?s|0 ddeV<C@y aƟ,EJ2..h4]m{أد9sVJA^>zDEMz;}[ɝ#APr@fw%^s&!kNL$΃Լ(*B׎IΣԵko`NnpM` $M 12^N[ 8GG&N ψvuqy~މ-iwD% xJenD Oebf60_cț7%#Ǽe@ڕbVN3N,+_%Ar8BKBea܄:ܾ3c8HA6͹r>3m{ܽrKqE*̲J>t4&|nnJd-E)$>QUIyM@F9Gz,xJF]?KAН_ǐdo L.K2.(:9 wxpˁiܭY7Xjz4MΖE/1 `FEvk-'su¦:M/p'?%؇} fKK楒'. 3rNCdWZ" n_0q>CA5uGU(A)w y꛱엚h?/(k!鴴٪xr M٨RJ@JG>ZfZ D\(V/@׳X=e \Wy4uoeH\SRŶ=VOX[rӬg3p Q8 ^2uNAw !XօI0i4u D\CrnkU0"J4i"\Ubg~i:,qd(9W (0YGWG"8S፩[}ïVz`bhgX$CqO$= GG߶>!~u{5 [S3Dht{d&"kLqT'(msXHEf=Ǽr O5~׎Q9( Zdt%O5%vS%Ѣ8F `0qy h:72轻ϴZh# bqӇZ)xaZ wvå}˷+FIc,IWjJGg))dMb854^2Q ګdO96یEjRLfEWۗ^Nh..s)eeWhiÏe4pdjȪIƗ,cj:Jwu\^"X>EBFir#c[Լ)PqlOQZLxV6:@UB?ZVBT%C]t Sd.zOĞt@QǗVwRzqw/z3нvIy ؏䞝goSc"_(GQ)ER~Pc8۪{yl+}Y^H(Ѽ(~pLFh]'e4|_/ZD&-.A CJds TOܓeBo(L&d=5O,Ƿo)xJG5z?_5$-VC 0o{qe_W*OkAr]l`ꙉŹ8KKaiz76e+4y ({RŔ\Pʼ\O”S6DPQo}$!X-[g!D\OFv4L(7@IA,Fi$DS닊}79FV#bwFI5__FԐSЖ¶?}?+Ȝ_&!<4xb =F;C'Us'! 21йmcX}ER~38S\m_*cĽ,}L-Hkf] Vz8N-@&3G@}lU; y uߎg>{ո2{OTs؃qu +4vizZXI0y=D,fR( ymZOYhI0 SMxXGaɆ.Қwj=ELy}`=faUU/&܄jnNpu[ m>Be=TJ|,a7hC ߩy3>Z[5/;;st"1Rҭ +|Q-LDĩ=׀b}X'_e iе3pD@mrkp87M[4ъURz%oɂ;KP64 lVB#Qһ12Y+;_ m A*d)'%X%F'd>W<:V3q:hg1mz ᏂE܏|¯ϳMn-g-hOvanp>]WyStS97[e> ̈́N ^q9<1ؠMP܊r C$->ۉӹro@].paz{ RrT6"C10YG5=eo[Mǹb8ǹ|qᚶ!!iF^wI^,bj4q @2Uuf(}4_RV34} n= [dRW<ڸH; j/ yߍjIobl C_Cr>iP ~(M,#gxN 䇎KON܎p0;pK$wW?m l{6 DůpcU9C&툰U>̹#7rUȱES\3OD^6F~L+t"~=E"8#gm% }UyBe,OW'䡰׎zɛdKmA!C? |baBőGC*!Y9_jC)Hr;k@ Uц#C]<='{KF}"=ƓHB(E+ZI4P,.kcmysNyut ӹ|e5_/#.jލ0#kt3Bq[c3!R>*4jMDAypp*ҌNPz_uATv:"tnah/4$+0aKAt_Ff Xw>HEY H۩ (o&ö;e0*ftJ尰2a% qT+P'VdRT "Z'{gKkXY~ U]w(;StnJ6|&9emߡq3{4oMyɪkc]_*D5Ӭ qRP jVKV9(Lͅ[Wi 2oMщ*Wrޅ痪pUS)얔A{=AG,~Lq ϴh1h(i H!7eUfmMqʯi#5,gLze~:.>j;!έ_zgFOc[  @C-&Plkmo=(9 gO=Y۬|auĉ|nt&d^{/#T4~H*=s<[ q$Yod.U0☡JoIc5UDOtmI h\S4[~sV+3ފ54.Er*?z2 3FD& fdGf iwn{/z `,LgQƧUO9!RSg Fˣxw+U~aYn'ު3 ~m,ԝ LiU6}FPEz6!w1Aᯊ8нJFi@61m=wo-sNc3 !cGL UЯ>_|7օrU'\9H/tjH~3m0̗a| ܤPar3㤵BUrn2F-S͝ov? t6n@.&D_TPIiC+6K錼 ?3ء`~Jm|r{ i̭ vGNyJ' %rStIƉ~&|2KGți{<įFPn3Ŗ*78݉h" #'h16p٭h= ѼKte5bi@[[sui)YΘﮘ!nY$"ijG(u 6K;caT(ģ/ 1)$&39@DlŖ|L4k"TsImD$} ˖]V  2 ȭlB'9s:OxAF0H$7Bua+1C x⵩6NO"RqTwRYgH}-C',u-M1c! $j}K}_nѻhȔ ZT8s9fOipvύCpɟy$d/yi8:}AlߊhFnSEPöެ1\J5@=01w|nyZS)K;AZ_@h FAmkD`Y#P8AsñRbwY3abGԏ3^ЄS@Ue>/smtA #! .27{~Ժ$Zc#,\K ĹQ@'cp>*ci6"ܺ|_<`:j]"ބ-Q9{Dgf@8p9LME{Y\?$CJK^׺2ooф^#5{S4 (Bk U:Yńiľ0mNi}햤A<%Jv j(& vJRes\^k ͆%EjQÖK (Kl]Ӆ8%F ӃP|VT${v֋OLleN^lS_Mgȏ#y3;#xt$TpI8RlʟX.2})5G|s='?70q -8wjb{p;Ir 1zWoϷ/Y<>,~:F4\ [O5:ъ̤gOG% \{Qu,hԕ <-ҍ| ~m_ ȪEZ#%'L $iKWht-fOĮMp̐%\ڕAvJ`-.j0uwYT'S : `d&V`+S ๵ݲ ގ#= 7$4*3"In5i-Q.3$N*&qJot$,"6fhVANW٠Ay/% sewg|hhs(' 8ˁDOj>qnq 'ْzؚ4u؟`ԔT]X(bM$ c܍}bnܙGgSWU)) ! Ҥ}U/zѱ`C. ZՏŽMtjV{7EQT X*[H0Q0dTLAD3dܼ[M zIJKՌ46}lv99(ܓ~ qcң ky䏍R@9du e_1X' J_&Y.\Wlq!?xRGӠI)DbV^ZUΎ@; RAQggL)Q܏,8D%P^y6徢/0LKxOOM,@f=+(~Lq7l(Ö(6Q=fPK>2c!?Ҏ"p_+tiZPёc$ bz4 lc 6k  '씜ɣcs]B%A8liX[K+uݬ۹*ARdOY+p_ے[,c?EKlR%wec)zq]&s\T"B#w0-Q2`@5qE V30͔Ъ2o"Y\q(}PD?X _C<Q&vpKt0 oWwwZbyn7$|_#xϫqh$#킜˷gzym_eU |K慮u{WYpq,=y \ riv"jl#ؐLj#~۠8k;z ƱOLd mHH^e %tCH`Lb~”;Ϙg=٥-\ۚiyNQH靡>G K,t_]Zv–@a7zߋSK!lf#:=v,,rq,# b;#[>z|-5u Th|Xz^< qAxfNd'G0V:_uZM&sSVO0&N ȝC1 ~T˜ 0h IK{ M uZ6)=mC켓C$3q٦n6J=6 kC[$<<#0=DQ Ua4 _(">_qWbsUD..}tiHzľ Ƥ#T̎{]{ļYal8@b =NK`CC#B@~QdzGE^ k߿AqZ$.00 5d@8e@C5X45<ϱpD4,G->M?WuDs {eG- 8fۚƐ!jMrņڵ6!G@|gGndH`"U;R-~C;f9cU}l[ώ围~_WM4Q$pbu&E:B[/{xy4 qW>V l˕;TwQV ^e*1:3<y]=[AAtaU?qe@N> 7`̩8|Ղx!nd Umx"`vb1J}e 8OxڼĠ8_-^Cֽ9.7[hlkaݹگ_3gTip73oK1?LK;!j䏺ʗtSBЪ|)Mr?\ 4˼TnmĹYJ㿘BZvҽ[h91Gvbxofgx{֗Wp͒_A*ǩqQsX. Mi3=Kdɠm"wrS)J|NX(drT/9(7x?j:R;B7 +quHs|+CR-Fp뮀vZ;[Oaj 1d, H<%wnk]Dc$ɥmL3E#YÙR+/[xˎGP ܢm8$,n36&ukXŜf!os߽r}aW'5R^v?y|u6S fuKB)D:bg+{ C>V U!Vѧ\# _L(Q/Qeqt׬$a]X΁6@5}(ˣ6 CC>(Y"R\Ev6~dpc*\i Ҩ1hDWJcYz7}A ̼V%:H K8BU9$xӅ \k> f4Ԉ?+ѭ$~4 ̚6Õsڞf\Jڸ3i:}g[[tđZKY3HN}OEGm6C_[; }= p>?䫬`FW}Z=r= (Fr`Mhyy34+g ~ ߒgJBrPZ$t/<(vJA]JUљe?1j)t>4ЉƩ9~Dwi)K l75d:*N5So{)'b}t~)m6 *t&`*xw`05a\я:(6'si2gH/RAa{%j4Hl.(bq83k BJ{A?!قٷV^nǴ }( ܆q7쏓6a$Q=٨*Pb#0i#$䙇{>(k?y̪[/C5l~uxZ8<صy Er녗$揬-߸DfuOSEiE0"(LHhW}[M% =@FL\8SbbFWlWpCkѵ8QeNĒanA52K=Q60)|Mux<grAcgzE_kwV'ěVR9R>Sε5$T|B#d1 E?-^!)} W[ !&zf}?!|ɢZgVɡC6/;r2=s*]ݬ;DWq TE*JڬN~`ly"(Sm0zax{G '{AB!Y4?8׀WqHy.JF^M$g~{_Y2+[#àJ.bZ qե=mKy??^s4ey.2 \gfʽ'`QQh33*pWtO?Xcx+>#4') whK$jQKNɯ)um/^moHG\`4*2p"'\9oнYf-aBGL2f !hK@H?CD}c}Ye+0Gs^‹.?lNpZ}:SbCHK@d^<.lw:oʼH==򷄁tY|> s1#ӻ6r-vĚcR8]k} M.'q1B}}AP#i;l)Y3=߰85]^j lx1}c8y2̇pY ~'%o\u7f`CYtP+Dy'C6#eD7d4ɟxޔ,Z{щL^r4=z\.`qCH0ƲnvAKeHBդOec3osJmE=J-[ѰFX%w<~|51U[G) 7=(PRnYP*MO-P!7l6]΃0-7my.i5Zwq]il1F]"!JW) ";d N7%%z#C j{T?kk_SVx>ԁT"`wa V2Э‰ NGHGbq~@ˆGVXm$ΏQnPa1+ U]ɛ :o Xx- p|鞖9 ZP;#=^5R6Xu>䡡SsO'߼ ߫B*pFJk**Kf S~9 V?r4q~6h [Y>57eVҀSB+O8r+_Y"n!E|ku?=Qm [ʘ@r1!-kru$am ),1y2FIQk>)D㵦%ğz]J^4="MK2bky~FtD)gUh Y-m"ų~0S#b򥲖ӱ-uZXi~6ܓՊfbKu(\c [cwqd!&>O]9nsdAJ IJ'7ީ/Jt= io%buqg;7XWgz3䢭;}NvWfz\Xhໆ{O3 hK&$G:s rVQbc8%U.g9F= '|[\cVpgI]uqZnhmȱ FLB Fnlm@8ȧ8\=KvNȒӈJh%u7(&Y'ry'b!+473iԒoBнjһ3zVW`HuoƼY S4+TB)K)'wEZA\M+NiC0y|+b/h#ВQaC9Ol(@yd/Zom@9_҂CǼK0CsxU*n~N)9Gé7z &^:C,"` G=]5sq-D?Ƚ붋-7Ig ǠǯBK"5@Żz&#{t?~sI=6c zzsKҴ qi}47xzݶ | 6%=di0c1}03Dn4 f\'g ?eXАBy`54NOJ kI8FХ4Jo6O0d˅χI! u-: {— R! %p+j=ZT.=q&\OH &KddV(v\RLڀ}[q%AK3]g{=Sw -~~g3mπM[oi \>/D3Ĉ-"&Dbא0Al&˶W陃&ֺ4 ލq7&n#x,U]2f CЖ`/j@D!޸<~\%a;_e5 "HȰoBE#}3p"4#Un# Sq0eƲ۠jo%6[6CW!XFǣ6$2Dmv pS:eѯ*/b$Ͷ&TaR=?ɮ< u:7Ov2E K"{2M`]3иIa)*XBx`}u G bcgYWK; E*CaUФ[?sG}}# kӾ\2y=֨>8w6Ym @s56"R*S8e>6k?PY_C#߻\aGL[J'c7gZ1(Rs(UDUl;fK&:l)b$}~vΘ]ox1Y Ǖ2iP!)rGĈ?EJ\jmee_9maDϔހ3~Y6,r6 jٮQ=!R+c:ď )(|Fm)bƑc̢djG`=."=8u Q7џXY\ Q䀂ht:E$ɏdS;\ YlG 5 Ty0a1ň:oK{rޠb߃kRL=fZbnS[:鳐?˕{Ԁbv@jIJL]}ːR7o\ht`~_OCG3bCثK DkmP6?3x;tÓwۭt2XrIiX6_']<^Gu9Ĵ@e`  S)TC8}f<4IJ6c^1xWL3hQeAZ|bT za֝i);׽kaX8YF' 禱4Gu0s4vWQpbH8a$ӊ%Ta7ܷvm>TBCt)PEL-y>4R{ZH=AGR(F8!5Dc8ֲ/-ݾuf+d2;vjblq'UwwڇэXo7k$<`Md {[qEUcuϛXQH]wP3g M)JdKjhhd̮ŗgMP,IoUg,v]hagl_Ou?cjFxaSor+h(<[B$};blߒeͪ"Tv&*3&²RF9ԣSb3C@ga秬A`3oZHQIҸg(B y'}1CE3Ņ7y]21_^^N~Bτ7QXhT z P=sΆ/E'b \+X׃Du T8zwWdb}EC^Pi-տlhPu,RE"q ɯ̔f nв& A1: 旈7``TPaڐAN;N_BñhȘw,I`Fӡ[\;MAx>N/ugP-pR`9HXt 7|wcq M̓d =Xzr.C+f}]qasކհy _2,Ș/fFtv76{03*WgnJ[B^(b|X^|_2yoS}ǃӏA|dxG$O7H+JpC,I$f/tڢP&CSj 1~J)NϻNTX'W2Scɀ+EO}hk W#TU͞3=)KqǺ(/qQ- uƺMtob}op0Ji~RG7V&U+]qFlcғ" ԯmd>3_輂 .*֓Se3iQ|5ٮ}ަՆMÒ#ȕua15CRM fc $SG@,`fVHv@W'P=l dnÕyS8^o ÀkކvRo6O؏\2w[Ea2fR30]Zk)  YPJJS0 v*ۘP[@@ulxNs]*1p[[;J,kW6f9djf7 ܜ_}8Hѫ;߱Rd[]sRAڧ9XN0N]vW.l8QQ(7c&X] }1L@2"V(Tأr-)F`>׆%1S._U'~ՁFϥޤ1_zTH[Ow;S46ˉ͌4sG5?掺-;zQmdIߝ!D`ɴ9@op6[lƿj-mcIbNwࣂv3=is:x<8  4HFe-OT'0/΀} Ev G ُKe!i.آ 8a=|PJI/.]]5icPЬ>:R,֪=K#HX1!' @É7Kk Rp2 J#ΌfKɬafZsH'#'iӶ Xy n~/5B"Tɑ|eºGLaLDBmQ#Rv1L0%.dZx;;ҌKkZZeKvA.s =aT&~eF\É͢%g]Esy UuPYVb>uplǖ~ɚ:7Smู8`zgm }ixQFa FU{QZc]PNXm(1)Hxb{q DdxlA /Ri]&!n^4HIbrE\e |@8_B $'vXMOLNTD D[JDXD ;&$#L;fs22,pe `,)iDhֈ."Py`A uJNrK5Pj'/wSϢgA) gGuG=&J_ 5{vr DŽ1b}OEegAG±&=^8hqwSфr8wM)br 'W@F/+ltZ ܎8]}ߓVbH[hS'֗ҰZLLdM\8ĵ,gq)`(Ehs70,gXN~zLH+QV%׼cڅYB,u*EF[LϖOXeஔ.Aڊ wV/B HֱGҷ s `'JjRB 5^mpoi\E^s^oy5 $-hǾmvf;@Rb/M7(.cE)[4~B wF]$5^\CXןJrv m,?g Gk@/@q7SeDoXbA3D'=a)MhnT/hasZ?ߕVvkӃ}z*~Gɮ@.SKB%ED -#\ݢnQ}L;uvg.M%H k9(-|Ttt* U =2c<[ŻP=Zco'U˹^ylR1C%=P,.& rEk)2sWu \1<2N 5Q;=mB,"5_2h{/6}`.81I^şVrj\"3\ALw"Iݐw>~):l=qK}9\4Q]PR㲐FvRL)tBg.Nf^=k55@&25L0\5!6j.;F3yg?l('-f$P)f-ĵN_rܖ }">5 UspUAvjŃ[>uxi(MY øMe*F GwO3M*0<%j16b0*M@Q:<׽ON =S)EcBy1E=,z f8n_ `ǜ> 9/19(>&d.8Z|56ȇpG.8{2";\pm$O`3xF>A{Sćbym8៊9q"Sܿ| Pr ""A@ov% cرc۶m۶ݱm۶¹5uYUMi+JŰ=o[~;t~:o^vqdH Ë/=in`@kdlְ;!9闗Rx1!FRBb+i=(ՎVtNI7{`̟1L ̑&5KKUey knB4y6[0νX~̐?1Gfe,y;&gwCFJrICJ!]+q(GYCi`IdcTa~?R2U'Oz5dT!o|w`2\ }0;A_yռ?ɺHo0(PeK#KJgfqFPN(M ޺aUЀe:չZ-fF(>/r FK$9+nai*€ A(|{MH-1 peiK)odo=BG Fulg~87$sþ3qLU1Go(Qskӽzzl2j)ӆ!2`zmAk,fbںz/tbvE > SfÌ[o<QU/c+M.Kk*n48zw8l=iouQ<_ Mt ;))p½O{FǸv08o^|l@^~qsoA̾$h3:hA+p|%&V9dj31r&n!\';79G("ժ-Y8eF̀uXCR}PͻqC8榔HkRUTק&L2I+cqyֽg(Fi8e%WC{VmE)]M:Ic _0wTċ~ќ#3ɑזv WZI{FhC7, )dG1ECʰZs!i QƋy2}uR!bfD*k#wXѹXrUia8Q-8'>%NJ}âq6BĮ?6 'N̬3[y<<)Ȑ//a}gWڑĨ|Uv6ۺF,r~u8.o}{D>Uґi42U5dTBX_ƅ׷ikEGX -Zo~kO\}.A ctfNѮ9@ا*$$je&FVWOH["v4s+1(5feshćły$;գg~0A.Ǜ:t=1 7`;2UDM6І:C?PG'+[!}r=Vmp{xXhS47\pC2$XN= PvB@ zf_R?:QG(_ɠVTHlJ8Q}*,_cBB#]*d 7?;+f#pa=D8H Ixw2:#hBMl M3Tj Uax{rBƮ ^E|Vأ=&3k*ѶJKbV:^-'T*@!/ û$Ԍy=콍:tZVf[_ȉuúLqN^N:?r|T{F8##eN!7 ^~{$QEZ8YBg B_K:)鰹-q*u(dNGFb2nh<4ޑaNΥi'y|ޅ/ݾAKom&OlglEUDB2#ڮ<ȓ`ykq5‡N*v>\)Vmy翮2_y<'1x\h35wAB/R)~ޭw)o8aq@sv[7x f.8X\a3ll;eXɸl.~|yh?c˗%"M]"]d迅%R1Pܐ {̊P 5ٶ-RO=J!ʑa]z/iH(%eM< 9ս#2UKÉEZDp S9fDA hE>SKUl\no_-zs0o?Z03I*ʍ _cTJuϩ5RsU^25 'bfFdzE>7' .P43;ddSW!|䳝a uVLsn+mL%ܑ Ln$RxܗvSVG]Ü+.sHyArc]x)hX}Ϊtڹݱ"ӽGsht'Z\nR—2AUߌ2VF:aѕ7'0bӴeP)/7q7sLߦ|zw' IP~{4^Cujm!&C4;X/$r LE @&VҰTƫZil1꼠TIY{^Uֶ1+'$5pL(En>?B0gZJ5CMX<6**.Lnj :j= 1e@On]/{WNnyABp蟲4udk > kf7mT ])p ܵuuF3q7iH7B^0! |tsȎQ _mc'O ?{NrWWp@8ə Ks8hکA$ 5ͭD&9n XɛdP$b#dHV28[OÏ0AbhUq|Iun1"1Rn~ ȼH9X /_ނwc`0A9-$'7J%M-n7U! _fpkցIpj Xߦfy-nR+@vޠjGқFXJxmd%dwP~ZL8Ӗ+ٓClѳͲjXrݙҭ2tSJlY䲪'>dNJV|$ w1O寳ؐT 1ؚO#01" q/Y0΀-4t.xaĥŕlkU)n…Ks܈H12EI_,\,0HW>͹P\}ᶆ| lOD>683Ƞ+C:3&exW3Z|ju񳱹\L JBja/%? #sԽ{1r?:"rb'9QqyNR1X+dskkcvvt!vTN1%:VB"j*ˮU` "?kOoBBr (.JCƀA?[7e]B˰_>;"ťTz۴FOw։m-{T"YI00RQ\ֻTo*8\f.N0}:Sq eIDg0}Op4 1/i(ECQ: ANb|110y0;U"'?Zo ,q :߿ܵضg^زZݰ' y%y2Md%_?H2'_d?7*-&̭Kǟ_I)JoA[`Z쐜js|^ltw^5 L6< SkH3|+˛_at*dCƊ)|bå &&FLI-0,_j<պui\yS7 ҵ2jV [ꍎEF7Zt#IԼ4KN!ePKdsGƵN0@ΑD):-UZCe/g4ugJ_P/ *5 :62ѕl,TZ{)6byLțfL*6ӥ='͖.Owx o/%iLd+Qd.H0=-LcDdL? Tq0|p8o4;9 3;@M+7- _l\5nzLJF"nk}T? ʞp,VU1zcѣR53\WKHq[_Y=p<>NB[+;Xw8$￯vrz3ғ< &JMw&޻%5Ͻ&(x6Ut9l7^䏻KU:aBPPDʘm0k|tS`l.BA /lVA AIYyg^hΝb;DxiR} k ]zZc99m^ϲe7}]CbrÉ^ê~k1KbmrW]Qܩ 675b8^(OOn KYy'.MMS"g8aY=DA~ */O2Mw6݆;0A?16yqCN\@1`RzC;RM\mGZ%g SۗrZƝ\ΫNh×؟hEx޿ Tu{Hy=0U wQ*nt]4%Ғa65=B.NDBvX j;4I?IW$^]O6D#, 9 ?cX?PIXGM:S"}AIW=WyUڵ˽$Oo_CWJeŰDKOcForfƒtߖ|aϘ$g'F#S1[vEF:Մ>YbmI'(ȯ=[]{5h\洈sƐ;iem.tnyG`jEOMV죛0p^PA񏕱W&bp?{&ݷq\<i[a0FN_L/xԶ!NQ?irRV}&WZvwVœ騾~ Cuҭ\7{1zݔšk<0m+"l?4\ZyɯK}(kQ5fTH︽y5yR! =G끏Ew9Um8|qnJ@mQYsƜ~ZtJnXv<}k*z:#UA6bj= q?"k s9lO3i4Bt?TDv4?1^Xm󡩽<$Lrn\uf: gH<3]ߋ5R6Dj)}eoxrBeR!#X[4(2.Y| viA~_לo!Q>n쟮o h%HVoQY+&~\eR!Hjt.gwkؔ᧪!-/pIC.IzRN0t_]8 p #Pe!doҏAVWyn~N#u0 J&nXG5 J`6M{;6 KK+M5v^պWܞ1)Wq'dl'3brwN^U:4UAS|zGFUuz݊* QؗRb.psE!6J]Ŵd`i~Bk3ŰF1Qy*lFiB11tFu677?&y*~_w9Gyq^BzPRΨ1D:p@K^~V2M]=7aP4ɣ Xh54Bj`ByhEK)DB/GngP..;f@%c  4ͻkI,”kiyO9cnAH">_2{9Bpdd8k ή܅Sc9AWe k=ZYmCj2R֛f}ϝAN-m y#=ɪ1HֈϢJ것8PWtZi05VHc+9`kP!$wO؍?n)[k! V]6pEQnbi~/wiӄ+wO;n/B=Vݽ =JrID0W/IB].&lT;,gѻՐf87&L'xMf?&U3J^b?Zi-awVyNѠhԗ—4f5Sg 4;72g_5PNq_!{[P=.$"WlP5 #g(Y<"O!B D8-kEF2%K5s694FJ [AkG7Z"W}օ: gi"yܩ#* A~A,k V`ry#1ɸ[=(Pj3J%GT6Z -dV8v YV> ~r)#R*Fec5jRUf,^`Ո>bO)ץt3O.$>F]]eY6j#{iTFu:jZv&:3RM<Իx1cFnȹSʰN}Tyֶ#ݎ.fK 9hO,5K-a6 |8QPRjd㲮p-N˜\hG{mKNE'NU Bܥ9Yct/OJx8oe) MoBj 0ŚLi0I0fl3P ?ͬI<'vkDKY k 3i:Weѫ_܈;8fts]*dD2.;5LFhrbp#*7gR(8bB1*ͧRq^ )~X85YDx^gbf% *>Q+2 0!LD=5 V/:q] /A*)rw1z ϣlN# T~SLVqO3qW=1I% wi *;ƦA(V|sM^P#w+Yc`䩀Zѣ!:x$k׋%}T|PQrם؊&Z/f(Lg"Lo_^ _D)k{ 2ce>K1!L_~w8`.9RyMpoxts܇Mh(*I,Y#j@O=[;e' d8A`T 2Ja+V-C>>_-Y%wrL2<u~fr1(V?,ՒQHr#x$2Y_+^\]$:#f&)<"Htd{:\ \;rkVEc{]|BEoeG-O &˱;fқǟϺqs}FAk[ %%^zj63hr9]!w 3,l݄W?@UV:ܪ#+* 'y9e6(֮uB+LJ'l-u E*_Dxo7qWrL쏣$Bո -IVb,t[*oŢ rJzyZ^wJ4e"ՌG/m?J? '­R"?Sx틞*T7V=RfU\t/D@/GVWEglT o1'̸ ~p:$ Z[>R""yP*>Q:;6cSJ.\-S?l_|r^M}%vB!ZhgFӅ<;h $^tU | jj_8F۞f!wQ#$v% )f62k?"qsGE].O]jFc$]9Cҋ#0tcw˜Ɂ?{ KO&d휋ٲ`+5X0HGPA7?5o-H*U]p[% ϟOȧQ 3&{g r0x";Cը}jkfrj;,㌌~>XD\̳݉=O HVaz:U!|K=kZ]/Y릳SJW] S;AREH(5b LNW1U ]?!9 #mZW#A|aѸ7lf^.2=DRS$ :-foT|^ў=O|@8 y(øwvS4]_; l`nlS, &T*#Zְ$MAyZO+ZvhE3q>ʓ9%Mo,,Ƽ1ޭl1 ؞$R J.}kT Ru'JQj!Ng 53J8`\`0Ĝ$UpzE%Nw`4XE4pE:LG9q חJՁ 2DNգ 7J [yտjÅer+ #5f Z5R, ,z3-^V7)Ywc:zҜUD1WC|Փ<5aE~qW?i/mFu:nAl]̅SX9y=ʽ&Oi/"kR_&M(%zD#D]F㯸?70ԟĄTICy"(h3HLêl"rbwѼ=OW<5`N&mvq;JBPG!"1s JNzN~+2QstU],lr[:qP{e&;S - ?Xի[;*mY忩fzF~h&+ߛۑ /X6H8x("CXb` 5eF> endobj 13 0 obj <> stream x]n8ཟBvQXO HYi@#WGt>R4uwϷ?oytnW/^}cZNy:Շo|v/yUjNi%]O| _sՖ㆔_cs^mzWmasM]ǧôڶcsS1疹EYY٘ w#rbNsmܳGn@?@?@?@?~_~_~_~_~_~_~_~_W~_W~_W~_W~_W~_W~_W~_W~_ᷚs~7~7~7~R~7~7~7~9w~w~w~w~w~w~w~tF8#Hg3ٶ l+ڲr Y,h6;сDt8. Pi|Fv +KdDTguNm-^F ̸>-AāNą,ua`ʼnALt&8eM<#art˄F{ǁN tޮLvqpvvΙK2=n=azf1OOg$@;<) bwW<}ynS~y.XG) 3,ud@ژ4͛rPvc1Kzp endstream endobj 14 0 obj <> endobj 15 0 obj <> endobj 16 0 obj <> stream x]n E|t&i$R^Cu.R 0v[ ̐Kmt޼ i<%zmϩ2,rdLc6- DWGe[x ٫Wĸ;@)Ku{dZ*u'Mh1[V/L`EU㋥%q;xOj55k'|Py|bMj7g T޽+ijm_uɅu'\ endstream endobj 17 0 obj <> endobj 18 0 obj <> stream xst$o5v:m۶ӱmNlN&L4I&mߣ[VW]{k9vU7)Phmof hg rQP[ G tqvt:1_@o;@`qrXх`h G!bmi S 3q@;G'{@/lggmvr4$=b4Q_p)H$],1 3+͉/ejtcI!`.hO7pplvޛvHݝ4݁2Uf tp020?Tvl`0s[[|]M<7wI `nm0ZZ;K/ ϵ@>sfƛ;:y\_C-*e`b01sXy<\<ۀ@MAI8X8A:_<3L m 7*H}fY{`%ҿ:t;N_?]&vU- `q3;ݿ0kWIk/ sP&խlN%@oM\6swq{{maG hg"">&bf'2.A1el$ ]֕BKR#]Ax{0hA.]%QN}]'WG_e@k)Ff0@^!sAds֥3:쌬- gR{zXJB6.-7YRHr|!f!Uk!_>Ar|'Y 8-ȆEN+H=k8'tlx4R:](}!&Jf*5҈0cxa D|1KewQOL܈ 01)zcpW1EaQc:9_XBK;XUߑՓw b9C'Xu-`ܲ"2|VRGL YTNڦ5|edE:ՔqKPHU\. ]?V˟֓,Ph#}$OٱrjW9>'̜ߍ&I^`KF _(4S/8$E7>I>n.'[Ex_GQg 4݃#P7`2'L&)iox-$-˼Ү#\Q x k[LڔW[('joaeӊfHu7H9&bV 5KZ0+f-Uq lӾ.hչiն\Nvyr(5luLWݲ|lACRqGHa/TL"#/L aQZpbXK@\ʁ /4U!M4)q:\hZ] x2%$nǵ UQClcR5M: o`0m3%>;00αsPTt:e^. ~`}:n943Fn[8X3w7Ք450ƀ1LȆ*m|X*"~ik'WRQ *ݙ>bCULX̻M'cWfbݽr8@W@Mh'e<a37VKhYS z|p щnh\2K_ D޹28<f =滖302VDgfEJn* Tk?~ k_2oXiJ7toZ&cj5qy.jM>segpYkYT|0\h a:l1u?= ^BY@1"(YXF3d5!  muVuf46j򋬪R JJkAN:G(QA,u~*Uh嵝~d{v b3P1D >TINtZGڡ$(ɸ8yBa/J D1Ts>L+@]0WwԆNfۢ|gf^0Olqj.Hf Pfe6^-uVL<=NـbR^ ~D/oZ-C}Jg'eÖ☖{!ND9ԘI9x7B4i/st\!iî\GrVJq$෴aӧV;Ei1gI"pw~hz<{㥮W,bRJu1H{HkSx*"~|##Y)HQ HQX'`;(/N/ؐm%Ϭ"}+krGJcx{ /me/[ҭ@ SY'g_d$'x򼫝`VB._Fd%LA58k&^)_LGw%A;;d"m }|dA wPMԌb-VͻD1=W%Yl y) ؾ?+X )EW[Uz33bBuzY^M<)HP3^1Hυ;, r˴TS!7q}&'=~‘ {M}}b67 e{9#-0."bqx*-!0w xvd֯_#&\2H&xPCv3 C 2~ y6d2U Xzc&WnaN.XD-/q+; N2M㑟k=#8?9mg]iBJ5;Dɗ]:SN t=#!&ce{C&xj slNnTr ݸ~6kMII ,^iQ3>EQ(9fg>Pw^jсhDxeC˽*w+Wq/Fw0G8$wDSmCC <[8ֶXGg@E)bq=#*>Yؐh;A3W[X*,XR n:ؙ{< Tj>[S?9&8_rJXudDo&\F&a_ k/NC$% Q\97U2YP̋L87 %Ĭ3u 7Ҿ)?xꔐ܉i]F2Lmlf0q ~5dʬN1ɥu@ViԮ(cix 78*5ꔄҎW@ao%&7^@i֍\leЗZ 9Q@\m(`h|q,jA8ł{'>Yhs;Ѽ"-(>E2>&ZOK?iEG/d'v״^ȁm>(fO;q>tQU *IqsBwufS߾Mfy>2#gAk}=|g:Ư~C/'rw,kFAv3qɲȩyHu 1=lIHBfS-οQ\a͇@bk/ vpnguplqQy]= aϜ¿, um.ߖ:T,ceο" "T h[J άV[ Qh(Tv{AZk# F,6^#XNk:z=MiE.">crk]r`'ۨu.1fewnGm#%VxBm"1h6|kMG e4CR7XGGpdY$TXATfvWq3{pɺ1:z6/i-'Hn8{&`s"V\yH'"=&ˌ̖<l V#x'\٬E Hθd ̛֜o# NÙ..Pm|}qYܧ%2μ27B'tp4,&Mvi)oe Aw>M6\f/"֑e!o4*ES(1qy0JtOLbjD3#V}0^,XðsbJe Irј~.bٙp 䱻 c B( kUof1"Y+6 ,WT3G }<9ձdof% 7W(mR J#Rnmȶ:'enݗGbo[l`8E%G0dY'* ꬃd Sp1$t-L\ےKHf|OugP>+T$𒉧6Oօt*yל; :+7[|K9 `h܎S8:BCj-S Ͼ¯ ϊub@ X{@$+T:Xkh%ް弜.Ū<م1.R:QGc^ug,qktb7frao&83.܎a=/}N8vOV^6yofl?(@b Q.Hg&w'A6X;L{ v<;qľQ9&%C& iB bSp~<7@%{+S),SMUyw6R:m_Oۯyip"-틿7Yu\M|s-ֶ)p_h" #"%5: (Xy8ե[@uxȚzϮ+1Ј+U_|;mnMڍ)4L{\g9aεw_#kE"zs~46hH_V9MnRJe3U&U LJٹJvF!vSjfْ;Ȓ˟Fh-I]p5ő@Z7=DV4|̦B~D6uˉ7A`<@T:[~bYN%K=Ie̦?ӡ,Ǭ藎my8uv=drge$$GA:a/n!5&=^yacee .WoT }^4`d972Do01 [Dw0֍k Tpz%G~[c=Vqnt\YyJ(TFh㮳~q_B m5(g i-;Am)k }i{b"Xw5[E @W_wTrVV$CkaPu諮ݒEQeHFH*<5w)vy ='^6fJzIIAPɨ4Yvb A6 n^5dtNt5wƨ6iG8a}Sw=?4K~QBSxtBHE4f!z<Ʈ'76r2mU# YdG%gd ?r=y9d0t]NʅϙF*9Oq=JzcqH\8""MwrVü$EƼ{k1'(2Xsϱ8U/WE09clZm ?xkQ ЈhP/LKd5{όͶ+"-*h.˩Aů?U1m 8An!zcd[0^X!W>Ҩb"I)׸hĻX"G*:424!+Yf35D]|@ZЬmjܴOާH߿2 n+^AXQZD п>"x)}_!w;p<SPk3v`zkИK ݥBJn~anAV5Le{-M]ioՕ:Q!#ȡ99~}r^y _UZtlR[YsU=$a3u#y6ig)=Z:>P!AGZkParaK;ჼ^Yn)D2y6TʲF| 1vPPϞ I Tg9C=/ϖ\i.SSJ؇/~D&gy_FB`dnIyz~ 9k?T]9BHX2@xܪàQ+ y憣(:n&t &a&o ?Rd&Co g:NΚ9șs/;]e"l7BVQ}WLEרWQ(zQlj(X.xre"ݽ}өA=Gr*bka+%I(!t8dX4w\FvdJT2R4{C#[GYOT1iFظ?-{6Fkma}H_#ڑ0wNq=(G/ro˜f~=} ۚwxķEV,.j"ػ$K;V神S1a[Vf6('r\@lhcc{Y2dA1ћ I=bp=iGа3;U0b1`Y^Rs_b?iێ{NRLuv٤uhuZ\H ʛil{Tcp礆|VaYcy_t.S%q~ 4i==+ɓ5  lهOurT XG^Chj5Zdp4l5v8)cJg#ɮ?>UP|7a(˞ 3jFDMhGs  ePY ?QGOzSЁ\xiC9K`RQpwM$k)ϹvTIK4N~ߑYjEzb&K -nSW@Ԥ ]@ȥѻUʽf^"czBH҃ pbP{ ֭FәRNvhwה3ҳ +R6&#*@yH$Wn$\Ѹs=){ArRE/RqB/jc0՞Arq:Ė!"۝nb>bŻWrEmvtw!bS06?HU1IM-E!r7 EnlN*qW|۫% 0 %ɓRKZ)ϢEnFL<$Ɉ]'U ői?~7uD.+ E+w+ epPAjh`~,Aba0qmv[ a-/vѠw}G'.>_V'MJ)'S]>-m9A_C¬ 35c}kMԮ粢۞5@E 㯬lL8Yl"c fA?+lǀ+,g1q3^.>x1/B:< (슅 XPMh"KJyz2ðe#v{8\]h,$2Yrl3SN829vu=;]GCm5Rr}U$B|_-9TF ?#oFqueb28Y˺S\fnDBc^[x콲{TzZXwmVHb-)U"&-EtK\j͖ ռUW B Yx/37`/tD-RMQ-0hfCŽ]Z}Vdwzb)pˢb 9zh*!ʾ3cǎxFt`."mok$fKk,ȶE'VT`Bjh cb/2։Hkمߔ8@:_HjkVECQ 1 $kzC7L?dXK| D*U#WEƎkmC.+?!ZFlU2qF'lnD;~R8F׆1)ҭOS )A'ȶ:WYGkWa.UY'H*&s3\ GlKel;T<3x"u$Y"U^L!2 JGQ Y}+h*~Lzz Bt5ae?&ȱ|C˹hR搡ĥryFivT)ڃK+\DO}CKX+Sp޲BL b=h\>nL[uu}86̽8%-3!bDE7gr#gyQn÷d2I$?WJ뀓dY0E9JL~$j z]B8eAGH=llSG7(lEDGW0i$fFLB:٘7aܯY+HG|]G6%φ"͏ud4Ax2ٻH+b@LD0Fw.i-pf|sQaTn+|U2l5l,6h(> VR6P"A;$ϏT4w2Mr-N^  3(i$ӧ*c(-ň{SEe ^+:oqӄ;bҟEJtƣ-SW)0\b‘Gēw/t’ PXH3<'~E0GbhHOlgNGc")fY8Bo`'X霔O!rXxm#Y\1!G)];0o<0Ɓl,pSSQ0+0Wr4p*B18WnJAfbBϏ_nb73\r/R锪:l7,h gQm햔P>gY$uo]RVK ZoHR$blRyz%O"pN{tY_!|w[bwp;+ArQvN(\^ B~iIWCD;pbQk$G2˒g}w럜B,1{|5s6gHkFuA0RL8tK &W#:Vo}tl$ӣR`loا&1-52Z!+>E/^ "9b^ {L sA=14~vWc58X2 `ԓD?\؞y|oLO|0$:$wÁ2>NFG"I2UmQ|'=煞 3B QRSPA;]Юd=k[? ˺viUMYF ]Tzo\lN6qNo/P_sXhgd8lF93R%7#=:ZNB5|}D˨B>r,z6OSw.L*k;pfel|/Z9 OD4-],^ KLA41fXVꝟ' K]ϛ%+t3f 5a~:cȯAE&׉b\<a0c.i(IRkHVDَ. 6tx2IIoj3 LmZoz5s==%Q*Jj_hgĪE@h`\ K@n){ =Y a^{Jg5WQg/gKQu`M^Gk5bo O1 `;}IE~/#D\ڊ PijU1o@/z_S')JqJ$iauAUyD.\}oKCfJJAW8Hd SE_jG͉Ճ(Ddɢ;R_th›4Z % XD*Zl&_Niyq [Ya>Y<7S/bO`-g;'KH)>͕ʭJ2"ֈק};)qYeZxSKH1Vy%Ft!0GEY&)1*` @R;fX2ݴ%p Q?;ZؠYퟬ0u| ZmB 48웉Z>Aodpz K}E AYdSFګ1АmwHν)3)F}vkgW saGdOֵau}5v"ܽz3x 苋{Sr7pa>EqtSQL 'a-YoJ}>?r@c_2}J6Wܸwv썧>oC##P`ωjM~a>0f$6t&ܸBP:n\C,4 %U<`O>A (C]kG?BU2N'Q-4;m{  LbAW"[ƢTP`k# 'k+і~NpЀٽ?vpȄYln}Ru~lMÉǜSm{(:fi(#%I=Z$Ok i,Xнkm>2_/RTz4pG(s~F߲#"%+[đ1a_lq/|eYp N"7Dl EvlKQR2[?:l{/L8ʀO8JHP*injczuxS[ez^"ʫq xv^CJ3 ^ak};jir2XDɜt3?#K \|# Y= .^'cӻwqAc1chW(g6^Aj )rTVxҼ&cy5eq#yuuVp_ΌV#-G,@(B}%"@E}RǾJm):K%Q'4r:[jjd=,秋Mt#wHՠc/H2$ޔZ`]ׯ9#}/U%9d.ף ;jL~/{QRgb.hⰎwi˕CIL3x"ݡyV>~3JY vC~Ub4,6I [ee-,( Qn#1o޳r9N /d[01WҤJ?."N{շstt$+B){M/Y1*GPrǃ}MRz,3& Prp$Oy eăطI Bsn}οɷU(S[UAUԜ 5bG{TO 䝃qƇgm"yb߭&Q2KCv' [I[xLg@70I6B `z ] 5??I3H@c0dLldP` 4طMR0f YGҊ-xFA5,B:{~: ߓUoh\cs1'~Ur ;q j.!'SCbGbOLDT$~Ru/o,SX lh7K\&L^N~ȸ<1Pi\$`.c]v.I $,"кKES!9Q6BHd@ ]eun9v#wI`<.~,ݙaVPQrEj r/Nz< I8J;}\_jpsy`qQ'_;cۡU@^GQ Rf Qq`˼e,\!ya9>W\3b /L>B A`2E={Р[O6jqQzrT ;Tjls=Π5z3  &mo >Cߋ EiC#M].A0/3^.qCkiw y,A۽ޘ[dyZdgQ3#ġ/P#aH?j]iBC͖Cǻ ^:"LhRC7r_KSBԒlDΌ'drmS[FtRٟg~N(2Kt!-4 $qmgCbK![u:Kly9.I 75v[AHZM 0#"CB ovÍԲU3 WZYMrN$Jh/PG(Zcd=DM 7HhY&='L'ń2Vu{T~])DHe%LӢr蘈[x# 2e)-_B+6ߐG B#cwMk9qOOk4G"k-Ptl?,m㐸o ^ 1o _+a`GgaZEhJx`ÃkT-i֘gSkdz58Dc7UZxoP)d7?u 5=.JQz ŗ-T]aF3 f8sw.r,ר;pjDp4#.&eq_c?ʓHG59zRVu #g`~'##HX{Ok#`~~Wz4"- YQbPwնtXrv0ʋ0%pHB~ O֤h[ӻ Ny5dr+A(c?%no "H^&jzJ^Gh{8ǹb}T>l31:J )oF8 HDD#^ vkpю0]a.|!o01?0lwc-2kAnvg@NI IޔДgKD^Pv \PKg (Isv1Z"),k0dF̫RGxvAB vFC-J/vNUotӕR >6):Cl`ORRrӡL먬D & >^+ېlCz*S_e)dk_{3!y39^r!ih43b¯uj}Bzj^f(O9$5_tBnqs<L:e۾_#4{'!(=kLZzZ Et%K51:Vh9\|\ |v\Wg|Чʥ*H_ڷ:7+=1dWcG*y߭K!t+w'*2}k1qF`v5pu)RѸz Y: 4B?'1$鄔wmŁUO'A@9LJ~%jˋb-ݵ#~CId ?rbRb&:q옓 T/ OLlؚFHDnu648qPjfNo83f V9qP04#l}ܴ^O=KeBwI)i9BYH6 ^x,}UT"%=lA!oX5@F./V-,o&-IO?0S=GMk ijH1̩{D0&} Pclj&UC3WL}g)>ÐNNhb69+ۏluY^'ƍTH?ףi[.ǗR,oM,׍7 L"jOߠ^2<cY*ǧ(Bi޹:^dAɁs ͗S}#y>Wd#^'+_N0s?_ ڔu$8y[qMۦ_6dK=p3dC^&l;6yMuW6(ExLPp\ \[9*O؛=f,Q-엤(>Ӣ"1kgh1f]ضKb(|R {O!j%.jC4r:^Z6{D*9p]l>o-6te!, zE4>hG}GI<1b%!ɚ:q#fu_Tbg_ӥVoh:l6esakܴti<ɧcU,cHo Y|XCuZߧ8_ \Z锹@\8r A²QCA"wd. 5:SC=[SNOZUT4S/q$=ģvXtU͂ieY<ٸ9 %|+VS$kcjĺI'UkC%ϔFFCS0i :JG?aUϤn+㔏rW2*^3^\C4.*< :F2 3G!#YM?4#;}k)tuTۇ>{PlE.o`4%,s$X[~yW T̬.H;A>#PERX56yB<^\b&;6 Bؾ΀qAwo>9,s :~S^`ۢˬY dpBvcS J.EkTShUr(Xrb*ߟeю -RF&7sh,N/GFxnXU8JIaрGgqQ3PN1f(kf5Ԭ?^N_ɂ1ipœ͞c>Db7,-@h:{~  {-w \{>xWW ˅;SJY3X;ɪކD[XƵr70EQ˫g1Ȯ QHS|.+&Qz}:׏lӄJxsRH a"}%IKj2k:jYh7ELԵ1zNJ(<ź\+b" 0x=BZߨ-%@$P`+b e-H>;xwx_6ƻBB-*NG -@axaA\4-VOjC]TaGP5t=E[ ">=uұ/d J.]6e~(" s:=[$sÌxb!N߃Ҫ9W.͘Պ}ًk!FPu";7Hq:e7UW^ry]9Za łWP6r OT%$~I$,;KZFz_@Rf{P,o cj 80TTF<Ӱ, V';S vɎ> }g ;goUq^x=0O>;17 UU) $aha=?mJ}fd[1UIZUe2%Y-ubkcrBWUQ([02BZ";!L4ʡ7-1raq|`ƋV#ZA ѵ0y2FEv]^f<|W{=04 ڢah/;7TZk;ۥj(ÈUH~I veϙŹd|$ ,9 } _|P!׎(D>mEoY 0MNY"/Qxm9Ke{vҐΠDq~ KVt\,@h :t&+e#s*a!I "HTcW`dQRDRa=|Ho)ڲ /#iSQbS zu!'TƊWW)+k!^%dN<:uM 3 "&Fl1[AN݌%~?HGJBz׆q[@<]yIFwYtU[)|j'(>1Y/NI62DEƝF8iW߸p7h-m$C3wSc&#[(V$LVW4u11ISG<.,Tw$:xq$$Ȏ@+GWO5ؗ9Z_Rx9Sqn0Ya|%CͶӼy Yͽn k.V4=]㒃ҝq"6j%.{g ʪ2d*/!]'z֗qpLCM e\ygNjQݜؙu6$.G\k]7]GJuS'y|]T/T)]ͅztؓA |țx-pG7HHAOQ-™AXfevd#"ߓKԽ$P 7R8Z &C1{ #wgճKA-]T4oZ#< `b7mַ8zJL ew8jwM<|ꀶBKaw`, ]<_LcʌphIPn Ë{JBtvv%IyԋUKZsCrr%^p`{^uW y3SNIZ_,tUs't0OV{?n_*J`7oqVsRu04>#hl"=z=YRP}?HM+("rŊ}8jn:<N(׋M왊fj[sְ?e _w%/=@ڥs$K7~Noy?J0aw鯮nwE-uY|`P?(ғL4? =jLʥbvNZ- (3b^(jNA 1X,j |J#b'n],rrF"Vq:mL<<2R4hˡ?t@ߙ57 g&L}|EaM ȝ;t9 !Q_^'Fz<_9 :9e E>Φ_S)AxhGsݽՏwoqt\ ?p}-㇐D[K ϲ_1d\7jAP؊Nto5/r;B@$~?wHpIT-6gOGSԖ`CmObO^oֺ<ɷ=w%FEkǓ8h`8>~MH|SU%V2gn{\=Xݒmfl;f!J3;FP-W5ڦ,qZI+!Κ`tϚ]sJg N 6 :Awj0c05 _oC /~})w\H6=Z@yR!i_i@Z8N &_:oEWؖ4('a͡l](n[/1-gI]2z>~E:nRL`\Ҁ,ha)mn {ߍLs t'"e&m93vLW?vuL&y2_#؏=K~3LJ"mMedݚ+SR(ԖTcx䖂hB:& #7'{wPdW:q6#b@n&}BX*Ud`8.${<|L^ʰ/r[!XPP8{'O,(|2E@fMXQUxT͗ $=V@E#ҏxeB`,R_DhXM,%<>ƉQ6*lsFlLGVէOǴVFcP) LJ,r@lG,'X,'A>PNan' ༣o% `u ^H))@Q$(3._=kS1j hv3YjثW8z \d3nưʋ@PohDgq _ָh& m-KcTqP{|ጛr2Uʍxn,]|j @J_ k*UVV BA#+,l┭J\7we'#Yyq`ufVPNMWibQٞرBxY6b`ˁX|&;[:RpQ@2i^ hxp0sZ \@K \֑ʯwcH u OߢcL@gg */^W^n?1N-59>D5@eڵyNnBoUz55g Z<^ZI0X9;4f!OtBdkSmfԬ5li [ h:f?Oۥ#N_o7{r>R̬rw5ْku7hE8ׯ%U5#jS,e=CL/]9w0nj OϫK~XY2沣XnUT<6qBA$'q[l<0Zr0~ ShHJpY7c?tϦِ -iP g%,1C<!FR@HMO'txȋ6H?7I.CSxblRJ9 }<9%An H -p D94Uc4``~[onzJb1Ya7@эj ,IB,#;kH/R~ٔ+xƬ {Sw&)?vqUS41RkqFz$A"ZL`o~|CτwiZV>lTڠᆅPNo0T;_ke*RR!yz ʗ:0Iĕ_YZua7?vu o# x_bE-0NJ Z\Vũ'tczCKKL航xek&?8^5w\@`S0Y;Rۘnֲ;j4pr?nnrV %;*(VZff@n5k-NC) 11]d0zNos8·~5l`i)ke\H^`UMb\'g}Ǻ7ENQnF//DK-/gO7`mz3% "bjmkudӾ#PHoa9+tHiދRLŒZaC̐ՒKj҅;Ef *qH,N{w@u"KC򝓩:u}"h8ܹ r!+ 7htc?@$?9#?u]b% @򿓪|ׯ %pW'ZHhDȯ jrkMC;=0 *]9qЯ"]|yTNyn9Cm'²v1J<&EYV^d;̰~k ѡ o*oPxo>SB6ݤG/I <*uD8IlG-S(^KdkN&9&t&X~4b*7poS\}u$ ByȮ{$)Kh $BɄI}a8p15QR[Of"N썀t&Bϱ=ܻ|& ^ x]<"v_#5Q!{|GYM:SCZ5`xtLx[ɷ-%an܆".| mv0K6U]Ax1PǿW+|Q8"V4m|ҁVTq'5  WX(C߅f9a9)CCP@ΛNFt;HnD\ئ*PK/'Tj#OMZ&N4;PNP/j0ᭂ ~CvG]~p_θt25B#SY PLX0iَ\q;>=Dr`W<W|4#e0Mw?~psv^s0*ZG$aIq m../wWY3X-wab [ng$7VR?}7Gk'Ī'yk;*̹S<IѥC/rg4hVl5T $*" c q:;\4A!oeĢ#*3gx_tH8j=$bXILaWz^Uϩ}pnD~:e'J 9cYӡξf³|$D7H:RC)I.pWgU" {39K~صR<(x ㍅PKצoU٤ Aٌ;d`}4cAZ>i~%wB`fJ萡h_d['.؇O;+ A(Sc\W",&fġB9n0JXqgXlWL/AL}>=i!V;!y> PB~vKh kpy gǏ}5t.K icwd{,vI<}>uCx:rϴ ysbo^4%=' ){re`PGt1"2ka5EϸF3N6:2Dl憟3SZ>:qt/.k9/3l̘QJ#N3ӓUDQnۜc(.o1DxpfK +/nqZ *(eņOurXަiA4bIj |~ze klDpK 3?"u7obUxr=D-]GWi59~Yx\0x >ۊ%֎zyP!SN- ~sX7b",ffl*   vUkl`+eoY\`i}B8OnK*2θ |$E+O\q^r -77Ϸyfhhc^8Oz8 ռTYӲ.0:kR0?L˥—?+`q۞/eheI9]xv4ױɀԷ}zTvO (ɕM3KmA{yYCBJwVOLTa1a`GNN_.~5DVd}#(7ԗ_caupȾ|?ʲJR|pJ#e[,a  9۹`ϫzڱ2z >(B[VG!Sy@]o# nRow.r,9]UP23u@]ߛ˨@n 0WZ7{1)Ϫ Jz1Ϝǩ,mQXɊo}G]vPF32eWI)Ϛ^Jj7*sjM='U.RUVN' L G\e\̞d/5;:s[j6)u"fkeMSl족xE&TI"+"DtKkPb&SyTX 2Ԕsԑ$$;& (\w<]vYͫ[h]]±ȸ ;Ӏ޴Ω eZqe:!T%ЩXJ^5&ĩ$qvQ1u/IOƱUs0˂2h|=TD@rw&ui`^-I5oqSf[ψu)PuVSC( M$qC!}aqI濡sV5F:xܘ81zppG!AM m*՗sڷ(j_LTem 0?hzD+0.Ukoe ssbF q5i`dP]{G>Nq1Xئ"a:1#9mtRQ%OŐ?篸P'%2lTxnY>jI { T5<{Ph(ʣbFQĶ|Չbi,3r H;YQcJu[Cc4JGjN~ ` y JIBgPw^@yrEy6hǾqT8j-鬆7hOӂyRr&s}獟98C:ӟb5oWy&]E5BY܀{?*r<&탣>rPDH$B"(at$˧a+Y^?YT-G.5!ymv rՀ8x%nO+WjeJ|! iA<㹖?9H2Cc澄))T>ҦTxJI={|2 KCz`7#3[ nŬ>vx3$Vf]vI傰нǍCAcJq{JA}6J Pb 7tU{V333FN2s4mW,)ۻh+܊a[v}j6`EŇ%ྟˉā 4S8Ӫ\MN\ϲ {5&RnGlC|4_:{-<'[CRʩ"^~ڎ .fv@ŻVGXQE^~(P'hV 0p&/0Y\vZb}7M4oA&OӍwyU]ɖ61j_-=rk0ܿ?a L_L伒 _ Juib +3صCaTT)ף:n*J^5o;YWĊ㟺oKx*$|ɦ̓VopИT^/ߡ ;*ƃUn8aHBS_ܤL !GQ#D~qmVfCZq@ǾTK/y kYM=/ .GkipcV_BQB؏e̩?l8uE֙K{wI k{DgYiXZtsAwtСa;-sJ* RYgvΓKJ?|[d+"FCӎkv]PrU8 A%a}.E 40*_#ʒ8WcЎ-eDw΄g\S @C'䥩;|׽]f}m}Y*c(SLB;?I(8uXdsׅ [Iz|ݒL~?-F6WƮ^䶛ct7*~ ig0D# #x&/3Hsf[M Zt^!I*ol&KR,¢}H)'39 ^Gh/~lyH7$"o=R DH0li(o$ȈoБt'M[7jRa#\vxQ-*Dvb"z;226Ugo?ުYNt P@X`Bp|!ϕ$chWؚ+wٽ4l'T-g7DiZ )oF~9>ԘEIgg>@-*XK˱w1zity&9?/}jLx)ΙSoa)]<)jr̭;g!Af (׭<˯+G?,ʃ Ռ%ci( y!, qї^AS*HIu<sLuXIWkYڅhx-d{bJP4㨂hp#uN.k痴cC$?#w~=~5TĶRu q!p֎=ې fW3sj}wPGvZC cp$Ľ_< 3u(Z)~ {O^MI8K/5ɐ9I#aLSfi.5,5"^ޢ֨W۞Uvq;o|i;,au,O$C-3/cTV1bQ'C2aQ8;V%-f_2df;{FLTY(݁|hz|u4.w+v=V2Fn)/Q"8]{+6ׅ o⋘EoW Hb2(d>k2 J8{0UMxIn1uw[~gc;vw0U־]#@{4=!dŹjV.</m 6TN!0Ob QPL\N` pͥP瑑)-K>!2L0d8]WFϕ0's3غ a6c̟ggԢ!T!whBZQE-V QBpNQ& X$P|[ Rs!EWp8kl8fJ| Y;͞Aϳ{|?'[$skEq"* e `1g2XDVwRH8v.k4n(* 6SjKk.8?K_,%d]6CGx9 hKB' ""uSQI(FmJ=o/A%4F^fɬd{ˆk#/U?1w1΀܏Rq_6nT20>$h'l¼D)~B{t%k}%v^32n?pv1/y%ph!ggax<`v60}9 s%;?c"vj3k\O0Y1fQ:;hO@ ϨTU\h18 uZ/~t&# lp9/ p$ZѴVGqV`.cQ" kuOKv]4YmJ&ÆB{Jmiu$Jh~pdW"ELjeN ZJO4(:99f-c.Z} ɛB$1X\Nvyq'$"!~92mgqPa ƚ'FdLG` hikL.gzSsR|(;9xY 0eL?rHmm'8rԒ'UPL+yPf)csIw@JlDzE om3WDV3gZT9띬(76(7Tfߘ,qΥ킛'`ht g~tnukU-ɝgZox9 a޻$`{&K.9%~ ><F$}Yx@xaVt2%Bvesqo9TULm(\3fQvT P[Cij$RSr߸I2GL!GOlDS ];+޵:4F PUQ Xh^Pud9J,|(O3LLӝc/ ~8bSsҹ?f`ERzgQŻzO^ uIkfg<9gSDecce& d! p Wcnm1@")&&MD,o{R`,C"i+ ܛ%=\*29;L. )M}0YhTC$w펜--oT9;702stz?jXy=xt^Y]KvnddGQ1B OIi-Z[kK~]?}ү;ڦ08hwibE  _8@~RzLj\~Y}djzz-\ RtuU#hhZWfk_dc]nTm"iyzgugoЪϏV+Ƴĩrv-^RX_ZExU<зG f { 2Ȟ:'.%Qmxj0v(zKqޜ[q`hGXbJA'"xAyˢ1(kRtdmx/A*L(2# c8vUJ<9[}9#E@Q?97{wE6(,kJ"]> RY7%Q dw+4(ZCi0!5MԵHF8}y?pTnx2%s+ݻ*xM5c)I#F Վr}r猡}KwGqx t]*su8#|A7`imGm2p_/;ڳit_to4jmsmڝkbvpy2̛M^Fx&ѓoTP Q.u#*q܃ɕ[r Ҽ{7؍:)t| T# N&jaĴKO1rϒDp< LF,@c֊:`ѝ P.ml6!|AM{gw: {4gpӺP5+>haxٲb63M=U24(V9w=sSZ†1vW'+Ve* *}m[U/\bw4E4yi2j<ʫS| lJiM6ܲ%Fr|:kʳB k+g;k8>m>UBfY67T+o˝ȊduƑ We(Nxx],}z6no{ 2R9cJXfZiBka t׺O% O0.tlZ!OF}=ܽ8σJ~ho[_C?3̲Q*sqKe3ix<ÒQʒOIE-PJ{JGTuZ3`d[h G}Q0Eo">؎ l;"Xy` aѤذGnRߞ VєxFDJmP,j#-!LTgQ|`;̓ 5Su1-ӹܽv \K>d7g^Pv\XUR_ b:kCyLCf̅`h0VY_K6/M 48{B NXwxZKa a#۷ U$ $P grs4:,Fb'J@B?+FUȀO-: ,M4CLOx)j4F)(;<7~^zv*ͳ`h[70? i*%XzqW/C'848mg,繚%ibFy?%h\V$:onSAPKzĝ9¿@Ь˾Z&vjsA[N,LZLt[%ukܥ}Qcxp بK;l%I5J{J̜]W%B,M{ANAtdmP(#c}@ Ϋec 7X 6'8لk؂\wLD&NAtr4>2R73o;?BOj eZvO\x=̲:?ف\?5ϔxHBg=E7< i삮!_Re.{Kc*:0(KI?2&7ѮsA^nqJp>[]|~?Zz,CCzw\t`x .dO˄Y-9=jjJim]K?qۆ4߉A"z)tRj/@Il$LMLcLRbdP֔KG"'\Sfx$ɞ IӓDu֨زqQ/5Fč>%@a9 }e_6T·@ X 좋nY}Pu [ݧpżFȨb[9Ob=:2,B6he(;$0ӊcsܵCqS<Ԩ81>?s?܎_k=8O2|99h(it4ߟ`}bSpG(j H ~`cZNzq2mG+ATŠO]Mi#Bnn5_-7S+-~orCޙBJe++޴&]KţG@u YdMe,Mt!v$h\PS"AZ.#)mV'UdޓTRdBp%w3g~'{$m;/m5Pk~]q"3:PnهhB6QgY Z_peQ唗5= XY٠ lc;p#Ir7nό8Iid+_HWlq8z3r1}ӕHS!bV\v  s \7]HN 3U4}o @4JKTT3n]YG|y/e=m?̔UB5;aDsR.1)Hia`]A&c2fÿ䳧Qh2SEAvHBNI8w&UCvS,_Bٛ(@n@HUoȥﳍ'\H!ލ;\yܤ]H*1&Ȭدj")=;09$(Y>QJƓ{4NT:?|e=7Ϸ ӷd/zMCbO`"R؊52b2Cu%: (@V <،r|*go8dCqvhjE7{6=FHj剀TȚ4 V¶3A1e?L/^y ]/!?u!BY(SJb`6qcǎ(ZvY@2c\F\K%6{\3<` ;41(t|\D.d'5x 5V|,(Ryl3] j M є+L5'x̀;'6<͗Ov&H(}_Boݜ8$톍rVsqDEVISM \r k;0T|&8y IILB飱c&1p{NBָDn*d'rjZ's[V՞޼K+S+w+˷ -)d8{M}00KZɫJ&]偮7i %Wm=QZM[k}MPh#Vbi5@ j;[?tfVӑlQbS,8:LQH[$JfοJAhY#1? SgrxJtt;.9ΚRAs Sqx+f&mW宍w;!e,H8je (4OE҈U{'ؐ4E:,9֭pE|0 IBSY luɴFW o3>ubb X54PՔ::gxN>%t H[̹!3bR4lһri_5f4%(G}׾beKYguX?6) ,XOfRQ+[ mư(!}jRR_^|zqdֲHgVJ#_"#s.O;,F1@+}-2j8zC7 vBPMBH%xFbQz]"y4dкS0 M>3K82S`d(?!.c* ۄbX Fn_eq1n!Uwoc $rl|d$>?A\Wcݖ5C/7 Ȍp͇zte)+iJ߸=԰k@ʗLd"kIy~D 4;\;.-7^9h:G.Kg^e@-G&Zjt7A}xi" i}cTDr@B,)y>=:,t-S7!y(:nc#?J/_&YԜt  eKo$"Ho8dxcbM5g d睟J>ݳz[+i͕.k4޶npbw]Cb*mURQz/;]%5YL*1:dB3T<L%(,zl[܉$iUr^pwpz^5@DMEI;ݫFVtN,&NjU VANRA4= ` K^T_ƕKi 5kQ W\[n>qN子ShG.^uiv@Z1R >CJP]GN w#j*e qbS$4K2W3%ȿ-Tpeb 3+;wI$U4~N2hj;+4&mlWE_r -.Xk- k@ q^z~w-&Y?gn2VJnw市YW^8/}x^SF+lA$ɋZPzx^IB yFr95}_W0z5%.6C]y\i2\%o_+D`p@%'{t9 ƶ*0I%ۅ]8 eCfor6CE hX Qy;Ky$# UO +FݘmiND8}CU+\r2#G9\912߉\H"}o3s+8s>w1 DDBYUB^pf+K2ݹagZ7Վ1Z3cEw`)8[E\`#&#7UyCnQH2l*Zyěz3aKTr!JXӉ`, Tɳ*oGwՒkbPX-v2rV\朥(5X!d4BUaD0?*5Ѥr4q1[l:I J48rJ-\֤$^&Ykߛh:,E/'\'X Б6 ǩGuQ}4p5 hG^A"%0*5°jH \eԉGxX%fbx]Y9 *%)eJɘ sw3nhMQEcA[ujaBC͙~ rq]"1_$ZApQs aY+n&+4|xV.8n6bE]duvEW<ދ5j4BItkk#p|/P;:#.>uz%Mƛ@-9\EK i:K5-=̲DRұGc@@BtiWCOˏ~rx(Vyaf|"1JRd6nNJn!j[XJ+aOazc؛5oKH6oŵC̐BxgWN1#5!]`y@R*' A}DR:28 s+E]Üy#&.!m/<2$DQ"+iv{k"yq[ ~sF=u𵉑*V᷋h ;l~8}4lNT Dz9h'Lfơ *L+=;>ÄYFeD5CnYw%xl⍝#*"/Q)_ց?tyȡ+"}X82KƤ4&jqΎ٢Rl:9>0*_(&bБB mMzEz 7O|'ƍ}'Mŝ0!dPs[^m'[, fuh&1DgğWkDv w@KKbۈLG5ݛZ[9i{JNITK M3<{eo&*#G 2R)Y]p[{\PJ*CdJI鿣瘠x]ݧj x- 4xmӭ5A@Ai:-$aR%UdZli8Un;&'Jײ~vٺ~^K[.,-H_:4B*dB֯1zv-\qIH'q%!sUjGfuȂXyI;TGiOff]ݲ|^<JBE~3 /=HI-Gvjg:L|z#sASP^ډ`Ex%֊H(ccI@v{wt..ȯl=\ 8g<\LfY׉Tij C2g_ddU-c/E/ߩ9Lo!*:0_D&UBw 3 -Ɓq5ؒ’wEQ/6X ՃKgt-iNb)>)S-yRQٷR3?Jwɖ# . Hn,ja4ymI+??fޯ4脕|HҭNx: U+_Y&-t_N$4# & -q I`𽕣n A"4ٞ%#oY 210 eΖ%3gy=a"z CK9?N$@̑:<v:a_A*ԩ4Q>\QvNx(_~?(܍Ŵf.ۺc/Ofo 3+g`OZ @(q0?x:ʣLGSB/;hf"EMvxpNICjK=YaZ҉ks@L˂+#8Ka),; ({LEŽ&`? H$Aq6<}7'Dzޒ,3?lQ8FUS+5y*"3y$)۾CP ԓNip9uGNnZ2nk9UPjKO@F.5u!9U8FMH|$1\Fe_s=]$iKE0SB@ڦMJup#m,ǝ6]k+ðI`Bz`t:>Kq3zTJ6󿔙}P+]I8`L-N>zqN9l/Nc '1/U,>NVe;8 ׻X :*-_̘r[Mr-PDy %~cZT1jlRjDwmӼRF~ͪm FCp'7H]5 M5o];F.7"޶T/=^/̈́IP'uԄSPx6Ϸ9}_f =e !:li(GȭܦvkhPxa~\wQs~lg47L|)$d /|}oP g)9s$Q}~R0U@٬$(Ns> ;gZxZ~cev5$4ZςS ͇|<An_[D+Ptc-wB N<[iE; h{_t:nv.+>ڋ3~xTrw#Y[S{f(@K 0i!DJ1³- ؛[ҵ>CVjZMeRy_~: O$_rTY[BMVc %ěQ[(9[)r?Pեp` y-њoߎ4s[x@b曜DKu16Ndd8l!"- 7WNDpNa>HeS{?0"7O H~ m~r]' $Da*&F;8 >K/<+v@@Je6C*¿Ǎ(E;^`3~ȡzwp<#_[mIbYl(W,B*Ι<>F\q|AL5A=O,Q>o6Ԡ{Y*~kcA)Hz{WA#{ zCu)%o+QZxF5q1yE6ܼ _;+N6ʒ=<6fw,~S1R[ s|U`J@ [2J<tJ*v$Gwm,nK7DlCt` afw;^ڸL01:k& ;bxq_Ps6=㐼p8z3u[8(T$*\a"gv^'<JC k5ACviJ:X1נgv:`Lu9ޖCGk>Кڡxhؠgr\^9#]2NC: WIhͩ_)Q"A4>=&U]* ~" s Bw1Rƒ%0bNjJQ5A#!4a5r&WHt헄xeka`̷ joǒ*A5+F!KKFNopA ;H$ʌa3eRϹN=D(/Pm ":R;zEp*wNW~ªK(2e+? A&Ұ iOi!x?-gҊr.܈ԝ֯ oCeۘğYY]m> "@-@Cq[SPr+6}% @ĂחR]/4 _x`0%P1~'5%2Ni.Lt@MzZUOLﹽ"HVj(8%@޻^Gd1*3$a=⒫],Dzp72=īWAy vGk VSQQXkN0#<!*Hw{3RYw|~*C'p!͝b^sgO>Ă}o0'{ͷRq&-SRMrol_rB"uKASW_) nyXۊvE!!I5dT%| qNVJLrFt.p\MHzGz@[vM!@qUi*SbPALpc6BA}ijBW1 \E-yQ^"kllfuZ&kkUER#iC F2;7 ˈ(un&꿞5 `Ħ E9Vc&sJ,7/]G*2rY_d̋E c0 vhnF(!4TI3WEx #\&z !*̴j җ9.TGA|D֟M=(@aa\:A=߷/J~sh0J4 %`Iܮuu @)!i]z(¹k>g ><[~ `tN=k[ aʋD‘l\alwT B|,.?-!>`6&*mE*ڰZZZzn>˹yĝ2ssHCȣp 6<4.SN!c4žhShc6ň;^5@)vT(?yB[k| @|4J0G#${6o`s+;$eibQ.w`M\ӭYUe'l ҅i"Bz3ȑb~/XюW`pZ]dWz'#MOt1fY KYACDlKhL5\8 T !s蛬@҂J?D n:->B@96i5q a©ƈgpw'_ti%<߆WyL*߁y2h9ryHaA$<`%َԏA^,,>t*=R&՚L kd-y~y@5V [shՋ =EY0Apv$ ·!V ~U6x'؋FUǴzrTD|3pn_\(Pt^_Y%]#B/ 7hsq+ןfK1pcPe4Ҟw( dN#c~8x@)* %!2?~CQ@%k'EUGɂC⡆̍AĪ[7 61}wmG|9^Ոb#H&E;Lp@>W|m>/Bd%(نEXYlKF 7^h/̇ Q"p~[RM|3>/-8y \p3k@q;X$'Z`%Dׯ./٦HlӘH+r}S3W؛tLpd6 Kh_4qI^Bm&nҬN2q2#dnk:ߺvlQ/yo%g%C9(0嘻g_w"eÅm]h+z6™KCXǺTIB׾2P%ѽarЧm'D@We([q172ij!N;G^_Sq54l'㒈NyC;R ygxЪ!r[K`R0@}¡& sN:*ٶRr5i"Gk|ar|tz#@T/) bp&^N߸oF_qfߵ铪nJ$ԁ#lyp ^1΋< 7u3Y0Ɋklӏ-BҌ:|p#͏9U1{ӒU7.#ӁT$'P[p HD\A+Y*O7A> T֥Ȗ|p>NQU|d,Af=jǎLuԑeHo=GˤSp?er`cᵆH^um@Ҟ 0K#HW \;Ją8)9=5KښT# +Z:"`g9q[>GԵ(!1BgO_x @J{zB+ "6H)UyV;zFn֡a>>ś8`,+fp1 l/c+Dyc4&]_8 mPڥ>e;k_c}MEwSBlUM^V Ǜ}sr$)vLP+]-nt/նIg*٫W1[r+`pg\jMiBPؒ9>::hVYu00cQ||ض4KSJ 4!sy@wK,V!-x&mGI)Q&PeโhN[z Xy'|*8伵qN`pxD|7?-w;;wbGFFhOBSnf2Qc0uH!Ŷ0bd8^PiUS)ŷ(H\#LCΠ1ph?4 3, w 2RɈ 9x"I~ Hz@{Qֺ-k6Z O; ͏N{/QAh" wD0.p-zQL%g])/#u6A y>+_]dƼї<«?I=(<5'-`b(ˑi/}NIǝ("w72zQ4r;1`IΫs7=(amD~Kr[miW:f6mŖqӂûB!)7$?*/r2ѫAO#sCs!xS9[5$q<`bD~ՏTI{sADvu+w RGk, Æ.L<*G((n2Jm@?=&OzsLWU6T\ QuR~F{0ej_SyQ]FjW@NNJ?|HOՓ]{4\RCƵ<._G'gb,FĊَTDz`a7 uO(t~ȞIޔ>+ ׿<%,fZKèڵO>i_wr居߯B#(аENh U8̽0_Ӧ 4m&yQ MȹFÔ>aqXSO}U 敕MyȔan&e9+ۚtj y$'MkOKR@N=Lcē-vxmݺ 8b=:)#'X\UlԸ6 vnyQIc-녋 Lu&_[4)Tz0x'\S67a39aGDIpd|>/B;9=DZFgakU5DR6M{)Hų+R.&( ]I5mQavQԊYISrw$ףxG3eh3`9KH8˼&bHiꨓIHQxo >tɴJ+E y_@' j?+rga: Ok,|䣒Ι̽eAX~J:/U lyuVß$.s3ن/%pc}vz.s1鶸h=.9@Rr$%[ƄG<ڇ$sN /r ClH+µ~] WGR{[td>Hy,ooɎ@IU_|Z!BG"G?)|ݢ\\~ʍXEbt#0O3X"vfI/d_$ <@62s6v9DI1ªb0Av\O0,cex hjJ0Ez@':ynҰQY3, 韠5b0hWi?AWȞ;'B D?iƣ 7S+ Z/i }B3H ޼:ձ[ԯ:t`dD:4ǰ'6 "|mtiJ {"_u`ߒX?:R,:ʽ,O'aPfq+U7۷Ѱx!1b߲ ҄"FI!% 2<=IX䌉WUEx iJ6R@K 4}ٓ;/ip]yuJ:, rFVbHxe?GY"c{os7.a۾̹ޟ+S\i!U n}Sl5t.#h:oq9)U7B{#6j b K 1J2\Nglh (kQ0?aXÝBN "|oo3s'a"ܽoKlٔ )zs>=j.Oԥ'>9+mF)QRۅꌐ7zC qn"9Uv4q&@'YٛǣZ!Vܚj8joi[:'3`UnSeь|X!VbfTyG~\=s iG 3<=7-#g XޏyQXYPTR\8F=v `ZW.w̗Yb>*óhrN&y}܉Y`ڔ^`1oxlW5uH B} V/{VaߐucP֒aN"`OHӔ1Z۽ҽSH٘$yt2!Yd!g f=z^zƽd\n$J82Iw2 yBSGH];dXJW(%PΞ?#9\uLxJRhQV36u kгsIrb1x'v M{ bu^Ķw^7χwŻRy8]`9 isd6\PhQ8xL^9 Q#^_/c~|% `Պ;ؗKp"Sa>m=.'w.4ٟ[(fgaTfJ 6hCjͱwFRe]Җn66(5¤(ͻ=lWم%p,$PҦ_fw]+=60^9iq9Y#_!(]Y`IQJhA֫;\of/x:tlkJKc}e/)b1zV?ܧb7@pU~!>B/v+sN~EN͒m6~ݲMr"\`6\ͤ\y,wMu?$a^An]Ch9S}DUWƂr$⯳q. fhrwh78Gn)B<_n1V鸄ҀahHa4~:q/tF=ke3rz~!6 M>՞`܈(80ֽ]CuXKq@ wIG2]jsߩhIk) i%Du5Fm"Rjt/i@fN6>u.7$yv܈ؚߞ^ "q ?%X-< Ax=JyqeA4~nMXSK9 q@x+1 bJ3T w)w]s|׽+]%kF#kUEI3,{t(i)~ޤx ~kSrnM-X ӌ|U[n˶HB.W}a:9fnȖp ^w |3Vo/|9`d+>oWKBjnV!U<Q3X Ƣ(>75uwFRwBϐ0_ێtq)>E^xEzp L(0hf\rv?k.q 9kfOvrrYh-cJ}TQB!/@z!q)u^e I iu˪aI-p$Tj@RAH CS8٫@pS:xn'GqgWD:ӛ/dҩI`_녾4W M)RV1uV_PK\V`Xv"5VE呫RPvdGKM)d@׆0ۢ}8w CmU$Jl^=2C'mySB$'18= E>th"9fD,6%4ÓBt*w4l=Q&\BǀwKߒPIXa*G!4{>'ߪXFMvX/ ͮ~' $08z_ L ~Ϥ2-!3c5GV*X@igVG 掠;#[~@Y98%;f&W3g Wh-Z{{M c3p!|plrJ5ZJRoPˢ$6@P`& \El`x5Ŧi3<ΛYS^q{EUE;{Ol?q6 UԜSD揑J^uNB K0tw-*t xlx:25h{qGfk pa~?p`ȥU?|mD  )e*uKlv @V IZ1MPT+~},Dʱ͔z03~I^:`ʠ2=kBMPqm܅6ʝN@hs5c(90,עyb[nvEUq4-gpV-uμŸg[e]JnH @mTbɽUmi!\tll58)֗DX"-:ҜB=Rw^f%RO z[ُ`xiGmsmd2RpA6!bjnuk`ekJg7>tDo:(P)^Mg;GcԮj{*Mb7VEG͘Qb1ޢ6SxsW8up߭e[O"-aKY"؀uޞ:jtCl՝amCv` 9aB`wAXWv;BFӎ9"yejBCȳPV Ù`+|XHghsҢP1ǗO ,?'kc /|3iC36FU\@?>x;O =ZJ%@v$(7zV<2 uk~_HXO2v]2i75NG!N$1FTRP7E>!&"HoeR~GKhO?h4lm5%}T~Cuw+< oI]ívۗR7#гQ9[X]ɵeƶi(Yɤ!"e_UQ9B쮥R.& gp7o:k;J#GsqȎ{O>4y?f=,hl-|(y1C#'3dL ;Ú>m<!e)v#Qзmv@oI|~Fgn3۸P|ʯItt$܏!p(wnU݌ǟʔ7gv|r5\l]sS > KP;h=Q<MSz1vrC٬g\93ى"-kGkpp.,dam$l>X3Y6laL.A7*f?rer+ '\lT2hE"F+gmu낂ws _hV*X$][ٴ"yWW.EhzKvH tT+VJ&} [\GQ[qNa ǙpX°_' Xhp!w#M=\(Ug>䨗L_a€頨(z:Dbi[p 3]^'~W@^xp_ܝovEį=*l& hNR>rx;q>k 4M^9\肮 o籼6{]HCЎdIL@{y6Jx>" )r F5 gHgT]:y;q0FKPDа5uNPc0ya_ L@*WF7z?;w1 |ZH\S K%nȢާ2 0r^o7zfHk"xB&"8-j%6I]yv>%vUHđb^n+ 3(SUS~\͉۸lo,cJnyn]6GbRHr~VAXI?~(>1#34uxDr5rr`웦f*KүJebU%pG KfqP8p9 4R!8Zٵj,g5ɠ9%YJZxцWAdF!* s-&ec!+6!.l%j0zFЁ≗?(:TI@Ʀ!%F5?FIC饉Ju]Ndq;'av$3p 7.p4Pqem`'rԹ rkb&L#S_?B`j7H}4^`%Jn"r Wcz!4Մ '5R<<獭xBߴ,f^*qxt E'aH^ѻi^5)j]+ ~P:^?+Ze? lD[,^`]7  $,@9`= ؐ*F{:~0WVˉfU]3ۤy24cx$5i9Cpm|W +c[.xk *EdQ/ް)곴oӊxC./R J^dDET*ydQe8ڸp3ud ȗi.YˑUJ|G妛zN+f4)"@t 12IaU6d^/5̖T$3dMEB<>dΣM~RFCPBQIp[.Q{]"qO?E lHmU^B=5 Pu49VvmKc@iڞH^QKĖ%:^FȲ>%hH-?}H5-f+GF5 Sެ~4¹8rޭ3r`utUH|e~tGS~ٺu IU.y<$il)*8ݛ,ݞTa}OռnRɝO6v%n/]b@,{5y$gdZ - }AG_ti||铔FZ;0e;ݬ~[jF+PR:J^a)T\;5!/+K; l tI59 #Ñn*kmrLhڲ;y̔lY | ;Fg!B:m\._Z Ǣ Wf^ "&FWٟdD$=pO -^ɽi.Ss1MXu".C &x02"%&\xz4Ipb`YҘ$Dr;X,[rd-GQo wϷ9;ĝn$w7i>%ն# *P(?ۏVU~3ix蟘yxtJDyb9ؠD{{E~c=@jek"fw BlZR=tcMqD Wmj)O_zhpulfDǡ龏ǫz^3SzP1]5iޙ2xAנ {bK_Cq#y@C]t endstream endobj 19 0 obj 69805 endobj 20 0 obj <> endobj 21 0 obj <> stream x]n8ཟBvQXO HYi@#WGt>R4uwϷ?oytnW/^}cZNy:Շo|v/yUjNi%]O| _sՖ㆔_cs^mzWmasM]ǧôڶcsS1疹EYY٘ w#rbNsmܳGn@?@?@?@?~_~_~_~_~_~_~_~_W~_W~_W~_W~_W~_W~_W~_W~_ᷚs~7~7~7~R~7~7~7~9w~w~w~w~w~w~w~tF8#Hg3ٶ l+ڲr Y,h6;сDt8. Pi|Fv +KdDTguNm-^F ̸>-AāNą,ua`ʼnALt&8eM<#art˄F{ǁN tޮLvqpvvΙK2=n=azf1OOg$@;<) bwW<}ynS~y.XG) 3,ud@ژ4͛rPvc1Kzp endstream endobj 22 0 obj <> endobj 23 0 obj <> endobj 24 0 obj <> stream x]PAj0{LA =C!mԒXЃ 3.?wmlouF WN1Y:zV%ܹ5I["mpx2~#dypFAcʹfuLmN7py%(܄ri:O{;QB>&aYh32mاsZ^%(5,7)r)l*1r9 endstream endobj 25 0 obj <> endobj 26 0 obj <> stream xctv*mN:v*mc'V8c۷̼s|֪y>gٵ>+ #3/@hgfl/ `k&jl KpQP]m 8 Msg=Պ9č][D,V ;/'/; y&pb^@K+W^oZ4ttL-C/nnhgn M^V.c33s44mm@[;Z@Jj4IgKruuebKYC1X0ڛ2դ7sg8Łb\w?) ?G4Nn2o 0w{Z1sH`c{3?GGf& h 01_?]]fƿ^yNom\.QQO 76e¿Pecߒ2*Y毋? '4q1\cp1s0 ;?J5,K=uq@cl?W|GQ2j/Lq9?Q$Ljj OBhoo T؛8yřۛ9$M̀5׿Q7v67m}{wJssOsS8kwӹ(?S:uR!vKC+IZ~3K3 \GMn4 `Y>y;@výLQNQ!f+8w=]^4bDⰹ4| O ֛MZ?H|DB*Z!h sodӣQ6Œkoa_FWڪ)$DFc:VpFp1CݒZ:FTˎ4t׺l-?dWjU#{/U|4}M+ 'Fpk:c 6QqOQS[\p53 3.ޅD΅+OcCTUnRUAlΕM njy175z✚Cz#:kfjI2 lnSl1%us1P~#+{خ֗5{&ozoLQ:ToSnӜl⦎/IJ晤]]xQorYԴr*92;5{%';>:?zM;›pfDx-F&$'=XWU[(G:GyƸ ﺲ˔\F$!3PoʒطX_ͯZWW1sl#0c:괡 ) gF-y/O#B >ҝyNJbWkVmJi<q^>~gK3Z{X,{C@P g q %`ȶV>2Һw7wzuT2GVo!vg7FUm|w^,t &eI.=ϿQ)A.Y^9^1=DaZ]૯yV0(QJAǬwLƳAF,C3+uFF D+ 7(TtӼX#V^.y}ܒ2"d9BE|(qxi+?({L?sR$cFCޫݞZg?e]j$5M@xc.,ꡈ?RˀB#틎X|tA$ kPǽ~bvB+V%ygR1tṛ-OPbd~DF'}B?2$9Wφ1}?5.Y]24<{*FCApgmј͙4zRp(Z`^s5Cp0i*VLC^N-iyb]VHxJyQC3?#Z&o>qlA˓f4̞P$@adH2_Ğʠᜐrι%0$4p*;/Gu1M_/y=#$DMEK?5nl TءR,Q]8hߦ/lo)Ƥ06b([XB9 _xf3vWH D"߉ =Lʽ틁o4jQ#PnٗC 7ocTS UVmy*8+Nת$ۜI _u?u7kŸzּ,8c!1nXEAA;J1 7Qhl51 WvGjwœ& ϕ# 낑ES>0;P8aCrc,N̾%T >Vg+?oߢ{+&Tdqw@,[t&He[ɭg;^lpIPkMyK?X n츌yٰϊ hUEWㇶaη?@ ř}O$O;8Pd&s28M mBPfKkG)#>ƺJ8~^dP阼8Kێ6N++,2}\6l=.Z-7"+ U;}sX7yug>FE*jߔeM_ֱ pȏGTŁ':kap8/ 0y^[+(S:$'{= &?{Nb+fzA-z7mt w;(v C¹E OwC [F&̐a|cyEJ%,:Y^cUn(Hd1D҂[(֜7&*YG{O#S"jE-5 MF/-κ[$m5b\rdT¥faE2h>˞!\̭8yZQޣ@LKsFxkV4*7~p) oި(J#sze6{/ݎRY[p|ne##>;11flzIAq/<uLKD_VS8F"FRtwnzאC|bʻ dcҕL H*5\o$'8[,]TۇL\ Rgpቕ6x8-r{秋/z/Emr̴-5i@ʾY@yzC?VvP3m8FGC(ٟHz. Zyӄ1T~{5La )$P+b~Z_⺫ K*⻷6 Cen)gψ f"<JQ?bFF[ B7IѶR4FR5QUCo5B/+}LAk<9m(+-@񤣞/Y<^ ܚʓ;ihF^$9bV;S]`Wҁ#ܑP LៗbW@ 1Z E|Vq=ޣ`lkv`k݃ii@Qix%5l$|C"aci诲L[.d=($3?đb+,?$F:9f >, %%24pI*;_ !]Yo#7b41 . x-D?}ҮK ݳL_p,!7UmsW85~ըx=[)8]B5q[S+/j98X1nBn/#nLvۅAsQz+&YÏJqQoإo Meh9DGCSSaq$Fm=\!" q(6<,-Xl.t# s^]oa_ۺ`@k(VۍY+}jS1[&U>RmsD㭉7m߼¬F8E0sn_s:i.?mmu2cMr<GduGU ~zp hd%KvAU7HF-lx7̴0y8yC~͍+~eJǚuZɮ X0v|\<u[DVځ…B;5M/aˣmwGT{]&wP5'Ή1Basf_e ٕ qtM%}vFM'f$[˷or AÃ*gܿ ~كDʌ>nPPK)-\*Ig&XͶ$7+AW$ɸAq2G:|xTI,Fw~w4}i#~iͲ%O9^x.6;S"3:vxQL/%FbY.][Id[*/t8(a6/ 8`-Pkp>C9u)?C;`\^T7WGV0 G gpS;h@䁣?dMYd*4['o!-}ZCf.SP*G>SJ 9VU2^]OC=d$8&cg~$OtǠ: XH JS V*;aS]Z 3tf$݋d'Lٻañ!u|"|uy:gu] .&U*_}|]g<#76 Խ?ǚ`ҸR&њC*^euDͼ`A1"=ܾ+-|l#HJN;HU_lwgʖ@v01ClyabċNb)GH^Ck땿MrY8KPSW%|dɒuSYW]_7`UG6Cybœ?75zJo+)DHը 1DBjq4+7>ӫ]qX@'g{\(N_}P(͇[(8:`_[g.enI,$lV f܏mR2)_&i03e|;+\) |Y6uHAPU02bw]S4?_I!$LdeH>Y3|b/o.= GP9KB3;3 _dJBu6B}s> "]՛**bW$44D:=Ltk 3l׼bױD\aݵύJ( Gx}Ͻ7jg?Jd?'fM O r@b*|6ÿy3F{Dq?⚐Z NEfI 1h;0dVX,sZ͍}}-.1]S{-B_:qvmkY X xj4T7)+A6B^"#89PPdrk0~ ^Wr _; 2֖%i"RIB"@chQP܁nc&{֌'w3?FpuB[Om4 Kj 4 s3] l3qݧoLP$ 9~. ❐J~ yzgfHBϘ#t~* T4``8,hsy̠^ /EAY5 &Wu fkᩕж pjQ6麵eȤ '8~ue"gwpsa[*u%$a_^+Q͜f0]CM|!KJà￟ K;;wf,:U*1cSA57mR)b*ۇ>,*NkZ乳M~+8bv|E^A\Ӌ2֟͝lFЙ`7ȗ]7Y1 Cn~,qtREm)&~~s}X95#do#\'dTw(;T?6)̋@xs.7x|H%sy@S*pj7w0 % {EMRm" }󞌷\Ii贔}W)2SmVD <j3/n7iyehx P &lZE 9HH>vӃ >{Ƹ } rI΋ĥun>7lCہu|UjX[:C=VH"w)_e@~⣙尕f60!fW8b(eܥz ^^˅jj0;3(Dُ+ r^HҔ.:\(CaMw"I4Ģ~vj&N#N-[]Q(;,O??CF-`o mx`.NX7v" dM®K x/> T&W2ʤakr$Bk'miOҁ ʾ]I_͎NIvq.й Sj)2F7z/ƙtŗÒRq*Nwi&sۋĴeg^ Z`Qĵd2pڞ7M9kiO K/QjrOMr `!xBA=bu.H&d$Y)bugb8]}:7h6߃ٺE/ \\,1䨌_8#m?(gM:uzA<\4#~&+cFDRaA<򋪍d4?NcH': ;|' %a K~|1#B+PfzRQ@Am,dWm  LZ0[k)](YN0K6%ۓpJyYA1k_: :8ӅQM S."=]9Mi搙 MhŠ`Eha!Hܪ|Lu4laRwLMU0[#$+GR9 'Qyqq|gsWMyx-2&ϔ"b "RI9Fl#} Jg73hLEQu AYc!L-Az @eeB:Lȴ6dmwJ{x۝.\<=7؎?/wK1}He3EVλVeS$etZ龃tvhp)m?nna&ED!1Ac]Bc Ƈ>bh|]z-wk#&K E` _G0Q+L!Y'2&rQomO۹r&1ƾDǰXIw}HHf?a*@PL'C g`dn5fXnMT{ jZ{sTp&#%2lT\lTkjxU5_ƒU>xk}5f*s$wGNօ)q^?ôZuZ _:hiQf&<@C@YVކL"Mټ;zdj##7ZvNY4:Tlw|-"e[ץA`RbS;ߠq3Ձ3R.a^i6)pkbDOG>P7*z1+^ QRM2>ݾ<؋;/5&-#[7qe_z|42[G3*L? ))ՊDz|Pvů:'JG_o[ _2>jOwSG0w>zd{Ep*s?q++Rc~p"VxUL[ TNYjU"sRR;1TAݿbU&?O*z\`_rʔm-]#bAy`+ h5VixR[2d ˁH =ڎvN?J9{˳zGPZrd~{x 2jm B"+>ؿy7kߡ[c~$q\J22bUCojj((j\V_\?Ai@؋fzU[]$7#DdqKC=A^]|]›hn:{Q8,>ƴr藾H S̏jHwe -Q|ځj}O!YaQx^%zaxU$O|pvoB_U[q{fqN#sr[a2\E,w~bb|rq"٬#rQ qԕKOBٞۅV2cDפ*cG]=Pv5,]&OTF0?5H{f;#EhĢt7 _~7cp1b{c|e#&;WR>HҴ V~LL̵;}f@^]aG\M x%bl!yN]hbʯkW;ꀍ4iS@TJ1d8On%keLUdgaм.':fB?`8Py_xfMJZO8Y!?Xq6갠E2"db.Čĩ0dapUtdV>/X_g2 tW6h]Sg고lfNC:I &PzWYvO&ۊ[\qc|ؠ-$Z=o!1_9"|HIHJ]@DzW{rMx0}` n JP0rU ٫J։%9;Mb|t5I*G4m\#Q0v򏗾so&9?i&Òʋ56Y0 Ŵħ/7rB;_ClcW(wOL[ֺ~gMmK ģ9"SlӅ0~[Q_ $+ Zr)j=(ٗلm#tIc:GCE'I8n P޷94Ҷs>EM *',J^O) (C=W .>ZI:Ǟs{hHfJ[y7bLf I&i*̀a=4%M#%'ܲ&RķM 2<& XbqYh$Y٫xIOΉSaVGŞc/edcef-TDT7;)"<%ICዮR: >FRm>h' lZ9 䠗e[?hjK; ϏX y=Uwݝ7$*Db ZLB]"p=FB'BEݳ֮z$zy, p%,N)zzmE8d AaW Qz(᫡R&߇eR~ Dfc83UN2ƤL> vPBj`QeD2HQM~"we{toǟ5m>א a '@R|ϕ0N:.`zCA+uNv(tvN,$ctz02u* br՞{36bqQ׃`|޽Wq+NLK"9h?4ŋ^yN~[رl`)A` Jdi:f'gR%yp&:JTLlյ @{SDlShAlT-;=J)4WF`خ`;AU=ep6ۏ뮦*Ij3&tp-~Dd[&=Ճk#^7dJ#g0YBFё'MI&j\™%]O~ Nx7a3dxg6첮<8dWNi~&Q ySB2QHt'#HP)54j?d49\Xqw'#qJ( )p9(t U]! ƕ^nįefg}E'l/}` ӂug4[1 j{pzүTP}~5XoK]U15O?!8\˥L ϋfǺ T[ `.B5dH5䌕޷;$Y>}gw$8-lָRx[5 9.eK! ^gBfM!cEh46i˯]?)Le)IɆywi/ W^UPЈ'j:ED↾/X'@^l x iV2ɿ:͕Gl+4ڮGjv U+/;{,[zNPChR 䧭G/e̫6pОSk#zU,$=G:ͫ|UtJh2|?xCNaۤЃU(w6gK,ϗm:=%u}pyv(lfFԇ%v VQKC A5h!bjwr '`@m8ޚX~+o9?e\8xւ)2[Z|dvZz;ҏԅ;G5!њ@?Z~{fqҐJ'58=J4B$A,(|R#/.qjnEC/ $"F}[5OE8-?z6B&iD{ӉsSts#%RﰉOj_4NU݂|[zb6qs,6o]n#jN\# z0I%{g&otCt#W]q!e o>\2)e_њB !po]_=nE_<Kk3-."2W|κ T 7bjK$}Gz8d {],T7w/>*ыsҶ(bI i-n>$WkL_H?i;υ+^O/5_ZS8$ U?(hВ/XO>)Lł3VdbPp-樘Z!CCn PQ[@'>2j̟Pd*vp2T+J  ݜd2 .}h^,s5o hmEĈybZrrR" QFss]N>o *,9r .1WP:X84wUEJTR;9~iMS3M%Ic-;qAϊZ p:쨑X/?S#CjAZ)p ^B8]bP͑<`!UNSDjɏIsuaASX76Y< !r7$ Vc*EZn\$*S=@p: q kALYj#K8l^\#?[b+ָN` xqㄟ4QEl1n`/tRJ0@`/ecb\)`q]"XRc)`ZN|UHز˸ 0MCl \R #=y_e~lȖJb#XRHBNhcBk.@ea` r^73_'*A{V\7Hoz(f(ЯTE!voN5㌯,)miN 8%{o)r^{llt |Y B" ݠr}n߇О.9Nm(F#1J[ԶuY:Z)e ty=v`#^nˏTi$O8uN7vc Vde|Ofk1dlEX-Y{[0v \0_UxeJqnYy,6C''8EVƽޗd1FIYUPn/[0JI-6W뚍Oi/CŏQ(nMS;$a_JK @Hua.sFg<A+h(Vgyf=3A$Bn "˶7MPҎyŬR輛o(oh!/`*o^+5W!_ytL:886ߙx-!m갛i$KTe}T9,VĝOݜT_%}{Xj(Re|"(_z(V_',6`lqXKSzI+E#5 nǸOM7[I}Qm ِD'm6+֢ԯtc" #fBn9mTI/pEi7K MjRŀ1Yxࠝ@短da>~.|:ps,pUzaC]4 -ڙF}`LӺ~yp |Vs)W5` S#{ =$$(d`1se%"83xYpDZ1% =ynq0 ge()7b:ӚF>崌;_Щ:X^:^hW5DH}LF@n`gC"q?c QLͩ0/ {=W: w(DJE,@nٲ,K'xdŅHBҺ^_b9=P b7%sTKDbc,7f0EwLH3lHD t34rz޹7^9dCX[!57+*qGo7{hKI5{؃#9=Gœ?9⛒a 5uǗ_5#V)(Ve^?jI\+Jwe̶ʸ'dHY5o*͵1t>yѵ[Ruh`>at $w`_"S^ ,uT$\L@mEOvs3 :(՞U>QFX<A;V'jA4je*49cmf_L_[X𖒓1Qp֨kg ?DɊεݿ+Wh'd~BW G7ps0=M{DJY#U).K'юplNv>IgH-Z4qF$=d,Ҳ6MJo,, DiCe{t#t̬VSw \bPk4g_ cʿy L $z¼haobHkw}僕8Yvy7+!PFB߾GzwR./;JЊA- iq  ZٽMBxz}9XW+*e.Bgq77_3-`ڢ͍KdBbt#>j˧ܼ؎֭B, NBloI"I)lrmDтvGx꿫5!JF;#M>F9GN9nI |ͮwhV,\͛zAp YN*~I'bچA_@u+7]GD]kR;,~Hz"G@*?VU.l"!a'VON]!sV z ^}_ N;ח"=:tE%Ď*9ɿA <D˸SjnS[=FyO%[-*SrɕDِ*8;$LfTxed ćxADvJFXFdwM铂m9mekqL8,KkLeu,=:&l /f8L?ضIibQqܰ>A'K ~9#O`<鯁I4X  U9#;]Yۉa盜]V8 xm%rlcOU(hE#.ŐZ,gؽD̜9i^uF 8aT'DÝM֙n]}0~MimƩ;魧 L"Uzsl//HCIoeN-6y[%T:ҒfD(XiFSmGA(kjF瑇88^)iuܠr['EbG/Mgѳd5GsD8q`% +P'a jJȦ'Pd^?…iޗGOa2?D(+%N:V.Kʆ j~<3u{6>q5U[c 9VX/No@y)*B=TÈ<֭pMZl$ 򚼨Ǭ\A%pٽF} ."pLO&2)$0\SfFot}#̤91#'3m19Z"}7S5'hӭ~]ѯػ}Ti5:ӌW,[>MF@ ϺdyCoPXGc("y_~y6SqPg^=ېm*NFv#i>.}986x.Trh[T!oGs*RfV0,3y(& Mf!'v ?[PrINBk \cc-o6;?lnfTr3xDh2Kɣ-5C};:U&:kZ~T$0|ƸyS3[; Wup-AZ ҥ#w7[1iG™蚓')v]*r"%sMKg~=gJqEq?:{G6nU( F11-&Tƽc?ݵ{PQ.խw_aGyĉ*ie uzJ&>x!7lL+D|\տ-Sn; UkOlYfb`{cfxܬMAA m{7 Mim&TG?dTYn̽TGGR{E`H(Zz-)r$^V}JH¿eo./ R|`0"M0ۭH80ytzD;y=IhxM2wLnHT`P݊o4lڰzLXYCi$"}E ;t)nQa[tVP%ENބ;?a ɿC>ʈoHS8c73wl+QU}5(&)vq#ok"(q^p=Y:vƪRMV tkqF_1 _-[& ;A[V37lM=Et[LZ{7_ku?,#/IbrPHZ\SHSzX{pCS,x(5 (I#(]gۆ=Bi^$uh^̸)*ᬯf8 r 5r Bl ]3|) @箕#CDxfMY2cE7."EQlK'O82 q$_OG xPuHy^Ϗ?ЅWʝ{$(w@=7)]5> sɬbXVd^jScWt$dLFm9wC4Xryr ꌛ??D@ `3JlD-j:ZY|YR@&/* ]=GElpqQlMi8ԩS k !"[Ϝ8)MG $G Np:<ĘD? fzGLZ'FPt\ J|2x$K-&W) ĴFm[H`_2K`gC Q3JMZ)CNCeݑSfsfm:!PƯ7V_{*M8gNׇ=_RߗfbJPc'k`V6i Gg yMQ34z][q~ʒ*uY'}bRʒؾ( ;b$._YǚiDu$&cT.f.72[{g!aRkL(nWܛ B$Q`TEw(4=''Ve#c@ߛaV2䓽7X62lx% ,ڛFA,nԻdJ{K|Xײ#/S,\OtSc X:oG)]Zn^QHY;gq2f}S' aYâq,:HıJ4 nYNQw8yb(%U%T̳ϙb,kH6*!Mqt'u8bXZJwvh_ N;'bl@嫧Nj>Fq}F人ӎQeY,bNw9 ?ϝ Æar$,p{F @0JuT̄zif vLT  Jl^ԙv* v큦NC Bp U!4 ُc-:E0Z`;36B͙y7kr1OE -^eqKid̀Á˚*@DR )eM[vS5iM'j0~yhb$20;NPs,Pxp Lc!:b;q@@|AC)xyKAƷkNak>u;\kھjzݵ`ț;qmQ:uLa]KG'|D?ԲSK.׈E݌k=U۱ n5V?/5_m²%ep7F3s8)@WZ)*aӯ#[{ "fQҐªek1@b]U+&26'Fazn1KZ59F/}8MT'.{{YIpuPap8@ӇOrcQUS9Z=m ?^D (6 MX2(?%S+Mg=:Mt>^Mp_Jي?g35*71A7v^XKn!bfNۺ#h0{y;u/9Pց-Lc݋)=xë[l[Y~6d#q,h$ZS7F~c3%Q 66b]vR|펋~#yRқ qE_A} 26DGs":bh o^btgEi49n^PaVK?xPюHs-:hwDt?qX]).r:CpyH폰Y"c >7kXNtS4 -w2dI^zٳ3F'wG-BTs KاBP6mO%y>=(gK.Yk6?m *Uy"O5WȄ񯍋 K Fb~y.xEk!5lȊP:vIP\&e ۉt{XRe(H*4f1^"sFK6n}] m6DD8,ߓY &W}&^ +q&D$EttU$gB#>`!<'!kɛs.4aԃB{Y:8gp?=ϫ tFjrTzA2ZNhDR< $3VZAzu%tiX tVCu&?g<%9ȆHNԹd'H;bU_Chs7ş4A +Tp6_#IZs=k=&58ͩNxt(b )'}-i|B{j…gXXJ'/1nIC? LO4O/rfI*q[vC{>>El|~FLE$Hp"lq05\eoV3פ\Q.nImXSDzK U^Bo0%H ;L"-)BAFf5Jif䶨AL:<SJux{)ӵ/#LkU4t-1-̪+8Xӳ0}L@Fm&URՌ(;v qȮBXhVfa7<;TeSH`fԡ5PƗ$Kۆj..cx j{?(_jݼwҎl 1FH_c$VG:{9i5~oZGA1WZK׬Qb~|,UFT*/^@6Iarx_Pa&ҽ8{JDgNДTmA! jGIr 9PNǵf@)mۮ rj?֨٫ߺ6b;8BfG>sv)!=2ݰ'KӂHߪqPpb >fƎaXhh[1Tb13rM%qg@[GGW˼_QP4gx[!Gˎ~tYuyB0yxevڞt[RI@b.)+fr aU K)u3IsVuTј)0}LMѝ_8ϐ +BzlLEA+ ە*! +uW{-7 R>aZ"6f ȆSe6i*F<2~$]O˭皆! FKGJJUs%Z"-ƝBMhO<8\p;jCnPAu E%P!d`coJ9 G aDZZqz>2<Ч8Qi>HN0Iz=цA|vA#?tE5RR$+U-٘Zbnm[n/Mz,ߍk\r\̝+y=Xi<|N[b~ (q'(!DNmoaP.WyNgig?|(]q>DM$ҶE\V zuQF|^ٺw;CI ǸB&. 8GՠhsdJ,QfW9!1|\iLC_ 'Bۢx>D251oMt"i*r2 tiE6Jk:]DR h> fvnH)^ND)Pg4֡kAߧH{a C`T_mA08ŝ@(3`+z=Dt`c ~D:M#,-׶;Y,"bRΐ25 -gmJ mJgD6!ҥ(K&8xX}q^vIV[xn`JgvҬlMƒkY*ǐaAT<}-%z&onuX |e)./->;yiku~-FT %$@a-FP8KާNe"Tv \21hs<+Z5X"5[g_4"վrZqɴh,1c |2ӶjZ̹!3eK 61+)MWd3fL6gMXb?KbTkOڐ(c%_z 汻}.V~ #:0dzVs t[Pbۀ r/R ߗHvM:sy I*VACWc ˧Kj_<5fۦm<# m%RH%ÒPV)!m藡'US4(&UyX<,公Exk@*gl~#;D9#cmSy9 銍OGf{e+<8nq:MVć7oܪa*TWVF̯ ;kelV"t]s8Ob{%0>rC蝝F ,qLgCbTk~,Ƚ~ԛ,V\=tV+;=*H϶]LEM1Kj IN?+αo8vKN`-ã|B|F"e&z^._N9}Ly;ڻƝ.YΎ(7/Z>01FI!DzNz2r&/#: }򭥅Gg :vII'b N˰*glkpO7౽] ƲN-bmS77)x3>οACeSt1$7 unBK$1^b*ukUV[$S^Kf~6ke鱭\#0TC =[R~4< Fj0D ,-!Y ACOѣ/áKf9R7mrQNM'iPn88Fl֠9"*rbA/S'f/*,0@hRREyW ,D ֥Y6&o)Ab?.KSݴ"=v\--"L2Sӫb;\j/|(F`jZ8eR f-Њo7IQːb|mc { i񹗆KwnC = К}g 1zXn'(2У`+qB*l K!1ud+Z؎v>(->hay%8q٨BAf:Gw:<ֻDHseR@F)F"uۋ5,H5Dv/[?]gZ!Ij8U:E#V5{$" NAzN٦|DW'&GUuÊjM;`;Wכ#κ}l.e'Oy(z^<*==5 l!@Uq$GֻxmDޟkVAN i!c-~gc?Fd9,XhtPqP@z-~:㱖n!<ƆgK̏*O$/;'t"0?mZJ8cU?WȽQ0 ᪨il|K{%zWDa߿T".M/TKnxlGbGR+UMXJYW.qº&-fR)ڢ9g1 #F[G% Q{H׎ _NwH?_|Tkߝ~dJ>E [< "mL~؛G2J~B:: jNа˳Xz>&&.|8T@ جU [ZDxg%|P<{>޶}zvF}q%ōæQc Qg b4ш]ME;VLR>:J]ϸλӮ!E  N}R痞j͵ prgZ)Fm4^@'Po>șABeVEƱHBӒ\[dRZHpb=tڒcw}BI^U WgJ<1k.!\w.cRR;HAv6?9rWOv@LEqSG?5m8Im7gIj)!s?~`#wSO=+H6c;&L]>\`dLt>xK/LKDS3,G;)>(CEMF#o,\>>oЇׇ/M 8;a[Bʧ$7t+G;H Z:pgscpd}%,->!|r*N dda5ZUL_dGRqmL{ 2WیѬ?rh ! 2'}ޕ;"aʢ; UDx¨}etjv3³d @bBNWdg #ar]]Snɾ_n^=8=UMѬBI4ޥ( D*tNWxhsmAߐ4{QFCfJ+YoH"ܑc@̓A 6XU`{0I3ltuG'jmͶo:߸̛0"@6lhۖ@OIS<&d=4UXGy3E5&I1CHaVdž orW0P:Oـ/4k-(ҙvl;H :%k"iruQizL~*xJͷb73J3ڨADZ+0n'Cgl.bw'G0{<1 !QkT˰G-i CRH2HL=XE&O?s1֬enUW5'D/F q[:tM{Cd w>cn5_Y륓  tc6Ť\=p5x"Aa9hKkxH IIn@>xH -bp+]0d.n;/!}̡)OmlaHM_a/Y#N; J ڃ@q*B.y1Ox[v:،SNSF]GDNG<{{@9'ܪ"q'F]!81 ps-ӣna6AZ'q*V'2mN ‡# \ @?3k׈CmSawBn(Cn!>q@2]-yAd&sii@ MN1@e>9%FI IWl`L NH澆iZN%gv~4Xw\B^Xd.lfy>Tgm_\iu('1@ђrȼ&WDe%ɼq_YbrUFDeYWS/*@N6sn2^bowL7۫_/o'w-:Ah|׬Ce^<C⠿WM؎9$0Y#B[Fݦd yzN=. d6Ziy{Y&ϴjl黫*sN M`Kw4|<2dj4pm _lCwPxfz<ϜLCM2n 6֢FVX9JM+=.Q.v.U3:DJr:Jn,dΐ ߒ,s}4R&i%4y^y8u(Z((J g(OdX,dg7j #w? nና V~Gj\$0 @BpT{8 \U[ J4|5$/#aBָ%:4  ܥlφ1( OCm$Or4F˛}"{ TFFEb^5ǴškѸ ߑnz16cN؃qSKRvbkc Bh ruNa%Gsֱ7a~K@%c?زnj4~4){ău:`IHwS0wdcވS(1I :uF)xźIh Me/ZUᜱ+ Hw bu_n/:tb){-WtTNMԭUpUcY#.<̛P􃪦}xv%FI<4a?)6)Uޔ+pgJ?7ss#7Lӝ`US eqžnQ2&2V8X*zu+TTsl.=WeNL*Z´8Sy1HGst_~Ⱦ1GoZNV~+hy;,_ͻ+??6ɤ-֩T'uK-RZ祇(m(,E՗h;fYuT v嗅1De5 eF xmIR`2rn/V)'EKhJt!Ϩ K2u)XFHI<+*+FOTF y.1約h+R.UG&֟L6@iA4Ԣ>eoSQ K(7e?$di bΙM|`ry&NM(H#ex. rygd|pQ f'PΒ"%e~6P"a?G bv#|/[Hk2D&͛U(]A[hET}5ޔ4 rN<;|3;˛b1cM0:OZ+iҐL3sԦeu7Kkfa|8ƞ"OoYOø8mhR:I./7Jظs ֍Z‡z5M [r.9(GV豫NG şTvT *;YO/&0+[{ ȫ8;]nuCDp;`۫v: [wr|j2qjn\k+C]6:C6cz'+L?嚯!Κ\ЍklWpM0%x^k;teuK|B9$F膆vc;Fqj{˷Qn g6mƀ`U5ǁ.^AqЋPw&DMcT҆yBI:ԭ?Y̓Y3w];tzaNJ^m I%b+$V9͏6wtHyak>RݧgB k#P!c%z_rvZ= 6ҌVSvaR y`h"p'.8Or>KqQz1CJeJ>pviPuA AGnyb@x¨iDJP3sS1N^ B\?_u媗Rr]| 6 ]:0^ KM#b0 z@ B{]Ak5RV G).Ds$1j%T f+aZA , j@<FL ΄?*c!-&K|'9ͤ_iRE]G9zܬz1w~e[]yʰ)(s#vx$_ysKl=HH7mCW(31m w툨=%?#nTA)S{[D4:'Y*v0Ԑbh*z52ɸrN#ಞNIl>ΨGؠK$A!G ' g Xnf7 F6Nahɣ֒_1x/}OÛ)n^k\'jmTJ\V迈*VfmEW[c4L{nո6`j ֯?޹_4zuWj!xȑ#Gb_t=f7zM 6VB>@ ުfœPщHHEbLq:HD  fOcn6n o")QJ+ ֐NiLΝDcـ#&}NōWt ;6G.ᒘqQ&`O\pSu-UX'D/\#Ptf=W$|ρX D8̾ƥ |66$O/wVJ&Z YgdX2L`pd-4}KڣehQ oӆ4 <&@C@i߱zqqfBg'nuL (ˏ̿Y`;7 !&H(H,/LmD=&X +NSԕԝ#uU kjiu W[LKHp29\a@L52A۴0w)ߗO!f5 r/WYW`#|p|C@uC"]vjoc|Wl__N4`b_QxS|Z 8zqs^A350}:gZy ATF!gUSb1I !3FO&s}9sYWQDQzÈ .WjO# 5rNP-_&˸(syN sĊc0SO΍c{{=lq(::-"j𱹗 ;0Qww57.Y4#^ʊ˹˘6 ᙯ w[Y7;0c㒊hp`f-.IGL=~Tjpɶ[2^dt^Zh`E-c qk Jottiv0!@n̑7X^Gn$/,6ݵ"K0#n]V2Y!nPcv>xm$眸t׾Jv60KOBOf+%NpUF^E 2PiKFߡs|ni%&}C!_#3ȋsu+>-7T߉v|nXw?cvLΚ4ì_B{z|0a htVd0◌OAoPD{N=~Bz*k-ff e$62r$au"igO e>wzy]C`mfRlUx1G7ε1qR( B'eLaw6 ޥ";9is!f߳tcSTCnF ikLg'""ap"#vlq~Pxg@Rn9u ߲H'Z{+w4OI=g&5e ub:hftچ3ߣ%f;^/t(̕!{!CүT\; ^=dR SN&h\]w%a Ro v`ԍ3R=+:߼É!oֿmǐ 4fY_|!jS%~U7@Y|QQ.O^Ԕ(Dt=e#_(j"]'MVL +"fwz -T7;Y["A<`幸1b >x>m={aBJ9 ճI4!&Jkۗ3PA? rvf+m5 a\הt&, t=`g|k hX`wxQ--x*$c"Sl&+@PJWO/ƃff<ݮ6p $?*#mٍ E0y/O8I-*^[4|_`>mg]^Xv`qbid2;.D߱$cWq.dkEHX#"qh>)fbS ]1thto7\(9i2]Jy}|`ㅬ3? ;.X! ܇˦B儣֯yiHAy$+(\t7Y+]Y m՟L<&*lKIg J9aKfCF3_d~Ayd ݣ)4xK8]SuuP}L5-G$'3/)H(ØagFBS~rW{. |$ )*w-[[p3]uH*\@_}ݶi9Hm2겂45!|=Ip<>6%'ks. qS}iD%0^sFd$K.nљ3jUX3|r NVorm1\lZJ7J$blܵ{2d5'8v̴~a6D'Ŗ*v" #U#ğ+B,\Xt.1F'"葉f[Ghw3h+W /ٽ||4`2oy#U`jig(ʡtPՓ*r95`e0n7F?@M8K@`}W0h1iߨq@CU l~JP|0o4qmEf b'OZ?/{qH=۪u6;Ri7ϻTME;'?<,^M?oy'2[{ttrkk7^-ęQ/=\-A-hKCA1o C՟(/r e=x3Yt杼:D30-^`HԇY}L! }pm&yâU9Zu18ϷI31``>B %}HlákT^R1)~+Nu3;`[C&7vQdN$z(mɩ#%, ggus{ƬTڴue ݯl_<{%H]("r#=Y?^ ;.\Du2?bGOJb[0Вa*Kߑ95' Eꩂ YAiڇ<m!o3_`b9MS6P`O!`abߛqUAǧVЗ;6I8-%Kf^8ؼz?L 6k.38/^a釲 Ҟ?} ֟l77*M N亁%֧T1n>Ѣ*Ŭ5˧x t^Z !nl9gXxQ_4LKx^5?PFھ[;MtSBԑck=KAo0ӡPUHs[9tA4;s,OnUK\G_F)%B~ >+ϋ33 !wEsZ }4~z׺$pr΢:]Gl'}jPp3I`}Ou3?rD:]l ІE{fd>Z\@T` t˹;*- e kFm;gxH05/!{bI!|$ b W8{Ҟ'gXI_\ފ-.[G-VVQo&8<,Mߍ: $3/~3DZKTX_҅"tS~?P'֔MkCD8Ȳi* }U*|+B G[N_{0jf|_[%}|HW~ؒ)=nǸvWݑXK 8klF!o[=g}m޲Yn.~h-f͛}88 q. BɵtLQ0^a,'sNajk#M9U=7c!!bWIH)-MQf ?-KsV#vs}jҍfJoiTZ~TNo=mg$饛 pxRG,p, CH3۳!NaԵaԵl?# L& t[ipf3X򿖘*J'1hȬ97vI 2#E*C(#ELH06 ۅ݂HZGτe u5HL@mE<=R窌]ZAm󱝜dȗB#=:$Ԃ9L5"gh뒕Q\>6s;6a o_&ˀ eOO_7 M >5Nz*{ZLc!;^UU [?!M8gŽC `Ѹ=NCt 0nݩM,i"2O)I(l/S +"⮁JsNsLFD ~(!4dM=M=b򐲉Ze.mRzm &68]^OF'N3j!y rDtԬiud捖tMm )K=[&GjkQEL Y"k1qy2)nai\4aA'J 0-:-q2Ћvڐ9%c+k*Ahg st2 `Rf~$%22ʖ[>Hj`;!9_/SĔ\V\ѕ(`c|͊'k@e:d)oѦfPNIhhACA *z̄8Oƽը|/8`\{M2P Srswں N I`s}A!l@fslcl1%GZ_^`v]}@׫7{ My`$s9pٛƊ4 Ll)βL.@# d8 \'qvi /tfEh2 PEe̗8ƨ=, h)/p]u_x!D B#6Ee^a@ڗO]=tD^Ϫ$WRZĺK"ZTrMGhy;{a ]P{/u!> 6ʼn<6~6a8SEm/_mؤn$ ̀Êgc>T< E>Q\7@|1\,(L^lR1$V0w9Բz(- ೹ic$ (QSmhz WLt/xNv5Hv(ekHW=fƽe]Fda?ԃ-;#BCEc*_P]HhqʺY{Lq҂VNOϯ8&6t` rDzA|`BLB`iեILR{UiYpeՀ 92;:fTNLru.% 2Ʀ/O~]r&}JogI݊;\lOa#l*O ~Io?O-@ w+Z:|@$îA%WFP}f0ZǠGQԤjNW0R2XK?$]p?n KDűHQDv&QA F\#Ji&O9Φpd|bPw鰙=&*^+rn ݹƊ[J)gR ˣk鑑zhqL+hW_(]Rb*l*."#}jZY6`{VOUQ8"Lumu՘L1_l'ѽ~<8X}u'#5EdJ+lUmg7q- {6̩^@=~<&$S'L -iz}a!b}Ic,W(=t?v'yz9 2^;ͼ >T@r~_uO}'Il\ғ;S"c;N%̦N%8n) 邩I&[.:TƲPP'ڨ6YQzÖaA *Ϩ/JR*Ul429?4sNW:$-冖 Np@aCj z;0ЅxM,j~oep<SG15AB0ۅ}Q/i^L2탘[aA4ٞ?\<xf`6PFiMAPb AwsH9̖kVNy>\(S?zɧ3f-#O}/ \VVG̅_ۃ_? 73r M.1tN7C@Hju~Z<;5G-{n5&L?y&R Gh_ sȢM 1ףة*!VĎ?`ph?b}ǒn$/<дZ`'%4|m+\.\sGcx#8VQω1oH69-FMפii;rOtl,mrmb=lRjTVTf7דij!ci_Io><_>'MsۂBy9RM,f,aڻJHrU4bb(K{ǀuFq 7_i OYZ?DX9VtDZ]w~P|@h x4{Ej@Y_˚RZaanpI~Q#% hz+ ^4?4A,bMNc 4QKJ-]Yg6Nm^tJ14eAื=jD{yqzAw9|?(jcHuz$υoqx]:lRcŵY'4٭?U;Hy;@z\~ CtՌ^ P~Kf$YvXm:7(Dѝi[БV߭vQK0hxd7ԝOIbXDuUYB:9ZmX= F4nʟ &z!#e_ݭ!D&)|[56PT3=g[QO x磡'nӷ4=uW.o[_g4dM~T 2NR;Of">\no$h2-+h,24T:0DKMmO&v zlzhsxGNMJK[1;aDsC`Gk:,6C;VGa7G)eI;vL3dniGָ 3*fm/op=GKjOk&goDq\2^Z娘kq\}jPΒ# ͣ؋$I??z|~ayrCOSP&3/F{PMuL! f9ϹPС}lhvМ_}QEZJY?o]hP;/K@nK` iҴw܀{f^(6]S:X6JQ ;Q cKRfjktw%U7Sp]8+Pk؜kM+Tɂ6f-(`1^2{!Ɉm5:%%80--GCvHou?.n\ 7)=j1Dj.<) tW׎[ df+JYl>Lϊupq)yo?GOwrc:9W+4z_@|lqL3W&m vO9#_U X–`7S0vJFWڨ36DjD妛Kl[,bX@>8@ϓ:rj$Ăh>d²hLc:,:WS`9KK2vNh0Azd~-Jꐖ0EXI)_*jk8V=#puu2+P )w` s/h] YGqfJz*de,,.\X@_$e(fFqIA^,Fɕ'ydJ\cEڪ煔kLs:raL4~YfV&X(}eCvN֧-[&7YԄ;^/:HJ1:PX6煽b p `_%$_ox& ,9RNW ΢{aN"XR:x,&&w꟪#Gwb<3N`5;3z?v(:ՅᠣΉ,O24XEAxO?1$T_l4#8Bm㱴J]{mҬۿNKMױ/" >yJ\/3f=nw#8NJIr`oTC8,K@CBZo$5)o߰$ O/O@x'&nh`חt(|1Dwj d`*]7>6&F!=IY$>[kD$SMoLSDC(i DIt'nm\J~)0-⒨ rÔn0JbylY+Sӌ]@IDoԖ \H  ͏ f Jb5Iq}pܟ]"mUX/G#򵲆hsiTYlƼkx) AZ|QB1UGKꩺ /xB9Y k*| ^ʐĴk0Yr1um&BVې}к3WO 6'z(Ӿi_cqCš^}hfL-_6(D@ok7|tc† x:9M;[co,)J[RZY8\αUK23_P֏4)WPNA韰?O9n'G- y б<*ݘsKS?`oQFSn+>wlS@i7izPBF :[=(+N5nlhp ^ Să@2}PbBөZ^A5V!S@!Vϡ;jGÌLL% d_D]2bZ<h,7zE2вȁ껉T#5T!ck6'g_,%'b9@M6ҼS!8 Uzs閉1\Ta;#O&Һ%|j(uhWrymfߢS,VkaR/tbQCt[&D+)d$5ˌ;a.|2o+[ݎ1Uه鴠qh7PTCiŤ[=)l8HӲAXc-E(PA2;e j7]?ppw hQ k_&^%G(r,;Weƌ:"[9: R09NHYA&,$-Ք-Uq(4ccRK/q9v m_UKNoPe?7E.FY0(\۔獐1r0_QR O&?Խ)?FdIt Y~)TK\PQ54qVC Zn~8F~\L5 .9K/(+h_c)A6j>FTo2sV8;|l#}]Ga"mK <3h]`om9e\CesRW?64GUep ^6(P=fE0MCz3 5 :"&X@"vM #Kg,a)iG1 #tN0`<tZ?hRY 窑ut#=E3mD9t[S *ox|ҵ}f0))@8#Wx%k@X> m K 9h볺P jD}ZKXC?1v>yG3WXilh*A1:Y$lC tk6sI\,mmcmIfKh{520/73׸V!0V~P`x5{5:|Z5o/E(>0u]!6x+(5s0} 8ñaڷ?I,E<$X^LsA>70v긅M ~MyY@+W,_: 沊H툀9rnl( X/o_2{ǽǁ6s'vI[FX~@RM D+A><ueq;Hd?lV_0P"S@|]^,zLLKCvo-ǢUe _Blu[y0.t/Y2!,Mb̶5yx_*#c$pu" buHCr-]hp-7%x$ޒ(Z~*ހ橺,9}E ̃j1Na?g9VN+ź:> Sw!1P5UבS &bK)y@ qńf;sA FSk]DgLॖ.l-UI<-V=0頗6`eg(ۍ|E>Κݤx?T}{k ʑ]l7-- -Dݞ(L\! 8fDTYS&rk+Pu}7n0.ozlKRپ͜v!DUw#b,/ "[SX5g:3dIA#z?.7&M6Hoeqrz`˳??t}H(0;NaDaQni70Ns f:d.*0RxFy7,VdSa4 $~e 6^GoQ3rmzĊVr~=+vs'yrt*LJɦX!kI6 x7U2حW$F\6ft5+׎} \~ZP8Ե~WZc6 HD ܢ,>]G2;T@s؀OɊqdM'' n_K }^YpP#MJBy c: U0{X V<]6~f Ԑ:ob z1|yY1C1GFaw*@J/n09WOwM5N#wg0*ЎF1`N{mT%4^[fy7p>j\ZYX|9ijDQ3`_vW!UHG*d#0T`-$bXKk*6F~X":d~&pOaKJ zENM*TS Su%Lߐ__wdCEֱhУOQ@<; Br .Rؑb[˲m Z-,OHNU8-'ޡ#/¶ڠQ1s6%\tԴKsxAak3;"!Hݢfxoge:dX7By_$uosݲi$^\KUfn@tU=eGfG8m6}j:(#r,O9hm:[s#G'=;eRme@#x۲A(2A.J!+\JpSY x{Ji9R`޷9oFo h/&#Gy,U`N{.mrKo0EZDZ#\Wu@cyo\9\-cMb줇y:WaIrAϟ&'-Qʧnp~' 8+|idjSGQa5U~-!p?+2(0Px^ ǨiU9L#^u2}oo3n%$Ii ׀Xߛ- Il1~/Eu`kGZ:>CAEM|: Sggx]XrIxw^G[e &V[eEQj$==EZMgfE0C_j}'\{Nsl{՞ڶ0遍.A 9$\+(Z)%P~?cel@@bm~ب>xvUůnU=D5}:l%Nِ^pa'ZhѸ!`mdW&a'aU5zFcڇ?&6x'2OJff (Nۺs0 ;ss +FZf,0aoR39rK\JVu69}܂vlrяc9hw DVլq.}جquCKb\@f/$<6pO~Yo!RnK]1躙[mo?jG$gyCz5 [*.cmUNu!@ Z$?L]w6b7jKf$ 8;‰::(~#VC!c<񗚦r]R.^Q孞nʁ'f;_ I21\Y˭ @3 *.̣O)x]ҤmȭF5sz'?֘D #j&O6r\}[-8悐Dzm"Q=N_%#Z£`D1 l'm`1iys O(菆NNoɐ&>$Jhn CXېy|AwG DugH,Z "R3{%P(֩:Rxo %NLz+i.y蕕Ok̩1n^& ^/YUI෧F-Y-%=AA'0~ӳgf}qs9X_d TqX5} mgj?ޟ (1#`(EP-^j¯gvHP8Yr6f6w?lǂ{=.s`1"kB9rNmEySB`j'cw4ªG#R _QH7A[fe @(PQn/.+6Rh{]x[DyA"Tm'k# x^uʣLBC{= i6g[lhk#t0+3.ր/G"tNGQUܻ,wkDLQyKeM Pi1a!x_꠼wAׇ^A6/_MQ_͜&~m5 &[E ,0WKex1e.u4HWS:BmMT`U)/k2Ar 'aѨIK -E``U#iXE ו:5ʧôbg_`"¹z6Al~]!HtrMT<%%8x:B%@aRWÝOLx1黇} rO,wh*3]|A.yV7SB G/ C|-ViʓTeιKGǫDYKʊ͇!{$<<ijtACKn3eK~fWFLŕH;^1/Z#/u=T6j7ZE/1p/++v(pj04cتիV CǤ+Mr%a皂: xEJuO'[Weu@=G1mJ83S>,l.eVD}3Ԗ>Z`>NTE> U4n"bه ZVNM>d~ -.7:O"c?D\W9Q/L' (Dl]t w蕝_-WƻcyFID$nCUzzlŠZzK`[;EkڮE2&I%,^OtR8ߩʷ6v:26+;*e8r`$fBP{Uӭ mi@LMPE2rؤ; " BC/}3 u9"ڒa[> -zHKDwjL7V%,\Rr6i4?.?X: \%SkZo&MBN%ͅN w6Q]߾!xyl$CtS,lU zNܳRnU~`6MPJ%ξeMں7&uFRcuǜ)(~n՛64o6r]'*ݾUC+ÿ;65qTACY6UDNaw`ǝZb1 a(<$?tllf/l㑖O@#.~s4 5cpHǪ-79Tnгv cv7;^W's¹`+GE0av;âOI?l~0x,OoJφx~ TaERF@:ѳQKB[9Zq"DN)5f>n?Nc _>t#BrߑLW_~8ϣĝӗ1XX":wO]>]O/ }=6j/m2ac.rHeiI(bE4-S v΂)~[Cx{^]L 9je-®4R枺jE2Ȑ(hB"iG(( zOİpMVb 4]A *׾r=$d2< [m"r *Ǵ&Fn ^L&#Ix8ͅ\UK=*;ko~V7 ~XؼXL!D-JBX"xUCT_\KE~i[Oi+)p?<*8ʤXR2 ܫ| ["I2d4t­)VM  2B`cѩ8 "d\ ,pm] 5.;DuQh)55?% '`g4eO;v.(y7N=*~:x_,'0|!ZE"4};ގ%wL\"r\Z*J|x(Hb6݉ lKm4äIV2CBkSfsHv`@lAzQB)%4)&v_w(^侔 ƣBOH爠^b_9.}r.K`)ʒ.Ads> r߰%g=՝1rk- tw^L>5d:jIŚ.]0FI f'B@F }<-FȖvNsc PELxhdt_efdܸ; ҈-8@ތj) ')1O)PA0N|So7hRn3  y}yIk6U]^dskTmXaM \2Bb|Ѩ2 0Ju ÊB$튮AvtQ@ʂğK[C+5jy ;"-V0^1" 7*f+_琀\|О \ KoSmf5!0U_|^~qM !_ -DҬ _*ϲ0RU tu$!aQBcɤr19vcӁ6>^⣸oxY3ai^댞 p"vA d6?/uqhCV PCTbwQ_5oK osE.xek8Ҏ:|B~Es[{V!Bh4m="@[$W;. rw_2dO>xMܴ'\ :A;O;BZXZ`*2ևy F4ta0xTE$}\qFMFlƝd{ܽV>DT kJi+yZ^]+ O6Rń85Oȋ{gpG0}SAL`*pA.~XpnvRD.D`D$eq/-.?$:i _:v2,mD&;\3!_ﶴwB^w5pWdӮXeQe{rGβUh5^?eɰ߯6DgS{69ͬs< sH`5R!d`m!:@Rֲ;0}%Nw3qzԂ<ÆC{8: ey|sx/xXt~DyPW?Q\UlفϪdo"%qũnǚm>KSJ3pk݅2ie>9s1ݜ5b5-c;*@p+<^T}l,"#5n8@v,o0Tlۆ*?x ƍ)g&G c@#Ook{;WяVi?,ZV+/dw"(Ew 9Pt{,E Og#ʜ1u &ʬMTW }j,JJj'#O\AFb`&V$I"6[~w*X`B%F)Li(UY,s!>3#naz<A$#.!ZFI Y߿D$>{H<%/ņ̺$7U^B&x.|ɫpΆTZAA얻[:tQ=bBAauJW)P`%ACc)@H0"- r{LA 6je࡭ղI?/xǝ^x}X ָ"Bt9 7@P%_-9ܘoޞ|ce36Xɛ]}WYJ&zR۟dD rs``s$aj+ɕϼVB+z!4N(YM%x*~jM缾Zx+HXU۲잊12MLؠ|Sa|cˆcܤGQѓӑj>\|.CP R#c=mXFX/ۛ@ )o>i֪kj|$_3FiT쎃 dkGq&e蒀A2`3KZF |4lHs(unϮ/aI6ldI]"ߢ_יF[demJbQJ7OgPSy%"zgP4:M(N)pDCx(oL@"1^ߩ&!COl-u{c><>)?hBD(tkRwχfd`)7kjo-8k:( q-!u:$G|vn W::$_Ĝż7;Re)Z`Xs5]?c~0gMk^oV)Q:R^;42'ԏ~ ׫CD*c Hrak7vۡB-Npx?6U?z{vd" -łz۸ꊦ J`C+/3#ja"u߁>(r_1p(P -&#Õ{vʄ|6ɜ J%:uS`ӹ1*\MFsK ՞甐n%ڟd#Td1B65vZ@4e̥ 6^hr-f kT xӝV7RGjg)yHf݋M+>O|Z^8ЫlV\)79Ĕa+o^3CzfL`lf[@EM,G {Xâˁm4jClo:P+ɔb882)N'[gW8ġ-^ 8(MF ۏ8!;O.aaǙk$<\'&XiWPf Sl繝1&3 ɅKԬڟ,證T%Ws<ɟ GZx:1aj^Ȯ;ŔǕxHF dž\UoB JXSYzHҽX.Fp;~FҢ*5I PvLNU&}y7H2|RfnF va+{)>Aa %ڟ9[S\$"// M-oBʁ?vTzʵIu,@T>p r QҜralhߖt# 5 yY.\q؈/xOOґ'7q&ema[`֢% vm\8R`PU-|NoⰐ$˗iw#|vZ\H|8 jUdӑ#PўIPӻrNv@;>IYܤ #kUz B+pނ1abAv5qY,u! 3<.Q@)n:M8~3Ry=%_{>O&fL{.*iMJvU5mf6͆#^|*0mR^00Duq۵nWBoD+d8wȘP/oiyjA9Dc71W "? \9R.k9f2W挘͝+r9K\1ə<˞+3??+|b?\E~=jLkfޫifhPэvi\h:X;w\6mn+:F $@/Nynb(-f9iNXр͸[c5pw|2yZN?xN/q)fÑelcCSN<TxVDQH{!Oa]Hf˕K$:i?jq7qw]RZ1ɖ_X,w=,~W%t2BǶU޼¨YiʗVt% zekO8~NU^z|yh%ͣ$g[8ն+Z=KMlr]_ZrP~EmV5@OwųhˬŒtzGaũߡ5wV*mJ5򻸙~i[XiaZX9p?ִ*{˄"ҞC5broDwGsBV>^rӲtoV'-"qa% Rӭ_̹?(g>iNz0W(A58LnVz*a4}(&fH4a ۗg-Kq&}ѭYq0tQ΁X{ghk83&l ;;}2$n_>|Ʉ7K7CY*r&RF`m\ƒᔹWCַ*L&OlUrpcl[>u+˚,[OJyY~>PDvE.e|$Sf񡜎2WK xI!!ńPG<S9RlVo] GoR'\Sɴ*5Rz3 {riU>lE(ڢ26qԐ&8ʪt}(x*}l{nlןvS~ݤ t\b ^P6*$guAY,w`{41h:gK~{Ph!< .C%h_8~RrFA3z桧B;Ϣϱu? Wk&3`AIved˵KUG>7dwB6bw} i\Q\_!8SqXlAɦH+ٕf\ TƋܩ~M Owگz_GEΧm O,>77O#ͱ0VInv!!#y ?|լG 斚ޑ|$;k{ߞZd F} s-R/Tyi@-KֺE.-,OY$fzmǕp%YΚ1XVOAr,8L3"dZD[zߊ2FɡswI4\h&YDh8!u//DJPcRL5Ԏ@Ur$z $ d=* ێiƙ;>WrS<8K닄  mq#G6*\Bsp.H]M3wyLpg5;',]P~|pz\7;_^?Go52Q?[9|ٻ>J fwU֜Oȭk6.?OvC ږffxs[9nNU+=Z^9wÊ9gϴM+-Q+6'[-1- 7}0W"n BZ6-o`D@e6؞#V޴Zv.,q~Qq tבei_ > endobj 29 0 obj <> stream x]n8ཟBvQXO HYi@#WGt>R4uwϷ?oytnW/^}cZNy:Շo|v/yUjNi%]O| _sՖ㆔_cs^mzWmasM]ǧôڶcsS1疹EYY٘ w#rbNsmܳGn@?@?@?@?~_~_~_~_~_~_~_~_W~_W~_W~_W~_W~_W~_W~_W~_ᷚs~7~7~7~R~7~7~7~9w~w~w~w~w~w~w~tF8#Hg3ٶ l+ڲr Y,h6;сDt8. Pi|Fv +KdDTguNm-^F ̸>-AāNą,ua`ʼnALt&8eM<#art˄F{ǁN tޮLvqpvvΙK2=n=azf1OOg$@;<) bwW<}ynS~y.XG) 3,ud@ژ4͛rPvc1Kzp endstream endobj 30 0 obj <> endobj 31 0 obj <> endobj 32 0 obj <> stream x]n <CٲTGIT'a Z߾8HC}Eyco9 ;3qUy7B&LjCM/K!7Faa}[!ly)o"(QU`K|pLjl]B9 .^U8m5(J*(J Jyj^J]OjĜsqG=m endstream endobj 33 0 obj <> endobj 34 0 obj <> endobj 35 0 obj <> endobj 1 0 obj <>/Contents 2 0 R>> endobj 4 0 obj <> endobj 36 0 obj <> endobj 37 0 obj < /Producer /CreationDate(D:20090622203408+02'00')>> endobj xref 0 38 0000000000 65535 f 0000230692 00000 n 0000000019 00000 n 0000004817 00000 n 0000230835 00000 n 0000004838 00000 n 0000005497 00000 n 0000005517 00000 n 0000005706 00000 n 0000005997 00000 n 0000006155 00000 n 0000084499 00000 n 0000084522 00000 n 0000084710 00000 n 0000085655 00000 n 0000086620 00000 n 0000086761 00000 n 0000087105 00000 n 0000087315 00000 n 0000157234 00000 n 0000157257 00000 n 0000157445 00000 n 0000158390 00000 n 0000159354 00000 n 0000159431 00000 n 0000159734 00000 n 0000159911 00000 n 0000227891 00000 n 0000227914 00000 n 0000228109 00000 n 0000229054 00000 n 0000230022 00000 n 0000230083 00000 n 0000230372 00000 n 0000230545 00000 n 0000230637 00000 n 0000230934 00000 n 0000231031 00000 n trailer < <442A5EB9C14504C06948933227CC9645> ] /DocChecksum /CA04AA2B2A0286945C8D860430B3F8B5 >> startxref 231218 %%EOF tucnak2-2.48/config.sub0000644000175000017500000010115311567373661011737 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-16' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: tucnak2-2.48/debian.unofficial/0000777000175000017500000000000011737317225013373 500000000000000tucnak2-2.48/debian.unofficial/rules0000755000175000017500000000634711737315200014370 00000000000000#!/usr/bin/make -f # -*- makefile -*- # Sample debian/rules that uses debhelper. # GNU copyright 1997 to 1999 by Joey Hess. # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 # These are used for cross-compiling and for saving the configure script # from having to guess our platform (since we know it already) DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) CFLAGS = -Wall -g ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) CFLAGS += -O0 else CFLAGS += -O2 endif config.status: configure dh_testdir # Add here commands to configure the package. CFLAGS="$(CFLAGS)" ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info build: build-stamp build-stamp: config.status dh_testdir # Add here commands to compile the package. $(MAKE) docsdir=/usr/share/doc/tucnak2 #/usr/bin/docbook-to-man debian/tucnak2.sgml > tucnak2.0 touch build-stamp clean: dh_testdir dh_testroot rm -f build-stamp # Add here commands to clean up after the build process. #[ ! -f Makefile ] || $(MAKE) distclean ifneq "$(wildcard /usr/share/misc/config.sub)" "" cp -f /usr/share/misc/config.sub config.sub endif ifneq "$(wildcard /usr/share/misc/config.guess)" "" cp -f /usr/share/misc/config.guess config.guess endif rm -f config.log settings dh_clean install: build dh_testdir dh_testroot dh_clean -k dh_installdirs # Add here commands to install the package into debian/tucnak2. $(MAKE) install DESTDIR=$(CURDIR)/debian/tucnak2 docsdir=/usr/share/doc/tucnak2 rm -f debian/tucnak2/usr/bin/tucnak debian/tucnak2/usr/bin/soundwrapper ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) install -s src/tucnak debian/tucnak2/usr/bin/tucnak2 install -s src/soundwrapper debian/tucnak2/usr/bin/soundwrapper else install src/tucnak debian/tucnak2/usr/bin/tucnak2 install src/soundwrapper debian/tucnak2/usr/bin/soundwrapper endif # Build architecture-independent files here. binary-indep: build install # We have nothing to do by default. # Build architecture-dependent files here. binary-arch: build install dh_testdir dh_testroot dh_installchangelogs ChangeLog dh_installdocs dh_installexamples # dh_install dh_installmenu dh_installdebconf # dh_installlogrotate # dh_installemacsen # dh_installpam # dh_installmime # dh_installinit # dh_installcron # dh_installinfo dh_installman debian/tucnak2.1 debian/soundwrapper.1 # you can comment this line out for systems without hotplug (Etch, Lenny...) # cp -a debian/davac4.hotplug debian/davac4.usermap debian/tucnak2/etc/hotplug/usb # cp -a debian/rotar4.hotplug debian/rotar4.usermap debian/tucnak2/etc/hotplug/usb # you can comment this lines out for systems without udev (Sarge) dh_installudev --priority=60 tucnak2.rules #cp -a debian/davac4.rules debian/tucnak2/etc/udev #cp -a debian/rotar4.rules debian/tucnak2/etc/udev dh_link # dh_strip dh_compress dh_fixperms # chmod u+s debian/tucnak2/usr/bin/soundwrapper # dh_perl # dh_python # dh_makeshlibs dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install tucnak2-2.48/debian.unofficial/README.debian0000644000175000017500000000041511737315200015377 00000000000000tucnak2 for Debian ------------------ In order to use sound with tucnak2, you should add yourself to the audio group. For USB devices acces please add youself to the plugdev group. For PC speaker use, you must setuid the soundwrapper: chmod u+s /usr/bin/soundwrapper tucnak2-2.48/debian.unofficial/tucnak2.udev0000644000175000017500000000071111737315200015531 00000000000000# # udev rules for USB devicen handled by tucnak2 # # debugging: killall udevd; udevd --debug # # e110 davac 4.x or usb2lpt + davac 3.x SUBSYSTEM=="usb", ATTRS{idVendor}=="a600", ATTRS{idProduct}=="e110", GROUP="plugdev" # e112 rotar 4.x via usb2ttl SUBSYSTEM=="usb", ATTRS{idVendor}=="a600", ATTRS{idProduct}=="e112", GROUP="plugdev" # e114 rotar remote control unit SUBSYSTEM=="usb", ATTRS{idVendor}=="a600", ATTRS{idProduct}=="e114", GROUP="plugdev" tucnak2-2.48/debian.unofficial/dirs0000644000175000017500000000001111737315200014152 00000000000000etc/udev tucnak2-2.48/debian.unofficial/docs0000644000175000017500000000000511737315200014144 00000000000000TODO tucnak2-2.48/debian.unofficial/tucnak2.postinst0000644000175000017500000000041411737315200016451 00000000000000#!/bin/sh set -e if [ "$1" = "configure" ] ; then update-alternatives --quiet --install /usr/bin/tucnak tucnak \ /usr/bin/tucnak2 40 fi # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0 tucnak2-2.48/debian.unofficial/compat0000644000175000017500000000000211737315200014474 000000000000007 tucnak2-2.48/debian.unofficial/copyright0000644000175000017500000000206411737315200015233 00000000000000This is tucnak2, written and maintained by Ladislav Vaiz on Sat, 28 Aug 2004 21:51:58 +0200. The original source can always be found at: http://tucnak.nagano.cz/download.php Copyright (C) 2003-2012 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this package; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. On Debian systems, the complete text of the GNU General Public License version 2 can be found in `/usr/share/common-licenses/GPL-2'. Debian additions by the Debian maintainer are under the same license. tucnak2-2.48/debian.unofficial/Makefile.am0000644000175000017500000000030411737315200015327 00000000000000datarootdir = @datarootdir@ EXTRA_DIST = README.debian changelog compat control copyright dirs docs prerm rules soundwrapper.1 tucnak2.1 tucnak2.menu tucnak2.postinst tucnak2.postrm tucnak2.udev tucnak2-2.48/debian.unofficial/prerm0000644000175000017500000000023111737315200014342 00000000000000#!/bin/sh case "$1" in remove|deconfigure) update-alternatives --quiet --remove tucnak /usr/bin/tucnak2 ;; *) esac #DEBHELPER# tucnak2-2.48/debian.unofficial/changelog0000644000175000017500000000304611706211437015156 00000000000000tucnak2 (2.47) unstable; urgency=low * unofficial release -- Ladislav Vaiz Fri, 20 Jun 2008 17:49:36 +0200 tucnak2 (2.11-2) unstable; urgency=low * Added some of Lada's work to the debian tree: * Added hotplug scripts to postinst and postrm and the corresponding hotplug files. -- Joop Stakenborg Mon, 23 Jun 2008 19:10:35 +0200 tucnak2 (2.11-1) unstable; urgency=low * New upstream. -- Joop Stakenborg Sun, 22 Jun 2008 20:21:12 +0200 tucnak2 (2.07-3) unstable; urgency=low * Added build-dependency on libgpmg1-dev, as tucnak2 will use libgpmg1 if found at configure time. * Bumped standards-revision to 3.7.3. * Moved documentation installed in /usr/share/tucnak2/doc to /usr/share/doc/tucnak2 * Added call to dh_desktop to register the desktop file in the postinst -- Hamish Moffatt Sun, 27 Jan 2008 12:58:10 +1100 tucnak2 (2.07-2) unstable; urgency=low * Remove libsvga1-dev build dependency. * Add libsndfile1-dev build dependency. Closes: #456829. * Change README.debian, tucnak2 uses /dev/console which is not owned by the audio group. -- Joop Stakenborg Tue, 18 Dec 2007 16:12:47 +0100 tucnak2 (2.07-1) unstable; urgency=low * Initial release. * Do not setuid soundwrapper. Instead, add a note to README.debian that users should add themselves to the audio group. * Fix copyright file, so it points to GPL version 2. -- Joop Stakenborg Mon, 10 Dec 2007 19:29:23 +0100 tucnak2-2.48/debian.unofficial/control0000644000175000017500000000152011737315200014677 00000000000000Source: tucnak2 Section: hamradio Priority: optional Maintainer: Debian Hamradio Maintainers Uploaders: Jaime Robles , Joop Stakenborg , Patrick Ouellette , Hamish Moffatt Build-Depends: debhelper (>= 4.0.0), perl (>= 5.0), libglib2.0-dev, libsdl1.2-dev, libpng12-dev, libasound2-dev, libsndfile1-dev, libftdi-dev Standards-Version: 3.8.0 Package: tucnak2 Architecture: any Depends: adduser, udev, ${shlibs:Depends}, ${misc:Depends} Conflicts: tucnak1 (<= 1.30) Suggests: telnet, audacity, ax25-apps, ntp, ntpdate, xterm, menu, sweep Description: VHF/UHF/SHF Hamradio contest log version 2 Tucnak is VHF/UHF/SHF log for hamradio contests. It supports multi bands, free input, networking, voice and CW keyer, WWL database and much more. tucnak2-2.48/debian.unofficial/Makefile.in0000644000175000017500000002174411737315443015364 00000000000000# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = debian.unofficial DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ HAMLIB_CFLAGS = @HAMLIB_CFLAGS@ HAMLIB_LIBS = @HAMLIB_LIBS@ HAVE_MAKE = @HAVE_MAKE@ HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ HAVE_RPM = @HAVE_RPM@ HAVE_RPM_PACKAGING = @HAVE_RPM_PACKAGING@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBFTDI_CFLAGS = @LIBFTDI_CFLAGS@ LIBFTDI_LIBS = @LIBFTDI_LIBS@ LIBOBJS = @LIBOBJS@ LIBPNG_CFLAGS = @LIBPNG_CFLAGS@ LIBPNG_LIBS = @LIBPNG_LIBS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RPM_RELEASE = @RPM_RELEASE@ RPM_SOURCESDIR = @RPM_SOURCESDIR@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ TUCNAK_LDADD = @TUCNAK_LDADD@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = README.debian changelog compat control copyright dirs docs prerm rules soundwrapper.1 tucnak2.1 tucnak2.menu tucnak2.postinst tucnak2.postrm tucnak2.udev all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu debian.unofficial/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu debian.unofficial/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tucnak2-2.48/debian.unofficial/tucnak2.menu0000644000175000017500000000030111737315200015525 00000000000000?package(tucnak2): \ needs="X11" \ section="Apps/Hamradio"\ title="Tucnak 2" \ longtitle="VHF contest logging" \ command="/usr/bin/tucnak2" \ icon="/usr/share/pixmaps/tucnak2.xpm" tucnak2-2.48/debian.unofficial/tucnak2.postrm0000644000175000017500000000021011737315200016104 00000000000000#!/bin/sh # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0 tucnak2-2.48/debian.unofficial/tucnak2.10000644000175000017500000000046211737315200014731 00000000000000.TH TUCNAK 1 "August 25, 2004" .SH NAME tucnak \- VHF/UHF/SHF contest log .SH SYNOPSIS Please look at /usr/share/doc/tucnak2/ for more info or go to web http://tucnak.nagano.cz .SH AUTHOR This manual page was written by Ladislav Vaiz , for the Debian project (but may be used by others). tucnak2-2.48/debian.unofficial/soundwrapper.10000644000175000017500000000071011737315200016107 00000000000000.TH SOUNDWRAPPER 1 "February 4, 2012" .SH NAME soundwrapper \- Wrapper for tucnak to provide access to PC speaker .SH SYNOPSIS Soundwrapper is setuided binary which access PC speaker through /dev/console. It provides simple API for tucnak which can run under non-root user. For more info or go to web http://tucnak.nagano.cz .SH AUTHOR This manual page was written by Ladislav Vaiz , for the Debian project (but may be used by others).